############ FUN_ 1812b4430 size=119 ############

void FUN_1812b4430(undefined4 *param_1,undefined4 param_2,uint param_3)

{
  uint uVar1;
  ulonglong uVar2;
  longlong lVar3;
  
  uVar1 = (int)(param_3 + ((int)param_3 >> 0x1f & 3U)) >> 2;
  uVar2 = (ulonglong)uVar1;
  if (((ulonglong)param_1 & 0xf) == 0) {
    if (0 < (int)uVar1) {
      do {
        *param_1 = param_2;
        param_1[1] = param_2;
        param_1[2] = param_2;
        param_1[3] = param_2;
        param_1 = param_1 + 4;
        uVar2 = uVar2 - 1;
      } while (uVar2 != 0);
    }
  }
  else if (0 < (int)uVar1) {
    do {
      *param_1 = param_2;
      param_1[1] = param_2;
      param_1[2] = param_2;
      param_1[3] = param_2;
      param_1 = param_1 + 4;
      uVar2 = uVar2 - 1;
    } while (uVar2 != 0);
  }
  if ((param_3 & 3) != 0) {
    for (lVar3 = (longlong)(int)(param_3 & 3); lVar3 != 0; lVar3 = lVar3 + -1) {
      *param_1 = param_2;
      param_1 = param_1 + 1;
    }
  }
  return;
}



############ FUN_ 1805300f0 size=472 ############

void FUN_1805300f0(longlong param_1,int param_2)

{
  longlong lVar1;
  int iVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  longlong *plVar6;
  longlong lVar7;
  int local_68;
  int local_64;
  undefined4 local_60;
  
  lVar5 = (longlong)param_2;
  lVar7 = (lVar5 + 9) * 0x40 + param_1;
  plVar6 = (longlong *)((lVar5 + 0x36) * 0x10 + param_1);
  uVar3 = *(int *)(lVar7 + 4) + *(int *)(param_1 + 0x3c8) & *(int *)(lVar7 + 8) - 1U;
  if ((int)uVar3 < 0) {
    uVar3 = uVar3 + *(int *)(lVar7 + 8);
  }
  *(uint *)(lVar7 + 4) = uVar3;
  FUN_18052db50(*plVar6,0,*(undefined4 *)(param_1 + 0x1a8));
  lVar5 = (lVar5 + 7) * 0x40 + param_1;
  uVar3 = *(int *)(param_1 + 0x3c8) + *(int *)(lVar5 + 4) & *(int *)(lVar5 + 8) - 1U;
  if ((int)uVar3 < 0) {
    uVar3 = uVar3 + *(int *)(lVar5 + 8);
  }
  *(uint *)(lVar5 + 4) = uVar3;
  if (*(char *)(param_1 + 0x1b5) != '\0') {
    FUN_18052db50(*(undefined8 *)(param_1 + 0x390),0,*(undefined4 *)(param_1 + 0x1a8));
  }
  if (*(int *)(param_1 + 0x1ac) < 2) {
    lVar1 = *plVar6;
    FUN_18052f640(lVar7,&local_68,*(undefined4 *)(param_1 + 0x1a0),0,0);
    lVar4 = (longlong)local_64;
    FUN_18052dbc0(lVar1,*(longlong *)(lVar7 + 0x20) + (longlong)local_68 * 4,local_64);
    FUN_18052dbc0(lVar1 + lVar4 * 4,*(undefined8 *)(lVar7 + 0x20),local_60);
    if (*(char *)(param_1 + 0x1b5) != '\0') {
      lVar7 = *(longlong *)(param_1 + 0x390);
      FUN_18052f640(lVar5,&local_68,*(undefined4 *)(param_1 + 0x1a0),0,0);
      FUN_18052dbc0(lVar7,*(longlong *)(lVar5 + 0x20) + (longlong)local_68 * 4,local_64);
      FUN_18052dbc0(lVar7 + (longlong)local_64 * 4,*(undefined8 *)(lVar5 + 0x20),local_60);
    }
  }
  else {
    FUN_1805334e0(lVar7,*plVar6,*(undefined8 *)(param_1 + 0x340),*(undefined4 *)(param_1 + 0x1a0));
    if (*(char *)(param_1 + 0x1b5) != '\0') {
      FUN_1805334e0(lVar5,*(undefined8 *)(param_1 + 0x390),*(undefined8 *)(param_1 + 0x350),
                    *(undefined4 *)(param_1 + 0x1a0));
    }
  }
  lVar5 = *plVar6;
  iVar2 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(lVar5,*(undefined8 *)(param_1 + 0x78));
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(lVar5,*(undefined8 *)(param_1 + 0x80),*(undefined8 *)(param_1 + 200));
}



############ FUN_ 18052e130 size=91 ############

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

void FUN_18052e130(longlong param_1)

{
  float fVar1;
  double dVar2;
  
  fVar1 = (float)log2f(*(float *)(param_1 + 0x24) / _DAT_1824c45ec);
  fVar1 = floorf(fVar1);
  dVar2 = pow(DAT_1824c41e8,(double)fVar1);
  *(int *)(param_1 + 0x1a0) = (int)((float)dVar2 * (float)*(int *)(param_1 + 0x19c));
  return;
}



############ FUN_ 1813bbf80 size=2779 ############

/* WARNING: Removing unreachable block (ram,0x0001813bc9d5) */
/* WARNING: Removing unreachable block (ram,0x0001813bc092) */
/* WARNING: Removing unreachable block (ram,0x0001813bc019) */
/* WARNING: Removing unreachable block (ram,0x0001813bbffc) */
/* WARNING: Removing unreachable block (ram,0x0001813bc03d) */
/* WARNING: Removing unreachable block (ram,0x0001813bc2f7) */
/* WARNING: Removing unreachable block (ram,0x0001813bc730) */
/* WARNING: Removing unreachable block (ram,0x0001813bc94b) */
/* WARNING: Removing unreachable block (ram,0x0001813bc049) */
/* WARNING: Removing unreachable block (ram,0x0001813bcae1) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: stack */

ulonglong FUN_1813bbf80(void)

{
  undefined8 uVar1;
  code *pcVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  code **ppcVar5;
  uint uVar6;
  longlong lVar7;
  int iVar8;
  ulonglong uVar9;
  ulonglong uVar10;
  uint uVar11;
  float fVar12;
  int unaff_retaddr;
  code *local_78;
  int *local_70;
  undefined8 local_58;
  
  local_58 = 0xfffffffffffffffe;
  uVar6 = (uint)&stack0x00000000 & 0x3bf;
  iVar8 = (uVar6 + 2) * (uVar6 + 1) * uVar6;
  local_70 = &DAT_18116d230;
  uVar6 = (((uint)(DAT_18116d230 * 0x401) >> 6 ^ DAT_18116d230 * 0x401) + DAT_18116d234) * 0x401;
  uVar11 = ((uVar6 >> 6 ^ uVar6) + DAT_18116d238) * 0x401;
  uVar11 = uVar11 ^ uVar11 >> 6;
  uVar4 = (ulonglong)uVar11;
  uVar6 = uVar11 & 7 | 0x68;
  uVar10 = (ulonglong)(uVar6 * uVar6);
  uVar6 = (_DAT_18116d23c + uVar11) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d240) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d244) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d248) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d24c) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d250) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d254) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d258) * 0x401;
  do {
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar6 = (_DAT_18116d25c + (uVar6 ^ uVar6 >> 6)) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d260) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d264) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d268) * 0x401;
  uVar6 = uVar6 ^ uVar6 >> 6;
  uVar9 = (ulonglong)uVar6;
  uVar6 = (_DAT_18116d26c + uVar6) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d270) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d274) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d278) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d27c) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d280) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d284) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d288) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d28c) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d290) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d294) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d298) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d29c) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2a0) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2a4) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2a8) * 0x401;
  do {
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar6 = (_DAT_18116d2ac + (uVar6 ^ uVar6 >> 6)) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2b0) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2b4) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2b8) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2bc) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2c0) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2c4) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2c8) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2cc) * 0x401;
  do {
    uVar1 = rdtsc();
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar11 = ((uint)uVar1 ^ (uint)((ulonglong)uVar1 >> 0x20)) * -0x166a7a15;
  pcVar2 = (code *)0x0;
  if ((uVar11 >> 0x18 ^ uVar11) * -0x3b31e57b < 0x226250) {
    do {
      local_78 = pcVar2;
      ppcVar5 = &local_78;
                    /* WARNING: Call to offcut address within same function */
      func_0x0001813bcb29(ppcVar5,&local_78);
      *ppcVar5 = FUN_1813f2240;
      uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar11 < 0) {
        uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
      }
      pcVar2 = local_78;
    } while (uVar11 != 0);
    uVar3 = (*local_78)(0,0xc0b6);
    if (1 < uVar3) {
      FUN_18113eab0();
    }
  }
  uVar6 = (FUN_18116d2ce + (uVar6 ^ uVar6 >> 6)) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2d4) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2d8) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2dc) * 0x401;
  do {
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar6 = (_DAT_18116d2e0 + (uVar6 ^ uVar6 >> 6)) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2e4) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2e8) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2ec) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _DAT_18116d2f0) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d2f4) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d2f8) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d2fc) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d300) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d304) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d308) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d30c) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d310) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d314) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d318) * 0x401;
  uVar3 = (ulonglong)uVar6;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d31c) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d320) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d324) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d328) * 0x401;
  uVar6 = ((uVar6 >> 6 ^ uVar6) + _UNK_18116d32c) * 0x401;
  uVar6 = ~((uVar6 >> 6 ^ uVar6) + 0xb372369a) + 0xa44f94f3;
  do {
    uVar3 = ((uVar3 ^ 0xffffffffffffffff) + 1 ^ 0xffffffffffffffff) + 1;
    uVar4 = ~((uVar4 ^ 0xffffffffffffffff) + 1) + 1;
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  if ((char)(((uVar6 * 0x400000 | uVar6 >> 10) == 0x501a0ee4) * '\x17') != '\0') {
    do {
      lVar7 = uVar3 + uVar4;
      uVar4 = ~((~(uVar4 - lVar7) + 1) - lVar7) + 1;
      uVar3 = lVar7 - uVar4;
      uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar6 < 0) {
        uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar6 != 0);
    fVar12 = (float)log2f(0,uVar3,uVar9,uVar10);
    fVar12 = ceilf(fVar12);
    fVar12 = powf(DAT_1824c41e0,fVar12);
    return (ulonglong)((double)fVar12 + DAT_1824c4520) & 0xffffffff;
  }
  uVar4 = thunk_FUN_1805a9280((longlong)
                              (int)(((iVar8 >> 1) - (iVar8 >> 3)) + iVar8 * 0x55555555 >> 0x1e ^
                                   0x980),uVar3,~(~uVar9 + 1) + 1);
  return uVar4;
}



############ FUN_ 18052e190 size=137 ############

void FUN_18052e190(longlong *param_1,int param_2,undefined4 param_3)

{
  longlong lVar1;
  ulonglong uVar2;
  uint uVar3;
  ulonglong uVar4;
  
  uVar2 = 0;
  if ((int)param_1[1] != param_2) {
    if ((0 < (int)param_1[1]) && (*param_1 != 0)) {
      FUN_1800010c0();
    }
    *param_1 = 0;
    if (param_2 < 0) {
      param_2 = 0;
    }
    *(int *)(param_1 + 1) = param_2;
    if (param_2 == 0) {
      return;
    }
    lVar1 = FUN_180001080(param_2 * 4);
    *param_1 = lVar1;
  }
  uVar4 = uVar2;
  if (0 < (int)param_1[1]) {
    do {
      uVar3 = (int)uVar4 + 1;
      *(undefined4 *)(uVar2 + *param_1) = param_3;
      uVar2 = uVar2 + 4;
      uVar4 = (ulonglong)uVar3;
    } while ((int)uVar3 < (int)param_1[1]);
  }
  return;
}



############ FUN_ 180001080 size=62 ############

ulonglong FUN_180001080(int param_1)

{
  void *pvVar1;
  ulonglong uVar2;
  
  if ((0 < param_1) && (param_1 <= param_1 + 0x48)) {
    pvVar1 = malloc((longlong)(param_1 + 0x48));
    if (pvVar1 == (void *)0x0) {
      uVar2 = 0;
    }
    else {
      uVar2 = (longlong)pvVar1 + 0x47U & 0xffffffffffffffc0;
      *(void **)(uVar2 - 8) = pvVar1;
    }
    return uVar2;
  }
  return 0;
}



############ FUN_ 18052dc30 size=227 ############

void FUN_18052dc30(undefined4 *param_1,int param_2,undefined4 param_3)

{
  int iVar1;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  undefined1 local_18 [4];
  undefined4 local_14;
  undefined4 local_10;
  undefined4 local_c;
  
  if (param_1[1] == param_2) {
    return;
  }
  param_1[2] = param_3;
  param_1[1] = param_2;
  FUN_1805335c0(param_1,&local_28,param_2);
  if ((int)param_1[2] < 0) {
    FUN_180534550(param_1 + 0x12,local_24);
    FUN_180534550(param_1 + 0x1a,local_20);
  }
  else {
    FUN_1805335c0(param_1,local_18);
    FUN_180534550(param_1 + 0x12,local_14);
    FUN_180534550(param_1 + 0x1a,local_10);
    local_1c = local_c;
  }
  FUN_180534550(param_1 + 0x16,local_1c);
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(param_1 + 6);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_1 + 8,local_28,*param_1,1,*(undefined8 *)(param_1 + 0x12),
                      *(undefined8 *)(param_1 + 0x16));
}



############ FUN_ 18052df60 size=450 ############

void FUN_18052df60(longlong param_1)

{
  longlong lVar1;
  float *pfVar2;
  longlong lVar3;
  int iVar4;
  longlong lVar5;
  float fVar6;
  
  fVar6 = 0.0;
  FUN_18052e190(param_1 + 0x340,*(undefined4 *)(param_1 + 0x1a0),0);
  FUN_18052e190(param_1 + 0x350,*(undefined4 *)(param_1 + 0x1a0),0);
  FUN_18052e190(param_1 + 0x3b0,*(int *)(param_1 + 0x1a0) * 2,0);
  FUN_1805356f0(*(undefined8 *)(param_1 + 0x350),*(undefined4 *)(param_1 + 0x1a0));
  FUN_1805356f0(*(undefined8 *)(param_1 + 0x340),*(undefined4 *)(param_1 + 0x1a0));
  if (*(char *)(param_1 + 0x1b4) == '\0') {
    iVar4 = *(int *)(param_1 + 0x1a0);
    lVar5 = (longlong)iVar4;
    lVar1 = 0;
    if (3 < lVar5) {
      pfVar2 = (float *)(*(longlong *)(param_1 + 0x340) + 8);
      lVar3 = (lVar5 - 4U >> 2) + 1;
      lVar1 = lVar3 * 4;
      do {
        fVar6 = fVar6 + pfVar2[-2] + pfVar2[-1] + *pfVar2 + pfVar2[1];
        pfVar2 = pfVar2 + 4;
        lVar3 = lVar3 + -1;
      } while (lVar3 != 0);
    }
    for (; lVar1 < lVar5; lVar1 = lVar1 + 1) {
      fVar6 = fVar6 + *(float *)(*(longlong *)(param_1 + 0x340) + lVar1 * 4);
    }
  }
  else {
    FUN_18052da70(*(undefined8 *)(param_1 + 0x3b0),*(undefined8 *)(param_1 + 0x340),
                  *(undefined8 *)(param_1 + 0x340),*(undefined4 *)(param_1 + 0x1a0));
    iVar4 = *(int *)(param_1 + 0x1a0);
    lVar5 = (longlong)iVar4;
    lVar1 = 0;
    if (3 < lVar5) {
      pfVar2 = (float *)(*(longlong *)(param_1 + 0x3b0) + 8);
      lVar3 = (lVar5 - 4U >> 2) + 1;
      lVar1 = lVar3 * 4;
      do {
        fVar6 = fVar6 + pfVar2[-2] + pfVar2[-1] + *pfVar2 + pfVar2[1];
        pfVar2 = pfVar2 + 4;
        lVar3 = lVar3 + -1;
      } while (lVar3 != 0);
    }
    for (; lVar1 < lVar5; lVar1 = lVar1 + 1) {
      fVar6 = fVar6 + *(float *)(*(longlong *)(param_1 + 0x3b0) + lVar1 * 4);
    }
  }
  fVar6 = DAT_1824c3ea4 / (fVar6 / (float)iVar4);
  *(float *)(param_1 + 0x1a4) = fVar6;
  *(float *)(param_1 + 0x1a4) = fVar6 / (float)*(int *)(param_1 + 0x1ac);
  return;
}



############ FUN_ 18049b000 size=102 ############

uint FUN_18049b000(longlong *param_1,longlong *param_2)

{
  uint *puVar1;
  uint uVar2;
  longlong lVar3;
  int iVar4;
  
  iVar4 = *(int *)((longlong)param_1 + 0xc) + 1;
  if ((int)param_1[1] < iVar4) {
    FUN_18048a300(param_1,*(int *)((longlong)param_1 + 0xc) + 9 + iVar4 / 2 & 0xfffffff8);
  }
  iVar4 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar4 + 1;
  lVar3 = *param_2;
  *(longlong *)(*param_1 + (longlong)iVar4 * 8) = lVar3;
  uVar2 = *(uint *)(lVar3 + -0x10);
  if ((uVar2 & 0x30000000) == 0) {
    LOCK();
    puVar1 = (uint *)(lVar3 + -0x10);
    uVar2 = *puVar1;
    *puVar1 = *puVar1 + 1;
    UNLOCK();
  }
  return uVar2;
}



############ FUN_ 18052f680 size=454 ############

void FUN_18052f680(longlong *param_1)

{
  uint *_Memory;
  longlong lVar1;
  undefined8 *puVar2;
  int iVar3;
  longlong *plVar4;
  longlong *plVar5;
  uint uVar6;
  longlong local_res8;
  longlong local_res10;
  undefined8 *local_res18 [2];
  undefined1 local_40 [24];
  
  if ((char)param_1[0xa2] != '\0') {
    return;
  }
  *(undefined1 *)(param_1 + 0xa2) = 1;
  FUN_18049c4e0(&local_res10,
                "lBnBKPSzl9hjqL9t6KtsEn5XFT0HQWftYA4e32/dbJSqTszNkf71S7wl8xnrBCTvwaU9YAhT8oxpw3tNwx+UoUBhEj2EuucDWJ/lfs5lip3iNTdOEArLWy3vEz1S9qkJ/Z9kMksfxEt3sOhyCX/j+qbkcqKsscs9aq+/7xGcX9Hk/DunFHeRV5vgJLakKAKm3yA+b2dKqNvCw2DTtnVSHRYJ/48vDmpp9flpJGZtIMZ0HxvdWac9o7bxN2476ZJcHUjsTWyB5WOWbxGkGSSvDmHyzVd/q5ecwBfkUEn3Ev1pfL25plhN9ciUXX0cLRSoFqHefaAOH9QbfMjzww0DAensSgvMmqA5B6BYP+Pri/nTu7rAMwTRn5pVcTD1zTs40GfCO51gf/0u//L5kPSffrFxyiyAwgt3ZtAPLh+lLG9BIj1x+NyYh3HKTtq6cMKIqOYZtiAiuqeeMoj13UeIowN0fCqRLZ1AW6PB5RCaCtZ3KcD9QAWMmdByMXZ0pUldRCoB+L8XOXBNzc2jG46SzeLS+QKTaPnzgPBKaxJYGX2ww46+Pm27mJnMJq5WCvzicIufjnZGhY2myql3QG49M/rCQ0YQjIOjx5eFyAk1h2X2dDT4xveIxK+CU8mLVu1N6smldr3RQN7oOOFJ8QVvcJSn0MfdLldhG4k/8psbP1D0cRm8xiZYDoVWXzpNdixn"
               );
  local_res8 = local_res10;
  _Memory = (uint *)(local_res10 + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    *_Memory = *_Memory + 1;
    UNLOCK();
  }
  FUN_1805337e0(param_1 + 0x8a,&local_res8);
  plVar5 = param_1 + 0xa3;
  uVar6 = (int)param_1[0xa4] - 0x10;
  if ((-1 < (int)uVar6) && ((uVar6 & 0x1f) == 0)) {
    FUN_18123a6f0(plVar5,local_40,uVar6,0x10);
    FUN_18124a200(plVar5,(longlong)(int)uVar6,0);
    iVar3 = FUN_18141b260(param_1 + 0x8b);
    if (iVar3 == 0) {
      if ((*_Memory & 0x30000000) == 0) {
        LOCK();
        uVar6 = *_Memory;
        *_Memory = *_Memory - 1;
        UNLOCK();
        if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
          free(_Memory);
        }
      }
      goto LAB_18052f7a1;
    }
  }
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar6 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar6 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  plVar5 = (longlong *)0x0;
LAB_18052f7a1:
  if ((((DAT_1826216ff != '\0') && (DAT_18262170c != '\0')) && (DAT_18262170d != '\0')) &&
     (((DAT_1826216fd != '\0' && (DAT_1826216fe != '\0')) &&
      ((plVar5 != (longlong *)0x0 && (*plVar5 != 0)))))) {
    plVar4 = (longlong *)(**(code **)(*param_1 + 0x218))(param_1,local_res18);
    plVar5 = param_1 + 0x2e;
    if (plVar5 != plVar4) {
      lVar1 = *plVar4;
      *plVar4 = 0;
      puVar2 = (undefined8 *)*plVar5;
      *plVar5 = lVar1;
      if (puVar2 != (undefined8 *)0x0) {
        (**(code **)*puVar2)(puVar2,1);
      }
    }
    if (local_res18[0] != (undefined8 *)0x0) {
      (**(code **)*local_res18[0])(local_res18[0],1);
    }
  }
  FUN_18052f850(param_1);
  return;
}



############ FUN_ 18113eab0 size=36 ############

void FUN_18113eab0(void)

{
  int iVar1;
  HANDLE pvVar2;
  
  iVar1 = FUN_18113f2d0();
  if (iVar1 != 0) {
    pvVar2 = GetCurrentThread();
    FUN_18113ebf0(pvVar2);
    return;
  }
  return;
}



############ FUN_ 18114b490 size=379 ############

/* WARNING: Control flow encountered bad instruction data */

void FUN_18114b490(void)

{
  uint uVar1;
  int iVar2;
  int unaff_retaddr;
  undefined1 auStack_98 [72];
  uint local_50;
  ulonglong local_30;
  
  local_30 = DAT_182615970 ^ (ulonglong)auStack_98;
  uVar1 = (uint)&stack0x00000000 & 0x71ff;
  iVar2 = uVar1 * uVar1 + 1;
  uVar1 = (iVar2 >> 4) + (iVar2 >> 1) + iVar2 * 0x24924924 >> 0x1d;
  uVar1 = (int)(uVar1 - 7) >> 0x1f & uVar1;
  local_50 = ((int)(uVar1 | -uVar1) >> 0x1f) * -0xa5fb ^ 0xa8ab;
  DAT_18262b4c4 =
       (DAT_18262b4c4 >> 4 | DAT_18262b4c4 << 0x1c) & 0xc3c3c3c3 |
       (DAT_18262b4c4 << 4 | DAT_18262b4c4 >> 0x1c) & 0x3c3c3c3c;
  do {
    FUN_18114b0f5();
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  FUN_18114b631();
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}



############ FUN_ 1812c37c0 size=344 ############

longlong * FUN_1812c37c0(longlong param_1,longlong *param_2)

{
  int iVar1;
  longlong lVar2;
  int iVar3;
  ulonglong uVar4;
  longlong *plVar5;
  ulonglong uVar6;
  ulonglong uVar7;
  
  uVar4 = 0;
  *param_2 = 0;
  param_2[1] = 0;
  param_2[2] = 0;
  param_2[3] = 0;
  plVar5 = *(longlong **)(param_1 + 0xd0);
  uVar6 = (ulonglong)((longlong)(plVar5 + *(int *)(param_1 + 0xdc)) + (7 - (longlong)plVar5)) >> 3;
  if (plVar5 + *(int *)(param_1 + 0xdc) < plVar5) {
    uVar6 = uVar4;
  }
  uVar7 = uVar4;
  if (uVar6 != 0) {
    do {
      iVar1 = *(int *)((longlong)param_2 + 0xc);
      lVar2 = *plVar5;
      iVar3 = iVar1 + 1;
      if ((int)param_2[1] < iVar3) {
        if (iVar3 < 0) {
          iVar3 = iVar1 + 2;
        }
        FUN_1804d5cd0(param_2,iVar1 + 9 + (iVar3 >> 1) & 0xfffffff8);
      }
      iVar3 = *(int *)((longlong)param_2 + 0xc);
      *(int *)((longlong)param_2 + 0xc) = iVar3 + 1;
      FUN_18123db10(*param_2 + (longlong)iVar3 * 0x28,lVar2 + 0x10);
      plVar5 = plVar5 + 1;
      uVar7 = uVar7 + 1;
    } while (uVar7 != uVar6);
  }
  plVar5 = *(longlong **)(param_1 + 0xe0);
  uVar6 = (ulonglong)((longlong)(plVar5 + *(int *)(param_1 + 0xec)) + (7 - (longlong)plVar5)) >> 3;
  if (plVar5 + *(int *)(param_1 + 0xec) < plVar5) {
    uVar6 = uVar4;
  }
  if (uVar6 != 0) {
    do {
      iVar1 = *(int *)((longlong)param_2 + 0x1c);
      lVar2 = *plVar5;
      iVar3 = iVar1 + 1;
      if ((int)param_2[3] < iVar3) {
        if (iVar3 < 0) {
          iVar3 = iVar1 + 2;
        }
        FUN_1804d5cd0(param_2 + 2,iVar1 + 9 + (iVar3 >> 1) & 0xfffffff8);
      }
      iVar3 = *(int *)((longlong)param_2 + 0x1c);
      *(int *)((longlong)param_2 + 0x1c) = iVar3 + 1;
      FUN_18123db10(param_2[2] + (longlong)iVar3 * 0x28,lVar2 + 0x10);
      plVar5 = plVar5 + 1;
      uVar4 = uVar4 + 1;
    } while (uVar4 != uVar6);
  }
  return param_2;
}



############ FUN_ 18123d3f0 size=108 ############

int FUN_18123d3f0(longlong *param_1)

{
  uint uVar1;
  longlong lVar2;
  int iVar3;
  longlong *plVar4;
  
  plVar4 = (longlong *)*param_1;
  iVar3 = 0;
  if (plVar4 == (longlong *)0x0) {
    plVar4 = param_1 + 1;
  }
  for (lVar2 = (longlong)(int)param_1[4] >> 5; -1 < lVar2; lVar2 = lVar2 + -1) {
    uVar1 = *(uint *)((longlong)plVar4 + lVar2 * 4);
    uVar1 = uVar1 - (uVar1 >> 1 & 0x55555555);
    uVar1 = (uVar1 >> 2 & 0x33333333) + (uVar1 & 0x33333333);
    uVar1 = (uVar1 >> 4) + uVar1 & 0xf0f0f0f;
    uVar1 = uVar1 + (uVar1 >> 8);
    iVar3 = iVar3 + ((uVar1 >> 0x10) + uVar1 & 0x3f);
  }
  return iVar3;
}



############ FUN_ 18047c500 size=72 ############

void FUN_18047c500(undefined8 *param_1)

{
  if (0 < *(int *)((longlong)param_1 + 0xc)) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)*param_1);
  }
  *(undefined4 *)((longlong)param_1 + 0xc) = 0;
                    /* WARNING: Could not recover jumptable at 0x00018047c551. Too many branches */
                    /* WARNING: Subroutine does not return */
                    /* WARNING: Treating indirect jump as call */
  free((void *)*param_1);
  return;
}



############ FUN_ 180531620 size=192 ############

void FUN_180531620(longlong *param_1)

{
  void *_Dst;
  void *_Memory;
  longlong lVar1;
  int iVar2;
  longlong lVar3;
  
  iVar2 = *(int *)((longlong)param_1 + 0xc) + -1;
  if (-1 < iVar2) {
    lVar1 = (longlong)iVar2 * 8;
    lVar3 = lVar1;
    do {
      _Memory = *(void **)(lVar1 + *param_1);
      _Dst = (void *)(lVar3 + *param_1);
      memmove(_Dst,(void *)((longlong)_Dst + 8),
              (longlong)((*(int *)((longlong)param_1 + 0xc) - iVar2) + -1) << 3);
      *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
      if (_Memory != (void *)0x0) {
        *(undefined8 *)((longlong)_Memory + 0x20) = 0;
        if ((0 < *(int *)((longlong)_Memory + 0x18)) &&
           (*(longlong *)((longlong)_Memory + 0x10) != 0)) {
          FUN_1800010c0();
        }
        *(undefined8 *)((longlong)_Memory + 0x10) = 0;
        *(undefined4 *)((longlong)_Memory + 0x18) = 0;
                    /* WARNING: Subroutine does not return */
        free(_Memory);
      }
      lVar3 = lVar3 + -8;
      lVar1 = lVar1 + -8;
      iVar2 = iVar2 + -1;
    } while (-1 < iVar2);
  }
  return;
}



############ FUN_ 1811316e0 size=58 ############

void FUN_1811316e0(size_t param_1)

{
  int iVar1;
  void *pvVar2;
  
  do {
    pvVar2 = malloc(param_1);
    if (pvVar2 != (void *)0x0) {
      return;
    }
    iVar1 = _callnewh(param_1);
  } while (iVar1 != 0);
  if (param_1 == 0xffffffffffffffff) {
                    /* WARNING: Subroutine does not return */
    FUN_181132538();
  }
                    /* WARNING: Subroutine does not return */
  FUN_181132518();
}



############ FUN_ 18052bc40 size=103 ############

void FUN_18052bc40(undefined8 *param_1,undefined4 param_2)

{
  int iVar1;
  ulonglong uVar2;
  uint uVar3;
  ulonglong uVar4;
  
  iVar1 = FUN_1813bbf80(param_2);
  if (*(int *)(param_1 + 1) != iVar1) {
    FUN_18052e190(param_1 + 2,iVar1,0);
  }
  uVar2 = 0;
  *(int *)(param_1 + 1) = iVar1;
  *param_1 = 0;
  uVar4 = uVar2;
  if (0 < *(int *)(param_1 + 3)) {
    do {
      uVar3 = (int)uVar4 + 1;
      *(undefined4 *)(uVar2 + param_1[2]) = 0;
      uVar2 = uVar2 + 4;
      uVar4 = (ulonglong)uVar3;
    } while ((int)uVar3 < *(int *)(param_1 + 3));
  }
  param_1[4] = param_1[2];
  return;
}



############ FUN_ 18047cb30 size=115 ############

void FUN_18047cb30(undefined8 *param_1,int param_2)

{
  void *pvVar1;
  
  if (*(int *)(param_1 + 1) == param_2) {
    *(int *)(param_1 + 1) = param_2;
    return;
  }
  pvVar1 = (void *)*param_1;
  if (0 < param_2) {
    if (pvVar1 == (void *)0x0) {
      pvVar1 = malloc((longlong)param_2 * 8);
      *param_1 = pvVar1;
      *(int *)(param_1 + 1) = param_2;
      return;
    }
    pvVar1 = realloc(pvVar1,(longlong)param_2 * 8);
    *param_1 = pvVar1;
    *(int *)(param_1 + 1) = param_2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar1);
}



############ FUN_ 1811c4880 size=1014 ############

/* WARNING: Removing unreachable block (ram,0x0001811c49d6) */
/* WARNING: Removing unreachable block (ram,0x0001811c4914) */
/* WARNING: Removing unreachable block (ram,0x0001811c48dc) */
/* WARNING: Removing unreachable block (ram,0x0001811c49bc) */
/* WARNING: Removing unreachable block (ram,0x0001811c4a14) */

longlong FUN_1811c4880(undefined8 param_1)

{
  ulonglong uVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  undefined1 auStack_168 [32];
  undefined4 local_148;
  undefined8 local_140;
  undefined8 local_118;
  undefined8 local_110;
  undefined4 local_104;
  uint local_100;
  undefined8 local_f0;
  undefined1 *local_d0;
  undefined8 local_c8;
  undefined *local_a0;
  ulonglong local_30;
  
  local_30 = DAT_182615970 ^ (ulonglong)auStack_168;
  if (((uint)&stack0x00000000 >> 9 & 1) == 0) {
    uVar4 = 0x138a745a;
  }
  else {
    uVar4 = 1;
  }
  uVar2 = (uint)&stack0x00000000 & 0x17f;
  iVar3 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  local_100 = (int)(-uVar4 | uVar4) >> 0x1f & 0xb6f0U ^
              0xb5e0U - (((iVar3 >> 1) - (iVar3 >> 3)) + iVar3 * 0x55555555 >> 0x1e);
  local_104 = 0x590;
  local_f0 = 0x180000000;
  local_140 = 0;
  local_110 = 0x14153f0;
  local_118 = 0x22c;
  local_d0 = &LAB_1814153f0;
  local_a0 = &DAT_18141561c;
  local_148 = 0xbf;
  local_c8 = param_1;
  FUN_1811c5294();
                    /* WARNING: Call to offcut address within same function */
  uVar1 = func_0x0001811c4af2();
  return ~(~uVar1 + 1) + 1;
}



############ FUN_ 1812a77d0 size=436 ############

void FUN_1812a77d0(longlong param_1,int param_2)

{
  longlong *plVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  longlong lVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  longlong lVar9;
  longlong lVar10;
  longlong lVar11;
  int iVar12;
  undefined8 uVar13;
  undefined8 local_20;
  undefined8 uStack_18;
  
  uVar13 = 0xfffffffffffffffe;
  EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182673a78);
  iVar3 = *(int *)(param_1 + 0x10);
  iVar12 = 1;
  if (1 < param_2) {
    iVar12 = param_2;
  }
  *(int *)(param_1 + 0x10) = iVar12;
  lVar9 = DAT_1826736e0;
  if (iVar3 == 0) {
    if (DAT_1826736e0 == 0) {
      uVar13 = FUN_1811316e0(0x2d8);
      DAT_1826736e0 = FUN_1804d0200(uVar13);
    }
    lVar9 = DAT_1826736e0;
    lVar11 = *(longlong *)(DAT_1826736e0 + 0x220) - *(longlong *)(DAT_1826736e0 + 0x218) >> 4;
    uVar4 = *(undefined4 *)(param_1 + 0x10);
    uStack_18 = CONCAT44(uStack_18._4_4_,uVar4);
    puVar5 = *(undefined4 **)(DAT_1826736e0 + 0x220);
    local_20 = param_1;
    if (*(undefined4 **)(DAT_1826736e0 + 0x228) == puVar5) {
      FUN_1804d1fe0((longlong *)(DAT_1826736e0 + 0x218),puVar5,&local_20);
    }
    else {
      local_20._0_4_ = (undefined4)param_1;
      local_20._4_4_ = (undefined4)((ulonglong)param_1 >> 0x20);
      *puVar5 = (undefined4)local_20;
      puVar5[1] = local_20._4_4_;
      puVar5[2] = uVar4;
      puVar5[3] = uStack_18._4_4_;
      *(longlong *)(lVar9 + 0x220) = *(longlong *)(lVar9 + 0x220) + 0x10;
    }
    *(longlong *)(param_1 + 8) = lVar11;
    FUN_1804d0860(lVar9,lVar11);
    FUN_181215c10(lVar9 + 0xf8);
  }
  else if (DAT_1826736e0 != 0) {
    lVar11 = *(longlong *)(param_1 + 8);
    lVar10 = lVar11 * 0x10;
    iVar3 = *(int *)(*(longlong *)(DAT_1826736e0 + 0x218) + 8 + lVar10);
    if (iVar12 != iVar3) {
      *(int *)(*(longlong *)(DAT_1826736e0 + 0x218) + 8 + lVar10) = iVar12;
      if (iVar3 < iVar12) {
        FUN_1804d07a0(lVar9,lVar11,lVar11,iVar12,uVar13);
      }
      else if (lVar11 != 0) {
        plVar1 = (longlong *)(*(longlong *)(lVar9 + 0x218) + lVar10);
        local_20 = *plVar1;
        uStack_18 = plVar1[1];
        do {
          lVar6 = *(longlong *)(lVar9 + 0x218);
          if (*(int *)(lVar6 + -8 + lVar10) <= (int)uStack_18) break;
          puVar2 = (undefined4 *)(lVar6 + -0x10 + lVar10);
          uVar4 = puVar2[1];
          uVar7 = puVar2[2];
          uVar8 = puVar2[3];
          puVar5 = (undefined4 *)(lVar6 + lVar10);
          *puVar5 = *puVar2;
          puVar5[1] = uVar4;
          puVar5[2] = uVar7;
          puVar5[3] = uVar8;
          *(longlong *)(*(longlong *)(*(longlong *)(lVar9 + 0x218) + lVar10) + 8) = lVar11;
          lVar10 = lVar10 + -0x10;
          lVar11 = lVar11 + -1;
        } while (lVar11 != 0);
        plVar1 = (longlong *)(*(longlong *)(lVar9 + 0x218) + lVar11 * 0x10);
        *plVar1 = local_20;
        plVar1[1] = uStack_18;
        *(longlong *)(local_20 + 8) = lVar11;
      }
      FUN_181215c10(lVar9 + 0xf8);
    }
  }
                    /* WARNING: Could not recover jumptable at 0x0001812a797d. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182673a78);
  return;
}



############ FUN_ 18052f850 size=190 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18052f850(longlong param_1)

{
  undefined8 uVar1;
  BOOL BVar2;
  undefined1 auStack_88 [32];
  undefined8 local_68;
  undefined **local_58;
  longlong local_50;
  undefined ***local_20;
  ulonglong local_18;
  
  local_68 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_88;
  BVar2 = TryEnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x528));
  if (BVar2 != 0) {
    uVar1 = *(undefined8 *)(param_1 + 0x168);
    *(undefined8 *)(param_1 + 0x168) = *(undefined8 *)(param_1 + 0x170);
    *(undefined8 *)(param_1 + 0x170) = uVar1;
    LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x528));
    local_58 = std::_Func_impl_no_alloc<<lambda_32f235fddca0a74585f1059c6d9ec41d>,void>::vftable;
    local_20 = &local_58;
    local_50 = param_1;
    FUN_18120c6e0(&local_58,param_1 + 0x158);
    if (local_20 != (undefined ***)0x0) {
      (*(code *)(*local_20)[4])
                (local_20,CONCAT71((int7)((ulonglong)&local_58 >> 8),local_20 != &local_58));
    }
  }
}



############ FUN_ 181198f30 size=302 ############

void FUN_181198f30(longlong param_1,char param_2)

{
  char cVar1;
  longlong *plVar2;
  longlong *plVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  longlong *plVar8;
  byte bVar9;
  longlong *plVar10;
  byte bVar11;
  
  if (param_2 == '\0') {
    if (*(char *)(param_1 + 0x70) != '\0') {
      puVar4 = *(undefined8 **)(param_1 + 0x38);
      bVar11 = 0;
      puVar5 = (undefined8 *)*puVar4;
      while (puVar5 != puVar4) {
        bVar9 = (**(code **)(**(longlong **)(puVar5[5] + 0x288) + 0x10))();
        bVar11 = bVar11 | bVar9;
        puVar6 = (undefined8 *)puVar5[2];
        if (*(char *)((longlong)puVar6 + 0x19) == '\0') {
          cVar1 = *(char *)((longlong)*puVar6 + 0x19);
          puVar5 = puVar6;
          puVar6 = (undefined8 *)*puVar6;
          while (cVar1 == '\0') {
            cVar1 = *(char *)((longlong)*puVar6 + 0x19);
            puVar5 = puVar6;
            puVar6 = (undefined8 *)*puVar6;
          }
        }
        else {
          cVar1 = *(char *)((longlong)puVar5[1] + 0x19);
          puVar7 = (undefined8 *)puVar5[1];
          puVar6 = puVar5;
          while ((puVar5 = puVar7, cVar1 == '\0' && (puVar6 == (undefined8 *)puVar5[2]))) {
            cVar1 = *(char *)((longlong)puVar5[1] + 0x19);
            puVar7 = (undefined8 *)puVar5[1];
            puVar6 = puVar5;
          }
        }
      }
      LOCK();
      *(byte *)(param_1 + 0x70) = bVar11;
      UNLOCK();
    }
  }
  else {
    plVar2 = *(longlong **)(param_1 + 0x38);
    plVar10 = (longlong *)*plVar2;
    if (plVar10 != plVar2) {
      do {
        FUN_1811c4880(plVar10[5]);
        plVar3 = (longlong *)plVar10[2];
        if (*(char *)((longlong)plVar3 + 0x19) == '\0') {
          cVar1 = *(char *)(*plVar3 + 0x19);
          plVar10 = plVar3;
          plVar3 = (longlong *)*plVar3;
          while (cVar1 == '\0') {
            cVar1 = *(char *)(*plVar3 + 0x19);
            plVar10 = plVar3;
            plVar3 = (longlong *)*plVar3;
          }
        }
        else {
          cVar1 = *(char *)(plVar10[1] + 0x19);
          plVar8 = (longlong *)plVar10[1];
          plVar3 = plVar10;
          while ((plVar10 = plVar8, cVar1 == '\0' && (plVar3 == (longlong *)plVar10[2]))) {
            cVar1 = *(char *)(plVar10[1] + 0x19);
            plVar8 = (longlong *)plVar10[1];
            plVar3 = plVar10;
          }
        }
      } while (plVar10 != plVar2);
      return;
    }
  }
  return;
}



############ FUN_ 18052f640 size=58 ############

uint * FUN_18052f640(int *param_1,uint *param_2,uint param_3,int param_4,char param_5)

{
  int iVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  
  if (param_5 == '\0') {
    iVar2 = param_1[1];
  }
  else {
    iVar2 = *param_1;
  }
  iVar1 = param_1[2];
  uVar3 = iVar1 + iVar2 + param_4 & iVar1 - 1U;
  uVar4 = iVar1 - uVar3;
  *param_2 = uVar3;
  if ((int)param_3 < (int)uVar4) {
    uVar4 = param_3;
  }
  param_2[1] = uVar4;
  param_2[2] = param_3 - uVar4;
  return param_2;
}



############ FUN_ 18052dbc0 size=97 ############

void FUN_18052dbc0(undefined8 param_1,undefined8 param_2,undefined4 param_3)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0();
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,param_1,param_3);
}



############ FUN_ 18052fc90 size=174 ############

void FUN_18052fc90(int *param_1,float param_2)

{
  int iVar1;
  float fVar2;
  int iVar3;
  longlong lVar4;
  
  fVar2 = DAT_1824c3ea4;
  iVar1 = param_1[1];
  iVar3 = 0;
  if (0 < *param_1) {
    lVar4 = 0;
    do {
      if ((param_2 != fVar2) && ((char)param_1[0x48] == '\0')) {
        if (param_2 == 0.0) {
          memset(*(void **)(lVar4 + *(longlong *)(param_1 + 4)),0,(longlong)iVar1 << 2);
        }
        else {
          FUN_1812b3270(*(void **)(lVar4 + *(longlong *)(param_1 + 4)),param_2,iVar1);
        }
      }
      iVar3 = iVar3 + 1;
      lVar4 = lVar4 + 8;
    } while (iVar3 < *param_1);
  }
  return;
}



############ FUN_ 18049c9e0 size=152 ############

undefined8 * FUN_18049c9e0(undefined8 *param_1,char *param_2)

{
  char *pcVar1;
  char cVar2;
  longlong lVar3;
  undefined4 *puVar4;
  char *pcVar5;
  
  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {
    lVar3 = FUN_18049d240(param_2);
    puVar4 = (undefined4 *)thunk_FUN_1811316e0();
    LOCK();
    *puVar4 = 0;
    UNLOCK();
    *(ulonglong *)(puVar4 + 2) = lVar3 + 4U & 0xfffffffffffffffc;
    pcVar1 = (char *)(puVar4 + 4);
    cVar2 = *param_2;
    *pcVar1 = cVar2;
    if (cVar2 != '\0') {
      pcVar5 = pcVar1;
      do {
        cVar2 = pcVar5[(longlong)(param_2 + (1 - (longlong)pcVar1))];
        pcVar5 = pcVar5 + 1;
        *pcVar5 = cVar2;
      } while (cVar2 != '\0');
    }
    *param_1 = pcVar1;
    return param_1;
  }
  *param_1 = &DAT_1821dbf98;
  return param_1;
}



############ FUN_ 1812c1130 size=139 ############

void FUN_1812c1130(longlong param_1,longlong param_2)

{
  longlong *plVar1;
  int iVar2;
  longlong *plVar3;
  
  EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x74));
  plVar3 = *(longlong **)(param_1 + 0x18);
  iVar2 = *(int *)(param_1 + 0x24);
  plVar1 = plVar3 + iVar2;
  for (; plVar3 != plVar1; plVar3 = plVar3 + 1) {
    if (param_2 == *plVar3) goto LAB_1812c11a1;
  }
  if (*(int *)(param_1 + 0x20) < iVar2 + 1) {
    FUN_18047cb30(param_1 + 0x18,iVar2 + 9 + (iVar2 + 1) / 2 & 0xfffffff8);
  }
  iVar2 = *(int *)(param_1 + 0x24);
  *(int *)(param_1 + 0x24) = iVar2 + 1;
  *(longlong *)(*(longlong *)(param_1 + 0x18) + (longlong)iVar2 * 8) = param_2;
LAB_1812c11a1:
                    /* WARNING: Could not recover jumptable at 0x0001812c11b4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x74));
  return;
}



############ FUN_ 1812c1070 size=180 ############

void FUN_1812c1070(longlong param_1,longlong param_2)

{
  void *_Dst;
  int iVar1;
  longlong lVar2;
  int iVar3;
  
  EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x74));
  iVar1 = *(int *)(param_1 + 0x24);
  iVar3 = 0;
  lVar2 = 0;
  if (0 < iVar1) {
    do {
      if (param_2 == *(longlong *)(*(longlong *)(param_1 + 0x18) + lVar2 * 8)) {
        _Dst = (void *)(*(longlong *)(param_1 + 0x18) + (longlong)iVar3 * 8);
        memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)((iVar1 - iVar3) + -1) << 3);
        *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + -1;
        iVar1 = *(int *)(param_1 + 0x24);
        iVar3 = 0;
        if (0 < iVar1 * 2) {
          iVar3 = iVar1 * 2;
        }
        if (iVar3 < *(int *)(param_1 + 0x20)) {
          if (iVar1 < 8) {
            iVar1 = 8;
          }
          if (iVar1 < *(int *)(param_1 + 0x20)) {
            FUN_18047cb30(param_1 + 0x18);
          }
        }
        break;
      }
      iVar3 = iVar3 + 1;
      lVar2 = lVar2 + 1;
    } while (lVar2 < iVar1);
  }
                    /* WARNING: Could not recover jumptable at 0x0001812c111d. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x74));
  return;
}



############ FUN_ 1812bf000 size=137 ############

void FUN_1812bf000(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined1 param_4)

{
  undefined1 auStack_b8 [32];
  undefined1 local_98;
  void *local_68;
  undefined8 local_60;
  undefined8 local_58;
  undefined8 local_50;
  undefined8 local_48;
  ulonglong local_40;
  
  local_40 = DAT_182615970 ^ (ulonglong)auStack_b8;
  local_50 = 4;
  local_48 = 0xffffffff;
  local_68 = (void *)0x0;
  local_60 = 0;
  local_58 = 0;
  local_98 = param_4;
  FUN_18123c5f0(param_2,&local_68);
                    /* WARNING: Subroutine does not return */
  free(local_68);
}



############ FUN_ 18123c5f0 size=193 ############

ulonglong FUN_18123c5f0(longlong *param_1,longlong *param_2)

{
  uint uVar1;
  int iVar2;
  char cVar3;
  longlong lVar4;
  ulonglong uVar5;
  int iVar6;
  char cVar7;
  longlong *plVar8;
  
  if (*(char *)((longlong)param_1 + 0x24) != '\0') {
    plVar8 = (longlong *)*param_1;
    if (plVar8 == (longlong *)0x0) {
      plVar8 = param_1 + 1;
    }
    iVar6 = (int)param_1[4] >> 5;
    lVar4 = (longlong)iVar6;
    if (-1 < iVar6) {
LAB_18123c620:
      uVar1 = *(uint *)((longlong)plVar8 + lVar4 * 4);
      if (uVar1 == 0) goto code_r0x00018123c628;
      iVar2 = 0x1f;
      if (uVar1 != 0) {
        for (; uVar1 >> iVar2 == 0; iVar2 = iVar2 + -1) {
        }
      }
      if (iVar6 * 0x20 + iVar2 < 0) goto LAB_18123c630;
      cVar7 = '\x01';
      goto LAB_18123c632;
    }
  }
LAB_18123c630:
  cVar7 = '\0';
LAB_18123c632:
  if (*(char *)((longlong)param_2 + 0x24) != '\0') {
    plVar8 = (longlong *)*param_2;
    if (plVar8 == (longlong *)0x0) {
      plVar8 = param_2 + 1;
    }
    iVar6 = (int)param_2[4] >> 5;
    lVar4 = (longlong)iVar6;
    if (-1 < iVar6) {
LAB_18123c653:
      uVar1 = *(uint *)((longlong)plVar8 + lVar4 * 4);
      if (uVar1 == 0) goto code_r0x00018123c65b;
      iVar2 = 0x1f;
      if (uVar1 != 0) {
        for (; uVar1 >> iVar2 == 0; iVar2 = iVar2 + -1) {
        }
      }
      if (-1 < iVar6 * 0x20 + iVar2) {
        cVar3 = '\x01';
        goto LAB_18123c665;
      }
    }
  }
LAB_18123c663:
  cVar3 = '\0';
LAB_18123c665:
  if (cVar7 == cVar3) {
    uVar5 = FUN_18123c4d0(param_1,param_2);
    if (cVar7 != '\0') {
      return (ulonglong)(uint)-(int)uVar5;
    }
  }
  else {
    uVar5 = 1;
    if (cVar7 != '\0') {
      uVar5 = 0xffffffff;
    }
  }
  return uVar5;
code_r0x00018123c628:
  iVar6 = iVar6 + -1;
  lVar4 = lVar4 + -1;
  if (lVar4 < 0) goto LAB_18123c630;
  goto LAB_18123c620;
code_r0x00018123c65b:
  iVar6 = iVar6 + -1;
  lVar4 = lVar4 + -1;
  if (lVar4 < 0) goto LAB_18123c663;
  goto LAB_18123c653;
}



############ FUN_ 18052c310 size=339 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x00018052c3fa) */
/* WARNING: Removing unreachable block (ram,0x00018052c3ff) */
/* WARNING: Removing unreachable block (ram,0x00018052c40a) */
/* WARNING: Removing unreachable block (ram,0x00018052c40f) */
/* WARNING: Removing unreachable block (ram,0x00018052c413) */
/* WARNING: Removing unreachable block (ram,0x00018052c3d6) */

void FUN_18052c310(undefined8 param_1,longlong param_2)

{
  int iVar1;
  undefined1 auStack_d8 [32];
  undefined4 local_b8;
  void *local_b0 [5];
  undefined1 local_88 [40];
  void *local_60 [5];
  void *local_38 [5];
  ulonglong local_10;
  
  local_10 = DAT_182615970 ^ (ulonglong)auStack_d8;
  local_b8 = 0;
  FUN_18124a040(local_88,8);
  FUN_1804db6f0(param_2 + 0x10,local_b0,0);
  iVar1 = FUN_18123c5f0(local_b0,local_88);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    free(local_b0[0]);
  }
  FUN_18124a040(local_38,6);
  FUN_1804db6f0(param_2 + 0x10,local_60,0);
  FUN_18123c5f0(local_60,local_38);
                    /* WARNING: Subroutine does not return */
  free(local_60[0]);
}



############ FUN_ 18124a040 size=130 ############

undefined8 * FUN_18124a040(undefined8 *param_1,longlong param_2)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  longlong lVar4;
  undefined8 *puVar5;
  
  *param_1 = 0;
  *(bool *)((longlong)param_1 + 0x24) = param_2 < 0;
  param_1[3] = 4;
  *(undefined4 *)(param_1 + 4) = 0x3f;
  if (param_2 < 0) {
    param_2 = -param_2;
  }
  *(int *)(param_1 + 1) = (int)param_2;
  *(int *)((longlong)param_1 + 0xc) = (int)((ulonglong)param_2 >> 0x20);
  param_1[2] = 0;
  puVar5 = param_1 + 1;
  if ((undefined8 *)*param_1 != (undefined8 *)0x0) {
    puVar5 = (undefined8 *)*param_1;
  }
  iVar3 = *(int *)(param_1 + 4) >> 5;
  lVar4 = (longlong)iVar3;
  if (-1 < iVar3) {
    do {
      uVar1 = *(uint *)((longlong)puVar5 + lVar4 * 4);
      if (uVar1 != 0) {
        iVar2 = 0x1f;
        if (uVar1 != 0) {
          for (; uVar1 >> iVar2 == 0; iVar2 = iVar2 + -1) {
          }
        }
        *(int *)(param_1 + 4) = iVar3 * 0x20 + iVar2;
        return param_1;
      }
      iVar3 = iVar3 + -1;
      lVar4 = lVar4 + -1;
    } while (-1 < lVar4);
  }
  *(undefined4 *)(param_1 + 4) = 0xffffffff;
  return param_1;
}



############ FUN_ 1804db6f0 size=215 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x0001804db7b7) */

void FUN_1804db6f0(longlong *param_1,undefined8 *param_2,uint param_3)

{
  void *pvVar1;
  void **ppvVar2;
  bool bVar3;
  undefined1 auStack_98 [32];
  undefined4 local_78;
  void *local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 local_58;
  undefined8 local_50;
  void *local_48 [5];
  ulonglong local_20;
  
  local_20 = DAT_182615970 ^ (ulonglong)auStack_98;
  local_78 = 0;
  bVar3 = *(uint *)((longlong)param_1 + 0xc) <= param_3;
  if (bVar3) {
    local_70 = (void *)0x0;
    ppvVar2 = &local_70;
    local_58 = 4;
    local_50 = 0xffffffff;
    local_68 = 0;
    local_60 = 0;
  }
  else {
    FUN_18123db10(local_48,*param_1 + (longlong)(int)param_3 * 0x28);
    ppvVar2 = local_48;
  }
  *param_2 = *ppvVar2;
  *ppvVar2 = (void *)0x0;
  param_2[3] = ppvVar2[3];
  *(undefined4 *)(param_2 + 4) = *(undefined4 *)(ppvVar2 + 4);
  *(undefined1 *)((longlong)param_2 + 0x24) = *(undefined1 *)((longlong)ppvVar2 + 0x24);
  pvVar1 = ppvVar2[2];
  param_2[1] = ppvVar2[1];
  param_2[2] = pvVar1;
  if (!bVar3) {
                    /* WARNING: Subroutine does not return */
    free(local_48[0]);
  }
                    /* WARNING: Subroutine does not return */
  free(local_70);
}



############ FUN_ 1812c0230 size=525 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1812c0230(longlong param_1,longlong param_2)

{
  bool bVar1;
  char cVar2;
  int iVar3;
  longlong lVar4;
  undefined8 uVar5;
  undefined1 auStack_98 [32];
  int local_78;
  int local_74;
  int local_70;
  void *local_68 [2];
  undefined1 local_58 [24];
  ulonglong local_40;
  
  local_40 = DAT_182615970 ^ (ulonglong)auStack_98;
  lVar4 = FUN_1812c37c0(param_1,local_68);
  cVar2 = FUN_1804df970(param_2,lVar4);
  if ((cVar2 == '\0') || (cVar2 = FUN_1804df970(param_2 + 0x10,lVar4 + 0x10), cVar2 == '\0')) {
    bVar1 = false;
  }
  else {
    bVar1 = true;
  }
  FUN_18047c500(local_58);
  FUN_18047c500(local_68);
  if (!bVar1) {
    local_74 = *(int *)(param_1 + 0x100);
    local_78 = *(int *)(param_1 + 0xec);
    local_70 = *(int *)(param_1 + 0x104);
    if ((*(int *)(param_2 + 0xc) == *(int *)(param_1 + 0xdc)) &&
       (*(int *)(param_2 + 0x1c) == local_78)) {
      if (0 < *(int *)(param_1 + 0xdc)) {
        if (*(int *)(param_1 + 0xdc) == 0) {
          lVar4 = 0;
        }
        else {
          lVar4 = **(longlong **)(param_1 + 0xd0);
        }
        FUN_1804db6f0(param_2,local_68,0);
        FUN_18123d980(lVar4 + 0x10,local_68);
        iVar3 = FUN_18123d3f0(local_68);
        if (iVar3 != 0) {
          FUN_18123d980(lVar4 + 0x60,local_68);
        }
        FUN_18123d3f0(local_68);
                    /* WARNING: Subroutine does not return */
        free(local_68[0]);
      }
      if (0 < local_78) {
        if (*(int *)(param_1 + 0xec) == 0) {
          lVar4 = 0;
        }
        else {
          lVar4 = **(longlong **)(param_1 + 0xe0);
        }
        FUN_1804db6f0(param_2 + 0x10,local_68,0);
        FUN_18123d980(lVar4 + 0x10,local_68);
        iVar3 = FUN_18123d3f0(local_68);
        if (iVar3 != 0) {
          FUN_18123d980(lVar4 + 0x60,local_68);
        }
        FUN_18123d3f0(local_68);
                    /* WARNING: Subroutine does not return */
        free(local_68[0]);
      }
      if ((local_74 == 0) && (local_70 == 0)) {
        uVar5 = 0;
      }
      else {
        uVar5 = 1;
      }
      FUN_1812c0000(param_1,0,uVar5);
    }
  }
}



############ FUN_ 1804df970 size=136 ############

undefined8 FUN_1804df970(longlong *param_1,longlong *param_2)

{
  longlong lVar1;
  longlong lVar2;
  int iVar3;
  longlong lVar4;
  
  if (*(int *)((longlong)param_1 + 0xc) != *(int *)((longlong)param_2 + 0xc)) {
    return 0;
  }
  lVar4 = *param_2;
  lVar1 = lVar4 + (longlong)*(int *)((longlong)param_2 + 0xc) * 0x28;
  lVar2 = *param_1;
  while( true ) {
    if (lVar4 == lVar1) {
      return 1;
    }
    iVar3 = FUN_18123c5f0(lVar2,lVar4);
    if (iVar3 != 0) break;
    lVar4 = lVar4 + 0x28;
    lVar2 = lVar2 + 0x28;
  }
  return 0;
}



############ FUN_ 18123d980 size=207 ############

longlong * FUN_18123d980(longlong *param_1,longlong *param_2)

{
  uint uVar1;
  longlong lVar2;
  ulonglong uVar3;
  int iVar4;
  int iVar5;
  longlong *_Dst;
  longlong *plVar6;
  ulonglong uVar7;
  
  if (param_1 != param_2) {
    plVar6 = (longlong *)*param_2;
    if (plVar6 == (longlong *)0x0) {
      plVar6 = param_2 + 1;
    }
    iVar4 = (int)param_2[4] >> 5;
    lVar2 = (longlong)iVar4;
    if (-1 < iVar4) {
LAB_18123d9b7:
      uVar1 = *(uint *)((longlong)plVar6 + lVar2 * 4);
      if (uVar1 == 0) goto code_r0x00018123d9bf;
      iVar5 = 0x1f;
      if (uVar1 != 0) {
        for (; uVar1 >> iVar5 == 0; iVar5 = iVar5 + -1) {
        }
      }
      iVar5 = iVar4 * 0x20 + iVar5;
      goto LAB_18123d9cc;
    }
LAB_18123d9c7:
    iVar5 = -1;
LAB_18123d9cc:
    *(int *)(param_1 + 4) = iVar5;
    uVar3 = (longlong)(iVar5 >> 5) + 1;
    uVar7 = 4;
    if (4 < uVar3) {
      uVar7 = uVar3;
    }
    if (uVar7 < 5) {
                    /* WARNING: Subroutine does not return */
      free((void *)*param_1);
    }
    if (uVar7 != param_1[3]) {
                    /* WARNING: Subroutine does not return */
      free((void *)*param_1);
    }
    param_1[3] = uVar7;
    plVar6 = (longlong *)*param_2;
    if (plVar6 == (longlong *)0x0) {
      plVar6 = param_2 + 1;
    }
    _Dst = (longlong *)*param_1;
    if (_Dst == (longlong *)0x0) {
      _Dst = param_1 + 1;
    }
    memcpy(_Dst,plVar6,uVar7 * 4);
    *(undefined1 *)((longlong)param_1 + 0x24) = *(undefined1 *)((longlong)param_2 + 0x24);
  }
  return param_1;
code_r0x00018123d9bf:
  iVar4 = iVar4 + -1;
  lVar2 = lVar2 + -1;
  if (lVar2 < 0) goto LAB_18123d9c7;
  goto LAB_18123d9b7;
}



############ FUN_ 1812c0000 size=543 ############

void FUN_1812c0000(longlong *param_1,char param_2,char param_3)

{
  int iVar1;
  int iVar2;
  longlong lVar3;
  int iVar4;
  ulonglong *puVar5;
  longlong lVar6;
  uint uVar7;
  longlong *plVar8;
  ulonglong uVar9;
  uint uVar10;
  ulonglong uVar11;
  longlong lVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  int iVar15;
  
  uVar11 = 0;
  iVar1 = *(int *)((longlong)param_1 + 0xec);
  iVar2 = *(int *)((longlong)param_1 + 0xdc);
  uVar10 = 0;
  uVar9 = uVar11;
  do {
    iVar15 = (int)uVar9;
    iVar4 = iVar1;
    if (iVar15 == 0) {
      iVar4 = iVar2;
    }
    uVar9 = uVar11;
    uVar14 = uVar11;
    if (0 < iVar4) {
      do {
        puVar5 = (ulonglong *)(param_1 + 0x1c);
        if (iVar15 == 0) {
          puVar5 = (ulonglong *)(param_1 + 0x1a);
        }
        if (((uint)uVar9 < *(uint *)((longlong)puVar5 + 0xc)) &&
           (lVar3 = *(longlong *)(*puVar5 + uVar14 * 8), lVar3 != 0)) {
          lVar12 = *(longlong *)(lVar3 + 0x10);
          if (lVar12 == 0) {
            lVar12 = lVar3 + 0x18;
          }
          uVar7 = uVar10;
          uVar13 = uVar11;
          for (lVar6 = (longlong)*(int *)(lVar3 + 0x30) >> 5; -1 < lVar6; lVar6 = lVar6 + -1) {
            uVar7 = *(uint *)(lVar12 + lVar6 * 4);
            uVar7 = uVar7 - (uVar7 >> 1 & 0x55555555);
            uVar7 = (uVar7 >> 2 & 0x33333333) + (uVar7 & 0x33333333);
            uVar7 = (uVar7 >> 4) + uVar7 & 0xf0f0f0f;
            uVar7 = uVar7 + (uVar7 >> 8);
            uVar7 = (int)uVar13 + ((uVar7 >> 0x10) + uVar7 & 0x3f);
            uVar13 = (ulonglong)uVar7;
          }
          *(uint *)(lVar3 + 0x8c) = uVar7;
        }
        uVar9 = (ulonglong)((uint)uVar9 + 1);
        uVar14 = uVar14 + 1;
      } while ((longlong)uVar14 < (longlong)iVar4);
    }
    uVar9 = (ulonglong)(iVar15 + 1U);
  } while ((int)(iVar15 + 1U) < 2);
  plVar8 = (longlong *)param_1[0x1a];
  uVar7 = 0;
  uVar9 = (ulonglong)
          ((longlong)(plVar8 + *(int *)((longlong)param_1 + 0xdc)) + (7 - (longlong)plVar8)) >> 3;
  if (plVar8 + *(int *)((longlong)param_1 + 0xdc) < plVar8) {
    uVar9 = uVar11;
  }
  uVar14 = uVar11;
  uVar13 = uVar11;
  if (uVar9 != 0) {
    do {
      lVar3 = *plVar8;
      plVar8 = plVar8 + 1;
      uVar14 = uVar14 + 1;
      uVar7 = (int)uVar13 + *(int *)(lVar3 + 0x8c);
      uVar13 = (ulonglong)uVar7;
    } while (uVar14 != uVar9);
  }
  *(uint *)(param_1 + 0x20) = uVar7;
  plVar8 = (longlong *)param_1[0x1c];
  uVar9 = (ulonglong)
          ((longlong)(plVar8 + *(int *)((longlong)param_1 + 0xec)) + (7 - (longlong)plVar8)) >> 3;
  if (plVar8 + *(int *)((longlong)param_1 + 0xec) < plVar8) {
    uVar9 = uVar11;
  }
  uVar14 = uVar11;
  if (uVar9 != 0) {
    do {
      lVar3 = *plVar8;
      plVar8 = plVar8 + 1;
      uVar14 = uVar14 + 1;
      uVar10 = (int)uVar11 + *(int *)(lVar3 + 0x8c);
      uVar11 = (ulonglong)uVar10;
    } while (uVar14 != uVar9);
  }
  *(uint *)((longlong)param_1 + 0x104) = uVar10;
  FUN_1812c0470(param_1);
  if ((param_2 != '\0') && (*(code **)(*param_1 + 0x110) != FUN_1812c0e10)) {
    (**(code **)(*param_1 + 0x110))(param_1);
  }
  if ((param_3 != '\0') && (*(code **)(*param_1 + 0x108) != FUN_1812c0e20)) {
    (**(code **)(*param_1 + 0x108))(param_1);
  }
                    /* WARNING: Could not recover jumptable at 0x0001812c020a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(*param_1 + 0x118))(param_1);
  return;
}



############ FUN_ 1813affa0 size=42 ############

void FUN_1813affa0(undefined8 *param_1)

{
  *param_1 = juce::AudioFormat::vftable;
  FUN_180488c50(param_1 + 2);
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[2]);
}



############ FUN_ 180488c50 size=122 ############

void FUN_180488c50(longlong *param_1)

{
  int iVar1;
  int *_Memory;
  int iVar2;
  longlong lVar3;
  
  iVar2 = 0;
  if (*(int *)((longlong)param_1 + 0xc) < 1) {
    *(undefined4 *)((longlong)param_1 + 0xc) = 0;
    return;
  }
  lVar3 = 0;
  do {
    _Memory = (int *)(*(longlong *)(lVar3 + *param_1) + -0x10);
    if ((*(uint *)(*(longlong *)(lVar3 + *param_1) + -0x10) & 0x30000000) == 0) {
      LOCK();
      iVar1 = *_Memory;
      *_Memory = *_Memory + -1;
      UNLOCK();
      if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        free(_Memory);
      }
    }
    iVar2 = iVar2 + 1;
    lVar3 = lVar3 + 8;
  } while (iVar2 < *(int *)((longlong)param_1 + 0xc));
  *(undefined4 *)((longlong)param_1 + 0xc) = 0;
  return;
}



############ FUN_ 18123fe10 size=725 ############

bool FUN_18123fe10(undefined8 *param_1,byte *param_2)

{
  uint uVar1;
  byte bVar2;
  byte bVar3;
  char cVar4;
  byte bVar5;
  int iVar6;
  int iVar7;
  undefined8 uVar8;
  undefined8 *puVar9;
  uint *puVar10;
  byte *pbVar11;
  ulonglong uVar12;
  bool bVar13;
  byte *local_res10;
  undefined4 local_res18;
  byte *local_res20;
  longlong local_58;
  longlong local_50;
  longlong local_48 [4];
  
  local_48[1] = 0xfffffffffffffffe;
  iVar6 = 0;
  local_res18 = 0;
  local_res10 = param_2;
  if (*param_2 == 0) {
    iVar6 = FUN_1812327b0(param_1,0x5c);
    iVar7 = FUN_1812327b0(param_1,0x2e);
    return iVar7 <= iVar6;
  }
  iVar7 = FUN_18049bc80(param_2,0x3b);
  if (iVar7 < 0) {
    cVar4 = FUN_181231160(param_1,param_2);
    if (cVar4 != '\0') {
      iVar7 = FUN_180493050(&local_res10,0);
      if (iVar7 == 0x2e) {
        return true;
      }
      pbVar11 = (byte *)*param_1;
      iVar7 = iVar6;
      while( true ) {
        while( true ) {
          bVar2 = *pbVar11;
          pbVar11 = pbVar11 + 1;
          if (-1 < (char)bVar2) break;
          if ((*pbVar11 & 0xc0) != 0x80) goto LAB_181240088;
          do {
            pbVar11 = pbVar11 + 1;
          } while ((*pbVar11 & 0xc0) == 0x80);
          iVar7 = iVar7 + 1;
        }
        if (bVar2 == 0) break;
LAB_181240088:
        iVar7 = iVar7 + 1;
      }
      while( true ) {
        while( true ) {
          bVar2 = *param_2;
          param_2 = param_2 + 1;
          if (-1 < (char)bVar2) break;
          if ((*param_2 & 0xc0) != 0x80) goto LAB_1812400b8;
          do {
            param_2 = param_2 + 1;
          } while ((*param_2 & 0xc0) == 0x80);
          iVar6 = iVar6 + 1;
        }
        if (bVar2 == 0) break;
LAB_1812400b8:
        iVar6 = iVar6 + 1;
      }
      if (-1 < (iVar7 - iVar6) + -1) {
        iVar6 = FUN_180493050(param_1);
        return iVar6 == 0x2e;
      }
    }
    return false;
  }
  FUN_18049c9e0(&local_58);
  local_res18 = 1;
  uVar8 = FUN_1812490c0(&local_58,local_48,0,iVar7);
  local_res18 = 3;
  puVar9 = (undefined8 *)FUN_181230800(uVar8,&local_50);
  local_res18 = 7;
  local_48[2] = *puVar9;
  cVar4 = FUN_18123fe10(param_1);
  if (cVar4 == '\0') {
    if (iVar7 + 1 < 0) {
      local_res20 = param_2;
      if (iVar7 + 2 < 1) {
        uVar12 = (ulonglong)(1 - (iVar7 + 2));
        do {
          iVar6 = 0;
          do {
            param_2 = param_2 + -1;
            if ((*param_2 & 0xc0) != 0x80) break;
            iVar6 = iVar6 + 1;
          } while (iVar6 < 4);
          uVar12 = uVar12 - 1;
          local_res20 = param_2;
        } while (uVar12 != 0);
      }
    }
    else {
      for (; local_res20 = param_2, -1 < iVar7; iVar7 = iVar7 + -1) {
        bVar2 = *param_2;
        local_res20 = param_2 + 1;
        if ((char)bVar2 < '\0') {
          bVar5 = 0x40;
          bVar3 = bVar2 & 0x40;
          while ((bVar3 != 0 && (8 < bVar5))) {
            local_res20 = local_res20 + 1;
            bVar5 = bVar5 >> 1;
            bVar3 = bVar2 & bVar5;
          }
        }
        param_2 = local_res20;
      }
    }
    while ((bVar2 = *param_2, bVar2 == 0x20 || ((byte)(bVar2 - 9) < 5))) {
      param_2 = param_2 + 1;
      if ((char)bVar2 < '\0') {
        bVar5 = 0x40;
        bVar3 = bVar2 & 0x40;
        while ((bVar3 != 0 && (8 < bVar5))) {
          param_2 = param_2 + 1;
          bVar5 = bVar5 >> 1;
          bVar3 = bVar2 & bVar5;
        }
      }
    }
    cVar4 = FUN_18123fe10(param_1,param_2);
    if (cVar4 == '\0') {
      bVar13 = false;
      goto LAB_18123ffa6;
    }
  }
  bVar13 = true;
LAB_18123ffa6:
  puVar10 = (uint *)(local_50 + -0x10);
  if ((*puVar10 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar10;
    *puVar10 = *puVar10 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar10);
    }
  }
  puVar10 = (uint *)(local_48[0] + -0x10);
  if ((*puVar10 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar10;
    *puVar10 = *puVar10 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar10);
    }
  }
  puVar10 = (uint *)(local_58 + -0x10);
  if ((*puVar10 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar10;
    *puVar10 = *puVar10 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar10);
    }
  }
  return bVar13;
}



############ FUN_ 180545be0 size=779 ############

undefined8 * FUN_180545be0(undefined8 *param_1,undefined8 param_2)

{
  undefined8 uVar1;
  longlong lVar2;
  int iVar3;
  longlong *plVar4;
  undefined8 *puVar5;
  HMODULE pHVar6;
  FARPROC pFVar7;
  INT_PTR IVar8;
  uint uVar9;
  uint *puVar10;
  undefined2 local_res10 [4];
  longlong local_res18;
  longlong local_res20;
  longlong local_78;
  LPCSTR local_70;
  undefined8 local_68;
  uint *local_60;
  undefined1 local_58 [24];
  
  local_68 = 0xfffffffffffffffe;
  FUN_18049c4e0(&local_res18,"Windows Media");
  lVar2 = DAT_1826739f8;
  local_60 = &DAT_182673984;
  do {
    LOCK();
    uVar9 = DAT_182673984 & 1;
    DAT_182673984 = DAT_182673984 | 1;
    UNLOCK();
  } while (uVar9 != 0);
  if (DAT_1826739f8 == 0) {
    local_res20 = local_res18;
    uVar9 = *(uint *)(local_res18 + -0x10);
  }
  else {
    if ((*(longlong *)(DAT_1826739f8 + 0x40) != 0) &&
       (iVar3 = FUN_1812498b0(DAT_1826739f8 + 0x18,local_res18,*(undefined1 *)(DAT_1826739f8 + 0x38)
                              ,0), iVar3 < 0)) {
      FUN_181234570(*(undefined8 *)(lVar2 + 0x40),&local_res20,&local_res18,&local_res18);
      goto LAB_180545cca;
    }
    iVar3 = FUN_1812498b0(lVar2 + 0x18,local_res18,*(undefined1 *)(lVar2 + 0x38),0);
    if (iVar3 < 0) {
      local_res20 = local_res18;
      uVar9 = *(uint *)(local_res18 + -0x10);
    }
    else {
      plVar4 = (longlong *)FUN_181249970(lVar2 + 0x28,iVar3);
      local_res20 = *plVar4;
      uVar9 = *(uint *)(local_res20 + -0x10);
    }
  }
  if ((uVar9 & 0x30000000) == 0) {
    LOCK();
    *(int *)(local_res20 + -0x10) = *(int *)(local_res20 + -0x10) + 1;
    UNLOCK();
  }
LAB_180545cca:
  pFVar7 = (FARPROC)0x0;
  LOCK();
  DAT_182673984 = 0;
  UNLOCK();
  puVar10 = (uint *)(local_res18 + -0x10);
  if ((*puVar10 & 0x30000000) == 0) {
    LOCK();
    uVar9 = *puVar10;
    *puVar10 = *puVar10 - 1;
    UNLOCK();
    if (uVar9 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar10);
    }
  }
  *param_1 = juce::AudioFormatReader::vftable;
  param_1[1] = 0;
  *(undefined4 *)(param_1 + 2) = 0;
  param_1[3] = 0;
  *(undefined4 *)(param_1 + 4) = 0;
  *(undefined1 *)((longlong)param_1 + 0x24) = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  *(undefined1 *)(param_1 + 9) = 1;
  param_1[10] = param_2;
  param_1[0xb] = local_res20;
  if ((*(uint *)(local_res20 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(local_res20 + -0x10) = *(int *)(local_res20 + -0x10) + 1;
    UNLOCK();
  }
  puVar10 = (uint *)(local_res20 + -0x10);
  if ((*puVar10 & 0x30000000) == 0) {
    LOCK();
    uVar9 = *puVar10;
    *puVar10 = *puVar10 - 1;
    UNLOCK();
    if (uVar9 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar10);
    }
  }
  *param_1 = juce::WindowsMediaCodec::WMAudioReader::vftable;
  FUN_18049c4e0(&local_78,"Wmvcore.dll");
  param_1[0xc] = 0;
  puVar5 = (undefined8 *)FUN_18049a930(local_58,&local_78);
  pHVar6 = LoadLibraryW((LPCWSTR)*puVar5);
  param_1[0xc] = pHVar6;
  puVar10 = (uint *)(local_78 + -0x10);
  if ((*puVar10 & 0x30000000) == 0) {
    LOCK();
    uVar9 = *puVar10;
    *puVar10 = *puVar10 - 1;
    UNLOCK();
    if (uVar9 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar10);
    }
  }
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  FUN_18049c4e0(&local_70,"WMCreateSyncReader");
  if ((HMODULE)param_1[0xc] != (HMODULE)0x0) {
    pFVar7 = GetProcAddress((HMODULE)param_1[0xc],local_70);
  }
  puVar10 = (uint *)(local_70 + -0x10);
  if ((*puVar10 & 0x30000000) == 0) {
    LOCK();
    uVar9 = *puVar10;
    *puVar10 = *puVar10 - 1;
    UNLOCK();
    if (uVar9 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar10);
    }
  }
  if (pFVar7 != (FARPROC)0x0) {
    CoInitialize((LPVOID)0x0);
    if ((longlong *)param_1[0xd] != (longlong *)0x0) {
      (**(code **)(*(longlong *)param_1[0xd] + 0x10))();
    }
    param_1[0xd] = 0;
    IVar8 = (*pFVar7)(0,1,param_1 + 0xd);
    if (-1 < (int)IVar8) {
      puVar5 = (undefined8 *)FUN_1811316e0(0x18);
      uVar1 = param_1[10];
      *(undefined4 *)(puVar5 + 1) = 0;
      *puVar5 = juce::WindowsMediaCodec::JuceIStream::vftable;
      puVar5[2] = uVar1;
      iVar3 = (**(code **)(*(longlong *)param_1[0xd] + 0xb8))((longlong *)param_1[0xd],puVar5);
      if (-1 < iVar3) {
        local_res10[0] = 1;
        (**(code **)(*(longlong *)param_1[0xd] + 0xa0))((longlong *)param_1[0xd],0,local_res10);
        (**(code **)(*(longlong *)param_1[0xd] + 0x50))((longlong *)param_1[0xd],local_res10[0],0);
        FUN_180546380(param_1);
      }
    }
  }
  return param_1;
}



############ FUN_ 1813afcf0 size=132 ############

undefined8
FUN_1813afcf0(longlong *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,
             undefined4 param_5,undefined8 param_6,undefined4 param_7)

{
  char cVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  cVar1 = (**(code **)(*param_1 + 0x40))(param_1,param_4);
  if (cVar1 == '\0') {
    uVar3 = 0;
  }
  else {
    uVar2 = FUN_18123d3f0(param_4);
    uVar3 = (**(code **)(*param_1 + 0x70))(param_1,param_2,param_3,uVar2,param_5,param_6,param_7);
  }
  return uVar3;
}



############ FUN_ 1813af190 size=138 ############

void FUN_1813af190(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined4 *param_4,
                  undefined4 *param_5,undefined4 *param_6,undefined4 *param_7)

{
  if (*(uint *)(param_1 + 4) < 2) {
    (**(code **)(*param_1 + 0x10))();
  }
  else {
    (**(code **)(*param_1 + 0x10))();
  }
  *param_4 = 0;
  *param_5 = 0;
  *param_6 = 0;
  *param_7 = 0;
  return;
}



############ FUN_ 1813af220 size=771 ############

void FUN_1813af220(longlong *param_1,longlong param_2,ulonglong param_3,longlong param_4,int param_5
                  )

{
  float fVar1;
  int iVar2;
  ulonglong uVar3;
  bool bVar4;
  int iVar5;
  float fVar6;
  char cVar7;
  longlong lVar8;
  float *pfVar9;
  int iVar10;
  longlong lVar11;
  longlong lVar12;
  int iVar13;
  int iVar14;
  int *piVar15;
  undefined8 *puVar16;
  longlong lVar17;
  undefined8 *puVar18;
  float fVar19;
  float fVar20;
  float local_1c4;
  float local_1c0;
  float local_1bc;
  float local_1b8;
  float local_1b4;
  float fStack_1b0;
  undefined8 *local_1a8;
  longlong local_1a0;
  ulonglong local_198;
  undefined8 local_190;
  undefined1 local_188 [16];
  undefined8 *local_178;
  void *local_170;
  undefined1 local_68;
  
  local_190 = 0xfffffffffffffffe;
  lVar11 = (longlong)param_5;
  if ((longlong)param_3 < 1) {
    lVar8 = 0;
    if (0 < param_5) {
      do {
        *(undefined8 *)(param_4 + lVar8 * 8) = 0;
        lVar8 = lVar8 + 1;
      } while (lVar8 < lVar11);
    }
    return;
  }
  iVar10 = (int)param_3;
  if (0x1000 < (longlong)param_3) {
    iVar10 = 0x1000;
  }
  local_1a0 = lVar11;
  FUN_180535db0(local_188,lVar11,iVar10);
  fVar6 = DAT_1824c3c28;
  LOCK();
  local_68 = 0;
  UNLOCK();
  local_1a8 = local_178;
  bVar4 = true;
  local_198 = (ulonglong)iVar10;
  puVar16 = local_178;
  do {
    uVar3 = param_3;
    if ((longlong)local_198 < (longlong)param_3) {
      uVar3 = local_198;
    }
    iVar13 = (int)uVar3;
    lVar17 = (longlong)iVar13;
    lVar8 = param_2;
    iVar10 = iVar13;
    iVar14 = 0;
    if (param_2 < 0) {
      lVar8 = lVar11;
      iVar14 = (int)-param_2;
      if (lVar17 < -param_2) {
        iVar14 = iVar13;
      }
      while (lVar8 = lVar8 + -1, -1 < lVar8) {
        if ((void *)puVar16[lVar8] != (void *)0x0) {
          memset((void *)puVar16[lVar8],0,(longlong)iVar14 << 2);
        }
      }
      iVar10 = iVar13 - iVar14;
      lVar8 = 0;
    }
    if (0 < iVar10) {
      iVar5 = (int)param_1[4];
      if (param_5 < (int)param_1[4]) {
        iVar5 = param_5;
      }
      cVar7 = (**(code **)(*param_1 + 0x20))(param_1,puVar16,iVar5,iVar14,lVar8,iVar10);
      if (cVar7 == '\0') break;
      lVar8 = (longlong)(int)param_1[4];
      if ((int)param_1[4] < param_5) {
        for (; lVar8 < lVar11; lVar8 = lVar8 + 1) {
          if ((void *)puVar16[lVar8] != (void *)0x0) {
            memset((void *)puVar16[lVar8],0,lVar17 * 4);
          }
        }
      }
    }
    puVar18 = puVar16;
    lVar8 = lVar11;
    if (0 < lVar11) {
      lVar12 = param_4 - (longlong)puVar16;
      do {
        if (*(char *)((longlong)param_1 + 0x24) == '\0') {
          piVar15 = (int *)*puVar16;
          if (iVar13 < 1) {
            iVar10 = 0;
            iVar14 = 0;
          }
          else {
            iVar10 = *piVar15;
            iVar14 = iVar10;
            iVar5 = iVar13;
            while (iVar5 = iVar5 + -1, 0 < iVar5) {
              piVar15 = piVar15 + 1;
              iVar2 = *piVar15;
              if (iVar10 < iVar2) {
                iVar10 = iVar2;
              }
              if (iVar2 < iVar14) {
                iVar14 = iVar2;
              }
            }
          }
          fVar20 = (float)iVar10 * fVar6;
          fVar19 = (float)iVar14 * fVar6;
          if (fVar20 <= fVar19) {
            fVar20 = fVar19;
          }
        }
        else {
          FUN_1804d5400(&local_1bc,*puVar16,uVar3 & 0xffffffff);
          fVar19 = local_1bc;
          fVar20 = local_1b8;
        }
        if (bVar4) {
          local_1b4 = fVar19;
          fStack_1b0 = fVar20;
          pfVar9 = &local_1b4;
        }
        else {
          fVar1 = *(float *)(lVar12 + 4 + (longlong)puVar16);
          if (fVar20 <= fVar1) {
            fVar20 = fVar1;
          }
          if (*(float *)(lVar12 + (longlong)puVar16) <= fVar19) {
            fVar19 = *(float *)(lVar12 + (longlong)puVar16);
          }
          local_1c4 = fVar19;
          if (fVar20 <= fVar19) {
            local_1c0 = fVar19;
          }
          else {
            local_1c0 = fVar20;
          }
          pfVar9 = &local_1c4;
        }
        *(undefined8 *)(lVar12 + (longlong)puVar16) = *(undefined8 *)pfVar9;
        puVar16 = puVar16 + 1;
        lVar11 = lVar11 + -1;
        puVar18 = local_1a8;
        lVar8 = local_1a0;
      } while (lVar11 != 0);
    }
    bVar4 = false;
    param_3 = param_3 - lVar17;
    param_2 = param_2 + lVar17;
    puVar16 = puVar18;
    lVar11 = lVar8;
  } while (0 < (longlong)param_3);
                    /* WARNING: Subroutine does not return */
  free(local_170);
}



############ FUN_ 180535db0 size=127 ############

/* WARNING: Removing unreachable block (ram,0x000180535e01) */

void FUN_180535db0(int *param_1,int param_2,int param_3)

{
  *param_1 = param_2;
  param_1[1] = param_3;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  *(undefined1 *)(param_1 + 0x48) = 0;
  *(longlong *)(param_1 + 2) =
       (longlong)*param_1 * (longlong)param_1[1] * 4 + 0x20 + (longlong)(*param_1 + 1) * 8;
                    /* WARNING: Subroutine does not return */
  free((void *)0x0);
}



############ FUN_ 1804d5400 size=681 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1804d5400(float *param_1,undefined1 (*param_2) [16],uint param_3)

{
  undefined1 (*pauVar1) [16];
  int iVar2;
  uint uVar3;
  longlong lVar4;
  float *pfVar5;
  longlong lVar6;
  ulonglong uVar7;
  float fVar8;
  float fVar10;
  undefined1 auVar9 [16];
  float fVar12;
  undefined1 auVar11 [16];
  float local_20;
  float fStack_14;
  
  iVar2 = (int)(param_3 + ((int)param_3 >> 0x1f & 3U)) >> 2;
  if (iVar2 < 2) {
    if ((int)param_3 < 1) {
      param_1[0] = 0.0;
      param_1[1] = 0.0;
    }
    else {
      fVar8 = *(float *)*param_2;
      iVar2 = param_3 - 1;
      pfVar5 = (float *)(*param_2 + 4);
      fVar10 = fVar8;
      if (3 < iVar2) {
        uVar3 = (param_3 - 5 >> 2) + 1;
        uVar7 = (ulonglong)uVar3;
        iVar2 = iVar2 + uVar3 * -4;
        do {
          fVar12 = *pfVar5;
          if (fVar10 < fVar12) {
            fVar10 = fVar12;
          }
          if (fVar12 < fVar8) {
            fVar8 = fVar12;
          }
          fVar12 = pfVar5[1];
          if (fVar10 < fVar12) {
            fVar10 = fVar12;
          }
          if (fVar12 < fVar8) {
            fVar8 = fVar12;
          }
          fVar12 = pfVar5[2];
          if (fVar10 < fVar12) {
            fVar10 = fVar12;
          }
          if (fVar12 < fVar8) {
            fVar8 = fVar12;
          }
          fVar12 = pfVar5[3];
          if (fVar10 < fVar12) {
            fVar10 = fVar12;
          }
          if (fVar12 < fVar8) {
            fVar8 = fVar12;
          }
          pfVar5 = pfVar5 + 4;
          uVar7 = uVar7 - 1;
        } while (uVar7 != 0);
      }
      for (; 0 < iVar2; iVar2 = iVar2 + -1) {
        fVar12 = *pfVar5;
        if (fVar10 < fVar12) {
          fVar10 = fVar12;
        }
        if (fVar12 < fVar8) {
          fVar8 = fVar12;
        }
        pfVar5 = pfVar5 + 1;
      }
      *param_1 = fVar8;
      param_1[1] = fVar10;
    }
  }
  else {
    iVar2 = iVar2 + -1;
    if (((ulonglong)param_2 & 0xf) == 0) {
      auVar11 = *param_2;
      auVar9 = auVar11;
      while (0 < iVar2) {
        auVar11 = minps(auVar11,param_2[1]);
        param_2 = param_2 + 1;
        iVar2 = iVar2 + -1;
        auVar9 = maxps(auVar9,*param_2);
      }
    }
    else {
      auVar11 = *param_2;
      auVar9 = auVar11;
      while (0 < iVar2) {
        pauVar1 = param_2 + 1;
        param_2 = param_2 + 1;
        iVar2 = iVar2 + -1;
        auVar11 = minps(auVar11,*pauVar1);
        auVar9 = maxps(auVar9,*pauVar1);
      }
    }
    fVar8 = auVar9._4_4_;
    fVar10 = auVar9._8_4_;
    fStack_14 = auVar9._12_4_;
    if (fVar10 <= fVar8) {
      if (fStack_14 <= fVar8) {
        fStack_14 = fVar8;
      }
    }
    else if (fStack_14 <= fVar10) {
      fStack_14 = fVar10;
    }
    local_20 = auVar9._0_4_;
    fVar8 = fStack_14;
    if (fStack_14 <= local_20) {
      fVar8 = local_20;
    }
    fVar10 = auVar11._4_4_;
    fVar12 = auVar11._8_4_;
    fStack_14 = auVar11._12_4_;
    if (fVar10 <= fVar12) {
      if (fVar10 <= fStack_14) {
        fStack_14 = fVar10;
      }
    }
    else if (fVar12 <= fStack_14) {
      fStack_14 = fVar12;
    }
    local_20 = auVar11._0_4_;
    if (local_20 <= fStack_14) {
      fStack_14 = local_20;
    }
    if (fVar8 <= fStack_14) {
      fVar8 = fStack_14;
    }
    lVar4 = 0;
    uVar7 = (ulonglong)(param_3 & 3);
    if (3 < uVar7) {
      pfVar5 = (float *)(param_2[1] + 8);
      lVar6 = (uVar7 - 4 >> 2) + 1;
      lVar4 = lVar6 * 4;
      do {
        if (fVar8 <= pfVar5[-2]) {
          fVar8 = pfVar5[-2];
        }
        if (pfVar5[-2] <= fStack_14) {
          fStack_14 = pfVar5[-2];
        }
        if (fVar8 <= fStack_14) {
          fVar8 = fStack_14;
        }
        if (fVar8 <= pfVar5[-1]) {
          fVar8 = pfVar5[-1];
        }
        if (pfVar5[-1] <= fStack_14) {
          fStack_14 = pfVar5[-1];
        }
        if (fVar8 <= fStack_14) {
          fVar8 = fStack_14;
        }
        if (fVar8 <= *pfVar5) {
          fVar8 = *pfVar5;
        }
        if (*pfVar5 <= fStack_14) {
          fStack_14 = *pfVar5;
        }
        if (fVar8 <= fStack_14) {
          fVar8 = fStack_14;
        }
        if (pfVar5[1] <= fStack_14) {
          fStack_14 = pfVar5[1];
        }
        fVar10 = fVar8;
        if (fVar8 <= pfVar5[1]) {
          fVar10 = pfVar5[1];
        }
        fVar8 = fStack_14;
        if (fStack_14 < fVar10) {
          fVar8 = fVar10;
        }
        pfVar5 = pfVar5 + 4;
        lVar6 = lVar6 + -1;
      } while (lVar6 != 0);
    }
    for (; lVar4 < (longlong)uVar7; lVar4 = lVar4 + 1) {
      if (*(float *)(param_2[1] + lVar4 * 4) <= fStack_14) {
        fStack_14 = *(float *)(param_2[1] + lVar4 * 4);
      }
      fVar10 = fVar8;
      if (fVar8 <= *(float *)(param_2[1] + lVar4 * 4)) {
        fVar10 = *(float *)(param_2[1] + lVar4 * 4);
      }
      fVar8 = fStack_14;
      if (fStack_14 < fVar10) {
        fVar8 = fVar10;
      }
    }
    *param_1 = fStack_14;
    param_1[1] = fVar8;
  }
}



############ FUN_ 18053dba0 size=990 ############

undefined8
FUN_18053dba0(longlong param_1,longlong param_2,int param_3,int param_4,longlong param_5,int param_6
             )

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  longlong lVar5;
  longlong lVar6;
  int iVar7;
  int iVar8;
  int local_res20;
  longlong local_48;
  
  iVar4 = param_6;
  local_res20 = param_4;
  if (param_6 < 1) {
    return 1;
  }
  do {
    iVar2 = (*(int *)(param_1 + 0x4f4) - (int)param_5) + *(int *)(param_1 + 0x4f0);
    if ((*(int *)(param_1 + 0x4f0) <= param_5) && (0 < iVar2)) {
      iVar8 = iVar4;
      if (iVar2 < iVar4) {
        iVar8 = iVar2;
      }
      iVar2 = param_3;
      if (*(int *)(param_1 + 0x3c8) < param_3) {
        iVar2 = *(int *)(param_1 + 0x3c8);
      }
      iVar2 = iVar2 + -1;
      if (-1 < iVar2) {
        lVar5 = (longlong)iVar2 * 8;
        do {
          if (*(longlong *)(lVar5 + param_2) != 0) {
            memcpy((void *)(*(longlong *)(lVar5 + param_2) + (longlong)local_res20 * 4),
                   (void *)(*(longlong *)(*(longlong *)(param_1 + 0x3d8) + lVar5) +
                           (longlong)((int)param_5 - *(int *)(param_1 + 0x4f0)) * 4),
                   (longlong)iVar8 << 2);
          }
          lVar5 = lVar5 + -8;
          iVar2 = iVar2 + -1;
          iVar4 = param_6;
        } while (-1 < iVar2);
      }
      iVar4 = iVar4 - iVar8;
      param_5 = param_5 + iVar8;
      local_res20 = local_res20 + iVar8;
      param_6 = iVar4;
      if (iVar4 == 0) {
        return 1;
      }
    }
    if ((param_5 < *(int *)(param_1 + 0x4f0)) ||
       ((longlong)(*(int *)(param_1 + 0x4f0) + *(int *)(param_1 + 0x4f4)) < iVar4 + param_5)) {
      *(undefined4 *)(param_1 + 0x4f4) = *(undefined4 *)(param_1 + 0x3cc);
      iVar2 = -0x83;
      iVar8 = 0;
      if (0 < (int)param_5) {
        iVar8 = (int)param_5;
      }
      *(int *)(param_1 + 0x4f0) = iVar8;
      if (1 < *(int *)(param_1 + 0xe0)) {
        iVar2 = (int)*(undefined8 *)(param_1 + 0xd8);
      }
      if (iVar8 != iVar2) {
        FUN_18136fc00(param_1 + 0x60);
      }
      iVar8 = 0;
      for (iVar2 = *(int *)(param_1 + 0x4f4); 0 < iVar2; iVar2 = iVar2 - iVar7) {
        local_48 = 0;
        iVar4 = param_6;
        if (*(int *)(param_1 + 0xe0) < 2) {
LAB_18053deb3:
          if ((0 < iVar2) && (*(char *)(param_1 + 0x4e8) == '\0')) {
            if ((iVar8 == 0) && (iVar2 == *(int *)(param_1 + 0x3cc))) {
              LOCK();
              *(undefined1 *)(param_1 + 0x4e8) = 1;
              UNLOCK();
            }
            iVar7 = 0;
            if (0 < *(int *)(param_1 + 0x3c8)) {
              lVar5 = 0;
              do {
                memset((void *)(*(longlong *)(*(longlong *)(param_1 + 0x3d8) + lVar5) +
                               (longlong)iVar8 * 4),0,(longlong)iVar2 << 2);
                iVar7 = iVar7 + 1;
                lVar5 = lVar5 + 8;
              } while (iVar7 < *(int *)(param_1 + 0x3c8));
            }
          }
          break;
        }
        do {
          if (*(int *)(param_1 + 0xe0) == 4) {
            lVar5 = *(longlong *)(param_1 + 0x280);
            if ((-1 < *(int *)(param_1 + 0x2a0)) &&
               (*(int *)(param_1 + 0x2a0) < *(int *)(param_1 + 0x29c))) {
              iVar7 = 0;
              if (0 < *(int *)(lVar5 + 4)) {
                lVar6 = 0;
                do {
                  iVar7 = iVar7 + 1;
                  *(longlong *)(lVar6 + *(longlong *)(param_1 + 0x290)) =
                       *(longlong *)(*(longlong *)(param_1 + 0x288) + -8 + lVar6 + 8) +
                       (longlong)*(int *)(param_1 + 0x2a0) * 4;
                  lVar6 = lVar6 + 8;
                } while (iVar7 < *(int *)(lVar5 + 4));
              }
              iVar7 = *(int *)(param_1 + 0x29c) - *(int *)(param_1 + 0x2a0);
              if (iVar7 != 0) {
                if (iVar2 < iVar7) {
                  iVar7 = iVar2;
                }
                uVar1 = *(undefined4 *)(*(longlong *)(*(longlong *)(param_1 + 200) + 0x20) + 0x1668)
                ;
                if ((iVar7 == 0) || (*(int *)(param_1 + 0x2a0) + iVar7 <= *(int *)(param_1 + 0x29c))
                   ) {
                  *(int *)(param_1 + 0x2a0) = *(int *)(param_1 + 0x2a0) + iVar7;
                }
                *(longlong *)(param_1 + 0xd8) =
                     *(longlong *)(param_1 + 0xd8) + (longlong)(iVar7 << ((byte)uVar1 & 0x1f));
                local_48 = *(longlong *)(param_1 + 0x290);
                break;
              }
            }
          }
          iVar7 = FUN_181371870(param_1 + 0x60);
          if (iVar7 == -2) goto LAB_18053deb3;
        } while (0 < iVar7);
        if (iVar7 < 1) goto LAB_18053deb3;
        iVar3 = *(int *)(param_1 + 0x20);
        if (*(int *)(param_1 + 0x3c8) < *(int *)(param_1 + 0x20)) {
          iVar3 = *(int *)(param_1 + 0x3c8);
        }
        lVar5 = (longlong)(iVar3 + -1);
        if (-1 < iVar3 + -1) {
          do {
            LOCK();
            *(undefined1 *)(param_1 + 0x4e8) = 0;
            UNLOCK();
            memcpy((void *)(*(longlong *)(*(longlong *)(param_1 + 0x3d8) + lVar5 * 8) +
                           (longlong)iVar8 * 4),*(void **)(local_48 + lVar5 * 8),
                   (longlong)iVar7 << 2);
            lVar5 = lVar5 + -1;
          } while (-1 < lVar5);
        }
        iVar8 = iVar8 + iVar7;
      }
    }
    if (iVar4 < 1) {
      return 1;
    }
  } while( true );
}



############ FUN_ 18136fc00 size=1554 ############

undefined8 FUN_18136fc00(longlong param_1,longlong param_2)

{
  uint *puVar1;
  byte *pbVar2;
  undefined8 *puVar3;
  longlong lVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  undefined8 uVar8;
  longlong *plVar9;
  int *piVar10;
  byte bVar11;
  uint uVar12;
  int iVar13;
  int iVar14;
  longlong lVar15;
  uint uVar16;
  longlong lVar17;
  uint uVar18;
  ulonglong uVar19;
  longlong lVar20;
  uint uVar21;
  undefined8 local_78;
  longlong local_70;
  longlong local_68;
  ulonglong local_60;
  longlong local_58 [4];
  
  uVar8 = FUN_181370220();
  if (((int)uVar8 < 0) || (uVar8 = FUN_181371e20(param_1), (int)uVar8 != 0)) {
    return uVar8;
  }
  iVar6 = 0;
LAB_18136fc70:
  uVar18 = *(uint *)(param_1 + 0xd4);
  uVar19 = (ulonglong)(int)uVar18;
  if (*(int *)(param_1 + 0xd0) <= (int)uVar18) {
    lVar17 = FUN_1813730a0(param_1,local_58,0xffffffffffffffff);
    lVar20 = local_58[0];
    if (lVar17 < 0) goto LAB_181370127;
    if ((*(byte *)(local_58[0] + 5) & 2) != 0) {
      FUN_18138ffc0(param_1 + 0x218);
      FUN_181390bc0(param_1 + 0x298);
      *(undefined4 *)(param_1 + 0x80) = 2;
    }
    if (*(int *)(param_1 + 0x80) < 3) goto code_r0x000181370029;
    goto LAB_181370102;
  }
  uVar16 = *(uint *)(*(longlong *)(param_1 + 0xb8) + uVar19 * 4);
  lVar20 = *(longlong *)(param_1 + 0xb8) + uVar19 * 4;
  if ((uVar16 >> 10 & 1) != 0) {
    *(longlong *)(param_1 + 0x208) = *(longlong *)(param_1 + 0x208) + 1;
    *(uint *)(param_1 + 0xd4) = uVar18 + 1;
LAB_181370127:
    *(undefined8 *)(param_1 + 0x90) = 0;
    *(undefined8 *)(param_1 + 0x98) = 0;
    bVar11 = (byte)*(undefined4 *)(*(longlong *)(*(longlong *)(param_1 + 0x68) + 0x20) + 0x1668);
    lVar20 = *(longlong *)(param_1 + 0x78);
    while (lVar20 < (param_2 >> (bVar11 & 0x3f)) << (bVar11 & 0x3f)) {
      iVar6 = *(int *)(param_1 + 0x240);
      lVar20 = param_2 - *(longlong *)(param_1 + 0x78) >> (bVar11 & 0x3f);
      if ((iVar6 < 0) || (*(int *)(param_1 + 0x23c) <= iVar6)) {
        iVar6 = 0;
      }
      else {
        iVar6 = *(int *)(param_1 + 0x23c) - iVar6;
      }
      if (lVar20 < iVar6) {
        iVar6 = (int)lVar20;
      }
      if ((iVar6 == 0) || (*(int *)(param_1 + 0x240) + iVar6 <= *(int *)(param_1 + 0x23c))) {
        *(int *)(param_1 + 0x240) = *(int *)(param_1 + 0x240) + iVar6;
      }
      *(longlong *)(param_1 + 0x78) =
           *(longlong *)(param_1 + 0x78) + (longlong)(iVar6 << (bVar11 & 0x1f));
      if ((iVar6 < lVar20) && (iVar6 = FUN_181371870(param_1), iVar6 < 1)) {
        uVar8 = FUN_181371270(param_1,0xffffffff);
        *(undefined8 *)(param_1 + 0x78) = uVar8;
      }
      lVar20 = *(longlong *)(param_1 + 0x78);
    }
    return 0;
  }
  uVar21 = uVar16 & 0xff;
  uVar16 = uVar16 & 0x200;
  if (uVar21 == 0xff) {
    uVar21 = 0xff;
    do {
      puVar1 = (uint *)(lVar20 + 4);
      lVar20 = lVar20 + 4;
      uVar18 = (int)uVar19 + 1;
      uVar19 = (ulonglong)uVar18;
      uVar12 = *puVar1 & 0xff;
      if ((*puVar1 & 0x200) != 0) {
        uVar16 = 0x200;
      }
      uVar21 = uVar21 + uVar12;
    } while (uVar12 == 0xff);
  }
  uVar8 = *(undefined8 *)(param_1 + 0x208);
  lVar20 = *(longlong *)(param_1 + 0x68);
  lVar15 = (longlong)*(int *)(param_1 + 0xb0) + *(longlong *)(param_1 + 0xa0);
  lVar17 = *(longlong *)(*(longlong *)(param_1 + 0xc0) + (longlong)(int)uVar18 * 8);
  lVar4 = *(longlong *)(lVar20 + 0x20 + (longlong)*(int *)(param_1 + 0x88) * 0x28);
  local_78 = 0;
  local_60 = (ulonglong)uVar21;
  local_70 = lVar15;
  local_68 = lVar15;
  iVar5 = FUN_181392960(&local_78,1);
  if (iVar5 == 0) {
    iVar14 = 0;
    for (iVar5 = *(int *)(lVar4 + 8); 1 < iVar5; iVar5 = iVar5 >> 1) {
      iVar14 = iVar14 + 1;
    }
    iVar5 = FUN_181392960(&local_78,iVar14);
    if ((iVar5 != -1) &&
       (iVar5 = *(int *)(lVar4 + (longlong)**(int **)(lVar4 + 0x20 + (longlong)iVar5 * 8) * 4),
       -1 < iVar5)) {
      if (iVar6 != 0) {
        *(longlong *)(param_1 + 0x78) =
             *(longlong *)(param_1 + 0x78) + ((longlong)(iVar5 + iVar6) >> 2);
      }
      lVar20 = *(longlong *)(lVar20 + 0x20);
      if (lVar20 == 0) {
        iVar6 = -1;
      }
      else {
        iVar6 = *(int *)(lVar20 + 4);
      }
      if (param_2 <= ((longlong)(iVar6 + iVar5) >> 2) + *(longlong *)(param_1 + 0x78))
      goto LAB_181370127;
      uVar18 = *(uint *)(param_1 + 0xd4);
      uVar19 = (ulonglong)(int)uVar18;
      if ((int)uVar18 < *(int *)(param_1 + 0xd0)) {
        lVar20 = *(longlong *)(param_1 + 0xb8) + uVar19 * 4;
        uVar12 = *(uint *)(*(longlong *)(param_1 + 0xb8) + uVar19 * 4);
        if ((uVar12 >> 10 & 1) == 0) {
          uVar12 = uVar12 & 0xff;
          if (uVar12 == 0xff) {
            uVar12 = 0xff;
            do {
              pbVar2 = (byte *)(lVar20 + 4);
              lVar20 = lVar20 + 4;
              uVar12 = uVar12 + *pbVar2;
              uVar18 = (int)uVar19 + 1;
              uVar19 = (ulonglong)uVar18;
            } while (*pbVar2 == 0xff);
          }
          *(int *)(param_1 + 0xb0) = *(int *)(param_1 + 0xb0) + uVar12;
        }
        *(longlong *)(param_1 + 0x208) = *(longlong *)(param_1 + 0x208) + 1;
        *(uint *)(param_1 + 0xd4) = uVar18 + 1;
      }
      puVar3 = (undefined8 *)(param_1 + 0x298);
      lVar20 = *(longlong *)(*(longlong *)(param_1 + 0x2e8) + 0x78);
      lVar4 = *(longlong *)(*(longlong *)(*(longlong *)(param_1 + 0x2e8) + 8) + 0x20);
      FUN_181390c80(puVar3);
      *(undefined8 *)(param_1 + 0x2a0) = 0;
      *(undefined8 *)(param_1 + 0x2b8) = 0;
      *(longlong *)(param_1 + 0x2b0) = lVar15;
      *(longlong *)(param_1 + 0x2a8) = lVar15;
      *(uint *)(param_1 + 0x2b8) = uVar21;
      iVar6 = FUN_181392960(param_1 + 0x2a0,1);
      if ((iVar6 == 0) &&
         (iVar6 = FUN_181392960(param_1 + 0x2a0,*(undefined4 *)(lVar20 + 0x50)), iVar6 != -1)) {
        *(int *)(param_1 + 0x2d0) = iVar6;
        piVar10 = *(int **)(lVar4 + 0x20 + (longlong)iVar6 * 8);
        if (piVar10 != (int *)0x0) {
          iVar6 = *piVar10;
          *(int *)(param_1 + 0x2c4) = iVar6;
          if (iVar6 == 0) {
            *(undefined4 *)(param_1 + 0x2c0) = 0;
            *(undefined4 *)(param_1 + 0x2c8) = 0;
          }
          else {
            uVar7 = FUN_181392960(param_1 + 0x2a0,1);
            *(undefined4 *)(param_1 + 0x2c0) = uVar7;
            iVar6 = FUN_181392960(param_1 + 0x2a0,1);
            *(int *)(param_1 + 0x2c8) = iVar6;
            if (iVar6 == -1) goto LAB_18136fef4;
          }
          *(undefined8 *)(param_1 + 0x2e0) = uVar8;
          *(longlong *)(param_1 + 0x2d8) = lVar17;
          *(uint *)(param_1 + 0x2d4) = uVar16;
          *(undefined4 *)(param_1 + 0x2cc) = 0;
          *puVar3 = 0;
        }
      }
LAB_18136fef4:
      FUN_18138ec80(param_1 + 0x218,puVar3);
      iVar6 = iVar5;
      if (-1 < lVar17) {
        uVar18 = *(uint *)(param_1 + 0x88);
        lVar17 = lVar17 - *(longlong *)
                           (*(longlong *)(param_1 + 0x60) + (longlong)(int)(uVar18 * 2) * 8);
        if (lVar17 < 0) {
          lVar17 = 0;
        }
        *(longlong *)(param_1 + 0x78) = lVar17;
        if (0 < (int)uVar18) {
          plVar9 = (longlong *)(*(longlong *)(param_1 + 0x60) + 8);
          uVar19 = (ulonglong)uVar18;
          do {
            lVar17 = lVar17 + *plVar9;
            plVar9 = plVar9 + 2;
            *(longlong *)(param_1 + 0x78) = lVar17;
            uVar19 = uVar19 - 1;
          } while (uVar19 != 0);
        }
      }
      goto LAB_18136fc70;
    }
  }
  uVar18 = *(uint *)(param_1 + 0xd4);
  uVar19 = (ulonglong)(int)uVar18;
  if ((int)uVar18 < *(int *)(param_1 + 0xd0)) {
    lVar20 = *(longlong *)(param_1 + 0xb8) + uVar19 * 4;
    uVar16 = *(uint *)(*(longlong *)(param_1 + 0xb8) + uVar19 * 4);
    if ((uVar16 >> 10 & 1) == 0) {
      uVar16 = uVar16 & 0xff;
      if (uVar16 == 0xff) {
        uVar16 = 0xff;
        do {
          pbVar2 = (byte *)(lVar20 + 4);
          lVar20 = lVar20 + 4;
          uVar16 = uVar16 + *pbVar2;
          uVar18 = (int)uVar19 + 1;
          uVar19 = (ulonglong)uVar18;
        } while (*pbVar2 == 0xff);
      }
      *(int *)(param_1 + 0xb0) = *(int *)(param_1 + 0xb0) + uVar16;
    }
    *(longlong *)(param_1 + 0x208) = *(longlong *)(param_1 + 0x208) + 1;
    *(uint *)(param_1 + 0xd4) = uVar18 + 1;
  }
  goto LAB_18136fc70;
code_r0x000181370029:
  iVar13 = 0;
  iVar5 = *(int *)(param_1 + 0x40);
  iVar14 = *(int *)(lVar20 + 0xe);
  if (0 < iVar5) {
    piVar10 = *(int **)(param_1 + 0x58);
    iVar13 = 0;
    do {
      if (*piVar10 == iVar14) break;
      iVar13 = iVar13 + 1;
      piVar10 = piVar10 + 1;
    } while (iVar13 < iVar5);
  }
  if (iVar13 != iVar5) {
    *(int *)(param_1 + 0x88) = iVar13;
    *(undefined4 *)(param_1 + 0x80) = 3;
    *(undefined4 *)(param_1 + 0x84) = *(undefined4 *)(lVar20 + 0xe);
    *(undefined8 *)(param_1 + 0xac) = 0;
    *(undefined8 *)(param_1 + 0xcc) = 0;
    *(undefined4 *)(param_1 + 0xd4) = 0;
    *(undefined8 *)(param_1 + 500) = 0;
    *(undefined4 *)(param_1 + 0x1fc) = 0;
    *(undefined4 *)(param_1 + 0x204) = 0xffffffff;
    *(undefined8 *)(param_1 + 0x208) = 0;
    *(undefined8 *)(param_1 + 0x210) = 0;
    *(int *)(param_1 + 0x200) = iVar14;
    uVar8 = FUN_181371e20(param_1);
    iVar6 = 0;
    if ((int)uVar8 != 0) {
      return uVar8;
    }
LAB_181370102:
    FUN_1813919f0((longlong *)(param_1 + 0xa0),local_58);
  }
  goto LAB_18136fc70;
}



############ FUN_ 181371870 size=992 ############

undefined8 FUN_181371870(longlong param_1)

{
  undefined4 uVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  undefined8 uVar5;
  longlong *plVar6;
  byte bVar7;
  int *piVar8;
  longlong lVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  longlong lVar12;
  ulonglong uVar13;
  longlong lVar14;
  longlong local_68;
  int local_60;
  undefined1 local_48 [8];
  int local_40;
  int local_38;
  ulonglong local_30;
  
  uVar10 = 0;
  lVar12 = local_68;
LAB_181371893:
  if ((*(int *)(param_1 + 0x80) != 3) || (uVar5 = FUN_181371e20(param_1), -1 < (int)uVar5)) {
    uVar4 = 0;
    if (*(int *)(param_1 + 0x80) == 4) {
      uVar1 = *(undefined4 *)(*(longlong *)(*(longlong *)(param_1 + 0x68) + 0x20) + 0x1668);
      while( true ) {
        iVar2 = FUN_181391840(param_1 + 0xa0,local_48,1);
        uVar11 = local_30;
        if (iVar2 == -1) {
          return 0xfffffffd;
        }
        if (iVar2 < 1) break;
        iVar2 = FUN_181377470(param_1 + 0x298,local_48);
        if (iVar2 == 0) {
          if ((-1 < *(int *)(param_1 + 0x240)) &&
             (*(int *)(param_1 + 0x240) < *(int *)(param_1 + 0x23c))) {
            return 0xffffff7f;
          }
          FUN_18138ec80(param_1 + 0x218,param_1 + 0x298);
          iVar2 = *(int *)(param_1 + 0x240);
          uVar3 = uVar4;
          if ((-1 < iVar2) && (iVar2 < *(int *)(param_1 + 0x23c))) {
            uVar3 = *(int *)(param_1 + 0x23c) - iVar2;
          }
          bVar7 = (byte)uVar1;
          *(double *)(param_1 + 0x98) =
               (double)(int)(uVar3 << (bVar7 & 0x1f)) + *(double *)(param_1 + 0x98);
          *(double *)(param_1 + 0x90) = (double)(local_40 * 8) + *(double *)(param_1 + 0x90);
          if ((uVar11 != 0xffffffffffffffff) && (local_38 == 0)) {
            uVar3 = uVar4;
            if ((*(int *)(param_1 + 8) != 0) && (uVar3 = *(uint *)(param_1 + 0x88), 0 < (int)uVar3))
            {
              uVar11 = uVar11 - *(longlong *)
                                 (*(longlong *)(param_1 + 0x60) + (longlong)(int)(uVar3 * 2) * 8);
            }
            iVar2 = *(int *)(param_1 + 0x240);
            if ((longlong)uVar11 < 0) {
              uVar11 = uVar10;
            }
            if ((-1 < iVar2) && (iVar2 < *(int *)(param_1 + 0x23c))) {
              uVar4 = *(int *)(param_1 + 0x23c) - iVar2;
            }
            lVar14 = (longlong)(int)uVar3;
            lVar12 = uVar11 - (longlong)(int)(uVar4 << (bVar7 & 0x1f));
            uVar13 = uVar10;
            uVar11 = uVar10;
            if (1 < lVar14) {
              plVar6 = (longlong *)(*(longlong *)(param_1 + 0x60) + 0x18);
              lVar9 = (lVar14 - 2U >> 1) + 1;
              uVar11 = lVar9 * 2;
              do {
                uVar13 = uVar13 + plVar6[-2];
                uVar10 = uVar10 + *plVar6;
                plVar6 = plVar6 + 4;
                lVar9 = lVar9 + -1;
              } while (lVar9 != 0);
            }
            if ((longlong)uVar11 < lVar14) {
              lVar12 = lVar12 + *(longlong *)(*(longlong *)(param_1 + 0x60) + 8 + uVar11 * 0x10);
            }
            *(ulonglong *)(param_1 + 0x78) = uVar10 + uVar13 + lVar12;
          }
          return 1;
        }
      }
    }
    if (1 < *(int *)(param_1 + 0x80)) {
      do {
        lVar14 = FUN_1813730a0(param_1,&local_68,0xffffffffffffffff);
        lVar12 = local_68;
        if (lVar14 < 0) {
          return 0xfffffffe;
        }
        *(double *)(param_1 + 0x90) = (double)(local_60 * 8) + *(double *)(param_1 + 0x90);
        if (*(int *)(param_1 + 0x80) != 4) goto LAB_1813719e7;
        if (*(int *)(param_1 + 0x84) == *(int *)(local_68 + 0xe)) goto LAB_1813719da;
      } while ((*(byte *)(local_68 + 5) & 2) == 0);
      FUN_181371c60(param_1);
      if (*(int *)(param_1 + 8) == 0) {
        FUN_181388250(*(undefined8 *)(param_1 + 0x68));
        FUN_181388560(*(undefined8 *)(param_1 + 0x70));
      }
    }
LAB_1813719da:
    if (*(int *)(param_1 + 0x80) == 4) goto LAB_181371ae0;
LAB_1813719e7:
    if (2 < *(int *)(param_1 + 0x80)) goto LAB_181371ae0;
    if (*(int *)(param_1 + 8) != 0) goto code_r0x0001813719fd;
    uVar5 = FUN_181372660(param_1,*(undefined8 *)(param_1 + 0x68),*(undefined8 *)(param_1 + 0x70),0,
                          0,&local_68);
    if ((int)uVar5 == 0) {
      *(int *)(param_1 + 0x88) = *(int *)(param_1 + 0x88) + 1;
      *(undefined4 *)(param_1 + 0x84) = *(undefined4 *)(param_1 + 0x200);
      lVar12 = local_68;
      goto LAB_181371ae0;
    }
  }
  return uVar5;
code_r0x0001813719fd:
  uVar3 = *(uint *)(param_1 + 0x40);
  iVar2 = *(int *)(lVar12 + 0xe);
  if (0 < (int)uVar3) {
    piVar8 = *(int **)(param_1 + 0x58);
    uVar11 = uVar10;
    do {
      uVar4 = (uint)uVar11;
      if (*piVar8 == iVar2) break;
      uVar4 = uVar4 + 1;
      uVar11 = (ulonglong)uVar4;
      piVar8 = piVar8 + 1;
    } while ((int)uVar4 < (int)uVar3);
  }
  if (uVar4 != uVar3) {
    *(int *)(param_1 + 0x84) = iVar2;
    *(uint *)(param_1 + 0x88) = uVar4;
    *(undefined8 *)(param_1 + 0xac) = 0;
    *(undefined8 *)(param_1 + 0xcc) = 0;
    *(undefined4 *)(param_1 + 0xd4) = 0;
    *(undefined8 *)(param_1 + 500) = 0;
    *(undefined4 *)(param_1 + 0x1fc) = 0;
    *(undefined4 *)(param_1 + 0x204) = 0xffffffff;
    *(undefined8 *)(param_1 + 0x208) = 0;
    *(undefined8 *)(param_1 + 0x210) = 0;
    *(int *)(param_1 + 0x200) = iVar2;
    *(undefined4 *)(param_1 + 0x80) = 3;
LAB_181371ae0:
    FUN_1813919f0(param_1 + 0xa0,&local_68);
  }
  goto LAB_181371893;
}



############ FUN_ 1805386e0 size=120 ############

undefined8 * FUN_1805386e0(undefined8 *param_1,uint param_2)

{
  undefined8 *puVar1;
  
  *param_1 = juce::AudioFormatReaderSource::vftable;
  if (*(char *)(param_1 + 2) == '\0') {
    param_1[1] = 0;
  }
  else {
    puVar1 = (undefined8 *)param_1[1];
    param_1[1] = 0;
    if (puVar1 == (undefined8 *)0x0) goto LAB_180538737;
    (**(code **)*puVar1)(puVar1,1);
  }
  puVar1 = (undefined8 *)param_1[1];
  if (puVar1 != (undefined8 *)0x0) {
    (**(code **)*puVar1)(puVar1,1);
  }
LAB_180538737:
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    free(param_1);
  }
  return param_1;
}



############ FUN_ 1813aec40 size=242 ############

void FUN_1813aec40(longlong param_1,undefined8 *param_2)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  ulonglong uVar5;
  int iVar6;
  
  iVar6 = *(int *)((longlong)param_2 + 0xc);
  if (0 < iVar6) {
    lVar1 = *(longlong *)(param_1 + 0x18);
    lVar2 = *(longlong *)(param_1 + 8);
    if (*(char *)(param_1 + 0x20) != '\0') {
      lVar3 = *(longlong *)(lVar2 + 0x18);
      lVar4 = lVar1 % lVar3;
      uVar5 = (lVar1 + iVar6) % lVar3;
      if (lVar4 < (longlong)uVar5) {
        FUN_1813af530(lVar2,*param_2,*(undefined4 *)(param_2 + 1),(int)uVar5 - (int)lVar4,lVar4);
        *(ulonglong *)(param_1 + 0x18) = uVar5;
        return;
      }
      iVar6 = (int)lVar3 - (int)lVar4;
      FUN_1813af530(lVar2,*param_2,*(undefined4 *)(param_2 + 1),iVar6,lVar4);
      FUN_1813af530(*(undefined8 *)(param_1 + 8),*param_2,*(int *)(param_2 + 1) + iVar6,
                    uVar5 & 0xffffffff,0);
      *(ulonglong *)(param_1 + 0x18) = uVar5;
      return;
    }
    FUN_1813af530(lVar2,*param_2,*(undefined4 *)(param_2 + 1),(longlong)iVar6,lVar1);
    *(longlong *)(param_1 + 0x18) =
         *(longlong *)(param_1 + 0x18) + (longlong)*(int *)((longlong)param_2 + 0xc);
  }
  return;
}



############ FUN_ 1813af530 size=430 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1813af530(longlong param_1,int *param_2,int param_3,int param_4,undefined8 param_5)

{
  int iVar1;
  void *pvVar2;
  void *_Src;
  undefined1 auStack_2d8 [32];
  int local_2b8;
  undefined8 local_2b0;
  int local_2a8;
  undefined1 local_2a0;
  void *local_298;
  void *local_290;
  undefined8 local_288;
  void *local_280;
  void *local_278;
  void *local_270;
  undefined8 local_268;
  undefined1 local_258 [528];
  ulonglong local_48;
  
  if (param_4 < 1) {
    return;
  }
  local_288 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_2d8;
  iVar1 = *param_2;
  local_2b8 = param_4;
  if (iVar1 < 3) {
    pvVar2 = (void *)0x0;
    LOCK();
    *(undefined1 *)(param_2 + 0x48) = 0;
    UNLOCK();
    _Src = (void *)(**(longlong **)(param_2 + 4) + (longlong)param_3 * 4);
    if (1 < iVar1) {
      LOCK();
      *(undefined1 *)(param_2 + 0x48) = 0;
      UNLOCK();
      pvVar2 = (void *)(*(longlong *)(*(longlong *)(param_2 + 4) + 8) + (longlong)param_3 * 4);
    }
    local_268 = 0;
    local_270 = (void *)0x0;
    if (1 < *(uint *)(param_1 + 0x20)) {
      local_270 = pvVar2;
    }
    local_2b0 = CONCAT71(local_2b0._1_7_,1);
    local_298 = _Src;
    local_290 = pvVar2;
    local_278 = _Src;
    FUN_1813af7b0(param_1,&local_278,2,param_5);
    if ((1 < iVar1) && ((local_278 == (void *)0x0 || (local_270 == (void *)0x0)))) {
      memcpy(pvVar2,_Src,(longlong)param_4 << 2);
    }
    if (*(char *)(param_1 + 0x24) == '\0') {
      FUN_1813af920(&local_298,2,param_4);
    }
  }
  else {
    local_2a8 = iVar1;
    if (0x40 < iVar1) {
      pvVar2 = malloc((longlong)(iVar1 + 1) << 3);
      local_2a0 = *(char *)(param_1 + 0x24) == '\0';
      local_2b0 = param_5;
      local_280 = pvVar2;
      FUN_1813af700(param_1,pvVar2,param_2,param_3);
                    /* WARNING: Subroutine does not return */
      free(pvVar2);
    }
    local_2a0 = *(char *)(param_1 + 0x24) == '\0';
    local_2b0 = param_5;
    FUN_1813af700(param_1,local_258,param_2,param_3);
  }
}



############ FUN_ 18048cbc0 size=257 ############

int FUN_18048cbc0(byte *param_1,byte *param_2)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  
  do {
    bVar1 = *param_1;
    param_1 = param_1 + 1;
    uVar4 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar2 = 0x40;
      iVar5 = 0;
      uVar4 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar2 < 9) break;
          uVar4 = uVar4 >> 1;
          iVar5 = iVar5 + 1;
          uVar2 = uVar2 >> 1;
        } while ((bVar1 & uVar2) != 0);
      }
      uVar4 = bVar1 & uVar4;
      for (; (iVar5 = iVar5 + -1, -1 < iVar5 && ((*param_1 & 0xc0) == 0x80)); param_1 = param_1 + 1)
      {
        uVar4 = *param_1 & 0x3f | uVar4 << 6;
      }
    }
    bVar1 = *param_2;
    param_2 = param_2 + 1;
    uVar2 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar3 = 0x40;
      iVar5 = 0;
      uVar2 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar3 < 9) break;
          uVar2 = uVar2 >> 1;
          iVar5 = iVar5 + 1;
          uVar3 = uVar3 >> 1;
        } while ((bVar1 & uVar3) != 0);
      }
      uVar2 = bVar1 & uVar2;
      for (; (iVar5 = iVar5 + -1, -1 < iVar5 && ((*param_2 & 0xc0) == 0x80)); param_2 = param_2 + 1)
      {
        uVar2 = *param_2 & 0x3f | uVar2 << 6;
      }
    }
    if (uVar4 != uVar2) {
      iVar5 = 1;
      if ((int)(uVar4 - uVar2) < 0) {
        iVar5 = -1;
      }
      if (iVar5 != 0) {
        return iVar5;
      }
    }
    if (uVar4 == 0) {
      return 0;
    }
  } while( true );
}



############ FUN_ 180528b30 size=87 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180528b30(longlong *param_1)

{
  undefined8 *puVar1;
  undefined1 auStack_48 [32];
  longlong *local_28;
  undefined1 local_20 [8];
  ulonglong local_18;
  
  local_18 = DAT_182615970 ^ (ulonglong)auStack_48;
  puVar1 = (undefined8 *)(**(code **)(*param_1 + 0x10))(param_1,&local_28);
  (**(code **)(*(longlong *)*puVar1 + 8))((longlong *)*puVar1,puVar1 + 1);
  (**(code **)(*local_28 + 0xb0))(local_28,local_20);
}



############ FUN_ 18052fc30 size=92 ############

void FUN_18052fc30(longlong param_1)

{
  int iVar1;
  
  *(undefined1 *)(param_1 + 0x24008c) = 1;
  iVar1 = *(int *)(param_1 + 0x2400a4);
  while( true ) {
    if (iVar1 < 1) {
      return;
    }
    iVar1 = iVar1 + -1;
    if ((*(int *)(param_1 + 0x2400a4) <= iVar1) &&
       (iVar1 = *(int *)(param_1 + 0x2400a4) + -1, iVar1 < 0)) break;
    FUN_180526060(*(undefined8 *)(*(longlong *)(param_1 + 0x240098) + (longlong)iVar1 * 8));
  }
  return;
}



############ FUN_ 180528d50 size=203 ############

bool FUN_180528d50(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  uint *_Memory;
  uint uVar1;
  longlong lVar2;
  int iVar3;
  longlong *plVar4;
  int iVar5;
  float fVar6;
  longlong local_res10;
  
  FUN_18049c4e0(&local_res10,"offline resolution",param_3,param_4,0xfffffffffffffffe);
  lVar2 = local_res10;
  plVar4 = (longlong *)FUN_18119aa60(param_1 + 0x178,local_res10);
  if (*(float *)(plVar4 + 0x17) == 0.0) {
    iVar5 = -1;
    local_res10 = lVar2;
  }
  else {
    fVar6 = (float)FUN_180487220(plVar4 + 0x16,(int)plVar4[0x31]);
    iVar5 = (int)(fVar6 / *(float *)(plVar4 + 0x17));
  }
  iVar3 = (**(code **)(*plVar4 + 0x30))(plVar4);
  _Memory = (uint *)(local_res10 + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  return iVar5 != iVar3 + -1;
}



############ FUN_ 181342bf0 size=264 ############

void FUN_181342bf0(longlong *param_1,float param_2)

{
  double dVar1;
  char cVar2;
  int iVar3;
  longlong *plVar4;
  undefined8 local_18;
  undefined4 uStack_10;
  undefined4 uStack_c;
  
  dVar1 = (double)param_2 * DAT_1824c4318 + DAT_1824c4520;
  iVar3 = SUB84(dVar1,0);
  if (iVar3 < 0) {
    cVar2 = '\0';
  }
  else {
    cVar2 = SUB81(dVar1,0);
    if (0xff < iVar3) {
      cVar2 = -1;
    }
  }
  if (*(char *)((longlong)param_1 + 0xac) != (char)(-1 - cVar2)) {
    *(char *)((longlong)param_1 + 0xac) = -1 - cVar2;
    if (*(code **)(*param_1 + 0xb8) !=
        .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__) {
      (**(code **)(*param_1 + 0xb8))(param_1);
      return;
    }
    if ((*(byte *)(param_1 + 0x15) & 1) == 0) {
      uStack_10 = (undefined4)param_1[5];
      uStack_c = *(undefined4 *)((longlong)param_1 + 0x2c);
      local_18 = 0;
      FUN_181342870(param_1,&local_18,1);
      return;
    }
    plVar4 = (longlong *)FUN_1812d2bd0();
    if (plVar4 != (longlong *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x000181342ca3. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(*plVar4 + 0xf0))
                (plVar4,(float)(int)(0xff - (uint)*(byte *)((longlong)param_1 + 0xac)) /
                        DAT_1824c4548);
      return;
    }
  }
  return;
}



############ FUN_ 181342870 size=427 ############

void FUN_181342870(longlong param_1,undefined1 (*param_2) [16],char param_3)

{
  undefined1 auVar1 [16];
  longlong lVar2;
  char cVar3;
  longlong *plVar4;
  undefined8 *puVar5;
  float fVar6;
  float fVar7;
  undefined8 local_48;
  undefined8 uStack_40;
  undefined1 local_38 [8];
  int local_30;
  int local_2c;
  undefined8 local_28;
  undefined8 uStack_20;
  undefined1 local_18 [16];
  
  if ((*(byte *)(param_1 + 0xa8) & 2) != 0) {
    if (*(longlong **)(param_1 + 0x68) != (longlong *)0x0) {
      lVar2 = **(longlong **)(param_1 + 0x68);
      if (param_3 == '\0') {
        cVar3 = (**(code **)(lVar2 + 0x18))();
      }
      else {
        cVar3 = (**(code **)(lVar2 + 0x10))();
      }
      if (cVar3 == '\0') {
        return;
      }
    }
    if ((0 < *(int *)(*param_2 + 8)) && (0 < *(int *)(*param_2 + 0xc))) {
      if ((*(byte *)(param_1 + 0xa8) & 1) == 0) {
        if (*(longlong *)(param_1 + 0x18) != 0) {
          local_28 = *(undefined8 *)*param_2;
          uStack_20 = *(undefined8 *)(*param_2 + 8);
          puVar5 = (undefined8 *)FUN_18051e4b0(local_18,param_1,&local_28);
          local_28 = *puVar5;
          uStack_20 = puVar5[1];
          FUN_181342a30(*(undefined8 *)(param_1 + 0x18),&local_28);
          return;
        }
      }
      else {
        plVar4 = (longlong *)FUN_1812d2bd0(param_1);
        if (plVar4 != (longlong *)0x0) {
          (**(code **)(*plVar4 + 0x38))(plVar4,local_38);
          auVar1 = *param_2;
          fVar6 = (float)local_30 / (float)*(int *)(param_1 + 0x28);
          fVar7 = (float)local_2c / (float)*(int *)(param_1 + 0x2c);
          local_48 = CONCAT44((float)auVar1._4_4_ * fVar7,(float)auVar1._0_4_ * fVar6);
          uStack_40 = CONCAT44((float)auVar1._12_4_ * fVar7,(float)auVar1._8_4_ * fVar6);
          puVar5 = (undefined8 *)FUN_1804ab070(&local_48,&local_28);
          local_48 = *puVar5;
          uStack_40 = puVar5[1];
          if (*(longlong *)(param_1 + 0x38) == 0) {
            puVar5 = &local_28;
            local_28 = local_48;
            uStack_20 = uStack_40;
          }
          else {
            puVar5 = (undefined8 *)FUN_1804b1290(&local_48,local_18);
          }
          (**(code **)(*plVar4 + 0xe0))(plVar4,puVar5);
        }
      }
    }
  }
  return;
}



############ FUN_ 181339840 size=347 ############

undefined8 * FUN_181339840(undefined8 *param_1,undefined8 *param_2,undefined8 param_3)

{
  undefined4 uVar1;
  char cVar2;
  undefined1 uVar3;
  undefined4 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  undefined8 uVar10;
  undefined8 local_res8;
  undefined4 local_res10;
  undefined4 local_res14;
  
  FUN_18051dc40(&local_res10,param_3,param_1[6],param_1[5],0xfffffffffffffffe);
  FUN_18051dc40(&local_res8,param_3,param_1[6],*param_1);
  uVar5 = param_1[10];
  cVar2 = *(char *)((longlong)param_1 + 0x59);
  uVar3 = *(undefined1 *)(param_1 + 0xb);
  uVar6 = param_1[9];
  uVar7 = param_1[8];
  uVar8 = param_1[7];
  uVar1 = *(undefined4 *)((longlong)param_1 + 0x24);
  uVar9 = *(undefined8 *)((longlong)param_1 + 0x14);
  uVar10 = *(undefined8 *)((longlong)param_1 + 0x1c);
  uVar4 = *(undefined4 *)(param_1 + 2);
  *param_2 = local_res8;
  local_res8._0_4_ = SUB84((double)(float)local_res8 + DAT_1824c4520,0);
  *(float *)(param_2 + 1) = (float)local_res8;
  local_res8._0_4_ = SUB84((double)local_res8._4_4_ + DAT_1824c4520,0);
  *(float *)((longlong)param_2 + 0xc) = (float)local_res8;
  *(undefined4 *)(param_2 + 2) = uVar4;
  *(undefined8 *)((longlong)param_2 + 0x14) = uVar9;
  *(undefined8 *)((longlong)param_2 + 0x1c) = uVar10;
  *(undefined4 *)((longlong)param_2 + 0x24) = uVar1;
  *(undefined4 *)(param_2 + 5) = local_res10;
  *(undefined4 *)((longlong)param_2 + 0x2c) = local_res14;
  param_2[6] = param_3;
  param_2[7] = uVar8;
  param_2[8] = uVar7;
  param_2[9] = uVar6;
  param_2[10] = uVar5;
  *(undefined1 *)(param_2 + 0xb) = uVar3;
  *(bool *)((longlong)param_2 + 0x59) = cVar2 != '\0';
  return param_2;
}



############ FUN_ 1812d2bd0 size=106 ############

longlong FUN_1812d2bd0(longlong param_1)

{
  longlong *plVar1;
  undefined8 uVar2;
  longlong *plVar3;
  
  if (DAT_182673700 == 0) {
    uVar2 = FUN_1811316e0(0x130);
    DAT_182673700 = FUN_18133c6c0(uVar2);
  }
  plVar3 = *(longlong **)(DAT_182673700 + 0x68);
  plVar1 = plVar3 + *(int *)(DAT_182673700 + 0x74);
  while( true ) {
    if (plVar3 == plVar1) {
      return 0;
    }
    if (*(longlong *)(*plVar3 + 8) == param_1) break;
    plVar3 = plVar3 + 1;
  }
  return *plVar3;
}



############ FUN_ 18049a930 size=358 ############

undefined8 * FUN_18049a930(undefined8 *param_1,undefined8 *param_2)

{
  byte bVar1;
  byte *pbVar2;
  byte *pbVar3;
  byte *pbVar4;
  longlong lVar5;
  ulonglong uVar7;
  uint uVar8;
  uint uVar9;
  int iVar10;
  longlong lVar6;
  
  if (*(char *)*param_2 == '\0') {
    *param_1 = &DAT_1821dbf84;
    return param_1;
  }
  lVar5 = -1;
  do {
    lVar6 = lVar5;
    lVar5 = lVar6 + 1;
  } while (((char *)*param_2)[lVar5] != '\0');
  uVar7 = lVar6 + 5U & 0xfffffffc;
  lVar5 = FUN_18049d580();
  FUN_1812342b0(param_2,lVar5 + 2 + uVar7);
  pbVar2 = (byte *)*param_2;
  pbVar4 = pbVar2 + (int)uVar7;
  pbVar3 = pbVar4;
  do {
    bVar1 = *pbVar2;
    pbVar2 = pbVar2 + 1;
    uVar9 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar8 = 0x40;
      uVar9 = 0x7f;
      iVar10 = 0;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar8 < 9) break;
          uVar9 = uVar9 >> 1;
          iVar10 = iVar10 + 1;
          uVar8 = uVar8 >> 1;
        } while ((bVar1 & uVar8) != 0);
      }
      uVar9 = bVar1 & uVar9;
      for (; (iVar10 = iVar10 + -1, -1 < iVar10 && ((*pbVar2 & 0xc0) == 0x80)); pbVar2 = pbVar2 + 1)
      {
        uVar9 = *pbVar2 & 0x3f | uVar9 << 6;
      }
    }
    if (uVar9 == 0) {
      pbVar3[0] = 0;
      pbVar3[1] = 0;
      *param_1 = pbVar4;
      return param_1;
    }
    if (uVar9 < 0x10000) {
      *(short *)pbVar3 = (short)uVar9;
      pbVar3 = pbVar3 + 2;
    }
    else {
      *(short *)pbVar3 = (short)(uVar9 - 0x10000 >> 10) + -0x2800;
      *(ushort *)(pbVar3 + 2) = ((ushort)(uVar9 - 0x10000) & 0x3ff) + 0xdc00;
      pbVar3 = pbVar3 + 4;
    }
  } while( true );
}



############ FUN_ 1804de690 size=193 ############

longlong * FUN_1804de690(longlong *param_1,longlong param_2)

{
  int *piVar1;
  int iVar2;
  undefined8 *puVar3;
  longlong lVar4;
  undefined8 *puVar5;
  
  if (param_2 != 0) {
    if (*(longlong *)(param_2 + 0xa0) == 0) {
      puVar5 = (undefined8 *)FUN_1811316e0(0x18);
      *(undefined4 *)(puVar5 + 1) = 0;
      *puVar5 = juce::WeakReference<juce::Component,juce::ReferenceCountedObject>::SharedPointer::
                vftable;
      puVar5[2] = param_2;
      if (*(undefined8 **)(param_2 + 0xa0) != puVar5) {
        LOCK();
        *(int *)(puVar5 + 1) = *(int *)(puVar5 + 1) + 1;
        UNLOCK();
        puVar3 = *(undefined8 **)(param_2 + 0xa0);
        *(undefined8 **)(param_2 + 0xa0) = puVar5;
        if (puVar3 != (undefined8 *)0x0) {
          LOCK();
          piVar1 = (int *)(puVar3 + 1);
          iVar2 = *piVar1;
          *piVar1 = *piVar1 + -1;
          UNLOCK();
          if (iVar2 == 1) {
            (**(code **)*puVar3)(puVar3,1);
          }
        }
      }
    }
    lVar4 = *(longlong *)(param_2 + 0xa0);
    *param_1 = lVar4;
    if (lVar4 != 0) {
      LOCK();
      *(int *)(lVar4 + 8) = *(int *)(lVar4 + 8) + 1;
      UNLOCK();
    }
    return param_1;
  }
  *param_1 = 0;
  return param_1;
}



############ FUN_ 181342b10 size=94 ############

void FUN_181342b10(longlong param_1)

{
  undefined8 *puVar1;
  undefined8 local_28;
  undefined4 uStack_20;
  undefined4 uStack_1c;
  undefined1 local_18 [16];
  
  if (*(longlong *)(param_1 + 0x18) != 0) {
    uStack_20 = *(undefined4 *)(param_1 + 0x28);
    uStack_1c = *(undefined4 *)(param_1 + 0x2c);
    local_28 = 0;
    puVar1 = (undefined8 *)FUN_18051e4b0(local_18,param_1,&local_28);
    local_28 = *puVar1;
    uStack_20 = *(undefined4 *)(puVar1 + 1);
    uStack_1c = *(undefined4 *)((longlong)puVar1 + 0xc);
    FUN_181342a30(*(undefined8 *)(param_1 + 0x18),&local_28);
  }
  return;
}



############ FUN_ 18133f790 size=125 ############

ulonglong FUN_18133f790(void)

{
  uint *puVar1;
  uint uVar2;
  longlong lVar3;
  undefined8 uVar4;
  ulonglong uVar5;
  
  if (DAT_182673700 == 0) {
    uVar4 = FUN_1811316e0(0x130);
    DAT_182673700 = FUN_18133c6c0(uVar4);
  }
  uVar5 = *(ulonglong *)(DAT_182673700 + 0x30);
  lVar3 = **(longlong **)(uVar5 + 0x18);
  if ((*(byte *)(lVar3 + 0x28) & 0x70) == 0) {
    uVar5 = 0;
    puVar1 = (uint *)(*(longlong *)(lVar3 + 8) + 0x18);
    LOCK();
    uVar2 = *puVar1;
    if (uVar2 == 0) {
      *puVar1 = 1;
    }
    else {
      uVar5 = (ulonglong)uVar2;
    }
    UNLOCK();
    if (uVar2 == 0) {
      uVar5 = FUN_1812a6720(*(undefined8 *)(lVar3 + 8));
      if ((char)uVar5 == '\0') {
        LOCK();
        puVar1 = (uint *)(*(longlong *)(lVar3 + 8) + 0x18);
        uVar2 = *puVar1;
        *puVar1 = 0;
        uVar5 = (ulonglong)uVar2;
        UNLOCK();
      }
    }
  }
  return uVar5;
}



############ FUN_ 1804e5060 size=116 ############

void FUN_1804e5060(longlong param_1)

{
  undefined8 *puVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  
  if (*(longlong **)(param_1 + 0x68) != (longlong *)0x0) {
    (**(code **)(**(longlong **)(param_1 + 0x68) + 0x20))();
  }
  puVar1 = *(undefined8 **)(param_1 + 0x40);
  uVar3 = 0;
  uVar2 = (ulonglong)((longlong)(puVar1 + *(int *)(param_1 + 0x4c)) + (7 - (longlong)puVar1)) >> 3;
  if (puVar1 + *(int *)(param_1 + 0x4c) < puVar1) {
    uVar2 = uVar3;
  }
  if (uVar2 != 0) {
    do {
      FUN_1804e5060(*puVar1);
      uVar3 = uVar3 + 1;
      puVar1 = puVar1 + 1;
    } while (uVar3 != uVar2);
  }
  return;
}



############ FUN_ 18133eae0 size=150 ############

ulonglong FUN_18133eae0(char param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  uint *puVar1;
  uint uVar2;
  longlong lVar3;
  undefined8 uVar4;
  ulonglong uVar5;
  
  lVar3 = DAT_182673708;
  DAT_182673708 = 0;
  if ((param_1 != '\0') && (lVar3 != 0)) {
    FUN_18133f2f0(lVar3,2,param_3,param_4,0xfffffffffffffffe);
  }
  if (DAT_182673700 == 0) {
    uVar4 = FUN_1811316e0(0x130);
    DAT_182673700 = FUN_18133c6c0(uVar4);
  }
  lVar3 = DAT_182673700;
  uVar5 = 0;
  puVar1 = (uint *)(*(longlong *)(DAT_182673700 + 0x28) + 0x18);
  LOCK();
  uVar2 = *puVar1;
  if (uVar2 == 0) {
    *puVar1 = 1;
  }
  else {
    uVar5 = (ulonglong)uVar2;
  }
  UNLOCK();
  if (uVar2 == 0) {
    uVar5 = FUN_1812a6720(*(undefined8 *)(lVar3 + 0x28));
    if ((char)uVar5 == '\0') {
      uVar5 = *(ulonglong *)(lVar3 + 0x28);
      LOCK();
      *(undefined4 *)(uVar5 + 0x18) = 0;
      UNLOCK();
    }
  }
  return uVar5;
}



############ FUN_ 18133ed60 size=398 ############

/* WARNING: Removing unreachable block (ram,0x00018133eec0) */

void FUN_18133ed60(longlong *param_1,undefined4 param_2,char param_3,undefined8 param_4)

{
  code *pcVar1;
  char cVar2;
  longlong *plVar3;
  longlong lVar4;
  undefined8 uVar5;
  void *local_30;
  ulonglong local_28;
  
  uVar5 = 0xfffffffffffffffe;
  cVar2 = FUN_181345240();
  if (cVar2 != '\0') {
    plVar3 = DAT_182673708;
    if (((*(byte *)(param_1 + 0x15) & 0x20) == 0) ||
       ((((*(byte *)((longlong)param_1 + 0xa9) & 0x10) != 0 ||
         ((param_1[3] != 0 && (cVar2 = FUN_18133eaa0(), cVar2 == '\0')))) &&
        (plVar3 = DAT_182673708, param_1[3] != 0)))) {
      do {
        if (plVar3 == (longlong *)0x0) goto LAB_18133edfd;
        plVar3 = (longlong *)plVar3[3];
      } while (plVar3 != param_1);
      cVar2 = FUN_181345240();
      if (cVar2 == '\0') {
LAB_18133edfd:
        plVar3 = (longlong *)(**(code **)(*param_1 + 0xa8))();
        if (plVar3 != (longlong *)0x0) {
          pcVar1 = *(code **)(*plVar3 + 0x18);
          if (pcVar1 == FUN_181338ac0) {
            local_30 = (void *)0x0;
            local_28 = 0;
            if (*(int *)((longlong)param_1 + 0x4c) != 0) {
              FUN_181338d00(param_1,&local_30);
            }
            local_28 = local_28 & 0xffffffff;
                    /* WARNING: Subroutine does not return */
            free(local_30);
          }
          lVar4 = (*pcVar1)(plVar3,param_1,pcVar1,param_4,uVar5);
          if (plVar3 != (longlong *)0x0) {
            (**(code **)*plVar3)(plVar3,1);
          }
          if (lVar4 != 0) {
            FUN_18133ed60(lVar4,param_2,0);
            return;
          }
        }
        if ((param_3 != '\0') && (param_1[3] != 0)) {
          FUN_18133ed60(param_1[3],param_2,1);
        }
      }
    }
    else {
      FUN_18133ef00(param_1,param_2);
    }
  }
  return;
}



############ FUN_ 1813452b0 size=218 ############

void FUN_1813452b0(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  int iVar5;
  bool bVar6;
  undefined8 *local_res8;
  
  FUN_1804de690(&local_res8,param_1,param_3,param_4,0xfffffffffffffffe);
  (**(code **)(*param_1 + 0x60))(param_1);
  puVar3 = local_res8;
  bVar6 = local_res8 == (undefined8 *)0x0;
  if (bVar6) {
    lVar4 = 0;
  }
  else {
    lVar4 = local_res8[2];
  }
  if (lVar4 != 0) {
    iVar5 = *(int *)((longlong)param_1 + 0x8c);
    while( true ) {
      if (bVar6) {
        lVar4 = 0;
      }
      else {
        lVar4 = puVar3[2];
      }
      if ((lVar4 == 0) || (iVar5 < 1)) break;
      iVar5 = iVar5 + -1;
      if ((*(int *)((longlong)param_1 + 0x8c) <= iVar5) &&
         (iVar5 = *(int *)((longlong)param_1 + 0x8c) + -1, iVar5 < 0)) break;
      plVar2 = *(longlong **)(param_1[0x10] + (longlong)iVar5 * 8);
      (**(code **)(*plVar2 + 0x18))(plVar2,param_1);
    }
  }
  if (puVar3 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar3 + 1);
    iVar5 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar5 == 1) {
      (**(code **)*local_res8)(local_res8,1);
    }
  }
  return;
}



############ FUN_ 18134c2e0 size=42 ############

undefined8 FUN_18134c2e0(longlong param_1)

{
  byte bVar1;
  undefined8 uVar2;
  
  bVar1 = *(byte *)(param_1 + 0xa8);
  while( true ) {
    if ((bVar1 & 1) != 0) {
      uVar2 = FUN_1812d2bd0();
      return uVar2;
    }
    param_1 = *(longlong *)(param_1 + 0x18);
    if (param_1 == 0) break;
    bVar1 = *(byte *)(param_1 + 0xa8);
  }
  return 0;
}



############ FUN_ 181343670 size=294 ############

void FUN_181343670(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  int iVar5;
  bool bVar6;
  undefined8 *local_res8;
  
  FUN_1804de690(&local_res8,param_1,param_3,param_4,0xfffffffffffffffe);
  (**(code **)(*param_1 + 0x88))(param_1);
  puVar3 = local_res8;
  bVar6 = local_res8 == (undefined8 *)0x0;
  if (bVar6) {
    lVar4 = 0;
  }
  else {
    lVar4 = local_res8[2];
  }
  if (lVar4 != 0) {
    iVar5 = *(int *)((longlong)param_1 + 0x8c);
    while( true ) {
      if (bVar6) {
        lVar4 = 0;
      }
      else {
        lVar4 = puVar3[2];
      }
      if ((lVar4 == 0) || (iVar5 < 1)) break;
      iVar5 = iVar5 + -1;
      if ((*(int *)((longlong)param_1 + 0x8c) <= iVar5) &&
         (iVar5 = *(int *)((longlong)param_1 + 0x8c) + -1, iVar5 < 0)) break;
      plVar2 = *(longlong **)(param_1[0x10] + (longlong)iVar5 * 8);
      (**(code **)(*plVar2 + 0x28))(plVar2,param_1);
    }
    if (bVar6) {
      lVar4 = 0;
    }
    else {
      lVar4 = puVar3[2];
    }
    if (lVar4 != 0) {
      iVar5 = *(int *)((longlong)param_1 + 0x4c);
      while (iVar5 = iVar5 + -1, -1 < iVar5) {
        FUN_181343670(*(undefined8 *)(param_1[8] + (longlong)iVar5 * 8));
        if (bVar6) {
          lVar4 = 0;
        }
        else {
          lVar4 = puVar3[2];
        }
        if (lVar4 == 0) break;
        if (*(int *)((longlong)param_1 + 0x4c) < iVar5) {
          iVar5 = *(int *)((longlong)param_1 + 0x4c);
        }
      }
    }
  }
  if (puVar3 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar3 + 1);
    iVar5 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar5 == 1) {
      (**(code **)*local_res8)(local_res8,1);
    }
  }
  return;
}



############ FUN_ 18051e290 size=542 ############

undefined8 * FUN_18051e290(undefined8 *param_1,longlong *param_2,undefined8 param_3)

{
  longlong *plVar1;
  float *pfVar2;
  undefined8 uVar3;
  int iVar4;
  float fVar5;
  undefined4 local_res8;
  undefined1 local_res10 [8];
  undefined8 local_res18;
  
  if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
    local_res18 = CONCAT44((int)((ulonglong)param_2[4] >> 0x20) + (int)((ulonglong)param_3 >> 0x20),
                           (int)param_3 + (int)param_2[4]);
    param_3 = local_res18;
  }
  else {
    local_res18 = param_3;
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
      if (param_2[3] == 0) goto LAB_18051e431;
      plVar1 = (longlong *)FUN_18134c2e0();
    }
    else {
      plVar1 = (longlong *)FUN_1812d2bd0(param_2);
    }
    if (plVar1 != (longlong *)0x0) {
      fVar5 = (float)(**(code **)(*param_2 + 0x80))(param_2);
      uVar3 = param_3;
      if (fVar5 != DAT_1824c3ea4) {
        local_res18 = CONCAT44((int)((float)local_res18._4_4_ * fVar5),
                               (int)((float)(int)param_3 * fVar5));
        uVar3 = local_res18;
      }
      local_res18 = uVar3;
      pfVar2 = (float *)(**(code **)(*plVar1 + 0x48))
                                  (plVar1,local_res10,
                                   CONCAT44((float)(int)((ulonglong)local_res18 >> 0x20),
                                            (float)(int)local_res18));
      iVar4 = SUB84((double)*pfVar2 + DAT_1824c4520,0);
      local_res8 = SUB84((double)pfVar2[1] + DAT_1824c4520,0);
      local_res18 = CONCAT44(local_res8,iVar4);
      if (DAT_182673700 == 0) {
        uVar3 = FUN_1811316e0(0x130);
        DAT_182673700 = FUN_18133c6c0(uVar3);
      }
      fVar5 = *(float *)(DAT_182673700 + 0xc0);
      param_3 = local_res18;
      if (fVar5 != DAT_1824c3ea4) {
        local_res18 = CONCAT44((int)((float)(int)((ulonglong)local_res18 >> 0x20) / fVar5),
                               (int)((float)iVar4 / fVar5));
        param_3 = local_res18;
      }
    }
  }
LAB_18051e431:
  pfVar2 = (float *)param_2[7];
  if (pfVar2 != (float *)0x0) {
    fVar5 = (float)(int)((ulonglong)param_3 >> 0x20);
    local_res18 = CONCAT44((int)((float)(int)param_3 * pfVar2[3] + fVar5 * pfVar2[4] + pfVar2[5]),
                           (int)(fVar5 * pfVar2[1] + (float)(int)param_3 * *pfVar2 + pfVar2[2]));
    *param_1 = local_res18;
    return param_1;
  }
  *param_1 = param_3;
  return param_1;
}



############ FUN_ 18133c6c0 size=438 ############

undefined8 *
FUN_18133c6c0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  char cVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  double dVar4;
  
  FUN_1812a7230(param_1,param_2,param_3,param_4,0xfffffffffffffffe);
  param_1[1] = juce::Timer::vftable;
  param_1[2] = 0xffffffffffffffff;
  *(undefined4 *)(param_1 + 3) = 0;
  FUN_1812a59f0(param_1 + 4);
  *param_1 = juce::Desktop::vftable;
  param_1[1] = juce::Desktop::vftable;
  param_1[4] = juce::Desktop::vftable;
  puVar2 = (undefined8 *)FUN_1811316e0(0x38);
  puVar2[1] = 0xffffffffffffffff;
  *(undefined4 *)(puVar2 + 2) = 0;
  *puVar2 = juce::MouseInputSource::SourceList::vftable;
  puVar2[3] = 0;
  puVar2[4] = 0;
  puVar2[5] = 0;
  puVar2[6] = 0;
  FUN_1804e6f50(puVar2,0,0);
  param_1[6] = puVar2;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x15] = 0;
  param_1[0x16] = 0;
  *(undefined1 *)(param_1 + 0x17) = 0;
  *(undefined4 *)((longlong)param_1 + 0xbc) = 0xf;
  dVar4 = DAT_1824c4140;
  if ((DAT_1826736d8 != 0) && (cVar1 = FUN_1812c7510(), dVar4 = DAT_1824c4140, cVar1 == '\0')) {
    dVar4 = (double)FUN_1812c73f0();
    dVar4 = dVar4 / DAT_1824c42e8;
  }
  *(float *)(param_1 + 0x18) = (float)dVar4;
  FUN_1813240c0(param_1 + 0x19);
  puVar3 = (undefined8 *)FUN_1811316e0(0x10);
  *puVar3 = 0;
  puVar3[1] = 0;
  FUN_1812c53e0(puVar3,*(undefined4 *)(param_1 + 0x18));
  puVar2 = (undefined8 *)param_1[0xf];
  param_1[0xf] = puVar3;
  if (puVar2 == (undefined8 *)0x0) {
    return param_1;
  }
  *(undefined4 *)((longlong)puVar2 + 0xc) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)*puVar2);
}



############ FUN_ 180488600 size=143 ############

void FUN_180488600(longlong *param_1,longlong param_2)

{
  void *_Dst;
  int iVar1;
  longlong lVar2;
  int iVar3;
  
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  iVar3 = 0;
  lVar2 = 0;
  if (0 < iVar1) {
    while (param_2 != *(longlong *)(*param_1 + lVar2 * 8)) {
      iVar3 = iVar3 + 1;
      lVar2 = lVar2 + 1;
      if (iVar1 <= lVar2) {
        return;
      }
    }
    _Dst = (void *)(*param_1 + (longlong)iVar3 * 8);
    memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)((iVar1 - iVar3) + -1) << 3);
    *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
    iVar1 = *(int *)((longlong)param_1 + 0xc);
    iVar3 = 0;
    if (0 < iVar1 * 2) {
      iVar3 = iVar1 * 2;
    }
    if (iVar3 < (int)param_1[1]) {
      if (iVar1 < 8) {
        iVar1 = 8;
      }
      if (iVar1 < (int)param_1[1]) {
        FUN_18047cb30(param_1);
      }
    }
  }
  return;
}



############ FUN_ 18134bfe0 size=391 ############

void FUN_18134bfe0(longlong param_1,int param_2,int param_3,int param_4,int param_5)

{
  char cVar1;
  byte bVar2;
  longlong lVar3;
  char cVar4;
  undefined8 local_38;
  int iStack_30;
  int iStack_2c;
  
  if (param_4 < 0) {
    param_4 = 0;
  }
  if (param_5 < 0) {
    param_5 = 0;
  }
  if ((*(int *)(param_1 + 0x28) == param_4) && (*(int *)(param_1 + 0x2c) == param_5)) {
    cVar4 = '\0';
  }
  else {
    cVar4 = '\x01';
  }
  if ((*(int *)(param_1 + 0x20) == param_2) && (*(int *)(param_1 + 0x24) == param_3)) {
    bVar2 = 0;
    if (cVar4 == '\0') {
      return;
    }
  }
  else {
    bVar2 = 1;
  }
  cVar1 = FUN_181345240();
  if ((cVar1 != '\0') && (FUN_18133f790(), (*(byte *)(param_1 + 0xa8) & 1) == 0)) {
    FUN_181342b10(param_1);
  }
  *(int *)(param_1 + 0x20) = param_2;
  *(int *)(param_1 + 0x24) = param_3;
  *(int *)(param_1 + 0x28) = param_4;
  *(int *)(param_1 + 0x2c) = param_5;
  if (cVar1 == '\0') {
    if (*(longlong **)(param_1 + 0x68) != (longlong *)0x0) {
      (**(code **)(**(longlong **)(param_1 + 0x68) + 0x10))();
    }
  }
  else if (cVar4 == '\0') {
    if ((*(byte *)(param_1 + 0xa8) & 1) == 0) {
      FUN_181342b10(param_1);
    }
  }
  else {
    local_38 = 0;
    iStack_30 = param_4;
    iStack_2c = param_5;
    FUN_181342870(param_1,&local_38,1);
  }
  bVar2 = (*(byte *)(param_1 + 0xaa) ^ bVar2) & 1 ^ *(byte *)(param_1 + 0xaa);
  *(byte *)(param_1 + 0xaa) = (cVar4 * '\x02' ^ bVar2) & 2 ^ bVar2;
  if (((*(byte *)(param_1 + 0xa8) & 1) != 0) && (lVar3 = FUN_1812d2bd0(param_1), lVar3 != 0)) {
    FUN_18134b470(lVar3);
  }
  bVar2 = *(byte *)(param_1 + 0xaa);
  if (((bVar2 & 1) != 0) || ((bVar2 >> 1 & 1) != 0)) {
    *(byte *)(param_1 + 0xaa) = bVar2 & 0xfc;
    FUN_181344840(param_1);
  }
  return;
}



############ FUN_ 181343a90 size=434 ############

longlong FUN_181343a90(longlong param_1,uint param_2,char param_3,char param_4)

{
  int *piVar1;
  int iVar2;
  longlong lVar3;
  bool bVar4;
  undefined8 *puVar5;
  char cVar6;
  undefined8 uVar7;
  longlong lVar8;
  longlong lVar9;
  undefined8 *local_res8 [2];
  
  if (param_2 < *(uint *)(param_1 + 0x4c)) {
    lVar9 = *(longlong *)(*(longlong *)(param_1 + 0x40) + (longlong)(int)param_2 * 8);
    if (lVar9 != 0) {
      if ((param_3 == '\0') || (cVar6 = FUN_181345240(lVar9), cVar6 == '\0')) {
        bVar4 = false;
      }
      else {
        bVar4 = true;
        FUN_18133f790();
        if ((*(byte *)(lVar9 + 0xa8) >> 1 & 1) != 0) {
          FUN_181342b10(lVar9);
        }
      }
      if (param_2 < *(uint *)(param_1 + 0x4c)) {
        FUN_18049b4a0(param_1 + 0x40,param_2);
      }
      lVar8 = 0;
      *(undefined8 *)(lVar9 + 0x18) = 0;
      FUN_1804e5060(lVar9);
      for (lVar3 = DAT_182673708; lVar3 != lVar9; lVar3 = *(longlong *)(lVar3 + 0x18)) {
        if (lVar3 == 0) goto LAB_181343c0e;
      }
      if (bVar4) {
        FUN_1804de690(local_res8,param_1);
        if ((param_4 == '\0') && (DAT_182673708 == lVar9)) {
          uVar7 = 0;
        }
        else {
          uVar7 = 1;
        }
        FUN_18133eae0(uVar7);
        puVar5 = local_res8[0];
        if (local_res8[0] != (undefined8 *)0x0) {
          lVar8 = local_res8[0][2];
        }
        if (lVar8 == 0) {
          if (local_res8[0] == (undefined8 *)0x0) {
            return lVar9;
          }
          LOCK();
          piVar1 = (int *)(local_res8[0] + 1);
          iVar2 = *piVar1;
          *piVar1 = *piVar1 + -1;
          UNLOCK();
          if (iVar2 != 1) {
            return lVar9;
          }
          (**(code **)*local_res8[0])(local_res8[0],1);
          return lVar9;
        }
        FUN_18133ed60(param_1,2,1);
        if (puVar5 != (undefined8 *)0x0) {
          LOCK();
          piVar1 = (int *)(puVar5 + 1);
          iVar2 = *piVar1;
          *piVar1 = *piVar1 + -1;
          UNLOCK();
          if (iVar2 == 1) {
            (**(code **)*local_res8[0])(local_res8[0],1);
          }
        }
      }
      else {
        if ((param_4 == '\0') && (DAT_182673708 == lVar9)) {
          uVar7 = 0;
        }
        else {
          uVar7 = 1;
        }
        FUN_18133eae0(uVar7);
      }
LAB_181343c0e:
      if (param_4 != '\0') {
        FUN_181343670(lVar9);
      }
      if (bVar4) {
        FUN_1813437a0(param_1);
      }
    }
  }
  else {
    lVar9 = 0;
  }
  return lVar9;
}



############ FUN_ 18134b470 size=277 ############

void FUN_18134b470(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)

{
  longlong lVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 *puVar4;
  float fVar5;
  undefined4 local_res10;
  undefined4 local_res20;
  undefined8 local_48;
  undefined8 uStack_40;
  undefined4 local_38;
  undefined4 uStack_34;
  undefined4 uStack_30;
  undefined4 uStack_2c;
  
  lVar1 = param_1[1];
  if (*(longlong *)(lVar1 + 0x38) == 0) {
    local_48 = *(undefined8 *)(lVar1 + 0x20);
    uStack_40 = *(undefined8 *)(lVar1 + 0x28);
    puVar4 = &local_48;
  }
  else {
    puVar4 = (undefined8 *)
             FUN_1804b1290(lVar1 + 0x20,&local_48,*(longlong *)(lVar1 + 0x38),param_4,
                           0xfffffffffffffffe);
  }
  uVar2 = *puVar4;
  uVar3 = puVar4[1];
  local_48 = uVar2;
  uStack_40 = uVar3;
  fVar5 = (float)(**(code **)(*(longlong *)param_1[1] + 0x80))();
  if (fVar5 != DAT_1824c3ea4) {
    local_res10 = SUB84((double)((float)local_48._4_4_ * fVar5) + DAT_1824c4520,0);
    local_res20 = SUB84((double)((float)uStack_40._4_4_ * fVar5) + DAT_1824c4520,0);
    uVar2 = CONCAT44(local_res10,SUB84((double)((float)(int)local_48 * fVar5) + DAT_1824c4520,0));
    uVar3 = CONCAT44(local_res20,SUB84((double)((float)(int)uStack_40 * fVar5) + DAT_1824c4520,0));
  }
  uStack_40 = uVar3;
  local_48 = uVar2;
  local_38 = (int)local_48;
  uStack_34 = local_48._4_4_;
  uStack_30 = (int)uStack_40;
  uStack_2c = uStack_40._4_4_;
  (**(code **)(*param_1 + 0x30))(param_1,&local_38,0);
  return;
}



############ FUN_ 18134bdf0 size=54 ############

void FUN_18134bdf0(longlong param_1)

{
  undefined8 local_18;
  undefined4 uStack_10;
  undefined4 uStack_c;
  
  uStack_10 = *(undefined4 *)(param_1 + 0x28);
  uStack_c = *(undefined4 *)(param_1 + 0x2c);
  local_18 = 0;
  FUN_181342870(0,&local_18,1);
  return;
}



############ FUN_ 180569ff0 size=123 ############

void FUN_180569ff0(longlong param_1)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  
  lVar3 = param_1;
  if (param_1 != 0) {
    while ((lVar2 = __RTDynamicCast(lVar3,0,&juce::Component::RTTI_Type_Descriptor,
                                    &StylerProvider::RTTI_Type_Descriptor,0), lVar2 == 0 ||
           (*(longlong *)(lVar2 + 8) == 0))) {
      plVar1 = (longlong *)(lVar3 + 0x18);
      lVar3 = *plVar1;
      if (*plVar1 == 0) {
        return;
      }
    }
    *(undefined8 *)(param_1 + 0xb8) = *(undefined8 *)(lVar2 + 8);
  }
  return;
}



############ FUN_ 18051e060 size=545 ############

undefined8 *
FUN_18051e060(undefined8 *param_1,longlong *param_2,undefined8 param_3,undefined4 param_4)

{
  undefined8 uVar1;
  float *pfVar2;
  longlong *plVar3;
  int iVar4;
  int iVar5;
  float fVar6;
  undefined1 local_res10 [8];
  undefined8 local_res18;
  undefined1 local_40 [24];
  
  local_res18 = param_3;
  if (param_2[7] != 0) {
    pfVar2 = (float *)FUN_1812a04f0(param_2[7],local_40,param_3,param_4,0xfffffffffffffffe);
    local_res18 = CONCAT44((int)((float)local_res18._4_4_ * pfVar2[4] +
                                 (float)(int)param_3 * pfVar2[3] + pfVar2[5]),
                           (int)((float)local_res18._4_4_ * pfVar2[1] +
                                 (float)(int)param_3 * *pfVar2 + pfVar2[2]));
  }
  uVar1 = local_res18;
  iVar4 = (int)local_res18;
  iVar5 = (int)((ulonglong)local_res18 >> 0x20);
  if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
    local_res18 = CONCAT44(iVar5 - (int)((ulonglong)param_2[4] >> 0x20),iVar4 - (int)param_2[4]);
  }
  else {
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
      if (param_2[3] == 0) goto LAB_18051e243;
      plVar3 = (longlong *)FUN_18134c2e0();
    }
    else {
      plVar3 = (longlong *)FUN_1812d2bd0(param_2);
    }
    if (plVar3 == (longlong *)0x0) {
LAB_18051e243:
      *param_1 = uVar1;
      return param_1;
    }
    if (DAT_182673700 == 0) {
      local_res18 = FUN_1811316e0(0x130);
      DAT_182673700 = FUN_18133c6c0(local_res18);
    }
    fVar6 = *(float *)(DAT_182673700 + 0xc0);
    local_res18 = uVar1;
    if (fVar6 != DAT_1824c3ea4) {
      local_res18 = CONCAT44((int)((float)iVar5 * fVar6),(int)((float)iVar4 * fVar6));
    }
    pfVar2 = (float *)(**(code **)(*plVar3 + 0x58))
                                (plVar3,local_res10,
                                 CONCAT44((float)(int)((ulonglong)local_res18 >> 0x20),
                                          (float)(int)local_res18));
    iVar4 = SUB84((double)*pfVar2 + DAT_1824c4520,0);
    iVar5 = SUB84((double)pfVar2[1] + DAT_1824c4520,0);
    local_res18 = CONCAT44(iVar5,iVar4);
    fVar6 = (float)(**(code **)(*param_2 + 0x80))(param_2);
    if (fVar6 != DAT_1824c3ea4) {
      local_res18 = CONCAT44((int)((float)iVar5 / fVar6),(int)((float)iVar4 / fVar6));
    }
  }
  *param_1 = local_res18;
  return param_1;
}



############ FUN_ 181296c00 size=185 ############

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

void FUN_181296c00(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  int iVar2;
  undefined4 local_40 [2];
  longlong local_38;
  undefined8 *puStack_30;
  undefined8 local_28;
  undefined8 uStack_20;
  undefined4 local_18;
  undefined4 local_14;
  
  if (*(char *)(param_1 + 0x10) != '\0') {
    *(undefined1 *)(param_1 + 0x10) = 0;
    (**(code **)(**(longlong **)(param_1 + 8) + 0x68))
              (*(longlong **)(param_1 + 8),param_2,param_3,param_4,0xfffffffffffffffe);
  }
  local_40[0] = (undefined4)param_2;
  local_38 = 0;
  puStack_30 = (undefined8 *)0x0;
  local_28 = _DAT_1824c4780;
  uStack_20 = _UNK_1824c4788;
  local_18 = DAT_1824c3ea4;
  local_14 = 0;
  (**(code **)(**(longlong **)(param_1 + 8) + 0x88))(*(longlong **)(param_1 + 8),local_40);
  if (puStack_30 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puStack_30 + 1);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 1) {
      (**(code **)*puStack_30)(puStack_30,1);
    }
  }
  if (local_38 != 0) {
    *(undefined4 *)(local_38 + 0x24) = 0;
                    /* WARNING: Subroutine does not return */
    free(*(void **)(local_38 + 0x18));
  }
  return;
}



############ FUN_ 181295d20 size=326 ############

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

void FUN_181295d20(longlong param_1,undefined8 param_2,undefined4 *param_3,undefined8 param_4)

{
  float fVar1;
  char cVar2;
  float *pfVar3;
  undefined4 uVar4;
  undefined8 local_50;
  undefined8 uStack_48;
  ulonglong local_40;
  float *local_38;
  undefined8 local_30;
  undefined8 local_28;
  undefined8 uStack_20;
  undefined1 local_18;
  
  local_38 = (float *)0x0;
  local_30 = 0;
  local_28 = 0;
  uStack_20 = 0;
  local_18 = 1;
  uVar4 = (**(code **)(**(longlong **)(param_1 + 8) + 0x20))();
  FUN_181297840(*param_3,param_3[1],param_3[2],&local_38,param_2,param_4,uVar4);
  cVar2 = (**(code **)(**(longlong **)(param_1 + 8) + 0x60))();
  if (cVar2 == '\0') {
    for (pfVar3 = local_38; pfVar3 != local_38 + local_30._4_4_; pfVar3 = pfVar3 + 1) {
      fVar1 = *pfVar3;
      if (fVar1 == DAT_1824c4600) {
        pfVar3 = pfVar3 + 2;
      }
      else if (((fVar1 == DAT_1824c45fc) || (fVar1 == DAT_1824c4604)) || (fVar1 == DAT_1824c4608)) {
        local_50 = _DAT_1824c4780;
        uStack_48 = _UNK_1824c4788;
        local_40 = (ulonglong)DAT_1824c3ea4;
        (**(code **)(**(longlong **)(param_1 + 8) + 0xb8))
                  (*(longlong **)(param_1 + 8),&local_38,&local_50);
        break;
      }
    }
  }
  local_30 = local_30 & 0xffffffff;
                    /* WARNING: Subroutine does not return */
  free(local_38);
}



############ FUN_ 1812a59f0 size=152 ############

undefined8 *
FUN_1812a59f0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  int iVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  undefined8 uVar5;
  
  uVar5 = 0xfffffffffffffffe;
  *param_1 = juce::AsyncUpdater::vftable;
  param_1[1] = 0;
  puVar4 = (undefined8 *)FUN_1811316e0(0x20);
  *(undefined4 *)(puVar4 + 1) = 0;
  *puVar4 = juce::AsyncUpdater::AsyncUpdaterMessage::vftable;
  puVar4[2] = param_1;
  *(undefined4 *)(puVar4 + 3) = 0;
  if ((undefined8 *)param_1[1] != puVar4) {
    LOCK();
    *(int *)(puVar4 + 1) = *(int *)(puVar4 + 1) + 1;
    UNLOCK();
    puVar3 = (undefined8 *)param_1[1];
    param_1[1] = puVar4;
    if (puVar3 != (undefined8 *)0x0) {
      LOCK();
      piVar1 = (int *)(puVar3 + 1);
      iVar2 = *piVar1;
      *piVar1 = *piVar1 + -1;
      UNLOCK();
      if (iVar2 == 1) {
        (**(code **)*puVar3)(puVar3,1,puVar4,param_4,uVar5);
      }
    }
  }
  return param_1;
}



############ FUN_ 1812a7230 size=123 ############

undefined8 * FUN_1812a7230(undefined8 *param_1)

{
  uint uVar1;
  longlong *plVar2;
  int iVar3;
  
  *param_1 = juce::DeletedAtShutdown::vftable;
  do {
    LOCK();
    uVar1 = DAT_182673a34 & 1;
    DAT_182673a34 = DAT_182673a34 | 1;
    UNLOCK();
  } while (uVar1 != 0);
  plVar2 = (longlong *)FUN_1812a6d90();
  iVar3 = *(int *)((longlong)plVar2 + 0xc) + 1;
  if ((int)plVar2[1] < iVar3) {
    FUN_18047cb30(plVar2,*(int *)((longlong)plVar2 + 0xc) + 9 + iVar3 / 2 & 0xfffffff8);
  }
  iVar3 = *(int *)((longlong)plVar2 + 0xc);
  *(int *)((longlong)plVar2 + 0xc) = iVar3 + 1;
  *(undefined8 **)(*plVar2 + (longlong)iVar3 * 8) = param_1;
  LOCK();
  DAT_182673a34 = 0;
  UNLOCK();
  return param_1;
}



############ FUN_ 18133b010 size=280 ############

void FUN_18133b010(longlong param_1,char param_2)

{
  int iVar1;
  int iVar2;
  longlong *plVar3;
  longlong lVar4;
  longlong *plVar5;
  int iVar6;
  bool bVar7;
  
  plVar5 = (longlong *)0x0;
  iVar6 = 0;
  iVar1 = FUN_18133b370();
  if (0 < iVar1) {
    while( true ) {
      iVar1 = 0;
      iVar2 = *(int *)(param_1 + 0x24) + -1;
      if (iVar2 < 0) break;
      lVar4 = (longlong)iVar2;
      plVar3 = (longlong *)(*(longlong *)(param_1 + 0x18) + lVar4 * 8);
      while ((*(char *)(*plVar3 + 0x5c) == '\0' ||
             (bVar7 = iVar1 != iVar6, iVar1 = iVar1 + 1, bVar7))) {
        plVar3 = plVar3 + -1;
        lVar4 = lVar4 + -1;
        if (lVar4 < 0) {
          return;
        }
      }
      lVar4 = *(longlong *)(*plVar3 + 0x40);
      if (lVar4 == 0) {
        return;
      }
      if ((*(byte *)(lVar4 + 0xa8) & 1) == 0) {
        if (*(longlong *)(lVar4 + 0x18) != 0) {
          plVar3 = (longlong *)FUN_18134c2e0();
          goto LAB_18133b0ba;
        }
      }
      else {
        plVar3 = (longlong *)FUN_1812d2bd0(lVar4);
LAB_18133b0ba:
        if ((plVar3 != (longlong *)0x0) && (plVar3 != plVar5)) {
          if (plVar5 == (longlong *)0x0) {
            (**(code **)(*plVar3 + 0xb0))(plVar3,param_2);
            plVar5 = plVar3;
            if (param_2 != '\0') {
              (**(code **)(*plVar3 + 200))(plVar3);
            }
          }
          else {
            (**(code **)(*plVar3 + 0xb8))(plVar3,plVar5);
            plVar5 = plVar3;
          }
        }
      }
      iVar6 = iVar6 + 1;
      iVar1 = FUN_18133b370(param_1);
      if (iVar1 <= iVar6) {
        return;
      }
    }
  }
  return;
}



############ FUN_ 18134adf0 size=240 ############

longlong FUN_18134adf0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  longlong lVar2;
  undefined8 uVar3;
  longlong lVar4;
  undefined8 uVar5;
  
  uVar5 = 0xfffffffffffffffe;
  lVar4 = 0;
  while( true ) {
    if (param_1 == 0) {
      if (DAT_182673700 == 0) {
        uVar3 = FUN_1811316e0(0x130);
        DAT_182673700 = FUN_18133c6c0(uVar3);
      }
      lVar2 = DAT_182673700;
      if (*(longlong *)(DAT_182673700 + 0x98) != 0) {
        lVar4 = *(longlong *)(*(longlong *)(DAT_182673700 + 0x98) + 0x10);
      }
      if (lVar4 == 0) {
        if (*(longlong *)(DAT_182673700 + 0x90) == 0) {
          uVar3 = FUN_1811316e0(0x170);
          uVar3 = FUN_1812fbfd0(uVar3);
          puVar1 = *(undefined8 **)(lVar2 + 0x90);
          *(undefined8 *)(lVar2 + 0x90) = uVar3;
          if (puVar1 != (undefined8 *)0x0) {
            (**(code **)*puVar1)(puVar1,1);
          }
        }
        lVar4 = *(longlong *)(lVar2 + 0x90);
        FUN_18051b750(lVar2 + 0x98,lVar4,param_3,param_4,uVar5);
      }
      return lVar4;
    }
    lVar2 = lVar4;
    if (*(longlong *)(param_1 + 0x50) != 0) {
      lVar2 = *(longlong *)(*(longlong *)(param_1 + 0x50) + 0x10);
    }
    if (lVar2 != 0) break;
    param_1 = *(longlong *)(param_1 + 0x18);
  }
  return lVar2;
}



############ FUN_ 18050dd00 size=885 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_18050dd00(undefined8 *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,
                  undefined1 param_5)

{
  longlong *plVar1;
  DWORD DVar2;
  undefined8 uVar3;
  longlong lVar4;
  undefined8 *puVar5;
  int iVar6;
  undefined1 auStackY_d8 [32];
  undefined8 *local_90;
  undefined8 local_88;
  undefined8 *local_80;
  IID local_78;
  undefined **local_68 [7];
  undefined ***local_30;
  ulonglong local_28;
  
  local_88 = 0xfffffffffffffffe;
  local_28 = DAT_182615970 ^ (ulonglong)auStackY_d8;
  *param_1 = juce::ComponentPeer::vftable;
  param_1[1] = param_2;
  *(undefined4 *)(param_1 + 2) = param_3;
  *(undefined8 *)((longlong)param_1 + 0x14) = 0;
  *(undefined8 *)((longlong)param_1 + 0x1c) = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  DAT_18262b5c4 = DAT_18262b5c4 + 2;
  *(int *)(param_1 + 0xb) = DAT_18262b5c4;
  *(undefined1 *)((longlong)param_1 + 0x5c) = 0;
  local_80 = param_1;
  if (DAT_182673700 == 0) {
    uVar3 = FUN_1811316e0(0x130);
    DAT_182673700 = FUN_18133c6c0(uVar3);
  }
  lVar4 = DAT_182673700;
  plVar1 = (longlong *)(DAT_182673700 + 0x68);
  iVar6 = *(int *)(DAT_182673700 + 0x74) + 1;
  if (*(int *)(DAT_182673700 + 0x70) < iVar6) {
    FUN_18047cb30(plVar1,*(int *)(DAT_182673700 + 0x74) + 9 + iVar6 / 2 & 0xfffffff8);
  }
  iVar6 = *(int *)(lVar4 + 0x74);
  *(int *)(lVar4 + 0x74) = iVar6 + 1;
  *(undefined8 **)(*plVar1 + (longlong)iVar6 * 8) = param_1;
  param_1[0xd] = 0xffffffffffffffff;
  *(undefined4 *)(param_1 + 0xe) = 0;
  *param_1 = juce::HWNDComponentPeer::vftable;
  param_1[0xc] = juce::HWNDComponentPeer::vftable;
  param_1[0xf] = juce::HWNDComponentPeer::vftable;
  *(undefined1 *)(param_1 + 0x10) = param_5;
  param_1[0x12] = param_4;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x15] = 0;
  *(undefined4 *)(param_1 + 0x16) = 0;
  *(undefined1 *)((longlong)param_1 + 0xb4) = 0;
  param_1[0x17] = 0;
  param_1[0x18] = 0;
  param_1[0x19] = 0;
  param_1[0x1a] = 0;
  *(undefined1 *)(param_1 + 0x1b) = 0xff;
  FUN_18050dad0(param_1 + 0x1c);
  param_1[0x22] = 0;
  param_1[0x23] = 0x3ff0000000000000;
  *(undefined1 *)(param_1 + 0x24) = 0;
  param_1[0x26] = 0xffffffffffffffff;
  *(undefined4 *)(param_1 + 0x27) = 0;
  param_1[0x25] = juce::HWNDComponentPeer::TemporaryImage::vftable;
  param_1[0x28] = 0;
  param_1[0x29] = 0xffffffffffffffff;
  *(undefined1 *)(param_1 + 0x2a) = 0;
  lVar4 = FUN_1812a7550();
  DVar2 = GetCurrentThreadId();
  if (((ulonglong)DVar2 == *(ulonglong *)(lVar4 + 0x10)) ||
     ((ulonglong)DVar2 == *(ulonglong *)(lVar4 + 0x18))) {
    FUN_180510be0(param_1);
  }
  else {
    FUN_1812a6500(lVar4,FUN_180510bd0,param_1);
  }
  puVar5 = (undefined8 *)FUN_18049a930(&local_90,param_1[1] + 8);
  SetWindowTextW((HWND)param_1[0x11],(LPCWSTR)*puVar5);
  FUN_180511150(param_1);
  if ((DAT_182673b00 == (undefined8 *)0x0) && (DAT_18267ab70 == '\0')) {
    DAT_18267ab70 = 1;
    puVar5 = (undefined8 *)FUN_1811316e0(0x30);
    local_90 = puVar5;
    FUN_1812a7230(puVar5);
    puVar5[2] = 0xffffffffffffffff;
    *(undefined4 *)(puVar5 + 3) = 0;
    *puVar5 = juce::OnScreenKeyboard::vftable;
    puVar5[1] = juce::OnScreenKeyboard::vftable;
    *(undefined2 *)(puVar5 + 4) = 0;
    local_78.Data1 = 0x4ce576fa;
    local_78.Data2 = 0x83dc;
    local_78.Data3 = 0x4f88;
    local_78.Data4[0] = 0x95;
    local_78.Data4[1] = '\x1c';
    local_78.Data4[2] = 0x9d;
    local_78.Data4[3] = '\a';
    local_78.Data4[4] = 0x82;
    local_78.Data4[5] = 0xb4;
    local_78.Data4[6] = 0xe3;
    local_78.Data4[7] = 'v';
    puVar5[5] = (LPVOID)0x0;
    CoCreateInstance(&local_78,(LPUNKNOWN)0x0,6,(IID *)&DAT_18249bbf8,(LPVOID *)(puVar5 + 5));
    DAT_18267ab70 = '\0';
    DAT_182673b00 = puVar5;
  }
  local_30 = (undefined ***)0x0;
  if (DAT_182673ba8 != (undefined ***)0x0) {
    if (DAT_182673ba8 == (undefined ***)&DAT_182673b70) {
      local_30 = local_68;
    }
    else {
      local_30 = DAT_182673ba8;
    }
  }
  local_68[0] = std::
                _Func_impl_no_alloc<<lambda_e1856575c8497ff7f331510ea430c1a8>,juce::ModifierKeys>::
                vftable;
  _DAT_182673b70 =
       std::_Func_impl_no_alloc<<lambda_e1856575c8497ff7f331510ea430c1a8>,juce::ModifierKeys>::
       vftable;
  DAT_182673ba8 = (undefined ***)&DAT_182673b70;
  if ((local_30 != (undefined ***)0x0) && (local_30 != local_68)) {
                    /* WARNING: Subroutine does not return */
    free(local_30);
  }
}



############ FUN_ 18049fa40 size=302 ############

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

float * FUN_18049fa40(float *param_1,uint param_2)

{
  int iVar1;
  float fVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  float fVar8;
  float fVar9;
  float fVar10;
  
  uVar4 = param_2 & 0xff;
  uVar6 = param_2 >> 0x10 & 0xff;
  uVar5 = param_2 >> 8 & 0xff;
  if (uVar6 < uVar5) {
    iVar1 = uVar5 - uVar4;
    uVar3 = uVar5;
  }
  else {
    iVar1 = uVar6 - uVar4;
    uVar3 = uVar6;
  }
  if (SBORROW4(uVar3,uVar4) != iVar1 < 0) {
    uVar3 = uVar4;
  }
  uVar7 = uVar6;
  if (uVar5 < uVar6) {
    uVar7 = uVar5;
  }
  if (uVar4 < uVar7) {
    uVar7 = uVar4;
  }
  if (uVar3 == 0) {
    param_1[0] = 0.0;
    param_1[1] = 0.0;
  }
  else {
    fVar8 = (float)(int)(uVar3 - uVar7) / (float)uVar3;
    param_1[1] = fVar8;
    fVar2 = DAT_1824c3ea4;
    if (fVar8 <= 0.0) {
      *param_1 = 0.0;
    }
    else {
      fVar8 = DAT_1824c3ea4 / (float)(int)(uVar3 - uVar7);
      fVar10 = (float)(int)(uVar3 - uVar6) * fVar8;
      fVar9 = (float)(int)(uVar3 - uVar5) * fVar8;
      fVar8 = (float)(int)(uVar3 - uVar4) * fVar8;
      if (uVar6 == uVar3) {
        *param_1 = fVar8 - fVar9;
      }
      else if (uVar5 == uVar3) {
        *param_1 = (fVar10 + DAT_1824c41e0) - fVar8;
      }
      else {
        *param_1 = (fVar9 + DAT_1824c4334) - fVar10;
      }
      fVar8 = *param_1 * _DAT_1824c3d08;
      *param_1 = fVar8;
      if (fVar8 < 0.0) {
        *param_1 = fVar8 + fVar2;
      }
    }
  }
  param_1[2] = (float)uVar3 / DAT_1824c4548;
  return param_1;
}



############ FUN_ 18049fbb0 size=645 ############

undefined1 *
FUN_18049fbb0(undefined1 *param_1,float param_2,float param_3,float param_4,undefined1 param_5)

{
  float fVar1;
  double dVar2;
  undefined1 uVar3;
  float fVar4;
  float fVar5;
  float _X;
  undefined1 local_70;
  undefined1 local_68;
  
  dVar2 = DAT_1824c4520;
  fVar1 = DAT_1824c3ea4;
  param_4 = param_4 * DAT_1824c4548;
  if (0.0 <= param_4) {
    fVar5 = DAT_1824c4548;
    if (param_4 <= DAT_1824c4548) {
      fVar5 = param_4;
    }
  }
  else {
    fVar5 = 0.0;
  }
  uVar3 = SUB81((double)fVar5 + DAT_1824c4520,0);
  if (param_3 <= 0.0) {
    *param_1 = uVar3;
    param_1[1] = uVar3;
    param_1[2] = uVar3;
    param_1[3] = param_5;
    return param_1;
  }
  if (DAT_1824c3ea4 <= param_3) {
    param_3 = DAT_1824c3ea4;
  }
  fVar4 = floorf(param_2);
  _X = (param_2 - fVar4) * DAT_1824c4388 + DAT_1824c3c3c;
  fVar4 = floorf(_X);
  fVar4 = _X - fVar4;
  local_70 = SUB81((double)((fVar1 - param_3) * fVar5) + dVar2,0);
  if (fVar1 <= _X) {
    if (_X < DAT_1824c41e0) {
      *param_1 = local_70;
      param_1[1] = uVar3;
      local_68 = SUB81((double)((fVar1 - fVar4 * param_3) * fVar5) + dVar2,0);
      goto LAB_18049fdf8;
    }
    if (_X < DAT_1824c42d0) {
      local_68 = SUB81((double)((fVar1 - (fVar1 - fVar4) * param_3) * fVar5) + dVar2,0);
      *param_1 = local_68;
      param_1[1] = uVar3;
      local_68 = local_70;
      goto LAB_18049fdf8;
    }
    if (_X < DAT_1824c4334) {
      *param_1 = uVar3;
      local_68 = SUB81((double)((fVar1 - fVar4 * param_3) * fVar5) + dVar2,0);
      param_1[1] = local_68;
      local_68 = local_70;
      goto LAB_18049fdf8;
    }
    if (_X < DAT_1824c4360) {
      *param_1 = uVar3;
      param_1[1] = local_70;
      local_68 = SUB81((double)((fVar1 - (fVar1 - fVar4) * param_3) * fVar5) + dVar2,0);
      goto LAB_18049fdf8;
    }
    local_68 = SUB81((double)((fVar1 - fVar4 * param_3) * fVar5) + dVar2,0);
    *param_1 = local_68;
    local_68 = local_70;
  }
  else {
    *param_1 = local_70;
    local_68 = SUB81((double)((fVar1 - (fVar1 - fVar4) * param_3) * fVar5) + dVar2,0);
  }
  param_1[1] = local_68;
  local_68 = uVar3;
LAB_18049fdf8:
  param_1[2] = local_68;
  param_1[3] = param_5;
  return param_1;
}



############ FUN_ 1804b02a0 size=144 ############

void FUN_1804b02a0(longlong *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4)

{
  int iVar1;
  
  iVar1 = *(int *)((longlong)param_1 + 0xc) + 3;
  if ((int)param_1[1] < iVar1) {
    FUN_1804af790(param_1,*(int *)((longlong)param_1 + 0xc) + 0xb + iVar1 / 2 & 0xfffffff8);
  }
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar1 * 4) = *param_2;
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar1 * 4) = param_3;
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar1 * 4) = param_4;
  return;
}



############ FUN_ 18129ddd0 size=166 ############

void FUN_18129ddd0(longlong param_1,float param_2,float param_3)

{
  if (*(int *)(param_1 + 0xc) == 0) {
    *(undefined8 *)(param_1 + 0x10) = 0;
    *(undefined8 *)(param_1 + 0x18) = 0;
    FUN_1804b02a0(param_1,&DAT_1821df344,0,0);
  }
  FUN_1804b02a0(param_1,&DAT_1821dfcb4,param_2,param_3);
  if (*(float *)(param_1 + 0x10) <= param_2) {
    if (*(float *)(param_1 + 0x14) <= param_2 && param_2 != *(float *)(param_1 + 0x14)) {
      *(float *)(param_1 + 0x14) = param_2;
    }
  }
  else {
    *(float *)(param_1 + 0x10) = param_2;
  }
  if (param_3 < *(float *)(param_1 + 0x18)) {
    *(float *)(param_1 + 0x18) = param_3;
    return;
  }
  if (*(float *)(param_1 + 0x1c) <= param_3 && param_3 != *(float *)(param_1 + 0x1c)) {
    *(float *)(param_1 + 0x1c) = param_3;
  }
  return;
}



############ FUN_ 18129a910 size=2178 ############

ulonglong * FUN_18129a910(longlong *param_1,ulonglong *param_2,float param_3)

{
  double dVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  float fVar5;
  float fVar6;
  ulonglong uVar7;
  int iVar8;
  uint uVar9;
  int iVar11;
  int iVar12;
  undefined4 uVar13;
  int iVar14;
  ulonglong uVar15;
  int iVar16;
  int iVar17;
  longlong lVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  double dVar27;
  float fVar28;
  float fVar29;
  float fVar30;
  float fVar31;
  float fVar32;
  float fVar33;
  float fVar34;
  int local_134;
  int local_130;
  ulonglong local_128;
  undefined8 local_120;
  undefined8 local_118;
  undefined8 uStack_110;
  undefined1 local_108;
  longlong local_100;
  int local_f8;
  int local_f4;
  ulonglong uVar10;
  
  fVar6 = DAT_1824c460c;
  fVar5 = DAT_1824c45fc;
  if (param_3 <= DAT_1824c3c70) {
    FUN_1804ab000(param_2,param_1);
    uVar7 = param_1[3];
    param_2[2] = param_1[2];
    param_2[3] = uVar7;
    *(char *)(param_2 + 4) = (char)param_1[4];
    return param_2;
  }
  lVar18 = *param_1;
  uVar7 = 0;
  bVar2 = false;
  local_118._0_4_ = 0.0;
  local_118._4_4_ = 0.0;
  uStack_110._0_4_ = 0.0;
  uStack_110._4_4_ = 0.0;
  uVar13 = 0;
  local_128 = 0;
  local_120 = 0;
  local_118 = 0;
  uStack_110 = 0;
  local_108 = 1;
  local_f4 = 0;
  local_f8 = 0;
  bVar3 = false;
  bVar4 = false;
  local_100 = lVar18;
  if (0 < *(int *)((longlong)param_1 + 0xc)) {
    iVar11 = -5;
    iVar23 = -2;
    iVar19 = -6;
    iVar25 = -3;
    iVar21 = -4;
    local_134 = -7;
    local_130 = -8;
    uVar10 = uVar7;
    uVar15 = uVar7;
    do {
      iVar8 = (int)uVar10;
      iVar17 = local_130 + 1;
      iVar16 = local_134 + 1;
      uVar9 = iVar8 + 1;
      uVar10 = (ulonglong)uVar9;
      iVar22 = iVar21 + 1;
      iVar20 = iVar19 + 1;
      fVar29 = *(float *)(lVar18 + (longlong)iVar8 * 4);
      iVar12 = iVar11 + 1;
      iVar26 = iVar25 + 1;
      iVar24 = iVar23 + 1;
      iVar14 = (int)uVar15;
      if (fVar29 == DAT_1824c4600) {
        fVar29 = *(float *)(lVar18 + (longlong)(int)uVar9 * 4);
        uVar10 = (ulonglong)(iVar8 + 3U);
        fVar28 = *(float *)(lVar18 + (longlong)(iVar8 + 2) * 4);
        if (iVar14 == 0) {
          local_118 = CONCAT44(fVar29,fVar29);
          uStack_110 = (ulonglong)(uint)fVar28;
LAB_18129ab42:
          uStack_110 = CONCAT44(fVar28,(float)uStack_110);
        }
        else {
          if ((float)local_118 <= fVar29) {
            if (local_118._4_4_ < fVar29) {
              local_118 = CONCAT44(fVar29,(float)local_118);
            }
          }
          else {
            local_118 = CONCAT44(local_118._4_4_,fVar29);
          }
          if ((float)uStack_110 <= fVar28) {
            if (uStack_110._4_4_ < fVar28) goto LAB_18129ab42;
          }
          else {
            uStack_110 = CONCAT44(uStack_110._4_4_,fVar28);
          }
        }
        local_f8 = iVar8;
        local_f4 = iVar14;
        FUN_1804b02a0(&local_128,&DAT_1821df344);
        bVar3 = false;
        uVar7 = local_128;
        lVar18 = local_100;
        iVar12 = iVar11 + 3;
        iVar24 = iVar23 + 3;
        iVar20 = iVar19 + 3;
        iVar26 = iVar25 + 3;
        iVar22 = iVar21 + 3;
        iVar16 = local_134 + 3;
        iVar17 = local_130 + 3;
        bVar2 = false;
        if (*(float *)(local_100 + (longlong)(int)(iVar8 + 3U) * 4) == fVar5) {
          uVar15 = (ulonglong)local_120._4_4_;
          bVar4 = true;
        }
        else {
          uVar15 = (ulonglong)local_120._4_4_;
          bVar4 = false;
        }
      }
      else if ((fVar29 == fVar5) || (fVar29 == fVar6)) {
        fVar28 = 0.0;
        fVar34 = 0.0;
        fVar30 = 0.0;
        fVar31 = 0.0;
        if (fVar29 == fVar5) {
          local_130 = local_130 + 3;
          local_134 = local_134 + 3;
          iVar22 = iVar21 + 3;
          iVar20 = iVar19 + 3;
          fVar32 = *(float *)(lVar18 + (longlong)(int)uVar9 * 4);
          iVar12 = iVar11 + 3;
          iVar26 = iVar25 + 3;
          uVar10 = (ulonglong)(iVar8 + 3U);
          iVar24 = iVar23 + 3;
          fVar33 = *(float *)(lVar18 + (longlong)(iVar8 + 2) * 4);
          if (8 < (int)(iVar8 + 3U)) {
            fVar28 = *(float *)(lVar18 + (longlong)local_130 * 4);
            fVar34 = *(float *)(lVar18 + (longlong)local_134 * 4);
            fVar30 = *(float *)(lVar18 + (longlong)iVar12 * 4);
            iVar11 = iVar22;
LAB_18129ac62:
            fVar31 = *(float *)(lVar18 + (longlong)iVar11 * 4);
          }
        }
        else {
          fVar32 = *(float *)(lVar18 + (longlong)(local_f8 + 1) * 4);
          fVar33 = *(float *)(lVar18 + (longlong)(local_f8 + 2) * 4);
          local_134 = iVar16;
          local_130 = iVar17;
          if (6 < (int)uVar9) {
            fVar28 = *(float *)(lVar18 + (longlong)iVar20 * 4);
            fVar34 = *(float *)(lVar18 + (longlong)iVar12 * 4);
            fVar30 = *(float *)(lVar18 + (longlong)iVar26 * 4);
            iVar11 = iVar24;
            goto LAB_18129ac62;
          }
        }
        if (bVar2) {
          dVar1 = _hypot((double)(fVar28 - fVar30),(double)(fVar34 - fVar31));
          if (0.0 < dVar1) {
            dVar27 = (double)param_3 / dVar1;
            if (DAT_1824c4050 <= (double)param_3 / dVar1) {
              dVar27 = DAT_1824c4050;
            }
            *(float *)((local_128 - 8) + (longlong)iVar14 * 4) =
                 (float)((double)fVar30 - (double)(fVar30 - fVar28) * dVar27);
            *(float *)((local_128 - 4) + (longlong)iVar14 * 4) =
                 (float)((double)fVar31 - (double)(fVar31 - fVar34) * dVar27);
          }
          dVar1 = _hypot((double)(fVar32 - fVar30),(double)(fVar33 - fVar31));
          if (0.0 < dVar1) {
            dVar27 = (double)param_3 / dVar1;
            if (DAT_1824c4050 <= (double)param_3 / dVar1) {
              dVar27 = DAT_1824c4050;
            }
            FUN_18129dca0(&local_128,fVar30,fVar31,
                          (float)((double)(fVar32 - fVar30) * dVar27 + (double)fVar30),
                          (float)((double)(fVar33 - fVar31) * dVar27 + (double)fVar31));
          }
          FUN_18129ddd0(&local_128,fVar32,fVar33);
          bVar2 = bVar3;
LAB_18129adbb:
          uVar15 = local_120 >> 0x20;
          lVar18 = local_100;
          bVar3 = bVar2;
        }
        else if (fVar29 == fVar5) {
          FUN_18129ddd0(&local_128,fVar32,fVar33);
          bVar2 = true;
          goto LAB_18129adbb;
        }
        uVar7 = local_128;
        iVar16 = local_134;
        iVar17 = local_130;
        if (fVar29 == fVar6) {
          if (bVar4) {
            fVar29 = *(float *)(lVar18 + (longlong)iVar26 * 4);
            fVar28 = *(float *)(lVar18 + (longlong)iVar24 * 4);
            fVar34 = *(float *)(lVar18 + (longlong)(local_f8 + 4) * 4);
            fVar30 = *(float *)(lVar18 + (longlong)(local_f8 + 5) * 4);
            dVar1 = _hypot((double)(fVar29 - fVar32),(double)(fVar28 - fVar33));
            if (0.0 < dVar1) {
              dVar27 = (double)param_3 / dVar1;
              if (DAT_1824c4050 <= (double)param_3 / dVar1) {
                dVar27 = DAT_1824c4050;
              }
              *(float *)((local_128 - 8) + (longlong)(int)uVar15 * 4) =
                   (float)((double)fVar32 - (double)(fVar32 - fVar29) * dVar27);
              *(float *)((local_128 - 4) + (longlong)(int)uVar15 * 4) =
                   (float)((double)fVar33 - (double)(fVar33 - fVar28) * dVar27);
            }
            fVar30 = fVar30 - fVar33;
            fVar34 = fVar34 - fVar32;
            dVar1 = _hypot((double)fVar34,(double)fVar30);
            if (0.0 < dVar1) {
              dVar27 = (double)param_3 / dVar1;
              if (DAT_1824c4050 <= (double)param_3 / dVar1) {
                dVar27 = DAT_1824c4050;
              }
              fVar28 = (float)((double)fVar34 * dVar27 + (double)fVar32);
              fVar29 = (float)((double)fVar30 * dVar27 + (double)fVar33);
              FUN_18129dca0(&local_128,fVar32,fVar33,fVar28,fVar29);
              uVar15 = local_120 >> 0x20;
              *(float *)(local_128 + (longlong)(local_f4 + 1) * 4) = fVar28;
              *(float *)(local_128 + (longlong)(local_f4 + 2) * 4) = fVar29;
            }
          }
          iVar11 = (int)uVar15;
          uVar7 = local_128;
          lVar18 = local_100;
          bVar2 = bVar3;
          if ((iVar11 != 0) &&
             ((iVar11 < 1 || (*(float *)(local_128 + (longlong)(iVar11 + -1) * 4) != fVar6)))) {
            iVar19 = iVar11 + 1;
            if ((int)local_120 < iVar19) {
              if (iVar19 < 0) {
                iVar19 = iVar11 + 2;
              }
              FUN_1804af790(&local_128,iVar11 + 9 + (iVar19 >> 1) & 0xfffffff8);
              iVar11 = local_120._4_4_;
            }
            uVar15 = (ulonglong)(iVar11 + 1U);
            local_120 = CONCAT44(iVar11 + 1U,(int)local_120);
            *(undefined4 *)(local_128 + (longlong)iVar11 * 4) = 0x47c35280;
            uVar7 = local_128;
            lVar18 = local_100;
          }
        }
      }
      else if (fVar29 == DAT_1824c4604) {
        bVar3 = false;
        uVar10 = (ulonglong)(iVar8 + 5);
        FUN_18129dca0(&local_128,*(undefined4 *)(lVar18 + (longlong)(int)uVar9 * 4),
                      *(undefined4 *)(lVar18 + (longlong)(iVar8 + 2) * 4),
                      *(undefined4 *)(lVar18 + (longlong)(iVar8 + 3) * 4),
                      *(undefined4 *)(lVar18 + (longlong)(iVar8 + 4) * 4));
        uVar15 = local_120 >> 0x20;
        uVar7 = local_128;
        lVar18 = local_100;
        iVar12 = iVar11 + 5;
        iVar24 = iVar23 + 5;
        iVar20 = iVar19 + 5;
        iVar26 = iVar25 + 5;
        iVar22 = iVar21 + 5;
        iVar16 = local_134 + 5;
        iVar17 = local_130 + 5;
        bVar2 = bVar3;
      }
      else if (fVar29 == DAT_1824c4608) {
        bVar3 = false;
        uVar10 = (ulonglong)(iVar8 + 7);
        FUN_18129daf0(&local_128,*(undefined4 *)(lVar18 + (longlong)(int)uVar9 * 4),
                      *(undefined4 *)(lVar18 + (longlong)(iVar8 + 2) * 4),
                      *(undefined4 *)(lVar18 + (longlong)(iVar8 + 3) * 4),
                      *(undefined4 *)(lVar18 + (longlong)(iVar8 + 4) * 4),
                      *(undefined4 *)(lVar18 + (longlong)(iVar8 + 5) * 4),
                      *(undefined4 *)(lVar18 + (longlong)(iVar8 + 6) * 4));
        uVar15 = local_120 >> 0x20;
        uVar7 = local_128;
        lVar18 = local_100;
        iVar12 = iVar11 + 7;
        iVar24 = iVar23 + 7;
        iVar20 = iVar19 + 7;
        iVar26 = iVar25 + 7;
        iVar22 = iVar21 + 7;
        iVar16 = local_134 + 7;
        iVar17 = local_130 + 7;
        bVar2 = bVar3;
      }
      local_130 = iVar17;
      local_134 = iVar16;
      iVar21 = iVar22;
      iVar25 = iVar26;
      iVar19 = iVar20;
      iVar23 = iVar24;
      iVar11 = iVar12;
      uVar13 = (undefined4)uVar15;
    } while ((int)uVar10 < *(int *)((longlong)param_1 + 0xc));
  }
  *param_2 = uVar7;
  *(int *)(param_2 + 1) = (int)local_120;
  *(undefined4 *)((longlong)param_2 + 0xc) = uVar13;
  *(float *)(param_2 + 2) = (float)local_118;
  *(float *)((longlong)param_2 + 0x14) = local_118._4_4_;
  *(float *)(param_2 + 3) = (float)uStack_110;
  *(float *)((longlong)param_2 + 0x1c) = uStack_110._4_4_;
  *(undefined1 *)(param_2 + 4) = local_108;
                    /* WARNING: Subroutine does not return */
  free((void *)0x0);
}



############ FUN_ 180487300 size=303 ############

float FUN_180487300(float *param_1,float param_2)

{
  longlong *plVar1;
  float fVar2;
  float fVar3;
  float fVar4;
  double dVar5;
  float fVar6;
  float local_res8 [4];
  float local_res18 [2];
  float local_res20 [2];
  
  fVar2 = DAT_1824c3ea4;
  local_res18[0] = param_1[1];
  if (*(longlong *)(param_1 + 0x24) == 0) {
    fVar6 = (param_2 - *param_1) / (local_res18[0] - *param_1);
    if (0.0 <= fVar6) {
      fVar4 = DAT_1824c3ea4;
      if (fVar6 <= DAT_1824c3ea4) {
        fVar4 = fVar6;
      }
    }
    else {
      fVar4 = 0.0;
    }
    fVar6 = param_1[3];
    if (fVar6 != DAT_1824c3ea4) {
      if (*(char *)(param_1 + 4) == '\0') {
        fVar2 = powf(fVar4,fVar6);
        return fVar2;
      }
      fVar3 = fVar4 * DAT_1824c41e0 - DAT_1824c3ea4;
      fVar4 = DAT_1824c3ea4;
      if (fVar3 < 0.0) {
        fVar4 = DAT_1824c4680;
      }
      dVar5 = (double)fVar3;
      fVar6 = powf((float)(double)CONCAT44((uint)((ulonglong)dVar5 >> 0x20) & DAT_1824c4f10._4_4_,
                                           SUB84(dVar5,0) & (uint)DAT_1824c4f10),fVar6);
      fVar4 = (fVar6 * fVar4 + fVar2) * DAT_1824c3d8c;
    }
  }
  else {
    local_res20[0] = *param_1;
    plVar1 = *(longlong **)(param_1 + 0x24);
    local_res8[0] = param_2;
    if (plVar1 == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
      std::_Xbad_function_call();
    }
    fVar2 = (float)(**(code **)(*plVar1 + 0x10))
                             (plVar1,local_res20,local_res18,local_res8,0xfffffffffffffffe);
    fVar4 = 0.0;
    if (0.0 <= fVar2) {
      fVar6 = DAT_1824c3ea4;
      if (fVar2 <= DAT_1824c3ea4) {
        fVar6 = fVar2;
      }
      return fVar6;
    }
  }
  return fVar4;
}



############ FUN_ 18058cb60 size=418 ############

void FUN_18058cb60(longlong param_1,float param_2)

{
  longlong lVar1;
  ulonglong uVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  ulonglong uVar7;
  ulonglong uVar8;
  longlong *plVar9;
  float fVar10;
  double dVar11;
  float fVar12;
  uint uVar13;
  float fVar14;
  
  fVar6 = DAT_1824c4408;
  fVar5 = DAT_1824c3ea4;
  fVar4 = DAT_1824c3d8c;
  fVar3 = DAT_1824c3d54;
  plVar9 = *(longlong **)(param_1 + 0xf0);
  uVar8 = 0;
  uVar7 = (ulonglong)((longlong)(plVar9 + *(int *)(param_1 + 0xfc)) + (7 - (longlong)plVar9)) >> 3;
  if (plVar9 + *(int *)(param_1 + 0xfc) < plVar9) {
    uVar7 = uVar8;
  }
  fVar14 = DAT_1824c3ea4 / (float)*(int *)(param_1 + 0x28);
  if (uVar7 == 0) {
    *(float *)(param_1 + 0x208) = param_2;
  }
  else {
    uVar13 = (uint)DAT_1824c4f10;
    uVar2 = (ulonglong)DAT_1824c4f10 >> 0x20;
    do {
      lVar1 = *plVar9;
      dVar11 = (double)(param_2 -
                       ((float)*(int *)(lVar1 + 0x28) * fVar4 + (float)*(int *)(lVar1 + 0x20)) *
                       fVar14);
      fVar12 = (float)(double)CONCAT44((uint)((ulonglong)dVar11 >> 0x20) & (uint)uVar2,
                                       SUB84(dVar11,0) & uVar13) * fVar6 - fVar3;
      if (0.0 <= fVar12) {
        fVar10 = fVar5;
        if (fVar12 <= fVar5) {
          fVar10 = fVar12;
        }
      }
      else {
        fVar10 = 0.0;
      }
      fVar10 = *(float *)(param_1 + 0x204) * fVar10;
      FUN_181342bf0(lVar1,fVar10 * fVar10 + (fVar5 - *(float *)(param_1 + 0x204)));
      plVar9 = plVar9 + 1;
      uVar8 = uVar8 + 1;
    } while (uVar8 != uVar7);
    *(float *)(param_1 + 0x208) = param_2;
  }
  return;
}



############ FUN_ 180589400 size=436 ############

longlong FUN_180589400(longlong param_1,longlong param_2)

{
  int *piVar1;
  longlong lVar2;
  
  piVar1 = (int *)(param_1 + 0x10);
  lVar2 = 0x10;
  do {
    memcpy(*(void **)(piVar1 + -4),*(void **)((param_2 - param_1) + -0x10 + (longlong)piVar1),
           (longlong)*piVar1 << 3);
    memcpy(*(void **)(piVar1 + -2),*(void **)((param_2 - param_1) + -8 + (longlong)piVar1),
           (longlong)*piVar1 << 3);
    piVar1 = piVar1 + 0x20;
    lVar2 = lVar2 + -1;
  } while (lVar2 != 0);
  *(undefined4 *)(param_1 + 0x800) = *(undefined4 *)(param_2 + 0x800);
  *(undefined4 *)(param_1 + 0x804) = *(undefined4 *)(param_2 + 0x804);
  *(undefined4 *)(param_1 + 0x808) = *(undefined4 *)(param_2 + 0x808);
  *(undefined4 *)(param_1 + 0x80c) = *(undefined4 *)(param_2 + 0x80c);
  *(undefined1 *)(param_1 + 0x810) = *(undefined1 *)(param_2 + 0x810);
  *(undefined4 *)(param_1 + 0x814) = *(undefined4 *)(param_2 + 0x814);
  *(undefined1 *)(param_1 + 0x818) = *(undefined1 *)(param_2 + 0x818);
  *(undefined1 *)(param_1 + 0x819) = *(undefined1 *)(param_2 + 0x819);
  *(undefined1 *)(param_1 + 0x81a) = *(undefined1 *)(param_2 + 0x81a);
  *(undefined1 *)(param_1 + 0x81b) = *(undefined1 *)(param_2 + 0x81b);
  *(undefined1 *)(param_1 + 0x81c) = *(undefined1 *)(param_2 + 0x81c);
  *(undefined1 *)(param_1 + 0x81d) = *(undefined1 *)(param_2 + 0x81d);
  *(undefined1 *)(param_1 + 0x81e) = *(undefined1 *)(param_2 + 0x81e);
  *(undefined1 *)(param_1 + 0x81f) = *(undefined1 *)(param_2 + 0x81f);
  *(undefined1 *)(param_1 + 0x820) = *(undefined1 *)(param_2 + 0x820);
  *(undefined1 *)(param_1 + 0x821) = *(undefined1 *)(param_2 + 0x821);
  *(undefined1 *)(param_1 + 0x822) = *(undefined1 *)(param_2 + 0x822);
  *(undefined1 *)(param_1 + 0x823) = *(undefined1 *)(param_2 + 0x823);
  *(undefined1 *)(param_1 + 0x824) = *(undefined1 *)(param_2 + 0x824);
  *(undefined1 *)(param_1 + 0x825) = *(undefined1 *)(param_2 + 0x825);
  *(undefined1 *)(param_1 + 0x826) = *(undefined1 *)(param_2 + 0x826);
  *(undefined1 *)(param_1 + 0x827) = *(undefined1 *)(param_2 + 0x827);
  return param_1;
}



############ FUN_ 1805a9280 size=214 ############

void FUN_1805a9280(void)

{
  undefined8 uVar1;
  undefined1 auStack_1c8 [32];
  undefined1 local_1a8;
  undefined1 local_1a0;
  undefined8 local_198;
  undefined1 local_190 [32];
  undefined1 local_170 [32];
  undefined1 local_150 [40];
  undefined1 local_128 [272];
  ulonglong local_18;
  
  local_198 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_1c8;
  FUN_1805a4160(local_170,"Authorization Error");
  FUN_180487a80(local_190);
  uVar1 = FUN_1805a3f20(local_128,
                        "%s cannot run because it is corrupted. Please try reinstalling the product."
                       );
  uVar1 = thunk_FUN_1805a21d0(uVar1,&PTR_s_soothe2_18260e5f8);
  uVar1 = FUN_1805a3b50(local_150,uVar1);
  FUN_1805a5a40(local_190,uVar1);
  FUN_180485450(local_150);
  FUN_1805a4fa0(local_128);
  local_1a0 = 0;
  local_1a8 = 0;
  FUN_1805f02b0(local_170,local_190,0,0);
  FUN_180485450(local_190);
  FUN_180485450(local_170);
                    /* WARNING: Subroutine does not return */
  exit(1);
}



############ FUN_ 18134c170 size=31 ############

void FUN_18134c170(undefined8 param_1,undefined4 *param_2)

{
  FUN_18134bfe0(param_1,*param_2,param_2[1],param_2[2],param_2[3]);
  return;
}



############ FUN_ 18058e380 size=124 ############

longlong FUN_18058e380(longlong param_1,uint *param_2)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined8 uVar4;
  
  uVar1 = *param_2;
  lVar2 = *(longlong *)(param_1 + 8);
  lVar3 = (longlong)(int)uVar1 * 0x800;
  if (uVar1 < *(uint *)(lVar2 + 0x84)) {
    uVar4 = *(undefined8 *)(*(longlong *)(lVar2 + 0x78) + (longlong)(int)uVar1 * 8);
  }
  else {
    uVar4 = 0;
  }
  FUN_180536300(lVar2 + 0x18,*(longlong *)(param_1 + 0x10) + 0x8e0 + lVar3,
                *(longlong *)(param_1 + 0x10) + 0xe0,uVar4,0x200);
  return *(longlong *)(param_1 + 0x10) + 0x8e0 + lVar3;
}



############ FUN_ 180536300 size=475 ############

void FUN_180536300(longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4,
                  int param_5,undefined8 param_6,longlong param_7)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  float fVar5;
  int iVar6;
  int iVar7;
  
  iVar7 = *(int *)(param_1 + 0x240080);
  lVar1 = param_7 + (longlong)(param_5 * 8) * 4;
  lVar2 = lVar1 + (longlong)param_5 * 4;
  fVar5 = *(float *)(param_1 + 0x24);
  lVar3 = lVar2 + (longlong)(param_5 * 2) * 4;
  lVar4 = lVar3 + (longlong)(param_5 * 2) * 4;
  iVar6 = __std_type_info_compare(0x182650db8,0x182650db8);
  FUN_18052da00(lVar1,param_3,(float)(DAT_1824c4248 / (double)((float)iVar7 * fVar5)),param_5);
  if (*(char *)(param_4 + 0x810) == '\0') {
    FUN_18052db50(lVar3,DAT_1824c3ea4,param_5);
    FUN_18052db50(lVar4,0,param_5);
    if (0 < *(int *)(param_4 + 0x814)) {
      if (iVar6 == 0) {
        FUN_180535880();
      }
      else {
        FUN_180536f90(lVar2,param_7,param_4,lVar1,param_5);
      }
      iVar7 = __std_type_info_compare(0x182650db8,0x182650db8);
      if (iVar7 == 0) {
                    /* WARNING: Subroutine does not return */
        thunk_FUN_181ba94b0();
      }
                    /* WARNING: Subroutine does not return */
      thunk_FUN_181ba94b0(lVar2,param_7,param_5);
    }
    if ((1 < *(int *)(param_4 + 0x814)) &&
       (*(char *)((longlong)(*(int *)(param_4 + 0x814) + -1) + 0x818 + param_4) == '\0')) {
      FUN_18052d990(lVar4,lVar3,param_5);
    }
    FUN_18052dbc0(param_2,lVar4,param_5);
  }
  else {
    FUN_18052db50(param_2,DAT_1824c3ea4,param_5);
  }
  return;
}



############ FUN_ 18058b220 size=318 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18058b220(longlong param_1,int param_2)

{
  uint *puVar1;
  uint uVar2;
  undefined4 uVar3;
  longlong lVar4;
  int iVar5;
  undefined1 auStack_c8 [32];
  undefined4 local_a8;
  float local_98;
  longlong local_90;
  longlong local_88 [5];
  undefined1 local_59 [32];
  undefined1 local_39;
  ulonglong local_38 [4];
  
  local_88[1] = 0xfffffffffffffffe;
  local_38[0] = DAT_182615970 ^ (ulonglong)auStack_c8;
  local_98 = *(float *)(*(longlong *)(param_1 + 0x9b28) + 0x188);
  iVar5 = (int)local_98;
  if (param_2 != iVar5) {
    lVar4 = FUN_181233e10(local_59 + 1);
    FUN_180495150(&local_90,lVar4,local_59 + -lVar4);
    uVar3 = DAT_1824c4680;
    local_a8 = DAT_1824c4680;
    FUN_181411be0(*(undefined8 *)(param_1 + 0x97b0),local_90,DAT_1824c3ea4,DAT_1824c4680);
    puVar1 = (uint *)(local_90 + -0x10);
    if ((*puVar1 & 0x30000000) == 0) {
      LOCK();
      uVar2 = *puVar1;
      *puVar1 = *puVar1 - 1;
      UNLOCK();
      if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
        free(puVar1);
      }
    }
    lVar4 = FUN_181233e10(local_38,iVar5);
    FUN_180495150(local_88,lVar4,&local_39 + -lVar4);
    local_a8 = uVar3;
    FUN_181411be0(*(undefined8 *)(param_1 + 0x97b0),local_88[0],DAT_1824c3d8c,uVar3);
    puVar1 = (uint *)(local_88[0] + -0x10);
    if ((*puVar1 & 0x30000000) == 0) {
      LOCK();
      uVar2 = *puVar1;
      *puVar1 = *puVar1 - 1;
      UNLOCK();
      if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
        free(puVar1);
      }
    }
  }
}



############ FUN_ 181233e10 size=131 ############

char * FUN_181233e10(longlong param_1,uint param_2)

{
  ulonglong uVar1;
  ulonglong uVar2;
  char *pcVar3;
  char *pcVar4;
  
  if (-1 < (int)param_2) {
    pcVar4 = (char *)(param_1 + -1);
    *pcVar4 = '\0';
    uVar2 = (ulonglong)param_2;
    do {
      pcVar4 = pcVar4 + -1;
      uVar1 = uVar2 / 10;
      *pcVar4 = (char)uVar2 + (char)uVar1 * -10 + '0';
      uVar2 = uVar1;
    } while ((int)uVar1 != 0);
    return pcVar4;
  }
  param_2 = -param_2;
  *(char *)(param_1 + -1) = '\0';
  pcVar4 = (char *)(param_1 + -1);
  do {
    pcVar3 = pcVar4;
    pcVar4 = pcVar3 + -1;
    *pcVar4 = (char)param_2 + (char)((ulonglong)param_2 / 10) * -10 + '0';
    param_2 = (uint)((ulonglong)param_2 / 10);
  } while (param_2 != 0);
  pcVar3 = pcVar3 + -2;
  *pcVar3 = '-';
  return pcVar3;
}



############ FUN_ 180495150 size=111 ############

undefined8 * FUN_180495150(undefined8 *param_1,undefined8 param_2,longlong param_3)

{
  undefined4 uVar1;
  ulonglong uVar2;
  undefined4 *local_res8;
  
  uVar2 = param_3 + 4U & 0xfffffffffffffffc;
  local_res8 = (undefined4 *)thunk_FUN_1811316e0(uVar2 + 0x17);
  LOCK();
  uVar1 = *local_res8;
  *local_res8 = 0;
  UNLOCK();
  *(ulonglong *)(local_res8 + 2) = uVar2;
  local_res8 = local_res8 + 4;
  *param_1 = local_res8;
  FUN_18049d7f0(&local_res8,param_2,(int)param_3 + 1,uVar1);
  return param_1;
}



############ FUN_ 181411be0 size=234 ############

void FUN_181411be0(longlong param_1,undefined8 param_2,undefined4 param_3,float param_4,
                  float param_5)

{
  uint uVar1;
  float fVar2;
  longlong lVar3;
  longlong *plVar4;
  longlong *plVar5;
  int iVar6;
  uint *_Memory;
  longlong local_res8;
  undefined8 local_50;
  undefined8 local_38;
  float local_30;
  
  FUN_181406d20(param_1,param_2,param_3,param_4,0xfffffffffffffffe);
  FUN_18049c9e0(&local_res8,param_2);
  plVar5 = (longlong *)FUN_1805714d0(param_1 + 0x168,&local_res8);
  _Memory = (uint *)(local_res8 + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  local_50 = *(undefined8 *)(param_1 + 0x188);
  fVar2 = *(float *)(param_1 + 400);
  if (0.0 <= param_4) {
    local_50 = CONCAT44(param_4,(undefined4)local_50);
  }
  if (0.0 < param_5) {
    local_50 = CONCAT44(local_50._4_4_,param_5);
  }
  local_38 = local_50;
  local_30 = fVar2;
  FUN_1813bb6b0(*(undefined8 *)(*plVar5 + 0x10),&local_38);
  lVar3 = *plVar5;
  *(undefined4 *)(lVar3 + 0x18) = param_3;
  plVar4 = *(longlong **)(lVar3 + 0x10);
  if ((undefined **)*plVar4 == SkewInterpolator::vftable) {
    *(float *)((longlong)plVar4 + 0x6c) = *(float *)plVar4[1] - *(float *)plVar4[2];
    *(float *)(plVar4 + 0xe) = *(float *)plVar4[2];
    *(undefined4 *)(plVar4 + 0xd) = *(undefined4 *)((longlong)plVar4 + 100);
  }
  else {
    (*(code *)((undefined **)*plVar4)[1])(plVar4);
  }
  (**(code **)(**(longlong **)(*plVar5 + 0x10) + 0x10))();
  if (*(int *)(param_1 + 0x10) < 1) {
    iVar6 = (int)fVar2;
    if (iVar6 < 1) {
      FUN_1812a7720(param_1);
    }
    else {
      FUN_1812a77d0(param_1,1000 / (longlong)iVar6 & 0xffffffff);
    }
  }
  return;
}



############ FUN_ 18058b0c0 size=313 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18058b0c0(longlong param_1,int param_2)

{
  uint *puVar1;
  uint uVar2;
  undefined4 uVar3;
  longlong lVar4;
  int iVar5;
  undefined1 auStack_c8 [32];
  undefined4 local_a8;
  float local_98;
  longlong local_90;
  longlong local_88 [5];
  undefined1 local_59 [32];
  undefined1 local_39;
  ulonglong local_38 [4];
  
  local_88[1] = 0xfffffffffffffffe;
  local_38[0] = DAT_182615970 ^ (ulonglong)auStack_c8;
  local_98 = *(float *)(*(longlong *)(param_1 + 0x9b28) + 0x188);
  iVar5 = (int)local_98;
  if (param_2 != iVar5) {
    lVar4 = FUN_181233e10(local_59 + 1);
    FUN_180495150(&local_90,lVar4,local_59 + -lVar4);
    uVar3 = DAT_1824c4680;
    local_a8 = DAT_1824c4680;
    FUN_181411be0(*(undefined8 *)(param_1 + 0x97b0),local_90,0,DAT_1824c4680);
    puVar1 = (uint *)(local_90 + -0x10);
    if ((*puVar1 & 0x30000000) == 0) {
      LOCK();
      uVar2 = *puVar1;
      *puVar1 = *puVar1 - 1;
      UNLOCK();
      if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
        free(puVar1);
      }
    }
    lVar4 = FUN_181233e10(local_38,iVar5);
    FUN_180495150(local_88,lVar4,&local_39 + -lVar4);
    local_a8 = uVar3;
    FUN_181411be0(*(undefined8 *)(param_1 + 0x97b0),local_88[0],DAT_1824c3ea4,uVar3);
    puVar1 = (uint *)(local_88[0] + -0x10);
    if ((*puVar1 & 0x30000000) == 0) {
      LOCK();
      uVar2 = *puVar1;
      *puVar1 = *puVar1 - 1;
      UNLOCK();
      if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
        free(puVar1);
      }
    }
  }
}



############ FUN_ 180484cd0 size=126 ############

void FUN_180484cd0(longlong param_1)

{
  longlong *plVar1;
  
  plVar1 = *(longlong **)(param_1 + 0xd0);
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x20))(plVar1,plVar1 != (longlong *)(param_1 + 0x98));
    *(undefined8 *)(param_1 + 0xd0) = 0;
  }
  plVar1 = *(longlong **)(param_1 + 0x90);
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x20))(plVar1,plVar1 != (longlong *)(param_1 + 0x58));
    *(undefined8 *)(param_1 + 0x90) = 0;
  }
  plVar1 = *(longlong **)(param_1 + 0x50);
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x20))(plVar1,plVar1 != (longlong *)(param_1 + 0x18));
    *(undefined8 *)(param_1 + 0x50) = 0;
  }
  return;
}



############ FUN_ 18047cbc0 size=161 ############

void FUN_18047cbc0(longlong *param_1)

{
  void *_Dst;
  undefined8 *puVar1;
  int iVar2;
  longlong lVar3;
  longlong lVar4;
  
  iVar2 = *(int *)((longlong)param_1 + 0xc) + -1;
  if (-1 < iVar2) {
    lVar3 = (longlong)iVar2 * 8;
    lVar4 = lVar3;
    do {
      puVar1 = *(undefined8 **)(lVar4 + *param_1);
      _Dst = (void *)(lVar3 + *param_1);
      memmove(_Dst,(void *)((longlong)_Dst + 8),
              (longlong)((*(int *)((longlong)param_1 + 0xc) - iVar2) + -1) << 3);
      *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
      if (puVar1 != (undefined8 *)0x0) {
        (**(code **)*puVar1)(puVar1,1);
      }
      lVar3 = lVar3 + -8;
      lVar4 = lVar4 + -8;
      iVar2 = iVar2 + -1;
    } while (-1 < iVar2);
  }
  return;
}



############ FUN_ 18140e230 size=2119 ############

/* WARNING: Instruction at (ram,0x00018140e7d3) overlaps instruction at (ram,0x00018140e7d1)
    */
/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x00018140ecd5) */
/* WARNING: Removing unreachable block (ram,0x00018140e9fe) */
/* WARNING: Removing unreachable block (ram,0x00018140e6f5) */
/* WARNING: Removing unreachable block (ram,0x00018140e679) */
/* WARNING: Removing unreachable block (ram,0x00018140e5c2) */
/* WARNING: Removing unreachable block (ram,0x00018140e2e8) */
/* WARNING: Removing unreachable block (ram,0x00018140e485) */
/* WARNING: Removing unreachable block (ram,0x00018140e5e7) */
/* WARNING: Removing unreachable block (ram,0x00018140e931) */
/* WARNING: Removing unreachable block (ram,0x00018140ea21) */
/* WARNING: Removing unreachable block (ram,0x00018140ea88) */
/* WARNING: Removing unreachable block (ram,0x00018140e918) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 * FUN_18140e230(undefined4 *param_1,undefined4 param_2)

{
  uint uVar1;
  uint uVar2;
  undefined4 uVar3;
  ulonglong uVar4;
  undefined4 *puVar5;
  undefined1 *puVar6;
  ulonglong in_R11;
  longlong lVar7;
  int iVar8;
  ulonglong uVar9;
  longlong lVar10;
  bool bVar11;
  bool bVar12;
  int unaff_retaddr;
  undefined1 auStack_58 [32];
  
  uVar2 = _UNK_1815797c0;
  puVar6 = auStack_58;
  uVar1 = (uint)&stack0x00000000 & 0x18ff;
  uVar1 = (uVar1 + 1) * uVar1 + 0x333 & 0x80000001;
  uVar1 = (int)(-uVar1 | uVar1) >> 0x1f;
  uVar9 = (ulonglong)(((int)(-uVar1 | uVar1) >> 0x1f) * -0x2a1d ^ 0x2f2d);
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  do {
    uVar9 = -((uVar9 ^ 0xffffffffffffffff) + 1);
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar1 = _UNK_1815797bc ^
          (_UNK_1815797b8 ^
          (_UNK_1815797b4 ^
          (_UNK_1815797b0 ^
          (_UNK_1815797ac ^
          (_UNK_1815797a8 ^
          (_UNK_1815797a4 ^
          (_UNK_1815797a0 ^
          (_UNK_18157979c ^
          (_UNK_181579798 ^
          (_UNK_181579794 ^
          (_UNK_181579790 ^
          (_UNK_18157978c ^
          (DAT_181579788 ^
          (DAT_181579784 ^
          (DAT_181579780 ^
          (DAT_18157977c ^
          (DAT_181579778 ^
          (DAT_181579774 ^
          (DAT_181579770 ^
          (DAT_18157976c ^
          (DAT_181579768 ^
          (DAT_181579764 ^
          (DAT_181579760 ^
          (DAT_18157975c ^
          (DAT_181579758 ^
          (DAT_181579754 ^
          (DAT_181579750 ^ (DAT_18157974c ^ (DAT_181579748 ^ 0x811c9dc5) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181;
  param_1[1] = param_2;
  uVar2 = _UNK_1815797d4 ^
          (_UNK_1815797d0 ^
          (_UNK_1815797cc ^
          (_UNK_1815797c8 ^ (_UNK_1815797c4 ^ (uVar2 ^ uVar1 * 0x1000181) * 0x1000181) * 0x1000181)
          * 0x1000181) * 0x1000181) * 0x1000181;
  bVar12 = uVar2 == 0;
  lVar7 = (longlong)(int)uVar2 * 0x1000181;
  uVar2 = (uint)lVar7;
  bVar11 = (int)uVar2 != lVar7;
  do {
    uVar4 = 0;
    uVar3 = FUN_18140d737();
    if ((bVar11 || bVar12) && ((uVar4 & 0x41) != 0)) {
      return (undefined4 *)((ulonglong)((uint3)((uint)uVar3 >> 8) & 0x2a04eb) << 8);
    }
                    /* WARNING: Call to offcut address within same function */
    func_0x00018140e48b();
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
    bVar11 = false;
    bVar12 = uVar1 == 0;
  } while (!bVar12);
  do {
    in_R11 = -((in_R11 ^ 0xffffffffffffffff) + 1);
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  do {
    in_R11 = (-in_R11 ^ 0xffffffffffffffff) + 1;
    param_1 = (undefined4 *)-(((ulonglong)param_1 ^ 0xffffffffffffffff) + 1);
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar1 = (_UNK_1815797fc ^
          (_UNK_1815797f8 ^
          (_UNK_1815797f4 ^
          (_UNK_1815797f0 ^
          (_UNK_1815797ec ^
          (_UNK_1815797e8 ^
          (_UNK_1815797e4 ^
          (_UNK_1815797e0 ^ (_UNK_1815797dc ^ (_UNK_1815797d8 ^ uVar2) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181;
  uVar2 = uVar1 & 0x1f | 0x2a;
  if (((uVar2 * uVar2 * 0x195 ^ 0xffe18f95) & 0x4a0) == 0) {
    uVar2 = uVar1 & 0x4f;
    uVar2 = uVar2 * uVar2 * (uVar2 + 1) * (uVar2 + 1);
  }
  else {
    uVar2 = 0;
  }
  uVar4 = (longlong)(int)(uVar2 & 0x80000003) ^ 4;
  do {
                    /* WARNING: Bad instruction - Truncating control flow here */
    lVar10 = in_R11 + (longlong)param_1;
    lVar7 = (longlong)param_1 - lVar10;
    in_R11 = -lVar7;
    param_1 = (undefined4 *)(lVar10 + lVar7);
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar1 = ((*(uint *)(&UNK_18157983c + uVar4) ^
           (*(uint *)(&UNK_181579838 + uVar4) ^
           (*(uint *)(&UNK_181579834 + uVar4) ^
           (*(uint *)(&UNK_181579830 + uVar4) ^
           (*(uint *)(&UNK_18157982c + uVar4) ^
           (*(uint *)(&UNK_181579828 + uVar4) ^
           (*(uint *)(&UNK_181579824 + uVar4) ^
           (*(uint *)(&UNK_181579820 + uVar4) ^
           (*(uint *)(&UNK_18157981c + uVar4) ^
           (*(uint *)(&UNK_181579818 + uVar4) ^
           (*(uint *)(&UNK_181579814 + uVar4) ^
           (*(uint *)(&UNK_181579810 + uVar4) ^
           (*(uint *)(&UNK_18157980c + uVar4) ^
           (*(uint *)(&UNK_181579808 + uVar4) ^
           (*(uint *)(&UNK_181579804 + uVar4) ^
           (*(uint *)(&UNK_181579800 + uVar4) ^
           (*(uint *)(&UNK_1815797fc + uVar4) ^ uVar1) * 0x1000181) * 0x1000181) * 0x1000181) *
           0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181)
           * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181
          ^ *(uint *)(&UNK_181579840 + uVar4)) * 0x1000181 + 0xc88c2f69;
  uVar2 = (uVar1 >> 4 ^ uVar1) >> 1 & 3;
  uVar1 = (uVar2 << 4 | uVar2) * 2 ^ uVar1 ^ 0x806f7cb9;
  uVar2 = (uVar1 >> 0x17 ^ uVar1) >> 3 & 0x3f;
  *param_1 = 0;
  if (((uVar2 << 0x17 | uVar2) << 3 ^ uVar1) == 0x16e664b) {
    iVar8 = (int)uVar9;
    do {
      *(undefined **)(puVar6 + -8) = &UNK_18140ec78;
      lVar7 = (longlong)iVar8;
      func_0x00018140ecd2();
      *(undefined4 **)(puVar6 + -8) = param_1;
      *(ulonglong *)(puVar6 + -0x10) = uVar9;
      *(ulonglong *)(puVar6 + -0x18) = in_R11;
      lVar7 = -lVar7;
      in_R11 = *(ulonglong *)(puVar6 + lVar7 + 0x518);
      uVar9 = *(ulonglong *)(puVar6 + lVar7 + 0x520);
      param_1 = *(undefined4 **)(puVar6 + lVar7 + 0x528);
      puVar6 = puVar6 + lVar7 + 0x530;
      uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar2 < 0) {
        uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar2 != 0);
    return param_1;
  }
  puVar5 = (undefined4 *)thunk_FUN_1805a9280();
  return puVar5;
}



############ FUN_ 1813f0dc0 size=4852 ############

/* WARNING: Instruction at (ram,0x0001813f14a6) overlaps instruction at (ram,0x0001813f14a5)
    */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x0001813f14f1) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1813f0dc0(undefined8 param_1,undefined4 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 *puVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  ulonglong uVar9;
  uint *puVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  longlong *plVar14;
  longlong lVar15;
  undefined1 *puVar16;
  longlong lVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  int iVar24;
  ulonglong uVar25;
  uint7 uVar26;
  int *piVar27;
  int unaff_retaddr;
  undefined1 auStack_178 [32];
  ulonglong local_158;
  int local_150;
  uint local_14c;
  undefined8 local_148;
  undefined1 local_140;
  undefined1 local_13f [3];
  uint local_13c;
  undefined8 local_138;
  uint local_130;
  uint local_12c;
  uint local_128;
  uint local_124 [3];
  uint local_118;
  undefined8 local_110;
  undefined8 local_108;
  undefined4 local_100;
  undefined8 local_fc;
  undefined1 local_f4 [4];
  undefined4 local_f0;
  undefined8 local_ec;
  undefined1 local_e4 [4];
  undefined1 local_e0 [16];
  undefined1 local_d0 [16];
  undefined4 local_c0;
  undefined4 local_bc;
  longlong local_b8;
  longlong local_b0;
  longlong local_a8;
  code *local_a0;
  undefined8 local_98;
  int local_90;
  int local_8c;
  int local_88;
  uint local_84;
  undefined1 local_78 [24];
  uint local_60;
  uint local_5c;
  ulonglong local_50;
  
  local_98 = 0xfffffffffffffffe;
  local_50 = DAT_182615970 ^ (ulonglong)auStack_178;
  uVar6 = (uint)&stack0x00000000;
  iVar5 = (uVar6 & 0x38ff) * (uVar6 & 0x38ff) + 1;
  uVar18 = (iVar5 >> 4) + (iVar5 >> 1) + iVar5 * 0x24924924 >> 0x1d;
  uVar25 = 0;
  uVar18 = (int)(uVar18 - 7) >> 0x1f & uVar18;
  local_118 = ((int)(-uVar18 | uVar18) >> 0x1f) * -0xc181 ^ 0xccc1;
  uVar19 = ((uVar6 & 0x5cff) * (uVar6 & 0x5cff) + 1) % 7;
  uVar3 = (ulonglong)uVar19;
  iVar5 = (uVar6 & 0x47ff) * (uVar6 & 0x47ff) + 1;
  uVar18 = (iVar5 >> 4) + (iVar5 >> 1) + iVar5 * 0x24924924 >> 0x1d;
  uVar18 = (int)(uVar18 - 7) >> 0x1f & uVar18;
  local_128 = ((int)((-uVar18 | uVar18) ^ (-uVar19 | uVar19)) >> 0x1f) + 0x80bdU ^ 0x803d;
  uVar13 = 0x180000000;
  local_138 = 0x100;
  local_158 = 0x181500cf4;
  local_148 = 0x181500df4;
  do {
    uVar18 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar18 < 0) {
      uVar18 = (uVar18 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar18 != 0);
  uVar18 = uRam0000000181500d44 ^
           (uRam0000000181500d40 ^
           (uRam0000000181500d3c ^
           (_DAT_181500d38 ^
           (DAT_181500d34 ^
           (DAT_181500d30 ^
           (((((((((((((((uRam0000000181500cf4 ^ 0x811c9e53) * 0x10001d1 ^ uRam0000000181500cf8) *
                        0x10001d1 ^ uRam0000000181500cfc) * 0x10001d1 ^ uRam0000000181500d00) *
                      0x10001d1 ^ uRam0000000181500d04) * 0x10001d1 ^ uRam0000000181500d08) *
                    0x10001d1 ^ uRam0000000181500d0c) * 0x10001d1 ^ uRam0000000181500d10) *
                  0x10001d1 ^ uRam0000000181500d14) * 0x10001d1 ^ uRam0000000181500d18) * 0x10001d1
               ^ uRam0000000181500d1c) * 0x10001d1 ^ uRam0000000181500d20) * 0x10001d1 ^
             uRam0000000181500d24) * 0x10001d1 ^ uRam0000000181500d28) * 0x10001d1 ^
           uRam0000000181500d2c) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
           0x10001d1;
  local_110 = param_4;
  local_108 = param_1;
  do {
    uVar9 = 0x620c;
    FUN_1813ef98b(0x620c,uVar13);
    uVar13 = ~uVar13 + 1;
    if ((uVar9 & 0xd300) == 0) {
      uVar13 = (ulonglong)((int)uVar13 + 0x1e5ec717);
    }
    uVar13 = -uVar13;
    uVar19 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar19 < 0) {
      uVar19 = (uVar19 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar19 != 0);
  do {
    local_124[1] = 0x5f10f491;
    uVar19 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar19 < 0) {
      uVar19 = (uVar19 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar19 != 0);
  do {
    uVar19 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar19 < 0) {
      uVar19 = (uVar19 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar19 != 0);
  uVar18 = uRam0000000181500df0 ^
           (uRam0000000181500dec ^
           (uRam0000000181500de8 ^
           (uRam0000000181500de4 ^
           (uRam0000000181500de0 ^
           (uRam0000000181500ddc ^
           (uRam0000000181500dd8 ^
           (uRam0000000181500dd4 ^
           (uRam0000000181500dd0 ^
           (uRam0000000181500dcc ^
           (uRam0000000181500dc8 ^
           (uRam0000000181500dc4 ^
           (uRam0000000181500dc0 ^
           (uRam0000000181500dbc ^
           (uRam0000000181500db8 ^
           (((((((((((((((((((((((((((uRam0000000181500d4c ^
                                     (uRam0000000181500d48 ^ uVar18 * 0x10001d1) * 0x10001d1) *
                                     0x10001d1 ^ uRam0000000181500d50) * 0x10001d1 ^
                                   uRam0000000181500d54) * 0x10001d1 ^ uRam0000000181500d58) *
                                  0x10001d1 ^ uRam0000000181500d5c) * 0x10001d1 ^
                                uRam0000000181500d60) * 0x10001d1 ^ uRam0000000181500d64) *
                               0x10001d1 ^ uRam0000000181500d68) * 0x10001d1 ^ uRam0000000181500d6c)
                             * 0x10001d1 ^ uRam0000000181500d70) * 0x10001d1 ^ uRam0000000181500d74)
                           * 0x10001d1 ^ uRam0000000181500d78) * 0x10001d1 ^ uRam0000000181500d7c) *
                         0x10001d1 ^ uRam0000000181500d80) * 0x10001d1 ^ uRam0000000181500d84) *
                       0x10001d1 ^ uRam0000000181500d88) * 0x10001d1 ^ uRam0000000181500d8c) *
                     0x10001d1 ^ uRam0000000181500d90) * 0x10001d1 ^ uRam0000000181500d94) *
                   0x10001d1 ^ uRam0000000181500d98) * 0x10001d1 ^ uRam0000000181500d9c) * 0x10001d1
                ^ uRam0000000181500da0) * 0x10001d1 ^ uRam0000000181500da4) * 0x10001d1 ^
              uRam0000000181500da8) * 0x10001d1 ^ uRam0000000181500dac) * 0x10001d1 ^
            uRam0000000181500db0) * 0x10001d1 ^ uRam0000000181500db4) * 0x10001d1) * 0x10001d1) *
           0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1)
           * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1;
  local_158 = 0x49861a09c5216378;
  local_148 = CONCAT44(local_148._4_4_,0xc5216378);
  do {
    uVar13 = 0x620c;
                    /* WARNING: Call to offcut address within same function */
    func_0x0001813f1b52();
    if ((uVar13 & 0xf300) == 0) {
      uVar25 = uVar3;
    }
    uVar19 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar19 < 0) {
      uVar19 = (uVar19 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar19 != 0);
  do {
    uVar19 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar19 < 0) {
      uVar19 = (uVar19 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar19 != 0);
  do {
    local_c0 = 0x69;
    local_b8 = 0x1813f1547;
    uVar19 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar19 < 0) {
      uVar19 = (uVar19 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar19 != 0);
  local_150 = 0x1238f5d;
  do {
    local_130 = 0x60cf57d6;
    local_bc = 0x18;
    local_b0 = 0x1813f1637;
    FUN_1813f2291();
    uVar19 = local_128;
    uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar6 != 0);
  uVar6 = (local_130 >> 5 | local_130 << 0x1b) + 0xf4107841;
  uVar6 = (uVar6 >> 4 | uVar6 * 0x10000000) & 0xd2d2d2d2 |
          (uVar6 * 0x10 | uVar6 >> 0x1c) & 0x2d2d2d2d;
  uVar6 = (uVar6 >> 7 | uVar6 << 0x19) + 0xe5fa4715;
  uVar6 = (uVar6 * 4 & 0xcccccccc | uVar6 >> 2 & 0x33333333) ^ 0xff2131ff;
  uVar11 = uVar6 >> 0xc | uVar6 << 0x14;
  lVar15 = local_150 + local_b8;
  lVar17 = ((longlong)(int)(uVar11 << 4 | (uVar6 & 0xfff) >> 8) & 0xffffffffa5a5a5a5U |
           (ulonglong)((uVar11 >> 4 | (uVar6 >> 0xc) << 0x1c) & 0x5a5a5a5a)) + local_b0;
  local_150 = (int)uVar25;
  *(longlong *)(lVar15 + 4) =
       *(longlong *)(lVar15 + 4) +
       (ulonglong)((uint)(*(ulonglong *)(lVar17 + 4) >> 0xc) & 0x482407a8);
  do {
    uVar1 = rdtsc();
    uVar6 = (int)uVar1 + (int)((ulonglong)uVar1 >> 0x20) * 2;
    uVar13 = (ulonglong)uVar6;
    uVar3 = uVar13 ^ ((ulonglong)(uVar6 >> 8) | uVar13 << 0x38);
    uVar13 = (uVar3 ^ (uVar3 << 7 | (uVar13 & 0xff) >> 1) + 0x1e6aba6b) * -0xffff + 0x5ee4fb5e;
    uVar13 = uVar13 >> 10 | uVar13 << 0x36;
    uVar13 = (uVar13 * 9 >> 0xf) + 0x67155a40 + uVar13 * 8;
    uVar3 = uVar13 >> 0xf;
    uVar13 = uVar3 | uVar13 << 0x31;
    uVar13 = uVar13 - ((uVar3 * 0x90000 | uVar13 * 9 >> 0x30) - 0x457302d9);
    uVar3 = uVar13 * 0x1000 | uVar13 >> 0x34;
    uVar3 = uVar3 ^ (uVar3 << 0x10 | (uVar13 & 0xfffffffffffff) >> 0x24) - 0x435ae871;
    uVar3 = uVar3 ^ (uVar3 << 9 | uVar3 >> 0x37) - 0x4ea67d1f;
    uVar6 = (uint)(uVar3 << 6) | (uint)(uVar3 >> 0x3a);
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  *(int *)(lVar15 + 8) = *(int *)(lVar15 + 8) + (uVar6 ^ 0xedebcaa7);
  *(int *)(lVar15 + 4) = *(int *)(lVar15 + 4) + (uVar6 ^ 0xbea79026);
  uVar13 = *(ulonglong *)(lVar15 + 4);
  uVar13 = ((uVar13 << 8 | uVar13 >> 0x38) & 0x817e817e817e817e |
           (uVar13 >> 8 | uVar13 << 0x38) & 0x7e817e817e817e81) ^ 0xf1afd28345cd0ff6;
  uVar13 = uVar13 >> 0x1d | uVar13 << 0x23;
  uVar3 = (uVar13 & 0x3333333333333333) << 2 | uVar13 >> 2 & 0x3333333333333333;
  uVar13 = (ulonglong)((uint)((uVar3 >> 0x1a ^ uVar3) >> 6) & 0x3fffff);
  uVar13 = (uVar3 ^ (uVar13 << 0x1a | uVar13) << 6) + 0xfad3402216662f6e;
  uVar13 = (uVar13 * 0x10000 | uVar13 >> 0x30) & 0xa92556daa92556da |
           (uVar13 >> 0x10 | uVar13 << 0x30) & 0x56daa92556daa925;
  uVar13 = (uVar13 << 8 | uVar13 >> 0x38) & 0xfb04fb04fb04fb04 |
           (uVar13 >> 8 | uVar13 << 0x38) & 0x4fb04fb04fb04fb;
  uVar6 = (uint)((uVar13 >> 0x1b ^ uVar13) >> 2) & 0xffffff;
  uVar13 = ((ulonglong)uVar6 << 0x1b | (ulonglong)uVar6) << 2 ^ uVar13;
  *(ulonglong *)(lVar15 + 4) = uVar13;
  plVar14 = (longlong *)(lVar17 + 4);
  *plVar14 = *plVar14 + (ulonglong)((uint)(uVar13 >> 6) & 0xd204bc8);
  local_14c = (uint)(*(ulonglong *)(lVar15 + 4) >> 0x11) & 0x7fffffff;
  local_138 = CONCAT44(local_138._4_4_,(int)(*(ulonglong *)(lVar15 + 4) >> 0x14)) ^ 0x75369b88;
  local_158 = *(ulonglong *)(lVar15 + 4) ^ 0xbcf88e89ab5310b9;
  uVar23 = ~(uVar18 * 0x10001d1 ^ 0xcd3f930c);
  uVar18 = (uint)local_158 ^ (uint)local_138;
  uVar11 = uVar18 & 0x2bfd4af1 ^ (uint)local_138;
  uVar18 = uVar18 & 0xd402b50e ^ (uint)local_138 ^ uVar11;
  uVar12 = uVar18 & 0xf0f0f0f0 ^ uVar11;
  uVar11 = uVar18 & 0xf0f0f0f ^ uVar11;
  uVar18 = (uVar12 >> 6 ^ uVar12) >> 2 & 3;
  uVar6 = (uVar11 >> 0x16 ^ uVar11) >> 5 & 3;
  uVar22 = (uint)(local_158 >> 0x20);
  uVar7 = (uVar22 >> 0x14 ^ uVar22) >> 3 & 0x1ff;
  uVar18 = (uVar18 << 6 | uVar18) << 2 ^ uVar12 ^ 0x2ea6b862;
  uVar12 = ~(uVar18 & 0x74575030 ^ 0x2ea6b862);
  uVar21 = ~(uVar18 & 0x8ba8afcf ^ 0x2ea6b862);
  uVar20 = ~((uVar6 << 0x16 | uVar6) << 5 ^ uVar11);
  uVar18 = ~((uVar7 << 0x14 | uVar7) << 3 ^ uVar22);
  uVar11 = (uVar12 << 2 | uVar12 >> 0x1e) & 0x99999999 | (uVar12 >> 2 | uVar12 << 0x1e) & 0x66666666
  ;
  uVar18 = (uVar18 >> 2 | uVar18 << 0x1e) & 0x99999999 | (uVar18 << 2 | uVar18 >> 0x1e) & 0x66666666
  ;
  uVar6 = uVar18 << 5 | uVar18 >> 0x1b;
  uVar18 = uVar6 ^ (uVar11 << 0x15 | uVar11 >> 0xb);
  uVar22 = (uVar21 & 0xf0f0f0) << 4 | uVar21 >> 0x1c;
  uVar3 = (ulonglong)uVar22;
  uVar12 = (uVar20 << 8 | uVar20 >> 0x18) & 0x22dd22dd;
  uVar7 = (uVar20 >> 8 | uVar20 << 0x18) & 0xdd22dd22 | uVar12;
  uVar11 = uVar18 & 0xaaaaaaaa ^ uVar6 ^ 0x724d0b9e;
  uVar13 = (ulonglong)uVar11;
  piVar27 = (int *)register0x00000020;
  do {
    uVar1 = rdtsc();
    local_124[2] = (int)uVar1 - (int)((ulonglong)uVar1 >> 0x20);
    piVar27 = (int *)((((ulonglong)piVar27 ^ 0xffffffffffffffff) + 1 ^ 0xffffffffffffffff) + 1);
    uVar9 = ((ulonglong)local_124[2] ^ (ulonglong)(local_124[2] >> 0xb) + 0x1fd2d4c6) * 0x401 -
            0x72522624;
    uVar9 = uVar9 ^ uVar9 * 0xa000 + 0x6b704cdd;
    uVar4 = uVar9 >> 0xc | uVar9 << 0x34;
    uVar4 = uVar4 ^ (uVar4 << 0xb | (uVar9 & 0xfff) >> 1) - 0x77068fd;
    uVar9 = uVar4 >> 0xd | uVar4 << 0x33;
    lVar15 = uVar9 - (uVar9 >> 0xf);
    iVar24 = uVar12 + uVar23;
    iVar5 = uVar23 - iVar24;
    uVar12 = -iVar5;
    uVar23 = iVar24 + iVar5;
    uVar8 = (*piVar27 + 1) * *piVar27 & 0x80000001;
    if ((int)uVar8 < 0) {
      uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar8 != 0);
  local_12c = ((int)lVar15 * 0x200 | (uint)((ulonglong)lVar15 >> 0x37)) >> 1 ^ local_14c;
  local_130 = local_150;
  if (local_12c < 0xd504) {
    do {
      uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar12 < 0) {
        uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar12 != 0);
    local_13c = 0xade2f2ae;
    local_90 = (uVar18 & 0x55555555 ^ uVar6) + 0x26edbe0b;
    local_8c = ((uVar21 >> 4 & 0xf0f0f0f0 | uVar21 << 0x1c | uVar22) >> 2 | (uVar21 >> 0x1c) << 0x1e
               ) + 0xd1b1c41;
    local_88 = (uVar7 << 2 | (uVar20 & 0xff) >> 6) + 0xd1de1f70;
    local_84 = uVar11;
    do {
      plVar14 = &local_a8;
      puVar10 = local_124;
                    /* WARNING: Call to offcut address within same function */
      func_0x0001813f1e7a();
      *puVar10 = 0x2cc9d49c;
      uVar3 = 0;
      *plVar14 = 0x1813f1db3;
      uVar18 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar18 < 0) {
        uVar18 = (uVar18 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar18 != 0);
    uVar18 = (local_124[0] >> 0xf | local_124[0] << 0x11) + 0x41124142;
    uVar18 = (uVar18 >> 0x1e | uVar18 * 4) ^ 0xe098d181;
    local_124[0] = (uVar18 >> 0x18 | uVar18 << 8) ^ 0x4d3f8a44;
    (*(code *)((int)local_124[0] + local_a8))(&local_90,local_78);
    iVar5 = 7;
    do {
      uVar11 = (local_5c ^ local_60) & 0x4efd1df ^ local_60;
      uVar18 = (local_5c ^ local_60) & 0xfb102e20 ^ local_60 ^ uVar11;
      uVar6 = ~(uVar18 & 0x54d3484b ^ uVar11);
      uVar11 = uVar6 ^ ~(uVar18 & 0xab2cb7b4 ^ uVar11);
      uVar18 = uVar11 & 0x7b746601 ^ uVar6;
      uVar6 = uVar11 & 0x848b99fe ^ uVar6;
      uVar6 = ((uVar6 << 4 | uVar6 >> 0x1c) & 0xc3c3c3c3 | (uVar6 >> 4 | uVar6 << 0x1c) & 0x3c3c3c3c
              ) + 0x36fae1ff;
      uVar18 = ((uVar18 << 0x10 | uVar18 >> 0x10) & 0x96b5694a |
               (uVar18 >> 0x10 | uVar18 << 0x10) & 0x694a96b5) + 0xf365dac8 ^ uVar6;
      uVar11 = uVar18 & 0xa7071cb4 ^ uVar6;
      uVar6 = uVar18 & 0x58f8e34b ^ uVar6;
      local_60 = (uVar11 << 0x18 | uVar11 >> 8) + 0xc3118cdd;
      local_5c = (uVar6 >> 6 | uVar6 << 0x1a) ^ 0x3825b93f;
      iVar5 = iVar5 + -1;
    } while (-1 < iVar5);
    uVar18 = ~(~(((local_60 ^ 0xbdd8dfd9) << 0x15 | (local_60 ^ 0xbdd8dfd9) >> 0xb) + 0x826d94) ^
              0x40e78bde) + 0xe3af4750;
    if (((uVar18 >> 0x1e | uVar18 * 4) + 0x94bef1a6 ^ local_13c) + local_5c != (uint)local_138) {
      do {
        local_a0 = FUN_180bc28c0;
        uVar18 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
        if ((int)uVar18 < 0) {
          uVar18 = (uVar18 - 1 | 0xfffffffe) + 1;
        }
      } while (uVar18 != 0);
      FUN_180bc28c0();
      do {
        func_0x0001813f24ea();
        FUN_1813f0331();
        uVar18 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
        if ((int)uVar18 < 0) {
          uVar18 = (uVar18 - 1 | 0xfffffffe) + 1;
        }
      } while (uVar18 != 0);
    }
  }
  uVar9 = (ulonglong)uVar19;
  uVar26 = (uint7)(uVar25 >> 8);
  if ((int)CONCAT71(uVar26,uVar23 == (uint)local_148) == (int)(((ulonglong)uVar26 & 0xffffff) << 7))
  {
    local_100 = param_2;
    local_fc = param_3;
    FUN_18056a290(local_e0,&local_140);
    FUN_18056d400(local_e0,&local_100,local_f4);
    FUN_1814139d0(local_108,local_110);
    FUN_180568e40(local_e0);
    FUN_180568e30(local_e0);
    thunk_FUN_1805a9280();
    return;
  }
  local_f0 = param_2;
  local_ec = param_3;
  FUN_18056a290(local_d0,local_13f);
  FUN_18056d400(local_d0,&local_f0,local_e4);
  FUN_1814139d0(local_108,local_110,local_d0);
  FUN_180568e40(local_d0);
  FUN_180568e30(local_d0);
  puVar2 = auStack_178;
  do {
    puVar16 = puVar2;
    *(undefined8 *)(puVar16 + -8) = 0x1813f2168;
    lVar15 = (longlong)(int)uVar19;
    FUN_1813f40ca();
    *(ulonglong *)(puVar16 + -8) = uVar3;
    *(ulonglong *)(puVar16 + -0x10) = uVar9;
    *(ulonglong *)(puVar16 + -0x18) = uVar13;
    lVar15 = -lVar15;
    uVar13 = *(ulonglong *)(puVar16 + lVar15 + 0x68);
    uVar9 = *(ulonglong *)(puVar16 + lVar15 + 0x70);
    uVar3 = *(ulonglong *)(puVar16 + lVar15 + 0x78);
    uVar18 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar18 < 0) {
      uVar18 = (uVar18 - 1 | 0xfffffffe) + 1;
    }
    puVar2 = puVar16 + lVar15 + 0x80;
  } while (uVar18 != 0);
  *(undefined **)(puVar16 + lVar15 + 0x78) = &UNK_1813f2225;
}



############ FUN_ 1812ea010 size=187 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1812ea010(longlong param_1,undefined8 *param_2)

{
  uint uVar1;
  undefined8 *puVar2;
  bool bVar3;
  undefined1 auStack_58 [32];
  undefined8 *local_38;
  undefined4 local_30;
  undefined8 local_28;
  longlong *local_20;
  undefined1 local_18 [8];
  ulonglong local_10;
  
  local_28 = 0xfffffffffffffffe;
  local_10 = DAT_182615970 ^ (ulonglong)auStack_58;
  local_30 = 0;
  local_38 = param_2;
  puVar2 = (undefined8 *)
           (**(code **)(**(longlong **)(param_1 + 0x198) + 8))
                     (*(longlong **)(param_1 + 0x198),&local_20);
  (**(code **)(*(longlong *)*puVar2 + 0x20))((longlong *)*puVar2,&local_38,puVar2 + 1);
  (**(code **)(*local_20 + 0xb0))(local_20,local_18);
  *param_2 = local_38;
  local_38 = (undefined8 *)&DAT_1821dbf98;
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar3 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar3) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
}



############ FUN_ 1813f22a0 size=278 ############

undefined8 * FUN_1813f22a0(longlong param_1,undefined8 *param_2,int param_3,ulonglong param_4)

{
  char cVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  undefined8 local_res8;
  
  EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
  puVar2 = *(undefined8 **)(param_1 + 0x20);
  cVar1 = *(char *)((longlong)puVar2[1] + 0x19);
  puVar4 = puVar2;
  puVar3 = (undefined8 *)puVar2[1];
  while (cVar1 == '\0') {
    if ((ulonglong)puVar3[4] < param_4) {
      puVar5 = (undefined8 *)puVar3[2];
      puVar3 = puVar4;
    }
    else {
      puVar5 = (undefined8 *)*puVar3;
    }
    puVar4 = puVar3;
    puVar3 = puVar5;
    cVar1 = *(char *)((longlong)puVar5 + 0x19);
  }
  if ((puVar4 == puVar2) || (param_4 < (ulonglong)puVar4[4])) {
    puVar4 = puVar2;
  }
  if (puVar4 != puVar2) {
    puVar2 = (undefined8 *)puVar4[5];
    cVar1 = *(char *)((longlong)puVar2[1] + 0x19);
    puVar4 = puVar2;
    puVar3 = (undefined8 *)puVar2[1];
    while (cVar1 == '\0') {
      if (*(int *)((longlong)puVar3 + 0x1c) < param_3) {
        puVar5 = (undefined8 *)puVar3[2];
        puVar3 = puVar4;
      }
      else {
        puVar5 = (undefined8 *)*puVar3;
      }
      puVar4 = puVar3;
      puVar3 = puVar5;
      cVar1 = *(char *)((longlong)puVar5 + 0x19);
    }
    if ((puVar4 == puVar2) || (param_3 < *(int *)((longlong)puVar4 + 0x1c))) {
      puVar4 = puVar2;
    }
    if (puVar4 != puVar2) {
      *param_2 = puVar4[4];
      LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
      return param_2;
    }
  }
  LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
  if (param_4 == 0) {
    FUN_1813efd60(param_2,param_3);
  }
  else {
    FUN_1813f22a0(param_1,&local_res8,param_3,*(undefined8 *)(param_4 + 0x18),1);
    *param_2 = local_res8;
  }
  return param_2;
}



############ FUN_ 18052d390 size=52 ############

void * .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
                 (void *param_1,ulonglong param_2)

{
  FUN_180529aa0();
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    free(param_1);
  }
  return param_1;
}



############ FUN_ 18052cfb0 size=61 ############

void .?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__(longlong param_1)

{
  FUN_1812b4430(param_1 + 0x14,0,2);
  *(float *)(param_1 + 0x58) = (float)(DAT_1824c4230 / (double)*(float *)(param_1 + 0x24));
  return;
}



############ FUN_ 180529550 size=191 ############

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__
               (longlong *param_1,undefined4 param_2,undefined4 *param_3,int param_4)

{
  int *piVar1;
  longlong lVar2;
  uint *puVar3;
  
  lVar2 = (longlong)param_4;
  puVar3 = (uint *)(param_1 + (lVar2 + 9) * 8);
  *(undefined4 *)(*(longlong *)(puVar3 + 8) + (longlong)(int)*puVar3 * 4) = *param_3;
  *puVar3 = puVar3[2] - 1 & *puVar3 + 1;
  puVar3 = (uint *)(param_1 + (lVar2 + 7) * 8);
  *(undefined4 *)(*(longlong *)(puVar3 + 8) + (longlong)(int)*puVar3 * 4) = param_2;
  *puVar3 = puVar3[2] - 1 & *puVar3 + 1;
  piVar1 = (int *)((longlong)param_1 + lVar2 * 4 + 0x3c0);
  *piVar1 = *piVar1 + 1;
  if ((*(int *)((longlong)param_1 + lVar2 * 4 + 0x3c0) == (int)param_1[0x79] / 2) && (param_4 == 0))
  {
    (**(code **)(*param_1 + 0x38))(param_1);
  }
  if (*(int *)((longlong)param_1 + lVar2 * 4 + 0x3c0) == (int)param_1[0x79]) {
    *(undefined4 *)((longlong)param_1 + lVar2 * 4 + 0x3c0) = 0;
    FUN_1805300f0(param_1,param_4);
  }
  return;
}



############ FUN_ 180529610 size=1154 ############

void .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
               (longlong *param_1,longlong *param_2,ulonglong param_3)

{
  int iVar1;
  int iVar2;
  longlong lVar3;
  ulonglong uVar4;
  uint uVar5;
  int iVar6;
  ulonglong uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  longlong *plVar10;
  longlong *plVar11;
  code *pcVar12;
  
  uVar4 = 0;
  uVar9 = uVar4;
  if (0 < (int)param_1[6]) {
    param_2 = param_1 + 0x3b;
    do {
      param_2[-3] = 0;
      uVar8 = uVar4;
      uVar7 = uVar4;
      if (0 < (int)*param_2) {
        do {
          *(undefined4 *)(uVar7 + param_2[-1]) = 0;
          uVar5 = (int)uVar8 + 1;
          uVar8 = (ulonglong)uVar5;
          uVar7 = uVar7 + 4;
        } while ((int)uVar5 < (int)*param_2);
      }
      param_2[1] = param_2[-1];
      param_2[0xd] = 0;
      uVar8 = uVar4;
      uVar7 = uVar4;
      if (0 < (int)param_2[0x10]) {
        do {
          *(undefined4 *)(uVar8 + param_2[0xf]) = 0;
          uVar5 = (int)uVar7 + 1;
          uVar8 = uVar8 + 4;
          uVar7 = (ulonglong)uVar5;
        } while ((int)uVar5 < (int)param_2[0x10]);
      }
      param_2[0x11] = param_2[0xf];
      param_2[0x1d] = 0;
      uVar8 = uVar4;
      param_3 = uVar4;
      if (0 < (int)param_2[0x20]) {
        do {
          *(undefined4 *)(uVar8 + param_2[0x1f]) = 0;
          uVar5 = (int)param_3 + 1;
          param_3 = (ulonglong)uVar5;
          uVar8 = uVar8 + 4;
        } while ((int)uVar5 < (int)param_2[0x20]);
      }
      param_2[0x21] = param_2[0x1f];
      uVar5 = (int)uVar9 + 1;
      uVar9 = (ulonglong)uVar5;
      param_2 = param_2 + 8;
    } while ((int)uVar5 < (int)param_1[6]);
  }
  FUN_18052e130(param_1,param_2,param_3,uVar9,0xfffffffffffffffe);
  iVar1 = (int)param_1[0x34];
  uVar9 = (longlong)iVar1 % (longlong)*(int *)((longlong)param_1 + 0x1ac) & 0xffffffff;
  *(int *)(param_1 + 0x79) = iVar1 / *(int *)((longlong)param_1 + 0x1ac);
  *(int *)(param_1 + 0x35) = (int)param_1[0x36] * iVar1;
  if (0 < (int)param_1[6]) {
    plVar10 = param_1 + 0x3b;
    uVar8 = uVar4;
    do {
      iVar2 = FUN_1813bbf80(0x10000,uVar9);
      if ((int)plVar10[-2] != iVar2) {
        FUN_18052e190(plVar10 + -1,iVar2,0);
      }
      *(int *)(plVar10 + -2) = iVar2;
      plVar10[-3] = 0;
      uVar9 = uVar4;
      uVar7 = uVar4;
      if (0 < (int)*plVar10) {
        do {
          *(undefined4 *)(uVar9 + plVar10[-1]) = 0;
          uVar5 = (int)uVar7 + 1;
          uVar9 = uVar9 + 4;
          uVar7 = (ulonglong)uVar5;
        } while ((int)uVar5 < (int)*plVar10);
      }
      plVar10[1] = plVar10[-1];
      uVar5 = (int)param_1[0x34] + (int)plVar10[-3] & (int)plVar10[-2] - 1U;
      if ((int)uVar5 < 0) {
        uVar5 = uVar5 + (int)plVar10[-2];
      }
      *(uint *)(plVar10 + -3) = uVar5;
      iVar2 = FUN_1813bbf80(0x10000);
      if ((int)plVar10[0xe] != iVar2) {
        FUN_18052e190(plVar10 + 0xf,iVar2,0);
      }
      *(int *)(plVar10 + 0xe) = iVar2;
      plVar10[0xd] = 0;
      uVar9 = uVar4;
      uVar7 = uVar4;
      if (0 < (int)plVar10[0x10]) {
        do {
          *(undefined4 *)(uVar9 + plVar10[0xf]) = 0;
          uVar5 = (int)uVar7 + 1;
          uVar9 = uVar9 + 4;
          uVar7 = (ulonglong)uVar5;
        } while ((int)uVar5 < (int)plVar10[0x10]);
      }
      plVar10[0x11] = plVar10[0xf];
      uVar5 = (int)param_1[0x34] + (int)plVar10[0xd] & (int)plVar10[0xe] - 1U;
      if ((int)uVar5 < 0) {
        uVar5 = uVar5 + (int)plVar10[0xe];
      }
      *(uint *)(plVar10 + 0xd) = uVar5;
      iVar2 = FUN_1813bbf80(0x10000);
      if ((int)plVar10[0x1e] != iVar2) {
        FUN_18052e190(plVar10 + 0x1f,iVar2,0);
      }
      *(int *)(plVar10 + 0x1e) = iVar2;
      plVar10[0x1d] = 0;
      uVar7 = uVar4;
      uVar9 = uVar4;
      if (0 < (int)plVar10[0x20]) {
        do {
          *(undefined4 *)(uVar7 + plVar10[0x1f]) = 0;
          uVar5 = (int)uVar9 + 1;
          uVar9 = (ulonglong)uVar5;
          uVar7 = uVar7 + 4;
        } while ((int)uVar5 < (int)plVar10[0x20]);
      }
      plVar10[0x21] = plVar10[0x1f];
      uVar5 = (int)uVar8 + 1;
      uVar8 = (ulonglong)uVar5;
      plVar10 = plVar10 + 8;
    } while ((int)uVar5 < (int)param_1[6]);
  }
  if (0 < (int)param_1[6]) {
    iVar2 = iVar1 * 0x10;
    plVar10 = param_1 + 0x6c;
    uVar9 = uVar4;
    do {
      if ((int)plVar10[1] == iVar2) {
LAB_18052990b:
        uVar8 = uVar4;
        uVar7 = uVar4;
        if (0 < (int)plVar10[1]) {
          do {
            *(undefined4 *)(uVar8 + *plVar10) = 0;
            uVar5 = (int)uVar7 + 1;
            uVar8 = uVar8 + 4;
            uVar7 = (ulonglong)uVar5;
          } while ((int)uVar5 < (int)plVar10[1]);
        }
      }
      else {
        if ((0 < (int)plVar10[1]) && (*plVar10 != 0)) {
          FUN_1800010c0();
        }
        *plVar10 = 0;
        iVar6 = iVar2;
        if (iVar2 < 0) {
          iVar6 = 0;
        }
        *(int *)(plVar10 + 1) = iVar6;
        if (iVar6 != 0) {
          lVar3 = FUN_180001080(iVar6 * 4);
          *plVar10 = lVar3;
          goto LAB_18052990b;
        }
      }
      uVar5 = (int)uVar9 + 1;
      uVar9 = (ulonglong)uVar5;
      plVar10 = plVar10 + 2;
    } while ((int)uVar5 < (int)param_1[6]);
  }
  if (0 < (int)param_1[6]) {
    plVar11 = param_1 + 0x70;
    plVar10 = param_1 + 0x6c;
    uVar9 = uVar4;
    do {
      *plVar11 = *plVar10;
      uVar5 = (int)uVar9 + 1;
      uVar9 = (ulonglong)uVar5;
      plVar10 = plVar10 + 2;
      plVar11 = plVar11 + 1;
    } while ((int)uVar5 < (int)param_1[6]);
  }
  FUN_18052e190(param_1 + 0x72,iVar1 * 0x10,0);
  FUN_18052dc30(param_1 + 0xc,(int)param_1[0x35],iVar1 * 8);
  FUN_18052e190(param_1 + 0x74,(int)param_1[0x34],0);
  uVar9 = uVar4;
  uVar8 = uVar4;
  if (0 < (int)param_1[0x75]) {
    do {
      *(undefined4 *)(uVar9 + param_1[0x74]) = 0;
      uVar5 = (int)uVar8 + 1;
      uVar9 = uVar9 + 4;
      uVar8 = (ulonglong)uVar5;
    } while ((int)uVar5 < (int)param_1[0x75]);
  }
  if (0 < (int)param_1[6]) {
    plVar10 = param_1 + 0x78;
    do {
      *(undefined4 *)plVar10 = 0;
      uVar5 = (int)uVar4 + 1;
      uVar4 = (ulonglong)uVar5;
      plVar10 = (longlong *)((longlong)plVar10 + 4);
    } while ((int)uVar5 < (int)param_1[6]);
  }
  FUN_18052df60(param_1);
  if (*(char *)((longlong)param_1 + 0x1b6) == '\0') {
    if (*(char *)((longlong)param_1 + 0x1b7) == '\0') {
      if ((char)param_1[0x37] == '\0') goto LAB_180529a6a;
      *(undefined1 *)(param_1 + 0x37) = 0;
      pcVar12 = *(code **)(*param_1 + 0x48);
    }
    else {
      *(undefined1 *)((longlong)param_1 + 0x1b7) = 0;
      pcVar12 = *(code **)(*param_1 + 0x58);
    }
  }
  else {
    *(undefined1 *)((longlong)param_1 + 0x1b6) = 0;
    pcVar12 = *(code **)(*param_1 + 0x50);
  }
  if (pcVar12 != _guard_check_icall) {
    (*pcVar12)(param_1);
  }
LAB_180529a6a:
  *(undefined1 *)((longlong)param_1 + 0x3cc) = 0;
  return;
}



############ FUN_ 18052d3d0 size=52 ############

void * .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
                 (void *param_1,ulonglong param_2)

{
  FUN_18052c910();
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    free(param_1);
  }
  return param_1;
}



############ FUN_ 1812c1fb0 size=92 ############

undefined8 *
.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____
          (longlong *param_1,undefined8 *param_2)

{
  uint uVar1;
  undefined8 uVar2;
  uint *_Memory;
  undefined8 *local_res10 [3];
  
  local_res10[0] = param_2;
  uVar2 = (**(code **)(*param_1 + 8))(param_1,local_res10);
  *param_2 = 0;
  param_2[1] = 0;
  FUN_18049b000(param_2,uVar2);
  _Memory = (uint *)(local_res10[0] + -2);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  return param_2;
}



############ FUN_ 18052c4a0 size=794 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void .?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
     vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____
               (longlong *param_1,double param_2,undefined4 param_3)

{
  uint *puVar1;
  int iVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  char cVar6;
  uint uVar7;
  undefined8 *puVar8;
  code *pcVar9;
  int iVar10;
  longlong *plVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  undefined1 auStack_e8 [32];
  code *local_c8;
  undefined4 uStack_c0;
  undefined4 uStack_bc;
  undefined8 local_b8;
  uint *local_b0;
  undefined1 local_a8 [16];
  undefined1 local_98 [16];
  undefined **local_88;
  undefined4 local_80;
  undefined4 uStack_7c;
  undefined4 uStack_78;
  undefined4 uStack_74;
  longlong *local_70;
  undefined ***local_50;
  ulonglong local_48;
  
  local_b8 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_e8;
  puVar1 = (uint *)(param_1 + 0xab);
  do {
    LOCK();
    uVar7 = *puVar1;
    *puVar1 = *puVar1 | 1;
    UNLOCK();
  } while ((uVar7 & 1) != 0);
  local_b0 = puVar1;
  if ((*(char *)((longlong)param_1 + 0x554) != '\0') && (param_1[0xb7] != 0)) {
    plVar11 = (longlong *)(param_1[0xb7] + 0x70);
    (**(code **)(*plVar11 + 8))(plVar11,param_3,SUB84(param_2,0));
  }
  uVar14 = 0;
  if ((double)param_1[0x2b] != param_2) {
    param_1[0xbb] = 0;
  }
  param_1[0x2b] = (longlong)param_2;
  *(undefined4 *)(param_1 + 0x2c) = param_3;
  cVar6 = (**(code **)(*(longlong *)param_1[0x2d] + 0xe8))();
  uVar7 = 0;
  if (cVar6 != '\0') {
    local_c8 = FUN_18052f680;
    uStack_c0 = 0;
    local_88 = std::
               _Func_impl_no_alloc<std::_Binder<std::_Unforced,void_(__cdecl_CloudyAudioProcessor<Soothe2ModuleBase<float,2>,Soothe2ModuleDecryptor,ParameterStates,float>::*)(void)___ptr64,CloudyAudioProcessor<class_Soothe2ModuleBase<float,2>,class_Soothe2ModuleDecryptor,class_ParameterStates,float>*___ptr64>,void>
               ::vftable;
    local_80 = 0x8052f680;
    uStack_7c = 1;
    uStack_78 = 0;
    uStack_74 = uStack_bc;
    local_50 = &local_88;
    local_70 = param_1;
    FUN_18113eab0();
    FUN_18114b490(&local_88);
    if (local_50 != (undefined ***)0x0) {
      (*(code *)(*local_50)[4])(local_50,local_50 != &local_88);
    }
  }
  puVar8 = (undefined8 *)FUN_1812c37c0(param_1,local_a8);
  if (*(int *)((longlong)puVar8 + 0xc) != 0) {
    uVar7 = FUN_18123d3f0(*puVar8);
  }
  FUN_18047c500(local_98);
  FUN_18047c500(local_a8);
  if (uVar7 != *(uint *)((longlong)param_1 + 0x56c)) {
    plVar11 = param_1 + 0xac;
    FUN_180531620(plVar11);
    if ((int)param_1[0xad] != 0) {
                    /* WARNING: Subroutine does not return */
      free((void *)*plVar11);
    }
    *(undefined4 *)(param_1 + 0xad) = 0;
    if (0 < (int)uVar7) {
      uVar13 = (ulonglong)uVar7;
      do {
        pcVar9 = (code *)FUN_1811316e0(0x28);
        *(undefined8 *)pcVar9 = 0;
        *(undefined4 *)(pcVar9 + 8) = 0;
        *(undefined8 *)(pcVar9 + 0x10) = 0;
        *(undefined4 *)(pcVar9 + 0x18) = 0;
        *(undefined8 *)(pcVar9 + 0x20) = 0;
        local_c8 = pcVar9;
        FUN_18052bc40(pcVar9,0x10000);
        iVar2 = *(int *)((longlong)param_1 + 0x56c);
        iVar10 = iVar2 + 1;
        if ((int)param_1[0xad] < iVar10) {
          if (iVar10 < 0) {
            iVar10 = iVar2 + 2;
          }
          FUN_18047cb30(plVar11,iVar2 + 9 + (iVar10 >> 1) & 0xfffffff8);
        }
        iVar10 = *(int *)((longlong)param_1 + 0x56c);
        *(int *)((longlong)param_1 + 0x56c) = iVar10 + 1;
        *(code **)(*plVar11 + (longlong)iVar10 * 8) = pcVar9;
        uVar13 = uVar13 - 1;
      } while (uVar13 != 0);
    }
  }
  (**(code **)(*param_1 + 0x220))(param_1,param_1[0x2b],(int)param_1[0x2c]);
  puVar8 = (undefined8 *)param_1[0x36];
  puVar3 = (undefined8 *)*puVar8;
  while (puVar3 != puVar8) {
    FUN_1811c4880(puVar3[5]);
    puVar4 = (undefined8 *)puVar3[2];
    if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
      cVar6 = *(char *)((longlong)*puVar4 + 0x19);
      puVar3 = puVar4;
      puVar4 = (undefined8 *)*puVar4;
      while (cVar6 == '\0') {
        cVar6 = *(char *)((longlong)*puVar4 + 0x19);
        puVar3 = puVar4;
        puVar4 = (undefined8 *)*puVar4;
      }
    }
    else {
      cVar6 = *(char *)((longlong)puVar3[1] + 0x19);
      puVar5 = (undefined8 *)puVar3[1];
      puVar4 = puVar3;
      while ((puVar3 = puVar5, cVar6 == '\0' && (puVar4 == (undefined8 *)puVar3[2]))) {
        cVar6 = *(char *)((longlong)puVar3[1] + 0x19);
        puVar5 = (undefined8 *)puVar3[1];
        puVar4 = puVar3;
      }
    }
  }
  FUN_1812a77d0(param_1 + 0x60,0x10);
  puVar8 = (undefined8 *)param_1[0xac];
  uVar13 = (ulonglong)
           ((longlong)(puVar8 + *(int *)((longlong)param_1 + 0x56c)) + (7 - (longlong)puVar8)) >> 3;
  if (puVar8 + *(int *)((longlong)param_1 + 0x56c) < puVar8) {
    uVar13 = uVar14;
  }
  uVar16 = uVar14;
  if (uVar13 != 0) {
    do {
      puVar3 = (undefined8 *)*puVar8;
      *puVar3 = 0;
      uVar12 = uVar14;
      uVar15 = uVar14;
      if (0 < *(int *)(puVar3 + 3)) {
        do {
          *(undefined4 *)(uVar12 + puVar3[2]) = 0;
          uVar7 = (int)uVar15 + 1;
          uVar12 = uVar12 + 4;
          uVar15 = (ulonglong)uVar7;
        } while ((int)uVar7 < *(int *)(puVar3 + 3));
      }
      puVar3[4] = puVar3[2];
      puVar8 = puVar8 + 1;
      uVar16 = uVar16 + 1;
    } while (uVar16 != uVar13);
  }
  LOCK();
  *puVar1 = 0;
  UNLOCK();
}



############ FUN_ 18052bfa0 size=870 ############

void .?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
     vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____
               (longlong *param_1,longlong param_2,undefined8 param_3)

{
  longlong *plVar1;
  longlong lVar2;
  char cVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  longlong lVar7;
  uint *puVar8;
  longlong lVar9;
  uint *puVar10;
  uint *puVar11;
  uint *puVar12;
  bool bVar13;
  int local_b0;
  int local_ac;
  undefined4 local_a8;
  undefined8 local_a0;
  int local_94;
  undefined1 local_90 [16];
  longlong local_80;
  ulonglong local_78;
  longlong local_70;
  undefined4 local_68;
  undefined4 local_64;
  uint *local_60;
  char local_58;
  undefined8 local_50;
  
  local_50 = 0xfffffffffffffffe;
  local_60 = (uint *)(param_1 + 0xab);
  LOCK();
  bVar13 = (*local_60 & 1) == 0;
  *local_60 = *local_60 | 1;
  UNLOCK();
  puVar12 = (uint *)0x0;
  iVar4 = 0;
  if ((((DAT_1826216ff == '\0') || (DAT_18262170c == '\0')) || (DAT_18262170d == '\0')) ||
     ((DAT_1826216fd == '\0' || (iVar6 = 1, DAT_1826216fe == '\0')))) {
    iVar6 = iVar4;
  }
  local_58 = bVar13;
  if (((char)iVar6 == '\0') ||
     (cVar3 = (**(code **)(*(longlong *)param_1[0x2d] + 0xe8))(), cVar3 == '\0')) {
    if (((DAT_1826216ff == '\0') ||
        (((DAT_18262170c == '\0' || (DAT_18262170d == '\0')) || (DAT_1826216fd == '\0')))) ||
       (iVar6 = 1, DAT_1826216fe == '\0')) {
      iVar6 = iVar4;
    }
    if (((char)iVar6 != '\0') ||
       (cVar3 = (**(code **)(*(longlong *)param_1[0x2d] + 0xe8))(), cVar3 != '\0'))
    goto LAB_18052c0bb;
  }
  if (bVar13) {
    FUN_18052f850(param_1);
  }
LAB_18052c0bb:
  uVar5 = MXCSR;
  local_78 = (ulonglong)MXCSR;
  MXCSR = MXCSR | 0x8040;
  if ((char)param_1[0xb6] != *(char *)((longlong)param_1 + 0x41)) {
    *(char *)(param_1 + 0xb6) = *(char *)((longlong)param_1 + 0x41);
    (**(code **)(*param_1 + 0x230))(param_1);
  }
  local_78._0_4_ = uVar5;
  if (bVar13) {
    cVar3 = (**(code **)(*(longlong *)param_1[0x2d] + 0xe8))();
    if (cVar3 == '\0') {
      LOCK();
      *(undefined1 *)((longlong)param_1 + 0x164) = 0;
      UNLOCK();
      FUN_181198f30(param_1 + 0x2f,0);
      if ((*(char *)((longlong)param_1 + 0x554) != '\0') && (param_1[0xb7] != 0)) {
        local_68 = 0;
        local_64 = *(undefined4 *)(param_2 + 4);
        plVar1 = (longlong *)(param_1[0xb7] + 0x70);
        local_70 = param_2;
        (**(code **)(*plVar1 + 0x18))(plVar1,&local_70);
      }
      FUN_1812c37c0(param_1,&local_a0);
      if (local_94 != 0) {
        iVar4 = FUN_18123d3f0(local_a0);
      }
      iVar6 = *(int *)(param_2 + 4);
      local_80 = (longlong)iVar4;
      if (0 < local_80) {
        puVar8 = puVar12;
        puVar10 = puVar12;
        do {
          lVar2 = *(longlong *)(*(longlong *)(param_2 + 0x10) + (longlong)puVar8 * 8);
          puVar11 = puVar12;
          if ((uint)puVar10 < *(uint *)((longlong)param_1 + 0x56c)) {
            puVar11 = *(uint **)(param_1[0xac] + (longlong)puVar8 * 8);
          }
          lVar9 = lVar2;
          FUN_18052f640(puVar11,&local_b0,iVar6,0,1);
          lVar7 = (longlong)local_ac;
          FUN_18052dbc0(*(longlong *)(puVar11 + 8) + (longlong)local_b0 * 4,lVar9,local_ac);
          FUN_18052dbc0(*(undefined8 *)(puVar11 + 8),lVar2 + lVar7 * 4,local_a8);
          uVar5 = *puVar11 + iVar6 & puVar11[2] - 1;
          if ((int)uVar5 < 0) {
            uVar5 = uVar5 + puVar11[2];
          }
          *puVar11 = uVar5;
          puVar10 = (uint *)(ulonglong)((uint)puVar10 + 1);
          puVar8 = (uint *)((longlong)puVar8 + 1);
        } while ((longlong)puVar8 < local_80);
      }
      FUN_18047c500(local_90);
      FUN_18047c500(&local_a0);
      (**(code **)(*param_1 + 0x228))(param_1,param_2,param_3);
      if ((*(char *)((longlong)param_1 + 0x554) != '\0') && (param_1[0xb7] != 0)) {
        FUN_18052fc90(param_2,*(undefined4 *)(param_1[0xb7] + 0x48));
      }
      param_1[0xbb] = param_1[0xbb] + (longlong)*(int *)(param_2 + 4);
    }
    else {
      (**(code **)(*param_1 + 0x48))(param_1,param_2,param_3);
      FUN_18052fc90(param_2,0);
      local_58 = bVar13;
    }
  }
  else {
    (**(code **)(*param_1 + 0x48))(param_1,param_2,param_3);
    local_58 = bVar13;
  }
  MXCSR = (uint)local_78;
  if (local_58 != '\0') {
    LOCK();
    *local_60 = 0;
    UNLOCK();
  }
  return;
}



############ FUN_ 1812c0b60 size=152 ############

void .?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
     vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____
               (longlong param_1,longlong param_2)

{
  int iVar1;
  longlong lVar2;
  
  if ((*(int *)(param_1 + 0xdc) == 0) || (**(longlong **)(param_1 + 0xd0) == 0)) {
    iVar1 = 0;
  }
  else {
    iVar1 = *(int *)(**(longlong **)(param_1 + 0xd0) + 0x8c);
  }
  if (iVar1 < *(int *)(param_1 + 0x104)) {
    lVar2 = (longlong)iVar1 * 8;
    do {
      if (*(char *)(param_2 + 0x120) == '\0') {
        memset(*(void **)(*(longlong *)(param_2 + 0x10) + lVar2),0,
               (longlong)*(int *)(param_2 + 4) << 3);
      }
      iVar1 = iVar1 + 1;
      lVar2 = lVar2 + 8;
    } while (iVar1 < *(int *)(param_1 + 0x104));
  }
  return;
}



############ FUN_ 18052bdf0 size=432 ############

void .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
               (longlong param_1,longlong param_2)

{
  int iVar1;
  int iVar2;
  longlong lVar3;
  int iVar4;
  uint uVar5;
  uint *puVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  longlong lVar10;
  int local_78;
  int local_74;
  undefined4 local_70;
  int local_68;
  int local_64;
  undefined4 local_60;
  undefined8 local_58;
  int local_4c;
  undefined1 local_48 [16];
  
  LOCK();
  *(undefined1 *)(param_1 + 0x164) = 1;
  UNLOCK();
  FUN_1812c37c0(param_1,&local_58);
  if (local_4c == 0) {
    iVar4 = 0;
  }
  else {
    iVar4 = FUN_18123d3f0(local_58);
  }
  iVar1 = *(int *)(param_1 + 0x3c);
  uVar9 = 0;
  iVar2 = *(int *)(param_2 + 4);
  lVar10 = 0;
  if (0 < (longlong)iVar4) {
    do {
      LOCK();
      *(undefined1 *)(param_2 + 0x120) = 0;
      UNLOCK();
      lVar3 = *(longlong *)(*(longlong *)(param_2 + 0x10) + lVar10 * 8);
      if (uVar9 < *(uint *)(param_1 + 0x56c)) {
        puVar6 = *(uint **)(*(longlong *)(param_1 + 0x560) + lVar10 * 8);
      }
      else {
        puVar6 = (uint *)0x0;
      }
      FUN_18052f640(puVar6,&local_78,iVar2,0,1);
      lVar7 = (longlong)local_74;
      FUN_18052dbc0(*(longlong *)(puVar6 + 8) + (longlong)local_78 * 4,lVar3,local_74);
      FUN_18052dbc0(*(undefined8 *)(puVar6 + 8),lVar3 + lVar7 * 4,local_70);
      uVar5 = *puVar6 + iVar2 & puVar6[2] - 1;
      if ((int)uVar5 < 0) {
        uVar5 = uVar5 + puVar6[2];
      }
      *puVar6 = uVar5;
      if (uVar9 < *(uint *)(param_1 + 0x56c)) {
        lVar7 = *(longlong *)(*(longlong *)(param_1 + 0x560) + lVar10 * 8);
      }
      else {
        lVar7 = 0;
      }
      FUN_18052f640(lVar7,&local_68,iVar2,-(iVar1 + iVar2),1);
      lVar8 = (longlong)local_64;
      FUN_18052dbc0(lVar3,*(longlong *)(lVar7 + 0x20) + (longlong)local_68 * 4,local_64);
      FUN_18052dbc0(lVar3 + lVar8 * 4,*(undefined8 *)(lVar7 + 0x20),local_60);
      uVar9 = uVar9 + 1;
      lVar10 = lVar10 + 1;
    } while (lVar10 < iVar4);
  }
  FUN_18047c500(local_48);
  FUN_18047c500(&local_58);
  return;
}



############ FUN_ 18052c880 size=49 ############

void .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
               (longlong param_1,uint param_2)

{
  if (*(int *)(param_1 + 8) != 3) {
    return;
  }
  if (param_2 < *(uint *)(param_1 + 0x444)) {
    FUN_18115d300(param_1 + 0x400,
                  *(undefined8 *)(*(longlong *)(param_1 + 0x438) + (longlong)(int)param_2 * 8));
    return;
  }
  FUN_18115d300(param_1 + 0x400,0);
  return;
}



############ FUN_ 18052c7f0 size=141 ############

undefined8 *
.?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
          (longlong param_1,undefined8 *param_2,uint param_3)

{
  longlong *plVar1;
  undefined8 *puVar2;
  longlong local_res8 [4];
  
  if ((*(int *)(param_1 + 8) == 3) && (param_3 < *(uint *)(param_1 + 0x444))) {
    plVar1 = *(longlong **)(*(longlong *)(param_1 + 0x438) + (longlong)(int)param_3 * 8);
    if (plVar1 != (longlong *)0x0) {
      if ((undefined **)*plVar1 == Preset::vftable) {
        local_res8[0] = plVar1[2];
        FUN_18049c9e0(param_2,local_res8[0]);
        return param_2;
      }
      puVar2 = (undefined8 *)(*(code *)((undefined **)*plVar1)[4])(plVar1,local_res8);
      FUN_18049c9e0(param_2,*puVar2);
      return param_2;
    }
  }
  *param_2 = &DAT_1821dbf98;
  return param_2;
}



############ FUN_ 1812bffb0 size=55 ############

void FUN_1812bffb0(longlong *param_1,undefined8 param_2,int param_3)

{
  if (*(code **)(*param_1 + 0xf8) == FUN_18052bdd0) {
    FUN_1811fc760(param_1 + 0x67,param_2,(longlong)param_3);
    return;
  }
  (**(code **)(*param_1 + 0xf8))();
  return;
}



############ FUN_ 1804d7000 size=33 ############

longlong FUN_1804d7000(undefined8 param_1,longlong param_2)

{
  *(undefined8 *)(param_2 + 0x38) = 0;
  *(undefined1 **)(param_2 + 0x50) = &DAT_1821dbf98;
  *(undefined1 **)(param_2 + 0x58) = &DAT_1821dbf98;
  *(undefined8 *)(param_2 + 0x40) = 0;
  *(undefined8 *)(param_2 + 0x48) = 0;
  return param_2;
}



############ FUN_ 18052fd40 size=38 ############

void .?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__(longlong param_1)

{
  *(undefined4 *)(param_1 + 0x2404cc) = 0;
                    /* WARNING: Subroutine does not return */
  free(*(void **)(param_1 + 0x2404c0));
}



############ FUN_ 18052ce00 size=98 ############

void .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__(longlong param_1)

{
  float fVar1;
  
  .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__();
  fVar1 = *(float *)(param_1 + 0x3fc);
  *(float *)(param_1 + 0x3fc) = *(float *)(param_1 + 0x24);
  if (fVar1 != *(float *)(param_1 + 0x24)) {
    (**(code **)(*(longlong *)(param_1 + 0x3d8) + 0x20))((longlong *)(param_1 + 0x3d8));
  }
  *(undefined4 *)(param_1 + 0x240458) = 4;
  *(undefined4 *)(param_1 + 0x240467) = 0x1010101;
  *(undefined4 *)(param_1 + 0x24046b) = 0x1010101;
  return;
}



############ FUN_ 18052cec0 size=88 ############

void .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__(longlong param_1)

{
  int iVar1;
  
  iVar1 = *(int *)(param_1 + 0x2404cc);
  while( true ) {
    if (iVar1 < 1) {
      return;
    }
    iVar1 = iVar1 + -1;
    if ((*(int *)(param_1 + 0x2404cc) <= iVar1) &&
       (iVar1 = *(int *)(param_1 + 0x2404cc) + -1, iVar1 < 0)) break;
    FUN_180492ef8(*(undefined8 *)(*(longlong *)(param_1 + 0x2404c0) + (longlong)iVar1 * 8));
  }
  return;
}



############ FUN_ 18052ce90 size=48 ############

undefined1 .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__(longlong param_1)

{
  if ((*(char *)(param_1 + 0x240464) != '\0') && (*(char *)(param_1 + 0x240464) != '\0')) {
    *(undefined1 *)(param_1 + 0x240464) = 0;
    FUN_18052fbd0();
  }
  return 0;
}



############ FUN_ 180546620 size=62 ############

undefined8 *
.?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
          (undefined8 *param_1,ulonglong param_2)

{
  *param_1 = juce::WindowsMediaAudioFormat::vftable;
  FUN_1813affa0();
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    free(param_1);
  }
  return param_1;
}



############ FUN_ 1813afeb0 size=43 ############

undefined8 *
.?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
          (longlong param_1,undefined8 *param_2)

{
  *param_2 = 0;
  param_2[1] = 0;
  FUN_18048c4c0(param_2,*(undefined8 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x1c));
  return param_2;
}



############ FUN_ 1813afef0 size=130 ############

void .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
               (longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  char cVar2;
  undefined8 *puVar3;
  undefined8 *local_20;
  int local_14;
  
  (**(code **)(*param_1 + 8))(param_1,&local_20,param_3,param_4,0xfffffffffffffffe);
  puVar1 = local_20 + local_14;
  puVar3 = local_20;
  while( true ) {
    if (puVar3 == puVar1) {
      FUN_180488c50(&local_20);
                    /* WARNING: Subroutine does not return */
      free(local_20);
    }
    cVar2 = FUN_18123fe10(param_2,*puVar3);
    if (cVar2 != '\0') break;
    puVar3 = puVar3 + 1;
  }
  FUN_180488c50(&local_20);
                    /* WARNING: Subroutine does not return */
  free(local_20);
}



############ FUN_ 1813afd80 size=80 ############

void .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
               (undefined8 param_1,undefined8 param_2)

{
  undefined1 auStack_58 [32];
  void *local_38 [5];
  ulonglong local_10;
  
  local_10 = DAT_182615970 ^ (ulonglong)auStack_58;
  FUN_18124a040(local_38,8);
  FUN_18123c5f0(param_2,local_38);
                    /* WARNING: Subroutine does not return */
  free(local_38[0]);
}



############ FUN_ 18136cbb0 size=108 ############

undefined8 *
.?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
          (undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined8 *puVar2;
  
  uVar1 = FUN_1811316e0(0x90,param_2,param_3,param_4,0xfffffffffffffffe);
  puVar2 = (undefined8 *)FUN_180545be0(uVar1,param_2);
  if ((double)puVar2[1] <= 0.0) {
    if ((char)param_3 == '\0') {
      puVar2[10] = 0;
    }
    (**(code **)*puVar2)(puVar2,1);
    puVar2 = (undefined8 *)0x0;
  }
  return puVar2;
}



############ FUN_ 1813afe40 size=32 ############

undefined8
.?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
          (undefined8 param_1,undefined8 *param_2)

{
  if (param_2 != (undefined8 *)0x0) {
    (**(code **)*param_2)(param_2,1);
  }
  return 0;
}



############ FUN_ 18053e010 size=47 ############

void FUN_18053e010(undefined8 *param_1)

{
  *param_1 = juce::OggReader::vftable;
  FUN_181371350(param_1 + 0xc);
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[0x7c]);
}



############ FUN_ 18052bd00 size=189 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
     ::
     vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
               (longlong param_1,undefined8 param_2,undefined8 *param_3)

{
  uint *_Memory;
  uint uVar1;
  undefined1 uVar2;
  int iVar3;
  undefined1 auStack_58 [32];
  longlong local_38;
  undefined8 local_30;
  undefined8 *local_28;
  ulonglong local_20;
  
  local_30 = 0xfffffffffffffffe;
  local_20 = DAT_182615970 ^ (ulonglong)auStack_58;
  local_38 = *(longlong *)(param_1 + 0x478);
  _Memory = (uint *)(local_38 + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    *_Memory = *_Memory + 1;
    UNLOCK();
  }
  local_28 = param_3;
  iVar3 = FUN_18048cbc0(param_2,local_38);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  if (iVar3 == 0) {
    uVar2 = FUN_180528b30(param_1 + 0x470);
    *(undefined1 *)(param_1 + 0x404) = uVar2;
  }
  (**(code **)(*(longlong *)*param_3 + 0xb0))((longlong *)*param_3,param_3 + 1);
}



############ FUN_ 1805379a0 size=104 ############

void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
     ::
     vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
               (longlong param_1,undefined4 *param_2)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  
  uVar1 = *(uint *)(param_1 + 8);
  lVar2 = *(longlong *)(*(longlong *)(param_1 + 0x10) + 0x168);
  lVar3 = lVar2 + 0x3d8;
  if (uVar1 < *(uint *)(lVar2 + 0x444)) {
    lVar4 = *(longlong *)(*(longlong *)(lVar2 + 0x438) + (longlong)(int)uVar1 * 8);
  }
  else {
    lVar4 = 0;
  }
  *(undefined4 *)(lVar4 + 0x80c) = *param_2;
  if ((int)uVar1 < 0) {
    *(undefined4 *)(lVar2 + 0x240467) = 0x1010101;
    *(undefined4 *)(lVar2 + 0x24046b) = 0x1010101;
    FUN_18052fc30(lVar3);
    return;
  }
  *(undefined1 *)((longlong)(int)uVar1 + 0x24008f + lVar3) = 1;
  FUN_18052fc30(lVar3);
  return;
}



############ FUN_ 180537e90 size=150 ############

void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
     ::
     vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
               (longlong param_1,float *param_2)

{
  longlong lVar1;
  char cVar2;
  int iVar3;
  
  iVar3 = (int)*param_2;
  if ((*(char *)(*(longlong *)(param_1 + 8) + 0x41) != '\0') &&
     (cVar2 = FUN_180528d50(), cVar2 != '\0')) {
    return;
  }
  lVar1 = *(longlong *)(*(longlong *)(param_1 + 8) + 0x168);
  *(undefined1 *)(lVar1 + 0x3cc) = 1;
  *(undefined1 *)(lVar1 + 0x1b6) = 1;
  if (iVar3 == 1) {
    *(undefined4 *)(lVar1 + 0x1ac) = 4;
  }
  else if (iVar3 == 2) {
    *(undefined4 *)(lVar1 + 0x1ac) = 8;
  }
  else if (iVar3 == 3) {
    *(undefined4 *)(lVar1 + 0x1ac) = 0x10;
  }
  else {
    *(undefined4 *)(lVar1 + 0x1ac) = 2;
  }
  (**(code **)(**(longlong **)(*(longlong *)(param_1 + 8) + 0x168) + 0x20))();
  return;
}



############ FUN_ 180537290 size=41 ############

undefined8
.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
::
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
          (undefined8 param_1,undefined8 param_2,float *param_3)

{
  FUN_1812339a0(param_2,(double)*param_3,1);
  return param_2;
}



############ FUN_ 180536610 size=30 ############

undefined8 *
.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
::
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
          (longlong param_1,undefined8 *param_2)

{
  undefined8 uVar1;
  
  *param_2 = std::
             _Func_impl_no_alloc<std::_Binder<std::_Unforced,void_(__cdecl_CloudyAudioProcessor<Soothe2ModuleBase<float,2>,Soothe2ModuleDecryptor,ParameterStates,float>::*)(void)___ptr64,CloudyAudioProcessor<class_Soothe2ModuleBase<float,2>,class_Soothe2ModuleDecryptor,class_ParameterStates,float>*___ptr64>,void>
             ::vftable;
  uVar1 = *(undefined8 *)(param_1 + 0x10);
  param_2[1] = *(undefined8 *)(param_1 + 8);
  param_2[2] = uVar1;
  param_2[3] = *(undefined8 *)(param_1 + 0x18);
  return param_2;
}



############ FUN_ 1805380e0 size=35 ############

void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
     ::
     vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
               (longlong param_1)

{
                    /* WARNING: Could not recover jumptable at 0x000180538100. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(param_1 + 8))
            ((longlong)(int)*(undefined8 *)(param_1 + 0x10) + *(longlong *)(param_1 + 0x18));
  return;
}



############ FUN_ 1805375e0 size=73 ############

void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
     ::
     vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
               (longlong param_1,undefined4 *param_2)

{
  longlong lVar1;
  
  lVar1 = **(longlong **)(param_1 + 8);
  if (*(int *)(lVar1 + 0x444) != 0) {
    *(undefined4 *)(**(longlong **)(lVar1 + 0x438) + 0x80c) = *param_2;
    *(undefined1 *)(lVar1 + 0x240467) = 1;
    FUN_18052fc30();
    return;
  }
  uRam000000000000080c = *param_2;
  *(undefined1 *)(lVar1 + 0x240467) = 1;
  FUN_18052fc30();
  return;
}



############ FUN_ 1805374e0 size=163 ############

void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
     ::
     vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
               (longlong param_1,float *param_2)

{
  longlong *plVar1;
  longlong lVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  
  fVar3 = logf(DAT_1824c43e8);
  plVar1 = *(longlong **)(*(longlong *)(param_1 + 8) + 0x168);
  lVar2 = *plVar1;
  fVar4 = powf(*param_2 * DAT_1824c3cb8,DAT_1824c3ef8);
  fVar5 = logf(DAT_1824c45e4);
  fVar3 = expf(fVar4 * (fVar5 - fVar3) + fVar3);
                    /* WARNING: Could not recover jumptable at 0x000180537580. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(lVar2 + 0x80))(plVar1,fVar3);
  return;
}



############ FUN_ 18052d580 size=47 ############

void .?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__
               (undefined8 *param_1)

{
  *param_1 = AudioProcessingModule<float,2>::vftable;
  *(undefined4 *)((longlong)param_1 + 0x54) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[9]);
}



############ FUN_ 180537b10 size=74 ############

void .?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__
               (longlong param_1,undefined4 *param_2)

{
  longlong lVar1;
  
  lVar1 = **(longlong **)(param_1 + 8);
  if (5 < *(uint *)(lVar1 + 0x444)) {
    *(undefined4 *)(*(longlong *)(*(longlong *)(lVar1 + 0x438) + 0x28) + 0x80c) = *param_2;
    *(undefined1 *)(lVar1 + 0x24046c) = 1;
    FUN_18052fc30();
    return;
  }
  uRam000000000000080c = *param_2;
  *(undefined1 *)(lVar1 + 0x24046c) = 1;
  FUN_18052fc30();
  return;
}



############ FUN_ 1805373c0 size=41 ############

void .?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__
               (longlong param_1,float *param_2)

{
  longlong *plVar1;
  
  plVar1 = *(longlong **)(*(longlong *)(param_1 + 8) + 0x168);
                    /* WARNING: Could not recover jumptable at 0x0001805373e2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(*plVar1 + 0xb8))(plVar1,*param_2 == 0.0);
  return;
}



############ FUN_ 1805365d0 size=30 ############

undefined8 *
.?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__
          (longlong param_1,undefined8 *param_2)

{
  *param_2 = std::
             _Func_impl_no_alloc<<lambda_b1ba72300d1e52c54d4eb8bbba066b01>,float,float,float,float>
             ::vftable;
  param_2[1] = *(undefined8 *)(param_1 + 8);
  *(undefined4 *)(param_2 + 2) = *(undefined4 *)(param_1 + 0x10);
  return param_2;
}



############ FUN_ 180538110 size=44 ############

void .?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__
               (longlong param_1,undefined8 param_2,undefined8 param_3,float *param_4)

{
  float fVar1;
  
  fVar1 = logf(*param_4);
  powf((fVar1 - *(float *)(param_1 + 8)) * *(float *)(param_1 + 0xc),*(float *)(param_1 + 0x10));
  return;
}



############ FUN_ 1805346b0 size=56 ############

void .?AV?$IIRFilterExtended@M$01@@::vtbl___AV__IIRFilterExtended_M_01__(undefined8 *param_1)

{
  FUN_1812a5870(param_1 + 0xc);
  *param_1 = AudioProcessingModule<float,2>::vftable;
  *(undefined4 *)((longlong)param_1 + 0x54) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[9]);
}



############ FUN_ 18052fb50 size=119 ############

void .?AV?$IIRFilterExtended@M$01@@::vtbl___AV__IIRFilterExtended_M_01__
               (longlong param_1,float *param_2,int param_3)

{
  longlong lVar1;
  double dVar2;
  
  lVar1 = (longlong)param_3;
  dVar2 = (double)*param_2 * *(double *)(param_1 + 0xb8) + *(double *)(param_1 + 0x98 + lVar1 * 8);
  *(double *)(param_1 + 0x98 + lVar1 * 8) =
       ((double)*param_2 * *(double *)(param_1 + 0xc0) - dVar2 * *(double *)(param_1 + 0xd0)) +
       *(double *)(param_1 + 0xa8 + lVar1 * 8);
  *(double *)(param_1 + 0xa8 + lVar1 * 8) =
       (double)*param_2 * *(double *)(param_1 + 200) - dVar2 * *(double *)(param_1 + 0xd8);
  *param_2 = (float)dVar2;
  return;
}



############ FUN_ 18052fb30 size=31 ############

void .?AV?$IIRFilterExtended@M$01@@::vtbl___AV__IIRFilterExtended_M_01__(longlong param_1)

{
  *(undefined8 *)(param_1 + 0xa8) = 0;
  *(undefined8 *)(param_1 + 0x98) = 0;
  *(undefined8 *)(param_1 + 0xb0) = 0;
  *(undefined8 *)(param_1 + 0xa0) = 0;
  return;
}



############ FUN_ 180589260 size=278 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(undefined8 *param_1)

{
  void *_Dst;
  int iVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  int iVar5;
  
  *param_1 = Soothe2FilterGraph::vftable;
  iVar5 = 0;
  param_1[0x16] = Soothe2FilterGraph::vftable;
  param_1[0x19] = Soothe2FilterGraph::vftable;
  param_1[0x1c] = Soothe2FilterGraph::vftable;
  param_1[0x1d] = Soothe2FilterGraph::vftable;
  param_1[0x1e] = Soothe2FilterGraph::vftable;
  param_1[0x138d] = Soothe2FilterGraph::vftable;
  lVar2 = *(longlong *)(param_1[0x138e] + 0x168);
  lVar4 = 0;
  iVar1 = *(int *)(lVar2 + 0x2404cc);
  lVar3 = *(longlong *)(lVar2 + 0x2404c0);
  if (0 < iVar1) {
    do {
      if (param_1 + 0x138d == *(undefined8 **)(lVar3 + lVar4 * 8)) {
        _Dst = (void *)(lVar3 + (longlong)iVar5 * 8);
        memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)((iVar1 - iVar5) + -1) << 3);
        *(int *)(lVar2 + 0x2404cc) = *(int *)(lVar2 + 0x2404cc) + -1;
        iVar1 = *(int *)(lVar2 + 0x2404cc);
        iVar5 = 0;
        if (0 < iVar1 * 2) {
          iVar5 = iVar1 * 2;
        }
        if (iVar5 < *(int *)(lVar2 + 0x2404c8)) {
          if (iVar1 < 8) {
            iVar1 = 8;
          }
          if (iVar1 < *(int *)(lVar2 + 0x2404c8)) {
            FUN_18047cb30((longlong *)(lVar2 + 0x2404c0));
          }
        }
        break;
      }
      iVar5 = iVar5 + 1;
      lVar4 = lVar4 + 1;
    } while (lVar4 < iVar1);
  }
  *(undefined4 *)((longlong)param_1 + 0x209c8c) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[0x41390]);
}



############ FUN_ 18058b4d0 size=36 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(longlong param_1)

{
  longlong lVar1;
  
  lVar1 = *(longlong *)(param_1 + 0xf8);
  if (lVar1 != 0) {
    *(undefined4 *)(lVar1 + 0x204) = 0x3f800000;
    FUN_18058cb60(lVar1,*(undefined4 *)(lVar1 + 0x208));
    return;
  }
  return;
}



############ FUN_ 18058b380 size=324 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong param_1,undefined8 *param_2)

{
  longlong lVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined8 *puVar5;
  ulonglong uVar6;
  ulonglong uVar7;
  float fVar8;
  float fStackX_c;
  undefined8 local_38;
  undefined4 uStack_30;
  undefined4 uStack_2c;
  
  lVar1 = *(longlong *)(param_1 + 0xf8);
  if (lVar1 != 0) {
    uVar7 = 0;
    iVar2 = *(int *)(*(longlong *)(param_1 + 0x9c60) + 0x28) + -10;
    iVar3 = *(int *)(*(longlong *)(param_1 + 0x9c60) + 0x2c) + -10;
    iVar4 = 0;
    if (0 < iVar2) {
      iVar4 = iVar2;
    }
    iVar2 = 0;
    if (0 < iVar3) {
      iVar2 = iVar3;
    }
    fVar8 = (float)*param_2;
    if ((((fVar8 < DAT_1824c4360) ||
         (fStackX_c = (float)((ulonglong)*param_2 >> 0x20), fStackX_c < DAT_1824c4360)) ||
        ((float)iVar4 + DAT_1824c4360 <= fVar8)) || ((float)iVar2 + DAT_1824c4360 <= fStackX_c)) {
      puVar5 = *(undefined8 **)(lVar1 + 0xf0);
      *(undefined4 *)(lVar1 + 0x204) = 0;
      uVar6 = (ulonglong)((longlong)(puVar5 + *(int *)(lVar1 + 0xfc)) + (7 - (longlong)puVar5)) >> 3
      ;
      if (puVar5 + *(int *)(lVar1 + 0xfc) < puVar5) {
        uVar6 = uVar7;
      }
      if (uVar6 != 0) {
        do {
          FUN_181342bf0(*puVar5);
          uVar7 = uVar7 + 1;
          puVar5 = puVar5 + 1;
        } while (uVar7 != uVar6);
      }
      uStack_30 = *(undefined4 *)(lVar1 + 0x28);
      uStack_2c = *(undefined4 *)(lVar1 + 0x2c);
      local_38 = 0;
      FUN_181342870(lVar1,&local_38,1);
    }
  }
  return;
}



############ FUN_ 18134bb30 size=93 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong param_1,undefined8 param_2,undefined8 param_3)

{
  longlong lVar1;
  undefined8 uVar2;
  undefined1 local_68 [96];
  
  if (*(longlong **)(param_1 + 0x18) != (longlong *)0x0) {
    lVar1 = **(longlong **)(param_1 + 0x18);
    uVar2 = FUN_181339840(param_2,local_68);
    (**(code **)(lVar1 + 0x40))(*(undefined8 *)(param_1 + 0x18),uVar2,param_3);
  }
  return;
}



############ FUN_ 18134bad0 size=82 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong param_1,undefined8 param_2,undefined4 param_3)

{
  undefined8 uVar1;
  undefined1 local_78 [112];
  
  if (*(longlong *)(param_1 + 0x18) != 0) {
    uVar1 = FUN_181339840(param_2,local_78);
    (**(code **)(**(longlong **)(param_1 + 0x18) + 0x48))
              (*(longlong **)(param_1 + 0x18),uVar1,param_3);
  }
  return;
}



############ FUN_ 18134c900 size=397 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  uint uVar2;
  code *pcVar3;
  longlong *plVar4;
  undefined8 *puVar5;
  longlong lVar6;
  uint *_Memory;
  int iVar7;
  bool bVar8;
  undefined8 *local_res8;
  undefined1 local_res10 [16];
  
  lVar6 = *param_2;
  if (*(longlong *)(param_1 + 8) == lVar6) {
    iVar7 = 0;
  }
  else {
    iVar7 = FUN_18048cbc0(*(undefined8 *)(param_1 + 8),lVar6,param_3,param_4,0xfffffffffffffffe);
  }
  if (iVar7 != 0) {
    if ((*(uint *)(lVar6 + -0x10) & 0x30000000) == 0) {
      LOCK();
      *(int *)(lVar6 + -0x10) = *(int *)(lVar6 + -0x10) + 1;
      UNLOCK();
    }
    LOCK();
    lVar6 = *(longlong *)(param_1 + 8);
    *(longlong *)(param_1 + 8) = *param_2;
    UNLOCK();
    _Memory = (uint *)(lVar6 + -0x10);
    if ((*_Memory & 0x30000000) == 0) {
      LOCK();
      uVar2 = *_Memory;
      *_Memory = *_Memory - 1;
      UNLOCK();
      if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
        free(_Memory);
      }
    }
    if (((*(byte *)(param_1 + 0xa8) & 1) != 0) &&
       (plVar4 = (longlong *)FUN_1812d2bd0(param_1), plVar4 != (longlong *)0x0)) {
      if ((undefined **)*plVar4 == juce::HWNDComponentPeer::vftable) {
        puVar5 = (undefined8 *)FUN_18049a930(local_res10);
        SetWindowTextW((HWND)plVar4[0x11],(LPCWSTR)*puVar5);
      }
      else {
        (*(code *)((undefined **)*plVar4)[3])(plVar4,param_2);
      }
    }
    FUN_1804de690(&local_res8,param_1);
    puVar5 = local_res8;
    iVar7 = *(int *)(param_1 + 0x8c);
    bVar8 = local_res8 == (undefined8 *)0x0;
    while( true ) {
      if (bVar8) {
        lVar6 = 0;
      }
      else {
        lVar6 = puVar5[2];
      }
      if ((lVar6 == 0) || (iVar7 < 1)) break;
      iVar7 = iVar7 + -1;
      if ((*(int *)(param_1 + 0x8c) <= iVar7) && (iVar7 = *(int *)(param_1 + 0x8c) + -1, iVar7 < 0))
      break;
      plVar4 = *(longlong **)(*(longlong *)(param_1 + 0x80) + (longlong)iVar7 * 8);
      pcVar3 = *(code **)(*plVar4 + 0x30);
      if (pcVar3 != .?AVSoothe2Grid@@::vtbl___AVSoothe2Grid__) {
        (*pcVar3)(plVar4,param_1);
      }
    }
    if (puVar5 != (undefined8 *)0x0) {
      LOCK();
      piVar1 = (int *)(puVar5 + 1);
      iVar7 = *piVar1;
      *piVar1 = *piVar1 + -1;
      UNLOCK();
      if (iVar7 == 1) {
        (**(code **)*local_res8)(local_res8,1);
      }
    }
  }
  return;
}



############ FUN_ 18134c760 size=397 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong param_1,byte param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  int iVar2;
  undefined8 *puVar3;
  longlong lVar4;
  longlong *plVar5;
  longlong lVar6;
  bool bVar7;
  undefined8 *local_res8;
  undefined4 local_28;
  undefined4 uStack_24;
  undefined4 uStack_20;
  undefined4 uStack_1c;
  
  if ((*(byte *)(param_1 + 0xa8) >> 1 & 1) != param_2) {
    FUN_1804de690(&local_res8,param_1,param_3,param_4,0xfffffffffffffffe);
    *(byte *)(param_1 + 0xa8) = *(byte *)(param_1 + 0xa8) & 0xfd;
    *(byte *)(param_1 + 0xa8) = *(byte *)(param_1 + 0xa8) | (param_2 & 1) * '\x02';
    lVar6 = 0;
    if (param_2 == 0) {
      FUN_181342b10(param_1);
    }
    else {
      uStack_1c = *(undefined4 *)(param_1 + 0x2c);
      uStack_20 = *(undefined4 *)(param_1 + 0x28);
      local_28 = 0;
      uStack_24 = 0;
      FUN_181342870(param_1,&local_28,1);
    }
    FUN_18133f790();
    if (param_2 == 0) {
      FUN_1804e5060(param_1);
      for (lVar4 = DAT_182673708; lVar4 != param_1; lVar4 = *(longlong *)(lVar4 + 0x18)) {
        if (lVar4 == 0) goto LAB_18134c84f;
      }
      if (*(longlong *)(param_1 + 0x18) == 0) {
        FUN_18133eae0(1);
      }
      else {
        FUN_18133ed60(*(longlong *)(param_1 + 0x18),2,1);
      }
    }
LAB_18134c84f:
    puVar3 = local_res8;
    bVar7 = local_res8 != (undefined8 *)0x0;
    lVar4 = lVar6;
    if (bVar7) {
      lVar4 = local_res8[2];
    }
    if (lVar4 != 0) {
      FUN_1813452b0(param_1);
      if (bVar7) {
        lVar6 = puVar3[2];
      }
      if (((lVar6 != 0) && ((*(byte *)(param_1 + 0xa8) & 1) != 0)) &&
         (plVar5 = (longlong *)FUN_18134c2e0(param_1), plVar5 != (longlong *)0x0)) {
        (**(code **)(*plVar5 + 0x10))(plVar5,param_2);
        FUN_181343670(param_1);
      }
    }
    if (puVar3 != (undefined8 *)0x0) {
      LOCK();
      piVar1 = (int *)(puVar3 + 1);
      iVar2 = *piVar1;
      *piVar1 = *piVar1 + -1;
      UNLOCK();
      if (iVar2 == 1) {
        (**(code **)*local_res8)(local_res8,1);
      }
    }
  }
  return;
}



############ FUN_ 18134c3a0 size=933 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong *param_1,uint param_2,undefined8 param_3)

{
  int *piVar1;
  undefined8 *puVar2;
  int iVar3;
  ulonglong uVar4;
  longlong lVar5;
  undefined8 *puVar6;
  char cVar7;
  int iVar8;
  longlong *plVar9;
  ulonglong *puVar10;
  ulonglong uVar11;
  undefined4 uVar12;
  longlong *plVar13;
  undefined8 *puVar14;
  ulonglong uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  char local_res20;
  undefined8 *local_88;
  longlong local_80;
  undefined8 local_78;
  undefined1 local_70 [8];
  longlong *local_68;
  undefined8 local_60;
  undefined8 local_58;
  undefined8 uStack_50;
  
  local_78 = 0xfffffffffffffffe;
  if ((*(byte *)(param_1 + 0x15) >> 2 & 1) == 0) {
    param_2 = param_2 | 0x40000000;
  }
  else {
    param_2 = param_2 & 0xbfffffff;
  }
  plVar9 = (longlong *)FUN_1812d2bd0();
  if ((plVar9 != (longlong *)0x0) && (param_2 == *(uint *)(plVar9 + 2))) {
    return;
  }
  FUN_1804de690(&local_88,param_1);
  uVar15 = 0;
  uVar4 = uVar15;
  puVar6 = local_88;
  for (plVar13 = param_1; local_88 = puVar6, plVar13 != (longlong *)0x0;
      plVar13 = (longlong *)plVar13[3]) {
    puVar10 = (ulonglong *)FUN_18051e290(local_70,plVar13,uVar4);
    uVar4 = *puVar10;
    puVar6 = local_88;
  }
  cVar7 = '\0';
  local_res20 = '\0';
  local_80 = 0;
  uVar16 = 0;
  uVar17 = 0;
  uVar18 = 0;
  uVar19 = 0;
  local_58 = 0;
  uStack_50 = 0;
  iVar8 = -1;
  if (plVar9 != (longlong *)0x0) {
    local_68 = plVar9;
    cVar7 = (**(code **)(*plVar9 + 0x78))(plVar9);
    local_res20 = (**(code **)(*plVar9 + 0x68))(plVar9);
    local_80 = plVar9[5];
    uVar16 = *(undefined4 *)((longlong)plVar9 + 0x14);
    uVar17 = (undefined4)plVar9[3];
    local_58 = *(undefined8 *)((longlong)plVar9 + 0x14);
    uVar18 = *(undefined4 *)((longlong)plVar9 + 0x1c);
    uVar19 = (undefined4)plVar9[4];
    uStack_50 = *(undefined8 *)((longlong)plVar9 + 0x1c);
    iVar8 = (**(code **)(*plVar9 + 0x100))(plVar9);
    *(byte *)(param_1 + 0x15) = *(byte *)(param_1 + 0x15) & 0xfe;
    if (DAT_182673700 == 0) {
      local_60 = FUN_1811316e0(0x130);
      DAT_182673700 = FUN_18133c6c0(local_60);
    }
    FUN_180488600(DAT_182673700 + 0x58,param_1);
    FUN_181343670(param_1);
    uVar11 = uVar15;
    if (puVar6 != (undefined8 *)0x0) {
      uVar11 = puVar6[2];
    }
    if (uVar11 == 0) {
      (**(code **)*plVar9)(plVar9,1);
      goto LAB_18134c6f7;
    }
    FUN_18134bfe0(param_1,uVar4 & 0xffffffff,uVar4 >> 0x20,(int)param_1[5],
                  *(undefined4 *)((longlong)param_1 + 0x2c));
    (**(code **)*plVar9)(plVar9,1);
  }
  lVar5 = param_1[3];
  if (lVar5 != 0) {
    plVar9 = *(longlong **)(lVar5 + 0x40);
    for (plVar13 = plVar9; plVar13 != plVar9 + *(int *)(lVar5 + 0x4c); plVar13 = plVar13 + 1) {
      if (param_1 == (longlong *)*plVar13) {
        uVar12 = (undefined4)((longlong)plVar13 - (longlong)plVar9 >> 3);
        goto LAB_18134c588;
      }
    }
    uVar12 = 0xffffffff;
LAB_18134c588:
    FUN_181343a90(lVar5,uVar12,1);
  }
  if (puVar6 != (undefined8 *)0x0) {
    uVar15 = puVar6[2];
  }
  if (uVar15 != 0) {
    *(byte *)(param_1 + 0x15) = *(byte *)(param_1 + 0x15) | 1;
    plVar9 = (longlong *)(**(code **)(*param_1 + 0x150))(param_1,param_2,param_3);
    if (DAT_182673700 == 0) {
      local_60 = FUN_1811316e0(0x130);
      DAT_182673700 = FUN_18133c6c0(local_60);
    }
    lVar5 = DAT_182673700;
    plVar13 = (longlong *)(DAT_182673700 + 0x58);
    puVar14 = (undefined8 *)*plVar13;
    iVar3 = *(int *)(DAT_182673700 + 100);
    puVar2 = puVar14 + iVar3;
    for (; puVar14 != puVar2; puVar14 = puVar14 + 1) {
      if (param_1 == (longlong *)*puVar14) goto LAB_18134c651;
    }
    if (*(int *)(DAT_182673700 + 0x60) < iVar3 + 1) {
      FUN_18047cb30(plVar13,iVar3 + 9 + (iVar3 + 1) / 2 & 0xfffffff8);
    }
    iVar3 = *(int *)(lVar5 + 100);
    *(int *)(lVar5 + 100) = iVar3 + 1;
    *(longlong **)(*plVar13 + (longlong)iVar3 * 8) = param_1;
LAB_18134c651:
    param_1[4] = uVar4;
    FUN_18134b470(plVar9);
    if (-1 < iVar8) {
      (**(code **)(*plVar9 + 0x108))(plVar9,iVar8);
    }
    (**(code **)(*plVar9 + 0x10))(plVar9,*(byte *)(param_1 + 0x15) >> 1 & 1);
    plVar9 = (longlong *)FUN_1812d2bd0(param_1);
    if (plVar9 != (longlong *)0x0) {
      if (cVar7 != '\0') {
        (**(code **)(*plVar9 + 0x70))(plVar9,1);
        *(undefined4 *)((longlong)plVar9 + 0x14) = uVar16;
        *(undefined4 *)(plVar9 + 3) = uVar17;
        *(undefined4 *)((longlong)plVar9 + 0x1c) = uVar18;
        *(undefined4 *)(plVar9 + 4) = uVar19;
      }
      if (local_res20 != '\0') {
        (**(code **)(*plVar9 + 0x60))(plVar9,1);
      }
      if ((*(byte *)((longlong)param_1 + 0xa9) & 1) != 0) {
        (**(code **)(*plVar9 + 0xa8))(plVar9,1);
      }
      plVar9[5] = local_80;
      FUN_18134bdf0(param_1);
      FUN_181343670(param_1);
    }
  }
LAB_18134c6f7:
  if (puVar6 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar6 + 1);
    iVar8 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar8 == 1) {
      (**(code **)*local_88)(local_88,1);
    }
  }
  return;
}



############ FUN_ 18134c270 size=69 ############

undefined4 .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(void)

{
  undefined8 uVar1;
  
  if (DAT_182673700 == 0) {
    uVar1 = FUN_1811316e0(0x130);
    DAT_182673700 = FUN_18133c6c0(uVar1);
  }
  return *(undefined4 *)(DAT_182673700 + 0xc0);
}



############ FUN_ 1805689c0 size=60 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(longlong *param_1)

{
  if ((char)param_1[0x18] == '\0') {
    FUN_180569ff0();
    if (param_1[0x17] != 0) {
      (**(code **)(*param_1 + 0x158))(param_1);
      *(undefined1 *)(param_1 + 0x18) = 1;
    }
  }
  return;
}



############ FUN_ 18134be30 size=195 ############

uint .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong param_1,undefined4 param_2,undefined4 param_3)

{
  longlong *plVar1;
  ulonglong uVar2;
  char cVar3;
  uint uVar4;
  ulonglong *puVar5;
  longlong lVar6;
  undefined1 local_res20 [8];
  
  uVar4 = 0;
  if ((*(byte *)(param_1 + 0xa8) & 8) == 0) {
    return 1;
  }
  if ((*(byte *)(param_1 + 0xa8) & 0x10) != 0) {
    uVar4 = *(int *)(param_1 + 0x4c) - 1;
    lVar6 = (longlong)(int)uVar4;
    if (-1 < (int)uVar4) {
      do {
        plVar1 = *(longlong **)(*(longlong *)(param_1 + 0x40) + lVar6 * 8);
        if ((*(byte *)(plVar1 + 0x15) & 2) != 0) {
          puVar5 = (ulonglong *)FUN_18051e060(local_res20,plVar1,CONCAT44(param_3,param_2));
          uVar2 = *puVar5;
          if ((((uint)uVar2 < *(uint *)(plVar1 + 5)) &&
              ((uint)(uVar2 >> 0x20) < *(uint *)((longlong)plVar1 + 0x2c))) &&
             (cVar3 = (**(code **)(*plVar1 + 0x98))(plVar1,uVar2 & 0xffffffff,uVar2 >> 0x20),
             cVar3 != '\0')) {
            uVar4 = 1;
          }
          else {
            uVar4 = 0;
          }
          if ((char)uVar4 != '\0') {
            return 1;
          }
        }
        lVar6 = lVar6 + -1;
      } while (-1 < lVar6);
    }
  }
  return uVar4 & 0xffffff00;
}



############ FUN_ 18134bcf0 size=66 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(longlong param_1)

{
  undefined8 *puVar1;
  
  if (((*(byte *)(param_1 + 0xa8) & 0x40) == 0) &&
     (*(longlong **)(param_1 + 0x18) != (longlong *)0x0)) {
                    /* WARNING: Could not recover jumptable at 0x00018134bd0d. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(**(longlong **)(param_1 + 0x18) + 0xa8))();
    return;
  }
  puVar1 = (undefined8 *)FUN_1811316e0(8);
  *puVar1 = juce::KeyboardFocusTraverser::vftable;
  return;
}



############ FUN_ 18134bc50 size=126 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(longlong param_1)

{
  longlong *plVar1;
  undefined8 local_18;
  undefined4 uStack_10;
  undefined4 uStack_c;
  
  if ((*(byte *)(param_1 + 0xa8) & 1) == 0) {
    uStack_10 = *(undefined4 *)(param_1 + 0x28);
    uStack_c = *(undefined4 *)(param_1 + 0x2c);
    local_18 = 0;
    FUN_181342870(0,&local_18,1);
  }
  else {
    plVar1 = (longlong *)FUN_1812d2bd0();
    if (plVar1 != (longlong *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x00018134bc94. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(*plVar1 + 0xf0))
                (plVar1,(float)(int)(0xff - (uint)*(byte *)(param_1 + 0xac)) / DAT_1824c4548);
      return;
    }
  }
  return;
}



############ FUN_ 18134bc20 size=34 ############

longlong *
.?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
          (longlong param_1,longlong *param_2)

{
  longlong lVar1;
  
  lVar1 = *(longlong *)(param_1 + 0x58);
  if (lVar1 == 0) {
    *param_2 = 0;
    return param_2;
  }
  LOCK();
  *(int *)(lVar1 + 0x10) = *(int *)(lVar1 + 0x10) + 1;
  UNLOCK();
  *param_2 = lVar1;
  return param_2;
}



############ FUN_ 18058ad80 size=452 ############

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

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong *param_1,undefined8 param_2)

{
  float fVar1;
  float fVar2;
  longlong lVar3;
  byte *pbVar4;
  int iVar5;
  float local_68 [3];
  undefined8 local_5c;
  undefined8 uStack_54;
  undefined8 local_4c;
  
  (**(code **)(*param_1 + 0x160))();
  fVar2 = DAT_1824c4548;
  fVar1 = DAT_1824c3c8c;
  iVar5 = 0;
  if (0 < (int)param_1[0x130f]) {
    pbVar4 = (byte *)((longlong)param_1 + 0x99c7);
    do {
      if (fVar1 <= (float)*pbVar4 / fVar2) {
        FUN_181296c00(param_2,*(undefined4 *)((longlong)param_1 + (longlong)iVar5 * 4 + 0x99c4));
        local_4c = 0x3f800000;
        local_68[0] = 1.0;
        local_68[1] = 0.0;
        local_68[2] = 0.0;
        local_5c = _DAT_1824c4780;
        uStack_54 = _UNK_1824c4788;
        FUN_181295d20(param_2,param_1 + ((longlong)iVar5 + 0x3d2) * 5,local_68,&local_5c);
      }
      iVar5 = iVar5 + 1;
      pbVar4 = pbVar4 + 4;
    } while (iVar5 < (int)param_1[0x130f]);
  }
  FUN_181296c00(param_2,(int)param_1[0x1338]);
  local_5c = _DAT_1824c4780;
  uStack_54 = _UNK_1824c4788;
  local_4c = 0x3f800000;
  if (*(code **)(param_1[0x16] + 8) == .?AUSoothe2VertexData@@::vtbl___AUSoothe2VertexData__) {
    if (param_1[0x17] == 0) {
      FUN_180569ff0(param_1);
    }
    lVar3 = param_1[0x17];
  }
  else {
    lVar3 = (**(code **)(param_1[0x16] + 8))(param_1 + 0x16);
  }
  local_68[0] = *(float *)((longlong)param_1 + 0x99f4) * *(float *)(lVar3 + 0x88);
  local_68[1] = 0.0;
  local_68[2] = 0.0;
  FUN_181295d20(param_2,param_1 + 0x1315,local_68,&local_5c);
  if (*(code **)(*param_1 + 0x168) != _guard_check_icall) {
    (**(code **)(*param_1 + 0x168))(param_1,param_2);
    return;
  }
  return;
}



############ FUN_ 18058af50 size=179 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(longlong param_1)

{
  float fVar1;
  
  if (*(longlong *)(param_1 + 0xf8) != 0) {
    FUN_18134bfe0(*(longlong *)(param_1 + 0xf8),0,0,*(undefined4 *)(param_1 + 0x28),
                  *(undefined4 *)(param_1 + 0x2c));
  }
  fVar1 = DAT_1824c3d8c;
  *(undefined4 *)(param_1 + 0x99f8) = 0x41200000;
  *(float *)(param_1 + 0x99dc) = (float)*(int *)(param_1 + 0x2c) * fVar1;
  *(float *)(param_1 + 0x99e0) = (float)*(int *)(param_1 + 0x28) / (float)*(int *)(param_1 + 0x9890)
  ;
  *(float *)(param_1 + 0x99fc) =
       (fVar1 / *(float *)(param_1 + 0x99e8)) * (float)*(int *)(param_1 + 0x9894);
  return;
}



############ FUN_ 18134b940 size=196 ############

void .?AV?$FilterGraph@M$05$0CAA@@@::vtbl___AV__FilterGraph_M_05_0CAA___
               (undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  longlong *plVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  if (DAT_182673c20 == (undefined8 *)0x0) {
    puVar1 = (undefined8 *)FUN_1811316e0(0x28);
    FUN_1812a59f0(puVar1);
    FUN_1812a7230(puVar1 + 2);
    *puVar1 = juce::ModalComponentManager::vftable;
    puVar1[2] = juce::ModalComponentManager::vftable;
    puVar1[3] = 0;
    puVar1[4] = 0;
    DAT_182673c20 = puVar1;
  }
  FUN_18133b010(DAT_182673c20,1,param_3,param_4,uVar3);
  plVar2 = (longlong *)FUN_18134adf0(param_1);
  if (*(code **)(*plVar2 + 0x78) == FUN_1812c6070) {
                    /* WARNING: Could not recover jumptable at 0x00018134b9e5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    MessageBeep(0);
    return;
  }
  (**(code **)(*plVar2 + 0x78))(plVar2);
  return;
}



############ FUN_ 18134b870 size=87 ############

void .?AV?$FilterGraphGrid@M@@::vtbl___AV__FilterGraphGrid_M__
               (undefined8 param_1,undefined4 param_2,undefined8 param_3)

{
  undefined8 uVar1;
  
  uVar1 = FUN_1811316e0(0x158);
  FUN_18050dd00(uVar1,param_1,param_2,param_3,0);
  return;
}



############ FUN_ 181a06ff0 size=323 ############

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

void .?AVSoothe2FilterGraph@@::vtbl___AVSoothe2FilterGraph__(longlong param_1,undefined8 param_2)

{
  float fVar1;
  longlong lVar2;
  byte local_res8;
  byte local_res9;
  byte local_resa;
  undefined1 local_resb;
  float local_48 [4];
  undefined8 local_38;
  undefined8 uStack_30;
  ulonglong local_28;
  
  if (*(int *)(*(longlong *)(*(longlong *)(param_1 + 0x9c70) + 0x168) + 0x30) != 1) {
    FUN_18049fa40(local_48,DAT_18262e938);
    FUN_18049fbb0(&local_res8,local_48[0],DAT_1824c3d18,local_48[2],
                  (char)((uint)DAT_18262e938 >> 0x18));
    FUN_181296c00(param_2,CONCAT13(local_resb,
                                   CONCAT12((char)(int)((float)local_resa * DAT_1824c3e14),
                                            CONCAT11((char)(int)((float)local_res9 * DAT_1824c3e14),
                                                     (char)(int)((float)local_res8 * DAT_1824c3e14))
                                           )));
    fVar1 = *(float *)(param_1 + 0x99f4);
    local_38 = _DAT_1824c4780;
    uStack_30 = _UNK_1824c4788;
    local_28 = (ulonglong)DAT_1824c3ea4;
    lVar2 = (**(code **)(*(longlong *)(param_1 + 0xb0) + 8))();
    local_48[0] = fVar1 * *(float *)(lVar2 + 0x88);
    local_48[1] = 0.0;
    local_48[2] = 0.0;
    FUN_181295d20(param_2,param_1 + 0x209c80,local_48,&local_38);
  }
  return;
}



############ FUN_ 181a07170 size=1813 ############

void .?AVSoothe2FilterGraph@@::vtbl___AVSoothe2FilterGraph__(longlong param_1)

{
  float fVar1;
  float fVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  longlong *plVar5;
  void *_Memory;
  double dVar6;
  char cVar7;
  int iVar8;
  undefined8 *puVar9;
  undefined8 uVar10;
  float *pfVar11;
  int iVar12;
  char *pcVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  undefined8 *puVar17;
  float *pfVar18;
  float *pfVar19;
  double dVar20;
  float fVar21;
  float fVar22;
  int local_res8 [2];
  int local_res10 [2];
  longlong local_res18;
  float *local_res20;
  void *local_188;
  undefined4 local_17c;
  undefined1 local_138 [24];
  float local_120 [56];
  
  iVar14 = 0;
  if (0 < *(int *)(param_1 + 0x9878)) {
    pcVar13 = (char *)(param_1 + 0x9a02);
    puVar17 = (undefined8 *)(param_1 + 0x9c8);
    do {
      if (*pcVar13 != '\0') {
        plVar5 = *(longlong **)(param_1 + 0x140);
        local_res10[0] = iVar14;
        if (plVar5 == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
          std::_Xbad_function_call();
        }
        if ((undefined **)*plVar5 ==
            std::
            _Func_impl_no_alloc<std::function<float*___ptr64___cdecl(int)>,float_const*___ptr64,int>
            ::vftable) {
          plVar5 = (longlong *)plVar5[8];
          local_res8[0] = iVar14;
          if (plVar5 == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
            std::_Xbad_function_call();
          }
          uVar10 = (**(code **)(*plVar5 + 0x10))(plVar5,local_res8);
          *puVar17 = uVar10;
        }
        else {
          uVar10 = (*(code *)((undefined **)*plVar5)[2])(plVar5,local_res10);
          *puVar17 = uVar10;
        }
      }
      iVar14 = iVar14 + 1;
      puVar17 = puVar17 + 1;
      pcVar13 = pcVar13 + 1;
    } while (iVar14 < *(int *)(param_1 + 0x9878));
  }
  fVar2 = DAT_1824c41e0;
  fVar1 = DAT_1824c3ea4;
  pfVar11 = (float *)(*(longlong *)(param_1 + 0x9c78) + 0x2400d8);
  local_res10[0] = *(int *)(*(longlong *)(*(longlong *)(param_1 + 0x9c70) + 0x168) + 0x30);
  local_res20 = pfVar11;
  if (local_res10[0] == 2) {
    iVar14 = 0;
    do {
      iVar12 = 0;
      if (0 < *(int *)(param_1 + 0x9878)) {
        local_res18 = param_1 + 0x9c8;
        pfVar18 = pfVar11;
        do {
          if (iVar12 == 0) {
            iVar14 = __std_type_info_compare(0x182650db8,0x182650db8);
            if (iVar14 != 0) {
                    /* WARNING: Subroutine does not return */
              thunk_FUN_181ba94b0();
            }
                    /* WARNING: Subroutine does not return */
            thunk_FUN_181ba94b0();
          }
          plVar5 = *(longlong **)(param_1 + 0x180);
          local_res8[0] = iVar12;
          if (plVar5 == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
            std::_Xbad_function_call();
          }
          cVar7 = (**(code **)(*plVar5 + 0x10))(plVar5,local_res8);
          if (cVar7 == '\0') {
            if (iVar14 == 0) {
              fVar21 = fVar1 - *pfVar18;
            }
            else {
              fVar21 = *pfVar18;
            }
            uVar3 = *(undefined4 *)(param_1 + 0x9890);
            fVar22 = fVar21 * fVar2;
            if (fVar1 <= fVar21 * fVar2) {
              fVar22 = fVar1;
            }
            iVar14 = __std_type_info_compare(0x182650db8,0x182650db8);
            if (iVar14 != 0) {
                    /* WARNING: Subroutine does not return */
              thunk_FUN_181ba94b0((double)(fVar1 - fVar22),param_1 + 0x209ca8,uVar3);
            }
                    /* WARNING: Subroutine does not return */
            thunk_FUN_181ba94b0();
          }
          local_res18 = local_res18 + 8;
          iVar12 = iVar12 + 1;
          pfVar18 = pfVar18 + 1;
          pfVar11 = local_res20;
        } while (iVar12 < *(int *)(param_1 + 0x9878));
      }
      iVar14 = iVar14 + 1;
    } while (iVar14 < 2);
  }
  else {
    iVar14 = 0;
    if (0 < *(int *)(param_1 + 0x9878)) {
      puVar17 = (undefined8 *)(param_1 + 0x9c8);
      do {
        plVar5 = *(longlong **)(param_1 + 0x180);
        local_res8[0] = iVar14;
        if (iVar14 == 0) {
          if (plVar5 == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
            std::_Xbad_function_call();
          }
          cVar7 = (**(code **)(*plVar5 + 0x10))(plVar5,local_res8);
          uVar3 = *(undefined4 *)(param_1 + 0x9890);
          if (cVar7 != '\0') {
            iVar14 = __std_type_info_compare(0x182650db8,0x182650db8);
            if (iVar14 != 0) {
                    /* WARNING: Subroutine does not return */
              thunk_FUN_181ba94b0();
            }
                    /* WARNING: Subroutine does not return */
            thunk_FUN_181ba94b0();
          }
          uVar10 = *(undefined8 *)(param_1 + 0x9c8);
          iVar14 = __std_type_info_compare(0x182650db8,0x182650db8);
          if (iVar14 != 0) {
                    /* WARNING: Subroutine does not return */
            thunk_FUN_181ba94b0(uVar10,param_1 + 0x9c80,uVar3);
          }
                    /* WARNING: Subroutine does not return */
          thunk_FUN_181ba94b0();
        }
        if (plVar5 == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
          std::_Xbad_function_call();
        }
        cVar7 = (**(code **)(*plVar5 + 0x10))(plVar5,local_res8);
        if (cVar7 == '\0') {
          uVar3 = *(undefined4 *)(param_1 + 0x9890);
          uVar10 = *puVar17;
          iVar14 = __std_type_info_compare(0x182650db8,0x182650db8);
          if (iVar14 != 0) {
                    /* WARNING: Subroutine does not return */
            thunk_FUN_181ba94b0(uVar10,param_1 + 0x9c80,uVar3);
          }
                    /* WARNING: Subroutine does not return */
          thunk_FUN_181ba94b0();
        }
        iVar14 = iVar14 + 1;
        puVar17 = puVar17 + 1;
      } while (iVar14 < *(int *)(param_1 + 0x9878));
    }
  }
  *(undefined4 *)(param_1 + 0x9a10) = *(undefined4 *)(param_1 + 0x99dc);
  *(undefined4 *)(param_1 + 0x9a0c) = 0;
  iVar14 = *(int *)(param_1 + 0x2c);
  fVar1 = *(float *)(param_1 + 0x9b14);
  fVar2 = *(float *)(param_1 + 0x9b10);
  local_res18 = CONCAT44(local_res18._4_4_,fVar1);
  _eh_vector_constructor_iterator_(local_138,0x28,2,FUN_18129e350,FUN_18129e330);
  dVar6 = DAT_1824c42b0;
  local_res20 = (float *)(longlong)local_res10[0];
  local_res8[0] = 0;
  if (0 < local_res10[0]) {
    pfVar18 = (float *)(param_1 + 0x9c84);
    pfVar11 = local_120;
    do {
      iVar12 = local_res8[0];
      iVar15 = *(int *)(param_1 + 0x9894) + -1;
      dVar20 = log10((double)pfVar18[-1]);
      iVar8 = (int)((((float)(dVar20 * dVar6) - fVar2) * ((float)iVar15 - 0.0)) / (fVar1 - fVar2) +
                   0.0);
      iVar16 = 0;
      if ((-1 < iVar8) && (iVar16 = iVar8, iVar15 < iVar8)) {
        iVar16 = iVar15;
      }
      fVar21 = (float)iVar14 - (float)iVar14 * *(float *)(param_1 + 0x19f8 + (longlong)iVar16 * 4);
      if (pfVar11[-3] == 0.0) {
        *pfVar11 = fVar21;
        pfVar11[-2] = 0.0;
        pfVar11[-1] = 0.0;
LAB_181a0775d:
        pfVar11[1] = fVar21;
      }
      else {
        if (pfVar11[-2] <= 0.0) {
          if (pfVar11[-1] <= 0.0 && pfVar11[-1] != 0.0) {
            pfVar11[-1] = 0.0;
          }
        }
        else {
          pfVar11[-2] = 0.0;
        }
        if (*pfVar11 <= fVar21) {
          if (pfVar11[1] <= fVar21 && fVar21 != pfVar11[1]) goto LAB_181a0775d;
        }
        else {
          *pfVar11 = fVar21;
        }
      }
      FUN_1804b02a0(pfVar11 + -6,&DAT_1821df344,0);
      iVar8 = 1;
      iVar16 = iVar12;
      if (1 < *(int *)(param_1 + 0x9890)) {
        pfVar19 = pfVar18;
        do {
          log10((double)*pfVar19);
          FUN_18129ddd0(local_138 + (longlong)iVar12 * 0x28);
          iVar8 = iVar8 + 1;
          pfVar19 = pfVar19 + 1;
          iVar16 = local_res8[0];
        } while (iVar8 < *(int *)(param_1 + 0x9890));
      }
      local_res8[0] = iVar16 + 1;
      pfVar11 = pfVar11 + 10;
      pfVar18 = pfVar18 + 0x200;
      local_res20 = (float *)((longlong)local_res20 + -1);
    } while (local_res20 != (float *)0x0);
    local_res20 = (float *)0x0;
  }
  puVar9 = (undefined8 *)FUN_18129a910(local_138,&local_188,*(undefined4 *)(param_1 + 0x99f8));
  puVar17 = (undefined8 *)(param_1 + 0x98a8);
  if (puVar17 == puVar9) {
    uVar10 = puVar9[3];
    *(undefined8 *)(param_1 + 0x98b8) = puVar9[2];
    *(undefined8 *)(param_1 + 0x98c0) = uVar10;
    *(undefined1 *)(param_1 + 0x98c8) = *(undefined1 *)(puVar9 + 4);
    local_17c = 0;
                    /* WARNING: Subroutine does not return */
    free(local_188);
  }
  uVar10 = *puVar9;
  *puVar9 = 0;
  uVar3 = *(undefined4 *)(puVar9 + 1);
  uVar4 = *(undefined4 *)((longlong)puVar9 + 0xc);
  puVar9[1] = 0;
  _Memory = (void *)*puVar17;
  *puVar17 = uVar10;
  *(undefined4 *)(param_1 + 0x98b0) = uVar3;
  *(undefined4 *)(param_1 + 0x98b4) = uVar4;
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 18058d230 size=47 ############

void .?AV?$LowPassFilter@M$0BA@$01@@::vtbl___AV__LowPassFilter_M_0BA__01__(undefined8 *param_1)

{
  *param_1 = AudioProcessingModule<float,2>::vftable;
  *(undefined4 *)((longlong)param_1 + 0x54) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[9]);
}



############ FUN_ 18058c850 size=83 ############

void .?AV?$LowPassFilter@M$0BA@$01@@::vtbl___AV__LowPassFilter_M_0BA__01__
               (longlong param_1,float *param_2,int param_3)

{
  uint uVar1;
  float *pfVar2;
  float fVar3;
  
  pfVar2 = (float *)(param_1 + 0x6c + (longlong)param_3 * 0x40);
  uVar1 = 0;
  if (*(int *)(param_1 + 100) != 0) {
    do {
      uVar1 = uVar1 + 1;
      fVar3 = *param_2 * *(float *)(param_1 + 0xf0);
      *param_2 = fVar3;
      fVar3 = *(float *)(param_1 + 0x60) * *pfVar2 + fVar3;
      *param_2 = fVar3;
      *pfVar2 = fVar3;
      pfVar2 = pfVar2 + 1;
    } while (uVar1 < *(uint *)(param_1 + 100));
  }
  return;
}



############ FUN_ 18058c8b0 size=74 ############

void .?AV?$LowPassFilter@M$0BA@$01@@::vtbl___AV__LowPassFilter_M_0BA__01__(longlong param_1)

{
  double dVar1;
  float fVar2;
  
  fVar2 = expf((*(float *)(param_1 + 0x68) / *(float *)(param_1 + 0x24)) *
               *(float *)(param_1 + 0xf4));
  dVar1 = DAT_1824c4140;
  *(float *)(param_1 + 0x60) = fVar2;
  *(float *)(param_1 + 0xf0) = (float)(dVar1 - (double)fVar2);
  return;
}



############ FUN_ 18058c7b0 size=149 ############

void .?AV?$LowPassFilter@M$0BA@$01@@::vtbl___AV__LowPassFilter_M_0BA__01__
               (longlong param_1,uint param_2)

{
  double dVar1;
  double dVar2;
  float fVar3;
  
  dVar1 = DAT_1824c4140;
  *(uint *)(param_1 + 100) = param_2;
  dVar2 = pow(DAT_1824c41e8,dVar1 / (double)param_2);
  dVar2 = sqrt(dVar2 - dVar1);
  fVar3 = (float)((dVar1 / dVar2) * DAT_1824c46b8);
  *(float *)(param_1 + 0xf4) = fVar3;
  fVar3 = expf((*(float *)(param_1 + 0x68) / *(float *)(param_1 + 0x24)) * fVar3);
  *(float *)(param_1 + 0x60) = fVar3;
  *(float *)(param_1 + 0xf0) = (float)(dVar1 - (double)fVar3);
  return;
}



############ FUN_ 18058e400 size=42 ############

undefined1
.?AV?$LowPassFilter@M$0BA@$01@@::vtbl___AV__LowPassFilter_M_0BA__01__
          (longlong param_1,uint *param_2)

{
  if (*param_2 < *(uint *)(*(longlong *)(param_1 + 8) + 0x84)) {
    return *(undefined1 *)
            (*(longlong *)
              (*(longlong *)(*(longlong *)(param_1 + 8) + 0x78) + (longlong)(int)*param_2 * 8) +
            0x810);
  }
  return uRam0000000000000810;
}



############ FUN_ 18058b500 size=275 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void .?AV?$LowPassFilter@M$0BA@$01@@::vtbl___AV__LowPassFilter_M_0BA__01__
               (longlong param_1,undefined8 param_2,undefined8 *param_3)

{
  uint *_Memory;
  uint uVar1;
  undefined8 uVar2;
  double dVar3;
  int iVar4;
  undefined8 *puVar5;
  undefined4 uVar6;
  undefined1 auStack_78 [32];
  longlong local_58;
  undefined8 local_50;
  undefined8 *local_48;
  longlong *local_40;
  undefined1 local_38 [8];
  ulonglong local_30;
  
  local_50 = 0xfffffffffffffffe;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_78;
  local_58 = *(longlong *)(param_1 + 0x9b50);
  _Memory = (uint *)(local_58 + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    *_Memory = *_Memory + 1;
    UNLOCK();
  }
  local_48 = param_3;
  iVar4 = FUN_18048cbc0(param_2,local_58);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  if ((iVar4 == 0) && (*(longlong *)(param_1 + 0x18) != 0)) {
    puVar5 = (undefined8 *)
             (**(code **)(*(longlong *)(param_1 + 0x9b48) + 0x10))
                       ((longlong *)(param_1 + 0x9b48),&local_40);
    dVar3 = (double)(**(code **)(*(longlong *)*puVar5 + 0x18))((longlong *)*puVar5,puVar5 + 1);
    (**(code **)(*local_40 + 0xb0))(local_40,local_38);
    uVar2 = *(undefined8 *)(param_1 + 0x18);
    uVar6 = FUN_180487300(param_1 + 0x9958,(float)dVar3);
    FUN_18058cb60(uVar2,uVar6);
  }
  (**(code **)(*(longlong *)*param_3 + 0xb0))((longlong *)*param_3,param_3 + 1);
}



############ FUN_ 18058b010 size=176 ############

void .?AV?$FilterGraph@M$05$0CAA@@@::vtbl___AV__FilterGraph_M_05_0CAA___(longlong param_1)

{
  byte *pbVar1;
  ulonglong uVar2;
  byte bVar3;
  undefined8 local_18;
  undefined4 uStack_10;
  undefined4 uStack_c;
  
  uVar2 = (ulonglong)*(uint *)(param_1 + 0x97b0);
  if (0 < (int)*(uint *)(param_1 + 0x97b0)) {
    bVar3 = *(byte *)(param_1 + 0x9939);
    pbVar1 = (byte *)(param_1 + 0x993a);
    do {
      bVar3 = bVar3 | *pbVar1;
      pbVar1 = pbVar1 + 1;
      *(byte *)(param_1 + 0x9939) = bVar3;
      uVar2 = uVar2 - 1;
    } while (uVar2 != 0);
  }
  if (*(char *)(param_1 + 0x9939) != '\0') {
    (**(code **)(*(longlong *)(param_1 + -200) + 0x170))(param_1 + -200);
    uStack_10 = *(undefined4 *)(param_1 + -0xa0);
    uStack_c = *(undefined4 *)(param_1 + -0x9c);
    local_18 = 0;
    FUN_181342870(param_1 + -200,&local_18,1);
    *(undefined1 *)(param_1 + 0x9939) = 0;
  }
  return;
}



############ FUN_ 18160b000 size=4718 ############

/* WARNING: Instruction at (ram,0x00018160bbc8) overlaps instruction at (ram,0x00018160bbc3)
    */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x00018160b5f3) */
/* WARNING: Removing unreachable block (ram,0x00018160b060) */
/* WARNING: Removing unreachable block (ram,0x00018160b041) */
/* WARNING: Removing unreachable block (ram,0x00018160b229) */
/* WARNING: Removing unreachable block (ram,0x00018160bbc3) */
/* WARNING: Removing unreachable block (ram,0x00018160b46f) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: stack */

void .?AV?$FilterGraph@M$05$0CAA@@@::vtbl___AV__FilterGraph_M_05_0CAA___
               (longlong param_1,int param_2,undefined8 param_3)

{
  uint uVar1;
  uint uVar2;
  byte bVar3;
  undefined8 uVar4;
  longlong lVar5;
  undefined1 *puVar6;
  uint uVar7;
  ulonglong uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint *puVar13;
  uint uVar14;
  longlong lVar15;
  undefined4 *puVar16;
  ulonglong uVar17;
  longlong *plVar18;
  uint *puVar19;
  uint *puVar20;
  undefined1 *puVar21;
  undefined8 uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  int iVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  longlong lVar32;
  bool bVar33;
  int unaff_retaddr;
  undefined1 auStack_148 [32];
  int local_128;
  uint local_124;
  uint *local_120;
  undefined *local_118;
  uint local_110;
  uint local_10c;
  uint local_108;
  uint local_104;
  uint local_100;
  uint local_fc;
  int local_f8;
  undefined8 local_f0;
  undefined4 local_e8;
  uint local_e4;
  int local_e0;
  uint local_dc;
  code *local_d8;
  longlong local_d0;
  undefined8 local_c8;
  undefined4 local_c0;
  undefined4 local_bc;
  longlong local_b8;
  longlong local_b0;
  longlong local_a8;
  code *local_a0;
  uint local_94;
  uint local_90;
  undefined4 local_80;
  uint local_7c;
  int local_78;
  uint local_74;
  undefined1 local_68 [8];
  uint local_60;
  uint local_5c;
  ulonglong local_40;
  
  local_40 = DAT_182615970 ^ (ulonglong)auStack_148;
  uVar29 = (uint)&stack0x00000000 & 0x3ff;
  local_dc = 0x9ea5 - ((uVar29 + 2) * (uVar29 + 1) * uVar29) % 3 ^ 0x9655;
  local_e0 = 0x420;
  local_f0 = 0x100;
  local_120 = &DAT_18163cb4c;
  local_118 = &DAT_18163cc4c;
  uVar29 = (DAT_18163cb4c ^ 0x811c9e53) * 0x10001d1;
  uVar30 = (ulonglong)uVar29;
  uVar29 = _DAT_18163cb78 ^
           (_DAT_18163cb74 ^
           (_DAT_18163cb70 ^
           (_DAT_18163cb6c ^
           (_DAT_18163cb68 ^
           (DAT_18163cb64 ^
           (DAT_18163cb60 ^
           (DAT_18163cb5c ^
           (DAT_18163cb58 ^ (DAT_18163cb54 ^ (DAT_18163cb50 ^ uVar29) * 0x10001d1) * 0x10001d1) *
           0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1)
           * 0x10001d1;
  local_f8 = param_2;
  local_d0 = param_1;
  local_c8 = param_3;
  do {
    uVar22 = rdtsc();
    local_110 = (uint)uVar22 ^ (uint)((ulonglong)uVar22 >> 0x20);
    FUN_18160962e();
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  local_110 = (local_110 * -0x3d4d4602 >> 0x18 ^ local_110 * -0x3d4d4602) * -0x3b313595;
  if (local_110 < 0x430fc8) {
    do {
      local_d8 = FUN_1813f2240;
      uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar9 < 0) {
        uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar9 != 0);
    uVar8 = FUN_1813f2240(0,0x672d);
    if (1 < uVar8) {
      FUN_18113eab0();
    }
  }
  lVar15 = 0x17;
  uVar29 = (_DAT_18163cb7c ^ uVar29 * 0x10001d1) * 0x10001d1;
  local_118 = (undefined *)0xeb1172bd7cee29a8;
  puVar19 = (uint *)&DAT_18163cb80;
  local_120 = (uint *)CONCAT44(local_120._4_4_,0x7cee29a8);
  do {
    uVar9 = *puVar19;
    puVar19 = puVar19 + 1;
    uVar29 = (uVar9 ^ uVar29) * 0x10001d1;
    lVar15 = lVar15 + -1;
  } while (lVar15 != 0);
  uVar29 = (*puVar19 ^ uVar29) * 0x10001d1;
  if ((uVar29 >> 8 & 1) == 0) {
    uVar9 = uVar29 & 0x27f;
    iVar28 = (uVar9 + 2) * (uVar9 + 1) * uVar9;
    uVar9 = ((iVar28 >> 1) - (iVar28 >> 3)) + iVar28 * 0x55555555 >> 0x1e;
  }
  else {
    uVar9 = uVar29 & 0x3f;
    uVar9 = (uVar9 + 1) * (uVar9 + 1) * uVar9 * uVar9 & 1;
  }
  uVar9 = 0xf642 - uVar9 ^ 0xf542;
  puVar20 = (uint *)((longlong)puVar19 + (longlong)(int)uVar9 + -0x2f4);
  uVar24 = (uint)puVar20 & 0xff;
  uVar9 = (*puVar20 ^
          (*(uint *)((longlong)puVar19 + (longlong)(int)uVar9 + -0x2f8) ^
          (*(uint *)((longlong)puVar19 + (longlong)(int)uVar9 + -0x2fc) ^ uVar29) * 0x10001d1) *
          0x10001d1) * 0x10001d1;
  uVar29 = uVar9 & 0x3bff;
  uVar29 = ((uVar29 + 1) * uVar29 + 7) % 0x51 - ((uVar24 + 2) * (uVar24 + 1) * uVar24) % 3;
  puVar20 = (uint *)((longlong)puVar20 +
                    (0x204 - (ulonglong)(~((int)(uVar29 | -uVar29) >> 0x1f & 0xfffffdffU) & 0xfae7))
                    );
  bVar33 = puVar20 == (uint *)0x0;
  bVar3 = POPCOUNT((ulonglong)puVar20 & 0xff);
  do {
    if (((bVar3 & 1) == 0) && (bVar33)) {
      uVar30 = ~(~uVar30 + 1) + 1;
    }
    uVar29 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar29 < 0) {
      uVar29 = (uVar29 - 1 | 0xfffffffe) + 1;
    }
    bVar33 = uVar29 == 0;
    bVar3 = POPCOUNT(uVar29 & 0xff);
  } while (!bVar33);
  uVar24 = (int)puVar20 + 4U & 0x5f;
  uVar26 = (puVar20[1] ^ (*puVar20 ^ uVar9) * 0x10001d1) * 0x10001d1;
  uVar29 = uVar26 & 0x1f;
  puVar20 = (uint *)((longlong)puVar20 +
                    (((longlong)
                      (int)(((uVar24 + 1) * (uVar24 + 1) * uVar24 * uVar24 & 1) +
                           ((uVar29 + 1) * (uVar29 + 1) * uVar29 * uVar29 & 0x80000003)) ^ 0x400U) -
                    0x3f8));
  uVar29 = *puVar20;
  uVar9 = puVar20[1];
  uVar24 = puVar20[2];
  uVar25 = puVar20[3];
  uVar27 = puVar20[4];
  uVar1 = puVar20[5];
  do {
    local_e8 = 0xf4b58d1e;
    uVar10 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar10 = puVar20[6];
  uVar2 = puVar20[7];
  do {
    local_c0 = 0x72;
    local_b8 = 0x18160b707;
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  local_128 = 0x101f68d;
  do {
    plVar18 = &local_b0;
    puVar16 = &local_bc;
    puVar19 = &local_104;
    FUN_18160cf73();
    *puVar19 = 0x4816aad0;
    *puVar16 = 0x6c;
    *plVar18 = 0x18160b7e7;
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  lVar15 = local_128 + local_b8;
  uVar11 = local_104 << 4;
  uVar14 = local_104 >> 0x1c;
  uVar7 = local_104 >> 4;
  uVar23 = local_104 << 0x1c;
  local_128 = 0;
  local_104 = 0;
  uVar11 = ((uVar7 | uVar23) & 0xe1e1e1e1 | (uVar11 | uVar14) & 0x1e1e1e1e) ^ 0xe5d863fd;
  uVar14 = ((uVar11 & 0x33333333) << 2 | uVar11 >> 2 & 0x33333333) + 0x87604ead;
  uVar11 = (uVar14 >> 0xf ^ uVar14) & 0x3fff;
  uVar14 = uVar14 ^ (uVar11 << 0xf | uVar11);
  uVar14 = ((uVar14 << 0x10 | uVar14 >> 0x10) & 0xed1212ed |
           (uVar14 >> 0x10 | uVar14 << 0x10) & 0x12eded12) ^ 0xb938882a;
  uVar11 = (uVar14 >> 0xe ^ uVar14) >> 2 & 0x3fff;
  uVar14 = uVar14 ^ (uVar11 << 0xe | uVar11) << 2;
  lVar32 = ((longlong)(int)(uVar14 << 0x10 | uVar14 >> 0x10) & 0xffffffffcb0934f6U |
           (ulonglong)((uVar14 >> 0x10 | uVar14 << 0x10) & 0x34f6cb09)) + local_b0;
  *(longlong *)(lVar15 + 4) =
       *(longlong *)(lVar15 + 4) +
       (ulonglong)((uint)(*(ulonglong *)(lVar32 + 4) >> 0x1b) & 0x45210049);
  do {
    puVar19 = &local_e4;
    puVar13 = &local_124;
    FUN_18160a47b();
    uVar22 = rdtsc();
    uVar11 = (int)uVar22 + (int)((ulonglong)uVar22 >> 0x20);
    *puVar19 = uVar11;
    uVar8 = (ulonglong)uVar11 * -0x47ff - 0x419c2dc1;
    uVar8 = uVar8 - (uVar8 * 0x20 | uVar8 >> 0x3b);
    *puVar13 = (uint)((uVar8 ^ (uVar8 >> 0xd) - 0x3b73948f) * 0x101 - 0x6d2a332 >> 5) & 0xc78b3a8e;
    lVar5 = local_d0;
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  *(int *)(lVar15 + 8) = *(int *)(lVar15 + 8) + (local_124 ^ 0x328b734b);
  *(int *)(lVar15 + 4) = *(int *)(lVar15 + 4) + (local_124 ^ 0xc0006fe8);
  uVar17 = (*(ulonglong *)(lVar15 + 4) << 0x21 | *(ulonglong *)(lVar15 + 4) >> 0x1f) +
           0xb0379220c452d670;
  uVar8 = (ulonglong)((uint)((uVar17 >> 0x1e ^ uVar17) >> 2) & 0x1fffff);
  uVar8 = ((uVar8 << 0x1e | uVar8) << 2 ^ uVar17) + 0xba631318a0d4a7cb;
  uVar17 = (uVar8 >> 4 | uVar8 << 0x3c) & 0xc3c3c3c3c3c3c3c3 |
           (uVar8 * 0x10 | uVar8 >> 0x3c) & 0x3c3c3c3c3c3c3c3c;
  uVar11 = (uint)((uVar17 >> 9 ^ uVar17) >> 0x1a) & 1;
  uVar8 = ((ulonglong)uVar11 << 9 | (ulonglong)uVar11) << 0x1a ^ uVar17;
  uVar8 = ((uVar8 << 4 | uVar17 >> 0x3c) & 0xe1e1e1e1e1e1e1e1 |
          (uVar8 >> 4 | uVar17 << 0x3c) & 0x1e1e1e1e1e1e1e1e) + 0xcbb348cc940fcd7a;
  uVar8 = (uVar8 >> 2 | uVar8 << 0x3e) & 0x9999999999999999 |
          (uVar8 * 4 | uVar8 >> 0x3e) & 0x6666666666666666;
  *(ulonglong *)(lVar15 + 4) = uVar8;
  plVar18 = (longlong *)(lVar32 + 4);
  *plVar18 = *plVar18 + (ulonglong)((uint)(uVar8 >> 0xf) & 0x20230248);
  local_124 = (uint)(*(ulonglong *)(lVar15 + 4) >> 0x1b) & 0x7fffffff;
  local_108 = (uint)(*(ulonglong *)(lVar15 + 4) >> 0x19) ^ 0xb9d9b711;
  local_118 = (undefined *)(*(ulonglong *)(lVar15 + 4) ^ 0x49746e3163e2e07a);
  uVar29 = (puVar20[0xb] ^
           (puVar20[10] ^
           (puVar20[9] ^
           (puVar20[8] ^
           (uVar2 ^ (uVar10 ^ (uVar1 ^ (uVar27 ^ (uVar25 ^ (uVar24 ^ (uVar9 ^ (uVar29 ^ uVar26) *
                                                                              0x10001d1) * 0x10001d1
                                                           ) * 0x10001d1) * 0x10001d1) * 0x10001d1)
                              * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
           0x10001d1) * 0x10001d1;
  local_f0 = CONCAT44(local_f0._4_4_,uVar29);
  do {
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  local_90 = (uint)local_118;
  uVar9 = ((local_90 ^ local_108) & 0x6593f979 ^ local_108) + 0x4ed1481b;
  uVar24 = ((local_90 ^ local_108) & 0x9a6c0686 ^ local_108) + 0xaef7aa14;
  uVar27 = (int)((ulonglong)local_118 >> 0x20) + 0x7bc739d3;
  uVar25 = (uVar9 * 0x100 | uVar9 >> 0x18) & 0x9a659a65 |
           (uVar9 >> 8 | uVar9 * 0x1000000) & 0x659a659a;
  uVar27 = uVar27 >> 2 & 0xcccccccc | uVar27 * 0x40000000 | uVar27 * 4 & 0x33333333 | uVar27 >> 0x1e
  ;
  uVar24 = ((uVar24 * 0x10000 | uVar24 >> 0x10) & 0xc73b38c4 |
           (uVar24 >> 0x10 | uVar24 * 0x10000) & 0x38c4c73b) ^ uVar25;
  uVar9 = uVar24 & 0x8a578475 ^ uVar25;
  uVar22 = 0x1f67ec24;
  uVar24 = uVar24 & 0x75a87b8a ^ uVar25 ^ uVar9;
  uVar25 = uVar24 & 0x44465b56 ^ uVar9;
  uVar9 = uVar24 & 0xbbb9a4a9 ^ uVar9;
  uVar24 = uVar25 >> 0x19 | uVar25 << 7;
  uVar25 = (uVar27 >> 10 | uVar27 << 0x16) ^ uVar24;
  uVar31 = (uVar9 >> 0x1f | uVar9 << 1) ^ 0xea2cbcd1;
  uVar8 = (ulonglong)uVar31;
  uVar7 = uVar25 & 0xddffbe9c ^ uVar24;
  uVar23 = uVar25 & 0x22004163 ^ uVar24 ^ uVar7;
  uVar9 = puVar20[0xc];
  uVar24 = puVar20[0xd];
  uVar25 = puVar20[0xe];
  uVar27 = puVar20[0xf];
  uVar1 = puVar20[0x10];
  uVar26 = puVar20[0x11];
  uVar10 = puVar20[0x12];
  uVar2 = puVar20[0x13];
  uVar11 = puVar20[0x14];
  uVar14 = puVar20[0x15];
  do {
    uVar4 = rdtsc();
    local_e4 = (int)uVar4 - (int)((ulonglong)uVar4 >> 0x20);
    uVar17 = (ulonglong)local_e4 - ((ulonglong)(local_e4 >> 5) - 0x3dd514ae) >> 8;
    uVar17 = uVar17 + (~-uVar17 + 1) * 0x200 + -0x72ddc7ad;
    uVar17 = uVar17 ^ uVar17 * 0x200;
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  local_100 = (uint)((int)uVar17 - (int)(uVar17 << 5)) >> 1 ^ local_124;
  local_94 = local_108;
  if (local_100 < 0xd698) {
    do {
      uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar12 < 0) {
        uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar12 != 0);
    local_10c = 0x7432a569;
    local_80 = 0x1f67ec24;
    local_7c = uVar31;
    local_78 = (uVar23 & 0x7310039d ^ uVar7) + 0x6bb1bcf9;
    local_74 = uVar23 & 0x8ceffc62 ^ uVar7 ^ 0xaa7d1554;
    do {
      plVar18 = &local_a8;
      puVar19 = &local_fc;
      FUN_18160cbe4();
      *puVar19 = 0x5e5cf042;
      uVar30 = 0;
      *plVar18 = 0x18160bf83;
      FUN_18160a645();
      uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar7 < 0) {
        uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar7 != 0);
    uVar7 = (local_fc + 0x1804952a >> 0x15 | (local_fc + 0x1804952a) * 0x800) ^ 0x90bd4e7c;
    local_fc = ~((uVar7 >> 0x11 | uVar7 << 0xf) + 0xe9b473b7);
    (*(code *)((int)local_fc + local_a8))(&local_80,local_68);
    iVar28 = 7;
    do {
      uVar31 = ((local_60 << 4 | local_60 >> 0x1c) & 0xb4b4b4b4 |
               (local_60 >> 4 | local_60 << 0x1c) & 0x4b4b4b4b) + 0xedf66992;
      uVar23 = ((local_5c >> 8 | local_5c << 0x18) & 0xfa05fa05 |
               (local_5c << 8 | local_5c >> 0x18) & 0x5fa05fa) + 0x703d2ee4;
      uVar7 = uVar31 >> 0xc;
      uVar23 = (uVar23 >> 0x1d | uVar23 * 8) + 0x5f26144;
      uVar31 = (((uVar7 | uVar31 * 0x100000) ^ 0x2677a938) >> 3 | uVar7 << 0x1d) + 0x70f6a640;
      uVar23 = (uVar23 * 0x8000 | uVar23 >> 0x11) + 0x191d2650;
      uVar12 = uVar31 >> 0x17 | uVar31 * 0x200;
      uVar7 = uVar23 >> 0xc;
      uVar23 = uVar23 * 0x100000 | uVar7;
      uVar31 = (uVar12 >> 8 | (uVar31 >> 0x17) << 0x18) & 0xa857a857 |
               (uVar12 << 8 | (uVar31 & 0x7fffff) >> 0xf) & 0x57a857a8;
      uVar23 = (uVar7 << 0x10 | uVar23 >> 0x10) & 0xd65429ab |
               (uVar23 >> 0x10 | uVar7 << 0x10) & 0x29abd654;
      uVar7 = uVar31 >> 6;
      local_60 = uVar7 | uVar31 << 0x1a;
      local_5c = uVar23 << 0x16 | uVar23 >> 10;
      iVar28 = iVar28 + -1;
    } while (-1 < iVar28);
    uVar7 = (uVar7 << 0x1d | local_60 >> 3) + 0xa6be00c2;
    uVar7 = (uVar7 * 0x80 | uVar7 >> 0x19) + 0xc72db2d0;
    uVar7 = (uVar7 * 8 | uVar7 >> 0x1d) + 0x5e0136f7;
    uVar7 = (uVar7 * 0x400 | uVar7 >> 0x16) ^ 0xd2776bfa;
    if (((uVar7 >> 0x10 | uVar7 << 0x10) ^ local_10c) + local_5c != local_108) {
      do {
        local_a0 = FUN_180bc28e0;
        uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
        if ((int)uVar7 < 0) {
          uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
        }
      } while (uVar7 != 0);
      FUN_180bc28e0();
      do {
        uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
        if ((int)uVar7 < 0) {
          uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
        }
      } while (uVar7 != 0);
    }
  }
  uVar9 = (uVar14 ^ (uVar11 ^ (uVar2 ^ (uVar10 ^ (uVar26 ^ (uVar1 ^ (uVar27 ^ (uVar25 ^ (uVar24 ^ (
                                                  uVar9 ^ uVar29) * 0x10001d1) * 0x10001d1) *
                                                  0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1)
                                       * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1 ^
          0xd282d6a9;
  uVar29 = (uVar9 >> 0xe ^ uVar9) >> 1 & 0xff;
  lVar32 = (longlong)local_f8;
  uVar29 = ~((uVar29 << 0xe | uVar29) * 2 ^ uVar9) + 0xac1763b7;
  uVar9 = uVar29 >> 0x17 | uVar29 * 0x200;
  uVar29 = ((uVar29 & 0x7fffff) >> 3 ^ uVar9) >> 7 & 0x1ff;
  lVar15 = lVar32 * 0x828 + 0x3830 + lVar5;
  if ((uint)local_120 == ((uVar29 << 0xc | uVar29) << 7 ^ uVar9)) {
    FUN_180589400(lVar15,local_c8);
    *(undefined1 *)(*(longlong *)(lVar5 + 0x10) + 0x9a02 + lVar32) = 1;
    thunk_FUN_1805a9280();
    return;
  }
  FUN_180589400(lVar15,local_c8);
  *(undefined1 *)(*(longlong *)(lVar5 + 0x10) + 0x9a02 + lVar32) = 1;
  puVar6 = auStack_148;
  do {
    puVar21 = puVar6;
    *(ulonglong *)(puVar21 + -8) = uVar30;
    *(undefined8 *)(puVar21 + -0x10) = uVar22;
    *(ulonglong *)(puVar21 + -0x18) = uVar8;
    lVar15 = -(longlong)local_e0;
    uVar8 = *(ulonglong *)(puVar21 + lVar15 + 0x408);
    uVar22 = *(undefined8 *)(puVar21 + lVar15 + 0x410);
    uVar30 = *(ulonglong *)(puVar21 + lVar15 + 0x418);
    uVar29 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar29 < 0) {
      uVar29 = (uVar29 - 1 | 0xfffffffe) + 1;
    }
    puVar6 = puVar21 + lVar15 + 0x420;
  } while (uVar29 != 0);
  *(undefined **)(puVar21 + lVar15 + 0x418) = &UNK_18160c3e2;
}



############ FUN_ 1805893c0 size=52 ############

void * .?AV?$FilterGraph@M$05$0CAA@@@::vtbl___AV__FilterGraph_M_05_0CAA___
                 (void *param_1,ulonglong param_2)

{
  FUN_18160dba0();
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    free(param_1);
  }
  return param_1;
}



############ FUN_ 18160c410 size=1445 ############

/* WARNING: Instruction at (ram,0x00018160ca3a) overlaps instruction at (ram,0x00018160ca38)
    */
/* WARNING: Possible PIC construction at 0x00018160cb22: Changing call to branch */
/* WARNING: Removing unreachable block (ram,0x00018160cb27) */
/* WARNING: Removing unreachable block (ram,0x00018160ca34) */
/* WARNING: Removing unreachable block (ram,0x00018160c8cc) */
/* WARNING: Removing unreachable block (ram,0x00018160ca14) */
/* WARNING: Removing unreachable block (ram,0x00018160c9c7) */

undefined8 .?AV?$FilterGraph@M$05$0CAA@@@::vtbl___AV__FilterGraph_M_05_0CAA___(longlong param_1)

{
  longlong *plVar1;
  longlong lVar2;
  undefined4 uVar3;
  ulonglong uVar4;
  undefined8 uVar5;
  uint uVar6;
  ulonglong uVar7;
  code **ppcVar8;
  longlong *plVar9;
  int iVar10;
  longlong lVar11;
  longlong *plVar12;
  undefined8 *puVar13;
  undefined8 *puVar14;
  undefined8 *puVar15;
  undefined1 *puVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  longlong lVar19;
  undefined4 *puVar20;
  longlong *plVar21;
  undefined *puVar22;
  longlong lVar23;
  undefined4 *puVar24;
  undefined **ppuVar25;
  uint uVar26;
  int unaff_retaddr;
  undefined8 auStack_1a8 [2];
  undefined1 auStack_198 [24];
  uint auStack_180 [6];
  undefined8 local_168;
  undefined **local_160;
  uint local_158;
  longlong alStack_148 [2];
  undefined8 local_138;
  uint local_130;
  uint local_128;
  undefined4 local_124;
  code *local_120;
  undefined **local_118;
  longlong local_110;
  undefined4 local_108;
  undefined4 uStack_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  undefined4 local_c8;
  undefined4 uStack_c4;
  undefined4 uStack_c0;
  undefined4 uStack_bc;
  undefined4 uStack_b8;
  undefined4 uStack_b4;
  undefined4 uStack_b0;
  undefined4 uStack_ac;
  undefined4 uStack_a8;
  undefined4 uStack_a4;
  undefined4 uStack_a0;
  undefined4 uStack_9c;
  undefined4 local_68 [14];
  ulonglong local_30;
  
  puVar15 = (undefined8 *)auStack_198;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_198;
  uVar6 = (uint)&stack0x00000000 & 0x23f;
  lVar23 = 0x1210;
  local_124 = 0x8e0;
  iVar10 = (uVar6 + 2) * (uVar6 + 1) * uVar6;
  uVar6 = ((iVar10 >> 1) - (iVar10 >> 3)) + iVar10 * 0x55555555 >> 0x1e;
  uVar4 = (ulonglong)uVar6;
  local_128 = -uVar6 ^ 0x740;
  local_110 = param_1;
  FUN_18134c250(param_1,&local_108);
  alStack_148[1] = 0x6f01000;
  local_138 = 0x1bab6a8;
  local_168 = 0x10;
  local_160 = &PTR__guard_check_icall_181bab6a8;
  local_118 = (undefined **)&DAT_181bab6b8;
  plVar12 = (longlong *)&DAT_186f01000;
  auStack_180[2] = 0;
  local_c8 = local_108;
  uStack_c4 = uStack_104;
  uStack_c0 = uStack_100;
  uStack_bc = uStack_fc;
  FUN_18134c170(*(undefined8 *)(param_1 + 200),&local_c8);
  do {
    uVar7 = 0xee14;
    func_0x00018160aa28();
    if ((uVar7 & 0x43) != 0) goto LAB_18160c66b;
    uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
    }
    uVar7 = uVar4;
  } while (uVar6 != 0);
  do {
    local_130 = 0x4fa5f61e;
LAB_18160c66b:
    uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar6 != 0);
  alStack_148[1] = 0xf1e46594c6bad6be;
  uVar26 = ((~local_130 ^ 0x61689430) >> 0x13 | (~local_130 ^ 0x61689430) << 0xd) ^ 0xe6c076f9;
  local_138 = CONCAT44(local_138._4_4_,0xc6bad6be);
  uVar6 = uVar26 >> 7;
  local_168 = CONCAT44(local_168._4_4_,
                       ~((uVar6 << 0x1e | ((uVar26 << 0x19 | uVar6) ^ 0x13f5de1c) >> 2) + 0x84cdc7cb
                        ));
  do {
    uVar5 = rdtsc();
    uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar6 != 0);
  uVar6 = ((uint)uVar5 ^ (uint)((ulonglong)uVar5 >> 0x20)) * -0x166a12ab;
  local_158 = (uVar6 >> 0x18 ^ uVar6) * -0x3d4d13ad;
  if (local_158 < 0x5d1745ff) {
    local_120 = (code *)0x0;
    do {
      ppcVar8 = &local_120;
      FUN_18160cb18(ppcVar8,&local_120);
      *ppcVar8 = FUN_1813bba80;
      uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar6 < 0) {
        uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar6 != 0);
    uVar4 = (*local_120)(0,0x48eb);
    if (1 < uVar4) {
      FUN_18113eab0();
    }
  }
  ppuVar25 = local_160;
  puVar24 = (undefined4 *)((longlong)local_118 - (longlong)local_160);
  puVar17 = (undefined4 *)0x0;
  puVar16 = auStack_198;
  if (local_118 == local_160) {
code_r0x00018160ca00:
    do {
      uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar6 < 0) {
        uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar6 != 0);
    uVar5 = *(undefined8 *)(param_1 + 0xc0);
    uStack_b8 = local_108;
    uStack_b4 = uStack_104;
    uStack_b0 = uStack_100;
    uStack_ac = uStack_fc;
    *(undefined **)(puVar16 + -8) = &UNK_18160ca7f;
    FUN_18134c170(uVar5,&uStack_b8,uVar7);
    puVar17 = &uStack_a8;
    uStack_a8 = local_108;
    uStack_a4 = uStack_104;
    uStack_a0 = uStack_100;
    uStack_9c = uStack_fc;
    uVar5 = *(undefined8 *)(local_110 + 0xd0);
    *(undefined **)(puVar16 + -8) = &UNK_18160ca9f;
    FUN_18134c170(uVar5,puVar17);
    do {
      *(undefined **)(puVar16 + -8) = &UNK_18160caaa;
      func_0x00018160d859(0xee14);
      puVar22 = (undefined *)((longlong)ppuVar25 + lVar23);
      ppuVar25 = (undefined **)((lVar23 - (longlong)puVar22 ^ 0xffffffffffffffffU) + 1);
      lVar23 = (longlong)puVar22 - (longlong)ppuVar25;
      uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar6 < 0) {
        uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar6 != 0);
    *(undefined4 *)(puVar16 + 0x48) = *(undefined4 *)(puVar16 + 0x20);
    *(undefined **)(puVar16 + -8) = &UNK_18160cb0c;
    uVar3 = func_0x00018160b4ce();
    *(longlong *)(puVar16 + -8) = lVar23;
    *(longlong *)(puVar16 + -0x10) = param_1;
    *(undefined **)(puVar16 + -0x18) = &UNK_18160cb27;
    lVar23 = *(longlong *)(puVar16 + -0x18);
    *(longlong *)(puVar16 + -0x18) = lVar23 + 0x166;
    *(longlong *)(puVar16 + -0x20) = lVar23 + 0x3f85dd;
    *(longlong *)(puVar16 + -0x28) = lVar23 + -0x1667b;
    *(longlong *)(puVar16 + -0x30) = lVar23 + 0x3fe56b;
    *(longlong *)(puVar16 + -0x38) = lVar23 + 0x3f85fa;
    *(longlong *)(puVar16 + -0x40) = lVar23 + -0x177e0;
    *(longlong *)(puVar16 + -0x48) = lVar23 + -0x454f5;
    *(longlong *)(puVar16 + -0x50) = lVar23 + -0x7c9eb;
    *(longlong *)(puVar16 + -0x58) = lVar23 + 0x3fe56b;
                    /* WARNING: Could not recover jumptable at 0x00018160cc6b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar5 = (*(code *)(lVar23 + 0x3f85fa))(uVar3,puVar17);
    return uVar5;
  }
LAB_18160c7f0:
  puVar18 = (undefined4 *)((longlong)puVar17 + (longlong)ppuVar25);
  if ((plVar12 != (longlong *)0x0) && (lVar11 = *plVar12, -1 < lVar11)) {
    *(undefined8 *)((longlong)puVar15 + 0x58) = 0x2621fc0;
    lVar19 = (longlong)&DAT_182621fc0 + -*(longlong *)((longlong)puVar15 + 0x58);
    do {
      if (puVar18 < (undefined4 *)(-*(longlong *)((longlong)puVar15 + 0x58) + 0x182621fc8 + lVar11))
      {
        if (-1 < lVar11) {
          plVar9 = (longlong *)(lVar19 + lVar11);
          plVar1 = (longlong *)(puVar18 + 1);
          if (plVar9 < plVar1) {
            local_68[0] = *puVar18;
            lVar23 = lVar19 - (longlong)puVar18;
            plVar21 = plVar12;
            goto LAB_18160c870;
          }
        }
        break;
      }
      lVar11 = plVar12[1];
      plVar12 = plVar12 + 1;
    } while (-1 < lVar11);
  }
  goto LAB_18160c8a0;
  while (plVar9 = (longlong *)(lVar19 + lVar11), plVar9 < plVar1) {
LAB_18160c870:
    lVar2 = lVar23 + lVar11;
    lVar11 = plVar21[1];
    plVar21 = plVar21 + 1;
    *(longlong *)((longlong)local_68 + lVar2) = *plVar9 - lVar19;
    puVar18 = local_68;
    if (lVar11 < 0) break;
  }
LAB_18160c8a0:
  do {
    puVar20 = (undefined4 *)((longlong)puVar15 + 0x20);
    uVar4 = 0xee14;
    *(undefined4 **)((longlong)puVar15 + -8) = puVar17;
    puVar15 = (undefined8 *)((longlong)puVar15 + -8);
    puVar17 = puVar18;
    while ((uVar4 & 0xc300) != 0) {
      while (puVar13 = puVar15, (uVar4 & 0xc300) != 0) {
        while( true ) {
          puVar13[-1] = 0x18160c901;
          uVar3 = FUN_18160cb59();
          *puVar20 = uVar3;
          puVar17 = (undefined4 *)*puVar13;
          puVar15 = puVar13 + 1;
          puVar14 = puVar13 + 1;
          if ((uVar4 & 0xc3) != 0) break;
          puVar13 = puVar13 + 1;
          puVar15 = puVar14;
          if ((uVar4 & 0xc3) == 0) goto LAB_18160c93e;
        }
      }
    }
LAB_18160c93e:
    uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar6 != 0);
  uVar26 = (uint)puVar17 & 0x4aff;
  uVar7 = (ulonglong)uVar26;
  uVar6 = *(int *)((longlong)puVar15 + 0x20) * 0x401 ^
          (uint)(*(int *)((longlong)puVar15 + 0x20) * 0x401) >> 6;
  *(uint *)((longlong)puVar15 + 0x20) = uVar6;
  uVar6 = uVar6 & 0x17f;
  iVar10 = (uVar6 + 2) * (uVar6 + 1) * uVar6;
  puVar17 = (undefined4 *)
            ((longlong)puVar17 +
            (0xa4 - ((longlong)
                     ((longlong)(((iVar10 >> 1) - (iVar10 >> 3)) + iVar10 * 0x55555555) ^
                     0x2800000000U) >> 0x1e ^ (longlong)(int)((uVar26 + 1) * uVar26 & 0x80000001))))
  ;
  param_1 = local_110;
  puVar16 = (undefined1 *)puVar15;
  if (puVar24 == puVar17) goto code_r0x00018160ca00;
  goto LAB_18160c7f0;
}



############ FUN_ 18058c4b0 size=116 ############

void .?AV?$FilterGraphGrid@M@@::vtbl___AV__FilterGraphGrid_M__(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  *param_1 = FilterGraphGrid<float>::vftable;
  param_1[0x16] = FilterGraphGrid<float>::vftable;
  FUN_180484cd0(param_1 + 0x25);
  puVar1 = (undefined8 *)param_1[0x24];
  if (puVar1 != (undefined8 *)0x0) {
    (**(code **)*puVar1)(puVar1,1);
  }
  FUN_18047cbc0(param_1 + 0x22);
  *(undefined4 *)((longlong)param_1 + 0x11c) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[0x22]);
}



############ FUN_ 1805895c0 size=2420 ############

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

void .?AV?$FilterGraphGrid@M@@::vtbl___AV__FilterGraphGrid_M__(longlong param_1)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  undefined8 *puVar6;
  undefined8 uVar7;
  ulonglong uVar8;
  uint *_Memory;
  ulonglong uVar9;
  longlong *plVar10;
  longlong *plVar11;
  longlong lVar12;
  longlong lVar13;
  longlong *plVar14;
  char cVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  undefined8 uVar20;
  uint uVar21;
  bool bVar22;
  double dVar23;
  float fVar24;
  float fVar25;
  float fVar26;
  float fVar27;
  float fVar28;
  float fVar29;
  char local_res8;
  undefined7 uStackX_9;
  float local_res10;
  double local_res18;
  double local_res20;
  undefined4 local_180;
  undefined4 local_160;
  undefined1 local_158 [4];
  undefined4 local_154;
  double local_150;
  double local_148;
  double local_140;
  double local_138;
  undefined1 local_130 [4];
  undefined4 local_12c;
  undefined1 local_128 [8];
  undefined1 local_120 [8];
  undefined1 local_118 [8];
  undefined1 local_110 [8];
  undefined4 local_108;
  undefined4 uStack_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  undefined4 local_f8;
  undefined4 uStack_f4;
  undefined4 uStack_f0;
  undefined4 uStack_ec;
  
  if (*(longlong *)(param_1 + 0xb8) != 0) {
    plVar14 = (longlong *)(param_1 + 0xb0);
    if (*(code **)(*plVar14 + 8) == .?AUSoothe2VertexData@@::vtbl___AUSoothe2VertexData__) {
      if (*(longlong *)(param_1 + 0xb8) == 0) {
        FUN_180569ff0(param_1);
      }
      uVar7 = *(undefined8 *)(param_1 + 0xb8);
    }
    else {
      uVar7 = (**(code **)(*plVar14 + 8))(plVar14);
    }
    puVar6 = (undefined8 *)FUN_18140e230(local_128,*(undefined4 *)(param_1 + 0x211));
    FUN_1813f0dc0(uVar7,DAT_18267423c,*puVar6,param_1);
    if (*(code **)(*plVar14 + 8) == .?AUSoothe2VertexData@@::vtbl___AUSoothe2VertexData__) {
      if (*(longlong *)(param_1 + 0xb8) == 0) {
        FUN_180569ff0(param_1);
      }
      uVar7 = *(undefined8 *)(param_1 + 0xb8);
    }
    else {
      uVar7 = (**(code **)(*plVar14 + 8))(plVar14);
    }
    puVar6 = (undefined8 *)FUN_18140e230(local_120,*(undefined4 *)(param_1 + 0x215));
    FUN_1813f0dc0(uVar7,DAT_182674188,*puVar6,param_1);
  }
  uVar18 = 0;
  fVar29 = (float)*(int *)(param_1 + 0x2c);
  fVar26 = (float)*(int *)(param_1 + 0x28);
  fVar28 = fVar26 * DAT_1824c3c98;
  fVar27 = fVar29 * DAT_1824c3c90;
  *(float *)(param_1 + 0x200) = fVar29 * DAT_1824c3c70;
  local_res10 = fVar26;
  FUN_18134bfe0(*(undefined8 *)(param_1 + 0x120),0,0,*(undefined4 *)(param_1 + 0x28),
                *(undefined4 *)(param_1 + 0x2c));
  dVar5 = DAT_1824c4520;
  fVar24 = DAT_1824c3d8c;
  if (*(char *)(param_1 + 0x210) != '\0') {
    if (0 < *(int *)(param_1 + 0xfc)) {
      bVar22 = *(int *)(param_1 + 0xfc) != 0;
      uVar9 = uVar18;
      uVar17 = uVar18;
      uVar19 = uVar18;
      do {
        uVar8 = uVar18;
        if (bVar22) {
          uVar8 = *(ulonglong *)(uVar17 + *(longlong *)(param_1 + 0xf0));
        }
        puVar6 = (undefined8 *)FUN_1812ea010(uVar8,&local_res8);
        cVar15 = *(char *)*puVar6;
        _Memory = (uint *)(CONCAT71(uStackX_9,local_res8) + -0x10);
        if ((*_Memory & 0x30000000) == 0) {
          LOCK();
          uVar16 = *_Memory;
          *_Memory = *_Memory - 1;
          UNLOCK();
          if (uVar16 == 0) {
                    /* WARNING: Subroutine does not return */
            free(_Memory);
          }
        }
        uVar16 = (uint)uVar9;
        if (cVar15 == '\0') {
          if (uVar16 < *(uint *)(param_1 + 0xfc)) {
            plVar14 = *(longlong **)(uVar17 + *(longlong *)(param_1 + 0xf0));
            (**(code **)(*plVar14 + 0x58))(plVar14,0);
          }
          else {
            (**(code **)(_DAT_00000000 + 0x58))(0,0);
          }
        }
        else {
          if (uVar16 < *(uint *)(param_1 + 0xdc)) {
            fVar25 = *(float *)(uVar19 + *(longlong *)(param_1 + 0xd0));
          }
          else {
            fVar25 = 0.0;
          }
          local_res20 = dVar5;
          local_res18 = (double)(fVar25 * fVar26) + dVar5;
          local_180 = SUB84((double)fVar27 + dVar5,0);
          uVar9 = uVar18;
          if (uVar16 < *(uint *)(param_1 + 0xfc)) {
            uVar9 = *(ulonglong *)(uVar17 + *(longlong *)(param_1 + 0xf0));
          }
          FUN_18134bfe0(uVar9,local_res18._0_4_ - (int)(fVar28 * fVar24),
                        (ulonglong)dVar5 & 0xffffffff,
                        (ulonglong)((double)fVar28 + dVar5) & 0xffffffff,local_180);
        }
        uVar16 = uVar16 + 1;
        uVar9 = (ulonglong)uVar16;
        uVar19 = uVar19 + 4;
        uVar17 = uVar17 + 8;
        bVar22 = uVar16 < *(uint *)(param_1 + 0xfc);
      } while ((int)uVar16 < (int)*(uint *)(param_1 + 0xfc));
    }
    dVar4 = DAT_1824c41c8;
    cVar15 = DAT_1824c3ea4 < *(float *)(param_1 + 0x20c);
    if (0 < *(int *)(param_1 + 0xec)) {
      bVar22 = *(int *)(param_1 + 0xec) != 0;
      local_res20 = 0.0;
      uVar9 = uVar18;
      uVar16 = DAT_1824c4f30;
      local_res8 = cVar15;
      do {
        plVar14 = (longlong *)0x0;
        if (bVar22) {
          fVar24 = *(float *)((longlong)local_res20 + *(longlong *)(param_1 + 0xe0));
        }
        else {
          fVar24 = 0.0;
        }
        fVar24 = fVar24 * fVar29;
        uVar21 = (uint)uVar9;
        if ((fVar24 <= fVar27) || (fVar29 - fVar27 <= fVar24)) {
          plVar10 = plVar14;
          if (uVar21 < *(uint *)(param_1 + 0x10c)) {
            plVar10 = *(longlong **)(uVar18 + *(longlong *)(param_1 + 0x100));
          }
          (**(code **)(*plVar10 + 0x58))(plVar10,0);
          if (uVar21 < *(uint *)(param_1 + 0x11c)) {
            plVar14 = *(longlong **)(uVar18 + *(longlong *)(param_1 + 0x110));
          }
          (**(code **)(*plVar14 + 0x58))();
        }
        else {
          plVar10 = plVar14;
          if (uVar21 < *(uint *)(param_1 + 0x10c)) {
            plVar10 = *(longlong **)(uVar18 + *(longlong *)(param_1 + 0x100));
          }
          (**(code **)(*plVar10 + 0x58))(fVar29 - fVar27,1);
          plVar10 = plVar14;
          if (uVar21 < *(uint *)(param_1 + 0x11c)) {
            plVar10 = *(longlong **)(uVar18 + *(longlong *)(param_1 + 0x110));
          }
          (**(code **)(*plVar10 + 0x58))(plVar10,cVar15);
          plVar10 = (longlong *)(param_1 + 0xb0);
          fVar25 = fVar28 * DAT_1824c3df0;
          fVar26 = fVar26 - fVar28 * DAT_1824c3c94;
          fVar24 = (float)((uint)fVar27 ^ uVar16) + fVar24;
          dVar3 = (double)fVar27 + dVar5;
          dVar2 = (double)fVar25 + dVar5;
          local_160 = SUB84(dVar3,0);
          if (*(code **)(*plVar10 + 8) == .?AUSoothe2VertexData@@::vtbl___AUSoothe2VertexData__) {
            if (*(longlong *)(param_1 + 0xb8) == 0) {
              FUN_180569ff0(param_1);
            }
            uVar7 = *(undefined8 *)(param_1 + 0xb8);
          }
          else {
            uVar7 = (**(code **)(*plVar10 + 8))(plVar10);
          }
          FUN_1813f22a0(uVar7,local_158,DAT_18267423c,param_1);
          if (*(code **)(*plVar10 + 8) == .?AUSoothe2VertexData@@::vtbl___AUSoothe2VertexData__) {
            if (*(longlong *)(param_1 + 0xb8) == 0) {
              FUN_180569ff0(param_1);
            }
            local_res18 = *(double *)(param_1 + 0xb8);
          }
          else {
            local_res18 = (double)(**(code **)(*plVar10 + 8))(plVar10);
          }
          if (uVar21 < *(uint *)(param_1 + 0x10c)) {
            plVar14 = *(longlong **)(uVar18 + *(longlong *)(param_1 + 0x100));
          }
          puVar6 = (undefined8 *)FUN_18140e230(local_118,local_154);
          FUN_1813f0dc0(local_res18,DAT_182674268,*puVar6,plVar14);
          plVar14 = (longlong *)0x0;
          plVar11 = plVar14;
          if (uVar21 < *(uint *)(param_1 + 0x10c)) {
            plVar11 = *(longlong **)(uVar18 + *(longlong *)(param_1 + 0x100));
          }
          if (((((int)plVar11[0x3d] != 0) || (*(int *)((longlong)plVar11 + 0x1ec) != 0)) ||
              ((int)plVar11[0x3e] != 0)) || (*(int *)((longlong)plVar11 + 500) != 0)) {
            plVar11[0x3d] = 0;
            plVar11[0x3e] = 0;
            uStack_100 = (undefined4)plVar11[5];
            uStack_fc = *(undefined4 *)((longlong)plVar11 + 0x2c);
            local_108 = 0;
            uStack_104 = 0;
            FUN_181342870(0,&local_108,1);
          }
          plVar11 = plVar14;
          if (uVar21 < *(uint *)(param_1 + 0x10c)) {
            plVar11 = *(longlong **)(uVar18 + *(longlong *)(param_1 + 0x100));
          }
          FUN_18134bfe0(plVar11,(ulonglong)((double)(fVar26 - fVar25) + dVar5) & 0xffffffff,
                        (ulonglong)((double)fVar24 + dVar5) & 0xffffffff,
                        (ulonglong)dVar2 & 0xffffffff,local_160);
          cVar15 = local_res8;
          if (local_res8 == '\0') {
            if (uVar21 < *(uint *)(param_1 + 0x11c)) {
              plVar14 = *(longlong **)(uVar18 + *(longlong *)(param_1 + 0x110));
            }
            (**(code **)(*plVar14 + 0x58))();
            uVar16 = DAT_1824c4f30;
            fVar26 = local_res10;
          }
          else {
            dVar1 = (double)(float)((double)fVar26 - (double)fVar25 * dVar4) + dVar5;
            dVar23 = (double)fVar24 + dVar5;
            local_150 = dVar1;
            local_148 = dVar23;
            local_140 = dVar2;
            local_138 = dVar3;
            if (*(code **)(*plVar10 + 8) == .?AUSoothe2VertexData@@::vtbl___AUSoothe2VertexData__) {
              if (*(longlong *)(param_1 + 0xb8) == 0) {
                FUN_180569ff0(param_1);
              }
              uVar7 = *(undefined8 *)(param_1 + 0xb8);
            }
            else {
              uVar7 = (**(code **)(*plVar10 + 8))(plVar10);
            }
            FUN_1813f22a0(uVar7,local_130,DAT_182674188,param_1);
            if (*(code **)(*plVar10 + 8) == .?AUSoothe2VertexData@@::vtbl___AUSoothe2VertexData__) {
              if (*(longlong *)(param_1 + 0xb8) == 0) {
                FUN_180569ff0(param_1);
              }
              uVar7 = *(undefined8 *)(param_1 + 0xb8);
            }
            else {
              uVar7 = (**(code **)(*plVar10 + 8))(plVar10);
            }
            if (uVar21 < *(uint *)(param_1 + 0x11c)) {
              uVar20 = *(undefined8 *)(uVar18 + *(longlong *)(param_1 + 0x110));
            }
            else {
              uVar20 = 0;
            }
            puVar6 = (undefined8 *)FUN_18140e230(local_110,local_12c);
            FUN_1813f0dc0(uVar7,DAT_182674268,*puVar6,uVar20);
            lVar13 = 0;
            lVar12 = lVar13;
            if (uVar21 < *(uint *)(param_1 + 0x11c)) {
              lVar12 = *(longlong *)(uVar18 + *(longlong *)(param_1 + 0x110));
            }
            if (((*(int *)(lVar12 + 0x1e8) != 0) || (*(int *)(lVar12 + 0x1ec) != 0)) ||
               ((*(int *)(lVar12 + 0x1f0) != 0 || (*(int *)(lVar12 + 500) != 0)))) {
              *(undefined8 *)(lVar12 + 0x1e8) = 0;
              *(undefined8 *)(lVar12 + 0x1f0) = 0;
              uStack_f0 = *(undefined4 *)(lVar12 + 0x28);
              uStack_ec = *(undefined4 *)(lVar12 + 0x2c);
              local_f8 = 0;
              uStack_f4 = 0;
              FUN_181342870(0,&local_f8,1);
            }
            if (uVar21 < *(uint *)(param_1 + 0x11c)) {
              lVar13 = *(longlong *)(uVar18 + *(longlong *)(param_1 + 0x110));
            }
            FUN_18134bfe0(lVar13,(ulonglong)dVar1 & 0xffffffff,(ulonglong)dVar23 & 0xffffffff,
                          (ulonglong)dVar2 & 0xffffffff,local_160);
            uVar16 = DAT_1824c4f30;
            cVar15 = local_res8;
            fVar26 = local_res10;
          }
        }
        uVar21 = uVar21 + 1;
        uVar9 = (ulonglong)uVar21;
        local_res20 = (double)((longlong)local_res20 + 4);
        uVar18 = uVar18 + 8;
        bVar22 = uVar21 < *(uint *)(param_1 + 0xec);
      } while ((int)uVar21 < (int)*(uint *)(param_1 + 0xec));
    }
  }
  return;
}



############ FUN_ 180589f40 size=99 ############

void .?AV?$FilterGraphGrid@M@@::vtbl___AV__FilterGraphGrid_M__
               (undefined8 param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  undefined1 local_res18 [16];
  
  puVar1 = (undefined8 *)FUN_18140e230(local_res18,DAT_18262bb74);
  FUN_1813f0dc0(param_2,DAT_182674268,*puVar1,param_1);
  puVar1 = (undefined8 *)FUN_18140e230(local_res18,DAT_182674358);
  FUN_1813f0dc0(param_2,DAT_182674230,*puVar1,param_1);
  return;
}



############ FUN_ 180568990 size=48 ############

undefined8 .?AUSoothe2VertexData@@::vtbl___AUSoothe2VertexData__(longlong param_1)

{
  if (*(longlong *)(param_1 + 8) == 0) {
    FUN_180569ff0(param_1 + -0xb0);
    return *(undefined8 *)(param_1 + 8);
  }
  return *(undefined8 *)(param_1 + 8);
}



############ FUN_ 18058d2b0 size=47 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(undefined8 *param_1)

{
  *param_1 = AudioProcessingModule<float,2>::vftable;
  *(undefined4 *)((longlong)param_1 + 0x54) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[9]);
}



############ FUN_ 18058e450 size=196 ############

void .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__
               (longlong param_1,undefined8 *param_2,float *param_3)

{
  float fVar1;
  undefined1 uVar2;
  int iVar3;
  uint uVar4;
  int *_Memory;
  undefined4 local_res8;
  char *local_res10;
  
  FUN_18049c9e0(&local_res10,*param_2);
  fVar1 = *param_3;
  iVar3 = atoi(local_res10);
  if (iVar3 < 0) {
    uVar4 = *(uint *)(local_res10 + -0x10);
  }
  else {
    if (0.0 < fVar1) {
      if (fVar1 < DAT_1824c3ea4) {
        uVar2 = (undefined1)(int)(fVar1 * DAT_1824c454c);
      }
      else {
        uVar2 = 0xff;
      }
    }
    else {
      uVar2 = 0;
    }
    local_res8 = CONCAT13(uVar2,(int3)*(undefined4 *)
                                       (*(longlong *)(param_1 + 8) + 0x99c4 + (longlong)iVar3 * 4));
    *(undefined4 *)(*(longlong *)(param_1 + 8) + 0x99c4 + (longlong)iVar3 * 4) = local_res8;
    *(undefined1 *)(*(longlong *)(param_1 + 8) + 0x9a01) = 1;
    uVar4 = *(uint *)(local_res10 + -0x10);
  }
  _Memory = (int *)(local_res10 + -0x10);
  if ((uVar4 & 0x30000000) == 0) {
    LOCK();
    iVar3 = *_Memory;
    *_Memory = *_Memory + -1;
    UNLOCK();
    if (iVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  return;
}



############ FUN_ 180535ed0 size=52 ############

void * .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__(void *param_1,ulonglong param_2)

{
  FUN_180535f10();
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    free(param_1);
  }
  return param_1;
}



############ FUN_ 180529c60 size=548 ############

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

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__
               (longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
               int param_5)

{
  uint *puVar1;
  uint uVar2;
  undefined8 uVar3;
  int iVar4;
  int iVar5;
  longlong lVar6;
  float fVar7;
  float fVar8;
  double dVar9;
  double dVar10;
  
  LOCK();
  puVar1 = (uint *)(param_1 + 0x2404dc);
  uVar2 = *puVar1;
  *puVar1 = *puVar1 | 1;
  UNLOCK();
  if ((uVar2 & 1) == 0) {
    lVar6 = (longlong)param_5;
    iVar4 = *(int *)(param_1 + 100) / 2;
    iVar5 = iVar4 + 1;
    FUN_1805355d0(*(undefined8 *)(param_1 + 0x540678 + lVar6 * 0x10),param_2,iVar5);
    if (0 < *(int *)(param_1 + 0x1b0)) {
      lVar6 = *(longlong *)(param_1 + 0x540678 + lVar6 * 0x10);
      FUN_180530080(lVar6,lVar6 + 4,iVar4);
      FUN_18052d920(lVar6);
      uVar3 = *(undefined8 *)(param_1 + 0x5406f8);
      iVar5 = __std_type_info_compare(0x182650db8,0x182650db8);
      if (iVar5 == 0) {
                    /* WARNING: Subroutine does not return */
        thunk_FUN_181ba94b0();
      }
                    /* WARNING: Subroutine does not return */
      thunk_FUN_181ba94b0(lVar6 + 4,lVar6,uVar3,iVar4);
    }
    uVar3 = *(undefined8 *)(param_1 + 0x540678 + lVar6 * 0x10);
    fVar7 = (float)FUN_1804d56b0(uVar3,iVar5);
    fVar8 = expf((*(float *)(param_1 + 0x54087c) * DAT_1824c4478 - DAT_1824c44d0) * _DAT_1824c3cd4);
    FUN_18052d8a0(uVar3,uVar3,fVar8 * fVar7,iVar5);
    dVar10 = (double)((*(float *)(param_1 + 0x24) / (float)*(int *)(param_1 + 0x1a0)) *
                     (float)*(int *)(param_1 + 0x1ac)) * DAT_1824c3e30;
    dVar9 = (double)fmax(DAT_1824c42d8,DAT_1824c3cf8);
    dVar10 = pow(DAT_1824c3f70,DAT_1824c4140 / (dVar9 * dVar10));
    FUN_18052d920(*(undefined8 *)(param_1 + 0x5407a8 + lVar6 * 0x10));
    FUN_18052dae0(*(undefined8 *)(param_1 + 0x5407a8 + lVar6 * 0x10),
                  *(undefined8 *)(param_1 + 0x540678 + lVar6 * 0x10),DAT_1824c3ea4 - (float)dVar10,
                  iVar5);
    FUN_18052dbc0(*(undefined8 *)(param_1 + 0x540678 + lVar6 * 0x10),
                  *(undefined8 *)(param_1 + 0x5407a8 + lVar6 * 0x10),iVar5);
    LOCK();
    *(undefined4 *)(param_1 + 0x2404dc) = 0;
    UNLOCK();
  }
  return;
}



############ FUN_ 180529fe0 size=2051 ############

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__
               (longlong param_1,undefined8 param_2,int param_3,int param_4)

{
  uint *puVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  float fVar4;
  uint uVar5;
  longlong lVar6;
  int iVar7;
  int iVar8;
  longlong lVar9;
  undefined8 *puVar10;
  float fVar11;
  double dVar12;
  float fVar13;
  float fVar14;
  float fVar15;
  float fVar16;
  float fVar17;
  
  LOCK();
  puVar1 = (uint *)(param_1 + 0x2404dc);
  uVar5 = *puVar1;
  *puVar1 = *puVar1 | 1;
  UNLOCK();
  if ((uVar5 & 1) == 0) {
    uVar5 = *(int *)(param_1 + 0x2404e0) + 0x3cdcaU & 0x8000007f;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xffffff80) + 1;
    }
    *(uint *)(param_1 + 0x2404e0) = uVar5;
    fVar4 = DAT_1824c3c58;
    fVar17 = *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar5 * 4);
    fVar15 = (float)DAT_18262b704;
    fVar11 = *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                       (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4);
    fVar13 = (float)DAT_18262b5c8;
    uVar5 = *(int *)(param_1 + 0x2404e0) + 0x140236U & 0x8000007f;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xffffff80) + 1;
    }
    *(uint *)(param_1 + 0x2404e0) = uVar5;
    iVar8 = (int)(fVar13 * fVar11 * fVar15 * fVar17 + fVar4) * DAT_18262b700 -
            (int)((float)DAT_18262b5c8 *
                  *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                            (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                  (float)DAT_18262b704 *
                  *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar5 * 4) + fVar4)
            * DAT_18262b700;
    uVar5 = *(int *)(param_1 + 0x2404e0) + 0x10d56U & 0x8000007f;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xffffff80) + 1;
    }
    *(uint *)(param_1 + 0x2404e0) = uVar5;
    iVar7 = (int)((float)DAT_18262b5c8 *
                  *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                            (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                  (float)DAT_18262b704 *
                  *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar5 * 4) + fVar4)
            * DAT_18262b700;
    uVar5 = *(int *)(param_1 + 0x2404e0) + 0xdf6b6U & 0x8000007f;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xffffff80) + 1;
    }
    *(uint *)(param_1 + 0x2404e0) = uVar5;
    fVar17 = (float)((int)((float)DAT_18262b5c8 *
                           *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                                     (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                           (float)DAT_18262b704 *
                           *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar5 * 4)
                          + fVar4) * DAT_18262b700);
    uVar5 = *(int *)(param_1 + 0x2404e0) + 0xa8c5eU & 0x8000007f;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xffffff80) + 1;
    }
    *(uint *)(param_1 + 0x2404e0) = uVar5;
    fVar15 = DAT_1824c41e0;
    fVar11 = *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar5 * 4);
    fVar16 = (float)DAT_18262b704;
    fVar13 = *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                       (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4);
    fVar14 = (float)DAT_18262b5c8;
    uVar5 = *(int *)(param_1 + 0x2404e0) + 0x72916U & 0x8000007f;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xffffff80) + 1;
    }
    *(uint *)(param_1 + 0x2404e0) = uVar5;
    lVar6 = (longlong)param_4;
    iVar7 = iVar7 + param_3 / ((int)(fVar14 * fVar13 * fVar16 * fVar11 + fVar4) * DAT_18262b700 +
                              (int)((float)DAT_18262b5c8 *
                                    *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                                              (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                                    (float)DAT_18262b704 *
                                    *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                                              (longlong)(int)uVar5 * 4) + fVar4) * DAT_18262b700);
    if (1 < param_4) {
      puVar10 = (undefined8 *)(param_1 + 0x540678 + (longlong)iVar8 * 0x10);
      FUN_18052dbc0(*(undefined8 *)(param_1 + 0x5406f8),*puVar10,iVar7);
      if (1 < lVar6) {
        uVar2 = *(undefined8 *)(param_1 + 0x540688);
        uVar3 = *(undefined8 *)(param_1 + 0x5406f8);
        iVar8 = __std_type_info_compare(0x182650db8,0x182650db8);
        if (iVar8 != 0) {
                    /* WARNING: Subroutine does not return */
          thunk_FUN_181ba94b0(uVar3,uVar2,uVar3,iVar7);
        }
                    /* WARNING: Subroutine does not return */
        thunk_FUN_181ba94b0();
      }
      FUN_18052d920(*(undefined8 *)(param_1 + 0x5406f8),fVar17 / (float)param_4,iVar7);
      fVar11 = powf(*(float *)(param_1 + 0x2c),fVar15);
      if (iVar8 < lVar6) {
        uVar2 = *puVar10;
        iVar8 = __std_type_info_compare(0x182650db8,0x182650db8);
        if (iVar8 != 0) {
                    /* WARNING: Subroutine does not return */
          thunk_FUN_181ba94b0((double)(fVar17 - fVar11),uVar2,iVar7);
        }
                    /* WARNING: Subroutine does not return */
        thunk_FUN_181ba94b0();
      }
    }
    lVar9 = (longlong)iVar8;
    if (lVar9 < lVar6) {
      fVar17 = (fVar17 / (float)*(int *)(param_1 + 0x1a0)) * *(float *)(param_1 + 0x540870);
      if (*(char *)(param_1 + 0x5408b8) != '\0') {
        dVar12 = exp(0.0);
        fVar17 = (float)(int)dVar12 * fVar17;
      }
      fVar11 = *(float *)(param_1 + 0x54088c);
      uVar2 = *(undefined8 *)(param_1 + 0x540678 + lVar9 * 0x10);
      iVar8 = __std_type_info_compare(0x182650db8,0x182650db8);
      if (iVar8 != 0) {
                    /* WARNING: Subroutine does not return */
        thunk_FUN_181ba94b0((double)(fVar17 * fVar11),uVar2,iVar7);
      }
                    /* WARNING: Subroutine does not return */
      thunk_FUN_181ba94b0();
    }
    if (*(char *)(param_1 + 0x2404bc) != '\0') {
      LOCK();
      *(undefined1 *)(param_1 + 0x2404bd) = 1;
      UNLOCK();
      LOCK();
      puVar1 = (uint *)(param_1 + 0x2404b8);
      uVar5 = *puVar1;
      *puVar1 = *puVar1 | 1;
      UNLOCK();
      if ((uVar5 & 1) == 0) {
        if (0 < *(int *)(param_1 + 0x30)) {
          if (*(char *)(param_1 + 0x5408af) == '\0') {
            uVar2 = *(undefined8 *)(param_1 + 0x540728);
            uVar3 = *(undefined8 *)(param_1 + 0x540678);
            iVar8 = __std_type_info_compare(0x182650db8,0x182650db8);
            if (iVar8 != 0) {
                    /* WARNING: Subroutine does not return */
              thunk_FUN_181ba94b0(uVar3,uVar2,uVar2,iVar7);
            }
                    /* WARNING: Subroutine does not return */
            thunk_FUN_181ba94b0();
          }
          iVar8 = __std_type_info_compare(0x182650db8,0x182650db8);
          if (iVar8 != 0) {
                    /* WARNING: Subroutine does not return */
            thunk_FUN_181ba94b0();
          }
                    /* WARNING: Subroutine does not return */
          thunk_FUN_181ba94b0();
        }
        if (*(char *)(param_1 + 0x5408af) != '\0') {
          LOCK();
          *(undefined1 *)(param_1 + 0x5408af) = 0;
          UNLOCK();
        }
        LOCK();
        *(undefined4 *)(param_1 + 0x2404b8) = 0;
        UNLOCK();
      }
    }
    fVar17 = expf(DAT_1824c4704);
    fVar17 = *(float *)(param_1 + 0x540874) - fVar17;
    if ((*(char *)(param_1 + 0x540891) == '\0') && (lVar9 < lVar6)) {
      uVar2 = *(undefined8 *)(param_1 + 0x540678 + lVar9 * 0x10);
      if (*(char *)(param_1 + 0x540890) == '\0') {
        fVar17 = fVar17 * *(float *)(param_1 + 0x540888);
        iVar8 = __std_type_info_compare(0x182650db8,0x182650db8);
        if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
          thunk_FUN_181ba94b0();
        }
      }
      else {
        iVar8 = __std_type_info_compare();
        if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
          thunk_FUN_181ba94b0();
        }
      }
                    /* WARNING: Subroutine does not return */
      thunk_FUN_181ba94b0((double)fVar17,uVar2,iVar7);
    }
    LOCK();
    *(undefined4 *)(param_1 + 0x2404dc) = 0;
    UNLOCK();
  }
  return;
}



############ FUN_ 180529ef0 size=227 ############

ulonglong .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__(longlong param_1)

{
  uint *puVar1;
  uint uVar2;
  ulonglong in_RAX;
  
  LOCK();
  puVar1 = (uint *)(param_1 + 0x2404dc);
  uVar2 = *puVar1;
  *puVar1 = *puVar1 | 1;
  UNLOCK();
  if ((uVar2 & 1) == 0) {
    if (*(int *)(param_1 + 0x5408a8) < 1) {
      *(int *)(param_1 + 0x5408a8) =
           (int)(*(int *)(param_1 + 0x1ac) + (*(int *)(param_1 + 0x1ac) >> 0x1f & 3U)) >> 2;
      if (*(char *)(param_1 + 0x54089c) != '\0') {
        *(undefined1 *)(param_1 + 0x54089c) = 0;
        LOCK();
        uVar2 = *(uint *)(param_1 + 0x2404dc);
        *(uint *)(param_1 + 0x2404dc) = 0;
        UNLOCK();
        return (ulonglong)uVar2;
      }
      if ((*(char *)(param_1 + 0x54089d) != '\0') || (*(char *)(param_1 + 0x54089e) != '\0')) {
        FUN_180530b60();
        *(undefined2 *)(param_1 + 0x54089d) = 0;
        LOCK();
        uVar2 = *(uint *)(param_1 + 0x2404dc);
        *(uint *)(param_1 + 0x2404dc) = 0;
        UNLOCK();
        return (ulonglong)uVar2;
      }
      if (*(char *)(param_1 + 0x54089f) != '\0') {
        FUN_180530d30();
        *(undefined1 *)(param_1 + 0x54089f) = 0;
        LOCK();
        uVar2 = *(uint *)(param_1 + 0x2404dc);
        *(uint *)(param_1 + 0x2404dc) = 0;
        UNLOCK();
        return (ulonglong)uVar2;
      }
      if (*(char *)(param_1 + 0x5408a0) != '\0') {
        FUN_180530d30();
        *(undefined1 *)(param_1 + 0x5408a0) = 0;
        LOCK();
        uVar2 = *(uint *)(param_1 + 0x2404dc);
        *(uint *)(param_1 + 0x2404dc) = 0;
        UNLOCK();
        return (ulonglong)uVar2;
      }
    }
    else {
      *(int *)(param_1 + 0x5408a8) = *(int *)(param_1 + 0x5408a8) + -1;
    }
    LOCK();
    uVar2 = *(uint *)(param_1 + 0x2404dc);
    *(uint *)(param_1 + 0x2404dc) = 0;
    in_RAX = (ulonglong)uVar2;
    UNLOCK();
  }
  return in_RAX;
}



############ FUN_ 18052bba0 size=68 ############

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

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__(longlong param_1,float param_2)

{
  float fVar1;
  
  fVar1 = expf((param_2 * DAT_1824c4348 + _DAT_1824c44a4) * _DAT_1824c3cd4);
  *(int *)(param_1 + 0x5408a4) = *(int *)(param_1 + 0x5408a4) + 1;
  *(float *)(param_1 + 0x540870) = fVar1;
  *(undefined1 *)(param_1 + 0x54089c) = 1;
  return;
}



############ FUN_ 18052bad0 size=39 ############

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

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__(longlong param_1,float param_2)

{
  float fVar1;
  
  fVar1 = expf(param_2 * _DAT_1824c3cd4);
  *(float *)(param_1 + 0x540888) = fVar1;
  return;
}



############ FUN_ 18052baa0 size=39 ############

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

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__(longlong param_1,float param_2)

{
  float fVar1;
  
  fVar1 = expf(param_2 * _DAT_1824c3cd4);
  *(float *)(param_1 + 0x54088c) = fVar1;
  return;
}



############ FUN_ 18052ba50 size=71 ############

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__(longlong param_1,float param_2)

{
  float fVar1;
  float fVar2;
  
  if (*(int *)(param_1 + 0x30) == 2) {
    fVar1 = param_2 * DAT_1824c41e0;
    if (DAT_1824c3ea4 <= param_2 * DAT_1824c41e0) {
      fVar1 = DAT_1824c3ea4;
    }
    fVar2 = (DAT_1824c3ea4 - param_2) * DAT_1824c41e0;
    if (DAT_1824c3ea4 <= fVar2) {
      fVar2 = DAT_1824c3ea4;
    }
    *(float *)(param_1 + 0x20) = fVar1;
    *(float *)(param_1 + 0x1c) = fVar2;
    return;
  }
  *(undefined4 *)(param_1 + 0x1c) = 0x3f800000;
  *(undefined4 *)(param_1 + 0x20) = 0x3f800000;
  return;
}



############ FUN_ 18052b9b0 size=104 ############

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__
               (longlong param_1,undefined4 param_2,int param_3)

{
  int iVar1;
  
  *(undefined4 *)(param_1 + 0x240498 + (longlong)param_3 * 4) = param_2;
  *(undefined1 *)(param_1 + 0x5408ad) = 1;
  iVar1 = *(int *)(param_1 + 0x2404cc);
  while( true ) {
    if (iVar1 < 1) {
      return;
    }
    iVar1 = iVar1 + -1;
    if ((*(int *)(param_1 + 0x2404cc) <= iVar1) &&
       (iVar1 = *(int *)(param_1 + 0x2404cc) + -1, iVar1 < 0)) break;
    FUN_180492ef8(*(undefined8 *)(*(longlong *)(param_1 + 0x2404c0) + (longlong)iVar1 * 8));
  }
  return;
}



############ FUN_ 180537bd0 size=109 ############

void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__(longlong param_1,float *param_2)

{
  undefined4 uVar1;
  longlong lVar2;
  undefined4 local_res8;
  
  local_res8 = SUB84((double)*param_2 + DAT_1824c4520,0);
  uVar1 = *(undefined4 *)(DAT_182673f50 + (longlong)local_res8 * 4);
  lVar2 = *(longlong *)(*(longlong *)(param_1 + 8) + 0x168);
  if (5 < *(uint *)(lVar2 + 0x444)) {
    *(undefined4 *)(*(longlong *)(*(longlong *)(lVar2 + 0x438) + 0x28) + 0x800) = uVar1;
    *(undefined1 *)(lVar2 + 0x24046c) = 1;
    FUN_18052fc30();
    return;
  }
  uRam0000000000000800 = uVar1;
  *(undefined1 *)(lVar2 + 0x24046c) = 1;
  FUN_18052fc30();
  return;
}



############ FUN_ 180537410 size=30 ############

void FUN_180537410(longlong param_1,float *param_2)

{
  longlong *plVar1;
  
  plVar1 = *(longlong **)(*(longlong *)(param_1 + 8) + 0x168);
                    /* WARNING: Could not recover jumptable at 0x00018053742a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(*plVar1 + 0x68))(plVar1,*param_2 * DAT_1824c3cb8);
  return;
}



############ FUN_ 1805334e0 size=122 ############

void FUN_1805334e0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)

{
  longlong lVar1;
  int iVar2;
  int local_18;
  undefined4 local_14;
  
  FUN_18052f640(param_1,&local_18,param_4,0,0);
  lVar1 = *(longlong *)(param_1 + 0x20);
  iVar2 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0();
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_3,lVar1 + (longlong)local_18 * 4,param_2,local_14);
}



############ FUN_ 18052db50 size=104 ############

void FUN_18052db50(undefined8 param_1,undefined8 param_2,undefined4 param_3)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(param_2);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0((double)(float)param_2,param_1,param_3);
}



############ FUN_ 1805335c0 size=126 ############

void FUN_1805335c0(undefined4 *param_1,undefined8 param_2,int param_3)

{
  int iVar1;
  double dVar2;
  double dVar3;
  undefined1 local_res10 [8];
  undefined1 local_res18 [8];
  undefined1 local_res20 [8];
  
  dVar2 = log((double)param_3);
  dVar3 = log(DAT_1824c41e8);
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0();
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0((int)(dVar2 / dVar3),*param_1,1,local_res18,local_res20,local_res10);
}



############ FUN_ 180534550 size=115 ############

void FUN_180534550(longlong *param_1,int param_2)

{
  longlong lVar1;
  ulonglong uVar2;
  uint uVar3;
  ulonglong uVar4;
  
  uVar2 = 0;
  if ((int)param_1[1] != param_2) {
    if ((0 < (int)param_1[1]) && (*param_1 != 0)) {
      FUN_1800010c0();
    }
    *param_1 = 0;
    if (param_2 < 0) {
      param_2 = 0;
    }
    *(int *)(param_1 + 1) = param_2;
    if (param_2 == 0) {
      return;
    }
    lVar1 = FUN_180001080(param_2);
    *param_1 = lVar1;
  }
  uVar4 = uVar2;
  if (0 < (int)param_1[1]) {
    do {
      uVar3 = (int)uVar4 + 1;
      *(undefined1 *)(uVar2 + *param_1) = 0;
      uVar2 = uVar2 + 1;
      uVar4 = (ulonglong)uVar3;
    } while ((int)uVar3 < (int)param_1[1]);
  }
  return;
}



############ FUN_ 18052da70 size=78 ############

void FUN_18052da70(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0();
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,param_3,param_1,param_4);
}



############ FUN_ 1805356f0 size=395 ############

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

void FUN_1805356f0(undefined8 *param_1,uint param_2)

{
  double dVar1;
  double dVar2;
  double dVar3;
  int iVar4;
  int iVar5;
  double dVar6;
  double dVar7;
  uint uVar8;
  int iVar9;
  undefined8 *puVar10;
  float *pfVar11;
  double dVar12;
  double dVar13;
  undefined1 auVar14 [16];
  undefined1 auVar15 [16];
  double extraout_XMM0_Qb;
  double dVar16;
  
  dVar7 = _UNK_1824c4e08;
  dVar6 = _DAT_1824c4e00;
  dVar13 = _UNK_1824c4da8;
  dVar3 = _DAT_1824c4da0;
  dVar2 = _UNK_1824c4c98;
  dVar1 = _DAT_1824c4c90;
  iVar5 = _UNK_1824c4884;
  iVar4 = _DAT_1824c4880;
  if (0 < (int)param_2) {
    iVar9 = 0;
    dVar16 = (double)(int)param_2;
    if (1 < param_2) {
      uVar8 = param_2 & 0x80000001;
      if ((int)uVar8 < 0) {
        uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
      }
      puVar10 = param_1;
      do {
        auVar14._0_8_ = (double)(iVar9 + iVar4) * dVar6;
        auVar14._8_8_ = (double)(iVar9 + iVar5) * dVar7;
        auVar15._8_4_ = SUB84(dVar16,0);
        auVar15._0_8_ = dVar16;
        auVar15._12_4_ = (int)((ulonglong)dVar16 >> 0x20);
        auVar15 = divpd(auVar14,auVar15);
        dVar12 = (double)thunk_FUN_181a114e0(auVar15._0_8_);
        iVar9 = iVar9 + 2;
        *puVar10 = CONCAT44((float)((dVar13 - extraout_XMM0_Qb) * dVar2),
                            (float)((dVar3 - dVar12) * dVar1));
        puVar10 = puVar10 + 1;
      } while (iVar9 < (int)(param_2 - uVar8));
    }
    dVar3 = DAT_1824c4248;
    dVar2 = DAT_1824c4140;
    dVar1 = DAT_1824c4050;
    if (iVar9 < (int)param_2) {
      pfVar11 = (float *)((longlong)param_1 + (longlong)iVar9 * 4);
      do {
        dVar13 = cos(((double)iVar9 * dVar3) / dVar16);
        iVar9 = iVar9 + 1;
        *pfVar11 = (float)((dVar2 - dVar13) * dVar1);
        pfVar11 = pfVar11 + 1;
      } while (iVar9 < (int)param_2);
    }
  }
  return;
}



############ FUN_ 18048a300 size=194 ############

void FUN_18048a300(longlong *param_1,int param_2)

{
  int iVar1;
  longlong lVar2;
  void *_Memory;
  void *pvVar3;
  int *_Memory_00;
  longlong lVar4;
  int iVar5;
  
  if ((int)param_1[1] == param_2) {
    *(int *)(param_1 + 1) = param_2;
    return;
  }
  if (param_2 < 1) {
                    /* WARNING: Subroutine does not return */
    free((void *)*param_1);
  }
  pvVar3 = malloc((longlong)param_2 << 3);
  iVar5 = 0;
  if (0 < *(int *)((longlong)param_1 + 0xc)) {
    lVar4 = 0;
    do {
      lVar2 = *param_1;
      *(undefined8 *)(lVar4 + (longlong)pvVar3) = *(undefined8 *)(lVar2 + lVar4);
      *(undefined1 **)(lVar2 + lVar4) = &DAT_1821dbf98;
      _Memory_00 = (int *)(*(longlong *)(lVar4 + *param_1) + -0x10);
      if ((*(uint *)(*(longlong *)(lVar4 + *param_1) + -0x10) & 0x30000000) == 0) {
        LOCK();
        iVar1 = *_Memory_00;
        *_Memory_00 = *_Memory_00 + -1;
        UNLOCK();
        if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
          free(_Memory_00);
        }
      }
      iVar5 = iVar5 + 1;
      lVar4 = lVar4 + 8;
    } while (iVar5 < *(int *)((longlong)param_1 + 0xc));
  }
  _Memory = (void *)*param_1;
  *param_1 = (longlong)pvVar3;
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805337e0 size=176 ############

void FUN_1805337e0(longlong param_1)

{
  void *_Memory;
  undefined1 local_98 [16];
  longlong *local_88;
  ulonglong local_60;
  undefined8 local_48;
  
  local_48 = 0xfffffffffffffffe;
  FUN_18124a4b0(local_98,0x100);
  FUN_181247a90();
  if ((local_88 != (longlong *)0x0) && (local_60 < (ulonglong)local_88[1])) {
    *(undefined1 *)(local_60 + *local_88) = 0;
  }
  if (local_60 == 0) {
    _Memory = *(void **)(param_1 + 200);
    *(undefined8 *)(param_1 + 200) = 0;
    *(undefined8 *)(param_1 + 0xd0) = 0;
                    /* WARNING: Subroutine does not return */
    free(_Memory);
  }
                    /* WARNING: Subroutine does not return */
  free((void *)0x0);
}



############ FUN_ 18141b260 size=859 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18141b260(longlong param_1,undefined8 param_2,longlong *param_3,longlong param_4,
                  undefined4 *param_5,ulonglong param_6)

{
  char cVar1;
  longlong lVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  int iVar5;
  undefined1 auStack_488 [32];
  longlong local_468;
  longlong local_460;
  int local_458 [2];
  longlong local_450;
  longlong local_448;
  LARGE_INTEGER local_440;
  __time64_t local_438;
  LARGE_INTEGER local_430;
  __time64_t local_428;
  LARGE_INTEGER local_420;
  __time64_t local_418 [2];
  undefined **local_408;
  undefined8 local_400;
  undefined8 local_3f8;
  undefined8 uStack_3f0;
  undefined8 local_3e8;
  undefined8 uStack_3e0;
  undefined8 local_3d8;
  undefined8 local_3d0;
  undefined8 local_3c8;
  undefined8 uStack_3c0;
  longlong local_3b8;
  undefined8 uStack_3b0;
  undefined8 local_3a8;
  undefined1 local_3a0 [752];
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 uStack_a0;
  undefined4 local_98;
  undefined2 local_94;
  LARGE_INTEGER local_88;
  undefined8 local_80;
  ulonglong local_78;
  __time64_t local_70;
  undefined4 local_68;
  undefined4 uStack_64;
  undefined4 uStack_60;
  undefined4 uStack_5c;
  undefined8 local_58;
  undefined8 uStack_50;
  ulonglong local_48;
  
  local_418[1] = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_488;
  iVar5 = 0;
  if ((((param_6 == 0) || (param_4 == 0)) || (param_5 == (undefined4 *)0x0)) ||
     ((param_6 & 0x1f) != 0)) {
  }
  local_450 = *param_3;
  local_448 = param_3[1];
  param_6 = param_6 >> 5;
  uVar3 = 0;
LAB_18141b2f4:
  if (param_6 == 0) {
  }
  if (iVar5 != 0) {
  }
  if (*(char *)(param_1 + 0xb0) == '\0') goto code_r0x00018141b313;
  goto LAB_18141b4de;
code_r0x00018141b313:
  *(undefined1 *)(param_1 + 0xb1) = 0;
  uVar4 = uVar3 + 1;
  if (99 < uVar3) {
  }
  _time64(&local_438);
  QueryPerformanceCounter(&local_440);
  local_88 = local_440;
  local_80 = *(undefined8 *)(param_1 + 8);
  uVar3 = rdtsc();
  local_78 = CONCAT44((int)((ulonglong)local_80 >> 0x20),(int)uVar3) | uVar3 & 0xffffffff00000000;
  local_70 = local_438;
  lVar2 = FUN_1817b4990(&local_88,&local_68,param_1 + 0x10);
  if (lVar2 != 0) {
    iVar5 = 7;
  }
  uVar3 = uVar4;
  local_458[0] = iVar5;
  if (iVar5 == 0) {
    local_408 = pace::eden::thrift::pub::SetupDynamicCryptoWhiteboxOutput::vftable;
    local_400 = 0;
    local_3f8 = 0;
    uStack_3f0 = 0;
    local_3e8 = 0;
    uStack_3e0 = 0;
    local_3d8 = 0;
    local_3d0 = 0;
    local_3c8 = 0;
    uStack_3c0 = 0;
    local_3b8 = 0;
    uStack_3b0 = 0;
    local_3a8 = 0;
    FUN_180575180(local_3a0);
    local_b0 = 0;
    local_a8 = 0;
    uStack_a0 = 0;
    local_98 = 0;
    local_94 = 0;
    cVar1 = .?AVSoothe2_DynamicCryptoManager@eden@pace@@::
            vtbl___AVSoothe2_DynamicCryptoManager_eden_pace__
                      (param_1,&local_68,&local_408,local_458);
    *(char *)(param_1 + 0xb1) = cVar1;
    iVar5 = local_458[0];
    if (cVar1 != '\0') {
      _time64(&local_428);
      QueryPerformanceCounter(&local_430);
      local_88 = local_430;
      local_80 = *(undefined8 *)(param_1 + 8);
      uVar4 = rdtsc();
      local_78 = CONCAT44((int)((ulonglong)local_80 >> 0x20),(int)uVar4) |
                 uVar4 & 0xffffffff00000000;
      local_70 = local_428;
      local_468 = local_3b8;
      local_460 = param_1 + 0x10;
      lVar2 = FUN_181a01ad0(&local_88,local_400,local_3e8,local_3d0);
      iVar5 = local_458[0];
      if (lVar2 != 0) {
        iVar5 = 8;
      }
      *(bool *)(param_1 + 0xb0) = iVar5 == 0;
    }
    FUN_1805759d0(&local_408);
    if ((iVar5 == 0) && (*(char *)(param_1 + 0xb0) != '\0')) {
LAB_18141b4de:
      if (param_6 == 0) {
      }
      do {
        _time64(local_418);
        QueryPerformanceCounter(&local_420);
        local_88 = local_420;
        local_80 = *(undefined8 *)(param_1 + 8);
        uVar4 = rdtsc();
        local_78 = CONCAT44((int)((ulonglong)local_80 >> 0x20),(int)uVar4) |
                   uVar4 & 0xffffffff00000000;
        local_70 = local_418[0];
        local_468 = param_1 + 0x10;
        lVar2 = FUN_1817217c0(&local_88,&local_450,param_4,&local_68);
        if (lVar2 != 0) {
          *(undefined2 *)(param_1 + 0xb0) = 0;
          break;
        }
        *param_5 = local_68;
        param_5[1] = uStack_64;
        param_5[2] = uStack_60;
        param_5[3] = uStack_5c;
        *(undefined8 *)(param_5 + 4) = local_58;
        *(undefined8 *)(param_5 + 6) = uStack_50;
        param_4 = param_4 + 0x20;
        param_5 = param_5 + 8;
        local_450 = local_450 + 1;
        param_6 = param_6 - 1;
      } while (param_6 != 0);
    }
  }
  goto LAB_18141b2f4;
}



############ FUN_ 18049c4e0 size=389 ############

undefined8 * FUN_18049c4e0(undefined8 *param_1,byte *param_2)

{
  byte bVar1;
  byte *pbVar2;
  undefined4 *puVar3;
  byte *pbVar4;
  byte bVar5;
  int iVar6;
  longlong lVar7;
  uint uVar8;
  longlong lVar9;
  ulonglong uVar10;
  int iVar11;
  
  if ((param_2 != (byte *)0x0) && (bVar1 = *param_2, bVar1 != 0)) {
    lVar9 = 0;
    if (bVar1 != 0) {
      pbVar2 = param_2 + 1;
      do {
        uVar8 = (uint)bVar1;
        lVar7 = 1;
        if (((0x7f < uVar8) && (lVar7 = 2, 0x7ff < uVar8)) && (lVar7 = 3, 0xffff < uVar8)) {
          lVar7 = 4;
        }
        bVar1 = *pbVar2;
        lVar9 = lVar9 + lVar7;
        pbVar2 = pbVar2 + 1;
      } while (bVar1 != 0);
    }
    uVar10 = lVar9 + 4U & 0xfffffffffffffffc;
    puVar3 = (undefined4 *)thunk_FUN_1811316e0(uVar10 + 0x17);
    LOCK();
    *puVar3 = 0;
    UNLOCK();
    *(ulonglong *)(puVar3 + 2) = uVar10;
    bVar1 = *param_2;
    pbVar2 = param_2 + 1;
    pbVar4 = (byte *)(puVar3 + 4);
    while (bVar1 != 0) {
      uVar8 = (uint)bVar1;
      if (uVar8 < 0x80) {
        *pbVar4 = bVar1;
        pbVar4 = pbVar4 + 1;
      }
      else {
        iVar11 = 1;
        if ((0x7ff < uVar8) && (iVar11 = 2, 0xffff < uVar8)) {
          iVar11 = 3;
        }
        *pbVar4 = bVar1 >> (char)iVar11 * '\x06' | -1 << (7U - (char)iVar11 & 0x1f);
        pbVar4 = pbVar4 + 1;
        iVar11 = iVar11 + -1;
        if (-1 < iVar11) {
          iVar6 = iVar11 * 6;
          do {
            bVar5 = (byte)iVar6;
            iVar6 = iVar6 + -6;
            *pbVar4 = bVar1 >> (bVar5 & 0x1f) & 0x3f | 0x80;
            pbVar4 = pbVar4 + 1;
            iVar11 = iVar11 + -1;
          } while (-1 < iVar11);
        }
      }
      bVar1 = *pbVar2;
      pbVar2 = pbVar2 + 1;
    }
    *pbVar4 = 0;
    *param_1 = puVar3 + 4;
    return param_1;
  }
  *param_1 = &DAT_1821dbf98;
  return param_1;
}



############ FUN_ 18124a200 size=158 ############

void FUN_18124a200(undefined8 *param_1,size_t param_2,char param_3)

{
  ulonglong uVar1;
  void *pvVar2;
  undefined1 local_28 [32];
  
  if (param_1[1] != param_2) {
    pvVar2 = (void *)*param_1;
    if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
      free(pvVar2);
    }
    if (pvVar2 == (void *)0x0) {
      FUN_180481140(param_1,param_2,param_3);
    }
    else {
      pvVar2 = realloc(pvVar2,param_2);
      *param_1 = pvVar2;
      if (pvVar2 == (void *)0x0) {
        FUN_1804719e0(local_28);
                    /* WARNING: Subroutine does not return */
        _CxxThrowException(local_28,(ThrowInfo *)&DAT_1825fec68);
      }
      if ((param_3 != '\0') && (uVar1 = param_1[1], uVar1 < param_2)) {
        memset((void *)((longlong)pvVar2 + uVar1),0,param_2 - uVar1);
      }
    }
    param_1[1] = param_2;
  }
  return;
}



############ FUN_ 18123a6f0 size=155 ############

void FUN_18123a6f0(longlong *param_1,void *param_2,int param_3,size_t param_4)

{
  size_t _Size;
  longlong lVar1;
  
  if (param_3 < 0) {
    memset(param_2,0,(longlong)-param_3);
    param_2 = (void *)((longlong)param_2 - (longlong)param_3);
    param_4 = param_4 - (longlong)-param_3;
    param_3 = 0;
  }
  lVar1 = (longlong)param_3;
  _Size = param_4;
  if ((ulonglong)param_1[1] < lVar1 + param_4) {
    _Size = param_1[1] - lVar1;
    memset((void *)(_Size + (longlong)param_2),0,param_4 - _Size);
  }
  if (_Size != 0) {
    memcpy(param_2,(void *)(*param_1 + lVar1),_Size);
  }
  return;
}



############ FUN_ 18113ebf0 size=248 ############

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

void FUN_18113ebf0(HANDLE param_1)

{
  BOOL BVar1;
  DWORD64 local_res10;
  DWORD64 local_res18;
  DWORD64 local_res20;
  DWORD64 local_4e8 [2];
  _CONTEXT local_4d8;
  
  FUN_1805a02a6(&DAT_182674ce8);
  if (DAT_182674ce8 == 0) {
    FUN_1805a0208();
  }
  else {
    FUN_1805a0271(&local_res10,&local_res18,&local_res20,local_4e8);
  }
  local_4d8.ContextFlags = 0x100010;
  BVar1 = GetThreadContext(param_1,&local_4d8);
  if (BVar1 != 0) {
    GetThreadId(param_1);
    local_4d8.Dr0 = local_res10;
    _DAT_182678cf8 = local_res10;
    local_4d8.Dr1 = local_res18;
    _DAT_182678d00 = local_res18;
    local_4d8.Dr2 = local_res20;
    _DAT_182678d08 = local_res20;
    local_4d8.Dr3 = local_4e8[0];
    _DAT_182678d10 = local_4e8[0];
    local_4d8.Dr7 = (ulonglong)((uint)local_4d8.Dr7 & 0xdd00) | 0x55;
    SetThreadContext(param_1,&local_4d8);
  }
  return;
}



############ FUN_ 18113f2d0 size=37 ############

undefined8 FUN_18113f2d0(void)

{
  undefined8 uVar1;
  
  if (((byte)DAT_182674ca4 & 2) == 0) {
    uVar1 = FUN_18113f300();
    if ((int)uVar1 == 0) {
      return uVar1;
    }
  }
  return 1;
}



############ FUN_ 18114b631 size=307 ############

void FUN_18114b631(void)

{
  longlong unaff_retaddr;
  
                    /* WARNING: Could not recover jumptable at 0x00018114b766. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(unaff_retaddr + -0xbb60))();
  return;
}



############ FUN_ 18123db10 size=180 ############

undefined8 * FUN_18123db10(undefined8 *param_1,longlong *param_2)

{
  uint uVar1;
  longlong lVar2;
  int iVar3;
  int iVar4;
  undefined8 *_Dst;
  longlong *plVar5;
  
  *param_1 = 0;
  param_1[3] = param_2[3];
  plVar5 = (longlong *)*param_2;
  if (plVar5 == (longlong *)0x0) {
    plVar5 = param_2 + 1;
  }
  iVar3 = (int)param_2[4] >> 5;
  lVar2 = (longlong)iVar3;
  if (-1 < iVar3) {
    do {
      uVar1 = *(uint *)((longlong)plVar5 + lVar2 * 4);
      if (uVar1 != 0) {
        iVar4 = 0x1f;
        if (uVar1 != 0) {
          for (; uVar1 >> iVar4 == 0; iVar4 = iVar4 + -1) {
          }
        }
        iVar4 = iVar3 * 0x20 + iVar4;
        goto LAB_18123db65;
      }
      iVar3 = iVar3 + -1;
      lVar2 = lVar2 + -1;
    } while (-1 < lVar2);
  }
  iVar4 = -1;
LAB_18123db65:
  *(int *)(param_1 + 4) = iVar4;
  *(undefined1 *)((longlong)param_1 + 0x24) = *(undefined1 *)((longlong)param_2 + 0x24);
  if (4 < (ulonglong)param_1[3]) {
                    /* WARNING: Subroutine does not return */
    free((void *)*param_1);
  }
  plVar5 = (longlong *)*param_2;
  if (plVar5 == (longlong *)0x0) {
    plVar5 = param_2 + 1;
  }
  _Dst = (undefined8 *)*param_1;
  if (_Dst == (undefined8 *)0x0) {
    _Dst = param_1 + 1;
  }
  memcpy(_Dst,plVar5,param_1[3] << 2);
  return param_1;
}



############ FUN_ 1804d5cd0 size=204 ############

void FUN_1804d5cd0(longlong *param_1,int param_2)

{
  undefined8 *puVar1;
  void *_Memory;
  undefined8 uVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  
  if ((int)param_1[1] == param_2) {
    *(int *)(param_1 + 1) = param_2;
    return;
  }
  if (0 < param_2) {
    puVar3 = malloc((longlong)param_2 * 0x28);
    if (0 < *(int *)((longlong)param_1 + 0xc)) {
      puVar1 = puVar3 + 4;
      puVar4 = (undefined8 *)((longlong)puVar1 + *param_1 + (-0x20 - (longlong)puVar3));
      *puVar3 = *puVar4;
      *puVar4 = 0;
      puVar3[3] = puVar4[3];
      *(undefined4 *)puVar1 = *(undefined4 *)(puVar4 + 4);
      *(undefined1 *)((longlong)puVar3 + 0x24) = *(undefined1 *)((longlong)puVar4 + 0x24);
      uVar2 = puVar4[2];
      puVar3[1] = puVar4[1];
      puVar3[2] = uVar2;
                    /* WARNING: Subroutine does not return */
      free(*(void **)((longlong)puVar1 + *param_1 + (-0x20 - (longlong)puVar3)));
    }
    _Memory = (void *)*param_1;
    *param_1 = (longlong)puVar3;
                    /* WARNING: Subroutine does not return */
    free(_Memory);
  }
                    /* WARNING: Subroutine does not return */
  free((void *)*param_1);
}



############ FUN_ 181132538 size=31 ############

void FUN_181132538(void)

{
  undefined1 local_28 [40];
  
  FUN_1811324a0(local_28);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_28,(ThrowInfo *)&DAT_1825feb90);
}



############ FUN_ 181132518 size=31 ############

void FUN_181132518(void)

{
  undefined1 local_28 [40];
  
  FUN_1804719e0(local_28);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_28,(ThrowInfo *)&DAT_1825fec68);
}



############ FUN_ 1804d1fe0 size=278 ############

longlong FUN_1804d1fe0(longlong *param_1,void *param_2,undefined8 *param_3)

{
  ulonglong uVar1;
  longlong lVar2;
  void *_Src;
  undefined8 uVar3;
  longlong lVar4;
  void *_Dst;
  ulonglong uVar5;
  void *_Dst_00;
  ulonglong uVar6;
  size_t _Size;
  
  lVar2 = *param_1;
  lVar4 = param_1[1] - lVar2 >> 4;
  if (lVar4 == 0xfffffffffffffff) {
                    /* WARNING: Subroutine does not return */
    FUN_18047cf10();
  }
  uVar5 = param_1[2] - lVar2 >> 4;
  uVar1 = lVar4 + 1;
  uVar6 = uVar1;
  if ((uVar5 <= 0xfffffffffffffff - (uVar5 >> 1)) && (uVar6 = (uVar5 >> 1) + uVar5, uVar6 < uVar1))
  {
    uVar6 = uVar1;
  }
  lVar4 = uVar6 << 4;
  if (0xfffffffffffffff < uVar6) {
    lVar4 = -1;
  }
  _Dst = (void *)FUN_180480500(lVar4);
  uVar3 = param_3[1];
  uVar5 = (longlong)param_2 - lVar2 & 0xfffffffffffffff0;
  *(undefined8 *)(uVar5 + (longlong)_Dst) = *param_3;
  ((undefined8 *)(uVar5 + (longlong)_Dst))[1] = uVar3;
  _Src = (void *)*param_1;
  if (param_2 == (void *)param_1[1]) {
    _Size = param_1[1] - (longlong)_Src;
    _Dst_00 = _Dst;
    param_2 = _Src;
  }
  else {
    memmove(_Dst,_Src,(longlong)param_2 - (longlong)_Src);
    _Size = param_1[1] - (longlong)param_2;
    _Dst_00 = (void *)(uVar5 + 0x10 + (longlong)_Dst);
  }
  memmove(_Dst_00,param_2,_Size);
  FUN_1804d1da0(param_1,_Dst,uVar1,uVar6);
  return *param_1 + uVar5;
}



############ FUN_ 1804d07a0 size=187 ############

void FUN_1804d07a0(longlong param_1,ulonglong param_2)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined8 uVar5;
  longlong lVar6;
  longlong lVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  ulonglong uVar10;
  int iStack_10;
  
  uVar8 = *(longlong *)(param_1 + 0x220) - *(longlong *)(param_1 + 0x218) >> 4;
  if (param_2 < uVar8 - 1) {
    uVar9 = param_2 + 1;
    plVar1 = (longlong *)(param_2 * 0x10 + *(longlong *)(param_1 + 0x218));
    lVar3 = *plVar1;
    lVar4 = plVar1[1];
    if (uVar9 != uVar8) {
      iStack_10 = (int)lVar4;
      lVar6 = uVar9 * 0x10;
      lVar7 = param_2 * 0x10;
      do {
        lVar2 = *(longlong *)(param_1 + 0x218);
        if (iStack_10 <= *(int *)(lVar6 + 8 + lVar2)) break;
        uVar5 = ((undefined8 *)(lVar6 + lVar2))[1];
        *(undefined8 *)(lVar7 + lVar2) = *(undefined8 *)(lVar6 + lVar2);
        ((undefined8 *)(lVar7 + lVar2))[1] = uVar5;
        *(ulonglong *)(*(longlong *)(lVar7 + *(longlong *)(param_1 + 0x218)) + 8) = param_2;
        uVar10 = uVar9 + 1;
        lVar6 = lVar7 + 0x20;
        lVar7 = lVar7 + 0x10;
        param_2 = uVar9;
        uVar9 = uVar10;
      } while (uVar10 != uVar8);
    }
    plVar1 = (longlong *)(*(longlong *)(param_1 + 0x218) + param_2 * 0x10);
    *plVar1 = lVar3;
    plVar1[1] = lVar4;
    *(ulonglong *)(lVar3 + 8) = param_2;
  }
  return;
}



############ FUN_ 1804d0860 size=129 ############

void FUN_1804d0860(longlong param_1,longlong param_2)

{
  longlong *plVar1;
  undefined8 *puVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  undefined8 uVar6;
  longlong lVar7;
  int iStack_10;
  
  if (param_2 != 0) {
    lVar7 = param_2 * 0x10;
    plVar1 = (longlong *)(*(longlong *)(param_1 + 0x218) + lVar7);
    lVar4 = *plVar1;
    lVar5 = plVar1[1];
    iStack_10 = (int)lVar5;
    do {
      lVar3 = *(longlong *)(param_1 + 0x218);
      if (*(int *)(lVar3 + -8 + lVar7) <= iStack_10) break;
      puVar2 = (undefined8 *)(lVar3 + -0x10 + lVar7);
      uVar6 = puVar2[1];
      *(undefined8 *)(lVar3 + lVar7) = *puVar2;
      ((undefined8 *)(lVar3 + lVar7))[1] = uVar6;
      plVar1 = (longlong *)(*(longlong *)(param_1 + 0x218) + lVar7);
      lVar7 = lVar7 + -0x10;
      *(longlong *)(*plVar1 + 8) = param_2;
      param_2 = param_2 + -1;
    } while (param_2 != 0);
    plVar1 = (longlong *)(*(longlong *)(param_1 + 0x218) + param_2 * 0x10);
    *plVar1 = lVar4;
    plVar1[1] = lVar5;
    *(longlong *)(lVar4 + 8) = param_2;
  }
  return;
}



############ FUN_ 181215c10 size=113 ############

void FUN_181215c10(longlong param_1)

{
  int iVar1;
  
  iVar1 = _Mtx_lock(param_1 + 8);
  if (iVar1 != 0) {
    std::_Throw_C_error(iVar1);
  }
  LOCK();
  *(undefined1 *)(param_1 + 0xa0) = 1;
  UNLOCK();
  iVar1 = _Cnd_broadcast(param_1 + 0x58);
  if (iVar1 != 0) {
    std::_Throw_C_error(iVar1);
  }
  iVar1 = _Mtx_unlock(param_1 + 8);
  if (iVar1 != 0) {
    std::_Throw_C_error(iVar1);
  }
  return;
}



############ FUN_ 1804d0200 size=321 ############

undefined8 *
FUN_1804d0200(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  uint uVar2;
  char cVar3;
  uint *_Memory;
  bool bVar4;
  longlong local_res10;
  
  FUN_18049c4e0(&local_res10,"JUCE Timer",param_3,param_4,0xfffffffffffffffe);
  FUN_18122b770(param_1,&local_res10);
  _Memory = (uint *)(local_res10 + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar2 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  FUN_1812a7230(param_1 + 0x40);
  FUN_1812a59f0(param_1 + 0x41);
  *param_1 = juce::Timer::TimerThread::vftable;
  param_1[0x40] = juce::Timer::TimerThread::vftable;
  param_1[0x41] = juce::Timer::TimerThread::vftable;
  plVar1 = param_1 + 0x43;
  *plVar1 = 0;
  param_1[0x44] = 0;
  param_1[0x45] = 0;
  *(undefined1 *)(param_1 + 0x46) = 0;
  _Mtx_init_in_situ(param_1 + 0x47,2);
  _Cnd_init_in_situ(param_1 + 0x51);
  *(undefined1 *)(param_1 + 0x5a) = 0;
  if ((ulonglong)(param_1[0x45] - *plVar1 >> 4) < 0x20) {
    FUN_1804d1b70(plVar1);
  }
  LOCK();
  bVar4 = *(int *)(param_1[0x42] + 0x18) == 0;
  if (bVar4) {
    *(int *)(param_1[0x42] + 0x18) = 1;
  }
  UNLOCK();
  if ((bVar4) && (cVar3 = FUN_1812a6720(param_1[0x42]), cVar3 == '\0')) {
    LOCK();
    *(undefined4 *)(param_1[0x42] + 0x18) = 0;
    UNLOCK();
  }
  return param_1;
}



############ FUN_ 1811310d0 size=33 ############

/* WARNING: This is an inlined function */
/* Library Function - Single Match
    __security_check_cookie
   
   Libraries: Visual Studio 2015, Visual Studio 2017, Visual Studio 2019 */

void __cdecl __security_check_cookie(uintptr_t _StackCookie)

{
  if ((_StackCookie == DAT_182615970) && ((short)(_StackCookie >> 0x30) == 0)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __report_gsfailure(_StackCookie);
}



############ FUN_ 18120c6e0 size=255 ############

void FUN_18120c6e0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined8 *puVar2;
  int iVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  
  uVar5 = 0xfffffffffffffffe;
  iVar3 = _Mtx_lock(&DAT_182673810);
  if (iVar3 != 0) {
    std::_Throw_C_error(iVar3);
  }
  if (DAT_182673930 <= DAT_182673940 + 1U) {
    FUN_180486ad0();
  }
  DAT_182673938 = DAT_182673938 & DAT_182673930 - 1;
  lVar1 = (DAT_182673930 - 1 & DAT_182673938 + DAT_182673940) * 8;
  if (*(longlong *)(lVar1 + DAT_182673928) == 0) {
    uVar4 = FUN_180480500(0x48);
    *(undefined8 *)(lVar1 + DAT_182673928) = uVar4;
  }
  puVar2 = *(undefined8 **)(lVar1 + DAT_182673928);
  *puVar2 = param_2;
  puVar2[8] = 0;
  FUN_180488560(puVar2 + 1,param_1,param_3,param_4,uVar5);
  DAT_182673940 = DAT_182673940 + 1;
  iVar3 = _Mtx_unlock(&DAT_182673810);
  if (iVar3 != 0) {
    std::_Throw_C_error(iVar3);
  }
  return;
}



############ FUN_ 1812b3270 size=321 ############

/* WARNING: Removing unreachable block (ram,0x0001812b32f9) */

void FUN_1812b3270(float *param_1,float param_2,uint param_3)

{
  longlong lVar1;
  uint uVar2;
  ulonglong uVar3;
  float *pfVar4;
  longlong lVar5;
  longlong lVar6;
  longlong lVar7;
  ulonglong uVar8;
  
  uVar2 = (int)(param_3 + ((int)param_3 >> 0x1f & 3U)) >> 2;
  uVar3 = (ulonglong)uVar2;
  if (((ulonglong)param_1 & 0xf) == 0) {
    if (0 < (int)uVar2) {
      do {
        *param_1 = *param_1 * param_2;
        param_1[1] = param_1[1] * param_2;
        param_1[2] = param_1[2] * param_2;
        param_1[3] = param_1[3] * param_2;
        param_1 = param_1 + 4;
        uVar3 = uVar3 - 1;
      } while (uVar3 != 0);
    }
  }
  else if (0 < (int)uVar2) {
    do {
      *param_1 = *param_1 * param_2;
      param_1[1] = param_1[1] * param_2;
      param_1[2] = param_1[2] * param_2;
      param_1[3] = param_1[3] * param_2;
      param_1 = param_1 + 4;
      uVar3 = uVar3 - 1;
    } while (uVar3 != 0);
  }
  param_3 = param_3 & 3;
  if (param_3 != 0) {
    uVar3 = 0;
    uVar2 = 0;
    if ((param_3 != 0) && (0xf < param_3)) {
      pfVar4 = param_1 + 8;
      uVar8 = uVar3;
      do {
        uVar2 = (int)uVar8 + 0x10;
        uVar8 = (ulonglong)uVar2;
        uVar3 = uVar3 + 0x10;
        pfVar4[-8] = pfVar4[-8] * param_2;
        pfVar4[-7] = pfVar4[-7] * param_2;
        pfVar4[-6] = pfVar4[-6] * param_2;
        pfVar4[-5] = pfVar4[-5] * param_2;
        pfVar4[-4] = pfVar4[-4] * param_2;
        pfVar4[-3] = pfVar4[-3] * param_2;
        pfVar4[-2] = pfVar4[-2] * param_2;
        pfVar4[-1] = pfVar4[-1] * param_2;
        *pfVar4 = *pfVar4 * param_2;
        pfVar4[1] = pfVar4[1] * param_2;
        pfVar4[2] = pfVar4[2] * param_2;
        pfVar4[3] = pfVar4[3] * param_2;
        pfVar4[4] = pfVar4[4] * param_2;
        pfVar4[5] = pfVar4[5] * param_2;
        pfVar4[6] = pfVar4[6] * param_2;
        pfVar4[7] = pfVar4[7] * param_2;
        pfVar4 = pfVar4 + 0x10;
      } while ((longlong)uVar3 < 0);
    }
    lVar5 = (longlong)(int)uVar2;
    lVar7 = (longlong)(int)param_3;
    if (lVar5 < lVar7) {
      if (3 < lVar7 - lVar5) {
        lVar1 = lVar5 + 2;
        lVar6 = ((lVar7 - lVar5) - 4U >> 2) + 1;
        lVar5 = lVar5 + lVar6 * 4;
        pfVar4 = param_1 + lVar1;
        do {
          pfVar4[-2] = pfVar4[-2] * param_2;
          pfVar4[-1] = pfVar4[-1] * param_2;
          *pfVar4 = *pfVar4 * param_2;
          pfVar4[1] = pfVar4[1] * param_2;
          lVar6 = lVar6 + -1;
          pfVar4 = pfVar4 + 4;
        } while (lVar6 != 0);
      }
      for (; lVar5 < lVar7; lVar5 = lVar5 + 1) {
        param_1[lVar5] = param_2 * param_1[lVar5];
      }
    }
  }
  return;
}



############ FUN_ 18049d240 size=172 ############

longlong FUN_18049d240(byte *param_1)

{
  byte bVar1;
  uint uVar2;
  longlong lVar3;
  uint uVar4;
  int iVar5;
  longlong lVar6;
  
  lVar6 = 0;
  do {
    bVar1 = *param_1;
    param_1 = param_1 + 1;
    uVar4 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar2 = 0x40;
      iVar5 = 0;
      uVar4 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar2 < 9) break;
          uVar4 = uVar4 >> 1;
          iVar5 = iVar5 + 1;
          uVar2 = uVar2 >> 1;
        } while ((bVar1 & uVar2) != 0);
      }
      uVar4 = bVar1 & uVar4;
      for (; (iVar5 = iVar5 + -1, -1 < iVar5 && ((*param_1 & 0xc0) == 0x80)); param_1 = param_1 + 1)
      {
        uVar4 = *param_1 & 0x3f | uVar4 << 6;
      }
    }
    if (uVar4 == 0) {
      return lVar6;
    }
    lVar3 = 1;
    if (((0x7f < uVar4) && (lVar3 = 2, 0x7ff < uVar4)) && (lVar3 = 3, 0xffff < uVar4)) {
      lVar3 = 4;
    }
    lVar6 = lVar6 + lVar3;
  } while( true );
}



############ FUN_ 18123c4d0 size=270 ############

undefined4 FUN_18123c4d0(longlong *param_1,longlong *param_2)

{
  uint uVar1;
  longlong lVar2;
  uint *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  longlong *plVar7;
  longlong *plVar8;
  longlong *plVar9;
  
  plVar8 = (longlong *)*param_1;
  plVar7 = plVar8;
  if (plVar8 == (longlong *)0x0) {
    plVar7 = param_1 + 1;
  }
  iVar4 = (int)param_1[4] >> 5;
  lVar2 = (longlong)iVar4;
  if (-1 < iVar4) {
LAB_18123c506:
    uVar1 = *(uint *)((longlong)plVar7 + lVar2 * 4);
    if (uVar1 == 0) goto code_r0x00018123c50e;
    iVar5 = 0x1f;
    if (uVar1 != 0) {
      for (; uVar1 >> iVar5 == 0; iVar5 = iVar5 + -1) {
      }
    }
    iVar5 = iVar4 * 0x20 + iVar5;
    goto LAB_18123c518;
  }
LAB_18123c516:
  iVar5 = -1;
LAB_18123c518:
  plVar9 = (longlong *)*param_2;
  plVar7 = plVar9;
  if (plVar9 == (longlong *)0x0) {
    plVar7 = param_2 + 1;
  }
  iVar4 = (int)param_2[4] >> 5;
  lVar2 = (longlong)iVar4;
  if (-1 < iVar4) {
    do {
      uVar1 = *(uint *)((longlong)plVar7 + lVar2 * 4);
      if (uVar1 != 0) {
        iVar6 = 0x1f;
        if (uVar1 != 0) {
          for (; uVar1 >> iVar6 == 0; iVar6 = iVar6 + -1) {
          }
        }
        iVar6 = iVar4 * 0x20 + iVar6;
        goto LAB_18123c547;
      }
      iVar4 = iVar4 + -1;
      lVar2 = lVar2 + -1;
    } while (-1 < lVar2);
  }
  iVar6 = -1;
LAB_18123c547:
  if (iVar6 < iVar5) {
    return 1;
  }
  if (iVar5 < iVar6) {
    return 0xffffffff;
  }
  if (plVar8 == (longlong *)0x0) {
    plVar8 = param_1 + 1;
  }
  if (plVar9 == (longlong *)0x0) {
    plVar9 = param_2 + 1;
  }
  lVar2 = (longlong)iVar5 >> 5;
  if (-1 < lVar2) {
    puVar3 = (uint *)((longlong)plVar9 + lVar2 * 4);
    do {
      uVar1 = *(uint *)(((longlong)plVar8 - (longlong)plVar9) + (longlong)puVar3);
      if (uVar1 != *puVar3) {
        if (uVar1 < *puVar3) {
          return 0xffffffff;
        }
        return 1;
      }
      puVar3 = puVar3 + -1;
      lVar2 = lVar2 + -1;
    } while (-1 < lVar2);
  }
  return 0;
code_r0x00018123c50e:
  iVar4 = iVar4 + -1;
  lVar2 = lVar2 + -1;
  if (lVar2 < 0) goto LAB_18123c516;
  goto LAB_18123c506;
}



############ FUN_ 1812c0470 size=314 ############

void FUN_1812c0470(longlong param_1)

{
  uint uVar1;
  undefined8 *puVar2;
  uint *puVar3;
  longlong lVar4;
  longlong lVar5;
  longlong local_res8;
  longlong local_res10;
  undefined8 local_res18;
  undefined8 local_res20;
  
  puVar3 = (uint *)(*(longlong *)(param_1 + 0xf0) + -0x10);
  if ((*puVar3 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar3;
    *puVar3 = *puVar3 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar3);
    }
  }
  *(undefined1 **)(param_1 + 0xf0) = &DAT_1821dbf98;
  puVar3 = (uint *)(*(longlong *)(param_1 + 0xf8) + -0x10);
  if ((*puVar3 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar3;
    *puVar3 = *puVar3 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar3);
    }
  }
  *(undefined1 **)(param_1 + 0xf8) = &DAT_1821dbf98;
  lVar5 = 0;
  if (0 < *(int *)(param_1 + 0xdc)) {
    lVar4 = lVar5;
    if (*(int *)(param_1 + 0xdc) != 0) {
      lVar4 = **(longlong **)(param_1 + 0xd0);
    }
    puVar2 = (undefined8 *)FUN_1812b22b0(lVar4 + 0x10,&local_res8);
    local_res18 = *(undefined8 *)(param_1 + 0xf0);
    *(undefined8 *)(param_1 + 0xf0) = *puVar2;
    *puVar2 = local_res18;
    puVar3 = (uint *)(local_res8 + -0x10);
    if ((*puVar3 & 0x30000000) == 0) {
      LOCK();
      uVar1 = *puVar3;
      *puVar3 = *puVar3 - 1;
      UNLOCK();
      if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        free(puVar3);
      }
    }
  }
  if (0 < *(int *)(param_1 + 0xec)) {
    if (*(int *)(param_1 + 0xec) != 0) {
      lVar5 = **(longlong **)(param_1 + 0xe0);
    }
    puVar2 = (undefined8 *)FUN_1812b22b0(lVar5 + 0x10,&local_res10);
    local_res20 = *(undefined8 *)(param_1 + 0xf8);
    *(undefined8 *)(param_1 + 0xf8) = *puVar2;
    *puVar2 = local_res20;
    puVar3 = (uint *)(local_res10 + -0x10);
    if ((*puVar3 & 0x30000000) == 0) {
      LOCK();
      uVar1 = *puVar3;
      *puVar3 = *puVar3 - 1;
      UNLOCK();
      if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        free(puVar3);
      }
    }
  }
  return;
}



############ FUN_ 1812490c0 size=260 ############

undefined8 * FUN_1812490c0(undefined8 *param_1,undefined8 *param_2,int param_3,int param_4)

{
  byte bVar1;
  byte *pbVar2;
  byte bVar3;
  byte bVar4;
  byte *pbVar5;
  int iVar6;
  
  iVar6 = 0;
  if (param_3 < 0) {
    param_3 = 0;
  }
  if (param_4 <= param_3) {
    *param_2 = &DAT_1821dbf98;
    return param_2;
  }
  pbVar2 = (byte *)*param_1;
  pbVar5 = pbVar2;
  if (0 < param_3) {
    do {
      bVar1 = *pbVar5;
      if (bVar1 == 0) {
        *param_2 = &DAT_1821dbf98;
        return param_2;
      }
      iVar6 = iVar6 + 1;
      pbVar5 = pbVar5 + 1;
      if ((char)bVar1 < '\0') {
        bVar4 = 0x40;
        bVar3 = bVar1 & 0x40;
        while ((bVar3 != 0 && (8 < bVar4))) {
          pbVar5 = pbVar5 + 1;
          bVar4 = bVar4 >> 1;
          bVar3 = bVar1 & bVar4;
        }
      }
    } while (iVar6 < param_3);
  }
  do {
    if (param_4 <= iVar6) {
LAB_18124916a:
      FUN_18124a8a0(param_2);
      return param_2;
    }
    bVar1 = *pbVar5;
    if (bVar1 == 0) {
      if (param_3 == 0) {
        *param_2 = pbVar2;
        if ((*(uint *)(pbVar2 + -0x10) & 0x30000000) != 0) {
          return param_2;
        }
        LOCK();
        *(int *)(pbVar2 + -0x10) = *(int *)(pbVar2 + -0x10) + 1;
        UNLOCK();
        return param_2;
      }
      goto LAB_18124916a;
    }
    iVar6 = iVar6 + 1;
    pbVar5 = pbVar5 + 1;
    if ((char)bVar1 < '\0') {
      bVar4 = 0x40;
      bVar3 = bVar1 & 0x40;
      while ((bVar3 != 0 && (8 < bVar4))) {
        pbVar5 = pbVar5 + 1;
        bVar4 = bVar4 >> 1;
        bVar3 = bVar1 & bVar4;
      }
    }
  } while( true );
}



############ FUN_ 181231160 size=428 ############

longlong FUN_181231160(undefined8 *param_1,byte *param_2)

{
  byte bVar1;
  wint_t wVar2;
  wint_t wVar3;
  uint uVar4;
  byte *pbVar5;
  int iVar6;
  uint uVar7;
  longlong lVar8;
  byte *pbVar9;
  longlong lVar10;
  byte *pbVar11;
  
  pbVar5 = (byte *)*param_1;
  lVar10 = -1;
  lVar8 = -1;
  do {
    lVar8 = lVar8 + 1;
  } while (pbVar5[lVar8] != 0);
  pbVar9 = pbVar5 + lVar8;
  do {
    lVar10 = lVar10 + 1;
  } while (param_2[lVar10] != 0);
  pbVar11 = param_2 + lVar10;
  if (pbVar5 < pbVar9) {
    do {
      if (pbVar11 <= param_2) break;
      iVar6 = 0;
      do {
        pbVar5 = pbVar9 + -1;
        pbVar9 = pbVar9 + -1;
        if ((*pbVar5 & 0xc0) != 0x80) break;
        iVar6 = iVar6 + 1;
      } while (iVar6 < 4);
      iVar6 = 0;
      do {
        pbVar5 = pbVar11 + -1;
        pbVar11 = pbVar11 + -1;
        if ((*pbVar5 & 0xc0) != 0x80) break;
        iVar6 = iVar6 + 1;
      } while (iVar6 < 4);
      bVar1 = *pbVar9;
      wVar2 = (wint_t)bVar1;
      if ((char)bVar1 < '\0') {
        uVar4 = 0x40;
        iVar6 = 0;
        uVar7 = 0x7f;
        if ((bVar1 & 0x40) != 0) {
          do {
            if (uVar4 < 9) break;
            uVar7 = uVar7 >> 1;
            iVar6 = iVar6 + 1;
            uVar4 = uVar4 >> 1;
          } while ((bVar1 & uVar4) != 0);
        }
        uVar7 = bVar1 & uVar7;
        wVar2 = (wint_t)uVar7;
        lVar8 = 1;
        if (0 < (longlong)iVar6) {
          do {
            wVar2 = (wint_t)uVar7;
            if ((pbVar9[lVar8] & 0xc0) != 0x80) break;
            uVar7 = pbVar9[lVar8] & 0x3f | uVar7 << 6;
            wVar2 = (wint_t)uVar7;
            lVar8 = lVar8 + 1;
          } while (lVar8 <= iVar6);
        }
      }
      wVar2 = towlower(wVar2);
      bVar1 = *pbVar11;
      wVar3 = (wint_t)bVar1;
      if ((char)bVar1 < '\0') {
        uVar4 = 0x40;
        iVar6 = 0;
        uVar7 = 0x7f;
        if ((bVar1 & 0x40) != 0) {
          do {
            if (uVar4 < 9) break;
            uVar7 = uVar7 >> 1;
            iVar6 = iVar6 + 1;
            uVar4 = uVar4 >> 1;
          } while ((bVar1 & uVar4) != 0);
        }
        uVar7 = bVar1 & uVar7;
        wVar3 = (wint_t)uVar7;
        lVar8 = 1;
        if (0 < (longlong)iVar6) {
          do {
            wVar3 = (wint_t)uVar7;
            if ((pbVar11[lVar8] & 0xc0) != 0x80) break;
            uVar7 = pbVar11[lVar8] & 0x3f | uVar7 << 6;
            wVar3 = (wint_t)uVar7;
            lVar8 = lVar8 + 1;
          } while (lVar8 <= iVar6);
        }
      }
      wVar3 = towlower(wVar3);
      pbVar5 = (byte *)(ulonglong)wVar3;
      if (wVar2 != wVar3) {
        return (ulonglong)(byte)(wVar3 >> 8) << 8;
      }
    } while ((byte *)*param_1 < pbVar9);
  }
  return CONCAT71((int7)((ulonglong)pbVar5 >> 8),pbVar11 == param_2);
}



############ FUN_ 181230800 size=216 ############

undefined8 * FUN_181230800(undefined8 *param_1,undefined8 *param_2)

{
  byte bVar1;
  byte *pbVar2;
  byte bVar3;
  byte bVar4;
  int iVar5;
  byte *pbVar6;
  byte *pbVar7;
  longlong lVar8;
  byte *pbVar9;
  
  pbVar2 = (byte *)*param_1;
  if (*pbVar2 != 0) {
    lVar8 = -1;
    do {
      lVar8 = lVar8 + 1;
    } while (pbVar2[lVar8] != 0);
    pbVar9 = pbVar2 + lVar8;
    pbVar7 = pbVar9;
    if (pbVar2 < pbVar9) {
      do {
        iVar5 = 0;
        do {
          pbVar6 = pbVar7;
          pbVar7 = pbVar6 + -1;
          if ((pbVar6[-1] & 0xc0) != 0x80) break;
          iVar5 = iVar5 + 1;
        } while (iVar5 < 4);
        if ((*pbVar7 != 0x20) && (4 < (byte)(*pbVar7 - 9))) {
          bVar1 = *pbVar7;
          pbVar7 = pbVar6;
          if ((char)bVar1 < '\0') {
            bVar4 = 0x40;
            bVar3 = bVar1 & 0x40;
            while ((bVar3 != 0 && (8 < bVar4))) {
              pbVar7 = pbVar7 + 1;
              bVar4 = bVar4 >> 1;
              bVar3 = bVar1 & bVar4;
            }
          }
          break;
        }
      } while (pbVar2 < pbVar7);
      if (pbVar7 < pbVar9) {
        FUN_18124a8a0(param_2,pbVar2);
        return param_2;
      }
    }
  }
  *param_2 = pbVar2;
  if ((*(uint *)(pbVar2 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(pbVar2 + -0x10) = *(int *)(pbVar2 + -0x10) + 1;
    UNLOCK();
  }
  return param_2;
}



############ FUN_ 18049bc80 size=143 ############

int FUN_18049bc80(byte *param_1,uint param_2)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  
  bVar1 = *param_1;
  iVar5 = 0;
  do {
    if (bVar1 == 0) {
      return -1;
    }
    param_1 = param_1 + 1;
    uVar3 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar2 = 0x40;
      iVar4 = 0;
      uVar3 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar2 < 9) break;
          uVar3 = uVar3 >> 1;
          iVar4 = iVar4 + 1;
          uVar2 = uVar2 >> 1;
        } while ((bVar1 & uVar2) != 0);
      }
      uVar3 = bVar1 & uVar3;
      for (; (iVar4 = iVar4 + -1, -1 < iVar4 && ((*param_1 & 0xc0) == 0x80)); param_1 = param_1 + 1)
      {
        uVar3 = *param_1 & 0x3f | uVar3 << 6;
      }
    }
    if (uVar3 == param_2) {
      return iVar5;
    }
    bVar1 = *param_1;
    iVar5 = iVar5 + 1;
  } while( true );
}



############ FUN_ 1812327b0 size=159 ############

int FUN_1812327b0(undefined8 *param_1,uint param_2)

{
  byte bVar1;
  byte *pbVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  
  pbVar2 = (byte *)*param_1;
  iVar7 = 0;
  iVar6 = -1;
  bVar1 = *pbVar2;
  do {
    if (bVar1 == 0) {
      return iVar6;
    }
    pbVar2 = pbVar2 + 1;
    uVar4 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar3 = 0x40;
      iVar5 = 0;
      uVar4 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar3 < 9) break;
          uVar4 = uVar4 >> 1;
          iVar5 = iVar5 + 1;
          uVar3 = uVar3 >> 1;
        } while ((bVar1 & uVar3) != 0);
      }
      uVar4 = bVar1 & uVar4;
      for (; (iVar5 = iVar5 + -1, -1 < iVar5 && ((*pbVar2 & 0xc0) == 0x80)); pbVar2 = pbVar2 + 1) {
        uVar4 = *pbVar2 & 0x3f | uVar4 << 6;
      }
    }
    bVar1 = *pbVar2;
    if (uVar4 == param_2) {
      iVar6 = iVar7;
    }
    iVar7 = iVar7 + 1;
  } while( true );
}



############ FUN_ 180493050 size=217 ############

uint FUN_180493050(undefined8 *param_1,int param_2)

{
  byte *pbVar1;
  byte bVar2;
  byte bVar3;
  byte *pbVar4;
  byte bVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  ulonglong uVar9;
  int iVar10;
  longlong lVar11;
  
  pbVar4 = (byte *)*param_1;
  iVar10 = 0;
  lVar11 = 1;
  if (param_2 < 0) {
    if (param_2 + 1 < 1) {
      uVar9 = (ulonglong)(1 - (param_2 + 1));
      do {
        iVar7 = 0;
        do {
          pbVar1 = pbVar4 + -1;
          pbVar4 = pbVar4 + -1;
          if ((*pbVar1 & 0xc0) != 0x80) break;
          iVar7 = iVar7 + 1;
        } while (iVar7 < 4);
        uVar9 = uVar9 - 1;
      } while (uVar9 != 0);
    }
  }
  else {
    while (param_2 = param_2 + -1, -1 < param_2) {
      bVar2 = *pbVar4;
      pbVar4 = pbVar4 + 1;
      if ((char)bVar2 < '\0') {
        bVar5 = 0x40;
        bVar3 = bVar2 & 0x40;
        while ((bVar3 != 0 && (8 < bVar5))) {
          pbVar4 = pbVar4 + 1;
          bVar5 = bVar5 >> 1;
          bVar3 = bVar2 & bVar5;
        }
      }
    }
  }
  bVar2 = *pbVar4;
  if (-1 < (char)bVar2) {
    return (uint)bVar2;
  }
  uVar6 = 0x40;
  uVar8 = 0x7f;
  if ((bVar2 & 0x40) != 0) {
    do {
      if (uVar6 < 9) break;
      uVar8 = uVar8 >> 1;
      iVar10 = iVar10 + 1;
      uVar6 = uVar6 >> 1;
    } while ((bVar2 & uVar6) != 0);
  }
  uVar8 = bVar2 & uVar8;
  if (0 < (longlong)iVar10) {
    do {
      if ((pbVar4[lVar11] & 0xc0) != 0x80) {
        return uVar8;
      }
      uVar8 = pbVar4[lVar11] & 0x3f | uVar8 << 6;
      lVar11 = lVar11 + 1;
    } while (lVar11 <= iVar10);
  }
  return uVar8;
}



############ FUN_ 1812498b0 size=173 ############

int FUN_1812498b0(longlong *param_1,undefined8 param_2,char param_3,int param_4)

{
  int iVar1;
  int iVar2;
  longlong lVar3;
  undefined8 *puVar4;
  
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  if (param_4 < 0) {
    param_4 = 0;
  }
  if (param_3 == '\0') {
    if (param_4 < iVar1) {
      lVar3 = (longlong)param_4;
      puVar4 = (undefined8 *)(*param_1 + lVar3 * 8);
      do {
        iVar2 = FUN_18048cbc0(param_2,*puVar4);
        if (iVar2 == 0) {
          return param_4;
        }
        param_4 = param_4 + 1;
        lVar3 = lVar3 + 1;
        puVar4 = puVar4 + 1;
      } while (lVar3 < iVar1);
    }
  }
  else {
    for (; param_4 < iVar1; param_4 = param_4 + 1) {
      iVar2 = FUN_18049bb30(*(undefined8 *)(*param_1 + (longlong)param_4 * 8),param_2);
      if (iVar2 == 0) {
        return param_4;
      }
    }
  }
  return -1;
}



############ FUN_ 181234570 size=125 ############

undefined8 FUN_181234570(longlong param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4)

{
  int iVar1;
  
  if ((*(longlong *)(param_1 + 0x40) != 0) &&
     (iVar1 = FUN_1812498b0(param_1 + 0x18,*param_3,*(undefined1 *)(param_1 + 0x38),0), iVar1 < 0))
  {
    FUN_181234570(*(undefined8 *)(param_1 + 0x40),param_2,param_3,param_4);
    return param_2;
  }
  FUN_18122c970(param_1 + 0x18,param_2,*param_3,param_4);
  return param_2;
}



############ FUN_ 181249970 size=142 ############

undefined8 * FUN_181249970(longlong *param_1,uint param_2)

{
  if (param_2 < *(uint *)((longlong)param_1 + 0xc)) {
    return (undefined8 *)(*param_1 + (longlong)(int)param_2 * 8);
  }
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267af70) {
    _Init_thread_header(&DAT_18267af70);
    if (DAT_18267af70 == -1) {
      DAT_18267af68 = &DAT_1821dbf98;
      atexit(FUN_181a4a7b0);
      _Init_thread_footer(&DAT_18267af70);
      return &DAT_18267af68;
    }
  }
  return &DAT_18267af68;
}



############ FUN_ 180546380 size=365 ############

void FUN_180546380(longlong param_1)

{
  undefined8 *puVar1;
  int iVar2;
  undefined2 local_res8 [4];
  undefined2 local_res10 [4];
  undefined1 local_res18 [8];
  undefined1 local_res20 [8];
  longlong *local_58;
  longlong *local_50;
  longlong *local_48;
  longlong *local_40;
  undefined8 local_38;
  undefined8 local_30;
  
  local_30 = 0xfffffffffffffffe;
  local_40 = (longlong *)0x0;
  puVar1 = *(undefined8 **)(param_1 + 0x68);
  if (puVar1 != (undefined8 *)0x0) {
    local_40 = (longlong *)0x0;
    iVar2 = (**(code **)*puVar1)(puVar1,&DAT_1824aca88,&local_40);
    if (-1 < iVar2) {
      local_38 = 0;
      local_res8[0] = 8;
      local_res10[0] = 0;
      (**(code **)(*local_40 + 0x28))
                (local_40,local_res10,L"Duration",local_res20,&local_38,local_res8);
      local_48 = (longlong *)0x0;
      puVar1 = *(undefined8 **)(param_1 + 0x68);
      if (puVar1 != (undefined8 *)0x0) {
        local_48 = (longlong *)0x0;
        iVar2 = (**(code **)*puVar1)(puVar1,&DAT_1824acae8,&local_48);
        if (-1 < iVar2) {
          local_50 = (longlong *)0x0;
          iVar2 = (**(code **)(*local_48 + 0x48))(local_48,0,&local_50);
          if (-1 < iVar2) {
            local_58 = (longlong *)0x0;
            if (local_50 != (longlong *)0x0) {
              local_58 = (longlong *)0x0;
              iVar2 = (**(code **)*local_50)(local_50,&DAT_1824ad290,&local_58);
              if (-1 < iVar2) {
                (**(code **)(*local_58 + 0x20))(local_58,0,local_res18);
                    /* WARNING: Subroutine does not return */
                free((void *)0x0);
              }
            }
            if (local_58 != (longlong *)0x0) {
              (**(code **)(*local_58 + 0x10))(local_58);
            }
          }
          if (local_50 != (longlong *)0x0) {
            (**(code **)(*local_50 + 0x10))();
          }
        }
      }
      if (local_48 != (longlong *)0x0) {
        (**(code **)(*local_48 + 0x10))(local_48);
      }
    }
  }
  if (local_40 != (longlong *)0x0) {
    (**(code **)(*local_40 + 0x10))(local_40);
  }
  return;
}



############ FUN_ 18138ec80 size=2655 ############

undefined8 FUN_18138ec80(longlong param_1,longlong *param_2)

{
  longlong lVar1;
  float *pfVar2;
  float fVar3;
  int iVar4;
  longlong lVar5;
  longlong lVar6;
  int *piVar7;
  undefined *puVar8;
  byte bVar9;
  longlong lVar10;
  byte bVar11;
  int iVar12;
  undefined4 *puVar13;
  float *pfVar14;
  longlong lVar15;
  float *pfVar16;
  longlong lVar17;
  longlong lVar18;
  int iVar19;
  longlong lVar20;
  int iVar21;
  longlong lVar22;
  longlong lVar23;
  int iVar24;
  longlong lVar25;
  int iVar26;
  longlong lVar27;
  int local_res18;
  longlong local_98;
  
  lVar5 = *(longlong *)(param_1 + 8);
  lVar6 = *(longlong *)(param_1 + 0x78);
  piVar7 = *(int **)(lVar5 + 0x20);
  iVar21 = piVar7[0x59a];
  if ((param_2 != (longlong *)0x0) &&
     ((*(int *)(param_1 + 0x24) <= *(int *)(param_1 + 0x28) || (*(int *)(param_1 + 0x28) == -1)))) {
    *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_1 + 0x38);
    *(undefined4 *)(param_1 + 0x38) = *(undefined4 *)((longlong)param_2 + 0x2c);
    *(undefined4 *)(param_1 + 0x3c) = 0xffffffff;
    if ((*(longlong *)(param_1 + 0x50) == -1) || (*(longlong *)(param_1 + 0x50) + 1 != param_2[9]))
    {
      *(undefined8 *)(param_1 + 0x48) = 0xffffffffffffffff;
      *(undefined8 *)(lVar6 + 200) = 0xffffffffffffffff;
    }
    *(longlong *)(param_1 + 0x50) = param_2[9];
    bVar9 = (byte)iVar21;
    if (*param_2 != 0) {
      bVar11 = bVar9 + 1;
      iVar24 = piVar7[1];
      iVar4 = piVar7[*(int *)(param_1 + 0x38)];
      iVar26 = *piVar7;
      *(longlong *)(param_1 + 0x58) = *(longlong *)(param_1 + 0x58) + (longlong)(int)param_2[0xf];
      *(longlong *)(param_1 + 0x60) =
           *(longlong *)(param_1 + 0x60) + (longlong)*(int *)((longlong)param_2 + 0x7c);
      *(longlong *)(param_1 + 0x68) = *(longlong *)(param_1 + 0x68) + (longlong)(int)param_2[0x10];
      *(longlong *)(param_1 + 0x70) =
           *(longlong *)(param_1 + 0x70) + (longlong)*(int *)((longlong)param_2 + 0x84);
      iVar26 = iVar26 >> (bVar11 & 0x1f);
      iVar24 = iVar24 >> (bVar11 & 0x1f);
      iVar12 = 0;
      iVar19 = iVar24;
      if (*(int *)(param_1 + 0x40) != 0) {
        iVar12 = iVar24;
        iVar19 = 0;
      }
      lVar27 = (longlong)iVar24;
      lVar10 = (longlong)(iVar4 >> (bVar11 & 0x1f));
      local_res18 = 0;
      lVar25 = (longlong)iVar26;
      if (0 < *(int *)(lVar5 + 4)) {
        lVar17 = (longlong)iVar19;
        local_98 = 0;
        do {
          lVar23 = 0;
          if (*(int *)(param_1 + 0x34) == 0) {
            puVar8 = (&PTR_DAT_1822e5df0)[*(int *)(lVar6 + 8) - iVar21];
            lVar1 = *(longlong *)(local_98 + *(longlong *)(param_1 + 0x10));
            if (*(int *)(param_1 + 0x38) == 0) {
              lVar1 = lVar1 + lVar17 * 4;
              lVar15 = *(longlong *)(local_98 + *param_2);
              if (3 < lVar25) {
                pfVar14 = (float *)(lVar1 + 4);
                lVar20 = lVar15 - lVar1;
                pfVar16 = (float *)(puVar8 + (lVar25 + -2) * 4);
                lVar22 = (longlong)puVar8 - lVar1;
                lVar18 = (lVar25 - 4U >> 2) + 1;
                lVar23 = lVar18 * 4;
                do {
                  pfVar14[-1] = *(float *)((longlong)pfVar14 + lVar22 + -4) *
                                *(float *)((longlong)pfVar14 + lVar20 + -4) +
                                pfVar16[1] * pfVar14[-1];
                  *pfVar14 = *(float *)(lVar22 + (longlong)pfVar14 + (lVar15 - (longlong)puVar8)) *
                             *(float *)(lVar22 + (longlong)pfVar14) + *pfVar16 * *pfVar14;
                  pfVar14[1] = *(float *)(lVar22 + 4 + (longlong)pfVar14) *
                               *(float *)(lVar20 + 4 + (longlong)pfVar14) + pfVar16[-1] * pfVar14[1]
                  ;
                  pfVar2 = pfVar16 + -2;
                  pfVar16 = pfVar16 + -4;
                  pfVar14[2] = *(float *)(lVar22 + 8 + (longlong)pfVar14) *
                               *(float *)(lVar20 + 8 + (longlong)pfVar14) + *pfVar2 * pfVar14[2];
                  pfVar14 = pfVar14 + 4;
                  lVar18 = lVar18 + -1;
                } while (lVar18 != 0);
              }
              if (lVar23 < lVar25) {
                pfVar14 = (float *)(lVar1 + lVar23 * 4);
                pfVar16 = (float *)(puVar8 + ((lVar25 - lVar23) + -1) * 4);
                lVar23 = lVar25 - lVar23;
                do {
                  fVar3 = *pfVar16;
                  pfVar2 = (float *)(((longlong)puVar8 - lVar1) + (longlong)pfVar14);
                  pfVar16 = pfVar16 + -1;
                  *pfVar14 = *(float *)((lVar15 - (longlong)puVar8) + (longlong)pfVar2) * *pfVar2 +
                             fVar3 * *pfVar14;
                  pfVar14 = pfVar14 + 1;
                  lVar23 = lVar23 + -1;
                } while (lVar23 != 0);
              }
            }
            else {
              lVar1 = lVar1 + lVar17 * 4;
              lVar15 = 0;
              lVar23 = *(longlong *)(local_98 + *param_2) +
                       ((longlong)(iVar24 / 2) - (longlong)(iVar26 / 2)) * 4;
              if (3 < lVar25) {
                pfVar14 = (float *)(lVar1 + 4);
                lVar20 = lVar23 - lVar1;
                pfVar16 = (float *)(puVar8 + (lVar25 + -2) * 4);
                lVar22 = (longlong)puVar8 - lVar1;
                lVar18 = (lVar25 - 4U >> 2) + 1;
                lVar15 = lVar18 * 4;
                do {
                  pfVar14[-1] = *(float *)((longlong)pfVar14 + lVar22 + -4) *
                                *(float *)((longlong)pfVar14 + lVar20 + -4) +
                                pfVar16[1] * pfVar14[-1];
                  *pfVar14 = *(float *)((longlong)pfVar14 + lVar22 + (lVar23 - (longlong)puVar8)) *
                             *(float *)((longlong)pfVar14 + lVar22) + *pfVar16 * *pfVar14;
                  pfVar14[1] = *(float *)((longlong)pfVar14 + lVar22 + 4) *
                               *(float *)((longlong)pfVar14 + lVar20 + 4) + pfVar16[-1] * pfVar14[1]
                  ;
                  pfVar2 = pfVar16 + -2;
                  pfVar16 = pfVar16 + -4;
                  pfVar14[2] = *(float *)((longlong)pfVar14 + lVar22 + 8) *
                               *(float *)((longlong)pfVar14 + lVar20 + 8) + *pfVar2 * pfVar14[2];
                  pfVar14 = pfVar14 + 4;
                  lVar18 = lVar18 + -1;
                } while (lVar18 != 0);
              }
              if (lVar15 < lVar25) {
                pfVar14 = (float *)(lVar1 + lVar15 * 4);
                lVar18 = lVar25 - lVar15;
                pfVar16 = (float *)(puVar8 + ((lVar25 - lVar15) + -1) * 4);
                lVar15 = lVar15 + lVar18;
                do {
                  fVar3 = *pfVar16;
                  pfVar2 = (float *)((longlong)pfVar14 + ((longlong)puVar8 - lVar1));
                  pfVar16 = pfVar16 + -1;
                  *pfVar14 = *(float *)((longlong)pfVar2 + (lVar23 - (longlong)puVar8)) * *pfVar2 +
                             fVar3 * *pfVar14;
                  pfVar14 = pfVar14 + 1;
                  lVar18 = lVar18 + -1;
                } while (lVar18 != 0);
              }
              lVar18 = (longlong)(iVar26 / 2 + iVar24 / 2);
              if (lVar15 < lVar18) {
                if (3 < lVar18 - lVar15) {
                  puVar13 = (undefined4 *)(lVar1 + (lVar15 + 1) * 4);
                  lVar20 = lVar23 - lVar1;
                  lVar22 = ((lVar18 - lVar15) - 4U >> 2) + 1;
                  lVar15 = lVar15 + lVar22 * 4;
                  do {
                    puVar13[-1] = *(undefined4 *)((longlong)puVar13 + lVar20 + -4);
                    *puVar13 = *(undefined4 *)((longlong)puVar13 + lVar20);
                    puVar13[1] = *(undefined4 *)((longlong)puVar13 + lVar20 + 4);
                    puVar13[2] = *(undefined4 *)((longlong)puVar13 + lVar20 + 8);
                    puVar13 = puVar13 + 4;
                    lVar22 = lVar22 + -1;
                  } while (lVar22 != 0);
                }
                if (lVar15 < lVar18) {
                  puVar13 = (undefined4 *)(lVar1 + lVar15 * 4);
                  lVar18 = lVar18 - lVar15;
                  do {
                    *puVar13 = *(undefined4 *)((lVar23 - lVar1) + (longlong)puVar13);
                    puVar13 = puVar13 + 1;
                    lVar18 = lVar18 + -1;
                  } while (lVar18 != 0);
                }
              }
            }
          }
          else if (*(int *)(param_1 + 0x38) == 0) {
            puVar8 = (&PTR_DAT_1822e5df0)[*(int *)(lVar6 + 8) - iVar21];
            lVar1 = *(longlong *)(local_98 + *(longlong *)(param_1 + 0x10)) +
                    (((longlong)(iVar24 / 2) - (longlong)(iVar26 / 2)) + lVar17) * 4;
            lVar15 = *(longlong *)(local_98 + *param_2);
            if (3 < lVar25) {
              pfVar14 = (float *)(lVar1 + 4);
              lVar20 = lVar15 - lVar1;
              pfVar16 = (float *)(puVar8 + (lVar25 + -2) * 4);
              lVar22 = (longlong)puVar8 - lVar1;
              lVar18 = (lVar25 - 4U >> 2) + 1;
              lVar23 = lVar18 * 4;
              do {
                pfVar14[-1] = *(float *)(lVar22 + -4 + (longlong)pfVar14) *
                              *(float *)(lVar20 + -4 + (longlong)pfVar14) + pfVar16[1] * pfVar14[-1]
                ;
                *pfVar14 = *(float *)(lVar22 + (longlong)pfVar14 + (lVar15 - (longlong)puVar8)) *
                           *(float *)(lVar22 + (longlong)pfVar14) + *pfVar16 * *pfVar14;
                pfVar14[1] = *(float *)(lVar22 + 4 + (longlong)pfVar14) *
                             *(float *)(lVar20 + 4 + (longlong)pfVar14) + pfVar16[-1] * pfVar14[1];
                pfVar2 = pfVar16 + -2;
                pfVar16 = pfVar16 + -4;
                pfVar14[2] = *(float *)(lVar22 + 8 + (longlong)pfVar14) *
                             *(float *)(lVar20 + 8 + (longlong)pfVar14) + *pfVar2 * pfVar14[2];
                pfVar14 = pfVar14 + 4;
                lVar18 = lVar18 + -1;
              } while (lVar18 != 0);
            }
            if (lVar23 < lVar25) {
              pfVar14 = (float *)(lVar1 + lVar23 * 4);
              pfVar16 = (float *)(puVar8 + ((lVar25 - lVar23) + -1) * 4);
              lVar23 = lVar25 - lVar23;
              do {
                pfVar2 = (float *)((longlong)pfVar14 + ((longlong)puVar8 - lVar1));
                fVar3 = *pfVar16;
                pfVar16 = pfVar16 + -1;
                *pfVar14 = *(float *)((longlong)pfVar2 + (lVar15 - (longlong)puVar8)) * *pfVar2 +
                           *pfVar14 * fVar3;
                pfVar14 = pfVar14 + 1;
                lVar23 = lVar23 + -1;
              } while (lVar23 != 0);
            }
          }
          else {
            puVar8 = (&PTR_DAT_1822e5df0)[*(int *)(lVar6 + 0xc) - iVar21];
            lVar1 = *(longlong *)(local_98 + *(longlong *)(param_1 + 0x10)) + lVar17 * 4;
            lVar15 = *(longlong *)(local_98 + *param_2);
            if (3 < lVar27) {
              pfVar14 = (float *)(lVar1 + 4);
              lVar20 = lVar15 - lVar1;
              pfVar16 = (float *)(puVar8 + (lVar27 + -2) * 4);
              lVar22 = (longlong)puVar8 - lVar1;
              lVar18 = (lVar27 - 4U >> 2) + 1;
              lVar23 = lVar18 * 4;
              do {
                pfVar14[-1] = *(float *)(lVar22 + -4 + (longlong)pfVar14) *
                              *(float *)(lVar20 + -4 + (longlong)pfVar14) + pfVar16[1] * pfVar14[-1]
                ;
                *pfVar14 = *(float *)(lVar22 + (longlong)pfVar14 + (lVar15 - (longlong)puVar8)) *
                           *(float *)(lVar22 + (longlong)pfVar14) + *pfVar16 * *pfVar14;
                pfVar14[1] = *(float *)(lVar22 + 4 + (longlong)pfVar14) *
                             *(float *)(lVar20 + 4 + (longlong)pfVar14) + pfVar16[-1] * pfVar14[1];
                pfVar2 = pfVar16 + -2;
                pfVar16 = pfVar16 + -4;
                pfVar14[2] = *(float *)(lVar22 + 8 + (longlong)pfVar14) *
                             *(float *)(lVar20 + 8 + (longlong)pfVar14) + *pfVar2 * pfVar14[2];
                pfVar14 = pfVar14 + 4;
                lVar18 = lVar18 + -1;
              } while (lVar18 != 0);
            }
            if (lVar23 < lVar27) {
              pfVar14 = (float *)(lVar1 + lVar23 * 4);
              pfVar16 = (float *)(puVar8 + ((lVar27 - lVar23) + -1) * 4);
              lVar23 = lVar27 - lVar23;
              do {
                fVar3 = *pfVar16;
                pfVar2 = (float *)((longlong)pfVar14 + ((longlong)puVar8 - lVar1));
                pfVar16 = pfVar16 + -1;
                *pfVar14 = *(float *)((longlong)pfVar2 + (lVar15 - (longlong)puVar8)) * *pfVar2 +
                           fVar3 * *pfVar14;
                pfVar14 = pfVar14 + 1;
                lVar23 = lVar23 + -1;
              } while (lVar23 != 0);
            }
          }
          lVar15 = 0;
          lVar23 = *(longlong *)(local_98 + *(longlong *)(param_1 + 0x10)) + (longlong)iVar12 * 4;
          lVar1 = *(longlong *)(local_98 + *param_2) + lVar10 * 4;
          if (3 < lVar10) {
            lVar18 = lVar1 - lVar23;
            lVar20 = (lVar10 - 4U >> 2) + 1;
            puVar13 = (undefined4 *)(lVar23 + 4);
            lVar15 = lVar20 * 4;
            do {
              puVar13[-1] = *(undefined4 *)(lVar18 + -4 + (longlong)puVar13);
              *puVar13 = *(undefined4 *)(lVar18 + (longlong)puVar13);
              puVar13[1] = *(undefined4 *)(lVar18 + 4 + (longlong)puVar13);
              puVar13[2] = *(undefined4 *)(lVar18 + 8 + (longlong)puVar13);
              puVar13 = puVar13 + 4;
              lVar20 = lVar20 + -1;
            } while (lVar20 != 0);
          }
          if (lVar15 < lVar10) {
            puVar13 = (undefined4 *)(lVar23 + lVar15 * 4);
            lVar15 = lVar10 - lVar15;
            do {
              *puVar13 = *(undefined4 *)((longlong)puVar13 + (lVar1 - lVar23));
              puVar13 = puVar13 + 1;
              lVar15 = lVar15 + -1;
            } while (lVar15 != 0);
          }
          local_res18 = local_res18 + 1;
          local_98 = local_98 + 8;
        } while (local_res18 < *(int *)(lVar5 + 4));
      }
      if (*(int *)(param_1 + 0x40) != 0) {
        iVar24 = 0;
      }
      *(int *)(param_1 + 0x40) = iVar24;
      if (*(int *)(param_1 + 0x28) == -1) {
        *(int *)(param_1 + 0x28) = iVar12;
        *(int *)(param_1 + 0x24) = iVar12;
      }
      else {
        *(int *)(param_1 + 0x28) = iVar19;
        *(int *)(param_1 + 0x24) =
             (((int)((piVar7[*(int *)(param_1 + 0x38)] >> 0x1f & 3U) +
                    piVar7[*(int *)(param_1 + 0x38)]) >> 2) +
              ((int)(piVar7[*(int *)(param_1 + 0x34)] +
                    (piVar7[*(int *)(param_1 + 0x34)] >> 0x1f & 3U)) >> 2) >> (bVar9 & 0x1f)) +
             iVar19;
      }
    }
    if (*(longlong *)(lVar6 + 200) == -1) {
      *(undefined8 *)(lVar6 + 200) = 0;
    }
    else {
      *(longlong *)(lVar6 + 200) =
           (longlong)
           (((int)(piVar7[*(int *)(param_1 + 0x34)] +
                  (piVar7[*(int *)(param_1 + 0x34)] >> 0x1f & 3U)) >> 2) +
           ((int)((piVar7[*(int *)(param_1 + 0x38)] >> 0x1f & 3U) + piVar7[*(int *)(param_1 + 0x38)]
                 ) >> 2)) + *(longlong *)(lVar6 + 200);
    }
    if (*(longlong *)(param_1 + 0x48) == -1) {
      lVar5 = param_2[8];
      if ((lVar5 != -1) &&
         (*(longlong *)(param_1 + 0x48) = lVar5, lVar5 < *(longlong *)(lVar6 + 200))) {
        iVar21 = *(int *)(lVar6 + 200) - (int)param_2[8];
        if (iVar21 < 0) {
          iVar21 = 0;
        }
        if (*(int *)((longlong)param_2 + 0x3c) == 0) {
          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + (iVar21 >> (bVar9 & 0x1f));
          if (*(int *)(param_1 + 0x24) < *(int *)(param_1 + 0x28)) {
            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x24);
          }
        }
        else {
          iVar24 = *(int *)(param_1 + 0x24) - *(int *)(param_1 + 0x28) << (bVar9 & 0x1f);
          if (iVar24 < iVar21) {
            iVar21 = iVar24;
          }
          *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) - (iVar21 >> (bVar9 & 0x1f));
        }
      }
    }
    else {
      *(longlong *)(param_1 + 0x48) =
           *(longlong *)(param_1 + 0x48) +
           (longlong)
           (((int)(piVar7[*(int *)(param_1 + 0x34)] +
                  (piVar7[*(int *)(param_1 + 0x34)] >> 0x1f & 3U)) >> 2) +
           ((int)((piVar7[*(int *)(param_1 + 0x38)] >> 0x1f & 3U) + piVar7[*(int *)(param_1 + 0x38)]
                 ) >> 2));
      lVar5 = param_2[8];
      lVar6 = *(longlong *)(param_1 + 0x48);
      if ((lVar5 != -1) && (lVar6 != lVar5)) {
        if ((lVar5 < lVar6) &&
           ((iVar21 = (int)lVar6 - (int)lVar5, iVar21 != 0 &&
            (*(int *)((longlong)param_2 + 0x3c) != 0)))) {
          iVar24 = *(int *)(param_1 + 0x24) - *(int *)(param_1 + 0x28) << (bVar9 & 0x1f);
          if (iVar24 < iVar21) {
            iVar21 = iVar24;
          }
          if (iVar21 < 0) {
            iVar21 = 0;
          }
          *(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) - (iVar21 >> (bVar9 & 0x1f));
        }
        *(longlong *)(param_1 + 0x48) = param_2[8];
      }
    }
    if (*(int *)((longlong)param_2 + 0x3c) != 0) {
      *(undefined4 *)(param_1 + 0x30) = 1;
    }
    return 0;
  }
  return 0xffffff7d;
}



############ FUN_ 1813919f0 size=860 ############

undefined8 FUN_1813919f0(longlong *param_1,longlong *param_2)

{
  int *piVar1;
  uint *puVar2;
  byte bVar3;
  char cVar4;
  byte bVar5;
  longlong lVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined8 uVar10;
  void *pvVar11;
  ulonglong uVar12;
  longlong lVar13;
  int iVar14;
  int iVar15;
  longlong lVar16;
  byte *pbVar17;
  void *_Src;
  byte bVar18;
  
  lVar6 = *param_2;
  _Src = (void *)param_2[2];
  iVar15 = (int)param_2[3];
  bVar3 = *(byte *)(lVar6 + 5);
  cVar4 = *(char *)(lVar6 + 4);
  iVar14 = *(int *)((longlong)param_1 + 0x34);
  uVar10 = *(undefined8 *)(lVar6 + 6);
  iVar8 = *(int *)(lVar6 + 0xe);
  iVar7 = *(int *)(lVar6 + 0x12);
  bVar18 = *(byte *)(lVar6 + 0x1a);
  iVar9 = (int)param_1[2];
  if (iVar9 != 0) {
    piVar1 = (int *)((longlong)param_1 + 0xc);
    *piVar1 = *piVar1 - iVar9;
    if (*piVar1 != 0) {
      memmove((void *)*param_1,(void *)(*param_1 + (longlong)iVar9),
              (longlong)*(int *)((longlong)param_1 + 0xc));
    }
    *(undefined4 *)(param_1 + 2) = 0;
  }
  if (iVar14 != 0) {
    iVar9 = *(int *)((longlong)param_1 + 0x2c) - iVar14;
    if (iVar9 != 0) {
      memmove((void *)param_1[3],(void *)(param_1[3] + (longlong)iVar14 * 4),(longlong)iVar9 << 2);
      memmove((void *)param_1[4],(void *)(param_1[4] + (longlong)iVar14 * 8),
              (longlong)(*(int *)((longlong)param_1 + 0x2c) - iVar14) << 3);
    }
    *(int *)((longlong)param_1 + 0x2c) = *(int *)((longlong)param_1 + 0x2c) - iVar14;
    *(int *)(param_1 + 6) = (int)param_1[6] - iVar14;
    *(undefined4 *)((longlong)param_1 + 0x34) = 0;
  }
  if ((iVar8 == (int)param_1[0x2c]) && (cVar4 == '\0')) {
    lVar16 = (longlong)(int)(uint)bVar18;
    FUN_181392670(param_1);
    if (iVar7 != *(int *)((longlong)param_1 + 0x164)) {
      iVar14 = (int)param_1[6];
      if (iVar14 < *(int *)((longlong)param_1 + 0x2c)) {
        iVar9 = *(int *)((longlong)param_1 + 0xc);
        uVar12 = (ulonglong)(uint)(*(int *)((longlong)param_1 + 0x2c) - iVar14);
        pbVar17 = (byte *)(param_1[3] + (longlong)iVar14 * 4);
        do {
          bVar18 = *pbVar17;
          pbVar17 = pbVar17 + 4;
          iVar9 = iVar9 - (uint)bVar18;
          *(int *)((longlong)param_1 + 0xc) = iVar9;
          uVar12 = uVar12 - 1;
        } while (uVar12 != 0);
      }
      *(int *)((longlong)param_1 + 0x2c) = iVar14;
      if (*(int *)((longlong)param_1 + 0x164) != -1) {
        *(undefined4 *)(param_1[3] + (longlong)iVar14 * 4) = 0x400;
        *(int *)((longlong)param_1 + 0x2c) = *(int *)((longlong)param_1 + 0x2c) + 1;
        *(int *)(param_1 + 6) = (int)param_1[6] + 1;
      }
    }
    iVar14 = 0;
    bVar18 = bVar3 & 2;
    if (((bVar3 & 1) != 0) &&
       ((iVar14 = 0, *(int *)((longlong)param_1 + 0x2c) < 1 ||
        (*(int *)(param_1[3] + (longlong)(*(int *)((longlong)param_1 + 0x2c) + -1) * 4) == 0x400))))
    {
      lVar13 = 0;
      iVar9 = 0;
      bVar18 = 0;
      if (lVar16 != 0) {
        do {
          bVar5 = *(byte *)(lVar13 + 0x1b + lVar6);
          iVar14 = iVar9 + 1;
          _Src = (void *)((longlong)_Src + (ulonglong)bVar5);
          iVar15 = iVar15 - (uint)bVar5;
          bVar18 = 0;
          if (bVar5 < 0xff) break;
          lVar13 = lVar13 + 1;
          iVar9 = iVar14;
        } while (lVar13 < lVar16);
      }
    }
    if (iVar15 != 0) {
      if ((int)param_1[1] <= *(int *)((longlong)param_1 + 0xc) + iVar15) {
        iVar9 = (int)param_1[1] + 0x400 + iVar15;
        *(int *)(param_1 + 1) = iVar9;
        pvVar11 = realloc((void *)*param_1,(longlong)iVar9);
        *param_1 = (longlong)pvVar11;
      }
      memcpy((void *)((longlong)*(int *)((longlong)param_1 + 0xc) + *param_1),_Src,(longlong)iVar15)
      ;
      *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + iVar15;
    }
    lVar13 = (longlong)iVar14;
    iVar15 = -1;
    if (lVar13 < lVar16) {
      do {
        bVar5 = *(byte *)(lVar13 + 0x1b + lVar6);
        *(uint *)(param_1[3] + (longlong)*(int *)((longlong)param_1 + 0x2c) * 4) = (uint)bVar5;
        *(undefined8 *)(param_1[4] + (longlong)*(int *)((longlong)param_1 + 0x2c) * 8) =
             0xffffffffffffffff;
        if (bVar18 != 0) {
          puVar2 = (uint *)(param_1[3] + (longlong)*(int *)((longlong)param_1 + 0x2c) * 4);
          *puVar2 = *puVar2 | 0x100;
          bVar18 = 0;
        }
        if (bVar5 < 0xff) {
          iVar15 = *(int *)((longlong)param_1 + 0x2c);
        }
        *(int *)((longlong)param_1 + 0x2c) = *(int *)((longlong)param_1 + 0x2c) + 1;
        lVar13 = lVar13 + 1;
        if (bVar5 != 0xff) {
          *(undefined4 *)(param_1 + 6) = *(undefined4 *)((longlong)param_1 + 0x2c);
        }
      } while (lVar13 < lVar16);
      if (iVar15 != -1) {
        *(undefined8 *)(param_1[4] + (longlong)iVar15 * 8) = uVar10;
      }
    }
    if ((bVar3 & 4) != 0) {
      *(undefined4 *)(param_1 + 0x2b) = 1;
      if (0 < *(int *)((longlong)param_1 + 0x2c)) {
        puVar2 = (uint *)(param_1[3] + (longlong)(*(int *)((longlong)param_1 + 0x2c) + -1) * 4);
        *puVar2 = *puVar2 | 0x200;
      }
    }
    *(int *)((longlong)param_1 + 0x164) = iVar7 + 1;
    uVar10 = 0;
  }
  else {
    uVar10 = 0xffffffff;
  }
  return uVar10;
}



############ FUN_ 181371e20 size=185 ############

undefined8 FUN_181371e20(longlong param_1)

{
  int iVar1;
  longlong lVar2;
  longlong lVar3;
  
  if (3 < *(int *)(param_1 + 0x80)) {
    return 0;
  }
  if (*(int *)(param_1 + 0x80) < 3) {
    return 0xffffff7f;
  }
  if (*(int *)(param_1 + 8) == 0) {
    lVar2 = *(longlong *)(param_1 + 0x68);
  }
  else {
    lVar2 = *(longlong *)(param_1 + 0x68) + (longlong)*(int *)(param_1 + 0x88) * 0x28;
  }
  lVar3 = param_1 + 0x218;
  iVar1 = FUN_181390660(lVar3,lVar2);
  if (iVar1 != 0) {
    FUN_18138ffc0();
    return 0xffffff77;
  }
  FUN_18138f730(lVar3);
  FUN_181390da0(lVar3,param_1 + 0x298);
  *(undefined8 *)(param_1 + 0x90) = 0;
  *(undefined8 *)(param_1 + 0x98) = 0;
  *(undefined4 *)(param_1 + 0x80) = 4;
  return 0;
}



############ FUN_ 181371270 size=129 ############

ulonglong FUN_181371270(longlong param_1,int param_2)

{
  longlong lVar1;
  ulonglong uVar2;
  uint uVar3;
  ulonglong uVar4;
  
  if (((1 < *(int *)(param_1 + 0x80)) && (*(int *)(param_1 + 8) != 0)) &&
     (param_2 < *(int *)(param_1 + 0x40))) {
    if (param_2 < 0) {
      uVar2 = 0;
      uVar4 = uVar2;
      if (0 < *(int *)(param_1 + 0x40)) {
        do {
          lVar1 = FUN_181371270(param_1,uVar4);
          uVar2 = uVar2 + lVar1;
          uVar3 = (int)uVar4 + 1;
          uVar4 = (ulonglong)uVar3;
        } while ((int)uVar3 < *(int *)(param_1 + 0x40));
      }
      return uVar2;
    }
    return *(ulonglong *)(*(longlong *)(param_1 + 0x60) + (longlong)(param_2 * 2 + 1) * 8);
  }
  return 0xffffffffffffff7d;
}



############ FUN_ 181392960 size=234 ############

uint FUN_181392960(int *param_1,int param_2)

{
  int iVar1;
  byte *pbVar2;
  char cVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  
  iVar1 = *param_1;
  iVar4 = param_1[1];
  uVar6 = param_2 + iVar4;
  if ((iVar1 + 4 < param_1[6]) || (uVar5 = 0xffffffff, (int)(uVar6 + iVar1 * 8) <= param_1[6] * 8))
  {
    pbVar2 = *(byte **)(param_1 + 4);
    uVar5 = (uint)(*pbVar2 >> (*(byte *)(param_1 + 1) & 0x1f));
    if (((8 < (int)uVar6) &&
        (((cVar3 = (char)iVar4, uVar5 = uVar5 | (uint)pbVar2[1] << (8U - cVar3 & 0x1f),
          0x10 < (int)uVar6 &&
          (uVar5 = uVar5 | (uint)pbVar2[2] << (0x10U - cVar3 & 0x1f), 0x18 < (int)uVar6)) &&
         (uVar5 = uVar5 | (uint)pbVar2[3] << (0x18U - cVar3 & 0x1f), 0x20 < (int)uVar6)))) &&
       (iVar4 != 0)) {
      uVar5 = uVar5 | (uint)pbVar2[4] << (0x20U - cVar3 & 0x1f);
    }
    uVar5 = uVar5 & *(uint *)(&DAT_1822e2500 + (longlong)param_2 * 4);
  }
  iVar4 = (int)(uVar6 + ((int)uVar6 >> 0x1f & 7U)) >> 3;
  *(longlong *)(param_1 + 4) = *(longlong *)(param_1 + 4) + (longlong)iVar4;
  param_1[1] = uVar6 & 7;
  *param_1 = iVar4 + iVar1;
  return uVar5;
}



############ FUN_ 181390c80 size=118 ############

void FUN_181390c80(longlong param_1)

{
  void *pvVar1;
  
  if (*(undefined8 **)(param_1 + 0x70) != (undefined8 *)0x0) {
                    /* WARNING: Subroutine does not return */
    free((void *)**(undefined8 **)(param_1 + 0x70));
  }
  if (*(int *)(param_1 + 0x68) != 0) {
    pvVar1 = realloc(*(void **)(param_1 + 0x58),
                     (longlong)(*(int *)(param_1 + 100) + *(int *)(param_1 + 0x68)));
    *(void **)(param_1 + 0x58) = pvVar1;
    *(int *)(param_1 + 100) = *(int *)(param_1 + 100) + *(int *)(param_1 + 0x68);
    *(undefined4 *)(param_1 + 0x68) = 0;
    *(undefined8 *)(param_1 + 0x70) = 0;
    *(undefined4 *)(param_1 + 0x60) = 0;
    return;
  }
  *(undefined8 *)(param_1 + 0x70) = 0;
  *(undefined4 *)(param_1 + 0x60) = 0;
  return;
}



############ FUN_ 18138ffc0 size=1014 ############

void FUN_18138ffc0(void *param_1)

{
  longlong lVar1;
  longlong *_Memory;
  longlong lVar2;
  undefined8 *_Memory_00;
  uint uVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  int *piVar6;
  ulonglong uVar7;
  void *pvVar8;
  
  if (param_1 != (void *)0x0) {
    uVar4 = 0;
    lVar1 = *(longlong *)((longlong)param_1 + 8);
    uVar5 = uVar4;
    if (lVar1 != 0) {
      uVar5 = *(ulonglong *)(lVar1 + 0x20);
    }
    _Memory = *(longlong **)((longlong)param_1 + 0x78);
    if (_Memory != (longlong *)0x0) {
      lVar2 = *_Memory;
      if (lVar2 != 0) {
        if ((undefined8 *)(lVar2 + 0x10) != (undefined8 *)0x0) {
          if (*(void **)(lVar2 + 0x18) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
            free(*(void **)(lVar2 + 0x18));
          }
          if (*(void **)(lVar2 + 0x20) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
            free(*(void **)(lVar2 + 0x20));
          }
          *(undefined8 *)(lVar2 + 0x10) = 0;
          *(undefined8 *)(lVar2 + 0x18) = 0;
          *(undefined8 *)(lVar2 + 0x20) = 0;
          *(undefined8 *)(lVar2 + 0x28) = 0;
        }
                    /* WARNING: Subroutine does not return */
        free(*(void **)(lVar2 + 0x40));
      }
      if ((undefined8 *)_Memory[2] != (undefined8 *)0x0) {
        FUN_181383520(*(undefined8 *)_Memory[2]);
                    /* WARNING: Subroutine does not return */
        free(*(void **)_Memory[2]);
      }
      if ((undefined8 *)_Memory[3] != (undefined8 *)0x0) {
        FUN_181383520(*(undefined8 *)_Memory[3]);
                    /* WARNING: Subroutine does not return */
        free(*(void **)_Memory[3]);
      }
      if (_Memory[0xb] != 0) {
        if ((uVar5 != 0) && (0 < *(int *)(uVar5 + 0x10))) {
          piVar6 = (int *)(uVar5 + 0x520);
          uVar7 = uVar4;
          do {
            (**(code **)((&PTR_DAT_1822f5a90)[*piVar6] + 0x20))
                      (*(undefined8 *)(uVar7 + _Memory[0xb]));
            uVar3 = (int)uVar4 + 1;
            uVar4 = (ulonglong)uVar3;
            piVar6 = piVar6 + 1;
            uVar7 = uVar7 + 8;
          } while ((int)uVar3 < *(int *)(uVar5 + 0x10));
        }
                    /* WARNING: Subroutine does not return */
        free((void *)_Memory[0xb]);
      }
      if (_Memory[0xc] != 0) {
        if ((uVar5 != 0) && (0 < *(int *)(uVar5 + 0x14))) {
          piVar6 = (int *)(uVar5 + 0x820);
          uVar7 = uVar4;
          do {
            (**(code **)((&PTR_DAT_182280c20)[*piVar6] + 0x20))
                      (*(undefined8 *)(uVar7 + _Memory[0xc]));
            uVar3 = (int)uVar4 + 1;
            uVar4 = (ulonglong)uVar3;
            piVar6 = piVar6 + 1;
            uVar7 = uVar7 + 8;
          } while ((int)uVar3 < *(int *)(uVar5 + 0x14));
        }
                    /* WARNING: Subroutine does not return */
        free((void *)_Memory[0xc]);
      }
      if (_Memory[0xd] != 0) {
        if ((uVar5 != 0) && (uVar7 = uVar4, 0 < *(int *)(uVar5 + 0x1c))) {
          do {
            pvVar8 = (void *)(_Memory[0xd] + uVar7);
            if (pvVar8 != (void *)0x0) {
              if (*(void **)((longlong)pvVar8 + 0x20) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
                free(*(void **)((longlong)pvVar8 + 0x20));
              }
              if (*(void **)((longlong)pvVar8 + 0x28) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
                free(*(void **)((longlong)pvVar8 + 0x28));
              }
              if (*(void **)((longlong)pvVar8 + 0x30) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
                free(*(void **)((longlong)pvVar8 + 0x30));
              }
              if (*(longlong *)((longlong)pvVar8 + 0x10) != 0) {
                    /* WARNING: Subroutine does not return */
                free(*(void **)**(undefined8 **)((longlong)pvVar8 + 0x10));
              }
              if (*(longlong *)((longlong)pvVar8 + 0x18) != 0) {
                    /* WARNING: Subroutine does not return */
                free((void *)**(undefined8 **)((longlong)pvVar8 + 0x18));
              }
              memset(pvVar8,0,0x50);
            }
            uVar3 = (int)uVar4 + 1;
            uVar4 = (ulonglong)uVar3;
            uVar7 = uVar7 + 0x50;
          } while ((int)uVar3 < *(int *)(uVar5 + 0x1c));
        }
                    /* WARNING: Subroutine does not return */
        free((void *)_Memory[0xd]);
      }
      _Memory_00 = (undefined8 *)_Memory[0xe];
      if (_Memory_00 != (undefined8 *)0x0) {
        *_Memory_00 = 0;
        _Memory_00[1] = 0;
        _Memory_00[2] = 0;
        _Memory_00[3] = 0;
        _Memory_00[4] = 0;
                    /* WARNING: Subroutine does not return */
        free(_Memory_00);
      }
      _Memory[0x12] = 0;
      _Memory[0x13] = 0;
      _Memory[0x14] = 0;
      _Memory[0x15] = 0;
      _Memory[0x16] = 0;
      _Memory[0x17] = 0;
      _Memory[0x18] = 0;
      if (_Memory + 4 != (longlong *)0x0) {
        if ((void *)_Memory[5] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free((void *)_Memory[5]);
        }
        if ((void *)_Memory[6] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free((void *)_Memory[6]);
        }
        _Memory[4] = 0;
        _Memory[5] = 0;
        _Memory[6] = 0;
      }
      if (_Memory + 7 != (longlong *)0x0) {
        if ((void *)_Memory[8] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free((void *)_Memory[8]);
        }
        if ((void *)_Memory[9] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free((void *)_Memory[9]);
        }
        _Memory[7] = 0;
        _Memory[8] = 0;
        _Memory[9] = 0;
      }
    }
    if (*(longlong *)((longlong)param_1 + 0x10) != 0) {
      if ((lVar1 != 0) && (uVar5 = uVar4, 0 < *(int *)(lVar1 + 4))) {
        do {
          pvVar8 = *(void **)(uVar4 + *(longlong *)((longlong)param_1 + 0x10));
          if (pvVar8 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
            free(pvVar8);
          }
          uVar3 = (int)uVar5 + 1;
          uVar4 = uVar4 + 8;
          uVar5 = (ulonglong)uVar3;
        } while ((int)uVar3 < *(int *)(lVar1 + 4));
      }
                    /* WARNING: Subroutine does not return */
      free(*(void **)((longlong)param_1 + 0x10));
    }
    if (_Memory != (longlong *)0x0) {
      if ((void *)_Memory[0xf] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
        free((void *)_Memory[0xf]);
      }
      if ((void *)_Memory[0x10] == (void *)0x0) {
        if ((void *)_Memory[0x11] == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free(_Memory);
        }
                    /* WARNING: Subroutine does not return */
        free((void *)_Memory[0x11]);
      }
                    /* WARNING: Subroutine does not return */
      free((void *)_Memory[0x10]);
    }
    memset(param_1,0,0x80);
  }
  return;
}



############ FUN_ 181370220 size=2029 ############

ulonglong FUN_181370220(longlong *param_1,longlong param_2)

{
  byte *pbVar1;
  char *pcVar2;
  longlong lVar3;
  longlong lVar4;
  char cVar5;
  int iVar6;
  longlong lVar7;
  ulonglong uVar8;
  uint uVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  int iVar13;
  uint uVar14;
  longlong *plVar15;
  ulonglong uVar16;
  longlong lVar17;
  longlong lVar18;
  bool bVar19;
  longlong local_res18;
  ulonglong local_res20;
  longlong local_70;
  undefined8 local_68;
  longlong local_58;
  
  uVar14 = *(uint *)(param_1 + 0x10);
  uVar16 = (ulonglong)uVar14;
  lVar18 = param_2;
  if ((1 < (int)uVar14) && ((int)param_1[1] != 0)) {
    uVar9 = *(uint *)(param_1 + 8);
    uVar8 = (ulonglong)uVar9;
    if (-1 < (int)uVar9) {
      lVar17 = 0;
      iVar13 = 0;
      if (0 < (int)uVar9) {
        do {
          lVar7 = FUN_181371270(param_1,iVar13);
          uVar14 = (uint)uVar16;
          lVar17 = lVar17 + lVar7;
          iVar13 = iVar13 + 1;
        } while (iVar13 < (int)uVar8);
      }
      goto LAB_18137027f;
    }
  }
  lVar17 = -0x83;
LAB_18137027f:
  if ((int)uVar14 < 2) {
    return 0xffffff7d;
  }
  if ((int)param_1[1] == 0) {
    return 0xffffff76;
  }
  if (lVar18 < 0) {
    return 0xffffff7d;
  }
  if (lVar17 < lVar18) {
    return 0xffffff7d;
  }
  iVar13 = (int)param_1[8] + -1;
  if (-1 < iVar13) {
    lVar7 = (longlong)iVar13;
    plVar15 = (longlong *)(param_1[0xc] + 8 + lVar7 * 0x10);
    do {
      lVar17 = lVar17 - *plVar15;
      if (lVar17 <= lVar18) break;
      iVar13 = iVar13 + -1;
      plVar15 = plVar15 + -2;
      lVar7 = lVar7 + -1;
    } while (-1 < lVar7);
  }
  uVar16 = *(ulonglong *)(param_1[9] + (longlong)(iVar13 + 1) * 8);
  uVar8 = *(ulonglong *)(param_1[9] + (longlong)iVar13 * 8);
  lVar7 = *(longlong *)(param_1[0xc] + (longlong)(iVar13 * 2) * 8);
  lVar18 = (lVar7 - lVar17) + lVar18;
  local_res18 = *(longlong *)(param_1[0xc] + (longlong)(iVar13 * 2 + 1) * 8) + lVar7;
  local_res20 = uVar8;
  if ((longlong)uVar8 < (longlong)uVar16) {
    do {
      uVar11 = uVar8;
      if ((0xffff < (longlong)(uVar16 - uVar8)) &&
         (uVar11 = (longlong)
                   (((double)(lVar18 - lVar7) * (double)(longlong)(uVar16 - uVar8)) /
                   (double)(local_res18 - lVar7)) + -0x10000 + uVar8,
         (longlong)uVar11 < (longlong)(uVar8 + 0x10000))) {
        uVar11 = uVar8;
      }
      if (uVar11 != param_1[2]) {
        if (*param_1 == 0) {
          iVar6 = -0x81;
        }
        else if (((code *)param_1[0x66] == (code *)0x0) ||
                (iVar6 = (*(code *)param_1[0x66])(*param_1,uVar11,0), iVar6 == -1)) {
          iVar6 = -0x80;
        }
        else {
          param_1[2] = uVar11;
          iVar6 = 0;
          *(undefined8 *)((longlong)param_1 + 0x2c) = 0;
          *(undefined8 *)((longlong)param_1 + 0x34) = 0;
          *(undefined4 *)((longlong)param_1 + 0x3c) = 0;
        }
        uVar10 = (ulonglong)iVar6;
        if (iVar6 != 0) goto LAB_1813707fa;
      }
LAB_181370430:
      uVar10 = FUN_1813730a0(param_1,&local_70,uVar16 - param_1[2]);
      if (uVar10 == 0xffffffffffffff80) goto LAB_1813707fa;
      if ((longlong)uVar10 < 0) {
        if ((longlong)uVar11 <= (longlong)(uVar8 + 1)) break;
        if (uVar11 == 0) goto LAB_1813707fa;
        uVar12 = uVar11 - 0x10000;
        if ((longlong)(uVar11 - 0x10000) <= (longlong)uVar8) {
          uVar12 = uVar8 + 1;
        }
        if (*param_1 == 0) {
          iVar6 = -0x81;
        }
        else if (((code *)param_1[0x66] == (code *)0x0) ||
                (iVar6 = (*(code *)param_1[0x66])(*param_1,uVar12,0), iVar6 == -1)) {
          iVar6 = -0x80;
        }
        else {
          iVar6 = 0;
          param_1[2] = uVar12;
          *(undefined8 *)((longlong)param_1 + 0x2c) = 0;
          *(undefined8 *)((longlong)param_1 + 0x34) = 0;
          *(undefined4 *)((longlong)param_1 + 0x3c) = 0;
        }
LAB_1813705a5:
        uVar10 = (ulonglong)iVar6;
        uVar11 = uVar12;
        if (iVar6 != 0) goto LAB_1813707fa;
LAB_1813705b0:
        if ((longlong)uVar16 <= (longlong)uVar8) break;
        goto LAB_181370430;
      }
      if ((*(int *)(local_70 + 0xe) != *(int *)(param_1[0xb] + (longlong)iVar13 * 4)) ||
         (lVar3 = *(longlong *)(local_70 + 6), lVar3 == -1)) goto LAB_1813705b0;
      if (lVar3 < lVar18) {
        uVar8 = param_1[2];
        uVar11 = uVar8;
        lVar7 = lVar3;
        lVar4 = local_res18;
        local_res20 = uVar10;
        if (0xac44 < lVar18 - lVar3) goto LAB_1813705d3;
        goto LAB_1813705b0;
      }
      if ((longlong)uVar11 <= (longlong)(uVar8 + 1)) break;
      bVar19 = uVar16 == param_1[2];
      uVar16 = uVar11;
      lVar4 = lVar3;
      if (bVar19) {
        uVar12 = uVar11 - 0x10000;
        if ((longlong)(uVar11 - 0x10000) <= (longlong)uVar8) {
          uVar12 = uVar8 + 1;
        }
        iVar6 = FUN_1813731b0(param_1,uVar12);
        uVar16 = uVar10;
        goto LAB_1813705a5;
      }
LAB_1813705d3:
      local_res18 = lVar4;
    } while ((longlong)uVar8 < (longlong)uVar16);
  }
  iVar6 = FUN_1813731b0(param_1,local_res20);
  uVar10 = (ulonglong)iVar6;
  param_1[0xf] = -1;
  if ((iVar6 == 0) &&
     (uVar10 = FUN_1813730a0(param_1,&local_70,0xffffffffffffffff), -1 < (longlong)uVar10)) {
    if (iVar13 == (int)param_1[0x11]) {
      FUN_18138f730(param_1 + 0x43);
    }
    else {
      FUN_181371c60(param_1);
      *(int *)(param_1 + 0x11) = iVar13;
      *(undefined4 *)((longlong)param_1 + 0x84) =
           *(undefined4 *)(param_1[0xb] + (longlong)iVar13 * 4);
      *(undefined4 *)(param_1 + 0x10) = 3;
    }
    *(undefined4 *)((longlong)param_1 + 0x204) = 0xffffffff;
    *(undefined8 *)((longlong)param_1 + 0xac) = 0;
    *(undefined8 *)((longlong)param_1 + 0xcc) = 0;
    *(undefined4 *)((longlong)param_1 + 0xd4) = 0;
    *(undefined8 *)((longlong)param_1 + 500) = 0;
    *(undefined4 *)((longlong)param_1 + 0x1fc) = 0;
    param_1[0x41] = 0;
    param_1[0x42] = 0;
    *(undefined4 *)(param_1 + 0x40) = *(undefined4 *)((longlong)param_1 + 0x84);
    FUN_1813919f0(param_1 + 0x14,&local_70);
    while( true ) {
      uVar14 = *(uint *)((longlong)param_1 + 0xd4);
      uVar16 = (ulonglong)(int)uVar14;
      iVar13 = 0;
      if ((int)uVar14 < (int)param_1[0x1a]) {
        pcVar2 = (char *)(param_1[0x17] + uVar16 * 4);
        uVar9 = *(uint *)(param_1[0x17] + uVar16 * 4);
        if ((uVar9 >> 10 & 1) == 0) {
          cVar5 = (char)uVar9;
          while (cVar5 == -1) {
            uVar14 = (int)uVar16 + 1;
            uVar16 = (ulonglong)uVar14;
            pcVar2 = pcVar2 + 4;
            cVar5 = *pcVar2;
          }
          local_58 = *(longlong *)(param_1[0x18] + (longlong)(int)uVar14 * 8);
          iVar13 = 1;
        }
        else {
          param_1[0x41] = param_1[0x41] + 1;
          *(uint *)((longlong)param_1 + 0xd4) = uVar14 + 1;
          iVar13 = -1;
        }
      }
      if (iVar13 == 0) {
        iVar13 = FUN_1813731b0(param_1,local_res20);
        uVar10 = (ulonglong)iVar13;
        if (iVar13 < 0) goto LAB_1813707fa;
        goto LAB_181370860;
      }
      if (iVar13 < 0) {
        uVar10 = 0xffffffffffffff78;
        goto LAB_1813707fa;
      }
      if (local_58 != -1) break;
      uVar14 = *(uint *)((longlong)param_1 + 0xd4);
      uVar16 = (ulonglong)(int)uVar14;
      if ((int)uVar14 < (int)param_1[0x1a]) {
        lVar18 = param_1[0x17] + uVar16 * 4;
        uVar9 = *(uint *)(param_1[0x17] + uVar16 * 4);
        if ((uVar9 >> 10 & 1) == 0) {
          uVar9 = uVar9 & 0xff;
          if (uVar9 == 0xff) {
            uVar9 = 0xff;
            do {
              pbVar1 = (byte *)(lVar18 + 4);
              lVar18 = lVar18 + 4;
              uVar9 = uVar9 + *pbVar1;
              uVar14 = (int)uVar16 + 1;
              uVar16 = (ulonglong)uVar14;
            } while (*pbVar1 == 0xff);
          }
          *(uint *)(param_1 + 0x16) = (int)param_1[0x16] + uVar9;
          param_1[0x41] = param_1[0x41] + 1;
          *(uint *)((longlong)param_1 + 0xd4) = uVar14 + 1;
        }
        else {
          param_1[0x41] = param_1[0x41] + 1;
          *(uint *)((longlong)param_1 + 0xd4) = uVar14 + 1;
        }
      }
    }
    local_58 = local_58 - *(longlong *)(param_1[0xc] + (longlong)((int)param_1[0x11] * 2) * 8);
    if (local_58 < 0) {
      local_58 = 0;
    }
    param_1[0xf] = local_58;
    param_1[0xf] = param_1[0xf] + lVar17;
    if ((param_1[0xf] <= param_2) && (lVar18 = FUN_181371270(param_1,0xffffffff), param_2 <= lVar18)
       ) {
      param_1[0x12] = 0;
      param_1[0x13] = 0;
      return 0;
    }
LAB_1813709f1:
    uVar10 = 0xffffffffffffff7f;
  }
LAB_1813707fa:
  param_1[0xf] = -1;
  FUN_18138ffc0(param_1 + 0x43);
  FUN_181390bc0(param_1 + 0x53);
  *(undefined4 *)(param_1 + 0x10) = 2;
  return uVar10 & 0xffffffff;
LAB_181370860:
  lVar18 = param_1[2];
  uVar16 = 0xffffffffffffffff;
  lVar17 = lVar18;
  do {
    lVar17 = lVar17 + -0x10000;
    if (lVar17 < 0) {
      lVar17 = 0;
    }
    if (*param_1 == 0) {
      iVar13 = -0x81;
    }
    else if (((code *)param_1[0x66] == (code *)0x0) ||
            (iVar13 = (*(code *)param_1[0x66])(*param_1,lVar17,0), iVar13 == -1)) {
      iVar13 = -0x80;
    }
    else {
      param_1[2] = lVar17;
      iVar13 = 0;
      *(undefined8 *)((longlong)param_1 + 0x2c) = 0;
      *(undefined8 *)((longlong)param_1 + 0x34) = 0;
      *(undefined4 *)((longlong)param_1 + 0x3c) = 0;
    }
    uVar10 = (longlong)iVar13;
    if (iVar13 != 0) goto LAB_18137094a;
    lVar7 = param_1[2];
    while (lVar7 < lVar18) {
      local_70 = 0;
      local_68 = 0;
      uVar8 = FUN_1813730a0(param_1,&local_70);
      if (uVar8 == 0xffffffffffffff80) {
        uVar10 = 0xffffffffffffff80;
        goto LAB_1813707fa;
      }
      if ((longlong)uVar8 < 0) break;
      uVar16 = uVar8;
      lVar7 = param_1[2];
    }
  } while (uVar16 == 0xffffffffffffffff);
  uVar10 = uVar16;
  if ((int)local_68 == 0) {
    iVar13 = FUN_1813731b0(param_1,uVar16);
    uVar10 = (longlong)iVar13;
    if ((iVar13 == 0) && (lVar18 = FUN_1813730a0(param_1,&local_70), uVar10 = uVar16, lVar18 < 0))
    goto LAB_1813709f1;
  }
LAB_18137094a:
  if ((longlong)uVar10 < 0) goto LAB_1813707fa;
  if ((*(int *)(local_70 + 0xe) == *(int *)((longlong)param_1 + 0x84)) &&
     ((*(ulonglong *)(local_70 + 6) < 0x8000000000000000 || ((*(byte *)(local_70 + 5) & 1) == 0))))
  {
    uVar16 = FUN_181370a20(param_1,uVar10);
    return uVar16;
  }
  param_1[2] = uVar10;
  goto LAB_181370860;
}



############ FUN_ 1813730a0 size=264 ############

longlong FUN_1813730a0(longlong *param_1,undefined8 param_2,longlong param_3)

{
  longlong lVar1;
  int iVar2;
  int *piVar3;
  undefined8 uVar4;
  int iVar5;
  
  if (0 < param_3) {
    param_3 = param_3 + param_1[2];
  }
  while( true ) {
    while( true ) {
      if ((0 < param_3) && (param_3 <= param_1[2])) {
        return -1;
      }
      iVar2 = FUN_181391d60(param_1 + 4,param_2);
      if (-1 < iVar2) break;
      param_1[2] = param_1[2] - (longlong)iVar2;
    }
    if (iVar2 != 0) {
      lVar1 = param_1[2];
      param_1[2] = iVar2 + lVar1;
      return lVar1;
    }
    if (param_3 == 0) break;
    piVar3 = _errno();
    *piVar3 = 0;
    if (param_1[0x65] == 0) {
      return -0x80;
    }
    if (*param_1 == 0) {
      return -2;
    }
    uVar4 = FUN_181391ee0(param_1 + 4,0x800);
    iVar2 = (*(code *)param_1[0x65])(uVar4,1,0x800,*param_1);
    if ((0 < iVar2) &&
       (iVar5 = *(int *)((longlong)param_1 + 0x2c) + iVar2, iVar5 <= (int)param_1[5])) {
      *(int *)((longlong)param_1 + 0x2c) = iVar5;
    }
    if (iVar2 == 0) {
      piVar3 = _errno();
      if (*piVar3 != 0) {
        return -0x80;
      }
      return -2;
    }
    if (iVar2 < 0) {
      return -0x80;
    }
  }
  return -1;
}



############ FUN_ 181390bc0 size=110 ############

undefined8 FUN_181390bc0(void *param_1)

{
  longlong lVar1;
  
  lVar1 = *(longlong *)((longlong)param_1 + 0x88);
  FUN_181390c80();
  if (*(void **)((longlong)param_1 + 0x58) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)((longlong)param_1 + 0x58));
  }
  if (lVar1 != 0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)(*(longlong *)(lVar1 + 0x10) + 8));
  }
  memset(param_1,0,0x90);
  return 0;
}



############ FUN_ 181371c60 size=49 ############

void FUN_181371c60(longlong param_1)

{
  FUN_18138ffc0(param_1 + 0x218);
  FUN_181390bc0(param_1 + 0x298);
  *(undefined4 *)(param_1 + 0x80) = 2;
  return;
}



############ FUN_ 181377470 size=464 ############

undefined8 FUN_181377470(longlong *param_1,longlong *param_2)

{
  longlong lVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  longlong *plVar5;
  longlong lVar6;
  undefined8 uVar7;
  longlong *plVar8;
  longlong *plVar9;
  longlong *plVar10;
  uint uVar11;
  longlong *plVar12;
  longlong *plVar13;
  
  plVar10 = (longlong *)0x0;
  plVar5 = plVar10;
  plVar8 = plVar10;
  plVar12 = plVar10;
  plVar13 = plVar10;
  if ((param_1 != (longlong *)0x0) && (plVar5 = (longlong *)param_1[10], plVar5 != (longlong *)0x0))
  {
    plVar8 = (longlong *)plVar5[1];
    plVar13 = (longlong *)plVar5[0xf];
    if (plVar8 != (longlong *)0x0) {
      plVar12 = (longlong *)plVar8[4];
    }
  }
  plVar9 = param_1 + 1;
  if (param_1 == (longlong *)0x0) {
    plVar9 = plVar10;
  }
  if ((((plVar5 != (longlong *)0x0) && (plVar13 != (longlong *)0x0)) && (plVar8 != (longlong *)0x0))
     && ((plVar12 != (longlong *)0x0 && (plVar9 != (longlong *)0x0)))) {
    FUN_181390c80();
    lVar1 = param_2[1];
    lVar6 = *param_2;
    *plVar9 = 0;
    plVar9[3] = 0;
    *(int *)(plVar9 + 3) = (int)lVar1;
    plVar9[2] = lVar6;
    plVar9[1] = lVar6;
    iVar2 = FUN_181392960(plVar9,1);
    if (iVar2 != 0) {
      return 0xffffff79;
    }
    iVar2 = FUN_181392960(plVar9,(int)plVar13[10]);
    if (iVar2 != -1) {
      *(int *)(param_1 + 7) = iVar2;
      if ((int *)plVar12[(longlong)iVar2 + 4] != (int *)0x0) {
        iVar4 = *(int *)plVar12[(longlong)iVar2 + 4];
        *(int *)((longlong)param_1 + 0x2c) = iVar4;
        if (iVar4 == 0) {
          *(undefined4 *)(param_1 + 5) = 0;
          *(undefined4 *)(param_1 + 6) = 0;
        }
        else {
          uVar3 = FUN_181392960(plVar9,1);
          *(undefined4 *)(param_1 + 5) = uVar3;
          iVar4 = FUN_181392960(plVar9,1);
          *(int *)(param_1 + 6) = iVar4;
          if (iVar4 == -1) {
            return 0xffffff78;
          }
        }
        param_1[8] = param_2[3];
        param_1[9] = param_2[4];
        *(int *)((longlong)param_1 + 0x3c) = (int)param_2[2];
        *(undefined4 *)((longlong)param_1 + 0x34) =
             *(undefined4 *)((longlong)plVar12 + (longlong)*(int *)((longlong)param_1 + 0x2c) * 4);
        lVar6 = FUN_181390d20(param_1,*(int *)((longlong)plVar8 + 4) << 3);
        *param_1 = lVar6;
        plVar5 = plVar10;
        if (0 < *(int *)((longlong)plVar8 + 4)) {
          do {
            uVar7 = FUN_181390d20(param_1,*(int *)((longlong)param_1 + 0x34) << 2);
            uVar11 = (int)plVar5 + 1;
            *(undefined8 *)((longlong)plVar10 + *param_1) = uVar7;
            plVar10 = plVar10 + 1;
            plVar5 = (longlong *)(ulonglong)uVar11;
          } while ((int)uVar11 < *(int *)((longlong)plVar8 + 4));
        }
        uVar7 = (**(code **)((&PTR_PTR_1822fa9e8)
                             [*(int *)((longlong)plVar12 +
                                      (longlong)*(int *)(plVar12[(longlong)iVar2 + 4] + 0xc) * 4 +
                                      0x220)] + 0x20))
                          (param_1,plVar12[(longlong)*(int *)(plVar12[(longlong)iVar2 + 4] + 0xc) +
                                           100]);
        return uVar7;
      }
    }
  }
  return 0xffffff78;
}



############ FUN_ 181391840 size=255 ############

undefined8 FUN_181391840(longlong *param_1,longlong *param_2,int param_3)

{
  uint *puVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint *puVar6;
  uint uVar7;
  ulonglong uVar8;
  
  uVar7 = *(uint *)((longlong)param_1 + 0x34);
  uVar8 = (ulonglong)(int)uVar7;
  if ((int)param_1[6] <= (int)uVar7) {
    return 0;
  }
  puVar6 = (uint *)(param_1[3] + uVar8 * 4);
  uVar2 = *puVar6;
  if ((uVar2 >> 10 & 1) == 0) {
    if ((param_2 != (longlong *)0x0) || (param_3 != 0)) {
      uVar5 = uVar2 & 0xff;
      uVar4 = uVar2 & 0x200;
      if (uVar5 == 0xff) {
        uVar5 = 0xff;
        do {
          puVar1 = puVar6 + 1;
          puVar6 = puVar6 + 1;
          uVar7 = (int)uVar8 + 1;
          uVar8 = (ulonglong)uVar7;
          uVar3 = *puVar1 & 0xff;
          if ((*puVar1 & 0x200) != 0) {
            uVar4 = 0x200;
          }
          uVar5 = uVar5 + uVar3;
        } while (uVar3 == 0xff);
      }
      if (param_2 != (longlong *)0x0) {
        *(uint *)(param_2 + 2) = uVar4;
        *(uint *)((longlong)param_2 + 0xc) = uVar2 & 0x100;
        *param_2 = (longlong)(int)param_1[2] + *param_1;
        param_2[4] = param_1[0x2d];
        param_2[3] = *(longlong *)(param_1[4] + (longlong)(int)uVar7 * 8);
        *(uint *)(param_2 + 1) = uVar5;
      }
      if (param_3 != 0) {
        *(uint *)(param_1 + 2) = (int)param_1[2] + uVar5;
        param_1[0x2d] = param_1[0x2d] + 1;
        *(uint *)((longlong)param_1 + 0x34) = uVar7 + 1;
      }
    }
    return 1;
  }
  param_1[0x2d] = param_1[0x2d] + 1;
  *(uint *)((longlong)param_1 + 0x34) = uVar7 + 1;
  return 0xffffffff;
}



############ FUN_ 181372660 size=1470 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_181372660(longlong param_1,undefined8 *param_2,undefined8 *param_3,longlong *param_4,
                  int *param_5,longlong *param_6)

{
  uint *puVar1;
  byte bVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  longlong lVar6;
  void *pvVar7;
  int *piVar8;
  uint uVar9;
  int iVar10;
  uint uVar11;
  ulonglong uVar12;
  undefined1 auStack_f8 [32];
  undefined8 *local_d8;
  undefined8 *local_d0;
  longlong local_c8;
  uint local_c0;
  uint local_bc;
  uint local_b8;
  undefined8 local_b0;
  longlong local_a8;
  undefined8 local_a0;
  longlong local_98;
  longlong local_90;
  ulonglong local_88;
  longlong local_80 [4];
  int local_60;
  short local_5c;
  ulonglong local_58;
  
  local_58 = DAT_182615970 ^ (ulonglong)auStack_f8;
  iVar10 = 0;
  local_d8 = param_2;
  local_d0 = param_3;
  if (param_6 == (longlong *)0x0) {
    lVar6 = FUN_1813730a0(param_1,local_80,0x10000);
    if (lVar6 == -0x80) {
    }
    if (lVar6 < 0) {
    }
    param_6 = local_80;
  }
  *param_2 = 0;
  param_2[1] = 0;
  param_2[2] = 0;
  param_2[3] = 0;
  param_2[4] = 0;
  pvVar7 = calloc(1,0x1670);
  param_2[4] = pvVar7;
  *param_3 = 0;
  param_3[1] = 0;
  param_3[2] = 0;
  param_3[3] = 0;
  *(undefined4 *)(param_1 + 0x80) = 2;
  lVar6 = *param_6;
  bVar2 = *(byte *)(lVar6 + 5);
  do {
    if ((bVar2 & 2) == 0) {
LAB_1813728d6:
      iVar5 = iVar10;
      if (*(int *)(param_1 + 0x80) == 3) {
        do {
          if (1 < iVar10) {
          }
          do {
            uVar11 = *(uint *)(param_1 + 0xd4);
            uVar12 = (ulonglong)(int)uVar11;
            if (*(int *)(param_1 + 0xd0) <= (int)uVar11) break;
            uVar9 = *(uint *)(*(longlong *)(param_1 + 0xb8) + uVar12 * 4);
            lVar6 = *(longlong *)(param_1 + 0xb8) + uVar12 * 4;
            if ((uVar9 >> 10 & 1) != 0) {
              *(longlong *)(param_1 + 0x208) = *(longlong *)(param_1 + 0x208) + 1;
              *(uint *)(param_1 + 0xd4) = uVar11 + 1;
              goto LAB_181372bee;
            }
            local_c0 = uVar9 & 0xff;
            local_b8 = uVar9 & 0x200;
            local_bc = uVar9 & 0x100;
            if (local_c0 == 0xff) {
              local_c0 = 0xff;
              do {
                puVar1 = (uint *)(lVar6 + 4);
                lVar6 = lVar6 + 4;
                uVar11 = (int)uVar12 + 1;
                uVar12 = (ulonglong)uVar11;
                uVar9 = *puVar1 & 0xff;
                if ((*puVar1 & 0x200) != 0) {
                  local_b8 = 0x200;
                }
                local_c0 = local_c0 + uVar9;
              } while (uVar9 == 0xff);
            }
            local_a8 = *(longlong *)(param_1 + 0x208);
            local_c8 = (longlong)*(int *)(param_1 + 0xb0) + *(longlong *)(param_1 + 0xa0);
            local_b0 = *(undefined8 *)(*(longlong *)(param_1 + 0xc0) + (longlong)(int)uVar11 * 8);
            *(uint *)(param_1 + 0xb0) = *(int *)(param_1 + 0xb0) + local_c0;
            *(uint *)(param_1 + 0xd4) = uVar11 + 1;
            *(longlong *)(param_1 + 0x208) = local_a8 + 1;
            iVar4 = FUN_1813877e0(param_2,local_d0,&local_c8);
            if (iVar4 != 0) goto LAB_181372bee;
            iVar10 = iVar10 + 1;
            param_2 = local_d8;
          } while (iVar10 < 2);
          if (1 < iVar10) {
          }
          while( true ) {
            lVar6 = FUN_1813730a0(param_1,param_6,0x10000);
            if (lVar6 < 0) goto LAB_181372bee;
            if (*(int *)(param_1 + 0x200) == *(int *)(*param_6 + 0xe)) break;
            if ((*(byte *)(*param_6 + 5) & 2) != 0) {
              if (iVar5 != 0) goto LAB_181372bee;
              iVar5 = 1;
            }
          }
          FUN_1813919f0(param_1 + 0xa0,param_6);
          param_2 = local_d8;
        } while (iVar10 < 2);
      }
      else {
LAB_181372bee:
        FUN_181388250(local_d8);
        FUN_181388560(local_d0);
        *(undefined4 *)(param_1 + 0x80) = 2;
      }
    }
    if (param_4 != (longlong *)0x0) {
      iVar5 = *(int *)(lVar6 + 0xe);
      piVar8 = (int *)*param_4;
      iVar4 = *param_5;
      if (piVar8 != (int *)0x0) {
        while (iVar4 != 0) {
          if (*piVar8 == iVar5) {
            if ((void *)*param_4 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
              free((void *)*param_4);
            }
            *param_4 = 0;
            *param_5 = 0;
            goto LAB_181372bee;
          }
          piVar8 = piVar8 + 1;
          iVar4 = iVar4 + -1;
        }
      }
      iVar4 = *param_5 + 1;
      *param_5 = iVar4;
      if ((void *)*param_4 == (void *)0x0) {
        pvVar7 = malloc(4);
      }
      else {
        pvVar7 = realloc((void *)*param_4,(longlong)iVar4 << 2);
      }
      *param_4 = (longlong)pvVar7;
      *(int *)(*param_4 + (longlong)(*param_5 + -1) * 4) = iVar5;
      param_2 = local_d8;
    }
    if (*(int *)(param_1 + 0x80) < 3) {
      uVar3 = *(undefined4 *)(*param_6 + 0xe);
      *(undefined8 *)(param_1 + 0xac) = 0;
      *(undefined4 *)(param_1 + 0x200) = uVar3;
      *(undefined8 *)(param_1 + 0xcc) = 0;
      *(undefined4 *)(param_1 + 0xd4) = 0;
      *(undefined8 *)(param_1 + 500) = 0;
      *(undefined4 *)(param_1 + 0x1fc) = 0;
      *(undefined4 *)(param_1 + 0x204) = 0xffffffff;
      *(undefined8 *)(param_1 + 0x208) = 0;
      *(undefined8 *)(param_1 + 0x210) = 0;
      FUN_1813919f0((longlong *)(param_1 + 0xa0),param_6);
      uVar11 = *(uint *)(param_1 + 0xd4);
      uVar12 = (ulonglong)(int)uVar11;
      param_2 = local_d8;
      if ((int)uVar11 < *(int *)(param_1 + 0xd0)) {
        uVar9 = *(uint *)(*(longlong *)(param_1 + 0xb8) + uVar12 * 4);
        lVar6 = *(longlong *)(param_1 + 0xb8) + uVar12 * 4;
        if ((uVar9 >> 10 & 1) == 0) {
          local_c0 = uVar9 & 0xff;
          local_bc = uVar9 & 0x100;
          local_b8 = uVar9 & 0x200;
          uVar9 = local_c0;
          while (uVar9 == 0xff) {
            puVar1 = (uint *)(lVar6 + 4);
            lVar6 = lVar6 + 4;
            uVar11 = (int)uVar12 + 1;
            uVar12 = (ulonglong)uVar11;
            uVar9 = *puVar1 & 0xff;
            if ((*puVar1 & 0x200) != 0) {
              local_b8 = 0x200;
            }
            local_c0 = local_c0 + uVar9;
          }
          local_c8 = (longlong)*(int *)(param_1 + 0xb0) + *(longlong *)(param_1 + 0xa0);
          local_a8 = *(longlong *)(param_1 + 0x208);
          local_b0 = *(undefined8 *)(*(longlong *)(param_1 + 0xc0) + (longlong)(int)uVar11 * 8);
          *(uint *)(param_1 + 0xb0) = *(int *)(param_1 + 0xb0) + local_c0;
          *(uint *)(param_1 + 0xd4) = uVar11 + 1;
          *(longlong *)(param_1 + 0x208) = local_a8 + 1;
          local_88 = (ulonglong)local_c0;
          local_a0 = 0;
          local_98 = local_c8;
          local_90 = local_c8;
          if ((local_bc != 0) &&
             (iVar5 = FUN_181392960(&local_a0,8), param_2 = local_d8, iVar5 == 1)) {
            local_60 = 0;
            local_5c = 0;
            FUN_181388aa0(&local_a0,&local_60,6);
            param_2 = local_d8;
            if ((local_60 == s_vorbis_1821e47fc._0_4_) && (local_5c == s_vorbis_1821e47fc._4_2_)) {
              *(undefined4 *)(param_1 + 0x80) = 3;
              iVar5 = FUN_1813877e0(local_d8,local_d0,&local_c8);
              if (iVar5 != 0) goto LAB_181372bee;
            }
          }
        }
        else {
          *(longlong *)(param_1 + 0x208) = *(longlong *)(param_1 + 0x208) + 1;
          *(uint *)(param_1 + 0xd4) = uVar11 + 1;
        }
      }
    }
    lVar6 = FUN_1813730a0(param_1,param_6,0x10000);
    if ((lVar6 == -0x80) || (lVar6 < 0)) goto LAB_181372bee;
    if ((*(int *)(param_1 + 0x80) == 3) && (*(int *)(param_1 + 0x200) == *(int *)(*param_6 + 0xe)))
    {
      FUN_1813919f0(param_1 + 0xa0,param_6);
      goto LAB_1813728d6;
    }
    lVar6 = *param_6;
    bVar2 = *(byte *)(lVar6 + 5);
  } while( true );
}



############ FUN_ 181388250 size=661 ############

void FUN_181388250(undefined8 *param_1)

{
  void *pvVar1;
  void *_Memory;
  undefined8 *_Memory_00;
  longlong lVar2;
  void *_Memory_01;
  int *piVar3;
  undefined8 *puVar4;
  longlong *plVar5;
  ulonglong uVar6;
  uint uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  
  _Memory = (void *)param_1[4];
  if (_Memory == (void *)0x0) {
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    param_1[3] = 0;
    param_1[4] = 0;
    return;
  }
  uVar9 = 0;
  if (0 < *(int *)((longlong)_Memory + 8)) {
    puVar4 = (undefined8 *)((longlong)_Memory + 0x20);
    uVar6 = uVar9;
    do {
      if ((void *)*puVar4 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
        free((void *)*puVar4);
      }
      uVar7 = (int)uVar6 + 1;
      uVar6 = (ulonglong)uVar7;
      puVar4 = puVar4 + 1;
    } while ((int)uVar7 < *(int *)((longlong)_Memory + 8));
  }
  if (0 < *(int *)((longlong)_Memory + 0xc)) {
    piVar3 = (int *)((longlong)_Memory + 0x220);
    plVar5 = (longlong *)((longlong)_Memory + 800);
    uVar6 = uVar9;
    do {
      if (*plVar5 != 0) {
        (**(code **)((&PTR_PTR_1822fa9e8)[*piVar3] + 0x10))();
      }
      uVar7 = (int)uVar6 + 1;
      uVar6 = (ulonglong)uVar7;
      plVar5 = plVar5 + 1;
      piVar3 = piVar3 + 1;
    } while ((int)uVar7 < *(int *)((longlong)_Memory + 0xc));
  }
  if (0 < *(int *)((longlong)_Memory + 0x10)) {
    piVar3 = (int *)((longlong)_Memory + 0x520);
    plVar5 = (longlong *)((longlong)_Memory + 0x620);
    uVar6 = uVar9;
    do {
      if (*plVar5 != 0) {
        (**(code **)((&PTR_DAT_1822f5a90)[*piVar3] + 0x18))();
      }
      uVar7 = (int)uVar6 + 1;
      uVar6 = (ulonglong)uVar7;
      plVar5 = plVar5 + 1;
      piVar3 = piVar3 + 1;
    } while ((int)uVar7 < *(int *)((longlong)_Memory + 0x10));
  }
  if (0 < *(int *)((longlong)_Memory + 0x14)) {
    piVar3 = (int *)((longlong)_Memory + 0x820);
    plVar5 = (longlong *)((longlong)_Memory + 0x920);
    uVar6 = uVar9;
    do {
      if (*plVar5 != 0) {
        (**(code **)((&PTR_DAT_182280c20)[*piVar3] + 0x18))();
      }
      uVar7 = (int)uVar6 + 1;
      uVar6 = (ulonglong)uVar7;
      plVar5 = plVar5 + 1;
      piVar3 = piVar3 + 1;
    } while ((int)uVar7 < *(int *)((longlong)_Memory + 0x14));
  }
  if (0 < *(int *)((longlong)_Memory + 0x18)) {
    puVar4 = (undefined8 *)((longlong)_Memory + 0xb20);
    uVar6 = uVar9;
    uVar8 = uVar9;
    do {
      _Memory_00 = (undefined8 *)*puVar4;
      if ((_Memory_00 != (undefined8 *)0x0) && (*(int *)(_Memory_00 + 6) != 0)) {
        if ((void *)_Memory_00[5] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free((void *)_Memory_00[5]);
        }
        if ((void *)_Memory_00[1] == (void *)0x0) {
          *_Memory_00 = 0;
          _Memory_00[1] = 0;
          _Memory_00[2] = 0;
          _Memory_00[3] = 0;
          _Memory_00[4] = 0;
          _Memory_00[5] = 0;
          _Memory_00[6] = 0;
                    /* WARNING: Subroutine does not return */
          free(_Memory_00);
        }
                    /* WARNING: Subroutine does not return */
        free((void *)_Memory_00[1]);
      }
      lVar2 = *(longlong *)((longlong)_Memory + 0x1320);
      if (lVar2 != 0) {
        _Memory_01 = *(void **)(uVar8 + 0x18 + lVar2);
        pvVar1 = (void *)(uVar8 + lVar2);
        if (_Memory_01 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free(_Memory_01);
        }
        if (*(void **)((longlong)pvVar1 + 0x20) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free(*(void **)((longlong)pvVar1 + 0x20));
        }
        if (*(void **)((longlong)pvVar1 + 0x28) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free(*(void **)((longlong)pvVar1 + 0x28));
        }
        if (*(void **)((longlong)pvVar1 + 0x30) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free(*(void **)((longlong)pvVar1 + 0x30));
        }
        if (*(void **)((longlong)pvVar1 + 0x38) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free(*(void **)((longlong)pvVar1 + 0x38));
        }
        memset(pvVar1,0,0x58);
      }
      uVar7 = (int)uVar6 + 1;
      uVar6 = (ulonglong)uVar7;
      puVar4 = puVar4 + 1;
      uVar8 = uVar8 + 0x58;
    } while ((int)uVar7 < *(int *)((longlong)_Memory + 0x18));
  }
  if (*(void **)((longlong)_Memory + 0x1320) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)((longlong)_Memory + 0x1320));
  }
  if (0 < *(int *)((longlong)_Memory + 0x1c)) {
    puVar4 = (undefined8 *)((longlong)_Memory + 0x1328);
    do {
      pvVar1 = (void *)*puVar4;
      if (pvVar1 != (void *)0x0) {
        memset(pvVar1,0,0x208);
                    /* WARNING: Subroutine does not return */
        free(pvVar1);
      }
      uVar7 = (int)uVar9 + 1;
      uVar9 = (ulonglong)uVar7;
      puVar4 = puVar4 + 1;
    } while ((int)uVar7 < *(int *)((longlong)_Memory + 0x1c));
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 181388560 size=144 ############

void FUN_181388560(longlong *param_1)

{
  longlong lVar1;
  int iVar2;
  
  if (param_1 != (longlong *)0x0) {
    if (*param_1 != 0) {
      iVar2 = 0;
      if (0 < (int)param_1[2]) {
        lVar1 = 0;
        do {
          if (*(void **)(lVar1 + *param_1) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
            free(*(void **)(lVar1 + *param_1));
          }
          iVar2 = iVar2 + 1;
          lVar1 = lVar1 + 8;
        } while (iVar2 < (int)param_1[2]);
      }
                    /* WARNING: Subroutine does not return */
      free((void *)*param_1);
    }
    if ((void *)param_1[1] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[1]);
    }
    if ((void *)param_1[3] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[3]);
    }
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    param_1[3] = 0;
  }
  return;
}



############ FUN_ 1813af920 size=587 ############

/* WARNING: Removing unreachable block (ram,0x0001813afa1e) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1813af920(longlong param_1,int param_2,uint param_3)

{
  float *pfVar1;
  longlong lVar2;
  int *piVar3;
  int *piVar4;
  float fVar5;
  float fVar6;
  float fVar7;
  float fVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  float fVar17;
  uint uVar18;
  ulonglong uVar19;
  float *pfVar20;
  longlong lVar21;
  longlong lVar22;
  float *pfVar23;
  float *pfVar24;
  longlong lVar25;
  longlong lVar26;
  
  fVar17 = DAT_1824c3c28;
  if (0 < param_2) {
    lVar22 = 0;
    do {
      pfVar23 = *(float **)(param_1 + lVar22 * 8);
      if (pfVar23 != (float *)0x0) {
        uVar18 = (int)(param_3 + ((int)param_3 >> 0x1f & 3U)) >> 2;
        uVar19 = (ulonglong)uVar18;
        pfVar24 = pfVar23;
        if (((ulonglong)pfVar23 & 0xf) == 0) {
          if (0 < (int)uVar18) {
            do {
              fVar5 = *pfVar23;
              fVar6 = pfVar23[1];
              fVar7 = pfVar23[2];
              fVar8 = pfVar23[3];
              pfVar23 = pfVar23 + 4;
              *pfVar24 = (float)(int)fVar5 * 4.656613e-10;
              pfVar24[1] = (float)(int)fVar6 * 4.656613e-10;
              pfVar24[2] = (float)(int)fVar7 * 4.656613e-10;
              pfVar24[3] = (float)(int)fVar8 * 4.656613e-10;
              pfVar24 = pfVar24 + 4;
              uVar19 = uVar19 - 1;
            } while (uVar19 != 0);
          }
        }
        else if (0 < (int)uVar18) {
          do {
            fVar5 = *pfVar23;
            fVar6 = pfVar23[1];
            fVar7 = pfVar23[2];
            fVar8 = pfVar23[3];
            pfVar23 = pfVar23 + 4;
            *pfVar24 = (float)(int)fVar5 * 4.656613e-10;
            pfVar24[1] = (float)(int)fVar6 * 4.656613e-10;
            pfVar24[2] = (float)(int)fVar7 * 4.656613e-10;
            pfVar24[3] = (float)(int)fVar8 * 4.656613e-10;
            pfVar24 = pfVar24 + 4;
            uVar19 = uVar19 - 1;
          } while (uVar19 != 0);
        }
        fVar8 = _UNK_1824c4a7c;
        fVar7 = _UNK_1824c4a78;
        fVar6 = _UNK_1824c4a74;
        fVar5 = _DAT_1824c4a70;
        uVar18 = param_3 & 3;
        if (uVar18 != 0) {
          lVar26 = 0;
          if (((uVar18 != 0) && (0xf < uVar18)) &&
             ((pfVar23 + (int)(uVar18 - 1) < pfVar24 || (pfVar24 + (int)(uVar18 - 1) < pfVar23)))) {
            pfVar20 = pfVar24 + 4;
            do {
              piVar3 = (int *)((longlong)pfVar23 + (-0x10 - (longlong)pfVar24) + (longlong)pfVar20);
              iVar9 = piVar3[1];
              iVar10 = piVar3[2];
              iVar11 = piVar3[3];
              lVar26 = lVar26 + 0x10;
              pfVar1 = pfVar20 + 0x10;
              piVar4 = (int *)((longlong)pfVar23 + (-0x40 - (longlong)pfVar24) + (longlong)pfVar1);
              iVar12 = *piVar4;
              iVar13 = piVar4[1];
              iVar14 = piVar4[2];
              iVar15 = piVar4[3];
              pfVar20[-4] = (float)*piVar3 * fVar5;
              pfVar20[-3] = (float)iVar9 * fVar6;
              pfVar20[-2] = (float)iVar10 * fVar7;
              pfVar20[-1] = (float)iVar11 * fVar8;
              piVar3 = (int *)((longlong)pfVar23 + (-0x30 - (longlong)pfVar24) + (longlong)pfVar1);
              iVar9 = *piVar3;
              iVar10 = piVar3[1];
              iVar11 = piVar3[2];
              iVar16 = piVar3[3];
              *pfVar20 = (float)iVar12 * fVar5;
              pfVar20[1] = (float)iVar13 * fVar6;
              pfVar20[2] = (float)iVar14 * fVar7;
              pfVar20[3] = (float)iVar15 * fVar8;
              piVar3 = (int *)((longlong)pfVar23 + (-0x20 - (longlong)pfVar24) + (longlong)pfVar1);
              iVar12 = *piVar3;
              iVar13 = piVar3[1];
              iVar14 = piVar3[2];
              iVar15 = piVar3[3];
              pfVar20[4] = (float)iVar9 * fVar5;
              pfVar20[5] = (float)iVar10 * fVar6;
              pfVar20[6] = (float)iVar11 * fVar7;
              pfVar20[7] = (float)iVar16 * fVar8;
              pfVar20[8] = (float)iVar12 * fVar5;
              pfVar20[9] = (float)iVar13 * fVar6;
              pfVar20[10] = (float)iVar14 * fVar7;
              pfVar20[0xb] = (float)iVar15 * fVar8;
              pfVar20 = pfVar1;
            } while (lVar26 < 0);
          }
          lVar21 = (longlong)(int)uVar18;
          if (lVar26 < lVar21) {
            if (3 < lVar21 - lVar26) {
              lVar2 = lVar26 + 1;
              lVar25 = ((lVar21 - lVar26) - 4U >> 2) + 1;
              lVar26 = lVar26 + lVar25 * 4;
              pfVar20 = pfVar24 + lVar2;
              do {
                pfVar1 = pfVar20 + 4;
                pfVar20[-1] = (float)*(int *)((longlong)pfVar23 + (-4 - (longlong)pfVar24) +
                                             (longlong)pfVar20) * fVar17;
                *pfVar20 = (float)*(int *)((longlong)pfVar23 + (-0x10 - (longlong)pfVar24) +
                                          (longlong)pfVar1) * fVar17;
                pfVar20[1] = (float)*(int *)((longlong)pfVar23 + (-0xc - (longlong)pfVar24) +
                                            (longlong)pfVar1) * fVar17;
                pfVar20[2] = (float)*(int *)((longlong)pfVar23 + (-8 - (longlong)pfVar24) +
                                            (longlong)pfVar1) * fVar17;
                lVar25 = lVar25 + -1;
                pfVar20 = pfVar1;
              } while (lVar25 != 0);
            }
            if (lVar26 < lVar21) {
              lVar21 = lVar21 - lVar26;
              pfVar20 = pfVar24 + lVar26;
              do {
                *pfVar20 = (float)*(int *)(((longlong)pfVar23 - (longlong)pfVar24) +
                                          (longlong)pfVar20) * fVar17;
                lVar21 = lVar21 + -1;
                pfVar20 = pfVar20 + 1;
              } while (lVar21 != 0);
            }
          }
        }
      }
      lVar22 = lVar22 + 1;
    } while (lVar22 < param_2);
  }
  return;
}



############ FUN_ 1813af7b0 size=353 ############

undefined1
FUN_1813af7b0(longlong *param_1,undefined8 *param_2,int param_3,longlong param_4,int param_5,
             char param_6)

{
  char cVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  void *_Src;
  int iVar5;
  int iVar6;
  
  lVar4 = (longlong)param_5;
  iVar5 = 0;
  if (param_4 < 0) {
    lVar3 = (longlong)(param_3 + -1);
    lVar2 = -param_4;
    if (lVar4 < -param_4) {
      lVar2 = lVar4;
    }
    iVar5 = (int)lVar2;
    if (-1 < param_3 + -1) {
      do {
        if ((void *)param_2[lVar3] != (void *)0x0) {
          memset((void *)param_2[lVar3],0,(longlong)iVar5 << 2);
        }
        lVar3 = lVar3 + -1;
      } while (-1 < lVar3);
    }
    param_5 = param_5 - iVar5;
    param_4 = 0;
  }
  if (0 < param_5) {
    iVar6 = (int)param_1[4];
    if (param_3 < (int)param_1[4]) {
      iVar6 = param_3;
    }
    cVar1 = (**(code **)(*param_1 + 0x20))(param_1,param_2,iVar6,iVar5,param_4,param_5);
    if (cVar1 == '\0') {
      return 0;
    }
    iVar5 = (int)param_1[4];
    lVar2 = (longlong)iVar5;
    if (iVar5 < param_3) {
      if (param_6 == '\0') {
        for (; lVar2 < param_3; lVar2 = lVar2 + 1) {
          if ((void *)param_2[lVar2] != (void *)0x0) {
            memset((void *)param_2[lVar2],0,lVar4 * 4);
          }
        }
      }
      else {
        lVar3 = (longlong)(iVar5 + -1);
        _Src = (void *)*param_2;
        if (0 < iVar5 + -1) {
          do {
            _Src = (void *)param_2[lVar3];
            if ((void *)param_2[lVar3] != (void *)0x0) break;
            lVar3 = lVar3 + -1;
            _Src = (void *)*param_2;
          } while (0 < lVar3);
        }
        if (_Src != (void *)0x0) {
          for (; lVar2 < param_3; lVar2 = lVar2 + 1) {
            if ((void *)param_2[lVar2] != (void *)0x0) {
              memcpy((void *)param_2[lVar2],_Src,lVar4 * 4);
            }
          }
        }
      }
    }
  }
  return 1;
}



############ FUN_ 1813af700 size=157 ############

void FUN_1813af700(undefined8 param_1,longlong param_2,longlong param_3,int param_4,
                  undefined4 param_5,undefined8 param_6,int param_7,char param_8)

{
  longlong lVar1;
  longlong lVar2;
  
  lVar2 = (longlong)param_7;
  lVar1 = 0;
  if (0 < lVar2) {
    do {
      LOCK();
      *(undefined1 *)(param_3 + 0x120) = 0;
      UNLOCK();
      *(longlong *)(param_2 + lVar1 * 8) =
           *(longlong *)(*(longlong *)(param_3 + 0x10) + lVar1 * 8) + (longlong)param_4 * 4;
      lVar1 = lVar1 + 1;
    } while (lVar1 < lVar2);
  }
  *(undefined8 *)(param_2 + lVar2 * 8) = 0;
  FUN_1813af7b0(param_1,param_2,param_7,param_6,param_5,1);
  if (param_8 != '\0') {
    FUN_1813af920(param_2,param_7,param_5);
  }
  return;
}



############ FUN_ 180487220 size=208 ############

ulonglong FUN_180487220(float *param_1,float param_2)

{
  float fVar1;
  longlong *plVar2;
  float fVar3;
  ulonglong uVar4;
  float local_res8 [4];
  float local_res18 [2];
  float local_res20 [2];
  
  if (*(longlong *)(param_1 + 0x34) != 0) {
    local_res18[0] = param_1[1];
    local_res20[0] = *param_1;
    plVar2 = *(longlong **)(param_1 + 0x34);
    local_res8[0] = param_2;
    if (plVar2 == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
      std::_Xbad_function_call();
    }
    uVar4 = (**(code **)(*plVar2 + 0x10))
                      (plVar2,local_res20,local_res18,local_res8,0xfffffffffffffffe);
    return uVar4;
  }
  fVar1 = param_1[2];
  if (0.0 < fVar1) {
    fVar3 = floorf((param_2 - *param_1) / fVar1 + DAT_1824c3d8c);
    param_2 = fVar3 * fVar1 + *param_1;
  }
  fVar1 = *param_1;
  if ((fVar1 < param_2) && (fVar3 = param_1[1], fVar1 < fVar3)) {
    if (param_2 <= fVar3) {
      fVar3 = param_2;
    }
    return (ulonglong)(uint)fVar3;
  }
  return (ulonglong)(uint)fVar1;
}



############ FUN_ 18119aa60 size=974 ############

/* WARNING: Instruction at (ram,0x00018119aee3) overlaps instruction at (ram,0x00018119aee0)
    */
/* WARNING: Removing unreachable block (ram,0x00018119b76d) */
/* WARNING: Removing unreachable block (ram,0x00018119b338) */
/* WARNING: Removing unreachable block (ram,0x00018119aee0) */
/* WARNING: Removing unreachable block (ram,0x00018119b558) */
/* WARNING: Removing unreachable block (ram,0x00018119ae25) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_18119aa60(longlong param_1,longlong param_2,undefined8 param_3,longlong param_4)

{
  uint *_Memory;
  undefined8 uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined1 *puVar5;
  ulonglong uVar6;
  undefined8 uVar7;
  ulonglong uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined8 *puVar12;
  ulonglong uVar13;
  int iVar14;
  undefined8 *puVar15;
  undefined8 *puVar16;
  undefined8 *puVar17;
  undefined1 *puVar18;
  undefined1 *puVar19;
  longlong lVar20;
  longlong lVar21;
  longlong in_R10;
  longlong lVar22;
  longlong in_R11;
  longlong lVar23;
  undefined8 unaff_R13;
  int *piVar24;
  uint uVar25;
  bool bVar26;
  char cVar27;
  char cVar28;
  int unaff_retaddr;
  undefined1 local_68 [32];
  undefined *local_48;
  code *pcStack_40;
  undefined8 local_38;
  
  local_38 = 0xfffffffffffffffe;
  uVar13 = (ulonglong)((uint)&stack0x00000000 & 0x76ff);
  uVar9 = (uint)&stack0x00000000 & 0x1bf;
  iVar14 = (uVar9 + 2) * (uVar9 + 1) * uVar9;
  uVar25 = 0xa209 >> (-(char)(((iVar14 >> 1) - (iVar14 >> 3)) + iVar14 * 0x55555555 >> 0x1e) & 0x1fU
                     ) ^ 0xac39;
  uVar8 = (ulonglong)uVar25;
  local_48 = &DAT_18120779c;
  uVar9 = (DAT_18120769c + 0x8d13783) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076a0) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076a4) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076a8) * 0x401;
  do {
    uVar10 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar9 = (DAT_1812076ac + (uVar9 ^ uVar9 >> 6)) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076b0) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076b4) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076b8) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076bc) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076c0) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076c4) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076c8) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076cc) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076d0) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076d4) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076d8) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076dc) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076e0) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076e4) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076e8) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076ec) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076f0) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076f4) * 0x401;
  do {
    FUN_18119c201();
    uVar10 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar9 = (DAT_1812076f8 + (uVar9 ^ uVar9 >> 6)) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_1812076fc) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_181207700) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + DAT_181207704) * 0x401;
  do {
    uVar10 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar9 = (_UNK_181207708 + (uVar9 ^ uVar9 >> 6)) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_18120770c) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207710) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207714) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207718) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_18120771c) * 0x401;
  do {
    func_0x00018119a3a4();
    uVar10 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar9 = (_UNK_181207720 + (uVar9 ^ uVar9 >> 6)) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207724) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207728) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_18120772c) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207730) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207734) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207738) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_18120773c) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207740) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207744) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207748) * 0x401;
  do {
    uVar7 = rdtsc();
    uVar10 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar10 = ((uint)uVar7 ^ (uint)((ulonglong)uVar7 >> 0x20)) * -0x166aa42f;
  if ((uVar10 >> 0x18 ^ uVar10) * -0x460112ab < 0xff18d) {
    do {
      pcStack_40 = FUN_1813f2240;
      uVar10 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar10 < 0) {
        uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar10 != 0);
    uVar6 = FUN_1813f2240(0,0x57ef);
    if (1 < uVar6) {
      FUN_18113eab0();
    }
  }
  uVar9 = (_UNK_18120774c + (uVar9 ^ uVar9 >> 6)) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207750) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207754) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207758) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_18120775c) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207760) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207764) * 0x401;
  uVar10 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207768) * 0x401;
  uVar10 = uVar10 ^ uVar10 >> 6;
  uVar9 = uVar10;
  do {
    if (-1 < (int)uVar9) {
      lVar22 = param_4 + in_R10;
      param_4 = param_4 - lVar22;
      in_R10 = -param_4;
      param_4 = lVar22 + param_4;
    }
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar9 = (_UNK_18120776c + uVar10) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207770) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207774) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207778) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_18120777c) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207780) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207784) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207788) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_18120778c) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207790) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207794) * 0x401;
  uVar9 = ((uVar9 >> 6 ^ uVar9) + _UNK_181207798) * 0x401;
  uVar9 = uVar9 >> 6 ^ uVar9;
  uVar10 = (uVar9 << 0x19 | uVar9 >> 7) + 0x5f5657a8;
  uVar9 = uVar10 >> 0x1c;
  uVar9 = uVar9 << 0x1e | (uVar9 | uVar10 * 0x10) + 0xa985db8 >> 2;
  uVar6 = (ulonglong)uVar9;
  uVar9 = uVar9 ^ 0x68d832ce;
  if (uVar9 != uVar9 >> 4) {
    uVar7 = thunk_FUN_1805a9280(0x860,uVar6,uVar13);
    return uVar7;
  }
  puVar5 = local_68;
  do {
    puVar18 = puVar5;
    *(undefined8 *)(puVar18 + -8) = unaff_R13;
    *(ulonglong *)(puVar18 + -0x10) = uVar6;
    *(ulonglong *)(puVar18 + -0x18) = uVar8;
    lVar22 = -(longlong)(int)uVar25;
    uVar8 = *(ulonglong *)(puVar18 + lVar22 + 0xe18);
    uVar6 = *(ulonglong *)(puVar18 + lVar22 + 0xe20);
    unaff_R13 = *(undefined8 *)(puVar18 + lVar22 + 0xe28);
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
    puVar5 = puVar18 + lVar22 + 0xe30;
  } while (uVar9 != 0);
  uVar7 = *(undefined8 *)(puVar18 + lVar22 + 0xe70);
  uVar1 = *(undefined8 *)(puVar18 + lVar22 + 0xe78);
  uVar2 = *(undefined8 *)(puVar18 + lVar22 + 0xe80);
  uVar3 = *(undefined8 *)(puVar18 + lVar22 + 0xe88);
  uVar4 = *(undefined8 *)(puVar18 + lVar22 + 0xe90);
  *(undefined8 *)(puVar18 + lVar22 + 0xe90) = *(undefined8 *)(puVar18 + lVar22 + 0xea8);
  *(undefined8 *)(puVar18 + lVar22 + 0xe88) = uVar4;
  *(undefined8 *)(puVar18 + lVar22 + 0xe80) = uVar3;
  *(undefined8 *)(puVar18 + lVar22 + 0xe78) = uVar2;
  *(undefined8 *)(puVar18 + lVar22 + 0xe70) = unaff_R13;
  *(undefined8 *)(puVar18 + lVar22 + 0xe68) = uVar1;
  *(undefined8 *)(puVar18 + lVar22 + 0xe60) = uVar7;
  puVar19 = puVar18 + lVar22 + 0xde0;
  *(undefined8 *)(puVar18 + lVar22 + 0xe18) = 0xfffffffffffffffe;
  *(undefined8 *)(puVar18 + lVar22 + 0xea8) = *(undefined8 *)(puVar18 + lVar22 + 0xea0);
  piVar24 = (int *)(puVar18 + lVar22 + 0xe98);
  uVar9 = (uint)piVar24;
  if (((ulonglong)piVar24 & 0x4e) == 0) {
    uVar25 = uVar9 & 0x12ff;
  }
  else {
    uVar25 = uVar9 & 0x75ff;
  }
  uVar10 = (uVar25 * uVar25 + 1) % 7;
  uVar25 = uVar9 & 0x4f;
  uVar9 = (uVar25 + 1) * (uVar25 + 1) * uVar25 * uVar25 & 0x80000003 ^
          ((uVar9 & 0xaff) * (uVar9 & 0xaff) * 0x10 + 4) % 0x13;
  uVar9 = ((int)(-uVar9 | uVar9) >> 0x1f) * -0xb065 ^ 0xba95;
  *(undefined8 *)(puVar18 + lVar22 + 0xdd8) = 0x18119b5aa;
  FUN_18049c9e0(puVar18 + lVar22 + 0xe10,param_2);
  puVar17 = *(undefined8 **)(param_1 + 0x38);
  puVar12 = (undefined8 *)puVar17[1];
  lVar20 = *(longlong *)(puVar18 + lVar22 + 0xe10);
  puVar16 = puVar17;
  if (*(char *)((longlong)puVar12 + 0x19) == '\0') {
    *(longlong *)(puVar18 + lVar22 + 0xe20) = lVar20;
    puVar15 = puVar17;
    do {
      puVar16 = puVar12;
      uVar7 = puVar16[4];
      *(undefined8 *)(puVar18 + lVar22 + 0xe28) = uVar7;
      *(undefined8 *)(puVar18 + lVar22 + 0xdd8) = 0x18119b5e1;
      iVar14 = FUN_18048cbc0(uVar7,lVar20);
      if (iVar14 < 0) {
        puVar12 = (undefined8 *)puVar16[2];
        puVar16 = puVar15;
      }
      else {
        puVar12 = (undefined8 *)*puVar16;
      }
      puVar15 = puVar16;
    } while (*(char *)((longlong)puVar12 + 0x19) == '\0');
  }
  *(undefined8 **)(puVar18 + lVar22 + 0xe30) = puVar17;
  if (puVar16 != puVar17) {
    *(undefined8 *)(puVar18 + lVar22 + 0xe38) = puVar16[4];
    *(longlong *)(puVar18 + lVar22 + 0xe40) = lVar20;
    *(undefined8 *)(puVar18 + lVar22 + 0xdd8) = 0x18119b619;
    iVar14 = FUN_18048cbc0(lVar20);
    if (-1 < iVar14) {
      *(undefined8 **)(puVar18 + lVar22 + 0xe48) = puVar16;
      puVar17 = puVar16;
      goto LAB_18119b62d;
    }
  }
  *(undefined8 **)(puVar18 + lVar22 + 0xe50) = puVar17;
LAB_18119b62d:
  _Memory = (uint *)(lVar20 + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar25 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar25 == 0) {
                    /* WARNING: Subroutine does not return */
      *(undefined8 *)(puVar18 + lVar22 + 0xdd8) = 0x18119b64f;
      free(_Memory);
    }
  }
  *(undefined8 *)(puVar18 + lVar22 + 0xeb0) = 0x2621fc0;
  lVar20 = *(longlong *)(puVar18 + lVar22 + 0xeb0);
  *(undefined8 *)(puVar18 + lVar22 + 0xeb0) = 0x4006808;
  *(undefined8 *)(puVar18 + lVar22 + 0xeb8) = 0x97861656;
  *(uint *)(puVar18 + lVar22 + 0xeb0) =
       ~(~*(uint *)(puVar18 + lVar22 + 0xeb0) + 0x9734f806) << 0x17 |
       ~(~*(uint *)(puVar18 + lVar22 + 0xeb0) + 0x9734f806) >> 9;
  *(uint *)(puVar18 + lVar22 + 0xeb8) =
       ~(~*(uint *)(puVar18 + lVar22 + 0xeb8) ^ 0x97861e56) >> 3 |
       ~(~*(uint *)(puVar18 + lVar22 + 0xeb8) ^ 0x97861e56) << 0x1d;
  *(undefined **)(puVar18 + lVar22 + 0xe00) =
       &DAT_182621fc0 + (*(longlong *)(puVar18 + lVar22 + 0xeb0) - lVar20);
  *(longlong *)(puVar18 + lVar22 + 0xeb0) =
       *(longlong *)(puVar18 + lVar22 + 0xe00) + *(longlong *)(puVar18 + lVar22 + 0xeb8);
  lVar21 = *(longlong *)(puVar18 + lVar22 + 0xeb0) - *(longlong *)(puVar18 + lVar22 + 0xeb0);
  lVar20 = *(longlong *)(puVar18 + lVar22 + 0xe00);
  uVar25 = (*(int *)(lVar20 + lVar21) + 0x62b5eb3e) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 4 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 8 + lVar21)) * 0x401;
  do {
    uVar11 = (*piVar24 + 1) * *piVar24 & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar25 = (*(int *)(lVar20 + 0xc + lVar21) + (uVar25 ^ uVar25 >> 6)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x10 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x14 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x18 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x1c + lVar21)) * 0x401;
  do {
    uVar11 = (*piVar24 + 1) * *piVar24 & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar25 = (*(int *)(lVar20 + 0x20 + lVar21) + (uVar25 ^ uVar25 >> 6)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x24 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x28 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x2c + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x30 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x34 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x38 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x3c + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x40 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x44 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x48 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x4c + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x50 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x54 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x58 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x5c + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x60 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 100 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x68 + lVar21)) * 0x401;
  do {
    uVar7 = rdtsc();
    *(uint *)(puVar18 + lVar22 + 0xea0) = (uint)uVar7 ^ (uint)((ulonglong)uVar7 >> 0x20);
    uVar11 = (*piVar24 + 1) * *piVar24 & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar11 = ((uint)(*(int *)(puVar18 + lVar22 + 0xea0) * -0x35947a15) >> 0x18 ^
           *(int *)(puVar18 + lVar22 + 0xea0) * -0x35947a15) * -0x51ca13ad;
  *(uint *)(puVar18 + lVar22 + 0xea0) = uVar11;
  if (uVar11 < 0xb6be0) {
    *(undefined8 *)(puVar18 + lVar22 + 0xe08) = 0;
    do {
      puVar12 = (undefined8 *)(puVar18 + lVar22 + 0xe08);
      *(undefined8 *)(puVar18 + lVar22 + 0xdd8) = 0x18119ba4f;
      FUN_181199c84(puVar12,puVar18 + lVar22 + 0xe08);
      *puVar12 = FUN_1813f2240;
      uVar11 = (*piVar24 + 1) * *piVar24 & 0x80000001;
      if ((int)uVar11 < 0) {
        uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar11 != 0);
    *(undefined8 *)(puVar18 + lVar22 + 0xdd8) = 0x18119ba95;
    uVar8 = (**(code **)(puVar18 + lVar22 + 0xe08))(0,0x8429);
    if (1 < uVar8) {
      *(undefined8 *)(puVar18 + lVar22 + 0xdd8) = 0x18119baa1;
      FUN_18113eab0();
    }
  }
  uVar25 = (*(int *)(lVar20 + 0x6c + lVar21) + (uVar25 ^ uVar25 >> 6)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x70 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x74 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x78 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x7c + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x80 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x84 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x88 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x8c + lVar21)) * 0x401;
  uVar8 = (ulonglong)uVar25;
  *(undefined8 *)(puVar18 + lVar22 + 0xeb0) = 0x56e6166bb6d83cb1;
  *(int *)(puVar18 + lVar22 + 0xea0) = (int)*(undefined8 *)(puVar18 + lVar22 + 0xeb0);
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x90 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x94 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x98 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0x9c + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xa0 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xa4 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xa8 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xac + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xb0 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xb4 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xb8 + lVar21)) * 0x401;
  uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xbc + lVar21)) * 0x401;
  uVar11 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xc0 + lVar21)) * 0x401;
  uVar11 = uVar11 ^ uVar11 >> 6;
  bVar26 = uVar11 == 0;
  uVar25 = uVar11;
  do {
    cVar28 = '\0';
    cVar27 = (int)uVar25 < 0;
    uVar13 = 0;
    *(undefined8 *)(puVar18 + lVar22 + 0xdd8) = 0x18119bc7c;
    FUN_18119ae31();
    if (bVar26 || cVar28 != cVar27) {
      lVar23 = in_R11 + in_R10;
code_r0x00018119bc8e:
      in_R11 = -(in_R10 - lVar23);
      in_R10 = lVar23 + (in_R10 - lVar23);
    }
    else if ((uVar13 & 0xc1) != 0) {
      puVar17 = (undefined8 *)(ulonglong)(uint)((int)puVar17 + (int)uVar8);
      lVar23 = in_R11;
      goto code_r0x00018119bc8e;
    }
    uVar25 = (*piVar24 + 1) * *piVar24 & 0x80000001;
    if ((int)uVar25 < 0) {
      uVar25 = (uVar25 - 1 | 0xfffffffe) + 1;
    }
    bVar26 = false;
    if (uVar25 == 0) {
      uVar25 = (*(int *)(lVar20 + 0xc4 + lVar21) + uVar11) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 200 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xcc + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xd0 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xd4 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xd8 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xdc + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xe0 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xe4 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xe8 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xec + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xf0 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xf4 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xf8 + lVar21)) * 0x401;
      uVar25 = ((uVar25 >> 6 ^ uVar25) + *(int *)(lVar20 + 0xfc + lVar21)) * 0x401;
      uVar25 = uVar25 >> 6 ^ uVar25 ^ 0x1527c836;
      uVar25 = (uint)(~((uVar25 >> 1 | (uint)((uVar25 & 1) != 0) << 0x1f) + 0xb07ba98e) ==
                     *(uint *)(puVar18 + lVar22 + 0xea0));
      uVar13 = (ulonglong)uVar25;
      if (uVar25 * 0x1d != 0) {
        do {
          *(longlong *)(puVar19 + -8) = lVar20;
          *(longlong *)(puVar19 + -0x10) = in_R10;
          *(ulonglong *)(puVar19 + -0x18) = uVar13;
          piVar24 = (int *)((-((longlong)piVar24 - 0x10a0e70dU) ^ 0xffffffffffffffff) + 0x10a0e70e);
          lVar22 = -(longlong)(int)uVar9;
          uVar13 = *(ulonglong *)(puVar19 + lVar22 + 0xad8);
          in_R10 = *(longlong *)(puVar19 + lVar22 + 0xae0);
          lVar20 = *(longlong *)(puVar19 + lVar22 + 0xae8);
          puVar19 = puVar19 + lVar22 + 0xaf0;
          uVar25 = (*piVar24 + 1) * *piVar24 & 0x80000001;
          if ((int)uVar25 < 0) {
            uVar25 = (uVar25 - 1 | 0xfffffffe) + 1;
          }
        } while (uVar25 != 0);
        return puVar17[5];
      }
      *(longlong *)(puVar18 + lVar22 + 0xdd8) = lVar20;
      *(ulonglong *)(puVar18 + lVar22 + 0xdd0) = (ulonglong)uVar11;
      *(ulonglong *)(puVar18 + lVar22 + 0xdc8) = (ulonglong)uVar9;
      uVar7 = thunk_FUN_1805a9280((int)(-uVar10 | uVar10) >> 0x1f & 0x3b16U ^ 0x3866,
                                  (-uVar8 ^ 0xffffffffffffffff) + 1,
                                  (longlong)piVar24 + param_2 +
                                  (param_2 - ((longlong)piVar24 + param_2)));
      return uVar7;
    }
  } while( true );
}



############ FUN_ 1804b1290 size=554 ############

undefined8 * FUN_1804b1290(int *param_1,undefined8 *param_2,float *param_3)

{
  float fVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  float fVar7;
  float fVar8;
  float fVar9;
  float fVar10;
  float fVar11;
  float fVar12;
  float fVar13;
  float fVar14;
  float local_c8;
  float local_c4;
  float local_c0;
  float local_bc;
  undefined1 local_b8 [176];
  
  local_bc = param_3[5];
  fVar6 = param_3[4];
  fVar11 = param_3[2];
  fVar10 = param_3[1];
  fVar1 = param_3[3];
  fVar14 = *param_3;
  fVar4 = (float)param_1[1];
  fVar9 = (float)(param_1[2] + *param_1);
  fVar7 = (float)*param_1;
  fVar5 = (float)(param_1[3] + param_1[1]);
  fVar8 = fVar10 * fVar5;
  fVar12 = fVar10 * fVar4 + fVar14 * fVar9 + fVar11;
  local_c0 = fVar14 * fVar9 + fVar8 + fVar11;
  fVar13 = fVar14 * fVar7 + fVar10 * fVar4 + fVar11;
  fVar5 = fVar6 * fVar5;
  fVar11 = fVar14 * fVar7 + fVar8 + fVar11;
  fVar14 = fVar1 * fVar7 + fVar6 * fVar4 + local_bc;
  fVar10 = fVar1 * fVar9 + fVar6 * fVar4 + local_bc;
  fVar6 = fVar1 * fVar7 + fVar5 + local_bc;
  local_bc = fVar1 * fVar9 + fVar5 + local_bc;
  local_c8 = local_c0;
  if (fVar12 <= fVar11) {
    if (fVar12 <= local_c0) {
      local_c8 = fVar12;
    }
  }
  else if (fVar11 <= local_c0) {
    local_c8 = fVar11;
  }
  if (fVar13 <= local_c8) {
    local_c8 = fVar13;
  }
  if (fVar11 <= fVar12) {
    if (local_c0 <= fVar12) {
      local_c0 = fVar12;
    }
  }
  else if (local_c0 <= fVar11) {
    local_c0 = fVar11;
  }
  if (local_c0 <= fVar13) {
    local_c0 = fVar13;
  }
  local_c4 = local_bc;
  if (fVar10 <= fVar6) {
    if (fVar10 <= local_bc) {
      local_c4 = fVar10;
    }
  }
  else if (fVar6 <= local_bc) {
    local_c4 = fVar6;
  }
  if (fVar14 <= local_c4) {
    local_c4 = fVar14;
  }
  if (fVar6 <= fVar10) {
    if (local_bc <= fVar10) {
      local_bc = fVar10;
    }
  }
  else if (local_bc <= fVar6) {
    local_bc = fVar6;
  }
  *param_2 = 0;
  local_c0 = local_c0 - local_c8;
  param_2[1] = 0;
  if (local_bc <= fVar14) {
    local_bc = fVar14;
  }
  local_bc = local_bc - local_c4;
  puVar3 = (undefined8 *)FUN_1804ab070(&local_c8,local_b8);
  uVar2 = puVar3[1];
  *param_2 = *puVar3;
  param_2[1] = uVar2;
  return param_2;
}



############ FUN_ 181342a30 size=215 ############

void FUN_181342a30(longlong param_1,int *param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined8 local_18;
  undefined8 uStack_10;
  
  iVar2 = *param_2;
  iVar1 = param_2[1];
  iVar3 = iVar2;
  if (iVar2 < 0) {
    iVar3 = 0;
  }
  iVar5 = iVar1;
  if (iVar1 < 0) {
    iVar5 = 0;
  }
  iVar4 = iVar2 + param_2[2];
  if (*(int *)(param_1 + 0x28) < iVar2 + param_2[2]) {
    iVar4 = *(int *)(param_1 + 0x28);
  }
  if (-1 < iVar4 - iVar3) {
    iVar2 = param_2[3] + iVar1;
    if (*(int *)(param_1 + 0x2c) < param_2[3] + iVar1) {
      iVar2 = *(int *)(param_1 + 0x2c);
    }
    if (-1 < iVar2 - iVar5) {
      local_18 = CONCAT44(iVar5,iVar3);
      uStack_10 = CONCAT44(iVar2 - iVar5,iVar4 - iVar3);
      goto LAB_181342acf;
    }
  }
  local_18 = 0;
  uStack_10 = 0;
LAB_181342acf:
  *(undefined8 *)param_2 = local_18;
  *(undefined8 *)(param_2 + 2) = uStack_10;
  if ((0 < param_2[2]) && (0 < param_2[3])) {
    FUN_181342870(param_1,&local_18,0);
  }
  return;
}



############ FUN_ 18051e4b0 size=762 ############

undefined8 * FUN_18051e4b0(undefined8 *param_1,longlong *param_2,int *param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined8 uVar2;
  double dVar3;
  longlong *plVar4;
  float *pfVar5;
  undefined8 uVar6;
  undefined8 *puVar7;
  float fVar8;
  undefined4 local_res8;
  undefined4 local_res10;
  double local_res18;
  double local_res20;
  undefined8 local_80;
  undefined4 uStack_78;
  undefined4 uStack_74;
  undefined8 local_68;
  undefined8 uStack_60;
  undefined8 local_58;
  undefined8 uStack_50;
  
  if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
    uStack_50 = *(undefined8 *)(param_3 + 2);
    local_58 = CONCAT44(param_3[1] + (int)((ulonglong)param_2[4] >> 0x20),*param_3 + (int)param_2[4]
                       );
    *(undefined8 *)param_3 = local_58;
    *(undefined8 *)(param_3 + 2) = uStack_50;
  }
  else {
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
      if (param_2[3] == 0) goto LAB_18051e75b;
      plVar4 = (longlong *)FUN_18134c2e0(param_2[3],param_2,param_3,param_4,0xfffffffffffffffe);
    }
    else {
      plVar4 = (longlong *)FUN_1812d2bd0(param_2);
    }
    if (plVar4 != (longlong *)0x0) {
      local_68 = *(undefined8 *)param_3;
      uStack_60 = *(undefined8 *)(param_3 + 2);
      fVar8 = (float)(**(code **)(*param_2 + 0x80))(param_2);
      dVar3 = DAT_1824c4520;
      if (fVar8 == DAT_1824c3ea4) {
        local_58 = *(undefined8 *)param_3;
        uStack_50 = *(undefined8 *)(param_3 + 2);
        puVar7 = &local_58;
      }
      else {
        local_res20 = (double)((float)uStack_60._4_4_ * fVar8) + DAT_1824c4520;
        local_res18 = (double)((float)(int)uStack_60 * fVar8) + DAT_1824c4520;
        local_res10 = SUB84((double)((float)local_68._4_4_ * fVar8) + DAT_1824c4520,0);
        local_68 = CONCAT44(local_res10,
                            SUB84((double)((float)(int)local_68 * fVar8) + DAT_1824c4520,0));
        uStack_60 = CONCAT44(local_res20._0_4_,SUB84(local_res18,0));
        puVar7 = &local_68;
      }
      local_58 = *puVar7;
      uStack_50 = puVar7[1];
      if ((undefined **)*plVar4 == juce::HWNDComponentPeer::vftable) {
        pfVar5 = (float *)(*(code *)juce::HWNDComponentPeer::vftable[9])
                                    (plVar4,&local_res18,
                                     CONCAT44((float)(int)((ulonglong)local_58 >> 0x20),
                                              (float)(int)local_58));
        local_res8 = SUB84((double)*pfVar5 + dVar3,0);
        local_80._0_4_ = local_res8;
        local_res10 = SUB84((double)pfVar5[1] + dVar3,0);
        local_80._4_4_ = local_res10;
        uStack_78 = (undefined4)uStack_50;
        uStack_74 = uStack_50._4_4_;
        puVar7 = &local_80;
      }
      else {
        puVar7 = (undefined8 *)(*(code *)((undefined **)*plVar4)[8])(plVar4,&local_80,&local_58);
      }
      uVar1 = *puVar7;
      uVar2 = puVar7[1];
      local_68 = uVar1;
      uStack_60 = uVar2;
      if (DAT_182673700 == 0) {
        uVar6 = FUN_1811316e0(0x130);
        DAT_182673700 = FUN_18133c6c0(uVar6);
      }
      fVar8 = *(float *)(DAT_182673700 + 0xc0);
      local_58 = uVar1;
      uStack_50 = uVar2;
      if (fVar8 != DAT_1824c3ea4) {
        local_res20 = (double)((float)uStack_60._4_4_ / fVar8) + dVar3;
        local_res18 = (double)((float)(int)uStack_60 / fVar8) + dVar3;
        local_res10 = SUB84((double)((float)local_68._4_4_ / fVar8) + dVar3,0);
        local_58 = CONCAT44(local_res10,SUB84((double)((float)(int)local_68 / fVar8) + dVar3,0));
        uStack_50 = CONCAT44(local_res20._0_4_,SUB84(local_res18,0));
      }
      *(undefined8 *)param_3 = local_58;
      *(undefined8 *)(param_3 + 2) = uStack_50;
    }
  }
LAB_18051e75b:
  if (param_2[7] != 0) {
    puVar7 = (undefined8 *)FUN_1804b1290(param_3,&local_58);
    uVar1 = puVar7[1];
    *(undefined8 *)param_3 = *puVar7;
    *(undefined8 *)(param_3 + 2) = uVar1;
  }
  uVar1 = *(undefined8 *)(param_3 + 2);
  *param_1 = *(undefined8 *)param_3;
  param_1[1] = uVar1;
  return param_1;
}



############ FUN_ 1804ab070 size=234 ############

int * FUN_1804ab070(float *param_1,int *param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  float fVar5;
  float fVar6;
  float fVar7;
  
  fVar6 = DAT_1824c461c;
  iVar1 = 0x7fffffff;
  fVar7 = param_1[1];
  if (DAT_1824c461c <= fVar7 + param_1[3]) {
    iVar2 = 0x7fffffff;
  }
  else {
    fVar5 = ceilf(fVar7 + param_1[3]);
    iVar2 = (int)fVar5;
  }
  fVar5 = *param_1;
  if (fVar5 + param_1[2] < fVar6) {
    fVar6 = ceilf(fVar5 + param_1[2]);
    iVar1 = (int)fVar6;
  }
  fVar6 = DAT_1824c4760;
  iVar3 = -0x80000000;
  if (fVar7 <= DAT_1824c4760) {
    iVar4 = -0x80000000;
  }
  else {
    fVar7 = floorf(fVar7);
    iVar4 = (int)fVar7;
  }
  if (fVar6 < fVar5) {
    fVar7 = floorf(fVar5);
    iVar3 = (int)fVar7;
  }
  *param_2 = iVar3;
  param_2[1] = iVar4;
  param_2[3] = iVar2 - iVar4;
  param_2[2] = iVar1 - iVar3;
  return param_2;
}



############ FUN_ 18051dc40 size=746 ############

float * FUN_18051dc40(float *param_1,longlong *param_2,longlong *param_3,undefined8 param_4)

{
  float fVar1;
  float fVar2;
  float fVar3;
  undefined8 uVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  float *pfVar8;
  undefined8 *puVar9;
  float fVar10;
  float local_res18;
  float fStackX_1c;
  undefined8 local_98;
  float local_90;
  float local_8c;
  float local_88;
  float fStack_84;
  float local_80;
  float local_7c;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined1 local_58 [64];
  
  fVar3 = DAT_1824c3ea4;
  local_60 = 0xfffffffffffffffe;
  local_98._4_4_ = (float)((ulonglong)param_4 >> 0x20);
  local_98._0_4_ = (float)param_4;
  for (; param_3 != (longlong *)0x0; param_3 = (longlong *)param_3[3]) {
    plVar7 = param_2;
    if (param_3 == param_2) goto LAB_18051dee2;
    while (plVar7 != (longlong *)0x0) {
      plVar7 = (longlong *)plVar7[3];
      if (plVar7 == param_3) {
        if ((longlong *)param_2[3] == param_3) {
          FUN_1805200f0(param_1,param_2,param_4);
          return param_1;
        }
        puVar9 = (undefined8 *)FUN_1805200a0(&local_res18,param_3,(longlong *)param_2[3],param_4);
        FUN_1805200f0(param_1,param_2,*puVar9);
        return param_1;
      }
    }
    if ((*(byte *)(param_3 + 0x15) & 1) == 0) {
      local_98._0_4_ = (float)(int)param_3[4] + (float)local_98;
      local_98._4_4_ = (float)(int)((ulonglong)param_3[4] >> 0x20) + local_98._4_4_;
    }
    else {
      if ((*(byte *)(param_3 + 0x15) & 1) == 0) {
        if (param_3[3] == 0) goto LAB_18051de05;
        plVar7 = (longlong *)FUN_18134c2e0();
      }
      else {
        plVar7 = (longlong *)FUN_1812d2bd0(param_3);
      }
      if (plVar7 != (longlong *)0x0) {
        local_res18 = (float)local_98;
        fStackX_1c = local_98._4_4_;
        fVar10 = (float)(**(code **)(*param_3 + 0x80))(param_3);
        if (fVar10 == fVar3) {
          local_70 = CONCAT44(fStackX_1c,local_res18);
          pfVar8 = (float *)&local_70;
        }
        else {
          local_90 = (float)local_98 * fVar10;
          local_8c = local_98._4_4_ * fVar10;
          pfVar8 = &local_90;
        }
        pfVar8 = (float *)(**(code **)(*plVar7 + 0x48))(plVar7,local_58,*(undefined8 *)pfVar8);
        fVar10 = *pfVar8;
        fVar1 = pfVar8[1];
        uVar4 = *(undefined8 *)pfVar8;
        if (DAT_182673700 == 0) {
          local_78 = FUN_1811316e0(0x130);
          DAT_182673700 = FUN_18133c6c0(local_78);
        }
        fVar2 = *(float *)(DAT_182673700 + 0xc0);
        local_88 = fVar10;
        fStack_84 = fVar1;
        if (fVar2 == fVar3) {
          local_68 = uVar4;
          pfVar8 = (float *)&local_68;
        }
        else {
          local_80 = fVar10 / fVar2;
          local_7c = fVar1 / fVar2;
          pfVar8 = &local_80;
        }
        local_98._0_4_ = (float)*(undefined8 *)pfVar8;
        local_98._4_4_ = (float)((ulonglong)*(undefined8 *)pfVar8 >> 0x20);
      }
    }
LAB_18051de05:
    pfVar8 = (float *)param_3[7];
    fVar10 = (float)local_98;
    if (pfVar8 != (float *)0x0) {
      fVar10 = local_98._4_4_ * pfVar8[1] + (float)local_98 * *pfVar8 + pfVar8[2];
      local_98._4_4_ = (float)local_98 * pfVar8[3] + local_98._4_4_ * pfVar8[4] + pfVar8[5];
    }
    local_98 = CONCAT44(local_98._4_4_,fVar10);
    param_4 = local_98;
    local_98._0_4_ = fVar10;
  }
  if (param_2 == (longlong *)0x0) {
LAB_18051dee2:
    *param_1 = (float)local_98;
    param_1[1] = local_98._4_4_;
  }
  else {
    plVar6 = (longlong *)param_2[3];
    plVar7 = param_2;
    while (plVar5 = plVar6, plVar5 != (longlong *)0x0) {
      plVar7 = plVar5;
      plVar6 = (longlong *)plVar5[3];
    }
    pfVar8 = (float *)FUN_1805200f0(&local_res18,plVar7,param_4);
    fVar3 = pfVar8[1];
    if (plVar7 == param_2) {
      *param_1 = *pfVar8;
      param_1[1] = fVar3;
    }
    else {
      FUN_1805200a0(param_1,plVar7,param_2,*(undefined8 *)pfVar8);
    }
  }
  return param_1;
}



############ FUN_ 18049d580 size=145 ############

longlong FUN_18049d580(byte *param_1)

{
  byte bVar1;
  uint uVar2;
  longlong lVar3;
  uint uVar4;
  int iVar5;
  longlong lVar6;
  
  lVar6 = 0;
  do {
    bVar1 = *param_1;
    param_1 = param_1 + 1;
    uVar4 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar2 = 0x40;
      iVar5 = 0;
      uVar4 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar2 < 9) break;
          uVar4 = uVar4 >> 1;
          iVar5 = iVar5 + 1;
          uVar2 = uVar2 >> 1;
        } while ((bVar1 & uVar2) != 0);
      }
      uVar4 = bVar1 & uVar4;
      for (; (iVar5 = iVar5 + -1, -1 < iVar5 && ((*param_1 & 0xc0) == 0x80)); param_1 = param_1 + 1)
      {
        uVar4 = *param_1 & 0x3f | uVar4 << 6;
      }
    }
    if (uVar4 == 0) {
      return lVar6;
    }
    lVar3 = 2;
    if (0xffff < uVar4) {
      lVar3 = 4;
    }
    lVar6 = lVar6 + lVar3;
  } while( true );
}



############ FUN_ 1812342b0 size=241 ############

void FUN_1812342b0(undefined8 *param_1,longlong param_2)

{
  int *piVar1;
  int iVar2;
  void *_Src;
  undefined4 *puVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  
  _Src = (void *)*param_1;
  uVar4 = param_2 + 1;
  if ((*(uint *)((longlong)_Src + -0x10) & 0x30000000) != 0) {
    puVar3 = (undefined4 *)thunk_FUN_1811316e0();
    LOCK();
    *puVar3 = 0;
    UNLOCK();
    *(ulonglong *)(puVar3 + 2) = param_2 + 4U & 0xfffffffffffffffc;
    *(undefined1 *)(puVar3 + 4) = 0;
    *param_1 = puVar3 + 4;
    return;
  }
  if ((uVar4 <= *(ulonglong *)((longlong)_Src + -8)) && (*(int *)((longlong)_Src + -0x10) < 1)) {
    *param_1 = _Src;
    return;
  }
  uVar5 = *(ulonglong *)((longlong)_Src + -8);
  if (*(ulonglong *)((longlong)_Src + -8) < uVar4) {
    uVar5 = uVar4;
  }
  puVar3 = (undefined4 *)thunk_FUN_1811316e0();
  LOCK();
  *puVar3 = 0;
  UNLOCK();
  *(ulonglong *)(puVar3 + 2) = uVar5 + 3 & 0xfffffffffffffffc;
  memcpy(puVar3 + 4,_Src,*(size_t *)((longlong)_Src + -8));
  if ((*(uint *)((longlong)_Src + -0x10) & 0x30000000) == 0) {
    LOCK();
    piVar1 = (int *)((longlong)_Src + -0x10);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      free((void *)((longlong)_Src + -0x10));
    }
  }
  *param_1 = puVar3 + 4;
  return;
}



############ FUN_ 1812a6720 size=337 ############

undefined8 FUN_1812a6720(undefined8 *param_1)

{
  int *piVar1;
  int iVar2;
  longlong lVar3;
  void *pvVar4;
  int iVar5;
  uint uVar6;
  
  lVar3 = DAT_182673ad8;
  if (((DAT_1826736d0 != 0) && (*(int *)(DAT_1826736d0 + 8) == 0)) && (DAT_182673ad8 != 0)) {
    EnterCriticalSection((LPCRITICAL_SECTION)(DAT_182673ad8 + 8));
    iVar2 = *(int *)(lVar3 + 0x44);
    iVar5 = *(int *)(lVar3 + 0x44) + 1;
    if ((int)*(uint *)(lVar3 + 0x40) < iVar5) {
      uVar6 = *(int *)(lVar3 + 0x44) + 9 + iVar5 / 2 & 0xfffffff8;
      if (*(uint *)(lVar3 + 0x40) != uVar6) {
        pvVar4 = *(void **)(lVar3 + 0x38);
        if ((int)uVar6 < 1) {
                    /* WARNING: Subroutine does not return */
          free(pvVar4);
        }
        if (pvVar4 == (void *)0x0) {
          pvVar4 = malloc((longlong)(int)uVar6 * 8);
          *(void **)(lVar3 + 0x38) = pvVar4;
        }
        else {
          pvVar4 = realloc(pvVar4,(longlong)(int)uVar6 * 8);
          *(void **)(lVar3 + 0x38) = pvVar4;
        }
      }
      *(uint *)(lVar3 + 0x40) = uVar6;
    }
    iVar5 = *(int *)(lVar3 + 0x44);
    *(int *)(lVar3 + 0x44) = iVar5 + 1;
    *(undefined8 **)(*(longlong *)(lVar3 + 0x38) + (longlong)iVar5 * 8) = param_1;
    if (param_1 != (undefined8 *)0x0) {
      LOCK();
      *(int *)(param_1 + 1) = *(int *)(param_1 + 1) + 1;
      UNLOCK();
    }
    LeaveCriticalSection((LPCRITICAL_SECTION)(lVar3 + 8));
    if (iVar2 == 0) {
      PostMessageW(DAT_1826736b0,0x47b,0,0);
    }
    return 1;
  }
  if (param_1 != (undefined8 *)0x0) {
    LOCK();
    *(int *)(param_1 + 1) = *(int *)(param_1 + 1) + 1;
    UNLOCK();
    LOCK();
    piVar1 = (int *)(param_1 + 1);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 1) {
      (**(code **)*param_1)();
    }
  }
  return 0;
}



############ FUN_ 18133f2f0 size=153 ############

void FUN_18133f2f0(longlong *param_1,undefined4 param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  int iVar2;
  undefined8 *puVar3;
  longlong lVar4;
  undefined8 *local_res8;
  
  FUN_1804de690(&local_res8,param_1,param_3,param_4,0xfffffffffffffffe);
  (**(code **)(*param_1 + 0xf8))(param_1,param_2);
  puVar3 = local_res8;
  if (local_res8 == (undefined8 *)0x0) {
    lVar4 = 0;
  }
  else {
    lVar4 = local_res8[2];
  }
  if (lVar4 != 0) {
    FUN_18133f200(param_1,param_2,&local_res8);
  }
  if (puVar3 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar3 + 1);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 1) {
      (**(code **)*local_res8)(local_res8,1);
    }
  }
  return;
}



############ FUN_ 181345240 size=97 ############

/* WARNING: Removing unreachable block (ram,0x000181345284) */

bool FUN_181345240(longlong param_1)

{
  byte bVar1;
  longlong lVar2;
  char cVar3;
  longlong *plVar4;
  
  bVar1 = *(byte *)(param_1 + 0xa8);
  while( true ) {
    if ((bVar1 & 2) == 0) {
      return false;
    }
    lVar2 = *(longlong *)(param_1 + 0x18);
    if (lVar2 == 0) break;
    bVar1 = *(byte *)(lVar2 + 0xa8);
    param_1 = lVar2;
  }
  if ((*(byte *)(param_1 + 0xa8) & 1) == 0) {
    return false;
  }
  plVar4 = (longlong *)FUN_1812d2bd0();
  if (plVar4 == (longlong *)0x0) {
    return false;
  }
  cVar3 = (**(code **)(*plVar4 + 0x68))(plVar4);
  return cVar3 == '\0';
}



############ FUN_ 18133eaa0 size=48 ############

ulonglong FUN_18133eaa0(longlong param_1)

{
  ulonglong in_RAX;
  
  if ((*(byte *)(param_1 + 0xa9) & 0x10) == 0) {
    if (*(longlong *)(param_1 + 0x18) != 0) {
      in_RAX = FUN_18133eaa0();
      if ((char)in_RAX == '\0') goto LAB_18133eac9;
    }
    return 1;
  }
LAB_18133eac9:
  return in_RAX & 0xffffffffffffff00;
}



############ FUN_ 18133ef00 size=457 ############

void FUN_18133ef00(longlong *param_1,undefined4 param_2)

{
  int *piVar1;
  int iVar2;
  undefined8 *puVar3;
  char cVar4;
  longlong *plVar5;
  longlong lVar6;
  undefined8 uVar7;
  undefined8 *puVar8;
  longlong lVar9;
  bool bVar10;
  undefined8 *local_res18;
  undefined8 *local_res20;
  
  if (DAT_182673708 != param_1) {
    if ((*(byte *)(param_1 + 0x15) & 1) == 0) {
      if (param_1[3] == 0) {
        return;
      }
      plVar5 = (longlong *)FUN_18134c2e0();
    }
    else {
      plVar5 = (longlong *)FUN_1812d2bd0();
    }
    if (plVar5 != (longlong *)0x0) {
      FUN_1804de690(&local_res18,param_1);
      (**(code **)(*plVar5 + 200))(plVar5);
      cVar4 = (**(code **)(*plVar5 + 0xc0))(plVar5);
      puVar8 = local_res18;
      if ((cVar4 != '\0') && (DAT_182673708 != param_1)) {
        FUN_1804de690(&local_res20);
        DAT_182673708 = param_1;
        lVar6 = FUN_18134b820();
        piVar1 = (int *)(*(longlong *)(lVar6 + 0x28) + 0x18);
        LOCK();
        bVar10 = *piVar1 == 0;
        if (bVar10) {
          *piVar1 = 1;
        }
        UNLOCK();
        lVar9 = 0;
        if ((bVar10) && (cVar4 = FUN_1812a6720(*(undefined8 *)(lVar6 + 0x28)), cVar4 == '\0')) {
          LOCK();
          *(undefined4 *)(*(longlong *)(lVar6 + 0x28) + 0x18) = 0;
          UNLOCK();
        }
        puVar3 = local_res20;
        if (local_res20 == (undefined8 *)0x0) {
          lVar6 = 0;
        }
        else {
          lVar6 = local_res20[2];
        }
        if (lVar6 != 0) {
          if (local_res20 == (undefined8 *)0x0) {
            uVar7 = 0;
          }
          else {
            uVar7 = local_res20[2];
          }
          FUN_18133f2f0(uVar7,param_2);
        }
        puVar8 = local_res18;
        if (DAT_182673708 == param_1) {
          (**(code **)(*param_1 + 0xf0))(param_1,param_2);
          if (puVar8 != (undefined8 *)0x0) {
            lVar9 = puVar8[2];
          }
          if (lVar9 != 0) {
            FUN_18133f200(param_1,param_2,&local_res18);
          }
        }
        if (puVar3 != (undefined8 *)0x0) {
          LOCK();
          piVar1 = (int *)(puVar3 + 1);
          iVar2 = *piVar1;
          *piVar1 = *piVar1 + -1;
          UNLOCK();
          puVar8 = local_res18;
          if (iVar2 == 1) {
            (**(code **)*local_res20)(local_res20,1);
            puVar8 = local_res18;
          }
        }
      }
      if (puVar8 != (undefined8 *)0x0) {
        LOCK();
        piVar1 = (int *)(puVar8 + 1);
        iVar2 = *piVar1;
        *piVar1 = *piVar1 + -1;
        UNLOCK();
        if (iVar2 == 1) {
          (**(code **)*local_res18)(local_res18,1);
        }
      }
    }
  }
  return;
}



############ FUN_ 181338d00 size=425 ############

void FUN_181338d00(longlong param_1,longlong *param_2)

{
  int iVar1;
  longlong lVar2;
  char cVar3;
  int iVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  uint uVar8;
  longlong *plVar9;
  longlong *plVar10;
  longlong *plVar11;
  longlong *_Memory;
  longlong *local_40;
  uint local_38;
  uint local_34;
  
  plVar6 = (longlong *)0x0;
  local_40 = (longlong *)0x0;
  local_38 = 0;
  iVar4 = 0;
  local_34 = 0;
  plVar7 = *(longlong **)(param_1 + 0x40);
  plVar10 = (longlong *)
            ((ulonglong)((longlong)(plVar7 + *(int *)(param_1 + 0x4c)) + (7 - (longlong)plVar7)) >>
            3);
  if (plVar7 + *(int *)(param_1 + 0x4c) < plVar7) {
    plVar10 = plVar6;
  }
  plVar5 = plVar6;
  plVar9 = plVar6;
  plVar11 = plVar6;
  _Memory = plVar6;
  if (plVar10 != (longlong *)0x0) {
    do {
      uVar8 = (uint)plVar9;
      lVar2 = *plVar7;
      if (((*(byte *)(lVar2 + 0xa8) >> 1 & 1) != 0) && ((*(byte *)(lVar2 + 0xa9) & 0x10) == 0)) {
        if (*(longlong *)(lVar2 + 0x18) != 0) {
          cVar3 = FUN_18133eaa0();
          uVar8 = (uint)plVar9;
          if (cVar3 == '\0') goto LAB_181338dcd;
        }
        iVar4 = uVar8 + 1;
        if ((int)plVar5 < iVar4) {
          if (iVar4 < 0) {
            iVar4 = uVar8 + 2;
          }
          FUN_18047cb30(&local_40,uVar8 + 9 + (iVar4 >> 1) & 0xfffffff8);
          plVar5 = (longlong *)(ulonglong)local_38;
          _Memory = local_40;
          uVar8 = local_34;
        }
        local_34 = uVar8 + 1;
        plVar9 = (longlong *)(ulonglong)local_34;
        _Memory[(int)uVar8] = lVar2;
      }
LAB_181338dcd:
      iVar4 = (int)plVar9;
      plVar7 = plVar7 + 1;
      plVar11 = (longlong *)((longlong)plVar11 + 1);
    } while (plVar11 != plVar10);
  }
  plVar7 = _Memory + iVar4;
  FUN_18051eec0(_Memory,plVar7);
  plVar10 = (longlong *)((ulonglong)((longlong)plVar7 + (7 - (longlong)_Memory)) >> 3);
  if (plVar7 < _Memory) {
    plVar10 = plVar6;
  }
  plVar7 = _Memory;
  if (plVar10 != (longlong *)0x0) {
    do {
      lVar2 = *plVar7;
      if (((*(byte *)(lVar2 + 0xa8) & 0x20) != 0) && ((*(byte *)(lVar2 + 0xa9) & 0x10) == 0)) {
        iVar1 = *(int *)((longlong)param_2 + 0xc);
        iVar4 = iVar1 + 1;
        if ((int)param_2[1] < iVar4) {
          if (iVar4 < 0) {
            iVar4 = iVar1 + 2;
          }
          FUN_18047cb30(param_2,iVar1 + 9 + (iVar4 >> 1) & 0xfffffff8);
        }
        iVar4 = *(int *)((longlong)param_2 + 0xc);
        *(int *)((longlong)param_2 + 0xc) = iVar4 + 1;
        *(longlong *)(*param_2 + (longlong)iVar4 * 8) = lVar2;
      }
      if (((*(byte *)(lVar2 + 0xa8) >> 6 & 1) == 0) && (*(int *)(lVar2 + 0x4c) != 0)) {
        FUN_181338d00(lVar2,param_2);
      }
      plVar6 = (longlong *)((longlong)plVar6 + 1);
      plVar7 = plVar7 + 1;
    } while (plVar6 != plVar10);
  }
                    /* WARNING: Could not recover jumptable at 0x000181338ea2. Too many branches */
                    /* WARNING: Subroutine does not return */
                    /* WARNING: Treating indirect jump as call */
  free(_Memory);
  return;
}



############ FUN_ 1813240c0 size=127 ############

undefined8 * FUN_1813240c0(undefined8 *param_1)

{
  *param_1 = juce::ChangeBroadcaster::vftable;
  FUN_1812a59f0();
  param_1[1] = juce::ChangeBroadcaster::ChangeBroadcasterCallback::vftable;
  param_1[4] = 0;
  param_1[5] = 0;
  *(undefined1 *)(param_1 + 6) = 0;
  param_1[3] = param_1;
  param_1[8] = 0xffffffffffffffff;
  *(undefined4 *)(param_1 + 9) = 0;
  *param_1 = juce::ComponentAnimator::vftable;
  param_1[7] = juce::ComponentAnimator::vftable;
  param_1[10] = 0;
  param_1[0xb] = 0;
  *(undefined4 *)(param_1 + 0xc) = 0;
  return param_1;
}



############ FUN_ 1812c53e0 size=1133 ############

void FUN_1812c53e0(longlong *param_1,float param_2)

{
  int *piVar1;
  double dVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  double dVar8;
  double dVar9;
  double dVar10;
  char cVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  undefined8 *puVar15;
  longlong lVar16;
  HDC hdc;
  int iVar17;
  uint uVar18;
  int iVar19;
  int *piVar20;
  int iVar21;
  int iVar22;
  double dVar23;
  double dVar24;
  undefined1 auStack_188 [32];
  int *local_168;
  undefined8 local_160;
  undefined8 local_158;
  undefined8 uStack_150;
  longlong local_148;
  int local_140;
  int iStack_13c;
  int local_138;
  int iStack_134;
  int *local_130;
  undefined4 local_128;
  int iStack_124;
  int iStack_120;
  int iStack_11c;
  int iStack_118;
  int iStack_114;
  int iStack_110;
  int iStack_10c;
  int iStack_108;
  undefined4 local_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  double local_f8;
  double dStack_f0;
  undefined8 local_e8;
  int local_e0;
  int local_dc;
  int local_d8;
  int local_d4;
  int local_d0;
  int iStack_cc;
  int iStack_c8;
  int iStack_c4;
  undefined4 uStack_c0;
  undefined4 uStack_bc;
  double dStack_b8;
  ulonglong local_b0;
  
  local_e8 = 0xfffffffffffffffe;
  local_b0 = DAT_182615970 ^ (ulonglong)auStack_188;
  FUN_1812c75b0();
  local_148 = 0;
  if (((DAT_182678ee8 != (code *)0x0) && (DAT_182678ec8 != (code *)0x0)) &&
     (DAT_182678f18 != (code *)0x0)) {
    (*DAT_182678f18)();
    iVar12 = (*DAT_182678ec8)();
    if (iVar12 != 2) {
      local_148 = (*DAT_182678ee8)();
    }
  }
  local_168 = (int *)0x0;
  local_160._0_4_ = 0;
  local_160._4_4_ = 0;
  EnumDisplayMonitors((HDC)0x0,(LPCRECT)0x0,FUN_1812c58b0,(LPARAM)&local_168);
  dVar23 = (double)FUN_1812c73f0();
  if (local_160._4_4_ == 0) {
    GetDesktopWindow();
    puVar15 = (undefined8 *)FUN_1812c6d70(&local_e0);
    local_d0 = CONCAT31(local_d0._1_3_,1);
    iStack_cc = (int)*puVar15;
    iStack_c8 = (int)((ulonglong)*puVar15 >> 0x20);
    iStack_c4 = (int)puVar15[1];
    uStack_c0 = (undefined4)((ulonglong)puVar15[1] >> 0x20);
    dStack_b8 = dVar23;
    uVar18 = (uint)local_160;
    if (((int)(uint)local_160 < (int)(local_160._4_4_ + 1)) &&
       (uVar18 = local_160._4_4_ + 9 + (int)(local_160._4_4_ + 1) / 2 & 0xfffffff8,
       (uint)local_160 != uVar18)) {
      if ((int)uVar18 < 1) {
                    /* WARNING: Subroutine does not return */
        free(local_168);
      }
      if (local_168 == (int *)0x0) {
        local_168 = malloc((longlong)(int)uVar18 << 5);
      }
      else {
        local_168 = realloc(local_168,(longlong)(int)uVar18 << 5);
      }
    }
    local_160._0_4_ = uVar18;
    lVar16 = (longlong)(int)local_160._4_4_;
    local_160._4_4_ = local_160._4_4_ + 1;
    piVar20 = local_168 + lVar16 * 8;
    *(ulonglong *)piVar20 = CONCAT44(iStack_cc,local_d0);
    *(ulonglong *)(piVar20 + 2) = CONCAT44(iStack_c4,iStack_c8);
    *(ulonglong *)(piVar20 + 4) = CONCAT44(uStack_bc,uStack_c0);
    *(double *)(piVar20 + 6) = dStack_b8;
  }
  uVar18 = 1;
  if (1 < (int)local_160._4_4_) {
    lVar16 = 0x20;
    do {
      if (((*(char *)((longlong)local_168 + lVar16) != '\0') && (uVar18 < local_160._4_4_)) &&
         (local_160._4_4_ != 0)) {
        uVar4 = *(undefined8 *)((longlong)local_168 + lVar16);
        uVar5 = ((undefined8 *)((longlong)local_168 + lVar16))[1];
        puVar15 = (undefined8 *)((longlong)local_168 + lVar16 + 0x10);
        uVar6 = *puVar15;
        uVar7 = puVar15[1];
        uVar3 = *(undefined8 *)(local_168 + 2);
        *(undefined8 *)((longlong)local_168 + lVar16) = *(undefined8 *)local_168;
        ((undefined8 *)((longlong)local_168 + lVar16))[1] = uVar3;
        uVar3 = *(undefined8 *)(local_168 + 6);
        puVar15 = (undefined8 *)((longlong)local_168 + lVar16 + 0x10);
        *puVar15 = *(undefined8 *)(local_168 + 4);
        puVar15[1] = uVar3;
        *(undefined8 *)local_168 = uVar4;
        *(undefined8 *)(local_168 + 2) = uVar5;
        *(undefined8 *)(local_168 + 4) = uVar6;
        *(undefined8 *)(local_168 + 6) = uVar7;
      }
      uVar18 = uVar18 + 1;
      lVar16 = lVar16 + 0x20;
    } while ((int)uVar18 < (int)local_160._4_4_);
  }
  dVar10 = DAT_1824c42e8;
  dVar9 = DAT_1824c4140;
  dVar8 = DAT_1824c4050;
  local_130 = local_168 + (longlong)(int)local_160._4_4_ * 8;
  if (local_168 != local_130) {
    piVar20 = local_168 + 4;
    do {
      local_104 = 0;
      uStack_100 = 0;
      iVar12 = piVar20[-4];
      local_128 = CONCAT31(local_128._1_3_,(char)iVar12);
      dVar2 = *(double *)(piVar20 + 2);
      if (dVar2 == 0.0) {
        local_f8 = (double)param_2;
        dStack_f0 = dVar23;
      }
      else {
        dVar24 = dVar9;
        dStack_f0 = dVar2;
        if ((DAT_1826736d8 != 0) && (cVar11 = FUN_1812c7510(), cVar11 == '\0')) {
          FUN_1812c75b0();
          hdc = GetDC((HWND)0x0);
          iVar13 = GetDeviceCaps(hdc,0x5a);
          iVar14 = GetDeviceCaps(hdc,0x58);
          ReleaseDC((HWND)0x0,hdc);
          dVar24 = ((double)(iVar13 + iVar14) * dVar8) / dVar10;
        }
        local_f8 = ((double)param_2 / dVar24) * (dVar2 / dVar10);
      }
      iVar13 = piVar20[-2];
      iVar14 = piVar20[-3];
      iVar22 = piVar20[-1] - iVar14;
      iVar19 = *piVar20 - iVar13;
      iStack_124 = iVar14;
      iStack_120 = iVar13;
      iStack_11c = iVar22;
      iStack_118 = iVar19;
      iStack_114 = iVar14;
      iStack_110 = iVar13;
      iStack_10c = iVar22;
      iStack_108 = iVar19;
      local_d0 = iVar14;
      iStack_cc = iVar13;
      iStack_c8 = iVar22;
      iStack_c4 = iVar19;
      if ((char)iVar12 != '\0') {
        SystemParametersInfoW(0x30,0,&local_e0,0);
        local_140 = local_e0;
        iStack_13c = local_dc;
        local_138 = local_d8 - local_e0;
        iStack_134 = local_d4 - local_dc;
        iVar12 = iVar14;
        if (iVar14 < local_e0) {
          iVar12 = local_e0;
        }
        iVar21 = iVar13;
        if (iVar13 < local_dc) {
          iVar21 = local_dc;
        }
        iVar17 = iVar22 + iVar14;
        if (local_138 + local_e0 < iVar22 + iVar14) {
          iVar17 = local_138 + local_e0;
        }
        if (iVar17 - iVar12 < 0) {
LAB_1812c57bf:
          local_158 = 0;
          uStack_150 = 0;
        }
        else {
          iVar14 = iVar19 + iVar13;
          if (iStack_134 + local_dc < iVar19 + iVar13) {
            iVar14 = iStack_134 + local_dc;
          }
          if (iVar14 - iVar21 < 0) goto LAB_1812c57bf;
          local_158 = CONCAT44(iVar21,iVar12);
          uStack_150 = CONCAT44(iVar14 - iVar21,iVar17 - iVar12);
        }
        iStack_114 = (int)local_158;
        iStack_110 = (int)((ulonglong)local_158 >> 0x20);
        iStack_10c = (int)uStack_150;
        iStack_108 = (int)((ulonglong)uStack_150 >> 0x20);
      }
      FUN_18051d660(param_1);
      iVar12 = *(int *)((longlong)param_1 + 0xc);
      *(int *)((longlong)param_1 + 0xc) = iVar12 + 1;
      puVar15 = (undefined8 *)((longlong)iVar12 * 0x40 + *param_1);
      *puVar15 = CONCAT44(iStack_124,local_128);
      puVar15[1] = CONCAT44(iStack_11c,iStack_120);
      puVar15[2] = CONCAT44(iStack_114,iStack_118);
      puVar15[3] = CONCAT44(iStack_10c,iStack_110);
      puVar15[4] = CONCAT44(local_104,iStack_108);
      puVar15[5] = CONCAT44(uStack_fc,uStack_100);
      puVar15[6] = local_f8;
      puVar15[7] = dStack_f0;
      piVar1 = piVar20 + 4;
      piVar20 = piVar20 + 8;
    } while (piVar1 != local_130);
  }
  FUN_18133c890(param_1);
  if (local_148 != 0) {
    (*DAT_182678ee8)(local_148);
  }
  local_160 = (ulonglong)(uint)local_160;
                    /* WARNING: Subroutine does not return */
  free(local_168);
}



############ FUN_ 1804e6f50 size=534 ############

longlong FUN_1804e6f50(longlong param_1,undefined4 param_2,undefined4 param_3)

{
  void *_Memory;
  undefined8 *puVar1;
  void *pvVar2;
  int iVar3;
  ulonglong uVar4;
  uint uVar5;
  ulonglong uVar6;
  
  puVar1 = (undefined8 *)FUN_1811316e0(0x100);
  FUN_1812a59f0(puVar1);
  *puVar1 = juce::MouseInputSourceInternal::vftable;
  *(undefined4 *)(puVar1 + 2) = param_2;
  *(undefined4 *)((longlong)puVar1 + 0x14) = param_3;
  uVar4 = 0;
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  *(undefined2 *)(puVar1 + 8) = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined4 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  *(undefined1 *)(puVar1 + 0x11) = 0;
  puVar1[0x12] = 0;
  puVar1[0x13] = 0;
  puVar1[0x14] = 0;
  *(undefined1 *)(puVar1 + 0x15) = 0;
  puVar1[0x16] = 0;
  puVar1[0x17] = 0;
  puVar1[0x18] = 0;
  *(undefined1 *)(puVar1 + 0x19) = 0;
  puVar1[0x1a] = 0;
  puVar1[0x1b] = 0;
  puVar1[0x1c] = 0;
  *(undefined1 *)(puVar1 + 0x1d) = 0;
  puVar1[0x1e] = 0;
  *(undefined1 *)(puVar1 + 0x1f) = 0;
  iVar3 = *(int *)(param_1 + 0x24) + 1;
  if ((int)*(uint *)(param_1 + 0x20) < iVar3) {
    uVar5 = *(int *)(param_1 + 0x24) + 9 + iVar3 / 2 & 0xfffffff8;
    if (*(uint *)(param_1 + 0x20) != uVar5) {
      pvVar2 = *(void **)(param_1 + 0x18);
      if ((int)uVar5 < 1) {
                    /* WARNING: Subroutine does not return */
        free(pvVar2);
      }
      if (pvVar2 == (void *)0x0) {
        pvVar2 = malloc((longlong)(int)uVar5 * 8);
        *(void **)(param_1 + 0x18) = pvVar2;
      }
      else {
        pvVar2 = realloc(pvVar2,(longlong)(int)uVar5 * 8);
        *(void **)(param_1 + 0x18) = pvVar2;
      }
    }
    *(uint *)(param_1 + 0x20) = uVar5;
  }
  iVar3 = *(int *)(param_1 + 0x24);
  *(int *)(param_1 + 0x24) = iVar3 + 1;
  *(undefined8 **)(*(longlong *)(param_1 + 0x18) + (longlong)iVar3 * 8) = puVar1;
  iVar3 = *(int *)(param_1 + 0x34) + 1;
  if ((int)*(uint *)(param_1 + 0x30) < iVar3) {
    uVar5 = *(int *)(param_1 + 0x34) + 9 + iVar3 / 2 & 0xfffffff8;
    if (*(uint *)(param_1 + 0x30) != uVar5) {
      if ((int)uVar5 < 1) {
                    /* WARNING: Subroutine does not return */
        free(*(void **)(param_1 + 0x28));
      }
      pvVar2 = malloc((longlong)(int)uVar5 << 3);
      uVar6 = uVar4;
      if (0 < *(int *)(param_1 + 0x34)) {
        do {
          *(undefined8 *)(uVar6 + (longlong)pvVar2) =
               *(undefined8 *)(uVar6 + *(longlong *)(param_1 + 0x28));
          uVar5 = (int)uVar4 + 1;
          uVar4 = (ulonglong)uVar5;
          uVar6 = uVar6 + 8;
        } while ((int)uVar5 < *(int *)(param_1 + 0x34));
      }
      _Memory = *(void **)(param_1 + 0x28);
      *(void **)(param_1 + 0x28) = pvVar2;
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
    *(uint *)(param_1 + 0x30) = uVar5;
  }
  iVar3 = *(int *)(param_1 + 0x34);
  *(int *)(param_1 + 0x34) = iVar3 + 1;
  *(undefined8 **)(*(longlong *)(param_1 + 0x28) + (longlong)iVar3 * 8) = puVar1;
  return *(longlong *)(param_1 + 0x28) + (longlong)(*(int *)(param_1 + 0x34) + -1) * 8;
}



############ FUN_ 1812c7510 size=147 ############

undefined1
FUN_1812c7510(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  bool bVar1;
  int local_res8 [8];
  undefined8 uVar2;
  
  uVar2 = 0xfffffffffffffffe;
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267b0f8) {
    _Init_thread_header(&DAT_18267b0f8);
    if (DAT_18267b0f8 == -1) {
      FUN_1812c75b0();
      bVar1 = false;
      if (DAT_182678ed8 != (code *)0x0) {
        (*DAT_182678ed8)(0,local_res8,param_3,param_4,uVar2);
        bVar1 = local_res8[0] == 2;
      }
      DAT_18267b0ac = bVar1;
      _Init_thread_footer(&DAT_18267b0f8);
      return DAT_18267b0ac;
    }
  }
  return DAT_18267b0ac;
}



############ FUN_ 1812c73f0 size=109 ############

double FUN_1812c73f0(void)

{
  int iVar1;
  int iVar2;
  HDC hdc;
  double dVar3;
  
  FUN_1812c75b0();
  hdc = GetDC((HWND)0x0);
  iVar1 = GetDeviceCaps(hdc,0x5a);
  iVar2 = GetDeviceCaps(hdc,0x58);
  dVar3 = (double)(iVar1 + iVar2) * DAT_1824c4050;
  ReleaseDC((HWND)0x0,hdc);
  return dVar3;
}



############ FUN_ 181344840 size=406 ############

void FUN_181344840(longlong *param_1,char param_2,ulonglong param_3,undefined8 param_4)

{
  int *piVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  int iVar5;
  undefined8 *local_res20;
  
  FUN_1804de690(&local_res20,param_1,param_3,param_4,0xfffffffffffffffe);
  puVar3 = local_res20;
  if (param_2 != '\0') {
    (**(code **)(*param_1 + 0x110))(param_1);
    if (puVar3 == (undefined8 *)0x0) {
      lVar4 = 0;
    }
    else {
      lVar4 = puVar3[2];
    }
    if (lVar4 == 0) goto LAB_18134499a;
  }
  if ((char)param_3 != '\0') {
    (**(code **)(*param_1 + 0x108))(param_1);
    if (puVar3 == (undefined8 *)0x0) {
      lVar4 = 0;
    }
    else {
      lVar4 = puVar3[2];
    }
    if (lVar4 == 0) goto LAB_18134499a;
    iVar5 = *(int *)((longlong)param_1 + 0x4c);
    while (iVar5 = iVar5 + -1, -1 < iVar5) {
      (**(code **)(**(longlong **)(param_1[8] + (longlong)iVar5 * 8) + 0x120))();
      if (puVar3 == (undefined8 *)0x0) {
        lVar4 = 0;
      }
      else {
        lVar4 = puVar3[2];
      }
      if (lVar4 == 0) goto LAB_18134499a;
      if (*(int *)((longlong)param_1 + 0x4c) < iVar5) {
        iVar5 = *(int *)((longlong)param_1 + 0x4c);
      }
    }
  }
  plVar2 = (longlong *)param_1[3];
  if (plVar2 != (longlong *)0x0) {
    (**(code **)(*plVar2 + 0x118))(plVar2,param_1);
  }
  if (puVar3 == (undefined8 *)0x0) {
    lVar4 = 0;
  }
  else {
    lVar4 = puVar3[2];
  }
  if (lVar4 != 0) {
    iVar5 = *(int *)((longlong)param_1 + 0x8c);
    while( true ) {
      if (puVar3 == (undefined8 *)0x0) {
        lVar4 = 0;
      }
      else {
        lVar4 = puVar3[2];
      }
      if ((lVar4 == 0) || (iVar5 < 1)) break;
      iVar5 = iVar5 + -1;
      if ((*(int *)((longlong)param_1 + 0x8c) <= iVar5) &&
         (iVar5 = *(int *)((longlong)param_1 + 0x8c) + -1, iVar5 < 0)) break;
      plVar2 = *(longlong **)(param_1[0x10] + (longlong)iVar5 * 8);
      (**(code **)(*plVar2 + 8))(plVar2,param_1,param_2,param_3 & 0xff);
    }
  }
LAB_18134499a:
  if (puVar3 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar3 + 1);
    iVar5 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar5 == 1) {
      (**(code **)*local_res20)(local_res20,1);
    }
  }
  return;
}



############ FUN_ 18049b4a0 size=101 ############

void FUN_18049b4a0(longlong *param_1,int param_2)

{
  void *_Dst;
  int iVar1;
  int iVar2;
  
  _Dst = (void *)(*param_1 + (longlong)param_2 * 8);
  memmove(_Dst,(void *)((longlong)_Dst + 8),
          (longlong)((*(int *)((longlong)param_1 + 0xc) - param_2) + -1) << 3);
  *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  iVar2 = 0;
  if (0 < iVar1 * 2) {
    iVar2 = iVar1 * 2;
  }
  if (iVar2 < (int)param_1[1]) {
    if (iVar1 < 8) {
      iVar1 = 8;
    }
    if (iVar1 < (int)param_1[1]) {
      FUN_18047cb30(param_1);
      return;
    }
  }
  return;
}



############ FUN_ 1813437a0 size=240 ############

void FUN_1813437a0(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  int iVar5;
  bool bVar6;
  undefined8 *local_res8;
  
  if (*(int *)((longlong)param_1 + 0x8c) == 0) {
    (**(code **)(*param_1 + 0x90))();
  }
  else {
    FUN_1804de690(&local_res8,param_1,param_3,param_4,0xfffffffffffffffe);
    (**(code **)(*param_1 + 0x90))(param_1);
    puVar3 = local_res8;
    bVar6 = local_res8 == (undefined8 *)0x0;
    if (bVar6) {
      lVar4 = 0;
    }
    else {
      lVar4 = local_res8[2];
    }
    if (lVar4 != 0) {
      iVar5 = *(int *)((longlong)param_1 + 0x8c);
      while( true ) {
        if (bVar6) {
          lVar4 = 0;
        }
        else {
          lVar4 = puVar3[2];
        }
        if ((lVar4 == 0) || (iVar5 < 1)) break;
        iVar5 = iVar5 + -1;
        if ((*(int *)((longlong)param_1 + 0x8c) <= iVar5) &&
           (iVar5 = *(int *)((longlong)param_1 + 0x8c) + -1, iVar5 < 0)) break;
        plVar2 = *(longlong **)(param_1[0x10] + (longlong)iVar5 * 8);
        (**(code **)(*plVar2 + 0x20))(plVar2,param_1);
      }
    }
    if (puVar3 != (undefined8 *)0x0) {
      LOCK();
      piVar1 = (int *)(puVar3 + 1);
      iVar5 = *piVar1;
      *piVar1 = *piVar1 + -1;
      UNLOCK();
      if (iVar5 == 1) {
        (**(code **)*local_res8)(local_res8,1);
      }
    }
  }
  return;
}



############ FUN_ 1812a04f0 size=280 ############

float * FUN_1812a04f0(float *param_1,float *param_2)

{
  float fVar1;
  float fVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  uint uVar5;
  double dVar6;
  float fVar7;
  float fVar8;
  float fVar9;
  float fVar10;
  float fVar11;
  
  uVar5 = DAT_1824c4f30;
  fVar1 = *param_1;
  dVar6 = (double)(fVar1 * param_1[4] - param_1[1] * param_1[3]);
  if (dVar6 != 0.0) {
    dVar6 = DAT_1824c4140 / dVar6;
    fVar2 = param_1[2];
    fVar7 = (float)((uint)param_1[3] ^ DAT_1824c4f30);
    fVar9 = (float)((uint)param_1[1] ^ DAT_1824c4f30);
    fVar8 = (float)((double)param_1[4] * dVar6);
    *param_2 = fVar8;
    fVar11 = (float)((double)fVar7 * dVar6);
    fVar10 = (float)((double)fVar1 * dVar6);
    fVar1 = param_1[5];
    fVar7 = (float)((double)fVar9 * dVar6);
    param_2[3] = fVar11;
    param_2[1] = fVar7;
    param_2[4] = fVar10;
    param_2[5] = (float)((uint)(fVar2 * fVar11) ^ uVar5) - fVar1 * fVar10;
    param_2[2] = (float)((uint)(fVar2 * fVar8) ^ uVar5) - fVar1 * fVar7;
    return param_2;
  }
  uVar4 = *(undefined8 *)(param_1 + 2);
  uVar3 = *(undefined8 *)(param_1 + 4);
  *(undefined8 *)param_2 = *(undefined8 *)param_1;
  *(undefined8 *)(param_2 + 2) = uVar4;
  *(undefined8 *)(param_2 + 4) = uVar3;
  return param_2;
}



############ FUN_ 181297840 size=1240 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_181297840(float param_1,undefined4 param_2,undefined4 param_3,longlong *param_4,
                  longlong *param_5,undefined4 *param_6,float param_7)

{
  undefined8 *puVar1;
  float *pfVar2;
  undefined4 uVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  char cVar7;
  int iVar8;
  longlong lVar9;
  int iVar10;
  float fVar11;
  float fVar12;
  float fVar13;
  float fVar14;
  float fVar15;
  float fVar16;
  undefined1 auStack_1f8 [32];
  float local_1d8;
  undefined4 local_1d0;
  undefined4 local_1c8;
  void *local_1b8;
  undefined8 local_1b0;
  longlong local_1a8;
  undefined8 local_1a0;
  longlong local_198;
  longlong lStack_190;
  undefined1 local_188;
  float local_178;
  float local_174;
  undefined8 local_170;
  char local_168;
  int local_164;
  longlong *local_160;
  undefined4 local_158;
  undefined4 uStack_154;
  undefined4 uStack_150;
  undefined4 uStack_14c;
  undefined8 local_148;
  float *local_140;
  float local_138;
  undefined8 local_134;
  undefined1 local_12c;
  void *local_128;
  void *local_120;
  undefined8 local_118;
  float local_108;
  float fStack_104;
  float fStack_100;
  float fStack_fc;
  float local_f8;
  float fStack_f4;
  float fStack_f0;
  float fStack_ec;
  float local_e8;
  float fStack_e4;
  float fStack_e0;
  float fStack_dc;
  ulonglong local_d8;
  
  local_d8 = DAT_182615970 ^ (ulonglong)auStack_1f8;
  if (0.0 < param_1) {
    local_1a8 = 0;
    local_1a0 = 0;
    local_188 = 1;
    local_198 = 0;
    lStack_190 = 0;
    if (param_5 == param_4) {
      local_1a8 = *param_4;
      *param_4 = 0;
      lVar9 = param_4[1];
      *(undefined4 *)(param_4 + 1) = 0;
      uVar3 = *(undefined4 *)((longlong)param_4 + 0xc);
      *(undefined4 *)((longlong)param_4 + 0xc) = 0;
      local_198 = param_4[2];
      lStack_190 = param_4[3];
      param_4[2] = 0;
      param_4[3] = 0;
      local_1a0 = CONCAT44(uVar3,(int)lVar9);
      local_188 = (char)param_4[4];
      param_5 = &local_1a8;
      *(undefined1 *)(param_4 + 4) = 1;
    }
    else {
      *(undefined8 *)((longlong)param_4 + 0xc) = 0;
      *(undefined8 *)((longlong)param_4 + 0x14) = 0;
      *(undefined4 *)((longlong)param_4 + 0x1c) = 0;
    }
    param_7 = DAT_1824c3db8 / param_7;
    *(undefined1 *)(param_4 + 4) = 1;
    local_160 = param_5;
    local_140 = (float *)*param_5;
    local_170 = 0;
    local_168 = '\0';
    local_164 = -1;
    local_134 = 0;
    local_158 = *param_6;
    uStack_154 = param_6[1];
    uStack_150 = param_6[2];
    uStack_14c = param_6[3];
    local_148 = *(undefined8 *)(param_6 + 4);
    local_138 = param_7 * param_7;
    fVar16 = param_1 * DAT_1824c43e4 * param_1;
    param_1 = param_1 * DAT_1824c3d8c;
    local_12c = FUN_1812a0b10();
    local_128 = malloc(0x80);
    local_118 = 0x20;
    local_1b8 = (void *)0x0;
    local_1b0 = 0;
    local_120 = local_128;
    FUN_1804af890(&local_1b8,0x308);
    fVar12 = 0.0;
    fVar13 = 0.0;
    local_108 = 0.0;
    fStack_104 = 0.0;
    cVar7 = FUN_1812992b0(&local_178);
    fVar4 = DAT_1824c3c44;
    iVar10 = local_1b0._4_4_;
    while (cVar7 != '\0') {
      if (local_164 == 0) {
        if (0 < iVar10) {
          local_1d8 = fVar16;
          local_1d0 = param_2;
          local_1c8 = param_3;
          FUN_181297d70(param_4,&local_1b8,0,param_1);
          local_1b0 = local_1b0 & 0xffffffff;
          iVar10 = 0;
        }
        local_108 = local_178;
        fStack_104 = local_174;
        fVar12 = local_178;
        fVar13 = local_174;
      }
      cVar7 = local_168;
      fVar5 = (float)local_170;
      fVar6 = local_170._4_4_;
      fVar14 = (float)local_170 - fVar12;
      fStack_100 = (float)local_170;
      fStack_fc = local_170._4_4_;
      fVar15 = local_170._4_4_ - fVar13;
      fVar11 = fVar15 * fVar15 + fVar14 * fVar14;
      if (((local_168 != '\0') || (fVar4 < fVar11)) ||
         ((local_120 == local_128 &&
          ((local_140 == (float *)(*local_160 + (longlong)*(int *)((longlong)local_160 + 0xc) * 4)
           || (*local_140 == DAT_1824c4600)))))) {
        fVar11 = sqrtf(fVar11);
        local_f8 = fVar12;
        fStack_f4 = fVar13;
        fStack_f0 = fVar12;
        fStack_ec = fVar13;
        local_e8 = fVar12;
        fStack_e4 = fVar13;
        fStack_e0 = fVar12;
        fStack_dc = fVar13;
        if (fVar11 != 0.0) {
          fVar14 = fVar14 * (param_1 / fVar11);
          fVar15 = fVar15 * (param_1 / fVar11);
          local_f8 = fVar15 + fVar12;
          fStack_f4 = fVar13 - fVar14;
          fStack_f0 = fVar15 + fVar5;
          fStack_ec = fVar6 - fVar14;
          local_e8 = fVar5 - fVar15;
          fStack_e4 = fVar14 + fVar6;
          fStack_e0 = fVar12 - fVar15;
          fStack_dc = fVar14 + fVar13;
        }
        iVar8 = iVar10 + 1;
        if ((int)local_1b0 < iVar8) {
          if (iVar8 < 0) {
            iVar8 = iVar10 + 2;
          }
          FUN_1804af890(&local_1b8,iVar10 + 9 + (iVar8 >> 1) & 0xfffffff8);
          iVar10 = local_1b0._4_4_;
        }
        lVar9 = (longlong)iVar10;
        iVar10 = iVar10 + 1;
        local_1b0 = CONCAT44(iVar10,(int)local_1b0);
        puVar1 = (undefined8 *)((longlong)local_1b8 + lVar9 * 0x30);
        *puVar1 = CONCAT44(fStack_104,local_108);
        puVar1[1] = CONCAT44(fStack_fc,fStack_100);
        pfVar2 = (float *)((longlong)local_1b8 + lVar9 * 0x30 + 0x10);
        *pfVar2 = local_f8;
        pfVar2[1] = fStack_f4;
        pfVar2[2] = fStack_f0;
        pfVar2[3] = fStack_ec;
        pfVar2 = (float *)((longlong)local_1b8 + lVar9 * 0x30 + 0x20);
        *pfVar2 = local_e8;
        pfVar2[1] = fStack_e4;
        pfVar2[2] = fStack_e0;
        pfVar2[3] = fStack_dc;
        if (cVar7 == '\0') {
          local_108 = fVar5;
          fStack_104 = fVar6;
          fVar12 = fVar5;
          fVar13 = fVar6;
        }
        else {
          local_1d8 = fVar16;
          local_1d0 = param_2;
          local_1c8 = param_3;
          FUN_181297d70(param_4,&local_1b8,1,param_1);
          local_1b0 = local_1b0 & 0xffffffff;
          iVar10 = 0;
        }
      }
      cVar7 = FUN_1812992b0(&local_178);
    }
    if (0 < iVar10) {
      local_1d8 = fVar16;
      local_1d0 = param_2;
      local_1c8 = param_3;
      FUN_181297d70(param_4,&local_1b8,0,param_1);
    }
                    /* WARNING: Subroutine does not return */
    free(local_1b8);
  }
  *(undefined8 *)((longlong)param_4 + 0xc) = 0;
  *(undefined8 *)((longlong)param_4 + 0x14) = 0;
  *(undefined4 *)((longlong)param_4 + 0x1c) = 0;
}



############ FUN_ 1812a6d90 size=124 ############

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

undefined8 * FUN_1812a6d90(void)

{
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267b0a0) {
    _Init_thread_header(&DAT_18267b0a0);
    if (DAT_18267b0a0 == -1) {
      DAT_18267b090 = 0;
      _DAT_18267b098 = 0;
      atexit((_func_5014 *)&LAB_181a4ac90);
      _Init_thread_footer(&DAT_18267b0a0);
      return &DAT_18267b090;
    }
  }
  return &DAT_18267b090;
}



############ FUN_ 18133b370 size=76 ############

ulonglong FUN_18133b370(longlong param_1)

{
  ulonglong uVar1;
  longlong *plVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  
  plVar2 = *(longlong **)(param_1 + 0x18);
  uVar3 = 0;
  uVar1 = (ulonglong)((longlong)(plVar2 + *(int *)(param_1 + 0x24)) + (7 - (longlong)plVar2)) >> 3;
  if (plVar2 + *(int *)(param_1 + 0x24) < plVar2) {
    uVar1 = uVar3;
  }
  uVar4 = uVar3;
  if (uVar1 != 0) {
    do {
      if (*(char *)(*plVar2 + 0x5c) != '\0') {
        uVar4 = (ulonglong)((int)uVar4 + 1);
      }
      plVar2 = plVar2 + 1;
      uVar3 = uVar3 + 1;
    } while (uVar3 != uVar1);
  }
  return uVar4;
}



############ FUN_ 1812fbfd0 size=446 ############

undefined8 * FUN_1812fbfd0(undefined8 *param_1)

{
  FUN_181300930();
  *param_1 = juce::LookAndFeel_V4::vftable;
  param_1[1] = juce::LookAndFeel_V4::vftable;
  param_1[2] = juce::LookAndFeel_V4::vftable;
  param_1[3] = juce::LookAndFeel_V4::vftable;
  param_1[4] = juce::LookAndFeel_V4::vftable;
  param_1[5] = juce::LookAndFeel_V4::vftable;
  param_1[6] = juce::LookAndFeel_V4::vftable;
  param_1[7] = juce::LookAndFeel_V4::vftable;
  param_1[8] = juce::LookAndFeel_V4::vftable;
  param_1[9] = juce::LookAndFeel_V4::vftable;
  param_1[10] = juce::LookAndFeel_V4::vftable;
  param_1[0xb] = juce::LookAndFeel_V4::vftable;
  param_1[0xc] = juce::LookAndFeel_V4::vftable;
  param_1[0xd] = juce::LookAndFeel_V4::vftable;
  param_1[0xe] = juce::LookAndFeel_V4::vftable;
  param_1[0xf] = juce::LookAndFeel_V4::vftable;
  param_1[0x10] = juce::LookAndFeel_V4::vftable;
  param_1[0x11] = juce::LookAndFeel_V4::vftable;
  param_1[0x12] = juce::LookAndFeel_V4::vftable;
  param_1[0x13] = juce::LookAndFeel_V4::vftable;
  param_1[0x14] = juce::LookAndFeel_V4::vftable;
  param_1[0x15] = juce::LookAndFeel_V4::vftable;
  param_1[0x16] = juce::LookAndFeel_V4::vftable;
  param_1[0x17] = juce::LookAndFeel_V4::vftable;
  param_1[0x18] = juce::LookAndFeel_V4::vftable;
  param_1[0x19] = juce::LookAndFeel_V4::vftable;
  param_1[0x1a] = juce::LookAndFeel_V4::vftable;
  param_1[0x1b] = juce::LookAndFeel_V4::vftable;
  param_1[0x1c] = juce::LookAndFeel_V4::vftable;
  FUN_18051f810(param_1 + 0x29,0xff323e44,0xff263238,0xff323e44,0xff8e989b);
  FUN_1812f4280(param_1);
  return param_1;
}



############ FUN_ 18051b750 size=238 ############

longlong * FUN_18051b750(longlong *param_1,longlong param_2)

{
  int *piVar1;
  int iVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  longlong lVar5;
  
  if (param_2 == 0) {
    lVar5 = 0;
  }
  else {
    if (*(longlong *)(param_2 + 0x120) == 0) {
      puVar4 = (undefined8 *)FUN_1811316e0();
      *(undefined4 *)(puVar4 + 1) = 0;
      *puVar4 = juce::WeakReference<juce::LookAndFeel,juce::ReferenceCountedObject>::SharedPointer::
                vftable;
      puVar4[2] = param_2;
      if (*(undefined8 **)(param_2 + 0x120) != puVar4) {
        LOCK();
        *(int *)(puVar4 + 1) = *(int *)(puVar4 + 1) + 1;
        UNLOCK();
        puVar3 = *(undefined8 **)(param_2 + 0x120);
        *(undefined8 **)(param_2 + 0x120) = puVar4;
        if (puVar3 != (undefined8 *)0x0) {
          LOCK();
          piVar1 = (int *)(puVar3 + 1);
          iVar2 = *piVar1;
          *piVar1 = *piVar1 + -1;
          UNLOCK();
          if (iVar2 == 1) {
            (**(code **)*puVar3)(puVar3,1);
          }
        }
      }
    }
    lVar5 = *(longlong *)(param_2 + 0x120);
    if (lVar5 != 0) {
      LOCK();
      *(int *)(lVar5 + 8) = *(int *)(lVar5 + 8) + 1;
      UNLOCK();
    }
  }
  puVar4 = (undefined8 *)*param_1;
  *param_1 = lVar5;
  if (puVar4 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar4 + 1);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 1) {
      (**(code **)*puVar4)(puVar4,1);
    }
  }
  return param_1;
}



############ FUN_ 1812a7550 size=452 ############

undefined8 * FUN_1812a7550(void)

{
  uint uVar1;
  ushort *puVar2;
  DWORD DVar3;
  undefined8 *puVar4;
  longlong *plVar5;
  ushort *_Memory;
  uint *_Memory_00;
  longlong *local_res8;
  undefined *local_res10;
  longlong local_res18;
  
  if (DAT_1826736d0 == (undefined8 *)0x0) {
    puVar4 = (undefined8 *)FUN_1811316e0(0x20);
    *puVar4 = 0;
    puVar4[1] = 0;
    DVar3 = GetCurrentThreadId();
    puVar4[2] = (ulonglong)DVar3;
    puVar4[3] = 0;
    if (DAT_1826736d8 != 0) {
      FUN_18049c4e0(&local_res8,"JUCE Message Thread");
      _Memory_00 = (uint *)(local_res8 + -2);
      if ((*_Memory_00 & 0x30000000) == 0) {
        LOCK();
        uVar1 = *_Memory_00;
        *_Memory_00 = *_Memory_00 - 1;
        UNLOCK();
        if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
          free(_Memory_00);
        }
      }
    }
    DAT_1826736d0 = puVar4;
    OleInitialize((LPVOID)0x0);
    if (DAT_182673ad8 == (longlong *)0x0) {
      local_res10 = &DAT_182673aa8;
      EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182673aa8);
      if ((DAT_182673ad8 == (longlong *)0x0) && (DAT_18267aa98 == '\0')) {
        DAT_18267aa98 = 1;
        plVar5 = (longlong *)FUN_1811316e0(0x48);
        *plVar5 = 0;
        local_res8 = plVar5;
        InitializeCriticalSection((LPCRITICAL_SECTION)(plVar5 + 1));
        plVar5[7] = 0;
        plVar5[8] = 0;
        local_res18 = FUN_1811316e0(0x10);
        _Memory = (ushort *)FUN_1804cf280(local_res18,&DAT_1821e11d8,FUN_1804d1550);
        if (plVar5 == &local_res18) {
          if (_Memory != (ushort *)0x0) {
            DestroyWindow(*(HWND *)(_Memory + 4));
            UnregisterClassW((LPCWSTR)(ulonglong)*_Memory,(HINSTANCE)0x0);
            goto LAB_1812a76d2;
          }
        }
        else {
          puVar2 = (ushort *)*plVar5;
          *plVar5 = (longlong)_Memory;
          if (puVar2 != (ushort *)0x0) {
            DestroyWindow(*(HWND *)(puVar2 + 4));
            UnregisterClassW((LPCWSTR)(ulonglong)*puVar2,(HINSTANCE)0x0);
            _Memory = puVar2;
LAB_1812a76d2:
                    /* WARNING: Subroutine does not return */
            free(_Memory);
          }
        }
        DAT_1826736b0 = *(undefined8 *)(*plVar5 + 8);
        DAT_18267aa98 = '\0';
        DAT_182673ad8 = plVar5;
      }
      LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182673aa8);
    }
  }
  return DAT_1826736d0;
}



############ FUN_ 180510be0 size=1160 ############

void FUN_180510be0(longlong *param_1)

{
  undefined1 auVar1 [16];
  ushort uVar2;
  uint uVar3;
  char *pcVar4;
  char cVar5;
  int iVar6;
  undefined8 uVar7;
  HINSTANCE hInstance;
  HWND pHVar8;
  LONG_PTR dwNewLong;
  longlong *plVar9;
  undefined8 *puVar10;
  longlong lVar11;
  char *pcVar12;
  char *pcVar13;
  HMODULE pHVar14;
  FARPROC pFVar15;
  uint dwExStyle;
  uint dwStyle;
  undefined8 local_28;
  undefined8 uStack_20;
  
  uVar3 = *(uint *)(param_1 + 2);
  if ((uVar3 >> 3 & 1) == 0) {
    dwStyle = 0x86080000;
    if (param_1[0x12] != 0) {
      dwStyle = 0x46000000;
    }
  }
  else {
    dwStyle = 0x6000000;
    if ((uVar3 & 0x80) != 0) {
      dwStyle = 0x6080000;
    }
    if ((uVar3 & 0x10) != 0) {
      dwStyle = dwStyle | 0x40000;
    }
  }
  dwExStyle = 0x40000;
  if ((uVar3 & 1) == 0) {
    dwExStyle = 0x80;
  }
  if ((uVar3 & 0x20) != 0) {
    dwStyle = dwStyle | 0x20000;
  }
  if ((uVar3 & 0x40) != 0) {
    dwStyle = dwStyle | 0x10000;
  }
  if ((uVar3 & 4) != 0) {
    dwExStyle = dwExStyle | 0x20;
  }
  if ((uVar3 >> 0x1e & 1) != 0) {
    dwExStyle = dwExStyle | 0x80000;
  }
  if (DAT_182673bd8 == 0) {
    uVar7 = FUN_1811316e0(0x10);
    DAT_182673bd8 = FUN_180510480(uVar7);
  }
  uVar2 = *(ushort *)(DAT_182673bd8 + 8);
  hInstance = (HINSTANCE)FUN_181249ad0();
  pHVar8 = CreateWindowExW(dwExStyle,(LPCWSTR)(ulonglong)uVar2,L"",dwStyle,0,0,0,0,
                           (HWND)param_1[0x12],(HMENU)0x0,hInstance,(LPVOID)0x0);
  param_1[0x11] = (longlong)pHVar8;
  if (pHVar8 != (HWND)0x0) {
    SetWindowLongPtrW(pHVar8,0,0);
    SetWindowLongPtrW((HWND)param_1[0x11],8,(LONG_PTR)param_1);
    pHVar8 = (HWND)param_1[0x11];
    dwNewLong = FUN_1804cf4b0();
    SetWindowLongPtrW(pHVar8,-0x15,dwNewLong);
    if (param_1[0x1a] == 0) {
      if (((char)param_1[0x10] == '\0') ||
         (plVar9 = (longlong *)FUN_18050f9e0(param_1[0x12]), plVar9 == (longlong *)0x0)) {
        plVar9 = param_1;
      }
      puVar10 = (undefined8 *)FUN_1811316e0(0x40);
      *(undefined4 *)(puVar10 + 1) = 1;
      *puVar10 = juce::HWNDComponentPeer::FileDropTarget::vftable;
      puVar10[2] = plVar9;
      puVar10[3] = 0;
      puVar10[4] = 0;
      puVar10[5] = &DAT_1821dbf98;
      puVar10[6] = 0;
      *(undefined1 *)(puVar10 + 7) = 0;
      param_1[0x1a] = (longlong)puVar10;
    }
    RegisterDragDrop((HWND)param_1[0x11],(LPDROPTARGET)param_1[0x1a]);
    cVar5 = FUN_1812c78b0();
    if (cVar5 != '\0') {
      (*DAT_182678ed0)(param_1[0x11],0);
    }
    FUN_1812c75b0();
    FUN_1812c75b0();
    if ((DAT_182678f18 == (code *)0x0) || (DAT_182678ec8 == (code *)0x0)) {
      cVar5 = FUN_1812c7510();
    }
    else {
      uVar7 = (*DAT_182678f18)();
      iVar6 = (*DAT_182678ec8)(uVar7);
      cVar5 = iVar6 == 2;
    }
    if (cVar5 != '\0') {
      lVar11 = param_1[1];
      auVar1 = *(undefined1 (*) [16])(lVar11 + 0x20);
      if ((auVar1._8_4_ < 1) || (auVar1._12_4_ == 0 || auVar1._8_8_ < 0)) {
        lVar11 = FUN_18134b820();
        pcVar4 = (char *)**(undefined8 **)(lVar11 + 0x78);
        for (pcVar12 = pcVar4;
            (pcVar13 = pcVar4,
            pcVar12 !=
            pcVar4 + (longlong)*(int *)((longlong)*(undefined8 **)(lVar11 + 0x78) + 0xc) * 0x40 &&
            (pcVar13 = pcVar12, *pcVar12 == '\0')); pcVar12 = pcVar12 + 0x40) {
        }
        param_1[0x23] = *(longlong *)(pcVar13 + 0x30);
      }
      else {
        local_28 = *(undefined8 *)(lVar11 + 0x20);
        uStack_20 = *(undefined8 *)(lVar11 + 0x28);
        lVar11 = FUN_18134b820();
        lVar11 = FUN_18133d8f0(*(undefined8 *)(lVar11 + 0x78),&local_28,0);
        param_1[0x23] = *(longlong *)(lVar11 + 0x30);
      }
      if (DAT_182673700 == 0) {
        uVar7 = FUN_1811316e0(0x130);
        DAT_182673700 = FUN_18133c6c0(uVar7);
      }
      param_1[0x23] = (longlong)((double)param_1[0x23] / (double)*(float *)(DAT_182673700 + 0xc0));
    }
    pHVar14 = GetModuleHandleA("user32.dll");
    pFVar15 = GetProcAddress(pHVar14,"ChangeWindowMessageFilterEx");
    if (pFVar15 != (FARPROC)0x0) {
      (*pFVar15)(param_1[0x11],0x233,1);
      (*pFVar15)(param_1[0x11],0x4a,1);
      (*pFVar15)(param_1[0x11],0x49,1);
    }
    FUN_18050e380(param_1);
    pHVar14 = GetModuleHandleA("user32.dll");
    DAT_182678f28 = GetProcAddress(pHVar14,"GetPointerType");
    pHVar14 = GetModuleHandleA("user32.dll");
    DAT_182678e98 = GetProcAddress(pHVar14,"GetPointerTouchInfo");
    pHVar14 = GetModuleHandleA("user32.dll");
    DAT_182678f00 = GetProcAddress(pHVar14,"GetPointerPenInfo");
    if (((DAT_182678f28 == (FARPROC)0x0) || (DAT_182678e98 == (FARPROC)0x0)) ||
       (DAT_182674aaf = 1, DAT_182678f00 == (FARPROC)0x0)) {
      DAT_182674aaf = 0;
    }
    if (DAT_1826736d8 == 0) {
      DAT_1826736f0 = FUN_1805148d0;
    }
    GetSystemMenu((HWND)param_1[0x11],0);
    if ((float)(int)(0xff - (uint)*(byte *)(param_1[1] + 0xac)) / DAT_1824c4548 < DAT_1824c3ea4) {
      (**(code **)(*param_1 + 0xf0))(param_1);
    }
  }
  return;
}



############ FUN_ 1812a6500 size=248 ############

undefined8 FUN_1812a6500(longlong param_1,code *param_2,undefined8 param_3)

{
  int *piVar1;
  int iVar2;
  char cVar3;
  DWORD DVar4;
  undefined8 uVar5;
  undefined8 *puVar6;
  
  DVar4 = GetCurrentThreadId();
  if ((ulonglong)DVar4 == *(ulonglong *)(param_1 + 0x10)) {
    uVar5 = (*param_2)(param_3);
  }
  else {
    puVar6 = (undefined8 *)FUN_1811316e0(0xd0);
    uVar5 = 0;
    *(undefined4 *)(puVar6 + 1) = 0;
    *puVar6 = juce::AsyncFunctionCallback::vftable;
    *(undefined1 *)(puVar6 + 2) = 0;
    _Mtx_init_in_situ(puVar6 + 3,2);
    _Cnd_init_in_situ(puVar6 + 0xd);
    *(undefined1 *)(puVar6 + 0x16) = 0;
    puVar6[0x17] = 0;
    puVar6[0x18] = param_2;
    puVar6[0x19] = param_3;
    LOCK();
    *(int *)(puVar6 + 1) = *(int *)(puVar6 + 1) + 1;
    UNLOCK();
    cVar3 = FUN_1812a6720(puVar6);
    if (cVar3 != '\0') {
      FUN_181215c90(puVar6 + 2,0xffffffff);
      uVar5 = puVar6[0x17];
    }
    LOCK();
    piVar1 = (int *)(puVar6 + 1);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 1) {
      (**(code **)*puVar6)(puVar6,1);
    }
  }
  return uVar5;
}



############ FUN_ 180511150 size=139 ############

void FUN_180511150(longlong param_1)

{
  undefined8 *puVar1;
  char cVar2;
  int iVar3;
  longlong *plVar4;
  undefined8 uVar5;
  
  cVar2 = FUN_18134aa20(*(undefined8 *)(param_1 + 8),1);
  if ((cVar2 == '\0') && ((*(uint *)(param_1 + 0x10) >> 8 & 1) != 0)) {
    if (((*(uint *)(param_1 + 0x10) >> 3 & 1) != 0) && (iVar3 = FUN_181216340(), 0x202 < iVar3)) {
      return;
    }
    plVar4 = (longlong *)FUN_18134adf0(*(undefined8 *)(param_1 + 8));
    uVar5 = (**(code **)(*plVar4 + 0x70))(plVar4,*(undefined8 *)(param_1 + 8));
    puVar1 = *(undefined8 **)(param_1 + 0x98);
    *(undefined8 *)(param_1 + 0x98) = uVar5;
    if (puVar1 != (undefined8 *)0x0) {
      (**(code **)*puVar1)(puVar1,1);
    }
    if (*(longlong *)(param_1 + 0x98) != 0) {
      FUN_1812c8710(*(longlong *)(param_1 + 0x98),*(undefined8 *)(param_1 + 8));
      return;
    }
  }
  return;
}



############ FUN_ 18050dad0 size=355 ############

undefined8 * FUN_18050dad0(undefined8 *param_1)

{
  uint uVar1;
  int iVar2;
  HMODULE hModule;
  FARPROC pFVar3;
  longlong local_res10;
  HMODULE local_res18;
  
  *param_1 = 0;
  param_1[1] = 0;
  hModule = LoadLibraryW(L"api-ms-win-core-winrt-l1-1-0");
  local_res18 = hModule;
  if (hModule != (HMODULE)0x0) {
    pFVar3 = GetProcAddress(hModule,"RoInitialize");
    param_1[2] = pFVar3;
    pFVar3 = GetProcAddress(hModule,"RoGetActivationFactory");
    param_1[3] = pFVar3;
    pFVar3 = GetProcAddress(hModule,"WindowsCreateString");
    param_1[4] = pFVar3;
    pFVar3 = GetProcAddress(hModule,"WindowsDeleteString");
    param_1[5] = pFVar3;
    if ((((((code *)param_1[2] == (code *)0x0) || (param_1[3] == 0)) || (param_1[4] == 0)) ||
        (pFVar3 == (FARPROC)0x0)) ||
       (((uVar1 = (*(code *)param_1[2])(1), 1 < uVar1 && (uVar1 != 0x80010106)) ||
        ((iVar2 = (*(code *)param_1[4])
                            (L"Windows.UI.ViewManagement.UIViewSettings",0x28,&local_res10),
         iVar2 != 0 || (local_res10 == 0)))))) goto LAB_18050dc18;
    if ((longlong *)param_1[1] != (longlong *)0x0) {
      (**(code **)(*(longlong *)param_1[1] + 0x10))();
    }
    param_1[1] = 0;
    iVar2 = (*(code *)param_1[3])(local_res10,&DAT_1824a2318,param_1 + 1);
    (*(code *)param_1[5])(local_res10);
    if ((iVar2 != 0) || (param_1[1] == 0)) goto LAB_18050dc18;
    if ((HMODULE)*param_1 != (HMODULE)0x0) {
      FreeLibrary((HMODULE)*param_1);
    }
    *param_1 = hModule;
    hModule = (HMODULE)0x0;
  }
  if (hModule == (HMODULE)0x0) {
    return param_1;
  }
LAB_18050dc18:
  FreeLibrary(hModule);
  return param_1;
}



############ FUN_ 180001000 size=102 ############

undefined4 FUN_180001000(void)

{
  int iVar1;
  undefined4 uVar2;
  undefined8 local_18;
  undefined4 local_10;
  
  iVar1 = FUN_180001360(&local_18,0);
  if (iVar1 != 0) {
    DAT_1826159a0 = 0;
    FUN_1800013e0(7);
  }
  local_10 = 0;
  uVar2 = FUN_1800010e0(local_18);
  DAT_1826159a0 = local_10;
  iVar1 = FUN_181a53388();
  if (iVar1 == 0) {
    uVar2 = 0x14;
  }
  return uVar2;
}



############ FUN_ 1804af790 size=115 ############

void FUN_1804af790(undefined8 *param_1,int param_2)

{
  void *pvVar1;
  
  if (*(int *)(param_1 + 1) == param_2) {
    *(int *)(param_1 + 1) = param_2;
    return;
  }
  pvVar1 = (void *)*param_1;
  if (0 < param_2) {
    if (pvVar1 == (void *)0x0) {
      pvVar1 = malloc((longlong)param_2 * 4);
      *param_1 = pvVar1;
      *(int *)(param_1 + 1) = param_2;
      return;
    }
    pvVar1 = realloc(pvVar1,(longlong)param_2 * 4);
    *param_1 = pvVar1;
    *(int *)(param_1 + 1) = param_2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar1);
}



############ FUN_ 18129daf0 size=356 ############

void FUN_18129daf0(longlong *param_1,float param_2,float param_3,undefined4 param_4,
                  undefined4 param_5,undefined4 param_6,undefined4 param_7)

{
  float *pfVar1;
  int iVar2;
  
  if (*(int *)((longlong)param_1 + 0xc) == 0) {
    param_1[2] = 0;
    param_1[3] = 0;
    FUN_1804b02a0(param_1,&DAT_1821df344,0,0);
  }
  iVar2 = *(int *)((longlong)param_1 + 0xc) + 7;
  if ((int)param_1[1] < iVar2) {
    FUN_1804af790(param_1,*(int *)((longlong)param_1 + 0xc) + 0xf + iVar2 / 2 & 0xfffffff8);
  }
  iVar2 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar2 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar2 * 4) = 0x47c35200;
  iVar2 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar2 + 1;
  *(float *)(*param_1 + (longlong)iVar2 * 4) = param_2;
  iVar2 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar2 + 1;
  *(float *)(*param_1 + (longlong)iVar2 * 4) = param_3;
  iVar2 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar2 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar2 * 4) = param_4;
  iVar2 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar2 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar2 * 4) = param_5;
  iVar2 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar2 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar2 * 4) = param_6;
  iVar2 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar2 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar2 * 4) = param_7;
  pfVar1 = (float *)(param_1 + 2);
  if (*pfVar1 <= param_2) {
    if (*(float *)((longlong)param_1 + 0x14) <= param_2 &&
        param_2 != *(float *)((longlong)param_1 + 0x14)) {
      *(float *)((longlong)param_1 + 0x14) = param_2;
    }
  }
  else {
    *pfVar1 = param_2;
  }
  if (*(float *)(param_1 + 3) <= param_3) {
    if (*(float *)((longlong)param_1 + 0x1c) <= param_3 &&
        param_3 != *(float *)((longlong)param_1 + 0x1c)) {
      *(float *)((longlong)param_1 + 0x1c) = param_3;
    }
  }
  else {
    *(float *)(param_1 + 3) = param_3;
  }
  FUN_1804b0330(pfVar1,param_4);
  return;
}



############ FUN_ 18129dca0 size=245 ############

void FUN_18129dca0(longlong *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                  undefined4 param_5)

{
  int iVar1;
  
  if (*(int *)((longlong)param_1 + 0xc) == 0) {
    param_1[2] = 0;
    param_1[3] = 0;
    FUN_1804b02a0(param_1,&DAT_1821df344,0,0);
  }
  iVar1 = *(int *)((longlong)param_1 + 0xc) + 5;
  if ((int)param_1[1] < iVar1) {
    FUN_1804af790(param_1,*(int *)((longlong)param_1 + 0xc) + 0xd + iVar1 / 2 & 0xfffffff8);
  }
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar1 * 4) = 0x47c35180;
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar1 * 4) = param_2;
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar1 * 4) = param_3;
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar1 * 4) = param_4;
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined4 *)(*param_1 + (longlong)iVar1 * 4) = param_5;
  FUN_1804b0330(param_1 + 2,param_2,param_3,param_4);
  return;
}



############ FUN_ 1804ab000 size=106 ############

longlong * FUN_1804ab000(longlong *param_1,undefined8 *param_2)

{
  int iVar1;
  void *_Src;
  
  *param_1 = 0;
  param_1[1] = 0;
  iVar1 = *(int *)((longlong)param_2 + 0xc);
  _Src = (void *)*param_2;
  if (0 < iVar1) {
    FUN_1804af790(param_1,iVar1 + 8 + iVar1 / 2 & 0xfffffff8);
  }
  memcpy((void *)(*param_1 + (longlong)*(int *)((longlong)param_1 + 0xc) * 4),_Src,
         (longlong)iVar1 << 2);
  *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + iVar1;
  return param_1;
}



############ FUN_ 1805a3f20 size=309 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805a3f20(undefined8 *param_1,longlong param_2)

{
  basic_streambuf<char,std::char_traits<char>_> *this;
  void *pvVar1;
  void *_Memory;
  longlong lVar2;
  undefined1 auStack_78 [32];
  undefined8 local_58;
  undefined8 *local_50;
  basic_streambuf<char,std::char_traits<char>_> *local_48;
  undefined1 local_40;
  undefined7 uStack_3f;
  undefined8 local_30;
  ulonglong local_28;
  ulonglong local_20;
  
  local_58 = 0xfffffffffffffffe;
  local_20 = DAT_182615970 ^ (ulonglong)auStack_78;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  *(undefined4 *)(param_1 + 8) = 0;
  *(undefined1 *)((longlong)param_1 + 0x44) = 0;
  param_1[0xb] = 0;
  param_1[0xc] = 0xf;
  *(undefined1 *)(param_1 + 9) = 0;
  *(undefined1 *)(param_1 + 0xd) = 0xff;
  this = (basic_streambuf<char,std::char_traits<char>_> *)(param_1 + 0xe);
  local_50 = param_1;
  local_48 = this;
  std::basic_streambuf<char,std::char_traits<char>_>::basic_streambuf<char,std::char_traits<char>_>
            (this);
  *(undefined ***)this =
       boost::io::basic_altstringbuf<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  param_1[0x1b] = 0;
  *(undefined1 *)(param_1 + 0x1c) = 0;
  *(undefined4 *)((longlong)param_1 + 0xe4) = 3;
  *(undefined1 *)(param_1 + 0x1e) = 0;
  if (param_2 != 0) {
    local_30 = 0;
    local_28 = 0xf;
    local_40 = 0;
    lVar2 = -1;
    do {
      lVar2 = lVar2 + 1;
    } while (*(char *)(param_2 + lVar2) != '\0');
    FUN_1805a6cb0(&local_40,param_2);
    FUN_1805a99a0(param_1,&local_40);
    if (0xf < local_28) {
      pvVar1 = (void *)CONCAT71(uStack_3f,local_40);
      _Memory = pvVar1;
      if ((0xfff < local_28 + 1) &&
         (_Memory = *(void **)((longlong)pvVar1 + -8),
         0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
}



############ FUN_ 1805a5a40 size=73 ############

undefined8 * FUN_1805a5a40(undefined8 *param_1,undefined8 *param_2)

{
  undefined8 uVar1;
  
  if (param_1 != param_2) {
    FUN_180485450();
    uVar1 = param_2[1];
    *param_1 = *param_2;
    param_1[1] = uVar1;
    uVar1 = param_2[3];
    param_1[2] = param_2[2];
    param_1[3] = uVar1;
    param_2[2] = 0;
    param_2[3] = 0xf;
    *(undefined1 *)param_2 = 0;
  }
  return param_1;
}



############ FUN_ 1805a3b50 size=32 ############

undefined8 FUN_1805a3b50(undefined8 param_1,undefined8 param_2)

{
  FUN_1805ae640(param_2,param_1);
  return param_1;
}



############ FUN_ 1805a4160 size=59 ############

undefined1 * FUN_1805a4160(undefined1 *param_1,longlong param_2)

{
  longlong lVar1;
  
  *(undefined8 *)(param_1 + 0x10) = 0;
  *(undefined8 *)(param_1 + 0x18) = 0xf;
  lVar1 = -1;
  *param_1 = 0;
  do {
    lVar1 = lVar1 + 1;
  } while (*(char *)(param_2 + lVar1) != '\0');
  FUN_1805a6cb0();
  return param_1;
}



############ FUN_ 1805a4fa0 size=249 ############

void FUN_1805a4fa0(longlong param_1)

{
  void *pvVar1;
  undefined8 *puVar2;
  void *pvVar3;
  
  if (*(char *)(param_1 + 0xf0) != '\0') {
    if ((*(longlong **)(param_1 + 0x100) != (longlong *)0x0) &&
       (puVar2 = (undefined8 *)(**(code **)(**(longlong **)(param_1 + 0x100) + 0x10))(),
       puVar2 != (undefined8 *)0x0)) {
      (**(code **)*puVar2)(puVar2,1);
    }
    *(undefined1 *)(param_1 + 0xf0) = 0;
  }
  FUN_1805a4ee0(param_1 + 0x70);
  if (0xf < *(ulonglong *)(param_1 + 0x60)) {
    pvVar1 = *(void **)(param_1 + 0x48);
    pvVar3 = pvVar1;
    if ((0xfff < *(ulonglong *)(param_1 + 0x60) + 1) &&
       (pvVar3 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  *(undefined8 *)(param_1 + 0x58) = 0;
  *(undefined8 *)(param_1 + 0x60) = 0xf;
  *(undefined1 *)(param_1 + 0x48) = 0;
  pvVar1 = *(void **)(param_1 + 0x18);
  if (pvVar1 == (void *)0x0) {
    FUN_1805a5460(param_1);
    return;
  }
  pvVar3 = pvVar1;
  if ((0xfff < (*(longlong *)(param_1 + 0x28) - (longlong)pvVar1 & 0xfffffffffffffffcU)) &&
     (pvVar3 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar3);
}



############ FUN_ 1805f02b0 size=629 ############

/* WARNING: Instruction at (ram,0x0001805f0521) overlaps instruction at (ram,0x0001805f051f)
    */
/* WARNING: Removing unreachable block (ram,0x0001805f0441) */
/* WARNING: Removing unreachable block (ram,0x0001805f033b) */
/* WARNING: Removing unreachable block (ram,0x0001805f0424) */
/* WARNING: Removing unreachable block (ram,0x0001805f051f) */
/* WARNING: Removing unreachable block (ram,0x0001805f03a7) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1805f02b0(LPCSTR param_1,FARPROC param_2,int param_3,char param_4,char param_5,char param_6
                  )

{
  longlong *plVar1;
  LPCSTR pCVar2;
  wchar_t *pwVar3;
  undefined1 auVar4 [16];
  undefined1 auVar5 [16];
  BOOL BVar6;
  DWORD DVar7;
  ulonglong uVar8;
  undefined8 uVar9;
  LPCWSTR lpWideCharStr;
  LPCWSTR lpWideCharStr_00;
  LPCSTR lpMultiByteStr;
  HMODULE hModule;
  FARPROC pFVar10;
  HWINSTA hObj;
  INT_PTR IVar11;
  uint *puVar12;
  longlong lVar13;
  int iVar14;
  size_t _Count;
  uint uVar15;
  size_t _Count_00;
  int unaff_retaddr;
  undefined4 unaff_retaddr_00;
  undefined1 auStackY_508 [32];
  undefined4 uStack_4a8;
  uint uStack_490;
  uint uStack_48c;
  undefined4 uStack_488;
  undefined4 uStack_47c;
  undefined8 local_470;
  uint local_468;
  uint local_464;
  code *pcStack_460;
  code *pcStack_458;
  FARPROC local_450;
  LPCWSTR pWStack_448;
  LPCSTR local_440;
  _NOTIFYICONDATAW _Stack_438;
  wchar_t awStack_308 [256];
  undefined4 uStack_108;
  wchar_t awStack_104 [64];
  undefined4 uStack_84;
  wchar_t wStack_52;
  undefined8 uStack_50;
  undefined8 uStack_48;
  ulonglong local_40;
  
  local_40 = DAT_182615970 ^ (ulonglong)auStackY_508;
  uVar15 = (uint)&stack0x00000000 & 0x27f;
  iVar14 = (uVar15 + 2) * (uVar15 + 1) * uVar15;
  local_464 = ((iVar14 >> 1) - (iVar14 >> 3)) + iVar14 * 0x55555555 >> 0x1e ^ 0x630;
  iVar14 = (uVar15 + 2) * (uVar15 + 1) * uVar15;
  local_468 = 0x4cfa >> (-(char)(((iVar14 >> 1) - (iVar14 >> 3)) + iVar14 * 0x55555555 >> 0x1e) &
                        0x1fU) ^ 0x4fba;
  local_470 = 0;
  do {
    uVar15 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar15 < 0) {
      uVar15 = (uVar15 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar15 != 0);
  uStack_4a8 = 0;
  uStack_47c = 0x64df472d;
  local_450 = param_2;
  local_440 = param_1;
  do {
    puVar12 = &uStack_490;
    func_0x0001805f02a1(puVar12,&uStack_490);
    uVar9 = rdtsc();
    *puVar12 = (uint)uVar9 ^ (uint)((ulonglong)uVar9 >> 0x20);
    func_0x0001805f23f7();
    uVar15 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar15 < 0) {
      uVar15 = (uVar15 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar15 != 0);
  uStack_490 = (uStack_490 * -0x166a51cb >> 0x18 ^ uStack_490 * -0x166a51cb) * -0x50285029;
  if (uStack_490 < 0x1fffffff) {
    do {
      pcStack_460 = FUN_1813f2240;
      uVar15 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar15 < 0) {
        uVar15 = (uVar15 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar15 != 0);
    uVar8 = FUN_1813f2240(0,0x8e7);
    if (1 < uVar8) {
      lVar13 = CONCAT44(unaff_retaddr_00,unaff_retaddr);
      plVar1 = (longlong *)register0x00000020;
      while (lVar13 != -0x3333333333333334) {
        *plVar1 = 0;
        plVar1 = plVar1 + 8;
        lVar13 = *plVar1;
      }
    }
  }
  uStack_48c = 0x88a1c1ce;
  uStack_488 = 0xc751e41d;
  uVar15 = (uint)(param_5 != '\0');
  if (param_3 == 0) {
    uVar15 = uVar15 | 0x10;
    uStack_4a8 = 3;
  }
  else if (param_3 == 1) {
    uVar15 = uVar15 | 0x40;
    uStack_4a8 = 1;
  }
  else if (param_3 == 2) {
    uVar15 = uVar15 | 0x30;
    uStack_4a8 = 2;
  }
  pCVar2 = param_1 + 0x10;
  _Count_00 = 0xffffffffffffffff;
  auVar4._8_8_ = 0;
  auVar4._0_8_ = *(longlong *)(param_1 + 0x10) + 1;
  uVar9 = SUB168(ZEXT816(2) * auVar4,0);
  if (SUB168(ZEXT816(2) * auVar4,8) != 0) {
    uVar9 = 0xffffffffffffffff;
  }
  lpWideCharStr = (LPCWSTR)thunk_FUN_1811316e0(uVar9);
  uStack_48c = (~uStack_48c + 0xcfb2cf84 >> 0x18 | (~uStack_48c + 0xcfb2cf84) * 0x100) + 0xa79804c;
  pcStack_458 = param_2 + 0x10;
  auVar5._8_8_ = 0;
  auVar5._0_8_ = *(longlong *)(param_2 + 0x10) + 1;
  uVar9 = SUB168(ZEXT816(2) * auVar5,0);
  if (SUB168(ZEXT816(2) * auVar5,8) != 0) {
    uVar9 = 0xffffffffffffffff;
  }
  pWStack_448 = lpWideCharStr;
  lpWideCharStr_00 = (LPCWSTR)thunk_FUN_1811316e0(uVar9);
  lpMultiByteStr = local_440;
  if (0xf < *(ulonglong *)(local_440 + 0x18)) {
    lpMultiByteStr = *(LPCSTR *)local_440;
  }
  MultiByteToWideChar(0xfde9,0,lpMultiByteStr,(int)*(undefined8 *)pCVar2 + 1,lpWideCharStr,
                      (int)*(undefined8 *)pCVar2 + 1);
  pFVar10 = local_450;
  if (0xf < *(ulonglong *)(local_450 + 0x18)) {
    pFVar10 = *(FARPROC *)local_450;
  }
  MultiByteToWideChar(0xfde9,0,(LPCSTR)pFVar10,(int)*(undefined8 *)pcStack_458 + 1,lpWideCharStr_00,
                      (int)*(undefined8 *)pcStack_458 + 1);
  uStack_488 = 0xcc9e2d51;
  if (param_4 != '\0') {
    iVar14 = MessageBoxW((HWND)0x0,lpWideCharStr_00,lpWideCharStr,uVar15 | 0x2000);
    if (iVar14 == 1) {
      local_470 = 1;
    }
    else if (iVar14 == 2) {
      local_470 = 2;
    }
    else {
      local_470 = 0;
    }
    FUN_18113eab0();
    uRam000000018265f0f8 = 1;
    goto code_r0x0001805f093e;
  }
  hModule = LoadLibraryW(L"Wtsapi32.dll");
  if ((hModule != (HMODULE)0x0) &&
     (pFVar10 = GetProcAddress(hModule,"WTSSendMessageW"), local_450 = pFVar10,
     pFVar10 != (FARPROC)0x0)) {
    uStack_50 = _UNK_181bb5208;
    uStack_48 = _UNK_181bb5210;
    if (param_6 == '\0') {
      hObj = GetProcessWindowStation();
      BVar6 = GetUserObjectInformationW(hObj,2,&uStack_50,0x10,(LPDWORD)0x0);
      if (BVar6 == 0) goto code_r0x0001805f0c72;
      lVar13 = 0;
      do {
        pwVar3 = L"WinSta0" + lVar13;
        lVar13 = lVar13 + 1;
        if (*pwVar3 != (&wStack_52)[lVar13]) goto code_r0x0001805f0c72;
      } while (lVar13 != 8);
      IVar11 = (*pFVar10)(0,0xffffffff,lpWideCharStr,
                          (ulonglong)(uint)((int)*(undefined8 *)pCVar2 * 2));
      iVar14 = (int)IVar11;
    }
    else {
code_r0x0001805f0c72:
      uVar9 = *(undefined8 *)pCVar2;
      DVar7 = WTSGetActiveConsoleSessionId();
      lpWideCharStr = pWStack_448;
      IVar11 = (*local_450)(0,(ulonglong)DVar7,pWStack_448,(ulonglong)(uint)((int)uVar9 * 2));
      iVar14 = (int)IVar11;
    }
    if (iVar14 != 0) goto code_r0x0001805f093e;
  }
  memset(&_Stack_438,0,0x3d0);
  _Stack_438.cbSize = 0x3b8;
  _Stack_438.hWnd = GetDesktopWindow();
  _Stack_438.uID = 0;
  Shell_NotifyIconW(2,&_Stack_438);
  uVar8 = 0xffffffffffffffff;
  _Stack_438.uFlags = 0x10;
  do {
    uVar8 = uVar8 + 1;
  } while (lpWideCharStr[uVar8] != L'\0');
  if (uVar8 < 0x3f) {
    _Count = 0xffffffffffffffff;
    do {
      _Count = _Count + 1;
    } while (lpWideCharStr[_Count] != L'\0');
  }
  else {
    _Count = 0x3f;
  }
  wcsncpy(awStack_104,lpWideCharStr,_Count);
  uVar8 = 0xffffffffffffffff;
  awStack_104[_Count] = L'\0';
  do {
    uVar8 = uVar8 + 1;
  } while (lpWideCharStr_00[uVar8] != L'\0');
  if (uVar8 < 0xff) {
    do {
      _Count_00 = _Count_00 + 1;
    } while (lpWideCharStr_00[_Count_00] != L'\0');
  }
  else {
    _Count_00 = 0xff;
  }
  wcsncpy(awStack_308,lpWideCharStr_00,_Count_00);
  awStack_308[_Count_00] = L'\0';
  uStack_84 = uStack_4a8;
  uStack_108 = 30000;
  Shell_NotifyIconW(0,&_Stack_438);
code_r0x0001805f093e:
                    /* WARNING: Subroutine does not return */
  free(lpWideCharStr);
}



############ FUN_ 180485450 size=94 ############

void FUN_180485450(longlong *param_1)

{
  void *pvVar1;
  void *_Memory;
  
  if ((ulonglong)param_1[3] < 0x10) {
    param_1[2] = 0;
    param_1[3] = 0xf;
    *(undefined1 *)param_1 = 0;
    return;
  }
  pvVar1 = (void *)*param_1;
  _Memory = pvVar1;
  if ((0xfff < param_1[3] + 1U) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 180536f90 size=249 ############

/* WARNING: Removing unreachable block (ram,0x000180537079) */
/* WARNING: Removing unreachable block (ram,0x0001805370c8) */
/* WARNING: Removing unreachable block (ram,0x00018053707f) */

void FUN_180536f90(undefined8 param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4,
                  undefined4 param_5)

{
  undefined8 *puVar1;
  undefined8 *puVar2;
  undefined1 auStack_f8 [32];
  undefined8 local_d8;
  undefined8 local_c8;
  undefined8 uStack_c0;
  undefined8 local_b8;
  undefined4 local_b0;
  undefined4 uStack_ac;
  undefined4 uStack_a8;
  undefined4 uStack_a4;
  undefined8 local_a0;
  undefined4 local_98;
  undefined4 uStack_94;
  undefined4 uStack_90;
  undefined4 uStack_8c;
  ulonglong local_88;
  
  local_88 = DAT_182615970 ^ (ulonglong)auStack_f8;
  puVar1 = (undefined8 *)*param_3;
  puVar2 = (undefined8 *)param_3[1];
  local_b0 = *(undefined4 *)(puVar1 + 1);
  uStack_ac = *(undefined4 *)((longlong)puVar1 + 0xc);
  uStack_a8 = *(undefined4 *)(puVar1 + 2);
  uStack_a4 = *(undefined4 *)((longlong)puVar1 + 0x14);
  local_98 = *(undefined4 *)(puVar2 + 1);
  uStack_94 = *(undefined4 *)((longlong)puVar2 + 0xc);
  uStack_90 = *(undefined4 *)(puVar2 + 2);
  uStack_8c = *(undefined4 *)((longlong)puVar2 + 0x14);
  local_c8 = *puVar1;
  local_a0 = *puVar2;
  uStack_c0 = 0;
  local_d8 = param_4;
  local_b8 = local_c8;
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(&local_c8,param_2,param_5);
}



############ FUN_ 180535880 size=283 ############

/* WARNING: Removing unreachable block (ram,0x000180535987) */
/* WARNING: Removing unreachable block (ram,0x0001805359d3) */
/* WARNING: Removing unreachable block (ram,0x00018053598d) */

void FUN_180535880(undefined8 param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4,
                  undefined4 param_5)

{
  double *pdVar1;
  double *pdVar2;
  undefined1 auStack_c8 [32];
  undefined8 local_a8;
  float local_a0;
  float local_9c;
  float local_98;
  float local_90;
  float local_8c;
  float local_88;
  ulonglong local_80;
  
  local_80 = DAT_182615970 ^ (ulonglong)auStack_c8;
  pdVar1 = (double *)*param_3;
  pdVar2 = (double *)param_3[1];
  local_8c = (float)pdVar2[1];
  local_9c = (float)pdVar1[1];
  local_88 = (float)pdVar2[2];
  local_a0 = (float)*pdVar1;
  local_90 = (float)*pdVar2;
  local_98 = (float)pdVar1[2];
  local_a8 = param_4;
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(local_a0,param_2,param_5);
}



############ FUN_ 18052d990 size=97 ############

void FUN_18052d990(undefined8 param_1,undefined8 param_2,undefined4 param_3)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0();
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,param_1,param_3);
}



############ FUN_ 18052da00 size=85 ############

void FUN_18052da00(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(param_2,param_3);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,(double)(float)param_3,param_1,param_4);
}



############ FUN_ 18049d7f0 size=313 ############

void FUN_18049d7f0(longlong *param_1,byte *param_2,int param_3)

{
  byte bVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  byte *pbVar6;
  
  param_3 = param_3 + -1;
  if (param_3 < 1) {
    *(undefined1 *)*param_1 = 0;
    return;
  }
  do {
    bVar1 = *param_2;
    param_2 = param_2 + 1;
    uVar4 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar2 = 0x40;
      iVar5 = 0;
      uVar4 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar2 < 9) break;
          uVar4 = uVar4 >> 1;
          iVar5 = iVar5 + 1;
          uVar2 = uVar2 >> 1;
        } while ((bVar1 & uVar2) != 0);
      }
      uVar4 = bVar1 & uVar4;
      for (; (iVar5 = iVar5 + -1, -1 < iVar5 && ((*param_2 & 0xc0) == 0x80)); param_2 = param_2 + 1)
      {
        uVar4 = *param_2 & 0x3f | uVar4 << 6;
      }
    }
    if (uVar4 == 0) break;
    if (uVar4 < 0x80) {
      *(char *)*param_1 = (char)uVar4;
      *param_1 = *param_1 + 1;
    }
    else {
      iVar5 = 1;
      if (0x7ff < uVar4) {
        iVar5 = 2;
        if (0xffff < uVar4) {
          iVar5 = 3;
        }
      }
      *(byte *)*param_1 = (byte)(uVar4 >> (char)iVar5 * '\x06') | -1 << (7U - (char)iVar5 & 0x1f);
      *param_1 = *param_1 + 1;
      iVar5 = iVar5 + -1;
      pbVar6 = (byte *)*param_1;
      if (-1 < iVar5) {
        iVar3 = iVar5 * 6;
        do {
          bVar1 = (byte)iVar3;
          iVar3 = iVar3 + -6;
          *pbVar6 = (byte)(uVar4 >> (bVar1 & 0x1f)) & 0x3f | 0x80;
          *param_1 = *param_1 + 1;
          iVar5 = iVar5 + -1;
          pbVar6 = (byte *)*param_1;
        } while (-1 < iVar5);
      }
    }
    param_3 = param_3 + -1;
  } while (0 < param_3);
  *(undefined1 *)*param_1 = 0;
  return;
}



############ FUN_ 1805714d0 size=189 ############

undefined8 * FUN_1805714d0(longlong *param_1,undefined8 *param_2)

{
  undefined8 uVar1;
  int iVar2;
  longlong lVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *local_res8;
  
  puVar5 = (undefined8 *)*param_1;
  if (*(char *)((longlong)puVar5[1] + 0x19) == '\0') {
    uVar1 = *param_2;
    puVar4 = puVar5;
    puVar6 = (undefined8 *)puVar5[1];
    do {
      puVar5 = puVar6;
      iVar2 = FUN_18048cbc0(puVar5[4],uVar1);
      if (iVar2 < 0) {
        puVar6 = (undefined8 *)puVar5[2];
        puVar5 = puVar4;
      }
      else {
        puVar6 = (undefined8 *)*puVar5;
      }
      puVar4 = puVar5;
    } while (*(char *)((longlong)puVar6 + 0x19) == '\0');
  }
  if ((puVar5 != (undefined8 *)*param_1) && (iVar2 = FUN_18048cbc0(*param_2,puVar5[4]), -1 < iVar2))
  {
    return puVar5 + 5;
  }
  local_res8 = param_2;
  lVar3 = FUN_1805730d0(param_1);
  FUN_180573110(param_1,&local_res8,puVar5,lVar3 + 0x20,lVar3);
  return local_res8 + 5;
}



############ FUN_ 1813bb6b0 size=269 ############

void FUN_1813bb6b0(longlong param_1,float *param_2)

{
  int iVar1;
  int iVar2;
  
  iVar2 = SUB84((double)(param_2[1] * DAT_1824c3c58 * param_2[2]) + DAT_1824c4520,0);
  if (iVar2 < 1) {
    iVar2 = 1;
  }
  if ((iVar2 != *(int *)(param_1 + 100)) || (NAN(*param_2))) {
    *(int *)(param_1 + 100) = iVar2;
    *(int *)(param_1 + 0x68) = iVar2;
    FUN_180534840(param_1 + 0x78,iVar2);
    if (1 < iVar2) {
      FUN_180557920(*(undefined8 *)(param_1 + 0x78),*param_2,0,DAT_1824c3ea4,
                    *(int *)(param_1 + 100) + -1);
    }
    iVar2 = *(int *)(param_1 + 100) + -1;
    if (-1 < iVar2) {
      iVar1 = *(int *)(param_1 + 0x84);
      if (iVar1 <= iVar2) {
        if (*(int *)(param_1 + 0x80) < iVar1 + 1) {
          FUN_1804af790(param_1 + 0x78,iVar1 + 9 + (iVar1 + 1) / 2 & 0xfffffff8);
        }
        iVar2 = *(int *)(param_1 + 0x84);
        *(int *)(param_1 + 0x84) = iVar2 + 1;
      }
      *(undefined4 *)(*(longlong *)(param_1 + 0x78) + (longlong)iVar2 * 4) = 0x3f800000;
    }
  }
  return;
}



############ FUN_ 181406d20 size=837 ############

void FUN_181406d20(longlong param_1,undefined8 param_2)

{
  longlong *plVar1;
  uint uVar2;
  char cVar3;
  undefined4 uVar4;
  undefined8 uVar5;
  undefined8 *puVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined8 *puVar10;
  undefined8 *puVar11;
  undefined4 **ppuVar12;
  longlong lVar13;
  uint *puVar14;
  undefined8 *puVar15;
  undefined8 *puVar16;
  undefined4 *local_res18;
  longlong local_res20;
  longlong local_108;
  undefined8 local_100;
  longlong local_f8;
  undefined4 *local_e8;
  undefined4 local_e0;
  undefined8 local_d8;
  undefined8 uStack_d0;
  undefined4 *local_c8;
  undefined4 local_c0;
  undefined8 local_b8;
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_a0;
  undefined4 *local_98;
  undefined4 *local_90;
  undefined8 local_88;
  longlong local_80;
  undefined **local_78;
  undefined4 local_70;
  undefined4 uStack_6c;
  undefined4 uStack_68;
  undefined4 uStack_64;
  undefined ***local_40;
  
  local_b8 = 0xfffffffffffffffe;
  FUN_18049c9e0();
  puVar10 = *(undefined8 **)(param_1 + 0x168);
  puVar11 = (undefined8 *)puVar10[1];
  cVar3 = *(char *)((longlong)puVar11 + 0x19);
  puVar6 = puVar10;
  puVar15 = puVar11;
  while (cVar3 == '\0') {
    uVar5 = puVar15[4];
    local_b0 = uVar5;
    iVar8 = FUN_18048cbc0(uVar5,local_108);
    if (iVar8 < 0) {
      puVar16 = (undefined8 *)puVar15[2];
      puVar15 = puVar6;
    }
    else {
      if ((*(char *)((longlong)puVar10 + 0x19) != '\0') &&
         (local_a8 = uVar5, iVar8 = FUN_18048cbc0(local_108,uVar5), iVar8 < 0)) {
        puVar10 = puVar15;
      }
      puVar16 = (undefined8 *)*puVar15;
    }
    puVar6 = puVar15;
    puVar15 = puVar16;
    cVar3 = *(char *)((longlong)puVar16 + 0x19);
  }
  if (*(char *)((longlong)puVar10 + 0x19) == '\0') {
    puVar11 = (undefined8 *)*puVar10;
  }
  cVar3 = *(char *)((longlong)puVar11 + 0x19);
  while (cVar3 == '\0') {
    local_a0 = puVar11[4];
    iVar8 = FUN_18048cbc0();
    if (iVar8 < 0) {
      puVar15 = (undefined8 *)*puVar11;
      puVar10 = puVar11;
    }
    else {
      puVar15 = (undefined8 *)puVar11[2];
    }
    puVar11 = puVar15;
    cVar3 = *(char *)((longlong)puVar15 + 0x19);
  }
  lVar13 = 0;
  while (puVar6 != puVar10) {
    lVar13 = lVar13 + 1;
    puVar11 = (undefined8 *)puVar6[2];
    if (*(char *)((longlong)puVar11 + 0x19) == '\0') {
      cVar3 = *(char *)((longlong)*puVar11 + 0x19);
      puVar6 = puVar11;
      puVar11 = (undefined8 *)*puVar11;
      while (cVar3 == '\0') {
        cVar3 = *(char *)((longlong)*puVar11 + 0x19);
        puVar6 = puVar11;
        puVar11 = (undefined8 *)*puVar11;
      }
    }
    else {
      cVar3 = *(char *)((longlong)puVar6[1] + 0x19);
      puVar15 = (undefined8 *)puVar6[1];
      puVar11 = puVar6;
      while ((puVar6 = puVar15, cVar3 == '\0' && (puVar11 == (undefined8 *)puVar6[2]))) {
        cVar3 = *(char *)((longlong)puVar6[1] + 0x19);
        puVar15 = (undefined8 *)puVar6[1];
        puVar11 = puVar6;
      }
    }
  }
  puVar14 = (uint *)(local_108 + -0x10);
  if ((*puVar14 & 0x30000000) == 0) {
    LOCK();
    uVar2 = *puVar14;
    *puVar14 = *puVar14 - 1;
    UNLOCK();
    if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar14);
    }
  }
  if (lVar13 != 0) {
    return;
  }
  puVar9 = (undefined4 *)FUN_1811316e0(0x48);
  local_res18 = *(undefined4 **)(param_1 + 0x188);
  uVar4 = *(undefined4 *)(param_1 + 400);
  *puVar9 = 0x3f800000;
  *(undefined1 **)(puVar9 + 2) = &DAT_1821dbf98;
  plVar1 = (longlong *)(puVar9 + 4);
  *plVar1 = 0;
  puVar7 = puVar9 + 6;
  *puVar7 = 0x3f800000;
  local_c8 = local_res18;
  local_c0 = uVar4;
  local_98 = puVar9;
  InitializeCriticalSection((LPCRITICAL_SECTION)(puVar9 + 7));
  local_d8 = param_1 + 0x58;
  uStack_d0 = puVar9;
  local_90 = puVar7;
  local_88 = FUN_1811316e0(0x88);
  local_e8 = local_res18;
  local_78 = std::_Func_impl_no_alloc<<lambda_a82580d2ec5bbe7e3c208454bceab682>,void,float>::vftable
  ;
  local_70 = (undefined4)local_d8;
  uStack_6c = local_d8._4_4_;
  uStack_68 = (undefined4)uStack_d0;
  uStack_64 = uStack_d0._4_4_;
  local_40 = &local_78;
  local_e0 = uVar4;
  puVar10 = (undefined8 *)FUN_1813bb890(local_88,puVar7,puVar9,&local_78,&local_e8);
  if (plVar1 == &local_80) {
    if (puVar10 == (undefined8 *)0x0) goto LAB_181406f90;
    puVar11 = (undefined8 *)*puVar10;
  }
  else {
    puVar6 = (undefined8 *)*plVar1;
    *plVar1 = (longlong)puVar10;
    if (puVar6 == (undefined8 *)0x0) goto LAB_181406f90;
    puVar11 = (undefined8 *)*puVar6;
    puVar10 = puVar6;
  }
  (*(code *)*puVar11)(puVar10,1);
LAB_181406f90:
  local_res18 = puVar9;
  FUN_18049c9e0(&local_100,param_2);
  local_f8 = *(longlong *)(puVar9 + 2);
  *(undefined8 *)(puVar9 + 2) = local_100;
  puVar14 = (uint *)(local_f8 + -0x10);
  if ((*puVar14 & 0x30000000) == 0) {
    LOCK();
    uVar2 = *puVar14;
    *puVar14 = *puVar14 - 1;
    UNLOCK();
    if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar14);
    }
  }
  FUN_18049c9e0(&local_res20,param_2);
  ppuVar12 = (undefined4 **)FUN_1805714d0(param_1 + 0x168,&local_res20);
  if (ppuVar12 != &local_res18) {
    local_res18 = (undefined4 *)0x0;
    puVar7 = *ppuVar12;
    *ppuVar12 = puVar9;
    if (puVar7 != (undefined4 *)0x0) {
      FUN_18056e160();
    }
  }
  puVar14 = (uint *)(local_res20 + -0x10);
  if ((*puVar14 & 0x30000000) == 0) {
    LOCK();
    uVar2 = *puVar14;
    *puVar14 = *puVar14 - 1;
    UNLOCK();
    if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar14);
    }
  }
  if (local_res18 != (undefined4 *)0x0) {
    FUN_18056e160();
  }
  return;
}



############ FUN_ 180c479c0 size=935 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180c479c0(int *param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  undefined8 uVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  uint *puVar11;
  longlong lVar12;
  bool bVar13;
  undefined1 local_158 [32];
  undefined4 local_138;
  undefined *local_130;
  undefined *local_128;
  int local_120;
  uint *local_118;
  undefined4 local_108 [4];
  undefined1 local_f8 [144];
  uint local_68;
  uint local_28 [6];
  ulonglong local_10;
  
  local_10 = DAT_182615970 ^ (ulonglong)local_158;
  uVar9 = param_1[3] ^ 0x724d0b9e;
  uVar6 = param_1[1] + 0xf2e4e3bf;
  uVar3 = param_1[2] + 0x2e21e090U >> 2;
  uVar7 = uVar3 | param_1[2] << 0x1e;
  uVar4 = uVar9 ^ *param_1 + 0xd91241f5U;
  uVar1 = uVar4 & 0x55555555 ^ uVar9;
  uVar2 = uVar1 >> 0x15 | uVar1 << 0xb;
  uVar9 = uVar9 ^ uVar4 & 0xaaaaaaaa;
  uVar10 = uVar9 >> 5 | uVar9 << 0x1b;
  uVar4 = ~((uVar2 << 2 | (uVar1 & 0x1fffff) >> 0x13) & 0x99999999 |
           (uVar2 >> 2 | (uVar1 >> 0x15) << 0x1e) & 0x66666666);
  uVar7 = ~((uVar7 >> 8 | uVar3 << 0x18) & 0xdd22dd22 | (uVar3 << 8 | uVar7 >> 0x18) & 0x22dd22dd);
  uVar3 = ~((uVar6 & 0x3fffffff) >> 2 & 0xf0f0f0f0 | (uVar6 * 4 | uVar6 >> 0x1e) << 0x1c |
           (uVar6 * 4 & 0xf0f0f0) << 4 | (uVar6 & 0x3fffffff) >> 0x1a) ^ uVar4;
  uVar1 = uVar3 & 0x8ba8afcf ^ uVar4;
  uVar6 = uVar4 ^ uVar3 & 0x74575030;
  uVar2 = ~((uVar10 >> 2 | (uVar9 >> 5) << 0x1e) & 0x99999999 |
           (uVar10 << 2 | (uVar9 & 0x1f) >> 3) & 0x66666666);
  uVar3 = (uVar1 >> 6 ^ uVar1) >> 2 & 3;
  uVar9 = (uVar6 >> 0xf ^ uVar6) & 0x7fff;
  uVar1 = (uVar3 << 6 | uVar3) << 2 ^ uVar1;
  uVar3 = (uVar7 >> 0x16 ^ uVar7) >> 5 & 3;
  uVar10 = uVar7 ^ (uVar3 << 0x16 | uVar3) << 5 ^ uVar1;
  uVar3 = (uVar2 >> 0x14 ^ uVar2) >> 3 & 0x1ff;
  uVar7 = uVar1 ^ uVar10 & 0xf0f0f0f0;
  uVar1 = uVar10 & 0xf0f0f0f ^ uVar1 ^ uVar7;
  uVar4 = ~(uVar4 >> 0x1f | ((uVar9 << 0xf | uVar9) ^ uVar6) << 1) ^ 0xc5c0c37b;
  uVar4 = (uVar4 << 0x1c | uVar4 >> 4) + 0x91938a3a;
  uVar5 = CONCAT44(uVar2 ^ (uVar3 << 0x14 | uVar3) << 3,uVar1 & 0xd402b50e ^ uVar7);
  LOCK();
  bVar13 = DAT_182670780 == 0;
  if (bVar13) {
    DAT_182670780 = 1;
  }
  UNLOCK();
  while (!bVar13) {
    LOCK();
    bVar13 = DAT_182670780 == 0;
    if (bVar13) {
      DAT_182670780 = 1;
    }
    UNLOCK();
  }
  do {
    uVar3 = FUN_180bd9af0(local_f8,2,uVar5,local_108);
  } while ((uVar3 & 0xfffffffd) == 0);
  if (uVar3 == 1) {
    local_118 = local_28;
    local_128 = &DAT_18260f2c0;
    local_130 = &DAT_18260f2c0;
    local_138 = local_108[0];
    local_120 = ~((uVar4 >> 5 | uVar4 * 0x8000000) ^ 0xdb26c704) - 0xf77c77;
    FUN_180e401e0(local_f8,(&PTR_DAT_18260f198)[local_68],(&PTR_DAT_18260f1c8)[local_68],uVar5);
  }
  LOCK();
  UNLOCK();
  DAT_182670780 = 0;
  puVar11 = local_28;
  lVar12 = 5;
  do {
    iVar8 = 7;
    uVar3 = (*puVar11 >> 0xc | *puVar11 << 0x14) + 0xc0944f2d;
    uVar3 = (uVar3 * 0x40000 | uVar3 >> 0xe) + 0x15d47d29;
    uVar3 = (uVar3 * 0x20 | uVar3 >> 0x1b) + 0x38bb1898;
    uVar2 = ~((uVar3 >> 0x12 | uVar3 * 0x4000) ^ 0x9ef81955);
    *puVar11 = uVar2;
    uVar3 = uVar1 & 0x2bfd4af1 ^ uVar7;
    do {
      uVar4 = uVar2 + 0x3cee7323 >> 0x18 | (uVar2 + 0x3cee7323) * 0x100;
      uVar3 = ((uVar3 ^ 0x3825b93f) << 6 | (uVar3 ^ 0x3825b93f) >> 0x1a) ^ uVar4;
      uVar2 = (uVar3 & 0xa7071cb4 ^ uVar4) + 0xc9051e01;
      uVar3 = (uVar3 & 0x58f8e34b ^ uVar4) + 0xc9a2538;
      uVar6 = (uVar3 * 0x10000 | uVar3 >> 0x10) & 0x96b5694a |
              (uVar3 >> 0x10 | uVar3 * 0x10000) & 0x694a96b5;
      uVar3 = uVar6 ^ ((uVar2 * 0x10 | uVar2 >> 0x1c) & 0xc3c3c3c3 |
                      (uVar2 >> 4 | uVar2 * 0x10000000) & 0x3c3c3c3c);
      uVar4 = ~(uVar3 & 0x848b99fe ^ uVar6);
      uVar3 = ~(uVar6 ^ uVar3 & 0x7b746601) ^ uVar4;
      uVar2 = uVar4 ^ uVar3 & 0xab2cb7b4;
      uVar4 = uVar3 & 0x54d3484b ^ uVar4 ^ uVar2;
      uVar3 = uVar4 & 0xfb102e20 ^ uVar2;
      uVar2 = uVar2 ^ uVar4 & 0x4efd1df;
      iVar8 = iVar8 + -1;
    } while (-1 < iVar8);
    *param_2 = uVar2;
    puVar11 = puVar11 + 1;
    param_2[1] = uVar3;
    param_2 = param_2 + 2;
    lVar12 = lVar12 + -1;
  } while (lVar12 != 0);
}



############ FUN_ 1814139d0 size=706 ############

void FUN_1814139d0(longlong param_1,ulonglong param_2,longlong *param_3)

{
  ulonglong *puVar1;
  longlong *plVar2;
  longlong *plVar3;
  char cVar4;
  int iVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined8 *puVar8;
  ulonglong uVar9;
  longlong lVar10;
  undefined8 *puVar11;
  undefined8 *puVar12;
  longlong *plVar13;
  undefined8 *puVar14;
  ulonglong local_res10;
  ulonglong *local_res18;
  undefined8 *local_res20;
  undefined8 *local_58;
  undefined8 local_50;
  undefined *local_48;
  
  local_50 = 0xfffffffffffffffe;
  local_48 = &DAT_182674140;
  local_res10 = param_2;
  EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
  puVar6 = (undefined8 *)*param_3;
  puVar7 = (undefined8 *)*puVar6;
  while (puVar7 != puVar6) {
    puVar1 = (ulonglong *)((longlong)puVar7 + 0x1c);
    puVar8 = *(undefined8 **)(param_1 + 0x20);
    cVar4 = *(char *)((longlong)puVar8[1] + 0x19);
    puVar14 = puVar8;
    puVar11 = (undefined8 *)puVar8[1];
    while (cVar4 == '\0') {
      if ((ulonglong)puVar11[4] < local_res10) {
        puVar12 = (undefined8 *)puVar11[2];
        puVar11 = puVar14;
      }
      else {
        puVar12 = (undefined8 *)*puVar11;
      }
      puVar14 = puVar11;
      puVar11 = puVar12;
      cVar4 = *(char *)((longlong)puVar12 + 0x19);
    }
    if ((puVar14 == puVar8) || (local_res10 < (ulonglong)puVar14[4])) {
      local_res18 = &local_res10;
      lVar10 = FUN_180572e10(param_1 + 0x20,local_res10,&local_res18);
      FUN_180572e70(param_1 + 0x20,&local_res20,puVar14,lVar10 + 0x20,lVar10);
      puVar14 = local_res20;
    }
    plVar2 = puVar14 + 5;
    puVar8 = (undefined8 *)*plVar2;
    puVar14 = puVar8;
    if (*(char *)((longlong)puVar8[1] + 0x19) == '\0') {
      puVar11 = (undefined8 *)puVar8[1];
      do {
        if (*(int *)((longlong)puVar11 + 0x1c) < *(int *)puVar1) {
          puVar12 = (undefined8 *)puVar11[2];
        }
        else {
          puVar12 = (undefined8 *)*puVar11;
          puVar14 = puVar11;
        }
        puVar11 = puVar12;
      } while (*(char *)((longlong)puVar12 + 0x19) == '\0');
    }
    if ((puVar14 == puVar8) || (*(int *)puVar1 < *(int *)((longlong)puVar14 + 0x1c))) {
      local_res18 = puVar1;
      lVar10 = FUN_1805730a0(plVar2);
      FUN_18056f310(plVar2,&local_58,puVar14,lVar10 + 0x1c,lVar10);
      puVar14 = local_58;
    }
    puVar14[4] = puVar7[4];
    puVar8 = (undefined8 *)puVar7[2];
    if (*(char *)((longlong)puVar8 + 0x19) == '\0') {
      cVar4 = *(char *)((longlong)*puVar8 + 0x19);
      puVar7 = puVar8;
      puVar8 = (undefined8 *)*puVar8;
      while (cVar4 == '\0') {
        cVar4 = *(char *)((longlong)*puVar8 + 0x19);
        puVar7 = puVar8;
        puVar8 = (undefined8 *)*puVar8;
      }
    }
    else {
      cVar4 = *(char *)((longlong)puVar7[1] + 0x19);
      puVar14 = (undefined8 *)puVar7[1];
      puVar8 = puVar7;
      while ((puVar7 = puVar14, cVar4 == '\0' && (puVar8 == (undefined8 *)puVar7[2]))) {
        cVar4 = *(char *)((longlong)puVar7[1] + 0x19);
        puVar14 = (undefined8 *)puVar7[1];
        puVar8 = puVar7;
      }
    }
  }
  LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
  uVar9 = local_res10;
  if (local_res10 != 0) {
    if (param_1 != 0) {
      plVar2 = (longlong *)(local_res10 + 0x80);
      plVar13 = (longlong *)*plVar2;
      iVar5 = *(int *)(local_res10 + 0x8c);
      plVar3 = plVar13 + iVar5;
      for (; plVar13 != plVar3; plVar13 = plVar13 + 1) {
        if (param_1 == *plVar13) goto LAB_181413bf7;
      }
      if (*(int *)(local_res10 + 0x88) < iVar5 + 1) {
        FUN_18047cb30(plVar2,iVar5 + 9 + (iVar5 + 1) / 2 & 0xfffffff8);
      }
      iVar5 = *(int *)(uVar9 + 0x8c);
      *(int *)(uVar9 + 0x8c) = iVar5 + 1;
      *(longlong *)(*plVar2 + (longlong)iVar5 * 8) = param_1;
    }
LAB_181413bf7:
    puVar6 = (undefined8 *)*param_3;
    puVar7 = (undefined8 *)*puVar6;
    while (puVar7 != puVar6) {
      FUN_1813eefa0(param_1,(longlong)puVar7 + 0x1c,puVar7 + 4,local_res10);
      puVar8 = (undefined8 *)puVar7[2];
      if (*(char *)((longlong)puVar8 + 0x19) == '\0') {
        cVar4 = *(char *)((longlong)*puVar8 + 0x19);
        puVar7 = puVar8;
        puVar8 = (undefined8 *)*puVar8;
        while (cVar4 == '\0') {
          cVar4 = *(char *)((longlong)*puVar8 + 0x19);
          puVar7 = puVar8;
          puVar8 = (undefined8 *)*puVar8;
        }
      }
      else {
        cVar4 = *(char *)((longlong)puVar7[1] + 0x19);
        puVar14 = (undefined8 *)puVar7[1];
        puVar8 = puVar7;
        while ((puVar7 = puVar14, cVar4 == '\0' && (puVar8 == (undefined8 *)puVar7[2]))) {
          cVar4 = *(char *)((longlong)puVar7[1] + 0x19);
          puVar14 = (undefined8 *)puVar7[1];
          puVar8 = puVar7;
        }
      }
    }
  }
  return;
}



############ FUN_ 18056a290 size=35 ############

undefined8 * FUN_18056a290(undefined8 *param_1)

{
  undefined8 uVar1;
  
  *param_1 = 0;
  param_1[1] = 0;
  uVar1 = FUN_18048c850();
  *param_1 = uVar1;
  return param_1;
}



############ FUN_ 180568e40 size=127 ############

void FUN_180568e40(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  void *_Memory;
  
  lVar1 = *param_1;
  _Memory = *(void **)(lVar1 + 8);
  if (*(char *)((longlong)_Memory + 0x19) == '\0') {
    FUN_18056b2f0(param_1,*(undefined8 *)((longlong)_Memory + 0x10),param_3,param_4,
                  0xfffffffffffffffe);
                    /* WARNING: Subroutine does not return */
    free(_Memory);
  }
  *(longlong *)(*param_1 + 8) = lVar1;
  *(longlong *)*param_1 = lVar1;
  *(longlong *)(*param_1 + 0x10) = lVar1;
  param_1[1] = 0;
  return;
}



############ FUN_ 18056d400 size=103 ############

void FUN_18056d400(undefined8 *param_1,longlong param_2,longlong param_3)

{
  undefined8 uVar1;
  longlong lVar2;
  undefined1 local_res10 [8];
  
  for (; param_2 != param_3; param_2 = param_2 + 0xc) {
    uVar1 = *param_1;
    lVar2 = FUN_18056f2e0(param_1,param_2);
    FUN_18056f310(param_1,local_res10,uVar1,lVar2 + 0x1c,lVar2);
  }
  return;
}



############ FUN_ 1813efd60 size=131 ############

undefined8 * FUN_1813efd60(undefined8 *param_1,int param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  
  uVar1 = 0xfffffffffffffffe;
  EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
  if ((ulonglong)(longlong)param_2 < (ulonglong)(DAT_182674298 - DAT_182674290 >> 3)) {
    *param_1 = *(undefined8 *)(DAT_182674290 + (longlong)param_2 * 8);
  }
  else {
    FUN_18140e230(param_1,DAT_18248db80,param_3,param_4,uVar1);
  }
  LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
  return param_1;
}



############ FUN_ 180529aa0 size=380 ############

void FUN_180529aa0(undefined8 *param_1)

{
  *param_1 = SpectralProcessor<float,8,2>::vftable;
  if ((0 < *(int *)(param_1 + 0x77)) && (param_1[0x76] != 0)) {
    FUN_1800010c0();
  }
  param_1[0x76] = 0;
  *(undefined4 *)(param_1 + 0x77) = 0;
  if ((0 < *(int *)(param_1 + 0x75)) && (param_1[0x74] != 0)) {
    FUN_1800010c0();
  }
  param_1[0x74] = 0;
  *(undefined4 *)(param_1 + 0x75) = 0;
  if ((0 < *(int *)(param_1 + 0x73)) && (param_1[0x72] != 0)) {
    FUN_1800010c0();
  }
  param_1[0x72] = 0;
  *(undefined4 *)(param_1 + 0x73) = 0;
  _eh_vector_destructor_iterator_(param_1 + 0x6c,0x10,2,FUN_18052e220);
  if ((0 < *(int *)(param_1 + 0x6b)) && (param_1[0x6a] != 0)) {
    FUN_1800010c0();
  }
  param_1[0x6a] = 0;
  *(undefined4 *)(param_1 + 0x6b) = 0;
  if ((0 < *(int *)(param_1 + 0x69)) && (param_1[0x68] != 0)) {
    FUN_1800010c0();
  }
  param_1[0x68] = 0;
  *(undefined4 *)(param_1 + 0x69) = 0;
  _eh_vector_destructor_iterator_(param_1 + 0x58,0x40,2,FUN_18052bcb0);
  _eh_vector_destructor_iterator_(param_1 + 0x48,0x40,2,FUN_18052bcb0);
  _eh_vector_destructor_iterator_(param_1 + 0x38,0x40,2,FUN_18052bcb0);
  FUN_18052dd30(param_1 + 0xc);
  *param_1 = AudioProcessingModule<float,2>::vftable;
  *(undefined4 *)((longlong)param_1 + 0x54) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[9]);
}



############ FUN_ 18052c910 size=232 ############

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

void FUN_18052c910(undefined8 *param_1)

{
  uint uVar1;
  undefined8 *puVar2;
  int iVar3;
  uint *_Memory;
  
  *param_1 = CloudyAudioProcessor<Soothe2ModuleBase<float,2>,Soothe2ModuleDecryptor,ParameterStates,float>
             ::vftable;
  param_1[0x29] =
       CloudyAudioProcessor<Soothe2ModuleBase<float,2>,Soothe2ModuleDecryptor,ParameterStates,float>
       ::vftable;
  param_1[0x2a] =
       CloudyAudioProcessor<Soothe2ModuleBase<float,2>,Soothe2ModuleDecryptor,ParameterStates,float>
       ::vftable;
  FUN_181252ea0();
  FUN_18113eab0();
  iVar3 = _Mtx_lock(&DAT_18267b100);
  if (iVar3 != 0) {
    std::_Throw_C_error(iVar3);
  }
  _DAT_18267b1a0 = _DAT_18267b1a0 + -1;
  FUN_1811497a0();
  iVar3 = _Mtx_unlock(&DAT_18267b100);
  if (iVar3 != 0) {
    std::_Throw_C_error(iVar3);
  }
  FUN_18120c7f0();
  _Memory = (uint *)(param_1[0xb9] + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  puVar2 = (undefined8 *)param_1[0xb7];
  if (puVar2 != (undefined8 *)0x0) {
    (**(code **)*puVar2)(puVar2,1);
  }
  *(undefined4 *)((longlong)param_1 + 0x5ac) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[0xb4]);
}



############ FUN_ 181353210 size=328 ############

/* WARNING: Removing unreachable block (ram,0x000181353328) */

void FUN_181353210(undefined8 param_1)

{
  uint uVar1;
  longlong unaff_RDI;
  undefined1 auStack_98 [48];
  undefined8 local_68;
  undefined4 local_5c;
  uint local_58;
  undefined8 local_50;
  ulonglong local_30;
  
  local_30 = DAT_182615970 ^ (ulonglong)auStack_98;
  uVar1 = (uint)&stack0x00000000 & 0x13ff;
  uVar1 = ((uVar1 + 1) * uVar1 + 7) % 0x51;
  uVar1 = (int)(-uVar1 | uVar1) >> 0x1f;
  local_58 = ((int)(-uVar1 | uVar1) >> 0x1f) * -0x4852 ^ 0x45e2;
  local_5c = 0x2a0;
  local_68 = param_1;
  local_50 = param_1;
  FUN_181353cc6();
  FUN_18135335c();
                    /* WARNING: Could not recover jumptable at 0x00018135346f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(unaff_RDI + 0x76408))();
  return;
}



############ FUN_ 18115d300 size=958 ############

/* WARNING: Removing unreachable block (ram,0x00018115d455) */
/* WARNING: Removing unreachable block (ram,0x00018115d387) */

longlong FUN_18115d300(undefined8 param_1,undefined8 param_2)

{
  longlong lVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  undefined1 auStack_1d8 [48];
  undefined *local_1a8;
  undefined8 local_1a0;
  undefined *local_198;
  undefined8 local_190;
  undefined8 local_168;
  undefined4 local_150;
  uint local_14c;
  undefined8 local_148;
  undefined8 local_c0;
  ulonglong local_48;
  
  local_c0 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_1d8;
  uVar2 = (uint)&stack0x00000000 & 0x7aff;
  iVar3 = uVar2 * uVar2 + 1;
  uVar4 = (iVar3 >> 4) + (iVar3 >> 1) + iVar3 * 0x24924924 >> 0x1d;
  uVar2 = (uint)&stack0x00000000 & 0x5bff;
  iVar3 = uVar2 * uVar2 + 1;
  uVar2 = (iVar3 >> 4) + (iVar3 >> 1) + iVar3 * 0x24924924 >> 0x1d;
  uVar2 = (int)(uVar2 - 7) >> 0x1f & uVar2 | (int)(uVar4 - 7) >> 0x1f & uVar4;
  local_14c = ((int)(-uVar2 | uVar2) >> 0x1f) * -0xf094 ^ 0xf974;
  local_150 = 0xa30;
  local_1a0 = 0;
  local_190 = 0xd24;
  local_1a8 = &DAT_180bab7d8;
  local_198 = &DAT_180bac4fc;
  local_168 = param_1;
  local_148 = param_2;
  lVar1 = FUN_18115f1b4();
  return (-lVar1 ^ 0xffffffffffffffffU) + 1;
}



############ FUN_ 1811fe4a0 size=290 ############

void FUN_1811fe4a0(LPCRITICAL_SECTION param_1,undefined8 param_2,undefined1 param_3)

{
  uint uVar1;
  undefined8 uVar2;
  uint *puVar3;
  void *local_res8;
  undefined1 *local_res20;
  longlong local_28;
  longlong local_20 [2];
  LPCRITICAL_SECTION local_10;
  
  local_20[1] = 0xfffffffffffffffe;
  local_10 = param_1;
  EnterCriticalSection(param_1);
  FUN_1811fc470(param_1,local_20,param_3);
  local_res20 = &DAT_1821dbf98;
  (**(code **)(*(longlong *)param_1[2].SpinCount + 0x10))
            ((longlong *)param_1[2].SpinCount,&local_res8,&local_res20);
  uVar2 = FUN_18122bf10();
  FUN_18122c1b0(uVar2,&local_28,&DAT_182673950);
  FUN_181246b70(local_res8,&local_28,local_20);
  puVar3 = (uint *)(local_28 + -0x10);
  if ((*puVar3 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar3;
    *puVar3 = *puVar3 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar3);
    }
  }
  FUN_1812c29a0(local_res8,param_2);
  if (local_res8 != (void *)0x0) {
    FUN_1812472e0(local_res8);
                    /* WARNING: Subroutine does not return */
    free(local_res8);
  }
  puVar3 = (uint *)(local_20[0] + -0x10);
  if ((*puVar3 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar3;
    *puVar3 = *puVar3 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar3);
    }
  }
  LeaveCriticalSection(param_1);
  return;
}



############ FUN_ 1811fc760 size=3247 ############

/* WARNING: Instruction at (ram,0x0001811fd3b5) overlaps instruction at (ram,0x0001811fd3b1)
    */
/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x0001811fc7f5) */
/* WARNING: Removing unreachable block (ram,0x0001811fc8d3) */

void FUN_1811fc760(LPCRITICAL_SECTION param_1,undefined8 param_2,undefined8 param_3)

{
  longlong lVar1;
  undefined8 uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  int *piVar6;
  ulonglong uVar7;
  uint *puVar8;
  uint *puVar9;
  int iVar10;
  uint uVar11;
  undefined4 *puVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  uint uVar15;
  uint uVar16;
  longlong *plVar17;
  undefined1 (*pauVar18) [16];
  uint uVar19;
  uint uVar20;
  bool bVar21;
  undefined1 unaff_XMM14 [16];
  int unaff_retaddr;
  ulonglong uStack_1c8;
  ulonglong uStack_1c0;
  undefined1 auStack_1b8 [32];
  undefined8 local_198;
  undefined4 local_18c;
  uint local_188;
  undefined8 local_180;
  undefined8 local_178;
  int local_170;
  uint local_16c;
  uint local_168;
  uint local_164;
  undefined4 local_150;
  uint local_14c;
  uint local_148;
  undefined4 local_144;
  undefined8 local_140;
  undefined4 local_138;
  undefined8 local_130;
  LPCRITICAL_SECTION local_110;
  longlong local_108 [2];
  uint local_f8 [2];
  longlong local_f0;
  code *local_e8;
  undefined4 local_e0;
  undefined4 local_dc;
  LPCRITICAL_SECTION local_d8;
  uint local_d0;
  uint local_cc;
  uint local_c8;
  uint local_c4;
  undefined4 local_c0;
  undefined4 local_bc;
  undefined8 local_b8;
  uint local_b0;
  uint local_ac;
  uint local_a8;
  uint local_a4;
  undefined1 local_68 [32];
  uint local_48;
  uint local_44;
  ulonglong local_40;
  
  local_b8 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_1b8;
  uVar4 = (uint)&stack0x00000000;
  local_144 = 0x980;
  uVar3 = uVar4 & 0x1bf;
  iVar10 = (uVar3 + 2) * (uVar3 + 1) * uVar3;
  if ((((iVar10 >> 1) - (iVar10 >> 3)) + iVar10 * 0x55555555 >> 0x1e & 0x68U) == 0) {
    if (((ulonglong)&stack0x00000000 & 0xf80) == 0) {
      iVar10 = (uVar4 & 0x76ff) * (uVar4 & 0x76ff) + 1;
      uVar3 = (iVar10 >> 4) + (iVar10 >> 1) + iVar10 * 0x24924924 >> 0x1d;
      uVar3 = (int)(uVar3 - 7) >> 0x1f & uVar3;
    }
    else {
      uVar3 = (((uVar4 & 0x10ff) + 1) * (uVar4 & 0x10ff) + 7) % 0x51;
    }
    local_164 = ((int)(-uVar3 | uVar3) >> 0x1f) * -0x85c9;
  }
  else {
    local_164 = 0x85c9;
  }
  local_164 = local_164 ^ 0x8589;
  uStack_1c0 = 0x1811fc8ff;
  local_180 = param_2;
  local_130 = param_3;
  local_110 = param_1;
  local_d8 = param_1;
  EnterCriticalSection(param_1);
  do {
    uStack_1c0 = 0x1811fc90a;
    FUN_1811fde5a(0xe21c);
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  do {
    local_138 = 0x587a9850;
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  do {
    bVar21 = false;
    uVar13 = 0;
    uStack_1c0 = 0x1811fc9cf;
    FUN_1811fb671();
    if ((!bVar21) && ((uVar13 & 0xc0) != 0)) {
                    /* WARNING: Bad instruction - Truncating control flow here */
      halt_baddata();
    }
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  local_18c = 0;
  do {
    plVar17 = local_108;
    puVar12 = &local_dc;
    piVar6 = &local_170;
    uStack_1c0 = 0x1811fca32;
    FUN_1811fab5b();
    *piVar6 = -0x728e2044;
    *puVar12 = 0x29;
    *plVar17 = 0x1811fca37;
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar3 = local_170 + 0x9f2404cb;
  uVar3 = (uVar3 >> 4 | uVar3 * 0x10000000) & 0xe1e1e1e1 |
          (uVar3 * 0x10 | uVar3 >> 0x1c) & 0x1e1e1e1e;
  uVar3 = ((uVar3 << 4 | uVar3 >> 0x1c) & 0x87878787 | (uVar3 >> 4 | uVar3 << 0x1c) & 0x78787878) +
          0x4c4027a0;
  uVar3 = (uVar3 * 0x1000 | uVar3 >> 0x14) + 0x1876c4f3;
  uVar3 = (uVar3 * 0x200000 | uVar3 >> 0xb) + 0x821b153f;
  do {
    local_e0 = 8;
    local_108[1] = 0x1811fcaf7;
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  local_108[0] = (int)(uVar3 * 4 & 0xcccccccc | uVar3 >> 2 & 0x33333333) + local_108[0];
  local_170 = 0;
  local_150 = 0;
  uVar13 = (ulonglong)((uint)((ulonglong)dvs_0xfd072124_mfort6317_ >> 0x1c) & 0x88200e9) +
           0x554987a8992bb71a + *(longlong *)(local_108[0] + 4);
  uVar13 = ((uVar13 >> 0x10 | uVar13 << 0x30) & 0xeea61159eea61159 |
           (uVar13 * 0x10000 | uVar13 >> 0x30) & 0x1159eea61159eea6) ^ 0x82f3d1143c75518e;
  uVar13 = (uVar13 << 0x3a | uVar13 >> 6) ^ 0xdae712cd3d6c499d;
  uVar13 = ((uVar13 >> 0x10 | uVar13 << 0x30) & 0x95ba6a4595ba6a45 |
           (uVar13 << 0x10 | uVar13 >> 0x30) & 0x6a4595ba6a4595ba) + 0xc6a73e6f71ec9cab;
  uVar7 = uVar13 * 4 & 0xcccccccccccccccc | uVar13 >> 2 & 0x3333333333333333;
  uVar13 = (uVar7 >> 2 | (uVar13 >> 2) << 0x3e) & 0x9999999999999999 |
           (uVar7 << 2 | (uVar13 & 0x3fffffffffffffff) >> 0x3c) & 0x6666666666666666;
  *(ulonglong *)(local_108[0] + 4) = uVar13;
  dvs_0xfd072124_mfort6317_ =
       (uint *)((longlong)dvs_0xfd072124_mfort6317_ + (uVar13 >> 0x1d & 0x8100c000));
  local_188 = (uint)((ulonglong)*(undefined8 *)(local_108[0] + 4) >> 0x20) & 0x7fffffff;
  local_16c = (uint)(*(ulonglong *)(local_108[0] + 4) >> 0x1d) ^ 0xc27112f9;
  uVar13 = *(ulonglong *)(local_108[0] + 4) ^ 0xbbfc7104dceb8f33;
  local_c0 = 0xec33faa3;
  local_bc = 0x531bcd36;
  uVar3 = (uint)(uVar13 >> 0x20);
  uVar20 = (uVar3 ^ 0x1f906bf5) & 0x66666666 ^ uVar3;
  uVar7 = (ulonglong)uVar20;
  uVar3 = (uVar3 ^ 0x1f906bf5) & 0x99999999 ^ uVar3;
  uVar4 = (uVar3 >> 2 ^ uVar3) >> 4 & 1;
  uVar5 = (local_16c >> 0x11 ^ local_16c) & 0x3fff;
  uVar11 = ((uint)(uVar13 >> 0xc) & 0xfffff ^ (uint)uVar13) >> 9 & 0x7f;
  uVar16 = (uVar20 >> 0xb ^ uVar20) & 3;
  uVar15 = ~((uVar4 * 4 | uVar4) << 4 ^ uVar3);
  uVar3 = ~((uVar5 << 0x11 | uVar5) ^ local_16c);
  uVar16 = ~((uVar16 << 0xb | uVar16) ^ uVar20);
  uVar4 = ~((uVar11 << 0xc | uVar11) << 9 ^ (uint)uVar13) ^ uVar3;
  uVar19 = uVar4 & 0xe074d180 ^ uVar3;
  uVar3 = uVar4 & 0x1f8b2e7f ^ uVar3;
  uVar5 = (uVar15 >> 0x11 ^ uVar15) & 0xff;
  uVar20 = (uVar19 >> 6 ^ uVar19) >> 0x11 & 0xf;
  pauVar18 = (undefined1 (*) [16])(ulonglong)uVar20;
  uVar4 = (uVar3 >> 6 ^ uVar3) & 0xf;
  uVar3 = (uVar4 << 6 | uVar4) ^ uVar3;
  uVar4 = (uVar16 >> 0x11 ^ uVar16) & 0x1ff;
  uVar4 = uVar16 ^ (uVar4 << 0x11 | uVar4) ^ uVar3;
  uVar11 = uVar4 & 0x5b705ebb ^ uVar3;
  uVar16 = uVar11 ^ uVar15 ^ (uVar5 << 0x11 | uVar5);
  uVar15 = ~(uVar16 & 0xaaaaaaaa ^ uVar11);
  uVar5 = ~((uVar20 << 6 | uVar20) << 0x11 ^ uVar19);
  uVar3 = ~(uVar4 & 0xa48fa144 ^ uVar3);
  uVar4 = ~(uVar16 & 0x55555555 ^ uVar11) ^ uVar3;
  uVar11 = uVar4 & 0x7f807f80 ^ uVar3;
  uVar3 = uVar4 & 0x807f807f ^ uVar3;
  local_140 = 0;
  local_178 = 0x180128db0;
  local_198 = 0x18012adac;
  local_d0 = uVar15;
  local_cc = uVar5;
  local_c8 = uVar11;
  local_c4 = uVar3;
  do {
    puVar9 = local_f8;
    puVar8 = &local_14c;
    uStack_1c0 = 0x1811fcf5e;
    FUN_1811fb900();
    uVar2 = rdtsc();
    uVar4 = (uint)uVar2 ^ (uint)((ulonglong)uVar2 >> 0x20);
    *puVar9 = uVar4;
    *(uint *)-(((ulonglong)puVar8 ^ 0xffffffffffffffff) + 1) =
         (uVar4 * 0x10504 + 0x19030f71) * 0x208082 + 0x92e38490 >> 1;
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  local_14c = local_14c ^ local_188;
  uVar13 = (ulonglong)local_14c;
  if (local_14c < 0x5b05b0) {
    do {
      puVar9 = &local_168;
      uStack_1c0 = 0x1811fd03a;
      FUN_1811fd478();
      *puVar9 = 0xf087664a;
      uStack_1c0 = 0x1811fd05e;
      FUN_1811fd753();
      uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar4 < 0) {
        uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar4 != 0);
    uVar4 = (~local_168 << 0x16 | ~local_168 >> 10) ^ 0x3733a16f;
    uVar4 = ~((uVar4 >> 0x16 | uVar4 << 10) ^ 0x3a10cb83) + 0x3f16583;
    local_168 = (uVar4 * 0x10000000 | uVar4 >> 4) + 0x34abeef1;
    local_b0 = uVar15;
    local_ac = uVar5;
    local_a8 = uVar11;
    local_a4 = uVar3;
    do {
      local_148 = 0xcf11da5;
      uVar7 = 0;
      local_f0 = 0x1811fd0d3;
      uStack_1c0 = 0x1811fd0f2;
      FUN_1811ff1b9();
      uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar3 < 0) {
        uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar3 != 0);
    uVar3 = (local_148 >> 0x12 | local_148 << 0xe) + 0x296894cd;
    uVar3 = ~(uVar3 * 0x40 | uVar3 >> 0x1a) ^ 0x22a1cadc;
    local_148 = uVar3 << 0x1a | uVar3 >> 6;
    uStack_1c0 = 0x1811fd13a;
    (*(code *)((int)local_148 + local_f0))(&local_b0,local_68);
    pauVar18 = (undefined1 (*) [16])(ulonglong)local_48;
    iVar10 = 7;
    do {
      uVar3 = ((uint)((ulonglong)pauVar18 >> 0xc) ^ (uint)pauVar18) >> 2 & 0xfff;
      uVar4 = (local_44 >> 5 ^ local_44) >> 8 & 1;
      uVar3 = (uVar3 << 0xc | uVar3) << 2 ^ (uint)pauVar18;
      uVar5 = (uVar3 >> 0x18 | uVar3 << 8) + 0x6e4157a7;
      uVar11 = (local_44 << 0x1c | ((uVar4 << 5 | uVar4) << 8 ^ local_44) >> 4) + 0x20a786ca;
      uVar3 = (uVar5 >> 0xb ^ uVar5) >> 9 & 0x3ff;
      uVar4 = uVar5 ^ (uVar3 << 0xb | uVar3) << 9;
      uVar3 = (uVar11 >> 0x11 ^ uVar11) >> 0xb & 3;
      uVar11 = uVar11 ^ (uVar3 << 0x11 | uVar3) << 0xb;
      uVar5 = (uVar4 >> 4 | uVar5 * 0x10000000) & 0x78787878;
      uVar3 = (uVar4 << 4 | uVar4 >> 0x1c) & 0x87878787 | uVar5;
      uVar4 = (uVar11 >> 0x10 | uVar11 << 0x10) & 0xa3635c9c |
              (uVar11 << 0x10 | uVar11 >> 0x10) & 0x5c9ca363;
      uVar4 = (uVar4 << 0x12 | uVar4 >> 0xe) + 0x607d5440;
      uVar11 = uVar4 ^ (uVar3 << 0x12 | uVar3 >> 0xe) + 0x270a0bab;
      uVar3 = uVar11 & 0x3c3c3c3c ^ uVar4;
      uVar4 = uVar11 & 0xc3c3c3c3 ^ uVar4 ^ uVar3;
      local_44 = uVar4 & 0x8cbe5e76 ^ uVar3;
      uVar3 = uVar4 & 0x7341a189 ^ uVar3;
      pauVar18 = (undefined1 (*) [16])(ulonglong)uVar3;
      iVar10 = iVar10 + -1;
    } while (-1 < iVar10);
    uVar3 = uVar3 + 0x98c757c6;
    uVar3 = (uVar3 >> 4 | uVar3 * 0x10000000) ^ 0xd005f22a;
    local_44 = (~(~(~(uVar3 >> 0x1e | uVar3 << 2) + 0xf0cf10f9) ^ 0x49546c3e) ^ local_168) +
               local_44;
    uVar13 = (ulonglong)local_44;
    if (local_44 != local_16c) {
      do {
        local_e8 = FUN_180bc28c0;
        uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
        if ((int)uVar3 < 0) {
          uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
        }
      } while (uVar3 != 0);
      uStack_1c0 = 0x1811fd2ec;
      uStack_1c8 = (ulonglong)uVar5;
      FUN_180bc28c0();
      do {
        uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
        if ((int)uVar3 < 0) {
          uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
        }
      } while (uVar3 != 0);
      uVar13 = 0;
    }
  }
  uStack_1c0 = 0x1811fd345;
  FUN_1811fc74f();
  uStack_1c8 = 0;
  uStack_1c0 = uVar7;
                    /* WARNING: Call to offcut address within same function */
  uVar7 = func_0x0001811fd36c();
  if ((uVar7 & 0x400) != 0) {
    *(char *)(uVar13 - 0x39) = *(char *)(uVar13 - 0x39) - (char)uVar13;
    vpshufb_avx(unaff_XMM14,*pauVar18);
  }
  uVar14 = (ulonglong)((int)&uStack_1c8 - 0x38);
  lVar1 = *(longlong *)(uVar14 + 0x38);
  *(longlong *)(uVar14 + 0x38) = lVar1 + 0x165;
  *(longlong *)(uVar14 + 0x30) = lVar1 + 0x942;
  *(longlong *)(uVar14 + 0x28) = lVar1 + 0x74e;
  *(longlong *)(uVar14 + 0x20) = lVar1 + 0x74d;
  *(longlong *)(uVar14 + 0x18) = lVar1 + 0xde52;
  FUN_1811fd479();
  return;
}



############ FUN_ 18052fbd0 size=82 ############

void FUN_18052fbd0(longlong param_1)

{
  char *pcVar1;
  int iVar2;
  
  iVar2 = 0;
  if (0 < *(int *)(param_1 + 0x240084)) {
    pcVar1 = (char *)(param_1 + 0x24008f);
    do {
      if (*pcVar1 != '\0') {
        FUN_1805316e0(param_1,iVar2);
        *pcVar1 = '\0';
      }
      iVar2 = iVar2 + 1;
      pcVar1 = pcVar1 + 1;
    } while (iVar2 < *(int *)(param_1 + 0x240084));
  }
  return;
}



############ FUN_ 18048c4c0 size=141 ############

ulonglong FUN_18048c4c0(ulonglong *param_1,longlong *param_2,int param_3)

{
  uint *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong *plVar4;
  ulonglong uVar5;
  int iVar6;
  
  iVar6 = *(int *)((longlong)param_1 + 0xc) + param_3;
  if ((int)param_1[1] < iVar6) {
    FUN_18048a300(param_1,iVar6 + 8 + iVar6 / 2 & 0xfffffff8);
  }
  uVar5 = *param_1;
  plVar4 = (longlong *)(uVar5 + (longlong)*(int *)((longlong)param_1 + 0xc) * 8);
  iVar6 = param_3;
  while (iVar6 = iVar6 + -1, -1 < iVar6) {
    lVar3 = *param_2;
    *plVar4 = lVar3;
    uVar2 = *(uint *)(lVar3 + -0x10);
    if ((uVar2 & 0x30000000) == 0) {
      LOCK();
      puVar1 = (uint *)(lVar3 + -0x10);
      uVar2 = *puVar1;
      *puVar1 = *puVar1 + 1;
      UNLOCK();
    }
    uVar5 = (ulonglong)uVar2;
    param_2 = param_2 + 1;
    plVar4 = plVar4 + 1;
  }
  *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + param_3;
  return uVar5;
}



############ FUN_ 181371350 size=300 ############

undefined8 FUN_181371350(longlong *param_1)

{
  longlong *plVar1;
  int iVar2;
  
  if (param_1 != (longlong *)0x0) {
    FUN_181390bc0(param_1 + 0x53);
    FUN_18138ffc0(param_1 + 0x43);
    FUN_181392710(param_1 + 0x14);
    if ((param_1[0xd] != 0) && ((int)param_1[8] != 0)) {
      iVar2 = 0;
      if (0 < (int)param_1[8]) {
        do {
          FUN_181388250(param_1[0xd] + (longlong)iVar2 * 0x28);
          FUN_181388560((longlong)iVar2 * 0x20 + param_1[0xe]);
          iVar2 = iVar2 + 1;
        } while (iVar2 < (int)param_1[8]);
      }
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[0xd]);
    }
    if ((void *)param_1[10] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[10]);
    }
    if ((void *)param_1[0xc] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[0xc]);
    }
    if ((void *)param_1[0xb] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[0xb]);
    }
    if ((void *)param_1[9] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[9]);
    }
    plVar1 = param_1 + 4;
    if (plVar1 != (longlong *)0x0) {
      if ((void *)*plVar1 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
        free((void *)*plVar1);
      }
      *plVar1 = 0;
      param_1[5] = 0;
      param_1[6] = 0;
      param_1[7] = 0;
    }
    if ((*param_1 != 0) && ((code *)param_1[0x67] != (code *)0x0)) {
      (*(code *)param_1[0x67])();
    }
    memset(param_1,0,0x348);
  }
  return 0;
}



############ FUN_ 1812b1fe0 size=215 ############

undefined8 FUN_1812b1fe0(undefined8 param_1,int param_2)

{
  if (param_2 == 1) {
    FUN_18124a040(param_1,8);
    return param_1;
  }
  if (param_2 == 2) {
    FUN_18124a040(param_1,6);
    return param_1;
  }
  if (param_2 == 3) {
    FUN_18124a040(param_1,0xe);
    return param_1;
  }
  if (param_2 == 4) {
    FUN_18124a040(param_1,0x66);
    return param_1;
  }
  if (param_2 == 5) {
    FUN_18124a040(param_1,0x6e);
    return param_1;
  }
  if (param_2 == 6) {
    FUN_18124a040(param_1,0x7e);
    return param_1;
  }
  if (param_2 == 7) {
    FUN_18124a040(param_1,0x300c0e);
    return param_1;
  }
  if (param_2 == 8) {
    FUN_18124a040(param_1,0x300c1e);
    return param_1;
  }
  FUN_1812b20c0();
  return param_1;
}



############ FUN_ 1812339a0 size=437 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1812339a0(undefined8 param_1,double param_2,int param_3,char param_4)

{
  uint *puVar1;
  longlong lVar2;
  longlong lVar3;
  ushort uVar4;
  locale *plVar5;
  undefined1 auStack_168 [32];
  undefined8 local_148;
  undefined **local_138 [4];
  longlong *local_118;
  longlong *local_f8;
  undefined4 *local_e0;
  longlong local_c8 [3];
  uint auStack_b0 [2];
  longlong alStack_a8 [10];
  undefined1 local_58 [48];
  ulonglong local_28;
  
  local_148 = 0xfffffffffffffffe;
  local_28 = DAT_182615970 ^ (ulonglong)auStack_168;
  std::basic_streambuf<char,std::char_traits<char>_>::basic_streambuf<char,std::char_traits<char>_>
            ((basic_streambuf<char,std::char_traits<char>_> *)local_138);
  local_138[0] = juce::NumberToStringConverters::StackArrayStream::vftable;
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267afd0) {
    _Init_thread_header(&DAT_18267afd0);
    if (DAT_18267afd0 == -1) {
      plVar5 = std::locale::classic();
      DAT_18267af58 = *(longlong **)(plVar5 + 8);
      (**(code **)(*DAT_18267af58 + 8))();
      atexit(FUN_181a4a770);
      _Init_thread_footer(&DAT_18267afd0);
    }
  }
  *local_118 = (longlong)local_58;
  *local_f8 = (longlong)local_58;
  *local_e0 = 0x30;
  std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_c8,
             (basic_streambuf<char,std::char_traits<char>_> *)local_138,false);
  if (0 < param_3) {
    uVar4 = 0x2000;
    if (param_4 != '\0') {
      uVar4 = 0x1000;
    }
    puVar1 = (uint *)((longlong)auStack_b0 + (longlong)*(int *)(local_c8[0] + 4));
    *puVar1 = *puVar1 | (uint)uVar4;
    *(longlong *)((longlong)alStack_a8 + (longlong)*(int *)(local_c8[0] + 4)) = (longlong)param_3;
  }
  std::basic_ostream<char,std::char_traits<char>_>::operator<<
            ((basic_ostream<char,std::char_traits<char>_> *)local_c8,param_2);
  std::basic_ostream<char,std::char_traits<char>_>::_vbase_destructor_
            ((basic_ostream<char,std::char_traits<char>_> *)local_c8);
  lVar2 = *local_f8;
  lVar3 = *local_118;
  std::basic_streambuf<char,std::char_traits<char>_>::~basic_streambuf<char,std::char_traits<char>_>
            ((basic_streambuf<char,std::char_traits<char>_> *)local_138);
  FUN_180495150(param_1,local_58,lVar2 - lVar3);
}



############ FUN_ 1812a5870 size=38 ############

void FUN_1812a5870(undefined8 *param_1)

{
  *param_1 = juce::ChangeBroadcaster::vftable;
  *(undefined4 *)((longlong)param_1 + 0x2c) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[4]);
}



############ FUN_ 181131c04 size=112 ############

/* Library Function - Single Match
    void __cdecl `eh vector constructor iterator'(void * __ptr64,unsigned __int64,unsigned
   __int64,void (__cdecl*)(void * __ptr64),void (__cdecl*)(void * __ptr64))
   
   Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release */

void __cdecl
_eh_vector_constructor_iterator_
          (void *param_1,__uint64 param_2,__uint64 param_3,_func_void_void_ptr *param_4,
          _func_void_void_ptr *param_5)

{
  __uint64 _Var1;
  
  for (_Var1 = 0; _Var1 != param_3; _Var1 = _Var1 + 1) {
    (*(code *)PTR__guard_dispatch_icall_181bab6b0)(param_1);
    param_1 = (void *)((longlong)param_1 + param_2);
  }
  return;
}



############ FUN_ 18058c630 size=52 ############

void * FUN_18058c630(void *param_1,ulonglong param_2)

{
  FUN_18058b860();
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    free(param_1);
  }
  return param_1;
}



############ FUN_ 180c47d80 size=845 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180c47d80(int *param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  undefined8 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  uint *puVar11;
  longlong lVar12;
  bool bVar13;
  undefined1 local_158 [32];
  undefined4 local_138;
  undefined *local_130;
  undefined *local_128;
  uint local_120;
  uint *local_118;
  undefined4 local_108 [4];
  undefined1 local_f8 [144];
  uint local_68;
  uint local_28 [6];
  ulonglong local_10;
  
  local_10 = DAT_182615970 ^ (ulonglong)local_158;
  uVar1 = param_1[2] + 0x944e4307;
  uVar5 = param_1[3] ^ 0xaa7d1554U ^ uVar1;
  uVar9 = (param_1[1] ^ 0xea2cbcd1U) << 0x1f | (param_1[1] ^ 0xea2cbcd1U) >> 1;
  uVar2 = uVar1 ^ uVar5 & 0x7310039d;
  uVar5 = uVar5 & 0x8ceffc62 ^ uVar1 ^ uVar2;
  uVar1 = *param_1 + 0x439bf8f4U >> 3;
  uVar7 = (*param_1 + 0x439bf8f4U) * 0x20000000 | uVar1;
  uVar3 = uVar5 & 0xddffbe9c ^ uVar2;
  uVar3 = (uVar3 << 0x19 | uVar3 >> 7) ^ uVar9;
  uVar2 = uVar5 & 0x22004163 ^ uVar2;
  uVar6 = uVar2 << 10 | uVar2 >> 0x16;
  uVar1 = ((uVar1 << 4 | uVar7 >> 0x1c) & 0x96969696 | (uVar7 >> 4 | uVar1 << 0x1c) & 0x69696969) +
          0x2938145e;
  uVar7 = (uVar1 >> 0xd | uVar1 * 0x80000) ^ 0x29b4851;
  uVar10 = uVar9 ^ uVar3 & 0xbbb9a4a9;
  uVar1 = uVar3 & 0x44465b56 ^ uVar9 ^ uVar10;
  uVar5 = uVar1 & 0x75a87b8a ^ uVar10;
  uVar3 = ~((uVar7 >> 0xb | uVar7 << 0x15) + 0xf84e1d81) ^ 0xbdd8dfd9;
  uVar10 = uVar10 ^ uVar1 & 0x8a578475;
  uVar1 = ((uVar10 << 8 | uVar10 >> 0x18) & 0x9a659a65 | (uVar10 >> 8 | uVar10 << 0x18) & 0x659a659a
          ) + 0xb12eb7e5;
  uVar5 = ((uVar5 << 0x10 | uVar5 >> 0x10) & 0xc73b38c4 |
          (uVar5 >> 0x10 | uVar5 << 0x10) & 0x38c4c73b) + 0x510855ec ^ uVar1;
  uVar3 = (uVar3 << 0x1b | uVar3 >> 5) + 0x9b28fac8;
  uVar4 = CONCAT44((uVar6 >> 2 & 0xcccccccc | (uVar2 >> 0x16) << 0x1e |
                   (uVar6 & 0xccccccc) << 2 | (uVar2 & 0x3fffff) >> 0x14) + 0x8438c62d,
                   uVar1 ^ uVar5 & 0x9a6c0686);
  LOCK();
  bVar13 = DAT_182670784 == 0;
  if (bVar13) {
    DAT_182670784 = 1;
  }
  UNLOCK();
  while (!bVar13) {
    LOCK();
    bVar13 = DAT_182670784 == 0;
    if (bVar13) {
      DAT_182670784 = 1;
    }
    UNLOCK();
  }
  do {
    uVar2 = FUN_180bd9af0(local_f8,3,uVar4,local_108);
  } while ((uVar2 & 0xfffffffd) == 0);
  if (uVar2 == 1) {
    local_118 = local_28;
    local_128 = &DAT_18260f320;
    local_130 = &DAT_18260f320;
    local_138 = local_108[0];
    local_120 = uVar3 >> 0x1d | uVar3 * 8;
    FUN_180f3a8a0(local_f8,(&PTR_DAT_18260f198)[local_68],(&PTR_DAT_18260f1c8)[local_68],uVar4);
  }
  LOCK();
  UNLOCK();
  DAT_182670784 = 0;
  puVar11 = local_28;
  lVar12 = 5;
  do {
    iVar8 = 7;
    uVar2 = (*puVar11 << 0x1a | *puVar11 >> 6) ^ 0x84f2174f;
    uVar2 = (uVar2 >> 3 | uVar2 << 0x1d) ^ 0x2a035b35;
    uVar2 = ~((uVar2 << 0x1a | uVar2 >> 6) + 0x4aedba70) + 0x37567977;
    uVar3 = uVar2 >> 9 | uVar2 * 0x800000;
    *puVar11 = uVar3;
    uVar2 = uVar5 & 0x6593f979 ^ uVar1;
    do {
      uVar7 = uVar3 << 6 | uVar3 >> 0x1a;
      uVar6 = uVar2 >> 0x16 | uVar2 << 10;
      uVar3 = ((uVar3 & 0x3ffffff) >> 2 | uVar7 << 0x18) & 0xa857a857 |
              (uVar7 << 8 | (uVar3 & 0x3ffffff) >> 0x12) & 0x57a857a8;
      uVar2 = (uVar6 << 0x10 | (uVar2 & 0x3fffff) >> 6) & 0xd65429ab |
              ((uVar2 & 0x3fffff) >> 6 | uVar6 << 0x10) & 0x29abd654;
      uVar3 = (uVar3 << 0x17 | uVar3 >> 9) + 0x8f0959c0;
      uVar2 = (uVar2 >> 0x14 | uVar2 << 0xc) + 0xe6e2d9b0;
      uVar3 = (uVar3 * 8 | uVar3 >> 0x1d) ^ 0x2677a938;
      uVar2 = (uVar2 >> 0xf | uVar2 * 0x20000) + 0xfa0d9ebc;
      uVar3 = (uVar3 << 0xc | uVar3 >> 0x14) + 0x1209966e;
      uVar2 = (uVar2 * 0x20000000 | uVar2 >> 3) + 0x8fc2d11c;
      uVar3 = (uVar3 * 0x10 | uVar3 >> 0x1c) & 0xb4b4b4b4 |
              (uVar3 >> 4 | uVar3 * 0x10000000) & 0x4b4b4b4b;
      uVar2 = (uVar2 >> 8 | uVar2 * 0x1000000) & 0xfa05fa05 |
              (uVar2 * 0x100 | uVar2 >> 0x18) & 0x5fa05fa;
      iVar8 = iVar8 + -1;
    } while (-1 < iVar8);
    *param_2 = uVar3;
    puVar11 = puVar11 + 1;
    param_2[1] = uVar2;
    param_2 = param_2 + 2;
    lVar12 = lVar12 + -1;
  } while (lVar12 != 0);
}



############ FUN_ 18160dba0 size=354 ############

void FUN_18160dba0(undefined8 *param_1)

{
  undefined8 *puVar1;
  void *_Dst;
  int iVar2;
  longlong lVar3;
  longlong lVar4;
  undefined8 *puVar5;
  longlong lVar6;
  int iVar7;
  
  *param_1 = OpenGLFallbackUI::vftable;
  puVar1 = param_1 + 0x16;
  *puVar1 = OpenGLFallbackUI::vftable;
  lVar3 = param_1[0x17];
  lVar4 = *(longlong *)(lVar3 + 0x2400b0);
  iVar7 = 0;
  lVar6 = 0;
  iVar2 = *(int *)(lVar3 + 0x2400bc);
  if (0 < iVar2) {
    do {
      if (puVar1 == *(undefined8 **)(lVar4 + lVar6 * 8)) {
        _Dst = (void *)(lVar4 + (longlong)iVar7 * 8);
        memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)((iVar2 - iVar7) + -1) << 3);
        *(int *)(lVar3 + 0x2400bc) = *(int *)(lVar3 + 0x2400bc) + -1;
        iVar2 = *(int *)(lVar3 + 0x2400bc);
        iVar7 = 0;
        if (0 < iVar2 * 2) {
          iVar7 = iVar2 * 2;
        }
        if (iVar7 < *(int *)(lVar3 + 0x2400b8)) {
          if (iVar2 < 8) {
            iVar2 = 8;
          }
          if (iVar2 < *(int *)(lVar3 + 0x2400b8)) {
            FUN_18047cb30((longlong *)(lVar3 + 0x2400b0));
          }
        }
        break;
      }
      iVar7 = iVar7 + 1;
      lVar6 = lVar6 + 1;
    } while (lVar6 < iVar2);
  }
  _eh_vector_destructor_iterator_(param_1 + 0x71c,0x828,8,FUN_180534650);
  puVar5 = (undefined8 *)param_1[0x1b];
  if (puVar5 != (undefined8 *)0x0) {
    (**(code **)*puVar5)(puVar5,1);
  }
  puVar5 = (undefined8 *)param_1[0x1a];
  if (puVar5 != (undefined8 *)0x0) {
    (**(code **)*puVar5)(puVar5,1);
  }
  puVar5 = (undefined8 *)param_1[0x19];
  if (puVar5 != (undefined8 *)0x0) {
    (**(code **)*puVar5)(puVar5,1);
  }
  puVar5 = (undefined8 *)param_1[0x18];
  if (puVar5 != (undefined8 *)0x0) {
    (**(code **)*puVar5)(puVar5,1);
  }
  *puVar1 = ParametricEqualizerListener::vftable;
  FUN_18134caa0(param_1);
  return;
}



############ FUN_ 180535f10 size=778 ############

void FUN_180535f10(longlong param_1)

{
  _eh_vector_destructor_iterator_((void *)(param_1 + 0x5407e8),0x10,8,FUN_18052e220);
  _eh_vector_destructor_iterator_((void *)(param_1 + 0x5407c8),0x10,2,FUN_18052e220);
  _eh_vector_destructor_iterator_((void *)(param_1 + 0x5407a8),0x10,2,FUN_18052e220);
  if ((0 < *(int *)(param_1 + 0x5407a0)) && (*(longlong *)(param_1 + 0x540798) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x540798) = 0;
  *(undefined4 *)(param_1 + 0x5407a0) = 0;
  if ((0 < *(int *)(param_1 + 0x540790)) && (*(longlong *)(param_1 + 0x540788) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x540788) = 0;
  *(undefined4 *)(param_1 + 0x540790) = 0;
  _eh_vector_destructor_iterator_((void *)(param_1 + 0x540768),0x10,2,FUN_18052e220);
  if ((0 < *(int *)(param_1 + 0x540760)) && (*(longlong *)(param_1 + 0x540758) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x540758) = 0;
  *(undefined4 *)(param_1 + 0x540760) = 0;
  if ((0 < *(int *)(param_1 + 0x540750)) && (*(longlong *)(param_1 + 0x540748) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x540748) = 0;
  *(undefined4 *)(param_1 + 0x540750) = 0;
  _eh_vector_destructor_iterator_((void *)(param_1 + 0x540728),0x10,2,FUN_18052e220);
  if ((0 < *(int *)(param_1 + 0x540720)) && (*(longlong *)(param_1 + 0x540718) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x540718) = 0;
  *(undefined4 *)(param_1 + 0x540720) = 0;
  if ((0 < *(int *)(param_1 + 0x540710)) && (*(longlong *)(param_1 + 0x540708) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x540708) = 0;
  *(undefined4 *)(param_1 + 0x540710) = 0;
  if ((0 < *(int *)(param_1 + 0x540700)) && (*(longlong *)(param_1 + 0x5406f8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x5406f8) = 0;
  *(undefined4 *)(param_1 + 0x540700) = 0;
  if ((0 < *(int *)(param_1 + 0x5406f0)) && (*(longlong *)(param_1 + 0x5406e8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x5406e8) = 0;
  *(undefined4 *)(param_1 + 0x5406f0) = 0;
  if ((0 < *(int *)(param_1 + 0x5406e0)) && (*(longlong *)(param_1 + 0x5406d8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x5406d8) = 0;
  *(undefined4 *)(param_1 + 0x5406e0) = 0;
  if ((0 < *(int *)(param_1 + 0x5406d0)) && (*(longlong *)(param_1 + 0x5406c8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x5406c8) = 0;
  *(undefined4 *)(param_1 + 0x5406d0) = 0;
  if ((0 < *(int *)(param_1 + 0x5406c0)) && (*(longlong *)(param_1 + 0x5406b8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x5406b8) = 0;
  *(undefined4 *)(param_1 + 0x5406c0) = 0;
  if ((0 < *(int *)(param_1 + 0x5406b0)) && (*(longlong *)(param_1 + 0x5406a8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x5406a8) = 0;
  *(undefined4 *)(param_1 + 0x5406b0) = 0;
  if ((0 < *(int *)(param_1 + 0x5406a0)) && (*(longlong *)(param_1 + 0x540698) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x540698) = 0;
  *(undefined4 *)(param_1 + 0x5406a0) = 0;
  _eh_vector_destructor_iterator_((void *)(param_1 + 0x540678),0x10,2,FUN_18052e220);
  if ((0 < *(int *)(param_1 + 0x540670)) && (*(longlong *)(param_1 + 0x540668) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x540668) = 0;
  *(undefined4 *)(param_1 + 0x540670) = 0;
  FUN_18052dd30(param_1 + 0x540530);
  *(undefined4 *)(param_1 + 0x2404cc) = 0;
                    /* WARNING: Subroutine does not return */
  free(*(void **)(param_1 + 0x2404c0));
}



############ FUN_ 18052e9b0 size=3167 ############

void FUN_18052e9b0(longlong param_1,char param_2)

{
  uint *puVar1;
  float *pfVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  undefined8 uVar6;
  ulonglong uVar7;
  ulonglong uVar8;
  int iVar9;
  uint uVar10;
  int *piVar11;
  int iVar12;
  float *pfVar13;
  longlong lVar14;
  ulonglong uVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  char *pcVar20;
  float fVar21;
  float fVar22;
  undefined8 extraout_XMM0_Qb;
  float fVar23;
  double dVar24;
  float fVar25;
  float fVar26;
  float fVar27;
  float fVar28;
  float fVar29;
  
  do {
    LOCK();
    puVar1 = (uint *)(param_1 + 0x2404dc);
    uVar3 = *puVar1;
    *puVar1 = *puVar1 | 1;
    UNLOCK();
  } while ((uVar3 & 1) != 0);
  uVar3 = *(int *)(param_1 + 0x2404e0) + 0x6dc0cf6U & 0x8000007f;
  if ((int)uVar3 < 0) {
    uVar3 = (uVar3 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar3;
  fVar22 = DAT_1824c3c58;
  fVar29 = *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar3 * 4);
  fVar27 = (float)DAT_18262b704;
  fVar21 = *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                     (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4);
  fVar25 = (float)DAT_18262b5c8;
  uVar3 = *(int *)(param_1 + 0x2404e0) + 0x1763eaU & 0x8000007f;
  if ((int)uVar3 < 0) {
    uVar3 = (uVar3 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar3;
  iVar17 = (int)(fVar25 * fVar21 * fVar27 * fVar29 + fVar22) * DAT_18262b700 -
           (int)((float)DAT_18262b5c8 *
                 *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                           (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                 (float)DAT_18262b704 *
                 *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar3 * 4) + fVar22)
           * DAT_18262b700;
  uVar3 = *(int *)(param_1 + 0x2404e0) + 0x6dc2ce2U & 0x8000007f;
  if ((int)uVar3 < 0) {
    uVar3 = (uVar3 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar3;
  iVar9 = (int)((float)DAT_18262b5c8 *
                *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                          (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                (float)DAT_18262b704 *
                *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar3 * 4) + fVar22) *
          DAT_18262b700;
  uVar3 = *(int *)(param_1 + 0x2404e0) + 0x4bf29aU & 0x8000007f;
  if ((int)uVar3 < 0) {
    uVar3 = (uVar3 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar3;
  fVar29 = (float)((int)((float)DAT_18262b5c8 *
                         *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                                   (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                         (float)DAT_18262b704 *
                         *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar3 * 4) +
                        fVar22) * DAT_18262b700);
  uVar3 = *(int *)(param_1 + 0x2404e0) + 0xcb6294U & 0x8000007f;
  if ((int)uVar3 < 0) {
    uVar3 = (uVar3 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar3;
  fVar27 = DAT_1824c3ea4;
  fVar21 = *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar3 * 4);
  fVar28 = (float)DAT_18262b704;
  fVar25 = *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                     (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4);
  fVar26 = (float)DAT_18262b5c8;
  uVar3 = *(int *)(param_1 + 0x2404e0) + 0x10b5e0U & 0x8000007f;
  if ((int)uVar3 < 0) {
    uVar3 = (uVar3 - 1 | 0xffffff80) + 1;
  }
  uVar15 = 0;
  iVar16 = 0;
  *(uint *)(param_1 + 0x2404e0) = uVar3;
  iVar18 = (int)(fVar26 * fVar25 * fVar28 * fVar21 + fVar22) * DAT_18262b700 +
           (int)((float)DAT_18262b5c8 *
                 *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                           (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                 (float)DAT_18262b704 *
                 *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar3 * 4) + fVar22)
           * DAT_18262b700;
  if (param_2 == '\0') {
    .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__(param_1);
    iVar4 = *(int *)(param_1 + 0x1a0) * iVar9 * 8;
    *(int *)(param_1 + 0x540868) = iVar4;
    iVar4 = iVar4 / 2 + iVar9;
    *(int *)(param_1 + 0x54086c) = iVar4;
    FUN_18052e190(param_1 + 0x540668,iVar4 * 2);
    FUN_18052e190(param_1 + 0x540698,*(undefined4 *)(param_1 + 0x54086c));
    uVar7 = uVar15;
    uVar8 = uVar15;
    if (0 < *(int *)(param_1 + 0x5406a0)) {
      do {
        uVar3 = (int)uVar8 + 1;
        *(float *)(uVar7 + *(longlong *)(param_1 + 0x540698)) = fVar29;
        uVar7 = uVar7 + 4;
        uVar8 = (ulonglong)uVar3;
      } while ((int)uVar3 < *(int *)(param_1 + 0x5406a0));
    }
    FUN_18052e190(param_1 + 0x5406a8,*(undefined4 *)(param_1 + 0x54086c));
    FUN_18052e190(param_1 + 0x5406b8,*(undefined4 *)(param_1 + 0x54086c));
    FUN_18052e190(param_1 + 0x5406c8,*(undefined4 *)(param_1 + 0x54086c));
    FUN_18052e190(param_1 + 0x5406d8,*(undefined4 *)(param_1 + 0x54086c));
    FUN_18052e190(param_1 + 0x5406e8,*(undefined4 *)(param_1 + 0x54086c));
    if (iVar17 < *(int *)(param_1 + 0x30)) {
      iVar19 = iVar18 * iVar18 * 0x4000;
      piVar11 = (int *)(((longlong)iVar17 + 0x54073) * 0x10 + param_1);
      iVar4 = iVar17;
      do {
        iVar12 = *(int *)(param_1 + 0x54086c);
        if (piVar11[-0x2c] == iVar12) {
LAB_18052ee7e:
          uVar7 = uVar15;
          uVar8 = uVar15;
          if (0 < piVar11[-0x2c]) {
            do {
              uVar3 = (int)uVar8 + 1;
              *(undefined4 *)(uVar7 + *(longlong *)(piVar11 + -0x2e)) = 0;
              uVar7 = uVar7 + 4;
              uVar8 = (ulonglong)uVar3;
            } while ((int)uVar3 < piVar11[-0x2c]);
          }
        }
        else {
          if ((0 < piVar11[-0x2c]) && (*(longlong *)(piVar11 + -0x2e) != 0)) {
            FUN_1800010c0();
          }
          piVar11[-0x2e] = 0;
          piVar11[-0x2d] = 0;
          if (iVar12 < 0) {
            iVar12 = iVar16;
          }
          piVar11[-0x2c] = iVar12;
          if (iVar12 != 0) {
            uVar6 = FUN_180001080(iVar12 * 4);
            *(undefined8 *)(piVar11 + -0x2e) = uVar6;
            goto LAB_18052ee7e;
          }
        }
        if (*piVar11 == iVar19) {
LAB_18052eee5:
          uVar7 = uVar15;
          uVar8 = uVar15;
          if (0 < *piVar11) {
            do {
              uVar3 = (int)uVar8 + 1;
              *(undefined4 *)(uVar7 + *(longlong *)(piVar11 + -2)) = 0x3f800000;
              uVar7 = uVar7 + 4;
              uVar8 = (ulonglong)uVar3;
            } while ((int)uVar3 < *piVar11);
          }
        }
        else {
          if ((0 < *piVar11) && (*(longlong *)(piVar11 + -2) != 0)) {
            FUN_1800010c0();
          }
          piVar11[-2] = 0;
          piVar11[-1] = 0;
          iVar12 = iVar19;
          if (iVar18 * iVar18 * 0x4000 < 0) {
            iVar12 = iVar16;
          }
          *piVar11 = iVar12;
          if (iVar12 != 0) {
            uVar6 = FUN_180001080(iVar12 * 4);
            *(undefined8 *)(piVar11 + -2) = uVar6;
            goto LAB_18052eee5;
          }
        }
        iVar12 = *(int *)(param_1 + 0x54086c);
        if (piVar11[0x20] == iVar12) {
LAB_18052ef4b:
          uVar7 = uVar15;
          uVar8 = uVar15;
          if (0 < piVar11[0x20]) {
            do {
              uVar3 = (int)uVar8 + 1;
              *(undefined4 *)(uVar7 + *(longlong *)(piVar11 + 0x1e)) = 0;
              uVar7 = uVar7 + 4;
              uVar8 = (ulonglong)uVar3;
            } while ((int)uVar3 < piVar11[0x20]);
          }
        }
        else {
          if ((0 < piVar11[0x20]) && (*(longlong *)(piVar11 + 0x1e) != 0)) {
            FUN_1800010c0();
          }
          piVar11[0x1e] = 0;
          piVar11[0x1f] = 0;
          if (iVar12 < 0) {
            iVar12 = iVar16;
          }
          piVar11[0x20] = iVar12;
          if (iVar12 != 0) {
            uVar6 = FUN_180001080(iVar12 * 4);
            *(undefined8 *)(piVar11 + 0x1e) = uVar6;
            goto LAB_18052ef4b;
          }
        }
        iVar12 = *(int *)(param_1 + 0x54086c);
        if (piVar11[0x28] == iVar12) {
LAB_18052efc4:
          uVar7 = uVar15;
          uVar8 = uVar15;
          if (0 < piVar11[0x28]) {
            do {
              uVar3 = (int)uVar8 + 1;
              *(undefined4 *)(uVar7 + *(longlong *)(piVar11 + 0x26)) = 0x3f800000;
              uVar7 = uVar7 + 4;
              uVar8 = (ulonglong)uVar3;
            } while ((int)uVar3 < piVar11[0x28]);
          }
        }
        else {
          if ((0 < piVar11[0x28]) && (*(longlong *)(piVar11 + 0x26) != 0)) {
            FUN_1800010c0();
          }
          piVar11[0x26] = 0;
          piVar11[0x27] = 0;
          if (iVar12 < 0) {
            iVar12 = iVar16;
          }
          piVar11[0x28] = iVar12;
          if (iVar12 != 0) {
            uVar6 = FUN_180001080(iVar12 * 4);
            *(undefined8 *)(piVar11 + 0x26) = uVar6;
            goto LAB_18052efc4;
          }
        }
        iVar4 = iVar4 + 1;
        piVar11 = piVar11 + 4;
      } while (iVar4 < *(int *)(param_1 + 0x30));
    }
    FUN_18052e190(param_1 + 0x5406f8,*(int *)(param_1 + 0x540868) << 3);
    FUN_18052e190(param_1 + 0x540708,*(int *)(param_1 + 0x540868) * iVar18);
    FUN_18052e190(param_1 + 0x540718,*(int *)(param_1 + 0x540868) * iVar18);
    FUN_18052e190(param_1 + 0x540798,*(undefined4 *)(param_1 + 0x540868));
    uVar7 = uVar15;
    uVar8 = uVar15;
    if (0 < *(int *)(param_1 + 0x5407a0)) {
      do {
        uVar3 = (int)uVar8 + 1;
        *(undefined4 *)(uVar7 + *(longlong *)(param_1 + 0x540798)) = 0x3f800000;
        uVar7 = uVar7 + 4;
        uVar8 = (ulonglong)uVar3;
      } while ((int)uVar3 < *(int *)(param_1 + 0x5407a0));
    }
    FUN_18052dc30(param_1 + 0x540530,*(undefined4 *)(param_1 + 100),
                  *(undefined4 *)(param_1 + 0x540868));
    FUN_18052fe00(param_1 + 0x540530,iVar18,iVar18);
  }
  if (iVar17 < *(int *)(param_1 + 0x30)) {
    piVar11 = (int *)(((longlong)iVar17 + 0x5407b) * 0x10 + param_1);
    iVar16 = iVar17;
    do {
      uVar7 = uVar15;
      uVar8 = uVar15;
      if (0 < piVar11[-0x20]) {
        do {
          uVar3 = (int)uVar8 + 1;
          *(float *)(uVar7 + *(longlong *)(piVar11 + -0x22)) = fVar29;
          uVar7 = uVar7 + 4;
          uVar8 = (ulonglong)uVar3;
        } while ((int)uVar3 < piVar11[-0x20]);
      }
      if (0 < *piVar11) {
        uVar7 = uVar15;
        uVar8 = uVar15;
        do {
          uVar3 = (int)uVar7 + 1;
          uVar7 = (ulonglong)uVar3;
          *(float *)(uVar8 + *(longlong *)(piVar11 + -2)) = (float)iVar17;
          uVar8 = uVar8 + 4;
        } while ((int)uVar3 < *piVar11);
      }
      if (0 < piVar11[8]) {
        uVar7 = uVar15;
        uVar8 = uVar15;
        do {
          uVar3 = (int)uVar7 + 1;
          uVar7 = (ulonglong)uVar3;
          *(float *)(uVar8 + *(longlong *)(piVar11 + 6)) = (float)iVar17;
          uVar8 = uVar8 + 4;
        } while ((int)uVar3 < piVar11[8]);
      }
      iVar16 = iVar16 + 1;
      piVar11 = piVar11 + 4;
    } while (iVar16 < *(int *)(param_1 + 0x30));
  }
  fVar29 = DAT_1824c43e8;
  pfVar2 = *(float **)(param_1 + 0x540698);
  uVar3 = *(int *)(param_1 + 100) / 2 + 1;
  dVar24 = DAT_1824c4140 / ((double)(int)uVar3 - DAT_1824c4140);
  fVar21 = powf(DAT_1824c43e8,DAT_1824c3dd0);
  fVar22 = powf(fVar29,fVar27);
  fVar25 = logf(fVar29);
  fVar29 = DAT_1824c3e28;
  fVar25 = DAT_1824c3e28 / fVar25;
  uVar7 = uVar15;
  if ((0 < (int)uVar3) && (uVar7 = 0, 3 < uVar3)) {
    uVar5 = uVar3 & 0x80000003;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffc) + 1;
    }
    uVar7 = uVar15;
    pfVar13 = pfVar2;
    do {
      uVar6 = thunk_FUN_181a12cf0();
      uVar10 = (int)uVar7 + 4;
      uVar7 = (ulonglong)uVar10;
      *pfVar13 = (float)uVar6 * fVar25;
      pfVar13[1] = (float)((ulonglong)uVar6 >> 0x20) * fVar25;
      pfVar13[2] = (float)extraout_XMM0_Qb * fVar25;
      pfVar13[3] = (float)((ulonglong)extraout_XMM0_Qb >> 0x20) * fVar25;
      pfVar13 = pfVar13 + 4;
    } while ((int)uVar10 < (int)(uVar3 - uVar5));
  }
  for (lVar14 = (longlong)(int)uVar7; lVar14 < (int)uVar3; lVar14 = lVar14 + 1) {
    fVar27 = logf((float)(int)uVar7 * (float)dVar24 * (fVar22 - fVar21) + fVar21);
    uVar7 = (ulonglong)((int)uVar7 + 1);
    pfVar2[lVar14] = fVar27 * fVar25;
  }
  lVar14 = param_1 + 0x3d8;
  uVar3 = *(int *)(param_1 + 0x2404d0) - iVar9;
  *(undefined1 *)(param_1 + 0x5408ae) = 1;
  uVar7 = uVar15;
  if (uVar3 < *(uint *)(param_1 + 0x444)) {
    uVar7 = *(ulonglong *)(*(longlong *)(param_1 + 0x438) + (longlong)(int)uVar3 * 8);
  }
  *(undefined4 *)(uVar7 + 0x800) = 8;
  if ((int)uVar3 < 0) {
    *(undefined4 *)(param_1 + 0x240467) = 0x1010101;
    *(undefined4 *)(param_1 + 0x24046b) = 0x1010101;
  }
  else {
    *(undefined1 *)((longlong)(int)uVar3 + 0x24008f + lVar14) = 1;
  }
  FUN_18052fc30(lVar14);
  uVar7 = uVar15;
  if (uVar3 < *(uint *)(param_1 + 0x444)) {
    uVar7 = *(ulonglong *)(*(longlong *)(param_1 + 0x438) + (longlong)(int)uVar3 * 8);
  }
  *(undefined4 *)(uVar7 + 0x804) = 0x457a0000;
  if ((int)uVar3 < 0) {
    *(undefined4 *)(param_1 + 0x240467) = 0x1010101;
    *(undefined4 *)(param_1 + 0x24046b) = 0x1010101;
  }
  else {
    *(undefined1 *)((longlong)(int)uVar3 + 0x24008f + lVar14) = 1;
  }
  FUN_18052fc30(lVar14);
  uVar7 = uVar15;
  if (uVar3 < *(uint *)(param_1 + 0x444)) {
    uVar7 = *(ulonglong *)(*(longlong *)(param_1 + 0x438) + (longlong)(int)uVar3 * 8);
  }
  *(undefined4 *)(uVar7 + 0x808) = 0x40c00000;
  if ((int)uVar3 < 0) {
    *(undefined4 *)(param_1 + 0x240467) = 0x1010101;
    *(undefined4 *)(param_1 + 0x24046b) = 0x1010101;
  }
  else {
    *(undefined1 *)((longlong)(int)uVar3 + 0x24008f + lVar14) = 1;
  }
  FUN_18052fc30(lVar14);
  fVar21 = DAT_1824c3ea4;
  if (*(char *)(param_1 + 0x5408b8) == '\0') {
    fVar29 = DAT_1824c3ea4;
  }
  uVar7 = uVar15;
  if (uVar3 < *(uint *)(param_1 + 0x444)) {
    uVar7 = *(ulonglong *)(*(longlong *)(param_1 + 0x438) + (longlong)(int)uVar3 * 8);
  }
  *(float *)(uVar7 + 0x80c) = fVar29;
  if ((int)uVar3 < 0) {
    *(undefined4 *)(param_1 + 0x240467) = 0x1010101;
    *(undefined4 *)(param_1 + 0x24046b) = 0x1010101;
  }
  else {
    *(undefined1 *)((longlong)(int)uVar3 + 0x24008f + lVar14) = 1;
  }
  FUN_18052fc30(lVar14);
  if ((*(char *)(param_1 + 0x240464) != '\0') &&
     (*(undefined1 *)(param_1 + 0x240464) = 0, 0 < *(int *)(param_1 + 0x24045c))) {
    pcVar20 = (char *)(param_1 + 0x240467);
    uVar7 = uVar15;
    do {
      if (*pcVar20 != '\0') {
        FUN_1805316e0(lVar14,uVar7);
        *pcVar20 = '\0';
      }
      uVar3 = (int)uVar7 + 1;
      uVar7 = (ulonglong)uVar3;
      pcVar20 = pcVar20 + 1;
    } while ((int)uVar3 < *(int *)(param_1 + 0x24045c));
  }
  iVar9 = *(int *)(param_1 + 100) / 2;
  iVar17 = iVar9 + 1;
  FUN_18052e190(param_1 + 0x540748,iVar17);
  fVar27 = DAT_1824c464c;
  fVar25 = DAT_1824c44ec;
  fVar22 = DAT_1824c43dc;
  fVar29 = DAT_1824c43a8;
  fVar26 = *(float *)(param_1 + 0x24) * DAT_1824c3d8c;
  uVar7 = uVar15;
  if (0 < (longlong)iVar17) {
    do {
      fVar23 = (float)(int)uVar7 * (fVar21 / (float)iVar9);
      fVar28 = fVar21;
      if (fVar23 <= fVar21) {
        fVar28 = fVar23;
      }
      fVar28 = expf((fVar28 * fVar26 - fVar25) * fVar27);
      *(float *)(*(longlong *)(param_1 + 0x540748) + uVar15 * 4) =
           fVar22 - (fVar21 / (fVar28 + fVar21)) * fVar29;
      uVar15 = uVar15 + 1;
      uVar7 = (ulonglong)((int)uVar7 + 1);
    } while ((longlong)uVar15 < (longlong)iVar17);
  }
  FUN_180530ff0(param_1);
  iVar17 = *(int *)(param_1 + 100) / 2 + 1;
  *(int *)(param_1 + 0x2404e8) = iVar17;
  *(int *)(param_1 + 0x340500) = iVar17;
  *(int *)(param_1 + 0x440518) = iVar17;
  fVar29 = ((float)*(int *)(param_1 + 0x19c) / (float)*(int *)(param_1 + 0x1a0)) * (float)iVar17;
  *(float *)(param_1 + 0x2404f0) = fVar29;
  *(float *)(param_1 + 0x340508) = fVar29;
  *(float *)(param_1 + 0x440520) = fVar29;
  FUN_180530b60(param_1);
  FUN_180530d30(param_1);
  FUN_180530850(param_1);
  *(undefined4 *)(param_1 + 0x54089c) = 0;
  *(undefined1 *)(param_1 + 0x5408a0) = 0;
  LOCK();
  *(undefined4 *)(param_1 + 0x2404dc) = 0;
  UNLOCK();
  return;
}



############ FUN_ 1805355d0 size=97 ############

void FUN_1805355d0(undefined8 param_1,undefined8 param_2,undefined4 param_3)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0();
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,param_1,param_3);
}



############ FUN_ 18052dae0 size=85 ############

void FUN_18052dae0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(param_2,param_3);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,(double)(float)param_3,param_1,param_4);
}



############ FUN_ 180530080 size=97 ############

void FUN_180530080(undefined8 param_1,undefined8 param_2,undefined4 param_3)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0();
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,param_1,param_3);
}



############ FUN_ 1804d56b0 size=428 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1804d56b0(undefined1 (*param_1) [16],uint param_2)

{
  undefined1 (*pauVar1) [16];
  float *pfVar2;
  float *pfVar3;
  float *pfVar4;
  float fVar5;
  int iVar6;
  uint uVar7;
  longlong lVar8;
  float *pfVar9;
  ulonglong uVar10;
  longlong lVar11;
  float fVar12;
  float fVar13;
  undefined1 auVar14 [16];
  float local_28;
  float fStack_1c;
  
  iVar6 = (int)(param_2 + ((int)param_2 >> 0x1f & 3U)) >> 2;
  if (iVar6 < 2) {
    if ((int)param_2 < 1) {
    }
    fVar12 = *(float *)*param_1;
    iVar6 = param_2 - 1;
    pfVar9 = (float *)(*param_1 + 4);
    if (3 < iVar6) {
      uVar7 = (param_2 - 5 >> 2) + 1;
      uVar10 = (ulonglong)uVar7;
      iVar6 = iVar6 + uVar7 * -4;
      do {
        pfVar2 = pfVar9 + 1;
        fVar13 = *pfVar9;
        if (*pfVar9 <= fVar12) {
          fVar13 = fVar12;
        }
        pfVar3 = pfVar9 + 2;
        pfVar4 = pfVar9 + 3;
        pfVar9 = pfVar9 + 4;
        fVar12 = *pfVar2;
        if (*pfVar2 <= fVar13) {
          fVar12 = fVar13;
        }
        fVar13 = *pfVar3;
        if (*pfVar3 <= fVar12) {
          fVar13 = fVar12;
        }
        fVar12 = *pfVar4;
        if (*pfVar4 <= fVar13) {
          fVar12 = fVar13;
        }
        uVar10 = uVar10 - 1;
      } while (uVar10 != 0);
    }
    for (; 0 < iVar6; iVar6 = iVar6 + -1) {
      fVar13 = *pfVar9;
      pfVar9 = pfVar9 + 1;
      if (fVar13 <= fVar12) {
        fVar13 = fVar12;
      }
      fVar12 = fVar13;
    }
  }
  else {
    iVar6 = iVar6 + -1;
    if (((ulonglong)param_1 & 0xf) == 0) {
      auVar14 = *param_1;
      for (; 0 < iVar6; iVar6 = iVar6 + -1) {
        auVar14 = maxps(auVar14,param_1[1]);
        param_1 = param_1 + 1;
      }
    }
    else {
      auVar14 = *param_1;
      while (0 < iVar6) {
        pauVar1 = param_1 + 1;
        param_1 = param_1 + 1;
        iVar6 = iVar6 + -1;
        auVar14 = maxps(auVar14,*pauVar1);
      }
    }
    fVar12 = auVar14._4_4_;
    fVar13 = auVar14._8_4_;
    fStack_1c = auVar14._12_4_;
    if (fVar13 <= fVar12) {
      if (fStack_1c <= fVar12) {
        fStack_1c = fVar12;
      }
    }
    else if (fStack_1c <= fVar13) {
      fStack_1c = fVar13;
    }
    local_28 = auVar14._0_4_;
    if (fStack_1c <= local_28) {
      fStack_1c = local_28;
    }
    lVar8 = 0;
    uVar10 = (ulonglong)(param_2 & 3);
    if (3 < uVar10) {
      pfVar9 = (float *)(param_1[1] + 8);
      lVar11 = (uVar10 - 4 >> 2) + 1;
      lVar8 = lVar11 * 4;
      do {
        pfVar2 = pfVar9 + -1;
        fVar12 = pfVar9[-2];
        if (pfVar9[-2] <= fStack_1c) {
          fVar12 = fStack_1c;
        }
        fVar13 = *pfVar9;
        pfVar3 = pfVar9 + 1;
        pfVar9 = pfVar9 + 4;
        fVar5 = *pfVar2;
        if (*pfVar2 <= fVar12) {
          fVar5 = fVar12;
        }
        if (fVar13 <= fVar5) {
          fVar13 = fVar5;
        }
        fStack_1c = *pfVar3;
        if (*pfVar3 <= fVar13) {
          fStack_1c = fVar13;
        }
        lVar11 = lVar11 + -1;
      } while (lVar11 != 0);
    }
    if (lVar8 < (longlong)uVar10) {
      do {
        lVar11 = lVar8 * 4;
        lVar8 = lVar8 + 1;
        fVar12 = *(float *)(param_1[1] + lVar11);
        if (*(float *)(param_1[1] + lVar11) <= fStack_1c) {
          fVar12 = fStack_1c;
        }
        fStack_1c = fVar12;
      } while (lVar8 < (longlong)uVar10);
    }
  }
}



############ FUN_ 18052d8a0 size=93 ############

void FUN_18052d8a0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(param_2,param_1,param_4,param_3);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,param_1,param_4,(double)(float)param_3,0);
}



############ FUN_ 18052d920 size=104 ############

void FUN_18052d920(undefined8 param_1,undefined8 param_2,undefined4 param_3)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(param_2);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0((double)(float)param_2,param_1,param_3);
}



############ FUN_ 180530d30 size=701 ############

void FUN_180530d30(longlong param_1)

{
  double dVar1;
  float _Y;
  float fVar2;
  double dVar3;
  float fVar4;
  int iVar5;
  ulonglong uVar6;
  ulonglong uVar7;
  float fVar8;
  double dVar9;
  float fVar10;
  float fVar11;
  float fVar12;
  uint uVar13;
  uint uVar14;
  
  fVar4 = DAT_1824c4334;
  dVar3 = DAT_1824c4140;
  fVar2 = DAT_1824c3ea4;
  _Y = DAT_1824c3d3c;
  iVar5 = *(int *)(param_1 + 100) / 2 + 1;
  fVar11 = DAT_1824c45b4 / (*(float *)(param_1 + 0x24) * DAT_1824c3d8c);
  fVar12 = DAT_1824c4334;
  if (*(char *)(param_1 + 0x5408b8) != '\0') {
    fVar12 = DAT_1824c3ea4;
  }
  uVar6 = 0;
  if (0 < iVar5) {
    uVar13 = (uint)DAT_1824c4f10;
    uVar14 = (uint)((ulonglong)DAT_1824c4f10 >> 0x20);
    dVar1 = (double)((*(float *)(param_1 + 0x24) / (float)*(int *)(param_1 + 0x1a0)) *
                    (float)*(int *)(param_1 + 0x1ac)) * DAT_1824c3e30;
    uVar7 = uVar6;
    do {
      fVar8 = powf((fVar11 * (float)iVar5) / ((float)(int)uVar7 + fVar2),_Y);
      fVar10 = *(float *)(param_1 + 0x540880) * _Y * fVar8 * fVar12;
      dVar9 = (double)(fVar2 / (fVar10 / (*(float *)(param_1 + 0x540880) * fVar4) + fVar2));
      dVar9 = (double)fmax((double)((float)(double)CONCAT44((uint)((ulonglong)dVar9 >> 0x20) &
                                                            uVar14,SUB84(dVar9,0) & uVar13) * fVar10
                                   ));
      dVar9 = pow(DAT_1824c3f70,dVar3 / (dVar9 * dVar1));
      *(float *)(*(longlong *)(param_1 + 0x5406b8) + uVar6 * 4) = (float)dVar9;
      *(float *)(*(longlong *)(param_1 + 0x5406c8) + uVar6 * 4) = (float)(dVar3 - dVar9);
      fVar8 = *(float *)(param_1 + 0x540884) * _Y * fVar8 * fVar12;
      dVar9 = (double)(fVar2 / (fVar8 / *(float *)(param_1 + 0x540884) + fVar2));
      dVar9 = (double)fmax((double)((float)(double)CONCAT44((uint)((ulonglong)dVar9 >> 0x20) &
                                                            uVar14,SUB84(dVar9,0) & uVar13) * fVar8)
                          );
      dVar9 = pow(DAT_1824c3f70,dVar3 / (dVar9 * dVar1));
      uVar7 = (ulonglong)((int)uVar7 + 1);
      *(float *)(*(longlong *)(param_1 + 0x5406d8) + uVar6 * 4) = (float)dVar9;
      *(float *)(*(longlong *)(param_1 + 0x5406e8) + uVar6 * 4) = (float)(dVar3 - dVar9);
      uVar6 = uVar6 + 1;
    } while ((longlong)uVar6 < (longlong)iVar5);
  }
  return;
}



############ FUN_ 180530b60 size=462 ############

void FUN_180530b60(longlong param_1)

{
  undefined4 uVar1;
  float fVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  float fVar7;
  
  fVar2 = powf(*(float *)(param_1 + 0x540878),DAT_1824c3df0);
  fVar3 = powf(*(float *)(param_1 + 0x54087c),DAT_1824c41e0);
  fVar7 = DAT_1824c45a8;
  if (*(char *)(param_1 + 0x5408b8) != '\0') {
    fVar7 = DAT_1824c4594;
  }
  fVar4 = logf(DAT_1824c4418);
  fVar5 = logf(fVar7);
  fVar5 = expf((fVar5 - fVar4) * fVar2 + fVar4);
  fVar4 = DAT_1824c43e4;
  *(float *)(param_1 + 0x540894) = fVar5;
  fVar4 = logf(fVar4);
  fVar6 = logf(DAT_1824c4518);
  fVar3 = expf((fVar6 - fVar4) * fVar3 + fVar4);
  *(float *)(param_1 + 0x540898) = fVar3;
  fVar4 = logf(DAT_1824c3c70);
  fVar3 = DAT_1824c3ea4;
  fVar6 = logf(DAT_1824c3ea4);
  fVar2 = expf((fVar6 - fVar4) * fVar2 + fVar4);
  uVar1 = DAT_1824c459c;
  fVar7 = fVar7 * DAT_1824c41e0;
  fVar3 = fVar3 - fVar2;
  FUN_180533340(param_1 + 0x2404e8,fVar5,DAT_1824c459c,*(undefined4 *)(param_1 + 0x24),fVar3,fVar7);
  FUN_180533340(param_1 + 0x340500,*(undefined4 *)(param_1 + 0x540894),uVar1,
                *(undefined4 *)(param_1 + 0x24),fVar3,fVar7);
  FUN_180533340(param_1 + 0x440518,*(undefined4 *)(param_1 + 0x540898),uVar1,
                *(undefined4 *)(param_1 + 0x24),fVar3,DAT_1824c4564);
  return;
}



############ FUN_ 18052e260 size=577 ############

undefined8 FUN_18052e260(longlong param_1,int param_2)

{
  undefined8 uVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  undefined8 uVar7;
  longlong lVar8;
  longlong *plVar9;
  undefined4 uVar10;
  
  iVar5 = *(int *)(param_1 + 100) / 2 + 1;
  if (*(char *)(param_1 + 0x240464) != '\0') {
    *(undefined1 *)(param_1 + 0x240464) = 0;
    FUN_18052fbd0(param_1 + 0x3d8);
  }
  uVar1 = *(undefined8 *)(param_1 + 0x540788);
  iVar4 = *(int *)(param_1 + 0x2404d8);
  if (iVar4 < 1) {
    if (*(char *)(param_1 + 0x5408ad) != '\0') {
      *(undefined1 *)(param_1 + 0x5408ad) = 0;
      *(int *)(param_1 + 0x2404d8) = iVar5;
    }
    return 0;
  }
  iVar2 = iVar5;
  if (iVar4 < iVar5) {
    iVar2 = iVar4;
  }
  *(int *)(param_1 + 0x2404d8) = iVar2;
  if (iVar2 < param_2) {
    param_2 = iVar2;
  }
  uVar6 = 0;
  if (0 < *(int *)(param_1 + 0x2404d0)) {
    plVar9 = (longlong *)(param_1 + 0x5407e8);
    lVar8 = 0;
    do {
      if (uVar6 < *(uint *)(param_1 + 0x444)) {
        uVar7 = *(undefined8 *)(lVar8 + *(longlong *)(param_1 + 0x438));
      }
      else {
        uVar7 = 0;
      }
      FUN_180536300(param_1 + 0x3d8,*plVar9 + (longlong)(iVar5 - iVar2) * 4,
                    *(longlong *)(param_1 + 0x540758) + (longlong)(iVar5 - iVar2) * 4,uVar7,param_2)
      ;
      uVar6 = uVar6 + 1;
      plVar9 = plVar9 + 2;
      lVar8 = lVar8 + 8;
    } while ((int)uVar6 < *(int *)(param_1 + 0x2404d0));
  }
  *(int *)(param_1 + 0x2404d8) = *(int *)(param_1 + 0x2404d8) - param_2;
  if ((*(int *)(param_1 + 0x2404d8) < 1) && (0 < *(int *)(param_1 + 0x30))) {
    expf(DAT_1824c4208);
    uVar3 = DAT_1824c3ea4;
    uVar10 = (undefined4)DAT_1824c4140;
    iVar4 = __std_type_info_compare(0x182650db8,0x182650db8);
    if (iVar4 != 0) {
                    /* WARNING: Subroutine does not return */
      thunk_FUN_181ba94b0(uVar10,uVar1,iVar5);
    }
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(uVar3);
  }
  return 1;
}



############ FUN_ 18124a4b0 size=236 ############

undefined8 * FUN_18124a4b0(undefined8 *param_1,size_t param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  void *pvVar2;
  undefined1 local_20 [24];
  
  *param_1 = juce::OutputStream::vftable;
  FUN_18049c4e0(param_1 + 1,&DAT_182496878,param_3,param_4,0xfffffffffffffffe);
  *param_1 = juce::MemoryOutputStream::vftable;
  puVar1 = param_1 + 3;
  param_1[2] = puVar1;
  *puVar1 = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  if (param_1[4] != param_2) {
    pvVar2 = (void *)*puVar1;
    if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
      free(pvVar2);
    }
    if (pvVar2 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)0x0);
    }
    if (pvVar2 == (void *)0x0) {
      pvVar2 = malloc(param_2);
    }
    else {
      pvVar2 = realloc(pvVar2,param_2);
    }
    *puVar1 = pvVar2;
    if (pvVar2 == (void *)0x0) {
      FUN_1804719e0(local_20);
                    /* WARNING: Subroutine does not return */
      _CxxThrowException(local_20,(ThrowInfo *)&DAT_1825fec68);
    }
    param_1[4] = param_2;
  }
  return param_1;
}



############ FUN_ 181247a90 size=461 ############

undefined8 FUN_181247a90(longlong *param_1,byte *param_2)

{
  char cVar1;
  char cVar2;
  uint uVar3;
  uint uVar4;
  byte bVar5;
  int iVar6;
  longlong lVar7;
  byte local_res10 [8];
  char local_res18 [8];
  
  bVar5 = *param_2;
  do {
    if (bVar5 == 0) {
      return 1;
    }
    lVar7 = 0;
    do {
      bVar5 = *param_2;
      param_2 = param_2 + 1;
      uVar4 = (uint)bVar5;
      if ((char)bVar5 < '\0') {
        uVar3 = 0x40;
        iVar6 = 0;
        uVar4 = 0x7f;
        if ((bVar5 & 0x40) != 0) {
          do {
            if (uVar3 < 9) break;
            uVar4 = uVar4 >> 1;
            iVar6 = iVar6 + 1;
            uVar3 = uVar3 >> 1;
          } while ((bVar5 & uVar3) != 0);
        }
        uVar4 = bVar5 & uVar4;
        for (; (iVar6 = iVar6 + -1, -1 < iVar6 && ((*param_2 & 0xc0) == 0x80));
            param_2 = param_2 + 1) {
          uVar4 = *param_2 & 0x3f | uVar4 << 6;
        }
      }
      uVar3 = uVar4 - 0x41;
      if (0x19 < uVar3) {
        if (uVar4 - 0x61 < 0x1a) {
          uVar3 = uVar4 - 0x47;
        }
        else if (uVar4 - 0x30 < 10) {
          uVar3 = uVar4 + 4;
        }
        else if (uVar4 == 0x2b) {
          uVar3 = 0x3e;
        }
        else if (uVar4 == 0x2f) {
          uVar3 = 0x3f;
        }
        else if ((uVar4 != 0x3d) || (uVar3 = 0x40, lVar7 < 2)) {
          return 0;
        }
      }
      local_res18[lVar7] = (char)uVar3;
      cVar1 = local_res18[1];
      lVar7 = lVar7 + 1;
    } while (lVar7 < 4);
    if ((undefined **)*param_1 == juce::MemoryOutputStream::vftable) {
      local_res10[0] = (byte)local_res18[1] >> 4 | local_res18[0] << 2;
      (*(code *)PTR_FUN_182496b98)(param_1,local_res10);
    }
    else {
      (*(code *)((undefined **)*param_1)[5])(param_1);
    }
    cVar2 = local_res18[2];
    if ((byte)local_res18[2] < 0x40) {
      if ((undefined **)*param_1 == juce::MemoryOutputStream::vftable) {
        local_res10[0] = (byte)local_res18[2] >> 2 | cVar1 << 4;
        (*(code *)PTR_FUN_182496b98)(param_1,local_res10);
      }
      else {
        (*(code *)((undefined **)*param_1)[5])(param_1);
      }
      if ((byte)local_res18[3] < 0x40) {
        bVar5 = cVar2 << 6 | local_res18[3];
        if ((undefined **)*param_1 == juce::MemoryOutputStream::vftable) {
          local_res10[0] = bVar5;
          (*(code *)PTR_FUN_182496b98)(param_1,local_res10);
        }
        else {
          (*(code *)((undefined **)*param_1)[5])(param_1,bVar5);
        }
      }
    }
    bVar5 = *param_2;
  } while( true );
}



############ FUN_ 18141b5e0 size=564 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void .?AVSoothe2_DynamicCryptoManager@eden@pace@@::vtbl___AVSoothe2_DynamicCryptoManager_eden_pace__
               (undefined8 param_1,undefined8 param_2,longlong param_3,int *param_4)

{
  char cVar1;
  int iVar2;
  undefined8 ****ppppuVar3;
  void *_Memory;
  undefined1 auStack_118 [32];
  undefined4 local_f8;
  undefined **local_e8;
  void *local_e0;
  undefined8 uStack_d8;
  longlong local_d0;
  undefined1 local_c8;
  undefined8 local_c0;
  undefined **local_b8;
  undefined4 local_b0;
  undefined8 ***local_a8 [2];
  longlong local_98;
  ulonglong local_90;
  undefined8 ***local_88 [2];
  longlong local_78;
  ulonglong local_70;
  undefined1 local_68 [32];
  undefined4 local_48;
  ulonglong local_38;
  
  local_c0 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_118;
  *param_4 = 0;
  local_e8 = pace::eden::thrift::pub::SetupDynamicCryptoWhiteboxInput::vftable;
  local_e0 = (void *)0x0;
  uStack_d8 = 0;
  local_d0 = 0;
  local_c8 = 0;
  FUN_180576470(&local_e0);
  FUN_181a04090(local_e0,param_2);
  local_b8 = pace::eden::thrift::pub::ErrorInfo::vftable;
  local_b0 = 0;
  FUN_180487940(local_a8,&DAT_18249336a);
  FUN_180487940(local_88,&DAT_18249336a);
  FUN_180487940(local_68,&DAT_18249336a);
  local_48 = 0;
  local_f8 = 0;
  cVar1 = FUN_1805c0340(0,&local_b8,0,2);
  if (cVar1 == '\0') {
    *param_4 = 4;
  }
  else {
    cVar1 = FUN_1805c4280(&DAT_1823602b0,&local_e8,param_3,&local_b8);
    if (cVar1 == '\0') {
      ppppuVar3 = local_88;
      if (0xf < local_70) {
        ppppuVar3 = (undefined8 ****)local_88[0];
      }
      if ((local_78 == 0x16) &&
         (iVar2 = memcmp(ppppuVar3,"AuthorizationException",0x16), iVar2 == 0)) {
        ppppuVar3 = local_a8;
        if (0xf < local_90) {
          ppppuVar3 = (undefined8 ****)local_a8[0];
        }
        if ((local_98 == 0x26) &&
           (iVar2 = memcmp(ppppuVar3,"DynamicCryptoHostBasedAuthsUnsupported",0x26), iVar2 == 0)) {
          *param_4 = 6;
          FUN_1805bd330(&local_b8);
          goto LAB_18141b7b9;
        }
      }
      *param_4 = 5;
    }
    else {
      if (*(longlong *)(param_3 + 0x10) - *(longlong *)(param_3 + 8) != 0x20) {
        *param_4 = 0xb;
      }
      if (*(longlong *)(param_3 + 0x28) - *(longlong *)(param_3 + 0x20) != 0x20) {
        *param_4 = 0xb;
      }
      if (*(longlong *)(param_3 + 0x40) - *(longlong *)(param_3 + 0x38) != 0x20) {
        *param_4 = 0xb;
      }
      if (*(longlong *)(param_3 + 0x58) - *(longlong *)(param_3 + 0x50) != 0x20) {
        *param_4 = 0xb;
      }
      if (*param_4 != 0) {
        FUN_1805bd330(&local_b8);
        goto LAB_18141b7b9;
      }
    }
    FUN_1805bd330(&local_b8);
  }
LAB_18141b7b9:
  FUN_180575800(&local_b8);
  local_e8 = pace::eden::thrift::pub::SetupDynamicCryptoWhiteboxInput::vftable;
  if (local_e0 == (void *)0x0) {
  }
  _Memory = local_e0;
  if ((0xfff < (ulonglong)(local_d0 - (longlong)local_e0)) &&
     (_Memory = *(void **)((longlong)local_e0 + -8),
     0x1f < (ulonglong)((longlong)local_e0 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1817217c0 size=7929 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x00018172214c) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1817217c0(byte *param_1,byte *param_2,byte *param_3,undefined8 param_4,longlong param_5)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte *pbVar13;
  uint uVar14;
  uint uVar15;
  longlong lVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  bool bVar22;
  undefined1 auStack_4b78 [32];
  uint local_4b58;
  uint local_4b54;
  uint local_4b50;
  uint local_4b4c;
  uint local_4b48;
  uint local_4b44;
  uint local_4b40;
  uint local_4b3c;
  uint local_4b38;
  uint local_4b34;
  uint local_4b30;
  uint local_4b2c;
  uint local_4b28;
  uint local_4b24;
  uint local_4b20;
  uint local_4b1c;
  uint local_4b18;
  uint local_4b14;
  int local_4b10;
  uint local_4b0c;
  uint local_4b08;
  uint local_4b04;
  int local_4b00;
  uint local_4afc;
  uint local_4af8;
  uint local_4af4;
  uint local_4af0;
  uint local_4aec;
  uint local_4ae8;
  uint local_4ae4;
  uint local_4ae0;
  uint local_4adc;
  uint local_4ad8;
  uint local_4ad4;
  uint local_4ad0;
  uint local_4acc;
  uint local_4ac8;
  uint local_4ac4;
  uint local_4ac0;
  uint local_4abc;
  uint local_4ab8;
  uint local_4ab4;
  uint local_4ab0;
  uint local_4aac;
  uint local_4aa8;
  uint local_4aa4;
  uint local_4aa0;
  uint local_4a9c;
  uint local_4a98;
  uint local_4a94;
  uint local_4a90;
  uint local_4a8c;
  uint local_4a88;
  uint local_4a84;
  uint local_4a80;
  uint local_4a7c;
  uint local_4a78;
  int local_4a74;
  uint local_4a70;
  uint local_4a6c;
  int local_4a68;
  uint local_4a64;
  uint local_4a60;
  uint local_4a5c;
  uint local_4a58;
  uint local_4a54;
  uint local_4a50;
  uint local_4a4c;
  uint local_4a48;
  uint local_4a44;
  uint local_4a40;
  uint local_4a3c;
  uint local_4a38;
  uint local_4a34;
  uint local_4a30;
  uint local_4a2c;
  int local_4a28;
  uint local_4a24;
  uint local_4a20;
  uint local_4a1c;
  uint local_4a18;
  uint local_4a14;
  uint local_4a10;
  uint local_4a0c;
  uint local_4a08;
  uint local_4a04;
  int local_4a00;
  uint local_49fc;
  int local_49f8;
  uint local_49f4;
  int local_49f0;
  uint local_49ec;
  undefined1 *local_49e8;
  byte *local_49e0;
  undefined8 local_49d8;
  byte *local_49d0;
  byte *local_49c8;
  undefined1 local_49b8 [18760];
  byte *local_70;
  byte *local_68;
  byte *local_60;
  undefined8 local_58;
  longlong local_50;
  undefined1 **local_48;
  undefined1 local_40 [8];
  ulonglong local_38;
  undefined8 uStack_30;
  
  uStack_30 = 0x1817217e2;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_4b78;
  local_49e8 = local_40;
  _DAT_182679590 = local_49b8;
  DAT_18267947c = 0x811c9dc5;
  DAT_182679520 = 0;
  if (param_1 != (byte *)0x0) {
    DAT_18267947c =
         ((((((((((((((((((((((((((((((((*param_1 ^ 0x811c9dc5) * 0x1000193 ^ (uint)param_1[1]) *
                                       0x1000193 ^ (uint)param_1[2]) * 0x1000193 ^ (uint)param_1[3])
                                     * 0x1000193 ^ (uint)param_1[4]) * 0x1000193 ^ (uint)param_1[5])
                                   * 0x1000193 ^ (uint)param_1[6]) * 0x1000193 ^ (uint)param_1[7]) *
                                 0x1000193 ^ (uint)param_1[8]) * 0x1000193 ^ (uint)param_1[9]) *
                               0x1000193 ^ (uint)param_1[10]) * 0x1000193 ^ (uint)param_1[0xb]) *
                             0x1000193 ^ (uint)param_1[0xc]) * 0x1000193 ^ (uint)param_1[0xd]) *
                           0x1000193 ^ (uint)param_1[0xe]) * 0x1000193 ^ (uint)param_1[0xf]) *
                         0x1000193 ^ (uint)param_1[0x10]) * 0x1000193 ^ (uint)param_1[0x11]) *
                       0x1000193 ^ (uint)param_1[0x12]) * 0x1000193 ^ (uint)param_1[0x13]) *
                     0x1000193 ^ (uint)param_1[0x14]) * 0x1000193 ^ (uint)param_1[0x15]) * 0x1000193
                  ^ (uint)param_1[0x16]) * 0x1000193 ^ (uint)param_1[0x17]) * 0x1000193 ^
                (uint)param_1[0x18]) * 0x1000193 ^ (uint)param_1[0x19]) * 0x1000193 ^
              (uint)param_1[0x1a]) * 0x1000193 ^ (uint)param_1[0x1b]) * 0x1000193 ^
            (uint)param_1[0x1c]) * 0x1000193 ^ (uint)param_1[0x1d]) * 0x1000193 ^
          (uint)param_1[0x1e]) * 0x1000193 ^ (uint)param_1[0x1f]) * 0x1000193;
  }
  if (param_2 != (byte *)0x0) {
    DAT_18267947c =
         ((((((((((((((((DAT_18267947c ^ *param_2) * 0x1000193 ^ (uint)param_2[1]) * 0x1000193 ^
                      (uint)param_2[2]) * 0x1000193 ^ (uint)param_2[3]) * 0x1000193 ^
                    (uint)param_2[4]) * 0x1000193 ^ (uint)param_2[5]) * 0x1000193 ^ (uint)param_2[6]
                  ) * 0x1000193 ^ (uint)param_2[7]) * 0x1000193 ^ (uint)param_2[8]) * 0x1000193 ^
               (uint)param_2[9]) * 0x1000193 ^ (uint)param_2[10]) * 0x1000193 ^ (uint)param_2[0xb])
             * 0x1000193 ^ (uint)param_2[0xc]) * 0x1000193 ^ (uint)param_2[0xd]) * 0x1000193 ^
          (uint)param_2[0xe]) * 0x1000193 ^ (uint)param_2[0xf]) * 0x1000193;
  }
  if (param_3 != (byte *)0x0) {
    DAT_18267947c =
         ((((((((((((((((((((((((((((((((DAT_18267947c ^ *param_3) * 0x1000193 ^ (uint)param_3[1]) *
                                       0x1000193 ^ (uint)param_3[2]) * 0x1000193 ^ (uint)param_3[3])
                                     * 0x1000193 ^ (uint)param_3[4]) * 0x1000193 ^ (uint)param_3[5])
                                   * 0x1000193 ^ (uint)param_3[6]) * 0x1000193 ^ (uint)param_3[7]) *
                                 0x1000193 ^ (uint)param_3[8]) * 0x1000193 ^ (uint)param_3[9]) *
                               0x1000193 ^ (uint)param_3[10]) * 0x1000193 ^ (uint)param_3[0xb]) *
                             0x1000193 ^ (uint)param_3[0xc]) * 0x1000193 ^ (uint)param_3[0xd]) *
                           0x1000193 ^ (uint)param_3[0xe]) * 0x1000193 ^ (uint)param_3[0xf]) *
                         0x1000193 ^ (uint)param_3[0x10]) * 0x1000193 ^ (uint)param_3[0x11]) *
                       0x1000193 ^ (uint)param_3[0x12]) * 0x1000193 ^ (uint)param_3[0x13]) *
                     0x1000193 ^ (uint)param_3[0x14]) * 0x1000193 ^ (uint)param_3[0x15]) * 0x1000193
                  ^ (uint)param_3[0x16]) * 0x1000193 ^ (uint)param_3[0x17]) * 0x1000193 ^
                (uint)param_3[0x18]) * 0x1000193 ^ (uint)param_3[0x19]) * 0x1000193 ^
              (uint)param_3[0x1a]) * 0x1000193 ^ (uint)param_3[0x1b]) * 0x1000193 ^
            (uint)param_3[0x1c]) * 0x1000193 ^ (uint)param_3[0x1d]) * 0x1000193 ^
          (uint)param_3[0x1e]) * 0x1000193 ^ (uint)param_3[0x1f]) * 0x1000193;
  }
  if (param_5 != 0) {
    lVar16 = 0x20;
    pbVar13 = (byte *)(param_5 + 2);
    do {
      DAT_18267947c =
           (((((pbVar13[-2] ^ DAT_18267947c) * 0x1000193 ^ (uint)pbVar13[-1]) * 0x1000193 ^
             (uint)*pbVar13) * 0x1000193 ^ (uint)pbVar13[1]) * 0x1000193 ^ (uint)pbVar13[2]) *
           0x1000193;
      lVar16 = lVar16 + -1;
      pbVar13 = pbVar13 + 5;
    } while (lVar16 != 0);
  }
  DAT_182679530 = DAT_18267947c + 0xd2ac102b;
  local_4b10 = DAT_18267947c * 0x744d22e1;
  uVar14 = DAT_18267947c & 0xff0000;
  DAT_1826794bc = 0x5b2e7a02;
  DAT_1826793d0 = 0xdb5c72d1;
  uVar11 = DAT_18267947c & 0xff00;
  uVar15 = (uVar14 | DAT_18267947c >> 0x10) >> 8;
  DAT_1826794f8 = 0x7fdbf78b;
  uVar5 = DAT_18267947c << 0x10;
  DAT_182679480 = 0x1dee7717;
  DAT_182679340 = uVar15 | (uVar11 | uVar5) << 8;
  DAT_1826792cc = 0xd7665ff5;
  DAT_18267927c = 0xb8737690;
  uVar6 = ~DAT_18267947c;
  DAT_1826794e4 = 0xde14e052;
  DAT_182679500 = uVar6 * -0x4314254e;
  DAT_18267925c = 0xc041da97;
  DAT_1826792a4 = 0x16f2446c;
  DAT_182679454 = DAT_18267947c ^ 0x86ab561f;
  uVar20 = (DAT_182679530 & 0xff0000 | DAT_182679530 >> 0x10) >> 8;
  DAT_182679248 = 0x8bf7db7f;
  DAT_18267950c = 0x1cd356f6;
  DAT_18267945c = 0x46881722;
  DAT_182679418 = uVar20 | (DAT_182679530 * 0x10000 | DAT_182679530 & 0xff00) << 8;
  DAT_182679300 = 0x329e0880;
  DAT_182679494 = 0xe1aac53a;
  DAT_1826793a8 = 0x5b0c7200;
  uVar2 = DAT_18267947c >> 0x10;
  DAT_182678ef4 = DAT_18267947c << 0x10 | uVar2;
  DAT_18267948c = 0xdff7fb7f;
  DAT_1826793ac = DAT_18267947c | 0xd19720ad;
  DAT_18267935c = 0x16d24408;
  uVar19 = ~DAT_182679340;
  DAT_182679318 = 0x1dff77f7;
  DAT_18267936c = 0x46881722;
  DAT_182679284 = 0xf2dfda97;
  DAT_1826792bc = local_4b10 + 0x80404376;
  DAT_182679334 = DAT_18267947c ^ 0x956bbbb5;
  DAT_1826793dc = DAT_182679500 + 0xe00413bf;
  DAT_182679394 = (DAT_18267947c + 0x4f5cf359) * 0x3d223330;
  uVar17 = DAT_18267947c | 0x500acf2e;
  DAT_182679584 = uVar19 | 0xbc15acd8;
  uVar10 = uVar6 >> 0x10;
  DAT_18267938c = DAT_18267947c + 0x1feee721;
  DAT_1826794dc = DAT_18267947c + 0xfc9840e5 | 0xeab72f4d;
  DAT_18267951c = DAT_182679340 | 0xb110b866;
  DAT_182679274 = DAT_18267947c ^ 0x6e46f4e3;
  uVar3 = (DAT_182679530 * 0x10000 & 0xffffff | DAT_182679530 & 0xff00) >> 8;
  DAT_1826794ac = uVar20 << 0x10 | uVar3;
  DAT_182679414 = DAT_18267947c | 0xc33fca4e;
  DAT_1826794c4 = (DAT_182679340 | 0x4d8b24c0) + 0xa7d64423;
  DAT_182679288 = ~DAT_182679334;
  DAT_182679470 = ~(DAT_18267947c & 0x5fb0d117);
  DAT_182679314 = DAT_1826793ac + 0x97827035;
  DAT_1826794d4 = (uVar11 << 8 | (uVar5 & 0xffffff) >> 8) >> 8 | (uVar15 << 0x10 | uVar14 >> 8) << 8
  ;
  uVar7 = DAT_1826792bc & 3;
  if (uVar7 < 2) {
    DAT_182679278 = 0x15290e16;
    if (uVar7 == 0) {
      DAT_182679278 = DAT_1826792bc;
    }
  }
  else {
    DAT_182679278 = 0x730d9fae;
    if (uVar7 < 3) {
      DAT_182679278 = 0xc84c6565;
    }
  }
  DAT_182679398 =
       (uVar17 & 0xff0000 | uVar17 >> 0x10) >> 8 | (uVar17 << 0x10 | uVar17 & 0xff00) << 8;
  uVar7 = DAT_18267947c & 0xb7a81498 | 0xeb80f2f;
  uVar12 = 0xae9d2041;
  if ((uVar19 & 1) == 0) {
    uVar12 = DAT_182679584;
  }
  uVar1 = DAT_18267947c + 0x9df29408 & 0x527f14b8;
  DAT_182679554 =
       (uVar6 << 0x10 & 0xff0000 | uVar6 & 0xffff) >> 8 | (uVar10 << 0x10 | uVar10 & 0xff00) << 8;
  DAT_1826793a0 = ~(DAT_18267947c + 0xa5e4cde6);
  DAT_1826792c0 =
       (DAT_18267947c + 0x454b7985 & 0xff0000 | DAT_18267947c + 0x454b7985 >> 0x10) >> 8 |
       ((DAT_18267947c + 0x454b7985) * 0x10000 | DAT_18267947c + 0x454b7985 & 0xff00) << 8;
  DAT_182679370 =
       (DAT_1826794dc & 0xff0000 | DAT_1826794dc >> 0x10) >> 8 |
       (DAT_1826794dc << 0x10 | DAT_1826794dc & 0xff00) << 8;
  DAT_1826792c8 = (uVar11 << 8 | (uVar5 & 0xffffff) >> 8) >> 8 | (uVar15 << 0x10 | uVar14 >> 8) << 8
  ;
  DAT_182679240 = 0x13f01a9c;
  if ((DAT_18267947c + 0xd2ac102b & 1) == 0) {
    DAT_182679240 = DAT_18267947c + 0xd2ac102b;
  }
  DAT_18267958c = (DAT_182679530 & 0xa6df57a1) + 0x1b18c708;
  DAT_1826792f4 = (DAT_182679340 ^ 0x4fc26895) & 0x91dc2271;
  DAT_182679308 = DAT_18267947c + 0x57b31489 & 0x15bab3b1;
  DAT_182679568 = DAT_182679340 & 0x4e95eeda;
  uVar5 = DAT_18267947c & 7;
  if (uVar5 < 4) {
    if (1 < uVar5) {
      uVar14 = 0x6289d8c3;
      uVar11 = 0xafd97743;
      bVar22 = uVar5 < 3;
      goto LAB_18172240a;
    }
    uVar11 = 0x32f5ae04;
    if (uVar5 == 0) {
      uVar11 = DAT_18267947c;
    }
  }
  else {
    if (uVar5 < 6) {
      uVar14 = 0xbc2296e6;
      uVar11 = 0x3ed7a7eb;
      bVar22 = uVar5 < 5;
    }
    else {
      uVar14 = 0xa5126da;
      uVar11 = 0xf47b8af2;
      bVar22 = uVar5 < 7;
    }
LAB_18172240a:
    if (bVar22) {
      uVar11 = uVar14;
    }
  }
  DAT_182679238 = DAT_182679334 * -0x522f926e;
  uVar14 = local_4b10 + 0x80404376;
  DAT_182678f5c = DAT_182679414 * -0x3a742a07;
  DAT_18267944c = DAT_182679278 & 0xc34a6cbc;
  DAT_18267926c = uVar2 << 0x10 | DAT_18267947c & 0xffff;
  uVar5 = DAT_182679288 & 3;
  if (uVar5 < 2) {
    local_4af8 = 0x956bbbb5;
    if (uVar5 == 0) {
      local_4af8 = DAT_182679288;
    }
  }
  else {
    local_4af8 = 0xb0a30ca7;
    if (uVar5 < 3) {
      local_4af8 = 0xa5e4cde6;
    }
  }
  DAT_1826792ac = (DAT_18267947c ^ 0x74d4ee48) - (DAT_18267947c | 0x360d4864);
  DAT_18267942c = DAT_18267947c & 0x1feee721;
  DAT_18267933c = DAT_182679454 * 0x6e46f4e3;
  DAT_1826793b0 = DAT_182679340 ^ 0x7ea26bd7;
  uVar5 = DAT_18267947c + 0xee669e0d;
  DAT_1826794f0 = uVar7 ^ 0x15290e16;
  DAT_1826794b4 = DAT_182679584 << 0x10 | DAT_182679584 >> 0x10;
  DAT_182679428 =
       (uVar19 & 0xff0000 | uVar19 >> 0x10) >> 8 | (uVar19 << 0x10 | uVar19 & 0xff00) << 8;
  uVar8 = (DAT_18267947c + 0x4f5cf359) * 0x10000 | DAT_18267947c + 0x4f5cf359 >> 0x10;
  uVar9 = DAT_18267947c + 0x38d1750f | (DAT_18267947c + 0x4f5cf359) * 0x5598eeb1;
  DAT_182679270 = DAT_18267947c + 0xfc9840e5 + (DAT_18267947c + 0x1feee721 & 0xa181e901);
  DAT_1826794cc = DAT_18267947c + 0x1feee721 | DAT_18267947c + 0x454b7985;
  local_4b3c = (uVar6 << 0x10 | uVar10) + DAT_18267947c;
  DAT_1826793f0 = uVar1 - (DAT_18267947c + 0xfc9840e5 & 0xe619d927);
  uVar10 = DAT_18267947c + 0x57b31489;
  DAT_182679490 = DAT_18267947c + 0xd2ac102b | DAT_18267947c;
  uVar21 = DAT_182679334 * (DAT_182679340 | 0x4d8b24c0);
  DAT_1826794a4 = (DAT_182679340 ^ 0x4fc26895) + ~DAT_182679274;
  DAT_182679550 =
       (DAT_18267951c & 0xff0000 | DAT_18267951c >> 0x10) >> 8 |
       (DAT_18267951c << 0x10 | DAT_18267951c & 0xff00) << 8;
  uVar15 = DAT_18267947c + 0x5adc794e;
  DAT_182679360 = DAT_182679500 + 0x7d7a3afc;
  DAT_1826793d8 = DAT_182679568 ^ DAT_182679500;
  DAT_182679434 = ~(DAT_18267947c + 0x43bc1091);
  uVar18 = (uVar15 & 0xff0000 | uVar15 >> 0x10) >> 8;
  DAT_182679268 = uVar18 | (uVar15 * 0x10000 | uVar15 & 0xff00) << 8;
  DAT_182679510 = DAT_182679238 + DAT_18267947c;
  DAT_182679320 =
       (DAT_182679314 & 0xff0000 | DAT_182679314 >> 0x10) >> 8 |
       (DAT_182679314 * 0x10000 | DAT_182679314 & 0xff00) << 8 | DAT_18267947c | 0xf7bf34bd;
  DAT_1826793d4 = DAT_182679288 + DAT_182679470;
  DAT_1826794c0 = DAT_1826794d4 | 0x367bf1b | DAT_18267944c;
  uVar19 = (uVar14 >> 0x10 & 0x300) >> 8;
  if (uVar19 < 2) {
    local_4b28 = DAT_182679340 & 0xd19720ad;
    if (uVar19 == 0) {
      local_4b28 = (uVar14 & 0xff0000 | uVar14 >> 0x10) >> 8 |
                   (uVar14 * 0x10000 | local_4b10 + 0x80404376U & 0xff00) << 8;
    }
  }
  else {
    local_4b28 = DAT_18267947c * 0x2bbdb2fe;
    if (uVar19 < 3) {
      local_4b28 = DAT_182678ef4;
    }
  }
  DAT_182679580 = DAT_182679340 ^ DAT_182679314;
  uVar14 = (DAT_18267947c & 0x3000000) >> 0x18;
  if (uVar14 < 2) {
    uVar19 = DAT_18267947c;
    if (uVar14 == 0) {
      uVar19 = DAT_182679398;
    }
  }
  else {
    uVar19 = DAT_182679454;
    if (uVar14 < 3) {
      uVar19 = DAT_182679470 + 0xa04f2ee9;
    }
  }
  DAT_1826792d4 = DAT_1826793b0 & uVar17;
  DAT_1826792e0 =
       (uVar5 & 0x820000 | (uVar5 & 0x97827035) >> 0x10) >> 8 |
       ((uVar5 & 0x97827035) << 0x10 | uVar5 & 0x7000) << 8;
  DAT_1826793cc = (~DAT_182679454 + (DAT_18267947c ^ 0xeecb2744)) * DAT_18267933c;
  DAT_182679558 = DAT_1826794b4 & (DAT_18267947c & 0xb7a81498) + 0x440a14cb;
  DAT_182679250 = uVar12 - DAT_18267947c ^ DAT_18267947c;
  DAT_182679450 = uVar12 * (DAT_18267947c | 0x360d4864);
  DAT_182679350 = DAT_18267947c + 0x454b7985 | 0x88e1d077 | DAT_18267947c;
  DAT_182679420 = uVar9 ^ uVar8;
  uVar5 = DAT_1826794cc & 3;
  if (uVar5 < 2) {
    if (uVar5 == 0) {
      local_4b3c = DAT_1826794cc;
    }
  }
  else {
    local_4b3c = uVar1;
    if (uVar5 < 3) {
      local_4b3c = DAT_1826793a0;
    }
  }
  DAT_1826793f4 = (DAT_182679370 + DAT_1826792c8) * (DAT_182679530 & 0xa6df57a1);
  uVar14 = (DAT_1826793f0 & 0xff0000 | DAT_1826793f0 >> 0x10) >> 8;
  DAT_182679244 = (DAT_1826793f0 * 0x10000 | DAT_1826793f0 & 0xff00) << 8 | uVar14;
  DAT_18267943c = DAT_1826792c0 - DAT_1826792f4;
  DAT_18267931c =
       (DAT_182679490 & 0xff0000 | DAT_182679490 >> 0x10) >> 8 |
       (DAT_182679490 << 0x10 | DAT_182679490 & 0xff00) << 8;
  uVar5 = (DAT_1826794dc >> 0x10 & 0x300) >> 8;
  if (uVar5 < 2) {
    if (uVar5 == 0) {
      DAT_1826792c8 = DAT_182679370;
    }
  }
  else {
    DAT_1826792c8 = DAT_182679274;
    if (uVar5 < 3) {
      DAT_1826792c8 = DAT_1826794a4;
    }
  }
  DAT_182679304 =
       ((DAT_18267947c << 0x10 & 0xff0000 | DAT_18267947c & 0xffff) >> 8 |
       (uVar2 << 0x10 | uVar2 & 0xff00) << 8) ^ DAT_18267947c;
  DAT_1826792a0 = uVar3 << 0x10 | uVar20;
  DAT_1826792ec = DAT_182679268 * DAT_1826793dc;
  DAT_182679544 = DAT_182679418 & 0xb487c1fa ^ DAT_182679308;
  if ((DAT_18267947c + 0x43bc1091 & 1) == 0) {
    DAT_182679544 = DAT_18267947c + 0x43bc1091;
  }
  DAT_1826794f4 = ~DAT_182679238;
  DAT_182679440 = uVar21 * 0x10000 | uVar21 >> 0x10;
  DAT_1826792b4 = DAT_182678f5c + DAT_182679434;
  DAT_1826793ec = DAT_182679500 + 0x3e824516 | DAT_182679414;
  DAT_18267955c = DAT_18267947c | 0xf7bf34bd | DAT_182678ef4;
  DAT_1826792f0 = (DAT_182679398 + 0x80404376) - local_4af8;
  DAT_182679518 = DAT_18267944c << 0x10 | DAT_18267944c >> 0x10;
  uVar5 = DAT_182679580 - (local_4b10 + -0x7fbfbc8a);
  DAT_182679478 = uVar19 | DAT_18267942c;
  DAT_182679258 = DAT_1826794f0 * uVar7 + DAT_182679314;
  DAT_182679330 = DAT_1826793b0 + DAT_182679340;
  DAT_182679408 = uVar17 << 0x10 | uVar17 >> 0x10;
  DAT_182679448 = DAT_1826792ac + DAT_182679454 * -0x6e46f4e3;
  DAT_18267939c = DAT_182679584 & DAT_1826793cc ^ 0x4261533;
  DAT_18267934c = DAT_182679450 + DAT_182679428;
  DAT_18267956c = DAT_182679350 * DAT_182679250;
  DAT_18267954c = (uVar9 << 0x10 | uVar9 & 0xff00) << 8 | (uVar9 & 0xff0000 | uVar9 >> 0x10) >> 8;
  DAT_1826794b8 = ~DAT_182679554 * (DAT_18267947c + 0x454b7985) & DAT_18267947c;
  DAT_182678f58 = DAT_182679428 + uVar8;
  DAT_182679528 = DAT_1826792c0 * DAT_182679340;
  DAT_182679488 = local_4b3c - DAT_182679554;
  DAT_182679484 = DAT_182679420 << 0x10 | DAT_182679420 >> 0x10;
  DAT_182679514 = DAT_1826793a0 - DAT_18267943c;
  DAT_182678f50 = DAT_182679244 - uVar6;
  DAT_182679588 = DAT_1826793f0 * (DAT_18267947c + 0x1feee721);
  DAT_182679504 =
       ((uVar10 & 0xff0000 | uVar10 >> 0x10) >> 8 | (uVar10 * 0x10000 | uVar10 & 0xff00) << 8) *
       DAT_182679370;
  DAT_182678f6c = DAT_182679490 << 0x10 | DAT_182679490 >> 0x10;
  DAT_1826793e4 = DAT_1826794a4 ^ DAT_1826794dc;
  DAT_182679380 = DAT_1826793dc * 0x10000 | DAT_1826793dc >> 0x10;
  DAT_182679564 = DAT_18267926c + DAT_182679340;
  DAT_182679534 = (uVar11 | DAT_182679414) & DAT_182679434 + DAT_182678f5c;
  DAT_1826793f8 = DAT_182679268 + DAT_182679334 * 0x522f926e;
  DAT_182679358 = (uVar11 | DAT_182679414) + DAT_182679360 + DAT_18267947c + 0x43bc1091;
  DAT_182679234 = DAT_182679414 * -0x2a070000 | DAT_182678f5c >> 0x10;
  DAT_182679290 = DAT_182679440 + DAT_1826793ec;
  uVar10 = DAT_1826794c4 & 3;
  if (uVar10 < 2) {
    DAT_18267932c = DAT_182679470;
    if (uVar10 == 0) {
      DAT_18267932c = DAT_1826794c4;
    }
  }
  else {
    DAT_18267932c =
         (DAT_182679334 & 0xff0000 | DAT_182679334 >> 0x10) >> 8 |
         (DAT_182679334 << 0x10 | DAT_182679334 & 0xff00) << 8;
    if (uVar10 < 3) {
      DAT_18267932c = DAT_182679510;
    }
  }
  DAT_1826793a4 =
       ((DAT_1826793d4 & 0xff0000 | DAT_1826793d4 >> 0x10) >> 8) << 0x10 |
       (DAT_1826793d4 * 0x10000 & 0xffffff | DAT_1826793d4 & 0xff00) >> 8;
  DAT_1826794fc = DAT_182679340 & DAT_182679288;
  DAT_182679294 = ~(local_4af8 * (DAT_18267947c & 0x5fb0d117 | 0xd2ac102b));
  DAT_182679368 = DAT_182679580 - (DAT_1826794c0 << 0x10 | DAT_1826794c0 >> 0x10);
  DAT_182679354 = uVar5 * 0x10000 | uVar5 >> 0x10;
  DAT_1826793b8 = local_4b28 & DAT_182679394 * DAT_182678ef4;
  DAT_18267952c = DAT_18267942c | DAT_182679478;
  DAT_182679424 = DAT_182679394 - DAT_182678ef4;
  DAT_182679548 =
       (DAT_182679454 & 0xff0000 | DAT_182679454 >> 0x10) >> 8 |
       (DAT_182679454 << 0x10 | DAT_182679454 & 0xff00) << 8;
  DAT_182679348 = DAT_182679314 * 0x10000 | DAT_182679314 >> 0x10;
  DAT_1826793e8 = DAT_1826792d4 ^ DAT_182679450;
  DAT_1826792e8 = DAT_1826793b0 & DAT_182679448;
  DAT_182679384 = DAT_182679408 * DAT_1826793cc;
  DAT_182679280 = ~DAT_1826792ac;
  DAT_182679464 = DAT_18267934c * DAT_182679558;
  DAT_182679260 = DAT_18267956c - DAT_182679584;
  DAT_182679388 = DAT_182679528 ^ DAT_182679488;
  DAT_1826793fc = DAT_1826794b8 * DAT_182678f58;
  DAT_182679344 = DAT_182679428 | DAT_182679340;
  DAT_18267928c = DAT_182679420 * DAT_1826792c0;
  DAT_18267940c = DAT_182679554 + DAT_18267954c;
  DAT_182679474 = DAT_182679350 | DAT_182679484;
  DAT_182679324 =
       (DAT_1826793a0 & 0xff0000 | DAT_1826793a0 >> 0x10) >> 8 |
       (DAT_1826793a0 << 0x10 | DAT_1826793a0 & 0xff00) << 8;
  DAT_182678f54 =
       (uVar14 << 0x10 | (DAT_1826793f0 & 0xff0000) >> 8) << 8 |
       ((DAT_1826793f0 & 0xff00) << 8 | (DAT_1826793f0 * 0x10000 & 0xffffff) >> 8) >> 8;
  uVar10 = DAT_182679240 & 7;
  if (uVar10 < 4) {
    if (1 < uVar10) {
      DAT_1826793c8 = DAT_18267943c;
      if (uVar10 < 3) {
        DAT_1826793c8 = DAT_182679514;
      }
      goto LAB_1817231ea;
    }
    bVar22 = uVar10 == 0;
    uVar10 = DAT_182679240;
    DAT_1826793c8 = DAT_1826793f4;
  }
  else {
    if (uVar10 < 6) {
      DAT_1826793c8 = DAT_182679588;
      if (uVar10 < 5) {
        DAT_1826793c8 = DAT_1826794cc;
      }
      goto LAB_1817231ea;
    }
    bVar22 = uVar10 < 7;
    uVar10 = DAT_18267947c + 0x1feee721;
    DAT_1826793c8 = DAT_182679490;
  }
  if (bVar22) {
    DAT_1826793c8 = uVar10;
  }
LAB_1817231ea:
  DAT_1826794b0 = DAT_182678f6c * DAT_18267931c;
  DAT_1826793c0 = DAT_1826792c8 << 0x10 | DAT_1826792c8 >> 0x10;
  DAT_182679364 = uVar20 << 0x10 | uVar3;
  DAT_182679438 =
       (DAT_1826794a4 & 0xff0000 | DAT_1826794a4 >> 0x10) >> 8 |
       (DAT_1826794a4 * 0x10000 | DAT_1826794a4 & 0xff00) << 8;
  DAT_1826792c4 = DAT_182679340 | DAT_182679500;
  DAT_182679574 = ~DAT_1826793e4;
  DAT_182679404 = DAT_1826794dc << 0x10 | DAT_1826794dc >> 0x10;
  DAT_1826792f8 = (DAT_18267947c + 0xd2ac102b) * 0x10000 | DAT_18267947c + 0xd2ac102b >> 0x10;
  DAT_182679570 = DAT_182679550 ^ DAT_182678f50;
  DAT_1826794c8 = DAT_182679274 * DAT_18267951c;
  DAT_1826792d8 = DAT_18267958c & DAT_182679370;
  DAT_182679378 = DAT_1826792ec * DAT_1826792f4;
  DAT_1826792b8 = DAT_1826794ac + DAT_182679504;
  DAT_18267941c = DAT_1826793d8 - DAT_18267947c;
  DAT_1826794ec = DAT_182679360 ^ DAT_182679500 + 0xe00413bf;
  DAT_182679338 = ~DAT_182679418;
  DAT_18267923c = (DAT_182679434 + DAT_182678f5c) * DAT_182679380;
  DAT_1826792dc = DAT_1826793f8 | DAT_182679568;
  DAT_182679400 = DAT_1826794f4 ^ DAT_182679304;
  DAT_18267957c =
       (DAT_182679534 & 0xff0000 | DAT_182679534 >> 0x10) >> 8 |
       (DAT_182679534 << 0x10 | DAT_182679534 & 0xff00) << 8;
  DAT_1826793bc = DAT_182679434 ^ DAT_182679308;
  DAT_182678f64 =
       ((uVar15 & 0xff00) << 8 | (uVar15 * 0x10000 & 0xffffff) >> 8) >> 8 |
       (uVar18 << 0x10 | (uVar15 & 0xff0000) >> 8) << 8;
  DAT_18267949c = DAT_182679358 * 0x10000 | DAT_182679358 >> 0x10;
  DAT_1826792d0 = uVar2 << 0x10 | DAT_18267947c & 0xffff;
  DAT_18267930c = DAT_182679440 | DAT_182679334;
  DAT_1826794e8 = DAT_182679544 - DAT_182679564;
  DAT_182679460 = DAT_182679478 * DAT_182679354;
  DAT_182679540 = DAT_182679290 ^ DAT_182678f5c;
  DAT_182679458 = DAT_1826793a4 * DAT_182679510;
  DAT_1826792b0 = DAT_182679340 - DAT_18267926c;
  DAT_182679254 = DAT_1826794d4 | DAT_182679278;
  DAT_1826794d8 = DAT_182679294 * DAT_18267944c;
  DAT_182679578 = DAT_1826793ec | DAT_182679518;
  DAT_182679328 = DAT_182679368 ^ DAT_1826794c4;
  DAT_1826794d0 = DAT_18267955c & DAT_1826793ac;
  DAT_182679310 = local_4b10 + -0x7fbfbc8a + DAT_18267932c;
  DAT_182678f60 = DAT_182679320 << 0x10 | DAT_182679320 >> 0x10;
  DAT_1826792e4 = DAT_1826794fc * DAT_1826792f0;
  DAT_1826794e0 = DAT_1826794c0 - DAT_182679340;
  DAT_182679154 = 0x138;
  DAT_1826793b4 =
       (DAT_182679394 & 0xff0000 | DAT_182679394 >> 0x10) >> 8 |
       ((DAT_18267947c + 0x4f5cf359) * 0x33300000 | DAT_182679394 & 0xff00) << 8;
  DAT_182679298 = DAT_1826793b8 - DAT_1826792e0;
  DAT_182679444 = DAT_182679580 & DAT_182679398;
  DAT_1826793c4 = DAT_182679258 * DAT_182679454;
  DAT_18267924c = ~DAT_18267942c;
  DAT_18267953c = DAT_1826793e8 - DAT_18267952c;
  DAT_1826792fc = DAT_182679330 + DAT_182678ef4;
  DAT_182679264 = DAT_1826792d4 * DAT_182679314;
  DAT_182679374 = DAT_182679424 * DAT_182679548;
  DAT_182678f68 = DAT_182679348 - DAT_1826794b4;
  DAT_1826794a8 = DAT_18267933c ^ DAT_1826793cc;
  DAT_182679410 = DAT_182679408 ^ DAT_1826793b0;
  DAT_18267929c = DAT_182679450 | DAT_182679448;
  local_48 = &local_49e8;
  local_50 = param_5;
  DAT_182679468 = &local_70;
  iVar4 = 0x79;
  DAT_1826792a8 = DAT_182678ef4;
  DAT_18267937c = DAT_182679244;
  DAT_182679390 = DAT_182679340;
  DAT_1826793e0 = DAT_182679340;
  DAT_182679430 = DAT_182678ef4;
  DAT_182679498 = DAT_182679428;
  DAT_1826794a0 = DAT_182679340;
  DAT_182679508 = DAT_18267947c;
  DAT_182679538 = DAT_182679238;
  DAT_182679560 = DAT_182679340;
  local_4b58 = DAT_1826794fc;
  local_4b54 = DAT_182679428;
  local_4b50 = DAT_182679484;
  local_4b4c = DAT_1826793a4;
  local_4b48 = DAT_182679354;
  local_4b44 = DAT_182679478;
  local_4b40 = DAT_182679548;
  local_4b3c = DAT_182679488;
  local_4b38 = DAT_182679334;
  local_4b34 = DAT_182679450;
  local_4b30 = DAT_182679320;
  local_4b2c = DAT_1826793e8;
  local_4b28 = DAT_1826793b8;
  local_4b24 = DAT_182679448;
  local_4b20 = DAT_182679580;
  local_4b1c = DAT_1826792ac;
  local_4b18 = DAT_1826794b8;
  local_4b14 = DAT_182679544;
  local_4b0c = DAT_182679454;
  local_4b08 = DAT_1826793cc;
  local_4b04 = DAT_182679408;
  local_4b00 = DAT_18267956c;
  local_4afc = DAT_182679368;
  local_4af8 = DAT_18267954c;
  local_4af4 = DAT_182679294;
  local_4af0 = DAT_182679420;
  local_4aec = DAT_182679434;
  local_4ae8 = DAT_182679268;
  local_4ae4 = DAT_18267943c;
  local_4ae0 = DAT_1826793b0;
  local_4adc = DAT_1826794c0;
  local_4ad8 = DAT_182679588;
  local_4ad4 = DAT_182679370;
  local_4ad0 = DAT_182679350;
  local_4acc = DAT_18267955c;
  local_4ac8 = DAT_182679490;
  local_4ac4 = DAT_182679528;
  local_4ac0 = DAT_182678f6c;
  local_4abc = DAT_1826794cc;
  local_4ab8 = DAT_182679584;
  local_4ab4 = DAT_1826793ec;
  local_4ab0 = DAT_1826793d4;
  local_4aac = DAT_1826792d4;
  local_4aa8 = DAT_1826794b4;
  local_4aa4 = DAT_182679440;
  local_4aa0 = DAT_1826793ac;
  local_4a9c = DAT_18267942c;
  local_4a98 = DAT_18267933c;
  local_4a94 = DAT_182679274;
  local_4a90 = DAT_1826792c0;
  local_4a8c = DAT_182679554;
  local_4a88 = DAT_1826793a0;
  local_4a84 = DAT_1826793f4;
  local_4a80 = DAT_1826794a4;
  local_4a7c = DAT_1826794dc;
  local_4a78 = DAT_182679550;
  local_4a74 = DAT_182679504;
  local_4a70 = DAT_182679304;
  local_4a6c = DAT_182679558;
  local_4a68 = DAT_18267934c;
  local_4a64 = DAT_18267944c;
  local_4a60 = DAT_182679234;
  local_4a5c = DAT_1826794ac;
  local_4a58 = DAT_182679568;
  local_4a54 = DAT_182679308;
  local_4a50 = DAT_18267951c;
  local_4a4c = DAT_18267926c;
  local_4a48 = DAT_1826794d4;
  local_4a44 = DAT_1826792f4;
  local_4a40 = DAT_182679240;
  local_4a3c = DAT_182679514;
  local_4a38 = DAT_1826792a0;
  local_4a34 = DAT_1826793e4;
  local_4a30 = DAT_182678f50;
  local_4a2c = DAT_18267958c;
  local_4a28 = DAT_1826792ec;
  local_4a24 = DAT_1826793d8;
  local_4a20 = DAT_182679380;
  local_4a1c = DAT_1826793f8;
  local_4a18 = DAT_1826794f4;
  local_4a14 = DAT_182679418;
  local_4a10 = DAT_182679534;
  local_4a0c = DAT_182679358;
  local_4a08 = DAT_182679290;
  local_4a04 = DAT_182679518;
  local_4a00 = DAT_1826792f0;
  local_49fc = DAT_1826792e0;
  local_49f8 = DAT_182679258;
  local_49f4 = DAT_18267952c;
  local_49f0 = DAT_182679424;
  local_49ec = DAT_182679348;
  local_49e0 = param_3;
  local_49d8 = param_4;
  local_49d0 = param_2;
  local_49c8 = param_1;
  local_70 = param_1;
  local_68 = param_2;
  local_60 = param_3;
  local_58 = param_4;
  do {
    iVar4 = (**(code **)(&DAT_182477b00 + (longlong)iVar4 * 8))();
  } while (iVar4 != 0);
  DAT_182679468 = DAT_182679468 + 6;
}



############ FUN_ 180575180 size=594 ############

undefined8 *
FUN_180575180(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  *param_1 = pace::eden::thrift::pub::AuthChain::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  *(undefined2 *)(param_1 + 4) = 0;
  *(undefined4 *)((longlong)param_1 + 0x24) = 0;
  FUN_180487940(param_1 + 5,&DAT_18249336a,param_3,param_4,0xfffffffffffffffe);
  FUN_180487940(param_1 + 9,&DAT_18249336a);
  param_1[0xd] = 0;
  param_1[0xe] = 0xffffffffffffffff;
  FUN_180487940(param_1 + 0xf,&DAT_18249336a);
  *(undefined1 *)(param_1 + 0x13) = 0;
  *(undefined4 *)((longlong)param_1 + 0x9c) = 0;
  param_1[0x14] = pace::eden::thrift::pub::RemoteServerInfo::vftable;
  FUN_180487940(param_1 + 0x15,&DAT_18249336a);
  FUN_180487940(param_1 + 0x19,&DAT_18249336a);
  *(undefined4 *)(param_1 + 0x1d) = 0;
  param_1[0x1e] = 0;
  param_1[0x1f] = 0;
  param_1[0x20] = 0;
  param_1[0x21] = 0;
  FUN_180487940(param_1 + 0x22,&DAT_18249336a);
  FUN_180487940(param_1 + 0x26,&DAT_18249336a);
  FUN_180487940(param_1 + 0x2a,&DAT_18249336a);
  *(undefined4 *)(param_1 + 0x2e) = 0;
  FUN_180487940(param_1 + 0x2f,&DAT_18249336a);
  FUN_180487940(param_1 + 0x33,&DAT_18249336a);
  FUN_180487940(param_1 + 0x37,&DAT_18249336a);
  param_1[0x3b] = 0;
  param_1[0x3c] = 0;
  *(undefined1 *)(param_1 + 0x3d) = 0;
  *(undefined1 *)((longlong)param_1 + 500) = 0;
  param_1[0x3f] = 0;
  param_1[0x40] = 0;
  param_1[0x41] = 0;
  param_1[0x42] = 0;
  param_1[0x43] = pace::eden::thrift::pub::SharedLicenseInfo::vftable;
  param_1[0x44] = 0;
  FUN_180487940(param_1 + 0x45,&DAT_18249336a);
  FUN_180487940(param_1 + 0x49,&DAT_18249336a);
  *(undefined4 *)(param_1 + 0x4d) = 1;
  *(undefined8 *)((longlong)param_1 + 0x26c) = 1;
  *(undefined4 *)((longlong)param_1 + 0x274) = 0;
  param_1[0x4f] = 0;
  param_1[0x50] = 0;
  param_1[0x51] = 0;
  param_1[0x52] = 0;
  param_1[0x53] = 0;
  *(undefined2 *)(param_1 + 0x54) = 0;
  param_1[0x55] = 0;
  param_1[0x56] = 0;
  param_1[0x57] = 0;
  param_1[0x58] = 0;
  param_1[0x59] = 0;
  param_1[0x5a] = 0;
  param_1[0x5b] = 0;
  param_1[0x5c] = 0;
  *(undefined2 *)(param_1 + 0x5d) = 0;
  *(undefined1 *)((longlong)param_1 + 0x2ea) = 0;
  *(undefined4 *)(param_1 + 0x3e) = 0;
  return param_1;
}



############ FUN_ 181a01ad0 size=9263 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x000181a03195) */
/* WARNING: Removing unreachable block (ram,0x000181a0319b) */
/* WARNING: Removing unreachable block (ram,0x000181a031a0) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_181a01ad0(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,
                  undefined8 param_6)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  bool bVar34;
  undefined1 auStack_af38 [32];
  uint local_af18;
  uint local_af14;
  uint local_af10;
  uint local_af0c;
  uint local_af08;
  uint local_af04;
  int local_af00;
  uint local_aefc;
  uint local_aef8;
  uint local_aef4;
  uint local_aef0;
  uint local_aeec;
  uint local_aee8;
  uint local_aee4;
  uint local_aee0;
  uint local_aedc;
  uint local_aed8;
  uint local_aed4;
  uint local_aed0;
  uint local_aecc;
  uint local_aec8;
  uint local_aec4;
  uint local_aec0;
  uint local_aebc;
  uint local_aeb8;
  int local_aeb4;
  uint local_aeb0;
  uint local_aeac;
  uint local_aea8;
  uint local_aea4;
  int local_aea0;
  uint local_ae9c;
  int local_ae98;
  uint local_ae94;
  uint local_ae90;
  uint local_ae8c;
  uint local_ae88;
  uint local_ae84;
  uint local_ae80;
  uint local_ae7c;
  uint local_ae78;
  uint local_ae74;
  uint local_ae70;
  uint local_ae6c;
  uint local_ae68;
  uint local_ae64;
  uint local_ae60;
  uint local_ae5c;
  uint local_ae58;
  uint local_ae54;
  uint local_ae50;
  uint local_ae4c;
  uint local_ae48;
  uint local_ae44;
  uint local_ae40;
  int local_ae3c;
  uint local_ae38;
  int local_ae34;
  uint local_ae30;
  uint local_ae2c;
  uint local_ae28;
  uint local_ae24;
  uint local_ae20;
  uint local_ae1c;
  uint local_ae18;
  uint local_ae14;
  uint local_ae10;
  uint local_ae0c;
  uint local_ae08;
  uint local_ae04;
  uint local_ae00;
  uint local_adfc;
  uint local_adf8;
  uint local_adf4;
  uint local_adf0;
  uint local_adec;
  uint local_ade8;
  uint local_ade4;
  uint local_ade0;
  uint local_addc;
  uint local_add8;
  uint local_add4;
  uint local_add0;
  uint local_adcc;
  uint local_adc8;
  uint local_adc4;
  uint local_adc0;
  uint local_adbc;
  uint local_adb8;
  uint local_adb4;
  uint local_adb0;
  uint local_adac;
  uint local_ada8;
  uint local_ada4;
  uint local_ada0;
  uint local_ad9c;
  uint local_ad98;
  uint local_ad90 [2];
  byte *local_ad88;
  byte *local_ad80;
  byte *local_ad78;
  byte *local_ad70;
  undefined1 local_ad68 [44272];
  byte *local_78;
  byte *local_70;
  byte *local_68;
  byte *local_60;
  byte *local_58;
  undefined8 local_50;
  uint *local_48;
  ulonglong local_38;
  undefined8 uStack_30;
  
  uStack_30 = 0x181a01af2;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_af38;
  DAT_18267a8c8 = 0x811c9dc5;
  if (DAT_18267a9fc == 0) {
    DAT_18267a9fc = 1;
    _DAT_182632368 = &DAT_18262e940 + (longlong)_DAT_182632368;
    _DAT_182632370 = &DAT_18262e940 + (longlong)_DAT_182632370;
    _DAT_182632b78 = &DAT_18262e940 + (longlong)_DAT_182632b78;
    _DAT_182632b80 = &DAT_18262e940 + (longlong)_DAT_182632b80;
    _DAT_182633588 = &DAT_18262e940 + (longlong)_DAT_182633588;
    _DAT_182633590 = &DAT_18262e940 + (longlong)_DAT_182633590;
    _DAT_182633598 = &DAT_18262e940 + (longlong)_DAT_182633598;
    _DAT_1826339a0 = &DAT_18262e940 + (longlong)_DAT_1826339a0;
    _DAT_1826339a8 = &DAT_18262e940 + (longlong)_DAT_1826339a8;
    _DAT_182633db0 = &DAT_18262e940 + (longlong)_DAT_182633db0;
  }
  DAT_18267a9b0 = 0;
  _DAT_18267aa20 = local_ad68;
  if (param_1 != (byte *)0x0) {
    DAT_18267a8c8 =
         ((((((((((((((((((((((((((((((((*param_1 ^ 0x811c9dc5) * 0x1000193 ^ (uint)param_1[1]) *
                                       0x1000193 ^ (uint)param_1[2]) * 0x1000193 ^ (uint)param_1[3])
                                     * 0x1000193 ^ (uint)param_1[4]) * 0x1000193 ^ (uint)param_1[5])
                                   * 0x1000193 ^ (uint)param_1[6]) * 0x1000193 ^ (uint)param_1[7]) *
                                 0x1000193 ^ (uint)param_1[8]) * 0x1000193 ^ (uint)param_1[9]) *
                               0x1000193 ^ (uint)param_1[10]) * 0x1000193 ^ (uint)param_1[0xb]) *
                             0x1000193 ^ (uint)param_1[0xc]) * 0x1000193 ^ (uint)param_1[0xd]) *
                           0x1000193 ^ (uint)param_1[0xe]) * 0x1000193 ^ (uint)param_1[0xf]) *
                         0x1000193 ^ (uint)param_1[0x10]) * 0x1000193 ^ (uint)param_1[0x11]) *
                       0x1000193 ^ (uint)param_1[0x12]) * 0x1000193 ^ (uint)param_1[0x13]) *
                     0x1000193 ^ (uint)param_1[0x14]) * 0x1000193 ^ (uint)param_1[0x15]) * 0x1000193
                  ^ (uint)param_1[0x16]) * 0x1000193 ^ (uint)param_1[0x17]) * 0x1000193 ^
                (uint)param_1[0x18]) * 0x1000193 ^ (uint)param_1[0x19]) * 0x1000193 ^
              (uint)param_1[0x1a]) * 0x1000193 ^ (uint)param_1[0x1b]) * 0x1000193 ^
            (uint)param_1[0x1c]) * 0x1000193 ^ (uint)param_1[0x1d]) * 0x1000193 ^
          (uint)param_1[0x1e]) * 0x1000193 ^ (uint)param_1[0x1f]) * 0x1000193;
  }
  if (param_2 != (byte *)0x0) {
    DAT_18267a8c8 =
         ((((((((((((((((((((((((((((((((DAT_18267a8c8 ^ *param_2) * 0x1000193 ^ (uint)param_2[1]) *
                                       0x1000193 ^ (uint)param_2[2]) * 0x1000193 ^ (uint)param_2[3])
                                     * 0x1000193 ^ (uint)param_2[4]) * 0x1000193 ^ (uint)param_2[5])
                                   * 0x1000193 ^ (uint)param_2[6]) * 0x1000193 ^ (uint)param_2[7]) *
                                 0x1000193 ^ (uint)param_2[8]) * 0x1000193 ^ (uint)param_2[9]) *
                               0x1000193 ^ (uint)param_2[10]) * 0x1000193 ^ (uint)param_2[0xb]) *
                             0x1000193 ^ (uint)param_2[0xc]) * 0x1000193 ^ (uint)param_2[0xd]) *
                           0x1000193 ^ (uint)param_2[0xe]) * 0x1000193 ^ (uint)param_2[0xf]) *
                         0x1000193 ^ (uint)param_2[0x10]) * 0x1000193 ^ (uint)param_2[0x11]) *
                       0x1000193 ^ (uint)param_2[0x12]) * 0x1000193 ^ (uint)param_2[0x13]) *
                     0x1000193 ^ (uint)param_2[0x14]) * 0x1000193 ^ (uint)param_2[0x15]) * 0x1000193
                  ^ (uint)param_2[0x16]) * 0x1000193 ^ (uint)param_2[0x17]) * 0x1000193 ^
                (uint)param_2[0x18]) * 0x1000193 ^ (uint)param_2[0x19]) * 0x1000193 ^
              (uint)param_2[0x1a]) * 0x1000193 ^ (uint)param_2[0x1b]) * 0x1000193 ^
            (uint)param_2[0x1c]) * 0x1000193 ^ (uint)param_2[0x1d]) * 0x1000193 ^
          (uint)param_2[0x1e]) * 0x1000193 ^ (uint)param_2[0x1f]) * 0x1000193;
  }
  if (param_3 != (byte *)0x0) {
    DAT_18267a8c8 =
         ((((((((((((((((((((((((((((((((DAT_18267a8c8 ^ *param_3) * 0x1000193 ^ (uint)param_3[1]) *
                                       0x1000193 ^ (uint)param_3[2]) * 0x1000193 ^ (uint)param_3[3])
                                     * 0x1000193 ^ (uint)param_3[4]) * 0x1000193 ^ (uint)param_3[5])
                                   * 0x1000193 ^ (uint)param_3[6]) * 0x1000193 ^ (uint)param_3[7]) *
                                 0x1000193 ^ (uint)param_3[8]) * 0x1000193 ^ (uint)param_3[9]) *
                               0x1000193 ^ (uint)param_3[10]) * 0x1000193 ^ (uint)param_3[0xb]) *
                             0x1000193 ^ (uint)param_3[0xc]) * 0x1000193 ^ (uint)param_3[0xd]) *
                           0x1000193 ^ (uint)param_3[0xe]) * 0x1000193 ^ (uint)param_3[0xf]) *
                         0x1000193 ^ (uint)param_3[0x10]) * 0x1000193 ^ (uint)param_3[0x11]) *
                       0x1000193 ^ (uint)param_3[0x12]) * 0x1000193 ^ (uint)param_3[0x13]) *
                     0x1000193 ^ (uint)param_3[0x14]) * 0x1000193 ^ (uint)param_3[0x15]) * 0x1000193
                  ^ (uint)param_3[0x16]) * 0x1000193 ^ (uint)param_3[0x17]) * 0x1000193 ^
                (uint)param_3[0x18]) * 0x1000193 ^ (uint)param_3[0x19]) * 0x1000193 ^
              (uint)param_3[0x1a]) * 0x1000193 ^ (uint)param_3[0x1b]) * 0x1000193 ^
            (uint)param_3[0x1c]) * 0x1000193 ^ (uint)param_3[0x1d]) * 0x1000193 ^
          (uint)param_3[0x1e]) * 0x1000193 ^ (uint)param_3[0x1f]) * 0x1000193;
  }
  if (param_4 != (byte *)0x0) {
    DAT_18267a8c8 =
         ((((((((((((((((((((((((((((((((DAT_18267a8c8 ^ *param_4) * 0x1000193 ^ (uint)param_4[1]) *
                                       0x1000193 ^ (uint)param_4[2]) * 0x1000193 ^ (uint)param_4[3])
                                     * 0x1000193 ^ (uint)param_4[4]) * 0x1000193 ^ (uint)param_4[5])
                                   * 0x1000193 ^ (uint)param_4[6]) * 0x1000193 ^ (uint)param_4[7]) *
                                 0x1000193 ^ (uint)param_4[8]) * 0x1000193 ^ (uint)param_4[9]) *
                               0x1000193 ^ (uint)param_4[10]) * 0x1000193 ^ (uint)param_4[0xb]) *
                             0x1000193 ^ (uint)param_4[0xc]) * 0x1000193 ^ (uint)param_4[0xd]) *
                           0x1000193 ^ (uint)param_4[0xe]) * 0x1000193 ^ (uint)param_4[0xf]) *
                         0x1000193 ^ (uint)param_4[0x10]) * 0x1000193 ^ (uint)param_4[0x11]) *
                       0x1000193 ^ (uint)param_4[0x12]) * 0x1000193 ^ (uint)param_4[0x13]) *
                     0x1000193 ^ (uint)param_4[0x14]) * 0x1000193 ^ (uint)param_4[0x15]) * 0x1000193
                  ^ (uint)param_4[0x16]) * 0x1000193 ^ (uint)param_4[0x17]) * 0x1000193 ^
                (uint)param_4[0x18]) * 0x1000193 ^ (uint)param_4[0x19]) * 0x1000193 ^
              (uint)param_4[0x1a]) * 0x1000193 ^ (uint)param_4[0x1b]) * 0x1000193 ^
            (uint)param_4[0x1c]) * 0x1000193 ^ (uint)param_4[0x1d]) * 0x1000193 ^
          (uint)param_4[0x1e]) * 0x1000193 ^ (uint)param_4[0x1f]) * 0x1000193;
  }
  if (param_5 != (byte *)0x0) {
    DAT_18267a8c8 =
         ((((((((((((((((((((((((((((((((DAT_18267a8c8 ^ *param_5) * 0x1000193 ^ (uint)param_5[1]) *
                                       0x1000193 ^ (uint)param_5[2]) * 0x1000193 ^ (uint)param_5[3])
                                     * 0x1000193 ^ (uint)param_5[4]) * 0x1000193 ^ (uint)param_5[5])
                                   * 0x1000193 ^ (uint)param_5[6]) * 0x1000193 ^ (uint)param_5[7]) *
                                 0x1000193 ^ (uint)param_5[8]) * 0x1000193 ^ (uint)param_5[9]) *
                               0x1000193 ^ (uint)param_5[10]) * 0x1000193 ^ (uint)param_5[0xb]) *
                             0x1000193 ^ (uint)param_5[0xc]) * 0x1000193 ^ (uint)param_5[0xd]) *
                           0x1000193 ^ (uint)param_5[0xe]) * 0x1000193 ^ (uint)param_5[0xf]) *
                         0x1000193 ^ (uint)param_5[0x10]) * 0x1000193 ^ (uint)param_5[0x11]) *
                       0x1000193 ^ (uint)param_5[0x12]) * 0x1000193 ^ (uint)param_5[0x13]) *
                     0x1000193 ^ (uint)param_5[0x14]) * 0x1000193 ^ (uint)param_5[0x15]) * 0x1000193
                  ^ (uint)param_5[0x16]) * 0x1000193 ^ (uint)param_5[0x17]) * 0x1000193 ^
                (uint)param_5[0x18]) * 0x1000193 ^ (uint)param_5[0x19]) * 0x1000193 ^
              (uint)param_5[0x1a]) * 0x1000193 ^ (uint)param_5[0x1b]) * 0x1000193 ^
            (uint)param_5[0x1c]) * 0x1000193 ^ (uint)param_5[0x1d]) * 0x1000193 ^
          (uint)param_5[0x1e]) * 0x1000193 ^ (uint)param_5[0x1f]) * 0x1000193;
  }
  DAT_18267a728 = DAT_18267a8c8 * 0x7a0dcc15;
  iVar4 = DAT_18267a8c8 + 0xba27285;
  DAT_18267a7ac = DAT_18267a8c8 * -0x69cf18cb;
  uVar32 = DAT_18267a8c8 ^ 0x5237b5b9;
  DAT_18267a870 = DAT_18267a8c8 & 0x7ada6b0c;
  DAT_18267a70c = 0x3525ba9e;
  uVar28 = DAT_18267a8c8 & 3;
  DAT_18267a7a8 = 0x84687d90;
  DAT_18267a94c = 0x1717acec;
  DAT_18267a988 = 0xabed066d;
  DAT_18267a7fc = 0x793ea425;
  DAT_18267a99c = 0x1e459a7d;
  DAT_18267a75c = 0xa1eef78e;
  DAT_18267a974 = 0xb318946;
  DAT_18267a790 = 0x4e5c31a8;
  DAT_18267a838 = 0x5136869a;
  DAT_18267a8ec = 0x84e80b9a;
  DAT_18267a924 = 0x4607a69f;
  DAT_18267a7ec = 0xa45026d;
  DAT_18267a91c = 0x6e0d1adf;
  DAT_18267a714 = 0xd26a8fc0;
  DAT_18267a860 = 0xe8e85313;
  DAT_18267a910 = 0x4e42b5b0;
  DAT_18267a734 = 0xd5fe8f9a;
  DAT_18267a6d8 = 0xc19f290f;
  DAT_18267a6ec = 0x6d06edab;
  if (uVar28 < 2) {
    uVar26 = 0x23de18ad;
    if (uVar28 == 0) {
      uVar26 = DAT_18267a8c8;
    }
  }
  else {
    uVar26 = 0xfb2322cc;
    if (uVar28 < 3) {
      uVar26 = 0x10a83609;
    }
  }
  uVar31 = DAT_18267a8c8 ^ 0x5ccfa92;
  uVar5 = DAT_18267a8c8 & 7;
  if (uVar5 < 4) {
    if (uVar5 < 2) {
      uVar27 = 0xcddee17;
      if (uVar5 == 0) {
        uVar27 = DAT_18267a8c8;
      }
      goto LAB_181a025b6;
    }
    uVar6 = 0x75559ca6;
    uVar27 = 0x1b1457bc;
    bVar34 = uVar5 < 3;
  }
  else if (uVar5 < 6) {
    uVar6 = 0xcf8b269;
    uVar27 = 0x99c8e52a;
    bVar34 = uVar5 < 5;
  }
  else {
    uVar6 = 0xfcbaf1c9;
    uVar27 = 0xbcb54562;
    bVar34 = uVar5 < 7;
  }
  if (bVar34) {
    uVar27 = uVar6;
  }
LAB_181a025b6:
  uVar6 = uVar32 | 0xf2cd9918;
  DAT_18267a8b0 = DAT_18267a8c8 & 0x371e17a7;
  DAT_18267a834 = DAT_18267a728 + 0xfe3dc632;
  uVar5 = DAT_18267a7ac + 0xae1c29e6;
  if (uVar28 < 2) {
    _DAT_18267a8e0 = 0xcdf8d345;
    if (uVar28 == 0) {
      _DAT_18267a8e0 = DAT_18267a8c8;
    }
  }
  else {
    _DAT_18267a8e0 = 0x66ed99a;
    if (uVar28 < 3) {
      _DAT_18267a8e0 = 0x8660403a;
    }
  }
  uVar7 = DAT_18267a8c8 | 0xb9fc49dc;
  DAT_18267a85c =
       (uVar31 & 0xff0000 | uVar31 >> 0x10) >> 8 | (uVar31 << 0x10 | uVar31 & 0xff00) << 8;
  bVar34 = (DAT_18267a8c8 & 1) == 0;
  uVar21 = 0x72a9f579;
  if (bVar34) {
    uVar21 = DAT_18267a8c8;
  }
  DAT_18267a7e8 = 0x1fac68b0;
  if (bVar34) {
    DAT_18267a7e8 = DAT_18267a8c8;
  }
  DAT_18267a934 = uVar32 << 0x10 | uVar32 >> 0x10;
  _DAT_18267a1b8 = uVar27 & 0xe4bfd7c8 ^ 0x466f83ce;
  uVar8 = DAT_18267a8c8 + 0xba27285 | 0x50dde43e;
  uVar9 = DAT_18267a8c8 | 0x407e43d;
  uVar23 = DAT_18267a8c8 >> 0x10;
  _DAT_18267a7b8 = DAT_18267a8c8 << 0x10 | uVar23;
  local_aec0 = iVar4 * 0x282f81f6;
  DAT_18267a86c = DAT_18267a8c8 + 0x11fdb1c;
  uVar10 = DAT_18267a8c8 * -0x18cb0000 | DAT_18267a7ac >> 0x10;
  uVar11 = DAT_18267a8c8 * -0x5ea8279c & 0x1a53686d;
  uVar33 = (DAT_18267a728 & 0xff0000 | DAT_18267a728 >> 0x10) >> 8 |
           (DAT_18267a8c8 * -0x33eb0000 | DAT_18267a728 & 0xff00) << 8;
  uVar12 = DAT_18267a8c8 + 0xd15ff30 & 0xbbf70949;
  local_ae8c = uVar26 + 0xd4ac7d59;
  uVar22 = DAT_18267a8c8 & 0xff00;
  uVar13 = DAT_18267a8c8 << 0x10;
  uVar30 = (DAT_18267a8c8 & 0xff0000 | DAT_18267a8c8 >> 0x10) >> 8;
  DAT_18267a730 = uVar30 | (uVar22 | uVar13) << 8;
  uVar3 = uVar5 >> 0x10;
  DAT_18267a810 = uVar5 * 0x10000 | uVar3;
  local_ae78 = uVar6 ^ 0xaea29bb6;
  DAT_18267a904 = ~DAT_18267a85c;
  uVar14 = uVar26 ^ 0x1a35a1d6;
  DAT_18267a768 = uVar21 + 0x6bccb83c;
  uVar1 = uVar31 + 0x63c5bd88;
  DAT_18267a88c = uVar6 * 0x61527eac;
  DAT_18267a944 = uVar32 * 0x67fd2509;
  DAT_18267a9d8 = _DAT_18267a7b8 & 0x93d5e70;
  DAT_18267a700 = DAT_18267a7e8 << 0x10 | DAT_18267a7e8 >> 0x10;
  DAT_18267a9dc = 0x9f298329;
  uVar29 = uVar32 >> 0x10 & 7;
  if (uVar29 < 4) {
    if (uVar29 < 2) {
      DAT_18267a9dc = 0x53ded8c;
      bVar34 = uVar29 == 0;
      uVar25 = DAT_18267a934;
    }
    else {
      uVar25 = 0x16b6abca;
      bVar34 = uVar29 < 3;
    }
  }
  else if (uVar29 < 6) {
    uVar25 = 0xac80d47e;
    DAT_18267a9dc = 0x65b08d13;
    bVar34 = uVar29 < 5;
  }
  else {
    uVar25 = 0x3e9691f6;
    DAT_18267a9dc = 0xbbdb4ba3;
    bVar34 = uVar29 < 7;
  }
  if (bVar34) {
    DAT_18267a9dc = uVar25;
  }
  DAT_18267a748 = (DAT_18267a870 + 0xf65a1d93) * 0x10000 | DAT_18267a870 + 0xf65a1d93 >> 0x10;
  uVar29 = (DAT_18267a8c8 & 0x2632dc4e) + 0x6caa4f19;
  DAT_18267a93c = uVar8 ^ 0xb623a566;
  uVar25 = 0x1b66954d;
  if ((DAT_18267a8c8 + 0xba27285 & 1) == 0) {
    uVar25 = DAT_18267a8c8 + 0xba27285;
  }
  DAT_18267a74c = DAT_18267a728 + 0x59fc99a5 | 0x3ea57027;
  DAT_18267a8bc = DAT_18267a834 * 0x10000 | DAT_18267a834 >> 0x10;
  _DAT_18267a1b0 = uVar9 ^ 0xa1f36a5a;
  DAT_18267a7d4 = DAT_18267a870 * -0x41e5dc07;
  _DAT_18267a7b8 = ~_DAT_18267a7b8;
  local_ae34 = iVar4 * -0x3aaad06 + -0x3b8c6383;
  DAT_18267a95c = (DAT_18267a870 + 0x62e7661d) * -0x69cf18cb;
  DAT_18267a6d0 = uVar26 + 0x27ee9cb5;
  uVar15 = uVar12 << 0x10 | uVar12 >> 0x10;
  DAT_18267a6f4 = (_DAT_18267a8e0 | 0x7359f9ee) + 0x9eec1b4d;
  DAT_18267a880 = DAT_18267a730 ^ 0xbcb54562;
  uVar2 = DAT_18267a8c8 + 0x10c0ac36;
  DAT_18267a6e0 = DAT_18267a730 * -0x66371ad6;
  _DAT_18267a8a8 = DAT_18267a904 * -0x755ab491;
  DAT_18267a6e4 = DAT_18267a810 + 0xfcbaf1c9;
  DAT_18267a19c = ~DAT_18267a8c8;
  DAT_18267a7a0 = uVar6 + 0xe0539750;
  if (uVar28 < 2) {
    uVar16 = 0xb9fc49dc;
    if (uVar28 == 0) {
      uVar16 = DAT_18267a8c8;
    }
  }
  else {
    uVar16 = 0xdf63eb15;
    if (uVar28 < 3) {
      uVar16 = 0x66ed99a;
    }
  }
  _DAT_18267a80c = local_ae78 + 0x5975e8be;
  _DAT_18267a7f0 = uVar23 << 0x10 | DAT_18267a8c8 & 0xffff;
  DAT_18267aa28 =
       (DAT_18267a8c8 << 0x10 & 0xff0000 | DAT_18267a8c8 & 0xffff) >> 8 |
       (uVar23 << 0x10 | uVar23 & 0xff00) << 8;
  uVar23 = (uVar21 & 0xff0000 | uVar21 >> 0x10) >> 8;
  DAT_18267a7d8 = uVar23 | (uVar21 << 0x10 | uVar21 & 0xff00) << 8;
  DAT_18267a9c0 = _DAT_18267a1b8 + 0x775b7dda | DAT_18267a8c8;
  DAT_18267a6e8 = DAT_18267a7e8 + (DAT_18267a8b0 ^ 0xdd8fcf04);
  DAT_18267a938 = uVar8 ^ 0x6bac6a62;
  if (uVar28 < 2) {
    DAT_18267a808 = 0x9355b0e7;
    if (uVar28 == 0) {
      DAT_18267a808 = DAT_18267a8c8;
    }
  }
  else {
    DAT_18267a808 = DAT_18267a9dc;
    if (uVar28 < 3) {
      DAT_18267a808 = 0x9f298329;
    }
  }
  DAT_18267a89c = uVar25 - ((DAT_18267a8c8 | 0xa6ea8ecd) & 0xb759e296);
  _DAT_18267a774 = uVar29 & DAT_18267a8c8 + 0xba27285;
  DAT_18267a8e8 = _DAT_18267a7b8 ^ (DAT_18267a8c8 | 0xa6ea8ecd);
  _DAT_18267a8c4 = ~(DAT_18267a728 + 0x59fc99a5);
  uVar17 = DAT_18267a8c8 * 0x31948a28 ^ DAT_18267a8c8;
  DAT_18267a828 = DAT_18267a8bc ^ DAT_18267a870;
  DAT_18267a8b8 = uVar10 ^ 0x6bdfbc76 | DAT_18267a7d4;
  _DAT_18267a720 = (DAT_18267a870 + 0x51afba62 | 0x59fe9c73) * DAT_18267a8c8 * -0x5ea8279c;
  local_aee8 = uVar33 | DAT_18267a728;
  uVar10 = uVar10 + local_aec0;
  DAT_18267a9ac = (DAT_18267a8c8 + 0x11fdb1c) - uVar7;
  DAT_18267a7b0 = uVar15 | uVar33;
  DAT_18267a850 =
       (DAT_18267a880 & 0xff0000 | DAT_18267a880 >> 0x10) >> 8 |
       (DAT_18267a880 << 0x10 | DAT_18267a880 & 0xff00) << 8;
  DAT_18267a854 = (DAT_18267a8c8 + 0xe0c8fbcf | 0x1b1457bc) ^ (DAT_18267a8c8 | 0xbffc4dfe);
  uVar28 = uVar5 * -0x51e3d61a >> 0x10;
  _DAT_18267a7bc = ~_DAT_18267a8a8;
  _DAT_18267a8a0 =
       (uVar22 << 8 | (uVar13 & 0xffffff) >> 8) >> 8 |
       (uVar30 << 0x10 | (DAT_18267a8c8 & 0xff0000) >> 8) << 8;
  uVar18 = uVar3 & 7;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      uVar24 = uVar26 ^ 0xa03143db;
      if (uVar18 == 0) {
        uVar24 = DAT_18267a810;
      }
    }
    else {
      uVar24 = uVar16;
      if (uVar18 < 3) {
        uVar24 = uVar14;
      }
    }
  }
  else if (uVar18 < 6) {
    uVar24 = uVar6;
    if (uVar18 < 5) {
      uVar24 = uVar7 ^ 0xc8b200ca;
    }
  }
  else {
    uVar24 = DAT_18267a7a0;
    if (uVar18 < 7) {
      uVar24 = DAT_18267a810 + 0xfcbaf1c9;
    }
  }
  uVar18 = DAT_18267a19c << 0x10 | DAT_18267a19c >> 0x10;
  uVar19 = DAT_18267a730 | uVar1;
  DAT_18267a92c =
       (uVar27 & 0xff0000 | uVar27 >> 0x10) >> 8 | (uVar27 << 0x10 | uVar27 & 0xff00) << 8;
  uVar20 = uVar21 & 7;
  if (uVar20 < 4) {
    if (uVar20 < 2) {
      DAT_18267a9cc = DAT_18267a7d8;
      if (uVar20 == 0) {
        DAT_18267a9cc = uVar21;
      }
    }
    else {
      DAT_18267a9cc = (DAT_18267a8c8 & 0x2632dc4e | 0xb0ff575f) * -0x23b88cce;
      if (uVar20 < 3) {
        DAT_18267a9cc = DAT_18267aa28;
      }
    }
  }
  else if (uVar20 < 6) {
    DAT_18267a9cc = DAT_18267a8c8 ^ 0x465ff4c7;
    if (uVar20 < 5) {
      DAT_18267a9cc = DAT_18267a700 | 0xaea29bb6;
    }
  }
  else {
    DAT_18267a9cc = _DAT_18267a7f0;
    if (uVar20 < 7) {
      DAT_18267a9cc = DAT_18267a8b0;
    }
  }
  DAT_18267a704 = uVar25 & DAT_18267a768;
  DAT_18267a750 = DAT_18267a93c & _DAT_18267a1b8;
  DAT_18267a990 = DAT_18267a938 * DAT_18267a748;
  DAT_18267a9e0 = DAT_18267a6e8 & DAT_18267a834 ^ 0xb5bd9660;
  DAT_18267a940 = _DAT_18267a1b0 + _DAT_18267a7b8;
  DAT_18267a778 = uVar17 - uVar29;
  DAT_18267a6dc =
       (local_aec0 & 0xff0000 | local_aec0 >> 0x10) >> 8 |
       (iVar4 * -0x7e0a0000 | local_aec0 & 0xff00) << 8 | DAT_18267a95c;
  DAT_18267a968 = DAT_18267a8c8 * 0x31948a28 - (uVar33 + 0x6453870b);
  DAT_18267a980 = _DAT_18267a720 - (DAT_18267a8c8 + 0x11fdb1c | 0xf45d8d7b);
  DAT_18267a9a4 = local_aec0 + local_aee8;
  DAT_18267a6d4 = (uVar30 << 0x10 | (uVar22 | uVar13 & 0xffffff) >> 8) & DAT_18267a9ac;
  DAT_18267a72c = DAT_18267a6f4 * uVar26 & DAT_18267a8c8;
  DAT_18267aa1c = uVar10 - uVar7;
  DAT_18267a978 = DAT_18267a6f4 ^ local_ae8c;
  DAT_18267a9d0 = uVar15 | uVar26 + 0x9abaf7d0;
  DAT_18267a710 = uVar26 + 0x27ee9cb5 | DAT_18267a730;
  DAT_18267a970 = ~DAT_18267a854;
  _DAT_18267a758 = (DAT_18267a730 ^ DAT_18267a8c8) & DAT_18267a730;
  uVar29 = _DAT_18267a7bc ^ uVar12 + uVar11;
  DAT_18267a858 =
       (uVar5 * 0x29e60000 & 0xff0000 | uVar5 * 0x29e60000 >> 0x10) >> 8 |
       (uVar28 << 0x10 | uVar28 & 0xff00) << 8;
  DAT_18267a760 = _DAT_18267a8a0 ^ uVar7 ^ 0xc8b200ca;
  DAT_18267a950 = (local_ae78 + 0x5975e8be) * uVar16;
  DAT_18267a6f0 = DAT_18267a19c & DAT_18267a6e0;
  DAT_18267a820 = uVar14 + uVar27;
  DAT_18267aa0c = DAT_18267a730 ^ DAT_18267a7a0;
  DAT_18267a898 = DAT_18267a9cc * DAT_18267a8b0;
  DAT_18267a9bc = ~DAT_18267a6e4;
  DAT_18267a81c = DAT_18267a944 ^ ((uVar1 ^ 0x1137abbb) << 0x10 | (uVar1 ^ 0x1137abbb) >> 0x10);
  DAT_18267a6c8 = DAT_18267a88c + DAT_18267a7d8;
  DAT_18267a77c = ~DAT_18267a7e8;
  DAT_18267a984 = uVar18 | uVar24;
  DAT_18267aa04 =
       (uVar19 & 0xff0000 | uVar19 >> 0x10) >> 8 | (uVar19 << 0x10 | uVar19 & 0xff00) << 8;
  DAT_18267a9f8 = ~DAT_18267aa28;
  _DAT_18267aa10 = (uVar31 + 0xcfbaa229) * DAT_18267a8c8;
  if ((DAT_18267a8c8 & 1) == 0) {
    _DAT_18267aa10 = _DAT_18267a7f0;
  }
  DAT_18267a78c = DAT_18267a990 - DAT_18267a9c0;
  DAT_18267a8b4 = ((DAT_18267a7e8 >> 0x10) << 0x10 | DAT_18267a7e8 & 0xffff) + DAT_18267a700;
  DAT_18267a98c = DAT_18267a934 * uVar32;
  DAT_18267a958 = DAT_18267a808 * uVar8;
  DAT_18267a76c = DAT_18267a768 * 0x10000 | DAT_18267a768 >> 0x10;
  _DAT_18267a804 = DAT_18267a74c ^ DAT_18267a748;
  DAT_18267a874 = uVar9;
  if ((DAT_18267a93c & 1) == 0) {
    DAT_18267a874 = DAT_18267a93c;
  }
  DAT_18267a198 = ~DAT_18267a9e0;
  DAT_18267aa14 = uVar9 + DAT_18267a8c8 + 0xba27285 & DAT_18267a89c;
  DAT_18267a868 = _DAT_18267a8c4 ^ DAT_18267a8bc;
  _DAT_18267a7b8 = DAT_18267a8e8 - _DAT_18267a7b8;
  DAT_18267a8d4 = ~DAT_18267a8b8;
  DAT_18267a894 = DAT_18267a940 - uVar17;
  DAT_18267a788 = DAT_18267a8c8 + 0x11fdb1c | DAT_18267a870;
  DAT_18267a794 = ~DAT_18267a6dc;
  DAT_18267a890 = DAT_18267a7d4 + local_ae34;
  DAT_18267a848 = (local_aee8 + local_aec0) - DAT_18267a8c8;
  DAT_18267a764 = DAT_18267a95c & DAT_18267a980;
  DAT_18267a7dc = DAT_18267a880 ^ DAT_18267a728;
  DAT_18267a770 = ~DAT_18267a978;
  DAT_18267a884 = uVar10 & local_ae8c;
  _DAT_18267a9b8 = DAT_18267a730 * DAT_18267a8c8;
  DAT_18267a9e4 = DAT_18267a72c + DAT_18267aa1c;
  uVar31 = (DAT_18267a854 & 0xff0000 | DAT_18267a854 >> 0x10) >> 8;
  DAT_18267aa08 = uVar31 | (DAT_18267a854 << 0x10 | DAT_18267a854 & 0xff00) << 8;
  DAT_18267a84c = _DAT_18267a8a8 & _DAT_18267a758;
  uVar28 = uVar29 >> 0x10;
  DAT_18267a1a4 = uVar29 << 0x10 | uVar28;
  DAT_18267a954 = DAT_18267a7a0 | DAT_18267aa0c;
  DAT_18267a708 = (uVar2 & 0xff0000 | uVar2 >> 0x10) >> 8 | (uVar2 * 0x10000 | uVar2 & 0xff00) << 8;
  DAT_18267a7b4 = DAT_18267a898 * DAT_18267a81c;
  _DAT_18267a7c8 = _DAT_18267a8a0 + local_ae78 + 0x5975e8be;
  DAT_18267a82c =
       uVar14 & 0xffff | ((uVar14 >> 0x18) << 0x10 | (uVar14 & 0xff0000) >> 8) << 8 | DAT_18267a858;
  DAT_18267a818 = (uVar2 | uVar11) - DAT_18267a85c;
  _DAT_18267a73c = DAT_18267a760 - DAT_18267a904;
  _DAT_18267a724 = _DAT_18267a7bc << 0x10 | _DAT_18267a7bc >> 0x10;
  DAT_18267a71c = uVar1 - uVar18;
  DAT_18267a7c4 = DAT_18267a92c ^ DAT_18267a7ac;
  DAT_18267a744 = DAT_18267a19c & DAT_18267a6e4;
  DAT_18267a930 = uVar24 * DAT_18267a19c;
  DAT_18267a9ec = DAT_18267a730 + uVar32 * -0x67fd2509;
  DAT_18267a7e4 = ~DAT_18267a6e0;
  _DAT_18267a994 = DAT_18267a9cc ^ DAT_18267aa04;
  _DAT_18267a964 = uVar23 << 0x10 | (uVar21 << 0x10 & 0xffffff | uVar21 & 0xff00) >> 8;
  DAT_18267aa00 = DAT_18267a8b0 + _DAT_18267aa10;
  DAT_18267a914 = DAT_18267a6c8 * DAT_18267a9d8;
  DAT_18267a8dc = DAT_18267a98c ^ DAT_18267a934;
  DAT_18267a8e4 =
       (DAT_18267a88c & 0xff0000 | DAT_18267a88c >> 0x10) >> 8 |
       (uVar6 * 0x7eac0000 | DAT_18267a88c & 0xff00) << 8;
  DAT_18267a998 = DAT_18267a76c & DAT_18267a834;
  DAT_18267a7cc = DAT_18267aa28 | DAT_18267a8b4;
  DAT_18267a7f8 = DAT_18267a700 & DAT_18267a77c;
  DAT_18267a83c = _DAT_18267a7f0 + DAT_18267a704;
  _DAT_18267a194 = _DAT_18267a804 & DAT_18267a7e8;
  DAT_18267a830 = DAT_18267a9c0 & DAT_18267a958;
  uVar32 = DAT_18267aa14 & 3;
  if (uVar32 < 2) {
    DAT_18267a780 = DAT_18267a938;
    if (uVar32 == 0) {
      DAT_18267a780 = DAT_18267aa14;
    }
  }
  else {
    DAT_18267a780 = DAT_18267a990;
    if (uVar32 < 3) {
      DAT_18267a780 = DAT_18267a198;
    }
  }
  uVar32 = DAT_18267a808 & 3;
  if (uVar32 < 2) {
    DAT_18267a8cc = DAT_18267a93c;
    if (uVar32 == 0) {
      DAT_18267a8cc = DAT_18267a808;
    }
  }
  else {
    DAT_18267a8cc = _DAT_18267a1b8;
    if (uVar32 < 3) {
      DAT_18267a8cc = DAT_18267a9e0;
    }
  }
  DAT_18267a6cc = DAT_18267a89c & DAT_18267a78c;
  DAT_18267a814 = DAT_18267a8e8 & _DAT_18267a1b0;
  DAT_18267a948 = DAT_18267a874 * DAT_18267a9dc;
  DAT_18267a9d4 = ~DAT_18267a750;
  DAT_18267a8f4 = _DAT_18267a8c4 | DAT_18267a6e8;
  DAT_18267a9e8 = (DAT_18267a834 >> 0x10) << 0x10 | DAT_18267a834 & 0xffff;
  DAT_18267a9f4 =
       (DAT_18267a894 & 0xff0000 | DAT_18267a894 >> 0x10) >> 8 |
       (DAT_18267a894 * 0x10000 | DAT_18267a894 & 0xff00) << 8;
  DAT_18267a97c = DAT_18267a778 * 0x10000 | DAT_18267a778 >> 0x10;
  DAT_18267a738 =
       (DAT_18267a8d4 & 0xff0000 | DAT_18267a8d4 >> 0x10) >> 8 |
       (DAT_18267a8d4 << 0x10 | DAT_18267a8d4 & 0xff00) << 8;
  DAT_18267a960 = DAT_18267a8b8 + DAT_18267a7d4;
  DAT_18267a754 = ~(DAT_18267a8c8 + 0x11fdb1c);
  DAT_18267aa18 = _DAT_18267a774 ^ DAT_18267a870;
  DAT_18267a908 = _DAT_18267a7b8 ^ DAT_18267a8c8;
  DAT_18267a87c = DAT_18267a828 | DAT_18267a7d4;
  _DAT_18267a8f0 =
       (DAT_18267a6dc & 0xff0000 | DAT_18267a6dc >> 0x10) >> 8 |
       (DAT_18267a6dc << 0x10 | DAT_18267a6dc & 0xff00) << 8;
  DAT_18267a798 = (DAT_18267a870 + 0x62e7661d) * -0x18cb0000 | DAT_18267a95c >> 0x10;
  DAT_18267a7f4 = local_ae34 + DAT_18267a7d4 & DAT_18267a940;
  DAT_18267a824 =
       (DAT_18267a788 & 0xff0000 | DAT_18267a788 >> 0x10) >> 8 |
       (DAT_18267a788 << 0x10 | DAT_18267a788 & 0xff00) << 8;
  uVar32 = local_aee8 + local_aec0;
  DAT_18267a8d0 =
       (uVar32 & 0xff0000 | uVar32 >> 0x10) >> 8 | (uVar32 * 0x10000 | uVar32 & 0xff00) << 8;
  DAT_18267a7a4 = _DAT_18267a8e0 << 0x10 | _DAT_18267a8e0 >> 0x10;
  DAT_18267a740 = DAT_18267a848 ^ DAT_18267a794;
  DAT_18267a6fc = DAT_18267a7dc * DAT_18267a728;
  DAT_18267a9f0 = DAT_18267a9e4 * DAT_18267a72c;
  DAT_18267a918 = _DAT_18267a720 + DAT_18267a9ac;
  DAT_18267a9a8 = DAT_18267a850 | DAT_18267a764;
  _DAT_18267a9c4 = DAT_18267a880 * DAT_18267a970;
  DAT_18267a840 = DAT_18267a6f4 | DAT_18267a980;
  DAT_18267a7d0 = DAT_18267aa1c * DAT_18267a6d4;
  DAT_18267a96c = DAT_18267a770 | DAT_18267a9d0;
  _DAT_18267a1b4 = uVar30 << 0x10 | (uVar22 | uVar13 & 0xffffff) >> 8;
  _DAT_18267a90c = uVar31 << 0x10 | (DAT_18267a854 << 0x10 & 0xffffff | DAT_18267a854 & 0xff00) >> 8
  ;
  DAT_18267a8c0 = DAT_18267a978 & _DAT_18267a9b8;
  DAT_18267a784 = _DAT_18267a8a8 ^ DAT_18267a730;
  uVar28 = uVar28 & 3;
  if (uVar28 < 2) {
    DAT_18267a718 = DAT_18267a84c;
    if (uVar28 == 0) {
      DAT_18267a718 = DAT_18267a1a4;
    }
  }
  else {
    DAT_18267a718 = DAT_18267a884;
    if (uVar28 < 3) {
      DAT_18267a718 = DAT_18267a710;
    }
  }
  uVar28 = DAT_18267a854 & 3;
  if (uVar28 < 2) {
    DAT_18267a878 = DAT_18267a7b0;
    if (uVar28 == 0) {
      DAT_18267a878 = DAT_18267a854;
    }
  }
  else {
    DAT_18267a878 = _DAT_18267a8a0;
    if (uVar28 < 3) {
      DAT_18267a878 = _DAT_18267a7c8;
    }
  }
  DAT_18267a6f8 = DAT_18267a82c + DAT_18267a6f0;
  DAT_18267a8d8 = DAT_18267a904;
  if ((DAT_18267a818 & 1) == 0) {
    DAT_18267a8d8 = DAT_18267a818;
  }
  DAT_18267a1ac = uVar3 << 0x10 | uVar5 & 0xffff;
  DAT_18267a1a8 = DAT_18267a858 * DAT_18267a85c;
  DAT_18267a920 = _DAT_18267a73c * DAT_18267a71c;
  DAT_18267a7e0 = local_ae78 + 0x5975e8be & DAT_18267a760;
  DAT_18267a8a4 = ~_DAT_18267a724;
  uVar28 = DAT_18267a820 & 7;
  if (uVar28 < 4) {
    if (uVar28 < 2) {
      DAT_18267a1a0 = DAT_18267a19c;
      if (uVar28 == 0) {
        DAT_18267a1a0 = DAT_18267a820;
      }
    }
    else {
      DAT_18267a1a0 = DAT_18267a7e4;
      if (uVar28 < 3) {
        DAT_18267a1a0 = DAT_18267a930;
      }
    }
  }
  else if (uVar28 < 6) {
    DAT_18267a1a0 = DAT_18267a954;
    if (uVar28 < 5) {
      DAT_18267a1a0 = DAT_18267a7ac;
    }
  }
  else {
    DAT_18267a1a0 = DAT_18267a9ec;
    if (uVar28 < 7) {
      DAT_18267a1a0 = uVar26 + 0x27ee9cb5;
    }
  }
  uVar28 = DAT_18267a6e0 & 3;
  if (uVar28 < 2) {
    DAT_18267a844 = DAT_18267a9f8;
    if (uVar28 == 0) {
      DAT_18267a844 = DAT_18267a6e0;
    }
  }
  else {
    DAT_18267a844 = DAT_18267a944;
    if (uVar28 < 3) {
      DAT_18267a844 = DAT_18267a744;
    }
  }
  DAT_18267a864 = DAT_18267a92c - DAT_18267a7c4;
  local_48 = local_ad90;
  local_50 = param_6;
  local_58 = param_5;
  DAT_18267a8f8 = &local_78;
  DAT_18267a514 = 0x1f18;
  iVar4 = 0xd5;
  DAT_18267a79c = DAT_18267a76c;
  DAT_18267a7c0 = _DAT_18267a724;
  DAT_18267a800 = DAT_18267a19c;
  DAT_18267a888 = DAT_18267a19c;
  _DAT_18267a8ac = _DAT_18267a804;
  DAT_18267a900 = DAT_18267a8c8;
  DAT_18267a928 = DAT_18267a7d4;
  DAT_18267a9a0 = DAT_18267a730;
  DAT_18267a9c8 = DAT_18267a730;
  local_af18 = DAT_18267a930;
  local_af14 = DAT_18267a9cc;
  local_af10 = DAT_18267a1a4;
  local_af0c = DAT_18267aa28;
  local_af08 = DAT_18267a7d8;
  local_af04 = DAT_18267aa08;
  local_af00 = _DAT_18267a720;
  local_aefc = DAT_18267a978;
  local_aef8 = DAT_18267a92c;
  local_aef4 = DAT_18267a870;
  local_aef0 = DAT_18267a6d4;
  local_aeec = DAT_18267a19c;
  local_aee4 = DAT_18267aa14;
  local_aee0 = DAT_18267a82c;
  local_aedc = DAT_18267a770;
  local_aed8 = DAT_18267a858;
  local_aed4 = _DAT_18267a8a0;
  local_aed0 = DAT_18267a954;
  local_aecc = _DAT_18267aa10;
  local_aec8 = DAT_18267a874;
  local_aec4 = DAT_18267a8b8;
  local_aebc = DAT_18267a854;
  local_aeb8 = DAT_18267a818;
  local_aeb4 = DAT_18267a71c;
  local_aeb0 = _DAT_18267a8c4;
  local_aeac = DAT_18267a760;
  local_aea8 = DAT_18267a980;
  local_aea4 = DAT_18267a764;
  local_aea0 = DAT_18267a9e4;
  local_ae9c = DAT_18267a84c;
  local_ae98 = DAT_18267aa1c;
  local_ae94 = DAT_18267a6dc;
  local_ae90 = DAT_18267a8b0;
  local_ae88 = DAT_18267a9d0;
  local_ae84 = DAT_18267a72c;
  local_ae80 = DAT_18267a93c;
  local_ae7c = DAT_18267a7e8;
  local_ae74 = DAT_18267a704;
  local_ae70 = _DAT_18267a724;
  local_ae6c = DAT_18267a884;
  local_ae68 = DAT_18267a7dc;
  local_ae64 = DAT_18267a794;
  local_ae60 = DAT_18267a848;
  local_ae5c = DAT_18267a788;
  local_ae58 = DAT_18267a9c0;
  local_ae54 = DAT_18267a9ec;
  local_ae50 = DAT_18267a7e4;
  local_ae4c = DAT_18267a9e0;
  local_ae48 = DAT_18267a9ac;
  local_ae44 = DAT_18267a76c;
  local_ae40 = DAT_18267a700;
  local_ae3c = _DAT_18267a73c;
  local_ae38 = DAT_18267a95c;
  local_ae30 = DAT_18267a880;
  local_ae2c = DAT_18267a6f4;
  local_ae28 = _DAT_18267a8a8;
  local_ae24 = DAT_18267a904;
  local_ae20 = DAT_18267a810;
  local_ae1c = DAT_18267a944;
  local_ae18 = DAT_18267a934;
  local_ae14 = _DAT_18267a804;
  local_ae10 = DAT_18267a808;
  local_ae0c = DAT_18267a8bc;
  local_ae08 = _DAT_18267a7b8;
  local_ae04 = DAT_18267a7d4;
  local_ae00 = DAT_18267a8d4;
  local_adfc = DAT_18267a894;
  local_adf8 = DAT_18267a78c;
  local_adf4 = DAT_18267a198;
  local_adf0 = DAT_18267a938;
  local_adec = DAT_18267a990;
  local_ade8 = DAT_18267a85c;
  local_ade4 = _DAT_18267a1b8;
  local_ade0 = DAT_18267a88c;
  local_addc = DAT_18267a89c;
  local_add8 = DAT_18267a8e8;
  local_add4 = _DAT_18267a1b0;
  local_add0 = _DAT_18267a8e0;
  local_adcc = _DAT_18267a7f0;
  local_adc8 = DAT_18267a9d8;
  local_adc4 = DAT_18267a750;
  local_adc0 = DAT_18267a778;
  local_adbc = _DAT_18267a774;
  local_adb8 = DAT_18267a828;
  local_adb4 = DAT_18267a850;
  local_adb0 = DAT_18267a970;
  local_adac = _DAT_18267a9b8;
  local_ada8 = DAT_18267a710;
  local_ada4 = DAT_18267a7b0;
  local_ada0 = DAT_18267a6f0;
  local_ad9c = DAT_18267a9f8;
  local_ad98 = DAT_18267a744;
  local_ad90[0] = DAT_18267a7c4;
  local_ad88 = param_4;
  local_ad80 = param_3;
  local_ad78 = param_2;
  local_ad70 = param_1;
  local_78 = param_1;
  local_70 = param_2;
  local_68 = param_3;
  local_60 = param_4;
  do {
    iVar4 = (**(code **)(&DAT_182478a90 + (longlong)iVar4 * 8))();
  } while (iVar4 != 0);
  DAT_18267a8f8 = DAT_18267a8f8 + 7;
}



############ FUN_ 1805759d0 size=486 ############

void FUN_1805759d0(undefined8 *param_1)

{
  undefined8 *puVar1;
  void *pvVar2;
  void *pvVar3;
  undefined8 *puVar4;
  
  *param_1 = pace::eden::thrift::pub::SetupDynamicCryptoWhiteboxOutput::vftable;
  puVar4 = (undefined8 *)param_1[0x6b];
  if (puVar4 != (undefined8 *)0x0) {
    puVar1 = (undefined8 *)param_1[0x6c];
    for (; puVar4 != puVar1; puVar4 = puVar4 + 0x118) {
      (**(code **)*puVar4)(puVar4,0);
    }
    pvVar2 = (void *)param_1[0x6b];
    pvVar3 = pvVar2;
    if ((0xfff < (ulonglong)(((param_1[0x6d] - (longlong)pvVar2) / 0x8c0) * 0x8c0)) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  FUN_1805753e0(param_1 + 0xd);
  pvVar2 = (void *)param_1[10];
  if (pvVar2 != (void *)0x0) {
    pvVar3 = pvVar2;
    if ((0xfff < (ulonglong)(param_1[0xc] - (longlong)pvVar2)) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  pvVar2 = (void *)param_1[7];
  if (pvVar2 != (void *)0x0) {
    pvVar3 = pvVar2;
    if ((0xfff < (ulonglong)(param_1[9] - (longlong)pvVar2)) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  pvVar2 = (void *)param_1[4];
  if (pvVar2 != (void *)0x0) {
    pvVar3 = pvVar2;
    if ((0xfff < (ulonglong)(param_1[6] - (longlong)pvVar2)) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  pvVar2 = (void *)param_1[1];
  if (pvVar2 == (void *)0x0) {
    return;
  }
  pvVar3 = pvVar2;
  if ((0xfff < (ulonglong)(param_1[3] - (longlong)pvVar2)) &&
     (pvVar3 = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar3);
}



############ FUN_ 1817b4990 size=7865 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x0001817b5087) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1817b4990(byte *param_1,undefined8 param_2,undefined8 param_3)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  bool bVar35;
  undefined1 auStack_4608 [32];
  uint local_45e8;
  uint local_45e4;
  uint local_45e0;
  uint local_45dc;
  uint local_45d8;
  uint local_45d4;
  uint local_45d0;
  uint local_45cc;
  uint local_45c8;
  uint local_45c4;
  uint local_45c0;
  uint local_45bc;
  uint local_45b8;
  uint local_45b4;
  uint local_45b0;
  uint local_45ac;
  uint local_45a8;
  uint local_45a4;
  uint local_45a0;
  uint local_459c;
  uint local_4598;
  uint local_4594;
  uint local_4590;
  uint local_458c;
  uint local_4588;
  int local_4584;
  uint local_4580;
  uint local_457c;
  uint local_4578;
  uint local_4574;
  uint local_4570;
  uint local_456c;
  uint local_4568;
  uint local_4564;
  uint local_4560;
  uint local_455c;
  uint local_4558;
  uint local_4554;
  uint local_4550;
  uint local_454c;
  uint local_4548;
  uint local_4544;
  uint local_4540;
  uint local_453c;
  int local_4538;
  uint local_4534;
  uint local_4530;
  uint local_452c;
  uint local_4528;
  uint local_4524;
  uint local_4520;
  uint local_451c;
  uint local_4518;
  uint local_4514;
  uint local_4510;
  uint local_450c;
  int local_4508;
  uint local_4504;
  uint local_4500;
  uint local_44fc;
  uint local_44f8;
  uint local_44f4;
  uint local_44f0;
  uint local_44ec;
  uint local_44e8;
  uint local_44e4;
  uint local_44e0;
  uint local_44dc;
  uint local_44d8;
  uint local_44d4;
  uint local_44d0;
  uint local_44cc;
  uint local_44c8;
  uint local_44c4;
  uint local_44c0;
  uint local_44bc;
  uint local_44b8;
  uint local_44b4;
  uint local_44b0;
  uint local_44ac;
  uint local_44a8;
  uint local_44a4;
  uint local_44a0;
  uint local_449c;
  uint local_4498;
  uint local_4494;
  uint local_4490;
  uint local_448c;
  uint local_4488;
  int local_4484;
  uint local_4480;
  int local_447c;
  uint local_4478;
  uint local_4474;
  uint local_4470;
  uint local_446c;
  uint local_4468;
  uint local_4464;
  uint local_4460;
  uint local_445c;
  uint local_4458;
  uint local_4454;
  int local_4450 [2];
  undefined8 local_4448;
  undefined8 local_4440;
  byte *local_4438;
  undefined1 local_4428 [17352];
  byte *local_60;
  undefined8 local_58;
  undefined8 local_50;
  int *local_48;
  ulonglong local_38;
  undefined8 uStack_30;
  
  uStack_30 = 0x1817b49b2;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_4608;
  _DAT_182679b40 = local_4428;
  DAT_18267981c = 0x811c9dc5;
  DAT_182679ad0 = 0;
  if (param_1 != (byte *)0x0) {
    DAT_18267981c =
         ((((((((((((((((((((((((((((((((*param_1 ^ 0x811c9dc5) * 0x1000193 ^ (uint)param_1[1]) *
                                       0x1000193 ^ (uint)param_1[2]) * 0x1000193 ^ (uint)param_1[3])
                                     * 0x1000193 ^ (uint)param_1[4]) * 0x1000193 ^ (uint)param_1[5])
                                   * 0x1000193 ^ (uint)param_1[6]) * 0x1000193 ^ (uint)param_1[7]) *
                                 0x1000193 ^ (uint)param_1[8]) * 0x1000193 ^ (uint)param_1[9]) *
                               0x1000193 ^ (uint)param_1[10]) * 0x1000193 ^ (uint)param_1[0xb]) *
                             0x1000193 ^ (uint)param_1[0xc]) * 0x1000193 ^ (uint)param_1[0xd]) *
                           0x1000193 ^ (uint)param_1[0xe]) * 0x1000193 ^ (uint)param_1[0xf]) *
                         0x1000193 ^ (uint)param_1[0x10]) * 0x1000193 ^ (uint)param_1[0x11]) *
                       0x1000193 ^ (uint)param_1[0x12]) * 0x1000193 ^ (uint)param_1[0x13]) *
                     0x1000193 ^ (uint)param_1[0x14]) * 0x1000193 ^ (uint)param_1[0x15]) * 0x1000193
                  ^ (uint)param_1[0x16]) * 0x1000193 ^ (uint)param_1[0x17]) * 0x1000193 ^
                (uint)param_1[0x18]) * 0x1000193 ^ (uint)param_1[0x19]) * 0x1000193 ^
              (uint)param_1[0x1a]) * 0x1000193 ^ (uint)param_1[0x1b]) * 0x1000193 ^
            (uint)param_1[0x1c]) * 0x1000193 ^ (uint)param_1[0x1d]) * 0x1000193 ^
          (uint)param_1[0x1e]) * 0x1000193 ^ (uint)param_1[0x1f]) * 0x1000193;
  }
  uVar18 = DAT_18267981c + 0x60314d65;
  DAT_182679a30 = 0xb98e9aa3;
  DAT_182679900 = 0x5161a3d1;
  DAT_182679a0c = 0x40210010;
  DAT_182679854 = 0xb2e6fe67;
  local_448c = 0x5161a3d1;
  if ((DAT_18267981c & 1) == 0) {
    local_448c = DAT_18267981c;
  }
  DAT_18267991c = 0xa18f53ec;
  DAT_18267987c = 0xa200020;
  DAT_1826798c8 = 0xf4c5eadc;
  DAT_182679834 = 0xe1896b2d;
  uVar32 = (local_448c & 0xff0000 | local_448c >> 0x10) >> 8;
  DAT_182679980 = 0xbfb6124e;
  DAT_1826797f8 = 0x8d3a01a9;
  DAT_18267990c = 0xfc93ffb7;
  DAT_182679a28 = uVar32 | (local_448c << 0x10 | local_448c & 0xff00) << 8;
  DAT_182679a44 = 0xdbbbb9e0;
  DAT_18267980c = 0x24c0c088;
  DAT_18267982c = 0xa13f7d7b;
  DAT_182679958 = 0x4671655c;
  DAT_182679a94 = 0xf2e7fe77;
  DAT_182679a3c = 0x68f5bb89;
  uVar33 = DAT_18267981c | 0x2b800f97;
  DAT_182679800 =
       (uVar18 & 0xff0000 | uVar18 >> 0x10) >> 8 | (uVar18 * 0x10000 | uVar18 & 0xff00) << 8;
  DAT_182679a6c = 0x5e70ac13;
  DAT_182679abc = 0x8000020;
  uVar4 = DAT_18267981c | 0x81bdd207;
  DAT_1826798b0 = 0x154c81f1;
  uVar1 = DAT_18267981c << 0x10;
  uVar2 = DAT_18267981c >> 0x10;
  DAT_18267997c = uVar1 | uVar2;
  uVar5 = DAT_18267981c ^ 0x114cf3cc;
  DAT_182679aa8 = 0x759e6051;
  uVar6 = DAT_18267981c + 0x4fd5bddf | 0x4260b353;
  uVar26 = DAT_18267981c & 7;
  uVar7 = 0xa4c283e3;
  if (uVar26 < 4) {
    if (1 < uVar26) {
      uVar7 = 0x361aaca7;
      uVar31 = 0xa9bcb5f8;
      bVar35 = uVar26 < 3;
      goto LAB_1817b4dd6;
    }
    uVar31 = 0xe718cb2e;
    if (uVar26 == 0) {
      uVar31 = (ulonglong)DAT_18267981c;
    }
  }
  else {
    if (uVar26 < 6) {
      uVar31 = 0x1e79b1f9;
      bVar35 = uVar26 < 5;
    }
    else {
      uVar7 = 0x21146998;
      uVar31 = 0xd6335c76;
      bVar35 = uVar26 < 7;
    }
LAB_1817b4dd6:
    if (bVar35) {
      uVar31 = (ulonglong)uVar7;
    }
  }
  DAT_182679a9c = local_448c | 0xa51e10de;
  DAT_182679a50 =
       (DAT_18267981c & 0xff0000 | DAT_18267981c >> 0x10) >> 8 |
       (DAT_18267981c & 0xff00 | DAT_18267981c << 0x10) << 8;
  uVar7 = uVar2 & 3;
  if (uVar7 < 2) {
    local_45e4 = 0x8737ddbd;
    if (uVar7 == 0) {
      local_45e4 = DAT_18267997c;
    }
  }
  else {
    local_45e4 = 0xdce343cc;
    if (uVar7 < 3) {
      local_45e4 = 0xa6cd1b13;
    }
  }
  DAT_182679820 = uVar33 * -0x409f3fa4;
  uVar8 = DAT_18267981c ^ 0xa23b1f95;
  uVar7 = DAT_18267981c + 0x4fafa749;
  DAT_1826799dc = uVar7 & 0x1fe1b175;
  DAT_182679a64 = DAT_18267981c & 0x33d5a869 ^ 0xeacbd11b;
  DAT_182679894 = ~DAT_18267981c;
  uVar9 = DAT_18267981c & 0xf10ee163 | 0x684f1f9e;
  uVar10 = DAT_18267997c | 0xc6ede318;
  DAT_182679b08 = DAT_18267997c | 0x6775a678;
  uVar11 = uVar18 & 7;
  if (uVar11 < 4) {
    if (1 < uVar11) {
      uVar24 = 0xaa0f5a56;
      uVar18 = 0x49fbb164;
      bVar35 = uVar11 < 3;
      goto LAB_1817b4f21;
    }
    uVar24 = 0xb03b578b;
    if (uVar11 == 0) {
      uVar24 = (ulonglong)uVar18;
    }
  }
  else {
    if (uVar11 < 6) {
      uVar24 = 0x9d2e16e4;
      uVar18 = 0x448a8bae;
      bVar35 = uVar11 < 5;
    }
    else {
      uVar24 = 0x4b8489ea;
      uVar18 = 0xe3ce30cb;
      bVar35 = uVar11 < 7;
    }
LAB_1817b4f21:
    if (bVar35) {
      uVar24 = (ulonglong)uVar18;
    }
  }
  DAT_182679adc = DAT_182679800 * -0x49691c37;
  uVar11 = DAT_18267981c ^ 0x565160d5;
  uVar18 = uVar5 & 3;
  if (uVar18 < 2) {
    local_45c8 = 0x4e2bd5d1;
    if (uVar18 == 0) {
      local_45c8 = uVar5;
    }
  }
  else {
    local_45c8 = 0x5bb805d4;
    if (uVar18 < 3) {
      local_45c8 = 0xb0e6a73f;
    }
  }
  uVar25 = (uVar4 & 0xff0000 | uVar4 >> 0x10) >> 8;
  DAT_182679ab4 = DAT_18267997c ^ 0x568ce4c;
  DAT_1826799d8 = uVar25 | (uVar4 << 0x10 | uVar4 & 0xff00) << 8;
  uVar18 = DAT_18267981c + 0x4fd5bddf >> 0x10;
  DAT_18267999c = (DAT_18267981c + 0x4fd5bddf) * 0x10000 | uVar18;
  DAT_1826798e0 = DAT_18267981c & 0xd3baf528;
  DAT_182679904 = DAT_18267981c | 0x5a9c9a82;
  DAT_182679b28 = uVar2 << 0x10 | DAT_18267981c & 0xffff;
  DAT_182679974 = local_45e4 & 0x4fadc47a;
  DAT_182679808 = local_448c + 0x6f89a214;
  uVar3 = DAT_1826799dc >> 0x10;
  DAT_182679908 = DAT_1826799dc << 0x10 | uVar3;
  DAT_1826798f0 = DAT_182679a64 << 0x10 | DAT_182679a64 >> 0x10;
  DAT_182679874 = uVar9 ^ 0x5bc595dd;
  uVar23 = (uint)uVar24;
  DAT_182679838 = (DAT_18267981c & 0xf10ee163) + 0x3fb72f27;
  DAT_182679b1c = DAT_18267981c + 0x4fafa749 | 0x33f2c15;
  DAT_1826795b0 = uVar8 * 0x1b391d74;
  DAT_1826799a4 = (DAT_18267981c + 0x60314d65) * 0x7afef4b5;
  uVar12 = uVar5 << 0x10 | uVar5 >> 0x10;
  uVar19 = uVar11 * -0x4f1d8770;
  DAT_182679970 = DAT_182679800 | 0xc7d794ff;
  uVar13 = DAT_18267981c & 3;
  if (uVar13 < 2) {
    uVar20 = 0x6151cf96;
    if (uVar13 == 0) {
      uVar20 = DAT_18267981c;
    }
  }
  else {
    uVar20 = 0x8f10b6a0;
    if (uVar13 < 3) {
      uVar20 = 0x99b5ee94;
    }
  }
  uVar13 = DAT_18267981c + 0x9785ae5;
  uVar14 = uVar13 & 0xdfc73870;
  DAT_18267988c = DAT_18267981c | 0xdfee75be;
  DAT_182679a5c =
       ((local_448c & 0xff00) << 8 | (local_448c << 0x10 & 0xffffff) >> 8) >> 8 |
       (uVar32 << 0x10 | (local_448c & 0xff0000) >> 8) << 8;
  uVar32 = DAT_18267981c ^ 0x9f7b941d;
  DAT_182679a00 = DAT_18267981c * -0x590434c9;
  if (uVar26 < 4) {
    if (uVar26 < 2) {
      DAT_182679900 = 0xc4b49c71;
      if (uVar26 == 0) {
        DAT_182679900 = DAT_18267981c;
      }
      goto LAB_1817b5356;
    }
    DAT_182679900 = 0xaf375073;
    uVar15 = 0x8c71d2d5;
    bVar35 = uVar26 < 3;
  }
  else if (uVar26 < 6) {
    DAT_182679900 = 0x1a2060ec;
    uVar15 = 0xeabcb6b8;
    bVar35 = uVar26 < 5;
  }
  else {
    uVar15 = 0xd1357755;
    bVar35 = uVar26 < 7;
  }
  if (bVar35) {
    DAT_182679900 = uVar15;
  }
LAB_1817b5356:
  DAT_18267985c = ~(DAT_182679a28 | 0xc2b272bf);
  uVar30 = (uint)uVar31;
  DAT_182679984 = uVar6 + 0xf10ee163;
  DAT_18267994c =
       (uVar30 & 0xff0000 | (uint)(uVar31 >> 0x10)) >> 8 | (uVar30 << 0x10 | uVar30 & 0xff00) << 8;
  DAT_182679a70 = uVar6 * 0x20207353 & 0xdce343cc;
  uVar27 = (DAT_182679820 & 0xff0000 | DAT_182679820 >> 0x10) >> 8;
  DAT_182679950 = uVar27 | (uVar33 * -0x3fa40000 | DAT_182679820 & 0xff00) << 8;
  uVar21 = uVar30 + 0x3f59573b;
  DAT_182679880 = uVar33 * -0x18e734d2;
  uVar26 = DAT_182679a9c >> 0x10;
  DAT_182679a08 = DAT_182679a9c << 0x10 | uVar26;
  DAT_1826799c0 = DAT_182679974 + 0x1c31cf35;
  uVar28 = (DAT_182679808 & 0xff0000 | DAT_182679808 >> 0x10) >> 8;
  DAT_1826798c0 = DAT_182679b08 + 0x568ce4c;
  DAT_182679a80 = uVar28 | (DAT_182679808 * 0x10000 | DAT_182679808 & 0xff00) << 8;
  DAT_182679920 = uVar9 ^ 0x887f60f5;
  uVar15 = DAT_1826799dc << 0x10 & 0xff0000;
  uVar22 = (uVar15 | uVar7 & 0xb175) >> 8;
  DAT_182679990 = uVar22 | (uVar3 << 0x10 | uVar3 & 0xff00) << 8;
  DAT_182679a14 =
       (DAT_182679838 & 0xff0000 | DAT_182679838 >> 0x10) >> 8 |
       (DAT_182679838 * 0x10000 | DAT_182679838 & 0xff00) << 8;
  uVar16 = DAT_182679894 * uVar8;
  DAT_182679b00 = ~(local_45c8 | 0x1b71eb6f);
  DAT_182679ae8 = DAT_18267997c + 0x9b38cfa2 & DAT_182679adc;
  iVar17 = DAT_182679a5c + (DAT_182679894 ^ 0xf6d871d9);
  uVar29 = ((DAT_18267981c & 0x9500) << 8 | (DAT_182679a50 & 0xd5958eda) >> 0x10) >> 8 |
           ((DAT_182679a50 & 0xd5958eda) << 0x10 | (DAT_18267981c & 0x8e0000) >> 8) << 8;
  uVar9 = DAT_1826798e0 >> 0x10;
  uVar18 = uVar18 & 7;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      uVar34 = DAT_18267988c;
      if (uVar18 == 0) {
        uVar34 = DAT_18267999c;
      }
    }
    else {
      uVar34 = DAT_18267981c;
      if (uVar18 < 3) {
        uVar34 = DAT_182679a28;
      }
    }
  }
  else if (uVar18 < 6) {
    uVar34 = DAT_182679ab4;
    if (uVar18 < 5) {
      uVar34 = uVar32;
    }
  }
  else {
    uVar34 = DAT_182679a28 | 0xc2b272bf;
    if (uVar18 < 7) {
      uVar34 = DAT_18267981c;
    }
  }
  DAT_1826797f0 = DAT_182679a00 - (DAT_182679a28 | 0xdbf2f6ff);
  DAT_1826798ac = uVar6 * 0x20207353 ^ DAT_18267981c + 0x4fd5bddf;
  DAT_182679844 = (local_45e4 ^ 0xd1f1bc3f) + DAT_182679a70;
  DAT_1826795ac = uVar30 & uVar6;
  DAT_1826798ec = ~DAT_182679a9c - DAT_18267997c;
  DAT_182679814 = DAT_182679880 | ~DAT_182679a9c ^ 0xa4c283e3;
  DAT_1826795b8 = uVar33 << 0x10 | uVar33 >> 0x10;
  DAT_182679ad8 =
       (uVar2 << 0x10 & 0xff0000 | uVar2) >> 8 |
       (DAT_18267981c << 0x10 | DAT_18267981c & 0xff00) << 8;
  DAT_182679850 = uVar26 << 0x10 | DAT_182679a9c & 0xffff;
  DAT_182679a7c =
       ((uVar1 & 0xff0000 | DAT_18267981c & 0xffff) >> 8) << 0x10 |
       ((uVar2 & 0xff) << 0x10 | uVar2 & 0xff00) >> 8;
  DAT_18267992c = DAT_182679920 ^ (uVar10 << 0x10 | uVar10 >> 0x10);
  DAT_182679b20 = DAT_182679a64 - (uVar10 & 0x684f1f9e);
  DAT_1826799b4 =
       (uVar7 & 0xe10000 | DAT_1826799dc >> 0x10) >> 8 |
       (DAT_1826799dc << 0x10 | uVar7 & 0xb100) << 8;
  DAT_182679a90 = DAT_182679908 | uVar4;
  DAT_1826798fc = DAT_182679b1c - DAT_182679a14;
  DAT_1826799f0 =
       (uVar19 & 0xff0000 | uVar19 >> 0x10) >> 8 | (uVar11 * 0x78900000 | uVar19 & 0xff00) << 8;
  DAT_182679b18 =
       ((DAT_18267981c & 0xb80000 | (DAT_18267981c & 0xb4b82183) >> 0x10) >> 8 |
       ((DAT_18267981c & 0xb4b82183) << 0x10 | DAT_18267981c & 0x2100) << 8) +
       DAT_18267981c + 0x60314d65;
  DAT_182679918 = (DAT_18267981c | 0xf9fdd7bf) * uVar23;
  DAT_1826799b0 = uVar12 & DAT_18267997c;
  uVar18 = DAT_18267997c + 0x9b38cfa2 & 3;
  if (uVar18 < 2) {
    DAT_1826799ac = uVar11;
    if (uVar18 == 0) {
      DAT_1826799ac = DAT_18267997c + 0x9b38cfa2;
    }
  }
  else {
    DAT_1826799ac = DAT_182679b00;
    if (uVar18 < 3) {
      DAT_1826799ac = DAT_18267981c;
    }
  }
  DAT_182679ac4 = DAT_1826799d8 + DAT_182679adc;
  DAT_182679938 = uVar14 | DAT_182679970;
  DAT_182679a38 = uVar14 * DAT_18267981c;
  DAT_182679ab0 = uVar29 - DAT_182679a5c;
  DAT_1826799cc = iVar17 * DAT_1826798e0;
  DAT_182679988 = DAT_182679894 * DAT_18267981c;
  DAT_182679a10 = uVar34 & (DAT_18267981c | 0x9eea0432);
  DAT_182679818 = DAT_1826797f0 * ((DAT_182679a28 | 0xc33990eb) + 0xa2fbf16f);
  uVar18 = DAT_18267981c + 0x4fd5bddf;
  if ((local_448c >> 0x10 & 0x100) == 0) {
    uVar18 = DAT_182679a28;
  }
  DAT_182679a34 = uVar32 - DAT_1826798ac;
  DAT_182679acc = DAT_18267999c + (DAT_182679894 << 0x10 | DAT_182679894 >> 0x10);
  DAT_182679a58 = uVar27 << 0x10 | (uVar33 * -0x3fa40000 & 0xffffff | DAT_182679820 & 0xff00) >> 8;
  DAT_182679b14 = DAT_182679814 << 0x10 | DAT_182679814 >> 0x10;
  DAT_1826799a0 = ~uVar6;
  DAT_182679964 = DAT_182679ad8 & DAT_182679a08;
  DAT_182679aec = (uVar33 ^ 0x8605610e) + 0xd6523d55 ^ DAT_182679820;
  DAT_182679944 = DAT_182679808 ^ DAT_182679b08;
  DAT_182679a60 =
       (uVar1 & 0xff0000 | DAT_18267981c & 0xffff) >> 8 | (uVar2 << 0x10 | uVar2 & 0xff00) << 8;
  DAT_182679994 = DAT_182679a7c * (DAT_1826798c0 * 0x10000 | DAT_1826798c0 >> 0x10);
  DAT_1826797fc = DAT_18267997c ^ DAT_182679a28;
  DAT_182679a04 = DAT_182679a64 - DAT_182679b20;
  DAT_1826799e8 = (DAT_182679a64 >> 0x10) << 0x10 | DAT_182679a64 & 0xffff;
  DAT_1826798d4 =
       (uVar16 * 0x10000 | uVar16 & 0xff00) << 8 | (uVar16 & 0xff0000 | uVar16 >> 0x10) >> 8;
  DAT_1826799e0 = ~DAT_182679874;
  DAT_1826798cc = (DAT_18267981c + 0x60314d65) * -0xb4b0000 | DAT_1826799a4 >> 0x10;
  DAT_182679898 = DAT_1826799f0 ^ (DAT_18267981c | 0xf9fdd7bf);
  DAT_1826799c8 = DAT_1826795b0 | DAT_182679838;
  DAT_182679860 = uVar11 * 0x78900000 | uVar19 >> 0x10;
  DAT_1826798f4 =
       ((uVar23 & 0xff0000 | (uint)(uVar24 >> 0x10)) >> 8 | (uVar23 << 0x10 | uVar23 & 0xff00) << 8)
       - DAT_1826799ac;
  DAT_1826798b4 = uVar12 ^ DAT_182679918;
  DAT_182679b3c =
       ((uVar13 & 0xc70000 | uVar14 >> 0x10) >> 8 | (uVar14 << 0x10 | uVar13 & 0x3800) << 8) ^
       0xd152ac68;
  DAT_1826799f8 = DAT_182679ac4 ^ DAT_182679ae8;
  uVar6 = (DAT_1826799b0 & 0xff0000 | DAT_1826799b0 >> 0x10) >> 8;
  DAT_182679998 = uVar6 | (DAT_1826799b0 << 0x10 | DAT_1826799b0 & 0xff00) << 8;
  DAT_182679aa0 = DAT_182679b00 & DAT_18267981c & 0xae2d173f;
  DAT_182679ae4 = DAT_182679adc - uVar11;
  DAT_1826799ec =
       ((uVar4 & 0xff00) << 8 | (uVar4 << 0x10 & 0xffffff) >> 8) >> 8 |
       (uVar25 << 0x10 | (uVar4 & 0xff0000) >> 8) << 8;
  DAT_182679b34 =
       (DAT_182679970 + 0x160e16f1) * (DAT_1826799d8 - DAT_18267997c) -
       (DAT_1826798e0 << 0x10 | uVar9);
  uVar4 = (DAT_182679970 & 0xff0000 | DAT_182679970 >> 0x10) >> 8;
  DAT_1826799a8 = uVar4 | (DAT_182679970 << 0x10 | DAT_182679970 & 0xff00) << 8;
  DAT_1826797ec =
       ((DAT_1826798e0 << 0x10 & 0xff0000 | DAT_18267981c & 0xf528) >> 8 |
       (uVar9 << 0x10 | uVar9 & 0xff00) << 8) ^ uVar20 + uVar5;
  uVar5 = DAT_182679988 & 7;
  if (uVar5 < 4) {
    if (uVar5 < 2) {
      DAT_1826798e0 = DAT_18267981c;
      if (uVar5 == 0) {
        DAT_1826798e0 = DAT_182679988;
      }
    }
    else {
      DAT_1826798e0 = DAT_1826799cc;
      if (uVar5 < 3) {
        DAT_1826798e0 = DAT_182679ab0;
      }
    }
  }
  else if (uVar5 < 6) {
    DAT_1826798e0 = DAT_182679894;
    if (uVar5 < 5) {
      DAT_1826798e0 = DAT_18267997c;
    }
  }
  else if (uVar5 < 7) {
    DAT_1826798e0 = uVar29;
  }
  DAT_182679b04 = iVar17 * DAT_182679a38;
  DAT_182679960 = uVar18 | DAT_182679818;
  DAT_182679848 = DAT_1826797f0 + DAT_1826795ac;
  uVar18 = DAT_182679a10 & 7;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      DAT_182679ab4 = DAT_18267994c & DAT_182679ab4;
      if (uVar18 == 0) {
        DAT_182679ab4 = DAT_182679a10;
      }
    }
    else {
      DAT_182679ab4 = DAT_18267994c;
      if (uVar18 < 3) {
        DAT_182679ab4 = uVar34;
      }
    }
  }
  else if (uVar18 < 6) {
    if (uVar18 < 5) {
      DAT_182679ab4 = DAT_18267985c;
    }
  }
  else {
    DAT_182679ab4 = DAT_182679844;
    if (uVar18 < 7) {
      DAT_182679ab4 = DAT_18267985c + DAT_182679900;
    }
  }
  DAT_182679a54 = DAT_1826798ac & uVar32;
  DAT_1826799fc = DAT_182679974 | DAT_182679a28 | 0xdbf2f6ff;
  DAT_182679a40 = DAT_182679b14 * DAT_182679984;
  DAT_1826797e8 = DAT_182679a70 * DAT_182679b28;
  DAT_182679a20 = DAT_1826798ec * 0x10000 | DAT_1826798ec >> 0x10;
  DAT_1826798a0 = DAT_1826799a0 - DAT_182679950;
  DAT_1826798c4 =
       DAT_1826798ec * (DAT_182679950 ^ DAT_182679904) -
       (DAT_18267999c * 0x1e79b1f9 | DAT_182679904 << 0x10 | DAT_182679904 >> 0x10);
  DAT_182679890 = (uVar33 >> 0x10) << 0x10 | uVar33 & 0xffff;
  DAT_1826798dc =
       (uVar28 << 0x10 | (DAT_182679808 * 0x10000 & 0xffffff | DAT_182679808 & 0xff00) >> 8) ^
       DAT_182679a9c;
  DAT_182679934 = DAT_182679814 * DAT_1826795b8 * DAT_182679984;
  DAT_182679b30 =
       DAT_182679a80 -
       ((uVar21 & 0xff0000 | uVar21 >> 0x10) >> 8 | (uVar21 * 0x10000 | uVar21 & 0xff00) << 8);
  DAT_182679b24 = DAT_182679964 & DAT_182679820;
  DAT_18267983c = ~DAT_182679880;
  DAT_182679a68 = uVar26 << 0x10 | DAT_182679a9c & 0xffff;
  DAT_182679978 = DAT_182679820 & DAT_182679b08;
  DAT_1826797f4 = DAT_182679850 ^ DAT_182679aec;
  DAT_182679858 = local_448c * 2 + 0x6f89a214;
  DAT_182679810 = ~DAT_18267997c;
  DAT_18267995c = DAT_1826798c0 ^ DAT_182679a64;
  DAT_1826799c4 = DAT_182679944 - DAT_182679a7c;
  DAT_1826799e4 = DAT_182679a04 - DAT_182679994;
  DAT_182679948 = DAT_182679a60 ^ DAT_1826798f0;
  DAT_1826799f4 = DAT_182679920 & DAT_182679b20;
  DAT_1826795a0 = DAT_182679a28 - DAT_1826797fc;
  DAT_1826798a4 = DAT_1826798fc * DAT_18267992c;
  DAT_182679af0 =
       (uVar1 & 0xff0000 | DAT_18267981c & 0xffff) >> 8 | (uVar2 << 0x10 | uVar2 & 0xff00) << 8;
  DAT_1826798e8 = DAT_182679908 ^ DAT_1826798d4;
  DAT_182679a78 = DAT_182679908 - DAT_182679a90;
  DAT_182679aa4 = DAT_1826799b4 - DAT_182679b1c;
  DAT_182679968 = DAT_1826798cc ^ DAT_1826799e8;
  DAT_18267998c = DAT_182679898 - DAT_1826799e0;
  DAT_1826798f8 = ~DAT_1826799a4;
  DAT_1826798b8 =
       (uVar22 << 0x10 | uVar15 >> 8) << 8 |
       ((uVar3 & 0xff00) << 8 | (uVar3 << 0x10 & 0xffffff) >> 8) >> 8;
  DAT_182679868 = DAT_182679874 + uVar8 * -0x1b391d74;
  DAT_1826797e4 = DAT_182679b3c & DAT_18267997c;
  DAT_182679940 = DAT_182679b18 * 0x10000 | DAT_182679b18 >> 0x10;
  DAT_182679878 = DAT_182679a14 + DAT_182679ae8;
  DAT_1826795b4 = DAT_1826798b4 - DAT_182679860;
  DAT_1826795a8 =
       (DAT_1826799ac & 0xff0000 | DAT_1826799ac >> 0x10) >> 8 |
       (DAT_1826799ac << 0x10 | DAT_1826799ac & 0xff00) << 8;
  DAT_18267959c = uVar6 << 0x10 | (DAT_1826799b0 << 0x10 & 0xffffff | DAT_1826799b0 & 0xff00) >> 8;
  uVar18 = (uVar19 >> 0x10 & 0x300) >> 8;
  if (uVar18 < 2) {
    DAT_182679888 = DAT_182679918;
    if (uVar18 == 0) {
      DAT_182679888 = DAT_1826799f0;
    }
  }
  else {
    DAT_182679888 = DAT_182679aa0;
    if (uVar18 < 3) {
      DAT_182679888 = DAT_1826798f4;
    }
  }
  DAT_1826799d4 = DAT_182679adc & DAT_1826799f8;
  DAT_182679b10 = DAT_18267997c - DAT_1826799c8;
  DAT_182679afc = DAT_18267997c * DAT_182679a5c;
  DAT_1826799b8 =
       (DAT_182679938 & 0xff0000 | DAT_182679938 >> 0x10) >> 8 |
       (DAT_182679938 << 0x10 | DAT_182679938 & 0xff00) << 8;
  DAT_1826799bc = DAT_182679ae4 | DAT_1826799d8;
  DAT_182679954 = DAT_1826799b0 ^ DAT_1826799ec;
  DAT_182679a74 = DAT_182679b00 << 0x10 | DAT_182679b00 >> 0x10;
  DAT_1826798d0 = DAT_182679ac4 * 0x10000 | DAT_182679ac4 >> 0x10;
  DAT_18267986c =
       (DAT_1826799cc & 0xff0000 | DAT_1826799cc >> 0x10) >> 8 |
       (DAT_1826799cc * 0x10000 | DAT_1826799cc & 0xff00) << 8;
  DAT_182679840 = DAT_182679b34 * DAT_182679800;
  DAT_182679914 =
       (DAT_1826798e0 & 0xff0000 | DAT_1826798e0 >> 0x10) >> 8 |
       (DAT_1826798e0 << 0x10 | DAT_1826798e0 & 0xff00) << 8;
  DAT_182679910 = ~DAT_182679970;
  DAT_182679864 = DAT_182679ab0 * 0x10000 | DAT_182679ab0 >> 0x10;
  DAT_182679828 = uVar4 << 0x10 | (DAT_182679970 << 0x10 & 0xffffff | DAT_182679970 & 0xff00) >> 8;
  DAT_182679598 = DAT_182679b04 ^ DAT_182679988;
  DAT_1826798d8 = DAT_18267988c + DAT_182679a38;
  DAT_182679930 = DAT_1826797ec + DAT_18267981c;
  DAT_18267996c = DAT_182679a28 | DAT_18267981c;
  DAT_182679a84 = DAT_1826795ac ^ DAT_182679818;
  DAT_1826798e4 =
       (DAT_182679960 & 0xff0000 | DAT_182679960 >> 0x10) >> 8 |
       (DAT_182679960 << 0x10 | DAT_182679960 & 0xff00) << 8;
  DAT_182679830 = ~DAT_182679848;
  DAT_182679804 = DAT_182679a54 | DAT_18267999c;
  DAT_18267984c = DAT_182679a00 & DAT_182679894;
  DAT_182679aac = DAT_1826797f0 ^ DAT_182679a10;
  DAT_182679a98 = DAT_18267994c * DAT_182679ab4;
  DAT_1826798bc = DAT_182679984 + DAT_182679900;
  DAT_182679af4 = DAT_18267985c - DAT_182679a40;
  DAT_1826795a4 = DAT_182679844 + DAT_182679974;
  DAT_182679884 = DAT_182679a58 - DAT_182679a34;
  DAT_18267993c = DAT_1826798ac - DAT_182679acc;
  DAT_182679b2c = DAT_182679890 ^ DAT_182679a9c;
  uVar18 = (DAT_18267981c & 0x70000) >> 0x10;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      DAT_182679a48 = DAT_1826798c4;
      if (uVar18 == 0) {
        DAT_182679a48 = DAT_1826795b8;
      }
    }
    else {
      DAT_182679a48 = DAT_182679b14;
      if (uVar18 < 3) {
        DAT_182679a48 = DAT_1826799fc;
      }
    }
  }
  else if (uVar18 < 6) {
    DAT_182679a48 = DAT_182679a70;
    if (uVar18 < 5) {
      DAT_182679a48 = DAT_1826797e8;
    }
  }
  else {
    DAT_182679a48 = DAT_1826798a0;
    if (uVar18 < 7) {
      DAT_182679a48 = DAT_1826798ec;
    }
  }
  uVar18 = DAT_18267981c & 3;
  if (uVar18 < 2) {
    DAT_182679824 = DAT_182679814;
    if (uVar18 == 0) {
      DAT_182679824 = DAT_182679b28;
    }
  }
  else {
    DAT_182679824 = DAT_182679904;
    if (uVar18 < 3) {
      DAT_182679824 = DAT_182679a20;
    }
  }
  DAT_1826799d0 = DAT_182679820 - DAT_182679aec;
  DAT_182679b0c = DAT_182679a80 | DAT_182679b30;
  DAT_182679a88 = DAT_182679880 * DAT_1826799a0;
  DAT_182679628 = 0xac8;
  DAT_182679924 = DAT_182679ad8 - DAT_182679964 ^ 0xdf8b203d;
  DAT_182679870 = DAT_182679978 & DAT_182679a08;
  DAT_1826798a8 = DAT_1826797f4 ^ DAT_18267983c;
  DAT_182679a4c = DAT_182679934 * 0x10000 | DAT_182679934 >> 0x10;
  DAT_182679ac0 = DAT_1826799c4 & DAT_182679b24 ^ 0x887f28d;
  DAT_182679ac8 = DAT_182679a04 * 0x10000 | DAT_182679a04 >> 0x10;
  DAT_18267989c = (DAT_182679974 + 0x1c31cf35) - DAT_182679850;
  local_48 = local_4450;
  DAT_182679a18 = &local_60;
  iVar17 = 0x1a;
  DAT_182679928 = DAT_18267981c;
  DAT_182679a24 = DAT_1826799b4;
  DAT_182679a2c = DAT_182679a28;
  DAT_182679a8c = DAT_18267981c;
  DAT_182679ab8 = DAT_18267997c;
  DAT_182679ae0 = DAT_18267997c;
  DAT_182679af8 = DAT_18267997c;
  DAT_182679b38 = DAT_182679908;
  local_45e8 = DAT_1826798d4;
  local_45e4 = DAT_1826797ec;
  local_45e0 = DAT_1826799a8;
  local_45dc = DAT_1826799ec;
  local_45d8 = DAT_182679b3c;
  local_45d4 = DAT_182679998;
  local_45d0 = DAT_182679894;
  local_45cc = DAT_1826799c4;
  local_45c8 = DAT_182679b00;
  local_45c4 = DAT_182679b24;
  local_45c0 = DAT_1826799f0;
  local_45bc = DAT_182679a04;
  local_45b8 = DAT_1826799b4;
  local_45b4 = DAT_1826799a0;
  local_45b0 = DAT_182679a7c;
  local_45ac = DAT_1826798ac;
  local_45a8 = DAT_1826798ec;
  local_45a4 = DAT_182679964;
  local_45a0 = DAT_182679960;
  local_459c = DAT_182679814;
  local_4598 = DAT_1826798c4;
  local_4594 = DAT_182679850;
  local_4590 = DAT_1826799d8;
  local_458c = DAT_182679a5c;
  local_4588 = DAT_182679970;
  local_4584 = DAT_182679a38;
  local_4580 = DAT_182679a20;
  local_457c = DAT_1826797f4;
  local_4578 = DAT_1826797e8;
  local_4574 = DAT_1826798a0;
  local_4570 = DAT_182679934;
  local_456c = DAT_182679a60;
  local_4568 = DAT_182679874;
  local_4564 = DAT_1826798f4;
  local_4560 = DAT_182679a9c;
  local_455c = DAT_182679b28;
  local_4558 = DAT_182679ad8;
  local_4554 = DAT_182679b04;
  local_4550 = DAT_182679a08;
  local_454c = DAT_182679adc;
  local_4548 = DAT_182679860;
  local_4544 = DAT_1826798b4;
  local_4540 = DAT_1826799fc;
  local_453c = DAT_182679890;
  local_4538 = DAT_182679a40;
  local_4534 = DAT_18267983c;
  local_4530 = DAT_182679988;
  local_452c = DAT_182679908;
  local_4528 = DAT_182679a10;
  local_4524 = DAT_182679b14;
  local_4520 = DAT_182679a64;
  local_451c = DAT_182679aec;
  local_4518 = DAT_18267999c;
  local_4514 = DAT_182679818;
  local_4510 = DAT_182679b08;
  local_450c = DAT_182679990;
  local_4508 = DAT_182679b34;
  local_4504 = DAT_1826797f0;
  local_4500 = DAT_18267994c;
  local_44fc = DAT_18267985c;
  local_44f8 = DAT_182679974;
  local_44f4 = DAT_182679a70;
  local_44f0 = DAT_182679904;
  local_44ec = DAT_182679a80;
  local_44e8 = DAT_182679880;
  local_44e4 = DAT_1826799b0;
  local_44e0 = DAT_1826798cc;
  local_44dc = DAT_182679aa0;
  local_44d8 = DAT_182679ae4;
  local_44d4 = DAT_182679848;
  local_44d0 = DAT_182679a54;
  local_44cc = DAT_182679978;
  local_44c8 = DAT_182679b30;
  local_44c4 = DAT_182679a50;
  local_44c0 = DAT_1826798c0;
  local_44bc = DAT_182679a00;
  local_44b8 = DAT_1826798f0;
  local_44b4 = DAT_182679920;
  local_44b0 = DAT_182679b20;
  local_44ac = DAT_1826799a4;
  local_44a8 = DAT_182679b1c;
  local_44a4 = DAT_182679a14;
  local_44a0 = DAT_182679ae8;
  local_449c = DAT_182679918;
  local_4498 = DAT_182679ac4;
  local_4494 = DAT_1826799cc;
  local_4490 = DAT_182679ab0;
  local_4488 = DAT_18267988c;
  local_4484 = DAT_182679994;
  local_4480 = DAT_1826797fc;
  local_447c = DAT_1826798fc;
  local_4478 = DAT_18267992c;
  local_4474 = DAT_182679a90;
  local_4470 = DAT_1826799e8;
  local_446c = DAT_182679898;
  local_4468 = DAT_1826799e0;
  local_4464 = DAT_182679b18;
  local_4460 = DAT_1826799f8;
  local_445c = DAT_1826799c8;
  local_4458 = DAT_182679938;
  local_4454 = DAT_182679a58;
  local_4450[0] = DAT_182679a34;
  local_4448 = param_3;
  local_4440 = param_2;
  local_4438 = param_1;
  local_60 = param_1;
  local_58 = param_2;
  local_50 = param_3;
  do {
    iVar17 = (**(code **)(&DAT_182478090 + (longlong)iVar17 * 8))();
  } while (iVar17 != 0);
  DAT_182679a18 = DAT_182679a18 + 4;
}



############ FUN_ 180481140 size=34 ############

void FUN_180481140(undefined8 *param_1)

{
                    /* WARNING: Subroutine does not return */
  free((void *)*param_1);
}



############ FUN_ 1804719e0 size=31 ############

undefined8 * FUN_1804719e0(undefined8 *param_1)

{
  param_1[2] = 0;
  param_1[1] = "bad allocation";
  *param_1 = std::bad_alloc::vftable;
  return param_1;
}



############ FUN_ 1805a0271 size=53 ############

void FUN_1805a0271(undefined8 *param_1,undefined8 *param_2,undefined8 *param_3,undefined8 *param_4)

{
  *param_1 = 0x181194942;
  *param_2 = 0x1813bba82;
  *param_3 = 0x1813f2242;
  *param_4 = 0x18141db22;
  return;
}



############ FUN_ 1805a0208 size=105 ############

undefined8
FUN_1805a0208(undefined8 *param_1,undefined8 *param_2,undefined8 *param_3,undefined8 *param_4)

{
  *param_1 = 0x181194942;
  *param_2 = 0x1813bba82;
  *param_3 = 0x1813f2242;
  *param_4 = 0x18141db22;
  return 0x10e3;
}



############ FUN_ 1811324a0 size=30 ############

undefined8 * FUN_1811324a0(undefined8 *param_1)

{
  param_1[2] = 0;
  param_1[1] = "bad array new length";
  *param_1 = std::bad_array_new_length::vftable;
  return param_1;
}



############ FUN_ 180480500 size=89 ############

void FUN_180480500(ulonglong param_1)

{
  longlong lVar1;
  ulonglong uVar2;
  
  if (param_1 < 0x1000) {
    if (param_1 != 0) {
      FUN_1811316e0();
      return;
    }
    return;
  }
  uVar2 = param_1 + 0x27;
  if (uVar2 <= param_1) {
    uVar2 = 0xffffffffffffffff;
  }
  lVar1 = FUN_1811316e0(uVar2);
  if (lVar1 != 0) {
    *(longlong *)((lVar1 + 0x27U & 0xffffffffffffffe0) - 8) = lVar1;
    return;
  }
                    /* WARNING: Subroutine does not return */
  _invalid_parameter_noinfo_noreturn();
}



############ FUN_ 1804d1da0 size=141 ############

void FUN_1804d1da0(longlong *param_1,longlong param_2,longlong param_3,longlong param_4)

{
  void *pvVar1;
  void *_Memory;
  
  pvVar1 = (void *)*param_1;
  if (pvVar1 == (void *)0x0) {
    *param_1 = param_2;
    param_1[1] = param_3 * 0x10 + param_2;
    param_1[2] = param_4 * 0x10 + param_2;
    return;
  }
  _Memory = pvVar1;
  if ((0xfff < (param_1[2] - (longlong)pvVar1 & 0xfffffffffffffff0U)) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 18122b770 size=237 ############

undefined8 * FUN_18122b770(undefined8 *param_1,longlong *param_2)

{
  longlong lVar1;
  
  *param_1 = juce::Thread::vftable;
  lVar1 = *param_2;
  param_1[1] = lVar1;
  if ((*(uint *)(lVar1 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar1 + -0x10) = *(int *)(lVar1 + -0x10) + 1;
    UNLOCK();
  }
  param_1[2] = 0;
  param_1[3] = 0;
  InitializeCriticalSection((LPCRITICAL_SECTION)(param_1 + 4));
  *(undefined1 *)(param_1 + 10) = 0;
  _Mtx_init_in_situ(param_1 + 0xb,2);
  _Cnd_init_in_situ(param_1 + 0x15);
  *(undefined1 *)(param_1 + 0x1e) = 0;
  *(undefined1 *)(param_1 + 0x1f) = 0;
  _Mtx_init_in_situ(param_1 + 0x20,2);
  _Cnd_init_in_situ(param_1 + 0x2a);
  *(undefined1 *)(param_1 + 0x33) = 0;
  *(undefined4 *)(param_1 + 0x34) = 5;
  param_1[0x35] = 0;
  *(undefined4 *)(param_1 + 0x36) = 0;
  *(undefined1 *)((longlong)param_1 + 0x1b4) = 0;
  *(undefined4 *)(param_1 + 0x37) = 0;
  InitializeCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x38));
  param_1[0x3e] = 0;
  param_1[0x3f] = 0;
  return param_1;
}



############ FUN_ 1804d1b70 size=95 ############

void FUN_1804d1b70(longlong *param_1)

{
  longlong lVar1;
  longlong lVar2;
  void *_Dst;
  
  lVar1 = param_1[1];
  lVar2 = *param_1;
  _Dst = (void *)FUN_180480500(0x200);
  memmove(_Dst,(void *)*param_1,param_1[1] - *param_1);
  FUN_1804d1da0(param_1,_Dst,lVar1 - lVar2 >> 4,0x20);
  return;
}



############ FUN_ 181131478 size=209 ############

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* Library Function - Single Match
    __report_gsfailure
   
   Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release, Visual Studio 2019 Release */

void __cdecl __report_gsfailure(uintptr_t _StackCookie)

{
  code *pcVar1;
  BOOL BVar2;
  undefined1 *puVar3;
  undefined1 auStack_38 [8];
  undefined1 auStack_30 [48];
  
  puVar3 = auStack_38;
  BVar2 = IsProcessorFeaturePresent(0x17);
  if (BVar2 != 0) {
    pcVar1 = (code *)swi(0x29);
    (*pcVar1)(2);
    puVar3 = auStack_30;
  }
  *(undefined8 *)(puVar3 + -8) = 0x1811314a2;
  capture_previous_context(&DAT_182672af0);
  _DAT_182672a60 = *(undefined8 *)(puVar3 + 0x38);
  _DAT_182672b88 = puVar3 + 0x40;
  _DAT_182672b70 = *(undefined8 *)(puVar3 + 0x40);
  _DAT_182672a50 = 0xc0000409;
  _DAT_182672a54 = 1;
  _DAT_182672a68 = 1;
  DAT_182672a70 = 2;
  *(undefined8 *)(puVar3 + 0x20) = DAT_182615970;
  *(undefined8 *)(puVar3 + 0x28) = DAT_182615968;
  *(undefined8 *)(puVar3 + -8) = 0x181131544;
  DAT_182672be8 = _DAT_182672a60;
  __raise_securityfailure(&PTR_DAT_181c5cbe8);
  return;
}



############ FUN_ 180486ad0 size=441 ############

void FUN_180486ad0(void)

{
  ulonglong uVar1;
  void *pvVar2;
  longlong lVar3;
  ulonglong uVar4;
  void *pvVar5;
  size_t sVar6;
  size_t sVar7;
  
  uVar1 = DAT_182673938;
  uVar4 = 1;
  if (DAT_182673930 != 0) {
    uVar4 = DAT_182673930;
  }
  for (; (uVar4 == DAT_182673930 || (uVar4 < 8)); uVar4 = uVar4 * 2) {
    if (0x38e38e38e38e38e - uVar4 < uVar4) {
                    /* WARNING: Subroutine does not return */
      FUN_18047da60();
    }
  }
  uVar4 = uVar4 - DAT_182673930;
  lVar3 = (DAT_182673930 + uVar4) * 8;
  if (0x1fffffffffffffff < DAT_182673930 + uVar4) {
    lVar3 = -1;
  }
  pvVar2 = (void *)FUN_180480500(lVar3);
  sVar7 = uVar1 * 8;
  sVar6 = (DAT_182673930 * 8 - (longlong)(sVar7 + (longlong)DAT_182673928)) +
          (longlong)DAT_182673928;
  memmove((void *)(sVar7 + (longlong)pvVar2),(void *)(sVar7 + (longlong)DAT_182673928),sVar6);
  pvVar5 = (void *)((longlong)(sVar7 + (longlong)pvVar2) + sVar6);
  if (uVar4 < uVar1) {
    sVar6 = uVar4 * 8;
    memmove(pvVar5,DAT_182673928,sVar6);
    sVar7 = (sVar7 - (longlong)(sVar6 + (longlong)DAT_182673928)) + (longlong)DAT_182673928;
    memmove(pvVar2,(void *)(sVar6 + (longlong)DAT_182673928),sVar7);
    pvVar5 = (void *)(sVar7 + (longlong)pvVar2);
  }
  else {
    memmove(pvVar5,DAT_182673928,sVar7);
    memset((void *)(sVar7 + (longlong)pvVar5),0,(uVar4 - uVar1) * 8);
    pvVar5 = pvVar2;
    sVar6 = sVar7;
  }
  memset(pvVar5,0,sVar6);
  if (DAT_182673928 == (void *)0x0) {
    DAT_182673930 = DAT_182673930 + uVar4;
    DAT_182673928 = pvVar2;
    return;
  }
  pvVar2 = DAT_182673928;
  if ((0xfff < DAT_182673930 * 8) &&
     (pvVar2 = *(void **)((longlong)DAT_182673928 + -8),
     0x1f < (ulonglong)((longlong)DAT_182673928 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 180488560 size=106 ############

void FUN_180488560(longlong param_1,longlong *param_2)

{
  longlong *plVar1;
  undefined8 uVar2;
  
  plVar1 = (longlong *)param_2[7];
  if (plVar1 != (longlong *)0x0) {
    if (plVar1 == param_2) {
      uVar2 = (**(code **)(*plVar1 + 8))(plVar1,param_1);
      *(undefined8 *)(param_1 + 0x38) = uVar2;
      plVar1 = (longlong *)param_2[7];
      if (plVar1 != (longlong *)0x0) {
        (**(code **)(*plVar1 + 0x20))(plVar1,plVar1 != param_2);
        param_2[7] = 0;
        return;
      }
    }
    else {
      *(longlong **)(param_1 + 0x38) = plVar1;
      param_2[7] = 0;
    }
  }
  return;
}



############ FUN_ 1812b22b0 size=330 ############

void FUN_1812b22b0(undefined8 param_1,char *param_2)

{
  uint *_Memory;
  undefined4 *puVar1;
  uint uVar2;
  longlong lVar3;
  int iVar4;
  undefined4 *puVar5;
  bool bVar6;
  char *local_res10 [3];
  longlong local_40;
  undefined8 local_38;
  undefined4 *local_30;
  int local_24;
  
  local_40 = 0;
  local_38 = 0;
  local_res10[0] = param_2;
  FUN_1812b44e0(param_1,&local_30);
  puVar1 = local_30 + local_24;
  puVar5 = local_30;
  do {
    if (puVar5 == puVar1) {
                    /* WARNING: Subroutine does not return */
      free(local_30);
    }
    FUN_1812b2440(local_res10,*puVar5);
    if (*local_res10[0] != '\0') {
      if ((*(uint *)(local_res10[0] + -0x10) & 0x30000000) == 0) {
        LOCK();
        *(int *)(local_res10[0] + -0x10) = *(int *)(local_res10[0] + -0x10) + 1;
        UNLOCK();
      }
      iVar4 = local_38._4_4_ + 1;
      if ((int)local_38 < iVar4) {
        if (iVar4 < 0) {
          iVar4 = local_38._4_4_ + 2;
        }
        FUN_18048a300(&local_40,local_38._4_4_ + 9 + (iVar4 >> 1) & 0xfffffff8);
      }
      lVar3 = (longlong)local_38._4_4_;
      local_38 = CONCAT44(local_38._4_4_ + 1,(int)local_38);
      *(char **)(local_40 + lVar3 * 8) = local_res10[0];
      if ((DAT_1821dbf88 & 0x30000000) == 0) {
        LOCK();
        uVar2 = DAT_1821dbf88 - 1;
        UNLOCK();
        bVar6 = DAT_1821dbf88 == 0;
        DAT_1821dbf88 = uVar2;
        if (bVar6) {
                    /* WARNING: Subroutine does not return */
          free(&DAT_1821dbf88);
        }
      }
    }
    _Memory = (uint *)(local_res10[0] + -0x10);
    if ((*_Memory & 0x30000000) == 0) {
      LOCK();
      uVar2 = *_Memory;
      *_Memory = *_Memory - 1;
      UNLOCK();
      if (uVar2 == 0) {
                    /* WARNING: Subroutine does not return */
        free(_Memory);
      }
    }
    puVar5 = puVar5 + 1;
  } while( true );
}



############ FUN_ 18124a8a0 size=145 ############

undefined8 * FUN_18124a8a0(undefined8 *param_1,char *param_2,longlong param_3)

{
  undefined4 *puVar1;
  size_t _Size;
  
  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {
    _Size = param_3 - (longlong)param_2;
    puVar1 = (undefined4 *)thunk_FUN_1811316e0();
    LOCK();
    *puVar1 = 0;
    UNLOCK();
    *(size_t *)(puVar1 + 2) = _Size + 4 & 0xfffffffffffffffc;
    puVar1 = puVar1 + 4;
    memcpy(puVar1,param_2,_Size);
    *(undefined1 *)((longlong)puVar1 + _Size) = 0;
    *param_1 = puVar1;
    return param_1;
  }
  *param_1 = &DAT_1821dbf98;
  return param_1;
}



############ FUN_ 18049bb30 size=323 ############

void FUN_18049bb30(byte *param_1,byte *param_2)

{
  byte bVar1;
  wint_t wVar2;
  wint_t wVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  int iVar7;
  ulonglong uVar8;
  
  do {
    bVar1 = *param_1;
    param_1 = param_1 + 1;
    uVar6 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar4 = 0x40;
      iVar7 = 0;
      uVar6 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          if (uVar4 < 9) break;
          uVar6 = uVar6 >> 1;
          iVar7 = iVar7 + 1;
          uVar4 = uVar4 >> 1;
        } while ((bVar1 & uVar4) != 0);
      }
      uVar6 = bVar1 & uVar6;
      for (; (iVar7 = iVar7 + -1, -1 < iVar7 && ((*param_1 & 0xc0) == 0x80)); param_1 = param_1 + 1)
      {
        uVar6 = *param_1 & 0x3f | uVar6 << 6;
      }
    }
    bVar1 = *param_2;
    param_2 = param_2 + 1;
    uVar4 = (uint)bVar1;
    if ((char)bVar1 < '\0') {
      uVar5 = 0x40;
      iVar7 = 0;
      uVar8 = 0x7f;
      uVar4 = 0x7f;
      if ((bVar1 & 0x40) != 0) {
        do {
          uVar4 = (uint)uVar8;
          if (uVar5 < 9) break;
          uVar8 = uVar8 >> 1;
          uVar4 = (uint)uVar8;
          iVar7 = iVar7 + 1;
          uVar5 = uVar5 >> 1;
        } while ((bVar1 & uVar5) != 0);
      }
      uVar4 = bVar1 & uVar4;
      for (; (iVar7 = iVar7 + -1, -1 < iVar7 && ((*param_2 & 0xc0) == 0x80)); param_2 = param_2 + 1)
      {
        uVar4 = *param_2 & 0x3f | uVar4 << 6;
      }
    }
    if (uVar6 == uVar4) {
LAB_18049bc4a:
      iVar7 = 0;
    }
    else {
      wVar2 = towupper((wint_t)uVar4);
      wVar3 = towupper((wint_t)uVar6);
      if ((uint)wVar3 == (uint)wVar2) goto LAB_18049bc4a;
      iVar7 = 1;
      if ((int)((uint)wVar3 - (uint)wVar2) < 0) {
        iVar7 = -1;
      }
    }
    if ((iVar7 != 0) || (uVar6 == 0)) {
      return;
    }
  } while( true );
}



############ FUN_ 18122c970 size=114 ############

longlong * FUN_18122c970(longlong param_1,longlong *param_2,undefined8 param_3,longlong *param_4)

{
  int iVar1;
  uint uVar2;
  longlong *plVar3;
  longlong lVar4;
  
  iVar1 = FUN_1812498b0(param_1,param_3,*(undefined1 *)(param_1 + 0x20),0);
  if (iVar1 < 0) {
    lVar4 = *param_4;
    *param_2 = lVar4;
    uVar2 = *(uint *)(lVar4 + -0x10);
  }
  else {
    plVar3 = (longlong *)FUN_181249970(param_1 + 0x10,iVar1);
    lVar4 = *plVar3;
    *param_2 = lVar4;
    uVar2 = *(uint *)(lVar4 + -0x10);
  }
  if ((uVar2 & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar4 + -0x10) = *(int *)(lVar4 + -0x10) + 1;
    UNLOCK();
  }
  return param_2;
}



############ FUN_ 181131314 size=103 ############

/* Library Function - Single Match
    _Init_thread_header
   
   Library: Visual Studio 2017 Release */

void _Init_thread_header(int *param_1)

{
  EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182672a00);
  do {
    if (*param_1 == 0) {
      *param_1 = -1;
LAB_181131368:
                    /* WARNING: Could not recover jumptable at 0x000181131374. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182672a00);
      return;
    }
    if (*param_1 != -1) {
      *(undefined4 *)
       (*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc) =
           DAT_182615960;
      goto LAB_181131368;
    }
    _Init_thread_wait(100);
  } while( true );
}



############ FUN_ 1811312b4 size=96 ############

/* Library Function - Single Match
    _Init_thread_footer
   
   Library: Visual Studio 2017 Release */

void _Init_thread_footer(int *param_1)

{
  ulonglong uVar1;
  
  EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182672a00);
  uVar1 = (ulonglong)_tls_index;
  DAT_182615960 = DAT_182615960 + 1;
  *param_1 = DAT_182615960;
  *(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + uVar1 * 8) + 0xc) = DAT_182615960;
  LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182672a00);
  _Init_thread_notify();
  return;
}



############ FUN_ 181392670 size=81 ############

void FUN_181392670(longlong param_1,int param_2)

{
  int iVar1;
  void *pvVar2;
  
  if (*(int *)(param_1 + 0x28) <= *(int *)(param_1 + 0x2c) + param_2) {
    iVar1 = param_2 + 0x20 + *(int *)(param_1 + 0x28);
    *(int *)(param_1 + 0x28) = iVar1;
    pvVar2 = realloc(*(void **)(param_1 + 0x18),(longlong)iVar1 << 2);
    *(void **)(param_1 + 0x18) = pvVar2;
    pvVar2 = realloc(*(void **)(param_1 + 0x20),(longlong)*(int *)(param_1 + 0x28) << 3);
    *(void **)(param_1 + 0x20) = pvVar2;
  }
  return;
}



############ FUN_ 181390da0 size=210 ############

undefined8 FUN_181390da0(int *param_1,void *param_2)

{
  void *pvVar1;
  undefined8 *puVar2;
  undefined1 *puVar3;
  undefined8 *puVar4;
  int iVar5;
  
  memset(param_2,0,0x90);
  iVar5 = 0;
  *(int **)((longlong)param_2 + 0x50) = param_1;
  *(undefined4 *)((longlong)param_2 + 100) = 0;
  *(undefined8 *)((longlong)param_2 + 0x58) = 0;
  if (*param_1 != 0) {
    pvVar1 = calloc(1,0x88);
    *(void **)((longlong)param_2 + 0x88) = pvVar1;
    *(undefined4 *)((longlong)pvVar1 + 8) = 0xc61c3c00;
    puVar4 = (undefined8 *)((longlong)pvVar1 + 0x10);
    do {
      if (iVar5 == 7) {
        puVar2 = (undefined8 *)((longlong)param_2 + 8);
        *puVar4 = puVar2;
      }
      else {
        puVar2 = calloc(1,0x20);
        *puVar4 = puVar2;
      }
      *puVar2 = 0;
      puVar2[1] = 0;
      puVar2[2] = 0;
      puVar2[3] = 0;
      puVar3 = malloc(0x100);
      iVar5 = iVar5 + 1;
      puVar4 = puVar4 + 1;
      puVar2[1] = puVar3;
      puVar2[2] = puVar3;
      *puVar3 = 0;
      *(undefined4 *)(puVar2 + 3) = 0x100;
    } while (iVar5 < 0xf);
  }
  return 0;
}



############ FUN_ 181390660 size=1358 ############

undefined4 FUN_181390660(undefined4 *param_1,longlong param_2,int param_3)

{
  int *piVar1;
  undefined4 *puVar2;
  float fVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  int iVar7;
  void *pvVar8;
  void *pvVar9;
  undefined8 uVar10;
  uint uVar11;
  int *piVar13;
  undefined4 *_Dst;
  longlong *plVar14;
  ulonglong uVar15;
  longlong *plVar16;
  ulonglong uVar17;
  float fVar18;
  double dVar19;
  ulonglong uVar12;
  
  piVar1 = *(int **)(param_2 + 0x20);
  if (piVar1 == (int *)0x0) {
    return 1;
  }
  iVar7 = piVar1[0x59a];
  memset(param_1,0,0x80);
  pvVar8 = calloc(1,0xd0);
  uVar15 = 0;
  *(longlong *)(param_1 + 2) = param_2;
  *(void **)(param_1 + 0x1e) = pvVar8;
  uVar11 = 0;
  if (piVar1[2] != 0) {
    uVar12 = uVar15;
    for (uVar4 = piVar1[2] - 1; uVar4 != 0; uVar4 = uVar4 >> 1) {
      uVar11 = (int)uVar12 + 1;
      uVar12 = (ulonglong)uVar11;
    }
  }
  *(uint *)((longlong)pvVar8 + 0x50) = uVar11;
  pvVar9 = calloc(1,8);
  *(void **)((longlong)pvVar8 + 0x10) = pvVar9;
  pvVar9 = calloc(1,8);
  *(void **)((longlong)pvVar8 + 0x18) = pvVar9;
  pvVar9 = calloc(1,0x20);
  **(undefined8 **)((longlong)pvVar8 + 0x10) = pvVar9;
  pvVar9 = calloc(1,0x20);
  **(undefined8 **)((longlong)pvVar8 + 0x18) = pvVar9;
  FUN_181384180(**(undefined8 **)((longlong)pvVar8 + 0x10),*piVar1 >> ((byte)iVar7 & 0x1f));
  FUN_181384180(**(undefined8 **)((longlong)pvVar8 + 0x18),piVar1[1] >> ((byte)iVar7 & 0x1f));
  uVar4 = 0;
  uVar11 = uVar4;
  if (*piVar1 != 0) {
    uVar12 = uVar15;
    for (uVar5 = *piVar1 - 1; uVar5 != 0; uVar5 = uVar5 >> 1) {
      uVar11 = (int)uVar12 + 1;
      uVar12 = (ulonglong)uVar11;
    }
  }
  *(uint *)((longlong)pvVar8 + 8) = uVar11 - 6;
  if (piVar1[1] != 0) {
    uVar12 = uVar15;
    for (uVar11 = piVar1[1] - 1; uVar11 != 0; uVar11 = uVar11 >> 1) {
      uVar4 = (int)uVar12 + 1;
      uVar12 = (ulonglong)uVar4;
    }
  }
  *(uint *)((longlong)pvVar8 + 0xc) = uVar4 - 6;
  if (param_3 == 0) {
    if (*(longlong *)(piVar1 + 0x4c8) == 0) {
      pvVar9 = calloc((longlong)piVar1[6],0x58);
      *(void **)(piVar1 + 0x4c8) = pvVar9;
      if (0 < piVar1[6]) {
        plVar16 = (longlong *)(piVar1 + 0x2c8);
        uVar12 = uVar15;
        plVar14 = plVar16;
        do {
          if (*plVar14 == 0) {
LAB_181390b7a:
            if (0 < piVar1[6]) {
              do {
                if (*plVar16 != 0) {
                  FUN_18137ac80();
                  *plVar16 = 0;
                }
                uVar11 = (int)uVar15 + 1;
                uVar15 = (ulonglong)uVar11;
                plVar16 = plVar16 + 1;
              } while ((int)uVar11 < piVar1[6]);
            }
            FUN_18138ffc0(param_1);
            return 0xffffffff;
          }
          iVar7 = FUN_18137a400((longlong)(int)uVar12 * 0x58 + *(longlong *)(piVar1 + 0x4c8));
          if (iVar7 != 0) goto LAB_181390b7a;
          FUN_18137ac80(*plVar14);
          *plVar14 = 0;
          uVar11 = (int)uVar12 + 1;
          uVar12 = (ulonglong)uVar11;
          plVar14 = plVar14 + 1;
        } while ((int)uVar11 < piVar1[6]);
      }
    }
  }
  else {
    FUN_1813776a0((longlong)pvVar8 + 0x20,*piVar1);
    FUN_1813776a0((longlong)pvVar8 + 0x38,piVar1[1]);
    if (*(longlong *)(piVar1 + 0x4c8) == 0) {
      pvVar9 = calloc((longlong)piVar1[6],0x58);
      *(void **)(piVar1 + 0x4c8) = pvVar9;
      fVar3 = DAT_1824c3d8c;
      if (0 < piVar1[6]) {
        piVar13 = piVar1 + 0x2c8;
        uVar11 = (uint)DAT_1824c4f20;
        uVar4 = (uint)((ulonglong)DAT_1824c4f20 >> 0x20);
        uVar12 = uVar15;
        uVar17 = uVar15;
        do {
          puVar2 = *(undefined4 **)piVar13;
          _Dst = (undefined4 *)(*(longlong *)(piVar1 + 0x4c8) + uVar17);
          memset(_Dst,0,0x58);
          *(undefined4 **)(_Dst + 4) = puVar2;
          _Dst[1] = puVar2[1];
          _Dst[2] = puVar2[1];
          *_Dst = *puVar2;
          uVar10 = FUN_18137b010(*(undefined8 *)(puVar2 + 2),puVar2[1],0);
          *(undefined8 *)(_Dst + 8) = uVar10;
          uVar6 = FUN_18137af80(puVar2);
          _Dst[0x12] = uVar6;
          uVar5 = puVar2[5];
          dVar19 = (double)(uVar5 & 0x1fffff);
          if ((int)uVar5 < 0) {
            dVar19 = (double)CONCAT44((uint)((ulonglong)dVar19 >> 0x20) ^ uVar4,
                                      SUB84(dVar19,0) ^ uVar11);
          }
          dVar19 = ldexp(dVar19,((int)uVar5 >> 0x15 & 0x3ffU) - 0x314);
          fVar18 = floorf((float)dVar19 + fVar3);
          _Dst[0x13] = (int)fVar18;
          uVar5 = puVar2[6];
          dVar19 = (double)(uVar5 & 0x1fffff);
          if ((int)uVar5 < 0) {
            dVar19 = (double)CONCAT44((uint)((ulonglong)dVar19 >> 0x20) ^ uVar4,
                                      SUB84(dVar19,0) ^ uVar11);
          }
          dVar19 = ldexp(dVar19,((int)uVar5 >> 0x15 & 0x3ffU) - 0x314);
          fVar18 = floorf((float)dVar19 + fVar3);
          uVar5 = (int)uVar12 + 1;
          uVar12 = (ulonglong)uVar5;
          piVar13 = piVar13 + 2;
          uVar17 = uVar17 + 0x58;
          _Dst[0x14] = (int)fVar18;
        } while ((int)uVar5 < piVar1[6]);
      }
    }
    pvVar9 = calloc((longlong)piVar1[7],0x50);
    *(void **)((longlong)pvVar8 + 0x68) = pvVar9;
    if (0 < piVar1[7]) {
      piVar13 = piVar1 + 0x4ca;
      uVar12 = uVar15;
      do {
        FUN_181380b80((longlong)(int)uVar12 * 0x50 + *(longlong *)((longlong)pvVar8 + 0x68),
                      *(int **)piVar13,piVar1 + 0x4d2,piVar1[**(int **)piVar13] / 2,
                      *(undefined4 *)(param_2 + 8));
        uVar11 = (int)uVar12 + 1;
        uVar12 = (ulonglong)uVar11;
        piVar13 = piVar13 + 2;
      } while ((int)uVar11 < piVar1[7]);
    }
    *param_1 = 1;
  }
  param_1[8] = piVar1[1];
  pvVar9 = malloc((longlong)*(int *)(param_2 + 4) << 3);
  *(void **)(param_1 + 4) = pvVar9;
  pvVar9 = malloc((longlong)*(int *)(param_2 + 4) << 3);
  *(void **)(param_1 + 6) = pvVar9;
  uVar12 = uVar15;
  uVar17 = uVar15;
  if (0 < *(int *)(param_2 + 4)) {
    do {
      pvVar9 = calloc((longlong)(int)param_1[8],4);
      uVar11 = (int)uVar12 + 1;
      *(void **)(uVar17 + *(longlong *)(param_1 + 4)) = pvVar9;
      uVar12 = (ulonglong)uVar11;
      uVar17 = uVar17 + 8;
    } while ((int)uVar11 < *(int *)(param_2 + 4));
  }
  *(undefined8 *)(param_1 + 0xd) = 0;
  iVar7 = piVar1[1];
  param_1[0x10] = iVar7 / 2;
  param_1[9] = iVar7 / 2;
  pvVar9 = calloc((longlong)piVar1[4],8);
  *(void **)((longlong)pvVar8 + 0x58) = pvVar9;
  pvVar9 = calloc((longlong)piVar1[5],8);
  *(void **)((longlong)pvVar8 + 0x60) = pvVar9;
  if (0 < piVar1[4]) {
    piVar13 = piVar1 + 0x148;
    uVar12 = uVar15;
    uVar17 = uVar15;
    do {
      uVar10 = (**(code **)((&PTR_DAT_1822f5a90)[*piVar13] + 0x10))
                         (param_1,*(undefined8 *)((longlong)piVar1 + uVar12 + 0x620));
      piVar13 = piVar13 + 1;
      uVar11 = (int)uVar17 + 1;
      uVar17 = (ulonglong)uVar11;
      *(undefined8 *)(uVar12 + *(longlong *)((longlong)pvVar8 + 0x58)) = uVar10;
      uVar12 = uVar12 + 8;
    } while ((int)uVar11 < piVar1[4]);
  }
  if (0 < piVar1[5]) {
    piVar13 = piVar1 + 0x208;
    uVar12 = uVar15;
    do {
      uVar10 = (**(code **)((&PTR_DAT_182280c20)[*piVar13] + 0x10))
                         (param_1,*(undefined8 *)((longlong)piVar1 + uVar12 + 0x920));
      piVar13 = piVar13 + 1;
      uVar11 = (int)uVar15 + 1;
      uVar15 = (ulonglong)uVar11;
      *(undefined8 *)(uVar12 + *(longlong *)((longlong)pvVar8 + 0x60)) = uVar10;
      uVar12 = uVar12 + 8;
    } while ((int)uVar11 < piVar1[5]);
  }
  return 0;
}



############ FUN_ 18138f730 size=108 ############

undefined8 FUN_18138f730(longlong param_1)

{
  undefined4 uVar1;
  longlong lVar2;
  byte bVar3;
  int iVar4;
  
  if (((*(longlong *)(param_1 + 0x78) != 0) && (*(longlong *)(param_1 + 8) != 0)) &&
     (lVar2 = *(longlong *)(*(longlong *)(param_1 + 8) + 0x20), lVar2 != 0)) {
    uVar1 = *(undefined4 *)(lVar2 + 0x1668);
    iVar4 = *(int *)(lVar2 + 4);
    *(undefined4 *)(param_1 + 0x28) = 0xffffffff;
    *(undefined8 *)(param_1 + 0x48) = 0xffffffffffffffff;
    bVar3 = (byte)uVar1;
    *(undefined8 *)(param_1 + 0x50) = 0xffffffffffffffff;
    iVar4 = iVar4 >> (bVar3 + 1 & 0x1f);
    *(int *)(param_1 + 0x40) = iVar4;
    *(int *)(param_1 + 0x24) = iVar4 >> (bVar3 & 0x1f);
    *(undefined4 *)(param_1 + 0x30) = 0;
    *(undefined8 *)(*(longlong *)(param_1 + 0x78) + 200) = 0xffffffffffffffff;
    return 0;
  }
  return 0xffffffff;
}



############ FUN_ 181383520 size=66 ############

void FUN_181383520(undefined8 *param_1)

{
  if (param_1 != (undefined8 *)0x0) {
    if ((void *)param_1[1] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[1]);
    }
    if ((void *)param_1[2] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[2]);
    }
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    param_1[3] = 0;
  }
  return;
}



############ FUN_ 181370a20 size=1916 ############

undefined8 FUN_181370a20(longlong param_1,longlong param_2)

{
  uint *puVar1;
  byte *pbVar2;
  bool bVar3;
  byte bVar4;
  int iVar5;
  void *pvVar6;
  longlong lVar7;
  int *piVar8;
  longlong *plVar9;
  undefined8 uVar10;
  uint uVar11;
  uint uVar12;
  longlong lVar14;
  longlong lVar15;
  longlong lVar16;
  int iVar17;
  void *pvVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  longlong lVar21;
  longlong lVar22;
  longlong lVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  int local_res8;
  longlong local_208;
  uint local_200;
  uint local_1fc;
  uint local_1f8;
  longlong local_1f0;
  ulonglong local_1e8;
  void *local_1d8;
  undefined4 local_1d0;
  undefined4 uStack_1cc;
  uint local_1c8;
  void *local_1c0;
  void *local_1b8;
  undefined4 local_1b0;
  undefined4 uStack_1ac;
  int local_1a8;
  uint uStack_1a4;
  undefined8 local_84;
  undefined4 local_7c;
  int local_78;
  undefined4 local_74;
  ulonglong local_70;
  undefined8 local_68;
  longlong local_58 [4];
  ulonglong uVar13;
  
  if (1 < *(int *)(param_1 + 0x80)) {
    if (*(int *)(param_1 + 8) == 0) {
      return 0xffffff76;
    }
    if ((-1 < param_2) && (param_2 <= *(longlong *)(param_1 + 0x18))) {
      if (2 < *(int *)(param_1 + 0x80)) {
        if ((param_2 < *(longlong *)
                        (*(longlong *)(param_1 + 0x48) + (longlong)*(int *)(param_1 + 0x88) * 8)) ||
           (*(longlong *)
             (*(longlong *)(param_1 + 0x48) + (longlong)(*(int *)(param_1 + 0x88) + 1) * 8) <=
            param_2)) {
          FUN_181371c60(param_1);
        }
      }
      *(undefined8 *)(param_1 + 0x78) = 0xffffffffffffffff;
      uVar20 = 0;
      *(undefined4 *)(param_1 + 0x204) = 0xffffffff;
      *(undefined8 *)(param_1 + 0xac) = 0;
      *(undefined8 *)(param_1 + 0xcc) = 0;
      *(undefined4 *)(param_1 + 0xd4) = 0;
      *(undefined8 *)(param_1 + 500) = 0;
      *(undefined4 *)(param_1 + 0x1fc) = 0;
      *(undefined8 *)(param_1 + 0x208) = 0;
      *(undefined8 *)(param_1 + 0x210) = 0;
      *(undefined4 *)(param_1 + 0x200) = *(undefined4 *)(param_1 + 0x84);
      FUN_18138f730(param_1 + 0x218);
      iVar5 = FUN_1813731b0(param_1);
      if (iVar5 != 0) {
        *(undefined8 *)(param_1 + 0x78) = 0xffffffffffffffff;
        if (local_1d8 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free(local_1d8);
        }
        if (local_1c0 == (void *)0x0) {
          if (local_1b8 == (void *)0x0) {
            FUN_181371c60(param_1);
            return 0xffffff77;
          }
                    /* WARNING: Subroutine does not return */
          free(local_1b8);
        }
                    /* WARNING: Subroutine does not return */
        free(local_1c0);
      }
      iVar5 = *(int *)(param_1 + 0x84);
      local_res8 = 0;
      bVar4 = 0;
      bVar3 = false;
      memset(&local_1d8,0,0x178);
      local_1d0 = 0x4000;
      uStack_1cc = 0;
      local_1d8 = malloc(0x4000);
      local_1b0 = 0x400;
      uStack_1ac = 0;
      pvVar6 = malloc(0x1000);
      local_1c0 = pvVar6;
      local_1b8 = malloc(0x2000);
      local_1c8 = 0;
      local_68 = 0;
      local_1a8 = 0;
      uStack_1a4 = 0;
      local_84 = 0;
      local_7c = 0;
      local_74 = 0xffffffff;
      local_70 = 0;
      uVar19 = uVar20;
      uVar13 = uVar20;
      uVar26 = uVar20;
      local_78 = iVar5;
      do {
        while( true ) {
          uVar25 = (uint)uVar26;
          iVar5 = (int)uVar19;
          uVar24 = uVar13;
          if ((2 < *(int *)(param_1 + 0x80)) && ((int)uVar25 < local_1a8)) break;
LAB_181370e88:
          if (iVar5 != 0) {
            *(undefined8 *)(param_1 + 0x78) = 0xffffffffffffffff;
            goto LAB_181371126;
          }
          lVar7 = FUN_1813730a0(param_1,local_58,0xffffffffffffffff);
          lVar14 = local_58[0];
          if (lVar7 < 0) {
            uVar10 = FUN_181371270(param_1,0xffffffff);
            *(undefined8 *)(param_1 + 0x78) = uVar10;
            goto LAB_181371126;
          }
          if (*(int *)(param_1 + 0x80) < 3) {
LAB_181370f59:
            uVar13 = 0;
            uVar12 = 0;
            uVar25 = *(uint *)(param_1 + 0x40);
            iVar5 = *(int *)(lVar14 + 0xe);
            uVar20 = uVar13;
            if (0 < (int)uVar25) {
              piVar8 = *(int **)(param_1 + 0x58);
              do {
                uVar12 = (uint)uVar13;
                if (*piVar8 == iVar5) break;
                uVar12 = uVar12 + 1;
                uVar13 = (ulonglong)uVar12;
                uVar20 = uVar20 + 1;
                piVar8 = piVar8 + 1;
              } while ((int)uVar12 < (int)uVar25);
            }
            if (uVar12 != uVar25) {
              *(uint *)(param_1 + 0x88) = uVar12;
              *(int *)(param_1 + 0x84) = iVar5;
              *(undefined8 *)(param_1 + 0xac) = 0;
              *(undefined8 *)(param_1 + 0xcc) = 0;
              *(undefined4 *)(param_1 + 0xd4) = 0;
              *(undefined8 *)(param_1 + 500) = 0;
              *(undefined4 *)(param_1 + 0x1fc) = 0;
              *(undefined4 *)(param_1 + 0x204) = 0xffffffff;
              *(undefined8 *)(param_1 + 0x208) = 0;
              *(undefined8 *)(param_1 + 0x210) = 0;
              *(int *)(param_1 + 0x200) = iVar5;
              *(undefined4 *)(param_1 + 0x80) = 3;
              uStack_1cc = 0;
              local_1c8 = 0;
              uStack_1ac = 0;
              local_1a8 = 0;
              uStack_1a4 = 0;
              bVar3 = lVar7 <= *(longlong *)(*(longlong *)(param_1 + 0x50) + uVar20 * 8);
              local_84 = 0;
              local_7c = 0;
              local_74 = 0xffffffff;
              local_70 = 0;
              local_68 = 0;
              local_78 = iVar5;
              goto LAB_18137104c;
            }
          }
          else {
            if ((*(int *)(param_1 + 0x84) != *(int *)(local_58[0] + 0xe)) &&
               ((*(byte *)(local_58[0] + 5) & 2) != 0)) {
              FUN_181371c60(param_1);
              if (local_1d8 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
                free(local_1d8);
              }
              if (local_1c0 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
                free(local_1c0);
              }
              if (local_1b8 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
                free(local_1b8);
              }
              memset(&local_1d8,0,0x178);
              uVar26 = (ulonglong)uStack_1a4;
              uVar24 = local_70;
            }
            if (*(int *)(param_1 + 0x80) < 3) goto LAB_181370f59;
LAB_18137104c:
            FUN_1813919f0(param_1 + 0xa0,local_58);
            FUN_1813919f0(&local_1d8,local_58);
            bVar4 = *(byte *)(lVar14 + 5) & 4;
            uVar26 = (ulonglong)uStack_1a4;
            uVar24 = local_70;
          }
          uVar20 = (ulonglong)local_1c8;
          uVar13 = uVar24;
          pvVar6 = local_1c0;
        }
        uVar12 = *(uint *)((longlong)pvVar6 + (longlong)(int)uVar25 * 4);
        if ((uVar12 >> 10 & 1) != 0) {
          uStack_1a4 = uVar25 + 1;
          uVar26 = (ulonglong)uStack_1a4;
          uVar24 = uVar13 + 1;
          local_70 = uVar24;
          goto LAB_181370e88;
        }
        local_200 = uVar12 & 0xff;
        local_1f8 = uVar12 & 0x200;
        local_1fc = uVar12 & 0x100;
        if (local_200 == 0xff) {
          pvVar18 = (void *)((longlong)pvVar6 + (longlong)(int)uVar25 * 4);
          local_200 = 0xff;
          do {
            puVar1 = (uint *)((longlong)pvVar18 + 4);
            pvVar18 = (void *)((longlong)pvVar18 + 4);
            uVar25 = (int)uVar26 + 1;
            uVar26 = (ulonglong)uVar25;
            uVar12 = *puVar1 & 0xff;
            if ((*puVar1 & 0x200) != 0) {
              local_1f8 = 0x200;
            }
            local_200 = local_200 + uVar12;
            pvVar6 = local_1c0;
          } while (uVar12 == 0xff);
        }
        iVar17 = (int)uVar20;
        local_1c8 = iVar17 + local_200;
        uVar20 = (ulonglong)local_1c8;
        local_208 = (longlong)iVar17 + (longlong)local_1d8;
        uStack_1a4 = uVar25 + 1;
        uVar26 = (ulonglong)uStack_1a4;
        uVar24 = uVar13 + 1;
        local_1f0 = *(longlong *)((longlong)local_1b8 + (longlong)(int)uVar25 * 8);
        local_1e8 = uVar13;
        local_70 = uVar24;
        if (*(longlong *)
             (*(longlong *)(param_1 + 0x68) + 0x20 + (longlong)*(int *)(param_1 + 0x88) * 0x28) == 0
           ) {
          uVar25 = *(uint *)(param_1 + 0xd4);
          uVar20 = (ulonglong)(int)uVar25;
          if ((int)uVar25 < *(int *)(param_1 + 0xd0)) {
            lVar14 = *(longlong *)(param_1 + 0xb8) + uVar20 * 4;
            uVar12 = *(uint *)(*(longlong *)(param_1 + 0xb8) + uVar20 * 4);
            if ((uVar12 >> 10 & 1) == 0) {
              uVar12 = uVar12 & 0xff;
              uVar11 = uVar12;
              while (uVar11 == 0xff) {
                pbVar2 = (byte *)(lVar14 + 4);
                lVar14 = lVar14 + 4;
                uVar11 = (uint)*pbVar2;
                uVar12 = uVar12 + uVar11;
                uVar25 = (int)uVar20 + 1;
                uVar20 = (ulonglong)uVar25;
              }
              *(int *)(param_1 + 0xb0) = *(int *)(param_1 + 0xb0) + uVar12;
            }
            *(longlong *)(param_1 + 0x208) = *(longlong *)(param_1 + 0x208) + 1;
            *(uint *)(param_1 + 0xd4) = uVar25 + 1;
          }
          goto LAB_181370e88;
        }
        uVar25 = FUN_1813772d0(*(longlong *)(param_1 + 0x68) +
                               (longlong)*(int *)(param_1 + 0x88) * 0x28,&local_208);
        if ((int)uVar25 < 0) {
          uVar25 = *(uint *)(param_1 + 0xd4);
          uVar19 = (ulonglong)(int)uVar25;
          if ((int)uVar25 < *(int *)(param_1 + 0xd0)) {
            lVar14 = *(longlong *)(param_1 + 0xb8) + uVar19 * 4;
            uVar12 = *(uint *)(*(longlong *)(param_1 + 0xb8) + uVar19 * 4);
            if ((uVar12 >> 10 & 1) == 0) {
              uVar12 = uVar12 & 0xff;
              uVar11 = uVar12;
              while (uVar11 == 0xff) {
                pbVar2 = (byte *)(lVar14 + 4);
                lVar14 = lVar14 + 4;
                uVar11 = (uint)*pbVar2;
                uVar12 = uVar12 + uVar11;
                uVar25 = (int)uVar19 + 1;
                uVar19 = (ulonglong)uVar25;
              }
              *(int *)(param_1 + 0xb0) = *(int *)(param_1 + 0xb0) + uVar12;
            }
            *(longlong *)(param_1 + 0x208) = *(longlong *)(param_1 + 0x208) + 1;
            *(uint *)(param_1 + 0xd4) = uVar25 + 1;
          }
          uVar25 = 0;
        }
        else if ((bVar4 == 0) || (bVar3)) {
          if (iVar5 != 0) {
            local_res8 = local_res8 + ((int)(uVar25 + iVar5) >> 2);
          }
        }
        else {
          uVar12 = *(uint *)(param_1 + 0xd4);
          uVar19 = (ulonglong)(int)uVar12;
          if ((int)uVar12 < *(int *)(param_1 + 0xd0)) {
            lVar14 = *(longlong *)(param_1 + 0xb8) + uVar19 * 4;
            uVar11 = *(uint *)(*(longlong *)(param_1 + 0xb8) + uVar19 * 4);
            if ((uVar11 >> 10 & 1) == 0) {
              uVar11 = uVar11 & 0xff;
              if (uVar11 == 0xff) {
                uVar11 = 0xff;
                do {
                  pbVar2 = (byte *)(lVar14 + 4);
                  lVar14 = lVar14 + 4;
                  uVar11 = uVar11 + *pbVar2;
                  uVar12 = (int)uVar19 + 1;
                  uVar19 = (ulonglong)uVar12;
                } while (*pbVar2 == 0xff);
              }
              *(int *)(param_1 + 0xb0) = *(int *)(param_1 + 0xb0) + uVar11;
            }
            *(longlong *)(param_1 + 0x208) = *(longlong *)(param_1 + 0x208) + 1;
            *(uint *)(param_1 + 0xd4) = uVar12 + 1;
          }
        }
        lVar14 = 0;
        if (local_1f0 != -1) {
          lVar15 = (longlong)*(int *)(param_1 + 0x88);
          lVar7 = *(longlong *)(param_1 + 0x60);
          lVar21 = local_1f0 - *(longlong *)(lVar7 + (longlong)(*(int *)(param_1 + 0x88) * 2) * 8);
          if (lVar21 < 0) {
            lVar21 = lVar14;
          }
          lVar22 = lVar14;
          lVar23 = lVar14;
          if (1 < lVar15) {
            plVar9 = (longlong *)(lVar7 + 0x18);
            lVar16 = (lVar15 - 2U >> 1) + 1;
            lVar23 = lVar16 * 2;
            do {
              lVar22 = lVar22 + plVar9[-2];
              lVar14 = lVar14 + *plVar9;
              plVar9 = plVar9 + 4;
              lVar16 = lVar16 + -1;
            } while (lVar16 != 0);
          }
          if (lVar23 < lVar15) {
            lVar21 = lVar21 + *(longlong *)(lVar7 + 8 + lVar23 * 0x10);
          }
          lVar21 = lVar22 + (lVar14 - local_res8) + lVar21;
          *(longlong *)(param_1 + 0x78) = lVar21;
          if (lVar21 < 0) {
            *(undefined8 *)(param_1 + 0x78) = 0;
          }
LAB_181371126:
          if (local_1d8 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
            free(local_1d8);
          }
          if (local_1c0 == (void *)0x0) {
            if (local_1b8 == (void *)0x0) {
              *(undefined8 *)(param_1 + 0x90) = 0;
              *(undefined8 *)(param_1 + 0x98) = 0;
              return 0;
            }
                    /* WARNING: Subroutine does not return */
            free(local_1b8);
          }
                    /* WARNING: Subroutine does not return */
          free(local_1c0);
        }
        uVar19 = (ulonglong)uVar25;
        uVar13 = uVar24;
      } while( true );
    }
  }
  return 0xffffff7d;
}



############ FUN_ 1813731b0 size=106 ############

undefined8 FUN_1813731b0(longlong *param_1,longlong param_2)

{
  int iVar1;
  
  if (*param_1 == 0) {
    return 0xffffff7f;
  }
  if ((code *)param_1[0x66] != (code *)0x0) {
    iVar1 = (*(code *)param_1[0x66])(*param_1,param_2,0);
    if (iVar1 != -1) {
      param_1[2] = param_2;
      *(undefined8 *)((longlong)param_1 + 0x2c) = 0;
      *(undefined8 *)((longlong)param_1 + 0x34) = 0;
      *(undefined4 *)((longlong)param_1 + 0x3c) = 0;
      return 0;
    }
  }
  return 0xffffff80;
}



############ FUN_ 181391ee0 size=128 ############

longlong FUN_181391ee0(longlong *param_1,int param_2)

{
  void *pvVar1;
  int iVar2;
  
  iVar2 = (int)param_1[2];
  if (iVar2 != 0) {
    *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) - iVar2;
    if (0 < *(int *)((longlong)param_1 + 0xc)) {
      memmove((void *)*param_1,(void *)(*param_1 + (longlong)iVar2),
              (longlong)*(int *)((longlong)param_1 + 0xc));
    }
    *(undefined4 *)(param_1 + 2) = 0;
  }
  if ((int)param_1[1] - *(int *)((longlong)param_1 + 0xc) < param_2) {
    iVar2 = param_2 + 0x1000 + *(int *)((longlong)param_1 + 0xc);
    if ((void *)*param_1 == (void *)0x0) {
      pvVar1 = malloc((longlong)iVar2);
    }
    else {
      pvVar1 = realloc((void *)*param_1,(longlong)iVar2);
    }
    *param_1 = (longlong)pvVar1;
    *(int *)(param_1 + 1) = iVar2;
  }
  return (longlong)*(int *)((longlong)param_1 + 0xc) + *param_1;
}



############ FUN_ 181391d60 size=335 ############

int FUN_181391d60(longlong *param_1,longlong *param_2)

{
  byte bVar1;
  void *pvVar2;
  int iVar3;
  longlong lVar4;
  int iVar5;
  int iVar6;
  int *piVar7;
  byte *pbVar8;
  int iVar9;
  int *local_38;
  int local_30;
  longlong local_28;
  int local_20;
  
  iVar3 = 0;
  piVar7 = (int *)((longlong)(int)param_1[2] + *param_1);
  iVar6 = *(int *)((longlong)param_1 + 0xc) - (int)param_1[2];
  if ((int)param_1[3] == 0) {
    if (iVar6 < 0x1b) {
      return 0;
    }
    if (*piVar7 != DAT_1821ef904) goto LAB_181391e2c;
    iVar9 = *(byte *)((longlong)piVar7 + 0x1a) + 0x1b;
    if (iVar6 < iVar9) {
      return 0;
    }
    if (*(byte *)((longlong)piVar7 + 0x1a) != 0) {
      iVar5 = *(int *)((longlong)param_1 + 0x1c);
      pbVar8 = (byte *)((longlong)piVar7 + 0x1b);
      do {
        bVar1 = *pbVar8;
        pbVar8 = pbVar8 + 1;
        iVar5 = iVar5 + (uint)bVar1;
        iVar3 = iVar3 + 1;
        *(int *)((longlong)param_1 + 0x1c) = iVar5;
      } while (iVar3 < (int)(uint)*(byte *)((longlong)piVar7 + 0x1a));
    }
    *(int *)(param_1 + 3) = iVar9;
  }
  if (iVar6 < (int)param_1[3] + *(int *)((longlong)param_1 + 0x1c)) {
    return 0;
  }
  iVar3 = *(int *)((longlong)piVar7 + 0x16);
  *(undefined4 *)((longlong)piVar7 + 0x16) = 0;
  local_30 = (int)param_1[3];
  local_28 = (longlong)piVar7 + (longlong)local_30;
  local_20 = *(int *)((longlong)param_1 + 0x1c);
  local_38 = piVar7;
  FUN_1813925b0(&local_38);
  if (iVar3 == *(int *)((longlong)piVar7 + 0x16)) {
    lVar4 = (longlong)(int)param_1[2] + *param_1;
    if (param_2 != (longlong *)0x0) {
      *param_2 = lVar4;
      *(int *)(param_2 + 1) = (int)param_1[3];
      param_2[2] = (int)param_1[3] + lVar4;
      *(int *)(param_2 + 3) = *(int *)((longlong)param_1 + 0x1c);
    }
    iVar3 = (int)param_1[3] + *(int *)((longlong)param_1 + 0x1c);
    *(int *)(param_1 + 2) = (int)param_1[2] + iVar3;
    *(int *)((longlong)param_1 + 0x14) = 0;
    param_1[3] = 0;
    return iVar3;
  }
  *(int *)((longlong)piVar7 + 0x16) = iVar3;
LAB_181391e2c:
  param_1[3] = 0;
  pvVar2 = memchr((void *)((longlong)piVar7 + 1),0x4f,(longlong)(iVar6 + -1));
  if (pvVar2 == (void *)0x0) {
    pvVar2 = (void *)((longlong)*(int *)((longlong)param_1 + 0xc) + *param_1);
  }
  *(int *)(param_1 + 2) = (int)pvVar2 - (int)*param_1;
  return (int)piVar7 - (int)pvVar2;
}



############ FUN_ 181390d20 size=122 ############

longlong FUN_181390d20(longlong param_1,int param_2)

{
  int iVar1;
  undefined8 *puVar2;
  void *pvVar3;
  uint uVar4;
  
  uVar4 = param_2 + 7U & 0xfffffff8;
  if (*(int *)(param_1 + 100) < (int)(*(int *)(param_1 + 0x60) + uVar4)) {
    if (*(longlong *)(param_1 + 0x58) != 0) {
      puVar2 = malloc(0x10);
      *(int *)(param_1 + 0x68) = *(int *)(param_1 + 0x68) + *(int *)(param_1 + 0x60);
      puVar2[1] = *(undefined8 *)(param_1 + 0x70);
      *puVar2 = *(undefined8 *)(param_1 + 0x58);
      *(undefined8 **)(param_1 + 0x70) = puVar2;
    }
    *(uint *)(param_1 + 100) = uVar4;
    pvVar3 = malloc((longlong)(int)uVar4);
    *(void **)(param_1 + 0x58) = pvVar3;
    *(undefined4 *)(param_1 + 0x60) = 0;
  }
  iVar1 = *(int *)(param_1 + 0x60);
  *(uint *)(param_1 + 0x60) = iVar1 + uVar4;
  return (longlong)iVar1 + *(longlong *)(param_1 + 0x58);
}



############ FUN_ 1813877e0 size=931 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1813877e0(int *param_1,longlong *param_2,undefined8 *param_3)

{
  undefined1 uVar1;
  byte bVar2;
  int iVar3;
  void *pvVar4;
  int *piVar5;
  int iVar6;
  longlong lVar7;
  longlong lVar8;
  undefined1 auStack_78 [32];
  undefined8 local_58;
  undefined8 local_50;
  undefined8 local_48;
  ulonglong local_40;
  int local_38;
  short local_34;
  ulonglong local_30;
  
  local_30 = DAT_182615970 ^ (ulonglong)auStack_78;
  local_50 = *param_3;
  local_58 = 0;
  local_40 = (ulonglong)*(uint *)(param_3 + 1);
  local_48 = local_50;
  iVar3 = FUN_181392960(&local_58,8);
  piVar5 = &local_38;
  local_38 = 0;
  local_34 = 0;
  iVar6 = 6;
  do {
    uVar1 = FUN_181392960(&local_58,8);
    *(undefined1 *)piVar5 = uVar1;
    piVar5 = (int *)((longlong)piVar5 + 1);
    iVar6 = iVar6 + -1;
  } while (iVar6 != 0);
  if ((local_38 == s_vorbis_1821e47cc._0_4_) && (local_34 == s_vorbis_1821e47cc._4_2_)) {
    if (iVar3 == 1) {
      if (((*(int *)((longlong)param_3 + 0xc) != 0) && (param_1[2] == 0)) &&
         (piVar5 = *(int **)(param_1 + 8), piVar5 != (int *)0x0)) {
        iVar6 = FUN_181392960(&local_58,0x20);
        *param_1 = iVar6;
        if (iVar6 == 0) {
          iVar6 = FUN_181392960(&local_58,8);
          param_1[1] = iVar6;
          iVar6 = FUN_181392960(&local_58,0x20);
          param_1[2] = iVar6;
          iVar6 = FUN_181392960(&local_58,0x20);
          param_1[3] = iVar6;
          iVar6 = FUN_181392960(&local_58,0x20);
          param_1[4] = iVar6;
          iVar6 = FUN_181392960(&local_58,0x20);
          param_1[5] = iVar6;
          bVar2 = FUN_181392960(&local_58,4);
          *piVar5 = 1 << (bVar2 & 0x1f);
          bVar2 = FUN_181392960(&local_58,4);
          iVar6 = 1 << (bVar2 & 0x1f);
          piVar5[1] = iVar6;
          if ((((param_1[2] < 1) || (param_1[1] < 1)) ||
              ((*piVar5 < 0x40 || ((iVar6 < *piVar5 || (0x2000 < iVar6)))))) ||
             (iVar6 = FUN_181392960(&local_58,1), iVar6 != 1)) {
            FUN_181388250(param_1);
          }
        }
      }
    }
    else if (iVar3 == 3) {
      if (param_1[2] != 0) {
        iVar6 = FUN_181392960(&local_58,0x20);
        if ((-1 < iVar6) && (iVar6 <= (int)local_40 + -8)) {
          pvVar4 = calloc((longlong)(iVar6 + 1),1);
          param_2[3] = (longlong)pvVar4;
          FUN_181388aa0(&local_58,pvVar4,iVar6);
          iVar6 = FUN_181392960(&local_58,0x20);
          if (-1 < iVar6) {
            if (iVar6 <= ((int)local_40 -
                         ((int)(local_58._4_4_ + 7 + (local_58._4_4_ + 7 >> 0x1f & 7U)) >> 3)) -
                         (int)local_58 >> 2) {
              *(int *)(param_2 + 2) = iVar6;
              pvVar4 = calloc((longlong)(iVar6 + 1),8);
              *param_2 = (longlong)pvVar4;
              pvVar4 = calloc((longlong)((int)param_2[2] + 1),4);
              iVar6 = 0;
              param_2[1] = (longlong)pvVar4;
              if (0 < (int)param_2[2]) {
                lVar7 = 0;
                lVar8 = 0;
                do {
                  iVar3 = FUN_181392960(&local_58,0x20);
                  if (iVar3 < 0) goto LAB_181387a37;
                  if (((int)local_40 -
                      ((int)(local_58._4_4_ + 7 + (local_58._4_4_ + 7 >> 0x1f & 7U)) >> 3)) -
                      (int)local_58 < iVar3) goto LAB_181387a37;
                  *(int *)(lVar8 + param_2[1]) = iVar3;
                  pvVar4 = calloc((longlong)(iVar3 + 1),1);
                  *(void **)(lVar7 + *param_2) = pvVar4;
                  FUN_181388aa0(&local_58,*(undefined8 *)(lVar7 + *param_2),iVar3);
                  iVar6 = iVar6 + 1;
                  lVar8 = lVar8 + 4;
                  lVar7 = lVar7 + 8;
                } while (iVar6 < (int)param_2[2]);
              }
              iVar6 = FUN_181392960(&local_58,1);
              if (iVar6 == 1) {
              }
            }
          }
        }
LAB_181387a37:
        FUN_181388560(param_2);
      }
    }
    else if ((((iVar3 == 5) && (param_1[2] != 0)) && (param_2[3] != 0)) &&
            (*(longlong *)(param_1 + 8) != 0)) {
      FUN_181387c70(param_1,&local_58);
    }
  }
}



############ FUN_ 181388aa0 size=260 ############

void FUN_181388aa0(int *param_1,byte *param_2,int param_3)

{
  uint uVar1;
  int iVar2;
  byte *pbVar3;
  char cVar4;
  byte bVar5;
  int iVar6;
  
  while (param_3 != 0) {
    iVar2 = *param_1;
    param_3 = param_3 + -1;
    iVar6 = param_1[1];
    uVar1 = iVar6 + 8;
    if ((iVar2 + 4 < param_1[6]) || (bVar5 = 0xff, (int)(uVar1 + iVar2 * 8) <= param_1[6] * 8)) {
      pbVar3 = *(byte **)(param_1 + 4);
      bVar5 = *pbVar3 >> ((byte)iVar6 & 0x1f);
      if (8 < (int)uVar1) {
        cVar4 = -(byte)iVar6;
        bVar5 = bVar5 | pbVar3[1] << (cVar4 + 8U & 0x1f);
        if ((((0x10 < (int)uVar1) &&
             (bVar5 = bVar5 | pbVar3[2] << (cVar4 + 0x10U & 0x1f), 0x18 < (int)uVar1)) &&
            (bVar5 = bVar5 | pbVar3[3] << (cVar4 + 0x18U & 0x1f), 0x20 < (int)uVar1)) &&
           (iVar6 != 0)) {
          bVar5 = bVar5 | pbVar3[4] << (cVar4 + 0x20U & 0x1f);
        }
      }
    }
    param_1[1] = uVar1 & 7;
    iVar6 = (int)(uVar1 + ((int)uVar1 >> 0x1f & 7U)) >> 3;
    *(longlong *)(param_1 + 4) = *(longlong *)(param_1 + 4) + (longlong)iVar6;
    *param_1 = iVar6 + iVar2;
    *param_2 = bVar5;
    param_2 = param_2 + 1;
  }
  return;
}



############ FUN_ 1805200f0 size=486 ############

float * FUN_1805200f0(float *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  float *pfVar1;
  longlong *plVar2;
  undefined8 uVar3;
  float fVar4;
  float fVar5;
  undefined8 local_res8;
  undefined1 local_res10 [16];
  undefined1 local_50 [56];
  
  local_res8._0_4_ = (float)param_3;
  local_res8._4_4_ = (float)((ulonglong)param_3 >> 0x20);
  fVar5 = local_res8._4_4_;
  if (param_2[7] != 0) {
    pfVar1 = (float *)FUN_1812a04f0(param_2[7],local_50,param_3,param_4,0xfffffffffffffffe);
    fVar5 = (float)local_res8 * pfVar1[3];
    local_res8._0_4_ = local_res8._4_4_ * pfVar1[1] + (float)local_res8 * *pfVar1 + pfVar1[2];
    fVar5 = fVar5 + local_res8._4_4_ * pfVar1[4] + pfVar1[5];
  }
  if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
    local_res8._4_4_ = (float)((ulonglong)param_2[4] >> 0x20);
    local_res8._0_4_ = (float)local_res8 - (float)(int)param_2[4];
    fVar5 = fVar5 - (float)(int)local_res8._4_4_;
  }
  else {
    if ((*(byte *)(param_2 + 0x15) & 1) == 0) {
      if (param_2[3] == 0) goto LAB_1805202b0;
      plVar2 = (longlong *)FUN_18134c2e0();
    }
    else {
      plVar2 = (longlong *)FUN_1812d2bd0(param_2);
    }
    if (plVar2 != (longlong *)0x0) {
      if (DAT_182673700 == 0) {
        uVar3 = FUN_1811316e0(0x130);
        DAT_182673700 = FUN_18133c6c0(uVar3);
      }
      fVar4 = *(float *)(DAT_182673700 + 0xc0);
      local_res8 = CONCAT44(fVar5,(float)local_res8);
      if (fVar4 != DAT_1824c3ea4) {
        local_res8 = CONCAT44(fVar5 * fVar4,(float)local_res8 * fVar4);
      }
      pfVar1 = (float *)(**(code **)(*plVar2 + 0x58))(plVar2,local_res10,local_res8);
      local_res8._0_4_ = *pfVar1;
      fVar5 = pfVar1[1];
      fVar4 = (float)(**(code **)(*param_2 + 0x80))(param_2);
      if (fVar4 != DAT_1824c3ea4) {
        fVar5 = fVar5 / fVar4;
        local_res8._0_4_ = (float)local_res8 / fVar4;
      }
    }
  }
LAB_1805202b0:
  *param_1 = (float)local_res8;
  param_1[1] = fVar5;
  return param_1;
}



############ FUN_ 1805200a0 size=68 ############

undefined8 FUN_1805200a0(undefined8 param_1,longlong param_2,longlong param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  undefined1 local_res10 [24];
  
  if (*(longlong *)(param_3 + 0x18) != param_2) {
    puVar1 = (undefined8 *)FUN_1805200a0(local_res10);
    param_4 = *puVar1;
  }
  FUN_1805200f0(param_1,param_3,param_4);
  return param_1;
}



############ FUN_ 18133f200 size=233 ############

void FUN_18133f200(longlong *param_1,undefined4 param_2,longlong *param_3,undefined8 param_4)

{
  int *piVar1;
  int iVar2;
  byte bVar3;
  longlong *plVar4;
  longlong lVar5;
  byte bVar6;
  undefined8 *local_res8;
  
  plVar4 = DAT_182673708;
  do {
    if (plVar4 == param_1) {
      bVar6 = 1;
LAB_18133f246:
      bVar3 = *(byte *)((longlong)param_1 + 0xa9);
      if ((bVar3 >> 5 & 1) != bVar6) {
        *(byte *)((longlong)param_1 + 0xa9) = (bVar6 << 5 ^ bVar3) & 0x20 ^ bVar3;
        (**(code **)(*param_1 + 0x100))(param_1,param_2,param_3,param_4,0xfffffffffffffffe);
        if (*param_3 == 0) {
          lVar5 = 0;
        }
        else {
          lVar5 = *(longlong *)(*param_3 + 0x10);
        }
        if (lVar5 == 0) {
          return;
        }
      }
      if (param_1[3] != 0) {
        FUN_1804de690(&local_res8);
        FUN_18133f200(param_1[3],param_2,&local_res8);
        if (local_res8 != (undefined8 *)0x0) {
          LOCK();
          piVar1 = (int *)(local_res8 + 1);
          iVar2 = *piVar1;
          *piVar1 = *piVar1 + -1;
          UNLOCK();
          if (iVar2 == 1) {
            (**(code **)*local_res8)(local_res8,1);
          }
        }
      }
      return;
    }
    if (plVar4 == (longlong *)0x0) {
      bVar6 = 0;
      goto LAB_18133f246;
    }
    plVar4 = (longlong *)plVar4[3];
  } while( true );
}



############ FUN_ 18134b820 size=61 ############

void FUN_18134b820(void)

{
  undefined8 uVar1;
  
  if (DAT_182673700 == 0) {
    uVar1 = FUN_1811316e0(0x130);
    DAT_182673700 = FUN_18133c6c0(uVar1);
  }
  return;
}



############ FUN_ 18051eec0 size=351 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18051eec0(longlong param_1,longlong param_2)

{
  undefined1 *puVar1;
  ulonglong uVar2;
  longlong lVar3;
  undefined1 auStackX_20 [8];
  undefined1 auStack_1088 [32];
  ulonglong local_1068;
  undefined1 local_1060;
  undefined1 local_1058;
  ulonglong local_1050;
  undefined8 local_1048;
  undefined8 local_1040;
  undefined1 *local_1038;
  ulonglong local_1030;
  undefined1 local_1028 [4096];
  ulonglong local_28;
  undefined8 uStack_20;
  
  uStack_20 = 0x18051eece;
  local_1040 = 0xfffffffffffffffe;
  local_28 = DAT_182615970 ^ (ulonglong)auStack_1088;
  lVar3 = param_2 - param_1 >> 3;
  if (lVar3 < 0x21) {
    if (1 < lVar3) {
      FUN_180520650();
    }
  }
  else {
    uVar2 = lVar3 - (param_2 - param_1 >> 4);
    local_1050 = uVar2;
    local_1048 = 0x7fffffffffffffff;
    puVar1 = auStackX_20;
    if (0x7ffffffffffffffe < (longlong)uVar2) {
      puVar1 = &stack0x00000028;
    }
    if (0x200 < uVar2) {
      uVar2 = *(ulonglong *)(puVar1 + -0x1070);
      if (*(ulonglong *)(puVar1 + -0x1070) < 0x2000000000000000) {
        for (; 0 < (longlong)uVar2; uVar2 = (longlong)uVar2 / 2) {
          local_1038 = (undefined1 *)FUN_181131fe4(uVar2 * 8,&DAT_1826729e8);
          if (local_1038 != (undefined1 *)0x0) {
            if (0x200 < uVar2) goto LAB_18051efcd;
            goto LAB_18051efb6;
          }
        }
      }
      local_1038 = (undefined1 *)0x0;
LAB_18051efb6:
                    /* WARNING: Subroutine does not return */
      free(local_1038);
    }
    local_1038 = local_1028;
LAB_18051efcd:
    local_1060 = local_1058;
    local_1068 = uVar2;
    local_1030 = uVar2;
    FUN_1805208f0(param_1,param_2,lVar3);
    if (0x200 < local_1030) {
                    /* WARNING: Subroutine does not return */
      free(local_1038);
    }
  }
}



############ FUN_ 18133c890 size=1091 ############

void FUN_18133c890(longlong *param_1)

{
  double dVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  longlong lVar10;
  uint uVar11;
  longlong *plVar12;
  longlong lVar13;
  longlong *plVar14;
  double dVar15;
  undefined4 local_res8;
  undefined4 local_res10;
  undefined4 local_res18;
  undefined4 local_res20;
  longlong *local_b0;
  uint uStack_a8;
  uint uStack_a4;
  undefined4 local_a0;
  undefined4 uStack_9c;
  undefined4 uStack_98;
  undefined4 uStack_94;
  undefined4 local_90;
  undefined4 uStack_8c;
  undefined4 uStack_88;
  undefined4 uStack_84;
  longlong local_80;
  bool bStack_78;
  undefined7 uStack_77;
  longlong local_70;
  longlong lStack_68;
  longlong lStack_60;
  longlong lStack_58;
  longlong lStack_50;
  longlong *plVar9;
  
  dVar15 = DAT_1824c4520;
  if (*(int *)((longlong)param_1 + 0xc) == 1) {
    lVar10 = *param_1;
    dVar1 = *(double *)(lVar10 + 0x30);
    local_res10 = SUB84((double)*(int *)(lVar10 + 8) / dVar1 + DAT_1824c4520,0);
    local_res18 = SUB84((double)*(int *)(lVar10 + 0xc) / dVar1 + DAT_1824c4520,0);
    local_res20 = SUB84((double)*(int *)(lVar10 + 0x10) / dVar1 + DAT_1824c4520,0);
    *(ulonglong *)(lVar10 + 4) =
         CONCAT44(local_res10,SUB84((double)*(int *)(lVar10 + 4) / dVar1 + DAT_1824c4520,0));
    *(ulonglong *)(lVar10 + 0xc) = CONCAT44(local_res20,local_res18);
    local_res8 = SUB84((double)*(int *)(lVar10 + 0x14) / dVar1 + dVar15,0);
    local_res10 = SUB84((double)*(int *)(lVar10 + 0x18) / dVar1 + dVar15,0);
    local_res18 = SUB84((double)*(int *)(lVar10 + 0x1c) / dVar1 + dVar15,0);
    local_res20 = SUB84((double)*(int *)(lVar10 + 0x20) / dVar1 + dVar15,0);
    *(ulonglong *)(lVar10 + 0x14) = CONCAT44(local_res10,local_res8);
    *(ulonglong *)(lVar10 + 0x1c) = CONCAT44(local_res20,local_res18);
    return;
  }
  plVar14 = (longlong *)0x0;
  local_b0 = (longlong *)0x0;
  uStack_a8 = 0;
  uStack_a4 = 0;
  lVar10 = *param_1;
  lVar13 = (longlong)*(int *)((longlong)param_1 + 0xc) * 0x40 + lVar10;
  plVar9 = plVar14;
  plVar12 = plVar14;
  if (lVar10 != lVar13) {
    while( true ) {
      uVar8 = (uint)plVar9;
      local_70 = 0;
      lStack_68 = 0;
      lStack_60 = 0;
      lStack_58 = 0;
      lStack_50 = 0;
      bStack_78 = (int)*(undefined8 *)(lVar10 + 4) == 0 &&
                  (int)((ulonglong)*(undefined8 *)(lVar10 + 4) >> 0x20) == 0;
      iVar7 = uVar8 + 1;
      uVar11 = uStack_a8;
      local_80 = lVar10;
      if ((int)(uint)plVar12 < iVar7) {
        if (iVar7 < 0) {
          iVar7 = uVar8 + 2;
        }
        uVar11 = uVar8 + 9 + (iVar7 >> 1) & 0xfffffff8;
        if ((uint)plVar12 != uVar11) {
          if ((int)uVar11 < 1) {
                    /* WARNING: Subroutine does not return */
            free(local_b0);
          }
          if (local_b0 == (longlong *)0x0) {
            local_b0 = malloc((longlong)(int)uVar11 * 0x38);
            uVar8 = uStack_a4;
          }
          else {
            local_b0 = realloc(local_b0,(longlong)(int)uVar11 * 0x38);
            uVar8 = uStack_a4;
          }
        }
      }
      uStack_a8 = uVar11;
      uStack_a4 = uVar8 + 1;
      plVar9 = local_b0 + (longlong)(int)uVar8 * 7;
      *plVar9 = local_80;
      plVar9[1] = CONCAT71(uStack_77,bStack_78);
      plVar9[2] = local_70;
      plVar9[3] = lStack_68;
      plVar9[4] = lStack_60;
      plVar9[5] = lStack_58;
      plVar9[6] = lStack_50;
      lVar10 = lVar10 + 0x40;
      if (lVar10 == lVar13) break;
      plVar9 = (longlong *)(ulonglong)uStack_a4;
      plVar12 = (longlong *)(ulonglong)uStack_a8;
    }
  }
  plVar12 = local_b0 + (longlong)(int)uStack_a4 * 7;
  for (plVar9 = local_b0; plVar9 != plVar12; plVar9 = plVar9 + 7) {
    if ((char)plVar9[1] != '\0') goto LAB_18133cb5d;
  }
  iVar7 = 0x7fffffff;
  plVar9 = plVar14;
  for (plVar14 = local_b0; plVar14 != plVar12; plVar14 = plVar14 + 7) {
    dVar15 = _hypot((double)(int)*(undefined8 *)(*plVar14 + 4),
                    (double)(int)((ulonglong)*(undefined8 *)(*plVar14 + 4) >> 0x20));
    if ((int)dVar15 < iVar7) {
      plVar9 = plVar14;
      iVar7 = (int)dVar15;
    }
  }
  *(undefined1 *)(plVar9 + 1) = 1;
LAB_18133cb5d:
  FUN_18133cce0(plVar9,&local_b0);
  dVar15 = DAT_1824c4520;
  for (plVar9 = local_b0; plVar9 != local_b0 + (longlong)(int)uStack_a4 * 7; plVar9 = plVar9 + 7) {
    lVar10 = *plVar9;
    iVar7 = *(int *)(lVar10 + 8);
    iVar2 = *(int *)(lVar10 + 4);
    iVar3 = *(int *)(lVar10 + 0x20);
    iVar4 = *(int *)(lVar10 + 0x1c);
    iVar5 = *(int *)(lVar10 + 0x18);
    iVar6 = *(int *)(lVar10 + 0x14);
    dVar1 = *(double *)(lVar10 + 0x30);
    *(undefined8 *)(lVar10 + 0x24) = *(undefined8 *)(lVar10 + 4);
    local_res8 = SUB84((double)plVar9[3] + dVar15,0);
    local_a0 = local_res8;
    local_res10 = SUB84((double)plVar9[4] + dVar15,0);
    uStack_9c = local_res10;
    local_res18 = SUB84((double)plVar9[5] + dVar15,0);
    uStack_98 = local_res18;
    local_res20 = SUB84((double)plVar9[6] + dVar15,0);
    uStack_94 = local_res20;
    lVar10 = *plVar9;
    *(ulonglong *)(lVar10 + 4) = CONCAT44(local_res10,local_res8);
    *(ulonglong *)(lVar10 + 0xc) = CONCAT44(local_res20,local_res18);
    local_res8 = SUB84((double)plVar9[3] + ((double)iVar6 - (double)iVar2) / dVar1 + dVar15,0);
    local_res10 = SUB84(((double)iVar5 - (double)iVar7) / dVar1 + (double)plVar9[4] + dVar15,0);
    local_res18 = SUB84((double)iVar4 / dVar1 + dVar15,0);
    local_res20 = SUB84((double)iVar3 / dVar1 + dVar15,0);
    lVar10 = *plVar9;
    *(ulonglong *)(lVar10 + 0x14) = CONCAT44(local_res10,local_res8);
    *(ulonglong *)(lVar10 + 0x1c) = CONCAT44(local_res20,local_res18);
    local_90 = local_res8;
    uStack_8c = local_res10;
    uStack_88 = local_res18;
    uStack_84 = local_res20;
  }
  uStack_a4 = 0;
                    /* WARNING: Subroutine does not return */
  free(local_b0);
}



############ FUN_ 1812c6d70 size=357 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1812c6d70(int *param_1,HWND param_2)

{
  int iVar1;
  undefined8 uVar2;
  longlong lVar3;
  int *piVar4;
  char cVar5;
  char cVar6;
  undefined1 auStack_68 [32];
  int local_48;
  int iStack_44;
  int iStack_40;
  int iStack_3c;
  undefined1 local_38 [16];
  tagRECT local_28;
  ulonglong local_18;
  
  local_18 = DAT_182615970 ^ (ulonglong)auStack_68;
  GetWindowRect(param_2,&local_28);
  FUN_1812c75b0();
  if ((DAT_182678f08 == (code *)0x0) || (DAT_182678ec8 == (code *)0x0)) {
    cVar5 = FUN_1812c7510();
  }
  else {
    uVar2 = (*DAT_182678f08)(param_2);
    iVar1 = (*DAT_182678ec8)(uVar2);
    cVar5 = iVar1 == 2;
  }
  FUN_1812c75b0();
  if ((DAT_182678f18 == (code *)0x0) || (DAT_182678ec8 == (code *)0x0)) {
    cVar6 = FUN_1812c7510();
  }
  else {
    uVar2 = (*DAT_182678f18)();
    iVar1 = (*DAT_182678ec8)(uVar2);
    cVar6 = iVar1 == 2;
  }
  if (cVar5 != cVar6) {
    if (cVar5 == '\0') {
      iStack_40 = local_28.right - local_28.left;
      iStack_3c = local_28.bottom - local_28.top;
      local_48 = local_28.left;
      iStack_44 = local_28.top;
      lVar3 = FUN_18134b820();
      piVar4 = (int *)FUN_18133d580(*(undefined8 *)(lVar3 + 0x78),local_38,&local_48,0);
    }
    else {
      if (cVar6 != '\0') goto LAB_1812c6ec3;
      iStack_40 = local_28.right - local_28.left;
      iStack_3c = local_28.bottom - local_28.top;
      local_48 = local_28.left;
      iStack_44 = local_28.top;
      lVar3 = FUN_18134b820();
      piVar4 = (int *)FUN_18133d410(*(undefined8 *)(lVar3 + 0x78),local_38,&local_48,0);
    }
    local_28.left = *piVar4;
    local_28.top = piVar4[1];
    local_28.right = local_28.left + piVar4[2];
    local_28.bottom = piVar4[3] + local_28.top;
  }
LAB_1812c6ec3:
  *param_1 = local_28.left;
  param_1[1] = local_28.top;
  param_1[2] = local_28.right;
  param_1[3] = local_28.bottom;
}



############ FUN_ 18051d660 size=132 ############

void FUN_18051d660(undefined8 *param_1,int param_2)

{
  void *pvVar1;
  uint uVar2;
  
  if ((int)*(uint *)(param_1 + 1) < param_2) {
    uVar2 = param_2 + 8 + param_2 / 2 & 0xfffffff8;
    if (*(uint *)(param_1 + 1) != uVar2) {
      pvVar1 = (void *)*param_1;
      if ((int)uVar2 < 1) {
                    /* WARNING: Subroutine does not return */
        free(pvVar1);
      }
      if (pvVar1 == (void *)0x0) {
        pvVar1 = malloc((longlong)(int)uVar2 << 6);
        *param_1 = pvVar1;
        *(uint *)(param_1 + 1) = uVar2;
        return;
      }
      pvVar1 = realloc(pvVar1,(longlong)(int)uVar2 << 6);
      *param_1 = pvVar1;
      *(uint *)(param_1 + 1) = uVar2;
      return;
    }
    *(uint *)(param_1 + 1) = uVar2;
  }
  return;
}



############ FUN_ 1812c75b0 size=576 ############

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

void FUN_1812c75b0(void)

{
  HMODULE pHVar1;
  HMODULE pHVar2;
  INT_PTR IVar3;
  
  if (DAT_182678e94 != '\0') {
    return;
  }
  DAT_182678e94 = '\x01';
  pHVar1 = GetModuleHandleA("SHCore.dll");
  if (pHVar1 == (HMODULE)0x0) goto LAB_1812c77a7;
  DAT_182678f20 = GetProcAddress(pHVar1,"GetDpiForMonitor");
  pHVar2 = GetModuleHandleA("user32.dll");
  DAT_182678ea8 = GetProcAddress(pHVar2,"GetDpiForWindow");
  DAT_182678ed8 = GetProcAddress(pHVar1,"GetProcessDpiAwareness");
  pHVar2 = GetModuleHandleA("user32.dll");
  DAT_182678f08 = GetProcAddress(pHVar2,"GetWindowDpiAwarenessContext");
  pHVar2 = GetModuleHandleA("user32.dll");
  DAT_182678f18 = GetProcAddress(pHVar2,"GetThreadDpiAwarenessContext");
  pHVar2 = GetModuleHandleA("user32.dll");
  DAT_182678ec8 = GetProcAddress(pHVar2,"GetAwarenessFromDpiAwarenessContext");
  pHVar2 = GetModuleHandleA("user32.dll");
  DAT_182678ee8 = GetProcAddress(pHVar2,"SetThreadDpiAwarenessContext");
  DAT_182678ee0 = GetProcAddress(pHVar1,"SetProcessDpiAwareness");
  if (DAT_1826736d8 == 0) {
    return;
  }
  pHVar2 = GetModuleHandleA("user32.dll");
  _DAT_182678eb8 = GetProcAddress(pHVar2,"SetProcessDpiAwarenessContext");
  if ((_DAT_182678eb8 != (FARPROC)0x0) &&
     (IVar3 = (*_DAT_182678eb8)(0xfffffffffffffffc), -1 < (int)IVar3)) {
    return;
  }
  pHVar2 = GetModuleHandleA("user32.dll");
  DAT_182678eb0 = GetProcAddress(pHVar2,"EnableNonClientDpiScaling");
  if (DAT_182678ee0 == (FARPROC)0x0) {
LAB_1812c7776:
    DAT_182678ee0 = GetProcAddress(pHVar1,"SetProcessDpiAwareness");
    if (DAT_182678ee0 == (FARPROC)0x0) goto LAB_1812c77a7;
  }
  else {
    if ((DAT_182678eb0 != (FARPROC)0x0) && (IVar3 = (*DAT_182678ee0)(2), -1 < (int)IVar3)) {
      return;
    }
    if (DAT_182678ee0 == (FARPROC)0x0) goto LAB_1812c7776;
  }
  if ((DAT_182678f20 != (FARPROC)0x0) && (IVar3 = (*DAT_182678ee0)(1), -1 < (int)IVar3)) {
    return;
  }
LAB_1812c77a7:
  if (DAT_1826736d8 != 0) {
    pHVar1 = GetModuleHandleA("user32.dll");
    _DAT_182678ea0 = GetProcAddress(pHVar1,"SetProcessDPIAware");
    if (_DAT_182678ea0 != (FARPROC)0x0) {
                    /* WARNING: Could not recover jumptable at 0x0001812c77e3. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*_DAT_182678ea0)();
      return;
    }
  }
  return;
}



############ FUN_ 1812992b0 size=2495 ############

ulonglong FUN_1812992b0(float *param_1)

{
  float *pfVar1;
  longlong lVar2;
  float *pfVar3;
  float fVar4;
  void *pvVar5;
  ulonglong uVar6;
  float fVar7;
  float fVar8;
  float fVar9;
  float fVar10;
  float fVar11;
  float fVar12;
  float fVar13;
  float fVar14;
  float fVar15;
  float fVar16;
  float fVar17;
  float fVar18;
  float fVar19;
  float fVar20;
  float local_res8;
  float local_res10;
  
  fVar4 = DAT_1824c3d8c;
  fVar17 = 0.0;
  fVar18 = 0.0;
  *param_1 = param_1[2];
  local_res8 = 0.0;
  local_res10 = 0.0;
  param_1[1] = param_1[3];
  fVar9 = DAT_1824c460c;
  fVar15 = DAT_1824c4604;
  fVar8 = 0.0;
  fVar19 = 0.0;
  while( true ) {
    fVar7 = DAT_1824c4608;
    lVar2 = *(longlong *)(param_1 + 0x16);
    if (lVar2 == *(longlong *)(param_1 + 0x14)) {
      pfVar3 = *(float **)(param_1 + 0xe);
      uVar6 = **(ulonglong **)(param_1 + 6);
      if (pfVar3 == (float *)(uVar6 + (longlong)
                                      *(int *)((longlong)*(ulonglong **)(param_1 + 6) + 0xc) * 4)) {
        return uVar6 & 0xffffffffffffff00;
      }
      fVar10 = *pfVar3;
      *(float **)(param_1 + 0xe) = pfVar3 + 1;
      if (fVar10 != fVar9) {
        param_1[2] = pfVar3[1];
        *(float **)(param_1 + 0xe) = pfVar3 + 2;
        param_1[3] = pfVar3[2];
        pfVar1 = pfVar3 + 3;
        *(float **)(param_1 + 0xe) = pfVar1;
        if (fVar10 == fVar15) {
          fVar17 = *pfVar1;
          *(float **)(param_1 + 0xe) = pfVar3 + 4;
          fVar18 = pfVar3[4];
          *(float **)(param_1 + 0xe) = pfVar3 + 5;
          if (*(char *)(param_1 + 0x13) == '\0') {
            fVar9 = param_1[2];
            param_1[2] = param_1[9] * param_1[3] + fVar9 * param_1[8] + param_1[10];
            param_1[3] = fVar9 * param_1[0xb] + param_1[0xc] * param_1[3] + param_1[0xd];
            fVar9 = fVar17 * param_1[0xb];
            fVar17 = fVar17 * param_1[8] + fVar18 * param_1[9] + param_1[10];
            fVar18 = fVar18 * param_1[0xc] + fVar9 + param_1[0xd];
            fVar7 = DAT_1824c4608;
            fVar9 = DAT_1824c460c;
            fVar15 = DAT_1824c4604;
          }
        }
        else if (fVar10 == fVar7) {
          fVar17 = *pfVar1;
          *(float **)(param_1 + 0xe) = pfVar3 + 4;
          fVar18 = pfVar3[4];
          *(float **)(param_1 + 0xe) = pfVar3 + 5;
          fVar8 = pfVar3[5];
          *(float **)(param_1 + 0xe) = pfVar3 + 6;
          fVar19 = pfVar3[6];
          *(float **)(param_1 + 0xe) = pfVar3 + 7;
          local_res8 = fVar8;
          local_res10 = fVar19;
          if (*(char *)(param_1 + 0x13) == '\0') {
            fVar9 = param_1[2];
            param_1[2] = fVar9 * param_1[8] + param_1[3] * param_1[9] + param_1[10];
            param_1[3] = param_1[0xc] * param_1[3] + fVar9 * param_1[0xb] + param_1[0xd];
            fVar9 = fVar17 * param_1[0xb];
            fVar15 = fVar8 * param_1[0xb];
            fVar17 = param_1[8] * fVar17 + param_1[9] * fVar18 + param_1[10];
            fVar8 = param_1[8] * fVar8 + param_1[9] * fVar19 + param_1[10];
            fVar18 = fVar9 + param_1[0xc] * fVar18 + param_1[0xd];
            fVar19 = fVar15 + param_1[0xc] * fVar19 + param_1[0xd];
            fVar7 = DAT_1824c4608;
            fVar9 = DAT_1824c460c;
            fVar15 = DAT_1824c4604;
            local_res8 = fVar8;
            local_res10 = fVar19;
          }
        }
        else if (*(char *)(param_1 + 0x13) == '\0') {
          fVar9 = param_1[2];
          param_1[2] = param_1[9] * param_1[3] + fVar9 * param_1[8] + param_1[10];
          param_1[3] = fVar9 * param_1[0xb] + param_1[0xc] * param_1[3] + param_1[0xd];
          fVar7 = DAT_1824c4608;
          fVar9 = DAT_1824c460c;
          fVar15 = DAT_1824c4604;
        }
      }
    }
    else {
      *(float **)(param_1 + 0x16) = (float *)(lVar2 + -4);
      fVar10 = *(float *)(lVar2 + -4);
      if (fVar10 != fVar9) {
        *(float **)(param_1 + 0x16) = (float *)(lVar2 + -8);
        param_1[2] = *(float *)(lVar2 + -8);
        *(float **)(param_1 + 0x16) = (float *)(lVar2 + -0xc);
        param_1[3] = *(float *)(lVar2 + -0xc);
        if (fVar10 == fVar15) {
          *(float **)(param_1 + 0x16) = (float *)(lVar2 + -0x10);
          fVar17 = *(float *)(lVar2 + -0x10);
          *(float **)(param_1 + 0x16) = (float *)(lVar2 + -0x14);
          fVar18 = *(float *)(lVar2 + -0x14);
        }
        else if (fVar10 == fVar7) {
          *(float **)(param_1 + 0x16) = (float *)(lVar2 + -0x10);
          fVar17 = *(float *)(lVar2 + -0x10);
          *(float **)(param_1 + 0x16) = (float *)(lVar2 + -0x14);
          fVar18 = *(float *)(lVar2 + -0x14);
          *(float **)(param_1 + 0x16) = (float *)(lVar2 + -0x18);
          fVar8 = *(float *)(lVar2 + -0x18);
          *(float **)(param_1 + 0x16) = (float *)(lVar2 + -0x1c);
          fVar19 = *(float *)(lVar2 + -0x1c);
          local_res8 = fVar8;
          local_res10 = fVar19;
        }
      }
    }
    if (fVar10 == DAT_1824c45fc) break;
    if (fVar10 == fVar15) {
      lVar2 = *(longlong *)(param_1 + 0x18);
      uVar6 = *(longlong *)(param_1 + 0x16) - *(longlong *)(param_1 + 0x14) >> 2;
      if (lVar2 - 10U <= uVar6) {
        *(longlong *)(param_1 + 0x18) = lVar2 * 2;
        if (*(void **)(param_1 + 0x14) == (void *)0x0) {
          pvVar5 = malloc(lVar2 << 3);
        }
        else {
          pvVar5 = realloc(*(void **)(param_1 + 0x14),lVar2 << 3);
        }
        *(void **)(param_1 + 0x14) = pvVar5;
        *(void **)(param_1 + 0x16) = (void *)((longlong)pvVar5 + uVar6 * 4);
      }
      fVar9 = param_1[2];
      fVar15 = param_1[3];
      fVar14 = (fVar9 + fVar17) * fVar4;
      fVar12 = (fVar9 + *param_1) * fVar4;
      fVar16 = (fVar15 + fVar18) * fVar4;
      fVar13 = (fVar15 + param_1[1]) * fVar4;
      fVar10 = (fVar14 + fVar12) * fVar4;
      fVar11 = (fVar16 + fVar13) * fVar4;
      fVar7 = (fVar11 - fVar15) * (fVar11 - fVar15) + (fVar10 - fVar9) * (fVar10 - fVar9);
      fVar9 = param_1[0x10];
      fVar15 = param_1[0x10];
      **(float **)(param_1 + 0x16) = fVar18;
      if (fVar7 < fVar15 || fVar7 == fVar9) {
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar17;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35080;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar11;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar10;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35080;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        fVar9 = DAT_1824c460c;
        fVar15 = DAT_1824c4604;
      }
      else {
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar17;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar16;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar14;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35180;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar11;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar10;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar13;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar12;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35180;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        fVar9 = DAT_1824c460c;
        fVar15 = DAT_1824c4604;
      }
    }
    else if (fVar10 == fVar7) {
      lVar2 = *(longlong *)(param_1 + 0x18);
      uVar6 = *(longlong *)(param_1 + 0x16) - *(longlong *)(param_1 + 0x14) >> 2;
      if (lVar2 - 0x10U <= uVar6) {
        *(longlong *)(param_1 + 0x18) = lVar2 * 2;
        if (*(void **)(param_1 + 0x14) == (void *)0x0) {
          pvVar5 = malloc(lVar2 << 3);
        }
        else {
          pvVar5 = realloc(*(void **)(param_1 + 0x14),lVar2 << 3);
        }
        *(void **)(param_1 + 0x14) = pvVar5;
        *(void **)(param_1 + 0x16) = (void *)((longlong)pvVar5 + uVar6 * 4);
      }
      fVar9 = param_1[2];
      fVar15 = param_1[3];
      fVar16 = (fVar8 + fVar17) * fVar4;
      fVar8 = (fVar9 + fVar17) * fVar4;
      fVar7 = (fVar15 + fVar18) * fVar4;
      fVar13 = (fVar9 + *param_1) * fVar4;
      fVar14 = (fVar15 + param_1[1]) * fVar4;
      fVar20 = (fVar19 + fVar18) * fVar4;
      fVar10 = (fVar16 + fVar8) * fVar4;
      fVar11 = (fVar8 + fVar13) * fVar4;
      fVar12 = (fVar7 + fVar14) * fVar4;
      fVar7 = (fVar20 + fVar7) * fVar4;
      fVar8 = local_res8;
      fVar19 = local_res10;
      if ((param_1[0x10] <
           (fVar12 - fVar15) * (fVar12 - fVar15) + (fVar11 - fVar9) * (fVar11 - fVar9)) ||
         (param_1[0x10] <
          (fVar7 - fVar18) * (fVar7 - fVar18) + (fVar10 - fVar17) * (fVar10 - fVar17))) {
        **(float **)(param_1 + 0x16) = local_res10;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = local_res8;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar20;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar16;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar7;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar10;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35200;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = (fVar7 + fVar12) * fVar4;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = (fVar10 + fVar11) * fVar4;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar12;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar11;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar14;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar13;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35200;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        fVar9 = DAT_1824c460c;
        fVar15 = DAT_1824c4604;
      }
      else {
        **(float **)(param_1 + 0x16) = local_res10;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = local_res8;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35080;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar7;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar10;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35080;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar12;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(float **)(param_1 + 0x16) = fVar11;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        **(undefined4 **)(param_1 + 0x16) = 0x47c35080;
        *(longlong *)(param_1 + 0x16) = *(longlong *)(param_1 + 0x16) + 4;
        fVar9 = DAT_1824c460c;
        fVar15 = DAT_1824c4604;
      }
    }
    else if (fVar10 == fVar9) {
      if ((param_1[2] != param_1[0x11]) || (param_1[3] != param_1[0x12])) {
        *param_1 = param_1[2];
        param_1[1] = param_1[3];
        param_1[2] = param_1[0x11];
        uVar6 = (ulonglong)(uint)param_1[0x12];
        param_1[3] = param_1[0x12];
        *(undefined1 *)(param_1 + 4) = 1;
LAB_181299b85:
        return CONCAT71((int7)(uVar6 >> 8),1);
      }
    }
    else {
      *param_1 = param_1[2];
      param_1[0x11] = param_1[2];
      param_1[1] = param_1[3];
      param_1[0x12] = param_1[3];
      param_1[5] = -NAN;
      fVar9 = DAT_1824c460c;
    }
  }
  param_1[5] = (float)((int)param_1[5] + 1);
  if ((((*(longlong *)(param_1 + 0x16) == *(longlong *)(param_1 + 0x14)) &&
       (*(float **)(param_1 + 0xe) !=
        (float *)(**(longlong **)(param_1 + 6) +
                 (longlong)*(int *)((longlong)*(longlong **)(param_1 + 6) + 0xc) * 4))) &&
      (**(float **)(param_1 + 0xe) == fVar9)) &&
     ((param_1[2] == param_1[0x11] && (param_1[3] == param_1[0x12])))) {
    uVar6 = 0;
    *(undefined1 *)(param_1 + 4) = 1;
  }
  else {
    uVar6 = 0;
    *(undefined1 *)(param_1 + 4) = 0;
  }
  goto LAB_181299b85;
}



############ FUN_ 1812a0b10 size=91 ############

ulonglong FUN_1812a0b10(float *param_1)

{
  ulonglong in_RAX;
  
  if ((((param_1[1] == 0.0) && (param_1[2] == 0.0)) && (param_1[3] == 0.0)) &&
     (((param_1[5] == 0.0 && (*param_1 == DAT_1824c3ea4)) && (param_1[4] == DAT_1824c3ea4)))) {
    return 1;
  }
  return in_RAX & 0xffffffffffffff00;
}



############ FUN_ 1804af890 size=115 ############

void FUN_1804af890(undefined8 *param_1,int param_2)

{
  void *pvVar1;
  
  if (*(int *)(param_1 + 1) == param_2) {
    *(int *)(param_1 + 1) = param_2;
    return;
  }
  pvVar1 = (void *)*param_1;
  if (0 < param_2) {
    if (pvVar1 == (void *)0x0) {
      pvVar1 = malloc((longlong)param_2 * 0x30);
      *param_1 = pvVar1;
      *(int *)(param_1 + 1) = param_2;
      return;
    }
    pvVar1 = realloc(pvVar1,(longlong)param_2 * 0x30);
    *param_1 = pvVar1;
    *(int *)(param_1 + 1) = param_2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar1);
}



############ FUN_ 181297d70 size=1276 ############

void FUN_181297d70(longlong *param_1,longlong *param_2,char param_3,undefined4 param_4,
                  undefined4 param_5,undefined4 param_6,undefined4 param_7)

{
  float fVar1;
  float fVar2;
  undefined4 *puVar3;
  longlong lVar4;
  int iVar5;
  int iVar6;
  longlong lVar7;
  longlong lVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  
  lVar8 = *param_2;
  uVar11 = *(undefined4 *)(lVar8 + 0x10);
  uVar12 = *(undefined4 *)(lVar8 + 0x14);
  uVar10 = *(undefined4 *)(lVar8 + 0x18);
  uVar9 = *(undefined4 *)(lVar8 + 0x1c);
  if (param_3 == '\0') {
    FUN_18129deb0(param_1,*(undefined4 *)(lVar8 + 0x28),*(undefined4 *)(lVar8 + 0x2c));
    FUN_181298750(param_1,param_7,*(undefined4 *)(lVar8 + 0x28),*(undefined4 *)(lVar8 + 0x2c),uVar11
                  ,uVar12,param_4);
  }
  else {
    FUN_18129deb0(param_1,uVar11,uVar12);
  }
  iVar6 = 1;
  if (1 < *(int *)((longlong)param_2 + 0xc)) {
    lVar8 = 0x30;
    do {
      lVar7 = *param_2;
      FUN_1812989f0(param_1,param_6,param_5,param_4,uVar11,uVar12,uVar10,uVar9,
                    *(undefined4 *)(lVar8 + 0x10 + lVar7),*(undefined4 *)(lVar8 + 0x14 + lVar7),
                    *(undefined4 *)(lVar8 + 0x18 + lVar7),*(undefined4 *)(lVar8 + 0x1c + lVar7),
                    *(undefined4 *)(lVar8 + lVar7),*(undefined4 *)(lVar8 + 4 + lVar7));
      uVar11 = *(undefined4 *)(lVar8 + 0x10 + lVar7);
      iVar6 = iVar6 + 1;
      uVar12 = *(undefined4 *)(lVar8 + 0x14 + lVar7);
      uVar10 = *(undefined4 *)(lVar8 + 0x18 + lVar7);
      uVar9 = *(undefined4 *)(lVar8 + 0x1c + lVar7);
      lVar8 = lVar8 + 0x30;
    } while (iVar6 < *(int *)((longlong)param_2 + 0xc));
  }
  puVar3 = (undefined4 *)*param_2;
  iVar6 = *(int *)((longlong)param_2 + 0xc) + -1;
  if (param_3 == '\0') {
    FUN_18129ddd0(param_1,uVar10,uVar9);
    FUN_181298750(param_1,param_7,uVar10,uVar9,puVar3[(longlong)iVar6 * 0xc + 8],
                  puVar3[(longlong)iVar6 * 0xc + 9],param_4);
    goto LAB_18129808c;
  }
  FUN_1812989f0(param_1,param_6,param_5,param_4,uVar11,uVar12,uVar10,uVar9,puVar3[4],puVar3[5],
                puVar3[6],puVar3[7],*puVar3,puVar3[1]);
  iVar5 = *(int *)((longlong)param_1 + 0xc);
  if ((iVar5 != 0) &&
     ((iVar5 < 1 || (*(float *)(*param_1 + (longlong)(iVar5 + -1) * 4) != DAT_1824c460c)))) {
    if ((int)param_1[1] < iVar5 + 1) {
      FUN_1804af790(param_1,iVar5 + 9 + (iVar5 + 1) / 2 & 0xfffffff8);
    }
    iVar5 = *(int *)((longlong)param_1 + 0xc);
    *(int *)((longlong)param_1 + 0xc) = iVar5 + 1;
    *(undefined4 *)(*param_1 + (longlong)iVar5 * 4) = 0x47c35280;
  }
  fVar1 = (float)puVar3[(longlong)iVar6 * 0xc + 9];
  fVar2 = (float)puVar3[(longlong)iVar6 * 0xc + 8];
  if (*(int *)((longlong)param_1 + 0xc) == 0) {
    *(float *)((longlong)param_1 + 0x14) = fVar2;
    *(float *)(param_1 + 2) = fVar2;
    *(float *)(param_1 + 3) = fVar1;
LAB_181298036:
    *(float *)((longlong)param_1 + 0x1c) = fVar1;
  }
  else {
    if (*(float *)(param_1 + 2) <= fVar2) {
      if (*(float *)((longlong)param_1 + 0x14) <= fVar2 &&
          fVar2 != *(float *)((longlong)param_1 + 0x14)) {
        *(float *)((longlong)param_1 + 0x14) = fVar2;
      }
    }
    else {
      *(float *)(param_1 + 2) = fVar2;
    }
    if (fVar1 < *(float *)(param_1 + 3)) {
      *(float *)(param_1 + 3) = fVar1;
      FUN_1804b02a0(param_1,&DAT_1821df344);
      goto LAB_18129808c;
    }
    if (*(float *)((longlong)param_1 + 0x1c) <= fVar1 &&
        fVar1 != *(float *)((longlong)param_1 + 0x1c)) goto LAB_181298036;
  }
  FUN_1804b02a0(param_1,&DAT_1821df344);
LAB_18129808c:
  uVar11 = puVar3[(longlong)iVar6 * 0xc + 8];
  iVar5 = *(int *)((longlong)param_2 + 0xc) + -2;
  uVar12 = puVar3[(longlong)iVar6 * 0xc + 9];
  uVar10 = puVar3[(longlong)iVar6 * 0xc + 10];
  uVar9 = puVar3[(longlong)iVar6 * 0xc + 0xb];
  lVar8 = (longlong)iVar5;
  if (-1 < iVar5) {
    lVar7 = lVar8 * 0x30;
    do {
      lVar4 = *param_2;
      FUN_1812989f0(param_1,param_6,param_5,param_4,uVar11,uVar12,uVar10,uVar9,
                    *(undefined4 *)(lVar4 + 0x20 + lVar7),*(undefined4 *)(lVar4 + 0x24 + lVar7),
                    *(undefined4 *)(lVar4 + 0x28 + lVar7),*(undefined4 *)(lVar4 + 0x2c + lVar7),
                    *(undefined4 *)(lVar4 + 8 + lVar7),*(undefined4 *)(lVar4 + 0xc + lVar7));
      lVar8 = lVar8 + -1;
      uVar11 = *(undefined4 *)(lVar4 + 0x20 + lVar7);
      uVar12 = *(undefined4 *)(lVar4 + 0x24 + lVar7);
      uVar10 = *(undefined4 *)(lVar4 + 0x28 + lVar7);
      uVar9 = *(undefined4 *)(lVar4 + 0x2c + lVar7);
      lVar7 = lVar7 + -0x30;
    } while (-1 < lVar8);
  }
  if (param_3 == '\0') {
    FUN_18129ddd0(param_1,uVar10);
  }
  else {
    FUN_1812989f0(param_1,param_6,param_5,param_4,uVar11,uVar12,uVar10,uVar9,
                  puVar3[(longlong)iVar6 * 0xc + 8],puVar3[(longlong)iVar6 * 0xc + 9],
                  puVar3[(longlong)iVar6 * 0xc + 10],puVar3[(longlong)iVar6 * 0xc + 0xb],
                  puVar3[(longlong)iVar6 * 0xc + 2],puVar3[(longlong)iVar6 * 0xc + 3]);
  }
  iVar6 = *(int *)((longlong)param_1 + 0xc);
  if ((iVar6 != 0) &&
     ((iVar6 < 1 || (*(float *)(*param_1 + (longlong)(iVar6 + -1) * 4) != DAT_1824c460c)))) {
    if ((int)param_1[1] < iVar6 + 1) {
      FUN_1804af790(param_1,iVar6 + 9 + (iVar6 + 1) / 2 & 0xfffffff8);
    }
    iVar6 = *(int *)((longlong)param_1 + 0xc);
    *(int *)((longlong)param_1 + 0xc) = iVar6 + 1;
    *(undefined4 *)(*param_1 + (longlong)iVar6 * 4) = 0x47c35280;
  }
  return;
}



############ FUN_ 18051f810 size=352 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18051f810(undefined8 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                  undefined4 param_5,undefined8 param_6,undefined4 param_7,undefined4 param_8,
                  undefined4 param_9)

{
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  *(undefined4 *)(param_1 + 4) = 0;
  *(undefined4 *)param_1 = param_2;
  *(undefined4 *)((longlong)param_1 + 4) = param_3;
  *(undefined4 *)(param_1 + 1) = param_4;
  *(undefined4 *)((longlong)param_1 + 0xc) = param_5;
  *(undefined4 *)(param_1 + 2) = 0xffffffff;
  *(undefined4 *)((longlong)param_1 + 0x14) = param_7;
  *(undefined4 *)(param_1 + 3) = param_8;
  *(undefined4 *)((longlong)param_1 + 0x1c) = param_9;
  *(undefined4 *)(param_1 + 4) = 0xffffffff;
}



############ FUN_ 1812f4280 size=2576 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1812f4280(longlong param_1)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined3 uVar5;
  undefined4 *puVar6;
  longlong lVar7;
  undefined1 auStack_448 [32];
  undefined4 local_428;
  uint local_424 [3];
  uint local_418 [248];
  ulonglong local_38;
  
  local_38 = DAT_182615970 ^ (ulonglong)auStack_448;
  local_418[7] = *(undefined4 *)(param_1 + 0x158);
  local_418[1] = *(uint *)(param_1 + 0x14c);
  lVar7 = 0;
  local_418[5] = *(undefined4 *)(param_1 + 0x160);
  local_418[3] = *(undefined4 *)(param_1 + 0x164);
  local_418[0x17] = *(undefined4 *)(param_1 + 0x154);
  local_418[0x1d] = *(undefined4 *)(param_1 + 0x15c);
  local_428._0_3_ = (undefined3)local_418[7];
  local_428 = CONCAT13(0x7f,(undefined3)local_428);
  local_418[0xd] = local_428;
  local_428._0_3_ = (undefined3)local_418[0x1d];
  uVar5 = (undefined3)local_428;
  local_428 = CONCAT13(0x66,(undefined3)local_428);
  local_418[0x13] = local_428;
  local_418[0x39] = *(undefined4 *)(param_1 + 0x150);
  local_418[0x3b] = *(undefined4 *)(param_1 + 0x168);
  local_418[0] = 0x1000100;
  local_418[2] = 0x1000101;
  local_418[4] = 0x1000103;
  local_418[6] = 0x1000102;
  local_418[8] = 0x1006501;
  local_418[10] = 0x1006502;
  local_418[0xc] = 0x1006503;
  local_418[0xe] = 0x1000200;
  local_418[0x10] = 0x1000201;
  local_418[0x12] = 0x1000202;
  local_418[0x14] = 0x1000203;
  local_418[0x16] = 0x1000205;
  local_418[0x18] = 0x1000206;
  local_418[0x1a] = 0x1000207;
  local_418[0x1b] = 0;
  local_418[0x1c] = 0x1000204;
  local_418[0x1e] = 0x1000280;
  local_418[0x1f] = 0;
  local_418[0x20] = 0x1000281;
  local_418[0x22] = 0x1000282;
  local_418[0x23] = 0;
  local_418[0x24] = 0x1000284;
  local_418[0x26] = 0x1000300;
  local_418[0x27] = 0;
  local_418[0x28] = 0x1000400;
  local_418[0x2a] = 0x1000401;
  local_418[0x2b] = 0;
  local_418[0x2c] = 0x1000501;
  local_418[0x2d] = 0;
  local_418[0x2e] = 0x1000500;
  local_418[0x2f] = 0;
  local_418[0x30] = 0x1000502;
  local_418[0x32] = 0x1000503;
  local_418[0x33] = 0;
  local_418[0x34] = 0x1000504;
  local_418[0x35] = 0;
  local_418[0x36] = 0x1000505;
  local_418[0x37] = 0;
  local_418[0x38] = 0x1000700;
  local_418[0x3a] = 0x1000600;
  local_418[0x3c] = 0x1000601;
  local_418[0x3e] = 0x1000800;
  local_418[0x40] = 0x1000900;
  local_418[0x42] = 0x1000d00;
  local_418[0x44] = 0x1000c00;
  local_418[0x46] = 0x1000a00;
  local_418[0x48] = 0x1000b00;
  local_418[0x4a] = 0x1000e00;
  local_428 = local_418[1] & 0xffffff;
  local_418[0x6f] = local_428;
  local_428 = CONCAT13(0x66,uVar5);
  local_418[0x71] = local_428;
  local_418[0x75] = *(undefined4 *)(param_1 + 0x148);
  local_428._0_3_ = (undefined3)local_418[0x17];
  local_428 = CONCAT13(0x7f,(undefined3)local_428);
  local_418[0x8d] = local_428;
  local_428._0_3_ = (undefined3)local_418[1];
  local_428 = CONCAT13(0x66,(undefined3)local_428);
  local_418[0x4c] = 0x1000f00;
  local_418[0x4e] = 0x1008300;
  local_418[0x50] = 0x1008301;
  local_418[0x52] = 0x100e401;
  local_418[0x54] = 0x100e402;
  local_418[0x56] = 0x100e403;
  local_418[0x58] = 0x100e801;
  local_418[0x5a] = 0x100e803;
  local_418[0x5c] = 0x1002800;
  local_418[0x5e] = 0x1002810;
  local_418[0x60] = 0x1002820;
  local_418[0x62] = 0x1001200;
  local_418[100] = 0x1001300;
  local_418[0x66] = 0x1001310;
  local_418[0x68] = 0x1001311;
  local_418[0x6a] = 0x1001312;
  local_418[0x6c] = 0x1001400;
  local_418[0x6e] = 0x1001500;
  local_418[0x70] = 0x1001600;
  local_418[0x72] = 0x1001700;
  local_418[0x74] = 0x1005700;
  local_418[0x76] = 0x1005701;
  local_418[0x78] = 0x1001800;
  local_418[0x7a] = 0x1001810;
  local_418[0x7c] = 0x1001820;
  local_418[0x7e] = 0x1001900;
  local_418[0x80] = 0x1001a00;
  local_418[0x82] = 0x1001b00;
  local_418[0x84] = 0x1001c00;
  local_418[0x86] = 0x1001c10;
  local_418[0x87] = 0;
  local_418[0x88] = 0x1005800;
  local_418[0x89] = 0;
  local_418[0x8a] = 0x1005801;
  local_418[0x8c] = 0x1005812;
  local_418[0x8e] = 0x1005814;
  local_418[0x90] = 0x1003200;
  local_418[0x91] = local_428;
  local_418[0x92] = 0x1003210;
  local_418[0x94] = 0x1003220;
  local_428 = local_418[1];
  local_418[9] = local_418[7];
  local_418[0xb] = local_418[7];
  local_418[0xf] = local_418[1];
  local_418[0x11] = local_418[7];
  local_418[0x15] = local_418[5];
  local_418[0x19] = local_418[0x17];
  local_418[0x21] = local_418[7];
  local_418[0x25] = local_418[7];
  local_418[0x29] = local_418[0x1d];
  local_418[0x31] = local_418[0x17];
  local_418[0x3d] = local_418[0x3b];
  local_418[0x3f] = local_418[5];
  local_418[0x41] = local_418[3];
  local_418[0x43] = local_418[0x17];
  local_418[0x45] = local_418[0x17];
  local_418[0x47] = local_418[7];
  local_418[0x49] = local_418[1];
  local_418[0x4b] = local_418[7];
  local_418[0x4d] = local_418[0x17];
  local_418[0x4f] = local_418[1];
  local_418[0x51] = local_418[7];
  local_418[0x53] = local_418[1];
  local_418[0x55] = local_418[7];
  local_418[0x57] = local_418[0x17];
  local_418[0x59] = local_418[1];
  local_418[0x5b] = local_418[0x17];
  local_418[0x5d] = local_418[1];
  local_418[0x5f] = local_418[0x17];
  local_418[0x61] = local_418[7];
  local_418[99] = local_418[1];
  local_418[0x65] = local_418[0x1d];
  local_418[0x67] = local_418[3];
  local_418[0x69] = local_418[3];
  local_418[0x6b] = local_418[1];
  local_418[0x6d] = local_418[7];
  local_418[0x73] = local_418[0x17];
  local_418[0x77] = local_418[7];
  local_418[0x79] = local_418[1];
  local_418[0x7b] = local_418[7];
  local_418[0x7d] = local_418[0x17];
  local_418[0x7f] = local_418[1];
  local_418[0x81] = local_418[3];
  local_418[0x83] = local_418[3];
  local_418[0x85] = local_418[5];
  local_418[0x8b] = local_418[0x17];
  local_418[0x8f] = local_418[0x17];
  local_418[0x93] = local_418[0x17];
  puVar6 = (undefined4 *)FUN_1812a24b0(&local_428,local_424,DAT_1824c3d18);
  local_418[0x96] = 0x1003230;
  local_418[0x95] = *puVar6;
  local_428 = *(undefined4 *)(param_1 + 0x14c);
  puVar6 = (undefined4 *)FUN_1812a24b0(&local_428,local_424,DAT_1824c3d8c);
  uVar1 = *(undefined4 *)(param_1 + 0x158);
  uVar2 = *(undefined4 *)(param_1 + 0x154);
  uVar3 = *(undefined4 *)(param_1 + 0x160);
  local_418[0x97] = *puVar6;
  uVar4 = *(undefined4 *)(param_1 + 0x164);
  local_418[0x98] = 0x1003240;
  local_418[0x9a] = 0x1003250;
  local_418[0x9c] = 0x1004010;
  local_418[0x9e] = 0x1004013;
  local_418[0xa0] = 0x1004011;
  local_418[0xa1] = 0;
  local_418[0xa2] = 0x1004012;
  local_418[0xa4] = 0x1001f00;
  local_428 = uVar1;
  local_418[0x99] = uVar1;
  local_418[0x9b] = uVar2;
  local_418[0x9d] = uVar1;
  local_418[0x9f] = uVar3;
  local_418[0xa3] = uVar4;
  puVar6 = (undefined4 *)FUN_1812a2a20(&local_428,local_424,DAT_18262b5b0,DAT_1824c3d74);
  local_418[0xb1] = *(undefined4 *)(param_1 + 0x168);
  local_418[0xa6] = 0x1005400;
  local_418[0xa7] = uVar2;
  local_418[0xab] = *(uint *)(param_1 + 0x14c);
  local_418[0xa5] = *puVar6;
  local_418[0xb5] = *(uint *)(param_1 + 0x15c);
  local_418[0xa8] = 0x1005410;
  local_418[0xa9] = uVar1;
  local_418[0xaa] = 0x1000af0;
  local_418[0xac] = 0x1000af1;
  local_418[0xad] = uVar2;
  local_418[0xae] = 0x1000540;
  local_418[0xaf] = uVar4;
  local_418[0xb0] = 0x1000541;
  local_418[0xb2] = 0x1000542;
  local_418[0xb3] = uVar3;
  local_418[0xb4] = 0x1000440;
  local_418[0xb6] = 0x1000441;
  local_418[0xb7] = uVar2;
  local_418[0xb8] = 0x1005000;
  local_418[0xb9] = 0xffffffff;
  local_418[0xba] = 0x1005001;
  local_418[0xbb] = 0xff000000;
  local_418[0xbc] = 0x1005002;
  local_418[0xbd] = 0x66000000;
  local_418[0xbe] = 0x1005003;
  local_418[0xbf] = 0x80ffff00;
  local_418[0xc0] = 0x1005004;
  local_418[0xc1] = 0xffb6b600;
  local_418[0xc2] = 0x1005005;
  local_418[0xc3] = 0xff000000;
  local_418[0xc4] = 0x1005006;
  local_418[0xc5] = 0xffd3d3d3;
  local_418[0xc6] = 0x1005007;
  local_418[199] = 0xff000000;
  local_418[0xdd] = *(undefined4 *)(param_1 + 0x150);
  local_418[0xcb] = local_418[0xab];
  local_418[0xd5] = local_418[0xab];
  local_418[0xd9] = local_418[0xab];
  local_418[0xe1] = local_418[0xab];
  local_428._0_3_ = (undefined3)local_418[0xb5];
  local_428 = CONCAT13(0x66,(undefined3)local_428);
  local_418[0xcd] = local_428;
  local_428._0_3_ = (undefined3)uVar4;
  local_428 = CONCAT13(0x7f,(undefined3)local_428);
  local_418[0xd1] = local_428;
  local_418[200] = 0x1005008;
  local_418[0xc9] = 0x4c000000;
  local_418[0xca] = 0x1004500;
  local_418[0xcc] = 0x1004502;
  local_418[0xce] = 0x1004503;
  local_418[0xcf] = uVar1;
  local_418[0xd0] = 0x1004504;
  local_418[0xd2] = 0x1004505;
  local_418[0xd3] = local_418[0xb5];
  local_418[0xd4] = 0x1007000;
  local_418[0xd6] = 0x1007001;
  local_418[0xd7] = uVar1;
  local_418[0xd8] = 0x100ad00;
  local_418[0xda] = 0x100ad01;
  local_418[0xdb] = uVar1;
  local_418[0xdc] = 0x1004100;
  local_418[0xde] = 0x1000850;
  local_418[0xdf] = uVar1;
  local_418[0xe0] = 0x100f001;
  local_418[0xe2] = 0x100f002;
  local_418[0xe3] = uVar1;
  local_418[0xe4] = 0x100f003;
  local_418[0xe6] = 0x100f004;
  local_418[0xe7] = local_418[0xb5];
  local_418[0xe8] = 0x100f005;
  local_428._3_1_ = (undefined1)(local_418[0xab] >> 0x18);
  local_418[0xe5] =
       CONCAT13(local_428._3_1_,
                CONCAT12((char)(int)((float)(local_418[0xab] >> 0x10 & 0xff) * DAT_1824c3e08),
                         CONCAT11((char)(int)((float)(local_418[0xab] >> 8 & 0xff) * DAT_1824c3e08),
                                  (char)(int)((float)(local_418[0xab] & 0xff) * DAT_1824c3e08))));
  local_428._1_1_ = (byte)(local_418[0xb5] >> 8);
  local_428._2_1_ = (byte)(local_418[0xb5] >> 0x10);
  local_428._3_1_ = (undefined1)(local_418[0xb5] >> 0x18);
  local_418[0xe9] =
       CONCAT13(local_428._3_1_,
                CONCAT12((char)(int)((float)local_428._2_1_ * DAT_1824c3e08),
                         CONCAT11((char)(int)((float)local_428._1_1_ * DAT_1824c3e08),
                                  (char)(int)((float)(local_418[0xb5] & 0xff) * DAT_1824c3e08))));
  local_418[0xea] = 0x100f006;
  local_418[0xec] = 0x1000640;
  local_418[0xed] = local_418[0xdd];
  local_418[0xee] = 0x1000641;
  local_418[0xef] = local_418[0xb1];
  local_418[0xf0] = 0x1000642;
  local_418[0xf1] = local_418[0xb1];
  local_418[0xf2] = 0x1000643;
  local_418[0xf3] = local_418[0xdd];
  local_418[0xf4] = 0x1000644;
  local_418[0xf5] = local_418[0xb1];
  local_418[0xeb] =
       CONCAT13(local_428._3_1_,
                CONCAT12((char)(int)(DAT_1824c4548 -
                                    (float)(int)(0xff - (uint)local_428._2_1_) * DAT_1824c3e08),
                         CONCAT11((char)(int)(DAT_1824c4548 -
                                             (float)(int)(0xff - (uint)local_428._1_1_) *
                                             DAT_1824c3e08),
                                  (char)(int)(DAT_1824c4548 -
                                             (float)(int)(0xff - (local_418[0xb5] & 0xff)) *
                                             DAT_1824c3e08))));
  local_428 = local_418[0xb5];
  do {
    local_424[0] = local_418[lVar7 + 1];
    FUN_181315c30(param_1,local_418[lVar7],local_424[0]);
    lVar7 = lVar7 + 2;
  } while (lVar7 < 0xf6);
}



############ FUN_ 181300930 size=773 ############

undefined8 * FUN_181300930(undefined8 *param_1)

{
  undefined4 *puVar1;
  undefined4 local_res8;
  undefined4 local_res10 [2];
  
  FUN_181315290();
  local_res8 = 0x301111ee;
  *param_1 = juce::LookAndFeel_V3::vftable;
  param_1[1] = juce::LookAndFeel_V3::vftable;
  param_1[2] = juce::LookAndFeel_V3::vftable;
  param_1[3] = juce::LookAndFeel_V3::vftable;
  param_1[4] = juce::LookAndFeel_V3::vftable;
  param_1[5] = juce::LookAndFeel_V3::vftable;
  param_1[6] = juce::LookAndFeel_V3::vftable;
  param_1[7] = juce::LookAndFeel_V3::vftable;
  param_1[8] = juce::LookAndFeel_V3::vftable;
  param_1[9] = juce::LookAndFeel_V3::vftable;
  param_1[10] = juce::LookAndFeel_V3::vftable;
  param_1[0xb] = juce::LookAndFeel_V3::vftable;
  param_1[0xc] = juce::LookAndFeel_V3::vftable;
  param_1[0xd] = juce::LookAndFeel_V3::vftable;
  param_1[0xe] = juce::LookAndFeel_V3::vftable;
  param_1[0xf] = juce::LookAndFeel_V3::vftable;
  param_1[0x10] = juce::LookAndFeel_V3::vftable;
  param_1[0x11] = juce::LookAndFeel_V3::vftable;
  param_1[0x12] = juce::LookAndFeel_V3::vftable;
  param_1[0x13] = juce::LookAndFeel_V3::vftable;
  param_1[0x14] = juce::LookAndFeel_V3::vftable;
  param_1[0x15] = juce::LookAndFeel_V3::vftable;
  param_1[0x16] = juce::LookAndFeel_V3::vftable;
  param_1[0x17] = juce::LookAndFeel_V3::vftable;
  param_1[0x18] = juce::LookAndFeel_V3::vftable;
  param_1[0x19] = juce::LookAndFeel_V3::vftable;
  param_1[0x1a] = juce::LookAndFeel_V3::vftable;
  param_1[0x1b] = juce::LookAndFeel_V3::vftable;
  param_1[0x1c] = juce::LookAndFeel_V3::vftable;
  param_1[0x27] = 0;
  *(undefined4 *)(param_1 + 0x28) = 0;
  FUN_181315c30(param_1,0x1000503,0x301111ee);
  local_res8 = 0xffeeeeff;
  FUN_181315c30(param_1,0x1000100,0xffeeeeff);
  local_res10[0] = 0xff888888;
  FUN_181315c30(param_1,0x1000101,0xff888888);
  FUN_181315c30(param_1,0x1000d00,local_res8);
  FUN_181315c30(param_1,0x1000f00,local_res8);
  FUN_181315c30(param_1,0x1000205,DAT_182673b60);
  local_res8 = 0x66000000;
  FUN_181315c30(param_1,0x1005812,0x66000000);
  local_res8 = 0x66000000;
  FUN_181315c30(param_1,0x1005801,0x66000000);
  local_res8 = 0xbbffffff;
  FUN_181315c30(param_1,0x1001310,0xbbffffff);
  local_res8 = 0xffddddff;
  FUN_181315c30(param_1,0x1001300,0xffddddff);
  local_res8 = 0xeeeeeedd;
  FUN_181315c30(param_1,0x1000af0,0xeeeeeedd);
  local_res8 = 0xffcccccc;
  puVar1 = (undefined4 *)FUN_1812a24b0(&local_res8,local_res10,DAT_1824c3ea4);
  local_res8._0_3_ = (undefined3)*puVar1;
  local_res8 = CONCAT13(0x21,(undefined3)local_res8);
  FUN_181315c30(param_1,0x1000400,local_res8);
  local_res8._0_3_ = (undefined3)DAT_18262b5a8;
  local_res8 = CONCAT13(0x99,(undefined3)local_res8);
  FUN_181315c30(param_1,0x1003810,local_res8);
  local_res8._0_3_ = (undefined3)DAT_18262b5b8;
  local_res8 = CONCAT13(0x7f,(undefined3)local_res8);
  FUN_181315c30(param_1,0x1003820,local_res8);
  return param_1;
}



############ FUN_ 1804cf280 size=521 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1804cf280(ATOM *param_1,LPCWSTR param_2,WNDPROC param_3)

{
  uint uVar1;
  char cVar2;
  ATOM AVar3;
  ulonglong uVar4;
  undefined4 *puVar5;
  HINSTANCE hInstance;
  undefined8 *puVar6;
  HWND pHVar7;
  uint *puVar8;
  char *_Src;
  undefined1 auStackY_148 [32];
  longlong local_e8;
  undefined4 *local_e0;
  LARGE_INTEGER local_d8;
  undefined8 local_d0;
  undefined1 local_c8 [16];
  WNDCLASSEXW local_b8;
  char local_4a [2];
  undefined8 local_48;
  char cStack_39;
  
  local_d0 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStackY_148;
  FUN_18049c4e0(&local_e8,"JUCE_");
  QueryPerformanceCounter(&local_d8);
  uVar4 = DAT_182673a10 + local_d8.QuadPart;
  _Src = local_4a + 1;
  local_4a[1] = 0;
  do {
    _Src = _Src + -1;
    cVar2 = "0123456789abcdef"[(uint)uVar4 & 0xf];
    *_Src = cVar2;
    uVar4 = uVar4 >> 4;
  } while (uVar4 != 0);
  if (cVar2 == '\0') {
    puVar5 = (undefined4 *)&DAT_1821dbf98;
  }
  else {
    uVar4 = (longlong)&local_48 + -(longlong)_Src + 3 & 0xfffffffffffffffc;
    puVar5 = (undefined4 *)thunk_FUN_1811316e0(uVar4 + 0x17);
    LOCK();
    *puVar5 = 0;
    UNLOCK();
    *(ulonglong *)(puVar5 + 2) = uVar4;
    puVar5 = puVar5 + 4;
    memcpy(puVar5,_Src,(size_t)(local_4a + -(longlong)_Src + 1));
    *(char *)((longlong)puVar5 + (longlong)(local_4a + -(longlong)_Src + 1)) = '\0';
  }
  local_e0 = puVar5;
  FUN_181232d30(&local_e8);
  puVar8 = puVar5 + -4;
  if ((*puVar8 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar8;
    *puVar8 = *puVar8 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar8);
    }
  }
  hInstance = (HINSTANCE)FUN_181249ad0();
  memset(&local_b8,0,0x50);
  local_b8.cbSize = 0x50;
  local_b8.cbWndExtra = 4;
  local_b8.lpfnWndProc = param_3;
  local_b8.hInstance = hInstance;
  puVar6 = (undefined8 *)FUN_18049a930(local_c8,&local_e8);
  local_b8.lpszClassName = (LPCWSTR)*puVar6;
  AVar3 = RegisterClassExW(&local_b8);
  *param_1 = AVar3;
  pHVar7 = CreateWindowExW(0,(LPCWSTR)(ulonglong)AVar3,param_2,0,0,0,0,0,(HWND)0x0,(HMENU)0x0,
                           hInstance,(LPVOID)0x0);
  *(HWND *)(param_1 + 4) = pHVar7;
  puVar8 = (uint *)(local_e8 + -0x10);
  if ((*puVar8 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar8;
    *puVar8 = *puVar8 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar8);
    }
  }
}



############ FUN_ 18133d8f0 size=515 ############

longlong FUN_18133d8f0(longlong *param_1,int *param_2,char param_3)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  ulonglong uVar5;
  int *piVar6;
  int iVar7;
  longlong lVar8;
  longlong lVar9;
  int iVar10;
  longlong lVar11;
  int iVar12;
  int iVar13;
  int iStack_9c;
  double local_78;
  double dStack_70;
  double local_68;
  double local_60;
  undefined1 local_58 [32];
  
  lVar8 = *param_1;
  lVar11 = 0;
  iVar13 = -1;
  lVar9 = (longlong)*(int *)((longlong)param_1 + 0xc) * 0x40 + lVar8;
  if (lVar8 != lVar9) {
    iVar1 = *param_2;
    iVar2 = param_2[1];
    iVar3 = param_2[2];
    iVar4 = param_2[3];
    do {
      local_78 = *(double *)(lVar8 + 4);
      dStack_70 = *(double *)(lVar8 + 0xc);
      if (param_3 != '\0') {
        local_60 = *(double *)(lVar8 + 0x30);
        local_78 = local_60 * 0.0;
        uVar5 = (ulonglong)dStack_70 >> 0x20;
        local_68 = (double)SUB84(dStack_70,0) * local_60;
        dStack_70 = local_60 * 0.0;
        local_60 = (double)(int)uVar5 * local_60;
        piVar6 = (int *)FUN_18051bbd0(&local_78,local_58);
        dStack_70 = *(double *)(piVar6 + 2);
        local_78 = (double)CONCAT44(piVar6[1] +
                                    (int)((ulonglong)*(undefined8 *)(lVar8 + 0x24) >> 0x20),
                                    *piVar6 + (int)*(undefined8 *)(lVar8 + 0x24));
      }
      iVar10 = SUB84(local_78,0);
      iVar7 = iVar10;
      if (iVar10 < iVar1) {
        iVar7 = iVar1;
      }
      iStack_9c = (int)((ulonglong)local_78 >> 0x20);
      iVar10 = iVar10 + SUB84(dStack_70,0);
      iVar12 = iStack_9c;
      if (iStack_9c < iVar2) {
        iVar12 = iVar2;
      }
      if (iVar1 + iVar3 < iVar10) {
        iVar10 = iVar1 + iVar3;
      }
      iVar10 = iVar10 - iVar7;
      if (iVar10 < 0) {
LAB_18133da8f:
        iVar10 = 0;
        iStack_9c = 0;
      }
      else {
        iStack_9c = (int)((ulonglong)dStack_70 >> 0x20) + iStack_9c;
        if (iVar4 + iVar2 < iStack_9c) {
          iStack_9c = iVar4 + iVar2;
        }
        iStack_9c = iStack_9c - iVar12;
        if (iStack_9c < 0) goto LAB_18133da8f;
      }
      if (iVar13 <= iStack_9c * iVar10) {
        lVar11 = lVar8;
        iVar13 = iStack_9c * iVar10;
      }
      lVar8 = lVar8 + 0x40;
    } while (lVar8 != lVar9);
  }
  return lVar11;
}



############ FUN_ 18050e380 size=260 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18050e380(longlong param_1)

{
  double dVar1;
  BOOL BVar2;
  undefined1 auStack_98 [48];
  undefined4 local_68;
  undefined4 local_60;
  undefined4 local_58;
  tagWINDOWINFO local_50;
  ulonglong local_10;
  
  local_10 = DAT_182615970 ^ (ulonglong)auStack_98;
  local_50.cbSize = 0x3c;
  BVar2 = GetWindowInfo(*(HWND *)(param_1 + 0x88),&local_50);
  if (BVar2 != 0) {
    dVar1 = *(double *)(param_1 + 0x118);
    local_68 = SUB84((double)(local_50.rcClient.left - local_50.rcWindow.left) / dVar1 +
                     DAT_1824c4520,0);
    local_60 = SUB84((double)(local_50.rcWindow.bottom - local_50.rcClient.bottom) / dVar1 +
                     DAT_1824c4520,0);
    local_58 = SUB84((double)(local_50.rcWindow.right - local_50.rcClient.right) / dVar1 +
                     DAT_1824c4520,0);
    *(ulonglong *)(param_1 + 0xb8) =
         CONCAT44(local_68,SUB84((double)(local_50.rcClient.top - local_50.rcWindow.top) / dVar1 +
                                 DAT_1824c4520,0));
    *(ulonglong *)(param_1 + 0xc0) = CONCAT44(local_58,local_60);
  }
}



############ FUN_ 18050f9e0 size=76 ############

LONG_PTR FUN_18050f9e0(HWND param_1)

{
  LONG_PTR LVar1;
  longlong lVar2;
  
  if (param_1 != (HWND)0x0) {
    LVar1 = GetWindowLongPtrW(param_1,-0x15);
    lVar2 = FUN_1804cf4b0();
    if (LVar1 == lVar2) {
                    /* WARNING: Could not recover jumptable at 0x00018050fa1d. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      LVar1 = GetWindowLongPtrW(param_1,8);
      return LVar1;
    }
  }
  return 0;
}



############ FUN_ 181249ad0 size=86 ############

void FUN_181249ad0(void)

{
  BOOL BVar1;
  
  if (DAT_182678d18 == (HMODULE)0x0) {
    BVar1 = GetModuleHandleExW(6,(LPCWSTR)&DAT_182678d18,&DAT_182678d18);
    if ((BVar1 == 0) || (DAT_182678d18 == (HMODULE)0x0)) {
      DAT_182678d18 = GetModuleHandleA((LPCSTR)0x0);
    }
  }
  return;
}



############ FUN_ 1812c78b0 size=201 ############

bool FUN_1812c78b0(void)

{
  HMODULE pHVar1;
  bool bVar2;
  
  bVar2 = false;
  if (DAT_182678ed0 == (FARPROC)0x0) {
    if (DAT_182678e95 == '\0') {
      DAT_182678e95 = '\x01';
      pHVar1 = GetModuleHandleA("user32.dll");
      DAT_182678ed0 = GetProcAddress(pHVar1,"RegisterTouchWindow");
      pHVar1 = GetModuleHandleA("user32.dll");
      DAT_182678ef8 = GetProcAddress(pHVar1,"GetTouchInputInfo");
      pHVar1 = GetModuleHandleA("user32.dll");
      DAT_182678f10 = GetProcAddress(pHVar1,"CloseTouchInputHandle");
      pHVar1 = GetModuleHandleA("user32.dll");
      DAT_182678ec0 = GetProcAddress(pHVar1,"GetGestureInfo");
    }
    bVar2 = DAT_182678ed0 == (FARPROC)0x0;
  }
  return !bVar2;
}



############ FUN_ 1804cf4b0 size=192 ############

ulonglong FUN_1804cf4b0(void)

{
  ulonglong uVar1;
  longlong local_res8 [4];
  
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267aa9c) {
    _Init_thread_header(&DAT_18267aa9c);
    if (DAT_18267aa9c == -1) {
      local_res8[0] = 1;
      FUN_18123ad30(local_res8);
      uVar1 = local_res8[0] * 0x5deece66d + 0xbU & 0xffffffffffff;
      DAT_18267aa90 =
           uVar1 * 0x5deece66d + 0xb >> 0x10 & 0xffffffff | ((longlong)uVar1 >> 0x10) << 0x20;
      _Init_thread_footer(&DAT_18267aa9c);
      return DAT_18267aa90;
    }
  }
  return DAT_18267aa90;
}



############ FUN_ 180510480 size=573 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180510480(undefined8 *param_1)

{
  uint uVar1;
  char cVar2;
  ATOM AVar3;
  ulonglong uVar4;
  undefined4 *puVar5;
  HMODULE hModule;
  undefined8 *puVar6;
  uint *puVar7;
  char *_Src;
  undefined1 auStack_908 [32];
  WORD local_8e8 [4];
  longlong local_8e0;
  undefined4 *local_8d8;
  undefined8 local_8d0;
  undefined8 *local_8c8;
  undefined1 local_8c0 [8];
  WNDCLASSEXW local_8b8;
  longlong local_868;
  ushort local_860;
  char local_83a [2];
  WCHAR local_838;
  undefined1 auStack_835 [12];
  char acStack_829 [2033];
  ulonglong local_38;
  
  local_8d0 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_908;
  local_8c8 = param_1;
  FUN_1812a7230();
  *param_1 = juce::HWNDComponentPeer::WindowClassHolder::vftable;
  FUN_18049c4e0(&local_8e0,"JUCE_");
  _ftime64_s(&local_868);
  uVar4 = local_868 * 1000 + (ulonglong)local_860;
  _Src = local_83a + 1;
  local_83a[1] = 0;
  do {
    _Src = _Src + -1;
    cVar2 = "0123456789abcdef"[(uint)uVar4 & 0xf];
    *_Src = cVar2;
    uVar4 = uVar4 >> 4;
  } while (uVar4 != 0);
  if (cVar2 == '\0') {
    puVar5 = (undefined4 *)&DAT_1821dbf98;
  }
  else {
    puVar5 = (undefined4 *)
             thunk_FUN_1811316e0(((ulonglong)(auStack_835 + -(longlong)_Src) & 0xfffffffffffffffc) +
                                 0x17);
    LOCK();
    *puVar5 = 0;
    UNLOCK();
    *(ulonglong *)(puVar5 + 2) = (ulonglong)(auStack_835 + -(longlong)_Src) & 0xfffffffffffffffc;
    puVar5 = puVar5 + 4;
    memcpy(puVar5,_Src,(size_t)(local_83a + -(longlong)_Src + 1));
    *(char *)((longlong)puVar5 + (longlong)(local_83a + -(longlong)_Src + 1)) = '\0';
  }
  local_8d8 = puVar5;
  FUN_181232d30(&local_8e0);
  puVar7 = puVar5 + -4;
  if ((*puVar7 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar7;
    *puVar7 = *puVar7 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar7);
    }
  }
  hModule = (HMODULE)FUN_181249ad0();
  memset(local_83a + 2,0,0x800);
  GetModuleFileNameW(hModule,(LPWSTR)(local_83a + 2),0x400);
  local_8e8[0] = 0;
  memset(&local_8b8,0,0x50);
  local_8b8.cbSize = 0x50;
  local_8b8.style = 0x20;
  local_8b8.lpfnWndProc = FUN_180514940;
  puVar6 = (undefined8 *)FUN_18049a930(local_8c0,&local_8e0);
  local_8b8.lpszClassName = (LPCWSTR)*puVar6;
  local_8b8.cbWndExtra = 0x20;
  local_8b8.hInstance = hModule;
  local_8b8.hIcon = ExtractAssociatedIconW(hModule,(LPWSTR)(local_83a + 2),local_8e8);
  local_8e8[0] = 1;
  local_8b8.hIconSm = ExtractAssociatedIconW(hModule,(LPWSTR)(local_83a + 2),local_8e8);
  AVar3 = RegisterClassExW(&local_8b8);
  *(ATOM *)(param_1 + 1) = AVar3;
  DAT_1826736e8 = FUN_180510810;
  puVar7 = (uint *)(local_8e0 + -0x10);
  if ((*puVar7 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar7;
    *puVar7 = *puVar7 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar7);
    }
  }
}



############ FUN_ 181215c90 size=415 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_181215c90(char *param_1,int param_2)

{
  char *pcVar1;
  int iVar2;
  longlong lVar3;
  undefined1 auStack_78 [32];
  char *local_58;
  undefined1 local_50;
  undefined8 local_48;
  longlong local_40;
  longlong local_38;
  longlong local_28;
  int iStack_20;
  ulonglong local_18;
  
  local_48 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_78;
  local_58 = param_1 + 8;
  iVar2 = _Mtx_lock();
  if (iVar2 != 0) {
    std::_Throw_C_error(iVar2);
  }
  local_50 = 1;
  if (param_1[0xa0] == '\0') {
    if (param_2 < 0) {
      while (param_1[0xa0] == '\0') {
        iVar2 = _Cnd_wait(param_1 + 0x58,local_58);
        if (iVar2 != 0) {
          std::_Throw_C_error(iVar2);
        }
      }
    }
    else {
      if ((longlong)param_2 < 1) {
        local_28 = 0;
        iStack_20 = 0;
      }
      else {
        local_40 = _Xtime_get_ticks();
        local_38 = local_40 * 100;
        lVar3 = (longlong)param_2 * 1000000 + local_38;
        local_28 = lVar3 / 1000000000;
        iStack_20 = (int)lVar3 + (int)local_28 * -1000000000;
      }
      do {
        pcVar1 = local_58;
        if (param_1[0xa0] != '\0') goto LAB_181215df9;
        iVar2 = _Mtx_current_owns(local_58);
        if (iVar2 == 0) {
          std::_Throw_Cpp_error(4);
        }
        iVar2 = _Cnd_timedwait(param_1 + 0x58,pcVar1,&local_28);
        if (iVar2 != 0) {
          if (iVar2 == 2) break;
          std::_Throw_C_error(iVar2);
        }
      } while (iVar2 != 2);
      if (param_1[0xa0] == '\0') goto LAB_181215e07;
    }
  }
LAB_181215df9:
  if (*param_1 == '\0') {
    LOCK();
    param_1[0xa0] = '\0';
    UNLOCK();
  }
LAB_181215e07:
  iVar2 = _Mtx_unlock(local_58);
  if (iVar2 != 0) {
    std::_Throw_C_error(iVar2);
  }
}



############ FUN_ 1804cfc10 size=77 ############

undefined8 * FUN_1804cfc10(undefined8 *param_1,ulonglong param_2)

{
  _Cnd_destroy_in_situ(param_1 + 0xd);
  _Mtx_destroy_in_situ(param_1 + 3);
  *param_1 = juce::ReferenceCountedObject::vftable;
  if ((param_2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
    free(param_1);
  }
  return param_1;
}



############ FUN_ 1812c8710 size=287 ############

void FUN_1812c8710(longlong param_1,longlong param_2)

{
  void *_Dst;
  longlong *plVar1;
  int iVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  longlong *plVar6;
  int iVar7;
  longlong *plVar8;
  
  lVar3 = *(longlong *)(param_1 + 8);
  if (param_2 != lVar3) {
    if (lVar3 != 0) {
      iVar2 = *(int *)(lVar3 + 0x8c);
      lVar4 = *(longlong *)(lVar3 + 0x80);
      iVar7 = 0;
      lVar5 = 0;
      if (0 < iVar2) {
        do {
          if (param_1 == *(longlong *)(lVar4 + lVar5 * 8)) {
            _Dst = (void *)(lVar4 + (longlong)iVar7 * 8);
            memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)((iVar2 - iVar7) + -1) << 3);
            *(int *)(lVar3 + 0x8c) = *(int *)(lVar3 + 0x8c) + -1;
            iVar2 = *(int *)(lVar3 + 0x8c);
            iVar7 = 0;
            if (0 < iVar2 * 2) {
              iVar7 = iVar2 * 2;
            }
            if (iVar7 < *(int *)(lVar3 + 0x88)) {
              if (iVar2 < 8) {
                iVar2 = 8;
              }
              if (iVar2 < *(int *)(lVar3 + 0x88)) {
                FUN_18047cb30((longlong *)(lVar3 + 0x80));
              }
            }
            break;
          }
          iVar7 = iVar7 + 1;
          lVar5 = lVar5 + 1;
        } while (lVar5 < iVar2);
      }
    }
    *(longlong *)(param_1 + 8) = param_2;
    FUN_1812c8590(param_1);
    lVar3 = *(longlong *)(param_1 + 8);
    plVar8 = (longlong *)(lVar3 + 0x80);
    plVar6 = (longlong *)*plVar8;
    iVar2 = *(int *)(lVar3 + 0x8c);
    plVar1 = plVar6 + iVar2;
    for (; plVar6 != plVar1; plVar6 = plVar6 + 1) {
      if (param_1 == *plVar6) goto LAB_1812c8817;
    }
    if (*(int *)(lVar3 + 0x88) < iVar2 + 1) {
      FUN_18047cb30(plVar8,iVar2 + 9 + (iVar2 + 1) / 2 & 0xfffffff8);
    }
    iVar2 = *(int *)(lVar3 + 0x8c);
    *(int *)(lVar3 + 0x8c) = iVar2 + 1;
    *(longlong *)(*plVar8 + (longlong)iVar2 * 8) = param_1;
LAB_1812c8817:
    FUN_1812c81b0(param_1);
  }
  return;
}



############ FUN_ 181216340 size=400 ############

undefined8 FUN_181216340(void)

{
  undefined4 uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  HMODULE hModule;
  FARPROC pFVar8;
  INT_PTR IVar9;
  undefined8 *puVar10;
  undefined8 *puVar11;
  longlong lVar12;
  undefined4 local_248;
  int iStack_244;
  int iStack_240;
  undefined8 local_128 [37];
  
  memset(&local_248,0,0x114);
  hModule = GetModuleHandleW(L"ntdll.dll");
  if (hModule != (HMODULE)0x0) {
    pFVar8 = GetProcAddress(hModule,"RtlGetVersion");
    if (pFVar8 != (FARPROC)0x0) {
      local_248 = 0x114;
      IVar9 = (*pFVar8)(&local_248);
      if ((int)IVar9 != 0) {
        memset(local_128,0,0x114);
        lVar12 = 2;
        puVar6 = local_128;
        puVar7 = (undefined8 *)&local_248;
        do {
          puVar11 = puVar7;
          puVar10 = puVar6;
          uVar2 = puVar10[1];
          uVar3 = puVar10[2];
          uVar4 = puVar10[3];
          *puVar11 = *puVar10;
          puVar11[1] = uVar2;
          uVar2 = puVar10[4];
          uVar5 = puVar10[5];
          puVar11[2] = uVar3;
          puVar11[3] = uVar4;
          uVar3 = puVar10[6];
          uVar4 = puVar10[7];
          puVar11[4] = uVar2;
          puVar11[5] = uVar5;
          uVar2 = puVar10[8];
          uVar5 = puVar10[9];
          puVar11[6] = uVar3;
          puVar11[7] = uVar4;
          uVar3 = puVar10[10];
          uVar4 = puVar10[0xb];
          puVar11[8] = uVar2;
          puVar11[9] = uVar5;
          uVar2 = puVar10[0xc];
          uVar5 = puVar10[0xd];
          puVar11[10] = uVar3;
          puVar11[0xb] = uVar4;
          uVar3 = puVar10[0xe];
          uVar4 = puVar10[0xf];
          puVar11[0xc] = uVar2;
          puVar11[0xd] = uVar5;
          puVar11[0xe] = uVar3;
          puVar11[0xf] = uVar4;
          lVar12 = lVar12 + -1;
          puVar6 = puVar10 + 0x10;
          puVar7 = puVar11 + 0x10;
        } while (lVar12 != 0);
        uVar2 = puVar10[0x11];
        uVar1 = *(undefined4 *)(puVar10 + 0x12);
        puVar11[0x10] = puVar10[0x10];
        puVar11[0x11] = uVar2;
        *(undefined4 *)(puVar11 + 0x12) = uVar1;
      }
    }
  }
  if (iStack_244 == 10) {
    return 0x207;
  }
  if (iStack_244 == 6) {
    if (iStack_240 == 3) {
      return 0x206;
    }
    if (iStack_240 == 2) {
      return 0x205;
    }
    if (iStack_240 == 1) {
      return 0x204;
    }
    if (iStack_240 == 0) {
      return 0x203;
    }
  }
  else if (iStack_244 == 5) {
    if (iStack_240 == 1) {
      return 0x202;
    }
    if (iStack_240 == 0) {
      return 0x201;
    }
  }
  return 0;
}



############ FUN_ 18134aa20 size=264 ############

longlong FUN_18134aa20(ulonglong param_1,char param_2)

{
  uint uVar1;
  undefined8 *puVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  longlong *plVar5;
  uint7 uVar6;
  longlong lVar7;
  longlong *plVar8;
  ulonglong uVar9;
  ulonglong uVar10;
  
  uVar9 = 0;
  if (DAT_182673c20 == (undefined8 *)0x0) {
    puVar2 = (undefined8 *)FUN_1811316e0(0x28);
    FUN_1812a59f0(puVar2);
    FUN_1812a7230(puVar2 + 2);
    *puVar2 = juce::ModalComponentManager::vftable;
    puVar2[2] = juce::ModalComponentManager::vftable;
    puVar2[3] = 0;
    puVar2[4] = 0;
    DAT_182673c20 = puVar2;
  }
  if (param_2 == '\0') {
    plVar5 = (longlong *)DAT_182673c20[3];
    plVar8 = plVar5 + *(int *)((longlong)DAT_182673c20 + 0x24);
    for (; uVar6 = (uint7)((ulonglong)plVar5 >> 8), plVar5 != plVar8; plVar5 = plVar5 + 1) {
      if ((*(char *)(*plVar5 + 0x5c) != '\0') && (*(ulonglong *)(*plVar5 + 0x40) == param_1)) {
        return CONCAT71(uVar6,1);
      }
    }
    lVar7 = (ulonglong)uVar6 << 8;
  }
  else {
    uVar1 = *(int *)((longlong)DAT_182673c20 + 0x24) - 1;
    uVar4 = (ulonglong)uVar1;
    if (-1 < (int)uVar1) {
      lVar7 = (longlong)(int)uVar1;
      uVar3 = DAT_182673c20[3];
      plVar8 = (longlong *)(uVar3 + lVar7 * 8);
      uVar10 = uVar9;
      do {
        uVar4 = uVar10;
        uVar10 = uVar4;
        if ((*(char *)(*plVar8 + 0x5c) != '\0') &&
           (uVar10 = (ulonglong)((int)uVar4 + 1), uVar3 = uVar4, (int)uVar4 == 0)) {
          uVar9 = *(ulonglong *)(*plVar8 + 0x40);
          break;
        }
        plVar8 = plVar8 + -1;
        lVar7 = lVar7 + -1;
        uVar4 = uVar3;
      } while (-1 < lVar7);
    }
    lVar7 = CONCAT71((int7)(uVar4 >> 8),param_1 == uVar9);
  }
  return lVar7;
}



############ FUN_ 180001360 size=127 ############

undefined8 FUN_180001360(longlong *param_1,undefined4 *param_2)

{
  longlong lVar1;
  int iVar2;
  longlong local_18;
  
  iVar2 = FUN_180001400(&local_18);
  if (iVar2 == 0) {
    return 0x24;
  }
  if (param_1 != (longlong *)0x0) {
    lVar1 = *param_1;
    *param_1 = local_18;
    if (param_2 != (undefined4 *)0x0) {
      if (lVar1 == 0x616f666e69746567) {
        FUN_181a53890(param_2,*param_2,param_2[2]);
      }
      else {
        FUN_181a53890(param_2,1,0);
      }
    }
    return 0;
  }
  return 0xfffffff8;
}



############ FUN_ 1800010e0 size=633 ############

int FUN_1800010e0(ulonglong param_1,undefined4 *param_2)

{
  ulonglong uVar1;
  int iVar2;
  int iVar3;
  ulonglong local_28 [2];
  
  iVar2 = 0;
  *param_2 = 0;
  if ((longlong)param_1 < 0) {
    param_1 = param_1 ^ 0x8000000000000000;
    FUN_180001820();
  }
  else {
    FUN_180001400(local_28);
    iVar2 = 0x32;
    if ((param_1 & 0x7ffffffc00000000) == 0) {
      iVar2 = 0;
    }
    if (((param_1 & 0x8100) != 0) && ((local_28[0] & 0x200) == 0)) {
      iVar2 = 0x31;
      param_1 = param_1 & 0xffffffffffff7eff;
    }
    uVar1 = param_1;
    if (((param_1 & 0x6ff00000) != 0) && ((local_28[0] >> 0x21 & 1) == 0)) {
      iVar2 = 0x31;
      uVar1 = param_1 & 0xffffffff900fffff;
      param_1 = param_1 & 0xffffffff900fffff;
    }
    for (; uVar1 != 0; uVar1 = uVar1 >> 1) {
      if (((uVar1 & 1) != 0) && ((local_28[0] & 1) == 0)) {
        iVar2 = 0x31;
        break;
      }
      local_28[0] = local_28[0] >> 1;
    }
  }
  if ((param_1 & 0x7300000) == 0x7300000) {
    *param_2 = 5;
    uVar1 = 0x73081df;
  }
  else if ((param_1 & 0xf00000) == 0xf00000) {
    *param_2 = 4;
    uVar1 = 0xf081df;
  }
  else if ((param_1 & 0x8000) == 0) {
    if ((param_1 & 0x100) == 0) {
      if ((param_1 & 0x80) == 0) {
        if ((param_1 & 0x40) == 0) {
          if ((param_1 & 0x20) == 0) {
            if ((param_1 & 0x10) == 0) {
              if ((param_1 & 8) == 0) {
                if ((param_1 & 4) == 0) {
                  if ((param_1 & 2) == 0) {
                    *param_2 = 0;
                    uVar1 = 1;
                  }
                  else {
                    *param_2 = 0;
                    uVar1 = 3;
                  }
                  iVar3 = 0x24;
                  goto LAB_18000132f;
                }
                *param_2 = 0;
                uVar1 = 7;
              }
              else {
                *param_2 = 0;
                uVar1 = 0xf;
              }
            }
            else {
              *param_2 = 1;
              uVar1 = 0x1f;
            }
          }
          else {
            *param_2 = 1;
            uVar1 = 0x3f;
          }
        }
        else {
          *param_2 = 1;
          uVar1 = 0x5f;
        }
      }
      else {
        *param_2 = 2;
        uVar1 = 0xdf;
      }
    }
    else {
      *param_2 = 3;
      uVar1 = 0x1df;
    }
  }
  else {
    *param_2 = 4;
    uVar1 = 0x81df;
  }
  iVar3 = 0;
  if (uVar1 != (param_1 & uVar1)) {
    iVar3 = 0x33;
  }
LAB_18000132f:
  FUN_1800013e0(param_1 | uVar1);
  if (iVar2 != 0) {
    iVar3 = iVar2;
  }
  return iVar3;
}



############ FUN_ 181a53388 size=42 ############

/* WARNING: Removing unreachable block (ram,0x000181a5338c) */

undefined8 FUN_181a53388(void)

{
  longlong lVar1;
  undefined8 uVar2;
  
  lVar1 = cpuid_basic_info(0);
  uVar2 = 0;
  if (((*(int *)(lVar1 + 0xc) == 0x6c65746e) && (*(int *)(lVar1 + 8) == 0x49656e69)) &&
     (*(int *)(lVar1 + 4) == 0x756e6547)) {
    uVar2 = 1;
  }
  return uVar2;
}



############ FUN_ 1804b0330 size=114 ############

void FUN_1804b0330(float *param_1,float param_2,float param_3,float param_4,float param_5)

{
  if (*param_1 <= param_2) {
    if (param_1[1] <= param_2 && param_2 != param_1[1]) {
      param_1[1] = param_2;
    }
  }
  else {
    *param_1 = param_2;
  }
  if (param_1[2] <= param_3) {
    if (param_1[3] <= param_3 && param_3 != param_1[3]) {
      param_1[3] = param_3;
    }
  }
  else {
    param_1[2] = param_3;
  }
  if (*param_1 <= param_4) {
    if (param_1[1] <= param_4 && param_4 != param_1[1]) {
      param_1[1] = param_4;
    }
  }
  else {
    *param_1 = param_4;
  }
  if (param_5 < param_1[2]) {
    param_1[2] = param_5;
    return;
  }
  if (param_1[3] <= param_5 && param_5 != param_1[3]) {
    param_1[3] = param_5;
  }
  return;
}



############ FUN_ 1805a99a0 size=1327 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805a99a0(longlong *param_1,undefined8 *param_2)

{
  uint uVar1;
  ulonglong uVar2;
  char cVar3;
  int iVar4;
  undefined8 uVar5;
  ctype<char> *this;
  undefined8 *puVar6;
  void *pvVar7;
  undefined8 *puVar8;
  uint uVar9;
  longlong *plVar10;
  longlong lVar11;
  longlong *plVar12;
  longlong *plVar13;
  longlong *plVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  int iVar17;
  undefined1 auStack_188 [32];
  longlong local_168;
  undefined1 local_160;
  char local_158;
  char local_157;
  char local_156;
  int local_154;
  int local_150;
  longlong local_148;
  longlong local_140;
  ctype<char> *local_138;
  undefined8 local_128;
  undefined4 *puStack_120;
  undefined4 local_118;
  undefined4 uStack_114;
  undefined8 uStack_110;
  undefined8 local_108;
  undefined1 local_100 [40];
  undefined4 local_d8 [2];
  undefined1 local_d0;
  undefined8 local_c0;
  undefined8 local_b8;
  undefined1 local_b0;
  undefined8 local_a0;
  undefined8 local_98;
  undefined8 local_90;
  undefined8 local_88;
  char local_80;
  undefined8 local_7c;
  undefined4 local_74;
  undefined1 local_70;
  undefined8 local_58;
  undefined4 local_50;
  ulonglong local_48;
  
  local_108 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_188;
  uVar5 = FUN_1805a9190(param_1,&local_118);
  this = (ctype<char> *)FUN_1805a3e30(uVar5);
  local_138 = this;
  if (((longlong *)CONCAT44(uStack_110._4_4_,(undefined4)uStack_110) != (longlong *)0x0) &&
     (puVar6 = (undefined8 *)
               (**(code **)(*(longlong *)CONCAT44(uStack_110._4_4_,(undefined4)uStack_110) + 0x10))
                         (), puVar6 != (undefined8 *)0x0)) {
    (**(code **)*puVar6)(puVar6,1);
  }
  local_156 = std::ctype<char>::widen(this,'%');
  local_158 = '\x01';
  local_154 = -1;
  iVar4 = FUN_1805a3cb0(param_2,local_156,this,(char)param_1[0xd]);
  FUN_1805a94d0(param_1,(longlong)iVar4);
  uVar16 = 0;
  local_150 = 0;
  local_157 = '\0';
  iVar4 = 0;
  local_140 = 0;
  uVar15 = 0;
  while( true ) {
    uVar2 = param_2[3];
    puVar6 = param_2;
    if (0xf < uVar2) {
      puVar6 = (undefined8 *)*param_2;
    }
    if ((((ulonglong)param_2[2] <= uVar16) ||
        (pvVar7 = memchr((void *)((longlong)puVar6 + uVar16),(int)local_156,param_2[2] - uVar16),
        pvVar7 == (void *)0x0)) ||
       (uVar16 = (longlong)pvVar7 - (longlong)puVar6, uVar16 == 0xffffffffffffffff)) break;
    if (iVar4 == 0) {
      plVar10 = param_1 + 9;
    }
    else {
      plVar10 = (longlong *)(*param_1 + 0x28 + (longlong)(iVar4 + -1) * 0x90);
    }
    puVar8 = param_2;
    puVar6 = param_2;
    if (0xf < uVar2) {
      puVar6 = (undefined8 *)*param_2;
      puVar8 = (undefined8 *)*param_2;
    }
    if (*(char *)(uVar16 + 1 + (longlong)puVar6) == *(char *)(uVar16 + (longlong)puVar8)) {
      puVar8 = param_2;
      puVar6 = param_2;
      if (0xf < uVar2) {
        puVar6 = (undefined8 *)*param_2;
        puVar8 = (undefined8 *)*param_2;
      }
      uVar2 = plVar10[3];
      plVar12 = plVar10;
      if (0xf < uVar2) {
        plVar12 = (longlong *)*plVar10;
      }
      plVar13 = plVar10;
      if (0xf < uVar2) {
        plVar13 = (longlong *)*plVar10;
      }
      lVar11 = (longlong)plVar13 + plVar10[2];
      plVar13 = plVar10;
      if (0xf < uVar2) {
        plVar13 = (longlong *)*plVar10;
      }
      local_168 = (longlong)puVar6 + ((uVar16 + 1) - ((longlong)puVar8 + uVar15));
      FUN_1805a9f40(plVar10,lVar11 - (longlong)plVar13,(longlong)plVar12 + (plVar10[2] - lVar11));
      uVar16 = uVar16 + 2;
      uVar15 = uVar16;
    }
    else {
      if (uVar16 != uVar15) {
        puVar8 = param_2;
        puVar6 = param_2;
        if (0xf < uVar2) {
          puVar6 = (undefined8 *)*param_2;
          puVar8 = (undefined8 *)*param_2;
        }
        uVar2 = plVar10[3];
        plVar12 = plVar10;
        if (0xf < uVar2) {
          plVar12 = (longlong *)*plVar10;
        }
        plVar13 = plVar10;
        if (0xf < uVar2) {
          plVar13 = (longlong *)*plVar10;
        }
        lVar11 = (longlong)plVar13 + plVar10[2];
        plVar13 = plVar10;
        if (0xf < uVar2) {
          plVar13 = (longlong *)*plVar10;
        }
        local_168 = (longlong)puVar6 + (uVar16 - ((longlong)puVar8 + uVar15));
        FUN_1805a9f40(plVar10,lVar11 - (longlong)plVar13,(longlong)plVar12 + (plVar10[2] - lVar11));
        uVar15 = uVar16;
      }
      local_168 = uVar16 + 1;
      puVar6 = param_2;
      if (0xf < (ulonglong)param_2[3]) {
        puVar6 = (undefined8 *)*param_2;
      }
      local_148 = (longlong)puVar6 + local_168;
      local_160 = (undefined1)param_1[0xd];
      puVar6 = param_2;
      if (0xf < (ulonglong)param_2[3]) {
        puVar6 = (undefined8 *)*param_2;
      }
      local_128 = (longlong *)(param_2[2] + (longlong)puVar6);
      cVar3 = FUN_1805a2cf0(&local_148,&local_128,(longlong)iVar4 * 0x90 + *param_1,local_138);
      puVar6 = param_2;
      if (0xf < (ulonglong)param_2[3]) {
        puVar6 = (undefined8 *)*param_2;
      }
      uVar16 = local_148 - (longlong)puVar6;
      if (cVar3 != '\0') {
        lVar11 = *param_1;
        uVar9 = *(uint *)(local_140 + 0x88 + lVar11);
        if ((uVar9 & 1) != 0) {
          uVar1 = *(uint *)(local_140 + 0x5c + lVar11);
          if ((uVar1 & 0x40) == 0) {
            uVar9 = uVar9 & 0xfffffffd;
            *(undefined1 *)(local_140 + 0x58 + lVar11) = 0x30;
            *(uint *)(local_140 + 0x5c + lVar11) = uVar1 & 0xffffff3f | 0x100;
          }
          else {
            uVar9 = uVar9 & 0xfffffffe;
          }
          *(uint *)(local_140 + 0x88 + lVar11) = uVar9;
        }
        uVar9 = *(uint *)(local_140 + 0x88 + lVar11);
        if (((uVar9 & 2) != 0) && ((*(byte *)(local_140 + 0x5c + lVar11) & 0x20) != 0)) {
          *(uint *)(local_140 + 0x88 + lVar11) = uVar9 & 0xfffffffd;
        }
        iVar17 = *(int *)(local_140 + *param_1);
        uVar15 = uVar16;
        if (iVar17 != -3) {
          if (iVar17 == -1) {
            local_158 = '\0';
          }
          else if (iVar17 == -2) {
            local_157 = '\x01';
          }
          else if (local_154 < iVar17) {
            local_154 = iVar17;
          }
          local_150 = local_150 + 1;
          iVar4 = iVar4 + 1;
          local_140 = local_140 + 0x90;
        }
      }
    }
  }
  if (iVar4 == 0) {
    plVar10 = param_1 + 9;
  }
  else {
    plVar10 = (longlong *)(*param_1 + 0x28 + (longlong)(iVar4 + -1) * 0x90);
  }
  plVar12 = param_2 + 2;
  puVar6 = param_2;
  if (0xf < uVar2) {
    puVar6 = (undefined8 *)*param_2;
    param_2 = (undefined8 *)*param_2;
  }
  uVar16 = plVar10[3];
  plVar13 = plVar10;
  if (0xf < uVar16) {
    plVar13 = (longlong *)*plVar10;
  }
  plVar14 = plVar10;
  if (0xf < uVar16) {
    plVar14 = (longlong *)*plVar10;
  }
  lVar11 = (longlong)plVar14 + plVar10[2];
  plVar14 = plVar10;
  if (0xf < uVar16) {
    plVar14 = (longlong *)*plVar10;
  }
  local_168 = (longlong)puVar6 + (*plVar12 - ((longlong)param_2 + uVar15));
  FUN_1805a9f40(plVar10,lVar11 - (longlong)plVar14,(longlong)plVar13 + (plVar10[2] - lVar11));
  iVar4 = local_150;
  cVar3 = local_158;
  iVar17 = local_154;
  if (local_158 == '\0') {
    if ((-1 < local_154) && ((*(byte *)(param_1 + 0xd) & 1) != 0)) {
      uVar5 = FUN_1805a4a20(local_100,(longlong)local_154,0);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3b70(uVar5);
    }
    uVar16 = 0;
    iVar17 = 0;
    lVar11 = (longlong)local_150;
    uVar15 = uVar16;
    if (0 < local_150) {
      do {
        if (*(int *)(uVar15 + *param_1) == -1) {
          *(int *)(uVar15 + *param_1) = (int)uVar16;
          uVar16 = (ulonglong)((int)uVar16 + 1);
        }
        iVar17 = (int)uVar16;
        lVar11 = lVar11 + -1;
        uVar15 = uVar15 + 0x90;
      } while (lVar11 != 0);
    }
    iVar17 = iVar17 + -1;
  }
  local_80 = std::ctype<char>::widen(local_138,' ');
  local_d8[0] = 0xffffffff;
  local_c0 = 0;
  local_b8 = 0xf;
  local_d0 = 0;
  local_a0 = 0;
  local_98 = 0xf;
  local_b0 = 0;
  local_70 = 0;
  local_90 = 0;
  local_88 = 6;
  local_7c = 0x201;
  local_74 = 0;
  local_58 = 0x7fffffffffffffff;
  local_50 = 0;
  puStack_120 = local_d8;
  local_128._0_4_ = SUB84(param_1,0);
  local_128._4_4_ = (undefined4)((ulonglong)param_1 >> 0x20);
  local_118 = (undefined4)local_128;
  uStack_114 = local_128._4_4_;
  local_128 = param_1;
  uStack_110 = puStack_120;
  FUN_1805a1760(param_1,(longlong)iVar4,&local_118);
  FUN_1805a5290(local_d8);
  if (local_157 != '\0') {
    *(uint *)(param_1 + 7) = *(uint *)(param_1 + 7) | 4;
  }
  *(int *)(param_1 + 8) = iVar17 + 1;
  if (cVar3 == '\0') {
    *(uint *)(param_1 + 7) = *(uint *)(param_1 + 7) & 0xfffffffe;
  }
  else {
    *(uint *)(param_1 + 7) = *(uint *)(param_1 + 7) | 1;
  }
}



############ FUN_ 1805a6cb0 size=336 ############

longlong * FUN_1805a6cb0(longlong *param_1,void *param_2,size_t param_3)

{
  ulonglong uVar1;
  longlong lVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  void *_Memory;
  void *pvVar5;
  longlong *_Dst;
  ulonglong uVar6;
  
  uVar1 = param_1[3];
  if (uVar1 < param_3) {
    if (0x7fffffffffffffff < param_3) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a6980();
    }
    uVar3 = param_3 | 0xf;
    uVar6 = 0x7fffffffffffffff;
    if (((uVar3 < 0x8000000000000000) && (uVar1 <= 0x7fffffffffffffff - (uVar1 >> 1))) &&
       (uVar4 = (uVar1 >> 1) + uVar1, uVar6 = uVar3, uVar3 < uVar4)) {
      uVar6 = uVar4;
    }
    uVar3 = uVar6 + 1;
    if (uVar3 < 0x1000) {
      if (uVar3 == 0) {
        pvVar5 = (void *)0x0;
      }
      else {
        pvVar5 = (void *)FUN_1811316e0(uVar3);
      }
    }
    else {
      uVar4 = uVar6 + 0x28;
      if (uVar4 <= uVar3) {
        uVar4 = 0xffffffffffffffff;
      }
      lVar2 = FUN_1811316e0(uVar4);
      if (lVar2 == 0) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
      pvVar5 = (void *)(lVar2 + 0x27U & 0xffffffffffffffe0);
      *(longlong *)((longlong)pvVar5 - 8) = lVar2;
    }
    param_1[2] = param_3;
    param_1[3] = uVar6;
    memcpy(pvVar5,param_2,param_3);
    *(undefined1 *)((longlong)pvVar5 + param_3) = 0;
    if (0xf < uVar1) {
      pvVar5 = (void *)*param_1;
      _Memory = pvVar5;
      if ((0xfff < uVar1 + 1) &&
         (_Memory = *(void **)((longlong)pvVar5 + -8),
         0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
    *param_1 = (longlong)pvVar5;
  }
  else {
    _Dst = param_1;
    if (0xf < uVar1) {
      _Dst = (longlong *)*param_1;
    }
    param_1[2] = param_3;
    memmove(_Dst,param_2,param_3);
    *(undefined1 *)((longlong)_Dst + param_3) = 0;
  }
  return param_1;
}



############ FUN_ 1805ae640 size=831 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805ae640(longlong *param_1,undefined8 *param_2)

{
  size_t sVar1;
  undefined8 uVar2;
  int *piVar3;
  longlong lVar4;
  ulonglong uVar5;
  undefined1 *puVar6;
  int *piVar7;
  ulonglong uVar8;
  longlong lVar9;
  longlong *_Src;
  ulonglong uVar10;
  undefined1 auStack_c8 [32];
  size_t local_a8;
  undefined8 *local_98;
  undefined8 local_90;
  undefined1 local_88 [40];
  undefined1 local_60;
  undefined7 uStack_5f;
  undefined8 uStack_58;
  size_t local_50;
  ulonglong uStack_48;
  ulonglong local_40;
  
  local_90 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_c8;
  lVar4 = param_1[1] - *param_1;
  lVar4 = lVar4 / 0x12 + (lVar4 >> 0x3f);
  lVar9 = lVar4 >> 3;
  lVar4 = lVar4 >> 0x3f;
  local_98 = param_2;
  if (lVar9 == lVar4) {
    FUN_1805a4070(param_2,param_1 + 9);
  }
  else {
    if ((*(int *)((longlong)param_1 + 0x3c) < (int)param_1[8]) &&
       ((*(byte *)(param_1 + 0xd) & 2) != 0)) {
      uVar2 = FUN_1805a4da0(local_88,(longlong)*(int *)((longlong)param_1 + 0x3c),
                            (longlong)(int)param_1[8]);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3c30(uVar2);
    }
    uVar10 = 0;
    local_50 = 0;
    uStack_48 = 0xf;
    local_60 = 0;
    uVar5 = param_1[0xb];
    uVar8 = uVar10;
    if (lVar9 != lVar4) {
      do {
        piVar3 = (int *)(uVar8 * 0x90 + *param_1);
        uVar5 = uVar5 + *(longlong *)(piVar3 + 6);
        if ((*piVar3 == -2) && (uVar5 < *(ulonglong *)(piVar3 + 0x12))) {
          uVar5 = *(ulonglong *)(piVar3 + 0x12);
        }
        uVar5 = uVar5 + *(longlong *)(piVar3 + 0xe);
        uVar8 = (ulonglong)((int)uVar8 + 1);
      } while (uVar8 < (ulonglong)(lVar9 - lVar4));
    }
    if (0xf < uVar5) {
      FUN_1805a14a0(&local_60,uVar5,0);
    }
    local_50 = 0;
    _Src = param_1 + 9;
    if (0xf < (ulonglong)param_1[0xc]) {
      _Src = (longlong *)param_1[9];
    }
    sVar1 = param_1[0xb];
    if (uStack_48 < sVar1) {
      local_a8 = sVar1;
      FUN_1805a1320(&local_60,sVar1,0);
    }
    else {
      puVar6 = &local_60;
      if (0xf < uStack_48) {
        puVar6 = (undefined1 *)CONCAT71(uStack_5f,local_60);
      }
      local_50 = sVar1;
      memmove(puVar6,_Src,sVar1);
      puVar6[sVar1] = 0;
    }
    lVar4 = param_1[1] - *param_1 >> 0x3f;
    if ((param_1[1] - *param_1) / 0x90 + lVar4 != lVar4) {
      do {
        piVar7 = (int *)(uVar10 * 0x90 + *param_1);
        piVar3 = piVar7 + 2;
        if (0xf < *(ulonglong *)(piVar7 + 8)) {
          piVar3 = *(int **)(piVar7 + 2);
        }
        sVar1 = *(size_t *)(piVar7 + 6);
        if (uStack_48 - local_50 < sVar1) {
          local_a8 = sVar1;
          FUN_1805a1320(&local_60,sVar1,0);
        }
        else {
          puVar6 = &local_60;
          if (0xf < uStack_48) {
            puVar6 = (undefined1 *)CONCAT71(uStack_5f,local_60);
          }
          puVar6 = puVar6 + local_50;
          local_50 = local_50 + sVar1;
          memmove(puVar6,piVar3,sVar1);
          puVar6[sVar1] = 0;
        }
        if ((*piVar7 == -2) && (local_50 < *(ulonglong *)(piVar7 + 0x12))) {
          uVar5 = *(ulonglong *)(piVar7 + 0x12) - local_50;
          if (uStack_48 - local_50 < uVar5) {
            local_a8 = CONCAT71(local_a8._1_7_,(char)piVar7[0x16]);
            FUN_1805a15e0(&local_60,uVar5,0,uVar5);
          }
          else {
            puVar6 = &local_60;
            if (0xf < uStack_48) {
              puVar6 = (undefined1 *)CONCAT71(uStack_5f,local_60);
            }
            puVar6 = puVar6 + local_50;
            local_50 = local_50 + uVar5;
            memset(puVar6,(int)(char)piVar7[0x16],uVar5);
            puVar6[uVar5] = 0;
          }
        }
        piVar3 = piVar7 + 10;
        if (0xf < *(ulonglong *)(piVar7 + 0x10)) {
          piVar3 = *(int **)(piVar7 + 10);
        }
        sVar1 = *(size_t *)(piVar7 + 0xe);
        if (uStack_48 - local_50 < sVar1) {
          local_a8 = sVar1;
          FUN_1805a1320(&local_60,sVar1,0);
        }
        else {
          puVar6 = &local_60;
          if (0xf < uStack_48) {
            puVar6 = (undefined1 *)CONCAT71(uStack_5f,local_60);
          }
          puVar6 = puVar6 + local_50;
          local_50 = local_50 + sVar1;
          memmove(puVar6,piVar3,sVar1);
          puVar6[sVar1] = 0;
        }
        uVar10 = (ulonglong)((int)uVar10 + 1);
      } while (uVar10 < (ulonglong)((param_1[1] - *param_1) / 0x90));
    }
    *(undefined1 *)((longlong)param_1 + 0x44) = 1;
    *param_2 = CONCAT71(uStack_5f,local_60);
    param_2[1] = uStack_58;
    param_2[2] = local_50;
    param_2[3] = uStack_48;
  }
}



############ FUN_ 1805a5460 size=167 ############

void FUN_1805a5460(longlong *param_1)

{
  longlong lVar1;
  void *pvVar2;
  longlong lVar3;
  void *_Memory;
  
  lVar3 = *param_1;
  if (lVar3 == 0) {
    return;
  }
  lVar1 = param_1[1];
  for (; lVar3 != lVar1; lVar3 = lVar3 + 0x90) {
    FUN_1805a5290(lVar3);
  }
  pvVar2 = (void *)*param_1;
  _Memory = pvVar2;
  if ((0xfff < (ulonglong)(((param_1[2] - (longlong)pvVar2) / 0x90) * 0x90)) &&
     (_Memory = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805a4ee0 size=182 ############

void FUN_1805a4ee0(basic_streambuf<char,std::char_traits<char>_> *param_1)

{
  void *pvVar1;
  void *_Memory;
  longlong lVar2;
  
  *(undefined ***)param_1 =
       boost::io::basic_altstringbuf<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  if (param_1[0x70] == (basic_streambuf<char,std::char_traits<char>_>)0x0) {
    param_1[0x70] = (basic_streambuf<char,std::char_traits<char>_>)0x0;
    **(undefined8 **)(param_1 + 0x18) = 0;
    **(undefined8 **)(param_1 + 0x38) = 0;
    **(undefined4 **)(param_1 + 0x50) = 0;
    **(undefined8 **)(param_1 + 0x20) = 0;
    **(undefined8 **)(param_1 + 0x40) = 0;
    **(undefined4 **)(param_1 + 0x58) = 0;
    *(undefined8 *)(param_1 + 0x68) = 0;
                    /* WARNING: Could not recover jumptable at 0x0001805a4f89. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    std::basic_streambuf<char,std::char_traits<char>_>::
    ~basic_streambuf<char,std::char_traits<char>_>(param_1);
    return;
  }
  if (**(longlong **)(param_1 + 0x40) == 0) {
    lVar2 = (longlong)**(int **)(param_1 + 0x50) + **(longlong **)(param_1 + 0x38);
  }
  else {
    lVar2 = (longlong)**(int **)(param_1 + 0x58) + **(longlong **)(param_1 + 0x40);
  }
  pvVar1 = (void *)**(longlong **)(param_1 + 0x18);
  _Memory = pvVar1;
  if ((0xfff < (ulonglong)(lVar2 - (longlong)pvVar1)) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 180573110 size=657 ############

undefined8 *
FUN_180573110(longlong *param_1,undefined8 *param_2,longlong *param_3,undefined8 *param_4)

{
  char cVar1;
  char cVar2;
  longlong *plVar3;
  undefined8 uVar4;
  longlong *plVar5;
  longlong *plVar6;
  int iVar7;
  undefined8 *puVar8;
  longlong *plVar9;
  undefined1 local_40 [24];
  
  if (param_1[1] == 0) {
    FUN_180574420(param_1,param_2,1,*param_1);
  }
  else {
    plVar3 = (longlong *)*param_1;
    if (param_3 == (longlong *)*plVar3) {
      iVar7 = FUN_18048cbc0(*param_4,param_3[4]);
      if (iVar7 < 0) {
        FUN_180574420(param_1,param_2,1,param_3);
        return param_2;
      }
    }
    else if (param_3 == plVar3) {
      iVar7 = FUN_18048cbc0(*(undefined8 *)(plVar3[2] + 0x20),*param_4);
      if (iVar7 < 0) {
        FUN_180574420(param_1,param_2,0,plVar3[2]);
        return param_2;
      }
    }
    else {
      uVar4 = *param_4;
      iVar7 = FUN_18048cbc0(uVar4,param_3[4]);
      if (iVar7 < 0) {
        if (*(char *)((longlong)param_3 + 0x19) == '\0') {
          plVar9 = (longlong *)*param_3;
          if (*(char *)((longlong)plVar9 + 0x19) == '\0') {
            cVar1 = *(char *)(plVar9[2] + 0x19);
            plVar5 = (longlong *)plVar9[2];
            while (cVar1 == '\0') {
              cVar1 = *(char *)(plVar5[2] + 0x19);
              plVar9 = plVar5;
              plVar5 = (longlong *)plVar5[2];
            }
          }
          else {
            cVar1 = *(char *)(param_3[1] + 0x19);
            plVar5 = (longlong *)param_3[1];
            plVar9 = param_3;
            while ((plVar6 = plVar5, cVar1 == '\0' && (plVar9 == (longlong *)*plVar6))) {
              cVar1 = *(char *)(plVar6[1] + 0x19);
              plVar5 = (longlong *)plVar6[1];
              plVar9 = plVar6;
            }
            if (*(char *)((longlong)plVar9 + 0x19) == '\0') {
              plVar9 = plVar6;
            }
          }
        }
        else {
          plVar9 = (longlong *)param_3[2];
        }
        iVar7 = FUN_18048cbc0(plVar9[4],uVar4);
        if (iVar7 < 0) {
          if (*(char *)(plVar9[2] + 0x19) != '\0') {
            FUN_180574420(param_1,param_2,0,plVar9);
            return param_2;
          }
          FUN_180574420(param_1,param_2,1,param_3);
          return param_2;
        }
      }
      iVar7 = FUN_18048cbc0(param_3[4],uVar4);
      if (iVar7 < 0) {
        plVar9 = (longlong *)param_3[2];
        cVar1 = *(char *)((longlong)plVar9 + 0x19);
        if (cVar1 == '\0') {
          cVar2 = *(char *)(*plVar9 + 0x19);
          plVar5 = (longlong *)*plVar9;
          while (cVar2 == '\0') {
            cVar2 = *(char *)(*plVar5 + 0x19);
            plVar9 = plVar5;
            plVar5 = (longlong *)*plVar5;
          }
        }
        else {
          cVar2 = *(char *)(param_3[1] + 0x19);
          plVar6 = (longlong *)param_3[1];
          plVar5 = param_3;
          while ((plVar9 = plVar6, cVar2 == '\0' && (plVar5 == (longlong *)plVar9[2]))) {
            cVar2 = *(char *)(plVar9[1] + 0x19);
            plVar6 = (longlong *)plVar9[1];
            plVar5 = plVar9;
          }
        }
        if ((plVar9 == plVar3) || (iVar7 = FUN_18048cbc0(uVar4,plVar9[4]), iVar7 < 0)) {
          if (cVar1 != '\0') {
            FUN_180574420(param_1,param_2,0,param_3);
            return param_2;
          }
          FUN_180574420(param_1,param_2,1,plVar9);
          return param_2;
        }
      }
    }
    puVar8 = (undefined8 *)FUN_180574650(param_1,local_40);
    *param_2 = *puVar8;
  }
  return param_2;
}



############ FUN_ 1805730d0 size=54 ############

void FUN_1805730d0(undefined8 param_1,undefined8 param_2,undefined8 *param_3)

{
  longlong lVar1;
  
  lVar1 = FUN_180482250();
  *(undefined2 *)(lVar1 + 0x18) = 0;
  param_3 = (undefined8 *)*param_3;
  *(undefined8 *)(lVar1 + 0x20) = *param_3;
  *param_3 = &DAT_1821dbf98;
  *(undefined8 *)(lVar1 + 0x28) = 0;
  return;
}



############ FUN_ 180534840 size=311 ############

void FUN_180534840(longlong *param_1,uint param_2)

{
  void *pvVar1;
  int iVar2;
  ulonglong uVar3;
  undefined4 *puVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  
  uVar6 = *(uint *)((longlong)param_1 + 0xc);
  uVar7 = param_2 - uVar6;
  if ((int)uVar7 < 1) {
    if ((int)uVar7 < 0) {
      uVar7 = param_2 - uVar7;
      uVar5 = 0;
      if ((-1 < (int)uVar7) && (uVar5 = uVar7, (int)uVar6 < (int)uVar7)) {
        uVar5 = uVar6;
      }
      if ((int)param_2 < 0) {
        param_2 = 0;
      }
      else if ((int)uVar6 < (int)param_2) {
        param_2 = uVar6;
      }
      iVar2 = uVar5 - param_2;
      if (0 < iVar2) {
        pvVar1 = (void *)(*param_1 + (longlong)(int)param_2 * 4);
        memmove(pvVar1,(void *)((longlong)pvVar1 + (longlong)iVar2 * 4),
                (longlong)(int)((uVar6 - param_2) - iVar2) << 2);
        *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) - iVar2;
        iVar2 = *(int *)((longlong)param_1 + 0xc);
        uVar6 = 0;
        if (0 < iVar2 * 2) {
          uVar6 = iVar2 * 2;
        }
        if ((int)uVar6 < (int)param_1[1]) {
          if (iVar2 < 0x10) {
            iVar2 = 0x10;
          }
          if (iVar2 < (int)param_1[1]) {
            FUN_1804af790(param_1);
          }
        }
      }
    }
  }
  else {
    iVar2 = uVar6 + uVar7;
    if ((int)param_1[1] < iVar2) {
      FUN_1804af790(param_1,iVar2 + 8 + iVar2 / 2 & 0xfffffff8);
    }
    uVar5 = *(uint *)((longlong)param_1 + 0xc);
    if (uVar6 < uVar5) {
      pvVar1 = (void *)(*param_1 + (longlong)(int)uVar6 * 4);
      memmove((void *)((longlong)pvVar1 + (longlong)(int)uVar7 * 4),pvVar1,
              (longlong)(int)(uVar5 - uVar6) << 2);
      puVar4 = (undefined4 *)(*param_1 + (longlong)(int)uVar6 * 4);
    }
    else {
      puVar4 = (undefined4 *)(*param_1 + (longlong)(int)uVar5 * 4);
    }
    if (0 < (int)uVar7) {
      uVar3 = (ulonglong)uVar7;
      do {
        *puVar4 = 0;
        uVar3 = uVar3 - 1;
        puVar4 = puVar4 + 1;
      } while (uVar3 != 0);
    }
    *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + uVar7;
  }
  return;
}



############ FUN_ 180557920 size=512 ############

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

void FUN_180557920(undefined8 *param_1,float param_2,float param_3,float param_4,uint param_5)

{
  double dVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  undefined8 *puVar5;
  float *pfVar6;
  double dVar7;
  double extraout_XMM0_Qb;
  
  iVar2 = _DAT_1824c4880;
  if (param_5 == 1) {
    *(undefined4 *)param_1 = 0x3f800000;
  }
  else {
    param_4 = param_4 - param_3;
    iVar4 = 0;
    dVar1 = DAT_1824c4140 / (double)(int)(param_5 - 1);
    if (0 < (int)param_5) {
      if (1 < param_5) {
        uVar3 = param_5 & 0x80000001;
        if ((int)uVar3 < 0) {
          uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
        }
        puVar5 = param_1;
        do {
          dVar7 = (double)thunk_FUN_181a12fb0((double)(iVar4 + iVar2) * dVar1);
          iVar4 = iVar4 + 2;
          *puVar5 = CONCAT44((float)(extraout_XMM0_Qb * (double)param_4 + (double)param_3),
                             (float)(dVar7 * (double)param_4 + (double)param_3));
          puVar5 = puVar5 + 1;
        } while (iVar4 < (int)(param_5 - uVar3));
      }
      if (iVar4 < (int)param_5) {
        pfVar6 = (float *)((longlong)param_1 + (longlong)iVar4 * 4);
        do {
          dVar7 = pow((double)iVar4 * dVar1,(double)param_2);
          iVar4 = iVar4 + 1;
          *pfVar6 = (float)(dVar7 * (double)param_4 + (double)param_3);
          pfVar6 = pfVar6 + 1;
        } while (iVar4 < (int)param_5);
      }
    }
  }
  return;
}



############ FUN_ 18056e160 size=94 ############

void FUN_18056e160(undefined8 param_1,void *param_2)

{
  uint uVar1;
  undefined8 *puVar2;
  uint *_Memory;
  
  if (param_2 == (void *)0x0) {
    return;
  }
  DeleteCriticalSection((LPCRITICAL_SECTION)((longlong)param_2 + 0x1c));
  puVar2 = *(undefined8 **)((longlong)param_2 + 0x10);
  if (puVar2 != (undefined8 *)0x0) {
    (**(code **)*puVar2)(puVar2,1);
  }
  _Memory = (uint *)(*(longlong *)((longlong)param_2 + 8) + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
                    /* WARNING: Subroutine does not return */
  free(param_2);
}



############ FUN_ 1813bb890 size=249 ############

undefined8 *
FUN_1813bb890(undefined8 *param_1,undefined8 param_2,undefined8 param_3,longlong *param_4,
             undefined8 *param_5)

{
  undefined8 *puVar1;
  longlong *plVar2;
  undefined8 local_68;
  undefined4 local_60;
  undefined1 local_58 [56];
  undefined8 local_20;
  
  local_20 = 0;
  puVar1 = (undefined8 *)param_4[7];
  if (puVar1 != (undefined8 *)0x0) {
    local_20 = (**(code **)*puVar1)(puVar1,local_58,param_3,param_4,0xfffffffffffffffe);
  }
  FUN_1813bbb50(param_1,param_2,param_3,local_58);
  *param_1 = SkewInterpolator::vftable;
  *(undefined4 *)(param_1 + 0xb) = 0x3f800000;
  *(undefined4 *)((longlong)param_1 + 0x5c) = 0x42c80000;
  param_1[0xc] = 0x42700000;
  param_1[0xd] = 0;
  *(undefined4 *)(param_1 + 0xe) = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  local_68 = *param_5;
  local_60 = *(undefined4 *)(param_5 + 1);
  FUN_1813bb6b0(param_1,&local_68);
  plVar2 = (longlong *)param_4[7];
  if (plVar2 != (longlong *)0x0) {
    (**(code **)(*plVar2 + 0x20))(plVar2,plVar2 != param_4);
    param_4[7] = 0;
  }
  return param_1;
}



############ FUN_ 180bd9af0 size=865 ############

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

undefined4 FUN_180bd9af0(longlong param_1,int param_2,undefined8 param_3,int *param_4)

{
  int iVar1;
  undefined1 uVar2;
  undefined4 uVar3;
  undefined *puVar4;
  longlong lVar5;
  longlong lVar6;
  
  iVar1 = _DAT_18260e698;
  LOCK();
  UNLOCK();
  if (DAT_18267028c - (DAT_182670290 + 1) < 0) {
    uVar3 = 2;
    if (DAT_182670294 != 0) {
      uVar3 = 4;
    }
    LOCK();
    UNLOCK();
    return uVar3;
  }
  LOCK();
  _DAT_18260e698 = _DAT_18260e698 + 1;
  UNLOCK();
  if (_DAT_18260e698 != 0 && -2 < iVar1) {
    LOCK();
    UNLOCK();
    LOCK();
    _DAT_18260e698 = iVar1;
    UNLOCK();
    return 0;
  }
  LOCK();
  UNLOCK();
  lVar5 = 0xd0;
  lVar6 = (longlong)(int)(DAT_182670288 & 3) * 0xd0;
  param_1 = param_1 + (longlong)(int)(DAT_182670288 & 3) * -0xd0;
  puVar4 = &DAT_18260f3e0 + lVar6;
  DAT_182670288 = DAT_182670288 + 1;
  DAT_182670290 = DAT_182670290 + 1;
  do {
    puVar4[param_1 + -0x18260f3e0] = *puVar4;
    puVar4[param_1 + -0x18260f3df] = puVar4[1];
    puVar4 = puVar4 + 2;
    lVar5 = lVar5 + -2;
  } while (lVar5 != 0);
  *(undefined8 *)(&DAT_18260f728 + (longlong)param_2 * 8) = param_3;
  (&DAT_18260f480)[lVar6] = DAT_18260f728;
  (&DAT_18260f481)[lVar6] = DAT_18260f729;
  (&DAT_18260f482)[lVar6] = DAT_18260f72a;
  (&DAT_18260f483)[lVar6] = DAT_18260f72b;
  (&DAT_18260f484)[lVar6] = DAT_18260f72c;
  (&DAT_18260f485)[lVar6] = DAT_18260f72d;
  (&DAT_18260f486)[lVar6] = DAT_18260f72e;
  (&DAT_18260f487)[lVar6] = DAT_18260f72f;
  (&DAT_18260f488)[lVar6] = DAT_18260f730;
  (&DAT_18260f489)[lVar6] = DAT_18260f731;
  (&DAT_18260f48a)[lVar6] = DAT_18260f732;
  (&DAT_18260f48b)[lVar6] = DAT_18260f733;
  (&DAT_18260f48c)[lVar6] = DAT_18260f734;
  (&DAT_18260f48d)[lVar6] = DAT_18260f735;
  (&DAT_18260f48e)[lVar6] = DAT_18260f736;
  (&DAT_18260f48f)[lVar6] = DAT_18260f737;
  (&DAT_18260f490)[lVar6] = DAT_18260f738;
  (&DAT_18260f491)[lVar6] = DAT_18260f739;
  (&DAT_18260f492)[lVar6] = DAT_18260f73a;
  (&DAT_18260f493)[lVar6] = DAT_18260f73b;
  (&DAT_18260f494)[lVar6] = DAT_18260f73c;
  (&DAT_18260f495)[lVar6] = DAT_18260f73d;
  (&DAT_18260f496)[lVar6] = DAT_18260f73e;
  uVar2 = DAT_18260f74f;
  (&DAT_18260f497)[lVar6] = DAT_18260f73f;
  (&DAT_18260f498)[lVar6] = DAT_18260f740;
  (&DAT_18260f499)[lVar6] = DAT_18260f741;
  (&DAT_18260f49a)[lVar6] = DAT_18260f742;
  (&DAT_18260f49b)[lVar6] = DAT_18260f743;
  (&DAT_18260f49c)[lVar6] = DAT_18260f744;
  (&DAT_18260f49d)[lVar6] = DAT_18260f745;
  (&DAT_18260f49e)[lVar6] = DAT_18260f746;
  (&DAT_18260f49f)[lVar6] = DAT_18260f747;
  (&DAT_18260f4a0)[lVar6] = DAT_18260f748;
  (&DAT_18260f4a1)[lVar6] = DAT_18260f749;
  (&DAT_18260f4a2)[lVar6] = DAT_18260f74a;
  (&DAT_18260f4a3)[lVar6] = DAT_18260f74b;
  (&DAT_18260f4a4)[lVar6] = DAT_18260f74c;
  (&DAT_18260f4a5)[lVar6] = DAT_18260f74d;
  (&DAT_18260f4a6)[lVar6] = DAT_18260f74e;
  (&DAT_18260f4a7)[lVar6] = uVar2;
  iVar1 = *(int *)(&DAT_18260f478 + lVar6);
  *(int *)(&DAT_18260f478 + lVar6) = iVar1 + 4;
  *param_4 = iVar1 + 4;
  LOCK();
  *(int *)(&DAT_18260f4a8 + lVar6) = *(int *)(&DAT_18260f4a8 + lVar6) + -1;
  UNLOCK();
  LOCK();
  _DAT_18260e698 = _DAT_18260e698 + -1;
  UNLOCK();
  return 1;
}



############ FUN_ 180e401e0 size=11972 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x000180e4307d) */
/* WARNING: Removing unreachable block (ram,0x000180e43085) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_180e401e0(longlong param_1,byte *param_2,byte *param_3,undefined8 param_4,uint param_5,
                  byte *param_6,byte *param_7,uint param_8,undefined8 param_9)

{
  uint uVar1;
  byte *pbVar2;
  byte *pbVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  longlong lVar31;
  byte *pbVar32;
  byte *pbVar33;
  uint uVar34;
  uint uVar35;
  bool bVar36;
  byte bStackX_21;
  byte bStackX_22;
  byte bStackX_23;
  byte bStackX_24;
  byte bStackX_25;
  byte bStackX_26;
  byte bStackX_27;
  undefined1 auStack_5258 [32];
  uint local_5238;
  uint local_5234;
  uint local_5230;
  uint local_522c;
  uint local_5228;
  uint local_5224;
  uint local_5220;
  uint local_521c;
  uint local_5218;
  uint local_5214;
  uint local_5210;
  uint local_520c;
  uint local_5208;
  uint local_5204;
  uint local_5200;
  uint local_51fc;
  uint local_51f8;
  uint local_51f4;
  uint local_51f0;
  uint local_51ec;
  uint local_51e8;
  uint local_51e4;
  uint local_51e0;
  uint local_51dc;
  uint local_51d8;
  uint local_51d4;
  uint local_51d0;
  int local_51cc;
  uint local_51c8;
  uint local_51c4;
  uint local_51c0;
  uint local_51bc;
  uint local_51b8;
  uint local_51b4;
  uint local_51b0;
  uint local_51ac;
  uint local_51a8;
  uint local_51a4;
  uint local_51a0;
  int local_519c;
  uint local_5198;
  uint local_5194;
  uint local_5190;
  uint local_518c;
  uint local_5188;
  uint local_5184;
  uint local_5180;
  uint local_517c;
  uint local_5178;
  uint local_5174;
  uint local_5170;
  uint local_516c;
  uint local_5168;
  uint local_5164;
  uint local_5160;
  uint local_515c;
  uint local_5158;
  uint local_5154;
  uint local_5150;
  uint local_514c;
  uint local_5148;
  uint local_5144;
  uint local_5140;
  uint local_513c;
  uint local_5138;
  uint local_5134;
  uint local_5130;
  uint local_512c;
  uint local_5128;
  uint local_5124;
  uint local_5120;
  uint local_511c;
  uint local_5118;
  uint local_5114;
  uint local_5110;
  uint local_510c;
  uint local_5108;
  uint local_5104;
  uint local_5100;
  uint local_50fc;
  uint local_50f8;
  uint local_50f4;
  uint local_50f0;
  uint local_50ec;
  uint local_50e8;
  uint local_50e4;
  uint local_50e0;
  uint local_50dc;
  uint local_50d8;
  uint local_50d4;
  uint local_50d0;
  uint local_50cc;
  uint local_50c8;
  uint local_50c4;
  uint local_50c0;
  int local_50bc;
  uint local_50b8;
  uint local_50b4;
  uint local_50b0;
  uint local_50ac;
  byte *local_50a8;
  byte *local_50a0;
  longlong local_5098;
  undefined1 local_5088 [20480];
  longlong local_88;
  byte *local_80;
  byte *local_78;
  undefined8 local_70;
  uint local_68;
  byte *local_60;
  byte *local_58;
  uint local_50;
  undefined8 local_48;
  uint *local_40;
  ulonglong local_38;
  undefined8 uStack_30;
  
  uStack_30 = 0x180e40207;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_5258;
  DAT_182671560 = 0;
  _DAT_182671550 = local_5088;
  uVar34 = 0x811c9dc5;
  if (param_1 != 0) {
    lVar31 = 0x34;
    pbVar33 = (byte *)(param_1 + 2);
    do {
      uVar34 = ((((pbVar33[-2] ^ uVar34) * 0x1000193 ^ (uint)pbVar33[-1]) * 0x1000193 ^
                (uint)*pbVar33) * 0x1000193 ^ (uint)pbVar33[1]) * 0x1000193;
      lVar31 = lVar31 + -1;
      pbVar33 = pbVar33 + 4;
    } while (lVar31 != 0);
  }
  if (param_2 != (byte *)0x0) {
    uVar34 = ((((((((((((((((((((((((((((((((uVar34 ^ *param_2) * 0x1000193 ^ (uint)param_2[1]) *
                                           0x1000193 ^ (uint)param_2[2]) * 0x1000193 ^
                                         (uint)param_2[3]) * 0x1000193 ^ (uint)param_2[4]) *
                                        0x1000193 ^ (uint)param_2[5]) * 0x1000193 ^ (uint)param_2[6]
                                      ) * 0x1000193 ^ (uint)param_2[7]) * 0x1000193 ^
                                    (uint)param_2[8]) * 0x1000193 ^ (uint)param_2[9]) * 0x1000193 ^
                                  (uint)param_2[10]) * 0x1000193 ^ (uint)param_2[0xb]) * 0x1000193 ^
                                (uint)param_2[0xc]) * 0x1000193 ^ (uint)param_2[0xd]) * 0x1000193 ^
                              (uint)param_2[0xe]) * 0x1000193 ^ (uint)param_2[0xf]) * 0x1000193 ^
                            (uint)param_2[0x10]) * 0x1000193 ^ (uint)param_2[0x11]) * 0x1000193 ^
                          (uint)param_2[0x12]) * 0x1000193 ^ (uint)param_2[0x13]) * 0x1000193 ^
                        (uint)param_2[0x14]) * 0x1000193 ^ (uint)param_2[0x15]) * 0x1000193 ^
                      (uint)param_2[0x16]) * 0x1000193 ^ (uint)param_2[0x17]) * 0x1000193 ^
                    (uint)param_2[0x18]) * 0x1000193 ^ (uint)param_2[0x19]) * 0x1000193 ^
                  (uint)param_2[0x1a]) * 0x1000193 ^ (uint)param_2[0x1b]) * 0x1000193 ^
                (uint)param_2[0x1c]) * 0x1000193 ^ (uint)param_2[0x1d]) * 0x1000193 ^
              (uint)param_2[0x1e]) * 0x1000193 ^ (uint)param_2[0x1f]) * 0x1000193;
  }
  if (param_3 != (byte *)0x0) {
    uVar34 = ((((((((((((((((((((((((((((((((uVar34 ^ *param_3) * 0x1000193 ^ (uint)param_3[1]) *
                                           0x1000193 ^ (uint)param_3[2]) * 0x1000193 ^
                                         (uint)param_3[3]) * 0x1000193 ^ (uint)param_3[4]) *
                                        0x1000193 ^ (uint)param_3[5]) * 0x1000193 ^ (uint)param_3[6]
                                      ) * 0x1000193 ^ (uint)param_3[7]) * 0x1000193 ^
                                    (uint)param_3[8]) * 0x1000193 ^ (uint)param_3[9]) * 0x1000193 ^
                                  (uint)param_3[10]) * 0x1000193 ^ (uint)param_3[0xb]) * 0x1000193 ^
                                (uint)param_3[0xc]) * 0x1000193 ^ (uint)param_3[0xd]) * 0x1000193 ^
                              (uint)param_3[0xe]) * 0x1000193 ^ (uint)param_3[0xf]) * 0x1000193 ^
                            (uint)param_3[0x10]) * 0x1000193 ^ (uint)param_3[0x11]) * 0x1000193 ^
                          (uint)param_3[0x12]) * 0x1000193 ^ (uint)param_3[0x13]) * 0x1000193 ^
                        (uint)param_3[0x14]) * 0x1000193 ^ (uint)param_3[0x15]) * 0x1000193 ^
                      (uint)param_3[0x16]) * 0x1000193 ^ (uint)param_3[0x17]) * 0x1000193 ^
                    (uint)param_3[0x18]) * 0x1000193 ^ (uint)param_3[0x19]) * 0x1000193 ^
                  (uint)param_3[0x1a]) * 0x1000193 ^ (uint)param_3[0x1b]) * 0x1000193 ^
                (uint)param_3[0x1c]) * 0x1000193 ^ (uint)param_3[0x1d]) * 0x1000193 ^
              (uint)param_3[0x1e]) * 0x1000193 ^ (uint)param_3[0x1f]) * 0x1000193;
  }
  pbVar33 = (byte *)0x2;
  bStackX_21 = (byte)((ulonglong)param_4 >> 8);
  bStackX_22 = (byte)((ulonglong)param_4 >> 0x10);
  bStackX_23 = (byte)((ulonglong)param_4 >> 0x18);
  bStackX_24 = (byte)((ulonglong)param_4 >> 0x20);
  bStackX_25 = (byte)((ulonglong)param_4 >> 0x28);
  bStackX_26 = (byte)((ulonglong)param_4 >> 0x30);
  bStackX_27 = (byte)((ulonglong)param_4 >> 0x38);
  uVar34 = ((((((((((((uVar34 ^ (uint)param_4 & 0xff) * 0x1000193 ^ (uint)bStackX_21) * 0x1000193 ^
                    (uint)bStackX_22) * 0x1000193 ^ (uint)bStackX_23) * 0x1000193 ^ (uint)bStackX_24
                  ) * 0x1000193 ^ (uint)bStackX_25) * 0x1000193 ^ (uint)bStackX_26) * 0x1000193 ^
               (uint)bStackX_27) * 0x1000193 ^ param_5 & 0xff) * 0x1000193 ^ param_5 >> 8 & 0xff) *
             0x1000193 ^ param_5 >> 0x10 & 0xff) * 0x1000193 ^ param_5 >> 0x18) * 0x1000193;
  pbVar2 = param_7;
  pbVar3 = param_7;
  if (param_6 != (byte *)0x0) {
    lVar31 = 2;
    pbVar32 = param_6;
    do {
      uVar34 = ((((((((((((((((((((((((((((((((((((((((((((((((uVar34 ^ *pbVar32) * 0x1000193 ^
                                                             (uint)pbVar32[1]) * 0x1000193 ^
                                                            (uint)pbVar32[2]) * 0x1000193 ^
                                                           (uint)pbVar32[3]) * 0x1000193 ^
                                                          (uint)pbVar32[4]) * 0x1000193 ^
                                                         (uint)pbVar32[5]) * 0x1000193 ^
                                                        (uint)pbVar32[6]) * 0x1000193 ^
                                                       (uint)pbVar32[7]) * 0x1000193 ^
                                                      (uint)pbVar32[8]) * 0x1000193 ^
                                                     (uint)pbVar32[9]) * 0x1000193 ^
                                                    (uint)pbVar32[10]) * 0x1000193 ^
                                                   (uint)pbVar32[0xb]) * 0x1000193 ^
                                                  (uint)pbVar32[0xc]) * 0x1000193 ^
                                                 (uint)pbVar32[0xd]) * 0x1000193 ^
                                                (uint)pbVar32[0xe]) * 0x1000193 ^ (uint)pbVar32[0xf]
                                               ) * 0x1000193 ^ (uint)pbVar32[0x10]) * 0x1000193 ^
                                             (uint)pbVar32[0x11]) * 0x1000193 ^ (uint)pbVar32[0x12])
                                            * 0x1000193 ^ (uint)pbVar32[0x13]) * 0x1000193 ^
                                          (uint)pbVar32[0x14]) * 0x1000193 ^ (uint)pbVar32[0x15]) *
                                         0x1000193 ^ (uint)pbVar32[0x16]) * 0x1000193 ^
                                       (uint)pbVar32[0x17]) * 0x1000193 ^ (uint)pbVar32[0x18]) *
                                      0x1000193 ^ (uint)pbVar32[0x19]) * 0x1000193 ^
                                    (uint)pbVar32[0x1a]) * 0x1000193 ^ (uint)pbVar32[0x1b]) *
                                   0x1000193 ^ (uint)pbVar32[0x1c]) * 0x1000193 ^
                                 (uint)pbVar32[0x1d]) * 0x1000193 ^ (uint)pbVar32[0x1e]) * 0x1000193
                               ^ (uint)pbVar32[0x1f]) * 0x1000193 ^ (uint)pbVar32[0x20]) * 0x1000193
                             ^ (uint)pbVar32[0x21]) * 0x1000193 ^ (uint)pbVar32[0x22]) * 0x1000193 ^
                           (uint)pbVar32[0x23]) * 0x1000193 ^ (uint)pbVar32[0x24]) * 0x1000193 ^
                         (uint)pbVar32[0x25]) * 0x1000193 ^ (uint)pbVar32[0x26]) * 0x1000193 ^
                       (uint)pbVar32[0x27]) * 0x1000193 ^ (uint)pbVar32[0x28]) * 0x1000193 ^
                     (uint)pbVar32[0x29]) * 0x1000193 ^ (uint)pbVar32[0x2a]) * 0x1000193 ^
                   (uint)pbVar32[0x2b]) * 0x1000193 ^ (uint)pbVar32[0x2c]) * 0x1000193 ^
                 (uint)pbVar32[0x2d]) * 0x1000193 ^ (uint)pbVar32[0x2e]) * 0x1000193 ^
               (uint)pbVar32[0x2f]) * 0x1000193;
      lVar31 = lVar31 + -1;
      pbVar32 = pbVar32 + 0x30;
    } while (lVar31 != 0);
  }
  while (pbVar3 != (byte *)0x0) {
    uVar34 = ((((((((((((((((((((((((((((((((((((((((((((((((uVar34 ^ *pbVar2) * 0x1000193 ^
                                                           (uint)pbVar2[1]) * 0x1000193 ^
                                                          (uint)pbVar2[2]) * 0x1000193 ^
                                                         (uint)pbVar2[3]) * 0x1000193 ^
                                                        (uint)pbVar2[4]) * 0x1000193 ^
                                                       (uint)pbVar2[5]) * 0x1000193 ^
                                                      (uint)pbVar2[6]) * 0x1000193 ^ (uint)pbVar2[7]
                                                     ) * 0x1000193 ^ (uint)pbVar2[8]) * 0x1000193 ^
                                                   (uint)pbVar2[9]) * 0x1000193 ^ (uint)pbVar2[10])
                                                  * 0x1000193 ^ (uint)pbVar2[0xb]) * 0x1000193 ^
                                                (uint)pbVar2[0xc]) * 0x1000193 ^ (uint)pbVar2[0xd])
                                               * 0x1000193 ^ (uint)pbVar2[0xe]) * 0x1000193 ^
                                             (uint)pbVar2[0xf]) * 0x1000193 ^ (uint)pbVar2[0x10]) *
                                            0x1000193 ^ (uint)pbVar2[0x11]) * 0x1000193 ^
                                          (uint)pbVar2[0x12]) * 0x1000193 ^ (uint)pbVar2[0x13]) *
                                         0x1000193 ^ (uint)pbVar2[0x14]) * 0x1000193 ^
                                       (uint)pbVar2[0x15]) * 0x1000193 ^ (uint)pbVar2[0x16]) *
                                      0x1000193 ^ (uint)pbVar2[0x17]) * 0x1000193 ^
                                    (uint)pbVar2[0x18]) * 0x1000193 ^ (uint)pbVar2[0x19]) *
                                   0x1000193 ^ (uint)pbVar2[0x1a]) * 0x1000193 ^ (uint)pbVar2[0x1b])
                                 * 0x1000193 ^ (uint)pbVar2[0x1c]) * 0x1000193 ^ (uint)pbVar2[0x1d])
                               * 0x1000193 ^ (uint)pbVar2[0x1e]) * 0x1000193 ^ (uint)pbVar2[0x1f]) *
                             0x1000193 ^ (uint)pbVar2[0x20]) * 0x1000193 ^ (uint)pbVar2[0x21]) *
                           0x1000193 ^ (uint)pbVar2[0x22]) * 0x1000193 ^ (uint)pbVar2[0x23]) *
                         0x1000193 ^ (uint)pbVar2[0x24]) * 0x1000193 ^ (uint)pbVar2[0x25]) *
                       0x1000193 ^ (uint)pbVar2[0x26]) * 0x1000193 ^ (uint)pbVar2[0x27]) * 0x1000193
                    ^ (uint)pbVar2[0x28]) * 0x1000193 ^ (uint)pbVar2[0x29]) * 0x1000193 ^
                  (uint)pbVar2[0x2a]) * 0x1000193 ^ (uint)pbVar2[0x2b]) * 0x1000193 ^
                (uint)pbVar2[0x2c]) * 0x1000193 ^ (uint)pbVar2[0x2d]) * 0x1000193 ^
              (uint)pbVar2[0x2e]) * 0x1000193 ^ (uint)pbVar2[0x2f]) * 0x1000193;
    pbVar33 = pbVar33 + -1;
    pbVar2 = pbVar2 + 0x30;
    pbVar3 = pbVar33;
  }
  DAT_182671598 = 0x22f476bc;
  DAT_1826715a8 = 0xe289ed40;
  DAT_182671580 = 0x25ceed55;
  DAT_182671568 = 0x19c60988;
  DAT_182671570 = 0x33a18377;
  DAT_182671578 = 0x42430808;
  DAT_182671584 = 0xf21d4a00;
  DAT_182671574 = 0x70232370;
  DAT_182671588 = 0x29758d31;
  DAT_1826715a0 = 0xa2a1cf8e;
  DAT_1826715ac = 0xa7fef6bf;
  DAT_1826715b0 = 0x4d678cff;
  DAT_18267159c = 0xd75aa16a;
  DAT_182671590 = 0x1d7612bf;
  DAT_1826715b4 = 0x23707023;
  uVar18 = (((uVar34 ^ param_8 & 0xff) * 0x1000193 ^ param_8 >> 8 & 0xff) * 0x1000193 ^
           param_8 >> 0x10 & 0xff) * 0x1000193 ^ param_8 >> 0x18;
  DAT_18267156c = 0xb05e4208;
  DAT_18267162c = uVar18 * 0x1000193;
  DAT_18267157c = 0x21448d11;
  DAT_18267158c = 0xa2f5ffbe;
  DAT_182671594 = 0x26a601e;
  DAT_1826715a4 = 0xb2987300;
  uVar4 = uVar18 * -0x109278ff;
  uVar35 = DAT_18267162c | 0x763054ff;
  uVar25 = DAT_18267162c + 0x287d190f & 0xff0000;
  uVar5 = DAT_18267162c & 0x8172ef56;
  DAT_182671668 = DAT_18267162c ^ 0xd88a38d9;
  uVar23 = DAT_18267162c ^ 0x263c990b;
  local_51a4 = DAT_18267162c ^ 0x3e4eb274;
  DAT_182671624 = DAT_18267162c | 0x5ff6740f;
  DAT_182671650 =
       (uVar35 & 0xff0000 | uVar35 >> 0x10) >> 8 | (uVar35 << 0x10 | uVar35 & 0xff00) << 8;
  uVar26 = (uVar25 | DAT_18267162c + 0x287d190f >> 0x10) >> 8;
  uVar6 = DAT_18267162c + 0x287d190f & 0xff00;
  uVar19 = (DAT_18267162c + 0x287d190f) * 0x10000;
  DAT_182671794 = uVar26 | (uVar19 | uVar6) << 8;
  DAT_1826716e0 = uVar18 * -0x5d3768c4;
  DAT_1826715c0 = DAT_18267162c ^ 0xbc56d37a;
  DAT_182671750 = DAT_18267162c | 0x578f8a65;
  uVar27 = DAT_18267162c & 0xff0000;
  DAT_1826715bc = DAT_18267162c + 0x32dfe201;
  uVar20 = DAT_18267162c & 0xff00;
  uVar7 = DAT_18267162c ^ 0xb6a40919;
  uVar34 = DAT_18267162c | 0xacb7517f;
  uVar8 = DAT_18267162c & 0xefa5f0a0;
  uVar9 = uVar18 * 0x1930000;
  uVar28 = (uVar27 | DAT_18267162c >> 0x10) >> 8;
  DAT_1826716b0 = uVar28 | (uVar20 | uVar9) << 8;
  uVar10 = DAT_18267162c + 0x33531219 & 0xa1184eaf;
  DAT_182671844 = DAT_18267162c ^ 0xa3f8ca45;
  uVar11 = DAT_18267162c + 0x287d190f | 0x6b860c94;
  uVar12 = local_51a4 & 3;
  if (uVar12 < 2) {
    uVar15 = 0x6804327;
    bVar36 = uVar12 == 0;
    uVar13 = local_51a4;
  }
  else {
    uVar15 = 0xc4b5f65a;
    uVar13 = 0x9758e139;
    bVar36 = uVar12 < 3;
  }
  if (bVar36) {
    uVar15 = uVar13;
  }
  _DAT_182671618 = uVar23 * -0x4acf7e62;
  uVar12 = uVar35 & 3;
  if (uVar12 < 2) {
    DAT_1826718a4 = 0xc00095fc;
    if (uVar12 == 0) {
      DAT_1826718a4 = uVar35;
    }
  }
  else {
    DAT_1826718a4 = 0xb35e947f;
    if (uVar12 < 3) {
      DAT_1826718a4 = 0xab2e0b93;
    }
  }
  uVar12 = DAT_182671624 << 0x10 | DAT_182671624 >> 0x10;
  DAT_182671648 = DAT_18267162c | 0x41f99d6c;
  DAT_1826718a0 = uVar34 * -0x53897903;
  uVar13 = DAT_1826715c0 & 7;
  if (uVar13 < 4) {
    if (1 < uVar13) {
      uVar24 = 0x4464abdb;
      uVar21 = 0xe97f66fe;
      bVar36 = uVar13 < 3;
      goto LAB_180e40fe4;
    }
    uVar24 = 0x717a4884;
    if (uVar13 == 0) {
      uVar24 = DAT_1826715c0;
    }
  }
  else {
    if (uVar13 < 6) {
      uVar24 = 0x9c6e9a08;
      uVar21 = 0xe8da001f;
      bVar36 = uVar13 < 5;
    }
    else {
      uVar24 = 0x395d8879;
      uVar21 = 0xb3a20980;
      bVar36 = uVar13 < 7;
    }
LAB_180e40fe4:
    if (bVar36) {
      uVar24 = uVar21;
    }
  }
  DAT_18267168c = DAT_18267162c + 0x32dfe201 ^ 0x7ec338ad;
  DAT_1826716d4 = DAT_18267162c ^ 0xa9d22f9a;
  uVar13 = uVar18 * 0x1930000;
  uVar21 = DAT_18267162c >> 0x10;
  DAT_182671660 = uVar13 | uVar21;
  uVar14 = uVar18 * 0x108c93e4;
  DAT_182671744 = (uVar8 << 0x10 | uVar8 >> 0x10) ^ 0x6b4f597d;
  DAT_182671638 = DAT_182671650 * -0x4e72c448;
  DAT_1826716e8 = DAT_1826716b0 ^ 0x684e17ad;
  uVar1 = 0xdf0ce238;
  if ((DAT_18267162c + 0x33531219 & 1) == 0) {
    uVar1 = DAT_18267162c + 0x33531219;
  }
  DAT_1826718ac = uVar15 & 0x74677e32;
  DAT_1826717c4 = uVar35 + 0xeb1476d1;
  DAT_182671698 = uVar18 * 0x41ed411c;
  DAT_182671804 = _DAT_182671618 + 0x270669cf;
  uVar15 = uVar34 * -0x79030000;
  uVar22 = (DAT_1826718a0 & 0xff0000 | DAT_1826718a0 >> 0x10) >> 8;
  DAT_18267186c = 0x6f16c0a2;
  DAT_18267165c = uVar22 | (uVar15 | DAT_1826718a0 & 0xff00) << 8;
  DAT_1826716e4 = uVar34 + 0x7f9a7fa4;
  _DAT_182671610 = 0x35c90425;
  if ((uVar21 & 1) == 0) {
    _DAT_182671610 = DAT_182671660;
  }
  DAT_182671774 = DAT_182671750 & 0xf36f3c19;
  uVar16 = DAT_1826716e0 & 7;
  uVar17 = 0x5bc73e5;
  if (uVar16 < 4) {
    if (uVar16 < 2) {
      DAT_18267186c = 0x6dd7d81d;
      if (uVar16 == 0) {
        DAT_18267186c = DAT_1826716e0;
      }
      goto LAB_180e41306;
    }
    uVar17 = 0xe880f7d0;
    DAT_18267186c = 0x6e792993;
    bVar36 = uVar16 < 3;
  }
  else if (uVar16 < 6) {
    uVar17 = 0x73628c9b;
    bVar36 = uVar16 < 5;
  }
  else {
    DAT_18267186c = 0xb32f8b34;
    bVar36 = uVar16 < 7;
  }
  if (bVar36) {
    DAT_18267186c = uVar17;
  }
LAB_180e41306:
  uVar29 = (uVar20 << 8 | (uVar9 & 0xffffff) >> 8) >> 8;
  DAT_1826716ac = uVar29 | (uVar28 << 0x10 | uVar27 >> 8) << 8;
  DAT_18267176c =
       (DAT_1826716d4 & 0xff0000 | DAT_1826716d4 >> 0x10) >> 8 |
       (DAT_1826716d4 << 0x10 | DAT_1826716d4 & 0xff00) << 8;
  local_5124 = uVar24 | 0xd85c7459;
  uVar30 = (DAT_18267168c & 0xff0000 | DAT_18267168c >> 0x10) >> 8 |
           (DAT_18267168c << 0x10 | DAT_18267168c & 0xff00) << 8;
  DAT_18267172c = DAT_182671668 * -0x287d190f;
  DAT_182671758 =
       (uVar14 & 0xff0000 | uVar14 >> 0x10) >> 8 | (uVar18 * -0x6c1c0000 | uVar14 & 0xff00) << 8;
  local_5110 = uVar21 << 0x10 | uVar13 >> 0x10;
  DAT_182671640 = DAT_182671744 & 0x5ff6740f;
  DAT_1826716a4 = DAT_1826717c4 * -0x39334973;
  uVar14 = uVar11 ^ 0x71581743;
  DAT_182671770 = DAT_18267162c + 0x32dfe201 & 0x48d616d8 ^ 0x4930a48a;
  uVar16 = uVar12 ^ 0x7739e2b6;
  DAT_1826717e0 =
       ((uVar7 & 0xff0000 | uVar7 >> 0x10) >> 8) << 0x10 |
       ((uVar7 & 0xff) << 0x10 | uVar7 & 0xff00) >> 8;
  DAT_182671834 = DAT_18267162c + 0xd740affa | 0x93cb5885;
  DAT_1826716c4 = ~uVar8;
  DAT_182671890 = uVar11 * 0x4fedd7ea;
  DAT_182671788 = DAT_1826716b0 ^ 0xacfbe1f7;
  uVar8 = uVar18 * -0x7efa09f8 >> 0x10;
  DAT_1826716cc = uVar18 * -0x9f80000 | uVar8;
  DAT_1826718c0 = local_51a4 * 0x29ba4c02 & 0xb18d3bb8;
  DAT_182671894 = DAT_1826718ac << 0x10 | DAT_1826718ac >> 0x10;
  _DAT_1826715d8 = uVar1 & (uVar26 << 0x10 | (uVar19 & 0xffffff | uVar6) >> 8);
  uVar17 = DAT_182671804 &
           ((DAT_182671624 & 0xff0000 | DAT_182671624 >> 0x10) >> 8 |
           (DAT_182671624 << 0x10 | DAT_182671624 & 0xff00) << 8);
  DAT_1826717d4 = uVar35 ^ DAT_18267162c + 0x287d190f;
  DAT_1826717b8 = DAT_1826716e0 ^ 0xa2959a3b ^ DAT_182671698;
  DAT_1826715f4 = (uVar18 * 0x3150d251 ^ 0xa45ad40f) & uVar12 * -0x77765bbd;
  DAT_182671874 = DAT_1826716e4 * 0x10000 | DAT_1826716e4 >> 0x10;
  DAT_18267170c =
       (DAT_182671648 & 0xff0000 | DAT_182671648 >> 0x10) >> 8 |
       (DAT_182671648 << 0x10 | DAT_182671648 & 0xff00) << 8;
  uVar12 = DAT_18267162c + 0xdfbe8bed & 7;
  if (uVar12 < 4) {
    if (uVar12 < 2) {
      uVar34 = DAT_18267162c;
      if (uVar12 == 0) {
        uVar34 = DAT_18267162c + 0xdfbe8bed;
      }
    }
    else {
      uVar34 = DAT_1826715c0 | 0x327277f2;
      if (uVar12 < 3) {
        uVar34 = 0x91cb0201;
      }
    }
  }
  else {
    if (uVar12 < 6) {
      bVar36 = uVar12 < 5;
      uVar12 = 0x6f16c0a2;
    }
    else {
      bVar36 = uVar12 < 7;
      uVar34 = 0x5bc73e5;
      uVar12 = 0x6dd7d81d;
    }
    if (bVar36) {
      uVar34 = uVar12;
    }
  }
  DAT_182671678 = (uVar27 | (uVar28 << 0x10 & 0xffffff) >> 8) >> 8 | (uVar29 << 0x10 | uVar20) << 8;
  DAT_1826715b8 = uVar28 << 0x10 | (uVar20 | uVar9 & 0xffffff) >> 8;
  uVar9 = (DAT_18267168c >> 0x10 & 0x300) >> 8;
  if (uVar9 < 2) {
    local_51a8 = DAT_182671660;
    if (uVar9 == 0) {
      local_51a8 = uVar30;
    }
  }
  else {
    local_51a8 = DAT_18267186c;
    if (uVar9 < 3) {
      local_51a8 = DAT_18267168c;
    }
  }
  DAT_1826717a8 = ~DAT_18267162c;
  uVar20 = DAT_18267162c & 0x241239d3 ^ DAT_18267162c;
  DAT_18267169c = local_5110 ^ DAT_182671750 + 0x9bf886a6;
  DAT_182671688 = (uVar7 & 0xa1184eaf) * (DAT_18267162c & 0x20101003);
  DAT_182671854 =
       (DAT_18267162c + 0x32dfe201 & 0xff0000 | DAT_18267162c + 0x32dfe201 >> 0x10) >> 8 |
       ((DAT_18267162c + 0x32dfe201) * 0x10000 | DAT_18267162c + 0x32dfe201 & 0xff00) << 8;
  DAT_1826718b8 = uVar18 * -0x7efa09f8 + DAT_182671788;
  DAT_18267184c = uVar11 * 0x9e28a8b - DAT_1826716e8;
  local_51c0 = uVar5 - uVar10;
  uVar27 = (uVar14 & 0xff0000 | uVar14 >> 0x10) >> 8;
  uVar9 = DAT_1826717c4 * -0x49730000;
  uVar12 = DAT_1826716a4 >> 0x10;
  DAT_182671680 = uVar9 | uVar12;
  DAT_182671880 = uVar27 | (uVar14 << 0x10 | uVar14 & 0xff00) << 8;
  DAT_18267182c = DAT_1826716b0 - (uVar5 << 0x10 | uVar5 >> 0x10);
  DAT_1826717b0 = (DAT_18267162c + 0x13ad48fa) * -0x3f912a49 * DAT_1826718c0;
  DAT_182671888 = DAT_1826718ac - uVar1;
  DAT_182671818 = uVar23 * -0x7e620000 | _DAT_182671618 >> 0x10;
  DAT_1826718bc =
       (DAT_1826717c4 & 0xff0000 | DAT_1826717c4 >> 0x10) >> 8 |
       (DAT_1826717c4 * 0x10000 | DAT_1826717c4 & 0xff00) << 8;
  DAT_1826718a8 = uVar16 * DAT_1826717d4;
  DAT_18267179c = DAT_182671874 & DAT_182671698;
  uVar5 = DAT_18267162c + 0x287d190f & 7;
  if (uVar5 < 4) {
    if (uVar5 < 2) {
      if (uVar5 == 0) {
        DAT_182671624 = DAT_18267162c + 0x287d190f;
      }
    }
    else {
      DAT_182671624 = DAT_182671794;
      if (uVar5 < 3) {
        DAT_182671624 = uVar34;
      }
    }
  }
  else if (uVar5 < 6) {
    DAT_182671624 = DAT_18267162c | 0x77f9fffe;
    if (uVar5 < 5) {
      DAT_182671624 = DAT_1826715f4;
    }
  }
  else {
    DAT_182671624 = DAT_1826716e0;
    if (uVar5 < 7) {
      DAT_182671624 = DAT_18267162c;
    }
  }
  DAT_182671600 = DAT_1826716b0 & DAT_18267176c;
  uVar34 = (DAT_182671648 >> 0x10 & 0x700) >> 8;
  if (uVar34 < 4) {
    if (uVar34 < 2) {
      if (uVar34 == 0) {
        DAT_182671648 = DAT_18267170c;
      }
    }
    else {
      DAT_182671648 = DAT_182671660;
      if (uVar34 < 3) {
        DAT_182671648 = DAT_182671678;
      }
    }
  }
  else if (uVar34 < 6) {
    DAT_182671648 = DAT_1826716e4;
    if (uVar34 < 5) {
      DAT_182671648 = DAT_18267165c;
    }
  }
  else {
    DAT_182671648 = DAT_182671774;
    if (uVar34 < 7) {
      DAT_182671648 = ~(uVar18 * 0x3150d251);
    }
  }
  DAT_1826717c0 = local_51a8 & DAT_18267162c;
  DAT_1826716c8 = DAT_1826715b8 ^ uVar18 * -0x1a4ba38d;
  DAT_1826718d4 = uVar30 ^ DAT_18267168c;
  _DAT_1826716c0 = (DAT_182671750 ^ DAT_18267162c) * DAT_182671660;
  DAT_1826716f8 =
       (uVar18 * -0x1a4ba38d -
       ((uVar4 & 0xff0000 | uVar4 >> 0x10) >> 8 | (uVar18 * -0x78ff0000 | uVar4 & 0xff00) << 8 |
       0x88c9019b)) * local_5124;
  uVar34 = DAT_18267186c & 7;
  if (uVar34 < 4) {
    if (uVar34 < 2) {
      DAT_1826716b4 = DAT_18267162c & 0x241239d3;
      if (uVar34 == 0) {
        DAT_1826716b4 = DAT_18267186c;
      }
    }
    else {
      DAT_1826716b4 = DAT_182671668;
      if (uVar34 < 3) {
        DAT_1826716b4 = DAT_1826717a8;
      }
    }
  }
  else if (uVar34 < 6) {
    DAT_1826716b4 = _DAT_182671610;
    if (uVar34 < 5) {
      DAT_1826716b4 = uVar20;
    }
  }
  else {
    DAT_1826716b4 = DAT_18267162c;
    if (uVar34 < 7) {
      DAT_1826716b4 = DAT_182671758;
    }
  }
  DAT_18267167c = DAT_18267172c | uVar24;
  DAT_182671614 = local_5110 + DAT_182671640;
  DAT_182671790 = DAT_18267169c & uVar7;
  DAT_1826717fc = (DAT_18267162c & 0x20101003) - (uVar7 & 0xa1184eaf);
  DAT_182671710 = ~(DAT_182671660 | 0x8172ef56);
  DAT_1826718d0 = DAT_182671844 + DAT_18267162c;
  if ((uVar21 & 1) == 0) {
    DAT_1826718d0 = DAT_182671660;
  }
  DAT_182671700 = uVar7 + DAT_182671744 | DAT_18267162c ^ 0x46d40627;
  DAT_1826717f4 = ~DAT_1826717e0;
  DAT_18267166c =
       (DAT_182671744 & 0xff0000 | DAT_182671744 >> 0x10) >> 8 |
       (DAT_182671744 << 0x10 | DAT_182671744 & 0xff00) << 8;
  DAT_182671800 = DAT_1826716e8;
  if (((DAT_1826717e0 | DAT_182671650) & 1) == 0) {
    DAT_182671800 = DAT_1826717e0 | DAT_182671650;
  }
  DAT_182671864 = ~(DAT_1826716cc & DAT_18267162c + 0xd740affa);
  uVar8 = uVar8 & 7;
  if (uVar8 < 4) {
    if (uVar8 < 2) {
      DAT_18267189c = DAT_182671788;
      if (uVar8 == 0) {
        DAT_18267189c = DAT_1826716cc;
      }
    }
    else {
      DAT_18267189c = DAT_182671890;
      if (uVar8 < 3) {
        DAT_18267189c = DAT_18267162c;
      }
    }
  }
  else if (uVar8 < 6) {
    DAT_18267189c = DAT_18267162c + 0x32dfe201;
    if (uVar8 < 5) {
      DAT_18267189c = DAT_182671854;
    }
  }
  else {
    DAT_18267189c = uVar11 * 0x9e28a8b;
    if (uVar8 < 7) {
      DAT_18267189c = DAT_182671890 * DAT_1826716c4;
    }
  }
  uVar34 = DAT_18267184c >> 0x10;
  DAT_18267173c = DAT_18267184c * 0x10000 | uVar34;
  local_51f8 = ~(DAT_182671650 ^ 0x9b457a45 | 0x6cdb3833);
  DAT_18267185c = DAT_182671880 * DAT_1826716b0;
  DAT_1826718b4 = uVar1 ^ DAT_182671680;
  DAT_182671654 = DAT_1826718c0 ^ DAT_1826718bc;
  DAT_1826717a0 = DAT_1826717b0 + DAT_18267162c;
  DAT_18267178c = DAT_1826718ac + DAT_182671888;
  DAT_182671608 =
       (uVar17 & 0xff0000 | uVar17 >> 0x10) >> 8 | (uVar17 << 0x10 | uVar17 & 0xff00) << 8;
  DAT_182671644 = _DAT_1826715d8 | _DAT_182671618;
  DAT_182671630 = DAT_182671818;
  if ((DAT_1826717b8 & 1) == 0) {
    DAT_182671630 = DAT_1826717b8;
  }
  uVar4 = DAT_1826718a8 >> 0x10;
  DAT_18267181c = DAT_1826718a8 * 0x10000 | uVar4;
  _DAT_1826715f0 =
       (DAT_1826717d4 & 0xff0000 | DAT_1826717d4 >> 0x10) >> 8 |
       (DAT_1826717d4 << 0x10 | DAT_1826717d4 & 0xff00) << 8;
  DAT_1826716d8 = uVar16 << 0x10 | uVar16 >> 0x10;
  DAT_182671724 = DAT_1826715f4 ^ DAT_18267179c;
  DAT_182671718 = uVar26 << 0x10 | (uVar19 & 0xffffff | uVar6) >> 8;
  DAT_1826715cc = ~DAT_182671698;
  DAT_1826715d0 =
       (DAT_182671624 & 0xff0000 | DAT_182671624 >> 0x10) >> 8 |
       (DAT_182671624 << 0x10 | DAT_182671624 & 0xff00) << 8;
  DAT_182671620 = DAT_182671874 | DAT_18267162c | 0x77f9fffe;
  DAT_182671840 = DAT_18267176c | DAT_1826718a4;
  if (uVar5 < 4) {
    if (uVar5 < 2) {
      DAT_18267170c = DAT_182671600;
      if (uVar5 == 0) {
        DAT_18267170c = DAT_18267162c + 0x287d190f;
      }
    }
    else {
      DAT_18267170c = DAT_182671660;
      if (uVar5 < 3) {
        DAT_18267170c = DAT_182671774;
      }
    }
  }
  else if (uVar5 < 6) {
    if (uVar5 < 5) {
      DAT_18267170c = DAT_1826716e0 * uVar23;
    }
  }
  else {
    DAT_18267170c = DAT_1826715c0;
    if (uVar5 < 7) {
      DAT_18267170c = DAT_1826716e4;
    }
  }
  DAT_182671604 = DAT_1826716ac | DAT_182671648;
  DAT_1826718b0 = local_51a8 + DAT_18267162c;
  DAT_1826717dc = DAT_1826716f8 & uVar30;
  DAT_18267160c = local_5124 + DAT_18267162c;
  DAT_182671760 =
       ((DAT_1826718a0 & 0xff00) << 8 | (uVar15 & 0xffffff) >> 8) >> 8 |
       (uVar22 << 0x10 | (DAT_1826718a0 & 0xff0000) >> 8) << 8;
  DAT_182671684 = local_51a4 + DAT_182671750;
  DAT_18267175c = _DAT_1826716c0 - uVar20;
  DAT_1826716a8 = DAT_1826716b4 ^ DAT_18267172c;
  _DAT_182671610 = _DAT_182671610 ^ DAT_182671668;
  _DAT_18267161c = DAT_182671834 + (DAT_18267162c ^ 0x46d40627) & DAT_18267166c;
  _DAT_18267188c = DAT_182671770 ^ DAT_182671844;
  DAT_1826715c8 = DAT_1826717f4 ^ DAT_182671800;
  DAT_1826716b8 = DAT_1826716c4 + DAT_182671788;
  DAT_1826717d8 = (uVar18 * 0x6e153819 | DAT_182671834) + DAT_182671854;
  DAT_1826718c4 = (DAT_1826716b0 * 0x38d28285 | ~(uVar10 + 0xe9e114a)) - DAT_182671834;
  DAT_182671768 = DAT_1826718b8 - DAT_18267182c;
  _DAT_182671868 = uVar7 + DAT_182671744 ^ DAT_182671638;
  DAT_182671628 =
       ((uVar6 << 8 | (uVar19 & 0xffffff) >> 8) >> 8 | (uVar26 << 0x10 | uVar25 >> 8) << 8) +
       DAT_182671880;
  DAT_182671690 = DAT_18267185c ^ local_51c0;
  uVar5 = DAT_1826717b0 + DAT_18267162c;
  DAT_182671810 = local_51f8;
  if ((DAT_18267162c >> 0x10 & 0x100) == 0) {
    DAT_182671810 = DAT_1826716b0;
  }
  DAT_18267183c = DAT_1826718c0 << 0x10 | DAT_1826718c0 >> 0x10;
  DAT_182671778 = uVar12 << 0x10 | uVar9 >> 0x10;
  DAT_182671670 = uVar12 << 0x10 | uVar9 >> 0x10;
  DAT_182671664 = uVar5 * 0x10000 | uVar5 >> 0x10;
  _DAT_182671838 = DAT_18267162c - DAT_1826718ac;
  DAT_1826717ac = DAT_1826717b8 ^ DAT_1826717b0;
  DAT_18267180c = DAT_182671804 | _DAT_182671618;
  DAT_1826715f8 = DAT_182671654 | DAT_1826718bc;
  DAT_18267177c = DAT_182671888 - DAT_182671608;
  DAT_182671658 = DAT_18267178c + DAT_182671894;
  DAT_182671808 = DAT_182671630 ^ DAT_182671818 ^ 0x53afb5fa;
  DAT_182671798 =
       (DAT_1826718a8 * 0x10000 & 0xff0000 | DAT_1826718a8 & 0xffff) >> 8 |
       (uVar4 << 0x10 | uVar4 & 0xff00) << 8;
  DAT_182671740 = DAT_1826717d4 ^ _DAT_1826715d8;
  DAT_1826716a0 = DAT_182671644 + DAT_182671698;
  DAT_182671870 = DAT_1826716e0 | DAT_182671724;
  _DAT_1826715e0 = DAT_1826715d0 * DAT_1826715f4;
  uVar4 = DAT_1826718a8 & 3;
  if (uVar4 < 2) {
    DAT_182671830 = DAT_1826716d8;
    if (uVar4 == 0) {
      DAT_182671830 = DAT_1826718a8;
    }
  }
  else {
    DAT_182671830 = _DAT_1826715f0;
    if (uVar4 < 3) {
      DAT_182671830 = DAT_18267179c;
    }
  }
  DAT_182671748 = DAT_182671624 & DAT_182671718 ^ 0x9209fefe;
  uVar4 = DAT_1826716e4 >> 0x10 & 3;
  if (uVar4 < 2) {
    DAT_18267164c = DAT_182671678;
    if (uVar4 == 0) {
      DAT_18267164c = DAT_182671874;
    }
  }
  else {
    DAT_18267164c = DAT_18267176c;
    if (uVar4 < 3) {
      DAT_18267164c = DAT_182671620;
    }
  }
  DAT_1826717b4 = DAT_1826716e4 | DAT_182671648;
  DAT_182671784 = DAT_1826716ac & DAT_182671794;
  DAT_1826716ec = DAT_182671840 & DAT_1826715cc;
  DAT_1826717cc = DAT_182671774 & DAT_182671604;
  DAT_182671674 = (local_51a8 + DAT_18267162c) - DAT_1826717c0;
  uVar4 = uVar21 & 3;
  if (uVar4 < 2) {
    DAT_1826716dc = DAT_1826716b0;
    if (uVar4 == 0) {
      DAT_1826716dc = DAT_182671660;
    }
  }
  else {
    DAT_1826716dc = DAT_18267170c;
    if (uVar4 < 3) {
      DAT_1826716dc = DAT_182671600;
    }
  }
  _DAT_1826715dc = DAT_1826715b8 | DAT_1826715c0;
  DAT_1826716f0 = DAT_1826716d4 & DAT_18267162c;
  DAT_1826715c4 = DAT_18267175c & DAT_1826718d4;
  DAT_1826717d0 = DAT_182671758 * DAT_18267165c;
  DAT_1826716f4 = DAT_182671750 << 0x10 | DAT_182671750 >> 0x10;
  DAT_182671754 = (local_51a4 + DAT_182671750) * DAT_1826716a8;
  uVar4 = local_5124 + DAT_18267162c;
  DAT_182671820 = DAT_1826717dc & DAT_1826716c8;
  DAT_182671828 = DAT_1826716f8 ^ DAT_18267168c;
  DAT_1826717e4 = _DAT_1826716c0 * DAT_182671660;
  DAT_1826717a4 = DAT_182671790 | DAT_182671668;
  DAT_1826715e4 = (uVar4 & 0xff0000 | uVar4 >> 0x10) >> 8 | (uVar4 * 0x10000 | uVar4 & 0xff00) << 8;
  DAT_1826715fc = DAT_18267167c + _DAT_182671610;
  DAT_1826716bc =
       (uVar13 & 0xff0000 | uVar13 >> 0x10) >> 8 | (uVar21 << 0x10 | uVar21 & 0xff00) << 8;
  DAT_182671714 = DAT_18267172c * DAT_1826718d0;
  DAT_182671634 = DAT_1826717a8 & DAT_18267186c;
  DAT_1826715ec = local_5110 + DAT_182671640 + DAT_18267166c;
  DAT_182671728 = DAT_1826717fc & DAT_1826716b4;
  DAT_182671764 = DAT_182671688 * DAT_18267169c;
  DAT_182671824 = DAT_18267166c & DAT_182671640;
  DAT_1826717f0 = DAT_182671710 * DAT_182671650;
  DAT_182671730 = _DAT_18267188c & _DAT_18267161c;
  DAT_182671858 = _DAT_182671868 * DAT_182671844;
  DAT_18267187c = DAT_1826717f4 * DAT_182671770;
  DAT_1826718cc = DAT_1826715c8 ^ DAT_182671638;
  DAT_182671848 = DAT_18267162c - DAT_1826716c4;
  DAT_1826717e8 = DAT_182671744 - DAT_18267189c;
  DAT_182671898 = (DAT_18267162c + 0x32dfe201) * 0x10000 | DAT_18267162c + 0x32dfe201 >> 0x10;
  DAT_1826718c8 = ~DAT_182671800;
  DAT_182671708 = DAT_1826717e0;
  if ((DAT_182671788 + DAT_1826716c4 & 1) == 0) {
    DAT_182671708 = DAT_182671788 + DAT_1826716c4;
  }
  DAT_182671694 = DAT_182671854 + DAT_1826716e8;
  DAT_182671860 = DAT_1826717d8 + DAT_182671700;
  DAT_1826716fc =
       (DAT_1826718c4 & 0xff0000 | DAT_1826718c4 >> 0x10) >> 8 |
       (DAT_1826718c4 * 0x10000 | DAT_1826718c4 & 0xff00) << 8;
  DAT_18267174c = DAT_18267184c ^ DAT_182671834;
  DAT_182671734 = DAT_1826716cc + uVar18 * -0x1000193;
  DAT_182671814 = DAT_1826718b8 ^ DAT_182671628;
  DAT_182671738 =
       (DAT_182671768 & 0xff0000 | DAT_182671768 >> 0x10) >> 8 |
       (DAT_182671768 * 0x10000 | DAT_182671768 & 0xff00) << 8;
  DAT_1826715e8 =
       (DAT_18267184c * 0x10000 & 0xff0000 | DAT_18267184c & 0xffff) >> 8 |
       (uVar34 << 0x10 | uVar34 & 0xff00) << 8;
  DAT_1826717f8 = DAT_18267182c | DAT_182671690;
  DAT_1826717c8 =
       ((uVar14 & 0xff00) << 8 | (uVar14 << 0x10 & 0xffffff) >> 8) >> 8 |
       (uVar27 << 0x10 | (uVar14 & 0xff0000) >> 8) << 8;
  DAT_18267163c =
       (DAT_182671890 & 0xff0000 | DAT_182671890 >> 0x10) >> 8 |
       (uVar11 * -0x28160000 | DAT_182671890 & 0xff00) << 8;
  uVar34 = DAT_182671864 & 3;
  if (uVar34 < 2) {
    DAT_182671780 = DAT_182671680;
    if (uVar34 == 0) {
      DAT_182671780 = DAT_182671864;
    }
  }
  else {
    DAT_182671780 = DAT_18267183c;
    if (uVar34 < 3) {
      DAT_182671780 = DAT_18267185c;
    }
  }
  DAT_182671b14 = 0x12f0;
  DAT_1826715d4 = ~uVar5;
  DAT_18267171c = (uVar9 & 0xff0000 | uVar9 >> 0x10) >> 8 | (uVar12 << 0x10 | uVar12 & 0xff00) << 8;
  DAT_1826717bc = DAT_1826717c4 + DAT_1826717ac;
  local_40 = &local_5100;
  local_48 = param_9;
  local_50 = param_8;
  local_58 = param_7;
  local_60 = param_6;
  local_68 = param_5;
  DAT_182671558 = &local_88;
  DAT_1826716d0 = DAT_182671660;
  DAT_182671704 = DAT_18267166c;
  DAT_182671720 = DAT_18267162c;
  DAT_1826717ec = DAT_182671680;
  DAT_182671850 = DAT_18267162c;
  DAT_182671878 = DAT_182671660;
  DAT_182671884 = DAT_18267162c;
  local_5238 = DAT_18267169c;
  local_5234 = DAT_182671690;
  local_5230 = DAT_182671880;
  local_522c = _DAT_1826715f0;
  local_5228 = DAT_182671834;
  local_5224 = DAT_1826718ac;
  local_5220 = DAT_1826716d8;
  local_521c = DAT_182671660;
  local_5218 = DAT_1826717e0;
  local_5214 = DAT_18267183c;
  local_5210 = DAT_182671644;
  local_520c = DAT_182671770;
  local_5208 = DAT_1826716c4;
  local_5204 = DAT_1826717ac;
  local_5200 = DAT_18267181c;
  local_51fc = DAT_1826716a8;
  local_51f4 = DAT_1826715f4;
  local_51f0 = DAT_182671750;
  local_51ec = DAT_18267168c;
  local_51e8 = DAT_182671668;
  local_51e4 = DAT_182671854;
  local_51e0 = DAT_1826718c4;
  local_51dc = DAT_18267166c;
  local_51d8 = DAT_1826717f4;
  local_51d4 = DAT_182671800;
  local_51d0 = DAT_1826718bc;
  local_51cc = DAT_182671888;
  local_51c8 = DAT_182671768;
  local_51c4 = DAT_18267185c;
  local_51bc = DAT_1826717b0;
  local_51b8 = DAT_1826716e0;
  local_51b4 = DAT_1826716e4;
  local_51b0 = DAT_1826716ac;
  local_51ac = DAT_182671794;
  local_51a0 = DAT_1826716f8;
  local_519c = _DAT_1826716c0;
  local_5198 = _DAT_182671610;
  local_5194 = DAT_1826717fc;
  local_5190 = _DAT_182671868;
  local_518c = DAT_182671844;
  local_5188 = DAT_182671744;
  local_5184 = DAT_182671788;
  local_5180 = DAT_1826716e8;
  local_517c = DAT_1826715b8;
  local_5178 = DAT_1826717a8;
  local_5174 = DAT_18267184c;
  local_5170 = DAT_1826718b8;
  local_516c = DAT_18267182c;
  local_5168 = DAT_18267175c;
  local_5164 = DAT_182671620;
  local_5160 = DAT_182671840;
  local_515c = DAT_18267179c;
  local_5158 = DAT_182671600;
  local_5154 = DAT_1826717d4;
  local_5150 = DAT_182671874;
  local_514c = DAT_18267176c;
  local_5148 = DAT_182671774;
  local_5144 = DAT_1826715c0;
  local_5140 = DAT_18267165c;
  local_513c = _DAT_18267161c;
  local_5138 = DAT_1826716cc;
  local_5134 = DAT_182671650;
  local_5130 = DAT_182671630;
  local_512c = DAT_18267172c;
  local_5128 = DAT_1826718d0;
  local_5120 = DAT_182671890;
  local_511c = DAT_182671864;
  local_5118 = DAT_182671710;
  local_5114 = DAT_1826716d4;
  local_510c = DAT_182671654;
  local_5108 = DAT_182671608;
  local_5104 = DAT_182671604;
  local_5100 = DAT_18267173c;
  local_50fc = DAT_182671758;
  local_50f8 = DAT_182671640;
  local_50f4 = DAT_182671804;
  local_50f0 = DAT_182671818;
  local_50ec = _DAT_1826715d8;
  local_50e8 = DAT_1826718a8;
  local_50e4 = DAT_182671724;
  local_50e0 = DAT_1826715d0;
  local_50dc = DAT_182671718;
  local_50d8 = DAT_1826715cc;
  local_50d4 = DAT_1826717c0;
  local_50d0 = DAT_1826718d4;
  local_50cc = DAT_1826717dc;
  local_50c8 = DAT_1826716c8;
  local_50c4 = DAT_182671790;
  local_50c0 = DAT_18267167c;
  local_50bc = DAT_182671688;
  local_50b8 = _DAT_18267188c;
  local_50b4 = DAT_1826715c8;
  local_50b0 = DAT_182671700;
  local_50ac = DAT_182671894;
  local_50a8 = param_3;
  local_50a0 = param_2;
  local_5098 = param_1;
  local_88 = param_1;
  local_80 = param_2;
  local_78 = param_3;
  local_70 = param_4;
                    /* WARNING: Could not recover jumptable at 0x000180e4288c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)((ulonglong)UINT_180e432f8 + 0x180000000))
            (0x8c,(code *)((ulonglong)UINT_180e432f8 + 0x180000000));
  return;
}



############ FUN_ 1813eefa0 size=368 ############

void FUN_1813eefa0(longlong param_1,int *param_2,undefined8 *param_3,ulonglong param_4)

{
  char cVar1;
  longlong *plVar2;
  longlong lVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  ulonglong uVar7;
  ulonglong uVar8;
  undefined8 *puVar9;
  undefined8 local_res8;
  ulonglong local_res20;
  
  puVar6 = *(undefined8 **)(param_1 + 0x30);
  cVar1 = *(char *)((longlong)puVar6[1] + 0x19);
  puVar9 = puVar6;
  puVar4 = (undefined8 *)puVar6[1];
  while (cVar1 == '\0') {
    if ((ulonglong)puVar4[4] < param_4) {
      puVar5 = (undefined8 *)puVar4[2];
      puVar4 = puVar9;
    }
    else {
      puVar5 = (undefined8 *)*puVar4;
    }
    puVar9 = puVar4;
    puVar4 = puVar5;
    cVar1 = *(char *)((longlong)puVar5 + 0x19);
  }
  if ((puVar9 == puVar6) || (param_4 < (ulonglong)puVar9[4])) {
    puVar9 = puVar6;
  }
  if (puVar9 != puVar6) {
    local_res20 = param_4;
    EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
    plVar2 = (longlong *)FUN_1805711e0(param_1 + 0x30,&local_res20);
    puVar6 = (undefined8 *)*plVar2;
    puVar9 = puVar6;
    if (*(char *)((longlong)puVar6[1] + 0x19) == '\0') {
      puVar4 = (undefined8 *)puVar6[1];
      do {
        if (*(int *)(puVar4 + 4) < *param_2) {
          puVar5 = (undefined8 *)puVar4[2];
        }
        else {
          puVar5 = (undefined8 *)*puVar4;
          puVar9 = puVar4;
        }
        puVar4 = puVar5;
      } while (*(char *)((longlong)puVar5 + 0x19) == '\0');
    }
    if ((puVar9 == puVar6) || (*param_2 < *(int *)(puVar9 + 4))) {
      puVar9 = puVar6;
    }
    if (puVar9 != puVar6) {
      local_res8 = *param_3;
      lVar3 = FUN_180571280(plVar2,param_2);
      plVar2 = *(longlong **)(lVar3 + 0x38);
      if (plVar2 == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
        std::_Xbad_function_call();
      }
      (**(code **)(*plVar2 + 0x10))(plVar2,&local_res8);
    }
    LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182674140);
    puVar6 = *(undefined8 **)(local_res20 + 0x40);
    uVar8 = 0;
    uVar7 = (ulonglong)((longlong)(puVar6 + *(int *)(local_res20 + 0x4c)) + (7 - (longlong)puVar6))
            >> 3;
    if (puVar6 + *(int *)(local_res20 + 0x4c) < puVar6) {
      uVar7 = uVar8;
    }
    if (uVar7 != 0) {
      do {
        FUN_1813eefa0(param_1,param_2,param_3,*puVar6);
        puVar6 = puVar6 + 1;
        uVar8 = uVar8 + 1;
      } while (uVar8 != uVar7);
    }
  }
  return;
}



############ FUN_ 18056f310 size=556 ############

undefined8 *
FUN_18056f310(longlong *param_1,undefined8 *param_2,longlong *param_3,int *param_4,
             undefined8 param_5)

{
  char cVar1;
  int iVar2;
  longlong *plVar3;
  longlong *plVar4;
  longlong *plVar5;
  undefined8 *puVar6;
  longlong *plVar7;
  longlong *plVar8;
  undefined1 local_20 [24];
  
  if (param_1[1] == 0) {
    FUN_18056fd10(param_1,param_2,1,*param_1);
  }
  else {
    plVar3 = (longlong *)*param_1;
    if (param_3 == (longlong *)*plVar3) {
      if (*param_4 < *(int *)((longlong)param_3 + 0x1c)) {
        FUN_18056fd10(param_1,param_2,1,param_3);
        return param_2;
      }
    }
    else if (param_3 == plVar3) {
      if (*(int *)(plVar3[2] + 0x1c) < *param_4) {
        FUN_18056fd10(param_1,param_2,0);
        return param_2;
      }
    }
    else {
      iVar2 = *param_4;
      if (iVar2 < *(int *)((longlong)param_3 + 0x1c)) {
        if (*(char *)((longlong)param_3 + 0x19) == '\0') {
          plVar7 = (longlong *)*param_3;
          if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
            cVar1 = *(char *)(plVar7[2] + 0x19);
            plVar8 = (longlong *)plVar7[2];
            while (cVar1 == '\0') {
              cVar1 = *(char *)(plVar8[2] + 0x19);
              plVar7 = plVar8;
              plVar8 = (longlong *)plVar8[2];
            }
          }
          else {
            cVar1 = *(char *)(param_3[1] + 0x19);
            plVar8 = (longlong *)param_3[1];
            plVar7 = param_3;
            while ((plVar4 = plVar8, cVar1 == '\0' && (plVar7 == (longlong *)*plVar4))) {
              cVar1 = *(char *)(plVar4[1] + 0x19);
              plVar8 = (longlong *)plVar4[1];
              plVar7 = plVar4;
            }
            if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
              plVar7 = plVar4;
            }
          }
        }
        else {
          plVar7 = (longlong *)param_3[2];
        }
        if (*(int *)((longlong)plVar7 + 0x1c) < iVar2) {
          if (*(char *)(plVar7[2] + 0x19) != '\0') {
            FUN_18056fd10(param_1,param_2,0);
            return param_2;
          }
          FUN_18056fd10(param_1,param_2,1,param_3);
          return param_2;
        }
      }
      if (*(int *)((longlong)param_3 + 0x1c) < iVar2) {
        plVar7 = (longlong *)param_3[2];
        if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
          cVar1 = *(char *)(*plVar7 + 0x19);
          plVar8 = plVar7;
          plVar4 = (longlong *)*plVar7;
          while (cVar1 == '\0') {
            cVar1 = *(char *)(*plVar4 + 0x19);
            plVar8 = plVar4;
            plVar4 = (longlong *)*plVar4;
          }
        }
        else {
          cVar1 = *(char *)(param_3[1] + 0x19);
          plVar5 = (longlong *)param_3[1];
          plVar4 = param_3;
          while ((plVar8 = plVar5, cVar1 == '\0' && (plVar4 == (longlong *)plVar8[2]))) {
            cVar1 = *(char *)(plVar8[1] + 0x19);
            plVar5 = (longlong *)plVar8[1];
            plVar4 = plVar8;
          }
        }
        if ((plVar8 == plVar3) || (iVar2 < *(int *)((longlong)plVar8 + 0x1c))) {
          if (*(char *)((longlong)plVar7 + 0x19) != '\0') {
            FUN_18056fd10(param_1,param_2,0,param_3);
            return param_2;
          }
          FUN_18056fd10(param_1,param_2,1);
          return param_2;
        }
      }
    }
    puVar6 = (undefined8 *)FUN_18056ff40(param_1,local_20,param_3,param_4,param_5);
    *param_2 = *puVar6;
  }
  return param_2;
}



############ FUN_ 180572e10 size=96 ############

longlong FUN_180572e10(undefined8 param_1,undefined8 param_2,undefined8 *param_3)

{
  longlong lVar1;
  undefined8 uVar2;
  
  lVar1 = FUN_180490cd0();
  *(undefined2 *)(lVar1 + 0x18) = 0;
  *(undefined8 *)(lVar1 + 0x20) = *(undefined8 *)*param_3;
  *(undefined8 *)(lVar1 + 0x28) = 0;
  *(undefined8 *)(lVar1 + 0x30) = 0;
  uVar2 = FUN_18048c850();
  *(undefined8 *)(lVar1 + 0x28) = uVar2;
  return lVar1;
}



############ FUN_ 1805730a0 size=34 ############

void FUN_1805730a0(undefined8 param_1,undefined8 param_2,undefined8 *param_3)

{
  longlong lVar1;
  
  lVar1 = FUN_1804929c0();
  *(undefined2 *)(lVar1 + 0x18) = 0;
  *(undefined4 *)(lVar1 + 0x1c) = *(undefined4 *)*param_3;
  return;
}



############ FUN_ 180572e70 size=556 ############

undefined8 *
FUN_180572e70(longlong *param_1,undefined8 *param_2,longlong *param_3,ulonglong *param_4,
             undefined8 param_5)

{
  char cVar1;
  longlong *plVar2;
  ulonglong uVar3;
  longlong *plVar4;
  longlong *plVar5;
  undefined8 *puVar6;
  longlong *plVar7;
  longlong *plVar8;
  undefined1 local_20 [24];
  
  if (param_1[1] == 0) {
    FUN_180574090(param_1,param_2,1,*param_1);
  }
  else {
    plVar2 = (longlong *)*param_1;
    if (param_3 == (longlong *)*plVar2) {
      if (*param_4 < (ulonglong)param_3[4]) {
        FUN_180574090(param_1,param_2,1,param_3);
        return param_2;
      }
    }
    else if (param_3 == plVar2) {
      if (*(ulonglong *)(plVar2[2] + 0x20) < *param_4) {
        FUN_180574090(param_1,param_2,0);
        return param_2;
      }
    }
    else {
      uVar3 = *param_4;
      if (uVar3 < (ulonglong)param_3[4]) {
        if (*(char *)((longlong)param_3 + 0x19) == '\0') {
          plVar7 = (longlong *)*param_3;
          if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
            cVar1 = *(char *)(plVar7[2] + 0x19);
            plVar8 = (longlong *)plVar7[2];
            while (cVar1 == '\0') {
              cVar1 = *(char *)(plVar8[2] + 0x19);
              plVar7 = plVar8;
              plVar8 = (longlong *)plVar8[2];
            }
          }
          else {
            cVar1 = *(char *)(param_3[1] + 0x19);
            plVar8 = (longlong *)param_3[1];
            plVar7 = param_3;
            while ((plVar4 = plVar8, cVar1 == '\0' && (plVar7 == (longlong *)*plVar4))) {
              cVar1 = *(char *)(plVar4[1] + 0x19);
              plVar8 = (longlong *)plVar4[1];
              plVar7 = plVar4;
            }
            if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
              plVar7 = plVar4;
            }
          }
        }
        else {
          plVar7 = (longlong *)param_3[2];
        }
        if ((ulonglong)plVar7[4] < uVar3) {
          if (*(char *)(plVar7[2] + 0x19) != '\0') {
            FUN_180574090(param_1,param_2,0);
            return param_2;
          }
          FUN_180574090(param_1,param_2,1,param_3);
          return param_2;
        }
      }
      if ((ulonglong)param_3[4] < uVar3) {
        plVar7 = (longlong *)param_3[2];
        if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
          cVar1 = *(char *)(*plVar7 + 0x19);
          plVar8 = plVar7;
          plVar4 = (longlong *)*plVar7;
          while (cVar1 == '\0') {
            cVar1 = *(char *)(*plVar4 + 0x19);
            plVar8 = plVar4;
            plVar4 = (longlong *)*plVar4;
          }
        }
        else {
          cVar1 = *(char *)(param_3[1] + 0x19);
          plVar5 = (longlong *)param_3[1];
          plVar4 = param_3;
          while ((plVar8 = plVar5, cVar1 == '\0' && (plVar4 == (longlong *)plVar8[2]))) {
            cVar1 = *(char *)(plVar8[1] + 0x19);
            plVar5 = (longlong *)plVar8[1];
            plVar4 = plVar8;
          }
        }
        if ((plVar8 == plVar2) || (uVar3 < (ulonglong)plVar8[4])) {
          if (*(char *)((longlong)plVar7 + 0x19) != '\0') {
            FUN_180574090(param_1,param_2,0,param_3);
            return param_2;
          }
          FUN_180574090(param_1,param_2,1);
          return param_2;
        }
      }
    }
    puVar6 = (undefined8 *)FUN_1805742c0(param_1,local_20,param_3,param_4,param_5);
    *param_2 = *puVar6;
  }
  return param_2;
}



############ FUN_ 18048c850 size=36 ############

void FUN_18048c850(void)

{
  longlong lVar1;
  
  lVar1 = FUN_180480500(0x28);
  *(longlong *)lVar1 = lVar1;
  *(longlong *)(lVar1 + 8) = lVar1;
  *(longlong *)(lVar1 + 0x10) = lVar1;
  *(undefined2 *)(lVar1 + 0x18) = 0x101;
  return;
}



############ FUN_ 18056b2f0 size=76 ############

void FUN_18056b2f0(undefined8 param_1,void *param_2)

{
  if (*(char *)((longlong)param_2 + 0x19) == '\0') {
    FUN_18056b2f0(param_1,*(undefined8 *)((longlong)param_2 + 0x10));
                    /* WARNING: Subroutine does not return */
    free(param_2);
  }
  return;
}



############ FUN_ 18056f2e0 size=41 ############

void FUN_18056f2e0(undefined8 param_1,undefined8 *param_2)

{
  longlong lVar1;
  
  lVar1 = FUN_1804929c0();
  *(undefined2 *)(lVar1 + 0x18) = 0;
  *(undefined8 *)(lVar1 + 0x1c) = *param_2;
  *(undefined4 *)(lVar1 + 0x24) = *(undefined4 *)(param_2 + 1);
  return;
}



############ FUN_ 18052dd30 size=555 ############

void FUN_18052dd30(longlong param_1)

{
  if ((0 < *(int *)(param_1 + 0x130)) && (*(longlong *)(param_1 + 0x128) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x128) = 0;
  *(undefined4 *)(param_1 + 0x130) = 0;
  if ((0 < *(int *)(param_1 + 0x120)) && (*(longlong *)(param_1 + 0x118) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x118) = 0;
  *(undefined4 *)(param_1 + 0x120) = 0;
  if ((0 < *(int *)(param_1 + 0x110)) && (*(longlong *)(param_1 + 0x108) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x108) = 0;
  *(undefined4 *)(param_1 + 0x110) = 0;
  if ((0 < *(int *)(param_1 + 0x100)) && (*(longlong *)(param_1 + 0xf8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0xf8) = 0;
  *(undefined4 *)(param_1 + 0x100) = 0;
  if ((0 < *(int *)(param_1 + 0xf0)) && (*(longlong *)(param_1 + 0xe8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0xe8) = 0;
  *(undefined4 *)(param_1 + 0xf0) = 0;
  if ((0 < *(int *)(param_1 + 0xe0)) && (*(longlong *)(param_1 + 0xd8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0xd8) = 0;
  *(undefined4 *)(param_1 + 0xe0) = 0;
  if ((0 < *(int *)(param_1 + 0xd0)) && (*(longlong *)(param_1 + 200) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 200) = 0;
  *(undefined4 *)(param_1 + 0xd0) = 0;
  if ((0 < *(int *)(param_1 + 0xc0)) && (*(longlong *)(param_1 + 0xb8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0xb8) = 0;
  *(undefined4 *)(param_1 + 0xc0) = 0;
  if ((0 < *(int *)(param_1 + 0xb0)) && (*(longlong *)(param_1 + 0xa8) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0xa8) = 0;
  *(undefined4 *)(param_1 + 0xb0) = 0;
  if ((0 < *(int *)(param_1 + 0xa0)) && (*(longlong *)(param_1 + 0x98) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x98) = 0;
  *(undefined4 *)(param_1 + 0xa0) = 0;
  if ((0 < *(int *)(param_1 + 0x90)) && (*(longlong *)(param_1 + 0x88) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x88) = 0;
  *(undefined4 *)(param_1 + 0x90) = 0;
  if ((0 < *(int *)(param_1 + 0x80)) && (*(longlong *)(param_1 + 0x78) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x78) = 0;
  *(undefined4 *)(param_1 + 0x80) = 0;
  if ((0 < *(int *)(param_1 + 0x70)) && (*(longlong *)(param_1 + 0x68) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x68) = 0;
  *(undefined4 *)(param_1 + 0x70) = 0;
  if ((0 < *(int *)(param_1 + 0x60)) && (*(longlong *)(param_1 + 0x58) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x58) = 0;
  *(undefined4 *)(param_1 + 0x60) = 0;
  if ((0 < *(int *)(param_1 + 0x50)) && (*(longlong *)(param_1 + 0x48) != 0)) {
    FUN_1800010c0();
  }
  *(undefined8 *)(param_1 + 0x48) = 0;
  *(undefined4 *)(param_1 + 0x50) = 0;
  return;
}



############ FUN_ 18113171c size=107 ############

/* Library Function - Single Match
    void __cdecl `eh vector destructor iterator'(void * __ptr64,unsigned __int64,unsigned
   __int64,void (__cdecl*)(void * __ptr64))
   
   Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release */

void __cdecl
_eh_vector_destructor_iterator_
          (void *param_1,__uint64 param_2,__uint64 param_3,_func_void_void_ptr *param_4)

{
  void *pvVar1;
  
  pvVar1 = (void *)(param_2 * param_3 + (longlong)param_1);
  while( true ) {
    if (param_3 == 0) break;
    pvVar1 = (void *)((longlong)pvVar1 - param_2);
    (*(code *)PTR__guard_dispatch_icall_181bab6b0)(pvVar1);
    param_3 = param_3 - 1;
  }
  return;
}



############ FUN_ 1811497a0 size=1093 ############

/* WARNING: Removing unreachable block (ram,0x000181149866) */
/* WARNING: Removing unreachable block (ram,0x0001811497dc) */
/* WARNING: Removing unreachable block (ram,0x0001811498bb) */
/* WARNING: Removing unreachable block (ram,0x0001811498c6) */

void FUN_1811497a0(void)

{
  uint uVar1;
  int iVar2;
  undefined1 *puVar3;
  uint *puVar4;
  uint uVar5;
  longlong lVar6;
  undefined1 auStack_b8 [32];
  undefined *local_98;
  undefined8 local_88;
  undefined8 local_80;
  undefined *local_78;
  uint local_70;
  uint local_6c;
  ulonglong local_30;
  
  local_30 = DAT_182615970 ^ (ulonglong)auStack_b8;
  uVar1 = (uint)&stack0x00000000;
  uVar5 = ((uVar1 & 0x11ff) * (uVar1 & 0x11ff) + 1) % 7;
  local_70 = (0x102 >> ((char)((byte)(-(((uVar1 & 0x19ff) + 1) * (uVar1 & 0x19ff) + 0x16f9 &
                                       0x80000001) >> 0x18) ^ 0xff) >> 7 & 0x1fU) | 0x5546U) ^
             (int)(-uVar5 | uVar5) >> 0x1f & 0x5ef6U;
  uVar5 = ((uVar1 & 0x2ff) * (uVar1 & 0x2ff) + 1) % 7;
  uVar1 = uVar1 & 0x13f;
  iVar2 = (uVar1 + 2) * (uVar1 + 1) * uVar1;
  local_6c = 0xefe7 >> ((byte)(((iVar2 >> 1) - (iVar2 >> 3)) + iVar2 * 0x55555555 >> 0x1e) & 0x1f) ^
             (int)((-uVar5 | uVar5) ^ 0xfffffff0) >> 0x1f ^ 0xe0d7U;
  lVar6 = 0x180000000;
  local_88 = 0;
  puVar3 = &DAT_00e81024;
  local_80 = 0x1e87f24;
  local_78 = &DAT_181e87f24;
  local_98 = &DAT_181e91f10;
                    /* WARNING: Call to offcut address within same function */
  func_0x000181149a98();
  lVar6 = (longlong)(puVar3 + lVar6) -
          (((longlong)puVar3 - (longlong)(puVar3 + lVar6) ^ 0xffffffffffffffffU) + 1);
                    /* WARNING: Call to offcut address within same function */
  func_0x000181149ade();
  puVar4 = (uint *)((-lVar6 ^ 0xffffffffffffffffU) + 1);
  *puVar4 = *puVar4 & 0x4c;
  return;
}



############ FUN_ 181252ea0 size=371 ############

void FUN_181252ea0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  uint *puVar2;
  int iVar3;
  uint uVar4;
  undefined8 *puVar5;
  uint *puVar6;
  uint *local_res8;
  undefined *local_res10;
  undefined8 uVar7;
  
  uVar7 = 0xfffffffffffffffe;
  if (DAT_182673a68 == (uint *)0x0) {
    local_res10 = &DAT_182673a38;
    EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182673a38);
    if ((DAT_182673a68 == (uint *)0x0) && (DAT_18267aa70 == '\0')) {
      DAT_18267aa70 = 1;
      puVar6 = (uint *)FUN_1811316e0(0x1a0);
      local_res8 = puVar6;
      FUN_1812a7230(puVar6);
      *(undefined ***)puVar6 = juce::TypefaceCache::vftable;
      puVar6[2] = 0;
      puVar6[3] = 0;
      FUN_18122bd40(puVar6 + 4);
      puVar6[0x62] = 0;
      puVar6[99] = 0;
      puVar6[100] = 0;
      puVar6[0x65] = 0;
      puVar6[0x66] = 0;
      puVar6[0x67] = 0;
      FUN_1804a2290(puVar6,10);
      DAT_18267aa70 = '\0';
      DAT_182673a68 = puVar6;
    }
    LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182673a38);
  }
  puVar6 = DAT_182673a68;
  FUN_180493780(&local_res8,DAT_182673a68 + 4,param_3,param_4,uVar7);
  FUN_1804a2290(puVar6,puVar6[0x65]);
  puVar5 = *(undefined8 **)(puVar6 + 2);
  puVar6[2] = 0;
  puVar6[3] = 0;
  if (puVar5 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar5 + 1);
    iVar3 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar3 == 1) {
      (**(code **)*puVar5)(puVar5,1);
    }
  }
  do {
    puVar6 = local_res8;
    LOCK();
    uVar4 = *local_res8;
    *local_res8 = *local_res8 | 1;
    UNLOCK();
  } while ((uVar4 & 1) != 0);
  puVar2 = local_res8 + 0x57;
  *puVar2 = *puVar2 - 1;
  if (*puVar2 == 0) {
    local_res8[0x58] = 0;
    local_res8[0x59] = 0;
    FUN_181215c10(local_res8 + 2);
    FUN_181215c10(puVar6 + 0x2c);
  }
  LOCK();
  *puVar6 = 0;
  UNLOCK();
  uVar7 = FUN_1804a8480();
  FUN_1804a83f0(uVar7);
  if (DAT_1826736c0 != (code *)0x0) {
    (*DAT_1826736c0)();
  }
  return;
}



############ FUN_ 18120c7f0 size=747 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x00018120c910) */
/* WARNING: Removing unreachable block (ram,0x00018120ca77) */

void FUN_18120c7f0(void)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  longlong lVar4;
  longlong unaff_R14;
  longlong lVar5;
  int unaff_retaddr;
  undefined1 auStack_158 [40];
  undefined *local_130;
  undefined4 *local_120;
  uint local_100;
  undefined8 local_f0;
  undefined4 local_e4;
  undefined8 local_98;
  ulonglong local_30;
  
  local_98 = 0xfffffffffffffffe;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_158;
  uVar1 = (uint)&stack0x00000000 & 0x40ff;
  iVar2 = uVar1 * uVar1 + 1;
  uVar1 = (iVar2 >> 4) + (iVar2 >> 1) + iVar2 * 0x24924924 >> 0x1d;
  uVar1 = (int)(uVar1 - 7) >> 0x1f & uVar1;
  uVar3 = (uint)&stack0x00000000 & 0x3bf;
  local_100 = (((uVar3 + 2) * (uVar3 + 1) * uVar3) % 3 | 0x4cbd) ^
              ((int)(-uVar1 | uVar1) >> 0x1f) * -0x4a6d;
  local_e4 = 0xf70;
  local_f0 = 0x6f0cbf0;
  lVar5 = 0x1f966e3e;
  local_130 = &DAT_1822297e0;
  local_120 = &DAT_18223d7b8;
  do {
    lVar4 = lVar5 + unaff_R14;
    lVar5 = ~(unaff_R14 - lVar4) + 1;
    unaff_R14 = lVar4 - lVar5;
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  FUN_18120b142(0,0x22297e0,0x5474bbf9,lVar5);
  FUN_18120cae1();
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}



############ FUN_ 18135335c size=270 ############

void FUN_18135335c(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong unaff_retaddr;
  
                    /* WARNING: Could not recover jumptable at 0x00018135346f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(unaff_retaddr + 0x76408))(param_1,param_2,param_3,param_4,unaff_retaddr + 0x190b8);
  return;
}



############ FUN_ 18122bf10 size=153 ############

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

undefined8 * FUN_18122bf10(void)

{
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267af08) {
    _Init_thread_header(&DAT_18267af08);
    if (DAT_18267af08 == -1) {
      DAT_18267af90 = 0;
      _DAT_18267af98 = 0;
      InitializeCriticalSection((LPCRITICAL_SECTION)&DAT_18267afa0);
      _DAT_18267afcc = 0;
      atexit(FUN_181a4a7e0);
      _Init_thread_footer(&DAT_18267af08);
      return &DAT_18267af90;
    }
  }
  return &DAT_18267af90;
}



############ FUN_ 1812472e0 size=125 ############

void FUN_1812472e0(longlong param_1)

{
  uint uVar1;
  undefined8 *_Memory;
  uint *_Memory_00;
  
  if (*(longlong *)(param_1 + 8) != 0) {
    _Memory = *(undefined8 **)(param_1 + 8);
    *(undefined8 *)(param_1 + 8) = *_Memory;
    FUN_1812472e0(_Memory);
                    /* WARNING: Subroutine does not return */
    free(_Memory);
  }
  FUN_18049aca0(param_1 + 0x10);
  _Memory_00 = (uint *)(*(longlong *)(param_1 + 0x18) + -0x10);
  if ((*_Memory_00 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory_00;
    *_Memory_00 = *_Memory_00 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory_00);
    }
  }
  return;
}



############ FUN_ 18122c1b0 size=371 ############

longlong * FUN_18122c1b0(longlong *param_1,longlong *param_2,longlong *param_3)

{
  longlong *plVar1;
  longlong lVar2;
  int iVar3;
  int iVar4;
  longlong lVar5;
  int iVar6;
  int iVar7;
  
  if (*(char *)*param_3 == '\0') {
    *param_2 = (longlong)&DAT_1821dbf98;
    return param_2;
  }
  EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 2));
  FUN_18122c130();
  iVar7 = *(int *)((longlong)param_1 + 0xc);
  iVar6 = 0;
  if (0 < iVar7) {
    lVar5 = *param_1;
    lVar2 = *param_3;
    do {
      plVar1 = (longlong *)(lVar5 + (longlong)iVar6 * 8);
      if (lVar2 == *(longlong *)(lVar5 + (longlong)iVar6 * 8)) {
        iVar4 = 0;
      }
      else {
        iVar4 = FUN_18048cbc0(lVar2,*plVar1);
      }
      if (iVar4 == 0) {
        lVar5 = *plVar1;
LAB_18122c309:
        *param_2 = lVar5;
        if ((*(uint *)(lVar5 + -0x10) & 0x30000000) == 0) {
          LOCK();
          *(int *)(lVar5 + -0x10) = *(int *)(lVar5 + -0x10) + 1;
          UNLOCK();
        }
        goto LAB_18122c2c9;
      }
      iVar3 = (iVar7 + iVar6) / 2;
      if (iVar3 == iVar6) {
        if (0 < iVar4) {
          iVar6 = iVar6 + 1;
        }
        break;
      }
      plVar1 = (longlong *)(lVar5 + (longlong)iVar3 * 8);
      if (lVar2 == *(longlong *)(lVar5 + (longlong)iVar3 * 8)) {
        iVar4 = 0;
      }
      else {
        iVar4 = FUN_18048cbc0(lVar2,*plVar1);
      }
      if (iVar4 == 0) {
        lVar5 = *plVar1;
        goto LAB_18122c309;
      }
      if (0 < iVar4) {
        iVar6 = iVar3;
        iVar3 = iVar7;
      }
      iVar7 = iVar3;
    } while (iVar6 < iVar7);
  }
  FUN_180489070(param_1,iVar6,param_3);
  lVar5 = *(longlong *)(*param_1 + (longlong)iVar6 * 8);
  *param_2 = lVar5;
  if ((*(uint *)(lVar5 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar5 + -0x10) = *(int *)(lVar5 + -0x10) + 1;
    UNLOCK();
  }
LAB_18122c2c9:
  LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 2));
  return param_2;
}



############ FUN_ 1812c29a0 size=644 ############

void FUN_1812c29a0(undefined8 param_1,void **param_2)

{
  uint uVar1;
  bool bVar2;
  undefined1 local_res10 [8];
  undefined4 local_res18 [2];
  undefined4 local_res20 [2];
  undefined **local_d8;
  undefined1 local_d0 [8];
  void **local_c8;
  void *local_c0;
  undefined8 local_b8;
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_a0;
  undefined8 local_98;
  undefined1 *local_88;
  undefined1 *local_80;
  undefined1 *local_78;
  undefined1 local_70;
  undefined4 local_6c;
  undefined8 local_68;
  undefined1 *local_60;
  undefined1 *local_58;
  undefined1 *local_50;
  undefined1 local_48;
  undefined4 local_44;
  undefined *local_40;
  undefined8 local_38;
  
  local_38 = 0xfffffffffffffffe;
  local_d8 = juce::OutputStream::vftable;
  FUN_18049c4e0(local_d0,&DAT_182496878);
  local_d8 = juce::MemoryOutputStream::vftable;
  local_c0 = (void *)0x0;
  local_b8 = 0;
  local_b0 = 0;
  local_a8 = 0;
  local_a0 = 0;
  local_98 = 0;
  local_res18[0] = 0x21324356;
  local_c8 = param_2;
  (*(code *)PTR_FUN_182496b98)(&local_d8,local_res18,4);
  local_res20[0] = 0;
  (*(code *)local_d8[4])(&local_d8,local_res20,4);
  local_60 = &DAT_1821dbf98;
  local_58 = &DAT_1821dbf98;
  local_50 = &DAT_1821dbf98;
  local_48 = 1;
  local_44 = 0x3c;
  local_40 = &DAT_1821db4e4;
  local_88 = &DAT_1821dbf98;
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    DAT_1821dbf88 = DAT_1821dbf88 + 1;
    UNLOCK();
  }
  local_80 = &DAT_1821dbf98;
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    DAT_1821dbf88 = DAT_1821dbf88 + 1;
    UNLOCK();
  }
  local_78 = &DAT_1821dbf98;
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    DAT_1821dbf88 = DAT_1821dbf88 + 1;
    UNLOCK();
  }
  local_70 = 1;
  local_6c = 0x3c;
  local_68 = 0;
  FUN_181246e90(param_1,&local_d8,&local_88);
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar2 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar2) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar2 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar2) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar2 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar2) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar2 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar2) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar2 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar2) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar2 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar2) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  local_res10[0] = 0;
  (*(code *)local_d8[4])(&local_d8,local_res10,1);
  local_d8 = juce::MemoryOutputStream::vftable;
  if ((local_c8 != &local_c0) && (local_c8 != (void **)0x0)) {
    FUN_18124a200(local_c8,local_a0,0);
  }
                    /* WARNING: Subroutine does not return */
  free(local_c0);
}



############ FUN_ 181246b70 size=342 ############

void FUN_181246b70(longlong param_1,longlong *param_2,longlong *param_3)

{
  int iVar1;
  longlong lVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  int *piVar5;
  
  puVar3 = *(undefined8 **)(param_1 + 0x10);
  if (puVar3 == (undefined8 *)0x0) {
    puVar3 = (undefined8 *)FUN_1811316e0(0x18);
    *puVar3 = 0;
    lVar2 = *param_2;
    puVar3[1] = lVar2;
    if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
      LOCK();
      *(int *)(lVar2 + -0x10) = *(int *)(lVar2 + -0x10) + 1;
      UNLOCK();
    }
    lVar2 = *param_3;
    puVar3[2] = lVar2;
    if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
      LOCK();
      *(int *)(lVar2 + -0x10) = *(int *)(lVar2 + -0x10) + 1;
      UNLOCK();
    }
    *(undefined8 **)(param_1 + 0x10) = puVar3;
    return;
  }
  lVar2 = puVar3[1];
  while (lVar2 != *param_2) {
    puVar4 = (undefined8 *)*puVar3;
    if (puVar4 == (undefined8 *)0x0) {
      puVar4 = (undefined8 *)FUN_1811316e0(0x18);
      *puVar4 = 0;
      lVar2 = *param_2;
      puVar4[1] = lVar2;
      if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
        LOCK();
        *(int *)(lVar2 + -0x10) = *(int *)(lVar2 + -0x10) + 1;
        UNLOCK();
      }
      lVar2 = *param_3;
      puVar4[2] = lVar2;
      if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
        LOCK();
        *(int *)(lVar2 + -0x10) = *(int *)(lVar2 + -0x10) + 1;
        UNLOCK();
      }
      *puVar3 = puVar4;
      return;
    }
    puVar3 = puVar4;
    lVar2 = puVar4[1];
  }
  if ((*(uint *)(*param_3 + -0x10) & 0x30000000) == 0) {
    LOCK();
    piVar5 = (int *)(*param_3 + -0x10);
    *piVar5 = *piVar5 + 1;
    UNLOCK();
  }
  LOCK();
  lVar2 = puVar3[2];
  puVar3[2] = *param_3;
  UNLOCK();
  piVar5 = (int *)(lVar2 + -0x10);
  if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
    LOCK();
    iVar1 = *piVar5;
    *piVar5 = *piVar5 + -1;
    UNLOCK();
    if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(piVar5);
    }
  }
  return;
}



############ FUN_ 1811fc470 size=655 ############

/* WARNING: Removing unreachable block (ram,0x0001811fc624) */

void FUN_1811fc470(LPCRITICAL_SECTION param_1,undefined1 *param_2,char param_3)

{
  uint uVar1;
  undefined8 uVar2;
  undefined1 *puVar3;
  char cVar4;
  int iVar5;
  void *_Memory;
  uint *puVar6;
  void *pvVar7;
  longlong lVar8;
  bool bVar9;
  undefined1 *local_a8;
  longlong local_a0;
  longlong local_98;
  undefined8 uStack_90;
  undefined8 local_88;
  undefined1 *local_80;
  undefined1 *local_78;
  undefined1 *local_70;
  undefined1 local_68;
  undefined4 local_64;
  undefined *local_60;
  undefined8 local_58;
  LPCRITICAL_SECTION local_50;
  void *local_48;
  
  local_58 = 0xfffffffffffffffe;
  local_a8 = param_2;
  local_50 = param_1;
  EnterCriticalSection(param_1);
  lVar8._0_4_ = param_1[2].LockCount;
  lVar8._4_4_ = param_1[2].RecursionCount;
  if (lVar8 == 0) {
    local_98 = 0;
  }
  else {
    local_a8 = (undefined1 *)FUN_1811316e0(0x50);
    uVar2._0_4_ = param_1[2].LockCount;
    uVar2._4_4_ = param_1[2].RecursionCount;
    local_98 = FUN_180526910(local_a8,uVar2);
    LOCK();
    *(int *)(local_98 + 8) = *(int *)(local_98 + 8) + 1;
    UNLOCK();
  }
  uStack_90 = 0;
  _Memory = (void *)0x0;
  local_88 = 0;
  pvVar7 = _Memory;
  if (param_3 != '\0') {
    while( true ) {
      iVar5 = 0;
      if (*(longlong *)&param_1[2].LockCount != 0) {
        iVar5 = *(int *)(*(longlong *)&param_1[2].LockCount + 0x24);
      }
      if (iVar5 <= (int)pvVar7) break;
      FUN_181352050(&param_1[2].LockCount,&local_a0,pvVar7);
      iVar5 = FUN_180488a80(&param_1[4].LockSemaphore,&local_a0);
      lVar8 = local_98;
      if (((iVar5 < 0) && (local_98 != 0)) &&
         (cVar4 = FUN_181243b40(local_98 + 0x18,&local_a0), cVar4 != '\0')) {
        FUN_180526c70(lVar8,&local_a0,0);
      }
      puVar6 = (uint *)(local_a0 + -0x10);
      if ((*puVar6 & 0x30000000) == 0) {
        LOCK();
        uVar1 = *puVar6;
        *puVar6 = *puVar6 - 1;
        UNLOCK();
        if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
          free(puVar6);
        }
      }
      pvVar7 = (void *)(ulonglong)((int)pvVar7 + 1);
    }
  }
  local_80 = &DAT_1821dbf98;
  local_78 = &DAT_1821dbf98;
  local_70 = &DAT_1821dbf98;
  local_68 = 1;
  local_64 = 0x3c;
  local_60 = &DAT_1821db4e4;
  if (local_98 != 0) {
    _Memory = (void *)FUN_1805273a0();
  }
  local_48 = _Memory;
  if (_Memory == (void *)0x0) {
    local_a8 = &DAT_1821dbf98;
  }
  else {
    FUN_181220ef0(_Memory,&local_a8,&local_80);
    if (_Memory != (void *)0x0) {
      FUN_1812472e0(_Memory);
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  puVar3 = local_a8;
  lVar8 = -1;
  do {
    lVar8 = lVar8 + 1;
  } while (local_a8[lVar8] != '\0');
  FUN_181247930(param_2,local_a8);
  puVar6 = (uint *)(puVar3 + -0x10);
  if ((*puVar6 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar6;
    *puVar6 = *puVar6 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar6);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar9 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar9) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar9 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar9) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar1 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar9 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar1;
    if (bVar9) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
                    /* WARNING: Subroutine does not return */
  free((void *)0x0);
}



############ FUN_ 180c471b0 size=1009 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180c471b0(uint *param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  undefined8 uVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  int iVar10;
  uint uVar11;
  uint *puVar12;
  bool bVar13;
  undefined1 local_168 [32];
  undefined4 local_148;
  undefined *local_140;
  undefined *local_138;
  int local_130;
  uint *local_128;
  undefined4 local_118 [4];
  undefined1 local_108 [144];
  uint local_78;
  uint local_38 [6];
  ulonglong local_20;
  
  local_20 = DAT_182615970 ^ (ulonglong)local_168;
  uVar2 = param_1[2];
  uVar9 = ~param_1[1];
  uVar1 = ~((param_1[3] ^ uVar2) & 0x807f807f ^ uVar2);
  uVar5 = ~((param_1[3] ^ uVar2) & 0x7f807f80 ^ uVar2);
  uVar7 = (uVar1 ^ ~*param_1) & 0xaaaaaaaa ^ uVar1;
  uVar2 = uVar1 ^ (uVar1 ^ ~*param_1) & 0x55555555 ^ uVar5;
  uVar1 = (uVar7 >> 0x11 ^ uVar7) & 0xff;
  uVar11 = uVar2 & 0x5b705ebb ^ uVar5;
  uVar5 = uVar5 ^ uVar2 & 0xa48fa144;
  uVar8 = ~((uVar1 << 0x11 | uVar1) ^ uVar7);
  uVar2 = (uVar9 >> 6 ^ uVar9) >> 0x11 & 0xf;
  uVar9 = uVar9 ^ (uVar2 << 6 | uVar2) << 0x11;
  uVar2 = (uVar5 >> 6 ^ uVar5) & 0xf;
  uVar2 = uVar5 ^ (uVar2 << 6 | uVar2) ^ uVar9;
  uVar1 = (uVar8 >> 2 ^ uVar8) >> 4 & 1;
  uVar6 = ~(uVar2 & 0xe074d180 ^ uVar9);
  uVar7 = ~(uVar2 & 0x1f8b2e7f ^ uVar9);
  uVar2 = (uVar11 >> 0x11 ^ uVar11) & 0x1ff;
  uVar11 = ~((uVar2 << 0x11 | uVar2) ^ uVar11);
  uVar2 = (uVar11 >> 0xb ^ uVar11) & 3;
  uVar11 = uVar11 ^ (uVar2 << 0xb | uVar2);
  uVar9 = (uVar7 >> 0xc ^ uVar7) >> 9 & 0x7f;
  uVar5 = (uVar6 >> 0x11 ^ uVar6) & 0x3fff;
  uVar2 = uVar11 ^ uVar8 ^ (uVar1 * 4 | uVar1) << 4;
  uVar1 = uVar2 & 0x99999999 ^ uVar11;
  uVar1 = ~(uVar1 << 0xe | uVar1 >> 0x12) + 0xb4821c33;
  uVar1 = ~((uVar1 >> 0x1e | uVar1 * 4) + 0x58752857) + 0x62865bbe;
  uVar3 = CONCAT44(uVar2 & 0x66666666 ^ uVar11,(uVar9 << 0xc | uVar9) << 9 ^ uVar7);
  LOCK();
  bVar13 = DAT_182670778 == 0;
  if (bVar13) {
    DAT_182670778 = 1;
  }
  UNLOCK();
  while (!bVar13) {
    LOCK();
    bVar13 = DAT_182670778 == 0;
    if (bVar13) {
      DAT_182670778 = 1;
    }
    UNLOCK();
  }
  do {
    uVar2 = FUN_180bd9af0(local_108,0,uVar3,local_118);
  } while ((uVar2 & 0xfffffffd) == 0);
  if (uVar2 == 1) {
    local_128 = local_38;
    local_138 = &DAT_18260f200;
    local_140 = &DAT_18260f200;
    local_148 = local_118[0];
    local_130 = (uVar1 >> 0xf | uVar1 * 0x20000) + 0x8eabf894;
    FUN_180c4d000(local_108,(&PTR_DAT_18260f198)[local_78],(&PTR_DAT_18260f1c8)[local_78],uVar3);
  }
  LOCK();
  UNLOCK();
  DAT_182670778 = 0;
  puVar12 = local_38;
  lVar4 = 5;
  do {
    iVar10 = 7;
    uVar2 = (*puVar12 << 0x1d | *puVar12 + 0xf256f0e0 >> 3) ^ 0x5e220846;
    uVar2 = ~(uVar2 >> 0x10 | uVar2 << 0x10) + 0x8a9752e4;
    uVar2 = (uVar2 >> 0xf | uVar2 * 0x20000) + 0x1422ecd4;
    uVar1 = uVar2 >> 3 | uVar2 * 0x20000000;
    *puVar12 = uVar1;
    uVar2 = (uVar5 << 0x11 | uVar5) ^ uVar6;
    do {
      uVar9 = uVar2 ^ (uVar2 ^ uVar1) & 0x8cbe5e76;
      uVar2 = (uVar2 ^ uVar1) & 0x7341a189 ^ uVar2 ^ uVar9;
      uVar1 = (uVar2 & 0xc3c3c3c3 ^ uVar9) + 0xd8f5f455;
      uVar7 = uVar1 >> 0x12 | uVar1 * 0x4000;
      uVar2 = (uVar9 ^ uVar2 & 0x3c3c3c3c) + 0x9f82abc0;
      uVar9 = uVar2 >> 0x12 | uVar2 * 0x4000;
      uVar1 = (uVar7 << 4 | (uVar1 & 0x3ffff) >> 0xe) & 0x87878787 |
              (uVar7 >> 4 | (uVar1 >> 0x12) << 0x1c) & 0x78787878;
      uVar9 = ((uVar2 & 0x3ffff) >> 2 | uVar9 << 0x10) & 0xa3635c9c |
              (uVar9 << 0x10 | (uVar2 & 0x3ffff) >> 2) & 0x5c9ca363;
      uVar2 = (uVar1 >> 0xb ^ uVar1) >> 9 & 0x3ff;
      uVar7 = (uVar9 >> 0x11 ^ uVar9) >> 0xb & 3;
      uVar2 = ((uVar2 << 0xb | uVar2) << 9 ^ uVar1) + 0x91bea859;
      uVar1 = uVar2 * 0x1000000 | uVar2 >> 8;
      uVar9 = ((uVar7 << 0x11 | uVar7) << 0xb ^ uVar9) + 0xdf587936;
      uVar7 = (uVar1 >> 0xc ^ uVar1) >> 2 & 0xfff;
      uVar2 = uVar9 >> 0x1c | uVar9 * 0x10;
      uVar1 = uVar1 ^ (uVar7 << 0xc | uVar7) << 2;
      uVar7 = ((uVar9 & 0xfffffff) >> 1 ^ uVar2) >> 8 & 1;
      uVar2 = uVar2 ^ (uVar7 << 5 | uVar7) << 8;
      iVar10 = iVar10 + -1;
    } while (-1 < iVar10);
    *param_2 = uVar1;
    puVar12 = puVar12 + 1;
    param_2[1] = uVar2;
    param_2 = param_2 + 2;
    lVar4 = lVar4 + -1;
  } while (lVar4 != 0);
}



############ FUN_ 1811fd479 size=75 ############

void FUN_1811fd479(void)

{
  return;
}



############ FUN_ 1805316e0 size=6238 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1805316e0(longlong param_1,uint param_2)

{
  float fVar1;
  longlong *plVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  uint uVar6;
  uint uVar7;
  char cVar8;
  undefined8 *puVar9;
  undefined1 *puVar10;
  void *_Dst;
  longlong *plVar11;
  longlong *plVar12;
  longlong lVar13;
  bool bVar14;
  float fVar15;
  double dVar16;
  double dVar17;
  undefined8 extraout_XMM0_Qb;
  float fVar18;
  double dVar19;
  double dVar20;
  undefined1 auVar21 [16];
  double dVar22;
  double dVar23;
  float fVar24;
  float fVar25;
  undefined1 auStack_1768 [32];
  float local_1748;
  double *local_1728;
  undefined8 *local_1720;
  double *local_16a8;
  undefined8 *local_16a0;
  double *local_1628;
  double *local_1620;
  double *local_15a8;
  double *local_15a0;
  double *local_1528;
  double *local_1520;
  double *local_14a8;
  double *local_14a0;
  undefined1 local_1428 [128];
  undefined1 local_13a8 [128];
  undefined1 local_1328 [128];
  undefined1 local_12a8 [128];
  undefined1 local_1228 [128];
  undefined1 local_11a8 [128];
  undefined1 local_1128 [128];
  undefined1 local_10a8 [128];
  undefined1 local_1028 [128];
  undefined1 local_fa8 [128];
  undefined1 local_f28 [128];
  undefined1 local_ea8 [128];
  undefined1 local_e28 [128];
  undefined1 local_da8 [128];
  undefined1 local_d28 [128];
  undefined1 local_ca8 [128];
  undefined1 local_c28 [128];
  undefined1 local_ba8 [128];
  undefined1 local_b28 [128];
  undefined1 local_aa8 [128];
  undefined1 local_a28 [128];
  undefined1 local_9a8 [128];
  undefined1 local_928 [128];
  undefined1 local_8a8 [128];
  undefined1 local_828 [128];
  undefined1 local_7a8 [128];
  undefined1 local_728 [128];
  undefined1 local_6a8 [128];
  undefined1 local_628 [128];
  undefined1 local_5a8 [128];
  undefined1 local_528 [128];
  undefined1 local_4a8 [128];
  undefined1 local_428 [128];
  undefined1 local_3a8 [128];
  undefined1 local_328 [128];
  undefined1 local_2a8 [128];
  undefined1 local_228 [128];
  undefined1 local_1a8 [128];
  undefined1 local_128 [128];
  ulonglong local_a8;
  
  fVar25 = DAT_1824c41e0;
  fVar1 = DAT_1824c3ea4;
  local_a8 = DAT_182615970 ^ (ulonglong)auStack_1768;
  plVar11 = (longlong *)0x0;
  plVar12 = plVar11;
  if (param_2 < *(uint *)(param_1 + 0x6c)) {
    plVar12 = *(longlong **)(*(longlong *)(param_1 + 0x60) + (longlong)(int)param_2 * 8);
  }
  fVar18 = *(float *)((longlong)plVar12 + 0x80c) * DAT_1824c41e0 *
           *(float *)((longlong)plVar12 + 0x80c);
  fVar18 = (fVar18 + DAT_1824c3ea4) / fVar18;
  fVar15 = fVar18 * DAT_1824c41e0;
  fVar15 = sqrtf(fVar15 * fVar15 * DAT_1824c3d3c - DAT_1824c3ea4);
  fVar15 = logf(fVar15 + fVar18);
  dVar19 = DAT_1824c41e8;
  fVar15 = fVar15 * _DAT_1824c45f8;
  dVar16 = log(DAT_1824c41e8);
  dVar17 = DAT_1824c4050;
  powf(fVar25,(float)((double)(float)(((double)fVar15 / dVar16) / DAT_1824c43d0) * DAT_1824c4050));
  plVar12[0x103] = 0;
  plVar12[0x104] = 0;
  dVar22 = DAT_1824c42b0;
  dVar20 = DAT_1824c4270;
  dVar16 = DAT_1824c4140;
  uVar5 = DAT_1824c40c0;
  uVar4 = DAT_1824c4060;
  uVar3 = DAT_1824c4058;
  fVar25 = (*(float *)((longlong)plVar12 + 0x80c) - DAT_1824c3e00) * DAT_1824c3d8c + fVar1;
  switch((int)plVar12[0x100]) {
  case 0:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 2;
    *(undefined1 *)((longlong)plVar12 + 0x819) = 1;
    dVar19 = pow(dVar19,dVar16);
    dVar19 = sqrt(dVar19 - dVar16);
    uVar7 = DAT_1824c4f20._4_4_;
    uVar6 = (uint)DAT_1824c4f20;
    dVar19 = ((double)*(float *)((longlong)plVar12 + 0x804) * (dVar16 / dVar19) * DAT_1824c4248) /
             (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24));
    dVar19 = exp((double)CONCAT44((uint)((ulonglong)dVar19 >> 0x20) ^ DAT_1824c4f20._4_4_,
                                  SUB84(dVar19,0) ^ (uint)DAT_1824c4f20));
    auVar21._8_4_ = (int)extraout_XMM0_Qb;
    auVar21._0_8_ = dVar19;
    auVar21._12_4_ = (int)((ulonglong)extraout_XMM0_Qb >> 0x20);
    FUN_180534730(&local_16a8);
    *local_16a8 = dVar16 - auVar21._0_8_;
    local_16a8[1] = 0.0;
    local_16a8[2] = 0.0;
    *local_16a0 = 0x3ff0000000000000;
    local_16a0[1] = CONCAT44(auVar21._4_4_ ^ uVar7,auVar21._0_4_ ^ uVar6);
    local_16a0[2] = 0;
    memcpy((void *)*plVar12,local_16a8,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],local_16a0,(longlong)(int)plVar12[2] << 3);
    puVar10 = local_ea8;
    break;
  case 1:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 2;
    *(undefined1 *)((longlong)plVar12 + 0x819) = 1;
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_e28,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),uVar5);
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    puVar10 = local_da8;
    dVar17 = DAT_1824c4140;
    break;
  case 2:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 3;
    *(undefined1 *)((longlong)plVar12 + 0x81a) = 1;
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_d28,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),uVar4);
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_ca8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4188);
    memcpy((void *)plVar12[0x10],(void *)*puVar9,(longlong)(int)plVar12[0x12] << 3);
    memcpy((void *)plVar12[0x11],(void *)puVar9[1],(longlong)(int)plVar12[0x12] << 3);
    puVar10 = local_c28;
    goto LAB_180531b79;
  case 3:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 5;
    *(undefined1 *)((longlong)plVar12 + 0x81c) = 1;
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_ba8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),uVar3);
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_b28,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4078);
    memcpy((void *)plVar12[0x10],(void *)*puVar9,(longlong)(int)plVar12[0x12] << 3);
    memcpy((void *)plVar12[0x11],(void *)puVar9[1],(longlong)(int)plVar12[0x12] << 3);
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_aa8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4120);
    memcpy((void *)plVar12[0x20],(void *)*puVar9,(longlong)(int)plVar12[0x22] << 3);
    memcpy((void *)plVar12[0x21],(void *)puVar9[1],(longlong)(int)plVar12[0x22] << 3);
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_a28,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4200);
    memcpy((void *)plVar12[0x30],(void *)*puVar9,(longlong)(int)plVar12[0x32] << 3);
    memcpy((void *)plVar12[0x31],(void *)puVar9[1],(longlong)(int)plVar12[0x32] << 3);
    puVar10 = local_9a8;
    goto LAB_180531d8a;
  case 4:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 2;
    *(undefined1 *)((longlong)plVar12 + 0x819) = 1;
    dVar19 = pow(dVar19,dVar16);
    dVar19 = sqrt(dVar19 - dVar16);
    uVar7 = DAT_1824c4f20._4_4_;
    uVar6 = (uint)DAT_1824c4f20;
    dVar19 = ((double)*(float *)((longlong)plVar12 + 0x804) * (dVar16 / dVar19) * DAT_1824c4248) /
             (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24));
    dVar19 = exp((double)CONCAT44((uint)((ulonglong)dVar19 >> 0x20) ^ DAT_1824c4f20._4_4_,
                                  SUB84(dVar19,0) ^ (uint)DAT_1824c4f20));
    FUN_180534730(&local_1728);
    dVar20 = (dVar19 + dVar16) * DAT_1824c4698;
    *local_1728 = (dVar19 + dVar16) * dVar17;
    local_1728[1] = dVar20;
    local_1728[2] = 0.0;
    *local_1720 = 0x3ff0000000000000;
    local_1720[1] = CONCAT44((uint)((ulonglong)dVar19 >> 0x20) ^ uVar7,SUB84(dVar19,0) ^ uVar6);
    local_1720[2] = 0;
    memcpy((void *)*plVar12,local_1728,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],local_1720,(longlong)(int)plVar12[2] << 3);
    puVar10 = local_1428;
    break;
  case 5:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 2;
    *(undefined1 *)((longlong)plVar12 + 0x819) = 1;
    puVar9 = (undefined8 *)
             FUN_180534300(local_13a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),uVar5);
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    puVar10 = local_1328;
    dVar17 = DAT_1824c4140;
    break;
  case 6:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 3;
    *(undefined1 *)((longlong)plVar12 + 0x81a) = 1;
    puVar9 = (undefined8 *)
             FUN_180534300(local_12a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),uVar4);
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    puVar9 = (undefined8 *)
             FUN_180534300(local_1228,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4188);
    memcpy((void *)plVar12[0x10],(void *)*puVar9,(longlong)(int)plVar12[0x12] << 3);
    memcpy((void *)plVar12[0x11],(void *)puVar9[1],(longlong)(int)plVar12[0x12] << 3);
    puVar10 = local_11a8;
LAB_180531b79:
    local_1748 = fVar25;
    puVar9 = (undefined8 *)
             FUN_180533ec0(puVar10,(double)((float)*(int *)(param_1 + 0x240080) *
                                           *(float *)(param_1 + 0x24)),
                           (double)*(float *)((longlong)plVar12 + 0x804),dVar19);
    memcpy((void *)plVar12[0x20],(void *)*puVar9,(longlong)(int)plVar12[0x22] << 3);
    lVar13 = (longlong)(int)plVar12[0x22];
    _Dst = (void *)plVar12[0x21];
    goto LAB_180532e99;
  case 7:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 5;
    *(undefined1 *)((longlong)plVar12 + 0x81c) = 1;
    puVar9 = (undefined8 *)
             FUN_180534300(local_1128,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),uVar3);
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    puVar9 = (undefined8 *)
             FUN_180534300(local_10a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4078);
    memcpy((void *)plVar12[0x10],(void *)*puVar9,(longlong)(int)plVar12[0x12] << 3);
    memcpy((void *)plVar12[0x11],(void *)puVar9[1],(longlong)(int)plVar12[0x12] << 3);
    puVar9 = (undefined8 *)
             FUN_180534300(local_1028,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4120);
    memcpy((void *)plVar12[0x20],(void *)*puVar9,(longlong)(int)plVar12[0x22] << 3);
    memcpy((void *)plVar12[0x21],(void *)puVar9[1],(longlong)(int)plVar12[0x22] << 3);
    puVar9 = (undefined8 *)
             FUN_180534300(local_fa8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4200);
    memcpy((void *)plVar12[0x30],(void *)*puVar9,(longlong)(int)plVar12[0x32] << 3);
    memcpy((void *)plVar12[0x31],(void *)puVar9[1],(longlong)(int)plVar12[0x32] << 3);
    puVar10 = local_f28;
LAB_180531d8a:
    local_1748 = fVar25;
    puVar9 = (undefined8 *)
             FUN_180533ec0(puVar10,(double)((float)*(int *)(param_1 + 0x240080) *
                                           *(float *)(param_1 + 0x24)),
                           (double)*(float *)((longlong)plVar12 + 0x804),DAT_1824c4228);
    memcpy((void *)plVar12[0x40],(void *)*puVar9,(longlong)(int)plVar12[0x42] << 3);
    lVar13 = (longlong)(int)plVar12[0x42];
    _Dst = (void *)plVar12[0x41];
    goto LAB_180532e99;
  default:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 1;
    *(undefined1 *)(plVar12 + 0x103) = 1;
    dVar17 = pow(dVar20,(double)*(float *)(plVar12 + 0x101) / DAT_1824c42b0);
    local_1748 = (float)dVar17;
    puVar9 = (undefined8 *)
             FUN_180533ec0(local_128,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),
                           (double)*(float *)((longlong)plVar12 + 0x80c));
    goto LAB_180532e7b;
  case 9:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 1;
    *(undefined1 *)(plVar12 + 0x103) = 1;
    dVar17 = pow(dVar20,(double)*(float *)(plVar12 + 0x101) / DAT_1824c42b0);
    local_1748 = (float)dVar17;
    puVar9 = (undefined8 *)
             FUN_180533ff0(local_8a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),
                           (double)*(float *)((longlong)plVar12 + 0x80c));
    goto LAB_180532e7b;
  case 10:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 1;
    *(undefined1 *)(plVar12 + 0x103) = 1;
    dVar17 = pow(dVar20,(double)*(float *)(plVar12 + 0x101) / DAT_1824c42b0);
    local_1748 = (float)dVar17;
    puVar9 = (undefined8 *)
             FUN_180534180(local_928,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),
                           (double)*(float *)((longlong)plVar12 + 0x80c));
LAB_180532e7b:
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    lVar13 = (longlong)(int)plVar12[2];
    _Dst = (void *)plVar12[1];
    goto LAB_180532e99;
  case 0xb:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 2;
    *(undefined1 *)((longlong)plVar12 + 0x819) = 1;
    dVar17 = pow(DAT_1824c4270,
                 (double)(float)(*(uint *)(plVar12 + 0x101) ^ DAT_1824c4f30) / DAT_1824c42b0);
    local_1748 = (float)dVar17;
    puVar9 = (undefined8 *)
             FUN_180534180(local_828,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),
                           (double)*(float *)((longlong)plVar12 + 0x80c));
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    dVar17 = pow(DAT_1824c4270,(double)*(float *)(plVar12 + 0x101) / DAT_1824c42b0);
    local_1748 = (float)dVar17;
    puVar9 = (undefined8 *)
             FUN_180533ff0(local_7a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ),(double)*(float *)((longlong)plVar12 + 0x804),
                           (double)*(float *)((longlong)plVar12 + 0x80c));
    goto LAB_1805319e8;
  case 0xc:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 1;
    *(undefined1 *)(plVar12 + 0x103) = 1;
    fVar1 = *(float *)((longlong)plVar12 + 0x80c);
    dVar20 = tan(((double)*(float *)((longlong)plVar12 + 0x804) * DAT_1824c4218) /
                 (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)));
    dVar16 = DAT_1824c4140;
    dVar20 = DAT_1824c4140 / dVar20;
    dVar23 = (DAT_1824c4140 / (double)fVar1) * dVar20;
    dVar17 = dVar20 * dVar20;
    dVar22 = DAT_1824c4140 / (dVar23 + DAT_1824c4140 + dVar17);
    FUN_180534730(&local_1628);
    dVar20 = (dVar22 * dVar20) / (double)fVar1;
    *local_1628 = dVar20;
    local_1628[1] = 0.0;
    local_1628[2] =
         (double)CONCAT44((uint)((ulonglong)dVar20 >> 0x20) ^ DAT_1824c4f20._4_4_,
                          SUB84(dVar20,0) ^ (uint)DAT_1824c4f20);
    *local_1620 = 1.0;
    local_1620[1] = (dVar16 - dVar17) * dVar22 * dVar19;
    local_1620[2] = ((dVar16 - dVar23) + dVar17) * dVar22;
    memcpy((void *)*plVar12,local_1628,(longlong)(int)plVar12[2] << 3);
    lVar13 = (longlong)(int)plVar12[2];
    _Dst = (void *)plVar12[1];
    local_1520 = local_1620;
    goto LAB_180532e9d;
  case 0xd:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 4;
    *(undefined1 *)((longlong)plVar12 + 0x81b) = 1;
    dVar16 = pow(dVar20,((double)*(float *)(plVar12 + 0x101) * dVar17) / dVar22);
    local_1748 = (float)dVar16;
    puVar9 = (undefined8 *)
             FUN_180533ff0(local_728,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    dVar16 = pow(dVar20,((double)*(float *)(plVar12 + 0x101) * dVar17) / dVar22);
    local_1748 = (float)dVar16;
    puVar9 = (undefined8 *)
             FUN_180533ff0(local_6a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x10],(void *)*puVar9,(longlong)(int)plVar12[0x12] << 3);
    memcpy((void *)plVar12[0x11],(void *)puVar9[1],(longlong)(int)plVar12[0x12] << 3);
    uVar6 = DAT_1824c4f30;
    dVar16 = pow(dVar20,((double)(float)(*(uint *)(plVar12 + 0x101) ^ DAT_1824c4f30) * dVar17) /
                        dVar22);
    local_1748 = (float)dVar16;
    puVar9 = (undefined8 *)
             FUN_180533ff0(local_628,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x20],(void *)*puVar9,(longlong)(int)plVar12[0x22] << 3);
    memcpy((void *)plVar12[0x21],(void *)puVar9[1],(longlong)(int)plVar12[0x22] << 3);
    dVar17 = pow(dVar20,((double)(float)(*(uint *)(plVar12 + 0x101) ^ uVar6) * dVar17) / dVar22);
    local_1748 = (float)dVar17;
    puVar9 = (undefined8 *)
             FUN_180533ff0(local_5a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x30],(void *)*puVar9,(longlong)(int)plVar12[0x32] << 3);
    lVar13 = (longlong)(int)plVar12[0x32];
    _Dst = (void *)plVar12[0x31];
    goto LAB_180532e99;
  case 0xe:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 9;
    *(undefined1 *)((longlong)plVar12 + 0x81b) = 1;
    *(undefined2 *)((longlong)plVar12 + 0x81f) = 1;
    puVar9 = (undefined8 *)
             FUN_180534300(local_528,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)*plVar12,(void *)*puVar9,(longlong)(int)plVar12[2] << 3);
    memcpy((void *)plVar12[1],(void *)puVar9[1],(longlong)(int)plVar12[2] << 3);
    puVar9 = (undefined8 *)
             FUN_180534300(local_4a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x10],(void *)*puVar9,(longlong)(int)plVar12[0x12] << 3);
    memcpy((void *)plVar12[0x11],(void *)puVar9[1],(longlong)(int)plVar12[0x12] << 3);
    puVar9 = (undefined8 *)
             FUN_180534300(local_428,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x20],(void *)*puVar9,(longlong)(int)plVar12[0x22] << 3);
    memcpy((void *)plVar12[0x21],(void *)puVar9[1],(longlong)(int)plVar12[0x22] << 3);
    puVar9 = (undefined8 *)
             FUN_180534300(local_3a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x30],(void *)*puVar9,(longlong)(int)plVar12[0x32] << 3);
    memcpy((void *)plVar12[0x31],(void *)puVar9[1],(longlong)(int)plVar12[0x32] << 3);
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_328,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x40],(void *)*puVar9,(longlong)(int)plVar12[0x42] << 3);
    memcpy((void *)plVar12[0x41],(void *)puVar9[1],(longlong)(int)plVar12[0x42] << 3);
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_2a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x50],(void *)*puVar9,(longlong)(int)plVar12[0x52] << 3);
    memcpy((void *)plVar12[0x51],(void *)puVar9[1],(longlong)(int)plVar12[0x52] << 3);
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_228,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x60],(void *)*puVar9,(longlong)(int)plVar12[0x62] << 3);
    memcpy((void *)plVar12[0x61],(void *)puVar9[1],(longlong)(int)plVar12[0x62] << 3);
    puVar9 = (undefined8 *)
             FUN_1805343e0(local_1a8,
                           (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)
                                   ));
    memcpy((void *)plVar12[0x70],(void *)*puVar9,(longlong)(int)plVar12[0x72] << 3);
    memcpy((void *)plVar12[0x71],(void *)puVar9[1],(longlong)(int)plVar12[0x72] << 3);
    dVar16 = tan(((double)*(float *)((longlong)plVar12 + 0x804) * DAT_1824c4218) /
                 (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)));
    dVar17 = DAT_1824c4140;
    dVar16 = DAT_1824c4140 / dVar16;
    dVar23 = dVar16 * dVar16;
    dVar16 = dVar16 / _DAT_1824c4240;
    dVar22 = DAT_1824c4140 / (dVar16 + DAT_1824c4140 + dVar23);
    FUN_180534730(&local_14a8);
    dVar20 = (dVar23 + dVar17) * dVar22;
    dVar19 = dVar22 * dVar19 * (dVar17 - dVar23);
    *local_14a8 = dVar20;
    local_14a8[1] = dVar19;
    local_14a8[2] = dVar20;
    *local_14a0 = 1.0;
    local_14a0[1] = dVar19;
    local_14a0[2] = ((dVar17 - dVar16) + dVar23) * dVar22;
    memcpy((void *)plVar12[0x80],local_14a8,(longlong)(int)plVar12[0x82] << 3);
    lVar13 = (longlong)(int)plVar12[0x82];
    _Dst = (void *)plVar12[0x81];
    local_1520 = local_14a0;
    goto LAB_180532e9d;
  case 0xf:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 1;
    *(undefined1 *)(plVar12 + 0x103) = 1;
    fVar15 = (float)(((double)*(float *)((longlong)plVar12 + 0x804) * DAT_1824c4248) /
                    (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)));
    fVar25 = sinf(fVar15);
    dVar17 = sqrt((double)*(float *)((longlong)plVar12 + 0x80c));
    fVar24 = (float)((double)fVar25 / (dVar17 * dVar19));
    FUN_180534730(&local_15a8);
    fVar25 = cosf(fVar15);
    fVar18 = fVar25 * DAT_1824c46a8;
    fVar15 = (fVar25 + fVar1) * DAT_1824c3d8c;
    *local_15a8 = (double)fVar15;
    local_15a8[1] = (double)(float)((uint)(fVar25 + fVar1) ^ DAT_1824c4f30);
    local_15a8[2] = (double)fVar15;
    *local_15a0 = (double)(fVar24 + fVar1);
    local_15a0[1] = (double)fVar18;
    local_15a0[2] = (double)(fVar1 - fVar24);
    memcpy((void *)*plVar12,local_15a8,(longlong)(int)plVar12[2] << 3);
    lVar13 = (longlong)(int)plVar12[2];
    _Dst = (void *)plVar12[1];
    local_1520 = local_15a0;
    goto LAB_180532e9d;
  case 0x10:
    *(undefined4 *)((longlong)plVar12 + 0x814) = 1;
    *(undefined1 *)(plVar12 + 0x103) = 1;
    fVar15 = (float)(((double)*(float *)((longlong)plVar12 + 0x804) * DAT_1824c4248) /
                    (double)((float)*(int *)(param_1 + 0x240080) * *(float *)(param_1 + 0x24)));
    fVar25 = sinf(fVar15);
    dVar17 = sqrt((double)*(float *)((longlong)plVar12 + 0x80c));
    fVar24 = (float)((double)fVar25 / (dVar17 * dVar19));
    FUN_180534730(&local_1528);
    fVar25 = cosf(fVar15);
    fVar18 = fVar25 * DAT_1824c46a8;
    fVar15 = (fVar1 - fVar25) * DAT_1824c3d8c;
    *local_1528 = (double)fVar15;
    local_1528[1] = (double)(fVar1 - fVar25);
    local_1528[2] = (double)fVar15;
    *local_1520 = (double)(fVar24 + fVar1);
    local_1520[1] = (double)fVar18;
    local_1520[2] = (double)(fVar1 - fVar24);
    memcpy((void *)*plVar12,local_1528,(longlong)(int)plVar12[2] << 3);
    lVar13 = (longlong)(int)plVar12[2];
    _Dst = (void *)plVar12[1];
    goto LAB_180532e9d;
  }
  local_1748 = fVar25;
  puVar9 = (undefined8 *)
           FUN_180533ec0(puVar10,(double)((float)*(int *)(param_1 + 0x240080) *
                                         *(float *)(param_1 + 0x24)),
                         (double)*(float *)((longlong)plVar12 + 0x804),dVar17);
LAB_1805319e8:
  memcpy((void *)plVar12[0x10],(void *)*puVar9,(longlong)(int)plVar12[0x12] << 3);
  lVar13 = (longlong)(int)plVar12[0x12];
  _Dst = (void *)plVar12[0x11];
LAB_180532e99:
  local_1520 = (double *)puVar9[1];
LAB_180532e9d:
  memcpy(_Dst,local_1520,lVar13 << 3);
  if (param_2 < *(uint *)(param_1 + 0x7c)) {
    plVar11 = *(longlong **)(*(longlong *)(param_1 + 0x70) + (longlong)(int)param_2 * 8);
  }
  plVar2 = (longlong *)*plVar12;
  lVar13 = plVar12[1];
  plVar11[0x17] = *plVar2;
  plVar11[0x18] = plVar2[1];
  plVar11[0x19] = plVar2[2];
  plVar11[0x1a] = *(longlong *)(lVar13 + 8);
  plVar11[0x1b] = *(longlong *)(lVar13 + 0x10);
  if ((char)plVar11[0x12] != '\0') {
    LOCK();
    bVar14 = *(int *)(plVar11[0xe] + 0x18) == 0;
    if (bVar14) {
      *(int *)(plVar11[0xe] + 0x18) = 1;
    }
    UNLOCK();
    if ((bVar14) && (cVar8 = FUN_1812a6720(plVar11[0xe]), cVar8 == '\0')) {
      LOCK();
      *(undefined4 *)(plVar11[0xe] + 0x18) = 0;
      UNLOCK();
    }
  }
  FUN_180533de0(param_1,param_2);
}



############ FUN_ 181392710 size=82 ############

undefined8 FUN_181392710(undefined8 *param_1)

{
  if (param_1 != (undefined8 *)0x0) {
    if ((void *)*param_1 != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)*param_1);
    }
    if ((void *)param_1[3] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[3]);
    }
    if ((void *)param_1[4] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)param_1[4]);
    }
    memset(param_1,0,0x178);
  }
  return 0;
}



############ FUN_ 1812b20c0 size=167 ############

undefined8 * FUN_1812b20c0(undefined8 *param_1,int param_2)

{
  uint *puVar1;
  undefined8 *puVar2;
  uint uVar3;
  
  *param_1 = 0;
  param_1[3] = 4;
  uVar3 = 0x80;
  *(undefined4 *)(param_1 + 4) = 0xffffffff;
  *(undefined1 *)((longlong)param_1 + 0x24) = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  while (param_2 = param_2 + -1, -1 < param_2) {
    if (-1 < (int)uVar3) {
      if (*(int *)(param_1 + 4) < (int)uVar3) {
        FUN_18123d8b0(param_1,(longlong)((int)uVar3 >> 5) + 1);
        *(uint *)(param_1 + 4) = uVar3;
      }
      puVar2 = param_1 + 1;
      if ((undefined8 *)*param_1 != (undefined8 *)0x0) {
        puVar2 = (undefined8 *)*param_1;
      }
      puVar1 = (uint *)((longlong)puVar2 + (longlong)((int)uVar3 >> 5) * 4);
      *puVar1 = *puVar1 | 1 << (uVar3 & 0x1f);
    }
    uVar3 = uVar3 + 1;
  }
  return param_1;
}



############ FUN_ 18058b860 size=507 ############

void FUN_18058b860(undefined8 *param_1)

{
  longlong *plVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  uint uVar4;
  longlong *plVar5;
  ulonglong uVar6;
  uint *_Memory;
  undefined8 uVar7;
  
  uVar7 = 0xfffffffffffffffe;
  *param_1 = FilterGraph<float,6,512>::vftable;
  param_1[0x16] = FilterGraph<float,6,512>::vftable;
  param_1[0x19] = FilterGraph<float,6,512>::vftable;
  param_1[0x1c] = FilterGraph<float,6,512>::vftable;
  param_1[0x1d] = FilterGraph<float,6,512>::vftable;
  param_1[0x1e] = FilterGraph<float,6,512>::vftable;
  plVar1 = (longlong *)param_1[0xe];
  if (plVar1 != (longlong *)0x0) {
    plVar2 = (longlong *)*plVar1;
    for (plVar5 = plVar2; plVar5 != plVar2 + *(int *)((longlong)plVar1 + 0xc); plVar5 = plVar5 + 1)
    {
      if (param_1 == (undefined8 *)*plVar5) {
        uVar6 = (longlong)plVar5 - (longlong)plVar2 >> 3;
        uVar4 = (uint)uVar6;
        if (-1 < (int)uVar4) {
          if ((int)uVar4 < (int)plVar1[2]) {
            *(int *)(plVar1 + 2) = (int)plVar1[2] + -1;
          }
          if (uVar4 < *(uint *)((longlong)plVar1 + 0xc)) {
            FUN_18049b4a0(plVar1,uVar6 & 0xffffffff,plVar1,plVar2,0xfffffffffffffffe);
          }
        }
        break;
      }
    }
  }
  plVar1 = *(longlong **)(param_1[0x138c] + 0x70);
  if (plVar1 != (longlong *)0x0) {
    plVar2 = (longlong *)*plVar1;
    for (plVar5 = plVar2; plVar5 != plVar2 + *(int *)((longlong)plVar1 + 0xc); plVar5 = plVar5 + 1)
    {
      if (param_1 == (undefined8 *)*plVar5) {
        uVar6 = (longlong)plVar5 - (longlong)plVar2 >> 3;
        uVar4 = (uint)uVar6;
        if (-1 < (int)uVar4) {
          if ((int)uVar4 < (int)plVar1[2]) {
            *(int *)(plVar1 + 2) = (int)plVar1[2] + -1;
          }
          if (uVar4 < *(uint *)((longlong)plVar1 + 0xc)) {
            FUN_18049b4a0(plVar1,uVar6 & 0xffffffff,plVar1,plVar2,uVar7);
          }
        }
        break;
      }
    }
  }
  FUN_18058d180(param_1 + 0x138a);
  FUN_180568840(param_1 + 5000);
  _Memory = (uint *)(param_1[0x1386] + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar4 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar4 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  if (param_1[0x1384] != 0) {
    FUN_18056a070();
  }
  puVar3 = (undefined8 *)param_1[0x1382];
  if (puVar3 != (undefined8 *)0x0) {
    (**(code **)*puVar3)(puVar3,1);
  }
  FUN_180485f00(param_1 + 0x1380);
  FUN_180485f00(param_1 + 0x137e);
  puVar3 = (undefined8 *)param_1[0x137d];
  if (puVar3 != (undefined8 *)0x0) {
    (**(code **)*puVar3)(puVar3,1);
  }
  FUN_180484cd0(param_1 + 0x1362);
  FUN_180484cd0(param_1 + 0x1347);
  *(undefined4 *)((longlong)param_1 + 0x9a34) = 0;
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[0x1345]);
}



############ FUN_ 180f3a8a0 size=12728 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x000180f3da2e) */
/* WARNING: Removing unreachable block (ram,0x000180f3da36) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_180f3a8a0(longlong param_1,byte *param_2,byte *param_3,undefined8 param_4,uint param_5,
                  byte *param_6,byte *param_7,uint param_8,undefined8 param_9)

{
  byte *pbVar1;
  byte *pbVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  byte *pbVar28;
  longlong lVar29;
  byte *pbVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  uint uVar39;
  uint uVar40;
  bool bVar41;
  byte bStackX_21;
  byte bStackX_22;
  byte bStackX_23;
  byte bStackX_24;
  byte bStackX_25;
  byte bStackX_26;
  byte bStackX_27;
  undefined1 auStack_5248 [32];
  uint local_5228;
  uint local_5224;
  uint local_5220;
  uint local_521c;
  uint local_5218;
  uint local_5214;
  uint local_5210;
  uint local_520c;
  uint local_5208;
  uint local_5204;
  uint local_5200;
  uint local_51fc;
  uint local_51f8;
  uint local_51f4;
  uint local_51f0;
  uint local_51ec;
  uint local_51e8;
  uint local_51e4;
  uint local_51e0;
  int local_51dc;
  uint local_51d8;
  uint local_51d4;
  uint local_51d0;
  uint local_51cc;
  uint local_51c8;
  uint local_51c4;
  uint local_51c0;
  uint local_51bc;
  uint local_51b8;
  uint local_51b4;
  uint local_51b0;
  uint local_51ac;
  uint local_51a8;
  uint local_51a4;
  uint local_51a0;
  uint local_519c;
  uint local_5198;
  uint local_5194;
  uint local_5190;
  uint local_518c;
  uint local_5188;
  uint local_5184;
  uint local_5180;
  uint local_517c;
  uint local_5178;
  uint local_5174;
  uint local_5170;
  uint local_516c;
  uint local_5168;
  uint local_5164;
  uint local_5160;
  uint local_515c;
  uint local_5158;
  uint local_5154;
  uint local_5150;
  uint local_514c;
  uint local_5148;
  int local_5144;
  uint local_5140;
  uint local_513c;
  uint local_5138;
  uint local_5134;
  int local_5130;
  uint local_512c;
  uint local_5128;
  uint local_5124;
  uint local_5120;
  uint local_511c;
  uint local_5118;
  int local_5114;
  uint local_5110;
  uint local_510c;
  uint local_5108;
  uint local_5104;
  uint local_5100;
  uint local_50fc;
  uint local_50f8;
  uint local_50f4;
  uint local_50f0;
  uint local_50ec;
  uint local_50e8;
  uint local_50e4;
  uint local_50e0;
  uint local_50dc;
  uint local_50d8;
  uint local_50d4;
  uint local_50d0;
  uint local_50cc;
  uint local_50c8;
  uint local_50c4;
  int local_50c0;
  uint local_50bc;
  uint local_50b8;
  uint local_50b4;
  uint local_50b0;
  uint local_50ac;
  uint local_50a8;
  byte *local_50a0;
  byte *local_5098;
  longlong local_5090;
  undefined1 local_5088 [20480];
  longlong local_88;
  byte *local_80;
  byte *local_78;
  undefined8 local_70;
  uint local_68;
  byte *local_60;
  byte *local_58;
  uint local_50;
  undefined8 local_48;
  uint *local_40;
  ulonglong local_38;
  undefined8 uStack_30;
  
  uStack_30 = 0x180f3a8c7;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_5248;
  DAT_182671c40 = 0;
  _DAT_182671c30 = local_5088;
  uVar31 = 0x811c9dc5;
  if (param_1 != 0) {
    lVar29 = 0x34;
    pbVar30 = (byte *)(param_1 + 2);
    do {
      uVar31 = ((((pbVar30[-2] ^ uVar31) * 0x1000193 ^ (uint)pbVar30[-1]) * 0x1000193 ^
                (uint)*pbVar30) * 0x1000193 ^ (uint)pbVar30[1]) * 0x1000193;
      lVar29 = lVar29 + -1;
      pbVar30 = pbVar30 + 4;
    } while (lVar29 != 0);
  }
  if (param_2 != (byte *)0x0) {
    uVar31 = ((((((((((((((((((((((((((((((((uVar31 ^ *param_2) * 0x1000193 ^ (uint)param_2[1]) *
                                           0x1000193 ^ (uint)param_2[2]) * 0x1000193 ^
                                         (uint)param_2[3]) * 0x1000193 ^ (uint)param_2[4]) *
                                        0x1000193 ^ (uint)param_2[5]) * 0x1000193 ^ (uint)param_2[6]
                                      ) * 0x1000193 ^ (uint)param_2[7]) * 0x1000193 ^
                                    (uint)param_2[8]) * 0x1000193 ^ (uint)param_2[9]) * 0x1000193 ^
                                  (uint)param_2[10]) * 0x1000193 ^ (uint)param_2[0xb]) * 0x1000193 ^
                                (uint)param_2[0xc]) * 0x1000193 ^ (uint)param_2[0xd]) * 0x1000193 ^
                              (uint)param_2[0xe]) * 0x1000193 ^ (uint)param_2[0xf]) * 0x1000193 ^
                            (uint)param_2[0x10]) * 0x1000193 ^ (uint)param_2[0x11]) * 0x1000193 ^
                          (uint)param_2[0x12]) * 0x1000193 ^ (uint)param_2[0x13]) * 0x1000193 ^
                        (uint)param_2[0x14]) * 0x1000193 ^ (uint)param_2[0x15]) * 0x1000193 ^
                      (uint)param_2[0x16]) * 0x1000193 ^ (uint)param_2[0x17]) * 0x1000193 ^
                    (uint)param_2[0x18]) * 0x1000193 ^ (uint)param_2[0x19]) * 0x1000193 ^
                  (uint)param_2[0x1a]) * 0x1000193 ^ (uint)param_2[0x1b]) * 0x1000193 ^
                (uint)param_2[0x1c]) * 0x1000193 ^ (uint)param_2[0x1d]) * 0x1000193 ^
              (uint)param_2[0x1e]) * 0x1000193 ^ (uint)param_2[0x1f]) * 0x1000193;
  }
  if (param_3 != (byte *)0x0) {
    uVar31 = ((((((((((((((((((((((((((((((((uVar31 ^ *param_3) * 0x1000193 ^ (uint)param_3[1]) *
                                           0x1000193 ^ (uint)param_3[2]) * 0x1000193 ^
                                         (uint)param_3[3]) * 0x1000193 ^ (uint)param_3[4]) *
                                        0x1000193 ^ (uint)param_3[5]) * 0x1000193 ^ (uint)param_3[6]
                                      ) * 0x1000193 ^ (uint)param_3[7]) * 0x1000193 ^
                                    (uint)param_3[8]) * 0x1000193 ^ (uint)param_3[9]) * 0x1000193 ^
                                  (uint)param_3[10]) * 0x1000193 ^ (uint)param_3[0xb]) * 0x1000193 ^
                                (uint)param_3[0xc]) * 0x1000193 ^ (uint)param_3[0xd]) * 0x1000193 ^
                              (uint)param_3[0xe]) * 0x1000193 ^ (uint)param_3[0xf]) * 0x1000193 ^
                            (uint)param_3[0x10]) * 0x1000193 ^ (uint)param_3[0x11]) * 0x1000193 ^
                          (uint)param_3[0x12]) * 0x1000193 ^ (uint)param_3[0x13]) * 0x1000193 ^
                        (uint)param_3[0x14]) * 0x1000193 ^ (uint)param_3[0x15]) * 0x1000193 ^
                      (uint)param_3[0x16]) * 0x1000193 ^ (uint)param_3[0x17]) * 0x1000193 ^
                    (uint)param_3[0x18]) * 0x1000193 ^ (uint)param_3[0x19]) * 0x1000193 ^
                  (uint)param_3[0x1a]) * 0x1000193 ^ (uint)param_3[0x1b]) * 0x1000193 ^
                (uint)param_3[0x1c]) * 0x1000193 ^ (uint)param_3[0x1d]) * 0x1000193 ^
              (uint)param_3[0x1e]) * 0x1000193 ^ (uint)param_3[0x1f]) * 0x1000193;
  }
  pbVar30 = (byte *)0x2;
  bStackX_21 = (byte)((ulonglong)param_4 >> 8);
  bStackX_22 = (byte)((ulonglong)param_4 >> 0x10);
  bStackX_23 = (byte)((ulonglong)param_4 >> 0x18);
  bStackX_24 = (byte)((ulonglong)param_4 >> 0x20);
  bStackX_25 = (byte)((ulonglong)param_4 >> 0x28);
  bStackX_26 = (byte)((ulonglong)param_4 >> 0x30);
  bStackX_27 = (byte)((ulonglong)param_4 >> 0x38);
  uVar31 = ((((((((((((uVar31 ^ (uint)param_4 & 0xff) * 0x1000193 ^ (uint)bStackX_21) * 0x1000193 ^
                    (uint)bStackX_22) * 0x1000193 ^ (uint)bStackX_23) * 0x1000193 ^ (uint)bStackX_24
                  ) * 0x1000193 ^ (uint)bStackX_25) * 0x1000193 ^ (uint)bStackX_26) * 0x1000193 ^
               (uint)bStackX_27) * 0x1000193 ^ param_5 & 0xff) * 0x1000193 ^ param_5 >> 8 & 0xff) *
             0x1000193 ^ param_5 >> 0x10 & 0xff) * 0x1000193 ^ param_5 >> 0x18) * 0x1000193;
  pbVar1 = param_7;
  pbVar2 = param_7;
  if (param_6 != (byte *)0x0) {
    lVar29 = 2;
    pbVar28 = param_6;
    do {
      uVar31 = ((((((((((((((((((((((((((((((((((((((((((((((((uVar31 ^ *pbVar28) * 0x1000193 ^
                                                             (uint)pbVar28[1]) * 0x1000193 ^
                                                            (uint)pbVar28[2]) * 0x1000193 ^
                                                           (uint)pbVar28[3]) * 0x1000193 ^
                                                          (uint)pbVar28[4]) * 0x1000193 ^
                                                         (uint)pbVar28[5]) * 0x1000193 ^
                                                        (uint)pbVar28[6]) * 0x1000193 ^
                                                       (uint)pbVar28[7]) * 0x1000193 ^
                                                      (uint)pbVar28[8]) * 0x1000193 ^
                                                     (uint)pbVar28[9]) * 0x1000193 ^
                                                    (uint)pbVar28[10]) * 0x1000193 ^
                                                   (uint)pbVar28[0xb]) * 0x1000193 ^
                                                  (uint)pbVar28[0xc]) * 0x1000193 ^
                                                 (uint)pbVar28[0xd]) * 0x1000193 ^
                                                (uint)pbVar28[0xe]) * 0x1000193 ^ (uint)pbVar28[0xf]
                                               ) * 0x1000193 ^ (uint)pbVar28[0x10]) * 0x1000193 ^
                                             (uint)pbVar28[0x11]) * 0x1000193 ^ (uint)pbVar28[0x12])
                                            * 0x1000193 ^ (uint)pbVar28[0x13]) * 0x1000193 ^
                                          (uint)pbVar28[0x14]) * 0x1000193 ^ (uint)pbVar28[0x15]) *
                                         0x1000193 ^ (uint)pbVar28[0x16]) * 0x1000193 ^
                                       (uint)pbVar28[0x17]) * 0x1000193 ^ (uint)pbVar28[0x18]) *
                                      0x1000193 ^ (uint)pbVar28[0x19]) * 0x1000193 ^
                                    (uint)pbVar28[0x1a]) * 0x1000193 ^ (uint)pbVar28[0x1b]) *
                                   0x1000193 ^ (uint)pbVar28[0x1c]) * 0x1000193 ^
                                 (uint)pbVar28[0x1d]) * 0x1000193 ^ (uint)pbVar28[0x1e]) * 0x1000193
                               ^ (uint)pbVar28[0x1f]) * 0x1000193 ^ (uint)pbVar28[0x20]) * 0x1000193
                             ^ (uint)pbVar28[0x21]) * 0x1000193 ^ (uint)pbVar28[0x22]) * 0x1000193 ^
                           (uint)pbVar28[0x23]) * 0x1000193 ^ (uint)pbVar28[0x24]) * 0x1000193 ^
                         (uint)pbVar28[0x25]) * 0x1000193 ^ (uint)pbVar28[0x26]) * 0x1000193 ^
                       (uint)pbVar28[0x27]) * 0x1000193 ^ (uint)pbVar28[0x28]) * 0x1000193 ^
                     (uint)pbVar28[0x29]) * 0x1000193 ^ (uint)pbVar28[0x2a]) * 0x1000193 ^
                   (uint)pbVar28[0x2b]) * 0x1000193 ^ (uint)pbVar28[0x2c]) * 0x1000193 ^
                 (uint)pbVar28[0x2d]) * 0x1000193 ^ (uint)pbVar28[0x2e]) * 0x1000193 ^
               (uint)pbVar28[0x2f]) * 0x1000193;
      lVar29 = lVar29 + -1;
      pbVar28 = pbVar28 + 0x30;
    } while (lVar29 != 0);
  }
  while (pbVar2 != (byte *)0x0) {
    uVar31 = ((((((((((((((((((((((((((((((((((((((((((((((((uVar31 ^ *pbVar1) * 0x1000193 ^
                                                           (uint)pbVar1[1]) * 0x1000193 ^
                                                          (uint)pbVar1[2]) * 0x1000193 ^
                                                         (uint)pbVar1[3]) * 0x1000193 ^
                                                        (uint)pbVar1[4]) * 0x1000193 ^
                                                       (uint)pbVar1[5]) * 0x1000193 ^
                                                      (uint)pbVar1[6]) * 0x1000193 ^ (uint)pbVar1[7]
                                                     ) * 0x1000193 ^ (uint)pbVar1[8]) * 0x1000193 ^
                                                   (uint)pbVar1[9]) * 0x1000193 ^ (uint)pbVar1[10])
                                                  * 0x1000193 ^ (uint)pbVar1[0xb]) * 0x1000193 ^
                                                (uint)pbVar1[0xc]) * 0x1000193 ^ (uint)pbVar1[0xd])
                                               * 0x1000193 ^ (uint)pbVar1[0xe]) * 0x1000193 ^
                                             (uint)pbVar1[0xf]) * 0x1000193 ^ (uint)pbVar1[0x10]) *
                                            0x1000193 ^ (uint)pbVar1[0x11]) * 0x1000193 ^
                                          (uint)pbVar1[0x12]) * 0x1000193 ^ (uint)pbVar1[0x13]) *
                                         0x1000193 ^ (uint)pbVar1[0x14]) * 0x1000193 ^
                                       (uint)pbVar1[0x15]) * 0x1000193 ^ (uint)pbVar1[0x16]) *
                                      0x1000193 ^ (uint)pbVar1[0x17]) * 0x1000193 ^
                                    (uint)pbVar1[0x18]) * 0x1000193 ^ (uint)pbVar1[0x19]) *
                                   0x1000193 ^ (uint)pbVar1[0x1a]) * 0x1000193 ^ (uint)pbVar1[0x1b])
                                 * 0x1000193 ^ (uint)pbVar1[0x1c]) * 0x1000193 ^ (uint)pbVar1[0x1d])
                               * 0x1000193 ^ (uint)pbVar1[0x1e]) * 0x1000193 ^ (uint)pbVar1[0x1f]) *
                             0x1000193 ^ (uint)pbVar1[0x20]) * 0x1000193 ^ (uint)pbVar1[0x21]) *
                           0x1000193 ^ (uint)pbVar1[0x22]) * 0x1000193 ^ (uint)pbVar1[0x23]) *
                         0x1000193 ^ (uint)pbVar1[0x24]) * 0x1000193 ^ (uint)pbVar1[0x25]) *
                       0x1000193 ^ (uint)pbVar1[0x26]) * 0x1000193 ^ (uint)pbVar1[0x27]) * 0x1000193
                    ^ (uint)pbVar1[0x28]) * 0x1000193 ^ (uint)pbVar1[0x29]) * 0x1000193 ^
                  (uint)pbVar1[0x2a]) * 0x1000193 ^ (uint)pbVar1[0x2b]) * 0x1000193 ^
                (uint)pbVar1[0x2c]) * 0x1000193 ^ (uint)pbVar1[0x2d]) * 0x1000193 ^
              (uint)pbVar1[0x2e]) * 0x1000193 ^ (uint)pbVar1[0x2f]) * 0x1000193;
    pbVar30 = pbVar30 + -1;
    pbVar1 = pbVar1 + 0x30;
    pbVar2 = pbVar30;
  }
  DAT_182671c48 = 0x58a80208;
  DAT_182671c74 = 0xddf13fa4;
  DAT_182671c90 = 0x4826757e;
  DAT_182671c94 = 0x33160e17;
  DAT_182671c6c = 0xc512af4a;
  DAT_182671c60 = 0x75ffb5ad;
  DAT_182671c70 = 0x49fa7f6b;
  DAT_182671c84 = 0x5eb95e58;
  DAT_182671c78 = 0x156d8014;
  DAT_182671c64 = 0x412d412d;
  DAT_182671c58 = 0xd3924c8;
  DAT_182671c8c = 0x3a4e4e52;
  DAT_182671c68 = 0x5e585eb9;
  DAT_182671c88 = 0x7dffffef;
  DAT_182671c4c = 0x56ddc2af;
  uVar31 = (((uVar31 ^ param_8 & 0xff) * 0x1000193 ^ param_8 >> 8 & 0xff) * 0x1000193 ^
           param_8 >> 0x10 & 0xff) * 0x1000193 ^ param_8 >> 0x18;
  DAT_182671c80 = 0x4a90cef2;
  DAT_182671d20 = uVar31 * 0x1000193;
  DAT_182671c7c = 0x5d4bf56a;
  DAT_182671c54 = 0x51553df8;
  DAT_182671c50 = 0x843fee67;
  DAT_182671c5c = 0x5e585eb9;
  uVar26 = DAT_182671d20 & 3;
  if (uVar26 < 2) {
    uVar23 = 0x3a50833a;
    if (uVar26 == 0) {
      uVar23 = DAT_182671d20;
    }
  }
  else {
    uVar23 = 0xee7ab19a;
    if (uVar26 < 3) {
      uVar23 = 0x9fe68998;
    }
  }
  uVar35 = DAT_182671d20 + 0xcb5386e7 & 0xff0000;
  uVar38 = (DAT_182671d20 & 0xff0000 | DAT_182671d20 >> 0x10) >> 8;
  DAT_182671d70 = DAT_182671d20 ^ 0x38d707b7;
  DAT_182671e80 = DAT_182671d20 + 0xe1344ee1;
  DAT_182671d6c = uVar38 | (DAT_182671d20 & 0xff00 | uVar31 * 0x1930000) << 8;
  uVar3 = uVar31 * 0x40f0e340;
  uVar18 = (DAT_182671d20 + 0xcb5386e7) * 0x10000;
  uVar27 = DAT_182671d20 ^ 0xa8170dc9;
  uVar24 = DAT_182671d20 ^ 0x84ca03c1;
  uVar4 = DAT_182671d20 & 0x4fe2ee2a;
  uVar5 = DAT_182671d20 + 0xcb5386e7 & 0xff00;
  uVar36 = (uVar35 | DAT_182671d20 + 0xcb5386e7 >> 0x10) >> 8;
  uVar6 = uVar23 >> 0x10;
  uVar37 = uVar36 | (uVar18 | uVar5) << 8;
  uVar7 = DAT_182671d20 ^ 0xbc54374;
  uVar34 = (uVar23 & 0xff0000 | uVar6) >> 8 | (uVar23 << 0x10 | uVar23 & 0xff00) << 8;
  uVar8 = DAT_182671d20 + 0xe1344ee1 & 0xb99788be;
  DAT_182671cd4 = uVar3 + 0x5206cda;
  uVar32 = (DAT_182671d70 & 0xff0000 | DAT_182671d70 >> 0x10) >> 8 |
           (DAT_182671d70 << 0x10 | DAT_182671d70 & 0xff00) << 8;
  DAT_182671d80 = DAT_182671d6c * 0x4f6c5224;
  DAT_182671df0 = DAT_182671d20 | 0xeea1f5d3;
  DAT_182671ce4 = DAT_182671d20 & 0x3dcbe738;
  uVar9 = uVar27 | 0xf71917c3;
  uVar17 = DAT_182671d20 >> 0x10;
  uVar10 = uVar31 * 0x1930000 | uVar17;
  DAT_182671d94 = uVar31 * 0x3ae578a3;
  DAT_182671cf4 = uVar31 * -0x9d99faa;
  DAT_182671d74 = DAT_182671d20 | 0x5d5dffdf;
  uVar33 = uVar23 ^ 0x28db4457;
  DAT_182671db4 = DAT_182671d20 + 0xe92a38fc;
  DAT_182671df8 = DAT_182671d20 + 0xc65b1a24;
  uVar16 = 0x5a3c9733;
  if ((uVar6 & 0x100) == 0) {
    uVar16 = uVar34;
  }
  uVar11 = uVar37 & 0x57db000d;
  DAT_182671fb0 = ~uVar3;
  DAT_182671e2c = DAT_182671d20 + 0xf8ee948b;
  uVar12 = DAT_182671d20 + 0xd53ca62;
  DAT_182671ec0 = uVar31 * 0x9a2e0e4;
  DAT_182671cb0 = DAT_182671d6c + 0x58836bb0;
  uVar19 = DAT_182671d20 + 0xec58cd;
  DAT_182671e18 = uVar32 * 0x10c899bc;
  uVar13 = uVar3 + 0x51a5ffbb;
  DAT_182671e70 = DAT_182671df0 ^ 0xb501922f;
  uVar39 = (uVar19 & 0xff0000 | uVar19 >> 0x10) >> 8 |
           (uVar19 * 0x10000 | DAT_182671d20 + 0xec58cd & 0xff00) << 8;
  DAT_182671d78 = uVar9 & 0x5ae5996e;
  DAT_182671f54 =
       (uVar24 & 0xff0000 | uVar24 >> 0x10) >> 8 | (uVar24 << 0x10 | uVar24 & 0xff00) << 8;
  uVar19 = uVar27 * 0x522a2fdc;
  uVar24 = uVar17 & 3;
  if (uVar24 < 2) {
    DAT_182671f50 = 0x251182b3;
    bVar41 = uVar24 == 0;
    uVar14 = uVar10;
  }
  else {
    uVar14 = 0x70ea8a6b;
    DAT_182671f50 = 0x6492013a;
    bVar41 = uVar24 < 3;
  }
  if (bVar41) {
    DAT_182671f50 = uVar14;
  }
  uVar24 = (DAT_182671d20 | 0x5d51a7d6) & 3;
  if (uVar24 < 2) {
    uVar14 = 0x3d84ebe7;
    if (uVar24 == 0) {
      uVar14 = DAT_182671d20 | 0x5d51a7d6;
    }
  }
  else {
    uVar14 = 0xc250237e;
    if (uVar24 < 3) {
      uVar14 = 0xea294152;
    }
  }
  DAT_182671e5c = ~(DAT_182671d20 + 0x7d68cd83);
  DAT_182671f84 = DAT_182671d20 | 0x686d3caf;
  uVar40 = (uVar16 & 0xff0000 | uVar16 >> 0x10) >> 8 | (uVar16 << 0x10 | uVar16 & 0xff00) << 8;
  DAT_182671dcc = DAT_182671fb0 & 0xf6f7ec44;
  uVar24 = DAT_182671d20 + 0xe92a38fc & 3;
  if (uVar24 < 2) {
    DAT_182671f3c = -0x40c96e1a;
    if (uVar24 == 0) {
      DAT_182671f3c = DAT_182671d20 + 0xe92a38fc;
    }
  }
  else {
    DAT_182671f3c = 0x59c8954c;
    if (uVar24 < 3) {
      DAT_182671f3c = -0x38bf1191;
    }
  }
  uVar6 = (uVar6 & 0x300) >> 8;
  if (uVar6 < 2) {
    uVar24 = 0x24a9f144;
    if (uVar6 == 0) {
      uVar24 = uVar34;
    }
  }
  else {
    uVar24 = 0x606ca4b3;
    if (uVar6 < 3) {
      uVar24 = 0xb33cb48f;
    }
  }
  DAT_182671f68 = DAT_182671d20 & 0x306095ae;
  DAT_182671f18 =
       ((uVar7 & 0xff0000 | uVar7 >> 0x10) >> 8 | (uVar7 << 0x10 | uVar7 & 0xff00) << 8) &
       0xa03a1e1b ^ 0x9dda900;
  DAT_182671de8 = uVar31 * -0x2154db80;
  uVar35 = uVar35 >> 8;
  uVar20 = (uVar5 << 8 | (uVar18 & 0xffffff) >> 8) >> 8;
  uVar36 = uVar36 << 0x10;
  DAT_182671d14 = uVar20 | (uVar36 | uVar35) << 8;
  uVar21 = (uVar12 & 0xff0000 | uVar12 >> 0x10) >> 8;
  DAT_182671dac = uVar21 | (uVar12 * 0x10000 | uVar12 & 0xff00) << 8;
  DAT_182671dbc = DAT_182671d6c + 0x58836bb0 & 0x3a50833a;
  DAT_182671f34 = ~DAT_182671e2c;
  DAT_182671d58 = uVar39 + 0x11854e66;
  DAT_182671e14 =
       (DAT_182671d80 + 0x7796f699 & 0xff0000 | DAT_182671d80 + 0x7796f699 >> 0x10) >> 8 |
       ((DAT_182671d80 + 0x7796f699) * 0x10000 | DAT_182671d80 + 0x7796f699 & 0xff00) << 8;
  DAT_182671dd4 = ((uVar8 << 0x10 | uVar8 >> 0x10) ^ 0xc17087c8) + 0x47b17f86;
  DAT_182671ecc =
       (DAT_182671d20 & 0x490000 | (DAT_182671d20 & 0x7d49a3a0) >> 0x10) >> 8 |
       ((DAT_182671d20 & 0x7d49a3a0) << 0x10 | DAT_182671d20 & 0xa300) << 8;
  uVar6 = uVar31 * 0x1930000 >> 0x10;
  uVar15 = DAT_182671d20 + 0xcc9d239e;
  DAT_182671d54 = uVar15 & 0x4f86cc3;
  DAT_182671f64 = DAT_182671e70 * 0x28db4457;
  uVar5 = uVar10 + 0xa5c368cd;
  uVar18 = 0xdcf6c1c2;
  if (((DAT_182671d20 ^ 0xd5b07e10) & 1) == 0) {
    uVar18 = DAT_182671d20 ^ 0xd5b07e10;
  }
  DAT_182671da0 = uVar14 + 0x7521e3e;
  uVar27 = (uVar19 & 0xff0000 | uVar19 >> 0x10) >> 8 | (uVar27 * 0x2fdc0000 | uVar19 & 0xff00) << 8;
  DAT_182671dc8 = DAT_182671f54 + (DAT_182671cf4 | 0xf8ade1c2);
  DAT_182671cf8 = DAT_182671d20 & 0x255a0c72 | 0x5bad5528 | DAT_182671f50;
  uVar19 = DAT_182671df8 & 3;
  if (uVar19 < 2) {
    uVar14 = 0x85ab31c;
    if (uVar19 == 0) {
      uVar14 = DAT_182671df8;
    }
  }
  else {
    uVar14 = 0xea294152;
    if (uVar19 < 3) {
      uVar14 = uVar10;
    }
  }
  DAT_182671cc8 = uVar4 * 0x1794cea8;
  uVar19 = uVar4 ^ 0xf853b0dc | 0xc250237e;
  uVar25 = uVar40 & DAT_182671d20 & 0x1794cea8;
  DAT_182671eb0 = DAT_182671d74 * 0x686d3caf;
  _DAT_182671cf0 = uVar33 + 0x26f8335c;
  if ((DAT_182671d20 + 0xe1344ee1 & 1) == 0) {
    _DAT_182671cf0 = DAT_182671d20 + 0xe1344ee1;
  }
  uVar22 = (DAT_182671de8 & 0xff0000 | DAT_182671de8 >> 0x10) >> 8;
  DAT_182671f8c = uVar22 | (uVar31 * 0x24800000 | DAT_182671de8 & 0xff00) << 8;
  DAT_182671dc0 = DAT_182671d70 & 0xcd19febb | uVar24;
  DAT_182671ed0 = DAT_182671d70 + uVar37;
  uVar37 = (uVar3 & 0xff0000 | uVar3 >> 0x10) >> 8 | (uVar31 * -0x1cc00000 | uVar3 & 0xff00) << 8;
  DAT_182671f10 =
       (DAT_182671d20 + 0xe1344ee1 & 0xff0000 | DAT_182671d20 + 0xe1344ee1 >> 0x10) >> 8 |
       ((DAT_182671d20 + 0xe1344ee1) * 0x10000 | DAT_182671d20 + 0xe1344ee1 & 0xff00) << 8 | uVar23;
  DAT_182671d28 = (DAT_182671ec0 ^ 0x5d51a7d6) & DAT_182671d70 - 0x3d22e5;
  DAT_182671e30 = DAT_182671ec0 + DAT_182671d6c;
  DAT_182671e40 =
       ((DAT_182671d20 + 0xb84e807a) * 0x10000 | DAT_182671d20 + 0xb84e807a >> 0x10) ^
       uVar3 + 0xc197d460;
  DAT_182671f48 = uVar39 + DAT_182671e18;
  DAT_182671cb4 = DAT_182671e14 | uVar8;
  DAT_182671d24 = uVar32 ^ 0xbd3b2c12 | uVar13;
  DAT_182671f78 =
       (DAT_182671e2c & 0xff0000 | DAT_182671e2c >> 0x10) >> 8 |
       (DAT_182671e2c * 0x10000 | DAT_182671e2c & 0xff00) << 8;
  DAT_182671ca4 = (uVar17 << 0x10 & 0xff0000 | uVar17) >> 8 | (uVar6 << 0x10 | uVar6 & 0xff00) << 8;
  DAT_182671db0 = uVar9 + DAT_182671d20 + 0xcc9d239e;
  DAT_182671eac = DAT_182671ce4 << 0x10 | DAT_182671ce4 >> 0x10;
  DAT_182671d5c = DAT_182671cf4 + DAT_182671d6c;
  DAT_182671f20 = ~DAT_182671d20 << 0x10 | ~DAT_182671d20 >> 0x10;
  DAT_182671eb8 = DAT_182671df8 + DAT_182671dc8;
  uVar24 = DAT_182671f84 ^ DAT_182671d20 + 0x1650bf0;
  uVar23 = uVar24 >> 0x10;
  DAT_182671d7c = uVar24 << 0x10 | uVar23;
  DAT_182671e6c = DAT_182671e5c - uVar16;
  DAT_182671d38 = uVar19 ^ DAT_182671d20 + 0x1650bf0;
  DAT_182671e94 = DAT_182671f84 << 0x10 | DAT_182671f84 >> 0x10;
  uVar16 = ((uVar11 | 0x1e08adb1) + DAT_182671d20 + 0x8d54a015) * DAT_182671eb0;
  DAT_182671d8c = DAT_182671e5c * (DAT_182671d20 + 0xe92a38fc);
  DAT_182671d30 =
       ((uVar25 & 0xff0000 | uVar25 >> 0x10) >> 8 | (uVar25 << 0x10 | uVar25 & 0xff00) << 8) ^
       0xfbc835cd;
  DAT_182671d98 = DAT_182671f34 ^ uVar7 + 0xd021c569;
  DAT_182671f28 = uVar37 ^ DAT_182671d20 + 0xf2875a86;
  DAT_182671d64 = DAT_182671ed0 * 0x10000 | DAT_182671ed0 >> 0x10;
  DAT_182671da4 = ~DAT_182671d70;
  DAT_182671ee0 = (uVar13 | 0x7d68cd83) & DAT_182671e18;
  DAT_182671f08 = DAT_182671d6c | DAT_182671d20;
  DAT_182671cd8 =
       DAT_182671f48 |
       (uVar38 << 0x10 | (DAT_182671d20 & 0xff00 | uVar31 * 0x1930000 & 0xffffff) >> 8) &
       DAT_182671cd4;
  DAT_182671eb4 = uVar10 + 0x7796f699 + DAT_182671d80;
  DAT_182671dc4 =
       (DAT_182671d24 & 0xff0000 | DAT_182671d24 >> 0x10) >> 8 |
       (DAT_182671d24 << 0x10 | DAT_182671d24 & 0xff00) << 8;
  DAT_182671f6c = DAT_182671e30 + DAT_182671e14;
  DAT_182671e90 = ~uVar8 + uVar31 * -0x1000193 & DAT_182671ca4;
  uVar7 = DAT_182671d20 & 3;
  if (uVar7 < 4) {
    if (uVar7 < 2) {
      DAT_182671ce4 = DAT_182671d20;
      if (uVar7 == 0) {
        DAT_182671ce4 = DAT_182671d20 & 0xffc2dd1b;
      }
    }
    else {
      DAT_182671ce4 = DAT_182671db0;
      if (uVar7 < 3) {
        DAT_182671ce4 = DAT_182671d80;
      }
    }
  }
  else if (uVar7 < 6) {
    DAT_182671ce4 = DAT_182671f64;
    if (uVar7 < 5) {
      DAT_182671ce4 = uVar17 << 0x10 | uVar6;
    }
  }
  else if (uVar7 < 7) {
    DAT_182671ce4 = DAT_182671d20 & 0xec58cd ^ 0xfc53a8f8 ^ DAT_182671dd4;
  }
  DAT_182671e60 = uVar5 ^ DAT_182671d20 & 0xffc2dd1b ^ uVar9 + 0x3362dc62;
  DAT_182671f30 = DAT_182671d5c - DAT_182671e70;
  DAT_182671ea0 =
       (uVar15 & 0xf80000 | DAT_182671d54 >> 0x10) >> 8 |
       (DAT_182671d54 << 0x10 | uVar15 & 0x6c00) << 8;
  DAT_182671e9c = DAT_182671d6c;
  if ((DAT_182671d94 & 1) == 0) {
    DAT_182671e9c = DAT_182671d94;
  }
  DAT_182671e68 = DAT_182671d54 & uVar10 & uVar18;
  DAT_182671e3c = DAT_182671eac - ~(uVar4 ^ 0x89f3d7e8);
  DAT_182671cb8 = uVar18 ^ DAT_182671df0 ^ DAT_182671d78;
  DAT_182671da8 = DAT_182671df8 * DAT_182671cf4;
  DAT_182671f04 = DAT_182671f54 - (DAT_182671cf4 | 0xf8ade1c2);
  DAT_182671d34 = ~uVar27 - DAT_182671dc8;
  DAT_182671e04 = DAT_182671d38 * DAT_182671f20;
  DAT_182671f74 = DAT_182671cc8 | uVar27;
  uVar17 = DAT_182671d74 * 0x3caf0000;
  uVar6 = DAT_182671eb0 >> 0x10;
  DAT_182671f90 = uVar17 | uVar6;
  DAT_182671ea4 = DAT_182671cf8 * DAT_182671f54;
  DAT_182671f2c = DAT_182671e94 & uVar14;
  DAT_182671f14 = ~(uVar14 & DAT_182671f54 ^ 0xed4d2630);
  local_5228 = uVar24 << 0x10 & 0xff0000;
  uVar9 = (local_5228 | uVar24 & 0xffff) >> 8;
  DAT_182671f24 = uVar9 | (uVar23 << 0x10 | uVar23 & 0xff00) << 8;
  DAT_182671ef0 = uVar19 | DAT_182671d8c;
  uVar7 = uVar16 >> 0x10;
  DAT_182671cc4 = uVar16 * 0x10000 | uVar7;
  DAT_182671ec8 = (DAT_182671d20 + 0xe92a38fc) * 0x10000 | DAT_182671d20 + 0xe92a38fc >> 0x10;
  DAT_182671fa4 = DAT_182671d20 + 0xe92a38fc ^ DAT_182671d20 | DAT_182671d74 | DAT_182671e5c;
  DAT_182671d08 = DAT_182671e5c << 0x10 | DAT_182671e5c >> 0x10;
  DAT_182671e44 = ~(DAT_182671d20 + 0xf2875a86) ^ DAT_182671f68;
  DAT_182671d0c = DAT_182671d74 + uVar40;
  DAT_182671e4c = DAT_182671d20 + 0x8d54a015 & uVar11;
  DAT_182671ee4 = DAT_182671dc0 ^ DAT_182671f18;
  DAT_182671e0c = (DAT_182671d6c + 0x58836bb0) * DAT_182671d98;
  DAT_182671f00 =
       (((DAT_182671de8 & 0xff00) << 8 | (uVar31 * 0x24800000 & 0xffffff) >> 8) >> 8 |
       (uVar22 << 0x10 | (DAT_182671de8 & 0xff0000) >> 8) << 8) * DAT_182671f3c;
  uVar3 = (uVar3 >> 0x10 & 0x700) >> 8;
  if (uVar3 < 4) {
    if (uVar3 < 2) {
      DAT_182671cfc = uVar33;
      if (uVar3 == 0) {
        DAT_182671cfc = uVar37;
      }
    }
    else {
      DAT_182671cfc = DAT_182671d20 + 0xf2875a86;
      if (uVar3 < 3) {
        DAT_182671cfc = DAT_182671fb0;
      }
    }
  }
  else if (uVar3 < 6) {
    DAT_182671cfc = DAT_182671d20 + 0xe1344ee1;
    if (uVar3 < 5) {
      DAT_182671cfc = uVar33 * (DAT_182671d20 + 0xe1344ee1);
    }
  }
  else {
    DAT_182671cfc = DAT_182671f10;
    if (uVar3 < 7) {
      DAT_182671cfc = DAT_182671dbc;
    }
  }
  DAT_182671f9c = DAT_182671ee0 * DAT_182671f34;
  DAT_182671ca0 = DAT_182671d64 | DAT_182671d14;
  DAT_182671de0 = DAT_182671da4 * uVar34;
  DAT_182671dec = DAT_182671cd4 * 0x10000 | DAT_182671cd4 >> 0x10;
  DAT_182671f98 = DAT_182671f08 | DAT_182671d6c;
  DAT_182671fb4 = (DAT_182671d58 | DAT_182671ec0) * DAT_182671e18;
  uVar3 = DAT_182671cb4 - DAT_182671cd4 & 7;
  if (uVar3 < 4) {
    if (uVar3 < 2) {
      DAT_182671dd8 = DAT_182671e40;
      if (uVar3 == 0) {
        DAT_182671dd8 = DAT_182671cb4 - DAT_182671cd4;
      }
    }
    else {
      DAT_182671dd8 = DAT_182671ec0;
      if (uVar3 < 3) {
        DAT_182671dd8 = DAT_182671cb4;
      }
    }
  }
  else if (uVar3 < 6) {
    DAT_182671dd8 = DAT_182671d28;
    if (uVar3 < 5) {
      DAT_182671dd8 = DAT_182671f78;
    }
  }
  else {
    DAT_182671dd8 = DAT_182671cd8;
    if (uVar3 < 7) {
      DAT_182671dd8 = DAT_182671f48;
    }
  }
  DAT_182671c98 = uVar5 + DAT_182671d20;
  DAT_182671e28 = DAT_182671f6c | DAT_182671e14;
  DAT_182671e58 = DAT_182671f34 & uVar8;
  DAT_182671cec = DAT_182671f50 & DAT_182671cb8;
  DAT_182671e74 = ~DAT_182671d24;
  DAT_182671e78 = DAT_182671dd4 * 0x10000 | DAT_182671dd4 >> 0x10;
  DAT_182671e38 = uVar8 - uVar5 | DAT_182671d20;
  DAT_182671e98 = DAT_182671d54 ^ DAT_182671d5c;
  DAT_182671f58 = DAT_182671e90 - ((DAT_182671d94 & 0x7f504ad1) + DAT_182671d20);
  DAT_182671f94 = DAT_182671f64 - DAT_182671e9c;
  DAT_182671e08 = (DAT_182671d20 + 0xb466c5ec) * 0x10000 | DAT_182671d20 + 0xb466c5ec >> 0x10;
  DAT_182671ddc = (uVar13 + DAT_182671dd4) - DAT_182671e68;
  DAT_182671f88 = ~(uVar4 ^ 0x89f3d7e8) - DAT_182671eac;
  DAT_182671c9c = DAT_182671d78 << 0x10 | DAT_182671d78 >> 0x10;
  DAT_182671f80 = uVar4 * -0x31580000 | DAT_182671cc8 >> 0x10;
  DAT_182671f4c = DAT_182671da8 * DAT_182671e3c;
  DAT_182671d2c =
       (DAT_182671db0 & 0xff0000 | DAT_182671db0 >> 0x10) >> 8 |
       (DAT_182671db0 * 0x10000 | DAT_182671db0 & 0xff00) << 8;
  DAT_182671d48 = DAT_182671e04 ^ DAT_182671cf4;
  DAT_182671d9c = DAT_182671d94 - DAT_182671f74;
  DAT_182671d84 = DAT_182671ea4 & DAT_182671df0;
  DAT_182671ee8 = DAT_182671cf8 | DAT_182671f04;
  DAT_182671ed4 = DAT_182671d34 * DAT_182671eb8;
  DAT_182671d1c = DAT_182671da0 & DAT_182671f54;
  local_5218 = uVar6 & 0xff00;
  DAT_182671ea8 = (uVar17 & 0xff0000 | uVar17 >> 0x10) >> 8 | (uVar6 << 0x10 | local_5218) << 8;
  uVar17 = DAT_182671d38 & 3;
  if (uVar17 < 2) {
    DAT_182671dfc = DAT_182671f20;
    if (uVar17 == 0) {
      DAT_182671dfc = DAT_182671d38;
    }
  }
  else {
    DAT_182671dfc = DAT_182671e94;
    if (uVar17 < 3) {
      DAT_182671dfc = DAT_182671f2c;
    }
  }
  local_5228 = local_5228 >> 8;
  DAT_182671d44 =
       ((uVar23 & 0xff00) << 8 | (uVar23 << 0x10 & 0xffffff) >> 8) >> 8 |
       (uVar9 << 0x10 | local_5228) << 8;
  DAT_182671de4 = DAT_182671f14 - DAT_182671f84;
  local_51fc = DAT_182671eb0 >> 0x10;
  DAT_182671ed8 =
       (DAT_182671d74 * 0x3caf0000 | DAT_182671eb0 & 0xff00) << 8 |
       (DAT_182671eb0 & 0xff0000 | local_51fc) >> 8;
  DAT_182671dd0 = DAT_182671dc8 * 0x10000 | DAT_182671dc8 >> 0x10;
  DAT_182671efc = DAT_182671ec8 - DAT_182671d8c;
  local_5210 = DAT_182671fa4 & 0xff00;
  DAT_182671f40 =
       (DAT_182671fa4 & 0xff0000 | DAT_182671fa4 >> 0x10) >> 8 |
       (DAT_182671fa4 << 0x10 | local_5210) << 8;
  DAT_182671e48 = DAT_182671ef0 + DAT_182671d74;
  DAT_182671cac = DAT_182671e6c * 0x10000 | DAT_182671e6c >> 0x10;
  DAT_182671f7c = DAT_182671d08 * DAT_182671e44;
  DAT_182671d10 = DAT_182671f68 ^ DAT_182671e5c;
  DAT_182671e1c = DAT_182671d0c * 0x10000 | DAT_182671d0c >> 0x10;
  local_5224 = uVar16 & 0xffff;
  DAT_182671d4c =
       (uVar7 << 0x10 | uVar7 & 0xff00) << 8 | (uVar16 * 0x10000 & 0xff0000 | local_5224) >> 8;
  DAT_182671ce0 = DAT_182671dcc << 0x10 | DAT_182671dcc >> 0x10;
  local_51bc = (uVar12 & 0xff0000) >> 8;
  DAT_182671e20 =
       ((uVar12 & 0xff00) << 8 | (uVar12 * 0x10000 & 0xffffff) >> 8) >> 8 |
       (uVar21 << 0x10 | local_51bc) << 8;
  DAT_182671d00 = _DAT_182671cf0 - DAT_182671e4c;
  DAT_182671ebc = ~DAT_182671f8c;
  DAT_182671d04 = DAT_182671d30 + DAT_182671ed0;
  DAT_182671d60 = DAT_182671e0c - DAT_182671f3c;
  DAT_182671ce8 = DAT_182671de8 * DAT_182671d98;
  DAT_182671ec4 = DAT_182671dc0 + DAT_182671d6c + 0x58836bb0;
  DAT_182671d88 = DAT_182671f00 * (DAT_182671d20 + 0xe1344ee1);
  DAT_182671f1c = DAT_182671f10 & DAT_182671fb0;
  DAT_182671f60 = DAT_182671ee0 | DAT_182671d64;
  DAT_182671e00 = DAT_182671d64 | DAT_182671f9c;
  DAT_182671d40 = uVar20 << 0x10 | (uVar36 & 0xffffff | uVar35) >> 8;
  DAT_182671e88 = ~DAT_182671dbc;
  DAT_182671ef4 = DAT_182671d70 + DAT_182671d58;
  DAT_182671d90 = DAT_182671dec;
  if ((DAT_182671de0 & 1) == 0) {
    DAT_182671d90 = DAT_182671de0;
  }
  DAT_182671ccc =
       (DAT_182671cfc & 0xff0000 | DAT_182671cfc >> 0x10) >> 8 |
       (DAT_182671cfc << 0x10 | DAT_182671cfc & 0xff00) << 8;
  DAT_182671e7c = DAT_182671f78 ^ DAT_182671f28;
  uVar23 = DAT_182671f98 & 3;
  if (uVar23 < 2) {
    DAT_182671f44 = DAT_182671d6c;
    if (uVar23 == 0) {
      DAT_182671f44 = DAT_182671f98;
    }
  }
  else {
    DAT_182671f44 = DAT_182671d20;
    if (uVar23 < 3) {
      DAT_182671f44 = DAT_182671ca0;
    }
  }
  DAT_182671f5c = DAT_182671cb4 * DAT_182671f6c;
  DAT_182671e54 = DAT_182671cd4 + DAT_182671f08;
  DAT_182671e10 = DAT_182671d28 + uVar31 * -0x9a2e0e4;
  DAT_182671d18 = DAT_182671e30 - DAT_182671cd8;
  uVar31 = DAT_182671e2c & 7;
  if (uVar31 < 4) {
    if (uVar31 < 2) {
      DAT_182671cbc = DAT_182671e40;
      if (uVar31 == 0) {
        DAT_182671cbc = DAT_182671e2c;
      }
    }
    else {
      DAT_182671cbc = DAT_182671e14;
      if (uVar31 < 3) {
        DAT_182671cbc = DAT_182671d24;
      }
    }
  }
  else if (uVar31 < 6) {
    DAT_182671cbc = DAT_182671e18;
    if (uVar31 < 5) {
      DAT_182671cbc = DAT_182671dd8;
    }
  }
  else {
    DAT_182671cbc = DAT_182671dc4;
    if (uVar31 < 7) {
      DAT_182671cbc = DAT_182671f34;
    }
  }
  DAT_182671ef8 = DAT_182671e90 - DAT_182671e58;
  DAT_182671cc0 = DAT_182671eb4 * 0x10000 | DAT_182671eb4 >> 0x10;
  DAT_182671f38 = DAT_182671ca4 ^ DAT_182671fb4;
  DAT_182671e34 = DAT_182671e78 | DAT_182671d20;
  DAT_182671e64 = DAT_182671d80 + DAT_182671dd4;
  DAT_182671db8 =
       (DAT_182671c98 & 0xff0000 | DAT_182671c98 >> 0x10) >> 8 |
       (DAT_182671c98 * 0x10000 | DAT_182671c98 & 0xff00) << 8;
  DAT_182671e24 = DAT_182671e28 - DAT_182671db0;
  DAT_182671d68 = DAT_182671e74 & DAT_182671f94;
  if (uVar26 < 2) {
    DAT_182671eec = DAT_182671ce4;
    if (uVar26 == 0) {
      DAT_182671eec = DAT_182671d20;
    }
  }
  else {
    DAT_182671eec = DAT_182671f64;
    if (uVar26 < 3) {
      DAT_182671eec = DAT_182671f58;
    }
  }
  DAT_182671fa8 = DAT_182671d2c * DAT_182671e68;
  DAT_182671fac = DAT_182671cec ^ DAT_182671e9c;
  DAT_182671d50 =
       (DAT_182671e98 & 0xff0000 | DAT_182671e98 >> 0x10) >> 8 |
       (DAT_182671e98 << 0x10 | DAT_182671e98 & 0xff00) << 8;
  DAT_1826721ec = 0x990;
  DAT_182671e8c = DAT_182671e08 * DAT_182671d5c;
  DAT_182671fa0 = DAT_182671d54 << 0x10 | DAT_182671d54 >> 0x10;
  DAT_182671ca8 = DAT_182671f30 & DAT_182671e60;
  DAT_182671d3c = DAT_182671f88 | DAT_182671eac;
  DAT_182671e50 = DAT_182671e3c & DAT_182671ddc;
  DAT_182671cd0 = DAT_182671df8 ^ DAT_182671ea0;
  DAT_182671cdc = DAT_182671d48 * DAT_182671f80;
  local_40 = &local_50fc;
  local_48 = param_9;
  local_50 = param_8;
  local_58 = param_7;
  local_60 = param_6;
  local_68 = param_5;
  DAT_182671c38 = &local_88;
  DAT_182671df4 = DAT_182671d20;
  DAT_182671e84 = DAT_182671d20;
  DAT_182671edc = DAT_182671dc0;
  DAT_182671f0c = DAT_182671d64;
  DAT_182671f70 = DAT_182671ec8;
  local_5220 = DAT_182671f8c;
  local_521c = DAT_182671f10;
  local_5214 = DAT_182671cd8;
  local_520c = DAT_182671ca4;
  local_5208 = DAT_182671d24;
  local_5204 = DAT_182671e68;
  local_5200 = DAT_182671f80;
  local_51f8 = DAT_182671d70;
  local_51f4 = DAT_182671eac;
  local_51f0 = DAT_182671dc4;
  local_51ec = DAT_182671ddc;
  local_51e8 = DAT_182671d48;
  local_51e4 = DAT_182671e74;
  local_51e0 = DAT_182671cb8;
  local_51dc = DAT_182671f00;
  local_51d8 = DAT_182671cf8;
  local_51d4 = DAT_182671ef0;
  local_51d0 = DAT_182671f88;
  local_51cc = DAT_182671cb4;
  local_51c8 = DAT_182671fb4;
  local_51c4 = DAT_182671e60;
  local_51c0 = DAT_182671de0;
  local_51b8 = DAT_182671e14;
  local_51b4 = DAT_182671df8;
  local_51b0 = DAT_182671e9c;
  local_51ac = DAT_182671f9c;
  local_51a8 = DAT_182671e3c;
  local_51a4 = DAT_182671d38;
  local_51a0 = DAT_182671e78;
  local_519c = DAT_182671f54;
  local_5198 = DAT_182671f20;
  local_5194 = DAT_182671d74;
  local_5190 = DAT_182671e4c;
  local_518c = DAT_182671f18;
  local_5188 = DAT_182671dc0;
  local_5184 = DAT_182671ee0;
  local_5180 = DAT_182671d14;
  local_517c = DAT_182671d28;
  local_5178 = DAT_182671e40;
  local_5174 = DAT_182671e18;
  local_5170 = DAT_182671f34;
  local_516c = DAT_182671e90;
  local_5168 = DAT_182671d54;
  local_5164 = DAT_182671ea4;
  local_5160 = DAT_182671f74;
  local_515c = DAT_182671ee4;
  local_5158 = DAT_182671f98;
  local_5154 = DAT_182671f78;
  local_5150 = DAT_182671d98;
  local_514c = DAT_182671d64;
  local_5148 = DAT_182671f08;
  local_5144 = DAT_182671e30;
  local_5140 = DAT_182671dec;
  local_513c = DAT_182671f04;
  local_5138 = DAT_182671d94;
  local_5134 = DAT_182671df0;
  local_5130 = DAT_182671d34;
  local_512c = DAT_182671f14;
  local_5128 = DAT_182671dc8;
  local_5124 = DAT_182671e5c;
  local_5120 = DAT_182671e44;
  local_511c = _DAT_182671cf0;
  local_5118 = DAT_182671de8;
  local_5114 = DAT_182671da8;
  local_5110 = DAT_182671ec8;
  local_510c = DAT_182671e58;
  local_5108 = DAT_182671f58;
  local_5104 = DAT_182671f64;
  local_5100 = DAT_182671f94;
  local_50fc = DAT_182671ea0;
  local_50f8 = DAT_182671fb0;
  local_50f4 = DAT_182671e08;
  local_50f0 = DAT_182671f68;
  local_50ec = DAT_182671d78;
  local_50e8 = DAT_182671e94;
  local_50e4 = DAT_182671dbc;
  local_50e0 = DAT_182671f84;
  local_50dc = DAT_182671d8c;
  local_50d8 = DAT_182671f2c;
  local_50d4 = DAT_182671e6c;
  local_50d0 = DAT_182671d08;
  local_50cc = DAT_182671d0c;
  local_50c8 = DAT_182671dcc;
  local_50c4 = DAT_182671d30;
  local_50c0 = DAT_182671e0c;
  local_50bc = DAT_182671f28;
  local_50b8 = DAT_182671ca0;
  local_50b4 = DAT_182671eb4;
  local_50b0 = DAT_182671e28;
  local_50ac = DAT_182671f30;
  local_50a8 = DAT_182671da0;
  local_50a0 = param_3;
  local_5098 = param_2;
  local_5090 = param_1;
  local_88 = param_1;
  local_80 = param_2;
  local_78 = param_3;
  local_70 = param_4;
                    /* WARNING: Could not recover jumptable at 0x000180f3d07a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)((ulonglong)UINT_180f3dca4 + 0x180000000))
            ((code *)((ulonglong)UINT_180f3dca4 + 0x180000000));
  return;
}



############ FUN_ 18134caa0 size=363 ############

void FUN_18134caa0(undefined8 *param_1)

{
  int *piVar1;
  longlong *plVar2;
  longlong lVar3;
  undefined8 *puVar4;
  undefined4 uVar5;
  longlong *plVar6;
  int iVar7;
  undefined8 uVar8;
  
  uVar8 = 0xfffffffffffffffe;
  *param_1 = juce::Component::vftable;
  iVar7 = *(int *)((longlong)param_1 + 0x8c);
  while (0 < iVar7) {
    iVar7 = iVar7 + -1;
    if ((*(int *)((longlong)param_1 + 0x8c) <= iVar7) &&
       (iVar7 = *(int *)((longlong)param_1 + 0x8c) + -1, iVar7 < 0)) break;
    plVar2 = *(longlong **)(param_1[0x10] + (longlong)iVar7 * 8);
    (**(code **)(*plVar2 + 0x38))(plVar2,param_1);
  }
  if (param_1[0x14] != 0) {
    *(undefined8 *)(param_1[0x14] + 0x10) = 0;
  }
  iVar7 = *(int *)((longlong)param_1 + 0x4c);
  while (0 < iVar7) {
    FUN_181343a90(param_1,iVar7 + -1,0,1,uVar8);
    iVar7 = *(int *)((longlong)param_1 + 0x4c);
  }
  lVar3 = param_1[3];
  puVar4 = DAT_182673708;
  if (lVar3 == 0) {
    for (; puVar4 != param_1; puVar4 = (undefined8 *)puVar4[3]) {
      if (puVar4 == (undefined8 *)0x0) goto LAB_18134cbbc;
    }
    FUN_18133eae0(DAT_182673708 != param_1);
  }
  else {
    plVar2 = *(longlong **)(lVar3 + 0x40);
    for (plVar6 = plVar2; plVar6 != plVar2 + *(int *)(lVar3 + 0x4c); plVar6 = plVar6 + 1) {
      if (param_1 == (undefined8 *)*plVar6) {
        uVar5 = (undefined4)((longlong)plVar6 - (longlong)plVar2 >> 3);
        goto LAB_18134cb70;
      }
    }
    uVar5 = 0xffffffff;
LAB_18134cb70:
    FUN_181343a90(lVar3,uVar5,CONCAT71((int7)((ulonglong)plVar2 >> 8),1),0,uVar8);
  }
LAB_18134cbbc:
  if ((*(byte *)(param_1 + 0x15) & 1) != 0) {
    FUN_18134c310(param_1);
  }
  puVar4 = (undefined8 *)param_1[0x14];
  if (puVar4 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar4 + 1);
    iVar7 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar7 == 1) {
      (**(code **)*puVar4)(puVar4,1);
    }
  }
  FUN_18049b580(param_1 + 0x12);
                    /* WARNING: Subroutine does not return */
  free((void *)param_1[0x12]);
}



############ FUN_ 18052fe00 size=392 ############

void FUN_18052fe00(undefined4 *param_1,int param_2,int param_3,undefined4 param_4)

{
  int iVar1;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined1 local_38 [4];
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  
  iVar1 = param_1[2];
  param_1[4] = param_3;
  if (iVar1 < 1) {
    iVar1 = param_1[1];
  }
  FUN_18052e190(param_1 + 0x46,(longlong)iVar1 / (longlong)param_3 & 0xffffffff,0);
  FUN_18052e190(param_1 + 0x4a,iVar1,0);
  FUN_1805356f0(*(undefined8 *)(param_1 + 0x46),
                (longlong)(int)param_1[1] / (longlong)param_3 & 0xffffffff);
  FUN_18052d830(*(undefined8 *)(param_1 + 0x46),*(undefined8 *)(param_1 + 0x46),param_4,
                (longlong)(int)param_1[1] / (longlong)param_3 & 0xffffffff);
  FUN_1805356f0(*(undefined8 *)(param_1 + 0x4a),param_1[1]);
  FUN_18052d830(*(undefined8 *)(param_1 + 0x4a),*(undefined8 *)(param_1 + 0x4a),param_4,param_1[1]);
  param_1[3] = param_1[1] * param_2;
  FUN_1805335c0(param_1,&local_48);
  if ((int)param_1[2] < 0) {
    FUN_180534550(param_1 + 0x1e,local_44);
    FUN_180534550(param_1 + 0x26,local_40);
  }
  else {
    FUN_1805335c0(param_1,local_38,param_1[2] * param_2);
    FUN_180534550(param_1 + 0x1e,local_34);
    FUN_180534550(param_1 + 0x26,local_30);
    local_3c = local_2c;
  }
  FUN_180534550(param_1 + 0x22,local_3c);
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(param_1 + 10);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_1 + 0xc,local_48,*param_1,1,*(undefined8 *)(param_1 + 0x1e),
                      *(undefined8 *)(param_1 + 0x22));
}



############ FUN_ 180530850 size=584 ############

void FUN_180530850(longlong param_1)

{
  int iVar1;
  int iVar2;
  undefined8 uVar3;
  float fVar4;
  longlong lVar5;
  int iVar6;
  longlong lVar7;
  int iVar8;
  float fVar9;
  double dVar10;
  float fVar11;
  uint uVar12;
  uint uVar13;
  float fVar14;
  undefined1 auStack_e8 [176];
  ulonglong local_38;
  
  local_38 = DAT_182615970 ^ (ulonglong)auStack_e8;
  iVar1 = *(int *)(param_1 + 100) / 2 + 1;
  fVar14 = (DAT_1824c45b4 / (*(float *)(param_1 + 0x24) * DAT_1824c3d8c)) * (float)iVar1;
  fVar9 = expf(DAT_1824c4208);
  fVar4 = DAT_1824c3ea4;
  iVar6 = 1;
  lVar7 = (longlong)iVar1;
  lVar5 = 1;
  if (1 < lVar7) {
    uVar12 = (uint)DAT_1824c4f10;
    uVar13 = (uint)((ulonglong)DAT_1824c4f10 >> 0x20);
    if (3 < lVar7 + -1) {
      iVar8 = 3;
      do {
        fVar11 = (float)iVar6;
        iVar6 = iVar6 + 4;
        dVar10 = (double)(fVar4 / ((fVar11 / fVar14) / fVar9 + fVar4));
        *(float *)(*(longlong *)(param_1 + 0x5406a8) + lVar5 * 4) =
             (float)(double)CONCAT44((uint)((ulonglong)dVar10 >> 0x20) & uVar13,
                                     SUB84(dVar10,0) & uVar12) * (fVar11 / fVar14);
        fVar11 = (float)(iVar8 + -1) / fVar14;
        dVar10 = (double)(fVar4 / (fVar11 / fVar9 + fVar4));
        *(float *)(*(longlong *)(param_1 + 0x5406a8) + 4 + lVar5 * 4) =
             (float)(double)CONCAT44((uint)((ulonglong)dVar10 >> 0x20) & uVar13,
                                     SUB84(dVar10,0) & uVar12) * fVar11;
        dVar10 = (double)(fVar4 / (((float)iVar8 / fVar14) / fVar9 + fVar4));
        *(float *)(*(longlong *)(param_1 + 0x5406a8) + 8 + lVar5 * 4) =
             (float)(double)CONCAT44((uint)((ulonglong)dVar10 >> 0x20) & uVar13,
                                     SUB84(dVar10,0) & uVar12) * ((float)iVar8 / fVar14);
        iVar2 = iVar8 + 1;
        iVar8 = iVar8 + 4;
        fVar11 = (float)iVar2 / fVar14;
        dVar10 = (double)(fVar4 / (fVar11 / fVar9 + fVar4));
        *(float *)(*(longlong *)(param_1 + 0x5406a8) + 0xc + lVar5 * 4) =
             (float)(double)CONCAT44((uint)((ulonglong)dVar10 >> 0x20) & uVar13,
                                     SUB84(dVar10,0) & uVar12) * fVar11;
        lVar5 = lVar5 + 4;
      } while (lVar5 < lVar7 + -3);
    }
    for (; lVar5 < lVar7; lVar5 = lVar5 + 1) {
      fVar11 = (float)iVar6;
      iVar6 = iVar6 + 1;
      dVar10 = (double)(fVar4 / ((fVar11 / fVar14) / fVar9 + fVar4));
      *(float *)(*(longlong *)(param_1 + 0x5406a8) + lVar5 * 4) =
           (float)(double)CONCAT44((uint)((ulonglong)dVar10 >> 0x20) & uVar13,
                                   SUB84(dVar10,0) & uVar12) * (fVar11 / fVar14);
    }
  }
  uVar3 = *(undefined8 *)(param_1 + 0x5406a8);
  iVar6 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar6 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(uVar3,DAT_1824c3e50);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(uVar3,DAT_1824c4110,uVar3,iVar1);
}



############ FUN_ 180530ff0 size=1570 ############

void FUN_180530ff0(longlong param_1)

{
  float fVar1;
  uint uVar2;
  longlong lVar3;
  undefined8 uVar4;
  int iVar5;
  ulonglong uVar6;
  int iVar7;
  ulonglong uVar8;
  longlong *plVar9;
  int *piVar10;
  char *pcVar11;
  int iVar12;
  ulonglong uVar13;
  longlong lVar14;
  int iVar15;
  int iVar16;
  ulonglong uVar17;
  float fVar18;
  float fVar19;
  float fVar20;
  float fVar21;
  
  uVar2 = *(int *)(param_1 + 0x2404e0) + 0x5737c04U & 0x8000007f;
  if ((int)uVar2 < 0) {
    uVar2 = (uVar2 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar2;
  fVar1 = DAT_1824c3c58;
  fVar21 = *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar2 * 4);
  fVar19 = (float)DAT_18262b704;
  fVar20 = *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                     (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4);
  fVar18 = (float)DAT_18262b5c8;
  uVar2 = *(int *)(param_1 + 0x2404e0) + 0x9d459a6U & 0x8000007f;
  if ((int)uVar2 < 0) {
    uVar2 = (uVar2 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar2;
  iVar16 = (int)(fVar18 * fVar20 * fVar19 * fVar21 + fVar1) * DAT_18262b700 -
           (int)((float)DAT_18262b5c8 *
                 *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                           (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                 (float)DAT_18262b704 *
                 *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar2 * 4) + fVar1) *
           DAT_18262b700;
  uVar2 = *(int *)(param_1 + 0x2404e0) + 0x8b984cU & 0x8000007f;
  if ((int)uVar2 < 0) {
    uVar2 = (uVar2 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar2;
  iVar15 = (int)((float)DAT_18262b5c8 *
                 *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                           (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                 (float)DAT_18262b704 *
                 *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar2 * 4) + fVar1) *
           DAT_18262b700;
  uVar2 = *(int *)(param_1 + 0x2404e0) + 0xad2c84U & 0x8000007f;
  if ((int)uVar2 < 0) {
    uVar2 = (uVar2 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar2;
  iVar5 = (int)((float)DAT_18262b5c8 *
                *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                          (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                (float)DAT_18262b704 *
                *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar2 * 4) + fVar1) *
          DAT_18262b700;
  uVar2 = *(int *)(param_1 + 0x2404e0) + 0x18507eU & 0x8000007f;
  if ((int)uVar2 < 0) {
    uVar2 = (uVar2 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar2;
  fVar21 = *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar2 * 4);
  fVar19 = (float)DAT_18262b704;
  fVar20 = *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                     (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4);
  fVar18 = (float)DAT_18262b5c8;
  uVar2 = *(int *)(param_1 + 0x2404e0) + 0x683fde4U & 0x8000007f;
  if ((int)uVar2 < 0) {
    uVar2 = (uVar2 - 1 | 0xffffff80) + 1;
  }
  *(uint *)(param_1 + 0x2404e0) = uVar2;
  iVar7 = (int)(fVar18 * fVar20 * fVar19 * fVar21 + fVar1) * DAT_18262b700 +
          (int)((float)DAT_18262b5c8 *
                *(float *)(*(longlong *)(param_1 + 0x5408b0) +
                          (longlong)(*(int *)(param_1 + 0x2404e0) + 1) * 4) *
                (float)DAT_18262b704 *
                *(float *)(*(longlong *)(param_1 + 0x5408b0) + (longlong)(int)uVar2 * 4) + fVar1) *
          DAT_18262b700;
  fVar21 = *(float *)(param_1 + 0x24) / (float)iVar7;
  FUN_18052e190(param_1 + 0x540758,*(undefined4 *)(param_1 + 0x54086c));
  uVar13 = 0;
  if (0 < *(int *)(param_1 + 0x30)) {
    plVar9 = (longlong *)(param_1 + 0x540768);
    uVar17 = uVar13;
    do {
      iVar12 = *(int *)(param_1 + 0x540868);
      if ((int)plVar9[1] == iVar12) {
LAB_18053139c:
        uVar6 = uVar13;
        uVar8 = uVar13;
        if (0 < (int)plVar9[1]) {
          do {
            uVar2 = (int)uVar8 + 1;
            *(undefined4 *)(uVar6 + *plVar9) = 0;
            uVar6 = uVar6 + 4;
            uVar8 = (ulonglong)uVar2;
          } while ((int)uVar2 < (int)plVar9[1]);
        }
      }
      else {
        if ((0 < (int)plVar9[1]) && (*plVar9 != 0)) {
          FUN_1800010c0();
        }
        *plVar9 = 0;
        if (iVar12 < 0) {
          iVar12 = 0;
        }
        *(int *)(plVar9 + 1) = iVar12;
        if (iVar12 != 0) {
          lVar3 = FUN_180001080(iVar12 * 4);
          *plVar9 = lVar3;
          goto LAB_18053139c;
        }
      }
      uVar2 = (int)uVar17 + 1;
      uVar17 = (ulonglong)uVar2;
      plVar9 = plVar9 + 2;
    } while ((int)uVar2 < *(int *)(param_1 + 0x30));
  }
  FUN_18052e190(param_1 + 0x540788,*(undefined4 *)(param_1 + 0x540868));
  if (0 < *(int *)(param_1 + 0x2404d0)) {
    piVar10 = (int *)(param_1 + 0x5407f0);
    uVar17 = uVar13;
    do {
      iVar12 = *(int *)(param_1 + 0x540868) * iVar7;
      if (*piVar10 == iVar12) {
LAB_180531441:
        uVar6 = uVar13;
        uVar8 = uVar13;
        if (0 < *piVar10) {
          do {
            uVar2 = (int)uVar8 + 1;
            *(undefined4 *)(uVar6 + *(longlong *)(piVar10 + -2)) = 0;
            uVar6 = uVar6 + 4;
            uVar8 = (ulonglong)uVar2;
          } while ((int)uVar2 < *piVar10);
        }
      }
      else {
        if ((0 < *piVar10) && (*(longlong *)(piVar10 + -2) != 0)) {
          FUN_1800010c0();
        }
        piVar10[-2] = 0;
        piVar10[-1] = 0;
        if (iVar12 < 0) {
          iVar12 = 0;
        }
        *piVar10 = iVar12;
        if (iVar12 != 0) {
          uVar4 = FUN_180001080(iVar12 * 4);
          *(undefined8 *)(piVar10 + -2) = uVar4;
          goto LAB_180531441;
        }
      }
      if (0 < *piVar10) {
        uVar6 = uVar13;
        uVar8 = uVar13;
        do {
          uVar2 = (int)uVar6 + 1;
          uVar6 = (ulonglong)uVar2;
          *(float *)(uVar8 + *(longlong *)(piVar10 + -2)) = (float)iVar15;
          uVar8 = uVar8 + 4;
        } while ((int)uVar2 < *piVar10);
      }
      uVar2 = (int)uVar17 + 1;
      uVar17 = (ulonglong)uVar2;
      piVar10 = piVar10 + 4;
    } while ((int)uVar2 < *(int *)(param_1 + 0x2404d0));
  }
  plVar9 = (longlong *)(param_1 + 0x540758);
  iVar15 = *(int *)(param_1 + 100) / 2 + 1;
  lVar3 = (longlong)iVar16;
  lVar14 = (longlong)iVar15;
  fVar20 = (float)iVar5 / (float)iVar15;
  if (lVar3 < lVar14) {
    if (3 < lVar14 - lVar3) {
      iVar15 = iVar16 + 2;
      iVar5 = iVar16;
      do {
        iVar16 = iVar5 + 4;
        *(float *)(*plVar9 + lVar3 * 4) = (float)iVar5 * fVar20 * fVar21;
        *(float *)(*plVar9 + 4 + lVar3 * 4) = (float)(iVar15 + -1) * fVar20 * fVar21;
        *(float *)(*plVar9 + 8 + lVar3 * 4) = (float)iVar15 * fVar20 * fVar21;
        iVar5 = iVar15 + 1;
        iVar15 = iVar15 + 4;
        *(float *)(*plVar9 + 0xc + lVar3 * 4) = (float)iVar5 * fVar20 * fVar21;
        lVar3 = lVar3 + 4;
        iVar5 = iVar16;
      } while (lVar3 < lVar14 + -3);
    }
    for (; lVar3 < lVar14; lVar3 = lVar3 + 1) {
      *(float *)(*plVar9 + lVar3 * 4) = (float)iVar16 * fVar20 * fVar21;
      iVar16 = iVar16 + 1;
    }
  }
  *(undefined1 *)(param_1 + 0x5408ad) = 1;
  if ((*(char *)(param_1 + 0x240464) != '\0') &&
     (*(undefined1 *)(param_1 + 0x240464) = 0, 0 < *(int *)(param_1 + 0x24045c))) {
    pcVar11 = (char *)(param_1 + 0x240467);
    do {
      if (*pcVar11 != '\0') {
        FUN_1805316e0(param_1 + 0x3d8,uVar13);
        *pcVar11 = '\0';
      }
      uVar2 = (int)uVar13 + 1;
      uVar13 = (ulonglong)uVar2;
      pcVar11 = pcVar11 + 1;
    } while ((int)uVar2 < *(int *)(param_1 + 0x24045c));
  }
  return;
}



############ FUN_ 180533340 size=414 ############

void FUN_180533340(int *param_1,float param_2,float param_3,float param_4,float param_5,
                  float param_6)

{
  ulonglong uVar1;
  float fVar2;
  double dVar3;
  double dVar4;
  int iVar5;
  double *pdVar6;
  float fVar7;
  double dVar8;
  float fVar9;
  uint uVar10;
  
  param_4 = param_4 * DAT_1824c3d8c;
  iVar5 = 1;
  param_1[0x20004] = 0;
  param_1[0x20005] = 0;
  param_1[4] = 0;
  dVar4 = DAT_1824c46b8;
  dVar3 = DAT_1824c4140;
  fVar2 = DAT_1824c3ea4;
  param_1[5] = 0x3ff00000;
  fVar9 = (param_3 / param_4) * (float)*param_1;
  if (1 < *param_1) {
    pdVar6 = (double *)(param_1 + 6);
    uVar10 = (uint)DAT_1824c4f10;
    uVar1 = (ulonglong)DAT_1824c4f10 >> 0x20;
    do {
      fVar7 = (float)iVar5;
      if (fVar7 <= fVar9) {
        fVar7 = fVar9 / fVar7;
      }
      else {
        fVar7 = powf(fVar9 / fVar7,param_5);
      }
      dVar8 = (double)(fVar2 / ((fVar7 * param_2) / param_6 + fVar2));
      dVar8 = exp((double)(((float)(double)CONCAT44((uint)((ulonglong)dVar8 >> 0x20) & (uint)uVar1,
                                                    SUB84(dVar8,0) & uVar10) * fVar7 * param_2) /
                          (float)param_1[2]) * dVar4);
      iVar5 = iVar5 + 1;
      pdVar6[0x10000] = (double)(float)dVar8;
      *pdVar6 = dVar3 - (double)(float)dVar8;
      pdVar6 = pdVar6 + 1;
    } while (iVar5 < *param_1);
  }
  return;
}



############ FUN_ 181a04090 size=1882 ############

/* WARNING: Removing unreachable block (ram,0x000181a04185) */

undefined8 FUN_181a04090(undefined8 param_1,undefined8 param_2)

{
  ulonglong uVar1;
  undefined8 uVar2;
  code **ppcVar3;
  uint *puVar4;
  uint uVar5;
  undefined4 *puVar6;
  ulonglong uVar7;
  longlong *plVar8;
  uint uVar9;
  int unaff_retaddr;
  undefined1 auStack_168 [36];
  uint local_144;
  undefined *local_140;
  ulonglong local_138;
  uint local_130;
  uint local_128;
  undefined4 local_124;
  undefined8 local_110;
  undefined *local_108;
  undefined4 local_100;
  uint local_fc;
  uint local_f8;
  undefined4 local_f4;
  code *local_f0;
  undefined *local_e8;
  undefined8 local_c8;
  undefined4 local_c0;
  undefined4 local_bc;
  longlong local_b0 [4];
  undefined8 local_90;
  ulonglong local_30;
  
  local_30 = DAT_182615970 ^ (ulonglong)auStack_168;
  uVar9 = (uint)&stack0x00000000 & 0x2ff;
  uVar9 = (uVar9 * uVar9 * 0x10 + 4) % 0x13;
  local_f8 = ((int)(-uVar9 | uVar9) >> 0x1f) * -0x8644 ^ 0x8ac4;
  local_f4 = 0xd50;
  do {
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  local_108 = &DAT_182111a10;
  local_140 = &DAT_1821259e8;
  local_138 = 0x794dcad6bd74d94c;
  local_110 = 0xbd74d94c;
  do {
    uVar2 = rdtsc();
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar9 = ((uint)uVar2 ^ (uint)((ulonglong)uVar2 >> 0x20)) * -0x7a1400af;
  local_130 = (uVar9 >> 0x18 ^ uVar9) * -0x3d4d3595;
  local_c8 = param_2;
  local_90 = param_1;
  if (local_130 < 0x7fffffff) {
    local_f0 = (code *)0x0;
    do {
      ppcVar3 = &local_f0;
                    /* WARNING: Call to offcut address within same function */
      func_0x000181a04726(ppcVar3,&local_f0);
      *ppcVar3 = FUN_1813bba80;
      FUN_181a05e83();
      uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar9 < 0) {
        uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar9 != 0);
    uVar1 = (*local_f0)();
    if (1 < uVar1) {
      FUN_18113eab0();
    }
  }
  do {
    plVar8 = local_b0;
    puVar6 = &local_c0;
    puVar4 = &local_144;
    func_0x000181a03edb();
    *puVar4 = 0xd588f26c;
    *puVar6 = 0x16;
    *plVar8 = 0x181a04377;
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar9 = ((local_144 >> 8 | local_144 << 0x18) & 0xa45ba45b |
          (local_144 << 8 | local_144 >> 0x18) & 0x5ba45ba4) + 0x9528e3ad;
  uVar5 = ((uVar9 * 0x10 | uVar9 >> 0x1c) & 0xe1e1e1e1 |
          (uVar9 >> 4 | uVar9 * 0x10000000) & 0x1e1e1e1e) ^ 0x21cc3f9e;
  uVar9 = (uVar5 >> 0xb ^ uVar5) >> 2 & 0x3ff;
  uVar5 = (uVar9 << 0xb | uVar9) << 2 ^ uVar5;
  uVar9 = (uVar5 << 0x15 | uVar5 >> 0xb) ^ 0xc77e6d0d;
  do {
    local_bc = 0x59;
    local_b0[1] = 0x181a04447;
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  local_b0[0] = (int)((uVar9 >> 4 & 0xf0f0f0f0 | uVar9 << 0x1c |
                      (uVar9 & 0xf0f0f0) << 4 | uVar9 >> 0x1c) ^ 0xab8cb152) + local_b0[0];
  local_144 = 0;
  local_124 = 0;
  *(longlong *)(local_b0[0] + 4) =
       *(longlong *)(local_b0[0] + 4) +
       (ulonglong)((uint)((ulonglong)dvs_0x00b625aa_mfort6317_ >> 0xd) & 0x1148f29);
  uVar1 = *(ulonglong *)(local_b0[0] + 4);
  uVar9 = (uint)((uVar1 >> 0x10 ^ uVar1) >> 9) & 0x1fff;
  uVar7 = ((ulonglong)uVar9 << 0x10 | (ulonglong)uVar9) << 9 ^ uVar1 ^ 0x1ad82cde25fa3de9;
  uVar9 = (uint)((uVar7 >> 0x1d ^ uVar7) >> 1) & 0x1fffffff;
  uVar7 = ((ulonglong)uVar9 << 0x1d | (ulonglong)uVar9) * 2 ^ uVar7;
  uVar1 = uVar7 >> 2 & 0xcccccccccccccccc | uVar7 << 0x3e |
          (uVar7 & 0xccccccccccccccc) << 2 | uVar1 >> 0x3e;
  uVar1 = ((uVar1 >> 0x10 | uVar1 << 0x30) & 0x8aab75548aab7554 |
          (uVar1 << 0x10 | uVar1 >> 0x30) & 0x75548aab75548aab) ^ 0xa6729cab8f38677b;
  uVar1 = (uVar1 & 0x3333333333333333) << 2 | uVar1 >> 2 & 0x3333333333333333;
  uVar7 = uVar1 >> 0x18 | uVar1 << 0x28;
  uVar1 = (uVar7 << 0x10 | (uVar1 & 0xffffff) >> 8) & 0x87ae785187ae7851 |
          (uVar7 >> 0x10 | (uVar1 >> 0x18) << 0x30) & 0x785187ae785187ae;
  *(ulonglong *)(local_b0[0] + 4) = uVar1;
  dvs_0x00b625aa_mfort6317_ =
       (uint *)((longlong)dvs_0x00b625aa_mfort6317_ + (uVar1 >> 0x19 & 0xe0489005));
  local_fc = (uint)(*(ulonglong *)(local_b0[0] + 4) >> 7) & 0x7fffffff;
  local_128 = (uint)(*(ulonglong *)(local_b0[0] + 4) >> 0x14) ^ 0xf1bcfbbf;
  local_138 = *(ulonglong *)(local_b0[0] + 4) ^ 0xcf265b0a6c3aa52d;
  local_e8 = local_108;
  local_108 = (undefined *)((longlong)local_140 - (longlong)local_108);
  do {
    local_100 = 0xe30439a5;
    FUN_181a05ca9();
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar2 = FUN_181a048d3();
  return uVar2;
}



############ FUN_ 1805bd330 size=56 ############

undefined8 FUN_1805bd330(longlong param_1)

{
  undefined1 *puVar1;
  
  FUN_18113eab0();
  *(undefined4 *)(param_1 + 8) = 0;
  *(undefined8 *)(param_1 + 0x60) = 0;
  if (0xf < *(ulonglong *)(param_1 + 0x68)) {
    puVar1 = *(undefined1 **)(param_1 + 0x50);
    *puVar1 = 0;
    return CONCAT71((int7)((ulonglong)puVar1 >> 8),1);
  }
  *(undefined1 *)(param_1 + 0x50) = 0;
  return 1;
}



############ FUN_ 1805c0340 size=56 ############

undefined8 FUN_1805c0340(undefined8 param_1,longlong param_2)

{
  undefined1 *puVar1;
  
  FUN_18113eab0();
  *(undefined4 *)(param_2 + 8) = 0;
  *(undefined8 *)(param_2 + 0x60) = 0;
  if (0xf < *(ulonglong *)(param_2 + 0x68)) {
    puVar1 = *(undefined1 **)(param_2 + 0x50);
    *puVar1 = 0;
    return CONCAT71((int7)((ulonglong)puVar1 >> 8),1);
  }
  *(undefined1 *)(param_2 + 0x50) = 0;
  return 1;
}



############ FUN_ 180575800 size=272 ############

void FUN_180575800(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::pub::ErrorInfo::vftable;
  if (0xf < (ulonglong)param_1[0xd]) {
    pvVar1 = (void *)param_1[10];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0xd] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0xc] = 0;
  param_1[0xd] = 0xf;
  *(undefined1 *)(param_1 + 10) = 0;
  if (0xf < (ulonglong)param_1[9]) {
    pvVar1 = (void *)param_1[6];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[9] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[8] = 0;
  param_1[9] = 0xf;
  *(undefined1 *)(param_1 + 6) = 0;
  if ((ulonglong)param_1[5] < 0x10) {
    param_1[4] = 0;
    param_1[5] = 0xf;
    *(undefined1 *)(param_1 + 2) = 0;
    return;
  }
  pvVar1 = (void *)param_1[2];
  pvVar2 = pvVar1;
  if ((0xfff < param_1[5] + 1) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 180576470 size=330 ############

void FUN_180576470(longlong *param_1)

{
  void *pvVar1;
  void *pvVar2;
  ulonglong uVar3;
  longlong lVar4;
  ulonglong uVar5;
  
  pvVar1 = (void *)param_1[1];
  lVar4 = *param_1;
  uVar5 = (longlong)pvVar1 - lVar4;
  uVar3 = param_1[2] - lVar4;
  if (uVar3 < 0x20) {
    if (0x7fffffffffffffff - (uVar3 >> 1) < uVar3) {
      uVar3 = 0x20;
    }
    else {
      uVar3 = (uVar3 >> 1) + uVar3;
      if (uVar3 < 0x20) {
        uVar3 = 0x20;
      }
    }
    pvVar2 = (void *)FUN_180480500(uVar3);
    memset((void *)((longlong)pvVar2 + uVar5),0,0x20 - uVar5);
    memmove(pvVar2,(void *)*param_1,param_1[1] - *param_1);
    pvVar1 = (void *)*param_1;
    if (pvVar1 != (void *)0x0) {
      pvVar2 = pvVar1;
      if ((0xfff < (ulonglong)(param_1[2] - (longlong)pvVar1)) &&
         (pvVar2 = *(void **)((longlong)pvVar1 + -8),
         0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(pvVar2);
    }
    *param_1 = (longlong)pvVar2;
    param_1[1] = (longlong)pvVar2 + 0x20;
    param_1[2] = (longlong)pvVar2 + uVar3;
  }
  else {
    if (uVar5 < 0x20) {
      lVar4 = (longlong)pvVar1 + (0x20 - uVar5);
      memset(pvVar1,0,lVar4 - (longlong)pvVar1);
      param_1[1] = lVar4;
      return;
    }
    if (uVar5 != 0x20) {
      param_1[1] = lVar4 + 0x20;
      return;
    }
  }
  return;
}



############ FUN_ 180487940 size=305 ############

longlong * FUN_180487940(longlong *param_1,void *param_2)

{
  ulonglong uVar1;
  ulonglong uVar2;
  void *pvVar3;
  ulonglong uVar4;
  void *_Memory;
  ulonglong _Size;
  longlong *_Dst;
  ulonglong uVar5;
  
  param_1[2] = 0;
  param_1[3] = 0xf;
  *(undefined1 *)param_1 = 0;
  _Size = 0xffffffffffffffff;
  do {
    _Size = _Size + 1;
  } while (*(char *)((longlong)param_2 + _Size) != '\0');
  uVar2 = param_1[3];
  if (uVar2 < _Size) {
    if (0x7fffffffffffffff < _Size) {
                    /* WARNING: Subroutine does not return */
      FUN_18048c740();
    }
    uVar4 = _Size | 0xf;
    uVar5 = 0x7fffffffffffffff;
    if (((uVar4 < 0x8000000000000000) && (uVar2 <= 0x7fffffffffffffff - (uVar2 >> 1))) &&
       (uVar1 = (uVar2 >> 1) + uVar2, uVar5 = uVar4, uVar4 < uVar1)) {
      uVar5 = uVar1;
    }
    pvVar3 = (void *)FUN_180480500(uVar5 + 1);
    param_1[2] = _Size;
    param_1[3] = uVar5;
    memcpy(pvVar3,param_2,_Size);
    *(undefined1 *)((longlong)pvVar3 + _Size) = 0;
    if (0xf < uVar2) {
      pvVar3 = (void *)*param_1;
      _Memory = pvVar3;
      if ((0xfff < uVar2 + 1) &&
         (_Memory = *(void **)((longlong)pvVar3 + -8),
         0x1f < (ulonglong)((longlong)pvVar3 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
    *param_1 = (longlong)pvVar3;
  }
  else {
    _Dst = param_1;
    if (0xf < uVar2) {
      _Dst = (longlong *)*param_1;
    }
    param_1[2] = _Size;
    memmove(_Dst,param_2,_Size);
    *(undefined1 *)((longlong)_Dst + _Size) = 0;
  }
  return param_1;
}



############ FUN_ 1805c4280 size=3417 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x0001805c5081) */

void FUN_1805c4280(undefined8 param_1,longlong param_2,longlong param_3,longlong param_4)

{
  longlong lVar1;
  int iVar2;
  bool bVar3;
  char cVar4;
  int *piVar5;
  int *piVar6;
  undefined8 uVar7;
  int *piVar8;
  longlong lVar9;
  undefined8 *puVar10;
  undefined8 *puVar11;
  int *piVar12;
  undefined1 auStack_cd8 [32];
  longlong local_cb8;
  char local_ca8;
  undefined1 local_ca7;
  undefined1 local_ca6;
  undefined1 local_ca5;
  undefined1 local_ca4;
  undefined1 local_ca3;
  undefined1 local_ca2;
  undefined1 local_ca1;
  longlong local_ca0;
  int *local_c98;
  undefined8 local_c90;
  undefined **local_c88;
  undefined1 local_c80;
  undefined8 local_c78;
  undefined8 uStack_c70;
  undefined8 local_c68;
  longlong lStack_c60;
  undefined1 *local_c58;
  undefined1 *puStack_c50;
  int local_c48 [2];
  undefined8 local_c40;
  undefined4 local_c38;
  undefined1 local_c34;
  longlong local_c28;
  longlong local_c20;
  char *local_c18;
  undefined4 local_c10 [2];
  undefined4 local_c08 [4];
  undefined4 local_bf8 [2];
  undefined4 local_bf0 [2];
  char *local_be8;
  int *local_be0;
  longlong local_bd8;
  longlong local_bd0;
  longlong lStack_bc8;
  longlong local_bc0;
  undefined8 local_bb8;
  undefined1 local_bb0 [8];
  longlong local_ba8;
  ulonglong local_ba0;
  longlong local_b98;
  undefined8 local_b90;
  longlong local_b88;
  char *local_b80;
  int *local_b78;
  char *local_b70;
  undefined **local_b68;
  longlong local_b60;
  longlong local_b58;
  undefined8 uStack_b50;
  longlong local_b48;
  longlong lStack_b40;
  undefined8 local_b38;
  undefined8 local_b30;
  undefined1 local_b28;
  longlong local_b18;
  longlong lStack_b10;
  undefined8 local_b08;
  undefined **local_af8;
  undefined4 local_af0;
  undefined4 local_aec;
  undefined8 local_ae8;
  undefined4 local_ae0;
  int *local_ad8;
  int *piStack_ad0;
  undefined8 local_ac8;
  undefined4 local_ac0;
  undefined1 local_abc;
  longlong local_ab0;
  char *local_aa8;
  char *local_aa0 [2];
  longlong local_a90;
  char *local_a88;
  longlong local_a80;
  char *local_a78 [6];
  undefined8 local_a48;
  undefined **local_a28;
  undefined4 local_a20;
  undefined2 local_a1c;
  undefined4 local_a18;
  undefined1 local_a14;
  undefined1 local_a10 [16];
  undefined8 local_a00;
  undefined8 local_9f8;
  undefined1 local_9f0 [16];
  undefined8 local_9e0;
  undefined8 local_9d8;
  undefined8 local_9d0;
  undefined8 local_9c8;
  undefined2 local_9c0;
  undefined1 local_9be;
  undefined1 local_9b8 [8];
  int local_9b0;
  int local_9ac;
  undefined1 local_9a8;
  undefined4 local_970;
  undefined2 local_928;
  ulonglong local_40;
  
  local_a48 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_cd8;
  piVar8 = (int *)0x0;
  *(undefined4 *)(param_4 + 8) = 0;
  puVar11 = (undefined8 *)(param_4 + 0x50);
  *(undefined8 *)(param_4 + 0x60) = 0;
  if (0xf < *(ulonglong *)(param_4 + 0x68)) {
    puVar11 = (undefined8 *)*puVar11;
  }
  *(undefined1 *)puVar11 = 0;
  *(undefined8 *)(param_3 + 0x28) = *(undefined8 *)(param_3 + 0x20);
  *(undefined8 *)(param_3 + 0x40) = *(undefined8 *)(param_3 + 0x38);
  *(undefined1 *)(param_3 + 0x88) = 0;
  puVar11 = *(undefined8 **)(param_3 + 0x78);
  local_bd8 = param_3;
  local_ca0 = param_4;
  for (puVar10 = *(undefined8 **)(param_3 + 0x70); local_ba8 = param_2, puVar10 != puVar11;
      puVar10 = puVar10 + 0x87) {
    (**(code **)*puVar10)(puVar10,0);
    param_2 = local_ba8;
  }
  *(undefined8 *)(param_3 + 0x78) = *(undefined8 *)(param_3 + 0x70);
  if (*(longlong *)(param_2 + 0x10) - *(longlong *)(param_2 + 8) != 0x20) {
    local_c98 = (int *)FUN_1811316e0(0x18);
    piVar5 = piVar8;
    if (local_c98 != (int *)0x0) {
      piVar5 = (int *)FUN_1805a48c0(local_c98,"Bad randomData size ($d).  This should be 32.");
    }
    piVar6 = (int *)FUN_1811316e0(0x18);
    local_c98 = piVar6;
    if (piVar6 != (int *)0x0) {
      FUN_1805a48c0(piVar6,"|__FILE__|%s|__LINE__|%d");
      *(undefined ***)piVar6 = pace::PaceLocationInfoFormatter::vftable;
      piVar8 = piVar6;
    }
    local_b88 = *(longlong *)(param_2 + 0x10) - *(longlong *)(param_2 + 8);
    FUN_1805b2520(*(undefined8 *)(piVar5 + 2),&local_b88);
    local_c28 = CONCAT44(local_c28._4_4_,0xc70);
    local_b80 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\paceeden.cpp";
    uVar7 = FUN_1805a21d0(*(undefined8 *)(piVar8 + 2),&local_b80);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar7,&local_c28);
  }
  local_af8 = pace::eden::thrift::fusion::DynamicCryptoLicenseData::vftable;
  local_ae8 = 0;
  local_ad8 = (int *)0x0;
  piStack_ad0 = (int *)0x0;
  local_ac8 = 0;
  local_ac0 = 0;
  local_abc = 0;
  local_af0 = 1;
  local_aec = 1;
  FUN_1805de600(param_1,&local_af8);
  piVar5 = piStack_ad0;
  local_bd0 = 0;
  lStack_bc8 = 0;
  local_bc0 = 0;
  local_be0 = piStack_ad0;
  bVar3 = true;
  piVar6 = local_ad8;
  while( true ) {
    local_b78 = piVar6;
    if ((!bVar3) || (piVar6 == piVar5)) break;
    bVar3 = false;
    while (!bVar3) {
      FUN_1805b5490(local_9b8);
      local_9b0 = piVar6[4];
      local_9ac = piVar6[5];
      local_9a8 = (undefined1)piVar6[6];
      local_970 = local_ae0;
      local_928 = 1;
      if (local_bc0 == lStack_bc8) {
        FUN_1805b0190(&local_bd0,lStack_bc8);
      }
      else {
        FUN_1805b53c0(lStack_bc8,local_9b8);
        lStack_bc8 = lStack_bc8 + 0xa8;
      }
      FUN_1805b7ad0(local_9b8);
      bVar3 = true;
    }
    piVar6 = piVar6 + 0x3a;
  }
  lVar9 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816(lStack_bc8 - local_bd0),8) +
          (lStack_bc8 - local_bd0);
  if (lVar9 >> 7 != lVar9 >> 0x3f) {
    local_a28 = pace::eden::thrift::pub::FindAuthOptions::vftable;
    local_a20 = 1;
    local_a1c = 0;
    local_a14 = 0;
    local_a00 = 0;
    local_9f8 = 0xf;
    local_a10[0] = 0;
    FUN_1805a6cb0(local_a10,&DAT_181baf991,0);
    local_9e0 = 0;
    local_9d8 = 0xf;
    local_9f0[0] = 0;
    FUN_1805a6cb0(local_9f0,&DAT_181baf991,0);
    local_9c8 = 0;
    local_9c0 = 0;
    local_9be = 0;
    local_a18 = 0;
    local_9d0 = local_ae8;
    local_b18 = 0;
    lStack_b10 = 0;
    local_b08 = 0;
    FUN_1805bdb50(&local_bb8,0);
    local_b90 = 1;
    local_c98 = (int *)FUN_1806a4f70(local_bb8);
    local_ba0 = (ulonglong)local_c98;
    local_c18 = (char *)FUN_1806a35e0(local_bb8);
    local_cb8 = param_3 + 0x358;
    local_be8 = local_c18;
    FUN_18069bc20(local_bb8,&local_bd0,&local_a28,&local_b18);
    lVar9 = local_b18;
    local_b98 = local_b18;
    local_c20 = (lStack_b10 - local_b18) / 0x2f0;
    if (local_c20 == 0) {
      local_be0 = (int *)FUN_1811316e0(0x18);
      if (local_be0 != (int *)0x0) {
        FUN_1805a48c0(local_be0,"No authorized licenses found.");
      }
      piVar5 = (int *)FUN_1811316e0(0x18);
      local_be0 = piVar5;
      if (piVar5 != (int *)0x0) {
        FUN_1805a48c0(piVar5,"|__FILE__|%s|__LINE__|%d");
        *(undefined ***)piVar5 = pace::PaceLocationInfoFormatter::vftable;
        piVar8 = piVar5;
      }
      local_c90 = CONCAT44(local_c90._4_4_,0xcce);
      local_b70 = 
      "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\paceeden.cpp"
      ;
      uVar7 = FUN_1805a21d0(*(undefined8 *)(piVar8 + 2),&local_b70);
                    /* WARNING: Subroutine does not return */
      FUN_1805b20d0(uVar7,&local_c90);
    }
    local_c90 = 1;
    local_ab0 = lStack_b10;
    cVar4 = '\x01';
    while( true ) {
      if ((cVar4 == '\0') || (lVar9 == local_ab0)) {
        FUN_1805b9860(local_bb0);
        FUN_1805bc0b0(&local_b18);
        FUN_1805b8040(&local_a28);
        FUN_1805b72a0(&local_bd0);
        local_af8 = pace::eden::thrift::fusion::DynamicCryptoLicenseData::vftable;
        FUN_1805b7370(&local_ad8);
      }
      local_c28 = lVar9;
      local_ca8 = '\0';
      piVar5 = local_ad8 + 5;
      while ((piVar6 = piVar5 + -5, piVar12 = piVar8, piVar6 != piStack_ad0 &&
             ((piVar5[-1] != *(int *)(*(longlong *)(lVar9 + 8) + 8) ||
              ((iVar2 = *(int *)(*(longlong *)(lVar9 + 8) + 0xc), piVar12 = piVar6, *piVar5 != iVar2
               && (((char)piVar5[1] == '\0' || (iVar2 != -1))))))))) {
        piVar5 = piVar5 + 0x3a;
      }
      if (piVar12 == (int *)0x0) {
        local_be0 = (int *)FUN_1811316e0(0x18);
        if (local_be0 != (int *)0x0) {
          FUN_1805a48c0(local_be0,
                        "The DynamicCryptoLicenseData has no product information for the given AuthChain"
                       );
        }
        lVar9 = FUN_1805c0260();
        local_c10[0] = 0xcea;
        local_aa8 = 
        "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\paceeden.cpp"
        ;
        uVar7 = FUN_1805a21d0(*(undefined8 *)(lVar9 + 8),&local_aa8);
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(uVar7,local_c10);
      }
      local_c88 = pace::eden::thrift::fusion::DynamicCryptoKeyExchangeInput::vftable;
      local_c78 = 0;
      uStack_c70 = 0;
      local_c68 = 0;
      lStack_c60 = 0;
      local_c58 = (undefined1 *)0x0;
      puStack_c50 = (undefined1 *)0x0;
      local_c48[0] = 3;
      local_c40 = 0;
      local_c38 = 0;
      local_c34 = 0;
      local_b68 = pace::eden::thrift::fusion::DynamicCryptoKeyExchangeOutput::vftable;
      local_b60 = 0;
      local_b58 = 0;
      uStack_b50 = 0;
      local_b48 = 0;
      lStack_b40 = 0;
      local_b38 = 0;
      local_b30 = 0;
      local_b28 = 0;
      local_c80 = *(undefined1 *)((longlong)piVar12 + 0x19);
      FUN_1805b9910(&local_c78,local_ba8 + 8);
      if ((ulonglong)((longlong)puStack_c50 - lStack_c60) < 7) {
        FUN_1805bbf80(&lStack_c60,7);
      }
      local_ca7 = 0x92;
      if (puStack_c50 == local_c58) {
        FUN_1805b0850(&lStack_c60,local_c58,&local_ca7);
      }
      else {
        *local_c58 = 0x92;
        local_c58 = local_c58 + 1;
      }
      local_ca6 = 0x75;
      if (puStack_c50 == local_c58) {
        FUN_1805b0850(&lStack_c60,local_c58,&local_ca6);
      }
      else {
        *local_c58 = 0x75;
        local_c58 = local_c58 + 1;
      }
      local_ca5 = 0xf6;
      if (puStack_c50 == local_c58) {
        FUN_1805b0850(&lStack_c60,local_c58,&local_ca5);
      }
      else {
        *local_c58 = 0xf6;
        local_c58 = local_c58 + 1;
      }
      local_ca4 = 0x1a;
      if (puStack_c50 == local_c58) {
        FUN_1805b0850(&lStack_c60,local_c58,&local_ca4);
      }
      else {
        *local_c58 = 0x1a;
        local_c58 = local_c58 + 1;
      }
      local_ca3 = 0xfe;
      if (puStack_c50 == local_c58) {
        FUN_1805b0850(&lStack_c60,local_c58,&local_ca3);
      }
      else {
        *local_c58 = 0xfe;
        local_c58 = local_c58 + 1;
      }
      local_ca2 = 0xd3;
      if (puStack_c50 == local_c58) {
        FUN_1805b0850(&lStack_c60,local_c58,&local_ca2);
      }
      else {
        *local_c58 = 0xd3;
        local_c58 = local_c58 + 1;
      }
      local_ca1 = 0x6b;
      if (puStack_c50 == local_c58) {
        FUN_1805b0850(&lStack_c60,local_c58,&local_ca1);
      }
      else {
        *local_c58 = 0x6b;
        local_c58 = local_c58 + 1;
      }
      local_c48[0] = piVar12[0x12];
      FUN_1806995c0(local_bb8,lVar9,&local_c88,&local_b68);
      if (local_b30._4_1_ != '\0') {
        local_b70 = (char *)FUN_1811316e0(0x18);
        if (local_b70 != (char *)0x0) {
          FUN_1805a48c0(local_b70,"Location needs to be updated.");
        }
        lVar9 = FUN_1805c0260();
        local_c08[0] = 0xd04;
        local_aa0[0] = 
        "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\paceeden.cpp"
        ;
        uVar7 = FUN_1805a21d0(*(undefined8 *)(lVar9 + 8),local_aa0);
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(uVar7,local_c08);
      }
      if (local_c48[0] != (int)local_b30) {
        local_b78 = (int *)FUN_1811316e0(0x18);
        if (local_b78 != (int *)0x0) {
          piVar8 = (int *)FUN_1805a48c0(local_b78,
                                        "Requested algorithmId $d, but algorithmId %d was used.");
        }
        FUN_1805c0260();
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(*(undefined8 *)(piVar8 + 2),local_c48);
      }
      if (local_b58 - local_b60 != 0x20) break;
      if (lStack_b40 - local_b48 != 0x20) {
        local_b88 = FUN_1811316e0(0x18);
        if (local_b88 != 0) {
          piVar8 = (int *)FUN_1805a48c0(local_b88,
                                        "Bad Integral Domain Data size (%d).  This should be 32.");
        }
        lVar9 = FUN_1805c0260();
        local_a80 = lStack_b40 - local_b48;
        FUN_1805b2520(*(undefined8 *)(piVar8 + 2),&local_a80);
        local_bf0[0] = 0xd17;
        local_a78[0] = 
        "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\paceeden.cpp"
        ;
        uVar7 = FUN_1805a21d0(*(undefined8 *)(lVar9 + 8),local_a78);
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(uVar7,local_bf0);
      }
      lVar1 = param_3 + 8;
      if ((local_ba0 & *(ulonglong *)(lVar9 + 0x68)) == 0) {
        if (((ulonglong)local_c18 & *(ulonglong *)(lVar9 + 0x68)) == 0) {
          FUN_1805b9910(lVar1,piVar12 + 0x20);
          FUN_1805b9910(param_3 + 0x50,piVar12 + 0x26);
        }
        else {
          FUN_1805b9910(lVar1,piVar12 + 0x2c);
          FUN_1805b9910(param_3 + 0x50,piVar12 + 0x32);
        }
      }
      else {
        FUN_1805b9910(lVar1,piVar12 + 0x14);
        FUN_1805b9910(param_3 + 0x50,piVar12 + 0x1a);
      }
      FUN_1805b9910(param_3 + 0x20,&local_b60);
      FUN_1805b9910(param_3 + 0x38,&local_b48);
      FUN_1805b9ea0(param_3 + 0x68,lVar9);
      FUN_1805b7e80(&local_b68);
      FUN_1805b7dc0(&local_c88);
      cVar4 = local_ca8;
    }
    local_b80 = (char *)FUN_1811316e0(0x18);
    if (local_b80 != (char *)0x0) {
      piVar8 = (int *)FUN_1805a48c0(local_b80,"Bad Exchange Data size (%d).  This should be 32.");
    }
    lVar9 = FUN_1805c0260();
    local_a90 = local_b58 - local_b60;
    FUN_1805b2520(*(undefined8 *)(piVar8 + 2),&local_a90);
    local_bf8[0] = 0xd11;
    local_a88 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\paceeden.cpp";
    uVar7 = FUN_1805a21d0(*(undefined8 *)(lVar9 + 8),&local_a88);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar7,local_bf8);
  }
  local_c98 = (int *)FUN_1811316e0(0x18);
  if (local_c98 != (int *)0x0) {
    FUN_1805a48c0(local_c98,"The Pace Eden license data has no product information");
  }
  piVar5 = (int *)FUN_1811316e0(0x18);
  local_c98 = piVar5;
  if (piVar5 != (int *)0x0) {
    FUN_1805a48c0(piVar5,"|__FILE__|%s|__LINE__|%d");
    *(undefined ***)piVar5 = pace::PaceLocationInfoFormatter::vftable;
    piVar8 = piVar5;
  }
  local_c20 = CONCAT44(local_c20._4_4_,0xc90);
  local_be8 = 
  "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\paceeden.cpp";
  uVar7 = FUN_1805a21d0(*(undefined8 *)(piVar8 + 2),&local_be8);
                    /* WARNING: Subroutine does not return */
  FUN_1805b20d0(uVar7,&local_c20);
}



############ FUN_ 181684fb0 size=3380 ############

void FUN_181684fb0(void)

{
  longlong lVar1;
  uint uVar2;
  undefined8 uVar3;
  undefined8 *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  longlong lVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  longlong lVar26;
  uint uVar27;
  uint uVar28;
  longlong *plVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  
  uVar17 = DAT_1826794bc;
  uVar11 = DAT_1826792a4;
  uVar9 = DAT_182679284;
  uVar10 = DAT_18267925c;
  uVar7 = DAT_182679248;
  uVar27 = DAT_1826794bc * DAT_1826793d0;
  uVar24 = DAT_1826794a0 & 3;
  DAT_182678ef4 = DAT_182679280 & DAT_1826792e8;
  uVar37 = DAT_1826792a4 * DAT_182679248;
  if (uVar24 < 2) {
    DAT_182679584 = DAT_182679428;
    if (uVar24 == 0) {
      DAT_182679584 = DAT_1826794a0;
    }
  }
  else {
    DAT_182679584 = DAT_18267934c;
    if (uVar24 < 3) {
      DAT_182679584 = DAT_182679384;
    }
  }
  lVar1 = DAT_182679468 + -8;
  DAT_1826792ac = DAT_182679488 + DAT_182679250;
  DAT_1826792c0 = DAT_182679260 ^ DAT_18267956c;
  DAT_182678f58 = DAT_18267939c | DAT_1826794b8;
  lVar26 = (longlong)DAT_182679154;
  DAT_1826793a8 = uVar27;
  DAT_182679494 = uVar37;
  *(longlong *)(DAT_182679468 + -8) = DAT_182679520;
  uVar8 = DAT_182679248;
  uVar24 = *(uint *)(&DAT_18262bb98 + lVar26);
  uVar2 = *(uint *)(&DAT_18262bba0 + lVar26);
  *(longlong *)(DAT_182679468 + -0x358) = DAT_182679468 + -0x450;
  *(longlong *)(DAT_182679468 + -0x350) = DAT_182679468 + -0x4f0;
  uVar20 = DAT_1826793d0;
  DAT_182679520 = lVar1;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182679300 ^ 0x329e0958)) =
       (CONCAT44(uVar37,uVar17) ^ 0x6f3dcbfabd4400c1) << (((byte)uVar27 ^ 0xa7) & 0x3f);
  *(longlong *)(DAT_182679468 + -0x280) = DAT_182679468 + -0x510;
  *(longlong *)(DAT_182679468 + -0x38) = DAT_182679468 + -0x5b8;
  *(longlong *)(DAT_182679468 + -0x98) = DAT_182679468 + -0x5d8;
  *(ulonglong *)(DAT_182679468 + -0x3c0) =
       (CONCAT44(uVar20,uVar10) ^ 0xe72ff543b25694e5) << (((byte)uVar9 ^ 0x8e) & 0x3f);
  *(longlong *)(DAT_182679468 + -0x340) = DAT_182679468 + -0x5f8;
  uVar23 = (ulonglong)DAT_18267936c;
  *(longlong *)(lVar1 - ((ulonglong)DAT_18267945c ^ 0x468816da)) = DAT_182679468 + -0x6a0;
  uVar15 = DAT_182679480;
  uVar12 = DAT_1826792a4;
  uVar22 = DAT_18267927c;
  uVar36 = (ulonglong)DAT_182679480;
  uVar35 = CONCAT44(uVar20,DAT_18267945c);
  *(longlong *)(lVar1 - (uVar23 ^ 0x468817f2)) = DAT_182679468 + -0x6b0;
  *(longlong *)(lVar1 - ((ulonglong)uVar9 ^ 0xf2dfda9f)) = DAT_182679468 + -0x6d0;
  uVar23 = (ulonglong)DAT_182679318;
  *(longlong *)(DAT_182679468 + -0x248) =
       0x1aafa1722e365602 << ((byte)*(undefined8 *)(DAT_182679468 + -0x1e0) & 0x3f);
  *(longlong *)(lVar1 - (uVar23 ^ 0x1dff769f)) = DAT_182679468 + -0x6f0;
  uVar13 = DAT_18267935c;
  DAT_182679468 = DAT_182679468 + -0x798;
  uVar31 = (ulonglong)DAT_18267935c;
  *(longlong *)(lVar1 - (uVar36 ^ 0x1dee763f)) = DAT_182679468;
  lVar1 = DAT_182679520;
  *(ulonglong *)(DAT_182679520 + -0x248) =
       *(longlong *)(DAT_182679520 + -0x350) +
       ((CONCAT44(uVar10,DAT_1826794f8) ^ 0xc041da977fdbf78b) +
       (CONCAT44(uVar12,uVar13) ^ 0x16f2446c16d24408) * 4) * 8;
  uVar3 = *(undefined8 *)(lVar1 - ((ulonglong)uVar12 ^ 0x16f24624));
  uVar23 = (ulonglong)DAT_18267948c;
  *(undefined8 *)(lVar1 + -0x170) = uVar3;
  uVar18 = DAT_1826794e4;
  *(undefined8 *)(lVar1 + -0x108) = *(undefined8 *)((uVar23 ^ 0xdff7fb77) + lVar1);
  *(undefined8 *)(lVar1 + -0x1a0) = uVar3;
  uVar30 = uVar13 | uVar22;
  uVar38 = (ulonglong)uVar30;
  DAT_18267945c = uVar30;
  *(ulonglong *)(DAT_182679520 - ((ulonglong)DAT_1826794f8 ^ 0x7fdbf5cb)) =
       (uVar35 ^ 0x7e056fdf70369c9) - (CONCAT44(uVar22,uVar18) ^ 0xc382dab3e45c59a8);
  lVar26 = DAT_182679520;
  puVar4 = *(undefined8 **)(DAT_182679520 - ((ulonglong)uVar30 ^ 0xbef37790));
  *(undefined8 **)(DAT_182679520 + -0x170) = puVar4;
  *(undefined8 **)(lVar26 + -0x108) = puVar4 + (CONCAT44(uVar22,uVar13) ^ 0xb873769016d24409);
  uVar14 = DAT_18267936c;
  *(ulonglong *)(lVar26 + -0x240) =
       (CONCAT44(uVar13,uVar22) ^ 0xdecac9f946d30cdb) >>
       ((byte)*(undefined8 *)(lVar26 + -0x1d8) & 0x3f);
  uVar28 = DAT_182679558 ^ (uint)*puVar4;
  *(undefined8 *)(lVar26 + -0x240) = *puVar4;
  uVar20 = uVar28 & 0xff;
  *(ulonglong *)(lVar26 + -0x170) =
       *(longlong *)(lVar26 + -0x1a0) + (CONCAT44(uVar22,uVar30) ^ 0xb8737690bef37699) * 8;
  uVar9 = DAT_1826794bc;
  DAT_182679558 = ((uVar28 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar35 = CONCAT44(DAT_182679558,DAT_182679558);
  uVar34 = (ulonglong)DAT_1826794bc;
  **(ulonglong **)(lVar26 - ((ulonglong)DAT_182679248 ^ 0x8bf7dadf)) =
       *(ulonglong *)(lVar26 - ((ulonglong)DAT_182679284 ^ 0xf2dfd8d7)) ^ uVar35;
  *(undefined8 *)(lVar26 + -800) = *(undefined8 *)(lVar26 + -0x170);
  *(undefined8 *)(lVar26 - ((ulonglong)DAT_1826794f8 ^ 0x7fdbf6fb)) =
       *(undefined8 *)(lVar26 + -0x108);
  *(ulonglong *)(lVar26 + -0x3c0) =
       (CONCAT44(uVar14,uVar9) ^ 0xf7cf4491419250e) >> ((byte)*(longlong *)(lVar26 + -0x3b8) & 0x3f)
  ;
  *(undefined8 *)(lVar26 + -0x108) =
       *(undefined8 *)(lVar26 - ((ulonglong)DAT_1826793d0 ^ 0xdb5c71f1));
  uVar23 = (ulonglong)DAT_182679300;
  *(longlong *)(lVar26 + -0x3c0) =
       *(longlong *)(lVar26 + -0x3b8) <<
       ((byte)*(undefined8 *)(lVar26 - ((ulonglong)uVar37 ^ 0x4aec544c)) & 0x3f);
  uVar9 = DAT_18267925c;
  lVar1 = *(longlong *)(lVar26 - (uVar23 ^ 0x329e09f0));
  *(longlong *)(lVar26 + -800) = lVar1;
  *(ulonglong *)(lVar26 - (uVar31 ^ 0x16d24578)) =
       lVar1 + (CONCAT44(uVar18,uVar9) ^ 0xde14e052c041da96) * 8;
  uVar3 = **(undefined8 **)(lVar26 + -800);
  *(undefined8 *)(lVar26 + -0x3b8) = uVar3;
  uVar32 = DAT_182679464 ^ (uint)uVar3;
  *(longlong *)(lVar26 + -0x2e8) =
       0x6bb4eed7afc083b9 << ((byte)*(undefined8 *)(lVar26 - (uVar34 ^ 0x5b2e7bda)) & 0x3f);
  *(ulonglong *)(lVar26 - ((ulonglong)DAT_182679318 ^ 0x1dff74d7)) =
       *(longlong *)(lVar26 - ((ulonglong)uVar27 ^ 0xb1fe7eaa)) +
       (CONCAT44(DAT_1826792cc,uVar12) ^ 0xd7665ff516f2446d) * 8;
  lVar1 = DAT_182679520;
  **(ulonglong **)(lVar26 + -0x108) = *(ulonglong *)(lVar26 + -0x3b8) ^ uVar35;
  puVar5 = *(ulonglong **)(lVar26 + -800);
  uVar23 = (ulonglong)DAT_18267950c;
  *(undefined8 *)(lVar1 + -800) = *(undefined8 *)(lVar1 + -0x170);
  *(ulonglong **)(lVar1 + -0x1e8) = puVar5;
  *(ulonglong **)(lVar1 + -0x170) = puVar5;
  puVar6 = *(ulonglong **)(lVar1 - (uVar23 ^ 0x1cd355d6));
  *(ulonglong **)(lVar1 + -0x1e8) = puVar6;
  uVar9 = DAT_182679284;
  *(ulonglong **)(lVar1 + -800) = puVar6 + (CONCAT44(uVar14,uVar30) ^ 0x46881722bef37699);
  lVar1 = DAT_182679520;
  uVar20 = DAT_1826792a4;
  uVar31 = (ulonglong)DAT_1826792a4;
  *(ulonglong *)(DAT_182679520 + -0x1d8) =
       (CONCAT44(DAT_18267948c,uVar37) ^ 0x8acbf52e7210e087) << (((byte)uVar27 ^ 0x93) & 0x3f);
  uVar23 = *puVar6;
  *(ulonglong *)(lVar1 + -0x140) = uVar23;
  lVar26 = DAT_182679520;
  uVar33 = DAT_182679388 ^ *(uint *)(lVar1 - (uVar31 ^ 0x16f2452c));
  *(ulonglong *)(DAT_182679520 + -0x220) =
       CONCAT44(uVar9,DAT_1826794f8) ^ 0x20082446603aa426 | 0x9e2651a10fc548d1;
  *(ulonglong **)(lVar26 + -0x1e8) = puVar5 + (CONCAT44(uVar8,DAT_18267950c) ^ 0x8bf7db7f1cd356f7);
  *puVar5 = uVar23 ^ uVar35;
  *(undefined8 *)(lVar26 - (uVar36 ^ 0x1dee74df)) = *(undefined8 *)(lVar26 + -0x1e8);
  lVar1 = DAT_182679520;
  uVar25 = (uVar30 & 0xff0000 | uVar30 >> 0x10) >> 8 | (uVar30 << 0x10 | uVar30 & 0xff00) << 8;
  DAT_1826794f8 = uVar25;
  *(undefined8 *)(DAT_182679520 + -0x1e8) =
       *(undefined8 *)(DAT_182679520 - ((ulonglong)uVar25 ^ 0x9876f09e));
  *(undefined8 *)(lVar1 - (uVar38 ^ 0xbef375b8)) = *(undefined8 *)(lVar1 + -0x3c8);
  *(undefined8 **)(lVar1 + -0x3c8) = *(undefined8 **)(lVar1 + -0x1e8);
  lVar26 = DAT_182679520;
  *(ulonglong *)(lVar1 + -0x220) =
       (CONCAT44(uVar25,uVar25) ^ 0x36dd25c5838073f9) >>
       ((byte)*(undefined8 *)(lVar1 + -0x140) & 0x3f);
  uVar28 = DAT_182679300;
  *(undefined8 *)(lVar1 - (uVar38 ^ 0xbef374b8)) = **(undefined8 **)(lVar1 + -0x1e8);
  DAT_182679498 = DAT_182679498 ^ *(uint *)(lVar1 + -0x220);
  **(ulonglong **)(lVar1 + -800) = uVar35 ^ *(ulonglong *)(lVar1 + -0x220);
  lVar19 = DAT_182679520;
  uVar16 = DAT_18267948c;
  uVar27 = DAT_1826792cc;
  uVar21 = uVar33 & 0xff;
  DAT_182679388 = ((uVar33 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar35 = CONCAT44(DAT_182679388,DAT_182679388);
  uVar31 = (ulonglong)DAT_1826792cc;
  *(ulonglong *)(DAT_182679520 - (uVar31 ^ 0xd7665e1d)) =
       *(longlong *)(lVar1 + -0x348) +
       ((CONCAT44(uVar28,DAT_18267948c) ^ 0x329e0880dff7fb7f) +
       (CONCAT44(uVar14,uVar25) ^ 0x468817229876f3be) * 0x14) * 8 ^ uVar35;
  uVar23 = (ulonglong)DAT_1826793d0;
  *(ulonglong *)(lVar19 + -0x3c8) = uVar35 ^ *(ulonglong *)(lVar19 + -0x1e8);
  *(undefined8 *)(lVar19 - (uVar23 ^ 0xdb5c73c1)) = *(undefined8 *)(DAT_182679520 + 0x28);
  *(ulonglong *)(lVar26 + -0x358) =
       (CONCAT44(uVar9,uVar20) ^ 0x32aa37b34d549b2b) + *(longlong *)(lVar26 + -0x2e8);
  *(undefined8 *)(lVar26 - (uVar23 ^ 0xdb5c7009)) = *(undefined8 *)(lVar26 + -0x3c8);
  puVar5 = *(ulonglong **)(lVar26 + -0x110);
  *(ulonglong **)(lVar26 + -0x3c8) = puVar5;
  *(ulonglong **)(lVar26 + -0x110) = puVar5 + (CONCAT44(uVar25,uVar22) ^ 0x9876f3beb8737691);
  uVar23 = *puVar5;
  DAT_182679528 = DAT_182679528 ^ (uint)uVar23;
  *(ulonglong *)(lVar26 + -0x358) = uVar23;
  uVar9 = DAT_18267925c;
  *(ulonglong *)(DAT_182679520 + -0x210) =
       *(longlong *)(lVar26 - (uVar38 ^ 0xbef37440)) +
       (CONCAT44(uVar37,DAT_18267925c) ^ 0x4aec5594c041da96) * 8;
  lVar1 = DAT_182679520;
  uVar22 = uVar32 & 0xff;
  DAT_182679464 = ((uVar32 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar36 = CONCAT44(DAT_182679464,DAT_182679464);
  **(ulonglong **)(DAT_182679520 + -0x2d8) = uVar36 ^ uVar23;
  DAT_1826793e0 = DAT_182679484 | DAT_182679344;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar9 ^ 0xc041da17)) = *(undefined8 *)(lVar1 + -0x210);
  *(undefined8 *)(lVar1 + -0x210) = *(undefined8 *)(lVar1 + -0x110);
  uVar22 = DAT_1826794bc;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar25 ^ 0x9876f2ae)) = *(undefined8 *)(lVar1 + -0x80);
  puVar5 = *(ulonglong **)(lVar1 + -0x210);
  *(ulonglong **)(lVar1 + -0x80) = puVar5;
  *(longlong *)(lVar1 + -0x2e8) =
       *(longlong *)(lVar1 + -0x3c0) << ((byte)*(ulonglong *)(lVar1 + -0x358) & 0x3f);
  *(ulonglong **)(lVar1 + -0x210) = puVar5 + 1;
  uVar23 = *puVar5;
  DAT_1826793fc = DAT_1826793fc ^ (uint)uVar23;
  uVar35 = CONCAT44(uVar22,DAT_1826794e4);
  *(ulonglong *)(lVar1 + -0x3c0) = uVar23;
  *(ulonglong *)(lVar1 + -0x80) = *(longlong *)(lVar1 + -0x110) + (uVar35 ^ 0x5b2e7a02de14e053) * 8;
  *(ulonglong *)(lVar1 + -0x2e8) =
       CONCAT44(uVar8,uVar13) ^ 0x65f146794eeb88d9 | *(ulonglong *)(lVar1 + -0x358);
  uVar8 = DAT_18267950c;
  **(ulonglong **)(lVar1 - ((ulonglong)DAT_18267950c ^ 0x1cd357e6)) = uVar36 ^ uVar23;
  puVar4 = *(undefined8 **)(lVar1 + -0x210);
  *(undefined8 *)(lVar1 + -0x210) = *(undefined8 *)(lVar1 + -0x80);
  *(undefined8 **)(lVar1 + -0x3c8) = puVar4;
  *(ulonglong *)(lVar1 + -0x1d8) =
       CONCAT44(uVar30,uVar27) ^ 0x1fc04e2d3148c070 | CONCAT44(uVar14,uVar16) ^ 0xc4cb255e6c5d8f8c;
  *(undefined8 **)(lVar1 + -0x80) = puVar4 + (CONCAT44(uVar28,DAT_182679318) ^ 0x329e08801dff77f6);
  *(ulonglong *)(lVar1 + -0x2e8) = CONCAT44(uVar22,uVar13) ^ 0x208202000320892 | 0xf1f19517d50ce061;
  DAT_182679514 = DAT_182679514 ^ (uint)*puVar4;
  *(undefined8 *)(lVar1 + -0x2e8) = *puVar4;
  *(ulonglong *)(lVar1 + -0x198) = CONCAT44(uVar37,uVar17) ^ 0xccf249cd43d3f1b7;
  plVar29 = (longlong *)(lVar1 - ((ulonglong)uVar27 ^ 0xd7665de5));
  *(longlong *)(lVar1 - (uVar31 ^ 0xd7665c3d)) = *plVar29 + 8;
  uVar35 = (ulonglong)DAT_18267936c;
  *(ulonglong *)*plVar29 = uVar36 ^ *(ulonglong *)(lVar1 + -0x2e8);
  *(undefined8 *)(lVar1 + -0x3d0) = *(undefined8 *)(lVar1 + -0x3c8);
  uVar23 = (ulonglong)DAT_182679284;
  *(ulonglong *)(lVar1 + -0x198) = CONCAT44(uVar12,uVar30) ^ 0xe57907b17aa3a944;
  *(undefined8 *)(lVar1 - (uVar35 ^ 0x468814ea)) = *(undefined8 *)(lVar1 - (uVar23 ^ 0xf2dfda17));
  *(undefined8 *)(lVar1 - ((ulonglong)uVar8 ^ 0x1cd35676)) = *(undefined8 *)(lVar1 + -0x3d0);
  *(longlong *)(lVar1 + -0x3d0) = *(longlong *)(lVar1 + -0x3c8);
  *(ulonglong *)(lVar1 + -0x380) =
       (CONCAT44(uVar15,uVar9) ^ 0x445494bb23200f61) + 0x27aaa58b58f510ba;
  uVar9 = DAT_182679248;
  *(ulonglong *)(lVar1 + -0x2d0) = CONCAT44(uVar18,uVar8) ^ 0x3dc273e38e28cc1;
  *(ulonglong *)(lVar1 + -0x3c8) =
       *(longlong *)(lVar1 + -0x3c8) + (CONCAT44(uVar10,uVar9) ^ 0xc041da978bf7db7e) * 8;
  *(uint *)(&DAT_182678f70 + (longlong)(int)(uVar2 ^ uVar11) * 4) = uVar24 ^ uVar7;
  return;
}



############ FUN_ 181132120 size=81 ############

/* WARNING: This is an inlined function */
/* Library Function - Single Match
    _alloca_probe
   
   Libraries: Visual Studio 2015, Visual Studio 2017, Visual Studio 2019 */

void _alloca_probe(void)

{
  undefined1 *in_RAX;
  undefined1 *puVar1;
  undefined1 *puVar2;
  undefined1 local_res8 [32];
  
  puVar1 = local_res8 + -(longlong)in_RAX;
  if (local_res8 < in_RAX) {
    puVar1 = (undefined1 *)0x0;
  }
  if (puVar1 < StackLimit) {
    puVar2 = StackLimit;
    do {
      puVar2 = puVar2 + -0x1000;
      *puVar2 = 0;
    } while ((undefined1 *)((ulonglong)puVar1 & 0xfffffffffffff000) != puVar2);
  }
  return;
}



############ FUN_ 181913830 size=2871 ############

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

void FUN_181913830(void)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  byte *pbVar4;
  byte *pbVar5;
  undefined1 *puVar6;
  undefined8 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  longlong *plVar24;
  ulonglong uVar25;
  longlong lVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  undefined8 *puVar34;
  ulonglong uVar35;
  longlong lVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  
  uVar12 = DAT_18267a988;
  uVar18 = DAT_18267a974;
  uVar13 = DAT_18267a7fc;
  uVar11 = DAT_18267a714;
  uVar8 = DAT_18267a6d8;
  uVar31 = (ulonglong)DAT_18267a714;
  uVar33 = DAT_18267a974 | DAT_18267a99c;
  uVar35 = (ulonglong)DAT_18267a7fc;
  uVar30 = DAT_18267a714 ^ DAT_18267a7fc;
  DAT_18267a81c = DAT_18267a730;
  if ((DAT_18267a6e4 & 1) == 0) {
    DAT_18267a81c = DAT_18267a6e4;
  }
  lVar26 = (longlong)DAT_18267a514;
  *(longlong *)(DAT_18267a8f8 + -8) = DAT_18267a9b0;
  uVar2 = *(uint *)(&DAT_18262e948 + lVar26);
  uVar3 = *(uint *)(&DAT_18262e940 + (uVar31 ^ 0xd26a8fd0) + lVar26);
  DAT_18267a898 = DAT_18267a9bc + _DAT_18267a964;
  DAT_18267a7ec = uVar33;
  DAT_18267a860 = uVar30;
  DAT_18267a9b0 = DAT_18267a8f8 + -8;
  *(longlong *)((DAT_18267a8f8 + -8) - ((ulonglong)uVar18 ^ 0xb318f66)) = DAT_18267a8f8 + -0xcc8;
  *(longlong *)(DAT_18267a8f8 + -0x7c0) = DAT_18267a8f8 + -0xce8;
  uVar9 = DAT_18267a99c;
  *(longlong *)(DAT_18267a8f8 + -0x3b8) = DAT_18267a8f8 + -0xd08;
  *(longlong *)(DAT_18267a8f8 + -0xc98) = DAT_18267a8f8 + -0xd28;
  *(longlong *)(DAT_18267a8f8 + -0x4c8) = DAT_18267a8f8 + -0xdc8;
  *(longlong *)(DAT_18267a8f8 + -0x338) = DAT_18267a8f8 + -0xde8;
  *(ulonglong *)(DAT_18267a8f8 + -0x30) = 0x77ebcca92fa075bf >> (((byte)uVar33 ^ 0x65) & 0x3f);
  *(int *)(DAT_18267a8f8 + -0x704) = 0x3fb067cc << (((byte)uVar9 ^ 0x66) & 0x1f);
  *(longlong *)(DAT_18267a8f8 + -0x970) = DAT_18267a8f8 + -0xdf8;
  *(longlong *)(DAT_18267a8f8 + -0x1e8) = DAT_18267a8f8 + -0xe18;
  lVar26 = DAT_18267a9b0;
  uVar9 = DAT_18267a6ec;
  uVar37 = (ulonglong)DAT_18267a6ec;
  uVar28 = CONCAT44(DAT_18267a6ec,uVar33);
  lVar36 = DAT_18267a8f8 + -0xee0;
  uVar23 = CONCAT44(uVar8,DAT_18267a924);
  DAT_18267a8f8 = lVar36;
  *(ulonglong *)(DAT_18267a9b0 + -8) =
       (uVar28 ^ 0x25b2cf38a396761e) << (((byte)DAT_18267a924 ^ 0x8d) & 0x3f);
  *(longlong *)(lVar26 + -0x740) = lVar36;
  lVar26 = DAT_18267a9b0;
  uVar22 = DAT_18267a7a8;
  plVar24 = (longlong *)(DAT_18267a9b0 - ((ulonglong)uVar33 ^ 0x1f759c37));
  lVar36 = (CONCAT44(DAT_18267a7a8,uVar11) ^ 0x84687d90d26a8fc0) +
           *(longlong *)(DAT_18267a9b0 + -0x620);
  *(longlong *)(DAT_18267a9b0 + -0x5f8) = lVar36;
  *plVar24 = lVar36;
  puVar34 = (undefined8 *)(lVar26 - ((ulonglong)DAT_18267a8ec ^ 0x84e8090a));
  *puVar34 = *(undefined8 *)(lVar26 + 0x18);
  uVar25 = (ulonglong)DAT_18267a734;
  *(undefined1 *)(lVar26 + -0xc31) = 0;
  *(undefined8 *)(lVar26 - (uVar25 ^ 0xd5fe8c8a)) = *(undefined8 *)(lVar26 + -0x748);
  pbVar4 = *(byte **)(lVar26 + -0x290);
  pbVar5 = *(byte **)(lVar26 + -0x310);
  *(byte **)(lVar26 + -0x748) = pbVar4;
  *(byte **)(lVar26 + -0x290) = pbVar4 + 1;
  bVar1 = *pbVar4;
  uVar25 = (ulonglong)DAT_18267a790;
  *(byte *)(lVar26 + -0xc31) = bVar1;
  uVar21 = DAT_18267a9d8 ^ (int)*(char *)(lVar26 - (uVar25 ^ 0x4e5c3d99));
  uVar27 = CONCAT44(DAT_18267a838,uVar22);
  *(byte **)(lVar26 + -0x748) = pbVar5 + 1;
  lVar36 = DAT_18267a9b0;
  uVar10 = DAT_18267a70c;
  uVar25 = (ulonglong)DAT_18267a70c;
  *(ulonglong *)(DAT_18267a9b0 + -8) = uVar27 ^ CONCAT44(uVar22,DAT_18267a70c) ^ 0xd55efb0ab14dc70e;
  uVar22 = uVar21 & 0xff;
  DAT_18267a9d8 = ((uVar21 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  bVar20 = (byte)uVar21;
  *pbVar5 = bVar20 ^ bVar1;
  uVar17 = DAT_18267a94c;
  uVar16 = DAT_18267a924;
  uVar27 = (ulonglong)DAT_18267a94c;
  *(undefined8 *)(lVar36 - ((ulonglong)uVar30 ^ 0xab5422f5)) =
       *(undefined8 *)(lVar36 - ((ulonglong)DAT_18267a910 ^ 0x4e42b2f8));
  *(undefined8 *)(lVar36 - ((ulonglong)uVar9 ^ 0x6d06eae3)) =
       *(undefined8 *)(lVar36 - (uVar27 ^ 0x1717ae7c));
  *(byte *)(lVar36 + -0xc11) = (byte)uVar8 ^ 0xf;
  uVar22 = DAT_18267a75c;
  uVar32 = (ulonglong)DAT_18267a75c;
  *puVar34 = *(undefined8 *)(lVar36 + -0x910);
  lVar26 = *(longlong *)(lVar36 - (uVar35 ^ 0x793ea36d));
  DAT_18267a7b4 = DAT_18267a8b0 * DAT_18267a7a0;
  *(longlong *)(lVar36 + -0x910) = lVar26;
  *(ulonglong *)(lVar36 + -0x748) = (CONCAT44(uVar22,DAT_18267a91c) ^ 0xa1eef78e6e0d1ade) + lVar26;
  *(undefined1 *)(lVar36 - ((ulonglong)uVar10 ^ 0x3525b68f)) =
       **(undefined1 **)(lVar36 - (uVar31 ^ 0xd26a86d0));
  DAT_18267a914 = DAT_18267a914 ^ (int)(char)*(byte *)(lVar36 + -0xc11);
  *(byte **)(lVar36 + -0x910) =
       *(byte **)(lVar36 + -0x290) + (CONCAT44(uVar22,uVar16) ^ 0xa1eef78e4607a69e);
  **(byte **)(lVar36 + -0x290) = *(byte *)(lVar36 + -0xc11) ^ bVar20;
  *(undefined8 *)(lVar36 + -0xa48) = *(undefined8 *)(lVar36 + -0x910);
  uVar19 = DAT_18267a99c;
  uVar35 = (ulonglong)DAT_18267a99c;
  *(undefined8 *)(lVar36 - ((ulonglong)DAT_18267a7a8 ^ 0x84687480)) =
       *(undefined8 *)(lVar36 + -0x748);
  lVar26 = DAT_18267a9b0;
  *(ulonglong *)(lVar36 + -0x860) =
       CONCAT44(uVar18,uVar18) ^ 0xfef4f7fc371bd2df | 0xb4e0f15c1013029f;
  *(undefined8 *)(lVar36 + -0x748) = *(undefined8 *)(lVar36 + -0xa48);
  *(undefined8 *)(lVar36 - ((ulonglong)uVar33 ^ 0x1f759137)) = *(undefined8 *)(lVar36 + -0x910);
  uVar14 = DAT_18267a910;
  uVar21 = DAT_18267a838;
  puVar6 = *(undefined1 **)(lVar36 + -0xa48);
  uVar27 = (ulonglong)DAT_18267a910;
  uVar39 = (ulonglong)DAT_18267a838;
  *(undefined1 **)(lVar26 + -0x910) = puVar6 + (CONCAT44(uVar12,DAT_18267a910) ^ 0xabed066d4e42b5b1)
  ;
  *(undefined1 *)(lVar26 + -0x221) = *puVar6;
  _DAT_18267a994 = _DAT_18267a994 ^ (int)*(char *)(lVar26 - (uVar37 ^ 0x6d06ef8a));
  *(byte **)(lVar26 + -0x690) = *(byte **)(lVar26 + -0x748) + 1;
  **(byte **)(lVar26 + -0x748) = *(byte *)(lVar26 - (uVar35 ^ 0x1e45985c)) ^ bVar20;
  lVar36 = DAT_18267a9b0;
  *(undefined8 *)(DAT_18267a9b0 - (uVar39 ^ 0x51368a1a)) = *(undefined8 *)(DAT_18267a9b0 + -0x690);
  lVar26 = *(longlong *)(lVar36 + -0x910);
  *(undefined8 *)(lVar36 + -0x910) = *(undefined8 *)(lVar36 + -0xc80);
  *(longlong *)(lVar36 + -0xc80) = lVar26;
  *(longlong *)(lVar36 + -0x690) = lVar26;
  *(longlong *)(DAT_18267a9b0 - ((ulonglong)DAT_18267a734 ^ 0xd5fe890a)) = lVar26 + 1;
  DAT_18267aa04 = DAT_18267aa04 ^ (int)**(char **)(DAT_18267a9b0 + -0xc80);
  *(char *)(DAT_18267a9b0 + -0x33a) = **(char **)(DAT_18267a9b0 + -0xc80);
  uVar15 = DAT_18267a91c;
  uVar29 = (ulonglong)DAT_18267a91c;
  *(ulonglong *)(DAT_18267a9b0 - (uVar31 ^ 0xd26a8340)) =
       (CONCAT44(uVar10,DAT_18267a790) ^ 0x3525ba9e4e5c31a9) + *(longlong *)(DAT_18267a9b0 + -0x910)
  ;
  lVar36 = DAT_18267a9b0;
  uVar12 = DAT_18267a8ec;
  uVar38 = (ulonglong)DAT_18267a8ec;
  **(byte **)(DAT_18267a9b0 - ((ulonglong)uVar8 ^ 0xc19f201f)) =
       *(byte *)(DAT_18267a9b0 - (uVar37 ^ 0x6d06ee91)) ^ bVar20;
  uVar35 = (ulonglong)DAT_18267a988;
  *(undefined8 *)(lVar36 + -0x338) = *(undefined8 *)(lVar36 + -0xc80);
  *(uint *)(lVar36 + -0x6fc) = uVar22 ^ uVar10 ^ 0x94cb4d10;
  lVar26 = *(longlong *)(lVar36 + -0x690);
  *(longlong *)(lVar36 + -0xc80) = lVar26;
  *(undefined8 *)(lVar36 + -0x690) = *(undefined8 *)(lVar36 - (uVar35 ^ 0xabed0555));
  *(longlong *)(lVar36 + -0x338) = lVar26;
  *(ulonglong *)(lVar36 + -0xb18) =
       CONCAT44(uVar13,uVar13) ^ CONCAT44(uVar12,uVar11) ^ 0xfdd6afbfab542be5;
  *(longlong *)(lVar36 - ((ulonglong)uVar30 ^ 0xab542765)) = lVar26 + 1;
  *(undefined1 *)(lVar36 + -0x16d) = **(undefined1 **)(lVar36 + -0x338);
  DAT_18267a7d8 = DAT_18267a7d8 ^ (int)*(char *)(lVar36 - (uVar29 ^ 0x6e0d1bb2));
  *(ulonglong *)(lVar36 + -0x338) =
       (CONCAT44(uVar22,uVar19) ^ 0xa1eef78e1e459a7c) +
       *(longlong *)(lVar36 - ((ulonglong)uVar14 ^ 0x4e42b320));
  uVar16 = DAT_18267a924;
  uVar12 = DAT_18267a790;
  uVar8 = DAT_18267a734;
  uVar31 = (ulonglong)DAT_18267a7a8;
  uVar35 = CONCAT44(uVar18,DAT_18267a790);
  **(byte **)(lVar36 + -0x690) = *(byte *)(lVar36 - (uVar27 ^ 0x4e42b4dd)) ^ bVar20;
  DAT_18267a9cc = DAT_18267a7cc | DAT_18267a88c;
  *(undefined8 *)(lVar36 + -0xbf0) = *(undefined8 *)(lVar36 + -0x338);
  *(ulonglong *)(lVar36 + -0xb18) = CONCAT44(uVar8,uVar17) ^ uVar35 ^ 0xdecf06dc594b9d44;
  *(undefined8 *)(lVar36 - ((ulonglong)uVar33 ^ 0x1f759847)) = *(undefined8 *)(lVar36 + -0xc80);
  *(undefined8 *)(lVar36 - (uVar31 ^ 0x84687110)) = *(undefined8 *)(lVar36 + -0xbf0);
  *(longlong *)(lVar36 + -0xbf0) = *(longlong *)(lVar36 + -0x338);
  *(ulonglong *)(DAT_18267a9b0 - ((ulonglong)uVar8 ^ 0xd5fe8ca2)) =
       (CONCAT44(uVar30,uVar16) ^ 0xab542be54607a69e) + *(longlong *)(lVar36 + -0x338);
  lVar26 = DAT_18267a9b0;
  _DAT_18267aa10 = _DAT_18267aa10 ^ (int)**(char **)(DAT_18267a9b0 + -0xbf0);
  *(char *)(DAT_18267a9b0 + -0x1ad) = **(char **)(DAT_18267a9b0 + -0xbf0);
  *(ulonglong *)(lVar26 + -0xb18) = (uVar28 ^ 0xe4364be48e3b4410) + *(longlong *)(lVar26 + -0x28);
  plVar24 = (longlong *)(lVar26 - (uVar38 ^ 0x84e80a0a));
  *plVar24 = (CONCAT44(uVar14,uVar21) ^ 0x4e42b5b05136869b) + *(longlong *)(lVar26 + -0xc80);
  **(byte **)(lVar26 + -0xc80) = bVar20 ^ *(byte *)(lVar26 + -0x1ad);
  *(undefined8 *)(lVar26 + -0x750) = *(undefined8 *)(lVar26 + -400);
  *(undefined8 *)(lVar26 - (uVar32 ^ 0xa1eef61e)) = *(undefined8 *)(lVar26 + -0x338);
  lVar26 = DAT_18267a9b0;
  puVar34 = (undefined8 *)(DAT_18267a9b0 - (uVar39 ^ 0x513685a2));
  *(ulonglong *)(DAT_18267a9b0 - (uVar25 ^ 0x3525b186)) =
       (uVar23 ^ 0x45f9d9d12bbed3a7) >> (((byte)uVar17 ^ 0xe6) & 0x3f);
  *puVar34 = *(undefined8 *)(lVar26 + -0x750);
  pbVar4 = *(byte **)(lVar26 + -400);
  *(byte **)(lVar26 + -0x750) = pbVar4;
  *(ulonglong *)(lVar26 + -400) =
       (CONCAT44(uVar9,uVar8) ^ 0x6d06edabd5fe8f9b) +
       *(longlong *)(lVar26 - ((ulonglong)uVar30 ^ 0xab542cb5));
  bVar1 = *pbVar4;
  *(byte *)(lVar26 + -0x791) = bVar1;
  DAT_18267aa00 = DAT_18267aa00 ^ (int)*(char *)(lVar26 - (uVar31 ^ 0x84687a01));
  *(ulonglong *)(lVar26 + -0xb18) =
       *(ulonglong *)(lVar26 + -0x28) >> ((byte)*(undefined8 *)(lVar26 + -0x860) & 0x3f);
  *(byte **)(lVar26 + -0x750) = *(byte **)(lVar26 + -0x338) + 1;
  **(byte **)(lVar26 + -0x338) = bVar20 ^ bVar1;
  *(undefined8 *)(lVar26 + -0xf8) = *(undefined8 *)(lVar26 + -0x750);
  *(undefined8 *)(lVar26 - (uVar32 ^ 0xa1eef0de)) = *(undefined8 *)(lVar26 + -400);
  *(undefined8 *)(lVar26 + -400) = *(undefined8 *)(lVar26 + -0xf8);
  pbVar4 = *(byte **)(lVar26 + -0x750);
  *(byte **)(lVar26 + -0xf8) = pbVar4;
  *(byte **)(lVar26 + -0x750) = pbVar4 + (CONCAT44(uVar12,uVar11) ^ 0x4e5c31a8d26a8fc1);
  bVar1 = *pbVar4;
  DAT_18267a700 = DAT_18267a700 ^ (int)(char)bVar1;
  *(byte *)(lVar26 + -0x431) = bVar1;
  *(ulonglong *)(lVar26 + -0xb18) =
       CONCAT44(uVar11,uVar15) ^ CONCAT44(uVar30,uVar13) ^ 0x793ea4251733befa;
  *(ulonglong *)(lVar26 + -0xf8) = (CONCAT44(DAT_18267a924,uVar11) ^ 0x4607a69fd26a8fc1) + *plVar24;
  uVar8 = DAT_18267a94c;
  **(byte **)(lVar26 - (uVar25 ^ 0x3525bb0e)) = bVar20 ^ bVar1;
  uVar7 = *(undefined8 *)(lVar26 - (uVar32 ^ 0xa1eef776));
  *(byte *)(lVar26 + -0x58c) = (byte)uVar8 ^ 0xec;
  *(undefined8 *)(lVar26 + -0xbd8) = uVar7;
  *(uint *)(&DAT_18267a1c0 + (longlong)(int)(uVar3 ^ uVar30) * 4) = uVar2 ^ uVar13;
  return;
}



############ FUN_ 1805753e0 size=862 ############

void FUN_1805753e0(undefined8 *param_1)

{
  undefined8 *puVar1;
  void *pvVar2;
  void *pvVar3;
  longlong lVar4;
  undefined8 *puVar5;
  
  *param_1 = pace::eden::thrift::pub::AuthChain::vftable;
  puVar5 = (undefined8 *)param_1[0x58];
  if (puVar5 != (undefined8 *)0x0) {
    puVar1 = (undefined8 *)param_1[0x59];
    for (; puVar5 != puVar1; puVar5 = puVar5 + 0x3d) {
      (**(code **)*puVar5)(puVar5,0);
    }
    pvVar2 = (void *)param_1[0x58];
    lVar4 = SUB168(SEXT816(-0x79b47582192e29f7) * SEXT816(param_1[0x5a] - (longlong)pvVar2),8) +
            (param_1[0x5a] - (longlong)pvVar2);
    pvVar3 = pvVar2;
    if ((0xfff < (ulonglong)(((lVar4 >> 8) - (lVar4 >> 0x3f)) * 0x1e8)) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  puVar5 = (undefined8 *)param_1[0x55];
  if (puVar5 != (undefined8 *)0x0) {
    puVar1 = (undefined8 *)param_1[0x56];
    for (; puVar5 != puVar1; puVar5 = puVar5 + 0xd) {
      (**(code **)*puVar5)(puVar5,0);
    }
    pvVar2 = (void *)param_1[0x55];
    pvVar3 = pvVar2;
    if ((0xfff < (ulonglong)(((param_1[0x57] - (longlong)pvVar2) / 0x68) * 0x68)) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  FUN_180575070(param_1 + 0x43);
  pvVar2 = (void *)param_1[0x40];
  if (pvVar2 != (void *)0x0) {
    pvVar3 = pvVar2;
    if ((0xfff < (ulonglong)(param_1[0x42] - (longlong)pvVar2)) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  FUN_180574c80(param_1 + 0x14);
  if (0xf < (ulonglong)param_1[0x12]) {
    pvVar2 = (void *)param_1[0xf];
    pvVar3 = pvVar2;
    if ((0xfff < param_1[0x12] + 1) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  param_1[0x11] = 0;
  param_1[0x12] = 0xf;
  *(undefined1 *)(param_1 + 0xf) = 0;
  if (0xf < (ulonglong)param_1[0xc]) {
    pvVar2 = (void *)param_1[9];
    pvVar3 = pvVar2;
    if ((0xfff < param_1[0xc] + 1) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  param_1[0xb] = 0;
  param_1[0xc] = 0xf;
  *(undefined1 *)(param_1 + 9) = 0;
  if ((ulonglong)param_1[8] < 0x10) {
    param_1[7] = 0;
    param_1[8] = 0xf;
    *(undefined1 *)(param_1 + 5) = 0;
    puVar5 = (undefined8 *)param_1[1];
    if (puVar5 == (undefined8 *)0x0) {
      return;
    }
    puVar1 = (undefined8 *)param_1[2];
    for (; puVar5 != puVar1; puVar5 = puVar5 + 0x87) {
      (**(code **)*puVar5)(puVar5,0);
    }
    pvVar2 = (void *)param_1[1];
    pvVar3 = pvVar2;
    if ((0xfff < (ulonglong)(((param_1[3] - (longlong)pvVar2) / 0x438) * 0x438)) &&
       (pvVar3 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  pvVar2 = (void *)param_1[5];
  pvVar3 = pvVar2;
  if ((0xfff < param_1[8] + 1) &&
     (pvVar3 = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar3);
}



############ FUN_ 181797a00 size=3970 ############

void FUN_181797a00(void)

{
  longlong lVar1;
  longlong *plVar2;
  longlong *plVar3;
  uint uVar4;
  ulonglong *puVar5;
  undefined8 *puVar6;
  undefined8 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  longlong lVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  byte bVar24;
  longlong lVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  longlong *plVar36;
  uint uVar37;
  uint uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  
  uVar11 = DAT_182679a44;
  lVar15 = DAT_182679a18;
  uVar14 = DAT_182679a0c;
  uVar13 = DAT_182679980;
  uVar12 = DAT_182679958;
  uVar20 = DAT_18267980c;
  uVar35 = (ulonglong)DAT_182679958;
  lVar1 = DAT_182679a18 + -8;
  DAT_182679858 = DAT_182679a64 * DAT_182679944;
  lVar25 = (longlong)DAT_182679628;
  uVar37 = DAT_182679980 - DAT_182679958;
  uVar23 = (ulonglong)DAT_18267980c;
  DAT_182679b08 = DAT_1826798f0 & DAT_182679a68;
  DAT_182679b20 = ~DAT_182679810;
  uVar39 = DAT_182679a0c << 0x10 | DAT_182679a0c >> 0x10;
  DAT_18267982c = uVar39 ^ 0x863e57a1;
  uVar40 = (ulonglong)DAT_18267982c;
  DAT_182679a30 = uVar37;
  *(longlong *)(DAT_182679a18 + -8) = DAT_182679ad0;
  uVar4 = *(uint *)(&DAT_18262cc18 + lVar25);
  uVar17 = *(uint *)(&DAT_18262cc20 + lVar25) ^ DAT_18267982c;
  DAT_182679ad0 = lVar1;
  *(longlong *)(DAT_182679a18 + -0x108) = DAT_182679a18 + -0x2b8;
  uVar21 = (ulonglong)uVar13;
  *(longlong *)(lVar1 - ((ulonglong)uVar13 ^ 0xbfb612d6)) = DAT_182679a18 + -0x2b8;
  *(longlong *)(DAT_182679a18 + -0xa8) = DAT_182679a18 + -0x2c8;
  *(longlong *)(DAT_182679a18 + -0x30) = DAT_182679a18 + -0x2d8;
  *(longlong *)(DAT_182679a18 + -0x70) = DAT_182679a18 + -0x2f8;
  *(longlong *)(DAT_182679a18 + -0x80) = DAT_182679a18 + -0x398;
  uVar22 = (ulonglong)uVar37;
  lVar25 = *(longlong *)(DAT_182679a18 + -0x108) +
           ((CONCAT44(uVar11,DAT_182679aa8) ^ 0xdbbbb9e0759e6051) +
           (CONCAT44(uVar12,uVar37) ^ 0x4671655c7944acf2) * 4) * 8;
  plVar2 = (longlong *)(DAT_182679a18 + -0x100);
  DAT_182679a18 = DAT_182679a18 + -0x398;
  *plVar2 = lVar25;
  *(longlong *)(lVar15 + -0x10) = lVar25;
  *(undefined8 *)(lVar15 + -600) = *(undefined8 *)((uVar23 ^ 0x24c0c080) + lVar1);
  uVar10 = DAT_1826798c8;
  uVar9 = DAT_1826798b0;
  uVar8 = DAT_18267987c;
  puVar5 = *(ulonglong **)(lVar1 - (uVar35 ^ 0x46716554));
  uVar29 = (ulonglong)DAT_1826798b0;
  uVar23 = (ulonglong)DAT_18267990c;
  uVar33 = (ulonglong)DAT_18267987c;
  *(ulonglong **)(lVar15 + -0x198) = puVar5;
  uVar18 = DAT_182679834;
  puVar6 = *(undefined8 **)(lVar1 - (uVar23 ^ 0xfc93fde7));
  *(undefined8 **)(lVar15 + -0x10) = puVar6;
  *(undefined8 **)(lVar15 + -600) = puVar6 + (CONCAT44(uVar18,uVar20) ^ 0xe1896b2d24c0c089);
  uVar31 = DAT_182679994 ^ (uint)*puVar6;
  *(undefined8 *)(lVar15 + -0x250) = *puVar6;
  uVar18 = uVar31 & 0xff;
  *(ulonglong *)(lVar15 + -0x10) =
       *(longlong *)(lVar1 - (uVar29 ^ 0x154c8061)) +
       (CONCAT44(uVar10,uVar8) ^ 0xf4c5eadc0a200021) * 8;
  DAT_182679994 = ((uVar31 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar42 = CONCAT44(DAT_182679994,DAT_182679994);
  *puVar5 = *(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0xdbbbbba8)) ^ uVar42;
  uVar7 = *(undefined8 *)(lVar15 + -0x10);
  uVar23 = (ulonglong)DAT_1826797f8;
  *(undefined8 *)(lVar15 + -0x48) = uVar7;
  uVar26 = (ulonglong)DAT_182679abc;
  puVar5 = *(ulonglong **)(lVar1 - (uVar23 ^ 0x8d3a03f9));
  *(ulonglong **)(lVar15 + -0x10) = puVar5;
  *(ulonglong *)(lVar15 + -0x1f0) =
       *(ulonglong *)(lVar1 - (uVar26 ^ 0x8000268)) ^ CONCAT44(uVar9,uVar39) ^ 0x863e57a1 ^
       0x33f17286d001339a;
  lVar1 = DAT_182679ad0;
  uVar18 = DAT_182679a6c;
  *(undefined8 *)(lVar15 + -600) = uVar7;
  lVar25 = DAT_182679ad0;
  uVar31 = DAT_182679a3c;
  uVar11 = DAT_18267991c;
  uVar41 = (ulonglong)DAT_182679a3c;
  *(ulonglong *)(DAT_182679ad0 + -0x1e8) =
       (CONCAT44(DAT_18267991c,uVar18) ^ 0x5408d1f174653f85) >>
       ((byte)*(undefined8 *)(lVar1 - (uVar41 ^ 0x68f5b9c1)) & 0x3f);
  uVar23 = CONCAT44(uVar8,DAT_182679854);
  *(ulonglong **)(lVar25 + -0x40) = puVar5;
  lVar1 = DAT_182679ad0;
  uVar26 = CONCAT44(uVar9,DAT_18267991c);
  *(ulonglong **)(lVar25 + -8) = puVar5 + (uVar23 ^ 0xa200020b2e6fe66);
  uVar23 = *puVar5;
  DAT_182679808 = DAT_182679808 ^ (uint)uVar23;
  *(ulonglong *)(lVar25 + -0x1e8) = uVar23;
  *(ulonglong *)(lVar1 + -0x40) =
       *(longlong *)(lVar25 - ((ulonglong)uVar20 ^ 0x24c0c2d8)) + (uVar26 ^ 0x154c81f1a18f53ed) * 8;
  **(ulonglong **)(lVar1 - ((ulonglong)DAT_182679a94 ^ 0xf2e7fc27)) = uVar42 ^ uVar23;
  *(undefined8 *)(lVar1 + -0x1a0) = *(undefined8 *)(lVar1 + -0x40);
  *(undefined8 *)(lVar1 + -0x40) = *(undefined8 *)(lVar1 + -8);
  *(undefined8 *)(lVar1 + -8) = *(undefined8 *)(lVar1 - (uVar35 ^ 0x467164fc));
  puVar6 = *(undefined8 **)(lVar1 - ((ulonglong)uVar14 ^ 0x40210050));
  uVar23 = (ulonglong)DAT_182679a44;
  *(undefined8 **)(lVar1 + -0x1a0) = puVar6;
  *(ulonglong *)(lVar1 + -0x40) =
       *(longlong *)(lVar1 - (uVar23 ^ 0xdbbbb840)) +
       (CONCAT44(uVar12,DAT_18267990c) ^ 0x4671655cfc93ffb6) * 8;
  *(undefined8 *)(lVar1 + -0xe0) = *puVar6;
  lVar1 = DAT_182679ad0;
  uVar19 = DAT_182679abc;
  uVar16 = DAT_182679a94;
  uVar26 = (ulonglong)DAT_182679abc;
  uVar34 = DAT_182679a7c ^ *(uint *)(DAT_182679ad0 + -0xe0);
  puVar32 = (uint *)(DAT_182679ad0 - ((ulonglong)DAT_1826798c8 ^ 0xf4c5ea54));
  *(ulonglong *)puVar32 =
       (CONCAT44(uVar18,uVar39) ^ 0x65b2bdab25515b2c) +
       *(longlong *)(DAT_182679ad0 - (uVar22 ^ 0x7944ac12));
  uVar23 = CONCAT44(uVar16,DAT_182679a44);
  *(longlong *)(lVar1 + -0x1a0) = *(longlong *)(lVar1 - (uVar26 ^ 0x8000028)) + 8;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826797f8 ^ 0x8d3a0121)) =
       (uVar23 ^ 0x21b7dba8595f29e4) + (CONCAT44(uVar19,DAT_182679834) ^ 0xa080edec0d2dc1ea);
  **(ulonglong **)(lVar1 - (uVar33 ^ 0xa200028)) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar31 ^ 0x68f5bb69)) ^ uVar42;
  puVar6 = *(undefined8 **)(lVar1 + -0x40);
  *(undefined8 *)(lVar1 + -0x40) = *(undefined8 *)(lVar1 + -0x1a0);
  uVar23 = (ulonglong)DAT_182679854;
  *(undefined8 **)(lVar1 + -0x1a0) = puVar6;
  *(undefined8 **)(lVar1 + -0x170) = puVar6;
  *(undefined8 *)(lVar1 - (uVar23 ^ 0xb2e6feef)) = *puVar6;
  DAT_18267995c = DAT_18267995c ^ *puVar32;
  **(ulonglong **)(lVar1 + -0x40) = *(ulonglong *)(lVar1 + -0x88) ^ uVar42;
  *(undefined8 *)(lVar1 + -0xd0) = *(undefined8 *)(lVar1 + -0x68);
  uVar20 = DAT_1826797f8;
  puVar5 = (ulonglong *)(lVar1 + -0x48);
  uVar30 = CONCAT44(uVar19,uVar9);
  *(undefined8 *)(lVar1 - (uVar21 ^ 0xbfb6122e)) = *(undefined8 *)(lVar1 + -0x78);
  *puVar5 = **(ulonglong **)(lVar1 + -0xf8) ^ uVar42;
  uVar18 = DAT_18267991c;
  uVar38 = DAT_182679a28 ^ *(uint *)(lVar1 - (uVar21 ^ 0xbfb61206));
  *(ulonglong *)(DAT_182679ad0 - ((ulonglong)DAT_182679aa8 ^ 0x759e62d9)) =
       CONCAT44(uVar20,DAT_182679a6c) ^ *(ulonglong *)(DAT_182679ad0 + -0xe0) ^ 0x18a3797c3d7717dd;
  uVar19 = uVar34 & 0xff;
  *(ulonglong *)(DAT_182679ad0 + -0x1a0) =
       *(longlong *)(DAT_182679ad0 + -0xa0) +
       ((CONCAT44(uVar9,uVar39) ^ 0x154c81f100104021) +
       (CONCAT44(DAT_182679854,uVar18) ^ 0xb2e6fe67a18f53ec) * 2) * 8;
  lVar1 = DAT_182679ad0;
  DAT_182679a7c = ((uVar34 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar28 = CONCAT44(DAT_182679a7c,DAT_182679a7c);
  **(ulonglong **)(DAT_182679ad0 - (uVar21 ^ 0xbfb613ee)) = uVar28 ^ *puVar5;
  *(ulonglong *)(lVar1 + -0x170) =
       *(longlong *)(lVar1 + -0x100) +
       ((uVar30 ^ 0x8000020154c81f2) + (CONCAT44(uVar12,uVar31) ^ 0x4671655c68f5bb89) * 4) * 8;
  *(longlong *)(lVar1 - (uVar29 ^ 0x154c8379)) =
       *(longlong *)(lVar1 - ((ulonglong)DAT_18267980c ^ 0x24c0c2c0)) + *(longlong *)(lVar1 + -0xe0)
  ;
  *(ulonglong *)(lVar1 + -0x288) = **(ulonglong **)(lVar1 + -0x170) ^ uVar42;
  DAT_1826799f4 = DAT_1826799f4 ^ *(uint *)(lVar1 - (uVar22 ^ 0x7944ae7a));
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182679aa8 ^ 0x759e60a9)) =
       *(longlong *)(lVar1 + -0xa0) + 8 + (CONCAT44(uVar8,uVar14) ^ 0xa20002040210010) * 0x10;
  *(undefined8 *)(lVar1 - ((ulonglong)DAT_18267990c ^ 0xfc93ff17)) = 0x5abbee715c7719be;
  **(ulonglong **)(lVar1 + -0xf8) = *(ulonglong *)(lVar1 + -0x288) ^ uVar28;
  uVar18 = DAT_18267991c;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x100) +
            ((CONCAT44(uVar16,DAT_182679834) ^ 0xf2e7fe77e1896b2f) +
            (CONCAT44(uVar12,DAT_1826798c8) ^ 0x4671655cf4c5eadc) * 4) * 8);
  *(undefined8 *)(lVar1 + -0x110) = *(undefined8 *)(lVar1 + -0x288);
  *(ulonglong **)(lVar1 + -0x170) = puVar27;
  uVar23 = uVar42 ^ *puVar27;
  DAT_1826798fc = DAT_1826798fc ^ (uint)uVar23;
  *(ulonglong *)(lVar1 + -0x110) = uVar23;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x40210160)) =
       *(longlong *)(lVar1 + -0x28) +
       ((CONCAT44(uVar10,uVar18) ^ 0xf4c5eadca18f53ec) +
       (CONCAT44(uVar20,uVar8) ^ 0x8d3a01a90a200020) * 2) * 8;
  uVar16 = DAT_182679a44;
  uVar20 = uVar38 & 0xff;
  uVar26 = (ulonglong)DAT_182679a44;
  DAT_182679a28 = ((uVar38 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar33 = CONCAT44(DAT_182679a28,DAT_182679a28);
  **(ulonglong **)(lVar1 - ((ulonglong)DAT_182679854 ^ 0xb2e6ff17)) =
       *(ulonglong *)(lVar1 + -0x110) ^ uVar33;
  puVar27 = (ulonglong *)
            ((CONCAT44(uVar13,uVar39) ^ 0xbfb6124e00104021) * 0x20 +
            *(longlong *)(lVar1 + -0x100) + 8);
  *(ulonglong **)(lVar1 + -0x148) = puVar27;
  uVar42 = uVar42 ^ *puVar27;
  DAT_1826799e4 = DAT_1826799e4 ^ (uint)uVar42;
  *(ulonglong *)(lVar1 + -0x168) = uVar42;
  uVar20 = DAT_18267980c;
  uVar29 = (ulonglong)DAT_18267980c;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x28) +
            ((CONCAT44(uVar9,uVar16) ^ 0x154c81f1dbbbb9e1) +
            (CONCAT44(uVar8,uVar18) ^ 0xa200020a18f53ec) * 2) * 8);
  *(undefined8 *)(lVar1 + -0x28) = 0x3982d14ea2592855;
  uVar23 = CONCAT44(DAT_18267990c,uVar18);
  *(ulonglong **)(lVar1 + -0x148) = puVar27;
  *puVar27 = uVar42 ^ uVar33;
  uVar18 = DAT_182679854;
  plVar2 = (longlong *)(lVar1 + -0x260);
  uVar42 = (ulonglong)DAT_182679854;
  puVar27 = *(ulonglong **)(lVar1 + -0x1a0) + (uVar23 ^ 0xfc93ffb7a18f53ed);
  *plVar2 = (longlong)puVar27;
  *(ulonglong *)(lVar1 + -0x268) = **(ulonglong **)(lVar1 + -0x1a0) ^ uVar28;
  uVar8 = DAT_182679a6c;
  DAT_182679af0 = DAT_182679af0 ^ *(uint *)(lVar1 - (uVar26 ^ 0xdbbbbb88));
  uVar26 = *(ulonglong *)(lVar1 - (uVar42 ^ 0xb2e6fc0f)) ^ CONCAT44(uVar20,uVar31) ^
           0x24c0c08868f5bb89;
  DAT_1826798a4 = DAT_1826798a4 ^ (uint)uVar26;
  uVar23 = (ulonglong)DAT_182679aa8;
  uVar33 = (ulonglong)DAT_182679a6c;
  *(ulonglong *)(lVar1 + -200) = uVar26;
  uVar26 = (ulonglong)DAT_1826798c8;
  *(ulonglong *)(lVar1 + -0x20) =
       (CONCAT44(uVar10,uVar12) ^ 0x468588a6e9eee417) + *(longlong *)(lVar1 - (uVar23 ^ 0x759e6239))
  ;
  uVar20 = DAT_182679834;
  *(ulonglong *)(lVar1 - (uVar26 ^ 0xf4c5eafc)) = *puVar27 ^ uVar28;
  DAT_182679a60 = DAT_182679a60 ^ *(uint *)(lVar1 + -0x20);
  uVar26 = (ulonglong)DAT_182679abc;
  *(undefined8 *)(lVar1 - (uVar33 ^ 0x5e70ae0b)) =
       *(undefined8 *)(lVar1 - ((ulonglong)uVar20 ^ 0xe1896b0d));
  DAT_18267992c = DAT_18267992c ^ *(uint *)(lVar1 + -0x218);
  DAT_1826795a0 = DAT_1826795a0 ^ (uint)*(undefined8 *)(lVar1 + -0x218);
  *(undefined8 *)(lVar1 + -0xb0) = *(undefined8 *)(lVar1 + -0x218);
  *(undefined8 *)(lVar1 - (uVar35 ^ 0x46716744)) = *(undefined8 *)(lVar1 + -200);
  DAT_1826798c0 = DAT_1826798c0 ^ *(uint *)(lVar1 - (uVar26 ^ 0x8000238));
  *(undefined8 *)(lVar1 + -200) = *(undefined8 *)(lVar1 + -0x20);
  DAT_18267998c = DAT_18267998c ^ *(uint *)(lVar1 - ((ulonglong)uVar20 ^ 0xe1896be5));
  DAT_182679b38 = DAT_182679b38 ^ (uint)*(undefined8 *)(lVar1 + -0xb0);
  *(undefined8 *)(lVar1 + -0x20) = *(undefined8 *)(lVar1 + -0xb0);
  DAT_182679920 = DAT_182679920 ^ (uint)*(undefined8 *)(lVar1 + -0x218);
  *(undefined8 *)(lVar1 - ((ulonglong)DAT_182679a94 ^ 0xf2e7fec7)) = *(undefined8 *)(lVar1 + -0x218)
  ;
  DAT_182679898 = DAT_182679898 ^ (uint)*(undefined8 *)(lVar1 + -200);
  *(undefined8 *)(lVar1 + -0x218) = *(undefined8 *)(lVar1 + -200);
  lVar25 = DAT_182679ad0;
  plVar36 = (longlong *)(DAT_182679ad0 - (uVar29 ^ 0x24c0c290));
  puVar27 = (ulonglong *)(DAT_182679ad0 + -0x178);
  uVar23 = *(ulonglong *)(lVar1 - (uVar41 ^ 0x68f5b9e1)) ^
           *(ulonglong *)(DAT_182679ad0 - ((ulonglong)uVar18 ^ 0xb2e6fc7f));
  DAT_182679aa4 = DAT_182679aa4 ^ (uint)uVar23;
  plVar3 = (longlong *)(DAT_182679ad0 + -0x268);
  *(ulonglong *)(DAT_182679ad0 + -200) = uVar23;
  *plVar36 = *plVar3 << 0x37;
  uVar20 = DAT_18267990c;
  DAT_1826798e8 = DAT_1826798e8 ^ *(uint *)(lVar25 - (uVar22 ^ 0x7944aeea));
  *(ulonglong *)(lVar25 - (uVar40 ^ 0x862e16f8)) = *(ulonglong *)(lVar25 + -0x268) >> 9;
  DAT_18267997c = DAT_18267997c ^ *(uint *)puVar27;
  *(ulonglong *)(lVar25 + -0x268) =
       (CONCAT44(uVar11,uVar20) ^ 0x289802150def35b8) << ((byte)*puVar27 & 0x3f);
  uVar29 = (ulonglong)DAT_1826797f8;
  uVar23 = *(ulonglong *)(lVar25 - (uVar21 ^ 0xbfb61056)) |
           *(ulonglong *)(lVar25 - (uVar29 ^ 0x8d3a00d1));
  DAT_1826798cc = DAT_1826798cc ^ (uint)uVar23;
  *(ulonglong *)(lVar25 + -0x268) = uVar23;
  bVar24 = (byte)DAT_182679a44;
  *(ulonglong *)(lVar25 + -0x218) =
       CONCAT44(uVar14,uVar8) ^ 0xaad798682ec5ec06 | uVar30 ^ 0xfbe5219936406f25;
  uVar23 = *(ulonglong *)(lVar25 + -200);
  uVar33 = *(ulonglong *)(lVar25 - (uVar33 ^ 0x5e70ae7b)) ^ uVar23;
  *puVar27 = uVar33;
  DAT_1826799dc = DAT_1826799dc ^ *(uint *)(lVar25 - (uVar26 ^ 0x8000158));
  uVar23 = uVar23 << ((bVar24 ^ 0xee) & 0x3f);
  DAT_182679a24 = DAT_182679a24 ^ (uint)uVar23;
  uVar26 = (ulonglong)DAT_1826798c8;
  *(ulonglong *)(lVar25 + -0x218) = uVar23;
  *(ulonglong *)(lVar25 - (uVar26 ^ 0xf4c5e8b4)) = uVar23 ^ uVar33;
  DAT_182679948 = DAT_182679948 ^ *(uint *)(lVar25 - (uVar29 ^ 0x8d3a03c1));
  **(ulonglong **)(lVar25 - (uVar22 ^ 0x7944ad52)) = *(ulonglong *)(lVar25 + -0x268) ^ uVar28;
  *plVar36 = *(longlong *)(lVar25 + -200) << (((byte)uVar37 ^ 0xd6) & 0x3f);
  DAT_1826799b4 = DAT_1826799b4 ^ *(uint *)(lVar25 + -0x218);
  uVar23 = *(ulonglong *)(lVar25 + -200) >> ((byte)uVar12 & 0x3f);
  DAT_182679a90 = DAT_182679a90 ^ (uint)uVar23;
  *puVar27 = uVar23;
  uVar23 = uVar23 | *(ulonglong *)(lVar25 + -0x218);
  DAT_1826798d4 = DAT_1826798d4 ^ (uint)uVar23;
  *puVar5 = 0x3ae48ee9ccea0076 << (((byte)uVar12 ^ 0x68) & 0x3f);
  *(ulonglong *)(lVar25 + -200) = uVar23;
  *(ulonglong *)*plVar2 = *(ulonglong *)(lVar25 - (uVar42 ^ 0xb2e6feaf)) ^ uVar28;
  DAT_1826797fc = DAT_1826797fc ^ (uint)*(ulonglong *)(lVar25 + -0xb0);
  uVar23 = (ulonglong)DAT_182679aa8;
  *puVar5 = *(ulonglong *)(lVar25 + -0xb0);
  *puVar27 = *(ulonglong *)(lVar25 + -0x20);
  DAT_1826799e0 = DAT_1826799e0 ^ *(uint *)(lVar25 - (uVar23 ^ 0x759e6129));
  uVar7 = *(undefined8 *)(lVar25 - ((ulonglong)DAT_182679834 ^ 0xe1896b65));
  DAT_1826799a4 = DAT_1826799a4 ^ (uint)uVar7;
  *(undefined8 *)(lVar25 + -0x218) = uVar7;
  uVar26 = (ulonglong)DAT_18267991c;
  uVar23 = *(ulonglong *)(lVar25 - (uVar21 ^ 0xbfb61336));
  DAT_1826798f8 = DAT_1826798f8 ^ (uint)uVar23;
  *(ulonglong *)(lVar25 + -0x288) = uVar23;
  uVar22 = (ulonglong)DAT_18267990c;
  uVar26 = **(ulonglong **)(lVar25 - (uVar26 ^ 0xa18f524c)) ^ uVar28;
  DAT_182679968 = DAT_182679968 ^ (uint)uVar26;
  *(ulonglong *)(lVar25 + -0xb0) = uVar26;
  uVar26 = (ulonglong)DAT_182679a94;
  *(ulonglong *)(lVar25 + -0x20) =
       *(ulonglong *)(lVar25 - (uVar22 ^ 0xfc93fdaf)) ^
       *(ulonglong *)(lVar25 - (uVar21 ^ 0xbfb612fe));
  uVar28 = *(ulonglong *)*plVar2 ^ uVar28;
  DAT_1826798b8 = DAT_1826798b8 ^ *(uint *)(lVar25 - (uVar26 ^ 0xf2e7fe57));
  DAT_182679868 = DAT_182679868 ^ (uint)uVar28;
  DAT_182679b1c = DAT_182679b1c ^ (uint)(uVar23 ^ uVar28);
  *puVar27 = uVar23 ^ uVar28;
  *puVar5 = uVar28;
  *(uint *)(&DAT_1826795c0 + (longlong)(int)uVar17 * 4) = uVar4 ^ uVar14;
  return;
}



############ FUN_ 181131444 size=52 ############

/* Library Function - Single Match
    __raise_securityfailure
   
   Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release, Visual Studio 2019 Release */

void __raise_securityfailure(_EXCEPTION_POINTERS *param_1)

{
  HANDLE pvVar1;
  
  SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)0x0);
  UnhandledExceptionFilter(param_1);
  pvVar1 = GetCurrentProcess();
                    /* WARNING: Could not recover jumptable at 0x000181131471. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  TerminateProcess(pvVar1,0xc0000409);
  return;
}



############ FUN_ 18113166c size=113 ############

/* Library Function - Single Match
    capture_previous_context
   
   Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release, Visual Studio 2019 Release */

void capture_previous_context(PCONTEXT param_1)

{
  DWORD64 ControlPc;
  PRUNTIME_FUNCTION FunctionEntry;
  int iVar1;
  DWORD64 local_res8;
  ulonglong local_res10;
  PVOID local_res18 [2];
  
  RtlCaptureContext();
  ControlPc = param_1->Rip;
  iVar1 = 0;
  do {
    FunctionEntry = RtlLookupFunctionEntry(ControlPc,&local_res8,(PUNWIND_HISTORY_TABLE)0x0);
    if (FunctionEntry == (PRUNTIME_FUNCTION)0x0) {
      return;
    }
    RtlVirtualUnwind(0,local_res8,ControlPc,FunctionEntry,param_1,local_res18,&local_res10,
                     (PKNONVOLATILE_CONTEXT_POINTERS)0x0);
    iVar1 = iVar1 + 1;
  } while (iVar1 < 2);
  return;
}



############ FUN_ 1812b44e0 size=321 ############

longlong * FUN_1812b44e0(longlong *param_1,longlong *param_2)

{
  int iVar1;
  int iVar2;
  void *pvVar3;
  uint uVar4;
  uint uVar5;
  longlong *plVar6;
  
  uVar4 = 0;
  *param_2 = 0;
  param_2[1] = 0;
  plVar6 = (longlong *)*param_1;
  if (plVar6 == (longlong *)0x0) {
    plVar6 = param_1 + 1;
  }
  if (-1 < (int)param_1[4]) {
    do {
      if ((*(uint *)((longlong)plVar6 + (longlong)((int)uVar4 >> 5) * 4) >> (uVar4 & 0x1f) & 1) != 0
         ) {
        do {
          if ((int)uVar4 < 0) {
            return param_2;
          }
          iVar1 = *(int *)((longlong)param_2 + 0xc);
          iVar2 = iVar1 + 1;
          if ((int)*(uint *)(param_2 + 1) < iVar2) {
            if (iVar2 < 0) {
              iVar2 = iVar1 + 2;
            }
            uVar5 = iVar1 + 9 + (iVar2 >> 1) & 0xfffffff8;
            if (*(uint *)(param_2 + 1) != uVar5) {
              pvVar3 = (void *)*param_2;
              if ((int)uVar5 < 1) {
                    /* WARNING: Subroutine does not return */
                free(pvVar3);
              }
              if (pvVar3 == (void *)0x0) {
                pvVar3 = malloc((longlong)(int)uVar5 * 4);
                *param_2 = (longlong)pvVar3;
              }
              else {
                pvVar3 = realloc(pvVar3,(longlong)(int)uVar5 * 4);
                *param_2 = (longlong)pvVar3;
              }
            }
            *(uint *)(param_2 + 1) = uVar5;
          }
          iVar2 = *(int *)((longlong)param_2 + 0xc);
          *(int *)((longlong)param_2 + 0xc) = iVar2 + 1;
          *(uint *)(*param_2 + (longlong)iVar2 * 4) = uVar4;
          plVar6 = (longlong *)*param_1;
          if (plVar6 == (longlong *)0x0) {
            plVar6 = param_1 + 1;
          }
          do {
            uVar4 = uVar4 + 1;
            if ((int)param_1[4] < (int)uVar4) {
              return param_2;
            }
          } while ((*(uint *)((longlong)plVar6 + (longlong)((int)uVar4 >> 5) * 4) >> (uVar4 & 0x1f)
                   & 1) == 0);
        } while( true );
      }
      uVar4 = uVar4 + 1;
    } while ((int)uVar4 <= (int)param_1[4]);
  }
  return param_2;
}



############ FUN_ 1812b2440 size=1226 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1812b2440(undefined8 *param_1,int param_2)

{
  uint uVar1;
  longlong lVar2;
  uint *_Memory;
  undefined1 auStack_88 [32];
  undefined8 *local_68;
  undefined8 local_60;
  undefined1 local_39 [32];
  undefined1 local_19;
  ulonglong local_18 [2];
  
  local_60 = 0xfffffffffffffffe;
  local_18[0] = DAT_182615970 ^ (ulonglong)auStack_88;
  local_68 = param_1;
  if (param_2 < 0x80) {
    switch(param_2) {
    case 1:
      FUN_18049c4e0(param_1,&DAT_1821e017c);
      break;
    case 2:
      FUN_18049c4e0(param_1,&DAT_1821e0194);
      break;
    case 3:
      FUN_18049c4e0(param_1,&DAT_1821e010c);
      break;
    case 4:
      FUN_18049c4e0(param_1,&DAT_1821e0164);
      break;
    case 5:
      FUN_18049c4e0(param_1,&DAT_1821e022c);
      break;
    case 6:
      FUN_18049c4e0(param_1,&DAT_1821e023c);
      break;
    case 7:
      FUN_18049c4e0(param_1,&DAT_1821e01dc);
      break;
    case 8:
      FUN_18049c4e0(param_1,&DAT_1821e01ec);
      break;
    case 9:
      FUN_18049c4e0(param_1,&DAT_1821e0314);
      break;
    case 10:
      FUN_18049c4e0(param_1,&DAT_1821e04cc);
      break;
    case 0xb:
      FUN_18049c4e0(param_1,&DAT_1821e04ac);
      break;
    case 0xc:
      FUN_18049c4e0(param_1,&DAT_1821e02cc);
      break;
    case 0xd:
      FUN_18049c4e0(param_1,&DAT_1821e037c);
      break;
    case 0xe:
      FUN_18049c4e0(param_1,&DAT_1821e03cc);
      break;
    case 0xf:
      FUN_18049c4e0(param_1,&DAT_1821e0354);
      break;
    case 0x10:
      FUN_18049c4e0(param_1,&DAT_1821e0364);
      break;
    case 0x11:
      FUN_18049c4e0(param_1,&DAT_1821e046c);
      break;
    case 0x12:
      FUN_18049c4e0(param_1,&DAT_1821e049c);
      break;
    case 0x13:
      FUN_18049c4e0(param_1,&DAT_1821e0e94);
      break;
    case 0x14:
      FUN_18049c4e0(param_1,&DAT_1821e033c);
      break;
    case 0x15:
      FUN_18049c4e0(param_1,&DAT_1821e0284);
      break;
    case 0x16:
      FUN_18049c4e0(param_1,&DAT_1821e0414);
      break;
    case 0x17:
      FUN_18049c4e0(param_1,&DAT_1821e0424);
      break;
    case 0x18:
      FUN_18049c4e0(param_1,&DAT_1821e0dc4);
      break;
    case 0x19:
      FUN_18049c4e0(param_1,&DAT_1821e0ff4);
      break;
    case 0x1a:
      FUN_18049c4e0(param_1,&DAT_1821e1164);
      break;
    case 0x1b:
      FUN_18049c4e0(param_1,&DAT_1821e0ec4);
      break;
    case 0x1c:
      FUN_18049c4e0(param_1,&DAT_1821e04dc);
      break;
    case 0x1d:
      FUN_18049c4e0(param_1,&DAT_1821e05f4);
      break;
    case 0x1e:
      FUN_18049c4e0(param_1,&DAT_1821e0f44);
      break;
    case 0x1f:
      FUN_18049c4e0(param_1,&DAT_1821e200c);
      break;
    case 0x20:
      FUN_18049c4e0(param_1,&DAT_1821e2014);
      break;
    case 0x21:
      FUN_18049c4e0(param_1,&DAT_1821e14c4);
      break;
    case 0x22:
      FUN_18049c4e0(param_1,&DAT_1821e2004);
      break;
    case 0x23:
      FUN_18049c4e0(param_1,&DAT_1821e201c);
      break;
    case 0x24:
      FUN_18049c4e0(param_1,"ACN10");
      break;
    case 0x25:
      FUN_18049c4e0(param_1,"ACN11");
      break;
    case 0x26:
      FUN_18049c4e0(param_1,"ACN12");
      break;
    case 0x27:
      FUN_18049c4e0(param_1,"ACN13");
      break;
    case 0x28:
      FUN_18049c4e0(param_1,"ACN14");
      break;
    case 0x29:
      FUN_18049c4e0(param_1,"ACN15");
      break;
    default:
      if (param_2 - 0x1eU < 0x20) {
        lVar2 = FUN_181233e10(local_18,param_2 + -0x1a);
        FUN_180495150(&local_68,lVar2,&local_19 + -lVar2);
        FUN_181246550(param_1,&DAT_1821e0e54,&local_68);
        _Memory = (uint *)(local_68 + -2);
        if ((*_Memory & 0x30000000) == 0) {
          LOCK();
          uVar1 = *_Memory;
          *_Memory = *_Memory - 1;
          UNLOCK();
          if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
            free(_Memory);
          }
        }
      }
      else {
        *param_1 = &DAT_1821dbf98;
      }
      break;
    case 0x3e:
      FUN_18049c4e0(param_1,&DAT_1821e0604);
      break;
    case 0x3f:
      FUN_18049c4e0(param_1,&DAT_1821e054c);
      break;
    case 0x40:
      FUN_18049c4e0(param_1,&DAT_1821e05cc);
      break;
    case 0x43:
      FUN_18049c4e0(param_1,&DAT_1821e0674);
      break;
    case 0x44:
      FUN_18049c4e0(param_1,&DAT_1821e0684);
      break;
    case 0x45:
      FUN_18049c4e0(param_1,&DAT_1821e0634);
      break;
    case 0x46:
      FUN_18049c4e0(param_1,&DAT_1821e0644);
      break;
    case 0x47:
      FUN_18049c4e0(param_1,&DAT_1821e06e4);
    }
  }
  else {
    lVar2 = FUN_181233e10(local_39 + 1,param_2 + -0x7f);
    FUN_180495150(param_1,lVar2,local_39 + -lVar2);
  }
}



############ FUN_ 181131b68 size=79 ############

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* Library Function - Single Match
    _onexit
   
   Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release */

_onexit_t __cdecl _onexit(_onexit_t _Func)

{
  int iVar1;
  byte bVar2;
  _onexit_t p_Var3;
  
  bVar2 = (byte)DAT_182615970 & 0x3f;
  if (((DAT_182615970 ^ _DAT_182672fd8) >> bVar2 | (DAT_182615970 ^ _DAT_182672fd8) << 0x40 - bVar2)
      == 0xffffffffffffffff) {
    iVar1 = _crt_atexit();
  }
  else {
    iVar1 = _register_onexit_function(&DAT_182672fd8,_Func);
  }
  p_Var3 = (_onexit_t)0x0;
  if (iVar1 == 0) {
    p_Var3 = _Func;
  }
  return p_Var3;
}



############ FUN_ 1811313cc size=119 ############

/* Library Function - Single Match
    _Init_thread_wait
   
   Library: Visual Studio 2017 Release */

void _Init_thread_wait(DWORD param_1)

{
  if (DAT_182672a30 == (HANDLE)0x0) {
    (*(code *)PTR__guard_dispatch_icall_181bab6b0)(&DAT_182672a28,&DAT_182672a00,param_1);
    return;
  }
  LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182672a00);
  WaitForSingleObjectEx(DAT_182672a30,param_1,0);
                    /* WARNING: Could not recover jumptable at 0x00018113143c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182672a00);
  return;
}



############ FUN_ 18113137c size=80 ############

/* Library Function - Single Match
    _Init_thread_notify
   
   Library: Visual Studio 2017 Release */

void _Init_thread_notify(void)

{
  if (DAT_182672a30 == (HANDLE)0x0) {
    (*(code *)PTR__guard_dispatch_icall_181bab6b0)(&DAT_182672a28);
    return;
  }
  SetEvent(DAT_182672a30);
                    /* WARNING: Could not recover jumptable at 0x0001811313c5. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  ResetEvent(DAT_182672a30);
  return;
}



############ FUN_ 181384180 size=792 ############

void FUN_181384180(int *param_1,int param_2)

{
  char cVar1;
  ulonglong uVar2;
  double dVar3;
  uint uVar4;
  uint uVar5;
  int *piVar6;
  void *pvVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  float *pfVar11;
  uint uVar12;
  int iVar13;
  ulonglong uVar14;
  longlong lVar15;
  int iVar16;
  float fVar17;
  float fVar18;
  double dVar19;
  double dVar20;
  double dVar21;
  double _X;
  
  uVar4 = (int)(param_2 + (param_2 >> 0x1f & 3U)) >> 2;
  uVar14 = (ulonglong)uVar4;
  piVar6 = malloc((longlong)(int)uVar4 << 2);
  pvVar7 = malloc((longlong)(int)(param_2 + uVar4) << 2);
  fVar17 = logf((float)param_2);
  fVar18 = logf(DAT_1824c41e0);
  fVar17 = floorf(fVar17 / fVar18 + DAT_1824c3d8c);
  dVar3 = DAT_1824c4218;
  *param_1 = param_2;
  *(void **)(param_1 + 2) = pvVar7;
  *(int **)(param_1 + 4) = piVar6;
  param_1[1] = (int)fVar17;
  if (0 < (int)uVar4) {
    iVar16 = 0;
    iVar13 = 1;
    lVar15 = (longlong)param_2 >> 1;
    uVar4 = (uint)DAT_1824c4f20;
    uVar2 = (ulonglong)DAT_1824c4f20 >> 0x20;
    pfVar11 = (float *)((longlong)pvVar7 + 4);
    do {
      dVar21 = (double)iVar16 * (dVar3 / (double)param_2);
      dVar19 = cos(dVar21);
      pfVar11[-1] = (float)dVar19;
      dVar19 = sin(dVar21);
      *pfVar11 = (float)(double)CONCAT44((uint)((ulonglong)dVar19 >> 0x20) ^ (uint)uVar2,
                                         SUB84(dVar19,0) ^ uVar4);
      dVar21 = (double)iVar13 * (dVar3 / (double)(param_2 * 2));
      dVar19 = cos(dVar21);
      pfVar11[lVar15 + -1] = (float)dVar19;
      dVar19 = sin(dVar21);
      iVar16 = iVar16 + 4;
      iVar13 = iVar13 + 2;
      pfVar11[lVar15] = (float)dVar19;
      uVar14 = uVar14 - 1;
      pfVar11 = pfVar11 + 2;
    } while (uVar14 != 0);
  }
  dVar21 = DAT_1824c4698;
  dVar19 = DAT_1824c4050;
  uVar4 = (int)(param_2 + (param_2 >> 0x1f & 7U)) >> 3;
  if (0 < (int)uVar4) {
    iVar13 = 2;
    uVar14 = (ulonglong)uVar4;
    pfVar11 = (float *)((longlong)pvVar7 + (longlong)param_2 * 4);
    do {
      _X = (double)iVar13 * (dVar3 / (double)param_2);
      dVar20 = cos(_X);
      *pfVar11 = (float)(dVar20 * dVar19);
      dVar20 = sin(_X);
      iVar13 = iVar13 + 4;
      pfVar11[1] = (float)(dVar20 * dVar21);
      uVar14 = uVar14 - 1;
      pfVar11 = pfVar11 + 2;
    } while (uVar14 != 0);
  }
  cVar1 = (char)(int)fVar17;
  uVar12 = 0;
  uVar10 = 1 << (cVar1 - 2U & 0x1f);
  if (0 < (int)uVar4) {
    do {
      uVar9 = 0;
      uVar8 = 0;
      uVar5 = uVar10;
      while (uVar5 != 0) {
        if ((uVar12 & uVar5) != 0) {
          uVar9 = uVar9 | 1 << (uVar8 & 0x1f);
        }
        uVar8 = uVar8 + 1;
        uVar5 = (int)uVar10 >> ((byte)uVar8 & 0x1f);
      }
      piVar6[1] = uVar9;
      uVar12 = uVar12 + 1;
      *piVar6 = (~uVar9 & (1 << (cVar1 - 1U & 0x1f)) - 1U) - 1;
      piVar6 = piVar6 + 2;
    } while ((int)uVar12 < (int)uVar4);
  }
  param_1[6] = (int)(DAT_1824c4334 / (float)param_2);
  return;
}



############ FUN_ 1813776a0 size=91 ############

void FUN_1813776a0(int *param_1,int param_2)

{
  void *pvVar1;
  
  *param_1 = param_2;
  pvVar1 = calloc((longlong)(param_2 * 3),4);
  *(void **)(param_1 + 2) = pvVar1;
  pvVar1 = calloc(0x20,4);
  *(void **)(param_1 + 4) = pvVar1;
  if (param_2 != 1) {
    FUN_18137a170(param_2,*(longlong *)(param_1 + 2) + (longlong)param_2 * 4,pvVar1);
  }
  return;
}



############ FUN_ 18137b010 size=477 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18137b010(longlong param_1,int param_2,int param_3)

{
  uint uVar1;
  uint *_Memory;
  uint *puVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  longlong lVar7;
  uint *puVar8;
  longlong lVar9;
  undefined1 auStack_e8 [32];
  uint local_c8 [36];
  ulonglong local_38;
  
  local_38 = DAT_182615970 ^ (ulonglong)auStack_e8;
  iVar5 = param_2;
  if (param_3 != 0) {
    iVar5 = param_3;
  }
  _Memory = malloc((longlong)iVar5 << 2);
  memset(local_c8,0,0x84);
  lVar9 = 0;
  puVar8 = _Memory;
  if (0 < param_2) {
    do {
      iVar5 = *(int *)(param_1 + lVar9 * 4);
      lVar7 = (longlong)iVar5;
      if (iVar5 < 1) {
        if (param_3 == 0) {
          puVar8 = puVar8 + 1;
        }
      }
      else {
        uVar6 = local_c8[lVar7];
        if ((iVar5 < 0x20) && (uVar6 >> ((byte)iVar5 & 0x1f) != 0)) goto LAB_18137b1fb;
        *puVar8 = uVar6;
        puVar8 = puVar8 + 1;
        iVar4 = iVar5;
        if (0 < iVar5) {
          do {
            if ((local_c8[lVar7] & 1) != 0) {
              if (iVar4 == 1) {
                local_c8[1] = local_c8[1] + 1;
              }
              else {
                local_c8[iVar4] = local_c8[iVar4 + -1] * 2;
              }
              break;
            }
            local_c8[lVar7] = local_c8[lVar7] + 1;
            lVar7 = lVar7 + -1;
            iVar4 = iVar4 + -1;
          } while (0 < lVar7);
        }
        iVar5 = iVar5 + 1;
        if (iVar5 < 0x21) {
          puVar2 = local_c8 + iVar5;
          do {
            uVar1 = *puVar2;
            if (uVar1 >> 1 != uVar6) break;
            iVar5 = iVar5 + 1;
            *puVar2 = puVar2[-1] * 2;
            puVar2 = puVar2 + 1;
            uVar6 = uVar1;
          } while (iVar5 < 0x21);
        }
      }
      lVar9 = lVar9 + 1;
    } while (lVar9 < param_2);
  }
  if (param_3 != 1) {
    lVar9 = 1;
    bVar3 = 0x1f;
    do {
      if ((local_c8[lVar9] & 0xffffffffU >> (bVar3 & 0x1f)) != 0) {
LAB_18137b1fb:
                    /* WARNING: Subroutine does not return */
        free(_Memory);
      }
      bVar3 = bVar3 - 1;
      lVar9 = lVar9 + 1;
    } while (lVar9 < 0x21);
  }
  lVar9 = 0;
  if (0 < param_2) {
    do {
      iVar5 = *(int *)(param_1 + lVar9 * 4);
      uVar6 = 0;
      iVar4 = 0;
      if (0 < iVar5) {
        do {
          bVar3 = (byte)iVar4;
          iVar4 = iVar4 + 1;
          uVar6 = *_Memory >> (bVar3 & 0x1f) & 1 | uVar6 * 2;
        } while (iVar4 < iVar5);
      }
      if ((param_3 == 0) || (iVar5 != 0)) {
        *_Memory = uVar6;
        _Memory = _Memory + 1;
      }
      lVar9 = lVar9 + 1;
    } while (lVar9 < param_2);
  }
}



############ FUN_ 18137af80 size=128 ############

int FUN_18137af80(uint *param_1)

{
  uint uVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  ulonglong uVar6;
  int iVar7;
  float fVar8;
  
  uVar1 = *param_1;
  uVar2 = param_1[1];
  fVar8 = powf((float)(int)uVar2,DAT_1824c3ea4 / (float)(int)uVar1);
  fVar8 = floorf(fVar8);
  iVar5 = (int)fVar8;
  iVar7 = iVar5 + 1;
  while( true ) {
    while( true ) {
      iVar4 = 1;
      iVar3 = 1;
      uVar6 = (ulonglong)uVar1;
      if (0 < (int)uVar1) {
        do {
          iVar4 = iVar4 * iVar5;
          iVar3 = iVar3 * iVar7;
          uVar6 = uVar6 - 1;
        } while (uVar6 != 0);
      }
      if (iVar4 <= (int)uVar2) break;
      iVar5 = iVar5 + -1;
      iVar7 = iVar7 + -1;
    }
    if ((int)uVar2 < iVar3) break;
    iVar5 = iVar5 + 1;
    iVar7 = iVar7 + 1;
  }
  return iVar5;
}



############ FUN_ 181380b80 size=2447 ############

void FUN_181380b80(int *param_1,longlong param_2,int *param_3,int param_4,int param_5)

{
  size_t _Size;
  char cVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  float fVar5;
  void *pvVar6;
  undefined8 uVar7;
  int iVar8;
  longlong lVar9;
  longlong lVar10;
  int iVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  int iVar15;
  int iVar16;
  ulonglong uVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  longlong lVar21;
  float *pfVar22;
  float fVar23;
  float fVar24;
  float fVar25;
  float fVar26;
  float fVar27;
  float fVar28;
  double dVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  float fVar33;
  float fVar34;
  double dVar35;
  undefined4 uVar36;
  undefined4 uVar37;
  undefined4 uVar38;
  undefined4 uVar39;
  undefined4 uVar40;
  undefined4 uVar41;
  double dVar42;
  int local_res18;
  longlong local_100;
  
  iVar18 = -99;
  lVar21 = (longlong)param_4;
  local_res18 = 1;
  iVar19 = local_res18;
  memset(param_1,0,0x50);
  param_1[0x10] = *param_3;
  fVar23 = logf((float)*param_3 * DAT_1824c43d8);
  fVar24 = logf(DAT_1824c41e0);
  fVar24 = floorf(fVar23 / fVar24 + DAT_1824c3d8c);
  dVar2 = DAT_1824c4050;
  fVar23 = DAT_1824c3d3c;
  fVar24 = fVar24 - DAT_1824c3ea4;
  fVar25 = (float)param_5 * DAT_1824c3d3c;
  param_1[0xf] = (int)fVar24;
  dVar42 = (double)param_4;
  dVar29 = log(((double)fVar25 * dVar2) / dVar42);
  dVar32 = DAT_1824c4238;
  dVar31 = DAT_1824c41b0;
  cVar1 = (char)(int)fVar24;
  uVar40 = SUB84(DAT_1824c41b0,0);
  uVar41 = (undefined4)((ulonglong)DAT_1824c41b0 >> 0x20);
  uVar38 = SUB84(DAT_1824c4238,0);
  uVar39 = (undefined4)((ulonglong)DAT_1824c4238 >> 0x20);
  iVar11 = (int)((dVar29 * DAT_1824c41b0 - DAT_1824c4238) * (double)(1 << (cVar1 + 1U & 0x1f)) -
                (double)*param_3);
  param_1[0xe] = iVar11;
  dVar29 = log(((double)(((float)param_4 + fVar23) * (float)param_5) * dVar2) / dVar42);
  _Size = lVar21 * 4;
  param_1[0x11] =
       ((int)((dVar29 * dVar31 - dVar32) * (double)(1 << (cVar1 + 1U & 0x1f)) + dVar2) - iVar11) + 1
  ;
  pvVar6 = malloc(_Size);
  *(void **)(param_1 + 8) = pvVar6;
  pvVar6 = malloc(_Size);
  *(void **)(param_1 + 10) = pvVar6;
  pvVar6 = malloc(_Size);
  *(void **)(param_1 + 0xc) = pvVar6;
  uVar13 = 0;
  *(longlong *)(param_1 + 2) = param_2;
  *param_1 = param_4;
  param_1[0x12] = param_5;
  param_1[0x13] = 0x3f800000;
  if (param_5 < 26000) {
    param_1[0x13] = 0;
  }
  else if (param_5 < 38000) {
    param_1[0x13] = 0x3f70a3d7;
  }
  else if (46000 < param_5) {
    param_1[0x13] = 0x3fa33333;
  }
  dVar4 = DAT_1824c42f0;
  dVar3 = DAT_1824c41e8;
  dVar29 = DAT_1824c4098;
  dVar31 = DAT_1824c3f80;
  pfVar22 = (float *)&DAT_1822effc4;
  uVar36 = SUB84(DAT_1824c41e8,0);
  uVar37 = (undefined4)((ulonglong)DAT_1824c41e8 >> 0x20);
  iVar11 = 1;
  dVar35 = (double)param_5;
  uVar17 = uVar13;
  do {
    dVar30 = exp((((double)iVar11 * dVar31 - dVar3) + dVar32) * dVar29);
    dVar30 = floor((dVar30 * dVar3 * dVar42) / dVar35 + dVar2);
    fVar24 = pfVar22[-1];
    iVar8 = (int)dVar30;
    if ((int)uVar17 < iVar8) {
      lVar10 = (longlong)iVar8;
      fVar25 = (*pfVar22 - fVar24) / (float)(iVar8 - (int)uVar17);
      if ((longlong)uVar13 < lVar10) {
        if (3 < (longlong)(lVar10 - uVar13)) {
          lVar9 = uVar13 + 2;
          do {
            if (lVar21 <= (longlong)uVar13) goto LAB_181380f6a;
            *(float *)(*(longlong *)(param_1 + 8) + uVar13 * 4) = (float)((double)fVar24 + dVar4);
            iVar8 = (int)uVar17;
            if (lVar21 <= lVar9 + -1) {
              uVar13 = uVar13 + 1;
              uVar17 = (ulonglong)(iVar8 + 1);
              goto LAB_181380f6a;
            }
            fVar33 = fVar24 + fVar25 + fVar25;
            *(float *)(*(longlong *)(param_1 + 8) + 4 + uVar13 * 4) =
                 (float)((double)(fVar24 + fVar25) + dVar4);
            if (lVar21 <= lVar9) {
              uVar13 = uVar13 + 2;
              uVar17 = (ulonglong)(iVar8 + 2);
              goto LAB_181380f6a;
            }
            fVar34 = fVar33 + fVar25;
            *(float *)(*(longlong *)(param_1 + 8) + 8 + uVar13 * 4) =
                 (float)((double)fVar33 + dVar4);
            if (lVar21 <= lVar9 + 1) {
              uVar13 = uVar13 + 3;
              uVar17 = (ulonglong)(iVar8 + 3);
              goto LAB_181380f6a;
            }
            uVar17 = (ulonglong)(iVar8 + 4);
            lVar9 = lVar9 + 4;
            fVar24 = fVar34 + fVar25;
            *(float *)(*(longlong *)(param_1 + 8) + 0xc + uVar13 * 4) =
                 (float)((double)fVar34 + dVar4);
            uVar13 = uVar13 + 4;
          } while ((longlong)uVar13 < lVar10 + -3);
        }
        for (; ((longlong)uVar13 < lVar10 && ((longlong)uVar13 < lVar21)); uVar13 = uVar13 + 1) {
          dVar30 = (double)fVar24;
          uVar17 = (ulonglong)((int)uVar17 + 1);
          fVar24 = fVar24 + fVar25;
          *(float *)(*(longlong *)(param_1 + 8) + uVar13 * 4) = (float)(dVar30 + dVar4);
        }
      }
    }
LAB_181380f6a:
    iVar11 = iVar11 + 1;
    pfVar22 = pfVar22 + 1;
  } while ((longlong)pfVar22 < 0x1822f0120);
  lVar10 = (longlong)(int)uVar17;
  if (lVar10 < lVar21) {
    if (3 < lVar21 - lVar10) {
      do {
        *(undefined4 *)(*(longlong *)(param_1 + 8) + lVar10 * 4) =
             *(undefined4 *)(*(longlong *)(param_1 + 8) + -4 + lVar10 * 4);
        *(undefined4 *)(*(longlong *)(param_1 + 8) + 4 + lVar10 * 4) =
             *(undefined4 *)(*(longlong *)(param_1 + 8) + lVar10 * 4);
        *(undefined4 *)(*(longlong *)(param_1 + 8) + 8 + lVar10 * 4) =
             *(undefined4 *)(*(longlong *)(param_1 + 8) + 4 + lVar10 * 4);
        *(undefined4 *)(*(longlong *)(param_1 + 8) + 0xc + lVar10 * 4) =
             *(undefined4 *)(*(longlong *)(param_1 + 8) + 8 + lVar10 * 4);
        lVar10 = lVar10 + 4;
      } while (lVar10 < lVar21 + -3);
    }
    for (; lVar10 < lVar21; lVar10 = lVar10 + 1) {
      *(undefined4 *)(*(longlong *)(param_1 + 8) + lVar10 * 4) =
           *(undefined4 *)(*(longlong *)(param_1 + 8) + -4 + lVar10 * 4);
    }
  }
  fVar5 = DAT_1824c4410;
  fVar34 = DAT_1824c4220;
  fVar33 = DAT_1824c3c4c;
  fVar25 = DAT_1824c3c44;
  fVar24 = DAT_1824c3c30;
  iVar11 = 0;
  if (0 < param_4) {
    iVar8 = param_5 / (param_4 * 2);
    local_100 = 0;
    local_res18 = 0;
    param_5 = 0;
    do {
      fVar23 = atanf((float)(iVar8 * iVar11) * fVar33);
      fVar26 = atanf((float)(param_5 * iVar11) * fVar24);
      iVar20 = *(int *)(param_2 + 0x78) + iVar18;
      fVar23 = fVar23 * fVar5 + fVar26 * fVar34 + (float)local_res18 * fVar25;
      if (iVar20 < iVar11) {
        fVar26 = *(float *)(param_2 + 0x70);
        iVar16 = iVar8 * iVar18;
        iVar15 = iVar8 * iVar8 * iVar18;
        do {
          fVar27 = atanf((float)(iVar15 * iVar18) * fVar24);
          fVar28 = atanf((float)(iVar8 * iVar18) * fVar33);
          if (fVar23 - fVar26 <= fVar27 * fVar34 + fVar28 * fVar5 + (float)iVar16 * fVar25) break;
          iVar18 = iVar18 + 1;
          iVar15 = iVar15 + iVar8 * iVar8;
          iVar16 = iVar16 + iVar8;
          iVar20 = iVar20 + 1;
        } while (iVar20 < iVar11);
      }
      if (iVar19 <= param_4) {
        iVar20 = *(int *)(param_2 + 0x7c);
        iVar15 = iVar8 * iVar19;
        do {
          if (iVar20 + iVar11 <= iVar19) {
            fVar26 = atanf((float)(iVar8 * iVar8 * iVar19 * iVar19) * fVar24);
            fVar27 = atanf((float)(iVar8 * iVar19) * fVar33);
            if (fVar23 + *(float *)(param_2 + 0x74) <=
                fVar26 * fVar34 + fVar27 * fVar5 + (float)iVar15 * fVar25) break;
          }
          iVar19 = iVar19 + 1;
          iVar15 = iVar15 + iVar8;
        } while (iVar19 <= param_4);
      }
      local_res18 = local_res18 + iVar8;
      iVar11 = iVar11 + 1;
      *(int *)(local_100 + *(longlong *)(param_1 + 0xc)) = iVar18 * 0x10000 + -0x10001 + iVar19;
      local_100 = local_100 + 4;
      param_5 = param_5 + iVar8 * iVar8;
    } while (iVar11 < param_4);
    uVar36 = SUB84(DAT_1824c41e8,0);
    uVar37 = (undefined4)((ulonglong)DAT_1824c41e8 >> 0x20);
    uVar38 = SUB84(DAT_1824c4238,0);
    uVar39 = (undefined4)((ulonglong)DAT_1824c4238 >> 0x20);
    uVar40 = SUB84(DAT_1824c41b0,0);
    uVar41 = (undefined4)((ulonglong)DAT_1824c41b0 >> 0x20);
    fVar23 = DAT_1824c3d3c;
  }
  uVar14 = 0;
  uVar13 = uVar14;
  uVar17 = uVar14;
  if (0 < param_4) {
    do {
      dVar31 = log(((double)((float)(int)uVar13 + fVar23) * dVar2 * dVar35) / dVar42);
      uVar12 = (int)uVar13 + 1;
      *(int *)(uVar17 + *(longlong *)(param_1 + 10)) =
           (int)((dVar31 * (double)CONCAT44(uVar41,uVar40) - (double)CONCAT44(uVar39,uVar38)) *
                 (double)(1 << ((char)param_1[0xf] + 1U & 0x1f)) + dVar2);
      uVar13 = (ulonglong)uVar12;
      uVar17 = uVar17 + 4;
    } while ((int)uVar12 < param_4);
  }
  uVar7 = FUN_181381520(param_2 + 0x24,(float)((dVar35 * dVar2) / dVar42),param_4,
                        *(undefined4 *)(param_2 + 0x18),*(undefined4 *)(param_2 + 0x1c));
  *(undefined8 *)(param_1 + 4) = uVar7;
  pvVar6 = malloc(0x18);
  *(void **)(param_1 + 6) = pvVar6;
  uVar13 = uVar14;
  do {
    pvVar6 = malloc(_Size);
    *(void **)(uVar13 + *(longlong *)(param_1 + 6)) = pvVar6;
    fVar23 = DAT_1824c441c;
    dVar31 = DAT_1824c4140;
    uVar13 = uVar13 + 8;
  } while ((longlong)uVar13 < 0x18);
  if (0 < param_4) {
    uVar13 = uVar14;
    do {
      dVar32 = log((((double)(int)uVar13 + dVar2) * dVar35) /
                   (dVar42 * (double)CONCAT44(uVar37,uVar36)));
      uVar12 = (int)uVar13 + 1;
      uVar13 = (ulonglong)uVar12;
      fVar25 = (float)((dVar32 * (double)CONCAT44(uVar41,uVar40) - (double)CONCAT44(uVar39,uVar38))
                      * (double)CONCAT44(uVar37,uVar36));
      fVar24 = 0.0;
      if (0.0 <= fVar25) {
        fVar24 = fVar25;
      }
      fVar25 = fVar23;
      if (fVar24 <= fVar23) {
        fVar25 = fVar24;
      }
      lVar21 = (longlong)(int)fVar25;
      fVar25 = fVar25 - (float)(int)fVar25;
      dVar32 = dVar31 - (double)fVar25;
      *(float *)(uVar14 + **(longlong **)(param_1 + 6)) =
           (float)((double)*(float *)(*(longlong *)(param_1 + 2) + 0x84 + lVar21 * 4) * dVar32 +
                  (double)(fVar25 * *(float *)(*(longlong *)(param_1 + 2) + 0x88 + lVar21 * 4)));
      *(float *)(uVar14 + *(longlong *)(*(longlong *)(param_1 + 6) + 8)) =
           (float)((double)*(float *)(*(longlong *)(param_1 + 2) + 200 + lVar21 * 4) * dVar32 +
                  (double)(fVar25 * *(float *)(*(longlong *)(param_1 + 2) + 0xcc + lVar21 * 4)));
      *(float *)(uVar14 + *(longlong *)(*(longlong *)(param_1 + 6) + 0x10)) =
           (float)((double)*(float *)(*(longlong *)(param_1 + 2) + 0x10c + lVar21 * 4) * dVar32 +
                  (double)(fVar25 * *(float *)(*(longlong *)(param_1 + 2) + 0x110 + lVar21 * 4)));
      uVar14 = uVar14 + 4;
    } while ((int)uVar12 < param_4);
  }
  return;
}



############ FUN_ 18137ac80 size=95 ############

void FUN_18137ac80(undefined8 *param_1)

{
  if (*(int *)(param_1 + 6) == 0) {
    return;
  }
  if ((void *)param_1[5] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free((void *)param_1[5]);
  }
  if ((void *)param_1[1] != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free((void *)param_1[1]);
  }
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
                    /* WARNING: Could not recover jumptable at 0x00018137acd2. Too many branches */
                    /* WARNING: Subroutine does not return */
                    /* WARNING: Treating indirect jump as call */
  free(param_1);
  return;
}



############ FUN_ 18137a400 size=768 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_18137a400(undefined4 *param_1,undefined4 *param_2)

{
  undefined4 *puVar1;
  size_t _Size;
  void *pvVar2;
  longlong lVar3;
  longlong lVar4;
  void *_Memory;
  void *pvVar5;
  uint uVar6;
  uint uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  longlong lVar10;
  undefined1 *puVar11;
  uint uVar12;
  int *piVar14;
  int iVar15;
  size_t _NumOfElements;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  undefined8 uStack_80;
  undefined1 auStack_78 [32];
  int local_58 [2];
  size_t local_50;
  void *local_48;
  ulonglong local_38;
  ulonglong uVar13;
  
  puVar11 = auStack_78;
  local_38 = DAT_182615970 ^ (ulonglong)local_58;
  uVar8 = 0;
  uStack_80 = 0x18137a443;
  memset(param_1,0,0x58);
  uVar7 = param_2[1];
  uVar12 = 0;
  uVar9 = uVar8;
  if ((0 < (int)uVar7) && (uVar9 = 0, 7 < uVar7)) {
    uVar20 = 0;
    uVar21 = 0;
    uVar22 = 0;
    uVar23 = 0;
    uVar16 = 0;
    uVar17 = 0;
    uVar18 = 0;
    uVar19 = 0;
    uVar6 = uVar7 & 0x80000007;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffff8) + 1;
    }
    uVar9 = uVar8;
    uVar13 = uVar8;
    do {
      piVar14 = (int *)(*(longlong *)(param_2 + 2) + uVar9 * 4);
      uVar12 = (int)uVar13 + 8;
      uVar13 = (ulonglong)uVar12;
      uVar20 = _DAT_1824c4840 + uVar20 & -(uint)(0 < *piVar14) | ~-(uint)(0 < *piVar14) & uVar20;
      uVar21 = _UNK_1824c4844 + uVar21 & -(uint)(0 < piVar14[1]) | ~-(uint)(0 < piVar14[1]) & uVar21
      ;
      uVar22 = _UNK_1824c4848 + uVar22 & -(uint)(0 < piVar14[2]) | ~-(uint)(0 < piVar14[2]) & uVar22
      ;
      uVar23 = _UNK_1824c484c + uVar23 & -(uint)(0 < piVar14[3]) | ~-(uint)(0 < piVar14[3]) & uVar23
      ;
      piVar14 = (int *)(*(longlong *)(param_2 + 2) + 0x10 + uVar9 * 4);
      uVar9 = uVar9 + 8;
      uVar16 = _DAT_1824c4840 + uVar16 & -(uint)(0 < *piVar14) | ~-(uint)(0 < *piVar14) & uVar16;
      uVar17 = _UNK_1824c4844 + uVar17 & -(uint)(0 < piVar14[1]) | ~-(uint)(0 < piVar14[1]) & uVar17
      ;
      uVar18 = _UNK_1824c4848 + uVar18 & -(uint)(0 < piVar14[2]) | ~-(uint)(0 < piVar14[2]) & uVar18
      ;
      uVar19 = _UNK_1824c484c + uVar19 & -(uint)(0 < piVar14[3]) | ~-(uint)(0 < piVar14[3]) & uVar19
      ;
    } while ((longlong)uVar9 < (longlong)(int)(uVar7 - uVar6));
    uVar9 = (ulonglong)(uVar16 + uVar20 + uVar18 + uVar22 + uVar17 + uVar21 + uVar19 + uVar23);
  }
  iVar15 = (int)uVar9;
  lVar4 = (longlong)(int)uVar12;
  if (lVar4 < (int)uVar7) {
    do {
      if (0 < *(int *)(*(longlong *)(param_2 + 2) + lVar4 * 4)) {
        uVar9 = (ulonglong)((int)uVar9 + 1);
      }
      iVar15 = (int)uVar9;
      lVar4 = lVar4 + 1;
    } while (lVar4 < (int)uVar7);
  }
  param_1[1] = uVar7;
  param_1[2] = iVar15;
  *param_1 = *param_2;
  if (0 < iVar15) {
    uStack_80 = 0x18137a545;
    _Memory = (void *)FUN_18137b010(*(undefined8 *)(param_2 + 2),param_2[1],iVar15);
    _NumOfElements = (size_t)iVar15;
    uVar9 = _NumOfElements * 8 + 0xf;
    if (uVar9 <= _NumOfElements * 8) {
      uVar9 = 0xffffffffffffff0;
    }
    uStack_80 = 0x18137a572;
    lVar4 = -(uVar9 & 0xfffffffffffffff0);
    puVar11 = auStack_78 + lVar4;
    pvVar2 = (void *)((longlong)local_58 + lVar4);
    local_48 = pvVar2;
    if (_Memory != (void *)0x0) {
      uVar9 = uVar8;
      uVar13 = uVar8;
      if (0 < iVar15) {
        do {
          uVar7 = *(uint *)((longlong)_Memory + uVar9 * 4);
          uVar7 = uVar7 << 0x10 | uVar7 >> 0x10;
          uVar7 = (uVar7 >> 8 ^ uVar7 << 8) & 0xff00ff ^ uVar7 << 8;
          uVar7 = (uVar7 >> 4 ^ uVar7 << 4) & 0xf0f0f0f ^ uVar7 << 4;
          uVar7 = (uVar7 >> 2 ^ uVar7 * 4) & 0x33333333 ^ uVar7 * 4;
          *(uint *)((longlong)_Memory + uVar9 * 4) =
               (uVar7 >> 1 ^ uVar7 * 2) & 0x55555555 ^ uVar7 * 2;
          *(void **)((longlong)pvVar2 + uVar9 * 8) =
               (void *)((longlong)(int)uVar13 * 4 + (longlong)_Memory);
          uVar9 = uVar9 + 1;
          uVar13 = (ulonglong)((int)uVar13 + 1);
        } while ((longlong)uVar9 < (longlong)_NumOfElements);
      }
      *(undefined8 *)(auStack_78 + lVar4 + -8) = 0x18137a656;
      qsort(pvVar2,_NumOfElements,8,FUN_18137aae0);
      _Size = _NumOfElements * 4;
      uVar9 = _Size + 0xf;
      if (uVar9 <= _Size) {
        uVar9 = 0xffffffffffffff0;
      }
      local_50 = _Size;
      *(undefined8 *)(auStack_78 + lVar4 + -8) = 0x18137a677;
      lVar3 = -(uVar9 & 0xfffffffffffffff0);
      piVar14 = (int *)(auStack_78 + lVar3 + lVar4 + 0x20);
      *(undefined8 *)(auStack_78 + lVar3 + lVar4 + -8) = 0x18137a685;
      pvVar5 = malloc(_Size);
      pvVar2 = local_48;
      *(void **)(param_1 + 8) = pvVar5;
      uVar9 = uVar8;
      if (0 < iVar15) {
        do {
          lVar10 = uVar8 * 8;
          uVar8 = uVar8 + 1;
          piVar14[(int)(*(longlong *)((longlong)pvVar2 + lVar10) - (longlong)_Memory >> 2)] =
               (int)uVar9;
          uVar9 = (ulonglong)((int)uVar9 + 1);
        } while ((longlong)uVar8 < (longlong)_NumOfElements);
        lVar10 = (longlong)_Memory - (longlong)piVar14;
        do {
          iVar15 = *piVar14;
          puVar1 = (undefined4 *)(lVar10 + (longlong)piVar14);
          piVar14 = piVar14 + 1;
          *(undefined4 *)(*(longlong *)(param_1 + 8) + (longlong)iVar15 * 4) = *puVar1;
          _NumOfElements = _NumOfElements - 1;
        } while (_NumOfElements != 0);
      }
                    /* WARNING: Subroutine does not return */
      *(undefined **)(auStack_78 + lVar3 + lVar4 + -8) = &UNK_18137a6f2;
      free(_Memory);
    }
    *(undefined8 *)(auStack_78 + lVar4 + -8) = 0x18137a58b;
    FUN_18137ac10(param_1);
  }
  *(undefined **)(puVar11 + -8) = &UNK_18137aab9;
}



############ FUN_ 1813772d0 size=135 ############

undefined4 FUN_1813772d0(longlong param_1,undefined8 *param_2)

{
  longlong lVar1;
  int iVar2;
  int iVar3;
  undefined8 local_28;
  undefined8 local_20;
  undefined8 local_18;
  ulonglong local_10;
  
  local_20 = *param_2;
  lVar1 = *(longlong *)(param_1 + 0x20);
  local_28 = 0;
  local_10 = (ulonglong)*(uint *)(param_2 + 1);
  local_18 = local_20;
  iVar2 = FUN_181392960(&local_28,1);
  if (iVar2 != 0) {
    return 0xffffff79;
  }
  iVar3 = 0;
  for (iVar2 = *(int *)(lVar1 + 8); 1 < iVar2; iVar2 = iVar2 >> 1) {
    iVar3 = iVar3 + 1;
  }
  iVar2 = FUN_181392960(&local_28,iVar3);
  if (iVar2 != -1) {
    return *(undefined4 *)(lVar1 + (longlong)**(int **)(lVar1 + 0x20 + (longlong)iVar2 * 8) * 4);
  }
  return 0xffffff78;
}



############ FUN_ 1813925b0 size=185 ############

void FUN_1813925b0(longlong *param_1)

{
  byte *pbVar1;
  uint uVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  
  uVar4 = 0;
  *(undefined1 *)(*param_1 + 0x16) = 0;
  *(undefined1 *)(*param_1 + 0x17) = 0;
  *(undefined1 *)(*param_1 + 0x18) = 0;
  *(undefined1 *)(*param_1 + 0x19) = 0;
  uVar3 = uVar4;
  if (0 < (longlong)(int)param_1[1]) {
    uVar5 = uVar4;
    do {
      pbVar1 = (byte *)(*param_1 + uVar5);
      uVar5 = uVar5 + 1;
      uVar3 = (ulonglong)
              (*(uint *)(&DAT_18229f380 + ((ulonglong)*pbVar1 ^ uVar3 >> 0x18) * 4) ^
              (int)uVar3 << 8);
    } while ((longlong)uVar5 < (longlong)(int)param_1[1]);
  }
  uVar2 = (uint)uVar3;
  if (0 < (longlong)(int)param_1[3]) {
    do {
      pbVar1 = (byte *)(param_1[2] + uVar4);
      uVar4 = uVar4 + 1;
      uVar2 = *(uint *)(&DAT_18229f380 + ((ulonglong)*pbVar1 ^ uVar3 >> 0x18) * 4) ^ (int)uVar3 << 8
      ;
      uVar3 = (ulonglong)uVar2;
    } while ((longlong)uVar4 < (longlong)(int)param_1[3]);
  }
  *(char *)(*param_1 + 0x16) = (char)uVar2;
  *(char *)(*param_1 + 0x17) = (char)(uVar2 >> 8);
  *(char *)(*param_1 + 0x18) = (char)(uVar2 >> 0x10);
  *(char *)(*param_1 + 0x19) = (char)(uVar2 >> 0x18);
  return;
}



############ FUN_ 181387c70 size=790 ############

undefined8 FUN_181387c70(undefined8 param_1,undefined8 param_2,longlong param_3)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  longlong lVar4;
  void *pvVar5;
  int iVar6;
  int iVar7;
  longlong *plVar8;
  int *piVar9;
  
  iVar1 = FUN_181392960(param_2,8);
  iVar1 = iVar1 + 1;
  *(int *)(param_3 + 0x18) = iVar1;
  if (0 < iVar1) {
    iVar6 = 0;
    iVar7 = 0;
    if (0 < iVar1) {
      plVar8 = (longlong *)(param_3 + 0xb20);
      do {
        lVar4 = FUN_18138e520(param_2);
        *plVar8 = lVar4;
        if (lVar4 == 0) goto LAB_181387f5c;
        iVar7 = iVar7 + 1;
        plVar8 = plVar8 + 1;
      } while (iVar7 < *(int *)(param_3 + 0x18));
    }
    iVar1 = FUN_181392960(param_2,6);
    if (0 < iVar1 + 1) {
      iVar7 = 0;
      do {
        iVar2 = FUN_181392960(param_2,0x10);
        if (iVar2 != 0) goto LAB_181387f5c;
        iVar7 = iVar7 + 1;
      } while (iVar7 < iVar1 + 1);
      iVar1 = FUN_181392960(param_2,6);
      *(int *)(param_3 + 0x10) = iVar1 + 1;
      if (0 < iVar1 + 1) {
        iVar1 = 0;
        plVar8 = (longlong *)(param_3 + 0x620);
        piVar9 = (int *)(param_3 + 0x520);
        do {
          iVar7 = FUN_181392960(param_2,0x10);
          *piVar9 = iVar7;
          if ((iVar7 < 0) || (1 < iVar7)) goto LAB_181387f5c;
          lVar4 = (**(code **)((&PTR_DAT_1822f5a90)[iVar7] + 8))(param_1,param_2);
          *plVar8 = lVar4;
          if (lVar4 == 0) goto LAB_181387f5c;
          iVar1 = iVar1 + 1;
          piVar9 = piVar9 + 1;
          plVar8 = plVar8 + 1;
        } while (iVar1 < *(int *)(param_3 + 0x10));
        iVar1 = FUN_181392960(param_2,6);
        *(int *)(param_3 + 0x14) = iVar1 + 1;
        if (0 < iVar1 + 1) {
          iVar1 = 0;
          plVar8 = (longlong *)(param_3 + 0x920);
          piVar9 = (int *)(param_3 + 0x820);
          do {
            iVar7 = FUN_181392960(param_2,0x10);
            *piVar9 = iVar7;
            if ((iVar7 < 0) || (2 < iVar7)) goto LAB_181387f5c;
            lVar4 = (**(code **)((&PTR_DAT_182280c20)[iVar7] + 8))(param_1,param_2);
            *plVar8 = lVar4;
            if (lVar4 == 0) goto LAB_181387f5c;
            iVar1 = iVar1 + 1;
            piVar9 = piVar9 + 1;
            plVar8 = plVar8 + 1;
          } while (iVar1 < *(int *)(param_3 + 0x14));
          iVar1 = FUN_181392960(param_2,6);
          *(int *)(param_3 + 0xc) = iVar1 + 1;
          if (0 < iVar1 + 1) {
            iVar1 = 0;
            plVar8 = (longlong *)(param_3 + 800);
            piVar9 = (int *)(param_3 + 0x220);
            do {
              iVar7 = FUN_181392960(param_2,0x10);
              *piVar9 = iVar7;
              if ((iVar7 < 0) || (0 < iVar7)) goto LAB_181387f5c;
              lVar4 = (**(code **)((&PTR_PTR_1822fa9e8)[iVar7] + 8))(param_1,param_2);
              *plVar8 = lVar4;
              if (lVar4 == 0) goto LAB_181387f5c;
              iVar1 = iVar1 + 1;
              piVar9 = piVar9 + 1;
              plVar8 = plVar8 + 1;
            } while (iVar1 < *(int *)(param_3 + 0xc));
            iVar1 = FUN_181392960(param_2,6);
            *(int *)(param_3 + 8) = iVar1 + 1;
            if (0 < iVar1 + 1) {
              plVar8 = (longlong *)(param_3 + 0x20);
              do {
                pvVar5 = calloc(1,0x10);
                *plVar8 = (longlong)pvVar5;
                uVar3 = FUN_181392960(param_2,1);
                *(undefined4 *)*plVar8 = uVar3;
                uVar3 = FUN_181392960(param_2,0x10);
                *(undefined4 *)(*plVar8 + 4) = uVar3;
                uVar3 = FUN_181392960(param_2,0x10);
                *(undefined4 *)(*plVar8 + 8) = uVar3;
                uVar3 = FUN_181392960(param_2,8);
                *(undefined4 *)(*plVar8 + 0xc) = uVar3;
                lVar4 = *plVar8;
                if ((((0 < *(int *)(lVar4 + 4)) || (0 < *(int *)(lVar4 + 8))) ||
                    (*(int *)(param_3 + 0xc) <= *(int *)(lVar4 + 0xc))) ||
                   (*(int *)(lVar4 + 0xc) < 0)) goto LAB_181387f5c;
                iVar6 = iVar6 + 1;
                plVar8 = plVar8 + 1;
              } while (iVar6 < *(int *)(param_3 + 8));
              iVar1 = FUN_181392960(param_2,1);
              if (iVar1 == 1) {
                return 0;
              }
            }
          }
        }
      }
    }
  }
LAB_181387f5c:
  FUN_181388250(param_1);
  return 0xffffff7b;
}



############ FUN_ 1805208f0 size=249 ############

void FUN_1805208f0(longlong param_1,undefined8 param_2,longlong param_3,undefined8 param_4,
                  longlong param_5,undefined1 param_6)

{
  longlong lVar1;
  longlong lVar2;
  undefined8 in_stack_ffffffffffffffb8;
  undefined7 uVar3;
  
  if (param_3 < 0x21) {
    FUN_180520650();
    return;
  }
  lVar2 = param_3 >> 1;
  param_3 = param_3 - lVar2;
  lVar1 = param_1 + param_3 * 8;
  if (param_5 < param_3) {
    FUN_1805208f0(param_1,lVar1,param_3,param_4,param_5,param_6);
    FUN_1805208f0(lVar1,param_2,lVar2,param_4,param_5,param_6);
  }
  else {
    uVar3 = (undefined7)((ulonglong)in_stack_ffffffffffffffb8 >> 8);
    FUN_1805217c0();
    FUN_1805217c0(lVar1,param_2,lVar2,param_4,CONCAT71(uVar3,param_6));
  }
  FUN_1805218e0(param_1,lVar1,param_2,param_3,lVar2,param_4,param_5,param_6);
  return;
}



############ FUN_ 180520650 size=660 ############

longlong * FUN_180520650(longlong *param_1,longlong *param_2)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  int iVar4;
  int iVar5;
  longlong *plVar6;
  longlong *plVar7;
  int iVar8;
  longlong *plVar9;
  size_t _Size;
  longlong *plVar10;
  bool bVar11;
  bool bVar12;
  
  if (param_1 == param_2) {
    return param_2;
  }
  plVar10 = param_1 + 1;
  if (plVar10 == param_2) {
    return param_2;
  }
  _Size = (longlong)plVar10 - (longlong)param_1;
LAB_1805206a0:
  lVar2 = *plVar10;
  lVar3 = *param_1;
  plVar6 = *(longlong **)(lVar2 + 0x90);
  plVar7 = plVar6 + (longlong)*(int *)(lVar2 + 0x9c) * 3;
  for (; plVar6 != plVar7; plVar6 = plVar6 + 3) {
    if (*plVar6 == DAT_182673c28) {
      plVar6 = plVar6 + 1;
      if (plVar6 != (longlong *)0x0) goto LAB_1805206ee;
      break;
    }
  }
  plVar6 = (longlong *)FUN_181244160();
LAB_1805206ee:
  iVar4 = (**(code **)(*(longlong *)*plVar6 + 8))((longlong *)*plVar6,plVar6 + 1);
  plVar6 = *(longlong **)(lVar3 + 0x90);
  iVar8 = 0x3fffffff;
  if (0 < iVar4) {
    iVar8 = iVar4;
  }
  plVar7 = plVar6 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
  for (; plVar6 != plVar7; plVar6 = plVar6 + 3) {
    if (*plVar6 == DAT_182673c28) {
      plVar6 = plVar6 + 1;
      if (plVar6 != (longlong *)0x0) goto LAB_180520746;
      break;
    }
  }
  plVar6 = (longlong *)FUN_181244160();
LAB_180520746:
  iVar5 = (**(code **)(*(longlong *)*plVar6 + 8))((longlong *)*plVar6,plVar6 + 1);
  iVar4 = 0x3fffffff;
  if (0 < iVar5) {
    iVar4 = iVar5;
  }
  bVar12 = SBORROW4(iVar8,iVar4);
  bVar11 = iVar8 - iVar4 < 0;
  if (iVar8 == iVar4) {
    iVar4 = *(int *)(lVar2 + 0x24);
    iVar8 = *(int *)(lVar3 + 0x24);
    bVar12 = SBORROW4(iVar4,iVar8);
    bVar11 = iVar4 - iVar8 < 0;
    if (iVar4 == iVar8) {
      bVar12 = SBORROW4(*(int *)(lVar2 + 0x20),*(int *)(lVar3 + 0x20));
      bVar11 = *(int *)(lVar2 + 0x20) - *(int *)(lVar3 + 0x20) < 0;
    }
  }
  plVar6 = plVar10;
  if (bVar12 == bVar11) {
    do {
      plVar7 = *(longlong **)(lVar2 + 0x90);
      plVar9 = plVar6 + -1;
      lVar3 = *plVar9;
      plVar1 = plVar7 + (longlong)*(int *)(lVar2 + 0x9c) * 3;
      for (; plVar7 != plVar1; plVar7 = plVar7 + 3) {
        if (*plVar7 == DAT_182673c28) {
          plVar7 = plVar7 + 1;
          if (plVar7 != (longlong *)0x0) goto LAB_1805207ee;
          break;
        }
      }
      plVar7 = (longlong *)FUN_181244160();
LAB_1805207ee:
      iVar4 = (**(code **)(*(longlong *)*plVar7 + 8))((longlong *)*plVar7,plVar7 + 1);
      plVar7 = *(longlong **)(lVar3 + 0x90);
      iVar8 = 0x3fffffff;
      if (0 < iVar4) {
        iVar8 = iVar4;
      }
      plVar1 = plVar7 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
      for (; plVar7 != plVar1; plVar7 = plVar7 + 3) {
        if (*plVar7 == DAT_182673c28) {
          plVar7 = plVar7 + 1;
          if (plVar7 != (longlong *)0x0) goto LAB_180520846;
          break;
        }
      }
      plVar7 = (longlong *)FUN_181244160();
LAB_180520846:
      iVar5 = (**(code **)(*(longlong *)*plVar7 + 8))((longlong *)*plVar7,plVar7 + 1);
      iVar4 = 0x3fffffff;
      if (0 < iVar5) {
        iVar4 = iVar5;
      }
      bVar12 = SBORROW4(iVar8,iVar4);
      bVar11 = iVar8 - iVar4 < 0;
      if (iVar8 == iVar4) {
        iVar4 = *(int *)(lVar2 + 0x24);
        iVar8 = *(int *)(lVar3 + 0x24);
        bVar12 = SBORROW4(iVar4,iVar8);
        bVar11 = iVar4 - iVar8 < 0;
        if (iVar4 == iVar8) {
          bVar12 = SBORROW4(*(int *)(lVar2 + 0x20),*(int *)(lVar3 + 0x20));
          bVar11 = *(int *)(lVar2 + 0x20) - *(int *)(lVar3 + 0x20) < 0;
        }
      }
      if (bVar12 == bVar11) goto LAB_180520885;
      *plVar6 = *plVar9;
      plVar6 = plVar9;
    } while( true );
  }
  memmove((void *)((longlong)plVar10 + (8 - _Size)),param_1,_Size);
  *param_1 = lVar2;
  goto LAB_180520888;
LAB_180520885:
  *plVar6 = lVar2;
LAB_180520888:
  plVar10 = plVar10 + 1;
  _Size = _Size + 8;
  if (plVar10 == param_2) {
    return param_2;
  }
  goto LAB_1805206a0;
}



############ FUN_ 18133cce0 size=927 ############

void FUN_18133cce0(longlong *param_1,longlong *param_2)

{
  double dVar1;
  double dVar2;
  longlong lVar3;
  undefined1 auVar4 [16];
  undefined8 *_Memory;
  undefined8 *puVar5;
  longlong *plVar6;
  uint uVar7;
  uint uVar8;
  undefined8 *puVar9;
  int iVar10;
  longlong *plVar11;
  undefined8 *puVar12;
  double dVar13;
  double dVar14;
  double dVar15;
  double dVar16;
  double local_f0;
  double dStack_e8;
  
  lVar3 = *param_1;
  dVar15 = (double)*(int *)(lVar3 + 0x10);
  dVar16 = (double)*(int *)(lVar3 + 0xc);
  dVar13 = (double)*(int *)(lVar3 + 8);
  dVar14 = (double)*(int *)(lVar3 + 4);
  dVar1 = *(double *)(lVar3 + 0x30);
  if ((char)param_1[1] != '\0') {
    auVar4._8_4_ = SUB84(dVar13 / dVar1,0);
    auVar4._0_8_ = dVar14 / dVar1;
    auVar4._12_4_ = (int)((ulonglong)(dVar13 / dVar1) >> 0x20);
    *(undefined1 (*) [16])(param_1 + 3) = auVar4;
    param_1[5] = (longlong)(dVar16 / dVar1);
    param_1[6] = (longlong)(dVar15 / dVar1);
    param_1[2] = (longlong)param_1;
    goto LAB_18133ceb0;
  }
  plVar11 = (longlong *)param_1[2];
  lVar3 = *plVar11;
  dVar2 = *(double *)(lVar3 + 0x30);
  local_f0 = 0.0;
  dStack_e8 = 0.0;
  if (dVar14 + dVar16 == (double)*(int *)(lVar3 + 4)) {
    local_f0 = (double)plVar11[3] - dVar16 / dVar1;
    dStack_e8 = dVar13 / dVar2;
  }
  else if (dVar14 == (double)*(int *)(lVar3 + 4) + (double)*(int *)(lVar3 + 0xc)) {
    local_f0 = (double)plVar11[3] + (double)plVar11[5];
    dStack_e8 = dVar13 / dVar2;
  }
  else {
    if (dVar13 + dVar15 == (double)*(int *)(lVar3 + 8)) {
      dStack_e8 = (double)plVar11[4] - dVar15 / dVar1;
    }
    else {
      if (dVar13 != (double)*(int *)(lVar3 + 8) + (double)*(int *)(lVar3 + 0x10))
      goto LAB_18133ce62;
      dStack_e8 = (double)plVar11[4] + (double)plVar11[6];
    }
    local_f0 = dVar14 / dVar2;
  }
LAB_18133ce62:
  param_1[3] = (longlong)local_f0;
  param_1[4] = (longlong)dStack_e8;
  param_1[5] = (longlong)(dVar16 / dVar1);
  param_1[6] = (longlong)(dVar15 / dVar1);
LAB_18133ceb0:
  puVar12 = (undefined8 *)0x0;
  iVar10 = 0;
  plVar11 = (longlong *)*param_2;
  plVar6 = plVar11 + (longlong)*(int *)((longlong)param_2 + 0xc) * 7;
  puVar5 = puVar12;
  _Memory = puVar12;
  puVar9 = puVar12;
  do {
    if (plVar11 == plVar6) {
      puVar5 = (undefined8 *)
               ((ulonglong)((longlong)(_Memory + iVar10) + (7 - (longlong)_Memory)) >> 3);
      if (_Memory + iVar10 < _Memory) {
        puVar5 = puVar12;
      }
      puVar9 = _Memory;
      if (puVar5 != (undefined8 *)0x0) {
        do {
          FUN_18133cce0(*puVar9,param_2);
          puVar12 = (undefined8 *)((longlong)puVar12 + 1);
          puVar9 = puVar9 + 1;
        } while (puVar12 != puVar5);
      }
                    /* WARNING: Could not recover jumptable at 0x00018133d07b. Too many branches */
                    /* WARNING: Subroutine does not return */
                    /* WARNING: Treating indirect jump as call */
      free(_Memory);
      return;
    }
    if (plVar11[2] == 0) {
      lVar3 = *plVar11;
      if (((((double)*(int *)(lVar3 + 4) == dVar14 + dVar16) ||
           ((double)*(int *)(lVar3 + 0xc) + (double)*(int *)(lVar3 + 4) == dVar14)) ||
          ((double)*(int *)(lVar3 + 8) == dVar13 + dVar15)) ||
         ((double)*(int *)(lVar3 + 8) + (double)*(int *)(lVar3 + 0x10) == dVar13)) {
        plVar11[2] = (longlong)param_1;
        iVar10 = (int)puVar9;
        uVar7 = iVar10 + 1;
        if ((int)(uint)puVar5 < (int)uVar7) {
          uVar8 = uVar7;
          if ((int)uVar7 < 0) {
            uVar8 = iVar10 + 2;
          }
          uVar8 = iVar10 + 9 + ((int)uVar8 >> 1) & 0xfffffff8;
          if ((uint)puVar5 != uVar8) {
            if ((int)uVar8 < 1) {
                    /* WARNING: Subroutine does not return */
              free(_Memory);
            }
            if (_Memory == (undefined8 *)0x0) {
              _Memory = malloc((longlong)(int)uVar8 * 8);
            }
            else {
              _Memory = realloc(_Memory,(longlong)(int)uVar8 * 8);
            }
          }
          puVar5 = (undefined8 *)(ulonglong)uVar8;
        }
        puVar9 = (undefined8 *)(ulonglong)uVar7;
        _Memory[iVar10] = plVar11;
      }
    }
    iVar10 = (int)puVar9;
    plVar11 = plVar11 + 7;
  } while( true );
}



############ FUN_ 18133d580 size=367 ############

int * FUN_18133d580(undefined8 param_1,int *param_2,int *param_3,longlong param_4)

{
  float fVar1;
  double dVar2;
  double dVar3;
  longlong lVar4;
  double dVar5;
  double dVar6;
  int local_res10;
  int iStackX_14;
  int local_res18;
  int local_res20;
  undefined8 local_58;
  int iStack_50;
  int iStack_4c;
  undefined8 local_48;
  
  local_48 = 0xfffffffffffffffe;
  if (param_4 == 0) {
    local_58 = *(undefined8 *)param_3;
    iStack_50 = param_3[2];
    iStack_4c = param_3[3];
    param_4 = FUN_18133d8f0(*param_3,&local_58,1);
  }
  lVar4 = FUN_18134b820();
  fVar1 = *(float *)(lVar4 + 0xc0);
  iStackX_14 = (int)((ulonglong)*(undefined8 *)(param_4 + 4) >> 0x20);
  dVar6 = *(double *)(param_4 + 0x30) / (double)fVar1;
  dVar2 = (double)(float)((double)((float)param_3[1] - (float)*(int *)(param_4 + 0x28)) / dVar6) +
          DAT_1824c4520;
  dVar5 = (double)(float)((double)param_3[2] / dVar6) + DAT_1824c4520;
  dVar3 = (double)(float)((double)param_3[3] / dVar6) + DAT_1824c4520;
  local_res10 = SUB84((double)(float)((double)((float)*param_3 - (float)*(int *)(param_4 + 0x24)) /
                                     dVar6) + DAT_1824c4520,0);
  *param_2 = (int)((float)(int)*(undefined8 *)(param_4 + 4) * fVar1) + local_res10;
  local_res18 = SUB84(dVar2,0);
  param_2[1] = local_res18 + (int)((float)iStackX_14 * fVar1);
  local_res20 = SUB84(dVar5,0);
  param_2[2] = local_res20;
  local_58._0_4_ = SUB84(dVar3,0);
  param_2[3] = (int)local_58;
  return param_2;
}



############ FUN_ 18133d410 size=351 ############

int * FUN_18133d410(undefined8 param_1,int *param_2,int *param_3,longlong param_4)

{
  float fVar1;
  undefined8 uVar2;
  double dVar3;
  double dVar4;
  longlong lVar5;
  double dVar6;
  double dVar7;
  int local_res10;
  int iStackX_14;
  int local_res18;
  int local_res20;
  undefined8 local_58;
  int iStack_50;
  int iStack_4c;
  undefined8 local_48;
  
  local_48 = 0xfffffffffffffffe;
  if (param_4 == 0) {
    local_58 = *(undefined8 *)param_3;
    iStack_50 = param_3[2];
    iStack_4c = param_3[3];
    param_4 = FUN_18133d8f0(*param_3,&local_58,0);
  }
  lVar5 = FUN_18134b820();
  fVar1 = *(float *)(lVar5 + 0xc0);
  iStackX_14 = (int)((ulonglong)*(undefined8 *)(param_4 + 4) >> 0x20);
  dVar7 = *(double *)(param_4 + 0x30) / (double)fVar1;
  dVar3 = (double)(float)((double)((float)param_3[1] - (float)iStackX_14 * fVar1) * dVar7) +
          DAT_1824c4520;
  dVar6 = (double)(float)((double)param_3[2] * dVar7) + DAT_1824c4520;
  dVar4 = (double)(float)((double)param_3[3] * dVar7) + DAT_1824c4520;
  uVar2 = *(undefined8 *)(param_4 + 0x24);
  local_res10 = SUB84((double)(float)((double)((float)*param_3 -
                                              (float)(int)*(undefined8 *)(param_4 + 4) * fVar1) *
                                     dVar7) + DAT_1824c4520,0);
  *param_2 = local_res10 + (int)uVar2;
  local_res18 = SUB84(dVar3,0);
  param_2[1] = (int)((ulonglong)uVar2 >> 0x20) + local_res18;
  local_res20 = SUB84(dVar6,0);
  param_2[2] = local_res20;
  local_58._0_4_ = SUB84(dVar4,0);
  param_2[3] = (int)local_58;
  return param_2;
}



############ FUN_ 18129deb0 size=113 ############

void FUN_18129deb0(float param_1,float param_2,float param_3)

{
  longlong in_RCX;
  
  if (*(int *)(in_RCX + 0xc) == 0) {
    *(float *)(in_RCX + 0x14) = param_2;
    *(float *)(in_RCX + 0x10) = param_2;
    *(float *)(in_RCX + 0x18) = param_3;
  }
  else {
    if (*(float *)(in_RCX + 0x10) <= param_2) {
      if (*(float *)(in_RCX + 0x14) <= param_2 && param_2 != *(float *)(in_RCX + 0x14)) {
        *(float *)(in_RCX + 0x14) = param_2;
      }
    }
    else {
      *(float *)(in_RCX + 0x10) = param_2;
    }
    param_1 = *(float *)(in_RCX + 0x18);
    if (param_3 < param_1) {
      *(float *)(in_RCX + 0x18) = param_3;
      FUN_1804b02a0(param_1,&DAT_1821df344,param_2,param_3);
      return;
    }
    if (param_3 < *(float *)(in_RCX + 0x1c) || param_3 == *(float *)(in_RCX + 0x1c))
    goto LAB_18129df0f;
  }
  *(float *)(in_RCX + 0x1c) = param_3;
LAB_18129df0f:
  FUN_1804b02a0(param_1,&DAT_1821df344,param_2,param_3);
  return;
}



############ FUN_ 1812989f0 size=807 ############

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

void FUN_1812989f0(undefined8 param_1,int param_2,float param_3,float param_4,float param_5,
                  float param_6,float param_7,float param_8,float param_9,float param_10,
                  float param_11,float param_12,float param_13,float param_14)

{
  char cVar1;
  float _X;
  float fVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  undefined4 extraout_XMM0_Db;
  undefined4 extraout_XMM0_Db_00;
  float local_res10 [6];
  float local_a8;
  float local_a4 [39];
  
  if (((param_2 != 2) && ((param_9 != param_11 || (param_10 != param_12)))) &&
     ((param_5 != param_7 || (param_6 != param_8)))) {
    cVar1 = FUN_181298d20(param_5,param_6,param_7,param_8,param_9,param_10,param_11,param_12,
                          &local_a8,local_res10,local_a4);
    if (cVar1 != '\0') goto LAB_181298b2a;
    if (param_2 != 0) {
      _X = atan2f(param_7 - param_13,param_8 - param_14);
      fVar2 = atan2f(param_9 - param_13,param_10 - param_14);
      FUN_18129ddd0(param_1,param_7,param_8);
      fVar3 = DAT_1824c4658;
      fVar5 = DAT_1824c3cb8;
      if ((float)(double)CONCAT44((uint)((ulonglong)(double)(_X - fVar2) >> 0x20) &
                                  DAT_1824c4f10._4_4_,
                                  SUB84((double)(_X - fVar2),0) & (uint)DAT_1824c4f10) <=
          DAT_1824c3cb8) goto LAB_181298ce7;
      if (_X + DAT_1824c42e0 < fVar2) {
LAB_181298c84:
        if (_X < fVar2) {
          fVar2 = fVar2 + _DAT_1824c4700;
        }
        while (_X = _X + fVar3, fVar2 < _X) {
          fVar5 = cosf(_X);
          fVar4 = sinf(_X);
          FUN_18129ddd0(param_1,fVar4 * param_4 + param_13,
                        CONCAT44(extraout_XMM0_Db_00,fVar5 * param_4 + param_14));
        }
      }
      else {
        if (fVar2 < _X) {
          if (_X - DAT_1824c42e0 <= fVar2) goto LAB_181298c84;
          if (fVar2 < _X) {
            _X = _X + _DAT_1824c4700;
          }
        }
        while (_X = _X + fVar5, _X < fVar2) {
          fVar3 = cosf(_X);
          fVar4 = sinf(_X);
          FUN_18129ddd0(param_1,fVar4 * param_4 + param_13,
                        CONCAT44(extraout_XMM0_Db,fVar3 * param_4 + param_14));
        }
      }
LAB_181298ce7:
      FUN_18129ddd0(param_1,param_9,param_10);
      return;
    }
    if ((local_a4[0] < param_3) && (0.0 < local_a4[0])) goto LAB_181298b2a;
  }
  FUN_18129ddd0(param_1,param_7,param_8);
  local_a8 = param_9;
  local_res10[0] = param_10;
LAB_181298b2a:
  FUN_18129ddd0(param_1,local_a8,local_res10[0]);
  return;
}



############ FUN_ 181298750 size=657 ############

void FUN_181298750(undefined8 param_1,int param_2,float param_3,float param_4,float param_5,
                  float param_6,float param_7)

{
  float fVar1;
  float fVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  float fVar7;
  float fVar8;
  
  if (param_2 == 0) {
    FUN_18129ddd0(param_1,param_5,param_6);
  }
  else {
    fVar3 = _hypotf(param_5 - param_3,param_6 - param_4);
    fVar2 = DAT_1824c3da8;
    fVar1 = DAT_1824c3d80;
    fVar4 = param_4;
    fVar5 = param_3;
    fVar8 = param_3;
    fVar6 = param_4;
    if (fVar3 != 0.0) {
      fVar8 = (param_6 - param_4) * (param_7 / fVar3);
      fVar6 = (param_5 - param_3) * (param_7 / fVar3);
      fVar4 = param_4 - fVar6;
      fVar5 = fVar8 + param_3;
      fVar8 = fVar8 + param_5;
      fVar6 = param_6 - fVar6;
    }
    if (param_2 == 1) {
      FUN_18129ddd0(param_1,fVar5);
      FUN_18129ddd0(param_1,fVar8,fVar6);
      FUN_18129ddd0(param_1,param_5,param_6);
    }
    else {
      fVar3 = (fVar6 + fVar4) * DAT_1824c3d8c;
      fVar7 = (fVar8 + fVar5) * DAT_1824c3d8c;
      FUN_18129daf0(param_1,(fVar5 - param_3) * DAT_1824c3da8 + param_3,
                    (fVar4 - param_4) * DAT_1824c3da8 + param_4,
                    (fVar7 - fVar5) * DAT_1824c3d80 + fVar5,(fVar3 - fVar4) * DAT_1824c3d80 + fVar4,
                    fVar7,fVar3);
      FUN_18129daf0(param_1,(fVar8 - fVar7) * fVar2 + fVar7,(fVar6 - fVar3) * fVar2 + fVar3,
                    (param_5 - fVar8) * fVar1 + fVar8,(param_6 - fVar6) * fVar1 + fVar6,param_5,
                    param_6);
    }
  }
  return;
}



############ FUN_ 181315c30 size=119 ############

void FUN_181315c30(longlong param_1,int param_2,undefined4 param_3)

{
  longlong lVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int local_res8;
  undefined4 local_resc;
  
  iVar5 = *(int *)(param_1 + 0xf4);
  iVar4 = 0;
  if (0 < iVar5) {
    lVar1 = *(longlong *)(param_1 + 0xe8);
    do {
      if (param_2 == *(int *)(lVar1 + (longlong)iVar4 * 8)) {
        if (-1 < iVar4) {
          *(undefined4 *)(lVar1 + 4 + (longlong)iVar4 * 8) = param_3;
          return;
        }
        break;
      }
      iVar3 = (iVar5 + iVar4) / 2;
      if (iVar3 == iVar4) break;
      iVar2 = iVar3;
      if (param_2 < *(int *)(lVar1 + (longlong)iVar3 * 8)) {
        iVar2 = iVar4;
        iVar5 = iVar3;
      }
      iVar4 = iVar2;
    } while (iVar4 < iVar5);
  }
  local_res8 = param_2;
  local_resc = param_3;
  FUN_18051aa90((longlong *)(param_1 + 0xe8),&local_res8);
  return;
}



############ FUN_ 1812a24b0 size=228 ############

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

undefined8 FUN_1812a24b0(byte *param_1,undefined8 param_2,float param_3)

{
  undefined4 uVar1;
  undefined1 uVar2;
  float fVar3;
  undefined4 local_res18;
  
  fVar3 = sqrtf(((float)param_1[1] / DAT_1824c4548) * ((float)param_1[1] / DAT_1824c4548) *
                _DAT_1824c3dec +
                ((float)param_1[2] / DAT_1824c4548) * ((float)param_1[2] / DAT_1824c4548) *
                _DAT_1824c3d2c +
                ((float)*param_1 / DAT_1824c4548) * ((float)*param_1 / DAT_1824c4548) *
                _DAT_1824c3ca0);
  uVar1 = DAT_18262b598;
  if (DAT_1824c3d8c <= fVar3) {
    uVar1 = DAT_18262b59c;
  }
  if (0.0 < param_3) {
    if (param_3 < DAT_1824c3ea4) {
      uVar2 = (undefined1)(int)(param_3 * DAT_1824c454c);
    }
    else {
      uVar2 = 0xff;
    }
  }
  else {
    uVar2 = 0;
  }
  local_res18 = CONCAT13(uVar2,(int3)uVar1);
  FUN_1812a2c30(param_1,param_2,local_res18);
  return param_2;
}



############ FUN_ 1812a2a20 size=521 ############

uint * FUN_1812a2a20(uint *param_1,uint *param_2,uint param_3,float param_4)

{
  byte bVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  undefined1 uVar5;
  undefined1 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 local_res20;
  
  if (param_4 <= 0.0) {
    *param_2 = *param_1;
    return param_2;
  }
  if (DAT_1824c3ea4 <= param_4) {
    *param_2 = param_3;
    return param_2;
  }
  uVar8 = *param_1;
  uVar4 = uVar8 >> 0x18;
  if (uVar4 < 0xff) {
    bVar1 = (byte)(uVar8 >> 0x18);
    if (uVar8 >> 0x18 == 0) {
      local_res20._0_3_ = CONCAT12(bVar1,(ushort)bVar1);
    }
    else {
      local_res20._0_2_ =
           CONCAT11((char)((uVar8 >> 8 & 0xff) * uVar4 + 0x7f >> 8),
                    (char)((uVar8 & 0xff) * uVar4 + 0x7f >> 8));
      local_res20._0_3_ =
           CONCAT12((char)((uVar8 >> 0x10 & 0xff) * uVar4 + 0x7f >> 8),(undefined2)local_res20);
    }
    local_res20 = CONCAT13(bVar1,(undefined3)local_res20);
    uVar8 = local_res20;
  }
  uVar4 = param_3 >> 0x18;
  if (uVar4 < 0xff) {
    bVar1 = (byte)(param_3 >> 0x18);
    if (param_3 >> 0x18 == 0) {
      local_res20._0_3_ = CONCAT12(bVar1,(ushort)bVar1);
    }
    else {
      local_res20._0_2_ =
           CONCAT11((char)((param_3 >> 8 & 0xff) * uVar4 + 0x7f >> 8),
                    (char)((param_3 & 0xff) * uVar4 + 0x7f >> 8));
      local_res20._0_3_ =
           CONCAT12((char)((param_3 >> 0x10 & 0xff) * uVar4 + 0x7f >> 8),(undefined2)local_res20);
    }
    local_res20 = CONCAT13(bVar1,(undefined3)local_res20);
    param_3 = local_res20;
  }
  uVar4 = uVar8 >> 8 & 0xff00ff;
  iVar2 = SUB84((double)(param_4 * DAT_1824c4548) + DAT_1824c4520,0);
  uVar7 = (((param_3 >> 8 & 0xff00ff) - uVar4) * iVar2 & 0xffffff00) + uVar4 * 0x100;
  uVar4 = ((((param_3 >> 8 & 0xffff00ff) - uVar4) * iVar2 & 0xffffff00) + uVar4 * 0x100 ^
          (((param_3 & 0xff00ff) - (uVar8 & 0xff00ff)) * iVar2 >> 8) + (uVar8 & 0xff00ff)) &
          0xff00ff ^ uVar7;
  uVar8 = uVar7 >> 0x18;
  local_res20 = uVar4;
  if (uVar8 < 0xff) {
    local_res20._3_1_ = (byte)(uVar7 >> 0x18);
    if (uVar7 >> 0x18 == 0) {
      local_res20._0_3_ = CONCAT12(local_res20._3_1_,(ushort)local_res20._3_1_);
      *param_2 = local_res20;
      return param_2;
    }
    uVar3 = ((uVar4 & 0xff) * 0xff) / uVar8;
    uVar5 = 0xff;
    if (uVar3 < 0xff) {
      uVar5 = (char)uVar3;
    }
    uVar7 = ((uVar7 >> 8 & 0xff) * 0xff) / uVar8;
    uVar6 = 0xff;
    if (uVar7 < 0xff) {
      uVar6 = (char)uVar7;
    }
    local_res20._0_2_ = CONCAT11(uVar6,uVar5);
    uVar8 = ((uVar4 >> 0x10 & 0xff) * 0xff) / uVar8;
    uVar5 = 0xff;
    if (uVar8 < 0xff) {
      uVar5 = (char)uVar8;
    }
    local_res20._0_3_ = CONCAT12(uVar5,(undefined2)local_res20);
  }
  *param_2 = local_res20;
  return param_2;
}



############ FUN_ 181315290 size=668 ############

undefined8 * FUN_181315290(undefined8 *param_1)

{
  longlong *plVar1;
  longlong lVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  int local_res10;
  int local_res14;
  
  plVar1 = param_1 + 0x1d;
  *plVar1 = 0;
  piVar4 = &DAT_1824a2de0;
  param_1[0x1e] = 0;
  param_1[0x1f] = &DAT_1821dbf98;
  param_1[0x20] = &DAT_1821dbf98;
  param_1[0x21] = &DAT_1821dbf98;
  param_1[0x22] = 0;
  DAT_1826736c8 = FUN_1813160e0;
  *(undefined1 *)(param_1 + 0x23) = 0;
  param_1[0x24] = 0;
  *param_1 = juce::LookAndFeel_V2::vftable;
  param_1[1] = juce::LookAndFeel_V2::vftable;
  param_1[2] = juce::LookAndFeel_V2::vftable;
  param_1[3] = juce::LookAndFeel_V2::vftable;
  param_1[4] = juce::LookAndFeel_V2::vftable;
  param_1[5] = juce::LookAndFeel_V2::vftable;
  param_1[6] = juce::LookAndFeel_V2::vftable;
  param_1[7] = juce::LookAndFeel_V2::vftable;
  param_1[8] = juce::LookAndFeel_V2::vftable;
  param_1[9] = juce::LookAndFeel_V2::vftable;
  param_1[10] = juce::LookAndFeel_V2::vftable;
  param_1[0xb] = juce::LookAndFeel_V2::vftable;
  param_1[0xc] = juce::LookAndFeel_V2::vftable;
  param_1[0xd] = juce::LookAndFeel_V2::vftable;
  param_1[0xe] = juce::LookAndFeel_V2::vftable;
  param_1[0xf] = juce::LookAndFeel_V2::vftable;
  param_1[0x10] = juce::LookAndFeel_V2::vftable;
  param_1[0x11] = juce::LookAndFeel_V2::vftable;
  param_1[0x12] = juce::LookAndFeel_V2::vftable;
  param_1[0x13] = juce::LookAndFeel_V2::vftable;
  param_1[0x14] = juce::LookAndFeel_V2::vftable;
  param_1[0x15] = juce::LookAndFeel_V2::vftable;
  param_1[0x16] = juce::LookAndFeel_V2::vftable;
  param_1[0x17] = juce::LookAndFeel_V2::vftable;
  param_1[0x18] = juce::LookAndFeel_V2::vftable;
  param_1[0x19] = juce::LookAndFeel_V2::vftable;
  param_1[0x1a] = juce::LookAndFeel_V2::vftable;
  param_1[0x1b] = juce::LookAndFeel_V2::vftable;
  param_1[0x1c] = juce::LookAndFeel_V2::vftable;
  param_1[0x25] = 0;
  param_1[0x26] = 0;
  do {
    local_res14 = piVar4[1];
    iVar6 = *(int *)((longlong)param_1 + 0xf4);
    local_res10 = *piVar4;
    if (0 < iVar6) {
      lVar2 = *plVar1;
      iVar5 = 0;
      do {
        if (local_res10 == *(int *)(lVar2 + (longlong)iVar5 * 8)) {
          if (-1 < iVar5) {
            *(int *)(lVar2 + 4 + (longlong)iVar5 * 8) = local_res14;
            goto LAB_1813154fa;
          }
          break;
        }
        iVar3 = (iVar6 + iVar5) / 2;
        if (iVar3 == iVar5) break;
        if (local_res10 < *(int *)(lVar2 + (longlong)iVar3 * 8)) {
          iVar6 = iVar3;
          iVar3 = iVar5;
        }
        iVar5 = iVar3;
      } while (iVar5 < iVar6);
    }
    FUN_18051aa90(plVar1,&local_res10);
LAB_1813154fa:
    piVar4 = piVar4 + 2;
    if (0x1824a31bf < (longlong)piVar4) {
      return param_1;
    }
  } while( true );
}



############ FUN_ 181232d30 size=210 ############

longlong * FUN_181232d30(longlong *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  longlong lVar2;
  uint uVar3;
  char *pcVar4;
  uint *_Memory;
  longlong lVar5;
  char *local_res8 [4];
  
  pcVar4 = (char *)*param_1;
  if (*pcVar4 == '\0') {
    if ((*(uint *)(*param_2 + -0x10) & 0x30000000) == 0) {
      LOCK();
      piVar1 = (int *)(*param_2 + -0x10);
      *piVar1 = *piVar1 + 1;
      UNLOCK();
    }
    LOCK();
    lVar2 = *param_1;
    *param_1 = *param_2;
    UNLOCK();
    _Memory = (uint *)(lVar2 + -0x10);
    uVar3 = *_Memory;
  }
  else {
    if (param_1 != param_2) {
      lVar2 = *param_2;
      lVar5 = -1;
      do {
        lVar5 = lVar5 + 1;
      } while (*(char *)(lVar2 + lVar5) != '\0');
      FUN_181232e20(param_1,lVar2,lVar5 + lVar2,param_4,0xfffffffffffffffe);
      return param_1;
    }
    if ((*(uint *)(pcVar4 + -0x10) & 0x30000000) == 0) {
      LOCK();
      *(int *)(pcVar4 + -0x10) = *(int *)(pcVar4 + -0x10) + 1;
      UNLOCK();
    }
    local_res8[0] = pcVar4;
    param_1 = (longlong *)FUN_181232d30(param_1,local_res8);
    _Memory = (uint *)(local_res8[0] + -0x10);
    uVar3 = *_Memory;
  }
  if ((uVar3 & 0x30000000) == 0) {
    LOCK();
    uVar3 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  return param_1;
}



############ FUN_ 18051bbd0 size=238 ############

int * FUN_18051bbd0(double *param_1,int *param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  double dVar5;
  double dVar6;
  double dVar7;
  
  dVar6 = DAT_1824c4460;
  iVar1 = 0x7fffffff;
  dVar7 = param_1[1];
  if (DAT_1824c4460 <= dVar7 + param_1[3]) {
    iVar2 = 0x7fffffff;
  }
  else {
    dVar5 = ceil(dVar7 + param_1[3]);
    iVar2 = (int)dVar5;
  }
  dVar5 = *param_1;
  if (dVar5 + param_1[2] < dVar6) {
    dVar6 = ceil(dVar5 + param_1[2]);
    iVar1 = (int)dVar6;
  }
  dVar6 = DAT_1824c4738;
  iVar3 = -0x80000000;
  if (dVar7 <= DAT_1824c4738) {
    iVar4 = -0x80000000;
  }
  else {
    dVar7 = floor(dVar7);
    iVar4 = (int)dVar7;
  }
  if (dVar6 < dVar5) {
    dVar7 = floor(dVar5);
    iVar3 = (int)dVar7;
  }
  *param_2 = iVar3;
  param_2[1] = iVar4;
  param_2[3] = iVar2 - iVar4;
  param_2[2] = iVar1 - iVar3;
  return param_2;
}



############ FUN_ 18123ad30 size=488 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18123ad30(ulonglong *param_1)

{
  DWORD DVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  undefined1 auStack_48 [32];
  LARGE_INTEGER local_28;
  longlong local_20;
  ushort local_18;
  ulonglong local_10;
  
  local_10 = DAT_182615970 ^ (ulonglong)auStack_48;
  uVar2 = *param_1 * 0x5deece66d + 0xb & 0xffffffffffff;
  uVar3 = uVar2 * 0x5deece66d + 0xb & 0xffffffffffff;
  *param_1 = ((longlong)uVar3 >> 0x10 | ((longlong)uVar2 >> 0x10) << 0x20) ^ uVar3 ^
             (ulonglong)param_1 ^ DAT_18267af30;
  DVar1 = timeGetTime();
  if (DVar1 < DAT_1826737fc) {
    if (DVar1 < DAT_1826737fc - 1000) {
      LOCK();
      UNLOCK();
      DAT_1826737fc = DVar1;
    }
  }
  else {
    LOCK();
    UNLOCK();
    DAT_1826737fc = DVar1;
  }
  uVar2 = *param_1 * 0x5deece66d + 0xb & 0xffffffffffff;
  uVar3 = uVar2 * 0x5deece66d + 0xb & 0xffffffffffff;
  *param_1 = ((longlong)uVar3 >> 0x10 | ((longlong)uVar2 >> 0x10) << 0x20) ^ (ulonglong)DVar1 ^
             uVar3;
  QueryPerformanceCounter(&local_28);
  uVar2 = *param_1 * 0x5deece66d + 0xb & 0xffffffffffff;
  uVar3 = uVar2 * 0x5deece66d + 0xb & 0xffffffffffff;
  uVar2 = ((longlong)uVar3 >> 0x10 | ((longlong)uVar2 >> 0x10) << 0x20) ^ uVar3 ^
          local_28.QuadPart + DAT_182673a10;
  *param_1 = uVar2;
  uVar2 = uVar2 * 0x5deece66d + 0xb & 0xffffffffffff;
  uVar3 = uVar2 * 0x5deece66d + 0xb & 0xffffffffffff;
  *param_1 = ((longlong)uVar3 >> 0x10 | ((longlong)uVar2 >> 0x10) << 0x20) ^ uVar3 ^ DAT_182673a08;
  _ftime64_s(&local_20);
  uVar3 = *param_1 * 0x5deece66d + 0xb & 0xffffffffffff;
  uVar2 = uVar3 * 0x5deece66d + 0xb & 0xffffffffffff;
  uVar2 = ((longlong)uVar2 >> 0x10 | ((longlong)uVar3 >> 0x10) << 0x20) ^
          local_20 * 1000 + (ulonglong)local_18 ^ uVar2;
  *param_1 = uVar2;
  LOCK();
  DAT_18267af30 = DAT_18267af30 ^ uVar2;
  UNLOCK();
}



############ FUN_ 1812c8590 size=365 ############

void FUN_1812c8590(longlong param_1)

{
  int *piVar1;
  void *_Dst;
  longlong *plVar2;
  int iVar3;
  longlong lVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  undefined8 *puVar7;
  longlong *plVar8;
  int iVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  longlong *plVar12;
  undefined8 *local_res8;
  undefined8 local_res10;
  
  uVar11 = 0;
  uVar5 = uVar11;
  if (*(longlong *)(param_1 + 0x38) != 0) {
    uVar5 = *(ulonglong *)(*(longlong *)(param_1 + 0x38) + 0x10);
  }
  if (uVar5 != 0) {
    iVar3 = *(int *)(uVar5 + 0x8c);
    lVar4 = *(longlong *)(uVar5 + 0x80);
    uVar6 = uVar11;
    uVar10 = uVar11;
    if (0 < iVar3) {
      do {
        iVar9 = (int)uVar10;
        if (param_1 == *(longlong *)(lVar4 + uVar6 * 8)) {
          _Dst = (void *)(lVar4 + (longlong)iVar9 * 8);
          memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)((iVar3 - iVar9) + -1) << 3);
          *(int *)(uVar5 + 0x8c) = *(int *)(uVar5 + 0x8c) + -1;
          iVar3 = *(int *)(uVar5 + 0x8c);
          iVar9 = 0;
          if (0 < iVar3 * 2) {
            iVar9 = iVar3 * 2;
          }
          if (iVar9 < *(int *)(uVar5 + 0x88)) {
            if (iVar3 < 8) {
              iVar3 = 8;
            }
            if (iVar3 < *(int *)(uVar5 + 0x88)) {
              FUN_18047cb30((longlong *)(uVar5 + 0x80));
            }
          }
          break;
        }
        uVar10 = (ulonglong)(iVar9 + 1);
        uVar6 = uVar6 + 1;
      } while ((longlong)uVar6 < (longlong)iVar3);
    }
  }
  uVar5 = uVar11;
  if (*(longlong *)(param_1 + 8) != 0) {
    uVar5 = *(ulonglong *)(*(longlong *)(param_1 + 8) + 0x18);
  }
  puVar7 = (undefined8 *)FUN_1804de690(&local_res8,uVar5);
  local_res10 = *(undefined8 *)(param_1 + 0x38);
  *(undefined8 *)(param_1 + 0x38) = *puVar7;
  *puVar7 = local_res10;
  if (local_res8 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(local_res8 + 1);
    iVar3 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar3 == 1) {
      (**(code **)*local_res8)(local_res8,1);
    }
  }
  if (*(longlong *)(param_1 + 0x38) != 0) {
    uVar11 = *(ulonglong *)(*(longlong *)(param_1 + 0x38) + 0x10);
  }
  if (uVar11 != 0) {
    plVar12 = (longlong *)(uVar11 + 0x80);
    plVar8 = (longlong *)*plVar12;
    iVar3 = *(int *)(uVar11 + 0x8c);
    plVar2 = plVar8 + iVar3;
    for (; plVar8 != plVar2; plVar8 = plVar8 + 1) {
      if (param_1 == *plVar8) {
        return;
      }
    }
    if (*(int *)(uVar11 + 0x88) < iVar3 + 1) {
      FUN_18047cb30(plVar12,iVar3 + 9 + (iVar3 + 1) / 2 & 0xfffffff8);
    }
    iVar3 = *(int *)(uVar11 + 0x8c);
    *(int *)(uVar11 + 0x8c) = iVar3 + 1;
    *(longlong *)(*plVar12 + (longlong)iVar3 * 8) = param_1;
  }
  return;
}



############ FUN_ 1812c81b0 size=807 ############

void FUN_1812c81b0(longlong param_1)

{
  char *pcVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined8 *puVar6;
  char cVar7;
  undefined8 uVar8;
  longlong lVar9;
  int iVar10;
  int iVar11;
  longlong lVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  longlong lVar17;
  bool bVar18;
  undefined8 *local_res20;
  int iVar19;
  
  pcVar1 = (char *)(param_1 + 0x30);
  if (*pcVar1 == '\0') {
    *pcVar1 = '\x01';
    if ((((*(longlong *)(param_1 + 8) == 0) || (cVar7 = FUN_181345240(), cVar7 == '\0')) ||
        (*(int *)(*(longlong *)(param_1 + 8) + 0x28) < 1)) ||
       (*(int *)(*(longlong *)(param_1 + 8) + 0x2c) < 1)) {
      FUN_18047cbc0(param_1 + 0x10);
      if (*(int *)(param_1 + 0x18) != 0) {
                    /* WARNING: Subroutine does not return */
        free(*(void **)(param_1 + 0x10));
      }
      *(undefined4 *)(param_1 + 0x18) = 0;
    }
    else {
      iVar15 = *(int *)(param_1 + 0x1c);
      while (iVar15 < 4) {
        uVar8 = FUN_1811316e0(200);
        uVar8 = FUN_18050cf50(uVar8,*(undefined8 *)(param_1 + 8),param_1 + 0x20);
        FUN_180485fc0(param_1 + 0x10,uVar8);
        iVar15 = *(int *)(param_1 + 0x1c);
      }
      iVar15 = *(int *)(param_1 + 0x28);
      if (*(int *)(param_1 + 0x28) < *(int *)(param_1 + 0x2c)) {
        iVar15 = *(int *)(param_1 + 0x2c);
      }
      iVar15 = iVar15 + *(int *)(param_1 + 0x24);
      lVar12 = *(longlong *)(param_1 + 8);
      iVar4 = *(int *)(lVar12 + 0x20);
      iVar10 = *(int *)(lVar12 + 0x24) - iVar15;
      iVar5 = *(int *)(lVar12 + 0x28);
      iVar3 = *(int *)(lVar12 + 0x2c) + iVar15 * 2;
      lVar12 = 0;
      uVar16 = 3;
      lVar17 = 0x18;
      do {
        lVar9 = lVar12;
        if (uVar16 < *(uint *)(param_1 + 0x1c)) {
          lVar9 = *(longlong *)(lVar17 + *(longlong *)(param_1 + 0x10));
        }
        FUN_1804de690(&local_res20,lVar9);
        puVar6 = local_res20;
        bVar18 = local_res20 == (undefined8 *)0x0;
        lVar9 = lVar12;
        if (!bVar18) {
          lVar9 = local_res20[2];
        }
        if (lVar9 != 0) {
          lVar9 = lVar12;
          if (!bVar18) {
            lVar9 = local_res20[2];
          }
          FUN_18134b0f0(lVar9,*(byte *)(*(longlong *)(param_1 + 8) + 0xa9) & 1);
          lVar9 = lVar12;
          if (!bVar18) {
            lVar9 = puVar6[2];
          }
          if (lVar9 != 0) {
            lVar9 = lVar12;
            iVar19 = iVar3;
            iVar13 = iVar10;
            iVar14 = iVar15;
            if (uVar16 == 0) {
              if (!bVar18) {
                lVar9 = puVar6[2];
              }
              iVar11 = iVar4 - iVar15;
LAB_1812c8403:
              FUN_18134bfe0(lVar9,iVar11,iVar13,iVar14,iVar19);
            }
            else {
              if (uVar16 == 1) {
                if (bVar18) {
                  iVar11 = iVar5 + iVar4;
                }
                else {
                  lVar9 = puVar6[2];
                  iVar11 = iVar5 + iVar4;
                }
                goto LAB_1812c8403;
              }
              iVar19 = iVar15;
              iVar11 = iVar4;
              iVar14 = iVar5;
              if (uVar16 == 2) {
                if (!bVar18) {
                  lVar9 = puVar6[2];
                }
                goto LAB_1812c8403;
              }
              if (uVar16 == 3) {
                iVar13 = *(int *)(*(longlong *)(param_1 + 8) + 0x2c) +
                         *(int *)(*(longlong *)(param_1 + 8) + 0x24);
                if (!bVar18) {
                  lVar9 = puVar6[2];
                }
                goto LAB_1812c8403;
              }
            }
            lVar9 = lVar12;
            if (!bVar18) {
              lVar9 = puVar6[2];
            }
            if (lVar9 != 0) {
              if (uVar16 == 3) {
                uVar8 = *(undefined8 *)(param_1 + 8);
              }
              else {
                uVar8 = *(undefined8 *)(*(longlong *)(param_1 + 0x10) + 8 + lVar17);
              }
              lVar9 = lVar12;
              if (!bVar18) {
                lVar9 = puVar6[2];
              }
              FUN_181344e50(lVar9,uVar8);
              goto LAB_1812c8444;
            }
          }
          if (puVar6 != (undefined8 *)0x0) {
            LOCK();
            piVar2 = (int *)(puVar6 + 1);
            iVar15 = *piVar2;
            *piVar2 = *piVar2 + -1;
            UNLOCK();
            if (iVar15 == 1) {
              (**(code **)*local_res20)(local_res20,1);
            }
          }
          break;
        }
LAB_1812c8444:
        if (puVar6 != (undefined8 *)0x0) {
          LOCK();
          piVar2 = (int *)(puVar6 + 1);
          iVar13 = *piVar2;
          *piVar2 = *piVar2 + -1;
          UNLOCK();
          if (iVar13 == 1) {
            (**(code **)*local_res20)(local_res20,1);
          }
        }
        lVar17 = lVar17 + -8;
        uVar16 = uVar16 - 1;
      } while (-1 < (int)uVar16);
    }
    *pcVar1 = '\0';
  }
  return;
}



############ FUN_ 180001400 size=1019 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

int FUN_180001400(ulonglong *param_1)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  undefined1 auStack_78 [32];
  uint local_58;
  uint local_54;
  uint local_50;
  uint local_4c;
  ulonglong local_48;
  
  local_48 = DAT_182615970 ^ (ulonglong)auStack_78;
  iVar4 = DAT_182673030;
  if (DAT_182673030 == 0) {
    iVar4 = FUN_181a53000();
    if (iVar4 == 0) {
      if ((local_48 ^ (ulonglong)auStack_78) != DAT_182615970) {
      }
      return DAT_182673030;
    }
    FUN_181a53890(&local_58,0,0);
    uVar1 = local_58;
    FUN_181a53890(&local_58,0x80000000,0);
    uVar2 = local_58;
    FUN_181a53890(&local_58,1,0);
    uVar3 = local_50;
    uVar6 = (ulonglong)((local_4c & 0x800000) >> 0x17);
    if ((local_4c & 0x2000000) != 0) {
      uVar6 = uVar6 + 2;
    }
    if ((local_4c & 0x4000000) != 0) {
      uVar6 = uVar6 + 4;
    }
    if ((local_50 & 1) != 0) {
      uVar6 = uVar6 + 8;
    }
    if ((local_50 & 0x200) != 0) {
      uVar6 = uVar6 | 0x10;
    }
    if ((local_50 & 0x400000) != 0) {
      uVar6 = uVar6 | 0x20;
    }
    if ((local_50 & 0x80000) != 0) {
      uVar6 = uVar6 | 0x40;
    }
    if ((local_50 & 0x100000) != 0) {
      uVar6 = uVar6 | 0x80;
    }
    if ((local_50 & 0x10000000) != 0) {
      uVar6 = uVar6 | 0x100;
    }
    if ((local_50 & 0x18000000) == 0x18000000) {
      uVar5 = FUN_181a5311e();
      if ((uVar5 & 1) != 0) {
        uVar6 = uVar6 | 0x200;
      }
    }
    if ((uVar3 & 0x2000000) != 0) {
      uVar6 = uVar6 | 0x400;
    }
    if ((uVar3 & 2) != 0) {
      uVar6 = uVar6 | 0x800;
    }
    if ((uVar3 & 0x40000000) != 0) {
      uVar6 = uVar6 | 0x2000;
    }
    if ((uVar3 & 0x20000000) != 0) {
      uVar6 = uVar6 | 0x4000;
    }
    if (6 < uVar1) {
      FUN_181a53890(&local_58,7,0);
      uVar1 = local_50;
      if ((local_54 & 0x80000) != 0) {
        uVar6 = uVar6 | 0x10000;
      }
      if ((local_54 & 0x40000) != 0) {
        uVar6 = uVar6 | 0x20000;
      }
      if ((local_54 & 0x20000000) != 0) {
        uVar6 = uVar6 | 0x80000;
      }
      iVar4 = FUN_181a5314e();
      if (iVar4 != 0) {
        uVar6 = uVar6 | 0x200000000;
      }
      if ((local_54 & 0x10000) != 0) {
        uVar6 = uVar6 | 0x100000;
      }
      if ((local_54 & 0x4000000) != 0) {
        uVar6 = uVar6 | 0x800000;
      }
      if ((local_54 & 0x8000000) != 0) {
        uVar6 = uVar6 | 0x400000;
      }
      if ((local_54 & 0x10000000) != 0) {
        uVar6 = uVar6 | 0x200000;
      }
      if ((local_54 & 0x20000) != 0) {
        uVar6 = uVar6 | 0x2000000;
      }
      if ((local_54 & 0x40000000) != 0) {
        uVar6 = uVar6 | 0x1000000;
      }
      if ((local_54 & 0x80000000) != 0) {
        uVar6 = uVar6 | 0x4000000;
      }
      if ((uVar1 & 2) != 0) {
        uVar6 = uVar6 | 0x8000000;
      }
      if ((local_4c & 4) != 0) {
        uVar6 = uVar6 | 0x40000000;
      }
      if ((local_4c & 8) != 0) {
        uVar6 = uVar6 | 0x20000000;
      }
      if ((local_54 & 0x4000) != 0) {
        uVar6 = uVar6 | 0x10000000;
      }
      if ((local_54 & 0x200000) != 0) {
        uVar6 = uVar6 | 0x100000000;
      }
      if ((((uVar3 & 0x1000) != 0) && ((local_54 & 0x20) != 0)) && ((local_54 & 0x108) == 0x108)) {
        uVar6 = uVar6 | 0x8000;
      }
    }
    if (0x80000000 < uVar2) {
      FUN_181a53890(&local_58,0x80000001,0);
      if ((local_50 & 0x100) != 0) {
        uVar6 = uVar6 | 0x40000;
      }
    }
    DAT_182673028 = uVar6;
    if ((local_58 & 0xff0) == 0xb10) {
      DAT_182673028 = uVar6 | 0x80000000;
    }
    iVar4 = 1;
  }
  DAT_182673030 = iVar4;
  *param_1 = DAT_182673028;
  if ((local_48 ^ (ulonglong)auStack_78) != DAT_182615970) {
  }
  return iVar4;
}



############ FUN_ 181a53890 size=45 ############

void FUN_181a53890(undefined4 *param_1,int param_2)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  
  if (param_2 == 0) {
    puVar1 = (undefined4 *)cpuid_basic_info(0);
  }
  else if (param_2 == 1) {
    puVar1 = (undefined4 *)cpuid_Version_info(1);
  }
  else if (param_2 == 2) {
    puVar1 = (undefined4 *)cpuid_cache_tlb_info(2);
  }
  else if (param_2 == 3) {
    puVar1 = (undefined4 *)cpuid_serial_info(3);
  }
  else if (param_2 == 4) {
    puVar1 = (undefined4 *)cpuid_Deterministic_Cache_Parameters_info(4);
  }
  else if (param_2 == 5) {
    puVar1 = (undefined4 *)cpuid_MONITOR_MWAIT_Features_info(5);
  }
  else if (param_2 == 6) {
    puVar1 = (undefined4 *)cpuid_Thermal_Power_Management_info(6);
  }
  else if (param_2 == 7) {
    puVar1 = (undefined4 *)cpuid_Extended_Feature_Enumeration_info(7);
  }
  else if (param_2 == 9) {
    puVar1 = (undefined4 *)cpuid_Direct_Cache_Access_info(9);
  }
  else if (param_2 == 10) {
    puVar1 = (undefined4 *)cpuid_Architectural_Performance_Monitoring_info(10);
  }
  else if (param_2 == 0xb) {
    puVar1 = (undefined4 *)cpuid_Extended_Topology_info(0xb);
  }
  else if (param_2 == 0xd) {
    puVar1 = (undefined4 *)cpuid_Processor_Extended_States_info(0xd);
  }
  else if (param_2 == 0xf) {
    puVar1 = (undefined4 *)cpuid_Quality_of_Service_info(0xf);
  }
  else if (param_2 == -0x7ffffffe) {
    puVar1 = (undefined4 *)cpuid_brand_part1_info(0x80000002);
  }
  else if (param_2 == -0x7ffffffd) {
    puVar1 = (undefined4 *)cpuid_brand_part2_info(0x80000003);
  }
  else if (param_2 == -0x7ffffffc) {
    puVar1 = (undefined4 *)cpuid_brand_part3_info(0x80000004);
  }
  else {
    puVar1 = (undefined4 *)cpuid(param_2);
  }
  uVar2 = puVar1[1];
  uVar3 = puVar1[2];
  uVar4 = puVar1[3];
  *param_1 = *puVar1;
  param_1[1] = uVar2;
  param_1[2] = uVar4;
  param_1[3] = uVar3;
  return;
}



############ FUN_ 1805a3b70 size=63 ############

void FUN_1805a3b70(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_c0 [104];
  undefined1 local_58 [88];
  
  uVar1 = FUN_1805a1f80(local_58,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805a1bf0(local_c0,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_c0,(ThrowInfo *)&DAT_1825fd3c8);
}



############ FUN_ 1805a9190 size=238 ############

longlong FUN_1805a9190(longlong param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  _Locimp *p_Var1;
  undefined8 *puVar2;
  bool bVar3;
  undefined4 uVar4;
  undefined8 uVar5;
  
  uVar5 = 0xfffffffffffffffe;
  uVar4 = 0;
  bVar3 = *(char *)(param_1 + 0xf0) == '\0';
  if (bVar3) {
    p_Var1 = std::locale::_Init(true);
  }
  else {
    p_Var1 = *(_Locimp **)(param_1 + 0x100);
    (**(code **)(*(longlong *)p_Var1 + 8))(p_Var1);
  }
  *(_Locimp **)(param_2 + 8) = p_Var1;
  (**(code **)(*(longlong *)p_Var1 + 8))();
  if ((bVar3) && (p_Var1 != (_Locimp *)0x0)) {
    puVar2 = (undefined8 *)(**(code **)(*(longlong *)p_Var1 + 0x10))(p_Var1);
    if (puVar2 != (undefined8 *)0x0) {
      (**(code **)*puVar2)(puVar2,1,(undefined8 *)*puVar2,param_4,uVar4,uVar5);
    }
  }
  if ((!bVar3) && (p_Var1 != (_Locimp *)0x0)) {
    puVar2 = (undefined8 *)(**(code **)(*(longlong *)p_Var1 + 0x10))(p_Var1);
    if (puVar2 != (undefined8 *)0x0) {
      (**(code **)*puVar2)(puVar2,1);
    }
  }
  return param_2;
}



############ FUN_ 1805a9f40 size=429 ############

undefined8 *
FUN_1805a9f40(undefined8 *param_1,ulonglong param_2,ulonglong param_3,void *param_4,size_t param_5)

{
  void *pvVar1;
  void *_Src;
  ulonglong uVar2;
  undefined8 *puVar3;
  size_t _Size;
  ulonglong uVar4;
  longlong lVar5;
  
  uVar2 = param_1[2];
  if (uVar2 < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a69e0();
  }
  if (uVar2 - param_2 < param_3) {
    param_3 = uVar2 - param_2;
  }
  if (param_3 != param_5) {
    lVar5 = (uVar2 - param_2) - param_3;
    if (param_5 < param_3) {
      param_1[2] = (uVar2 - param_3) + param_5;
      puVar3 = param_1;
      if (0xf < (ulonglong)param_1[3]) {
        puVar3 = (undefined8 *)*param_1;
      }
      pvVar1 = (void *)((longlong)puVar3 + param_2);
      memmove(pvVar1,param_4,param_5);
      memmove((void *)((longlong)pvVar1 + param_5),(void *)((longlong)pvVar1 + param_3),lVar5 + 1);
    }
    else {
      uVar4 = param_5 - param_3;
      if (param_1[3] - uVar2 < uVar4) {
        param_1 = (undefined8 *)FUN_1805a1150(param_1,uVar4,0,param_2,param_3,param_4,param_5);
      }
      else {
        param_1[2] = uVar4 + uVar2;
        puVar3 = param_1;
        if (0xf < (ulonglong)param_1[3]) {
          puVar3 = (undefined8 *)*param_1;
        }
        pvVar1 = (void *)((longlong)puVar3 + param_2);
        _Src = (void *)(param_3 + (longlong)pvVar1);
        _Size = param_5;
        if ((pvVar1 < (void *)((longlong)param_4 + param_5)) &&
           (param_4 <= (void *)((longlong)puVar3 + uVar2))) {
          if (param_4 < _Src) {
            _Size = (longlong)_Src - (longlong)param_4;
          }
          else {
            _Size = 0;
          }
        }
        memmove((void *)((longlong)_Src + uVar4),_Src,lVar5 + 1);
        memmove(pvVar1,param_4,_Size);
        memcpy((void *)(_Size + (longlong)pvVar1),(void *)(_Size + uVar4 + (longlong)param_4),
               param_5 - _Size);
      }
    }
    return param_1;
  }
  puVar3 = param_1;
  if (0xf < (ulonglong)param_1[3]) {
    puVar3 = (undefined8 *)*param_1;
  }
  memmove((void *)((longlong)puVar3 + param_2),param_4,param_5);
  return param_1;
}



############ FUN_ 1805a2cf0 size=1967 ############

ulonglong FUN_1805a2cf0(ulonglong *param_1,ulonglong *param_2,uint *param_3,ctype<char> *param_4,
                       longlong param_5,byte param_6)

{
  char *pcVar1;
  bool bVar2;
  bool bVar3;
  char cVar4;
  byte bVar5;
  uint uVar6;
  undefined7 extraout_var;
  undefined7 extraout_var_00;
  undefined7 extraout_var_01;
  undefined7 extraout_var_02;
  undefined7 extraout_var_03;
  undefined8 uVar8;
  byte *pbVar9;
  byte *pbVar10;
  int iVar11;
  char *pcVar12;
  undefined1 local_50 [40];
  char *pcVar7;
  
  *param_3 = 0xffffffff;
  bVar3 = false;
  pcVar1 = (char *)*param_1;
  pcVar7 = (char *)*param_2;
  pcVar12 = pcVar7 + (param_5 - (longlong)pcVar1);
  if (pcVar7 <= pcVar1) {
    if ((param_6 & 1) != 0) {
      uVar8 = FUN_1805a4a20(local_50,param_5,pcVar12,param_4,0xfffffffffffffffe);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3b70(uVar8);
    }
LAB_1805a2d5f:
    return (ulonglong)pcVar7 & 0xffffffffffffff00;
  }
  cVar4 = std::ctype<char>::widen(param_4,'|');
  pcVar7 = (char *)CONCAT71(extraout_var,cVar4);
  if (*pcVar1 == cVar4) {
    bVar3 = true;
    *param_1 = *param_1 + 1;
    if (*param_2 <= *param_1) {
      if ((param_6 & 1) != 0) {
        uVar8 = FUN_1805a4a20(local_50,(*param_1 - (longlong)pcVar1) + param_5,pcVar12);
                    /* WARNING: Subroutine does not return */
        FUN_1805a3b70(uVar8);
      }
      goto LAB_1805a2d5f;
    }
  }
  pcVar7 = (char *)*param_1;
  cVar4 = std::ctype<char>::widen(param_4,'0');
  if (*pcVar7 == cVar4) {
LAB_1805a2ea4:
    pbVar9 = (byte *)*param_2;
    if ((byte *)*param_1 != pbVar9) {
      do {
        cVar4 = std::ctype<char>::narrow(param_4,*(char *)*param_1,'\0');
        switch(cVar4) {
        case ' ':
          param_3[0x22] = param_3[0x22] | 2;
          break;
        default:
          goto switchD_1805a2eef_caseD_21;
        case '#':
          param_3[0x17] = param_3[0x17] | 0x18;
          break;
        case '\'':
        case 'h':
        case 'l':
          break;
        case '+':
          param_3[0x17] = param_3[0x17] | 0x20;
          break;
        case '-':
          param_3[0x17] = param_3[0x17] | 0x40;
          break;
        case '0':
          param_3[0x22] = param_3[0x22] | 1;
          break;
        case '=':
          param_3[0x22] = param_3[0x22] | 4;
          break;
        case '_':
          param_3[0x17] = param_3[0x17] | 0x100;
        }
        *param_1 = *param_1 + 1;
        pbVar9 = (byte *)*param_1;
      } while (pbVar9 != (byte *)*param_2);
    }
    if (*param_2 <= *param_1) {
      if ((param_6 & 1) != 0) {
        uVar8 = FUN_1805a4a20(local_50,(*param_1 - (longlong)pcVar1) + param_5,pcVar12);
                    /* WARNING: Subroutine does not return */
        FUN_1805a3b70(uVar8);
      }
      goto LAB_1805a31e0;
    }
switchD_1805a2eef_caseD_21:
    pcVar7 = (char *)*param_1;
    cVar4 = std::ctype<char>::widen(param_4,'*');
    if (*pcVar7 == cVar4) {
      pbVar9 = (byte *)*param_2;
      pbVar10 = (byte *)(*param_1 + 1);
      if (pbVar10 != pbVar9) {
        do {
          if (((uint)(int)*(short *)(*(longlong *)(param_4 + 0x18) + (ulonglong)*pbVar10 * 2) >> 2 &
              1) == 0) break;
          pbVar10 = pbVar10 + 1;
        } while (pbVar10 != pbVar9);
        if ((pbVar10 != pbVar9) && (bVar5 = std::ctype<char>::widen(param_4,'$'), *pbVar10 == bVar5)
           ) {
          pbVar10 = pbVar10 + 1;
        }
      }
      *param_1 = (ulonglong)pbVar10;
    }
    pbVar9 = (byte *)*param_1;
    if ((pbVar9 != (byte *)*param_2) &&
       (bVar5 = *pbVar9, pbVar9 = *(byte **)(param_4 + 0x18),
       ((uint)(int)*(short *)(pbVar9 + (ulonglong)bVar5 * 2) >> 2 & 1) != 0)) {
      param_3[0x12] = 0;
      param_3[0x13] = 0;
      pbVar10 = (byte *)*param_1;
      if (pbVar10 != (byte *)*param_2) {
        do {
          pbVar9 = *(byte **)(param_4 + 0x18);
          if (((uint)(int)*(short *)(pbVar9 + (ulonglong)*pbVar10 * 2) >> 2 & 1) == 0) break;
          cVar4 = std::ctype<char>::narrow(param_4,*pbVar10,'\0');
          pbVar9 = (byte *)((longlong)(cVar4 + -0x30) + *(longlong *)(param_3 + 0x12) * 10);
          *(byte **)(param_3 + 0x12) = pbVar9;
          pbVar10 = pbVar10 + 1;
        } while (pbVar10 != (byte *)*param_2);
      }
      *param_1 = (ulonglong)pbVar10;
    }
  }
  else {
    pbVar9 = (byte *)*param_1;
    pcVar7 = *(char **)(param_4 + 0x18);
    if (((uint)(int)*(short *)(pcVar7 + (ulonglong)*pbVar9 * 2) >> 2 & 1) == 0) goto LAB_1805a2ea4;
    iVar11 = 0;
    if (pbVar9 != (byte *)*param_2) {
      do {
        pcVar7 = *(char **)(param_4 + 0x18);
        if (((uint)(int)*(short *)(pcVar7 + (ulonglong)*pbVar9 * 2) >> 2 & 1) == 0) break;
        cVar4 = std::ctype<char>::narrow(param_4,*pbVar9,'\0');
        pcVar7 = (char *)(ulonglong)(uint)(int)cVar4;
        iVar11 = (int)cVar4 + (iVar11 * 5 + -0x18) * 2;
        pbVar9 = pbVar9 + 1;
      } while (pbVar9 != (byte *)*param_2);
    }
    *param_1 = (ulonglong)pbVar9;
    if ((byte *)*param_2 <= pbVar9) {
      if ((param_6 & 1) != 0) {
        uVar8 = FUN_1805a4a20(local_50,pbVar9 + (param_5 - (longlong)pcVar1),pcVar12);
                    /* WARNING: Subroutine does not return */
        FUN_1805a3b70(uVar8);
      }
      goto LAB_1805a2d5f;
    }
    bVar5 = std::ctype<char>::widen(param_4,'%');
    if (*pbVar9 == bVar5) {
      pbVar9 = (byte *)(ulonglong)(iVar11 - 1U);
      *param_3 = iVar11 - 1U;
      *param_1 = *param_1 + 1;
      if (!bVar3) goto LAB_1805a31e0;
      if ((param_6 & 1) != 0) {
        uVar8 = FUN_1805a4a20(local_50,(*param_1 - (longlong)pcVar1) + param_5,pcVar12);
                    /* WARNING: Subroutine does not return */
        FUN_1805a3b70(uVar8);
      }
    }
    pcVar7 = (char *)*param_1;
    cVar4 = std::ctype<char>::widen(param_4,'$');
    if (*pcVar7 == cVar4) {
      *param_3 = iVar11 - 1;
      *param_1 = *param_1 + 1;
      goto LAB_1805a2ea4;
    }
    pbVar9 = (byte *)(longlong)iVar11;
    *(byte **)(param_3 + 0x12) = pbVar9;
    *param_3 = 0xffffffff;
  }
  pcVar7 = (char *)*param_1;
  if ((char *)*param_2 <= pcVar7) {
    if ((param_6 & 1) != 0) {
      uVar8 = FUN_1805a4a20(local_50,pcVar7 + (param_5 - (longlong)pcVar1),pcVar12);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3b70(uVar8);
    }
    goto LAB_1805a31e0;
  }
  cVar4 = std::ctype<char>::widen(param_4,'.');
  if (*pcVar7 == cVar4) {
    *param_1 = *param_1 + 1;
    pcVar7 = (char *)*param_1;
    if ((pcVar7 != (char *)*param_2) &&
       (cVar4 = std::ctype<char>::widen(param_4,'*'), *pcVar7 == cVar4)) {
      pbVar9 = (byte *)*param_2;
      pbVar10 = (byte *)(*param_1 + 1);
      if (pbVar10 != pbVar9) {
        do {
          if (((uint)(int)*(short *)(*(longlong *)(param_4 + 0x18) + (ulonglong)*pbVar10 * 2) >> 2 &
              1) == 0) break;
          pbVar10 = pbVar10 + 1;
        } while (pbVar10 != pbVar9);
        if ((pbVar10 != pbVar9) && (bVar5 = std::ctype<char>::widen(param_4,'$'), *pbVar10 == bVar5)
           ) {
          pbVar10 = pbVar10 + 1;
        }
      }
      *param_1 = (ulonglong)pbVar10;
    }
    if (((byte *)*param_1 == (byte *)*param_2) ||
       (((uint)(int)*(short *)(*(longlong *)(param_4 + 0x18) + (ulonglong)*(byte *)*param_1 * 2) >>
         2 & 1) == 0)) {
      param_3[0x14] = 0;
      param_3[0x15] = 0;
      goto LAB_1805a3150;
    }
    param_3[0x14] = 0;
    param_3[0x15] = 0;
    pbVar9 = (byte *)*param_1;
    if (pbVar9 != (byte *)*param_2) {
      do {
        if (((uint)(int)*(short *)(*(longlong *)(param_4 + 0x18) + (ulonglong)*pbVar9 * 2) >> 2 & 1)
            == 0) break;
        cVar4 = std::ctype<char>::narrow(param_4,*pbVar9,'\0');
        *(longlong *)(param_3 + 0x14) =
             (longlong)(cVar4 + -0x30) + *(longlong *)(param_3 + 0x14) * 10;
        pbVar9 = pbVar9 + 1;
      } while (pbVar9 != (byte *)*param_2);
    }
    *param_1 = (ulonglong)pbVar9;
    bVar2 = true;
  }
  else {
LAB_1805a3150:
    bVar2 = false;
  }
  pbVar9 = (byte *)*param_2;
  if ((byte *)*param_1 != pbVar9) {
    do {
      pcVar7 = (char *)*param_1;
      cVar4 = std::ctype<char>::widen(param_4,'l');
      if ((*pcVar7 != cVar4) &&
         (pcVar7 = (char *)*param_1, cVar4 = std::ctype<char>::widen(param_4,'L'), *pcVar7 != cVar4)
         ) {
        pcVar7 = (char *)*param_1;
        cVar4 = std::ctype<char>::widen(param_4,'h');
        pbVar9 = (byte *)CONCAT71(extraout_var_00,cVar4);
        if (*pcVar7 != cVar4) break;
      }
      *param_1 = *param_1 + 1;
      pbVar9 = (byte *)*param_1;
    } while (pbVar9 != (byte *)*param_2);
  }
  pcVar7 = (char *)*param_1;
  if ((char *)*param_2 <= pcVar7) {
    if ((param_6 & 1) != 0) {
      uVar8 = FUN_1805a4a20(local_50,pcVar7 + (param_5 - (longlong)pcVar1),pcVar12);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3b70(uVar8);
    }
    goto LAB_1805a31e0;
  }
  if (bVar3) {
    cVar4 = std::ctype<char>::widen(param_4,'|');
    pbVar9 = (byte *)CONCAT71(extraout_var_01,cVar4);
    if (*pcVar7 != cVar4) goto LAB_1805a3200;
    goto LAB_1805a31dd;
  }
LAB_1805a3200:
  cVar4 = std::ctype<char>::narrow(param_4,*(char *)*param_1,'\0');
  pbVar9 = (byte *)0x0;
  switch(cVar4) {
  case 'C':
  case 'c':
    param_3[0x20] = 1;
    param_3[0x21] = 0;
    break;
  default:
    if ((param_6 & 1) != 0) {
      uVar8 = FUN_1805a4a20(local_50,(*param_1 - (longlong)pcVar1) + param_5,pcVar12);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3b70(uVar8);
    }
    break;
  case 'E':
    param_3[0x17] = param_3[0x17] | 4;
  case 'e':
    param_3[0x17] = param_3[0x17] & 0xffffd3ff;
    param_3[0x17] = param_3[0x17] | 0x1200;
    break;
  case 'G':
    param_3[0x17] = param_3[0x17] | 4;
    break;
  case 'S':
  case 's':
    if (bVar2) {
      pbVar9 = *(byte **)(param_3 + 0x14);
      *(byte **)(param_3 + 0x20) = pbVar9;
    }
    param_3[0x14] = 6;
    param_3[0x15] = 0;
    break;
  case 'T':
    *param_1 = *param_1 + 1;
    pbVar9 = (byte *)*param_1;
    if (pbVar9 < (byte *)*param_2) {
      pbVar9 = (byte *)(ulonglong)*pbVar9;
      goto LAB_1805a3314;
    }
    pbVar9 = pbVar9 + (param_5 - (longlong)pcVar1);
    if ((param_6 & 1) != 0) {
      uVar8 = FUN_1805a4a20(local_50,pbVar9,pcVar12);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3b70(uVar8);
    }
    goto LAB_1805a3317;
  case 'X':
    param_3[0x17] = param_3[0x17] | 4;
  case 'p':
  case 'x':
    param_3[0x17] = param_3[0x17] & 0xfffff9ff;
    param_3[0x17] = param_3[0x17] | 0x800;
    break;
  case 'f':
    param_3[0x17] = param_3[0x17] & 0xffffefff;
    param_3[0x17] = param_3[0x17] | 0x2000;
  case 'd':
  case 'i':
  case 'u':
    param_3[0x17] = param_3[0x17] & 0xfffff3ff;
    param_3[0x17] = param_3[0x17] | 0x200;
    break;
  case 'g':
    uVar6 = param_3[0x17] & 0xffffc3ff | 0x200;
    pbVar9 = (byte *)(ulonglong)uVar6;
    param_3[0x17] = uVar6;
    break;
  case 'n':
    *param_3 = 0xfffffffd;
    break;
  case 'o':
    param_3[0x17] = param_3[0x17] & 0xfffff5ff;
    param_3[0x17] = param_3[0x17] | 0x400;
    break;
  case 't':
    cVar4 = std::ctype<char>::widen(param_4,' ');
    pbVar9 = (byte *)CONCAT71(extraout_var_03,cVar4);
LAB_1805a3314:
    *(char *)(param_3 + 0x16) = (char)pbVar9;
LAB_1805a3317:
    param_3[0x22] = param_3[0x22] | 8;
    *param_3 = 0xfffffffe;
  }
  *param_1 = *param_1 + 1;
  pcVar7 = (char *)*param_1;
  if (bVar3) {
    if (pcVar7 != (char *)*param_2) {
      cVar4 = std::ctype<char>::widen(param_4,'|');
      pbVar9 = (byte *)CONCAT71(extraout_var_02,cVar4);
      if (*pcVar7 == cVar4) {
LAB_1805a31dd:
        *param_1 = *param_1 + 1;
        goto LAB_1805a31e0;
      }
    }
    if ((param_6 & 1) != 0) {
      uVar8 = FUN_1805a4a20(local_50,(*param_1 - (longlong)pcVar1) + param_5,pcVar12);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3b70(uVar8);
    }
  }
LAB_1805a31e0:
  return CONCAT71((int7)((ulonglong)pbVar9 >> 8),1);
}



############ FUN_ 1805a94d0 size=586 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805a94d0(longlong *param_1,ulonglong param_2)

{
  longlong lVar1;
  char cVar2;
  undefined8 uVar3;
  ctype<char> *this;
  undefined8 *puVar4;
  longlong lVar5;
  longlong lVar6;
  undefined1 auStack_108 [32];
  longlong *local_e8;
  longlong *plStack_e0;
  undefined8 local_d8;
  longlong local_c8;
  undefined1 local_c0;
  undefined8 local_b0;
  undefined8 local_a8;
  undefined1 local_a0;
  undefined8 local_90;
  undefined8 local_88;
  undefined8 local_80;
  undefined8 local_78;
  char local_70;
  undefined8 local_6c;
  undefined4 local_64;
  undefined1 local_60;
  undefined8 local_48;
  undefined4 local_40;
  ulonglong local_38;
  
  local_d8 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_108;
  uVar3 = FUN_1805a9190(param_1,&local_e8);
  this = (ctype<char> *)FUN_1805a3e30(uVar3);
  cVar2 = std::ctype<char>::widen(this,' ');
  if ((plStack_e0 != (longlong *)0x0) &&
     (puVar4 = (undefined8 *)(**(code **)(*plStack_e0 + 0x10))(), puVar4 != (undefined8 *)0x0)) {
    (**(code **)*puVar4)(puVar4,1);
  }
  lVar1 = param_1[1] - *param_1 >> 0x3f;
  lVar5 = (param_1[1] - *param_1) / 0x90 + lVar1;
  if (lVar5 == lVar1) {
    local_c8._0_4_ = 0xffffffff;
    local_b0 = 0;
    local_a8 = 0xf;
    local_c0 = 0;
    local_90 = 0;
    local_88 = 0xf;
    local_a0 = 0;
    local_60 = 0;
    local_80 = 0;
    local_78 = 6;
    local_6c = 0x201;
    local_64 = 0;
    local_48 = 0x7fffffffffffffff;
    local_40 = 0;
    local_70 = cVar2;
    FUN_1805a6e10(param_1,param_2,&local_c8);
    FUN_1805a5290(&local_c8);
  }
  else {
    lVar6 = 0;
    if ((ulonglong)(lVar5 - lVar1) < param_2) {
      local_c8._0_4_ = 0xffffffff;
      local_b0 = 0;
      local_a8 = 0xf;
      local_c0 = 0;
      local_90 = 0;
      local_88 = 0xf;
      local_a0 = 0;
      local_60 = 0;
      local_80 = 0;
      local_78 = 6;
      local_6c = 0x201;
      local_64 = 0;
      local_48 = 0x7fffffffffffffff;
      local_40 = 0;
      plStack_e0 = &local_c8;
      local_e8 = param_1;
      local_70 = cVar2;
      FUN_1805a1760(param_1,param_2,&local_e8);
      FUN_1805a5290(&local_c8);
    }
    FUN_1805aa0f0(param_1 + 3,0,0);
    for (; param_2 != 0; param_2 = param_2 - 1) {
      lVar1 = *param_1;
      *(undefined4 *)(lVar6 + lVar1) = 0xffffffff;
      *(undefined8 *)(lVar6 + 0x80 + lVar1) = 0x7fffffffffffffff;
      *(undefined4 *)(lVar6 + 0x88 + lVar1) = 0;
      puVar4 = (undefined8 *)(lVar1 + 8 + lVar6);
      puVar4[2] = 0;
      if (0xf < (ulonglong)puVar4[3]) {
        puVar4 = (undefined8 *)*puVar4;
      }
      *(undefined1 *)puVar4 = 0;
      puVar4 = (undefined8 *)(lVar1 + 0x28 + lVar6);
      puVar4[2] = 0;
      if (0xf < (ulonglong)puVar4[3]) {
        puVar4 = (undefined8 *)*puVar4;
      }
      *(undefined1 *)puVar4 = 0;
      *(undefined8 *)(lVar6 + 0x48 + lVar1) = 0;
      *(undefined8 *)(lVar6 + 0x50 + lVar1) = 6;
      *(char *)(lVar6 + 0x58 + lVar1) = cVar2;
      *(undefined8 *)(lVar6 + 0x5c + lVar1) = 0x201;
      *(undefined4 *)(lVar6 + 100 + lVar1) = 0;
      lVar6 = lVar6 + 0x90;
    }
  }
  param_1[0xb] = 0;
  if ((ulonglong)param_1[0xc] < 0x10) {
    *(undefined1 *)(param_1 + 9) = 0;
  }
  else {
    *(undefined1 *)param_1[9] = 0;
  }
}



############ FUN_ 1805a1760 size=604 ############

void FUN_1805a1760(longlong *param_1,ulonglong param_2,undefined8 *param_3)

{
  void *pvVar1;
  ulonglong uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  ulonglong uVar6;
  longlong lVar7;
  void *_Memory;
  ulonglong uVar8;
  undefined8 uVar9;
  
  uVar9 = 0xfffffffffffffffe;
  lVar5 = param_1[1];
  lVar7 = *param_1;
  lVar4 = (lVar5 - lVar7) / 0x12 + (lVar5 - lVar7 >> 0x3f);
  uVar6 = (lVar4 >> 3) - (lVar4 >> 0x3f);
  uVar2 = (param_1[2] - lVar7) / 0x90;
  if (param_2 <= uVar2) {
    if (param_2 <= uVar6) {
      if (param_2 != uVar6) {
        lVar7 = param_2 * 0x90 + lVar7;
        for (lVar4 = lVar7; lVar4 != lVar5; lVar4 = lVar4 + 0x90) {
          FUN_1805a5290(lVar4);
        }
        param_1[1] = lVar7;
      }
      return;
    }
    lVar5 = FUN_1805a6910(*param_3,lVar5,param_2 - uVar6,param_3[1]);
    param_1[1] = lVar5;
    return;
  }
  if (0x1c71c71c71c71c7 < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a69c0();
  }
  uVar8 = param_2;
  if ((uVar2 <= 0x1c71c71c71c71c7 - (uVar2 >> 1)) && (uVar8 = (uVar2 >> 1) + uVar2, uVar8 < param_2)
     ) {
    uVar8 = param_2;
  }
  lVar3 = FUN_1805a6a00(param_1,uVar8);
  lVar5 = uVar6 * 0x90 + lVar3;
  FUN_1805a6910(*param_3,lVar5,param_2 - uVar6,param_3[1],lVar5,lVar3,uVar9);
  lVar5 = param_1[1];
  lVar4 = lVar3;
  for (lVar7 = *param_1; lVar7 != lVar5; lVar7 = lVar7 + 0x90) {
    FUN_1805a47f0(lVar4,lVar7);
    lVar4 = lVar4 + 0x90;
  }
  lVar5 = *param_1;
  if (lVar5 == 0) {
    *param_1 = lVar3;
    param_1[1] = param_2 * 0x90 + lVar3;
    param_1[2] = uVar8 * 0x90 + lVar3;
    return;
  }
  lVar7 = param_1[1];
  for (; lVar5 != lVar7; lVar5 = lVar5 + 0x90) {
    FUN_1805a5290(lVar5);
  }
  pvVar1 = (void *)*param_1;
  _Memory = pvVar1;
  if ((0xfff < (ulonglong)(((param_1[2] - (longlong)pvVar1) / 0x90) * 0x90)) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805a5290 size=232 ############

void FUN_1805a5290(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  void *pvVar1;
  undefined8 *puVar2;
  void *pvVar3;
  undefined8 uVar4;
  
  uVar4 = 0xfffffffffffffffe;
  if (*(char *)(param_1 + 0x68) != '\0') {
    if ((*(longlong **)(param_1 + 0x78) != (longlong *)0x0) &&
       (puVar2 = (undefined8 *)(**(code **)(**(longlong **)(param_1 + 0x78) + 0x10))(),
       puVar2 != (undefined8 *)0x0)) {
      (**(code **)*puVar2)(puVar2,1,(undefined8 *)*puVar2,param_4,uVar4);
    }
    *(undefined1 *)(param_1 + 0x68) = 0;
  }
  if (0xf < *(ulonglong *)(param_1 + 0x40)) {
    pvVar1 = *(void **)(param_1 + 0x28);
    pvVar3 = pvVar1;
    if ((0xfff < *(ulonglong *)(param_1 + 0x40) + 1) &&
       (pvVar3 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar3);
  }
  *(undefined8 *)(param_1 + 0x38) = 0;
  *(undefined8 *)(param_1 + 0x40) = 0xf;
  *(undefined1 *)(param_1 + 0x28) = 0;
  if (*(ulonglong *)(param_1 + 0x20) < 0x10) {
    *(undefined8 *)(param_1 + 0x18) = 0;
    *(undefined8 *)(param_1 + 0x20) = 0xf;
    *(undefined1 *)(param_1 + 8) = 0;
    return;
  }
  pvVar1 = *(void **)(param_1 + 8);
  pvVar3 = pvVar1;
  if ((0xfff < *(ulonglong *)(param_1 + 0x20) + 1) &&
     (pvVar3 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar3);
}



############ FUN_ 1805a3cb0 size=381 ############

ulonglong FUN_1805a3cb0(undefined8 *param_1,char param_2,longlong param_3,byte param_4)

{
  ulonglong uVar1;
  ulonglong uVar2;
  void *pvVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  undefined8 uVar6;
  undefined8 *puVar7;
  longlong lVar8;
  byte *pbVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  undefined1 local_50 [40];
  
  uVar10 = 0;
  uVar1 = param_1[2];
  uVar2 = param_1[3];
  uVar11 = uVar10;
  do {
    while( true ) {
      puVar5 = param_1;
      if (0xf < uVar2) {
        puVar5 = (undefined8 *)*param_1;
      }
      if (uVar1 <= uVar10) {
        return uVar11;
      }
      pvVar3 = memchr((void *)((longlong)puVar5 + uVar10),(int)param_2,uVar1 - uVar10);
      if (pvVar3 == (void *)0x0) {
        return uVar11;
      }
      lVar8 = (longlong)pvVar3 - (longlong)puVar5;
      if (lVar8 == -1) {
        return uVar11;
      }
      if (uVar1 <= lVar8 + 1U) {
        if ((param_4 & 1) == 0) {
          return (ulonglong)((int)uVar11 + 1);
        }
        uVar6 = FUN_1805ae610(param_1);
        uVar6 = FUN_1805a4a20(local_50,lVar8,uVar6);
                    /* WARNING: Subroutine does not return */
        FUN_1805a3b70(uVar6);
      }
      puVar4 = param_1;
      puVar5 = param_1;
      if (0xf < uVar2) {
        puVar5 = (undefined8 *)*param_1;
        puVar4 = (undefined8 *)*param_1;
      }
      if (*(char *)(lVar8 + 1 + (longlong)puVar5) != *(char *)(lVar8 + (longlong)puVar4)) break;
      uVar10 = lVar8 + 2;
    }
    puVar4 = param_1;
    puVar5 = param_1;
    if (0xf < uVar2) {
      puVar5 = (undefined8 *)*param_1;
      puVar4 = (undefined8 *)*param_1;
    }
    puVar7 = param_1;
    if (0xf < uVar2) {
      puVar7 = (undefined8 *)*param_1;
    }
    pbVar9 = (byte *)((longlong)puVar7 + lVar8 + 1U);
    if (pbVar9 != (byte *)((longlong)puVar4 + uVar1)) {
      do {
        if (((uint)(int)*(short *)(*(longlong *)(param_3 + 0x18) + (ulonglong)*pbVar9 * 2) >> 2 & 1)
            == 0) break;
        pbVar9 = pbVar9 + 1;
      } while (pbVar9 != (byte *)((longlong)puVar4 + uVar1));
    }
    uVar10 = (longlong)pbVar9 - (longlong)puVar5;
    if (uVar10 < uVar1) {
      puVar5 = param_1;
      if (0xf < uVar2) {
        puVar5 = (undefined8 *)*param_1;
      }
      if (*(char *)((longlong)puVar5 + uVar10) == param_2) {
        uVar10 = uVar10 + 1;
      }
    }
    uVar11 = (ulonglong)((int)uVar11 + 1);
  } while( true );
}



############ FUN_ 1805a3e30 size=237 ############

_Facet_base * FUN_1805a3e30(locale *param_1)

{
  longlong lVar1;
  __uint64 _Var2;
  _Locimp *p_Var3;
  _Facet_base *p_Var4;
  _Lockit local_res8 [8];
  _Facet_base *local_res10;
  _Facet_base *local_res18;
  undefined1 local_30 [24];
  
  std::_Lockit::_Lockit(local_res8,0);
  local_res10 = DAT_18265dcb8;
  _Var2 = std::locale::id::operator_unsigned___int64((id *)id_exref);
  lVar1 = *(longlong *)(param_1 + 8);
  if (_Var2 < *(ulonglong *)(lVar1 + 0x18)) {
    p_Var4 = *(_Facet_base **)(*(longlong *)(lVar1 + 0x10) + _Var2 * 8);
    if (p_Var4 != (_Facet_base *)0x0) goto LAB_1805a3eec;
  }
  else {
    p_Var4 = (_Facet_base *)0x0;
  }
  if (*(char *)(lVar1 + 0x24) == '\0') {
LAB_1805a3ea2:
    if (p_Var4 != (_Facet_base *)0x0) goto LAB_1805a3eec;
  }
  else {
    p_Var3 = std::locale::_Getgloballocale();
    if (_Var2 < *(ulonglong *)(p_Var3 + 0x18)) {
      p_Var4 = *(_Facet_base **)(*(longlong *)(p_Var3 + 0x10) + _Var2 * 8);
      goto LAB_1805a3ea2;
    }
  }
  p_Var4 = local_res10;
  if (local_res10 == (_Facet_base *)0x0) {
    _Var2 = std::ctype<char>::_Getcat((facet **)&local_res10,param_1);
    p_Var4 = local_res10;
    if (_Var2 == 0xffffffffffffffff) {
      FUN_1805a49a0(local_30);
                    /* WARNING: Subroutine does not return */
      _CxxThrowException(local_30,(ThrowInfo *)&DAT_1825fd200);
    }
    local_res18 = local_res10;
    std::_Facet_Register(local_res10);
    (**(code **)(*(longlong *)p_Var4 + 8))(p_Var4);
    DAT_18265dcb8 = local_res10;
    p_Var4 = local_res10;
  }
LAB_1805a3eec:
  std::_Lockit::~_Lockit(local_res8);
  return p_Var4;
}



############ FUN_ 1805a4a20 size=32 ############

undefined8 * FUN_1805a4a20(undefined8 *param_1,undefined8 param_2,undefined8 param_3)

{
  param_1[1] = 0;
  param_1[2] = 0;
  *param_1 = boost::io::bad_format_string::vftable;
  param_1[3] = param_2;
  param_1[4] = param_3;
  return param_1;
}



############ FUN_ 1805a3c30 size=63 ############

void FUN_1805a3c30(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_c0 [104];
  undefined1 local_58 [88];
  
  uVar1 = FUN_1805a20b0(local_58,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805a1e20(local_c0,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_c0,(ThrowInfo *)&DAT_1825fd608);
}



############ FUN_ 1805a1320 size=378 ############

undefined8 *
FUN_1805a1320(undefined8 *param_1,ulonglong param_2,undefined8 param_3,void *param_4,size_t param_5)

{
  size_t _Size;
  ulonglong uVar1;
  void *_Src;
  longlong lVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  void *pvVar6;
  
  _Size = param_1[2];
  if (0x7fffffffffffffff - _Size < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a6980();
  }
  uVar1 = param_1[3];
  uVar3 = _Size + param_2 | 0xf;
  uVar5 = 0x7fffffffffffffff;
  if (((uVar3 < 0x8000000000000000) && (uVar1 <= 0x7fffffffffffffff - (uVar1 >> 1))) &&
     (uVar4 = (uVar1 >> 1) + uVar1, uVar5 = uVar3, uVar3 < uVar4)) {
    uVar5 = uVar4;
  }
  uVar3 = uVar5 + 1;
  if (uVar3 < 0x1000) {
    if (uVar3 == 0) {
      pvVar6 = (void *)0x0;
    }
    else {
      pvVar6 = (void *)FUN_1811316e0(uVar3);
    }
  }
  else {
    uVar4 = uVar5 + 0x28;
    if (uVar4 <= uVar3) {
      uVar4 = 0xffffffffffffffff;
    }
    lVar2 = FUN_1811316e0(uVar4);
    if (lVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
    pvVar6 = (void *)(lVar2 + 0x27U & 0xffffffffffffffe0);
    *(longlong *)((longlong)pvVar6 - 8) = lVar2;
  }
  param_1[2] = _Size + param_2;
  param_1[3] = uVar5;
  if (uVar1 < 0x10) {
    memcpy(pvVar6,param_1,_Size);
    memcpy((void *)(_Size + (longlong)pvVar6),param_4,param_5);
    *(undefined1 *)((longlong)(_Size + (longlong)pvVar6) + param_5) = 0;
    *param_1 = pvVar6;
    return param_1;
  }
  _Src = (void *)*param_1;
  memcpy(pvVar6,_Src,_Size);
  memcpy((void *)(_Size + (longlong)pvVar6),param_4,param_5);
  *(undefined1 *)((longlong)(_Size + (longlong)pvVar6) + param_5) = 0;
  pvVar6 = _Src;
  if ((0xfff < uVar1 + 1) &&
     (pvVar6 = *(void **)((longlong)_Src + -8),
     0x1f < (ulonglong)((longlong)_Src + (-8 - (longlong)pvVar6)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar6);
}



############ FUN_ 1805a4070 size=230 ############

undefined8 * FUN_1805a4070(undefined8 *param_1,undefined8 *param_2)

{
  ulonglong uVar1;
  ulonglong uVar2;
  undefined8 uVar3;
  longlong lVar4;
  void *_Dst;
  ulonglong uVar5;
  ulonglong uVar6;
  
  _Dst = (void *)0x0;
  param_1[2] = 0;
  param_1[3] = 0;
  uVar2 = param_2[2];
  if (0xf < (ulonglong)param_2[3]) {
    param_2 = (undefined8 *)*param_2;
  }
  if (uVar2 < 0x10) {
    uVar3 = param_2[1];
    *param_1 = *param_2;
    param_1[1] = uVar3;
    param_1[2] = uVar2;
    param_1[3] = 0xf;
  }
  else {
    uVar6 = uVar2 | 0xf;
    if (0x7fffffffffffffff < uVar6) {
      uVar6 = 0x7fffffffffffffff;
    }
    uVar1 = uVar6 + 1;
    if (uVar1 < 0x1000) {
      if (uVar1 != 0) {
        _Dst = (void *)FUN_1811316e0(uVar1);
      }
    }
    else {
      uVar5 = uVar6 + 0x28;
      if (uVar5 <= uVar1) {
        uVar5 = 0xffffffffffffffff;
      }
      lVar4 = FUN_1811316e0(uVar5);
      if (lVar4 == 0) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
      _Dst = (void *)(lVar4 + 0x27U & 0xffffffffffffffe0);
      *(longlong *)((longlong)_Dst - 8) = lVar4;
    }
    *param_1 = _Dst;
    memcpy(_Dst,param_2,uVar2 + 1);
    param_1[2] = uVar2;
    param_1[3] = uVar6;
  }
  return param_1;
}



############ FUN_ 1805a14a0 size=313 ############

undefined8 * FUN_1805a14a0(undefined8 *param_1,ulonglong param_2)

{
  longlong lVar1;
  ulonglong uVar2;
  void *_Src;
  longlong lVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  void *pvVar7;
  
  lVar1 = param_1[2];
  if (0x7fffffffffffffffU - lVar1 < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a6980();
  }
  uVar2 = param_1[3];
  uVar4 = lVar1 + param_2 | 0xf;
  uVar6 = 0x7fffffffffffffff;
  if (((uVar4 < 0x8000000000000000) && (uVar2 <= 0x7fffffffffffffff - (uVar2 >> 1))) &&
     (uVar5 = (uVar2 >> 1) + uVar2, uVar6 = uVar4, uVar4 < uVar5)) {
    uVar6 = uVar5;
  }
  uVar4 = uVar6 + 1;
  if (uVar4 < 0x1000) {
    if (uVar4 == 0) {
      pvVar7 = (void *)0x0;
    }
    else {
      pvVar7 = (void *)FUN_1811316e0(uVar4);
    }
  }
  else {
    uVar5 = uVar6 + 0x28;
    if (uVar5 <= uVar4) {
      uVar5 = 0xffffffffffffffff;
    }
    lVar3 = FUN_1811316e0(uVar5);
    if (lVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
    pvVar7 = (void *)(lVar3 + 0x27U & 0xffffffffffffffe0);
    *(longlong *)((longlong)pvVar7 - 8) = lVar3;
  }
  param_1[2] = lVar1 + param_2;
  param_1[3] = uVar6;
  if (uVar2 < 0x10) {
    memcpy(pvVar7,param_1,lVar1 + 1U);
    *param_1 = pvVar7;
    return param_1;
  }
  _Src = (void *)*param_1;
  memcpy(pvVar7,_Src,lVar1 + 1U);
  pvVar7 = _Src;
  if ((0xfff < uVar2 + 1) &&
     (pvVar7 = *(void **)((longlong)_Src + -8),
     0x1f < (ulonglong)((longlong)_Src + (-8 - (longlong)pvVar7)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar7);
}



############ FUN_ 1805a4da0 size=32 ############

undefined8 * FUN_1805a4da0(undefined8 *param_1,undefined8 param_2,undefined8 param_3)

{
  param_1[1] = 0;
  param_1[2] = 0;
  *param_1 = boost::io::too_few_args::vftable;
  param_1[3] = param_2;
  param_1[4] = param_3;
  return param_1;
}



############ FUN_ 1805a15e0 size=378 ############

undefined8 *
FUN_1805a15e0(undefined8 *param_1,ulonglong param_2,undefined8 param_3,size_t param_4,char param_5)

{
  size_t _Size;
  ulonglong uVar1;
  void *_Src;
  longlong lVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  void *pvVar6;
  
  _Size = param_1[2];
  if (0x7fffffffffffffff - _Size < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a6980();
  }
  uVar1 = param_1[3];
  uVar3 = _Size + param_2 | 0xf;
  uVar5 = 0x7fffffffffffffff;
  if (((uVar3 < 0x8000000000000000) && (uVar1 <= 0x7fffffffffffffff - (uVar1 >> 1))) &&
     (uVar4 = (uVar1 >> 1) + uVar1, uVar5 = uVar3, uVar3 < uVar4)) {
    uVar5 = uVar4;
  }
  uVar3 = uVar5 + 1;
  if (uVar3 < 0x1000) {
    if (uVar3 == 0) {
      pvVar6 = (void *)0x0;
    }
    else {
      pvVar6 = (void *)FUN_1811316e0(uVar3);
    }
  }
  else {
    uVar4 = uVar5 + 0x28;
    if (uVar4 <= uVar3) {
      uVar4 = 0xffffffffffffffff;
    }
    lVar2 = FUN_1811316e0(uVar4);
    if (lVar2 == 0) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
    pvVar6 = (void *)(lVar2 + 0x27U & 0xffffffffffffffe0);
    *(longlong *)((longlong)pvVar6 - 8) = lVar2;
  }
  param_1[2] = _Size + param_2;
  param_1[3] = uVar5;
  if (uVar1 < 0x10) {
    memcpy(pvVar6,param_1,_Size);
    memset((void *)((longlong)pvVar6 + _Size),(int)param_5,param_4);
    *(undefined1 *)((longlong)((longlong)pvVar6 + _Size) + param_4) = 0;
    *param_1 = pvVar6;
    return param_1;
  }
  _Src = (void *)*param_1;
  memcpy(pvVar6,_Src,_Size);
  memset((void *)((longlong)pvVar6 + _Size),(int)param_5,param_4);
  *(undefined1 *)((longlong)((longlong)pvVar6 + _Size) + param_4) = 0;
  pvVar6 = _Src;
  if ((0xfff < uVar1 + 1) &&
     (pvVar6 = *(void **)((longlong)_Src + -8),
     0x1f < (ulonglong)((longlong)_Src + (-8 - (longlong)pvVar6)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar6);
}



############ FUN_ 180574650 size=383 ############

undefined8 *
FUN_180574650(longlong *param_1,undefined8 *param_2,undefined8 param_3,undefined8 *param_4)

{
  char cVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  int iVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  bool bVar8;
  undefined1 local_res8 [8];
  
  puVar5 = (undefined8 *)*param_1;
  bVar8 = true;
  puVar7 = puVar5;
  if (*(char *)((longlong)puVar5[1] + 0x19) == '\0') {
    uVar2 = *param_4;
    puVar6 = (undefined8 *)puVar5[1];
    do {
      puVar7 = puVar6;
      iVar4 = FUN_18048cbc0(uVar2,puVar7[4]);
      bVar8 = iVar4 < 0;
      if (bVar8) {
        puVar6 = (undefined8 *)*puVar7;
      }
      else {
        puVar6 = (undefined8 *)puVar7[2];
      }
    } while (*(char *)((longlong)puVar6 + 0x19) == '\0');
  }
  puVar6 = puVar7;
  if (bVar8 != false) {
    if (puVar7 == (undefined8 *)*puVar5) {
      puVar5 = (undefined8 *)FUN_180574420(param_1,local_res8,1,puVar7);
      *param_2 = *puVar5;
      *(undefined1 *)(param_2 + 1) = 1;
      return param_2;
    }
    if (*(char *)((longlong)puVar7 + 0x19) == '\0') {
      puVar6 = (undefined8 *)*puVar7;
      if (*(char *)((longlong)puVar6 + 0x19) == '\0') {
        cVar1 = *(char *)((longlong)puVar6[2] + 0x19);
        puVar5 = (undefined8 *)puVar6[2];
        while (cVar1 == '\0') {
          cVar1 = *(char *)((longlong)puVar5[2] + 0x19);
          puVar6 = puVar5;
          puVar5 = (undefined8 *)puVar5[2];
        }
      }
      else {
        cVar1 = *(char *)((longlong)puVar7[1] + 0x19);
        puVar5 = (undefined8 *)puVar7[1];
        puVar6 = puVar7;
        while ((puVar3 = puVar5, cVar1 == '\0' && (puVar6 == (undefined8 *)*puVar3))) {
          cVar1 = *(char *)((longlong)puVar3[1] + 0x19);
          puVar5 = (undefined8 *)puVar3[1];
          puVar6 = puVar3;
        }
        if (*(char *)((longlong)puVar6 + 0x19) == '\0') {
          puVar6 = puVar3;
        }
      }
    }
    else {
      puVar6 = (undefined8 *)puVar7[2];
    }
  }
  iVar4 = FUN_18048cbc0(puVar6[4],*param_4);
  if (iVar4 < 0) {
    puVar5 = (undefined8 *)FUN_180574420(param_1,local_res8,bVar8,puVar7);
    *param_2 = *puVar5;
    *(undefined1 *)(param_2 + 1) = 1;
  }
  else {
    FUN_180573870();
    *param_2 = puVar6;
    *(undefined1 *)(param_2 + 1) = 0;
  }
  return param_2;
}



############ FUN_ 180574420 size=545 ############

undefined8 *
FUN_180574420(longlong *param_1,undefined8 *param_2,char param_3,undefined8 *param_4,
             undefined8 param_5,longlong *param_6)

{
  char cVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  
  if (0x555555555555553 < (ulonglong)param_1[1]) {
    FUN_180573870(0x555555555555554,param_6);
                    /* WARNING: Subroutine does not return */
    std::_Xlength_error("map/set<T> too long");
  }
  param_1[1] = param_1[1] + 1;
  param_6[1] = (longlong)param_4;
  if (param_4 == (undefined8 *)*param_1) {
    ((undefined8 *)*param_1)[1] = param_6;
    *(longlong **)*param_1 = param_6;
    lVar4 = *param_1;
  }
  else {
    if (param_3 != '\0') {
      *param_4 = param_6;
      if (param_4 == *(undefined8 **)*param_1) {
        *(longlong **)*param_1 = param_6;
      }
      goto LAB_1805744a4;
    }
    param_4[2] = param_6;
    lVar4 = *param_1;
    if (param_4 != *(undefined8 **)(lVar4 + 0x10)) goto LAB_1805744a4;
  }
  *(longlong **)(lVar4 + 0x10) = param_6;
LAB_1805744a4:
  cVar1 = *(char *)(param_6[1] + 0x18);
  plVar7 = param_6;
  do {
    if (cVar1 != '\0') {
      lVar4 = *param_1;
      *param_2 = plVar7;
      *(undefined1 *)(*(longlong *)(lVar4 + 8) + 0x18) = 1;
      return param_2;
    }
    plVar5 = (longlong *)param_6[1];
    plVar6 = *(longlong **)plVar5[1];
    if (plVar5 == plVar6) {
      lVar4 = ((longlong *)plVar5[1])[2];
      if (*(char *)(lVar4 + 0x18) == '\0') {
        *(undefined1 *)(plVar5 + 3) = 1;
        *(undefined1 *)(lVar4 + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        param_6 = *(longlong **)(param_6[1] + 8);
      }
      else {
        if (param_6 == (longlong *)plVar5[2]) {
          FUN_18047e230(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)*plVar5;
        *plVar5 = plVar6[2];
        if (*(char *)(plVar6[2] + 0x19) == '\0') {
          *(longlong **)(plVar6[2] + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
          plVar6[2] = (longlong)plVar5;
        }
        else {
          plVar2 = (longlong *)plVar5[1];
          if (plVar5 == (longlong *)plVar2[2]) {
            plVar2[2] = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
          else {
            *plVar2 = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
        }
LAB_180574619:
        plVar5[1] = (longlong)plVar6;
      }
    }
    else {
      if ((char)plVar6[3] != '\0') {
        if (param_6 == (longlong *)*plVar5) {
          FUN_18047e1d0(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)plVar5[2];
        plVar5[2] = *plVar6;
        if (*(char *)(*plVar6 + 0x19) == '\0') {
          *(longlong **)(*plVar6 + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
        }
        else {
          puVar3 = (undefined8 *)plVar5[1];
          if (plVar5 == (longlong *)*puVar3) {
            *puVar3 = plVar6;
          }
          else {
            puVar3[2] = plVar6;
          }
        }
        *plVar6 = (longlong)plVar5;
        goto LAB_180574619;
      }
      *(undefined1 *)(plVar5 + 3) = 1;
      *(undefined1 *)(plVar6 + 3) = 1;
      *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
      param_6 = *(longlong **)(param_6[1] + 8);
    }
    cVar1 = *(char *)(param_6[1] + 0x18);
  } while( true );
}



############ FUN_ 180482250 size=45 ############

void FUN_180482250(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_180480500(0x30);
  *puVar1 = *param_1;
  puVar1[1] = *param_1;
  puVar1[2] = *param_1;
  return;
}



############ FUN_ 1813bbb50 size=144 ############

undefined8 *
FUN_1813bbb50(undefined8 *param_1,undefined8 param_2,undefined8 param_3,longlong *param_4)

{
  undefined8 *puVar1;
  longlong *plVar2;
  undefined8 uVar3;
  
  *param_1 = Interpolator::vftable;
  param_1[1] = param_2;
  param_1[2] = param_3;
  param_1[10] = 0;
  puVar1 = (undefined8 *)param_4[7];
  if (puVar1 != (undefined8 *)0x0) {
    uVar3 = (**(code **)*puVar1)(puVar1,param_1 + 3,param_3,param_4,0xfffffffffffffffe);
    param_1[10] = uVar3;
  }
  plVar2 = (longlong *)param_4[7];
  if (plVar2 != (longlong *)0x0) {
    (**(code **)(*plVar2 + 0x20))(plVar2,plVar2 != param_4);
    param_4[7] = 0;
  }
  return param_1;
}



############ FUN_ 180e43410 size=5639 ############

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

void FUN_180e43410(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_res20;
  byte local_d8;
  byte local_d0;
  byte local_c0;
  byte local_90;
  
  uVar5 = DAT_182671658;
  uVar11 = DAT_1826715a4;
  uVar10 = DAT_182671590;
  uVar9 = DAT_18267158c;
  uVar8 = DAT_182671580;
  uVar7 = DAT_18267157c;
  uVar6 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar20 = (ulonglong)DAT_1826715a4;
  uVar38 = (ulonglong)DAT_182671590;
  uVar36 = DAT_1826715a4 << 0x10 | DAT_1826715a4 >> 0x10;
  uVar21 = DAT_18267158c | DAT_18267157c;
  uVar35 = (ulonglong)uVar21;
  uVar31 = DAT_182671590 << 0x10 | DAT_182671590 >> 0x10;
  uVar2 = *(uint *)(&DAT_182611e70 + (uVar20 ^ 0xeff8fe7d) + (longlong)DAT_1826718e4);
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_1826718e4) ^ DAT_182671590;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x5c8);
  uVar19 = (ulonglong)DAT_18267156c;
  uVar39 = (ulonglong)uVar31;
  uVar41 = (ulonglong)DAT_182671580;
  uVar22 = DAT_182671580 | DAT_18267156c;
  uVar30 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar26 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  uVar25 = (CONCAT44(uVar31,uVar21) ^ 0x73bebee77ec46054) + (uVar30 ^ *puVar1) ^ uVar26;
  DAT_182671574 = uVar36;
  DAT_182671584 = uVar21;
  DAT_182671588 = uVar22;
  DAT_1826715b0 = uVar31;
  *(ulonglong *)(DAT_182671560 + -0x400) = uVar25;
  uVar33 = CONCAT44(uVar5,uVar5);
  uVar28 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(ulonglong *)(lVar3 + -0x9f8) = (uVar33 ^ *(ulonglong *)(lVar3 + -0x3f0)) << 0x10 ^ uVar28;
  uVar5 = DAT_1826717a0;
  lVar3 = DAT_182671560;
  uVar32 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  bVar17 = (byte)uVar8;
  uVar40 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar16 = (ulonglong)uVar7;
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0xf351d69f)) ^ uVar33) >>
       ((bVar17 ^ 0x5d) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar7,uVar36) ^ 0x6fdf366e5adb3374) <<
       (((byte)uVar5 ^ *(byte *)(lVar3 + -0x6b8)) & 0x3f);
  uVar5 = DAT_18267172c;
  lVar4 = DAT_182671560;
  puVar34 = (ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x8119c6cb));
  uVar33 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar32 = (*(ulonglong *)(DAT_182671560 - (uVar19 ^ 0xf3419652)) ^ uVar32 | uVar28 ^ *puVar34) ^
           uVar33;
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar32;
  uVar37 = CONCAT44(uVar5,uVar5);
  uVar29 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar23 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  uVar32 = uVar37 ^ uVar32 ^ uVar33 ^ uVar25 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x318) = uVar32;
  uVar5 = DAT_182671620;
  *(ulonglong *)(lVar4 + -0x270) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x548)) + (uVar37 ^ uVar32) ^ uVar29;
  local_c0 = (byte)uVar22;
  *(ulonglong *)(lVar4 + -0x898) = (uVar30 ^ *puVar1) >> ((local_c0 ^ 0x5e) & 0x3f);
  lVar3 = DAT_182671560;
  uVar33 = CONCAT44(uVar5,uVar5);
  local_res20 = (byte)uVar11;
  *(ulonglong *)(DAT_182671560 - (uVar41 ^ 0xf010c31d)) =
       (uVar37 ^ uVar32) << (((byte)uVar21 ^ 0xf) & 0x3f) ^ uVar33;
  uVar13 = DAT_182671898;
  uVar32 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x318)) >> ((local_res20 ^ 0x79) & 0x3f);
  *(ulonglong *)(lVar3 + -0x638) = uVar32 ^ CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xeff8fd85)) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x670) | uVar32) ^ CONCAT44(uVar13,uVar13);
  uVar5 = DAT_18267168c;
  uVar32 = uVar40 ^ *(ulonglong *)(lVar3 + -0x6b8);
  *(uint *)(lVar3 + -0x328) = *(uint *)(lVar3 + -0x910) ^ DAT_182671798 | uVar9 ^ 0x58ee66ec;
  uVar12 = DAT_1826717ec;
  uVar42 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x110) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar36 ^ 0xfe75ed88)) ^ uVar42 ^ CONCAT44(uVar13,uVar13) ^
       uVar29 ^ *(ulonglong *)(lVar3 + -0x3f0);
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (uVar26 ^ *(ulonglong *)(DAT_182671560 + -0x400)) + uVar32 ^ uVar23;
  uVar12 = DAT_182671648;
  lVar3 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671648,DAT_182671648);
  local_d8 = (byte)uVar7;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0xfe75e9e8)) =
       uVar32 << (((byte)uVar6 ^ 0x7b) & 0x3f) ^ uVar30;
  uVar32 = *(ulonglong *)(lVar3 + -0x270);
  uVar25 = (uVar40 ^ *(ulonglong *)(lVar3 + -0x6b8)) >> ((local_d8 ^ 0x1e) & 0x3f);
  uVar33 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar3 + -0x748) = uVar25 ^ CONCAT44(DAT_182671764,DAT_182671764);
  uVar5 = DAT_182671720;
  uVar25 = (uVar25 | uVar30 ^ *(ulonglong *)(lVar3 + -0x610)) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x548) = uVar25;
  uVar37 = CONCAT44(uVar5,uVar5);
  puVar24 = (ulonglong *)(lVar3 - (uVar35 ^ 0xcf3bc6c3));
  *puVar1 = uVar37 ^ uVar33 ^ uVar23 ^ uVar25 ^ *puVar24;
  uVar25 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xfe75e760)) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0xf010c0a5)) ^ uVar37) + (uVar29 ^ uVar32) ^ uVar25;
  uVar26 = (uVar37 ^ *puVar1) << 0x17;
  *(ulonglong *)(lVar3 + -0x318) = uVar26 ^ CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar3 + -0x638) =
       (CONCAT44(uVar31,uVar11) ^ 0xb233a41c684bf716) <<
       (((byte)uVar13 ^ *(byte *)(lVar3 + -0x3f0)) & 0x3f);
  uVar5 = _DAT_182671618;
  uVar33 = (*(ulonglong *)(lVar3 - (uVar39 ^ 0xeff8fbbd)) ^ uVar37) >> ((local_res20 ^ 0x5c) & 0x3f)
  ;
  *(ulonglong *)(lVar3 + -0x670) = uVar33 ^ CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar13 = DAT_182671790;
  uVar32 = CONCAT44(uVar5,uVar5);
  uVar33 = (uVar33 | uVar26) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x400) = uVar33;
  uVar40 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x6b8) =
       uVar40 ^ uVar32 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x898) ^ uVar33;
  uVar13 = DAT_1826717c0;
  uVar9 = DAT_18267158c;
  uVar33 = CONCAT44(DAT_182671600,DAT_182671600);
  uVar32 = (ulonglong)DAT_1826717e4;
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x8119ce23)) ^ uVar42) +
           (*(ulonglong *)(lVar3 + -0x9f8) ^ uVar23) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x610) = uVar26;
  *(byte *)(lVar3 + -0x9cb) = *(byte *)(*(ulonglong *)(lVar3 + -0xae0) ^ uVar32) ^ (byte)uVar13;
  uVar5 = DAT_18267164c;
  local_d0 = (byte)uVar10;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar19 ^ 0xf3419152)) ^ uVar42) << ((local_d0 ^ 0xd0) & 0x3f);
  *(ulonglong *)(lVar3 + -0x748) = uVar23 ^ CONCAT44(DAT_182671848,DAT_182671848);
  lVar4 = DAT_182671560;
  local_90 = (byte)(uVar11 >> 0x10);
  *(uint *)(lVar3 + -0x754) = (DAT_1826715b0 ^ 0xffffffc8) << 0x18;
  uVar29 = (uVar42 ^ *(ulonglong *)(lVar3 + -0x110)) >> ((local_90 ^ 0xe0) & 0x3f);
  uVar32 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar3 + -0x548) = uVar29 ^ CONCAT44(uVar5,uVar5);
  uVar5 = DAT_182671744;
  uVar23 = (uVar23 | uVar29) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x270) = uVar23;
  uVar29 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar4 + -0x3f0) = uVar29 ^ uVar32 ^ uVar33 ^ uVar23 ^ uVar26;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xcf3bc903)) =
       CONCAT44(uVar8,uVar9) ^ 0xceb95ff9fbfeff8f | 0x42380bf1b9485f0d;
  uVar29 = uVar29 ^ *(ulonglong *)(lVar4 + -0x3f0);
  uVar42 = CONCAT44(DAT_182671644,DAT_182671644);
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar19 ^ 0xf34198da)) ^ uVar25) + uVar29 ^ uVar42;
  uVar14 = DAT_182671880;
  uVar32 = uVar29 << ((local_d0 ^ 0xfd) & 0x3f);
  uVar23 = uVar32 ^ CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar4 + -0x318) = uVar23;
  uVar5 = DAT_18267171c;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x670) =
       (CONCAT44(uVar7,uVar11) ^ 0xad5d1060d7d17ecb) << (((byte)uVar23 ^ (byte)uVar14) & 0x3f);
  uVar29 = uVar29 >> (((byte)uVar6 ^ 0x79) & 0x3f);
  uVar25 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x400) = uVar29 ^ CONCAT44(uVar13,uVar13);
  *puVar34 = (uVar32 | uVar29) ^ uVar25;
  uVar37 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar3 + -0x110) =
       uVar37 ^ uVar25 ^ uVar42 ^ *(ulonglong *)(lVar3 + -0x9f8) ^ *puVar1;
  uVar23 = CONCAT44(DAT_182671828,DAT_182671828);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xeff8fb3d)) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0xcf3bc983)) ^ uVar40) +
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x610)) ^ uVar23;
  uVar33 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar3 - (uVar20 ^ 0xeff8f93d)) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0x6b8)) << (((byte)uVar9 ^ 0x16) & 0x3f) ^ uVar33;
  uVar5 = DAT_1826717b8;
  uVar39 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  uVar26 = (uVar40 ^ *(ulonglong *)(lVar3 + -0x6b8)) >> ((local_d8 ^ 2) & 0x3f);
  uVar29 = uVar26 ^ uVar39;
  *(ulonglong *)(lVar3 + -0x270) = uVar29;
  *(ulonglong *)(lVar3 + -0x638) =
       (CONCAT44(uVar10,uVar21) ^ 0xeeca7d79ad0c5516) + 0xc55c2b9e22ae92c5;
  uVar32 = CONCAT44(DAT_182671628,DAT_182671628);
  uVar26 = (uVar33 ^ *(ulonglong *)(lVar3 + -0x748) | uVar26) ^ uVar32;
  uVar33 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar3 + -0x898) = uVar26;
  *(ulonglong *)(lVar3 + -0x670) =
       uVar33 ^ uVar26 ^ uVar32 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x548);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xcf3bcccb)) =
       (CONCAT44(uVar36,uVar10) ^ 0xd2563695e93361a9) >> (((byte)uVar5 ^ (byte)uVar29) & 0x3f);
  uVar26 = (CONCAT44(uVar36,uVar36) ^ 0x3bac79c387b6ca6e) +
           (uVar33 ^ *(ulonglong *)(lVar3 + -0x670));
  uVar33 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar3 + -0x318) = uVar26 ^ uVar30;
  uVar9 = DAT_1826715a8;
  lVar3 = DAT_182671560;
  uVar32 = (CONCAT44(DAT_1826715a8,uVar31) ^ 0xc552a8f9b4151f61) + (uVar42 ^ *puVar1);
  puVar34 = (ulonglong *)(DAT_182671560 - (uVar16 ^ 0xcf338201));
  *(ulonglong *)(DAT_182671560 + -0x400) = uVar32 ^ uVar33;
  uVar5 = DAT_18267170c;
  *(ulonglong *)(lVar3 + -0x9f8) = (*puVar34 ^ uVar30) + uVar32 ^ uVar25;
  uVar8 = DAT_18267159c;
  uVar33 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x610) = uVar26 << ((local_c0 ^ 0x76) & 0x3f) ^ uVar33;
  uVar5 = DAT_182671894;
  bVar18 = (byte)DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar7,uVar22) ^ 0x98b115d78f24bab6) <<
       (((byte)uVar12 ^ *(byte *)(lVar3 + -0x318)) & 0x3f);
  uVar7 = DAT_18267158c;
  uVar40 = CONCAT44(uVar5,uVar5);
  uVar26 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0x8119c90b)) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0x318)) >> ((bVar18 ^ 0x39) & 0x3f) ^ uVar40;
  lVar3 = DAT_182671560;
  uVar32 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0x48e00f18)) =
       (*(ulonglong *)(DAT_182671560 - (uVar35 ^ 0xcf3bc92b)) ^ uVar33 |
       *(ulonglong *)(DAT_182671560 + -0x638) ^ uVar40) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x898) =
       uVar39 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x9f8) ^ *(ulonglong *)(lVar3 + -0x748) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x270) =
       -0x5493af303a79c3e1 - (CONCAT44(uVar36,uVar7) ^ 0x2879a0db7bb51167);
  uVar8 = DAT_1826716d0;
  uVar29 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar30 = (ulonglong)DAT_1826716d0;
  *(ulonglong *)(lVar3 + -0x3f0) =
       (CONCAT44(uVar7,uVar10) ^ 0xaa68bd1af9ea59dd) + (uVar37 ^ *(ulonglong *)(lVar3 + -0x110)) ^
       uVar29;
  uVar32 = (CONCAT44(uVar6,uVar6) ^ 0x574a1d2f1516b2a0) + (uVar23 ^ *(ulonglong *)(lVar3 + -0x548));
  uVar23 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(lVar3 + -0x670) = uVar32 ^ CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xcf3384d1)) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xfe75ec08)) ^ uVar29) + uVar32 ^ uVar23;
  uVar35 = *(ulonglong *)(lVar3 + -0x3f0) ^ uVar29;
  uVar32 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  bVar18 = (byte)DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0x400) = uVar35 << ((local_90 ^ 0xd9) & 0x3f) ^ uVar32;
  uVar35 = uVar35 >> ((bVar18 ^ 0xff) & 0x3f);
  uVar33 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar35 ^ CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar26 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0x8119cb33)) ^ uVar32 | uVar35) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x318) = uVar26;
  uVar5 = DAT_182671568;
  uVar35 = CONCAT44(uVar8,uVar8);
  uVar32 = CONCAT44(DAT_182671568,uVar9);
  uVar26 = uVar26 ^ *puVar1 ^ uVar35 ^ uVar33 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x610) = uVar26;
  *(ulonglong *)(lVar3 + -0x638) = uVar32 ^ 0x814ed3b82425a487;
  uVar7 = DAT_182671594;
  uVar32 = (ulonglong)DAT_182671594;
  uVar33 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xf010c225)) =
       (uVar26 ^ uVar35) + (uVar25 ^ *(ulonglong *)(lVar3 + -0x9f8)) ^ uVar33;
  *(uint *)(lVar3 + -0x5cc) =
       (DAT_1826715a4 ^ 0x693af4e) << ((byte)*(undefined4 *)(lVar3 + -0x8c) & 0x1f);
  uVar26 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar3 + -0x270) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar35) << ((local_90 ^ 0xd6) & 0x3f) ^ uVar26;
  lVar4 = DAT_182671560;
  uVar25 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671578 ^ 0x475b5ce0)) =
       ((ulonglong)(uVar8 >> 0x12) | uVar30 << 0xe) ^ *(ulonglong *)(lVar3 + -0x610) >> 0x12 ^
       uVar25;
  uVar35 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x6dc515b8)) =
       (*(ulonglong *)(lVar4 + -0x270) ^ uVar26 | uVar25 ^ *(ulonglong *)(lVar4 + -0x110)) ^ uVar35;
  uVar32 = CONCAT44(DAT_182671570,uVar36);
  uVar30 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar4 + -0x670) =
       *(ulonglong *)(lVar4 + -0x748) ^ *(ulonglong *)(lVar4 + -0x548) ^ uVar30 ^ uVar35 ^ uVar33;
  *(uint *)(lVar4 + -0x874) = (DAT_18267158c ^ 0x3538538) * -0x28e292c2;
  uVar9 = DAT_1826715b4;
  uVar25 = (*puVar1 ^ uVar23) + (uVar39 ^ *(ulonglong *)(lVar4 + -0x898)) ^ uVar28;
  *(ulonglong *)(lVar4 + -0x3f0) = uVar25;
  uVar12 = DAT_182671614;
  *(ulonglong *)(lVar4 + -0x400) = uVar32 ^ CONCAT44(uVar6,uVar11) ^ 0xfd0c469f3a17d743;
  uVar35 = (uVar39 ^ *(ulonglong *)(lVar4 + -0x898)) << (((byte)DAT_182671598 ^ 0xf3) & 0x3f);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar35 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671604;
  uVar32 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x37fda3f7)) ^ uVar39) >>
           (((byte)uVar5 ^ 0xcf) & 0x3f);
  *(ulonglong *)(lVar4 + -0x318) = uVar32 ^ uVar40;
  uVar13 = DAT_182671748;
  lVar3 = DAT_182671560;
  uVar41 = CONCAT44(uVar12,uVar12);
  uVar32 = (uVar35 | uVar32) ^ uVar41;
  *(ulonglong *)(lVar4 + -0x638) = uVar32;
  uVar5 = DAT_182671740;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar32 ^ uVar28 ^ uVar25 ^ uVar23 ^ uVar41;
  uVar8 = DAT_182671598;
  uVar37 = CONCAT44(uVar5,uVar5);
  uVar32 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 + -0x610) =
       (*puVar24 ^ uVar23) + (*(ulonglong *)(lVar3 + -0x748) ^ uVar33) ^ uVar37;
  *(undefined8 *)(lVar3 - (uVar32 ^ 0x33cf1bf1)) = 0x6800000000000000;
  uVar5 = DAT_1826716a0;
  uVar35 = CONCAT44(DAT_182671754,DAT_182671754);
  puVar27 = (ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xfffffeef));
  *puVar27 = (*(ulonglong *)(lVar3 + -0x9f8) ^ uVar23) << ((bVar17 ^ 0x57) & 0x3f) ^ uVar35;
  uVar33 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0xeff8fb3d)) =
       (*(ulonglong *)(DAT_182671560 + -0x9f8) ^ uVar23) >> (((byte)uVar8 ^ 0xf9) & 0x3f) ^ uVar33;
  lVar3 = DAT_182671560;
  puVar34 = (ulonglong *)(DAT_182671560 + -0x110);
  uVar20 = CONCAT44(DAT_182671670,DAT_182671670);
  puVar24 = (ulonglong *)(DAT_182671560 + -0x548);
  uVar32 = *(ulonglong *)(DAT_182671560 + -0x610);
  *(uint *)(DAT_182671560 + -0x3d4) = (uVar7 ^ 0xbe187f66) + (uVar9 ^ 0x3e0a8dba);
  uVar33 = (uVar35 ^ *puVar34 | *puVar24 ^ uVar33) ^ uVar20;
  *puVar1 = uVar33;
  uVar35 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar3 + -0x400) = uVar32 ^ uVar35 ^ uVar33 ^ uVar20 ^ uVar37;
  uVar5 = DAT_182671700;
  uVar23 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar3 + -0x898) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0xcf338769)) ^ uVar30) +
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x3f0)) ^ uVar23;
  uVar12 = DAT_182671760;
  uVar28 = (ulonglong)DAT_182671570;
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a8 ^ 0x8119c943)) ^ uVar30) <<
           ((bVar17 ^ 0x7b) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar26 ^ CONCAT44(uVar5,uVar5);
  uVar5 = DAT_1826716f4;
  lVar4 = DAT_182671560;
  uVar25 = (*(ulonglong *)(lVar3 + -0x670) ^ uVar30) >> ((local_d0 ^ 0xd2) & 0x3f);
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x318) = uVar25 ^ uVar33;
  uVar20 = CONCAT44(uVar5,uVar5);
  uVar25 = (uVar25 | uVar26) ^ uVar20;
  *(ulonglong *)(lVar4 + -0x748) = uVar25;
  uVar8 = DAT_1826715ac;
  uVar30 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar4 + -0x270) =
       -0x46e2f419595ea2a8 - (*(ulonglong *)(lVar4 - (uVar28 ^ 0x33cf1fb9)) ^ uVar41);
  uVar26 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(lVar4 + -0x9f8) =
       *(ulonglong *)(lVar4 - (uVar30 ^ 0x8504078)) ^ uVar25 ^ uVar26 ^ uVar20 ^ uVar23;
  uVar12 = _DAT_18267161c;
  uVar5 = DAT_182671568;
  bVar17 = (byte)DAT_182671568;
  uVar30 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar4 + -0x110) =
       (*(ulonglong *)(lVar4 - (uVar16 ^ 0xcf3388e1)) ^ uVar26) + (uVar32 ^ uVar37) ^ uVar29;
  lVar3 = DAT_182671560;
  uVar25 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (*(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x48e001a8)) ^ uVar26) << ((bVar17 ^ 0xdb) & 0x3f)
       ^ uVar25;
  *puVar1 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xf351d47f)) ^ uVar29) -
            (CONCAT44(uVar11,uVar7) ^ 0xb02747543fd6f006);
  lVar3 = DAT_182671560;
  uVar32 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       (*(ulonglong *)(DAT_182671560 + -0x9f8) ^ uVar26) >> ((local_res20 ^ 0x55) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xf3419632)) =
       (CONCAT44(uVar6,uVar8) ^ 0xa5d8966d95192a0a) - (CONCAT44(uVar10,uVar5) ^ 0x8207fdd11ade7eba);
  uVar5 = DAT_1826717d4;
  uVar20 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0xcf338451)) ^ uVar25 |
       *(ulonglong *)(lVar3 + -0x3f0) ^ uVar32) ^ uVar20;
  *(ulonglong *)(lVar3 + -0x638) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0x33cf1cc9)) ^ uVar25 ^ uVar33 ^
       *(ulonglong *)(lVar3 + -0x318);
  uVar32 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar3 + -0x270) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0x48e00ee8)) ^ CONCAT44(uVar5,uVar5) ^ uVar20 ^ *puVar27 ^
       uVar29;
  uVar5 = _DAT_182671838;
  *(ulonglong *)(lVar3 + -0x748) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xfffff767)) ^ uVar23) +
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x400)) ^ CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar3 + -0x610) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x400)) << (((byte)DAT_1826715a0 ^ 0x3e) & 0x3f) ^
       CONCAT44(uVar5,uVar5);
  *puVar1 = *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xf351d027)) ^ CONCAT44(uVar22,uVar21) ^
            uVar25 ^ 0xa385bfe69be2b78;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar2 ^ uVar36;
  return;
}



############ FUN_ 180f0b2f0 size=4732 ############

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

void FUN_180f0b2f0(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  byte bVar15;
  ulonglong uVar16;
  uint *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  byte *pbVar23;
  uint *puVar24;
  uint uVar25;
  ulonglong uVar26;
  byte bVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint *puVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar43;
  ulonglong uVar44;
  uint *puVar45;
  byte local_d8;
  ulonglong uVar39;
  ulonglong uVar42;
  
  uVar8 = DAT_182671748;
  uVar7 = DAT_1826715a4;
  uVar12 = DAT_1826715a0;
  uVar32 = DAT_18267159c;
  uVar33 = DAT_182671594;
  uVar25 = DAT_18267158c;
  uVar22 = DAT_182671578;
  uVar13 = DAT_182671574;
  lVar2 = DAT_182671560;
  uVar37 = (ulonglong)DAT_18267158c;
  uVar43 = (ulonglong)DAT_182671574;
  uVar44 = (ulonglong)DAT_182671594;
  uVar16 = (ulonglong)DAT_182671578;
  uVar29 = DAT_18267159c ^ DAT_182671594;
  uVar38 = DAT_18267158c + DAT_182671574;
  uVar39 = (ulonglong)uVar38;
  DAT_182671598 = DAT_1826715a0 << 0x10 | DAT_1826715a0 >> 0x10;
  uVar41 = DAT_1826715a4 - DAT_182671578;
  uVar42 = (ulonglong)uVar41;
  uVar28 = *(uint *)(&DAT_182611e78 + DAT_1826719d8) ^ DAT_182671598;
  uVar11 = *(uint *)(&DAT_182611e80 + DAT_1826719d8) ^ DAT_1826715a0;
  DAT_18267156c = uVar29;
  DAT_182671588 = uVar38;
  DAT_1826715ac = uVar41;
  *(uint *)(DAT_182671560 + -0x27c) =
       *(uint *)(DAT_182671560 + -0x844) ^ DAT_182671860 ^ DAT_182671748;
  uVar36 = DAT_182671720;
  *(ulonglong *)(lVar2 + -0x510) =
       CONCAT44(uVar41,uVar22) ^ 0x5757ec1d82a8aa23 | CONCAT44(uVar12,uVar7) ^ 0xd8edfa7c424607fd;
  uVar35 = DAT_182671778;
  uVar14 = (ulonglong)uVar32;
  puVar17 = (uint *)(lVar2 - (uVar14 ^ 0xac9ed04));
  *puVar17 = *(uint *)(lVar2 + -0x5cc) ^ DAT_182671778 ^ DAT_182671850;
  *(uint *)(lVar2 + -0x344) =
       *(uint *)(lVar2 - ((ulonglong)uVar33 ^ 0x5ff96dcb)) ^ uVar36 ^ DAT_182671860;
  *(uint *)(lVar2 + -0x874) = *(uint *)(lVar2 - (uVar37 ^ 0x2a7cb5c9)) ^ DAT_1826717d4 ^ uVar35;
  lVar3 = DAT_182671560;
  *(uint *)(lVar2 + -0x328) = (uVar29 ^ 0x26da3a8c) * 0x1936dd63;
  bVar10 = (byte)DAT_1826717f8;
  uVar21 = DAT_18267173c;
  uVar6 = DAT_182671598;
  lVar2 = DAT_182671560;
  uVar40 = (ulonglong)DAT_182671598;
  pbVar23 = (byte *)(*(longlong *)(lVar3 - ((ulonglong)uVar7 ^ 0x3bfe2ba8)) +
                     (CONCAT44(uVar13,uVar38) ^ 0x7114c00318dfccd) * 0x20 +
                    (CONCAT44(uVar7,uVar38) ^ 0x3bfe2358318dfcd3));
  *(ulonglong *)(DAT_182671560 + -0xcc0) = (ulonglong)pbVar23 ^ (ulonglong)DAT_1826717fc;
  uVar30 = DAT_1826718c0;
  *(byte *)(lVar2 + -0x41) = *pbVar23 ^ bVar10 ^ (byte)DAT_182671694;
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0x745eaca5)) =
       (*(byte *)(DAT_182671560 - (uVar40 ^ 0x745eaa9c)) ^ bVar10) ^ uVar30;
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 + -0x874) ^ DAT_1826717d4) + (uVar33 ^ 0x560e4962) ^ DAT_18267174c;
  bVar1 = (byte)uVar29;
  uVar20 = (*(uint *)(lVar2 + -0x678) ^ uVar30) << ((bVar1 ^ 0xa6) & 0x1f) ^ DAT_1826718cc;
  puVar34 = (uint *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0xaadd7d3a));
  *(uint *)(lVar2 + -0x374) = uVar20;
  uVar18 = (ulonglong)uVar29;
  *(uint *)(lVar2 - (uVar44 ^ 0x5ff968e3)) =
       (*puVar34 ^ DAT_18267174c) - (uVar20 ^ DAT_1826718cc) ^ DAT_18267170c;
  *(uint *)(lVar2 - (uVar18 ^ 0x553083cb)) =
       (*(uint *)(lVar2 + -0x754) ^ DAT_18267170c) * (*(uint *)(lVar2 + -0x344) ^ uVar36) ^ uVar21;
  uVar20 = (*(uint *)(lVar2 + -0x678) ^ uVar30) * (DAT_182671598 ^ 0x745eaac3) ^ DAT_18267172c;
  *(uint *)(DAT_182671560 + -0x910) = uVar20;
  lVar2 = DAT_182671560;
  uVar20 = uVar20 ^ DAT_18267172c;
  local_d8 = (byte)uVar22;
  uVar19 = (ulonglong)DAT_1826715a0;
  puVar24 = (uint *)(DAT_182671560 + -0x47c);
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (CONCAT44(uVar7,uVar32) ^ 0x7dd475b34aaa67f5) >> (local_d8 & 0x3f);
  uVar30 = DAT_1826716cc;
  *(uint *)(lVar2 - (uVar19 ^ 0xaadd7c1a)) = uVar20 + (uVar21 ^ *puVar24) ^ DAT_1826716cc;
  bVar15 = (byte)uVar41 ^ 0xd5;
  *(uint *)(lVar2 - (uVar37 ^ 0x2a7cb501)) =
       (*(uint *)(lVar2 + -0x844) ^ uVar30) << (bVar15 & 0x1f) ^ DAT_182671818;
  *(ulonglong *)(lVar2 + -0x9e8) = *(ulonglong *)(lVar2 + -0x898) >> 0x12;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar39 ^ 0x318dfeb1)) =
       (*(uint *)(lVar2 - (uVar44 ^ 0x5ff967f3)) ^ uVar30) >> ((bVar1 ^ 0xa4) & 0x1f) ^
       DAT_18267181c;
  uVar30 = *(uint *)(lVar3 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar3 + -0x504) =
       (*(uint *)(lVar3 + -0x27c) ^ DAT_18267181c | *(uint *)(lVar3 + -0x5cc) ^ DAT_182671818) ^
       DAT_182671890;
  uVar21 = DAT_182671764;
  uVar30 = uVar30 + (*(uint *)(lVar3 + -0x344) ^ uVar36) ^ DAT_1826716d8;
  *(uint *)(lVar3 + -0x328) = uVar30;
  uVar30 = uVar30 ^ DAT_182671710 ^ DAT_1826716d8;
  *(uint *)(lVar3 + -0x874) = uVar30;
  *(uint *)(lVar3 + -0x964) =
       *(uint *)(lVar3 - ((ulonglong)uVar13 ^ 0x7114904)) ^ DAT_182671890 ^ uVar8;
  *(uint *)(lVar3 - (uVar18 ^ 0x553084c3)) = uVar30 ^ uVar21 ^ DAT_182671710;
  uVar30 = DAT_182671794;
  uVar31 = DAT_182671794 & 0xff;
  *(uint *)(lVar3 + -0x754) = *(uint *)(lVar3 + -0x964) ^ DAT_182671858 ^ uVar8;
  uVar20 = DAT_1826717cc;
  uVar26 = (ulonglong)DAT_1826717cc;
  pbVar23 = (byte *)(*(longlong *)(lVar3 + -0x8f0) + 9 +
                    (CONCAT44(uVar41,uVar6) ^ 0x28d7ded8745eaadd) * 0x20);
  *(ulonglong *)(lVar3 + -0x810) = (ulonglong)pbVar23 ^ uVar26;
  lVar2 = DAT_182671560;
  bVar27 = (byte)DAT_182671694;
  bVar10 = *pbVar23 ^ (byte)uVar30 ^ bVar27;
  *(byte *)(lVar3 + -0xc41) = bVar10;
  uVar36 = DAT_182671718;
  *(uint *)(lVar2 + -0x678) = uVar31 ^ bVar10 ^ DAT_182671718;
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 - (uVar16 ^ 0x132644c1)) =
       *(byte *)(*(ulonglong *)(DAT_182671560 + -0x700) ^ (ulonglong)DAT_1826717e0) ^ bVar27;
  uVar8 = DAT_18267179c;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x47c) =
       (*(uint *)(lVar2 + -0x754) ^ DAT_182671858) + (uVar33 ^ 0x560e4962) ^ DAT_18267179c;
  *(uint *)(lVar3 - (uVar14 ^ 0xac9e110)) =
       (*(uint *)(lVar3 - (uVar42 ^ 0x28d7d8a0)) ^ uVar36) << (((byte)uVar7 ^ 0x49) & 0x1f) ^ uVar35
  ;
  *(ulonglong *)(lVar3 + -0xa0) =
       CONCAT44(uVar7,uVar25) ^ *(ulonglong *)(lVar3 + -0x8a8) ^ 0xe78ef5e154546691;
  uVar30 = DAT_1826715f4;
  *(uint *)(lVar3 - (uVar16 ^ 0x13264cc4)) =
       (uVar8 ^ *(uint *)(lVar3 + -0x47c)) - (*(uint *)(lVar3 - (uVar39 ^ 0x318df5dd)) ^ uVar35) ^
       DAT_1826716c4;
  uVar8 = DAT_182671780;
  uVar35 = (*(uint *)(lVar3 + -0x844) ^ DAT_1826716c4) * (uVar21 ^ *(uint *)(lVar3 + -0x374));
  *(uint *)(lVar3 + -0x5cc) = uVar35 ^ uVar30;
  *(uint *)(lVar3 + -0x27c) = (*(uint *)(lVar3 + -0x678) ^ uVar36) * 9 ^ DAT_18267175c;
  uVar9 = DAT_182671880;
  lVar2 = DAT_182671560;
  *(uint *)(lVar3 + -0x344) =
       (*(uint *)(lVar3 - (uVar40 ^ 0x745ea8a1)) ^ DAT_18267175c) + uVar35 ^ uVar8;
  lVar4 = DAT_182671560;
  puVar45 = (uint *)(lVar3 - (uVar14 ^ 0xac9eb44));
  *(uint *)(DAT_182671560 + -0x328) =
       (*puVar45 ^ uVar8) << (((byte)uVar13 ^ 0xd) & 0x1f) ^ DAT_182671810;
  uVar36 = (*(uint *)(lVar4 - (uVar16 ^ 0x132647c4)) ^ uVar8) >> (((byte)uVar7 ^ 0x4b) & 0x1f) ^
           _DAT_1826715d8;
  *(uint *)(lVar4 + -0x504) = uVar36;
  *(uint *)(lVar2 - (uVar37 ^ 0x2a7cb8b9)) =
       (*(uint *)(lVar4 - (uVar39 ^ 0x318dffe5)) ^ DAT_182671810 | uVar36 ^ _DAT_1826715d8) ^
       DAT_182671738;
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) + (uVar21 ^ *(uint *)(lVar2 + -0x374)) ^ uVar9;
  uVar8 = DAT_182671768;
  uVar36 = DAT_18267169c;
  uVar40 = (ulonglong)DAT_182671834;
  *(uint *)(lVar2 - (uVar16 ^ 0x132643d4)) =
       *(uint *)(lVar2 - (uVar18 ^ 0x55308ed3)) ^ DAT_18267169c ^ uVar9;
  uVar21 = *(uint *)(lVar2 + -0x874) ^ DAT_1826718b8 ^ DAT_182671738;
  uVar19 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x1f0) =
       CONCAT44(uVar22,uVar22) ^ CONCAT44(uVar12,uVar7) ^ 0x5d5153c92998a818;
  *(uint *)(lVar2 - (uVar19 ^ 0xaadd7022)) = uVar21;
  *(uint *)(lVar2 + -0x910) = *(uint *)(lVar2 + -0x754) ^ uVar8 ^ uVar36;
  uVar12 = DAT_1826718c8 ^ DAT_1826718b8;
  *(ulonglong *)(lVar2 + -0x80) =
       (CONCAT44(uVar33,uVar41) ^ 0xfc03f4343c3cca4d) << (((byte)uVar25 ^ 0xf8) & 0x3f);
  uVar22 = DAT_1826715a0;
  *(uint *)(lVar2 + -0x844) = uVar12 ^ *(uint *)(lVar2 + -0x47c);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x55308c8f)) =
       *(longlong *)(lVar2 - (uVar44 ^ 0x5ff96747)) +
       (CONCAT44(uVar7,uVar22) ^ 0x3bfe2358aadd745e) * 0x20 +
       (CONCAT44(uVar32,uVar25) ^ 0xac9e8002a7cb0d9) ^ uVar40;
  uVar31 = DAT_182671814;
  *(ulonglong *)(lVar2 + -0x240) =
       (CONCAT44(uVar29,uVar29) ^ 0xfe3297aa7d879c99) +
       (CONCAT44(uVar41,uVar6) ^ 0x50a036b8ecf8d983);
  uVar22 = _DAT_182671618;
  bVar10 = *(byte *)(*(ulonglong *)(lVar2 - (uVar43 ^ 0x7114738)) ^ uVar40) ^ (byte)DAT_182671694 ^
           (byte)uVar31;
  *(byte *)(lVar2 + -0xc41) = bVar10;
  *(uint *)(lVar2 - (uVar16 ^ 0x132642f8)) = (uint)bVar10 ^ uVar31 & 0xff ^ uVar22;
  uVar32 = *(uint *)(lVar2 + -0x844) ^ DAT_1826718c8;
  *(ulonglong *)(lVar2 + -0x548) = *(ulonglong *)(lVar2 + -0x2a0) | 0x514581fcf0dd94b1;
  *(uint *)(lVar2 - (uVar43 ^ 0x71149cc)) = uVar32 + (DAT_182671588 ^ 0x387ada18) ^ DAT_182671664;
  *(uint *)(lVar2 - (uVar14 ^ 0xac9ea7c)) =
       (*(uint *)(lVar2 + -0x678) ^ uVar22) << ((bVar1 ^ 0xa6) & 0x1f) ^ uVar20;
  *(uint *)(lVar2 - (uVar39 ^ 0x318dff89)) =
       (*(uint *)(lVar2 - (uVar44 ^ 0x5ff96a7b)) ^ DAT_182671664) -
       (*(uint *)(lVar2 + -0x27c) ^ uVar20) ^ DAT_1826717e8;
  uVar20 = *(uint *)(lVar2 + -0x344) ^ DAT_1826717e8;
  *(ulonglong *)(lVar2 + -0xbf0) =
       *(ulonglong *)(lVar2 - (uVar14 ^ 0xac9ed48)) | CONCAT44(uVar29,uVar6) ^ 0xd11f3ad323792712;
  uVar21 = DAT_1826716bc;
  uVar20 = uVar20 * (*(uint *)(lVar2 + -0x910) ^ uVar8);
  *(uint *)(lVar2 + -0x328) = uVar20 ^ DAT_1826716bc;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar13,uVar25) ^ 0x160034df6beee0f) <<
       ((byte)*(undefined8 *)(lVar2 + -0x240) & 0x3f);
  uVar35 = DAT_1826717a8;
  uVar12 = DAT_182671688;
  uVar32 = DAT_182671668;
  uVar22 = (*(uint *)(lVar2 - (uVar39 ^ 0x318dfab5)) ^ uVar22) * (DAT_182671578 ^ 0x13264494);
  *(uint *)(lVar2 + -0x504) = uVar22 ^ DAT_182671668;
  *(uint *)(lVar2 + -0x374) = uVar22 + uVar20 ^ uVar35;
  puVar24 = (uint *)(lVar2 - (uVar39 ^ 0x318dffb9));
  *(uint *)(lVar2 + -0x964) = (*puVar24 ^ uVar35) << 0xd ^ uVar12;
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar18 ^ 0x55308fc3)) =
       (*puVar24 ^ uVar35) >> (((byte)uVar41 ^ 0xcb) & 0x1f) ^ DAT_1826716f8;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x754) =
       (*(uint *)(DAT_182671560 - (uVar43 ^ 0x7114f28)) ^ uVar21) <<
       (((byte)*(undefined4 *)(DAT_182671560 + -0x964) ^ (byte)uVar12) & 0x1f);
  uVar21 = DAT_1826716c8;
  puVar24 = (uint *)(lVar3 - (uVar44 ^ 0x5ff96bcb));
  *puVar24 = (*(uint *)(DAT_182671560 + -0x874) ^ DAT_1826716f8 | *puVar34 ^ uVar12) ^ DAT_1826716c8
  ;
  uVar22 = DAT_182671694;
  uVar5 = DAT_182671580;
  lVar3 = DAT_182671560;
  uVar12 = (*(uint *)(lVar2 - (uVar14 ^ 0xac9ebc8)) ^ DAT_182671624) +
           (*(uint *)(lVar2 + -0x910) ^ uVar8);
  *(uint *)(DAT_182671560 + -0x844) = uVar12 ^ DAT_182671704;
  uVar12 = uVar12 ^ uVar22;
  *(uint *)(lVar3 + -0x5cc) = uVar12;
  *(uint *)(lVar3 + -0x27c) = uVar21 ^ *puVar24 ^ DAT_1826717fc;
  uVar14 = (ulonglong)DAT_1826717d8;
  *(ulonglong *)(lVar3 + -0x1d8) =
       *(longlong *)(lVar3 - (uVar16 ^ 0x132646c0)) - (CONCAT44(uVar38,uVar7) ^ 0x4ecdf8d8b4d6db5b);
  *(uint *)(lVar3 - (uVar42 ^ 0x28d7dd9c)) = uVar12 ^ uVar9 ^ uVar22;
  uVar12 = DAT_1826716d4;
  *(uint *)(lVar3 + -0x678) = *(uint *)(lVar3 + -0x27c) ^ DAT_1826716d4 ^ DAT_1826717fc;
  *(ulonglong *)(lVar3 + -0x148) =
       (CONCAT44(uVar25,uVar33) ^ 0x2a7cb0cd5ff96fb7) * 0x20 + *(longlong *)(lVar3 + -0x8f0) + 0x1f
       ^ uVar14;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671584 ^ 0xa0069a28)) =
       CONCAT44(uVar13,uVar5) ^ 0x764e3a6f1d9fe806 | CONCAT44(uVar6,uVar29) ^ 0xb1c374c1c03e9aee;
  *(byte *)(lVar3 - (uVar37 ^ 0x2a7cb08c)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x148) ^ uVar14) ^ (byte)uVar22 ^ (byte)uVar30;
  uVar25 = _DAT_182671610;
  uVar40 = (ulonglong)DAT_1826715b4;
  uVar14 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(uint *)(lVar3 + -0x504) = uVar30 & 0xff ^ (uint)*(byte *)(lVar3 + -0x41) ^ _DAT_182671610;
  lVar2 = DAT_182671560;
  uVar19 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x13264c80)) =
       *(ulonglong *)(CONCAT44(uVar31,uVar31) ^ *(ulonglong *)(lVar3 + -0x450)) ^ uVar14;
  uVar33 = (*(uint *)(lVar3 - (uVar19 ^ 0xaadd7226)) ^ uVar12) + (DAT_182671598 ^ 0x7da98c08);
  *(uint *)(lVar2 + -0x374) = uVar33 ^ DAT_182671724;
  uVar22 = (*(uint *)(lVar2 - (uVar40 ^ 0xc589a55e)) ^ uVar25) <<
           (((byte)DAT_182671590 ^ 0xee) & 0x1f);
  *(uint *)(lVar2 + -0x328) = uVar22 ^ DAT_1826718d0;
  *(uint *)(lVar2 - (uVar37 ^ 0x2a7cb799)) = uVar33 - uVar22 ^ DAT_18267168c;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xc589ac52)) =
       (CONCAT44(uVar7,uVar13) ^ 0xbe46bf0f4e3deafd) << ((local_d8 ^ 0xbf) & 0x3f);
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 + -0x754) ^ DAT_18267168c) * (*puVar45 ^ uVar9) ^ DAT_182671884;
  uVar13 = DAT_182671750;
  uVar22 = DAT_1826715b0;
  uVar25 = (uVar25 ^ *puVar17) * (DAT_1826715b0 ^ 0x3a765fba) ^ DAT_182671794;
  *(uint *)(lVar2 + -0x874) = uVar25;
  *(uint *)(lVar2 - (uVar42 ^ 0x28d7d7c8)) =
       (*(uint *)(lVar2 - (uVar39 ^ 0x318df5a9)) ^ DAT_182671884) + (uVar25 ^ DAT_182671794) ^
       uVar13;
  bVar27 = (byte)DAT_182671694;
  *(byte *)(lVar2 + -0xc41) = *(byte *)(uVar26 ^ *(ulonglong *)(lVar2 + -0x810)) ^ bVar27;
  uVar5 = DAT_182671568;
  *(uint *)(lVar2 + -0x844) =
       (uVar13 ^ *(uint *)(lVar2 + -0x910)) << (bVar15 & 0x1f) ^ DAT_1826716e8;
  *(uint *)(lVar2 + -0x47c) =
       (uVar13 ^ *(uint *)(lVar2 + -0x910)) >> (((byte)uVar5 ^ 0xdd) & 0x1f) ^ DAT_182671714;
  uVar25 = *(uint *)(lVar2 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar2 + -0x5cc) =
       (*(uint *)(lVar2 - (uVar16 ^ 0x132640fc)) ^ DAT_182671714 |
       *(uint *)(lVar2 - (uVar43 ^ 0x7114444)) ^ DAT_1826716e8) ^ DAT_18267189c;
  uVar13 = DAT_182671800;
  uVar25 = (*(uint *)(lVar2 + -0x344) ^ uVar9) + uVar25 ^ uVar36;
  *(uint *)(lVar2 + -0x27c) = uVar25;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671570 ^ 0x568946fe)) = uVar13 ^ uVar25 ^ uVar36;
  uVar25 = *(uint *)(lVar2 + -0x5cc) ^ DAT_182671740 ^ DAT_18267189c;
  uVar14 = CONCAT44(uVar6,DAT_1826715a0);
  bVar10 = (byte)DAT_1826715a0;
  *(byte *)(lVar2 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar18 ^ 0x55308b77)) ^ (ulonglong)DAT_1826717fc) ^ bVar27;
  *(uint *)(lVar2 + -0x328) = DAT_1826717f4 ^ DAT_182671800 ^ *(uint *)(lVar2 + -0x678);
  uVar13 = DAT_182671674 ^ DAT_182671740;
  *(uint *)(lVar2 + -0x374) = uVar25;
  *(uint *)(lVar2 + -0x754) = uVar13 ^ uVar25;
  uVar13 = DAT_182671890;
  pbVar23 = (byte *)((uVar14 ^ 0x745eaaddaadd7454) + *(longlong *)(lVar2 + -0x8f0));
  uVar25 = DAT_182671890 & 0xff;
  *(ulonglong *)(lVar2 + -0x1a0) = (ulonglong)pbVar23 ^ (ulonglong)DAT_18267163c;
  *(byte *)(lVar2 - (uVar44 ^ 0x5ff963f6)) = *pbVar23 ^ bVar27 ^ (byte)uVar13;
  uVar13 = DAT_18267157c;
  uVar33 = *(uint *)(lVar2 + -0x754) ^ DAT_182671674;
  uVar14 = (ulonglong)DAT_18267157c;
  *(uint *)(lVar2 + -0x504) = *(byte *)(lVar2 + -0xc41) ^ uVar25 ^ uVar12;
  *(uint *)(lVar2 + -0x964) = uVar33 + (uVar13 ^ 0xb93a0ca9) ^ DAT_1826715b8;
  *(uint *)(lVar2 - ((ulonglong)uVar7 ^ 0x3bfe2b2c)) =
       (*(uint *)(lVar2 - (uVar14 ^ 0xb0cd2f78)) ^ uVar12) << ((bVar10 ^ 0x4f) & 0x1f) ^ uVar32;
  uVar13 = DAT_182671678;
  uVar33 = *(uint *)(lVar2 + -0x964) ^ DAT_1826715b8;
  uVar25 = *(uint *)(lVar2 + -0x328) ^ DAT_1826717f4;
  *(longlong *)(lVar2 + -0x3f0) =
       *(longlong *)(lVar2 - (uVar43 ^ 0x71149c8)) << ((bVar1 ^ 0xab) & 0x3f);
  uVar33 = uVar33 - (*(uint *)(lVar2 + -0x874) ^ uVar32);
  *(uint *)(lVar2 + -0x910) = uVar33 ^ uVar13;
  *(uint *)(lVar2 - ((ulonglong)uVar22 ^ 0x3a7657e1)) = uVar25 * uVar33 ^ DAT_182671858;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar28;
  return;
}



############ FUN_ 180f11e40 size=4588 ############

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

void FUN_180f11e40(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong *puVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  byte *pbVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong *puVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_d8;
  
  uVar9 = DAT_1826715a8;
  uVar8 = DAT_182671598;
  uVar19 = DAT_182671590;
  uVar7 = DAT_18267158c;
  uVar6 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar24 = (ulonglong)DAT_182671590;
  uVar32 = (ulonglong)DAT_1826715a8;
  uVar37 = (ulonglong)DAT_182671578;
  uVar28 = DAT_18267158c & DAT_182671590;
  uVar42 = (ulonglong)DAT_182671598;
  uVar26 = DAT_1826715a8 << 0x10 | DAT_1826715a8 >> 0x10;
  uVar23 = DAT_182671578 & DAT_182671598;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar24 ^ 0xfe75eff0) + (longlong)DAT_1826719f0);
  uVar15 = *(uint *)(&DAT_182611e70 + (uVar32 ^ 0x2cd6f674) + (longlong)DAT_1826719f0) ^
           DAT_18267158c;
  DAT_182671584 = uVar28;
  DAT_182671594 = uVar26;
  DAT_1826715ac = uVar23;
  *(uint *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xfe75ef74)) =
       (uVar26 ^ 0xc77af645) * 0x174e8956;
  bVar18 = (byte)DAT_182671600;
  uVar12 = DAT_1826715f8;
  bVar17 = *(byte *)((ulonglong)DAT_18267160c ^ *(ulonglong *)(lVar2 + -0xc80)) ^
           (byte)DAT_182671600 ^ (byte)DAT_1826717c0;
  bVar41 = (byte)uVar8;
  *(byte *)(lVar2 + -0x629) = bVar17;
  uVar11 = DAT_1826715d4;
  uVar33 = (ulonglong)(bVar17 ^ bVar18);
  *(ulonglong *)(lVar2 + -0x628) = uVar33 ^ CONCAT44(uVar12,uVar12);
  uVar38 = CONCAT44(uVar11,uVar11);
  uVar22 = (ulonglong)uVar23;
  puVar21 = (ulonglong *)(lVar2 - (uVar22 ^ 0x8504108));
  uVar43 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *puVar21 = uVar33 << ((bVar41 ^ 0xdf) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x101f1b18)) ^
        CONCAT44(DAT_1826718a0,DAT_1826718a0) |
       *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x2cd6ff8c)) ^ uVar38) ^ uVar43;
  uVar14 = DAT_182671864;
  lVar2 = DAT_182671560;
  uVar44 = (ulonglong)uVar28;
  uVar33 = (ulonglong)_DAT_1826715dc;
  *(ulonglong *)(DAT_182671560 + -0x400) =
       0xcb71c966c550e930 >> (((byte)(uVar9 >> 0x10) ^ 0xd6) & 0x3f);
  *(ulonglong *)(lVar2 + -0x8f8) =
       (CONCAT44(uVar23,uVar19) ^ 0x85048e0fe75eff5) + *(longlong *)(lVar2 + -3000) ^ uVar33;
  *(byte *)(lVar2 - (uVar42 ^ 0xfffff58e)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar37 ^ 0x8504018)) ^ uVar33) ^ (byte)uVar14 ^
       (byte)DAT_1826717c0;
  uVar11 = DAT_1826715f4;
  uVar38 = (ulonglong)(byte)(*(byte *)(lVar2 + -0xa71) ^ (byte)uVar14);
  *(ulonglong *)(lVar2 + -0x628) = uVar38 ^ CONCAT44(DAT_1826717e0,DAT_1826717e0);
  puVar30 = (ulonglong *)(lVar2 + -0x318);
  uVar33 = CONCAT44(uVar11,uVar11);
  *puVar30 = uVar38 << (((byte)uVar9 ^ 0x4c) & 0x3f) ^ uVar33;
  lVar2 = DAT_182671560;
  puVar31 = (ulonglong *)(DAT_182671560 - (uVar37 ^ 0x85049f0));
  uVar35 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(DAT_182671560 - (uVar44 ^ 0x101501e8)) =
       (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x8504bf8)) ^ uVar33 | uVar43 ^ *puVar31) ^ uVar35;
  uVar33 = (ulonglong)DAT_182671854;
  *(ulonglong *)(lVar2 + -0x400) =
       CONCAT44(uVar19,uVar7) ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x9e8) ^ 0xcba4c56c37debc15;
  bVar18 = (byte)DAT_182671648;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x2cd6f3dc)) =
       (CONCAT44(uVar23,uVar19) ^ 0x85048e0fe75eff6) + *(longlong *)(lVar2 + -3000) ^ uVar33;
  uVar11 = DAT_18267164c;
  bVar17 = *(byte *)(uVar33 ^ *(ulonglong *)(lVar2 + -0x5b8)) ^ (byte)DAT_1826717c0;
  *(byte *)(lVar2 + -0xb09) = bVar17 ^ bVar18;
  uVar12 = DAT_182671820;
  local_d8 = (byte)uVar28;
  *(ulonglong *)(lVar2 + -0x628) = (ulonglong)bVar17 ^ CONCAT44(uVar11,uVar11);
  uVar33 = (ulonglong)DAT_1826718b8;
  uVar45 = CONCAT44(uVar12,uVar12);
  uVar38 = (ulonglong)bVar17 << ((local_d8 ^ 0x30) & 0x3f);
  uVar46 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar2 + -0x110) = uVar38 ^ uVar45;
  *puVar30 = uVar38 + (uVar35 ^ *(ulonglong *)(lVar2 + -0x9e8)) ^ uVar46;
  bVar18 = (byte)DAT_182671814;
  *(ulonglong *)(lVar2 + -0xc80) =
       (CONCAT44(uVar8,uVar26) ^ 0xfffffffff6642cd9) + *(longlong *)(lVar2 + -3000) ^ uVar33;
  *(ulonglong *)(lVar2 + -0x400) = CONCAT44(uVar28,uVar6) ^ CONCAT44(uVar8,uVar8) ^ 0x54208b877c4e20
  ;
  lVar3 = DAT_182671560;
  *(byte *)(lVar2 + -0x5da) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0xf6642056)) ^ uVar33) ^
       (byte)DAT_1826717c0 ^ bVar18;
  uVar33 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0xfffff9d7)) =
       (*(byte *)(lVar2 - (uVar32 ^ 0x2cd6f3be)) ^ bVar18) ^ uVar33;
  uVar11 = DAT_18267189c;
  uVar34 = CONCAT44(DAT_18267165c,DAT_18267165c);
  uVar33 = (*(ulonglong *)(lVar3 + -0x628) ^ uVar33) << (((byte)uVar6 ^ 0xd8) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar33 ^ uVar34;
  uVar39 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x400) = (*puVar30 ^ uVar46) + uVar33 ^ uVar39;
  uVar5 = DAT_18267156c;
  uVar43 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0x85040d0)) =
       *(longlong *)(lVar3 - (uVar22 ^ 0x8504060)) +
       (CONCAT44(uVar26,uVar19) ^ 0xf6642cd6fe75eff9) * 8 ^ CONCAT44(uVar14,uVar14);
  uVar10 = DAT_1826715b0;
  lVar3 = DAT_182671560;
  uVar35 = (ulonglong)DAT_1826715b0;
  uVar29 = DAT_1826715b0 ^ uVar5;
  uVar36 = (ulonglong)uVar29;
  puVar16 = (ulonglong *)(DAT_182671560 + -0xa88);
  uVar40 = (ulonglong)DAT_1826715b0;
  uVar38 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  DAT_1826715a0 = uVar29;
  *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0x830) ^ CONCAT44(uVar14,uVar14)) =
       uVar38 ^ uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x400);
  lVar2 = *(longlong *)(lVar3 + -3000);
  pbVar20 = (byte *)(lVar2 + 0x10);
  uVar33 = (ulonglong)DAT_18267179c;
  *(ulonglong *)(lVar3 + -0x9e8) =
       (CONCAT44(uVar10,uVar29) ^ 0x1305d9a999b8e071) -
       (CONCAT44(uVar10,uVar5) ^ 0x318f90236b49804f);
  *(ulonglong *)(lVar3 + -0x8f8) = (ulonglong)pbVar20 ^ uVar33;
  *puVar16 = CONCAT44(uVar5,uVar29) ^ 0xd7964584e3a41f5a |
             CONCAT44(uVar5,uVar29) ^ 0xf877bcd685dec9a1;
  bVar18 = DAT_182671610;
  *(byte *)(lVar3 + -0xb49) = *pbVar20 ^ (byte)DAT_1826717c0 ^ DAT_182671610;
  uVar27 = CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar33 = (ulonglong)DAT_18267174c;
  uVar40 = (ulonglong)(*(byte *)(lVar3 - (uVar40 ^ 0x2b4ced15)) ^ bVar18);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar40 ^ uVar27;
  bVar18 = (byte)DAT_182671848;
  lVar3 = DAT_182671560;
  pbVar20 = (byte *)((CONCAT44(uVar29,uVar10) ^ 0xd80d761e2b4ce64d) + lVar2);
  *(ulonglong *)(DAT_182671560 + -0x5b8) = (ulonglong)pbVar20 ^ uVar33;
  uVar11 = DAT_182671614;
  bVar17 = *pbVar20 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar3 + -0x54b) = bVar17 ^ bVar18;
  uVar33 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar3 + -0x3b8) = (ulonglong)bVar17 ^ CONCAT44(uVar11,uVar11);
  uVar13 = DAT_182671608;
  *(uint *)(lVar3 + -0x504) = (uVar5 ^ 0xed2c583c) + (uVar29 ^ 0xa4bbb263);
  *(ulonglong *)(lVar3 + -0x9e8) = (ulonglong)bVar17 << (((byte)uVar10 ^ 0x54) & 0x3f) ^ uVar33;
  bVar18 = (byte)DAT_182671750;
  uVar39 = CONCAT44(uVar13,uVar13);
  *puVar16 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0xf664253e)) ^ uVar33 | uVar40) ^ uVar39;
  *(ulonglong *)(lVar3 + -0x3b8) = CONCAT44(uVar10,uVar7) ^ 0xe71933258fe3841e | *puVar30 ^ uVar46;
  lVar3 = DAT_182671560;
  puVar25 = (ulonglong *)(DAT_182671560 + -0x110);
  pbVar20 = (byte *)(*(longlong *)(DAT_182671560 - (uVar36 ^ 0xd80d7da6)) +
                    (CONCAT44(uVar29,uVar28) ^ 0xd80d761e10150812));
  uVar33 = *puVar30;
  *(ulonglong *)(DAT_182671560 + -0xc80) = (ulonglong)pbVar20 ^ (ulonglong)DAT_1826715e8;
  *(ulonglong *)(lVar3 + -0x9e8) = (uVar33 ^ uVar46) - (uVar45 ^ *puVar25);
  *(byte *)(lVar3 - (uVar22 ^ 0x8504051)) = *pbVar20 ^ (byte)DAT_1826717c0 ^ bVar18;
  uVar45 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar3 + -0x3b8) = (*(byte *)(lVar3 + -0x8b1) ^ bVar18) ^ uVar45;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xf3419152)) =
       *(ulonglong *)(lVar3 + -0x628) ^ uVar27 ^ 0xa5dcb40bd7b2ac00;
  uVar33 = (uVar45 ^ *(ulonglong *)(lVar3 + -0x3b8)) << 0x10;
  *puVar30 = uVar33 ^ CONCAT44(DAT_182671664,DAT_182671664);
  uVar27 = (ulonglong)DAT_18267176c;
  *(ulonglong *)(lVar3 + -0x9e8) =
       CONCAT44(uVar19,uVar19) ^ 0x653575ea57e85773 | CONCAT44(uVar26,uVar9) ^ 0xf5d45f8c012a8cc8;
  uVar40 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0x10150288)) ^ uVar39 | uVar33) ^ uVar40;
  bVar18 = (byte)DAT_182671710;
  uVar39 = (ulonglong)(byte)DAT_182671710;
  pbVar20 = (byte *)(*(longlong *)(lVar3 - (uVar22 ^ 0x8504358)) +
                    (CONCAT44(uVar7,uVar23) ^ 0x101f1800085048f3));
  uVar33 = (ulonglong)DAT_182671760;
  *(ulonglong *)(lVar3 + -0x8f8) = (ulonglong)pbVar20 ^ uVar27;
  *(byte *)(lVar3 + -0xc19) =
       *(byte *)(uVar33 ^ *(ulonglong *)(lVar3 + -0x900)) ^ (byte)DAT_1826717c0;
  *(byte *)(lVar3 - (uVar24 ^ 0xfe75e939)) = *pbVar20 ^ (byte)DAT_1826717c0 ^ bVar18;
  uVar11 = DAT_18267167c;
  uVar33 = (ulonglong)(*(byte *)(lVar3 + -0x6c1) ^ bVar18);
  *(ulonglong *)(lVar3 + -0x110) = uVar33 ^ CONCAT44(DAT_182671800,DAT_182671800);
  uVar27 = CONCAT44(uVar11,uVar11);
  *puVar21 = uVar33 << ((bVar41 ^ 0xe7) & 0x3f) ^ uVar27;
  bVar17 = (byte)DAT_1826717d0;
  uVar24 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xd80d7c96)) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x2cd6f04c)) ^ uVar40 |
       uVar27 ^ *(ulonglong *)(lVar3 + -0x9e8)) ^ uVar24;
  uVar33 = (ulonglong)DAT_1826716b4;
  lVar2 = *(longlong *)(lVar3 + -3000);
  *(ulonglong *)(lVar3 + -0x5b8) = (CONCAT44(uVar5,uVar10) ^ 0xf34190422b4ce648) + lVar2 ^ uVar33;
  lVar4 = DAT_182671560;
  *(byte *)(lVar3 + -0x3f2) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar36 ^ 0xd80d73a6)) ^ uVar33) ^ (byte)DAT_1826717c0 ^
       bVar17;
  *puVar30 = (uVar45 ^ *(ulonglong *)(lVar3 + -0x3b8)) + 0x7630b47f761138ab;
  uVar11 = _DAT_1826715e0;
  uVar36 = (ulonglong)(bVar17 ^ *(byte *)(lVar3 + -0x3f2));
  *(ulonglong *)(lVar3 + -0x110) = uVar36 ^ CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar36 = uVar36 << (((byte)uVar29 ^ 0x3e) & 0x3f);
  *(ulonglong *)(lVar4 + -0x628) = uVar36 ^ CONCAT44(uVar11,uVar11);
  bVar17 = (byte)DAT_18267177c;
  uVar11 = DAT_182671690;
  *(ulonglong *)(lVar4 + -0x3b8) =
       (CONCAT44(uVar7,uVar28) ^ 0xd265941facb05d6e) - (CONCAT44(uVar6,uVar7) ^ 0x64f4479803e7e5bc);
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar33 = (ulonglong)DAT_182671780;
  *puVar30 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0x8504268)) ^ uVar24 | uVar36) ^ uVar40;
  pbVar20 = (byte *)((CONCAT44(uVar23,uVar29) ^ 0x85048e0d80d760b) + lVar2);
  *(ulonglong *)(lVar4 + -0xc80) = (ulonglong)pbVar20 ^ uVar33;
  *(byte *)(lVar4 - (uVar43 ^ 0xf34190a3)) = *pbVar20 ^ (byte)DAT_1826717c0 ^ bVar17;
  uVar45 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *puVar31 = (*(byte *)(lVar4 - (uVar32 ^ 0x2cd6f685)) ^ bVar17) ^ uVar45;
  uVar11 = DAT_1826716b8;
  uVar33 = *puVar30;
  uVar24 = *(ulonglong *)(lVar4 + -0x9e8);
  uVar22 = (uVar45 ^ *(ulonglong *)(lVar4 + -0x110)) << ((bVar41 ^ 0xd7) & 0x3f);
  *(ulonglong *)(lVar4 + -0x3b8) = uVar22 ^ uVar34;
  uVar43 = CONCAT44(uVar11,uVar11);
  *puVar16 = (uVar40 ^ uVar33 | uVar22) ^ uVar43;
  *(ulonglong *)(lVar4 + -0x628) = uVar27 ^ uVar24 ^ 0x147a1b317f7c415;
  uVar9 = DAT_182671810;
  lVar2 = DAT_182671560;
  uVar36 = (ulonglong)DAT_182671810;
  *(ulonglong *)(DAT_182671560 - (uVar42 ^ 0xfffff6ff)) =
       (CONCAT44(uVar8,uVar19) ^ 0xfffffffffe75efee) + *(longlong *)(DAT_182671560 + -3000) ^ uVar36
  ;
  uVar33 = *puVar16;
  *(byte *)(lVar2 + -0xd81) =
       *(byte *)(uVar36 ^ *(ulonglong *)(lVar2 + -0x900)) ^ (byte)DAT_1826717c0 ^ bVar18;
  uVar24 = CONCAT44(DAT_182671770,DAT_182671770);
  uVar39 = *(byte *)(lVar2 - (uVar37 ^ 0x8504561)) ^ uVar24 ^ uVar39;
  *puVar30 = uVar39;
  uVar11 = DAT_182671824;
  uVar22 = (uVar39 ^ uVar24) << (((byte)uVar5 ^ 0x72) & 0x3f);
  *(ulonglong *)(lVar2 + -0x3b8) = uVar22 ^ CONCAT44(DAT_182671870,DAT_182671870);
  uVar32 = CONCAT44(uVar11,uVar11);
  uVar24 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar22 + (uVar43 ^ uVar33) ^ uVar32;
  lVar2 = DAT_182671560;
  uVar33 = (ulonglong)DAT_182671608;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       *(ulonglong *)
        (CONCAT44(_DAT_182671838,_DAT_182671838) ^ *(ulonglong *)(DAT_182671560 + -0xd60)) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x8f8) =
       (CONCAT44(uVar19,uVar29) ^ 0xfe75eff8d80d7609) + *(longlong *)(lVar2 + -3000) ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar44 ^ 0x10150b18)) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0x2b4ce74c)) ^ uVar45) << (((byte)uVar23 ^ 0xd1) & 0x3f);
  bVar18 = *(byte *)(*(ulonglong *)(lVar2 + -0x8f8) ^ uVar33) ^ (byte)DAT_1826717c0;
  *(byte *)(lVar2 + -0x641) = bVar18 ^ (byte)DAT_1826716ec;
  uVar6 = DAT_182671574;
  uVar22 = (ulonglong)DAT_182671574;
  *puVar16 = bVar18 ^ uVar45;
  uVar7 = DAT_18267159c;
  uVar33 = (*(ulonglong *)(lVar2 - (uVar37 ^ 0x8504268)) ^ uVar45) << 0x38;
  uVar39 = (ulonglong)DAT_18267159c;
  uVar19 = DAT_18267159c * uVar6;
  puVar25 = (ulonglong *)(lVar2 - ((ulonglong)DAT_18267159c ^ 0xe0485310));
  *(ulonglong *)(lVar2 + -0x3b8) = uVar33 ^ CONCAT44(DAT_182671728,DAT_182671728);
  DAT_182671580 = uVar19;
  *(ulonglong *)(lVar2 + -0x628) = CONCAT44(uVar19,uVar6) ^ *puVar25 ^ 0xb857f94a77c706a5;
  lVar3 = DAT_182671560;
  uVar43 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  uVar35 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar33 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x69da78df)) ^ uVar32) + uVar33 ^ uVar43;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar33;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x5f8) =
       *(longlong *)(lVar3 - ((ulonglong)uVar19 ^ 0x89acb138)) +
       (CONCAT44(uVar6,uVar19) ^ 0x69da713789acb9ba) * 8 ^ uVar35;
  uVar24 = (ulonglong)DAT_182671828;
  *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x89acbc40)) ^ uVar35) =
       uVar43 ^ uVar38 ^ uVar33;
  pbVar20 = (byte *)((CONCAT44(uVar7,uVar19) ^ 0xe048500889acb9a0) + *(longlong *)(lVar2 + -3000));
  uVar33 = *puVar16;
  *(ulonglong *)(lVar2 + -0x5b8) = (ulonglong)pbVar20 ^ uVar24;
  bVar18 = (byte)DAT_182671840;
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x9cb) = *pbVar20 ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671840;
  uVar11 = DAT_182671640;
  *puVar25 = (uVar45 ^ uVar33) + 0x3edd93522b131d9c;
  uVar33 = CONCAT44(uVar11,uVar11);
  bVar17 = (byte)uVar7;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x69da771f)) = (bVar18 ^ *(byte *)(lVar2 + -0x9cb)) ^ uVar33;
  pbVar20 = (byte *)((CONCAT44(uVar6,uVar19) ^ 0x69da713789acb9a1) + *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0x900) = (ulonglong)pbVar20 ^ (ulonglong)DAT_1826716c4;
  *(ulonglong *)(lVar2 + -0x9e8) =
       (CONCAT44(uVar6,uVar6) ^ 0x1b461b4adfa40cba) << ((bVar17 ^ 0x17) & 0x3f);
  uVar11 = DAT_1826718a8;
  bVar18 = *pbVar20 ^ (byte)DAT_1826717c0 ^ (byte)uVar9;
  *(byte *)(lVar2 + -0xa72) = bVar18;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x89acba00)) =
       (ulonglong)bVar18 ^ uVar36 & 0xff ^ uVar24;
  uVar11 = DAT_182671898;
  *(ulonglong *)(lVar2 + -0x748) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar33) << ((bVar17 ^ 0x3b) & 0x3f);
  *puVar16 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0xe04853b0)) ^ uVar24) << (bVar17 & 0x3f) ^
             CONCAT44(uVar11,uVar11);
  *puVar30 = 0x61df27dc2048360b - (CONCAT44(uVar5,uVar19) ^ 0xb3c5ef5aee1545a8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar28;
  return;
}



############ FUN_ 180e79460 size=5885 ############

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

void FUN_180e79460(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  longlong lVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  uint uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  byte local_128;
  byte local_120;
  byte local_118;
  
  uVar6 = DAT_1826715a0;
  uVar16 = DAT_182671598;
  uVar15 = DAT_18267158c;
  uVar19 = DAT_18267159c & 7;
  if (uVar19 < 4) {
    if (uVar19 < 2) {
      DAT_182671568 = DAT_182671570;
      if (uVar19 == 0) {
        DAT_182671568 = DAT_18267159c;
      }
    }
    else {
      DAT_182671568 = DAT_182671590;
      if (uVar19 < 3) {
        DAT_182671568 = DAT_182671574;
      }
    }
  }
  else if (uVar19 < 6) {
    DAT_182671568 = DAT_18267156c;
    if (uVar19 < 5) {
      DAT_182671568 = DAT_1826715a8;
    }
  }
  else {
    DAT_182671568 = DAT_182671580;
    if (uVar19 < 7) {
      DAT_182671568 = DAT_1826715b4;
    }
  }
  uVar30 = (ulonglong)DAT_182671598;
  uVar43 = ~DAT_18267180c;
  uVar24 = DAT_1826715a0 << 0x10 | DAT_1826715a0 >> 0x10;
  uVar35 = DAT_182671570 << 0x10 | DAT_182671570 >> 0x10;
  uVar34 = (DAT_182671588 << 0x10 | DAT_182671588 & 0xff00) << 8 | DAT_182671588 >> 8 & 0xff00 |
           DAT_182671588 >> 0x18;
  uVar8 = DAT_182671598 - DAT_18267158c;
  uVar9 = DAT_1826718bc - _DAT_182671838;
  uVar10 = DAT_182671720 ^ _DAT_182671618;
  lVar21 = (longlong)DAT_182671b14;
  DAT_182671578 = uVar8;
  DAT_18267157c = uVar34;
  DAT_182671594 = uVar35;
  DAT_1826715ac = uVar24;
  *(longlong *)(DAT_182671558 + -8) = DAT_182671560;
  DAT_182671560 = DAT_182671558 + -8;
  uVar19 = *(uint *)(&DAT_182611e80 + lVar21);
  uVar51 = *(uint *)(&DAT_182611e78 + lVar21) ^ DAT_182671570;
  *(longlong *)(DAT_182671558 + -0x5a8) = DAT_182671558 + -0xdf8;
  *(longlong *)(DAT_182671558 + -0xba0) = DAT_182671558 + -0xe58;
  puVar22 = (ulonglong *)(DAT_182671560 + -0x2a0);
  *puVar22 = CONCAT44(uVar24,uVar6) ^ 0xefffdabdc9cd5cff | 0xad7fd2a4c8405c9b;
  lVar21 = DAT_182671560;
  uVar11 = DAT_18267180c & 0xff;
  uVar11 = ((DAT_18267180c << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  DAT_18267180c = uVar11;
  *(ulonglong *)(DAT_182671560 + -0xb0) = (ulonglong)uVar11 ^ DAT_182671558 - 0xeb8U;
  *(longlong *)(lVar21 + -0x850) = DAT_182671558 + -0xf60;
  *(longlong *)(lVar21 - ((ulonglong)uVar8 ^ 0x7ffe76ee)) = DAT_182671558 + -0xf80;
  uVar12 = uVar43 & 0xff;
  uVar12 = ((uVar43 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  DAT_182671778 = uVar12;
  *(ulonglong *)(lVar21 + -0x980) = (ulonglong)uVar12 ^ DAT_182671558 - 0x1000U;
  uVar43 = DAT_18267156c;
  *(ulonglong *)(lVar21 - ((ulonglong)uVar16 ^ 0x22f47004)) =
       (CONCAT44(uVar6,uVar15) ^ 0xc3e6e3dc1efd7d81) + *puVar22;
  uVar13 = (DAT_182671808 ^ DAT_1826717b0) & 0xff;
  *(longlong *)(lVar21 + -0xc18) = DAT_182671558 + -0x1020;
  *(longlong *)(lVar21 + -0x8f0) = DAT_182671558 + -0x1040;
  DAT_1826718ac = (((DAT_182671808 ^ DAT_1826717b0) << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  *(longlong *)(lVar21 + -0xaf8) = DAT_182671558 + -0x10a0;
  DAT_182671558 = DAT_182671558 + -0x10c0;
  uVar29 = (ulonglong)uVar35;
  *(longlong *)(lVar21 + -0xa08) = DAT_182671558;
  uVar7 = DAT_1826715b4;
  uVar20 = DAT_1826715a8;
  uVar13 = DAT_1826715a4;
  uVar14 = DAT_18267159c;
  uVar5 = DAT_182671588;
  uVar4 = DAT_182671574;
  lVar3 = DAT_182671560;
  uVar28 = (ulonglong)DAT_182671588;
  uVar45 = (ulonglong)DAT_182671574;
  uVar39 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  *(ulonglong *)(DAT_182671560 + -0x30) =
       *(longlong *)(DAT_182671560 - (uVar28 ^ 0x29758d21)) +
       ((CONCAT44(uVar35,DAT_1826715a8) ^ 0x837733a1e289ed40) +
       (CONCAT44(uVar34,uVar43) ^ 0x318d7529b05e4208) * 4) * 8 ^ uVar39;
  puVar1 = (ulonglong *)(lVar3 + -0x6b8);
  uVar43 = DAT_182671808 & 0xff;
  *puVar22 = (CONCAT44(uVar14,DAT_182671580) ^ 0x5f34845ce0489d6a) +
             (CONCAT44(uVar7,uVar13) ^ 0xf698aa8bc6357cf8);
  DAT_182671808 = ((DAT_182671808 << 8 | uVar43) << 8 | uVar43) << 8 | uVar43;
  uVar31 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar17 = **(ulonglong **)(lVar3 + 0x10) ^ uVar31;
  *puVar1 = uVar17;
  uVar37 = DAT_1826716a4 ^ (uint)uVar17;
  uVar17 = (ulonglong)DAT_182671584;
  uVar43 = DAT_182671590 ^ 0x87ef7227;
  *(ulonglong **)(lVar3 + -0xab8) = *(ulonglong **)(lVar3 + 0x10) + 1;
  *(uint *)(lVar3 - (uVar17 ^ 0xf21d4d54)) = uVar43 | uVar4 ^ 0x86a402e;
  uVar13 = DAT_182671568;
  uVar43 = uVar37 & 0xff;
  DAT_1826716a4 = ((uVar37 << 8 | uVar43) << 8 | uVar43) << 8 | uVar43;
  uVar25 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  lVar21 = *(longlong *)(lVar3 + 0x10);
  *puVar22 = **(ulonglong **)(lVar3 + -0xab8) ^ uVar25;
  uVar43 = *(uint *)puVar22;
  *(longlong *)(lVar3 + -0x178) = lVar21 + 0x10;
  uVar37 = (DAT_182671608 ^ uVar43) & 0xff;
  DAT_182671608 = (((DAT_182671608 ^ uVar43) << 8 | uVar37) << 8 | uVar37) << 8 | uVar37;
  uVar54 = CONCAT44(DAT_182671608,DAT_182671608);
  puVar44 = (ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0x318d7db1));
  uVar17 = (ulonglong)DAT_1826715b0;
  *puVar44 = **(ulonglong **)(lVar3 - ((ulonglong)uVar13 ^ 0x70232208)) ^ uVar54;
  uVar38 = DAT_182671888 ^ *(uint *)(lVar3 - (uVar17 ^ 0x4d678467));
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar3 + 0x10) + (CONCAT44(uVar24,uVar15) ^ 0xcf8ea2a1a2f5ffbd) * 8);
  *(ulonglong **)(lVar3 + -0x230) = puVar2;
  *(ulonglong *)(lVar3 + -0x628) = *puVar2;
  uVar43 = DAT_1826715a4;
  uVar37 = DAT_18267178c ^ *(uint *)(lVar3 - ((ulonglong)uVar13 ^ 0x70232558));
  uVar13 = uVar37 & 0xff;
  DAT_18267178c = ((uVar37 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar26 = CONCAT44(DAT_18267178c,DAT_18267178c);
  puVar52 = (ulonglong *)(lVar3 + -0x1f0);
  uVar17 = (ulonglong)DAT_182671570;
  *puVar52 = (*puVar1 ^ uVar31) - (CONCAT44(uVar4,uVar6) ^ 0x76c8b3699ad62407) ^ uVar26;
  lVar21 = DAT_182671560;
  uVar13 = uVar38 & 0xff;
  DAT_182671888 = ((uVar38 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar32 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar13 = DAT_1826717b0 & 0xff;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(DAT_182671560 - (uVar17 ^ 0x33a181d7)) ^ uVar25) -
       (CONCAT44(uVar20,uVar43) ^ 0x6dd1c03d687088d4) ^ uVar32;
  DAT_1826717b0 = ((DAT_1826717b0 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar53 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  uVar40 = CONCAT44(uVar12,uVar12);
  *puVar22 = (*(ulonglong *)(lVar21 + -0x898) ^ uVar54) -
             (CONCAT44(uVar35,DAT_182671590) ^ 0x7113bcb202b33772) ^ uVar53;
  uVar4 = DAT_1826715b0;
  *puVar44 = *puVar2;
  lVar21 = DAT_182671560;
  puVar23 = (ulonglong *)(DAT_182671560 - (uVar30 ^ 0x22f47e24));
  *puVar23 = (CONCAT44(uVar14,uVar4) ^ 0x28a55e95b2987311) + *(longlong *)(DAT_182671560 + -0x628) ^
             uVar40;
  uVar13 = DAT_182671570;
  uVar43 = DAT_182671568;
  puVar27 = (ulonglong *)(lVar21 - (uVar28 ^ 0x297585a9));
  uVar20 = DAT_1826718b4 ^ (uint)*puVar27;
  uVar14 = uVar20 & 0xff;
  puVar2 = (ulonglong *)(lVar21 + -0x318);
  DAT_1826718b4 = ((uVar20 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar49 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  bVar18 = (byte)DAT_182671584;
  *(ulonglong *)(lVar21 - (uVar29 ^ 0x837730b9)) =
       (*(ulonglong *)(lVar21 + -0x898) ^ uVar40) -
       (CONCAT44(DAT_182671568,uVar6) ^ 0x5658b08cc3555984) ^ *puVar52 ^ uVar49 ^ uVar26;
  uVar14 = ~DAT_1826717b8 & 0xff;
  *(ulonglong *)(lVar21 + -0x628) =
       (CONCAT44(uVar13,DAT_1826715a8) ^ 0xb2681fe889b85a43) >> ((bVar18 ^ 0x3e) & 0x3f);
  DAT_182671664 = ((~DAT_1826717b8 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  local_118 = (byte)(uVar6 >> 0x10);
  uVar55 = CONCAT44(DAT_182671664,DAT_182671664);
  puVar46 = (ulonglong *)(lVar21 + -0x9e8);
  *(ulonglong *)(lVar21 - ((ulonglong)uVar15 ^ 0xa2f5f996)) =
       (uVar49 ^ *puVar2) >> ((local_118 ^ 0x81) & 0x3f) ^ uVar55;
  lVar21 = DAT_182671560;
  uVar13 = DAT_1826717b8 & 0xff;
  DAT_1826717b8 = ((DAT_1826717b8 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar17 = (ulonglong)DAT_182671580;
  uVar28 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *puVar46 = (uVar49 ^ *puVar2) << 0x20 ^ uVar28;
  lVar3 = DAT_182671560;
  puVar41 = (ulonglong *)(lVar21 - ((ulonglong)uVar43 ^ 0x70232068));
  *puVar41 = (*(ulonglong *)(DAT_182671560 - (uVar17 ^ 0x25cee4bd)) ^ uVar28 |
             uVar55 ^ *(ulonglong *)(DAT_182671560 + -0x628)) ^ uVar54;
  *(ulonglong *)(lVar3 + -0x628) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b0 ^ 0x4d678677)) ^ uVar32 |
       *(ulonglong *)(lVar3 + -0x898) ^ uVar40;
  uVar43 = DAT_182671720 & 0xff;
  *puVar46 = (*(ulonglong *)(lVar3 - (uVar45 ^ 0x70232280)) ^ uVar26) -
             (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0xb05e4110)) ^ uVar54) ^
             uVar49;
  lVar21 = DAT_182671560;
  DAT_182671720 = ((DAT_182671720 << 8 | uVar43) << 8 | uVar43) << 8 | uVar43;
  uVar36 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar17 = uVar36 ^ uVar53 ^ uVar32 ^ *(ulonglong *)(DAT_182671560 + -0xa88) ^ *puVar22;
  uVar43 = DAT_1826715a0 ^ 0xae45ca02;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar17;
  *(uint *)(lVar21 + -0x968) = uVar43 + 0x86efdf90;
  uVar43 = uVar10 & 0xff;
  DAT_182671670 = ((uVar10 << 8 | uVar43) << 8 | uVar43) << 8 | uVar43;
  uVar45 = (uVar17 ^ uVar36) >> (((byte)uVar4 ^ 0xdf) & 0x3f);
  uVar47 = CONCAT44(DAT_182671670,DAT_182671670);
  uVar13 = DAT_1826718bc & 0xff;
  *(ulonglong *)(lVar21 + -0x898) = uVar45 ^ uVar47;
  uVar4 = DAT_1826715b0;
  uVar43 = DAT_1826715a4;
  DAT_1826718bc = ((DAT_1826718bc << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar17 = (uVar36 ^ uVar17) << (((byte)DAT_182671568 ^ 0x50) & 0x3f);
  *puVar52 = uVar17 ^ CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       CONCAT44(uVar16,uVar43) ^ *puVar1 ^ uVar31 ^ 0xf1551215474a1bb4;
  lVar21 = DAT_182671560;
  uVar43 = _DAT_182671618 & 0xff;
  _DAT_182671618 = ((_DAT_182671618 << 8 | uVar43) << 8 | uVar43) << 8 | uVar43;
  uVar32 = CONCAT44(_DAT_182671618,_DAT_182671618);
  bVar18 = (byte)uVar15;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0xb05e4420)) =
       (uVar17 | uVar45) ^ uVar32;
  *puVar1 = (uVar53 ^ *puVar22) - (uVar32 ^ *(ulonglong *)(lVar21 + -0x628)) ^ uVar53;
  uVar15 = uVar9 & 0xff;
  DAT_1826718c0 = ((uVar9 * 0x100 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar17 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar21 + -0xa88) =
       *(ulonglong *)(lVar21 - ((ulonglong)DAT_1826715b4 ^ 0x2370760b)) ^ uVar17 ^ uVar32 ^ uVar49 ^
       *puVar46;
  puVar44 = (ulonglong *)(lVar21 - ((ulonglong)uVar34 ^ 0x318d7fa1));
  *(ulonglong *)(lVar21 - ((ulonglong)uVar24 ^ 0xcf8ea351)) =
       (uVar17 ^ *puVar44) >> ((bVar18 ^ 0x84) & 0x3f) ^ uVar54;
  *(uint *)(lVar21 + -0x968) = *(uint *)(lVar21 + -0x754) >> (((byte)uVar8 ^ 0xff) & 0x1f);
  uVar13 = DAT_1826715a4;
  uVar43 = DAT_182671590;
  lVar3 = DAT_182671560;
  uVar15 = _DAT_182671838 & 0xff;
  _DAT_182671838 = ((_DAT_182671838 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar50 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar21 - ((ulonglong)DAT_1826715a4 ^ 0xb2987b98)) =
       (*(ulonglong *)(lVar21 - ((ulonglong)DAT_1826715a8 ^ 0xe289e7c8)) ^ uVar17) <<
       (((byte)DAT_182671580 ^ 0x53) & 0x3f) ^ uVar50;
  uVar15 = DAT_18267156c;
  *(ulonglong *)(lVar21 - ((ulonglong)DAT_18267159c ^ 0xd75aa3ca)) =
       (*(ulonglong *)(lVar21 - ((ulonglong)uVar6 ^ 0xa2a1c716)) ^ uVar50 |
       *(ulonglong *)(lVar21 - ((ulonglong)uVar13 ^ 0xb29872f0)) ^ uVar54) ^ uVar55;
  *(ulonglong *)(lVar21 + -0x628) =
       (CONCAT44(uVar35,uVar8) ^ 0x68ab789c715d2ec6) << (((byte)uVar43 ^ 0xb8) & 0x3f);
  puVar33 = (ulonglong *)(lVar21 - (uVar29 ^ 0x83773a49));
  *(ulonglong *)(lVar3 + -0xa88) = (uVar49 ^ *puVar33) - (uVar55 ^ *puVar22) ^ uVar26;
  local_128 = (byte)uVar16;
  uVar13 = DAT_1826717bc & 0xff;
  *(ulonglong *)(lVar3 + -0x898) =
       (CONCAT44(uVar15,DAT_182671568) ^ 0xa8bc289a6ff08ba0) << ((local_128 ^ 0x9e) & 0x3f);
  lVar21 = DAT_182671560;
  DAT_1826717bc = ((DAT_1826717bc << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar45 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar43 ^ 0x1d76134f)) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0xb05e44b0)) ^
       *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671584 ^ 0xf21d4918)) ^ uVar45 ^ uVar53 ^
       uVar54;
  uVar17 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar21 + -0x628) = *(ulonglong *)(lVar21 + -0x898) ^ 0xe172319f559832dd;
  uVar17 = (*(ulonglong *)(lVar21 - (uVar17 ^ 0x33a18287)) ^ uVar45) >> ((bVar18 ^ 0xa8) & 0x3f);
  *puVar46 = uVar17 ^ uVar31;
  lVar3 = DAT_182671560;
  uVar43 = DAT_1826717c4 & 0xff;
  DAT_1826717c4 = ((DAT_1826717c4 << 8 | uVar43) << 8 | uVar43) << 8 | uVar43;
  uVar32 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  local_120 = (byte)uVar5;
  *puVar2 = (*(ulonglong *)(lVar21 - ((ulonglong)DAT_182671568 ^ 0x70232280)) ^ uVar45) <<
            ((local_118 ^ 0x8b) & 0x3f) ^ uVar32;
  *(longlong *)(lVar3 + -0x628) = 0x45c2df55feab9019 << ((local_120 ^ 0x1a) & 0x3f);
  uVar31 = (ulonglong)DAT_18267159c;
  uVar45 = CONCAT44(uVar11,uVar11);
  uVar17 = *puVar41 ^ uVar32 | uVar17;
  *puVar52 = uVar17 ^ uVar45;
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xd75aa742)) = (*puVar1 ^ uVar53) - uVar17 ^ uVar53;
  *puVar2 = 0x15f3fd3848281445;
  uVar43 = DAT_1826717ec & 0xff;
  DAT_1826717ec = ((DAT_1826717ec << 8 | uVar43) << 8 | uVar43) << 8 | uVar43;
  uVar32 = (ulonglong)DAT_1826717ec;
  uVar48 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *puVar33 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0x25cee7dd)) ^ *puVar52 ^
             uVar26 ^ uVar48 ^ uVar45;
  uVar43 = DAT_18267171c & 0xff;
  DAT_18267171c = ((DAT_18267171c << 8 | uVar43) << 8 | uVar43) << 8 | uVar43;
  uVar17 = *puVar46;
  uVar31 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar42 = (ulonglong)DAT_1826715a8;
  *puVar1 = (uVar17 >> 0x20 ^ uVar32) >> 0xe ^ uVar31;
  *(ulonglong *)(DAT_182671560 - (uVar42 ^ 0xe289ecb0)) = (uVar17 ^ uVar48) << 0x12 ^ uVar36;
  uVar31 = *puVar1 ^ uVar31 | uVar36 ^ *puVar52;
  *puVar2 = uVar31 ^ uVar25;
  uVar17 = *(ulonglong *)(DAT_182671560 + -0xa88);
  *puVar46 = uVar31 - *(longlong *)(DAT_182671560 + -0x898);
  uVar32 = CONCAT44(uVar6,DAT_18267156c);
  *puVar1 = (uVar26 ^ uVar17) - uVar31 ^ uVar47;
  lVar21 = DAT_182671560;
  *puVar52 = (uVar32 ^ 0x99b77d76bc80e5a1) << (((byte)uVar8 ^ 200) & 0x3f);
  uVar17 = uVar55 ^ uVar53 ^ uVar39 ^ *puVar22 ^ *(ulonglong *)(lVar21 + -0x628);
  uVar13 = DAT_182671680 & 0xff;
  *(ulonglong *)(lVar21 + -0x898) = uVar17;
  uVar43 = DAT_182671590;
  DAT_182671680 = ((DAT_182671680 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar31 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(lVar21 - ((ulonglong)DAT_182671584 ^ 0xf21d43e8)) =
       (uVar39 ^ uVar17) >> (((byte)DAT_18267159c ^ 0x66) & 0x3f) ^ uVar31;
  uVar13 = DAT_1826717ac & 0xff;
  DAT_1826717ac = ((DAT_1826717ac << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar17 = (*(ulonglong *)(lVar21 + -0x898) ^ uVar39) << (((byte)uVar43 ^ 0x8b) & 0x3f);
  *(ulonglong *)(lVar21 + -0xa88) = uVar17 ^ CONCAT44(DAT_1826717ac,DAT_1826717ac);
  lVar21 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x22f4774c)) = (uVar17 | uVar31 ^ *puVar46) ^ uVar54;
  uVar13 = DAT_182671810 & 0xff;
  DAT_182671810 = ((DAT_182671810 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar32 = CONCAT44(DAT_182671810,DAT_182671810);
  *puVar22 = (uVar53 ^ *(ulonglong *)(lVar21 + -0x628)) - (*puVar52 ^ uVar54) ^ uVar32;
  *puVar27 = uVar47 ^ *puVar1 ^ *puVar52 ^ uVar49 ^ uVar54;
  uVar17 = *(ulonglong *)(lVar21 + -0x898) ^ uVar49;
  uVar13 = DAT_1826717a0 & 0xff;
  *puVar46 = CONCAT44(uVar43,uVar5) ^ 0xf9f9bf523a4e99e4 | uVar17;
  DAT_1826717a0 = ((DAT_1826717a0 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar26 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x83773929)) =
       uVar17 >> ((local_118 ^ 0xb8) & 0x3f) ^ uVar26;
  uVar43 = DAT_182671570;
  lVar21 = DAT_182671560;
  uVar13 = DAT_18267185c & 0xff;
  uVar31 = CONCAT44(uVar16,DAT_182671568);
  DAT_18267185c = ((DAT_18267185c << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar29 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671570 ^ 0x33a18bef)) ^ uVar49) <<
           0x27;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar29 ^ CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar17 = *(ulonglong *)(lVar21 + -0xa88);
  *puVar52 = (uVar31 ^ 0x2399618e10d22d4) >> ((*(byte *)(lVar21 + -0x898) ^ (byte)uVar20) & 0x3f);
  uVar31 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar21 - ((ulonglong)uVar8 ^ 0x7ffe7f16)) = (uVar17 ^ uVar26 | uVar29) ^ uVar48;
  *(ulonglong *)(lVar21 + -0x898) =
       (*(ulonglong *)(lVar21 - ((ulonglong)DAT_182671584 ^ 0xf21d48a0)) ^ uVar32) +
       0x7c15e263ebd7b8b8;
  *(ulonglong *)(lVar21 - (uVar31 ^ 0xd75aa09a)) =
       (*(ulonglong *)(lVar21 - ((ulonglong)DAT_1826715a4 ^ 0xb29875b8)) ^ uVar47) -
       (CONCAT44(uVar7,uVar43) ^ 0xf41c88ccf097860f) ^ uVar28;
  uVar17 = *puVar46;
  uVar16 = DAT_1826715d4 & 0xff;
  *(ulonglong *)(lVar21 + -0xa88) = (uVar28 ^ *puVar52) - (uVar48 ^ uVar17) ^ uVar50;
  lVar3 = DAT_182671560;
  DAT_1826715d4 = ((DAT_1826715d4 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar16 = DAT_18267163c & 0xff;
  *(ulonglong *)(lVar21 + -0x628) =
       (uVar48 ^ uVar17) - (CONCAT44(uVar4,DAT_1826715b4) ^ 0xd8935d8cd5ff5468) ^
       CONCAT44(DAT_1826715d4,DAT_1826715d4);
  DAT_18267163c = ((DAT_18267163c << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar29 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671580 ^ 0x25cee5cd)) =
       uVar25 ^ *puVar2 ^ *puVar22 ^ uVar29 ^ uVar32;
  uVar16 = DAT_18267183c & 0xff;
  uVar29 = *(ulonglong *)(lVar3 + -0x898) ^ uVar29;
  DAT_18267183c = ((DAT_18267183c << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar17 = uVar29 >> (((byte)DAT_182671580 ^ 0x74) & 0x3f);
  *puVar1 = uVar17 ^ CONCAT44(DAT_18267183c,DAT_18267183c);
  puVar27 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0xa2a1ce7e));
  *puVar52 = uVar29 << ((bVar18 ^ 0xa1) & 0x3f) ^ uVar47;
  *puVar46 = (*puVar27 ^ uVar47 | uVar17) ^ uVar25;
  uVar16 = DAT_182671780 & 0xff;
  DAT_182671780 = ((DAT_182671780 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar17 = CONCAT44(DAT_182671780,DAT_182671780);
  *puVar41 = (*puVar22 ^ uVar32) - (CONCAT44(uVar15,uVar43) ^ 0x3f066f75e94978a3) ^ uVar17;
  *puVar23 = (uVar17 ^ *puVar2) - (uVar25 ^ *puVar46) ^ uVar45;
  uVar15 = DAT_182671864 & 0xff;
  DAT_182671864 = ((DAT_182671864 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar17 = CONCAT44(DAT_182671864,DAT_182671864);
  uVar29 = (CONCAT44(uVar4,uVar6) ^ 0x4c3beade4851526b) + (uVar25 ^ *puVar46) ^ uVar17;
  *puVar1 = uVar29;
  uVar17 = uVar50 ^ uVar40 ^ uVar29 ^ uVar17 ^ *puVar44;
  uVar15 = DAT_182671890 & 0xff;
  *puVar52 = uVar17;
  DAT_182671890 = ((DAT_182671890 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  *puVar22 = (uVar40 ^ uVar17) >> (((byte)DAT_1826715a4 ^ 5) & 0x3f) ^
             CONCAT44(DAT_182671890,DAT_182671890);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar19 ^ uVar35) * 4) = uVar51;
  return;
}



############ FUN_ 180eacb90 size=5678 ############

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

void FUN_180eacb90(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong *puVar15;
  byte bVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  byte local_res20;
  byte local_f8;
  
  uVar10 = DAT_1826715b4;
  uVar6 = DAT_1826715ac;
  uVar8 = DAT_182671594;
  uVar5 = DAT_182671588;
  uVar7 = DAT_182671584;
  lVar3 = DAT_182671560;
  uVar30 = (ulonglong)DAT_1826715b4;
  uVar25 = (ulonglong)DAT_182671584;
  uVar33 = DAT_182671594 << 0x10 | DAT_182671594 >> 0x10;
  uVar18 = DAT_1826715b4 | DAT_182671584;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_182671bac);
  uVar12 = *(uint *)(&DAT_182611e80 + DAT_182671bac) ^ DAT_182671594;
  uVar29 = (ulonglong)DAT_1826715ac;
  uVar39 = DAT_182671588 * DAT_1826715ac;
  uVar20 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar22 = CONCAT44(DAT_1826715ac,DAT_182671588);
  uVar24 = CONCAT44(DAT_182671774,DAT_182671774);
  bVar21 = (byte)DAT_182671588;
  uVar26 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  DAT_18267156c = uVar39;
  DAT_182671570 = uVar33;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar39 ^ 0x2a32d050)) ^ uVar20) >>
       ((bVar21 ^ 0x95) & 0x3f) ^ uVar24;
  uVar9 = DAT_1826715c0;
  *(ulonglong *)(lVar3 + -0xc08) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xbdcabf02)) ^ uVar24 |
       CONCAT44(DAT_1826716dc,DAT_1826716dc) ^ *(ulonglong *)(lVar3 + -0x3f0)) ^ uVar26;
  uVar17 = CONCAT44(uVar9,uVar9);
  uVar38 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(lVar3 + -0x3b8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x2afdfbe)) ^ *(ulonglong *)(lVar3 + -0x5c8) ^
       uVar38 ^ uVar17 ^ uVar26;
  lVar3 = DAT_182671560;
  uVar23 = (ulonglong)uVar18;
  uVar24 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  uVar19 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0x2afd5b6)) =
       (*(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xb3c9ae7a)) ^
       CONCAT44(DAT_1826717d4,DAT_1826717d4)) +
       (*(ulonglong *)(DAT_182671560 - (uVar23 ^ 0xbfcbb9b2)) ^ uVar24) ^ uVar19;
  uVar27 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar3 + -0xa0) = (*(ulonglong *)(lVar3 + -0x638) ^ uVar24) << 0x28 ^ uVar27;
  lVar3 = DAT_182671560;
  uVar37 = (ulonglong)uVar33;
  uVar40 = CONCAT44(DAT_182671850,DAT_182671850);
  local_res20 = (byte)uVar39;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar33 ^ 0xffffff7f)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar33 ^ 0xfffff9c7)) ^ uVar24) >>
       ((local_res20 ^ 0xb0) & 0x3f) ^ uVar40;
  uVar9 = DAT_182671884;
  uVar14 = (ulonglong)uVar8;
  *(ulonglong *)(lVar3 + -0x318) =
       CONCAT44(uVar8,uVar6) ^ 0xccdccd761d0ad539 | uVar26 ^ *(ulonglong *)(lVar3 + -0xc08);
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar24 = (uVar40 ^ *(ulonglong *)(lVar3 + -0x80) | uVar27 ^ *(ulonglong *)(lVar3 + -0xa0)) ^
           uVar34;
  uVar28 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar24;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xbdcab39a)) =
       uVar28 ^ uVar24 ^ uVar34 ^ uVar19 ^ *(ulonglong *)(lVar3 + -0x600);
  uVar24 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  local_f8 = (byte)uVar10;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xbfcbbe52)) =
       (*(ulonglong *)(lVar3 + -0x5c8) ^ uVar38) + (*(ulonglong *)(lVar3 + -0x610) ^ uVar28) ^
       uVar24;
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (*(ulonglong *)(DAT_182671560 + -0x610) ^ uVar28) << ((local_f8 ^ 0x8f) & 0x3f) ^ uVar31;
  uVar27 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xbdcabf0a)) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar28) >> ((local_res20 ^ 0x93) & 0x3f) ^ uVar27;
  lVar3 = DAT_182671560;
  uVar31 = uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x688);
  puVar15 = (ulonglong *)(DAT_182671560 - (uVar29 ^ 0x2afd936));
  uVar27 = uVar27 ^ *puVar15 | uVar31;
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar27 ^ CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar27 ^ *(ulonglong *)(lVar3 + -0x1d8) ^ uVar24 ^ uVar40;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x1f8417f4)) =
       (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar34) << ((byte)uVar31 & 0x3f);
  uVar27 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 + -0x3b8) ^ uVar17) + (uVar19 ^ *(ulonglong *)(lVar3 + -0x600)) ^
       uVar27;
  uVar31 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar3 + -0x670) = (*(ulonglong *)(lVar3 + -0x3b8) ^ uVar17) << 0x25 ^ uVar31;
  *(uint *)(lVar3 - (uVar29 ^ 0x2afd07e)) = (uVar39 ^ 0x4ec626fa) + 0xfa6ded7a;
  bVar16 = (byte)(uVar8 >> 0x10);
  uVar19 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xfffffc47)) ^ uVar17) >>
           ((bVar16 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar19 ^ CONCAT44(DAT_182671664,DAT_182671664);
  uVar28 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar3 + -0xa88) =
       (CONCAT44(uVar5,uVar18) ^ 0xc34d3eec3ffaea7c) << (((byte)uVar18 ^ 0xa3) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xbdcab67a)) =
       (uVar19 | uVar31 ^ *(ulonglong *)(lVar3 + -0x670)) ^ uVar28;
  uVar5 = DAT_1826716c4;
  uVar32 = (ulonglong)DAT_1826716c4;
  *(ulonglong *)(lVar3 + -0x1f0) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0xb3c9a502)) | uVar28 ^ *(ulonglong *)(lVar3 + -0x3f0);
  uVar35 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar31 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar39 ^ 0x2a32df90)) =
       uVar35 ^ uVar28 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x3f0) ^ *(ulonglong *)(lVar3 + -0xa60);
  uVar9 = DAT_18267185c;
  *(ulonglong *)(lVar3 + -0xc08) =
       (CONCAT44(uVar39,uVar6) ^ 0x8e3954c5e4f8f154) + (uVar35 ^ *(ulonglong *)(lVar3 + -0x638)) ^
       uVar31;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x2afd0ae)) =
       (CONCAT44(uVar7,uVar33) ^ 0x9459e022383c89d8) + (*(ulonglong *)(lVar3 + -0x1d8) ^ uVar24) ^
       uVar19;
  uVar31 = uVar31 ^ *(ulonglong *)(lVar3 + -0xc08);
  uVar36 = CONCAT44(DAT_182671704,DAT_182671704);
  *(ulonglong *)(lVar3 + -0xa0) = (uVar19 ^ *(ulonglong *)(lVar3 + -0x318)) + uVar31 ^ uVar36;
  *(uint *)(lVar3 + -0x968) = (uVar18 ^ 0x7a17803d) * (uVar8 ^ 0xaf9a3e6);
  uVar25 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xb3c9af0a)) = uVar31 << ((bVar21 ^ 0xa5) & 0x3f) ^ uVar25;
  uVar19 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar24 = (*(ulonglong *)(lVar3 + -0xc08) >> 0x20 ^ uVar32) >> 7;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar24 ^ uVar38;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xfffff9ef)) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x80) | uVar24) ^ uVar19;
  uVar38 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *(ulonglong *)(lVar3 + -0xa80) =
       uVar38 ^ uVar19 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0x610) ^ *(ulonglong *)(lVar3 + -0xa0);
  uVar19 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar28 = (CONCAT44(uVar6,uVar8) ^ 0x22525a7b7b348fbc) + (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar40);
  uVar25 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar3 + -0x800) = uVar28 ^ uVar19;
  uVar11 = DAT_1826718a0;
  uVar24 = (*(ulonglong *)(lVar3 - (uVar37 ^ 0xfffff59f)) ^ uVar27) +
           (CONCAT44(uVar6,uVar39) ^ 0xe49abe1a8ffdf770);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar24 ^ uVar25;
  uVar9 = DAT_1826715f4;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x688) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0xbfcbb78a)) ^ uVar19) + uVar24 ^ uVar25;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xfffff8b7)) = uVar28 << (((byte)uVar7 ^ 0xab) & 0x3f) ^ uVar27;
  uVar9 = DAT_1826718b4;
  uVar24 = (uVar19 ^ *(ulonglong *)(lVar3 + -0x800)) >> (((byte)uVar7 ^ 0x95) & 0x3f);
  *(ulonglong *)(lVar3 + -0x600) = uVar24 ^ CONCAT44(DAT_182671720,DAT_182671720);
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar24 = (uVar24 | uVar27 ^ *(ulonglong *)(lVar3 + -0x748)) ^ uVar23;
  uVar28 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar24;
  uVar24 = *(ulonglong *)(lVar3 - (uVar37 ^ 0xfffff977)) ^ uVar28 ^ uVar23 ^ uVar25 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x670) = uVar24;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xfffff607)) = uVar28 ^ uVar24 ^ uVar22 ^ 0x86b4c28dcbb0428;
  lVar4 = DAT_182671560;
  uVar24 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xb3c9af2a)) ^ uVar36) +
           (uVar28 ^ *(ulonglong *)(lVar3 + -0x670));
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar24 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x1f0) = uVar24 << ((bVar21 ^ 0xaf) & 0x3f);
  uVar27 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(ulonglong *)(lVar4 - (uVar14 ^ 0xfffffc0f)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x670)) << ((local_f8 ^ 0xa4) & 0x3f) ^ uVar27;
  uVar22 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x670)) >> ((local_f8 ^ 0x98) & 0x3f);
  uVar31 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar24 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(lVar4 + -0x638) = uVar22 ^ uVar31;
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xb3c9ae52)) =
       (*(ulonglong *)(lVar4 + -0x3f0) ^ uVar27 | uVar22) ^ uVar24;
  *(ulonglong *)(lVar4 + -0x318) =
       *(ulonglong *)(lVar4 - (uVar14 ^ 0xfffff7ff)) ^ CONCAT44(uVar39,DAT_1826715a4) ^ uVar19 ^
       0xe6a995288a15a279;
  lVar3 = DAT_182671560;
  uVar32 = (ulonglong)DAT_1826718b0;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x688);
  uVar27 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       *(ulonglong *)(DAT_182671560 + -0x1d8) ^ uVar34 ^ uVar27 ^ uVar24 ^
       *(ulonglong *)(DAT_182671560 + -0xa88);
  uVar9 = DAT_1826717a8;
  uVar28 = CONCAT44(DAT_182671878,DAT_182671878);
  *(ulonglong *)(lVar3 + -0x80) = (uVar25 ^ *puVar1) + (uVar38 ^ *puVar15) ^ uVar28;
  lVar3 = DAT_182671560;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xfffffa37)) =
       (uVar38 ^ *(ulonglong *)(DAT_182671560 + -0xa80)) << (((byte)uVar8 ^ 0xf3) & 0x3f) ^ uVar19;
  uVar25 = (uVar38 ^ *(ulonglong *)(lVar3 + -0xa80)) >> ((bVar21 ^ 0x88) & 0x3f);
  *(ulonglong *)(lVar3 + -0x610) = uVar25 ^ CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar3 + -0x6b8) = (CONCAT44(uVar33,uVar39) ^ 0x5ec117c91f7d393d) + uVar25;
  uVar9 = DAT_1826717a0;
  uVar24 = CONCAT44(DAT_182671638,DAT_182671638);
  uVar19 = (*(ulonglong *)(lVar3 + -0x5c8) ^ uVar19 | uVar25) ^ uVar24;
  *(ulonglong *)(lVar3 + -0xa60) = uVar19;
  uVar25 = CONCAT44(uVar9,uVar9);
  uVar22 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar24 = uVar19 ^ *(ulonglong *)(lVar3 + -0x80) ^ uVar25 ^ uVar24 ^ uVar28;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar24;
  uVar6 = DAT_182671578;
  uVar36 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar3 + -0x748) =
       (uVar24 ^ uVar25) + (uVar34 ^ *(ulonglong *)(lVar3 + -0xa88)) ^ uVar22;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xfffff9ff)) =
       (*(ulonglong *)(lVar3 + -0x638) ^ uVar31) >> ((bVar16 ^ 0xde) & 0x3f);
  uVar5 = DAT_182671568;
  uVar19 = (ulonglong)DAT_182671568;
  uVar31 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar37 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar3 + -0x3b8) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0xb3c9a47a)) ^ uVar25) << 0x3a ^ uVar31;
  uVar13 = uVar5 - uVar6;
  uVar30 = (ulonglong)uVar13;
  uVar24 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0x5aab8c00)) ^ uVar25) >>
           (((byte)uVar18 ^ 0x8c) & 0x3f);
  uVar25 = CONCAT44(DAT_182671730,DAT_182671730);
  DAT_182671580 = uVar13;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar24 ^ uVar37;
  uVar24 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xa76581f8)) ^ uVar31 | uVar24) ^ uVar25;
  uVar31 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar3 + -0xa0) = uVar24;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2110bc0)) =
       *(ulonglong *)(lVar3 + -0x748) ^ uVar31 ^ uVar24 ^ uVar25 ^ uVar22;
  uVar27 = *(ulonglong *)(lVar3 + -0xc08) ^ uVar27;
  uVar25 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar3 + -0x670) = (*(ulonglong *)(lVar3 + -0x80) ^ uVar28) + uVar27 ^ uVar25;
  uVar9 = DAT_18267176c;
  *(ulonglong *)(lVar3 + -0x3f0) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0x5aab8e08)) ^ uVar37) -
       (CONCAT44(uVar6,uVar5) ^ 0x29d816ea660cd0ac);
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x800) = uVar27 << (((byte)uVar5 ^ 0x26) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xa7658158)) =
       (*(ulonglong *)(lVar3 + -0xc08) >> 0x20 ^ uVar32) >> 10 ^ uVar23;
  uVar27 = CONCAT44(DAT_182671788,DAT_182671788);
  *(ulonglong *)(lVar3 + -0x1d8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2110928)) ^ uVar23 |
       *(ulonglong *)(lVar3 + -0x800) ^ uVar37) ^ uVar27;
  uVar9 = DAT_182671708;
  *(ulonglong *)(lVar3 + -0x688) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x5aab8628)) ^ uVar27) + 0x2455f48b9a26c4c1;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar24 = *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2110be8));
  *(uint *)(lVar3 + -0x504) = (uVar6 ^ 0x615cd28c) * *(int *)(lVar3 + -0x678);
  uVar9 = DAT_182671608;
  lVar4 = DAT_182671560;
  uVar24 = uVar24 ^ *(ulonglong *)(lVar3 + -0x670) ^ uVar28 ^ uVar27 ^ uVar25;
  *(ulonglong *)(lVar3 + -0xa80) = uVar24;
  uVar24 = uVar24 ^ uVar28;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x6b8) = (*(ulonglong *)(lVar3 + -0x748) ^ uVar22) + uVar24 ^ uVar27;
  uVar9 = DAT_18267186c;
  uVar22 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  *(ulonglong *)(lVar4 + -0x5c8) = uVar24 << 0x20 ^ uVar22;
  uVar23 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar24 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0xa76588c0)) ^ uVar28) >> (((byte)uVar6 ^ 0xd0) & 0x3f)
  ;
  *(ulonglong *)(lVar4 + -0x610) = uVar24 ^ CONCAT44(uVar9,uVar9);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0x5aab8d90)) =
       (*(ulonglong *)(lVar4 - (uVar19 ^ 0x2110ff8)) ^ uVar22 | uVar24) ^ uVar23;
  *(uint *)(lVar3 - (uVar30 ^ 0xa7658134)) =
       *(uint *)(lVar3 + -0x844) >> (((byte)uVar6 ^ 0xfc) & 0x1f);
  uVar9 = DAT_182671828;
  *(ulonglong *)(lVar3 + -0xa88) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0xa76584f8)) ^ uVar26 ^ *(ulonglong *)(lVar3 + -0xa60) ^
       uVar23 ^ uVar27;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x5aab81c8)) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0x5aab8180)) ^ uVar25) +
       (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar31) ^ uVar22;
  uVar31 = *(ulonglong *)(lVar3 + -0x1f0) ^ uVar31;
  uVar25 = uVar31 << ((local_res20 ^ 0x88) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar25 ^ CONCAT44(DAT_182671600,DAT_182671600);
  uVar31 = uVar31 >> (((byte)uVar13 ^ 0x60) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar31 ^ CONCAT44(_DAT_182671610,_DAT_182671610);
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  puVar1 = (ulonglong *)(DAT_182671560 + -0xa60);
  *(ulonglong *)(DAT_182671560 + -0x3b8) = (uVar31 | uVar25) ^ uVar24;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xa76582e0)) = (*puVar1 ^ uVar23) + 0x57386678cabd73e7;
  *(ulonglong *)(lVar3 + -0x80) =
       uVar35 ^ *(ulonglong *)(lVar3 + -0x638) ^ *(ulonglong *)(lVar3 + -0x3b8) ^ uVar24 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x3f0) =
       CONCAT44(uVar6,uVar39) ^ *(ulonglong *)(lVar3 + -0x800) ^ uVar37 ^ 0x92362b91cd76511f;
  uVar9 = DAT_182671848;
  uVar24 = CONCAT44(DAT_182671754,DAT_182671754);
  uVar27 = (CONCAT44(uVar5,uVar6) ^ 0x7f94d86cec2dccf7) + (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar27)
           ^ uVar24;
  *(ulonglong *)(lVar3 + -0xc08) = uVar27;
  uVar25 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(uVar25 ^ *(ulonglong *)(lVar3 + -0x30)) = uVar17 ^ uVar27 ^ uVar24;
  uVar9 = DAT_1826718c8;
  *(ulonglong *)(lVar3 + -0x318) =
       CONCAT44(uVar6,uVar6) ^ CONCAT44(uVar33,uVar7) ^ 0x50f8fcbce114186;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x688) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x2afd336)) ^ uVar35) +
       (CONCAT44(uVar8,DAT_18267157c) ^ 0x19ca925395c53ffa) ^ uVar24;
  *(ulonglong *)(lVar3 + -0x1d8) =
       uVar35 ^ *(ulonglong *)(lVar3 + -0x80) | *(ulonglong *)(lVar3 + -0x638) ^ uVar22;
  *(ulonglong *)(lVar3 + -0x178) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x30)) + (CONCAT44(uVar7,uVar13) ^ 0xbdcab58aa7658241) * 8
       ^ uVar20;
  uVar9 = DAT_182671748;
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar19 ^ 0x2110b48)) ^ uVar20) =
       *(ulonglong *)(lVar3 - (uVar36 ^ 0x5aab8178)) ^ uVar17 ^ uVar24;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar24 = CONCAT44(uVar33,DAT_1826715a0);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xa7658508)) =
       (CONCAT44(uVar13,uVar39) ^ 0x1a2648201cf9c609) + (*(ulonglong *)(lVar3 + -0x638) ^ uVar22) ^
       uVar29;
  *(undefined8 *)(lVar3 + -0xa80) = 0x33f7b22454d5;
  puVar1 = (ulonglong *)
           ((uVar25 ^ *(ulonglong *)(lVar3 + -0x30)) + (uVar24 ^ 0xffffffff2f6b275a) * 8);
  *(ulonglong *)(lVar3 + -0x410) = (ulonglong)puVar1 ^ CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar7 = DAT_1826715b0;
  uVar19 = (ulonglong)DAT_1826715b0;
  *puVar1 = *(ulonglong *)(lVar3 + -0x748) ^ uVar17 ^ uVar29;
  uVar29 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xfffffa37)) =
       (CONCAT44(uVar7,DAT_1826715a4) ^ 0x94dfbf6d79fceb16) +
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xa88)) ^ uVar29;
  uVar24 = CONCAT44(DAT_182671784,DAT_182671784);
  puVar1 = (ulonglong *)
           ((uVar25 ^ *(ulonglong *)(lVar3 + -0x30)) +
           (CONCAT44(uVar39,uVar13) ^ 0x2a32d9a8a7658243) * 8);
  *(ulonglong *)(lVar3 + -0x610) = *(ulonglong *)(lVar3 + -0xa80) ^ 0xa6d6b0f4c3640228;
  *(ulonglong *)(lVar3 + -0x2d8) = (ulonglong)puVar1 ^ uVar24;
  uVar9 = DAT_1826715a8;
  *puVar1 = *(ulonglong *)(lVar3 + -0x5c8) ^ uVar17 ^ uVar29;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 + -0xb98) + (CONCAT44(uVar9,uVar10) ^ 0xef6bb77eb3c9af8a) * 8);
  *(ulonglong *)(lVar3 + -0xa38) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar3 + -0x670) = (CONCAT44(uVar6,uVar5) ^ 0x8893681913d6c2ad) + 0xccb061d595604b97
  ;
  uVar24 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xd094d957)) = *puVar1 ^ uVar17 ^ uVar24;
  uVar11 = DAT_18267166c;
  *(ulonglong *)(lVar3 + -0x600) =
       -0x38ec50bff4287f56 - (CONCAT44(uVar9,DAT_182671574) ^ 0x93a8db2da3eea15c);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x1f613d8a)) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0x6d862085)) ^ CONCAT44(uVar11,uVar11) ^
       uVar24;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar2 ^ uVar33;
  return;
}



############ FUN_ 180eb8be0 size=5262 ############

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

void FUN_180eb8be0(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  ulonglong *puVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_b8;
  
  uVar9 = DAT_1826715cc;
  uVar8 = DAT_1826715b4;
  uVar7 = DAT_1826715a8;
  uVar16 = DAT_1826715a0;
  uVar6 = DAT_182671584;
  uVar5 = DAT_18267157c;
  uVar4 = DAT_182671574;
  lVar2 = DAT_182671560;
  uVar30 = (ulonglong)DAT_1826715b4;
  uVar35 = (ulonglong)DAT_18267157c;
  uVar40 = (ulonglong)DAT_182671584;
  uVar28 = DAT_182671574 | DAT_182671584;
  DAT_18267159c = DAT_18267156c << 0x10 | DAT_18267156c >> 0x10;
  uVar26 = *(uint *)(&DAT_182611e78 + DAT_182671bd0) ^ DAT_1826715b4;
  uVar12 = DAT_1826715b4 & DAT_18267157c;
  uVar19 = (ulonglong)uVar12;
  uVar21 = DAT_1826715a0 * DAT_1826715a8;
  uVar13 = *(uint *)(&DAT_182611e70 + (uVar19 ^ 0x40002098) + (longlong)DAT_182671bd0) ^
           DAT_18267157c;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x5c8);
  DAT_182671588 = uVar21;
  DAT_18267158c = uVar28;
  DAT_182671594 = uVar12;
  *(uint *)(DAT_182671560 + -0x274) = (DAT_1826715a8 ^ 0xfe1dc93c) + (uVar21 ^ 0x5820518a);
  uVar11 = DAT_182671700;
  uVar10 = DAT_182671658;
  uVar38 = CONCAT44(uVar9,uVar9);
  uVar27 = CONCAT44(DAT_182671674,DAT_182671674);
  puVar18 = (ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x97eaa2f8));
  *puVar18 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x97eaa388)) ^ uVar38) +
             (CONCAT44(DAT_182671700,DAT_182671700) ^ *puVar1) ^ uVar27;
  lVar2 = DAT_182671560;
  puVar15 = (ulonglong *)(DAT_182671560 + -0x898);
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar41 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar33 = (ulonglong)uVar28;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267159c ^ 0x28a0200)) =
       uVar41 ^ uVar23 ^ uVar27 ^ *puVar15 ^ *(ulonglong *)(DAT_182671560 + -0x400);
  uVar29 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar27 = (uVar23 ^ *(ulonglong *)(lVar2 + -0x80)) >> (((byte)uVar28 ^ 0xfa) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar27 ^ uVar29;
  lVar2 = DAT_182671560;
  uVar34 = (ulonglong)uVar4;
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x40802374)) =
       uVar27 >> ((*(byte *)(DAT_182671560 - (uVar30 ^ 0xf400ea61)) ^ (byte)uVar11) & 0x3f);
  uVar27 = (*(ulonglong *)(lVar2 - (uVar34 ^ 0x41e8b04c)) ^ uVar23) <<
           (((byte)uVar21 ^ 0x5b) & 0x3f);
  uVar22 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(lVar2 + -0x510) = uVar27 ^ CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar2 + -0x610) = (*(ulonglong *)(lVar2 + -0x1f0) ^ uVar29 | uVar27) ^ uVar22;
  uVar16 = DAT_18267156c;
  uVar27 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xb564b428)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x4d678517)) ^ uVar38) +
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x40002008)) ^ uVar23);
  uVar9 = DAT_1826718c8;
  uVar36 = CONCAT44(DAT_182671818,DAT_182671818);
  uVar23 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar2 + -0xc08) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x400)) -
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0x280049a)) ^ uVar22) ^ uVar36;
  uVar17 = DAT_18267159c;
  uVar24 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  bVar20 = (byte)uVar5;
  uVar27 = *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x28004b2)) ^ CONCAT44(uVar9,uVar9) ^ uVar24
           ^ uVar23 ^ *(ulonglong *)(lVar2 + -0xa0);
  *puVar15 = uVar27;
  uVar25 = CONCAT44(DAT_182671890,DAT_182671890);
  *puVar1 = (uVar27 ^ uVar23) >> ((bVar20 ^ 0xe9) & 0x3f) ^ uVar25;
  lVar2 = DAT_182671560;
  uVar38 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0x4d678f47)) =
       (*puVar18 ^ uVar23) << (((byte)uVar28 ^ 0xe4) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (CONCAT44(uVar6,uVar5) ^ 0xb89070d32a1b8d87) - (CONCAT44(uVar7,uVar12) ^ 0xd3bdc5201b8da8d9);
  uVar9 = _DAT_1826715e0;
  uVar23 = CONCAT44(DAT_182671830,DAT_182671830);
  uVar27 = *(ulonglong *)(lVar2 - (uVar30 ^ 0xf400ec11)) ^ uVar38 | uVar25 ^ *puVar1;
  *(ulonglong *)(lVar2 + -0x510) = uVar27 ^ uVar23;
  uVar41 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x9e8) = (uVar24 ^ *(ulonglong *)(lVar2 + -0x638)) - uVar27 ^ uVar41;
  uVar9 = DAT_18267176c;
  uVar31 = CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar27 = *(ulonglong *)(lVar2 - (uVar34 ^ 0x41e8bcc4)) ^
           *(ulonglong *)(lVar2 - (uVar34 ^ 0x41e8b5dc)) ^ uVar31 ^ uVar23 ^ uVar36;
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar27;
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  bVar14 = (byte)DAT_18267159c;
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x4defb9b7)) =
       (uVar27 ^ uVar31) >> ((bVar20 ^ 0xdb) & 0x3f) ^ uVar29;
  uVar23 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x80)) << ((bVar14 ^ 0xa9) & 0x3f);
  *(ulonglong *)(lVar2 + -0x400) = uVar23 ^ CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(lVar2 + -0xa0) =
       (uVar25 ^ *puVar1) >>
       ((*(byte *)(lVar2 - ((ulonglong)uVar21 ^ 0xb564b1e0)) ^ (byte)uVar9) & 0x3f);
  uVar42 = CONCAT44(DAT_182671744,DAT_182671744);
  uVar27 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xb564b9f8)) =
       (uVar23 | uVar29 ^ *(ulonglong *)(lVar2 + -0x548)) ^ uVar42;
  uVar31 = CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar23 = (*(ulonglong *)(lVar2 + -0xc08) ^ uVar36) -
           (*(ulonglong *)(lVar2 - (uVar27 ^ 0x2800a12)) ^ uVar42);
  uVar29 = uVar23 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar29;
  uVar16 = DAT_1826716a4;
  uVar27 = (ulonglong)DAT_1826716a4;
  *(ulonglong *)(lVar2 + -0x3b8) = CONCAT44(uVar12,uVar4) ^ 0x224fa370efc1fad0 | uVar23;
  local_b8 = (byte)uVar7;
  uVar23 = CONCAT44(uVar16,uVar16);
  uVar36 = *(ulonglong *)(lVar2 + -0x610) ^ uVar23 ^ uVar41 ^ *(ulonglong *)(lVar2 + -0x9e8) ^
           uVar22;
  *(ulonglong *)(lVar2 + -0x638) = uVar36;
  uVar9 = DAT_182671724;
  lVar3 = DAT_182671560;
  uVar32 = (uVar36 >> 0x20 ^ uVar27) >> 8;
  *(ulonglong *)(lVar2 + -0x510) = uVar32 ^ uVar25;
  uVar27 = CONCAT44(uVar9,uVar9);
  *puVar1 = (uVar36 ^ uVar23) << ((local_b8 ^ 0xf1) & 0x3f) ^ uVar27;
  uVar36 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  uVar32 = *(ulonglong *)(lVar3 - (uVar40 ^ 0x4d678937)) ^ uVar27 | uVar32;
  uVar23 = CONCAT44(uVar17,DAT_1826715a0);
  bVar14 = (byte)DAT_1826715a0;
  uVar27 = uVar32 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x80) = uVar27;
  uVar9 = DAT_18267162c;
  *(ulonglong *)(lVar3 + -0xa0) = (uVar23 ^ 0x633d8b08247df4d0) << ((bVar14 ^ 0x7b) & 0x3f);
  uVar10 = DAT_1826717f4;
  uVar25 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x548) = (uVar41 ^ *(ulonglong *)(lVar3 + -0x9e8)) - uVar32 ^ uVar25;
  uVar9 = DAT_18267184c;
  lVar2 = DAT_182671560;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar41 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar27 = uVar29 ^ uVar23 ^ uVar36 ^ uVar31 ^ uVar27;
  *(ulonglong *)(DAT_182671560 + -0x400) = uVar27;
  *(ulonglong *)(lVar2 + -0xc08) = (uVar27 ^ uVar23) >> ((bVar20 ^ 0xf8) & 0x3f) ^ uVar41;
  uVar16 = DAT_1826715a0;
  uVar27 = (*(ulonglong *)(lVar2 - (uVar30 ^ 0xf400eba9)) ^ uVar23) << ((local_b8 ^ 0xe5) & 0x3f);
  *(ulonglong *)(lVar2 + -0x3b8) = uVar27 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_18267189c;
  uVar27 = *(ulonglong *)(lVar2 - (uVar33 ^ 0x4defb0f7)) ^ uVar41 | uVar27;
  *(ulonglong *)(lVar2 + -0x610) = uVar27 ^ uVar22;
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar41 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(DAT_182671560 + -0x638) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0xb564b090)) ^ uVar31) - uVar27 ^ uVar29
  ;
  uVar9 = DAT_1826716e4;
  bVar14 = (byte)DAT_18267156c;
  uVar27 = *(ulonglong *)(lVar2 - (uVar40 ^ 0x4d6789b7)) ^ uVar41 ^ uVar25 ^ uVar42 ^ *puVar15;
  *(ulonglong *)(lVar2 + -0x510) = uVar27;
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x97eaafa8)) =
       (uVar27 ^ uVar41) >> ((bVar14 ^ 0xb3) & 0x3f) ^ uVar23;
  uVar9 = DAT_182671670;
  uVar27 = (uVar41 ^ *(ulonglong *)(lVar2 + -0x510)) << 7;
  *(int *)(lVar2 + -0x844) = *(int *)(lVar2 - (uVar35 ^ 0x408027b8)) * *(int *)(lVar2 + -0x27c);
  uVar10 = DAT_1826716b4;
  *(ulonglong *)(lVar2 + -0xa0) = uVar27 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671774;
  uVar41 = CONCAT44(uVar10,uVar10);
  uVar27 = uVar27 | uVar23 ^ *puVar1;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar27 ^ uVar41;
  uVar16 = DAT_182671628;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar31 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x4080204c)) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0xf400eae1)) ^ uVar25) - uVar27 ^ uVar36;
  *(ulonglong *)(lVar2 + -0x400) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0x80)) << ((bVar20 ^ 0xf0) & 0x3f);
  uVar27 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(lVar2 + -0xc08) =
       *(ulonglong *)(lVar2 - (uVar35 ^ 0x408026f4)) ^ uVar31 ^ uVar41 ^ uVar29 ^
       *(ulonglong *)(lVar2 + -0x9e8);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x41e8b374)) =
       ((ulonglong)uVar16 << 0x12 | (ulonglong)(uVar16 >> 0xe)) ^
       *(ulonglong *)(lVar2 - (uVar40 ^ 0x4d6780f7)) >> 0xe ^ uVar27;
  uVar41 = (uVar31 ^ *(ulonglong *)(lVar2 + -0xc08)) << (((byte)uVar4 ^ 0xfe) & 0x3f);
  uVar25 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar41 ^ CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x40002810)) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x3b8) | uVar41) ^ uVar25;
  uVar9 = _DAT_1826715f0;
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671688,DAT_182671688);
  uVar29 = (uVar29 ^ *(ulonglong *)(lVar2 + -0x638)) - (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar31);
  *(ulonglong *)(lVar2 + -0x510) = uVar29 ^ CONCAT44(DAT_182671678,DAT_182671678);
  uVar41 = CONCAT44(uVar9,uVar9);
  uVar27 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar19 = *(ulonglong *)(lVar3 + -0x6d0);
  *puVar1 = uVar29 - (uVar25 ^ *puVar15) ^ uVar41;
  uVar29 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x4d678c5f)) =
       (uVar27 ^ uVar19) + (*(ulonglong *)(lVar3 + -0x688) ^ uVar23) ^ uVar29;
  uVar16 = DAT_18267159c;
  *(uint *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0x28a00fc)) =
       *(uint *)(lVar3 + -0x344) | *(uint *)(lVar3 + -0x8c);
  uVar23 = CONCAT44(DAT_182671704,DAT_182671704);
  *(ulonglong *)(lVar3 + -0x548) =
       (uVar25 ^ *puVar15) - (uVar29 ^ *(ulonglong *)(lVar3 + -0xa0)) ^ uVar23;
  *(uint *)(lVar3 + -0x844) = (DAT_18267156c ^ 0xb77245f) + *(int *)(lVar3 - (uVar33 ^ 0x4defbbab));
  uVar25 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar3 + -0x400) =
       uVar25 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0x610) ^ uVar22 ^ *(ulonglong *)(lVar3 + -0x80);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x28a0b68)) =
       uVar29 ^ *(ulonglong *)(lVar3 + -0xa0) | CONCAT44(uVar7,uVar21) ^ 0x247a4dce30ec00fd;
  uVar29 = (uVar25 ^ *(ulonglong *)(lVar3 + -0x400)) >> (((byte)uVar6 ^ 0xef) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc08) = uVar29 ^ CONCAT44(DAT_182671798,DAT_182671798);
  uVar9 = DAT_182671784;
  *(ulonglong *)(lVar3 + -0x3b8) =
       uVar25 ^ *(ulonglong *)(lVar3 + -0x400) | uVar23 ^ *(ulonglong *)(lVar3 + -0x548);
  lVar2 = DAT_182671560;
  bVar20 = (byte)uVar16;
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar19 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (uVar25 ^ *(ulonglong *)(DAT_182671560 + -0x400)) << ((bVar20 ^ 0xb0) & 0x3f) ^ uVar27;
  uVar25 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar2 + -0x638) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x97eaab90)) ^ uVar27 | uVar29) ^ uVar31;
  uVar9 = DAT_1826716d0;
  uVar19 = (uVar36 ^ *(ulonglong *)(lVar2 + -0x80)) -
           (CONCAT44(_DAT_1826715dc,_DAT_1826715dc) ^ *(ulonglong *)(lVar2 + -0x628));
  *(ulonglong *)(lVar2 + -0x510) = uVar19 ^ uVar25;
  uVar25 = CONCAT44(uVar9,uVar9);
  *puVar15 = uVar19 - (*(ulonglong *)(lVar2 - (uVar33 ^ 0x4defbac7)) ^ uVar31) ^ uVar25;
  lVar3 = DAT_182671560;
  uVar19 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x4defbaef)) =
       (CONCAT44(uVar12,uVar7) ^ 0xbfffdf770815101f) - (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar23) ^
       uVar19;
  uVar9 = DAT_182671718;
  uVar19 = (*(ulonglong *)(lVar2 - (uVar34 ^ 0x41e8b6dc)) ^ uVar19) +
           (uVar31 ^ *(ulonglong *)(lVar2 + -0x638));
  *(ulonglong *)(lVar2 + -0x9e8) = uVar19 ^ CONCAT44(DAT_182671814,DAT_182671814);
  uVar27 = uVar19 ^ uVar41 ^ uVar36 ^ *puVar1;
  *(ulonglong *)(lVar2 + -0x3b8) = uVar27;
  uVar10 = DAT_18267182c;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x400) = (uVar36 ^ uVar27) >> ((bVar20 ^ 0xa0) & 0x3f) ^ uVar33;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xf400e3a1)) =
       (uVar36 ^ uVar27) << ((local_b8 ^ 0xc9) & 0x3f) ^ uVar19;
  uVar30 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x41e8b13c)) =
       (*(ulonglong *)(lVar3 + -0xc08) ^ uVar19 | *(ulonglong *)(lVar3 + -0x400) ^ uVar33) ^ uVar30;
  uVar5 = DAT_182671598;
  uVar31 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar19 = (ulonglong)DAT_182671598;
  uVar16 = DAT_182671598 << 0x10;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267156c ^ 0x28004a2)) =
       (uVar41 ^ *puVar1) - (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar30) ^ uVar31;
  uVar9 = DAT_182671768;
  uVar17 = (uVar16 | uVar5 & 0xff00) << 8 | uVar5 >> 8 & 0xff00 | DAT_182671598 >> 0x18;
  uVar33 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar16 = DAT_182671598 >> 0x18;
  puVar18 = (ulonglong *)(lVar3 - (uVar19 ^ 0xe45dfe52));
  bVar20 = (byte)uVar5;
  uVar27 = uVar25 ^ uVar23 ^ *puVar18 ^ *puVar15;
  DAT_182671590 = uVar17;
  *(ulonglong *)(lVar3 + -0x80) = uVar27 ^ uVar33;
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x510) = uVar27 >> ((bVar20 ^ 0x3a) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xe45dfd0a)) =
       (CONCAT44(uVar5,uVar17) ^ 0xba2e329a7c4d4a97) >> (((byte)uVar16 ^ 0xd4) & 0x3f);
  uVar19 = *puVar15;
  uVar33 = (*(ulonglong *)(lVar3 + -0x80) ^ uVar33) << ((bVar20 ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar3 + -0x638) = uVar33 ^ CONCAT44(DAT_182671698,DAT_182671698);
  lVar2 = DAT_182671560;
  puVar37 = (ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x1afb58f4));
  uVar23 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  uVar33 = *puVar37 ^ uVar34 | uVar33;
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar33 ^ uVar38;
  uVar9 = DAT_182671854;
  uVar27 = (ulonglong)_DAT_182671610;
  puVar39 = (ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x1afb5bcc));
  uVar34 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar29 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar2 + -0x3b8) =
       (uVar25 ^ uVar19) - (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xe45df2f2)) ^ uVar38) ^
       uVar23;
  uVar19 = uVar33 ^ *puVar39 ^ uVar34 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x400) = uVar19;
  lVar3 = DAT_182671560;
  uVar33 = (uVar19 >> 0x20 ^ uVar27) >> 0x1a;
  uVar19 = (uVar19 ^ uVar34) << ((bVar20 ^ 0x1c) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc08) = uVar33 ^ uVar29;
  uVar27 = CONCAT44(uVar9,uVar9);
  *puVar1 = uVar19 ^ uVar27;
  uVar10 = DAT_18267165c;
  uVar33 = uVar33 | uVar19;
  *(ulonglong *)(lVar3 + -0x548) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xe45dfed2)) ^ uVar27) -
       (CONCAT44(uVar4,uVar8) ^ 0x920242246decc361);
  uVar9 = DAT_182671640;
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x610) = uVar33 ^ uVar29;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xe45dfb9a)) =
       (*(ulonglong *)(lVar3 + -0x628) ^ uVar31) - uVar33 ^ uVar27;
  uVar10 = DAT_1826717cc;
  uVar9 = DAT_1826715c8;
  uVar19 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  uVar30 = *(ulonglong *)(lVar3 + -0x1f0) ^ *(ulonglong *)(lVar3 + -0x3b8) ^ uVar19 ^ uVar23 ^
           uVar30;
  uVar33 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar3 + -0x510) = uVar30;
  *(ulonglong *)(lVar3 + -0x638) =
       (*(ulonglong *)(lVar3 + -0x80) ^ uVar27) << (((byte)*puVar37 ^ (byte)uVar9) & 0x3f);
  bVar14 = (byte)DAT_18267156c;
  *puVar15 = (uVar30 ^ uVar19) >> ((bVar20 ^ 0xc) & 0x3f) ^ uVar33;
  lVar2 = DAT_182671560;
  uVar19 = (uVar30 ^ uVar19) << ((bVar14 ^ 0xa0) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x400) =
       (CONCAT44(uVar4,uVar6) ^ 0x4d4c6f6952bc3f3e) + 0x47ca15bcd8bba470;
  uVar9 = DAT_182671690;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar19 ^ CONCAT44(uVar10,uVar10);
  uVar4 = DAT_1826715a0;
  uVar16 = DAT_18267159c;
  lVar3 = DAT_182671560;
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar19 = *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x1afb557c)) ^ uVar33 | uVar19;
  *(ulonglong *)(lVar2 + -0x548) = uVar19 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xc08) =
       CONCAT44(uVar21,uVar8) ^ CONCAT44(uVar21,uVar16) ^ 0x92595b33fad7ce26;
  uVar34 = CONCAT44(DAT_182671764,DAT_182671764);
  *puVar1 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x97eaa9d8)) ^ uVar23) - uVar19 ^ uVar34;
  uVar10 = DAT_182671858;
  uVar19 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a4 ^ 0xff00613e)) ^ *puVar18 ^ uVar24 ^
           uVar30 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x628) = uVar19;
  uVar9 = DAT_182671600;
  uVar16 = DAT_18267159c ^ 0x2b670434;
  uVar33 = (uVar19 >> 0x20 ^ (ulonglong)DAT_1826715bc) >> 0xe;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar33 ^ CONCAT44(uVar10,uVar10);
  *(uint *)(lVar3 + -0x8c) = (uVar4 ^ 0x77a08157) + uVar16;
  uVar19 = (uVar24 ^ *puVar39) << ((bVar14 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar3 + -0x638) = uVar19 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_1826715c4;
  *puVar37 = (uVar19 | uVar33) ^ uVar22;
  uVar19 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 + -0x400) =
       (*(ulonglong *)(lVar3 + -0x80) ^ uVar27) - (*(ulonglong *)(lVar3 + -0x510) ^ uVar22) ^
       CONCAT44(uVar9,uVar9);
  *puVar15 = *(ulonglong *)(lVar3 - (uVar19 ^ 0xf48125dd)) ^ CONCAT44(DAT_1826716c4,DAT_1826716c4) ^
             *puVar1 ^ uVar34 ^ uVar29;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar26;
  return;
}



############ FUN_ 180eef810 size=5901 ############

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

void FUN_180eef810(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  uint uVar22;
  byte bVar23;
  byte bVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_res18;
  
  uVar11 = DAT_1826715b0;
  uVar12 = DAT_182671598;
  uVar15 = DAT_182671594;
  uVar7 = DAT_182671580;
  uVar10 = DAT_18267157c;
  lVar5 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671598;
  uVar37 = (ulonglong)DAT_1826715b0;
  DAT_18267159c = DAT_182671578 << 0x10 | DAT_182671578 >> 0x10;
  uVar21 = DAT_182671598 & 3;
  if (uVar21 < 2) {
    uVar28 = DAT_1826715b0;
    if (uVar21 == 0) {
      uVar28 = DAT_182671598;
    }
  }
  else {
    uVar28 = DAT_182671584;
    if (uVar21 < 3) {
      uVar28 = DAT_182671580;
    }
  }
  uVar43 = (ulonglong)DAT_18267157c;
  uVar32 = (ulonglong)DAT_182671594;
  uVar21 = *(uint *)(&DAT_182611e78 + DAT_182671988);
  uVar44 = DAT_18267157c + DAT_182671594;
  uVar22 = *(uint *)(&DAT_182611e80 + DAT_182671988) ^ DAT_18267157c;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x638);
  uVar33 = CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar39 = *(ulonglong *)(DAT_182671560 + -0xa88) ^ uVar33;
  uVar27 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  DAT_18267158c = uVar44;
  DAT_1826715a8 = uVar28;
  *(ulonglong *)(DAT_182671560 + -0x600) =
       (CONCAT44(DAT_182671630,DAT_182671630) ^ *puVar1) + uVar39 ^ uVar27;
  uVar19 = DAT_182671820;
  uVar13 = DAT_182671588;
  *(ulonglong *)(lVar5 + -0x748) =
       (CONCAT44(uVar12,uVar7) ^ 0x4512b0226dc62ed7) +
       (CONCAT44(uVar15,uVar11) ^ 0x8bcca516e2dae83c);
  uVar18 = _DAT_1826715d8;
  uVar8 = DAT_182671578;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(uVar19,uVar19);
  bVar23 = (byte)DAT_18267159c;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0x10070b02)) ^ uVar33) <<
       (((byte)DAT_182671584 ^ 0xb3) & 0x3f) ^ uVar30;
  uVar33 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 - (uVar32 ^ 0x423549cd)) = uVar39 >> ((bVar23 ^ 0x32) & 0x3f) ^ uVar33;
  uVar40 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar5 + -0xa60) =
       (*(ulonglong *)(lVar5 - (uVar31 ^ 0xfffffc47)) ^ uVar33 |
       uVar30 ^ *(ulonglong *)(lVar5 + -0x318)) ^ uVar40;
  uVar18 = DAT_1826716ac;
  uVar39 = (ulonglong)DAT_182671870;
  uVar33 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0xdfee538d)) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671584 ^ 0x10070bea)) ^ uVar33 ^
       *(ulonglong *)(lVar5 + -0x600) ^ uVar40 ^ uVar27;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar5 + -0x670);
  uVar30 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  bVar24 = (byte)uVar44;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar5 + -0x9f8)) + uVar33 ^ uVar30;
  uVar41 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar28 ^ 0x10070b0a)) = uVar33 << (bVar24 & 0x3f) ^ uVar41;
  uVar18 = DAT_182671638;
  uVar33 = (*(ulonglong *)(lVar5 + -0x670) >> 0x20 ^ uVar39) >> 9;
  puVar2 = (ulonglong *)(lVar5 + -0xc08);
  *(ulonglong *)(lVar5 + -0x1d8) = uVar33 ^ CONCAT44(DAT_182671648,DAT_182671648);
  uVar9 = DAT_1826717b4;
  uVar42 = (ulonglong)DAT_1826717b4;
  puVar3 = (ulonglong *)(lVar5 + -0xa80);
  *puVar2 = *(ulonglong *)(CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar5 + -0x830)) ^ uVar41;
  uVar18 = DAT_1826715d0;
  uVar34 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  uVar39 = (uVar41 ^ *puVar3 | uVar33) ^ uVar34;
  *(ulonglong *)(lVar5 + -0x1f0) = uVar39;
  lVar5 = DAT_182671560;
  uVar46 = CONCAT44(uVar18,uVar18);
  uVar33 = *(ulonglong *)(DAT_182671560 + -0x610);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xf5feff47)) ^ uVar46 ^ uVar34 ^ uVar30 ^
       uVar39;
  *(ulonglong *)(lVar5 + -0x3f0) = 0x42ada3bca9307b99 >> ((bVar23 ^ 0x19) & 0x3f);
  uVar39 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x300a17aa)) =
       (CONCAT44(uVar9,uVar9) ^ uVar33) + (*(ulonglong *)(lVar5 + -0x600) ^ uVar27) ^ uVar39;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar28 ^ 0x10070442)) =
       (CONCAT44(uVar13,uVar44) ^ 0xcbb072f0227a640f) >> ((bVar23 ^ 0x2b) & 0x3f);
  uVar25 = DAT_1826717c0;
  uVar33 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar5 + -0xa0) =
       (*(ulonglong *)(lVar5 + -0x610) ^ CONCAT44(uVar9,uVar9)) << ((bVar24 ^ 0xbf) & 0x3f) ^ uVar33
  ;
  uVar7 = DAT_182671788;
  uVar36 = (ulonglong)DAT_182671788;
  *(uint *)(lVar5 + -0x774) =
       *(uint *)(*(ulonglong *)(lVar5 + -0x740) ^ (ulonglong)DAT_1826715bc) ^ uVar25;
  uVar41 = CONCAT44(uVar7,uVar7);
  uVar35 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar5 - (uVar31 ^ 0xfffff7ff)) =
       ((ulonglong)(uVar9 >> 0x18) | uVar42 << 8) ^ *(ulonglong *)(lVar5 + -0x610) >> 0x18 ^ uVar35;
  puVar4 = (ulonglong *)(lVar5 + -0x80);
  uVar31 = *(ulonglong *)(lVar5 + -0x6b8);
  uVar27 = CONCAT44(DAT_182671894,DAT_182671894);
  uVar33 = (uVar35 ^ *(ulonglong *)(lVar5 + -0x800) | uVar33 ^ *(ulonglong *)(lVar5 + -0xa0)) ^
           uVar27;
  *puVar4 = uVar33;
  uVar18 = DAT_182671864;
  uVar28 = DAT_182671584;
  uVar7 = DAT_182671580;
  uVar42 = uVar41 ^ uVar33 ^ uVar27 ^ uVar39 ^ *(ulonglong *)(lVar5 + -0x688);
  *puVar1 = uVar42;
  uVar29 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 + -0x748) = (uVar30 ^ uVar31) + (uVar41 ^ uVar42) ^ uVar29;
  uVar19 = DAT_18267189c;
  *(ulonglong *)(lVar5 + -0xa88) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar28 ^ 0x100706c2)) ^ uVar29) +
       (CONCAT44(uVar28,uVar7) ^ 0xcff0a8f650c38490);
  uVar18 = DAT_1826717d4;
  uVar16 = DAT_1826715a4;
  uVar33 = CONCAT44(uVar19,uVar19);
  uVar27 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 + -0x318) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671588 ^ 0x1f841684)) ^ uVar41) <<
       (((byte)uVar10 ^ 0x27) & 0x3f) ^ uVar33;
  uVar26 = uVar16 << 0x10 | uVar16 >> 0x10;
  uVar31 = CONCAT44(uVar18,uVar18);
  DAT_1826715ac = uVar26;
  *(ulonglong *)(lVar5 + -0x3b8) = (uVar42 >> 0x20 ^ uVar36) >> 0x1b ^ uVar31;
  uVar45 = (ulonglong)uVar26;
  *(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x22110050)) =
       CONCAT44(uVar16,uVar26) ^ 0x79e83c2e81d5ca05;
  lVar5 = DAT_182671560;
  uVar42 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar26 ^ 0xa302be9)) =
       (*(ulonglong *)(DAT_182671560 - (uVar45 ^ 0xa3021a9)) ^ uVar31 |
       uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x318)) ^ uVar42;
  uVar41 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(lVar5 + -0x670) =
       uVar41 ^ uVar42 ^ uVar29 ^ *(ulonglong *)(lVar5 + -0x9f8) ^ *(ulonglong *)(lVar5 + -0x748);
  uVar48 = CONCAT44(DAT_182671738,DAT_182671738);
  uVar31 = *(ulonglong *)(lVar5 + -0xbf0);
  uVar33 = *(ulonglong *)(lVar5 + -0xbf0);
  *puVar2 = (uVar39 ^ *(ulonglong *)(lVar5 + -0x688)) + (uVar46 ^ *(ulonglong *)(lVar5 + -0xbf0)) ^
            uVar48;
  uVar17 = DAT_1826715a8;
  bVar38 = (byte)uVar16;
  uVar36 = (uVar46 ^ uVar31) << ((bVar38 ^ 0x15) & 0x3f);
  *puVar3 = uVar36 ^ CONCAT44(uVar25,uVar25);
  uVar18 = DAT_182671850;
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(lVar5 + -0x1d8) =
       (uVar46 ^ uVar33) >> (((byte)DAT_182671578 ^ 0x6e) & 0x3f) ^ uVar30;
  uVar7 = DAT_182671580;
  uVar46 = CONCAT44(uVar18,uVar18);
  uVar31 = (ulonglong)DAT_182671580;
  uVar33 = (*(ulonglong *)(lVar5 - (uVar27 ^ 0x22110be8)) ^ uVar30 | uVar36) ^ uVar46;
  uVar36 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(lVar6 + -0x1f0) = uVar33;
  *(ulonglong *)(lVar6 - (uVar37 ^ 0xdfee560d)) =
       *(ulonglong *)(lVar6 - (uVar31 ^ 0xf5fef5f7)) ^ uVar48 ^ uVar33 ^ uVar36 ^ uVar46;
  uVar19 = DAT_182671758;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671758,DAT_182671758);
  uVar31 = (ulonglong)DAT_182671578;
  uVar46 = (CONCAT44(uVar16,DAT_182671584) ^ 0x3bdd18df7882fbfc) +
           (*(ulonglong *)(DAT_182671560 + -0x3f0) ^ uVar36);
  uVar36 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar46 ^ uVar30;
  uVar20 = DAT_182671810;
  uVar33 = (ulonglong)DAT_18267159c;
  uVar31 = (*(ulonglong *)(lVar5 - (uVar31 ^ 0xca35483d)) ^ uVar29) +
           (CONCAT44(uVar11,uVar26) ^ 0xf67d0055cdf35436);
  *(ulonglong *)(lVar5 + -0x5c8) = uVar31 ^ uVar36;
  uVar18 = DAT_1826715b8;
  uVar29 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 + -0x610) =
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0x4f75cc35)) ^ uVar30) + uVar31 ^ uVar29;
  uVar20 = DAT_1826717a8;
  uVar36 = CONCAT44(uVar18,uVar18);
  bVar23 = (byte)DAT_182671584;
  *(ulonglong *)(lVar5 + -0x800) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671588 ^ 0x1f8416bc)) ^ uVar30) <<
       (((byte)uVar12 ^ 0xe6) & 0x3f) ^ uVar36;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xf5fef95f)) =
       uVar46 >> ((bVar23 ^ 0xad) & 0x3f) ^ uVar30;
  uVar7 = DAT_182671574;
  uVar31 = *(ulonglong *)(lVar5 + -0xa0);
  *puVar4 = CONCAT44(uVar12,DAT_1826715a8) ^ CONCAT44(uVar26,uVar12) ^ 0x49a96d8f4e7d8488;
  uVar33 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x300a179a)) =
       (uVar31 ^ uVar30 | *(ulonglong *)(lVar5 + -0x800) ^ uVar36) ^ uVar33;
  *(ulonglong *)(lVar5 + -0xa88) =
       uVar42 ^ *(ulonglong *)(lVar5 + -0x9f8) ^ *(ulonglong *)(lVar5 + -0xa0) ^ uVar30;
  uVar28 = DAT_182671574;
  uVar47 = (ulonglong)DAT_1826716b8;
  uVar25 = (uVar7 << 0x10 | uVar7 & 0xff00) << 8 | uVar7 >> 8 & 0xff00 | DAT_182671574 >> 0x18;
  uVar46 = (ulonglong)uVar25;
  uVar42 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  DAT_18267156c = uVar25;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar25 ^ 0xe348b616)) =
       *(ulonglong *)(lVar5 + -0x610) ^ *(ulonglong *)(lVar5 + -0x6b8) ^ uVar42 ^ uVar33 ^ uVar29;
  *(ulonglong *)(lVar5 + -0xa60) = *puVar1 ^ uVar42 | CONCAT44(uVar7,uVar25) ^ 0xd7bd4abf22c68bca;
  uVar30 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar33 = (CONCAT44(uVar7,uVar7) ^ 0xe4dc12eaa7b38da) + (uVar41 ^ *(ulonglong *)(lVar5 + -0x670));
  *(ulonglong *)(lVar5 + -0x3b8) = uVar33 ^ uVar30;
  uVar18 = DAT_182671744;
  *(ulonglong *)(lVar5 + -0x318) =
       (CONCAT44(uVar7,uVar25) ^ 0x467bf92634bfc520) >>
       ((*(byte *)(lVar5 + -0x600) ^ (byte)uVar19) & 0x3f);
  uVar19 = DAT_1826717f4;
  uVar9 = DAT_182671578;
  uVar31 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 + -0x688) =
       (*(ulonglong *)(lVar5 - (uVar46 ^ 0xe348bc26)) ^ uVar48) +
       (CONCAT44(uVar25,uVar7) ^ 0xb2bf9d1419c0c51c) ^ uVar31;
  uVar25 = DAT_182671588;
  uVar48 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar5 + -0xbf0) =
       (*(ulonglong *)(lVar5 - (uVar46 ^ 0xe348b6a6)) ^ uVar31) + uVar33 ^ uVar48;
  *puVar3 = (CONCAT44(uVar7,uVar9) ^ 0x2577af9bee38580b) >> (((byte)uVar25 ^ 0xac) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar46 ^ 0xe348b1f6)) = uVar33 << 0x21 ^ uVar35;
  uVar18 = DAT_182671884;
  uVar33 = (*(ulonglong *)(lVar5 + -0x3b8) ^ uVar30) >> (((byte)uVar25 ^ 0xa3) & 0x3f);
  *(ulonglong *)(lVar5 + -0x1f0) = uVar33 ^ CONCAT44(DAT_182671794,DAT_182671794);
  uVar31 = CONCAT44(uVar18,uVar18);
  uVar30 = (uVar35 ^ *(ulonglong *)(lVar5 + -0x1d8) | uVar33) ^ uVar31;
  uVar41 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar5 + -0x3f0) = uVar30;
  uVar18 = DAT_182671730;
  uVar33 = (ulonglong)DAT_182671584;
  uVar31 = uVar30 ^ *(ulonglong *)(lVar5 + -0xbf0) ^ uVar41 ^ uVar31 ^ uVar48;
  *(ulonglong *)(lVar5 + -0x748) = uVar31;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(uVar18,uVar18);
  uVar36 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (*(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x1007079a)) ^ uVar29) + (uVar31 ^ uVar41) ^ uVar30
  ;
  uVar25 = DAT_182671580;
  bVar23 = (byte)DAT_1826715a8;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a8 ^ 0x1007010a)) =
       (uVar31 ^ uVar41) << ((bVar24 ^ 0xb9) & 0x3f) ^ uVar36;
  uVar31 = (uVar41 ^ *(ulonglong *)(lVar5 + -0x748)) >> ((bVar23 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar5 + -0x800) = uVar31 ^ CONCAT44(DAT_1826717d0,DAT_1826717d0);
  uVar14 = DAT_182671588;
  *(ulonglong *)(lVar5 + -0x9f8) =
       CONCAT44(uVar25,uVar15) ^ 0x832043063c44323e | uVar41 ^ *(ulonglong *)(lVar5 + -0x748);
  uVar41 = CONCAT44(DAT_182671818,DAT_182671818);
  uVar29 = (uVar31 | uVar36 ^ *puVar4) ^ uVar41;
  *(ulonglong *)(lVar5 + -0xa0) = uVar29;
  uVar18 = _DAT_1826715e0;
  uVar31 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar5 + -0xa88) =
       (CONCAT44(uVar15,uVar14) ^ 0xffb11acb6380517a) >> ((bVar23 ^ 0x83) & 0x3f);
  uVar19 = DAT_1826717cc;
  uVar33 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 + -0x6b8) =
       uVar29 ^ uVar33 ^ uVar41 ^ uVar30 ^ *(ulonglong *)(lVar5 + -0x5c8);
  lVar5 = DAT_182671560;
  uVar29 = CONCAT44(uVar19,uVar19);
  local_res18 = (byte)uVar11;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xca354515)) =
       (*(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x10070a7a)) ^ uVar48) + (*puVar1 ^ uVar42) ^
       uVar29;
  uVar36 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar5 + -0x670) = (*puVar1 ^ uVar42) << ((local_res18 ^ 0xf1) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671580 ^ 0xf5feffff)) =
       0xbc4a8b076a79fd69 >> ((*(byte *)(lVar5 + -0x6b8) ^ (byte)uVar18) & 0x3f);
  uVar31 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(ulonglong *)(lVar5 + -0x318) = (*puVar1 >> 0x20 ^ uVar47) >> 0x14 ^ uVar31;
  uVar9 = DAT_1826717d8;
  uVar48 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar35 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *puVar2 = (*(ulonglong *)(lVar5 - (uVar46 ^ 0xe348b336)) ^ uVar31 |
            uVar36 ^ *(ulonglong *)(lVar5 + -0x670)) ^ uVar48;
  *(ulonglong *)(lVar5 - (uVar45 ^ 0xa302499)) =
       *(ulonglong *)(lVar5 - (uVar43 ^ 0x300a1d2a)) ^ uVar35 ^ uVar48 ^ uVar29 ^
       *(ulonglong *)(lVar5 + -0xa60);
  *(uint *)(lVar5 + -0x754) = (DAT_1826715b0 ^ 0x95360eb6) - (uVar7 ^ 0xc8e8a021);
  uVar41 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *puVar3 = (*(ulonglong *)(lVar5 + -0x688) ^ uVar35) + (uVar30 ^ *(ulonglong *)(lVar5 + -0x5c8)) ^
            uVar41;
  uVar11 = DAT_18267159c;
  *(ulonglong *)(lVar5 + -0x3b8) =
       (CONCAT44(uVar44,DAT_18267159c) ^ 0x2761c8de67b32af1) + 0x3c71b2fd168a6676;
  uVar30 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671578 ^ 0xca354ead)) =
       (*(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x42354cfd)) ^ uVar35) << ((bVar38 ^ 10) & 0x3f) ^
       uVar30;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       CONCAT44(uVar26,uVar11) ^ uVar36 ^ *(ulonglong *)(DAT_182671560 + -0x670) ^
       0xf40d3695f7609116;
  uVar18 = DAT_1826716a0;
  uVar36 = CONCAT44(DAT_182671754,DAT_182671754);
  uVar31 = ((ulonglong)uVar9 << 0x1a | (ulonglong)(uVar9 >> 6)) ^
           *(ulonglong *)(lVar5 + -0x688) >> 6;
  *(ulonglong *)(lVar5 + -0x3f0) = uVar31 ^ uVar36;
  uVar32 = CONCAT44(uVar18,uVar18);
  uVar31 = (*(ulonglong *)(lVar5 + -0x1d8) ^ uVar30 | uVar31) ^ uVar32;
  *(ulonglong *)(lVar5 + -0x610) = uVar31;
  uVar11 = DAT_182671584;
  *(ulonglong *)(lVar5 + -0x748) =
       *(ulonglong *)(lVar5 - (uVar37 ^ 0xdfee5f7d)) ^ uVar39 ^ uVar31 ^ uVar32 ^ uVar41;
  uVar18 = DAT_182671684;
  *(ulonglong *)(lVar5 + -0x9f8) =
       (CONCAT44(uVar12,uVar16) ^ 0x1d214cb73f103a29) >> (((byte)uVar11 ^ 0x9c) & 0x3f);
  lVar6 = DAT_182671560;
  uVar32 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 + -0x800) =
       (*(ulonglong *)(lVar5 - (uVar46 ^ 0xe348b696)) ^ uVar33) +
       (uVar29 ^ *(ulonglong *)(lVar5 + -0xa60)) ^ uVar32;
  uVar33 = *(ulonglong *)(lVar5 + -0x6b8) ^ uVar33;
  *puVar4 = (CONCAT44(uVar10,uVar11) ^ 0x366e9bf4c84a5874) +
            (CONCAT44(uVar25,DAT_1826715a8) ^ 0x6200089431798519);
  *(ulonglong *)(lVar6 + -0xa88) = uVar33 << ((bVar38 ^ 0x26) & 0x3f) ^ uVar34;
  uVar31 = (ulonglong)DAT_182671674;
  uVar30 = CONCAT44(DAT_182671708,DAT_182671708);
  uVar42 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_18267159c ^ 0x4f75ca95)) =
       uVar33 >> (((byte)uVar10 ^ 8) & 0x3f) ^ uVar30;
  uVar33 = uVar30 ^ *(ulonglong *)(lVar6 + -0xa0) | uVar34 ^ *(ulonglong *)(lVar6 + -0xa88);
  uVar30 = uVar33 ^ uVar42;
  *(ulonglong *)(lVar6 + -0xbf0) = uVar30;
  *(ulonglong *)(lVar6 + -0x600) = uVar30 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x800);
  *puVar1 = uVar33 - (uVar39 ^ *(ulonglong *)(lVar6 + -0x748));
  uVar30 = CONCAT44(DAT_182671664,DAT_182671664);
  uVar43 = (*(ulonglong *)(DAT_182671560 - (uVar43 ^ 0x300a1722)) ^ uVar42) +
           (*(ulonglong *)(DAT_182671560 - (uVar43 ^ 0x300a1ba2)) ^ uVar41) ^ uVar30;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar43;
  *puVar2 = 0x926b051ff77372c - (CONCAT44(uVar8,uVar7) ^ 0xbb590497e5b6ab28);
  lVar5 = DAT_182671560;
  uVar41 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar33 = (*(ulonglong *)(DAT_182671560 - (uVar45 ^ 0xa302411)) ^ uVar42) <<
           (((byte)DAT_182671584 ^ 0xaa) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar33 ^ uVar41;
  uVar31 = *(ulonglong *)(lVar5 - (uVar37 ^ 0xdfee53fd)) >> 0x20 ^ uVar31;
  bVar23 = (byte)(uVar28 >> 0x18);
  *(ulonglong *)(lVar5 + -0x3b8) = uVar31 ^ uVar48;
  uVar11 = DAT_182671588;
  uVar42 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar5 + -0x670) = (uVar33 | uVar31) ^ uVar41;
  *(ulonglong *)(lVar5 + -0x1f0) =
       *(ulonglong *)(lVar5 - (uVar42 ^ 0x1f8416cc)) ^ uVar43 ^ uVar41 ^ uVar30 ^ uVar35;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar44 ^ 0x723f5d1f)) =
       CONCAT44(uVar26,uVar12) ^ 0xb2b5471a9747a942;
  uVar31 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar5 + -0x1d8) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x22110230)) ^ uVar32) +
       (uVar39 ^ *(ulonglong *)(lVar5 + -0x748)) ^ uVar31;
  lVar6 = DAT_182671560;
  *(ulonglong *)(lVar5 + -0x3f0) =
       (uVar39 ^ *(ulonglong *)(lVar5 + -0x748)) << ((bVar23 ^ 0xe) & 0x3f) ^ uVar40;
  uVar37 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671578 ^ 0xca354965)) =
       (uVar39 ^ *(ulonglong *)(lVar6 + -0x748)) >> ((bVar23 ^ 0xe) & 0x3f) ^ uVar37;
  uVar18 = DAT_1826717b0;
  uVar12 = DAT_182671584;
  uVar33 = CONCAT44(DAT_182671614,DAT_182671614);
  uVar37 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar44 ^ 0x723f5d87)) ^ uVar37 |
           *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671580 ^ 0xf5fefa0f)) ^ uVar40) ^ uVar33;
  *(ulonglong *)(lVar6 + -0x9f8) = uVar37;
  uVar27 = CONCAT44(uVar18,uVar18);
  uVar31 = *(ulonglong *)(lVar6 + -0x1d8) ^ uVar37 ^ uVar33 ^ uVar31;
  *(ulonglong *)(lVar6 + -0xa60) = uVar31 ^ uVar36;
  uVar18 = DAT_1826716b4;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0x1007010a)) =
       (CONCAT44(uVar7,uVar10) ^ 0x7f4765d9077a9cdd) + uVar31 ^ uVar27;
  uVar31 = (CONCAT44(uVar13,uVar11) ^ 0x6201c2e0a9025bbb) +
           (*(ulonglong *)(lVar6 + -0x318) ^ uVar30);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar31 ^ CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar37 = (uVar27 ^ *puVar4) << 0xe;
  *(ulonglong *)(lVar6 + -0xa88) = uVar31 + (uVar27 ^ *puVar4) ^ CONCAT44(uVar18,uVar18);
  uVar31 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar6 + -0xa0) =
       (CONCAT44(uVar17,uVar15) ^ 0xd7bf57ed37e1217e) << ((bVar24 ^ 0x94) & 0x3f);
  *(ulonglong *)(lVar6 + -0xbf0) = uVar37 ^ uVar31;
  uVar18 = DAT_182671748;
  uVar31 = *puVar4;
  *puVar1 = (*(ulonglong *)(lVar6 - (uVar42 ^ 0x1f841adc)) ^ uVar36) + 0x3009786d16c2c622;
  uVar31 = (uVar27 ^ uVar31) >> (((byte)uVar12 ^ 0xb8) & 0x3f);
  *puVar3 = uVar31 ^ CONCAT44(DAT_182671728,DAT_182671728);
  *puVar2 = (uVar31 | uVar37) ^ CONCAT44(uVar18,uVar18);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar22 * 4) = uVar21 ^ uVar44;
  return;
}



############ FUN_ 180e4e5d0 size=4672 ############

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

void FUN_180e4e5d0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  byte bVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  byte *pbVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  byte local_d8;
  
  uVar7 = DAT_18267168c;
  uVar12 = DAT_1826715c0;
  uVar8 = DAT_182671590;
  uVar6 = DAT_182671574;
  uVar5 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar24 = (ulonglong)DAT_182671590;
  uVar31 = (ulonglong)DAT_182671570;
  uVar27 = (ulonglong)DAT_182671574;
  uVar26 = DAT_182671570 ^ DAT_182671574;
  uVar25 = (DAT_182671590 << 0x10 | DAT_182671590 & 0xff00) << 8 | DAT_182671590 >> 8 & 0xff00 |
           DAT_182671590 >> 0x18;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671a90);
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_182671a90) ^ DAT_182671570;
  uVar33 = (ulonglong)DAT_182671590;
  uVar32 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar21 = (ulonglong)uVar25;
  uVar18 = (ulonglong)DAT_18267168c;
  uVar34 = CONCAT44(DAT_18267168c,DAT_18267168c);
  DAT_18267156c = uVar25;
  DAT_18267158c = uVar26;
  *(ulonglong *)(DAT_182671560 + -0x128) =
       *(longlong *)(DAT_182671560 - (uVar27 ^ 0xeeef776e)) +
       ((CONCAT44(uVar25,uVar26) ^ 0xf211f301016d80f5) +
       (CONCAT44(DAT_182671590,uVar25) ^ 0x1f311f2f211f301) * 0xc) * 8 ^ uVar32;
  uVar35 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x898) =
       *(ulonglong *)(CONCAT44(DAT_182671730,DAT_182671730) ^ *(ulonglong *)(lVar2 + -0x690)) ^
       uVar35;
  uVar12 = DAT_182671788;
  uVar32 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar33 ^ 0x1f310da)) ^ uVar32) ^ uVar34 ^ uVar35;
  *(ulonglong *)(lVar2 + -0xa88) = uVar32;
  *(ulonglong *)(lVar2 + -0xbf0) = (uVar32 >> 0x20 ^ uVar18) >> 0x18 ^ CONCAT44(uVar12,uVar12);
  lVar2 = DAT_182671560;
  uVar18 = CONCAT44(uVar6,uVar5);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0xef82ff1a)) =
       (uVar18 ^ 0xb3960a45f6b414c6) - (CONCAT44(uVar6,uVar6) ^ 0x4dec8ef82b410ad2);
  pbVar22 = (byte *)((CONCAT44(uVar5,uVar8) ^ 0xef82fc0201f311fd) + *(longlong *)(lVar2 + -3000));
  bVar29 = *(byte *)(DAT_182671560 - (uVar21 ^ 0xf211f8f1)) ^ (byte)uVar12 ^ (byte)DAT_1826718d4;
  bVar16 = (byte)DAT_1826717c0 ^ (byte)DAT_1826718d4;
  *(ulonglong *)(lVar2 + -0x8e8) = (ulonglong)pbVar22 ^ (ulonglong)DAT_1826717cc;
  *(byte *)(lVar2 + -0x119) = bVar29;
  uVar36 = CONCAT44(uVar26,uVar8);
  *pbVar22 = bVar16 ^ bVar29;
  uVar12 = DAT_18267181c;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar6,uVar26) ^ 0xeeef7cf6016d80f6) + (uVar36 ^ 0x16d80f401f311f2) * 0xc) * 8
            );
  *(ulonglong *)(lVar2 + -0xd60) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671854,DAT_182671854);
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x628) = *puVar23 ^ uVar33 ^ uVar35;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x670) =
       ((ulonglong)(DAT_182671660 >> 0x11) | (ulonglong)DAT_182671660 << 0xf) ^
       *(ulonglong *)(lVar2 + -0x110) >> 0x11;
  lVar2 = DAT_182671560;
  local_d8 = (byte)(uVar8 >> 0x18);
  uVar32 = (ulonglong)DAT_182671794;
  bVar16 = (byte)DAT_182671628 ^ (byte)DAT_1826716f0;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x628)) >> ((local_d8 ^ 1) & 0x3f) ^
       CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x1f31a02)) = (ulonglong)uVar6 << 0x37 ^ 0x5f80000000000000;
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 - (uVar21 ^ 0xf211f030)) = bVar16 ^ *(byte *)(DAT_182671560 + -0x898);
  pbVar22 = (byte *)((CONCAT44(uVar5,uVar26) ^ 0xef82fc02016d80e4) + *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0xd30) = (ulonglong)pbVar22 ^ uVar32;
  bVar16 = *(byte *)(lVar2 + -0x331) ^ (byte)DAT_1826716f0 ^ (byte)DAT_1826717c0;
  *(undefined1 *)(lVar2 + -0x5a2) = **(undefined1 **)(lVar2 + -0xa70);
  *pbVar22 = bVar16;
  uVar12 = DAT_18267189c;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((uVar36 ^ 0x16d80f401f311f0) + (CONCAT44(uVar6,uVar25) ^ 0xeeef7cf6f211f301) * 0xc) * 8
            );
  *(ulonglong *)(lVar2 + -0x690) = (ulonglong)puVar23 ^ CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x110) = *puVar23 ^ uVar37 ^ uVar35;
  bVar16 = (byte)DAT_182671600;
  uVar4 = DAT_182671568;
  lVar3 = DAT_182671560;
  bVar29 = (byte)DAT_1826718c0;
  uVar32 = (*(ulonglong *)(lVar2 - (uVar24 ^ 0x1f310e2)) ^ uVar37) >> (((byte)uVar5 ^ 10) & 0x3f) ^
           CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar2 + -0x670) = uVar32;
  uVar9 = DAT_1826715a0;
  bVar29 = bVar29 ^ (byte)uVar32 ^ bVar16;
  bVar16 = bVar16 ^ (byte)DAT_1826717c0;
  uVar33 = CONCAT44(uVar8,DAT_1826715a0);
  *(uint *)(lVar3 + -0x374) = (uVar6 ^ 0xe9e6ab18) >> ((local_d8 ^ 0x1c) & 0x1f);
  uVar13 = DAT_1826716b8;
  pbVar22 = (byte *)((uVar18 ^ 0xeeef7cf6ef82fc13) + *(longlong *)(lVar3 + -3000));
  *(byte *)(lVar2 + -0x5a2) = bVar29;
  uVar11 = DAT_182671774;
  uVar12 = DAT_1826715ec;
  *(ulonglong *)(lVar3 + -0xa70) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671774;
  *pbVar22 = bVar16 ^ bVar29;
  puVar23 = (ulonglong *)(*(longlong *)(lVar3 + -0xb98) + (uVar33 ^ 0x1f311f2b2a8b88e) * 8);
  *(ulonglong *)(lVar3 + -0x128) = (ulonglong)puVar23 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671840;
  *(uint *)(lVar3 + -0x910) = (uVar26 ^ 0x922dc8f6) + (uVar4 ^ 0xee0fff21);
  uVar28 = CONCAT44(uVar13,uVar13);
  uVar32 = *puVar23 ^ uVar28 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x628) = uVar32;
  bVar16 = (byte)DAT_1826718c8;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (uVar28 ^ uVar32) >> (((byte)uVar6 ^ 0xe6) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  lVar3 = DAT_182671560;
  puVar39 = (ulonglong *)(lVar2 - (uVar21 ^ 0xf211fb99));
  *puVar39 = (CONCAT44(uVar8,uVar26) ^ 0xf14fc071d4b8225b) >>
             (((byte)uVar7 ^ *(byte *)(lVar2 + -0xa88)) & 0x3f);
  bVar29 = (byte)uVar12 ^ *(byte *)(lVar3 + -0xbf0) ^ bVar16;
  bVar16 = bVar16 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar3 + -0x9f9) = bVar29;
  *(ulonglong *)(lVar3 + -0x670) =
       (uVar33 ^ 0xbe23696eaabaa283) - (uVar34 ^ *(ulonglong *)(lVar3 + -0xa88));
  pbVar22 = (byte *)((CONCAT44(uVar25,uVar5) ^ 0xf211f301ef82fc10) + *(longlong *)(lVar3 + -3000));
  *(ulonglong *)(lVar3 + -0x118) = (ulonglong)pbVar22 ^ (ulonglong)DAT_18267171c;
  *pbVar22 = bVar16 ^ bVar29;
  *(uint *)(lVar3 + -0x3d4) = *(uint *)(lVar3 + -0x8c) >> ((local_d8 ^ 0xf) & 0x1f);
  uVar32 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xeeef7196)) = *(longlong *)(lVar3 + -0xb98) + 0x10U ^ uVar32;
  *(ulonglong *)(lVar3 + -0x898) = *(ulonglong *)(lVar3 + -0x318) ^ 0x633b93f8896142c7;
  uVar33 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(lVar3 + -0xa88) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0xf211fe61)) ^ uVar32) ^ uVar33 ^ uVar35;
  uVar13 = DAT_1826717bc;
  uVar10 = DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0x670) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xef82fa2a)) ^ uVar28 |
       CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0xbf0);
  bVar16 = (byte)DAT_1826716fc;
  uVar7 = DAT_182671584;
  lVar2 = DAT_182671560;
  uVar38 = (ulonglong)DAT_182671584;
  puVar19 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar26 ^ 0x16d83ec));
  bVar17 = (byte)DAT_182671584;
  *puVar19 = (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xf211f989)) ^ uVar33) >>
             ((bVar17 ^ 0x98) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  uVar32 = (ulonglong)DAT_182671804;
  bVar29 = *(byte *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x9aa19198)) ^ (byte)uVar13 ^ bVar16;
  bVar16 = bVar16 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar2 + -0xd71) = bVar29;
  uVar12 = DAT_182671674;
  pbVar22 = (byte *)(*(longlong *)(lVar2 - (uVar31 ^ 0xef82f7ba)) +
                    (CONCAT44(uVar6,uVar26) ^ 0xeeef7cf6016d80e7));
  *(ulonglong *)(lVar2 + -0x1a8) = (ulonglong)pbVar22 ^ uVar32;
  uVar31 = CONCAT44(uVar12,uVar12);
  uVar32 = CONCAT44(uVar25,DAT_1826715a0);
  *pbVar22 = bVar16 ^ bVar29;
  uVar12 = DAT_182671834;
  *(ulonglong *)(lVar2 + -0x690) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar7,uVar4) ^ 0x9aa19280e7f8d9f6) + (uVar32 ^ 0xf211f301b2a8b88c) * 0xc) * 8 ^
       uVar31;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x1f3196a)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe7f8df64)) ^ uVar31) ^ uVar33 ^
       uVar35;
  uVar12 = DAT_1826717c8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe7f8d204)) =
       CONCAT44(uVar10,uVar4) ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x628) ^ 0x363949e8a4248999;
  uVar32 = (ulonglong)DAT_18267178c;
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x898)) >> (((byte)uVar4 ^ 0xd4) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  *(byte *)(lVar2 + -0xcc9) =
       *(byte *)(lVar2 - ((ulonglong)uVar7 ^ 0x9aa194f0)) ^ (byte)uVar12 ^ (byte)DAT_182671878;
  pbVar22 = (byte *)((CONCAT44(uVar25,uVar8) ^ 0xf211f30101f311e6) + *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0x1b0) = (ulonglong)pbVar22 ^ uVar32;
  *pbVar22 = *(byte *)(lVar2 - (uVar27 ^ 0xeeef703f)) ^ (byte)DAT_182671878 ^ (byte)DAT_1826717c0;
  uVar14 = DAT_182671774;
  uVar13 = DAT_182671738;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) + 0x10 +
            (CONCAT44(uVar10,uVar8) ^ 0xb2a8b88c01f311f2) * 0x60);
  uVar32 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar2 + -0x128) = (ulonglong)puVar23 ^ uVar34;
  bVar16 = (byte)uVar14;
  *(ulonglong *)(lVar2 + -0xa88) = *puVar23 ^ uVar32 ^ uVar35;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x318) = -0x18ab160aa3644deb - (uVar36 ^ 0x5d741a8159f9909);
  bVar30 = (byte)DAT_18267168c;
  uVar31 = (uVar32 ^ *(ulonglong *)(lVar2 + -0xa88)) >> (((byte)uVar9 ^ 0xa4) & 0x3f) ^
           CONCAT44(uVar11,uVar11);
  uVar32 = (ulonglong)_DAT_182671610;
  pbVar22 = (byte *)(*(longlong *)(lVar2 + -3000) + 0x15);
  *(ulonglong *)(lVar2 + -0x628) = uVar31;
  *(ulonglong *)(lVar2 + -0xd80) = (ulonglong)pbVar22 ^ uVar32;
  bVar29 = bVar16 ^ bVar30 ^ (byte)uVar31;
  *(byte *)(lVar2 + -0xce3) = bVar29;
  uVar15 = DAT_18267185c;
  *pbVar22 = bVar30 ^ bVar29 ^ (byte)DAT_1826717c0;
  uVar12 = DAT_182671650;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar5,uVar4) ^ 0xef82fc02e7f8d9f6) +
            (CONCAT44(uVar4,uVar26) ^ 0xe7f8d9f4016d80f4) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xd60) = (ulonglong)puVar23 ^ CONCAT44(uVar15,uVar15);
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x898) = *puVar23 ^ uVar28 ^ uVar35;
  bVar29 = (byte)DAT_1826717c0;
  uVar11 = DAT_1826715b4;
  lVar2 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671608;
  uVar32 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0x16d8684)) =
       (uVar28 ^ *puVar39) >> ((local_d8 ^ 0x31) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  uVar9 = DAT_1826715a4;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x118e1117)) =
       *(ulonglong *)(lVar2 + -0xbf0) ^ uVar37 ^ *(ulonglong *)(lVar2 + -0x110);
  uVar33 = (ulonglong)DAT_182671578;
  *(uint *)(lVar2 + -0x678) = (uVar9 ^ 0xa8116803) << ((bVar17 ^ 0x88) & 0x1f);
  *(byte *)(lVar2 + -0xc53) = (byte)uVar13 ^ bVar16 ^ *(byte *)(lVar2 + -0x670);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xacee769e)) =
       *(longlong *)(lVar2 - (uVar33 ^ 0xfc02e43a)) + (CONCAT44(uVar26,uVar5) ^ 0x16d80f4ef82fc14) ^
       uVar31;
  *(byte *)(*(ulonglong *)(lVar2 + -0xae8) ^ uVar31) = bVar16 ^ *(byte *)(lVar2 + -0xc53) ^ bVar29;
  uVar9 = DAT_18267184c;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar38 ^ 0x9aa19918)) +
            (CONCAT44(uVar4,uVar25) ^ 0xe7f8d9f4f211f303) * 8);
  uVar32 = (ulonglong)DAT_18267184c;
  *(ulonglong *)(lVar2 + -0x690) = (ulonglong)puVar23 ^ uVar28;
  uVar34 = CONCAT44(uVar9,uVar9) ^ *puVar23 ^ uVar35;
  *(ulonglong *)(lVar2 + -0xa88) = uVar34;
  uVar12 = DAT_1826716d0;
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(DAT_182671750,DAT_182671750);
  bVar17 = (byte)DAT_182671750;
  uVar31 = (ulonglong)DAT_182671828;
  pbVar22 = (byte *)(DAT_182671560 - (uVar24 ^ 0x1f317da));
  *(ulonglong *)(DAT_182671560 + -0x628) = (uVar34 >> 0x20 ^ uVar32) >> 0x18 ^ uVar28;
  bVar16 = (byte)DAT_182671708;
  *(byte *)(lVar2 + -0x571) = *pbVar22 ^ bVar17 ^ (byte)DAT_182671708;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xeeef77c6)) =
       (CONCAT44(uVar5,uVar26) ^ 0xef82fc02016d80e3) + *(longlong *)(lVar2 + -3000) ^ uVar31;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb30) ^ uVar31) = bVar16 ^ bVar29 ^ *(byte *)(lVar2 + -0x571);
  uVar9 = DAT_182671660;
  uVar32 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(lVar2 + -0x128) =
       (uVar18 ^ 0xeeef7cf6ef82fc02) * 0x60 + *(longlong *)(lVar2 + -0xb98) + 0x18 ^ uVar32;
  uVar32 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar21 ^ 0xf211f229)) ^ uVar32) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x898) = uVar32 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar32 >> (((byte)uVar6 ^ 0xf6) & 0x3f) ^ CONCAT44(uVar12,uVar12)
  ;
  uVar13 = DAT_1826716e8;
  uVar32 = (ulonglong)DAT_182671720;
  *(ulonglong *)(lVar2 + -0x110) =
       (CONCAT44(uVar7,uVar7) ^ 0x6e722d253edee71c) >>
       ((byte)*(undefined8 *)(lVar2 + -0x318) & 0x3f);
  *(byte *)(lVar2 + -0x2a1) =
       *(byte *)(lVar2 - (uVar27 ^ 0xeeef7706)) ^ (byte)uVar12 ^ (byte)DAT_18267169c;
  uVar7 = DAT_182671594;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0xee71e520)) =
       (CONCAT44(uVar8,uVar8) ^ 0x1f311f201f311ea) + *(longlong *)(lVar2 + -3000) ^ uVar32;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8d0) ^ uVar32) =
       *(byte *)(lVar2 + -0x2a1) ^ bVar29 ^ (byte)DAT_18267169c;
  puVar23 = (ulonglong *)(*(longlong *)(lVar2 - ((ulonglong)DAT_182671580 ^ 0x2800ed98)) + 0x18);
  *(ulonglong *)(lVar2 + -0xd60) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671764,DAT_182671764);
  uVar12 = DAT_182671620;
  *(undefined1 *)(lVar2 + -0x9a1) = **(undefined1 **)(lVar2 - (uVar33 ^ 0xfc02e682));
  uVar32 = CONCAT44(DAT_182671588,uVar11);
  uVar18 = CONCAT44(uVar12,uVar12);
  uVar24 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x670) = *puVar23 ^ uVar35 ^ uVar18;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xb2a8b204)) =
       uVar32 ^ 0xae89d7739d2c9c6d | uVar28 ^ *(ulonglong *)(lVar2 + -0x628);
  uVar18 = *(ulonglong *)(lVar2 + -0x670) ^ uVar18;
  uVar24 = (ulonglong)DAT_1826716b0;
  uVar32 = uVar18 >> (((byte)uVar7 ^ 0xf8) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x898) = uVar32;
  *(byte *)(lVar2 + -0x9a1) = (byte)uVar13 ^ (byte)uVar32 ^ (byte)DAT_1826717ac;
  uVar12 = DAT_1826716f4;
  *puVar19 = (CONCAT44(uVar5,uVar25) ^ 0xbb1d9f75d07a0a36) >> ((byte)uVar18 & 0x3f);
  *(ulonglong *)(lVar2 + -0xaa0) =
       (CONCAT44(uVar25,uVar25) ^ 0xf211f301f211f318) + *(longlong *)(lVar2 + -3000) ^ uVar24;
  uVar32 = CONCAT44(uVar10,DAT_18267157c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x118e131f)) =
       CONCAT44(uVar4,uVar11) ^ *(ulonglong *)(lVar2 + -0x318) ^ 0x30d8fa10ed43d8bd;
  *(byte *)(uVar24 ^ *(ulonglong *)(lVar2 + -0xaa0)) =
       *(byte *)(lVar2 + -0x9a1) ^ bVar29 ^ (byte)DAT_1826717ac;
  uVar13 = DAT_182671798;
  puVar23 = (ulonglong *)(*(longlong *)(lVar2 + -0xb98) + (uVar32 ^ 0xb2a8b88ce3d293db) * 8);
  *(ulonglong *)(lVar2 + -0x690) = (ulonglong)puVar23 ^ CONCAT44(DAT_1826717d0,DAT_1826717d0);
  *(ulonglong *)(lVar2 + -0xbf0) = *puVar23 ^ uVar35 ^ CONCAT44(uVar13,uVar13);
  uVar24 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x118e19ff)) ^ CONCAT44(uVar13,uVar13)) >>
           (((byte)uVar11 ^ 0x1f) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  bVar16 = (byte)uVar12 ^ (byte)DAT_1826715f4;
  *(ulonglong *)(lVar2 + -0xa88) = uVar24;
  uVar18 = CONCAT44(DAT_1826715b0,uVar11);
  uVar32 = (ulonglong)DAT_1826717d4;
  *(byte *)(lVar2 + -0x519) = bVar16 ^ (byte)uVar24;
  *(ulonglong *)(lVar2 + -0x5e8) =
       (uVar18 ^ 0x2b4ce65c118e1215) + *(longlong *)(lVar2 + -3000) ^ uVar32;
  *(ulonglong *)(lVar2 + -0x670) =
       (CONCAT44(uVar4,uVar6) ^ 0x75195ae6760df632) >>
       ((*(byte *)(lVar2 + -0xbf0) ^ (byte)uVar13) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar26) * 4) = uVar20;
  return;
}



############ FUN_ 180eae1c0 size=5599 ############

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

void FUN_180eae1c0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte *pbVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  longlong *plVar35;
  ulonglong uVar36;
  byte bVar37;
  byte bVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  uint uVar42;
  longlong lVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar43;
  
  uVar17 = DAT_1826715ac;
  uVar12 = DAT_182671594;
  uVar11 = DAT_182671590;
  uVar10 = DAT_182671584;
  uVar7 = DAT_182671568;
  uVar30 = (ulonglong)DAT_1826715ac;
  uVar27 = (ulonglong)DAT_182671584;
  uVar46 = (ulonglong)DAT_182671590;
  uVar26 = DAT_182671584 - DAT_182671590;
  uVar33 = (ulonglong)DAT_182671594;
  uVar23 = *(uint *)(&DAT_182611e78 + DAT_182671928) ^ DAT_1826715ac;
  uVar3 = *(uint *)(&DAT_182611e80 + DAT_182671928);
  uVar45 = DAT_1826715ac | DAT_182671594;
  uVar42 = DAT_18267159c * DAT_182671568;
  uVar43 = (ulonglong)uVar42;
  uVar39 = (ulonglong)_DAT_182671618;
  uVar34 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar4 = _DAT_182671618 >> 0x18;
  uVar31 = *(ulonglong *)
            (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0xfffffa8f)) ^
            CONCAT44(DAT_182671644,DAT_182671644)) ^ CONCAT44(_DAT_182671618,_DAT_182671618) ^
           uVar34;
  DAT_18267156c = uVar42;
  DAT_182671578 = uVar26;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar31;
  lVar5 = DAT_182671560;
  bVar37 = (byte)_DAT_1826715f0 ^ (byte)DAT_1826717cc;
  uVar22 = (ulonglong)uVar7;
  *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x635d7fb5)) =
       ((ulonglong)uVar4 | uVar39 << 8) ^ uVar31 >> 0x18 ^ CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  puVar1 = (ulonglong *)(lVar5 + -0x898);
  *(byte *)(lVar5 + -0x2b9) = bVar37 ^ *(byte *)puVar1;
  uVar13 = DAT_18267159c;
  puVar2 = (ulonglong *)(lVar5 + -0x3b8);
  uVar28 = (ulonglong)uVar26;
  *puVar2 = CONCAT44(uVar17,uVar7) ^ 0x3120a3262b71490b |
            CONCAT44(uVar10,uVar26) ^ 0x7e6dba3ea97bc327;
  uVar20 = DAT_182671814;
  uVar29 = (ulonglong)uVar45;
  pbVar32 = (byte *)((CONCAT44(uVar13,uVar11) ^ 0x4f75ca35635d7726) + *(longlong *)(lVar5 + -0x8c8))
  ;
  *(ulonglong *)(lVar5 + -0x2d0) = (ulonglong)pbVar32 ^ (ulonglong)_DAT_1826715dc;
  uVar15 = DAT_1826718d0;
  *pbVar32 = *(byte *)(lVar5 - ((ulonglong)uVar42 ^ 0x5780f949)) ^ (byte)DAT_182671718 ^
             (byte)DAT_1826717cc;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x70) =
       *(longlong *)(lVar5 - ((ulonglong)uVar10 ^ 0xbdcabe12)) +
       ((CONCAT44(uVar12,uVar26) ^ 0xffffffff5a6d3e5c) +
       (CONCAT44(uVar45,uVar42) ^ 0xffffffff5780fbf0) * 0xc) * 8 ^ uVar31;
  *(undefined8 *)(lVar5 - (uVar29 ^ 0xfffff607)) = 0xac42ba3c3df3aa7e;
  uVar19 = DAT_1826716b4;
  uVar39 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar45 ^ 0xfffffc0f)) =
       *(ulonglong *)(uVar31 ^ *(ulonglong *)(lVar5 + -0x70)) ^ uVar39 ^ uVar34;
  uVar15 = DAT_1826717bc;
  lVar5 = DAT_182671560;
  bVar40 = (byte)uVar20;
  bVar37 = bVar40 ^ (byte)DAT_1826717b4;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x3f0)) >> (((byte)uVar42 ^ 0xd0) & 0x3f) ^
       CONCAT44(uVar20,uVar20);
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xc283ecb5)) =
       (CONCAT44(DAT_18267189c,DAT_18267189c) ^ *(ulonglong *)(DAT_182671560 + -0x600)) <<
       (((byte)uVar15 ^ *(byte *)(lVar5 + -0x638)) & 0x3f);
  uVar31 = (ulonglong)_DAT_1826715d8;
  *(byte *)(lVar6 - ((ulonglong)uVar10 ^ 0xbdcab0c3)) = bVar37 ^ *(byte *)(lVar6 + -0xbf0);
  lVar5 = DAT_182671560;
  plVar35 = (longlong *)(lVar6 - (uVar43 ^ 0x5780f338));
  pbVar32 = (byte *)((CONCAT44(uVar13,uVar26) ^ 0x4f75ca355a6d3e51) + *plVar35);
  bVar37 = *(byte *)(DAT_182671560 + -0x549) ^ (byte)DAT_182671718 ^ (byte)DAT_1826717b4;
  *(ulonglong *)(DAT_182671560 + -0x458) = (ulonglong)pbVar32 ^ uVar31;
  *pbVar32 = bVar37;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar5 + -0xb98) +
            ((CONCAT44(uVar13,uVar12) ^ 0x4f75ca35fffffffe) +
            (CONCAT44(uVar7,uVar11) ^ 0x2110a30635d772d) * 0xc) * 8);
  *(ulonglong *)(lVar5 + -0x68) = (ulonglong)puVar24 ^ CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar5 + -0x1d8) =
       (CONCAT44(uVar17,uVar11) ^ 0x50e974a747053d8d) <<
       ((byte)*(undefined8 *)(lVar5 + -0x9f8) & 0x3f);
  uVar39 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xffffff7f)) = *puVar24 ^ uVar34 ^ uVar39;
  uVar15 = DAT_1826715c8;
  lVar5 = DAT_182671560;
  uVar31 = (ulonglong)DAT_18267169c;
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       (CONCAT44(uVar42,uVar7) ^ 0xb672f804ba4b0875) >>
       ((*(byte *)(DAT_182671560 - (uVar33 ^ 0xfffffc0f)) ^ (byte)uVar19) & 0x3f);
  uVar4 = DAT_18267159c;
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0xbdcab50a)) ^ uVar39) >> (((byte)uVar26 ^ 0x75) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xfffff92f)) =
       (CONCAT44(uVar45,uVar17) ^ 0x71e00446c21ce9a3) - *(longlong *)(lVar6 + -0x1f0);
  bVar37 = (byte)DAT_182671718;
  *(byte *)(lVar6 + -0x9cc) = (byte)uVar15 ^ *(byte *)(lVar6 + -0x2a0) ^ (byte)DAT_18267167c;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar4 ^ 0x4f75c9ad)) =
       *(longlong *)(lVar6 + -0x8c8) + 0xdU ^ uVar31;
  *(byte *)(*(ulonglong *)(lVar6 + -0x398) ^ uVar31) =
       bVar37 ^ *(byte *)(lVar6 + -0x9cc) ^ (byte)DAT_18267167c;
  uVar15 = DAT_1826715e8;
  lVar44 = (CONCAT44(uVar11,uVar26) ^ 0x635d772d5a6d3e5d) * 0xc;
  uVar31 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0x2110c90)) =
       *(longlong *)(lVar6 + -0xb98) + ((CONCAT44(uVar12,uVar10) ^ 0xffffffffbdcab58b) + lVar44) * 8
       ^ uVar31;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar45 ^ 0xfffffdbf)) =
       (CONCAT44(uVar42,uVar45) ^ 0x77ea9f6acbe0a1ce) << (((byte)uVar4 ^ 0x27) & 0x3f);
  uVar39 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar25 = (ulonglong)DAT_182671758;
  *(ulonglong *)(lVar5 + -0x610) =
       *(ulonglong *)(*(ulonglong *)(lVar5 + -0x6a0) ^ uVar31) ^ uVar34 ^ uVar39;
  bVar37 = (byte)uVar15 ^ (byte)DAT_1826716b8;
  uVar31 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0x5a6d384d)) ^ uVar39) >> ((byte)uVar42 & 0x3f) ^
           CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x670) = uVar31;
  *(longlong *)(lVar5 + -0xa0) = -0x394ad391f7c58bfe - *(longlong *)(lVar5 + -0x8a8);
  uVar8 = DAT_18267159c;
  uVar36 = CONCAT44(uVar45,DAT_18267159c);
  *(byte *)(lVar5 + -0xe2) = bVar37 ^ (byte)uVar31;
  bVar37 = (byte)DAT_182671718;
  uVar15 = DAT_1826715a4;
  lVar6 = DAT_182671560;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x4f75c9dd)) =
       (uVar36 ^ 0xffffffff4f75ca3b) + *(longlong *)(lVar5 + -0x8c8) ^ uVar25;
  *(byte *)(*(ulonglong *)(lVar5 + -1000) ^ uVar25) =
       bVar37 ^ *(byte *)(lVar5 + -0xe2) ^ (byte)DAT_1826716b8;
  uVar31 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0xbdcabfb2)) =
       *(longlong *)(lVar6 + -0xb98) +
       ((CONCAT44(uVar26,uVar12) ^ 0x5a6d3e5dfffffffe) +
       (CONCAT44(uVar17,uVar4) ^ 0xc283efad4f75ca35) * 0xc) * 8 ^ uVar31;
  uVar20 = DAT_18267176c;
  uVar19 = DAT_1826716f4;
  uVar25 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x5780f178)) =
       *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar22 ^ 0x2110008)) ^ uVar31) ^ uVar34 ^ uVar25;
  uVar21 = DAT_182671884;
  *(ulonglong *)(CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar6 + -0x450)) =
       CONCAT44(uVar10,uVar11) ^ 0x577f5f1f24b58a73;
  uVar31 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar6 + -0xa80) =
       (CONCAT44(uVar17,uVar11) ^ 0x7d840e1e0b9d42f9) >> (((byte)uVar8 ^ 0x35) & 0x3f);
  uVar14 = DAT_1826715a0;
  lVar5 = DAT_182671560;
  uVar36 = (ulonglong)DAT_182671644;
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0xfffff59f)) =
       (*(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xfffff576)) ^ uVar25) >>
       (((byte)uVar15 ^ 8) & 0x3f) ^ CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar5 - (uVar46 ^ 0x635d7195)) =
       CONCAT44(uVar26,uVar11) ^ *(ulonglong *)(lVar5 + -0x610) ^ uVar39 ^ 0xc0ec57de5d3f43d2;
  *(byte *)(lVar5 + -0x701) = (byte)uVar21 ^ *(byte *)(lVar5 + -0xa60) ^ (byte)DAT_1826716f0;
  bVar37 = (byte)DAT_182671718 ^ (byte)DAT_1826716f0;
  *(ulonglong *)(lVar5 - (uVar46 ^ 0x635d7d85)) =
       *(longlong *)(lVar5 - (uVar29 ^ 0xfffff737)) + 0xfU ^ uVar36;
  uVar4 = DAT_18267157c;
  *(byte *)(*(ulonglong *)(lVar5 + -0xaa8) ^ uVar36) = bVar37 ^ *(byte *)(lVar5 + -0x701);
  uVar31 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  uVar41 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar5 + -0x78) =
       *(longlong *)(lVar5 + -0xb98) +
       ((CONCAT44(uVar14,uVar10) ^ 0x7a36611fbdcab588) +
       (CONCAT44(uVar12,uVar7) ^ 0xffffffff02110a30) * 0xc) * 8 ^ uVar31;
  uVar15 = DAT_1826716e8;
  uVar36 = (ulonglong)DAT_182671824;
  bVar38 = (byte)DAT_1826715b4;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0x300a19ba)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar43 ^ 0x5780fb88)) ^ uVar31) ^ uVar34 ^ uVar41;
  uVar41 = uVar41 ^ *puVar1;
  bVar37 = *(byte *)(lVar5 + -0xa88);
  uVar39 = uVar41 >> ((bVar38 ^ 0x8a) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  uVar31 = (ulonglong)DAT_18267159c;
  *(byte *)(lVar5 + -0x7d1) = (byte)uVar15 ^ (byte)uVar39 ^ bVar40;
  *puVar2 = uVar39;
  *(ulonglong *)(lVar5 + -0x600) = uVar41 >> ((bVar37 ^ (byte)uVar20) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x4f75c9b5)) = *(longlong *)(lVar5 + -0x8c8) + 0x10U ^ uVar36;
  *(uint *)(lVar5 + -0x754) = *(uint *)(lVar5 + -0x3c8) ^ 0xbe42a2a7;
  uVar8 = DAT_182671598;
  *(byte *)(*(ulonglong *)(lVar5 + -0x380) ^ uVar36) =
       *(byte *)(lVar5 - ((ulonglong)uVar14 ^ 0x7a3666ce)) ^ (byte)DAT_182671718 ^ bVar40;
  uVar19 = DAT_1826716c8;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar5 - (uVar43 ^ 0x5780f068)) +
            ((CONCAT44(uVar8,uVar17) ^ 0x6d862175c283efaf) + lVar44) * 8);
  *(ulonglong *)(lVar5 + -0xcc8) = (ulonglong)puVar24 ^ CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar20 = DAT_182671724;
  uVar18 = DAT_1826715b0;
  uVar16 = DAT_1826715a8;
  uVar15 = DAT_1826715a4;
  lVar5 = DAT_182671560;
  uVar39 = (ulonglong)DAT_1826717fc;
  bVar38 = (byte)DAT_1826715a4;
  uVar36 = (ulonglong)DAT_1826715b0;
  uVar31 = *puVar24 ^ uVar34;
  uVar41 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar31 ^ CONCAT44(uVar19,uVar19);
  bVar37 = (byte)uVar20 ^ (byte)DAT_182671604;
  uVar31 = uVar31 >> ((bVar38 ^ 0x38) & 0x3f) ^ CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 + -0x318) = uVar31;
  uVar4 = DAT_18267158c;
  *(byte *)(lVar5 - (uVar33 ^ 0xfffffc28)) = bVar37 ^ (byte)uVar31;
  *(uint *)(lVar5 + -0x774) = (DAT_182671568 ^ 0xbe62ce5) + *(int *)(lVar5 + -0x328);
  *(ulonglong *)(lVar5 + -0xc50) =
       (CONCAT44(uVar7,uVar4) ^ 0x2110a301f61366b) + *(longlong *)(lVar5 + -0x8c8) ^ uVar39;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0xc283e45d)) =
       (CONCAT44(uVar45,uVar4) ^ 0x7412a532578d9cd5) <<
       (((byte)uVar19 ^ *(byte *)(lVar5 + -0x638)) & 0x3f);
  uVar31 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(byte *)(*(ulonglong *)(lVar5 - (uVar27 ^ 0xbdcab9da)) ^ uVar39) =
       *(byte *)(lVar5 + -0x3d7) ^ (byte)DAT_182671718 ^ (byte)DAT_182671604;
  uVar20 = DAT_182671650;
  uVar9 = DAT_182671580;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar5 + -0xb98) +
            ((CONCAT44(uVar18,uVar16) ^ 0xd094d8a7ef6bb77c) +
            (CONCAT44(uVar10,uVar7) ^ 0xbdcab58a02110a30) * 0xc) * 8);
  *(ulonglong *)(lVar5 + -0xab8) = (ulonglong)puVar24 ^ uVar31;
  uVar21 = DAT_182671708;
  uVar19 = DAT_1826715d0;
  *(ulonglong *)(lVar5 + -0x1d8) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0x2110230)) ^ CONCAT44(uVar20,uVar20)) -
       (CONCAT44(uVar7,uVar11) ^ 0xdae3924cd0fa03f);
  uVar31 = CONCAT44(uVar21,uVar21);
  bVar37 = (byte)DAT_18267159c;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_18267159c ^ 0x4f75c3cd)) = *puVar24 ^ uVar34 ^ uVar31;
  *(ulonglong *)(lVar5 + -0x3f0) =
       (CONCAT44(uVar12,uVar26) ^ 0xea7c68a99ee02dd3) >> ((bVar37 ^ 0x1f) & 0x3f);
  bVar37 = (byte)uVar19 ^ (byte)DAT_18267166c;
  uVar31 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0xd094d15f)) ^ uVar31) >>
           (((byte)uVar10 ^ 0x9a) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar5 + -0x80) = uVar31;
  uVar4 = DAT_182671570;
  *(byte *)(lVar5 - (uVar41 ^ 0xef6bba4f)) = bVar37 ^ (byte)uVar31;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0xfffffe0f)) =
       CONCAT44(uVar4,uVar45) ^ 0xeeeb90ce51ee75ea | CONCAT44(uVar8,uVar12) ^ 0x1f9056010503c954;
  pbVar32 = (byte *)((CONCAT44(uVar15,uVar7) ^ 0x22110a3002110a22) + *plVar35);
  *(ulonglong *)(lVar5 + -0x828) = (ulonglong)pbVar32 ^ (ulonglong)DAT_182671798;
  uVar8 = DAT_182671574;
  *pbVar32 = *(byte *)(lVar5 - (uVar29 ^ 0xfffff2ce)) ^ (byte)DAT_182671718 ^ (byte)DAT_18267166c;
  uVar19 = DAT_1826716a8;
  uVar15 = DAT_1826715b4;
  *(ulonglong *)(lVar5 + -0x6d0) =
       CONCAT44(uVar17,uVar10) ^ CONCAT44(DAT_1826715b4,uVar8) ^ 0x715fc17cb870050e;
  uVar20 = DAT_1826717ec;
  uVar31 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar5 + -0xb78) =
       *(longlong *)(lVar5 + -0xb98) +
       ((CONCAT44(uVar4,uVar11) ^ 0xffffffff635d772f) +
       (CONCAT44(uVar42,uVar14) ^ 0x5780fbf07a36611f) * 0xc) * 8 ^ uVar31;
  uVar39 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x5a6d3cfd)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x4bb58d8)) ^ uVar31) ^ uVar34 ^
       uVar39;
  lVar5 = DAT_182671560;
  bVar38 = (byte)DAT_1826715c4;
  uVar29 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  bVar37 = bVar38 ^ (byte)DAT_182671764;
  uVar31 = (ulonglong)DAT_18267165c;
  uVar27 = (ulonglong)DAT_182671598;
  *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x635d756d)) =
       (*(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar39) >> (((byte)uVar18 ^ 0xbf) & 0x3f) ^ uVar29;
  *(byte *)(lVar5 + -0x919) = bVar37 ^ *(byte *)(lVar5 + -0x240);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x6d862885)) =
       (CONCAT44(uVar14,uVar12) ^ 0x7a36611fffffffec) + *(longlong *)(lVar5 + -0x8c8) ^ uVar31;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x5a6d382d)) =
       *(ulonglong *)(lVar5 - (uVar30 ^ 0xc283ed0d)) ^ uVar39 ^ 0xf396bd2463396fc9;
  uVar19 = DAT_1826715b4;
  uVar46 = CONCAT44(uVar16,DAT_1826715b4);
  *(byte *)(*(ulonglong *)(lVar5 + -0x9f0) ^ uVar31) =
       (byte)DAT_182671718 ^ *(byte *)(lVar5 + -0x919) ^ (byte)DAT_182671764;
  uVar20 = DAT_1826715fc;
  uVar31 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar39 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar5 + -0x220) =
       *(longlong *)(lVar5 - (uVar33 ^ 0xfffff467)) +
       ((CONCAT44(uVar8,uVar9) ^ 0xfffffffe04bb53a2) + (uVar46 ^ 0xef6bb77eb3c9af8a) * 0xc) * 8 ^
       uVar31;
  uVar33 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_18267157c ^ 0x300a198a)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar43 ^ 0x5780f9d0)) ^ uVar31) ^ uVar34 ^ uVar33;
  bVar37 = (byte)DAT_18267176c ^ (byte)DAT_1826717a0;
  uVar25 = (uVar33 ^ *(ulonglong *)(lVar5 + -0x8a8)) >> (((byte)uVar19 ^ 0xaa) & 0x3f) ^ uVar25;
  *(ulonglong *)(lVar5 + -0xa0) = uVar25;
  uVar33 = (ulonglong)DAT_18267184c;
  *(byte *)(lVar5 + -0x209) = bVar37 ^ (byte)uVar25;
  bVar37 = (byte)DAT_182671718 ^ (byte)DAT_1826717a0;
  *(ulonglong *)(lVar5 - (uVar39 ^ 0x1f6136a2)) = *(longlong *)(lVar5 + -0x8c8) + 0x14U ^ uVar33;
  *(byte *)(*(ulonglong *)(lVar5 + -0xd8) ^ uVar33) = bVar37 ^ *(byte *)(lVar5 + -0x209);
  uVar33 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar5 - (uVar36 ^ 0xd094de57)) =
       *(longlong *)(lVar5 + -0xb98) +
       ((CONCAT44(uVar13,uVar4) ^ 0x4f75ca35fffffffd) +
       (CONCAT44(uVar13,uVar7) ^ 0x4f75ca3502110a30) * 0xc) * 8 ^ uVar33;
  lVar6 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar46 = (ulonglong)DAT_182671770;
  *(ulonglong *)(lVar5 + -0x548) =
       *(ulonglong *)(*(ulonglong *)(lVar5 + -0x6f0) ^ uVar33) ^ uVar34 ^ uVar31;
  bVar37 = (byte)DAT_182671718;
  uVar33 = (*(ulonglong *)(lVar6 - (uVar39 ^ 0x1f613332)) ^ uVar31) >>
           (((byte)DAT_182671574 ^ 0xd6) & 0x3f) ^ CONCAT44(DAT_1826717b8,DAT_1826717b8);
  bVar40 = (byte)DAT_1826717b8 ^ (byte)DAT_182671648;
  *(ulonglong *)(lVar6 + -0xa80) = uVar33;
  *(byte *)(lVar6 + -0x5e9) = bVar40 ^ (byte)uVar33;
  uVar4 = DAT_18267159c;
  lVar5 = DAT_182671560;
  uVar31 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0x2110348)) =
       (CONCAT44(uVar15,DAT_18267159c) ^ 0xb3c9af8a4f75ca20) + *(longlong *)(DAT_182671560 + -0x8c8)
       ^ uVar46;
  uVar7 = DAT_18267159c;
  *(ulonglong *)(lVar5 + -0x610) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x6d862335)) ^ uVar29) <<
       ((bVar38 ^ *(byte *)(lVar5 + -0x240)) & 0x3f);
  uVar8 = DAT_18267159c;
  DAT_182671588 =
       (uVar7 << 0x10 | uVar7 & 0xff00) << 8 | uVar7 >> 8 & 0xff00 | DAT_18267159c >> 0x18;
  uVar29 = CONCAT44(uVar13,DAT_182671588);
  uVar33 = (ulonglong)DAT_182671588;
  *(byte *)(*(ulonglong *)(lVar5 + -0x978) ^ uVar46) =
       bVar37 ^ (byte)DAT_182671648 ^ *(byte *)(lVar5 + -0x5e9);
  uVar25 = CONCAT44(DAT_18267162c,DAT_18267162c);
  bVar37 = bVar37 ^ (byte)DAT_1826717d0;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0x4f75c2b5)) =
       *(longlong *)(lVar5 + -0xb98) + 0x10 + (uVar29 ^ 0x4f75ca3535ca754f) * 0x60 ^ uVar25;
  uVar39 = (ulonglong)DAT_182671678;
  uVar46 = CONCAT44(DAT_182671678,DAT_182671678);
  *(byte *)(lVar5 - (uVar33 ^ 0x35ca730d)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0xc80) ^ (ulonglong)_DAT_1826715e0) ^ (byte)DAT_1826717c0;
  uVar15 = DAT_1826716b0;
  uVar22 = (ulonglong)DAT_1826717c4;
  uVar33 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar46 = uVar46 ^ *(ulonglong *)(*(ulonglong *)(lVar5 + -0x880) ^ uVar25) ^ uVar34;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar46;
  bVar38 = (byte)uVar15 ^ (byte)DAT_1826717d0;
  uVar33 = (uVar46 >> 0x20 ^ uVar39) >> 0x10 ^ uVar33;
  *(ulonglong *)(lVar5 + -0xa60) = uVar33;
  pbVar32 = (byte *)((uVar29 ^ 0x4f75ca3535ca7559) + *(longlong *)(lVar5 + -0x8c8));
  bVar38 = bVar38 ^ (byte)uVar33;
  *(byte *)(lVar5 + -0x345) = bVar38;
  *(ulonglong *)(lVar5 + -0xc0) = (ulonglong)pbVar32 ^ uVar22;
  *pbVar32 = bVar37 ^ bVar38;
  puVar24 = (ulonglong *)(*(longlong *)(lVar5 + -0xb98) + 0x10);
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x4f75cd8d)) =
       (ulonglong)puVar24 ^ CONCAT44(DAT_182671658,DAT_182671658);
  uVar15 = DAT_182671848;
  uVar33 = CONCAT44(DAT_182671674,DAT_182671674);
  *puVar2 = *puVar24 ^ uVar34 ^ uVar33;
  *(undefined8 *)
   (*(ulonglong *)(lVar5 - (uVar31 ^ 0x4f75cfcd)) ^ CONCAT44(DAT_1826717e4,DAT_1826717e4)) =
       0x55b44ac37eca2517;
  *puVar1 = (uVar33 ^ *puVar2) >> (((byte)(uVar8 >> 0x18) ^ 0x77) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar3 ^ uVar45) * 4) = uVar23;
  return;
}



############ FUN_ 180eea150 size=5112 ############

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

void FUN_180eea150(void)

{
  longlong *plVar1;
  ulonglong uVar2;
  uint uVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  int iVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong *puVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_b8;
  
  uVar32 = DAT_1826718d0;
  iVar11 = DAT_182671888;
  uVar14 = DAT_1826717e8;
  uVar9 = DAT_182671590;
  uVar8 = DAT_18267158c;
  lVar5 = DAT_182671560;
  uVar26 = (ulonglong)DAT_18267158c;
  uVar42 = (ulonglong)DAT_182671590;
  uVar46 = DAT_1826718d0 & DAT_1826716f4;
  uVar31 = DAT_182671888 * DAT_182671740;
  uVar24 = DAT_182671634 & DAT_1826717e8;
  uVar18 = ~DAT_182671590;
  uVar21 = (DAT_18267158c << 0x10 | DAT_18267158c & 0xff00) << 8 | DAT_18267158c >> 8 & 0xff00 |
           DAT_18267158c >> 0x18;
  uVar3 = *(uint *)(&DAT_182611e78 + DAT_182671978);
  uVar12 = *(uint *)(&DAT_182611e80 + DAT_182671978) ^ DAT_18267158c;
  uVar2 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar41 = (ulonglong)uVar18;
  uVar17 = CONCAT44(DAT_182671740,DAT_182671740);
  DAT_1826715a8 = uVar18;
  DAT_1826715ac = uVar21;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(DAT_182671560 - (uVar41 ^ 0xf21d4bf0)) ^
        CONCAT44(DAT_18267172c,DAT_18267172c) | *(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar2) ^
       uVar17;
  uVar7 = DAT_1826716a8;
  puVar37 = (ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0xf21d4088));
  uVar28 = CONCAT44(iVar11,iVar11);
  uVar13 = uVar31 & 0xff;
  *(ulonglong *)(lVar5 + -0x318) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xde2b3d7)) ^
       CONCAT44(DAT_18267168c,DAT_18267168c)) - (*puVar37 ^ uVar17) ^ uVar28;
  DAT_1826717a8 = ((uVar31 * 0x100 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar38 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar43 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar29 = CONCAT44(uVar7,uVar7) ^ uVar43 ^ uVar38 ^ *(ulonglong *)(DAT_182671560 + -0x9e8) ^
           *(ulonglong *)(DAT_182671560 + -0x8a8);
  puVar15 = (ulonglong *)(DAT_182671560 + -0x898);
  *puVar15 = uVar29;
  uVar30 = (uVar29 ^ uVar43) >> (((byte)(uVar8 >> 0x18) ^ 0xb3) & 0x3f);
  uVar19 = CONCAT44(uVar14,uVar14);
  uVar33 = (ulonglong)uVar21;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar30 ^ uVar19;
  lVar5 = DAT_182671560;
  uVar14 = DAT_182671634 & 0xff;
  DAT_182671634 = ((DAT_182671634 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar35 = CONCAT44(DAT_182671634,DAT_182671634);
  uVar14 = uVar24 & 0xff;
  uVar29 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0x8affdbcf)) ^ uVar43) << 7;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar29 ^ uVar35;
  DAT_182671878 = ((uVar24 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar30 = uVar30 | uVar29;
  uVar25 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar14 = DAT_1826718d0 & 0xff;
  *(ulonglong *)(lVar5 + -0x2a0) = uVar30 ^ uVar25;
  DAT_1826718d0 = ((DAT_1826718d0 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar22 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  puVar36 = (ulonglong *)(lVar5 - (uVar33 ^ 0x57d3f9a2));
  uVar14 = uVar46 & 0xff;
  uVar46 = uVar46 << 8;
  *puVar36 = (*(ulonglong *)(lVar5 - (uVar42 ^ 0xde2bc17)) ^ uVar38) - uVar30 ^ uVar22;
  DAT_182671714 = ((uVar46 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar29 = (ulonglong)DAT_182671714;
  puVar34 = (ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x8affd1f7));
  uVar47 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar5 + -0x8a8) =
       *puVar34 ^ uVar47 ^ uVar25 ^ uVar28 ^ *(ulonglong *)(lVar5 + -0x318);
  *puVar15 = uVar42 << 0x35 ^ 0xf560000000000000;
  uVar7 = DAT_182671750;
  lVar6 = DAT_182671560;
  uVar13 = DAT_1826716f4 & 0xff;
  DAT_1826716f4 = ((DAT_1826716f4 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar39 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  uVar29 = (uVar29 << 0x12 | (ulonglong)(((uVar46 & 0xffff | uVar14) << 8 | uVar14) >> 6)) ^
           *(ulonglong *)(lVar5 - (uVar33 ^ 0x57d3f722)) >> 0xe;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar29 ^ uVar39;
  uVar27 = CONCAT44(uVar7,uVar7);
  uVar30 = (*(ulonglong *)(lVar6 - (uVar42 ^ 0xde2bd57)) ^ uVar47) << 0x32;
  *(ulonglong *)(lVar6 + -0x1f0) = uVar30 ^ uVar27;
  lVar5 = DAT_182671560;
  uVar30 = uVar30 | uVar29;
  *(uint *)(lVar6 + -0x678) = (DAT_1826715a8 ^ 0xfbea6cd5) + *(int *)(lVar6 + -0x774);
  puVar16 = (ulonglong *)(DAT_182671560 - (uVar42 ^ 0xde2b6e7));
  *(ulonglong *)(lVar6 + -0x9e8) = uVar30 ^ uVar43;
  uVar29 = (*puVar16 ^ uVar28) - (CONCAT44(uVar21,uVar18) ^ 0xa9706654e712280a);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar29 ^ uVar17;
  *puVar15 = uVar29 - uVar30 ^ uVar28;
  lVar6 = DAT_182671560;
  puVar20 = (ulonglong *)(lVar5 - (uVar33 ^ 0x57d3fc92));
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       uVar28 ^ *puVar20 | CONCAT44(uVar8,uVar8) ^ 0x9ca0de10fd14ae7f;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar42 ^ 0xde2b40f)) =
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0xf21d43e8)) ^ uVar43) -
       (CONCAT44(uVar21,uVar8) ^ 0xf496b7e69c68425c) ^ uVar39;
  *(ulonglong *)(lVar5 + -0x2a0) = *puVar37 ^ *puVar36 ^ uVar22 ^ uVar28 ^ uVar17;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x8affd04f)) =
       (*puVar34 ^ uVar28) >> (((byte)uVar18 ^ 0x10) & 0x3f) ^ uVar22;
  uVar29 = (*(ulonglong *)(lVar5 + -0x2a0) ^ uVar28) << 0x30;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar29 ^ uVar43;
  uVar13 = DAT_182671574;
  uVar30 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar5 + -0x9e8) = (uVar22 ^ *(ulonglong *)(lVar5 + -0x318) | uVar29) ^ uVar47;
  uVar40 = uVar13 << 0x10 | uVar13 >> 0x10;
  uVar38 = (ulonglong)uVar40;
  puVar36 = (ulonglong *)(lVar5 - ((ulonglong)uVar40 ^ 0x8fdddba7));
  uVar43 = CONCAT44(uVar13,uVar40);
  puVar23 = (ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0xdd8f8555));
  DAT_18267156c = uVar40;
  *puVar23 = (*puVar36 ^ uVar22) - (uVar43 ^ 0x16a261f9423614b4) ^ uVar2;
  uVar29 = uVar47 ^ *(ulonglong *)(lVar5 + -0x9e8);
  *(ulonglong *)(lVar5 + -0x2a0) = (uVar2 ^ *(ulonglong *)(lVar5 + -0xa88)) - uVar29 ^ uVar19;
  uVar7 = DAT_1826718ac;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar29 - (uVar43 ^ 0xdb641fc4b7aa3606) ^ uVar25;
  uVar48 = CONCAT44(uVar7,uVar7);
  uVar29 = CONCAT44(uVar40,uVar13);
  *(ulonglong *)(uVar48 ^ *(ulonglong *)(lVar5 + -0x30)) = uVar35 ^ uVar28 ^ *puVar15;
  lVar5 = DAT_182671560;
  puVar34 = (ulonglong *)
            ((uVar48 ^ *(ulonglong *)(DAT_182671560 + -0x30)) + (uVar29 ^ 0x8fdddd8fdd8f8fdc) * 8);
  puVar16 = (ulonglong *)(DAT_182671560 + -0x230);
  *puVar16 = (ulonglong)puVar34 ^ uVar47;
  *puVar34 = uVar39 ^ *(ulonglong *)(lVar5 + -0x1f0) ^ uVar35;
  puVar37 = (ulonglong *)(lVar5 + -0xab8);
  *puVar37 = (uVar48 ^ *(ulonglong *)(lVar5 + -0x30)) + (uVar29 ^ 0x8fdddd8fdd8f8fdf) * 8 ^ uVar2;
  *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0xdd8f8565)) ^ uVar2) =
       *(ulonglong *)(lVar5 + -0x2a0) ^ uVar35 ^ uVar19;
  *(ulonglong *)(lVar5 + -0x178) =
       (uVar48 ^ *(ulonglong *)(lVar5 + -0x30)) + (uVar43 ^ 0xdd8f8fdd8fdddd8c) * 8 ^ uVar27;
  *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0xdd8f8ea5)) ^ uVar27) =
       uVar25 ^ uVar35 ^ *(ulonglong *)(lVar5 + -0x8a8);
  *(undefined8 *)(lVar5 + -0x218) = *(undefined8 *)(lVar5 + 8);
  uVar45 = DAT_1826715fc | DAT_1826715ec;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0xdd8f89f5)) =
       uVar39 ^ *(ulonglong *)(lVar5 + -0x6b8) ^ uVar2 ^ *puVar23;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0xdd8f839d)) =
       (uVar29 ^ 0x8fdddd8fdd8f8fcd) + *(longlong *)(lVar5 + 8);
  *(undefined8 *)(lVar5 + -0xb78) = *(undefined8 *)(lVar5 + -0xc40);
  *(ulonglong *)(lVar5 + -0x5f8) =
       (CONCAT44(uVar40,uVar9) ^ 0x8fdddd8f0de2b5ff) * 0x80 +
       (*(ulonglong *)(lVar5 + -0x980) ^ (ulonglong)DAT_182671778);
  *(longlong *)(lVar5 - (uVar33 ^ 0x57d3f94a)) = DAT_182671558 + -0xa8;
  *(longlong *)(lVar5 + -0x10) = DAT_182671558 + -200;
  DAT_182671558 = DAT_182671558 + -0xe8;
  *(longlong *)(lVar5 + -0x7e0) = DAT_182671558;
  lVar5 = DAT_182671560;
  uVar19 = uVar47 ^ *(ulonglong *)(DAT_182671560 + -0x9e8);
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       (CONCAT44(uVar18,uVar18) ^ 0x4f435a96219ed8df) >> ((byte)uVar19 & 0x3f);
  uVar29 = **(ulonglong **)(lVar5 - (uVar26 ^ 0x8affd14f));
  *(ulonglong *)(lVar5 + -0x628) = uVar29;
  lVar6 = DAT_182671560;
  uVar24 = DAT_182671730 ^ (uint)*puVar36;
  plVar1 = (longlong *)(lVar5 + -0x6c0);
  puVar36 = (ulonglong *)(*plVar1 + 0x90 + (CONCAT44(uVar18,uVar21) ^ 0xf21d4a0057d3ff8a) * 0xa8);
  puVar34 = (ulonglong *)(DAT_182671560 + -0xa88);
  *(ulonglong **)(DAT_182671560 + -0x3a0) = puVar36;
  uVar14 = uVar24 & 0xff;
  *(ulonglong *)(lVar6 + -0x6b8) = uVar19 - (uVar2 ^ *puVar34);
  DAT_182671730 = ((uVar24 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar27 = CONCAT44(DAT_182671730,DAT_182671730);
  *puVar36 = uVar27 ^ uVar29;
  puVar34 = (ulonglong *)(*(longlong *)(lVar6 + -0x218) + 8);
  *(ulonglong **)(lVar6 + -0x4a0) = puVar34;
  *puVar23 = *puVar34;
  lVar5 = DAT_182671560;
  uVar31 = DAT_18267169c ^ *(uint *)(lVar6 + -0xa88);
  puVar36 = (ulonglong *)
            (*plVar1 + 0x90 +
            ((CONCAT44(uVar9,uVar18) ^ 0xde2b5fff21d4a00) * 0x15 +
            (CONCAT44(uVar8,uVar8) ^ 0x8affd3578affd356)) * 8);
  puVar34 = (ulonglong *)(DAT_182671560 + -0xa88);
  *(ulonglong **)(DAT_182671560 + -0x7b8) = puVar36;
  *puVar36 = uVar27 ^ *puVar34;
  uVar29 = **(ulonglong **)(lVar5 + -0x218);
  *(ulonglong *)(lVar5 + -0x9e8) = uVar29;
  local_b8 = (byte)uVar32;
  uVar46 = DAT_182671824 ^ *(uint *)(lVar5 - (uVar30 ^ 0xdd8f8635));
  bVar4 = (byte)DAT_182671590;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (CONCAT44(uVar13,uVar9) ^ 0x4b5f054dbb727e78) <<
       ((local_b8 ^ *(byte *)(lVar5 + -0x318)) & 0x3f);
  uVar19 = **(ulonglong **)(lVar5 + -0x4a0);
  *(int *)(lVar5 + -0x678) = 0x60b7ef6f << ((bVar4 ^ 0xf4) & 0x1f);
  uVar32 = DAT_182671790 ^ (uint)uVar19;
  *(ulonglong *)(lVar5 + -0x318) = uVar19;
  *(ulonglong *)(lVar5 + -0x80) = uVar29 ^ uVar19;
  uVar24 = DAT_18267186c ^ *(uint *)(lVar5 + -0x80);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x8fdddf97)) =
       *plVar1 + 0x90 +
       ((CONCAT44(uVar13,uVar8) ^ 0xdd8f8fdd8affd357) * 0x15 +
       (CONCAT44(uVar18,uVar40) ^ 0xf21d4a008fdddd8d)) * 8;
  uVar29 = (ulonglong)DAT_182671594;
  **(ulonglong **)(lVar5 - (uVar42 ^ 0xde2b7e7)) = *(ulonglong *)(lVar5 + -0x80) ^ uVar27;
  uVar14 = uVar31 & 0xff;
  DAT_18267169c = ((uVar31 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar22 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x4d67885f)) = uVar22 ^ uVar48 ^ *(ulonglong *)(lVar5 + -0x30);
  uVar14 = uVar32 & 0xff;
  DAT_182671790 = ((uVar32 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar43 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar14 = uVar46 & 0xff;
  *(ulonglong *)(lVar5 + -0x9e8) =
       *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar5 + -0x4a0)) ^ uVar43 ^ uVar35;
  DAT_182671824 = ((uVar46 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar28 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar5 - (uVar33 ^ 0x57d3f92a)) =
       *plVar1 + 8 +
       ((CONCAT44(uVar40,uVar8) ^ 0x8fdddd8f8affd357) * 0x15 +
       (CONCAT44(uVar21,uVar40) ^ 0x57d3ff8a8fdddd8f)) * 8 ^ uVar28;
  *(ulonglong *)(lVar5 + -0x318) = uVar43 ^ *(ulonglong *)(lVar5 + -0x9e8) ^ 0x660a05882c390025;
  uVar14 = DAT_1826715a8 ^ 0x2c72bd34;
  uVar32 = uVar24 & 0xff;
  *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar41 ^ 0xf21d4ca0)) ^ uVar28) =
       uVar43 ^ uVar27 ^ *(ulonglong *)(lVar5 + -0x9e8);
  *(uint *)(lVar5 + -0x678) = (uVar40 ^ 0x11773762) - uVar14;
  DAT_18267186c = ((uVar24 << 8 | uVar32) << 8 | uVar32) << 8 | uVar32;
  uVar44 = CONCAT44(DAT_18267186c,DAT_18267186c);
  *(ulonglong *)(lVar5 + -0x318) =
       *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar5 + -0x4a0)) ^ uVar44 ^ uVar35;
  *(undefined8 *)(uVar48 ^ *(ulonglong *)(lVar5 + -0x30)) = 0xd0bdd6e91e6801a;
  uVar14 = DAT_1826715ec & 0xff;
  DAT_1826715ec = ((DAT_1826715ec << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar25 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar29 = CONCAT44(uVar13,uVar18) ^ uVar25 ^ uVar44 ^ *(ulonglong *)(DAT_182671560 + -0x318) ^
           0xc65e94075be15022;
  uVar14 = uVar45 & 0xff;
  *puVar15 = uVar29;
  DAT_182671614 = ((uVar45 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar41 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar41 ^ uVar29 ^ uVar25;
  uVar24 = DAT_1826715b4;
  uVar14 = DAT_1826715fc & 0xff;
  *puVar15 = *(longlong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0xd3578077)) +
             0xfde5a6b9f73b682c;
  DAT_1826715fc = ((DAT_1826715fc << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar49 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x8fddd517)) = uVar49 ^ uVar41 ^ *puVar20;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x318) = CONCAT44(uVar8,uVar40) ^ 0x539bc4886159805d;
  uVar7 = DAT_18267157c;
  *(ulonglong *)(lVar5 + -0xcc8) =
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0x8affd367)) ^ uVar48) +
       (CONCAT44(uVar13,DAT_182671598) ^ 0xdd8f8fdd8cff4d66) * 8 ^ uVar28;
  uVar10 = DAT_1826715a4;
  lVar6 = DAT_182671560;
  *(ulonglong *)(lVar5 + -0x318) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar42 ^ 0xde2b937)) ^ uVar28) ^ uVar44 ^ uVar35;
  *(ulonglong *)(lVar6 + -0x600) =
       (CONCAT44(uVar7,uVar21) ^ 0x9d7447e942957c2a) << (((byte)uVar24 ^ 0xf1) & 0x3f);
  *(ulonglong *)(lVar6 + -0x438) =
       *plVar1 + 8 +
       ((CONCAT44(uVar9,uVar10) ^ 0xde2b5ff4c76306a) * 0x15 +
       (CONCAT44(uVar7,uVar9) ^ 0xbffff5a30de2b5fe)) * 8 ^ uVar43;
  uVar19 = CONCAT44(DAT_182671578,DAT_182671578);
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x8fdddb8f)) =
       CONCAT44(DAT_182671578,uVar8) ^ 0x670b4d3d5418ca59 |
       CONCAT44(DAT_182671578,uVar18) ^ 0xf7f21e87530e8a2a;
  lVar5 = DAT_182671560;
  *(ulonglong *)(uVar43 ^ *(ulonglong *)(DAT_182671560 + -0x438)) =
       uVar44 ^ uVar27 ^ *(ulonglong *)(DAT_182671560 + -0x318);
  uVar32 = DAT_182671588;
  uVar29 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar5 + -0x600) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar30 ^ 0xdd8f8315)) ^ uVar28) ^ uVar22 ^ uVar35;
  *(ulonglong *)(*puVar16 ^ uVar47) = uVar19 ^ 0x303068c6b9a4548a;
  *(ulonglong *)(lVar5 + -0x1f0) =
       *(ulonglong *)(lVar5 + -0x6b8) >> (((byte)uVar31 ^ *(byte *)(lVar5 + -0x600)) & 0x3f);
  uVar19 = *(ulonglong *)(lVar5 - (uVar29 ^ 0xa3f5f9bf)) ^ uVar22 ^ *puVar15;
  uVar29 = uVar49 ^ uVar25 ^ uVar19;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar19;
  *(ulonglong *)(lVar5 + -0x1f0) = uVar29;
  *puVar15 = uVar25 ^ uVar44 ^ uVar29;
  puVar34 = (ulonglong *)
            ((uVar48 ^ *(ulonglong *)(lVar5 + -0x30)) +
            (CONCAT44(uVar21,uVar10) ^ 0x57d3ff8a4c763068) * 8);
  *puVar16 = (ulonglong)puVar34 ^ uVar27;
  lVar6 = DAT_182671560;
  uVar19 = *puVar34 ^ uVar22 ^ uVar35;
  uVar29 = CONCAT44(uVar7,DAT_182671580);
  *(ulonglong *)(lVar5 + -0x600) = uVar19;
  uVar14 = DAT_182671570;
  uVar38 = (ulonglong)DAT_182671570;
  puVar34 = (ulonglong *)
            (*(longlong *)(lVar6 - ((ulonglong)DAT_182671568 ^ 0xbffff363)) + 8 +
            ((uVar29 ^ 0xbffff5a370222270) * 0x15 +
            (CONCAT44(uVar8,DAT_182671570) ^ 0x8affd3577c38950c)) * 8);
  *(uint *)(lVar6 + -0x328) = DAT_182671594 ^ 0x2019130c | 0x5be468e3;
  *(ulonglong *)(lVar6 + -0xcc8) = (ulonglong)puVar34 ^ uVar28;
  *puVar34 = uVar22 ^ uVar27 ^ uVar19;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0x8affd5ef)) =
       *(ulonglong *)(*puVar16 ^ uVar27) ^ uVar41 ^ uVar35;
  *(ulonglong *)(*puVar37 ^ uVar2) = CONCAT44(DAT_1826715a0,uVar40) ^ 0x37ea2faf12bf2ab1;
  *(uint *)(lVar6 - ((ulonglong)uVar24 ^ 0xd35789d7)) = *(uint *)(lVar6 + -0x968) | 0x50636fa4;
  *(ulonglong *)(lVar6 - (uVar30 ^ 0xdd8f8d7d)) =
       *(ulonglong *)(lVar6 - (uVar33 ^ 0x57d3f712)) ^ uVar44 ^ *(ulonglong *)(lVar6 + -0x6b8) ^
       uVar41 ^ uVar17;
  uVar2 = *(ulonglong *)(lVar6 + -0x2a0);
  *puVar15 = CONCAT44(uVar10,uVar24) ^ CONCAT44(uVar21,uVar18) ^ 0x4e5597c1e3b838f8;
  *(ulonglong *)(lVar6 + -0x1f0) = uVar2 ^ uVar41 ^ uVar17;
  uVar2 = *(ulonglong *)(lVar6 + -0x30);
  *puVar15 = (*(ulonglong *)(lVar6 - (uVar33 ^ 0x57d3fd2a)) ^ uVar17) +
             (CONCAT44(uVar32,uVar14) ^ 0x7679c81ee4ad5cb7);
  *(ulonglong *)(lVar6 - (uVar38 ^ 0x7c389fb6)) = (uVar48 ^ uVar2) + 0x18 ^ uVar28;
  *puVar15 = *(ulonglong *)(uVar28 ^ *puVar37) ^ uVar49 ^ uVar35;
  *puVar16 = *plVar1 + 0x20 + (CONCAT44(uVar13,uVar9) ^ 0xdd8f8fdd0de2b5ff) * 0xa8 ^ uVar39;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar3 ^ uVar21;
  return;
}



############ FUN_ 180f17100 size=3157 ############

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

void FUN_180f17100(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  byte bVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  ulonglong uVar20;
  byte bVar21;
  byte bVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte local_res8;
  
  uVar12 = DAT_182671844;
  uVar9 = DAT_1826715b0;
  uVar8 = DAT_18267159c;
  uVar7 = DAT_182671578;
  uVar5 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar23 = DAT_1826715b0 * DAT_18267159c;
  uVar28 = (DAT_182671578 << 0x10 | DAT_182671578 & 0xff00) << 8 | DAT_182671578 >> 8 & 0xff00 |
           DAT_182671578 >> 0x18;
  uVar24 = (DAT_18267156c << 0x10 | DAT_18267156c & 0xff00) << 8 | DAT_18267156c >> 8 & 0xff00 |
           DAT_18267156c >> 0x18;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_1826719fc);
  uVar15 = (ulonglong)uVar23;
  uVar14 = *(uint *)(&DAT_182611e70 + (uVar15 ^ 0xe52480d6) + (longlong)DAT_1826719fc) ^
           DAT_18267156c;
  uVar20 = (ulonglong)DAT_1826715b0;
  uVar17 = (ulonglong)DAT_182671844;
  uVar18 = (ulonglong)DAT_1826715c8;
  uVar30 = (ulonglong)DAT_18267159c;
  DAT_182671584 = uVar24;
  DAT_182671598 = uVar23;
  DAT_1826715a8 = uVar28;
  *(undefined8 *)(DAT_182671560 + -0xd30) = *(undefined8 *)(DAT_182671560 + -0xa70);
  *(undefined8 *)(lVar3 + -0x340) = *(undefined8 *)(lVar3 + -0x118);
  *(uint *)(lVar3 - (uVar20 ^ 0x895eb292)) = (uVar28 ^ 0xe8e61bec) * (uVar8 ^ 0xd444d5c5);
  *(ulonglong *)(lVar3 + -0xd08) = uVar17 ^ *(ulonglong *)(lVar3 + -0xd30);
  uVar6 = DAT_182671574;
  uVar29 = (ulonglong)DAT_182671574;
  uVar26 = DAT_182671574 << 0x10 | DAT_182671574 >> 0x10;
  DAT_182671594 = uVar26;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xb606f8d6)) = *(ulonglong *)(lVar3 + -0x340) ^ uVar18;
  pbVar19 = (byte *)(*(ulonglong *)(lVar3 + -0xc60) ^ uVar18);
  *(byte **)(lVar3 + -0x738) = pbVar19 + (CONCAT44(uVar26,uVar26) ^ 0xf4b6b606f4b6b607);
  *(byte *)(lVar3 + -0x51a) = (byte)DAT_182671608 ^ (byte)DAT_182671718 ^ *pbVar19;
  uVar20 = (ulonglong)DAT_182671794;
  *(undefined1 *)(lVar3 + -0x461) = 0xda;
  uVar16 = (ulonglong)uVar7;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x540) ^ uVar20) = 0x77;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x895ebef6)) =
       ((ulonglong)uVar12 ^ *(ulonglong *)(lVar3 + -0xd08)) +
       (CONCAT44(uVar7,uVar26) ^ 0x4dd89b3f4b6b607);
  uVar20 = (ulonglong)DAT_182671748;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0xb606fe3e)) =
       CONCAT44(uVar8,uVar23) ^ *(ulonglong *)(DAT_182671560 + -0x6d0) ^ 0x23ccd52a6b8d4119;
  lVar3 = DAT_182671560;
  bVar13 = (byte)(uVar5 >> 0x18);
  *(byte *)(uVar17 ^ *(ulonglong *)(DAT_182671560 + -0xd08)) =
       *(byte *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x895eb28c)) ^ (byte)DAT_182671608;
  uVar18 = (ulonglong)DAT_182671804;
  *(byte *)(lVar3 + -0x51a) = bVar13 ^ 0x78;
  *(undefined8 *)(lVar3 + -0x5e8) = *(undefined8 *)(lVar3 + -0x738);
  *(ulonglong *)(lVar3 + -0x108) = *(ulonglong *)(lVar3 + -0x960);
  *(ulonglong *)(lVar3 + -0xa28) = uVar18 ^ *(ulonglong *)(lVar3 + -0x960);
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xb606f3a6)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x5689456e)) ^ uVar20;
  lVar3 = DAT_182671560;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x710);
  *(int *)(DAT_182671560 + -0x47c) = 0x18b38692 - *(int *)(DAT_182671560 + -0x274);
  pbVar19 = (byte *)(*puVar1 ^ uVar20);
  *(byte **)(lVar3 + -0x9c0) = pbVar19 + 1;
  *(byte *)(lVar3 + -0xb89) = *pbVar19 ^ (byte)DAT_182671620 ^ (byte)DAT_182671718;
  *(char *)(lVar3 + -0x639) = (char)(uVar7 >> 0x18);
  lVar3 = DAT_182671560;
  bVar21 = (byte)(uVar6 >> 0x10);
  uVar17 = (ulonglong)uVar24;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar15 ^ 0xe524827e)) ^ (ulonglong)DAT_182671678) =
       bVar21 ^ 0xd6;
  uVar25 = CONCAT44(uVar5,uVar24) ^ 0x5689408686408957;
  pbVar19 = (byte *)(uVar18 ^ *(ulonglong *)(lVar3 + -0xa28));
  *(byte **)(lVar3 + -0x9b8) = pbVar19 + uVar25;
  *pbVar19 = *(byte *)(lVar3 + -0xb89) ^ (byte)DAT_182671620;
  local_res8 = (byte)uVar23;
  uVar18 = (ulonglong)DAT_1826716a8;
  *(byte *)(lVar3 + -0xb89) = local_res8 ^ 0xc2;
  *(undefined8 *)(lVar3 + -0xbe8) = *(undefined8 *)(lVar3 + -0x9b8);
  *(undefined8 *)(lVar3 - (uVar16 ^ 0x4dd84e3)) = *(undefined8 *)(lVar3 + -0x9c0);
  uVar20 = (ulonglong)_DAT_1826715f0;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xb606f9c6)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xbebfc121)) ^ uVar18;
  pbVar19 = *(byte **)(lVar3 + -0xd50);
  *(longlong *)(lVar3 + -0xc08) = *(longlong *)(lVar3 + -0xa88) * 2;
  uVar9 = DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0x760) = (ulonglong)pbVar19 ^ uVar20;
  lVar3 = DAT_182671560;
  *(byte **)(DAT_182671560 + -0x5b0) = pbVar19 + (CONCAT44(uVar9,uVar28) ^ 0x895eb796b389dd05);
  *(byte *)(lVar3 + -0x5a2) = *pbVar19 ^ (byte)DAT_182671738 ^ (byte)DAT_182671718;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar5 ^ 0x5689443f)) = 0x3c;
  *(byte *)(*(ulonglong *)(lVar3 + -0x900) ^ (ulonglong)DAT_1826718bc) = local_res8 ^ 0x8c;
  *(longlong *)(lVar3 + -0x638) = *(longlong *)(lVar3 + -0x1d8) - *(longlong *)(lVar3 + -0x9f8);
  pbVar19 = (byte *)(*(ulonglong *)(lVar3 + -0xd70) ^ uVar18);
  *(byte **)(lVar3 + -0xd28) = pbVar19 + (CONCAT44(uVar7,uVar8) ^ 0x4dd89b3bebfcac8);
  *pbVar19 = *(byte *)(lVar3 + -0x5a2) ^ (byte)DAT_182671738;
  *(byte *)(lVar3 + -0x5a2) = bVar13 ^ 0x9f;
  uVar10 = DAT_1826715c0;
  *(ulonglong *)(lVar3 - (uVar15 ^ 0xe52482b6)) =
       CONCAT44(uVar8,uVar26) ^ 0xf7d53fefde3f7fdb | 0x77d5316ed63876ca;
  uVar11 = DAT_1826716f0;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar5 ^ 0x568949c6)) =
       *(undefined8 *)(lVar3 - ((ulonglong)uVar6 ^ 0xb606f99e));
  lVar4 = DAT_182671560;
  uVar20 = *(ulonglong *)(lVar3 + -0x5b0);
  *(ulonglong *)(lVar3 + -0x398) = uVar20;
  uVar27 = (ulonglong)DAT_182671680;
  *(ulonglong *)(lVar4 + -0x4a8) = *(ulonglong *)(lVar4 + -0x940) ^ uVar27;
  bVar22 = (byte)DAT_18267164c;
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       *(ulonglong *)
        (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b0 ^ 0x895ebfa6)) ^
        CONCAT44(uVar11,uVar11)) ^ CONCAT44(uVar10,uVar10);
  lVar3 = DAT_182671560;
  uVar18 = (ulonglong)DAT_182671728;
  uVar20 = DAT_182671728 ^ uVar20;
  *(ulonglong *)(DAT_182671560 + -0xbd8) = uVar20;
  pbVar19 = (byte *)(uVar20 ^ uVar18);
  *(byte **)(lVar3 + -0xc70) = pbVar19 + 1;
  *(byte *)(lVar3 + -0x6d9) = *pbVar19 ^ bVar22 ^ (byte)DAT_182671718;
  *(byte *)(lVar3 - (uVar17 ^ 0x86408b37)) = bVar21 ^ 0x75;
  *(byte *)(*(ulonglong *)(lVar3 + -0x448) ^ (ulonglong)DAT_1826715c4) = (byte)uVar5 ^ 0xd2;
  *(ulonglong *)(lVar3 + -0x9e8) =
       *(longlong *)(lVar3 - ((ulonglong)uVar26 ^ 0xf4b6beae)) -
       (CONCAT44(uVar7,uVar26) ^ 0xab8443de893efaf6);
  lVar4 = DAT_182671560;
  pbVar19 = (byte *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x4a8));
  *(byte **)(lVar3 + -0x370) = pbVar19 + (CONCAT44(uVar28,uVar28) ^ 0xb389dd04b389dd05);
  uVar20 = (ulonglong)DAT_1826715b0;
  *(int *)(lVar3 + -0x968) = -0x2d5158a6 << (((byte)uVar8 ^ 0xcb) & 0x1f);
  *pbVar19 = bVar22 ^ *(byte *)(lVar3 + -0x6d9);
  uVar18 = (ulonglong)DAT_1826717e0;
  *(undefined1 *)(lVar3 - (uVar20 ^ 0x895eb14f)) = 0xae;
  uVar20 = *(ulonglong *)(lVar3 + -0xc70);
  *(ulonglong *)(lVar3 + -0x260) = uVar20;
  *(ulonglong *)(lVar3 + -0xbf0) = CONCAT44(uVar23,uVar6) ^ 0xba6797bdf7fddfad | 0x3a07013d56c9410d;
  *(ulonglong *)(lVar3 + -0xb08) = *(ulonglong *)(lVar3 + -0x370);
  uVar27 = (ulonglong)DAT_18267183c;
  *(ulonglong *)(lVar4 + -0x330) = uVar27 ^ *(ulonglong *)(lVar3 + -0x370);
  *(ulonglong *)(lVar4 + -0xcc0) = uVar18 ^ uVar20;
  *(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x4dd8e7b)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0xb389d1c4)) ^ uVar18) +
       (CONCAT44(uVar28,uVar6) ^ 0xb389dd04b606f4b7);
  bVar22 = (byte)DAT_1826717d4;
  lVar3 = DAT_182671560;
  uVar20 = *(ulonglong *)(DAT_182671560 + -200);
  *(byte *)(DAT_182671560 + -0x9f9) =
       *(byte *)(uVar18 ^ *(ulonglong *)(DAT_182671560 + -0xcc0)) ^ (byte)DAT_1826717d4 ^
       (byte)DAT_182671718;
  *(byte *)(lVar3 + -0x289) = bVar13 ^ 0x41;
  *(undefined1 *)(uVar20 ^ DAT_182671808) = 0x9f;
  pbVar19 = (byte *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x330));
  *(byte **)(lVar3 + -0x420) = pbVar19 + (CONCAT44(uVar23,uVar6) ^ 0xe52480c6b606f4b7);
  bVar13 = (byte)DAT_182671578;
  *pbVar19 = bVar22 ^ *(byte *)(lVar3 + -0x9f9);
  uVar18 = (ulonglong)DAT_182671830;
  *(byte *)(lVar3 + -0x9f9) = bVar13 ^ 0x85;
  *(ulonglong *)(lVar3 + -0x240) =
       CONCAT44(uVar8,uVar8) ^ 0xbc096bb952f7411a | *(ulonglong *)(lVar3 + -0xbf0);
  bVar13 = (byte)DAT_182671718;
  *(undefined8 *)(lVar3 + -0x228) = *(undefined8 *)(lVar3 - (uVar29 ^ 0xb606f096));
  *(undefined8 *)(lVar3 - (uVar30 ^ 0xbebfce19)) = *(undefined8 *)(lVar3 + -0x7c8);
  *(ulonglong *)(lVar3 + -0xc68) = *(ulonglong *)(lVar3 + -0x228) ^ uVar18;
  uVar20 = *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0xb389d9d4));
  *(ulonglong *)(lVar3 + -0x950) = uVar20 ^ uVar18;
  bVar22 = (byte)DAT_1826715fc;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x86408ed6)) = uVar20 + uVar25;
  *(byte *)(lVar3 + -0x889) = *(byte *)(*(ulonglong *)(lVar3 + -0x950) ^ uVar18) ^ bVar22 ^ bVar13;
  *(byte *)(lVar3 + -0x309) = bVar21 ^ 0xe0;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar30 ^ 0xbebfcbc9)) ^ (ulonglong)DAT_1826716e0) =
       local_res8 ^ 4;
  *(ulonglong *)(lVar3 + -0xc40) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0x4dd85db)) ^ uVar18) +
       (CONCAT44(uVar26,uVar7) ^ 0xf4b6b60604dd89b2);
  *(byte *)(uVar18 ^ *(ulonglong *)(lVar3 + -0xc68)) = bVar22 ^ *(byte *)(lVar3 + -0x889);
  uVar6 = DAT_1826715b0;
  uVar27 = (ulonglong)DAT_182671840;
  uVar25 = (ulonglong)DAT_1826715b0;
  uVar30 = CONCAT44(uVar28,DAT_1826715b0);
  *(byte *)(lVar3 - ((ulonglong)uVar26 ^ 0xf4b6be8f)) = local_res8 ^ 0xd0;
  uVar29 = (ulonglong)DAT_18267173c;
  *(undefined8 *)(lVar3 + -0x560) = *(undefined8 *)(lVar3 - (uVar16 ^ 0x4dd85f3));
  uVar20 = *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0xb389da84));
  *(ulonglong *)(lVar3 + -0x9e0) = uVar20;
  uVar18 = *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0xb389d864));
  *(ulonglong *)(lVar3 + -0x770) = uVar27 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x8d8) = uVar18 ^ uVar29;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x4dd8fab)) =
       (CONCAT44(uVar7,uVar5) ^ 0x4dd89b356894087) + uVar20;
  *(byte *)(lVar3 + -0xd61) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar25 ^ 0x895eb0e6)) ^ uVar27) ^ (byte)DAT_182671604 ^
       bVar13;
  *(byte *)(lVar3 + -0x789) = (byte)DAT_182671568 ^ 0xf6;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671590 ^ 0xb81dbdfc)) ^
           (ulonglong)DAT_182671778) = (byte)uVar6 ^ 0x8c;
  bVar22 = *(byte *)(lVar3 + -0xd61) ^ (byte)DAT_182671604;
  *(ulonglong *)(lVar3 + -0x530) =
       (uVar30 ^ 0xb389dd04895eb797) + (uVar29 ^ *(ulonglong *)(lVar3 + -0x8d8));
  *(byte *)(*(ulonglong *)(lVar3 - (uVar17 ^ 0x8640818e)) ^ uVar29) = bVar22;
  uVar5 = DAT_182671570;
  uVar20 = (ulonglong)DAT_182671570;
  *(undefined8 *)(lVar3 + -0x20) = *(undefined8 *)(lVar3 + -0x530);
  *(byte *)(lVar3 + -0xd61) = (byte)uVar6 ^ 0x35;
  uVar18 = (ulonglong)DAT_182671624;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x9805a878)) =
       (CONCAT44(uVar24,uVar5) ^ 0xb3b0a3fbd426ff59) <<
       ((byte)*(undefined8 *)(lVar3 + -0x318) & 0x3f);
  pbVar19 = *(byte **)(lVar3 + -0x618);
  *(ulonglong *)(lVar3 + -0x4d8) = (ulonglong)DAT_1826717b8 ^ *(ulonglong *)(lVar3 + -0x20);
  *(byte **)(lVar3 + -0x130) = pbVar19;
  *(ulonglong *)(lVar3 + -0xa40) = uVar18 ^ (ulonglong)pbVar19;
  *(byte **)(lVar3 + -0x928) = pbVar19 + (CONCAT44(uVar26,DAT_1826715ac) ^ 0xf4b6b60676dd7c34);
  *(ulonglong *)(lVar3 + -0x110) = *(ulonglong *)(lVar3 + -0x240) ^ 0xcc661f53e1486df6;
  bVar22 = (byte)DAT_1826715b4;
  *(byte *)(lVar3 + -0x41) = (byte)DAT_182671844 ^ bVar13 ^ *pbVar19;
  *(byte *)(lVar3 - (uVar15 ^ 0xe5248767)) = bVar22 ^ 0xf;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0xa30) ^ (ulonglong)DAT_18267163c) = 0x77;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar2 ^ uVar24;
  return;
}



############ FUN_ 180e5e220 size=4683 ############

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

void FUN_180e5e220(void)

{
  uint *puVar1;
  ulonglong *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint uVar6;
  byte bVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong uVar14;
  byte bVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte *pbVar29;
  uint *puVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  uint uVar38;
  uint *puVar39;
  
  uVar23 = DAT_182671830;
  uVar12 = DAT_1826715a0;
  uVar22 = DAT_18267159c;
  uVar10 = DAT_182671570;
  uVar21 = DAT_18267156c;
  lVar8 = DAT_182671560;
  uVar36 = (ulonglong)DAT_18267159c;
  uVar26 = DAT_182671574 & DAT_182671568;
  uVar27 = uVar26 ^ 0x4c12f2b2;
  uVar25 = *(uint *)(&DAT_182611e78 + DAT_182671ac4) ^ DAT_1826715a4;
  uVar34 = (ulonglong)DAT_1826715a0;
  uVar31 = DAT_18267157c + DAT_18267156c;
  uVar17 = (ulonglong)DAT_182671570;
  uVar37 = DAT_18267159c & DAT_1826715a0;
  uVar6 = *(uint *)(&DAT_182611e80 + DAT_182671ac4);
  uVar38 = DAT_1826715a4 & DAT_182671570;
  puVar1 = (uint *)(DAT_182671560 + -0x374);
  uVar16 = *(uint *)(DAT_182671560 + -0x968) ^ DAT_1826715cc;
  uVar19 = (*(uint *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0xe09ecbf9)) ^ DAT_182671620) *
           (*(uint *)(DAT_182671560 - ((ulonglong)DAT_182671570 ^ 0xfffffcd7)) ^ DAT_182671790) ^
           DAT_1826715bc;
  DAT_182671578 = uVar37;
  DAT_182671580 = uVar31;
  DAT_182671590 = uVar27;
  DAT_1826715ac = uVar38;
  *puVar1 = uVar19;
  uVar19 = uVar19 ^ DAT_1826715bc;
  *(uint *)(lVar8 + -0x964) = uVar16 * (DAT_182671568 ^ 0x13b3a7c2) ^ _DAT_1826716c0;
  uVar32 = DAT_1826716d8;
  *(byte *)(DAT_182671560 + -0xc41) =
       *(byte *)((ulonglong)DAT_1826716d8 ^ *(ulonglong *)(DAT_182671560 + -0x4f0)) ^
       (byte)DAT_182671694;
  lVar8 = DAT_182671560;
  uVar14 = (ulonglong)uVar21;
  uVar19 = (*(uint *)(DAT_182671560 - ((ulonglong)uVar27 ^ 0x4c807a52)) ^ _DAT_1826716c0) + uVar19;
  puVar2 = (ulonglong *)(DAT_182671560 + -0xc08);
  *(uint *)(DAT_182671560 + -0x874) = uVar19 ^ uVar23;
  *(ulonglong *)(lVar8 + -0x688) = CONCAT44(uVar37,uVar21) ^ 0xbddfbd791615cf93 | *puVar2;
  *(uint *)(lVar8 + -0x344) = uVar19 * 0x2000 ^ DAT_182671858;
  uVar19 = _DAT_1826715e0;
  lVar9 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0x8a25ea78)) =
       (*(uint *)(lVar8 - ((ulonglong)uVar31 ^ 0xf68fd8ba)) ^ uVar23) >> 0x13 ^ DAT_182671744;
  uVar11 = DAT_18267157c;
  uVar24 = (ulonglong)DAT_18267157c;
  *(uint *)(lVar9 + -0x844) =
       (*(uint *)(lVar9 - ((ulonglong)uVar12 ^ 0x1f613002)) ^ DAT_182671744 |
       *(uint *)(lVar9 + -0x344) ^ DAT_182671858) ^ DAT_18267183c;
  uVar23 = DAT_182671568;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar38 ^ 0xbb04a213)) =
       (CONCAT44(DAT_182671568,uVar11) ^ 0x338219472aaf7655) <<
       ((byte)*(undefined8 *)(lVar9 + -0x548) & 0x3f);
  puVar3 = (uint *)(lVar9 + -0x27c);
  uVar16 = (*(uint *)(lVar9 + -0x3c8) ^ DAT_182671624) + (*puVar3 ^ DAT_182671620) ^ DAT_18267172c;
  *(uint *)(lVar9 + -0x47c) = uVar16;
  *(uint *)(lVar9 + -0x8c) = uVar16 ^ uVar19 ^ DAT_18267172c;
  uVar16 = DAT_182671574;
  uVar18 = (ulonglong)DAT_182671574;
  *(uint *)(lVar9 + -0x754) =
       *(uint *)(lVar9 - ((ulonglong)uVar27 ^ 0x4c807b72)) ^ DAT_18267165c ^ DAT_18267183c;
  *(ulonglong *)(lVar9 + -0x5c8) = CONCAT44(uVar16,uVar31) ^ 0xfdc77f9ffc7ef9cf | 0xbd815219cc7c08cf
  ;
  uVar33 = DAT_182671700;
  *(uint *)(lVar9 - (uVar17 ^ 0xfffffafb)) =
       *(uint *)(lVar9 - ((ulonglong)uVar37 ^ 0xa21248c)) ^ DAT_182671700 ^ uVar19;
  uVar20 = DAT_1826715c8 ^ DAT_18267165c;
  uVar28 = (ulonglong)DAT_1826717d0;
  *(uint *)(lVar9 + -0x3d4) = (uVar19 ^ *(uint *)(lVar9 + -0x8c)) + (DAT_18267157c ^ 0xa97ff048);
  uVar19 = DAT_182671674;
  *(uint *)(lVar9 - ((ulonglong)uVar38 ^ 0xbb04a943)) = uVar20 ^ *(uint *)(lVar9 + -0x754);
  *(ulonglong *)(lVar9 + -0x800) =
       *(ulonglong *)(lVar9 - (uVar18 ^ 0xe09ec905)) | *(ulonglong *)(lVar9 - (uVar17 ^ 0xfffffab7))
  ;
  puVar4 = (uint *)(lVar9 + -0x328);
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x1f613f62)) =
       *(longlong *)(lVar9 - (uVar14 ^ 0x8c557dcc)) + (CONCAT44(uVar37,uVar11) ^ 0xa2124006a3a5b85)
       + (CONCAT44(uVar31,uVar22) ^ 0xf68fd0ce8a25ec00) * 0x20 ^ uVar28;
  bVar7 = (byte)DAT_182671888;
  bVar13 = *(byte *)(uVar28 ^ *(ulonglong *)(lVar9 + -0x918)) ^ (byte)DAT_182671888 ^
           (byte)DAT_182671694;
  *(byte *)(lVar9 + -0x41) = bVar13;
  *puVar4 = (bVar13 ^ bVar7) ^ uVar19;
  *(uint *)(lVar9 + -0x968) =
       (*(uint *)(lVar9 + -0x910) ^ DAT_1826715c8) + (uVar26 ^ 0x965a751) ^ DAT_182671778;
  *(uint *)(lVar9 - ((ulonglong)DAT_182671568 ^ 0x13b3a4ba)) =
       (*(uint *)(lVar9 - ((ulonglong)DAT_1826715a4 ^ 0xbb04a37b)) ^ uVar19) <<
       (((byte)DAT_18267156c ^ 0x2d) & 0x1f) ^ DAT_182671748;
  uVar20 = (*(uint *)(lVar9 + -0x968) ^ DAT_182671778) - (*puVar1 ^ DAT_182671748);
  *(uint *)(lVar9 + -0x964) = uVar20 ^ uVar32;
  *(uint *)(lVar9 - ((ulonglong)uVar16 ^ 0xe09ec1f1)) =
       uVar20 * (uVar33 ^ *(uint *)(lVar9 + -0x504)) ^ DAT_18267168c;
  puVar5 = (uint *)(lVar9 + -0x678);
  uVar19 = (*puVar4 ^ uVar19) * (uVar38 ^ 0xbb04a044) ^ DAT_182671604;
  *(uint *)(lVar9 + -0x344) = uVar19;
  uVar19 = (*(uint *)(lVar9 + -0x874) ^ DAT_18267168c) + (uVar19 ^ DAT_182671604) ^ DAT_1826715ec;
  *puVar5 = uVar19;
  uVar19 = uVar19 ^ DAT_1826715ec;
  uVar32 = uVar19 >> ((byte)DAT_1826715a4 & 0x1f) ^ DAT_182671848;
  *puVar3 = uVar19 << (((byte)uVar22 ^ 0xd) & 0x1f) ^ DAT_182671714;
  *(uint *)(lVar9 + -0x47c) = uVar32;
  *(uint *)(lVar9 - (uVar18 ^ 0xe09ec1c1)) =
       (*(uint *)(lVar9 - (uVar14 ^ 0x8c557740)) ^ DAT_182671714 | uVar32 ^ DAT_182671848) ^
       DAT_18267179c;
  uVar37 = DAT_182671850;
  lVar8 = DAT_182671560;
  *(uint *)(lVar9 + -0x8c) =
       (*(uint *)(lVar9 - ((ulonglong)uVar31 ^ 0xf68fd5ca)) ^ uVar33) +
       (*(uint *)(lVar9 - ((ulonglong)uVar16 ^ 0xe09eca4d)) ^ DAT_182671624) ^ DAT_1826716dc;
  *(uint *)(lVar9 - (uVar36 ^ 0x8a25efd4)) =
       *(uint *)(lVar9 - ((ulonglong)uVar27 ^ 0x4c8073ba)) ^ _DAT_182671610 ^ DAT_1826716dc;
  *(uint *)(lVar9 - (uVar17 ^ 0xfffff8ab)) =
       *(uint *)(lVar9 + -0x844) ^ DAT_182671774 ^ DAT_18267179c;
  uVar32 = DAT_1826715b0;
  *(uint *)(lVar9 + -0x910) = *(uint *)(lVar9 + -0x3d4) ^ uVar37 ^ _DAT_182671610;
  uVar19 = DAT_182671578;
  uVar27 = DAT_18267181c ^ DAT_182671774 ^ *(uint *)(lVar9 + -0x754);
  uVar35 = CONCAT44(DAT_182671730,DAT_182671730) ^ *(ulonglong *)(lVar9 + -0x610) |
           CONCAT44(uVar12,uVar16) ^ 0x1f41d49e819498d1;
  uVar18 = (ulonglong)_DAT_182671868;
  uVar28 = CONCAT44(uVar22,DAT_182671578);
  *(uint *)(lVar9 + -0x968) = uVar27;
  *(ulonglong *)(lVar9 + -0x400) = uVar35;
  bVar7 = (byte)DAT_182671650;
  pbVar29 = (byte *)((uVar28 ^ 0x8a25ec000a212400) * 0x20 +
                     (CONCAT44(uVar26,uVar32) ^ 0x9281846abb2587) + *(longlong *)(lVar8 + -0x8f0));
  *(ulonglong *)(lVar8 + -0xc80) = (ulonglong)pbVar29 ^ uVar18;
  *(byte *)(lVar8 + -0xc41) = *pbVar29 ^ bVar7 ^ (byte)DAT_182671694;
  uVar33 = DAT_182671654;
  uVar12 = DAT_182671588;
  uVar27 = uVar27 ^ DAT_18267181c;
  uVar20 = (*(byte *)(lVar8 - ((ulonglong)DAT_182671598 ^ 0x930bcd7f)) ^ bVar7) ^ DAT_182671654;
  *(ulonglong *)(lVar8 + -0x510) = uVar35 << 0x19;
  uVar32 = DAT_182671594;
  lVar8 = DAT_182671560;
  *puVar1 = uVar20;
  lVar9 = DAT_182671560;
  *(uint *)(lVar8 - ((ulonglong)uVar12 ^ 0x92182a8c)) =
       uVar27 + (uVar32 ^ 0x90616d1b) ^ DAT_1826716bc;
  *(uint *)(lVar8 - ((ulonglong)uVar19 ^ 0xa212728)) = (*puVar1 ^ uVar33) << 0x11 ^ DAT_1826717b8;
  *(uint *)(lVar8 + -0x874) =
       (*(uint *)(lVar8 + -0x964) ^ DAT_1826716bc) - (*puVar4 ^ DAT_1826717b8) ^ DAT_182671894;
  *(uint *)(lVar8 - ((ulonglong)DAT_182671568 ^ 0x13b3a48a)) =
       (*(uint *)(lVar8 - ((ulonglong)DAT_1826715a4 ^ 0xbb04a827)) ^ DAT_182671894) *
       (*(uint *)(lVar8 + -0x910) ^ uVar37) ^ DAT_182671890;
  uVar20 = DAT_1826716f0;
  uVar19 = (*puVar1 ^ uVar33) * 2 ^ DAT_1826717e4;
  *puVar5 = uVar19;
  uVar19 = (*(uint *)(lVar8 - (uVar17 ^ 0xfffffcbb)) ^ DAT_182671890) + (uVar19 ^ DAT_1826717e4);
  *puVar3 = uVar19 ^ uVar20;
  uVar33 = DAT_1826717c8;
  puVar39 = (uint *)(lVar9 - (uVar34 ^ 0x1f613206));
  bVar13 = (byte)DAT_182671568 ^ 0xdd;
  *puVar39 = uVar19 << (((byte)DAT_18267158c ^ 0x77) & 0x1f) ^ DAT_182671648;
  uVar12 = DAT_182671584;
  uVar19 = DAT_182671578;
  lVar8 = DAT_182671560;
  uVar20 = (*puVar3 ^ uVar20) >> (bVar13 & 0x1f);
  uVar18 = (ulonglong)DAT_182671584;
  uVar27 = (uVar20 | *(uint *)(DAT_182671560 + -0x47c) ^ DAT_182671648) ^ DAT_182671880;
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       *(ulonglong *)(DAT_182671560 + -0x9e8) >> (((byte)uVar22 ^ 9) & 0x3f);
  *(uint *)(lVar8 + -0x504) = uVar20 ^ uVar33;
  *(uint *)(lVar8 + -0x8c) = uVar27;
  uVar17 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671588 ^ 0x92182960)) =
       (CONCAT44(uVar21,uVar19) ^ 0x33117a7f9abd4f24) +
       (CONCAT44(uVar16,uVar11) ^ 0x67140c86a149588b);
  uVar21 = (*(uint *)(lVar8 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar8 + -0x910) ^ uVar37) ^
           _DAT_182671618;
  *(uint *)(lVar8 + -0x844) = uVar21;
  *(uint *)(lVar8 - (uVar17 ^ 0xfffffc2b)) = uVar21 ^ DAT_18267182c ^ _DAT_182671618;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_1826715a4 ^ 0xbb04a0f3)) =
       (CONCAT44(uVar11,uVar12) ^ 0xa8bb5dd6cd1d2ac7) << (((byte)uVar38 ^ 0x47) & 0x3f);
  uVar12 = DAT_182671794;
  uVar16 = DAT_182671614 ^ DAT_182671880 ^ *(uint *)(lVar8 + -0x8c);
  uVar17 = (ulonglong)DAT_182671778;
  *(uint *)(lVar8 + -0x968) = DAT_182671794 ^ DAT_18267182c ^ *(uint *)(lVar8 + -0x3d4);
  uVar21 = DAT_182671658 ^ DAT_182671614;
  *(uint *)(lVar8 + -0x754) = uVar16;
  *(uint *)(lVar8 + -0x964) = uVar21 ^ uVar16;
  bVar7 = (byte)DAT_1826717f8;
  uVar33 = DAT_182671568 * DAT_18267156c;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar38 ^ 0xbb04ad73)) =
       (CONCAT44(uVar23,uVar31) ^ 0x13b3a7cef68fd0ce) * 0x20 +
       *(longlong *)(lVar8 - (uVar24 ^ 0x6a3a5362)) + 0xd ^ uVar17;
  uVar19 = DAT_182671698;
  bVar15 = *(byte *)(*(ulonglong *)(lVar8 + -0xd20) ^ uVar17) ^ (byte)DAT_182671694;
  DAT_1826715a4 = uVar33;
  *(byte *)(lVar8 + -0x41) = bVar15 ^ bVar7;
  *puVar4 = bVar15 ^ uVar19;
  lVar8 = DAT_182671560;
  *(longlong *)(DAT_182671560 - ((ulonglong)uVar33 ^ 0x19327b58)) =
       *(longlong *)(DAT_182671560 + -0x638) << (((byte)DAT_182671568 ^ 0xc5) & 0x3f);
  uVar16 = DAT_18267164c;
  uVar22 = (*(uint *)(lVar8 + -0x964) ^ DAT_182671658) + (DAT_182671568 ^ 0x1a44811b) ^
           DAT_18267168c;
  *(uint *)(lVar8 + -0x874) = uVar22;
  uVar22 = uVar22 ^ DAT_18267168c;
  uVar21 = *puVar4;
  *puVar1 = (uVar19 ^ uVar21) * 0x20000 ^ uVar16;
  *(uint *)(DAT_182671560 + -0x344) = uVar22 + (uVar19 ^ uVar21) * -0x20000 ^ DAT_1826717d0;
  uVar16 = DAT_1826718d0;
  lVar8 = DAT_182671560;
  uVar21 = *puVar4;
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (CONCAT44(uVar23,uVar33) ^ 0xe77b95f0375f355) >>
       ((byte)*(undefined8 *)(DAT_182671560 - ((ulonglong)DAT_182671568 ^ 0x13b3a3ce)) & 0x3f);
  uVar19 = (uVar19 ^ uVar21) * (DAT_18267156c ^ 0x8c557531);
  uVar21 = (*(uint *)(lVar8 - (uVar14 ^ 0x8c557678)) ^ DAT_1826717d0) *
           (*(uint *)(lVar8 + -0x968) ^ uVar12) ^ DAT_182671638;
  *puVar5 = uVar21;
  uVar21 = uVar21 ^ DAT_182671638;
  *puVar3 = uVar19 ^ uVar16;
  uVar23 = DAT_182671678;
  uVar19 = uVar19 + uVar21;
  puVar30 = (uint *)(DAT_182671560 - (uVar14 ^ 0x8c557038));
  *(uint *)(DAT_182671560 + -0x47c) = uVar19 ^ DAT_182671678;
  uVar21 = DAT_18267157c;
  lVar8 = DAT_182671560;
  *puVar30 = uVar19 << (((byte)uVar33 ^ 0x45) & 0x1f) ^ DAT_1826718c0;
  uVar22 = uVar21 << 0x10 | uVar21 >> 0x10;
  uVar17 = (ulonglong)DAT_182671568;
  *(uint *)(lVar8 + -0x910) =
       (*(uint *)(lVar8 + -0x47c) ^ uVar23) >> (bVar13 & 0x1f) ^ DAT_1826715b8;
  uVar16 = (*(uint *)(lVar8 - (uVar17 ^ 0x13b3aede)) ^ DAT_1826715b8 | *puVar30 ^ DAT_1826718c0) ^
           DAT_18267162c;
  uVar23 = (*(uint *)(lVar8 + -0x968) ^ uVar12) + (*(uint *)(lVar8 + -0x3c8) ^ DAT_182671624) ^
           DAT_182671644;
  uVar21 = _DAT_18267188c ^ DAT_182671644;
  DAT_182671598 = uVar22;
  *(uint *)(lVar8 + -0x8c) = uVar23;
  *(uint *)(lVar8 + -0x844) = uVar16;
  uVar16 = uVar16 ^ DAT_182671844 ^ DAT_18267162c;
  *(uint *)(lVar8 + -0x3d4) = uVar21 ^ uVar23;
  *(uint *)(lVar8 - (uVar24 ^ 0x6a3a5cc6)) = uVar16;
  uVar16 = DAT_182671760;
  *(uint *)(lVar8 + -0x964) =
       *(uint *)(lVar8 - ((ulonglong)uVar22 ^ 0x5b9269ee)) ^ _DAT_18267188c ^ DAT_182671624;
  uVar21 = DAT_1826717ac;
  uVar17 = (ulonglong)DAT_1826717c4;
  *(uint *)(lVar8 + -0x874) = DAT_1826717ac ^ DAT_182671844 ^ *(uint *)(lVar8 + -0x754);
  lVar9 = DAT_182671560;
  pbVar29 = (byte *)((CONCAT44(uVar22,uVar11) ^ 0x5b926a3a6a3a5b92) * 0x20 +
                     (CONCAT44(uVar11,uVar11) ^ 0x6a3a5b926a3a5b8a) + *(longlong *)(lVar8 + -0x8f0))
  ;
  *(ulonglong *)(lVar8 + -0x4f0) = (ulonglong)pbVar29 ^ uVar17;
  bVar7 = (byte)DAT_182671710;
  lVar8 = DAT_182671560;
  *(byte *)(lVar9 - ((ulonglong)uVar22 ^ 0x5b92667b)) =
       *pbVar29 ^ (byte)DAT_182671694 ^ (byte)DAT_182671710;
  lVar9 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0x8a25ea00)) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar22 ^ 0x5b9261ca)) ^
       CONCAT44(DAT_182671864,DAT_182671864) | CONCAT44(uVar22,uVar22) ^ 0xdb8fa0158f62a6f0;
  *(uint *)(lVar9 - (uVar24 ^ 0x6a3a58e6)) = (*(byte *)(lVar9 + -0xc41) ^ bVar7) ^ uVar16;
  bVar7 = (byte)DAT_18267157c;
  uVar23 = (uVar21 ^ *(uint *)(lVar9 + -0x874)) + (DAT_182671574 ^ 0xe969ef50) ^ DAT_1826715f4;
  *(uint *)(lVar9 + -0x344) = uVar23;
  uVar12 = DAT_1826718cc;
  uVar23 = uVar23 ^ DAT_1826715f4;
  uVar21 = (uVar16 ^ *puVar1) << ((bVar7 ^ 0x83) & 0x1f);
  *puVar4 = uVar21 ^ DAT_1826716fc;
  lVar8 = DAT_182671560;
  uVar21 = uVar23 - uVar21 ^ DAT_1826715bc;
  *puVar5 = uVar21;
  uVar19 = DAT_1826717e8;
  lVar9 = DAT_182671560;
  *(uint *)(lVar8 - (uVar24 ^ 0x6a3a59ee)) =
       (uVar21 ^ DAT_1826715bc) * (*(uint *)(lVar8 + -0x964) ^ DAT_182671624) ^ uVar12;
  uVar23 = DAT_182671578;
  uVar21 = *puVar3;
  *(uint *)(lVar9 + -0x47c) = (uVar16 ^ *puVar1) * (uVar22 ^ 0x5b926a22) ^ uVar19;
  uVar16 = _DAT_1826716c0;
  uVar21 = (uVar19 ^ *puVar39) + (uVar12 ^ uVar21);
  *(uint *)(lVar9 + -0x504) = uVar21 ^ _DAT_1826716c0;
  uVar17 = (ulonglong)DAT_1826715a8;
  *(uint *)(lVar9 - ((ulonglong)uVar33 ^ 0x19327358)) =
       uVar21 << (((byte)uVar23 ^ 0xd) & 0x1f) ^ DAT_18267179c;
  uVar21 = *(uint *)(lVar9 + -0x910) ^ DAT_18267179c;
  uVar16 = (uVar16 ^ *(uint *)(lVar9 + -0x504)) >> 0x13;
  uVar19 = uVar16 ^ DAT_18267178c;
  *(uint *)(lVar9 + -0x968) = (uVar23 ^ 0x83564a7e) + 0x7e2cdc21;
  *(uint *)(lVar9 + -0x8c) = uVar19;
  *(uint *)(lVar9 - (uVar17 ^ 0xfffff7bb)) = (uVar16 | uVar21) ^ DAT_182671784;
  uVar23 = DAT_182671630;
  *(uint *)(lVar9 - ((ulonglong)uVar33 ^ 0x1932799c)) =
       (*(uint *)(lVar9 - ((ulonglong)uVar31 ^ 0xf68fd9aa)) ^ DAT_182671624) +
       (*(uint *)(lVar9 - ((ulonglong)DAT_1826715b0 ^ 0x6abb264d)) ^ DAT_182671624) ^ DAT_182671690;
  uVar21 = DAT_1826717b4 ^ DAT_182671880;
  *(uint *)(lVar9 - (uVar14 ^ 0x8c557268)) =
       DAT_1826717b4 ^ DAT_182671690 ^ *(uint *)(lVar9 + -0x3d4);
  uVar14 = CONCAT44(DAT_182671588,uVar26);
  *(uint *)(lVar9 + -0x344) = uVar21 ^ *(uint *)(lVar9 + -0x754);
  uVar21 = *(uint *)(lVar9 + -0x844) ^ DAT_182671784 ^ DAT_182671604;
  uVar17 = (ulonglong)DAT_182671660;
  *(ulonglong *)(lVar9 + -0xa60) =
       (uVar14 ^ 0x951bdd86b2b98a5c) + (CONCAT44(uVar10,DAT_182671568) ^ 0xa0b542c5c4bc76e2);
  *(uint *)(lVar9 + -0x874) = uVar21;
  *puVar4 = uVar23 ^ uVar21 ^ DAT_182671604;
  bVar7 = (byte)DAT_18267170c;
  pbVar29 = (byte *)((CONCAT44(DAT_18267158c,uVar33) ^ 0x1f61367a19327a48) * 0x20 +
                     (CONCAT44(uVar11,DAT_18267158c) ^ 0x6a3a5b921f613679) +
                    *(longlong *)(lVar9 + -0x8f0));
  *(ulonglong *)(lVar9 + -0x918) = (ulonglong)pbVar29 ^ uVar17;
  bVar13 = *pbVar29 ^ (byte)DAT_182671694;
  *(byte *)(lVar9 + -0x41) = bVar13 ^ bVar7;
  uVar10 = DAT_182671734;
  *(uint *)(lVar9 - (uVar18 ^ 0x13aca2b2)) = bVar13 ^ DAT_182671734;
  uVar21 = *puVar5;
  *puVar1 = (uVar23 ^ *puVar4) + (uVar32 ^ 0x90616d1b) ^ DAT_18267173c;
  *puVar3 = (uVar10 ^ uVar21) << 0x11 ^ DAT_1826717f4;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar6 ^ uVar38) * 4) = uVar25;
  return;
}



############ FUN_ 180ea67a0 size=5170 ############

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

void FUN_180ea67a0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  byte bVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  
  uVar9 = DAT_1826718b0;
  uVar11 = DAT_1826715a0;
  uVar18 = DAT_18267159c;
  lVar4 = DAT_182671560;
  uVar30 = (ulonglong)DAT_18267159c;
  uVar20 = (ulonglong)DAT_1826715a0;
  uVar34 = DAT_1826715a0 & DAT_18267159c;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_182671b98);
  uVar14 = *(uint *)(&DAT_182611e80 + DAT_182671b98) ^ DAT_18267159c;
  puVar1 = (ulonglong *)(DAT_182671560 + -0xa88);
  uVar25 = *(ulonglong *)(DAT_182671560 + -0x898);
  bVar3 = (byte)DAT_1826715a0;
  uVar35 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar29 = (CONCAT44(DAT_182671884,DAT_182671884) ^ *puVar1) << ((bVar3 ^ 0x36) & 0x3f);
  uVar31 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  uVar21 = CONCAT44(DAT_182671880,DAT_182671880);
  puVar19 = (ulonglong *)(DAT_182671560 + -0x318);
  uVar24 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar29 ^ uVar35;
  uVar8 = DAT_1826715cc;
  uVar29 = uVar21 ^ *puVar19 | uVar29;
  uVar38 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x670) = uVar29 ^ uVar31;
  uVar28 = (ulonglong)uVar34;
  uVar29 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x2a0)) - uVar29 ^ uVar38;
  uVar37 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar29;
  uVar9 = DAT_18267181c;
  uVar36 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar21 = CONCAT44(uVar8,uVar8) ^ uVar25 ^ uVar36 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0x240);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar21;
  lVar4 = DAT_182671560;
  bVar17 = (byte)uVar34;
  uVar32 = (uVar21 ^ uVar37) >> ((bVar17 ^ 0xc) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar32 ^ CONCAT44(uVar9,uVar9);
  uVar21 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xf9fb9f8c)) ^ uVar37) << 0x34;
  uVar24 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar4 + -0x110) = uVar21 ^ CONCAT44(DAT_182671750,DAT_182671750);
  uVar8 = DAT_182671730;
  uVar32 = uVar32 | uVar21;
  *(uint *)(lVar4 + -0x844) = (uVar18 ^ 0x59b27c5f) + *(int *)(lVar4 + -0x374);
  lVar5 = DAT_182671560;
  uVar21 = uVar32 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar21;
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar33 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar5 + -0x318) = (uVar25 ^ uVar36) - uVar32 ^ uVar39;
  uVar8 = DAT_18267173c;
  uVar21 = uVar29 ^ uVar33 ^ uVar24 ^ uVar38 ^ uVar21;
  *(ulonglong *)(lVar5 + -0x2a0) = uVar21;
  uVar9 = _DAT_18267188c;
  uVar29 = (uVar33 ^ uVar21) >> ((bVar3 ^ 0x3d) & 0x3f);
  *(ulonglong *)(lVar5 + -0x240) = uVar29 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_1826715c8;
  uVar25 = (uVar21 ^ uVar33) << ((bVar17 ^ 0x27) & 0x3f);
  *puVar1 = uVar25 ^ CONCAT44(uVar9,uVar9);
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x7f660838)) = (uVar29 | uVar25) ^ uVar21;
  uVar9 = DAT_1826717b8;
  uVar8 = DAT_182671738;
  uVar25 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x7f6605e0)) ^ uVar38) -
           (CONCAT44(uVar11,uVar18) ^ 0xbdb0f0ee248bef04);
  *(ulonglong *)(lVar5 + -0x110) = uVar25 ^ CONCAT44(DAT_1826717b8,DAT_1826717b8);
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x79620e98)) =
       uVar25 - (*(ulonglong *)(lVar5 - (uVar20 ^ 0xf9fb910c)) ^ uVar21) ^ uVar29;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar29 ^ *(ulonglong *)(lVar5 + -0x898) | 0x459bcf5bc2368468;
  uVar33 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x7f660cb0)) =
       (*(ulonglong *)(lVar5 + -0x628) ^ uVar21) - (CONCAT44(uVar34,uVar18) ^ 0x297b16b988f24012) ^
       uVar33;
  uVar8 = DAT_18267177c;
  uVar15 = DAT_182671590;
  lVar4 = DAT_182671560;
  uVar32 = CONCAT44(DAT_182671760,DAT_182671760);
  uVar21 = (ulonglong)DAT_182671590;
  puVar27 = (ulonglong *)(lVar5 - (uVar20 ^ 0xf9fb9564));
  uVar25 = *(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x7f660d08)) ^ *(ulonglong *)(lVar5 + -0x670)
           ^ uVar32 ^ uVar39 ^ uVar31;
  bVar22 = (byte)DAT_182671590;
  *puVar27 = uVar25;
  uVar24 = CONCAT44(uVar8,uVar8);
  *puVar1 = (uVar25 ^ uVar32) >> ((bVar22 ^ 0xd7) & 0x3f) ^ uVar24;
  uVar6 = DAT_1826715a4;
  pbVar26 = (byte *)(lVar4 - (uVar20 ^ 0xf9fb9634));
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (*(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x79620ea8)) ^ uVar37) <<
       ((*pbVar26 ^ (byte)uVar9) & 0x3f);
  lVar4 = DAT_182671560;
  uVar25 = (uVar32 ^ *(ulonglong *)(DAT_182671560 + -0x240)) << ((bVar3 ^ 0x3b) & 0x3f);
  uVar32 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar25 ^ CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x79620028)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xacee76fe)) ^ uVar24 | uVar25) ^ uVar32;
  uVar9 = DAT_18267160c;
  uVar8 = DAT_182671588;
  lVar4 = DAT_182671560;
  uVar25 = (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar39) -
           (CONCAT44(uVar6,uVar15) ^ 0x94a7b1961426814d);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar25 ^ CONCAT44(DAT_182671734,DAT_182671734);
  uVar10 = DAT_182671870;
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar25 = uVar25 - (*(ulonglong *)(lVar4 + -0x628) ^ uVar32);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar25 ^ uVar39;
  uVar15 = DAT_1826715a8;
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar34,uVar6) ^ 0xadec8bd6548e35a7) + (*(ulonglong *)(lVar4 + -0x628) ^ uVar32) ^
       uVar24;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0x93a4cd70)) = uVar25 | 0x94018fc8c9c8d85e;
  uVar15 = DAT_182671724;
  puVar19 = (ulonglong *)(lVar4 - (uVar21 ^ 0x409343e6));
  uVar32 = CONCAT44(DAT_182671724,DAT_182671724);
  puVar23 = (ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x7f660c50));
  *puVar23 = *puVar19 ^ uVar32 ^ uVar24 ^ uVar29 ^ *(ulonglong *)(lVar4 + -0x898);
  uVar21 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *puVar1 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x79620440)) >> 5 ^
            ((ulonglong)uVar15 << 0x1b | (ulonglong)(uVar15 >> 5)) ^ uVar21;
  lVar4 = DAT_182671560;
  uVar25 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x796200d0)) =
       (uVar32 ^ *puVar27) << (((byte)uVar6 ^ 0x4d) & 0x3f) ^ uVar25;
  uVar12 = DAT_1826715a8;
  uVar38 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar25 = *(ulonglong *)(lVar4 + -0x6d0) ^ uVar25 | uVar21 ^ *puVar1;
  uVar24 = (ulonglong)DAT_1826715a8;
  uVar32 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar4 + -0x318) = uVar25 ^ uVar38;
  uVar10 = DAT_182671594;
  uVar16 = DAT_182671590;
  *(ulonglong *)(lVar4 + -0x670) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x7f660688)) ^ uVar29) - uVar25 ^ uVar32;
  *(longlong *)(lVar4 + -0x628) = 0x288a254d34027759 << ((bVar17 ^ 0x1c) & 0x3f);
  uVar7 = DAT_182671578;
  uVar36 = CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar21 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar4 + -0xbf0) =
       *(ulonglong *)(lVar4 - (uVar24 ^ 0x93a4c420)) ^ uVar36 ^ uVar39 ^ uVar33 ^
       *(ulonglong *)(lVar4 + -0x8a8);
  uVar13 = DAT_182671818;
  uVar15 = DAT_18267157c;
  uVar6 = DAT_182671574;
  uVar25 = (ulonglong)DAT_18267157c;
  *(ulonglong *)pbVar26 =
       (CONCAT44(uVar7,uVar12) ^ 0xb540570f18ce1e3e) << (((byte)DAT_182671570 ^ 0x33) & 0x3f);
  uVar9 = DAT_18267158c;
  uVar24 = CONCAT44(uVar13,uVar13);
  *puVar23 = (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xe3d29828)) ^ uVar36) >>
             (((byte)uVar12 ^ 0xa5) & 0x3f) ^ uVar24;
  lVar4 = DAT_182671560;
  uVar29 = (ulonglong)DAT_182671580;
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xea567d6c)) =
       CONCAT44(uVar6,uVar9) ^ CONCAT44(uVar8,uVar7) ^ 0x1b3a3eb4984be309;
  uVar12 = DAT_1826715b4;
  uVar37 = (ulonglong)DAT_1826715b4;
  puVar23 = (ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x40934906));
  uVar30 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar25 = (uVar36 ^ *puVar23) << (((byte)DAT_1826715b4 ^ 0x29) & 0x3f);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar25 ^ uVar30;
  uVar16 = DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0xeeef746e)) =
       uVar25 >> (((byte)uVar15 ^ 0xd2) & 0x3f);
  uVar8 = DAT_182671598;
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x2c261ae2)) ^ uVar30 |
       uVar24 ^ *(ulonglong *)(DAT_182671560 + -0x240)) ^ uVar33;
  uVar25 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a4 ^ 0xacee7ed6)) =
       CONCAT44(uVar9,uVar11) ^ 0xaa5f419915da98cc | CONCAT44(uVar16,uVar8) ^ 0xcd49659297e89b93;
  uVar9 = DAT_182671844;
  *(ulonglong *)(lVar4 + -0x110) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x40934a5e)) ^ uVar39) -
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x628)) ^ uVar31;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar30 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x79620c88)) =
       *(ulonglong *)(lVar4 + -0x670) ^ uVar37 ^ uVar33 ^ uVar32 ^ *(ulonglong *)(lVar4 + -0x628);
  uVar9 = DAT_1826716dc;
  uVar25 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(lVar4 + -0xbf0) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xc6842e54)) ^ uVar37) >> (((byte)uVar15 ^ 0xcf) & 0x3f) ^
       uVar25;
  uVar33 = (uVar37 ^ *puVar1) << 0x29;
  *(ulonglong *)(lVar4 + -0x898) = uVar33 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671700;
  *(ulonglong *)(lVar4 + -0x240) =
       (CONCAT44(uVar18,uVar10) ^ 0xb8474c6c6c13f36) + 0xd85a6d583a153153;
  uVar39 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a4 ^ 0xacee7aa6)) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0x79620df0)) ^ uVar25 | uVar33) ^ uVar39;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (CONCAT44(uVar12,DAT_1826715ac) ^ 0x9c5ce5aeccbfd9af) -
       (CONCAT44(uVar16,uVar34) ^ 0xee39fe8c881daae3);
  uVar16 = DAT_1826715b0;
  uVar28 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar15 = DAT_1826715b0 ^ 0x31bdd11f;
  uVar18 = DAT_182671590 ^ 0x163143fc;
  *(ulonglong *)(lVar4 + -0x8a8) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xd893d493)) ^ uVar32) -
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xc684220c)) ^ uVar39) ^ uVar28;
  *(uint *)(lVar4 + -0x678) = uVar15 - uVar18;
  uVar30 = CONCAT44(DAT_182671800,DAT_182671800);
  puVar27 = (ulonglong *)(lVar4 - (uVar20 ^ 0xf9fb943c));
  uVar25 = *puVar19 ^ uVar30 ^ uVar38 ^ *puVar27 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x628) = uVar25;
  lVar4 = DAT_182671560;
  uVar29 = (uVar25 ^ uVar30) >> (((byte)DAT_182671588 ^ 0x82) & 0x3f);
  uVar25 = (uVar30 ^ uVar25) << (((byte)uVar8 ^ 0x68) & 0x3f);
  *puVar1 = uVar29 ^ CONCAT44(DAT_182671830,DAT_182671830);
  uVar8 = _DAT_182671868;
  uVar33 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar4 + -0x240) = uVar25 ^ uVar33;
  uVar29 = uVar29 | uVar25;
  uVar30 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar29 ^ uVar30;
  uVar25 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671570 ^ 0xef82f49a)) =
       (*(ulonglong *)(lVar4 + -0x110) ^ uVar31) - uVar29 ^ uVar24;
  uVar9 = DAT_1826718a0;
  uVar31 = CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar25 = *(ulonglong *)(lVar4 - (uVar25 ^ 0xe7d6d80c)) ^ uVar31 ^ uVar30 ^ uVar28 ^
           *(ulonglong *)(lVar4 + -0x8a8);
  uVar30 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar29 = (uVar25 ^ uVar31) >> (((byte)DAT_1826715ac ^ 0x7a) & 0x3f);
  bVar17 = (byte)DAT_182671574;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar25;
  *(ulonglong *)(lVar4 + -0x670) = uVar29 ^ uVar30;
  *(uint *)(lVar4 + -0x3d4) = *(uint *)(lVar4 + -0x968) | *(uint *)(lVar4 + -0x8c);
  uVar8 = DAT_182671608;
  uVar31 = (uVar31 ^ uVar25) << ((bVar17 ^ 0xfa) & 0x3f);
  uVar25 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar4 + -0x318) = uVar31 ^ uVar32;
  uVar15 = DAT_1826716a4;
  uVar37 = CONCAT44(uVar8,uVar8);
  uVar30 = (ulonglong)DAT_1826716a4;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x409344de)) = (uVar31 | uVar29) ^ uVar37;
  uVar25 = *(ulonglong *)(lVar4 + -0x8a8);
  *puVar1 = (uVar33 ^ *(ulonglong *)(lVar4 + -0x240)) <<
            (((byte)uVar9 ^ *(byte *)(lVar4 + -0x670)) & 0x3f);
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar29 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar4 + -0x110) =
       (uVar28 ^ uVar25) - (uVar37 ^ *(ulonglong *)(lVar4 + -0x628)) ^ uVar29;
  uVar15 = DAT_182671570;
  *puVar23 = uVar32 ^ *(ulonglong *)(lVar4 + -0x6d0) ^ uVar39 ^ uVar24 ^
             *(ulonglong *)(lVar4 + -0x898);
  uVar25 = CONCAT44(DAT_18267189c,DAT_18267189c);
  bVar17 = (byte)DAT_1826715a8;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xef82fea2)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x2a0017f2)) >> 0x20 ^ uVar30) >> 0x19 ^ uVar25;
  uVar28 = (uVar32 ^ *(ulonglong *)(lVar4 + -0xbf0)) << ((bVar17 ^ 0x87) & 0x3f);
  *(ulonglong *)(lVar4 + -0x318) =
       (uVar37 ^ *(ulonglong *)(lVar4 + -0x628)) -
       (CONCAT44(uVar6,DAT_1826715ac) ^ 0x7bbc384285661e2a);
  uVar8 = DAT_1826716f0;
  uVar6 = DAT_182671578;
  lVar5 = DAT_182671560;
  uVar18 = DAT_182671578 << 0x10 | DAT_182671578 >> 0x10;
  DAT_1826715ac = uVar18;
  *(ulonglong *)(lVar4 + -0x240) = uVar28 ^ CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar9 = DAT_182671720;
  uVar28 = uVar25 ^ *(ulonglong *)(lVar4 + -0x2a0) | uVar28;
  uVar25 = CONCAT44(uVar8,uVar8);
  uVar30 = uVar28 ^ uVar25;
  *(ulonglong *)(lVar4 + -0x670) = uVar30;
  uVar31 = CONCAT44(uVar9,uVar9);
  *puVar1 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x898)) - uVar28 ^ uVar31;
  *(ulonglong *)(lVar5 + -0x8a8) =
       CONCAT44(uVar18,uVar7) ^ 0x6f03c49f72ec8566 | CONCAT44(uVar18,uVar7) ^ 0x86586a79f3a44a3a;
  uVar24 = CONCAT44(DAT_182671688,DAT_182671688);
  uVar28 = uVar24 ^ uVar25 ^ uVar29 ^ uVar30 ^ *(ulonglong *)(lVar5 + -0x110);
  uVar30 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar5 + -0x6d0) = uVar28;
  uVar16 = DAT_182671570 | DAT_1826715a0;
  *(ulonglong *)(lVar5 + -0x318) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x77e4ec86)) ^ uVar24) >>
       (((byte)uVar7 ^ 0xea) & 0x3f) ^ uVar30;
  uVar33 = (ulonglong)uVar16;
  uVar25 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  DAT_182671584 = uVar16;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (uVar24 ^ uVar28) << (((byte)uVar15 ^ 0x30) & 0x3f) ^ uVar25;
  uVar8 = DAT_182671628;
  lVar4 = DAT_182671560;
  puVar19 = (ulonglong *)(DAT_182671560 + -0x110);
  uVar24 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  *(ulonglong *)(DAT_182671560 + -0x240) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0xef82f7f2)) ^ uVar25 |
       uVar30 ^ *puVar27) ^ uVar24;
  uVar25 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xfffbfd86)) =
       (uVar29 ^ *puVar19) - (CONCAT44(uVar16,uVar15) ^ 0xdf0676eb6b498c30) ^ uVar25;
  uVar28 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(lVar4 + -0x898) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x2a0)) - (uVar24 ^ *(ulonglong *)(lVar4 + -0x240)) ^
       uVar28;
  uVar8 = DAT_18267165c;
  *(ulonglong *)(lVar4 + -0x8a8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0xfffbfd66)) ^ uVar24) -
       (CONCAT44(uVar15,uVar11) ^ 0xf13545ff41607a7) ^ CONCAT44(DAT_182671640,DAT_182671640);
  uVar30 = CONCAT44(uVar8,uVar8);
  puVar19 = (ulonglong *)(lVar4 - (uVar33 ^ 0xfffbf956));
  *puVar19 = uVar30 ^ uVar31 ^ uVar37 ^ *puVar1 ^ *(ulonglong *)(lVar4 + -0x628);
  uVar32 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar4 + -0x6d0) =
       (uVar30 ^ *(ulonglong *)(lVar4 + -0x670)) << ((bVar3 ^ 0x34) & 0x3f);
  uVar8 = DAT_18267166c;
  uVar29 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar4 + -0x318) =
       (uVar30 ^ *(ulonglong *)(lVar4 + -0x670)) >> (((byte)(uVar6 >> 0x10) ^ 0x46) & 0x3f) ^ uVar29
  ;
  uVar25 = (uVar30 ^ *(ulonglong *)(lVar4 + -0x670)) << (((byte)uVar7 ^ 0xd4) & 0x3f);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar25 ^ uVar35;
  lVar4 = DAT_182671560;
  uVar24 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671560 + -0x110) = (uVar29 ^ *puVar27 | uVar25) ^ uVar24;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0xf9fb9584)) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xef82f68a)) ^ uVar31) -
       (CONCAT44(uVar16,uVar18) ^ 0xafe2ef9f8070a454) ^ uVar30;
  uVar25 = (uVar30 ^ *(ulonglong *)(lVar5 + -0x2a0)) - (uVar24 ^ *(ulonglong *)(lVar5 + -0x110)) ^
           uVar36;
  *(ulonglong *)(lVar5 + -0x240) = uVar25;
  *(ulonglong *)(lVar5 + -0x628) = CONCAT44(uVar15,uVar16) ^ uVar25 ^ uVar36 ^ 0x23cb84b627f2f95a;
  lVar4 = DAT_182671560;
  uVar25 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar30 = (ulonglong)DAT_1826716a0;
  uVar29 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0xea567134)) =
       (*(ulonglong *)(lVar5 - (uVar21 ^ 0xea5676f4)) ^ uVar24) +
       (CONCAT44(uVar15,uVar16) ^ 0x6df8d1a1b6824bc9) ^ uVar25;
  uVar8 = DAT_182671694;
  *puVar19 = *(ulonglong *)(lVar4 - (uVar33 ^ 0xfffbf9f6)) ^
             *(ulonglong *)(lVar4 - (uVar20 ^ 0xf9fb9fbc)) ^ uVar25 ^ uVar28 ^ uVar29;
  uVar9 = DAT_182671808;
  *(uint *)(lVar4 + -0x27c) =
       (DAT_1826715ac ^ 0x44df9bab) <<
       ((byte)*(undefined4 *)(lVar4 - ((ulonglong)uVar18 ^ 0x77e4e97e)) & 0x1f);
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar30 = *(ulonglong *)(lVar4 + -0x670) >> 0x20 ^ uVar21 ^ uVar30;
  uVar25 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar30;
  *(ulonglong *)(lVar4 + -0x318) = (*(ulonglong *)(lVar4 + -0x670) ^ uVar29) << 0x20 ^ uVar25;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar32 ^ 0xef82ff1a)) ^ uVar25 | uVar30 ^ uVar21) ^
            CONCAT44(uVar8,uVar8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar2 ^ uVar34;
  return;
}



############ FUN_ 180e4bbb0 size=5134 ############

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

void FUN_180e4bbb0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  ulonglong *puVar18;
  byte *pbVar19;
  ulonglong *puVar20;
  byte bVar21;
  byte bVar22;
  uint uVar23;
  uint uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  uint uVar54;
  ulonglong *puVar55;
  uint uVar56;
  ulonglong *puVar57;
  ulonglong uVar58;
  ulonglong *puVar59;
  ulonglong uVar60;
  byte local_148;
  byte local_128;
  byte local_108;
  byte local_f0;
  
  uVar11 = DAT_18267164c;
  uVar9 = DAT_18267159c;
  uVar8 = DAT_182671590;
  uVar7 = DAT_18267156c;
  uVar26 = (ulonglong)DAT_18267156c;
  uVar35 = (ulonglong)DAT_182671590;
  uVar27 = (ulonglong)DAT_18267159c;
  uVar56 = DAT_182671568 ^ DAT_182671590;
  uVar4 = DAT_18267159c;
  if ((DAT_18267156c & 1) == 0) {
    uVar4 = DAT_18267156c;
  }
  uVar12 = DAT_182671594 - DAT_1826715ac;
  uVar30 = DAT_1826715cc & DAT_1826716dc ^ 0xfb71252d;
  uVar23 = DAT_182671754 - DAT_182671600;
  uVar47 = DAT_182671850 & DAT_182671774;
  uVar54 = *(uint *)(&DAT_182611e78 + DAT_182671a88) ^ DAT_182671594;
  uVar13 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar12 ^ 0x66fd32b7) + (longlong)DAT_182671a88) ^
           DAT_1826715ac;
  uVar14 = DAT_182671850 & 0xff;
  DAT_182671850 = ((DAT_182671850 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  puVar17 = (ulonglong *)(DAT_182671560 + -0x2a0);
  uVar44 = CONCAT44(DAT_182671850,DAT_182671850);
  uVar45 = *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x8fddd707)) ^
           CONCAT44(DAT_1826718bc,DAT_1826718bc) | CONCAT44(DAT_182671760,DAT_182671760) ^ *puVar17;
  puVar18 = (ulonglong *)(DAT_182671560 + -0x898);
  DAT_182671574 = uVar56;
  DAT_182671588 = uVar4;
  DAT_182671598 = uVar12;
  *puVar18 = uVar45 ^ uVar44;
  lVar5 = DAT_182671560;
  uVar14 = uVar47 & 0xff;
  DAT_1826717cc = ((uVar47 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar48 = (ulonglong)DAT_1826717cc;
  uVar53 = (ulonglong)uVar4;
  uVar49 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xa3f5fe4f)) =
       (*(ulonglong *)(DAT_182671560 - (uVar53 ^ 0xa3f5f657)) ^ CONCAT44(uVar11,uVar11)) - uVar45 ^
       uVar49;
  uVar15 = DAT_182671774 & 0xff;
  uVar32 = DAT_182671774 << 8;
  DAT_182671774 = ((uVar32 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar37 = (ulonglong)DAT_182671774;
  uVar33 = CONCAT44(DAT_182671774,DAT_182671774);
  uVar46 = CONCAT44(DAT_182671748,DAT_182671748);
  puVar1 = (ulonglong *)(lVar5 + -0x628);
  uVar45 = uVar33 ^ uVar46 ^ uVar44 ^ *puVar1 ^ *puVar18;
  puVar2 = (ulonglong *)(lVar5 + -0x318);
  puVar50 = (ulonglong *)(lVar5 + -0xa88);
  *puVar2 = uVar45;
  uVar14 = DAT_182671578;
  _DAT_1826715dc = uVar30 & 0xff;
  _DAT_1826715dc = ((uVar30 << 8 | _DAT_1826715dc) << 8 | _DAT_1826715dc) << 8 | _DAT_1826715dc;
  uVar52 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  uVar37 = ((ulonglong)((uVar32 & 0xffff | uVar15) >> 7) | uVar37 << 9) ^ uVar45 >> 0x17;
  uVar15 = DAT_1826715cc & 0xff;
  *puVar50 = uVar37 ^ uVar52;
  DAT_1826715cc = ((DAT_1826715cc << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar28 = (ulonglong)DAT_1826715cc;
  uVar29 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  *puVar17 = (uVar33 ^ uVar45) << (((byte)uVar56 ^ 0xa6) & 0x3f) ^ uVar29;
  lVar5 = DAT_182671560;
  uVar15 = DAT_1826716dc & 0xff;
  DAT_1826716dc = ((DAT_1826716dc << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar34 = (ulonglong)DAT_182671568;
  uVar51 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x70232a98)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0xde2b75f)) ^ uVar29 | uVar37) ^ uVar51;
  uVar11 = DAT_1826716b0;
  *puVar18 = (uVar46 ^ *puVar1) - (*(ulonglong *)(lVar5 - (uVar26 ^ 0x8fddd467)) ^ uVar51) ^ uVar29;
  uVar15 = DAT_182671754 & 0xff;
  DAT_182671754 = ((DAT_182671754 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar42 = (ulonglong)DAT_182671754;
  uVar38 = CONCAT44(DAT_182671754,DAT_182671754);
  *puVar2 = *(ulonglong *)(lVar5 - (uVar27 ^ 0xa3f5f907)) ^ CONCAT44(uVar11,uVar11) ^ uVar38 ^
            uVar49 ^ *(ulonglong *)(lVar5 + -0x1f0);
  *puVar50 = 0x4bf37e8c44000000;
  uVar10 = DAT_1826715ac;
  uVar32 = DAT_182671594;
  uVar16 = uVar23 & 0xff;
  uVar23 = uVar23 * 0x100;
  DAT_1826718b0 = ((uVar23 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar43 = (ulonglong)DAT_1826715ac;
  uVar37 = (ulonglong)DAT_1826718b0;
  uVar58 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  bVar21 = (byte)DAT_182671594;
  *puVar1 = (*puVar2 >> 0x20 ^ uVar42) >> 8 ^ uVar58;
  puVar39 = (ulonglong *)(lVar5 - (uVar35 ^ 0xde2b347));
  *puVar39 = (CONCAT44(uVar10,uVar4) ^ 0xbe0f7facaa81c334) << ((bVar21 ^ 0xf7) & 0x3f);
  puVar25 = (ulonglong *)(lVar5 - ((ulonglong)uVar14 ^ 0xb2987988));
  puVar59 = (ulonglong *)(lVar5 + -0x6b8);
  *puVar25 = (uVar38 ^ *puVar2) << 0x18 ^ uVar52;
  uVar15 = DAT_182671600 & 0xff;
  DAT_182671600 = ((DAT_182671600 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar45 = *puVar50;
  uVar46 = (ulonglong)DAT_182671600;
  uVar31 = CONCAT44(DAT_182671600,DAT_182671600);
  uVar40 = uVar58 ^ *puVar1 | uVar52 ^ uVar45;
  uVar41 = uVar40 ^ uVar31;
  *puVar59 = uVar41;
  *puVar2 = *puVar17 ^ uVar29 | 0xec0cce7c58fab519;
  uVar40 = (uVar49 ^ *(ulonglong *)(lVar5 + -0x1f0)) - uVar40 ^ uVar52;
  *puVar1 = uVar40;
  *puVar17 = (uVar52 ^ uVar45) >> (((byte)uVar40 ^ (byte)uVar30) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x8fddde97)) = uVar31 ^ uVar29 ^ uVar33 ^ uVar41 ^ *puVar18;
  uVar45 = (uVar33 ^ *puVar2) >> (((byte)DAT_182671568 ^ 0x44) & 0x3f);
  *(ulonglong *)(lVar5 + -0x1f0) = uVar45 ^ uVar49;
  *puVar50 = (uVar33 ^ *puVar2) << (((byte)uVar8 ^ 0xf3) & 0x3f) ^ uVar51;
  *puVar59 = (*(ulonglong *)(lVar5 - (uVar53 ^ 0xa3f5f537)) ^ uVar51 | uVar45) ^ uVar44;
  *puVar2 = CONCAT44(uVar12,uVar56) ^ 0x23835fd56f8aeefa;
  *puVar50 = (uVar29 ^ *puVar18) - (*(ulonglong *)(lVar5 - (uVar26 ^ 0x8fdddb37)) ^ uVar44) ^ uVar44
  ;
  puVar3 = (ulonglong *)(lVar5 + -0x9e8);
  uVar45 = *puVar3 ^ uVar51 ^ uVar52 ^ uVar38 ^ *puVar1;
  *puVar2 = uVar45;
  *puVar18 = (uVar45 >> 0x20 ^ uVar42) >> 0x19 ^ uVar33;
  uVar15 = DAT_18267158c;
  uVar41 = (ulonglong)DAT_18267158c;
  uVar36 = DAT_18267158c << 0x10 | DAT_18267158c >> 0x10;
  DAT_1826715b4 = uVar36;
  *(ulonglong *)(lVar5 - (uVar41 ^ 0x8affdabf)) = (uVar38 ^ uVar45) << 7 ^ uVar51;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar36 ^ 0xd35789e7)) =
       (*puVar3 ^ uVar51 | uVar33 ^ *puVar18) ^ uVar31;
  puVar55 = (ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0x8affd57f));
  uVar45 = *puVar50;
  *puVar18 = (uVar52 ^ *puVar55) - (uVar31 ^ *puVar2) ^ uVar29;
  pbVar19 = (byte *)(DAT_182671560 - (uVar41 ^ 0x8affd2a7));
  uVar42 = uVar31 ^ uVar58 ^ uVar45 ^ uVar44 ^ *puVar2;
  *puVar3 = uVar42;
  local_148 = (byte)uVar47;
  *puVar1 = (CONCAT44(uVar36,uVar9) ^ 0x29f24a7c81c9c2d0) << ((*pbVar19 ^ local_148) & 0x3f);
  uVar40 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar36 ^ 0xd3578317)) ^ uVar58) >>
           (((byte)(uVar15 >> 0x10) ^ 0xf1) & 0x3f);
  *puVar2 = uVar40 ^ uVar49;
  *puVar1 = CONCAT44(uVar9,uVar36) ^ 0x30af6fb7313874e2 | *puVar17;
  local_f0 = (byte)uVar12;
  *puVar17 = (uVar42 ^ uVar58) << ((local_f0 ^ 0x95) & 0x3f) ^ uVar58;
  lVar5 = DAT_182671560;
  *puVar1 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0xe66a58f8)) ^ uVar58 | uVar40) ^
            uVar52;
  puVar57 = (ulonglong *)(lVar5 - ((ulonglong)uVar32 ^ 0x4d678517));
  *puVar57 = (uVar45 ^ uVar44) - (CONCAT44(uVar36,uVar56) ^ 0xf52c19031c350085) ^ uVar38;
  *puVar17 = (*puVar3 ^ uVar38) - (uVar52 ^ *puVar1) ^ uVar51;
  uVar24 = DAT_1826715c0 & DAT_182671758 ^ 0xb8dfb2ee;
  uVar30 = uVar24 & 0xff;
  DAT_1826715b8 = ((uVar24 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar60 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x70232068)) =
       (uVar52 ^ *puVar1) - (CONCAT44(uVar32,DAT_182671578) ^ 0x195121a0c5417379) ^ uVar60;
  uVar30 = DAT_1826715c0 & 0xff;
  DAT_1826715c0 = ((DAT_1826715c0 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar45 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0x8affd9df)) =
       uVar45 ^ uVar29 ^ uVar44 ^ *puVar59 ^ *puVar18;
  uVar30 = DAT_182671594;
  uVar24 = DAT_182671758 & 0xff;
  DAT_182671758 = ((DAT_182671758 << 8 | uVar24) << 8 | uVar24) << 8 | uVar24;
  uVar42 = CONCAT44(DAT_182671758,DAT_182671758);
  *puVar3 = (uVar45 ^ *puVar50) >> (((byte)uVar56 ^ 0x9f) & 0x3f) ^ uVar42;
  local_128 = (byte)uVar7;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0x4d678ad7)) =
       (CONCAT44(uVar15,uVar8) ^ 0xfd4f9a3ee9734375) >> (local_128 & 0x3f);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0x8affd5ef)) =
       (uVar45 ^ *puVar50) << (((byte)uVar30 ^ 0xcf) & 0x3f) ^ uVar42;
  *puVar1 = uVar45 ^ *puVar50 | CONCAT44(uVar9,uVar36) ^ 0x32a5bc400c7d94cf;
  uVar40 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0x66fd3b4f)) ^ uVar42 |
           *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xe66a5ce0)) ^ uVar42;
  uVar43 = CONCAT44(uVar10,DAT_182671578);
  puVar20 = (ulonglong *)(DAT_182671560 - (uVar34 ^ 0x702329f8));
  *puVar1 = uVar40 ^ uVar60;
  *puVar59 = *puVar20 ^ uVar45 | uVar43 ^ 0xfc3d24d10d165752;
  *puVar3 = (uVar29 ^ *puVar18) - (CONCAT44(uVar14,uVar8) ^ 0x4834f64e4ecf1ab3) ^ uVar45;
  *puVar50 = (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0xa3f5f657)) ^ uVar45) - uVar40 ^ uVar60;
  uVar40 = (CONCAT44(uVar36,DAT_182671568) ^ 0x3e260c0ea99adc57) + uVar40 ^ uVar60;
  *puVar59 = uVar40;
  uVar40 = uVar42 ^ uVar60 ^ uVar40 ^ *puVar17 ^ uVar51;
  *puVar18 = uVar40;
  *(ulonglong *)(DAT_182671560 - (uVar53 ^ 0xa3f5f997)) =
       (uVar42 ^ uVar40) >> ((local_128 ^ 0xaf) & 0x3f) ^ uVar45;
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0xde2bd57)) =
       *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x8fdddc7f)) ^ uVar49 | *puVar3 ^ uVar45;
  uVar26 = (uVar42 ^ *puVar18) << 0x20;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar26 ^ uVar31;
  uVar26 = uVar26 | uVar45 ^ *puVar1;
  *puVar3 = uVar26 ^ uVar42;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       CONCAT44(uVar4,DAT_182671568) ^ 0xc7dac1f6a4732bba | uVar60 ^ *puVar59;
  *puVar18 = (*(ulonglong *)(lVar5 - (uVar41 ^ 0x8affd1f7)) ^ uVar51) - uVar26 ^ uVar45;
  bVar22 = (byte)DAT_182671594;
  uVar26 = uVar44 ^ *puVar2 ^ *puVar50;
  *puVar1 = uVar26;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = (uVar26 ^ uVar44) >> ((bVar22 ^ 0xdf) & 0x3f) ^ uVar38;
  lVar5 = DAT_182671560;
  *puVar59 = CONCAT44(uVar9,uVar7) ^ uVar43 ^ 0xb3925d7ddd6e8e40;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar56 ^ 0x7dc19e27)) =
       (uVar44 ^ uVar26) << ((bVar21 ^ 0xdf) & 0x3f) ^ uVar45;
  uVar26 = uVar45 ^ *(ulonglong *)(lVar5 + -0x8a8) | uVar38 ^ *(ulonglong *)(lVar5 + -0x1f0);
  *puVar17 = uVar26 ^ uVar58;
  *puVar2 = (uVar60 ^ *puVar25) - uVar26 ^ uVar60;
  *puVar39 = CONCAT44(uVar15,uVar4) ^ 0xb0aea09861e578a3 |
             CONCAT44(uVar36,uVar4) ^ 0xa537e05deaa9e1d2;
  *puVar1 = *puVar17 ^ uVar45 ^ uVar58 ^ uVar29 ^ *puVar18;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x70232280)) =
       (*puVar55 >> 0x20 ^ uVar28) >> 0x1a ^ uVar29;
  uVar26 = (uVar29 ^ *puVar1) << 6;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar26 ^ uVar45;
  uVar7 = DAT_182671578;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xa3f5f537)) =
       (uVar29 ^ *(ulonglong *)(lVar5 + -0x1f0) | uVar26) ^ uVar52;
  *puVar59 = CONCAT44(DAT_182671568,uVar9) ^ CONCAT44(uVar32,uVar56) ^ 0xa84b3356182f7dd2;
  uVar26 = *puVar50;
  uVar35 = (uVar45 ^ *puVar18) - (uVar26 ^ uVar52);
  *puVar17 = uVar35 ^ uVar42;
  *puVar1 = CONCAT44(uVar12,uVar7) ^ 0xb148cc0a0098220 | 0x84c9312f5fe631df;
  lVar5 = DAT_182671560;
  uVar53 = uVar42 ^ uVar60 ^ uVar44 ^ *puVar57 ^ *puVar2;
  uVar27 = (uVar53 ^ uVar44) >> ((local_f0 ^ 0xb1) & 0x3f);
  local_108 = (byte)uVar4;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar27 ^ uVar49;
  uVar7 = DAT_18267157c;
  *(ulonglong *)(lVar5 + -0x1f0) = uVar53;
  uVar8 = DAT_182671584;
  uVar27 = (uVar44 ^ uVar53) << ((local_108 ^ 0x95) & 0x3f) | uVar27;
  uVar53 = uVar27 ^ uVar58;
  *puVar1 = uVar53;
  uVar4 = uVar8 + uVar7;
  DAT_1826715a4 = uVar4;
  *puVar3 = (uVar60 ^ *puVar2) - uVar27 ^ uVar51;
  *puVar59 = CONCAT44(uVar7,uVar8) ^ uVar26 ^ uVar52 ^ 0x240608eeaf7cecbf;
  lVar5 = DAT_182671560;
  uVar53 = uVar35 ^ uVar31 ^ uVar58 ^ uVar53;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar53;
  *puVar18 = (uVar53 >> 0x20 ^ uVar46) >> 0xe ^ uVar51;
  lVar6 = DAT_182671560;
  puVar39 = (ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xf21d4918));
  puVar25 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x5a58eec2));
  *puVar39 = (uVar31 ^ uVar53) << (((byte)uVar4 ^ 0x78) & 0x3f) ^ uVar52;
  *puVar1 = 0x3a006613f7d6e080 << (((byte)uVar8 ^ 8) & 0x3f);
  *puVar25 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar4 ^ 0x4c763372)) ^ uVar52 |
             *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x5a58eef2)) ^ uVar51) ^ uVar38;
  *puVar1 = *puVar59 - (uVar51 ^ *puVar18);
  uVar7 = DAT_1826715a8;
  lVar5 = DAT_182671560;
  puVar20 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0x4c7638c2));
  *puVar39 = (*puVar17 ^ uVar42) - (uVar38 ^ *puVar25) ^ uVar33;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xf21d4c28)) =
       (*puVar20 ^ uVar38) + (uVar44 ^ *(ulonglong *)(lVar5 + -0x1f0));
  uVar4 = DAT_1826715a8;
  DAT_182671568 =
       (uVar7 << 0x10 | uVar7 & 0xff00) << 8 | uVar7 >> 8 & 0xff00 | DAT_1826715a8 >> 0x18;
  uVar26 = (ulonglong)DAT_182671568;
  *puVar59 = *puVar3 ^ uVar51 ^ uVar52 ^ uVar58 ^ *puVar50;
  *puVar18 = **(ulonglong **)(lVar5 - (uVar26 ^ 0x40ed835a));
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xe289efe0)) =
       (uVar37 << 0x14 | (ulonglong)(((uVar23 & 0xffff | uVar16) << 8 | uVar16) >> 4)) ^
       *puVar59 >> 0xc ^ uVar49;
  uVar26 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xe289ebf8)) ^ uVar58) << 0x34;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar26 ^ uVar42;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xe289eb68)) =
       (uVar26 | *puVar17 ^ uVar49) ^ uVar58;
  *puVar50 = (*puVar3 ^ uVar51) - (uVar58 ^ *puVar1) ^ uVar38;
  uVar26 = uVar58 ^ uVar33 ^ uVar49 ^ *puVar1 ^ *puVar2;
  *puVar18 = uVar26;
  *puVar59 = ((ulonglong)((uVar47 << 8 & 0xffff) >> 9) | uVar48 << 7) ^ uVar26 >> 0x19 ^ uVar52;
  *puVar17 = (uVar49 ^ uVar26) << (((byte)(uVar4 >> 0x18) ^ 0xc5) & 0x3f) ^ uVar45;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar54;
  return;
}



############ FUN_ 180ecce30 size=4881 ############

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

void FUN_180ecce30(void)

{
  int *piVar1;
  byte bVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res18;
  byte local_d8;
  
  uVar3 = DAT_18267159c;
  uVar8 = DAT_182671598;
  uVar7 = DAT_182671580;
  uVar6 = DAT_182671574;
  lVar4 = DAT_182671560;
  uVar24 = (ulonglong)DAT_182671574;
  uVar22 = (ulonglong)DAT_182671598;
  uVar31 = (ulonglong)DAT_18267159c;
  uVar13 = DAT_182671580 * DAT_182671574;
  uVar18 = (ulonglong)uVar13;
  uVar27 = DAT_182671598 - DAT_18267159c;
  uVar14 = *(uint *)(&DAT_182611e70 + (uVar18 ^ 0x6efd9d44) + (longlong)DAT_182671c08) ^
           DAT_182671574;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671c08) ^ DAT_182671580;
  uVar32 = CONCAT44(DAT_182671654,DAT_182671654) ^ *(ulonglong *)(DAT_182671560 + -0xc08) |
           CONCAT44(DAT_1826717c8,DAT_1826717c8) ^ *(ulonglong *)(DAT_182671560 + -0x400);
  uVar35 = CONCAT44(DAT_18267167c,DAT_18267167c);
  DAT_182671588 = uVar27;
  DAT_1826715a0 = uVar13;
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar32 ^ CONCAT44(DAT_182671884,DAT_182671884);
  uVar9 = DAT_1826718c0;
  uVar19 = CONCAT44(DAT_182671620,DAT_182671620);
  uVar20 = (uVar19 ^ *(ulonglong *)(lVar4 + -0x638)) - (*(ulonglong *)(lVar4 + -0x6d0) ^ uVar35);
  *(ulonglong *)(lVar4 + -0x898) = uVar20 ^ CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar12 = DAT_1826717d0;
  uVar10 = DAT_1826716b4;
  uVar40 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x1f0) = uVar20 - uVar32 ^ uVar40;
  uVar11 = DAT_182671718;
  uVar9 = DAT_182671694;
  uVar42 = CONCAT44(uVar10,uVar10);
  uVar36 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar20 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0x670)) +
           (uVar42 ^ *(ulonglong *)(lVar4 + -0x2a0));
  *(ulonglong *)(lVar4 + -0x80) = uVar20 ^ uVar36;
  uVar43 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x9e8) = uVar32 - uVar20 ^ uVar43;
  uVar29 = DAT_182671700;
  lVar4 = DAT_182671560;
  uVar20 = (ulonglong)DAT_182671700;
  uVar37 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar39 = CONCAT44(DAT_182671770,DAT_182671770);
  puVar23 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0xe45dfbba));
  uVar32 = (ulonglong)uVar3;
  puVar21 = (ulonglong *)(DAT_182671560 - (uVar32 ^ 0x29fde043));
  uVar25 = (ulonglong)uVar27;
  puVar28 = (ulonglong *)(DAT_182671560 - (uVar25 ^ 0xba60134f));
  uVar26 = (ulonglong)uVar7;
  *puVar28 = CONCAT44(uVar9,uVar9) ^ *puVar23 ^ uVar39 ^ uVar37 ^ *puVar21;
  uVar30 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xf000e1c1)) =
       ((ulonglong)(uVar29 >> 0x10) | uVar20 << 0x10) ^ *(ulonglong *)(lVar4 + -0x688) >> 0x10 ^
       uVar30;
  uVar9 = DAT_182671890;
  uVar20 = (*(ulonglong *)(lVar4 + -0x688) ^ uVar37) << 0x30;
  *(ulonglong *)(lVar4 + -0x610) = uVar20 ^ CONCAT44(DAT_1826715fc,DAT_1826715fc);
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xba60167f)) =
       (uVar20 | uVar30 ^ *(ulonglong *)(lVar4 + -0x5c8)) ^ uVar33;
  *(ulonglong *)(lVar4 + -0xc08) =
       CONCAT44(DAT_182671730,DAT_182671730) ^ **(ulonglong **)(lVar4 + -0x438);
  lVar5 = DAT_182671560;
  uVar20 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar4 + -0x400) =
       (*(ulonglong *)(lVar4 + -0x510) ^ uVar39) -
       (CONCAT44(DAT_182671648,DAT_182671648) ^ *(ulonglong *)(lVar4 + -0x628)) ^ uVar20;
  uVar10 = DAT_18267176c;
  uVar9 = _DAT_1826715f0;
  puVar17 = (ulonglong *)(lVar4 - (uVar31 ^ 0x29fde153));
  uVar38 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *(ulonglong *)(lVar4 + -0x638) =
       (uVar20 ^ *puVar17) - (uVar33 ^ *(ulonglong *)(lVar4 + -0x3b8)) ^ uVar38;
  uVar37 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x5afb7574)) =
       -(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar4 + -0x240)) - 6 ^ uVar37;
  uVar20 = *(ulonglong *)(lVar4 + -0x1f0);
  *(ulonglong *)(lVar5 + -0x2a0) =
       (uVar20 ^ uVar40) - (*(ulonglong *)(lVar5 - (uVar22 ^ 0xe45dfb9a)) ^ uVar36);
  uVar30 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar5 + -0x898)) + (uVar33 ^ *(ulonglong *)(lVar5 + -0x3b8)) ^
           uVar30;
  uVar33 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar5 + -0x548) = uVar37;
  *puVar23 = uVar33 ^ uVar37 ^ uVar30 ^ uVar20 ^ uVar40;
  uVar9 = DAT_182671848;
  lVar4 = DAT_182671560;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar5 + -0xa0);
  uVar20 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  piVar1 = (int *)(DAT_182671560 + -0x274);
  bVar16 = (byte)uVar3;
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar33 >> ((bVar16 ^ 0x73) & 0x3f) ^ uVar20;
  *(uint *)(lVar4 + -0x874) = (uVar3 ^ 0xa7813564) * *piVar1;
  bVar2 = (byte)uVar7;
  uVar33 = uVar33 << ((bVar2 ^ 0x29) & 0x3f);
  uVar30 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x5c8) = uVar33 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x610) = (uVar20 ^ *puVar28 | uVar33) ^ uVar30;
  uVar9 = DAT_182671678;
  puVar23 = (ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x5afb7bfc));
  uVar33 = CONCAT44(DAT_182671854,DAT_182671854);
  uVar20 = (ulonglong)DAT_182671894;
  puVar34 = (ulonglong *)(lVar4 - (uVar22 ^ 0xe45df2f2));
  uVar39 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar4 + -0xc08) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x1f0)) - (*puVar23 ^ uVar30) ^ uVar33;
  uVar37 = uVar39 ^ uVar38 ^ *puVar34 ^ uVar43 ^ *(ulonglong *)(lVar4 + -0x638);
  uVar40 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x628) = uVar37;
  local_res18 = (byte)uVar13;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xba6010d7)) = uVar37 >> 0x20 ^ uVar40 ^ uVar20;
  uVar11 = DAT_182671844;
  uVar9 = DAT_182671774;
  uVar20 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar4 + -0x400) =
       (uVar39 ^ *(ulonglong *)(lVar4 + -0x628)) << ((local_res18 ^ 0x6c) & 0x3f) ^ uVar20;
  uVar10 = DAT_182671804;
  uVar37 = CONCAT44(uVar11,uVar11);
  uVar20 = *(ulonglong *)(lVar4 - (uVar26 ^ 0xf000e009)) ^ uVar20 |
           uVar40 ^ *(ulonglong *)(lVar4 + -0x510);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar20 ^ uVar37;
  uVar42 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x5afb7e54)) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x638)) - uVar20 ^ uVar42;
  lVar5 = DAT_182671560;
  uVar39 = CONCAT44(DAT_182671760,DAT_182671760);
  uVar43 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar20 = uVar39 ^ uVar37 ^ uVar33 ^ *(ulonglong *)(lVar4 + -0xc08) ^
           *(ulonglong *)(lVar4 + -0x2a0);
  *(ulonglong *)(lVar4 + -0x898) = uVar20;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x5afb78a4)) =
       (uVar20 ^ uVar39) >> ((bVar16 ^ 0x69) & 0x3f) ^ uVar43;
  uVar10 = DAT_18267187c;
  *(ulonglong *)(lVar5 + -0xa0) =
       (CONCAT44(uVar8,uVar13) ^ 0xa4f28457e43a6684) <<
       (((byte)uVar9 ^ *(byte *)(lVar5 + -0x400)) & 0x3f);
  uVar9 = DAT_1826715d0;
  uVar20 = (uVar39 ^ *(ulonglong *)(lVar5 + -0x898)) << 6;
  *(ulonglong *)(lVar5 + -0x688) = uVar20 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_18267166c;
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar20 = uVar43 ^ *(ulonglong *)(lVar5 + -0x548) | uVar20;
  *(ulonglong *)(lVar5 + -0x5c8) = uVar20 ^ uVar39;
  uVar40 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 + -0x1f0) = (uVar33 ^ *(ulonglong *)(lVar5 + -0xc08)) - uVar20 ^ uVar40;
  lVar4 = DAT_182671560;
  uVar20 = (ulonglong)DAT_1826717dc;
  uVar33 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar3 = DAT_1826717dc >> 0x16;
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x29fdecbb)) =
       *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0xf000e219)) ^ uVar33 ^ uVar42 ^ uVar30 ^
       *(ulonglong *)(DAT_182671560 + -0x3b8);
  uVar9 = DAT_1826717b8;
  uVar37 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar4 + -0x628) =
       ((ulonglong)uVar3 | uVar20 << 10) ^ *(ulonglong *)(lVar4 + -0x9e8) >> 0x16 ^ uVar37;
  uVar20 = CONCAT44(uVar9,uVar9);
  *puVar21 = (*(ulonglong *)(lVar4 + -0x9e8) ^ uVar33) << ((local_res18 ^ 0x66) & 0x3f) ^ uVar20;
  uVar9 = DAT_182671664;
  uVar31 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  uVar20 = *(ulonglong *)(lVar4 - (uVar22 ^ 0xe45dfd32)) ^ uVar37 |
           uVar20 ^ *(ulonglong *)(lVar4 + -0x510);
  uVar37 = uVar20 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x638) = uVar37;
  uVar10 = DAT_182671860;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x2a0) = (uVar42 ^ *(ulonglong *)(lVar4 + -0x3b8)) - uVar20 ^ uVar33;
  lVar5 = DAT_182671560;
  uVar42 = CONCAT44(uVar10,uVar10);
  puVar28 = (ulonglong *)(lVar4 - (uVar18 ^ 0x6efd994c));
  *puVar28 = uVar42 ^ uVar31 ^ uVar40 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0x1f0);
  uVar9 = DAT_18267172c;
  uVar20 = *(ulonglong *)(lVar5 + -0x400);
  *(ulonglong *)(lVar4 + -0xa0) =
       (uVar42 ^ *(ulonglong *)(lVar4 + -0x400)) - (CONCAT44(uVar6,uVar27) ^ 0xa1fff5ac52f05ac4);
  uVar10 = _DAT_182671838;
  uVar31 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x898) = (uVar42 ^ uVar20) >> ((bVar2 ^ 0x27) & 0x3f) ^ uVar31;
  lVar4 = DAT_182671560;
  uVar37 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x6efd9804)) =
       (uVar42 ^ *puVar17) << (((byte)uVar27 ^ 0xd5) & 0x3f) ^ uVar37;
  uVar3 = DAT_1826715a4;
  uVar42 = CONCAT44(DAT_182671640,DAT_182671640);
  uVar20 = (ulonglong)DAT_1826715a4;
  uVar29 = DAT_1826715a4 << 0x10;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xf000e281)) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x898) | uVar37 ^ *(ulonglong *)(lVar4 + -0x548)) ^ uVar42;
  uVar44 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar26 = (uVar40 ^ *(ulonglong *)(lVar4 + -0x1f0)) - (uVar42 ^ *(ulonglong *)(lVar4 + -0x688));
  *(ulonglong *)(lVar4 + -0xc08) = uVar26 ^ uVar44;
  uVar6 = DAT_1826715a4;
  uVar29 = (uVar29 | uVar3 & 0xff00) << 8 | uVar3 >> 8 & 0xff00 | DAT_1826715a4 >> 0x18;
  uVar40 = (ulonglong)uVar29;
  bVar41 = (byte)uVar3;
  DAT_182671584 = uVar29;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0xff006856)) = uVar26 ^ uVar31 ^ *(ulonglong *)(lVar4 + -0x898);
  uVar20 = uVar33 ^ uVar39 ^ *(ulonglong *)(lVar4 + -0x5c8) ^ uVar35 ^
           *(ulonglong *)(lVar4 + -0x2a0);
  *(ulonglong *)(lVar4 + -0x628) = uVar20;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xbe6105ef)) =
       (uVar20 ^ uVar35) >> ((bVar41 ^ 0xb2) & 0x3f) ^ uVar43;
  uVar20 = (*(ulonglong *)(lVar4 + -0x628) ^ uVar35) << ((bVar41 ^ 0x8a) & 0x3f);
  *(ulonglong *)(lVar4 + -0x3b8) = uVar20 ^ CONCAT44(DAT_1826718b0,DAT_1826718b0);
  uVar20 = uVar20 | uVar43 ^ *(ulonglong *)(lVar4 + -0x510);
  *(ulonglong *)(lVar4 + -0x638) = 0x90ee550866f62ca4 >> (((byte)(uVar6 >> 0x18) ^ 200) & 0x3f);
  uVar26 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xbe61005f)) = uVar20 ^ uVar26;
  uVar37 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0xff0065be)) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x2a0)) - uVar20 ^ uVar37;
  uVar33 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0xff0064f6)) =
       uVar33 ^ uVar26 ^ uVar44 ^ *(ulonglong *)(lVar4 + -0xa0) ^ *(ulonglong *)(lVar4 + -0xc08);
  uVar20 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x5afb7c1c)) =
       (*(ulonglong *)(lVar4 - (uVar40 ^ 0xbe6105b7)) ^ uVar33) >> ((bVar41 ^ 0xa7) & 0x3f) ^ uVar20
  ;
  uVar26 = (uVar33 ^ *(ulonglong *)(lVar4 + -0x548)) << 0x27;
  *(ulonglong *)(lVar4 + -0x898) = uVar26 ^ CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar10 = DAT_1826718c8;
  uVar26 = uVar26 | uVar20 ^ *(ulonglong *)(lVar4 + -0x1f0);
  *(ulonglong *)(lVar4 + -0x9e8) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0xff0067ae)) ^ uVar30 | 0x92f675528809fde3;
  uVar9 = DAT_182671688;
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar20 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar4 + -0x5c8) = uVar26 ^ uVar33;
  uVar10 = DAT_1826718ac;
  uVar31 = (uVar44 ^ *(ulonglong *)(lVar4 + -0xc08)) -
           (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar4 + -0xbf0));
  *(ulonglong *)(lVar4 + -0x628) = uVar31 ^ uVar20;
  uVar9 = DAT_1826717b0;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar31 = uVar31 - (*(ulonglong *)(lVar4 - (uVar18 ^ 0x6efd9884)) ^ uVar33);
  uVar33 = uVar31 ^ uVar30;
  uVar20 = (CONCAT44(DAT_182671750,DAT_182671750) ^ *(ulonglong *)(lVar4 + -0x1d8)) +
           (*(ulonglong *)(lVar4 + -0x6d0) ^ uVar35);
  *(ulonglong *)(lVar4 + -0x3b8) = uVar20 ^ CONCAT44(DAT_182671790,DAT_182671790);
  *(ulonglong *)(lVar4 + -0x638) = uVar33;
  uVar10 = DAT_182671814;
  uVar45 = CONCAT44(uVar9,uVar9);
  uVar35 = uVar26 - uVar20 ^ uVar45;
  *(ulonglong *)(lVar4 + -0x510) = uVar35;
  uVar9 = _DAT_182671868;
  uVar43 = CONCAT44(uVar10,uVar10);
  uVar20 = uVar43 ^ uVar37 ^ uVar42 ^ *(ulonglong *)(lVar5 + -0x688) ^
           *(ulonglong *)(lVar5 + -0x400);
  *(ulonglong *)(lVar5 + -0x2a0) = uVar20;
  local_d8 = (byte)uVar8;
  uVar26 = (uVar20 ^ uVar43) >> ((local_d8 ^ 0x3b) & 0x3f);
  uVar39 = (uVar43 ^ uVar20) << 0x1f;
  uVar20 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar5 + -0xa0) = uVar26 ^ CONCAT44(uVar9,uVar9);
  uVar10 = DAT_18267184c;
  *(ulonglong *)(lVar5 + -0x548) = uVar39 ^ uVar20;
  uVar9 = DAT_1826715f4;
  lVar4 = DAT_182671560;
  uVar39 = uVar39 | uVar26;
  puVar17 = (ulonglong *)(lVar5 - (uVar40 ^ 0xbe61007f));
  *(ulonglong *)(lVar5 + -0x9e8) = uVar39 ^ CONCAT44(uVar10,uVar10);
  uVar20 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x610) =
       (uVar37 ^ *(ulonglong *)(lVar5 + -0x400)) - (uVar36 ^ *puVar17) ^ uVar20;
  uVar9 = DAT_182671798;
  uVar26 = (*puVar23 ^ uVar20) - uVar39;
  *(ulonglong *)(lVar5 + -0x1f0) = uVar26 ^ uVar38;
  uVar6 = DAT_1826716bc;
  uVar20 = -(*(ulonglong *)(lVar5 - (uVar25 ^ 0xba60137f)) ^ uVar44) - 5;
  *(ulonglong *)(lVar5 + -0x898) = uVar20 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_18267163c;
  uVar20 = uVar39 + uVar20 ^ uVar45;
  *(ulonglong *)(lVar5 + -0xc08) = uVar20;
  uVar33 = uVar45 ^ uVar30 ^ uVar20 ^ uVar33;
  uVar20 = uVar33 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 + -0x628) = uVar20;
  uVar10 = DAT_1826718b8;
  uVar35 = uVar45 ^ uVar26 ^ uVar38 ^ uVar38 ^ uVar35;
  uVar20 = ((ulonglong)uVar6 << 0x1b | (ulonglong)(uVar6 >> 5)) ^ uVar20 >> 5;
  uVar33 = uVar33 << ((local_res18 ^ 0x77) & 0x3f);
  *(ulonglong *)(lVar4 + -0x1d8) = uVar20 ^ CONCAT44(uVar9,uVar9);
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x5c8) = uVar33 ^ CONCAT44(uVar10,uVar10);
  uVar20 = uVar20 | uVar33;
  *(ulonglong *)(lVar4 + -0xa0) =
       (CONCAT44(uVar29,uVar13) ^ 0x41ce0c8674c6923d) << ((byte)uVar26 & 0x3f);
  uVar9 = DAT_1826717d4;
  *(ulonglong *)(lVar4 + -0x688) = uVar20 ^ uVar19;
  uVar25 = CONCAT44(uVar9,uVar9);
  uVar20 = uVar31 - uVar20 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x548) = uVar20;
  uVar30 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(lVar5 + -0x80) = uVar35 ^ uVar30;
  uVar9 = DAT_1826715f8;
  *(ulonglong *)(lVar5 + -0x400) = *(ulonglong *)(lVar5 - (uVar32 ^ 0x29fde7f3)) ^ uVar43 | uVar35;
  uVar10 = DAT_182671818;
  uVar37 = (*(ulonglong *)(lVar5 - (uVar18 ^ 0x6efd9dcc)) ^ uVar30) >>
           (((byte)uVar27 ^ 0xe2) & 0x3f);
  *(ulonglong *)(lVar5 + -0x610) = uVar37 ^ CONCAT44(uVar9,uVar9);
  uVar30 = (uVar30 ^ *puVar17) << ((bVar16 ^ 0x48) & 0x3f);
  uVar18 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *(ulonglong *)(lVar5 + -0x898) = uVar30 ^ CONCAT44(uVar10,uVar10);
  uVar29 = DAT_182671788;
  uVar32 = (ulonglong)DAT_182671788;
  uVar37 = uVar37 | uVar30;
  uVar30 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar5 + -0x9e8) = uVar37 ^ uVar18;
  *(ulonglong *)(lVar5 + -0xc08) = uVar26 - uVar37 ^ uVar30;
  uVar6 = DAT_1826715a4;
  *(ulonglong *)(lVar5 + -0x628) = *puVar34 ^ uVar20 ^ CONCAT44(uVar29,uVar29) ^ uVar18 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x1d8) = (CONCAT44(uVar3,uVar8) ^ 0xf33ebc58f49fc5a0) + 0x6c3347302772337;
  uVar26 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0xff006476)) =
       ((ulonglong)(uVar29 >> 0x17) | uVar32 << 9) ^ *(ulonglong *)(lVar5 + -0x628) >> 0x17 ^ uVar26
  ;
  uVar9 = DAT_1826717c4;
  *(ulonglong *)(lVar5 + -0xa0) =
       CONCAT44(uVar7,uVar13) ^ 0x264fe5753c0a0409 | *(ulonglong *)(lVar5 + -0xc08) ^ uVar30;
  uVar20 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x5afb7bd4)) =
       (*(ulonglong *)(lVar5 + -0x628) ^ CONCAT44(uVar29,uVar29)) << 0x29 ^ uVar20;
  uVar9 = DAT_18267180c;
  uVar18 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar5 + -0x510) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0xe45dfd22)) ^ uVar20 |
       *(ulonglong *)(lVar5 - (uVar22 ^ 0xe45dfed2)) ^ uVar26) ^ uVar18;
  uVar10 = DAT_182671830;
  *(ulonglong *)(lVar5 + -0x2a0) =
       (*(ulonglong *)(lVar5 + -0x548) ^ uVar25) - (uVar18 ^ *puVar21) ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671870;
  uVar20 = CONCAT44(uVar10,uVar10);
  uVar30 = *(ulonglong *)(lVar5 - (uVar24 ^ 0x5afb7b64)) ^ uVar19 ^ *(ulonglong *)(lVar5 + -0xc08) ^
           uVar20 ^ uVar30;
  *(uint *)(lVar5 + -0x874) = (uVar6 ^ 0x57185805) - *(int *)(lVar5 + -0x8c);
  *(ulonglong *)(lVar5 + -0x400) = uVar30;
  *(ulonglong *)(lVar5 + -0x80) =
       (uVar30 ^ uVar20) >> ((bVar16 ^ 0x7b) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x898) =
       (*puVar28 ^ uVar20) << ((bVar2 ^ 0x11) & 0x3f) ^ CONCAT44(DAT_182671728,DAT_182671728);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar14;
  return;
}



############ FUN_ 180e8b980 size=4668 ############

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

void FUN_180e8b980(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  byte bVar4;
  uint uVar5;
  ulonglong *puVar6;
  undefined8 uVar7;
  longlong lVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  ulonglong uVar22;
  undefined8 *puVar23;
  ulonglong *puVar24;
  uint uVar25;
  uint uVar26;
  longlong *plVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_res20;
  byte local_b0;
  
  uVar19 = DAT_18267170c;
  uVar18 = DAT_1826715b4;
  uVar17 = DAT_1826715b0;
  uVar26 = DAT_1826715ac;
  uVar14 = DAT_182671584;
  uVar13 = DAT_18267157c;
  uVar12 = DAT_182671574;
  lVar8 = DAT_182671560;
  uVar42 = (ulonglong)DAT_182671584;
  uVar39 = (ulonglong)DAT_18267157c;
  uVar37 = (ulonglong)DAT_1826715ac;
  uVar30 = DAT_182671574 & DAT_182671584;
  uVar40 = (ulonglong)DAT_1826715b4;
  uVar28 = DAT_1826715ac & DAT_1826715b4;
  uVar25 = DAT_18267157c * DAT_1826715b0;
  uVar5 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_182671574 ^ 0x41e8b0c4) + (longlong)DAT_182671b48);
  uVar21 = *(uint *)(&DAT_182611e80 + DAT_182671b48) ^ DAT_182671584;
  uVar22 = (ulonglong)DAT_1826715b0;
  uVar35 = (ulonglong)DAT_18267157c;
  puVar6 = *(ulonglong **)(DAT_182671560 + -0xa38);
  uVar29 = (ulonglong)uVar25;
  DAT_182671568 = uVar25;
  DAT_182671580 = uVar28;
  DAT_18267159c = uVar30;
  *(ulonglong **)(DAT_182671560 + -0x880) =
       puVar6 + (CONCAT44(uVar25,DAT_1826715b0) ^ 0xd6021aac36ff6fa8);
  uVar20 = DAT_182671710;
  *(ulonglong *)(lVar8 + -0x2a0) =
       *(ulonglong *)(lVar8 - (uVar35 ^ 0x4080228c)) ^ CONCAT44(uVar19,uVar19) ^
       CONCAT44(uVar13,uVar26) ^ 0x192234089d7dbd61;
  uVar38 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar8 + -0x748) = *puVar6 ^ uVar38;
  lVar8 = DAT_182671560;
  **(ulonglong **)(DAT_182671560 - ((ulonglong)uVar28 ^ 0xf000ef71)) =
       CONCAT44(uVar18,uVar17) ^ 0xd9c9407392ad4b06;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar12 ^ 0x41e8b374)) =
       (CONCAT44(uVar14,uVar26) ^ 0x8f7d3228fe6022fb) >> (((byte)uVar26 ^ 0x6a) & 0x3f);
  uVar11 = DAT_182671590;
  *(ulonglong *)(lVar8 + -0xb78) =
       *(longlong *)(lVar8 + -0x5f8) + (CONCAT44(uVar18,uVar30) ^ 0xf400efa9416080cd) * 8;
  uVar15 = DAT_18267158c;
  uVar34 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar8 - (uVar29 ^ 0xd6021b74)) =
       *(ulonglong *)(lVar8 + -0x748) ^ *(ulonglong *)(lVar8 + -0x688);
  uVar31 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  **(ulonglong **)(lVar8 - (uVar22 ^ 0x36ff6a51)) = uVar31 ^ *(ulonglong *)(lVar8 + -0x748);
  uVar7 = *(undefined8 *)(lVar8 + -0x880);
  *(undefined8 *)(lVar8 + -0x830) = *(undefined8 *)(lVar8 + -0xb78);
  uVar22 = CONCAT44(DAT_1826715a0,uVar30);
  *(undefined8 *)(lVar8 + -0xb78) = uVar7;
  *(ulonglong *)(lVar8 + -0x510) = uVar22 ^ *(ulonglong *)(lVar8 + -0x9f8) ^ 0xcf0854d960a82af2;
  *(undefined8 *)(lVar8 + -0x880) = *(undefined8 *)(lVar8 - ((ulonglong)uVar28 ^ 0xf000ec39));
  *(undefined8 *)(lVar8 + -0x830) = uVar7;
  *(ulonglong *)(lVar8 + -0x270) = **(ulonglong **)(lVar8 - (uVar37 ^ 0xfb1aec6d)) ^ uVar38;
  **(ulonglong **)(lVar8 - ((ulonglong)uVar14 ^ 0x4d678edf)) =
       CONCAT44(uVar14,uVar15) ^ 0xcffe5e800f1dac9f;
  **(ulonglong **)(lVar8 + -0x880) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0xf400edd9)) ^ uVar31;
  *(ulonglong *)(lVar8 + -0xb78) =
       *(longlong *)(lVar8 + -0x450) + (CONCAT44(uVar11,uVar13) ^ 0xccb0e841408020c8) * 8;
  plVar27 = (longlong *)(lVar8 - ((ulonglong)uVar18 ^ 0xf400ed89));
  *plVar27 = *(longlong *)(lVar8 + -0x4a0) + 0x20;
  *(undefined8 *)(lVar8 + -0x830) = *(undefined8 *)(lVar8 + -0xb78);
  *(longlong *)(lVar8 - ((ulonglong)uVar12 ^ 0x41e8b49c)) = *plVar27;
  *(undefined8 *)(lVar8 + -0x4a0) = *(undefined8 *)(lVar8 + -0x830);
  puVar6 = (ulonglong *)(lVar8 + -0xc08);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x30cd99e)) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0xccb0e041)) >> (((byte)uVar30 ^ 0xcf) & 0x3f);
  uVar45 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar8 + -0xb78) = *(ulonglong *)(lVar8 + -0x450) ^ uVar45;
  uVar44 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *puVar6 = **(ulonglong **)(lVar8 - ((ulonglong)uVar28 ^ 0xf000e0a9)) ^ uVar44;
  uVar19 = DAT_1826717c8;
  puVar3 = (ulonglong *)
           (*(longlong *)(lVar8 + -0x4a0) + (CONCAT44(uVar25,uVar11) ^ 0xd6021aacccb0e840) * 8);
  *(ulonglong **)(lVar8 + -0x220) = puVar3;
  uVar22 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar13 ^ 0x4080206c)) = uVar22 ^ *puVar3;
  uVar19 = DAT_1826717c0;
  puVar3 = (ulonglong *)
           (*(longlong *)(lVar8 - (uVar37 ^ 0xfb1ae0fd)) +
           (CONCAT44(uVar26,uVar14) ^ 0xfb1ae45d4d678cfd) * 8);
  *(ulonglong **)(lVar8 + -0x830) = puVar3;
  uVar31 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar8 - (uVar35 ^ 0x408024cc)) = uVar31 ^ *puVar3;
  puVar3 = (ulonglong *)(lVar8 + -0x610);
  puVar23 = (undefined8 *)(*(longlong *)(lVar8 + -0x4a0) + 0x18);
  *(undefined8 **)(lVar8 + -0x450) = puVar23;
  *puVar3 = *(ulonglong *)(lVar8 + -0x548) << 0x3c;
  *(undefined8 *)(lVar8 + -0x5c8) = *puVar23;
  uVar19 = DAT_182671688;
  puVar24 = (ulonglong *)(*(longlong *)(lVar8 + -0x6c0) + 8);
  *(ulonglong *)(lVar8 + -0x220) = (ulonglong)puVar24 ^ CONCAT44(DAT_1826716a8,DAT_1826716a8);
  lVar9 = DAT_182671560;
  uVar46 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar8 + -0xbf0) = *puVar24 ^ uVar46 ^ uVar45;
  uVar35 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(*(ulonglong *)(lVar9 + -0x6a0) ^ uVar35) =
       CONCAT44(uVar17,uVar26) ^ 0x659a530785022c64;
  lVar10 = DAT_182671560;
  uVar38 = CONCAT44(DAT_182671840,DAT_182671840);
  uVar43 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(DAT_182671560 + -0x830) =
       *(longlong *)(lVar9 - ((ulonglong)DAT_1826715a0 ^ 0x365bee35)) +
       ((CONCAT44(uVar30,uVar26) ^ 0x416080ccfb1ae45c) + 1) * 8 ^ uVar38;
  uVar19 = DAT_182671790;
  *(ulonglong *)(lVar10 + -0x6d0) =
       *(ulonglong *)(*(ulonglong *)(lVar10 - ((ulonglong)uVar11 ^ 0xccb0e071)) ^ uVar38) ^ uVar43 ^
       uVar45;
  *(ulonglong *)(CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(DAT_182671560 + -0x438)) =
       CONCAT44(uVar15,uVar18) ^ 0x8a324c48e796dc5a;
  uVar38 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *(ulonglong *)(DAT_182671560 + -0x4a0) =
       *(longlong *)(DAT_182671560 + -0x6c0) + 8 +
       ((CONCAT44(uVar15,uVar17) ^ 0x30cd13636ff6fa9) * 0x15 +
       (CONCAT44(uVar30,DAT_1826715a0) ^ 0x416080cc365be8f7)) * 8 ^ uVar38;
  lVar9 = DAT_182671560;
  puVar24 = (ulonglong *)(DAT_182671560 + -0xcc8);
  *(ulonglong *)(DAT_182671560 + -0x670) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0x4d67885f)) ^ uVar38) ^
       CONCAT44(DAT_1826717d0,DAT_1826717d0) ^ uVar45;
  *(undefined8 *)(uVar35 ^ *puVar24) = 0xf7fb772d0e5e523f;
  uVar19 = DAT_1826716f4;
  uVar32 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar9 + -0x6c0) + 8 +
            ((CONCAT44(uVar30,uVar17) ^ 0x416080cc36ff6fa9) * 0x15 +
            (CONCAT44(uVar13,uVar17) ^ 0x408020cc36ff6faa)) * 8);
  uVar38 = CONCAT44(DAT_182671704,DAT_182671704);
  *(ulonglong *)(lVar9 + -0x450) = (ulonglong)puVar24 ^ uVar32;
  *(ulonglong *)(lVar9 + -0x6b8) = *puVar24 ^ uVar38 ^ uVar45;
  *(ulonglong *)(CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar9 + -0x230)) =
       CONCAT44(uVar11,uVar12) ^ 0xd09d2d46d4dc2779;
  lVar10 = DAT_182671560;
  uVar33 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar9 - (uVar29 ^ 0xd6021c0c)) =
       *(longlong *)(lVar9 - ((ulonglong)uVar30 ^ 0x4160860c)) + 0x28U ^ uVar33;
  uVar19 = DAT_182671898;
  uVar35 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar10 + -0x240) =
       *(ulonglong *)(*(ulonglong *)(lVar10 - (uVar42 ^ 0x4d678a5f)) ^ uVar33) ^ uVar35 ^ uVar45;
  *(ulonglong *)(CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar10 + -0x30)) =
       CONCAT44(uVar14,uVar28) ^ 0xe8c1c924adf9726a;
  uVar19 = DAT_1826716b4;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar10 + -0x6c0) + 0x90 +
            (CONCAT44(uVar30,uVar15) ^ 0x416080cc030cd136) * 8);
  *(ulonglong **)(lVar10 + -0x438) = puVar24;
  lVar9 = DAT_182671560;
  uVar33 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar33 ^ *puVar24 ^ uVar45;
  **(undefined8 **)(lVar9 + -0x3a0) = 0x6fd559bd732eaf42;
  uVar16 = DAT_1826715a4;
  uVar36 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a0 ^ 0x365be0c5)) =
       *(longlong *)(lVar9 + -0x6c0) + 0x90 +
       ((CONCAT44(uVar26,uVar17) ^ 0xfb1ae45d36ff6fa9) * 0x15 +
       (CONCAT44(uVar18,uVar28) ^ 0xf400efa9f000e408)) * 8;
  uVar11 = DAT_182671570;
  lVar9 = DAT_182671560;
  uVar42 = (ulonglong)DAT_182671570;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0xf000e7b1)) =
       (CONCAT44(uVar26,uVar28) ^ 0x3accf66b4c281562) >> (((byte)uVar14 ^ 0xfe) & 0x3f);
  uVar41 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  uVar26 = uVar16 - uVar11;
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x30cd7be)) = **(ulonglong **)(lVar9 + -0x830) ^ uVar41 ^ uVar45;
  DAT_182671594 = uVar26;
  **(ulonglong **)(DAT_182671560 + -0x7b8) = CONCAT44(uVar11,uVar16) ^ 0xc36af13a998f519e;
  lVar9 = DAT_182671560;
  uVar34 = (ulonglong)uVar26;
  puVar24 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0x6c0) + 0x90 +
            ((CONCAT44(uVar26,uVar26) ^ 0x591b5d95591b5d95) * 0x15 +
            (CONCAT44(uVar26,uVar16) ^ 0x591b5d954d9c8160)) * 8);
  *(undefined8 *)(DAT_182671560 + -0x6c0) = 0x39eaf70b8f36a8c4;
  *(ulonglong **)(lVar9 + -0xcc8) = puVar24;
  lVar9 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1d8) = CONCAT44(DAT_182671750,DAT_182671750) ^ *puVar24 ^ uVar45
  ;
  **(ulonglong **)(lVar9 - (uVar36 ^ 0x4d9c837a)) = CONCAT44(uVar11,uVar26) ^ 0x22cef4b783defb18;
  uVar20 = DAT_1826717a8;
  uVar45 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar9 + -0x510) =
       (uVar44 ^ *puVar6) - (uVar38 ^ *(ulonglong *)(lVar9 + -0x6b8)) ^ uVar45;
  uVar19 = DAT_1826715bc;
  puVar24 = (ulonglong *)(lVar9 + -0xa0);
  uVar38 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar9 + -0x9f8) =
       (uVar33 ^ *(ulonglong *)(lVar9 + -0x2a0)) + (uVar35 ^ *(ulonglong *)(lVar9 + -0x240)) ^
       uVar38;
  uVar35 = CONCAT44(uVar19,uVar19);
  puVar1 = (ulonglong *)(lVar9 + -0x400);
  *(ulonglong *)(lVar9 + -0x638) =
       (*puVar24 ^ uVar22) - (*(ulonglong *)(lVar9 - (uVar42 ^ 0xf4812a35)) ^ uVar38) ^ uVar35;
  uVar20 = DAT_182671810;
  uVar38 = CONCAT44(DAT_182671810,DAT_182671810);
  uVar22 = (uVar41 ^ *(ulonglong *)(lVar9 + -0x688)) + (*(ulonglong *)(lVar9 + -0xbf0) ^ uVar46);
  puVar2 = (ulonglong *)(lVar9 + -0x8a8);
  *puVar2 = uVar22 ^ uVar38;
  uVar44 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar16 ^ 0x4d9c842a)) = (uVar31 ^ *puVar1) - uVar22 ^ uVar44;
  *(uint *)(lVar9 - ((ulonglong)uVar16 ^ 0x4d9c8616)) =
       (uVar11 ^ 0x1408ee42) + (uVar16 ^ 0x446ba7b7);
  uVar22 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *puVar3 = *(longlong *)(lVar9 + -0x5c8) - 0x12U ^ uVar22;
  uVar19 = DAT_1826717ac;
  *(ulonglong *)(lVar9 + -0x9e8) = (uVar34 << 0x15 | (ulonglong)(uVar26 >> 0xb)) ^ 0x101a7e51156a59;
  uVar31 = CONCAT44(uVar19,uVar19);
  uVar33 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar9 + -0x318) =
       (*(ulonglong *)(lVar9 - (uVar34 ^ 0x591b5b85)) ^ uVar22) -
       (*(ulonglong *)(lVar9 - (uVar42 ^ 0xf481251d)) ^ uVar43) ^ uVar31;
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x591b5b95)) =
       *(ulonglong *)(lVar9 - (uVar42 ^ 0xf48120d5)) ^ uVar45 ^ *(ulonglong *)(lVar9 + -0x510) ^
       uVar33 ^ uVar31;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar9 + -0x600);
  uVar41 = uVar33 >> (((byte)uVar11 ^ 0xed) & 0x3f);
  *(ulonglong *)(lVar9 + -0x898) = uVar41 ^ CONCAT44(DAT_1826715cc,DAT_1826715cc);
  local_b0 = (byte)uVar18;
  *(ulonglong *)(lVar9 + -0x1f0) = uVar33 - (CONCAT44(uVar25,uVar16) ^ 0x2fb045612acd30c4);
  uVar31 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(uint *)(lVar9 + -0x344) = *(uint *)(lVar9 + -0x678) | *(uint *)(lVar9 + -0x274);
  uVar19 = DAT_18267169c;
  *(ulonglong *)(lVar9 + -0x628) = uVar33 << ((local_b0 ^ 0x89) & 0x3f) ^ uVar31;
  uVar14 = DAT_1826715d4;
  uVar43 = CONCAT44(uVar19,uVar19);
  uVar33 = (ulonglong)DAT_1826715d4;
  uVar22 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar9 - (uVar36 ^ 0x4d9c82da)) =
       (*(ulonglong *)(lVar9 - (uVar39 ^ 0x408026e4)) ^ uVar31 | uVar41) ^ uVar43;
  uVar39 = CONCAT44(DAT_182671814,DAT_182671814);
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar9 + -0xa88) =
       (uVar45 ^ *(ulonglong *)(lVar9 + -0x510)) - (*(ulonglong *)(lVar9 + -0x3b8) ^ uVar43) ^
       uVar39;
  uVar14 = DAT_182671590;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671590 ^ 0xccb0e8c1)) =
       *(ulonglong *)(lVar9 - (uVar22 ^ 0xccb0ed09)) ^ uVar35 ^ uVar31 ^ uVar44 ^
       *(ulonglong *)(lVar9 + -0x638);
  uVar22 = *(ulonglong *)(lVar9 + -0x80);
  *puVar6 = *(ulonglong *)(lVar9 - (uVar37 ^ 0xfb1ae4dd)) >> 0x20 ^ uVar32 ^ uVar33;
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x591b5d35)) = (uVar22 ^ uVar31) << 0x20 ^ uVar38;
  *puVar1 = CONCAT44(uVar30,uVar12) ^ 0x5a769c47b987a0e2;
  uVar33 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(longlong *)(lVar9 + -0x9e8) = 0x2f4610a8bf54b22d << (((byte)uVar14 ^ 0x5f) & 0x3f);
  uVar22 = uVar32 ^ *puVar6 | *puVar24 ^ uVar38;
  uVar31 = uVar22 ^ uVar33;
  *(ulonglong *)(lVar9 + -0x5c8) = uVar31;
  uVar35 = CONCAT44(DAT_182671738,DAT_182671738);
  *puVar3 = (*(ulonglong *)(lVar9 - (uVar34 ^ 0x591b58dd)) ^ uVar44) - uVar22 ^ uVar35;
  *(ulonglong *)(lVar9 + -0x318) =
       (*puVar2 ^ uVar38) - (CONCAT44(uVar15,uVar25) ^ 0x3a8e48c48a11c6e9);
  uVar22 = CONCAT44(_DAT_182671618,_DAT_182671618);
  uVar34 = *(ulonglong *)(lVar9 + -0xa88) ^ uVar22 ^ uVar31 ^ uVar33 ^ uVar39;
  uVar38 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar9 + -0x1f0) = uVar34;
  uVar34 = uVar34 ^ uVar22;
  *(ulonglong *)(lVar9 + -0x600) = uVar34 >> (((byte)uVar11 ^ 0xf7) & 0x3f) ^ uVar38;
  uVar31 = CONCAT44(DAT_182671654,DAT_182671654);
  uVar22 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar9 - (uVar40 ^ 0xf400e731)) =
       uVar34 << (((byte)DAT_182671590 ^ 0x47) & 0x3f) ^ uVar31;
  uVar19 = DAT_1826717ec;
  uVar31 = uVar38 ^ *(ulonglong *)(lVar9 + -0x600) | *(ulonglong *)(lVar9 + -0x898) ^ uVar31;
  *(ulonglong *)(lVar9 + -0x628) = uVar31 ^ uVar44;
  uVar34 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar9 + -0x510) = (*(ulonglong *)(lVar9 + -0xa88) ^ uVar39) - uVar31 ^ uVar34;
  uVar38 = CONCAT44(DAT_182671788,DAT_182671788);
  *(ulonglong *)(lVar9 - (uVar42 ^ 0xf48125f5)) =
       *(ulonglong *)(lVar9 - (uVar22 ^ 0x365beee5)) ^ *(ulonglong *)(lVar9 + -0x3b8) ^ uVar38 ^
       uVar35 ^ uVar43;
  uVar19 = DAT_18267164c;
  uVar31 = (*(ulonglong *)(lVar9 - (uVar29 ^ 0xd6021c94)) ^ uVar38) >>
           (((byte)uVar26 ^ 0x83) & 0x3f);
  *(ulonglong *)(lVar9 + -0x80) = uVar31 ^ CONCAT44(DAT_182671638,DAT_182671638);
  uVar42 = CONCAT44(uVar19,uVar19);
  uVar38 = (*(ulonglong *)(lVar9 - (uVar37 ^ 0xfb1ae265)) ^ uVar38) <<
           (((byte)uVar17 ^ 0x83) & 0x3f);
  bVar4 = *(byte *)puVar2;
  *puVar1 = uVar38 ^ uVar42;
  uVar22 = *puVar1;
  uVar38 = uVar38 | uVar31;
  *puVar6 = uVar38 ^ uVar34;
  *puVar24 = (CONCAT44(uVar13,uVar16) ^ 0x454859f327f22d1f) << ((bVar4 ^ (byte)uVar20) & 0x3f);
  local_res20 = (byte)uVar12;
  *(ulonglong *)(lVar9 + -0x9e8) =
       (*puVar3 ^ uVar35) - uVar38 ^ CONCAT44(DAT_182671628,DAT_182671628);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar21 * 4) = uVar5 ^ uVar30;
  *(ulonglong *)(lVar8 + -0x548) = (uVar42 ^ uVar22) >> ((local_res20 ^ 0xd9) & 0x3f);
  return;
}



############ FUN_ 180f257f0 size=5331 ############

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

void FUN_180f257f0(void)

{
  undefined8 *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  int iVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_78;
  
  uVar11 = DAT_1826715b0;
  uVar10 = DAT_1826715a4;
  uVar8 = DAT_18267158c;
  uVar6 = DAT_182671588;
  uVar20 = DAT_182671584;
  uVar7 = DAT_182671580;
  uVar5 = DAT_182671568;
  uVar33 = (ulonglong)DAT_182671568;
  uVar43 = (ulonglong)DAT_18267158c;
  uVar35 = (ulonglong)DAT_182671580;
  uVar42 = DAT_182671568;
  if ((DAT_1826715b0 & 1) == 0) {
    uVar42 = DAT_1826715b0;
  }
  uVar14 = DAT_18267158c ^ DAT_182671590;
  uVar26 = DAT_18267159c + DAT_182671588;
  uVar40 = DAT_182671580 & DAT_182671584;
  iVar17 = DAT_182671578 + DAT_1826715a4;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_182671a2c);
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671a2c) ^ DAT_18267159c;
  uVar31 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar22 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar28 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar23 = *(ulonglong *)(DAT_182671560 + -0x898) ^ *(ulonglong *)(DAT_182671560 + -0x240) ^ uVar28
           ^ uVar22;
  DAT_18267156c = iVar17;
  DAT_18267157c = uVar26;
  DAT_182671594 = uVar42;
  DAT_1826715a8 = uVar14;
  DAT_1826715b4 = uVar40;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar23 ^ uVar31;
  uVar32 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar18 = (ulonglong)uVar20;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671578 ^ 0x491e3b7e)) =
       uVar23 >> (((byte)iVar17 ^ 0x5a) & 0x3f) ^ uVar32;
  lVar3 = DAT_182671560;
  uVar39 = (ulonglong)uVar40;
  uVar34 = (*(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x6656d1b4)) ^ uVar31) <<
           (((byte)uVar40 ^ 0xb6) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar34 ^ CONCAT44(DAT_1826718a0,DAT_1826718a0);
  puVar19 = (ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xf3f5877c));
  uVar36 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  uVar34 = uVar34 | *puVar19 ^ uVar32;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar34 ^ uVar36;
  uVar32 = (ulonglong)uVar26;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar34 - (CONCAT44(iVar17,DAT_182671590) ^ 0xbd00a741fc98e237);
  uVar9 = DAT_1826716a0;
  uVar13 = DAT_182671698;
  uVar12 = DAT_182671690;
  uVar23 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  puVar27 = (ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x2a001ad2));
  *puVar27 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0xe3d29b40)) ^ uVar28) - uVar34 ^ uVar23;
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar28 = *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xacee7f6e)) ^ CONCAT44(uVar12,uVar12) ^
           *(ulonglong *)(lVar3 + -0x670) ^ uVar34 ^ CONCAT44(uVar9,uVar9);
  uVar24 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(lVar3 + -0xa88) = uVar28;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x5c262f58)) =
       ((ulonglong)uVar9 << 0x14 | (ulonglong)(uVar9 >> 0xc)) ^ uVar28 >> 0xc ^ uVar24;
  uVar13 = DAT_1826718d0;
  uVar12 = DAT_182671898;
  uVar28 = (*(ulonglong *)(lVar3 + -0xa88) ^ CONCAT44(uVar9,uVar9)) << (((byte)uVar5 ^ 0x8f) & 0x3f)
  ;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar28 ^ CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar9 = DAT_182671598;
  lVar4 = DAT_182671560;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x628) = (uVar28 | uVar24 ^ *(ulonglong *)(lVar3 + -0x1d8)) ^ uVar37;
  uVar12 = DAT_1826716e0;
  uVar28 = (ulonglong)uVar42;
  *(ulonglong *)(lVar3 + -0xc08) =
       (CONCAT44(uVar20,uVar42) ^ 0x8e0f1cd533ce053f) <<
       (((byte)uVar13 ^ *(byte *)(lVar3 + -0x2a0)) & 0x3f);
  uVar25 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x2a001e42)) =
       (*(ulonglong *)(lVar4 + -0x670) ^ uVar34) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x480420e)) ^ uVar37) ^ uVar25;
  uVar12 = DAT_182671858;
  *(ulonglong *)(lVar4 + -0x80) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x93a4c790)) ^ uVar31 |
       CONCAT44(uVar6,uVar5) ^ 0xe3b8761d78799359;
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar31 = *(ulonglong *)(lVar4 + -0x628) ^ uVar34 ^ uVar37 ^ uVar23 ^
           *(ulonglong *)(lVar4 + -0x6d0);
  *(ulonglong *)(lVar4 + -0x800) = uVar31;
  lVar3 = DAT_182671560;
  uVar38 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671590 ^ 0xcf82e0a8)) =
       (uVar31 ^ uVar34) >> (((byte)uVar8 ^ 0x99) & 0x3f) ^ uVar38;
  uVar20 = DAT_18267159c ^ 0x47d81a55;
  uVar31 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar3 + -0x898) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x800)) << (((byte)uVar40 ^ 0x83) & 0x3f) ^ uVar31;
  *(uint *)(lVar3 - (uVar43 ^ 0x5c2629d4)) = uVar20 + *(int *)(lVar3 + -0x678);
  uVar37 = CONCAT44(DAT_182671688,DAT_182671688);
  *(uint *)(lVar3 + -0x910) = *(uint *)(lVar3 + -0x874) >> (((byte)uVar9 ^ 0x3d) & 0x1f);
  uVar12 = DAT_1826717ec;
  *(ulonglong *)(lVar3 + -0x318) =
       (uVar38 ^ *(ulonglong *)(lVar3 + -0x8a8) | *(ulonglong *)(lVar3 + -0x898) ^ uVar31) ^ uVar37;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xf3f58d74)) =
       (uVar23 ^ *puVar27) - (CONCAT44(uVar9,uVar26) ^ 0x40cb23ecb83f72cc) ^ uVar34;
  uVar6 = DAT_182671824;
  uVar20 = DAT_182671578;
  uVar37 = uVar37 ^ *(ulonglong *)(lVar3 + -0x318);
  uVar46 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar31 = (ulonglong)DAT_182671824;
  *(ulonglong *)(lVar3 + -0x1d8) = (*(ulonglong *)(lVar3 + -0xa88) ^ uVar34) - uVar37 ^ uVar46;
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar44 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar3 + -0xc08) = uVar37 - (CONCAT44(uVar5,uVar20) ^ 0xabff0b8030dd1e68) ^ uVar44;
  uVar23 = *(ulonglong *)(lVar3 + -0x240);
  *(undefined1 *)(lVar3 + -0x209) = **(undefined1 **)(lVar3 + -0xc80);
  uVar36 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x6656db54)) ^ uVar29 ^ uVar25 ^ uVar36 ^ uVar23;
  uVar37 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar36;
  uVar41 = (uVar36 >> 0x20 ^ uVar31) >> 1;
  *(ulonglong *)(lVar3 + -0x670) = uVar41 ^ uVar37;
  *(undefined1 *)(lVar3 + -0x5e9) = **(undefined1 **)(lVar3 + -0x60);
  uVar12 = _DAT_182671838;
  uVar8 = DAT_1826715ac;
  uVar45 = (ulonglong)DAT_1826715ac;
  uVar21 = (DAT_1826715ac << 0x10 | DAT_1826715ac & 0xff00) << 8 | DAT_1826715ac >> 8 & 0xff00 |
           DAT_1826715ac >> 0x18;
  uVar31 = (ulonglong)uVar21;
  uVar37 = (uVar29 ^ uVar36) << (((byte)(DAT_1826715ac >> 0x18) ^ 0x9f) & 0x3f);
  DAT_182671570 = uVar21;
  *(ulonglong *)(lVar3 + -0x110) = uVar37 ^ CONCAT44(DAT_1826716e4,DAT_1826716e4);
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar37 = uVar37 | uVar41;
  puVar1 = (undefined8 *)(DAT_182671560 + -0x5b8);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar37 ^ uVar29;
  *(undefined1 *)(lVar3 + -0x209) = *(undefined1 *)*puVar1;
  uVar12 = DAT_1826718a4;
  uVar23 = (uVar25 ^ uVar23) - (CONCAT44(uVar8,uVar8) ^ 0x2437a223666b0dac);
  *(ulonglong *)(lVar3 + -0x628) = uVar23 ^ uVar24;
  uVar25 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x800) =
       uVar23 - (*(ulonglong *)(lVar3 - (uVar45 ^ 0x803c2fce)) ^ uVar29) ^ uVar25;
  uVar12 = DAT_182671804;
  uVar24 = CONCAT44(uVar14,DAT_182671588);
  *(ulonglong *)(lVar3 + -0x898) = uVar41 - (CONCAT44(uVar21,iVar17) ^ 0x4e21f69b00603fdf);
  uVar20 = DAT_182671578;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar23 = (ulonglong)DAT_182671578;
  uVar24 = (uVar24 ^ 0x472a4b566dc31e83) + uVar37 ^ uVar29;
  uVar37 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar24;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x491e3d2e)) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0x2a001dda)) ^ uVar37 ^ uVar24 ^ uVar29 ^ uVar46;
  uVar24 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar3 + -0xa88) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x6d0)) >> (((byte)uVar8 ^ 0x4b) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar3 + -0x318) =
       (CONCAT44(iVar17,iVar17) ^ 0xb75a26bbc02521ff) + 0x26e9956cec37f3b8;
  uVar23 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xe3d29828)) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0xf3f5812c)) ^ uVar37) << (((byte)uVar42 ^ 0x39) & 0x3f) ^
       uVar23;
  uVar13 = DAT_182671784;
  uVar41 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(lVar3 + -0x2a0) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xbf0) | uVar24 ^ *(ulonglong *)(lVar3 + -0xa88)) ^ uVar41;
  uVar12 = DAT_182671600;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0x1d8)) -
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x62548204)) ^ uVar41) ^ uVar37;
  uVar24 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x240) =
       uVar24 ^ uVar25 ^ uVar44 ^ *(ulonglong *)(lVar3 + -0xc08) ^ *(ulonglong *)(lVar3 + -0x800);
  bVar16 = (byte)DAT_18267159c;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x5c2628a8)) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x625481b4)) ^ uVar37) <<
       (((byte)DAT_182671590 ^ 7) & 0x3f);
  uVar29 = *(ulonglong *)(lVar3 + -0x240) ^ uVar24;
  uVar23 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar3 + -0x670) = uVar29 >> ((bVar16 ^ 0xa5) & 0x3f) ^ uVar23;
  uVar12 = DAT_182671704;
  uVar29 = uVar29 << (((byte)uVar11 ^ 0x19) & 0x3f);
  *(ulonglong *)(lVar3 + -0x898) = uVar29 ^ CONCAT44(_DAT_18267188c,_DAT_18267188c);
  lVar3 = DAT_182671560;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x4e2f3c00)) =
       (*(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x6e269bcb)) ^ uVar23 | uVar29) ^ uVar36;
  uVar45 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar23 = (uVar25 ^ *(ulonglong *)(lVar3 + -0x800)) -
           (*(ulonglong *)(lVar3 - (uVar28 ^ 0x2a001c82)) ^ uVar36);
  uVar25 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar23 ^ uVar45;
  *(ulonglong *)(lVar3 + -0x318) = uVar23 >> ((byte)uVar23 & 0x3f);
  uVar23 = *(ulonglong *)(lVar3 - (uVar35 ^ 0xf3f586ec)) ^ uVar25 ^ uVar36 ^ uVar37 ^ *puVar19;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar23;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x4e2f3608)) =
       (uVar23 ^ uVar25) >> (((byte)uVar9 ^ 0x31) & 0x3f) ^ uVar24;
  uVar6 = DAT_182671590;
  uVar25 = (uVar25 ^ *(ulonglong *)(lVar3 + -0x6d0)) << (((byte)uVar8 ^ 0x67) & 0x3f);
  *(uint *)(lVar3 + -0x3d4) = DAT_182671588 ^ 0x945fb4c6 | *(uint *)(lVar3 + -0x968);
  uVar23 = CONCAT44(DAT_182671630,DAT_182671630);
  *(uint *)(lVar3 + -0x774) = *(int *)(lVar3 + -0x874) - (uVar6 ^ 0x5beb65f3);
  uVar12 = DAT_182671790;
  uVar24 = uVar25 | uVar24 ^ *(ulonglong *)(lVar3 + -0xa88);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar25 ^ uVar23;
  uVar46 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x1d8) = uVar24 ^ uVar46;
  uVar12 = DAT_182671660;
  *(undefined1 *)(lVar3 + -0x5e9) = **(undefined1 **)(lVar3 - (uVar39 ^ 0x62548a84));
  uVar42 = DAT_182671814;
  uVar6 = DAT_182671574;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar23 = (ulonglong)DAT_182671814;
  uVar25 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 + -0xc08) = (*(ulonglong *)(lVar3 + -0x110) ^ uVar37) - uVar24 ^ uVar29;
  uVar12 = DAT_182671648;
  lVar4 = DAT_182671560;
  uVar30 = uVar6 ^ DAT_182671578;
  uVar24 = CONCAT44(uVar42,uVar42);
  uVar25 = *(ulonglong *)(lVar3 - (uVar25 ^ 0xeeef745e)) ^ uVar24 ^ uVar45 ^ uVar41 ^
           *(ulonglong *)(lVar3 + -0x2a0);
  DAT_1826715a0 = uVar30;
  *(ulonglong *)(lVar3 + -0x628) = uVar25;
  uVar36 = (uVar25 >> 0x20 ^ uVar23) >> 8;
  *(ulonglong *)(lVar4 + -0x240) = uVar36 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x670) = CONCAT44(uVar20,uVar30) << 0x3e ^ 0x8000000000000000;
  uVar37 = (ulonglong)uVar30;
  uVar23 = (uVar24 ^ uVar25) << (((byte)uVar6 ^ 0xee) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar23 ^ CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar12 = DAT_18267183c;
  lVar3 = DAT_182671560;
  uVar23 = uVar23 | uVar36;
  uVar24 = CONCAT44(DAT_182671658,DAT_182671658);
  puVar19 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar23 ^ uVar24;
  uVar20 = DAT_182671578;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671578 ^ 0x491e38e6)) =
       (uVar45 ^ *puVar19) - uVar23 ^ uVar36;
  uVar23 = (ulonglong)DAT_1826717bc;
  uVar25 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar30 ^ 0xa7f14788)) = 0x1dbb355cf333c645;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xa7f141d8)) =
       uVar25 ^ uVar24 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0xc08) ^ *(ulonglong *)(lVar3 + -0x800);
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(DAT_182671560 + -0x6d0) >> 0x20 ^ uVar23) >> 0x14 ^ uVar24;
  uVar23 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xeeef7a26)) ^ uVar25) << 0xc;
  uVar44 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar23 ^ CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar23 = *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0xa7f14d80)) ^ uVar24 | uVar23;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x491e3aee)) = uVar23 ^ uVar44;
  uVar25 = CONCAT44(DAT_182671710,DAT_182671710);
  *(uint *)(lVar3 + -0x274) = (DAT_182671578 ^ 0x4e3dffb) + *(int *)(lVar3 + -0x844);
  uVar13 = DAT_18267179c;
  *(ulonglong *)(lVar3 + -0x2a0) = (uVar29 ^ *(ulonglong *)(lVar3 + -0xc08)) - uVar23 ^ uVar25;
  uVar12 = DAT_18267176c;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar24 = *(ulonglong *)(lVar3 - (uVar31 ^ 0x4e2f3f98)) ^ uVar41 ^ uVar36 ^ uVar46 ^
           *(ulonglong *)(lVar3 + -0x1d8);
  *(ulonglong *)(lVar3 + -0x670) = uVar24;
  uVar29 = CONCAT44(uVar12,uVar12);
  local_78 = (byte)uVar10;
  *(ulonglong *)(lVar3 + -0x628) = (uVar24 ^ uVar41) >> ((local_78 ^ 0x4f) & 0x3f) ^ uVar29;
  uVar23 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x6e269ffb)) =
       (uVar41 ^ uVar24) << (((byte)DAT_18267159c ^ 0x87) & 0x3f) ^ uVar38;
  uVar24 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar33 = *(ulonglong *)(lVar3 - (uVar23 ^ 0x4e2f3aa8)) ^ uVar29 |
           *(ulonglong *)(lVar3 - (uVar18 ^ 0x6656d2e4)) ^ uVar38;
  uVar38 = uVar33 ^ uVar24;
  *(int *)(lVar3 + -0x678) = -0x10d7e930 << (((byte)uVar14 ^ 0x96) & 0x1f);
  uVar12 = _DAT_18267161c;
  *(ulonglong *)(lVar3 + -0x898) = uVar38;
  uVar13 = DAT_18267182c;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x8a8) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0xf3f584e4)) ^ uVar36) - uVar33 ^ uVar29;
  uVar23 = (ulonglong)DAT_1826716d0;
  uVar45 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar20 = DAT_1826716d0 >> 0xe;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar33 = (ulonglong)DAT_182671590;
  uVar36 = uVar45 ^ uVar24 ^ uVar25 ^ uVar38 ^ *(ulonglong *)(lVar3 + -0x2a0);
  *(ulonglong *)(lVar3 + -0x80) = uVar36;
  uVar12 = DAT_1826716fc;
  uVar36 = (uVar45 ^ uVar36) << 0x32;
  *(ulonglong *)(lVar3 + -0x800) =
       (uVar23 << 0x12 | (ulonglong)uVar20) ^ *(ulonglong *)(lVar3 - (uVar33 ^ 0xcf82e880)) >> 0xe ^
       uVar41;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar36 ^ CONCAT44(uVar12,uVar12);
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xa7f14cf8)) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x625488a4)) ^ uVar41 | uVar36) ^ uVar24;
  uVar33 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x2a0)) - (CONCAT44(uVar6,uVar9) ^ 0xce12f53b804b3414);
  *(ulonglong *)(lVar4 + -0xa88) = uVar33 ^ CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar13 = DAT_18267180c;
  *(ulonglong *)(lVar4 + -0xc08) = uVar33 - (uVar24 ^ *(ulonglong *)(lVar4 + -0xbf0)) ^ uVar34;
  uVar12 = _DAT_1826715f0;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x1d8) =
       (*(ulonglong *)(lVar4 - (uVar43 ^ 0x5c262570)) ^ uVar24) -
       (CONCAT44(uVar8,uVar6) ^ 0x7f334c0314f2253e) ^ uVar23;
  uVar24 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671578 ^ 0x491e3d8e)) =
       *(ulonglong *)(lVar4 - (uVar32 ^ 0xe3d29b70)) ^ uVar24 ^ uVar29 ^ uVar44 ^
       *(ulonglong *)(lVar4 + -0x110);
  uVar12 = DAT_18267185c;
  uVar39 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar4 + -0x628) =
       (uVar24 ^ *(ulonglong *)(lVar4 + -0x670)) >> (((byte)uVar5 ^ 0xab) & 0x3f) ^ uVar39;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x2a001e42)) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0xa7f14178)) ^ uVar24) << 0x30 ^ uVar33;
  uVar28 = uVar39 ^ *(ulonglong *)(lVar4 + -0x628) | uVar33 ^ *(ulonglong *)(lVar4 + -0x240);
  uVar33 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(ulonglong *)(lVar4 + -0x318) = uVar28 ^ CONCAT44(DAT_1826716d4,DAT_1826716d4);
  uVar12 = DAT_182671634;
  *(ulonglong *)(lVar4 + -0x898) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xf3f58f54)) ^ uVar29) -
       (CONCAT44(iVar17,uVar7) ^ 0x33d52e4f8a36a26a) ^ uVar33;
  *(ulonglong *)(lVar4 + -0x80) =
       (*(ulonglong *)(lVar4 - (uVar43 ^ 0x5c262618)) ^ uVar33) - uVar28 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar18 ^ 0x6656d8a4)) =
       uVar28 - (CONCAT44(uVar21,uVar40) ^ 0x33aaeedcd4d2cba3) ^
       CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar35 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x410) ^ uVar22) =
       uVar35 ^ uVar34 ^ *(ulonglong *)(lVar4 + -0xc08);
  puVar19 = (ulonglong *)
            ((*(ulonglong *)(lVar4 + -0x410) ^ uVar22) +
            (CONCAT44(uVar26,uVar30) ^ 0xe3d293d8a7f14709) * 8);
  *(ulonglong *)(lVar4 + -0x2d8) = (ulonglong)puVar19 ^ CONCAT44(DAT_182671748,DAT_182671748);
  uVar12 = DAT_182671604;
  *(ulonglong *)(lVar4 + -0x6d0) =
       CONCAT44(uVar11,uVar40) ^ uVar24 ^ *(ulonglong *)(lVar4 + -0x670) ^ 0x2700bc89c78ae1e1;
  *puVar19 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x4e2f3d58)) ^ uVar35 ^ uVar23;
  *(ulonglong *)(lVar4 + -0xa38) =
       (*(ulonglong *)(lVar4 + -0x410) ^ uVar22) +
       (CONCAT44(uVar14,uVar11) ^ 0x93a4c6802a001c00) * 8 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x2a0) = (CONCAT44(uVar11,iVar17) ^ 0xfff2edd4b2929394) << 0xb;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar2 ^ uVar26;
  return;
}



############ FUN_ 180e74550 size=5641 ############

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

void FUN_180e74550(void)

{
  uint uVar1;
  uint uVar2;
  int iVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  longlong lVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  uint uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  byte local_res18;
  byte local_130;
  byte local_128;
  byte local_110;
  
  uVar13 = DAT_1826718b8;
  uVar21 = DAT_1826715b4;
  uVar12 = DAT_1826715a8;
  uVar11 = DAT_1826715a0;
  uVar10 = DAT_182671594;
  uVar9 = DAT_18267158c;
  uVar16 = DAT_182671580;
  uVar8 = DAT_182671578;
  uVar28 = (ulonglong)DAT_1826715a8;
  uVar33 = (ulonglong)DAT_182671580;
  uVar35 = (ulonglong)DAT_182671578;
  uVar30 = (ulonglong)DAT_1826715a0;
  uVar49 = (ulonglong)DAT_182671594;
  uVar32 = DAT_182671580 - DAT_1826715a0;
  uVar19 = DAT_182671578 & DAT_182671594;
  uVar1 = DAT_18267158c + DAT_1826715b4;
  uVar55 = (DAT_1826715a8 << 0x10 | DAT_1826715a8 & 0xff00) << 8 | DAT_1826715a8 >> 8 & 0xff00 |
           DAT_1826715a8 >> 0x18;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671b08);
  uVar52 = *(uint *)(&DAT_182611e78 + DAT_182671b08) ^ DAT_1826715a8;
  uVar42 = (ulonglong)uVar19;
  uVar25 = CONCAT44(DAT_182671594,DAT_182671578);
  DAT_182671568 = uVar19;
  DAT_182671570 = uVar32;
  DAT_182671584 = uVar55;
  DAT_182671598 = uVar1;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (uVar25 ^ 0xeeb3825d4570d773) - (CONCAT44(uVar19,DAT_1826715a0) ^ 0x88b90d9bfce8af11);
  lVar4 = DAT_182671560;
  uVar24 = (ulonglong)uVar1;
  uVar31 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar36 = CONCAT44(DAT_182671824,DAT_182671824);
  uVar22 = (ulonglong)uVar9;
  bVar17 = (byte)uVar9;
  uVar39 = (ulonglong)uVar32;
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xfffff977)) ^ CONCAT44(uVar13,uVar13) |
       uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x800)) ^ uVar36;
  uVar27 = (ulonglong)uVar21;
  puVar26 = (ulonglong *)(lVar4 - (uVar27 ^ 0x3aaa1730));
  *puVar26 = 0x5a669ac93d8dad41 << ((bVar17 ^ 0xd4) & 0x3f);
  uVar23 = CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar53 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar4 + -0x638) =
       uVar53 ^ uVar23 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x748) ^ *(ulonglong *)(lVar4 + -0x9f8);
  uVar14 = DAT_182671834;
  lVar5 = DAT_182671560;
  puVar50 = (ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x256a2760));
  uVar46 = CONCAT44(DAT_182671894,DAT_182671894);
  uVar37 = (CONCAT44(uVar16,uVar12) ^ 0x13cb94532fce29c8) + (uVar23 ^ *puVar50);
  uVar23 = (ulonglong)uVar55;
  uVar36 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar4 + -0xc08) = uVar37 ^ uVar46;
  uVar13 = DAT_1826716f8;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar36 = (uVar36 ^ *(ulonglong *)(lVar5 + -0x80)) + (CONCAT44(uVar55,uVar10) ^ 0x6d82d3d6f4b30172)
  ;
  *(ulonglong *)(lVar5 + -0xa60) = uVar36 ^ uVar40;
  lVar4 = DAT_182671560;
  local_130 = (byte)uVar11;
  iVar3 = *(int *)(DAT_182671560 + -0x344);
  uVar56 = CONCAT44(uVar13,uVar13);
  uVar43 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar36 + uVar37 ^ uVar56;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar37 << ((local_130 ^ 0x41) & 0x3f) ^ uVar43;
  *(uint *)(lVar4 - (uVar22 ^ 0xc555e98b)) = (uVar32 ^ 0x416d4b2b) * iVar3;
  uVar13 = DAT_18267171c;
  lVar4 = DAT_182671560;
  local_110 = (byte)(uVar12 >> 0x18);
  uVar36 = (uVar46 ^ *(ulonglong *)(DAT_182671560 + -0xc08)) >> ((local_110 ^ 0xad) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar36 ^ CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar6 = DAT_1826715fc;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar46 = (ulonglong)DAT_1826715fc;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xfffff57f)) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xca354ead)) ^ uVar43 | uVar36) ^ uVar37;
  uVar36 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar43 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xf5fefa47)) =
       uVar36 ^ uVar37 ^ uVar56 ^ *(ulonglong *)(lVar4 + -0xa80) ^ *(ulonglong *)(lVar4 + -0x670);
  *(ulonglong *)(lVar4 + -0x318) = (CONCAT44(uVar16,uVar21) ^ 0xe6a8c88d) << 0x1f;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0xa0) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xca3549cd)) ^ uVar31) +
       (CONCAT44(uVar32,uVar12) ^ 0x94dfbf6dd1ece607) ^ uVar43;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0x423540fd)) =
       (*(ulonglong *)(lVar5 - (uVar23 ^ 0x100707fa)) ^ uVar56) << (((byte)uVar19 ^ 100) & 0x3f);
  uVar13 = DAT_182671898;
  uVar31 = (uVar53 ^ *(ulonglong *)(lVar5 + -0x748)) + (CONCAT44(uVar9,uVar8) ^ 0x781624bffcfe50d4);
  *(ulonglong *)(lVar5 + -0x600) = uVar31 ^ CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar51 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar39 ^ 0xd094dd6f)) =
       (*(ulonglong *)(lVar5 + -0xa0) ^ uVar43) + uVar31 ^ uVar51;
  uVar37 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  local_128 = (byte)uVar16;
  *(ulonglong *)(lVar5 - (uVar49 ^ 0x42354985)) =
       (*(ulonglong *)(lVar5 - (uVar24 ^ 0xffffff5f)) ^ uVar43) << ((local_128 ^ 0xde) & 0x3f) ^
       uVar37;
  uVar13 = DAT_1826717e0;
  uVar43 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar24 = ((ulonglong)(uVar6 >> 0x1f) | uVar46 * 2) ^ *(ulonglong *)(lVar5 + -0xa0) >> 0x1f;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar24 ^ uVar43;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x8a010198)) =
       (*(ulonglong *)(lVar5 + -0x3f0) ^ uVar37 | uVar24) ^ uVar31;
  uVar13 = DAT_1826716e8;
  uVar53 = CONCAT44(DAT_182671654,DAT_182671654);
  uVar37 = CONCAT44(DAT_182671608,DAT_182671608);
  uVar24 = uVar53 ^ uVar31 ^ uVar51 ^ *(ulonglong *)(lVar5 + -0x688) ^
           *(ulonglong *)(lVar5 + -0x5c8);
  *(ulonglong *)(lVar5 + -0x800) = uVar24;
  uVar24 = (uVar56 ^ *(ulonglong *)(lVar5 + -0x670)) + (uVar24 ^ uVar53);
  uVar46 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x610) = uVar24 ^ uVar37;
  uVar13 = DAT_182671854;
  *(ulonglong *)(lVar5 + -0x9f8) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x3aaa1920)) ^ uVar53) << ((bVar17 ^ 0xf1) & 0x3f) ^ uVar46
  ;
  uVar44 = CONCAT44(uVar13,uVar13);
  local_res18 = (byte)uVar32;
  *puVar50 = uVar24 << ((local_110 ^ 0xb5) & 0x3f);
  lVar4 = DAT_182671560;
  uVar31 = (*(ulonglong *)(DAT_182671560 + -0x800) ^ uVar53) >> ((local_res18 ^ 0xb5) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       CONCAT44(uVar1,uVar55) ^ CONCAT44(uVar9,uVar8) ^ 0x7388a7b1581c80a5;
  uVar13 = DAT_1826715ec;
  *(ulonglong *)(lVar4 + -0x80) = uVar31 ^ uVar44;
  uVar6 = DAT_182671820;
  uVar14 = DAT_182671640;
  uVar24 = CONCAT44(uVar13,uVar13);
  uVar31 = (uVar31 | uVar46 ^ *(ulonglong *)(lVar4 + -0x9f8)) ^ uVar24;
  uVar48 = (ulonglong)DAT_182671820;
  uVar46 = uVar36 ^ *(ulonglong *)(lVar4 + -0x3b8);
  *(ulonglong *)(lVar4 + -0xc08) = uVar31;
  uVar56 = CONCAT44(uVar14,uVar14);
  uVar34 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 + -0x1f0) = (uVar51 ^ *(ulonglong *)(lVar4 + -0x5c8)) + uVar46 ^ uVar56;
  *(ulonglong *)(lVar4 + -0x1d8) =
       uVar31 ^ *(ulonglong *)(lVar4 + -0x610) ^ uVar34 ^ uVar24 ^ uVar37;
  uVar14 = DAT_182671780;
  puVar50 = (ulonglong *)(lVar4 - (uVar30 ^ 0x256a22e0));
  uVar47 = CONCAT44(DAT_182671638,DAT_182671638);
  uVar31 = (uVar36 ^ *puVar50) << 0xc;
  uVar46 = uVar46 >> ((local_130 ^ 0x6c) & 0x3f);
  *(ulonglong *)(lVar4 + -0x318) = uVar46 ^ CONCAT44(DAT_182671888,DAT_182671888);
  uVar13 = DAT_18267177c;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xa80) = uVar31 ^ uVar47;
  uVar45 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x6b8) = (uVar31 | uVar46) ^ uVar24;
  uVar53 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar4 + -0xa88) =
       *(ulonglong *)(lVar4 - (uVar42 ^ 0x42354ccd)) ^ *(ulonglong *)(lVar4 - (uVar27 ^ 0x3aaa10d0))
       ^ uVar45 ^ uVar24 ^ uVar56;
  uVar6 = DAT_18267156c;
  uVar38 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar4 - (uVar49 ^ 0x42354d3d)) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xca3545fd)) ^ uVar45) +
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar37) ^ uVar53;
  uVar7 = DAT_182671574;
  uVar37 = (ulonglong)DAT_182671574;
  uVar20 = uVar6 ^ DAT_182671574;
  uVar46 = (ulonglong)uVar20;
  uVar57 = CONCAT44(DAT_182671634,DAT_182671634);
  puVar41 = (ulonglong *)(lVar4 - (uVar46 ^ 0xd831ba53));
  DAT_182671590 = uVar20;
  *puVar41 = (*(ulonglong *)(lVar4 + -0xa88) ^ uVar45) << 0x3a ^ uVar57;
  uVar31 = (*(ulonglong *)(lVar4 + -0xa88) ^ uVar45) >> (((byte)uVar6 ^ 0xb6) & 0x3f);
  uVar24 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar4 + -0xa0) = uVar31 ^ uVar47;
  uVar13 = DAT_182671734;
  lVar5 = DAT_182671560;
  uVar31 = (uVar31 | *puVar41 ^ uVar57) ^ uVar24;
  *(ulonglong *)(lVar4 + -0x3f0) = uVar31;
  uVar54 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0xf681ff40)) =
       uVar31 ^ *(ulonglong *)(lVar5 + -0x748) ^ uVar54 ^ uVar24 ^ uVar53;
  *(ulonglong *)(lVar5 + -0x688) =
       CONCAT44(uVar7,uVar7) ^ uVar51 ^ *(ulonglong *)(lVar5 + -0x5c8) ^ 0x36497554172d8316;
  lVar4 = DAT_182671560;
  uVar24 = *(ulonglong *)(lVar5 + -0x1d8);
  puVar41 = (ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0xd831bda3));
  uVar34 = uVar24 ^ uVar34;
  uVar31 = (*puVar41 ^ uVar56) + uVar34;
  uVar56 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar31 ^ uVar56;
  uVar13 = DAT_1826715c8;
  *(ulonglong *)(lVar4 + -0x638) = uVar31 | CONCAT44(uVar6,uVar32) ^ 0x61188ae0f24aa51;
  uVar14 = DAT_182671698;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x800) = uVar34 << 0x16 ^ uVar31;
  uVar47 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar46 ^ 0xd831b633)) = (uVar24 >> 0x20 ^ uVar48) >> 10 ^ uVar47;
  uVar15 = DAT_1826718a4;
  uVar24 = (ulonglong)DAT_1826718a4;
  uVar34 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar4 + -0x9f8) =
       (uVar47 ^ *(ulonglong *)(lVar4 + -0xa60) | *(ulonglong *)(lVar4 + -0x800) ^ uVar31) ^ uVar34;
  uVar31 = CONCAT44(uVar15,uVar15);
  lVar29 = (CONCAT44(uVar6,uVar32) ^ 0xc8ee42fc3bc1db7b) -
           (CONCAT44(uVar6,uVar20) ^ 0xb298ac4d36c88f27);
  *(longlong *)(lVar4 + -0x80) = lVar29;
  uVar34 = *(ulonglong *)(lVar4 - (uVar37 ^ 0x2eb0411b)) ^ uVar31 ^ uVar34 ^ uVar56 ^
           *(ulonglong *)(lVar4 + -0x670);
  *(ulonglong *)(lVar4 + -0xc08) = uVar34;
  lVar5 = DAT_182671560;
  uVar48 = (*(ulonglong *)(lVar4 + -0x748) ^ uVar53) + (uVar34 ^ uVar31);
  *(ulonglong *)(lVar4 + -0x3b8) = uVar48 ^ uVar40;
  *(ulonglong *)(lVar4 + -0xa80) = CONCAT44(uVar12,uVar20) ^ 0xdcd49a165878ed74;
  uVar53 = (uVar34 ^ uVar31) << ((bVar17 ^ 0xff) & 0x3f);
  uVar24 = *(ulonglong *)(lVar5 + -0xc08) >> 0x20 ^ uVar24;
  *(ulonglong *)(lVar5 + -0x318) = uVar53 ^ CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar24 ^ uVar57;
  uVar13 = _DAT_182671838;
  *(ulonglong *)(lVar5 + -0x610) = lVar29 - (CONCAT44(uVar9,uVar12) ^ 0x260b72e7f80513fe);
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar34 = (uVar53 | uVar24) ^ uVar31;
  uVar24 = *(ulonglong *)(DAT_182671560 + -0x670);
  uVar53 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar34;
  uVar45 = *(ulonglong *)(lVar4 + -0xbf0) ^ uVar54;
  *(ulonglong *)(lVar4 + -0x600) = uVar48 ^ uVar53 ^ uVar34 ^ uVar31;
  uVar34 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar4 + -0xa0) =
       (*(ulonglong *)(lVar4 + -0xbf0) ^ uVar54) + (uVar56 ^ uVar24) ^ uVar34;
  lVar5 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(lVar4 + -0x3f0) = uVar45 << ((local_128 ^ 0xdf) & 0x3f) ^ uVar31;
  uVar24 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x10070442)) = uVar45 >> ((local_130 ^ 0x78) & 0x3f) ^ uVar24;
  uVar24 = (*(ulonglong *)(lVar4 - (uVar39 ^ 0xd094db57)) ^ uVar31 |
           uVar24 ^ *(ulonglong *)(lVar4 + -0x5c8)) ^ uVar43;
  *(uint *)(lVar4 + -0x874) = DAT_1826715a0 ^ 0xf2c5397a | *(uint *)(lVar4 + -0x3d4);
  uVar13 = DAT_1826717d8;
  *(ulonglong *)(lVar4 + -0x688) = uVar24;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar24 = *(ulonglong *)(lVar4 - (uVar46 ^ 0xd831bcf3)) ^ uVar31 ^ uVar34 ^ uVar43 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x1f0) = uVar24;
  uVar43 = (ulonglong)DAT_182671864;
  uVar46 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar5 - (uVar23 ^ 0x100707b2)) =
       (CONCAT44(uVar32,uVar19) ^ 0x6dd712c774fe55d4) + (uVar24 ^ uVar31) ^ uVar46;
  uVar24 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar31 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar5 + -0x1d8) =
       (uVar40 ^ *(ulonglong *)(lVar5 + -0x3b8)) + (uVar25 ^ 0x6944385ccdaaf951) ^ uVar24;
  bVar18 = (byte)uVar1;
  *(ulonglong *)(lVar5 - (uVar39 ^ 0xd094d2c7)) =
       (*(ulonglong *)(lVar5 - (uVar28 ^ 0x8a0106c8)) ^ uVar24) +
       (*(ulonglong *)(lVar5 + -0x638) ^ uVar46) ^ uVar31;
  uVar25 = (*(ulonglong *)(lVar5 + -0x638) >> 0x20 ^ uVar43) >> 0x12;
  uVar23 = (*(ulonglong *)(lVar5 + -0x638) ^ uVar46) << ((bVar18 ^ 0xf1) & 0x3f);
  uVar24 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(lVar5 + -0x800) = uVar23 ^ CONCAT44(DAT_182671774,DAT_182671774);
  uVar14 = DAT_182671624;
  *(ulonglong *)(lVar5 + -0x9f8) = uVar25 ^ uVar24;
  uVar13 = DAT_182671614;
  uVar24 = CONCAT44(uVar14,uVar14);
  uVar23 = (uVar25 | uVar23) ^ uVar24;
  *(ulonglong *)(lVar5 + -0x748) = uVar23;
  uVar56 = CONCAT44(uVar13,uVar13);
  *(uint *)(lVar5 + -0x640) = (DAT_182671584 ^ 0xe2b16550) + 0xfb9a2cfa;
  *(ulonglong *)(lVar5 + -0xa80) =
       uVar23 ^ uVar56 ^ uVar24 ^ uVar31 ^ *(ulonglong *)(lVar5 + -0xa60);
  uVar15 = DAT_18267185c;
  uVar14 = DAT_1826717b8;
  uVar46 = (CONCAT44(uVar8,uVar10) ^ 0xe3a61add85f63c5e) + (*(ulonglong *)(lVar5 + -0x600) ^ uVar53)
  ;
  uVar43 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *(ulonglong *)(lVar5 + -0xc08) = uVar46 ^ uVar43;
  uVar13 = DAT_182671648;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x610) =
       (CONCAT44(uVar1,uVar16) ^ 0x952edd247e404110) + (*(ulonglong *)(lVar5 + -0xa0) ^ uVar34) ^
       uVar23;
  uVar25 = CONCAT44(uVar13,uVar13);
  uVar24 = *(ulonglong *)(lVar5 - (uVar27 ^ 0x3aaa1d28));
  uVar27 = *puVar26;
  *(ulonglong *)(lVar5 + -0x318) = uVar46 << ((bVar18 ^ 0xef) & 0x3f) ^ uVar44;
  uVar24 = (uVar24 ^ uVar43) + (uVar27 ^ uVar23) ^ uVar25;
  uVar27 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar5 + -0x80) = uVar24;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (ulonglong)*(ushort *)(lVar5 + -0xc02) ^ (ulonglong)(uVar15 >> 0x10) ^ uVar27;
  uVar43 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar39 = *(ulonglong *)(lVar5 - (uVar39 ^ 0xd094de1f)) ^ uVar27 |
           *(ulonglong *)(lVar5 - (uVar38 ^ 0xf681f7a8)) ^ uVar44;
  uVar23 = uVar39 ^ uVar43;
  *(ulonglong *)(lVar5 + -0xa88) = uVar23;
  *(ulonglong *)(lVar5 + -0x670) =
       0xb4bb592c3bf0c8b - (CONCAT44(uVar55,uVar21) ^ 0x8b12beab9e2a5624);
  uVar27 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar24 = uVar27 ^ uVar43 ^ uVar25 ^ uVar23 ^ uVar24;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar24;
  uVar13 = DAT_1826715c4;
  *(ulonglong *)(lVar5 + -0x3f0) = uVar39 + 0xcc80eb6a2535253d;
  uVar14 = DAT_18267186c;
  uVar43 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x5c8) =
       (uVar31 ^ *(ulonglong *)(lVar5 + -0xa60)) + (uVar24 ^ uVar27) ^ uVar43;
  uVar13 = DAT_182671860;
  lVar4 = DAT_182671560;
  uVar16 = *(uint *)(lVar5 + -0x374) ^ DAT_182671650;
  uVar39 = (*(ulonglong *)(lVar5 - (uVar37 ^ 0x2eb04313)) ^ uVar27) << ((bVar17 ^ 0xeb) & 0x3f);
  uVar21 = *(uint *)(lVar5 + -0x968) ^ DAT_18267180c;
  *(ulonglong *)(lVar5 + -0x688) = uVar39 ^ CONCAT44(uVar14,uVar14);
  uVar24 = *(ulonglong *)(lVar4 + -0xc80);
  *(uint *)(lVar5 + -0x5cc) = uVar21 * uVar16;
  uVar27 = (uVar27 ^ *(ulonglong *)(lVar5 + -0xbf0)) >> (((byte)uVar20 ^ 0x5f) & 0x3f);
  *(ulonglong *)(lVar5 + -0x1f0) = uVar27 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671720;
  uVar16 = _DAT_1826715e0;
  *(byte *)(lVar4 + -0x41) = *(byte *)(uVar24 ^ _DAT_1826715e0) ^ (byte)DAT_1826717c0;
  uVar24 = CONCAT44(uVar13,uVar13);
  uVar37 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar4 + -0x3b8) = (uVar27 | uVar39) ^ uVar24;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xc555ef07)) =
       *(ulonglong *)(lVar4 - (uVar35 ^ 0xca354abd)) ^ uVar37 ^ uVar24 ^ uVar43 ^ *puVar50;
  uVar13 = DAT_18267163c;
  *(ulonglong *)(lVar4 + -0x638) =
       (CONCAT44(uVar6,uVar10) ^ 0xf6554f0a320f6ff4) -
       (CONCAT44(uVar11,uVar12) ^ 0x22f418c3dd27fc76);
  uVar14 = DAT_1826717a4;
  uVar39 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x800) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x256a21d8)) ^ uVar25) +
       (uVar56 ^ *(ulonglong *)(lVar4 + -0xa80)) ^ uVar39;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar31 = (*(ulonglong *)(lVar4 - (uVar42 ^ 0x423540f5)) ^ uVar56) << ((local_128 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9f8) = uVar31 ^ uVar23;
  uVar13 = DAT_182671694;
  *(ulonglong *)(lVar4 + -0x748) =
       (CONCAT44(uVar9,uVar32) ^ 0x6d82428204054cd1) + (CONCAT44(uVar8,uVar6) ^ 0x7d0722eed8488ea);
  uVar42 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0x8a010d90)) ^ uVar56) >> ((local_110 ^ 0x8d) & 0x3f);
  uVar27 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar4 + -0x600) = uVar42 ^ CONCAT44(uVar13,uVar13);
  uVar25 = (ulonglong)DAT_1826715b8;
  uVar24 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar4 - (uVar49 ^ 0x42354ad5)) = (uVar42 | uVar31) ^ uVar27;
  uVar13 = DAT_182671688;
  lVar5 = DAT_182671560;
  uVar49 = *(ulonglong *)(lVar4 + -0x800) ^ *(ulonglong *)(lVar4 + -0xa0) ^ uVar24 ^ uVar27 ^ uVar39
  ;
  *(ulonglong *)(lVar4 + -0x610) = uVar49;
  uVar14 = DAT_18267189c;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar27 = (uVar49 ^ uVar24) + (uVar43 ^ *(ulonglong *)(lVar5 + -0x5c8));
  uVar42 = uVar27 ^ uVar31;
  *(ulonglong *)(lVar5 + -0xc08) = uVar42;
  uVar49 = (uVar49 ^ uVar24) << (((byte)uVar10 ^ 0x62) & 0x3f);
  *(ulonglong *)(lVar5 + -0x318) = uVar49 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x6b8) = (uVar23 ^ *(ulonglong *)(lVar5 + -0x9f8)) + uVar27;
  uVar13 = DAT_18267184c;
  uVar24 = (*(ulonglong *)(lVar5 - (uVar30 ^ 0x256a2748)) >> 0x20 ^ uVar25) >> 9;
  *(ulonglong *)(lVar5 + -0x670) = uVar24 ^ uVar36;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0xa88) = (uVar24 | uVar49) ^ uVar27;
  uVar37 = uVar37 ^ *(ulonglong *)(lVar5 + -0x1d8);
  *(ulonglong *)(lVar5 + -0x3f0) =
       *(ulonglong *)(lVar5 - (uVar33 ^ 0xf5fef377)) ^ CONCAT44(_DAT_18267188c,_DAT_18267188c) ^
       uVar42 ^ uVar27 ^ uVar31;
  uVar13 = DAT_182671768;
  *(ulonglong *)(lVar5 + -0xa60) =
       CONCAT44(uVar16,uVar16) ^ (*(ulonglong *)(lVar5 + -0x800) ^ uVar39) + uVar37;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar37 << (((byte)uVar10 ^ 0x5d) & 0x3f) ^ uVar47;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xc555e857)) =
       uVar37 >> ((bVar18 ^ 0xe7) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *puVar41 = CONCAT44(uVar20,uVar7) ^ CONCAT44(uVar1,uVar8) ^ 0xce46e53361153408;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar55) * 4) = uVar52;
  return;
}



############ FUN_ 180ed7f50 size=5232 ############

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

void FUN_180ed7f50(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  ulonglong *puVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  byte local_res18;
  byte local_f0;
  byte local_68;
  
  uVar20 = DAT_182671764;
  uVar11 = DAT_18267159c;
  uVar10 = DAT_182671598;
  uVar7 = DAT_182671584;
  uVar5 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar34 = (ulonglong)DAT_18267157c;
  uVar22 = DAT_182671598 + DAT_18267157c;
  uVar19 = *(uint *)(&DAT_182611e78 + DAT_18267193c) ^ DAT_182671598;
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_18267193c) ^ DAT_18267157c;
  uVar41 = (ulonglong)DAT_182671598;
  uVar32 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar29 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  uVar25 = (ulonglong)DAT_182671568;
  uVar30 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0x3bcf3c86)) ^ uVar32) +
           (CONCAT44(DAT_182671760,DAT_182671760) ^ *(ulonglong *)(DAT_182671560 + -0x548)) ^ uVar29
  ;
  uVar24 = CONCAT44(DAT_182671584,DAT_18267159c);
  uVar35 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  DAT_1826715a8 = uVar22;
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar30;
  uVar23 = DAT_182671574;
  uVar40 = (*(ulonglong *)(lVar2 - (uVar25 ^ 0xff7fe8b3)) ^ uVar32) <<
           (((byte)uVar11 ^ 0xc1) & 0x3f);
  uVar33 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar2 + -0x898) = uVar40 ^ uVar35;
  uVar25 = ((ulonglong)uVar20 << 0x1a | (ulonglong)(uVar20 >> 6)) ^
           *(ulonglong *)(lVar2 + -0x748) >> 6;
  *(ulonglong *)(lVar2 + -0x670) = uVar25 ^ uVar33;
  uVar14 = DAT_182671880;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar40 | CONCAT44(uVar23,uVar10) ^ 0x2fd40c5dda741655;
  uVar4 = DAT_1826718d4;
  uVar20 = DAT_182671590;
  lVar3 = DAT_182671560;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar25 = (uVar40 | uVar25) ^ uVar32;
  uVar42 = (ulonglong)DAT_1826718d4;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar25;
  uVar6 = DAT_18267159c;
  uVar44 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0xfe75e9e8)) =
       uVar44 ^ uVar32 ^ uVar29 ^ uVar25 ^ uVar30;
  uVar14 = DAT_18267162c;
  uVar40 = CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar35 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  puVar36 = (ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0xf8ef76e6));
  *puVar36 = (CONCAT44(DAT_182671734,DAT_182671734) ^ *(ulonglong *)(lVar3 + -0x9f8)) +
             (uVar40 ^ *(ulonglong *)(lVar3 + -0x110)) ^ uVar35;
  uVar15 = DAT_182671710;
  lVar2 = DAT_182671560;
  uVar37 = CONCAT44(uVar14,uVar14);
  puVar26 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0xff7fe9c3));
  *puVar26 = (*(ulonglong *)(lVar3 - (uVar41 ^ 0xfffffeef)) ^ uVar40) << 0x16 ^ uVar37;
  uVar4 = DAT_182671574;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar25 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x3bcf3fcf)) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x110)) >> (((byte)uVar6 ^ 0xd1) & 0x3f) ^ uVar30;
  uVar14 = DAT_1826717d0;
  uVar6 = DAT_182671580;
  uVar40 = CONCAT44(DAT_182671638,DAT_182671638);
  uVar38 = (ulonglong)DAT_182671580;
  uVar25 = (*(ulonglong *)(lVar2 - (uVar25 ^ 0xdee91504)) ^ uVar30 |
           *(ulonglong *)(lVar2 + -0x638) ^ uVar37) ^ uVar40;
  *(ulonglong *)(lVar2 + -0x3f0) = uVar25;
  uVar20 = DAT_182671568;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xdee9144c)) =
       uVar37 ^ uVar25 ^ uVar40 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x318);
  uVar14 = DAT_182671828;
  puVar27 = (ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0xd80d7156));
  *puVar27 = (CONCAT44(uVar20,DAT_182671584) ^ 0x9fba2530e4e92495) +
             (CONCAT44(uVar22,uVar10) ^ 0x3fdb9cc03d251d34);
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0xfe75ea30)) =
       (*(ulonglong *)(lVar2 + -0x548) ^ uVar37) + (uVar29 ^ *(ulonglong *)(lVar2 + -0x270)) ^
       uVar31;
  *(uint *)(lVar2 + -0x344) = (uVar6 ^ 0x3af4edd9) + 0x84c255c4;
  uVar8 = DAT_182671588;
  uVar30 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(lVar2 + -0x898) = (*(ulonglong *)(lVar2 + -0x548) ^ uVar37) << 0x20 ^ uVar30;
  uVar25 = (*(ulonglong *)(lVar2 + -0x548) ^ uVar37) >> (((byte)DAT_18267158c ^ 0xde) & 0x3f);
  uVar39 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(lVar2 + -0x670) = uVar25 ^ CONCAT44(DAT_182671728,DAT_182671728);
  uVar14 = DAT_182671600;
  lVar3 = DAT_182671560;
  uVar25 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xf010cdf5)) ^ uVar30 | uVar25) ^ uVar39;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar25;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar30 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671584 ^ 0xcf3bc6c3)) =
       uVar37 ^ uVar39 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0x5c8) ^ uVar25;
  uVar4 = DAT_1826715a8;
  uVar13 = DAT_1826715a0;
  uVar40 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x281db263)) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar44) + (uVar35 ^ *(ulonglong *)(lVar3 + -0x318)) ^
       uVar40;
  *(ulonglong *)(lVar3 + -0x638) =
       (CONCAT44(uVar10,uVar13) ^ 0x97dc575b95c2a78) << (((byte)uVar4 ^ 0xe1) & 0x3f);
  uVar30 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(ulonglong *)(lVar3 + -0x400) = (*(ulonglong *)(lVar3 + -0x610) ^ uVar44) << 0x20 ^ uVar30;
  uVar14 = DAT_18267166c;
  lVar2 = DAT_182671560;
  uVar44 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  puVar28 = (ulonglong *)(lVar3 - (uVar34 ^ 0x3bcf383f));
  *puVar28 = *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xf010c37d)) >> 0x20 ^ uVar44 ^ uVar42;
  uVar4 = DAT_182671568;
  puVar21 = (ulonglong *)(lVar3 - (uVar41 ^ 0xfffffc0f));
  uVar35 = (ulonglong)DAT_182671568;
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671574 ^ 0xdee9164c)) =
       (*puVar21 ^ uVar44 | *(ulonglong *)(lVar2 + -0x400) ^ uVar30) ^ uVar25;
  uVar9 = DAT_18267158c;
  uVar30 = CONCAT44(DAT_18267186c,DAT_18267186c);
  puVar45 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xf010c225));
  uVar25 = *(ulonglong *)(lVar2 - (uVar35 ^ 0xff7feeeb)) ^ *puVar45 ^ uVar30 ^ uVar25 ^ uVar40;
  *(ulonglong *)(lVar2 + -0x270) = uVar25;
  uVar29 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar41 = (uVar25 ^ uVar30) + (CONCAT44(uVar22,uVar9) ^ 0x7c4c7f104c733df3);
  uVar35 = CONCAT44(DAT_18267182c,DAT_18267182c);
  *(ulonglong *)(lVar2 + -0x548) = uVar41 ^ uVar29;
  uVar12 = DAT_18267159c;
  uVar22 = DAT_182671590;
  uVar25 = (CONCAT44(uVar7,DAT_182671590) ^ 0xe44abd12f9ea59dc) +
           (uVar31 ^ *(ulonglong *)(lVar2 + -0x5c8));
  *(ulonglong *)(lVar2 + -0x898) = uVar25 ^ uVar35;
  uVar14 = DAT_182671694;
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0x3f0)) - (CONCAT44(uVar13,uVar4) ^ 0x393ffe1d6f53d31e);
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar41 + uVar25 ^ uVar35;
  uVar7 = DAT_182671588;
  uVar42 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  uVar41 = uVar41 << (((byte)DAT_182671588 ^ 0x61) & 0x3f);
  uVar29 = (*(ulonglong *)(lVar2 + -0x548) ^ uVar29) >> (((byte)uVar22 ^ 0xca) & 0x3f);
  *(ulonglong *)(lVar2 + -0x638) = uVar29 ^ CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar2 + -0x318) = uVar41 ^ uVar42;
  *(ulonglong *)(lVar2 + -0x610) = CONCAT44(uVar23,uVar12) ^ 0x8aea22aba22b7570;
  uVar22 = DAT_18267158c;
  uVar4 = DAT_182671578;
  lVar3 = DAT_182671560;
  uVar34 = CONCAT44(DAT_182671858,DAT_182671858);
  uVar25 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xf351d16f)) = (uVar29 | uVar41) ^ uVar34;
  uVar14 = DAT_18267170c;
  uVar7 = DAT_1826715a8;
  uVar29 = CONCAT44(DAT_182671878,DAT_182671878);
  *(ulonglong *)(lVar3 + -0x748) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0x281db773)) ^ uVar29 ^ uVar34 ^
       *(ulonglong *)(lVar3 + -0x6b8) ^ uVar35;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x270) =
       (CONCAT44(uVar8,uVar7) ^ 0xdac280c7fc0c4dfb) + (uVar37 ^ *(ulonglong *)(lVar3 + -0x9f8)) ^
       uVar31;
  uVar14 = DAT_1826716a0;
  uVar25 = (CONCAT44(uVar22,DAT_1826715a0) ^ 0x7e016b322102fd6) +
           (uVar40 ^ *(ulonglong *)(DAT_182671560 + -0x110));
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar25 ^ CONCAT44(DAT_1826716d0,DAT_1826716d0);
  lVar2 = DAT_182671560;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267159c ^ 0xff7fed8b)) ^ uVar31) + uVar25 ^
       uVar37;
  local_f0 = (byte)uVar6;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671584 ^ 0xcf3bc94b)) =
       (CONCAT44(uVar20,uVar22) ^ 0xbf2f1b893c6630c9) >> ((local_f0 ^ 0x61) & 0x3f);
  uVar15 = DAT_1826716e8;
  lVar2 = DAT_182671560;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x270);
  uVar34 = (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x270)) << (((byte)uVar10 ^ 0xef) & 0x3f);
  bVar18 = (byte)DAT_182671574;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar34 ^ CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar14 = _DAT_1826716c0;
  lVar3 = DAT_182671560;
  uVar31 = (uVar31 ^ *puVar1) >> ((bVar18 ^ 0x34) & 0x3f);
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x548) = uVar31 ^ uVar43;
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x281db563)) = (uVar34 | uVar31) ^ uVar25;
  uVar31 = CONCAT44(DAT_182671834,DAT_182671834);
  uVar41 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar25 = uVar31 ^ uVar25 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x610) ^
           *(ulonglong *)(lVar3 + -0x3f0);
  *(ulonglong *)(lVar3 + -0x318) = uVar25;
  uVar34 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar3 + -0x638) =
       (uVar25 ^ uVar31) + (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar35) ^ uVar41;
  uVar14 = DAT_1826717b8;
  *(ulonglong *)(lVar3 + -0x400) = (uVar31 ^ *puVar36) << (((byte)uVar11 ^ 0xcf) & 0x3f) ^ uVar34;
  uVar20 = DAT_182671574;
  uVar25 = CONCAT44(uVar14,uVar14);
  local_res18 = (byte)uVar5;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671574 ^ 0xdee918fc)) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x318)) >> ((local_res18 ^ 0xc3) & 0x3f) ^ uVar25;
  uVar25 = uVar25 ^ *(ulonglong *)(lVar3 + -0x9f8) | uVar34 ^ *(ulonglong *)(lVar3 + -0x400);
  uVar34 = uVar29 ^ *(ulonglong *)(lVar3 + -0x748);
  *(ulonglong *)(lVar3 + -0x5c8) = uVar25 ^ CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar22 = DAT_1826715a8;
  uVar31 = uVar34 << (((byte)uVar20 ^ 0x3d) & 0x3f);
  *(ulonglong *)(lVar3 + -0x670) = uVar25 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x638) ^ uVar30;
  uVar35 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x3f0)) + (uVar29 ^ *puVar45) ^ uVar42;
  uVar34 = uVar34 >> (((byte)uVar22 ^ 0xc9) & 0x3f);
  uVar25 = (ulonglong)DAT_18267159c;
  uVar29 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar3 + -0x270) = uVar35;
  uVar15 = DAT_1826717d4;
  *(ulonglong *)(lVar3 + -0x898) = uVar31 ^ uVar29;
  uVar14 = DAT_182671628;
  *(ulonglong *)(lVar3 + -0x548) = uVar34 ^ CONCAT44(uVar15,uVar15);
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar29 = (uVar34 | uVar31) ^ uVar44;
  *(ulonglong *)(lVar3 + -0x610) = uVar29;
  *(int *)(lVar3 + -0x774) =
       *(int *)(lVar3 + -0x5cc) << ((byte)*(undefined4 *)(lVar3 - (uVar25 ^ 0xff7fea37)) & 0x1f);
  uVar20 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar34 = CONCAT44(DAT_182671770,DAT_182671770);
  uVar35 = uVar34 ^ uVar44 ^ uVar42 ^ uVar29 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar35;
  uVar25 = *(ulonglong *)(lVar2 + -0x638);
  *(int *)(lVar3 + -0x910) = *(int *)(lVar3 + -0x754) * *(int *)(lVar3 + -0x274);
  uVar29 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar2 + -0x318) = (uVar34 ^ uVar35) + (uVar41 ^ uVar25) ^ uVar29;
  uVar37 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar2 + -0x400) = (uVar34 ^ uVar35) << (((byte)uVar20 ^ 100) & 0x3f) ^ uVar37;
  uVar7 = DAT_182671590;
  uVar4 = DAT_182671588;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0xf351dc97)) =
       CONCAT44(uVar5,DAT_182671590) ^ 0xffffbfefbbebfffe | 0x5eb5bf8fb3e2a4f6;
  uVar14 = _DAT_1826715d8;
  uVar25 = (ulonglong)DAT_18267159c;
  uVar35 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar2 + -0x5c8) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x6b8)) >> (((byte)uVar10 ^ 0xd6) & 0x3f) ^ uVar35;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x3f0) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0xff7fea33)) ^ uVar35 |
       uVar37 ^ *(ulonglong *)(lVar2 + -0x400)) ^ uVar34;
  *(ulonglong *)(lVar2 + -0x748) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0x610)) - (CONCAT44(uVar7,uVar5) ^ 0x2618dcf2bac1b962);
  uVar15 = DAT_182671824;
  uVar5 = DAT_182671644;
  uVar31 = (ulonglong)DAT_182671644;
  *(ulonglong *)(lVar2 + -0x898) =
       uVar34 ^ uVar29 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0x318) ^ *puVar28;
  uVar14 = DAT_182671744;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x548) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0xf010c71d)) ^ uVar42) +
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x670)) ^ uVar34;
  lVar3 = DAT_182671560;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x281db54b)) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x670)) << (((byte)uVar4 ^ 0x47) & 0x3f) ^ uVar35;
  uVar30 = (uVar30 ^ *(ulonglong *)(lVar3 + -0x670)) >> (((byte)uVar7 ^ 0xe0) & 0x3f);
  uVar25 = CONCAT44(uVar13,DAT_182671584);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar30 ^ CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar25 ^ 0x2279c4093f462c65) - (uVar40 ^ *(ulonglong *)(lVar3 + -0x110));
  uVar25 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  uVar30 = (uVar30 | uVar35 ^ *(ulonglong *)(lVar3 + -0x638)) ^ uVar25;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xf010c16d)) = uVar30;
  uVar14 = DAT_18267184c;
  lVar2 = DAT_182671560;
  uVar25 = uVar34 ^ *(ulonglong *)(lVar3 + -0x548) ^ uVar37 ^ uVar30 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar25;
  uVar16 = DAT_1826718a0;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar30 = (*(ulonglong *)(lVar2 + -0x5c8) >> 0x20 ^ uVar31) >> 0x1b;
  uVar31 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x281db06b)) ^ uVar29) + (uVar25 ^ uVar37) ^
           uVar40;
  *(ulonglong *)(lVar2 + -0x610) = uVar31;
  uVar15 = DAT_1826716a4;
  uVar35 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0x748) = (uVar25 ^ uVar37) << 5 ^ uVar35;
  uVar14 = DAT_182671688;
  *(ulonglong *)(lVar2 + -0x3f0) = uVar30 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671860;
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar25 = (*puVar27 ^ uVar35 | uVar30) ^ uVar29;
  *(ulonglong *)(lVar2 + -0x270) = uVar25;
  uVar30 = (ulonglong)DAT_1826715a0;
  uVar44 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x670) = uVar31 ^ uVar25 ^ uVar44 ^ uVar29 ^ uVar40;
  local_68 = (byte)uVar9;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xd80d770e)) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x548)) + (*(ulonglong *)(lVar3 + -0x898) ^ uVar33) ^
       uVar39;
  uVar14 = DAT_1826717cc;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 + -0x898) ^ uVar33) << ((local_68 ^ 0xdb) & 0x3f) ^ uVar43;
  uVar20 = DAT_182671850;
  uVar37 = (ulonglong)DAT_182671850;
  uVar25 = CONCAT44(uVar14,uVar14);
  *puVar26 = ((ulonglong)(DAT_182671664 >> 0x1b) | (ulonglong)DAT_182671664 << 5) ^
             *(ulonglong *)(lVar3 + -0x898) >> 0x1b ^ uVar25;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xf010cc95)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xf351d357)) ^ uVar25 |
       uVar43 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^ uVar32;
  uVar25 = *(ulonglong *)(lVar3 + -0x110);
  uVar30 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar3 + -0x400) =
       CONCAT44(uVar23,uVar10) ^ CONCAT44(uVar10,uVar6) ^ 0xf62a900c3f0503fa;
  uVar14 = DAT_182671724;
  uVar29 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  uVar31 = (ulonglong)DAT_182671578;
  uVar34 = CONCAT44(uVar13,DAT_182671578);
  uVar32 = *(ulonglong *)(lVar3 - (uVar30 ^ 0xf8ef7c06)) ^ uVar39 ^ uVar25 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x5c8) =
       (*(ulonglong *)(lVar3 + -0x748) ^ uVar35) << (((byte)uVar22 ^ 0xc4) & 0x3f);
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x318) = uVar32 ^ uVar29;
  uVar30 = CONCAT44(uVar8,DAT_182671588);
  uVar32 = (uVar34 ^ 0x27021553d200eabb) + uVar32;
  *(ulonglong *)(lVar2 + -0x3f0) = uVar32 ^ CONCAT44(uVar20,uVar20);
  uVar15 = DAT_1826716e0;
  uVar30 = (uVar30 ^ 0xd3ac5ca2779aa55d) + (*(ulonglong *)(lVar2 + -0x610) ^ uVar40);
  *(ulonglong *)(lVar2 + -0x270) = uVar30 ^ CONCAT44(uVar14,uVar14);
  uVar14 = _DAT_1826715f0;
  uVar20 = DAT_182671574;
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar29 = uVar30 + uVar32 ^ uVar34;
  *(ulonglong *)(lVar2 + -0x548) = uVar29;
  uVar15 = DAT_1826716ec;
  uVar32 = uVar32 << (((byte)uVar20 ^ 0x1d) & 0x3f);
  *(ulonglong *)(lVar2 + -0x898) = uVar32 ^ CONCAT44(uVar14,uVar14);
  uVar4 = DAT_182671590;
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar30 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 + -0x6b8) = (*puVar21 >> 0x20 ^ uVar37) >> 7 ^ uVar35;
  uVar14 = DAT_182671718;
  uVar20 = DAT_18267159c;
  uVar40 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar2 + -0x638) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0xfe75e940)) ^ uVar35 | uVar32) ^ uVar40;
  uVar5 = DAT_18267181c;
  uVar30 = (ulonglong)DAT_18267181c;
  *(ulonglong *)(lVar2 + -0x400) = CONCAT44(uVar14,uVar14) ^ uVar29 ^ uVar40 ^ uVar34 ^ *puVar26;
  uVar24 = (uVar44 ^ *(ulonglong *)(lVar2 + -0x670)) + (uVar24 ^ 0xb2be1d6749f9a4ed);
  uVar32 = CONCAT44(uVar23,DAT_18267158c);
  *(ulonglong *)(lVar2 + -0x9f8) = uVar24 ^ CONCAT44(uVar5,uVar5);
  uVar14 = DAT_182671840;
  *(ulonglong *)(lVar2 + -0x748) =
       (CONCAT44(uVar8,uVar20) ^ 0xc906afa0ed1fdd32) - (uVar32 ^ 0x3182cbe47f8f2ac1);
  uVar20 = DAT_182671584;
  uVar25 = (uVar39 ^ uVar25) + (CONCAT44(uVar10,uVar6) ^ 0x3a2669c489d3e0fb);
  *(ulonglong *)(lVar2 + -0x5c8) = uVar25 ^ CONCAT44(DAT_182671898,DAT_182671898);
  uVar15 = DAT_182671874;
  *(ulonglong *)(lVar2 + -0x318) = uVar25 + uVar24 ^ CONCAT44(uVar14,uVar14);
  uVar23 = DAT_182671588 ^ 0x802a7089;
  *(ulonglong *)(lVar2 + -0x610) =
       uVar24 << (((byte)uVar20 ^ 0x1a) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  uVar14 = DAT_182671864;
  *(uint *)(lVar2 - (uVar31 ^ 0x281dbb07)) = uVar23 >> (((byte)uVar4 ^ 0xfa) & 0x1f);
  uVar20 = DAT_1826715a8 ^ 0xd5cbe18a;
  uVar25 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar2 + -0x270) =
       ((ulonglong)(uVar5 >> 0x1f) | uVar30 * 2) ^ *(ulonglong *)(lVar2 + -0x9f8) >> 0x1f ^
       CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar19;
  *(uint *)(lVar2 - (uVar25 ^ 0xff7fe983)) = uVar20 + 0x885c4e44;
  return;
}



############ FUN_ 180e45e90 size=3930 ############

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

void FUN_180e45e90(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  byte bVar8;
  uint uVar9;
  byte bVar10;
  byte bVar11;
  uint uVar12;
  uint *puVar13;
  uint *puVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  uint *puVar21;
  byte *pbVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  
  uVar18 = DAT_1826717f8;
  uVar5 = DAT_182671580;
  uVar4 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar34 = (ulonglong)DAT_18267157c;
  uVar30 = (ulonglong)DAT_182671580;
  uVar24 = DAT_18267157c & DAT_182671580;
  uVar12 = *(uint *)(&DAT_182611e78 + DAT_182671a70) ^ DAT_182671580;
  uVar9 = *(uint *)(&DAT_182611e80 + DAT_182671a70) ^ DAT_18267157c;
  uVar27 = (ulonglong)DAT_182671580;
  uVar28 = (*(uint *)(DAT_182671560 + -0x3d4) ^ DAT_182671648) << (((byte)uVar24 ^ 0x97) & 0x1f) ^
           DAT_182671814;
  uVar19 = (ulonglong)DAT_182671580;
  DAT_182671570 = uVar24;
  *(uint *)(DAT_182671560 + -0x344) = uVar28;
  uVar32 = DAT_182671658;
  *(uint *)(lVar2 + -0x754) =
       (*(uint *)(lVar2 - (uVar19 ^ 0xf68fd88a)) ^ DAT_1826717e8) - (uVar28 ^ DAT_182671814) ^
       uVar18;
  uVar31 = DAT_182671790 ^ *(uint *)(lVar2 + -0x27c);
  uVar16 = *(uint *)(lVar2 + -0x3d4) ^ DAT_182671648;
  *(ulonglong *)(lVar2 + -0x600) =
       (CONCAT44(uVar4,uVar24) ^ 0xc08f045527ff6a12) - (CONCAT44(uVar5,uVar5) ^ 0xd3a7041788265607);
  lVar3 = DAT_182671560;
  puVar13 = (uint *)(lVar2 - ((ulonglong)uVar24 ^ 0x568947d2));
  uVar28 = *puVar13;
  uVar17 = uVar16 * (uVar4 ^ 0x5ec965ac) ^ DAT_18267163c;
  *(uint *)(lVar2 + -0x504) = uVar17;
  uVar17 = uVar17 ^ DAT_18267163c;
  uVar28 = (uVar18 ^ uVar28) * uVar31 ^ DAT_1826716ac;
  *(uint *)(lVar2 + -0x678) = uVar28;
  uVar17 = (uVar28 ^ DAT_1826716ac) + uVar17;
  *(uint *)(lVar2 + -0x874) = uVar17 ^ uVar32;
  uVar16 = DAT_1826716f0;
  bVar1 = (byte)uVar4;
  *(uint *)(lVar3 + -0x47c) = uVar17 << (((byte)uVar24 ^ 0x8b) & 0x1f) ^ DAT_1826716f0;
  uVar17 = uVar17 >> ((bVar1 ^ 0xb4) & 0x1f) ^ DAT_182671764;
  *(uint *)(lVar3 + -0x910) = uVar17;
  uVar32 = DAT_1826715c0;
  uVar17 = uVar17 ^ DAT_182671764;
  uVar28 = *(uint *)(lVar3 - (uVar27 ^ 0xf68fd4b2));
  uVar18 = (DAT_182671624 ^ *(uint *)(lVar3 + -0x3c8)) + uVar31 ^ DAT_1826718d0;
  *(uint *)(lVar3 + -0x328) = uVar18;
  uVar18 = uVar18 ^ DAT_182671890 ^ DAT_1826718d0;
  *(uint *)(lVar3 + -0x968) = (uVar28 ^ uVar16 | uVar17) ^ DAT_1826716f8;
  *(uint *)(lVar3 - ((ulonglong)uVar4 ^ 0x5ec966d3)) = uVar18;
  *(ulonglong *)(lVar3 + -0xbf0) =
       (CONCAT44(uVar4,uVar24) ^ 0xf2f3fa97a1645a58) >> ((bVar1 ^ 0xba) & 0x3f);
  uVar17 = DAT_182671578;
  uVar15 = (ulonglong)DAT_182671578;
  puVar14 = (uint *)(lVar3 - (uVar34 ^ 0x5ec96ccf));
  *(uint *)(lVar3 + -0x5cc) = *puVar14 ^ DAT_1826715cc ^ DAT_1826716f8;
  *(uint *)(lVar3 + -0x844) = uVar32 ^ DAT_182671890 ^ *(uint *)(lVar3 + -0x374);
  *(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0xf68fd38a)) =
       *(uint *)(lVar3 - ((ulonglong)uVar4 ^ 0x5ec9606b)) ^ DAT_18267174c ^ DAT_1826715cc;
  uVar28 = DAT_182671574;
  uVar19 = (ulonglong)DAT_1826716fc;
  *(ulonglong *)(lVar3 + -0x80) =
       (CONCAT44(uVar17,uVar24) ^ 0x7c75337db852bfbc) - *(longlong *)(lVar3 - (uVar27 ^ 0xf68fd06e))
  ;
  bVar8 = (byte)DAT_18267186c;
  uVar26 = DAT_182671810;
  uVar24 = DAT_1826715a4;
  uVar33 = (ulonglong)DAT_182671680;
  uVar27 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0xb30) =
       (CONCAT44(uVar28,uVar5) ^ 0x7114c00f68fd0ce) * 0x20 +
       (CONCAT44(uVar5,uVar17) ^ 0xf68fd0ce0a212416) + *(longlong *)(lVar3 + -0x8f0) ^ uVar19;
  *(byte *)(lVar3 - ((ulonglong)uVar17 ^ 0xa212841)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar15 ^ 0xa212f30)) ^ uVar19) ^ bVar8 ^
       (byte)DAT_182671694;
  lVar2 = DAT_182671560;
  bVar10 = *(byte *)(uVar33 ^ *(ulonglong *)(lVar3 + -0xd20)) ^ (byte)DAT_182671694;
  *(uint *)(lVar3 + -0x754) = (*(byte *)(lVar3 + -0xc41) ^ bVar8) ^ uVar26;
  *(byte *)(lVar3 + -0x41) = bVar10;
  uVar18 = DAT_182671570;
  uVar23 = (*(uint *)(lVar3 + -0x344) ^ DAT_18267174c) + (uVar24 ^ 0xd01b596e) ^ DAT_182671704;
  uVar19 = CONCAT44(DAT_182671570,uVar17);
  *(uint *)(lVar2 + -0x3d4) = uVar23;
  uVar23 = uVar23 ^ DAT_182671704;
  *(ulonglong *)(lVar2 + -0x5c8) = 0x69fc8e06551d4d6a - (uVar19 ^ 0xa923b185456ef1ae);
  uVar28 = (*(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0xa212354)) ^ uVar26) << ((bVar1 ^ 0xb6) & 0x1f)
           ^ DAT_1826715ec;
  puVar20 = (ulonglong *)(DAT_182671560 - (uVar34 ^ 0x5ec96d97));
  *(uint *)(lVar2 + -0x678) = uVar28;
  lVar2 = DAT_182671560;
  uVar35 = CONCAT44(uVar32,uVar32);
  uVar23 = uVar23 - (uVar28 ^ DAT_1826715ec);
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       *(ulonglong *)(*puVar20 ^ CONCAT44(uVar16,uVar16)) ^ uVar35;
  uVar16 = _DAT_1826715e0;
  uVar28 = DAT_182671568;
  uVar15 = (ulonglong)DAT_182671568;
  *(uint *)(lVar2 + -0x504) = uVar23 ^ DAT_18267178c;
  uVar31 = DAT_1826715a8;
  uVar19 = (ulonglong)DAT_1826715a8;
  uVar23 = uVar23 * (*(uint *)(lVar2 + -0x844) ^ uVar32);
  *(uint *)(lVar2 + -0x874) = uVar23 ^ uVar16;
  uVar29 = DAT_182671728;
  uVar25 = uVar31 + uVar28;
  uVar26 = (uVar26 ^ *puVar13) * (uVar17 ^ 0xa212416) ^ DAT_182671804;
  DAT_182671584 = uVar25;
  *(uint *)(lVar2 + -0x47c) = uVar26;
  uVar26 = uVar26 ^ DAT_182671804;
  *(ulonglong *)(lVar2 + -0xc08) =
       (CONCAT44(uVar18,uVar24) ^ 0x6e3e1a908964db58) + *(longlong *)(lVar2 - (uVar34 ^ 0x5ec96e57))
  ;
  uVar6 = DAT_1826717e0;
  uVar26 = uVar26 + uVar23;
  *(uint *)(lVar2 + -0x910) = uVar26 ^ DAT_1826717e0;
  *(uint *)(lVar2 - ((ulonglong)uVar25 ^ 0x2c972ed6)) =
       uVar26 << (((byte)uVar28 ^ 0xc3) & 0x1f) ^ uVar29;
  uVar26 = DAT_182671680;
  *(uint *)(lVar2 - ((ulonglong)uVar31 ^ 0x9300e3f4)) =
       (*(uint *)(lVar2 + -0x910) ^ uVar6) >> 0x13 ^ DAT_182671680;
  *(uint *)(lVar2 + -0x968) =
       (*(uint *)(lVar2 - (uVar19 ^ 0x9300e8a8)) ^ uVar16) & (*(uint *)(lVar2 + -0x328) ^ uVar26);
  *(uint *)(lVar2 + -0x374) =
       (*(uint *)(lVar2 + -0x328) ^ uVar26 | uVar29 ^ *(uint *)(lVar2 + -0x27c)) ^ DAT_182671748;
  uVar26 = DAT_1826717f0;
  lVar3 = DAT_182671560;
  *(uint *)(lVar2 + -0x5cc) =
       (*(uint *)(lVar2 + -0x844) ^ uVar32) + (DAT_182671624 ^ *(uint *)(lVar2 + -0x3c8)) ^
       DAT_1826715c8;
  *(byte *)(lVar2 - ((ulonglong)uVar28 ^ 0x99964b8f)) =
       *(byte *)(uVar33 ^ *(ulonglong *)(lVar2 + -0xd20)) ^ (byte)DAT_182671694;
  puVar21 = (uint *)(lVar2 - ((ulonglong)uVar25 ^ 0x2c972fee));
  *puVar21 = *(uint *)(lVar2 + -0x5cc) ^ DAT_182671774 ^ DAT_1826715c8;
  *(uint *)(lVar2 + -0x3d4) =
       *(uint *)(lVar2 - (uVar15 ^ 0x999648ba)) ^ DAT_182671770 ^ DAT_182671748;
  *(uint *)(lVar2 - ((ulonglong)uVar31 ^ 0x9300e6a4)) = *puVar21 ^ uVar26 ^ DAT_182671774;
  *(uint *)(lVar2 + -0x504) = *(uint *)(lVar2 + -0x3d4) ^ DAT_18267187c ^ DAT_182671770;
  uVar19 = (ulonglong)DAT_182671798;
  *(ulonglong *)(lVar3 + -0x240) =
       (CONCAT44(uVar28,uVar31) ^ 0x47f0f25a37643d23) - *(longlong *)(lVar3 + -0x270);
  uVar32 = DAT_18267170c;
  uVar29 = DAT_18267170c & 0xff;
  pbVar22 = (byte *)((CONCAT44(uVar25,uVar31) ^ 0x2c972caa9300e0dc) * 0x20 +
                     (CONCAT44(uVar28,uVar28) ^ 0x99964bce99964bcf) + *(longlong *)(lVar3 + -0x8f0))
  ;
  *(ulonglong *)(lVar3 + -0x8d0) = (ulonglong)pbVar22 ^ uVar19;
  uVar16 = DAT_1826716bc;
  *(byte *)(lVar3 - ((ulonglong)uVar25 ^ 0x2c9720eb)) =
       *pbVar22 ^ (byte)uVar32 ^ (byte)DAT_182671694;
  uVar32 = *(uint *)(lVar3 + -0x504) ^ DAT_18267187c;
  *(ulonglong *)(lVar3 + -0x9e8) =
       (CONCAT44(uVar31,uVar31) ^ 0x36bfb76fbdf262e4) + 0x3354dd91b830c9c3;
  *(uint *)(lVar3 + -0x754) = *(byte *)(lVar3 + -0xc41) ^ uVar29 ^ uVar16;
  uVar32 = uVar32 + (uVar25 ^ 0x25600a7f) ^ DAT_182671690;
  *(uint *)(lVar3 + -0x47c) = uVar32;
  uVar32 = uVar32 ^ DAT_182671690;
  *(ulonglong *)(lVar3 + -0x800) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x2c972432)) ^ 0xbb76252599ed0761;
  bVar10 = (byte)DAT_182671568 ^ 0xdf;
  *(uint *)(lVar3 + -0x910) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0x99964c9a)) ^ uVar16) << (bVar10 & 0x1f) ^
       DAT_1826715d4;
  *(ulonglong *)(lVar3 + -0x1d8) =
       (CONCAT44(uVar28,uVar31) ^ 0xc0c6b3e30d09c337) -
       (CONCAT44(uVar25,uVar17) ^ 0x9fad27e40acc15f9);
  *(uint *)(lVar3 + -0x874) =
       uVar32 - (*(uint *)(lVar3 - (uVar30 ^ 0xf68fd9de)) ^ DAT_1826715d4) ^ DAT_182671640;
  uVar32 = DAT_182671568;
  *puVar14 = (*(uint *)(lVar3 - (uVar30 ^ 0xf68fd8ba)) ^ DAT_182671640) *
             (*(uint *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0x99964db6)) ^ uVar26) ^ DAT_1826715c4;
  uVar29 = DAT_182671848;
  uVar33 = (ulonglong)DAT_1826715a0;
  uVar19 = (ulonglong)DAT_182671570;
  uVar32 = (*(uint *)(lVar3 + -0x754) ^ uVar16) * (uVar32 ^ 0x99964bcf) ^ _DAT_1826715f0;
  *(uint *)(lVar3 + -0x328) = (DAT_182671580 ^ 0xa57506f1) >> (((byte)uVar25 ^ 0xbd) & 0x1f);
  *(uint *)(lVar3 + -0x27c) = uVar32;
  uVar6 = DAT_182671898;
  uVar15 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(uint *)(lVar3 + -0x844) =
       (*(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0x9300e9b4)) ^ DAT_1826715c4) +
       (*(uint *)(lVar3 - (uVar19 ^ 0x568942fa)) ^ _DAT_1826715f0) ^ uVar29;
  uVar32 = DAT_182671574;
  uVar19 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar3 + -0x6b8) = *(ulonglong *)(uVar15 ^ *(ulonglong *)(lVar3 + -0x368)) ^ uVar35;
  uVar16 = DAT_182671574;
  *(ulonglong *)(lVar3 + -0x368) = CONCAT44(uVar28,uVar32) ^ 0x6e17c3f6c2ac7da6;
  uVar16 = (*(uint *)(lVar3 - (uVar19 ^ 0x6a3a53d6)) ^ uVar29) << (((byte)uVar16 ^ 0xd) & 0x1f);
  *(uint *)(lVar3 + -0x5cc) = uVar16 ^ uVar6;
  bVar11 = (byte)DAT_1826715a8 ^ 0xcf;
  uVar32 = (*(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0x2c9724ee)) ^ uVar29) >> (bVar11 & 0x1f) ^
           DAT_1826715f8;
  *(uint *)(lVar3 + -0x374) = uVar32;
  uVar32 = (uVar16 | uVar32 ^ DAT_1826715f8) ^ DAT_182671784;
  *(uint *)(lVar3 + -0x344) = uVar32;
  uVar16 = uVar32 ^ DAT_182671660 ^ DAT_182671784;
  uVar32 = (*(uint *)(lVar3 - (uVar33 ^ 0x46eb9d17)) ^ DAT_182671624) +
           (*(uint *)(lVar3 + -0x678) ^ uVar26) ^ DAT_182671744;
  *(uint *)(lVar3 + -0x3d4) = uVar32;
  *(uint *)(lVar3 + -0x504) = uVar32 ^ DAT_1826716e4 ^ DAT_182671744;
  *(uint *)(lVar3 - (uVar27 ^ 0xd9ec7bc7)) = uVar16;
  uVar32 = DAT_18267170c;
  lVar2 = DAT_182671560;
  uVar16 = *(uint *)(DAT_182671560 + -0x47c) ^ DAT_1826716dc ^ DAT_182671660;
  *(uint *)(DAT_182671560 + -0x910) = *(uint *)(lVar3 + -0x504) ^ DAT_1826716e4 ^ DAT_18267170c;
  uVar15 = (ulonglong)DAT_182671568;
  uVar19 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar2 + -0x510) =
       CONCAT44(uVar17,DAT_182671568) ^ 0x8e0bbf347dbce998 | *(ulonglong *)(lVar2 + -0x240);
  *(uint *)(lVar2 - (uVar19 ^ 0x999643ba)) = uVar16;
  uVar19 = (ulonglong)DAT_1826718c8;
  *(ulonglong *)(lVar2 + -0x548) =
       (CONCAT44(uVar24,uVar4) ^ 0x973bddcfdd61deba) +
       (CONCAT44(uVar18,DAT_1826715b0) ^ 0x75c50f9823c9ff2c);
  bVar1 = (byte)DAT_182671878;
  pbVar22 = (byte *)((CONCAT44(uVar31,DAT_182671590) ^ 0x9300e0dcd9ec7fbb) * 0x20 +
                     (CONCAT44(uVar28,uVar25) ^ 0x99964bce2c972ca6) + *(longlong *)(lVar2 + -0x8f0))
  ;
  *(ulonglong *)(lVar2 + -0xaa0) = (ulonglong)pbVar22 ^ uVar19;
  bVar8 = *pbVar22 ^ bVar1 ^ (byte)DAT_182671694;
  *(byte *)(lVar2 + -0x41) = bVar8;
  uVar16 = DAT_182671874;
  *(uint *)(lVar2 + -0x754) = (bVar1 ^ bVar8) ^ DAT_182671874;
  uVar28 = *(uint *)(lVar2 + -0x874) ^ DAT_1826716dc;
  *(longlong *)(lVar2 + -0xa88) = *(longlong *)(lVar2 + -0x800) - *(longlong *)(lVar2 + -0x638);
  uVar18 = DAT_18267175c;
  *(uint *)(lVar2 - (uVar30 ^ 0xf68fd3e6)) = uVar28 + (DAT_182671570 ^ 0x5f7e6653) ^ DAT_1826716e8;
  uVar24 = (*(uint *)(lVar2 + -0x754) ^ uVar16) << (bVar10 & 0x1f) ^ DAT_1826717d0;
  uVar19 = (ulonglong)DAT_182671574;
  *(uint *)(lVar2 + -0x968) = uVar24;
  uVar4 = DAT_1826718ac;
  uVar28 = DAT_1826715cc;
  *(uint *)(lVar2 + -0x27c) =
       (*(uint *)(lVar2 - (uVar15 ^ 0x999648e6)) ^ DAT_1826716e8) - (uVar24 ^ DAT_1826717d0) ^
       uVar26;
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(CONCAT44(uVar28,uVar28) ^ *(ulonglong *)(lVar2 + -0x6a0)) ^ uVar35;
  uVar28 = (*(uint *)(lVar2 - (uVar19 ^ 0x7114e7c)) ^ uVar26) * (*(uint *)(lVar2 + -0x910) ^ uVar32)
  ;
  *(uint *)(lVar2 + -0x844) = uVar28 ^ uVar18;
  uVar18 = (uVar16 ^ *puVar13) * (DAT_182671568 ^ 0x99964bc2) ^ DAT_1826716a0;
  *(uint *)(lVar2 + -0x5cc) = uVar18;
  uVar28 = uVar28 + (uVar18 ^ DAT_1826716a0);
  *(uint *)(lVar2 + -0x374) = uVar28 ^ uVar4;
  *(uint *)(lVar2 + -0x678) = uVar28 * 0x2000 ^ DAT_18267187c;
  *(uint *)(lVar2 - (uVar19 ^ 0x7114fd4)) = uVar28 >> (bVar11 & 0x1f) ^ DAT_1826716f4;
  uVar7 = DAT_182671824;
  uVar28 = DAT_18267156c;
  uVar30 = (ulonglong)DAT_18267156c;
  uVar32 = (*(uint *)(lVar2 + -0x910) ^ uVar32) + (DAT_182671624 ^ *(uint *)(lVar2 + -0x3c8)) ^
           DAT_182671730;
  *(uint *)(lVar2 + -0x344) =
       (*(uint *)(lVar2 - (uVar34 ^ 0x5ec963df)) ^ DAT_18267187c |
       *(uint *)(lVar2 + -0x3d4) ^ DAT_1826716f4) ^ DAT_182671680;
  *(uint *)(lVar2 + -0x504) = uVar32;
  uVar32 = uVar32 ^ DAT_182671730;
  *(ulonglong *)(lVar2 + -0x600) =
       CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0x1f0) ^ 0xd6ac52713273bd06;
  uVar32 = uVar32 ^ uVar6;
  uVar15 = (ulonglong)DAT_182671594;
  *(uint *)(lVar2 + -0x47c) = uVar32;
  uVar32 = uVar32 ^ DAT_182671750;
  uVar19 = CONCAT44(uVar17,DAT_18267158c);
  *(uint *)(lVar2 + -0x874) =
       *(uint *)(lVar2 - (uVar15 ^ 0x9702c75)) ^ DAT_1826718b4 ^ DAT_182671680;
  uVar15 = CONCAT44(DAT_182671598,uVar5);
  *(uint *)(lVar2 + -0x328) = uVar32 ^ uVar6;
  uVar27 = (ulonglong)DAT_1826717f4;
  *(ulonglong *)(lVar2 + -0xa0) = uVar15 ^ uVar19 ^ 0x4b3a2ce29b310993;
  *(uint *)(lVar2 - (uVar33 ^ 0x46eb97b7)) =
       *(uint *)(lVar2 - (uVar30 ^ 0xbb7fe4ad)) ^ DAT_182671620 ^ DAT_1826718b4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0xffffff7f)) =
       *(ulonglong *)(lVar2 + -0x2a0) | *(ulonglong *)(lVar2 + -0x600);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x5ec96637)) =
       (CONCAT44(uVar25,uVar28) ^ 0x2c972caabb7fecce) + *(longlong *)(lVar2 + -0x8f0) ^ uVar27;
  *(ulonglong *)(lVar2 + -0x5c8) =
       *(ulonglong *)(lVar2 + -0xbf0) >> ((byte)*(undefined8 *)(lVar2 + -0x8a8) & 0x3f);
  *(byte *)(lVar2 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x390) ^ uVar27) ^ (byte)DAT_182671694 ^
       (byte)DAT_18267167c;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar9 * 4) = uVar12;
  return;
}



############ FUN_ 180e643a0 size=3878 ############

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

void FUN_180e643a0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte *pbVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte local_98;
  
  uVar11 = DAT_1826715a4;
  uVar35 = DAT_182671598;
  uVar9 = DAT_182671588;
  uVar6 = DAT_182671570;
  uVar5 = DAT_18267156c;
  lVar3 = DAT_182671560;
  DAT_182671580 = DAT_1826715ac + DAT_182671590;
  uVar22 = (ulonglong)DAT_1826715a0;
  uVar34 = (ulonglong)DAT_182671598;
  uVar27 = (ulonglong)DAT_1826715a4;
  uVar15 = DAT_182671570 << 0x10 | DAT_182671570 >> 0x10;
  uVar16 = DAT_18267156c & 7;
  if (uVar16 < 4) {
    if (uVar16 < 2) {
      if (uVar16 == 0) {
        DAT_1826715a0 = DAT_18267156c;
      }
      uVar30 = (ulonglong)DAT_1826715a0;
    }
    else {
      uVar2 = DAT_182671578;
      if (uVar16 < 3) {
        uVar2 = DAT_182671598;
      }
      uVar30 = (ulonglong)uVar2;
    }
  }
  else if (uVar16 < 6) {
    uVar2 = DAT_18267158c;
    if (uVar16 < 5) {
      uVar2 = DAT_1826715b0;
    }
    uVar30 = (ulonglong)uVar2;
  }
  else {
    uVar30 = uVar27;
    if (uVar16 < 7) {
      uVar30 = (ulonglong)DAT_18267157c;
    }
  }
  uVar31 = (ulonglong)DAT_182671588;
  DAT_182671594 = (undefined4)uVar30;
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_182671ad8) ^ DAT_182671578;
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_182671ad8) ^ DAT_182671588;
  uVar21 = (ulonglong)DAT_182671724;
  DAT_18267159c = uVar15;
  *(uint *)(DAT_182671560 - ((ulonglong)DAT_1826715b0 ^ 0x895eb4be)) =
       (*(uint *)(DAT_182671560 + -0x47c) ^ DAT_1826717c8) * -0x268b6772;
  uVar16 = DAT_1826715b4;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar34 ^ 0x5b66c181)) ^ (ulonglong)DAT_182671700) =
       *(byte *)(lVar3 - (uVar22 ^ 0xbebfc828)) ^ (byte)DAT_18267173c;
  uVar8 = DAT_182671584;
  uVar37 = (ulonglong)DAT_182671584;
  uVar23 = uVar16 | DAT_182671584;
  *(undefined8 *)(lVar3 + -0xc28) = *(undefined8 *)(lVar3 + -0x4f0);
  DAT_182671568 = uVar23;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar23 ^ 0xdffaf81e)) = *(undefined8 *)(lVar3 + -0xc80);
  uVar2 = DAT_18267157c;
  uVar18 = (ulonglong)DAT_182671858;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x17f2c7e8)) =
       *(ulonglong *)(lVar3 - (uVar37 ^ 0xc9cab396)) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x298) = *(ulonglong *)(lVar3 + -0x7a0) ^ uVar18;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xc9cabbce)) =
       (CONCAT44(uVar2,uVar5) ^ 0xc77202cc56894087) + *(ulonglong *)(lVar3 + -0x7a0);
  bVar19 = (byte)DAT_182671764;
  *(byte *)(lVar3 + -0x931) =
       *(byte *)(uVar18 ^ *(ulonglong *)(lVar3 + -0x298)) ^ (byte)DAT_182671764 ^
       (byte)DAT_182671718;
  uVar16 = DAT_18267158c;
  uVar18 = (ulonglong)DAT_18267158c;
  uVar25 = (ulonglong)DAT_182671570;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x4b0) ^ (ulonglong)DAT_182671850) = 0x52;
  lVar3 = DAT_182671560;
  pbVar29 = (byte *)(DAT_182671560 + -0x931);
  puVar1 = (ulonglong *)(DAT_182671560 + -0xae0);
  *(ulonglong *)(DAT_182671560 + -0x18) =
       (*(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x8d31c71c)) ^ uVar21) +
       ((uVar30 << 0x20 | uVar25) ^ 0xc77202cc0ad96417);
  *(byte *)(*puVar1 ^ uVar21) = bVar19 ^ *pbVar29;
  uVar12 = DAT_1826715ac;
  uVar10 = DAT_182671590;
  uVar7 = DAT_182671580;
  uVar18 = (ulonglong)DAT_182671580;
  uVar21 = (ulonglong)DAT_18267176c;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x318dfe8d)) =
       (CONCAT44(uVar11,uVar16) ^ 0x44ddc07ce1a4551d) +
       (CONCAT44(DAT_182671590,uVar15) ^ 0x6513782101de3953);
  uVar18 = *(ulonglong *)(lVar3 - (uVar18 ^ 0xee94f1f2));
  *(undefined8 *)(lVar3 + -0x1a8) = *(undefined8 *)(lVar3 + -0x470);
  *(ulonglong *)(lVar3 + -0xac8) = uVar18;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x15498259)) = uVar21 ^ uVar18;
  *(ulonglong *)(lVar3 + -0xc08) =
       CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar3 + -0x8a8) ^ 0xcff570233dc7c82d;
  uVar16 = DAT_182671578;
  uVar18 = (ulonglong)DAT_182671870;
  uVar36 = (ulonglong)DAT_182671578;
  *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xbebfc749)) =
       uVar18 ^ *(ulonglong *)(DAT_182671560 + -0x1a8);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xae8) =
       (CONCAT44(uVar15,uVar9) ^ 0x64160ad9318dfccc) +
       (*(ulonglong *)(DAT_182671560 + -0xd80) ^ uVar18);
  lVar4 = DAT_182671560;
  uVar28 = (ulonglong)DAT_182671894;
  *(undefined1 *)(DAT_182671560 - (uVar36 ^ 0x4dd880a)) =
       *(undefined1 *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671590 ^ 0xd94b6ac9)) ^ uVar18);
  *(byte *)(*(ulonglong *)(lVar4 + -0xd18) ^ (ulonglong)DAT_1826718c0) = (byte)uVar23 ^ 0xf8;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0xdffaf476)) =
       (CONCAT44(uVar23,uVar7) ^ 0xdffaffbeee94f1eb) + (*(ulonglong *)(lVar4 + -0x8f8) ^ uVar21);
  *(byte *)(*(ulonglong *)(lVar4 + -0x8f8) ^ uVar21) =
       *(byte *)(lVar4 + -0x1b9) ^ (byte)DAT_182671718;
  *(undefined8 *)(lVar4 - (uVar30 ^ 0xc77209fc)) = *(undefined8 *)(lVar4 + -0xbc8);
  uVar18 = *(ulonglong *)(lVar4 - (uVar25 ^ 0xad96efe));
  *(ulonglong *)(lVar4 + -0xd20) = uVar18;
  *(ulonglong *)(lVar4 + -0x1f8) = *(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x4dd8283)) ^ uVar28;
  uVar13 = DAT_1826715b0;
  lVar3 = DAT_182671560;
  uVar24 = (ulonglong)DAT_1826717dc;
  uVar21 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(DAT_182671560 + -0xc30) = uVar24 ^ uVar18;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0x17f2ce98)) =
       ((uVar21 << 0x20 | uVar30) ^ 0x8d31cdfcc77202cd) + uVar18;
  uVar26 = (ulonglong)DAT_18267181c;
  *(byte *)(lVar3 - ((ulonglong)uVar12 ^ 0x15498128)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xc30) ^ uVar24) ^ (byte)DAT_182671750 ^
       (byte)DAT_182671718;
  *(undefined1 *)(*(ulonglong *)(lVar3 - (uVar34 ^ 0x5b66cba1)) ^ (ulonglong)DAT_1826716cc) = 0x74;
  *(ulonglong *)(lVar3 + -0x750) =
       (CONCAT44(uVar2,DAT_18267158c) ^ 0xc77202cc8d31cdfd) +
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x1f8));
  local_98 = (byte)uVar9;
  bVar19 = (byte)DAT_182671590;
  *(longlong *)(lVar3 - ((ulonglong)uVar12 ^ 0x15498bb1)) =
       *(longlong *)(lVar3 + -0x1d8) << ((local_98 ^ 0xfa) & 0x3f);
  *(byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0x1f8)) =
       *(byte *)(lVar3 + -0xb89) ^ (byte)DAT_182671750;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (CONCAT44(uVar13,uVar8) ^ 0x9b751fd02c51ed43) << ((bVar19 ^ 100) & 0x3f);
  *(undefined8 *)(lVar3 - (uVar27 ^ 0xc9cab51e)) = *(undefined8 *)(lVar3 + -0x750);
  *(undefined8 *)(lVar3 + -0x3e0) = *(undefined8 *)(lVar3 - (uVar34 ^ 0x5b66c9a9));
  uVar8 = DAT_1826717e8;
  uVar7 = DAT_1826715a8;
  uVar5 = DAT_182671574;
  uVar24 = (ulonglong)DAT_1826717e8;
  uVar21 = (ulonglong)DAT_1826715a8;
  uVar33 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xad961ae)) = *(ulonglong *)(lVar3 + -0xaa0) ^ uVar26;
  *(undefined4 *)(lVar3 + -0x374) = 0xffdb60e9;
  *(ulonglong *)(lVar3 + -0x460) = uVar24 ^ *(ulonglong *)(lVar3 + -0x3e0);
  *(ulonglong *)(lVar3 + -0x5c8) =
       CONCAT44(uVar35,uVar13) ^ 0x49b04f3032aafa43 | CONCAT44(uVar5,uVar7) ^ 0x654f037b517e720f;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xbebfc169)) =
       (CONCAT44(uVar7,DAT_1826715ac) ^ 0xb7f6ddfb15498aa0) + *(ulonglong *)(lVar3 + -0x3e0);
  uVar18 = (ulonglong)DAT_18267180c;
  *(byte *)(lVar3 + -0x6d9) =
       *(byte *)((ulonglong)uVar8 ^ *(ulonglong *)(lVar3 + -0x460)) ^ (byte)DAT_182671828 ^
       (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar3 + -0xa98) ^ uVar18) = (byte)uVar30 ^ 0x46;
  *(ulonglong *)(lVar3 + -0x170) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0xdffafa06)) ^ uVar26) +
       (CONCAT44(DAT_1826715b4,DAT_18267157c) ^ 0x17f2cd08c77202cd);
  *(byte *)(*(ulonglong *)(lVar3 + -0x5b8) ^ uVar26) =
       *(byte *)(lVar3 - ((ulonglong)DAT_18267156c ^ 0x5689465f)) ^ (byte)DAT_182671828;
  *(undefined8 *)(lVar3 + -0x60) = *(undefined8 *)(lVar3 + -0x170);
  uVar32 = (ulonglong)DAT_182671580;
  uVar26 = (ulonglong)DAT_1826718ac;
  uVar28 = (ulonglong)_DAT_18267188c;
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(lVar3 + -0x5c8) >> (((byte)DAT_18267158c ^ 0xd6) & 0x3f);
  *(undefined8 *)(lVar3 - (uVar22 ^ 0xbebfce29)) = *(undefined8 *)(lVar3 - (uVar36 ^ 0x4dd8213));
  *(ulonglong *)(lVar3 + -0x6b0) = *(ulonglong *)(lVar3 - (uVar37 ^ 0xc9cabfde)) ^ uVar28;
  uVar22 = *(ulonglong *)(lVar3 - (uVar21 ^ 0xb7f6d91b));
  *(ulonglong *)(lVar3 + -0x270) = *(ulonglong *)(lVar3 + -0xa88) >> 0x1f;
  *(ulonglong *)(lVar3 + -0xb48) = uVar22 ^ uVar26;
  uVar35 = DAT_1826716fc;
  lVar4 = DAT_182671560;
  uVar18 = (ulonglong)DAT_1826716fc;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x5b66c019)) =
       (CONCAT44(uVar5,uVar9) ^ 0xa4e419fb318dfccc) + uVar22;
  *(byte *)(lVar4 + -0x889) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar31 ^ 0x318df785)) ^ uVar26) ^ (byte)uVar35 ^
       (byte)DAT_182671718;
  *(undefined1 *)(*(ulonglong *)(lVar4 + -0xb00) ^ (ulonglong)DAT_182671740) = 0x69;
  *(ulonglong *)(lVar4 + -0x868) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x4dd8f03)) ^ uVar28) +
       (CONCAT44(uVar7,DAT_18267156c) ^ 0xb7f6ddfb56894087);
  *(ulonglong *)(lVar4 + -0x600) = *(ulonglong *)(lVar4 + -0x638) ^ *(ulonglong *)(lVar4 + -0x270);
  uVar34 = (ulonglong)DAT_182671710;
  *(byte *)(uVar28 ^ *(ulonglong *)(lVar4 + -0x6b0)) = (byte)uVar35 ^ *(byte *)(lVar4 + -0x889);
  uVar22 = (ulonglong)DAT_1826717e0;
  *(undefined8 *)(lVar4 - (uVar27 ^ 0xc9cab2f6)) = *(undefined8 *)(lVar4 + -0x868);
  *(undefined8 *)(lVar4 - (uVar37 ^ 0xc9cab386)) = *(undefined8 *)(lVar4 + -0xa20);
  *(ulonglong *)(lVar4 + -0xa68) = *(ulonglong *)(lVar4 + -0xd48) ^ uVar22;
  uVar35 = DAT_1826715b4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0xdffaffee)) = *(ulonglong *)(lVar4 + -0xc38) ^ uVar34
  ;
  *(ulonglong *)(lVar4 + -0x700) =
       (CONCAT44(uVar10,uVar35) ^ 0xd94b674917f2cd09) + (uVar34 ^ *(ulonglong *)(lVar4 + -0x50));
  *(longlong *)(lVar4 - (uVar37 ^ 0xc9cab936)) =
       *(longlong *)(lVar4 + -0xc08) << ((byte)*(undefined8 *)(lVar4 + -0x270) & 0x3f);
  bVar19 = (byte)DAT_1826716e8;
  *(byte *)(lVar4 + -0x41) =
       *(byte *)(uVar34 ^ *(ulonglong *)(lVar4 + -0x50)) ^ (byte)DAT_1826716e8 ^ (byte)DAT_182671718
  ;
  *(byte *)(*(ulonglong *)(lVar4 + -0xc00) ^ (ulonglong)DAT_182671644) =
       (byte)(uVar6 >> 0x10) ^ 0x1f;
  pbVar29 = (byte *)(uVar22 ^ *(ulonglong *)(lVar4 + -0xa68));
  *(byte **)(lVar4 + -0x428) = pbVar29 + 1;
  *(uint *)(lVar4 + -0x3c8) = (DAT_182671570 ^ 0x5cd41fde) * *(int *)(lVar4 + -0x968);
  *pbVar29 = bVar19 ^ *(byte *)(lVar4 + -0x41);
  *(longlong *)(lVar4 + -0x748) = *(longlong *)(lVar4 + -0x6d0) + -0x5367573a5830641;
  *(undefined8 *)(lVar4 + -0xb38) = *(undefined8 *)(lVar4 + -0x428);
  *(undefined8 *)(lVar4 + -0x148) = *(undefined8 *)(lVar4 + -0x700);
  uVar22 = (ulonglong)DAT_1826718a0;
  *(longlong *)(lVar4 - ((ulonglong)DAT_18267158c ^ 0x8d31ce44)) =
       *(longlong *)(lVar4 + -0x898) + 0x341fbf9b5c7d961c;
  uVar34 = (ulonglong)DAT_1826718c8;
  *(ulonglong *)(lVar4 + -0xb20) = *(ulonglong *)(lVar4 - (uVar32 ^ 0xee94fad2)) ^ uVar22;
  pbVar29 = *(byte **)(lVar4 - (uVar30 ^ 0xc7720384));
  uVar37 = CONCAT44(uVar16,DAT_1826715ac);
  *(ulonglong *)(lVar4 + -0xcc0) = (ulonglong)pbVar29 ^ uVar34;
  *(byte **)(lVar4 + -0x4c8) = pbVar29 + (uVar37 ^ 0x4dd89b315498aa0);
  uVar6 = DAT_1826715a4;
  *(byte *)(lVar4 + -0x801) = *pbVar29 ^ (byte)DAT_1826716bc ^ (byte)DAT_182671718;
  uVar35 = uVar6 << 0x10 | uVar6 >> 0x10;
  uVar21 = (ulonglong)uVar35;
  DAT_1826715a0 = uVar35;
  *(byte *)(*(ulonglong *)(lVar4 + -0x930) ^ (ulonglong)DAT_1826716f0) =
       (byte)(uVar6 >> 0x10) ^ 0x93;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0xbfbec86a)) =
       (CONCAT44(uVar11,uVar11) ^ 0xc9cabfbec9cabfbf) + (uVar22 ^ *(ulonglong *)(lVar4 + -0xb20));
  *(ulonglong *)(lVar4 + -0x510) = CONCAT44(uVar35,uVar11) ^ 0x114017fe5e935435;
  uVar26 = (ulonglong)DAT_182671590;
  uVar34 = (ulonglong)DAT_1826715b0;
  uVar37 = (ulonglong)DAT_182671820;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar30 ^ 0xc77209ec)) ^ uVar22) =
       *(byte *)(lVar4 - (uVar21 ^ 0xbfbec1cb)) ^ (byte)DAT_1826716bc;
  *(undefined8 *)(lVar4 - (uVar34 ^ 0x895ebcce)) = *(undefined8 *)(lVar4 + -0x1a0);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xd94b6161)) =
       (CONCAT44(uVar35,uVar7) ^ 0x433e46c0b147b9e2) +
       (CONCAT44(uVar5,DAT_18267157c) ^ 0x5936e573c2c23cd2);
  *(ulonglong *)(lVar4 + -0x7e8) = *(ulonglong *)(lVar4 + -0x4c8);
  bVar19 = (byte)DAT_182671718;
  bVar14 = *(byte *)(uVar24 ^ *(ulonglong *)(lVar4 + -0x460)) ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar4 + -0x238) = *(ulonglong *)(lVar4 + -0x4c8) ^ uVar18;
  *(byte *)(lVar4 + -0x1e1) = bVar14;
  *(ulonglong *)(lVar4 + -0x908) = *(ulonglong *)(lVar4 + -0xb58) ^ uVar37;
  bVar14 = (byte)DAT_1826715b4;
  *(ulonglong *)(lVar4 + -0x7f0) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0xbfbecbf2)) ^ uVar18) +
       (CONCAT44(uVar35,DAT_1826715b4) ^ 0xbfbec9ca17f2cd09);
  *(byte *)(lVar4 + -0x7f1) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar27 ^ 0xc9cabd86)) ^ uVar18) ^ bVar19 ^ DAT_1826715e0;
  uVar34 = CONCAT44(uVar10,DAT_18267156c);
  *(byte *)(*(ulonglong *)(lVar4 + -0x538) ^ (ulonglong)DAT_182671698) = bVar14 ^ 0x6e;
  pbVar29 = (byte *)(uVar37 ^ *(ulonglong *)(lVar4 + -0x908));
  *(byte **)(lVar4 + -0x768) = pbVar29 + (uVar34 ^ 0xd94b674956894087);
  uVar34 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar4 + -0xbf0) = *(ulonglong *)(lVar4 + -0x5c8) >> 0x1f;
  *pbVar29 = *(byte *)(lVar4 - (uVar25 ^ 0xad963e7)) ^ DAT_1826715e0;
  uVar30 = (ulonglong)DAT_182671814;
  *(undefined8 *)(lVar4 - (uVar27 ^ 0xc9cab34e)) = *(undefined8 *)(lVar4 + -0x768);
  *(undefined8 *)(lVar4 + -0x8e8) = *(undefined8 *)(lVar4 + -0x7f0);
  uVar22 = (ulonglong)DAT_18267173c;
  uVar27 = (ulonglong)DAT_18267173c;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x8d31c1ec)) = *(ulonglong *)(lVar4 + -0xcf0) ^ uVar30;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar4 + -0x8e8);
  *(ulonglong *)(lVar4 + -0xa70) = uVar27;
  bVar14 = (byte)DAT_182671598;
  *(ulonglong *)(lVar4 + -0xd30) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0xa4e4138b)) ^ uVar22) +
       (CONCAT44(uVar2,uVar9) ^ 0xc77202cc318dfccc);
  *(byte *)(lVar4 + -0x561) = *(byte *)(uVar27 ^ uVar22) ^ (byte)DAT_182671780 ^ bVar19;
  *(byte *)(*(ulonglong *)(lVar4 + -0x4b8) ^ (ulonglong)DAT_182671668) = bVar14 ^ 0x66;
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar35,uVar15) ^ 0xbfbec9ca64160ad8) + (*(ulonglong *)(lVar4 + -0xc10) ^ uVar30);
  *(ulonglong *)(lVar4 + -0x9f8) =
       *(ulonglong *)(lVar4 + -0x5c8) >>
       ((byte)*(undefined8 *)(lVar4 - (uVar26 ^ 0xd94b6199)) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar20;
  return;
}



############ FUN_ 180f2f550 size=5286 ############

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

void FUN_180f2f550(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  ulonglong uVar14;
  uint uVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte local_res18;
  byte local_b0;
  
  uVar9 = DAT_1826715e8;
  uVar8 = DAT_1826715b4;
  uVar6 = DAT_182671598;
  uVar13 = DAT_182671568;
  lVar3 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671568;
  uVar32 = (ulonglong)DAT_182671598;
  uVar15 = DAT_182671568 << 0x10 | DAT_182671568 >> 0x10;
  uVar27 = DAT_182671598 << 0x10 | DAT_182671598 >> 0x10;
  uVar29 = ~DAT_1826715b4;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671a48);
  uVar11 = *(uint *)(&DAT_182611e80 + DAT_182671a48) ^ DAT_182671568;
  uVar22 = (ulonglong)DAT_1826715b4;
  uVar18 = (ulonglong)uVar29;
  uVar19 = CONCAT44(DAT_182671708,DAT_182671708);
  uVar24 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar35 = (ulonglong)uVar27;
  uVar17 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  DAT_182671570 = uVar27;
  DAT_18267158c = uVar29;
  DAT_1826715ac = uVar15;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (*(ulonglong *)(DAT_182671560 + -0x400) ^ uVar24) +
       (uVar19 ^ *(ulonglong *)(DAT_182671560 + -0x5c8)) ^ uVar17;
  uVar25 = CONCAT44(uVar9,uVar9);
  uVar21 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x75fefd27)) ^ uVar19) <<
       (((byte)uVar6 ^ 0xfa) & 0x3f) ^ uVar25;
  bVar33 = (byte)uVar8;
  *(ulonglong *)(lVar3 + -0x748) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x5c8)) >> ((bVar33 ^ 0xd4) & 0x3f) ^ uVar21;
  uVar9 = DAT_18267165c;
  lVar4 = DAT_182671560;
  puVar20 = (ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0xfffff9ef));
  uVar14 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  puVar28 = (ulonglong *)(lVar3 - (uVar18 ^ 0x8a010560));
  *puVar28 = (*(ulonglong *)(lVar3 - (uVar35 ^ 0xfffff8b7)) ^ uVar21 | uVar25 ^ *puVar20) ^ uVar14;
  uVar10 = DAT_182671678;
  uVar21 = CONCAT44(uVar9,uVar9);
  bVar12 = (byte)(uVar13 >> 0x10);
  *(ulonglong *)(lVar3 + -0x3f0) =
       uVar21 ^ uVar14 ^ uVar17 ^ *(ulonglong *)(lVar3 + -0x898) ^ *(ulonglong *)(lVar3 + -0x270);
  uVar14 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar36 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x75fefbf7)) =
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0x670)) +
       (uVar14 ^ *(ulonglong *)(lVar3 + -0x110)) ^ uVar36;
  uVar25 = CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar38 = (ulonglong)uVar15;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x2116ebb3)) =
       (uVar14 ^ *(ulonglong *)(lVar4 + -0x110)) << (((byte)uVar29 ^ 0x35) & 0x3f) ^ uVar25;
  uVar9 = DAT_18267164c;
  uVar14 = (uVar14 ^ *(ulonglong *)(lVar4 + -0x110)) >> ((bVar12 ^ 0xd) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9f8) = uVar14 ^ CONCAT44(DAT_182671638,DAT_182671638);
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar14 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x75fefda7)) ^ uVar25 | uVar14) ^ uVar22;
  uVar26 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar14;
  lVar3 = DAT_182671560;
  puVar30 = (ulonglong *)(lVar4 - (uVar34 ^ 0x2116ede3));
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xfffff9c7)) =
       uVar26 ^ uVar22 ^ uVar36 ^ *puVar30 ^ uVar14;
  *(ulonglong *)(lVar3 + -0x400) = CONCAT44(uVar29,uVar27) ^ 0xdeefdeffe2dedb72 | 0x9eeb8e45c2589a62
  ;
  uVar39 = CONCAT44(uVar15,uVar8);
  uVar31 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xeefb24de)) =
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0x2116e8c3)) ^ uVar26) + (uVar39 ^ 0xf73733f91d7b0299) ^
       uVar31;
  uVar9 = DAT_18267171c;
  *puVar20 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0x8a010258)) ^ uVar25) << ((bVar12 ^ 0x15) & 0x3f);
  uVar14 = CONCAT44(uVar9,uVar9);
  uVar31 = uVar31 ^ *(ulonglong *)(lVar3 + -0x5c8);
  bVar2 = (byte)uVar13;
  *(ulonglong *)(lVar3 + -0x748) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xfffff767)) ^ uVar17) +
       (CONCAT44(uVar6,uVar29) ^ 0xd66caa574dc27137) ^ uVar14;
  puVar20 = (ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x75feffa7));
  uVar22 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar3 + -0x270) = (*puVar20 ^ uVar14) + uVar31 ^ uVar22;
  uVar14 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar3 + -0x670) = uVar31 << ((bVar2 ^ 0xe2) & 0x3f) ^ uVar14;
  uVar31 = uVar31 >> ((bVar2 ^ 0xdc) & 0x3f);
  uVar17 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar3 + -0x110) = uVar31 ^ uVar25;
  uVar9 = DAT_182671798;
  uVar5 = DAT_182671634;
  uVar26 = (ulonglong)DAT_182671634;
  uVar14 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0xfffff98f)) ^ uVar14 | uVar31) ^ uVar17;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar14;
  uVar25 = CONCAT44(uVar9,uVar9);
  puVar23 = (ulonglong *)(lVar3 - (uVar32 ^ 0xfffffd8f));
  *(ulonglong *)(lVar3 + -0x6b8) = uVar25 ^ uVar17 ^ uVar22 ^ uVar14 ^ *puVar23;
  lVar3 = DAT_182671560;
  uVar17 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0xeefb2516)) =
       (uVar21 ^ *(ulonglong *)(DAT_182671560 + -0x3f0)) + (uVar39 ^ 0xce06a8dbf13588d6) ^ uVar17;
  uVar9 = DAT_1826717e4;
  uVar14 = CONCAT44(DAT_182671850,DAT_182671850);
  puVar16 = (ulonglong *)(lVar3 - (uVar35 ^ 0xfffff9c7));
  *puVar16 = (uVar36 ^ *(ulonglong *)(lVar3 + -0x318)) + (uVar39 ^ 0xbf0c0c2c428e7510) ^ uVar14;
  uVar39 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0xfffffab7)) =
       (*(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x2116eafb)) ^ uVar17) +
       (*(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x8a010128)) ^ uVar14) ^ uVar39;
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xfffff9ef)) =
       CONCAT44(uVar13,uVar8) ^ 0x14129fbbb7ecb18f;
  lVar3 = DAT_182671560;
  uVar17 = (*(ulonglong *)(DAT_182671560 + -0x400) ^ uVar17) << (((byte)uVar6 ^ 0xde) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar17 ^ CONCAT44(DAT_182671714,DAT_182671714);
  uVar9 = DAT_1826717d0;
  uVar14 = ((ulonglong)(uVar5 >> 0x1f) | uVar26 * 2) ^ *(ulonglong *)(lVar3 + -0x400) >> 0x1f;
  *(ulonglong *)(lVar3 + -0x748) = uVar14 ^ uVar24;
  uVar10 = DAT_182671858;
  uVar26 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x5c8) = (uVar14 | uVar17) ^ uVar26;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar14 = *(ulonglong *)(lVar3 - (uVar35 ^ 0xfffffa37)) ^ uVar34 ^ uVar26 ^ uVar39 ^
           *(ulonglong *)(lVar3 + -0x548);
  *(ulonglong *)(lVar3 + -0x670) = uVar14;
  uVar9 = DAT_1826718c8;
  uVar26 = (uVar34 ^ uVar14) << 0x2e;
  *(ulonglong *)(lVar3 + -0x110) = (*puVar28 ^ uVar22) + (uVar14 ^ uVar34) ^ uVar19;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar26 ^ CONCAT44(uVar9,uVar9);
  lVar4 = DAT_182671560;
  uVar22 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x8a010058)) ^ uVar24) +
       (CONCAT44(uVar13,uVar27) ^ 0x7a6dc961a7cc59ee);
  uVar27 = DAT_182671588;
  uVar17 = (*(ulonglong *)(lVar4 - (uVar18 ^ 0x8a010160)) ^ uVar34) >> ((bVar2 ^ 0xe9) & 0x3f);
  uVar14 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar4 + -0x318) = uVar17 ^ uVar22;
  uVar13 = DAT_18267158c ^ 0x469049b1;
  *puVar16 = (uVar26 | uVar17) ^ uVar14;
  *(uint *)(lVar4 + -0x774) = *(int *)(lVar4 + -0x344) - uVar13;
  uVar26 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar4 + -0x610) =
       uVar26 ^ uVar14 ^ *(ulonglong *)(lVar4 + -0x638) ^ uVar19 ^ *(ulonglong *)(lVar4 + -0x110);
  uVar9 = DAT_18267178c;
  uVar22 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar4 + -0x400) =
       (uVar39 ^ *(ulonglong *)(lVar4 + -0x548)) + (uVar25 ^ *(ulonglong *)(lVar4 + -0x6b8)) ^
       uVar22;
  uVar17 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x6b8)) << ((bVar33 ^ 0xe3) & 0x3f);
  uVar14 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(lVar4 + -0x898) = uVar17 ^ CONCAT44(uVar9,uVar9);
  uVar24 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar4 + -0x5c8) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x6b8)) >> ((bVar33 ^ 0xdb) & 0x3f) ^ uVar14;
  uVar13 = DAT_182671568 ^ 0x8b90742b;
  *(ulonglong *)(lVar4 + -0x270) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0xf351d0a7)) ^ uVar14 | uVar17) ^ uVar24;
  lVar3 = DAT_182671560;
  uVar14 = (ulonglong)DAT_182671594;
  *(uint *)(lVar4 - ((ulonglong)DAT_18267159c ^ 0x85041f0)) = uVar13 + *(int *)(lVar4 + -0x5cc);
  uVar25 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  uVar17 = (ulonglong)DAT_1826715a0;
  uVar14 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267156c ^ 0xe36298ac)) ^
           *(ulonglong *)(lVar3 - (uVar14 ^ 0x6dc514f0)) ^ uVar25 ^ uVar24 ^ uVar22;
  uVar24 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(lVar3 + -0x748) = uVar14;
  uVar14 = (uVar25 ^ uVar14) << 0x3a;
  uVar36 = (*(ulonglong *)(lVar3 - (uVar17 ^ 0xd80d7156)) ^ uVar25) +
           (uVar19 ^ *(ulonglong *)(lVar3 + -0x110)) ^ uVar24;
  uVar19 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar3 + -0x3f0) = uVar36;
  uVar9 = DAT_1826716d4;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar14 ^ uVar19;
  uVar17 = (uVar25 ^ *puVar20) >> ((bVar2 ^ 0xfd) & 0x3f);
  uVar25 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar3 + -0x318) = uVar17 ^ CONCAT44(uVar9,uVar9);
  uVar31 = (ulonglong)DAT_182671890;
  uVar14 = (uVar14 | uVar17) ^ uVar25;
  uVar37 = CONCAT44(DAT_182671890,DAT_182671890);
  *(ulonglong *)(lVar3 + -0x638) = uVar14;
  uVar13 = DAT_182671580;
  lVar4 = DAT_182671560;
  uVar26 = uVar26 ^ *(ulonglong *)(lVar3 + -0x610);
  uVar17 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 + -0x548) = uVar37 ^ uVar25 ^ uVar24 ^ uVar14 ^ uVar36;
  uVar9 = DAT_1826718d0;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0xfe75ebf8)) ^ uVar22) + uVar26 ^ uVar19;
  uVar5 = DAT_182671594;
  local_res18 = (byte)(uVar6 >> 0x10);
  uVar25 = uVar26 << ((local_res18 ^ 0xe9) & 0x3f);
  *(ulonglong *)(lVar3 + -0x898) = uVar25 ^ uVar39;
  uVar26 = uVar26 >> (((byte)uVar5 ^ 0xda) & 0x3f);
  uVar14 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar4 + -0x5c8) = uVar26 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671804;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x270) = (*(ulonglong *)(lVar4 - (uVar14 ^ 0xfe75e940)) ^ uVar19) - uVar26
  ;
  uVar17 = CONCAT44(uVar9,uVar9);
  local_b0 = (byte)uVar10;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xf010c47d)) = (uVar25 | uVar26) ^ uVar17;
  uVar14 = (ulonglong)DAT_182671584;
  uVar25 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(lVar3 + -0x748) =
       0x75793d908bb95d4b >> ((local_b0 ^ *(byte *)(lVar3 + -0x670)) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9f8) =
       uVar25 ^ uVar17 ^ uVar19 ^ *(ulonglong *)(lVar3 + -0x6b8) ^ *(ulonglong *)(lVar3 + -0x110);
  uVar7 = DAT_1826715a8;
  lVar4 = DAT_182671560;
  uVar17 = CONCAT44(DAT_182671834,DAT_182671834);
  uVar39 = (ulonglong)DAT_1826715a8;
  *puVar30 = (*(ulonglong *)(lVar3 - (uVar14 ^ 0xcf3bc6c3)) ^ uVar25) +
             (uVar24 ^ *(ulonglong *)(lVar3 + -0x3f0)) ^ uVar17;
  uVar14 = *(ulonglong *)(lVar4 + -0x9f8);
  *(ulonglong *)(lVar3 + -0x638) = (uVar25 ^ *(ulonglong *)(lVar3 + -0x9f8)) << 0x20 ^ uVar21;
  uVar9 = DAT_182671648;
  uVar5 = DAT_18267157c;
  uVar22 = (uVar25 ^ uVar14) >> (((byte)DAT_18267157c ^ 0xef) & 0x3f);
  uVar14 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar4 + -0x400) = uVar22 ^ CONCAT44(DAT_182671794,DAT_182671794);
  uVar10 = DAT_1826716a8;
  uVar25 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - (uVar14 ^ 0xd80d7026)) ^ uVar21 | uVar22) ^ uVar25;
  uVar26 = CONCAT44(uVar10,uVar10);
  *puVar23 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267156c ^ 0xe3629ccc)) ^ uVar26 ^ uVar25 ^
             uVar17 ^ *(ulonglong *)(lVar4 + -0x318);
  uVar9 = DAT_1826717d8;
  uVar37 = uVar37 ^ *(ulonglong *)(lVar4 + -0x548);
  uVar36 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(lVar4 + -0x898) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xfffff947)) ^ uVar19) + uVar37 ^ uVar36;
  uVar37 = uVar37 << (((byte)uVar27 ^ 0x4f) & 0x3f);
  uVar21 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar4 + -0x5c8) = uVar37 ^ CONCAT44(uVar9,uVar9);
  uVar14 = CONCAT44(uVar29,DAT_182671580);
  uVar31 = *(ulonglong *)(lVar4 + -0x548) >> 0x20 ^ uVar21 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x670) = uVar31;
  uVar27 = DAT_1826717a0;
  uVar13 = DAT_182671578;
  uVar25 = (ulonglong)DAT_182671578;
  uVar19 = (ulonglong)DAT_1826717a0;
  *(ulonglong *)(lVar4 + -0x748) =
       uVar14 ^ 0x1853d305aa0e9367 | CONCAT44(uVar8,uVar29) ^ 0x54a9657ad19448eb;
  uVar24 = CONCAT44(uVar27,uVar27);
  uVar22 = CONCAT44(DAT_182671650,DAT_182671650);
  uVar14 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x3bcf3adf)) = (uVar37 | uVar21 ^ uVar31) ^ uVar22;
  uVar37 = (ulonglong)DAT_1826715b0;
  uVar21 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar4 - (uVar14 ^ 0x6dc51300)) =
       uVar36 ^ uVar21 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0x898) ^ *(ulonglong *)(lVar4 + -0x110);
  uVar31 = CONCAT44(DAT_182671808,DAT_182671808);
  *(ulonglong *)(lVar4 + -0x9f8) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xfffffc0f)) ^ uVar21) +
       (CONCAT44(DAT_18267159c,uVar29) ^ 0x59a765dabd718aef) ^ uVar24;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xfdcd70c6)) =
       (CONCAT44(uVar8,uVar13) ^ 0x87b2ab39e9bf874) + (uVar17 ^ *(ulonglong *)(lVar4 + -0x318)) ^
       uVar31;
  uVar9 = DAT_182671764;
  uVar22 = CONCAT44(DAT_182671894,DAT_182671894);
  uVar21 = (*(ulonglong *)(lVar4 + -0x9f8) >> 0x20 ^ uVar19) >> 0x12;
  uVar32 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x9f8)) << ((bVar12 ^ 0x18) & 0x3f);
  uVar19 = (*(ulonglong *)(lVar4 + -0x638) ^ uVar31) + (uVar24 ^ *(ulonglong *)(lVar4 + -0x9f8)) ^
           uVar22;
  *(ulonglong *)(lVar4 + -0x400) = uVar19;
  uVar14 = CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(lVar4 + -0x610) = uVar32 ^ CONCAT44(uVar9,uVar9);
  uVar17 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar21 ^ uVar14;
  uVar9 = DAT_182671688;
  *(ulonglong *)(lVar4 + -0x548) = (uVar21 | uVar32) ^ uVar17;
  uVar40 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x748) = uVar32 | 0xd05ad65f3da4bc55;
  uVar27 = DAT_182671594;
  uVar5 = DAT_182671590;
  *(ulonglong *)(lVar4 + -0x5c8) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a0 ^ 0xd80d7356)) ^ uVar19 ^ uVar40 ^ uVar17 ^
       uVar22;
  uVar19 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar24 = (CONCAT44(uVar5,uVar27) ^ 0xba3e88323628f1ec) + (uVar26 ^ *(ulonglong *)(lVar4 + -0x270))
  ;
  uVar17 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(lVar4 + -0x670) = uVar24 ^ uVar19;
  uVar14 = CONCAT44(uVar15,DAT_18267157c);
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar6,uVar27) ^ 0x243e7aae4f3ff816) + (uVar36 ^ *(ulonglong *)(lVar4 + -0x898)) ^
       uVar17;
  uVar21 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar4 + -0x3f0) = (uVar14 ^ 0x32c61fc349a455f5) >> (((byte)uVar7 ^ 0xa7) & 0x3f);
  uVar9 = DAT_182671608;
  uVar26 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar4 + -0x318) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0xe3629bcc)) ^ uVar17) + uVar24 ^ uVar26;
  uVar10 = _DAT_182671868;
  uVar24 = CONCAT44(uVar9,uVar9);
  uVar14 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar4 + -0x638) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a4 ^ 0xa11fe98b)) ^ uVar19) <<
       (((byte)uVar13 ^ 99) & 0x3f) ^ uVar24;
  uVar17 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x281dba8b)) =
       (*(ulonglong *)(DAT_182671560 - (uVar14 ^ 0x8504e90)) ^ uVar19) >>
       (((byte)DAT_1826715a4 ^ 0xcb) & 0x3f) ^ uVar17;
  lVar3 = DAT_182671560;
  uVar21 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar25 = (ulonglong)DAT_182671584;
  *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xad17ce32)) =
       (*(ulonglong *)(DAT_182671560 + -0x638) ^ uVar24 |
       uVar17 ^ *(ulonglong *)(DAT_182671560 + -0x9f8)) ^ uVar21;
  lVar4 = DAT_182671560;
  uVar14 = (ulonglong)DAT_18267156c;
  uVar21 = *(ulonglong *)(lVar3 - (uVar25 ^ 0xcf3bcc23)) ^ uVar36 ^
           *(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar21 ^ uVar26;
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar21;
  *(ulonglong *)(lVar4 + -0x748) =
       (CONCAT44(DAT_182671594,uVar13) ^ 0x4b2ce4ff7f7b35cf) -
       (*(ulonglong *)(lVar4 - (uVar14 ^ 0xe3629edc)) ^ uVar22);
  uVar13 = DAT_182671574;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a4 ^ 0xa11feab3)) =
       (uVar36 ^ uVar21) + (*(ulonglong *)(lVar4 + -0x400) ^ uVar22) ^ uVar34;
  lVar3 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  bVar12 = (byte)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xcf3bc92b)) ^ uVar36) <<
       (((byte)uVar13 ^ 0xcc) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xfdcd7e66)) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x610)) >> ((bVar12 ^ 0x12) & 0x3f) ^ uVar36;
  uVar14 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x8a0104e0)) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0xfffff767)) ^ uVar36 |
       uVar21 ^ *(ulonglong *)(lVar3 + -0x270)) ^ uVar14;
  uVar9 = DAT_182671828;
  uVar40 = uVar40 ^ *(ulonglong *)(lVar3 + -0x5c8);
  *(ulonglong *)(lVar3 + -0x110) =
       uVar34 ^ *(ulonglong *)(lVar3 + -0x548) ^ uVar14 ^ uVar17 ^ *(ulonglong *)(lVar3 + -0x3f0);
  *(ulonglong *)(lVar3 + -0x670) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xeefb220e)) ^ uVar26) + uVar40 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671810;
  *(ulonglong *)(lVar3 + -0x638) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_18267157c ^ 0x3bcf3ddf)) ^ uVar36) >>
       (((byte)DAT_182671580 ^ 0x7a) & 0x3f);
  uVar17 = uVar40 << (((byte)uVar13 ^ 0xc1) & 0x3f);
  uVar40 = uVar40 >> ((local_res18 ^ 0xf8) & 0x3f);
  uVar14 = (ulonglong)DAT_1826715bc;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar40 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar17 ^ uVar31;
  uVar21 = CONCAT44(DAT_182671874,DAT_182671874);
  *(uint *)(lVar3 + -0x874) = *(uint *)(*(ulonglong *)(lVar3 + -0x740) ^ uVar14) ^ DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0x748) = (uVar40 | uVar17) ^ uVar21;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar1 ^ uVar15;
  return;
}



############ FUN_ 180ef9620 size=5460 ############

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

void FUN_180ef9620(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_res20;
  byte local_c0;
  byte local_98;
  
  uVar8 = DAT_1826715f4;
  uVar18 = DAT_1826715b0;
  uVar15 = DAT_182671598;
  uVar13 = DAT_18267158c;
  uVar5 = DAT_182671580;
  uVar4 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar43 = (ulonglong)DAT_182671598;
  uVar21 = DAT_18267156c ^ DAT_182671598;
  uVar38 = (ulonglong)DAT_18267158c;
  uVar19 = (ulonglong)DAT_1826715b0;
  uVar24 = DAT_1826715b4 | DAT_18267158c;
  uVar26 = DAT_182671580 - DAT_1826715b0;
  uVar14 = DAT_182671698 >> 0x10;
  DAT_1826715a0 =
       (DAT_182671578 << 0x10 | DAT_182671578 & 0xff00) << 8 | DAT_182671578 >> 8 & 0xff00 |
       DAT_182671578 >> 0x18;
  uVar34 = DAT_182671718 & DAT_1826715f4 ^ 0x4b7d9980;
  uVar40 = *(uint *)(&DAT_182611e78 + DAT_1826718f4) ^ DAT_1826715a0;
  uVar10 = *(uint *)(&DAT_182611e80 + DAT_1826718f4) ^ DAT_182671578;
  uVar11 = DAT_1826715f4 & 0xff;
  DAT_1826715f4 = ((DAT_1826715f4 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar31 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar17 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  puVar27 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0x25cee7dd));
  DAT_182671594 = uVar26;
  DAT_18267159c = uVar24;
  DAT_1826715a4 = uVar21;
  *puVar27 = (*(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar31) << (((byte)uVar26 ^ 0x7c) & 0x3f) ^
             uVar17;
  uVar11 = uVar34 & 0xff;
  uVar34 = uVar34 << 8;
  DAT_182671624 = ((uVar34 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar35 = (ulonglong)DAT_182671624;
  uVar28 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar12 = DAT_182671718 & 0xff;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(_DAT_182671838,_DAT_182671838) ^ *(ulonglong *)(lVar2 + -0x2a0) |
       uVar17 ^ *(ulonglong *)(lVar2 + -0xa88)) ^ uVar28;
  uVar6 = DAT_1826715b4;
  uVar11 = DAT_18267156c;
  lVar3 = DAT_182671560;
  DAT_182671718 = ((DAT_182671718 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  puVar29 = (ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xa2f5f996));
  uVar32 = CONCAT44(DAT_182671718,DAT_182671718);
  uVar20 = (ulonglong)DAT_1826715b4;
  uVar41 = (ulonglong)DAT_18267156c;
  uVar44 = (ulonglong)uVar24;
  *(ulonglong *)(DAT_182671560 - (uVar44 ^ 0xa3f5f657)) =
       (CONCAT44(DAT_182671880,DAT_182671880) ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) -
       (*puVar29 ^ uVar28) ^ uVar32;
  *(uint *)(lVar3 + -0x27c) = (uVar6 ^ 0x2a8756f6) + 0xfc66fd7a;
  uVar12 = DAT_182671698 & 0xff;
  DAT_182671698 = ((DAT_182671698 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar33 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar22 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar3 + -0x2a0) =
       uVar22 ^ uVar33 ^ *(ulonglong *)(lVar3 + -0x898) ^ uVar28 ^ *(ulonglong *)(lVar3 + -0x628);
  local_c0 = (byte)uVar18;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xb05e4880)) =
       CONCAT44(uVar21,uVar15) ^ 0xd9e509ee462347d3 | *(ulonglong *)(lVar3 + -0x6b8) ^ uVar31;
  _DAT_1826715f0 = uVar14 & 0xff;
  _DAT_1826715f0 = ((uVar14 << 8 | _DAT_1826715f0) << 8 | _DAT_1826715f0) << 8 | _DAT_1826715f0;
  uVar25 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar30 = (*(ulonglong *)(lVar3 + -0x2a0) ^ uVar22) >> ((local_c0 ^ 0xd1) & 0x3f);
  uVar16 = (*(ulonglong *)(lVar3 + -0x2a0) ^ uVar22) << 0x12;
  *(ulonglong *)(lVar3 + -0x628) = uVar16 ^ uVar28;
  uVar16 = uVar30 | uVar16;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar30 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar16 ^ uVar17;
  *(ulonglong *)(lVar3 + -0xa88) = uVar30 >> (((byte)uVar21 ^ 0x81) & 0x3f);
  uVar7 = DAT_182671860;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x2a0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0xd86768ce)) ^ uVar33) - uVar16 ^ uVar25;
  uVar14 = DAT_1826715a0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x7ffe70d6)) =
       CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0x9e8) ^ *(ulonglong *)(lVar2 + -0x318);
  lVar3 = DAT_182671560;
  bVar39 = (byte)uVar24;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xb05e4420)) ^ uVar32) >>
       ((bVar39 ^ 0xb3) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x23707aab)) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0x628)) << (((byte)uVar13 ^ 0x8a) & 0x3f) ^ uVar22;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar22 ^ *(ulonglong *)(DAT_182671560 + -0xa88) |
       uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) ^ uVar32;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0x7ffe75e6)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x23707283)) ^ uVar25) <<
       (((byte)uVar14 ^ 0x7e) & 0x3f);
  puVar23 = (ulonglong *)(lVar3 - (uVar19 ^ 0x4d678467));
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 + -0x9e8) ^ uVar32) - (uVar32 ^ *puVar23) ^ uVar17;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0xa88) =
       *(ulonglong *)(lVar3 - (uVar38 ^ 0xa2f5fd1e)) ^ uVar25 ^ uVar32 ^
       *(ulonglong *)(lVar3 + -0x898) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (CONCAT44(uVar13,uVar15) ^ 0x5435efaa7ea3d17) + 0x7fb4b1724a8c412e;
  uVar7 = DAT_182671808;
  uVar30 = ((ulonglong)((uVar34 & 0xffff) >> 9) | uVar35 << 7) ^
           *(ulonglong *)(lVar3 + -0xa88) >> 0x19;
  *(ulonglong *)(lVar3 + -0x318) = uVar30 ^ uVar25;
  uVar16 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x92aa3e3c)) ^ uVar28) <<
           ((bVar39 ^ 0x98) & 0x3f);
  uVar13 = DAT_1826717d8 & 0xff;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar16 ^ CONCAT44(uVar7,uVar7);
  DAT_1826717d8 = ((DAT_1826717d8 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar33 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar2 + -0x898) = (uVar16 | uVar30) ^ uVar33;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar25) - (CONCAT44(uVar26,uVar14) ^ 0xde8cf04fc60115f6) ^
       uVar32;
  *puVar27 = **(ulonglong **)(lVar2 - (uVar41 ^ 0xb05e4038));
  uVar33 = uVar33 ^ *(ulonglong *)(lVar2 + -0x898);
  uVar35 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x1f0)) - uVar33 ^ uVar22;
  uVar30 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar2 + -0x318) = uVar35;
  uVar13 = DAT_1826716fc & 0xff;
  uVar16 = *(ulonglong *)(lVar2 + -0x6b8) ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x9e8) = uVar33 - (CONCAT44(uVar24,uVar14) ^ 0xa5ba91fcce8d3ae9) ^ uVar28;
  lVar2 = DAT_182671560;
  DAT_1826716fc = ((DAT_1826716fc << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  bVar1 = (byte)uVar11;
  uVar30 = (uVar16 ^ uVar30) >> (((byte)uVar5 ^ 0x74) & 0x3f) | (uVar16 ^ uVar30) << 0x1f;
  uVar16 = (uVar17 ^ *(ulonglong *)(DAT_182671560 + -0x628)) -
           (CONCAT44(uVar21,uVar4) ^ 0x1f06ef8cacd8ec32);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar30 ^ uVar32;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar16 ^ uVar25;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x2a0) = 0x57d3e417160b8b40 >> ((bVar1 ^ 0x3f) & 0x3f);
  uVar25 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(lVar2 + -0xa88) = uVar16 - uVar30 ^ uVar25;
  *(ulonglong *)(lVar2 + -0x1f0) = (CONCAT44(uVar15,uVar5) ^ 0xfb701abfbbc584bc) + uVar30 ^ uVar28;
  uVar33 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar30 = *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0xd86761a6)) ^ uVar35 ^ uVar33 ^ uVar22 ^
           uVar28;
  local_98 = (byte)uVar6;
  *(ulonglong *)(lVar2 + -0x628) = uVar30;
  uVar7 = DAT_182671670;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x4d678ad7)) ^ uVar33) >> ((local_98 ^ 0x26) & 0x3f) ^
       uVar17;
  lVar3 = DAT_182671560;
  uVar16 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xb05e44b0)) = (uVar33 ^ uVar30) << 0x3b ^ uVar16;
  uVar30 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *(ulonglong *)(lVar3 + -0x898) =
       (*(ulonglong *)(lVar3 + -0x2a0) ^ uVar17 | uVar16 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^ uVar30;
  uVar11 = DAT_1826718c4 & 0xff;
  DAT_1826718c4 = ((DAT_1826718c4 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar36 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xa3f5fe4f)) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar22) - (uVar30 ^ *puVar23) ^ uVar36;
  lVar2 = DAT_182671560;
  uVar22 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *puVar29 = *(ulonglong *)(DAT_182671560 - (uVar19 ^ 0x4d678517)) ^ uVar22 ^ uVar25 ^ uVar28 ^
             *(ulonglong *)(DAT_182671560 + -0xa88);
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x7ffe745e)) =
       CONCAT44(uVar26,uVar26) ^ CONCAT44(uVar14,uVar26) ^ 0x95620801f91d8023;
  uVar7 = DAT_1826717ac;
  uVar42 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x628)) >> ((bVar1 ^ 0x2d) & 0x3f) ^ uVar42;
  uVar16 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xa3f5fca7)) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x628)) << 0x1b ^ uVar16;
  uVar14 = DAT_182671700 & 0xff;
  DAT_182671700 = ((DAT_182671700 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar35 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x92aa3d5c)) =
       (uVar16 ^ *(ulonglong *)(lVar3 + -0x318) | uVar42 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^ uVar35;
  uVar14 = _DAT_182671618;
  uVar22 = (ulonglong)_DAT_182671618;
  uVar11 = DAT_182671694 & 0xff;
  uVar33 = CONCAT44(_DAT_182671618,_DAT_182671618);
  DAT_182671694 = ((DAT_182671694 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar37 = CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(lVar3 + -0x2a0) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0xa88)) - (uVar35 ^ *(ulonglong *)(lVar3 + -0x9e8)) ^
       uVar37;
  uVar16 = *(ulonglong *)(lVar3 - (uVar41 ^ 0xb05e43f8)) ^ uVar33 ^ uVar35 ^ uVar36 ^
           *(ulonglong *)(lVar3 + -0x9e8);
  uVar35 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(lVar3 + -0x628) = uVar16;
  *(ulonglong *)(lVar3 + -0x318) =
       ((ulonglong)(uVar14 >> 0x17) | uVar22 << 9) ^ uVar16 >> 0x17 ^ uVar35;
  lVar2 = DAT_182671560;
  uVar25 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xa3f5f537)) =
       (*(ulonglong *)(lVar3 - (uVar43 ^ 0x22f47094)) ^ uVar33) <<
       (((byte)DAT_1826715a0 ^ 0x56) & 0x3f) ^ uVar25;
  uVar33 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar14 = DAT_182671788 & 0xff;
  uVar22 = uVar25 ^ *puVar27 | uVar35 ^ *(ulonglong *)(lVar3 + -0x318);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar22 ^ uVar33;
  DAT_182671788 = ((DAT_182671788 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar44 = CONCAT44(DAT_182671788,DAT_182671788);
  uVar16 = uVar37 ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x2a0) ^ *(ulonglong *)(lVar2 + -0x898) ^
           uVar17;
  *(ulonglong *)(lVar2 + -0x628) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x4d678d0f)) ^ uVar36) - uVar22 ^ uVar44;
  *(ulonglong *)(lVar2 + -0xa88) = uVar16;
  *(ulonglong *)(lVar2 + -0x318) = uVar16 ^ uVar37 ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar17;
  uVar16 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar2 + -0x1f0) =
       (uVar17 ^ *(ulonglong *)(lVar2 + -0xa88)) >> ((local_c0 ^ 0xd7) & 0x3f) ^ uVar16;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xb05e4a90)) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0xa2f5f536)) ^ uVar17) << ((bVar39 ^ 0xa7) & 0x3f) ^ uVar32
  ;
  uVar17 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar2 + -0x318) =
       (uVar16 ^ *(ulonglong *)(lVar2 + -0x1f0) | uVar32 ^ *(ulonglong *)(lVar2 + -0x898)) ^ uVar17;
  uVar5 = DAT_1826715ac;
  uVar16 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x22f47e24)) =
       CONCAT44(uVar26,uVar21) ^ 0xa152e2ba0f47af65 | CONCAT44(uVar18,uVar21) ^ 0x3e316bdb28c309a5;
  uVar7 = DAT_182671630;
  uVar4 = DAT_1826715a8;
  uVar32 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar18 = uVar5 * DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x2a0)) -
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0xfe76fd67)) ^ uVar17) ^ uVar32;
  lVar2 = DAT_182671560;
  uVar38 = (ulonglong)uVar4;
  uVar22 = CONCAT44(uVar7,uVar7);
  puVar29 = (ulonglong *)(DAT_182671560 - (uVar38 ^ 0xe289eb68));
  uVar16 = uVar22 ^ uVar17 ^ uVar44 ^ *(ulonglong *)(DAT_182671560 + -0x318) ^ *puVar29;
  DAT_182671574 = uVar18;
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar16;
  lVar3 = DAT_182671560;
  uVar19 = (ulonglong)uVar18;
  puVar27 = (ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x1a60bfc8));
  local_res20 = (byte)uVar8;
  uVar17 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  puVar23 = (ulonglong *)(DAT_182671560 - (uVar19 ^ 0x1a60b7e0));
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0xcf8ea419)) ^ uVar42) <<
       (((byte)*puVar27 ^ local_res20) & 0x3f);
  uVar7 = DAT_182671734;
  uVar30 = (*puVar23 ^ uVar22) >> (((byte)uVar5 ^ 0x95) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar30 ^ uVar17;
  uVar16 = (uVar22 ^ uVar16) << (((byte)uVar4 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa88) = uVar16 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x318) = uVar30 << (((byte)uVar5 ^ 0x9d) & 0x3f);
  lVar2 = DAT_182671560;
  uVar14 = DAT_182671708 & 0xff;
  DAT_182671708 = ((DAT_182671708 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar17 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x1a60b658)) = (uVar30 | uVar16) ^ uVar17;
  uVar35 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xe289ebf8)) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0x628)) - (*(ulonglong *)(lVar2 + -0x318) ^ uVar17) ^
       uVar35;
  lVar2 = DAT_182671560;
  uVar16 = *(ulonglong *)(DAT_182671560 + -0x2a0);
  uVar30 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar19 = *(ulonglong *)(DAT_182671560 - (uVar19 ^ 0x1a60bca8)) ^ uVar32 ^ uVar33 ^
           *(ulonglong *)(DAT_182671560 + -0x1f0);
  uVar33 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar19 ^ uVar30;
  uVar7 = DAT_1826715d4;
  *(ulonglong *)(lVar2 + -0x628) = uVar19 >> (((byte)uVar4 ^ 0x79) & 0x3f) ^ uVar33;
  uVar19 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x9e8) =
       (uVar22 ^ uVar16) << ((byte)*(undefined8 *)(lVar2 - (uVar38 ^ 0xe289e5d8)) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9e8) = (*puVar27 ^ uVar30) << ((local_98 ^ 0x24) & 0x3f) ^ uVar19;
  uVar13 = DAT_182671818;
  lVar3 = DAT_182671560;
  uVar16 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar38 = CONCAT44(DAT_182671818,DAT_182671818);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x237078bb)) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0xb05e4be0)) ^ uVar19 | uVar33 ^ *puVar29) ^ uVar16;
  uVar7 = DAT_182671834;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar33 ^ *(ulonglong *)(lVar2 + -0x628);
  uVar30 = CONCAT44(uVar7,uVar7);
  uVar19 = *(ulonglong *)(lVar2 + -0x6b8) ^ *(ulonglong *)(lVar2 + -0x898) ^ uVar38 ^ uVar16 ^
           uVar35;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar19;
  uVar15 = DAT_1826716e8 & 0xff;
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x1f0)) - (*(ulonglong *)(lVar2 + -0x898) ^ uVar16) ^
       uVar30;
  uVar11 = DAT_182671584;
  uVar14 = DAT_182671568;
  DAT_1826716e8 = ((DAT_1826716e8 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar22 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar20 = (ulonglong)DAT_182671584;
  uVar15 = DAT_182671568 * DAT_182671584;
  uVar16 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar2 + -0x628) =
       ((ulonglong)uVar13 << 0x12 | (ulonglong)(uVar13 >> 0xe)) ^ uVar19 >> 0xe ^ uVar22;
  uVar13 = DAT_182671854 & 0xff;
  DAT_182671854 = ((DAT_182671854 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar16 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0x70232a98)) ^ uVar38) <<
           (((byte)uVar15 ^ 0x32) & 0x3f);
  DAT_182671590 = uVar15;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar16 ^ CONCAT44(DAT_182671854,DAT_182671854);
  puVar27 = (ulonglong *)(lVar3 - (uVar20 ^ 0xf21d4c28));
  uVar19 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x70232280)) = (*puVar27 ^ uVar22 | uVar16) ^ uVar19;
  lVar2 = DAT_182671560;
  uVar16 = CONCAT44(DAT_182671608,DAT_182671608);
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x70232be8));
  *puVar23 = (*(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar35) -
             (CONCAT44(uVar15,uVar11) ^ 0xdc8298ef312b4f78) ^ uVar16;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xf21d43e8)) =
       0x4efa5f46bc70faf0 >> (((byte)uVar14 ^ 0x56) & 0x3f);
  uVar22 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar2 + -0x628) =
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar16) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xbee61f0)) ^ uVar19) ^ uVar22;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xbee62a0)) =
       (*(ulonglong *)(lVar2 + -0x1f0) ^ uVar19) - (CONCAT44(uVar11,uVar14) ^ 0x71a80e889d39c5fa) ^
       uVar25;
  uVar13 = DAT_1826717bc;
  uVar16 = (ulonglong)DAT_1826717bc;
  uVar19 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(lVar2 + -0x318) ^ uVar19 ^ uVar30 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0xa88);
  *(ulonglong *)(lVar2 + -0x9e8) = CONCAT44(uVar14,uVar5) ^ *puVar27 ^ uVar22 ^ 0x6ee30de1cca09c12;
  *puVar23 = ((ulonglong)(uVar13 >> 0x10) | uVar16 << 0x10) ^ *(ulonglong *)(lVar2 + -0x6b8) >> 0x10
             ^ uVar28;
  uVar16 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xbee66b8)) ^ uVar19) <<
           (((byte)uVar11 ^ 0x30) & 0x3f);
  uVar17 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar16 ^ uVar31;
  uVar7 = DAT_1826716a4;
  uVar16 = uVar16 | *(ulonglong *)(lVar2 + -0x898) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x318) = uVar16 ^ uVar17;
  uVar31 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x702329f8)) ^ uVar30) -
           (CONCAT44(uVar11,uVar18) ^ 0xf45224432a9b71d6);
  *(ulonglong *)(lVar2 + -0x9e8) = uVar31 ^ CONCAT44(uVar7,uVar7);
  *(undefined8 *)(lVar2 + -0x6b8) = **(undefined8 **)(lVar2 + -0x230);
  iVar9 = DAT_1826718a8;
  *(ulonglong *)(lVar2 + -0x898) = uVar31 - uVar16 ^ CONCAT44(DAT_1826718b4,DAT_1826718b4);
  DAT_182671678 = iVar9 + _DAT_1826715e0;
  uVar13 = _DAT_1826715e0 & 0xff;
  _DAT_1826715e0 = ((_DAT_1826715e0 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar31 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xf21d4bf0)) =
       (CONCAT44(uVar5,uVar14) ^ 0xced2c4809ad3be9a) + uVar16 ^ uVar31;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xf21d4088)) =
       CONCAT44(uVar4,uVar11) ^ *(ulonglong *)(lVar2 + -0x1f0) ^ uVar31 ^ 0x64ba76fdcdff7f0c;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar40;
  return;
}



############ FUN_ 180f0e900 size=3017 ############

void FUN_180f0e900(void)

{
  longlong lVar1;
  longlong lVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  int iVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  
  iVar15 = DAT_1826715b4;
  uVar11 = DAT_18267159c;
  uVar9 = DAT_182671590;
  uVar7 = DAT_182671588;
  uVar3 = DAT_18267157c;
  lVar1 = DAT_182671560;
  uVar16 = DAT_182671594 & 3;
  if (uVar16 < 2) {
    uVar25 = DAT_182671588;
    if (uVar16 == 0) {
      uVar25 = DAT_182671594;
    }
  }
  else {
    uVar25 = DAT_18267158c;
    if (uVar16 < 3) {
      uVar25 = DAT_1826715a0;
    }
  }
  uVar22 = ~DAT_182671590;
  uVar18 = DAT_1826715b4 - DAT_182671580;
  uVar16 = *(uint *)(&DAT_182611e78 + DAT_1826719e4);
  uVar21 = DAT_18267159c << 0x10 | DAT_18267159c >> 0x10;
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_1826719e4) ^ DAT_182671590;
  DAT_182671570 = uVar22;
  DAT_182671578 = uVar18;
  DAT_1826715ac = uVar21;
  DAT_1826715b0 = uVar25;
  *(ulonglong *)(DAT_182671560 + -0xbb0) = CONCAT44(DAT_18267159c,uVar18) ^ 0xd183719879616280;
  *(ulonglong *)(lVar1 + -0xa90) = CONCAT44(DAT_182671580,uVar21) ^ 0xe7f7abd2038c5a5b;
  *(undefined8 *)(lVar1 + -0x598) = 0xbd14a160132efba6;
  uVar10 = DAT_182671594;
  *(ulonglong *)(lVar1 + -0x3a8) = CONCAT44(uVar25,iVar15) ^ 0xfa6c235961b9c3cc;
  *(undefined8 *)(lVar1 - ((ulonglong)DAT_182671580 ^ 0x76a141f1)) = 0x37d56b6192a90747;
  *(ulonglong *)(lVar1 + -0x500) = CONCAT44(uVar7,DAT_18267158c) ^ 0x6902bdb7a25b609c;
  *(undefined8 *)(lVar1 + -0xa18) = 0xd24c8ea29e9a638a;
  *(ulonglong *)(lVar1 + -3000) = CONCAT44(uVar10,uVar3) ^ 0x7b79ada7366fbbeb;
  uVar12 = DAT_1826715a0;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xae0) = CONCAT44(DAT_1826715a0,uVar22) ^ 0xb1d3a250d1f561ea;
  *(ulonglong *)(lVar1 + -0x8f8) = CONCAT44(uVar12,uVar18) ^ 0x6f4b41d2e27fc0f7;
  *(ulonglong *)(lVar1 + -0x1f8) = CONCAT44(uVar11,uVar22) ^ 0x22092ff9c433e5c3;
  *(ulonglong *)(lVar1 + -0x5b8) = CONCAT44(uVar21,uVar10) ^ 0xd3f1a2213b970ea4;
  *(ulonglong *)(lVar1 + -0x6b0) = CONCAT44(uVar3,uVar3) ^ 0x5dcf51f724bb3d62;
  *(ulonglong *)(lVar1 + -0xa68) = CONCAT44(uVar3,uVar21) ^ 0x7228af4e72da7187;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0xb20) = CONCAT44(uVar10,uVar12) ^ 0x5c6bbe2e473f54f3;
  uVar8 = DAT_18267158c;
  *(ulonglong *)(lVar2 + -0x908) = CONCAT44(iVar15,DAT_18267158c) ^ 0x135e1724bda4e977;
  *(ulonglong *)(DAT_182671560 + -0xc10) = CONCAT44(uVar9,uVar11) ^ 0x51ff5a5abb2af959;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x28) = CONCAT44(uVar7,uVar3) ^ 0xe2ecb9cd288d0b6;
  *(ulonglong *)(lVar1 + -0x2d0) = CONCAT44(uVar22,DAT_182671580) ^ 0xc2216d8adf1721aa;
  *(ulonglong *)(lVar1 + -0x1b8) = CONCAT44(uVar9,uVar8) ^ 0xd339a0e967e8203a;
  *(ulonglong *)(lVar1 + -0xf0) = CONCAT44(uVar25,iVar15) ^ 0x5a9b8f066f377781;
  uVar8 = DAT_1826715a0;
  *(ulonglong *)(lVar1 + -1000) = CONCAT44(uVar22,uVar21) ^ 0xaa9bf1ba82c9d225;
  *(ulonglong *)(lVar1 + -0xaa8) = CONCAT44(uVar18,uVar8) ^ 0x46e6c2260598af2b;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar21 ^ 0xcac9bd3f)) = 0x33ed8b1b91a00b6a;
  *(ulonglong *)(lVar1 + -0xc50) = CONCAT44(uVar11,DAT_182671580) ^ 0x4d8131029595cf71;
  *(undefined8 *)(lVar1 + -0x828) = 0xb8c096ad6fad7cd6;
  uVar8 = DAT_182671588;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671594 ^ 0xf4b6b4b6)) =
       CONCAT44(uVar25,DAT_1826715b0) ^ 0xa47db207ed790c30;
  *(ulonglong *)(lVar1 + -0x860) = CONCAT44(iVar15,uVar8) ^ 0x2553f3072f903dc8;
  uVar4 = DAT_18267156c;
  uVar19 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar1 + -0x358) = CONCAT44(uVar9,uVar21) ^ 0xb8cbb61f7dd1ad9c;
  *(undefined8 *)(lVar1 + -0xe0) = 0xf44ac8f2fbd6911e;
  *(ulonglong *)(lVar1 - (uVar19 ^ 0x7e3e7f8e)) =
       CONCAT44(uVar10,DAT_182671580) ^ 0xfae402143d3a092e;
  *(ulonglong *)(lVar1 + -0x1a8) = CONCAT44(uVar3,uVar22) ^ 0x8ad2ee14a80391ed;
  uVar13 = DAT_1826715a4;
  uVar25 = DAT_18267158c;
  uVar23 = (ulonglong)DAT_18267158c;
  uVar24 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar1 + -0xd20) = CONCAT44(uVar10,uVar18) ^ 0x347aa0fa8499c9f9;
  *(ulonglong *)(lVar1 + -0x3e0) = CONCAT44(uVar21,iVar15) ^ 0x4c008d06cabc9c3f;
  *(undefined8 *)(lVar1 + -0xb00) = 0xc718bdc02b88ae94;
  uVar19 = CONCAT44(uVar12,DAT_182671594);
  *(ulonglong *)(lVar1 + -0xc00) = CONCAT44(uVar11,uVar21) ^ 0x93dabb00854a1d0;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0x603a9d08)) = uVar19 ^ 0xbc63c9247dfd32b;
  *(ulonglong *)(lVar1 + -0x7e8) = CONCAT44(DAT_182671580,iVar15) ^ 0x69dfbe98c5b19c8d;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x7f8fbcd0)) = CONCAT44(uVar18,uVar4) ^ 0x98894a9391225633;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0x603a9890)) =
       CONCAT44(uVar22,uVar25) ^ 0x4dc0e74f5eb3b84c;
  uVar20 = uVar9 << 0x10 | uVar9 >> 0x10;
  DAT_182671580 = uVar20;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar9 ^ 0xacb6bf1c)) = 0xb27954d7eef333c7;
  *(undefined8 *)(lVar1 + -0x458) = 0x384963c205e37766;
  *(undefined8 *)(lVar1 + -0x1d0) = 0xdec535c3b07db41a;
  *(ulonglong *)(lVar1 + -0x140) = CONCAT44(uVar9,uVar20) ^ 0xc72fcc0270881243;
  uVar5 = DAT_182671574;
  uVar19 = CONCAT44(uVar20,uVar9);
  *(ulonglong *)(lVar2 + -0x4f8) = uVar19 ^ 0x4a2378a21a0e631f;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xacb6b424)) =
       CONCAT44(uVar20,uVar20) ^ 0x3bc19c67dfd7ad4f;
  *(ulonglong *)(lVar2 + -0x7b0) = CONCAT44(uVar20,uVar20) ^ 0xa81ea3ad2dce463e;
  *(ulonglong *)(lVar2 + -0xb60) = uVar19 ^ 0x85698c92969f9b88;
  *(ulonglong *)(lVar2 + -0x308) = CONCAT44(uVar7,uVar5) ^ 0x291732f6c80c3590;
  uVar23 = CONCAT44(uVar22,DAT_1826715a0);
  *(undefined8 *)(lVar2 + -0x40) = 0x20882891035b7eaa;
  *(undefined8 *)(lVar2 + -600) = 0x26ab37d33d11635c;
  *(ulonglong *)(lVar2 + -0x608) = uVar23 ^ 0x649de4723e640fd0;
  uVar14 = DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0xc28) = CONCAT44(uVar13,DAT_1826715a8) ^ 0x43013cae2b1912d8;
  *(undefined8 *)(lVar2 + -0xac8) = 0xd5eb906a208426c4;
  uVar8 = DAT_182671598;
  uVar7 = DAT_182671584;
  uVar23 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671598 ^ 0xb77bdef0)) =
       CONCAT44(uVar9,DAT_18267157c) ^ 0x29fc858febd7a91c;
  *(ulonglong *)(lVar2 + -0x9a0) = uVar19 ^ 0x12b9416d0c25a6ae;
  uVar25 = DAT_182671594;
  uVar3 = DAT_182671568;
  *(ulonglong *)(lVar2 + -0x4e0) = CONCAT44(uVar20,DAT_182671568) ^ 0x108f8a5593cc6ef;
  *(ulonglong *)(DAT_182671560 + -0xb18) = CONCAT44(uVar7,uVar25) ^ 0x678ad119cfda4120;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b0 ^ 0x7e3e7966)) =
       CONCAT44(uVar11,uVar4) ^ 0xc4729f136b327f1a;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xab0) = CONCAT44(iVar15,uVar11) ^ 0x6ec59995d36e75d5;
  *(undefined8 *)(lVar1 + -0x6d8) = 0x59ed6add7fbb1bd4;
  uVar25 = DAT_18267158c;
  *(ulonglong *)(lVar1 + -0xd08) = CONCAT44(uVar20,uVar13) ^ 0x21c67263c0032cfd;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x5f77a67c)) =
       CONCAT44(uVar25,uVar11) ^ 0x103ba307e515deaa;
  lVar1 = DAT_182671560;
  *(undefined8 *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0xb77bd8b0)) = 0x6dffa3dcdb187132;
  *(ulonglong *)(lVar1 + -0x4a8) = CONCAT44(uVar10,uVar22) ^ 0x76d5f2639f488b50;
  *(ulonglong *)(lVar1 + -0x330) = CONCAT44(uVar21,uVar5) ^ 0xfedf1d38e3194fae;
  uVar6 = DAT_18267157c;
  uVar19 = CONCAT44(uVar7,DAT_18267157c);
  *(ulonglong *)(lVar1 + -0xc68) = CONCAT44(uVar12,uVar13) ^ 0xc87950817453316;
  *(undefined8 *)(lVar1 + -0x8d8) = 0x3a9779d7cce1aa08;
  *(undefined8 *)(lVar1 + -0x4d8) = 0xc1d4fa7ce76a6dbb;
  *(ulonglong *)(lVar1 + -0x580) = CONCAT44(uVar18,uVar6) ^ 0xaadc8879f2ca9aec;
  *(ulonglong *)(lVar1 + -0x720) = uVar19 ^ 0xd19bf18f6fdfae51;
  uVar7 = DAT_182671594;
  *(ulonglong *)(lVar1 + -0x9f0) = CONCAT44(uVar14,DAT_1826715b0) ^ 0x70d81f6219f5946f;
  *(ulonglong *)(lVar1 + -0xd58) = CONCAT44(uVar21,uVar25) ^ 0x3e035b90f2bd92ab;
  *(ulonglong *)(lVar1 + -0x138) = CONCAT44(uVar4,uVar3) ^ 0x4726bbc2252147c8;
  uVar19 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar1 + -0x668) = CONCAT44(uVar3,uVar3) ^ 0x477660af0bb9f01;
  *(ulonglong *)(lVar1 + -0x788) = CONCAT44(uVar11,uVar25) ^ 0x63aaedebfe5823c7;
  *(ulonglong *)(lVar1 + -0x408) = CONCAT44(uVar9,uVar3) ^ 0x7f88fd397f3826a4;
  *(undefined8 *)(lVar1 - (uVar19 ^ 0x57cf7576)) = 0x8531ea51d081b6d6;
  *(ulonglong *)(lVar1 + -0x7c0) = CONCAT44(uVar5,DAT_1826715a0) ^ 0xa3dbb8bf1205c95d;
  *(ulonglong *)(lVar1 + -0x50) = CONCAT44(iVar15,uVar7) ^ 0x9a630dbc2dbcbef0;
  *(ulonglong *)(lVar1 + -0x88) = CONCAT44(uVar8,uVar9) ^ 0xb08e59cfecf09a39;
  *(ulonglong *)(lVar1 + -0x9e8) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar22 ^ 0x534940ab)) |
       CONCAT44(uVar14,uVar7) ^ 0x8194f6b1c7803957;
  *(undefined8 *)(lVar1 + -0x1a0) = *(undefined8 *)(lVar1 + -0xa08);
  *(ulonglong *)(lVar1 + -0xa08) = CONCAT44(uVar4,uVar20) ^ 0xc9a65ccb9d74179f;
  *(longlong *)(lVar1 - (uVar24 ^ 0x7f8fbfc8)) = 0x236ef9827e50cbd5 - *(longlong *)(lVar1 + -0x638);
  *(undefined8 *)(lVar1 - (uVar23 ^ 0x5f77a89c)) = *(undefined8 *)(lVar1 + -0xd0);
  *(undefined8 *)(lVar1 + -0xd0) = 0x593c3fb65bdfc9db;
  *(undefined1 *)(lVar1 + -0xa09) = 0xce;
  *(undefined8 *)(lVar1 + -0xc30) = 0xb60da16cb45db625;
  *(undefined8 *)(lVar1 + -0x460) = *(undefined8 *)(lVar1 - ((ulonglong)uVar18 ^ 0x341c63f3));
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar16 ^ uVar22;
  return;
}



############ FUN_ 180e940f0 size=5500 ############

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

void FUN_180e940f0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint *puVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  int *piVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  byte bVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_128;
  byte local_118;
  byte local_108;
  byte local_e8;
  byte local_e0;
  
  uVar13 = DAT_1826715b4;
  uVar12 = DAT_1826715a8;
  uVar10 = DAT_182671590;
  uVar30 = DAT_182671588;
  uVar9 = DAT_182671574;
  uVar8 = DAT_182671570;
  uVar47 = (ulonglong)DAT_1826715b4;
  uVar46 = (ulonglong)DAT_182671574;
  uVar22 = (ulonglong)DAT_182671590;
  uVar45 = DAT_182671584 & DAT_182671598;
  DAT_1826715a0 = DAT_182671574 - DAT_182671590;
  uVar40 = DAT_182671570 & DAT_1826715a8;
  uVar31 = (ulonglong)DAT_182671588;
  uVar34 = DAT_18267158c + DAT_182671588;
  uVar25 = (DAT_1826715b4 << 0x10 | DAT_1826715b4 & 0xff00) << 8 | DAT_1826715b4 >> 8 & 0xff00 |
           DAT_1826715b4 >> 0x18;
  uVar28 = *(uint *)(&DAT_182611e78 + DAT_182671b60) ^ DAT_1826715a0;
  uVar16 = *(uint *)(&DAT_182611e80 + DAT_182671b60) ^ DAT_182671574;
  uVar20 = (ulonglong)DAT_1826715ec;
  uVar29 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar26 = CONCAT44(DAT_182671814,DAT_182671814);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x600);
  DAT_18267156c = uVar34;
  DAT_18267157c = uVar45;
  DAT_182671580 = uVar25;
  DAT_182671594 = uVar40;
  *(ulonglong *)(DAT_182671560 + -0x510) = *puVar1 ^ *(ulonglong *)(DAT_182671560 + -0x5c8) ^ uVar26
  ;
  uVar18 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar32 = (ulonglong)uVar34;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0xd6fde2e4)) =
       (*(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xf3d1ec9c)) ^
       CONCAT44(DAT_182671678,DAT_182671678)) + (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x3f0)) ^
       uVar18;
  lVar6 = DAT_182671560;
  uVar35 = CONCAT44(DAT_182671740,DAT_182671740);
  uVar23 = (ulonglong)uVar12;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar25 ^ 0xeff8fd6d)) =
       (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x3f0)) << (((byte)uVar34 ^ 0xa6) & 0x3f) ^ uVar35;
  uVar14 = DAT_182671790;
  uVar20 = (*(ulonglong *)(lVar6 + -0x3f0) >> 0x20 ^ uVar20) >> 10;
  *(ulonglong *)(lVar6 + -0x688) = uVar20 ^ CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar29 = (ulonglong)uVar8;
  puVar2 = (ulonglong *)(lVar6 + -0x748);
  *(ulonglong *)(lVar6 + -0xa60) =
       (*(ulonglong *)(lVar6 - (uVar23 ^ 0x64b483f6)) ^ uVar35 | uVar20) ^ uVar33;
  puVar19 = (ulonglong *)(lVar6 - (uVar29 ^ 0xeeb5860f));
  *puVar19 = 0xfc92e8c000000000;
  uVar20 = CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar6 + -0x6b8) =
       *(ulonglong *)(lVar6 + -0x110) ^ *(ulonglong *)(lVar6 + -0xa60) ^ uVar20 ^ uVar33 ^ uVar18;
  uVar14 = DAT_1826717b8;
  *puVar2 = CONCAT44(DAT_182671778,DAT_182671778) ^ *(ulonglong *)(lVar6 + -0x610) |
            0x5e711e8bba6877cf;
  uVar15 = DAT_182671828;
  uVar48 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x9f8) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0x75fefe57)) ^ uVar20) +
       (*(ulonglong *)(lVar6 + -0x5c8) ^ uVar26) ^ uVar48;
  uVar14 = DAT_1826717c0;
  uVar11 = DAT_182671598;
  uVar34 = DAT_182671584;
  uVar41 = CONCAT44(uVar15,uVar15);
  bVar24 = (byte)uVar40;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar45 ^ 0xc511c86b)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar25 ^ 0xeff8f8cd)) ^ uVar20) <<
       ((bVar24 ^ 0xce) & 0x3f) ^ uVar41;
  *(byte *)(lVar6 + -0xce3) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x8f8) ^ (ulonglong)DAT_182671878) ^ (byte)uVar14;
  bVar44 = (byte)uVar34;
  uVar26 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar20 = (*(ulonglong *)(lVar6 + -0x6b8) ^ uVar20) >> ((bVar44 ^ 0x1b) & 0x3f);
  puVar3 = (ulonglong *)(lVar6 + -0x628);
  *puVar3 = uVar20 ^ uVar26;
  *(uint *)(lVar6 + -0x678) =
       (DAT_18267158c ^ 0x4b6f4ff4) + *(int *)(lVar6 - ((ulonglong)uVar45 ^ 0xc511cc6f));
  lVar6 = DAT_182671560;
  uVar37 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar20 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar40 ^ 0x64b4869e)) ^ uVar41 | uVar20) ^
           uVar37;
  puVar4 = (ulonglong *)(DAT_182671560 + -0xbf0);
  *puVar4 = uVar20;
  *(ulonglong *)(lVar6 + -0x638) = CONCAT44(uVar8,uVar45) ^ uVar37 ^ uVar20 ^ 0xf607f14a613c7e83;
  uVar42 = CONCAT44(DAT_182671764,DAT_182671764);
  *puVar1 = *(ulonglong *)(lVar6 - (uVar32 ^ 0xf681fd48)) ^ uVar42 ^ uVar37 ^ uVar48 ^ uVar20;
  uVar15 = DAT_18267182c;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x9e8) =
       (CONCAT44(uVar13,uVar12) ^ 0x1c3a6e7bd0dfdeb2) + (CONCAT44(uVar10,uVar34) ^ 0x7b369687f9e61b)
  ;
  uVar20 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x3f0) =
       (*(ulonglong *)(lVar6 + -0x110) ^ uVar18) + (*(ulonglong *)(lVar6 + -0x510) ^ uVar20) ^
       uVar35;
  uVar14 = DAT_1826717fc;
  *(ulonglong *)(lVar6 + -0x318) =
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a0 ^ 0x47fd55ab)) ^ uVar35 |
       *(ulonglong *)(lVar6 - (uVar31 ^ 0x1f841694)) ^ uVar26;
  uVar20 = *(ulonglong *)(lVar6 + -0x510) ^ uVar20;
  uVar18 = CONCAT44(uVar14,uVar14);
  local_e0 = (byte)uVar45;
  *(ulonglong *)(lVar6 + -0x688) = uVar20 << ((bVar24 ^ 0xce) & 0x3f) ^ uVar18;
  uVar33 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_18267158c ^ 0xd6fde204)) =
       uVar20 >> ((local_e0 ^ 0x3b) & 0x3f) ^ uVar33;
  uVar14 = _DAT_1826715dc;
  uVar38 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  uVar20 = (uVar33 ^ *(ulonglong *)(lVar6 + -0x1f0) | *(ulonglong *)(lVar6 + -0x688) ^ uVar18) ^
           uVar38;
  *(ulonglong *)(lVar6 + -0xa60) = uVar20;
  lVar7 = DAT_182671560;
  uVar18 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0xf3d1e364)) =
       uVar18 ^ uVar20 ^ uVar38 ^ uVar35 ^ *(ulonglong *)(lVar6 + -0x3f0);
  uVar36 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xc555e997)) =
       (CONCAT44(uVar40,uVar12) ^ 0xd9f74a8e527f9f4f) + (*(ulonglong *)(lVar7 + -0x610) ^ uVar18) ^
       uVar36;
  uVar18 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar7 - (uVar46 ^ 0x3bcf3e07)) =
       (CONCAT44(uVar40,uVar25) ^ 0x4fc5f2c7e8674851) + (*(ulonglong *)(lVar7 + -0x9f8) ^ uVar48) ^
       uVar18;
  uVar33 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  uVar49 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar7 + -0x6b8) =
       (uVar36 ^ *puVar2) + (*(ulonglong *)(lVar7 + -0x5c8) ^ uVar18) ^ uVar33;
  local_118 = (byte)uVar8;
  uVar48 = (*(ulonglong *)(lVar7 - (uVar46 ^ 0x3bcf3c87)) ^ uVar36) << ((local_118 ^ 0xf1) & 0x3f);
  uVar18 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar7 + -0x670) = uVar48 ^ uVar49;
  uVar11 = DAT_1826718ac;
  uVar20 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 + -0x638) =
       (*(ulonglong *)(lVar7 - (uVar18 ^ 0xd6fde5dc)) ^ uVar26) << (((byte)uVar13 ^ 0xc2) & 0x3f);
  uVar8 = DAT_1826716b0;
  lVar6 = DAT_182671560;
  uVar26 = CONCAT44(DAT_182671850,DAT_182671850);
  *puVar4 = (*(ulonglong *)(DAT_182671560 - (uVar20 ^ 0x47fd5113)) ^ uVar36) >>
            (((byte)uVar13 ^ 0xdd) & 0x3f) ^ uVar26;
  uVar18 = (ulonglong)DAT_182671598;
  uVar20 = (*(ulonglong *)(lVar6 - (uVar31 ^ 0x1f841b4c)) ^ uVar26 | uVar48) ^ uVar38;
  *(uint *)(lVar6 + -0x328) = *(uint *)(lVar6 + -0x964) ^ uVar8 | *(uint *)(lVar6 + -0x3d4);
  *(ulonglong *)(lVar6 + -0x9e8) = uVar20;
  uVar15 = DAT_182671890;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 + -0x110) =
       *(ulonglong *)(lVar6 - (uVar18 ^ 0xc555e867)) ^ uVar36 ^ uVar33 ^ uVar38 ^ uVar20;
  uVar34 = DAT_18267184c;
  uVar14 = DAT_1826716f0;
  uVar48 = CONCAT44(uVar15,uVar15);
  local_128 = (byte)(uVar13 >> 0x18);
  uVar18 = (*(ulonglong *)(lVar6 - (uVar23 ^ 0x64b486ee)) ^ uVar42) +
           (CONCAT44(uVar40,uVar30) ^ 0x4d27d546d8476697);
  *(ulonglong *)(lVar6 + -0x318) = uVar18 ^ uVar48;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar20 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar6 + -0x510) =
       (CONCAT44(uVar10,uVar45) ^ 0x9900c7af4eaf76f4) + (uVar35 ^ *(ulonglong *)(lVar6 + -0x3f0)) ^
       uVar26;
  uVar35 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar6 + -0x688) =
       (*(ulonglong *)(lVar6 - (uVar20 ^ 0xcf3bca2b)) ^ uVar26) + uVar18 ^ uVar35;
  *puVar19 = uVar18 << ((local_128 ^ 0x65) & 0x3f) ^ CONCAT44(uVar34,uVar34);
  lVar6 = DAT_182671560;
  local_108 = (byte)uVar30;
  uVar26 = (*(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x3bcf38d7)) ^ uVar48) >>
           ((local_108 ^ 0x8c) & 0x3f);
  uVar20 = (ulonglong)_DAT_1826715e0;
  uVar18 = *(ulonglong *)(DAT_182671560 + -0x1f0);
  puVar19 = (ulonglong *)(DAT_182671560 + -0xc80);
  *(ulonglong *)(DAT_182671560 + -0xa60) = uVar26 ^ CONCAT44(DAT_18267160c,DAT_18267160c);
  *(byte *)(lVar6 + -0xc53) = *(byte *)(*puVar19 ^ uVar20) ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar6 + -0x610) =
       (CONCAT44(uVar34,uVar34) ^ uVar18 | uVar26) ^ CONCAT44(uVar8,uVar8);
  lVar6 = DAT_182671560;
  uVar39 = CONCAT44(_DAT_182671868,_DAT_182671868);
  puVar5 = (uint *)(DAT_182671560 + -0x47c);
  piVar21 = (int *)(DAT_182671560 - (uVar32 ^ 0xf681f43c));
  uVar18 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar45 ^ 0xc511c80b)) ^
           *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x3bcf3d47)) ^ uVar39 ^ CONCAT44(uVar8,uVar8) ^
           uVar35;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar18;
  *(uint *)(lVar6 + -0x874) = *piVar21 * (*puVar5 ^ uVar34);
  uVar14 = DAT_182671720;
  uVar48 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(lVar6 + -0x5c8) =
       (*(ulonglong *)(lVar6 - (uVar23 ^ 0x64b48916)) ^ uVar39) +
       (*(ulonglong *)(lVar6 + -0x6b8) ^ uVar33) ^ uVar48;
  uVar8 = DAT_18267159c;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar40 ^ 0x64b486c6)) = (uVar39 ^ uVar18) << 0x34 ^ uVar26;
  *(ulonglong *)(lVar6 + -0x638) = ((ulonglong)DAT_182671598 ^ 0x60000000) >> 0x1c;
  uVar34 = DAT_1826715ac;
  uVar23 = (ulonglong)DAT_1826715ac;
  uVar30 = uVar8 & DAT_1826715ac;
  bVar17 = (byte)uVar8;
  uVar20 = (uVar39 ^ *(ulonglong *)(lVar6 + -0x9f8)) >> ((bVar17 ^ 0xc3) & 0x3f);
  uVar43 = (ulonglong)uVar30;
  DAT_182671578 = uVar30;
  *puVar2 = uVar20 ^ CONCAT44(DAT_1826718b0,DAT_1826718b0);
  uVar18 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar6 + -0x670) = (uVar26 ^ *puVar3 | uVar20) ^ uVar18;
  *puVar4 = uVar20 << 9;
  lVar7 = DAT_182671560;
  uVar33 = CONCAT44(DAT_182671654,DAT_182671654);
  puVar19 = (ulonglong *)(lVar6 - ((ulonglong)uVar30 ^ 0x33cf3fbf));
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x3bcf3227)) =
       *puVar19 ^ uVar33 ^ uVar18 ^ uVar48 ^ *(ulonglong *)(lVar6 + -0x5c8);
  uVar18 = *(ulonglong *)(lVar7 + -0x110);
  uVar26 = CONCAT44(DAT_182671884,DAT_182671884);
  uVar38 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar30 ^ 0x33cf38df)) ^ uVar36) +
           (uVar35 ^ *(ulonglong *)(lVar7 + -0x688)) ^ uVar26;
  local_e8 = (byte)uVar34;
  *puVar1 = uVar38;
  uVar15 = DAT_18267179c;
  uVar42 = (uVar36 ^ uVar18) << ((local_e8 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar7 + -0x3f0) = uVar42 ^ CONCAT44(DAT_1826716c4,DAT_1826716c4);
  uVar14 = DAT_182671648;
  lVar6 = DAT_182671560;
  uVar35 = ((ulonglong)uVar11 << 0x19 | (ulonglong)(uVar11 >> 7)) ^ uVar18 >> 7;
  uVar18 = *(ulonglong *)(DAT_182671560 + -0x5c8);
  uVar20 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar35 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x318) = (uVar35 | uVar42) ^ uVar20;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar38 = *(ulonglong *)(lVar6 - (uVar23 ^ 0xf7fffee7)) ^ uVar35 ^ uVar20 ^ uVar26 ^ uVar38;
  *(ulonglong *)(lVar6 + -0x1f0) = uVar38;
  uVar14 = DAT_182671834;
  *(ulonglong *)(lVar6 + -0xa60) =
       *(ulonglong *)(lVar6 - (uVar43 ^ 0x33cf3ff7)) ^ uVar33 ^ *(ulonglong *)(lVar6 + -0x9e8);
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x610) =
       (*(ulonglong *)(lVar6 - (uVar23 ^ 0xf7fffc0f)) ^ uVar35) + (uVar48 ^ uVar18) ^ uVar42;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar30 ^ 0x33cf3f77)) =
       (uVar35 ^ uVar38) << (((byte)uVar30 ^ 0xd8) & 0x3f) ^ uVar36;
  uVar20 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar6 - (uVar23 ^ 0xf7fff407)) =
       (*(ulonglong *)(lVar6 - (uVar43 ^ 0x33cf383f)) ^ uVar35) >> ((bVar17 ^ 0xe6) & 0x3f) ^ uVar20
  ;
  uVar18 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar20 = (uVar20 ^ *(ulonglong *)(lVar6 + -0x9f8) | uVar36 ^ *(ulonglong *)(lVar6 + -0x6b8)) ^
           uVar18;
  *puVar3 = uVar20;
  uVar38 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *puVar4 = uVar38 ^ uVar20 ^ *(ulonglong *)(lVar6 + -0x610) ^ uVar18 ^ uVar42;
  uVar18 = uVar33 ^ *(ulonglong *)(lVar6 + -0x9e8);
  uVar35 = CONCAT44(DAT_182671628,DAT_182671628);
  *puVar2 = (uVar26 ^ *puVar1) + uVar18 ^ uVar35;
  uVar14 = DAT_182671858;
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       CONCAT44(uVar9,DAT_18267158c) ^ 0xc0ffa19051a286a9 |
       CONCAT44(uVar12,uVar34) ^ 0x4deacdfa4bfe9232;
  uVar36 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x688) = uVar18 << 0x28 ^ uVar36;
  puVar27 = (ulonglong *)(lVar6 - (uVar31 ^ 0x1f841954));
  *(ulonglong *)(lVar6 - (uVar32 ^ 0xf681f5a0)) =
       (uVar33 ^ *puVar27) >> ((local_e0 ^ 3) & 0x3f) ^ uVar37;
  uVar14 = DAT_182671608;
  lVar6 = DAT_182671560;
  uVar20 = CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar18 = (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xeeb58177)) ^ uVar36 |
           *(ulonglong *)(DAT_182671560 + -0x110) ^ uVar37) ^ uVar20;
  *(ulonglong *)(DAT_182671560 + -0x3f0) = uVar18;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0xf3d1e064)) = uVar26 ^ uVar18 ^ uVar20 ^ uVar35 ^ *puVar2;
  uVar18 = (ulonglong)DAT_182671584;
  uVar20 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar22 = (uVar26 ^ *(ulonglong *)(lVar6 + -0x510)) + (*(ulonglong *)(lVar6 + -0x610) ^ uVar42);
  *(ulonglong *)(lVar6 + -0x318) = uVar22 ^ uVar20;
  *(ulonglong *)(lVar6 - (uVar18 ^ 0xcf3bc903)) = uVar22 + 0x93ce7ac605762022;
  uVar22 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x33cf33af)) =
       (uVar26 ^ *(ulonglong *)(lVar6 + -0x510)) << ((local_128 ^ 0x70) & 0x3f) ^ uVar22;
  uVar14 = _DAT_1826716c0;
  uVar18 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar6 + -0x5c8) =
       (uVar26 ^ *(ulonglong *)(lVar6 + -0x510)) >> (((byte)uVar30 ^ 0xf4) & 0x3f) ^ uVar18;
  lVar7 = DAT_182671560;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar18 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a0 ^ 0x47fd5c3b)) ^ uVar22 |
           *(ulonglong *)(lVar6 - (uVar32 ^ 0xf681f178)) ^ uVar18) ^ uVar26;
  uVar48 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar6 + -0x1f0) = uVar18;
  uVar22 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar6 + -0x6b8) =
       uVar48 ^ uVar18 ^ uVar26 ^ uVar20 ^ *(ulonglong *)(lVar6 + -0x318);
  uVar26 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(lVar7 + -0x9f8) = (uVar35 ^ *puVar2) + (uVar38 ^ *puVar4) ^ uVar26;
  *(ulonglong *)(lVar7 - (uVar22 ^ 0xc555e8f7)) =
       *(ulonglong *)(lVar7 - (uVar47 ^ 0x75fef31f)) ^ uVar38 | 0x6c0cbeee3e3e2a97;
  uVar22 = CONCAT44(DAT_182671664,DAT_182671664);
  *puVar1 = (uVar38 ^ *puVar4) << ((bVar24 ^ 0xcb) & 0x3f) ^ uVar22;
  uVar15 = DAT_1826717d8;
  uVar18 = (*(ulonglong *)(lVar7 - (uVar23 ^ 0xf7fff60f)) ^ uVar38) >> (local_e0 & 0x3f);
  *(ulonglong *)(lVar7 + -0x670) = uVar18 ^ uVar39;
  uVar14 = DAT_182671760;
  uVar33 = CONCAT44(uVar15,uVar15);
  *puVar27 = (*(ulonglong *)(lVar7 - (uVar29 ^ 0xeeb581ff)) ^ uVar22 | uVar18) ^ uVar33;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar22 = CONCAT44(uVar13,DAT_182671584);
  uVar18 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715a0 ^ 0x47fd5fa3)) ^ uVar23 ^ uVar33 ^
           uVar26 ^ *(ulonglong *)(lVar7 + -0x9e8);
  *(ulonglong *)(lVar7 + -0x688) = uVar18;
  uVar22 = (uVar22 ^ 0x1f2fda34448577d4) + (uVar18 ^ uVar23);
  *(ulonglong *)(lVar7 + -0x110) = uVar22 ^ uVar41;
  lVar6 = DAT_182671560;
  uVar18 = (CONCAT44(uVar25,DAT_18267158c) ^ 0xcf0577b8523693c6) +
           (uVar20 ^ *(ulonglong *)(DAT_182671560 + -0x318));
  *(ulonglong *)(DAT_182671560 + -0x3f0) = uVar18 ^ CONCAT44(DAT_1826716f8,DAT_1826716f8);
  lVar7 = DAT_182671560;
  uVar20 = CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar35 = uVar18 + uVar22 ^ uVar20;
  *(ulonglong *)(DAT_182671560 + -0x610) =
       *(ulonglong *)(lVar6 - (uVar46 ^ 0x3bcf3227)) ^ uVar33 |
       CONCAT44(uVar12,uVar34) ^ 0xa6c83ec956212a96;
  *(ulonglong *)(lVar7 + -0x638) = uVar35;
  uVar18 = uVar22 << ((bVar17 ^ 0xd6) & 0x3f);
  *(ulonglong *)(lVar7 + -0x510) = uVar18 ^ uVar49;
  uVar22 = uVar22 >> (((byte)DAT_18267158c ^ 0xd3) & 0x3f);
  uVar23 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar7 + -0xa60) = uVar22 ^ uVar36;
  uVar22 = (uVar18 | uVar22) ^ uVar23;
  uVar18 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar7 + -0x5c8) = uVar22;
  *(ulonglong *)(lVar7 - (uVar32 ^ 0xf681f540)) = uVar18 ^ uVar23 ^ uVar20 ^ uVar22 ^ uVar35;
  uVar23 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar7 - (uVar43 ^ 0x33cf3e87)) =
       (CONCAT44(uVar34,uVar34) ^ 0x8a7a2fa34179b6f3) + (uVar48 ^ *(ulonglong *)(lVar7 + -0x6b8)) ^
       uVar23;
  uVar18 = (*(ulonglong *)(lVar7 - (uVar29 ^ 0xeeb58e07)) ^ uVar26) +
           (CONCAT44(uVar12,uVar8) ^ 0x80e3d1c25e3dd514);
  *puVar3 = uVar18 ^ CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar14 = DAT_18267169c;
  uVar23 = uVar23 ^ *puVar2;
  *puVar4 = CONCAT44(DAT_182671860,DAT_182671860) ^ uVar18 + uVar23;
  *puVar1 = uVar23 << ((local_108 ^ 0x9d) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  uVar18 = CONCAT44(DAT_182671604,DAT_182671604);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar28;
  *puVar19 = uVar23 >> ((bVar44 ^ 0x24) & 0x3f) ^ uVar18;
  return;
}



############ FUN_ 180ec5620 size=4748 ############

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

void FUN_180ec5620(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  byte *pbVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  longlong *plVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  longlong lVar36;
  byte local_88;
  byte local_58;
  
  uVar14 = DAT_1826716a4;
  uVar8 = DAT_1826715b4;
  uVar19 = DAT_182671588;
  uVar7 = DAT_182671584;
  uVar4 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar28 = (ulonglong)DAT_182671588;
  uVar20 = (ulonglong)DAT_1826715b4;
  uVar23 = (ulonglong)DAT_18267156c;
  uVar21 = (ulonglong)DAT_182671584;
  uVar15 = DAT_18267156c;
  if ((DAT_182671588 & 1) == 0) {
    uVar15 = DAT_182671588;
  }
  uVar34 = DAT_182671584 | DAT_1826715b4;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671bf4);
  uVar17 = *(uint *)(&DAT_182611e78 + DAT_182671bf4) ^ DAT_1826715b4;
  uVar33 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar26 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  DAT_182671568 = uVar15;
  DAT_182671594 = uVar34;
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0x68) ^ uVar33) ^ uVar26;
  *(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0xbdcab0c1)) =
       (byte)uVar14 ^ (byte)DAT_182671854 ^ *(byte *)(lVar3 + -0x8a8);
  uVar5 = DAT_182671570;
  uVar25 = (ulonglong)uVar15;
  *(ulonglong *)(lVar3 + -0x2a0) =
       CONCAT44(uVar15,uVar4) ^ 0x58ce50d820c7c5e7 |
       CONCAT44(uVar19,DAT_182671570) ^ 0xeae4ea596828f9bf;
  plVar24 = (longlong *)(lVar3 - ((ulonglong)uVar19 ^ 0xfffff737));
  bVar13 = *(byte *)(lVar3 + -0x54b) ^ (byte)DAT_182671718 ^ (byte)DAT_182671854;
  lVar2 = *plVar24;
  *(ulonglong *)(lVar3 + -0x620) = (ulonglong)(lVar2 + 0x2f) ^ (ulonglong)DAT_182671664;
  *(byte *)(lVar2 + 0x2f) = bVar13;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x7a366455)) =
       *(ulonglong *)(lVar3 + -0x8a8) ^ CONCAT44(uVar14,uVar14) | *(ulonglong *)(lVar3 + -0x2a0);
  uVar10 = DAT_182671828;
  uVar9 = DAT_1826716b4;
  lVar3 = DAT_182671560;
  uVar35 = CONCAT44(uVar5,uVar34);
  puVar22 = (ulonglong *)
            (*(longlong *)(DAT_182671560 - (uVar25 ^ 0x367a14f9)) +
            ((CONCAT44(uVar4,uVar19) ^ 0x367a1f61fffffff9) + (uVar35 ^ 0xfffffffffffef59f) * 0xc) *
            8);
  *(ulonglong *)(DAT_182671560 + -0xd60) =
       (ulonglong)puVar22 ^ CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar29 = CONCAT44(uVar10,uVar10);
  uVar27 = *puVar22 ^ uVar29 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x80) = uVar27;
  uVar10 = DAT_182671830;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0x7a36670d)) =
       CONCAT44(uVar9,uVar9) ^ uVar29 ^ uVar27;
  uVar27 = (ulonglong)DAT_18267177c;
  *(ulonglong *)(lVar3 + -0x270) =
       (uVar35 ^ 0x736db2cbdb7ca1fd) << (((byte)uVar10 ^ *(byte *)(lVar3 + -0x240)) & 0x3f);
  bVar13 = (byte)DAT_182671794;
  bVar31 = (byte)uVar9 ^ (byte)DAT_182671794 ^ *(byte *)(lVar3 + -0x610);
  *(byte *)(lVar3 + -0xd09) = bVar31;
  pbVar16 = (byte *)((CONCAT44(uVar7,uVar15) ^ 0xbdcab58a367a1f51) + *plVar24);
  bVar13 = bVar13 ^ bVar31 ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar3 + -0x9a0) = (ulonglong)pbVar16 ^ uVar27;
  *pbVar16 = bVar13;
  uVar6 = DAT_1826717e8;
  uVar9 = _DAT_1826715f0;
  uVar29 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar27 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x367a1559)) =
       *(longlong *)(DAT_182671560 + -0xb98) + (CONCAT44(uVar5,uVar7) ^ 0xffffffffbdcab58c) * 8 ^
       uVar29;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       uVar27 ^ *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0xa38) ^ uVar29) ^ uVar26;
  lVar2 = DAT_182671560;
  puVar22 = (ulonglong *)(DAT_182671560 + -0x898);
  *(ulonglong *)(DAT_182671560 + -0x670) =
       *(ulonglong *)(lVar3 + -0x8a8) ^ CONCAT44(uVar14,uVar14) |
       CONCAT44(uVar34,uVar4) ^ 0x750ce8339ee7a7ed;
  uVar29 = (ulonglong)DAT_182671658;
  uVar27 = ((ulonglong)uVar6 << 0x18 | (ulonglong)(uVar6 >> 8)) ^ *puVar22 >> 8 ^
           CONCAT44(uVar9,uVar9);
  bVar13 = (byte)uVar9 ^ (byte)DAT_18267168c;
  *(ulonglong *)(lVar2 + -0xa80) = uVar27;
  *(byte *)(lVar2 - (uVar25 ^ 0x367a17d0)) = bVar13 ^ (byte)uVar27;
  bVar13 = *(byte *)(lVar2 + -0x8b1) ^ (byte)DAT_18267168c ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0x7c0) =
       (uVar35 ^ 0xfffffffffffef5ae) + *(longlong *)(lVar2 + -0x8c8) ^ uVar29;
  uVar6 = DAT_182671808;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar20 ^ 0x7a3666dd)) ^ uVar29) = bVar13;
  uVar18 = DAT_1826718d0;
  uVar12 = DAT_182671804;
  uVar9 = DAT_1826717d4;
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar30 = (ulonglong)DAT_1826718d0;
  uVar27 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0xfffefdaf)) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar7,uVar19) ^ 0xbdcab58afffffff9) +
       (CONCAT44(uVar4,uVar19) ^ 0x367a1f61ffffffff) * 0xc) * 8 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x3b8) =
       uVar27 ^ *(ulonglong *)(*(ulonglong *)(lVar2 + -0x830) ^ uVar29) ^ uVar26;
  uVar6 = DAT_182671570;
  lVar3 = DAT_182671560;
  uVar32 = CONCAT44(uVar15,DAT_182671570);
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       CONCAT44(uVar8,DAT_182671570) ^ CONCAT44(uVar7,uVar7) ^ 0x6314bc7e54ccc6eb;
  uVar27 = ((ulonglong)(uVar18 >> 0x10) | uVar30 << 0x10) ^ *(ulonglong *)(lVar3 + -0x3b8) >> 0x10 ^
           CONCAT44(uVar9,uVar9);
  bVar13 = (byte)uVar9 ^ (byte)uVar12 ^ (byte)uVar27;
  *(ulonglong *)(lVar3 + -0x600) = uVar27;
  *(byte *)(lVar3 + -0x3f1) = bVar13;
  pbVar16 = (byte *)((uVar32 ^ 0x367a1f61ffffffcd) + *plVar24);
  bVar13 = (byte)uVar12 ^ bVar13 ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar3 + -0xb18) = (ulonglong)pbVar16 ^ (ulonglong)uVar14;
  *pbVar16 = bVar13;
  uVar9 = DAT_1826718a0;
  uVar29 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xbdcab5f2)) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar4,uVar6) ^ 0x367a1f61fffffff9) +
       (CONCAT44(uVar8,uVar8) ^ 0x7a36611d7a36611d) * 0xc) * 8 ^ uVar29;
  uVar18 = DAT_182671594;
  uVar27 = (ulonglong)DAT_18267174c;
  *(ulonglong *)(lVar3 + -0x1f0) =
       *(ulonglong *)(lVar3 - (uVar23 ^ 0x367a1d11)) |
       CONCAT44(uVar4,DAT_182671594) ^ 0xe778e1691a492731;
  uVar29 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x78) ^ uVar29) ^ uVar26;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar29 ^ uVar33;
  lVar3 = DAT_182671560;
  *(longlong *)(DAT_182671560 + -0x638) =
       *(longlong *)(DAT_182671560 + -0xa60) - *(longlong *)(DAT_182671560 + -0x9f8);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar29 >> (((byte)uVar7 ^ 0x92) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  bVar31 = (byte)uVar9 ^ (byte)DAT_182671698 ^ *(byte *)(lVar3 + -0x6b8);
  bVar13 = (byte)DAT_182671698 ^ bVar31;
  *(byte *)(lVar3 + -0xc19) = bVar31;
  bVar13 = bVar13 ^ (byte)DAT_182671718;
  pbVar16 = (byte *)(*(longlong *)(lVar3 - (uVar25 ^ 0x367a17a9)) + (uVar32 ^ 0x367a1f61ffffffcc));
  *(ulonglong *)(lVar3 + -0x180) = (ulonglong)pbVar16 ^ uVar27;
  *pbVar16 = bVar13;
  uVar9 = _DAT_1826715d8;
  uVar14 = DAT_182671570;
  uVar27 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0xfffffbaf)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar18 ^ 0xfffefe07)) +
       ((CONCAT44(uVar8,uVar19) ^ 0x7a36611dfffffff9) +
       (CONCAT44(uVar7,uVar15) ^ 0xbdcab58a367a1f61) * 0xc) * 8 ^ uVar27;
  uVar29 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x450) ^ uVar27) ^ uVar26;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar29 ^ CONCAT44(DAT_18267175c,DAT_18267175c);
  lVar2 = DAT_182671560;
  uVar27 = (ulonglong)DAT_1826718b0;
  pbVar16 = (byte *)((CONCAT44(uVar5,uVar8) ^ 0xffffffff7a366129) + *(longlong *)(lVar3 + -0x8c8));
  uVar18 = DAT_18267156c ^ 0x45796bfb;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar29 >> (((byte)uVar7 ^ 0xaa) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  bVar13 = (byte)DAT_1826716a8;
  *(ulonglong *)(lVar3 + -0xab0) = (ulonglong)pbVar16 ^ uVar27;
  bVar31 = (byte)uVar9 ^ *(byte *)(lVar3 + -0x9e8) ^ bVar13;
  *(byte *)(lVar3 + -0x54a) = bVar31;
  bVar31 = bVar31 ^ (byte)DAT_182671718;
  *(uint *)(lVar3 + -0x5cc) = uVar18 | *(uint *)(lVar3 + -0x844);
  *pbVar16 = bVar31 ^ bVar13;
  *(ulonglong *)(lVar3 + -0x400) = *(ulonglong *)(lVar3 + -0xa88) ^ uVar33 ^ 0xc318804dc9b0291;
  lVar3 = DAT_182671560;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar20 ^ 0x7a366a85)) +
            (CONCAT44(uVar34,uVar15) ^ 0xfffef59f367a1f67) * 8);
  *(ulonglong *)(lVar2 + -0xcc8) = (ulonglong)puVar22 ^ CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar9 = DAT_182671608;
  *(ulonglong *)(lVar2 + -0x800) =
       (uVar35 ^ 0x77b63f00f757f625) <<
       ((byte)*(undefined8 *)(lVar2 - (uVar21 ^ 0xbdcab18a)) & 0x3f);
  uVar20 = (ulonglong)DAT_18267165c;
  uVar27 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x367a1c79)) = *puVar22 ^ uVar26 ^ uVar27;
  bVar31 = (byte)uVar9 ^ (byte)DAT_182671810;
  pbVar16 = (byte *)((CONCAT44(uVar4,uVar6) ^ 0x367a1f61ffffffca) + *(longlong *)(lVar3 + -0x8c8));
  *(ulonglong *)(lVar3 + -0x6d0) =
       (*(ulonglong *)(lVar3 + -0x318) >> 0x20 ^ uVar20) >> 8 ^ CONCAT44(uVar9,uVar9);
  bVar31 = bVar31 ^ *(byte *)(lVar3 + -0x6d0);
  *(byte *)(lVar3 + -0x6c1) = bVar31;
  bVar31 = bVar31 ^ (byte)DAT_182671718 ^ (byte)DAT_182671810;
  *(ulonglong *)(lVar3 + -0x1d8) =
       *(ulonglong *)(lVar3 + -0x400) ^ *(ulonglong *)(lVar3 + -0x318) ^ uVar27;
  *(ulonglong *)(lVar3 + -0x6d8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_18267182c;
  *pbVar16 = bVar31;
  uVar6 = DAT_18267162c;
  uVar27 = (ulonglong)DAT_18267162c;
  *(ulonglong *)(lVar3 + -0xab8) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar4,uVar7) ^ 0x367a1f61bdcab58a) * 0xc +
       (CONCAT44(uVar34,uVar14) ^ 0xfffef59ffffffff9)) * 8 ^ uVar26;
  uVar10 = DAT_182671748;
  lVar2 = DAT_182671560;
  uVar20 = *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar28 ^ 0xfffff547)) ^ uVar26) ^
           CONCAT44(uVar6,uVar6) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x110) = uVar20;
  uVar20 = (uVar20 >> 0x20 ^ uVar27) >> 0x10 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar20;
  *(byte *)(lVar2 + -0x42a) = (byte)uVar10 ^ (byte)uVar20 ^ (byte)DAT_182671880;
  uVar20 = (ulonglong)DAT_182671780;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xffffff5f)) =
       (CONCAT44(uVar19,uVar4) ^ 0xa6b76f4a88f58609) << (((byte)uVar8 ^ 0xf) & 0x3f);
  bVar31 = (byte)DAT_182671718 ^ (byte)DAT_182671880;
  *(ulonglong *)(lVar2 + -0xd08) = *(longlong *)(lVar2 + -0x8c8) + 0x36U ^ uVar20;
  uVar27 = (ulonglong)DAT_182671594;
  uVar28 = CONCAT44(DAT_182671684,DAT_182671684);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0xfffef897)) ^ uVar20) =
       bVar31 ^ *(byte *)(lVar2 + -0x42a);
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar15,uVar8) ^ 0x367a1f617a36611b) +
            (CONCAT44(uVar19,uVar15) ^ 0xffffffff367a1f61) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0xb78) = (ulonglong)puVar22 ^ uVar28;
  uVar11 = DAT_182671790;
  lVar3 = DAT_182671560;
  *(int *)(lVar2 + -0x47c) = *(int *)(lVar2 - (uVar21 ^ 0xbdcab3ca)) * 0x446f9508;
  uVar28 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar3 + -0x2a0) = *puVar22 ^ uVar26 ^ uVar28;
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0x367a1cc1)) ^ CONCAT44(uVar12,uVar12)) =
       CONCAT44(uVar15,uVar7) ^ 0x3f1a53c74e836ae9;
  lVar3 = DAT_182671560;
  puVar22 = (ulonglong *)(DAT_182671560 + -0x2a0);
  local_88 = (byte)uVar19;
  *(byte *)(DAT_182671560 + -0x3f2) =
       *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0xfffefc9f)) ^ (ulonglong)DAT_182671808) ^
       (byte)DAT_1826717c0;
  uVar21 = (*puVar22 ^ uVar28) >> ((local_88 ^ 199) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  bVar31 = (byte)uVar11 ^ (byte)DAT_1826716a0 ^ (byte)uVar21;
  *(ulonglong *)(lVar3 + -0x548) = uVar21;
  uVar19 = DAT_182671594 ^ 0x224e4097;
  *(byte *)(lVar3 + -0x3c1) = bVar31;
  bVar31 = bVar31 ^ (byte)DAT_182671718 ^ (byte)DAT_1826716a0;
  *(uint *)(lVar3 + -0x3c8) = -0x512c9c38 - uVar19;
  pbVar16 = (byte *)((CONCAT44(uVar4,uVar8) ^ 0x367a1f617a36612a) + *(longlong *)(lVar3 + -0x8c8));
  *(ulonglong *)(lVar3 + -0xa28) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671870;
  uVar11 = DAT_18267187c;
  *pbVar16 = bVar31;
  puVar22 = (ulonglong *)(*(longlong *)(lVar3 + -0xb98) + 0x38);
  *(ulonglong *)(lVar3 + -0x220) = (ulonglong)puVar22 ^ CONCAT44(uVar11,uVar11);
  uVar12 = DAT_1826718b8;
  uVar11 = _DAT_182671868;
  uVar8 = DAT_1826715ac;
  uVar29 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0x80) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0x367a1dc1)) ^ uVar28 |
       CONCAT44(uVar34,uVar15) ^ 0xcf71ca96cf2f8a23;
  uVar15 = DAT_182671578;
  uVar21 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x240) = *puVar22 ^ uVar26 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x610) =
       *(ulonglong *)(lVar3 + -0x80) >> ((*(byte *)(lVar3 + -0x3f0) ^ (byte)uVar10) & 0x3f);
  lVar3 = DAT_182671560;
  uVar14 = uVar15 & uVar8;
  uVar20 = (ulonglong)uVar14;
  uVar21 = (*(ulonglong *)(DAT_182671560 + -0x240) ^ uVar21) >> (((byte)uVar14 ^ 0xd) & 0x3f) ^
           CONCAT44(uVar12,uVar12);
  DAT_182671574 = uVar14;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar21;
  bVar31 = (byte)uVar21;
  *(byte *)(lVar3 + -0xe1) = (byte)uVar12 ^ bVar31 ^ bVar13;
  uVar21 = (ulonglong)DAT_182671784;
  *(ulonglong *)(lVar3 + -0xd70) =
       *(longlong *)(lVar3 - ((ulonglong)uVar8 ^ 0xc283e765)) +
       (CONCAT44(uVar8,uVar15) ^ 0xc283efad5a6d3e65) ^ uVar21;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xc283e9dd)) =
       (CONCAT44(uVar14,uVar8) ^ 0x1172eee83dce8f9) >> ((bVar31 ^ (byte)uVar12) & 0x3f);
  uVar10 = DAT_1826718c8;
  *(byte *)(*(ulonglong *)(lVar3 + -0xd70) ^ uVar21) =
       (byte)DAT_182671718 ^ *(byte *)(lVar3 + -0xe1) ^ (byte)DAT_1826716a8;
  lVar2 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  lVar36 = (CONCAT44(uVar15,uVar15) ^ 0x5a6d3e5d5a6d3e5d) * 0xc;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xc283e95d)) =
       *(longlong *)(lVar3 + -0xb98) + ((CONCAT44(uVar15,uVar14) ^ 0x5a6d3e5d42012e0a) + lVar36) * 8
       ^ uVar21;
  uVar25 = CONCAT44(DAT_18267164c,DAT_18267164c);
  uVar28 = CONCAT44(uVar10,uVar10);
  bVar13 = (byte)uVar10 ^ (byte)DAT_1826716ec;
  *(ulonglong *)(lVar3 + -0x898) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x6f0) ^ uVar21) ^ uVar26 ^ uVar25;
  uVar21 = *(ulonglong *)(lVar3 + -0x898);
  *(ulonglong *)(lVar3 + -0xa80) =
       (CONCAT44(uVar8,uVar14) ^ 0x5362cc66ed2b46e6) + 0xd57f1f988e779a3c;
  uVar27 = (uVar21 ^ uVar25) >> (((byte)uVar15 ^ 0x55) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x3b8) = uVar27;
  *(int *)(lVar2 + -0x754) =
       *(int *)(lVar2 - (uVar20 ^ 0x42012dd9)) << ((byte)*(undefined4 *)(lVar2 + -0x274) & 0x1f);
  *(byte *)(lVar2 + -0xd62) = bVar13 ^ *(byte *)(lVar2 + -0x3b8);
  uVar19 = DAT_182671578;
  uVar23 = (ulonglong)DAT_182671680;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xc283e9ad)) = uVar21 ^ uVar25 ^ uVar27 ^ uVar28;
  uVar10 = DAT_1826717e0;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xc283eb05)) =
       (CONCAT44(uVar8,uVar8) ^ 0xc283efadc283ef94) + *(longlong *)(lVar2 + -0x8c8) ^ uVar23;
  bVar13 = (byte)DAT_182671718;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x5a6d3c2d)) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0x6d0)) +
       (CONCAT44(uVar14,uVar15) ^ 0x4bf368d0b1890fe0);
  *(byte *)(*(ulonglong *)(lVar2 + -0x4a8) ^ uVar23) =
       bVar13 ^ *(byte *)(lVar2 + -0xd62) ^ (byte)DAT_1826716ec;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x42012ffd)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x5a6d3de5)) ^ uVar28) -
       (CONCAT44(uVar8,uVar14) ^ 0x4d2322b9f74ec24f);
  uVar15 = DAT_1826717b4;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar20 ^ 0x42012595)) +
            ((CONCAT44(uVar5,uVar8) ^ 0xffffffffc283efaa) + lVar36) * 8);
  uVar21 = (ulonglong)DAT_1826717b4;
  *(ulonglong *)(lVar2 + -0x438) = (ulonglong)puVar22 ^ CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar26 = CONCAT44(uVar15,uVar15) ^ *puVar22 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar26;
  bVar13 = bVar13 ^ (byte)DAT_182671614;
  *(ulonglong *)(lVar2 + -0x9f8) =
       ((ulonglong)(uVar15 >> 0x10) | uVar21 << 0x10) ^ uVar26 >> 0x10 ^ CONCAT44(uVar10,uVar10);
  uVar9 = DAT_1826718d4;
  local_58 = (byte)uVar4;
  uVar15 = DAT_1826715ac ^ 0xc9a11ae7;
  bVar31 = (byte)uVar10 ^ *(byte *)(lVar2 + -0x9f8) ^ (byte)DAT_182671614;
  *(ulonglong *)(lVar2 + -0xa60) =
       (CONCAT44(uVar14,uVar14) ^ 0x50ce34f686281a1e) << ((local_58 ^ 0x68) & 0x3f);
  *(uint *)(lVar2 + -0x328) = uVar15 - (uVar19 ^ 0x13c30473);
  uVar21 = (ulonglong)DAT_182671708;
  pbVar16 = (byte *)((CONCAT44(uVar7,uVar14) ^ 0xbdcab58a42012e37) + *(longlong *)(lVar2 + -0x8c8));
  *(byte *)(lVar2 + -0xd81) = bVar31;
  *(ulonglong *)(lVar2 + -0x330) = (ulonglong)pbVar16 ^ uVar21;
  *pbVar16 = bVar13 ^ bVar31;
  *(ulonglong *)(lVar2 + -0x880) = CONCAT44(uVar9,uVar9) ^ *(longlong *)(lVar2 + -0xb98) + 0x38U;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar34) * 4) = uVar17;
  return;
}



############ FUN_ 180f2cb10 size=5621 ############

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

void FUN_180f2cb10(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  int iVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_148;
  byte local_128;
  byte local_120;
  byte local_118;
  byte local_e8;
  byte local_d8;
  byte local_c8;
  
  uVar13 = DAT_18267159c;
  uVar12 = DAT_182671590;
  uVar11 = DAT_18267158c;
  uVar10 = DAT_182671584;
  uVar9 = DAT_18267157c;
  uVar7 = DAT_182671570;
  uVar44 = (ulonglong)DAT_182671570;
  uVar31 = (ulonglong)DAT_18267158c;
  uVar52 = (ulonglong)DAT_182671584;
  uVar36 = *(uint *)(&DAT_182611e78 + DAT_182671a44) ^ DAT_1826715b4;
  uVar34 = (ulonglong)DAT_18267157c;
  DAT_182671578 = DAT_18267159c ^ DAT_1826715b4;
  uVar30 = DAT_182671584 | DAT_18267157c;
  uVar49 = DAT_182671568 * DAT_18267158c;
  uVar46 = DAT_182671570 << 0x10 | DAT_182671570 >> 0x10;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671a44) ^ DAT_182671578;
  uVar40 = (DAT_182671590 << 0x10 | DAT_182671590 & 0xff00) << 8 | DAT_182671590 >> 8 & 0xff00 |
           DAT_182671590 >> 0x18;
  uVar41 = uVar40 ^ 0x6a82da65;
  uVar28 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar23 = CONCAT44(DAT_182671634,DAT_182671634);
  uVar39 = (ulonglong)DAT_18267159c;
  puVar24 = (ulonglong *)(DAT_182671560 + -0xbf0);
  DAT_18267156c = uVar30;
  DAT_182671588 = uVar41;
  DAT_182671594 = uVar49;
  DAT_1826715a0 = uVar46;
  *(ulonglong *)
   (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xcf82e238)) ^
   CONCAT44(DAT_182671604,DAT_182671604)) = *(ulonglong *)(DAT_182671560 + -0x80) ^ uVar23 ^ uVar28;
  *puVar24 = CONCAT44(uVar40,uVar13) ^ 0x90712dd24bdffd3e | 0xeae19286089f953e;
  uVar14 = DAT_1826716b8;
  lVar4 = DAT_182671560;
  uVar43 = CONCAT44(_DAT_182671610,_DAT_182671610);
  puVar2 = (ulonglong *)
           ((*(ulonglong *)(DAT_182671560 + -0x410) ^ uVar43) +
           (CONCAT44(uVar12,uVar9) ^ 0xcf82e800e3d293db) * 8);
  *(ulonglong *)(DAT_182671560 + -0x78) = (ulonglong)puVar2 ^ CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *puVar2 = CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar4 + -0x800) ^ uVar28;
  uVar6 = DAT_182671568;
  uVar21 = CONCAT44(uVar46,DAT_182671568);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x4e2f3ce8)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar10 ^ 0x6656d504)) +
       ((CONCAT44(uVar30,uVar12) ^ 0xe7d6d3fccf82e808) +
       (CONCAT44(uVar11,uVar49) ^ 0x5c262e80a1687780) * 0xc) * 8;
  uVar14 = DAT_18267178c;
  uVar15 = DAT_1826715b4;
  puVar2 = (ulonglong *)(lVar4 + -0x110);
  uVar28 = (ulonglong)DAT_1826715b4;
  uVar19 = CONCAT44(uVar46,DAT_1826715b4);
  *puVar2 = (uVar21 ^ 0x405362aa44489aa3) + (CONCAT44(uVar9,uVar30) ^ 0x5e9a048bd6aa34bc);
  puVar1 = (ulonglong *)(lVar4 + -0x240);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x4e2f39f0)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar10 ^ 0x6656db3c)) +
       ((CONCAT44(uVar49,uVar40) ^ 0xa168778000e882c7) + (uVar19 ^ 0x3c804e2f625480a4) * 0xc) * 8 ^
       CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x4e2f3aa8)) =
       CONCAT44(DAT_1826717cc,DAT_1826717cc) ^ *(ulonglong *)(lVar4 + -0xa88) | 0x6234fcbeb85439dc;
  puVar22 = *(ulonglong **)(lVar4 + -0x68);
  uVar19 = CONCAT44(DAT_182671874,DAT_182671874);
  uVar25 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *puVar1 = uVar25 ^ uVar19 ^ *puVar22;
  uVar8 = DAT_182671578;
  uVar48 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar4 + -0x8a8) = (*(ulonglong *)(lVar4 - (uVar48 ^ 0x2c7bbca4)) ^ uVar23) << 0x29;
  *(ulonglong **)(lVar4 + -0x690) = puVar22 + (CONCAT44(uVar13,uVar10) ^ 0x4e2f3c806656d0a5);
  uVar21 = CONCAT44(DAT_182671678,DAT_182671678);
  *(ulonglong *)(lVar4 + -0x898) =
       uVar21 ^ uVar25 ^ puVar22[CONCAT44(uVar13,uVar10) ^ 0x4e2f3c806656d0a5];
  puVar3 = (ulonglong *)
           (*(longlong *)(lVar4 - ((ulonglong)uVar30 ^ 0xe7d6d394)) +
           (CONCAT44(uVar46,uVar8) ^ 0x3c804e2f2c7bbc26) * 8);
  *(uint *)(lVar4 + -0x754) = (uVar15 ^ 0x71b3d1c5) * -0x313ae014;
  uVar14 = DAT_182671834;
  *(ulonglong **)(lVar4 + -0x690) = puVar3;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x318) = *puVar3 ^ uVar32 ^ uVar25;
  *(ulonglong *)(lVar4 + -0x670) = **(ulonglong **)(lVar4 - (uVar52 ^ 0x6656d0d4)) ^ uVar25;
  *(ulonglong **)(lVar4 - (uVar39 ^ 0x4e2f3a10)) =
       puVar22 + (CONCAT44(uVar9,uVar30) ^ 0xe3d293d8e7d6d3ff);
  uVar14 = DAT_1826718bc;
  *(ulonglong *)(lVar4 + -0x6d0) = **(ulonglong **)(lVar4 + -0x690) ^ uVar25;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar23 = CONCAT44(uVar11,uVar6);
  *(ulonglong *)(lVar4 + -0x2a0) =
       (uVar19 ^ *puVar1) - (CONCAT44(uVar49,uVar6) ^ 0xdceda5dcd8a0d6bc) ^ uVar35;
  uVar29 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *puVar2 = (*(ulonglong *)(lVar4 + -0x898) ^ uVar21) - (uVar23 ^ 0xba13432ccbe9b363) ^ uVar29;
  uVar50 = CONCAT44(DAT_182671814,DAT_182671814);
  puVar22 = (ulonglong *)(lVar4 - (uVar44 ^ 0x4e2f3608));
  puVar3 = (ulonglong *)(lVar4 + -0x628);
  *puVar22 = (*(ulonglong *)(lVar4 + -0x318) ^ uVar32) -
             (CONCAT44(uVar49,uVar40) ^ 0x1c2bbde036239d6e) ^ uVar50;
  *puVar3 = (*(ulonglong *)(lVar4 + -0x318) ^ uVar32) - *puVar24;
  uVar38 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x5c262628)) =
       (CONCAT44(uVar12,uVar9) ^ 0x307d17ff1c2d6c36) + *(longlong *)(lVar4 + -0x6d0) ^ uVar38;
  uVar26 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar21 = (ulonglong)DAT_1826715ec;
  uVar38 = (uVar38 ^ *(ulonglong *)(lVar4 + -0x8a8)) -
           (CONCAT44(uVar10,uVar40) ^ 0x221db76e5b0563db) ^ uVar26;
  uVar42 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar4 + -0x670) = uVar38;
  uVar26 = *(ulonglong *)(lVar4 + -0x2a0) ^ uVar42 ^ uVar38 ^ uVar26 ^ uVar35;
  *puVar1 = uVar26;
  uVar38 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar4 + -0x898) = uVar26 >> 0x20 ^ uVar38 ^ uVar21;
  local_148 = (byte)uVar7;
  uVar21 = CONCAT44(DAT_18267174c,DAT_18267174c);
  puVar33 = (ulonglong *)(lVar4 - (uVar31 ^ 0x5c262d98));
  *puVar33 = (uVar42 ^ uVar26) << ((local_148 ^ 0xa0) & 0x3f) ^ uVar21;
  uVar14 = DAT_182671848;
  local_120 = (byte)uVar13;
  uVar45 = CONCAT44(DAT_182671648,DAT_182671648);
  puVar37 = (ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x2c7bb7d4));
  *puVar37 = (*(ulonglong *)(lVar4 - (uVar48 ^ 0x2c7bb4bc)) ^ uVar38 |
             uVar21 ^ *(ulonglong *)(lVar4 + -0x318)) ^ uVar45;
  lVar5 = DAT_182671560;
  uVar38 = CONCAT44(uVar14,uVar14);
  uVar47 = (*(ulonglong *)(lVar4 + -0x2a0) ^ uVar35) - (*puVar24 ^ uVar45);
  uVar48 = uVar47 ^ uVar38;
  uVar21 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *puVar3 = uVar48;
  uVar16 = DAT_1826718b0;
  uVar35 = uVar21 ^ uVar50 ^ uVar29 ^ *puVar2 ^ *(ulonglong *)(lVar4 + -0xa88);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar35;
  uVar14 = DAT_182671638;
  uVar26 = (uVar35 ^ uVar21) >> ((local_120 ^ 0xa0) & 0x3f);
  *(ulonglong *)(lVar5 + -0x8a8) = uVar26 ^ CONCAT44(uVar16,uVar16);
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar35 = (uVar35 ^ uVar21) << (((byte)uVar15 ^ 0x84) & 0x3f);
  uVar21 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar5 + -0x670) = uVar35 ^ uVar25;
  uVar42 = (uVar26 | uVar35) ^ uVar29;
  *puVar1 = uVar42;
  uVar26 = CONCAT44(DAT_182671798,DAT_182671798);
  uVar51 = (uVar50 ^ *(ulonglong *)(lVar5 + -0xa88)) -
           (*(ulonglong *)(lVar5 - (uVar21 ^ 0x6e269ffb)) ^ uVar29);
  uVar35 = CONCAT44(DAT_182671860,DAT_182671860);
  local_e8 = (byte)uVar9;
  uVar50 = uVar51 ^ uVar26;
  *(ulonglong *)(lVar5 + -0x318) = uVar50;
  lVar4 = DAT_182671560;
  uVar42 = uVar35 ^ uVar29 ^ uVar48 ^ uVar38 ^ uVar42;
  iVar27 = -0x10e3c6ca - (uVar8 ^ 0xf2a3db42);
  uVar21 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (CONCAT44(uVar7,uVar12) ^ 0x27451f2020f31ecc) +
       (CONCAT44(uVar13,uVar15) ^ 0x23457c591293b196);
  uVar14 = DAT_1826717e8;
  *(ulonglong *)(lVar4 + -0x898) = uVar42;
  *(int *)(lVar4 + -0x910) = iVar27;
  local_c8 = (byte)uVar49;
  *puVar2 = (uVar42 ^ uVar35) >> ((local_e8 ^ 0xe2) & 0x3f) ^ uVar21;
  uVar38 = (uVar42 ^ uVar35) << ((local_c8 ^ 0x86) & 0x3f);
  uVar48 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar38 ^ CONCAT44(uVar14,uVar14);
  uVar38 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x5c262f90)) ^ uVar21 | uVar38;
  uVar42 = uVar38 ^ uVar48;
  uVar29 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar42;
  uVar6 = DAT_1826718cc;
  lVar5 = DAT_182671560;
  uVar47 = uVar47 - uVar38;
  uVar35 = uVar47 ^ uVar29;
  uVar21 = (ulonglong)DAT_1826718cc;
  *(ulonglong *)(lVar4 + -0x670) = uVar35;
  uVar38 = CONCAT44(DAT_182671630,DAT_182671630);
  uVar50 = *puVar24 ^ CONCAT44(uVar6,uVar6) ^ uVar26 ^ uVar45 ^ uVar50;
  *(ulonglong *)(lVar5 + -0xa88) = uVar50;
  *puVar1 = ((ulonglong)(uVar6 >> 0x16) | uVar21 << 10) ^ uVar50 >> 0x16 ^ uVar38;
  local_d8 = (byte)(uVar7 >> 0x10);
  *(int *)(lVar5 + -0x3d4) = -0x775d8fb3 - iVar27;
  uVar16 = DAT_1826716ac;
  uVar21 = (uVar50 ^ CONCAT44(uVar6,uVar6)) << ((local_d8 ^ 5) & 0x3f);
  *(ulonglong *)(lVar5 + -0x2a0) = uVar21 ^ uVar32;
  uVar14 = DAT_1826715f4;
  uVar21 = *(ulonglong *)(lVar5 - (uVar52 ^ 0x6656d2e4)) ^ uVar38 | uVar21;
  uVar26 = uVar21 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x898) = uVar26;
  uVar32 = CONCAT44(uVar14,uVar14);
  *puVar2 = uVar51 - uVar21 ^ uVar32;
  lVar4 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar29 = uVar26 ^ uVar35 ^ uVar21 ^ CONCAT44(uVar16,uVar16) ^ uVar29;
  uVar35 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar29;
  uVar14 = DAT_1826715e4;
  uVar26 = (uVar29 ^ uVar21) >> ((local_148 ^ 0xae) & 0x3f);
  uVar38 = CONCAT44(DAT_182671794,DAT_182671794);
  *puVar3 = uVar26 ^ uVar35;
  local_118 = (byte)uVar12;
  uVar21 = (uVar21 ^ uVar29) << ((local_118 ^ 0x12) & 0x3f);
  *puVar24 = uVar21 ^ uVar38;
  uVar7 = DAT_182671884;
  uVar21 = uVar21 | uVar26;
  *(ulonglong *)(lVar4 + -0xa88) =
       *(ulonglong *)(CONCAT44(DAT_182671864,DAT_182671864) ^ *(ulonglong *)(lVar4 + -0x6a0)) ^
       CONCAT44(uVar14,uVar14);
  uVar14 = DAT_1826716a4;
  uVar26 = CONCAT44(DAT_182671790,DAT_182671790);
  *puVar1 = uVar21 ^ uVar26;
  lVar4 = DAT_182671560;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar47 - uVar21 ^ uVar38;
  *puVar33 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x625481b4)) ^ CONCAT44(uVar7,uVar7) ^ uVar32 ^ uVar48
             ^ uVar42;
  *(ulonglong *)(lVar4 + -0x6d0) = (uVar26 ^ *puVar1) >> (((byte)uVar30 ^ 0xdb) & 0x3f);
  uVar6 = DAT_182671568;
  uVar21 = CONCAT44(DAT_182671640,DAT_182671640);
  bVar20 = (byte)DAT_182671568;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar46 ^ 0x3c8044a7)) =
       ((ulonglong)uVar7 << 0x14 | (ulonglong)(uVar7 >> 0xc)) ^
       *(ulonglong *)(lVar4 + -0x318) >> 0xc ^ uVar21;
  uVar28 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar41 ^ 0x6a6a5e82)) =
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar4 + -0x318)) << ((bVar20 ^ 0x8f) & 0x3f) ^ uVar28
  ;
  uVar29 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x4e2f3770)) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0xa88) | uVar28 ^ *puVar3) ^ uVar29;
  uVar14 = DAT_182671628;
  uVar21 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar4 + -0x670) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar30 ^ 0xe7d6d2ec)) ^ uVar32) - (uVar29 ^ *puVar24) ^
       uVar21;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x4e2f3428)) =
       uVar32 ^ uVar29 ^ uVar38 ^ *puVar24 ^ *(ulonglong *)(lVar4 + -0x2a0);
  uVar7 = DAT_182671580;
  lVar5 = DAT_182671560;
  uVar28 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar4 + -0x6d0) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x8a8)) >> (((byte)uVar11 ^ 0x99) & 0x3f) ^ uVar28;
  uVar14 = DAT_18267171c;
  uVar35 = (ulonglong)DAT_182671598;
  uVar39 = (uVar32 ^ *(ulonglong *)(lVar5 + -0x8a8)) << ((local_118 ^ 0x27) & 0x3f);
  puVar33 = (ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a4 ^ 0xacee7aa6));
  *(ulonglong *)(lVar5 + -0x318) = uVar39 ^ CONCAT44(DAT_182671784,DAT_182671784);
  uVar29 = CONCAT44(uVar14,uVar14);
  *puVar3 = (uVar39 | uVar28 ^ *puVar33) ^ uVar29;
  lVar4 = DAT_182671560;
  uVar39 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(DAT_182671560 - (uVar52 ^ 0x6656da2c)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar41 ^ 0x6a6a5a0a)) ^ uVar38) -
       (CONCAT44(uVar8,uVar7) ^ 0x5e8e98c3436f1db) ^ uVar39;
  uVar28 = *(ulonglong *)(lVar4 + -0xa88);
  *puVar2 = (uVar39 ^ *(ulonglong *)(lVar4 + -0xa88)) <<
            ((*(byte *)(lVar4 + -0x898) ^ (byte)uVar16) & 0x3f);
  iVar27 = *(int *)(lVar4 + -0x910);
  uVar38 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *puVar24 = (uVar39 ^ uVar28) - (uVar29 ^ *puVar3) ^ uVar38;
  uVar10 = DAT_1826715b0;
  uVar32 = (ulonglong)DAT_1826715b0;
  *(int *)(lVar4 - ((ulonglong)uVar6 ^ 0x6e2695cf)) = iVar27 * 2;
  uVar16 = DAT_182671624;
  lVar5 = DAT_182671560;
  uVar42 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar4 + -0x8a8) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x2a001a2a)) ^ uVar29) -
       (CONCAT44(uVar10,uVar9) ^ 0x8e0b916f0585b13a) ^ uVar42;
  uVar17 = DAT_182671674;
  uVar14 = DAT_1826715a8;
  uVar39 = CONCAT44(uVar16,uVar16);
  uVar28 = uVar39 ^ uVar21 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x670) ^ *puVar1;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar28;
  *(ulonglong *)(lVar4 + -0x318) = (uVar28 ^ uVar39) >> (((byte)uVar11 ^ 0xa1) & 0x3f) ^ uVar21;
  uVar6 = DAT_182671574;
  local_128 = (byte)uVar41;
  uVar28 = (*(ulonglong *)(lVar5 - (uVar31 ^ 0x5c262850)) ^ uVar39) << ((local_128 ^ 0xb5) & 0x3f);
  uVar39 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar5 + -0x898) =
       (CONCAT44(uVar14,uVar13) ^ 0x78453ef6127a869d) << (((byte)uVar7 ^ 0xd0) & 0x3f);
  uVar16 = DAT_1826715bc;
  *(ulonglong *)(lVar5 + -0x2a0) = uVar28 ^ CONCAT44(uVar17,uVar17);
  uVar7 = DAT_1826715ac;
  uVar26 = CONCAT44(uVar16,uVar16);
  uVar29 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671568 ^ 0x6e269cab)) =
       (*(ulonglong *)(lVar5 - (uVar39 ^ 0xeeef7fee)) ^ uVar21 | uVar28) ^ uVar26;
  *(ulonglong *)(lVar5 + -0xa88) =
       -0x36e10b7c5ad0d408 - (CONCAT44(uVar30,uVar49) ^ 0x5b8261226b50cbb5);
  uVar28 = (*(ulonglong *)(DAT_182671560 - (uVar34 ^ 0xe3d295a8)) ^ uVar21) -
           (CONCAT44(uVar46,uVar6) ^ 0xdab523834b20522e);
  *puVar3 = uVar28 ^ CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar39 = CONCAT44(DAT_182671778,DAT_182671778);
  *puVar1 = uVar28 - (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar49 ^ 0xa1687690)) ^ uVar26) ^
            uVar39;
  uVar16 = DAT_1826717a0;
  *puVar33 = (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x803c2e5e)) ^ uVar26) +
             (CONCAT44(uVar49,uVar9) ^ 0x7e6a01b298e61c65) ^ uVar43;
  lVar4 = DAT_182671560;
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671560 + -0x898) =
       uVar28 ^ uVar38 ^ *puVar24 ^ uVar43 ^ *(ulonglong *)(DAT_182671560 + -0x6d0);
  uVar16 = DAT_1826718c4;
  *(ulonglong *)(lVar4 + -0x318) =
       (CONCAT44(uVar9,uVar8) ^ 0x800d307d373da565) + (uVar23 ^ 0xed7a0cab27650842);
  uVar26 = CONCAT44(uVar16,uVar16);
  uVar23 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar4 + -0x2a0) =
       (*(ulonglong *)(lVar4 - (uVar44 ^ 0x4e2f3418)) ^ uVar28) >> ((local_120 ^ 0x85) & 0x3f) ^
       uVar26;
  uVar21 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar4 + -0xa88) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x4804cbe)) ^ uVar28) << (((byte)uVar10 ^ 0x39) & 0x3f) ^
       uVar23;
  uVar17 = _DAT_1826715e0;
  uVar28 = *(ulonglong *)(lVar4 - (uVar32 ^ 0x2a001ea2)) ^ uVar26 |
           *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x803c25c6)) ^ uVar23;
  *(ulonglong *)(lVar4 + -0x670) = uVar28 ^ uVar21;
  uVar16 = DAT_1826715cc;
  lVar4 = DAT_182671560;
  uVar21 = CONCAT44(uVar17,uVar17);
  *puVar3 = (uVar38 ^ *puVar24) - uVar28 ^ uVar21;
  uVar26 = uVar39 ^ uVar42 ^ *(ulonglong *)(lVar4 + -0x8a8) ^ *puVar1;
  *puVar2 = uVar26 ^ CONCAT44(uVar16,uVar16);
  uVar6 = DAT_182671580;
  uVar29 = (ulonglong)DAT_182671580;
  uVar23 = uVar26 >> ((local_148 ^ 0xa5) & 0x3f);
  uVar28 = CONCAT44(DAT_182671580,uVar46);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar23 ^ CONCAT44(DAT_1826717fc,DAT_1826717fc);
  lVar4 = DAT_182671560;
  uVar26 = uVar26 << (((byte)uVar15 ^ 0xbf) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x318) =
       uVar28 ^ 0xde5590494f837989 | CONCAT44(uVar14,uVar46) ^ 0xdee0cf18186a1384;
  uVar14 = DAT_182671894;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar26 ^ CONCAT44(DAT_182671714,DAT_182671714);
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xa88) = (uVar26 | uVar23) ^ uVar28;
  *puVar37 = **(ulonglong **)(lVar4 - (uVar52 ^ 0x6656ddc4)) ^ uVar25;
  uVar14 = DAT_1826716b0;
  bVar20 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar4 + -0x8a8) =
       (uVar39 ^ *puVar1) - (uVar28 ^ *(ulonglong *)(lVar4 + -0xa88)) ^
       CONCAT44(DAT_182671774,DAT_182671774);
  uVar16 = DAT_1826716cc;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar28 = *puVar22 ^ *puVar3 ^ uVar23 ^ uVar28 ^ uVar21;
  *(ulonglong *)(lVar4 + -0x318) = uVar28;
  *puVar2 = (uVar28 ^ uVar23) >> ((bVar20 ^ 0x61) & 0x3f) ^ uVar19;
  uVar39 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x6d0) = (uVar28 ^ uVar23) << 0x29 ^ uVar39;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar49 ^ 0xa1687520)) =
       CONCAT44(uVar7,uVar6) ^ uVar28 ^ uVar23 ^ 0x9a09bdc674dc0a20;
  uVar14 = DAT_1826717c0;
  uVar28 = *puVar3;
  uVar19 = *(ulonglong *)(lVar4 - (uVar29 ^ 0xf3f5812c)) ^ uVar39 | *puVar2 ^ uVar19;
  *puVar24 = uVar19 ^ CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *puVar1 = (uVar28 ^ uVar21) - uVar19 ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar36;
  return;
}



############ FUN_ 180f370c0 size=5353 ############

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

void FUN_180f370c0(void)

{
  longlong lVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  ulonglong *puVar27;
  undefined1 *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar35;
  byte bVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_50;
  
  uVar9 = DAT_1826715d4;
  uVar8 = DAT_1826715b4;
  uVar16 = DAT_1826715a4;
  uVar7 = DAT_1826715a0;
  uVar10 = DAT_182671590;
  uVar5 = DAT_18267158c;
  uVar6 = DAT_182671574;
  lVar1 = DAT_182671560;
  DAT_1826715a8 = ~DAT_1826715ac;
  uVar22 = DAT_182671598 & 7;
  if (uVar22 < 4) {
    if (uVar22 < 2) {
      uVar2 = DAT_1826715a0;
      if (uVar22 == 0) {
        uVar2 = DAT_182671598;
      }
      uVar31 = (ulonglong)uVar2;
    }
    else {
      uVar2 = DAT_182671594;
      if (uVar22 < 3) {
        uVar2 = DAT_182671568;
      }
      uVar31 = (ulonglong)uVar2;
    }
  }
  else if (uVar22 < 6) {
    uVar2 = DAT_1826715b0;
    if (uVar22 < 5) {
      uVar2 = DAT_1826715b4;
    }
    uVar31 = (ulonglong)uVar2;
  }
  else {
    uVar31 = (ulonglong)DAT_182671588;
    if (uVar22 < 7) {
      uVar31 = (ulonglong)DAT_182671580;
    }
  }
  uVar38 = (ulonglong)DAT_182671574;
  uVar29 = DAT_1826715a4 + DAT_182671574;
  uVar34 = DAT_182671590 << 0x10 | DAT_182671590 >> 0x10;
  DAT_18267157c = (uint)uVar31;
  uVar22 = *(uint *)(&DAT_182611e70 + (uVar38 ^ 0x62d08040) + (longlong)DAT_182671a64);
  uVar23 = *(uint *)(&DAT_182611e80 + DAT_182671a64) ^ DAT_1826715a4;
  DAT_182671570 = uVar29;
  DAT_182671584 = uVar34 ^ 0x1dbddd6c;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0xd58) ^ (ulonglong)DAT_1826715d4) =
       *(byte *)(DAT_182671560 + -0xb09) ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671738;
  uVar2 = DAT_182671580;
  *(ulonglong *)(lVar1 + -0x318) =
       CONCAT44(uVar10,uVar34) ^ 0x1dbddd6c ^ *(ulonglong *)(lVar1 + -0x670) ^ 0x9f760ae04bf6a332;
  uVar20 = DAT_182671708;
  uVar13 = DAT_182671598;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb98) +
            (CONCAT44(uVar2,DAT_182671598) ^ 0x2800e6006ad8a86a) * 8);
  *(ulonglong *)(lVar1 + -0x128) = (ulonglong)puVar27 ^ CONCAT44(uVar9,uVar9);
  uVar18 = DAT_1826715b0;
  uVar30 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar25 = (ulonglong)DAT_1826715b0;
  uVar24 = *puVar27 ^ uVar30 ^ CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar1 + -0x898) = uVar24;
  *(ulonglong *)(lVar1 + -0xa88) =
       ((uVar31 | uVar25 << 0x20) ^ 0x97ca55d304f0b91d) >> (((byte)uVar24 ^ (byte)uVar20) & 0x3f);
  uVar11 = DAT_182671594;
  lVar1 = DAT_182671560;
  bVar39 = (byte)_DAT_182671868 ^ (byte)DAT_1826717f4;
  uVar25 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  bVar36 = (byte)DAT_1826717f4 ^ (byte)DAT_1826717c0;
  puVar27 = (ulonglong *)(DAT_182671560 + -0x690);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xd95d1dc5)) ^ CONCAT44(uVar20,uVar20))
       >> (((byte)uVar5 ^ 0x18) & 0x3f) ^ CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar9 = DAT_182671588;
  uVar24 = (ulonglong)DAT_18267175c;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0xee71e600)) =
       *(ulonglong *)(uVar25 ^ *puVar27) ^ uVar30;
  uVar5 = DAT_182671568;
  *(byte *)(lVar1 + -0x5da) = bVar39 ^ *(byte *)(lVar1 + -0x110);
  *(ulonglong *)(lVar1 + -0x628) = 0x3f19bc05b178cf58 >> (((byte)uVar8 ^ 0x3a) & 0x3f);
  uVar17 = DAT_1826715a8;
  lVar1 = DAT_182671560;
  uVar42 = (ulonglong)DAT_1826715a8;
  uVar25 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xd95d16f5)) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar29 ^ 0xfbef706)) +
       (CONCAT44(uVar5,DAT_1826715a8) ^ 0xffffffff9db9f8bb) ^ uVar24;
  uVar35 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(byte *)(*(ulonglong *)(lVar1 - (uVar25 ^ 0x624604df)) ^ uVar24) =
       bVar36 ^ *(byte *)(lVar1 + -0x5da);
  uVar21 = DAT_18267181c;
  uVar20 = DAT_1826717c4;
  uVar8 = DAT_18267158c;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb98) + 0x30 +
            (CONCAT44(uVar17,uVar9) ^ 0x9db9f888ea5677e4) * 0x60);
  *(ulonglong *)(lVar1 + -0xd60) = (ulonglong)puVar27 ^ uVar35;
  uVar37 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar1 + -0x670) = *puVar27 ^ uVar37 ^ uVar30;
  uVar24 = (ulonglong)uVar16;
  uVar25 = (ulonglong)DAT_18267163c;
  *(ulonglong *)(lVar1 + -0x318) =
       (*(ulonglong *)(lVar1 - (uVar31 ^ 0x118e147f)) ^ uVar37) >> (((byte)uVar5 ^ 0xdf) & 0x3f) ^
       CONCAT44(uVar20,uVar20);
  bVar39 = (byte)uVar20 ^ (byte)DAT_182671878 ^ *(byte *)(lVar1 + -0x318);
  bVar36 = (byte)DAT_182671878 ^ bVar39;
  *(byte *)(lVar1 + -0x359) = bVar39;
  uVar14 = DAT_182671598;
  bVar36 = bVar36 ^ (byte)DAT_1826717c0;
  pbVar26 = (byte *)((CONCAT44(DAT_182671598,uVar16) ^ 0x6ad8a86cacee7c42) +
                    *(longlong *)(DAT_182671560 + -3000));
  *(ulonglong *)(DAT_182671560 + -0xa50) = (ulonglong)pbVar26 ^ uVar25;
  uVar31 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *pbVar26 = bVar36;
  lVar1 = DAT_182671560;
  puVar27 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0xb98) +
            ((CONCAT44(uVar29,uVar10) ^ 0xfbefcbe62500046) +
            (CONCAT44(uVar2,uVar34) ^ 0x2800e60000406250) * 0xc) * 8);
  uVar25 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(DAT_182671560 + -0x128) = (ulonglong)puVar27 ^ uVar31;
  uVar20 = DAT_182671704;
  uVar15 = DAT_1826715a0;
  uVar31 = (ulonglong)DAT_182671898;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826715a0 ^ 0xd95d1fd5)) = *puVar27 ^ uVar30 ^ uVar25;
  uVar32 = CONCAT44(uVar14,DAT_1826715ac);
  *(ulonglong *)(lVar1 + -0x898) =
       (*(ulonglong *)(lVar1 + -0xa88) ^ uVar25) >> (((byte)DAT_1826715ac ^ 0x5f) & 0x3f) ^
       CONCAT44(uVar20,uVar20);
  uVar7 = DAT_182671594;
  bVar36 = *(byte *)(lVar1 - (uVar38 ^ 0x62d088d0)) ^ (byte)uVar20 ^ (byte)DAT_1826718d0;
  *(byte *)(lVar1 + -0x951) = bVar36;
  uVar11 = DAT_1826715b0;
  pbVar26 = (byte *)(*(longlong *)(lVar1 - (uVar38 ^ 0x62d08bf0)) +
                    (CONCAT44(uVar34,uVar7) ^ 0x406250ee71edc5));
  bVar36 = (byte)DAT_1826717c0 ^ bVar36;
  *(ulonglong *)(lVar1 + -0x720) = (ulonglong)pbVar26 ^ uVar31;
  *pbVar26 = bVar36 ^ (byte)DAT_1826718d0;
  uVar20 = DAT_1826715e4;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       CONCAT44(uVar16,uVar11) ^ CONCAT44(uVar14,uVar17) ^ 0x2f9bc986c3e63a02;
  uVar7 = DAT_18267157c;
  uVar25 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar15 ^ 0xd95d13cd)) =
       *(longlong *)(lVar1 + -0xb98) +
       ((CONCAT44(uVar34,DAT_1826715b4) ^ 0x406250118e1209) +
       (CONCAT44(DAT_18267157c,uVar10) ^ 0x118e120f62500040) * 0xc) * 8 ^ uVar25;
  uVar21 = DAT_1826718c8;
  uVar31 = (ulonglong)DAT_182671658;
  uVar25 = CONCAT44(DAT_182671658,DAT_182671658) ^
           *(ulonglong *)(*(ulonglong *)(lVar1 + -0x690) ^ uVar25) ^ uVar30;
  *(ulonglong *)(lVar1 + -0x110) = uVar25;
  lVar3 = DAT_182671560;
  uVar25 = (uVar25 >> 0x20 ^ uVar31) >> 0x10 ^ CONCAT44(uVar21,uVar21);
  lVar1 = *(longlong *)(DAT_182671560 + -3000);
  *(byte *)(DAT_182671560 + -0x941) = (byte)uVar21 ^ (byte)uVar25 ^ (byte)DAT_1826715ec;
  uVar31 = (ulonglong)DAT_182671690;
  *(ulonglong *)(lVar3 + -0x628) = uVar25;
  *(ulonglong *)(lVar3 + -0x500) = (CONCAT44(uVar34,uVar9) ^ 0x406250ea5677d2) + lVar1 ^ uVar31;
  uVar11 = DAT_1826715b0;
  uVar37 = CONCAT44(DAT_182671748,DAT_182671748);
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0xfffffaff)) ^ uVar31) =
       *(byte *)(lVar3 - (uVar24 ^ 0xacee7537)) ^ (byte)DAT_1826717c0 ^ (byte)DAT_1826715ec;
  uVar20 = DAT_18267182c;
  lVar1 = DAT_182671560;
  puVar27 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0xb98) +
            ((CONCAT44(uVar15,DAT_18267158c) ^ 0xd95d155d28006406) +
            (CONCAT44(uVar8,uVar11) ^ 0x280064002b4ce65c) * 0xc) * 8);
  *(ulonglong *)(DAT_182671560 + -0xd60) = (ulonglong)puVar27 ^ uVar37;
  uVar41 = (ulonglong)DAT_1826717d0;
  uVar25 = CONCAT44(uVar2,DAT_182671588);
  uVar40 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  *(ulonglong *)(lVar1 + -0x670) = *puVar27 ^ uVar30 ^ uVar40;
  uVar31 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar1 + -0x318) =
       (uVar25 ^ 0x9814442f54626f42) - (CONCAT44(uVar14,uVar5) ^ 0x62515e6d2add3d35);
  lVar3 = DAT_182671560;
  puVar33 = (ulonglong *)(lVar1 - (uVar31 ^ 0x118e1887));
  uVar31 = (ulonglong)DAT_182671580;
  *puVar33 = (*(ulonglong *)(lVar1 - ((ulonglong)DAT_182671598 ^ 0x6ad8ae1c)) ^ uVar40) >>
             (((byte)uVar5 ^ 199) & 0x3f) ^ CONCAT44(uVar20,uVar20);
  bVar36 = (byte)DAT_1826717c0;
  uVar25 = (ulonglong)DAT_1826716f4;
  *(byte *)(lVar3 + -0xb39) = (byte)uVar20 ^ *(byte *)(lVar3 + -0xa88) ^ (byte)DAT_182671770;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x2800e298)) =
       (uVar32 ^ 0x6ad8a86c62460740) + *(longlong *)(lVar3 + -3000) ^ uVar25;
  *(byte *)(*(ulonglong *)(lVar3 + -0x498) ^ uVar25) =
       bVar36 ^ *(byte *)(lVar3 + -0xb39) ^ (byte)DAT_182671770;
  uVar32 = CONCAT44(DAT_182671800,DAT_182671800);
  *(ulonglong *)(lVar3 + -0x128) =
       (CONCAT44(uVar6,uVar10) ^ 0x62d0804862500040) * 0x60 + *(longlong *)(lVar3 + -0xb98) + 0x38 ^
       uVar32;
  *(ulonglong *)(lVar3 + -0x898) =
       *(ulonglong *)(lVar3 - (uVar38 ^ 0x62d08660)) ^ *(ulonglong *)(lVar3 + -0x318) ^
       CONCAT44(uVar21,uVar21);
  uVar12 = DAT_182671594;
  puVar27 = (ulonglong *)(lVar3 - (uVar42 ^ 0x9db9f9a0));
  uVar38 = *(ulonglong *)(uVar32 ^ *puVar27) ^ uVar30;
  bVar36 = (byte)DAT_182671598;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar38 ^ CONCAT44(DAT_1826716fc,DAT_1826716fc);
  uVar11 = DAT_18267158c;
  bVar39 = (byte)DAT_1826716cc;
  uVar31 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       uVar38 >> ((bVar36 ^ 0x6c) & 0x3f) ^ CONCAT44(DAT_1826716cc,DAT_1826716cc);
  lVar1 = DAT_182671560;
  *(byte *)(DAT_182671560 - (uVar31 ^ 0x28006899)) =
       *(byte *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0x9db9f998)) ^ bVar39 ^ (byte)DAT_1826718c4;
  uVar31 = CONCAT44(uVar7,uVar5);
  pbVar26 = (byte *)((uVar31 ^ 0x118e120fffffffc7) + *(longlong *)(lVar1 + -3000));
  bVar36 = *(byte *)(lVar1 + -0xc99) ^ (byte)DAT_1826717c0 ^ (byte)DAT_1826718c4;
  *(ulonglong *)(lVar1 + -0xb28) = (ulonglong)pbVar26 ^ (ulonglong)DAT_1826717d8;
  *pbVar26 = bVar36;
  uVar20 = DAT_182671798;
  uVar25 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar29 ^ 0xfbefa2e)) =
       *(longlong *)(lVar1 - (uVar24 ^ 0xacee77ee)) +
       (CONCAT44(uVar10,DAT_182671598) ^ 0x625000406ad8a86b) * 8 ^ uVar25;
  *(ulonglong *)(lVar1 + -0x670) =
       *(ulonglong *)(uVar25 ^ *(ulonglong *)(lVar1 + -0x690)) ^ uVar30 ^ uVar25;
  uVar19 = DAT_1826715b0;
  *puVar33 = (CONCAT44(uVar18,uVar34) ^ 0x39dfae4e2a443395) +
             (CONCAT44(uVar17,uVar11) ^ 0xab34a85ee4d65686);
  uVar11 = DAT_1826715a8;
  lVar3 = DAT_182671560;
  uVar38 = (ulonglong)DAT_182671594;
  uVar25 = (*(ulonglong *)(lVar1 + -0x670) ^ uVar25) >> (((byte)DAT_1826715b0 ^ 0x54) & 0x3f) ^
           CONCAT44(uVar20,uVar20);
  bVar36 = (byte)uVar20 ^ (byte)uVar25 ^ (byte)DAT_1826717ec;
  *(ulonglong *)(lVar1 + -0x628) = uVar25;
  *(byte *)(lVar1 + -0x775) = bVar36;
  uVar25 = (ulonglong)DAT_182671698;
  bVar36 = bVar36 ^ (byte)DAT_1826717c0 ^ (byte)DAT_1826717ec;
  *(ulonglong *)(lVar3 + -0x860) =
       (CONCAT44(uVar9,uVar19) ^ 0xea5677e42b4ce665) + *(longlong *)(lVar3 + -3000) ^ uVar25;
  uVar42 = CONCAT44(uVar29,DAT_182671588);
  *(ulonglong *)(lVar3 + -0x318) =
       (CONCAT44(uVar8,uVar11) ^ 0xdbae21f8f16bcf44) -
       (CONCAT44(uVar16,DAT_1826715ac) ^ 0xd858a86ecde5a5ea);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0xee71e590)) ^ uVar25) = bVar36;
  uVar8 = DAT_182671744;
  uVar40 = (ulonglong)DAT_182671744;
  uVar38 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar3 + -0xd60) =
       *(longlong *)(lVar3 + -0xb98) +
       ((uVar42 ^ 0xfbefcbeea5677e3) + (CONCAT44(uVar15,uVar16) ^ 0xd95d155dacee7c76) * 0xc) * 8 ^
       uVar37;
  uVar20 = DAT_182671790;
  lVar1 = DAT_182671560;
  uVar25 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x28006c98)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0x118e1f6f)) ^ uVar37) ^
       CONCAT44(uVar8,uVar8) ^ uVar30;
  uVar38 = *(ulonglong *)(lVar1 - (uVar25 ^ 0x2800ee98)) >> 0x10 ^
           ((ulonglong)(uVar8 >> 0x10) | uVar40 << 0x10) ^ CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar1 + -0xbf0) = uVar38;
  bVar39 = (byte)uVar20 ^ (byte)uVar38 ^ (byte)DAT_1826715d0;
  uVar38 = (ulonglong)DAT_1826716f0;
  *(byte *)(lVar1 + -0x2f1) = bVar39;
  *(ulonglong *)(lVar1 + -0x110) = *(ulonglong *)(uVar32 ^ *puVar27) ^ uVar30;
  pbVar26 = (byte *)((CONCAT44(uVar9,uVar29) ^ 0xea5677e40fbefc84) + *(longlong *)(lVar1 + -3000));
  bVar36 = (byte)DAT_1826717c0 ^ (byte)DAT_1826715d0;
  *(ulonglong *)(lVar1 + -0xad8) = (ulonglong)pbVar26 ^ uVar38;
  *pbVar26 = bVar36 ^ bVar39;
  uVar21 = DAT_182671854;
  uVar38 = CONCAT44(_DAT_182671610,_DAT_182671610);
  *(ulonglong *)(lVar1 + -0x690) =
       *(longlong *)(lVar1 + -0xb98) + (CONCAT44(uVar18,uVar10) ^ 0x2b4ce65c62500047) * 8 ^ uVar38;
  uVar20 = DAT_182671808;
  uVar8 = DAT_18267157c;
  uVar32 = CONCAT44(uVar21,uVar21);
  uVar38 = *(ulonglong *)(*(ulonglong *)(lVar1 - ((ulonglong)DAT_182671594 ^ 0xee71eb60)) ^ uVar38)
           ^ uVar30;
  *(ulonglong *)(lVar1 + -0xa88) = uVar38 ^ uVar32;
  uVar37 = CONCAT44(uVar15,DAT_1826715ac);
  bVar36 = (byte)uVar20 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar1 + -0x670) = uVar38 >> (((byte)uVar8 ^ 0x17) & 0x3f) ^ CONCAT44(uVar20,uVar20)
  ;
  puVar28 = (undefined1 *)
            ((CONCAT44(uVar10,uVar34) ^ 0x625000400040626b) + *(longlong *)(lVar1 + -3000));
  *(byte *)(lVar1 + -0x7f1) = bVar36 ^ *(byte *)(lVar1 + -0x670);
  *(ulonglong *)(lVar1 + -0xbd8) = (ulonglong)puVar28 ^ uVar41;
  *(ulonglong *)(lVar1 + -0x628) =
       (CONCAT44(uVar12,uVar6) ^ 0x8c49e9bce441bc12) - (uVar37 ^ 0x4fa2b977bd889562);
  uVar10 = DAT_182671588;
  *puVar28 = *(undefined1 *)(lVar1 - (uVar24 ^ 0xacee7b87));
  uVar20 = DAT_182671890;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb98) +
            ((CONCAT44(uVar6,uVar10) ^ 0x62d08048ea5677e3) + (uVar31 ^ 0x118e120fffffffff) * 0xc) *
            8);
  *(ulonglong *)(lVar1 + -0xd60) = (ulonglong)puVar27 ^ uVar35;
  uVar31 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0xacee7f6e)) = *puVar27 ^ uVar30 ^ uVar31;
  uVar20 = DAT_182671684;
  *(ulonglong *)(lVar1 + -0x898) = CONCAT44(uVar14,uVar6) ^ 0x2c098650d3ebf1f3;
  lVar3 = DAT_182671560;
  uVar25 = CONCAT44(uVar18,DAT_18267158c);
  uVar31 = (*(ulonglong *)(lVar1 + -0x318) ^ uVar31) >> (((byte)uVar16 ^ 0x56) & 0x3f);
  uVar38 = uVar31 ^ CONCAT44(uVar20,uVar20);
  bVar39 = (byte)uVar20 ^ (byte)uVar38 ^ (byte)DAT_18267178c;
  *(ulonglong *)(lVar1 + -0xbf0) = uVar38;
  *(byte *)(lVar1 + -0xc81) = bVar39;
  pbVar26 = (byte *)((uVar25 ^ 0x2b4ce65c2800643c) + *(longlong *)(lVar3 + -3000));
  uVar38 = (ulonglong)DAT_18267166c;
  *(ulonglong *)(lVar3 + -0x670) = uVar31 | 0x263998691a89366;
  bVar36 = (byte)DAT_1826717c0 ^ (byte)DAT_18267178c;
  *(ulonglong *)(lVar3 + -0xa18) = (ulonglong)pbVar26 ^ uVar38;
  uVar16 = DAT_182671670;
  uVar10 = DAT_1826715a0;
  uVar38 = (ulonglong)DAT_182671670;
  *pbVar26 = bVar36 ^ bVar39;
  uVar31 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x28006528)) =
       *(longlong *)(lVar3 + -0xb98) + 0x38 + (CONCAT44(uVar5,uVar10) ^ 0xffffffffd95d155d) * 0x60 ^
       uVar31;
  *(ulonglong *)(lVar3 + -0x628) =
       CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(uVar31 ^ *(ulonglong *)(lVar3 + -0x128)) ^ uVar30;
  uVar21 = DAT_1826718c0;
  *(ulonglong *)(lVar3 + -0x898) =
       (CONCAT44(uVar7,uVar6) ^ 0xbaa18c6b40a36137) <<
       ((byte)*(undefined8 *)(lVar3 + -0x110) & 0x3f);
  uVar25 = (ulonglong)DAT_1826716e8;
  uVar31 = (ulonglong)DAT_182671598;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)(uVar34 ^ 0x1dbddd6c) ^ 0x1dfdb4cc)) =
       (*(ulonglong *)(DAT_182671560 + -0x628) >> 0x20 ^ uVar38) >> 8 ^ CONCAT44(uVar21,uVar21);
  lVar1 = DAT_182671560;
  uVar38 = (ulonglong)DAT_182671594;
  *(byte *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x118e14ae)) =
       *(byte *)(DAT_182671560 - (uVar31 ^ 0x6ad8a39c)) ^ (byte)uVar21 ^ (byte)DAT_18267169c;
  pbVar26 = (byte *)(*(longlong *)(lVar1 - (uVar38 ^ 0xee71e648)) +
                    (CONCAT44(uVar17,uVar34) ^ 0x9db9f8880040626d));
  uVar31 = CONCAT44(uVar5,DAT_182671580);
  *(ulonglong *)(lVar1 + -0x250) = (ulonglong)pbVar26 ^ uVar25;
  bVar36 = *(byte *)(lVar1 + -0x6a1) ^ (byte)DAT_1826717c0 ^ (byte)DAT_18267169c;
  *(ulonglong *)(lVar1 + -0x670) = (uVar31 ^ 0x57db72db4050531a) >> (((byte)uVar6 ^ 0x62) & 0x3f);
  *pbVar26 = bVar36;
  uVar20 = DAT_1826715bc;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb98) + 0x38 +
            (CONCAT44(uVar29,uVar29) ^ 0xfbefcbe0fbefcbe) * 0x60);
  *(ulonglong *)(lVar1 + -0x690) = (ulonglong)puVar27 ^ CONCAT44(DAT_1826715fc,DAT_1826715fc);
  uVar6 = DAT_182671698;
  lVar3 = DAT_182671560;
  uVar38 = CONCAT44(uVar20,uVar20);
  bVar36 = (byte)DAT_1826715b0;
  *(ulonglong *)(lVar1 + -0x898) = *puVar27 ^ uVar30 ^ uVar38;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0x628) =
       *(ulonglong *)(lVar1 + -0x110) >> ((*(byte *)(lVar1 + -0xbf0) ^ (byte)uVar21) & 0x3f);
  uVar20 = DAT_1826716bc;
  lVar1 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671740;
  uVar38 = (*(ulonglong *)(lVar4 + -0x898) ^ uVar38) >> ((bVar36 ^ 0x6c) & 0x3f) ^
           CONCAT44(DAT_1826718d4,DAT_1826718d4);
  bVar36 = (byte)DAT_1826718d4 ^ (byte)DAT_182671774 ^ (byte)uVar38;
  pbVar26 = (byte *)((CONCAT44(uVar2,uVar29) ^ 0x2800e6000fbefc80) +
                    *(longlong *)(DAT_182671560 + -3000));
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar38;
  *(ulonglong *)(lVar1 + -0x138) = (ulonglong)pbVar26 ^ uVar31;
  *(byte *)(lVar1 + -0x321) = bVar36;
  *pbVar26 = (byte)DAT_1826717c0 ^ (byte)DAT_182671774 ^ bVar36;
  uVar21 = DAT_182671850;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((uVar37 ^ 0xd95d155d62460770) +
            (CONCAT44(uVar12,DAT_1826715b4) ^ 0xee71edf0118e120f) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xd60) = (ulonglong)puVar27 ^ CONCAT44(uVar6,uVar6);
  uVar37 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715ac ^ 0x62460667)) = *puVar27 ^ uVar30 ^ uVar37;
  local_50 = (byte)uVar13;
  uVar30 = (ulonglong)DAT_18267172c;
  uVar38 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x110)) >> ((local_50 ^ 0x54) & 0x3f) ^
           CONCAT44(uVar20,uVar20);
  uVar31 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar38;
  uVar25 = (ulonglong)DAT_18267158c;
  *(byte *)(lVar3 + -0xd82) = (byte)uVar20 ^ (byte)uVar38 ^ (byte)DAT_182671648;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x280064e0)) =
       *(longlong *)(lVar3 - (uVar31 ^ 0x2b4cede4)) + (uVar42 ^ 0xfbefcbeea5677db) ^ uVar30;
  *(byte *)(*(ulonglong *)(lVar3 + -0xe0) ^ uVar30) =
       *(byte *)(lVar3 - (uVar24 ^ 0xacee71f4)) ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671648;
  *(ulonglong *)(lVar3 + -0x628) =
       uVar37 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0xa88) ^ *(ulonglong *)(lVar3 + -0x110);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar23 * 4) = uVar22 ^ uVar29;
  return;
}



############ FUN_ 180ebb4b0 size=4811 ############

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

void FUN_180ebb4b0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  longlong lVar19;
  uint uVar20;
  byte *pbVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint *puVar34;
  uint uVar35;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  uint uVar45;
  longlong *plVar46;
  byte bVar47;
  byte local_res18;
  ulonglong uVar36;
  
  uVar8 = DAT_1826716dc;
  uVar25 = DAT_1826715b4;
  uVar20 = DAT_1826715a8;
  uVar30 = DAT_182671578;
  uVar45 = DAT_182671574;
  uVar6 = DAT_182671568;
  lVar4 = DAT_182671560;
  uVar39 = (ulonglong)DAT_182671578;
  uVar38 = (ulonglong)DAT_1826715a8;
  uVar41 = (ulonglong)DAT_182671568;
  uVar24 = DAT_182671574 | DAT_182671568;
  uVar22 = DAT_1826715a8 + DAT_1826715b4;
  uVar35 = (DAT_182671578 << 0x10 | DAT_182671578 & 0xff00) << 8 | DAT_182671578 >> 8 & 0xff00 |
           DAT_182671578 >> 0x18;
  uVar36 = (ulonglong)uVar35;
  uVar3 = *(uint *)(&DAT_182611e80 + DAT_18267192c);
  uVar28 = *(uint *)(&DAT_182611e78 + DAT_18267192c) ^ DAT_182671574;
  DAT_182671594 = uVar22;
  DAT_182671598 = uVar24;
  DAT_18267159c = uVar35;
  *(byte *)(DAT_182671560 + -0x275) =
       (byte)DAT_1826716dc ^ (byte)DAT_182671648 ^ *(byte *)(DAT_182671560 + -0x110);
  lVar19 = DAT_182671560;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar25 ^ 0x118e1887)) =
       (CONCAT44(uVar6,uVar20) ^ 0x47f3f0c5a4549830) << (((byte)uVar22 ^ 0x8a) & 0x3f);
  plVar46 = (longlong *)(lVar4 - ((ulonglong)uVar35 ^ 0xe0485bb0));
  bVar15 = (byte)DAT_1826717c0 ^ (byte)DAT_182671648;
  pbVar21 = (byte *)(*plVar46 + 0x58);
  *(ulonglong *)(lVar19 + -0x818) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182671808;
  uVar7 = DAT_1826715c4;
  uVar44 = (ulonglong)DAT_1826715c4;
  *pbVar21 = bVar15 ^ *(byte *)(lVar19 + -0x275);
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0xe0485698)) =
       *(longlong *)(DAT_182671560 + -0xb98) +
       ((CONCAT44(uVar6,uVar25) ^ 0xffffffff118e1204) +
       (CONCAT44(uVar30,uVar22) ^ 0x85048e0af480a97) * 0xc) * 8 ^ uVar31;
  uVar12 = DAT_182671814;
  uVar10 = DAT_182671734;
  uVar18 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar40 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0xbf0) =
       *(ulonglong *)(uVar31 ^ *(ulonglong *)(lVar4 + -0x690)) ^ uVar18 ^ uVar40;
  lVar19 = DAT_182671560;
  uVar23 = (ulonglong)uVar45;
  uVar26 = (ulonglong)uVar24;
  *(ulonglong *)(lVar4 + -0x318) =
       CONCAT44(uVar24,uVar20) ^ CONCAT44(uVar45,uVar20) ^ 0x9da282a7da53b614;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       (uVar40 ^ *(ulonglong *)(lVar19 + -0xbf0)) >> (((byte)uVar22 ^ 0x9f) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  uVar13 = DAT_182671850;
  uVar9 = DAT_1826715a0;
  uVar7 = DAT_182671570;
  bVar15 = (byte)DAT_182671850;
  uVar40 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xfffff9d7)) =
       *(ulonglong *)(lVar4 - (uVar36 ^ 0xe0485890)) ^ CONCAT44(uVar10,uVar10) ^
       CONCAT44(uVar30,uVar20) ^ 0x222ce322d4428ec4;
  uVar16 = uVar7 | DAT_1826715a0;
  DAT_182671590 = uVar16;
  *(byte *)(lVar4 + -0xd09) = (byte)uVar12 ^ bVar15 ^ *(byte *)(lVar4 + -0x670);
  uVar37 = (ulonglong)uVar16;
  uVar31 = (ulonglong)DAT_18267185c;
  *(ulonglong *)(lVar4 + -0x750) =
       *(longlong *)(lVar4 - (uVar37 ^ 0xfe75e440)) + (CONCAT44(uVar9,uVar7) ^ 0x2a40e450fe75efa1) ^
       uVar31;
  uVar32 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xfe75e8a8)) ^ uVar31) =
       *(byte *)(lVar4 - ((ulonglong)uVar16 ^ 0xfe75e2f1)) ^ bVar15 ^ (byte)DAT_1826717c0;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xd60) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x2a40efc8)) +
       ((CONCAT44(uVar16,uVar25) ^ 0xfe75eff8118e1204) +
       (CONCAT44(uVar7,uVar16) ^ 0xfe75eff8fe75eff8) * 0xc) * 8 ^ uVar32;
  uVar11 = DAT_18267179c;
  uVar31 = (ulonglong)DAT_18267179c;
  uVar27 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(uint *)(lVar4 - (uVar26 ^ 0xfffffd8b)) = (uVar22 ^ 0x2cd06e48) + 0xda26b816;
  uVar10 = DAT_182671748;
  *(ulonglong *)(lVar4 + -0x110) =
       *(ulonglong *)(uVar32 ^ *(ulonglong *)(lVar4 + -0xd60)) ^ uVar27 ^ uVar18;
  uVar29 = DAT_1826716d4;
  uVar32 = (ulonglong)DAT_1826718c4;
  uVar42 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0xa88) =
       ((ulonglong)(uVar11 >> 0x10) | uVar31 << 0x10) ^
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a0 ^ 0x2a40e540)) >> 0x10 ^
       CONCAT44(uVar10,uVar10);
  uVar14 = DAT_1826718ac;
  uVar33 = (ulonglong)DAT_1826718ac;
  *(byte *)(lVar4 + -0x3f1) = *(byte *)(lVar4 - (uVar40 ^ 0xfe75e570)) ^ (byte)uVar10 ^ (byte)uVar29
  ;
  *(ulonglong *)(lVar4 + -0x3e0) = (CONCAT44(uVar16,uVar6) ^ 0xfe75eff8ffffffa5) + *plVar46 ^ uVar32
  ;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar39 ^ 0x8504b00)) ^ uVar32) =
       *(byte *)(lVar4 - (uVar40 ^ 0xfe75ec09)) ^ (byte)DAT_1826717c0 ^ (byte)uVar29;
  *(ulonglong *)(lVar4 + -0x128) =
       *(longlong *)(lVar4 + -0xb98) +
       ((CONCAT44(uVar6,uVar45) ^ 0xffffffff69da713c) +
       (CONCAT44(uVar22,uVar25) ^ 0xaf480a97118e120f) * 0xc) * 8 ^ uVar42;
  uVar31 = *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar23 ^ 0x69da701f)) ^ uVar42) ^
           CONCAT44(uVar14,uVar14) ^ uVar18;
  *(ulonglong *)(lVar4 + -0x318) = uVar31;
  uVar29 = DAT_18267180c;
  lVar19 = DAT_182671560;
  uVar32 = (ulonglong)DAT_18267187c;
  uVar42 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x9db9f378)) =
       ((ulonglong)(uVar14 >> 0x18) | uVar33 << 8) ^ uVar31 >> 0x18 ^ uVar42;
  bVar15 = *(byte *)(lVar19 - (uVar37 ^ 0xfe75e408)) ^ bVar15 ^ (byte)uVar29;
  local_res18 = (byte)uVar6;
  *(ulonglong *)(lVar19 + -0x460) =
       (CONCAT44(uVar9,uVar30) ^ 0x2a40e450085048bb) + *(longlong *)(lVar19 + -3000) ^ uVar32;
  *(byte *)(lVar19 + -0x54a) = bVar15;
  *(ulonglong *)(lVar19 + -0x898) =
       (CONCAT44(uVar25,uVar24) ^ 0x4b7f2311efe7afdc) >> ((local_res18 ^ 0xc1) & 0x3f);
  uVar33 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(byte *)(*(ulonglong *)(lVar19 - (uVar36 ^ 0xe0485468)) ^ uVar32) =
       (byte)DAT_1826717c0 ^ (byte)uVar29 ^ bVar15;
  uVar42 = uVar42 ^ *(ulonglong *)(lVar19 + -0xbf0);
  *(ulonglong *)(lVar19 + -0x690) =
       (CONCAT44(uVar7,uVar22) ^ 0xfe75eff8af480a97) * 0x60 +
       *(longlong *)(lVar19 - (uVar26 ^ 0xfffff467)) + 0x58 ^ uVar33;
  uVar12 = DAT_18267186c;
  uVar8 = DAT_1826715d0;
  lVar4 = DAT_182671560;
  puVar43 = (ulonglong *)(lVar19 + -0x628);
  uVar31 = *(ulonglong *)(DAT_182671560 + -0x110);
  uVar32 = (ulonglong)DAT_1826715a0;
  *puVar43 = uVar42 >> ((byte)uVar42 & 0x3f);
  uVar42 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x670) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar32 ^ 0x2a40e2c0)) ^ uVar33) ^ uVar18 ^ uVar42;
  uVar13 = DAT_1826718b0;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xe0485310)) = (uVar27 ^ uVar31) + 0x85d7c698a6628bef;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x8504078)) =
       (*(ulonglong *)(lVar4 + -0x670) ^ uVar42) >> ((local_res18 ^ 0xdf) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  bVar47 = (byte)uVar13;
  *(byte *)(lVar4 + -0x42a) = *(byte *)(lVar4 - (uVar37 ^ 0xfe75e760)) ^ (byte)uVar12 ^ bVar47;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x8504ec8)) =
       (CONCAT44(uVar9,uVar7) ^ 0xa8317a82048fc870) <<
       (((byte)uVar11 ^ *(byte *)(lVar4 + -0x110)) & 0x3f);
  uVar30 = DAT_1826716d8;
  pbVar21 = (byte *)(*(longlong *)(lVar4 - (uVar23 ^ 0x69da7a8f)) +
                    (CONCAT44(uVar25,uVar20) ^ 0x118e120f9db9f8d4));
  bVar15 = (byte)DAT_1826717c0;
  uVar33 = (ulonglong)DAT_1826716d8;
  *(ulonglong *)(lVar4 + -0x150) = (ulonglong)pbVar21 ^ uVar44;
  *pbVar21 = bVar15 ^ bVar47 ^ *(byte *)(lVar4 + -0x42a);
  uVar29 = DAT_1826717c0;
  uVar32 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar27 = CONCAT44(uVar30,uVar30);
  *(ulonglong *)(lVar4 + -0xd60) =
       (CONCAT44(uVar35,uVar24) ^ 0xe0485008ffffffff) * 0x60 + *(longlong *)(lVar4 + -0xb98) + 0x58
       ^ uVar32;
  bVar15 = (byte)_DAT_1826716c0;
  uVar31 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar32 = *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar41 ^ 0xfffff29f)) ^ uVar32) ^ uVar18 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x318) = uVar32;
  uVar31 = (uVar32 >> 0x20 ^ uVar33) >> 8 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x898) = uVar31;
  uVar32 = (ulonglong)DAT_1826716ec;
  *(byte *)(lVar4 - (uVar23 ^ 0x69da72f6)) = bVar15 ^ (byte)uVar31 ^ (byte)DAT_182671750;
  bVar15 = *(byte *)(lVar4 + -0x3c1) ^ (byte)uVar29 ^ (byte)DAT_182671750;
  *(ulonglong *)(lVar4 + -0x940) =
       (CONCAT44(uVar22,uVar16) ^ 0xaf480a97fe75efa5) + *(longlong *)(lVar4 + -3000) ^ uVar32;
  uVar31 = CONCAT44(DAT_182671848,DAT_182671848);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar38 ^ 0x9db9f1c8)) ^ uVar32) = bVar15;
  uVar8 = DAT_18267163c;
  lVar19 = DAT_182671560;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x85049c8)) =
       *(longlong *)(lVar4 + -0xb98) + 0x58 + (CONCAT44(uVar45,uVar22) ^ 0x69da7137af480a97) * 0x60
       ^ uVar31;
  uVar38 = CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar32 = (ulonglong)DAT_182671788;
  *(ulonglong *)(lVar4 + -0x110) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x128) ^ uVar31) ^ uVar18 ^ uVar38;
  uVar45 = DAT_1826715a0;
  lVar5 = DAT_182671560;
  bVar15 = (byte)uVar8 ^ (byte)DAT_1826717e4;
  uVar31 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0xfe75eee8)) ^ uVar38) >>
           (((byte)DAT_1826715a0 ^ 0x60) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  *puVar43 = uVar31;
  *(byte *)(lVar5 + -0xd62) = bVar15 ^ (byte)uVar31;
  uVar30 = DAT_1826715a4;
  uVar8 = DAT_182671580;
  uVar38 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar45 ^ 0x2a40e720)) =
       (CONCAT44(uVar20,uVar35) ^ 0x9db9f888e0485056) + *(longlong *)(lVar5 + -3000) ^ uVar32;
  *(byte *)(*(ulonglong *)(lVar19 + -0x370) ^ uVar32) =
       *(byte *)(lVar19 - (uVar26 ^ 0xfffff29d)) ^ (byte)uVar29 ^ (byte)DAT_1826717e4;
  uVar29 = DAT_1826715ac;
  uVar45 = DAT_182671588;
  uVar32 = (ulonglong)DAT_182671584;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar19 - ((ulonglong)DAT_182671588 ^ 0x2dfbe051)) +
           ((CONCAT44(uVar8,uVar20) ^ 0xee71edf09db9f883) +
           (CONCAT44(uVar30,uVar7) ^ 0x9041f341fe75eff8) * 0xc) * 8);
  *(ulonglong *)(lVar19 + -0x690) = (ulonglong)puVar2 ^ CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar19 + -0x898) =
       CONCAT44(uVar9,uVar29) ^ 0xb34c8823119f2c72 |
       CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar19 + -0xa88);
  lVar4 = DAT_182671560;
  uVar18 = *puVar2 ^ uVar18;
  *(ulonglong *)(lVar19 + -0x110) = uVar18 ^ CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar26 = (ulonglong)DAT_1826716f4;
  bVar15 = bVar47 ^ (byte)DAT_1826717f0;
  *puVar43 = uVar18 >> ((byte)uVar7 & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(byte *)(lVar4 + -0x8d) = bVar15 ^ *(byte *)puVar43;
  lVar4 = DAT_182671560;
  bVar15 = (byte)DAT_1826717c0 ^ (byte)DAT_1826717f0;
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x69da76ff)) =
       *(longlong *)(DAT_182671560 - (uVar41 ^ 0xfffff447)) +
       (CONCAT44(uVar25,uVar22) ^ 0x118e120faf480ac8) ^ uVar26;
  uVar30 = DAT_18267158c;
  puVar2 = (ulonglong *)(lVar4 + -0xd00);
  uVar31 = (ulonglong)DAT_18267158c;
  *(byte *)(*(ulonglong *)(lVar4 + -0x7c8) ^ uVar26) = bVar15 ^ *(byte *)(lVar4 + -0x8d);
  puVar34 = (uint *)(*(longlong *)(lVar4 + 8) + (CONCAT44(uVar9,uVar24) ^ 0x2a40e450ffffff67));
  *(uint **)(lVar4 + -0x8f8) = puVar34;
  uVar31 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x91ef5947));
  *puVar2 = (ulonglong)puVar34;
  *(ulonglong *)(lVar4 + -0xa88) = uVar31 ^ uVar27 | CONCAT44(uVar22,uVar30) ^ 0x8f709d56db50578;
  uVar18 = (ulonglong)DAT_1826718c8;
  *(uint *)(lVar4 + -0x328) = *puVar34 ^ DAT_182671824;
  uVar23 = CONCAT44(uVar6,uVar29);
  lVar19 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_18267156c ^ 0xf128ea1)) ^
           (ulonglong)DAT_18267180c) + (CONCAT44(uVar6,uVar8) ^ 0xffffffffee71edf0) * 0x60;
  *(longlong *)(lVar4 + -0x888) = lVar19;
  *(longlong *)(lVar4 - (uVar37 ^ 0xfe75eca8)) = lVar19;
  uVar31 = *(ulonglong *)(lVar4 + -0x350);
  puVar1 = (ulonglong *)(lVar4 + -0x9c8);
  *puVar1 = uVar31;
  *(ulonglong *)(lVar4 + -0x898) =
       (CONCAT44(uVar7,DAT_18267157c) ^ 0x3ca42bcb829ba7e1) - (*puVar43 ^ CONCAT44(uVar13,uVar13));
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x85045e0)) = uVar18 ^ uVar31;
  uVar9 = DAT_1826716c8;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xe0485118)) =
       (CONCAT44(uVar16,DAT_1826715a0) ^ 0xb6d35716514610e6) - (uVar23 ^ 0x70c49fb1e36e6b12);
  uVar7 = _DAT_1826715f0;
  uVar20 = *(uint *)(*puVar2 ^ uVar18) ^ _DAT_1826715f0 ^ DAT_1826717c0;
  *(uint *)(lVar4 + -0x968) = uVar20;
  uVar30 = DAT_182671624;
  uVar29 = (*(uint *)(lVar4 - (uVar38 ^ 0x9041f069)) ^ DAT_182671824) -
           (*(uint *)(lVar4 - (uVar40 ^ 0xfe75e690)) ^ uVar7);
  uVar31 = (ulonglong)DAT_1826715b0;
  *(uint *)(lVar4 + -0x844) = uVar29 ^ uVar9;
  puVar34 = (uint *)(lVar4 + -0x374);
  uVar20 = (uVar29 | uVar7 ^ uVar20) ^ DAT_1826716d4;
  *(uint *)(lVar4 + -0x874) = uVar20;
  uVar20 = (int)(uVar20 ^ DAT_1826716d4) >> 0x1f;
  *puVar34 = uVar20 ^ uVar30;
  *(uint *)(lVar4 - (uVar31 ^ 0x2b4ce518)) = uVar20 ^ uVar7 ^ DAT_1826715a0 ^ 0xd5bf1baf;
  uVar25 = DAT_1826715ac - DAT_182671568;
  uVar20 = (uVar45 ^ 0xd2041436) - (*(uint *)(lVar4 - (uVar32 ^ 0x962587a0)) ^ uVar7);
  uVar45 = uVar20 ^ DAT_1826718a0;
  DAT_18267156c = uVar25;
  *(ulonglong *)(lVar4 + -0x318) =
       (*(ulonglong *)(lVar4 + -0x670) ^ uVar42) << ((*(byte *)puVar43 ^ bVar47) & 0x3f);
  *(uint *)(lVar4 + -0x910) = uVar45;
  uVar45 = DAT_182671638;
  uVar20 = (int)uVar20 >> 0x1f;
  *(uint *)(lVar4 + -0x754) = uVar20 ^ DAT_182671638;
  uVar29 = DAT_18267170c;
  uVar38 = CONCAT44(DAT_1826715ac,uVar25);
  *(uint *)(lVar4 - (uVar41 ^ 0xffffff73)) =
       uVar20 & (*(uint *)(lVar4 + -0x344) ^ uVar7) ^ DAT_1826717f4;
  *(ulonglong *)(lVar4 + -0xa88) =
       (uVar38 ^ 0x4c57a92c492927d6) - (CONCAT44(uVar25,uVar25) ^ 0xa951158828edf131);
  uVar45 = *(uint *)(lVar4 - (uVar41 ^ 0xfffff8ab)) ^ ~uVar29 ^ uVar45;
  *(uint *)(lVar4 + -0x678) = uVar45;
  uVar20 = DAT_182671708;
  uVar7 = _DAT_1826715f0;
  uVar30 = uVar29 ^ uVar45 | *puVar34 ^ uVar30;
  *(uint *)(lVar4 + -0x774) = uVar30 ^ DAT_182671708;
  uVar30 = uVar30 & (uVar25 ^ 0xcbe6fbd);
  *(uint *)(lVar4 + -0x47c) = uVar30 ^ uVar9;
  uVar31 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar4 + -0x110) = (uVar38 ^ 0xac7e624d49f75f41) + 0xc2d733669594003a;
  uVar45 = (*(uint *)(lVar4 + -0x8c) ^ DAT_1826717f4) & (uVar7 ^ *(uint *)(lVar4 + -0x968)) ^
           DAT_1826716d4;
  *(uint *)(lVar4 + -0x27c) = uVar45;
  *(uint *)(lVar4 + -0x3d4) = (uVar30 | uVar45 ^ DAT_1826716d4) ^ DAT_1826715c8;
  *(uint *)(lVar4 - (uVar31 ^ 0xf3419235)) =
       (*(uint *)(lVar4 - (uVar31 ^ 0xf3419735)) ^ uVar20) & (uVar25 ^ 0xf3419047) ^ DAT_182671644;
  *(undefined4 *)(lVar4 + -0x844) = DAT_18267189c;
  *(uint *)(lVar4 + -0x874) = *(uint *)(lVar4 + -0x274) ^ DAT_1826716ac ^ DAT_182671644;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xfffffcaf)) = (uVar23 ^ 0xfffffffff3419040) * 0x10 + *puVar1;
  uVar30 = DAT_1826715fc ^ DAT_1826716ac ^ *(uint *)(lVar4 + -0x874);
  puVar17 = (ulonglong *)(lVar4 - ((ulonglong)uVar25 ^ 0xf3419312));
  uVar45 = *(uint *)(lVar4 + -0x3d4) ^ DAT_1826715c8 ^ uVar7;
  uVar31 = *puVar17;
  *puVar1 = uVar31;
  *(uint *)(lVar4 + -0x344) = uVar45;
  *puVar43 = 0xe800000000000000;
  *(uint *)(lVar4 + -0x910) = uVar30;
  *(ulonglong *)(lVar4 + -0x350) = uVar31;
  *(uint *)(lVar4 + -0x754) = DAT_182671674 ^ DAT_1826715fc ^ uVar30;
  *puVar34 = DAT_18267177c ^ uVar45 ^ uVar7;
  uVar23 = (ulonglong)DAT_1826716f8;
  uVar31 = *puVar17;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar3 ^ uVar24) * 4) = uVar28;
  *puVar2 = (CONCAT44(uVar25,uVar6) ^ 0xf3419042ffffffff) * 0x10 + uVar31 ^ uVar23;
  return;
}



############ FUN_ 180f03b90 size=5599 ############

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

void FUN_180f03b90(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  byte local_f0;
  
  uVar5 = DAT_1826715b0;
  uVar6 = DAT_18267159c;
  uVar9 = DAT_18267158c;
  lVar7 = DAT_182671560;
  uVar28 = (ulonglong)DAT_18267159c;
  uVar48 = (ulonglong)DAT_1826715b0;
  uVar27 = (ulonglong)DAT_18267158c;
  uVar50 = DAT_18267158c * DAT_182671588;
  uVar17 = DAT_18267159c + DAT_1826715b0;
  uVar31 = *(uint *)(&DAT_182611e78 + DAT_1826719c4) ^ DAT_1826715b0;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_1826719c4) ^ DAT_18267159c;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x688);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x6d0);
  uVar52 = CONCAT44(DAT_182671678,DAT_182671678);
  DAT_182671568 = uVar17;
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (uVar52 ^ *(ulonglong *)(DAT_182671560 + -0x8a8)) -
       (CONCAT44(uVar17,DAT_182671588) ^ 0x893d935c481f3b79);
  uVar14 = DAT_182671880;
  uVar4 = DAT_1826715bc;
  uVar19 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar29 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar43 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar7 + -0x670) =
       (uVar19 ^ *(ulonglong *)(lVar7 + -0x9f8) | uVar29 ^ *puVar2) ^ uVar43;
  uVar25 = CONCAT44(uVar4,uVar4);
  uVar20 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar32 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  puVar44 = (ulonglong *)(lVar7 - ((ulonglong)uVar50 ^ 0xdd17f7d4));
  *puVar44 = (uVar20 ^ *(ulonglong *)(lVar7 + -0x548)) - (uVar25 ^ *puVar1) ^ uVar32;
  *(longlong *)(lVar7 + -0x9f8) =
       0x6c5162a7f772f6c2 << ((*(byte *)(lVar7 - (uVar27 ^ 0xaff7f92f)) ^ (byte)uVar14) & 0x3f);
  puVar26 = (ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0xaff7fd8f));
  uVar30 = CONCAT44(DAT_182671710,DAT_182671710);
  *puVar1 = (uVar32 ^ *puVar26) -
            (*(ulonglong *)(lVar7 - ((ulonglong)DAT_182671588 ^ 0x10080c2c)) ^ uVar43) ^ uVar30;
  uVar4 = DAT_1826717f4;
  uVar21 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar22 = -(*(ulonglong *)(lVar7 + -0x240) ^ uVar21) - 0xd;
  *(ulonglong *)(lVar7 + -0x548) = uVar22 ^ uVar32;
  uVar14 = DAT_1826718cc;
  uVar40 = CONCAT44(uVar4,uVar4);
  uVar22 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar5 ^ 0x23cdf2f1)) ^ uVar43) + uVar22 ^ uVar40;
  *(ulonglong *)(lVar7 + -0x9f8) = uVar22;
  uVar3 = DAT_182671568;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar22 = uVar32 ^ uVar40 ^ uVar52 ^ *(ulonglong *)(lVar7 + -0x8a8) ^ uVar22;
  *puVar2 = uVar22;
  uVar41 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *puVar44 = (uVar32 ^ uVar22) >> (((byte)uVar3 ^ 5) & 0x3f) ^ uVar41;
  lVar7 = DAT_182671560;
  puVar44 = (ulonglong *)(DAT_182671560 + -0x270);
  uVar22 = (*(ulonglong *)(DAT_182671560 - (uVar28 ^ 0xfffff9af)) ^ uVar32) <<
           (((byte)uVar50 ^ 0x9f) & 0x3f);
  uVar32 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar22 ^ CONCAT44(DAT_182671670,DAT_182671670);
  uVar14 = DAT_182671728;
  uVar3 = DAT_182671588;
  uVar22 = uVar22 | uVar41 ^ *puVar44;
  *(ulonglong *)(lVar7 + -0x548) = uVar22 ^ uVar32;
  uVar4 = DAT_1826715f8;
  uVar36 = CONCAT44(uVar14,uVar14);
  puVar23 = (ulonglong *)(lVar7 - ((ulonglong)uVar3 ^ 0x10080c8c));
  *puVar23 = (uVar52 ^ *(ulonglong *)(lVar7 + -0x8a8)) - uVar22 ^ uVar36;
  uVar11 = DAT_1826715a4;
  uVar37 = CONCAT44(uVar4,uVar4);
  uVar41 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  puVar33 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671568 ^ 0x23cdf270));
  *puVar33 = *(ulonglong *)(lVar7 - ((ulonglong)uVar6 ^ 0xfffff9f7)) ^ uVar41 ^ uVar37 ^ uVar30 ^
             *(ulonglong *)(lVar7 + -0x510);
  uVar10 = DAT_18267157c;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xf5a3bd8f)) =
       (uVar37 ^ *(ulonglong *)(lVar7 + -0x670)) >> (((byte)DAT_18267157c ^ 0x25) & 0x3f) ^ uVar43;
  uVar4 = DAT_1826717ac;
  uVar18 = DAT_1826715a0;
  uVar45 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar7 + -0x510) =
       (CONCAT44(DAT_1826715a0,DAT_182671584) ^ 0xaa998369481234af) >>
       (((byte)DAT_1826715a0 ^ 0x52) & 0x3f);
  uVar22 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar7 + -0x670) =
       ((uVar37 ^ *(ulonglong *)(lVar7 + -0x670)) << (((byte)uVar3 ^ 0x47) & 0x3f) |
       uVar43 ^ *(ulonglong *)(lVar7 + -0x270)) ^ uVar22;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671570 ^ 0xf48121bd)) =
       (CONCAT44(uVar18,uVar50) ^ 0xe972af9ec1cf218e) - (uVar40 ^ *(ulonglong *)(lVar7 + -0x9f8));
  uVar46 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar7 + -0x8a8) =
       (uVar30 ^ *puVar1) - (uVar22 ^ *(ulonglong *)(lVar7 + -0x670)) ^ uVar46;
  uVar4 = DAT_1826715a8;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       CONCAT44(DAT_1826715a8,uVar5) ^ uVar36 ^ *puVar2 ^ 0x406687f0909d0308;
  uVar38 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(lVar7 + -0x270) =
       uVar38 ^ uVar22 ^ uVar36 ^ *(ulonglong *)(lVar7 + -0x670) ^ *puVar2;
  lVar7 = DAT_182671560;
  uVar34 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar22 = (ulonglong)DAT_182671584;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671588 ^ 0x10080cd4)) =
       (uVar38 ^ *puVar26) >> (((byte)DAT_182671574 ^ 0xdb) & 0x3f) ^ uVar34;
  uVar30 = CONCAT44(DAT_182671730,DAT_182671730);
  uVar37 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar7 + -0x9f8) =
       (*(ulonglong *)(lVar7 - (uVar22 ^ 0xf21d4870)) ^ uVar38) <<
       (((byte)DAT_182671570 ^ 0xe4) & 0x3f) ^ uVar30;
  uVar14 = _DAT_18267161c;
  uVar32 = uVar46 ^ uVar32 ^ *(ulonglong *)(lVar7 + -0x8a8) ^ *(ulonglong *)(lVar7 + -0x548);
  uVar22 = *(ulonglong *)(lVar7 - ((ulonglong)uVar50 ^ 0xdd17fc5c)) ^ uVar30 | uVar34 ^ *puVar1;
  *(ulonglong *)(lVar7 + -0x670) = uVar22 ^ uVar37;
  uVar3 = DAT_182671588;
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x270) = (uVar36 ^ *puVar2) - uVar22 ^ uVar42;
  uVar11 = DAT_182671594;
  uVar35 = (ulonglong)DAT_182671594;
  *puVar1 = uVar32 ^ CONCAT44(DAT_182671688,DAT_182671688);
  uVar12 = DAT_182671598;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar32 >> (((byte)uVar3 ^ 0x74) & 0x3f) ^ uVar21;
  uVar13 = DAT_1826715a4;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0x4d678a2f)) =
       uVar32 << (((byte)uVar12 ^ 0xbb) & 0x3f) ^ uVar46;
  lVar7 = DAT_182671560;
  puVar44 = (ulonglong *)(DAT_182671560 + -0x9f8);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (CONCAT44(uVar13,uVar5) ^ 0x20fc51fd77021021) >>
       ((byte)*(undefined8 *)(DAT_182671560 + -0x510) & 0x3f);
  uVar49 = CONCAT44(DAT_182671768,DAT_182671768);
  uVar22 = *(ulonglong *)(lVar7 + -0x8a8);
  uVar32 = uVar21 ^ *puVar44 | uVar46 ^ *puVar2;
  *puVar1 = uVar32 ^ uVar49;
  uVar30 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_18267157c ^ 0xf21d4f10)) =
       (uVar46 ^ uVar22) - uVar32 ^ uVar30;
  puVar26 = (ulonglong *)(lVar7 - (uVar35 ^ 0x4d678a77));
  *(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0xfe76fb37)) =
       uVar25 ^ *(ulonglong *)(lVar7 + -0x270) ^ uVar49 ^ uVar42 ^ *puVar26;
  uVar51 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar32 = (uVar25 ^ *(ulonglong *)(lVar7 + -0x548)) >> (((byte)uVar12 ^ 0x97) & 0x3f);
  local_f0 = (byte)uVar9;
  *(ulonglong *)(lVar7 + -0x9f8) = uVar32 ^ CONCAT44(DAT_1826717a0,DAT_1826717a0);
  lVar8 = DAT_182671560;
  uVar22 = *(ulonglong *)(lVar7 + -0x270);
  *puVar2 = (uVar25 ^ *(ulonglong *)(lVar7 + -0x548)) << ((local_f0 ^ 0xf3) & 0x3f) ^ uVar51;
  puVar44 = (ulonglong *)(lVar7 - ((ulonglong)DAT_1826715a4 ^ 0xf5a3b92f));
  uVar24 = CONCAT44(DAT_182671640,DAT_182671640);
  uVar32 = uVar32 | *puVar44 ^ uVar51;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar32 ^ uVar24;
  *puVar1 = uVar32 | 0x36bd2a58d58b918e;
  uVar46 = (ulonglong)_DAT_182671868;
  uVar47 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar39 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_18267157c ^ 0xf21d4f48)) =
       (uVar22 ^ uVar42) - uVar32 ^ uVar47;
  *(ulonglong *)(lVar8 - (uVar27 ^ 0xaff7f607)) =
       *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671598 ^ 0xbffff0b3)) ^
       *(ulonglong *)(lVar8 + -0x670) ^ uVar39 ^ uVar30 ^ uVar37;
  uVar32 = CONCAT44(DAT_18267181c,DAT_18267181c);
  bVar16 = (byte)DAT_182671568;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671584 ^ 0xf21d4cd0)) =
       (*(ulonglong *)(lVar8 + -0x9f8) >> 0x20 ^ uVar46) >> 0x19 ^ uVar32;
  uVar14 = DAT_1826717d4;
  *puVar1 = (CONCAT44(uVar6,uVar4) ^ 0x42362ec4f202aa59) << ((bVar16 ^ 0x25) & 0x3f);
  uVar3 = DAT_182671598;
  uVar46 = CONCAT44(uVar14,uVar14);
  uVar37 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar8 + -0x270) =
       (*(ulonglong *)(lVar8 + -0x9f8) ^ uVar39) << (((byte)uVar50 ^ 0xa3) & 0x3f) ^ uVar46;
  puVar53 = (ulonglong *)(lVar8 - ((ulonglong)DAT_1826715a0 ^ 0xfe76f80f));
  *puVar53 = (CONCAT44(uVar9,uVar3) ^ 0xe2f6c149b046449d) -
             (CONCAT44(uVar50,DAT_182671570) ^ 0xe2a43c4d167314af);
  uVar22 = *(ulonglong *)(lVar8 + -0x510);
  uVar32 = *(ulonglong *)(lVar8 - (uVar35 ^ 0x4d678e8f)) ^ uVar46 | *puVar23 ^ uVar32;
  uVar39 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *puVar1 = uVar32 ^ uVar41;
  uVar4 = DAT_182671790;
  *(ulonglong *)(lVar8 + -0x9f8) = (uVar22 ^ uVar30) - uVar32 ^ uVar39;
  uVar14 = DAT_1826717a4;
  uVar35 = CONCAT44(uVar4,uVar4);
  bVar16 = (byte)DAT_182671584;
  uVar32 = uVar32 ^ *(ulonglong *)(lVar8 + -0x548) ^ uVar35 ^ uVar47;
  *(ulonglong *)(lVar8 + -0x670) = uVar32;
  uVar3 = DAT_1826717f0;
  lVar7 = DAT_182671560;
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar41 = (ulonglong)DAT_1826717f0;
  *(ulonglong *)(lVar8 + -0x270) = (uVar32 ^ uVar35) >> ((bVar16 ^ 0xe) & 0x3f) ^ uVar22;
  uVar42 = (uVar32 ^ uVar35) << 0x32;
  uVar35 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *puVar2 = uVar42 ^ uVar35;
  uVar27 = CONCAT44(uVar3,uVar3);
  uVar32 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(lVar7 + -0x510) =
       (*(ulonglong *)(lVar7 - (uVar37 ^ 0xbffff7d3)) ^ uVar22 | uVar42) ^ uVar32;
  *puVar26 = (*(ulonglong *)(lVar7 + -0x548) ^ uVar47) - (*(ulonglong *)(lVar7 + -0x400) ^ uVar49) ^
             uVar38;
  uVar4 = DAT_182671844;
  *(ulonglong *)(lVar7 + -0x670) =
       (uVar38 ^ *puVar1) - (*(ulonglong *)(lVar7 + -0x510) ^ uVar32) ^ uVar29;
  uVar37 = CONCAT44(uVar4,uVar4);
  uVar22 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar7 + -0x270) =
       (*(ulonglong *)(lVar7 + -0xc08) ^ uVar27) + (*(ulonglong *)(lVar7 + -0x610) ^ uVar37) ^
       uVar22;
  uVar42 = CONCAT44(DAT_182671650,DAT_182671650);
  *puVar2 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715a4 ^ 0xf5a3baef)) ^ uVar32) -
            (*(ulonglong *)(lVar7 - (uVar28 ^ 0xfffffd0f)) ^ uVar22) ^ uVar42;
  uVar3 = DAT_1826715b4;
  uVar32 = CONCAT44(DAT_182671888,DAT_182671888);
  puVar23 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671580 ^ 0xddbb0848));
  *puVar23 = *(ulonglong *)(lVar7 + -0x8a8) ^ *(ulonglong *)(lVar7 + -0x9f8) ^ uVar32 ^ uVar39 ^
             uVar24;
  uVar22 = *(ulonglong *)(lVar7 + -0x548);
  *puVar1 = CONCAT44(DAT_18267156c,DAT_18267157c) ^ CONCAT44(uVar17,uVar5) ^ 0x5926a0e972265460;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar50 ^ 0xdd17f32c)) =
       ((*(ulonglong *)(lVar7 + -0x548) ^ uVar32) << (((byte)uVar3 ^ 0x31) & 0x3f) |
       (uVar22 ^ uVar32) >> (((byte)DAT_1826715a4 ^ 0xef) & 0x3f)) ^ uVar20;
  uVar11 = DAT_1826715ac;
  uVar3 = DAT_182671598;
  uVar38 = (ulonglong)DAT_182671598;
  uVar24 = (ulonglong)DAT_1826715ac;
  *puVar23 = (*(ulonglong *)(lVar7 + -0x9f8) ^ uVar39) - (*(ulonglong *)(lVar7 + -0x1d8) ^ uVar51) ^
             uVar45;
  uVar4 = DAT_1826715c8;
  *(ulonglong *)(lVar7 + -0x510) =
       (uVar45 ^ *(ulonglong *)(lVar7 + -0x548)) - (uVar20 ^ *puVar1) ^ uVar46;
  uVar14 = DAT_18267171c;
  uVar22 = (CONCAT44(uVar3,uVar50) ^ 0x40000a5c22e80a50) - (*(ulonglong *)(lVar7 + -0x2a0) ^ uVar30)
  ;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar22 ^ CONCAT44(uVar4,uVar4);
  uVar39 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 - (uVar48 ^ 0x23cdf559)) = uVar22 + (uVar20 ^ *puVar1) ^ uVar39;
  uVar12 = DAT_182671584;
  uVar45 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_18267156c ^ 0x738dfe79)) =
       *(ulonglong *)(lVar7 - (uVar24 ^ 0xc07b2927)) ^ uVar29 ^ *puVar53 ^ uVar39 ^ uVar27;
  uVar48 = CONCAT44(DAT_18267177c,DAT_18267177c);
  uVar32 = CONCAT44(DAT_182671614,DAT_182671614);
  uVar22 = (*(ulonglong *)(lVar7 + -0x9f8) ^ uVar27) << ((local_f0 ^ 0xdf) & 0x3f) |
           *(ulonglong *)(lVar7 + -0x9f8) >> 0x20 ^ uVar48 ^ uVar41 ^ uVar48;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar22 ^ uVar35;
  uVar4 = DAT_18267166c;
  uVar9 = DAT_18267157c;
  uVar27 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar7 + -0x9f8) = (uVar29 ^ *(ulonglong *)(lVar7 + -0x670)) - uVar22 ^ uVar30;
  uVar28 = CONCAT44(uVar4,uVar4);
  uVar22 = (ulonglong)DAT_18267169c;
  uVar41 = uVar19 ^ *(ulonglong *)(lVar7 + -0x510) ^ uVar42 ^ *puVar2 ^ uVar46;
  *(ulonglong *)(lVar7 + -0x548) = uVar41;
  *puVar1 = uVar41 >> 0x20 ^ uVar22 ^ uVar28;
  *puVar33 = **(ulonglong **)(lVar7 - ((ulonglong)uVar11 ^ 0xc07b2c5f));
  *puVar2 = (uVar19 ^ *(ulonglong *)(lVar7 + -0x548)) << 0x20 ^ uVar52;
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0xf21d4e7c)) = *(uint *)(lVar7 + -0x774) | 0x166f564c;
  uVar22 = *(ulonglong *)(lVar7 - (uVar38 ^ 0xbffff373)) ^ uVar52 | *puVar1 ^ uVar28;
  *(ulonglong *)(lVar7 + -0x670) = uVar22 ^ uVar32;
  uVar6 = DAT_1826715a4;
  *(ulonglong *)(lVar7 + -0x548) =
       (*(ulonglong *)(lVar7 - (uVar27 ^ 0x10080f4c)) ^ uVar46) - uVar22 ^ uVar28;
  uVar11 = DAT_182671580;
  uVar3 = DAT_182671570;
  uVar18 = uVar6 & 7;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      uVar5 = DAT_18267157c;
      if (uVar18 == 0) {
        uVar5 = uVar6;
      }
      uVar22 = (ulonglong)uVar5;
    }
    else {
      uVar6 = DAT_1826715b4;
      if (uVar18 < 3) {
        uVar6 = DAT_182671568;
      }
      uVar22 = (ulonglong)uVar6;
    }
  }
  else if (uVar18 < 6) {
    uVar6 = DAT_182671588;
    if (uVar18 < 5) {
      uVar6 = DAT_182671584;
    }
    uVar22 = (ulonglong)uVar6;
  }
  else {
    uVar22 = (ulonglong)DAT_182671580;
    if (uVar18 < 7) {
      uVar22 = (ulonglong)DAT_1826715ac;
    }
  }
  DAT_18267156c = (uint)uVar22;
  uVar32 = *(ulonglong *)(lVar7 - (uVar22 ^ 0xddbb0b70)) ^
           *(ulonglong *)(lVar7 - (uVar24 ^ 0xc07b2107)) ^ uVar32 ^ uVar42 ^ uVar30;
  uVar41 = CONCAT44(DAT_182671608,DAT_182671608);
  *puVar2 = uVar32;
  uVar19 = (uVar42 ^ *puVar44) >> (((byte)uVar9 ^ 0x3a) & 0x3f);
  *puVar1 = uVar19 ^ uVar41;
  uVar6 = DAT_1826715b4;
  uVar9 = DAT_182671568;
  *(ulonglong *)(lVar7 + -0x510) =
       (*(ulonglong *)(lVar7 - (uVar45 ^ 0xf21d4bd8)) ^ uVar39) +
       (CONCAT44(uVar3,DAT_182671568) ^ 0x3864a52c053f585b);
  *(ulonglong *)(lVar7 + -0x670) = (uVar42 ^ uVar32) << (((byte)uVar6 ^ 7) & 0x3f) ^ uVar48;
  *(ulonglong *)(lVar7 + -0x1d8) =
       CONCAT44(uVar13,uVar9) ^ CONCAT44(uVar10,uVar6) ^ 0x61cd53f13d07a5f3;
  uVar29 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar19 = *(ulonglong *)(lVar7 - (uVar45 ^ 0xf21d4c70)) ^ uVar48 | uVar19;
  *(ulonglong *)(lVar7 + -0x510) = uVar19 ^ uVar29;
  uVar3 = *(uint *)(lVar7 + -0x968);
  uVar24 = CONCAT44(DAT_182671704,DAT_182671704);
  *puVar2 = (*(ulonglong *)(lVar7 + -0x9f8) ^ uVar30) - uVar19 ^ uVar24;
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x23cdf374)) =
       uVar3 >> ((byte)*(undefined4 *)(lVar7 - (uVar27 ^ 0x10080ad0)) & 0x1f);
  uVar19 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar35 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715ac ^ 0xc07b2db7)) ^
           *(ulonglong *)(lVar7 + -0x8a8) ^ uVar19 ^ uVar28 ^ uVar35;
  *(ulonglong *)(lVar7 + -0x1d8) = uVar35;
  uVar4 = *(undefined4 *)(lVar7 + -0x47c);
  *puVar1 = (uVar35 ^ uVar19) >> (((byte)uVar22 ^ 0x16) & 0x3f) ^ uVar43;
  *(int *)(lVar7 - ((ulonglong)DAT_1826715a4 ^ 0xf5a3bf73)) = -0x30f41851 << ((byte)uVar4 & 0x1f);
  uVar4 = DAT_182671770;
  DAT_182671590 =
       (DAT_182671574 << 0x10 | DAT_182671574 & 0xff00) << 8 | DAT_182671574 >> 8 & 0xff00 |
       DAT_182671574 >> 0x18;
  uVar35 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar7 + -0x670) =
       (*(ulonglong *)(lVar7 + -0x1d8) ^ uVar19) << (((byte)DAT_182671574 ^ 0xe6) & 0x3f) ^ uVar34;
  uVar14 = DAT_18267186c;
  uVar41 = CONCAT44(uVar4,uVar4);
  uVar19 = *(ulonglong *)(lVar7 - (uVar35 ^ 0xccb0ee31)) ^ uVar34 | uVar43 ^ *puVar1;
  uVar32 = uVar19 ^ uVar41;
  *(ulonglong *)(lVar7 + -0x9f8) = uVar32;
  uVar32 = uVar20 ^ uVar41 ^ uVar32 ^ uVar24 ^ *puVar2;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x1d8) = uVar32;
  *(ulonglong *)(lVar7 + -0x8a8) = (*(ulonglong *)(lVar7 + -0x548) ^ uVar28) - uVar19 ^ uVar30;
  uVar19 = (ulonglong)DAT_1826715b4;
  *puVar1 = (uVar20 ^ uVar32) >> (((byte)DAT_182671574 ^ 0xe2) & 0x3f) ^ uVar25;
  uVar41 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar7 - (uVar19 ^ 0x32a28571)) =
       CONCAT44(uVar11,uVar12) ^ 0xf5deb38dbffdffe8 | 0x50dea38d9cadb7e0;
  uVar19 = *puVar1;
  uVar32 = *puVar2;
  uVar20 = (*(ulonglong *)(lVar7 - (uVar41 ^ 0x10080b84)) ^ uVar20) << 0x12;
  uVar41 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar7 + -0x548) = uVar20 ^ uVar40;
  *(ulonglong *)(lVar7 + -0x9f8) = (uVar20 | uVar25 ^ uVar19) ^ uVar41;
  *(ulonglong *)(lVar7 + -0x670) =
       (uVar24 ^ uVar32) - (*(ulonglong *)(lVar7 - (uVar35 ^ 0xccb0e1b9)) ^ uVar41) ^
       CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671580 ^ 0xddbb0cd8)) =
       *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715ac ^ 0xc07b2057)) ^ uVar36 ^ uVar30 ^
       *(ulonglong *)(lVar7 + -0x510) ^ uVar29;
  bVar16 = (byte)DAT_18267157c;
  *(ulonglong *)(lVar7 - (uVar22 ^ 0xddbb0b88)) =
       (*(ulonglong *)(lVar7 - ((ulonglong)DAT_182671568 ^ 0x23cdf5d8)) ^ uVar36) >>
       (((byte)DAT_182671568 ^ 0xc) & 0x3f) ^ uVar21;
  uVar22 = *puVar1;
  uVar19 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar7 + -0x548) =
       (uVar36 ^ *(ulonglong *)(lVar7 + -0x1d8)) << ((bVar16 ^ 0x34) & 0x3f) ^ uVar37;
  uVar19 = *(ulonglong *)(lVar7 - (uVar19 ^ 0x41e8b584));
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar31;
  *puVar2 = (uVar19 ^ uVar37 | uVar21 ^ uVar22) ^ uVar46;
  return;
}



############ FUN_ 180e49ed0 size=3128 ############

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

void FUN_180e49ed0(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  byte bVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  byte *pbVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  uint uVar32;
  
  uVar8 = DAT_1826715b4;
  uVar7 = DAT_1826715b0;
  uVar17 = DAT_182671594;
  uVar5 = DAT_18267158c;
  uVar4 = DAT_182671570;
  uVar23 = (ulonglong)DAT_18267158c;
  uVar22 = (ulonglong)DAT_182671570;
  uVar28 = (ulonglong)DAT_182671594;
  uVar16 = DAT_1826715b4 * DAT_1826715b0;
  uVar32 = DAT_182671570 | DAT_182671594;
  DAT_182671590 =
       (DAT_18267158c << 0x10 | DAT_18267158c & 0xff00) << 8 | DAT_18267158c >> 8 & 0xff00 |
       DAT_18267158c >> 0x18;
  uVar26 = *(uint *)(&DAT_182611e78 + DAT_182671a80) ^ DAT_1826715b0;
  uVar12 = *(uint *)(&DAT_182611e80 + DAT_182671a80) ^ DAT_1826715b4;
  uVar30 = (ulonglong)DAT_18267170c;
  uVar21 = (ulonglong)DAT_182671594;
  uVar29 = (ulonglong)DAT_182671590;
  uVar27 = CONCAT44(uVar16,DAT_18267158c);
  uVar14 = (ulonglong)DAT_1826717b8;
  uVar19 = CONCAT44(DAT_182671590,DAT_182671594);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x4d8);
  DAT_182671584 = uVar16;
  DAT_1826715ac = uVar32;
  *(ulonglong *)(DAT_182671560 + -0xa0) = uVar27 ^ 0x6d888d89b7891de0;
  lVar2 = DAT_182671560;
  bVar15 = (byte)DAT_182671844 ^ *(byte *)(DAT_182671560 + -0x41);
  *(ulonglong *)(DAT_182671560 + -0x4e8) = (*puVar1 ^ uVar14) + (uVar19 ^ 0xfccd318df4b6b607);
  lVar3 = DAT_182671560;
  bVar31 = (byte)uVar32;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x9805ad50)) ^ uVar14) = bVar15;
  *(byte *)(lVar3 + -0x41) = bVar31 ^ 0x4d;
  uVar13 = (ulonglong)uVar7;
  *(undefined8 *)(lVar3 - (uVar13 ^ 0x895eb6fe)) = *(undefined8 *)(lVar3 + -0x4e8);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar4 ^ 0x9805a1c8)) = *(undefined8 *)(lVar3 + -0x928);
  puVar25 = (ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x17f2c888));
  *puVar25 = *(ulonglong *)(lVar3 + -0x168) ^ uVar30;
  uVar24 = (ulonglong)DAT_182671728;
  *(uint *)(lVar3 - (uVar28 ^ 0xf4b6b47a)) = (uVar4 ^ 0x592025ca) + (DAT_18267158c ^ 0x4e943f39);
  lVar2 = DAT_182671560;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x840);
  *(ulonglong *)(DAT_182671560 + -0x870) = *puVar1 ^ uVar24;
  bVar15 = (byte)DAT_182671718;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xfccd3d3d)) = *puVar1 + (uVar27 ^ 0x29c4dab08d31cdfd);
  lVar2 = DAT_182671560;
  uVar14 = *(ulonglong *)(DAT_182671560 + -0xbc0);
  *(undefined1 *)(DAT_182671560 + -0xd71) =
       *(undefined1 *)(*(ulonglong *)(DAT_182671560 + -0x870) ^ uVar24);
  *(byte *)(lVar2 + -0x429) = (byte)uVar17 ^ 0x7c;
  *(undefined1 *)(uVar14 ^ DAT_1826717b0) = 0xd6;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0xa8) =
       (*puVar25 ^ uVar30) + (CONCAT44(uVar17,uVar32) ^ 0xf4b6b606fcb7bf8f);
  uVar28 = (ulonglong)DAT_1826717f0;
  *(byte *)(*(ulonglong *)(lVar2 + -0x580) ^ uVar30) = bVar15 ^ *(byte *)(lVar2 + -0xd71);
  uVar14 = *(ulonglong *)(lVar2 + -0xcb0);
  *(undefined1 *)(lVar2 + -0xd71) = 0xf6;
  uVar9 = DAT_182671888;
  uVar24 = *(ulonglong *)(lVar2 - (uVar29 ^ 0xfccd3125));
  *(ulonglong *)(lVar2 + -0xa50) = uVar24;
  *(ulonglong *)(lVar2 + -0x720) = uVar24 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x160) = uVar14;
  *(ulonglong *)(lVar2 + -0x80) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0x670)) + 0x2fd7b5a120b1b7a6;
  uVar24 = (ulonglong)_DAT_1826715dc;
  *(ulonglong *)(lVar3 + -0x488) = uVar24 ^ uVar14;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x8d31c964)) =
       (CONCAT44(uVar17,uVar17) ^ 0xf4b6b606f4b6b607) + uVar14;
  uVar27 = (ulonglong)DAT_182671778;
  *(byte *)(lVar3 + -0x801) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xc60) ^ (ulonglong)DAT_1826715c8) ^ bVar15;
  *(byte *)(lVar3 - (uVar23 ^ 0x8d31c5fd)) = (byte)uVar4 ^ 0xbc;
  *(byte *)(lVar3 - ((ulonglong)uVar32 ^ 0xfcb7be6f)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x488) ^ uVar24) ^ (byte)DAT_18267176c ^ bVar15;
  bVar15 = (byte)DAT_182671594;
  *(byte *)(lVar3 + -0x659) = bVar31 ^ 0x9e;
  *(byte *)(*(ulonglong *)(lVar3 + -0x2e0) ^ (ulonglong)DAT_182671790) = bVar15 ^ 0xb6;
  *(uint *)(lVar3 + -0x328) = (uVar7 ^ 0x80a99143) + *(int *)(lVar3 + -0x754);
  pbVar18 = (byte *)(*(ulonglong *)(lVar3 + -0x720) ^ uVar28);
  *(byte **)(lVar3 + -0xb28) = pbVar18 + (CONCAT44(uVar16,uVar8) ^ 0x29c4dab017f2cd09);
  bVar15 = *(byte *)(lVar3 + -0x1e1) ^ (byte)DAT_18267176c;
  *(ulonglong *)(lVar3 + -0x548) =
       (uVar19 ^ 0xec65d2032d7b0c71) << ((byte)*(undefined8 *)(lVar3 + -0x898) & 0x3f);
  *pbVar18 = bVar15;
  uVar10 = DAT_1826716f0;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar16 ^ 0x29c4db51)) = 0xd8;
  *(undefined8 *)(lVar3 + -0x6e8) = *(undefined8 *)(lVar3 + -0x498);
  uVar9 = DAT_1826715c0;
  *(ulonglong *)(lVar3 + -0x9d8) = *(ulonglong *)(lVar3 + -0xb28);
  uVar30 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0x830)) ^ uVar30;
  uVar6 = DAT_1826715a8;
  uVar17 = DAT_182671588;
  uVar19 = (ulonglong)DAT_1826715a8;
  uVar24 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0xfcb7b67e)) = uVar27 ^ *(ulonglong *)(lVar3 + -0xb28)
  ;
  uVar14 = (ulonglong)DAT_1826716c4;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xf4b6b4f6)) = *(ulonglong *)(lVar3 + -0x6e8) ^ uVar14;
  pbVar18 = (byte *)(*(ulonglong *)(lVar3 + -0x2f0) ^ uVar14);
  *(byte **)(lVar3 + -0xd8) = pbVar18 + (CONCAT44(uVar8,uVar4) ^ 0x17f2cd089805a989);
  bVar15 = (byte)DAT_1826717d0;
  bVar11 = *pbVar18 ^ (byte)DAT_1826717d0;
  *(byte *)(lVar3 + -0xcca) = (byte)uVar7 ^ 0x19;
  *(byte *)(lVar3 + -0xbf1) = bVar11 ^ (byte)DAT_182671718;
  uVar20 = uVar6 | uVar17;
  DAT_182671580 = uVar20;
  *(byte *)(*(ulonglong *)(lVar3 + -0x970) ^ (ulonglong)DAT_182671614) = (byte)uVar20 ^ 0xe3;
  lVar2 = DAT_182671560;
  pbVar18 = (byte *)(DAT_182671560 + -0xbf1);
  uVar14 = (ulonglong)DAT_182671778;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x9f0);
  *(ulonglong *)(DAT_182671560 + -0x590) =
       (*(ulonglong *)(DAT_182671560 - (uVar19 ^ 0xb389d4f4)) ^ uVar27) +
       (CONCAT44(uVar17,uVar20) ^ 0x57cf7feef7cfffef);
  *(byte *)(*puVar1 ^ uVar14) = bVar15 ^ *pbVar18;
  *(undefined1 *)(lVar2 + -0xbf1) = 0xfa;
  *(undefined8 *)(lVar2 - (uVar24 ^ 0x57cf7446)) = *(undefined8 *)(lVar2 + -0x590);
  lVar3 = DAT_182671560;
  *(byte *)(DAT_182671560 - (uVar24 ^ 0x57cf781f)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x620) ^ (ulonglong)DAT_182671878) ^ (byte)DAT_182671718;
  *(byte *)(lVar3 + -0x7f1) = (byte)uVar6 ^ 0x5e;
  *(undefined8 *)(lVar3 + -0xad8) = *(undefined8 *)(lVar3 + -0xd8);
  uVar19 = (ulonglong)DAT_182671640;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0xf7cff2b6)) =
       *(ulonglong *)(lVar3 + -0xba8) ^ uVar19;
  uVar14 = (ulonglong)DAT_182671830;
  *(ulonglong *)(DAT_182671560 + -0x490) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0xf7cff536)) ^ uVar14;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x29c4dc38)) =
       (CONCAT44(uVar20,uVar6) ^ 0xf4fb5d980c8eaa00) + (CONCAT44(uVar17,uVar6) ^ 0xc92b47d01f9cc1e5)
  ;
  *(ulonglong *)(lVar2 + -0x978) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0xfccd351d)) ^ uVar14) +
       (CONCAT44(uVar20,uVar4) ^ 0xf7cfffee9805a989);
  bVar15 = (byte)DAT_18267158c;
  *(byte *)(lVar2 + -0x5b9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x490) ^ uVar14) ^ (byte)DAT_1826715c4 ^
       (byte)DAT_182671718;
  *(byte *)(lVar2 + -0xc99) = bVar15 ^ 0x22;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x208) ^ (ulonglong)DAT_18267187c) = 0x9e;
  *(uint *)(lVar2 - (uVar22 ^ 0x9805aa40)) =
       0x7a2f216a >> ((byte)*(undefined4 *)(lVar2 - (uVar23 ^ 0x8d31ced4)) & 0x1f);
  *(uint *)(lVar2 + -0x3c8) = uVar32 ^ 0x1039d809;
  uVar4 = DAT_182671594;
  pbVar18 = (byte *)(*(ulonglong *)(lVar2 + -0xd58) ^ uVar19);
  uVar19 = (ulonglong)DAT_1826715f8;
  uVar14 = (ulonglong)DAT_1826715bc;
  *(byte **)(lVar2 + -0x1e0) = pbVar18 + (CONCAT44(uVar32,uVar32) ^ 0xfcb7bf8efcb7bf8f);
  *pbVar18 = *(byte *)(lVar2 + -0x5b9) ^ (byte)DAT_1826715c4;
  *(byte *)(lVar2 - (uVar24 ^ 0x57cf7a57)) = (byte)uVar4 ^ 0x4a;
  pbVar18 = *(byte **)(lVar2 + -0x978);
  *(ulonglong *)(lVar2 + -0x8c8) = *(ulonglong *)(lVar2 + -0x1e0);
  *(ulonglong *)(lVar2 + -0x138) = uVar19 ^ *(ulonglong *)(lVar2 + -0x1e0);
  *(byte **)(lVar2 + -0x250) = pbVar18;
  *(ulonglong *)(lVar2 + -0x3b8) = CONCAT44(uVar8,uVar7) ^ 0x91301827a1433004;
  *(ulonglong *)(lVar2 + -0x650) = uVar14 ^ (ulonglong)pbVar18;
  *(ulonglong *)(lVar2 + -0x4f0) =
       (*(ulonglong *)(lVar2 - (uVar13 ^ 0x895eb1c6)) ^ uVar14) +
       (CONCAT44(uVar6,uVar17) ^ 0xb389dd0457cf7fef);
  *(byte *)(lVar2 + -0x561) = *pbVar18 ^ (byte)DAT_182671720 ^ (byte)DAT_182671718;
  *(undefined1 *)(lVar2 + -0x775) = 0xda;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar22 ^ 0x9805acd0)) ^ (ulonglong)DAT_1826717a4) = 0x86;
  pbVar18 = (byte *)(*(ulonglong *)(lVar2 + -0x138) ^ uVar19);
  *(byte **)(lVar2 + -0x150) = pbVar18 + 1;
  bVar15 = (byte)DAT_1826715b4;
  *pbVar18 = *(byte *)(lVar2 - (uVar29 ^ 0xfccd34ec)) ^ (byte)DAT_182671720;
  *(byte *)(lVar2 + -0x561) = bVar15 ^ 0xad;
  uVar4 = DAT_18267160c;
  uVar14 = (ulonglong)DAT_1826718cc;
  uVar19 = (ulonglong)DAT_18267160c;
  uVar21 = (ulonglong)DAT_18267160c;
  *(undefined8 *)(lVar2 - (uVar13 ^ 0x895eb61e)) = *(undefined8 *)(lVar2 + -0x150);
  *(longlong *)(lVar2 + -0xa80) = *(longlong *)(lVar2 + -0x270) << ((bVar31 ^ 0x81) & 0x3f);
  *(undefined8 *)(lVar2 + -0xc80) = *(undefined8 *)(lVar2 + -0x4f0);
  *(ulonglong *)(lVar2 + -0x668) = *(ulonglong *)(lVar2 + -0x188) ^ uVar19;
  *(ulonglong *)(lVar2 + -0x8c0) = *(ulonglong *)(lVar2 - (uVar13 ^ 0x895ebb16)) ^ uVar14;
  *(uint *)(lVar2 + -0x374) = (DAT_18267158c ^ 0x84c6eb29) + (uVar20 ^ 0x245393c0);
  *(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0xfcb7bcfa)) = DAT_182671584 ^ 0x8fe1a712;
  *(ulonglong *)(lVar2 + -0x18) =
       (CONCAT44(uVar16,uVar7) ^ 0x29c4dab0895eb797) + (uVar14 ^ *(ulonglong *)(lVar2 + -0x8c0));
  bVar15 = (byte)uVar4;
  *(byte *)(lVar2 - ((ulonglong)uVar8 ^ 0x17f2c159)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x57cf772e)) ^ uVar14) ^ bVar15 ^
       (byte)DAT_182671718;
  uVar14 = (ulonglong)DAT_1826718b4;
  *(byte *)(lVar2 + -0x2f1) = (byte)uVar20 ^ 0xbd;
  *(byte *)(*(ulonglong *)(lVar2 + -0x300) ^ uVar14) = (byte)uVar6 ^ 0xb1;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x9805ad38)) =
       (CONCAT44(uVar5,uVar5) ^ 0x8d31cdfc8d31cdfd) +
       ((ulonglong)uVar4 ^ *(ulonglong *)(lVar2 + -0x668));
  uVar4 = DAT_1826715a0;
  uVar14 = (ulonglong)DAT_1826715a0;
  *(byte *)(uVar21 ^ *(ulonglong *)(lVar2 + -0x668)) = *(byte *)(lVar2 + -0xc51) ^ bVar15;
  uVar17 = (uVar4 << 0x10 | uVar4 & 0xff00) << 8 | uVar4 >> 8 & 0xff00 | DAT_1826715a0 >> 0x18;
  DAT_182671578 = uVar17;
  *(undefined1 *)(lVar2 - (uVar14 ^ 0x7e3e747f)) = 0xbf;
  *(ulonglong *)(lVar2 + -0x3f0) =
       (CONCAT44(uVar17,uVar17) ^ 0xde2a94b68d0e3d91) + *(longlong *)(lVar2 + -0xa60);
  *(undefined8 *)(lVar2 + -0x298) = *(undefined8 *)(lVar2 - ((ulonglong)uVar17 ^ 0x2e783ace));
  *(undefined8 *)(lVar2 + -0x470) = *(undefined8 *)(lVar2 + -0x18);
  *(undefined8 *)(lVar2 + -0x2a0) = 0x1fe7ad11161e7d3b;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x2e7839f6)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x7e3e7ab6)) ^ (ulonglong)DAT_182671788;
  uVar14 = (ulonglong)DAT_182671660;
  *(ulonglong *)(lVar2 + -0x600) =
       *(ulonglong *)(CONCAT44(DAT_1826716ac,DAT_1826716ac) ^ *(ulonglong *)(lVar2 + -0x70)) ^
       uVar30;
  *(ulonglong *)(lVar2 + -0x730) = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x7e3e7c5e)) ^ uVar14;
  *(ulonglong *)(lVar2 + -0x5c8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x7e3e7bde)) | 0x71a65ba7c97e4cfb;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar26;
  return;
}



############ FUN_ 180e921a0 size=3180 ############

void FUN_180e921a0(void)

{
  byte bVar1;
  uint uVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  longlong *plVar13;
  ulonglong *puVar14;
  uint uVar15;
  byte *pbVar16;
  undefined1 *puVar17;
  int *piVar18;
  uint uVar19;
  ulonglong uVar20;
  longlong lVar21;
  longlong lVar22;
  uint uVar23;
  byte *pbVar24;
  uint uVar25;
  longlong *plVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte *pbVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte local_res18;
  byte local_d0;
  
  uVar10 = DAT_1826715b0;
  uVar9 = DAT_1826715ac;
  uVar8 = DAT_1826715a8;
  uVar28 = DAT_182671598;
  uVar5 = DAT_182671578;
  uVar4 = DAT_182671570;
  lVar22 = DAT_182671560;
  uVar27 = (ulonglong)DAT_1826715b0;
  uVar31 = (ulonglong)DAT_182671570;
  uVar32 = (ulonglong)DAT_182671598;
  uVar36 = (ulonglong)DAT_1826715a8;
  uVar29 = (ulonglong)DAT_182671578;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_182671b5c);
  uVar23 = DAT_182671570 + DAT_1826715b0;
  uVar34 = (ulonglong)DAT_1826715ac;
  uVar25 = DAT_182671598 + DAT_1826715a8;
  uVar12 = *(uint *)(&DAT_182611e80 + DAT_182671b5c) ^ DAT_1826715b0;
  uVar19 = DAT_182671578 + DAT_1826715ac;
  plVar26 = (longlong *)(DAT_182671560 - (uVar29 ^ 0xf1f20160));
  DAT_182671568 = uVar19;
  DAT_182671574 = uVar25;
  DAT_1826715a4 = uVar23;
  *plVar26 = (CONCAT44(DAT_182671570,uVar19) ^ 0xf8d1ef4cd2f16ee5) +
             *(longlong *)(DAT_182671560 + 0x30);
  *(undefined1 *)(lVar22 + -0x209) = **(undefined1 **)(lVar22 + -0x60);
  *(longlong *)(lVar22 - ((ulonglong)uVar28 ^ 0x9e862cc0)) =
       *(longlong *)(lVar22 + -0x638) - *(longlong *)(lVar22 + -0x3b8);
  *(ulonglong *)(lVar22 - (uVar34 ^ 0xe0ff6ce4)) = (ulonglong)*(byte *)(lVar22 + -0x209);
  puVar35 = (ulonglong *)(DAT_182671560 + -0xa0);
  uVar30 = *(ulonglong *)(lVar22 + -0x110) << (((byte)uVar8 ^ 0xe6) & 0x3f);
  *(ulonglong *)(lVar22 + -0x670) = uVar30;
  *puVar35 = CONCAT44(uVar25,uVar23) ^ 0x920d4346d7e2d30a | *(ulonglong *)(lVar22 + -0x110);
  lVar22 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0x9e862fc0)) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0xf8d1e974)) | uVar30;
  uVar7 = DAT_182671584;
  pbVar16 = (byte *)((CONCAT44(uVar9,uVar8) ^ 0xe0ff6df496bf3ffc) + *(longlong *)(lVar22 + 0x30));
  uVar37 = (ulonglong)DAT_182671584;
  *(byte **)(lVar22 + -0xa20) = pbVar16;
  bVar1 = *pbVar16;
  *(byte *)(lVar22 + -0x209) = bVar1;
  *(ulonglong *)(lVar22 + -0x80) = (ulonglong)bVar1;
  *(longlong *)(lVar22 + -0x1f0) =
       *(longlong *)(lVar22 - ((ulonglong)uVar19 ^ 0xd2f16e74)) << (((byte)uVar25 ^ 0xae) & 0x3f);
  local_d0 = (byte)uVar19;
  *(ulonglong *)(lVar22 + -0x548) =
       (CONCAT44(uVar28,uVar10) ^ 0xfe27a9009d67b162) >> ((local_d0 ^ 0xe8) & 0x3f);
  *(ulonglong *)(lVar22 + -0xa60) =
       *(ulonglong *)(lVar22 - ((ulonglong)uVar8 ^ 0x96bf3e1e)) | *(ulonglong *)(lVar22 + -0x510);
  uVar6 = DAT_182671580;
  uVar20 = (ulonglong)DAT_182671580;
  uVar15 = DAT_182671580 + uVar7;
  uVar30 = CONCAT44(DAT_182671580,uVar7);
  uVar38 = (ulonglong)uVar15;
  plVar13 = (longlong *)((uVar38 ^ 0xd7589761) + lVar22);
  puVar17 = (undefined1 *)((uVar30 ^ 0xd02a869e072e10a0) + *plVar13);
  DAT_182671590 = uVar15;
  *(undefined1 **)(lVar22 + -0x60) = puVar17;
  *(undefined1 *)(lVar22 + -0x209) = *puVar17;
  *(ulonglong *)(lVar22 + -0x6b8) =
       (CONCAT44(uVar15,uVar15) ^ 0xbecaea75b2df7ca5) - (uVar30 ^ 0x6e813cec7223fb2f);
  *(ulonglong *)(lVar22 - ((ulonglong)uVar10 ^ 0x60792b0)) = (ulonglong)*(byte *)(lVar22 + -0x209);
  lVar21 = DAT_182671560;
  uVar30 = *(longlong *)(lVar22 + -0x2a0) << 0x18;
  piVar18 = (int *)(DAT_182671560 - (uVar38 ^ 0xd7589e41));
  *(ulonglong *)(DAT_182671560 + -0xc08) = uVar30;
  *(uint *)(lVar21 + -0x678) = (uVar7 ^ 0xc8efe511) + *piVar18;
  *(ulonglong *)(lVar21 - (uVar31 ^ 0xf8d1e99c)) = *(ulonglong *)(lVar21 + -0xa60) | uVar30;
  *(longlong *)(lVar21 + -0x240) =
       *(longlong *)(lVar21 + -0x638) <<
       ((byte)*(undefined8 *)(lVar21 - (uVar20 ^ 0xd02a843e)) & 0x3f);
  *(ulonglong *)(lVar21 - ((ulonglong)uVar25 ^ 0x3545609e)) =
       (CONCAT44(uVar25,uVar5) ^ 0x35456abef1f20114) + *(longlong *)(lVar21 + 0x30);
  *(undefined1 *)(lVar21 - ((ulonglong)uVar15 ^ 0xd7589558)) = **(undefined1 **)(lVar21 + -0xa20);
  *(ulonglong *)(lVar21 + -0x9f8) = (ulonglong)*(byte *)(lVar21 + -0x209);
  lVar22 = DAT_182671560;
  uVar30 = *(longlong *)(lVar21 - ((ulonglong)uVar6 ^ 0xd02a8f66)) << 0x20;
  *(ulonglong *)(lVar21 + -0x5c8) = uVar30;
  local_res18 = (byte)uVar4;
  *(ulonglong *)(lVar22 + -0x628) =
       (ulonglong)*(byte *)(lVar21 + -0x209) << ((local_res18 ^ 0x41) & 0x3f);
  uVar30 = *(ulonglong *)(lVar22 + -0x6d0) | uVar30;
  *(ulonglong *)(lVar22 + -0x600) = uVar30;
  pbVar16 = (byte *)((CONCAT44(uVar23,uVar8) ^ 0xfed97f5c96bf3ffb) +
                    *(longlong *)((uVar34 ^ 0xe0ff6dc4) + lVar22));
  *(byte **)(lVar22 + -0x60) = pbVar16;
  bVar1 = *pbVar16;
  *(byte *)(lVar22 + -0x209) = bVar1;
  *(ulonglong *)(DAT_182671560 + -0x688) = (ulonglong)bVar1;
  lVar22 = DAT_182671560;
  uVar20 = (ulonglong)bVar1 << (((byte)uVar6 ^ 0xb6) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar20;
  *(ulonglong *)(lVar22 - ((ulonglong)uVar19 ^ 0xd2f1666c)) = uVar20 | uVar30;
  lVar22 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0xe0ff677c)) =
       (CONCAT44(uVar23,uVar6) ^ 0xf8472da7076033fd) <<
       ((byte)*(undefined8 *)(DAT_182671560 + -0x898) & 0x3f);
  lVar21 = DAT_182671560;
  puVar17 = (undefined1 *)
            ((CONCAT44(uVar28,uVar23) ^ 0x9e862ad0fed97f4a) + *(longlong *)(DAT_182671560 + 0x30));
  *(undefined1 **)(DAT_182671560 + -0xa20) = puVar17;
  *(undefined1 *)(lVar21 + -0x209) = *puVar17;
  pbVar16 = (byte *)(lVar21 - (uVar37 ^ 0x72e12ba));
  *(ulonglong *)(lVar22 - ((ulonglong)uVar25 ^ 0x354568ce)) = (ulonglong)*pbVar16;
  lVar21 = *(longlong *)(lVar22 + -0x270) << (((byte)uVar10 ^ 0x20) & 0x3f);
  *(longlong *)(lVar22 + -0x1d8) = lVar21;
  *(longlong *)(lVar22 + -0x8a8) = *(longlong *)(lVar22 + -0x898) + lVar21;
  *(ulonglong *)(lVar22 + -0x60) =
       (CONCAT44(uVar8,uVar6) ^ 0x96bf3feed02a8689) + *(longlong *)(lVar22 + 0x30);
  *(undefined1 *)(lVar22 - (uVar31 ^ 0xf8d1ed45)) = *(undefined1 *)*plVar26;
  *(ulonglong *)(lVar22 - (uVar32 ^ 0x9e862120)) = (ulonglong)*(byte *)(lVar22 + -0x209);
  lVar21 = *(longlong *)(lVar22 + -0xbf0) << 0x38;
  *(longlong *)(lVar22 + -0x800) = lVar21;
  uVar31 = *(longlong *)(lVar22 + -0x8a8) + lVar21;
  *(ulonglong *)(lVar22 + -0x748) = uVar31;
  puVar14 = (ulonglong *)
            (*(longlong *)(lVar22 + -0x880) + (CONCAT44(uVar4,uVar5) ^ 0xf8d1ef4cf1f20102) * 8);
  *(ulonglong **)(lVar22 + -0x3a0) = puVar14;
  *(ulonglong *)(lVar22 + -0x610) = *(ulonglong *)(lVar22 + -0x270) ^ 0x8780f463db59b7da;
  uVar37 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *puVar14 = uVar31 ^ uVar37;
  lVar22 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0xe0ff67d4)) =
       (CONCAT44(uVar7,uVar25) ^ 0x72e10b335456aa6) + *(longlong *)(DAT_182671560 + 0x30);
  bVar1 = **(byte **)(lVar22 + -0xa20);
  *(byte *)(lVar22 + -0x209) = bVar1;
  *(ulonglong *)(lVar22 + -0x110) = (ulonglong)bVar1;
  *puVar35 = CONCAT44(uVar19,uVar8) ^ CONCAT44(uVar8,uVar5) ^ 0x6baa6c45f6636dd0;
  *(ulonglong *)(lVar22 + -0x60) =
       (CONCAT44(uVar6,uVar23) ^ 0xd02a869efed97f45) + *(longlong *)(lVar22 + 0x30);
  *(uint *)(lVar22 + -0x274) =
       (uVar25 ^ 0x9c443a89) << ((byte)*(undefined4 *)(lVar22 + -0x27c) & 0x1f);
  *(undefined1 *)(lVar22 + -0x209) = **(undefined1 **)(lVar22 - (uVar34 ^ 0xe0ff6d94));
  uVar20 = (ulonglong)*(byte *)(lVar22 - (uVar29 ^ 0xf1f20309));
  *(ulonglong *)(lVar22 + -0x670) = uVar20;
  *(ulonglong *)(lVar22 + -0x80) = uVar20 << (((byte)uVar28 ^ 0xd8) & 0x3f);
  uVar5 = DAT_1826715a0;
  uVar4 = DAT_18267158c;
  uVar30 = (ulonglong)DAT_18267158c;
  uVar28 = DAT_18267158c | DAT_1826715a0;
  uVar39 = (ulonglong)DAT_1826715a0;
  uVar31 = CONCAT44(DAT_1826715a0,DAT_1826715a0);
  DAT_182671588 = uVar28;
  *(ulonglong *)(lVar22 - (uVar30 ^ 0xc4fcfab0)) = uVar20 | 0xe946e8d6ae1449bc;
  *(ulonglong *)(lVar22 - ((ulonglong)uVar5 ^ 0x3d13ab19)) =
       *(ulonglong *)(lVar22 - ((ulonglong)uVar28 ^ 0xfdfffee9)) | *(ulonglong *)(lVar22 + -0x80);
  uVar11 = DAT_182671850;
  pbVar33 = (byte *)((uVar31 ^ 0x3d13ae093d13ae13) + *(longlong *)(lVar22 + 0x30));
  uVar31 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(byte **)(lVar22 + -0xa20) = pbVar33;
  lVar21 = DAT_182671560;
  *(ulonglong *)(lVar22 + -0x1f0) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar22 + -0x218)) ^ uVar31;
  pbVar24 = (byte *)(lVar22 - ((ulonglong)uVar4 ^ 0xc4fcfdf1));
  *pbVar24 = *pbVar33;
  *(ulonglong *)(lVar22 + -0x6b8) = (ulonglong)*(byte *)(lVar22 + -0x209);
  lVar3 = DAT_182671560;
  bVar1 = (byte)uVar5;
  uVar31 = *(longlong *)(lVar21 - ((ulonglong)uVar28 ^ 0xfdfff941)) << ((bVar1 ^ 0x19) & 0x3f);
  puVar14 = (ulonglong *)(DAT_182671560 - (uVar30 ^ 0xc4fcfae8));
  *(ulonglong *)(DAT_182671560 + -0xa60) = uVar31;
  uVar31 = *puVar14 | uVar31;
  lVar22 = *(longlong *)(lVar3 + 0x30);
  *(ulonglong *)(lVar3 + -0xc08) = uVar31;
  puVar17 = (undefined1 *)((CONCAT44(uVar4,uVar4) ^ 0xc4fcfff8c4fcffe3) + lVar22);
  *(undefined1 **)(lVar3 + -0xa20) = puVar17;
  *(undefined1 *)(lVar3 + -0x209) = *puVar17;
  *(ulonglong *)(lVar3 + -0x638) =
       (CONCAT44(uVar5,uVar28) ^ 0x3aeb92bf0e001fc9) >> ((bVar1 ^ 0x1b) & 0x3f);
  puVar17 = (undefined1 *)((CONCAT44(uVar28,uVar10) ^ 0xfdfffff90607900c) + lVar22);
  *(undefined1 **)(lVar3 + -0xa20) = puVar17;
  *(ulonglong *)(lVar3 + -0x2a0) = (ulonglong)*(byte *)(lVar3 + -0x209);
  uVar30 = (ulonglong)*(byte *)(lVar3 + -0x209) << ((bVar1 ^ 0x11) & 0x3f);
  *(ulonglong *)(lVar3 + -0x240) = uVar30;
  uVar30 = uVar30 | uVar31;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar30;
  *(undefined1 *)(lVar3 + -0x209) = *puVar17;
  uVar31 = (ulonglong)*pbVar24;
  *(ulonglong *)(lVar3 + -0x628) = uVar31;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar31 << 0x20;
  *(undefined4 *)(lVar3 + -0x754) = 0x31000000;
  *(ulonglong *)(lVar3 + -0x5c8) = *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xc4fcf928)) | uVar30;
  *(ulonglong *)(lVar3 + -0xa20) = (CONCAT44(uVar9,uVar28) ^ 0xe0ff6df4fdffffe4) + *plVar13;
  bVar1 = **(byte **)(lVar3 - (uVar39 ^ 0x3d13a429));
  *(byte *)(lVar3 + -0x209) = bVar1;
  *(ulonglong *)(lVar3 + -0x688) = (ulonglong)bVar1;
  uVar30 = (ulonglong)bVar1 << ((local_res18 ^ 100) & 0x3f);
  *(ulonglong *)(lVar3 + -0x600) = uVar30;
  uVar31 = *(ulonglong *)(lVar3 - (uVar38 ^ 0xd7589299));
  *(undefined1 **)(lVar3 + -0xa20) = (undefined1 *)(lVar22 + 0x1e);
  *(ulonglong *)(lVar3 + -0x318) = uVar31 | uVar30;
  *(undefined1 *)(lVar3 - (uVar34 ^ 0xe0ff6ffd)) = *(undefined1 *)(lVar22 + 0x1e);
  uVar31 = (ulonglong)*(byte *)(lVar3 - ((ulonglong)uVar28 ^ 0xfdfffdf0));
  *(ulonglong *)(lVar3 + -0xa88) = uVar31;
  lVar22 = uVar31 << (((byte)uVar25 ^ 0x8e) & 0x3f);
  *(longlong *)(lVar3 + -0x1d8) = lVar22;
  *(longlong *)(lVar3 + -0x898) = *(longlong *)(lVar3 + -0x318) + lVar22;
  pbVar24 = (byte *)((CONCAT44(uVar6,uVar28) ^ 0xd02a869efdffffe6) +
                    *(longlong *)((uVar32 ^ 0x9e862ae0) + lVar3));
  *(byte **)(lVar3 + -0xa20) = pbVar24;
  *(ulonglong *)(lVar3 + -0xbf0) =
       (CONCAT44(uVar19,uVar5) ^ 0x1cbbb95a8d5a3d7a) - (CONCAT44(uVar8,uVar4) ^ 0x62f9b916a776b6f1);
  *pbVar16 = *pbVar24;
  *(ulonglong *)(lVar3 + -0x800) = (ulonglong)*(byte *)(lVar3 + -0x209);
  lVar22 = *(longlong *)(lVar3 - (uVar27 ^ 0x6079810)) << ((byte)uVar4 & 0x3f);
  uVar31 = *(longlong *)(lVar3 + -0x898) + lVar22;
  *(longlong *)(lVar3 + -0x8a8) = lVar22;
  *(ulonglong *)(lVar3 + -0x270) = uVar31;
  *(ulonglong *)(lVar3 + -0x230) =
       *(longlong *)(lVar3 + -0x880) + (CONCAT44(uVar10,uVar7) ^ 0x6079010072e10b0) * 8;
  *(ulonglong *)(lVar3 + -0x610) =
       CONCAT44(uVar6,uVar15) ^ 0x7a2cd21178204261 | *(ulonglong *)(lVar3 + -0x6d0);
  **(ulonglong **)(lVar3 - (uVar39 ^ 0x3d13ac39)) = uVar37 ^ uVar31;
  *(longlong *)(lVar3 - ((ulonglong)uVar19 ^ 0xd2f164d4)) = *(longlong *)(lVar3 + 0x30) + 0x20;
  *(undefined1 *)(lVar3 - (uVar36 ^ 0x96bf3de7)) = **(undefined1 **)(lVar3 - (uVar29 ^ 0xf1f20b20));
  *puVar35 = (ulonglong)*(byte *)(lVar3 - (uVar32 ^ 0x9e8628d9));
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar2 ^ uVar23;
  return;
}



############ FUN_ 180ed5050 size=6045 ############

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

void FUN_180ed5050(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  ulonglong *puVar9;
  uint uVar10;
  longlong lVar11;
  longlong lVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong *puVar24;
  byte bVar25;
  uint uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  byte local_res18;
  byte local_130;
  byte local_f0;
  
  uVar20 = DAT_182671854;
  uVar19 = DAT_182671604;
  uVar18 = DAT_1826715b0;
  uVar13 = DAT_1826715a4;
  uVar15 = DAT_182671580;
  uVar14 = DAT_182671578;
  lVar11 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671578;
  uVar57 = (ulonglong)DAT_182671580;
  uVar38 = DAT_1826715a4 - DAT_1826715b0;
  uVar26 = (DAT_182671580 << 0x10 | DAT_182671580 & 0xff00) << 8 | DAT_182671580 >> 8 & 0xff00 |
           DAT_182671580 >> 0x18;
  uVar55 = (ulonglong)uVar26;
  uVar30 = (DAT_182671578 << 0x10 | DAT_182671578 & 0xff00) << 8 | DAT_182671578 >> 8 & 0xff00 |
           DAT_182671578 >> 0x18;
  uVar10 = *(uint *)(&DAT_182611e78 + DAT_182671c24);
  uVar22 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar26 ^ 0x75fef8ff) + (longlong)DAT_182671c24) ^
           DAT_182671578;
  uVar37 = (ulonglong)uVar38;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x670);
  DAT_182671568 = uVar38;
  DAT_182671570 = uVar26;
  DAT_182671590 = uVar30;
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (CONCAT44(DAT_18267180c,DAT_18267180c) ^ *(ulonglong *)(DAT_182671560 + -0x748)) +
       (CONCAT44(DAT_182671580,uVar38) ^ 0x5640b3359d96d2a8);
  uVar21 = DAT_18267187c;
  puVar2 = (ulonglong *)(lVar11 + -0x318);
  uVar39 = (CONCAT44(DAT_18267169c,DAT_18267169c) ^ *(ulonglong *)(lVar11 + -0x600) |
           CONCAT44(uVar19,uVar19) ^ *puVar1) ^ CONCAT44(uVar20,uVar20);
  *puVar2 = uVar39;
  uVar19 = DAT_1826717e0;
  lVar12 = DAT_182671560;
  uVar45 = CONCAT44(DAT_182671810,DAT_182671810);
  uVar36 = CONCAT44(DAT_182671860,DAT_182671860);
  puVar3 = (ulonglong *)(lVar11 + -0x638);
  uVar40 = (ulonglong)uVar30;
  uVar39 = uVar36 ^ uVar45 ^ uVar39 ^ CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(lVar11 + -0xbf0);
  *(ulonglong *)(lVar11 + -0x9e8) = uVar39;
  uVar49 = CONCAT44(uVar19,uVar19);
  puVar4 = (ulonglong *)(lVar12 + -0x3f0);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar30 ^ 0xcf39c923)) =
       (CONCAT44(uVar21,uVar21) ^ *puVar3) + (uVar45 ^ uVar39) ^ uVar49;
  uVar28 = (ulonglong)uVar13;
  uVar33 = (ulonglong)uVar18;
  puVar24 = (ulonglong *)(lVar12 - (uVar28 ^ 0x6fd5581b));
  *puVar4 = -0x25f301a1283e81f4 << (((byte)uVar20 ^ *(byte *)puVar2) & 0x3f);
  uVar32 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  puVar5 = (ulonglong *)(lVar12 + -0x510);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar18 ^ 0x8a010601)) = (uVar45 ^ *puVar24) << 0x2e ^ uVar32;
  uVar20 = DAT_18267178c;
  uVar39 = CONCAT44(DAT_182671720,DAT_182671720);
  *puVar5 = (uVar45 ^ *(ulonglong *)(lVar12 + -0x9e8)) >> (((byte)(uVar15 >> 0x18) ^ 0xfd) & 0x3f) ^
            uVar39;
  uVar19 = DAT_1826716e0;
  puVar6 = (ulonglong *)(lVar12 + -0x1f0);
  uVar45 = CONCAT44(uVar20,uVar20);
  puVar7 = (ulonglong *)(lVar12 + -0x610);
  uVar39 = (*(ulonglong *)(lVar12 - ((ulonglong)uVar15 ^ 0xeff8fb65)) ^ uVar39 |
           uVar32 ^ *(ulonglong *)(lVar12 + -0x110)) ^ uVar45;
  *(ulonglong *)(lVar12 + -0xa60) = uVar39;
  uVar47 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar12 + -0x5c8) = uVar47 ^ uVar39 ^ uVar45 ^ uVar49 ^ *puVar7;
  uVar39 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar56 = CONCAT44(DAT_182671668,DAT_182671668);
  puVar8 = (ulonglong *)(lVar12 + -0x9f8);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar14 ^ 0x33cf3f77)) =
       (uVar39 ^ *puVar6) + (uVar36 ^ *(ulonglong *)(lVar12 + -0xbf0)) ^ uVar56;
  uVar41 = CONCAT44(DAT_182671738,DAT_182671738);
  bVar29 = (byte)uVar18;
  *(ulonglong *)(lVar12 - (uVar37 ^ 0xe5d4431a)) = (uVar39 ^ *puVar6) << 0xc ^ uVar41;
  uVar23 = DAT_1826715ac;
  uVar16 = DAT_182671584;
  puVar9 = (ulonglong *)(lVar12 + -0x628);
  uVar46 = (ulonglong)DAT_1826715ac;
  uVar43 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar36 = (ulonglong)DAT_182671584;
  uVar31 = DAT_1826715ac * DAT_182671584;
  *(ulonglong *)(lVar12 - (uVar33 ^ 0x8a010139)) =
       (uVar39 ^ *puVar6) >> ((bVar29 ^ 0x25) & 0x3f) ^ uVar43;
  uVar20 = DAT_1826717e4;
  uVar39 = CONCAT44(DAT_182671884,DAT_182671884);
  uVar43 = (uVar43 ^ *puVar9 | uVar41 ^ *puVar8) ^ uVar39;
  DAT_1826715a8 = uVar31;
  *(ulonglong *)(lVar12 + -0x748) = uVar43;
  uVar19 = DAT_182671638;
  uVar41 = CONCAT44(uVar20,uVar20);
  uVar39 = *(ulonglong *)(lVar12 - (uVar36 ^ 0xcf3bc983)) ^ uVar56 ^ uVar41 ^ uVar43 ^ uVar39;
  *(ulonglong *)(lVar12 + -0x688) = uVar39;
  uVar52 = CONCAT44(uVar19,uVar19);
  uVar44 = (ulonglong)uVar31;
  *(ulonglong *)(DAT_182671560 + -0x600) = (uVar49 ^ *puVar7) + (uVar39 ^ uVar41) ^ uVar52;
  lVar11 = DAT_182671560;
  *puVar1 = (uVar41 ^ uVar39) << 0x3a ^ uVar32;
  local_res18 = (byte)(uVar14 >> 0x18);
  *(ulonglong *)(lVar11 - (uVar46 ^ 0xf7fffbc7)) =
       CONCAT44(uVar23,uVar31) ^ uVar45 ^ *(ulonglong *)(lVar11 + -0xa60) ^ 0x6e44cb486f2045d6;
  uVar39 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(lVar11 - ((ulonglong)uVar16 ^ 0xcf3bcc23)) =
       (uVar41 ^ *(ulonglong *)(lVar11 + -0x688)) >> ((local_res18 ^ 0x35) & 0x3f) ^ uVar39;
  uVar45 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  *puVar4 = (*(ulonglong *)(lVar11 - ((ulonglong)uVar31 ^ 0xe125b9dd)) ^ uVar39 | uVar32 ^ *puVar1)
            ^ uVar45;
  lVar12 = DAT_182671560;
  uVar42 = CONCAT44(DAT_182671820,DAT_182671820);
  puVar53 = (ulonglong *)(lVar11 - (uVar28 ^ 0x6fd5574b));
  *(ulonglong *)(lVar11 + -0x9e8) =
       *(ulonglong *)(lVar11 - ((ulonglong)uVar23 ^ 0xf7fffbff)) ^
       *(ulonglong *)(lVar11 - (uVar57 ^ 0xeff8fd85)) ^ uVar42 ^ uVar45 ^ uVar52;
  uVar41 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar43 = (uVar56 ^ *puVar53) + (uVar47 ^ *(ulonglong *)(lVar11 + -0x5c8)) ^ uVar41;
  *(ulonglong *)(lVar11 + -0x110) = uVar43;
  *puVar5 = (CONCAT44(uVar26,uVar15) ^ 0xdc25ee899f230d3e) << ((local_res18 ^ 0x19) & 0x3f);
  uVar39 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar12 + -0xbf0) =
       (uVar47 ^ *(ulonglong *)(lVar12 + -0x5c8)) << (((byte)uVar23 ^ 0xe9) & 0x3f) ^ uVar39;
  bVar25 = (byte)uVar13;
  uVar45 = (uVar47 ^ *(ulonglong *)(lVar12 + -0x5c8)) >> ((bVar25 ^ 0xd9) & 0x3f);
  *puVar6 = uVar45 ^ uVar49;
  uVar32 = CONCAT44(DAT_182671800,DAT_182671800);
  uVar39 = (*(ulonglong *)(lVar12 - (uVar33 ^ 0x8a010ce1)) ^ uVar39 | uVar45) ^ uVar32;
  *puVar8 = uVar39;
  lVar11 = DAT_182671560;
  uVar45 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *puVar9 = uVar39 ^ uVar45 ^ uVar32 ^ uVar41 ^ uVar43;
  uVar19 = DAT_1826718c0;
  lVar12 = DAT_182671560;
  puVar27 = (ulonglong *)(lVar11 - (uVar36 ^ 0xcf3bc873));
  *puVar27 = CONCAT44(uVar38,uVar14) ^ 0xa27ca7df66defaf |
             CONCAT44(uVar31,uVar26) ^ 0x8cb7a5a3b6e6f0b1;
  uVar43 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar11 - (uVar57 ^ 0xeff8f865)) =
       (*(ulonglong *)(lVar11 - (uVar34 ^ 0x33cf3fe7)) ^ uVar45) +
       (uVar52 ^ *(ulonglong *)(lVar11 + -0x600)) ^ uVar43;
  uVar19 = DAT_1826717b4;
  uVar47 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  puVar50 = (ulonglong *)(lVar12 - (uVar34 ^ 0x33cf33af));
  *puVar50 = (*puVar9 ^ uVar45) << ((local_res18 ^ 0x13) & 0x3f) ^ uVar47;
  uVar32 = CONCAT44(uVar19,uVar19);
  *puVar3 = (*puVar9 ^ uVar45) >> (((byte)uVar31 ^ 0xe5) & 0x3f) ^ uVar32;
  uVar19 = DAT_18267168c;
  lVar11 = DAT_182671560;
  uVar45 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar39 = *(ulonglong *)(DAT_182671560 + -0x110);
  uVar32 = (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xe5d44cda)) ^ uVar32 |
           *(ulonglong *)(DAT_182671560 + -0xa60) ^ uVar47) ^ uVar45;
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar32;
  uVar47 = CONCAT44(uVar19,uVar19);
  *puVar1 = *puVar7 ^ uVar47 ^ uVar32 ^ uVar45 ^ uVar43;
  *puVar2 = (CONCAT44(uVar38,uVar26) ^ 0xbac4aa87e7c02e7f) -
            (CONCAT44(uVar14,uVar15) ^ 0x51f3c76cf8877f07);
  uVar56 = CONCAT44(DAT_182671844,DAT_182671844);
  *puVar4 = (*(ulonglong *)(lVar11 + -0x9e8) ^ uVar42) + (uVar41 ^ uVar39) ^ uVar56;
  uVar19 = DAT_182671678;
  *puVar53 = CONCAT44(uVar26,uVar15) ^ 0xf26887780502233c |
             CONCAT44(uVar23,uVar30) ^ 0xf515a0d936bedac6;
  uVar20 = DAT_1826717d0;
  uVar45 = CONCAT44(uVar19,uVar19);
  local_f0 = (byte)uVar14;
  *puVar5 = (*(ulonglong *)(lVar11 - (uVar33 ^ 0x8a010ef9)) ^ uVar42) << ((local_f0 ^ 0xef) & 0x3f)
            ^ uVar45;
  lVar11 = DAT_182671560;
  uVar39 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(DAT_182671560 - (uVar55 ^ 0x75fefd27)) =
       (*(ulonglong *)(DAT_182671560 + -0x9e8) ^ uVar42) >> ((bVar25 ^ 0xd3) & 0x3f) ^ uVar39;
  uVar19 = _DAT_182671618;
  uVar32 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar39 = (*(ulonglong *)(lVar11 + -0x5c8) ^ uVar39 | *puVar5 ^ uVar45) ^ uVar32;
  *(ulonglong *)(lVar11 + -0xbf0) = uVar39;
  uVar41 = CONCAT44(uVar19,uVar19);
  *puVar6 = *puVar4 ^ uVar41 ^ uVar39 ^ uVar32 ^ uVar56;
  uVar42 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *puVar8 = (*(ulonglong *)(lVar11 - (uVar46 ^ 0xf7fffc0f)) ^ uVar41) +
            (CONCAT44(uVar38,uVar23) ^ 0x1831bce920d1324) ^ uVar42;
  uVar39 = (CONCAT44(uVar16,uVar18) ^ 0x8b70a8f1d1ece605) + (*puVar7 ^ uVar43);
  uVar45 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar11 + -0x748) = uVar39 ^ uVar41;
  uVar41 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar11 + -0x600) =
       (*(ulonglong *)(lVar11 - (uVar44 ^ 0xe125b33d)) ^ uVar42) + uVar39 ^ uVar45;
  uVar17 = DAT_182671594;
  local_130 = (byte)uVar38;
  *(ulonglong *)(lVar11 - (uVar40 ^ 0xcf39c91b)) =
       (*(ulonglong *)(lVar11 - (uVar57 ^ 0xeff8f78d)) ^ uVar42) << (((byte)uVar31 ^ 0xcb) & 0x3f) ^
       uVar41;
  uVar32 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar11 + -0xa60) = (*puVar8 ^ uVar42) >> ((local_130 ^ 0xd0) & 0x3f) ^ uVar32;
  uVar39 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar32 = (uVar32 ^ *puVar50 | *puVar9 ^ uVar41) ^ uVar39;
  *puVar3 = uVar32;
  *(undefined8 *)(lVar11 + -0x688) = 0xfd7ff6afefe5f3dd;
  uVar13 = DAT_18267164c;
  uVar51 = CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar43 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *puVar2 = *(ulonglong *)(lVar11 - (uVar44 ^ 0xe125bcc5)) ^ uVar51 ^ uVar39 ^ uVar45 ^ uVar32;
  uVar20 = DAT_1826717c0;
  uVar32 = (CONCAT44(uVar38,uVar16) ^ 0xcea538cbc8a47911) + (*puVar1 ^ uVar47);
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar32 ^ uVar43;
  lVar11 = DAT_182671560;
  uVar39 = (CONCAT44(uVar14,uVar14) ^ 0x2a032b205b4ac3b9) + (*puVar4 ^ uVar56);
  uVar41 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar39 ^ CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar11 - (uVar36 ^ 0xcf3bc6d3)) = uVar39 + uVar32 ^ uVar41;
  *(byte *)(lVar11 + -0x571) =
       *(byte *)(*(ulonglong *)(lVar11 - (uVar36 ^ 0xcf3bcec3)) ^ (ulonglong)DAT_18267183c) ^
       (byte)uVar20;
  uVar42 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar11 - (uVar33 ^ 0x8a010201)) =
       (uVar43 ^ *(ulonglong *)(lVar11 + -0x110)) << ((local_130 ^ 0xf2) & 0x3f) ^ uVar42;
  uVar47 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  uVar32 = (ulonglong)*(ushort *)((lVar11 - (uVar55 ^ 0x75fef9ff)) + 6) ^
           (ulonglong)(uVar13 >> 0x10);
  uVar43 = CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar11 + -0x5c8) = uVar32 ^ uVar47;
  uVar13 = DAT_182671840;
  uVar39 = *(ulonglong *)(lVar11 + -0x600);
  *(ulonglong *)(lVar11 + -0xbf0) =
       (*(ulonglong *)(lVar11 - (uVar34 ^ 0x33cf3cdf)) ^ uVar42 | uVar32) ^ uVar43;
  uVar56 = CONCAT44(uVar13,uVar13);
  uVar32 = *(ulonglong *)(lVar11 - (uVar40 ^ 0xcf39c4c3)) ^ uVar56 ^ uVar43 ^ uVar41 ^
           *(ulonglong *)(lVar11 + -0x9e8);
  *puVar6 = uVar32;
  uVar26 = DAT_182671588;
  uVar42 = CONCAT44(_DAT_182671610,_DAT_182671610);
  *puVar7 = (uVar45 ^ uVar39) + (uVar32 ^ uVar56) ^ uVar42;
  lVar11 = DAT_182671560;
  uVar43 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar26 ^ 0x1f8417f4)) =
       (*(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x8a0106e1)) ^ uVar56) <<
       (((byte)uVar16 ^ 0xf) & 0x3f) ^ uVar43;
  uVar32 = *(ulonglong *)(lVar11 - (uVar40 ^ 0xcf39cec3)) >> 0xc ^
           ((ulonglong)uVar13 << 0x14 | (ulonglong)(uVar13 >> 0xc));
  *puVar8 = uVar32 ^ uVar49;
  uVar19 = DAT_182671754;
  uVar13 = DAT_182671574;
  uVar45 = CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar39 = *(ulonglong *)(lVar11 + -0x9e8);
  uVar32 = (uVar32 | uVar43 ^ *puVar27) ^ uVar45;
  *(ulonglong *)(lVar11 + -0xa60) = uVar32;
  uVar48 = CONCAT44(uVar19,uVar19);
  *puVar9 = uVar32 ^ *puVar7 ^ uVar48 ^ uVar45 ^ uVar42;
  uVar54 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar23 = DAT_182671598 ^ 0x747ff7ff;
  *(ulonglong *)(lVar11 + -0x688) = (uVar41 ^ uVar39) + (uVar51 ^ *puVar2) ^ uVar54;
  uVar19 = DAT_1826715b4;
  bVar35 = (byte)DAT_1826715b4;
  *(uint *)(lVar11 - (uVar57 ^ 0xeff8fd31)) = (uVar13 ^ 0x1fd5b384) + uVar23;
  uVar39 = (uVar51 ^ *puVar2) >> ((bVar35 ^ 0xe8) & 0x3f) ^ uVar51;
  uVar49 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar32 = (uVar51 ^ *puVar2) << 0x39;
  *puVar3 = uVar32 ^ uVar49;
  *puVar1 = uVar39;
  *puVar4 = *puVar9 ^ uVar39 ^ uVar48 ^ uVar51;
  uVar23 = DAT_18267157c;
  uVar45 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar43 = (ulonglong)DAT_18267157c;
  uVar41 = CONCAT44(uVar20,uVar20);
  uVar39 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xcf39c98b)) =
       (*(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x6fd55783)) ^ uVar51 | uVar32) ^ uVar45;
  uVar20 = DAT_18267182c;
  lVar11 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar26 ^ 0x1f841634)) ^
       *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0x47fd50e3)) ^ uVar45 ^ uVar54 ^ uVar41;
  uVar33 = CONCAT44(uVar20,uVar20);
  uVar57 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar11 - ((ulonglong)DAT_182671594 ^ 0x64b485fe)) =
       (*(ulonglong *)(lVar11 - (uVar43 ^ 0xc511cf0b)) ^ uVar41) +
       (*(ulonglong *)(lVar11 - ((ulonglong)uVar23 ^ 0xc511c80b)) ^ uVar42) ^ uVar33;
  uVar20 = DAT_1826717ac;
  *(ulonglong *)(lVar11 + -0x5c8) =
       (*(ulonglong *)(lVar11 - (uVar57 ^ 0xf681f238)) ^ uVar54) + 0x5ec1154c4dad1a54;
  uVar43 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar11 - (uVar55 ^ 0x75fef31f)) =
       (uVar41 ^ *(ulonglong *)(lVar11 + -0x110)) << ((bVar25 ^ 0xe4) & 0x3f) ^ uVar43;
  uVar45 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar39 = *(ulonglong *)(lVar11 + -0xbf0);
  uVar32 = (uVar41 ^ *(ulonglong *)(lVar11 + -0x110)) >> ((local_f0 ^ 0xe6) & 0x3f);
  *(ulonglong *)(lVar11 + -0x600) = uVar32 ^ uVar45;
  *puVar6 = CONCAT44(uVar38,uVar19) ^ CONCAT44(uVar16,uVar30) ^ 0xc79fcfbdb8d4aa9f;
  uVar23 = DAT_18267158c;
  uVar41 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar32 = uVar39 ^ uVar43 | uVar32;
  *(ulonglong *)(lVar11 + -0x748) = uVar32 ^ uVar41;
  *(ulonglong *)(lVar11 - (uVar57 ^ 0xf681fd48)) =
       CONCAT44(uVar13,uVar15) ^ 0x6a49b9391cade6c6 | uVar32;
  lVar11 = DAT_182671560;
  uVar57 = CONCAT44(DAT_182671628,DAT_182671628);
  puVar50 = (ulonglong *)(DAT_182671560 - (uVar44 ^ 0xe125b32d));
  puVar27 = (ulonglong *)(DAT_182671560 + -0x688);
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       *(ulonglong *)(DAT_182671560 - (uVar44 ^ 0xe125bfd5)) ^ uVar57 ^ uVar41 ^ uVar33 ^
       *(ulonglong *)(DAT_182671560 + -0x748);
  *puVar50 = (*puVar9 ^ uVar48) + (uVar54 ^ *puVar27) ^ uVar56;
  uVar16 = DAT_18267159c;
  uVar41 = CONCAT44(DAT_18267181c,DAT_18267181c);
  uVar43 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar11 - (uVar46 ^ 0xf7fffee7)) =
       (*(ulonglong *)(lVar11 - ((ulonglong)uVar23 ^ 0xd6fde5dc)) ^ uVar48) <<
       ((local_130 ^ 0xca) & 0x3f) ^ uVar41;
  lVar12 = DAT_182671560;
  *puVar4 = *(ulonglong *)(lVar11 - (uVar34 ^ 0x33cf3fcf)) ^ uVar45 ^ uVar33 ^ *puVar5;
  uVar13 = DAT_182671588;
  uVar39 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(lVar12 - ((ulonglong)DAT_182671588 ^ 0x1f841684)) =
       (*puVar9 ^ uVar48) >> ((local_f0 ^ 0xd7) & 0x3f) ^ uVar39;
  uVar32 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar12 - (uVar43 ^ 0x3bcf3dbf)) = (uVar39 ^ *puVar3 | uVar41 ^ *puVar2) ^ uVar32;
  uVar39 = *puVar5;
  uVar41 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar32 = uVar41 ^ uVar32 ^ uVar56 ^ *(ulonglong *)(lVar12 + -0x9e8) ^ *puVar1;
  *(ulonglong *)(lVar12 + -0x6b8) = uVar32;
  *puVar7 = (*(ulonglong *)(lVar12 - (uVar55 ^ 0x75fefe57)) ^ uVar41) + (uVar33 ^ uVar39) ^ uVar49;
  uVar26 = DAT_1826715a0;
  uVar45 = (ulonglong)DAT_1826715a0;
  uVar33 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar12 - (uVar28 ^ 0x6fd5543b)) =
       (uVar41 ^ uVar32) << (((byte)DAT_182671598 ^ 0xda) & 0x3f) ^ uVar33;
  uVar39 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0xcf3bce2b)) =
       (uVar41 ^ *(ulonglong *)(lVar12 + -0x6b8)) >> ((bVar29 ^ 0x2a) & 0x3f) ^ uVar39;
  lVar11 = DAT_182671560;
  uVar36 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar39 = (uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x110) |
           uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x5c8)) ^ uVar36;
  *puVar6 = uVar39;
  uVar19 = DAT_1826715bc;
  *(ulonglong *)(lVar11 + -0xbf0) =
       CONCAT44(DAT_1826716e4,DAT_1826716e4) ^ uVar39 ^ uVar36 ^ *puVar7 ^ uVar49;
  uVar39 = CONCAT44(uVar19,uVar19);
  *puVar8 = (*(ulonglong *)(lVar11 - ((ulonglong)uVar16 ^ 0x3bcf31af)) ^ uVar57) +
            (*puVar24 ^ uVar56) ^ uVar39;
  *(ulonglong *)(lVar11 - (uVar40 ^ 0xcf39c87b)) =
       (CONCAT44(uVar13,uVar15) ^ 0x91588dc349b73d11) -
       (CONCAT44(uVar15,uVar26) ^ 0x44f617deef00a1b8);
  uVar33 = (uVar57 ^ *(ulonglong *)(lVar11 + -0xa60)) << ((bVar29 ^ 0x34) & 0x3f);
  uVar28 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar11 + -0x688) = uVar33 ^ uVar52;
  uVar19 = DAT_182671818;
  uVar32 = (*(ulonglong *)(lVar11 - (uVar45 ^ 0x47fd5c3b)) ^ uVar57) >>
           (((byte)uVar23 ^ 0xef) & 0x3f);
  *(ulonglong *)(lVar11 + -0x600) = uVar32 ^ uVar28;
  uVar45 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xe5d44912)) = (uVar32 | uVar33) ^ uVar45;
  *puVar9 = CONCAT44(uVar17,uVar13) ^ 0xbe9dee4fb6249b54 | uVar36 ^ *puVar6;
  uVar28 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  uVar39 = *puVar8 ^ *puVar4 ^ uVar28 ^ uVar45 ^ uVar39;
  *puVar2 = uVar39;
  uVar19 = DAT_182671710;
  *puVar3 = (CONCAT44(uVar14,DAT_182671594) ^ 0x2a032b200c317a98) + (uVar39 ^ uVar28) ^ uVar47;
  *puVar1 = 0x66655a3aa075bf43;
  uVar39 = *puVar7;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar22 * 4) = uVar10 ^ uVar30;
  *puVar5 = (CONCAT44(uVar16,uVar18) ^ 0x125c6e674dc27136) + (uVar39 ^ uVar49) ^
            CONCAT44(uVar19,uVar19);
  return;
}



############ FUN_ 180e80390 size=5657 ############

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

void FUN_180e80390(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  byte bVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  undefined4 uVar22;
  uint uVar23;
  ulonglong *puVar24;
  int *piVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  
  uVar18 = DAT_1826715c4;
  uVar11 = DAT_182671584;
  uVar9 = DAT_182671578;
  lVar6 = DAT_182671560;
  uVar29 = (ulonglong)DAT_182671578;
  uVar50 = (ulonglong)DAT_182671584;
  uVar33 = DAT_182671584 ^ DAT_182671578;
  uVar35 = (ulonglong)DAT_182671578;
  uVar3 = *(uint *)(&DAT_182611e78 + DAT_182671b28);
  uVar23 = *(uint *)(&DAT_182611e70 + (uVar29 ^ 0xca354f65) + (longlong)DAT_182671b28) ^
           DAT_182671584;
  uVar32 = (ulonglong)uVar33;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x800);
  DAT_182671570 = uVar33;
  *(uint *)(DAT_182671560 + -0x47c) = (DAT_182671584 ^ 0xdf5425f2) + (DAT_182671578 ^ 0x4dc46828);
  uVar40 = CONCAT44(uVar33,uVar33);
  uVar34 = CONCAT44(DAT_182671670,DAT_182671670);
  *puVar1 = (CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar6 + -0x600)) +
            (uVar40 ^ 0xb4ab1cbff6f7b330) ^ uVar34;
  bVar4 = (byte)uVar33;
  puVar38 = (ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0xda95d6a7));
  uVar43 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  uVar31 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xca35437d)) =
       (*(ulonglong *)(lVar6 - (uVar35 ^ 0xca3549cd)) ^ uVar43) + (uVar34 ^ *puVar38) ^ uVar31;
  uVar35 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0x10a0976a)) ^ uVar43) << ((bVar4 ^ 0xf3) & 0x3f);
  *(ulonglong *)(lVar6 + -0x688) = uVar35 ^ CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar19 = DAT_182671800;
  bVar5 = (byte)uVar11;
  uVar41 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  uVar34 = (uVar43 ^ *(ulonglong *)(lVar6 + -0x6b8)) >> ((bVar5 ^ 0xb8) & 0x3f);
  *(ulonglong *)(lVar6 + -0xa80) = uVar34 ^ uVar41;
  uVar18 = DAT_1826717bc;
  uVar27 = CONCAT44(uVar19,uVar19);
  uVar34 = (uVar34 | uVar35) ^ uVar27;
  *(ulonglong *)(lVar6 + -0x748) = uVar34;
  uVar44 = CONCAT44(uVar18,uVar18);
  uVar48 = CONCAT44(DAT_182671658,DAT_182671658);
  uVar34 = uVar44 ^ uVar27 ^ *(ulonglong *)(lVar6 + -0xc08) ^ uVar31 ^ uVar34;
  uVar35 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar6 + -0xa88) = uVar34;
  uVar20 = DAT_1826717d8;
  uVar42 = (uVar35 ^ *(ulonglong *)(lVar6 + -0xa60)) + (uVar44 ^ uVar34) ^ uVar48;
  *(ulonglong *)(lVar6 + -0xa0) = uVar42;
  uVar18 = DAT_182671674;
  lVar6 = DAT_182671560;
  uVar47 = CONCAT44(uVar20,uVar20);
  uVar36 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xca3545fd)) ^ uVar44) <<
           ((bVar4 ^ 0xfc) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar36 ^ uVar47;
  uVar8 = DAT_1826717c8;
  bVar26 = (byte)uVar9;
  uVar34 = (uVar44 ^ uVar34) >> ((bVar26 ^ 0x67) & 0x3f);
  uVar49 = (ulonglong)DAT_1826717c8;
  uVar35 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar6 + -0x610) = uVar34 ^ CONCAT44(uVar18,uVar18);
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar34 = (uVar36 | uVar34) ^ uVar35;
  *(ulonglong *)(lVar6 + -0x1d8) = uVar34;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0xda95dd57)) =
       uVar39 ^ uVar35 ^ uVar48 ^ uVar34 ^ uVar42;
  uVar46 = CONCAT44(DAT_182671830,DAT_182671830);
  uVar34 = uVar46 ^ *(ulonglong *)(lVar6 + -0xbf0);
  uVar42 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar6 + -0x5c8) = (*(ulonglong *)(lVar6 + -0xc08) ^ uVar31) + uVar34 ^ uVar42;
  uVar18 = DAT_18267164c;
  puVar2 = (ulonglong *)(lVar6 + -0x3f0);
  *(ulonglong *)(lVar6 + -0x80) = (uVar39 ^ *puVar2) >> ((bVar5 ^ 0x83) & 0x3f);
  lVar6 = DAT_182671560;
  uVar31 = CONCAT44(uVar18,uVar18);
  uVar35 = CONCAT44(DAT_182671808,DAT_182671808);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar34 << ((bVar4 ^ 0xde) & 0x3f) ^ uVar31;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xca354e85)) =
       (*(ulonglong *)(lVar6 - (uVar29 ^ 0xca354485)) ^ uVar46) >> ((bVar5 ^ 0x93) & 0x3f) ^ uVar35;
  lVar6 = DAT_182671560;
  puVar24 = (ulonglong *)(DAT_182671560 + -0x1f0);
  puVar28 = (ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0x638) = (uVar40 ^ 0xe373d499cc2ad47) + 0xf5c6457cbe012fc6;
  uVar34 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar6 + -0x670) = (uVar35 ^ *puVar24 | uVar31 ^ *puVar28) ^ uVar34;
  *(ulonglong *)(lVar6 - (uVar50 ^ 0xda95dd1f)) =
       *(ulonglong *)(lVar6 - (uVar29 ^ 0xca35494d)) ^ CONCAT44(uVar9,uVar33) ^ 0xc4d6c98e39332ff9;
  uVar35 = CONCAT44(DAT_182671608,DAT_182671608);
  uVar34 = *(ulonglong *)(lVar6 - (uVar29 ^ 0xca354abd)) ^ uVar35 ^ uVar34 ^ uVar42 ^
           *(ulonglong *)(lVar6 + -0x670);
  uVar44 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  *(ulonglong *)(lVar6 + -0x600) = uVar34;
  *puVar1 = (uVar34 ^ uVar35) + (uVar48 ^ *(ulonglong *)(lVar6 + -0xa0)) ^ uVar44;
  uVar18 = DAT_182671718;
  *(ulonglong *)(lVar6 + -0x6b8) = uVar50 << 0x2c ^ 0x2b0a000000000000;
  uVar22 = DAT_1826718a0;
  uVar10 = DAT_1826715a0;
  uVar13 = DAT_182671598;
  lVar6 = DAT_182671560;
  uVar36 = (uVar35 ^ uVar34) << ((bVar26 ^ 0x4f) & 0x3f);
  puVar24 = (ulonglong *)(DAT_182671560 + -0x600);
  bVar30 = (byte)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar36 ^ CONCAT44(uVar18,uVar18);
  uVar19 = DAT_182671738;
  uVar35 = (uVar35 ^ *puVar24) >> ((bVar30 ^ 0x5e) & 0x3f);
  uVar34 = *puVar2;
  *(ulonglong *)(lVar6 + -0xa80) = uVar35 ^ CONCAT44(uVar22,uVar22);
  uVar18 = DAT_1826716d8;
  lVar6 = DAT_182671560;
  uVar31 = uVar34 ^ uVar39;
  uVar48 = CONCAT44(uVar19,uVar19);
  uVar36 = (uVar35 | uVar36) ^ uVar48;
  uVar35 = *(ulonglong *)(DAT_182671560 + -0x5c8);
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar36;
  uVar8 = DAT_182671580;
  uVar45 = CONCAT44(uVar18,uVar18);
  uVar37 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *(ulonglong *)(lVar6 + -0xa60) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x256a2958)) ^ uVar45 ^ uVar48 ^ uVar44 ^ uVar36;
  *(ulonglong *)(lVar6 + -0xa88) = (uVar42 ^ uVar35) + uVar31 ^ uVar43;
  *(ulonglong *)(lVar6 + -0x610) = (uVar34 >> 0x20 ^ uVar49) >> 10 ^ uVar37;
  *(ulonglong *)(lVar6 + -0x9f8) = uVar31 << ((bVar5 ^ 0xb1) & 0x3f) ^ uVar47;
  uVar34 = (ulonglong)DAT_1826715ac;
  *(longlong *)(lVar6 - (uVar32 ^ 0x10a0900a)) =
       -0x28af9e870b874a9a <<
       ((*(byte *)(lVar6 - ((ulonglong)uVar8 ^ 0xf5fef007)) ^ (byte)uVar20) & 0x3f);
  puVar24 = (ulonglong *)(DAT_182671560 - (uVar34 ^ 0xdfee59cd));
  *(ulonglong *)(lVar6 + -0xc08) =
       (uVar47 ^ *(ulonglong *)(lVar6 + -0x9f8) | uVar37 ^ *(ulonglong *)(lVar6 + -0x610)) ^ uVar46;
  lVar6 = DAT_182671560;
  uVar35 = (ulonglong)DAT_1826717e0;
  uVar31 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar42 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar34 = *puVar24 ^ uVar46 ^ uVar43 ^ *(ulonglong *)(DAT_182671560 + -0xa88);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar34 ^ uVar31;
  uVar10 = DAT_1826715a8;
  *(ulonglong *)(lVar6 + -0xbf0) = (uVar44 ^ *puVar1) + uVar34 ^ uVar42;
  puVar28 = (ulonglong *)(lVar6 - (uVar50 ^ 0xda95de27));
  uVar36 = CONCAT44(DAT_182671864,DAT_182671864);
  uVar34 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xf5fefae7)) =
       (*puVar28 ^ uVar31) << (((byte)uVar10 ^ 0x30) & 0x3f) ^ uVar36;
  uVar19 = DAT_182671750;
  uVar31 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar35 = *(ulonglong *)(lVar6 - (uVar34 ^ 0x7fce357e)) >> 0x20 ^ uVar31 ^ uVar35;
  *(ulonglong *)(lVar6 + -0x1f0) = uVar35;
  uVar34 = (ulonglong)DAT_18267156c;
  uVar35 = (*(ulonglong *)(lVar6 + -0x318) ^ uVar36 | uVar35 ^ uVar31) ^ uVar41;
  *(ulonglong *)(lVar6 + -0x638) = uVar35;
  uVar18 = DAT_182671664;
  uVar10 = DAT_18267159c;
  uVar8 = DAT_182671574;
  uVar36 = CONCAT44(uVar19,uVar19);
  uVar45 = uVar45 ^ *(ulonglong *)(lVar6 + -0xa60);
  uVar44 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar6 + -0x3b8) =
       *(ulonglong *)(lVar6 - (uVar34 ^ 0xf681ff40)) ^ uVar35 ^ uVar41 ^ uVar36 ^ uVar42;
  uVar34 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 + -0x670) = (uVar43 ^ *(ulonglong *)(lVar6 + -0xa88)) + uVar45 ^ uVar44;
  *(ulonglong *)(lVar6 + -0xa0) = uVar45 << ((bVar5 ^ 0x87) & 0x3f) ^ uVar34;
  uVar15 = DAT_1826715a0;
  uVar46 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x35fe7976)) =
       uVar45 >> (((byte)uVar8 ^ 0xc3) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar6 + -0x600) =
       (CONCAT44(uVar11,uVar9) ^ 0x3ed9bf229a44f0c7) << ((bVar4 ^ 199) & 0x3f);
  uVar35 = CONCAT44(DAT_182671840,DAT_182671840);
  uVar34 = (*(ulonglong *)(lVar6 + -0x6b8) ^ uVar46 | *(ulonglong *)(lVar6 + -0xa0) ^ uVar34) ^
           uVar35;
  uVar31 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar6 + -0x688) = uVar34;
  uVar34 = *(ulonglong *)(lVar6 + -0x670) ^ uVar31 ^ uVar34 ^ uVar35 ^ uVar44;
  *(ulonglong *)(lVar6 + -0xa80) = uVar34;
  uVar17 = DAT_1826715b4;
  lVar6 = DAT_182671560;
  uVar48 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar35 = (CONCAT44(DAT_1826715b4,DAT_18267157c) ^ 0x9ea19c4dd65d33c0) + (uVar34 ^ uVar31);
  uVar34 = CONCAT44(DAT_182671860,DAT_182671860);
  puVar24 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b0 ^ 0xfff9f505));
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar35 ^ uVar48;
  uVar18 = DAT_182671880;
  uVar31 = (*puVar24 ^ uVar42) + (uVar40 ^ 0x3933c47ad763e7f5);
  *(ulonglong *)(lVar6 + -0x5c8) = uVar31 ^ uVar34;
  uVar42 = CONCAT44(uVar18,uVar18);
  uVar34 = *(ulonglong *)(lVar6 + -0x748);
  uVar31 = uVar31 + uVar35 ^ uVar42;
  *puVar2 = uVar31;
  uVar19 = DAT_1826718bc;
  *(ulonglong *)(lVar6 + -0x1d8) =
       (CONCAT44(uVar8,DAT_182671594) ^ 0xa707a81a65f49124) +
       (*(ulonglong *)(lVar6 + -0x670) ^ uVar44);
  uVar18 = DAT_1826718b4;
  uVar35 = uVar35 << ((bVar4 ^ 0xdc) & 0x3f);
  uVar41 = CONCAT44(uVar19,uVar19);
  uVar37 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar6 + -0x610) =
       (uVar48 ^ uVar34) >> (((byte)DAT_1826715ac ^ 0xf7) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar6 + -0x9f8) = uVar35 ^ uVar41;
  uVar12 = DAT_18267158c;
  uVar8 = DAT_182671588;
  lVar7 = DAT_182671560;
  uVar40 = (ulonglong)DAT_18267158c;
  uVar48 = CONCAT44(uVar18,uVar18);
  puVar24 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0x12801c88));
  uVar34 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a4 ^ 0x1bce17d5)) ^ uVar37 | uVar35) ^
           uVar48;
  *(ulonglong *)(DAT_182671560 + -0xc08) = uVar34;
  uVar21 = DAT_18267185c;
  *puVar1 = (*puVar24 ^ uVar48) >> (((byte)uVar8 ^ 0x84) & 0x3f);
  uVar19 = DAT_1826718cc;
  uVar8 = DAT_18267157c;
  uVar43 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar7 + -0x80) = uVar34 ^ uVar31 ^ uVar43 ^ uVar48 ^ uVar42;
  uVar18 = DAT_1826716f8;
  uVar31 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar7 + -0x318) =
       (*(ulonglong *)(lVar7 - (uVar40 ^ 0xc555ed67)) ^ uVar36) +
       (CONCAT44(uVar33,uVar8) ^ 0x305d181fb4c16116) ^ uVar31;
  uVar35 = CONCAT44(uVar18,uVar18);
  uVar34 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715b4 ^ 0x3aaa10d0)) =
       (CONCAT44(uVar11,uVar12) ^ 0x3ca0b30b609ac007) + (*(ulonglong *)(lVar7 + -0x670) ^ uVar44) ^
       uVar35;
  uVar18 = DAT_18267174c;
  uVar8 = DAT_1826715b0;
  uVar31 = *(ulonglong *)(lVar7 + -0x318) ^ uVar31;
  uVar48 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar7 + -0x638) =
       (*(ulonglong *)(lVar7 - (uVar34 ^ 0x2eb04913)) ^ uVar35) + uVar31 ^ uVar48;
  uVar35 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar7 + -0xa88) = uVar31 << 0x10 ^ CONCAT44(uVar18,uVar18);
  uVar18 = DAT_18267180c;
  uVar14 = DAT_182671758;
  uVar16 = DAT_1826715a8;
  uVar34 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar7 + -0xa60) = uVar31 >> (((byte)uVar8 ^ 0xc5) & 0x3f) ^ uVar35;
  uVar10 = DAT_182671580;
  uVar36 = CONCAT44(uVar18,uVar18);
  uVar44 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar7 + -0x600) =
       (*(ulonglong *)(lVar7 - (uVar34 ^ 0x8a010d70)) ^ uVar35 | uVar31 << 0x10) ^ uVar36;
  uVar31 = CONCAT44(uVar14,uVar14);
  uVar34 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar7 - (uVar44 ^ 0xf5fef95f)) =
       (*(ulonglong *)(lVar7 + -0x6b8) ^ uVar46) + *(longlong *)(lVar7 + -0x1d8);
  uVar18 = DAT_18267181c;
  uVar35 = (ulonglong)DAT_182671568;
  uVar34 = *(ulonglong *)(lVar7 - (uVar34 ^ 0x7fce33fe)) ^ uVar31 ^ uVar36 ^ uVar48 ^
           *(ulonglong *)(lVar7 + -0x638);
  *(ulonglong *)(lVar7 + -0x688) = uVar34;
  lVar6 = DAT_182671560;
  uVar44 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x11ce1b45)) =
       (uVar34 ^ uVar31) + (*puVar2 ^ uVar42) ^ uVar44;
  uVar20 = DAT_1826718c4;
  uVar18 = DAT_182671724;
  uVar35 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar6 + -0xbf0) =
       (*(ulonglong *)(lVar6 + -0x688) ^ uVar31) << (((byte)uVar8 ^ 0xc1) & 0x3f) ^ uVar35;
  uVar19 = DAT_1826718a8;
  uVar34 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar6 + -0x5c8) =
       ((ulonglong)uVar14 << 0x14 | (ulonglong)(uVar14 >> 0xc)) ^
       *(ulonglong *)(lVar6 + -0x688) >> 0xc ^ uVar34;
  uVar36 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a4 ^ 0x1bce168d)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671590 ^ 0x12801b70)) ^ uVar35 |
       *(ulonglong *)(lVar6 - (uVar50 ^ 0xda95db6f)) ^ uVar34) ^ uVar36;
  uVar31 = CONCAT44(DAT_182671810,DAT_182671810);
  uVar34 = uVar31 ^ uVar36 ^ uVar44 ^ *(ulonglong *)(lVar6 + -0xa80) ^
           *(ulonglong *)(lVar6 + -0x748);
  *(ulonglong *)(lVar6 + -0x9f8) = uVar34;
  *(ulonglong *)(lVar6 - (uVar29 ^ 0xca354965)) =
       (uVar34 ^ uVar31) << ((*(byte *)(lVar6 + -0xbf0) ^ (byte)uVar18) & 0x3f);
  uVar19 = DAT_1826717b0;
  uVar8 = DAT_182671588;
  uVar40 = CONCAT44(DAT_182671790,DAT_182671790);
  *puVar38 = (*(ulonglong *)(lVar6 + -0x80) ^ uVar43) + (uVar48 ^ *(ulonglong *)(lVar6 + -0x638)) ^
             uVar40;
  uVar18 = _DAT_182671618;
  uVar14 = DAT_18267159c;
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar6 + -0xc08) =
       (CONCAT44(uVar10,uVar9) ^ 0xca08d1cd47a493f2) >> (((byte)uVar16 ^ 4) & 0x3f);
  uVar48 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0x1f841304)) =
       (*(ulonglong *)(lVar7 + -0x80) ^ uVar43) << (((byte)DAT_18267157c ^ 0x1b) & 0x3f) ^ uVar48;
  uVar35 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671580 ^ 0xf5feff8f)) =
       *(ulonglong *)
        (*(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0x1f8413d4)) ^ CONCAT44(uVar19,uVar19)) ^ uVar39
  ;
  uVar43 = CONCAT44(DAT_182671814,DAT_182671814);
  uVar29 = ((ulonglong)uVar21 << 0x19 | (ulonglong)(uVar21 >> 7)) ^ *puVar28 >> 7;
  uVar42 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar7 + -0x1f0) = uVar29 ^ uVar43;
  uVar34 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar7 + -0x318) =
       (*(ulonglong *)(lVar7 - (uVar35 ^ 0x3aaa1298)) ^ uVar48 | uVar29) ^ uVar42;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671568 ^ 0x11ce1b4d)) =
       *(ulonglong *)(lVar7 - (uVar34 ^ 0xf681f7a8)) ^ *puVar1 ^ uVar42 ^ uVar40 ^ uVar41;
  lVar6 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715b0 ^ 0xfff9f495)) =
       (*(ulonglong *)(lVar7 - (uVar32 ^ 0x10a09b5a)) ^ uVar41) +
       (uVar44 ^ *(ulonglong *)(lVar7 + -0xa80)) ^ uVar29;
  uVar44 = (*(ulonglong *)(lVar7 + -0xa88) ^ uVar41) << (((byte)uVar12 ^ 200) & 0x3f);
  uVar35 = (*(ulonglong *)(lVar7 + -0xa88) ^ uVar41) >> ((bVar26 ^ 0x5c) & 0x3f);
  uVar48 = CONCAT44(uVar14,DAT_182671588);
  uVar42 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar44 ^ CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *(ulonglong *)(lVar7 + -0x1d8) = uVar35 ^ uVar42;
  uVar39 = (ulonglong)DAT_18267157c;
  uVar34 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar6 + -0xa0) =
       (uVar48 ^ 0x9fa6dd4183c91d26) >> (((byte)DAT_18267157c ^ 0xd) & 0x3f);
  uVar12 = DAT_1826715a0;
  uVar35 = (uVar44 | uVar35) ^ uVar34;
  *(ulonglong *)(lVar6 + -0x600) = uVar35;
  uVar9 = DAT_182671590;
  uVar41 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671598 ^ 0x7fce360e)) =
       uVar27 ^ uVar35 ^ uVar34 ^ uVar29 ^ *(ulonglong *)(lVar6 + -0xa60);
  uVar18 = DAT_182671770;
  uVar8 = DAT_182671574;
  uVar34 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar6 + -0x688) =
       (uVar36 ^ *(ulonglong *)(lVar6 + -0x748)) >> (((byte)DAT_182671574 ^ 0xea) & 0x3f);
  uVar35 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 + -0x5c8) =
       (*puVar1 ^ uVar40) + (*(ulonglong *)(lVar6 + -0x9f8) ^ uVar31) ^ uVar35;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x2eb04313)) =
       CONCAT44(uVar17,uVar8) ^ 0xe377bf9ffda3ffd2 | 0xa2233d9b71221ed0;
  uVar18 = _DAT_1826715d8;
  uVar44 = (*(ulonglong *)(lVar6 + -0x9f8) ^ uVar31) << (((byte)uVar12 ^ 0x70) & 0x3f);
  uVar34 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar6 + -0x610) = uVar44 ^ CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar34 = (*(ulonglong *)(DAT_182671560 - (uVar34 ^ 0xdfee5c3d)) ^ uVar31) >> ((byte)uVar12 & 0x3f)
  ;
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar34 ^ CONCAT44(uVar18,uVar18);
  lVar6 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar36 = (ulonglong)DAT_182671594;
  piVar25 = (int *)(DAT_182671560 - (uVar39 ^ 0x300a175a));
  *(ulonglong *)(DAT_182671560 + -0xc08) = (uVar44 | uVar34) ^ uVar31;
  *(int *)(lVar6 - (uVar36 ^ 0x42354d01)) = *piVar25 * *(int *)(lVar6 + -0x47c);
  uVar18 = DAT_1826717ac;
  uVar34 = *(ulonglong *)(lVar6 - (uVar36 ^ 0x4235467d)) ^ uVar31 ^ uVar35 ^ uVar43 ^
           *(ulonglong *)(lVar6 + -0x5c8);
  *(ulonglong *)(lVar6 + -0x670) = uVar34;
  uVar48 = CONCAT44(uVar18,uVar18);
  uVar44 = CONCAT44(DAT_182671784,DAT_182671784);
  *(ulonglong *)(lVar6 + -0x80) =
       (uVar29 ^ *(ulonglong *)(lVar6 + -0xa60)) + (uVar34 ^ uVar43) ^ uVar48;
  uVar34 = CONCAT44(uVar11,DAT_18267156c);
  *(ulonglong *)(lVar6 + -0x3b8) =
       (*(ulonglong *)(lVar6 - (uVar50 ^ 0xda95d8d7)) ^ uVar43) << ((bVar26 ^ 0x70) & 0x3f) ^ uVar44
  ;
  uVar8 = DAT_1826715a4;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0x10a09022)) =
       uVar34 ^ 0xf0d6d4818c95296e | CONCAT44(uVar13,uVar9) ^ 0x1e95b630750db468;
  uVar31 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(lVar6 + -0x318) =
       (uVar43 ^ *(ulonglong *)(lVar6 + -0x670)) >> (((byte)uVar8 ^ 0xfe) & 0x3f) ^ uVar31;
  uVar18 = DAT_182671680;
  uVar9 = DAT_1826715b4;
  uVar34 = (ulonglong)DAT_182671588;
  uVar50 = CONCAT44(uVar10,DAT_182671588);
  uVar29 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar6 + -0xa80) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715b4 ^ 0x3aaa10f8)) ^ uVar42) <<
       ((byte)*(undefined8 *)(lVar6 + -0x1f0) & 0x3f);
  uVar8 = DAT_182671580;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 - (uVar29 ^ 0x7fce3f76)) =
       (*(ulonglong *)(lVar6 - (uVar34 ^ 0x1f8413a4)) ^ uVar31 |
       *(ulonglong *)(lVar6 + -0x3b8) ^ uVar44) ^ uVar36;
  uVar18 = DAT_1826718c0;
  uVar34 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar6 + -0xa0) =
       (CONCAT44(uVar15,uVar8) ^ 0x9e5097ebfa05c18f) >> (((byte)uVar9 ^ 0x27) & 0x3f);
  uVar31 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x12801638)) =
       *(ulonglong *)(lVar6 - (uVar34 ^ 0xdfee5f4d)) ^ uVar31 ^ uVar36 ^ uVar48 ^
       *(ulonglong *)(lVar6 + -0x80);
  uVar34 = *puVar2;
  *(ulonglong *)(lVar6 + -0x600) = uVar50 ^ 0xfefffb76a5ffaaff | 0x92b13302a54da2df;
  uVar18 = DAT_1826718b8;
  *(ulonglong *)(lVar6 + -0x748) =
       (*(ulonglong *)(lVar6 - (uVar29 ^ 0x7fce3036)) ^ uVar35) + (uVar27 ^ uVar34) ^ uVar37;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0x10a0975a)) =
       CONCAT44(uVar18,uVar18) ^ (uVar27 ^ uVar34) << 0x25;
  *puVar1 = (uVar27 ^ *puVar2) >> (((byte)uVar8 ^ 0xe4) & 0x3f) ^ uVar31;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar23 * 4) = uVar3 ^ uVar33;
  return;
}



############ FUN_ 180e82c10 size=5587 ############

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

void FUN_180e82c10(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_res20;
  byte local_e8;
  byte local_e0;
  byte local_b8;
  
  uVar5 = DAT_18267180c;
  uVar9 = DAT_1826715ac;
  uVar8 = DAT_1826715a4;
  uVar15 = DAT_1826715a0;
  uVar7 = DAT_182671584;
  uVar4 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar41 = (ulonglong)DAT_1826715ac;
  uVar24 = (ulonglong)DAT_1826715a4;
  uVar37 = (ulonglong)DAT_18267156c;
  uVar42 = (ulonglong)DAT_1826715a0;
  uVar12 = DAT_1826715a4 & DAT_18267156c;
  uVar19 = (ulonglong)uVar12;
  uVar22 = DAT_182671578 + DAT_1826715a0;
  uVar23 = (ulonglong)DAT_182671584;
  DAT_182671598 = DAT_1826715ac << 0x10 | DAT_1826715ac >> 0x10;
  uVar38 = DAT_182671588 ^ DAT_182671584;
  uVar30 = *(uint *)(&DAT_182611e78 + DAT_182671b30) ^ DAT_182671598;
  uVar13 = *(uint *)(&DAT_182611e70 + (uVar19 ^ 0x8c2e3c10) + (longlong)DAT_182671b30) ^
           DAT_1826715ac;
  uVar28 = (ulonglong)_DAT_1826715e0;
  uVar34 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar25 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  uVar27 = CONCAT44(DAT_182671648,DAT_182671648);
  uVar16 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0x9c2fbf08)) ^ uVar27 ^ uVar25
           ^ uVar34 ^ *(ulonglong *)(DAT_182671560 + -0xbf0);
  uVar31 = CONCAT44(DAT_18267173c,DAT_18267173c);
  DAT_182671570 = uVar22;
  DAT_182671580 = uVar38;
  DAT_18267158c = uVar12;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar16;
  uVar10 = _DAT_182671838;
  uVar18 = CONCAT44(uVar5,uVar5);
  uVar28 = (uVar16 >> 0x20 ^ uVar28) >> 5;
  *(ulonglong *)(lVar2 + -0x670) = (uVar34 ^ uVar16) << 0x1b ^ uVar18;
  *(ulonglong *)(lVar2 + -0x898) = uVar28 ^ uVar31;
  uVar11 = DAT_1826718b4;
  lVar3 = DAT_182671560;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar16 = *(ulonglong *)(DAT_182671560 + -0x80);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x240);
  uVar28 = *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xacee7a06)) ^ uVar18 | uVar28;
  uVar18 = uVar28 ^ uVar34;
  *(ulonglong *)(lVar2 + -0x800) = uVar18;
  uVar5 = DAT_18267169c;
  uVar39 = CONCAT44(uVar11,uVar11);
  *puVar1 = (uVar25 ^ uVar16) - uVar28 ^ uVar39;
  uVar10 = DAT_1826717bc;
  uVar14 = DAT_182671588;
  uVar6 = DAT_182671578;
  uVar16 = (ulonglong)DAT_1826715e8;
  uVar28 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar31 = CONCAT44(uVar5,uVar5);
  uVar17 = DAT_1826715e8 >> 0x17;
  uVar18 = *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x6656d68c)) ^ uVar31 ^ uVar28 ^ uVar34 ^
           uVar18;
  *(ulonglong *)(lVar3 + -0xc08) = uVar18;
  uVar5 = DAT_1826717d0;
  uVar34 = ((ulonglong)uVar17 | uVar16 << 9) ^ uVar18 >> 0x17;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar34 ^ CONCAT44(uVar10,uVar10);
  lVar2 = DAT_182671560;
  uVar18 = CONCAT44(uVar5,uVar5);
  uVar16 = *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xacee707e));
  *(uint *)(DAT_182671560 + -0x678) =
       (uVar38 ^ 0xa7b92077) << ((byte)*(undefined4 *)(DAT_182671560 + -0x874) & 0x1f);
  uVar5 = DAT_1826715bc;
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar16 ^ uVar28) << (((byte)uVar6 ^ 0xd7) & 0x3f) ^ uVar18;
  uVar10 = DAT_1826717dc;
  puVar35 = (ulonglong *)(lVar2 + -0x1d8);
  uVar16 = CONCAT44(uVar5,uVar5);
  *puVar35 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0x8d44b51f)) ^ uVar18 | uVar34) ^
             uVar16;
  uVar11 = DAT_18267185c;
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar43 = (ulonglong)uVar38;
  puVar29 = (ulonglong *)(DAT_182671560 - (uVar42 ^ 0x44268b31));
  *puVar29 = (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x628)) -
             (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x44260558)) ^ uVar16) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x318) =
       (CONCAT44(uVar22,uVar38) ^ 0xba5ee975629b7437) + 0x81ef76d850141ac0;
  uVar5 = DAT_1826717a8;
  uVar31 = CONCAT44(DAT_182671628,DAT_182671628);
  bVar40 = (byte)uVar7;
  uVar18 = *(ulonglong *)(lVar2 - (uVar23 ^ 0x6656d2e4)) ^ CONCAT44(uVar11,uVar11) ^ uVar31 ^ uVar39
           ^ *(ulonglong *)(lVar2 + -0x2a0);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar18;
  uVar17 = DAT_182671598;
  uVar34 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x110) = (uVar18 ^ uVar31) >> ((bVar40 ^ 0x8c) & 0x3f) ^ uVar34;
  lVar3 = DAT_182671560;
  puVar32 = (ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x44268a49));
  uVar18 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar31 ^ *puVar32) << (((byte)uVar17 ^ 0x3e) & 0x3f) ^ uVar18;
  uVar17 = DAT_182671578;
  puVar21 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671588 ^ 0x95a35648));
  uVar33 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar3 + -0x670) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0xacee74ee)) ^ uVar18 | uVar34 ^ *puVar21) ^ uVar33;
  uVar5 = DAT_182671874;
  *(ulonglong *)(lVar3 + -0x80) =
       (CONCAT44(uVar17,uVar38) ^ 0xb9a0b39b32382aad) +
       (CONCAT44(uVar7,uVar22) ^ 0xd04b394f6bf430f1);
  uVar26 = CONCAT44(uVar5,uVar5);
  puVar36 = (ulonglong *)(lVar3 - (uVar41 ^ 0x44260c80));
  uVar31 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *puVar36 = (uVar39 ^ *puVar1) - (*(ulonglong *)(lVar3 - (uVar41 ^ 0x442602f0)) ^ uVar33) ^ uVar26;
  lVar2 = DAT_182671560;
  uVar18 = *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xf3f58d74)) ^ uVar31 ^ uVar33 ^ uVar28 ^
           *(ulonglong *)(DAT_182671560 + -0x670);
  uVar39 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(DAT_182671560 + -0xc08) = uVar18;
  *(ulonglong *)(lVar2 + -0x6d0) = (uVar18 ^ uVar31) >> (((byte)uVar9 ^ 0xb4) & 0x3f) ^ uVar39;
  local_res20 = (byte)uVar4;
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar31 ^ uVar18) << ((local_res20 ^ 0x84) & 0x3f) ^ uVar33;
  *(undefined1 *)(lVar2 - (uVar24 ^ 0xacee7e7f)) = **(undefined1 **)(lVar2 + -0xba0);
  uVar5 = DAT_18267165c;
  uVar18 = uVar39 ^ *(ulonglong *)(lVar2 + -0x6d0) | uVar33 ^ *(ulonglong *)(lVar2 + -0x8a8);
  uVar39 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar2 + -0x628) = uVar18 ^ uVar39;
  uVar31 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x318) = (uVar28 ^ *(ulonglong *)(lVar2 + -0xa88)) - uVar18 ^ uVar31;
  *(undefined8 *)(lVar2 - (uVar23 ^ 0x6656d204)) = 0xf1d13e6084f88e39;
  uVar18 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar2 + -0xbf0) =
       uVar26 ^ uVar16 ^ *puVar35 ^ *(ulonglong *)(lVar2 + -0x800) ^ uVar18;
  uVar5 = DAT_182671890;
  *(undefined1 *)(lVar2 + -0x5e9) = **(undefined1 **)(lVar2 + -0x900);
  local_e8 = (byte)uVar12;
  uVar28 = CONCAT44(uVar5,uVar5);
  *puVar21 = (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar18) >> ((local_e8 ^ 0x39) & 0x3f) ^ uVar28;
  uVar10 = DAT_18267182c;
  uVar16 = (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar18) << 7;
  *(ulonglong *)(lVar2 + -0x898) = uVar16 ^ CONCAT44(DAT_182671698,DAT_182671698);
  uVar5 = DAT_1826716e8;
  uVar16 = *(ulonglong *)(lVar2 + -0x110) ^ uVar28 | uVar16;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x80) = uVar16 ^ uVar18;
  uVar28 = CONCAT44(uVar5,uVar5);
  *puVar1 = (uVar26 ^ *puVar36) - uVar16 ^ uVar28;
  uVar6 = DAT_182671598;
  uVar16 = CONCAT44(DAT_182671608,DAT_182671608);
  bVar20 = (byte)uVar22;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x442687c9)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x491e3b7e)) ^
       *(ulonglong *)(lVar2 + -0x318) ^ uVar16 ^ uVar18 ^ uVar31;
  lVar3 = DAT_182671560;
  uVar16 = *(ulonglong *)(lVar2 + -0x670) ^ uVar16;
  uVar18 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar2 + -0xc08) = uVar16 >> ((bVar20 ^ 0xb9) & 0x3f) ^ uVar18;
  uVar16 = uVar16 << ((bVar40 ^ 0x96) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar16 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x8a8) = CONCAT44(uVar17,uVar8) ^ 0xec1e503f5713ca1a | uVar16;
  uVar26 = CONCAT44(DAT_18267163c,DAT_18267163c);
  uVar17 = DAT_182671578 ^ 0x40e91d2b;
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 - (uVar43 ^ 0xf3f58bf4)) ^ uVar18 | uVar16) ^ uVar26;
  *(uint *)(lVar3 - (uVar43 ^ 0xf3f58588)) = uVar17 + *(int *)(lVar3 - (uVar37 ^ 0x9c2fb8fc));
  uVar25 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar18 = (*(ulonglong *)(lVar3 + -0x318) ^ uVar31) - (CONCAT44(uVar6,uVar6) ^ 0x40cb23ec5f6da532);
  *(int *)(lVar3 + -0x8c) = 0x3d0335ee << (((byte)DAT_182671588 ^ 0x41) & 0x1f);
  uVar5 = DAT_1826716b4;
  uVar16 = *(ulonglong *)(lVar3 + -0xa88) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar18 ^ uVar25;
  uVar25 = CONCAT44(uVar5,uVar5);
  *puVar35 = uVar18 - uVar16 ^ uVar25;
  uVar33 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar16 - (CONCAT44(uVar9,uVar9) ^ 0xa07155ac21d4ea5b) ^ uVar33;
  uVar10 = _DAT_18267188c;
  *(ulonglong *)(lVar3 + -0x110) =
       *(ulonglong *)(lVar3 - (uVar23 ^ 0x6656da2c)) ^ CONCAT44(uVar4,uVar12) ^ uVar26 ^
       0xefcddf7a3a273956;
  uVar5 = DAT_1826716bc;
  lVar2 = DAT_182671560;
  uVar16 = CONCAT44(uVar10,uVar10);
  uVar18 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar39 = *(ulonglong *)(lVar3 + -0x628) ^ *puVar1 ^ uVar16 ^ uVar28 ^ uVar39;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar39;
  uVar31 = (uVar39 ^ uVar16) >> (((byte)uVar8 ^ 0x66) & 0x3f);
  *(ulonglong *)(lVar2 + -0x800) = uVar31 ^ uVar18;
  uVar16 = (uVar39 ^ uVar16) << (((byte)uVar9 ^ 0xb0) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar16 ^ CONCAT44(uVar5,uVar5);
  lVar2 = DAT_182671560;
  uVar31 = uVar31 | uVar16;
  uVar18 = CONCAT44(DAT_182671638,DAT_182671638);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar31 ^ CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar5 = DAT_182671860;
  uVar16 = (*puVar1 ^ uVar28) - (CONCAT44(uVar6,uVar38) ^ 0x1d4c56c99b707d8a);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar16 ^ uVar18;
  uVar28 = CONCAT44(uVar5,uVar5);
  uVar18 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar2 + -0xc08) = uVar16 - uVar31 ^ uVar28;
  puVar36 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x48042f6));
  *puVar36 = (CONCAT44(uVar15,uVar15) ^ 0x90a80c6fbc46c86f) + uVar31 ^ uVar18;
  uVar17 = _DAT_1826716c0;
  uVar5 = DAT_182671644;
  lVar3 = DAT_182671560;
  uVar16 = (ulonglong)_DAT_1826716c0;
  *(ulonglong *)(lVar2 + -0x318) = CONCAT44(uVar12,uVar22) ^ 0xffedbef2ff5b1fdf | 0xdc99692e7530f5a;
  uVar31 = CONCAT44(uVar17,uVar17);
  uVar18 = *puVar35 ^ uVar31 ^ uVar18 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0x6d0);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar18;
  uVar26 = CONCAT44(uVar5,uVar5);
  local_e0 = (byte)uVar38;
  *(ulonglong *)(lVar3 + -0xa88) = uVar18 >> 0x20 ^ uVar26 ^ uVar16;
  uVar16 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x8c2e3d10)) =
       (uVar18 ^ uVar31) << ((local_e0 ^ 0xdc) & 0x3f) ^ uVar16;
  puVar21 = (ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x8d44bca7));
  uVar31 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 + -0xa88) ^ uVar26 | uVar16 ^ *puVar21) ^ uVar31;
  *(undefined1 *)(lVar3 + -0x209) = **(undefined1 **)(lVar3 - (uVar23 ^ 0x6656dad4));
  *(ulonglong *)(lVar3 + -0x898) =
       (*puVar35 ^ uVar25) - (*(ulonglong *)(lVar3 - (uVar37 ^ 0x9c2fb9a0)) ^ uVar31) ^ uVar27;
  uVar5 = DAT_18267166c;
  lVar2 = DAT_182671560;
  uVar16 = CONCAT44(DAT_182671778,DAT_182671778);
  uVar26 = uVar16 ^ *(ulonglong *)(lVar3 + -0xbf0) ^ uVar28 ^ uVar33 ^
           *(ulonglong *)(lVar3 + -0xc08);
  *(ulonglong *)(lVar3 + -0x800) = uVar26;
  uVar10 = DAT_1826717a0;
  uVar39 = CONCAT44(uVar5,uVar5);
  uVar25 = (uVar26 ^ uVar16) >> ((local_e8 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar2 + -0x80) = uVar25 ^ uVar39;
  uVar7 = DAT_182671598;
  uVar18 = CONCAT44(uVar10,uVar10);
  *puVar1 = (uVar26 ^ uVar16) << ((bVar20 ^ 0x97) & 0x3f) ^ uVar18;
  uVar26 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x9c2fb720)) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0xf3f585bc)) ^ uVar18 | uVar25) ^ uVar26;
  uVar25 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  uVar18 = *(ulonglong *)(lVar2 + -0x898) ^ uVar27 ^ uVar26 ^ uVar39 ^
           *(ulonglong *)(lVar2 + -0x8a8);
  uVar16 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xacee74de));
  *(ulonglong *)(lVar2 + -0x318) = uVar18;
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xc08)) - (uVar16 ^ uVar26) ^ uVar25;
  *(ulonglong *)(lVar2 + -0x6d0) = (uVar18 ^ uVar39) >> (((byte)uVar7 ^ 0x1c) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (CONCAT44(uVar9,uVar4) ^ 0xd288821a3faa6b63) -
       (CONCAT44(uVar38,DAT_182671588) ^ 0xb9c7e128008639b);
  uVar28 = CONCAT44(DAT_182671678,DAT_182671678);
  *(ulonglong *)(lVar2 + -0xa88) = (uVar39 ^ uVar18) << ((bVar40 ^ 0xa2) & 0x3f) ^ uVar28;
  uVar16 = CONCAT44(uVar9,DAT_182671578);
  *(undefined1 *)(lVar2 - (uVar19 ^ 0x8c2e39e9)) = **(undefined1 **)(lVar2 + -0xa20);
  uVar5 = DAT_182671574;
  lVar2 = DAT_182671560;
  uVar26 = CONCAT44(DAT_182671600,DAT_182671600);
  *puVar21 = (uVar34 ^ *puVar36 | *puVar29 ^ uVar28) ^ uVar26;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x9c2fbe50)) =
       (uVar16 ^ 0x796b896afa537933) - (CONCAT44(uVar14,uVar5) ^ 0xc970e347c61737e9);
  uVar28 = CONCAT44(DAT_182671870,DAT_182671870);
  *puVar32 = (*(ulonglong *)(lVar2 + -0x898) ^ uVar27) - (uVar26 ^ *(ulonglong *)(lVar2 + -0x110)) ^
             uVar28;
  uVar17 = DAT_182671578;
  uVar16 = CONCAT44(DAT_182671720,DAT_182671720);
  local_b8 = (byte)uVar15;
  uVar18 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x8c2e3400)) =
       *(ulonglong *)(lVar2 + -0x670) ^ *(ulonglong *)(lVar2 + -0x628) ^ uVar16 ^ uVar25 ^ uVar31;
  uVar37 = (*(ulonglong *)(lVar2 + -0x800) ^ uVar16) >> ((local_b8 ^ 0xaf) & 0x3f);
  *puVar1 = uVar37 ^ CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar10 = DAT_182671768;
  *(ulonglong *)(lVar2 + -0x80) =
       (CONCAT44(uVar38,uVar8) ^ 0xcfdbd7d5380191ec) - (CONCAT44(uVar6,uVar17) ^ 0x27c7f01f2263fec6)
  ;
  uVar5 = _DAT_182671618;
  uVar19 = (*(ulonglong *)(lVar2 + -0x800) ^ uVar16) << (((byte)uVar7 ^ 0xc) & 0x3f);
  uVar16 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar2 + -0xc08) = uVar19 ^ CONCAT44(uVar10,uVar10);
  uVar31 = CONCAT44(uVar5,uVar5);
  uVar19 = (uVar37 | uVar19) ^ uVar31;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar19;
  uVar5 = DAT_182671740;
  *(undefined1 *)(lVar2 + -0x209) = **(undefined1 **)(lVar2 - (uVar16 ^ 0x95a35cf8));
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x2a0) =
       (*(ulonglong *)(lVar2 + -0x670) ^ uVar25) -
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0x44260c28)) ^ uVar31) ^ uVar37;
  uVar5 = DAT_1826715b4;
  uVar7 = DAT_1826715b0;
  lVar3 = DAT_182671560;
  uVar33 = (ulonglong)DAT_1826715b0;
  uVar25 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xacee7f6e)) =
       uVar25 ^ uVar31 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0xbf0) ^ uVar19;
  uVar19 = CONCAT44(DAT_182671804,DAT_182671804);
  *(longlong *)(lVar2 + -0xa88) = -0x6546f2e742dd8d8a << ((local_e8 ^ 0x19) & 0x3f);
  uVar16 = *(ulonglong *)(lVar3 + -0x318);
  *(ulonglong *)(lVar2 + -0x6d0) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x318)) >> (((byte)uVar17 ^ 0xd0) & 0x3f) ^ uVar19;
  uVar44 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x491e3a26)) =
       (uVar25 ^ uVar16) << ((bVar20 ^ 0xa5) & 0x3f) ^ uVar44;
  uVar31 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar16 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x2a00149a)) =
       (*puVar35 ^ uVar44 | uVar19 ^ *(ulonglong *)(lVar3 + -0x6d0)) ^ uVar31;
  uVar10 = DAT_1826717b8;
  uVar17 = DAT_182671688;
  uVar41 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar39 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0x95a35ca8)) ^ uVar28) -
           (*(ulonglong *)(lVar3 + -0x898) ^ uVar31) ^ uVar41;
  *(ulonglong *)(lVar3 + -0x628) = uVar39;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar16 = CONCAT44(uVar17,uVar17) ^ uVar37 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x110) ^
           *(ulonglong *)(lVar3 + -0x2a0);
  *(ulonglong *)(lVar3 + -0x80) = uVar16;
  uVar6 = DAT_182671594;
  uVar18 = *(ulonglong *)(lVar3 - (uVar42 ^ 0x44268139)) >> 0xc ^
           ((ulonglong)uVar17 << 0x14 | (ulonglong)(uVar17 >> 0xc));
  uVar14 = DAT_182671594 ^ 0xf6abc9ec;
  uVar15 = DAT_182671594 ^ 0x575239c8;
  *(ulonglong *)(lVar3 + -0x800) = uVar18 ^ uVar28;
  *(uint *)(lVar3 + -0x754) = uVar15 * uVar14;
  uVar19 = (uVar16 ^ CONCAT44(uVar17,uVar17)) << (((byte)DAT_182671574 ^ 0xc2) & 0x3f);
  uVar16 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar3 + -0xc08) = uVar19 ^ uVar27;
  lVar2 = DAT_182671560;
  uVar19 = uVar19 | uVar18;
  uVar18 = uVar19 ^ uVar16;
  *puVar1 = uVar18;
  uVar24 = CONCAT44(DAT_182671858,DAT_182671858);
  uVar25 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar2 + -0x670) = (uVar37 ^ *(ulonglong *)(lVar2 + -0x2a0)) - uVar19 ^ uVar24;
  uVar10 = DAT_182671794;
  uVar16 = uVar39 ^ uVar18 ^ uVar25 ^ uVar16 ^ uVar41;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar16;
  uVar11 = DAT_182671884;
  uVar37 = (ulonglong)DAT_18267159c;
  uVar19 = (uVar16 ^ uVar25) >> ((local_res20 ^ 0x91) & 0x3f);
  bVar20 = (byte)DAT_18267159c;
  *(ulonglong *)(lVar2 + -0xa88) = uVar19 ^ CONCAT44(uVar10,uVar10);
  uVar17 = DAT_182671590;
  uVar25 = (uVar25 ^ uVar16) << ((bVar20 ^ 0xa7) & 0x3f);
  uVar18 = (ulonglong)DAT_182671590;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar25 ^ CONCAT44(uVar11,uVar11);
  lVar2 = DAT_182671560;
  uVar26 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       (CONCAT44(uVar9,uVar5) ^ 0xcba90b41a3d2574b) - (*puVar35 ^ uVar44);
  uVar16 = CONCAT44(DAT_18267157c,uVar12);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xcf82e3f0)) = (uVar25 | uVar19) ^ uVar26;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar41) - (uVar16 ^ 0x2cffa1cd08e54c32) ^ uVar34;
  uVar10 = DAT_1826716dc;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0xf3f5877c)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x2a001402)) ^ uVar28) +
       (CONCAT44(uVar4,uVar17) ^ 0xf34242d7ae517255);
  uVar11 = DAT_182671760;
  *(ulonglong *)(lVar2 + -0xc08) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x110)) -
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x2a0017f2)) ^ uVar26) ^ CONCAT44(uVar10,uVar10);
  uVar16 = (ulonglong)DAT_1826717ac;
  uVar19 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x4e2f3e20)) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0x6656db54)) ^ uVar26) -
       (CONCAT44(uVar5,uVar6) ^ 0x76d308dbe5982156) ^ CONCAT44(uVar11,uVar11);
  uVar5 = DAT_182671640;
  *puVar1 = *(ulonglong *)(lVar2 + -0x898) ^ *(ulonglong *)(lVar2 + -0x670) ^ uVar19 ^ uVar24 ^
            uVar31;
  uVar10 = DAT_1826717e4;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x44268911)) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0x442683f9)) >> 0x20 ^ uVar16) >> 1 ^ CONCAT44(uVar5,uVar5)
  ;
  *puVar35 = (*puVar1 ^ uVar19) << (((byte)DAT_182671568 ^ 0xa4) & 0x3f) ^ CONCAT44(uVar10,uVar10);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar30;
  return;
}



############ FUN_ 180e841f0 size=5368 ############

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

void FUN_180e841f0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong *puVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  ulonglong *puVar56;
  ulonglong uVar57;
  byte local_100;
  
  uVar13 = DAT_1826715ac;
  uVar11 = DAT_182671594;
  uVar9 = DAT_182671584;
  lVar4 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671594;
  uVar20 = (ulonglong)DAT_1826715ac;
  uVar47 = DAT_182671594 << 0x10 | DAT_182671594 >> 0x10;
  uVar21 = DAT_1826715ac ^ DAT_182671584;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_182671b34);
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_182671b34) ^ DAT_182671594;
  uVar53 = (ulonglong)uVar21;
  uVar46 = (ulonglong)DAT_182671584;
  puVar39 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715ac ^ 0x77e4ec26));
  uVar32 = CONCAT44(uVar21,DAT_182671584);
  uVar28 = (ulonglong)uVar47;
  bVar25 = (byte)DAT_1826715ac;
  DAT_18267156c = uVar47;
  DAT_182671590 = uVar21;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar47 ^ 0x7780a3c8)) =
       (uVar32 ^ 0xf16e54925659f5f) << (((byte)DAT_182671894 ^ (byte)*puVar39) & 0x3f);
  uVar43 = CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar50 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  bVar18 = (byte)uVar9;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x77e4ec86)) =
       (uVar43 ^ *(ulonglong *)(lVar4 + -0x8a8)) >> ((bVar25 ^ 0x41) & 0x3f) ^ uVar50;
  uVar35 = CONCAT44(DAT_182671810,DAT_182671810);
  puVar56 = (ulonglong *)(lVar4 - (uVar46 ^ 0x7617f12c));
  uVar23 = CONCAT44(DAT_182671634,DAT_182671634);
  *puVar56 = (uVar43 ^ *(ulonglong *)(lVar4 + -0x8a8)) << ((bVar18 ^ 0x8d) & 0x3f) ^ uVar35;
  puVar1 = (ulonglong *)(lVar4 + -0x240);
  puVar26 = (ulonglong *)(lVar4 + -0xbf0);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar47 ^ 0x7780a328)) =
       (*(ulonglong *)(lVar4 - (uVar53 ^ 0x1f31b7a)) ^ uVar35 |
       uVar50 ^ *(ulonglong *)(lVar4 + -0x6d0)) ^ uVar23;
  lVar4 = DAT_182671560;
  uVar36 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *puVar26 = (CONCAT44(DAT_1826717b8,DAT_1826717b8) ^ *(ulonglong *)(DAT_182671560 + -0x898)) -
             (uVar23 ^ *puVar1) ^ uVar36;
  uVar7 = DAT_182671690;
  *(ulonglong *)(lVar4 + -0x318) =
       (uVar32 ^ 0x37a07627c918783a) - (CONCAT44(uVar13,uVar47) ^ 0x16ae8166e7e32b52);
  uVar24 = CONCAT44(uVar7,uVar7);
  uVar35 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar29 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  bVar3 = (byte)(uVar11 >> 0x10);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0xa16871f0)) =
       uVar29 ^ uVar35 ^ uVar24 ^ *(ulonglong *)(lVar4 + -0x628) ^ *(ulonglong *)(lVar4 + -0x110);
  *(ulonglong *)(lVar4 + -0x2a0) =
       (uVar24 ^ *(ulonglong *)(lVar4 + -0x670)) >> (bVar3 & 0x3f) ^ uVar43;
  lVar5 = DAT_182671560;
  uVar32 = (uVar24 ^ *(ulonglong *)(DAT_182671560 + -0x670)) << ((bVar3 ^ 0x70) & 0x3f);
  *(uint *)(lVar4 + -0x678) = (uVar47 ^ 0x681ae919) * 0x296df524;
  uVar51 = CONCAT44(DAT_182671708,DAT_182671708);
  uVar40 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar5 + -0x8a8) = uVar32 ^ uVar51;
  uVar7 = DAT_182671608;
  puVar37 = (ulonglong *)(lVar5 - (uVar34 ^ 0xa1687150));
  *puVar37 = (*(ulonglong *)(lVar5 - (uVar46 ^ 0x7617f904)) ^ uVar43 | uVar32) ^ uVar40;
  uVar8 = DAT_1826717d4;
  lVar4 = DAT_182671560;
  uVar43 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x628)) -
       (uVar40 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) ^ uVar43;
  uVar7 = DAT_182671788;
  uVar44 = CONCAT44(uVar8,uVar8);
  uVar32 = uVar44 ^ uVar40 ^ uVar36 ^ *puVar26 ^ *puVar37;
  *(ulonglong *)(lVar4 + -0x898) = uVar32;
  uVar40 = CONCAT44(uVar7,uVar7);
  puVar54 = (ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x1f312ea));
  *puVar54 = (uVar32 ^ uVar44) >> ((bVar3 ^ 0x5c) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x7780a078)) =
       (CONCAT44(uVar13,uVar13) ^ 0x309c371b5a0d5b99) + (uVar23 ^ *puVar1);
  uVar7 = DAT_182671748;
  puVar37 = (ulonglong *)(lVar4 - (uVar46 ^ 0x7617f33c));
  uVar32 = (uVar44 ^ *puVar37) << ((bVar18 ^ 0xa8) & 0x3f);
  *(ulonglong *)(lVar4 + -0x670) = uVar32 ^ CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar30 = CONCAT44(uVar7,uVar7);
  uVar32 = uVar40 ^ *(ulonglong *)(lVar4 + -0x318) | uVar32;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar32 ^ uVar30;
  uVar8 = DAT_182671870;
  puVar41 = (ulonglong *)(lVar4 - (uVar34 ^ 0xa1687c70));
  uVar40 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(lVar4 + -0x8a8) = (uVar36 ^ *puVar41) - uVar32 ^ uVar40;
  uVar7 = DAT_18267174c;
  uVar32 = CONCAT44(uVar8,uVar8);
  puVar22 = (ulonglong *)(lVar4 - (uVar34 ^ 0xa16871a8));
  *puVar22 = *(ulonglong *)(lVar4 - (uVar34 ^ 0xa1687d08)) ^ uVar32 ^ uVar43 ^ uVar23 ^ *puVar1;
  uVar44 = CONCAT44(uVar7,uVar7);
  local_100 = (byte)uVar21;
  *(ulonglong *)(lVar4 - (uVar53 ^ 0x1f31722)) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x628)) >> ((bVar25 ^ 0x6f) & 0x3f) ^ uVar44;
  uVar32 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0x7780a740)) ^ uVar32) << 7;
  uVar42 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar4 + -0x110) = uVar32 ^ CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar8 = DAT_1826716f4;
  lVar5 = DAT_182671560;
  uVar32 = (uVar32 | uVar44 ^ *(ulonglong *)(lVar4 + -0x6d0)) ^ uVar42;
  *(ulonglong *)(lVar4 + -0x898) = uVar32;
  uVar7 = DAT_1826715b8;
  uVar33 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 + -0x318) =
       (uVar43 ^ *(ulonglong *)(lVar5 + -0xa88)) - (uVar42 ^ *puVar37) ^ uVar33;
  uVar43 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0x670) =
       uVar43 ^ uVar42 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0x8a8) ^ uVar32;
  uVar32 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  bVar19 = (byte)DAT_182671598;
  *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x7617f054)) =
       (*(ulonglong *)(lVar5 - (uVar28 ^ 0x7780a718)) ^ uVar43) >> ((local_100 ^ 0xfc) & 0x3f) ^
       uVar32;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x7617fd8c)) =
       (uVar43 ^ *(ulonglong *)(DAT_182671560 + -0x670)) << ((bVar19 ^ 0x5e) & 0x3f) ^ uVar35;
  uVar8 = DAT_182671718;
  uVar43 = CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar32 = uVar32 ^ *puVar26 | uVar35 ^ *(ulonglong *)(lVar4 + -0x628);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar32 ^ uVar43;
  *(ulonglong *)(lVar4 + -0x110) = uVar32 << ((byte)uVar32 & 0x3f);
  uVar7 = DAT_182671600;
  uVar32 = CONCAT44(uVar8,uVar8);
  *puVar56 = (uVar40 ^ *(ulonglong *)(DAT_182671560 + -0x8a8)) -
             (CONCAT44(uVar11,uVar13) ^ 0x8a1905a9707b5c72) ^ uVar32;
  uVar8 = DAT_1826716a4;
  uVar6 = DAT_1826715a8;
  lVar4 = DAT_182671560;
  uVar48 = CONCAT44(uVar7,uVar7);
  puVar37 = (ulonglong *)(DAT_182671560 + -0x6d0);
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar32 ^ *(ulonglong *)(DAT_182671560 + -0xa88)) -
       (uVar43 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) ^ uVar48;
  uVar44 = CONCAT44(uVar8,uVar8);
  uVar32 = (ulonglong)DAT_182671588;
  *puVar1 = (uVar43 ^ *puVar37) - (CONCAT44(uVar6,uVar11) ^ 0x2d143e1697a36821) ^ uVar44;
  uVar6 = DAT_182671568;
  uVar43 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar31 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x6a6a5eda)) =
       uVar43 ^ uVar33 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x2a0) ^ *puVar54;
  lVar5 = DAT_182671560;
  bVar27 = (byte)uVar6;
  uVar55 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *puVar26 = (uVar43 ^ *(ulonglong *)(lVar4 + -0x670)) >> ((bVar27 ^ 0x66) & 0x3f) ^ uVar55;
  uVar32 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar5 - (uVar20 ^ 0x77e4eb46)) =
       (uVar43 ^ *puVar39) << ((bVar25 ^ 0x66) & 0x3f) ^ uVar32;
  *(uint *)(lVar5 + -0x47c) = (DAT_18267156c ^ 0xbb4d3fff) >> 0xe;
  uVar38 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar43 = uVar32 ^ *(ulonglong *)(lVar5 + -0x110) | uVar55 ^ *puVar26;
  uVar32 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar5 + -0x8a8) = uVar43 ^ uVar38;
  uVar12 = DAT_18267159c;
  uVar30 = (uVar33 ^ *(ulonglong *)(lVar5 + -0x318)) -
           (CONCAT44(DAT_18267159c,uVar13) ^ 0xe7df594bfc5a52b9);
  *(ulonglong *)(lVar5 + -0xa88) = uVar30 ^ uVar32;
  uVar15 = DAT_182671774;
  uVar45 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar5 + -0x6d0) = uVar30 - uVar43 ^ uVar42;
  uVar10 = _DAT_182671838;
  uVar8 = DAT_182671574;
  uVar43 = (CONCAT44(uVar6,uVar21) ^ 0x9bebaf2139cf9827) + uVar43 ^ uVar45;
  uVar32 = (ulonglong)_DAT_182671838;
  *(ulonglong *)(lVar5 + -0x2a0) = uVar43;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar43 = uVar48 ^ uVar30 ^ uVar43 ^ uVar45 ^ *(ulonglong *)(lVar5 + -0x898);
  *(ulonglong *)(lVar5 + -0x670) = uVar43;
  *(ulonglong *)(lVar5 - (uVar20 ^ 0x77e4e1a6)) = uVar43 >> 0x20 ^ uVar51 ^ uVar32;
  lVar4 = DAT_182671560;
  uVar43 = (uVar30 ^ *(ulonglong *)(lVar5 + -0x670)) << (((byte)uVar8 ^ 0xd6) & 0x3f);
  uVar32 = (ulonglong)DAT_18267158c;
  uVar52 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar5 + -0x110) = uVar43 ^ uVar52;
  *(ulonglong *)(lVar5 + -0x318) = uVar38 ^ *(ulonglong *)(lVar5 + -0x8a8) | 0xc9ef1ba1634226a1;
  uVar6 = DAT_18267157c;
  uVar43 = *(ulonglong *)(lVar5 - (uVar32 ^ 0xa341dade)) ^ uVar51 | uVar43;
  *(ulonglong *)(lVar5 + -0xa88) = uVar43 ^ uVar40;
  uVar7 = DAT_1826716bc;
  uVar49 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar4 + -0x2a0) = (CONCAT44(DAT_1826715a4,uVar6) ^ 0x42b28246e2c96163) + uVar43;
  lVar5 = DAT_182671560;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x7617fdd4)) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0x7780a9f0)) ^ uVar48) - uVar43 ^ uVar33;
  uVar21 = DAT_1826715b4;
  uVar6 = DAT_18267158c;
  uVar57 = (ulonglong)DAT_1826715b4;
  uVar46 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar5 - (uVar57 ^ 0x2c660f08)) =
       uVar44 ^ uVar42 ^ *(ulonglong *)(lVar5 + -0x6d0) ^ uVar46 ^ *puVar1;
  uVar10 = DAT_182671588;
  uVar32 = *(ulonglong *)(lVar5 + -0x318);
  *puVar26 = (CONCAT44(uVar47,DAT_182671578) ^ 0xd1c6065c90a255eb) -
             (CONCAT44(uVar11,uVar6) ^ 0x3ca89d66bdb0b9f1);
  uVar43 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar5 - (uVar53 ^ 0x1f310e2)) =
       (uVar46 ^ uVar32) >> ((bVar19 ^ 0x4c) & 0x3f) ^ uVar43;
  uVar7 = DAT_1826715cc;
  uVar6 = DAT_182671584;
  uVar48 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar32 = (uVar46 ^ *(ulonglong *)(lVar5 + -0x318)) << ((bVar27 ^ 0x56) & 0x3f);
  *(ulonglong *)(lVar5 + -0x2a0) = uVar32 ^ uVar48;
  uVar32 = *(ulonglong *)(lVar5 + -0x110) ^ uVar43 | uVar32;
  uVar30 = CONCAT44(uVar7,uVar7);
  uVar43 = uVar32 ^ uVar30;
  uVar46 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar5 + -0x898) = uVar43;
  uVar51 = (uVar42 ^ *(ulonglong *)(lVar5 + -0x6d0)) - uVar32 ^ uVar46;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar51;
  uVar7 = DAT_182671570;
  *(int *)(lVar5 + -0x274) = *(int *)(lVar5 + -0x844) << ((byte)uVar6 & 0x1f);
  uVar42 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar43 = uVar42 ^ uVar30 ^ uVar33 ^ uVar43 ^ *(ulonglong *)(lVar5 + -0x670);
  *puVar1 = uVar43;
  uVar14 = DAT_1826716e0;
  lVar4 = DAT_182671560;
  uVar38 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar32 = (ulonglong)DAT_1826715a8;
  uVar43 = (uVar42 ^ uVar43) << 6;
  *puVar26 = (*(ulonglong *)(lVar5 - (uVar31 ^ 0x4d870736)) ^ uVar42) >>
             (((byte)uVar7 ^ 0x38) & 0x3f) ^ uVar38;
  uVar7 = DAT_182671784;
  *(ulonglong *)(lVar4 + -0x318) = uVar43 ^ CONCAT44(uVar14,uVar14);
  uVar6 = DAT_182671580;
  uVar30 = CONCAT44(uVar7,uVar7);
  uVar43 = *(ulonglong *)(lVar4 - (uVar32 ^ 0x9057ff86)) ^ uVar38 | uVar43;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar43 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x110) = (uVar33 ^ *(ulonglong *)(lVar4 + -0x670)) - uVar43 ^ uVar30;
  uVar7 = _DAT_1826716c0;
  uVar43 = CONCAT44(DAT_182671864,DAT_182671864);
  uVar32 = uVar40 ^ uVar51 ^ *(ulonglong *)(lVar4 + -0xa88) ^ uVar43 ^ uVar46;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar32;
  lVar4 = DAT_182671560;
  uVar40 = CONCAT44(uVar7,uVar7);
  uVar31 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar32 ^ uVar43) >> (((byte)uVar8 ^ 0xe0) & 0x3f) ^ uVar40;
  *puVar1 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x9057f6d6)) ^ uVar30 |
            uVar35 ^ *(ulonglong *)(DAT_182671560 + -0x628);
  uVar32 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *puVar41 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0xeffef92e)) ^ uVar43) <<
             (((byte)DAT_18267157c ^ 0xf2) & 0x3f) ^ uVar32;
  lVar4 = DAT_182671560;
  uVar43 = CONCAT44(DAT_182671798,DAT_182671798);
  uVar32 = *puVar26 ^ uVar32 | uVar40 ^ *(ulonglong *)(DAT_182671560 + -0x898);
  uVar35 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar32 ^ uVar43;
  uVar8 = DAT_1826715b0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x2c660a60)) =
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0x9057fcde)) ^ uVar46) - uVar32 ^ uVar35;
  *(undefined1 *)(lVar4 + -0x209) = **(undefined1 **)(lVar4 + -0x5b8);
  uVar32 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x7780a270)) ^ uVar44 ^ *(ulonglong *)(lVar4 + -0x110) ^
           uVar43 ^ uVar30;
  *(ulonglong *)(lVar4 + -0xa88) = uVar32;
  uVar16 = DAT_182671830;
  uVar21 = DAT_182671588;
  uVar6 = DAT_182671578;
  uVar46 = (ulonglong)DAT_182671588;
  uVar40 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar4 + -0x628) = (uVar44 ^ uVar32) >> (((byte)uVar8 ^ 0x72) & 0x3f) ^ uVar40;
  uVar43 = (uVar44 ^ uVar32) << (((byte)uVar6 ^ 0x90) & 0x3f);
  *puVar1 = uVar43 ^ uVar52;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x6d0) =
       (CONCAT44(uVar11,uVar21) ^ 0x7912f7e3de191b70) >> (((byte)uVar21 ^ 0xb4) & 0x3f);
  uVar28 = (ulonglong)DAT_18267159c;
  uVar32 = CONCAT44(uVar8,DAT_18267159c);
  uVar43 = *(ulonglong *)(lVar4 - (uVar49 ^ 0xacee7a5e)) ^ uVar40 | uVar43;
  uVar40 = uVar43 ^ uVar45;
  *(ulonglong *)(lVar5 + -0x898) = uVar40;
  *puVar26 = (uVar32 ^ 0x88d3c527a06c7d0) >> (((byte)uVar40 ^ (byte)uVar15) & 0x3f);
  uVar40 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar5 - (uVar46 ^ 0x6a6a5002)) =
       (*(ulonglong *)(lVar5 - (uVar57 ^ 0x2c660d00)) ^ uVar30) - uVar43 ^ uVar40;
  uVar7 = DAT_18267180c;
  lVar4 = DAT_182671560;
  uVar30 = *(ulonglong *)(lVar5 - (uVar53 ^ 0x1f31782)) ^ *(ulonglong *)(lVar5 + -0x2a0) ^ uVar35 ^
           uVar30;
  *(ulonglong *)(lVar5 + -0x318) = uVar30 ^ uVar33;
  uVar15 = DAT_1826718b0;
  uVar32 = uVar30 >> ((local_100 ^ 0xfe) & 0x3f);
  uVar30 = uVar30 << ((bVar18 ^ 0x90) & 0x3f);
  bVar18 = *(byte *)(lVar4 + -0x628);
  *(ulonglong *)(lVar4 + -0xa88) = uVar32 ^ CONCAT44(uVar7,uVar7);
  uVar14 = DAT_18267173c;
  uVar7 = DAT_1826715a0;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar30 ^ CONCAT44(uVar15,uVar15);
  uVar46 = CONCAT44(uVar14,uVar14);
  uVar44 = (uVar30 | uVar32) ^ uVar46;
  bVar19 = (byte)uVar7;
  uVar32 = *(ulonglong *)(lVar4 + -0x670);
  *puVar1 = uVar44;
  *puVar26 = -0x3f4f64504072d3fb << ((bVar18 ^ (byte)uVar16) & 0x3f);
  uVar43 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar4 + -0x110) =
       (uVar35 ^ uVar32) - (*(ulonglong *)(lVar4 - (uVar20 ^ 0x77e4e816)) ^ uVar46) ^ uVar43;
  lVar4 = DAT_182671560;
  uVar44 = uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x8a8) ^ uVar46 ^ uVar40 ^ uVar44;
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar44;
  uVar32 = (uVar29 ^ uVar44) >> ((bVar19 ^ 0x95) & 0x3f);
  *(ulonglong *)(lVar4 + -0x318) = uVar32 ^ uVar23;
  uVar14 = DAT_1826715fc;
  *(undefined1 *)(lVar4 + -0x5e9) = **(undefined1 **)(lVar4 - (uVar28 ^ 0x8d0e71e0));
  uVar15 = DAT_182671828;
  uVar35 = (uVar44 ^ uVar29) << 0x27;
  *(ulonglong *)(lVar4 + -0xa88) = uVar35 ^ CONCAT44(uVar14,uVar14);
  uVar20 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x6d0) = (uVar32 | uVar35) ^ uVar55;
  *puVar22 = (*(ulonglong *)(lVar4 + -0x8a8) ^ uVar40) -
             (CONCAT44(uVar12,uVar9) ^ 0xf08ba9ccc091b0a3) ^ uVar20;
  uVar32 = *(ulonglong *)(lVar4 + -0x6d0);
  *puVar26 = (uVar20 ^ *(ulonglong *)(lVar4 + -0x628)) - (uVar55 ^ *(ulonglong *)(lVar4 + -0x6d0)) ^
             uVar24;
  *(ulonglong *)(lVar4 + -0x670) =
       (uVar55 ^ uVar32) - (CONCAT44(uVar8,uVar7) ^ 0xcd798bf017679654) ^ uVar48;
  uVar20 = (ulonglong)DAT_1826716d8;
  uVar35 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *puVar1 = uVar35 ^ uVar43 ^ *(ulonglong *)(lVar4 + -0x110) ^ uVar45 ^
            *(ulonglong *)(lVar4 + -0x898);
  uVar32 = *puVar1;
  *(uint *)(lVar4 + -0x328) = *(uint *)(lVar4 + -0x844) >> ((bVar19 ^ 0x9b) & 0x1f);
  uVar7 = DAT_182671678;
  uVar40 = (uVar32 >> 0x20 ^ uVar20) >> 1;
  uVar20 = (uVar32 ^ uVar35) << ((bVar3 ^ 0x77) & 0x3f);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar40 ^ CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar8 = _DAT_182671618;
  uVar32 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x318) = uVar20 ^ uVar32;
  uVar9 = DAT_18267158c;
  uVar7 = DAT_182671570;
  uVar35 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267158c ^ 0xa341dba6)) = (uVar40 | uVar20) ^ uVar35;
  uVar6 = DAT_182671578;
  uVar20 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar4 + -0x8a8) =
       (CONCAT44(uVar7,DAT_182671580) ^ 0x66d743f6e88832c7) -
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x318));
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267157c ^ 0xe3d295f0)) =
       (*(ulonglong *)(lVar4 - (uVar20 ^ 0xfc02ee92)) ^ uVar43) -
       (CONCAT44(uVar6,uVar13) ^ 0x414125e2412ff5f7) ^ uVar36;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xa341d7fe)) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x628)) - (uVar35 ^ *(ulonglong *)(lVar4 + -0xa88)) ^
       CONCAT44(DAT_1826715c8,DAT_1826715c8);
  uVar32 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar4 + -0x898) =
       (CONCAT44(uVar10,uVar9) ^ 0xd1dec09f0753cfc7) + (uVar35 ^ *(ulonglong *)(lVar4 + -0xa88)) ^
       uVar32;
  *puVar1 = *(ulonglong *)(lVar4 - (uVar34 ^ 0xa1687f18)) ^ uVar24 ^ uVar50 ^ uVar32 ^ *puVar26;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar2 ^ uVar47;
  return;
}



############ FUN_ 180ef8230 size=5092 ############

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

void FUN_180ef8230(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  int iVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  
  uVar11 = _DAT_1826715f0;
  uVar15 = DAT_1826715b4;
  uVar12 = DAT_1826715a8;
  uVar10 = DAT_18267159c;
  uVar9 = DAT_182671598;
  iVar7 = DAT_18267158c;
  uVar5 = DAT_182671580;
  uVar6 = DAT_182671578;
  uVar4 = DAT_18267156c;
  uVar40 = (ulonglong)DAT_1826715a8;
  uVar35 = (ulonglong)DAT_182671578;
  uVar39 = (ulonglong)DAT_18267159c;
  uVar41 = (ulonglong)DAT_18267156c;
  uVar29 = DAT_18267158c - DAT_18267159c;
  uVar31 = (ulonglong)DAT_1826715b4;
  uVar27 = DAT_182671578 & DAT_1826715b4;
  uVar37 = DAT_182671580 * DAT_18267156c;
  uVar45 = (DAT_1826715ac << 0x10 | DAT_1826715ac & 0xff00) << 8 | DAT_1826715ac >> 8 & 0xff00 |
           DAT_1826715ac >> 0x18;
  uVar26 = (ulonglong)DAT_182671598;
  uVar42 = DAT_1826715a8 - DAT_182671598;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar26 ^ 0xe45dfb12) + (longlong)DAT_1826719a4);
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_1826719a4) ^ DAT_1826715a8;
  uVar19 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  uVar30 = (ulonglong)uVar27;
  DAT_182671568 = uVar29;
  DAT_18267157c = uVar27;
  DAT_182671584 = uVar45;
  DAT_1826715a4 = uVar42;
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       (CONCAT44(uVar27,DAT_182671578) ^ 0x137a44adecee977d) >>
       (((byte)DAT_1826717bc ^ *(byte *)(DAT_182671560 + -0xa88)) & 0x3f);
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar20 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0xd733847c)) =
       **(ulonglong **)(DAT_182671560 + -0xb78) ^ uVar20 ^ uVar28;
  lVar2 = DAT_182671560;
  **(ulonglong **)(DAT_182671560 + -0x5f8) = CONCAT44(uVar12,uVar4) ^ 0xd2888a5c0f2b51a0;
  *(longlong *)(lVar2 + -0x8a8) =
       *(longlong *)(lVar2 + -0xc08) << (((byte)DAT_182671698 ^ *(byte *)(lVar2 + -0xbf0)) & 0x3f);
  uVar21 = CONCAT44(DAT_18267172c,DAT_18267172c);
  puVar32 = (ulonglong *)(uVar21 ^ *(ulonglong *)(lVar2 + -0x7b8));
  uVar18 = (ulonglong)uVar5;
  *(ulonglong **)(lVar2 + -0x218) = puVar32 + (CONCAT44(uVar37,uVar5) ^ 0x78c2fedaf000e408);
  uVar11 = DAT_1826716b4;
  uVar14 = DAT_1826715b0;
  uVar13 = DAT_1826715ac;
  uVar43 = (ulonglong)DAT_1826715ac;
  uVar38 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0xa88)) + (CONCAT44(iVar7,uVar6) ^ 0x2927f7c77017435a);
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar25 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar24 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar22 = *puVar32 ^ uVar25 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar22;
  *(ulonglong *)(lVar2 + -0x688) =
       *(ulonglong *)(lVar2 + -0x1d8) ^ uVar24 ^ uVar22 ^ uVar33 ^ uVar28;
  *puVar32 = *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x29fde3db)) ^ uVar24 ^ uVar25;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0x30043675)) =
       CONCAT44(uVar13,uVar9) ^ 0xa5fe0a4613e2b739 | uVar19 ^ *(ulonglong *)(lVar2 + -0xa88);
  uVar11 = DAT_182671688;
  *(ulonglong *)(lVar2 + -0x220) = *(ulonglong *)(lVar2 + -0x218);
  uVar44 = CONCAT44(uVar11,uVar11);
  *(undefined8 *)(lVar2 + -0xa38) = *(undefined8 *)(lVar2 + -0xcc8);
  *(ulonglong *)(lVar2 + -0x6f0) = uVar44 ^ *(ulonglong *)(lVar2 + -0x218);
  iVar8 = DAT_182671590;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar45 ^ 0xecfff74b)) = *(undefined8 *)(lVar2 + -0xcc8);
  iVar23 = iVar8 + uVar14;
  uVar22 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  DAT_182671574 = iVar23;
  *(ulonglong *)(lVar2 + -0x240) = **(ulonglong **)(lVar2 + -0x830) ^ uVar22 ^ uVar20;
  **(ulonglong **)(lVar2 + -0x880) = CONCAT44(iVar23,iVar8) ^ 0xa563a44c05622cad;
  *(ulonglong *)(lVar2 + -0x5c8) = (*(ulonglong *)(lVar2 + -0x1d8) ^ uVar28) + 0xe7f5ab43ee348e66;
  lVar3 = DAT_182671560;
  puVar32 = (ulonglong *)(*(ulonglong *)(lVar2 + -0x6f0) ^ uVar44);
  uVar34 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  uVar28 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar24 = *puVar32 ^ uVar34 ^ uVar25;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar24;
  uVar22 = *(ulonglong *)(lVar3 - (uVar38 ^ 0xaac63f91)) ^ uVar28 ^ uVar24 ^ uVar34 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x628) = uVar22;
  *puVar32 = uVar22 ^ uVar28 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x4a0) =
       (*(ulonglong *)(lVar3 + -0x980) ^ (ulonglong)DAT_182671778) + 0x60 +
       ((CONCAT44(uVar14,uVar42) ^ 0xaac63dd1138cf4cf) * 0x10 +
       (CONCAT44(uVar15,uVar14) ^ 0xd73385a4aac63dd1)) * 8;
  uVar11 = DAT_1826717e0;
  *(ulonglong *)(lVar3 + -0x30) =
       *(longlong *)(lVar3 - (uVar39 ^ 0x29fde94b)) +
       ((CONCAT44(uVar45,iVar8) ^ 0xecffff7b1afb5de4) +
       (CONCAT44(uVar12,iVar23) ^ 0xf7eaefe9c5c19bb5) * 4) * 8 ^
       CONCAT44(DAT_182671774,DAT_182671774);
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x123304dc)) =
       *(longlong *)(lVar3 - (uVar35 ^ 0x1afb5944)) +
       (CONCAT44(uVar15,uVar29) ^ 0xd73385a43004356d) * 8 ^ uVar28;
  uVar24 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar22 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x178) ^ uVar28) ^ uVar24 ^ uVar25;
  uVar39 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar22;
  uVar11 = DAT_1826718a8;
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar3 - (uVar30 ^ 0x12330df4)) + 8 +
            ((CONCAT44(iVar7,uVar9) ^ 0x5a021ac0e45dfb1a) * 0x15 +
            (CONCAT44(uVar37,iVar8) ^ 0x78c2feda1afb5de4)) * 8);
  *(ulonglong *)(lVar3 + -0x6a0) = (ulonglong)puVar32 ^ uVar39;
  uVar16 = DAT_1826718a0;
  uVar46 = CONCAT44(uVar11,uVar11);
  *puVar32 = uVar22 ^ uVar46 ^ uVar24;
  uVar11 = DAT_18267175c;
  uVar22 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0xf000e141)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x178) ^ uVar28) ^ uVar22 ^ uVar25;
  *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0x3a0)) =
       CONCAT44(iVar8,uVar4) ^ 0x971d2bcb2174ae3c;
  uVar24 = CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar22 = CONCAT44(uVar9,uVar5) ^ *(ulonglong *)(lVar3 + -0x548) ^ uVar24 ^ uVar22 ^
           0xff8ce0c059fcfe2b;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar22;
  *(ulonglong *)(lVar3 + -0x898) = uVar22 ^ uVar24 ^ uVar20;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0xf7eae7e9)) = (uVar19 ^ *(ulonglong *)(lVar3 + -0xa88)) << 0x17;
  uVar19 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar19 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0x898);
  uVar28 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x2800832)) =
       *(longlong *)(lVar3 + -0x4a0) + (CONCAT44(uVar5,uVar10) ^ 0xf000e40929fde552) * 8 ^ uVar28;
  uVar20 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  uVar22 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0xab8) ^ uVar28) ^ uVar20 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x400) = uVar22;
  *(ulonglong *)(lVar3 + -0x638) =
       (CONCAT44(uVar42,iVar23) ^ 0xa4474f702f3fe9c0) - (uVar22 ^ uVar20);
  uVar24 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x1233005c)) =
       *(longlong *)(lVar3 - (uVar35 ^ 0x1afb55b4)) +
       ((CONCAT44(uVar45,uVar15) ^ 0xecffff7bd73385a5) + 1) * 8 ^ uVar24;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x5f8) ^ uVar24) =
       *(ulonglong *)(lVar3 + -0x400) ^ uVar20 ^ uVar46;
  *(uint *)(lVar3 + -0x274) = (DAT_182671578 ^ 0xbbc259d8) + *(int *)(lVar3 + -0x27c);
  uVar11 = DAT_18267186c;
  uVar35 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x123303b4)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0xab8) ^ uVar28) ^ uVar35 ^ uVar25;
  *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0x438)) =
       CONCAT44(iVar7,uVar12) ^ 0xcdc817b5bc2a6e1a;
  uVar20 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar22 = *(ulonglong *)(lVar3 - (uVar41 ^ 0x2800132));
  *(ulonglong *)(lVar3 + -0x510) = *(ulonglong *)(lVar3 + -0x638) | 0x26f898123c2745bc;
  uVar19 = uVar22 ^ *(ulonglong *)(lVar3 + -0x610) ^ uVar20 ^ uVar35 ^ uVar19;
  *(ulonglong *)(lVar3 + -0xa60) = uVar19;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar37 ^ 0x78c2f722)) = uVar19 ^ uVar20 ^ uVar25;
  uVar19 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar20 = *(ulonglong *)(lVar3 + -0x9f8) ^ uVar19 ^ uVar25;
  uVar40 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(lVar3 + -0x600) = uVar20;
  uVar11 = DAT_182671758;
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x4a0) + (CONCAT44(uVar14,uVar13) ^ 0xaac63dd17bffffee) * 8);
  *(ulonglong *)(lVar3 + -0xb78) = (ulonglong)puVar32 ^ uVar40;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar22 = *puVar32;
  *(ulonglong *)(lVar3 + -0x8a8) = -0x5362f4fb48959d9b - (uVar20 ^ uVar19);
  uVar11 = DAT_18267183c;
  uVar22 = uVar22 ^ uVar28 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x748) = uVar22;
  uVar35 = CONCAT44(uVar11,uVar11);
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x850) + 0x18 +
            (CONCAT44(uVar29,uVar10) ^ 0x3004356d29fde553) * 0xa8);
  *(ulonglong *)(lVar3 + -0x230) = (ulonglong)puVar32 ^ uVar35;
  uVar11 = DAT_182671718;
  lVar2 = DAT_182671560;
  uVar37 = DAT_18267157c ^ DAT_18267156c;
  *puVar32 = uVar28 ^ uVar46 ^ uVar22;
  uVar34 = CONCAT44(uVar11,uVar11);
  DAT_182671594 = uVar37;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0xb78) ^ uVar40) ^ uVar34 ^ uVar25;
  *(ulonglong *)(uVar21 ^ *(ulonglong *)(lVar2 + -0x7b8)) =
       CONCAT44(uVar4,uVar6) ^ 0x826e12af61d01460;
  uVar11 = DAT_182671630;
  uVar20 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar21 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar22 = *(ulonglong *)(lVar2 + -0x600) ^ uVar20 ^ uVar34 ^ uVar19 ^
           *(ulonglong *)(lVar2 + -0xbf0);
  *(ulonglong *)(lVar2 + -0xc08) = uVar22;
  uVar22 = uVar21 ^ uVar22 ^ uVar20;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x670) = uVar22;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x12330c4c)) = uVar19 ^ uVar21 ^ uVar22;
  uVar21 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  puVar36 = (ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0x10b30536));
  *puVar36 = *(longlong *)(lVar2 - (uVar41 ^ 0x280062a)) + 0x18U ^ uVar21;
  *(ulonglong *)(lVar2 + -0x80) = *(ulonglong *)(lVar2 + -0x9f8) ^ uVar25 | 0x999a3413598bcc29;
  uVar11 = DAT_1826716a0;
  lVar3 = DAT_182671560;
  uVar22 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar2 + -0x318) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x218) ^ uVar21) ^ uVar22 ^ uVar25;
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(uVar11,uVar11);
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar3 - (uVar41 ^ 0x2800ada)) + 8 +
            (CONCAT44(uVar27,uVar37) ^ 0x123305a410b3072d) * 8);
  *(ulonglong *)(DAT_182671560 - (uVar41 ^ 0x2800e42)) = (ulonglong)puVar32 ^ uVar28;
  *puVar32 = uVar22 ^ *(ulonglong *)(lVar2 + -0x318) ^ uVar46;
  *(ulonglong *)(lVar2 + -0x270) = *(ulonglong *)(uVar21 ^ *puVar36) ^ uVar34 ^ uVar25;
  *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0x6f0) ^ uVar44) =
       CONCAT44(uVar37,uVar37) ^ 0x1d35e7621b933066;
  lVar2 = DAT_182671560;
  uVar21 = CONCAT44(DAT_182671818,DAT_182671818);
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x1233047c)) =
       uVar21 ^ uVar19 ^ uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x9e8) ^
       *(ulonglong *)(DAT_182671560 + -0x270);
  uVar11 = DAT_182671708;
  *(ulonglong *)(lVar2 + -0x5c8) =
       (CONCAT44(uVar27,uVar37) ^ 0x67683e6a3025cd35) -
       (CONCAT44(uVar13,uVar5) ^ 0xfd85f073eb09765f);
  uVar22 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar42 ^ 0x138cf68f)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar45 ^ 0xecfffea3)) ^ uVar22 ^ uVar21;
  uVar11 = DAT_1826716f8;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xc08)) + (uVar34 ^ *(ulonglong *)(lVar2 + -0x270));
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar19 ^ uVar22 ^ *(ulonglong *)(lVar2 + -0x240);
  uVar30 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xe45df93a)) =
       *(longlong *)(lVar2 + -0x850) + 8 + (CONCAT44(uVar14,uVar27) ^ 0xaac63dd1123305a0) * 8 ^
       uVar30;
  *(ulonglong *)(uVar30 ^ *(ulonglong *)(lVar2 + -0x220)) =
       uVar19 ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar46;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0xa0) = **(ulonglong **)(lVar2 + 0x18) ^ uVar33;
  uVar5 = DAT_182671570;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xaac637e9)) =
       *(longlong *)(((ulonglong)DAT_182671570 ^ 0x1aacd61a) + lVar3) +
       (CONCAT44(uVar4,uVar27) ^ 0x280028a123305a5) * 8;
  uVar26 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x7bfffaa4)) = **(ulonglong **)(lVar3 + -0xa38) ^ uVar26;
  uVar11 = DAT_1826715bc;
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar3 + 0x18) + (CONCAT44(uVar42,iVar23) ^ 0x138cf4cfc5c19bb7) * 8);
  *(ulonglong **)(lVar3 + -0x880) = puVar32;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xd7338374)) = CONCAT44(uVar11,uVar11) ^ *puVar32;
  *(ulonglong *)(lVar3 + -0x830) =
       *(longlong *)((uVar18 ^ 0xf000e411) + lVar3) +
       (CONCAT44(uVar9,uVar42) ^ 0xe45dfb1a138cf4cc) * 8;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xaac635d1)) = CONCAT44(uVar29,uVar29) ^ 0xb1f15e030d9d8edc;
  *(undefined8 *)(lVar3 - (uVar41 ^ 0x2800a12)) = **(undefined8 **)(lVar3 + -0x830);
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x850) + ((CONCAT44(iVar7,uVar6) ^ 0x5a021ac01afb5de4) + 1) * 8)
  ;
  *(ulonglong *)(lVar3 + -0x450) = (ulonglong)puVar32 ^ uVar46;
  uVar11 = DAT_182671824;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       CONCAT44(uVar10,uVar15) ^ 0xf2c2ff0f0e635fcd | CONCAT44(uVar37,iVar8) ^ 0x3e4d425b6a8a67dc;
  *(ulonglong *)(lVar2 + -0x3b8) = CONCAT44(uVar11,uVar11) ^ *puVar32 ^ uVar46;
  *(undefined8 *)(uVar39 ^ *(ulonglong *)(lVar2 + -0x6a0)) = 0xd68415d4a13a477d;
  *(uint *)(lVar2 - ((ulonglong)uVar5 ^ 0x1aacd27e)) =
       0xf53d1272 >> ((byte)*(undefined4 *)(lVar2 + -0x328) & 0x1f);
  uVar11 = DAT_1826715a0;
  uVar22 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(lVar2 + -0x610) =
       CONCAT44(iVar7,uVar45) ^ CONCAT44(iVar8,uVar4) ^ 0x2b506525813d4330;
  *(ulonglong *)(lVar2 + -0x3a0) =
       *(longlong *)(lVar2 + -0x850) + 0x10 + (CONCAT44(uVar12,iVar8) ^ 0xf7eaefe91afb5de4) * 0xa8 ^
       uVar22;
  *(ulonglong *)(lVar2 + -0x638) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar43 ^ 0x7bfffc4c)) ^ uVar22) ^
       CONCAT44(DAT_18267179c,DAT_18267179c) ^ uVar46;
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0x5f8) ^ uVar24) =
       CONCAT44(uVar11,iVar23) ^ 0x299286b27b3769ee;
  uVar22 = CONCAT44(DAT_182671800,DAT_182671800);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xf000e571)) =
       *(longlong *)(lVar2 + -0x850) + 0x18 + (CONCAT44(uVar6,uVar10) ^ 0x1afb5de429fde553) * 0xa8 ^
       uVar22;
  *(ulonglong *)(lVar2 + -0x510) =
       CONCAT44(DAT_18267168c,DAT_18267168c) ^
       *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar2 + -0x178)) ^ uVar46;
  *(undefined8 *)(*(ulonglong *)(lVar2 + -0x230) ^ uVar35) = 0x944ead147c6827e2;
  puVar32 = (ulonglong *)
            ((CONCAT44(uVar14,uVar15) ^ 0xaac63dd1d73385a4) * 0xa8 +
            *(longlong *)(lVar2 - ((ulonglong)uVar42 ^ 0x138cfc9f)) + 0x20);
  uVar22 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar2 + -0xab8) = (ulonglong)puVar32 ^ CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *(ulonglong *)(lVar2 + -0xa60) = uVar22 ^ *puVar32 ^ uVar46;
  *(ulonglong *)(uVar28 ^ *(ulonglong *)(lVar2 + -0xcc8)) =
       CONCAT44(uVar42,uVar11) ^ 0xe075939b46475db7;
  *(int *)(lVar2 + -0x3d4) = *(int *)(lVar2 + -0x47c) * *(int *)(lVar2 + -0x274);
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x850) + 8 +
            ((CONCAT44(uVar5,iVar23) ^ 0x1aacd602c5c19bb1) +
            (CONCAT44(uVar27,uVar12) ^ 0x123305a4f7eaefe9) * 0x15) * 8);
  *(ulonglong *)(lVar2 + -0x7b8) = (ulonglong)puVar32 ^ CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(lVar2 + -0x8a8) = (*(ulonglong *)(lVar2 + -0x548) ^ uVar26) + 0xd26be84ad9a2c52f;
  uVar11 = DAT_182671644;
  *(ulonglong *)(lVar2 + -0x850) = CONCAT44(uVar37,iVar8) ^ 0xcfbc56069da4bb1;
  *(ulonglong *)(lVar2 + -0x688) = CONCAT44(uVar11,uVar11) ^ *puVar32 ^ uVar46;
  *(ulonglong *)(uVar30 ^ *(ulonglong *)(lVar2 + -0x220)) =
       CONCAT44(iVar8,uVar10) ^ 0xc26594bfb86142f7;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar1 ^ uVar42;
  return;
}



############ FUN_ 180e49260 size=3180 ############

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

void FUN_180e49260(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte bVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  byte local_res20;
  byte local_98;
  
  uVar7 = DAT_1826715ac;
  uVar9 = DAT_1826715a8;
  uVar8 = DAT_182671598;
  uVar6 = DAT_182671584;
  uVar5 = DAT_182671580;
  uVar4 = DAT_18267157c;
  uVar14 = (ulonglong)DAT_182671584;
  uVar28 = (ulonglong)DAT_182671580;
  uVar31 = DAT_182671584 ^ DAT_182671580;
  uVar30 = (ulonglong)DAT_1826715a8;
  uVar19 = (ulonglong)DAT_182671598;
  uVar23 = (ulonglong)DAT_18267157c;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671a7c);
  uVar24 = DAT_1826715ac | DAT_18267157c;
  uVar25 = DAT_1826715a8 << 0x10 | DAT_1826715a8 >> 0x10;
  uVar21 = DAT_182671598 << 0x10 | DAT_182671598 >> 0x10;
  uVar13 = *(uint *)(&DAT_182611e70 + (uVar14 ^ 0x5f77ac44) + (longlong)DAT_182671a7c) ^
           DAT_182671580;
  uVar18 = (ulonglong)DAT_182671598;
  uVar17 = (ulonglong)DAT_1826718d4;
  uVar22 = (ulonglong)DAT_1826715ac;
  DAT_182671568 = uVar25;
  DAT_182671578 = uVar31;
  DAT_182671590 = uVar21;
  DAT_1826715a0 = uVar24;
  *(ulonglong *)(DAT_182671560 + -0xbd8) = *(ulonglong *)(DAT_182671560 + -0x398) ^ uVar17;
  *(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x5426f5f3)) =
       CONCAT44(uVar5,uVar21) ^ 0x9e481536aead5dfd;
  lVar2 = DAT_182671560;
  uVar15 = (ulonglong)uVar24;
  *(ulonglong *)(DAT_182671560 + -0x80) =
       (CONCAT44(uVar24,uVar7) ^ 0x92818453cad564af) - *(longlong *)(DAT_182671560 + -0x670);
  uVar18 = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xc7720914));
  *(undefined8 *)(lVar2 + -0x898) = 0x73ae8db24250e36c;
  *(ulonglong *)(lVar2 + -0x370) = (uVar18 ^ uVar17) + (CONCAT44(uVar25,uVar5) ^ 0xdd04b389b6acacb7)
  ;
  *(byte *)(lVar2 + -0x3d5) =
       *(byte *)(uVar17 ^ *(ulonglong *)(lVar2 + -0xbd8)) ^ (byte)DAT_1826718b4 ^
       (byte)DAT_1826717b4;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0xbd8) = CONCAT44(uVar21,uVar9) ^ 0xf65e8ce11a9a9a73;
  lVar2 = DAT_182671560;
  uVar17 = CONCAT44(uVar9,uVar31);
  pbVar20 = (byte *)(*(ulonglong *)(lVar3 + -0x448) ^ (ulonglong)DAT_182671798);
  *(byte **)(DAT_182671560 + -0xc70) = pbVar20 + (uVar17 ^ 0xb389dd04e9db00e3);
  *pbVar20 = *(byte *)(DAT_182671560 - (uVar23 ^ 0xc7720119)) ^ (byte)DAT_1826718b4;
  lVar3 = DAT_182671560;
  *(byte *)(DAT_182671560 - (uVar14 ^ 0x5f77af81)) = (byte)uVar5 ^ 0x1e;
  uVar27 = (ulonglong)DAT_182671880;
  *(undefined8 *)(lVar3 + -0xb08) = *(undefined8 *)(lVar3 - (uVar28 ^ 0xb6aca0c6));
  *(ulonglong *)(lVar3 + -0xc70) = CONCAT44(uVar9,uVar7) ^ 0xadd88336b7cef559;
  puVar26 = (ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xf66b5646));
  *puVar26 = *(ulonglong *)(lVar3 + -0x370);
  *(ulonglong *)(lVar3 + -0x370) = CONCAT44(uVar21,uVar8) ^ 0x16544e7b524a7948;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xcffbbe37)) = uVar27 ^ *(ulonglong *)(lVar2 + -0xb08);
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0xb08) = CONCAT44(uVar7,uVar31) ^ 0x398478ab2306b57a;
  uVar18 = (ulonglong)DAT_1826716a0;
  *(ulonglong *)(lVar3 + -0xcc0) = uVar18 ^ *puVar26;
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0xb6acaed6)) =
       CONCAT44(uVar9,uVar25) ^ 0x6fb9ea8737afda04;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0xb6aca896)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar25 ^ 0xdd04bf49)) ^ uVar18) + 1;
  *(byte *)(lVar2 + -0x359) =
       *(byte *)(uVar18 ^ *(ulonglong *)(lVar2 + -0xcc0)) ^ (byte)DAT_1826716a4 ^
       (byte)DAT_1826717b4;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xcac9b27f)) = CONCAT44(uVar25,uVar31) ^ 0x8faf04ac48a147d3;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xcffbbbb7)) =
       (CONCAT44(uVar4,uVar8) ^ 0xcb988b659206fc11) <<
       ((byte)*(undefined8 *)(lVar2 + -0x748) & 0x3f);
  lVar3 = DAT_182671560;
  pbVar20 = (byte *)(*(ulonglong *)(lVar2 + -200) ^ uVar27);
  local_98 = (byte)uVar31;
  *(byte **)(lVar2 + -0x7c8) = pbVar20 + (CONCAT44(uVar24,uVar21) ^ 0xcffbbefff66b5427);
  *(ulonglong *)(lVar2 + -0x6b8) = *(ulonglong *)(lVar2 + -0x670) >> ((local_98 ^ 0xc9) & 0x3f);
  *pbVar20 = *(byte *)(lVar2 - ((ulonglong)uVar21 ^ 0xf66b577f)) ^ (byte)DAT_1826716a4;
  *(undefined8 *)(lVar2 + -0x228) = *(undefined8 *)(lVar2 + -0x7c8);
  *(undefined1 *)(lVar2 + -0x359) = 0xb6;
  *(ulonglong *)(lVar3 + -0x7c8) = CONCAT44(uVar4,uVar7) ^ 0xb9cab6a084b289b4;
  *(undefined8 *)(lVar3 + -0x4d0) = *(undefined8 *)(lVar3 + -0x420);
  uVar27 = (ulonglong)DAT_1826718ac;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xb389d924)) =
       CONCAT44(uVar6,uVar5) ^ 0x2d16646299513832;
  *(ulonglong *)(lVar3 + -0x100) = *(ulonglong *)(lVar3 - (uVar23 ^ 0xc77200e4)) ^ uVar27;
  local_res20 = (byte)uVar24;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xb6acae9e)) = CONCAT44(uVar21,uVar8) ^ 0x5066d067927d0377;
  *(ulonglong *)(lVar3 + -0x688) = *(ulonglong *)(lVar3 + -0x628) >> ((local_res20 ^ 0xf9) & 0x3f);
  lVar2 = DAT_182671560;
  uVar29 = (ulonglong)DAT_182671818;
  uVar18 = *(ulonglong *)(DAT_182671560 - (uVar19 ^ 0x5426f2bb));
  *(ulonglong *)(DAT_182671560 + -0x950) = uVar18 ^ uVar29;
  uVar10 = DAT_1826715c0;
  *(ulonglong *)(lVar2 + -0x4d0) = CONCAT44(uVar6,uVar7) ^ 0x132541451200033c;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x3b8) =
       *(ulonglong *)(CONCAT44(DAT_1826716f0,DAT_1826716f0) ^ *(ulonglong *)(lVar2 + -0x830)) ^
       CONCAT44(uVar10,uVar10);
  *(undefined8 *)(lVar3 + -0x830) = 0xce3421c84aee3dc;
  *(ulonglong *)(lVar3 + -0xc40) = uVar18 + (CONCAT44(uVar4,uVar7) ^ 0xc77202cccac9bebe);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar31 ^ 0xe9db0292)) =
       *(ulonglong *)(lVar3 - (uVar23 ^ 0xc7720474)) | 0xde481d7a1178017c;
  uVar18 = (ulonglong)DAT_1826716e0;
  *(byte *)(lVar3 + -0xa71) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x950) ^ uVar29) ^ (byte)DAT_182671820 ^
       (byte)DAT_1826717b4;
  *(undefined4 *)(lVar3 + -0x8c) = 0xec481b5d;
  *(uint *)(uVar18 ^ *(ulonglong *)(lVar3 + -0xa48)) = uVar9 ^ 0xaece6fda;
  *(ulonglong *)(lVar3 + -0xa48) = CONCAT44(uVar5,uVar25) ^ 0x55f92eced66134ec;
  *(ulonglong *)(lVar3 + -0x950) = CONCAT44(uVar5,uVar25) ^ 0xfb7492fbb98070d7;
  uVar10 = DAT_182671730;
  *(ulonglong *)(lVar3 + -0x780) =
       (CONCAT44(uVar6,uVar6) ^ 0x5f77ac545f77ac55) + (*(ulonglong *)(lVar3 + -0x100) ^ uVar27);
  *(ulonglong *)(lVar3 + -0xa60) =
       (CONCAT44(uVar21,uVar31) ^ 0xd6851a15c42625e7) >>
       (((byte)uVar10 ^ *(byte *)(lVar3 + -0x610)) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x5f77aa44)) = uVar17 ^ 0xbf56c587fabf2179;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar31 ^ 0xe9db01e2)) ^ uVar27) =
       *(byte *)(lVar3 - (uVar19 ^ 0x5426fc1a)) ^ (byte)DAT_182671820;
  *(byte *)(lVar3 + -0xa71) = local_98 ^ 0xc9;
  *(undefined8 *)(lVar3 + -0x560) = *(undefined8 *)(lVar3 - (uVar23 ^ 0xc772054c));
  *(undefined8 *)(lVar3 + -0x780) = 0x5e70f20aeaef80da;
  *(ulonglong *)(lVar3 + -0x5c8) = CONCAT44(uVar4,uVar4) ^ 0xa7e11a859d3b6066;
  *(undefined8 *)(lVar3 + -0x400) = 0xcc83c5c0d602a7c8;
  uVar12 = DAT_182671850;
  uVar29 = (ulonglong)DAT_182671850;
  *(undefined8 *)(lVar3 + -0x9e0) = *(undefined8 *)(lVar3 - (uVar28 ^ 0xb6aca0f6));
  *(ulonglong *)(lVar3 + -0xc40) = CONCAT44(uVar21,uVar25) ^ 0x7011d23e07797887;
  *(ulonglong *)(lVar3 - (uVar15 ^ 0xcffbbe5f)) = CONCAT44(uVar25,uVar7) ^ 0x9a27b212731d0c86;
  uVar27 = uVar29 ^ *(ulonglong *)(lVar3 + -0x560);
  uVar14 = (ulonglong)DAT_182671620;
  *(ulonglong *)(lVar3 + -0xa80) = CONCAT44(uVar24,uVar25) ^ 0xb75fff1721bd5bf8;
  *(ulonglong *)(lVar3 + -0xc90) = uVar27;
  *(ulonglong *)(lVar3 + -0x560) = CONCAT44(uVar7,uVar31) ^ 0xd2d21d26625efd74;
  uVar18 = *(ulonglong *)(lVar3 + -0x9e0);
  *(ulonglong *)(lVar3 + -0x770) = uVar14 ^ uVar18;
  *(undefined8 *)(lVar3 + -0x9e0) = 0x8cfad821ad403967;
  bVar11 = (byte)DAT_18267181c;
  *(ulonglong *)(lVar3 + -0x530) = uVar18 + (CONCAT44(uVar4,uVar4) ^ 0xc77202ccc77202cd);
  *(byte *)(lVar3 + -0x505) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar30 ^ 0xb389da74)) ^ uVar14) ^ bVar11 ^
       (byte)DAT_1826717b4;
  *(ulonglong *)(lVar3 + -0x770) = CONCAT44(uVar4,uVar24) ^ 0xfe23065bddd77074;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x5426f073)) =
       (CONCAT44(uVar8,uVar21) ^ 0x5426f66bf66b5427) + (uVar12 ^ uVar27);
  uVar19 = (ulonglong)DAT_182671614;
  bVar16 = (byte)DAT_1826715ac;
  *(byte *)(uVar29 ^ *(ulonglong *)(lVar3 + -0xc90)) = bVar11 ^ *(byte *)(lVar3 + -0x505);
  uVar27 = (ulonglong)DAT_182671788;
  *(byte *)(lVar3 - (uVar22 ^ 0xcac9bbba)) = bVar16 ^ 3;
  uVar18 = *(ulonglong *)(lVar3 + -0x618);
  *(ulonglong *)(lVar3 + -0x20) = uVar18;
  uVar14 = *(ulonglong *)(lVar3 + -0x530);
  *(ulonglong *)(lVar3 + -0x618) = CONCAT44(uVar4,uVar6) ^ 0x8e693c9af6874952;
  *(undefined8 *)(lVar3 + -0x530) = 0xce14fc627b47ae74;
  *(ulonglong *)(lVar3 + -0xa30) = uVar18 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x20) = CONCAT44(uVar6,uVar5) ^ 0x30a0c1eb9f840d80;
  puVar26 = (ulonglong *)(lVar3 - (uVar23 ^ 0xc772088c));
  *puVar26 = uVar19 ^ uVar14;
  *(ulonglong *)(lVar3 + -0x130) = uVar17 ^ 0xbae1cfa1c45b14a5;
  *(ulonglong *)(lVar3 + -0x4e8) =
       (*(ulonglong *)(lVar3 + -0xa40) ^ uVar19) + (CONCAT44(uVar8,uVar4) ^ 0x5426f66bc77202cd);
  *(byte *)(lVar3 + -0xb0a) =
       *(byte *)(uVar19 ^ *puVar26) ^ (byte)DAT_182671878 ^ (byte)DAT_1826717b4;
  uVar7 = DAT_182671590;
  *(ulonglong *)(lVar3 + -0x928) =
       (CONCAT44(uVar24,uVar9) ^ 0xcffbbeffb389dd05) + (*(ulonglong *)(lVar3 + -0xa30) ^ uVar27);
  *(uint *)(lVar3 + -0x274) = (DAT_1826715a0 ^ 0x218ffbb2) * (uVar7 ^ 0x7b0dd45f);
  *(uint *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x603a964c)) = uVar31 ^ 0xd72c614c;
  *(byte *)(*(ulonglong *)(lVar3 + -0xa30) ^ uVar27) =
       *(byte *)(lVar3 - ((ulonglong)uVar25 ^ 0xdd04b883)) ^ (byte)DAT_182671878;
  uVar18 = *(ulonglong *)(lVar3 + -0x928);
  *(byte *)(lVar3 + -0xb0a) = (byte)DAT_18267157c ^ 0x40;
  *(ulonglong *)(lVar3 + -0x168) = uVar18;
  *(ulonglong *)(lVar3 + -0x928) = CONCAT44(uVar31,uVar6) ^ 0xf002ad11335a5096;
  *(ulonglong *)(lVar3 + -0x800) =
       (CONCAT44(uVar25,uVar21) ^ 0xbcb688b20254d139) >> (((byte)uVar4 ^ 0xf5) & 0x3f);
  uVar14 = *(ulonglong *)(lVar3 - (uVar15 ^ 0xcffbba17));
  *(ulonglong *)(lVar3 + -0x4e8) = CONCAT44(uVar8,uVar5) ^ 0xa804651517c7b34;
  *(ulonglong *)(lVar3 + -0xbc0) = DAT_1826715fc ^ uVar18;
  *(undefined8 *)(lVar3 + -0x168) = 0x1cc14c6d2f967d32;
  uVar18 = CONCAT44(uVar21,DAT_1826715b4);
  *(ulonglong *)(lVar3 + -0x870) = _DAT_182671618 ^ uVar14;
  *(ulonglong *)(lVar3 + -0x840) = CONCAT44(uVar8,uVar9) ^ 0xc8c17ee38ca8acbd;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar18 ^ 0xae854e79ff8ba47b;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar31;
  return;
}



############ FUN_ 180ef5c00 size=5438 ############

void FUN_180ef5c00(void)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte *pbVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  uint uVar24;
  longlong *plVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  byte local_108;
  byte local_100;
  
  uVar13 = DAT_1826715b0;
  uVar19 = DAT_1826715a8;
  uVar12 = DAT_1826715a4;
  uVar9 = DAT_182671590;
  uVar7 = DAT_182671580;
  iVar5 = DAT_182671574;
  uVar4 = DAT_182671568;
  uVar23 = (ulonglong)DAT_182671590;
  uVar36 = (ulonglong)DAT_1826715a8;
  DAT_18267159c = DAT_182671590 & DAT_182671578 ^ 0x185c5aed;
  uVar31 = (ulonglong)DAT_1826715a4;
  uVar29 = (ulonglong)DAT_1826715b0;
  uVar43 = DAT_182671568 - DAT_182671574;
  uVar32 = DAT_1826715a8 + DAT_1826715a4;
  uVar17 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_182671578 ^ 0x9527579b) + (longlong)DAT_18267199c) ^
           DAT_182671590;
  uVar40 = DAT_182671580 & DAT_1826715b0;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_18267199c) ^ DAT_18267159c;
  uVar37 = (ulonglong)uVar40;
  DAT_182671584 = uVar43;
  DAT_182671588 = uVar32;
  DAT_1826715a0 = uVar40;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0xcb8) ^ (ulonglong)DAT_1826718cc) =
       *(byte *)(DAT_182671560 - (uVar31 ^ 0x9041f1f8)) ^ (byte)DAT_1826717c0 ^ (byte)DAT_1826717cc;
  uVar6 = DAT_1826716d0;
  lVar2 = DAT_182671560;
  puVar26 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0xb98) +
            ((CONCAT44(uVar32,uVar40) ^ 0x2dfbebc92a40e459) +
            (CONCAT44(uVar9,uVar19) ^ 0x625000409db9f888) * 0xc) * 8);
  *(ulonglong *)(DAT_182671560 + -0x128) =
       (ulonglong)puVar26 ^ CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar8 = DAT_18267158c;
  uVar38 = CONCAT44(uVar6,uVar6);
  uVar20 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar2 + -0x670) = *puVar26 ^ uVar20 ^ uVar38;
  lVar2 = DAT_182671560;
  uVar28 = (ulonglong)uVar7;
  uVar42 = (ulonglong)uVar43;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (CONCAT44(uVar7,uVar13) ^ 0xba1aeae4a084472a) - (CONCAT44(uVar19,uVar8) ^ 0x32caf0f51694ff61)
  ;
  bVar35 = (byte)DAT_182671600;
  uVar44 = CONCAT44(DAT_182671624,DAT_182671624);
  bVar39 = (byte)DAT_182671624 ^ (byte)DAT_182671600;
  uVar33 = (*(ulonglong *)(lVar2 + -0x670) ^ uVar38) >> (((byte)uVar13 ^ 0x7c) & 0x3f);
  uVar38 = (ulonglong)DAT_182671834;
  uVar34 = uVar33 ^ uVar44;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar34;
  bVar39 = bVar39 ^ (byte)uVar34;
  *(byte *)(lVar2 + -0x549) = bVar39;
  bVar35 = bVar35 ^ bVar39 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar2 + -0x628) = uVar33 << (((byte)uVar4 ^ 0xe2) & 0x3f);
  pbVar21 = (byte *)((CONCAT44(uVar4,iVar5) ^ 0xffffffff69da717b) + *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0xb58) = (ulonglong)pbVar21 ^ uVar38;
  *pbVar21 = bVar35;
  uVar8 = DAT_1826717f0;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xfffff40f)) ^ uVar44) >>
       ((byte)*(undefined8 *)(lVar2 + -0xa88) & 0x3f);
  uVar14 = DAT_182671884;
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(DAT_182671578,uVar40) ^ 0x952757932a40e459) +
            (CONCAT44(uVar9,uVar12) ^ 0x625000409041f341) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x690) = (ulonglong)puVar26 ^ CONCAT44(uVar8,uVar8);
  uVar16 = DAT_182671888;
  uVar6 = DAT_1826715b4;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar38 = *puVar26 ^ uVar41 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x318) = uVar38;
  lVar2 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671818;
  bVar35 = (byte)DAT_182671734;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (uVar41 ^ uVar38) >> (((byte)uVar6 ^ 0x27) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar10 = DAT_182671598;
  uVar38 = (ulonglong)DAT_182671598;
  *(byte *)(lVar2 - (uVar23 ^ 0x6250098c)) = (byte)uVar16 ^ bVar35 ^ *(byte *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0x7e8) =
       (CONCAT44(uVar10,iVar5) ^ 0x90ef485969da717a) + *(longlong *)(lVar2 + -3000) ^ uVar34;
  *(ulonglong *)(lVar2 + -0x670) =
       (CONCAT44(uVar19,uVar43) ^ 0x2588eef21cd0e5e9) + 0x8792739661a3d761;
  uVar11 = DAT_18267159c;
  lVar3 = DAT_182671560;
  uVar33 = (ulonglong)DAT_18267159c;
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar32 ^ 0x2dfbec21)) ^ uVar34) =
       *(byte *)(lVar2 - (uVar38 ^ 0x90ef4195)) ^ bVar35 ^ (byte)DAT_1826717c0;
  uVar8 = DAT_18267158c;
  *(int *)(lVar3 - ((ulonglong)uVar11 ^ 0x185c5939)) =
       (int)(uVar13 ^ 0x61d299a8) >> ((byte)*(undefined4 *)(lVar3 + -0x27c) & 0x1f);
  uVar14 = DAT_182671864;
  plVar25 = (longlong *)(lVar3 - (uVar37 ^ 0x2a40efc8));
  uVar34 = CONCAT44(DAT_182671720,DAT_182671720);
  local_108 = (byte)uVar9;
  *(ulonglong *)(lVar3 + -0xd60) =
       *plVar25 +
       ((CONCAT44(uVar19,DAT_182671578) ^ 0x9db9f8889527579a) +
       (CONCAT44(uVar8,uVar7) ^ 0x91ef5a5fee71edf0) * 0xc) * 8 ^ uVar34;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x628) =
       (CONCAT44(uVar13,iVar5) ^ 0xabea8cc0b65eecb9) >> ((local_108 ^ 0x70) & 0x3f);
  uVar38 = CONCAT44(DAT_182671824,DAT_182671824);
  puVar22 = (ulonglong *)(lVar2 - (uVar31 ^ 0x9041fe21));
  local_100 = (byte)uVar11;
  uVar34 = *(ulonglong *)(uVar34 ^ *puVar22) ^ uVar38 ^ uVar20;
  *(ulonglong *)(lVar2 + -0xa88) = uVar34;
  bVar35 = (byte)DAT_182671644;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x9db9f378)) =
       (uVar34 ^ uVar38) >> ((local_100 ^ 0xdd) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  bVar39 = *(byte *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0x118e19ff)) ^ (byte)uVar14 ^ bVar35;
  *(byte *)(lVar2 + -0xe2) = bVar39;
  uVar38 = (ulonglong)DAT_18267160c;
  bVar35 = bVar35 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar2 + -0x238) =
       (CONCAT44(iVar5,uVar4) ^ 0x69da7137ffffffb1) + *(longlong *)(lVar2 + -3000) ^ uVar38;
  uVar14 = DAT_1826715cc;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0xee71efc8)) ^ uVar38) = bVar35 ^ bVar39;
  *(undefined8 *)(lVar2 + -0x898) = 0;
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar4,uVar11) ^ 0xffffffff185c5ae4) +
            (CONCAT44(uVar43,iVar5) ^ 0x96258ec869da7137) * 0xc) * 8);
  uVar38 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar2 + -0x128) = (ulonglong)puVar26 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_1826718c4;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x2a40e748)) = *puVar26 ^ uVar38 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x670) =
       (CONCAT44(DAT_182671578,uVar32) ^ 0x71a148a92e70cc4e) >> (((byte)uVar7 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar2 + -0x628) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x318)) >> (((byte)uVar12 ^ 0x79) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  *(byte *)(lVar2 - (uVar36 ^ 0x9db9ff89)) =
       *(byte *)(lVar2 - (uVar23 ^ 0x62500668)) ^ (byte)uVar14 ^ (byte)DAT_182671764;
  uVar38 = (ulonglong)DAT_182671828;
  uVar23 = CONCAT44(uVar7,DAT_1826715b4);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x95275c63)) =
       (uVar23 ^ 0x57f4796138b9a210) - (CONCAT44(uVar40,DAT_18267158c) ^ 0x3c314606b99003e5);
  uVar6 = DAT_18267157c;
  uVar34 = (ulonglong)DAT_18267157c;
  uVar24 = (DAT_18267157c << 0x10 | DAT_18267157c & 0xff00) << 8 | DAT_18267157c >> 8 & 0xff00 |
           DAT_18267157c >> 0x18;
  pbVar21 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)DAT_18267157c ^ 0x118e19b7)) +
                    (CONCAT44(uVar24,DAT_18267157c) ^ 0xf128e11118e1240));
  DAT_18267156c = uVar24;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267157c ^ 0x118e114f)) = (ulonglong)pbVar21 ^ uVar38;
  *pbVar21 = *(byte *)(lVar2 + -0x701) ^ (byte)DAT_182671764 ^ (byte)DAT_1826717c0;
  uVar14 = DAT_1826715b8;
  uVar38 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar2 + -0x690) =
       (CONCAT44(uVar24,uVar19) ^ 0xf128e119db9f888) * 0x60 +
       *(longlong *)(lVar2 - ((ulonglong)uVar24 ^ 0xf128589)) + 0x50 ^ uVar38;
  uVar15 = DAT_182671640;
  uVar38 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x118e149f)) ^ uVar38) ^ uVar20
  ;
  *(ulonglong *)(lVar2 + -0xa88) = uVar38 ^ CONCAT44(uVar14,uVar14);
  uVar44 = (ulonglong)DAT_1826717b8;
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x9041fbd9)) =
       uVar38 >> (((byte)(uVar6 >> 0x18) ^ 0x11) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  lVar2 = DAT_182671560;
  bVar35 = *(byte *)(DAT_182671560 - (uVar42 ^ 0x96258650)) ^ (byte)uVar15 ^ (byte)DAT_1826717ac;
  pbVar21 = (byte *)((CONCAT44(uVar9,uVar11) ^ 0x62500040185c5abd) +
                    *(longlong *)(DAT_182671560 + -3000));
  uVar38 = *(ulonglong *)(DAT_182671560 + -0x898);
  *(ulonglong *)(DAT_182671560 + -0x738) = (ulonglong)pbVar21 ^ uVar44;
  *(byte *)(lVar2 + -0xd61) = bVar35;
  *(ulonglong *)(lVar2 + -0x318) = (uVar38 ^ CONCAT44(uVar15,uVar15)) + 0x36a83c2db88f97e3;
  *pbVar21 = (byte)DAT_1826717c0 ^ (byte)DAT_1826717ac ^ bVar35;
  uVar38 = CONCAT44(DAT_182671880,DAT_182671880);
  puVar26 = (ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0xf128371));
  *puVar26 = *(longlong *)(lVar2 - (uVar29 ^ 0x2b4cedc4)) + 0x50U ^ uVar38;
  uVar14 = DAT_18267162c;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x2a40e278)) =
       (CONCAT44(uVar10,uVar6) ^ 0x5af7971759d21bee) +
       (*(ulonglong *)(lVar2 + -0x110) ^ CONCAT44(uVar16,uVar16));
  uVar38 = *(ulonglong *)(*(ulonglong *)(lVar2 + -0xd60) ^ uVar38) ^ uVar20;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar38 ^ CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar10 = DAT_182671594;
  uVar19 = DAT_182671594 | DAT_182671584;
  uVar30 = (ulonglong)DAT_182671594;
  DAT_182671570 = uVar19;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar38 >> ((byte)uVar43 & 0x3f) ^ CONCAT44(uVar14,uVar14)
  ;
  lVar2 = DAT_182671560;
  uVar40 = DAT_1826715a4 << 0x10 | DAT_1826715a4 >> 0x10;
  bVar39 = (byte)uVar14;
  uVar38 = (ulonglong)DAT_182671664;
  DAT_1826715ac = uVar40;
  *(byte *)(DAT_182671560 - (uVar31 ^ 0x9041f8b0)) =
       *(byte *)(DAT_182671560 - ((ulonglong)uVar40 ^ 0xf3419ac9)) ^ bVar39 ^ (byte)DAT_182671760;
  pbVar21 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar10 ^ 0xee71e648)) +
                    (CONCAT44(uVar10,uVar43) ^ 0xee71edf096258e99));
  *(ulonglong *)(lVar2 + -0xca8) = (ulonglong)pbVar21 ^ uVar38;
  *(ulonglong *)(lVar2 + -0x898) =
       CONCAT44(uVar10,uVar40) ^ 0x7dad0ebbbc862641 | CONCAT44(uVar19,uVar12) ^ 0x3e885d32fd0bd24e;
  uVar14 = DAT_182671674;
  *pbVar21 = *(byte *)(lVar2 - ((ulonglong)uVar40 ^ 0xf3419bb0)) ^ (byte)DAT_1826717c0 ^
             (byte)DAT_182671760;
  lVar3 = DAT_182671560;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) + 0x50 +
            (CONCAT44(uVar40,uVar12) ^ 0xf34190419041f341) * 0x60);
  uVar44 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar2 + -0x128) = (ulonglong)puVar27 ^ CONCAT44(uVar14,uVar14);
  uVar15 = DAT_18267183c;
  uVar38 = *puVar27 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x318) = uVar38 ^ uVar44;
  *(ulonglong *)(lVar3 + -0x110) =
       uVar38 >> (((byte)uVar19 ^ 0xe8) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  bVar35 = (byte)uVar15 ^ *(byte *)(lVar3 + -0x110) ^ (byte)DAT_1826717e8;
  pbVar21 = (byte *)((CONCAT44(uVar43,uVar19) ^ 0x96258ec8fe75efaa) + *(longlong *)(lVar3 + -3000));
  *(byte *)(lVar3 + -0xc51) = bVar35;
  bVar35 = bVar35 ^ (byte)DAT_1826717c0 ^ (byte)DAT_1826717e8;
  *(ulonglong *)(lVar3 + -0x158) = (ulonglong)pbVar21 ^ (ulonglong)DAT_18267172c;
  uVar38 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *pbVar21 = bVar35;
  uVar16 = DAT_1826718ac;
  uVar14 = DAT_1826715e4;
  lVar2 = DAT_182671560;
  puVar27 = (ulonglong *)
            ((CONCAT44(uVar19,uVar12) ^ 0xfe75eff89041f341) * 0x60 +
            *(longlong *)(lVar3 - ((ulonglong)uVar40 ^ 0xf3419bd9)) + 0x50);
  *(ulonglong *)(DAT_182671560 + -0x690) = (ulonglong)puVar27 ^ uVar38;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x628) = *puVar27 ^ uVar20 ^ uVar38;
  bVar35 = (byte)uVar16 ^ (byte)DAT_182671794;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0x2b4ce074)) ^ uVar38) >> (((byte)uVar10 ^ 0xe8) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar38 = (ulonglong)DAT_182671694;
  *(ulonglong *)(lVar2 + -0xa88) =
       (CONCAT44(iVar5,uVar10) ^ 0x691e04d46a306411) + 0xec8b402edfea1476;
  lVar2 = DAT_182671560;
  uVar43 = DAT_18267159c & DAT_182671580;
  plVar1 = (longlong *)(DAT_182671560 + -3000);
  DAT_182671578 = uVar43;
  *(byte *)(DAT_182671560 + -0x9c9) = bVar35 ^ *(byte *)(DAT_182671560 + -0xbf0);
  pbVar21 = (byte *)(*plVar1 + 0x53);
  *(ulonglong *)(lVar2 + -0x528) = (ulonglong)pbVar21 ^ uVar38;
  uVar14 = DAT_182671678;
  *pbVar21 = *(byte *)(lVar2 - (uVar33 ^ 0x185c5324)) ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671794;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xee71e090)) =
       (CONCAT44(uVar7,uVar11) ^ 0xee71edf0185c5aed) * 0x60 + 0x50 +
       *(longlong *)(lVar2 - ((ulonglong)uVar43 ^ 0x8504378)) ^ uVar38;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar43 ^ 0x8504078)) =
       (CONCAT44(uVar11,uVar43) ^ 0xf0737f368fbed9cc) >>
       ((byte)*(undefined8 *)(lVar2 + -0x670) & 0x3f);
  uVar14 = DAT_1826717d8;
  uVar38 = *(ulonglong *)(*(ulonglong *)(lVar2 + -0xd60) ^ uVar38) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x318) = uVar38 ^ CONCAT44(DAT_182671844,DAT_182671844);
  lVar2 = DAT_182671560;
  bVar35 = (byte)uVar14 ^ (byte)DAT_18267171c;
  uVar44 = uVar38 >> ((byte)uVar43 & 0x3f) ^ CONCAT44(uVar14,uVar14);
  uVar38 = (ulonglong)DAT_182671754;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar44;
  *(byte *)(lVar2 - (uVar28 ^ 0xee71e4ea)) = bVar35 ^ (byte)uVar44;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar43 ^ 0x8504180)) =
       (CONCAT44(uVar43,uVar11) ^ 0x85048e0185c5ab9) + *(longlong *)(DAT_182671560 + -3000) ^ uVar38
  ;
  *(byte *)(*(ulonglong *)(lVar2 + -0x960) ^ uVar38) =
       *(byte *)(DAT_182671560 - (uVar42 ^ 0x962587d2)) ^ (byte)DAT_1826717c0 ^ (byte)DAT_18267171c;
  uVar14 = DAT_18267189c;
  uVar38 = CONCAT44(uVar10,DAT_18267158c);
  *(ulonglong *)(lVar2 + -0xa88) =
       (CONCAT44(uVar11,uVar11) ^ 0xf581e32240a3692a) >> (((byte)uVar12 ^ 0x59) & 0x3f);
  uVar29 = (ulonglong)DAT_182671598;
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x128) =
       *(longlong *)(lVar2 + -0xb98) + (uVar38 ^ 0xee71edf091ef5a55) * 8 ^ uVar44;
  uVar14 = DAT_182671854;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar43 ^ 0x8504310)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0xee71ecd8)) ^ uVar44) ^ uVar41 ^ uVar20;
  lVar2 = DAT_182671560;
  uVar38 = (ulonglong)DAT_1826718cc;
  *(ulonglong *)(DAT_182671560 - (uVar42 ^ 0x962588b8)) =
       (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x90ef43a9)) ^ uVar41) >>
       ((local_108 ^ 0x68) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  *(byte *)(lVar2 + -0x3d5) = (byte)uVar14 ^ *(byte *)(lVar2 + -0x670) ^ (byte)DAT_182671608;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x118e1307)) =
       (uVar23 ^ 0xee71edf0118e125a) + *(longlong *)(lVar2 + -3000) ^ uVar38;
  *(undefined1 *)(lVar2 + -0xb0a) = **(undefined1 **)(lVar2 + -0x5b8);
  uVar10 = DAT_1826715ec;
  uVar28 = (ulonglong)DAT_1826715ec;
  *(byte *)(*(ulonglong *)(lVar2 + -0x108) ^ uVar38) =
       (byte)DAT_1826717c0 ^ *(byte *)(lVar2 + -0x3d5) ^ (byte)DAT_182671608;
  uVar38 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar2 + -0x690) = *(longlong *)(lVar2 - (uVar36 ^ 0x9db9f310)) + 0x50U ^ uVar38;
  uVar14 = DAT_1826717b0;
  uVar38 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar30 ^ 0xee71eb60)) ^ uVar38) ^
           CONCAT44(uVar10,uVar10) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x898) = uVar38;
  lVar2 = DAT_182671560;
  pbVar21 = (byte *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0xfe75e4f2));
  uVar38 = (uVar38 >> 0x20 ^ uVar28) >> 0x10 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar38;
  uVar28 = (ulonglong)DAT_1826716d0;
  *pbVar21 = (byte)uVar14 ^ (byte)uVar38 ^ bVar39;
  bVar35 = (byte)DAT_1826717c0 ^ *(byte *)(lVar2 + -0xb0a);
  pbVar21 = (byte *)((CONCAT44(uVar8,uVar9) ^ 0x91ef5a5f62500016) + *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0x390) = (ulonglong)pbVar21 ^ uVar28;
  *pbVar21 = bVar35 ^ bVar39;
  uVar8 = DAT_1826716a4;
  lVar2 = DAT_182671560;
  uVar23 = CONCAT44(DAT_182671658,DAT_182671658);
  *puVar22 = *(longlong *)(DAT_182671560 + -0xb98) +
             ((CONCAT44(uVar40,uVar7) ^ 0xf3419041ee71edfa) +
             (CONCAT44(uVar32,uVar4) ^ 0x2dfbebc9ffffffff) * 0xc) * 8 ^ uVar23;
  uVar38 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar2 + -0x628) =
       (*(ulonglong *)(lVar2 + -0x110) ^ CONCAT44(uVar15,uVar15)) >> (((byte)uVar6 ^ 0x36) & 0x3f);
  uVar28 = (ulonglong)DAT_182671804;
  uVar23 = *(ulonglong *)(uVar23 ^ *puVar26) ^ uVar20;
  *(ulonglong *)(lVar2 + -0xa88) = uVar23 ^ uVar38;
  uVar38 = uVar23 >> (((byte)uVar13 ^ 100) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar38;
  *(byte *)(lVar2 - (uVar42 ^ 0x962589d9)) = (byte)uVar8 ^ (byte)DAT_1826717b4 ^ (byte)uVar38;
  uVar42 = CONCAT44(iVar5,DAT_1826715b4);
  pbVar21 = (byte *)((CONCAT44(uVar4,DAT_1826715b4) ^ 0xffffffff118e1258) +
                    *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0xc30) = (ulonglong)pbVar21 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x670) =
       (CONCAT44(uVar19,uVar24) ^ 0xe94d7f0e56fb25b8) >>
       ((*(byte *)(lVar2 - (uVar29 ^ 0x90ef4b41)) ^ (byte)uVar14) & 0x3f);
  uVar38 = CONCAT44(DAT_182671704,DAT_182671704);
  *pbVar21 = *(byte *)(lVar2 - (uVar33 ^ 0x185c5dfc)) ^ (byte)DAT_1826717c0 ^ (byte)DAT_1826717b4;
  uVar8 = DAT_182671734;
  puVar26 = (ulonglong *)
            (*plVar25 +
            ((uVar42 ^ 0x69da7137118e1204) + (CONCAT44(uVar9,uVar11) ^ 0x62500040185c5aed) * 0xc) *
            8);
  *(ulonglong *)(lVar2 + -0x128) = (ulonglong)puVar26 ^ uVar38;
  uVar42 = CONCAT44(uVar8,uVar8);
  uVar38 = *puVar26 ^ uVar20 ^ uVar42;
  uVar28 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(lVar2 + -0x898) = uVar38;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x2a40e540)) = uVar28 ^ uVar38 ^ uVar42;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar43 ^ 0x8504ec8)) =
       0xc5c41b5f737ef0d3 >> (((byte)uVar4 ^ 0xc2) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar17;
  return;
}



############ FUN_ 180e61e00 size=5323 ############

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

void FUN_180e61e00(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res18;
  
  uVar5 = DAT_182671890;
  uVar6 = DAT_1826715f8;
  uVar7 = DAT_182671598;
  uVar13 = DAT_182671580;
  uVar12 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar36 = (ulonglong)DAT_182671570;
  uVar23 = (ulonglong)DAT_182671598;
  uVar28 = DAT_182671580 | DAT_182671598;
  uVar20 = ~DAT_182671570;
  uVar38 = (ulonglong)uVar20;
  uVar10 = *(uint *)(&DAT_182611e78 + DAT_182671ad0) ^ DAT_182671570;
  uVar30 = DAT_182671658 + DAT_1826715f8;
  uVar1 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_182671580 ^ 0x25ceed45) + (longlong)DAT_182671ad0);
  uVar11 = DAT_1826715f8 & 0xff;
  DAT_1826715f8 = ((DAT_1826715f8 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar15 = CONCAT44(DAT_182671778,DAT_182671778);
  uVar41 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  DAT_18267157c = uVar28;
  DAT_18267159c = uVar20;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671570 ^ 0x33a1806f)) =
       (uVar15 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) << 0x3b ^ uVar41;
  uVar11 = DAT_182671658 & 0xff;
  DAT_182671658 = ((DAT_182671658 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar19 = (ulonglong)uVar28;
  puVar22 = (ulonglong *)(lVar2 - (uVar19 ^ 0x27fefce5));
  uVar39 = CONCAT44(DAT_182671658,DAT_182671658);
  uVar16 = CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar2 + -0x2a0) | *puVar22 ^ uVar41;
  uVar11 = uVar30 & 0xff;
  uVar30 = uVar30 * 0x100;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar16 ^ uVar39;
  uVar8 = _DAT_182671838;
  uVar5 = DAT_1826715d4;
  lVar3 = DAT_182671560;
  DAT_1826716a0 = ((uVar30 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar25 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar34 = (ulonglong)DAT_1826716a0;
  uVar31 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x22f47c34)) ^ uVar25) - uVar16 ^ uVar31;
  uVar17 = CONCAT44(uVar5,uVar5);
  uVar26 = CONCAT44(DAT_18267180c,DAT_18267180c);
  puVar18 = (ulonglong *)(lVar2 - (uVar23 ^ 0x22f4774c));
  *(ulonglong *)(lVar2 + -0x1f0) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0xcc5e7410)) ^ uVar26 ^ uVar17 ^ uVar31 ^
       *(ulonglong *)(lVar2 + -0x628);
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (uVar31 ^ *puVar18) >> (((byte)uVar13 ^ 0x70) & 0x3f) ^ uVar41;
  lVar4 = DAT_182671560;
  puVar42 = (ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xcc5e7e28));
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar13 ^ 0x25ceee4d)) =
       (CONCAT44(uVar12,uVar28) ^ 0xe2ca6cc4ec0c781c) << (((byte)*puVar42 ^ (byte)uVar6) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x25cee7dd)) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x1f0)) << (((byte)uVar7 ^ 0xa7) & 0x3f) ^ uVar39;
  uVar9 = DAT_182671888;
  uVar5 = DAT_1826717bc;
  uVar32 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar16 = *(ulonglong *)(lVar3 + -0xa88) ^ uVar39 | *(ulonglong *)(lVar3 + -0x2a0) ^ uVar41;
  *(ulonglong *)(lVar3 + -0x628) = uVar16 ^ uVar32;
  uVar21 = CONCAT44(uVar5,uVar5);
  *puVar22 = (uVar26 ^ *(ulonglong *)(lVar3 + -0x898)) - uVar16 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar21) >>
       (((byte)uVar9 ^ *(byte *)(lVar3 + -0x628)) & 0x3f);
  uVar5 = DAT_1826717b0;
  uVar16 = *(ulonglong *)(lVar3 - (uVar38 ^ 0xcc5e7a30)) ^ uVar32 ^ *(ulonglong *)(lVar3 + -0x628);
  *(ulonglong *)(lVar3 + -0xa88) = uVar16;
  uVar33 = CONCAT44(uVar5,uVar5);
  uVar27 = (uVar16 ^ uVar31) << 0x29;
  uVar23 = *(ulonglong *)(lVar3 - (uVar36 ^ 0x33a189ff)) >> 0x17 ^
           ((ulonglong)((uVar30 & 0xffff | uVar11) >> 7) | uVar34 << 9);
  uVar16 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar23 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x898) = uVar27 ^ uVar16;
  *(ulonglong *)(lVar3 + -0x1f0) = -0x7d502c6bf38cd1a1 - uVar27;
  uVar30 = DAT_182671690 & 0xff;
  DAT_182671690 = ((DAT_182671690 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar29 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x27fef9d5)) = (uVar27 | uVar23) ^ uVar29;
  uVar5 = DAT_18267178c;
  puVar22 = (ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x22f47004));
  uVar27 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar3 + -0xa88) =
       (uVar31 ^ *puVar22) - (uVar29 ^ *(ulonglong *)(lVar3 + -0x628)) ^ uVar27;
  uVar16 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x1f0) =
       *(ulonglong *)(lVar3 + -0x9e8) ^ *(ulonglong *)(lVar3 + -0x318) ^ uVar16 ^ uVar21 ^ uVar39;
  *(uint *)(lVar3 - (uVar19 ^ 0x27fef695)) = uVar13 ^ 0x25f4ebc | *(uint *)(lVar3 + -0x754);
  uVar11 = DAT_1826717c8 & 0xff;
  uVar14 = DAT_1826717c8 << 8;
  uVar34 = (uVar16 ^ *(ulonglong *)(lVar3 + -0x1f0)) << 0x18;
  DAT_1826717c8 = ((uVar14 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar37 = (ulonglong)DAT_1826717c8;
  local_res18 = (byte)uVar20;
  uVar16 = (uVar16 ^ *(ulonglong *)(lVar3 + -0x1f0)) >> ((local_res18 ^ 0xa0) & 0x3f);
  uVar30 = DAT_182671880 & 0xff;
  uVar40 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar34 ^ CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar3 + -0x898) = uVar16 ^ uVar40;
  uVar5 = DAT_1826717b8;
  DAT_182671880 = ((DAT_182671880 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar34 = uVar34 | uVar16;
  uVar16 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar35 = uVar34 ^ uVar16;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar35;
  uVar23 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x9e8) = (*(ulonglong *)(lVar3 + -0x318) ^ uVar21) - uVar34 ^ uVar23;
  lVar2 = DAT_182671560;
  uVar30 = DAT_18267182c & 0xff;
  DAT_18267182c = ((DAT_18267182c << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar21 = CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar30 = DAT_1826717f8 & 0xff;
  uVar35 = *(ulonglong *)(DAT_182671560 - (uVar19 ^ 0x27fef575)) ^ uVar21 ^ uVar16 ^ uVar27 ^ uVar35
  ;
  bVar24 = (byte)uVar12;
  DAT_1826717f8 = ((DAT_1826717f8 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar16 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar35;
  *(ulonglong *)(lVar2 + -0x2a0) = (uVar21 ^ uVar35) >> ((local_res18 ^ 0xbc) & 0x3f) ^ uVar16;
  *(ulonglong *)(lVar2 + -0x898) = *(ulonglong *)(lVar2 + -0xa88) ^ uVar27 ^ 0x9c411fe1cac697dd;
  uVar34 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar21 = (uVar21 ^ uVar35) << ((bVar24 ^ 0x7b) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar21 ^ uVar34;
  uVar30 = DAT_1826715e8 & 0xff;
  uVar21 = *(ulonglong *)(lVar2 - (uVar36 ^ 0x33a181d7)) ^ uVar16 | uVar21;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar21 ^ uVar15;
  lVar2 = DAT_182671560;
  DAT_1826715e8 = ((DAT_1826715e8 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar36 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x237078bb)) =
       (*(ulonglong *)(DAT_182671560 + -0xa88) ^ uVar27) - uVar21 ^ uVar36;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b0 ^ 0x4d678d0f)) =
       (CONCAT44(uVar7,uVar13) ^ 0x2dc5e53985e3793b) <<
       ((*(byte *)(lVar2 + -0x9e8) ^ (byte)uVar5) & 0x3f);
  uVar5 = DAT_1826717ac;
  uVar30 = DAT_18267173c & 0xff;
  DAT_18267173c = ((DAT_18267173c << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar16 = (ulonglong)DAT_18267173c;
  uVar44 = CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar27 = *(ulonglong *)(lVar2 - (uVar38 ^ 0xcc5e7560)) ^ uVar44 ^ uVar23 ^ uVar29 ^
           *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar27;
  uVar12 = DAT_182671584;
  uVar30 = DAT_182671628 & 0xff;
  uVar27 = (uVar27 >> 0x20 ^ uVar16) >> 0x19;
  DAT_182671628 = ((DAT_182671628 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  *(ulonglong *)(lVar2 + -0xa88) = uVar27 ^ CONCAT44(uVar5,uVar5);
  uVar16 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (*(ulonglong *)(DAT_182671560 - (uVar19 ^ 0x27fefd5d)) ^ uVar44) <<
       (((byte)DAT_1826715b4 ^ 0x24) & 0x3f) ^ uVar16;
  lVar2 = DAT_182671560;
  uVar27 = uVar16 ^ *puVar18 | uVar27;
  puVar18 = (ulonglong *)(DAT_182671560 + -0x9e8);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar27 ^ uVar17;
  uVar6 = DAT_18267158c;
  *puVar42 = (*puVar18 ^ uVar23) - uVar27 ^ uVar26;
  *(ulonglong *)(lVar2 + -0xa88) =
       (*(ulonglong *)(lVar2 + -0x318) ^ uVar34) >> (((byte)uVar28 ^ 0xee) & 0x3f);
  lVar3 = DAT_182671560;
  uVar16 = uVar36 ^ uVar40 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0x898) ^
           *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar16;
  uVar30 = DAT_182671568;
  puVar42 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0x70232a98));
  *puVar42 = (uVar37 << 0x12 | (ulonglong)(((uVar14 & 0xffff | uVar11) << 8 | uVar11) >> 6)) ^
             uVar16 >> 0xe ^ uVar41;
  uVar11 = DAT_1826715a0;
  lVar2 = DAT_182671560;
  uVar14 = DAT_182671738 & 0xff;
  DAT_182671738 = ((DAT_182671738 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar21 = (ulonglong)DAT_1826715a0;
  uVar16 = CONCAT44(DAT_182671738,DAT_182671738);
  puVar18 = (ulonglong *)(DAT_182671560 + -0x898);
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0xf21d4bf0)) ^ uVar40) << 0x32 ^ uVar16;
  uVar5 = DAT_182671864;
  uVar23 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xa2f5fca6)) ^ uVar16 |
           *(ulonglong *)(lVar2 + -0x9e8) ^ uVar41;
  uVar12 = DAT_182671814 & 0xff;
  DAT_182671814 = ((DAT_182671814 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar43 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar2 + -0x9e8) =
       ((uVar36 ^ *puVar18) - (CONCAT44(uVar28,uVar7) ^ 0x1856c014300e0b6)) - uVar23 ^ uVar43;
  uVar16 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x318) = uVar23 - (CONCAT44(uVar11,uVar30) ^ 0x698c21aabdc8ea4b) ^ uVar16;
  uVar5 = DAT_182671780;
  uVar12 = DAT_18267156c;
  uVar15 = uVar34 ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar26 ^ uVar15 ^
           *(ulonglong *)(lVar2 + -0x6b8);
  uVar37 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 + -0x898) = uVar15;
  uVar11 = DAT_1826715a8;
  uVar23 = CONCAT44(uVar5,uVar5);
  uVar40 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0x1f0) = (uVar15 ^ uVar34) >> (((byte)uVar13 ^ 0x45) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar2 + -0xa88) = CONCAT44(uVar30,uVar12) ^ 0x7af9d2719c3cab90;
  uVar30 = DAT_1826718b8 & 0xff;
  DAT_1826718b8 = ((DAT_1826718b8 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar27 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *puVar22 = (uVar34 ^ uVar15) << ((bVar24 ^ 0x47) & 0x3f) ^ uVar27;
  uVar14 = DAT_1826715ac;
  uVar6 = DAT_1826715a4;
  uVar12 = DAT_182671590;
  uVar36 = (ulonglong)DAT_1826715a4;
  uVar45 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xcc5e7600)) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x6b8) | uVar23 ^ *(ulonglong *)(lVar2 + -0x1f0)) ^ uVar44;
  uVar30 = DAT_182671804 >> 0x10;
  *(uint *)(DAT_182671560 + -0x27c) = (uVar14 ^ 0x3bec67c2) << (((byte)uVar11 ^ 0x54) & 0x1f);
  lVar2 = DAT_182671560;
  uVar11 = DAT_182671804 & 0xff;
  DAT_182671804 = ((DAT_182671804 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar35 = CONCAT44(DAT_182671804,DAT_182671804);
  uVar23 = (ulonglong)DAT_182671584;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (*(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar26) -
       (CONCAT44(uVar6,uVar12) ^ 0x276ca273ebf936f4) ^ uVar35;
  lVar3 = DAT_182671560;
  uVar11 = uVar30 & 0xff;
  DAT_18267177c = ((uVar30 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar34 = CONCAT44(DAT_18267177c,DAT_18267177c);
  uVar15 = (ulonglong)DAT_182671588;
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0xf21d4298)) ^ uVar35) -
       (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xb05e4880)) ^ uVar44) ^ uVar34;
  puVar22 = (ulonglong *)(lVar3 - (uVar15 ^ 0x29758b89));
  uVar15 = (ulonglong)DAT_1826715b4;
  *puVar22 = uVar17 ^ *(ulonglong *)(lVar3 + -0x628) | 0xee9d534a397d6ccb;
  uVar23 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 - (uVar15 ^ 0x23707283)) =
       (CONCAT44(uVar12,uVar13) ^ 0xf007944efc771248) + (*(ulonglong *)(lVar3 + -0xa88) ^ uVar44) ^
       uVar34;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x70232be8)) =
       uVar34 ^ uVar35 ^ uVar43 ^ *(ulonglong *)(lVar3 + -0x2a0) ^ *puVar42;
  uVar30 = DAT_18267158c;
  uVar5 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar15 = (ulonglong)DAT_182671588;
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xa2a1c9a6)) =
       (uVar35 ^ *(ulonglong *)(DAT_182671560 + -0x898)) >> ((bVar24 ^ 0x57) & 0x3f) ^ uVar35;
  uVar17 = (*(ulonglong *)(lVar2 - (uVar15 ^ 0x297585a9)) ^ uVar35) << (((byte)uVar6 ^ 0x20) & 0x3f)
  ;
  uVar23 = CONCAT44(DAT_1826715b0,uVar5);
  uVar15 = CONCAT44(DAT_1826715b0,uVar30);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar17 ^ uVar34;
  uVar13 = DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0xa88) = uVar23 ^ uVar15 ^ 0x66d0127652756eda;
  uVar17 = *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x2370760b)) ^ uVar35 | uVar17;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar17 ^ uVar39;
  *(ulonglong *)(lVar2 + -0x898) = 0x30834cc7e53db8d9 - uVar17;
  uVar12 = DAT_182671594;
  uVar30 = DAT_182671568;
  lVar3 = DAT_182671560;
  uVar17 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar43 ^ *(ulonglong *)(lVar2 + -0x9e8)) -
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0xb29871a0)) ^ uVar39) ^ uVar35;
  uVar23 = (CONCAT44(uVar13,uVar30) ^ 0x97c586c3bb52d510) + 0x4828429ecf180294;
  uVar15 = uVar16 ^ *(ulonglong *)(lVar3 + -0x318) ^ *(ulonglong *)(lVar3 + -0x1f0);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar15;
  *(ulonglong *)(lVar3 + -0x628) = uVar23;
  uVar5 = DAT_1826716a4;
  uVar16 = (*(ulonglong *)(lVar3 - (uVar17 ^ 0x83773519)) ^ uVar34) >>
           (((byte)uVar12 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar3 + -0x898) = uVar16 ^ uVar41;
  lVar2 = DAT_182671560;
  uVar15 = (uVar34 ^ uVar15) << (((byte)uVar7 ^ 0x9c) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar23 | 0x19e714d502e30cfd;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar15 ^ CONCAT44(uVar5,uVar5);
  lVar2 = DAT_182671560;
  uVar30 = DAT_182671768 & 0xff;
  DAT_182671768 = ((DAT_182671768 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar23 = CONCAT44(DAT_182671768,DAT_182671768);
  puVar18 = (ulonglong *)(DAT_182671560 - (uVar45 ^ 0x1d761407));
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0xa2f5f906)) =
       (uVar16 | uVar15) ^ uVar23;
  uVar37 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xcf8ea489)) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x1f0)) - (uVar23 ^ *puVar18) ^ uVar37;
  uVar15 = uVar23 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0xa88) ^ uVar39 ^ *puVar22;
  uVar43 = (ulonglong)DAT_182671574;
  bVar24 = (byte)DAT_182671574;
  *(ulonglong *)(lVar2 + -0x318) = uVar15;
  uVar16 = (uVar39 ^ uVar15) >> ((bVar24 ^ 0x4a) & 0x3f);
  uVar21 = (uVar15 ^ uVar39) << 6;
  uVar15 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(lVar2 + -0x898) = uVar16 ^ uVar32;
  uVar5 = DAT_1826718ac;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar21 ^ uVar15;
  lVar3 = DAT_182671560;
  uVar23 = CONCAT44(uVar5,uVar5);
  uVar30 = DAT_1826716cc & 0xff;
  uVar16 = uVar16 | uVar21;
  uVar21 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar16 ^ uVar23;
  DAT_1826716cc = ((DAT_1826716cc << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar34 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar30 = DAT_18267162c & 0xff;
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar35 ^ *(ulonglong *)(lVar3 + -0xa88)) - uVar16 ^ uVar34;
  DAT_18267162c = ((DAT_18267162c << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar15 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x837730b9)) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0xb05e40a8)) ^ uVar39 ^ uVar15 ^ uVar37 ^
       *(ulonglong *)(lVar3 + -0x628);
  uVar30 = DAT_1826715b4;
  uVar36 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar3 + -0x898) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xcc5e7f90)) ^ uVar15) >> ((local_res18 ^ 0x9e) & 0x3f) ^
       uVar29;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar34 ^ *(ulonglong *)(lVar3 + -0x6b8) ^ 0xe5afa69e6aea46b7;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x23707aab)) =
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0xe289ee58)) ^ uVar15) <<
       (((byte)DAT_182671584 ^ 0x2a) & 0x3f) ^ uVar41;
  uVar21 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar13 = DAT_18267174c & 0xff;
  uVar15 = *(ulonglong *)(lVar3 + -0xa88) ^ uVar41 | uVar29 ^ *(ulonglong *)(lVar3 + -0x898);
  uVar16 = uVar15 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar16;
  DAT_18267174c = ((DAT_18267174c << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar17 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar3 + -0x9e8) = (uVar37 ^ *(ulonglong *)(lVar3 + -0x628)) - uVar15 ^ uVar17;
  uVar15 = uVar33 ^ *puVar18 ^ uVar16 ^ uVar21 ^ uVar34;
  *(ulonglong *)(lVar3 + -0x318) = uVar15;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x27fef765)) =
       (uVar33 ^ uVar15) >> (((byte)uVar30 ^ 0xd) & 0x3f) ^ uVar31;
  uVar19 = (*(ulonglong *)(lVar3 + -0x318) ^ uVar33) << (((byte)uVar12 ^ 0xb3) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa88) = uVar19 ^ uVar26;
  uVar30 = DAT_182671834 & 0xff;
  *(ulonglong *)(lVar3 + -0x628) = (uVar31 ^ *(ulonglong *)(lVar3 + -0x898) | uVar19) ^ uVar25;
  uVar16 = (ulonglong)DAT_1826715b0;
  DAT_182671834 = ((DAT_182671834 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar15 = CONCAT44(DAT_182671834,DAT_182671834);
  uVar38 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xcf8ea419)) ^ uVar34) -
           (*(ulonglong *)(lVar3 - (uVar36 ^ 0x29758b19)) ^ uVar25) ^ uVar15;
  uVar21 = CONCAT44(DAT_182671808,DAT_182671808);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar38;
  uVar34 = *(ulonglong *)(lVar3 + -0x9e8) ^ *(ulonglong *)(lVar3 + -0x1f0) ^ uVar21 ^ uVar17 ^
           uVar23;
  uVar19 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *(ulonglong *)(lVar3 + -0x318) = uVar34;
  uVar34 = (uVar34 ^ uVar21) >> ((local_res18 ^ 0x84) & 0x3f);
  uVar30 = DAT_182671734 & 0xff;
  *(ulonglong *)(lVar3 + -0xa88) = uVar34 ^ uVar19;
  DAT_182671734 = ((DAT_182671734 << 8 | uVar30) << 8 | uVar30) << 8 | uVar30;
  uVar19 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0x4d678fe7)) ^ uVar21) << 0x34;
  *(ulonglong *)(lVar3 + -0x898) = uVar19 ^ CONCAT44(DAT_182671734,DAT_182671734);
  uVar19 = uVar19 | uVar34;
  uVar16 = uVar19 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar16;
  uVar5 = DAT_18267163c;
  *(ulonglong *)(lVar3 + -0x1f0) = (*(ulonglong *)(lVar3 + -0x9e8) ^ uVar17) - uVar19 ^ uVar27;
  *(longlong *)(lVar3 + -0x318) =
       0x76b63823e81c171f << (((byte)uVar8 ^ *(byte *)(lVar3 + -0x628)) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar20) * 4) = uVar10;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x702329f8)) =
       CONCAT44(uVar5,uVar5) ^ uVar38 ^ uVar15 ^ uVar23 ^ uVar16;
  return;
}



############ FUN_ 180e632d0 size=4300 ############

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

void FUN_180e632d0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  uint *puVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  longlong lVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  longlong lVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  uVar16 = DAT_1826717c0;
  uVar31 = DAT_1826716f8;
  uVar6 = _DAT_1826715dc;
  uVar25 = _DAT_1826715d8;
  uVar17 = DAT_1826715b0;
  uVar27 = DAT_18267158c;
  lVar19 = DAT_182671560;
  uVar32 = (ulonglong)DAT_18267158c;
  uVar29 = DAT_1826715b0 & DAT_18267158c;
  uVar10 = *(uint *)(&DAT_182611e78 + DAT_182671ad4) ^ DAT_1826715b0;
  uVar11 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar29 ^ 0x14c424c) + (longlong)DAT_182671ad4) ^
           DAT_18267158c;
  uVar12 = (ulonglong)DAT_18267158c;
  uVar33 = (ulonglong)DAT_1826715b0;
  DAT_182671594 = uVar29;
  *(undefined1 *)(DAT_182671560 - ((ulonglong)DAT_1826715b0 ^ 0x2b4ce66d)) =
       **(undefined1 **)(DAT_182671560 + -0x5b8);
  uVar20 = *(uint *)((ulonglong)uVar31 ^ *(ulonglong *)(lVar19 + -0xd00)) ^ uVar6 ^ uVar16;
  *(uint *)(lVar19 + -0x678) = uVar20;
  *(uint *)(lVar19 - ((ulonglong)uVar17 ^ 0x2b4cef34)) =
       (*(uint *)(lVar19 - ((ulonglong)uVar27 ^ 0x91ef5977)) ^ DAT_182671824) - (uVar20 ^ uVar6) ^
       DAT_18267160c;
  puVar1 = (uint *)(lVar19 + -0x27c);
  *(uint *)(lVar19 + -0x47c) =
       (*(uint *)(lVar19 + -0x678) ^ uVar6 | *(uint *)(lVar19 + -0x968) ^ DAT_18267160c) ^ uVar25;
  uVar20 = DAT_182671778;
  *puVar1 = (int)(*(uint *)(lVar19 - ((ulonglong)uVar29 ^ 0x14c4620)) ^ uVar25) >>
            ((byte)uVar27 & 0x1f) ^ uVar16;
  uVar24 = DAT_18267177c;
  *(uint *)(lVar19 + -0x774) =
       *(uint *)(lVar19 - ((ulonglong)uVar17 ^ 0x2b4ce420)) ^ uVar20 ^ uVar16 ^ uVar29 ^ 0xfeb3bda3;
  uVar22 = DAT_1826717b0;
  bVar14 = (byte)uVar17 ^ 0x43;
  uVar21 = (*(uint *)(lVar19 - (uVar12 ^ 0x91ef592b)) ^ uVar24) -
           (*(uint *)(lVar19 - ((ulonglong)uVar29 ^ 0x14c4424)) ^ uVar6) ^ DAT_182671860;
  *(uint *)(lVar19 + -0x8c) = uVar21;
  *(uint *)(lVar19 - ((ulonglong)uVar29 ^ 0x14c4028)) =
       (int)(uVar21 ^ DAT_182671860) >> (bVar14 & 0x1f) ^ uVar22;
  uVar23 = DAT_1826716dc;
  puVar2 = (uint *)(lVar19 + -0x844);
  *(ulonglong *)(lVar19 - ((ulonglong)uVar29 ^ 0x14c48dc)) =
       (CONCAT44(DAT_182671850,DAT_182671850) ^ *(ulonglong *)(lVar19 + -0xbf0)) <<
       (((byte)uVar17 ^ 0x4f) & 0x3f);
  lVar30 = DAT_182671560;
  *puVar2 = (uVar22 ^ *(uint *)(lVar19 + -0x274)) & (uVar20 ^ *(uint *)(lVar19 + -0x774)) ^ uVar23;
  *(ulonglong *)(lVar30 + -0xbf0) =
       (CONCAT44(uVar27,uVar27) ^ 0xc12a006c4b12f609) >>
       ((byte)*(undefined8 *)(lVar30 + -0x628) & 0x3f);
  uVar21 = DAT_1826715ac;
  uVar12 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar30 + -0x874) =
       *(uint *)(lVar30 - (uVar33 ^ 0x2b4ce428)) ^ DAT_182671668 ^ DAT_1826715ac ^ uVar22 ^
       0xcbe6fbe;
  *(ulonglong *)(lVar30 - (uVar12 ^ 0xf3419bb1)) =
       0x63aabf2438029f11 >>
       ((byte)*(undefined8 *)(lVar30 - ((ulonglong)uVar29 ^ 0x14c434c)) & 0x3f);
  uVar29 = DAT_182671840;
  uVar22 = DAT_182671760;
  puVar3 = (uint *)(lVar30 + -0x910);
  uVar16 = *(uint *)(lVar30 + -0x874) ^ DAT_182671668 | *puVar1 ^ uVar16;
  *(uint *)(lVar30 + -0x3d4) = uVar16 ^ DAT_182671840;
  uVar20 = *puVar2;
  *puVar3 = uVar16 & (uVar24 ^ *(uint *)(lVar30 + -0x374)) ^ DAT_18267169c;
  *(uint *)(lVar30 - ((ulonglong)uVar17 ^ 0x2b4ce518)) =
       (*(uint *)(lVar30 + -0x678) ^ uVar6) & (uVar20 ^ uVar23) ^ uVar22;
  uVar20 = DAT_182671568;
  puVar4 = (uint *)(lVar30 + -0x344);
  uVar28 = (ulonglong)DAT_182671568;
  *(uint *)(DAT_182671560 + -0x968) = (*puVar4 ^ uVar22) & (DAT_182671568 ^ 0x1b1de82c);
  uVar24 = DAT_18267174c;
  uVar6 = DAT_18267156c;
  lVar30 = DAT_182671560;
  puVar13 = (uint *)(DAT_182671560 + -0x3d4);
  *(uint *)(DAT_182671560 + -0x8c) = (*puVar4 ^ uVar22 | *puVar3 ^ DAT_18267169c) ^ DAT_1826718d4;
  *(uint *)(lVar30 + -0x774) =
       (*(uint *)(lVar30 + -0x754) ^ DAT_182671674) & (uVar29 ^ *puVar13) ^ uVar31;
  *(uint *)(lVar30 - ((ulonglong)uVar6 ^ 0xf3419236)) =
       (*puVar2 ^ uVar23) & (DAT_182671594 ^ 0x14c425d) ^ uVar24;
  lVar19 = *(longlong *)(lVar30 + -0x110);
  *(longlong *)(lVar30 + -0xbf0) = lVar19 << ((byte)*(undefined8 *)(lVar30 + -0x898) & 0x3f);
  lVar5 = DAT_182671560;
  uVar23 = (*(uint *)(lVar30 - ((ulonglong)uVar20 ^ 0xfffff88b)) ^ uVar31 |
           uVar24 ^ *(uint *)(DAT_182671560 + -0x274)) ^ DAT_182671638;
  *puVar1 = uVar23;
  uVar7 = DAT_182671578;
  uVar23 = uVar23 ^ DAT_18267168c ^ DAT_182671638;
  uVar26 = (ulonglong)DAT_182671898;
  uVar12 = CONCAT44(DAT_182671578,uVar21);
  lVar30 = (CONCAT44(uVar27,uVar17) ^ 0x91ef5a5f2b4ce65d) * 0x10 +
           *(longlong *)(lVar5 - (uVar28 ^ 0xfffffcaf));
  *(longlong *)(lVar5 + -0x9c8) = lVar30;
  *(ulonglong *)(lVar5 + -0x898) = (uVar12 ^ 0x87dd50f8b63406b3) >> ((byte)lVar19 & 0x3f);
  *(uint *)(lVar5 + -0x374) = *(uint *)(lVar5 + -0x8c) ^ DAT_182671704 ^ DAT_1826718d4;
  *(uint *)(lVar5 + -0x874) = uVar23;
  *(longlong *)(lVar5 + -0x350) = lVar30;
  *(longlong *)(lVar5 + -0x9c8) = lVar30;
  uVar22 = DAT_1826716fc;
  *(uint *)(lVar5 - ((ulonglong)uVar6 ^ 0xf341963a)) =
       *(uint *)(lVar5 - (uVar32 ^ 0x91ef522b)) ^ DAT_18267184c ^ DAT_18267168c;
  *(uint *)(lVar5 + -0x968) = uVar22 ^ DAT_182671704 ^ *(uint *)(lVar5 + -0x374);
  uVar23 = DAT_1826715ac;
  uVar18 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671594 ^ 0x14c4f5c)) =
       *(longlong *)(lVar5 - ((ulonglong)DAT_1826715ac ^ 0xf3419989)) +
       (CONCAT44(uVar20,uVar17) ^ 0xffffffff2b4ce65c) * 0x10 ^ uVar26;
  uVar16 = DAT_1826717a8;
  uVar24 = DAT_1826715b4;
  uVar6 = DAT_182671580;
  uVar12 = *(ulonglong *)(lVar5 + -0xd00);
  *puVar3 = (*(uint *)(lVar5 - ((ulonglong)DAT_18267156c ^ 0xf341943e)) ^ uVar25) <<
            (((byte)*(undefined4 *)(lVar5 - (uVar18 ^ 0x69da7643)) ^ (byte)uVar31) & 0x1f);
  uVar21 = DAT_182671824 ^ *(uint *)(lVar5 + -0x328);
  *puVar4 = *(uint *)(uVar26 ^ uVar12) ^ uVar16 ^ DAT_1826717c0;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671570 ^ 0xfe75e8ac)) =
       uVar21 - (*(uint *)(lVar5 - ((ulonglong)uVar20 ^ 0xfffffcbb)) ^ uVar16) ^ DAT_182671830;
  uVar20 = DAT_182671690;
  uVar12 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a0 ^ 0x2a40efa0)) =
       (CONCAT44(uVar27,uVar17) ^ 0x3d6db785f8ad1166) >>
       ((byte)*(undefined8 *)(lVar5 - ((ulonglong)uVar24 ^ 0x118e1117)) & 0x3f);
  uVar17 = DAT_182671598;
  uVar21 = DAT_182671588;
  uVar18 = (ulonglong)DAT_182671598;
  *(uint *)(lVar5 - (uVar33 ^ 0x2b4ce588)) =
       (*(uint *)(lVar5 - (uVar12 ^ 0x9db9ffdc)) ^ DAT_182671830 | *puVar4 ^ uVar16) ^ uVar20;
  uVar25 = DAT_1826715a4;
  *puVar2 = (int)(uVar20 ^ *(uint *)(lVar5 + -0x3d4)) >> (((byte)uVar21 ^ 0xd6) & 0x1f) ^
            DAT_18267186c;
  uVar20 = DAT_18267157c;
  bVar15 = (byte)DAT_182671578 ^ 0xff;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar23 ^ 0xf3419151)) =
       (CONCAT44(DAT_182671590,uVar17) ^ 0xafcbccd75447524d) << (((byte)uVar6 ^ 0xf3) & 0x3f);
  lVar30 = DAT_182671560;
  puVar13 = (uint *)(DAT_182671560 - ((ulonglong)uVar24 ^ 0x118e114b));
  uVar31 = *puVar2 ^ DAT_1826717e8 ^ uVar20 ^ DAT_18267186c ^ 0xee71edf0;
  *(uint *)(DAT_182671560 + -0x274) = uVar31;
  uVar31 = uVar31 ^ DAT_1826717e8;
  uVar12 = (ulonglong)DAT_182671574;
  *puVar1 = (*(uint *)(lVar30 + -0x968) ^ uVar22) - (*puVar13 ^ uVar16) ^ DAT_1826716a4;
  uVar17 = DAT_182671798;
  uVar23 = (int)(*(uint *)(lVar30 - (uVar12 ^ 0x69da734b)) ^ DAT_1826716a4) >> (bVar15 & 0x1f);
  *(uint *)(lVar30 + -0x8c) = uVar23 ^ DAT_182671798;
  uVar24 = DAT_182671784;
  *(uint *)(lVar30 + -0x874) = uVar23 & uVar31 ^ DAT_182671784;
  uVar23 = DAT_18267172c;
  *(uint *)(lVar30 + -0x374) =
       *(uint *)(lVar30 - ((ulonglong)uVar6 ^ 0xee71ed7c)) ^ DAT_182671718 ^ uVar17 ^ DAT_182671570
       ^ 0x18a1007;
  *(uint *)(lVar30 - ((ulonglong)DAT_182671594 ^ 0x14c4b4c)) =
       (*(uint *)(lVar30 - ((ulonglong)uVar20 ^ 0x118e117b)) ^ DAT_182671718 |
       *puVar2 ^ DAT_18267186c) ^ uVar23;
  uVar20 = DAT_1826718d0;
  uVar31 = (*puVar3 ^ uVar23) & (*(uint *)(lVar30 + -0x968) ^ uVar22) ^ _DAT_1826715dc;
  *(uint *)(lVar30 + -0x47c) = uVar31;
  uVar31 = uVar31 ^ _DAT_1826715dc;
  uVar17 = (*(uint *)(lVar30 - (uVar32 ^ 0x91ef591b)) ^ uVar16) &
           (*(uint *)(lVar30 + -0x874) ^ uVar24);
  *(uint *)(lVar30 + -0x774) = uVar17 ^ uVar20;
  *(uint *)(lVar30 + -0x754) = (*puVar4 ^ uVar16) * uVar17;
  uVar17 = DAT_18267159c;
  uVar33 = (ulonglong)DAT_18267159c;
  puVar13 = (uint *)(lVar30 - ((ulonglong)DAT_18267156c ^ 0xf3419736));
  *(uint *)(lVar30 - (uVar18 ^ 0xfffffc2b)) = (uVar31 | *puVar13 ^ uVar20) ^ DAT_18267183c;
  uVar20 = DAT_182671584;
  *(uint *)(lVar30 - (uVar33 ^ 0xe0485274)) =
       (*puVar3 ^ uVar23) & (*(uint *)(lVar30 + -0x678) ^ DAT_18267184c) ^ DAT_18267169c;
  uVar23 = DAT_1826717c8;
  uVar24 = (*(uint *)(lVar30 + -0x874) ^ uVar24) & (uVar6 ^ 0xee71edf2) ^ DAT_1826717c8;
  uVar12 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar30 + -0x898) = (CONCAT44(DAT_1826715ac,uVar20) ^ 0x1a9738032cf45) << 0xb;
  *(uint *)(lVar30 - (uVar12 ^ 0xf3419235)) = uVar24;
  uVar24 = *puVar1 ^ DAT_18267169c;
  *(longlong *)(lVar30 + -0x9c8) = *(longlong *)(lVar30 + -0x9c8) + 0x10;
  uVar8 = _DAT_182671838;
  uVar29 = DAT_18267179c;
  uVar16 = DAT_182671780;
  uVar22 = DAT_182671770;
  uVar20 = DAT_182671598;
  uVar23 = (uVar24 | uVar23 ^ *(uint *)(lVar30 + -0x274)) ^ DAT_18267179c;
  *(undefined8 *)(lVar30 + -0x350) = *(undefined8 *)(lVar30 + -0x9c8);
  *(uint *)(lVar30 + -0x8c) = uVar23;
  uVar23 = uVar23 ^ DAT_182671710 ^ uVar29;
  *puVar2 = uVar23;
  uVar23 = uVar23 ^ DAT_1826717e4 ^ DAT_182671710;
  *(uint *)(lVar30 + -0x374) = DAT_18267175c ^ DAT_18267183c ^ *(uint *)(lVar30 + -0x3d4);
  *(uint *)(lVar30 - ((ulonglong)uVar17 ^ 0xe0485960)) = uVar23;
  uVar12 = (ulonglong)DAT_182671790;
  *(ulonglong *)(lVar30 + -0x898) =
       *(ulonglong *)
        (*(ulonglong *)(lVar30 - ((ulonglong)DAT_1826715a8 ^ 0x9db9f5e8)) ^ CONCAT44(uVar8,uVar8)) ^
       CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(uint *)(lVar30 + -0x754) = uVar16 ^ DAT_18267175c ^ *(uint *)(lVar30 + -0x374);
  *(ulonglong *)(lVar30 + -0xd00) =
       *(longlong *)(lVar30 - (uVar33 ^ 0xe0485358)) +
       (CONCAT44(uVar20,uVar21) ^ 0xffffffff2dfbebc9) * 0x10 ^ uVar12;
  uVar24 = *(uint *)(*(ulonglong *)(lVar30 - ((ulonglong)uVar20 ^ 0xfffff2ff)) ^ uVar12) ^ uVar22 ^
           DAT_1826717c0;
  *puVar4 = uVar24;
  *(uint *)(lVar30 + -0x47c) =
       (DAT_182671824 ^ *(uint *)(lVar30 + -0x328)) - (uVar24 ^ uVar22) ^ DAT_182671878;
  uVar23 = _DAT_1826715f0;
  *puVar13 = (*(uint *)(lVar30 - (uVar28 ^ 0xfffffb83)) ^ DAT_182671878 | uVar24 ^ uVar22) ^
             _DAT_1826715f0;
  uVar9 = DAT_18267189c;
  uVar24 = DAT_1826716a8;
  *(uint *)(lVar30 + -0x678) =
       (int)(uVar23 ^ *(uint *)(lVar30 + -0x774)) >> (bVar14 & 0x1f) ^ DAT_1826716a8;
  *puVar3 = *(uint *)(lVar30 - ((ulonglong)uVar20 ^ 0xfffff987)) ^ uVar24 ^ uVar29 ^ DAT_182671594 ^
            0xfeb3bda3;
  puVar13 = (uint *)(lVar30 - ((ulonglong)uVar21 ^ 0x2dfbec9d));
  uVar12 = (ulonglong)DAT_1826715b4;
  uVar23 = (*puVar13 ^ uVar16) -
           (*(uint *)(lVar30 - ((ulonglong)DAT_18267156c ^ 0xf3419306)) ^ uVar22);
  *(uint *)(lVar30 + -0x874) = uVar23 ^ uVar9;
  uVar20 = DAT_1826716b0;
  uVar23 = (int)uVar23 >> ((byte)uVar27 & 0x1f);
  uVar18 = (ulonglong)DAT_18267156c;
  uVar27 = uVar23 ^ DAT_1826716b0;
  *(ulonglong *)(lVar30 + -0x3f0) =
       *(longlong *)(lVar30 - (uVar12 ^ 0x118e131f)) -
       (CONCAT44(DAT_182671584,uVar6) ^ 0x12ee7163500532d2);
  *puVar1 = uVar27;
  uVar31 = DAT_18267173c;
  uVar6 = DAT_1826715b4;
  uVar20 = uVar27 ^ DAT_1826717d4 ^ uVar20 ^ DAT_1826715a0;
  *(uint *)(lVar30 + -0x274) =
       (*(uint *)(lVar30 - (uVar18 ^ 0xf3419952)) ^ uVar29) & uVar23 ^ DAT_18267173c;
  *(longlong *)(lVar30 + -0x110) =
       *(longlong *)(lVar30 - ((ulonglong)uVar6 ^ 0x118e1a97)) + *(longlong *)(lVar30 + -0x318);
  uVar27 = DAT_182671608;
  uVar12 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar30 - ((ulonglong)DAT_1826715a4 ^ 0x9041f3cd)) = uVar20 ^ 0xd5bf1baf;
  uVar23 = DAT_1826716b4;
  uVar20 = *(uint *)(lVar30 - (uVar12 ^ 0xf34190cd)) ^ DAT_1826717d4 |
           *(uint *)(lVar30 + -0x678) ^ uVar24;
  *(uint *)(lVar30 + -0x3d4) = uVar20 ^ DAT_1826716b4;
  *(uint *)(lVar30 - (uVar32 ^ 0x91ef521b)) =
       (uVar16 ^ *(uint *)(lVar30 + -0x754)) & uVar20 ^ uVar27;
  uVar20 = DAT_182671590;
  *(uint *)(lVar30 + -0x374) =
       (*(uint *)(lVar30 - ((ulonglong)DAT_182671590 ^ 0xfe75e7bc)) ^ uVar27) *
       (DAT_182671594 ^ 0xa26ab8cc);
  uVar16 = DAT_18267158c ^ 0x388ab781;
  uVar22 = (*(uint *)(lVar30 - ((ulonglong)DAT_182671574 ^ 0x69da7343)) ^ uVar31) &
           (*puVar4 ^ uVar22) ^ DAT_1826717c0;
  uVar24 = DAT_182671588 ^ 0x240ccd1c;
  *(uint *)(lVar30 + -0x47c) = uVar22;
  *(uint *)(lVar30 + -0x774) = uVar16 + uVar24;
  uVar24 = (uVar31 ^ *(uint *)(lVar30 + -0x274)) & 3 ^ DAT_1826715d0;
  uVar23 = (uVar23 ^ *(uint *)(lVar30 + -0x3d4)) & (*(uint *)(lVar30 + -0x968) ^ DAT_1826717e4) ^
           DAT_1826715e8;
  *(uint *)(lVar30 + -0x874) = (*puVar2 ^ uVar27 | DAT_1826717c0 ^ uVar22) ^ DAT_18267186c;
  *puVar1 = uVar24;
  uVar26 = (ulonglong)DAT_1826715a4;
  *puVar3 = uVar23;
  uVar23 = uVar23 ^ DAT_1826715e8;
  *(longlong *)(lVar30 + -0x3f0) = *(longlong *)(lVar30 - (uVar26 ^ 0x9041f059)) << 0x1c;
  uVar12 = (ulonglong)DAT_182671598;
  uVar27 = (*(uint *)(lVar30 - ((ulonglong)DAT_1826715a8 ^ 0x9db9faf4)) ^ DAT_1826715d0 | uVar23) ^
           DAT_182671894;
  *(uint *)(lVar30 + -0x678) = uVar27;
  lVar19 = *(longlong *)(lVar30 - (uVar12 ^ 0xfffffcaf));
  *(uint *)(lVar30 + -0x8c) = uVar27 ^ DAT_182671814 ^ DAT_182671894;
  uVar12 = (ulonglong)DAT_1826715a0;
  lVar19 = lVar19 + (CONCAT44(uVar6,uVar17) ^ 0x118e120fe0485009) * 0x10;
  *(longlong *)(lVar30 + -0x9c8) = lVar19;
  *(longlong *)(lVar30 + -0x350) = lVar19;
  *(uint *)(lVar30 - (uVar12 ^ 0x2a40e304)) =
       *(uint *)(lVar30 - (uVar33 ^ 0xe048587c)) ^ DAT_182671844 ^ DAT_18267186c;
  *(undefined8 *)(lVar30 + -0x9c8) = *(undefined8 *)(lVar30 + -0x350);
  *(uint *)(lVar30 + -0x374) = *(uint *)(lVar30 + -0x8c) ^ DAT_182671688 ^ DAT_182671814;
  *(ulonglong *)(lVar30 + -0x898) =
       CONCAT44(uVar25,uVar21) ^ *(ulonglong *)(lVar30 + -0xa80) ^ 0x91fffea116d43921;
  uVar27 = DAT_182671840;
  uVar6 = _DAT_182671618;
  uVar18 = (ulonglong)DAT_1826717b4;
  uVar12 = (ulonglong)DAT_182671584;
  *puVar4 = *puVar13 ^ DAT_182671844 ^ DAT_182671840;
  bVar14 = (byte)DAT_1826715b4;
  puVar13 = (uint *)(*(longlong *)(lVar30 - (uVar12 ^ 0x96258700)) +
                    (CONCAT44(uVar7,uVar20) ^ 0x85048e0fe75eff8) * 0x10);
  uVar17 = DAT_182671824 ^ *(uint *)(lVar30 + -0x328);
  *(ulonglong *)(lVar30 + -0xd00) = (ulonglong)puVar13 ^ uVar18;
  uVar21 = DAT_1826717d8;
  *(uint *)(lVar30 + -0x774) = 0x2d85fd95 >> ((bVar14 ^ 8) & 0x1f);
  uVar25 = *puVar13 ^ uVar6 ^ DAT_1826717c0;
  uVar17 = uVar17 - (uVar25 ^ uVar6);
  *puVar2 = uVar25;
  uVar20 = DAT_182671774;
  *(uint *)(lVar30 + -0x47c) = uVar17 ^ uVar21;
  uVar17 = uVar17 | uVar25 ^ uVar6;
  bVar14 = (byte)DAT_1826715ac;
  *(uint *)(lVar30 + -0x968) = uVar17 ^ uVar20;
  *(uint *)(lVar30 + -0x3d4) = (int)uVar17 >> ((bVar14 ^ 0x5e) & 0x1f) ^ uVar9;
  *(uint *)(lVar30 - (uVar32 ^ 0x91ef582b)) =
       *(uint *)(lVar30 - (uVar26 ^ 0x9041f095)) ^ DAT_1826716ec ^ uVar9 ^ DAT_182671570 ^ 0x18a1007
  ;
  uVar20 = (*puVar4 ^ uVar27) - (*puVar2 ^ uVar6);
  *puVar3 = uVar20 ^ uVar27;
  *puVar1 = (int)uVar20 >> (bVar15 & 0x1f) ^ DAT_182671850;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar10;
  return;
}



############ FUN_ 180e57770 size=4200 ############

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

void FUN_180e57770(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte *pbVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  byte local_res8;
  ulonglong uVar11;
  
  uVar23 = DAT_182671678;
  uVar14 = DAT_182671624;
  bVar1 = (byte)DAT_1826715ec;
  uVar5 = DAT_182671584;
  uVar4 = DAT_182671578;
  uVar20 = DAT_18267156c;
  uVar19 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar12 = (ulonglong)DAT_182671584;
  uVar21 = (ulonglong)DAT_182671578;
  uVar24 = DAT_18267156c << 0x10 | DAT_18267156c >> 0x10;
  uVar15 = (DAT_182671568 << 0x10 | DAT_182671568 & 0xff00) << 8 | DAT_182671568 >> 8 & 0xff00 |
           DAT_182671568 >> 0x18;
  uVar8 = DAT_182671584 + DAT_182671578;
  uVar11 = (ulonglong)uVar8;
  uVar9 = *(uint *)(&DAT_182611e70 + (uVar11 ^ 0xa4e419f3) + (longlong)DAT_182671ab0) ^
          DAT_182671584;
  uVar10 = *(uint *)(&DAT_182611e80 + DAT_182671ab0) ^ DAT_182671578;
  uVar29 = (ulonglong)DAT_182671678;
  uVar22 = (ulonglong)DAT_182671568;
  uVar27 = (ulonglong)uVar15;
  DAT_182671574 = uVar8;
  DAT_1826715a8 = uVar24;
  DAT_1826715b0 = uVar15;
  *(uint *)(DAT_182671560 - ((ulonglong)DAT_182671568 ^ 0x96b75af5)) =
       (*(uint *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0x895eb4e2)) ^ DAT_1826718a4 |
       *(uint *)(DAT_182671560 + -0x328) ^ DAT_1826718a0) ^ DAT_1826717ec;
  uVar14 = (uVar14 ^ *(uint *)(lVar2 + -0x3c8)) + (DAT_182671890 ^ *(uint *)(lVar2 + -0x874)) ^
           DAT_182671810;
  uVar16 = *(uint *)(lVar2 + -0x47c) ^ DAT_1826718d0 ^ DAT_1826717ec;
  *(uint *)(lVar2 + -0x5cc) = uVar14;
  *(uint *)(lVar2 + -0x844) = uVar14 ^ uVar23 ^ DAT_182671810;
  uVar6 = DAT_182671668;
  *(uint *)(lVar2 + -0x504) = uVar16;
  uVar16 = uVar16 ^ DAT_182671690 ^ DAT_1826718d0;
  uVar14 = *(uint *)(lVar2 - ((ulonglong)uVar20 ^ 0x568948c2));
  *(ulonglong *)(lVar2 + -0xbf0) = *(ulonglong *)(lVar2 + -0x510) | *(ulonglong *)(lVar2 + -0x1f0);
  *(uint *)(lVar2 + -0x964) = uVar16;
  *(uint *)(lVar2 + -0x274) = uVar14 ^ uVar6 ^ uVar23;
  uVar17 = (ulonglong)uVar24;
  pbVar18 = (byte *)(*(longlong *)(lVar2 - (uVar21 ^ 0x4dd8143)) +
                     (CONCAT44(uVar24,uVar19) ^ 0x4086568996b75e89) * 0x20 +
                    (CONCAT44(uVar4,uVar5) ^ 0x4dd89b3a0069047));
  *(ulonglong *)(lVar2 + -0xb28) = (ulonglong)pbVar18 ^ (ulonglong)DAT_1826716c8;
  local_res8 = (byte)(uVar20 >> 0x10);
  *(byte *)(lVar2 + -0xa51) = *pbVar18 ^ bVar1 ^ (byte)DAT_182671694;
  uVar14 = DAT_182671644;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar11 ^ 0xa4e41023)) ^ uVar29) = local_res8 ^ 0xce;
  *(ulonglong *)(lVar2 + -0xc08) = (uVar27 ^ 0x10000000) >> 0x1c;
  *(uint *)(lVar2 - (uVar22 ^ 0x96b758f1)) = (bVar1 ^ *(byte *)(lVar2 + -0xa51)) ^ uVar14;
  *(uint *)(lVar2 + -0x968) =
       (*(uint *)(lVar2 + -0x964) ^ DAT_182671690) + (uVar5 ^ 0xa9f1b69d) ^ DAT_1826717bc;
  uVar23 = (*(uint *)(lVar2 + -0x678) ^ uVar14) << 0x11 ^ DAT_1826717e0;
  *(uint *)(lVar2 + -0x344) = uVar24 ^ 0xf6bedee6 | 0xb4bec2e6;
  *(uint *)(lVar2 - (uVar27 ^ 0x895eb0c2)) = uVar23;
  uVar23 = *(uint *)(lVar2 + -0x754) ^ DAT_1826717e0;
  *(uint *)(lVar2 + -0x27c) = (uVar4 ^ 0xd2aaf66) + uVar23;
  *(uint *)(lVar2 - (uVar17 ^ 0x408655a1)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar5 ^ 0xa0069920)) ^ DAT_1826717bc) - uVar23 ^ DAT_18267180c
  ;
  uVar23 = (*(uint *)(lVar2 + -0x274) ^ uVar6) * (*(uint *)(lVar2 + -0x328) ^ DAT_18267180c) ^
           DAT_1826716d8;
  *(uint *)(lVar2 + -0x374) = uVar23;
  uVar23 = uVar23 ^ DAT_1826716d8;
  *(ulonglong *)(lVar2 + -0x110) =
       CONCAT44(uVar20,uVar4) ^ *(ulonglong *)(lVar2 + -0x8a8) ^ 0x61f50b9914e9de99;
  uVar14 = (*(uint *)(lVar2 + -0x678) ^ uVar14) * (uVar5 ^ 0xa0069047) ^ DAT_18267184c;
  *(uint *)(lVar2 + -0x874) = uVar14;
  uVar14 = (uVar14 ^ DAT_18267184c) + uVar23 ^ DAT_1826716d0;
  *(uint *)(lVar2 + -0x5cc) = uVar14;
  uVar14 = uVar14 ^ DAT_1826716d0;
  uVar23 = uVar14 >> (((byte)(uVar19 >> 0x18) ^ 0x85) & 0x1f) ^ DAT_182671684;
  *(uint *)(lVar2 + -0x844) = uVar23;
  uVar23 = uVar23 ^ DAT_182671684;
  *(ulonglong *)(lVar2 + -0x748) = *(ulonglong *)(lVar2 + -0x688) >> (((byte)uVar8 ^ 0xcc) & 0x3f);
  uVar16 = DAT_182671734;
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 + -0x274) ^ uVar6) + (DAT_182671624 ^ *(uint *)(lVar2 + -0x3c8)) ^
       DAT_182671880;
  uVar14 = uVar14 << 0xd ^ _DAT_182671610;
  *(uint *)(lVar2 + -0x47c) = uVar14;
  uVar14 = (uVar23 | uVar14 ^ _DAT_182671610) ^ DAT_182671870;
  *(uint *)(lVar2 + -0x504) = uVar14;
  uVar14 = uVar14 ^ DAT_1826718c0 ^ DAT_182671870;
  *(uint *)(lVar2 + -0x344) =
       *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x96b757ed)) ^ DAT_182671628 ^ DAT_182671880;
  *(uint *)(lVar2 - (uVar22 ^ 0x96b75cf5)) = uVar14;
  *(uint *)(lVar2 + -0x968) = uVar16 ^ DAT_182671628 ^ *(uint *)(lVar2 + -0x344);
  *(ulonglong *)(lVar2 + -0x600) =
       *(ulonglong *)(lVar2 + -0x9f8) >> ((byte)*(undefined8 *)(lVar2 + -0x80) & 0x3f);
  *(uint *)(lVar2 + -0x754) =
       *(uint *)(lVar2 - ((ulonglong)uVar20 ^ 0x568942fa)) ^ _DAT_1826715f0 ^ DAT_1826718c0;
  uVar23 = DAT_182671594;
  uVar6 = DAT_18267158c;
  uVar22 = (ulonglong)DAT_18267158c;
  uVar29 = (ulonglong)DAT_1826716f0;
  *(ulonglong *)(lVar2 + -0x860) =
       (CONCAT44(uVar15,uVar4) ^ 0x895eb79604dd89b3) * 0x20 +
       *(longlong *)(lVar2 - (uVar17 ^ 0x40865e79)) + 0x1a ^ uVar29;
  uVar25 = uVar23 & uVar6;
  uVar26 = uVar25 ^ 0x2462bba6;
  uVar28 = (ulonglong)uVar23;
  DAT_18267157c = uVar26;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x895eb25e)) =
       (CONCAT44(uVar8,uVar20) ^ 0xbf40ef92e5eaf100) + *(longlong *)(lVar2 + -0x9e8);
  bVar1 = (byte)DAT_182671700;
  *(byte *)(lVar2 + -0xbd9) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x96b756e9)) ^ uVar29) ^
       (byte)DAT_182671700 ^ (byte)DAT_182671694;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x6e8) ^ (ulonglong)DAT_1826717d8) = 0x7f;
  *(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x8d31ced4)) =
       (bVar1 ^ *(byte *)(lVar2 + -0xbd9)) ^ DAT_182671858;
  lVar2 = DAT_182671560;
  uVar19 = *(uint *)(DAT_182671560 + -0x754) ^ _DAT_1826715f0;
  *(ulonglong *)(DAT_182671560 + -0x3b8) =
       (CONCAT44(uVar25,uVar23) ^ 0xa6cf4418951eb5ee) >> (((byte)uVar26 ^ 0x9f) & 0x3f);
  uVar14 = DAT_182671854;
  lVar3 = DAT_182671560;
  uVar20 = uVar19 + (uVar6 ^ 0x84c6eb29) ^ DAT_182671840;
  uVar8 = *(uint *)(lVar2 + -0x328) ^ DAT_182671858;
  *(uint *)(lVar2 + -0x678) = uVar20;
  uVar20 = uVar20 ^ DAT_182671840;
  uVar19 = uVar8 << (((byte)uVar25 ^ 0x15) & 0x1f) ^ DAT_1826716e8;
  *(uint *)(lVar3 + -0x374) = uVar19;
  uVar19 = uVar20 - (uVar19 ^ DAT_1826716e8) ^ DAT_1826717b8;
  *(longlong *)(lVar3 + -0x628) = -0xf1432e4ecf21da3 << (((byte)uVar26 ^ 0xaf) & 0x3f);
  *(uint *)(lVar3 + -0x874) = uVar19;
  bVar13 = (byte)uVar23 ^ 8;
  uVar19 = (uVar19 ^ DAT_1826717b8) * (uVar16 ^ *(uint *)(lVar3 + -0x968)) ^ DAT_1826717ac;
  *(uint *)(lVar3 + -0x5cc) = uVar19;
  uVar19 = uVar19 ^ DAT_1826717ac;
  *(uint *)(lVar3 + -0x47c) = (uVar23 ^ 0x289401f) * uVar8 ^ DAT_182671768;
  *(uint *)(lVar3 + -0x844) =
       (*(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0x8d31c980)) ^ DAT_182671768) + uVar19 ^ uVar14;
  uVar19 = (*(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x2463f3e6)) ^ uVar14) << (bVar13 & 0x1f) ^
           DAT_1826716e4;
  *(uint *)(lVar3 + -0x274) = uVar19;
  uVar19 = uVar19 ^ DAT_1826716e4;
  uVar14 = (*(uint *)(lVar3 - (uVar28 ^ 0x2894841)) ^ uVar14) >> (((byte)uVar6 ^ 0xef) & 0x1f) ^
           DAT_18267185c;
  *(uint *)(lVar3 + -0x964) = uVar14;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x2463fea6)) =
       (uVar19 | uVar14 ^ DAT_18267185c) ^ DAT_1826718c4;
  bVar1 = (byte)DAT_182671820;
  uVar8 = DAT_1826717cc;
  uVar19 = DAT_182671624;
  uVar14 = DAT_18267156c;
  uVar29 = (ulonglong)DAT_18267179c;
  uVar20 = (uVar16 ^ *(uint *)(lVar3 + -0x968)) + (DAT_182671624 ^ *(uint *)(lVar3 + -0x3c8)) ^
           DAT_182671608;
  *(uint *)(lVar3 + -0x344) = uVar20;
  *(uint *)(lVar3 - (uVar22 ^ 0x8d31cf80)) = uVar20 ^ uVar8 ^ DAT_182671608;
  uVar16 = DAT_182671714;
  *(uint *)(lVar3 + -0x754) = *(uint *)(lVar3 + -0x504) ^ DAT_182671740 ^ DAT_1826718c4;
  *(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0x8d31cb84)) =
       *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x2463f9de)) ^ uVar16 ^ uVar8;
  uVar20 = *(uint *)(lVar3 + -0x754) ^ _DAT_1826716c0 ^ DAT_182671740;
  *(ulonglong *)(lVar3 + -0xa80) = *(ulonglong *)(lVar3 + -0x638) | *(ulonglong *)(lVar3 + -0x5c8);
  *(uint *)(lVar3 - (uVar21 ^ 0x4dd8ac7)) = uVar20;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x40865c51)) =
       (CONCAT44(uVar25,uVar14) ^ 0x1400456894086) * 0x20 + 5 +
       *(longlong *)(lVar3 - ((ulonglong)uVar23 ^ 0x28948f5)) ^ uVar29;
  *(byte *)(lVar3 + -0x411) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x500) ^ (ulonglong)uVar19) ^ (byte)DAT_182671694;
  *(byte *)(lVar3 + -0x931) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xad8) ^ uVar29) ^ bVar1 ^ (byte)DAT_182671694;
  uVar20 = DAT_182671710;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x590) ^ (ulonglong)DAT_1826716c8) = 0xa2;
  uVar19 = DAT_182671594;
  *(uint *)(lVar3 - (uVar17 ^ 0x40865efd)) =
       (*(byte *)(lVar3 - (uVar12 ^ 0xa0069979)) ^ bVar1) ^ uVar20;
  *(uint *)(lVar3 - (uVar28 ^ 0x289432d)) =
       (*(uint *)(lVar3 + -0x374) ^ _DAT_1826716c0) + (uVar15 ^ 0x80a99143) ^ DAT_182671848;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x2463fe6e)) =
       (uVar20 ^ *(uint *)(lVar3 + -0x874)) << (((byte)uVar6 ^ 0xed) & 0x1f) ^ DAT_182671808;
  uVar7 = DAT_182671830;
  uVar14 = (*(uint *)(lVar3 + -0x328) ^ DAT_182671848) - (*(uint *)(lVar3 + -0x5cc) ^ DAT_182671808)
           ^ DAT_18267177c;
  *(uint *)(lVar3 + -0x47c) = *(uint *)(lVar3 + -0x27c) ^ uVar8 | uVar19 ^ 0xdcbe03cc;
  *(uint *)(lVar3 - (uVar17 ^ 0x40865ecd)) = uVar14;
  uVar14 = DAT_18267170c;
  uVar8 = (uVar20 ^ *(uint *)(lVar3 + -0x874)) * (uVar24 ^ 0x4086568c);
  uVar20 = (*(uint *)(lVar3 + -0x678) ^ uVar16) * (*(uint *)(lVar3 + -0x844) ^ DAT_18267177c) ^
           DAT_182671720;
  *(uint *)(lVar3 + -0x274) = uVar20;
  uVar20 = uVar20 ^ DAT_182671720;
  *(uint *)(lVar3 + -0x964) = uVar8 ^ uVar14;
  uVar20 = uVar20 + uVar8;
  *(uint *)(lVar3 + -0x968) = uVar20 ^ uVar7;
  uVar14 = DAT_182671568;
  uVar29 = CONCAT44(uVar23,DAT_182671568);
  bVar1 = (byte)DAT_182671568;
  *(uint *)(lVar3 + -0x344) = uVar20 << (bVar13 & 0x1f) ^ DAT_182671684;
  *(uint *)(lVar3 + -0x504) = uVar20 >> ((bVar1 ^ 0x9a) & 0x1f) ^ DAT_182671750;
  *(ulonglong *)(lVar3 + -0xa88) = uVar29 ^ *(ulonglong *)(lVar3 + -0x9f8) ^ 0x9a45f4475c2e2626;
  *(uint *)(lVar3 + -0x754) =
       (*(uint *)(lVar3 - (uVar22 ^ 0x8d31ceb8)) ^ DAT_182671684 |
       *(uint *)(lVar3 - (uVar11 ^ 0xa4e41cff)) ^ DAT_182671750) ^ DAT_1826716cc;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x2463f8d6)) =
       (*(uint *)(lVar3 - (uVar12 ^ 0xa0069380)) ^ DAT_182671624) +
       (*(uint *)(lVar3 + -0x678) ^ uVar16) ^ DAT_182671738;
  uVar20 = *(uint *)(lVar3 + -0x374) ^ DAT_1826717a4 ^ DAT_182671738;
  *(uint *)(lVar3 + -0x47c) = *(uint *)(lVar3 + -0x754) ^ DAT_182671814 ^ DAT_1826716cc;
  *(uint *)(lVar3 + -0x27c) = uVar20;
  uVar20 = uVar20 ^ DAT_182671748 ^ DAT_1826717a4;
  *(ulonglong *)(lVar3 + -0x2a0) =
       *(ulonglong *)(lVar3 - (uVar17 ^ 0x408650b1)) ^ *(ulonglong *)(lVar3 + -0xa80);
  *(uint *)(lVar3 + -0x328) = uVar20;
  uVar12 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x28941dd)) =
       (CONCAT44(uVar6,uVar5) ^ 0x92219039495a7a96) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar22 ^ 0x8d31cd5c)) & 0x3f);
  *(uint *)(lVar3 - (uVar12 ^ 0x5689454a)) =
       *(uint *)(lVar3 - (uVar27 ^ 0x895eb3ea)) ^ DAT_182671814 ^ DAT_1826716d0;
  uVar29 = (ulonglong)DAT_182671690;
  *(ulonglong *)(lVar3 + -0x898) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0x4dd88a3)) | CONCAT44(uVar4,uVar15) ^ 0xb2623397c020d69e;
  uVar20 = _DAT_18267161c;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x895ebc4e)) =
       (CONCAT44(uVar14,uVar24) ^ 0x96b75e8940865699) +
       (CONCAT44(uVar25,uVar5) ^ 0x14004a0069048) * 0x20 + *(longlong *)(DAT_182671560 + -0x8f0) ^
       uVar29;
  bVar1 = (byte)DAT_1826716a0;
  uVar12 = (ulonglong)DAT_182671884;
  *(byte *)(lVar2 + -0xb89) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xbd8) ^ uVar29) ^ (byte)DAT_1826716a0 ^
       (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0x2894bad)) ^ uVar12) = local_res8 ^ 0xf1;
  uVar16 = DAT_182671804;
  uVar8 = (uint)(bVar1 ^ *(byte *)(lVar2 + -0xb89));
  uVar14 = *(uint *)(lVar2 + -0x5cc) ^ DAT_1826716d0;
  *(uint *)(lVar2 + -0x844) = uVar8 ^ DAT_182671804;
  *(uint *)(lVar2 + -0x874) = uVar14 + (uVar15 ^ 0x80a99143) ^ uVar20;
  uVar23 = DAT_182671794;
  uVar5 = DAT_182671630;
  lVar3 = DAT_182671560;
  uVar29 = (ulonglong)DAT_182671630;
  *(uint *)(lVar2 - (uVar11 ^ 0xa4e41b8f)) = uVar8 << (((byte)uVar19 ^ 0x14) & 0x1f) ^ DAT_182671834
  ;
  uVar12 = *(ulonglong *)(lVar3 + -0xd58);
  uVar19 = (uVar20 ^ *(uint *)(lVar2 + -0x874)) - (*(uint *)(lVar2 + -0x274) ^ DAT_182671834) ^
           DAT_1826716e4;
  uVar14 = *(uint *)(lVar3 + -0x844);
  *(uint *)(lVar2 + -0x964) = uVar19;
  uVar20 = *(uint *)(lVar2 + -0x328) ^ DAT_182671748;
  uVar19 = (uVar19 ^ DAT_1826716e4) * uVar20 ^ DAT_182671860;
  *(uint *)(lVar3 + -0x968) = uVar19;
  uVar19 = uVar19 ^ DAT_182671860;
  *(byte *)(lVar3 + -0x6d9) = *(byte *)(uVar12 ^ uVar29) ^ (byte)DAT_182671694;
  uVar14 = (uVar14 ^ uVar16) * (DAT_182671568 ^ 0x96b75e99) ^ DAT_18267165c;
  *(uint *)(lVar3 + -0x344) = uVar14;
  uVar19 = (uVar14 ^ DAT_18267165c) + uVar19;
  bVar1 = (byte)DAT_18267156c;
  *(uint *)(lVar3 + -0x504) = uVar19 ^ uVar23;
  uVar14 = uVar19 << ((bVar1 ^ 0x8b) & 0x1f) ^ DAT_1826718d0;
  *(uint *)(lVar3 + -0x374) = (*(uint *)(lVar3 + -0x504) ^ uVar23) >> 0x13 ^ DAT_182671654;
  *(uint *)(lVar3 + -0x678) = uVar14;
  *(uint *)(lVar3 + -0x27c) =
       (*(uint *)(lVar3 - (uVar11 ^ 0xa4e41a8f)) ^ DAT_182671654 | uVar14 ^ DAT_1826718d0) ^ uVar5;
  uVar14 = (DAT_182671624 ^ *(uint *)(lVar3 + -0x3c8)) + uVar20 ^ DAT_1826717c4;
  *(uint *)(lVar3 + -0x47c) = uVar14;
  *(uint *)(lVar3 + -0x5cc) = uVar14 ^ DAT_182671784 ^ DAT_1826717c4;
  *(uint *)(lVar3 - (uVar17 ^ 0x408654fd)) =
       *(uint *)(lVar3 - (uVar21 ^ 0x4dd8bcf)) ^ DAT_1826716dc ^ uVar5;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x8d31cf8c)) =
       CONCAT44(uVar6,uVar4) ^ CONCAT44(uVar25,uVar4) ^ 0x2462bba600000000 ^ 0xa099db59d1751179;
  pbVar18 = (byte *)(*(longlong *)(lVar3 + -0x8f0) + 0x1b);
  *(uint *)(lVar3 + -0x874) = *(uint *)(lVar3 + -0x5cc) ^ DAT_1826715e8 ^ DAT_182671784;
  *(uint *)(lVar3 + -0x964) = *(uint *)(lVar3 + -0x274) ^ DAT_1826716c4 ^ DAT_1826716dc;
  *(ulonglong *)(lVar3 + -0xa18) = (ulonglong)pbVar18 ^ (ulonglong)DAT_1826717f0;
  *(byte *)(lVar3 + -0x41) = *pbVar18 ^ (byte)DAT_1826717f4 ^ (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar3 + -0x358) ^ (ulonglong)DAT_182671608) = bVar1 ^ 0xc6;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar9;
  return;
}



############ FUN_ 180f2e110 size=5174 ############

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

void FUN_180f2e110(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_e8;
  
  uVar16 = DAT_1826717fc;
  uVar9 = DAT_18267157c;
  uVar19 = DAT_182671578;
  uVar7 = DAT_18267156c;
  lVar4 = DAT_182671560;
  uVar42 = (ulonglong)DAT_18267157c;
  uVar28 = (ulonglong)DAT_18267156c;
  uVar22 = DAT_182671578 * DAT_18267156c;
  uVar36 = (DAT_18267157c << 0x10 | DAT_18267157c & 0xff00) << 8 | DAT_18267157c >> 8 & 0xff00 |
           DAT_18267157c >> 0x18;
  uVar3 = *(uint *)(&DAT_182611e78 + DAT_182671904);
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671904) ^ DAT_18267157c;
  uVar44 = (ulonglong)uVar22;
  uVar41 = (ulonglong)DAT_182671578;
  uVar26 = CONCAT44(uVar22,DAT_18267156c);
  bVar25 = (byte)DAT_18267156c;
  uVar23 = (CONCAT44(DAT_1826716b0,DAT_1826716b0) ^ *(ulonglong *)(DAT_182671560 + -0x240)) <<
           ((bVar25 ^ 0xe3) & 0x3f);
  uVar29 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar45 = (ulonglong)uVar36;
  DAT_182671580 = uVar36;
  DAT_182671598 = uVar22;
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar23 ^ CONCAT44(DAT_182671894,DAT_182671894);
  uVar8 = DAT_182671744;
  uVar32 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x670) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xea5676f4)) ^ uVar29 | uVar23) ^ uVar32;
  uVar21 = CONCAT44(uVar8,uVar8);
  puVar1 = (ulonglong *)(lVar4 + -0xa88);
  uVar23 = CONCAT44(DAT_182671694,DAT_182671694);
  *puVar1 = (uVar21 ^ *(ulonglong *)(lVar4 + -0x628)) -
            (CONCAT44(uVar36,uVar7) ^ 0x9f10963d534a9bf1) ^ uVar23;
  bVar20 = (byte)uVar22;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xe3d29b70)) =
       (CONCAT44(uVar19,uVar9) ^ 0x1e96fbed4a24c0f1) >> ((bVar20 ^ 0x42) & 0x3f);
  *(ulonglong *)(lVar4 - (uVar45 ^ 0xd893d1fb)) =
       (uVar23 ^ *puVar1) - (*(ulonglong *)(lVar4 + -0x670) ^ uVar32) ^ uVar29;
  uVar33 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xea567c14)) =
       **(ulonglong **)(lVar4 - ((ulonglong)uVar9 ^ 0xe3d292f0)) ^ uVar33;
  uVar8 = DAT_1826715c8;
  uVar30 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar23 = (CONCAT44(uVar9,uVar19) ^ 0x58660bed4e44693b) + (*(ulonglong *)(lVar4 + -0x670) ^ uVar32)
           ^ uVar30;
  *(ulonglong *)(lVar4 + -0x240) = uVar23;
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar37 = CONCAT44(DAT_182671704,DAT_182671704);
  puVar34 = (ulonglong *)(DAT_182671560 - (uVar44 ^ 0xe686f8e8));
  uVar35 = *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0xe7d6d1bc)) ^ *puVar34 ^ uVar37 ^ uVar27 ^
           uVar30;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar35;
  lVar4 = DAT_182671560;
  puVar2 = (ulonglong *)(DAT_182671560 + -0x110);
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       CONCAT44(uVar19,uVar36) ^ uVar23 ^ uVar30 ^ 0x63b7f268900ca6d0;
  uVar23 = (*puVar2 ^ uVar27) >> ((bVar20 ^ 0x75) & 0x3f);
  uVar35 = (uVar35 ^ uVar27) << (((byte)uVar19 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar4 + -0x628) = uVar23 ^ CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar35 ^ uVar27;
  *puVar1 = CONCAT44(uVar7,uVar36) ^ 0xf3f8a2523fc6643a | *(ulonglong *)(lVar4 + -0x670) ^ uVar32;
  uVar40 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xe3d29828)) = (uVar23 | uVar35) ^ uVar40;
  *(int *)(lVar4 - ((ulonglong)uVar36 ^ 0xd893d137)) =
       0x4708af3f << ((byte)*(undefined4 *)(lVar4 - (uVar28 ^ 0xe7d6d180)) & 0x1f);
  lVar5 = DAT_182671560;
  puVar31 = (ulonglong *)(lVar4 - (uVar45 ^ 0xd893da7b));
  uVar35 = CONCAT44(DAT_18267172c,DAT_18267172c);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar36 ^ 0xd893d0a3)) =
       (*puVar31 ^ uVar37) -
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar36 ^ 0xd893d913)) ^ uVar40) ^ uVar35;
  uVar8 = DAT_1826715e8;
  puVar38 = (ulonglong *)(lVar5 - (uVar44 ^ 0xe686f160));
  *(ulonglong *)(lVar5 - (uVar42 ^ 0xe3d29508)) = (uVar27 ^ *puVar38) + 0xfe7fad6860cbcefb;
  lVar4 = DAT_182671560;
  uVar32 = CONCAT44(DAT_182671884,DAT_182671884);
  puVar24 = (ulonglong *)(lVar5 - (uVar28 ^ 0xe7d6d58c));
  *puVar24 = CONCAT44(uVar8,uVar8) ^ uVar32 ^ uVar29 ^ *puVar2 ^ *(ulonglong *)(lVar5 + -0x2a0);
  uVar27 = (*(ulonglong *)(lVar5 + -0x670) ^ uVar32) >> ((bVar20 ^ 0x55) & 0x3f);
  *puVar1 = uVar27 ^ CONCAT44(DAT_182671680,DAT_182671680);
  uVar23 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar5 + -0x8a8) = (*(ulonglong *)(lVar5 + -0x670) ^ uVar32) << 0x1b ^ uVar23;
  uVar46 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xe7d6d5d4)) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0xea567f4c)) ^ uVar23 | uVar27) ^ uVar46;
  uVar28 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar27 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar4 + -0x898) =
       (uVar29 ^ *puVar2) - (*(ulonglong *)(lVar4 - (uVar44 ^ 0xe686f658)) ^ uVar46) ^ uVar28;
  puVar43 = (ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xea5671cc));
  *puVar38 = *(ulonglong *)(lVar4 + -0x240) ^ uVar27 ^ uVar46 ^ uVar35 ^ *puVar43;
  uVar8 = DAT_182671638;
  uVar23 = (uVar27 ^ *(ulonglong *)(lVar4 + -0x110)) >> ((bVar20 ^ 0x67) & 0x3f);
  uVar27 = (uVar27 ^ *(ulonglong *)(lVar4 + -0x110)) << 0x29;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar23 ^ CONCAT44(DAT_1826716d8,DAT_1826716d8);
  uVar16 = DAT_1826716fc;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar27 ^ CONCAT44(uVar8,uVar8);
  uVar8 = _DAT_1826716c0;
  uVar27 = uVar27 | uVar23;
  uVar47 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x670) = uVar27 ^ uVar47;
  lVar4 = DAT_182671560;
  uVar29 = CONCAT44(uVar8,uVar8);
  uVar23 = (ulonglong)DAT_182671788;
  uVar39 = CONCAT44(DAT_182671788,DAT_182671788);
  *puVar1 = (*(ulonglong *)(DAT_182671560 - (uVar41 ^ 0xea5675a4)) ^ uVar35) - uVar27 ^ uVar29;
  uVar11 = DAT_182671594;
  *(ulonglong *)(lVar4 - (uVar44 ^ 0xe686f8d8)) =
       uVar39 ^ uVar28 ^ *puVar31 ^ *(ulonglong *)(lVar4 + -0xbf0) ^ uVar40;
  uVar27 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *puVar2 = (*(ulonglong *)(lVar4 + -0x8a8) >> 0x20 ^ uVar23) >> 8 ^ uVar27;
  bVar20 = (byte)(uVar9 >> 0x18);
  uVar37 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  uVar23 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xa1687f28)) ^ uVar39) <<
           ((bVar20 ^ 0xfb) & 0x3f);
  *(ulonglong *)(lVar4 + -0x628) = uVar23 ^ CONCAT44(DAT_1826716e4,DAT_1826716e4);
  uVar8 = DAT_18267171c;
  uVar23 = *(ulonglong *)(lVar4 - (uVar42 ^ 0xe3d290c0)) ^ uVar27 | uVar23;
  *(ulonglong *)(lVar4 + -0x110) = uVar23 ^ uVar37;
  lVar5 = DAT_182671560;
  uVar35 = CONCAT44(uVar8,uVar8);
  uVar27 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar4 - (uVar45 ^ 0xd893d433)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x898)) - uVar23 ^ uVar35;
  *(uint *)(lVar4 + -0x374) = (DAT_18267156c ^ 0xbbcecfff) >> 0xb;
  uVar10 = DAT_182671584;
  uVar28 = CONCAT44(DAT_182671604,DAT_182671604);
  uVar27 = *(ulonglong *)(lVar4 - (uVar27 ^ 0x7f660f00)) ^ uVar28 ^ uVar37 ^ uVar29 ^ *puVar1;
  uVar23 = CONCAT44(DAT_18267158c,uVar9);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar27;
  uVar8 = DAT_182671634;
  uVar6 = DAT_182671568;
  *(ulonglong *)(lVar4 + -0x240) = (uVar23 ^ 0x9e13e19e0b3d8e19) << ((bVar25 ^ 0xfc) & 0x3f);
  uVar23 = (uVar28 ^ *(ulonglong *)(lVar5 + -0x2a0)) >> (((byte)uVar10 ^ 0x90) & 0x3f);
  *(ulonglong *)(lVar5 + -0x8a8) = uVar23 ^ CONCAT44(uVar8,uVar8);
  lVar4 = DAT_182671560;
  *puVar2 = (uVar28 ^ *(ulonglong *)(lVar5 + -0x2a0)) >> (((byte)uVar11 ^ 0x98) & 0x3f);
  uVar42 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar4 + -0x628) = (uVar28 ^ uVar27) << 0xc ^ uVar42;
  *(ulonglong *)(lVar4 + -0x898) = (uVar42 ^ *puVar43 | uVar23) ^ uVar30;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0xa1687690)) =
       *puVar34 ^ *(ulonglong *)(lVar4 + -0xbf0) ^ uVar40 ^ uVar30;
  uVar37 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(lVar5 + -0x240) =
       (uVar29 ^ *puVar1) - (uVar30 ^ *(ulonglong *)(lVar5 + -0x898)) ^ uVar37;
  uVar17 = DAT_182671860;
  uVar23 = *(ulonglong *)(lVar5 + -0x670);
  *puVar2 = (uVar26 ^ 0x5e60cb7b2c4e4839) - (CONCAT44(uVar7,uVar22) ^ 0xecd24eab451a28da);
  uVar12 = DAT_1826715a8;
  uVar27 = (ulonglong)DAT_1826717bc;
  uVar26 = CONCAT44(uVar17,uVar17);
  uVar28 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  uVar23 = uVar23 ^ uVar28 ^ uVar35 ^ uVar47 ^ *(ulonglong *)(lVar5 + -0x6d0);
  *(ulonglong *)(lVar5 + -0x2a0) = uVar23;
  uVar27 = (uVar23 >> 0x20 ^ uVar27) >> 0x19;
  uVar28 = (uVar28 ^ uVar23) << ((bVar20 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar5 + -0x8a8) = uVar27 ^ uVar26;
  *(ulonglong *)(lVar5 + -0x628) = uVar28 ^ uVar33;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar27 - (CONCAT44(uVar9,uVar10) ^ 0x811bea87012bee3d);
  uVar23 = CONCAT44(DAT_182671710,DAT_182671710);
  uVar28 = uVar28 | uVar27;
  *(ulonglong *)(lVar5 + -0x110) = uVar28 ^ uVar23;
  uVar15 = DAT_1826715b4;
  uVar14 = DAT_1826715b0;
  uVar8 = DAT_182671570;
  uVar27 = (ulonglong)DAT_1826715b4;
  uVar29 = (ulonglong)DAT_1826715b0;
  uVar33 = CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(lVar5 - (uVar45 ^ 0xd893d86b)) =
       (uVar35 ^ *(ulonglong *)(lVar5 + -0x6d0)) - uVar28 ^ uVar33;
  uVar13 = DAT_1826715ac;
  uVar35 = CONCAT44(DAT_182671798,DAT_182671798);
  *puVar2 = *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715ac ^ 0x803c2e5e)) ^
            *(ulonglong *)(lVar5 + -0x240) ^ uVar35 ^ uVar23 ^ uVar37;
  uVar10 = DAT_182671590;
  uVar28 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  bVar20 = (byte)DAT_182671590;
  *(ulonglong *)(lVar5 - (uVar44 ^ 0xe686f600)) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x2c261f2a)) ^ uVar35) >>
       (((byte)DAT_1826715a4 ^ 0x78) & 0x3f) ^ uVar28;
  uVar27 = (uVar35 ^ *puVar2) << ((bVar20 ^ 0x32) & 0x3f);
  *(ulonglong *)(lVar5 + -0x2a0) = uVar27 ^ CONCAT44(DAT_182671648,DAT_182671648);
  uVar23 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar5 + -0xbf0) = (uVar27 | uVar28 ^ *puVar24) ^ uVar42;
  uVar11 = DAT_18267159c;
  puVar24 = (ulonglong *)(lVar5 - (uVar29 ^ 0x2a0014aa));
  *puVar24 = (*(ulonglong *)(lVar5 + -0x240) ^ uVar37) -
             (CONCAT44(uVar8,uVar9) ^ 0xc611a9aa2411e5ff) ^ uVar23;
  uVar8 = DAT_1826716f0;
  uVar44 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar5 + -0x628) =
       (uVar23 ^ *(ulonglong *)(lVar5 + -0x8a8)) - (uVar42 ^ *(ulonglong *)(lVar5 + -0xbf0)) ^
       uVar44;
  uVar16 = DAT_182671864;
  lVar4 = DAT_182671560;
  uVar37 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       (uVar42 ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) -
       (CONCAT44(uVar11,DAT_1826715a0) ^ 0x472fc3f0ad4e549f) ^ uVar37;
  uVar7 = DAT_182671588;
  uVar27 = CONCAT44(uVar16,uVar16);
  uVar23 = CONCAT44(uVar15,DAT_182671588);
  *(ulonglong *)(lVar4 + -0x110) =
       uVar27 ^ uVar33 ^ uVar30 ^ *puVar1 ^ *(ulonglong *)(lVar4 + -0x898);
  *puVar2 = uVar23 ^ 0x5698c8df8d18425b | CONCAT44(uVar6,uVar13) ^ 0x8ce53239a06de18d;
  uVar28 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  bVar20 = (byte)DAT_1826715a4;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0xeeef7a86)) =
       (uVar27 ^ *(ulonglong *)(DAT_182671560 + -0x110)) >> (((byte)DAT_182671568 ^ 0xcc) & 0x3f) ^
       uVar28;
  uVar9 = DAT_182671594;
  lVar4 = DAT_182671560;
  uVar42 = (ulonglong)DAT_1826715a0;
  uVar23 = (ulonglong)DAT_182671594;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xcf82eaa0)) =
       (CONCAT44(uVar36,uVar11) ^ 0x42f0f3a8ff10c568) << ((bVar20 ^ 0x43) & 0x3f);
  uVar29 = CONCAT44(_DAT_182671610,_DAT_182671610);
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xa16875c0)) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0x110)) << (((byte)uVar13 ^ 0x7e) & 0x3f) ^ uVar29;
  lVar4 = DAT_182671560;
  uVar27 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar35 = uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x240) |
           uVar28 ^ *(ulonglong *)(DAT_182671560 + -0x670);
  uVar23 = CONCAT44(uVar6,DAT_1826715a8);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar35 ^ uVar27;
  *(ulonglong *)(lVar4 + -0xbf0) = CONCAT44(uVar19,uVar9) ^ uVar23 ^ 0xfb6f825f71730e3e;
  uVar8 = DAT_1826717a4;
  uVar28 = (ulonglong)DAT_18267164c;
  uVar29 = CONCAT44(DAT_18267164c,DAT_18267164c);
  uVar30 = (uVar33 ^ *puVar1) - (CONCAT44(uVar22,uVar7) ^ 0x213142cbd3f53d39);
  *(ulonglong *)(lVar4 + -0x898) = uVar30 ^ uVar29;
  uVar33 = CONCAT44(uVar8,uVar8);
  uVar23 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xf9fb943c)) = uVar30 - uVar35 ^ uVar33;
  uVar8 = DAT_1826717ac;
  lVar5 = DAT_182671560;
  uVar27 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0xc6842c74)) ^ uVar27) +
           (CONCAT44(uVar10,DAT_18267158c) ^ 0x10809e3298e61c1a) ^ uVar21;
  uVar23 = (ulonglong)DAT_182671584;
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar27;
  *(ulonglong *)(lVar5 + -0x670) =
       (CONCAT44(uVar12,uVar14) ^ 0x1e2edcd6cbd40bb) >> ((bVar25 ^ 0xd3) & 0x3f);
  uVar6 = DAT_1826715a4;
  uVar21 = uVar27 ^ uVar44 ^ uVar26 ^ uVar21 ^ *(ulonglong *)(lVar5 + -0x628);
  *(ulonglong *)(lVar5 + -0x110) = uVar21;
  uVar16 = DAT_1826717ec;
  uVar23 = (*(ulonglong *)(lVar5 - (uVar23 ^ 0x6656d1b4)) ^ uVar26) >> (((byte)uVar6 ^ 0x56) & 0x3f)
  ;
  uVar21 = (uVar26 ^ uVar21) << 0x20;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar21 ^ CONCAT44(DAT_182671814,DAT_182671814);
  uVar40 = CONCAT44(uVar16,uVar16);
  uVar21 = uVar21 | uVar23;
  *(ulonglong *)(lVar5 + -0x240) = uVar23 ^ CONCAT44(uVar8,uVar8);
  *puVar1 = uVar21 ^ uVar40;
  uVar30 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(lVar5 + -0x898) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671590 ^ 0xcf82ee28)) ^ uVar44) - uVar21 ^ uVar30;
  *(ulonglong *)(lVar5 + -0x8a8) =
       uVar33 ^ uVar29 ^ uVar37 ^ *(ulonglong *)(lVar5 + -0x6d0) ^ *puVar2;
  uVar8 = DAT_18267163c;
  *(uint *)(lVar5 + -0x874) = (uVar7 ^ 0x2430af26) * *(int *)(lVar5 + -0x774);
  uVar7 = DAT_1826715a8;
  uVar6 = DAT_1826715a4;
  uVar37 = (ulonglong)DAT_1826715a8;
  uVar23 = CONCAT44(uVar8,uVar8);
  uVar35 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0xf9fb9584)) =
       *(ulonglong *)(lVar5 + -0x8a8) >> 0x20 ^ uVar23 ^ uVar28;
  uVar19 = DAT_1826715a8 + DAT_1826715a4;
  uVar21 = (uVar29 ^ *puVar24) << (((byte)DAT_182671568 ^ 0xfc) & 0x3f);
  DAT_182671590 = uVar19;
  *(ulonglong *)(lVar5 + -0x670) = uVar21 ^ uVar30;
  local_e8 = (byte)uVar17;
  *(ulonglong *)(lVar5 + -0x240) =
       (CONCAT44(uVar19,uVar7) ^ 0x5d0cad801cdebc98) <<
       ((*(byte *)(lVar5 - (uVar35 ^ 0xacee7d66)) ^ local_e8) & 0x3f);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar19 ^ 0x40934906)) =
       (uVar23 ^ *(ulonglong *)(lVar5 + -0x2a0) | uVar21) ^ uVar39;
  uVar8 = DAT_182671608;
  uVar21 = CONCAT44(DAT_182671790,DAT_182671790);
  *(ulonglong *)(lVar5 + -0x628) =
       (uVar33 ^ *puVar2) - (*(ulonglong *)(lVar5 - (uVar37 ^ 0x93a4cd70)) ^ uVar39) ^ uVar21;
  uVar16 = DAT_182671630;
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar23 = uVar27 ^ uVar30 ^ uVar39 ^ *(ulonglong *)(lVar5 + -0xbf0) ^
           *(ulonglong *)(lVar5 + -0x898);
  *(ulonglong *)(lVar5 + -0x6d0) = uVar23;
  uVar26 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar19 ^ 0x40934a5e)) =
       (uVar23 ^ uVar27) >> (((byte)uVar6 ^ 0x4c) & 0x3f) ^ uVar26;
  lVar4 = DAT_182671560;
  puVar24 = (ulonglong *)(DAT_182671560 + -0x898);
  uVar27 = (uVar27 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) << (((byte)uVar19 ^ 0xf0) & 0x3f) |
           uVar26 ^ *(ulonglong *)(DAT_182671560 + -0x8a8);
  uVar23 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar27 ^ CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar8 = DAT_182671670;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x2a0) = (uVar30 ^ *puVar24) - uVar27 ^ uVar23;
  uVar26 = CONCAT44(uVar8,uVar8);
  uVar29 = uVar21 ^ uVar40 ^ *puVar1 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x628);
  *(ulonglong *)(lVar4 + -0x670) = uVar29;
  *puVar2 = CONCAT44(uVar12,uVar6) ^ 0xa9bd0714d4ee4ba1;
  uVar28 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (uVar29 ^ uVar26) >> (((byte)uVar19 ^ 0xe0) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar27 + (CONCAT44(uVar12,uVar19) ^ 0x6430bcf7e2413188);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0xacee74de)) = (uVar29 ^ uVar26) << 0x2a ^ uVar46;
  uVar8 = DAT_1826715f8;
  uVar27 = *(ulonglong *)(lVar5 + -0xbf0) ^ uVar28 | uVar46 ^ *(ulonglong *)(lVar5 + -0x8a8);
  *(ulonglong *)(lVar5 + -0x110) = uVar27 ^ uVar39;
  uVar16 = DAT_182671880;
  *(ulonglong *)(lVar5 + -0x898) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0x93a4c0a8)) ^ uVar21) - uVar27 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xacee76fe)) =
       uVar27 ^ uVar32 ^ uVar23 ^ *(ulonglong *)(lVar5 + -0x2a0);
  *puVar2 = (uVar32 ^ *puVar1) >> (((byte)uVar6 ^ 0x58) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar3 ^ uVar36;
  return;
}



############ FUN_ 180f05170 size=5304 ############

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

void FUN_180f05170(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  ulonglong *puVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  uint uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  
  uVar6 = DAT_1826715b4;
  uVar5 = DAT_182671570;
  lVar3 = DAT_182671560;
  uVar26 = (ulonglong)DAT_1826715b4;
  uVar21 = (ulonglong)DAT_182671570;
  uVar33 = DAT_1826715b4 << 0x10 | DAT_1826715b4 >> 0x10;
  uVar19 = ~DAT_182671570;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_1826719c8);
  uVar28 = *(uint *)(&DAT_182611e78 + DAT_1826719c8) ^ DAT_1826715b4;
  uVar36 = (ulonglong)uVar19;
  puVar13 = (ulonglong *)(DAT_182671560 + -0xc08);
  puVar32 = (ulonglong *)(DAT_182671560 + -0xa88);
  uVar39 = CONCAT44(DAT_182671570,DAT_1826715b4);
  DAT_182671568 = uVar33;
  DAT_1826715a0 = uVar19;
  *(ulonglong *)(DAT_182671560 + -0x600) =
       (CONCAT44(DAT_182671570,uVar19) ^ 0xa7feca42df700459) + 0x4d908e42b0da9df8;
  uVar29 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar42 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar16 = CONCAT44(DAT_182671748,DAT_182671748);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x2f6b2290)) = *puVar13 ^ *puVar32 ^ uVar16 ^ uVar42 ^ uVar29;
  uVar17 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  uVar37 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar30 = (uVar17 ^ *(ulonglong *)(lVar3 + -0x1f0)) + (uVar39 ^ 0x94dfbf6d6147f03c);
  uVar27 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar39 = CONCAT44(DAT_182671784,DAT_182671784);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar30 ^ uVar37;
  uVar11 = DAT_182671714;
  uVar27 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x1d8)) + (CONCAT44(uVar5,uVar5) ^ 0xb555df6f26e3041);
  *(ulonglong *)(lVar3 + -0x670) = uVar27 ^ uVar39;
  lVar4 = DAT_182671560;
  uVar23 = CONCAT44(uVar11,uVar11);
  uVar40 = (ulonglong)uVar33;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x11203c22)) = uVar27 + uVar30 ^ uVar23;
  uVar39 = *(ulonglong *)(lVar4 + -0x3b8);
  uVar30 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x3b8)) << 0x10;
  *(ulonglong *)(lVar3 + -0x800) = uVar30 ^ CONCAT44(DAT_182671780,DAT_182671780);
  bVar44 = (byte)uVar6;
  uVar27 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar37 = (uVar37 ^ uVar39) >> ((bVar44 ^ 0x10) & 0x3f);
  uVar39 = uVar37 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x748) = uVar39;
  *(ulonglong *)(lVar4 + -0x3f0) = CONCAT44(uVar33,uVar19) ^ uVar39 ^ uVar27 ^ 0x450fcbc1ec747367;
  uVar39 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar30 = (uVar37 | uVar30) ^ uVar39;
  uVar27 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(lVar4 + -0x610) = uVar30;
  uVar31 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar39 = uVar27 ^ uVar39 ^ uVar23 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x688);
  puVar13 = (ulonglong *)(DAT_182671560 - (uVar26 ^ 0x3aaa18d8));
  *(ulonglong *)(lVar4 + -0x9f8) = uVar39;
  uVar12 = DAT_182671880;
  puVar34 = (ulonglong *)(lVar4 + -0x318);
  *puVar34 = (*puVar13 ^ uVar27) +
             (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar33 ^ 0x11203022)) ^ uVar42) ^ uVar31;
  uVar11 = DAT_182671660;
  lVar3 = DAT_182671560;
  bVar25 = (byte)(uVar6 >> 0x10);
  uVar37 = (uVar27 ^ uVar39) << (((byte)uVar19 ^ 0x6c) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar37 ^ CONCAT44(uVar12,uVar12);
  puVar13 = (ulonglong *)(lVar3 + -0x5c8);
  uVar39 = (*(ulonglong *)(lVar3 - (uVar21 ^ 0xd094d15f)) ^ uVar27) >> ((bVar25 ^ 0xa6) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa0) = uVar39 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_1826717d4;
  *(ulonglong *)(lVar3 + -0x638) =
       (uVar29 ^ *puVar13) + (CONCAT44(uVar19,uVar6) ^ 0xa571d2397518b4ce);
  uVar30 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xd094d2c7)) = (uVar39 | uVar37) ^ uVar30;
  uVar11 = DAT_182671624;
  lVar4 = DAT_182671560;
  uVar39 = *puVar34;
  *(ulonglong *)(lVar3 + -0x80) = uVar27 ^ *(ulonglong *)(lVar3 + -0x9f8) | 0xd5c6e9236742e873;
  uVar41 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x3aaa1ad0)) =
       uVar39 ^ uVar41 ^ uVar30 ^ uVar31 ^ *(ulonglong *)(lVar4 + -0xa60);
  uVar38 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x3aaa1ba0)) =
       (uVar29 ^ *puVar13) + (uVar23 ^ *(ulonglong *)(lVar4 + -0x688)) ^ uVar38;
  uVar11 = DAT_182671664;
  lVar3 = DAT_182671560;
  uVar27 = (uVar29 ^ *puVar13) << (((byte)uVar5 ^ 0x9e) & 0x3f);
  uVar39 = *puVar13;
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar27 ^ CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar23 = (uVar29 ^ uVar39) >> ((bVar44 ^ 0x27) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc08) = uVar23 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_18267176c;
  *(ulonglong *)(lVar3 + -0x1f0) = CONCAT44(uVar33,uVar19) ^ 0x1810a3c074001200 | 0x87495c12037d8ceb
  ;
  uVar39 = CONCAT44(uVar11,uVar11);
  uVar27 = (uVar23 | uVar27) ^ uVar39;
  *(ulonglong *)(lVar3 + -0x1d8) = uVar27;
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar6,uVar5) ^ 0xd1cce725f577a82f) + (CONCAT44(uVar19,uVar6) ^ 0x36b2e783098d92ca);
  uVar30 = CONCAT44(DAT_182671824,DAT_182671824);
  puVar20 = (ulonglong *)(lVar3 - (uVar36 ^ 0x2f6b24e0));
  *puVar20 = uVar30 ^ uVar39 ^ uVar38 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0xa80);
  *(ulonglong *)(lVar3 + -0x3f0) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0x3b8)) << (((byte)uVar5 ^ 0x81) & 0x3f);
  uVar23 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x112032aa)) =
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0x11203912)) ^ uVar30) + (*puVar34 ^ uVar31) ^ uVar23;
  uVar11 = _DAT_182671610;
  puVar18 = (ulonglong *)(lVar3 - (uVar26 ^ 0x3aaa1298));
  uVar37 = (uVar30 ^ *(ulonglong *)(lVar3 + -0x3b8)) * 0x800000;
  *(ulonglong *)(lVar3 + -0x748) = uVar37 ^ uVar29;
  uVar27 = (uVar30 ^ *puVar18) >> ((bVar25 ^ 0x83) & 0x3f);
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar39 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar3 + -0x610) = uVar27 ^ uVar35;
  uVar11 = DAT_18267181c;
  *(ulonglong *)(lVar3 + -0xa88) = (uVar30 ^ *(ulonglong *)(lVar3 + -0x3b8)) + 0x200ea676d3b7297c;
  uVar30 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x638) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x100706c2)) ^ uVar29 | uVar27) ^ uVar30;
  uVar12 = DAT_18267186c;
  *(ulonglong *)(lVar3 + -0x6b8) = (*(ulonglong *)(lVar3 - (uVar26 ^ 0x3aaa1718)) ^ uVar30) + uVar37
  ;
  uVar11 = DAT_18267182c;
  uVar6 = DAT_18267159c;
  uVar7 = DAT_182671588;
  uVar43 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xa0) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671578 ^ 0xca35494d)) ^ uVar43 ^ uVar30 ^ uVar23 ^
       *(ulonglong *)(lVar3 + -0x800);
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x4f75c3cd)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x1f841b4c)) ^ uVar41) +
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0x1120302a)) ^ uVar38) ^ uVar24;
  uVar11 = DAT_18267174c;
  uVar8 = DAT_182671594;
  uVar39 = (ulonglong)DAT_182671594;
  uVar15 = DAT_182671594 ^ uVar7;
  uVar30 = (ulonglong)uVar15;
  bVar14 = (byte)uVar15;
  uVar27 = (uVar41 ^ *(ulonglong *)(lVar3 + -0xbf0)) << ((bVar14 ^ 0xe1) & 0x3f);
  DAT_182671590 = uVar15;
  *(ulonglong *)(lVar3 + -0x80) = uVar27 ^ CONCAT44(DAT_1826717bc,DAT_1826717bc);
  lVar3 = DAT_182671560;
  uVar37 = CONCAT44(uVar11,uVar11);
  uVar38 = (uVar41 ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) >> ((bVar14 ^ 0xd1) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa60) = uVar38 ^ uVar35;
  uVar27 = (uVar27 | uVar38) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x688) = uVar27;
  lVar4 = DAT_182671560;
  uVar35 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar27 = *(ulonglong *)(lVar3 - (uVar39 ^ 0x4235438d)) ^ uVar35 ^ uVar37 ^ uVar24 ^ uVar27;
  *puVar13 = uVar27;
  uVar37 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar4 + -0x1f0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x1f8418bc)) ^ uVar23) + (uVar35 ^ uVar27) ^
       uVar37;
  uVar11 = DAT_1826716a8;
  puVar32 = (ulonglong *)(lVar4 - (uVar39 ^ 0x42354c75));
  bVar22 = (byte)uVar7;
  *puVar32 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0x5db15f01)) ^ uVar35) << ((bVar22 ^ 0xb9) & 0x3f) ^
             uVar17;
  lVar3 = DAT_182671560;
  *(uint *)(lVar4 + -0x344) = (uVar7 ^ 0xd1de85d1) << ((bVar22 ^ 0xa7) & 0x1f);
  uVar12 = DAT_182671858;
  uVar27 = (uVar35 ^ *puVar13) >> ((bVar14 ^ 0xf2) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc08) = uVar27 ^ CONCAT44(uVar11,uVar11);
  lVar3 = DAT_182671560;
  uVar23 = CONCAT44(uVar12,uVar12);
  uVar27 = (*puVar32 ^ uVar17 | uVar27) ^ uVar23;
  uVar35 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar27;
  *(ulonglong *)(lVar3 + -0x1d8) =
       uVar35 ^ uVar23 ^ uVar37 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x1f0);
  puVar32 = (ulonglong *)(lVar3 - (uVar39 ^ 0x42354ad5));
  uVar40 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x5db15939)) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x9f8)) + (uVar43 ^ *puVar32) ^ uVar40;
  bVar14 = (byte)uVar8;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x5db159d1)) =
       (CONCAT44(uVar15,uVar7) ^ 0xc37c10d6ae07ce3d) + 0xa2a2acdbf1d89bdd;
  uVar23 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x5db15971)) =
       (*(ulonglong *)(DAT_182671560 + -0xa0) ^ uVar43) << ((bVar14 ^ 0x50) & 0x3f) ^ uVar23;
  uVar27 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0x423540fd)) =
       (uVar43 ^ *puVar32) >> ((bVar14 ^ 0x6e) & 0x3f) ^ uVar27;
  uVar12 = DAT_182671694;
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar39 = (uVar27 ^ *(ulonglong *)(DAT_182671560 + -0xa88) |
           uVar23 ^ *(ulonglong *)(DAT_182671560 + -0x3b8)) ^ uVar24;
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar39;
  uVar9 = DAT_1826715a4;
  uVar43 = (ulonglong)DAT_1826715a4;
  uVar27 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(lVar3 + -0x6b8) =
       uVar27 ^ uVar39 ^ uVar24 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x3f0);
  uVar38 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x5db15cf1)) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x3aaa1798)) ^ uVar27) +
       (CONCAT44(uVar33,uVar7) ^ 0xcae1bffb3d7ef85a) ^ uVar38;
  uVar23 = uVar38 ^ *(ulonglong *)(lVar3 + -0x638);
  *(ulonglong *)(lVar3 + -0xa80) = (*(ulonglong *)(lVar3 + -0x600) ^ uVar17) + 0x3d6646b32a9c6533;
  uVar11 = DAT_182671668;
  uVar39 = (CONCAT44(uVar9,uVar33) ^ 0x960781916bf8c8e) + (uVar37 ^ *(ulonglong *)(lVar3 + -0x1f0));
  *(ulonglong *)(lVar3 + -0xbf0) = uVar39 ^ CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar3 + -0x80) =
       (CONCAT44(uVar15,uVar7) ^ 0x8ed938e37dd3204c) << ((bVar25 ^ 0x96) & 0x3f);
  uVar37 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xa60) = uVar39 + uVar23 ^ uVar37;
  *(byte *)(lVar3 + -0x429) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0xd094dd1f)) ^ (ulonglong)DAT_182671604) ^
       (byte)DAT_1826717c0;
  uVar10 = DAT_1826715cc;
  uVar39 = (ulonglong)DAT_1826715b0;
  uVar26 = (ulonglong)DAT_1826715cc;
  uVar27 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar3 + -0x688) = uVar23 << 0x19 ^ uVar27;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xdfee5dfd)) =
       uVar23 << (((byte)uVar12 ^ *(byte *)(lVar3 + -0x610)) & 0x3f);
  uVar17 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar21 ^ 0xd094dd6f)) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x638)) >> ((bVar22 ^ 0x9b) & 0x3f) ^ uVar17;
  uVar6 = DAT_182671574;
  uVar38 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar4 + -0xc08) = *(ulonglong *)(lVar4 + -0x748) ^ uVar29 ^ 0xc27bc8408903d170;
  uVar39 = (ulonglong)DAT_182671598;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar4 + -0x688) | uVar17 ^ *puVar13;
  uVar21 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar4 + -0x670) = uVar27 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x9f8) =
       *(ulonglong *)(lVar4 - (uVar39 ^ 0xfffff98f)) ^ uVar21 ^ uVar37 ^ uVar42 ^
       *(ulonglong *)(lVar4 + -0xa60);
  uVar11 = DAT_1826717c8;
  *puVar34 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0x2f6b2680)) ^ uVar35) +
             (CONCAT44(uVar6,uVar5) ^ 0x7231d4b1757ae97) ^ uVar24;
  lVar3 = DAT_182671560;
  uVar39 = *(ulonglong *)(DAT_182671560 + -0x3f0);
  *(ulonglong *)(lVar4 + -0xa0) =
       *(ulonglong *)(CONCAT44(DAT_182671650,DAT_182671650) ^ *(ulonglong *)(lVar4 + -0x4a0)) ^
       CONCAT44(uVar11,uVar11);
  uVar5 = DAT_18267156c;
  uVar42 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar23 = CONCAT44(uVar8,DAT_182671578);
  uVar41 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar3 + -0x3b8) =
       (CONCAT44(DAT_18267159c,uVar33) ^ 0xafe462681ccdaa29) + (uVar40 ^ uVar39) ^ uVar42;
  uVar8 = DAT_18267158c;
  uVar39 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar3 + -0xa88) = CONCAT44(uVar7,uVar6) ^ uVar23 ^ 0x403765e6d30a4fef;
  uVar23 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x723f588f)) ^ uVar24) +
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0xe348b396)) ^ uVar42) ^ uVar23;
  *(ulonglong *)(lVar3 + -0x600) = uVar27 - (CONCAT44(uVar19,DAT_1826715a8) ^ 0x43ac4414a6e7f2c3);
  uVar12 = DAT_18267177c;
  *(ulonglong *)(lVar3 + -0xa80) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671584 ^ 0x10070292)) ^ uVar24) <<
       ((bVar14 ^ 0x54) & 0x3f) ^ uVar21;
  uVar11 = DAT_182671658;
  uVar39 = ((ulonglong)(uVar10 >> 0x1f) | uVar26 * 2) ^ *puVar34 >> 0x1f;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar39 ^ CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x5db15a49)) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x2eb04263)) ^ uVar21 | uVar39) ^ uVar27;
  *(ulonglong *)(lVar3 + -0xbf0) =
       *(ulonglong *)(lVar3 + -0x80) ^ uVar16 ^ *(ulonglong *)(lVar3 + -0x6b8) ^ uVar27 ^ uVar23;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x2f6b2148)) =
       (CONCAT44(uVar15,uVar9) ^ 0xd68db259593629e5) - *(longlong *)(lVar3 + -0x600);
  uVar35 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x22110230)) =
       (uVar16 ^ *(ulonglong *)(lVar3 + -0xbf0)) + (uVar37 ^ *(ulonglong *)(lVar3 + -0xa60)) ^
       uVar35;
  uVar27 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0x5db15139)) ^ uVar16) <<
           (((byte)DAT_18267159c ^ 0x1b) & 0x3f);
  uVar39 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(lVar3 + -0x638) = uVar27 ^ CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar16 = (uVar16 ^ *(ulonglong *)(lVar3 + -0xbf0)) >> (((byte)uVar5 ^ 0x3c) & 0x3f);
  *(ulonglong *)(lVar3 + -0x748) = uVar16 ^ uVar39;
  *(ulonglong *)(lVar3 + -0xc08) = uVar27 << 0x2b;
  uVar39 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar37 = (uVar16 | uVar27) ^ uVar39;
  *(ulonglong *)(lVar3 + -0x688) = uVar37;
  *puVar13 = 0x1a8fda0ed4f8c78c;
  lVar3 = DAT_182671560;
  uVar16 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar27 = (uVar21 ^ *(ulonglong *)(DAT_182671560 + -0x9f8)) << 0xc;
  puVar32 = (ulonglong *)(DAT_182671560 + -0x9f8);
  uVar30 = CONCAT44(DAT_182671648,DAT_182671648);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x800) ^ uVar16 ^ uVar39 ^ uVar35;
  uVar12 = DAT_182671890;
  *(ulonglong *)(lVar3 + -0xa0) = (uVar21 ^ *puVar32) + (*puVar1 ^ uVar23) ^ uVar30;
  *(ulonglong *)(lVar3 + -0x3f0) = uVar27 ^ uVar42;
  uVar11 = DAT_182671814;
  lVar3 = DAT_182671560;
  uVar39 = (uVar21 ^ *(ulonglong *)(DAT_182671560 + -0x9f8)) >> (((byte)uVar8 ^ 0xa3) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar39 ^ CONCAT44(uVar12,uVar12);
  uVar23 = CONCAT44(uVar11,uVar11);
  *puVar20 = (uVar39 | uVar27) ^ uVar23;
  uVar39 = *(ulonglong *)(lVar3 + -0xa0) ^ *puVar18 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x670) = uVar39;
  uVar27 = CONCAT44(DAT_18267180c,DAT_18267180c);
  bVar25 = (byte)DAT_182671578;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xe348b336)) =
       (uVar39 ^ uVar23) + (*(ulonglong *)(lVar3 + -0x800) ^ uVar35) ^ uVar27;
  uVar21 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671580 ^ 0xf5fef37f)) =
       (*(ulonglong *)(lVar3 + -0x670) ^ uVar23) << ((bVar25 ^ 0x4f) & 0x3f) ^ uVar21;
  uVar39 = (*(ulonglong *)(lVar3 + -0x670) ^ uVar23) >> ((bVar44 ^ 0x26) & 0x3f);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar39 ^ CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar21 = (uVar39 | uVar21 ^ *(ulonglong *)(lVar3 + -0xa80)) ^ uVar31;
  DAT_1826715a8 = uVar5 | DAT_1826715a0;
  uVar37 = (ulonglong)DAT_1826715a8;
  uVar39 = CONCAT44(DAT_1826715a8,uVar5);
  *(ulonglong *)(lVar3 + -0x80) = uVar21;
  uVar11 = DAT_1826717a0;
  *(ulonglong *)(lVar3 + -0x600) =
       *(ulonglong *)(lVar3 - (uVar36 ^ 0x2f6b2440)) ^ uVar31 ^ uVar21 ^ uVar29 ^ uVar27;
  uVar21 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x610) = (uVar39 ^ 0x181e73e3c85f9b7c) >> (((byte)uVar5 ^ 0x12) & 0x3f);
  uVar11 = DAT_1826716d8;
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 + -0x1d8) ^ uVar16) + (*(ulonglong *)(lVar3 + -0xa0) ^ uVar30) ^ uVar21
  ;
  uVar12 = DAT_1826717a4;
  uVar23 = (*(ulonglong *)(lVar3 + -0x1d8) ^ uVar16) >> (((byte)uVar19 ^ 0x72) & 0x3f);
  uVar39 = *(ulonglong *)(lVar3 - (uVar37 ^ 0xef6bb6a6));
  *(uint *)(lVar3 + -0x3d4) = (uVar5 ^ 0x418a95eb) * *(int *)(lVar3 + -0x774);
  uVar39 = (uVar39 ^ uVar16) << 0x16;
  *(ulonglong *)(lVar3 + -0xc08) = uVar23 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar39 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_18267162c;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xef6bb146)) = (uVar23 | uVar39) ^ uVar17;
  uVar39 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar21 = *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xe348b616)) ^ uVar17 ^ uVar39 ^
           *(ulonglong *)(lVar3 + -0xa60) ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x2f6b2010)) = uVar21;
  *puVar13 = (uVar21 ^ uVar39) + (*puVar34 ^ uVar27) ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar33) * 4) = uVar28;
  return;
}



############ FUN_ 180e7ab60 size=5621 ############

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

void FUN_180e7ab60(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  byte local_f8;
  byte local_f0;
  byte local_c0;
  
  uVar9 = DAT_182671694;
  uVar10 = DAT_1826715a4;
  uVar8 = DAT_18267159c;
  uVar6 = DAT_182671598;
  uVar31 = DAT_182671594;
  uVar15 = DAT_182671588;
  uVar5 = DAT_182671574;
  uVar4 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar23 = (ulonglong)DAT_18267156c;
  uVar43 = (ulonglong)DAT_182671594;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671b18);
  uVar42 = (ulonglong)DAT_182671574;
  uVar22 = DAT_18267156c | DAT_182671588;
  uVar18 = DAT_18267159c & DAT_1826715a4;
  uVar45 = DAT_182671598 << 0x10 | DAT_182671598 >> 0x10;
  uVar28 = DAT_182671594 + DAT_182671574;
  uVar14 = *(uint *)(&DAT_182611e80 + DAT_182671b18) ^ DAT_182671598;
  uVar35 = (ulonglong)DAT_18267159c;
  uVar19 = CONCAT44(uVar18,DAT_18267159c);
  DAT_182671568 = uVar22;
  DAT_1826715a8 = uVar28;
  DAT_1826715b0 = uVar45;
  DAT_1826715b4 = uVar18;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (uVar19 ^ 0xfeba8724c6426711) >>
       (((byte)DAT_182671808 ^ *(byte *)(DAT_182671560 + -0xbf0)) & 0x3f);
  uVar13 = DAT_1826717dc;
  uVar11 = DAT_182671640;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar20 = CONCAT44(DAT_182671848,DAT_182671848);
  uVar40 = CONCAT44(DAT_182671754,DAT_182671754);
  uVar27 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x898)) - (uVar16 ^ *(ulonglong *)(lVar2 + -0xa88));
  *(ulonglong *)(lVar2 + -0x628) = uVar27 ^ uVar40;
  uVar9 = DAT_182671630;
  lVar2 = DAT_182671560;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar25 = CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar39 = (ulonglong)uVar28;
  puVar29 = (ulonglong *)(DAT_182671560 - (uVar39 ^ 0x9057f636));
  uVar30 = (ulonglong)uVar10;
  uVar24 = (ulonglong)uVar22;
  uVar21 = *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xacee74de)) ^ CONCAT44(uVar11,uVar11) ^ uVar25
           ^ uVar36 ^ *puVar29;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar21;
  uVar32 = CONCAT44(uVar9,uVar9);
  local_c0 = (byte)uVar18;
  *(ulonglong *)(lVar2 + -0x6d0) = (uVar21 ^ uVar36) >> ((local_c0 ^ 0x30) & 0x3f) ^ uVar32;
  uVar9 = _DAT_1826715e0;
  *(ulonglong *)(lVar2 + -0x670) = uVar27 >> (((byte)uVar4 ^ 0xef) & 0x3f);
  uVar11 = DAT_182671750;
  uVar21 = (*(ulonglong *)(lVar2 - (uVar43 ^ 0xa1687690)) ^ uVar36) <<
           (((byte)uVar28 ^ 0x56) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar21 ^ CONCAT44(uVar9,uVar9);
  uVar36 = CONCAT44(uVar11,uVar11);
  uVar21 = *(ulonglong *)(lVar2 - (uVar35 ^ 0x7f6608c0)) ^ uVar32 | uVar21;
  uVar27 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar21 ^ uVar36;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar45 ^ 0xf070e426)) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x240)) - uVar21 ^ uVar27;
  uVar7 = DAT_182671598;
  uVar33 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  puVar17 = (ulonglong *)(lVar2 - (uVar23 ^ 0xe7d6d80c));
  uVar25 = CONCAT44(DAT_182671840,DAT_182671840);
  uVar21 = uVar33 ^ uVar36 ^ uVar40 ^ *puVar17 ^ *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x898) = uVar21;
  local_f0 = (byte)uVar31;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x7f6606b8)) =
       (uVar21 ^ uVar33) >> ((local_f0 ^ 0xba) & 0x3f) ^ uVar25;
  uVar9 = DAT_1826716c4;
  uVar36 = (uVar33 ^ *(ulonglong *)(lVar2 + -0x898)) << (((byte)uVar5 ^ 0xf0) & 0x3f);
  *(ulonglong *)(lVar2 + -0x670) = uVar36 ^ CONCAT44(DAT_182671644,DAT_182671644);
  uVar11 = DAT_182671744;
  lVar3 = DAT_182671560;
  uVar36 = uVar36 | uVar25 ^ *(ulonglong *)(lVar2 + -0x8a8);
  uVar46 = CONCAT44(uVar9,uVar9);
  uVar21 = *(ulonglong *)(DAT_182671560 + -0x628);
  *(uint *)(lVar2 + -0x874) = (uVar5 ^ 0x5cd91f29) + (uVar7 ^ 0xef71d6a5);
  *(ulonglong *)(lVar2 + -0x110) = uVar36 ^ uVar46;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x6d0) = (uVar40 ^ uVar21) - uVar36 ^ uVar25;
  *(int *)(lVar3 + -0x374) = *(int *)(lVar3 + -0x774) * *(int *)(lVar3 + -0x754);
  uVar11 = DAT_182671784;
  uVar33 = CONCAT44(DAT_18267175c,DAT_18267175c);
  puVar41 = (ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x6a6a5222));
  uVar36 = uVar33 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x2a0) ^ uVar16 ^ *puVar41;
  *(ulonglong *)(lVar3 + -0x318) = uVar36;
  uVar9 = DAT_18267176c;
  lVar2 = DAT_182671560;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar35 ^ 0x7f660d08)) ^ uVar33) >>
           (((byte)uVar28 ^ 0x60) & 0x3f);
  bVar26 = (byte)(uVar6 >> 0x10);
  *(ulonglong *)(lVar3 + -0x240) = uVar21 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_1826717bc;
  uVar36 = (uVar33 ^ uVar36) << ((bVar26 ^ 0xac) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar36 ^ CONCAT44(uVar9,uVar9);
  uVar21 = uVar21 | uVar36;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x898) = uVar21 ^ uVar36;
  uVar9 = DAT_182671778;
  *(ulonglong *)(lVar2 + -0x8a8) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0xa1687520)) ^ uVar27) - uVar21 ^ uVar16;
  uVar21 = CONCAT44(uVar9,uVar9);
  puVar37 = (ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x2c660ac0));
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xe7d6d58c)) =
       *(ulonglong *)(lVar2 - (uVar35 ^ 0x7f660688)) ^ uVar21 ^ uVar36 ^ uVar25 ^ *puVar37;
  lVar2 = DAT_182671560;
  uVar33 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar27 = (ulonglong)uVar7;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xeffedd8e)) ^ uVar21) >>
       ((local_c0 ^ 0x3e) & 0x3f) ^ uVar33;
  *puVar41 = CONCAT44(uVar10,uVar7) ^ 0x59f3f2b09c982ff3;
  uVar9 = DAT_182671674;
  uVar21 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0x9057f206)) ^ uVar21) <<
           (((byte)uVar22 ^ 0xec) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar21 ^ CONCAT44(DAT_182671604,DAT_182671604);
  uVar36 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0xa16875c0)) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x628) | uVar21) ^ uVar36;
  uVar34 = uVar46 ^ *(ulonglong *)(lVar2 + -0x8a8) ^ uVar16 ^ *(ulonglong *)(lVar2 + -0x110);
  uVar40 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (CONCAT44(uVar45,uVar18) ^ 0x7f7dad5f0c91bbe9) >> ((local_c0 ^ 0x3f) & 0x3f);
  uVar25 = (uVar25 ^ *puVar37) - (uVar36 ^ *(ulonglong *)(lVar2 + -0x240)) ^ uVar40;
  uVar33 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar25;
  *(ulonglong *)(lVar2 + -0x898) = uVar34 ^ uVar33;
  uVar21 = uVar34 >> (((byte)uVar8 ^ 0x1c) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa88) = uVar21 ^ CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar2 + -0x670) =
       CONCAT44(uVar31,uVar4) ^ uVar34 ^ uVar33 ^ uVar33 ^ 0x27da0e17ddc0d053;
  uVar9 = DAT_1826715b8;
  uVar21 = uVar34 << 0x34 | uVar21;
  *(ulonglong *)(lVar2 + -0x628) = uVar34 << 0x34 ^ uVar46;
  uVar11 = DAT_18267170c;
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar46 = uVar21 ^ uVar34;
  *(ulonglong *)(lVar2 + -0x318) = uVar46;
  uVar9 = DAT_182671730;
  lVar3 = DAT_182671560;
  uVar44 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xbf0) = (*(ulonglong *)(lVar2 + -0x8a8) ^ uVar16) - uVar21 ^ uVar44;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar25 ^ uVar46 ^ uVar21 ^ uVar34 ^ uVar40;
  *(uint *)(lVar2 + -0x844) =
       *(uint *)(lVar2 + -0x910) >> ((byte)*(undefined4 *)(lVar2 - (uVar30 ^ 0xacee7fa2)) & 0x1f);
  uVar9 = DAT_182671718;
  lVar2 = DAT_182671560;
  uVar16 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0xeffedd2e)) ^ uVar21) >> ((local_f0 ^ 0x99) & 0x3f) ^
       uVar16;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xe686f6a0)) ^ uVar21) << ((bVar26 ^ 0xa1) & 0x3f) ^
           CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x670) = uVar21;
  *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xa1687f18)) =
       (CONCAT44(uVar8,uVar15) ^ 0xc8a54b0040beb372) << (((byte)uVar21 ^ (byte)uVar9) & 0x3f);
  uVar34 = CONCAT44(DAT_18267163c,DAT_18267163c);
  uVar16 = *(ulonglong *)(lVar2 - (uVar27 ^ 0xe686f160)) ^ uVar16 |
           CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0x670);
  *(ulonglong *)(lVar2 + -0x628) = uVar16 ^ uVar34;
  *(ulonglong *)(lVar2 + -0xa88) =
       *(ulonglong *)(lVar2 - (uVar42 ^ 0xeeef7ade)) ^ CONCAT44(uVar22,uVar45) ^ uVar34 ^
       0x5278f3474f11f21f;
  uVar21 = (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar40) - (CONCAT44(uVar18,uVar10) ^ 0x7177e39ab71ca52)
  ;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar21 ^ uVar33;
  uVar9 = DAT_1826718c4;
  *(ulonglong *)(lVar2 + -0x318) =
       CONCAT44(uVar31,uVar45) ^ CONCAT44(uVar15,uVar5) ^ 0x976e46ecc83fa9b7;
  uVar33 = CONCAT44(uVar9,uVar9);
  uVar25 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar2 + -0x6d0) =
       uVar21 - (*(ulonglong *)(lVar2 - (uVar23 ^ 0xe7d6d5d4)) ^ uVar34) ^ uVar33;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x6a6a5032)) =
       uVar16 - (uVar19 ^ 0xf7a789415d9ce6f6) ^ uVar25;
  uVar40 = CONCAT44(DAT_182671664,DAT_182671664);
  uVar36 = *(ulonglong *)(lVar2 - (uVar30 ^ 0xacee7e36)) ^ *puVar17 ^ uVar40 ^ uVar44 ^ uVar36;
  uVar46 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar2 + -0x110) = uVar36;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar45 ^ 0xf070e0f6)) =
       (uVar36 ^ uVar40) >> ((local_f0 ^ 0xa1) & 0x3f) ^ uVar46;
  uVar11 = DAT_1826718d4;
  uVar34 = (*(ulonglong *)(lVar2 + -0x110) ^ uVar40) << (((byte)uVar7 ^ 0x6f) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa88) = uVar34 ^ CONCAT44(DAT_182671850,DAT_182671850);
  uVar9 = DAT_182671758;
  uVar6 = DAT_1826715ac;
  uVar5 = DAT_182671584;
  uVar19 = (ulonglong)DAT_1826715ac;
  uVar34 = uVar34 | uVar46 ^ *(ulonglong *)(lVar2 + -0x670);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar34 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_1826717cc;
  lVar3 = DAT_182671560;
  uVar38 = CONCAT44(uVar9,uVar9);
  uVar21 = (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar44) - (CONCAT44(uVar8,uVar8) ^ 0x9ff7a64d728b9e93);
  *(ulonglong *)(lVar2 + -0x318) = uVar21 ^ uVar38;
  uVar9 = DAT_182671740;
  uVar12 = DAT_182671670;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar21 - uVar34 ^ uVar36;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar21 = (CONCAT44(uVar5,uVar6) ^ 0x299755714fd86386) + uVar34 ^ uVar16;
  *(ulonglong *)(lVar3 + -0x628) = uVar21;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xeffed9be)) =
       *(ulonglong *)(lVar3 + -0x6d0) ^ CONCAT44(uVar12,uVar12) ^ uVar21 ^ uVar16 ^ uVar33;
  uVar21 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar3 + -0x110) =
       ((ulonglong)uVar12 << 0x1b | (ulonglong)(uVar12 >> 5)) ^ *(ulonglong *)(lVar3 + -0x240) >> 5
       ^ uVar21;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x670) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0xeeef745e)) ^ uVar36) -
       (CONCAT44(uVar18,uVar15) ^ 0x3f9d1154957ccc9);
  *puVar41 = (*puVar29 ^ CONCAT44(uVar12,uVar12)) << (((byte)uVar7 ^ 0x4b) & 0x3f) ^ uVar38;
  uVar34 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x7f6605e0)) =
       (*(ulonglong *)(lVar3 + -0x110) ^ uVar21 | uVar38 ^ *(ulonglong *)(lVar3 + -0xa88)) ^ uVar34;
  uVar11 = DAT_1826716f4;
  uVar21 = (ulonglong)_DAT_182671868;
  uVar38 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar16 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 + -0x6d0) ^ uVar33) - (uVar34 ^ *(ulonglong *)(lVar2 + -0xbf0)) ^
       uVar38;
  uVar9 = DAT_182671620;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar25 = *(ulonglong *)(lVar2 + -0x8a8) ^ *(ulonglong *)(lVar2 + -0x898) ^ uVar16 ^ uVar36 ^
           uVar25;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar25;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x628) = (uVar25 >> 0x20 ^ uVar21) >> 5 ^ uVar35;
  uVar9 = DAT_1826715a0;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xacee7a06)) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0xe7d6d15c)) ^ uVar16) <<
       (((byte)DAT_1826715a0 ^ 0x3f) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xfffbfd66)) =
       *(ulonglong *)(lVar2 - (uVar39 ^ 0x9057f6d6)) ^ CONCAT44(uVar28,uVar9) ^ uVar16 ^
       0xfb79cfd225b2db42;
  lVar3 = DAT_182671560;
  uVar39 = uVar33 ^ *(ulonglong *)(lVar2 + -0x670) | uVar35 ^ *(ulonglong *)(lVar2 + -0x628);
  uVar21 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar25 = uVar39 ^ uVar21;
  *(ulonglong *)(lVar2 + -0x110) = uVar25;
  uVar9 = DAT_182671748;
  *(undefined1 *)(lVar2 + -0x5e9) = **(undefined1 **)(lVar2 - (uVar19 ^ 0x77e4efee));
  uVar11 = DAT_18267183c;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xa88) = (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar36) - uVar39 ^ uVar16;
  uVar35 = CONCAT44(uVar11,uVar11);
  local_f8 = (byte)uVar10;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xfffbf9f6)) =
       *(ulonglong *)(lVar3 - (uVar42 ^ 0xeeef7fee)) ^ uVar35 ^ uVar21 ^ uVar38 ^ uVar25;
  uVar5 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar35 = *(ulonglong *)(lVar3 + -0x6d0) ^ uVar35;
  uVar21 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar25 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar3 + -0x898) = uVar35 >> ((local_f8 ^ 0x61) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x2a0) =
       (CONCAT44(uVar22,uVar4) ^ 0x11cc392bf8a32fcf) + (CONCAT44(uVar31,uVar8) ^ 0xce0a84407df91c9c)
  ;
  uVar9 = DAT_18267164c;
  uVar36 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar35 = uVar35 << (((byte)uVar5 ^ 0xcd) & 0x3f);
  *(ulonglong *)(lVar2 + -0x240) = uVar35 ^ uVar36;
  uVar11 = DAT_182671830;
  lVar3 = DAT_182671560;
  uVar33 = CONCAT44(uVar9,uVar9);
  uVar35 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xeffed366)) ^ uVar21 | uVar35;
  uVar21 = *(ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar35 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar15,uVar4) ^ 0x1d15ed0bb126207c) << (((byte)uVar8 ^ 7) & 0x3f);
  uVar39 = (ulonglong)DAT_1826717a4;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar19 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xa1687f28)) = (uVar38 ^ uVar21) - uVar35 ^ uVar24;
  uVar9 = DAT_1826715c0;
  uVar35 = uVar19 ^ uVar16 ^ uVar34 ^ *(ulonglong *)(lVar3 + -0xbf0) ^
           *(ulonglong *)(lVar3 + -0xa88);
  *(ulonglong *)(lVar3 + -0x110) = uVar35;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xacee7d66)) >> 0x20 ^ uVar39) >> 8 ^
           CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar21;
  uVar11 = DAT_1826717f0;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0xeeef7eb6)) ^ uVar36) <<
       (((byte)uVar21 ^ (byte)uVar9) & 0x3f);
  uVar21 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xea567f7c)) =
       (uVar19 ^ uVar35) << (((byte)uVar5 ^ 0xfc) & 0x3f) ^ uVar21;
  uVar39 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xe686f368)) =
       (*(ulonglong *)(lVar3 + -0x898) ^ uVar21 |
       *(ulonglong *)(lVar3 + -0x2a0) ^ CONCAT44(uVar9,uVar9)) ^ uVar39;
  uVar9 = DAT_1826716a8;
  uVar25 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  *(ulonglong *)(lVar3 + -0xbf0) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0xe7d6d974)) ^ uVar16) -
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x318)) ^ uVar25;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x240) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671584 ^ 0xfffbfc3e)) ^
       *(ulonglong *)(lVar3 + -0x8a8) ^ uVar27 ^ uVar39 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x6d0) =
       *(longlong *)(lVar3 + -0x670) - (CONCAT44(uVar10,uVar28) ^ 0x90c0b6b9fb26015);
  uVar30 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xe7d6d2ec)) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x240)) >> ((local_c0 ^ 0x24) & 0x3f) ^ uVar30;
  uVar21 = (ulonglong)DAT_182671570;
  uVar39 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(lVar3 + -0x898) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x240)) << ((bVar26 ^ 0x8a) & 0x3f) ^ uVar40;
  uVar9 = DAT_1826715f4;
  uVar4 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar21 = *(ulonglong *)(lVar3 - (uVar21 ^ 0xef82fd12)) ^ uVar30 |
           *(ulonglong *)(lVar3 - (uVar23 ^ 0xe7d6db64)) ^ uVar40;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar21 ^ uVar39;
  uVar5 = DAT_182671590;
  uVar15 = uVar4 ^ DAT_182671590;
  uVar27 = CONCAT44(uVar9,uVar9);
  DAT_18267158c = uVar15;
  *(ulonglong *)(lVar2 + -0xa88) = (*(ulonglong *)(lVar2 + -0x8a8) ^ uVar24) - uVar21 ^ uVar27;
  uVar9 = DAT_182671804;
  uVar24 = CONCAT44(DAT_182671804,DAT_182671804);
  uVar21 = uVar24 ^ uVar25 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0xbf0) ^
           *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x318) = uVar21;
  uVar30 = CONCAT44(DAT_182671898,DAT_182671898);
  bVar26 = (byte)uVar15;
  *(ulonglong *)(lVar2 + -0x670) = (uVar21 ^ uVar24) >> ((bVar26 ^ 0x17) & 0x3f) ^ uVar30;
  puVar17 = (ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe3d290c0));
  uVar39 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe3d29508)) = (*puVar17 ^ uVar24) << 7 ^ uVar39;
  uVar11 = DAT_182671828;
  *(ulonglong *)(lVar2 + -0x240) =
       (CONCAT44(uVar5,uVar15) ^ 0xa1d96732cbbe7a03) >>
       (((byte)uVar9 ^ *(byte *)(lVar2 + -0x318)) & 0x3f);
  uVar9 = DAT_18267182c;
  uVar21 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe3d292c8)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe3d295a8)) ^ uVar30 |
       uVar39 ^ *(ulonglong *)(lVar2 + -0x6d0)) ^ uVar21;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x40934a6e)) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0xbf0)) - (uVar21 ^ *(ulonglong *)(lVar2 + -0x110)) ^
       CONCAT44(uVar9,uVar9);
  uVar21 = uVar32 ^ uVar21 ^ uVar27 ^ *(ulonglong *)(lVar2 + -0x110) ^
           *(ulonglong *)(lVar2 + -0xa88);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar21;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x409344de)) =
       (uVar32 ^ uVar21) >> ((bVar26 ^ 0x20) & 0x3f) ^ uVar46;
  uVar21 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *puVar17 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x8a8)) << ((bVar26 ^ 0x1c) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x409340b6)) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0x6d0)) + (uVar21 ^ *(ulonglong *)(lVar2 + -0x318));
  uVar30 = CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x40934486)) =
       (uVar46 ^ *(ulonglong *)(lVar2 + -0x628) | uVar21 ^ *(ulonglong *)(lVar2 + -0x318)) ^ uVar30;
  uVar31 = DAT_18267158c ^ 0xaab6f7fb;
  uVar39 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(uint *)(lVar2 + -0x678) = uVar5 ^ 0x76419d81 | DAT_18267158c ^ 0x71b6c178;
  uVar21 = *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xa341dba6));
  *(uint *)(lVar2 + -0x328) = uVar31 + *(int *)(lVar2 + -0x47c);
  uVar21 = (uVar21 ^ uVar27) - (CONCAT44(uVar4,uVar4) ^ 0x9e5741845554d8df);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar21 ^ uVar39;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x409343e6)) =
       uVar21 - (uVar30 ^ *(ulonglong *)(lVar2 + -0x670)) ^ uVar20;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar1 ^ uVar45;
  return;
}



############ FUN_ 180ed72d0 size=3188 ############

void FUN_180ed72d0(void)

{
  uint uVar1;
  int iVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  byte *pbVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte *pbVar29;
  uint uVar30;
  ulonglong uVar31;
  byte local_res10;
  
  uVar11 = DAT_1826715ac;
  uVar10 = DAT_1826715a8;
  uVar9 = DAT_18267159c;
  uVar8 = DAT_182671584;
  uVar7 = DAT_182671580;
  uVar6 = DAT_18267156c;
  uVar5 = DAT_182671568;
  lVar3 = DAT_182671560;
  uVar23 = (ulonglong)DAT_182671584;
  uVar25 = (ulonglong)DAT_1826715ac;
  uVar26 = (ulonglong)DAT_1826715a8;
  uVar31 = (ulonglong)DAT_182671568;
  uVar15 = DAT_1826715ac & DAT_1826715a8;
  bVar14 = (byte)DAT_18267159c;
  uVar17 = DAT_182671580 + DAT_182671594;
  uVar27 = DAT_182671568;
  if ((DAT_18267159c & 1) == 0) {
    uVar27 = DAT_18267159c;
  }
  uVar30 = DAT_182671584 | DAT_18267156c;
  uVar16 = *(uint *)(&DAT_182611e78 + DAT_182671938) ^ DAT_182671584;
  uVar18 = (ulonglong)DAT_18267156c;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar18 ^ 0x56894096) + (longlong)DAT_182671938);
  pbVar21 = (byte *)(*(ulonglong *)(DAT_182671560 + -0xca8) ^ (ulonglong)DAT_182671668);
  bVar20 = (byte)DAT_182671568;
  DAT_182671574 = uVar17;
  DAT_182671588 = uVar30;
  DAT_182671598 = uVar15;
  DAT_1826715a0 = uVar27;
  *(byte **)(DAT_182671560 + -0x738) =
       pbVar21 + (CONCAT44(uVar17,DAT_182671594) ^ 0xb606f4b6c77202cd);
  *pbVar21 = *(byte *)(lVar3 + -0x9cc) ^ (byte)DAT_182671690;
  uVar19 = (ulonglong)DAT_1826715b0;
  *(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0xee94f826)) = bVar20 ^ 0x80;
  lVar4 = DAT_182671560;
  uVar22 = *(ulonglong *)(lVar3 + -0x960);
  *(undefined8 *)(lVar3 + -0x108) = *(undefined8 *)(lVar3 - (uVar19 ^ 0x895eb0ae));
  *(ulonglong *)(lVar3 + -0x5e8) = uVar22;
  uVar24 = (ulonglong)DAT_18267168c;
  *(ulonglong *)(lVar4 + -0x9b0) = *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xbebfcbc1)) ^ uVar24;
  lVar3 = DAT_182671560;
  uVar19 = (ulonglong)DAT_182671734;
  *(ulonglong *)(DAT_182671560 + -0x710) = uVar19 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x9e8) =
       (CONCAT44(uVar11,uVar10) ^ 0xc357db80d2e68b73) >>
       ((byte)*(undefined8 *)(lVar3 + -0x638) & 0x3f);
  bVar20 = (byte)DAT_182671864;
  *(ulonglong *)(lVar3 + -0x9b8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0x7e3e7f3e)) ^ uVar19) + 1;
  *(byte *)(lVar3 + -0x831) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x7e3e7f3e)) ^ uVar19) ^ bVar20 ^
       (byte)DAT_182671718;
  *(byte *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0x454f7ca9)) = (byte)uVar15 ^ 0xe8;
  lVar3 = DAT_182671560;
  *(undefined1 *)(*(ulonglong *)(DAT_182671560 + -0xa28) ^ (ulonglong)DAT_182671870) = 99;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0xaa639a2)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671594 ^ 0xc7720b7c)) ^ uVar24) +
       (CONCAT44(uVar8,uVar30) ^ 0x454f7f6857cf7fef);
  uVar22 = (ulonglong)DAT_182671688;
  uVar19 = (ulonglong)DAT_182671640;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar25 ^ 0xcab735d6)) ^ uVar24) =
       bVar20 ^ *(byte *)(lVar4 + -0x831);
  *(undefined8 *)(lVar4 + -0xbe8) = *(undefined8 *)(lVar4 + -0x9c0);
  *(undefined1 *)(lVar4 + -0x831) = 199;
  *(undefined8 *)(lVar4 - (uVar31 ^ 0x7e3e757e)) = *(undefined8 *)(lVar4 + -0x9b8);
  pbVar21 = *(byte **)(lVar4 + -0xd50);
  *(ulonglong *)(lVar4 + -0x760) = (ulonglong)pbVar21 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x6b8) =
       CONCAT44(uVar6,uVar30) ^ *(ulonglong *)(lVar4 + -0xbf0) ^ 0x312c575933ebbd7;
  *(ulonglong *)(lVar4 + -0x458) = *(ulonglong *)(lVar4 + -0xbe8) ^ uVar19;
  *(ulonglong *)(lVar4 + -0xa80) =
       (CONCAT44(uVar9,uVar10) ^ 0xe36e86acbf20683c) <<
       ((byte)*(undefined8 *)(lVar4 + -0x1d8) & 0x3f);
  bVar20 = (byte)uVar7;
  *(byte **)(lVar4 + -0xd28) = pbVar21 + 1;
  *(byte *)(lVar4 + -0x981) = *pbVar21 ^ (byte)DAT_182671654 ^ (byte)DAT_182671718;
  *(byte *)(lVar4 - ((ulonglong)uVar17 ^ 0xb606f457)) = bVar20 ^ 0x21;
  *(undefined1 *)(*(ulonglong *)(lVar4 - (uVar25 ^ 0xcab73116)) ^ (ulonglong)DAT_182671784) = 0xe0;
  *(ulonglong *)(lVar4 + -0xa0) =
       *(ulonglong *)(lVar4 - (uVar31 ^ 0x7e3e7a6e)) >>
       ((byte)*(undefined8 *)(lVar4 + -0x110) & 0x3f);
  *(ulonglong *)(lVar4 + -0x5b0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xbebfce91)) ^ uVar19) +
       (CONCAT44(uVar11,uVar27) ^ 0xcab73c667e3e782f);
  uVar24 = (ulonglong)DAT_1826716b0;
  *(byte *)(*(ulonglong *)(lVar4 + -0x458) ^ uVar19) =
       *(byte *)(lVar4 + -0x981) ^ (byte)DAT_182671654;
  *(byte *)(lVar4 + -0x981) = bVar20 ^ 0x8e;
  uVar12 = DAT_1826715b0;
  uVar22 = (ulonglong)DAT_1826715b0;
  *(undefined8 *)(lVar4 + -0x940) = *(undefined8 *)(lVar4 + -0x5b0);
  *(ulonglong *)(lVar4 + -0x688) = *(ulonglong *)(lVar4 + -0x8a8) >> ((bVar14 ^ 0xd2) & 0x3f);
  uVar22 = *(ulonglong *)(lVar4 - (uVar22 ^ 0x895ebabe));
  *(ulonglong *)(lVar4 + -0x398) = uVar22;
  *(ulonglong *)(lVar4 + -0x1d0) = *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xea6f8b2)) ^ uVar24;
  uVar13 = DAT_1826718a8;
  uVar19 = (ulonglong)DAT_1826718a8;
  iVar2 = *(int *)(lVar4 - ((ulonglong)uVar27 ^ 0x7e3e7a5a));
  *(ulonglong *)(lVar4 + -0xbd8) = uVar19 ^ uVar22;
  *(int *)(lVar4 + -0x754) = iVar2 + 0x7bb9b3e7;
  *(ulonglong *)(lVar4 + -0x80) =
       (CONCAT44(uVar30,uVar15) ^ 0x644e692fa43e2f4) -
       (CONCAT44(uVar9,DAT_182671594) ^ 0xac75c5fe608c878a);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xaa63312)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x895ebc4e)) ^ uVar19) +
       (CONCAT44(uVar8,uVar12) ^ 0x454f7f68895eb797);
  uVar22 = (ulonglong)DAT_182671680;
  *(byte *)(lVar4 + -0xe2) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xbd8) ^ uVar19) ^ (byte)DAT_1826716bc ^
       (byte)DAT_182671718;
  *(undefined1 *)(lVar4 + -0xd62) = 199;
  *(byte *)(*(ulonglong *)(lVar4 + -0x4a8) ^ uVar22) = (byte)uVar6 ^ 10;
  pbVar21 = (byte *)(*(ulonglong *)(lVar4 + -0x1d0) ^ uVar24);
  *(byte **)(lVar4 + -0xc70) = pbVar21 + (CONCAT44(uVar10,uVar5) ^ 0xea6f1f27e3e782f);
  *pbVar21 = *(byte *)(lVar4 + -0xe2) ^ (byte)DAT_1826716bc;
  *(ulonglong *)(lVar4 + -0xb08) = *(ulonglong *)(lVar4 + -0xc70);
  *(byte *)(lVar4 + -0xe2) = bVar20 ^ 100;
  uVar8 = DAT_18267177c;
  uVar24 = (ulonglong)DAT_18267177c;
  *(ulonglong *)(lVar4 + -0x260) = *(ulonglong *)(lVar4 + -0x370);
  uVar28 = (ulonglong)DAT_182671854;
  uVar22 = uVar24 ^ *(ulonglong *)(lVar4 + -0x370);
  *(ulonglong *)(lVar4 + -0x140) = uVar28 ^ *(ulonglong *)(lVar4 + -0xc70);
  *(ulonglong *)(lVar4 + -0x8d8) = uVar22;
  bVar14 = (byte)DAT_182671650;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x7e3e7c0e)) =
       (CONCAT44(uVar11,uVar9) ^ 0xcab73c66bebfcac8) + (uVar8 ^ uVar22);
  local_res10 = (byte)uVar30;
  bVar20 = *(byte *)(*(ulonglong *)(lVar4 + -0x8d8) ^ uVar24) ^ bVar14 ^ (byte)DAT_182671718;
  *(byte *)(lVar4 + -0xd81) = (byte)DAT_1826715b0 ^ 0x77;
  uVar22 = (ulonglong)DAT_182671708;
  *(byte *)(lVar4 + -0x3d6) = bVar20;
  uVar19 = CONCAT44(DAT_182671594,uVar10);
  *(byte *)(*(ulonglong *)(lVar4 + -0x330) ^ uVar22) = local_res10 ^ 0x5a;
  pbVar21 = (byte *)(uVar28 ^ *(ulonglong *)(lVar4 + -0x140));
  *(byte **)(lVar4 + -0x7c8) = pbVar21 + (uVar19 ^ 0xc77202cc0ea6f1f3);
  *(ulonglong *)(lVar4 + -0x510) =
       CONCAT44(uVar5,uVar17) ^ 0xf858a1b6118f4806 | *(ulonglong *)(lVar4 + -0x688);
  *pbVar21 = bVar14 ^ *(byte *)(lVar4 + -0x3d6);
  uVar19 = (ulonglong)DAT_182671894;
  *(byte *)(lVar4 + -0x3d6) = (byte)uVar6 ^ 0x6e;
  lVar3 = DAT_182671560;
  *(undefined1 *)(lVar4 + -0x701) = 0xf9;
  *(undefined8 *)(lVar4 - ((ulonglong)uVar27 ^ 0x7e3e7a06)) = *(undefined8 *)(lVar4 + -0x7c8);
  uVar22 = (ulonglong)DAT_182671890;
  *(longlong *)(lVar3 + -0x600) =
       *(longlong *)(lVar3 - (uVar23 ^ 0x454f7a78)) << ((local_res10 ^ 0xcc) & 0x3f);
  uVar17 = DAT_182671594 ^ 0xce852419;
  *(ulonglong *)(lVar3 + -0x4d0) = *(ulonglong *)(lVar3 + -0x420);
  *(uint *)(lVar3 + -0x47c) = uVar17 + 0xf75c0ea3;
  *(ulonglong *)(lVar3 + -0x4f8) = *(ulonglong *)(lVar3 + -0x228) ^ uVar19;
  uVar17 = DAT_1826715ac ^ 0x7f3b9e73;
  *(ulonglong *)(lVar3 + -0x950) = uVar22 ^ *(ulonglong *)(lVar3 + -0x420);
  *(uint *)(lVar3 - ((ulonglong)uVar30 ^ 0x57cf7cc6)) =
       uVar17 << ((byte)*(undefined4 *)(lVar3 + -0x754) & 0x1f);
  bVar14 = (byte)DAT_1826717b8;
  *(ulonglong *)(lVar3 + -0xc40) = (*(ulonglong *)(lVar3 + -0x950) ^ uVar22) + 1;
  bVar20 = (byte)DAT_182671584;
  *(byte *)(lVar3 + -0xbf2) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar25 ^ 0xcab73536)) ^ uVar22) ^ bVar14 ^
       (byte)DAT_182671718;
  *(undefined1 *)(lVar3 - (uVar31 ^ 0x7e3e78a3)) = 0x3d;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc68) ^ (ulonglong)DAT_182671658) = bVar20 ^ 0x67;
  uVar17 = DAT_182671574;
  lVar3 = DAT_182671560;
  pbVar21 = (byte *)(DAT_182671560 + -0xbf2);
  pbVar29 = (byte *)(uVar19 ^ *(ulonglong *)(DAT_182671560 + -0x4f8));
  *(byte **)(DAT_182671560 + -0x780) = pbVar29 + (CONCAT44(uVar7,uVar10) ^ 0xee94f1ea0ea6f1f3);
  *pbVar29 = bVar14 ^ *pbVar21;
  *(byte *)(lVar3 + -0xbf2) = local_res10 ^ 0x6d;
  *(uint *)(lVar3 + -0x968) = (uVar17 ^ 0x704a5d3e) >> (((byte)uVar17 ^ 0xb4) & 0x1f);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar15 ^ 0xaa63502)) = *(undefined8 *)(lVar3 + -0x780);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x5689433e)) =
       CONCAT44(uVar9,uVar6) ^ *(ulonglong *)(lVar3 + -0x688) ^ 0x23b0327c92f710a2;
  *(undefined8 *)(lVar3 - (uVar26 ^ 0xea6f812)) = *(undefined8 *)(lVar3 + -0xc40);
  uVar22 = (ulonglong)DAT_1826717cc;
  uVar25 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0x288) = *(ulonglong *)(lVar3 + -0x560) ^ uVar22;
  *(uint *)(lVar3 + -0x3c8) =
       *(uint *)(lVar3 + -0x328) >>
       (((byte)*(undefined4 *)(lVar3 - (uVar25 ^ 0x895eb5ea)) ^ (byte)uVar13) & 0x1f);
  bVar14 = (byte)DAT_182671718;
  uVar17 = DAT_182671594;
  uVar26 = (ulonglong)DAT_1826717dc;
  *(ulonglong *)(lVar3 + -0x618) = *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xee94f80a)) ^ uVar26;
  bVar20 = (byte)DAT_1826715b0;
  *(byte *)(lVar3 - ((ulonglong)uVar17 ^ 0xc772051d)) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xc7720a14)) ^ uVar24) ^ bVar14;
  *(byte *)(lVar3 - ((ulonglong)uVar27 ^ 0x7e3e7fff)) = bVar20 ^ 0xf7;
  *(ulonglong *)(lVar3 + -0x20) =
       (CONCAT44(uVar7,uVar5) ^ 0xee94f1ea7e3e782f) + (uVar26 ^ *(ulonglong *)(lVar3 + -0x618));
  *(byte *)(lVar3 + -0x9fa) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0x454f7970)) ^ uVar26) ^ (byte)DAT_182671698 ^
       bVar14;
  *(byte *)(lVar3 + -0x641) = (byte)DAT_1826715a8 ^ 0x99;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x770) ^ (ulonglong)DAT_182671700) = 0x27;
  pbVar21 = (byte *)(uVar22 ^ *(ulonglong *)(lVar3 + -0x288));
  uVar26 = (ulonglong)DAT_182671624;
  *(byte **)(lVar3 + -0x530) = pbVar21 + (CONCAT44(uVar11,uVar11) ^ 0xcab73c66cab73c67);
  *pbVar21 = *(byte *)(lVar3 - (uVar31 ^ 0x7e3e71d4)) ^ (byte)DAT_182671698;
  *(byte *)(lVar3 + -0x9fa) = local_res10 ^ 0x99;
  *(ulonglong *)(lVar3 + -0x2a0) = *(ulonglong *)(lVar3 + -0x3f0) | 0x592aa3bc1a9093e9;
  uVar23 = (ulonglong)DAT_1826717bc;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar17 ^ 0xc77203fc)) =
       *(undefined8 *)(lVar3 - ((ulonglong)uVar17 ^ 0xc77207fc));
  *(undefined8 *)(lVar3 + -0x4d8) = *(undefined8 *)(lVar3 - (uVar25 ^ 0x895eb7b6));
  *(ulonglong *)(lVar3 + -0x7b0) = *(ulonglong *)(lVar3 + -0x130) ^ uVar26;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0xaa6394a)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x57cf7b36)) ^ uVar23;
  pbVar21 = (byte *)(*(ulonglong *)(lVar3 + -0x928) ^ uVar23);
  *(ulonglong *)(lVar3 + -0x5c8) =
       CONCAT44(uVar5,uVar11) ^ CONCAT44(uVar9,uVar10) ^ 0xbc22a5f1b1e791f4;
  *(byte **)(lVar3 + -0x168) = pbVar21 + 1;
  uVar23 = (ulonglong)DAT_18267178c;
  *(byte *)(lVar3 + -0x3d7) = (byte)DAT_182671870 ^ bVar14 ^ *pbVar21;
  bVar14 = (byte)DAT_182671594;
  *(byte *)(lVar3 + -0x9cb) = (byte)uVar15 ^ 0x6e;
  *(byte *)(*(ulonglong *)(lVar3 + -0xa40) ^ uVar23) = bVar14 ^ 0x4c;
  *(ulonglong *)(lVar3 + -0x4e8) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0x7b0)) + (CONCAT44(uVar9,uVar6) ^ 0xbebfcac956894087);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar30) * 4) = uVar16;
  return;
}



############ FUN_ 180e60b50 size=4771 ############

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

void FUN_180e60b50(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  byte *pbVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_78;
  
  uVar7 = DAT_1826716e0;
  uVar8 = DAT_18267159c;
  uVar9 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar26 = (ulonglong)DAT_18267159c;
  uVar30 = (ulonglong)DAT_182671578;
  uVar34 = (ulonglong)DAT_18267159c;
  uVar27 = DAT_182671578 ^ DAT_18267159c;
  uVar22 = *(uint *)(&DAT_182611e70 + (uVar26 ^ 0x4f75ca3d) + (longlong)DAT_182671acc) ^
           DAT_182671578;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671acc);
  uVar28 = (ulonglong)DAT_182671578;
  uVar32 = (ulonglong)DAT_1826716e0;
  uVar23 = (ulonglong)DAT_182671578;
  uVar43 = (ulonglong)uVar27;
  DAT_1826715ac = uVar27;
  *(byte *)(DAT_182671560 - (uVar34 ^ 0x4f75c93c)) =
       (byte)DAT_182671830 ^ *(byte *)(DAT_182671560 + -0x600) ^ (byte)DAT_1826715e4;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x99f5cdac)) =
       (CONCAT44(uVar9,uVar8) ^ 0x99f5ccac4f75ca64) + *(longlong *)(lVar2 + -0x8c8) ^ uVar32;
  *(byte *)(*(ulonglong *)(lVar2 + -0x100) ^ uVar32) =
       *(byte *)(lVar2 - ((ulonglong)uVar27 ^ 0xd6800590)) ^ (byte)DAT_182671718 ^
       (byte)DAT_1826715e4;
  uVar14 = DAT_182671740;
  lVar3 = DAT_182671560;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar27,uVar9) ^ 0xd680069999f5cca6) +
            (CONCAT44(uVar8,uVar27) ^ 0x4f75ca35d6800699) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x5f8) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671714,DAT_182671714);
  uVar6 = DAT_1826716f0;
  uVar5 = DAT_1826715c0;
  lVar2 = DAT_182671560;
  uVar23 = (ulonglong)DAT_1826716f0;
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       *(ulonglong *)(lVar3 - (uVar34 ^ 0x4f75c63d)) ^ CONCAT44(uVar14,uVar14) ^
       CONCAT44(uVar8,uVar9) ^ 0xd09f7be9d39bc24d;
  uVar41 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x898) = CONCAT44(uVar6,uVar6) ^ *puVar25 ^ uVar41;
  bVar35 = (byte)DAT_18267172c;
  uVar36 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(undefined8 *)(lVar2 - (uVar28 ^ 0x99f5c954)) = 0xacdd230be0232e0;
  lVar2 = DAT_182671560;
  uVar23 = ((ulonglong)(uVar6 >> 0x10) | uVar23 << 0x10) ^
           *(ulonglong *)(DAT_182671560 + -0x898) >> 0x10 ^ uVar36;
  bVar29 = bVar35 ^ (byte)uVar23 ^ (byte)DAT_1826715f8;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar23;
  *(byte *)(lVar2 - ((ulonglong)uVar27 ^ 0xd6800110)) = bVar29;
  lVar2 = DAT_182671560;
  bVar29 = (byte)uVar27;
  uVar23 = (ulonglong)DAT_182671778;
  *(uint *)(DAT_182671560 + -0x374) = (uVar27 ^ 0xed8e8b8b) << ((bVar29 ^ 0x95) & 0x1f);
  pbVar24 = (byte *)((CONCAT44(uVar9,uVar9) ^ 0x99f5ccac99f5ccfe) + *(longlong *)(lVar2 + -0x8c8));
  bVar21 = *(byte *)(lVar2 + -0x789) ^ (byte)DAT_1826715f8 ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0xc90) = (ulonglong)pbVar24 ^ uVar23;
  *pbVar24 = bVar21;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x99f5c404)) =
       (CONCAT44(uVar8,uVar8) ^ 0x4d45fca25403bf98) >> ((bVar35 ^ *(byte *)(lVar2 + -0xbf0)) & 0x3f)
  ;
  uVar16 = DAT_182671598;
  uVar37 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar34 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x4f75cd8d)) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar9,uVar27) ^ 0x99f5ccacd6800693) +
       (CONCAT44(uVar8,uVar9) ^ 0x4f75ca3599f5ccac) * 0xc) * 8 ^ uVar37;
  uVar10 = DAT_182671750;
  uVar6 = DAT_182671574;
  uVar32 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar2 + -0x9f8) =
       *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar2 + -0x7b8)) ^ uVar32 ^ uVar41;
  *(ulonglong *)(lVar2 + -0x7b8) = CONCAT44(uVar8,uVar8) ^ 0xba9b6248b9bb4c5e;
  uVar17 = DAT_182671790;
  uVar5 = DAT_182671568;
  lVar3 = DAT_182671560;
  uVar38 = CONCAT44(uVar10,uVar10);
  uVar23 = *(ulonglong *)(DAT_182671560 + -0x9f8);
  *(ulonglong *)(lVar2 + -0x240) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xd6800e99)) ^ CONCAT44(DAT_182671568,uVar6) ^
       uVar38 ^ 0x177cda9272a5f535;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar32 ^ uVar23) >> ((bVar29 ^ 0x81) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  uVar11 = DAT_182671580;
  uVar6 = DAT_182671570;
  bVar21 = (byte)DAT_182671638;
  bVar35 = (byte)uVar17 ^ bVar21 ^ *(byte *)(lVar3 + -0x6b8);
  bVar40 = (byte)DAT_182671580;
  *(ulonglong *)(lVar3 + -0x638) = *(ulonglong *)(lVar3 + -0x240) >> ((bVar29 ^ 0x87) & 0x3f);
  *(byte *)(lVar3 + -0x7a1) = bVar35;
  uVar13 = DAT_1826718b4;
  uVar10 = DAT_1826715a0;
  pbVar24 = (byte *)((CONCAT44(uVar9,uVar6) ^ 0x99f5ccacffffffac) + *(longlong *)(lVar3 + -0x8c8));
  uVar33 = (ulonglong)DAT_1826718b4;
  *(ulonglong *)(lVar3 + -0xa30) = (ulonglong)pbVar24 ^ (ulonglong)DAT_18267163c;
  uVar6 = DAT_18267173c;
  bVar29 = bVar21 ^ bVar35 ^ (byte)DAT_182671718;
  uVar32 = (ulonglong)DAT_18267173c;
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0x6b8)) >> ((bVar40 ^ 0xba) & 0x3f);
  *pbVar24 = bVar29;
  uVar23 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar44 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x368) =
       *(longlong *)(lVar3 + -0xb98) + (CONCAT44(uVar8,uVar10) ^ 0x4f75ca357a366115) * 8 ^ uVar23;
  uVar12 = DAT_182671584;
  uVar39 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x99f5c8ac)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar26 ^ 0x4f75c95d)) ^ uVar23) ^ uVar44 ^ uVar41;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xfffef46f)) =
       *(ulonglong *)(lVar3 - (uVar34 ^ 0xbc378b2a)) >> 0x20 ^ CONCAT44(uVar13,uVar13) ^ uVar32;
  lVar2 = DAT_182671560;
  uVar23 = (ulonglong)DAT_1826717b0;
  *(byte *)(lVar3 + -0x429) = (byte)uVar13 ^ *(byte *)(lVar3 + -0x1f0) ^ (byte)uVar7;
  uVar6 = DAT_18267156c;
  uVar42 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x7a366adf)) =
       (CONCAT44(uVar11,uVar11) ^ 0x4bb53a004bb53f4) + *(longlong *)(lVar2 + -0x8c8) ^ uVar23;
  uVar13 = DAT_1826715a8;
  *(byte *)(*(ulonglong *)(lVar2 + -0xbc0) ^ uVar23) =
       (byte)uVar7 ^ *(byte *)(lVar2 + -0x429) ^ (byte)DAT_182671718;
  uVar14 = DAT_182671590;
  uVar7 = DAT_18267157c;
  uVar32 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(lVar2 + -0x230) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar6,uVar13) ^ 0x367a1f611f613670) +
       (CONCAT44(uVar11,uVar10) ^ 0x4bb53a07a36611f) * 0xc) * 8 ^ uVar32;
  uVar23 = CONCAT44(uVar14,DAT_182671568);
  uVar34 = CONCAT44(DAT_182671654,DAT_182671654);
  *(ulonglong *)(lVar2 + -0xa0) =
       (CONCAT44(uVar6,uVar7) ^ 0xda09cadca9833997) << (((byte)DAT_182671568 ^ 0x72) & 0x3f);
  uVar32 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar43 ^ 0xd68004a9)) ^ uVar32) ^ uVar34 ^ uVar41;
  *(ulonglong *)(lVar2 + -0x110) = uVar32;
  *(ulonglong *)(lVar2 + -0x230) = CONCAT44(uVar11,uVar8) ^ 0xf79fbca8921dba01;
  uVar18 = DAT_182671600;
  uVar13 = DAT_18267158c;
  bVar29 = (byte)DAT_18267158c;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671580 ^ 0x4bb5588)) =
       uVar34 ^ uVar32 | *(ulonglong *)(lVar2 + -0xa60);
  lVar2 = DAT_182671560;
  bVar21 = (byte)uVar18 ^ (byte)DAT_182671718;
  uVar32 = (uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x110)) >> ((bVar29 ^ 0x52) & 0x3f) ^
           CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar32;
  *(byte *)(lVar2 + -0x659) = bVar21 ^ (byte)uVar32;
  uVar7 = DAT_182671588;
  uVar32 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x99f5ce4c)) =
       *(longlong *)(lVar2 - (uVar43 ^ 0xd6800e51)) +
       (CONCAT44(uVar13,DAT_182671574) ^ 0x1f61367a42012e58) ^ (ulonglong)uVar17;
  uVar8 = DAT_1826715b0;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0x7a3663fd)) ^ (ulonglong)uVar17) =
       *(undefined1 *)(lVar2 - (uVar32 ^ 0x7a366744));
  uVar19 = DAT_182671768;
  uVar17 = DAT_1826715a4;
  lVar3 = DAT_182671560;
  uVar28 = CONCAT44(DAT_182671878,DAT_182671878);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a8 ^ 0x1f6132da)) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar7,uVar8) ^ 0xffffffff367a1f6b) +
       (CONCAT44(uVar12,uVar9) ^ 0xfffef59f99f5ccac) * 0xc) * 8 ^ uVar28;
  uVar32 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xfffffab7)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x4a0) ^ uVar28) ^ uVar32 ^ uVar41;
  *(undefined8 *)(lVar2 - (uVar39 ^ 0xfffef13f)) = 0xd42b9519663e6267;
  lVar4 = DAT_182671560;
  *(uint *)(lVar2 + -0x844) =
       (uVar17 ^ 0xcf6837e8) << ((byte)*(undefined4 *)(lVar2 + -0x504) & 0x1f);
  uVar7 = DAT_1826715b0;
  uVar15 = DAT_182671594;
  uVar8 = DAT_182671574;
  uVar34 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar4 + -0x548) ^ uVar32) >> (((byte)DAT_182671594 ^ 0x1d) & 0x3f) ^
       CONCAT44(uVar19,uVar19);
  uVar32 = CONCAT44(uVar15,DAT_1826715a8);
  *(ulonglong *)(lVar3 + -0x2a0) =
       CONCAT44(uVar7,DAT_1826715a8) ^ 0x773d8f50a8e1f180 | uVar32 ^ 0xcf609480ac0a7799;
  *(byte *)(lVar3 + -0xcca) =
       *(byte *)(lVar3 - (uVar34 ^ 0x4201281d)) ^ (byte)uVar19 ^ (byte)DAT_182671858;
  uVar10 = DAT_18267157c;
  uVar7 = DAT_182671570;
  uVar31 = (ulonglong)DAT_182671614;
  uVar34 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xd6800fe9)) = *(longlong *)(lVar3 + -0x8c8) + 0x56U ^ uVar31;
  *(byte *)(*(ulonglong *)(lVar3 + -0x970) ^ uVar31) =
       *(byte *)(lVar3 - (uVar34 ^ 0xfffff335)) ^ (byte)DAT_182671858 ^ (byte)DAT_182671718;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) + 0x50 +
            (CONCAT44(uVar10,uVar8) ^ 0x300a112242012e0d) * 0x60);
  uVar34 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar3 + -0x570) = (ulonglong)puVar25 ^ uVar28;
  uVar20 = DAT_182671844;
  *(ulonglong *)(lVar3 + -0x318) = *puVar25 ^ uVar34 ^ uVar41;
  *(ulonglong *)(uVar44 ^ *(ulonglong *)(lVar3 + -0x410)) =
       CONCAT44(uVar11,uVar14) ^ 0xef2bc0927e687d8f;
  *(ulonglong *)(lVar3 + -0x410) = CONCAT44(uVar9,DAT_182671580) ^ 0xc555b2fc38ab9d1a;
  *(ulonglong *)(lVar3 + -0x570) = CONCAT44(uVar13,uVar10) ^ 0x33dc97a6808901b7;
  bVar29 = (byte)uVar20 ^ (byte)DAT_1826716dc;
  uVar34 = (uVar34 ^ *(ulonglong *)(lVar3 + -0x318)) >> (((byte)uVar7 ^ 199) & 0x3f) ^
           CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar34;
  *(byte *)(lVar3 - (uVar39 ^ 0xfffef906)) = bVar29 ^ (byte)uVar34;
  uVar8 = DAT_18267157c;
  uVar39 = (ulonglong)DAT_18267157c;
  pbVar24 = (byte *)((CONCAT44(uVar13,uVar14) ^ 0x1f61367a635d777a) + *(longlong *)(lVar3 + -0x8c8))
  ;
  bVar29 = *(byte *)(lVar3 + -0xc99) ^ (byte)DAT_1826716dc ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar3 + -0x208) = (ulonglong)pbVar24 ^ (ulonglong)DAT_18267187c;
  *pbVar24 = bVar29;
  uVar19 = DAT_1826718c8;
  uVar15 = DAT_18267181c;
  uVar7 = DAT_182671574;
  uVar31 = (ulonglong)DAT_182671574;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar16,uVar6) ^ 0xbc378f2a367a1f6a) +
            (CONCAT44(uVar11,uVar8) ^ 0x4bb53a0300a1122) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x70) = (ulonglong)puVar25 ^ CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar34 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar3 + -0x1d8) = *puVar25 ^ uVar34 ^ uVar41;
  bVar29 = (byte)uVar15 ^ (byte)DAT_1826716cc;
  uVar28 = (ulonglong)DAT_1826717a4;
  uVar34 = *(ulonglong *)(lVar3 - (uVar26 ^ 0x4f75cbed)) ^ CONCAT44(uVar15,uVar15) ^ uVar34;
  *(ulonglong *)(lVar3 + -0x3f0) = uVar34;
  *(byte *)(lVar3 - (uVar31 ^ 0x42012978)) = bVar29 ^ (byte)uVar34;
  pbVar24 = (byte *)(*(longlong *)(lVar3 - (uVar30 ^ 0x99f5c464)) +
                    (CONCAT44(uVar12,uVar7) ^ 0xfffef59f42012e55));
  *(ulonglong *)(lVar3 + -0x558) = (ulonglong)pbVar24 ^ uVar28;
  lVar2 = DAT_182671560;
  *pbVar24 = *(byte *)(lVar3 + -0x775) ^ (byte)DAT_1826716cc ^ (byte)DAT_182671718;
  uVar15 = DAT_1826717cc;
  uVar19 = DAT_182671724;
  bVar21 = (byte)DAT_1826715a0;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar2 - ((ulonglong)uVar17 ^ 0xccac926d)) +
            (CONCAT44(uVar17,DAT_1826715a0) ^ 0xccac99f57a366114) * 8);
  *(ulonglong *)(lVar2 + -0x218) = (ulonglong)puVar25 ^ uVar37;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x688) = *puVar25 ^ uVar34 ^ uVar41;
  uVar6 = DAT_182671570;
  bVar29 = (byte)uVar19 ^ (byte)DAT_182671664;
  uVar28 = (ulonglong)DAT_182671570;
  uVar34 = (*(ulonglong *)(lVar2 - (uVar42 ^ 0x367a19e9)) ^ uVar34) >> ((bVar21 ^ 0x17) & 0x3f) ^
           CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar2 + -0x510) = uVar34;
  *(byte *)(lVar2 - (uVar28 ^ 0xfffffd0e)) = bVar29 ^ (byte)uVar34;
  *(ulonglong *)(lVar2 + -0xa80) =
       0x239bc6ff3b166e9d >> (((byte)uVar20 ^ *(byte *)(lVar2 + -0x9e8)) & 0x3f);
  pbVar24 = (byte *)(*(longlong *)(lVar2 + -0x8c8) + 0x59);
  *(ulonglong *)(lVar2 + -0x300) = (ulonglong)pbVar24 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x80) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0xd6800d69)) ^ uVar36) -
       (CONCAT44(uVar5,uVar9) ^ 0x1e36ba004e5ecf7b);
  uVar15 = DAT_182671638;
  uVar5 = DAT_1826715cc;
  uVar10 = DAT_1826715b0;
  uVar7 = DAT_18267158c;
  lVar2 = DAT_182671560;
  uVar28 = (ulonglong)DAT_18267158c;
  uVar33 = (ulonglong)DAT_1826715b0;
  *pbVar24 = *(byte *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x7a3663ec)) ^
             (byte)DAT_182671718 ^ (byte)DAT_182671664;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) + 0x58 +
            (CONCAT44(uVar12,uVar7) ^ 0xfffef59f1f61367a) * 0x60);
  *(ulonglong *)(lVar2 + -0x6a0) = (ulonglong)puVar25 ^ CONCAT44(uVar5,uVar5);
  uVar34 = *puVar25 ^ uVar38 ^ uVar41;
  *(ulonglong *)(lVar2 + -0x3b8) = uVar34;
  uVar31 = CONCAT44(DAT_1826715a8,uVar7);
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x367a19b1)) =
       ((ulonglong)(DAT_182671750 >> 0x10) | (ulonglong)DAT_182671750 << 0x10) ^ uVar34 >> 0x10 ^
       CONCAT44(uVar15,uVar15);
  lVar2 = DAT_182671560;
  bVar29 = (byte)uVar15 ^ *(byte *)(DAT_182671560 + -0x6d0) ^ (byte)DAT_1826717c8;
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(DAT_182671560 + -0x510)) >>
       (((byte)uVar18 ^ *(byte *)(DAT_182671560 + -0xa88)) & 0x3f);
  local_78 = (byte)uVar9;
  *(byte *)(lVar2 - (uVar30 ^ 0x99f5c12e)) = bVar29;
  *(ulonglong *)(lVar2 + -0x600) =
       (CONCAT44(uVar17,uVar8) ^ 0x2816dd678e4c6f28) << ((local_78 ^ 0xa9) & 0x3f);
  uVar34 = (ulonglong)DAT_18267189c;
  bVar29 = (byte)DAT_182671594;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0xfffff26f)) =
       (uVar31 ^ 0x1f61367a1f613620) + *(longlong *)(lVar2 + -0x8c8) ^ uVar34;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x1f613a72)) =
       (CONCAT44(uVar27,uVar10) ^ 0x39c5d606640f0dda) >> ((bVar29 ^ 6) & 0x3f);
  uVar5 = DAT_18267178c;
  *(byte *)(*(ulonglong *)(lVar2 + -0xd90) ^ uVar34) =
       *(byte *)(lVar2 + -0xd82) ^ (byte)DAT_182671718 ^ (byte)DAT_1826717c8;
  puVar25 = (ulonglong *)
            ((uVar23 ^ 0x635d772daa4e1543) * 0x60 +
            *(longlong *)(lVar2 - (uVar26 ^ 0x4f75c1ad)) + 0x58);
  uVar23 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar2 + -0x68) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(lVar2 + -0x898) = *puVar25 ^ uVar41 ^ uVar23;
  uVar26 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0x300a19ba)) ^ uVar23) >> (((byte)uVar6 ^ 0xe7) & 0x3f)
           ^ CONCAT44(uVar5,uVar5);
  uVar23 = (ulonglong)DAT_18267177c;
  bVar21 = (byte)uVar5 ^ (byte)DAT_182671604 ^ (byte)uVar26;
  *(byte *)(lVar2 + -0x642) = bVar21;
  pbVar24 = (byte *)(*(longlong *)(lVar2 + -0x8c8) + 0x5b);
  bVar21 = bVar21 ^ (byte)DAT_182671718 ^ (byte)DAT_182671604;
  *(ulonglong *)(lVar2 + -0xb68) = (ulonglong)pbVar24 ^ uVar23;
  uVar15 = DAT_18267166c;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar26;
  *pbVar24 = bVar21;
  uVar5 = DAT_1826715b8;
  uVar7 = DAT_182671580;
  bVar21 = (byte)DAT_182671580;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) + 0x58 +
            (CONCAT44(uVar6,DAT_182671568) ^ 0xffffffffaa4e1543) * 0x60);
  *(ulonglong *)(lVar2 + -0xd60) = (ulonglong)puVar25 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x800) = (uVar32 ^ 0x5b8a90ed2807e443) + 0xc10d9a6df55fba5;
  uVar41 = *puVar25 ^ uVar41;
  bVar35 = (byte)uVar5 ^ (byte)DAT_1826715ec;
  *(ulonglong *)(lVar2 + -0x9f8) = uVar41 ^ CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar41 = uVar41 >> (bVar21 & 0x3f);
  *(ulonglong *)(lVar2 + -0x240) = uVar41 ^ CONCAT44(uVar5,uVar5);
  *(byte *)(lVar2 + -0x3f2) = bVar35 ^ *(byte *)(lVar2 + -0x240);
  *(ulonglong *)(lVar2 + -0x638) = CONCAT44(uVar14,uVar7) ^ 0x18933e029d231054 | uVar41;
  *(ulonglong *)(lVar2 + -0x6b8) = 0x5495d6b9cbe7c638 >> ((bVar29 ^ 7) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar27) * 4) = uVar22;
  return;
}



############ FUN_ 180f1fee0 size=4520 ############

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

void FUN_180f1fee0(void)

{
  byte bVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint *puVar19;
  byte *pbVar20;
  uint *puVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  byte bVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte local_c8;
  
  uVar11 = DAT_1826716a4;
  uVar6 = DAT_182671640;
  uVar3 = DAT_1826715ac;
  uVar5 = DAT_18267159c;
  uVar4 = DAT_18267158c;
  uVar23 = DAT_182671584;
  uVar36 = DAT_182671574;
  uVar25 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar39 = (ulonglong)DAT_18267158c;
  uVar22 = (ulonglong)DAT_182671584;
  uVar15 = (ulonglong)DAT_182671570;
  uVar30 = (ulonglong)DAT_182671568;
  DAT_1826715a4 = DAT_182671580 << 0x10 | DAT_182671580 >> 0x10;
  uVar9 = DAT_18267158c - DAT_182671598;
  uVar10 = DAT_182671584 & 7;
  if (uVar10 < 4) {
    if (uVar10 < 2) {
      uVar31 = DAT_182671570;
      if (uVar10 == 0) {
        uVar31 = DAT_182671584;
      }
    }
    else {
      uVar31 = DAT_1826715a8;
      if (uVar10 < 3) {
        uVar31 = DAT_182671568;
      }
    }
  }
  else if (uVar10 < 6) {
    uVar31 = DAT_18267157c;
    if (uVar10 < 5) {
      uVar31 = DAT_182671590;
    }
  }
  else {
    uVar31 = DAT_1826715ac;
    if (uVar10 < 7) {
      uVar31 = DAT_182671594;
    }
  }
  uVar28 = (ulonglong)DAT_18267159c;
  uVar38 = (ulonglong)DAT_182671574;
  uVar16 = DAT_182671574 ^ DAT_18267159c;
  uVar10 = *(uint *)(&DAT_182611e80 + DAT_182671a1c);
  uVar27 = *(uint *)(&DAT_182611e78 + DAT_182671a1c) ^ DAT_18267159c;
  DAT_18267156c = uVar9;
  DAT_1826715b0 = uVar16;
  DAT_1826715b4 = uVar31;
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       *(longlong *)(DAT_182671560 + -0xc08) -
       (CONCAT44(DAT_182671574,DAT_1826715a0) ^ 0x6648f9315bd9bc42);
  uVar34 = DAT_18267167c;
  *(uint *)(lVar2 - (uVar30 ^ 0xfffffc2b)) =
       (*(uint *)(lVar2 + -0x844) ^ DAT_1826717d4) -
       (*(uint *)(lVar2 - (uVar22 ^ 0x13aca78e)) ^ uVar6) ^ uVar11;
  uVar32 = DAT_1826715a8;
  *(uint *)(lVar2 + -0x504) =
       (DAT_1826716cc ^ *(uint *)(lVar2 + -0x328)) * (uVar11 ^ *(uint *)(lVar2 + -0x3d4)) ^
       DAT_18267187c;
  uVar33 = DAT_182671658;
  uVar12 = (ulonglong)uVar31;
  *(uint *)(lVar2 + -0x754) =
       (uVar34 ^ *(uint *)(lVar2 + -0x678)) * (uVar3 ^ 0x4bce9995) ^ DAT_182671658;
  uVar17 = DAT_182671854;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xfffff7ff)) = CONCAT44(uVar31,uVar32) ^ 0x10a4f32bfbde3236;
  *(uint *)(lVar2 + -0x27c) =
       (*(uint *)(lVar2 + -0x754) ^ uVar33) + (*(uint *)(lVar2 + -0x504) ^ DAT_18267187c) ^
       DAT_18267170c;
  *(uint *)(lVar2 + -0x968) =
       (*(uint *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0xe8231aee)) ^ DAT_18267170c) <<
       (((byte)DAT_18267157c ^ 0x9f) & 0x1f) ^ uVar17;
  uVar13 = (ulonglong)uVar16;
  uVar14 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar2 - (uVar13 ^ 0x6abb27f5)) =
       *(ulonglong *)
        (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0x999649ee)) ^
        CONCAT44(DAT_1826716cc,DAT_1826716cc)) ^ CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar3 = DAT_182671738;
  *(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x8c557c2c)) =
       (*(uint *)(lVar2 - (uVar14 ^ 0xa053b978)) ^ DAT_18267170c) >> 0x13 ^ DAT_182671688;
  uVar11 = DAT_1826716cc ^ *(uint *)(lVar2 + -0x328);
  *(uint *)(lVar2 + -0x874) =
       (*(uint *)(lVar2 + -0x968) ^ uVar17 | *(uint *)(lVar2 + -0x910) ^ DAT_182671688) ^ uVar17;
  uVar14 = (ulonglong)DAT_182671598;
  *(uint *)(lVar2 + -0x964) = (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) + uVar11 ^ uVar3;
  *(byte *)(lVar2 - (uVar30 ^ 0xffffffbe)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar14 ^ 0x930bcc1e)) ^ (ulonglong)_DAT_182671838) ^
       (byte)DAT_182671694;
  uVar11 = DAT_1826715a4;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0xbb04a42f)) =
       uVar3 ^ uVar33 ^ *(uint *)(lVar2 + -0x964);
  bVar1 = (byte)DAT_182671714;
  uVar32 = DAT_1826716dc;
  uVar34 = _DAT_1826716c0;
  puVar19 = (uint *)(lVar2 - (uVar39 ^ 0x1f6136f6));
  *puVar19 = DAT_1826716e0 ^ uVar17 ^ *(uint *)(lVar2 + -0x874);
  uVar3 = DAT_18267157c;
  *(uint *)(lVar2 + -0x374) = *(uint *)(lVar2 + -0x47c) ^ uVar34 ^ uVar33;
  *(uint *)(lVar2 + -0x844) = uVar5 ^ 0x42d4b1b9 | DAT_182671594 ^ 0xb4c3c27;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671598 ^ 0x930bc27a)) =
       *(uint *)(lVar2 - (uVar30 ^ 0xffffff73)) ^ uVar32 ^ DAT_1826716e0;
  pbVar20 = (byte *)((CONCAT44(uVar23,uVar16) ^ 0x13aca4ca6abb258e) + *(longlong *)(lVar2 + -0x8f0))
  ;
  *(ulonglong *)(lVar2 + -0xd20) = (ulonglong)pbVar20 ^ (ulonglong)DAT_1826718b4;
  uVar33 = DAT_182671834;
  *(byte *)(lVar2 - ((ulonglong)uVar3 ^ 0x6a3a57d3)) = *pbVar20 ^ bVar1 ^ (byte)DAT_182671694;
  uVar3 = DAT_1826715a8;
  uVar23 = DAT_182671588;
  local_c8 = (byte)uVar31;
  *(ulonglong *)(lVar2 + -0x400) = 0x69685bc0a335d8ed >> ((local_c8 ^ 0xd1) & 0x3f);
  uVar37 = uVar23 ^ uVar31;
  uVar17 = (uint)(*(byte *)(lVar2 - (uVar30 ^ 0xfffff3be)) ^ bVar1);
  DAT_182671578 = uVar37;
  *(uint *)(lVar2 + -0x3d4) = uVar17 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x9e8) = (ulonglong)uVar23 << 0x30 ^ 0xba91000000000000;
  uVar17 = uVar17 << (((byte)uVar23 ^ 0xf9) & 0x1f) ^ DAT_182671718;
  *(uint *)(lVar2 + -0x678) =
       (uVar32 ^ *(uint *)(lVar2 + -0x344)) + (uVar37 ^ 0x6410fac2) ^ DAT_182671820;
  uVar23 = DAT_182671594;
  uVar30 = (ulonglong)DAT_182671594;
  *(uint *)(lVar2 + -0x504) = uVar17;
  puVar21 = (uint *)(lVar2 - (uVar30 ^ 0x99964c9a));
  *puVar21 = (*(uint *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x92182590)) ^ DAT_182671820) -
             (uVar17 ^ DAT_182671718) ^ DAT_182671764;
  uVar32 = DAT_182671650;
  uVar17 = uVar5 ^ DAT_182671594;
  DAT_182671568 = uVar17;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x8a25e910)) =
       (CONCAT44(uVar17,uVar23) ^ 0x3acb6427c8400519) >>
       ((byte)*(undefined8 *)(lVar2 + -0x9e8) & 0x3f);
  uVar23 = (uVar33 ^ *(uint *)(lVar2 + -0x3d4)) * 0xb ^ DAT_182671810;
  *(uint *)(lVar2 + -0x27c) =
       (*(uint *)(lVar2 - ((ulonglong)uVar5 ^ 0x8a25eb54)) ^ DAT_182671764) *
       (*(uint *)(lVar2 + -0x374) ^ uVar34) ^ uVar32;
  *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0x13b3aea6)) = uVar23;
  *(byte *)(lVar2 + -0x41) =
       *(byte *)((ulonglong)DAT_1826715f4 ^ *(ulonglong *)(lVar2 + -0xc80)) ^ (byte)DAT_182671694;
  uVar23 = DAT_182671830;
  uVar7 = DAT_18267179c;
  uVar32 = (uVar32 ^ *(uint *)(lVar2 + -0x27c)) + (*(uint *)(lVar2 + -0x968) ^ DAT_182671810);
  *(uint *)(lVar2 + -0x910) = uVar32 ^ DAT_182671830;
  uVar30 = *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x8c557d94));
  bVar1 = (byte)DAT_182671598;
  *(uint *)(lVar2 + -0x328) = uVar32 * 0x2000 ^ DAT_1826715fc;
  *(ulonglong *)(lVar2 + -0x3f0) = uVar30 >> (((byte)uVar7 ^ *(byte *)(lVar2 + -0xa80)) & 0x3f);
  uVar23 = (*(uint *)(lVar2 - (uVar15 ^ 0xfffff6ef)) ^ uVar23) >> ((bVar1 ^ 0x2d) & 0x1f) ^
           DAT_182671884;
  *(uint *)(lVar2 + -0x964) = uVar23;
  uVar32 = DAT_1826715ac;
  uVar30 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar2 - ((ulonglong)uVar37 ^ 0x6de7d463)) =
       (*(uint *)(lVar2 - (uVar28 ^ 0x8a25ef28)) ^ DAT_1826715fc | uVar23 ^ DAT_182671884) ^
       _DAT_182671618;
  uVar15 = CONCAT44(uVar31,DAT_182671594);
  *(uint *)(lVar2 + -0x47c) =
       (*(uint *)(lVar2 - (uVar30 ^ 0x4bce9ae1)) ^ uVar34) +
       (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^ DAT_18267189c;
  *(ulonglong *)(lVar2 + -0x3b8) = uVar15 ^ 0x8143f5c1c208c713 | *(ulonglong *)(lVar2 + -0x9e8);
  bVar1 = (byte)DAT_1826716ec;
  uVar33 = DAT_18267166c;
  uVar23 = DAT_182671588;
  uVar15 = (ulonglong)DAT_18267173c;
  bVar26 = (byte)uVar36;
  *(uint *)(lVar2 + -0x844) =
       *(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x8c557140)) ^ DAT_1826716a8 ^ DAT_18267189c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x8c557fb4)) =
       (CONCAT44(DAT_1826715a0,DAT_182671580) ^ 0x7f39cdff08f8f668) >> ((bVar26 ^ 0xaa) & 0x3f);
  *(uint *)(lVar2 + -0x8c) = DAT_1826715c8 ^ _DAT_182671618 ^ *(uint *)(lVar2 + -0x874);
  *(uint *)(lVar2 + -0x344) = *(uint *)(lVar2 + -0x844) ^ DAT_182671670 ^ DAT_1826716a8;
  *(uint *)(lVar2 + -0x678) = uVar33 ^ DAT_1826715c8 ^ *puVar19;
  *(ulonglong *)(lVar2 + -0xd20) =
       (CONCAT44(uVar3,uVar25) ^ 0xffffffffffffffe9) + *(longlong *)(lVar2 + -0x8f0) ^ uVar15;
  uVar25 = DAT_182671590;
  *(byte *)(lVar2 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0x4bce94b5)) ^ uVar15) ^ bVar1 ^
       (byte)DAT_182671694;
  *(ulonglong *)(lVar2 + -0x80) =
       (CONCAT44(uVar5,uVar25) ^ 0xeb39d8e683904f82) >>
       ((byte)*(undefined8 *)(lVar2 + -0xa0) & 0x3f);
  *(uint *)(lVar2 - (uVar12 ^ 0xfffffafb)) = (bVar1 ^ *(byte *)(lVar2 + -0xc41)) ^ uVar6;
  uVar34 = DAT_1826716cc;
  uVar25 = DAT_1826715e4;
  uVar15 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x8c5575bc)) |
       CONCAT44(DAT_182671594,DAT_182671588) ^ 0xd3da8d4349124238;
  uVar24 = (*(uint *)(lVar2 + -0x504) ^ uVar6) << (((byte)DAT_1826715a0 ^ 0x87) & 0x1f) ^
           DAT_182671600;
  uVar33 = (uVar33 ^ *(uint *)(lVar2 + -0x678)) + (DAT_1826715a4 ^ 0xb2f38686) ^ DAT_182671750;
  *(uint *)(lVar2 + -0x3d4) = uVar24;
  uVar24 = uVar24 ^ DAT_182671600;
  *(uint *)(lVar2 + -0x754) = uVar33;
  *(uint *)(lVar2 + -0x27c) = (uVar33 ^ DAT_182671750) - uVar24 ^ uVar25;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x13aca2ca)) =
       *(ulonglong *)(lVar2 + -0x270) ^ *(ulonglong *)(lVar2 + -0x3b8);
  *(uint *)(lVar2 + -0x968) =
       (uVar25 ^ *(uint *)(lVar2 + -0x27c)) * (DAT_182671670 ^ *(uint *)(lVar2 + -0x344)) ^
       DAT_1826718a8;
  *(uint *)(lVar2 - (uVar13 ^ 0x6abb2c95)) =
       (*(uint *)(lVar2 + -0x504) ^ uVar6) * (uVar17 ^ 0x13b3a7d8) ^ DAT_18267171c;
  uVar25 = DAT_182671574;
  uVar33 = uVar31 & 7;
  *(uint *)(lVar2 + -0x328) =
       (*(uint *)(lVar2 - (uVar22 ^ 0x13acada2)) ^ DAT_1826718a8) +
       (*(uint *)(lVar2 + -0x910) ^ DAT_18267171c) ^ uVar34;
  uVar6 = DAT_182671678;
  if (uVar33 < 4) {
    if (uVar33 < 2) {
      uVar24 = uVar9;
      if (uVar33 == 0) {
        uVar24 = uVar31;
      }
    }
    else {
      uVar24 = uVar32;
      if (uVar33 < 3) {
        uVar24 = uVar16;
      }
    }
  }
  else if (uVar33 < 6) {
    uVar24 = DAT_182671594;
    if (uVar33 < 5) {
      uVar24 = uVar17;
    }
  }
  else {
    uVar24 = DAT_18267158c;
    if (uVar33 < 7) {
      uVar24 = uVar25;
    }
  }
  DAT_1826715a0 = uVar24;
  *(longlong *)(lVar2 - ((ulonglong)uVar17 ^ 0x13b3adae)) =
       *(longlong *)(lVar2 + -0x80) << ((bVar26 ^ 0x91) & 0x3f);
  uVar34 = uVar34 ^ *(uint *)(lVar2 + -0x328);
  uVar33 = *(uint *)(lVar2 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar2 + -0x964) = uVar34 << 0xd ^ _DAT_1826715dc;
  uVar35 = uVar34 >> ((local_c8 ^ 0xec) & 0x1f) ^ DAT_18267185c;
  *(uint *)(lVar2 + -0x374) = uVar35;
  uVar34 = DAT_182671724;
  *(uint *)(lVar2 + -0x47c) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x6abb2ce1)) ^ _DAT_1826715dc | uVar35 ^ DAT_18267185c) ^
       DAT_182671724;
  *(byte *)(lVar2 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x1f613f62)) ^ (ulonglong)DAT_182671870
                ) ^ (byte)DAT_182671694;
  uVar33 = uVar33 + (DAT_182671670 ^ *(uint *)(lVar2 + -0x344)) ^ DAT_182671820;
  *(uint *)(lVar2 + -0x874) = uVar33;
  *(uint *)(lVar2 - (uVar30 ^ 0x4bce91d1)) = uVar33 ^ DAT_182671698 ^ DAT_182671820;
  *puVar19 = *(uint *)(lVar2 + -0x47c) ^ DAT_182671890 ^ uVar34;
  uVar33 = *(uint *)(lVar2 + -0x8c) ^ DAT_182671770 ^ DAT_182671890;
  *(uint *)(lVar2 + -0x678) = *(uint *)(lVar2 - (uVar15 ^ 0x92182bac)) ^ uVar6 ^ DAT_182671698;
  *puVar21 = uVar33;
  bVar1 = (byte)DAT_1826716b0;
  uVar33 = DAT_1826716ac;
  pbVar20 = (byte *)((CONCAT44(uVar24,uVar24) ^ 0x1f61367a1f61367b) + *(longlong *)(lVar2 + -0x8f0))
  ;
  *(ulonglong *)(lVar2 + -0xc80) = (ulonglong)pbVar20 ^ (ulonglong)DAT_18267183c;
  *(byte *)(lVar2 + -0xc41) = *pbVar20 ^ bVar1 ^ (byte)DAT_182671694;
  *(uint *)(lVar2 - (uVar38 ^ 0xe09eca51)) =
       (*(byte *)(lVar2 - (uVar13 ^ 0x6abb29c4)) ^ bVar1) ^ uVar33;
  uVar8 = DAT_1826717fc;
  uVar29 = (uVar33 ^ *(uint *)(lVar2 + -0x3d4)) << 0x11 ^ DAT_18267180c;
  *(longlong *)(lVar2 + -0x6b8) =
       *(longlong *)(lVar2 - ((ulonglong)uVar17 ^ 0x13b3a43e)) + -0x724990cc5af47dbe;
  uVar18 = *(uint *)(lVar2 - ((ulonglong)uVar24 ^ 0x1f61312e)) ^ DAT_182671770;
  uVar35 = DAT_1826715ac ^ 0x4239bf40;
  *(uint *)(lVar2 + -0x504) = uVar29;
  uVar29 = uVar29 ^ DAT_18267180c;
  *(uint *)(lVar2 + -0x27c) = uVar18 + uVar35 ^ uVar34;
  uVar35 = DAT_1826717d8;
  uVar29 = (*(uint *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0x999649b2)) ^ uVar34) - uVar29;
  *(uint *)(lVar2 + -0x968) = uVar29 ^ uVar8;
  uVar34 = DAT_182671588 ^ 0x921823e9;
  *(uint *)(lVar2 + -0x910) = uVar29 * (uVar6 ^ *(uint *)(lVar2 + -0x678)) ^ DAT_182671720;
  uVar22 = (ulonglong)DAT_182671594;
  *(uint *)(lVar2 + -0x328) = (uVar33 ^ *(uint *)(lVar2 + -0x3d4)) * uVar34 ^ uVar35;
  uVar33 = DAT_18267162c;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x99964236)) =
       *(ulonglong *)(lVar2 + -0x3b8) >> ((byte)*(undefined8 *)(lVar2 + -0x6b8) & 0x3f);
  *(uint *)(lVar2 - (uVar12 ^ 0xfffff69b)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x8c557614)) ^ uVar35) +
       (*(uint *)(lVar2 + -0x910) ^ DAT_182671720) ^ uVar33;
  uVar34 = (uVar33 ^ *(uint *)(lVar2 + -0x964)) << (((byte)uVar25 ^ 0x88) & 0x1f);
  *(uint *)(lVar2 + -0x374) = (uVar35 ^ *(uint *)(lVar2 + -0x328)) << (((byte)uVar17 ^ 200) & 0x1f);
  *(uint *)(lVar2 + -0x344) = uVar34 ^ DAT_182671784;
  uVar25 = (*(uint *)(lVar2 - (uVar30 ^ 0x4bce90f1)) ^ uVar33) >> (((byte)uVar16 ^ 0x96) & 0x1f) ^
           DAT_1826716d0;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (CONCAT44(uVar23,uVar9) ^ 0x4615d939d4c3f2db) <<
       ((byte)*(undefined8 *)(lVar2 + -0x80) & 0x3f);
  *(uint *)(lVar2 + -0x874) = uVar25;
  uVar33 = (*(uint *)(lVar2 - ((ulonglong)uVar24 ^ 0x1f613e0e)) ^ DAT_1826716d0 | uVar34) ^
           DAT_182671764;
  *(uint *)(lVar2 + -0x47c) = uVar33;
  uVar23 = (*(uint *)(lVar2 - (uVar39 ^ 0x1f6135b2)) ^ DAT_182671624) +
           (uVar6 ^ *(uint *)(lVar2 + -0x678)) ^ DAT_1826717a8;
  uVar25 = _DAT_1826715d8 ^ DAT_1826717a8;
  uVar33 = uVar33 ^ DAT_182671898 ^ DAT_182671764;
  *(uint *)(lVar2 + -0x754) = uVar33;
  *(uint *)(lVar2 + -0x844) = uVar23;
  *(uint *)(lVar2 + -0x8c) = uVar25 ^ uVar23;
  uVar25 = DAT_182671598;
  uVar39 = (ulonglong)DAT_182671748;
  uVar22 = (ulonglong)DAT_182671598;
  *(uint *)(lVar2 + -0x27c) =
       *(uint *)(lVar2 - (uVar12 ^ 0xffffff73)) ^ DAT_182671620 ^ _DAT_1826715d8;
  uVar6 = DAT_18267164c;
  uVar23 = DAT_1826715d4 ^ DAT_182671898;
  *(ulonglong *)(lVar2 + -0x6d0) =
       (CONCAT44(uVar16,uVar4) ^ 0xb4225ded0acb162e) + (CONCAT44(uVar17,uVar9) ^ 0x2d160ae9417c72f8)
  ;
  *(uint *)(lVar2 + -0x504) = uVar23 ^ uVar33;
  uVar23 = DAT_1826715fc;
  uVar33 = DAT_1826715fc & 0xff;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267157c ^ 0x6a3a56b2)) =
       (CONCAT44(uVar25,uVar36) ^ 0x930bc13ee09ec985) * 0x20 +
       (CONCAT44(uVar31,uVar37) ^ 0xffffffff6de7dc1b) + *(longlong *)(lVar2 + -0x8f0) ^ uVar39;
  *(byte *)(lVar2 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xd20) ^ uVar39) ^ (byte)DAT_182671694 ^ (byte)uVar23;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0xe82311fa)) =
       *(byte *)(lVar2 - (uVar38 ^ 0xe09ec9c4)) ^ uVar33 ^ DAT_1826715cc;
  uVar36 = (*(uint *)(lVar2 + -0x504) ^ DAT_1826715d4) + (DAT_182671594 ^ 0x90616d1b);
  uVar39 = CONCAT44(uVar32,DAT_182671580);
  *(uint *)(lVar2 + -0x3d4) = uVar36 ^ uVar6;
  *(ulonglong *)(lVar2 + -0x898) =
       (CONCAT44(uVar4,uVar5) ^ 0x1a3488198225be7f) + (uVar39 ^ 0x57eefffe885786d5);
  uVar25 = (*(uint *)(lVar2 - (uVar22 ^ 0x930bc856)) ^ DAT_1826715cc) <<
           (((byte)uVar9 ^ 0x2d) & 0x1f) ^ DAT_18267170c;
  *(uint *)(lVar2 + -0x910) = uVar25;
  uVar25 = uVar25 ^ DAT_18267170c;
  *(ulonglong *)(lVar2 + -0x548) =
       (CONCAT44(uVar3,uVar11) ^ 0x430863dcc38ee876) << ((bVar26 ^ 0x87) & 0x3f);
  *(uint *)(lVar2 + -0x328) = uVar36 - uVar25 ^ DAT_182671790;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar10 ^ uVar16) * 4) = uVar27;
  return;
}



############ FUN_ 180e67830 size=5679 ############

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

void FUN_180e67830(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  ulonglong *puVar22;
  byte bVar23;
  uint uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong *puVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar50;
  ulonglong uVar51;
  uint uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  byte local_118;
  byte local_e8;
  byte local_d8;
  byte local_90;
  ulonglong uVar49;
  
  uVar19 = DAT_1826718b0;
  uVar18 = DAT_18267182c;
  uVar17 = DAT_1826715b4;
  uVar16 = DAT_1826715ac;
  uVar14 = DAT_1826715a4;
  uVar13 = DAT_182671594;
  uVar12 = DAT_18267158c;
  uVar10 = DAT_182671570;
  uVar9 = DAT_18267156c;
  uVar33 = (ulonglong)DAT_18267158c;
  uVar30 = (ulonglong)DAT_182671570;
  uVar55 = (ulonglong)DAT_18267156c;
  uVar29 = DAT_1826715ac * DAT_1826715a8;
  uVar35 = (ulonglong)DAT_182671594;
  uVar57 = (ulonglong)DAT_1826715a4;
  uVar39 = (ulonglong)DAT_1826715b4;
  uVar52 = DAT_18267156c | DAT_1826715a4;
  DAT_182671578 = DAT_182671570 << 0x10 | DAT_182671570 >> 0x10;
  uVar48 = DAT_182671594 ^ DAT_1826715b4;
  uVar49 = (ulonglong)uVar48;
  uVar24 = DAT_182671588 * DAT_18267158c;
  uVar38 = (ulonglong)uVar24;
  uVar44 = *(uint *)(&DAT_182611e78 + DAT_182671ae4) ^ DAT_182671588;
  uVar21 = *(uint *)(&DAT_182611e80 + DAT_182671ae4) ^ DAT_18267158c;
  uVar51 = CONCAT44(DAT_18267180c,DAT_18267180c);
  DAT_182671580 = uVar52;
  DAT_182671584 = uVar29;
  DAT_18267159c = uVar48;
  DAT_1826715a0 = uVar24;
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar24 ^ 0xb2a8befc)) ^
       CONCAT44(DAT_182671880,DAT_182671880)) -
       (CONCAT44(DAT_182671594,DAT_1826715b4) ^ 0xf09f5aba1b1681ef) ^ uVar51;
  uVar27 = DAT_1826715e8;
  uVar28 = (ulonglong)DAT_1826715e8;
  uVar36 = CONCAT44(uVar18,uVar18);
  uVar45 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x2a0);
  puVar22 = (ulonglong *)(DAT_182671560 + -0x6d0);
  uVar40 = CONCAT44(uVar19,uVar19) ^ uVar36 ^ uVar45 ^ *(ulonglong *)(DAT_182671560 + -0x898) ^
           *puVar1;
  *puVar22 = uVar40;
  *(ulonglong *)(DAT_182671560 + -0x240) =
       CONCAT44(uVar48,DAT_1826715a8) ^ uVar40 ^ uVar45 ^ 0x23af80f122919c2e;
  uVar18 = DAT_182671720;
  uVar47 = (ulonglong)uVar29;
  uVar37 = CONCAT44(DAT_182671600,DAT_182671600);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x628);
  *puVar2 = *(ulonglong *)(DAT_182671560 - (uVar47 ^ 0x7617fd74)) >> 0x10 ^
            ((ulonglong)(uVar27 >> 0x10) | uVar28 << 0x10) ^ uVar37;
  lVar7 = DAT_182671560;
  uVar28 = CONCAT44(uVar18,uVar18);
  bVar31 = (byte)uVar16;
  puVar3 = (ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0xa341d236)) =
       (uVar40 ^ uVar45) << ((bVar31 ^ 0x66) & 0x3f) ^ uVar28;
  uVar27 = DAT_182671578;
  uVar41 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  uVar40 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671578 ^ 0xfc02e50a)) =
       (uVar28 ^ *puVar3 | uVar37 ^ *puVar2) ^ uVar41;
  puVar4 = (ulonglong *)(lVar7 + -0xa88);
  uVar28 = (uVar36 ^ *(ulonglong *)(lVar7 + -0x898)) - (CONCAT44(uVar52,uVar9) ^ 0x343f7aafc52c3b1a)
  ;
  puVar5 = (ulonglong *)(lVar7 + -0xbf0);
  *puVar5 = uVar28 ^ CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar18 = DAT_182671664;
  lVar8 = DAT_182671560;
  puVar32 = (ulonglong *)(lVar7 + -0x670);
  uVar53 = CONCAT44(DAT_182671770,DAT_182671770);
  *puVar32 = uVar28 - (uVar41 ^ *puVar4) ^ uVar53;
  uVar15 = DAT_182671730;
  uVar11 = DAT_182671588;
  uVar45 = CONCAT44(uVar18,uVar18);
  uVar50 = (ulonglong)DAT_182671588;
  puVar6 = (ulonglong *)(lVar8 + -0x110);
  uVar28 = (ulonglong)DAT_182671730;
  *(ulonglong *)(lVar8 - (uVar49 ^ 0x8d0e7930)) =
       (CONCAT44(uVar16,uVar14) ^ 0xcc50726308fc6292) + (uVar41 ^ *puVar4) ^ uVar45;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar56 = CONCAT44(DAT_182671848,DAT_182671848);
  puVar42 = (ulonglong *)(lVar8 - (uVar50 ^ 0x6a6a5aea));
  *puVar42 = uVar56 ^ uVar37 ^ uVar45 ^ *puVar1 ^ *puVar6;
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar8 + -0x240)) << 0x20;
  uVar41 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *puVar22 = *(ulonglong *)(lVar8 + -0x240) >> 0x20 ^ uVar41 ^ uVar28;
  *puVar2 = uVar37 ^ CONCAT44(DAT_182671890,DAT_182671890);
  uVar18 = DAT_182671630;
  puVar43 = (ulonglong *)(lVar8 - (uVar38 ^ 0xb2a8be5c));
  uVar45 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  uVar37 = uVar41 ^ *puVar43 | uVar37;
  *puVar3 = uVar37 ^ uVar45;
  uVar34 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar8 - (uVar30 ^ 0xef82f49a)) = (uVar56 ^ *puVar6) - uVar37 ^ uVar34;
  uVar18 = DAT_1826717b0;
  uVar41 = CONCAT44(DAT_182671884,DAT_182671884);
  uVar28 = *puVar32;
  puVar25 = (ulonglong *)(lVar8 - ((ulonglong)DAT_1826715a8 ^ 0x9057fcde));
  uVar37 = uVar53 ^ uVar51 ^ uVar28 ^ uVar41 ^ *puVar25;
  *puVar5 = uVar37;
  uVar46 = (uVar37 ^ uVar41) >> ((bVar31 ^ 0x76) & 0x3f);
  uVar37 = CONCAT44(uVar18,uVar18);
  puVar26 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x6a6a535a));
  *puVar4 = uVar46 ^ uVar37;
  local_90 = (byte)uVar9;
  uVar51 = (*puVar26 ^ uVar41) << ((local_90 ^ 0xdc) & 0x3f);
  *puVar1 = uVar51 ^ uVar37;
  lVar7 = DAT_182671560;
  uVar51 = uVar51 | uVar46;
  uVar41 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar46 = uVar51 ^ uVar56;
  uVar37 = *(ulonglong *)(DAT_182671560 + -0x898);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar46;
  *puVar2 = (uVar53 ^ uVar28) - uVar51 ^ uVar41;
  uVar51 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar46 = uVar56 ^ uVar37 ^ uVar46 ^ uVar51 ^ uVar34;
  *puVar22 = uVar46;
  uVar37 = CONCAT44(DAT_182671658,DAT_182671658);
  uVar28 = (uVar46 ^ uVar51) << 6;
  *puVar6 = (uVar46 ^ uVar51) >> (((byte)DAT_1826715a8 ^ 0x4c) & 0x3f) ^ uVar37;
  uVar18 = DAT_182671750;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar28 ^ CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar53 = CONCAT44(uVar18,uVar18);
  uVar28 = *(ulonglong *)(lVar7 - (uVar49 ^ 0x8d0e7a80)) ^ uVar37 | uVar28;
  *puVar5 = uVar28 ^ uVar53;
  uVar37 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *puVar4 = (*(ulonglong *)(lVar7 + -0x898) ^ uVar34) - uVar28 ^ uVar37;
  uVar28 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar7 - (uVar33 ^ 0xa341d38e)) =
       *(ulonglong *)(lVar7 - (uVar30 ^ 0xef82fa2a)) ^ uVar45 ^ uVar28 ^ uVar41 ^ *puVar3;
  lVar8 = DAT_182671560;
  *(uint *)(lVar7 - (uVar35 ^ 0xa1687ff4)) =
       (DAT_182671578 ^ 0xfcc11f12) - (DAT_1826715b4 ^ 0x2d0ae291);
  uVar34 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *puVar32 = (*puVar1 ^ uVar28) >> (bVar31 & 0x3f) ^ uVar34;
  uVar45 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar8 - (uVar38 ^ 0xb2a8bacc)) =
       (*(ulonglong *)(lVar8 - (uVar47 ^ 0x7617f904)) ^ uVar28) <<
       (((byte)DAT_1826715a8 ^ 0x5c) & 0x3f) ^ uVar45;
  uVar19 = DAT_182671748;
  uVar18 = DAT_182671714;
  uVar51 = CONCAT44(DAT_182671748,DAT_182671748);
  uVar28 = *(ulonglong *)(lVar8 + -0x240) ^ uVar45 | *puVar32 ^ uVar34;
  *puVar22 = uVar28 ^ uVar51;
  uVar46 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671560 - (uVar57 ^ 0xacee74de)) =
       (*(ulonglong *)(DAT_182671560 - (uVar33 ^ 0xa341d706)) ^ uVar41) - uVar28 ^ uVar46;
  lVar7 = DAT_182671560;
  uVar45 = CONCAT44(DAT_182671858,DAT_182671858);
  uVar41 = *puVar22 ^ uVar45 ^ uVar51 ^ uVar37 ^ *puVar4;
  local_e8 = (byte)uVar48;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar41;
  *puVar3 = (uVar41 ^ uVar45) >> ((local_e8 ^ 0xbe) & 0x3f) ^ uVar36;
  uVar28 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar7 - (uVar30 ^ 0xef82fa72)) = (uVar41 ^ uVar45) << 0x12 ^ uVar28;
  uVar57 = CONCAT44(DAT_182671650,DAT_182671650);
  uVar45 = uVar36 ^ *puVar3 | *puVar32 ^ uVar28;
  uVar28 = *puVar4;
  *puVar2 = uVar45 ^ uVar57;
  *puVar22 = (uVar37 ^ uVar28) - uVar45 ^ uVar57;
  uVar28 = CONCAT44(DAT_182671688,DAT_182671688);
  *puVar1 = *(ulonglong *)(lVar7 + -0x8a8) ^ uVar28 ^ uVar46 ^ uVar53 ^ *puVar5;
  puVar54 = (ulonglong *)(lVar7 - (uVar33 ^ 0xa341d9b6));
  bVar23 = (byte)uVar27;
  *puVar54 = 0xb293a88fedb7b;
  uVar18 = DAT_1826716c4;
  uVar37 = (*puVar1 ^ uVar28) >> ((bVar23 ^ 0x8e) & 0x3f);
  *puVar6 = uVar37 ^ CONCAT44(DAT_182671704,DAT_182671704);
  lVar7 = DAT_182671560;
  local_118 = (byte)uVar24;
  uVar45 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671560 + -0x240) =
       (*puVar1 ^ uVar28) << ((local_118 ^ 0xb8) & 0x3f) ^ uVar45;
  uVar18 = DAT_1826716f8;
  uVar41 = CONCAT44(DAT_182671810,DAT_182671810);
  uVar28 = *(ulonglong *)(lVar7 + -0x8a8);
  uVar37 = *(ulonglong *)(lVar7 - (uVar40 ^ 0xfc02edc2)) ^ uVar45 | uVar37;
  *puVar3 = uVar37 ^ uVar41;
  uVar34 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 - (uVar47 ^ 0x7617fdd4)) = (uVar28 ^ uVar46) - uVar37 ^ uVar34;
  uVar37 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar28 = *puVar22 ^ uVar37 ^ uVar41 ^ uVar57 ^ *puVar3;
  *puVar4 = uVar28;
  uVar41 = CONCAT44(DAT_182671760,DAT_182671760);
  *puVar5 = (uVar28 ^ uVar37) >> (((byte)uVar29 ^ 0xbd) & 0x3f) ^ uVar41;
  uVar45 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x77e4e2ce)) =
       (uVar37 ^ uVar28) << 0x27 ^ uVar45;
  lVar7 = DAT_182671560;
  uVar28 = *(ulonglong *)(DAT_182671560 + -0x898);
  *puVar1 = *(ulonglong *)(DAT_182671560 - (uVar50 ^ 0x6a6a5032)) ^ uVar45 |
            *(ulonglong *)(DAT_182671560 + -0x898) ^ uVar45;
  uVar15 = DAT_1826715a8;
  lVar8 = DAT_182671560;
  uVar36 = uVar28 ^ uVar45 | uVar41 ^ *puVar5;
  *puVar6 = uVar36 ^ CONCAT44(DAT_182671850,DAT_182671850);
  uVar20 = DAT_1826717f0;
  *(ulonglong *)(lVar7 + -0x240) =
       *(ulonglong *)(lVar7 - (uVar39 ^ 0x2c660698)) ^ uVar37 |
       CONCAT44(uVar15,uVar14) ^ 0x7635e8d4e441f96c;
  uVar18 = DAT_182671678;
  uVar28 = (*puVar22 ^ uVar57) - (CONCAT44(uVar11,uVar12) ^ 0x43f90d026482a709);
  *(ulonglong *)(lVar8 + -0x8a8) = uVar28 ^ CONCAT44(uVar20,uVar20);
  uVar45 = CONCAT44(uVar18,uVar18);
  *puVar3 = uVar28 - uVar36 ^ uVar45;
  uVar41 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *puVar1 = uVar36 - (CONCAT44(uVar13,uVar52) ^ 0xb8a4656f877b0588) ^ uVar41;
  uVar28 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar8 - (uVar55 ^ 0xe7d6d80c)) = uVar28 ^ *puVar32 ^ *puVar2 ^ uVar34 ^ uVar57;
  lVar7 = DAT_182671560;
  uVar36 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar28 ^ *puVar5) >> (((byte)uVar29 ^ 0x85) & 0x3f) ^ uVar36;
  uVar37 = (*(ulonglong *)(lVar7 - (uVar30 ^ 0xef82f7f2)) ^ uVar28) <<
           (((byte)uVar10 ^ 0x1d) & 0x3f);
  *puVar4 = uVar37 ^ CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(DAT_182671560 + -0x240) =
       (CONCAT44(uVar14,uVar16) ^ 0xf54db322a6adebb1) - (*puVar22 ^ uVar57);
  lVar7 = DAT_182671560;
  uVar37 = *puVar54 ^ uVar36 | uVar37;
  uVar57 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  uVar28 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar37 ^ uVar57;
  uVar18 = DAT_1826715cc;
  uVar36 = (*(ulonglong *)(lVar7 - (uVar35 ^ 0xa16871f0)) ^ uVar34) -
           (CONCAT44(uVar9,uVar24) ^ 0xb621fec685d83573);
  *puVar6 = uVar36 ^ uVar28;
  uVar34 = CONCAT44(uVar18,uVar18);
  uVar28 = *(ulonglong *)(lVar7 + -0x240);
  uVar36 = uVar36 - uVar37;
  uVar46 = uVar36 ^ uVar34;
  *puVar2 = uVar46;
  *puVar5 = uVar28 >> (((byte)uVar14 ^ 0x45) & 0x3f);
  uVar28 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *puVar22 = (*(ulonglong *)(lVar7 - (uVar33 ^ 0xa341d986)) ^ uVar57) +
             (CONCAT44(uVar15,uVar48) ^ 0x4f558244f63af457) ^ uVar28;
  uVar37 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar40 = *(ulonglong *)(lVar7 - (uVar40 ^ 0xfc02e952)) ^ uVar37 ^ uVar28 ^ uVar45 ^ *puVar3;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar40;
  *puVar4 = uVar36 - (CONCAT44(uVar11,uVar17) ^ 0x6288a86a840f9095);
  local_d8 = (byte)uVar13;
  uVar28 = (uVar40 ^ uVar37) >> ((local_d8 ^ 0x85) & 0x3f);
  uVar37 = (uVar40 ^ uVar37) << 0x3b;
  *puVar32 = uVar28 ^ uVar45;
  uVar18 = DAT_182671654;
  *puVar6 = uVar37 ^ CONCAT44(DAT_1826716b8,DAT_1826716b8);
  lVar7 = DAT_182671560;
  uVar28 = uVar28 | uVar37;
  uVar40 = CONCAT44(uVar18,uVar18);
  puVar54 = (ulonglong *)(DAT_182671560 - (uVar47 ^ 0x7617f9e4));
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar28 ^ uVar40;
  *puVar5 = (*puVar54 ^ uVar40) >> ((bVar31 ^ 0x47) & 0x3f);
  uVar18 = DAT_1826715fc;
  uVar36 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar7 + -0x8a8) = (uVar45 ^ *puVar3) - uVar28 ^ uVar36;
  uVar28 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 - (uVar30 ^ 0xef82fad2)) =
       *(ulonglong *)(lVar7 - (uVar38 ^ 0xb2a8ba2c)) ^ uVar28 ^ uVar34 ^ uVar41 ^ uVar46;
  *puVar4 = CONCAT44(uVar27,uVar24) ^ 0xc9fc206de304372d |
            CONCAT44(uVar14,uVar11) ^ 0x825548ea74a60f98;
  lVar7 = DAT_182671560;
  uVar45 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(DAT_182671560 - (uVar49 ^ 0x8d0e7308)) =
       (*puVar22 ^ uVar28) >> (((byte)DAT_1826715a8 ^ 0x53) & 0x3f) ^ uVar45;
  uVar37 = (*puVar22 ^ uVar28) << (((byte)uVar52 ^ 0xe5) & 0x3f);
  *puVar32 = uVar37 ^ CONCAT44(DAT_1826718ac,DAT_1826718ac);
  *(int *)(lVar7 + -0x774) = *(int *)(lVar7 + -0x328) + *(int *)(lVar7 + -0x274);
  uVar18 = DAT_182671784;
  uVar38 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar28 = *(ulonglong *)(lVar7 + -0x8a8);
  uVar45 = (uVar37 | *(ulonglong *)(lVar7 + -0x898) ^ uVar45) ^ uVar38;
  *puVar6 = uVar45;
  uVar37 = CONCAT44(uVar18,uVar18);
  uVar45 = uVar28 ^ uVar38 ^ uVar36 ^ uVar51 ^ uVar45;
  *puVar5 = (uVar34 ^ *puVar2) - (*(ulonglong *)(lVar7 - (uVar33 ^ 0xa341d03e)) ^ uVar38) ^ uVar37;
  *puVar3 = uVar45;
  uVar38 = CONCAT44(DAT_182671854,DAT_182671854);
  *puVar1 = (uVar45 ^ uVar51) >> ((bVar23 ^ 0x95) & 0x3f) ^ uVar38;
  uVar28 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *puVar4 = (uVar51 ^ uVar45) << (((byte)uVar12 ^ 7) & 0x3f) ^ uVar28;
  uVar41 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar7 - (uVar50 ^ 0x6a6a5e7a)) =
       (*(ulonglong *)(lVar7 - (uVar35 ^ 0xa1687520)) ^ uVar38 |
       *(ulonglong *)(lVar7 - (uVar47 ^ 0x7617f12c)) ^ uVar28) ^ uVar41;
  uVar38 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar27 = DAT_182671588 * DAT_1826715a8;
  *(ulonglong *)(lVar7 - (uVar39 ^ 0x2c660488)) =
       (*(ulonglong *)(lVar7 + -0x8a8) ^ uVar36) - (uVar41 ^ *puVar43) ^ uVar38;
  DAT_1826715b0 = uVar27;
  *puVar32 = 0xad2031831d23f346 >>
             ((*(byte *)(lVar7 - (uVar50 ^ 0x6a6a5bb2)) ^ (byte)uVar19) & 0x3f);
  uVar28 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715a8 ^ 0x9057f25e)) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar27 ^ 0x2b4cedac)) ^ uVar28 ^ uVar37 ^ uVar40 ^
       *(ulonglong *)(lVar7 + -0x240);
  uVar47 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  puVar54 = (ulonglong *)(lVar7 - (uVar50 ^ 0x6a6a59ba));
  *puVar54 = (uVar28 ^ *puVar2) >> (((byte)uVar27 ^ 0x74) & 0x3f) ^ uVar47;
  *puVar1 = (CONCAT44(uVar15,uVar27) ^ 0x7df63b39271ab6d5) >>
            (((byte)uVar19 ^ *(byte *)puVar3) & 0x3f);
  uVar28 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar27 ^ 0x2b4ce074)) ^ uVar28) << 0x18;
  *puVar4 = uVar28 ^ CONCAT44(DAT_182671818,DAT_182671818);
  lVar7 = DAT_182671560;
  uVar40 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *puVar25 = (uVar28 | uVar47 ^ *puVar54) ^ uVar40;
  uVar47 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *puVar32 = (*puVar26 ^ uVar37) -
             (*(ulonglong *)(lVar7 - ((ulonglong)uVar27 ^ 0x2b4ceef4)) ^ uVar40) ^ uVar47;
  uVar9 = DAT_1826715a8;
  uVar37 = CONCAT44(DAT_182671794,DAT_182671794);
  puVar54 = (ulonglong *)(lVar7 - (uVar50 ^ 0x6a6a5002));
  uVar30 = (ulonglong)DAT_1826715a8;
  *puVar42 = *puVar54 ^ *(ulonglong *)(lVar7 + -0x898) ^ uVar37 ^ uVar40 ^ uVar38;
  uVar18 = DAT_182671670;
  *puVar3 = (CONCAT44(uVar15,uVar9) ^ 0xa9d2febd9d6114f2) >> (((byte)uVar10 ^ 0x14) & 0x3f);
  lVar7 = DAT_182671560;
  uVar28 = CONCAT44(uVar18,uVar18);
  *puVar1 = (uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x240)) >> (((byte)uVar27 ^ 0x68) & 0x3f) ^
            uVar28;
  uVar37 = (uVar37 ^ *puVar42) << 0xc;
  *puVar2 = uVar37 ^ CONCAT44(DAT_182671758,DAT_182671758);
  uVar45 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar37 = *(ulonglong *)(lVar7 - ((ulonglong)uVar27 ^ 0x2b4ce4fc)) ^ uVar28 | uVar37;
  uVar40 = CONCAT44(DAT_182671774,DAT_182671774);
  uVar28 = *(ulonglong *)(lVar7 + -0x898);
  *puVar6 = uVar37 ^ uVar45;
  *(ulonglong *)(lVar7 - (uVar30 ^ 0x9057fefe)) = (uVar28 ^ uVar38) - uVar37 ^ uVar40;
  uVar38 = CONCAT44(DAT_182671754,DAT_182671754);
  *puVar5 = *puVar22 ^ uVar38 ^ uVar47 ^ uVar41 ^ *puVar32;
  uVar18 = DAT_182671874;
  *puVar54 = CONCAT44(uVar12,uVar16) ^ uVar40 ^ *puVar4 ^ 0x2d34fd03df1bbd33;
  uVar28 = *puVar5;
  uVar37 = *puVar5;
  uVar40 = CONCAT44(DAT_182671614,DAT_182671614);
  *puVar2 = (uVar45 ^ *puVar6) >> ((local_118 ^ 0xa9) & 0x3f);
  *puVar3 = (uVar38 ^ uVar28) >> ((local_90 ^ 0xc5) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  *puVar1 = (uVar38 ^ uVar37) << 7 ^ uVar40;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar21 * 4) = uVar44;
  return;
}



############ FUN_ 180edb5c0 size=5121 ############

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

void FUN_180edb5c0(void)

{
  ulonglong *puVar1;
  undefined8 *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  byte bVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_res18;
  byte local_res20;
  byte local_100;
  byte local_f0;
  byte local_d0;
  
  uVar14 = DAT_1826715b0;
  uVar13 = DAT_1826715a4;
  uVar12 = DAT_182671594;
  uVar11 = DAT_182671590;
  uVar10 = DAT_18267158c;
  uVar9 = DAT_182671580;
  uVar8 = DAT_182671570;
  uVar7 = DAT_182671568;
  lVar4 = DAT_182671560;
  uVar43 = (ulonglong)DAT_182671568;
  uVar32 = (ulonglong)DAT_182671594;
  uVar20 = ~DAT_182671568;
  uVar35 = (ulonglong)DAT_1826715b0;
  uVar3 = *(uint *)(&DAT_182611e78 + DAT_182671948);
  uVar46 = (ulonglong)DAT_182671580;
  DAT_182671578 = DAT_182671570 + DAT_1826715b0;
  uVar25 = DAT_18267158c | DAT_182671580;
  uVar28 = DAT_1826715a4 << 0x10 | DAT_1826715a4 >> 0x10;
  uVar23 = DAT_182671594 | DAT_182671590;
  uVar19 = *(uint *)(&DAT_182611e80 + DAT_182671948) ^ DAT_182671568;
  uVar34 = (ulonglong)DAT_182671578;
  DAT_182671574 = uVar23;
  DAT_182671588 = uVar28;
  DAT_18267159c = uVar20;
  DAT_1826715b4 = uVar25;
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0x29fde01b)) ^
       CONCAT44(DAT_182671690,DAT_182671690) ^ 0xb15d190fea06315f;
  uVar15 = DAT_1826717a8;
  lVar5 = DAT_182671560;
  puVar21 = (ulonglong *)(lVar4 - (uVar34 ^ 0x9f476906));
  uVar29 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  uVar41 = (*puVar21 ^ uVar29) >> (((byte)uVar8 ^ 0xc1) & 0x3f);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x898);
  uVar40 = (ulonglong)uVar11;
  uVar26 = (ulonglong)uVar23;
  bVar27 = (byte)(uVar13 >> 0x10);
  *(ulonglong *)(DAT_182671560 + -0xc08) = uVar41 ^ CONCAT44(DAT_182671668,DAT_182671668);
  uVar29 = (uVar29 ^ *puVar1) << ((bVar27 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar5 + -0x628) = uVar29 ^ CONCAT44(uVar15,uVar15);
  uVar16 = DAT_182671764;
  uVar15 = DAT_18267169c;
  lVar4 = DAT_182671560;
  local_100 = (byte)uVar12;
  *(ulonglong *)(DAT_182671560 + -0x638) =
       (CONCAT44(uVar10,uVar9) ^ 0x88b4ad6511a0abd4) >> ((local_100 ^ 0xaf) & 0x3f);
  uVar41 = uVar41 | uVar29;
  uVar47 = CONCAT44(uVar15,uVar15);
  uVar29 = uVar41 ^ uVar47;
  uVar30 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  *(ulonglong *)(lVar4 + -0x1f0) = uVar29;
  uVar15 = DAT_182671778;
  *(ulonglong *)(lVar4 + -0x80) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar4 + -0x5c8)) - uVar41 ^ uVar30;
  uVar24 = CONCAT44(uVar15,uVar15);
  uVar45 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xff0067ae)) =
       uVar29 ^ *(ulonglong *)(lVar4 + -0x400) ^ uVar45 ^ uVar24 ^ uVar47;
  *(uint *)(lVar4 + -0x344) = uVar7 ^ 0x2ed7dcb6;
  uVar8 = DAT_1826715a4;
  uVar41 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  uVar29 = CONCAT44(uVar12,DAT_1826715a4);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x4defb9b7)) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar24) >> ((bVar27 ^ 0x19) & 0x3f) ^ uVar41;
  uVar15 = DAT_182671614;
  *(ulonglong *)(lVar4 + -0x9e8) =
       (uVar29 ^ 0x492801f70a025eeb) + (*(ulonglong *)(lVar4 + -0x80) ^ uVar30);
  uVar16 = DAT_1826718d4;
  local_res18 = (byte)uVar14;
  uVar22 = (*(ulonglong *)(lVar4 + -0x610) ^ uVar24) << ((local_res18 ^ 0xf6) & 0x3f);
  uVar29 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar4 + -0x3b8) = uVar22 ^ CONCAT44(uVar15,uVar15);
  uVar37 = CONCAT44(uVar16,uVar16);
  uVar22 = *(ulonglong *)(lVar4 - (uVar29 ^ 0xf4812685)) ^ uVar41 | uVar22;
  uVar41 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar4 + -0x898) = uVar22 ^ uVar37;
  uVar29 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar4 + -0x638) =
       (*(ulonglong *)(lVar4 + -0x400) ^ uVar45) - (*(ulonglong *)(lVar4 + -0x240) ^ uVar41) ^
       uVar29;
  uVar16 = DAT_1826716fc;
  uVar15 = DAT_1826716b4;
  *(ulonglong *)(lVar4 + -0xc08) =
       (*(ulonglong *)(lVar4 - (uVar46 ^ 0xf000e231)) ^ uVar29) - uVar22 ^ uVar45;
  uVar17 = DAT_182671850;
  lVar5 = DAT_182671560;
  uVar33 = CONCAT44(uVar16,uVar16);
  uVar29 = (CONCAT44(DAT_182671688,DAT_182671688) ^ *(ulonglong *)(lVar4 + -0xbf0)) +
           (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar4 + -0x2a0));
  *(ulonglong *)(lVar4 + -0x5c8) = uVar29 ^ uVar33;
  uVar18 = DAT_1826718a4;
  uVar42 = CONCAT44(uVar17,uVar17);
  uVar38 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar22 = (ulonglong)DAT_1826718a4;
  *(ulonglong *)(lVar5 + -0x9e8) =
       (*(ulonglong *)(lVar5 - (uVar40 ^ 0x1afb557c)) ^ uVar37) - uVar29 ^ uVar42;
  uVar15 = DAT_182671680;
  lVar4 = DAT_182671560;
  uVar36 = CONCAT44(uVar18,uVar18);
  uVar37 = *(ulonglong *)(lVar5 - (uVar46 ^ 0xf000e489)) ^
           *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0xf000e119)) ^ uVar38 ^ uVar36 ^ uVar30;
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar37;
  lVar5 = DAT_182671560;
  uVar39 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x3b8) = (uVar37 >> 0x20 ^ uVar22) >> 1 ^ uVar39;
  uVar29 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xd6021eac)) =
       (uVar37 ^ uVar36) << (((byte)uVar20 ^ 0x4c) & 0x3f) ^ uVar29;
  uVar15 = DAT_1826717f8;
  *(ulonglong *)(lVar5 + -0x638) =
       CONCAT44(uVar11,uVar12) ^ 0xd1a7a7e18cfe12c9 | CONCAT44(uVar25,uVar8) ^ 0x3f0de1cb807c93e4;
  uVar22 = CONCAT44(uVar15,uVar15);
  *puVar21 = (*(ulonglong *)(lVar5 + -0x400) ^ uVar29 | *(ulonglong *)(lVar5 + -0x3b8) ^ uVar39) ^
             uVar22;
  uVar29 = (*(ulonglong *)(lVar5 + -0x80) ^ uVar30) - (*(ulonglong *)(lVar5 + -0xa0) ^ uVar24);
  puVar1 = (ulonglong *)(lVar5 + -0x510);
  *puVar1 = uVar29 ^ CONCAT44(DAT_182671810,DAT_182671810);
  uVar15 = DAT_1826717d0;
  uVar30 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar5 + -0x548) = uVar29 - (uVar22 ^ *(ulonglong *)(lVar5 + -0x898)) ^ uVar30;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar24 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar5 + -0x3b8) =
       ((uVar22 ^ *(ulonglong *)(lVar5 + -0x898)) - (*(ulonglong *)(lVar5 + -0x670) ^ uVar37)) +
       (CONCAT44(uVar12,uVar11) ^ 0xbfffdf77e504a213) ^ uVar24;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x5afb79ec)) =
       (uVar22 ^ *(ulonglong *)(lVar5 + -0x898)) >> ((local_res18 ^ 0xe8) & 0x3f);
  uVar16 = DAT_182671888;
  uVar22 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  uVar29 = *(ulonglong *)(lVar5 + -0xc08) ^ *(ulonglong *)(lVar5 + -0x3b8) ^ uVar22 ^ uVar24 ^
           uVar45;
  *(ulonglong *)(lVar5 + -0xa0) = uVar29;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671570 ^ 0xf481234d)) =
       (uVar29 ^ uVar22) >> ((bVar27 ^ 5) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar15 = DAT_182671874;
  puVar31 = (ulonglong *)(DAT_182671560 - (uVar26 ^ 0x5afb78fc));
  *puVar31 = -0x5f563941a34e2e78 << (((byte)uVar16 ^ *(byte *)(DAT_182671560 + -0x80)) & 0x3f);
  lVar4 = DAT_182671560;
  puVar2 = (undefined8 *)(DAT_182671560 + -0x638);
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*(ulonglong *)(DAT_182671560 + -0xa0) ^ uVar22) << (((byte)uVar10 ^ 0xc4) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x61bef928)) =
       (*(ulonglong *)(lVar4 + -0x3b8) ^ uVar24) << ((byte)*puVar2 & 0x3f);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xaac63549)) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar4 + -0x80) |
       *(ulonglong *)(lVar4 + -0x610) ^ CONCAT44(uVar15,uVar15)) ^ uVar42;
  uVar36 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(lVar4 + -0x400) =
       (CONCAT44(uVar12,uVar20) ^ 0x669223214f6cd16b) >>
       ((*(byte *)(lVar4 + -0x610) ^ (byte)uVar15) & 0x3f);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar25 ^ 0xfdeff9ef)) =
       (*(ulonglong *)(lVar4 + -0xc08) ^ uVar45) - (uVar42 ^ *(ulonglong *)(lVar4 + -0x898)) ^
       uVar36;
  uVar12 = DAT_18267187c;
  uVar29 = (ulonglong)DAT_18267187c;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0x1afb5d44)) =
       CONCAT44(uVar13,uVar7) ^ 0x2ea1ac954e4a57c6 | *(ulonglong *)(lVar4 + -0x1f0) ^ uVar47;
  *(longlong *)(lVar4 + -0x3b8) = *(longlong *)(lVar4 + -0x400) + -0x6bba11c6b1e08ac0;
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar24 = uVar22 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x9e8) ^ *(ulonglong *)(lVar4 + -0x548) ^
           uVar42;
  *(ulonglong *)(lVar4 + -0x638) = uVar24;
  *(ulonglong *)(lVar4 + -0x628) = (uVar24 >> 0x20 ^ uVar29) >> 5 ^ uVar37;
  uVar29 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x9f47611e)) =
       (uVar24 ^ uVar22) << (((byte)uVar11 ^ 0xff) & 0x3f) ^ uVar29;
  lVar5 = DAT_182671560;
  uVar24 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar4 - (uVar46 ^ 0xf000e219)) =
       (uVar29 ^ *(ulonglong *)(lVar4 + -0x80) | *(ulonglong *)(lVar4 + -0x628) ^ uVar37) ^ uVar24;
  uVar29 = *puVar1;
  uVar39 = CONCAT44(DAT_182671730,DAT_182671730);
  uVar37 = CONCAT44(DAT_182671784,DAT_182671784);
  *(ulonglong *)(lVar5 + -0xc08) =
       (*(ulonglong *)(lVar5 - (uVar43 ^ 0xd6021fe4)) ^ uVar30) -
       (*(ulonglong *)(lVar5 + -0x610) ^ uVar24) ^ uVar39;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x9f47606e)) =
       uVar29 ^ *(ulonglong *)(lVar5 + -0x610) ^ uVar37 ^ uVar24 ^ uVar36;
  lVar4 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671844,DAT_182671844);
  puVar21 = (ulonglong *)(DAT_182671560 + -0x1f0);
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) >> (((byte)uVar8 ^ 0xa9) & 0x3f) ^ uVar30;
  uVar22 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar4 + -0x9e8) = (uVar37 ^ *puVar21) << (((byte)uVar10 ^ 0xd6) & 0x3f) ^ uVar22;
  uVar15 = DAT_18267170c;
  puVar21 = (ulonglong *)(lVar4 - (uVar32 ^ 0x40002488));
  *puVar21 = CONCAT44(uVar23,uVar9) ^ 0x80ed61a74350c9b1 |
             CONCAT44(uVar20,uVar11) ^ 0x53e0398dbca40d47;
  uVar29 = *puVar1;
  uVar45 = CONCAT44(uVar15,uVar15);
  uVar22 = uVar22 ^ *(ulonglong *)(lVar4 + -0x9e8) | *(ulonglong *)(lVar4 + -0xa0) ^ uVar30;
  uVar30 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar4 + -0x3b8) = uVar22 ^ uVar45;
  uVar22 = (uVar29 ^ uVar36) - uVar22;
  *(ulonglong *)(lVar4 + -0x80) = uVar22 ^ uVar30;
  *(int *)(lVar4 + -0x27c) = *(int *)(lVar4 + -0x910) * 0x69fd2ea5;
  uVar37 = CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar36 = uVar37 ^ *(ulonglong *)(lVar4 + -0xc08) ^ uVar39 ^ uVar42 ^
           *(ulonglong *)(lVar4 + -0x898);
  *(ulonglong *)(lVar4 + -0x628) = uVar36;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x548) = uVar22 | uVar42 ^ *(ulonglong *)(lVar4 + -0x898);
  lVar4 = DAT_182671560;
  uVar29 = (uVar36 ^ uVar37) >> ((bVar27 ^ 0x28) & 0x3f);
  *(ulonglong *)(lVar5 + -0x610) = uVar29 ^ CONCAT44(DAT_1826715ec,DAT_1826715ec);
  lVar6 = DAT_182671560;
  *(ulonglong *)(lVar5 + -0x1f0) =
       (uVar36 ^ uVar37) - (CONCAT44(uVar11,uVar28) ^ 0x6eb7e77a0dd8de6f);
  uVar15 = DAT_182671894;
  local_f0 = (byte)uVar25;
  uVar37 = (uVar36 ^ uVar37) << ((local_f0 ^ 0xe7) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa0) =
       (CONCAT44(uVar23,uVar10) ^ 0xee7c6009303c2f92) +
       (CONCAT44(uVar10,uVar14) ^ 0xc6430b8c35ad6128);
  *(ulonglong *)(lVar4 + -0x400) = uVar37 ^ uVar38;
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x9e8) = (uVar29 | uVar37) ^ uVar22;
  *(ulonglong *)(lVar6 + -0x638) =
       (CONCAT44(uVar14,uVar25) ^ 0x12e7138331bbcb7e) -
       (CONCAT44(uVar20,uVar7) ^ 0x6b2aaa2acbe9818d);
  uVar8 = DAT_182671570;
  puVar44 = (ulonglong *)(lVar6 - (uVar40 ^ 0x1afb540c));
  local_res20 = (byte)uVar23;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671570 ^ 0xf48126dd)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a4 ^ 0xff006db6)) ^ uVar39) -
       (uVar22 ^ *puVar44) ^ uVar24;
  uVar15 = DAT_1826718a0;
  lVar4 = DAT_182671560;
  uVar37 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar40 = *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xd6021344)) ^ uVar37 ^ uVar22 ^ uVar30 ^
           *(ulonglong *)(DAT_182671560 + -0x80);
  uVar29 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar40;
  uVar40 = (uVar40 ^ uVar37) >> (((byte)uVar8 ^ 0xf9) & 0x3f);
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x548) = uVar40 ^ uVar29;
  lVar5 = DAT_182671560;
  uVar29 = *(ulonglong *)(DAT_182671560 + -0x80);
  uVar39 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x40002810)) ^ uVar37) << ((local_res20 ^ 0xe0) & 0x3f) ^
       uVar22;
  uVar15 = DAT_182671748;
  uVar40 = *(ulonglong *)(lVar5 - (uVar35 ^ 0xaac63c21)) ^ uVar22 | uVar40;
  *(ulonglong *)(lVar5 + -0x628) = uVar40 ^ uVar39;
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0xa0) = (uVar30 ^ uVar29) - uVar40 ^ uVar22;
  local_d0 = (byte)uVar7;
  uVar29 = (ulonglong)DAT_182671570;
  uVar40 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x9f47678e)) =
       *puVar1 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0x3b8) ^ uVar45 ^ uVar24;
  lVar4 = DAT_182671560;
  *(uint *)(lVar5 + -0x844) =
       *(uint *)(lVar5 - (uVar29 ^ 0xf48124b9)) >> (((byte)DAT_1826715a4 ^ 0xb9) & 0x1f);
  uVar15 = DAT_1826716e0;
  uVar37 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar4 + -0x400) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x610)) >> ((local_d0 ^ 0x95) & 0x3f) ^ uVar37;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x638) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x610)) << ((local_res18 ^ 0xd6) & 0x3f) ^ uVar29;
  *(ulonglong *)(lVar4 - (uVar43 ^ 0xd60216a4)) =
       (CONCAT44(uVar20,uVar10) ^ 0x34f03682c85fcc84) -
       (CONCAT44(uVar11,uVar28) ^ 0x19f71b7079e070ae);
  uVar15 = DAT_182671808;
  uVar30 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  uVar29 = *(ulonglong *)(lVar4 - (uVar26 ^ 0x5afb7bd4)) ^ uVar29 |
           *(ulonglong *)(lVar4 + -0x400) ^ uVar37;
  uVar40 = uVar29 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x9e8) = uVar40;
  uVar16 = DAT_1826718a8;
  uVar26 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x898) = (*puVar1 ^ uVar24) - uVar29 ^ uVar26;
  uVar15 = DAT_18267171c;
  uVar36 = CONCAT44(uVar16,uVar16);
  uVar37 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar40 = uVar36 ^ uVar30 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0xa0) ^ uVar40;
  *(ulonglong *)(lVar4 + -0x1f0) = uVar40;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(uVar15,uVar15);
  *(undefined4 *)(lVar4 + -0x8c) = *(undefined4 *)(lVar4 + -0x27c);
  uVar15 = DAT_182671630;
  uVar29 = *(ulonglong *)(lVar5 + -0xa0);
  *(ulonglong *)(lVar4 + -0x548) = (uVar40 ^ uVar36) >> ((local_f0 ^ 0xf1) & 0x3f) ^ uVar37;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar40 = (uVar36 ^ uVar40) << 0x32;
  *(ulonglong *)(lVar4 + -0x80) = uVar40 ^ uVar30;
  uVar15 = DAT_182671740;
  *(ulonglong *)(lVar4 + -0x3b8) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x9f4764d6)) ^ uVar37 | uVar40) ^ uVar38;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xaac63bc1)) =
       (uVar22 ^ uVar29) -
       (*(ulonglong *)(lVar5 - (uVar43 ^ 0xd6021c14)) ^ CONCAT44(DAT_182671704,DAT_182671704)) ^
       uVar37;
  *(int *)(lVar5 + -0x344) = *(int *)(lVar5 + -0x968) << (((byte)DAT_182671570 ^ 200) & 0x1f);
  uVar40 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(lVar5 + -0xc08) =
       (uVar37 ^ *(ulonglong *)(lVar5 + -0x610)) -
       (*(ulonglong *)(lVar5 - (uVar46 ^ 0xf000e7b1)) ^ uVar38) ^ uVar40;
  uVar29 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *puVar21 = (*(ulonglong *)(lVar5 + -0x1d8) ^ uVar24) + (*(ulonglong *)(lVar5 + -0x240) ^ uVar41) ^
             uVar29;
  uVar15 = DAT_182671634;
  uVar41 = CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar34 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 + -0x638) =
       (uVar38 ^ *(ulonglong *)(lVar5 + -0x3b8)) - (*(ulonglong *)(lVar5 + -0x400) ^ uVar29) ^
       uVar41;
  uVar22 = CONCAT44(uVar15,uVar15);
  *puVar31 = uVar22 ^ uVar26 ^ uVar39 ^ *(ulonglong *)(lVar5 + -0x628) ^
             *(ulonglong *)(lVar5 + -0x898);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xff006856)) =
       (*(ulonglong *)(lVar5 - (uVar32 ^ 0x400026b0)) ^ uVar41) << 0x3d;
  puVar21 = (ulonglong *)(lVar5 - ((ulonglong)uVar28 ^ 0x61befa10));
  uVar34 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar29 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar5 + -0x1f0) = (uVar22 ^ *puVar21) >> (((byte)uVar20 ^ 0x43) & 0x3f) ^ uVar34;
  uVar16 = DAT_182671854;
  *(ulonglong *)(lVar5 + -0x548) = uVar29 ^ **(ulonglong **)(lVar5 + -0xa38);
  uVar15 = DAT_18267176c;
  uVar41 = (uVar22 ^ *puVar21) << ((local_f0 ^ 0xcf) & 0x3f);
  uVar22 = uVar41 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x80) = uVar22;
  *(ulonglong *)(lVar5 + -0xa0) =
       uVar40 ^ *(ulonglong *)(lVar5 + -0xc08) | uVar37 ^ *(ulonglong *)(lVar5 + -0x610);
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x3b8) =
       (*(ulonglong *)(lVar5 - (uVar46 ^ 0xf000e5f9)) ^ uVar34 | uVar41) ^ uVar29;
  uVar15 = DAT_182671654;
  *(longlong *)(lVar5 - (uVar46 ^ 0xf000e221)) =
       -0x1883d2e9fc58ce6d << (((byte)uVar16 ^ (byte)uVar22) & 0x3f);
  uVar17 = DAT_182671698;
  *(ulonglong *)(lVar5 + -0x9e8) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0x898)) - (*(ulonglong *)(lVar5 + -0x5c8) ^ uVar33) ^
       uVar30;
  uVar16 = DAT_18267167c;
  *(ulonglong *)(lVar5 + -0x548) =
       (uVar30 ^ *puVar44) - (uVar29 ^ *(ulonglong *)(lVar5 + -0x3b8)) ^ CONCAT44(uVar15,uVar15);
  *puVar1 = (CONCAT44(uVar25,uVar23) ^ 0x2100300a5048214) -
            (*(ulonglong *)(lVar5 - (uVar46 ^ 0xf000e2d9)) ^ CONCAT44(uVar16,uVar16)) ^
            CONCAT44(uVar17,uVar17);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar19 * 4) = uVar3 ^ uVar20;
  return;
}



############ FUN_ 180f385b0 size=4124 ############

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

void FUN_180f385b0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  uint *puVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint *puVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  byte *pbVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  
  uVar20 = DAT_1826718c0;
  uVar29 = DAT_1826717c4;
  uVar34 = DAT_1826717c0;
  uVar21 = DAT_1826717a4;
  uVar6 = DAT_1826715a8;
  uVar4 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar12 = (ulonglong)DAT_182671570;
  uVar24 = (ulonglong)DAT_1826715a8;
  uVar36 = DAT_182671570 << 0x10 | DAT_182671570 >> 0x10;
  uVar18 = DAT_1826715a8 << 0x10 | DAT_1826715a8 >> 0x10;
  uVar37 = (ulonglong)uVar18;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar12 ^ 0xfffffff7) + (longlong)DAT_182671a68);
  uVar10 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar18 ^ 0x367a1f71) + (longlong)DAT_182671a68) ^
           DAT_1826715a8;
  uVar19 = DAT_182671750 ^ DAT_1826717b8 ^ *(uint *)(DAT_182671560 + -0x328);
  DAT_18267156c = uVar18;
  DAT_182671584 = uVar36;
  *(uint *)(DAT_182671560 + -0x47c) =
       *(uint *)(DAT_182671560 + -0x8c) ^ DAT_1826717dc ^ DAT_1826717c4;
  *(uint *)(lVar2 + -0x844) = uVar19;
  *(uint *)(lVar2 + -0x374) = uVar19 ^ uVar21 ^ DAT_182671750;
  *(uint *)(lVar2 + -0x874) =
       *(uint *)(lVar2 - ((ulonglong)uVar36 ^ 0xfffffb83)) ^ uVar20 ^ DAT_1826717dc;
  pbVar31 = (byte *)((CONCAT44(uVar6,uVar36) ^ 0x1f61367affffffff) * 0x20 +
                     (CONCAT44(uVar4,uVar6) ^ 0xffffffff1f613664) + *(longlong *)(lVar2 + -0x8f0));
  *(ulonglong *)(lVar2 + -0xd20) = (ulonglong)pbVar31 ^ (ulonglong)DAT_182671720;
  bVar9 = *pbVar31 ^ (byte)DAT_182671694 ^ (byte)uVar20;
  *(byte *)(lVar2 + -0x41) = bVar9;
  *(uint *)(lVar2 + -0x910) = uVar20 & 0xff ^ (uint)bVar9 ^ uVar34;
  uVar35 = DAT_1826715b4;
  uVar13 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x367a1cd9)) =
       (CONCAT44(uVar18,uVar18) ^ 0xb60f04c229cd8b29) << (((byte)(uVar6 >> 0x10) ^ 0x76) & 0x3f);
  lVar2 = DAT_182671560;
  bVar9 = (byte)(uVar4 >> 0x10);
  bVar15 = bVar9 ^ 0xee;
  *(uint *)(DAT_182671560 + -0x3d4) =
       (*(uint *)(DAT_182671560 - (uVar13 ^ 0x7a366969)) ^ uVar20) + (uVar6 ^ 0x169610af) ^
       DAT_18267180c;
  uVar7 = DAT_1826715b0;
  uVar19 = DAT_18267158c;
  uVar20 = DAT_182671574;
  uVar25 = (ulonglong)DAT_1826715b0;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0x1f613f12)) =
       (*(uint *)(lVar2 + -0x910) ^ uVar34) << (bVar15 & 0x1f) ^ DAT_182671698;
  uVar30 = DAT_182671598;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (CONCAT44(uVar19,uVar18) ^ 0x99eab9862286a18a) >> (((byte)uVar4 ^ 0xde) & 0x3f);
  *(uint *)(lVar2 - (uVar25 ^ 0x367a1d1d)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar20 ^ 0x367a1cb5)) ^ DAT_18267180c) -
       (*(uint *)(lVar2 + -0x968) ^ DAT_182671698) ^ uVar29;
  *(longlong *)(lVar2 + -0xa88) =
       -0x773e11dfbe3e215f << ((byte)*(undefined8 *)(lVar2 + -0xa0) & 0x3f);
  uVar11 = DAT_182671818;
  uVar29 = (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x1f61350e)) ^ uVar21) *
           (*(uint *)(lVar2 + -0x27c) ^ uVar29) ^ DAT_18267165c;
  *(uint *)(lVar2 + -0x344) = uVar29;
  uVar29 = uVar29 ^ DAT_18267165c;
  uVar19 = (*(uint *)(lVar2 + -0x910) ^ uVar34) * 0x1e ^ DAT_182671660;
  *(uint *)(lVar2 + -0x774) = uVar19;
  *(uint *)(lVar2 - ((ulonglong)uVar35 ^ 0x7a366419)) = (uVar19 ^ DAT_182671660) + uVar29 ^ uVar11;
  *(uint *)(lVar2 + -0x754) = uVar30 ^ 0x7705bdc8 | uVar6 ^ 0xfd1bf5fe;
  bVar16 = (byte)DAT_1826716b4;
  uVar35 = DAT_182671580;
  uVar19 = DAT_18267157c;
  uVar13 = (ulonglong)DAT_182671580;
  puVar26 = (uint *)(lVar2 - (uVar13 ^ 0x4bb56a4));
  *(uint *)(lVar2 + -0x678) =
       (*(uint *)(lVar2 + -0x504) ^ uVar11) << ((bVar9 ^ 0xf2) & 0x1f) ^ DAT_182671710;
  uVar18 = DAT_182671628;
  uVar34 = (uVar11 ^ *puVar26) >> 0x13 ^ _DAT_182671618;
  *(uint *)(lVar2 + -0x5cc) = uVar34;
  *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x300a1846)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar20 ^ 0x367a1919)) ^ DAT_182671710 |
       uVar34 ^ _DAT_182671618) ^ DAT_18267185c;
  uVar34 = DAT_182671770;
  uVar20 = (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar2 + -0x374) ^ uVar21) ^
           DAT_18267187c;
  *(uint *)(lVar2 + -0x328) = uVar20;
  *(uint *)(lVar2 - ((ulonglong)uVar36 ^ 0xffffff73)) = uVar20 ^ DAT_1826716b8 ^ DAT_18267187c;
  uVar20 = *(uint *)(lVar2 - (uVar12 ^ 0xfffff69b)) ^ uVar18 ^ DAT_18267185c;
  *(uint *)(lVar2 + -0x47c) = *(uint *)(lVar2 + -0x8c) ^ uVar34 ^ DAT_1826716b8;
  *(uint *)(lVar2 + -0x844) = uVar20;
  *(uint *)(lVar2 - (uVar37 ^ 0x367a1715)) = uVar20 ^ DAT_182671678 ^ uVar18;
  uVar22 = (ulonglong)DAT_1826716f0;
  *(ulonglong *)(lVar2 + -0x4f0) = *(longlong *)(lVar2 + -0x8f0) + 9U ^ uVar22;
  uVar21 = DAT_1826715c4;
  bVar9 = *(byte *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x1f61328a)) ^ uVar22) ^ bVar16 ^
          (byte)DAT_182671694;
  *(byte *)(lVar2 + -0x41) = bVar9;
  uVar20 = (uint)(bVar9 ^ bVar16);
  *(uint *)(lVar2 + -0x3d4) = uVar20 ^ uVar21;
  uVar20 = uVar20 << 0x11 ^ DAT_1826716a8;
  uVar19 = (*(uint *)(lVar2 - (uVar24 ^ 0x1f613e0e)) ^ DAT_182671678) + (uVar36 ^ 0xf608d92a) ^
           DAT_182671814;
  *(uint *)(lVar2 + -0x27c) = uVar20;
  uVar20 = uVar20 ^ DAT_1826716a8;
  *(uint *)(lVar2 + -0x968) = uVar19;
  *(uint *)(lVar2 - (uVar37 ^ 0x367a1671)) = (uVar19 ^ DAT_182671814) - uVar20 ^ DAT_182671864;
  uVar29 = DAT_1826717a8;
  uVar20 = *(uint *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0x7a366563));
  uVar11 = *(uint *)(lVar2 + -0x910) ^ DAT_182671864;
  *(uint *)(lVar2 + -0x774) = (uVar7 ^ 0x326793c1) - (DAT_18267156c ^ 0x355dd811);
  uVar19 = DAT_182671570;
  uVar11 = (uVar20 ^ uVar34) * uVar11 ^ DAT_18267169c;
  uVar28 = uVar35 & DAT_182671570;
  *(uint *)(lVar2 + -0x344) = uVar11;
  uVar20 = DAT_182671778;
  lVar3 = DAT_182671560;
  uVar11 = uVar11 ^ DAT_18267169c;
  puVar14 = (uint *)(DAT_182671560 - (uVar12 ^ 0xfffff8ab));
  DAT_1826715a0 = uVar28;
  *(uint *)(DAT_182671560 + -0x754) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x4bb5074)) ^ uVar21) * (uVar28 ^ 0x4bb53a9) ^ DAT_182671778;
  uVar21 = (*puVar14 ^ uVar20) + uVar11;
  *(uint *)(lVar3 + -0x504) = uVar21 ^ uVar29;
  uVar21 = uVar21 * 0x2000 ^ _DAT_182671838;
  *(uint *)(lVar3 + -0x678) = (uVar19 ^ 0xd3e1f27b) >> ((byte)uVar11 & 0x1f);
  uVar33 = (ulonglong)uVar28;
  *(uint *)(lVar3 + -0x5cc) = uVar21;
  *(ulonglong *)(lVar3 - (uVar13 ^ 0x4bb55a0)) =
       (CONCAT44(uVar4,uVar35) ^ 0xc7a7ca187eb7e728) -
       (CONCAT44(uVar28,uVar28) ^ 0xf2c364f3c21bd017);
  *(uint *)(lVar3 - (uVar12 ^ 0xfffffc8b)) = (uVar29 ^ *puVar26) >> 0x13 ^ DAT_1826717d0;
  *(uint *)(lVar3 - (uVar33 ^ 0x4bb5088)) =
       (*(uint *)(lVar3 + -0x5cc) ^ _DAT_182671838 | *(uint *)(lVar3 + -0x374) ^ DAT_1826717d0) ^
       DAT_1826717ec;
  *(uint *)(lVar3 + -0x964) =
       (*(uint *)(lVar3 + -0x3c8) ^ DAT_182671624) + (uVar34 ^ *(uint *)(lVar3 + -0x47c)) ^
       DAT_182671860;
  *(uint *)(lVar3 - (uVar12 ^ 0xffffff73)) =
       *(uint *)(lVar3 - (uVar13 ^ 0x4bb5ac4)) ^ DAT_182671808 ^ DAT_182671860;
  *(uint *)(lVar3 + -0x844) =
       (uVar19 ^ 0xb483a564) << (((byte)*(undefined4 *)(lVar3 + -0x754) ^ (byte)uVar20) & 0x1f);
  uVar29 = DAT_182671608;
  uVar20 = *(uint *)(lVar3 - (uVar13 ^ 0x4bb5088)) ^ DAT_1826717bc ^ DAT_1826717ec;
  *(ulonglong *)(lVar3 + -0xc08) = *(ulonglong *)(lVar3 + -0x600) | 0xa3dc22f9e638ef86;
  *(uint *)(lVar3 + -0x874) = uVar20;
  uVar20 = uVar20 ^ DAT_182671600 ^ DAT_1826717bc;
  *(uint *)(lVar3 + -0x968) = *(uint *)(lVar3 - (uVar13 ^ 0x4bb532c)) ^ uVar29 ^ DAT_182671808;
  uVar22 = CONCAT44(uVar28,DAT_1826715b4);
  *(uint *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0xaa4e173f)) = uVar20;
  uVar23 = (ulonglong)DAT_182671800;
  *(ulonglong *)(lVar3 - (uVar12 ^ 0xfffff6e7)) =
       (uVar22 ^ 0x4bb53a07a366109) + *(longlong *)(lVar3 + -0x8f0) ^ uVar23;
  bVar9 = (byte)DAT_182671784;
  bVar16 = *(byte *)(*(ulonglong *)(lVar3 + -0x918) ^ uVar23) ^ (byte)DAT_182671784 ^
           (byte)DAT_182671694;
  *(byte *)(lVar3 + -0x41) = bVar16;
  uVar34 = DAT_18267159c;
  uVar11 = (uint)(bVar16 ^ bVar9);
  uVar23 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar3 + -0x910) = uVar11 ^ uVar18;
  uVar19 = DAT_182671594;
  uVar35 = (*(uint *)(lVar3 - (uVar23 ^ 0x4f75c849)) ^ DAT_182671600) + (uVar34 ^ 0x4682ece0) ^
           _DAT_1826716c0;
  *(uint *)(lVar3 + -0x774) = uVar35;
  uVar35 = uVar35 ^ _DAT_1826716c0;
  uVar22 = CONCAT44(uVar28,DAT_1826715a4);
  uVar20 = (*(uint *)(lVar3 - (uVar12 ^ 0xfffff6ef)) ^ uVar18) << (((byte)uVar19 ^ 0x84) & 0x1f) ^
           DAT_1826717a0;
  *(uint *)(lVar3 + -0x3d4) = uVar20;
  uVar35 = uVar35 - (uVar20 ^ DAT_1826717a0) ^ DAT_182671890;
  *(uint *)(lVar3 + -0x344) = uVar35;
  uVar18 = DAT_18267160c;
  uVar20 = DAT_1826715d4;
  uVar21 = DAT_182671590;
  uVar35 = uVar35 ^ DAT_182671890;
  *(ulonglong *)(lVar3 + -0x8a8) =
       (uVar22 ^ 0xcd145682d2bfe104) << ((byte)*(undefined8 *)(lVar3 + -0xc08) & 0x3f);
  uVar8 = DAT_1826718a8;
  uVar5 = DAT_182671578;
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x678) =
       (*(uint *)(lVar3 - (uVar13 ^ 0x4bb5ac8)) ^ uVar29) * uVar35 ^ DAT_1826718a8;
  uVar35 = DAT_182671588;
  uVar38 = (ulonglong)DAT_182671588;
  *(uint *)(lVar2 - ((ulonglong)uVar30 ^ 0x75132433)) = uVar11 * 0x14 ^ uVar20;
  uVar11 = DAT_182671788;
  uVar22 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar2 - (uVar25 ^ 0x367a1aad)) =
       (uVar20 ^ *(uint *)(lVar2 + -0x504)) + (uVar8 ^ *(uint *)(lVar2 + -0x678)) ^ DAT_182671788;
  uVar32 = (*(uint *)(lVar2 - (uVar22 ^ 0x85c99b2c)) ^ uVar11) << (((byte)uVar21 ^ 0xb2) & 0x1f);
  uVar20 = DAT_1826715b4 ^ 0x4d29f974;
  uVar17 = DAT_18267156c ^ 0xd8f43dcf;
  *(uint *)(lVar2 + -0x374) = uVar32 ^ uVar18;
  *(uint *)(lVar2 + -0x47c) = uVar17 + uVar20;
  uVar20 = (*(uint *)(lVar2 + -0x5cc) ^ uVar11) >> (((byte)uVar5 ^ 0xe7) & 0x1f) ^ DAT_1826717e0;
  *(uint *)(lVar2 + -0x964) = uVar20;
  *(uint *)(lVar2 - (uVar38 ^ 0xfffff7bb)) = (uVar32 | uVar20 ^ DAT_1826717e0) ^ DAT_1826716a4;
  uVar11 = DAT_18267176c;
  uVar20 = DAT_182671568;
  uVar29 = (*(uint *)(lVar2 + -0x968) ^ uVar29) + (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^
           DAT_182671644;
  uVar27 = (ulonglong)DAT_182671568;
  *(uint *)(lVar2 + -0x754) = uVar29;
  lVar3 = DAT_182671560;
  *(uint *)(lVar2 + -0x8c) = uVar29 ^ DAT_18267178c ^ DAT_182671644;
  uVar29 = DAT_1826715b8 ^ DAT_1826716a4;
  *(uint *)(lVar2 + -0x328) = (uVar8 ^ *(uint *)(lVar2 + -0x678)) >> (((byte)uVar5 ^ 0xf8) & 0x1f);
  *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x4bce91e1)) = uVar29 ^ *(uint *)(lVar2 + -0x844);
  uVar8 = DAT_182671834;
  uVar19 = *(uint *)(lVar2 + -0x8c) ^ DAT_182671834 ^ DAT_18267178c;
  *(ulonglong *)(lVar2 + -0x800) =
       (CONCAT44(uVar28,uVar6) ^ 0xf5f5324bd00ae737) <<
       ((byte)*(undefined8 *)(lVar2 + -0x510) & 0x3f);
  *(uint *)(lVar2 - (uVar33 ^ 0x4bb51dc)) = uVar19;
  uVar22 = CONCAT44(DAT_182671844,DAT_182671844);
  *(uint *)(lVar2 + -0x774) = *(uint *)(lVar2 + -0x874) ^ DAT_1826715cc ^ DAT_1826715b8;
  *(ulonglong *)(lVar2 + -0x898) = (uVar22 ^ *(ulonglong *)(lVar2 + -0x9e8)) << 0x27;
  bVar9 = (byte)DAT_1826717fc;
  uVar19 = DAT_18267157c;
  pbVar31 = (byte *)((CONCAT44(uVar20,uVar34) ^ 0xaa4e15434f75ca35) * 0x20 +
                     (CONCAT44(DAT_18267157c,uVar35) ^ 0x300a1122ffffffe0) +
                    *(longlong *)(lVar3 + -0x8f0));
  *(ulonglong *)(lVar3 + -0xc80) = (ulonglong)pbVar31 ^ (ulonglong)DAT_182671668;
  bVar16 = *pbVar31 ^ bVar9 ^ (byte)DAT_182671694;
  *(byte *)(lVar3 + -0x41) = bVar16;
  *(uint *)(lVar3 - ((ulonglong)uVar20 ^ 0xaa4e1697)) = (bVar9 ^ bVar16) ^ uVar11;
  uVar20 = DAT_1826716d0;
  *(ulonglong *)(lVar3 + -0x400) = CONCAT44(uVar30,DAT_18267158c) ^ 0xb892faf78cd2b5e2;
  *(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0xfffffcbb)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar36 ^ 0xfffff88b)) ^ DAT_1826715cc) + (uVar21 ^ 0xf608d96a)
       ^ uVar20;
  uVar6 = DAT_1826715ac;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715ac ^ 0x85c99868)) =
       (CONCAT44(uVar19,DAT_182671574) ^ 0x2d66601784418a26) -
       (CONCAT44(DAT_18267179c,DAT_18267179c) ^ *(ulonglong *)(lVar3 + -0xa80));
  uVar19 = _DAT_1826715d8;
  uVar29 = (uVar11 ^ *(uint *)(lVar3 + -0x3d4)) << (bVar15 & 0x1f) ^ DAT_1826717b8;
  *(uint *)(lVar3 + -0x910) = uVar29;
  uVar20 = (uVar20 ^ *(uint *)(lVar3 + -0x344)) - (uVar29 ^ DAT_1826717b8);
  *(uint *)(lVar3 + -0x504) = uVar20 ^ uVar19;
  uVar29 = DAT_1826715ec;
  *(uint *)(lVar3 + -0x47c) = uVar20 * (*(uint *)(lVar3 + -0x27c) ^ uVar8) ^ DAT_1826715ec;
  *(longlong *)(lVar3 - (uVar23 ^ 0x4f75cc0d)) =
       *(longlong *)(lVar3 + -0xc08) - *(longlong *)(lVar3 - ((ulonglong)uVar21 ^ 0xfffff937));
  uVar21 = (uVar11 ^ *(uint *)(lVar3 + -0x3d4)) * (DAT_1826715b4 ^ 0x7a366102) ^ DAT_1826717b4;
  *(uint *)(lVar3 + -0x5cc) = uVar21;
  uVar11 = DAT_182671810;
  uVar20 = DAT_1826715a4;
  lVar2 = DAT_182671560;
  uVar22 = (ulonglong)DAT_1826715a4;
  bVar9 = (byte)DAT_18267158c;
  *(uint *)(DAT_182671560 - (uVar27 ^ 0xaa4e1637)) =
       (uVar21 ^ DAT_1826717b4) + (uVar29 ^ *(uint *)(lVar3 + -0x47c)) ^ DAT_182671810;
  uVar29 = DAT_1826718ac;
  bVar16 = (byte)DAT_18267157c;
  *(uint *)(lVar2 - (uVar25 ^ 0x367a1605)) =
       (uVar11 ^ *(uint *)(lVar2 + -0x374)) << ((bVar9 ^ 0x77) & 0x1f) ^ DAT_1826718ac;
  uVar21 = DAT_182671680;
  *(uint *)(lVar2 - (uVar12 ^ 0xfffff697)) =
       (*(uint *)(lVar2 - (uVar22 ^ 0xccac9a81)) ^ uVar11) >> ((bVar16 ^ 0x31) & 0x1f) ^
       DAT_182671740;
  *(uint *)(lVar2 + -0x678) =
       (*(uint *)(lVar2 - (uVar33 ^ 0x4bb5ac8)) ^ DAT_182671740 | uVar29 ^ *(uint *)(lVar2 + -0x964)
       ) ^ _DAT_18267188c;
  *(ulonglong *)(lVar2 + -0x9f8) = *(ulonglong *)(lVar2 + -0x80) ^ 0xe24df907a7e76b9a;
  uVar29 = (*(uint *)(lVar2 + -0x27c) ^ uVar8) + (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^
           DAT_182671730;
  *(uint *)(lVar2 + -0x328) = uVar29;
  *(uint *)(lVar2 + -0x754) = uVar29 ^ DAT_1826716c4 ^ DAT_182671730;
  uVar30 = *(uint *)(lVar2 - ((ulonglong)uVar30 ^ 0x7513274f)) ^ uVar21 ^ _DAT_18267188c;
  *(uint *)(lVar2 + -0x844) = uVar30;
  *(uint *)(lVar2 + -0x8c) =
       *(uint *)(lVar2 - ((ulonglong)uVar20 ^ 0xccac9ea1)) ^ DAT_1826716c4 ^ uVar19;
  *(uint *)(lVar2 + -0x874) = uVar21 ^ uVar18 ^ uVar30;
  uVar12 = (ulonglong)DAT_1826718d4;
  *(longlong *)(lVar2 - (uVar37 ^ 0x367a1e71)) =
       *(longlong *)(lVar2 - (uVar38 ^ 0xfffffbff)) + 0x1e428122c45a8b4a;
  pbVar31 = (byte *)(*(longlong *)(lVar2 - (uVar24 ^ 0x1f613e8a)) +
                     (CONCAT44(uVar36,uVar28) ^ 0xffffffff04bb53a0) * 0x20 +
                    (CONCAT44(uVar4,uVar6) ^ 0xffffffff85c99eea));
  *(ulonglong *)(lVar2 + -0xd20) = (ulonglong)pbVar31 ^ uVar12;
  *(ulonglong *)(lVar2 + -0x6b8) =
       CONCAT44(uVar35,uVar34) ^ 0xf3c5a4082b4f6bd9 | CONCAT44(uVar20,uVar7) ^ 0x3e9558ecc04df470;
  *(byte *)(lVar2 - (uVar13 ^ 0x4bb53e1)) = *pbVar31 ^ DAT_182671838 ^ (byte)DAT_182671694;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar1 ^ uVar36;
  return;
}



############ FUN_ 180f1c050 size=5368 ############

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

void FUN_180f1c050(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  byte local_160;
  byte local_d8;
  byte local_d0;
  byte local_c0;
  
  uVar7 = DAT_1826715b0;
  uVar17 = DAT_1826715ac;
  lVar5 = DAT_182671560;
  uVar55 = (ulonglong)DAT_1826715ac;
  uVar44 = (ulonglong)DAT_1826715b0;
  uVar26 = DAT_1826715ac + DAT_1826715b0;
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_182671a10) ^ DAT_1826715ac;
  uVar16 = *(uint *)(&DAT_182611e80 + DAT_182671a10) ^ DAT_1826715b0;
  uVar35 = CONCAT44(DAT_182671770,DAT_182671770);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x8a8);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x1d8);
  puVar3 = (ulonglong *)(DAT_182671560 + -0x270);
  uVar31 = CONCAT44(DAT_182671650,DAT_182671650);
  uVar58 = (ulonglong)uVar26;
  uVar37 = (ulonglong)DAT_1826715ac;
  uVar51 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar26 ^ 0xe4491b08)) ^ uVar35 |
           CONCAT44(DAT_18267186c,DAT_18267186c) ^ *(ulonglong *)(DAT_182671560 + -0x670);
  uVar36 = CONCAT44(DAT_182671640,DAT_182671640);
  DAT_182671568 = uVar26;
  *puVar1 = uVar51 ^ uVar31;
  uVar23 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar37 = (*puVar2 ^ uVar23) - (*(ulonglong *)(lVar5 - (uVar37 ^ 0xc07b2db7)) ^ uVar36);
  uVar33 = CONCAT44(DAT_182671670,DAT_182671670);
  *puVar3 = uVar37 ^ CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar11 = DAT_1826718b4;
  *(ulonglong *)(lVar5 + -0x688) = uVar37 - uVar51 ^ uVar33;
  *(int *)(lVar5 + -0x8c) = -0x7818ec79 << (((byte)uVar26 ^ 0x9a) & 0x1f);
  uVar8 = DAT_182671704;
  uVar10 = DAT_182671584;
  uVar29 = (ulonglong)DAT_182671584;
  uVar37 = (CONCAT44(uVar17,uVar7) ^ 0x3f84d700dc320b79) -
           (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar5 + -0x240));
  *(ulonglong *)(lVar5 + -0x670) = uVar37 ^ CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar45 = CONCAT44(uVar8,uVar8);
  uVar37 = uVar37 + uVar51 ^ uVar45;
  *(ulonglong *)(lVar5 + -0x548) = uVar37;
  lVar5 = DAT_182671560;
  *puVar2 = uVar51 - (CONCAT44(uVar26,uVar17) ^ 0x336390df45252d0d);
  uVar15 = DAT_182671898;
  uVar8 = DAT_182671764;
  uVar27 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar41 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar37 = *(ulonglong *)(lVar5 - (uVar58 ^ 0xe4491b50)) ^ uVar41 ^ uVar27 ^ uVar45 ^ uVar37;
  uVar46 = CONCAT44(DAT_182671898,DAT_182671898);
  *puVar3 = uVar37;
  *(ulonglong *)(lVar5 + -0x670) = (uVar27 ^ uVar37) >> (((byte)uVar26 ^ 0xa0) & 0x3f) ^ uVar46;
  uVar51 = (ulonglong)DAT_182671594;
  uVar50 = uVar10 - DAT_182671594;
  uVar38 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  bVar18 = (byte)DAT_182671594;
  DAT_182671578 = uVar50;
  *puVar2 = (uVar37 ^ uVar27) << ((bVar18 ^ 0x61) & 0x3f) ^ uVar38;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xfe7ffb3e)) =
       (CONCAT44(uVar50,uVar50) ^ 0x58fdfd2f2e31d6ea) + 0x19df505a6f7acbd5;
  uVar11 = DAT_1826715bc;
  uVar28 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar37 = *(ulonglong *)(DAT_182671560 + -0x670) ^ uVar46 | uVar38 ^ *puVar2;
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar37 ^ uVar28;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar46 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *puVar2 = (uVar41 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) - uVar37 ^ uVar24;
  lVar5 = DAT_182671560;
  uVar37 = (ulonglong)DAT_1826717e8;
  uVar42 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       uVar46 ^ uVar42 ^ *(ulonglong *)(DAT_182671560 + -0x688) ^ uVar33 ^
       *(ulonglong *)(DAT_182671560 + -0x510);
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (CONCAT44(uVar10,uVar10) ^ 0x667fb68cf183d01) >>
       ((*(byte *)(lVar5 + -0x670) ^ (byte)uVar15) & 0x3f);
  lVar5 = DAT_182671560;
  uVar41 = CONCAT44(DAT_182671878,DAT_182671878);
  *(ulonglong *)(DAT_182671560 + -0x670) =
       *(ulonglong *)(DAT_182671560 - (uVar51 ^ 0x110be391)) >> 0x20 ^ uVar41 ^ uVar37;
  local_d8 = (byte)uVar8;
  *(ulonglong *)(lVar5 - (uVar51 ^ 0x110be051)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0xfe7ff6de)) ^ uVar31) <<
       ((*(byte *)puVar3 ^ local_d8) & 0x3f);
  uVar31 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(uint *)(lVar5 + -0x47c) = (uVar17 ^ 0xf0de31a1) * (uVar50 ^ 0x6a73ec9a);
  uVar11 = DAT_182671608;
  uVar37 = (uVar42 ^ *(ulonglong *)(lVar5 + -0x6d0)) << 0x20;
  *puVar1 = uVar37 ^ uVar31;
  uVar47 = CONCAT44(uVar11,uVar11);
  puVar32 = (ulonglong *)(lVar5 - ((ulonglong)uVar50 ^ 0xed741b45));
  *puVar32 = (*(ulonglong *)(lVar5 + -0x670) ^ uVar41 | uVar37) ^ uVar47;
  uVar39 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar50 ^ 0xed741c25)) =
       (*(ulonglong *)(lVar5 + -0x688) ^ uVar33) - (*puVar3 ^ uVar47) ^ uVar39;
  uVar15 = DAT_182671858;
  lVar6 = DAT_182671560;
  bVar40 = (byte)uVar7;
  uVar37 = *(ulonglong *)(lVar5 - (uVar44 ^ 0x23cdf6f1)) ^ uVar39 ^ uVar47 ^ uVar24 ^ *puVar2;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar37;
  uVar33 = (uVar37 ^ uVar39) >> ((bVar40 ^ 0xbb) & 0x3f);
  uVar56 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(lVar5 + -0x670) = uVar33 ^ CONCAT44(uVar15,uVar15);
  bVar19 = (byte)uVar17;
  uVar37 = (uVar39 ^ uVar37) << ((bVar19 ^ 0xf9) & 0x3f);
  *puVar1 = uVar37 ^ uVar56;
  uVar15 = DAT_18267181c;
  local_c0 = (byte)uVar11;
  *(longlong *)(lVar6 + -0x688) = -0x3c759177b3968d01 << ((*(byte *)puVar3 ^ local_c0) & 0x3f);
  uVar11 = DAT_1826717a0;
  uVar37 = uVar37 | uVar33;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x6d0) = uVar37 ^ uVar34;
  uVar57 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 - (uVar51 ^ 0x110be731)) = (uVar24 ^ *puVar2) - uVar37 ^ uVar57;
  uVar48 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0xfe7ff8fe)) =
       uVar48 ^ uVar39 ^ uVar28 ^ *(ulonglong *)(lVar6 + -0x548) ^ *(ulonglong *)(lVar6 + -0x510);
  uVar17 = DAT_18267156c;
  uVar42 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar37 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0xfe7ff806)) =
       (uVar48 ^ *(ulonglong *)(lVar6 + -0x688)) >> ((bVar19 ^ 0xe9) & 0x3f) ^ uVar42;
  uVar28 = (uVar48 ^ *(ulonglong *)(lVar6 + -0x688)) << 0x2a;
  *(uint *)(lVar6 + -0x8c) = (uVar10 ^ 0xf788d8a3) + 0xb6f2cf50;
  *puVar1 = uVar28 ^ uVar23;
  uVar8 = DAT_182671574;
  uVar43 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar33 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar6 - (uVar37 ^ 0xddbb0cd8)) =
       (uVar28 | *(ulonglong *)(lVar6 + -0x670) ^ uVar42) ^ uVar43;
  uVar42 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(lVar6 + -0x548) =
       (uVar39 ^ *(ulonglong *)(lVar6 + -0x510)) -
       (*(ulonglong *)(lVar6 - (uVar33 ^ 0x41e8b114)) ^ uVar43) ^ uVar42;
  uVar21 = DAT_18267166c;
  uVar52 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar28 = *(ulonglong *)(lVar6 - (uVar58 ^ 0xe4491c58)) ^ *puVar3 ^ uVar52 ^ uVar43 ^ uVar57;
  *(ulonglong *)(lVar6 + -0x688) = uVar28;
  uVar7 = DAT_182671588;
  uVar54 = CONCAT44(uVar21,uVar21);
  local_160 = (byte)uVar10;
  *(ulonglong *)(lVar6 + -0x670) = (uVar28 ^ uVar52) >> ((local_160 ^ 0x58) & 0x3f) ^ uVar54;
  *puVar1 = 0xa18934c30e0b2c >> ((bVar40 ^ 0xa0) & 0x3f);
  uVar12 = DAT_182671598;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671710,DAT_182671710);
  uVar37 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x10080f4c)) =
       (uVar52 ^ uVar28) << (((byte)uVar8 ^ 0xde) & 0x3f) ^ uVar30;
  uVar13 = DAT_18267159c;
  uVar7 = DAT_182671570;
  uVar25 = (ulonglong)DAT_18267159c;
  uVar37 = *(ulonglong *)(lVar5 - (uVar37 ^ 0xfe76fb6f)) ^ uVar30 |
           *(ulonglong *)(lVar5 + -0x670) ^ uVar54;
  uVar28 = CONCAT44(DAT_182671570,uVar12);
  *puVar1 = uVar37 ^ uVar48;
  uVar49 = uVar28 ^ 0x8229eaeababc2bfb | uVar30 ^ *(ulonglong *)(lVar5 + -0x510);
  *(ulonglong *)(lVar5 + -0x800) = uVar49;
  uVar11 = DAT_182671614;
  uVar21 = DAT_182671568 ^ 0x58076297;
  uVar57 = (uVar57 ^ *puVar32) - uVar37 ^ uVar30;
  *(ulonglong *)(lVar5 + -0x510) = uVar57;
  *(uint *)(lVar5 + -0x47c) = uVar21 * (uVar13 ^ 0x598a530f);
  uVar14 = DAT_1826715a4;
  uVar9 = DAT_182671580;
  lVar5 = DAT_182671560;
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar34 = uVar33 ^ uVar42 ^ uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x548) ^
           *(ulonglong *)(DAT_182671560 + -0x6d0);
  *puVar3 = uVar34;
  uVar21 = DAT_18267157c;
  *(ulonglong *)(lVar5 + -0x6d0) =
       (*(ulonglong *)(lVar5 + -0x670) ^ uVar54) - (CONCAT44(uVar9,uVar14) ^ 0xe8750c47eb3ce4cb);
  lVar5 = DAT_182671560;
  uVar37 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0xb2987170)) ^ uVar33) >>
           ((bVar18 ^ 0x4d) & 0x3f);
  puVar32 = (ulonglong *)(DAT_182671560 + -0xbf0);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar37 ^ uVar52;
  uVar11 = DAT_1826715b4;
  uVar28 = CONCAT44(uVar10,DAT_1826715b4);
  *puVar32 = *(ulonglong *)(lVar5 - (uVar25 ^ 0x4e51d2a)) ^ CONCAT44(uVar26,uVar17) ^ uVar52 ^
             0xc1bbc993073a21e8;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (uVar33 ^ uVar34) << (((byte)uVar11 ^ 0x35) & 0x3f) ^ uVar48;
  puVar53 = (ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0xefa9f288));
  uVar25 = CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar37 = uVar37 | uVar48 ^ *puVar53;
  uVar34 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *puVar32 = uVar37 ^ uVar25;
  uVar21 = DAT_182671590;
  *puVar3 = (uVar42 ^ *(ulonglong *)(lVar5 + -0x548)) - uVar37 ^ uVar34;
  uVar37 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 + -0x688) =
       (CONCAT44(DAT_182671598,uVar50) ^ 0x4c6f49371139558e) << ((byte)uVar49 & 0x3f);
  lVar5 = DAT_182671560;
  uVar49 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar57 = *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x4d9c8a92)) ^ uVar49 ^ uVar25 ^ uVar30 ^ uVar57
  ;
  uVar52 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar57;
  uVar37 = (uVar57 ^ uVar49) >> ((bVar19 ^ 0xe6) & 0x3f);
  *(ulonglong *)(lVar5 + -0x548) = uVar37 ^ uVar52;
  uVar11 = DAT_18267158c;
  lVar5 = DAT_182671560;
  bVar19 = (byte)DAT_18267158c;
  *(ulonglong *)(DAT_182671560 - (uVar55 ^ 0xc07b20ff)) =
       (CONCAT44(uVar7,uVar8) ^ 0xc6b1f1c696a2ab12) - uVar37;
  uVar25 = (uVar49 ^ *(ulonglong *)(lVar5 + -0x6d0)) << ((bVar19 ^ 0xd9) & 0x3f);
  uVar37 = *(ulonglong *)(lVar5 + -0x548);
  *puVar32 = uVar25 ^ CONCAT44(DAT_1826715fc,DAT_1826715fc);
  uVar7 = DAT_1826715a0;
  *(ulonglong *)(lVar5 + -0x800) = (uVar52 ^ uVar37 | uVar25) ^ uVar38;
  uVar17 = DAT_182671588;
  uVar25 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_18267157c ^ 0xefa9f2d0)) =
       (CONCAT44(uVar7,DAT_182671570) ^ 0x9d569d56612c97a4) -
       (*(ulonglong *)(lVar5 + -0x670) ^ uVar54);
  puVar22 = (ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0x4e51eb2));
  uVar49 = CONCAT44(DAT_182671768,DAT_182671768);
  uVar37 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x100801ac)) =
       (uVar30 ^ *puVar22) - (*(ulonglong *)(lVar5 + -0x400) ^ uVar49) ^ uVar34;
  uVar25 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0xddbb0848)) =
       (uVar34 ^ *puVar32) - (uVar38 ^ *(ulonglong *)(lVar5 + -0x800)) ^ uVar25;
  uVar15 = DAT_1826717f0;
  uVar8 = DAT_1826715a8;
  uVar37 = (ulonglong)DAT_1826715a8;
  puVar4 = (ulonglong *)(lVar5 + -0x110);
  *(ulonglong *)(lVar5 + -0x670) =
       CONCAT44(uVar11,uVar17) ^ 0x259418b68a3cc472 | *(ulonglong *)(lVar5 + -0x688);
  uVar11 = DAT_1826717d4;
  uVar57 = CONCAT44(DAT_182671638,DAT_182671638);
  uVar30 = (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar5 + -0xc08)) + (uVar23 ^ *puVar4);
  *(ulonglong *)(lVar5 + -0x6d0) = uVar30 ^ uVar57;
  uVar23 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xddbb0810)) =
       (uVar38 ^ *(ulonglong *)(DAT_182671560 + -0x800)) - uVar30 ^ uVar23;
  uVar37 = (ulonglong)DAT_18267156c;
  *puVar32 = CONCAT44(DAT_1826715a4,uVar8) ^ 0xd1df8a731e5bdadd | uVar43 ^ *puVar2;
  uVar11 = DAT_1826715f4;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar48 = *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xddbb05a8)) ^ uVar30 ^ uVar34 ^ *puVar3 ^
           uVar48;
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar48;
  lVar6 = DAT_182671560;
  uVar38 = (uVar48 ^ uVar30) >> (((byte)uVar21 ^ 0x60) & 0x3f);
  *(ulonglong *)(lVar5 + -0x670) = uVar38 ^ uVar31;
  uVar15 = DAT_182671628;
  uVar37 = (uVar30 ^ uVar48) << 0x1f;
  uVar31 = CONCAT44(uVar11,uVar11);
  *puVar4 = uVar37 ^ uVar31;
  uVar11 = DAT_18267172c;
  uVar38 = uVar38 | uVar37;
  uVar48 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x800) = uVar38 ^ uVar48;
  lVar5 = DAT_182671560;
  uVar37 = CONCAT44(uVar11,uVar11);
  *puVar32 = (*(ulonglong *)(lVar6 - (uVar55 ^ 0xc07b2a8f)) ^ uVar34) -
             (*(ulonglong *)(DAT_182671560 - (uVar51 ^ 0x110becb9)) ^ uVar24) ^ uVar37;
  uVar24 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *puVar2 = (*(ulonglong *)(lVar5 - (uVar58 ^ 0xe4491670)) ^ uVar37) - uVar38 ^ uVar24;
  uVar37 = (uVar28 ^ 0x1800189cd5d7cf8) - (*(ulonglong *)(lVar5 + -0x2a0) ^ uVar56);
  *puVar1 = uVar37 ^ CONCAT44(DAT_182671634,DAT_182671634);
  uVar51 = CONCAT44(DAT_182671750,DAT_182671750);
  *puVar53 = uVar37 + uVar38 ^ uVar51;
  uVar51 = uVar25 ^ *(ulonglong *)(lVar5 + -0x688) ^ *(ulonglong *)(lVar5 + -0x548) ^ uVar45 ^
           uVar51;
  uVar37 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar5 + -0x670) = uVar51;
  uVar28 = (ulonglong)DAT_182671704;
  uVar37 = *(ulonglong *)(lVar5 - (uVar37 ^ 0xfe76f80f));
  uVar17 = DAT_182671704 >> 5;
  local_d0 = (byte)uVar13;
  uVar51 = (uVar51 ^ uVar45) << ((local_d0 ^ 0x99) & 0x3f);
  *(ulonglong *)(lVar5 + -0x9f8) = uVar51 ^ uVar54;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671588 ^ 0x1008082c)) =
       (uVar51 | uVar37 >> 5 ^ (uVar28 << 0x1b | (ulonglong)uVar17)) ^ uVar52;
  *puVar32 = (uVar25 ^ *(ulonglong *)(lVar5 + -0x548)) - (uVar52 ^ *puVar3) ^ uVar41;
  uVar37 = uVar24 ^ uVar23 ^ uVar27 ^ *puVar2 ^ *(ulonglong *)(lVar5 + -0x510);
  *puVar1 = uVar37;
  uVar21 = DAT_1826715a4;
  bVar19 = (byte)DAT_182671598;
  uVar30 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 - (uVar29 ^ 0xfe7ff676)) =
       (uVar37 >> 0x20 ^ (ulonglong)DAT_182671764) >> 5 ^ uVar49;
  uVar37 = *puVar2;
  uVar23 = (uVar27 ^ *puVar1) << ((bVar19 ^ 0x1b) & 0x3f);
  uVar51 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(lVar5 + -0x688) = uVar23 ^ uVar48;
  uVar28 = (ulonglong)DAT_182671580;
  uVar48 = CONCAT44(uVar7,DAT_18267158c);
  uVar23 = uVar49 ^ *(ulonglong *)(lVar5 + -0x800) | uVar23;
  uVar25 = uVar23 ^ uVar51;
  *(ulonglong *)(lVar5 + -0x670) = uVar25;
  *puVar4 = (uVar48 ^ 0xc5f8b4c1048eec7f) + uVar23;
  *(ulonglong *)(lVar5 + -0x548) =
       (uVar24 ^ uVar37) - (*(ulonglong *)(lVar5 - (uVar28 ^ 0xddbb0b70)) ^ uVar51) ^ uVar46;
  uVar8 = DAT_182671590;
  uVar23 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar5 + -0x510) = CONCAT44(uVar13,uVar21) ^ 0x9b6fd3f6d32ffff2 | 0x1b6f4342d32e7392
  ;
  uVar7 = DAT_182671570;
  uVar37 = (ulonglong)DAT_18267166c;
  uVar17 = DAT_18267166c >> 0xb;
  *(ulonglong *)(lVar5 + -0x800) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_18267157c ^ 0xefa9fff0)) ^ uVar25 ^ uVar41 ^ uVar35 ^
       uVar51;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xf4812545)) =
       (uVar37 << 0x15 | (ulonglong)uVar17) ^ *(ulonglong *)(lVar5 + -0x9f8) >> 0xb;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar5 + -0x800);
  *puVar4 = uVar35 >> (((byte)uVar8 ^ 0x56) & 0x3f) ^ uVar52;
  uVar37 = (ulonglong)DAT_182671764;
  *(ulonglong *)(lVar5 - (uVar23 ^ 0xccb0e999)) = uVar35 << 0x29 ^ uVar39;
  *puVar22 = (*puVar1 >> 0x20 ^ uVar37) >> 0x11;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x4d9c8712)) = (uVar39 ^ *puVar2 | uVar52 ^ *puVar4) ^ uVar36;
  uVar24 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar17 = DAT_18267156c ^ 0x8e6efd4f;
  *(ulonglong *)(lVar5 + -0x9f8) =
       (*(ulonglong *)(lVar5 - (uVar23 ^ 0xccb0e3b1)) ^ uVar41) -
       (*(ulonglong *)(lVar5 + -0x670) ^ uVar36) ^ uVar24;
  uVar37 = *puVar3;
  *(uint *)(lVar5 + -0x8c) = uVar17 + 0x5c2acc83;
  uVar51 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar5 - (uVar44 ^ 0x23cdf209)) =
       uVar52 ^ uVar37 ^ uVar46 ^ *(ulonglong *)(lVar5 + -0x548) ^ uVar51;
  uVar37 = *(ulonglong *)(lVar5 + -0x548);
  uVar23 = (*(ulonglong *)(lVar5 + -0x688) ^ uVar51) >> (((byte)uVar7 ^ 0xe5) & 0x3f);
  *(ulonglong *)(lVar5 + -0x800) = uVar23 ^ uVar33;
  uVar51 = (*(ulonglong *)(lVar5 + -0x688) ^ uVar51) << ((local_160 ^ 0x6e) & 0x3f);
  *(ulonglong *)(lVar5 + -0x510) = uVar51 ^ uVar42;
  uVar23 = uVar23 | uVar51;
  *puVar1 = uVar23 ^ uVar57;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0xddbb0c10)) = (uVar46 ^ uVar37) - uVar23 ^ uVar31;
  uVar28 = uVar57 ^ uVar47 ^ *(ulonglong *)(lVar5 + -0x9f8) ^ uVar24 ^ *puVar1;
  uVar37 = *puVar4;
  *puVar2 = uVar28;
  uVar51 = *puVar2;
  *puVar32 = uVar31 ^ uVar47 ^ uVar37 ^ uVar28;
  *puVar3 = (uVar47 ^ uVar51) >> (((byte)uVar21 ^ 0x56) & 0x3f) ^ uVar47;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar20;
  return;
}



############ FUN_ 180e71b70 size=5499 ############

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

void FUN_180e71b70(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  byte bVar14;
  byte bVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  byte local_res20;
  
  uVar10 = DAT_182671598;
  lVar3 = DAT_182671560;
  uVar18 = (ulonglong)DAT_182671598;
  uVar19 = (DAT_182671598 << 0x10 | DAT_182671598 & 0xff00) << 8 | DAT_182671598 >> 8 & 0xff00 |
           DAT_182671598 >> 0x18;
  uVar20 = uVar19 ^ 0x3fdbc3c6;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671b00);
  uVar32 = *(uint *)(&DAT_182611e78 + DAT_182671b00) ^ DAT_182671598;
  uVar23 = (ulonglong)DAT_182671598;
  uVar45 = (ulonglong)uVar20;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x9f8);
  DAT_1826715b0 = uVar20;
  *(uint *)(DAT_182671560 + -0x274) = (uVar19 ^ 0x72531f04) + *(int *)(DAT_182671560 + -0x47c);
  uVar11 = DAT_182671858;
  puVar16 = (ulonglong *)(lVar3 - (uVar23 ^ 0xb29872d8));
  bVar15 = (byte)(uVar10 >> 0x18);
  uVar33 = CONCAT44(DAT_182671608,DAT_182671608);
  uVar40 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar21 = (uVar33 ^ *puVar16) << ((bVar15 ^ 0xbe) & 0x3f);
  *(ulonglong *)(lVar3 + -0x688) = uVar21 ^ uVar40;
  uVar37 = CONCAT44(uVar11,uVar11);
  uVar50 = CONCAT44(DAT_182671790,DAT_182671790);
  *(ulonglong *)(lVar3 + -0x510) = (uVar21 | uVar33 ^ *(ulonglong *)(lVar3 + -0x270)) ^ uVar37;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xb2987b00)) =
       CONCAT44(uVar19,uVar10) ^ 0x3fdbc3c600000000 ^ uVar50 ^ *puVar1 ^ 0xdeeb319607c0f231;
  uVar11 = DAT_182671768;
  uVar29 = CONCAT44(DAT_182671710,DAT_182671710);
  puVar41 = (ulonglong *)(lVar3 - (uVar23 ^ 0xb2987648));
  *puVar41 = (*(ulonglong *)(lVar3 - (uVar45 ^ 0x3fa8528c)) ^ uVar50) -
             (uVar37 ^ *(ulonglong *)(lVar3 + -0x510)) ^ uVar29;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar22 = CONCAT44(DAT_182671640,DAT_182671640);
  uVar38 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  puVar17 = (ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x3fa85a64));
  uVar21 = uVar38 ^ uVar22 ^ uVar30 ^ *puVar17 ^ *(ulonglong *)(lVar3 + -0x670);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar21;
  uVar11 = DAT_1826716f4;
  uVar6 = DAT_1826715a8;
  *(ulonglong *)(lVar3 + -0xbf0) =
       CONCAT44(uVar10,uVar19) ^ 0x5e56d3ad287e209c | CONCAT44(uVar10,uVar10) ^ 0x6dc7f80cf0f3b2ba;
  uVar5 = DAT_18267159c;
  puVar48 = (ulonglong *)(lVar3 + -0x1d8);
  uVar51 = CONCAT44(uVar11,uVar11);
  *puVar48 = (uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x8a8)) >> (((byte)uVar6 ^ 0x39) & 0x3f) ^
             uVar51;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x3fa85904)) =
       (uVar30 ^ uVar21) << (((byte)uVar5 ^ 0xa5) & 0x3f) ^ uVar50;
  uVar12 = DAT_1826718cc;
  uVar6 = DAT_18267156c;
  uVar21 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar24 = (ulonglong)DAT_18267156c;
  uVar33 = uVar51 ^ *puVar48 | uVar50 ^ *(ulonglong *)(lVar3 + -0x270);
  uVar23 = uVar33 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x688) = uVar23;
  uVar11 = DAT_1826717a8;
  uVar52 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x800) = (uVar38 ^ *(ulonglong *)(lVar3 + -0x110)) - uVar33 ^ uVar52;
  uVar5 = DAT_1826715ac;
  uVar38 = CONCAT44(uVar11,uVar11);
  *puVar1 = uVar38 ^ uVar21 ^ uVar29 ^ *puVar41 ^ uVar23;
  lVar3 = DAT_182671560;
  uVar21 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0x3fa85d04)) =
       (*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xddbb04f8)) ^ uVar38) >>
       (((byte)uVar5 ^ 0xf1) & 0x3f) ^ uVar21;
  uVar8 = DAT_182671638;
  uVar36 = (ulonglong)DAT_182671638;
  uVar33 = CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar38 = (uVar38 ^ *puVar1) << 0x32;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar38 ^ uVar33;
  uVar5 = DAT_18267157c;
  uVar7 = DAT_182671574;
  uVar38 = uVar21 ^ *(ulonglong *)(lVar3 + -0x670) | uVar38;
  uVar46 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar38 ^ uVar46;
  uVar8 = DAT_182671594;
  uVar28 = (ulonglong)DAT_182671594;
  *puVar48 = (CONCAT44(uVar7,uVar10) ^ 0xcb0e5beb9f78ada3) -
             (CONCAT44(uVar5,DAT_182671594) ^ 0x11673a2955d2aa35);
  uVar24 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar23 = (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x548)) -
           (*(ulonglong *)(DAT_182671560 + -0x240) ^ uVar24);
  uVar25 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar23 ^ CONCAT44(DAT_182671678,DAT_182671678);
  uVar5 = DAT_182671568;
  uVar21 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671568 ^ 0xe4491c90)) = uVar23 - uVar38 ^ uVar25
  ;
  uVar11 = DAT_182671770;
  lVar3 = DAT_182671560;
  uVar26 = CONCAT44(DAT_182671844,DAT_182671844);
  uVar39 = CONCAT44(DAT_18267186c,DAT_18267186c);
  puVar41 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xddbb0900)) ^ uVar30) +
       (uVar26 ^ *(ulonglong *)(DAT_182671560 + -0x610)) ^ uVar39;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x110becb9)) =
       (uVar46 ^ *puVar41) - (*(ulonglong *)(lVar3 - (uVar28 ^ 0x110be3c9)) ^ uVar39) ^ uVar29;
  uVar11 = DAT_182671688;
  uVar8 = DAT_182671578;
  uVar42 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar21 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0x32a28b01)) ^ uVar42 ^ uVar52 ^
           uVar37 ^ *(ulonglong *)(lVar3 + -0x510);
  *(ulonglong *)(lVar3 + -0x670) = uVar21;
  uVar9 = DAT_18267158c;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0x7ffe7d0e)) =
       (uVar21 ^ uVar42) >> (((byte)uVar8 ^ 0x25) & 0x3f) ^ uVar38;
  bVar13 = (byte)uVar7;
  uVar23 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar21 = (ulonglong)DAT_1826715a0;
  *puVar48 = (uVar42 ^ *(ulonglong *)(DAT_182671560 + -0x670)) << ((bVar13 ^ 0xfc) & 0x3f) ^ uVar23;
  uVar8 = DAT_182671580;
  lVar3 = DAT_182671560;
  uVar43 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  puVar27 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a4 ^ 0x4d9c842a));
  *puVar27 = (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xfe76ffa7)) ^ uVar23 |
             uVar38 ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) ^ uVar43;
  uVar11 = DAT_1826718d0;
  uVar21 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar3 + -0x270) =
       (CONCAT44(uVar8,uVar6) ^ 0xcb419a2fbd27d63b) << (((byte)DAT_182671584 ^ 0x59) & 0x3f);
  uVar7 = DAT_182671578;
  uVar6 = DAT_182671570;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar21 = (uVar52 ^ *(ulonglong *)(lVar3 + -0x800)) -
           (*(ulonglong *)(lVar3 - (uVar21 ^ 0xccb0ee91)) ^ uVar46);
  uVar31 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(lVar3 + -0x610) = uVar21 ^ uVar28;
  uVar11 = DAT_18267166c;
  *(ulonglong *)(lVar3 + -0x510) = uVar21 - (uVar43 ^ *(ulonglong *)(lVar3 + -0x548)) ^ uVar31;
  uVar23 = CONCAT44(uVar11,uVar11);
  uVar21 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xed741f45)) =
       (CONCAT44(uVar6,uVar19) ^ 0xb7edc32ff8c6748) - (*(ulonglong *)(lVar3 + -0x638) ^ uVar23) ^
       uVar21;
  lVar4 = DAT_182671560;
  uVar53 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xed7412c5)) =
       (uVar21 ^ *(ulonglong *)(lVar3 + -0x670)) + (uVar43 ^ *(ulonglong *)(lVar3 + -0x548)) ^
       uVar53;
  uVar47 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *puVar48 = uVar47 ^ uVar53 ^ uVar25 ^ *(ulonglong *)(lVar4 + -0x110) ^
             *(ulonglong *)(lVar4 + -0xbf0);
  uVar6 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar34 = CONCAT44(DAT_18267177c,DAT_18267177c);
  bVar14 = (byte)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0xe4491ff0)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_18267156c ^ 0xddbb0cd8)) ^ uVar47) >>
       (((byte)DAT_18267157c ^ 0x20) & 0x3f) ^ uVar34;
  uVar49 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar3 + -0x800) = (uVar47 ^ *puVar16) << ((bVar14 ^ 0x5f) & 0x3f) ^ uVar49;
  uVar21 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x7ffe702e)) =
       (*(ulonglong *)(lVar3 + -0x8a8) >> 0x20 ^ uVar36) >> 0x13;
  uVar11 = DAT_182671730;
  uVar46 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar21 = *(ulonglong *)(lVar3 - (uVar21 ^ 0x41e8b2bc)) ^ uVar34 |
           uVar49 ^ *(ulonglong *)(lVar3 + -0x800);
  *(ulonglong *)(lVar3 + -0x610) = uVar21 ^ uVar46;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xddbb0848)) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x110)) - uVar21 ^ uVar35;
  uVar7 = DAT_1826715a8;
  uVar6 = DAT_1826715a4;
  uVar44 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar43 = uVar44 ^ uVar31 ^ uVar29 ^ *puVar1 ^ *(ulonglong *)(lVar3 + -0x510);
  uVar29 = CONCAT44(DAT_182671594,DAT_1826715a4);
  *(ulonglong *)(lVar3 + -0x670) = uVar43;
  uVar5 = DAT_18267159c;
  uVar36 = (uVar43 ^ uVar44) >> (((byte)uVar6 ^ 0x42) & 0x3f);
  uVar52 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar38 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar21 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (uVar44 ^ uVar43) << (((byte)DAT_182671570 ^ 0xed) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar36 ^ uVar52;
  uVar43 = CONCAT44(uVar8,DAT_1826715a0);
  *(ulonglong *)(lVar3 + -0x8a8) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x10080c8c)) ^ uVar38 | uVar36) ^ uVar24;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x4e513a2)) =
       uVar43 ^ uVar47 ^ *puVar48 ^ 0x2a40c5342de802d5;
  uVar47 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar21 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar3 + -0x270) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x510)) - (uVar24 ^ *(ulonglong *)(lVar3 + -0x8a8)) ^
       uVar47;
  bVar14 = (byte)DAT_1826715b4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x4e51ab2)) =
       uVar21 ^ uVar35 ^ uVar24 ^ *(ulonglong *)(lVar3 + -0x548) ^ *(ulonglong *)(lVar3 + -0x8a8);
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar43 = (uVar21 ^ *(ulonglong *)(DAT_182671560 + -0x110)) >> ((bVar14 ^ 0x3b) & 0x3f);
  *puVar1 = uVar43 ^ uVar31;
  lVar4 = DAT_182671560;
  uVar38 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0xb2987210)) ^ uVar21) <<
           (((byte)DAT_18267157c ^ 6) & 0x3f);
  uVar44 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar21 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar38 ^ CONCAT44(DAT_1826716bc,DAT_1826716bc);
  puVar16 = (ulonglong *)(lVar4 - (uVar21 ^ 0xddbb0bd0));
  *puVar16 = (uVar38 | uVar43) ^ uVar44;
  bVar14 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0xb29878f0)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x548)) - (uVar44 ^ *(ulonglong *)(lVar4 + -0x6d0)) ^
       uVar26;
  uVar43 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar21 = uVar47 ^ uVar46 ^ *(ulonglong *)(lVar4 + -0x270) ^ uVar43 ^
           *(ulonglong *)(lVar4 + -0x610);
  *puVar48 = uVar21;
  *(ulonglong *)(lVar4 + -0x800) = (uVar21 ^ uVar43) >> ((bVar14 ^ 0x57) & 0x3f);
  uVar21 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671568 ^ 0xe4491890)) =
       (*puVar48 ^ uVar43) >> ((bVar15 ^ 0xa4) & 0x3f) ^ uVar53;
  uVar46 = CONCAT44(DAT_182671714,DAT_182671714);
  uVar38 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a0 ^ 0xfe76f6d7)) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0xccb0e999)) ^ uVar43) <<
       (((byte)DAT_182671584 ^ 0x5c) & 0x3f) ^ uVar46;
  lVar3 = DAT_182671560;
  uVar43 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar21 = (ulonglong)DAT_18267158c;
  uVar36 = (*(ulonglong *)(DAT_182671560 - (uVar38 ^ 0xddbb05a8)) ^ uVar46 |
           uVar53 ^ *(ulonglong *)(DAT_182671560 + -0x510)) ^ uVar43;
  puVar54 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0x41e8b1dc));
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar36;
  uVar46 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar21 ^ 0x7ffe748e)) ^ uVar47) - (*puVar54 ^ uVar43) ^ uVar46;
  uVar5 = DAT_182671568;
  lVar4 = DAT_182671560;
  uVar53 = CONCAT44(DAT_182671628,DAT_182671628);
  bVar15 = (byte)DAT_18267159c;
  uVar38 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar43 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0x32a288f1)) ^ uVar26 ^ uVar36 ^
           uVar53 ^ uVar43;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar43;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267157c ^ 0xefa9f148)) =
       (uVar43 ^ uVar53) >> ((bVar15 ^ 0x8c) & 0x3f) ^ uVar38;
  uVar21 = (uVar53 ^ *(ulonglong *)(lVar4 + -0x670)) << 0x12;
  *(ulonglong *)(lVar4 + -0x610) = uVar21 ^ uVar49;
  *(int *)(lVar4 + -0x274) = *(int *)(lVar4 + -0x47c) * -0xddd9d51;
  uVar36 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  uVar21 = uVar21 | *(ulonglong *)(lVar4 + -0x548) ^ uVar38;
  *(ulonglong *)(lVar4 + -0x800) = uVar21 ^ uVar36;
  *puVar48 = (uVar26 ^ *(ulonglong *)(lVar4 + -0xbf0)) - uVar21 ^ uVar37;
  uVar6 = DAT_182671588;
  uVar47 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar4 + -0x510) =
       uVar34 ^ *puVar1 ^ uVar46 ^ uVar44 ^ *(ulonglong *)(lVar4 + -0x6d0);
  *(ulonglong *)(lVar4 - (uVar45 ^ 0x3fa853dc)) =
       (*(ulonglong *)(lVar4 - (uVar47 ^ 0x10080f4c)) ^ uVar34) >> (bVar13 & 0x3f) ^ uVar30;
  uVar11 = DAT_1826715bc;
  uVar49 = (ulonglong)DAT_182671590;
  uVar38 = (*(ulonglong *)(lVar4 - (uVar18 ^ 0xb2987610)) ^ uVar34) << (((byte)uVar5 ^ 0xb4) & 0x3f)
  ;
  uVar21 = *puVar1;
  uVar34 = CONCAT44(uVar7,DAT_182671590) ^ 0x513e3406d0b404c9 |
           uVar34 ^ *(ulonglong *)(lVar4 + -0x510);
  *(ulonglong *)(lVar4 + -0x270) = uVar38 ^ uVar53;
  *(ulonglong *)(lVar4 + -0x110) = uVar34;
  uVar9 = DAT_182671614;
  uVar45 = CONCAT44(uVar11,uVar11);
  uVar38 = uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x8a8) | uVar38;
  uVar26 = (ulonglong)DAT_182671614;
  uVar30 = uVar38 ^ uVar45;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar30;
  uVar44 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(DAT_182671560 + -0x548) = (uVar21 ^ uVar46) - uVar38 ^ uVar44;
  lVar3 = DAT_182671560;
  bVar15 = (byte)DAT_182671584;
  uVar43 = (ulonglong)DAT_182671570;
  *(ulonglong *)(DAT_182671560 + -0x610) =
       uVar37 ^ *puVar48 ^ CONCAT44(uVar9,uVar9) ^ uVar45 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar34 >> ((bVar15 ^ 0x49) & 0x3f);
  uVar7 = DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0x6d0) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a0 ^ 0xfe76f86f)) >> 0x19 ^
       ((ulonglong)(uVar9 >> 0x19) | uVar26 << 7) ^ uVar39;
  *(int *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0x4e519d6)) =
       *(int *)(lVar3 + -0x27c) >> ((byte)*(undefined4 *)(lVar3 + -0x754) & 0x1f);
  uVar5 = DAT_182671580;
  lVar3 = DAT_182671560;
  uVar38 = (ulonglong)DAT_182671580;
  uVar21 = (*(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xf48125dd)) ^ CONCAT44(uVar9,uVar9)) << 0x27;
  puVar41 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0xddbb0bd0));
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar21 ^ CONCAT44(DAT_182671650,DAT_182671650);
  uVar11 = DAT_182671648;
  *(ulonglong *)(lVar3 + -0x8a8) = (*puVar41 ^ uVar39 | uVar21) ^ uVar24;
  *(ulonglong *)(lVar3 - (uVar49 ^ 0xccb0ea31)) =
       (uVar37 ^ *puVar48) - (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0x2a0)) ^ uVar45;
  *puVar1 = (*(ulonglong *)(lVar3 + -0x270) ^ uVar45) -
            (*(ulonglong *)(lVar3 - (uVar18 ^ 0xb2987ba8)) ^ uVar24) ^ uVar33;
  uVar21 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar8,uVar6) ^ 0x8b3d85164748feee) + *(longlong *)(lVar3 + -0x110);
  *(ulonglong *)(lVar3 + -0xbf0) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x4d9c8322)) ^ uVar24) +
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x3b8)) ^ uVar40;
  uVar11 = DAT_18267169c;
  *(ulonglong *)(lVar3 + -0x610) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x8a8)) -
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xddbb06f0)) ^ uVar40) ^ uVar52;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar21 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0x510) =
       *(ulonglong *)(lVar3 + -0x800) ^ *puVar27 ^ uVar24 ^ uVar44 ^ uVar36;
  uVar8 = DAT_1826715b4;
  uVar18 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xddbb0bd0)) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xc07b2def)) ^ uVar24) >>
       (((byte)DAT_182671578 ^ 0x14) & 0x3f) ^ uVar31;
  *puVar48 = CONCAT44(uVar7,uVar10) ^ 0xa756d0ef466a419 | *(ulonglong *)(lVar3 + -0x548) ^ uVar44;
  *(ulonglong *)(lVar3 - (uVar47 ^ 0x1008082c)) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xddbb0810)) ^ uVar24) << (((byte)uVar6 ^ 0x43) & 0x3f) ^
       uVar28;
  uVar11 = DAT_182671888;
  *(ulonglong *)(lVar3 + -0x670) = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x5f8) ^ uVar22) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x6d0) | uVar28 ^ *(ulonglong *)(lVar3 + -0x270)) ^ uVar22;
  *(ulonglong *)(lVar3 + -0x3b8) =
       (*(ulonglong *)(lVar3 + -0x548) ^ uVar44) - (uVar39 ^ *(ulonglong *)(lVar3 + -0x688)) ^
       uVar51;
  uVar5 = DAT_182671584;
  uVar24 = (ulonglong)DAT_182671584;
  uVar38 = (ulonglong)DAT_182671594;
  local_res20 = (byte)uVar10;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xf4812b65)) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x32a280b9)) ^ uVar51) - (uVar22 ^ *puVar17) ^
       CONCAT44(uVar11,uVar11);
  uVar21 = (uVar29 ^ 0xeef41abeb2637e99) - (*(ulonglong *)(lVar3 + -0xc08) ^ uVar42);
  *puVar48 = 0;
  uVar11 = DAT_1826716b8;
  *(ulonglong *)(lVar3 + -0x800) = uVar21 ^ uVar22;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar18 = (*puVar54 ^ uVar22) + uVar21 ^ uVar29;
  uVar21 = *puVar1;
  *(ulonglong *)(lVar3 + -0x510) = uVar18;
  *(ulonglong *)(lVar3 + -0x670) = uVar23 ^ uVar33 ^ uVar21 ^ uVar18 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x270) = CONCAT44(uVar5,uVar8) ^ uVar18 ^ uVar29 ^ 0xec217d147ee1462f;
  uVar18 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar21 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267157c ^ 0xefa9f2d0)) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x670)) >> ((local_res20 ^ 5) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar3 + -0x548) = **(ulonglong **)(lVar3 - (uVar21 ^ 0xddbb0738)) ^ uVar35;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xfe7ff8fe)) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x110be331)) ^ uVar23) << 0x3b ^ uVar25;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x110be6f9)) =
       (uVar18 ^ *puVar16 | uVar25 ^ *(ulonglong *)(lVar3 + -0x688)) ^ uVar22;
  uVar21 = *puVar1;
  uVar18 = *(ulonglong *)(lVar3 + -0x3b8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar20) * 4) = uVar32;
  *puVar48 = (uVar33 ^ uVar21) - (uVar22 ^ uVar18) ^ uVar50;
  return;
}



############ FUN_ 180e652d0 size=5612 ############

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

void FUN_180e652d0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  byte bVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte bVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte bVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  byte local_d8;
  
  uVar15 = DAT_182671874;
  uVar9 = DAT_1826715a0;
  uVar10 = DAT_18267157c;
  uVar18 = DAT_182671578;
  uVar20 = DAT_182671570;
  uVar21 = DAT_182671568;
  lVar7 = DAT_182671560;
  uVar23 = DAT_18267158c & 7;
  if (uVar23 < 4) {
    if (uVar23 < 2) {
      DAT_182671594 = DAT_182671598;
      if (uVar23 == 0) {
        DAT_182671594 = DAT_18267158c;
      }
    }
    else {
      DAT_182671594 = DAT_1826715a4;
      if (uVar23 < 3) {
        DAT_182671594 = DAT_182671588;
      }
    }
  }
  else if (uVar23 < 6) {
    DAT_182671594 = DAT_18267156c;
    if (uVar23 < 5) {
      DAT_182671594 = DAT_1826715a8;
    }
  }
  else {
    DAT_182671594 = DAT_1826715b0;
    if (uVar23 < 7) {
      DAT_182671594 = DAT_182671574;
    }
  }
  uVar47 = (ulonglong)DAT_18267157c;
  uVar33 = (ulonglong)DAT_182671568;
  uVar36 = (ulonglong)DAT_182671570;
  uVar35 = DAT_182671568 & DAT_182671578;
  uVar41 = DAT_1826715a0 * DAT_182671570;
  uVar28 = DAT_18267157c << 0x10 | DAT_18267157c >> 0x10;
  uVar23 = *(uint *)(&DAT_182611e80 + DAT_182671adc);
  uVar49 = *(uint *)(&DAT_182611e78 + DAT_182671adc) ^ DAT_18267157c;
  uVar19 = DAT_1826716ec + DAT_182671874 & 0xff;
  uVar24 = (DAT_1826716ec + DAT_182671874) * 0x100;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x9e8);
  DAT_182671794 = ((uVar24 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar30 = (ulonglong)DAT_182671794;
  uVar50 = CONCAT44(DAT_182671794,DAT_182671794);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x628);
  uVar25 = (CONCAT44(DAT_18267181c,DAT_18267181c) ^ *puVar1) -
           (CONCAT44(uVar28,DAT_182671570) ^ 0x18c9c38626aee17d);
  uVar17 = DAT_1826716ec & 0xff;
  DAT_182671580 = uVar35;
  DAT_1826715ac = uVar28;
  DAT_1826715b4 = uVar41;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar25 ^ uVar50;
  puVar45 = (ulonglong *)(lVar7 + -0x2a0);
  DAT_1826716ec = ((DAT_1826716ec << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar29 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar38 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  *puVar45 = uVar25 - (uVar29 ^ *puVar2) ^ uVar38;
  lVar7 = DAT_182671560;
  uVar31 = (ulonglong)uVar9;
  uVar17 = DAT_182671874 & 0xff;
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       CONCAT44(uVar9,uVar41) ^ CONCAT44(uVar21,DAT_18267158c) ^ 0x2ab6b992d20a09b9;
  uVar12 = DAT_1826715a4;
  uVar9 = DAT_18267159c;
  uVar40 = (ulonglong)DAT_1826715a4;
  DAT_182671874 = ((DAT_182671874 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar37 = (ulonglong)DAT_182671874;
  uVar26 = CONCAT44(DAT_182671874,DAT_182671874);
  puVar3 = (ulonglong *)(lVar7 + -0x318);
  puVar34 = (ulonglong *)(lVar7 + -0x1f0);
  uVar25 = CONCAT44(DAT_1826715a4,uVar28);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0x7ffe7c76)) =
       (uVar29 ^ *puVar2) - (CONCAT44(uVar35,DAT_1826715b0) ^ 0x6a1eab4121cdd532) ^ uVar26;
  *puVar1 = (uVar25 ^ 0xe3023dd212bf2f86) + (CONCAT44(uVar9,DAT_18267156c) ^ 0x86336e7da5f2a44e);
  uVar17 = DAT_182671588;
  lVar7 = DAT_182671560;
  uVar42 = CONCAT44(DAT_182671864,DAT_182671864);
  uVar25 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0x22f47e24)) =
       CONCAT44(DAT_1826716ac,DAT_1826716ac) ^ uVar42 ^ uVar50 ^ *puVar3 ^ *puVar34;
  uVar11 = DAT_182671594;
  uVar9 = DAT_182671574;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar17 ^ 0x69f963a5)) =
       *(ulonglong *)(lVar7 - (uVar25 ^ 0xe289e5d8)) >> 0x10 ^
       ((ulonglong)(uVar24 & 0xffff | uVar19) | uVar30 << 0x10) ^ uVar50;
  uVar30 = (uVar50 ^ *(ulonglong *)(lVar7 + -0x898)) << (((byte)uVar18 ^ 0xce) & 0x3f) |
           uVar50 ^ *(ulonglong *)(lVar7 + -0x6b8);
  uVar25 = CONCAT44(uVar21,DAT_182671598);
  *puVar34 = uVar30 ^ uVar38;
  uVar25 = (uVar42 ^ *puVar3) - (uVar25 ^ 0x1655193aa3b94886);
  *puVar2 = uVar25 ^ uVar26;
  uVar42 = uVar25 - uVar30 ^ uVar38;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar42;
  *puVar1 = (CONCAT44(uVar11,DAT_182671598) ^ 0xb473e319e57c62d1) + uVar30 ^ uVar50;
  uVar24 = DAT_1826715b0;
  lVar7 = DAT_182671560;
  uVar25 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x1a60bca8)) ^ uVar26 ^ uVar38 ^
           uVar50 ^ *puVar45;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar25;
  uVar37 = *(ulonglong *)(lVar7 - ((ulonglong)uVar28 ^ 0xe66a5ce0)) >> 0x20 ^ uVar37;
  *puVar3 = uVar37 ^ uVar50;
  uVar19 = DAT_182671598;
  *puVar2 = (uVar26 ^ uVar25) << (((byte)uVar35 ^ 0x50) & 0x3f) ^ uVar26;
  lVar7 = DAT_182671560;
  puVar27 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0x55edc80d));
  uVar37 = uVar37 | uVar26 ^ *puVar27;
  *puVar34 = uVar37 ^ uVar26;
  *puVar1 = (*(ulonglong *)(lVar7 - (uVar47 ^ 0x5a58e4ca)) ^ uVar38) - uVar37 ^ uVar38;
  uVar37 = CONCAT44(DAT_18267179c,DAT_18267179c);
  puVar4 = (ulonglong *)(lVar7 + -0xa88);
  bVar6 = (byte)uVar20;
  *(ulonglong *)(lVar7 - (uVar33 ^ 0x702325c8)) = uVar37 ^ uVar26 ^ uVar38 ^ uVar42 ^ *puVar4;
  uVar25 = *(ulonglong *)(lVar7 + -0x6b8);
  bVar32 = (byte)(uVar10 >> 0x10);
  uVar43 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *puVar3 = (uVar37 ^ *(ulonglong *)(lVar7 + -0x6b8)) >> ((bVar6 ^ 0x57) & 0x3f) ^ uVar43;
  uVar20 = DAT_1826715a8;
  uVar30 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar7 - (uVar31 ^ 0xfe76f857)) =
       (uVar37 ^ uVar25) << ((bVar32 ^ 0x78) & 0x3f) ^ uVar30;
  lVar8 = DAT_182671560;
  uVar37 = CONCAT44(DAT_182671630,DAT_182671630);
  uVar25 = *(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0x7ffe70d6)) ^ uVar30 | uVar43 ^ *puVar3;
  *puVar45 = uVar25 ^ uVar37;
  uVar17 = DAT_182671588;
  uVar44 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *puVar4 = (uVar38 ^ *(ulonglong *)(lVar8 + -0x898)) - uVar25 ^ uVar44;
  local_d8 = (byte)uVar21;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0x8affd5ef)) =
       (CONCAT44(uVar20,DAT_18267156c) ^ 0xb8873136a1f7a775) -
       (CONCAT44(uVar24,DAT_18267159c) ^ 0x6ab30cf8c3fa12bf);
  uVar13 = DAT_1826718a8;
  lVar7 = DAT_182671560;
  uVar37 = uVar37 ^ uVar38 ^ uVar50 ^ *puVar45 ^ *puVar1;
  *puVar3 = uVar37;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar25 = (ulonglong)DAT_182671594;
  *puVar2 = (uVar37 ^ uVar50) >> ((local_d8 ^ 0x4a) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar7 + -0x898) =
       (*(ulonglong *)(lVar7 - (uVar25 ^ 0x4d678fe7)) ^ uVar50) << 6 ^ uVar38;
  uVar20 = DAT_182671574;
  lVar8 = DAT_182671560;
  puVar48 = (ulonglong *)(lVar7 - ((ulonglong)uVar41 ^ 0x886a4291));
  uVar39 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar25 = *(ulonglong *)(lVar7 - (uVar47 ^ 0x5a58e042)) ^ uVar30 | uVar38 ^ *puVar48;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar25 ^ uVar39;
  *puVar45 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0x7ffe7f16)) ^ uVar38) - uVar25 ^ uVar50;
  lVar7 = DAT_182671560;
  uVar37 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar30 = uVar37 ^ uVar44 ^ uVar26 ^ *puVar34 ^ *puVar4;
  uVar25 = (uVar30 ^ uVar37) >> (((byte)uVar20 ^ 0x56) & 0x3f);
  *puVar3 = uVar30;
  uVar37 = (uVar37 ^ uVar30) << 0x2a;
  *puVar2 = uVar25 ^ CONCAT44(DAT_18267184c,DAT_18267184c);
  *(undefined8 *)(DAT_182671560 + -0x898) = **(undefined8 **)((uVar40 ^ 0x55edce35) + lVar7);
  *puVar1 = uVar37 ^ CONCAT44(DAT_1826717f8,DAT_1826717f8);
  lVar7 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671644,DAT_182671644);
  bVar22 = (byte)DAT_1826715b0;
  puVar5 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0x8affd2a7));
  *puVar5 = (uVar25 | uVar37) ^ uVar30;
  uVar25 = (ulonglong)DAT_18267180c;
  uVar42 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar7 - (uVar31 ^ 0xfe76f6e7)) =
       (CONCAT44(uVar9,DAT_18267159c) ^ 0xc6a1ab04a3e4db74) << ((bVar22 ^ 0xfd) & 0x3f);
  *puVar3 = (uVar44 ^ *puVar4) - (*puVar34 ^ uVar30) ^ uVar26;
  uVar30 = uVar50 ^ *puVar34 ^ *puVar45 ^ uVar42 ^ uVar30;
  *puVar2 = uVar30;
  uVar37 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715a8 ^ 0xe289e4a8)) =
       (uVar30 >> 0x20 ^ uVar25) >> 0xe ^ uVar37;
  *(ulonglong *)(lVar7 + -0x898) =
       *(ulonglong *)(lVar7 - ((ulonglong)DAT_18267158c ^ 0x8affd04f)) ^ CONCAT44(uVar41,uVar35) ^
       uVar26 ^ 0xa667f1898dae8053;
  uVar25 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xfe76f4f7)) =
       (uVar42 ^ *puVar2) << (((byte)DAT_182671574 ^ 0x52) & 0x3f) ^ uVar25;
  uVar13 = DAT_1826715f4;
  uVar20 = DAT_18267156c;
  uVar25 = uVar25 ^ *puVar4 | uVar37 ^ *puVar1;
  *puVar2 = uVar25 ^ uVar38;
  uVar44 = CONCAT44(uVar13,uVar13);
  *puVar34 = (uVar50 ^ *puVar45) - uVar25 ^ uVar44;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0x55edc7cd)) =
       (CONCAT44(uVar19,DAT_182671598) ^ 0xd0e9e6984214bfac) >>
       ((byte)*(undefined8 *)(DAT_182671560 + -0x898) & 0x3f);
  uVar13 = DAT_18267182c;
  uVar37 = CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar30 = uVar39 ^ uVar26 ^ *puVar3 ^ *(ulonglong *)(lVar7 + -0x6b8);
  *puVar4 = uVar30 ^ uVar37;
  uVar42 = CONCAT44(uVar13,uVar13);
  uVar25 = (ulonglong)DAT_18267156c;
  *puVar45 = uVar30 >> ((bVar32 ^ 0x54) & 0x3f) ^ uVar42;
  uVar14 = DAT_1826717a0;
  uVar50 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar30 = (*(ulonglong *)(lVar7 - (uVar25 ^ 0x40ed836a)) ^ uVar37) <<
           (((byte)uVar18 ^ 0xca) & 0x3f);
  uVar25 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar7 + -0x898) = uVar30 ^ uVar50;
  uVar18 = DAT_182671744 & 0xff;
  uVar30 = *(ulonglong *)(lVar7 - (uVar25 ^ 0x69f967bd)) ^ uVar42 | uVar30;
  *puVar1 = uVar30 ^ CONCAT44(uVar14,uVar14);
  uVar13 = DAT_182671778;
  DAT_182671744 = ((DAT_182671744 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar42 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar7 + -0x6b8) =
       (*(ulonglong *)(lVar7 - (uVar33 ^ 0x70232068)) ^ uVar26) - uVar30 ^ uVar42;
  uVar18 = DAT_182671574;
  uVar37 = CONCAT44(uVar13,uVar13);
  bVar22 = *(byte *)puVar1;
  *puVar4 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671594 ^ 0x4d678517)) ^ *puVar34 ^ uVar37 ^
            CONCAT44(uVar14,uVar14) ^ uVar44;
  uVar30 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0x1a60b7e0)) =
       (uVar38 ^ *puVar2) >> (((byte)uVar14 ^ bVar22) & 0x3f);
  uVar13 = DAT_182671888;
  uVar19 = DAT_18267158c;
  uVar25 = *puVar4;
  *puVar3 = (*(ulonglong *)(lVar7 - (uVar30 ^ 0xe289e7c8)) ^ uVar37) >> ((bVar6 ^ 0x6e) & 0x3f) ^
            uVar29;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar41 ^ 0x886a48a9)) =
       (uVar37 ^ uVar25) << (((byte)uVar19 ^ 0x70) & 0x3f) ^ uVar30;
  uVar40 = (ulonglong)DAT_18267171c;
  uVar19 = DAT_182671800 & 0xff;
  DAT_182671800 = ((DAT_182671800 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar37 = CONCAT44(DAT_182671800,DAT_182671800);
  uVar25 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *puVar1 = (uVar29 ^ *puVar3 | *puVar45 ^ uVar30) ^ uVar37;
  uVar19 = DAT_182671588;
  lVar7 = DAT_182671560;
  uVar29 = (ulonglong)DAT_182671588;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0xe66a50d0)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar18 ^ 0x1a60b4b0)) ^ uVar44) -
       (CONCAT44(uVar11,uVar10) ^ 0x5fe9f5f17c1ee6b9) ^ uVar25;
  *puVar3 = CONCAT44(uVar20,uVar19) ^ *(ulonglong *)(lVar7 + -0x898) ^ uVar50 ^ 0xde6e3b6e74211545;
  uVar50 = CONCAT44(DAT_182671768,DAT_182671768);
  *puVar45 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_18267159c ^ 0xa3f5f537)) ^ uVar25) -
             (uVar37 ^ *puVar1) ^ uVar50;
  uVar18 = DAT_1826718c4;
  uVar25 = (ulonglong)DAT_1826718c4;
  *puVar34 = (*puVar4 >> 0x20 ^ uVar40) >> 0x1e;
  uVar14 = DAT_1826716e8;
  uVar46 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar51 = (ulonglong)DAT_1826715b0;
  *puVar3 = (uVar37 ^ *puVar1) - (CONCAT44(uVar17,uVar35) ^ 0x12942b50b9907f7b) ^ uVar46;
  uVar20 = DAT_18267156c;
  uVar30 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 - (uVar51 ^ 0x4d678467)) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar35 ^ 0x702224c8)) ^ uVar38 ^ uVar30 ^ uVar42 ^ *puVar2
  ;
  uVar13 = _DAT_182671838;
  uVar40 = (*puVar48 >> 0x20 ^ uVar25) >> 1;
  *puVar4 = uVar40 ^ CONCAT44(DAT_182671680,DAT_182671680);
  uVar16 = DAT_1826718a0;
  uVar25 = CONCAT44(uVar13,uVar13);
  *puVar34 = (*(ulonglong *)(DAT_182671560 + -0x898) ^ uVar30) << (((byte)uVar20 ^ 0xfd) & 0x3f) ^
             uVar25;
  uVar20 = DAT_182671574;
  uVar38 = CONCAT44(uVar16,uVar16);
  uVar44 = CONCAT44(DAT_182671648,DAT_182671648);
  puVar48 = (ulonglong *)(DAT_182671560 - (uVar51 ^ 0x4d678a47));
  *puVar2 = (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x69f964ed)) ^ uVar25 | uVar40) ^ uVar38;
  lVar7 = DAT_182671560;
  uVar25 = (*puVar48 ^ uVar42) - (CONCAT44(uVar9,uVar20) ^ 0x5c3c7176caec8d);
  uVar20 = DAT_1826715bc & 0xff;
  *puVar4 = uVar25 ^ uVar44;
  DAT_1826715bc = ((DAT_1826715bc << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar42 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar7 - (uVar31 ^ 0xfe76ff8f)) =
       uVar25 - (*(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715a8 ^ 0xe289eb68)) ^ uVar38) ^ uVar42;
  uVar13 = DAT_182671788;
  *(ulonglong *)(lVar7 + -0x6b8) = uVar37 ^ *puVar1 | *puVar34 ^ uVar42;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar25 = (*(ulonglong *)(lVar7 - (uVar36 ^ 0x33a1855f)) ^ uVar38) +
           (CONCAT44(uVar21,DAT_18267159c) ^ 0x58b024609f3c05c0) ^ uVar31;
  *puVar1 = uVar25;
  *(ulonglong *)(lVar7 + -0x6b8) = 0x7005a8bd5b213f4e - (uVar44 ^ *puVar4);
  uVar21 = DAT_182671598;
  uVar29 = CONCAT44(DAT_182671830,DAT_182671830);
  *puVar2 = uVar29 ^ uVar31 ^ *puVar45 ^ uVar50 ^ uVar25;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671594 ^ 0x4d678677)) =
       (*puVar27 ^ uVar29) >> (((byte)uVar21 ^ 0xb9) & 0x3f) ^ uVar26;
  uVar21 = DAT_182671584;
  uVar25 = *puVar4;
  uVar18 = ~DAT_182671584;
  uVar31 = (uVar29 ^ *puVar2) << 0x3b;
  DAT_182671590 = uVar18;
  *(ulonglong *)(lVar7 + -0x6b8) = uVar31 ^ uVar39;
  uVar13 = DAT_182671808;
  uVar29 = (ulonglong)uVar21;
  uVar31 = uVar26 ^ uVar25 | uVar31;
  *puVar1 = uVar31 ^ uVar50;
  uVar44 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar18 ^ 0xde2b3d7)) =
       (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xf21d48a0)) ^ uVar50) - uVar31 ^ uVar44;
  lVar7 = DAT_182671560;
  uVar20 = DAT_182671848 & 0xff;
  DAT_182671848 = ((DAT_182671848 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar26 = (ulonglong)DAT_182671848;
  puVar48 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0xf21d4cb8));
  uVar37 = CONCAT44(DAT_182671848,DAT_182671848);
  *puVar48 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar18 ^ 0xde2b6e7)) ^
             *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xf21d4bf0)) ^ uVar37 ^ uVar42 ^ uVar46;
  *puVar45 = (*(ulonglong *)(lVar7 + -0x898) ^ uVar30) << (((byte)uVar15 ^ *(byte *)puVar4) & 0x3f);
  lVar7 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar25 = *(ulonglong *)(DAT_182671560 + -0x6b8);
  *puVar3 = (*puVar48 >> 0x20 ^ uVar26) >> 5 ^ uVar31;
  uVar26 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0xde2bf77)) =
       (uVar37 ^ uVar25) << (((byte)uVar18 ^ 0xe4) & 0x3f) ^ uVar26;
  uVar13 = DAT_182671834;
  lVar7 = DAT_182671560;
  uVar20 = DAT_1826718c8 & 0xff;
  DAT_1826718c8 = ((DAT_1826718c8 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar30 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar25 = uVar26 ^ *puVar4 | *puVar3 ^ uVar31;
  uVar37 = uVar25 ^ uVar30;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar37;
  uVar26 = CONCAT44(uVar13,uVar13);
  *puVar45 = (*puVar34 ^ uVar42) - uVar25 ^ uVar26;
  *(ulonglong *)(lVar7 + -0x6b8) =
       (CONCAT44(uVar21,uVar18) ^ 0x1b0c5ba1ce110631) >> (((byte)uVar21 ^ 0x33) & 0x3f);
  uVar13 = DAT_182671628;
  uVar21 = DAT_182671898 & 0xff;
  uVar20 = DAT_182671898 << 8;
  DAT_182671898 = ((uVar20 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar31 = (ulonglong)DAT_182671898;
  uVar25 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar30 = uVar37 ^ uVar25 ^ uVar30 ^ uVar44 ^ *puVar2;
  *puVar3 = uVar30;
  uVar37 = CONCAT44(uVar13,uVar13);
  puVar48 = (ulonglong *)(lVar7 - (uVar29 ^ 0xf21d4088));
  *puVar48 = ((ulonglong)((uVar20 & 0xffff | uVar21) >> 7) | uVar31 << 9) ^ uVar30 >> 0x17 ^ uVar37;
  uVar30 = CONCAT44(DAT_182671740,DAT_182671740);
  uVar31 = (ulonglong)DAT_182671598;
  uVar29 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *puVar34 = (*puVar3 ^ uVar25) << (((byte)uVar18 ^ 0xd6) & 0x3f) ^ uVar30;
  lVar7 = DAT_182671560;
  uVar31 = *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x22f4774c)) ^ uVar30 |
           *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x702329f8)) ^ uVar37;
  uVar20 = DAT_1826717e8 & 0xff;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar31 ^ uVar29;
  uVar21 = DAT_18267158c;
  DAT_1826717e8 = ((DAT_1826717e8 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar25 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar7 + -0x898) =
       (uVar44 ^ *puVar2) - uVar31 ^ CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar13 = DAT_1826717ec;
  *(ulonglong *)(lVar7 - (uVar47 ^ 0x5a58e572)) =
       *(ulonglong *)(lVar7 - (uVar25 ^ 0x8affd1f7)) ^ uVar43 ^ uVar26 ^ uVar50 ^ *puVar1;
  uVar25 = CONCAT44(uVar13,uVar13);
  *puVar48 = (uVar43 ^ *puVar3) >> ((bVar6 ^ 0x5f) & 0x3f) ^ uVar25;
  *puVar5 = (uVar43 ^ *puVar3) << (((byte)uVar21 ^ 0x4f) & 0x3f) ^ uVar46;
  bVar22 = *(byte *)puVar34;
  uVar25 = *puVar34 ^ uVar46 | uVar25 ^ *puVar4;
  *puVar2 = uVar25 ^ CONCAT44(DAT_182671670,DAT_182671670);
  *puVar1 = uVar25 >> ((bVar22 ^ (byte)uVar14) & 0x3f);
  *puVar3 = (uVar26 ^ *puVar45) - uVar25 ^ CONCAT44(DAT_182671880,DAT_182671880);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar23 ^ uVar28) * 4) = uVar49;
  return;
}



############ FUN_ 180edc9d0 size=5243 ############

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

void FUN_180edc9d0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  byte bVar15;
  byte bVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  byte bVar26;
  uint uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  byte local_100;
  
  uVar11 = DAT_182671874;
  uVar6 = DAT_182671594;
  uVar12 = DAT_182671588;
  uVar5 = DAT_182671570;
  uVar29 = (ulonglong)DAT_182671594;
  uVar49 = (ulonglong)DAT_182671570;
  uVar27 = DAT_182671578 + DAT_182671570;
  uVar47 = DAT_1826716a8 ^ DAT_18267167c;
  DAT_182671598 = DAT_182671594 << 0x10 | DAT_182671594 >> 0x10;
  uVar1 = DAT_1826717dc + DAT_1826716c8;
  uVar32 = (DAT_182671588 << 0x10 | DAT_182671588 & 0xff00) << 8 | DAT_182671588 >> 8 & 0xff00 |
           DAT_182671588 >> 0x18;
  uVar38 = DAT_182671874 | DAT_1826716f8;
  uVar13 = DAT_18267175c >> 0x18;
  uVar14 = (ulonglong)uVar32;
  uVar8 = *(uint *)(&DAT_182611e70 + (uVar14 ^ 0xbffff5ab) + (longlong)DAT_18267194c) ^
          DAT_182671588;
  uVar9 = *(uint *)(&DAT_182611e80 + DAT_18267194c) ^ DAT_182671598;
  uVar10 = DAT_1826716f8 & 0xff;
  DAT_1826716f8 = ((DAT_1826716f8 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar17 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar33 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar20 = CONCAT44(DAT_182671684,DAT_182671684) ^ *(ulonglong *)(DAT_182671560 + -0x2a0) |
           *(ulonglong *)(DAT_182671560 + -0x898) ^ uVar17;
  uVar10 = uVar38 & 0xff;
  DAT_182671568 = uVar32;
  DAT_18267157c = uVar27;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar20 ^ uVar33;
  uVar4 = DAT_182671754;
  DAT_182671820 = ((uVar38 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar34 = CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar18 = CONCAT44(DAT_182671820,DAT_182671820);
  uVar21 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (*(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar34) - uVar20 ^ uVar18;
  uVar39 = CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(DAT_182671560 + -0xa88) ^
           *(ulonglong *)(DAT_182671560 + -0x1f0) ^ uVar21 ^ uVar34;
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar39;
  uVar11 = DAT_1826717dc & 0xff;
  DAT_1826717dc = ((DAT_1826717dc << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  bVar15 = (byte)uVar6;
  uVar20 = (uVar39 ^ uVar21) >> ((bVar15 ^ 0xe9) & 0x3f);
  uVar42 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar11 = DAT_1826716c8 & 0xff;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar20 ^ uVar42;
  lVar2 = DAT_182671560;
  bVar26 = (byte)uVar27;
  uVar39 = (uVar39 ^ uVar21) << ((bVar26 ^ 8) & 0x3f);
  DAT_1826716c8 = ((DAT_1826716c8 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar45 = (ulonglong)uVar27;
  uVar35 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar39 ^ uVar35;
  uVar4 = DAT_182671774;
  uVar11 = DAT_182671578;
  lVar3 = DAT_182671560;
  uVar39 = uVar39 | uVar20;
  uVar20 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar39 ^ uVar18;
  bVar23 = (byte)(uVar12 >> 0x18);
  uVar38 = uVar1 & 0xff;
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0xb2987ba8)) ^ CONCAT44(uVar4,uVar4)) >>
       ((bVar23 ^ 0xb0) & 0x3f);
  DAT_18267160c = ((uVar1 * 0x100 | uVar38) << 8 | uVar38) << 8 | uVar38;
  uVar20 = (ulonglong)DAT_18267160c;
  uVar19 = CONCAT44(DAT_18267160c,DAT_18267160c);
  puVar28 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x4d678517));
  *puVar28 = (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar34) - uVar39 ^ uVar19;
  uVar12 = DAT_1826716a8 & 0xff;
  DAT_1826716a8 = ((DAT_1826716a8 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar39 = (ulonglong)DAT_1826716a8;
  uVar40 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  uVar12 = uVar47 & 0xff;
  uVar36 = *(ulonglong *)(lVar3 + -0x6b8) ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x628);
  *(ulonglong *)(lVar3 + -0x898) = uVar36;
  uVar37 = (uVar36 ^ uVar40) >> ((bVar15 ^ 0xd1) & 0x3f);
  uVar22 = (ulonglong)DAT_182671588;
  DAT_182671660 = ((uVar47 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar46 = CONCAT44(DAT_182671660,DAT_182671660);
  uVar12 = DAT_18267167c & 0xff;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar37 ^ uVar46;
  DAT_18267167c = ((DAT_18267167c << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar30 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar36 = (*(ulonglong *)(lVar3 - (uVar14 ^ 0xbffffd3b)) ^ uVar40) << ((bVar15 ^ 0xed) & 0x3f);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar36 ^ uVar30;
  uVar12 = DAT_182671598;
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0xa3f5fca7)) ^ uVar33) + 0x352af5e7d3e180e9;
  lVar2 = DAT_182671560;
  DAT_1826715e4 = ((uVar13 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar43 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar37 | uVar36) ^ uVar43;
  uVar13 = DAT_18267175c & 0xff;
  DAT_18267175c = ((DAT_18267175c << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar22 = CONCAT44(DAT_18267175c,DAT_18267175c);
  puVar50 = (ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x8cff45ff));
  *puVar50 = (uVar18 ^ *(ulonglong *)(lVar2 + -0x628)) -
             (*(ulonglong *)(lVar2 - (uVar14 ^ 0xbffff453)) ^ uVar43) ^ uVar22;
  _DAT_1826716c0 = (DAT_1826716d0 ^ DAT_1826717d0) & 0xff;
  uVar36 = *(ulonglong *)(lVar2 + -0x9e8) ^ *(ulonglong *)(lVar2 + -0x318) ^ uVar30 ^ uVar19 ^
           uVar33;
  *(ulonglong *)(lVar2 + -0xa88) = uVar36;
  _DAT_1826716c0 =
       (((DAT_1826716d0 ^ DAT_1826717d0) << 8 | _DAT_1826716c0) << 8 | _DAT_1826716c0) << 8 |
       _DAT_1826716c0;
  uVar48 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar37 = (uVar36 ^ uVar30) >> (((byte)uVar5 ^ 0x2e) & 0x3f);
  uVar13 = DAT_1826717d0 & 0xff;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar37 ^ uVar48;
  uVar13 = ((DAT_1826717d0 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar51 = CONCAT44(uVar13,uVar13);
  uVar36 = (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x4d678677)) ^ uVar30) <<
           (((byte)uVar12 ^ 0x53) & 0x3f);
  DAT_1826717d0 = uVar13;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar36 ^ uVar51;
  lVar2 = DAT_182671560;
  uVar10 = DAT_1826716d0 & 0xff;
  DAT_1826716d0 = ((DAT_1826716d0 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar24 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  puVar52 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0x8cff4b4f));
  *puVar52 = (uVar37 | uVar36) ^ uVar24;
  uVar36 = CONCAT44(uVar11,uVar27);
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 + -0x9e8) ^ uVar19) - (uVar24 ^ *(ulonglong *)(lVar2 + -0x628)) ^
       uVar40;
  *(ulonglong *)(lVar2 + -0xa88) =
       *(ulonglong *)(lVar2 + -0x6b8) ^ uVar18 | uVar36 ^ 0xdaa43f7498b627df;
  uVar31 = uVar24 ^ uVar22 ^ uVar35;
  puVar25 = (ulonglong *)(lVar2 - (uVar45 ^ 0xd508ebba));
  bVar16 = (byte)DAT_182671578;
  uVar37 = *puVar25 ^ uVar31 ^ *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar37;
  uVar12 = DAT_182671598;
  lVar3 = DAT_182671560;
  uVar41 = (*(ulonglong *)(lVar2 - (uVar14 ^ 0xbffff703)) ^ uVar35) >> ((bVar16 ^ 0x19) & 0x3f);
  uVar44 = (ulonglong)DAT_182671598;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar41 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x9e8) = (uVar35 ^ uVar37) << (((byte)uVar5 ^ 5) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xbffff31b)) = (uVar41 | uVar46 ^ *puVar28) ^ uVar40;
  *(ulonglong *)(lVar3 + -0xa88) = (uVar44 ^ 0xa0000000) >> 0x1d;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671578 ^ 0xb2987528)) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x898)) - (CONCAT44(uVar12,uVar12) ^ 0x8a14dd7eb488a6ee) ^
       uVar19;
  lVar2 = DAT_182671560;
  puVar28 = (ulonglong *)(lVar3 - (uVar49 ^ 0x2270769a));
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (uVar19 ^ *(ulonglong *)(DAT_182671560 + -0x628)) - (uVar40 ^ *puVar28) ^ uVar24;
  lVar3 = DAT_182671560;
  uVar37 = *(ulonglong *)(DAT_182671560 + -0x1f0) ^ *(ulonglong *)(DAT_182671560 + -0x318) ^ uVar43
           ^ uVar40;
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar40) - (CONCAT44(uVar32,uVar5) ^ 0x30a7d8def8988bf6) ^
       uVar35;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar37 ^ uVar42;
  lVar2 = DAT_182671560;
  uVar14 = (ulonglong)DAT_182671588;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar37 >> (((byte)DAT_182671588 ^ 0x9e) & 0x3f) ^ uVar33;
  *(uint *)(lVar2 - (uVar14 ^ 0xa3f5f6d7)) = (DAT_182671578 ^ 0xec3de434) * 2;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (*(ulonglong *)(DAT_182671560 - (uVar45 ^ 0xd508eb8a)) ^ uVar42) << ((bVar15 ^ 0xe0) & 0x3f)
       ^ uVar21;
  lVar2 = DAT_182671560;
  uVar14 = (ulonglong)DAT_182671578;
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0xd508e50a)) =
       CONCAT44(uVar11,uVar5) ^ 0xa6acc0e2bfb0b801 | *(ulonglong *)(DAT_182671560 + -0xa88) ^ uVar33
  ;
  lVar3 = DAT_182671560;
  uVar37 = *(ulonglong *)(lVar2 - (uVar14 ^ 0xb2987988)) ^ uVar33 |
           *(ulonglong *)(DAT_182671560 + -0x898) ^ uVar21;
  uVar14 = CONCAT44(uVar6,DAT_182671578);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar37 ^ uVar30;
  uVar14 = (*(ulonglong *)(lVar3 + -0x318) ^ uVar40) - (uVar14 ^ 0xbf0303ecad5d56cd);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar14 ^ uVar33;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar14 - (uVar30 ^ *puVar28) ^ uVar35;
  lVar3 = DAT_182671560;
  uVar14 = (CONCAT44(uVar12,uVar32) ^ 0x557b216421f49c50) + uVar37 ^ uVar48;
  *(ulonglong *)(lVar2 + -0x628) = uVar14;
  uVar14 = uVar14 ^ uVar24 ^ uVar51 ^ uVar48 ^ *(ulonglong *)(lVar2 + -0x2a0);
  *(ulonglong *)(lVar2 + -0xa88) = uVar14;
  bVar16 = (byte)DAT_182671588;
  *puVar50 = ((ulonglong)uVar13 << 0x1b | (ulonglong)(uVar13 >> 5)) ^ uVar14 >> 5 ^ uVar46;
  lVar2 = DAT_182671560;
  uVar14 = (*(ulonglong *)(DAT_182671560 + -0xa88) ^ uVar51) << ((bVar16 ^ 0x84) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar14 ^ uVar18;
  uVar14 = *(ulonglong *)(lVar2 + -0x898) ^ uVar46 | uVar14;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar14 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar24 ^ *(ulonglong *)(lVar3 + -0x2a0)) - uVar14 ^ uVar35;
  uVar14 = *(ulonglong *)(lVar3 - (uVar44 ^ 0x8cff45cf)) ^ *(ulonglong *)(lVar3 + -0x9e8);
  bVar16 = (byte)DAT_182671588;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar14 ^ uVar19;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar14 >> ((bVar16 ^ 0x9a) & 0x3f) ^ uVar51;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x4d678fe7)) =
       uVar14 << (((byte)DAT_182671578 ^ 0x1b) & 0x3f) ^ uVar40;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x4d678467)) =
       CONCAT44(uVar32,uVar27) ^ 0xfffdfd74fbeb6af7 | 0x2a7515746b212a95;
  uVar14 = *(ulonglong *)(lVar2 + -0xa88) ^ uVar51 | *(ulonglong *)(lVar2 + -0x318) ^ uVar40;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar14 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x318) = (*(ulonglong *)(lVar2 + -0x8a8) ^ uVar35) - uVar14 ^ uVar46;
  uVar11 = DAT_1826715a0;
  local_100 = (byte)uVar1;
  uVar41 = (ulonglong)DAT_1826715a0;
  *puVar25 = -0x5c5cc94156685ca1 << ((local_100 ^ *(byte *)(lVar2 + -0x628)) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9e8) =
       uVar31 ^ *(ulonglong *)(lVar2 + -0x6b8) ^ *(ulonglong *)(lVar2 + -0x2a0);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x4d678457)) =
       (*(ulonglong *)(lVar2 + -0xa88) ^ uVar51) + 0x57ba55d701cdc9b3;
  *puVar52 = (*(ulonglong *)(lVar2 + -0x9e8) ^ uVar24) >> ((bVar26 ^ 0x35) & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar2 + -0x898) = *(ulonglong *)(lVar2 + -0xa88) ^ uVar51 ^ 0xdde61bfe9b7b3e7c;
  uVar14 = (*(ulonglong *)(lVar2 + -0x9e8) ^ uVar24) << ((bVar23 ^ 0x8a) & 0x3f);
  puVar25 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0xa3f5f537));
  *(ulonglong *)(lVar2 + -0x2a0) = uVar14 ^ uVar48;
  lVar3 = DAT_182671560;
  *puVar25 = (uVar19 ^ *(ulonglong *)(lVar2 + -0x628) | uVar14) ^ uVar21;
  uVar13 = DAT_182671574;
  uVar37 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar35) -
       (*(ulonglong *)(lVar2 - (uVar49 ^ 0x22707aaa)) ^ uVar21) ^ uVar22;
  uVar31 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0xb29872f0)) ^
           *(ulonglong *)(lVar2 + -0x318) ^ uVar43 ^ uVar46;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar31 ^ uVar42;
  uVar6 = DAT_1826715a8;
  bVar16 = (byte)DAT_1826715a8;
  uVar14 = *(ulonglong *)(lVar3 - (uVar49 ^ 0x227079ca));
  *(ulonglong *)(lVar3 + -0x2a0) = uVar31 << 0x18 ^ uVar42;
  *(ulonglong *)(lVar3 + -0x628) = (uVar14 ^ uVar42) >> ((bVar16 ^ 0x68) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar3 - (uVar45 ^ 0xd508e59a)) =
       (CONCAT44(uVar5,uVar6) ^ 0x34df6ee2d80d2829) + (CONCAT44(uVar32,uVar11) ^ 0xe6d3a4d2b7b39a4d)
  ;
  uVar31 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0x7dc1977f)) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0x628) | uVar42 ^ *(ulonglong *)(lVar3 + -0x2a0)) ^ uVar30;
  uVar14 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0x9e8) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x4c763372)) ^ uVar46) -
       (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar30) ^ uVar22;
  uVar10 = DAT_1826715b4;
  uVar37 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xe66a5ce0)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xe289ecb0)) ^ uVar22 ^
       *(ulonglong *)(lVar3 + -0x898) ^ uVar30 ^ uVar40;
  uVar39 = (*(ulonglong *)(lVar3 + -0x6b8) >> 0x20 ^ uVar39) >> 0x14;
  *(ulonglong *)(lVar3 + -0x628) = uVar39 ^ uVar33;
  uVar4 = DAT_18267156c;
  uVar14 = (uVar40 ^ *(ulonglong *)(lVar3 + -0x6b8)) << (((byte)uVar10 ^ 0xf3) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar14 ^ uVar18;
  *(ulonglong *)(DAT_182671560 + -0x318) = (uVar39 | uVar14) ^ uVar18;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xd3578c47)) =
       (uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x898)) -
       (*(ulonglong *)(DAT_182671560 - (uVar49 ^ 0x2270733a)) ^ uVar18) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x628) =
       *(ulonglong *)(lVar2 + -0x1f0) ^ uVar30 ^ uVar18 ^ *(ulonglong *)(lVar2 + -0x2a0);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0xe289e5d8)) =
       *(ulonglong *)(lVar2 + -0xa88) ^ *(ulonglong *)(lVar2 + -0x9e8) ^ uVar22 ^ uVar21 ^ uVar34;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (*(ulonglong *)(lVar3 + -0x898) ^ uVar34) >> (((byte)uVar12 ^ 0x5e) & 0x3f) ^ uVar43;
  uVar7 = DAT_18267159c;
  uVar37 = (*(ulonglong *)(lVar2 + -0x898) ^ uVar34) << ((bVar26 ^ 0x25) & 0x3f);
  uVar14 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar37 ^ uVar35;
  uVar39 = (ulonglong)DAT_182671584;
  uVar14 = (*(ulonglong *)(lVar2 - (uVar14 ^ 0x8affd2a7)) ^ uVar43 | uVar37) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x628) = uVar14;
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 + -0x9e8) ^ uVar22) -
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0xf21d4c28)) ^ uVar19) ^ uVar51;
  uVar22 = (ulonglong)DAT_182671580;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar36 ^ 0x3137789ab3883fe5) - (CONCAT44(DAT_182671580,uVar6) ^ 0x4f7ee333e95785dc);
  lVar2 = DAT_182671560;
  uVar14 = uVar24 ^ *(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar19 ^ uVar21 ^ uVar14;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar14;
  uVar39 = 0xeec082db1657a8be >> ((bVar26 ^ 2) & 0x3f);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar39;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x9e8) = (uVar14 ^ uVar21) >> ((bVar23 ^ 0xad) & 0x3f) ^ uVar24;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x4c7638f2)) = uVar39 | 0xacd8023e9e98daa8;
  uVar39 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0x4d678d0f)) ^ uVar21) << ((bVar15 ^ 0xcd) & 0x3f);
  uVar14 = (uVar24 ^ *(ulonglong *)(lVar3 + -0x6b8)) - (CONCAT44(uVar11,uVar4) ^ 0x291a06904cebd8f7)
  ;
  *(ulonglong *)(lVar3 + -0x628) = uVar39 ^ uVar51;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar14 ^ uVar43;
  uVar39 = *(ulonglong *)(lVar3 + -0x9e8) ^ uVar24 | uVar39;
  *(ulonglong *)(lVar3 + -0x898) = uVar39 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar14 - uVar39 ^ uVar46;
  uVar14 = (ulonglong)DAT_182671590;
  *(longlong *)(lVar3 + -0x9e8) = *(longlong *)(lVar3 + -0x8a8) + 0x129565d9b95d8d1e;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xde2b3d7)) =
       uVar39 - (CONCAT44(uVar7,DAT_182671578) ^ 0x36012ecc4417574b) ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x702224c8)) =
       *(ulonglong *)(lVar3 - (uVar45 ^ 0xd508e03a)) ^ *(ulonglong *)(lVar3 + -0xa88) ^ uVar51 ^
       uVar19 ^ uVar18;
  *(ulonglong *)(lVar3 + -0x2a0) =
       ((ulonglong)(uVar1 * 0x100 & 0xffff | uVar38) | uVar20 << 0x10) ^
       *(ulonglong *)(lVar3 + -0x6b8) >> 0x10 ^ uVar17;
  uVar20 = (uVar19 ^ *(ulonglong *)(lVar3 + -0x6b8)) << 0x30;
  uVar14 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar3 - (uVar49 ^ 0x2270788a)) = uVar20 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x9e8) =
       (*(ulonglong *)(lVar3 - (uVar14 ^ 0xa3f5fd1f)) ^ uVar17 | uVar20) ^ uVar18;
  uVar14 = *puVar25;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar9 * 4) = uVar8;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xfe76f6e7)) =
       (uVar51 ^ uVar14) - (CONCAT44(uVar5,uVar13) ^ 0xad285d5fa7296d5b) ^ uVar19;
  return;
}



############ FUN_ 180e7eca0 size=5871 ############

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

void FUN_180e7eca0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  byte bVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  byte local_res18;
  byte local_f8;
  
  uVar12 = DAT_1826715a4;
  uVar11 = DAT_182671598;
  uVar8 = DAT_182671580;
  uVar6 = DAT_182671568;
  lVar4 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671580;
  uVar18 = (ulonglong)DAT_182671568;
  uVar20 = (ulonglong)DAT_182671598;
  uVar29 = (ulonglong)DAT_1826715a4;
  uVar27 = DAT_182671568 << 0x10 | DAT_182671568 >> 0x10;
  uVar40 = DAT_182671598 | DAT_182671580;
  uVar3 = *(uint *)(&DAT_182611e80 + DAT_182671b24);
  uVar36 = *(uint *)(&DAT_182611e78 + DAT_182671b24) ^ DAT_182671580;
  uVar21 = ~DAT_1826715a4;
  uVar37 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar33 = (ulonglong)uVar27;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x240);
  uVar35 = (ulonglong)uVar21;
  DAT_182671574 = uVar27;
  DAT_18267158c = uVar21;
  DAT_18267159c = uVar40;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a4 ^ 0xfed975d4)) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar27 ^ 0x823b02b2)) ^
       CONCAT44(DAT_182671598,DAT_182671568) ^ uVar37 ^ 0xd0ada698a8048eb1;
  uVar45 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar19 = CONCAT44(DAT_18267165c,DAT_18267165c);
  uVar22 = *puVar1;
  uVar24 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  uVar37 = *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x126868b)) ^
           CONCAT44(DAT_1826715cc,DAT_1826715cc) | uVar37 ^ *(ulonglong *)(lVar4 + -0x80);
  *(ulonglong *)(lVar4 + -0x510) = uVar37 ^ uVar45;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x232809b)) = (uVar19 ^ uVar22) - uVar37 ^ uVar24;
  lVar5 = DAT_182671560;
  uVar37 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar43 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar22 = CONCAT44(DAT_182671768,DAT_182671768);
  puVar44 = (ulonglong *)(lVar4 - (uVar20 ^ 0x5e6f7d51));
  uVar19 = (ulonglong)uVar40;
  puVar17 = (ulonglong *)(DAT_182671560 - (uVar19 ^ 0x7efffe91));
  *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0x5e6f7081)) =
       *puVar17 ^ uVar22 ^ uVar43 ^ uVar37 ^ *puVar44;
  uVar38 = (*(ulonglong *)(lVar5 + -0xc08) ^ uVar37) >> (((byte)uVar8 ^ 0xb0) & 0x3f);
  *(ulonglong *)(lVar5 + -0xbf0) = uVar38 ^ CONCAT44(DAT_182671810,DAT_182671810);
  lVar4 = DAT_182671560;
  bVar16 = (byte)(uVar6 >> 0x10);
  uVar37 = (*(ulonglong *)(lVar5 + -0xc08) ^ uVar37) << ((bVar16 ^ 0x35) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar37 ^ CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar10 = DAT_1826717e8;
  uVar30 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x7efff511)) = (uVar37 | uVar38) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x670) =
       (*(ulonglong *)(lVar4 + -0x1d8) ^ uVar22) - (*(ulonglong *)(lVar4 + -0x898) ^ uVar30) ^
       uVar43;
  lVar5 = DAT_182671560;
  puVar23 = (ulonglong *)(lVar4 - (uVar18 ^ 0x2328aa3));
  uVar31 = CONCAT44(DAT_182671710,DAT_182671710);
  uVar22 = CONCAT44(uVar10,uVar10) ^ uVar30 ^ uVar24 ^ *puVar23 ^ *(ulonglong *)(lVar4 + -0x2a0);
  *(ulonglong *)(lVar4 + -0x800) = uVar22;
  uVar7 = DAT_182671660;
  *(ulonglong *)(lVar4 + -0x688) =
       ((ulonglong)uVar10 << 0x12 | (ulonglong)(uVar10 >> 0xe)) ^ uVar22 >> 0xe ^ uVar31;
  uVar9 = DAT_1826717b0;
  uVar41 = CONCAT44(uVar7,uVar7);
  uVar22 = (CONCAT44(uVar10,uVar10) ^ uVar22) << (((byte)uVar6 ^ 9) & 0x3f);
  *(ulonglong *)(lVar5 + -0x600) = uVar22 ^ uVar41;
  lVar4 = DAT_182671560;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x823b04e2)) =
       (*(ulonglong *)(lVar5 - (uVar18 ^ 0x23284b3)) ^ uVar31 | uVar22) ^ uVar37;
  uVar22 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x2a0)) - (CONCAT44(uVar8,uVar40) ^ 0xa255044fa348dbb);
  puVar2 = (ulonglong *)(lVar4 + -0xa60);
  *puVar2 = uVar22 ^ CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar7 = DAT_1826715d4;
  uVar24 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar22 - (uVar37 ^ *(ulonglong *)(lVar4 + -0x6d0)) ^ uVar24;
  uVar9 = DAT_182671690;
  uVar30 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0xa88) =
       (uVar37 ^ *(ulonglong *)(lVar4 + -0x6d0)) - (CONCAT44(uVar12,uVar12) ^ 0x1e48d701f334efdf) ^
       uVar30;
  uVar7 = DAT_182671714;
  uVar37 = CONCAT44(uVar9,uVar9);
  puVar28 = (ulonglong *)(lVar4 - (uVar33 ^ 0x823b0442));
  local_f8 = (byte)uVar11;
  uVar45 = *(ulonglong *)(lVar4 - (uVar19 ^ 0x7efff899)) ^ *puVar28 ^ uVar37 ^ uVar43 ^ uVar45;
  *(ulonglong *)(lVar4 + -0x80) = uVar45;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 - (uVar18 ^ 0x2328413)) =
       (uVar45 ^ uVar37) >> ((local_f8 ^ 0x99) & 0x3f) ^ uVar22;
  uVar7 = DAT_18267167c;
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar4 + -0x80)) << 0x30;
  *puVar1 = uVar37 ^ CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar45 = CONCAT44(uVar7,uVar7);
  uVar37 = *(ulonglong *)(lVar4 - (uVar19 ^ 0x7efffba1)) ^ uVar22 | uVar37;
  *(ulonglong *)(lVar4 + -0x318) = uVar37 ^ uVar45;
  uVar9 = DAT_182671854;
  uVar22 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar4 + -0xc08) =
       (uVar43 ^ *(ulonglong *)(lVar4 + -0x670)) - (CONCAT44(uVar40,uVar12) ^ 0x2ee6ed30094d315e) ^
       uVar22;
  uVar7 = _DAT_1826715e0;
  uVar25 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0xbf0) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xfed97354)) ^ uVar22) -
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x823b012a)) ^ uVar45) ^ uVar25;
  uVar9 = DAT_1826716a4;
  uVar45 = CONCAT44(uVar7,uVar7);
  uVar22 = uVar37 + (CONCAT44(uVar21,uVar27) ^ 0x835cad00cb42b6dd) ^ uVar45;
  *(ulonglong *)(lVar4 + -0x110) = uVar22;
  uVar13 = DAT_182671818;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar22 = *(ulonglong *)(lVar4 - (uVar34 ^ 0x2ad8d121)) ^ uVar37 ^ uVar22 ^ uVar45 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar22;
  uVar7 = DAT_1826716cc;
  uVar32 = CONCAT44(uVar13,uVar13);
  *puVar23 = (uVar37 ^ uVar22) >> (((byte)uVar40 ^ 0xa9) & 0x3f) ^ uVar32;
  lVar4 = DAT_182671560;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xfed9775c)) =
       (uVar37 ^ *puVar44) << ((bVar16 ^ 0x12) & 0x3f) ^ uVar22;
  uVar9 = DAT_1826717c8;
  uVar43 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar22 = *(ulonglong *)(lVar4 - (uVar18 ^ 0x2328a3b)) ^ uVar22 |
           *(ulonglong *)(lVar4 + -0x898) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x688) = uVar22 ^ uVar43;
  uVar7 = DAT_18267169c;
  uVar22 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x8a8)) - uVar22;
  uVar26 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x600) = uVar22 ^ uVar26;
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar38 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar30 = *(ulonglong *)(lVar4 - (uVar33 ^ 0x823b08ba)) ^ *(ulonglong *)(lVar4 + -0xbf0) ^ uVar37 ^
           uVar25 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar30;
  uVar24 = (uVar30 ^ uVar37) >> ((local_f8 ^ 0xa9) & 0x3f);
  *puVar2 = uVar24 ^ uVar38;
  uVar7 = DAT_182671880;
  uVar30 = (uVar37 ^ uVar30) << (((byte)uVar12 ^ 0x7c) & 0x3f);
  uVar42 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar30 ^ uVar42;
  uVar39 = CONCAT44(uVar7,uVar7);
  uVar30 = uVar30 | uVar24;
  uVar38 = uVar30 ^ uVar39;
  *(ulonglong *)(lVar4 + -0x510) = uVar38;
  *(ulonglong *)(lVar4 + -0x80) = uVar30 ^ 0xd62920ebb17d293f;
  uVar10 = DAT_182671750;
  uVar24 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar15 = DAT_182671580 ^ 0x232fff5c;
  uVar37 = (ulonglong)DAT_182671750;
  *(ulonglong *)(lVar4 + -0x628) = (*(ulonglong *)(lVar4 + -0xbf0) ^ uVar25) - uVar30 ^ uVar24;
  uVar30 = CONCAT44(uVar10,uVar10);
  *(uint *)(lVar4 + -0x754) = uVar15 + (DAT_18267158c ^ 0xa8ef3bf0);
  uVar38 = *(ulonglong *)(lVar4 - (uVar29 ^ 0xfed9795c)) ^ uVar30 ^ uVar39 ^ uVar26 ^ uVar38;
  *puVar1 = uVar38;
  lVar5 = DAT_182671560;
  uVar25 = (uVar30 ^ uVar38) << ((bVar16 ^ 0x34) & 0x3f);
  uVar30 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(lVar4 + -0x670) = (uVar38 >> 0x20 ^ uVar37) >> 0x1a ^ uVar30;
  uVar7 = DAT_182671628;
  uVar37 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar4 + -0xc08) = uVar25 ^ uVar37;
  uVar9 = DAT_182671698;
  uVar26 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0x318) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0x12686d3)) ^ uVar30 | uVar25) ^ uVar26;
  uVar30 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 - (uVar20 ^ 0x5e6f7d99)) = uVar22 - (*puVar17 ^ uVar26) ^ uVar30;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0x823b03ea)) =
       (uVar37 ^ *(ulonglong *)(lVar5 + -0xc08)) >> (((byte)uVar40 ^ 0xaa) & 0x3f);
  uVar33 = CONCAT44(DAT_182671718,DAT_182671718);
  puVar23 = (ulonglong *)(lVar5 - (uVar29 ^ 0xfed977c4));
  *puVar23 = uVar33 ^ uVar24 ^ uVar43 ^ *(ulonglong *)(lVar5 + -0x688) ^
             *(ulonglong *)(lVar5 + -0x628);
  uVar7 = DAT_18267177c;
  *(ulonglong *)(lVar5 + -0x800) =
       *(ulonglong *)(lVar5 - (uVar35 ^ 0x12681b3)) ^ CONCAT44(uVar6,uVar8) ^ uVar30 ^
       0xc3e84c38d2cf948e;
  uVar37 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0xfed977f4)) =
       (uVar33 ^ *puVar23) >> ((local_f8 ^ 0x9f) & 0x3f) ^ uVar37;
  uVar10 = DAT_182671588;
  uVar22 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar5 + -0xa88) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0x126883b)) ^ uVar33) << (((byte)uVar8 ^ 0xa3) & 0x3f) ^
       uVar22;
  uVar9 = DAT_1826717d0;
  uVar22 = *(ulonglong *)(lVar5 - (uVar18 ^ 0x23288b3)) ^ uVar22 |
           uVar37 ^ *(ulonglong *)(lVar5 + -0x8a8);
  *(ulonglong *)(lVar5 + -0x2a0) = uVar22 ^ uVar37;
  lVar4 = DAT_182671560;
  uVar25 = CONCAT44(uVar9,uVar9);
  *puVar2 = (uVar24 ^ *(ulonglong *)(lVar5 + -0x628)) - uVar22 ^ uVar25;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x2ad8df59)) =
       (CONCAT44(uVar10,uVar12) ^ 0x47a211e5465b6982) <<
       (((byte)uVar7 ^ *(byte *)(lVar4 + -0x8a8)) & 0x3f);
  uVar7 = DAT_1826716d0;
  uVar33 = (ulonglong)DAT_1826717cc;
  uVar38 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar43 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar22 = uVar38 ^ uVar37 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x2a0) ^
           *(ulonglong *)(lVar4 + -0x110);
  *(ulonglong *)(lVar4 + -0x80) = uVar22;
  uVar37 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0xbf0) = (uVar22 >> 0x20 ^ uVar33) >> 0xe ^ uVar43;
  uVar15 = DAT_182671594;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0x232872b)) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x2ad8d909)) ^ uVar38) << ((bVar16 ^ 0x20) & 0x3f) ^ uVar37
  ;
  uVar39 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0x1d2228e3)) =
       (*(ulonglong *)(lVar5 - (uVar29 ^ 0xfed97a4c)) ^ uVar37 |
       uVar43 ^ *(ulonglong *)(lVar5 + -0xbf0)) ^ uVar39;
  lVar4 = DAT_182671560;
  uVar38 = CONCAT44(DAT_18267166c,DAT_18267166c);
  bVar16 = (byte)DAT_18267156c;
  *puVar28 = (uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x110)) - (uVar39 ^ *puVar1) ^ uVar38;
  uVar7 = DAT_1826715d0;
  uVar30 = CONCAT44(DAT_182671754,DAT_182671754);
  uVar22 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar33 = uVar30 ^ uVar25 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x318) ^ *puVar2;
  *(ulonglong *)(lVar4 + -0x600) = uVar33;
  uVar37 = (uVar33 ^ uVar30) >> ((bVar16 ^ 0x11) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc08) = uVar37 ^ uVar22;
  lVar4 = DAT_182671560;
  uVar33 = (uVar30 ^ uVar33) << (((byte)uVar6 ^ 0xf) & 0x3f);
  uVar30 = uVar33 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar30;
  uVar9 = DAT_1826718c0;
  uVar22 = *puVar2;
  *(ulonglong *)(lVar4 + -0x688) =
       (CONCAT44(uVar8,uVar40) ^ 0x6679817a6e022253) >> (((byte)uVar30 ^ (byte)uVar7) & 0x3f);
  uVar43 = CONCAT44(uVar9,uVar9);
  uVar33 = (uVar37 | uVar33) ^ uVar43;
  uVar37 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar4 + -0x800) = uVar33;
  uVar7 = DAT_18267182c;
  *(ulonglong *)(lVar4 + -0x898) =
       (uVar25 ^ uVar22) - (*(ulonglong *)(lVar4 - (uVar35 ^ 0x12688a3)) ^ uVar43) ^ uVar37;
  uVar26 = CONCAT44(uVar7,uVar7);
  puVar23 = (ulonglong *)(lVar4 - (uVar34 ^ 0x2ad8d301));
  *puVar23 = uVar26 ^ uVar43 ^ uVar38 ^ uVar33 ^ *(ulonglong *)(lVar4 + -0x670);
  uVar7 = DAT_1826716ec;
  uVar33 = uVar29 << 0x35 ^ 0x5c20000000000000;
  *(ulonglong *)(lVar4 + -0x628) = uVar33;
  uVar25 = CONCAT44(uVar7,uVar7);
  uVar30 = (ulonglong)DAT_182671590;
  uVar34 = (*(ulonglong *)(lVar4 - (uVar20 ^ 0x5e6f7601)) ^ uVar26) >>
           (((byte)uVar10 ^ 0x91) & 0x3f);
  uVar22 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar4 + -0x8a8) = uVar34 ^ uVar25;
  uVar20 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar4 + -0x6d0) = (*(ulonglong *)(lVar4 - (uVar22 ^ 0x96bf3746)) ^ uVar25) - uVar33
  ;
  uVar7 = DAT_182671824;
  uVar9 = DAT_182671584;
  uVar33 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0x8577a11e)) ^ uVar26) <<
           (((byte)DAT_182671570 ^ 0xc5) & 0x3f);
  uVar22 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar33 ^ uVar20;
  uVar20 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x1d222a23)) = (uVar33 | uVar34) ^ uVar20;
  uVar8 = DAT_18267157c;
  uVar33 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x12685b3)) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x670)) -
       (CONCAT44(uVar6,DAT_18267157c) ^ 0x2943f012e3f264b2) ^ uVar33;
  uVar7 = DAT_18267156c;
  uVar22 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xe46dd966)) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x510)) - (uVar20 ^ *(ulonglong *)(lVar4 + -0x80)) ^ uVar22
  ;
  *(ulonglong *)(lVar4 + -0x110) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x1268023)) ^ uVar20) -
       (CONCAT44(uVar9,uVar7) ^ 0xe22eaf0e550e1bfb) ^ uVar45;
  uVar14 = DAT_182671884;
  lVar5 = DAT_182671560;
  uVar33 = (ulonglong)DAT_182671600;
  uVar38 = CONCAT44(DAT_182671600,DAT_182671600);
  uVar20 = uVar38 ^ uVar37 ^ uVar39 ^ *(ulonglong *)(lVar4 + -0x898) ^ *puVar1;
  *(ulonglong *)(lVar4 + -0x318) = uVar20;
  uVar13 = DAT_1826717f0;
  uVar35 = (uVar20 >> 0x20 ^ uVar33) >> 1;
  *(ulonglong *)(lVar5 + -0x600) = uVar35 ^ CONCAT44(uVar14,uVar14);
  uVar33 = (uVar38 ^ uVar20) << (((byte)uVar12 ^ 0x43) & 0x3f);
  uVar38 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar5 + -0x688) = uVar33 ^ CONCAT44(uVar13,uVar13);
  uVar6 = DAT_1826715b4;
  uVar35 = uVar35 | uVar33;
  uVar33 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar5 + -0xc08) = uVar35 ^ uVar38;
  uVar20 = (*(ulonglong *)(lVar5 - (uVar30 ^ 0x8577a30e)) ^ uVar37) -
           (CONCAT44(uVar27,uVar11) ^ 0x62aaaa6f5382ec0a);
  *(ulonglong *)(lVar5 + -0x1d8) = uVar20 ^ uVar33;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x1c022060)) = uVar20 - uVar35 ^ uVar24;
  uVar8 = DAT_182671608;
  uVar35 = CONCAT44(DAT_182671778,DAT_182671778);
  uVar30 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(lVar5 + -0x800) =
       (CONCAT44(uVar12,uVar27) ^ 0x28b5d50bba078be2) + (uVar38 ^ *(ulonglong *)(lVar5 + -0xc08)) ^
       uVar35;
  uVar13 = DAT_182671688;
  uVar35 = *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x1c022200)) ^ uVar22 ^
           *(ulonglong *)(lVar5 + -0xbf0) ^ uVar30 ^ uVar35;
  *(ulonglong *)(lVar5 + -0x628) = uVar35;
  uVar14 = DAT_182671760;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x6d0) =
       ((ulonglong)uVar8 << 0x1b | (ulonglong)(uVar8 >> 5)) ^ uVar35 >> 5 ^ uVar37;
  uVar6 = DAT_1826715a0;
  local_res18 = (byte)uVar21;
  uVar20 = CONCAT44(uVar14,uVar14);
  uVar33 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a0 ^ 0x1200a2b)) =
       (uVar35 ^ uVar30) << ((local_res18 ^ 0x98) & 0x3f) ^ uVar20;
  uVar13 = DAT_182671704;
  *(ulonglong *)(lVar5 + -0x8a8) =
       *(ulonglong *)(lVar5 - (uVar33 ^ 0xe46dd446)) ^ uVar37 |
       CONCAT44(uVar7,uVar40) ^ 0x3c73dca902cf43fd;
  uVar8 = DAT_1826715b4;
  uVar33 = (ulonglong)DAT_1826715b4;
  uVar35 = (*puVar23 ^ uVar20 | uVar37 ^ *(ulonglong *)(lVar5 + -0x6d0)) ^ uVar43;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x2a0) = uVar35;
  uVar30 = (uVar22 ^ *(ulonglong *)(lVar5 + -0xbf0)) -
           (*(ulonglong *)(lVar5 - (uVar33 ^ 0x1c0228a0)) ^ uVar43);
  uVar22 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar5 + -0x670) = uVar30 ^ uVar37;
  uVar13 = DAT_1826715f8;
  lVar4 = DAT_182671560;
  uVar33 = uVar24 ^ uVar45 ^ *(ulonglong *)(lVar5 + -0x110) ^ uVar22 ^ *puVar2;
  *(ulonglong *)(lVar5 + -0x510) = uVar33;
  uVar7 = DAT_182671578;
  uVar45 = (ulonglong)DAT_182671594;
  uVar20 = (*(ulonglong *)(lVar4 - (uVar45 ^ 0x1d222fb3)) ^ uVar22) >> ((local_res18 ^ 0x86) & 0x3f)
  ;
  *(ulonglong *)(lVar4 + -0x80) = uVar20 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_1826715ac;
  uVar33 = (uVar33 ^ uVar22) << (((byte)uVar7 ^ 0xf4) & 0x3f);
  *puVar1 = uVar33 ^ uVar31;
  lVar4 = DAT_182671560;
  uVar33 = uVar33 | uVar20;
  uVar20 = CONCAT44(DAT_182671890,DAT_182671890);
  uVar22 = *puVar2;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar33 ^ uVar20;
  uVar22 = (uVar24 ^ uVar22) - uVar33 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x600) = uVar22;
  uVar7 = DAT_182671654;
  uVar33 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar4 + -0x688) =
       *(ulonglong *)(lVar4 - (uVar45 ^ 0x1d222cd3)) ^ *puVar17 ^ uVar33 ^ uVar20 ^ uVar37;
  uVar20 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x120062b)) ^ uVar33) >>
           (((byte)uVar13 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar4 + -0x898) = uVar20 ^ CONCAT44(uVar7,uVar7);
  lVar5 = DAT_182671560;
  uVar24 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671588 ^ 0x162f3a00)) ^ uVar33) <<
           (((byte)DAT_182671588 ^ 0xa1) & 0x3f);
  uVar33 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar24 ^ CONCAT44(DAT_1826717f8,DAT_1826717f8);
  uVar24 = uVar24 | uVar20;
  *(ulonglong *)(lVar5 + -0xc08) = uVar24 ^ uVar33;
  *(ulonglong *)(lVar5 + -0x800) =
       (CONCAT44(uVar9,uVar40) ^ 0xe6b6bd6f9c37acc1) << (((byte)DAT_18267156c ^ 0xf) & 0x3f);
  uVar9 = DAT_182671764;
  lVar4 = DAT_182671560;
  uVar20 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar30 - uVar24 ^ uVar20;
  uVar7 = DAT_182671668;
  uVar33 = CONCAT44(uVar9,uVar9);
  uVar35 = uVar43 ^ uVar42 ^ uVar22 ^ uVar35;
  *(ulonglong *)(lVar4 + -0x8a8) = uVar35 ^ uVar33;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar35 >> ((local_res18 ^ 0x8b) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x7efff701)) = uVar35 | 0xa63b203c2f4b27a6;
  uVar9 = DAT_18267180c;
  uVar7 = DAT_1826715c4;
  *(ulonglong *)(lVar4 + -0xbf0) =
       (*(ulonglong *)(lVar4 - (uVar18 ^ 0x2328a93)) ^ uVar33) <<
       (((byte)DAT_18267157c ^ 0x8e) & 0x3f) ^ uVar32;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar22 = *(ulonglong *)(lVar4 - (uVar29 ^ 0xfed974ac)) ^ uVar32 |
           uVar22 ^ *(ulonglong *)(lVar4 + -0x6d0);
  *(ulonglong *)(lVar4 + -0x110) = uVar22 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x510) =
       (uVar42 ^ *(ulonglong *)(lVar4 + -0x600)) - uVar22 ^ CONCAT44(uVar9,uVar9);
  uVar7 = DAT_182671604;
  uVar22 = (ulonglong)DAT_1826715a8;
  uVar20 = *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x1c022b10)) ^ uVar41 ^
           *(ulonglong *)(lVar4 + -0x628) ^ uVar33 ^ uVar20;
  *(ulonglong *)(lVar4 + -0x80) = uVar20;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0x96bf3f6e)) ^ uVar41) >>
            (((byte)uVar6 ^ 0x97) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *puVar2 = (uVar41 ^ uVar20) << ((local_f8 ^ 0x85) & 0x3f) ^ CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar3 ^ uVar40) * 4) = uVar36;
  return;
}



############ FUN_ 180e47e00 size=5207 ############

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

void FUN_180e47e00(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte bVar32;
  ulonglong uVar33;
  byte bVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  byte bVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  byte bVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  uint uVar56;
  ulonglong uVar57;
  ulonglong *puVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  byte local_e8;
  
  uVar13 = DAT_18267181c;
  uVar14 = DAT_1826717a0;
  uVar18 = DAT_182671678;
  uVar11 = DAT_1826715b0;
  uVar8 = DAT_1826715a0;
  uVar10 = DAT_18267159c;
  uVar7 = DAT_182671574;
  lVar5 = DAT_182671560;
  uVar50 = (ulonglong)DAT_1826715b0;
  uVar25 = (ulonglong)DAT_1826715a0;
  uVar54 = (ulonglong)DAT_182671574;
  uVar56 = DAT_1826715a0 * DAT_182671578;
  uVar35 = DAT_182671880 | DAT_182671628;
  uVar29 = DAT_182671678 ^ DAT_182671608;
  uVar15 = DAT_1826715b0 << 0x10 | DAT_1826715b0 >> 0x10;
  uVar16 = DAT_1826718a0 & DAT_1826715f4 ^ 0xdd95dde8;
  uVar37 = DAT_182671574 * DAT_18267159c;
  uVar19 = DAT_1826717a0 >> 0x10;
  uVar4 = *(uint *)(&DAT_182611e78 + DAT_182671a78);
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_182671a78) ^ DAT_182671578;
  uVar45 = (ulonglong)uVar15;
  uVar59 = CONCAT44(DAT_18267181c,DAT_18267181c);
  puVar20 = (ulonglong *)(DAT_182671560 + -0x510);
  uVar21 = CONCAT44(DAT_182671608,DAT_182671608);
  bVar44 = (byte)(DAT_1826715b0 >> 0x10);
  uVar46 = (uVar59 ^ *puVar20) >> ((bVar44 ^ 0xf4) & 0x3f);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x688);
  DAT_182671570 = uVar15;
  DAT_182671580 = uVar56;
  DAT_1826715a8 = uVar37;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar46 ^ uVar21;
  *puVar1 = *(ulonglong *)(lVar5 + -0x548) ^ 0xfafc19515f2e3181;
  lVar5 = DAT_182671560;
  bVar53 = (byte)uVar7;
  uVar39 = CONCAT44(uVar18,uVar18);
  uVar55 = (ulonglong)uVar37;
  *(ulonglong *)(DAT_182671560 + -0x548) = (uVar59 ^ *puVar20) << ((bVar53 ^ 0xda) & 0x3f) ^ uVar39;
  uVar12 = DAT_1826717fc;
  uVar18 = uVar29 & 0xff;
  DAT_18267189c = ((uVar29 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar51 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar37 ^ 0xb3ea7e6b)) =
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0xfe76fb37)) ^ uVar39 | uVar46) ^ uVar51;
  uVar9 = DAT_182671688;
  lVar5 = DAT_182671560;
  uVar18 = uVar35 & 0xff;
  DAT_18267187c = ((uVar35 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  puVar2 = (ulonglong *)(DAT_182671560 + -0x8a8);
  uVar38 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(DAT_182671560 + -0xa0)) - (uVar51 ^ *puVar1) ^
       uVar38;
  lVar6 = DAT_182671560;
  uVar47 = CONCAT44(uVar9,uVar9);
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar59 = (ulonglong)uVar10;
  puVar22 = (ulonglong *)(lVar5 - (uVar59 ^ 0xa3f5f647));
  uVar33 = (ulonglong)uVar56;
  *puVar22 = uVar26 ^ uVar47 ^ uVar51 ^ *puVar2 ^ *puVar1;
  uVar18 = uVar19 & 0xff;
  DAT_182671704 = ((uVar19 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  puVar40 = (ulonglong *)(lVar6 - ((ulonglong)uVar56 ^ 0xddbb04f8));
  uVar36 = CONCAT44(DAT_182671704,DAT_182671704);
  bVar28 = (byte)uVar8;
  uVar46 = (*puVar40 ^ uVar26) >> ((bVar28 ^ 0x71) & 0x3f);
  *(ulonglong *)(lVar6 + -0xa0) = uVar46 ^ uVar36;
  *puVar1 = 0x98a731eee32ef451 >> (((byte)uVar13 ^ *(byte *)puVar20) & 0x3f);
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar57 = CONCAT44(DAT_182671628,DAT_182671628);
  bVar32 = (byte)uVar56;
  uVar46 = (*(ulonglong *)(lVar6 - (uVar50 ^ 0x23cdfd79)) ^ uVar26) << ((bVar32 ^ 0x32) & 0x3f) |
           uVar46;
  uVar19 = uVar16 & 0xff;
  *puVar20 = uVar46 ^ uVar57;
  DAT_1826716c4 = ((uVar16 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar41 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar60 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  uVar47 = (uVar47 ^ *puVar2) - (uVar41 ^ *(ulonglong *)(lVar5 + -0x240));
  *puVar1 = uVar47 ^ uVar60;
  *(ulonglong *)(lVar5 + -0xa0) = uVar46 + (*(ulonglong *)(lVar5 + -0x9f8) ^ uVar26);
  uVar9 = DAT_182671768;
  *puVar2 = uVar47 - uVar46 ^ uVar30;
  lVar6 = DAT_182671560;
  uVar47 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 - (uVar33 ^ 0xddbb0da0)) =
       (CONCAT44(DAT_1826718cc,DAT_1826718cc) ^ *(ulonglong *)(lVar5 + -0x110)) +
       (*(ulonglong *)(lVar5 + -0x400) ^ uVar47) ^ uVar26;
  uVar18 = DAT_1826715f4;
  uVar19 = DAT_182671578;
  uVar27 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar5 + -0x9f8) =
       (uVar57 ^ *puVar20) - (uVar26 ^ *(ulonglong *)(lVar5 + -0xa0)) ^ uVar27;
  uVar42 = CONCAT44(uVar18,uVar18);
  bVar34 = (byte)uVar19;
  *(ulonglong *)(lVar5 - (uVar59 ^ 0xa3f5faaf)) =
       CONCAT44(DAT_182671728,DAT_182671728) ^ uVar42 ^ *(ulonglong *)(lVar5 + -0x1d8) ^ uVar38 ^
       *(ulonglong *)(lVar5 + -0x548);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = (uVar42 ^ *puVar20) >> ((bVar34 ^ 0x10) & 0x3f) ^ uVar51;
  puVar52 = (ulonglong *)(lVar6 - (uVar25 ^ 0xfe76f80f));
  puVar3 = (ulonglong *)(lVar6 + -0x670);
  *puVar52 = (uVar42 ^ *puVar20) << (((byte)uVar37 ^ 0xd3) & 0x3f) ^ uVar42;
  uVar46 = uVar42 ^ *puVar3 | *(ulonglong *)(lVar6 + -0x1d8) ^ uVar51;
  *puVar20 = uVar46 ^ uVar57;
  uVar23 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar6 + -0x1d8) =
       (uVar38 ^ *(ulonglong *)(lVar6 + -0x548)) - (*(ulonglong *)(lVar6 + -0x748) ^ uVar23) ^
       uVar21;
  *puVar3 = 0x6519e419e0be548f >> ((bVar32 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar6 + -0x548) =
       (*(ulonglong *)(lVar6 - (uVar25 ^ 0xfe76ffa7)) ^ uVar21) - uVar46 ^ uVar39;
  uVar9 = DAT_18267166c;
  puVar48 = (ulonglong *)(lVar6 - (uVar54 ^ 0xdd8f89ad));
  *puVar48 = *(ulonglong *)(lVar6 - (uVar25 ^ 0xfe76f8f7)) ^ CONCAT44(uVar37,uVar15) ^ uVar60 ^
             0x82c91b708bb972b6;
  uVar24 = CONCAT44(uVar9,uVar9);
  uVar46 = (CONCAT44(uVar11,uVar8) ^ 0xdc320b7e0189018f) - (*(ulonglong *)(lVar6 + -0x638) ^ uVar24)
  ;
  *(ulonglong *)(lVar6 + -0x1d8) = uVar46 ^ uVar21;
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0xddbb0b88)) = (uVar57 ^ *puVar20) + uVar46 ^ uVar38;
  *puVar52 = CONCAT44(uVar10,uVar19) ^ CONCAT44(uVar37,uVar15) ^ 0x78ba00de168d1150;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0xddbb0cd8)) =
       uVar27 ^ uVar30 ^ uVar38 ^ *puVar2 ^ *puVar1;
  lVar6 = DAT_182671560;
  *puVar48 = (uVar27 ^ *(ulonglong *)(lVar5 + -0x1d8)) >> ((bVar53 ^ 0xfd) & 0x3f) ^ uVar39;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       (*(ulonglong *)(lVar6 - (uVar50 ^ 0x23cdf559)) ^ uVar27) << (((byte)uVar10 ^ 0x9f) & 0x3f) ^
       uVar30;
  lVar6 = DAT_182671560;
  puVar43 = (ulonglong *)(lVar5 - ((ulonglong)uVar19 ^ 0xb29875d0));
  puVar49 = (ulonglong *)(lVar5 - (uVar59 ^ 0xa3f5fe67));
  *puVar49 = (*puVar3 ^ uVar39 | *puVar43 ^ uVar30) ^ uVar39;
  *puVar3 = (uVar30 ^ *puVar2) - (*(ulonglong *)(lVar6 + -0x1d8) ^ uVar39) ^ uVar60;
  lVar5 = DAT_182671560;
  puVar52 = (ulonglong *)(DAT_182671560 - (uVar25 ^ 0xfe76f787));
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0xf4812685)) ^ uVar27 ^ uVar60 ^ uVar39 ^ *puVar52;
  puVar58 = (ulonglong *)(lVar5 - (uVar55 ^ 0xb3ea704b));
  *puVar58 = (*(ulonglong *)(lVar5 - (uVar54 ^ 0xdd8f890d)) ^ uVar60) >> ((bVar28 ^ 0x5f) & 0x3f) ^
             uVar57;
  puVar48 = (ulonglong *)(DAT_182671560 + -0x6d0);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar57 ^ *puVar20 | uVar38 ^ *puVar1;
  uVar46 = (uVar60 ^ *puVar48) << ((bVar34 ^ 0x20) & 0x3f);
  *puVar20 = uVar46 ^ uVar21;
  lVar5 = DAT_182671560;
  uVar46 = (uVar57 ^ *puVar2 | uVar46) ^ uVar27;
  *puVar1 = uVar46;
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (uVar39 ^ *(ulonglong *)(lVar5 + -0x548)) -
       (*(ulonglong *)(DAT_182671560 - (uVar59 ^ 0xa3f5f937)) ^ uVar27) ^ uVar51;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar27 ^ *puVar3 ^ uVar60 ^ uVar30 ^ uVar46;
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar55 ^ 0xb3ea7df3)) =
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0xddbb0bd0)) ^ uVar30) >> ((bVar28 ^ 0x45) & 0x3f) ^ uVar36
  ;
  *(undefined8 *)(lVar6 - (uVar45 ^ 0xf4812b65)) = 0xf9f6941c818fa1;
  uVar46 = (*(ulonglong *)(lVar6 - (uVar59 ^ 0xa3f5f96f)) ^ uVar30) << ((bVar28 ^ 0x79) & 0x3f) |
           uVar36 ^ *puVar20;
  *puVar1 = uVar46 ^ uVar38;
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xddbb05a8)) = (*puVar3 ^ uVar60) - uVar46 ^ uVar57;
  *(ulonglong *)(lVar6 + -0x6d0) =
       *(ulonglong *)(lVar6 + -0x9f8) ^ *(ulonglong *)(lVar6 + -0x1d8) ^ uVar51;
  *(ulonglong *)(lVar6 + -0x548) = (uVar36 ^ *puVar20) << ((bVar53 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar6 - (uVar50 ^ 0x23cdf2f1)) =
       (*puVar43 ^ uVar39) >> ((bVar44 ^ 0xdb) & 0x3f) ^ uVar42;
  lVar5 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x328) =
       *(uint *)(DAT_182671560 - (uVar25 ^ 0xfe76f76f)) >> ((bVar44 ^ 0xc2) & 0x1f);
  uVar31 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(lVar5 + -0x1d8) = (uVar39 ^ *(ulonglong *)(lVar5 + -0x6d0)) << 0x2a ^ uVar31;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0xddbb0810)) =
       (CONCAT44(uVar37,uVar7) ^ 0x6ba713e29b76309a) - (CONCAT44(uVar7,uVar7) ^ 0xc003b195c296342f);
  uVar46 = uVar31 ^ *(ulonglong *)(lVar5 + -0x1d8) | uVar42 ^ *puVar3;
  uVar30 = uVar46 ^ uVar42;
  *(ulonglong *)(lVar5 + -0x548) = uVar30;
  uVar9 = DAT_182671598;
  uVar46 = (*(ulonglong *)(lVar5 + -0x9f8) ^ uVar51) - uVar46 ^ uVar60;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar46;
  *puVar20 = (CONCAT44(uVar19,uVar19) ^ 0xb5eec845cde399b7) <<
             (((byte)uVar16 ^ (byte)uVar46) & 0x3f);
  *puVar3 = uVar42 ^ *puVar2 ^ uVar30;
  *puVar49 = (*(ulonglong *)(DAT_182671560 - (uVar55 ^ 0xb3ea7e93)) ^ uVar57) >>
             (((byte)uVar9 ^ 0xa4) & 0x3f) ^ uVar57;
  uVar18 = DAT_1826715b4;
  lVar5 = DAT_182671560;
  uVar55 = (ulonglong)DAT_1826715b4;
  uVar46 = (*puVar3 ^ uVar57) << (((byte)uVar37 ^ 0xf1) & 0x3f);
  puVar48 = (ulonglong *)(DAT_182671560 + -0x1d8);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar46 ^ uVar36;
  uVar46 = uVar46 | *puVar48 ^ uVar57;
  *puVar20 = uVar46 ^ uVar42;
  uVar12 = DAT_182671710;
  *(ulonglong *)(lVar5 + -0x548) = (uVar57 ^ *puVar2) - uVar46 ^ uVar21;
  uVar30 = *(ulonglong *)(lVar5 - (uVar55 ^ 0x32a285d1)) ^ uVar60 ^ uVar38 ^ *puVar1;
  uVar46 = uVar30 >> ((bVar32 ^ 0xc) & 0x3f);
  *puVar3 = uVar30 ^ CONCAT44(uVar12,uVar12);
  lVar5 = DAT_182671560;
  uVar30 = uVar30 << ((bVar34 ^ 0x34) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar46 ^ CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(lVar5 + -0x9f8) = uVar30 ^ uVar27;
  puVar43 = (ulonglong *)(lVar5 - (uVar50 ^ 0x23cdfc29));
  *puVar43 = (uVar30 | uVar46) ^ uVar23;
  uVar46 = *puVar2;
  local_e8 = (byte)uVar11;
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar45 ^ 0xf481251d)) ^ uVar60) - (uVar23 ^ *puVar2) ^ uVar36;
  uVar8 = DAT_182671628;
  puVar48 = (ulonglong *)(DAT_182671560 - (uVar33 ^ 0xddbb0b70));
  uVar30 = (ulonglong)DAT_182671628;
  *puVar48 = uVar23 ^ uVar57 ^ uVar21 ^ uVar46 ^ *(ulonglong *)(DAT_182671560 + -0x548);
  lVar5 = DAT_182671560;
  *puVar52 = ((ulonglong)(uVar8 >> 0x19) | uVar30 << 7) ^ *puVar3 >> 0x19 ^ uVar51;
  lVar6 = DAT_182671560;
  uVar46 = (uVar57 ^ *puVar48) << ((bVar53 ^ 0xfa) & 0x3f);
  *(ulonglong *)(lVar5 + -0x1d8) = uVar46 ^ uVar60;
  *(ulonglong *)(lVar6 + -0x6d0) =
       (CONCAT44(uVar15,uVar10) ^ 0x641d2aa2c8843817) >> ((local_e8 ^ 0xae) & 0x3f);
  *(ulonglong *)(lVar6 - (uVar59 ^ 0xa3f5f717)) =
       (uVar46 | *(ulonglong *)(lVar6 + -0x9f8) ^ uVar51) ^ uVar38;
  uVar46 = (uVar21 ^ *(ulonglong *)(lVar6 + -0x548)) - (*(ulonglong *)(lVar6 + -0x2a0) ^ uVar31);
  *puVar3 = uVar46 ^ CONCAT44(DAT_182671730,DAT_182671730);
  *puVar22 = uVar46 - (uVar38 ^ *puVar43) ^ uVar57;
  uVar8 = DAT_182671588;
  *(ulonglong *)(lVar6 - (uVar54 ^ 0xdd8f8e05)) =
       *(ulonglong *)(lVar6 + -0x6d0) ^ 0x73b2f011739b4d24;
  uVar46 = (CONCAT44(DAT_182671844,DAT_182671844) ^ *(ulonglong *)(lVar6 + -0x610)) +
           (uVar41 ^ *(ulonglong *)(lVar6 + -0x240));
  *(ulonglong *)(lVar6 + -0x548) = uVar46 ^ CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *puVar3 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xa3f5f717)) ^ uVar38) - uVar46 ^ uVar57;
  uVar12 = DAT_18267171c;
  uVar46 = uVar24 ^ uVar42 ^ uVar36 ^ *puVar1 ^ *puVar20;
  *(ulonglong *)(lVar6 + -0x6d0) = uVar46;
  lVar5 = DAT_182671560;
  uVar59 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0xf4812215)) =
       (uVar24 ^ uVar46) >> ((bVar28 ^ 0x5e) & 0x3f) ^ uVar59;
  uVar46 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *puVar58 = (uVar24 ^ *(ulonglong *)(lVar5 + -0x6d0)) << ((bVar44 ^ 0xd2) & 0x3f) ^ uVar39;
  lVar5 = DAT_182671560;
  uVar31 = *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xfe76f6d7)) ^ uVar39 |
           *(ulonglong *)(DAT_182671560 + -0x1d8) ^ uVar59;
  *puVar20 = uVar31 ^ uVar46;
  uVar12 = DAT_1826717a4;
  uVar59 = (uVar36 ^ *puVar1) - (uVar26 ^ *(ulonglong *)(lVar5 + -0xa0));
  *(ulonglong *)(lVar5 + -0x6d0) = uVar59 ^ uVar26;
  uVar13 = DAT_1826717f0;
  uVar46 = *(ulonglong *)(lVar5 + -0x6d0);
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 + -0x1d8) = uVar59 - uVar31 ^ uVar23;
  uVar24 = CONCAT44(uVar13,uVar13);
  uVar59 = (ulonglong)DAT_1826715a4;
  uVar30 = (CONCAT44(uVar10,uVar19) ^ 0x5c0a00404d678cf1) -
           (*(ulonglong *)(lVar5 + -0xc08) ^ uVar24);
  *puVar2 = uVar30 ^ CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar30 = uVar31 + uVar30 ^ uVar21;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar30;
  *puVar1 = (uVar26 ^ uVar46) >> ((bVar32 ^ 0x31) & 0x3f);
  uVar30 = *(ulonglong *)(lVar5 - (uVar59 ^ 0xf5a3b607)) ^ uVar47 ^ uVar57 ^ uVar21 ^ uVar30;
  *puVar20 = (uVar47 ^ uVar30) >> (((byte)uVar9 ^ 0x8f) & 0x3f) ^ uVar24;
  *puVar1 = uVar30;
  uVar59 = (ulonglong)DAT_182671568;
  uVar21 = CONCAT44(DAT_182671824,DAT_182671824);
  uVar46 = (uVar47 ^ uVar30) << 0x3b;
  *puVar2 = uVar46 ^ uVar39;
  *(ulonglong *)(DAT_182671560 - (uVar59 ^ 0xbffff373)) =
       (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xfe76fb6f)) ^ uVar24 | uVar46) ^ uVar21;
  lVar5 = DAT_182671560;
  uVar59 = CONCAT44(DAT_182671670,DAT_182671670);
  uVar46 = *(ulonglong *)(DAT_182671560 + -0x1d8);
  *puVar1 = (*(ulonglong *)(DAT_182671560 + -0x9f8) ^ uVar57) -
            (uVar21 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) ^ uVar59;
  uVar21 = CONCAT44(DAT_182671638,DAT_182671638);
  uVar47 = *(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x32a28571)) ^ uVar46 ^ uVar57 ^ uVar21 ^
           uVar23;
  *puVar2 = uVar47;
  *puVar20 = 0xafd32f5a43ec19ed - (CONCAT44(uVar19,uVar7) ^ 0xe9db48c8a799b030);
  uVar12 = DAT_1826716a4;
  uVar30 = (*puVar43 ^ uVar21) >> (((byte)uVar10 ^ 0x9a) & 0x3f);
  *(ulonglong *)(lVar5 + -0x9f8) = uVar30 ^ uVar27;
  uVar13 = DAT_1826716bc;
  uVar9 = DAT_18267169c;
  uVar47 = (uVar47 ^ uVar21) << (((byte)uVar8 ^ 0xa4) & 0x3f);
  *puVar3 = uVar47 ^ CONCAT44(uVar12,uVar12);
  uVar21 = CONCAT44(uVar9,uVar9);
  *puVar20 = (uVar47 | uVar30) ^ uVar21;
  puVar48 = (ulonglong *)(DAT_182671560 - (uVar55 ^ 0x32a28611));
  *puVar2 = uVar47 + 0x5a9af253362d0b97;
  *puVar40 = (uVar46 ^ uVar23) - (*puVar48 ^ uVar21) ^ CONCAT44(uVar13,uVar13);
  uVar9 = DAT_18267172c;
  uVar46 = (ulonglong)DAT_182671640;
  uVar19 = DAT_182671640 >> 0x17;
  uVar59 = CONCAT44(DAT_182671640,DAT_182671640) ^ uVar21 ^ *puVar1 ^ *puVar20 ^ uVar59;
  *puVar3 = uVar59;
  *puVar2 = ((ulonglong)uVar19 | uVar46 << 9) ^ uVar59 >> 0x17 ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar4 ^ uVar56;
  return;
}



############ FUN_ 180f0c570 size=4227 ############

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

void FUN_180f0c570(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint *puVar6;
  uint *puVar7;
  uint uVar8;
  longlong lVar9;
  undefined8 uVar10;
  uint uVar11;
  longlong lVar12;
  longlong lVar13;
  longlong lVar14;
  longlong lVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  byte bVar30;
  byte bVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  byte *pbVar35;
  ulonglong uVar36;
  uint *puVar37;
  uint uVar38;
  ulonglong uVar39;
  uint uVar40;
  uint uVar41;
  uint uVar42;
  uint uVar43;
  uint uVar44;
  uint uVar45;
  ulonglong uVar46;
  uint uVar47;
  longlong *plVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  
  uVar47 = DAT_1826715d0;
  uVar42 = DAT_1826715b4;
  uVar16 = DAT_1826715a0;
  uVar33 = DAT_182671590;
  uVar45 = DAT_182671588;
  uVar40 = DAT_182671584;
  lVar12 = DAT_182671560;
  uVar36 = (ulonglong)DAT_182671588;
  uVar34 = (ulonglong)DAT_182671590;
  uVar39 = (ulonglong)DAT_1826715b4;
  uVar49 = DAT_182671574 * DAT_1826715a0;
  uVar38 = ~DAT_1826715b4;
  DAT_182671598 =
       (DAT_182671588 << 0x10 | DAT_182671588 & 0xff00) << 8 | DAT_182671588 >> 8 & 0xff00 |
       DAT_182671588 >> 0x18;
  uVar11 = DAT_182671590;
  if ((DAT_1826715a4 & 1) == 0) {
    uVar11 = DAT_1826715a4;
  }
  uVar8 = *(uint *)(&DAT_182611e78 + DAT_1826719dc);
  uVar24 = (ulonglong)DAT_182671584;
  uVar22 = *(uint *)(&DAT_182611e70 + (uVar24 ^ 0xa0069058) + (longlong)DAT_1826719dc) ^
           DAT_1826715a4;
  puVar1 = (uint *)(DAT_182671560 + -0x844);
  puVar2 = (uint *)(DAT_182671560 + -0x374);
  DAT_182671580 = uVar11;
  DAT_18267159c = uVar49;
  DAT_1826715b0 = uVar38;
  *(uint *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0x26138238)) =
       (*(uint *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xfffffafb)) ^ DAT_182671650) +
       (*puVar1 ^ DAT_182671758) ^ DAT_1826715d0;
  uVar25 = (ulonglong)uVar16;
  bVar29 = (byte)DAT_182671574 ^ 0xd;
  bVar30 = (byte)uVar45 ^ 0x35;
  uVar43 = (*(uint *)(lVar12 - ((ulonglong)uVar16 ^ 0xaadd7622)) ^ uVar47) << (bVar29 & 0x1f) ^
           _DAT_1826715f0;
  uVar47 = (uVar47 ^ *(uint *)(lVar12 + -0x27c)) >> (bVar30 & 0x1f) ^ DAT_182671828;
  *puVar2 = uVar43;
  uVar43 = uVar43 ^ _DAT_1826715f0;
  puVar3 = (uint *)(lVar12 + -0x5cc);
  *(uint *)(lVar12 + -0x328) = uVar47;
  puVar4 = (uint *)(lVar12 + -0x678);
  uVar47 = *puVar4 ^ DAT_1826718b0;
  *puVar3 = (*(uint *)(lVar12 - ((ulonglong)uVar49 ^ 0xac9eb28)) ^ DAT_182671828 | uVar43) ^
            DAT_1826717bc;
  uVar50 = (ulonglong)uVar11;
  *(uint *)(lVar12 - ((ulonglong)uVar11 ^ 0x3bfe2a3c)) =
       (*(uint *)(lVar12 + -0x3c8) ^ DAT_182671624) + uVar47 ^ DAT_182671788;
  uVar18 = DAT_182671804;
  uVar23 = DAT_1826715a4;
  uVar43 = DAT_18267159c;
  lVar13 = DAT_182671560;
  uVar28 = (ulonglong)DAT_1826715cc;
  uVar26 = (ulonglong)uVar38;
  uVar27 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (CONCAT44(uVar45,uVar42) ^ 0x746bb2a88a02f7af) << (((byte)uVar49 ^ 0x34) & 0x3f);
  puVar37 = (uint *)(lVar13 - (uVar27 ^ 0x3bfe2a3c));
  puVar5 = (uint *)(lVar13 + -0x910);
  *(uint *)(lVar13 - (uVar50 ^ 0x3bfe240c)) = *puVar37 ^ _DAT_182671618 ^ DAT_182671788;
  *puVar5 = *puVar3 ^ DAT_1826716e8 ^ DAT_1826717bc;
  *(uint *)(lVar13 - ((ulonglong)uVar40 ^ 0xa0069434)) =
       *(uint *)(lVar13 - ((ulonglong)uVar23 ^ 0x3bfe240c)) ^ uVar18 ^ _DAT_182671618;
  *(ulonglong *)(lVar13 + -0x6d0) = *(ulonglong *)(lVar13 + -0x5c8) ^ 0x4f33efc2838fa10c;
  uVar47 = DAT_182671598;
  *(uint *)(lVar13 + -0x874) = DAT_182671708 ^ DAT_1826716e8 ^ *puVar5;
  *(undefined4 *)(lVar13 - ((ulonglong)uVar45 ^ 0x44801062)) = 0x3c46d2e5;
  bVar21 = DAT_18267161c;
  uVar17 = DAT_1826715fc;
  *(ulonglong *)(lVar13 - ((ulonglong)uVar42 ^ 0xc589a9ca)) =
       (CONCAT44(uVar33,uVar43) ^ 0xffffffff0ac9e800) * 0x20 +
       (CONCAT44(uVar16,uVar47) ^ 0xaadd745e26138056) + *(longlong *)(lVar13 + -0x8f0) ^ uVar28;
  *(byte *)(lVar13 - ((ulonglong)uVar45 ^ 0x44801367)) =
       *(byte *)(*(ulonglong *)(lVar13 + -0x990) ^ uVar28) ^ bVar21 ^ (byte)DAT_182671694;
  uVar43 = (uint)(bVar21 ^ *(byte *)(lVar13 + -0x41));
  uVar49 = *(uint *)(lVar13 + -0x874) ^ DAT_182671708;
  uVar47 = DAT_182671598 ^ 0x2fe4a691;
  *puVar1 = uVar43 ^ uVar17;
  *(uint *)(lVar13 + -0x504) = uVar49 + uVar47 ^ DAT_182671744;
  uVar44 = DAT_1826717b4;
  *(uint *)(lVar13 - (uVar26 ^ 0x3a765dd9)) = uVar43 << 0x11 ^ DAT_1826717b4;
  uVar49 = DAT_182671574;
  uVar47 = (*(uint *)(lVar13 + -0x504) ^ DAT_182671744) - (uVar44 ^ *(uint *)(lVar13 + -0x27c));
  uVar28 = (ulonglong)DAT_182671574;
  *puVar2 = uVar47 ^ uVar17;
  *(uint *)(lVar13 - ((ulonglong)uVar49 ^ 0x7114f28)) =
       (*(uint *)(lVar13 + -0x47c) ^ uVar18) * uVar47 ^ DAT_1826715ec;
  uVar47 = *puVar1;
  *(longlong *)(lVar13 + -0x110) =
       *(longlong *)(lVar13 + -0x6b8) << ((byte)*(undefined8 *)(lVar13 + -0x1f0) & 0x3f);
  uVar40 = (uVar47 ^ uVar17) * (uVar40 ^ 0xa006905a) ^ DAT_1826717ec;
  *puVar4 = uVar40;
  uVar17 = DAT_1826717a0;
  uVar47 = DAT_1826715c0;
  puVar6 = (uint *)(lVar13 + -0x964);
  uVar32 = (*(uint *)(lVar13 - ((ulonglong)uVar11 ^ 0x3bfe2070)) ^ DAT_1826715ec) +
           (uVar40 ^ DAT_1826717ec);
  *puVar6 = uVar32 ^ DAT_1826717a0;
  uVar40 = DAT_18267159c;
  bVar31 = (byte)DAT_182671598 ^ 0x57;
  uVar32 = uVar32 * 0x2000;
  *puVar3 = uVar32 ^ uVar47;
  *(ulonglong *)(lVar13 + -0x9f8) = *(ulonglong *)(lVar13 + -0x510) | 0x90a857674467a760;
  uVar19 = DAT_18267183c;
  uVar43 = DAT_1826715f8;
  puVar7 = (uint *)(lVar13 + -0x754);
  uVar41 = (*puVar37 ^ uVar17) >> (bVar31 & 0x1f);
  *puVar7 = uVar41 ^ uVar44;
  uVar17 = DAT_182671884;
  lVar9 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar25 ^ 0xaadd7d4e)) = (uVar41 | uVar32) ^ uVar19;
  *(uint *)(lVar9 - (uVar39 ^ 0xc589a31e)) =
       (*(uint *)(lVar9 - ((ulonglong)uVar23 ^ 0x3bfe2090)) ^ DAT_182671624) +
       (*(uint *)(lVar9 + -0x47c) ^ uVar18) ^ uVar17;
  uVar23 = DAT_18267187c ^ uVar19;
  *(ulonglong *)(lVar9 + -0x9e8) =
       (CONCAT44(uVar40,uVar33) ^ 0x37ff112bf952295c) << (((byte)uVar33 ^ 0xe7) & 0x3f);
  uVar33 = *(uint *)(lVar9 + -0x344) ^ _DAT_182671838 ^ uVar17;
  *(uint *)(lVar9 + -0x504) = uVar23 ^ *puVar5;
  *(uint *)(lVar9 + -0x874) = uVar33;
  uVar23 = DAT_182671668;
  bVar21 = DAT_1826715e0;
  lVar14 = DAT_182671560;
  uVar51 = CONCAT44(uVar40,uVar11);
  uVar27 = (ulonglong)DAT_182671668;
  *(uint *)(lVar9 - (uVar24 ^ 0xa0069234)) = uVar33 ^ uVar43 ^ _DAT_182671838;
  *(uint *)(lVar9 - ((ulonglong)DAT_182671598 ^ 0x26138330)) =
       *(uint *)(lVar9 - (uVar28 ^ 0x7114904)) ^ DAT_182671870 ^ DAT_18267187c;
  pbVar35 = (byte *)(*(longlong *)(lVar9 + -0x8f0) + 0x1d + (uVar51 ^ 0xac9e8003bfe2358) * 0x20);
  *(ulonglong *)(lVar9 + -0x50) = (ulonglong)pbVar35 ^ uVar27;
  lVar15 = DAT_182671560;
  bVar20 = *pbVar35 ^ bVar21 ^ (byte)DAT_182671694;
  *(byte *)(lVar9 + -0xc41) = bVar20;
  uVar40 = DAT_182671680;
  lVar9 = *(longlong *)(lVar15 + -0x638);
  *puVar1 = (bVar21 ^ bVar20) ^ DAT_182671680;
  bVar21 = (byte)DAT_182671590;
  *(longlong *)(lVar15 - (uVar50 ^ 0x3bfe23f8)) = lVar9 << (((byte)uVar45 ^ 0x32) & 0x3f);
  uVar44 = (*puVar2 ^ DAT_182671870) + (DAT_1826715b4 ^ 0xcc7e868f) ^ DAT_1826716ec;
  *(uint *)(DAT_182671560 + -0x328) = uVar44;
  uVar44 = uVar44 ^ DAT_1826716ec;
  uVar33 = (*puVar1 ^ uVar40) << ((bVar21 ^ 0xee) & 0x1f) ^ DAT_1826716ac;
  *puVar4 = uVar33;
  *(uint *)(lVar14 - (uVar28 ^ 0x7114564)) = uVar44 - (uVar33 ^ DAT_1826716ac) ^ DAT_182671798;
  uVar27 = *(ulonglong *)(lVar14 + -0x1f0);
  *puVar3 = (*puVar6 ^ DAT_182671798) * (uVar43 ^ *(uint *)(lVar14 + -0x27c)) ^ DAT_18267172c;
  *(ulonglong *)(lVar14 - (uVar25 ^ 0xaadd74de)) =
       CONCAT44(uVar45,uVar38) ^ uVar27 ^ 0x221f008072e066d9;
  puVar37 = (uint *)(lVar14 - (uVar24 ^ 0xa006980c));
  *(uint *)(lVar14 - (uVar28 ^ 0x7114b54)) = (*puVar37 ^ uVar40) * 0x1d ^ DAT_18267185c;
  uVar40 = _DAT_1826715dc;
  bVar21 = (byte)DAT_1826715a0;
  *(uint *)(lVar14 - (uVar34 ^ 0xfffffb83)) =
       (*puVar7 ^ DAT_18267185c) + (*puVar3 ^ DAT_18267172c) ^ _DAT_182671868;
  *(longlong *)(lVar14 + -0xbf0) = *(longlong *)(lVar14 + -0x240) << 4;
  uVar33 = *(uint *)(lVar14 + -0x47c) ^ _DAT_182671868;
  *(uint *)(lVar14 + -0x344) = uVar33 << ((bVar21 ^ 0x53) & 0x1f) ^ DAT_182671660;
  *(uint *)(lVar14 - (uVar26 ^ 0x3a7656b5)) = uVar33 >> (bVar31 & 0x1f) ^ uVar40;
  uVar38 = DAT_182671850;
  uVar46 = (ulonglong)DAT_182671640;
  uVar27 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar14 - (uVar25 ^ 0xaadd7c2a)) =
       (*(uint *)(lVar14 + -0x344) ^ DAT_182671660 | uVar40 ^ *puVar5) ^ DAT_18267163c;
  uVar40 = (*(uint *)(lVar14 - (uVar27 ^ 0xac9ebc8)) ^ DAT_182671624) +
           (uVar43 ^ *(uint *)(lVar14 + -0x27c)) ^ DAT_182671730;
  *(uint *)(lVar14 + -0x504) = uVar40;
  *(uint *)(lVar14 - (uVar28 ^ 0x7114f74)) = uVar40 ^ DAT_1826717d0 ^ DAT_182671730;
  uVar40 = *(uint *)(lVar14 - (uVar50 ^ 0x3bfe2b2c)) ^ DAT_18267186c ^ DAT_18267163c;
  *(uint *)(lVar14 + -0x328) = uVar40;
  uVar40 = uVar40 ^ DAT_182671824 ^ DAT_18267186c;
  *(ulonglong *)(lVar14 + -0x270) = *(ulonglong *)(lVar14 + -0x110) ^ 0x27aa199e3c922119;
  *puVar4 = *(uint *)(lVar14 - (uVar24 ^ 0xa006933c)) ^ uVar38 ^ DAT_1826717d0;
  *(uint *)(lVar14 - (uVar34 ^ 0xfffff69b)) = uVar40;
  bVar21 = DAT_18267188c;
  uVar27 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar14 + -0x548) =
       CONCAT44(uVar49,uVar42) ^ CONCAT44(DAT_1826715a4,uVar45) ^ 0x61a7f46d46500451;
  pbVar35 = (byte *)(*(longlong *)(lVar14 - (uVar27 ^ 0x3bfe2ba8)) +
                     (CONCAT44(uVar16,uVar11) ^ 0xaadd745e3bfe2358) * 0x20 +
                    (uVar51 ^ 0xac9e8003bfe2350));
  *(ulonglong *)(lVar14 + -0x428) = (ulonglong)pbVar35 ^ uVar46;
  bVar20 = *pbVar35 ^ bVar21 ^ (byte)DAT_182671694;
  *(byte *)(lVar14 + -0x41) = bVar20;
  *puVar1 = (bVar21 ^ bVar20) ^ uVar47;
  uVar40 = *puVar6 ^ DAT_182671824;
  *(ulonglong *)(lVar14 + -0x1d8) =
       *(ulonglong *)(lVar14 + -0xbf0) | *(ulonglong *)(lVar14 + -0x270);
  uVar42 = uVar40 + (DAT_1826715a0 ^ 0xa32a528b) ^ DAT_182671648;
  *puVar3 = uVar42;
  uVar40 = DAT_1826715a4;
  uVar42 = uVar42 ^ DAT_182671648;
  uVar33 = *(uint *)(lVar14 - (uVar36 ^ 0x44801b62)) ^ uVar47;
  *puVar7 = uVar33 * 0x20000 ^ uVar19;
  *(uint *)(lVar14 + -0x47c) = uVar42 + uVar33 * -0x20000 ^ DAT_18267180c;
  uVar42 = DAT_1826718d4;
  uVar33 = DAT_182671574 ^ 0x7114c08;
  *(uint *)(lVar14 + -0x344) =
       (*(uint *)(lVar14 - ((ulonglong)uVar40 ^ 0x3bfe2724)) ^ DAT_18267180c) * (*puVar4 ^ uVar38) ^
       DAT_182671744;
  uVar33 = (*puVar37 ^ uVar47) * uVar33;
  *puVar5 = uVar33 ^ uVar17;
  *(uint *)(lVar14 + -0x27c) =
       (*(uint *)(lVar14 - ((ulonglong)uVar40 ^ 0x3bfe201c)) ^ DAT_182671744) + uVar33 ^ uVar42;
  uVar33 = DAT_182671664;
  *(uint *)(lVar14 - ((ulonglong)uVar40 ^ 0x3bfe265c)) =
       (*(uint *)(lVar14 - (uVar39 ^ 0xc589a226)) ^ uVar42) << (bVar29 & 0x1f) ^ DAT_182671664;
  uVar46 = (ulonglong)DAT_18267159c;
  uVar42 = (*(uint *)(lVar14 - ((ulonglong)DAT_18267159c ^ 0xac9ea7c)) ^ uVar42) >> (bVar30 & 0x1f)
           ^ DAT_1826717e8;
  *(uint *)(lVar14 + -0x874) = uVar42;
  *(uint *)(lVar14 - (uVar50 ^ 0x3bfe202c)) =
       (uVar33 ^ *(uint *)(lVar14 + -0x504) | uVar42 ^ DAT_1826717e8) ^ _DAT_1826715d8;
  *(uint *)(lVar14 + -0x328) = (DAT_182671590 ^ 0x9e165ddb) + 0x25a5ae09;
  uVar27 = (ulonglong)DAT_182671598;
  uVar42 = (*(uint *)(lVar14 - ((ulonglong)DAT_182671598 ^ 0x2613838c)) ^ DAT_182671624) +
           (*puVar4 ^ uVar38) ^ DAT_1826715c4;
  uVar36 = *(ulonglong *)(lVar14 + -0xa88);
  uVar33 = DAT_182671654 ^ DAT_1826715c4 ^ uVar42;
  *puVar6 = uVar42;
  uVar10 = *(undefined8 *)(lVar14 - (uVar27 ^ 0x2613866c));
  plVar48 = (longlong *)(lVar14 - ((ulonglong)uVar40 ^ 0x3bfe2bf0));
  *puVar3 = uVar33;
  uVar42 = uVar33 ^ DAT_182671774 ^ DAT_182671654;
  *(ulonglong *)(lVar14 + -0x2a0) = uVar36 >> ((byte)uVar10 & 0x3f);
  uVar40 = DAT_18267165c ^ DAT_1826718ac;
  uVar33 = *puVar2 ^ DAT_1826718ac ^ _DAT_1826715d8;
  *puVar7 = uVar33;
  *puVar1 = uVar40 ^ uVar33;
  uVar33 = DAT_182671598;
  *(uint *)(lVar14 + -0x47c) = uVar42;
  uVar36 = (ulonglong)DAT_1826717e0;
  *plVar48 = *(longlong *)(lVar14 + -0x1d8) - (CONCAT44(uVar33,uVar45) ^ 0x1b3ab2183ebbee93);
  *(ulonglong *)(lVar14 - (uVar24 ^ 0xa0069748)) =
       (CONCAT44(uVar16,uVar45) ^ 0xaadd745e44801326) * 0x20 +
       *(longlong *)(lVar14 - (uVar39 ^ 0xc589a8aa)) + 0x13 ^ uVar36;
  *(longlong *)(lVar14 - (uVar46 ^ 0xac9e260)) =
       *(longlong *)(lVar14 + -0x898) + -0x6838a7b18234034d;
  uVar42 = DAT_18267176c;
  bVar21 = *(byte *)(*(ulonglong *)(lVar14 - (uVar25 ^ 0xaadd735e)) ^ uVar36) ^ (byte)uVar23 ^
           (byte)DAT_182671694;
  *(byte *)(lVar14 + -0xc41) = bVar21;
  uVar45 = DAT_182671678;
  *(uint *)(lVar14 + -0x344) = (uint)bVar21 ^ uVar23 & 0xff ^ DAT_182671678;
  uVar40 = *puVar1 ^ DAT_18267165c;
  *(ulonglong *)(lVar14 + -0x3f0) =
       *(ulonglong *)(lVar14 + -0xc08) ^ *(ulonglong *)(lVar14 + -0x800);
  uVar47 = DAT_1826717d8;
  *(uint *)(lVar14 - (uVar34 ^ 0xfffff6ef)) = uVar40 + (DAT_1826715b0 ^ 0x33817970) ^ uVar42;
  uVar40 = *puVar5;
  uVar49 = (uVar45 ^ *(uint *)(lVar14 + -0x344)) << 0x11 ^ DAT_1826718b4;
  *(uint *)(lVar14 + -0x27c) = uVar49;
  *(uint *)(lVar14 + -0x504) = (uVar42 ^ uVar40) - (uVar49 ^ DAT_1826718b4) ^ uVar47;
  uVar40 = DAT_182671674;
  *(longlong *)(lVar14 - (uVar28 ^ 0x7114ad0)) =
       *plVar48 - *(longlong *)(lVar14 - (uVar26 ^ 0x3a765dd5));
  uVar49 = *(uint *)(lVar14 + -0x47c) ^ DAT_182671774;
  uVar42 = (uVar47 ^ *(uint *)(lVar14 + -0x504)) * uVar49 ^ DAT_1826717dc;
  uVar47 = (uVar45 ^ *(uint *)(lVar14 + -0x344)) * (DAT_182671594 ^ 0x5ff96fa4) ^ _DAT_1826716c0;
  *(uint *)(lVar14 + -0x328) = uVar47;
  uVar47 = uVar47 ^ _DAT_1826716c0;
  *(uint *)(lVar14 + -0x874) = uVar42;
  uVar45 = DAT_1826716a8;
  uVar47 = (*(uint *)(lVar14 - ((ulonglong)uVar33 ^ 0x26138830)) ^ DAT_1826717dc) + uVar47;
  *puVar4 = uVar47 ^ uVar40;
  uVar40 = uVar47 << (bVar29 & 0x1f);
  bVar21 = (byte)DAT_18267157c;
  *puVar6 = uVar40 ^ uVar45;
  uVar45 = uVar47 >> ((bVar21 ^ 0x6f) & 0x1f) ^ DAT_18267169c;
  *puVar2 = uVar45;
  uVar40 = uVar40 | uVar45 ^ DAT_18267169c;
  *(longlong *)(lVar13 + -0x6b8) = *(ulonglong *)(lVar13 + -0x6d0) << ((byte)uVar16 & 0x3f);
  *puVar3 = uVar40 ^ uVar38;
  *puVar7 = uVar40 + (DAT_18267159c ^ 0x33eced5);
  uVar40 = DAT_1826715a4 ^ 0x3209058d;
  *puVar1 = (*(uint *)(lVar12 + -0x3c8) ^ DAT_182671624) + uVar49 ^ DAT_182671748;
  *puVar5 = uVar40 + (DAT_182671598 ^ 0x970aa9e);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar22 * 4) = uVar8 ^ uVar11;
  return;
}



############ FUN_ 180e7d810 size=5255 ############

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

void FUN_180e7d810(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  byte local_68;
  
  uVar6 = _DAT_18267161c;
  uVar5 = DAT_1826715b0;
  uVar7 = DAT_1826715a8;
  lVar2 = DAT_182671560;
  uVar19 = (ulonglong)DAT_1826715a8;
  uVar16 = (ulonglong)DAT_1826715b0;
  uVar13 = DAT_1826715b0 & DAT_1826715a8;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671b20);
  uVar12 = *(uint *)(&DAT_182611e80 + DAT_182671b20) ^ DAT_1826715a8;
  uVar25 = (ulonglong)DAT_1826715b0;
  uVar30 = (ulonglong)uVar13;
  bVar11 = (byte)uVar13;
  uVar15 = CONCAT44(DAT_182671850,DAT_182671850);
  uVar23 = (*(ulonglong *)(DAT_182671560 + -0x6d0) ^ CONCAT44(DAT_18267178c,DAT_18267178c)) >>
           ((bVar11 ^ 0xc) & 0x3f);
  uVar17 = (*(ulonglong *)(DAT_182671560 + -0x6d0) ^ CONCAT44(DAT_18267178c,DAT_18267178c)) <<
           ((bVar11 ^ 0x34) & 0x3f);
  uVar21 = (ulonglong)DAT_1826715a8;
  DAT_182671570 = uVar13;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar23 ^ CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(lVar2 + -0x600) = uVar17 ^ uVar15;
  lVar2 = DAT_182671560;
  uVar17 = uVar17 | uVar23;
  uVar23 = uVar17 ^ CONCAT44(uVar6,uVar6);
  uVar15 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar23;
  uVar18 = CONCAT44(DAT_182671778,DAT_182671778);
  uVar22 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar2 + -0x670) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0x96bf3966)) ^ uVar15) - uVar17 ^ uVar18;
  uVar26 = CONCAT44(DAT_182671760,DAT_182671760);
  uVar21 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar23 = *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x96bf39c6)) ^ uVar26 ^ uVar22 ^
           CONCAT44(uVar6,uVar6) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar23;
  puVar32 = (ulonglong *)(lVar2 - (uVar30 ^ 0x80000010));
  bVar20 = (byte)uVar7;
  *puVar32 = (uVar22 ^ uVar23) >> ((bVar20 ^ 0xf7) & 0x3f) ^ uVar21;
  uVar9 = DAT_18267170c;
  uVar17 = (uVar22 ^ *(ulonglong *)(lVar2 + -0x1d8)) << 0x27;
  *(ulonglong *)(lVar2 + -0x800) = uVar17 ^ CONCAT44(DAT_182671878,DAT_182671878);
  lVar3 = DAT_182671560;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar17 = *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x96bf3efe)) ^ uVar21 | uVar17;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar17 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xa60) = (CONCAT44(uVar13,uVar5) ^ 0x2b89dec40) << 0x1d;
  uVar9 = DAT_1826718ac;
  lVar2 = DAT_182671560;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0x80000728)) ^ uVar26) -
           (CONCAT44(uVar7,uVar5) ^ 0xeb3aedb23786ca07);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar21 ^ CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar10 = DAT_182671800;
  lVar3 = DAT_182671560;
  uVar28 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x8a8) =
       uVar21 - (*(ulonglong *)(lVar2 - (uVar25 ^ 0x81008af0)) ^ uVar23) ^ uVar28;
  uVar9 = DAT_1826717f0;
  *(ulonglong *)(lVar2 + -0x318) =
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar2 + -0x2a0)) <<
       ((*(byte *)(lVar2 + -0x240) ^ (byte)uVar6) & 0x3f);
  uVar23 = (ulonglong)DAT_1826718a8;
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar26 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  uVar21 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar2 + -0x510) = uVar17 - (CONCAT44(uVar7,uVar13) ^ 0x708a524225cf2fd8) ^ uVar22;
  uVar6 = DAT_1826718a0;
  uVar21 = uVar21 ^ uVar26 ^ uVar18 ^ *(ulonglong *)(lVar2 + -0x670) ^
           *(ulonglong *)(lVar2 + -0xc08);
  *(ulonglong *)(lVar2 + -0x80) = uVar21;
  uVar27 = CONCAT44(uVar6,uVar6);
  puVar24 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x810087d0));
  uVar17 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *puVar24 = (uVar21 >> 0x20 ^ uVar23) >> 1 ^ uVar27;
  uVar6 = DAT_182671764;
  local_68 = (byte)uVar5;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar19 ^ 0x96bf3f6e)) ^ uVar26) << ((local_68 ^ 0x1f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x898) = uVar21 ^ uVar17;
  uVar9 = DAT_182671898;
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x600) = (uVar21 | *(ulonglong *)(lVar3 + -0x6d0) ^ uVar27) ^ uVar23;
  lVar2 = DAT_182671560;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x81008788)) =
       (uVar18 ^ *(ulonglong *)(DAT_182671560 + -0x670)) -
       (CONCAT44(uVar7,uVar7) ^ 0x2bfcf58ea074204f) ^ uVar21;
  uVar29 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar2 + -0x1d8) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x688)) - (uVar23 ^ *(ulonglong *)(lVar2 + -0x600)) ^
       uVar29;
  uVar6 = DAT_1826715d0;
  *(undefined1 *)(lVar2 + -0x209) = **(undefined1 **)(lVar2 - (uVar30 ^ 0x80000d80));
  uVar21 = (CONCAT44(uVar13,uVar7) ^ 0x3bb4993532ad2107) + (uVar23 ^ *(ulonglong *)(lVar2 + -0x600))
           ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x110) = uVar21;
  *(ulonglong *)(lVar2 + -0x800) = uVar27 ^ *puVar24 ^ 0x3d81dd5a831f2fcb;
  uVar10 = DAT_18267184c;
  uVar26 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(lVar2 + -0xa60) =
       *(ulonglong *)(lVar2 - (uVar19 ^ 0x96bf3746)) ^ uVar26 ^ uVar21 ^ CONCAT44(uVar6,uVar6) ^
       uVar28;
  uVar9 = DAT_18267173c;
  uVar4 = DAT_182671598;
  lVar3 = DAT_182671560;
  uVar33 = (ulonglong)DAT_1826715ac;
  bVar31 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar5,uVar5) ^ 0x98f5c99f1c8e9cb1) >> (((byte)uVar6 ^ (byte)*puVar32) & 0x3f);
  uVar17 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0x5e6f7601)) =
       (*(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x81008b60)) ^ uVar26) >> ((bVar11 ^ 5) & 0x3f) ^
       uVar17;
  uVar23 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x800003a0)) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xa60)) << ((bVar31 ^ 0x39) & 0x3f) ^ uVar23;
  uVar9 = DAT_1826716b4;
  uVar21 = (ulonglong)DAT_182671578;
  uVar23 = *(ulonglong *)(lVar3 + -0xa88) ^ uVar17 | uVar23 ^ *(ulonglong *)(lVar3 + -0x2a0);
  *(ulonglong *)(lVar3 + -0x240) =
       (CONCAT44(uVar5,uVar5) ^ 0x90707bd123d0ce5a) >>
       (((byte)uVar10 ^ *(byte *)(lVar3 + -0xa60)) & 0x3f);
  uVar6 = DAT_1826715c0;
  uVar17 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x318) = uVar23 ^ uVar17;
  lVar2 = DAT_182671560;
  uVar26 = CONCAT44(uVar6,uVar6);
  uVar25 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x162f3420)) ^ uVar28) - uVar23 ^ uVar26;
  uVar21 = *(ulonglong *)(lVar2 - (uVar19 ^ 0x96bf3afe));
  *(int *)(lVar2 + -0x3d4) =
       *(int *)(lVar2 + -0x678) << ((byte)*(undefined4 *)(lVar2 + -0x274) & 0x1f);
  uVar6 = DAT_1826718b0;
  uVar21 = uVar21 ^ uVar25 ^ uVar29 ^ uVar22 ^ *(ulonglong *)(lVar2 + -0x1d8);
  *(ulonglong *)(lVar2 + -0xc08) = uVar21;
  uVar22 = CONCAT44(uVar6,uVar6);
  uVar28 = (uVar25 ^ uVar21) << 0x1b;
  uVar23 = (uVar25 ^ uVar21) >> ((bVar20 ^ 0xcb) & 0x3f);
  uVar21 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar2 + -0x80) = uVar23 ^ uVar22;
  uVar6 = DAT_1826716e8;
  *(ulonglong *)(lVar2 + -0x898) = uVar28 ^ uVar21;
  uVar25 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x81008770)) = (uVar28 | uVar23) ^ uVar25;
  uVar6 = DAT_1826716bc;
  *(ulonglong *)(lVar2 + -0x688) = uVar22 ^ *(ulonglong *)(lVar2 + -0x80) | 0x56101233289b8107;
  uVar22 = CONCAT44(uVar6,uVar6);
  uVar21 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x81008700)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x1d8)) - (uVar25 ^ *(ulonglong *)(lVar2 + -0x670)) ^
       uVar22;
  uVar4 = DAT_182671778;
  uVar29 = (ulonglong)DAT_182671580;
  uVar25 = *(ulonglong *)(lVar2 - (uVar21 ^ 0x81008af0)) ^ uVar25 ^ uVar26 ^ uVar18 ^
           *(ulonglong *)(lVar2 + -0x670);
  uVar28 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar21 = (ulonglong)DAT_182671778;
  uVar23 = (uVar18 ^ uVar25) << (((byte)DAT_182671580 ^ 6) & 0x3f);
  *(ulonglong *)(lVar2 + -0x800) = uVar25;
  uVar18 = ((ulonglong)(uVar4 >> 0x17) | uVar21 << 9) ^ uVar25 >> 0x17;
  uVar21 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar18 ^ uVar28;
  uVar6 = DAT_1826717fc;
  *(ulonglong *)(lVar2 + -0x628) = uVar23 ^ uVar21;
  uVar9 = DAT_182671814;
  uVar25 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x110) = (uVar18 | uVar23) ^ uVar25;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar18 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar2 + -0x240) = *(ulonglong *)(uVar23 ^ *(ulonglong *)(lVar2 + -0xa38)) ^ uVar18;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x80000b60)) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x746f6b7b)) ^ uVar26) -
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0x3c88173f)) ^ uVar25) ^ uVar27;
  lVar3 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar28 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(lVar2 + -0xa88) =
       *(ulonglong *)(lVar2 - (uVar16 ^ 0x81008218)) ^ uVar21 ^ uVar22 ^ uVar17 ^
       *(ulonglong *)(lVar2 + -0x600);
  uVar4 = DAT_182671578;
  *(ulonglong *)(lVar3 + -0x2a0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671578 ^ 0x162f3600)) ^ uVar21) >>
       ((bVar20 ^ 0xc6) & 0x3f) ^ uVar28;
  uVar6 = DAT_18267159c;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x810089a8)) =
       *(ulonglong *)(lVar3 + -0x240) >> ((byte)*(undefined8 *)(lVar3 + -0x688) & 0x3f);
  lVar2 = DAT_182671560;
  puVar24 = (ulonglong *)(DAT_182671560 + -0xa38);
  uVar16 = (*(ulonglong *)(DAT_182671560 + -0xa88) ^ uVar21) << ((bVar20 ^ 0xf6) & 0x3f);
  uVar21 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar16 ^ CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar26 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar2 + -0xc08) = *(ulonglong *)(uVar23 ^ *puVar24) ^ uVar18;
  uVar23 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x1c022298)) =
       (uVar16 | uVar28 ^ *(ulonglong *)(lVar2 + -0x2a0)) ^ uVar23;
  uVar33 = CONCAT44(DAT_182671758,DAT_182671758);
  bVar11 = (byte)DAT_1826715a0;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x80000180)) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0x600)) -
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0xe46dda0e)) ^ uVar23) ^ uVar33;
  uVar17 = (ulonglong)DAT_182671568;
  uVar18 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar16 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar21 = uVar18 ^ uVar23 ^ uVar27 ^ *(ulonglong *)(lVar2 + -0xa60) ^
           *(ulonglong *)(lVar2 + -0x898);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar21;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xe46dd4e6)) =
       (uVar21 ^ uVar18) >> ((bVar11 ^ 0x97) & 0x3f) ^ uVar16;
  uVar9 = DAT_182671730;
  uVar21 = (uVar18 ^ *(ulonglong *)(lVar2 + -0x1d8)) << ((bVar31 ^ 0xe) & 0x3f);
  uVar18 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar2 + -0x800) = uVar21 ^ uVar18;
  uVar10 = DAT_182671884;
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar21 = uVar21 | uVar16 ^ *(ulonglong *)(lVar2 + -0x670);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar21 ^ uVar29;
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x2328413)) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0xa60)) - uVar21 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar29 ^ *(ulonglong *)(lVar3 + -0x6d0) ^ 0xd154323f212e1e19;
  uVar8 = DAT_1826715b4;
  uVar14 = DAT_182671594;
  uVar5 = DAT_182671590;
  uVar26 = (ulonglong)DAT_182671584;
  uVar21 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar3 + -0x318) =
       uVar18 ^ uVar33 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x80) ^ *(ulonglong *)(lVar3 + -0x110);
  uVar9 = DAT_182671624;
  *(ulonglong *)(lVar3 + -0x688) =
       (CONCAT44(uVar8,DAT_1826715a4) ^ 0xae06953583ffdd2d) >> (((byte)uVar14 ^ 0x98) & 0x3f);
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x96bf3dae)) =
       (uVar18 ^ *(ulonglong *)(lVar3 + -0x318)) >> (((byte)uVar6 ^ 0x9a) & 0x3f) ^ uVar22;
  lVar2 = DAT_182671560;
  uVar16 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       (uVar18 ^ *(ulonglong *)(DAT_182671560 + -0x318)) << ((local_68 ^ 7) & 0x3f) ^ uVar16;
  uVar6 = _DAT_1826715d8;
  *(ulonglong *)(lVar2 + -0xa88) =
       (CONCAT44(DAT_182671598,DAT_18267158c) ^ 0x48eb1fd07af64cbd) << (((byte)uVar4 ^ 0xa8) & 0x3f)
  ;
  uVar18 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x823b0e3a)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x823b0a9a)) ^ uVar16 |
       uVar22 ^ *(ulonglong *)(lVar2 + -0x240)) ^ uVar18;
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x80)) -
       (*(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x39ef2657)) ^ uVar18) ^ uVar27;
  uVar22 = CONCAT44(DAT_182671640,DAT_182671640);
  uVar16 = *(ulonglong *)(lVar2 - (uVar21 ^ 0x1d2226ab)) ^ uVar22 ^ uVar18 ^ uVar23 ^
           *(ulonglong *)(lVar2 + -0x628);
  uVar18 = CONCAT44(DAT_18267175c,DAT_18267175c);
  bVar11 = (byte)DAT_182671574;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar16;
  uVar6 = DAT_182671680;
  *(ulonglong *)(lVar2 + -0x600) = (uVar16 ^ uVar22) >> ((bVar11 ^ 0x3c) & 0x3f) ^ uVar18;
  uVar21 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 + -0x898) = (uVar22 ^ uVar16) << ((local_68 ^ 0x32) & 0x3f) ^ uVar33;
  uVar4 = DAT_1826715b4;
  uVar26 = CONCAT44(uVar6,uVar6);
  uVar16 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0xfdeffb07)) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0x2328aa3)) ^ uVar33 |
       *(ulonglong *)(lVar2 - (uVar21 ^ 0x81008700)) ^ uVar18) ^ uVar26;
  uVar21 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar17 = CONCAT44(uVar8,uVar5);
  uVar14 = DAT_182671590 * uVar4;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x80000900)) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0x628)) - (CONCAT44(uVar7,uVar4) ^ 0xbf2c6a46dbc15c27) ^
       uVar21;
  uVar18 = (ulonglong)uVar14;
  uVar33 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar19 = (uVar21 ^ *(ulonglong *)(lVar2 + -0x800)) -
           (*(ulonglong *)(lVar2 - (uVar16 ^ 0x1c022bd8)) ^ uVar26);
  uVar30 = CONCAT44(DAT_182671674,DAT_182671674);
  DAT_18267158c = uVar14;
  *(ulonglong *)(lVar2 + -0x670) = uVar19 ^ uVar33;
  uVar9 = DAT_182671740;
  *(ulonglong *)(lVar2 + -0xa60) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0x1d8)) - (uVar17 ^ 0xb809a76d646c20d0) ^ uVar30;
  uVar6 = DAT_18267162c;
  lVar3 = DAT_182671560;
  uVar21 = *(ulonglong *)(lVar2 + -0x510);
  uVar25 = CONCAT44(uVar9,uVar9);
  uVar16 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0x2ac032d0)) ^ uVar25 ^ uVar27 ^
           uVar29 ^ uVar21;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar16;
  uVar4 = DAT_1826715b4;
  uVar22 = CONCAT44(uVar6,uVar6);
  bVar11 = (byte)uVar14;
  uVar23 = (uVar16 ^ uVar25) >> ((bVar11 ^ 0x10) & 0x3f);
  uVar16 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 + -0x110) = uVar23 ^ uVar15;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0x1c0221f0)) ^ uVar25) << ((bVar11 ^ 0x30) & 0x3f) ^ uVar22
  ;
  uVar15 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar23 = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x1c022c88)) ^ uVar22 | uVar23;
  uVar16 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar2 + -0x318) = uVar23 ^ uVar15;
  uVar6 = DAT_18267172c;
  uVar21 = (uVar27 ^ uVar21) - (CONCAT44(uVar14,uVar14) ^ 0xccf559ac8f0f1ad8);
  *(ulonglong *)(lVar2 + -0xa88) = uVar21 ^ uVar16;
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x240) = uVar21 - uVar23 ^ uVar22;
  uVar6 = DAT_182671780;
  *(ulonglong *)(lVar2 + -0x8a8) =
       *(ulonglong *)(lVar2 - (uVar18 ^ 0x2ac03270)) ^ uVar33 | uVar17 ^ 0xde69f95c3db308d7;
  uVar5 = DAT_1826715b4;
  uVar16 = CONCAT44(uVar6,uVar6);
  uVar21 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0x1c022918)) ^ uVar15) +
           (CONCAT44(uVar14,DAT_182671590) ^ 0xf5c24232f90f8dfe) ^ uVar16;
  *(ulonglong *)(lVar2 + -0x80) = uVar21;
  uVar6 = DAT_182671854;
  uVar15 = CONCAT44(DAT_182671858,DAT_182671858);
  uVar16 = uVar19 ^ uVar15 ^ uVar21 ^ uVar16;
  *(ulonglong *)(lVar2 + -0xc08) = uVar16;
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x2ac036a0)) =
       (uVar16 ^ uVar15) >> (((byte)uVar5 ^ 0x20) & 0x3f) ^ uVar23;
  uVar6 = DAT_182671638;
  uVar21 = (uVar15 ^ *(ulonglong *)(lVar2 + -0xc08)) << ((bVar11 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar2 + -0x600) = uVar21 ^ CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar21 = *(ulonglong *)(lVar2 + -0x2a0) ^ uVar23 | uVar21;
  *(ulonglong *)(lVar2 + -0x898) = uVar21 ^ CONCAT44(uVar6,uVar6);
  uVar9 = DAT_18267180c;
  *(ulonglong *)(lVar2 + -0x628) = (uVar33 ^ *(ulonglong *)(lVar2 + -0x670)) - uVar21 ^ uVar28;
  uVar6 = DAT_1826715b8;
  uVar14 = DAT_1826715b4;
  bVar31 = (byte)DAT_1826715b4;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar23 = (ulonglong)DAT_1826715b4;
  uVar21 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0x1c022840)) ^ uVar30 ^ uVar16 ^
           uVar22 ^ *(ulonglong *)(lVar2 + -0xa60);
  *(ulonglong *)(lVar2 + -0x800) = uVar21;
  uVar4 = DAT_182671590;
  uVar19 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x1d8) = (uVar21 ^ uVar16) >> ((bVar31 ^ 0x20) & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x1c022cd0)) = (uVar17 ^ 0x9ddfd71d3d509a96) + 0x863a449ad468971b
  ;
  uVar21 = (uVar16 ^ *(ulonglong *)(lVar2 + -0x800)) << ((bVar11 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar21 ^ CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(uint *)(lVar2 + -0x874) = -0x4ff33e77 - (uVar14 ^ 0xbe4dbf4a);
  *(ulonglong *)(lVar2 + -0x110) = (uVar21 | *(ulonglong *)(lVar2 + -0x1d8) ^ uVar19) ^ uVar26;
  uVar9 = DAT_1826716e0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x823b04ba)) =
       (uVar15 ^ *(ulonglong *)(lVar2 + -0xc08)) << ((bVar11 ^ 0x2c) & 0x3f);
  uVar6 = DAT_1826715f8;
  uVar21 = uVar26 ^ *(ulonglong *)(lVar2 + -0x628) ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0x510) =
       (*(ulonglong *)(lVar2 + -0x240) ^ uVar22) - (uVar26 ^ *(ulonglong *)(lVar2 + -0x110)) ^
       CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xa88) = uVar21 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x8a8) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x2ac035d8)) ^ uVar19) >> (((byte)uVar4 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) =
       uVar21 >> (((byte)uVar5 ^ 0x3a) & 0x3f) ^ CONCAT44(_DAT_182671618,_DAT_182671618);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar1 ^ uVar13;
  *(uint *)(lVar2 + -0x774) = (uVar4 ^ 0x4fe6ffe6) * (uVar4 ^ 0xefa87056);
  return;
}



############ FUN_ 180f319f0 size=3238 ############

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

void FUN_180f319f0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  byte *pbVar23;
  byte *pbVar24;
  ulonglong *puVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  int iVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  byte local_b0;
  
  bVar17 = (byte)DAT_1826715ec;
  uVar13 = DAT_1826715b0;
  uVar11 = DAT_1826715a4;
  uVar8 = DAT_182671594;
  iVar6 = DAT_18267157c;
  uVar5 = DAT_182671574;
  uVar4 = DAT_182671570;
  uVar40 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671568;
  uVar38 = (ulonglong)DAT_182671570;
  uVar26 = DAT_182671568 * DAT_182671588;
  uVar1 = DAT_182671574 + DAT_182671594;
  uVar31 = *(uint *)(&DAT_182611e78 + DAT_182671a50) ^ DAT_182671574;
  iVar34 = DAT_182671570 + DAT_18267157c;
  uVar27 = DAT_18267159c | DAT_1826715a4;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671a50) ^ DAT_182671594;
  uVar39 = ~DAT_1826715b0;
  pbVar23 = (byte *)(*(ulonglong *)(DAT_182671560 + -0x730) ^ (ulonglong)DAT_182671660);
  uVar32 = (ulonglong)DAT_1826715ac;
  DAT_18267156c = uVar27;
  DAT_182671580 = uVar39;
  DAT_182671584 = iVar34;
  DAT_182671598 = uVar26;
  DAT_1826715b4 = uVar1;
  *(byte **)(DAT_182671560 + -0xbc8) =
       pbVar23 + (CONCAT44(uVar1,DAT_18267157c) ^ 0xaabdaabcc77202cd);
  bVar16 = *pbVar23;
  *(undefined1 *)(lVar2 + -0xd82) = 0x87;
  *(byte *)(lVar2 + -0xc81) = bVar16 ^ bVar17 ^ (byte)DAT_182671718;
  uVar12 = DAT_1826715a8;
  uVar19 = (ulonglong)DAT_1826715a8;
  uVar22 = DAT_1826715ac * DAT_1826715a8;
  uVar20 = (ulonglong)uVar22;
  DAT_18267158c = uVar22;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar19 ^ 0xb389d094)) ^ (ulonglong)DAT_18267189c) =
       (byte)uVar22 ^ 0x33;
  *(ulonglong *)(DAT_182671560 + -0x400) =
       CONCAT44(uVar4,uVar22) ^ CONCAT44(DAT_1826715ac,uVar12) ^ 0x3272cd4bf88c3976;
  lVar2 = DAT_182671560;
  pbVar24 = (byte *)(*(ulonglong *)(DAT_182671560 + -0x788) ^ (ulonglong)DAT_182671788);
  pbVar23 = (byte *)(DAT_182671560 + -0xc81);
  *(byte **)(DAT_182671560 + -0xd18) =
       pbVar24 + (CONCAT44(DAT_1826715ac,uVar39) ^ 0xfcb7bf8e76a14868);
  *pbVar24 = bVar17 ^ *pbVar23;
  *(undefined1 *)(lVar2 + -0xc81) = 0x4d;
  *(ulonglong *)(lVar2 + -0x800) =
       CONCAT44(iVar34,uVar8) ^ 0x8cbd397be0cc1ab3 | *(ulonglong *)(lVar2 + -0xa80);
  *(undefined8 *)(lVar2 + -0xd80) = *(undefined8 *)(lVar2 + -0xd18);
  uVar21 = (ulonglong)uVar13;
  uVar37 = (ulonglong)DAT_1826717b0;
  uVar29 = (ulonglong)DAT_182671734;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar40 ^ 0x4067ec8)) =
       *(undefined8 *)(lVar2 - (uVar21 ^ 0x895ebc5e));
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xb389d90c)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0xb77bd840)) ^ uVar37;
  uVar14 = DAT_1826715c0;
  *(ulonglong *)(lVar2 + -0x628) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x9805ab28)) ^ *(ulonglong *)(lVar2 + -0x5c8);
  uVar15 = DAT_1826716f0;
  pbVar23 = *(byte **)(lVar2 - (uVar32 ^ 0xfcb7b566));
  *(ulonglong *)(lVar2 + -0xc30) = (ulonglong)pbVar23 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x6d0) =
       *(ulonglong *)(CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar2 + -0x830)) ^
       CONCAT44(uVar14,uVar14);
  *(byte **)(lVar2 + -0x750) = pbVar23 + 1;
  *(byte *)(lVar2 + -0x581) = *pbVar23 ^ (byte)DAT_1826718cc ^ (byte)DAT_182671718;
  *(byte *)(lVar2 + -0x642) = (byte)DAT_182671588 ^ 0x14;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb68) ^ (ulonglong)DAT_18267177c) = (byte)uVar40 ^ 0xaa;
  uVar9 = DAT_18267159c;
  uVar33 = (ulonglong)DAT_182671728;
  uVar36 = (ulonglong)DAT_18267170c;
  local_b0 = (byte)uVar1;
  uVar28 = (ulonglong)DAT_18267159c;
  puVar25 = (ulonglong *)(DAT_182671560 + -0x408);
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       (CONCAT44(iVar6,uVar11) ^ 0x1763546bbcf5b0e1) >> ((local_b0 ^ 0x8d) & 0x3f);
  lVar2 = DAT_182671560;
  pbVar23 = (byte *)(*puVar25 ^ uVar37);
  *(byte **)(DAT_182671560 + -0x390) = pbVar23 + (CONCAT44(uVar9,uVar26) ^ 0xbebfcac9b77bd5c1);
  *(longlong *)(lVar2 + -0xa88) = -0x3583c0c6ca5b4dbb - *(longlong *)(lVar2 + -0x510);
  *pbVar23 = *(byte *)(lVar2 + -0x581) ^ (byte)DAT_1826718cc;
  uVar29 = *(ulonglong *)(lVar2 + -0x750);
  *(ulonglong *)(lVar2 + -0xa98) = uVar36 ^ *(ulonglong *)(lVar2 + -0x390);
  *(ulonglong *)(lVar2 + -0xaa0) = *(ulonglong *)(lVar2 + -0x390);
  *(ulonglong *)(lVar2 + -0x170) = uVar33 ^ uVar29;
  *(byte *)(lVar2 + -0x581) = (byte)uVar39 ^ 0xea;
  *(ulonglong *)(lVar2 + -0x478) = uVar29;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x895ebc36)) = uVar29 + 1;
  *(byte *)(lVar2 + -0x412) =
       *(byte *)(uVar33 ^ *(ulonglong *)(lVar2 + -0x170)) ^ (byte)DAT_182671798 ^
       (byte)DAT_182671718;
  *(undefined1 *)(lVar2 + -0x3f2) = 0x1e;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0xb389ded4)) ^ (ulonglong)DAT_182671880) =
       (byte)uVar4 ^ 0xf;
  *(ulonglong *)(lVar2 + -0x1d8) =
       CONCAT44(uVar22,uVar9) ^ CONCAT44(uVar5,uVar39) ^ 0x9f2733943bf82c82;
  uVar10 = DAT_1826715a0;
  uVar4 = DAT_182671578;
  lVar3 = DAT_182671560;
  pbVar23 = (byte *)(*(ulonglong *)(lVar2 + -0xa98) ^ uVar36);
  uVar33 = (ulonglong)DAT_1826715a0;
  uVar19 = (ulonglong)DAT_1826717f8;
  uVar37 = (ulonglong)DAT_182671578;
  *(byte **)(lVar2 + -0x60) = pbVar23 + 1;
  uVar35 = uVar4 + uVar10;
  DAT_182671590 = uVar35;
  *pbVar23 = *(byte *)(lVar2 - (uVar32 ^ 0xfcb7bb9c)) ^ (byte)DAT_182671798;
  *(undefined8 *)(lVar2 + -0x2c8) = *(undefined8 *)(lVar2 + -0xba0);
  *(ulonglong *)(lVar2 + -0x198) = *(ulonglong *)(lVar2 + -0x60);
  *(undefined1 *)(lVar2 + -0x412) = 0xc;
  uVar36 = (ulonglong)_DAT_1826715f0;
  *(ulonglong *)(lVar3 + -0x7c0) = uVar36 ^ *(ulonglong *)(lVar2 + -0x60);
  uVar29 = *(ulonglong *)(lVar3 - (uVar38 ^ 0x9805ab40));
  *(ulonglong *)(lVar3 + -0x868) = uVar29 ^ uVar19;
  uVar7 = DAT_182671594;
  *(ulonglong *)(lVar3 + -0xa20) = (CONCAT44(uVar4,uVar10) ^ 0x2e783e7e7e3e782f) + uVar29;
  lVar2 = DAT_182671560;
  uVar29 = *(ulonglong *)(DAT_182671560 + -0xd40);
  *(byte *)(DAT_182671560 + -0xc42) =
       *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar35 ^ 0xacb6bec4)) ^ uVar19) ^
       (byte)DAT_182671644 ^ (byte)DAT_182671718;
  uVar19 = (ulonglong)DAT_1826716ec;
  *(byte *)(lVar2 + -0x2a1) = (byte)uVar10 ^ 0xf6;
  *(byte *)(uVar29 ^ uVar19) = (byte)uVar35 ^ 0x85;
  bVar16 = *(byte *)(lVar2 + -0xc42) ^ (byte)DAT_182671644;
  *(ulonglong *)(lVar2 + -0xd48) = (*(ulonglong *)(lVar2 - (uVar33 ^ 0x7e3e7fee)) ^ uVar36) + 1;
  *(byte *)(uVar36 ^ *(ulonglong *)(lVar2 + -0x7c0)) = bVar16;
  lVar3 = DAT_182671560;
  uVar19 = (ulonglong)DAT_1826716ac;
  uVar36 = (ulonglong)DAT_1826717d8;
  *(byte *)(lVar2 - (uVar37 ^ 0x2e78323c)) = (byte)uVar7 ^ 0x84;
  *(undefined8 *)(lVar2 + -0xc38) = *(undefined8 *)(lVar2 + -0xd48);
  *(ulonglong *)(lVar2 + -0xd48) = CONCAT44(iVar34,uVar35) ^ 0xcfd9dd6340ae165e;
  *(undefined8 *)(lVar2 + -0xcf8) = *(undefined8 *)(lVar2 + -0xa20);
  *(undefined8 *)(lVar2 - (uVar33 ^ 0x7e3e720e)) = 0xfe3ea6f7eb0ed248;
  *(ulonglong *)(lVar2 + -0x50) = *(ulonglong *)(lVar2 + -0xc38) ^ uVar36;
  uVar7 = DAT_182671588;
  uVar29 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar2 + -0xc38) = CONCAT44(uVar12,uVar11) ^ 0x2b6e7d96551de2ce;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x603a9dc0)) =
       CONCAT44(uVar7,uVar27) ^ CONCAT44(iVar6,iVar34) ^ 0xf3f33d8c53bc2c14;
  *(ulonglong *)(lVar2 + -0x428) = uVar19 ^ *(ulonglong *)(lVar2 + -0xcf8);
  *(undefined8 *)(lVar2 + -0xcf8) = 0xc2ec055730ab8616;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0xaabdac84)) =
       (CONCAT44(uVar22,uVar7) ^ 0xeb09947681b16340) + 0xc6d0130e7d4fe678;
  bVar16 = (byte)DAT_1826716e0;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xbebfcdc9)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar39 ^ 0x76a14c41)) ^ uVar19) + 1;
  *(byte *)(lVar3 - (uVar30 ^ 0x4067281)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x428) ^ uVar19) ^ bVar16 ^ (byte)DAT_182671718;
  bVar17 = (byte)DAT_18267159c;
  *(byte *)(lVar3 - ((ulonglong)uVar26 ^ 0xb77bd0b1)) = (byte)DAT_18267157c ^ 0x87;
  *(byte *)((ulonglong)DAT_1826716a4 ^ *(ulonglong *)(lVar3 + -0x8a0)) = bVar17 ^ 0x8e;
  *(ulonglong *)(lVar3 + -0x8a0) = CONCAT44(uVar5,uVar40) ^ 0xe31901b679d19170;
  *(ulonglong *)(lVar3 + -0x428) = CONCAT44(uVar8,uVar13) ^ 0xfa1c93338f7022bb;
  bVar17 = (byte)DAT_18267157c;
  *(ulonglong *)(lVar3 + -0xb38) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0xb77bd590)) ^ uVar36) +
       (CONCAT44(DAT_1826715ac,uVar27) ^ 0xfcb7bf8effbffef8);
  *(byte *)(uVar36 ^ *(ulonglong *)(lVar3 + -0x50)) = bVar16 ^ *(byte *)(lVar3 + -0x6a1);
  *(byte *)(lVar3 + -0x6a1) = bVar17 ^ 0x97;
  *(undefined8 *)(lVar3 + -0xc0) = *(undefined8 *)(lVar3 + -0xb38);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar1 ^ 0xaabda184)) =
       CONCAT44(iVar34,uVar22) ^ 0xb923ec2ee0ea5b4f;
  *(longlong *)(lVar3 - (uVar20 ^ 0x603a9c90)) = *(longlong *)(lVar3 + -0x600) + -0x6529926e36b201cb
  ;
  *(undefined8 *)(lVar3 + -0xb48) = *(undefined8 *)(lVar3 + -0x700);
  lVar2 = DAT_182671560;
  uVar19 = (ulonglong)DAT_1826716c8;
  *(ulonglong *)(DAT_182671560 + -0x700) = CONCAT44(uVar4,uVar22) ^ 0xb1c9a20e0a5ff7ea;
  *(ulonglong *)(lVar2 + -0x88) = *(ulonglong *)(lVar2 - (uVar38 ^ 0x9805a948)) ^ uVar19;
  *(ulonglong *)(lVar2 + -0xc0) = CONCAT44(DAT_1826715ac,uVar9) ^ 0x7e085923a85038da;
  lVar2 = DAT_182671560;
  pbVar23 = *(byte **)(DAT_182671560 - (uVar32 ^ 0xfcb7b4c6));
  *(ulonglong *)(DAT_182671560 + -0x180) = (ulonglong)pbVar23 ^ (ulonglong)DAT_1826715d4;
  bVar17 = (byte)DAT_182671860;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0xb48) = CONCAT44(iVar6,uVar12) ^ 0x189e65d4aa49ddc2;
  bVar16 = *pbVar23;
  *(undefined1 *)(lVar2 + -0x9ca) = 4;
  *(byte *)(lVar2 + -0x9c9) = bVar16 ^ bVar17 ^ (byte)DAT_182671718;
  puVar25 = (ulonglong *)(lVar3 - (uVar20 ^ 0x603a98e0));
  uVar40 = uVar4 ^ uVar22;
  DAT_1826715ac = uVar40;
  *(byte *)((ulonglong)DAT_182671890 ^ *puVar25) = (byte)uVar40 ^ 0xe3;
  *puVar25 = CONCAT44(uVar4,uVar22) ^ 0x83f64c7909ecc54;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0x603a95b8)) =
       CONCAT44(uVar4,uVar40) ^ 0xeb8a26ef75cee4e1;
  *(byte *)(uVar19 ^ *(ulonglong *)(lVar2 + -0x88)) = bVar17 ^ *(byte *)(lVar2 + -0x9c9);
  *(byte *)(lVar2 + -0x9c9) = (byte)uVar22 ^ 0x9f;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x2e78365e)) =
       CONCAT44(uVar4,uVar4) ^ 0x8af617dd6a8402e3;
  *(undefined8 *)(lVar2 + -0x918) = 0xc9f86340ea4da94d;
  *(undefined8 *)(lVar2 + -0x1b0) = 0xf6c86577b801d932;
  *(ulonglong *)(lVar2 + -0x8d0) = CONCAT44(uVar40,uVar22) ^ 0x2803e0d1efb1d1dc;
  *(ulonglong *)(lVar2 + -0x818) = CONCAT44(uVar40,uVar10) ^ 0x9b6f41f6f6149a74;
  *(ulonglong *)(lVar2 + -0xce0) = CONCAT44(uVar8,uVar26) ^ 0xa8427f8bf5ecb476;
  *(ulonglong *)(lVar2 + -0x990) = CONCAT44(uVar40,uVar35) ^ 0x1ebf3e83809bdd12;
  *(ulonglong *)(lVar2 + -0x810) = CONCAT44(uVar10,uVar22) ^ 0xe3b139d2eb92fb0a;
  *(undefined8 *)(lVar2 - (uVar29 ^ 0x57cf7da6)) = 0x3c48474a2285126;
  *(ulonglong *)(lVar2 + -0xcb8) = CONCAT44(uVar39,uVar1) ^ 0xd6df063576e18d3a;
  *(undefined8 *)(lVar2 + -0x158) = 0xd40909cc557887a9;
  *(undefined8 *)(lVar2 - (uVar21 ^ 0x895ebd46)) = 0x9d5e0b48b9fbc0d5;
  *(ulonglong *)(lVar2 + -0x5d8) = CONCAT44(uVar12,uVar8) ^ 0x971160ac67f938bc;
  *(undefined8 *)(lVar2 + -0x728) = 0x6e53bd28b16d5de4;
  *(ulonglong *)(lVar2 + -0x528) = CONCAT44(uVar4,uVar13) ^ 0xc11bbea9154790ac;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar31;
  return;
}



############ FUN_ 180e5cc80 size=5525 ############

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

void FUN_180e5cc80(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint *puVar4;
  uint uVar5;
  int iVar6;
  byte bVar7;
  byte bVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  byte bVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar50;
  byte bVar51;
  uint uVar52;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar57;
  byte local_108;
  byte local_100;
  byte local_d8;
  ulonglong uVar49;
  ulonglong uVar53;
  ulonglong uVar56;
  
  uVar17 = DAT_1826716a0;
  uVar16 = DAT_1826715b4;
  uVar15 = DAT_1826715b0;
  uVar34 = DAT_1826715ac;
  uVar12 = DAT_18267156c;
  lVar9 = DAT_182671560;
  uVar28 = (ulonglong)DAT_18267156c;
  uVar45 = (ulonglong)DAT_1826715ac;
  uVar37 = (ulonglong)DAT_1826715b0;
  uVar5 = DAT_1826715b4 + DAT_182671590;
  uVar46 = (ulonglong)uVar5;
  uVar52 = DAT_18267156c - DAT_1826715b0;
  uVar53 = (ulonglong)uVar52;
  uVar38 = *(uint *)(&DAT_182611e78 + DAT_182671ac0) ^ DAT_182671590;
  uVar55 = ~DAT_1826715ac;
  uVar56 = (ulonglong)uVar55;
  uVar20 = *(uint *)(&DAT_182611e70 + (uVar46 ^ 0x1d856074) + (longlong)DAT_182671ac0) ^
           DAT_1826715b4;
  uVar31 = CONCAT44(DAT_182671728,DAT_182671728);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x1f0);
  uVar22 = CONCAT44(DAT_182671870,DAT_182671870);
  uVar42 = CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar35 = (ulonglong)DAT_1826715b0;
  uVar39 = (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x898) |
           uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x80)) ^ uVar42;
  DAT_18267157c = uVar5;
  DAT_182671594 = uVar55;
  DAT_1826715a0 = uVar52;
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar39;
  uVar48 = CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar9 + -0xc08);
  uVar24 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *puVar1 = uVar48 - (*(ulonglong *)(lVar9 - (uVar35 ^ 0xaac63bc1)) ^ uVar42) ^ uVar24;
  uVar13 = DAT_1826718d0;
  uVar26 = (ulonglong)DAT_1826718d0;
  *(int *)(lVar9 + -0x3d4) = *(int *)(lVar9 + -0x678) << (((byte)uVar52 ^ 0xac) & 0x1f);
  uVar25 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar43 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(lVar9 + -0x9e8) =
       *(ulonglong *)(lVar9 - ((ulonglong)uVar34 ^ 0x7bfffd4c)) ^ uVar25 ^ CONCAT44(uVar13,uVar13) ^
       uVar39 ^ uVar42;
  uVar17 = DAT_1826716cc;
  uVar14 = DAT_1826715a8;
  uVar11 = DAT_182671568;
  uVar35 = *(ulonglong *)(lVar9 - ((ulonglong)uVar12 ^ 0x2800b62));
  uVar29 = (ulonglong)DAT_182671568;
  uVar39 = (ulonglong)DAT_1826715a8;
  uVar47 = DAT_182671568 ^ DAT_1826715a8;
  uVar49 = (ulonglong)uVar47;
  uVar42 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar9 + -0xa0) = (uVar31 ^ *(ulonglong *)(lVar9 + -0x898)) << ((byte)uVar48 & 0x3f)
  ;
  uVar31 = (uVar35 >> 0x20 ^ uVar26) >> 0x14;
  *(ulonglong *)(lVar9 + -0x1d8) = uVar31 ^ uVar43;
  uVar18 = DAT_182671820;
  lVar10 = DAT_182671560;
  uVar35 = (*(ulonglong *)(lVar9 - (uVar42 ^ 0xf7eae601)) ^ CONCAT44(uVar13,uVar13)) << 0xc;
  DAT_18267158c = uVar47;
  *(ulonglong *)(lVar9 + -0x628) = uVar35 ^ CONCAT44(uVar17,uVar17);
  uVar54 = CONCAT44(uVar18,uVar18);
  puVar2 = (ulonglong *)(lVar10 + -0x5c8);
  *(ulonglong *)(lVar10 - ((ulonglong)uVar11 ^ 0xd6021f64)) = (uVar35 | uVar31) ^ uVar54;
  uVar48 = CONCAT44(DAT_182671880,DAT_182671880);
  puVar3 = (ulonglong *)(lVar10 + -0x638);
  uVar32 = (uVar25 ^ *(ulonglong *)(lVar10 + -0x2a0)) - (uVar54 ^ *puVar2) ^ uVar48;
  *puVar3 = uVar32;
  uVar31 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar10 + -0x548) =
       (CONCAT44(uVar47,uVar5) ^ 0xb180413863b491db) <<
       ((*(byte *)(lVar10 + -0x9e8) ^ (byte)uVar13) & 0x3f);
  uVar18 = DAT_1826718d4;
  lVar9 = DAT_182671560;
  uVar42 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar35 = *puVar1;
  uVar40 = uVar35 ^ uVar42 ^ uVar31 ^ uVar24 ^ *(ulonglong *)(lVar10 + -0x510);
  local_d8 = (byte)uVar11;
  *(ulonglong *)(lVar10 + -0x688) = uVar40;
  uVar17 = DAT_182671754;
  uVar26 = (uVar40 ^ uVar31) >> ((local_d8 ^ 0x95) & 0x3f);
  uVar43 = CONCAT44(uVar18,uVar18);
  uVar31 = (uVar40 ^ uVar31) << 7;
  *(ulonglong *)(lVar9 + -0x400) = uVar26 ^ uVar43;
  uVar18 = DAT_18267182c;
  *(ulonglong *)(lVar9 + -0x80) = uVar31 ^ CONCAT44(uVar17,uVar17);
  uVar36 = CONCAT44(uVar18,uVar18);
  uVar31 = uVar31 | uVar26;
  uVar40 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(lVar9 + -0x610) = uVar31 ^ uVar36;
  uVar17 = DAT_18267178c;
  *(ulonglong *)(lVar9 + -0xc08) = (uVar35 ^ uVar24) - uVar31 ^ uVar40;
  lVar10 = DAT_182671560;
  uVar41 = CONCAT44(uVar17,uVar17);
  uVar31 = (ulonglong)uVar16;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar55 ^ 0x8400088b)) =
       *(ulonglong *)(lVar9 - (uVar49 ^ 0x21e8f355)) ^ uVar41 ^ uVar36 ^ uVar32 ^ uVar48;
  uVar17 = _DAT_1826715f0;
  uVar13 = DAT_182671590;
  uVar50 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  bVar21 = (byte)uVar16;
  uVar44 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar26 = (uVar41 ^ *(ulonglong *)(lVar10 + -0x898)) >> ((bVar21 ^ 0x8e) & 0x3f);
  uVar35 = (ulonglong)DAT_182671590;
  uVar32 = (uVar41 ^ *(ulonglong *)(lVar10 + -0x898)) << 0x32;
  *(ulonglong *)(lVar10 + -0xa0) = uVar26 ^ uVar50;
  *(ulonglong *)(lVar10 + -0x1d8) = uVar32 ^ uVar43;
  uVar36 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar10 + -0x628) = (uVar26 | uVar32) ^ uVar44;
  lVar9 = DAT_182671560;
  uVar26 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(DAT_182671560 - (uVar56 ^ 0x840002b3)) =
       (*(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x1afb5bdc)) ^ uVar48) -
       (*(ulonglong *)(DAT_182671560 + -0x240) ^ uVar36) ^ uVar26;
  uVar17 = DAT_182671810;
  puVar30 = (ulonglong *)(lVar9 - (uVar46 ^ 0x1d85664c));
  uVar57 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(lVar9 + -0x9e8) =
       (uVar26 ^ *(ulonglong *)(lVar9 + -0x2a0)) - (uVar44 ^ *puVar30) ^ uVar57;
  uVar26 = CONCAT44(uVar17,uVar17);
  uVar35 = *(ulonglong *)(lVar9 - (uVar56 ^ 0x840008bb));
  *(ulonglong *)(lVar9 + -0x510) = (uVar50 ^ *(ulonglong *)(lVar9 + -0xa0)) << 0x22;
  *(ulonglong *)(lVar9 + -0x548) =
       (uVar44 ^ *(ulonglong *)(lVar9 + -0x628)) - (uVar35 ^ uVar26) ^ uVar22;
  uVar48 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar43 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar35 = uVar48 ^ uVar40 ^ uVar54 ^ *(ulonglong *)(lVar9 + -0xc08) ^ *puVar2;
  *(ulonglong *)(lVar9 + -0x688) = uVar35;
  *(ulonglong *)(lVar9 - (uVar28 ^ 0x280068a)) =
       (uVar35 ^ uVar48) >> ((bVar21 ^ 0x90) & 0x3f) ^ uVar43;
  uVar17 = DAT_1826716ec;
  uVar35 = *(ulonglong *)(lVar9 + -0xc08);
  uVar48 = (uVar48 ^ *(ulonglong *)(lVar9 + -0x688)) << 0x30;
  uVar32 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar9 + -0x80) = uVar48 ^ uVar32;
  uVar18 = DAT_182671790;
  uVar41 = CONCAT44(uVar17,uVar17);
  *puVar1 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar13 ^ 0x1afb59e4)) ^ uVar43 | uVar48) ^ uVar41;
  *(ulonglong *)(lVar9 - (uVar29 ^ 0xd6021cbc)) =
       (uVar40 ^ uVar35) - (CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar9 + -0x3b8)) ^ uVar25;
  lVar10 = DAT_182671560;
  puVar33 = (ulonglong *)(lVar9 - (uVar31 ^ 0x28a0490));
  uVar48 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(DAT_182671560 + -0x898) = (uVar25 ^ *puVar33) - (uVar41 ^ *puVar1) ^ uVar48;
  uVar13 = DAT_182671590;
  uVar35 = (CONCAT44(uVar14,uVar16) ^ 0x8151016fd75fd7c) -
           (*(ulonglong *)(lVar10 - (uVar56 ^ 0x84000663)) ^ CONCAT44(DAT_1826717d0,DAT_1826717d0));
  *(ulonglong *)(lVar10 + -0x1d8) = uVar35 ^ CONCAT44(DAT_1826716c4,DAT_1826716c4);
  lVar9 = DAT_182671560;
  *puVar3 = (uVar32 ^ *(ulonglong *)(lVar10 + -0x80)) - uVar35;
  puVar27 = (ulonglong *)(lVar10 - (uVar53 ^ 0x57b9c549));
  uVar25 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = (uVar41 ^ *puVar27) + uVar35 ^ uVar25;
  *puVar30 = CONCAT44(uVar16,uVar34) ^ CONCAT44(uVar52,uVar15) ^ 0x15aabd7ff2213e90;
  uVar43 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(ulonglong *)(lVar9 - (uVar39 ^ 0xf7eaef49)) =
       uVar57 ^ *(ulonglong *)(lVar9 + -0x9e8) ^ *(ulonglong *)(lVar9 + -0x2a0) ^ uVar43 ^ uVar25;
  uVar17 = DAT_1826716e0;
  uVar35 = (uVar43 ^ *(ulonglong *)(lVar9 + -0xa0)) >> (((byte)uVar13 ^ 0xc4) & 0x3f);
  *(ulonglong *)(lVar9 + -0x510) = uVar35 ^ CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar25 = CONCAT44(uVar17,uVar17);
  bVar51 = (byte)uVar15;
  *puVar2 = (*(ulonglong *)(lVar9 - (uVar29 ^ 0xd6021a0c)) ^ uVar43) << ((bVar51 ^ 0xf1) & 0x3f) ^
            uVar25;
  uVar17 = DAT_1826716b0;
  lVar10 = DAT_182671560;
  uVar32 = CONCAT44(DAT_18267164c,DAT_18267164c);
  uVar35 = *(ulonglong *)(lVar9 - (uVar49 ^ 0x21e8f08d)) ^ uVar25 | uVar35;
  *(ulonglong *)(lVar9 + -0x688) = uVar35 ^ uVar32;
  uVar18 = DAT_1826718c4;
  uVar41 = CONCAT44(uVar17,uVar17);
  uVar22 = uVar48 ^ *(ulonglong *)(lVar10 + -0x548) ^ uVar22 ^ *(ulonglong *)(lVar10 + -0x898);
  uVar25 = CONCAT44(DAT_182671788,DAT_182671788);
  *(ulonglong *)(lVar10 + -0x3b8) = uVar22 ^ uVar25;
  uVar43 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar10 + -0x400) = (uVar57 ^ *(ulonglong *)(lVar10 + -0x9e8)) - uVar35 ^ uVar41;
  *(ulonglong *)(lVar10 - (uVar28 ^ 0x2800e82)) = uVar22 >> (((byte)uVar14 ^ 0xc9) & 0x3f) ^ uVar43;
  uVar22 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar40 = CONCAT44(DAT_182671670,DAT_182671670);
  *puVar33 = (*(ulonglong *)(lVar10 + -0x3b8) ^ uVar25) << ((bVar21 ^ 0xa0) & 0x3f) ^ uVar22;
  uVar35 = *(ulonglong *)(lVar10 + -0x898);
  uVar22 = (*(ulonglong *)(lVar10 - (uVar39 ^ 0xf7eae3e1)) ^ uVar43 |
           *(ulonglong *)(lVar10 + -0x610) ^ uVar22) ^ uVar40;
  *puVar3 = uVar22;
  uVar44 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar43 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar10 + -0x80) =
       (uVar48 ^ uVar35) - (*(ulonglong *)(lVar10 - (uVar45 ^ 0x7bfff9d4)) ^ uVar40) ^ uVar44;
  uVar23 = DAT_1826715ac ^ 0x2cfa03f8;
  iVar6 = *(int *)(lVar10 + -0x274);
  *puVar1 = *(ulonglong *)(lVar10 + -0x400) ^ uVar22 ^ uVar43 ^ uVar40 ^ uVar41;
  *(uint *)(lVar10 - (uVar28 ^ 0x280015e)) = uVar23 * iVar6;
  uVar18 = DAT_182671850;
  uVar48 = (*puVar1 ^ uVar43) >> ((bVar51 ^ 0xeb) & 0x3f);
  uVar25 = uVar48 ^ CONCAT44(DAT_182671850,DAT_182671850);
  uVar35 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar10 + -0x1d8) = uVar25;
  uVar17 = DAT_182671830;
  uVar22 = (*(ulonglong *)(lVar10 - (uVar46 ^ 0x1d856194)) ^ uVar43) << 6;
  *(ulonglong *)(lVar10 + -0x628) = uVar22 ^ uVar35;
  *(longlong *)(lVar10 + -0x2a0) = -0x3225a5d74a0fab1a << (((byte)uVar25 ^ (byte)uVar18) & 0x3f);
  lVar9 = DAT_182671560;
  uVar25 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x280022a)) = (uVar22 | uVar48) ^ uVar25;
  uVar48 = CONCAT44(DAT_182671730,DAT_182671730);
  uVar35 = *(ulonglong *)(lVar9 + -0x688);
  uVar22 = *(ulonglong *)(lVar9 + -0x80);
  *(ulonglong *)(lVar9 + -0x510) =
       (*(ulonglong *)(lVar9 + -0x400) ^ uVar41) - (uVar25 ^ *(ulonglong *)(lVar9 + -0xa0)) ^ uVar48
  ;
  *puVar2 = (CONCAT44(uVar13,uVar55) ^ 0x6e39fa66800e04) -
            (*(ulonglong *)(lVar9 - (uVar39 ^ 0xf7eaee19)) ^ uVar43);
  uVar43 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar32 = uVar35 ^ uVar22 ^ uVar43 ^ uVar44 ^ uVar32;
  bVar7 = (byte)uVar34;
  *(ulonglong *)(lVar9 + -0x9e8) = uVar32;
  uVar17 = DAT_182671654;
  *(ulonglong *)(lVar9 + -0x548) =
       (*(ulonglong *)(lVar9 - (uVar49 ^ 0x21e8fcad)) ^ uVar43) >> ((bVar7 ^ 0xfa) & 0x3f) ^ uVar36;
  uVar35 = CONCAT44(uVar17,uVar17);
  uVar34 = DAT_182671590 ^ 0x19dfdc8e;
  bVar8 = (byte)DAT_182671568;
  *(ulonglong *)(lVar9 + -0x3b8) = (uVar32 ^ uVar43) << ((bVar21 ^ 0xaa) & 0x3f) ^ uVar35;
  *(uint *)(lVar9 - (uVar49 ^ 0x21e8f731)) = uVar34 << ((bVar8 ^ 0xa9) & 0x1f);
  uVar17 = DAT_182671800;
  uVar22 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(lVar9 + -0xc08) =
       (uVar36 ^ *(ulonglong *)(lVar9 + -0x548) | *(ulonglong *)(lVar9 + -0x3b8) ^ uVar35) ^ uVar22;
  uVar32 = CONCAT44(uVar17,uVar17);
  uVar35 = (ulonglong)DAT_1826716fc;
  uVar43 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar9 - (uVar46 ^ 0x1d856674)) =
       (*(ulonglong *)(lVar9 + -0x80) ^ uVar44) -
       (*(ulonglong *)(lVar9 - (uVar53 ^ 0x57b9c8b1)) ^ uVar22) ^ uVar32;
  uVar40 = *(ulonglong *)(lVar9 - (uVar49 ^ 0x21e8f055)) ^ *(ulonglong *)(lVar9 + -0xc08) ^ uVar43 ^
           uVar22 ^ uVar48;
  uVar22 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar9 + -0x898) = uVar40;
  uVar40 = (uVar40 >> 0x20 ^ uVar35) >> 0xe;
  *puVar3 = uVar40 ^ uVar22;
  uVar17 = DAT_182671614;
  uVar35 = (*(ulonglong *)(lVar9 - (uVar53 ^ 0x57b9cc21)) ^ uVar43) << 0x12;
  *(ulonglong *)(lVar9 + -0x2a0) = uVar35 ^ CONCAT44(DAT_182671774,DAT_182671774);
  uVar34 = DAT_182671590;
  lVar9 = DAT_182671560;
  uVar36 = CONCAT44(uVar17,uVar17);
  uVar22 = (ulonglong)DAT_182671590;
  *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xf7eaee31)) = (uVar40 | uVar35) ^ uVar36;
  *(ulonglong *)(lVar9 + -0x628) =
       (*(ulonglong *)(lVar9 + -0x510) ^ uVar48) -
       (*(ulonglong *)(lVar9 - (uVar22 ^ 0x1afb5c3c)) ^ uVar36) ^ uVar42;
  uVar43 = CONCAT44(DAT_18267165c,DAT_18267165c);
  uVar22 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar25 = *(ulonglong *)(lVar9 - (uVar37 ^ 0xaac63d71)) ^ *(ulonglong *)(lVar9 + -0x610) ^ uVar43 ^
           uVar32 ^ uVar25;
  *(ulonglong *)(lVar9 + -0x400) = uVar25;
  uVar35 = (*(ulonglong *)(lVar9 - (uVar45 ^ 0x7bfffbec)) ^ uVar43) >> ((bVar21 ^ 0x8c) & 0x3f);
  *puVar1 = uVar35 ^ uVar22;
  *(int *)(lVar9 + -0x274) = *(int *)(lVar9 + -0x47c) + -0x1c99571c;
  lVar9 = DAT_182671560;
  uVar48 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *puVar2 = (uVar25 ^ uVar43) << 0x34 ^ uVar48;
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x7bfff964)) =
       (*(ulonglong *)(lVar9 - (uVar56 ^ 0x840001e3)) ^ uVar22) + uVar35;
  uVar18 = DAT_1826716b4;
  lVar9 = DAT_182671560;
  puVar30 = (ulonglong *)(DAT_182671560 + -0x610);
  uVar35 = uVar48 ^ *puVar2 | *puVar1 ^ uVar22;
  uVar45 = uVar35 ^ uVar24;
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar45;
  uVar17 = DAT_182671600;
  uVar25 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar9 + -0x3b8) = (*puVar30 ^ uVar32) - uVar35 ^ uVar25;
  lVar10 = DAT_182671560;
  uVar22 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar34 ^ 0x1afb58ac)) =
       *(ulonglong *)(lVar9 - (uVar28 ^ 0x28004a2)) ^ uVar42 ^ uVar24 ^ uVar22 ^ uVar45;
  uVar24 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  local_100 = (byte)uVar55;
  *(ulonglong *)(lVar10 - (uVar29 ^ 0xd6021a2c)) =
       (*(ulonglong *)(lVar10 - (uVar39 ^ 0xf7eaeaa1)) ^ uVar22) >> ((bVar51 ^ 200) & 0x3f) ^ uVar24
  ;
  uVar35 = (*(ulonglong *)(lVar10 + -0x548) ^ uVar22) << ((local_100 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar10 + -0xc08) = uVar35 ^ CONCAT44(DAT_182671834,DAT_182671834);
  uVar17 = DAT_18267185c;
  *(ulonglong *)(lVar10 + -0x898) =
       *(ulonglong *)(lVar10 - (uVar37 ^ 0xaac639d1)) ^ uVar43 ^ 0x94b4bedca46be4d3;
  lVar9 = DAT_182671560;
  uVar43 = CONCAT44(uVar17,uVar17);
  uVar37 = CONCAT44(_DAT_182671610,_DAT_182671610);
  *puVar3 = (*(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xf7eaef69)) ^ uVar24 | uVar35) ^ uVar43;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar34 ^ 0x1afb5f44)) =
       (uVar42 ^ *(ulonglong *)(lVar9 + -0x628)) -
       (CONCAT44(DAT_182671704,DAT_182671704) ^ *(ulonglong *)(lVar9 + -0x6b8)) ^ uVar37;
  uVar17 = DAT_18267179c;
  lVar10 = DAT_182671560;
  uVar42 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x1d856574)) =
       (*(ulonglong *)(lVar9 - (uVar39 ^ 0xf7eaed49)) ^ uVar37) - (*puVar3 ^ uVar43) ^ uVar42;
  *(ulonglong *)(lVar10 + -0xa0) =
       (*(ulonglong *)(lVar10 - (uVar31 ^ 0x28a04b8)) ^ uVar43) -
       (CONCAT44(DAT_1826717a8,DAT_1826717a8) ^ *(ulonglong *)(lVar10 + -0x9f8)) ^
       CONCAT44(uVar17,uVar17);
  uVar17 = DAT_1826716d4;
  *(ulonglong *)(lVar10 + -0x688) =
       uVar42 ^ *(ulonglong *)(lVar10 + -0x510) | *(ulonglong *)(lVar10 + -0x548) ^ uVar22;
  uVar22 = CONCAT44(uVar17,uVar17);
  *puVar1 = *(ulonglong *)(lVar10 - (uVar46 ^ 0x1d8563dc)) ^ uVar22 ^ uVar25 ^ uVar36 ^
            *(ulonglong *)(lVar10 + -0x1d8);
  uVar46 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *puVar2 = (*puVar27 ^ uVar22) >> ((bVar51 ^ 0xf0) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar10 - (uVar56 ^ 0x84000603)) =
       (CONCAT44(uVar16,uVar15) ^ 0x4d7e881c22776887) >> ((bVar7 ^ 0xc1) & 0x3f);
  lVar9 = DAT_182671560;
  uVar35 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar23 = DAT_182671568 ^ 0xdcdf66d;
  puVar4 = (uint *)(DAT_182671560 + -0x344);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (*puVar1 ^ uVar22) << (((byte)uVar34 ^ 0xfb) & 0x3f) ^ uVar35;
  lVar10 = DAT_182671560;
  *(uint *)(lVar9 - (uVar56 ^ 0x8400046f)) = uVar23 | *puVar4;
  uVar17 = DAT_18267189c;
  uVar46 = uVar46 ^ *puVar2 | *(ulonglong *)(lVar10 + -0x9e8) ^ uVar35;
  uVar35 = CONCAT44(DAT_182671660,DAT_182671660);
  uVar22 = (*(ulonglong *)(lVar10 + -0x3b8) ^ uVar25) - (*(ulonglong *)(lVar10 + -0x8a8) ^ uVar26);
  *(ulonglong *)(lVar10 + -0x898) = uVar46 ^ CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *(ulonglong *)(lVar10 + -0x400) = uVar22 ^ uVar35;
  *(ulonglong *)(lVar10 + -0x80) = uVar22 - uVar46 ^ CONCAT44(uVar17,uVar17);
  uVar19 = DAT_18267167c;
  uVar17 = DAT_1826715c4;
  *(ulonglong *)(lVar10 + -0xc08) =
       (CONCAT44(uVar55,uVar52) ^ 0x143a45d51d8fd6f2) << ((bVar7 ^ 0xd6) & 0x3f);
  uVar18 = DAT_18267160c;
  uVar22 = (CONCAT44(uVar47,uVar15) ^ 0xde170aba5539c22c) -
           (CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar10 + -0x6d0));
  *(ulonglong *)(lVar10 + -0x628) = uVar22 ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_182671680;
  uVar35 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar10 + -0x2a0) = uVar22 + uVar46 ^ uVar35;
  uVar37 = CONCAT44(uVar17,uVar17);
  uVar22 = *(ulonglong *)(lVar10 - (uVar31 ^ 0x28a0020)) ^ uVar37 ^ uVar35 ^ uVar42 ^
           *(ulonglong *)(lVar10 + -0x510);
  uVar39 = CONCAT44(DAT_182671698,DAT_182671698);
  local_108 = (byte)uVar5;
  *puVar3 = uVar22;
  uVar46 = CONCAT44(DAT_182671744,DAT_182671744);
  uVar35 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar10 + -0x548) = (uVar22 ^ uVar37) >> ((local_108 ^ 0x61) & 0x3f) ^ uVar39;
  *(ulonglong *)(lVar10 - (uVar35 ^ 0xba60134f)) = (uVar37 ^ uVar22) << 0x3b ^ uVar46;
  uVar35 = *puVar3;
  *(ulonglong *)(lVar10 + -0x1d8) =
       (CONCAT44(uVar11,uVar16) ^ 0x664ba9e4a89c5ff6) -
       (CONCAT44(uVar12,uVar14) ^ 0xe440ba01e0a55531);
  uVar17 = DAT_18267177c;
  uVar22 = *(ulonglong *)(lVar10 - (uVar29 ^ 0xd6021fe4)) ^ uVar39 |
           *(ulonglong *)(lVar10 + -0x688) ^ uVar46;
  *(ulonglong *)(lVar10 + -0x610) = uVar22 ^ CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *puVar1 = (*(ulonglong *)(lVar10 - (uVar28 ^ 0x280079a)) ^ uVar42) - uVar22 ^
            CONCAT44(uVar17,uVar17);
  *puVar2 = uVar37 ^ uVar35 ^ CONCAT44(uVar55,uVar13) ^ 0x7934774a67ed264f;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar20 * 4) = uVar38;
  return;
}



############ FUN_ 180e6c970 size=5252 ############

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

void FUN_180e6c970(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  int *piVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  byte local_a0;
  
  uVar17 = DAT_18267181c;
  uVar8 = DAT_182671614;
  uVar12 = DAT_18267159c;
  uVar7 = DAT_18267156c;
  lVar5 = DAT_182671560;
  uVar24 = (ulonglong)DAT_18267156c;
  uVar23 = (ulonglong)DAT_18267159c;
  uVar20 = DAT_18267156c ^ DAT_18267159c;
  uVar22 = *(uint *)(&DAT_182611e78 + DAT_182671af0) ^ DAT_18267156c;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671af0) ^ DAT_18267159c;
  uVar36 = (ulonglong)uVar20;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x318);
  uVar34 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x8a8);
  uVar26 = CONCAT44(DAT_182671614,DAT_182671614);
  uVar31 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0x6ad8aacc)) ^ uVar26 |
           CONCAT44(DAT_182671874,DAT_182671874) ^ *puVar1;
  puVar3 = (ulonglong *)(DAT_182671560 + -0x898);
  uVar32 = uVar31 ^ uVar34;
  DAT_182671598 = uVar20;
  *puVar3 = uVar32;
  uVar16 = DAT_182671774;
  uVar14 = DAT_182671754;
  uVar40 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar5 + -0x6d0) =
       (*(ulonglong *)(lVar5 - (uVar36 ^ 0x6ad8ae1c)) ^ CONCAT44(uVar17,uVar17)) - uVar31 ^ uVar40;
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(uVar16,uVar16);
  *puVar2 = uVar30 ^ uVar34 ^ uVar26 ^ *(ulonglong *)(lVar5 + -0xa88) ^ uVar32;
  uVar34 = CONCAT44(uVar12,uVar20);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar7 ^ 0xe7d6d5d4)) =
       (uVar34 ^ 0xd5df6d17b1c9bf89) - (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0xbf0));
  uVar32 = ((ulonglong)uVar8 << 0x12 | (ulonglong)(uVar8 >> 0xe)) ^ *puVar2 >> 0xe;
  *puVar1 = uVar32 ^ CONCAT44(DAT_182671768,DAT_182671768);
  lVar5 = DAT_182671560;
  puVar35 = (ulonglong *)(lVar6 - (uVar23 ^ 0x8d0e7338));
  uVar37 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar31 = *(ulonglong *)(DAT_182671560 + -0xa88);
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (*puVar35 ^ uVar26) << (((byte)uVar7 ^ 0xce) & 0x3f) ^ uVar37;
  *(undefined4 *)(lVar5 + -0x754) = 0x4a44670;
  puVar41 = (ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xe7d6d15c));
  uVar27 = CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar32 = *puVar41 ^ uVar37 | uVar32;
  uVar26 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(lVar5 + -0x670) = uVar32 ^ uVar27;
  *puVar3 = (uVar30 ^ uVar31) - (CONCAT44(uVar20,uVar12) ^ 0x2e93cfa6d6e39a84) ^ uVar26;
  lVar6 = DAT_182671560;
  uVar25 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (CONCAT44(DAT_182671794,DAT_182671794) ^ *(ulonglong *)(lVar5 + -0x240)) <<
       (((byte)uVar20 ^ 0x4b) & 0x3f);
  uVar16 = DAT_1826717ac;
  *(ulonglong *)(lVar6 + -0xbf0) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar7 ^ 0xe7d6db64)) ^ uVar26) - uVar32 ^ uVar25;
  uVar14 = DAT_182671764;
  uVar39 = CONCAT44(uVar16,uVar16);
  *puVar2 = uVar32 - (uVar34 ^ 0x69592abc0f2a46b7) ^ uVar39;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar31 = (ulonglong)DAT_182671578;
  *puVar1 = *(ulonglong *)(lVar6 - (uVar24 ^ 0xe7d6d52c)) ^ CONCAT44(DAT_182671724,DAT_182671724) ^
            *(ulonglong *)(lVar6 + -0x110) ^ uVar32 ^ uVar40;
  *(undefined8 *)(lVar6 - (uVar31 ^ 0xfc02ed22)) = 0xd6130be692c9f862;
  uVar10 = DAT_182671594;
  uVar8 = DAT_182671580;
  local_a0 = (byte)uVar12;
  uVar26 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x6ad8a2e4)) = (*puVar1 ^ uVar32) >> (local_a0 & 0x3f) ^ uVar26;
  uVar9 = DAT_182671588;
  uVar31 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671588 ^ 0x6a6a5aea)) =
       (*puVar1 ^ uVar32) << (((byte)uVar8 ^ 0xce) & 0x3f) ^ uVar31;
  uVar8 = DAT_1826715a8;
  uVar32 = *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a8 ^ 0x9057f636)) ^ uVar31 |
           uVar26 ^ *(ulonglong *)(lVar6 + -0xa88);
  *(ulonglong *)(lVar6 + -0x628) = uVar32 ^ CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(undefined1 *)(lVar6 + -0x209) = **(undefined1 **)(lVar6 + -0xa70);
  puVar33 = (ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x9057f2a6));
  uVar30 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar31 = (uVar40 ^ *puVar33) - (CONCAT44(uVar20,uVar12) ^ 0x7314ba83e58b81e6);
  *puVar3 = uVar31 ^ uVar30;
  uVar28 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar31 - uVar32 ^ uVar28;
  uVar8 = DAT_182671570;
  uVar23 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *puVar41 = uVar32 + (uVar34 ^ 0x5980f64692b8e1ba) ^ uVar23;
  uVar13 = DAT_1826715b0;
  uVar31 = *puVar2;
  *puVar1 = CONCAT44(DAT_1826715b0,uVar8) ^ 0xe4fbaf470e910ed7 | uVar39 ^ uVar31;
  lVar5 = DAT_182671560;
  uVar26 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar32 = *(ulonglong *)(DAT_182671560 + -0xbf0);
  uVar38 = uVar26 ^ uVar23 ^ *(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar25 ^ uVar32;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar38;
  uVar14 = DAT_1826717c8;
  uVar11 = DAT_1826715b4;
  uVar24 = (uVar38 ^ uVar26) >> (((byte)uVar9 ^ 0x8a) & 0x3f);
  uVar34 = (ulonglong)DAT_182671590;
  uVar38 = (uVar38 ^ uVar26) << 0x20;
  *(ulonglong *)(lVar5 + -0x240) = uVar24 ^ CONCAT44(DAT_182671858,DAT_182671858);
  uVar26 = *(ulonglong *)(lVar5 + -0x110);
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x6d0) = uVar38 ^ uVar40;
  uVar24 = uVar24 | uVar38;
  *(ulonglong *)(lVar5 + -0x670) = uVar24 ^ uVar42;
  uVar38 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *puVar3 = (uVar25 ^ uVar32) - uVar24 ^ uVar37;
  bVar19 = (byte)DAT_1826715ac;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x409344de)) = uVar26 ^ uVar38 ^ uVar28 ^ uVar39 ^ uVar31;
  uVar8 = DAT_18267157c;
  uVar24 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x2c660f08)) =
       (uVar38 ^ *(ulonglong *)(lVar5 + -0x628)) >> ((bVar19 ^ 0x76) & 0x3f) ^ uVar24;
  uVar14 = DAT_182671718;
  puVar41 = (ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xe3d295f0));
  *(ulonglong *)(lVar5 + -0x2a0) = (uVar38 ^ *puVar41) << (((byte)uVar16 ^ *(byte *)puVar2) & 0x3f);
  uVar16 = DAT_182671820;
  lVar6 = DAT_182671560;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar26 = (*(ulonglong *)(lVar5 - (uVar36 ^ 0x6ad8ae44)) ^ uVar38) <<
           (((byte)uVar13 ^ 0x7c) & 0x3f);
  uVar32 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 + -0xa88) = uVar26 ^ uVar34;
  uVar9 = DAT_182671814;
  uVar8 = DAT_182671570;
  uVar25 = CONCAT44(uVar16,uVar16);
  uVar31 = *(ulonglong *)(lVar6 + -0x110);
  uVar34 = *(ulonglong *)(lVar5 - (uVar32 ^ 0xacee76fe)) ^ uVar34 | *puVar1 ^ uVar24;
  uVar36 = uVar34 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x240) = uVar36;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar26 | 0x3d8bea8e8072e3a0;
  uVar24 = CONCAT44(uVar9,uVar9);
  uVar32 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar6 + -0xbf0) = (uVar31 ^ uVar28) - uVar34 ^ uVar24;
  uVar26 = uVar36 ^ uVar32 ^ uVar25 ^ uVar37 ^ *puVar3;
  *(ulonglong *)(lVar6 + -0x2a0) = uVar26;
  uVar11 = DAT_1826715a0;
  uVar34 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  uVar31 = (ulonglong)DAT_1826715a0;
  *puVar35 = (uVar26 ^ uVar32) >> (((byte)DAT_182671568 ^ 0xc4) & 0x3f) ^ uVar34;
  uVar9 = DAT_182671584;
  uVar36 = CONCAT44(DAT_182671714,DAT_182671714);
  uVar26 = CONCAT44(uVar20,DAT_182671578);
  *(ulonglong *)(lVar6 + -0x628) =
       (*(ulonglong *)(lVar6 - (uVar31 ^ 0xb2a8ba2c)) ^ uVar32) << 6 ^ uVar36;
  *puVar1 = (uVar26 ^ 0xfc28adce3589f565) >> (((byte)uVar11 ^ 0xa0) & 0x3f);
  uVar28 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x7617f12c)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x7617fd8c)) ^ uVar36 | uVar34 ^ *puVar2) ^
       uVar28;
  uVar14 = DAT_182671744;
  *(ulonglong *)(lVar6 + -0x6d0) =
       (uVar24 ^ *(ulonglong *)(lVar6 + -0xbf0)) - (*(ulonglong *)(lVar6 + -0x240) ^ uVar25);
  uVar15 = DAT_182671728;
  uVar38 = CONCAT44(uVar14,uVar14);
  uVar26 = (ulonglong)DAT_182671728;
  *(ulonglong *)(lVar6 + -0x110) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671590 ^ 0x40934a6e)) ^ uVar37) -
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a8 ^ 0x9057fefe)) ^ uVar28) ^ uVar38;
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x2a0) = CONCAT44(uVar10,uVar11) ^ 0x60d4c004a50a0200 | 0x1e2b35f95ab5f42a
  ;
  uVar9 = DAT_182671574;
  lVar5 = DAT_182671560;
  uVar32 = (ulonglong)DAT_182671574;
  uVar21 = DAT_182671574 - DAT_182671594;
  puVar29 = (ulonglong *)(lVar6 - (uVar32 ^ 0xeeef7fee));
  DAT_182671568 = uVar21;
  *puVar29 = uVar25 ^ uVar24 ^ uVar42 ^ *(ulonglong *)(lVar6 + -0xbf0) ^
             *(ulonglong *)(DAT_182671560 + -0x670);
  uVar31 = (ulonglong)DAT_182671594;
  *(int *)(lVar5 + -0x374) =
       -0x7559ea9c << ((byte)*(undefined4 *)(lVar5 - ((ulonglong)uVar21 ^ 0x4d870d02)) & 0x1f);
  uVar36 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar5 - (uVar31 ^ 0xa16871a8)) =
       ((ulonglong)(uVar15 >> 0x16) | uVar26 << 10) ^ *puVar1 >> 0x16 ^ uVar36;
  uVar14 = _DAT_182671618;
  uVar11 = DAT_182671594;
  *(ulonglong *)(lVar5 + -0x6d0) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671594 ^ 0xa1687f28)) ^ uVar34) +
       (CONCAT44(uVar21,uVar9) ^ 0xe48498aa3836bf11);
  lVar5 = DAT_182671560;
  puVar35 = (ulonglong *)(DAT_182671560 + -0x628);
  uVar31 = *(ulonglong *)(DAT_182671560 + -0xbf0);
  uVar26 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0xa1687498)) ^ uVar25) <<
           (((byte)uVar21 ^ 0x5c) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar26 ^ CONCAT44(uVar14,uVar14);
  uVar26 = uVar36 ^ *puVar35 | uVar26;
  uVar36 = uVar26 ^ uVar23;
  *puVar3 = uVar36;
  *(ulonglong *)(lVar5 + -0x2a0) = (uVar24 ^ uVar31) - uVar26 ^ uVar30;
  uVar15 = DAT_1826716fc;
  bVar19 = (byte)uVar9;
  uVar31 = (ulonglong)DAT_1826716fc;
  *(ulonglong *)(lVar5 + -0x670) = (uVar25 ^ *puVar1) >> ((bVar19 ^ 0xe4) & 0x3f);
  uVar11 = DAT_182671594;
  uVar24 = CONCAT44(uVar15,uVar15);
  uVar26 = (ulonglong)DAT_182671594;
  uVar34 = CONCAT44(uVar21,DAT_182671594);
  *puVar2 = uVar24 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0x110) ^ uVar23 ^ uVar36;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar34 ^ 0x8a86bbeb6d202a5b;
  uVar34 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar5 + -0x628) = (*puVar2 >> 0x20 ^ uVar31) >> 0xe ^ uVar34;
  puVar35 = (ulonglong *)(lVar5 - (uVar26 ^ 0xa1687c70));
  *(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x4d870736)) =
       (*puVar35 >> 0x20 ^ (ulonglong)DAT_182671814) >> 8;
  uVar14 = _DAT_182671610;
  uVar31 = CONCAT44(DAT_182671644,DAT_182671644);
  *puVar29 = (uVar24 ^ *puVar2) << (((byte)uVar11 ^ 0x92) & 0x3f) ^ uVar31;
  lVar6 = DAT_182671560;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar31 = uVar34 ^ *(ulonglong *)(lVar5 + -0x628) | uVar31 ^ *puVar1;
  uVar23 = CONCAT44(DAT_182671878,DAT_182671878);
  *(ulonglong *)(lVar5 + -0x670) = uVar31 ^ uVar37;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x4d870dee)) =
       (uVar38 ^ *(ulonglong *)(lVar5 + -0x110)) - uVar31 ^ uVar23;
  uVar34 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  uVar26 = (ulonglong)DAT_182671594;
  uVar24 = *(ulonglong *)(lVar6 - (uVar32 ^ 0xeeef7e56)) ^ uVar34 ^ uVar28 ^ uVar30 ^
           *(ulonglong *)(lVar6 + -0xa88);
  uVar36 = CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(lVar6 + -0x6d0) = uVar24;
  uVar31 = CONCAT44(uVar10,DAT_18267157c);
  uVar25 = (*(ulonglong *)(lVar6 - (uVar26 ^ 0xa1687150)) ^ uVar34) >> ((bVar19 ^ 0xfa) & 0x3f);
  *(ulonglong *)(lVar6 + -0xbf0) = uVar25 ^ uVar36;
  *puVar2 = (uVar31 ^ 0x761c626c383b77a9) >> ((byte)*(undefined8 *)(lVar6 + -0x240) & 0x3f);
  lVar5 = DAT_182671560;
  uVar36 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar31 = (uVar34 ^ uVar24) << ((bVar19 ^ 0xc2) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar31 ^ CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar11 = DAT_1826718a4;
  uVar10 = DAT_182671594;
  puVar29 = (ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x4d87066e));
  uVar26 = (ulonglong)DAT_1826718a4;
  uVar34 = (ulonglong)DAT_182671594;
  *puVar29 = (uVar25 | uVar31) ^ uVar36;
  *(ulonglong *)(lVar5 + -0x110) =
       (uVar30 ^ *(ulonglong *)(lVar5 + -0x2a0)) - (uVar36 ^ *puVar1) ^ uVar27;
  uVar30 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(lVar5 + -0xa88) =
       *(ulonglong *)(lVar5 - (uVar34 ^ 0xa1687f18)) ^ CONCAT44(uVar11,uVar11) ^ uVar36 ^ uVar23 ^
       *puVar29;
  uVar31 = (ulonglong)DAT_182671570;
  uVar24 = *(ulonglong *)(lVar5 - (uVar32 ^ 0xeeef767e)) >> 0x19 ^
           ((ulonglong)(uVar11 >> 0x19) | uVar26 << 7);
  *puVar2 = uVar24 ^ uVar30;
  uVar30 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar36 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar5 + -0x240) =
       (*(ulonglong *)(lVar5 - (uVar31 ^ 0xef82f68a)) ^ CONCAT44(uVar11,uVar11)) << 0x27 ^ uVar30;
  uVar25 = (ulonglong)DAT_1826715ac;
  uVar28 = (ulonglong)DAT_182671584;
  uVar31 = *puVar3;
  uVar34 = (ulonglong)DAT_1826715b0;
  uVar26 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar24 = *(ulonglong *)(lVar5 - (uVar32 ^ 0xeeef7eb6)) ^ uVar30 | uVar24;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar24 ^ uVar36;
  uVar14 = DAT_182671840;
  *(ulonglong *)(lVar5 + -0xbf0) =
       (uVar23 ^ uVar31) - (CONCAT44(uVar7,uVar10) ^ 0xc72b5a3125a307b2) ^ uVar26;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x77e4ec7e)) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0x2b4cedac)) ^ uVar26) - uVar24 ^ uVar23;
  uVar14 = DAT_1826715e8;
  lVar5 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671684,DAT_182671684);
  uVar31 = *(ulonglong *)(DAT_182671560 + -0x110);
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (uVar36 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) -
       (CONCAT44(uVar21,uVar7) ^ 0x275627ad6c686b13) ^ uVar30;
  uVar36 = CONCAT44(uVar14,uVar14);
  *puVar1 = uVar36 ^ uVar37 ^ uVar31 ^ uVar27 ^ *(ulonglong *)(lVar5 + -0x670);
  uVar14 = DAT_18267178c;
  uVar32 = *puVar1;
  *(undefined1 *)(lVar5 + -0x5e9) = **(undefined1 **)(lVar5 + -0x900);
  uVar34 = (uVar36 ^ uVar32) >> (((byte)DAT_182671578 ^ 0xa3) & 0x3f);
  uVar32 = (ulonglong)DAT_1826715a4;
  uVar26 = CONCAT44(DAT_182671800,DAT_182671800);
  *(ulonglong *)(lVar5 + -0xa88) = uVar34 ^ CONCAT44(uVar14,uVar14);
  uVar24 = (ulonglong)DAT_18267158c;
  uVar32 = (*(ulonglong *)(lVar5 - (uVar32 ^ 0xacee7f6e)) ^ uVar36) <<
           (((byte)uVar20 ^ 0x73) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar32 ^ uVar26;
  uVar14 = DAT_1826717b0;
  uVar26 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *puVar2 = (uVar32 | uVar34) ^ uVar26;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xa341d9b6)) =
       (uVar31 ^ uVar27) - (CONCAT44(uVar8,uVar7) ^ 0xbd5ad2e82243d27) ^ uVar32;
  uVar27 = (ulonglong)DAT_182671590;
  uVar34 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x40934906)) =
       (uVar32 ^ *puVar3) - (*puVar2 ^ uVar26) ^ uVar34;
  uVar8 = DAT_1826715b4;
  lVar5 = DAT_182671560;
  uVar31 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar32 = (ulonglong)DAT_1826715b4;
  piVar4 = (int *)(DAT_182671560 + -0x774);
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       (CONCAT44(uVar13,uVar7) ^ 0xa936cbffaeaf6708) + (*puVar2 ^ uVar26) ^ uVar31;
  *(int *)(lVar5 - (uVar32 ^ 0x2c660500)) = 0x79abf22 - *piVar4;
  uVar26 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  bVar19 = (byte)DAT_18267157c;
  uVar32 = *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x2c660ac0)) ^ uVar23 ^ uVar26 ^ uVar31 ^
           *puVar41;
  *(int *)(lVar5 + -0x3d4) = *(int *)(lVar5 + -0x910) + *(int *)(lVar5 + -0x374);
  uVar14 = DAT_182671734;
  *(ulonglong *)(lVar5 + -0x670) = uVar32;
  uVar7 = DAT_1826715a4;
  lVar5 = DAT_182671560;
  uVar36 = (uVar32 ^ uVar26) >> ((bVar19 ^ 0xdd) & 0x3f);
  *puVar1 = uVar36 ^ CONCAT44(uVar14,uVar14);
  uVar31 = *(ulonglong *)(lVar5 + -0x628);
  uVar24 = (uVar32 ^ uVar26) << (((byte)uVar7 ^ 0x4d) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar24 ^ CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar14 = DAT_1826718bc;
  *(ulonglong *)(lVar5 + -0x240) = (uVar32 ^ uVar26) - (CONCAT44(uVar9,uVar8) ^ 0xe743f37514e9a84c);
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar25 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar5 + -0x110) = (uVar36 | uVar24) ^ uVar32;
  uVar26 = (ulonglong)DAT_182671580;
  bVar19 = (byte)DAT_182671580;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a0 ^ 0xb2a8b014)) =
       (uVar23 ^ uVar31) - (*(ulonglong *)(lVar5 - (uVar28 ^ 0x7617fab4)) ^ uVar32) ^ uVar25;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0xeffef756)) =
       (CONCAT44(uVar13,uVar12) ^ 0xa2ce9d3453853694) << ((bVar19 ^ 0xe5) & 0x3f);
  uVar31 = (ulonglong)DAT_1826717fc;
  uVar32 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *puVar33 = uVar30 ^ *(ulonglong *)(lVar5 + -0xbf0) ^ *(ulonglong *)(lVar5 + -0x2a0) ^ uVar32 ^
             uVar34;
  uVar30 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a4 ^ 0xacee7a06)) =
       (*(ulonglong *)(lVar5 + -0x6d0) >> 0x20 ^ uVar31) >> 5 ^ uVar30;
  uVar14 = DAT_1826715d0;
  bVar19 = (byte)DAT_182671578;
  uVar31 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar5 + -0x240) = (*(ulonglong *)(lVar5 + -0x6d0) ^ uVar32) << 0x1b ^ uVar31;
  *(longlong *)(lVar5 - (uVar27 ^ 0x4093487e)) = -0x1918bfb626f78e69 << ((bVar19 ^ 0xb9) & 0x3f);
  uVar26 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar31 = *(ulonglong *)(lVar5 + -0x670) ^ uVar30 | *(ulonglong *)(lVar5 + -0x240) ^ uVar31;
  *puVar1 = uVar31 ^ uVar26;
  uVar32 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671570 ^ 0xef82fa2a)) =
       (*puVar35 ^ uVar34) - uVar31 ^ CONCAT44(uVar14,uVar14);
  *puVar2 = uVar32 ^ *puVar1 ^ uVar26 ^ uVar25 ^ *puVar3;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar22;
  return;
}



############ FUN_ 180e44a20 size=5222 ############

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

void FUN_180e44a20(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  ulonglong uVar12;
  byte bVar13;
  ulonglong uVar14;
  ulonglong *puVar15;
  uint uVar16;
  ulonglong *puVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  byte bVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  
  uVar10 = DAT_1826717fc;
  uVar6 = DAT_1826715d4;
  uVar8 = DAT_1826715a8;
  uVar34 = DAT_182671598;
  uVar5 = DAT_182671588;
  lVar2 = DAT_182671560;
  uVar32 = (ulonglong)DAT_182671598;
  uVar14 = (ulonglong)DAT_1826715a8;
  uVar16 = DAT_182671598 & DAT_1826715a8;
  uVar33 = DAT_182671588 << 0x10 | DAT_182671588 >> 0x10;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671908);
  uVar27 = *(uint *)(&DAT_182611e78 + DAT_182671908) ^ DAT_182671588;
  uVar19 = (ulonglong)DAT_182671588;
  uVar42 = (ulonglong)uVar16;
  uVar30 = CONCAT44(DAT_182671890,DAT_182671890);
  puVar17 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x162f3420));
  DAT_182671578 = uVar16;
  DAT_182671580 = uVar33;
  *puVar17 = (CONCAT44(DAT_182671598,DAT_1826715a8) ^ 0xdfd0812c838108b6) +
             (*(ulonglong *)(DAT_182671560 + -0x1d8) ^ uVar30);
  uVar7 = DAT_1826717f4;
  uVar24 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x510) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0x162f3a88)) ^ CONCAT44(DAT_1826717f0,DAT_1826717f0) |
       *(ulonglong *)(lVar2 - (uVar19 ^ 0x162f3080)) ^ CONCAT44(uVar10,uVar10)) ^ uVar24;
  uVar9 = DAT_1826715f4;
  uVar28 = (ulonglong)DAT_1826715f4;
  uVar23 = CONCAT44(uVar7,uVar7);
  uVar12 = (ulonglong)uVar33;
  puVar20 = (ulonglong *)(lVar2 - (uVar12 ^ 0x3c8810ff));
  *puVar20 = (*(ulonglong *)(lVar2 + -0x1d8) ^ uVar30) -
             (*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x162f3998)) ^ uVar24) ^ uVar23;
  lVar3 = DAT_182671560;
  uVar35 = CONCAT44(uVar9,uVar9);
  uVar31 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x96bf3966)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x96bf358e)) ^ *(ulonglong *)(lVar2 + -0x510) ^
       uVar31 ^ uVar35 ^ uVar24;
  uVar6 = DAT_18267163c;
  uVar25 = CONCAT44(DAT_182671648,DAT_182671648);
  uVar28 = ((ulonglong)(uVar9 >> 0x17) | uVar28 << 9) ^ *(ulonglong *)(lVar3 + -0x688) >> 0x17;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar28 ^ uVar25;
  lVar2 = DAT_182671560;
  uVar30 = CONCAT44(uVar6,uVar6);
  bVar21 = (byte)uVar34;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (uVar35 ^ *(ulonglong *)(DAT_182671560 + -0x688)) << ((bVar21 ^ 0xa0) & 0x3f) ^ uVar30;
  puVar15 = (ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x96bf39c6));
  uVar39 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar26 = CONCAT44(_DAT_182671618,_DAT_182671618);
  uVar28 = *puVar15 ^ uVar30 | uVar28;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar28 ^ uVar39;
  uVar6 = DAT_1826716c4;
  *(ulonglong *)(lVar2 + -0x318) = (*(ulonglong *)(lVar2 + -0xa60) ^ uVar31) - uVar28 ^ uVar26;
  lVar2 = DAT_182671560;
  uVar31 = CONCAT44(uVar6,uVar6);
  uVar28 = *(ulonglong *)(DAT_182671560 + -0x898) ^ uVar31 ^ uVar26 ^ uVar23 ^ *puVar20;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar28;
  uVar30 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  bVar13 = (byte)uVar16;
  bVar18 = (byte)uVar5;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x162f3c08)) =
       (uVar28 ^ uVar31) >> ((bVar13 ^ 0xa0) & 0x3f) ^ uVar30;
  uVar6 = DAT_18267173c;
  uVar28 = (*(ulonglong *)(lVar2 + -0x110) ^ uVar31) << ((bVar18 ^ 0x90) & 0x3f);
  *(ulonglong *)(lVar2 + -0x800) = uVar28 ^ CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0x5e6f7ec9)) =
       (*(ulonglong *)(lVar2 - (uVar12 ^ 0x3c8816af)) ^ uVar30 | uVar28) ^ uVar36;
  uVar7 = DAT_1826716d4;
  uVar28 = *(ulonglong *)(lVar2 + -0x240);
  *(uint *)(lVar2 + -0x678) = (uVar34 ^ 0x57985a5c) + *(int *)(lVar2 + -0x3d4);
  uVar6 = DAT_182671630;
  lVar2 = DAT_182671560;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar30 = *(ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(DAT_182671560 + -0x6d0) ^ uVar23) - (uVar28 ^ uVar36) ^ uVar31;
  uVar7 = DAT_1826717d4;
  uVar23 = CONCAT44(uVar6,uVar6);
  uVar29 = uVar30 ^ uVar23 ^ uVar28 ^ uVar36 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x670) = uVar29;
  uVar6 = DAT_182671644;
  uVar29 = uVar29 ^ uVar23;
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar28 = uVar29 >> ((bVar21 ^ 0xbd) & 0x3f);
  uVar23 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  *(ulonglong *)(lVar2 + -0xc08) = uVar29 << ((bVar18 ^ 0x84) & 0x3f) ^ uVar23;
  uVar38 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar28 ^ uVar37;
  uVar6 = DAT_1826717e4;
  uVar34 = DAT_1826716f8;
  lVar3 = DAT_182671560;
  uVar28 = *(ulonglong *)(lVar2 - (uVar32 ^ 0x5e6f7081)) ^ uVar23 | uVar28;
  uVar29 = (ulonglong)DAT_1826716f8;
  *(ulonglong *)(lVar2 + -0x600) = uVar28 ^ uVar38;
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - (uVar12 ^ 0x3c8817f7)) = (uVar30 ^ uVar26) - uVar28 ^ uVar23;
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(uVar34,uVar34);
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x5e6f7999)) =
       *(ulonglong *)(lVar3 + -0xa88) ^ uVar28 ^ uVar31 ^ uVar39 ^
       *(ulonglong *)(DAT_182671560 + -0x2a0);
  uVar26 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar30 = (*(ulonglong *)(lVar2 + -0x510) >> 0x20 ^ uVar29) >> 0x19;
  *(ulonglong *)(lVar2 + -0x688) = uVar30 ^ uVar26;
  uVar7 = DAT_182671658;
  *(ulonglong *)(lVar2 + -0x628) =
       *(ulonglong *)(lVar2 - (uVar14 ^ 0x96bf39ee)) ^ uVar38 ^ uVar37 ^
       *(ulonglong *)(lVar2 + -0x8a8);
  uVar6 = DAT_1826715e4;
  uVar28 = (*(ulonglong *)(lVar2 + -0x510) ^ uVar28) << ((bVar13 ^ 0x8f) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar28 ^ CONCAT44(uVar7,uVar7);
  uVar34 = DAT_1826718b8;
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar12 ^ 0x3c881c4f)) = (uVar28 | uVar30) ^ uVar29;
  uVar6 = DAT_18267171c;
  uVar40 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *(ulonglong *)(lVar3 + -0x898) =
       (*(ulonglong *)(lVar3 + -0xa88) ^ uVar31) -
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x162f36e8)) ^ uVar29) ^ uVar40;
  puVar20 = (ulonglong *)(lVar3 + -0x80);
  *(ulonglong *)(lVar3 - (uVar12 ^ 0x3c88173f)) =
       *(ulonglong *)(lVar3 + -0xa60) ^ *(ulonglong *)(lVar3 + -0x1d8) ^ CONCAT44(uVar34,uVar34) ^
       uVar29 ^ uVar23;
  lVar2 = DAT_182671560;
  *puVar20 = *(ulonglong *)(CONCAT44(DAT_182671814,DAT_182671814) ^ *(ulonglong *)(lVar3 + -0xa38))
             ^ CONCAT44(uVar6,uVar6);
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(lVar2 - (uVar14 ^ 0x96bf37ee)) =
       ((ulonglong)uVar34 << 0x12 | (ulonglong)(uVar34 >> 0xe)) ^
       *(ulonglong *)(lVar3 + -0x110) >> 0xe ^ uVar31;
  uVar6 = DAT_1826717c0;
  uVar28 = (*(ulonglong *)(lVar2 + -0x110) ^ CONCAT44(uVar34,uVar34)) << ((bVar18 ^ 0xba) & 0x3f);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar28 ^ CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar39 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - (uVar14 ^ 0x96bf3dae)) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x800) | uVar28) ^ uVar39;
  uVar28 = (*(ulonglong *)(lVar4 + -0x1d8) ^ uVar23) -
           (CONCAT44(uVar16,uVar16) ^ 0x52645b424dc2dd9c);
  *(ulonglong *)(lVar4 + -0x670) = uVar28 ^ CONCAT44(DAT_1826716a0,DAT_1826716a0);
  uVar6 = DAT_1826715c8;
  *(undefined1 *)(lVar4 + -0x5e9) = **(undefined1 **)(lVar4 + -0xc80);
  uVar30 = uVar39 ^ *(ulonglong *)(lVar4 + -0x240);
  uVar37 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 + -0xc08) = uVar28 - uVar30 ^ uVar37;
  uVar28 = CONCAT44(uVar33,DAT_182671574);
  *(ulonglong *)(lVar4 + -0x318) =
       uVar31 ^ *(ulonglong *)(lVar4 + -0x800) | uVar26 ^ *(ulonglong *)(lVar4 + -0x688);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar30 - (uVar28 ^ 0xd8df4703e7c9ece9) ^ uVar38;
  *(longlong *)(lVar4 - (uVar14 ^ 0x96bf3746)) = -0x231dee1cb8233dd1 << ((bVar18 ^ 0xbc) & 0x3f);
  uVar23 = CONCAT44(DAT_182671828,DAT_182671828);
  *puVar15 = *(ulonglong *)(lVar4 - (uVar19 ^ 0x162f3410)) ^ uVar23 ^ uVar40 ^ uVar38 ^
             *(ulonglong *)(lVar4 + -0x600);
  bVar18 = (byte)(uVar5 >> 0x10);
  uVar23 = uVar23 ^ *(ulonglong *)(lVar4 + -0x628);
  uVar30 = uVar23 >> ((bVar18 ^ 0x3f) & 0x3f);
  uVar23 = uVar23 << ((bVar18 ^ 0x1f) & 0x3f);
  uVar28 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(ulonglong *)(lVar4 + -0x510) = uVar30 ^ CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar23 ^ uVar28;
  uVar11 = DAT_182671798;
  uVar5 = DAT_182671594;
  *(undefined1 *)(lVar4 + -0x209) = **(undefined1 **)(lVar4 + -0xc80);
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0xa88) = (uVar23 | uVar30) ^ uVar31;
  uVar34 = DAT_182671788;
  uVar26 = (ulonglong)DAT_182671788;
  *(ulonglong *)(lVar4 + -0xa60) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x1d2226ab)) ^ uVar37 |
       CONCAT44(uVar33,uVar16) ^ 0xf773f5b3211768e4;
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(uVar34,uVar34);
  uVar28 = (ulonglong)DAT_182671584;
  uVar23 = (*(ulonglong *)(lVar4 + -0x898) ^ uVar40) -
           (CONCAT44(uVar5,DAT_18267159c) ^ 0x4ee384c75a7d0d5);
  *puVar20 = uVar23 ^ uVar36;
  uVar30 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671570 ^ 0x880b0df2)) =
       uVar23 - (*(ulonglong *)(lVar4 - (uVar28 ^ 0x39ef20d7)) ^ uVar31) ^ uVar24;
  uVar7 = DAT_182671734;
  uVar5 = DAT_182671568;
  uVar36 = CONCAT44(DAT_182671734,DAT_182671734);
  uVar28 = (CONCAT44(uVar8,DAT_18267158c) ^ 0x4231b238058fb309) +
           (uVar31 ^ *(ulonglong *)(lVar4 + -0xa88)) ^ uVar36;
  uVar23 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar28;
  uVar6 = DAT_182671748;
  uVar34 = uVar5 << 0x10 | uVar5 >> 0x10;
  uVar30 = *(ulonglong *)(lVar4 - (uVar30 ^ 0xe46dde9e)) ^ uVar29 ^ uVar28 ^ uVar36 ^ uVar37;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar30;
  uVar28 = CONCAT44(uVar6,uVar6);
  uVar26 = uVar30 >> 0x20 ^ uVar28 ^ uVar26;
  DAT_182671590 = uVar34;
  *(ulonglong *)(lVar4 + -0x670) = uVar26;
  uVar10 = DAT_182671794;
  bVar22 = (byte)(uVar5 >> 0x10);
  uVar30 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0x823b03ea)) ^ uVar29) <<
           ((bVar22 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar2 + -0x688) = uVar30 ^ uVar35;
  uVar6 = DAT_182671770;
  uVar30 = uVar30 | uVar28 ^ uVar26;
  uVar40 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x800) = uVar30 ^ uVar40;
  lVar2 = DAT_182671560;
  uVar41 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x2328123)) =
       (*(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x2328e33)) ^ uVar37) - uVar30 ^ uVar41;
  uVar30 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar2 + -0x240) =
       (CONCAT44(uVar5,uVar34) ^ 0x87a11e0b5af0d297) >>
       (((byte)uVar11 ^ *(byte *)(lVar2 + -0xa88)) & 0x3f);
  puVar15 = (ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0x823b0a9a));
  bVar18 = (byte)uVar5;
  *puVar15 = uVar30 ^ *(ulonglong *)(lVar2 + -0x110) ^ uVar38 ^ uVar24 ^
             *(ulonglong *)(lVar2 + -0x2a0);
  uVar26 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(lVar2 + -0x600) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x8a8)) >> ((bVar18 ^ 0x1b) & 0x3f) ^ uVar26;
  *(uint *)(lVar2 - (uVar23 ^ 0x232854f)) =
       (uVar34 ^ 0xcc49d2fe) << ((byte)*(undefined4 *)(lVar2 + -0x874) & 0x1f);
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x2328413)) =
       (uVar30 ^ *puVar15) << ((bVar18 ^ 0x1b) & 0x3f) ^ uVar28;
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0x823b0722)) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x628) | uVar26 ^ *(ulonglong *)(lVar2 + -0x600)) ^ uVar31;
  uVar6 = DAT_182671710;
  *(longlong *)(lVar2 + -0xa60) =
       -0x6e8d7ada7ad22bbe << (((byte)uVar7 ^ *(byte *)(lVar2 + -0x6d0)) & 0x3f);
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar24 = (*(ulonglong *)(lVar2 + -0x110) ^ uVar24) - (uVar31 ^ *(ulonglong *)(lVar2 + -0x510)) ^
           uVar29;
  uVar30 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar24;
  uVar28 = *(ulonglong *)(lVar2 + -0x318);
  uVar35 = uVar30 ^ uVar31 ^ uVar41 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x510);
  uVar26 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *(ulonglong *)(lVar3 + -0x898) = uVar35;
  uVar35 = uVar35 ^ uVar30;
  uVar31 = uVar35 >> ((bVar22 ^ 8) & 0x3f);
  *puVar20 = uVar31 ^ uVar26;
  uVar26 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar3 + -0x670) = uVar31 << 0x17;
  uVar7 = DAT_182671874;
  uVar35 = uVar35 << ((bVar21 ^ 0x8f) & 0x3f);
  uVar30 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0x1d8) = uVar35 ^ uVar26;
  uVar6 = DAT_18267178c;
  uVar35 = uVar35 | uVar31;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x688) = uVar35 ^ uVar31;
  uVar5 = DAT_18267174c;
  uVar26 = CONCAT44(uVar6,uVar6);
  uVar36 = (ulonglong)DAT_18267174c;
  uVar37 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar3 + -0xc08) = (uVar41 ^ uVar28) - uVar35 ^ uVar26;
  uVar28 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x81008b88)) =
       uVar37 ^ uVar29 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x800) ^ uVar24;
  uVar6 = DAT_182671824;
  uVar24 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar3 + -0x240) =
       ((ulonglong)(uVar5 >> 0x16) | uVar36 << 10) ^
       *(ulonglong *)(lVar3 - (uVar28 ^ 0xe46dd81e)) >> 0x16 ^ uVar24;
  uVar28 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x162f3e28)) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0xa88)) << 0x2a ^ uVar28;
  uVar7 = DAT_1826715a0;
  uVar6 = DAT_18267159c;
  uVar30 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *puVar17 = (*(ulonglong *)(lVar3 + -0x240) ^ uVar24 | *(ulonglong *)(lVar3 + -0x2a0) ^ uVar28) ^
             uVar30;
  lVar2 = DAT_182671560;
  uVar37 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar3 + -0x600) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0x162f3778)) ^ uVar29) -
       (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar30) ^ uVar37;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x5e6f7aa1)) =
       (CONCAT44(uVar6,uVar7) ^ 0x55fd23ad8ca87e16) >> (((byte)DAT_1826715b4 ^ 0x3e) & 0x3f);
  uVar35 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x96bf3efe)) =
       uVar26 ^ *(ulonglong *)(lVar3 + -0xc08) ^ *(ulonglong *)(lVar3 + -0x8a8) ^ uVar35 ^ uVar30;
  uVar29 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar3 + -0x6d0) =
       (*(ulonglong *)(lVar3 + -0x110) ^ uVar35) >> ((bVar13 ^ 0xa6) & 0x3f) ^ uVar29;
  uVar5 = DAT_18267156c;
  uVar36 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 + -0xa60) =
       CONCAT44(uVar34,DAT_18267156c) ^ 0xf8f7afdff67efaf7 | 0xe07305dee62af2e5;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x232872b)) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar35) << ((bVar22 ^ 0x20) & 0x3f) ^ uVar35;
  uVar16 = DAT_1826717f8;
  uVar8 = DAT_1826715ac;
  uVar34 = DAT_1826715a4;
  uVar28 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar24 = (ulonglong)DAT_1826715ac;
  uVar30 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x5e6f7411)) =
       (*(ulonglong *)(lVar2 + -0x510) ^ uVar35 | *(ulonglong *)(lVar2 + -0x6d0) ^ uVar29) ^ uVar28;
  uVar9 = DAT_1826715b0;
  *(ulonglong *)(lVar2 + -0x670) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0x782ea366)) ^ uVar26) -
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar28) ^ uVar39;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x23282bb)) =
       CONCAT44(uVar7,uVar9) ^ 0xfbbbbffbff9fdadf | 0x8b333cd8bc96da52;
  *(ulonglong *)(lVar2 + -0x1d8) =
       uVar31 ^ *(ulonglong *)(lVar2 + -0x600) ^ CONCAT44(uVar16,uVar16) ^ uVar37 ^
       *(ulonglong *)(lVar2 + -0x688);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x162f3f90)) =
       (CONCAT44(uVar7,uVar34) ^ 0xddcb7a11fb71f64d) >> ((bVar18 ^ 0x1d) & 0x3f);
  uVar24 = CONCAT44(DAT_182671614,DAT_182671614);
  uVar28 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671584 ^ 0x39ef225f)) =
       ((ulonglong)uVar16 << 0x14 | (ulonglong)(uVar16 >> 0xc)) ^
       *(ulonglong *)(lVar2 + -0x1d8) >> 0xc ^ uVar24;
  *(ulonglong *)(lVar2 + -0xa88) = (uVar28 ^ 0x1f3fea30) >> 3;
  uVar7 = DAT_18267172c;
  uVar23 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar2 + -0x240) =
       (*(ulonglong *)(lVar2 + -0x1d8) ^ CONCAT44(uVar16,uVar16)) << (((byte)uVar5 ^ 0xe4) & 0x3f) ^
       uVar23;
  uVar16 = DAT_182671840;
  uVar6 = DAT_182671694;
  uVar32 = CONCAT44(uVar7,uVar7);
  uVar31 = (ulonglong)DAT_182671840;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0x162f3ec8)) ^ uVar23 |
       *(ulonglong *)(lVar2 + -0x800) ^ uVar24) ^ uVar32;
  uVar24 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar14 ^ 0x96bf341e)) =
       (*(ulonglong *)(lVar2 + -0x600) ^ uVar37) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0x2a001ea2)) ^ uVar32) ^ uVar24;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x162f3aa0)) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0x823b0092)) ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x670) ^
       CONCAT44(uVar16,uVar16) ^ uVar32;
  bVar13 = (byte)DAT_182671594;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x2a0014aa)) =
       ((ulonglong)(uVar16 >> 0x19) | uVar31 << 7) ^
       *(ulonglong *)(lVar2 - (uVar36 ^ 0xa3008f8)) >> 0x19 ^ uVar25;
  uVar7 = DAT_1826717b4;
  uVar30 = (*(ulonglong *)(lVar2 + -0x628) ^ CONCAT44(uVar16,uVar16)) << ((bVar13 ^ 0x84) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa60) = uVar30 ^ CONCAT44(DAT_182671654,DAT_182671654);
  uVar6 = DAT_1826716a4;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar30 = uVar25 ^ *(ulonglong *)(lVar2 + -0x8a8) | uVar30;
  uVar14 = (ulonglong)DAT_1826715b4;
  uVar23 = CONCAT44(uVar34,DAT_1826715b4);
  uVar28 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar2 + -0x110) = uVar30 ^ uVar31;
  uVar23 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x670)) - (uVar23 ^ 0xafd95cf98c95a32);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar23 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x510) = uVar23 - uVar30 ^ uVar37;
  uVar28 = CONCAT44(uVar8,DAT_18267158c);
  *(ulonglong *)(lVar2 + -0xc08) =
       (CONCAT44(uVar9,uVar5) ^ 0xfac7235fbbb7d298) -
       (*(ulonglong *)(lVar2 - (uVar12 ^ 0x3c881ddf)) ^ uVar24);
  *puVar20 = (*(ulonglong *)(lVar2 - (uVar14 ^ 0x1c022b10)) ^ uVar31) -
             (uVar28 ^ 0x12ff8db576514230) ^ CONCAT44(uVar6,uVar6);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar33) * 4) = uVar27;
  return;
}



############ FUN_ 180f1e870 size=5732 ############

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

void FUN_180f1e870(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ushort uVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte bVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  
  uVar9 = _DAT_182671618;
  uVar16 = DAT_1826715a4;
  uVar10 = DAT_182671594;
  uVar14 = DAT_182671590;
  lVar7 = DAT_182671560;
  uVar43 = (ulonglong)DAT_182671594;
  uVar37 = (ulonglong)DAT_1826715a4;
  uVar52 = (ulonglong)DAT_182671590;
  uVar33 = DAT_1826715a4 | DAT_182671590;
  uVar29 = (DAT_182671594 << 0x10 | DAT_182671594 & 0xff00) << 8 | DAT_182671594 >> 8 & 0xff00 |
           DAT_182671594 >> 0x18;
  uVar6 = *(uint *)(&DAT_182611e78 + DAT_182671a18);
  uVar20 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_1826715a4 ^ 0xa11fefeb) + (longlong)DAT_182671a18) ^
           DAT_182671594;
  uVar36 = (ulonglong)_DAT_182671618;
  uVar45 = (ulonglong)uVar33;
  DAT_182671580 = uVar29;
  DAT_18267159c = uVar33;
  *(uint *)(DAT_182671560 + -0x754) = (DAT_182671590 ^ 0xa9ada403) + 0xc23b6faa;
  puVar1 = (ulonglong *)(lVar7 + -0x748);
  puVar2 = (ulonglong *)(lVar7 + -0x548);
  uVar31 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar25 = CONCAT44(DAT_182671874,DAT_182671874);
  puVar3 = (ulonglong *)(lVar7 + -0x400);
  puVar49 = (ulonglong *)(lVar7 + -0x270);
  uVar26 = CONCAT44(DAT_182671858,DAT_182671858);
  uVar34 = *(ulonglong *)(lVar7 - ((ulonglong)uVar33 ^ 0xff7fe98b)) ^ uVar25 ^ uVar31 ^ uVar30 ^
           *puVar1;
  *puVar3 = uVar34;
  uVar41 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *puVar49 = (uVar26 ^ *puVar2) + (uVar34 ^ uVar30) ^ uVar41;
  lVar7 = DAT_182671560;
  bVar48 = (byte)uVar10;
  uVar39 = (uVar30 ^ uVar34) << ((bVar48 ^ 0xe7) & 0x3f);
  uVar34 = CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar39 ^ CONCAT44(DAT_182671780,DAT_182671780);
  uVar12 = DAT_1826717e0;
  lVar8 = DAT_182671560;
  uVar26 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar33 ^ 0xff7febfb)) >> 0x20 ^ uVar36) >> 9;
  *(ulonglong *)(lVar7 + -0x3f0) = uVar26 ^ uVar34;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar8 - (uVar52 ^ 0xfe75ece0)) = (uVar39 | uVar26) ^ uVar34;
  uVar9 = _DAT_182671868;
  uVar40 = (ulonglong)_DAT_182671868;
  uVar46 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  uVar35 = (ulonglong)uVar29;
  *(ulonglong *)(lVar8 + -0x610) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar16 ^ 0xa11fece3)) ^ uVar46 ^ uVar34 ^ uVar41 ^
       *puVar49;
  uVar12 = DAT_1826715c4;
  puVar27 = (ulonglong *)(lVar8 - ((ulonglong)uVar16 ^ 0xa11fe9c3));
  puVar4 = (ulonglong *)(lVar8 + -0x670);
  *puVar27 = (CONCAT44(uVar29,uVar29) ^ 0xef776b151b5bd482) -
             (CONCAT44(uVar29,uVar10) ^ 0x2168f35cd1162ab4);
  uVar18 = DAT_1826717b0;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar34 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar16 ^ 0xa11feeeb)) ^ CONCAT44(uVar9,uVar9)) +
           (uVar31 ^ *puVar4) ^ uVar39;
  uVar26 = *(ulonglong *)(lVar8 + -0x110);
  *(ulonglong *)(lVar8 + -0x5c8) = uVar34;
  uVar36 = (uVar26 ^ CONCAT44(uVar9,uVar9)) << 0x28;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar36 ^ CONCAT44(uVar18,uVar18);
  lVar7 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671748,DAT_182671748);
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       ((ulonglong)(uVar9 >> 0x18) | uVar40 << 8) ^ uVar26 >> 0x18 ^ uVar31;
  uVar32 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *puVar1 = (*(ulonglong *)(lVar7 - (uVar35 ^ 0xf010c3d5)) ^ uVar31 | uVar36) ^ uVar32;
  uVar44 = (ulonglong)DAT_182671800;
  puVar22 = (ulonglong *)(lVar7 - ((ulonglong)uVar16 ^ 0xa11fea33));
  uVar36 = CONCAT44(DAT_182671800,DAT_182671800);
  *puVar2 = uVar39 ^ *puVar22 ^ 0x2cdf791631a4c5bc;
  uVar34 = *(ulonglong *)(lVar7 - ((ulonglong)uVar14 ^ 0xfe75e8b0)) ^ uVar36 ^ uVar32 ^ uVar39 ^
           uVar34;
  uVar31 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *puVar3 = uVar34;
  lVar8 = DAT_182671560;
  *(ulonglong *)(lVar7 - (uVar45 ^ 0xff7fe763)) = (uVar41 ^ *puVar49) + (uVar36 ^ uVar34) ^ uVar31;
  uVar12 = DAT_182671660;
  uVar26 = *puVar3;
  uVar40 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar8 + -0x3f0) = (uVar36 ^ *puVar3) << ((bVar48 ^ 0xf5) & 0x3f) ^ uVar40;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar10 ^ 0x6dc513e8)) =
       (uVar26 >> 0x20 ^ uVar44) >> 0x1b ^ uVar34;
  uVar42 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar8 + -0x638) =
       (*(ulonglong *)(lVar8 + -0x3f0) ^ uVar40 | uVar34 ^ *(ulonglong *)(lVar8 + -0x318)) ^ uVar42;
  uVar53 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  puVar28 = (ulonglong *)(lVar8 - (uVar37 ^ 0xa11fe98b));
  *puVar28 = *(ulonglong *)(lVar8 - (uVar45 ^ 0xff7fe9c3)) ^ *(ulonglong *)(lVar8 + -0x898) ^ uVar53
             ^ uVar42 ^ uVar31;
  *(uint *)(lVar8 - (uVar35 ^ 0xf010c6b9)) =
       (*(uint *)(lVar8 + -0x640) ^ DAT_182671760) * (uVar14 ^ 0x5eb506c6);
  lVar7 = DAT_182671560;
  uVar51 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  puVar23 = (ulonglong *)(lVar8 - (uVar43 ^ 0x6dc511e0));
  *puVar23 = (uVar46 ^ *(ulonglong *)(lVar8 + -0x610)) + (uVar39 ^ *(ulonglong *)(lVar8 + -0x5c8)) ^
             uVar51;
  uVar44 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar8 + -0x9f8) =
       (uVar46 ^ *(ulonglong *)(lVar8 + -0x610)) << (((byte)uVar14 ^ 0xdd) & 0x3f) ^ uVar44;
  uVar12 = DAT_1826717d0;
  uVar26 = (uVar46 ^ *(ulonglong *)(lVar8 + -0x610)) >> ((bVar48 ^ 0xeb) & 0x3f);
  *(ulonglong *)(lVar8 + -0x6b8) = uVar26 ^ CONCAT44(DAT_182671888,DAT_182671888);
  uVar34 = CONCAT44(uVar12,uVar12);
  *puVar2 = (*(ulonglong *)(lVar7 - (uVar37 ^ 0xa11fe603)) ^ uVar44 | uVar26) ^ uVar34;
  uVar26 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar34 = *(ulonglong *)(lVar7 - (uVar43 ^ 0x6dc515b8)) ^ *(ulonglong *)(lVar7 + -0x110) ^ uVar26 ^
           uVar34 ^ uVar51;
  *puVar1 = uVar34;
  uVar40 = CONCAT44(DAT_182671710,DAT_182671710);
  uVar34 = (uVar34 ^ uVar26) + (CONCAT44(uVar33,uVar10) ^ 0x24be6aaa4f3ff816);
  *puVar49 = uVar34 ^ uVar40;
  uVar18 = DAT_182671788;
  *puVar3 = (CONCAT44(uVar33,uVar29) ^ 0x65afeaf937eb7824) << (((byte)uVar33 ^ 0xda) & 0x3f);
  uVar12 = DAT_1826716d4;
  lVar7 = DAT_182671560;
  uVar26 = (CONCAT44(uVar10,uVar14) ^ 0x46b462d9f9ea59dc) +
           (*(ulonglong *)(DAT_182671560 + -0x898) ^ uVar31);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar26 ^ CONCAT44(uVar18,uVar18);
  bVar24 = (byte)uVar16;
  uVar39 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 - (uVar45 ^ 0xff7fec0b)) = uVar34 + uVar26 ^ uVar39;
  uVar36 = CONCAT44(DAT_182671690,DAT_182671690);
  *puVar27 = (*puVar49 ^ uVar40) << ((bVar24 ^ 0xe2) & 0x3f) ^ uVar36;
  lVar7 = DAT_182671560;
  uVar34 = (*puVar49 ^ uVar40) >> ((bVar24 ^ 0xdc) & 0x3f);
  puVar21 = (ulonglong *)(DAT_182671560 - (uVar43 ^ 0x6dc51680));
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar34 ^ CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar12 = DAT_182671724;
  lVar8 = DAT_182671560;
  *(ulonglong *)(lVar7 + -0x610) = *puVar21 ^ uVar53 | *(ulonglong *)(lVar7 + -0x9f8) ^ uVar44;
  uVar47 = CONCAT44(uVar12,uVar12);
  uVar34 = *(ulonglong *)(lVar7 + -0x638) ^ uVar36 | uVar34;
  uVar31 = uVar34 ^ uVar47;
  *(ulonglong *)(lVar7 + -0x6b8) = uVar31;
  uVar26 = *(ulonglong *)(lVar7 + -0x3f0);
  *puVar2 = uVar34 - (uVar36 ^ *puVar27);
  uVar50 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *puVar1 = uVar31 ^ uVar26 ^ uVar50 ^ uVar47 ^ uVar39;
  uVar12 = DAT_1826718cc;
  uVar26 = CONCAT44(DAT_182671664,DAT_182671664);
  *puVar3 = (*puVar4 ^ uVar53) + (CONCAT44(uVar10,uVar29) ^ 0x4456455837d3b35d) ^ uVar26;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar8 - (uVar52 ^ 0xfe75e760)) =
       (CONCAT44(uVar33,uVar16) ^ 0x1fee47a6acf27f78) + (*(ulonglong *)(lVar8 + -0x110) ^ uVar51) ^
       uVar34;
  uVar12 = DAT_18267179c;
  uVar36 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar40 = (*(ulonglong *)(lVar8 + -0x898) ^ uVar34) + (*puVar3 ^ uVar26) ^ uVar36;
  *(ulonglong *)(lVar8 + -0x318) = uVar40;
  bVar38 = (byte)(uVar10 >> 0x18);
  uVar34 = (*(ulonglong *)(lVar8 - (uVar35 ^ 0xf010c16d)) ^ uVar26) << ((bVar38 ^ 0x4c) & 0x3f);
  *puVar49 = uVar34 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_1826717f8;
  lVar7 = DAT_182671560;
  uVar31 = (*puVar3 ^ uVar26) >> ((bVar48 ^ 0xef) & 0x3f);
  uVar26 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar31 ^ CONCAT44(DAT_182671640,DAT_182671640);
  uVar34 = (uVar31 | uVar34) ^ uVar26;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 + -0x610) = uVar34;
  puVar27 = (ulonglong *)(lVar7 - (uVar52 ^ 0xfe75ea30));
  uVar52 = CONCAT44(DAT_182671704,DAT_182671704);
  *puVar27 = uVar34 ^ uVar31 ^ uVar26 ^ uVar36 ^ uVar40;
  uVar26 = *(ulonglong *)(lVar7 + -0x5c8);
  *puVar2 = (*(ulonglong *)(lVar7 + -0x5c8) ^ uVar31) + (*(ulonglong *)(lVar7 + -0x3f0) ^ uVar39) ^
            uVar52;
  uVar39 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(lVar7 + -0x638) = (uVar26 ^ uVar31) << 0x2e ^ uVar39;
  uVar26 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar7 + -0x6b8) =
       (*(ulonglong *)(lVar7 + -0x5c8) ^ uVar31) >> (((byte)DAT_18267158c ^ 2) & 0x3f) ^ uVar26;
  uVar15 = DAT_182671598;
  uVar34 = CONCAT44(DAT_182671884,DAT_182671884);
  *puVar4 = (*(ulonglong *)(lVar7 - (uVar37 ^ 0xa11fe943)) ^ uVar26 |
            *(ulonglong *)(lVar7 - (uVar35 ^ 0xf010c355)) ^ uVar39) ^ uVar34;
  uVar17 = DAT_1826715b4;
  *(ulonglong *)(lVar7 + -0x110) =
       (CONCAT44(uVar15,DAT_1826715ac) ^ 0xedce3f2c51dd322) -
       (CONCAT44(DAT_1826715b4,uVar16) ^ 0xc3143feaa73de3c6);
  uVar51 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671578 ^ 0x281db63b)) ^ *puVar28 ^ uVar34 ^
           uVar52;
  *(ulonglong *)(lVar7 + -0x898) = uVar51 ^ uVar47;
  *puVar3 = 0x826051ab9aff6b67;
  uVar9 = DAT_182671568;
  lVar7 = DAT_182671560;
  uVar34 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar40 = (*(ulonglong *)(DAT_182671560 - (uVar45 ^ 0xff7fe8b3)) ^ uVar50) +
           (uVar36 ^ *(ulonglong *)(DAT_182671560 + -0x318));
  *puVar49 = uVar40 ^ uVar34;
  uVar12 = DAT_182671784;
  uVar26 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar46 = (*(ulonglong *)(lVar7 - (uVar35 ^ 0xf010c225)) ^ uVar50) << ((bVar24 ^ 0xf7) & 0x3f);
  *(ulonglong *)(lVar7 + -0x9f8) = uVar46 ^ uVar26;
  lVar7 = DAT_182671560;
  uVar44 = CONCAT44(uVar12,uVar12);
  puVar21 = (ulonglong *)(DAT_182671560 - (uVar43 ^ 0x6dc51908));
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*puVar1 ^ uVar50) >> (((byte)uVar14 ^ 0xcc) & 0x3f) ^ uVar44;
  *(ulonglong *)(lVar7 + -0x3f0) = 0x6a0f75395b31b6f7 - (*puVar21 ^ uVar26);
  uVar26 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  uVar39 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar7 + -0x5c8) =
       (*(ulonglong *)(lVar7 - (uVar45 ^ 0xff7fe9eb)) ^ uVar44 | uVar46) ^ uVar26;
  uVar34 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671588 ^ 0xf351d71f)) ^ uVar39 ^ uVar26 ^
           uVar34 ^ *puVar22;
  *(ulonglong *)(lVar7 + -0x6b8) = uVar34;
  uVar18 = DAT_18267183c;
  lVar8 = DAT_182671560;
  uVar44 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  uVar46 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x2116ebb3)) ^ uVar52) + (uVar34 ^ uVar39) ^
           uVar44;
  uVar26 = *(ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(lVar7 + -0x110) = uVar46;
  uVar12 = DAT_18267157c;
  uVar43 = (uVar39 ^ uVar34) << ((bVar48 ^ 0xca) & 0x3f);
  uVar34 = CONCAT44(uVar17,DAT_182671574);
  *puVar4 = uVar43 ^ CONCAT44(uVar18,uVar18);
  uVar18 = DAT_1826716ac;
  *(ulonglong *)(lVar8 + -0x638) =
       (uVar34 ^ 0xcfe27e1bd0394389) + (CONCAT44(uVar10,DAT_1826715a0) ^ 0x7d57e1338bafb905);
  uVar34 = (uVar39 ^ uVar26) >> (((byte)uVar12 ^ 0xc9) & 0x3f);
  uVar26 = (ulonglong)DAT_18267156c;
  *puVar3 = uVar34 ^ CONCAT44(uVar18,uVar18);
  uVar34 = (uVar43 | uVar34) ^ uVar31;
  *(ulonglong *)(lVar8 + -0x318) = uVar34;
  *puVar1 = uVar34 ^ uVar30 ^ uVar44 ^ uVar46 ^ uVar31;
  uVar43 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar8 - (uVar26 ^ 0xe362992c)) = uVar51 + uVar40 ^ uVar43;
  uVar26 = (ulonglong)DAT_182671598;
  uVar31 = (*(ulonglong *)(lVar8 + -0x898) ^ uVar47) << 0x16;
  *(ulonglong *)(lVar8 + -0x9f8) = uVar31 ^ CONCAT44(DAT_18267163c,DAT_18267163c);
  uVar26 = (*(ulonglong *)(lVar8 - (uVar26 ^ 0xfffff767)) ^ uVar47) >>
           (((byte)uVar33 ^ 0xd1) & 0x3f);
  uVar39 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar8 + -0x610) = uVar26 ^ uVar25;
  uVar34 = (ulonglong)DAT_1826715ac;
  uVar26 = (uVar26 | uVar31) ^ uVar39;
  *(ulonglong *)(lVar8 + -0x5c8) = uVar26;
  uVar11 = DAT_182671588;
  uVar31 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar8 - (uVar34 ^ 0xeefb245e)) =
       uVar32 ^ uVar26 ^ *(ulonglong *)(lVar8 + -0x3f0) ^ uVar39 ^ uVar43;
  uVar40 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar8 + -0x638) =
       (uVar32 ^ *puVar2) + (uVar44 ^ *(ulonglong *)(lVar8 + -0x110)) ^ uVar40;
  uVar10 = DAT_18267156c;
  uVar44 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar8 - (uVar44 ^ 0xe3629c64)) =
       (CONCAT44(uVar16,uVar11) ^ 0xe37b9b4681bdaa43) -
       (CONCAT44(uVar9,uVar14) ^ 0x2bdcf0607efc8d56);
  uVar34 = (uVar32 ^ *puVar2) << 0x20;
  *puVar4 = uVar34 ^ CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar13 = DAT_18267158c;
  uVar26 = *(ulonglong *)(lVar8 - ((ulonglong)DAT_18267158c ^ 0x8a010258)) >> 0x20 ^
           (ulonglong)DAT_1826718a8;
  *puVar3 = uVar26 ^ CONCAT44(DAT_1826715d0,DAT_1826715d0);
  uVar18 = DAT_18267184c;
  uVar25 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar8 + -0x318) = (uVar26 | uVar34) ^ uVar25;
  uVar32 = CONCAT44(uVar18,uVar18);
  *puVar49 = *(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0xf351d677)) ^ uVar32 ^ uVar25 ^ uVar40 ^
             *(ulonglong *)(lVar8 + -0x638);
  *(ulonglong *)(lVar8 + -0x898) =
       CONCAT44(uVar13,uVar12) ^ uVar40 ^ *(ulonglong *)(lVar8 + -0x638) ^ 0x5acb448d3ed1b47;
  uVar18 = DAT_1826716e4;
  uVar25 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar8 + -0x9f8) =
       (*(ulonglong *)(lVar8 + -0x3f0) ^ uVar43) + (uVar30 ^ *puVar1) ^ uVar25;
  uVar19 = DAT_182671818;
  uVar39 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar8 + -0x610) =
       (*(ulonglong *)(lVar8 - ((ulonglong)DAT_1826715b4 ^ 0x75feffa7)) ^ uVar30) << 0x20 ^ uVar39;
  uVar26 = CONCAT44(uVar19,uVar19);
  uVar34 = (ulonglong)DAT_1826715a8;
  *puVar27 = (uVar30 ^ *puVar1) >> (((byte)DAT_1826715a0 ^ 0x3e) & 0x3f) ^ uVar26;
  uVar11 = DAT_182671570;
  uVar30 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar43 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar8 + -0x110) =
       (*(ulonglong *)(lVar8 + -0x5c8) ^ uVar26 | uVar39 ^ *(ulonglong *)(lVar8 + -0x610)) ^ uVar30;
  *(byte *)(lVar8 - ((ulonglong)uVar11 ^ 0xfffff3ad)) =
       *(byte *)(*(ulonglong *)(lVar8 - (uVar37 ^ 0xa11fea43)) ^ (ulonglong)DAT_182671604) ^
       (byte)DAT_1826717c0;
  uVar13 = DAT_18267174c;
  uVar26 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar39 = (ulonglong)DAT_18267174c;
  *(ulonglong *)(lVar8 - (uVar31 ^ 0xf351d3d7)) =
       *(ulonglong *)(lVar8 - (uVar35 ^ 0xf010c47d)) ^ uVar26 ^ uVar30 ^
       *(ulonglong *)(lVar8 + -0x9f8) ^ uVar25;
  *(uint *)(lVar8 + -0x3c8) = uVar11 ^ 0x5dcf899a | *(uint *)(lVar8 + -0x274);
  uVar37 = CONCAT44(uVar13,uVar13);
  *puVar2 = (*(ulonglong *)(lVar8 - (uVar34 ^ 0xad17ce32)) ^ uVar26) +
            (CONCAT44(uVar33,DAT_182671568) ^ 0x1fee47a62cfb7e78) ^ uVar37;
  *puVar4 = (CONCAT44(uVar17,uVar12) ^ 0x55037122bf044bfd) +
            (uVar40 ^ *(ulonglong *)(lVar8 + -0x638)) ^ uVar41;
  uVar13 = DAT_1826715b0;
  uVar26 = (ulonglong)DAT_182671598;
  *(undefined8 *)(lVar8 - ((ulonglong)DAT_1826715b0 ^ 0xfdcd72fe)) = 0;
  uVar12 = DAT_1826715cc;
  uVar34 = (ulonglong)DAT_182671584;
  uVar30 = CONCAT44(DAT_18267178c,DAT_18267178c);
  *(ulonglong *)(lVar8 + -0x318) =
       (*(ulonglong *)(lVar8 - (uVar26 ^ 0xfffffab7)) ^ uVar37) + (uVar41 ^ *puVar4) ^ uVar30;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xfffff767)) =
       (uVar37 ^ *puVar2) << ((bVar38 ^ 99) & 0x3f) ^ uVar31;
  uVar26 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0xcf3bcccb)) =
       (*puVar2 >> 0x20 ^ uVar39) >> 0x12 ^ uVar26;
  uVar12 = DAT_182671720;
  lVar7 = DAT_182671560;
  uVar37 = CONCAT44(DAT_182671834,DAT_182671834);
  *puVar1 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0xe3629244)) ^ uVar31 |
            *(ulonglong *)(DAT_182671560 + -0x3f0) ^ uVar26) ^ uVar37;
  uVar10 = DAT_1826716ec;
  uVar26 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar7 + -0x610) =
       *(ulonglong *)(lVar7 - (uVar44 ^ 0xe3629d94)) ^ *(ulonglong *)(lVar7 - (uVar35 ^ 0xf010c675))
       ^ CONCAT44(uVar12,uVar12) ^ uVar37 ^ uVar30;
  uVar12 = DAT_18267172c;
  uVar37 = (*(ulonglong *)(lVar7 - (uVar26 ^ 0x8a010560)) ^ uVar32) +
           (CONCAT44(uVar15,DAT_182671574) ^ 0x827a2da348f3a4e9);
  *(ulonglong *)(lVar7 + -0x5c8) = uVar37 ^ CONCAT44(uVar10,uVar10);
  uVar18 = DAT_18267181c;
  uVar26 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xfffff607)) ^ uVar25) +
           (CONCAT44(uVar16,uVar14) ^ 0xf106ff4209e1a1fa);
  *(ulonglong *)(lVar7 + -0x638) = uVar26 ^ CONCAT44(uVar12,uVar12);
  uVar25 = CONCAT44(uVar18,uVar18);
  *puVar3 = uVar26 + uVar37 ^ uVar25;
  *puVar23 = (CONCAT44(uVar9,uVar13) ^ 0xc1509117e86c153e) >>
             ((*(byte *)(lVar7 - (uVar34 ^ 0xcf3bcaf3)) ^ (byte)uVar10) & 0x3f);
  uVar12 = DAT_182671738;
  uVar26 = *(ulonglong *)(lVar7 + -0x898);
  uVar5 = *(ushort *)(lVar7 + -0x5c2);
  *puVar4 = (*(ulonglong *)(lVar7 + -0x5c8) ^ CONCAT44(uVar10,uVar10)) <<
            (((byte)DAT_1826715a0 ^ 0xe) & 0x3f) ^ uVar36;
  *puVar2 = (ulonglong)uVar5 ^ (ulonglong)(uVar10 >> 0x10) ^ uVar42;
  uVar34 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671578 ^ 0x281db083)) =
       (uVar31 ^ uVar26) - (CONCAT44(uVar11,uVar33) ^ 0x2dc035af40dc21aa);
  uVar26 = (*puVar4 ^ uVar36 | uVar42 ^ *puVar2) ^ uVar34;
  *puVar1 = uVar26;
  *puVar49 = CONCAT44(uVar12,uVar12) ^ *puVar3 ^ uVar26 ^ uVar34 ^ uVar25;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar20 * 4) = uVar6 ^ uVar29;
  return;
}



############ FUN_ 180f30a00 size=4077 ############

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

void FUN_180f30a00(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  ulonglong uVar11;
  uint uVar12;
  uint uVar13;
  uint *puVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  byte *pbVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte local_res20;
  
  uVar30 = DAT_1826715bc;
  uVar9 = DAT_18267159c;
  uVar8 = DAT_182671598;
  lVar5 = DAT_182671560;
  uVar31 = (ulonglong)DAT_18267159c;
  uVar26 = (ulonglong)DAT_182671598;
  uVar20 = DAT_182671598 - DAT_18267159c;
  uVar3 = *(uint *)(&DAT_182611e80 + DAT_182671a4c);
  uVar12 = *(uint *)(&DAT_182611e78 + DAT_182671a4c) ^ DAT_18267159c;
  uVar23 = DAT_182671598 ^ 0x90e664e4;
  bVar4 = (byte)DAT_18267159c;
  DAT_1826715a4 = uVar20;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267159c ^ 0x54e8484f)) =
       *(ulonglong *)(DAT_182671560 + -0xa0) >> (((byte)DAT_182671598 ^ 0xd3) & 0x3f);
  *(uint *)(lVar5 - ((ulonglong)uVar20 ^ 0x3bfe2a30)) =
       (*(uint *)(lVar5 + -0x844) ^ DAT_182671720) * (*(uint *)(lVar5 + -0x910) ^ DAT_18267186c) ^
       DAT_182671660;
  uVar24 = DAT_1826717a4;
  uVar13 = *(uint *)(lVar5 + -0x374) ^ DAT_182671734;
  uVar15 = *(uint *)(lVar5 + -0x968) ^ DAT_182671660;
  *(longlong *)(lVar5 + -0x240) = *(longlong *)(lVar5 + -0x6b8) - *(longlong *)(lVar5 + -0x80);
  uVar11 = CONCAT44(uVar8,DAT_1826715a8);
  uVar13 = uVar13 * uVar23 ^ DAT_1826716e0;
  *(uint *)(lVar5 + -0x874) = uVar13;
  uVar15 = uVar15 + (uVar13 ^ DAT_1826716e0);
  *(uint *)(lVar5 + -0x47c) = uVar15 ^ uVar30;
  uVar23 = uVar15 << (((byte)uVar20 ^ 0x55) & 0x1f);
  uVar15 = uVar15 >> ((bVar4 ^ 0xb4) & 0x1f);
  *(uint *)(lVar5 + -0x328) = uVar15 ^ DAT_1826716b4;
  uVar30 = DAT_182671624;
  uVar13 = (uVar15 | uVar23) ^ DAT_182671624;
  *(uint *)(lVar5 + -0x5cc) = uVar23 ^ uVar24;
  *(uint *)(lVar5 + -0x27c) = uVar13;
  puVar1 = (uint *)(lVar5 + -0x504);
  *(ulonglong *)(lVar5 + -0x898) = CONCAT44(uVar20,uVar9) ^ uVar11 ^ 0x8b29cb6ee624c1c8;
  uVar7 = DAT_18267179c;
  uVar21 = DAT_1826715b4;
  uVar23 = DAT_182671588;
  uVar35 = (ulonglong)DAT_182671588;
  uVar34 = (ulonglong)DAT_1826715b4;
  *puVar1 = (*(uint *)(lVar5 + -0x844) ^ DAT_182671720) + (*(uint *)(lVar5 + -0x3c8) ^ uVar30) ^
            DAT_182671848;
  uVar17 = uVar23 << 0x10 | uVar23 >> 0x10;
  puVar2 = (uint *)(lVar5 + -0x344);
  DAT_182671578 = uVar17;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x90e662c7)) =
       *(ulonglong *)(lVar5 - (uVar34 ^ 0xc589aada)) ^ CONCAT44(uVar7,uVar7) |
       CONCAT44(uVar20,uVar21) ^ 0xa838947b34c2859d;
  uVar24 = *puVar1 ^ DAT_1826716a0 ^ DAT_182671848;
  uVar11 = (ulonglong)DAT_182671690;
  *(uint *)(lVar5 + -0x3d4) = uVar24;
  uVar24 = uVar24 ^ DAT_18267171c ^ DAT_1826716a0;
  *puVar2 = *(uint *)(lVar5 - ((ulonglong)uVar17 ^ 0x132646fc)) ^ DAT_182671800 ^ uVar30;
  *(uint *)(lVar5 + -0x678) = uVar24;
  bVar4 = (byte)DAT_1826717f8;
  uVar13 = *(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0x44801062)) ^ DAT_18267180c ^ DAT_182671800;
  *(uint *)(lVar5 + -0x754) = uVar13;
  *(ulonglong *)(lVar5 + -0x248) = *(longlong *)(lVar5 + -0x8f0) + 6U ^ uVar11;
  *(byte *)(lVar5 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar35 ^ 0x4480116e)) ^ uVar11) ^ bVar4 ^
       (byte)DAT_182671694;
  uVar28 = DAT_182671740;
  uVar30 = DAT_1826716c8;
  lVar6 = DAT_182671560;
  uVar24 = (uint)(*(byte *)(lVar5 - ((ulonglong)uVar17 ^ 0x132648c1)) ^ bVar4);
  uVar13 = (uVar13 ^ DAT_18267180c) + (uVar23 ^ 0x4d7735f3) ^ DAT_182671630;
  *(uint *)(DAT_182671560 + -0x910) = uVar24 ^ DAT_182671740;
  *(uint *)(lVar6 + -0x374) = uVar13;
  uVar13 = DAT_182671570;
  lVar5 = DAT_182671560;
  uVar32 = (ulonglong)DAT_182671570;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar23 ^ 0x44801a4e)) =
       uVar24 << (((byte)(uVar23 >> 0x10) ^ 0x91) & 0x1f) ^ DAT_1826716fc;
  uVar24 = *(uint *)(lVar5 + -0x678) ^ DAT_18267171c;
  uVar27 = (*(uint *)(lVar5 + -0x374) ^ DAT_182671630) -
           (*(uint *)(lVar5 - ((ulonglong)uVar17 ^ 0x13264de8)) ^ DAT_1826716fc);
  *(uint *)(lVar5 + -0x874) = uVar27 ^ uVar30;
  uVar11 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar5 + -0x270) =
       *(longlong *)(lVar5 + -0x80) - (CONCAT44(uVar17,uVar8) ^ 0x53b364cfd8fbb3d2);
  uVar15 = DAT_182671584;
  uVar36 = (ulonglong)DAT_182671584;
  *(uint *)(lVar5 - (uVar11 ^ 0x4080047e)) = uVar24 * uVar27 ^ DAT_182671878;
  lVar6 = DAT_182671560;
  *(uint *)(lVar5 + -0x5cc) = (uVar23 ^ 0x57728e42) * (uVar13 ^ 0x7b1777a8);
  uVar24 = DAT_182671568;
  *(uint *)(lVar6 + -0x328) =
       (*(uint *)(lVar5 - ((ulonglong)uVar20 ^ 0x3bfe2a48)) ^ uVar28) * (DAT_182671568 ^ 0x99964bc8)
       ^ DAT_1826715ec;
  uVar22 = DAT_182671714;
  uVar16 = DAT_1826716f4;
  uVar28 = DAT_182671594;
  lVar5 = DAT_182671560;
  local_res20 = (byte)uVar23;
  uVar18 = (ulonglong)DAT_182671594;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a8 ^ 0x9300eb2c)) =
       *(ulonglong *)(lVar6 - (uVar26 ^ 0x90e66c67)) >> ((local_res20 ^ 6) & 0x3f);
  uVar25 = (*(uint *)(lVar5 - ((ulonglong)uVar24 ^ 0x999648e6)) ^ DAT_1826715ec) +
           (*(uint *)(lVar5 - (uVar31 ^ 0x54e845db)) ^ DAT_182671878);
  *(uint *)(lVar5 + -0x844) = uVar25 ^ uVar16;
  uVar27 = DAT_182671638;
  lVar6 = DAT_182671560;
  uVar30 = *(uint *)(lVar5 + -0x844);
  uVar25 = uVar25 << (((byte)uVar28 ^ 0xba) & 0x1f) ^ DAT_1826715e8;
  uVar19 = (ulonglong)DAT_182671638;
  *puVar1 = uVar25;
  uVar25 = uVar25 ^ DAT_1826715e8;
  uVar16 = (uVar30 ^ uVar16) >> 0x13 ^ DAT_182671864;
  *(uint *)(lVar6 + -0x27c) = uVar16;
  uVar30 = DAT_182671580;
  uVar11 = (ulonglong)DAT_1826718b4;
  *(uint *)(lVar6 - (uVar26 ^ 0x90e6672b)) = (uVar16 ^ DAT_182671864 | uVar25) ^ uVar22;
  *puVar2 = (*(uint *)(lVar6 - ((ulonglong)uVar13 ^ 0x568949e2)) ^ uVar27) +
            (*(uint *)(lVar6 + -0x274) ^ DAT_1826718cc) ^ DAT_182671728;
  puVar14 = (uint *)(*(longlong *)(lVar6 - ((ulonglong)uVar30 ^ 0x7efcfbe7)) +
                    ((CONCAT44(uVar8,DAT_182671574) ^ 0x90e664ff07114c00) * 5 +
                    (CONCAT44(uVar9,uVar21) ^ 0x54e841a7c589a058)) * 4);
  uVar13 = *(uint *)(lVar6 + -0x3d4) ^ DAT_1826717b4;
  *(ulonglong *)(lVar6 + -0xc98) = (ulonglong)puVar14 ^ uVar11;
  *puVar14 = uVar13 ^ uVar22;
  puVar14 = (uint *)(lVar6 - (uVar34 ^ 0xc589a70e));
  *puVar14 = *puVar2 ^ DAT_182671858 ^ DAT_182671728;
  uVar13 = *(uint *)(lVar6 + -0x754) ^ DAT_18267177c ^ DAT_182671858;
  *(uint *)(lVar6 + -0x374) =
       *(uint *)(lVar6 - ((ulonglong)DAT_182671590 ^ 0xfffffc2b)) ^ DAT_182671608 ^ uVar22;
  uVar27 = DAT_18267181c;
  uVar11 = (ulonglong)DAT_18267181c;
  *(uint *)(lVar6 - ((ulonglong)uVar24 ^ 0x999642a6)) = uVar13;
  uVar13 = *(uint *)(lVar6 + -0x968) ^ DAT_182671894 ^ DAT_18267177c;
  *(uint *)(lVar6 + -0x678) =
       *(uint *)(lVar6 - ((ulonglong)uVar30 ^ 0x7efcf29b)) ^ uVar27 ^ DAT_182671608;
  *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0x5ff967c3)) = uVar13;
  uVar21 = DAT_182671684;
  *(byte *)(lVar6 - (uVar34 ^ 0xc589a01b)) =
       *(byte *)(*(ulonglong *)(lVar6 + -0xb48) ^ uVar11) ^ (byte)DAT_182671694;
  uVar27 = *(uint *)(lVar6 + -0x678) ^ DAT_182671750 ^ uVar27;
  uVar21 = uVar21 ^ DAT_182671894;
  *(uint *)(lVar6 + -0x5cc) = uVar27;
  uVar16 = DAT_1826718a0;
  uVar8 = DAT_1826715b0;
  uVar13 = DAT_1826715ac;
  uVar7 = DAT_18267158c;
  uVar30 = DAT_18267157c;
  uVar34 = (ulonglong)_DAT_182671868;
  uVar21 = uVar21 ^ *(uint *)(lVar6 + -0x874);
  uVar27 = uVar27 ^ DAT_182671718 ^ DAT_182671750;
  uVar33 = (ulonglong)DAT_1826718a0;
  uVar22 = (DAT_182671718 ^ uVar27) + (uVar15 ^ 0xa9f1b69d) ^ DAT_182671744;
  uVar11 = CONCAT44(DAT_1826715ac,DAT_1826715ac);
  *(uint *)(lVar6 + -0x910) = uVar21;
  *(uint *)(lVar6 + -0x47c) = uVar27;
  *(ulonglong *)(lVar6 + -0x868) =
       (CONCAT44(uVar30,uVar20) ^ 0xb0cd2a7c3bfe2349) + (uVar11 ^ 0x3a5f3ce83a5f3ce8) * 0x20 +
       *(longlong *)(lVar6 + -0x8f0) ^ uVar34;
  *(byte *)(lVar6 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a8 ^ 0x9300e8b4)) ^ uVar34) ^
       (byte)uVar16 ^ (byte)DAT_182671694;
  uVar11 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar6 + -0x8a8) =
       (CONCAT44(uVar7,uVar23) ^ 0x4a5759f4ad203b7b) -
       (CONCAT44(uVar17,uVar24) ^ 0x44fe24a1b627cfa4);
  uVar25 = (uint)*(byte *)(lVar6 - (uVar11 ^ 0x3bfe2f19)) ^ uVar16 & 0xff;
  uVar30 = uVar25 ^ DAT_182671658;
  *(uint *)(lVar6 + -0x844) = uVar22;
  *(uint *)(lVar6 + -0x328) = uVar30;
  uVar27 = uVar25 << (((byte)uVar8 ^ 0xdf) & 0x1f) ^ DAT_182671848;
  *puVar1 = uVar27;
  uVar30 = _DAT_18267188c;
  uVar23 = DAT_182671684;
  uVar24 = DAT_1826715a0;
  uVar22 = (uVar22 ^ DAT_182671744) - (uVar27 ^ DAT_182671848) ^ DAT_1826716d8;
  uVar34 = (ulonglong)DAT_1826715a0;
  uVar21 = uVar21 ^ DAT_182671684;
  *(byte *)(lVar6 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715ac ^ 0x3a5f36c8)) ^ uVar19) ^
       (byte)DAT_182671694;
  *(uint *)(lVar6 + -0x27c) = uVar22;
  lVar5 = DAT_182671560;
  uVar22 = uVar22 ^ DAT_1826716d8;
  uVar11 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar6 + -0x548) =
       (CONCAT44(uVar15,DAT_182671580) ^ 0xd9e7bfaa6a36f655) <<
       ((byte)*(undefined8 *)(lVar6 - (uVar34 ^ 0xaadd762e)) & 0x3f);
  uVar27 = DAT_18267174c;
  uVar16 = DAT_1826715a8 ^ 0x9300e0cd;
  *(uint *)(lVar5 + -0x964) = uVar21 * uVar22 ^ DAT_18267174c;
  *(uint *)(lVar5 - (uVar11 ^ 0x7114f44)) = uVar25 * uVar16 ^ uVar30;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x90e66527)) =
       *(ulonglong *)(lVar5 + -0x2a0) >> (((byte)uVar7 ^ 200) & 0x3f);
  uVar21 = DAT_182671738;
  bVar4 = (byte)DAT_18267156c;
  *(uint *)(lVar5 - (uVar32 ^ 0x568947d2)) =
       (*(uint *)(lVar5 - (uVar31 ^ 0x54e848c3)) ^ uVar27) + (uVar30 ^ *puVar2) ^ DAT_182671738;
  uVar30 = DAT_1826715ac;
  uVar22 = *(uint *)(lVar5 + -0x754) ^ uVar21;
  uVar16 = uVar22 << ((bVar4 ^ 0xf) & 0x1f) ^ DAT_182671850;
  *(uint *)(lVar5 + -0x374) = uVar16;
  lVar6 = DAT_182671560;
  uVar25 = (*puVar14 ^ uVar21) >> (((byte)uVar30 ^ 0xfb) & 0x1f) ^ DAT_1826716e0;
  uVar16 = uVar16 ^ DAT_182671850;
  uVar30 = DAT_182671568 ^ 0x9d7d5e5c;
  uVar21 = DAT_182671898 ^ DAT_182671854;
  uVar11 = (ulonglong)DAT_18267157c;
  uVar34 = CONCAT44(uVar7,DAT_18267157c);
  *(uint *)(lVar5 + -0x678) = uVar25;
  uVar16 = (uVar25 ^ DAT_1826716e0 | uVar16) ^ DAT_182671854;
  *(uint *)(lVar5 + -0x5cc) = uVar30 * uVar22;
  *(uint *)(lVar5 + -0x874) = uVar16;
  uVar30 = (*(uint *)(lVar5 - (uVar18 ^ 0x5ff96c7f)) ^ DAT_182671624) +
           (*(uint *)(lVar5 + -0x910) ^ uVar23) ^ uVar23;
  *(uint *)(lVar5 + -0x47c) = uVar30;
  *(uint *)(lVar5 + -0x844) = uVar30 ^ DAT_182671828 ^ uVar23;
  *(uint *)(lVar5 - ((ulonglong)uVar24 ^ 0xaadd715a)) = uVar21 ^ uVar16;
  uVar23 = DAT_18267175c;
  bVar4 = (byte)DAT_182671620;
  *(uint *)(DAT_182671560 - (uVar32 ^ 0x568942fa)) =
       *(uint *)(lVar5 + -0x844) ^ DAT_18267175c ^ DAT_182671828;
  *(uint *)(lVar6 + -0x328) =
       *(uint *)(DAT_182671560 - (uVar36 ^ 0xa006954c)) ^ _DAT_1826715dc ^ DAT_182671898;
  *(ulonglong *)(lVar6 + -0xd48) =
       (uVar34 ^ 0x2a7cb0cdb0cd2a7c) * 0x20 + (CONCAT44(uVar13,uVar28) ^ 0x3a5f3ce85ff96fab) +
       *(longlong *)(lVar6 + -0x8f0) ^ uVar33;
  bVar10 = (byte)DAT_182671694;
  *(byte *)(lVar6 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar6 - (uVar26 ^ 0x90e669b7)) ^ uVar33) ^ bVar4 ^
       (byte)DAT_182671694;
  uVar28 = DAT_1826717b0;
  lVar5 = DAT_182671560;
  *(uint *)(lVar6 - ((ulonglong)uVar17 ^ 0x132647c4)) =
       (*(byte *)(lVar6 - (uVar11 ^ 0xb0cd263d)) ^ bVar4) ^ DAT_1826717b0;
  uVar21 = DAT_18267189c;
  uVar13 = DAT_1826715b4;
  uVar16 = *(uint *)(lVar6 + -0x328) ^ _DAT_1826715dc;
  uVar30 = *(uint *)(lVar5 + -0x964);
  uVar28 = uVar28 ^ *puVar2;
  *(ulonglong *)(lVar6 + -0xa60) =
       (CONCAT44(uVar8,uVar24) ^ 0x8908c3ea79fcd9dd) <<
       ((byte)*(undefined8 *)(lVar6 + -0x8a8) & 0x3f);
  uVar24 = uVar16 + (uVar13 ^ 0xcc7e868f) ^ DAT_182671800;
  *(uint *)(lVar6 + -0x374) = uVar24;
  uVar16 = uVar28 * 0x1c ^ DAT_1826715fc;
  uVar22 = (uVar24 ^ DAT_182671800) + uVar28 * -0x20000 ^ DAT_1826716dc;
  uVar24 = *(uint *)(lVar5 + -0x27c);
  *(uint *)(lVar5 + -0x47c) = uVar16;
  uVar16 = uVar16 ^ DAT_1826715fc;
  *(uint *)(lVar5 + -0x754) = uVar22;
  uVar22 = uVar22 ^ DAT_1826716dc;
  uVar11 = *(ulonglong *)(lVar5 + -0xd48);
  *(uint *)(lVar6 + -0x678) = uVar28 * 0x20000 ^ uVar21;
  uVar34 = *(ulonglong *)(lVar6 + -0x510) | *(ulonglong *)(lVar5 + -0x1f0);
  uVar24 = uVar22 * (uVar24 ^ uVar23) ^ DAT_1826717e4;
  *(uint *)(lVar5 + -0x910) = uVar24;
  uVar16 = uVar16 + (uVar24 ^ DAT_1826717e4);
  *(ulonglong *)(lVar5 + -0xc08) = uVar34;
  *(uint *)(lVar5 + -0x5cc) = (uVar27 ^ uVar30) + uVar28 * 0x20000;
  *(byte *)(lVar5 + -0x41) = *(byte *)(uVar11 ^ uVar33) ^ bVar10;
  uVar24 = DAT_182671808;
  uVar30 = DAT_182671588;
  *(uint *)(lVar5 + -0x874) = uVar16 ^ DAT_182671808;
  uVar30 = uVar16 << (((byte)uVar30 ^ 0x2b) & 0x1f) ^ DAT_182671740;
  *(ulonglong *)(lVar5 + -0x3f0) = uVar34 >> ((byte)uVar34 & 0x3f);
  *(uint *)(lVar5 + -0x844) = uVar30;
  uVar30 = DAT_1826715ac;
  uVar11 = (ulonglong)DAT_182671574;
  *(uint *)(lVar5 - ((ulonglong)DAT_1826715ac ^ 0x3a5f39ec)) =
       (uVar24 ^ *(uint *)(lVar5 + -0x874)) >> (((byte)DAT_1826715a4 ^ 0x4b) & 0x1f) ^
       _DAT_182671610;
  uVar24 = (*(uint *)(lVar5 - (uVar11 ^ 0x7114444)) ^ DAT_182671740 | *puVar1 ^ _DAT_182671610) ^
           DAT_1826715d4;
  uVar23 = (*(uint *)(lVar5 + -0x27c) ^ uVar23) + (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624) ^
           DAT_1826716f4;
  *(uint *)(lVar5 + -0x374) = uVar23;
  uVar23 = uVar23 ^ DAT_1826716c4 ^ DAT_1826716f4;
  *(uint *)(lVar5 + -0x328) = uVar24;
  uVar24 = DAT_1826717f0;
  *(uint *)(lVar5 - (uVar35 ^ 0x448016ea)) = uVar23;
  uVar28 = *(uint *)(lVar5 + -0x328) ^ DAT_1826715d4 ^ DAT_182671660;
  uVar23 = *(uint *)(lVar5 + -0x5cc) ^ DAT_1826718b0 ^ DAT_1826716c4;
  uVar24 = uVar24 ^ uVar28 ^ DAT_182671660;
  *(uint *)(lVar5 + -0x964) = uVar28;
  uVar11 = (ulonglong)DAT_18267156c;
  *(uint *)(lVar5 + -0x678) = uVar23;
  *(uint *)(lVar5 - (uVar11 ^ 0x40800756)) = uVar24;
  bVar4 = (byte)DAT_182671760;
  pbVar29 = (byte *)((CONCAT44(uVar15,DAT_1826715a8) ^ 0xa00690489300e0dc) * 0x20 +
                     (CONCAT44(uVar9,DAT_182671590) ^ 0x54e841a7fffffff8) +
                    *(longlong *)(lVar5 + -0x8f0));
  *(ulonglong *)(lVar5 + -0xc38) = (ulonglong)pbVar29 ^ (ulonglong)DAT_1826718bc;
  uVar24 = DAT_18267173c;
  bVar10 = *pbVar29 ^ bVar4 ^ bVar10;
  *(byte *)(lVar5 + -0xc41) = bVar10;
  *puVar2 = (bVar4 ^ bVar10) ^ uVar24;
  *(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x908649de)) =
       (*(uint *)(lVar5 + -0x754) ^ DAT_1826717f0) + (uVar30 ^ 0x33a81a3d) ^ DAT_182671640;
  uVar15 = *(uint *)(lVar5 + -0x910) ^ DAT_182671640;
  *(uint *)(lVar5 + -0x47c) = (uVar24 ^ *puVar2) << (((byte)uVar13 ^ 0x4b) & 0x1f) ^ DAT_18267187c;
  uVar30 = *(uint *)(lVar5 + -0x678) ^ DAT_1826718b0;
  uVar15 = uVar15 - (*(uint *)(lVar5 - (uVar26 ^ 0x90e66083)) ^ DAT_18267187c) ^ DAT_182671600;
  *(uint *)(lVar5 + -0x874) = uVar15;
  uVar13 = DAT_1826715a4 ^ 0x3bfe235f;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671580 ^ 0x7efcf9ab)) =
       (uVar15 ^ DAT_182671600) * uVar30 ^ DAT_182671758;
  *puVar1 = (uVar24 ^ *puVar2) * uVar13 ^ DAT_182671650;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar3 ^ uVar20) * 4) = uVar12;
  return;
}



############ FUN_ 180e8a9b0 size=4041 ############

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

void FUN_180e8a9b0(void)

{
  longlong lVar1;
  uint uVar2;
  longlong lVar3;
  undefined8 uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  undefined4 uVar10;
  int iVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  longlong *plVar19;
  uint uVar20;
  uint uVar21;
  longlong *plVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  longlong *plVar33;
  undefined8 *puVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte local_90;
  
  iVar11 = DAT_182671898;
  uVar15 = DAT_182671768;
  iVar9 = DAT_1826716a4;
  uVar16 = DAT_1826715a8;
  uVar7 = DAT_182671594;
  lVar1 = DAT_182671560;
  uVar40 = (ulonglong)DAT_182671594;
  uVar35 = DAT_182671594 ^ DAT_1826715a8;
  uVar36 = (ulonglong)uVar35;
  uVar25 = DAT_1826716a4 * DAT_182671898;
  uVar13 = DAT_182671768 >> 0x18;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_182671b44);
  uVar12 = *(uint *)(&DAT_182611e80 + DAT_182671b44) ^ DAT_1826715a8;
  uVar37 = (ulonglong)DAT_1826715a8;
  uVar30 = CONCAT44(DAT_182671730,DAT_182671730);
  uVar38 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  DAT_18267157c = uVar35;
  *(ulonglong *)(CONCAT44(DAT_1826716f4,DAT_1826716f4) ^ *(ulonglong *)(DAT_182671560 + -0x230)) =
       uVar38 ^ uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x898);
  uVar31 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(lVar1 + -0x240) =
       CONCAT44(uVar7,uVar7) ^ uVar31 ^ *(ulonglong *)(lVar1 + -0x6b8) ^ 0x933c5d538bf0312f;
  uVar10 = DAT_182671750;
  DAT_182671640 = ((uVar13 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar39 = CONCAT44(DAT_182671634,DAT_182671634);
  uVar26 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xf21d4cb8)) =
       *(ulonglong *)
        (CONCAT44(DAT_182671824,DAT_182671824) ^ *(ulonglong *)(DAT_182671560 + -0xab8)) ^ uVar26 ^
       uVar39;
  lVar1 = DAT_182671560;
  *(ulonglong *)(CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(DAT_182671560 + -0x178)) =
       CONCAT44(uVar16,uVar35) ^ 0x20470d39be5b0312;
  *(ulonglong *)(lVar1 + -0x240) = (uVar38 ^ *(ulonglong *)(lVar1 + -0x898)) << 6;
  uVar23 = CONCAT44(uVar15,uVar15);
  uVar32 = CONCAT44(iVar9,iVar9);
  uVar24 = CONCAT44(uVar7,uVar35);
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0x4d678457)) =
       *(ulonglong *)(lVar1 + -0x1f0) ^ uVar23 ^ uVar26 ^ uVar31 ^ *(ulonglong *)(lVar1 + -0x6b8);
  lVar1 = DAT_182671560;
  uVar13 = uVar25 & 0xff;
  DAT_1826717a4 = ((uVar25 * 0x100 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar27 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar31 = uVar27 ^ uVar23 ^ *(ulonglong *)(DAT_182671560 + -0x8a8);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar31;
  local_90 = (byte)(uVar15 >> 0x18);
  uVar28 = CONCAT44(iVar11,iVar11);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar7 ^ 0x4d678d0f)) = uVar32 ^ uVar31 ^ uVar27;
  *(longlong *)(lVar1 + -0x5c8) =
       -0x708011f85555dbf1 << ((local_90 ^ *(byte *)(lVar1 + -0x6b8)) & 0x3f);
  plVar22 = (longlong *)(lVar1 - (uVar37 ^ 0xf21d4cc0));
  *(ulonglong *)(lVar1 + -0x30) = *plVar22 + 8 + (uVar24 ^ 0x4d678cffbf7ac6fb) * 8 ^ uVar28;
  *(uint *)(lVar1 + -0x968) =
       (uVar7 ^ 0x61a2b58f) + *(int *)(lVar1 - ((ulonglong)uVar7 ^ 0x4d6785ef));
  *(ulonglong *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar35 ^ 0xbf7ac6cf)) ^ uVar28) =
       *(ulonglong *)(lVar1 + -0x1f0) ^ uVar32 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x6b8) =
       (uVar38 ^ *(ulonglong *)(lVar1 + -0x898)) << (((byte)uVar35 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar1 + -0x178) =
       *(longlong *)(lVar1 + -0x10) +
       ((CONCAT44(uVar16,uVar7) ^ 0xf21d4a004d678cff) +
       (CONCAT44(uVar16,uVar16) ^ 0xf21d4a00f21d4a00) * 4) * 8;
  *(undefined8 *)(lVar1 + -0x10) = 0x81f5b90b196e782c;
  uVar13 = DAT_182671574;
  uVar31 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar7 ^ 0x4d678647)) =
       (uVar24 ^ 0x4d678cffbf7ac6ff) * 0x20 + *(longlong *)(lVar1 + -0x7e0);
  *(undefined8 *)(lVar1 + -0x7e0) = 0x9e5496a1688694b2;
  uVar14 = uVar13 << 0x10 | uVar13 >> 0x10;
  uVar32 = (ulonglong)uVar14;
  puVar29 = (ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x8fddd6f7));
  DAT_1826715b4 = uVar14;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0xdd8f8fad)) = *puVar29;
  puVar18 = (ulonglong *)(lVar1 - ((ulonglong)uVar13 ^ 0xdd8f8a25));
  *puVar29 = *puVar18;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0xdd8f8955)) =
       *(ulonglong *)(CONCAT44(DAT_18267169c,DAT_18267169c) ^ *(ulonglong *)(lVar1 + -0x4a0)) ^
       uVar39;
  lVar3 = *(longlong *)(lVar1 + -0x70);
  *(longlong *)(lVar1 + -0x5f8) = lVar3;
  *(ulonglong *)(lVar1 + -0x4a0) = *puVar29;
  *(undefined8 *)(lVar1 + -0x70) = *(undefined8 *)(lVar1 + -0xab8);
  *(undefined8 *)(lVar1 + -0x688) = 0x72afcb62bf2c27f6;
  *(longlong *)(lVar1 + -0xb78) = lVar3;
  *(ulonglong *)(lVar1 + -0xa60) = CONCAT44(uVar13,uVar14) ^ 0x8d0020058811640 | 0xc52f1cfca57ee8be;
  plVar33 = (longlong *)(lVar1 - (uVar32 ^ 0x8fddddff));
  *(longlong *)(lVar1 + -0x220) = *plVar33;
  *(longlong *)(lVar1 + -0x70) = lVar3;
  lVar1 = (CONCAT44(uVar13,uVar13) ^ 0xdd8f8fdddd8f8fdc) * 8;
  *(longlong *)(lVar5 + -0xb78) = lVar1 + lVar3;
  plVar19 = (longlong *)(lVar5 - ((ulonglong)uVar13 ^ 0xdd8f8dfd));
  *(longlong *)(lVar5 + -0x70) = *plVar19 + 8;
  *plVar19 = *plVar33;
  *(undefined8 *)(lVar5 + -0x70) = *(undefined8 *)(lVar5 + -0xb78);
  *(undefined8 *)(lVar5 + -0xb78) = *(undefined8 *)(lVar5 + -0x220);
  *(longlong *)(lVar5 - ((ulonglong)uVar14 ^ 0x8fddd98f)) =
       0x2c114e0b2f44ae8a - *(longlong *)(lVar5 + -0x5c8);
  *(longlong *)(lVar5 + -0x70) =
       *(longlong *)(lVar5 + -0x70) + (CONCAT44(uVar35,uVar16) ^ 0xbf7ac6fff21d4a01) * 8;
  *puVar29 = *(longlong *)(lVar5 + -0xb78) + (CONCAT44(uVar14,uVar13) ^ 0x8fdddd8fdd8f8fdc) * 8;
  uVar4 = *(undefined8 *)(lVar5 + -0x70);
  *(undefined8 *)(lVar5 + -0x220) = uVar4;
  *(undefined8 *)(lVar5 + -0x70) = *(undefined8 *)(lVar5 + -0xb78);
  *(undefined8 *)(lVar5 + -0xb78) = uVar4;
  uVar4 = **(undefined8 **)(lVar5 - ((ulonglong)uVar13 ^ 0xdd8f84a5));
  *(undefined8 *)(lVar5 + -0x5c8) = uVar4;
  uVar25 = DAT_182671710 ^ (uint)uVar4;
  *(ulonglong *)(lVar5 - (uVar36 ^ 0xbf7ac2ff)) =
       (uVar23 ^ *(ulonglong *)(lVar5 + -0x8a8)) << ((byte)*(undefined8 *)(lVar5 + -0xa60) & 0x3f);
  lVar5 = DAT_182671560;
  uVar15 = uVar25 & 0xff;
  DAT_182671710 = ((uVar25 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar31 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)*plVar33 = *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0xbf7ac337)) ^ uVar31;
  puVar34 = (undefined8 *)(lVar5 - (uVar36 ^ 0xbf7ac4df));
  *puVar34 = *(undefined8 *)(lVar5 + -0x178);
  lVar3 = *(longlong *)(lVar5 + -0x220);
  *(longlong *)(lVar5 + -0x220) = *(longlong *)(lVar5 + -0xab8);
  *(longlong *)(lVar5 + -0xb78) = *(longlong *)(lVar5 + -0xab8) + 8;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0xf21d4820)) =
       lVar3 + (CONCAT44(uVar7,uVar13) ^ 0x4d678cffdd8f8fdc) * 8;
  lVar3 = *(longlong *)(lVar5 + -0x220);
  *(longlong *)(lVar5 + -0x880) = lVar3;
  uVar4 = *(undefined8 *)(lVar5 - (uVar36 ^ 0xbf7ac047));
  *(undefined8 *)(lVar5 + -0x220) = *(undefined8 *)(lVar5 + -0xb78);
  *(ulonglong *)(lVar5 + -0xa60) = (uVar24 ^ 0x8175acbdeb82cac4) << ((byte)uVar4 & 0x3f);
  lVar6 = DAT_182671560;
  plVar19 = (longlong *)(lVar5 - (uVar40 ^ 0x4d678787));
  *plVar19 = lVar3;
  *(undefined8 *)(lVar6 + -0x880) = *(undefined8 *)(lVar6 + -0x220);
  *(ulonglong *)(DAT_182671560 + -0x400) =
       (CONCAT44(DAT_182671740,DAT_182671740) ^ *(ulonglong *)(lVar6 + -0x2a0)) <<
       (((byte)uVar16 ^ 0x16) & 0x3f);
  lVar3 = DAT_182671560;
  plVar33 = (longlong *)(DAT_182671560 - (uVar40 ^ 0x4d67847f));
  puVar29 = (ulonglong *)(DAT_182671560 + -0x688);
  *(longlong *)(DAT_182671560 + -0x220) = *plVar33 + lVar1;
  *(ulonglong *)(lVar3 + -0x6b8) = *puVar29 | 0x6d0d08c35ce4d609;
  lVar1 = *plVar19 + (CONCAT44(uVar35,uVar14) ^ 0xbf7ac6ff8fdddd8e) * 8;
  *(longlong *)(lVar3 + -0xb78) = lVar1;
  *(longlong *)(lVar3 + -0x880) = lVar1;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0x7c389f6e)) =
       CONCAT44(uVar14,uVar13) ^ 0x241a05c120407401 | 0x5844da3edf8e823e;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar13 ^ 0xdd8f875d)) = *(undefined8 *)(lVar3 + -0x220);
  *(ulonglong *)(lVar3 + -0x2a0) =
       CONCAT44(uVar16,uVar14) ^ uVar38 ^ *(ulonglong *)(lVar3 + -0x898) ^ 0xd0c2c5b7120f11e8;
  *puVar34 = *(undefined8 *)(lVar3 + -0xb78);
  *(ulonglong **)(lVar3 + -0xb78) = *(ulonglong **)(lVar3 + -0x880);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xdd8f8965)) =
       uVar31 ^ **(ulonglong **)(lVar3 + -0x880);
  uVar20 = DAT_1826716bc ^ *(uint *)(lVar3 + -0x6b8);
  **(undefined8 **)(lVar3 - (uVar36 ^ 0xbf7ac68f)) = 0xdb84cae98ba1ffa;
  uVar8 = DAT_1826715b0;
  uVar15 = DAT_182671584;
  uVar25 = uVar20 & 0xff;
  DAT_1826716bc = ((uVar20 << 8 | uVar25) << 8 | uVar25) << 8 | uVar25;
  **(ulonglong **)(lVar3 - (uVar40 ^ 0x4d678edf)) =
       CONCAT44(DAT_1826716bc,DAT_1826716bc) ^ *(ulonglong *)(lVar3 + -0x6b8);
  *(ulonglong *)(lVar3 + -0x688) =
       *(ulonglong *)(lVar3 - (uVar32 ^ 0x8fddd527)) ^ CONCAT44(uVar16,uVar7) ^ uVar23 ^
       0x34112e133c07c974;
  *(ulonglong *)(lVar3 + -0x880) =
       *(longlong *)(lVar3 - (uVar36 ^ 0xbf7ac307)) +
       (CONCAT44(uVar8,uVar13) ^ 0x23cdf481dd8f8fd9) * 8;
  lVar1 = *(longlong *)(lVar3 + -0x4a0) + (CONCAT44(uVar35,uVar15) ^ 0xbf7ac6fff21d4a04) * 8;
  *(longlong *)(lVar3 + -0x70) = lVar1;
  uVar4 = *(undefined8 *)(lVar3 - (uVar32 ^ 0x8fddd50f));
  *(undefined8 *)(lVar3 + -0xb78) = uVar4;
  *(undefined8 *)(lVar3 + -0x4a0) = uVar4;
  *(longlong *)(lVar3 + -0x5f8) = lVar1;
  *plVar33 = *(longlong *)(lVar3 - ((ulonglong)uVar15 ^ 0xf21d4ff8));
  uVar25 = DAT_182671598;
  uVar15 = DAT_18267156c;
  uVar13 = DAT_182671568;
  lVar1 = DAT_182671560;
  uVar20 = DAT_182671764 * DAT_18267166c & 0xff;
  DAT_182671728 = ((DAT_182671764 * DAT_18267166c * 0x100 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar24 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar37 = (ulonglong)DAT_182671568;
  uVar28 = (ulonglong)DAT_182671598;
  uVar38 = (ulonglong)DAT_18267156c;
  uVar31 = *(ulonglong *)(DAT_182671560 + -0x400);
  *(ulonglong *)(lVar3 + -0xa60) = **(ulonglong **)(lVar3 - (uVar36 ^ 0xbf7ac25f)) ^ uVar24;
  _DAT_18267161c = _DAT_18267161c ^ *(uint *)(lVar3 - (uVar37 ^ 0xbfffffc3));
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x8fdddf2f)) = uVar31 >> (((byte)uVar7 ^ 0xde) & 0x3f);
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x4a0) + (CONCAT44(uVar25,uVar35) ^ 0x8cff4d67bf7ac6fe) * 8);
  uVar20 = _DAT_18267161c & 0xff;
  *(ulonglong **)(lVar1 + -0x70) = puVar29;
  _DAT_18267161c = ((_DAT_18267161c << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  *(ulonglong *)(lVar1 + -0x5c8) = CONCAT44(_DAT_18267161c,_DAT_18267161c) ^ *puVar29;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x4a0) + (CONCAT44(uVar16,uVar8) ^ 0xf21d4a0023cdf483) * 8);
  uVar20 = DAT_1826717fc ^ *(uint *)(lVar1 + -0x5c8);
  uVar16 = uVar20 & 0xff;
  *(ulonglong **)(lVar1 + -0xb78) = puVar29;
  DAT_1826717fc = ((uVar20 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  *(ulonglong *)(lVar1 + -0x8a8) = CONCAT44(DAT_1826717fc,DAT_1826717fc) ^ *puVar29;
  uVar17 = DAT_1826718b4;
  uVar20 = DAT_18267159c;
  uVar16 = DAT_18267158c;
  uVar37 = (ulonglong)DAT_182671590;
  _DAT_18267188c = _DAT_18267188c ^ *(uint *)(lVar1 - (uVar38 ^ 0x8fddd527));
  uVar31 = (ulonglong)DAT_18267158c;
  puVar34 = (undefined8 *)
            (*(longlong *)(lVar1 - ((ulonglong)DAT_18267159c ^ 0xa3f5fb1f)) +
            (CONCAT44(DAT_182671590,uVar8) ^ 0xde2b5ff23cdf482) * 8);
  *(undefined8 **)(lVar1 + -0x5f8) = puVar34;
  *(undefined8 *)(lVar1 + -0x688) = *puVar34;
  uVar8 = DAT_182671648;
  uVar21 = DAT_1826717f0 ^ *(uint *)(lVar1 - ((ulonglong)uVar25 ^ 0x8cff4bef));
  *(ulonglong *)(lVar1 + -0x400) =
       *(ulonglong *)(lVar1 - (uVar31 ^ 0x8affd117)) ^ CONCAT44(uVar14,uVar14) ^ uVar27 ^
       0x6eb3516e7ed45276;
  lVar1 = DAT_182671560;
  uVar14 = uVar21 & 0xff;
  DAT_1826717f0 = ((uVar21 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar36 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  puVar29 = (ulonglong *)(*(longlong *)(DAT_182671560 - (uVar32 ^ 0x8fdddb4f)) + 8);
  uVar14 = (uVar8 | uVar17) & 0xff;
  *(ulonglong *)(DAT_182671560 + -0x70) = (ulonglong)puVar29 ^ uVar36;
  DAT_182671844 = (((uVar8 | uVar17) << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  *(ulonglong *)(lVar1 + -0x2a0) = CONCAT44(uVar8,uVar8) ^ *puVar29 ^ uVar30;
  uVar8 = DAT_1826715a0;
  lVar3 = DAT_182671560;
  uVar31 = (ulonglong)DAT_1826715a0;
  uVar32 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(DAT_182671560 + -0xb78) = *plVar22 + 0x10U ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xfe76fc3f)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar28 ^ 0x8cff461f)) ^ uVar32) ^
       CONCAT44(uVar17,uVar17) ^ uVar30;
  lVar1 = *(longlong *)(lVar3 + -0x6c0);
  uVar17 = _DAT_18267188c & 0xff;
  _DAT_18267188c = ((_DAT_18267188c << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  puVar29 = (ulonglong *)
            (lVar1 + ((CONCAT44(uVar16,uVar20) ^ 0x8affd357a3f5ffbd) +
                     (CONCAT44(uVar35,uVar13) ^ 0xbf7ac6ffbffff5a3) * 0x15 + 1) * 8);
  *(ulonglong *)(lVar3 + -0x5f8) = (ulonglong)puVar29 ^ CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar13 = DAT_182671764 & 0xff;
  uVar28 = *puVar29 ^ uVar23 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x400) = uVar28;
  DAT_182671764 = ((DAT_182671764 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  puVar29 = (ulonglong *)(lVar1 + ((CONCAT44(uVar35,DAT_182671588) ^ 0xbf7ac6ffa3f5ffbc) + 1) * 8);
  *(ulonglong *)(lVar3 + -0xb78) = (ulonglong)puVar29 ^ CONCAT44(DAT_182671764,DAT_182671764);
  uVar27 = (ulonglong)DAT_182671584;
  uVar31 = *puVar29;
  *(ulonglong *)(lVar3 + -0x638) = (uVar23 ^ uVar28) << 0x32;
  *(ulonglong *)(lVar3 + -0xc08) = uVar31 ^ uVar36 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x5f8) =
       lVar1 + ((CONCAT44(uVar7,uVar8) ^ 0x4d678cfffe76fe7f) * 0x15 + 1 +
               (CONCAT44(uVar25,uVar7) ^ 0x8cff4d674d678cfb)) * 8 ^ uVar26;
  uVar13 = DAT_18267166c & 0xff;
  DAT_18267166c = ((DAT_18267166c << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xf21d4c38)) =
       CONCAT44(DAT_18267166c,DAT_18267166c) ^ *(ulonglong *)(*puVar18 ^ uVar26) ^ uVar30;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x6c0) + 0x90 +
            (CONCAT44(DAT_182671570,uVar15) ^ 0x7c38950e8fdddd8f) * 8);
  uVar31 = (ulonglong)DAT_1826715b0;
  *(ulonglong **)(lVar3 + -0xb78) = puVar29;
  *(ulonglong *)(lVar3 + -0x610) = (*(ulonglong *)(lVar3 - (uVar31 ^ 0x23cdfee1)) ^ uVar24) << 0x2a;
  uVar30 = *puVar29 ^ uVar32 ^ uVar30;
  DAT_182671858 = DAT_182671858 ^ (uint)uVar30;
  *(ulonglong *)(lVar3 + -0x610) = uVar30;
  *(ulonglong *)(lVar3 + -0x450) =
       *(longlong *)(lVar3 - (uVar37 ^ 0xde2b33f)) +
       ((CONCAT44(uVar7,uVar7) ^ 0x4d678cff4d678cfe) + 0x12) * 8;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar2 ^ uVar35;
  return;
}



############ FUN_ 180eec4e0 size=3997 ############

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

void FUN_180eec4e0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong uVar14;
  uint *puVar15;
  byte bVar16;
  byte bVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint *puVar24;
  uint *puVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  byte *pbVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  byte bVar37;
  byte bVar38;
  uint uVar39;
  ulonglong uVar40;
  
  uVar36 = DAT_1826716c4;
  uVar11 = DAT_1826715a8;
  uVar10 = DAT_1826715a0;
  uVar9 = DAT_18267158c;
  uVar8 = DAT_182671588;
  lVar6 = DAT_182671560;
  uVar23 = (ulonglong)DAT_1826715a8;
  uVar30 = (ulonglong)DAT_1826715a0;
  uVar31 = DAT_1826715a0 << 0x10 | DAT_1826715a0 >> 0x10;
  uVar27 = (DAT_182671588 << 0x10 | DAT_182671588 & 0xff00) << 8 | DAT_182671588 >> 8 & 0xff00 |
           DAT_182671588 >> 0x18;
  uVar39 = (DAT_1826715a8 << 0x10 | DAT_1826715a8 & 0xff00) << 8 | DAT_1826715a8 >> 8 & 0xff00 |
           DAT_1826715a8 >> 0x18;
  uVar3 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_1826715a8 ^ 0xfffffff7) + (longlong)DAT_1826718f0);
  uVar14 = (ulonglong)DAT_182671588;
  uVar4 = *(uint *)(&DAT_182611e70 + (uVar14 ^ 0x921823f8) + (longlong)DAT_1826718f0);
  uVar26 = (ulonglong)DAT_18267158c;
  uVar35 = DAT_182671734 ^ DAT_182671614;
  uVar19 = *(uint *)(DAT_182671560 + -0x3c8) ^ DAT_182671624;
  uVar18 = (ulonglong)DAT_1826715a8;
  DAT_182671578 = uVar39;
  DAT_182671590 = uVar27;
  DAT_182671594 = uVar31;
  *(ulonglong *)(DAT_182671560 + -0x80) =
       CONCAT44(uVar31,DAT_1826715a0) ^ 0xf5e63dd9667fefdf | 0x51223dc9624dcf06;
  puVar1 = (uint *)(lVar6 + -0x844);
  uVar19 = uVar19 + (*puVar1 ^ DAT_182671704) ^ DAT_1826715ec;
  *(uint *)(lVar6 + -0x3d4) = uVar19;
  *(uint *)(lVar6 - (uVar18 ^ 0xfffff8ab)) = uVar19 ^ DAT_182671738 ^ DAT_1826715ec;
  puVar24 = (uint *)(lVar6 - (uVar30 ^ 0x4bce90f2));
  uVar35 = uVar35 ^ *puVar24;
  *(uint *)(lVar6 + -0x504) = *(uint *)(lVar6 + -0x754) ^ uVar36 ^ DAT_182671738;
  uVar20 = ~uVar9;
  puVar15 = (uint *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x1f613e0e));
  *(uint *)(lVar6 + -0x47c) = uVar35;
  uVar19 = DAT_182671694;
  uVar18 = (ulonglong)uVar20;
  *puVar15 = uVar35 ^ DAT_182671694 ^ DAT_182671734;
  bVar5 = DAT_182671618;
  pbVar33 = (byte *)((CONCAT44(uVar20,uVar20) ^ 0xe09ec985e09ec985) * 0x20 +
                     (CONCAT44(uVar20,uVar9) ^ 0xe09ec9851f61366e) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  DAT_182671574 = uVar20;
  *(ulonglong *)(DAT_182671560 + -0xc80) = (ulonglong)pbVar33 ^ (ulonglong)DAT_1826717dc;
  uVar35 = _DAT_182671868;
  lVar6 = DAT_182671560;
  bVar13 = *pbVar33 ^ bVar5 ^ (byte)uVar19;
  *(byte *)(DAT_182671560 + -0xc41) = bVar13;
  *(uint *)(lVar6 - ((ulonglong)uVar39 ^ 0xfffff6ef)) = (bVar13 ^ bVar5) ^ uVar35;
  uVar22 = DAT_182671694;
  *(uint *)(lVar6 + -0x8c) = (uVar8 ^ 0x1f423dff) * 0x2df66205;
  *(uint *)(lVar6 + -0x27c) =
       (*(uint *)(lVar6 + -0x874) ^ uVar22) + (uVar27 ^ 0xe1d43e47) ^ DAT_182671780;
  *(longlong *)(lVar6 + -0xa88) = *(longlong *)(lVar6 + -0x3b8) << 0x16;
  *(uint *)(lVar6 - (uVar23 ^ 0xfffff697)) =
       (*(uint *)(lVar6 - ((ulonglong)uVar31 ^ 0x999642de)) ^ uVar35) <<
       (((byte)uVar9 ^ 0x6b) & 0x1f) ^ DAT_182671720;
  uVar19 = (*(uint *)(lVar6 + -0x27c) ^ DAT_182671780) - (*(uint *)(lVar6 + -0x968) ^ DAT_182671720)
  ;
  puVar15 = (uint *)(lVar6 + -0x344);
  *puVar15 = uVar19 ^ uVar22;
  puVar2 = (uint *)(lVar6 + -0x678);
  bVar5 = (byte)(uVar8 >> 0x18);
  uVar21 = (uVar36 ^ *(uint *)(lVar6 + -0x504)) * uVar19 ^ DAT_1826715b8;
  *puVar2 = uVar21;
  uVar21 = uVar21 ^ DAT_1826715b8;
  uVar19 = (*(uint *)(lVar6 + -0x910) ^ uVar35) * (uVar39 ^ 0xffffffeb) ^ DAT_1826715c4;
  *(uint *)(lVar6 + -0x328) = uVar19;
  uVar35 = DAT_1826716b0;
  uVar21 = (uVar19 ^ DAT_1826715c4) + uVar21;
  *(uint *)(lVar6 + -0x374) = uVar21 ^ DAT_1826716b0;
  uVar19 = *(uint *)(lVar6 + -0x504);
  *puVar1 = uVar21 << ((bVar5 ^ 0x9f) & 0x1f) ^ DAT_182671800;
  bVar13 = (byte)(uVar10 >> 0x10);
  uVar35 = (*(uint *)(lVar6 - (uVar14 ^ 0x9218209c)) ^ uVar35) >> ((bVar13 ^ 0xdd) & 0x1f) ^
           DAT_18267176c;
  puVar25 = (uint *)(lVar6 - ((ulonglong)uVar10 ^ 0x4bce91d2));
  uVar19 = (*(uint *)(lVar6 + -0x3c8) ^ DAT_182671624) + (uVar36 ^ uVar19) ^ DAT_182671644;
  *(uint *)(lVar6 + -0x3d4) = uVar35;
  uVar36 = *puVar25 ^ DAT_182671800;
  uVar35 = uVar35 ^ DAT_18267176c;
  *(uint *)(lVar6 + -0x754) = uVar19;
  uVar35 = (uVar36 | uVar35) ^ DAT_182671660;
  uVar34 = (ulonglong)DAT_1826718a0;
  *(uint *)(lVar6 + -0x47c) = uVar19 ^ DAT_18267178c ^ DAT_182671644;
  *(uint *)(lVar6 + -0x964) = uVar35;
  uVar35 = uVar35 ^ DAT_182671668 ^ DAT_182671660;
  *(uint *)(lVar6 + -0x874) = (uVar9 ^ 0x67efc0dc) + (uVar9 ^ 0x169610af);
  *(uint *)(lVar6 + -0x8c) = uVar35;
  uVar19 = *(uint *)(lVar6 - (uVar14 ^ 0x92182794)) ^ DAT_182671864 ^ DAT_18267178c;
  *(uint *)(lVar6 + -0x968) = uVar35 ^ DAT_182671878 ^ DAT_182671668;
  *(uint *)(lVar6 + -0x27c) = uVar19;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x1f613afa)) =
       (CONCAT44(uVar9,uVar10) ^ 0x1f61367a4bce9996) * 0x20 +
       (CONCAT44(uVar39,uVar27) ^ 0xffffffffe823188d) + *(longlong *)(lVar6 + -0x8f0) ^ uVar34;
  bVar38 = (byte)DAT_182671664;
  uVar35 = DAT_1826715f8;
  uVar19 = DAT_1826715f4;
  bVar37 = (byte)(uVar11 >> 0x18);
  uVar40 = (ulonglong)DAT_1826715f4;
  puVar29 = (ulonglong *)(lVar6 - (uVar23 ^ 0xfffff37f));
  bVar16 = *(byte *)(*puVar29 ^ uVar34) ^ (byte)DAT_182671664 ^ (byte)uVar22;
  bVar17 = (byte)DAT_1826715a8 ^ 0xee;
  *(byte *)(lVar6 + -0x41) = bVar16;
  *(uint *)(lVar6 - (uVar18 ^ 0xe09ecac1)) = (bVar16 ^ bVar38) ^ uVar35;
  *(uint *)(lVar6 + -0x910) =
       (*(uint *)(lVar6 + -0x968) ^ DAT_182671878) + (uVar31 ^ 0x90616d1b) ^ DAT_18267180c;
  *(ulonglong *)(DAT_182671560 - (uVar18 ^ 0xe09ec3e5)) =
       (CONCAT44(uVar27,uVar8) ^ 0x104f60a5cce9a805) + 0x8056e8a93310e862;
  lVar6 = DAT_182671560;
  uVar22 = (*puVar15 ^ uVar35) << (bVar17 & 0x1f) ^ DAT_18267167c;
  *puVar2 = uVar22;
  uVar22 = (*(uint *)(lVar6 + -0x910) ^ DAT_18267180c) - (uVar22 ^ DAT_18267167c);
  *(longlong *)(lVar6 + -0x548) = *(longlong *)(lVar6 + -0x898) << ((bVar37 ^ 0xea) & 0x3f);
  uVar36 = *(uint *)(lVar6 + -0x27c) ^ DAT_182671864;
  *(uint *)(lVar6 + -0x328) = uVar22 ^ uVar19;
  *(uint *)(lVar6 - ((ulonglong)uVar31 ^ 0x999648ba)) = uVar36 * uVar22 ^ DAT_1826717d4;
  uVar19 = DAT_18267168c;
  lVar7 = DAT_182671560;
  uVar34 = (ulonglong)DAT_18267187c;
  *(uint *)(lVar6 - (uVar23 ^ 0xfffff7bb)) =
       (*puVar15 ^ uVar35) * (DAT_18267158c ^ 0x1f613665) ^ DAT_18267169c;
  uVar22 = DAT_1826716a4;
  uVar36 = (*(uint *)(lVar6 + -0x374) ^ DAT_1826717d4) + (*puVar1 ^ DAT_18267169c);
  *(uint *)(lVar7 + -0x3d4) = uVar36 ^ DAT_1826716a4;
  uVar36 = uVar36 * 0x2000;
  *(uint *)(lVar7 + -0x504) = uVar36 ^ uVar19;
  lVar6 = DAT_182671560;
  *(byte *)(lVar7 + -0xc41) =
       *(byte *)(uVar34 ^ *(ulonglong *)(lVar7 + -0xd20)) ^ (byte)DAT_182671694;
  uVar19 = *(uint *)(lVar6 + -0x27c) ^ DAT_182671864;
  *(uint *)(lVar6 + -0x754) =
       (*(uint *)(lVar7 + -0x3d4) ^ uVar22) >> (((byte)uVar10 ^ 0x85) & 0x1f) ^ DAT_182671650;
  uVar22 = uVar19 + (*(uint *)(lVar6 + -0x3c8) ^ DAT_182671624) ^ DAT_1826716f4;
  *(uint *)(lVar6 + -0x964) =
       (*(uint *)(lVar6 - (uVar14 ^ 0x921824bc)) ^ DAT_182671650 | uVar36) ^ DAT_182671680;
  uVar19 = DAT_182671628;
  *(uint *)(lVar6 - ((ulonglong)uVar31 ^ 0x999643ba)) = uVar22;
  uVar36 = *(uint *)(lVar6 - (uVar18 ^ 0xe09ec1f1)) ^ DAT_1826718ac ^ DAT_1826716f4;
  uVar22 = DAT_1826717b4 ^ DAT_182671680;
  *(uint *)(lVar6 + -0x47c) = uVar36;
  *(uint *)(lVar6 + -0x8c) = uVar22 ^ *puVar24;
  *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0xe82311fa)) = uVar36 ^ uVar19 ^ DAT_1826718ac;
  *(uint *)(lVar6 + -0x910) = *(uint *)(lVar6 + -0x8c) ^ DAT_1826716ec ^ DAT_1826717b4;
  uVar21 = DAT_182671814;
  uVar22 = DAT_182671648;
  uVar14 = (ulonglong)DAT_1826717c4;
  uVar36 = DAT_182671648 & 0xff;
  *puVar29 = (CONCAT44(uVar10,uVar27) ^ 0x4bce9996e8231898) +
             (CONCAT44(uVar39,uVar8) ^ 0xffffffff921823e8) * 0x20 + *(longlong *)(lVar6 + -0x8f0) ^
             uVar14;
  uVar28 = DAT_182671588 ^ 0x9bef053d;
  *(byte *)(lVar6 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar6 - (uVar30 ^ 0x4bce9516)) ^ uVar14) ^ (byte)uVar22 ^
       (byte)DAT_182671694;
  uVar12 = DAT_182671864;
  uVar36 = *(byte *)(lVar6 - ((ulonglong)uVar39 ^ 0xffffffbe)) ^ uVar36;
  *puVar2 = uVar36 ^ uVar21;
  uVar36 = uVar36 << (bVar17 & 0x1f);
  uVar32 = (*(uint *)(lVar6 + -0x910) ^ DAT_1826716ec) + uVar28 ^ DAT_18267182c;
  *(uint *)(lVar6 + -0x328) = uVar32;
  uVar32 = uVar32 ^ DAT_18267182c;
  *puVar15 = uVar36 ^ uVar12;
  uVar36 = uVar32 - uVar36 ^ DAT_182671688;
  *(ulonglong *)(lVar6 + -0x110) =
       *(longlong *)(lVar6 + -0x80) - (CONCAT44(uVar27,uVar11) ^ 0x31e7e0db189a93a4);
  *(uint *)(lVar6 - (uVar18 ^ 0xe09ecaf1)) = uVar36;
  uVar36 = DAT_18267178c;
  *puVar25 = (*(uint *)(lVar6 - (uVar18 ^ 0xe09ec0ed)) ^ uVar19) *
             (*(uint *)(lVar6 + -0x374) ^ DAT_182671688) ^ DAT_1826716c8;
  bVar38 = (byte)DAT_182671588;
  uVar32 = *puVar1 ^ DAT_1826716c8;
  uVar21 = (*puVar2 ^ uVar21) * (DAT_18267158c ^ 0x1f613670) ^ DAT_1826717b8;
  *(uint *)(lVar6 + -0x3d4) = uVar21;
  uVar32 = (uVar21 ^ DAT_1826717b8) + uVar32;
  puVar25 = (uint *)(lVar6 - (uVar30 ^ 0x4bce9ec2));
  *(uint *)(lVar6 + -0x504) = uVar32 ^ uVar36;
  *puVar25 = uVar32 << ((bVar38 ^ 0xe5) & 0x1f) ^ uVar22;
  *(uint *)(lVar6 + -0x27c) =
       (uVar36 ^ *(uint *)(lVar6 + -0x504)) >> ((bVar5 ^ 0x81) & 0x1f) ^ DAT_1826718a8;
  *(longlong *)(lVar6 - (uVar26 ^ 0x1f6130c2)) =
       *(longlong *)(lVar6 + -0x600) - *(longlong *)(lVar6 - ((ulonglong)uVar39 ^ 0xfffff59f));
  lVar7 = DAT_182671560;
  uVar22 = (*(uint *)(lVar6 + -0x27c) ^ DAT_1826718a8 | *puVar25 ^ uVar22) ^ DAT_182671828;
  *(uint *)(DAT_182671560 + -0x874) = uVar22;
  *(uint *)(lVar7 + -0x964) =
       (*(uint *)(lVar7 - ((ulonglong)uVar39 ^ 0xfffffc37)) ^ DAT_182671624) +
       (*(uint *)(lVar7 + -0x968) ^ uVar19) ^ DAT_1826718c4;
  uVar36 = DAT_1826717b4;
  uVar22 = uVar22 ^ DAT_1826716e4 ^ DAT_182671828;
  uVar19 = *(uint *)(lVar7 - ((ulonglong)uVar27 ^ 0xe82311f6)) ^ DAT_1826718c4 ^ uVar35;
  *(uint *)(lVar7 + -0x47c) = uVar19;
  *(ulonglong *)(lVar7 + -0x2a0) = *(ulonglong *)(lVar7 + -0x9f8) | 0x4d76f7bdd7bea22;
  *(uint *)(lVar7 + -0x8c) = uVar22;
  uVar22 = _DAT_1826715f0;
  *(uint *)(lVar7 - (uVar30 ^ 0x4bce9086)) = uVar19 ^ uVar36 ^ uVar35;
  *(uint *)(lVar7 + -0x328) =
       *(uint *)(lVar7 - ((ulonglong)uVar27 ^ 0xe823181e)) ^ DAT_1826716e4 ^ DAT_1826715ec;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar31 ^ 0x99964d1e)) =
       *(ulonglong *)(lVar7 + -0xc08) >> (((byte)uVar20 ^ 0xbc) & 0x3f);
  uVar35 = _DAT_182671868;
  uVar19 = DAT_182671694;
  uVar21 = _DAT_182671868 & 0xff;
  *(ulonglong *)(lVar7 + -0xc80) =
       *(longlong *)(lVar7 - (uVar23 ^ 0xfffff70f)) +
       (CONCAT44(uVar20,uVar9) ^ 0xe09ec9851f61367a) * 0x20 +
       (CONCAT44(uVar31,uVar20) ^ 0x99964bcee09ec990) ^ uVar40;
  bVar38 = (byte)uVar19;
  *(byte *)(lVar7 + -0xc41) = *(byte *)(uVar40 ^ *puVar29) ^ (byte)uVar35 ^ bVar38;
  *(longlong *)(lVar7 + -0x688) = *(longlong *)(lVar7 + -0x898) - *(longlong *)(lVar7 + -0x548);
  *(uint *)(lVar7 - (uVar23 ^ 0xfffffcbb)) = *(byte *)(lVar7 + -0xc41) ^ uVar21 ^ uVar22;
  lVar6 = DAT_182671560;
  uVar19 = (*(uint *)(lVar7 + -0x328) ^ DAT_1826715ec) + uVar28 ^ DAT_182671730;
  uVar14 = (ulonglong)DAT_18267159c;
  *(byte *)(lVar7 + -0x41) = *(byte *)(uVar34 ^ *(ulonglong *)(lVar7 + -0xd20)) ^ bVar38;
  bVar5 = (byte)DAT_18267156c;
  *(uint *)(lVar7 - (uVar14 ^ 0x8a25ef74)) = uVar19;
  uVar19 = *puVar15;
  puVar25 = (uint *)(lVar7 - (uVar26 ^ 0x1f613002));
  uVar35 = *(uint *)(lVar6 + -0x374) ^ DAT_182671730;
  *puVar2 = (uVar22 ^ *puVar15) << ((bVar5 ^ 0x70) & 0x1f) ^ uVar12;
  uVar21 = uVar35 - (*puVar25 ^ uVar12) ^ DAT_182671728;
  uVar35 = *(uint *)(lVar6 + -0x910);
  *puVar1 = uVar21;
  *(uint *)(lVar6 + -0x3d4) = (uVar21 ^ DAT_182671728) * (uVar35 ^ uVar36) ^ DAT_1826716b8;
  uVar35 = (uVar22 ^ uVar19) * (uVar39 ^ 0xffffffea) ^ DAT_18267173c;
  *(uint *)(lVar6 + -0x504) = uVar35;
  uVar19 = DAT_1826717b0;
  bVar5 = (byte)DAT_1826715a8;
  uVar35 = (*(uint *)(lVar6 - (uVar23 ^ 0xfffffc2b)) ^ DAT_1826716b8) + (uVar35 ^ DAT_18267173c);
  *(uint *)(lVar6 + -0x754) = uVar35 ^ DAT_1826717b0;
  *(uint *)(lVar6 - (uVar26 ^ 0x1f613406)) = uVar35 << ((bVar5 ^ 0xf2) & 0x1f) ^ DAT_1826716f0;
  uVar19 = (*(uint *)(lVar6 + -0x754) ^ uVar19) >> ((bVar37 ^ 0xec) & 0x1f) ^ DAT_182671854;
  *(uint *)(lVar6 + -0x968) = uVar19;
  uVar14 = (ulonglong)_DAT_182671838;
  *puVar24 = (*(uint *)(lVar6 - (uVar30 ^ 0x4bce9bea)) ^ DAT_1826716f0 | uVar19 ^ DAT_182671854) ^
             DAT_182671840;
  uVar19 = (*(uint *)(lVar6 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar6 + -0x910) ^ uVar36) ^
           DAT_1826715d0;
  uVar35 = DAT_182671670 ^ DAT_182671840 ^ *(uint *)(lVar6 + -0x964);
  *(uint *)(lVar6 + -0x8c) = uVar35;
  uVar35 = uVar35 ^ DAT_18267181c ^ DAT_182671670;
  *(uint *)(lVar6 + -0x374) = uVar35;
  uVar22 = (uVar35 ^ DAT_18267181c) + (uVar27 ^ 0xe1d43e47) ^ DAT_1826717d4;
  *(uint *)(lVar6 + -0x874) = uVar19;
  uVar35 = uVar19 ^ DAT_182671608 ^ DAT_1826715d0;
  *(uint *)(lVar6 + -0x47c) = uVar35;
  uVar19 = DAT_1826716cc ^ DAT_182671608;
  *(ulonglong *)(lVar6 + -0x240) =
       CONCAT44(uVar31,uVar8) ^ 0x504b13cc9ab85660 | CONCAT44(uVar11,uVar9) ^ 0xb1929482cc27c4a6;
  bVar5 = DAT_182671610;
  *(uint *)(lVar6 + -0x328) = uVar19 ^ uVar35;
  pbVar33 = (byte *)(*(longlong *)(lVar6 - (uVar18 ^ 0xe09ec175)) +
                    (CONCAT44(uVar11,uVar10) ^ 0xffffffff4bce9996) * 0x20);
  *(ulonglong *)(lVar6 + -0xd20) = (ulonglong)pbVar33 ^ uVar14;
  *(byte *)(lVar6 + -0xc41) = *pbVar33 ^ bVar5 ^ bVar38;
  *puVar2 = (*(byte *)(lVar6 - ((ulonglong)DAT_182671570 ^ 0xfffff3be)) ^ bVar5) ^ DAT_18267167c;
  *puVar1 = uVar22;
  *puVar15 = (*puVar25 ^ DAT_18267167c) << ((bVar13 ^ 0xdf) & 0x1f) ^ DAT_182671640;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar4 ^ uVar27) * 4) = uVar3 ^ uVar39;
  return;
}



############ FUN_ 180e51800 size=5560 ############

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

void FUN_180e51800(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  byte bVar18;
  uint uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  longlong *plVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  byte local_e0;
  
  uVar15 = DAT_18267157c;
  uVar26 = (ulonglong)DAT_18267157c;
  uVar10 = DAT_182671594 * DAT_18267157c;
  uVar19 = DAT_1826717d4 - DAT_1826715d0;
  uVar50 = (ulonglong)uVar10;
  uVar11 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar10 ^ 0x69f96515) + (longlong)DAT_182671a98) ^
           DAT_182671594;
  uVar12 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_18267157c ^ 0x27feffed) + (longlong)DAT_182671a98) ^
           DAT_18267157c;
  uVar13 = DAT_182671894 + DAT_182671870 & 0xff;
  uVar20 = CONCAT44(uVar10,DAT_182671594);
  bVar18 = (byte)DAT_182671594;
  DAT_182671644 = (((DAT_182671894 + DAT_182671870) * 0x100 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar43 = CONCAT44(DAT_18267163c,DAT_18267163c);
  uVar31 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar22 = (uVar43 ^ *(ulonglong *)(DAT_182671560 + -0xa88)) >> ((bVar18 ^ 0xb8) & 0x3f);
  local_e0 = (byte)DAT_18267157c;
  DAT_182671588 = uVar10;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar22 ^ uVar31;
  uVar13 = DAT_182671870 & 0xff;
  DAT_182671870 = ((DAT_182671870 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar37 = CONCAT44(DAT_182671870,DAT_182671870);
  uVar43 = (uVar43 ^ *(ulonglong *)(DAT_182671560 + -0xa88)) << ((local_e0 ^ 0xda) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar43 ^ uVar37;
  uVar13 = DAT_182671594;
  lVar2 = DAT_182671560;
  uVar14 = DAT_182671894 & 0xff;
  DAT_182671894 = ((DAT_182671894 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar48 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(DAT_182671560 + -0x318) = (uVar43 | uVar22) ^ uVar48;
  puVar1 = (ulonglong *)(lVar2 + -0x6b8);
  uVar14 = _DAT_1826715d8 - DAT_182671818 & 0xff;
  *puVar1 = (*(ulonglong *)(lVar2 - (uVar26 ^ 0x27fef615)) ^ uVar37) +
            (CONCAT44(uVar15,uVar13) ^ 0xf7186f3df886b470);
  lVar2 = DAT_182671560;
  DAT_18267181c = (((_DAT_1826715d8 - DAT_182671818) * 0x100 | uVar14) << 8 | uVar14) << 8 | uVar14;
  puVar17 = (ulonglong *)(DAT_182671560 + -0x2a0);
  uVar38 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(DAT_182671560 - (uVar50 ^ 0x69f96f95)) =
       (CONCAT44(DAT_182671834,DAT_182671834) ^ *puVar17) -
       (CONCAT44(uVar15,uVar10) ^ 0xd95d66237cf60717) ^ uVar38;
  *(int *)(lVar2 + -0x27c) = *(int *)(lVar2 + -0x754) + *(int *)(lVar2 + -0x968);
  uVar30 = DAT_182671594;
  lVar3 = DAT_182671560;
  uVar13 = DAT_182671654 & DAT_182671724 & 0xff;
  DAT_1826716e0 = (((DAT_182671654 & DAT_182671724) << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar43 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar38 ^ *(ulonglong *)(DAT_182671560 + -0xa88)) - (uVar48 ^ *(ulonglong *)(lVar2 + -0x318))
       ^ uVar43;
  plVar23 = (longlong *)(lVar3 - (uVar50 ^ 0x69f963a5));
  uVar13 = _DAT_1826715d8 & 0xff;
  *plVar23 = (uVar48 ^ *(ulonglong *)(lVar3 + -0x318)) -
             (CONCAT44(uVar30,uVar15) ^ 0xbaad50549ec3cb86);
  _DAT_1826715d8 = ((_DAT_1826715d8 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar24 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  puVar27 = (ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x83773101));
  *puVar27 = (uVar48 ^ *(ulonglong *)(lVar3 + -0x318)) -
             (CONCAT44(uVar15,uVar15) ^ 0x84bbb79131696ef6) ^ uVar24;
  lVar2 = DAT_182671560;
  uVar39 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0x83773929)) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x628)) - (uVar20 ^ 0x24cd019d730eadb5);
  uVar13 = DAT_182671818 & 0xff;
  DAT_182671818 = ((DAT_182671818 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar44 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar20 = (ulonglong)DAT_182671818;
  puVar32 = (ulonglong *)(lVar2 - (uVar26 ^ 0x27fef945));
  uVar25 = CONCAT44(DAT_182671818,DAT_182671818);
  *puVar32 = uVar25 ^ uVar44 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x1f0) ^
             *(ulonglong *)(lVar2 + -0x628);
  uVar14 = DAT_182671580;
  uVar13 = DAT_182671724 & 0xff;
  DAT_182671724 = ((DAT_182671724 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar52 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar2 + -0x318) = (*puVar1 >> 0x20 ^ uVar20) >> 1 ^ uVar52;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0xa88) =
       CONCAT44(uVar10,DAT_182671590) ^ uVar31 ^ *(ulonglong *)(lVar2 + -0x898) ^ 0xf73ce2e8c071a338
  ;
  uVar13 = DAT_1826715d0 & 0xff;
  DAT_1826715d0 = ((DAT_1826715d0 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar42 = (ulonglong)DAT_1826715d0;
  bVar9 = (byte)DAT_1826715ac;
  uVar28 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  uVar22 = (uVar25 ^ *puVar32) << ((bVar9 ^ 0xbe) & 0x3f);
  uVar20 = (ulonglong)DAT_182671574;
  uVar13 = DAT_182671654 & 0xff;
  *(ulonglong *)(lVar3 + -0x628) = uVar22 ^ uVar28;
  DAT_182671654 = ((DAT_182671654 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar33 = CONCAT44(DAT_182671654,DAT_182671654);
  uVar22 = *(ulonglong *)(lVar3 - (uVar20 ^ 0x70232068)) ^ uVar52 | uVar22;
  uVar13 = uVar19 & 0xff;
  *(ulonglong *)(lVar3 + -0xa88) = uVar22 ^ uVar33;
  uVar7 = DAT_1826715a8;
  DAT_182671630 = ((uVar19 * 0x100 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar49 = CONCAT44(DAT_182671630,DAT_182671630);
  uVar20 = CONCAT44(uVar15,DAT_1826715a8);
  uVar44 = ((uVar44 ^ *(ulonglong *)(lVar3 + -0x1f0)) -
           (CONCAT44(uVar14,uVar10) ^ 0xeee30371a412ac26)) - uVar22 ^ uVar49;
  *puVar1 = uVar44;
  lVar2 = DAT_182671560;
  uVar13 = DAT_1826717d4 & 0xff;
  DAT_1826717d4 = ((DAT_1826717d4 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar51 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  uVar22 = (uVar20 ^ 0xdeea901b2501f928) + uVar22;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar22 ^ uVar51;
  uVar22 = uVar22 ^ uVar33 ^ uVar43 ^ *(ulonglong *)(lVar2 + -0x9e8);
  *(ulonglong *)(lVar2 + -0x318) = uVar22;
  uVar20 = (uVar33 ^ uVar22) >> ((bVar18 ^ 0xa4) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar20 ^ uVar49;
  *(ulonglong *)(lVar2 + -0x898) = (uVar33 ^ uVar22) << ((local_e0 ^ 0xc6) & 0x3f) ^ uVar24;
  uVar20 = *(ulonglong *)(lVar2 - (uVar50 ^ 0x69f96d85)) ^ uVar24 | uVar20;
  *(ulonglong *)(lVar2 + -0xa88) = uVar20 ^ uVar51;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x628) = (uVar43 ^ *(ulonglong *)(lVar2 + -0x9e8)) - uVar20 ^ uVar38;
  uVar19 = DAT_18267158c;
  uVar13 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar44 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0x33a181d7)) ^ uVar49 ^ uVar28 ^
           uVar24 ^ uVar44;
  uVar20 = CONCAT44(uVar15,DAT_1826715a4);
  uVar22 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar44;
  *(ulonglong *)(lVar2 + -0x1f0) = (uVar44 ^ uVar28) >> (((byte)uVar10 ^ 0x38) & 0x3f) ^ uVar48;
  *(ulonglong *)(lVar2 + -0x898) =
       CONCAT44(uVar7,uVar14) ^ 0x8afc9021360ac9dd | uVar20 ^ 0x7bba3f9164a2faf2;
  uVar15 = DAT_182671740 & DAT_182671798 & 0xff;
  DAT_1826716d8 = (((DAT_182671740 & DAT_182671798) << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar40 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  puVar45 = (ulonglong *)(lVar2 - (uVar22 ^ 0xa2f5f656));
  uVar16 = DAT_182671798 & 0xff;
  uVar21 = DAT_182671798 << 8;
  *puVar45 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x33a1806f)) ^ uVar28) << 0x1b ^ uVar40;
  DAT_182671798 = ((uVar21 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar14 = DAT_182671740 & 0xff;
  uVar29 = DAT_182671740 << 8;
  uVar53 = (ulonglong)DAT_182671798;
  uVar44 = CONCAT44(DAT_182671798,DAT_182671798);
  *puVar27 = (uVar40 ^ *(ulonglong *)(lVar2 + -0x9e8) | uVar48 ^ *(ulonglong *)(lVar2 + -0x1f0)) ^
             uVar44;
  uVar6 = DAT_1826715a0;
  uVar15 = DAT_182671584;
  uVar47 = (ulonglong)DAT_182671584;
  DAT_182671740 = ((uVar29 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar34 = (ulonglong)DAT_182671740;
  uVar35 = CONCAT44(DAT_182671740,DAT_182671740);
  uVar13 = DAT_182671594 ^ 0x3c33b185;
  *(ulonglong *)(lVar2 - (uVar47 ^ 0xf21d4298)) = (uVar49 ^ *puVar1) - (*puVar17 ^ uVar44) ^ uVar35;
  lVar2 = DAT_182671560;
  uVar22 = uVar35 ^ uVar44;
  *(uint *)(DAT_182671560 + -0x968) = uVar6 ^ 0x74285b91 | uVar13;
  lVar3 = DAT_182671560;
  puVar32 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x7ffe75e6));
  *puVar32 = uVar38 ^ *puVar17 ^ uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x628);
  uVar13 = DAT_182671598;
  lVar2 = DAT_182671560;
  puVar27 = (ulonglong *)(lVar3 - (uVar26 ^ 0x27fefce5));
  uVar26 = (ulonglong)DAT_182671598;
  uVar36 = ((ulonglong)((uVar29 & 0xffff | uVar14) >> 7) | uVar34 << 9) ^ *puVar27 >> 0x17;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar36 ^ uVar40;
  uVar20 = (uVar35 ^ *(ulonglong *)(lVar2 + -0x318)) << (((byte)uVar15 ^ 0x29) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar20 ^ uVar25;
  uVar5 = DAT_182671568;
  *puVar1 = (uVar20 | uVar36) ^ uVar44;
  lVar2 = DAT_182671560;
  *puVar17 = (uVar38 ^ *(ulonglong *)(DAT_182671560 + -0x628)) -
             (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0x702325c8)) ^ uVar44) ^
             uVar43;
  uVar14 = DAT_1826715b0;
  uVar20 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a8 ^ 0xe289e7c8)) ^ uVar51 ^ uVar31 ^
           *(ulonglong *)(lVar2 + -0x898) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x1f0) = (uVar31 ^ uVar20) >> (((byte)uVar5 ^ 0x58) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar2 + -0x318) = uVar20;
  *(int *)(lVar2 - ((ulonglong)uVar14 ^ 0x4d678e83)) =
       *(int *)(lVar2 - ((ulonglong)uVar19 ^ 0xa2f5f8ea)) << 0x13;
  lVar2 = DAT_182671560;
  uVar20 = (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x318)) << (((byte)uVar5 ^ 0x68) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar20 ^ uVar49;
  lVar3 = DAT_182671560;
  uVar20 = uVar20 | uVar37 ^ *(ulonglong *)(lVar2 + -0x1f0);
  *(ulonglong *)(lVar2 + -0xa88) = uVar20 ^ uVar35;
  uVar14 = DAT_1826715a4;
  *(ulonglong *)(lVar3 - (uVar50 ^ 0x69f96605)) =
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar35) - uVar20 ^ uVar25;
  lVar2 = DAT_182671560;
  uVar20 = (ulonglong)DAT_182671590;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       CONCAT44(uVar14,uVar15) ^ 0x10d250574a6cd74d |
       uVar25 ^ *(ulonglong *)(DAT_182671560 + -0x318);
  lVar3 = DAT_182671560;
  puVar46 = (ulonglong *)(lVar2 - (uVar20 ^ 0x1d761837));
  bVar18 = (byte)DAT_18267159c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0x83773251)) =
       *(ulonglong *)(lVar2 - (uVar50 ^ 0x69f967bd)) ^ uVar28 ^ uVar43 ^ *puVar46 ^ uVar35;
  uVar20 = (*(ulonglong *)(lVar3 + -0x1f0) >> 0x20 ^ uVar42) >> 0x14;
  *(uint *)(lVar3 + -0x968) = (DAT_1826715a8 ^ 0x5df1a93a) * *(int *)(lVar3 + -0x754);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar20 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x898) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x1f0)) << ((bVar18 ^ 0x84) & 0x3f) ^ uVar52;
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671574 ^ 0x70232be8)) ^ uVar52 | uVar20) ^ uVar51;
  *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671580 ^ 0x25cee7dd)) =
       **(undefined8 **)(lVar3 - ((ulonglong)uVar13 ^ 0x22f47c04));
  uVar8 = DAT_1826715b4;
  bVar18 = (byte)DAT_1826715b4;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671590 ^ 0x1d76134f)) =
       (uVar43 ^ *puVar17) - (uVar51 ^ *(ulonglong *)(lVar3 + -0x628)) ^ uVar31;
  uVar13 = DAT_1826715a8;
  lVar2 = DAT_182671560;
  uVar36 = uVar25 ^ *puVar32 ^ *puVar1 ^ uVar22;
  uVar20 = (uVar36 ^ uVar35) >> ((bVar18 ^ 0x1a) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar36;
  *(ulonglong *)(lVar2 + -0xa88) = uVar20 ^ uVar40;
  lVar2 = DAT_182671560;
  uVar36 = (uVar36 ^ uVar35) << (((byte)uVar13 ^ 0x47) & 0x3f);
  *puVar17 = uVar36 ^ uVar24;
  *(uint *)(DAT_182671560 + -0x27c) = 0x816ea261 >> ((byte)*(undefined4 *)(lVar2 + -0x754) & 0x1f);
  uVar5 = DAT_182671568;
  puVar41 = (uint *)(lVar2 - (uVar26 ^ 0x22f47fd4));
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xf21d4cb8)) = (uVar20 | uVar36) ^ uVar52;
  uVar14 = DAT_1826715a8 ^ 0x6e920372;
  *(ulonglong *)(lVar2 + -0x9e8) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x318)) - (uVar52 ^ *puVar1) ^ uVar38;
  uVar13 = DAT_1826715a4;
  *puVar41 = uVar14 + (uVar15 ^ 0xcb3cf241);
  *(ulonglong *)(lVar2 + -0xa88) =
       uVar52 ^ *puVar1 ^ uVar31 ^ *(ulonglong *)(lVar2 + -0x1f0) ^ uVar44;
  *puVar17 = 0x4aa8eca674ccf1a5 - (CONCAT44(uVar5,uVar13) ^ 0x5ec2130fd50c8b08);
  uVar14 = DAT_18267158c;
  uVar42 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar53 << 0x12 | (ulonglong)(((uVar21 & 0xffff | uVar16) << 8 | uVar16) >> 6)) ^
       *(ulonglong *)(lVar2 + -0xa88) >> 0xe ^ uVar40;
  uVar13 = DAT_18267156c;
  uVar36 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0xa2f5fca6)) =
       (CONCAT44(uVar30,DAT_182671578) ^ 0x79736e0fa9b67553) - (uVar52 ^ *puVar1);
  uVar26 = (*puVar46 ^ uVar44) << ((local_e0 ^ 0xcf) & 0x3f);
  *puVar17 = uVar26 ^ uVar33;
  uVar26 = uVar40 ^ *(ulonglong *)(DAT_182671560 + -0x898) | uVar26;
  *puVar1 = uVar26 ^ uVar51;
  lVar2 = DAT_182671560;
  uVar20 = CONCAT44(uVar19,DAT_182671580);
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (CONCAT44(uVar15,uVar10) ^ 0xf7142a173d4fc403) << ((byte)uVar13 & 0x3f);
  uVar20 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x1f0)) - (uVar20 ^ 0xb07b86b00388ed86);
  *(ulonglong *)(lVar2 + -0xa88) = uVar20 ^ uVar38;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xa2a1cd2e)) = uVar20 - uVar26 ^ uVar25;
  uVar30 = DAT_182671574 ^ 0xa8ace7ee;
  *(int *)(lVar3 + -0x27c) =
       *(int *)(lVar3 - ((ulonglong)DAT_182671574 ^ 0x70232424)) <<
       (((byte)DAT_182671590 ^ 0xbe) & 0x1f);
  uVar5 = DAT_18267159c;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar42 ^ 0xa2f5f726)) =
       (uVar51 ^ *puVar1) - (CONCAT44(uVar8,uVar6) ^ 0xaedcab1b71875542) ^ uVar28;
  lVar4 = DAT_182671560;
  uVar20 = uVar51 ^ uVar38 ^ uVar48 ^ *(ulonglong *)(lVar2 + -0x9e8) ^
           *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x318) = uVar20;
  uVar26 = (uVar48 ^ uVar20) >> (((byte)DAT_182671594 ^ 0xb1) & 0x3f);
  *(ulonglong *)(lVar4 + -0x1f0) = uVar26 ^ uVar49;
  uVar20 = (uVar48 ^ uVar20) << 0x30;
  *(ulonglong *)(lVar3 + -0xa88) = uVar20 ^ uVar43;
  uVar19 = DAT_1826715b0;
  *puVar1 = (uVar26 | uVar20) ^ uVar43;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (uVar38 ^ *(ulonglong *)(DAT_182671560 + -0x9e8)) -
       (CONCAT44(uVar7,uVar19) ^ 0x41cca52c5bf01df4) ^ uVar33;
  *puVar41 = uVar14 ^ 0xfcc64a85 | uVar30;
  uVar20 = (ulonglong)DAT_182671590;
  *puVar27 = (uVar33 ^ *(ulonglong *)(lVar2 + -0x628)) - (uVar43 ^ *puVar1) ^ uVar44;
  *(undefined8 *)(lVar2 + -0x1f0) = **(undefined8 **)((uVar20 ^ 0x1d7612af) + lVar2);
  *(ulonglong *)(lVar2 + -0x9e8) =
       (CONCAT44(uVar8,uVar13) ^ 0xbe377338c97b872) + (uVar43 ^ *puVar1) ^ uVar24;
  uVar8 = DAT_1826718bc;
  uVar13 = DAT_182671570;
  uVar26 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671570 ^ 0x33a18a9f)) ^ uVar25 ^ *puVar17;
  *(ulonglong *)(lVar2 + -0x628) = uVar26;
  uVar42 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (uVar24 ^ uVar26) >> (((byte)uVar15 ^ 0x20) & 0x3f) ^ uVar42;
  uVar20 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0xe289ebf8)) =
       (uVar24 ^ uVar26) << (((byte)uVar13 ^ 0x57) & 0x3f) ^ uVar43;
  lVar2 = DAT_182671560;
  uVar31 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (*(ulonglong *)(DAT_182671560 - (uVar20 ^ 0xe289ecb0)) ^ uVar42 | uVar43 ^ *puVar1) ^ uVar35;
  uVar13 = DAT_1826715ac;
  uVar24 = (ulonglong)DAT_182671578;
  uVar20 = CONCAT44(DAT_182671578,uVar5);
  *(ulonglong *)(lVar2 + -0x628) =
       (uVar25 ^ *puVar17) - (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xa2a1c666)) ^ uVar35) ^
       uVar31;
  *(ulonglong *)(lVar2 - (uVar47 ^ 0xf21d4bf0)) =
       uVar28 ^ *(ulonglong *)(lVar2 + -0x898) ^ uVar22 ^ *(ulonglong *)(lVar2 + -0x318);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xcf8ea419)) =
       uVar20 ^ uVar43 ^ *(ulonglong *)(lVar2 + -0xa88) ^ 0x621ebe6c2e58b368;
  uVar26 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0xb29871a0)) =
       *(ulonglong *)(lVar2 + -0x1f0) >> 0x20 ^ uVar26 ^ uVar34;
  uVar8 = DAT_1826717ec;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x898) = 0x929048be1bc4beca >> (((byte)uVar13 ^ 0xbe) & 0x3f);
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar20 = (*(ulonglong *)(lVar2 + -0x1f0) ^ uVar35) << 0x20;
  *(ulonglong *)(lVar2 + -0xa88) = uVar20 ^ uVar22;
  *plVar23 = uVar20 << (((byte)uVar5 ^ 0xae) & 0x3f);
  uVar25 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar43 = uVar22 ^ *(ulonglong *)(lVar3 + -0xa88) | *puVar17 ^ uVar26;
  uVar22 = (ulonglong)DAT_18267185c;
  uVar26 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671594 ^ 0x83773b39)) = uVar43 ^ uVar25;
  uVar20 = *(ulonglong *)(lVar3 + -0x318);
  uVar47 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar25 = *(ulonglong *)(lVar3 + -0x898) ^ uVar26 ^ uVar25 ^ uVar31 ^
           *(ulonglong *)(lVar3 + -0x628);
  *puVar1 = uVar25;
  *puVar17 = (uVar25 >> 0x20 ^ uVar22) >> 0x1a ^ uVar37;
  uVar5 = DAT_18267177c;
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar44 ^ uVar20) - uVar43 ^ uVar47;
  uVar22 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xb05e4880)) = (uVar25 ^ uVar26) << 6 ^ uVar22;
  uVar13 = DAT_182671860 & 0xff;
  DAT_182671860 = ((DAT_182671860 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar20 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar3 + -0x318) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0xa88) | *puVar17 ^ uVar37) ^ uVar20;
  uVar13 = DAT_18267184c & 0xff;
  *(ulonglong *)(lVar3 + -0x898) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x628)) - (*puVar27 ^ uVar20) ^ uVar52;
  DAT_18267184c = ((DAT_18267184c << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar20 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x7ffe7046)) =
       uVar20 ^ uVar47 ^ *(ulonglong *)(lVar3 + -0x1f0) ^ uVar35 ^ *puVar45;
  *puVar17 = (*puVar1 ^ uVar20) >> ((bVar9 ^ 0xb7) & 0x3f) ^ uVar39;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar11;
  return;
}



############ FUN_ 180ebc780 size=4268 ############

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

void FUN_180ebc780(void)

{
  undefined8 *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint *puVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint *puVar33;
  ulonglong uVar34;
  byte *pbVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte local_88;
  byte local_60;
  
  uVar17 = DAT_1826716a4;
  uVar7 = DAT_1826715b0;
  uVar5 = DAT_1826715a0;
  uVar19 = DAT_182671598;
  uVar12 = DAT_182671588;
  uVar4 = DAT_182671580;
  uVar29 = DAT_182671574;
  lVar2 = DAT_182671560;
  uVar21 = (ulonglong)DAT_1826715a0;
  uVar25 = (ulonglong)DAT_182671580;
  uVar37 = (ulonglong)DAT_1826715b0;
  uVar23 = (ulonglong)DAT_182671574;
  uVar30 = DAT_1826715a8 & DAT_182671598;
  uVar18 = *(uint *)(&DAT_182611e78 + DAT_182671bd8) ^ DAT_1826715a0;
  uVar20 = DAT_1826715b0 + DAT_182671574;
  uVar9 = DAT_1826715ac * DAT_1826715a0;
  uVar26 = DAT_182671580 & DAT_182671588;
  uVar10 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar9 ^ 0x8a25ec10) + (longlong)DAT_182671bd8) ^
           DAT_1826715ac;
  uVar15 = (ulonglong)DAT_182671588;
  DAT_182671578 = uVar26;
  DAT_182671584 = uVar30;
  DAT_182671590 = uVar20;
  DAT_18267159c = uVar9;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x8a25eb74)) =
       _DAT_182671838 & 0xff ^ (uint)*(byte *)(DAT_182671560 + -0x41) ^ DAT_1826716a4;
  *(uint *)(lVar2 + -0x344) =
       (*(uint *)(lVar2 - (uVar15 ^ 0xfffff78b)) ^ DAT_18267160c) + (uVar4 ^ 0xd4c7575) ^
       DAT_18267174c;
  uVar13 = (ulonglong)uVar30;
  *(uint *)(lVar2 + -0x910) =
       (*(uint *)(lVar2 - ((ulonglong)uVar26 ^ 0x4bb54d4)) ^ uVar17) <<
       (((byte)DAT_1826715ac ^ 0xf1) & 0x1f) ^ DAT_182671824;
  uVar6 = DAT_1826715a8;
  lVar2 = DAT_182671560;
  uVar34 = (ulonglong)DAT_1826715a8;
  uVar11 = *(uint *)(DAT_182671560 + -0x8c) ^ _DAT_1826715d8;
  uVar27 = (*(uint *)(DAT_182671560 - (uVar34 ^ 0x1f61353e)) ^ DAT_18267174c) -
           (*(uint *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0x15012922)) ^ DAT_182671824) ^
           DAT_182671628;
  *(uint *)(DAT_182671560 + -0x504) = uVar27;
  *(uint *)(lVar2 + -0x3d4) = uVar11 * (uVar27 ^ DAT_182671628) ^ DAT_182671820;
  uVar14 = (ulonglong)uVar20;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (CONCAT44(uVar7,uVar19) ^ 0xf567302a468e6963) << (((byte)uVar20 ^ 0xc5) & 0x3f);
  *(uint *)(lVar2 - (uVar37 ^ 0x367a1b1d)) =
       (uVar17 ^ *(uint *)(lVar2 + -0x774)) * (uVar29 ^ 0x367a1f6b) ^ DAT_182671768;
  *(uint *)(lVar2 + -0x5cc) = (uVar5 ^ 0xd4c7575) + (uVar7 ^ 0xba6c6a6);
  uVar19 = DAT_182671690;
  uVar17 = (*(uint *)(lVar2 - (uVar25 ^ 0x4bb57dc)) ^ DAT_182671768) +
           (*(uint *)(lVar2 + -0x3d4) ^ DAT_182671820);
  *(uint *)(lVar2 + -0x374) = uVar17 ^ DAT_182671690;
  *(uint *)(lVar2 + -0x964) = uVar17 * 0x2000 ^ DAT_182671770;
  *(uint *)(lVar2 + -0x968) =
       (*(uint *)(lVar2 + -0x374) ^ uVar19) >> (((byte)DAT_1826715a8 ^ 0x69) & 0x1f) ^ DAT_1826715e4
  ;
  *(uint *)(lVar2 + -0x27c) =
       (*(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x8a25e568)) ^ DAT_1826715e4 |
       *(uint *)(lVar2 - ((ulonglong)uVar4 ^ 0x4bb5ac4)) ^ DAT_182671770) ^ DAT_1826715ec;
  uVar19 = *(uint *)(lVar2 + -0x8c) ^ _DAT_1826715d8;
  *(ulonglong *)(lVar2 + -0x548) =
       *(ulonglong *)(lVar2 + -0xc08) >> ((byte)*(undefined8 *)(lVar2 + -0x638) & 0x3f);
  *(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0x367a1c49)) =
       uVar19 + (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^ DAT_182671870;
  uVar17 = DAT_1826716f8;
  bVar8 = DAT_1826715dc;
  uVar29 = DAT_1826715ac;
  *(uint *)(lVar2 - ((ulonglong)uVar5 ^ 0x4bb55d8)) =
       *(uint *)(lVar2 + -0x328) ^ DAT_1826717ac ^ DAT_182671870;
  uVar9 = DAT_182671744;
  *(ulonglong *)(lVar2 + -0x3f0) =
       (CONCAT44(uVar29,uVar12) ^ 0x840f2dbc0c653eed) >>
       ((byte)*(undefined8 *)(lVar2 - (uVar13 ^ 0x150128aa)) & 0x3f);
  uVar19 = *(uint *)(lVar2 + -0x27c) ^ DAT_182671700 ^ DAT_1826715ec;
  *(uint *)(lVar2 + -0x844) = uVar17 ^ DAT_1826717ac ^ *(uint *)(lVar2 + -0x678);
  *(uint *)(lVar2 + -0x754) = uVar19;
  uVar19 = uVar19 ^ DAT_182671670 ^ DAT_182671700;
  *(ulonglong *)(lVar2 + -0xa60) =
       *(ulonglong *)(lVar2 - (uVar14 ^ 0x6cf43812)) | CONCAT44(uVar26,uVar12) ^ 0x86053a88b09a128b;
  *(uint *)(lVar2 - (uVar14 ^ 0x6cf436b6)) = uVar19;
  uVar19 = DAT_182671694;
  uVar15 = (ulonglong)DAT_182671694;
  pbVar35 = (byte *)((CONCAT44(uVar12,DAT_182671598) ^ 0xffffffff75132122) +
                     (CONCAT44(uVar29,uVar29) ^ 0x85c99ee085c99ee0) * 0x20 +
                    *(longlong *)(lVar2 + -0x8f0));
  *(ulonglong *)(lVar2 + -0x4f0) = (ulonglong)pbVar35 ^ uVar15;
  *(byte *)(lVar2 - (uVar37 ^ 0x367a1f20)) = *pbVar35 ^ bVar8 ^ (byte)uVar19;
  *(byte *)(lVar2 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0x367a1b91)) ^ uVar15) ^ (byte)uVar19;
  uVar29 = DAT_182671570;
  uVar19 = DAT_18267156c;
  uVar36 = (ulonglong)DAT_18267156c;
  uVar15 = (ulonglong)DAT_18267156c;
  uVar11 = *(uint *)(lVar2 + -0x874) ^ DAT_182671670;
  *(uint *)(lVar2 + -0x344) = (bVar8 ^ *(byte *)(lVar2 + -0x41)) ^ uVar9;
  uVar22 = uVar19 * uVar29;
  uVar32 = (ulonglong)uVar22;
  DAT_18267157c = uVar22;
  *(uint *)(lVar2 - (uVar15 ^ 0x367a1671)) = uVar11 + (uVar22 ^ 0xc072c64a) ^ DAT_182671804;
  bVar16 = (byte)uVar29 ^ 0xee;
  *(uint *)(lVar2 - ((ulonglong)uVar22 ^ 0xc985e59b)) =
       (uVar9 ^ *(uint *)(lVar2 + -0x344)) << (bVar16 & 0x1f) ^ DAT_18267181c;
  lVar2 = DAT_182671560;
  uVar11 = *(uint *)(DAT_182671560 + -0x504) ^ DAT_18267181c;
  uVar27 = *(uint *)(DAT_182671560 + -0x910) ^ DAT_182671804;
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (CONCAT44(uVar29,uVar30) ^ 0x4a4f63b7fdc680e2) << (((byte)uVar29 ^ 0xce) & 0x3f);
  uVar11 = uVar27 - uVar11 ^ DAT_1826715fc;
  *(uint *)(lVar2 + -0x774) = uVar11;
  uVar11 = (uVar11 ^ DAT_1826715fc) * (*(uint *)(lVar2 + -0x844) ^ uVar17) ^ DAT_182671688;
  *(uint *)(lVar2 + -0x5cc) = uVar11;
  uVar28 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar27 = (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x367a1c25)) ^ uVar9) *
           (DAT_18267159c ^ 0x8a25ec15) ^ DAT_1826715f4;
  uVar15 = *(ulonglong *)(DAT_182671560 + -0xa38);
  *(uint *)(lVar2 + -0x3d4) = uVar27;
  uVar9 = DAT_18267184c;
  lVar2 = DAT_182671560;
  uVar11 = (uVar27 ^ DAT_1826715f4) + (uVar11 ^ DAT_182671688) ^ DAT_18267184c;
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       *(ulonglong *)(uVar28 ^ uVar15) ^ CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(uint *)(lVar2 - (uVar34 ^ 0x1f613206)) = uVar11;
  lVar3 = DAT_182671560;
  local_88 = (byte)uVar26;
  *(uint *)(DAT_182671560 - (uVar13 ^ 0x15012346)) =
       (*(uint *)(lVar2 + -0x47c) ^ uVar9) << (((byte)uVar22 ^ 0x92) & 0x1f) ^ DAT_182671634;
  *(ulonglong *)(lVar3 + -0xa88) =
       (CONCAT44(uVar26,uVar19) ^ 0x47bab4d6259e1880) << ((local_88 ^ 0x9e) & 0x3f);
  puVar33 = (uint *)(lVar3 - ((ulonglong)uVar29 ^ 0xfffffb83));
  uVar9 = (*puVar33 ^ uVar9) >> 0x13 ^ DAT_182671638;
  *(uint *)(lVar3 + -0x964) = uVar9;
  uVar11 = (*(uint *)(lVar3 - (uVar25 ^ 0x4bb50d4)) ^ DAT_182671634 | uVar9 ^ DAT_182671638) ^
           DAT_182671640;
  *(longlong *)(lVar3 + -0x600) =
       0x6011b337bce170eb << ((byte)*(undefined8 *)(lVar3 + -0x5c8) & 0x3f);
  uVar9 = *(uint *)(lVar3 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar3 + -0x968) = uVar11;
  *(uint *)(lVar3 + -0x8c) = (*(uint *)(lVar3 + -0x844) ^ uVar17) + uVar9 ^ uVar17;
  *(ulonglong *)(lVar3 + -0x8a8) = *(ulonglong *)(lVar3 + -0x688) | *(ulonglong *)(lVar3 + -0x3b8);
  lVar2 = DAT_182671560;
  uVar9 = *(uint *)(lVar3 - ((ulonglong)uVar19 ^ 0x367a1fed)) ^ DAT_1826717b4;
  uVar15 = (ulonglong)DAT_182671814;
  uVar11 = DAT_182671784 ^ DAT_182671640 ^ uVar11;
  *(ulonglong *)(lVar3 + -0x800) = *(ulonglong *)(lVar3 + -0x400) >> 0x28;
  *(uint *)(lVar3 + -0x328) = uVar9 ^ uVar17;
  *(uint *)(lVar3 + -0x27c) = uVar11;
  uVar27 = DAT_182671788;
  uVar17 = uVar11 ^ DAT_1826716a8 ^ DAT_182671784;
  *(ulonglong *)(lVar3 + -0x510) = 0x28cdef9143665f2d >> (((byte)uVar6 ^ 0x58) & 0x3f);
  puVar24 = (uint *)(lVar3 - (uVar21 ^ 0x4bb5088));
  *(uint *)(lVar2 + -0x678) = *puVar24 ^ uVar27 ^ DAT_1826717b4;
  *(uint *)(lVar2 - (uVar37 ^ 0x367a1835)) = uVar17;
  uVar17 = DAT_182671728;
  pbVar35 = (byte *)(*(longlong *)(lVar2 - (uVar32 ^ 0xc985e86f)) +
                    (CONCAT44(DAT_182671598,uVar6) ^ 0x751321371f61367a) * 0x20);
  *(ulonglong *)(lVar2 + -0x918) = (ulonglong)pbVar35 ^ uVar15;
  bVar8 = DAT_1826716c0;
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 - (uVar32 ^ 0xc985ecde)) = *pbVar35 ^ DAT_1826716c0 ^ (byte)DAT_182671694;
  uVar28 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826715ac ^ 0x85c99694)) =
       (bVar8 ^ *(byte *)(lVar2 + -0xc41)) ^ uVar17;
  *(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0xfffff6ef)) =
       (*(uint *)(lVar2 - (uVar32 ^ 0xc985e7cb)) ^ DAT_1826716a8) + (uVar19 ^ 0x3f8d39b4) ^
       DAT_182671874;
  uVar9 = *(uint *)(lVar2 + -0x910) ^ DAT_182671874;
  uVar15 = CONCAT44(DAT_18267159c,uVar20);
  uVar11 = (*(uint *)(lVar2 + -0x874) ^ uVar17) << 0x11 ^ DAT_1826716b8;
  *(uint *)(lVar2 + -0x504) = uVar11;
  uVar11 = uVar11 ^ DAT_1826716b8;
  *(ulonglong *)(lVar2 + -0x9e8) =
       uVar15 ^ 0x7cd9b03ed83cb5a3 | CONCAT44(uVar4,uVar29) ^ 0x7bef3c6395d1bcb;
  uVar9 = uVar9 - uVar11 ^ DAT_1826717f8;
  *(uint *)(lVar2 + -0x774) = uVar9;
  *(uint *)(lVar2 - (uVar28 ^ 0x85c99da4)) =
       (uVar27 ^ *(uint *)(lVar2 + -0x678)) * (uVar9 ^ DAT_1826717f8) ^ DAT_18267169c;
  uVar9 = DAT_182671648;
  *(uint *)(lVar2 + -0x5cc) =
       (*(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0xfffff78b)) ^ uVar17) * (DAT_1826715a0 ^ 0x4bb53a0)
       ^ DAT_182671608;
  *(uint *)(lVar2 + -0x3d4) =
       (*(uint *)(lVar2 - (uVar21 ^ 0x4bb50e4)) ^ DAT_18267169c) +
       (*(uint *)(lVar2 - ((ulonglong)DAT_182671598 ^ 0x751324fb)) ^ DAT_182671608) ^ uVar9;
  *(undefined8 *)(lVar2 - (uVar34 ^ 0x1f6136fa)) = 0x691194743fb765e3;
  *(uint *)(lVar2 + -0x47c) = (*(uint *)(lVar2 + -0x3d4) ^ uVar9) << 0xd ^ DAT_1826717cc;
  uVar11 = DAT_182671760;
  uVar17 = DAT_182671634;
  uVar29 = DAT_18267159c;
  uVar9 = (*(uint *)(lVar2 - (uVar13 ^ 0x150123e6)) ^ uVar9) >> 0x13 ^ DAT_1826718ac;
  *(uint *)(lVar2 + -0x374) = uVar9;
  uVar15 = (ulonglong)DAT_1826718bc;
  uVar31 = (*(uint *)(lVar2 - (uVar23 ^ 0x367a1b1d)) ^ DAT_1826717cc | uVar9 ^ DAT_1826718ac) ^
           uVar11;
  *(uint *)(lVar2 + -0x964) = uVar31;
  uVar30 = DAT_1826717c8;
  uVar31 = uVar31 ^ DAT_1826718c0;
  *(uint *)(lVar2 + -0x844) =
       (*(uint *)(lVar2 - (uVar32 ^ 0xc985e9fb)) ^ uVar11) + (DAT_1826715b0 ^ 0x3f8d39b4);
  lVar3 = DAT_182671560;
  uVar9 = (*(uint *)(lVar2 - (uVar23 ^ 0x367a1ca9)) ^ DAT_182671624) +
          (*(uint *)(DAT_182671560 - (uVar36 ^ 0x367a1919)) ^ uVar27) ^ DAT_182671620;
  local_60 = (byte)uVar12;
  *(uint *)(DAT_182671560 + -0x8c) = uVar9;
  *(uint *)(lVar3 + -0x968) = uVar9 ^ DAT_182671698 ^ DAT_182671620;
  *(ulonglong *)(lVar3 + -0x9f8) = 0x357c6ef6b2e2ce64 >> ((local_60 ^ 0xc4) & 0x3f);
  *(uint *)(lVar3 + -0x328) = uVar31 ^ uVar11;
  *(uint *)(lVar3 - (uVar13 ^ 0x1501224e)) =
       *(uint *)(lVar3 - (uVar13 ^ 0x1501295a)) ^ DAT_182671698 ^ uVar17;
  *(uint *)(lVar3 + -0x754) = uVar30 ^ DAT_1826718c0 ^ *puVar24;
  uVar12 = DAT_1826716a0;
  uVar9 = DAT_182671694;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0x75132db7)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar29 ^ 0x8a25e4f0)) +
       (CONCAT44(uVar19,uVar20) ^ 0x367a1f616cf43ec9) ^ uVar15;
  bVar8 = DAT_1826715f0;
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x41) =
       *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar13 ^ 0x15012cb2)) ^ uVar15) ^ DAT_1826715f0 ^
       (byte)uVar9;
  *(uint *)(lVar2 + -0x910) = *(uint *)(lVar2 + -0x754) ^ uVar30 | uVar29 ^ 0x889445fd;
  uVar29 = (uint)(*(byte *)(lVar2 - (uVar25 ^ 0x4bb53e1)) ^ bVar8);
  *(uint *)(lVar2 + -0x504) = uVar29 ^ uVar12;
  lVar3 = DAT_182671560;
  uVar27 = uVar29 << (bVar16 & 0x1f) ^ DAT_1826717b0;
  uVar20 = DAT_182671598 ^ 0xb0767056;
  uVar11 = (*(uint *)(lVar2 - (uVar34 ^ 0x1f61312e)) ^ uVar30) + (DAT_182671598 ^ 0x7ce407e2);
  uVar29 = uVar11 ^ DAT_1826716ac;
  *(uint *)(DAT_182671560 + -0x874) = uVar27;
  uVar27 = uVar27 ^ DAT_1826717b0;
  *(uint *)(lVar3 + -0x774) = uVar29;
  uVar29 = DAT_1826718c8;
  *(uint *)(lVar3 + -0x344) = uVar11 - uVar27 ^ DAT_1826718c8;
  *(uint *)(lVar3 - (uVar23 ^ 0x367a1aad)) = (DAT_182671588 ^ 0xf9262729) * uVar20;
  lVar2 = DAT_182671560;
  puVar1 = (undefined8 *)(DAT_182671560 + -0x748);
  uVar27 = (*(uint *)(lVar3 - (uVar21 ^ 0x4bb51dc)) ^ uVar17) *
           (uVar29 ^ *(uint *)(DAT_182671560 + -0x344)) ^ DAT_1826717e8;
  *(uint *)(DAT_182671560 + -0x3d4) = uVar27;
  uVar29 = DAT_182671588;
  uVar27 = uVar27 ^ DAT_1826717e8;
  *(ulonglong *)(lVar2 + -0x110) = 0xfe87adbdc8db0923 >> ((byte)*puVar1 & 0x3f);
  uVar11 = DAT_182671898;
  uVar12 = (*(uint *)(lVar2 + -0x504) ^ uVar12) * (uVar29 ^ 0xfffffff4) ^ _DAT_182671838;
  *(uint *)(lVar2 + -0x374) = uVar12;
  uVar29 = DAT_182671840;
  *(uint *)(lVar2 + -0x47c) = (uVar12 ^ _DAT_182671838) + uVar27 ^ uVar11;
  uVar12 = DAT_1826715ac;
  uVar27 = (uVar11 ^ *puVar33) << 0xd;
  *(uint *)(lVar2 + -0x844) = uVar27 ^ uVar29;
  uVar29 = *(uint *)(lVar2 + -0x3c8) ^ DAT_182671624;
  uVar11 = (*(uint *)(lVar2 - (uVar28 ^ 0x85c99a9c)) ^ uVar11) >> (((byte)uVar12 ^ 0xf3) & 0x1f) ^
           DAT_1826716f0;
  *(uint *)(lVar2 + -0x678) = uVar11;
  *(uint *)(lVar2 + -0x8c) = (uVar27 | uVar11 ^ DAT_1826716f0) ^ DAT_1826718d4;
  *(uint *)(lVar2 + -0x964) = (*(uint *)(lVar2 + -0x27c) ^ uVar17) + uVar29 ^ DAT_182671850;
  *(uint *)(lVar2 - ((ulonglong)uVar26 ^ 0x4bb5ac8)) =
       *(uint *)(lVar2 - (uVar23 ^ 0x367a1605)) ^ DAT_182671850 ^ DAT_1826715c0;
  uVar17 = *(uint *)(lVar2 + -0x8c) ^ _DAT_18267161c ^ DAT_1826718d4;
  uVar29 = DAT_1826715bc ^ DAT_1826715c0;
  *(uint *)(lVar2 + -0x328) = uVar17;
  uVar17 = uVar17 ^ DAT_18267168c ^ _DAT_18267161c;
  *(uint *)(lVar2 + -0x910) = uVar29 ^ *(uint *)(lVar2 + -0x968);
  *(uint *)(lVar2 + -0x754) = uVar17;
  uVar29 = _DAT_1826715d8;
  uVar15 = (ulonglong)DAT_1826717d8;
  uVar17 = _DAT_1826715d8 & 0xff;
  *(ulonglong *)(lVar2 + -0xd20) =
       (CONCAT44(uVar22,uVar4) ^ 0xc985e09f04bb53a0) * 0x20 +
       (CONCAT44(uVar7,uVar5) ^ 0x367a1f6104bb53b6) + *(longlong *)(lVar2 + -0x8f0) ^ uVar15;
  *(byte *)(lVar2 - (uVar36 ^ 0x367a1320)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar14 ^ 0x6cf433e2)) ^ uVar15) ^ (byte)uVar29 ^
       (byte)uVar9;
  *(uint *)(lVar2 - (uVar32 ^ 0xc985e7eb)) = uVar17 ^ *(byte *)(lVar2 + -0xc41) ^ DAT_182671854;
  uVar4 = DAT_182671598;
  *(uint *)(lVar2 + -0x874) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x15012766)) ^ DAT_18267168c) + (DAT_1826715a8 ^ 0x169610af) ^
       DAT_182671830;
  uVar29 = DAT_1826715ac >> 0x18;
  *(ulonglong *)(lVar2 + -0x6b8) =
       CONCAT44(uVar19,uVar6) ^ CONCAT44(uVar26,uVar4) ^ 0x1a804db6bd5d2e6e;
  DAT_1826715b4 = (uVar12 << 0x10 | uVar12 & 0xff00) << 8 | uVar12 >> 8 & 0xff00 | uVar29;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar18;
  return;
}



############ FUN_ 180e8e1f0 size=5792 ############

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

void FUN_180e8e1f0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  ulonglong *puVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  
  uVar3 = DAT_182671878;
  uVar5 = DAT_182671578;
  uVar21 = DAT_182671568;
  lVar1 = DAT_182671560;
  uVar24 = (ulonglong)DAT_182671568;
  uVar42 = (ulonglong)DAT_182671578;
  uVar14 = DAT_182671568 - DAT_182671578;
  uVar36 = (ulonglong)uVar14;
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_182671b50) ^ DAT_182671568;
  uVar15 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar14 ^ 0x1f8410ac) + (longlong)DAT_182671b50) ^
           DAT_182671578;
  uVar32 = CONCAT44(DAT_182671688,DAT_182671688);
  uVar30 = uVar32 ^ *(ulonglong *)(DAT_182671560 + -0x110);
  uVar26 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  DAT_182671588 = uVar14;
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (*(ulonglong *)(DAT_182671560 - (uVar36 ^ 0x1f841604)) ^
       CONCAT44(DAT_1826716e4,DAT_1826716e4)) + uVar30 ^ uVar26;
  uVar27 = CONCAT44(uVar3,uVar3);
  puVar16 = (ulonglong *)(lVar1 - (uVar42 ^ 0xdffbd917));
  *puVar16 = uVar30 << 0x34 ^ uVar27;
  *(ulonglong *)(lVar1 + -0x688) =
       CONCAT44(uVar5,uVar14) ^ uVar26 ^ *(ulonglong *)(lVar1 + -0x9f8) ^ 0x193ceb4ee4a9cba9;
  uVar11 = DAT_18267170c;
  uVar10 = DAT_182671700;
  bVar23 = (byte)uVar21;
  uVar30 = (uVar32 ^ *(ulonglong *)(lVar1 + -0x110)) >> ((bVar23 ^ 0xf7) & 0x3f);
  puVar40 = (ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xdffbd877));
  uVar31 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *puVar40 = uVar30 ^ CONCAT44(DAT_182671680,DAT_182671680);
  uVar30 = (uVar27 ^ *(ulonglong *)(lVar1 + -0x628) | uVar30) ^ uVar31;
  uVar22 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x670) = uVar30;
  uVar3 = DAT_1826718cc;
  uVar10 = DAT_1826717c4;
  uVar8 = DAT_1826715a0;
  uVar4 = DAT_182671570;
  uVar33 = (ulonglong)DAT_182671570;
  uVar29 = DAT_1826715a0 | DAT_182671570;
  *(ulonglong *)(lVar1 + -0x318) =
       uVar22 ^ uVar31 ^ uVar26 ^ uVar30 ^ *(ulonglong *)(lVar1 + -0x9f8);
  uVar45 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  uVar25 = (ulonglong)uVar29;
  DAT_18267157c = uVar29;
  *(ulonglong *)(lVar1 + -0x5c8) =
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar1 + -0x610)) +
       (CONCAT44(uVar3,uVar3) ^ *(ulonglong *)(lVar1 + -0xbf0)) ^ uVar45;
  puVar44 = (ulonglong *)(lVar1 - (uVar25 ^ 0xfdfff50f));
  uVar32 = (ulonglong)uVar8;
  bVar19 = (byte)uVar8;
  uVar34 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *(ulonglong *)(lVar1 - (uVar33 ^ 0x75fef107)) =
       (CONCAT44(uVar3,uVar3) ^ *puVar44) << ((bVar19 ^ 0x27) & 0x3f) ^ uVar34;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       CONCAT44(uVar8,uVar4) ^ uVar27 ^ *(ulonglong *)(DAT_182671560 + -0x628) ^ 0x60e076bd4d9a3ae4;
  uVar13 = DAT_18267187c;
  uVar27 = ((ulonglong)uVar3 << 0x19 | (ulonglong)(uVar3 >> 7)) ^
           *(ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0xd80d7dee)) >> 7;
  *(ulonglong *)(lVar1 + -0x1f0) = uVar27 ^ CONCAT44(DAT_1826716f4,DAT_1826716f4);
  lVar2 = DAT_182671560;
  puVar37 = (ulonglong *)(lVar1 + -0x600);
  uVar30 = *(ulonglong *)(DAT_182671560 + -0x9e8);
  *puVar37 = 0x457209cfb4c99f8 << ((bVar19 ^ 0x27) & 0x3f);
  uVar10 = DAT_182671780;
  uVar38 = CONCAT44(uVar13,uVar13);
  puVar17 = (ulonglong *)(DAT_182671560 - (uVar24 ^ 0xff7fec0b));
  *puVar17 = (uVar27 | uVar34 ^ uVar30) ^ uVar38;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar30 = uVar45 ^ *(ulonglong *)(lVar2 + -0x5c8) ^ *(ulonglong *)(lVar2 + -0x3f0) ^ uVar34 ^
           uVar38;
  *(ulonglong *)(lVar2 + -0x638) = uVar30;
  uVar10 = DAT_182671760;
  uVar30 = uVar30 ^ uVar34;
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0x75fefed7)) ^ uVar34 ^ 0x411bec63b6eb25d6;
  uVar13 = DAT_1826718c4;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x688) = (uVar26 ^ *(ulonglong *)(lVar2 + -0x9f8)) + uVar30 ^ uVar27;
  uVar26 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xd80d770e)) = uVar30 << (((byte)uVar29 ^ 0xe8) & 0x3f) ^ uVar26;
  uVar10 = DAT_182671864;
  lVar1 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x748) =
       *(ulonglong *)(lVar2 - (uVar24 ^ 0xff7feaeb)) ^ CONCAT44(DAT_182671884,DAT_182671884) ^
       *(ulonglong *)(lVar2 + -0x3f0) ^ uVar38;
  uVar30 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xdffbd92f)) =
       (*(ulonglong *)(lVar1 + -0x638) ^ uVar34) >> (((byte)uVar4 ^ 0xc6) & 0x3f) ^ uVar30;
  uVar30 = (*(ulonglong *)(lVar1 - (uVar25 ^ 0xfdffffef)) ^ uVar26 |
           *(ulonglong *)(lVar1 + -0x610) ^ uVar30) ^ uVar31;
  *(ulonglong *)(lVar1 + -0x628) = uVar30;
  uVar10 = DAT_182671648;
  *(ulonglong *)(lVar1 + -0xa60) =
       (CONCAT44(uVar14,uVar14) ^ 0x817b24e0de8fc088) >>
       (((byte)uVar11 ^ *(byte *)(lVar1 + -0x670)) & 0x3f);
  uVar34 = CONCAT44(uVar10,uVar10);
  *puVar44 = uVar31 ^ *(ulonglong *)(lVar1 + -0x688) ^ uVar30 ^ uVar34 ^ uVar27;
  uVar35 = uVar22 ^ *(ulonglong *)(lVar1 + -0x318);
  puVar18 = (ulonglong *)(lVar1 - (uVar32 ^ 0xd80d73d6));
  uVar39 = CONCAT44(DAT_182671608,DAT_182671608);
  uVar45 = (uVar45 ^ *puVar18) + uVar35 ^ uVar39;
  *puVar37 = uVar45;
  uVar28 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar26 = CONCAT44(DAT_182671758,DAT_182671758);
  uVar35 = uVar35 << (((byte)uVar5 ^ 0x17) & 0x3f);
  puVar44 = (ulonglong *)(DAT_182671560 - (uVar36 ^ 0x1f8413a4));
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar35 ^ uVar28;
  uVar10 = DAT_182671638;
  lVar1 = DAT_182671560;
  uVar30 = (*puVar44 ^ uVar22) >> ((bVar19 ^ 6) & 0x3f);
  uVar38 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar30 ^ uVar26;
  *(uint *)(lVar1 + -0x328) = (uVar5 ^ 0x77e9bc40) + 0xbbd1d650;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x6b8) = (uVar30 | uVar35) ^ uVar38;
  *(ulonglong *)(lVar1 + -0x9f8) =
       *(ulonglong *)(lVar1 - (uVar33 ^ 0x75fefe57)) ^ uVar45 ^ uVar26 ^ uVar38 ^ uVar39;
  uVar35 = CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar30 = (ulonglong)_DAT_1826715e0;
  *(ulonglong *)(lVar1 + -0x510) =
       (*(ulonglong *)(lVar1 - (uVar24 ^ 0xff7fe603)) ^ uVar26) +
       (*(ulonglong *)(lVar1 + -0x688) ^ uVar27) ^ uVar35;
  *(byte *)(lVar1 - (uVar25 ^ 0xfdfffd56)) =
       *(byte *)(*(ulonglong *)(lVar1 + -0xc80) ^ uVar30) ^ (byte)DAT_1826717c0;
  uVar38 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar1 + -0x3f0) = (*(ulonglong *)(lVar1 + -0x9f8) ^ uVar26) << 5 ^ uVar38;
  *puVar40 = (uVar28 ^ *(ulonglong *)(lVar1 + -0x9e8)) -
             (CONCAT44(uVar21,uVar4) ^ 0x49d940b238b57599);
  uVar7 = DAT_182671590;
  uVar30 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0xff7fe9c3)) =
       (*(ulonglong *)(lVar1 + -0x9f8) ^ uVar26) >> ((bVar19 ^ 0x25) & 0x3f) ^ uVar30;
  uVar10 = DAT_1826718d0;
  uVar6 = DAT_182671584;
  *(ulonglong *)(lVar1 + -0x110) =
       CONCAT44(DAT_182671584,uVar7) ^ 0x1e74dcacfd250d45 | *(ulonglong *)(lVar1 + -0x638) ^ uVar30;
  uVar45 = CONCAT44(uVar10,uVar10);
  uVar30 = (*(ulonglong *)(lVar1 - (uVar32 ^ 0xd80d75ee)) ^ uVar38 |
           *(ulonglong *)(lVar1 - (uVar42 ^ 0xdffbd907)) ^ uVar30) ^ uVar45;
  uVar38 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar1 + -0x610) = uVar30;
  uVar11 = DAT_182671704;
  uVar12 = DAT_1826715b4;
  uVar3 = DAT_1826715ac;
  uVar26 = *(ulonglong *)(lVar1 + -0xbf0) ^ uVar34;
  *(ulonglong *)(lVar1 + -0x670) =
       *(ulonglong *)(lVar1 - (uVar33 ^ 0x75fefdff)) ^ uVar38 ^ uVar30 ^ uVar45 ^ uVar35;
  uVar10 = DAT_1826715a8;
  uVar46 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0xa60) = (*puVar37 ^ uVar39) + uVar26 ^ uVar46;
  uVar45 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *puVar16 = uVar26 << (((byte)uVar3 ^ 0xda) & 0x3f) ^ uVar45;
  uVar11 = DAT_1826718c0;
  uVar30 = (*(ulonglong *)(lVar1 + -0xbf0) ^ uVar34) >> ((bVar19 ^ 5) & 0x3f);
  *(ulonglong *)(lVar1 + -0x5c8) = uVar30 ^ CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar26 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0x318) = (*(ulonglong *)(lVar1 + -0x628) ^ uVar45 | uVar30) ^ uVar26;
  uVar3 = DAT_18267156c;
  uVar34 = CONCAT44(DAT_18267175c,DAT_18267175c);
  puVar16 = (ulonglong *)(lVar1 - (uVar24 ^ 0xff7fe59b));
  uVar45 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar30 = *(ulonglong *)(lVar1 - ((ulonglong)uVar12 ^ 0x75fefbf7)) ^ *puVar16 ^ uVar34 ^ uVar26 ^
           uVar46;
  *(ulonglong *)(lVar1 + -0x1f0) = uVar30;
  uVar9 = DAT_1826715a4;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xfffff947)) =
       (CONCAT44(uVar8,uVar14) ^ 0x1dd4e0256647352a) + (uVar30 ^ uVar34) ^ uVar45;
  uVar11 = DAT_1826715b0;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 - (uVar33 ^ 0x75fefe67)) =
       CONCAT44(DAT_1826715b0,uVar9) ^ uVar45 ^ *(ulonglong *)(lVar1 + -0x6b8) ^ 0xe3a7a8d364f0778c;
  uVar13 = DAT_1826717dc;
  uVar29 = DAT_182671580;
  uVar26 = CONCAT44(DAT_182671800,DAT_182671800);
  uVar30 = (CONCAT44(uVar14,uVar9) ^ 0x5bcf77763438b0e7) + (*(ulonglong *)(lVar1 + -0x510) ^ uVar35)
  ;
  *(ulonglong *)(lVar1 + -0x9e8) = uVar30 ^ uVar26;
  lVar1 = DAT_182671560;
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xf3d1e23c)) =
       uVar30 + (uVar45 ^ *(ulonglong *)(lVar2 + -0x6b8)) ^ uVar41;
  uVar13 = DAT_182671738;
  uVar34 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(lVar1 + -0x9f8) =
       (uVar45 ^ *(ulonglong *)(lVar1 + -0x6b8)) << (((byte)uVar5 ^ 0x26) & 0x3f) ^ uVar34;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x110) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xfdfff847)) ^ uVar45) >> (((byte)uVar29 ^ 0x1c) & 0x3f) ^
       uVar30;
  uVar5 = DAT_182671574;
  uVar45 = (ulonglong)DAT_182671574;
  *(int *)(lVar1 - ((ulonglong)DAT_182671598 ^ 0xc555ed17)) =
       *(int *)(lVar1 - (uVar36 ^ 0x1f8418c8)) << 9;
  uVar7 = DAT_182671804;
  lVar2 = DAT_182671560;
  uVar35 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar30 = (uVar34 ^ *(ulonglong *)(lVar1 + -0x9f8) | uVar30 ^ *(ulonglong *)(lVar1 + -0x110)) ^
           uVar35;
  *(ulonglong *)(lVar1 + -0x3f0) = uVar30;
  uVar3 = DAT_18267156c;
  uVar43 = CONCAT44(uVar7,uVar7);
  puVar44 = (ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0xf8ef72b6));
  *(ulonglong *)(lVar2 + -0x638) = *puVar44 ^ uVar43 ^ uVar30 ^ uVar35 ^ uVar41;
  uVar7 = DAT_1826718b4;
  puVar40 = (ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x75fefeff));
  uVar39 = (ulonglong)DAT_1826718b4;
  uVar34 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *puVar40 = (CONCAT44(uVar21,uVar5) ^ 0xe921e3b16fa49c68) << (((byte)uVar3 ^ 0xfd) & 0x3f);
  uVar3 = DAT_182671594;
  uVar30 = *(ulonglong *)(lVar2 + -0x3f0);
  *puVar37 = (CONCAT44(uVar8,uVar29) ^ 0xf37c0437c9a4791e) +
             (*(ulonglong *)(lVar2 + -0x670) ^ uVar38) ^ uVar34;
  *(ulonglong *)(lVar2 + -0xbf0) = CONCAT44(uVar11,uVar5) ^ 0x93674f272d9776e7 | uVar35 ^ uVar30;
  lVar1 = DAT_182671560;
  uVar30 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xff7fe9d3)) =
       (CONCAT44(uVar3,DAT_182671584) ^ 0xc0bf0d83296cedd9) +
       (*(ulonglong *)(DAT_182671560 + -0xa60) ^ uVar46) ^ uVar30;
  uVar11 = DAT_1826715b8;
  uVar35 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(lVar1 + -0x5c8) =
       (*(ulonglong *)(lVar1 + -0x628) ^ uVar30) + (*puVar37 ^ uVar34) ^ uVar35;
  uVar5 = DAT_1826715ac;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0x318) =
       (*(ulonglong *)(lVar1 - ((ulonglong)DAT_18267158c ^ 0xf8ef73fe)) ^ uVar34) << 0x21 ^ uVar38;
  uVar11 = DAT_182671630;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar3 ^ 0x64b48906)) ^ uVar26) -
       (CONCAT44(uVar5,uVar14) ^ 0x58d21b896968cbae);
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar47 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar1 + -0x688) =
       ((ulonglong)(uVar7 >> 0x1f) | uVar39 * 2) ^ *puVar37 >> 0x1f ^ uVar30;
  uVar3 = DAT_1826718ac;
  uVar34 = (ulonglong)DAT_1826718ac;
  uVar46 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  *(ulonglong *)(lVar1 - (uVar47 ^ 0xff7feaeb)) =
       (CONCAT44(uVar6,DAT_182671598) ^ 0xf1f2f8a06d3d1ce1) >> ((bVar23 ^ 199) & 0x3f);
  uVar26 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar30 = (*(ulonglong *)(lVar1 - (uVar24 ^ 0xff7fe973)) ^ uVar30 |
           uVar38 ^ *(ulonglong *)(lVar1 + -0x318)) ^ uVar26;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar30;
  *(ulonglong *)(lVar1 + -0x9f8) = *puVar18 ^ uVar46 ^ uVar30 ^ uVar26 ^ uVar35;
  *(ulonglong *)(lVar1 + -0x110) =
       (CONCAT44(uVar21,uVar5) ^ 0x3825396c3ff2e765) + 0xf1c6f4d01eb90800;
  uVar11 = DAT_1826717c0;
  uVar5 = DAT_1826715a4;
  uVar39 = CONCAT44(DAT_182671854,DAT_182671854);
  uVar38 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *puVar40 = (*(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x3bcf3c87)) ^ uVar41) +
             (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a4 ^ 0x6fd5580b)) ^ uVar46) ^
             uVar39;
  lVar1 = DAT_182671560;
  uVar30 = *(ulonglong *)(DAT_182671560 + -0x9f8);
  uVar26 = (uVar30 ^ uVar46) << (((byte)uVar4 ^ 0xc1) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar26 ^ uVar38;
  *(ulonglong *)(lVar1 + -0x3f0) = *(ulonglong *)(lVar1 + -0x610) ^ uVar39 | 0x7ce5898eaf4b3bae;
  lVar1 = DAT_182671560;
  uVar30 = ((ulonglong)(uVar3 >> 0x12) | uVar34 << 0xe) ^ uVar30 >> 0x12;
  uVar34 = (ulonglong)DAT_182671584;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar30 ^ CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar30 = (uVar30 | uVar26) ^ uVar22;
  uVar43 = uVar43 ^ *(ulonglong *)(lVar1 + -0x638);
  *(ulonglong *)(lVar1 + -0xa60) = uVar30;
  uVar38 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar1 + -0x628) =
       uVar22 ^ *(ulonglong *)(lVar1 + -0x610) ^ uVar38 ^ uVar39 ^ uVar30;
  uVar41 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar1 + -0x9e8) = (*(ulonglong *)(lVar1 + -0x5c8) ^ uVar35) + uVar43 ^ uVar41;
  uVar26 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar30 = CONCAT44(DAT_182671784,DAT_182671784);
  *(ulonglong *)(lVar1 + -0x1f0) = uVar43 << 0xc ^ uVar26;
  *(ulonglong *)(lVar1 - (uVar34 ^ 0xcf3bc93b)) =
       (*(ulonglong *)(lVar1 + -0x638) >> 0x20 ^ (ulonglong)DAT_182671804) >> 0x14 ^ uVar30;
  uVar34 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar1 + -0x510) =
       (uVar30 ^ *puVar37 | uVar26 ^ *(ulonglong *)(lVar1 + -0x1f0)) ^ uVar34;
  uVar35 = (ulonglong)DAT_18267158c;
  uVar43 = (ulonglong)DAT_182671590;
  *(byte *)(lVar1 - (uVar32 ^ 0xd80d7ad7)) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x8f8) ^ (ulonglong)DAT_182671878) ^ (byte)uVar11;
  lVar1 = DAT_182671560;
  uVar46 = CONCAT44(DAT_182671714,DAT_182671714);
  uVar30 = uVar46 ^ uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x510) ^ uVar41 ^
           *(ulonglong *)(DAT_182671560 + -0x9e8);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar30;
  uVar30 = uVar30 ^ uVar46;
  *(ulonglong *)(lVar1 + -0x688) = uVar30 - (CONCAT44(uVar10,DAT_18267158c) ^ 0x308a975576a06fa1);
  uVar3 = DAT_182671580;
  uVar45 = CONCAT44(DAT_18267164c,DAT_18267164c);
  uVar32 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar1 + -0x6b8) = (*(ulonglong *)(lVar1 + -0x610) ^ uVar39) + uVar30 ^ uVar45;
  uVar26 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0xce3bce2b)) =
       (*(ulonglong *)(lVar1 - (uVar43 ^ 0xf3d1e66c)) ^ uVar46) <<
       (((byte)DAT_1826715b0 ^ 0x2b) & 0x3f) ^ uVar26;
  uVar21 = DAT_18267156c;
  uVar32 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *puVar44 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar3 ^ 0xce3bcc23)) ^ uVar46) >>
             (((byte)DAT_18267156c ^ 0xf9) & 0x3f) ^ uVar32;
  uVar3 = DAT_1826715b4;
  lVar1 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       (*(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x75fef9ff)) ^ uVar26 |
       *(ulonglong *)(DAT_182671560 + -0x748) ^ uVar32) ^ uVar30;
  *(ulonglong *)(lVar1 - (uVar42 ^ 0xdffbd6c7)) =
       CONCAT44(uVar21,uVar14) ^ 0xeb0298615e391c8f | uVar45 ^ *(ulonglong *)(lVar1 + -0x6b8);
  uVar10 = DAT_1826716b0;
  uVar32 = *(ulonglong *)(lVar1 + -0x628) ^ uVar38;
  *(ulonglong *)(lVar1 + -0x670) =
       *(ulonglong *)(lVar1 - (uVar47 ^ 0xff7fe943)) ^ uVar31 ^ uVar30 ^ uVar45 ^
       *(ulonglong *)(lVar1 + -0x3f0);
  uVar11 = DAT_182671818;
  uVar39 = CONCAT44(uVar10,uVar10);
  uVar33 = CONCAT44(DAT_182671818,DAT_182671818);
  *(ulonglong *)(lVar1 + -0xbf0) = (uVar41 ^ *(ulonglong *)(lVar1 + -0x9e8)) + uVar32 ^ uVar39;
  *(ulonglong *)(lVar1 - (uVar42 ^ 0xdffbd55f)) =
       uVar32 << (((byte)DAT_1826715a8 ^ 0xf8) & 0x3f) ^ uVar33;
  lVar2 = DAT_182671560;
  uVar34 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x75fefd27)) =
       (*(ulonglong *)(lVar1 + -0x628) ^ uVar38) >> (((byte)uVar5 ^ 0xd9) & 0x3f) ^ uVar34;
  uVar34 = *(ulonglong *)(lVar1 + -0x5c8) ^ uVar34;
  uVar30 = *(ulonglong *)(lVar2 + -0x6b8);
  uVar26 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar1 + -0x638) = uVar34 | 0x1c1a29927e4e38c8;
  uVar10 = DAT_1826716fc;
  uVar38 = CONCAT44(DAT_182671718,DAT_182671718);
  uVar32 = *(ulonglong *)(lVar2 + -0xbf0);
  uVar26 = (*(ulonglong *)(lVar1 - (uVar26 ^ 0xc555e4bf)) ^ uVar33 | uVar34) ^ uVar38;
  *puVar37 = uVar26;
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar32 = uVar32 ^ uVar33 ^ uVar26 ^ uVar38 ^ uVar39;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar32;
  *(ulonglong *)(lVar2 + -0x510) =
       (uVar32 ^ uVar33) << ((*(byte *)(lVar2 - (uVar36 ^ 0x1f841adc)) ^ (byte)uVar11) & 0x3f);
  uVar34 = (uVar33 ^ uVar32) << (((byte)uVar3 ^ 0xcf) & 0x3f);
  uVar26 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar2 + -0x610) = uVar34 ^ uVar27;
  uVar10 = DAT_182671848;
  uVar38 = (uVar33 ^ uVar32) + (uVar45 ^ uVar30) ^ uVar26;
  *(ulonglong *)(lVar2 + -0x688) = uVar38;
  lVar1 = DAT_182671560;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar27 = CONCAT44(DAT_182671654,DAT_182671654);
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) >> ((bVar23 ^ 0xdb) & 0x3f) ^ uVar30;
  uVar10 = DAT_182671828;
  uVar32 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar1 + -0x110) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xfdfffde7)) ^ uVar30 | uVar34) ^ uVar27;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar25 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar1 + -0x748) =
       *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826715ac ^ 0xf7fffcef)) ^ uVar30 ^ uVar27 ^ uVar26 ^
       uVar38;
  uVar21 = ~DAT_182671568;
  DAT_18267158c = uVar21 ^ 0xd67df3f0;
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x64b48916)) =
       (*(ulonglong *)(lVar1 - (uVar35 ^ 0xf8ef7e0e)) ^ uVar39) +
       (uVar31 ^ *(ulonglong *)(lVar1 + -0x670)) ^ uVar25;
  uVar27 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *puVar17 = (uVar31 ^ *(ulonglong *)(lVar1 + -0x670)) << 0x20 ^ uVar27;
  *(ulonglong *)(lVar1 + -0x9e8) =
       (*(ulonglong *)(lVar1 + -0x748) ^ uVar30) >> ((bVar23 ^ 0xd9) & 0x3f);
  uVar30 = (uVar31 ^ *(ulonglong *)(lVar1 + -0x670)) >> (((byte)uVar21 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar1 + -0x628) = uVar30 ^ CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar10 = DAT_1826717b8;
  *(ulonglong *)(lVar1 + -0x638) = *(ulonglong *)(*(ulonglong *)(lVar1 + -0x178) ^ uVar22) ^ uVar28;
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0xff7fea33)) =
       (uVar27 ^ *(ulonglong *)(lVar1 + -0x3f0) | uVar30) ^ uVar32;
  uVar27 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar30 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0xff7fe9fb)) =
       *(ulonglong *)(lVar1 + -0x5c8) ^ uVar27 ^ uVar32 ^ uVar25 ^ *(ulonglong *)(lVar1 + -0x9f8);
  *puVar16 = (uVar27 ^ *puVar37) + (CONCAT44(uVar21,uVar21) ^ 0xa48b9d69e6d732e6) ^ uVar30;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar20;
  return;
}



############ FUN_ 180ea9130 size=4094 ############

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

void FUN_180ea9130(void)

{
  uint *puVar1;
  uint *puVar2;
  byte bVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  byte *pbVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  longlong lVar38;
  ulonglong uVar39;
  byte *pbVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  
  uVar12 = DAT_1826715b4;
  uVar11 = DAT_1826715b0;
  uVar25 = DAT_1826715a0;
  uVar22 = DAT_182671588;
  uVar35 = DAT_18267157c;
  uVar8 = DAT_182671578;
  lVar5 = DAT_182671560;
  uVar32 = (ulonglong)DAT_1826715b0;
  uVar19 = (ulonglong)DAT_1826715a0;
  uVar39 = (ulonglong)DAT_182671578;
  uVar27 = (ulonglong)DAT_182671588;
  uVar28 = DAT_1826715a0 & DAT_1826715b0;
  uVar26 = (ulonglong)DAT_18267157c;
  uVar20 = (ulonglong)DAT_1826715b4;
  uVar33 = *(uint *)(&DAT_182611e78 + DAT_182671ba0) ^ DAT_1826715b0;
  uVar4 = *(uint *)(&DAT_182611e80 + DAT_182671ba0);
  uVar42 = DAT_182671578 + DAT_182671588;
  uVar21 = DAT_18267157c + DAT_1826715b4;
  uVar37 = CONCAT44(DAT_18267157c,DAT_182671588);
  DAT_182671570 = uVar28;
  DAT_182671594 = uVar42;
  DAT_1826715a4 = uVar21;
  *(uint *)(DAT_182671560 + -0x844) =
       *(uint *)(DAT_182671560 - (uVar19 ^ 0xaadd7022)) ^ DAT_1826716b0 ^ DAT_18267165c;
  *(uint *)(lVar5 + -0x344) =
       *(uint *)(lVar5 - (uVar20 ^ 0xded821c7)) ^ DAT_182671664 ^ DAT_1826718c4;
  lVar5 = DAT_182671560;
  uVar20 = (ulonglong)DAT_182671894;
  lVar38 = (uVar37 ^ 0x2894006318dfccd) * 0x20;
  pbVar40 = (byte *)(DAT_182671560 + -0xc41);
  *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xdc04b198)) =
       (CONCAT44(uVar21,uVar42) ^ 0xe16168dd0d92b06c) + *(longlong *)(DAT_182671560 + -0x8f0) +
       lVar38 ^ uVar20;
  bVar3 = (byte)DAT_18267185c;
  lVar6 = DAT_182671560;
  *pbVar40 = *(byte *)(*(ulonglong *)(lVar5 + -0x238) ^ uVar20) ^ (byte)DAT_18267185c ^
             (byte)DAT_182671694;
  puVar1 = (uint *)(lVar6 + -0x754);
  *puVar1 = (*(byte *)(lVar6 - ((ulonglong)uVar11 ^ 0x5ff963f6)) ^ bVar3) ^ DAT_182671738;
  lVar5 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar27 ^ 0x318df9c9)) =
       (*(uint *)(DAT_182671560 + -0x344) ^ DAT_182671664) + (uVar35 ^ 0xb7e66d3) ^ DAT_182671684;
  lVar6 = DAT_182671560;
  uVar34 = *puVar1 ^ DAT_182671738;
  uVar29 = uVar34 << (((byte)uVar28 ^ 7) & 0x1f) ^ DAT_1826715d0;
  *(uint *)(DAT_182671560 + -0x5cc) = uVar29;
  *(uint *)(lVar5 + -0x328) =
       (*(uint *)(lVar6 - (uVar26 ^ 0x2894502)) ^ DAT_182671684) - (uVar29 ^ DAT_1826715d0) ^
       DAT_182671724;
  uVar36 = (*(uint *)(lVar5 - ((ulonglong)uVar42 ^ 0xd92b345)) ^ DAT_182671724) *
           (DAT_1826716b0 ^ *(uint *)(lVar5 + -0x844)) ^ DAT_1826717b4;
  *(uint *)(lVar5 + -0x374) = uVar36;
  lVar5 = DAT_182671560;
  uVar36 = uVar36 ^ DAT_1826717b4;
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       CONCAT44(uVar28,uVar21) ^ CONCAT44(uVar42,uVar25) ^ 0xd12e590db3dc08d2;
  uVar10 = DAT_182671598;
  uVar37 = (ulonglong)DAT_182671598;
  uVar34 = (uVar12 ^ 0xded828d6) * uVar34 ^ DAT_18267182c;
  *(uint *)(lVar5 + -0x27c) = uVar34;
  uVar29 = DAT_182671648;
  *(uint *)(lVar5 - ((ulonglong)uVar11 ^ 0x5ff967c3)) =
       uVar36 + (uVar34 ^ DAT_18267182c) ^ DAT_182671648;
  *(uint *)(lVar5 - (uVar19 ^ 0xaadd7d3a)) =
       (uVar29 ^ *(uint *)(lVar5 + -0x874)) << (((byte)uVar35 ^ 0xb) & 0x1f) ^ DAT_18267168c;
  lVar6 = DAT_182671560;
  uVar34 = *(uint *)(lVar5 + -0x964) ^ DAT_18267168c;
  uVar36 = (uVar29 ^ *(uint *)(lVar5 + -0x874)) >> (((byte)uVar10 ^ 0xce) & 0x1f) ^ DAT_182671860;
  uVar29 = DAT_182671624 ^ *(uint *)(lVar5 + -0x3c8);
  *(uint *)(lVar5 + -0x678) = uVar36;
  *(uint *)(lVar5 + -0x47c) = (uVar34 | uVar36 ^ DAT_182671860) ^ _DAT_1826715f0;
  *(ulonglong *)(lVar5 + -0x6b8) =
       0xf64ea3d022ff96ed >> ((byte)*(undefined8 *)(lVar5 - ((ulonglong)uVar28 ^ 0xad96cbe)) & 0x3f)
  ;
  uVar29 = uVar29 + (DAT_1826716b0 ^ *(uint *)(lVar5 + -0x844)) ^ DAT_182671878;
  *(uint *)(lVar5 + -0x910) = uVar29;
  *(uint *)(lVar5 - (uVar39 ^ 0xdc04b0e4)) = uVar29 ^ DAT_182671700 ^ DAT_182671878;
  *(uint *)(lVar5 + -0x504) = *(uint *)(lVar5 + -0x47c) ^ DAT_1826715f4 ^ _DAT_1826715f0;
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar5 + -0x548) =
       (CONCAT44(uVar10,uVar21) ^ 0x1a6423f6a97f11d8) << ((byte)uVar22 & 0x3f);
  uVar34 = DAT_1826715fc;
  uVar22 = DAT_1826715b4;
  uVar29 = *(uint *)(lVar5 + -0x344) ^ DAT_1826715fc ^ DAT_182671700;
  *(uint *)(lVar7 + -0x5cc) = uVar29;
  *(uint *)(lVar7 + -0x328) = (uVar22 ^ 0xe0e90450) << (((byte)uVar29 ^ (byte)uVar34) & 0x1f);
  uVar20 = (ulonglong)DAT_1826718cc;
  *(uint *)(lVar6 - ((ulonglong)uVar42 ^ 0xd92b739)) =
       *(uint *)(lVar7 - (uVar39 ^ 0xdc04b6a4)) ^ DAT_182671794 ^ DAT_1826715f4;
  bVar3 = (byte)DAT_182671698;
  uVar22 = DAT_1826715cc;
  pbVar24 = (byte *)((CONCAT44(uVar21,uVar25) ^ 0xe16168ddaadd745e) * 0x20 +
                     (CONCAT44(uVar10,uVar12) ^ 0x745eaaddded828db) + *(longlong *)(lVar6 + -0x8f0))
  ;
  *(ulonglong *)(lVar6 + -0x768) = (ulonglong)pbVar24 ^ uVar20;
  uVar9 = DAT_182671590;
  *(byte *)(lVar6 - (uVar26 ^ 0x2894047)) = *pbVar24 ^ bVar3 ^ (byte)DAT_182671694;
  *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xad96762)) = (bVar3 ^ *(byte *)(lVar6 + -0x41)) ^ uVar22;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0x5ff96aa7)) = (ulonglong)*(byte *)(lVar6 + -0x9f1);
  uVar36 = (*puVar1 ^ DAT_182671794) + (uVar28 ^ 0x32e42c3) ^ DAT_182671688;
  *(uint *)(DAT_182671560 + -0x27c) = uVar36;
  lVar5 = DAT_182671560;
  uVar36 = uVar36 ^ DAT_182671688;
  puVar2 = (uint *)(DAT_182671560 + -0x374);
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (CONCAT44(uVar9,uVar21) ^ 0x394c854bdddbec04) + *(longlong *)(DAT_182671560 + -0x6d0);
  uVar29 = (*puVar2 ^ uVar22) << (((byte)uVar42 ^ 0x7c) & 0x1f) ^ DAT_182671678;
  *(ulonglong *)(lVar5 + -0x1f0) =
       *(ulonglong *)(lVar5 + -0x510) >> ((byte)*(undefined8 *)(lVar5 + -0x6b8) & 0x3f);
  *(uint *)(lVar5 + -0x874) = uVar29;
  *(uint *)(lVar5 - (uVar32 ^ 0x5ff966d3)) = uVar36 - (uVar29 ^ DAT_182671678) ^ DAT_18267163c;
  *(uint *)(lVar5 - (uVar27 ^ 0x318dfab5)) =
       (*(uint *)(lVar5 + -0x5cc) ^ uVar34) * (*(uint *)(lVar5 + -0x964) ^ DAT_18267163c) ^
       DAT_182671850;
  uVar36 = DAT_1826716c8;
  uVar29 = DAT_18267156c;
  lVar6 = DAT_182671560;
  uVar20 = (ulonglong)DAT_18267156c;
  uVar27 = (ulonglong)DAT_18267156c;
  *(uint *)(lVar5 + -0x844) =
       (*(uint *)(lVar5 + -0x374) ^ uVar22) * (uVar42 ^ 0xd92b061) ^ DAT_1826718b0;
  uVar22 = DAT_182671804;
  uVar30 = (*(uint *)(lVar5 - (uVar20 ^ 0x568948c2)) ^ DAT_1826718b0) +
           (*(uint *)(lVar5 + -0x678) ^ DAT_182671850);
  *(uint *)(lVar5 + -0x910) = uVar30 ^ DAT_182671804;
  uVar31 = uVar30 * 0x2000 ^ _DAT_182671838;
  uVar30 = DAT_182671624 ^ *(uint *)(lVar5 + -0x3c8);
  uVar22 = (*(uint *)(lVar5 + -0x910) ^ uVar22) >> 0x13 ^ DAT_1826715ec;
  *(uint *)(lVar5 + -0x344) = uVar22;
  uVar22 = uVar22 ^ DAT_1826715ec;
  *(uint *)(lVar5 + -0x47c) = uVar31;
  uVar15 = DAT_1826717ac;
  uVar34 = (*(uint *)(lVar5 + -0x5cc) ^ uVar34) + uVar30 ^ DAT_1826716f0;
  *(uint *)(lVar5 + -0x328) = (uVar22 | uVar31 ^ _DAT_182671838) ^ DAT_182671650;
  *(uint *)(lVar5 - ((ulonglong)uVar29 ^ 0x56894582)) = uVar34;
  uVar31 = DAT_1826716a0;
  uVar34 = DAT_1826716a0 ^ DAT_182671650 ^ *(uint *)(lVar6 + -0x328);
  *puVar1 = *(uint *)(lVar5 + -0x504) ^ DAT_1826717b8 ^ DAT_1826716f0;
  *(uint *)(lVar6 + -0x27c) = uVar34;
  *(ulonglong *)(lVar6 + -0xbf0) = 0x468b391df08035d >> (((byte)uVar8 ^ 0xa0) & 0x3f);
  uVar20 = (ulonglong)DAT_1826716d4;
  uVar22 = *(uint *)(lVar6 - ((ulonglong)uVar29 ^ 0x568947d2));
  *(uint *)(lVar6 + -0x964) = uVar34 ^ uVar36 ^ uVar31;
  *(uint *)(lVar6 + -0x874) = uVar22 ^ uVar15 ^ DAT_1826717b8;
  bVar17 = (byte)DAT_1826718a8;
  uVar34 = DAT_18267159c;
  *(ulonglong *)(lVar6 + -0x7f0) = *(longlong *)(lVar6 + -0x8f0) + 0x17 + lVar38 ^ uVar20;
  uVar22 = DAT_1826715a0;
  *pbVar40 = *(byte *)(*(ulonglong *)(lVar6 - (uVar26 ^ 0x28947f6)) ^ uVar20) ^ bVar17 ^
             (byte)DAT_182671694;
  bVar3 = *pbVar40;
  *(uint *)(lVar6 + -0x374) = (uVar10 ^ 0xaf44ef30) + (uVar22 ^ 0xc3b68309);
  uVar22 = DAT_1826717d8;
  lVar6 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar27 ^ 0x568946fe)) = (bVar3 ^ bVar17) ^ DAT_1826717d8;
  uVar30 = (*(uint *)(lVar6 + -0x678) ^ uVar22) << 0x11 ^ _DAT_1826715d8;
  *(uint *)(lVar6 + -0x844) =
       (*(uint *)(lVar6 + -0x964) ^ uVar36) + (uVar10 ^ 0x7da98c08) ^ DAT_1826716e4;
  *(uint *)(lVar6 + -0x910) = uVar30;
  uVar30 = uVar30 ^ _DAT_1826715d8;
  *(ulonglong *)(lVar6 + -0x628) =
       (CONCAT44(uVar9,uVar35) ^ 0xb333e50d41d62c8e) + *(longlong *)(lVar6 + -0x3f0);
  uVar30 = (*(uint *)(lVar6 - ((ulonglong)uVar34 ^ 0xac9e044)) ^ DAT_1826716e4) - uVar30;
  *(uint *)(lVar6 + -0x47c) = uVar30 ^ uVar36;
  *(uint *)(lVar6 + -0x344) = uVar30 * (uVar15 ^ *(uint *)(lVar6 + -0x874)) ^ DAT_182671694;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0xad96656)) =
       (CONCAT44(uVar42,uVar8) ^ 0x7de87d8184225c4d) - *(longlong *)(lVar6 - (uVar32 ^ 0x5ff9672f));
  uVar14 = DAT_182671728;
  uVar30 = DAT_182671624;
  uVar36 = DAT_1826715e4;
  uVar18 = (*(uint *)(lVar6 + -0x678) ^ uVar22) * (uVar28 ^ 0xad96401) ^ DAT_182671670;
  uVar23 = *(uint *)(lVar6 + -0x344) ^ DAT_182671694;
  uVar43 = (ulonglong)DAT_182671580;
  uVar27 = (ulonglong)DAT_182671584;
  *(uint *)(lVar6 + -0x5cc) = uVar18;
  uVar22 = DAT_182671568;
  uVar20 = (ulonglong)DAT_182671568;
  *(uint *)(lVar6 - (uVar19 ^ 0xaadd715a)) = uVar23 + (uVar18 ^ DAT_182671670) ^ uVar36;
  bVar3 = (byte)DAT_1826715b4;
  *(uint *)(lVar6 - ((ulonglong)uVar21 ^ 0xe1616bf5)) =
       (*(uint *)(lVar6 + -0x504) ^ uVar36) << (((byte)uVar29 ^ 0x8b) & 0x1f) ^ uVar14;
  *(uint *)(lVar6 - (uVar43 ^ 0x3bfe240c)) =
       (*(uint *)(lVar6 + -0x504) ^ uVar36) >> ((bVar3 ^ 0xc4) & 0x1f) ^ DAT_182671848;
  uVar29 = DAT_182671620 ^ uVar30;
  *(uint *)(lVar6 + -0x27c) =
       (*puVar1 ^ DAT_182671848 | uVar14 ^ *(uint *)(lVar6 + -0x328)) ^ DAT_182671620;
  *(uint *)(lVar6 + -0x374) =
       (uVar15 ^ *(uint *)(lVar6 + -0x874)) + (uVar30 ^ *(uint *)(lVar6 + -0x3c8)) ^ DAT_182671720;
  *(ulonglong *)(lVar6 - (uVar39 ^ 0xdc04b320)) =
       CONCAT44(uVar22,uVar8) ^ *(ulonglong *)(lVar6 + -0x638) ^ 0xf169c08dcd08fa24;
  *(uint *)(lVar6 - (uVar27 ^ 0xa006992c)) =
       *(uint *)(lVar6 + -0x374) ^ DAT_1826718ac ^ DAT_182671720;
  *(uint *)(lVar6 + -0x844) = uVar29 ^ *(uint *)(lVar6 + -0x27c);
  uVar22 = DAT_1826715a8;
  uVar9 = DAT_18267158c;
  uVar32 = (ulonglong)DAT_1826715a8;
  uVar41 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar6 - ((ulonglong)DAT_182671574 ^ 0x966b3433)) =
       *(uint *)(lVar6 + -0x964) ^ DAT_1826718ac ^ DAT_1826716b0;
  *(uint *)(lVar6 - (uVar41 ^ 0x28d7daa4)) = uVar31 ^ uVar30 ^ *(uint *)(lVar6 + -0x844);
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0x9300e8dc)) =
       (CONCAT44(uVar25,uVar22) ^ 0x132f308a8b68b6d2) >> (((byte)uVar42 ^ 0x5c) & 0x3f);
  lVar5 = *(longlong *)(lVar7 + -0xbf0);
  pbVar24 = (byte *)((CONCAT44(uVar9,uVar12) ^ 0x2a7cb0cdded828d7) * 0x20 +
                     (CONCAT44(uVar21,DAT_182671590) ^ 0xe16168dd76dfeadd) +
                    *(longlong *)(lVar6 + -0x8f0));
  *(ulonglong *)(lVar6 + -0xcf0) = (ulonglong)pbVar24 ^ (ulonglong)DAT_1826716b8;
  bVar3 = (byte)DAT_1826717b0;
  *(byte *)(DAT_182671560 + -0x41) = *pbVar24 ^ (byte)DAT_1826717b0 ^ (byte)DAT_182671694;
  *(ulonglong *)(lVar7 - (uVar37 ^ 0x745eab05)) =
       lVar5 - (CONCAT44(uVar11,uVar12) ^ 0xdd8544f76405fd33);
  uVar22 = DAT_182671588;
  uVar25 = (bVar3 ^ *(byte *)(lVar7 + -0x41)) ^ _DAT_182671610;
  uVar29 = (*(uint *)(lVar7 + -0x47c) ^ uVar31) + (uVar35 ^ 0xb7e66d3) ^ DAT_18267177c;
  *(uint *)(lVar7 + -0x678) = uVar25;
  uVar25 = uVar25 ^ _DAT_182671610;
  *(uint *)(lVar7 + -0x344) = uVar29;
  uVar16 = DAT_182671814;
  uVar13 = DAT_1826715c0;
  uVar35 = uVar25 << (((byte)uVar22 ^ 0xdc) & 0x1f);
  *(uint *)(lVar7 + -0x5cc) = uVar35 ^ DAT_1826718c0;
  lVar5 = DAT_182671560;
  uVar25 = (uVar34 ^ 0xac9e802) * uVar25 ^ DAT_182671650;
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       *(ulonglong *)(CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(DAT_182671560 + -0x450)) ^
       CONCAT44(uVar13,uVar13);
  uVar29 = DAT_1826716ac;
  lVar6 = DAT_182671560;
  uVar34 = (*(uint *)(lVar5 - (uVar27 ^ 0xa006930c)) ^ DAT_18267177c) - uVar35 ^ DAT_182671840;
  uVar35 = *(uint *)(DAT_182671560 + -0x910) ^ DAT_1826716b0;
  *(uint *)(DAT_182671560 + -0x504) = uVar34;
  uVar34 = uVar34 ^ DAT_182671840;
  *puVar1 = uVar25;
  uVar25 = uVar25 ^ DAT_182671650;
  *(ulonglong *)(lVar6 + -0xc08) =
       CONCAT44(uVar10,uVar9) ^ 0x11394dc51d1fcbfd | *(ulonglong *)(lVar6 + -0x548);
  *(uint *)(lVar6 + -0x328) = uVar34 * uVar35 ^ _DAT_1826715dc;
  *(uint *)(lVar6 - (uVar20 ^ 0xfffff78b)) =
       (*(uint *)(lVar6 - (uVar26 ^ 0x289432e)) ^ _DAT_1826715dc) + uVar25 ^ uVar29;
  uVar35 = DAT_182671788;
  uVar22 = (uVar29 ^ *(uint *)(lVar6 + -0x874)) >> (((byte)uVar22 ^ 0xde) & 0x1f) ^ DAT_182671788;
  *(uint *)(lVar6 + -0x374) =
       (*(uint *)(lVar6 - (uVar43 ^ 0x3bfe2b2c)) ^ uVar29) << (((byte)uVar28 ^ 0x1b) & 0x1f) ^
       DAT_1826717c8;
  uVar29 = DAT_182671578 << 0x10 | DAT_182671578 >> 0x10;
  DAT_182671590 = uVar29;
  *(uint *)(lVar6 - (uVar19 ^ 0xaadd7622)) = uVar22;
  *(uint *)(lVar6 + -0x964) =
       (*(uint *)(lVar6 + -0x374) ^ DAT_1826717c8 | uVar35 ^ *(uint *)(lVar6 + -0x27c)) ^
       DAT_182671754;
  *(ulonglong *)(lVar6 + -0x270) = (uVar37 ^ 0x12f80000) >> 0x13;
  uVar22 = (*(uint *)(lVar6 - (uVar41 ^ 0x28d7dd10)) ^ DAT_182671624) +
           (*(uint *)(lVar6 + -0x910) ^ DAT_1826716b0) ^ DAT_182671890;
  *(uint *)(lVar6 + -0x844) = uVar22;
  *(uint *)(lVar6 + -0x47c) = uVar22 ^ DAT_1826715f8 ^ DAT_182671890;
  bVar3 = (byte)DAT_182671654;
  *(ulonglong *)(lVar6 + -0x8a8) =
       (CONCAT44(uVar29,uVar8) ^ 0xc165c535e50b093b) - (CONCAT44(uVar29,uVar8) ^ 0xb7e75a7b21f1ab06)
  ;
  *(uint *)(lVar6 + -0x344) =
       *(uint *)(lVar6 - (uVar39 ^ 0xdc04bac4)) ^ DAT_18267176c ^ DAT_182671754;
  *(uint *)(lVar6 - (uVar39 ^ 0xdc04b66c)) = (uVar29 ^ 0xe83798) * (uVar29 ^ 0xc0adf3a2);
  uVar19 = (ulonglong)DAT_182671874;
  *(uint *)(lVar6 + -0x504) = *(uint *)(lVar6 + -0x47c) ^ DAT_1826715f8 ^ DAT_182671850;
  *(uint *)(lVar6 + -0x678) = DAT_182671864 ^ DAT_18267176c ^ *(uint *)(lVar6 + -0x344);
  *(ulonglong *)(lVar6 + -0x8e8) =
       (CONCAT44(uVar8,uVar29) ^ 0xdc04b3a0b3a0dc09) + *(longlong *)(lVar6 + -0x8f0) ^ uVar19;
  *(byte *)(lVar6 - ((ulonglong)uVar29 ^ 0xb3a0d045)) =
       *(byte *)(*(ulonglong *)(lVar6 - (uVar39 ^ 0xdc04bb48)) ^ uVar19) ^ bVar3 ^
       (byte)DAT_182671694;
  *puVar1 = (bVar3 ^ *pbVar40) ^ DAT_1826717f8;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar4 ^ uVar28) * 4) = uVar33;
  return;
}



############ FUN_ 180f144a0 size=6273 ############

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

void FUN_180f144a0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong *puVar26;
  byte bVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte local_110;
  byte local_100;
  
  uVar43 = DAT_1826716e8;
  uVar20 = DAT_182671668;
  uVar15 = DAT_1826715a0;
  uVar9 = DAT_18267158c;
  uVar8 = DAT_182671584;
  uVar7 = DAT_182671580;
  uVar4 = DAT_182671578;
  lVar5 = DAT_182671560;
  DAT_18267157c = DAT_182671568 & DAT_18267159c;
  uVar28 = (DAT_182671584 << 0x10 | DAT_182671584 & 0xff00) << 8 | DAT_182671584 >> 8 & 0xff00 |
           DAT_182671584 >> 0x18;
  DAT_1826715ac = DAT_182671590 | DAT_182671570;
  DAT_1826715a4 =
       (DAT_182671588 << 0x10 | DAT_182671588 & 0xff00) << 8 | DAT_182671588 >> 8 & 0xff00 |
       DAT_182671588 >> 0x18;
  uVar24 = DAT_18267158c & 7;
  if (uVar24 < 4) {
    if (uVar24 < 2) {
      DAT_1826715a8 = DAT_1826715a0;
      if (uVar24 == 0) {
        DAT_1826715a8 = DAT_18267158c;
      }
    }
    else {
      DAT_1826715a8 = DAT_1826715b0;
      if (uVar24 < 3) {
        DAT_1826715a8 = DAT_1826715b4;
      }
    }
  }
  else if (uVar24 < 6) {
    DAT_1826715a8 = DAT_182671580;
    if (uVar24 < 5) {
      DAT_1826715a8 = DAT_182671598;
    }
  }
  else {
    DAT_1826715a8 = DAT_18267156c;
    if (uVar24 < 7) {
      DAT_1826715a8 = DAT_182671594;
    }
  }
  uVar29 = *(uint *)(&DAT_182611e78 + DAT_1826718fc) ^ DAT_1826715a8;
  uVar25 = *(uint *)(&DAT_182611e80 + DAT_1826718fc) ^ DAT_1826715b4;
  uVar41 = (ulonglong)DAT_1826716e8;
  puVar40 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0xc555eadf));
  uVar44 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar37 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar48 = CONCAT44(DAT_182671840,DAT_182671840);
  uVar33 = CONCAT44(DAT_182671640,DAT_182671640);
  uVar30 = (uVar48 ^ *(ulonglong *)(DAT_182671560 + -0x670) | uVar44 ^ *puVar40) ^ uVar33;
  DAT_182671574 = uVar28;
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar30;
  uVar24 = DAT_18267156c;
  uVar54 = CONCAT44(uVar20,uVar20);
  uVar34 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar5 + -0x3f0) =
       uVar34 ^ uVar54 ^ uVar30 ^ uVar33 ^ *(ulonglong *)(lVar5 + -0x6b8);
  uVar30 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar5 + -0x748) =
       (CONCAT44(uVar24,uVar9) ^ 0xdeb85753003a7005) + 0xe1cfc3e750e95232;
  uVar20 = DAT_182671748;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x8a010101)) =
       (CONCAT44(DAT_1826717cc,DAT_1826717cc) ^ *(ulonglong *)(lVar5 + -0x318)) +
       (CONCAT44(uVar15,uVar7) ^ 0xf8f0ffd34af0bf78) ^ uVar37;
  uVar11 = DAT_182671588;
  uVar52 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar42 = (ulonglong)DAT_182671588;
  uVar33 = (CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(lVar5 + -0x9f8)) +
           (CONCAT44(uVar4,DAT_182671594) ^ 0x39ceb293c17bae36);
  puVar1 = (ulonglong *)(lVar5 + -0x638);
  *puVar1 = uVar33 ^ uVar52;
  puVar2 = (ulonglong *)(lVar5 + -0x610);
  uVar30 = *puVar2;
  uVar45 = uVar30 ^ uVar37;
  uVar36 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  puVar26 = (ulonglong *)(DAT_182671560 + -0x110);
  *puVar26 = uVar33 + uVar45 ^ uVar36;
  uVar16 = DAT_1826715a4;
  uVar31 = CONCAT44(DAT_1826715a4,uVar11);
  uVar45 = uVar45 << (((byte)uVar11 ^ 0x4e) & 0x3f);
  uVar38 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar45 ^ uVar38;
  uVar7 = DAT_182671570;
  lVar5 = DAT_182671560;
  uVar33 = CONCAT44(DAT_18267176c,DAT_18267176c);
  puVar3 = (ulonglong *)(DAT_182671560 + -0x670);
  *(ulonglong *)(DAT_182671560 + -0x898) =
       ((ulonglong)(uVar43 >> 0x1f) | uVar41 * 2) ^ uVar30 >> 0x1f ^ uVar33;
  uVar51 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar5 + -0x548) = (uVar48 ^ *puVar3) << (((byte)uVar7 ^ 0xd1) & 0x3f);
  uVar7 = DAT_182671590;
  uVar47 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar5 + -0x400) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671590 ^ 0xf3d1edec)) ^ uVar33 | uVar45) ^ uVar51;
  uVar10 = DAT_182671584;
  uVar45 = (ulonglong)DAT_182671584;
  uVar41 = *(ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0xdffbde2f)) ^
           *(ulonglong *)(lVar5 - ((ulonglong)DAT_18267157c ^ 0xff7febfb)) ^ uVar47 ^ uVar51 ^
           uVar36;
  uVar39 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar5 + -0x5c8) = uVar41;
  uVar30 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar5 + -0x748) =
       (*(ulonglong *)(lVar5 - (uVar45 ^ 0xcf3bcaf3)) ^ uVar47) +
       (uVar34 ^ *(ulonglong *)(lVar5 + -0x6b8)) ^ uVar39;
  puVar32 = (ulonglong *)(lVar5 - (uVar30 ^ 0xf7fffab7));
  *(ulonglong *)(lVar5 + -0x318) = (uVar39 ^ *puVar32) + 0x48f567982eed4a57;
  uVar20 = DAT_182671630;
  uVar19 = DAT_1826715b4;
  uVar46 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar33 = (ulonglong)DAT_1826715b4;
  puVar35 = (ulonglong *)(lVar5 - (uVar33 ^ 0x75fef117));
  *puVar35 = (uVar47 ^ uVar41) << (((byte)uVar7 ^ 0x5a) & 0x3f) ^ uVar46;
  uVar7 = DAT_182671594;
  uVar48 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *puVar1 = *(ulonglong *)(CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(lVar5 + -0x438)) ^ uVar48;
  uVar34 = (ulonglong)uVar28;
  uVar41 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  puVar49 = (ulonglong *)(lVar5 - ((ulonglong)DAT_182671568 ^ 0xff7fe9eb));
  uVar30 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *puVar49 = (uVar47 ^ *(ulonglong *)(DAT_182671560 + -0x5c8)) >> (((byte)uVar7 ^ 0xfc) & 0x3f) ^
             uVar41;
  lVar5 = DAT_182671560;
  puVar3 = (ulonglong *)(DAT_182671560 + -0x3f0);
  uVar46 = (uVar41 ^ *puVar2 | uVar46 ^ *(ulonglong *)(DAT_182671560 + -0x9f8)) ^ uVar30;
  uVar47 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar46;
  uVar54 = *puVar3 ^ uVar54;
  uVar41 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar5 + -0x548) =
       uVar47 ^ uVar46 ^ uVar30 ^ uVar39 ^ *(ulonglong *)(lVar5 + -0x748);
  *(ulonglong *)(lVar5 + -0x270) =
       (*(ulonglong *)(lVar5 - (uVar41 ^ 0xff7feeeb)) ^ uVar36) + uVar54 ^ uVar51;
  uVar17 = DAT_1826715a8;
  local_110 = (byte)uVar10;
  *(ulonglong *)(lVar5 + -0x898) =
       (CONCAT44(uVar24,uVar7) ^ 0x34f4d103a069a924) << ((local_110 ^ 0x22) & 0x3f);
  uVar20 = DAT_1826715d0;
  uVar18 = DAT_1826715b0;
  uVar7 = DAT_182671568;
  uVar30 = uVar54 << (((byte)DAT_18267157c ^ 0xf7) & 0x3f);
  bVar27 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar5 + -0x400) = uVar30 ^ CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar54 >> ((bVar27 ^ 199) & 0x3f) ^ uVar52;
  uVar9 = DAT_182671570;
  uVar46 = CONCAT44(uVar20,uVar20);
  uVar42 = (*(ulonglong *)(lVar5 - (uVar42 ^ 0xf351d3d7)) ^ uVar52 | uVar30) ^ uVar46;
  uVar30 = CONCAT44(DAT_182671570,DAT_182671598);
  *(ulonglong *)(lVar5 + -0x318) = uVar42;
  uVar43 = DAT_18267162c;
  uVar41 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *puVar1 = uVar30 ^ 0x33494fa1b8a0002e;
  lVar5 = DAT_182671560;
  uVar42 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0xce3bcd4b)) ^ uVar41 ^ uVar46
           ^ uVar51 ^ uVar42;
  uVar53 = CONCAT44(DAT_182671860,DAT_182671860);
  puVar3 = (ulonglong *)(DAT_182671560 + -0x748);
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar42;
  uVar20 = DAT_182671758;
  *puVar35 = (uVar39 ^ *puVar3) + (uVar41 ^ uVar42) ^ uVar53;
  uVar42 = CONCAT44(uVar20,uVar20);
  *puVar2 = (uVar41 ^ *(ulonglong *)(lVar5 + -0x5c8)) << (((byte)uVar18 ^ 0x2b) & 0x3f) ^ uVar42;
  uVar30 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x3bcf3dbf)) =
       ((ulonglong)uVar43 << 0x1a | (ulonglong)(uVar43 >> 6)) ^
       *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a0 ^ 0xd80d73d6)) >> 6 ^ uVar30;
  lVar5 = DAT_182671560;
  uVar54 = CONCAT44(DAT_182671890,DAT_182671890);
  *puVar26 = (*puVar2 ^ uVar42 | *(ulonglong *)(DAT_182671560 + -0x670) ^ uVar30) ^ uVar54;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_18267159c ^ 0xff7fe763)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671578 ^ 0xdffbdc27)) ^ uVar46) +
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671590 ^ 0xf3d1e464)) ^ uVar54);
  uVar12 = DAT_1826715ac;
  uVar36 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715ac ^ 0xf7fffe0f)) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671594 ^ 0x64b481fe)) ^
       *(ulonglong *)(lVar5 + -0x9f8) ^ uVar36 ^ uVar54 ^ uVar53;
  uVar20 = DAT_1826717ac;
  uVar14 = DAT_182671598;
  uVar30 = uVar47 ^ *(ulonglong *)(lVar5 + -0x548);
  *(ulonglong *)(lVar5 + -0x400) = (uVar51 ^ *(ulonglong *)(lVar5 + -0x270)) + uVar30 ^ uVar37;
  uVar43 = DAT_182671570;
  uVar41 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar30 << (((byte)DAT_182671570 ^ 0xf9) & 0x3f) ^ uVar41;
  uVar30 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0xcf3bc903)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0xf7fff8b7)) ^ uVar47) >>
       (((byte)DAT_18267157c ^ 0xd1) & 0x3f) ^ uVar30;
  uVar20 = DAT_18267166c;
  lVar5 = DAT_182671560;
  uVar42 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar30 = (*puVar1 ^ uVar30 | *(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar41) ^ uVar42;
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar30;
  uVar39 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 + -0x5c8) =
       uVar37 ^ *(ulonglong *)(lVar5 + -0x400) ^ uVar39 ^ uVar30 ^ uVar42;
  uVar30 = (ulonglong)DAT_1826715ac;
  *puVar49 = 0x3a802ac202d9fb08 - (CONCAT44(uVar4,uVar19) ^ 0xa80b576271547a75);
  uVar20 = DAT_1826716bc;
  uVar12 = DAT_182671590;
  uVar41 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(lVar5 + -0x670) =
       (*(ulonglong *)(lVar5 - (uVar30 ^ 0xf7fff837)) ^ uVar39) +
       (*(ulonglong *)(lVar5 + -0x9f8) ^ uVar53) ^ uVar41;
  local_100 = (byte)(uVar8 >> 0x18);
  uVar50 = CONCAT44(uVar20,uVar20);
  bVar27 = (byte)DAT_18267158c;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a0 ^ 0xd80d7506)) =
       (*(ulonglong *)(lVar5 + -0x5c8) ^ uVar39) << ((local_100 ^ 0xef) & 0x3f) ^ uVar50;
  lVar6 = DAT_182671560;
  uVar45 = (*(ulonglong *)(lVar5 + -0x5c8) ^ uVar39) >> ((bVar27 ^ 0xde) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar45 ^ CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar13 = DAT_182671594;
  *puVar26 = (CONCAT44(uVar18,uVar43) ^ 0xc1a8e1270617e3e) -
             (CONCAT44(uVar24,uVar11) ^ 0x3a3ff586b0635bc6);
  uVar20 = _DAT_1826715e0;
  lVar5 = DAT_182671560;
  uVar47 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar42 = CONCAT44(uVar14,DAT_182671578);
  uVar30 = CONCAT44(uVar13,DAT_1826715a8);
  uVar45 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a4 ^ 0x6fd552eb)) ^ uVar50 | uVar45) ^
           uVar47;
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar45;
  *(ulonglong *)(lVar5 + -0x548) = (uVar42 ^ 0x3b973a65daa2d944) - (uVar30 ^ 0x773f7d65bdec81ed);
  lVar6 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671580;
  uVar46 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 + -0x6b8) =
       *(ulonglong *)(lVar5 + -0x670) ^ uVar46 ^ uVar47 ^ uVar41 ^ uVar45;
  uVar21 = DAT_182671768;
  uVar42 = *(ulonglong *)(lVar5 + -0x3f0) ^ uVar36;
  uVar51 = CONCAT44(DAT_182671768,DAT_182671768);
  *puVar1 = (uVar37 ^ *(ulonglong *)(lVar6 + -0x400)) + uVar42 ^ uVar51;
  uVar20 = DAT_182671754;
  lVar5 = DAT_182671560;
  uVar37 = CONCAT44(DAT_182671670,DAT_182671670);
  bVar27 = (byte)DAT_18267159c;
  *(ulonglong *)(DAT_182671560 + -0x748) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0xce3bcccb)) ^ uVar36) <<
       (((byte)DAT_1826715a4 ^ 0xd3) & 0x3f) ^ uVar37;
  uVar8 = DAT_182671590;
  uVar45 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 - (uVar33 ^ 0x75fefeff)) = uVar42 >> ((bVar27 ^ 0xdb) & 0x3f) ^ uVar45;
  lVar5 = DAT_182671560;
  uVar47 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar42 = (*puVar2 ^ uVar45 | *(ulonglong *)(DAT_182671560 + -0x748) ^ uVar37) ^ uVar47;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar42;
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (*(ulonglong *)(lVar5 + -0x6b8) ^ uVar46) >> (((byte)uVar8 ^ 0x5d) & 0x3f);
  lVar5 = DAT_182671560;
  uVar37 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar30 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0xc555efcf)) =
       *puVar1 ^ uVar37 ^ uVar42 ^ uVar47 ^ uVar51;
  uVar8 = DAT_1826715a0;
  uVar42 = CONCAT44(uVar18,DAT_182671594);
  *(ulonglong *)(lVar5 + -0x318) =
       0x14f232f6a472bb68 >> ((*(byte *)(lVar5 - (uVar30 ^ 0x8a010129)) ^ (byte)uVar21) & 0x3f);
  uVar20 = DAT_1826715c0;
  uVar36 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar30 = (uVar42 ^ 0xf784d54dd232cbe9) + (*(ulonglong *)(lVar5 + -0x670) ^ uVar41) ^ uVar36;
  *(ulonglong *)(lVar5 + -0x898) = uVar30;
  lVar5 = DAT_182671560;
  uVar42 = CONCAT44(uVar20,uVar20);
  uVar52 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(uVar52 ^ *(ulonglong *)(DAT_182671560 + -0x880)) = uVar42 ^ uVar30 ^ uVar36;
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0xd80d7356)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xd80d770e)) ^ uVar37) +
       (CONCAT44(uVar17,DAT_18267158c) ^ 0x8281ed425d205b26) ^ uVar30;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671568 ^ 0xff7febab)) =
       (uVar52 ^ *(ulonglong *)(lVar6 + -0x880)) + (uVar31 ^ 0x6fd551f3f351d56e) * 8 ^ uVar38;
  *(ulonglong *)(*(ulonglong *)(lVar6 + -0x450) ^ uVar38) =
       *(ulonglong *)(lVar6 + -0x548) ^ uVar30 ^ uVar42;
  uVar21 = DAT_1826716e4;
  lVar5 = DAT_182671560;
  uVar30 = (ulonglong)DAT_18267157c;
  uVar37 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  uVar41 = (CONCAT44(uVar9,DAT_182671570) ^ 0xc8bd328f4335e74e) + (*puVar1 ^ uVar51);
  uVar31 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar41 ^ uVar37;
  uVar20 = DAT_1826716fc;
  puVar3 = (ulonglong *)
           ((*(ulonglong *)(lVar5 - (uVar30 ^ 0xff7fe77b)) ^ uVar52) +
           (CONCAT44(uVar11,DAT_1826715a4) ^ 0xf351d56f6fd551f1) * 8);
  uVar30 = CONCAT44(uVar18,DAT_18267157c);
  *(ulonglong *)(lVar5 + -0x5f8) = (ulonglong)puVar3 ^ uVar31;
  lVar5 = DAT_182671560;
  uVar31 = CONCAT44(uVar20,uVar20);
  *puVar3 = uVar41 ^ uVar42;
  lVar6 = DAT_182671560;
  *puVar40 = (uVar30 ^ 0xce4a60dba4920edd) + (*(ulonglong *)(lVar5 + -0x6b8) ^ uVar46) ^ uVar31;
  uVar24 = DAT_1826715a8;
  uVar8 = DAT_18267156c;
  puVar3 = (ulonglong *)
           ((uVar52 ^ *(ulonglong *)(lVar6 + -0x880)) +
           (CONCAT44(uVar10,DAT_182671580) ^ 0xcf3bcf3bce3bcf38) * 8);
  uVar43 = DAT_1826715b4 ^ 0x564dac74;
  uVar30 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar6 + -0xd60) = (ulonglong)puVar3 ^ CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar22 = DAT_1826717b4;
  *(uint *)(lVar6 + -0x640) = uVar43 << ((local_100 ^ 0xca) & 0x1f);
  uVar43 = DAT_1826715ac;
  *puVar3 = uVar31 ^ *(ulonglong *)(lVar6 + -0x400) ^ uVar42;
  *(ulonglong *)(lVar6 + -0x830) = *(longlong *)(lVar6 + -0x5a0) + 0x20U ^ uVar50;
  uVar23 = DAT_182671824;
  uVar20 = DAT_1826716b8;
  *(ulonglong *)(lVar6 + -0x438) =
       *(longlong *)(lVar6 + -0xb98) + 0x20 + (CONCAT44(uVar4,uVar8) ^ 0xdffbdf3fffffffff) * 0x60 ^
       CONCAT44(uVar22,uVar22);
  uVar46 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar6 + -0x3f0) =
       *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar30 ^ 0x64b488de)) ^ uVar50) ^ uVar48 ^ uVar46;
  *(ulonglong *)
   (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a4 ^ 0x6fd55253)) ^ CONCAT44(uVar23,uVar23)) =
       CONCAT44(uVar12,uVar43) ^ 0xd70f57c8e0174334;
  uVar20 = DAT_1826717b0;
  *(ulonglong *)(lVar6 + -0x748) =
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715b0 ^ 0x8a010311)) ^
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671590 ^ 0xf3d1ec8c)) ^ uVar31 ^ uVar47;
  uVar42 = CONCAT44(uVar20,uVar20);
  uVar30 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x3bcf3d3f)) =
       (*(ulonglong *)(lVar6 + -0x830) ^ uVar50) + 8 ^ uVar42;
  uVar43 = DAT_18267159c;
  uVar41 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar6 - (uVar30 ^ 0xd80d700e)) =
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0x6f0) ^ uVar42) ^ uVar48 ^ uVar41;
  *(ulonglong *)(*(ulonglong *)(lVar6 + -0x230) ^ uVar45) =
       CONCAT44(uVar7,uVar24) ^ 0x758ba0c291008ddc;
  uVar4 = DAT_1826715ac;
  puVar3 = (ulonglong *)
           ((*(ulonglong *)(lVar6 + -0x830) ^ uVar50) +
           (CONCAT44(uVar43,DAT_1826715ac) ^ 0xff7feffbf7fffdfd) * 8);
  *(ulonglong *)(lVar6 + -0xb78) = (ulonglong)puVar3 ^ CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar6 + -0x5c8) = *puVar3 ^ uVar48 ^ uVar54;
  uVar42 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(CONCAT44(DAT_18267169c,DAT_18267169c) ^ *(ulonglong *)(lVar6 + -0x30)) =
       CONCAT44(uVar28,uVar4) ^ 0xd2c92fa06fecb211;
  uVar31 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar36 = (ulonglong)DAT_18267156c;
  uVar30 = CONCAT44(uVar13,uVar10);
  uVar47 = CONCAT44(uVar15,DAT_18267156c);
  *(ulonglong *)(lVar6 + -0x178) =
       (*(ulonglong *)(lVar6 - (uVar42 ^ 0xff7fe7cb)) ^ uVar50) +
       (CONCAT44(uVar9,DAT_182671594) ^ 0x75fef8ef64b480ed) * 8 ^ uVar31;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671570 ^ 0x75fefbf7)) =
       (uVar47 ^ 0xd2be7ed74ea053b) << (((byte)DAT_182671578 ^ 3) & 0x3f);
  uVar20 = DAT_1826716e0;
  uVar47 = CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar42 = CONCAT44(uVar11,DAT_182671598);
  *(ulonglong *)(lVar6 + -0x670) =
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0x178) ^ uVar31) ^ uVar48 ^ uVar47;
  *(undefined8 *)(CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(lVar6 + -0x4a0)) = 0x610648c7b22bc07;
  *(ulonglong *)(lVar6 - (uVar36 ^ 0xfffff59f)) =
       (uVar42 ^ 0x71a201b6a22a832c) << (((byte)uVar21 ^ *(byte *)(lVar6 + -0x270)) & 0x3f);
  uVar41 = *puVar2 ^ uVar41;
  *puVar26 = (CONCAT44(uVar19,DAT_18267158c) ^ 0x8af19ba202f22c36) + uVar41 ^ uVar45;
  *(ulonglong *)(lVar6 - (uVar33 ^ 0x75fefdff)) = (uVar30 ^ 0xe680d7304ba75fdd) + uVar41;
  uVar4 = DAT_182671570;
  uVar45 = uVar45 ^ *puVar26;
  uVar42 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar31 = (ulonglong)DAT_182671570;
  *puVar1 = (CONCAT44(uVar17,DAT_182671590) ^ 0x44490923771a9546) +
            (*(ulonglong *)(lVar6 + -0x3f0) ^ uVar46) ^ uVar42;
  uVar33 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar6 + -0x600) = ((ulonglong)uVar24 ^ 0xb8000000) >> 0x1b;
  uVar8 = DAT_18267157c;
  uVar41 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (*(ulonglong *)(lVar6 - (uVar33 ^ 0xf8ef73c6)) ^ uVar42) + uVar45 ^ uVar37;
  *(ulonglong *)(lVar6 + -0x688) = uVar45 << (((byte)uVar8 ^ 0xf5) & 0x3f) ^ uVar41;
  uVar45 = uVar45 >> (((byte)uVar43 ^ 0xc9) & 0x3f);
  *(byte *)(lVar6 + -0x691) =
       *(byte *)(*(ulonglong *)(lVar6 - (uVar31 ^ 0x75fef9ef)) ^ (ulonglong)DAT_182671674) ^
       (byte)DAT_1826717c0;
  *(ulonglong *)(lVar6 + -0x628) = uVar45 ^ uVar39;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a4 ^ 0x6fd5580b)) = uVar45 << ((byte)uVar45 & 0x3f);
  uVar20 = DAT_1826718cc;
  *(ulonglong *)(lVar6 + -0x748) =
       (*(ulonglong *)(lVar6 + -0x628) ^ uVar39 | uVar41 ^ *(ulonglong *)(lVar6 + -0x688)) ^ uVar53;
  uVar7 = DAT_182671568;
  uVar31 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar6 + -0xbf0) =
       CONCAT44(uVar20,uVar20) ^ uVar37 ^ *puVar32 ^ *(ulonglong *)(lVar6 + -0x6b8) ^ uVar53;
  uVar42 = CONCAT44(uVar18,DAT_1826715a0);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a0 ^ 0xd80d77ee)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0x64b4869e)) ^ uVar47) +
       (CONCAT44(uVar16,uVar4) ^ 0x125083afc378b3e8) ^ uVar44;
  uVar33 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0xff7fece3)) =
       (uVar42 ^ 0xa6e0491a4508e8ae) + (CONCAT44(uVar11,uVar8) ^ 0x19b1b79db223f438);
  uVar20 = DAT_182671724;
  uVar42 = (CONCAT44(uVar11,uVar28) ^ 0xdac280c7fc0c4de8) +
           (*(ulonglong *)(lVar6 + -0x5c8) ^ uVar54);
  *(ulonglong *)(lVar6 + -0x9e8) = uVar42 ^ CONCAT44(DAT_182671784,DAT_182671784);
  uVar42 = (*(ulonglong *)(lVar6 - (uVar33 ^ 0xdffbdecf)) ^ uVar44) + uVar42;
  uVar31 = CONCAT44(uVar19,DAT_1826715a4);
  uVar45 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar6 + -0xa60) = uVar42 ^ CONCAT44(uVar20,uVar20);
  uVar33 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x3bcf3ddf)) = (uVar31 ^ 0xe9b8b87dde2afe9c) + uVar42 ^ uVar45;
  uVar20 = DAT_18267187c;
  uVar4 = DAT_18267183c >> 0x10;
  *(ulonglong *)(lVar6 + -0x510) =
       (*(ulonglong *)(lVar6 - (uVar33 ^ 0xf3d1e484)) ^ uVar44) << 0x10 ^ uVar41;
  uVar33 = CONCAT44(uVar20,uVar20);
  uVar34 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar6 + -0x3f0) =
       (ulonglong)*(ushort *)(lVar6 + -0x1ea) ^ (ulonglong)uVar4 ^ uVar33;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0xf8ef73fe)) =
       (uVar30 ^ 0xc3a2e349513c07f7) - (CONCAT44(uVar43,uVar7) ^ 0x9a68546cb3a92695);
  uVar34 = CONCAT44(DAT_182671870,DAT_182671870);
  uVar30 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715ac ^ 0xf7fffbc7)) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0x510) | *(ulonglong *)(lVar6 + -0x3f0) ^ uVar33) ^ uVar34;
  *puVar26 = uVar30 ^ *puVar1 ^ *puVar2 ^ uVar34 ^ uVar45;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar25 * 4) = uVar29;
  return;
}



############ FUN_ 180e46df0 size=4103 ############

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

void FUN_180e46df0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  byte bVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte *pbVar11;
  ulonglong uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint *puVar16;
  uint *puVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint *puVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint *puVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint *puVar34;
  ulonglong uVar35;
  uint *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  
  uVar21 = DAT_182671898;
  uVar15 = DAT_1826715a0;
  uVar19 = DAT_182671580;
  uVar10 = DAT_182671574;
  lVar2 = DAT_182671560;
  uVar35 = (ulonglong)DAT_1826715a0;
  uVar22 = (ulonglong)DAT_182671574;
  uVar25 = DAT_182671574 * DAT_182671580;
  uVar28 = (DAT_1826715a0 << 0x10 | DAT_1826715a0 & 0xff00) << 8 | DAT_1826715a0 >> 8 & 0xff00 |
           DAT_1826715a0 >> 0x18;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671a74);
  uVar14 = *(uint *)(&DAT_182611e78 + DAT_182671a74) ^ DAT_1826715a0;
  uVar24 = (ulonglong)DAT_182671898;
  uVar38 = (ulonglong)uVar28;
  uVar8 = *(uint *)(DAT_182671560 + -0x678) ^ _DAT_1826715dc;
  DAT_18267158c = uVar28;
  DAT_1826715b4 = uVar25;
  *(uint *)(DAT_182671560 + -0x504) =
       (*(uint *)(DAT_182671560 + -0x374) ^ DAT_182671814 |
       *(uint *)(DAT_182671560 + -0x27c) ^ DAT_182671768) ^ DAT_1826717fc;
  uVar31 = (ulonglong)uVar25;
  uVar8 = (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) + uVar8 ^ DAT_182671614;
  *(uint *)(lVar2 + -0x874) = uVar8;
  *(uint *)(lVar2 + -0x844) = uVar8 ^ DAT_182671684 ^ DAT_182671614;
  uVar20 = DAT_182671704;
  *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x3bfe212c)) =
       *(uint *)(lVar2 - (uVar22 ^ 0x966b3827)) ^ uVar21 ^ DAT_1826717fc;
  uVar8 = *(uint *)(lVar2 + -0x274) ^ DAT_1826717a8;
  *(uint *)(lVar2 + -0x5cc) = uVar20 ^ DAT_182671684 ^ *(uint *)(lVar2 + -0x844);
  lVar3 = DAT_182671560;
  *(uint *)(lVar2 - ((ulonglong)uVar25 ^ 0x17f2ce4c)) = uVar8 ^ uVar21;
  bVar13 = (byte)DAT_182671804;
  uVar12 = (ulonglong)DAT_182671818;
  *(ulonglong *)(lVar3 + -0xa50) =
       (CONCAT44(uVar15,uVar10) ^ 0xfccd318d966b3d23) * 0x20 +
       (CONCAT44(uVar28,uVar25) ^ 0x8d31cdfc17f2cd0b) + *(longlong *)(lVar3 + -0x8f0) ^ uVar12;
  *(byte *)(lVar3 + -0x8b2) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0x8d31c7ac)) ^ uVar12) ^ bVar13 ^
       (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar3 + -0xcb0) ^ (ulonglong)DAT_182671834) = (byte)uVar15 ^ 0x2e;
  uVar21 = DAT_182671570;
  uVar33 = (ulonglong)DAT_182671570;
  uVar18 = *(uint *)(lVar3 + -0x344) ^ DAT_1826717a8;
  *(uint *)(lVar3 + -0x328) = (bVar13 ^ *(byte *)(lVar3 + -0x8b2)) ^ DAT_182671650;
  uVar8 = DAT_182671588;
  uVar32 = uVar21 - DAT_182671588;
  DAT_182671590 = uVar32;
  *(uint *)(lVar3 - ((ulonglong)uVar19 ^ 0x3bfe240c)) =
       uVar18 + (uVar25 ^ 0x1e05ebdd) ^ DAT_1826716ac;
  *(uint *)(lVar3 + -0x964) = (*(uint *)(lVar3 + -0x328) ^ DAT_182671650) << 0x11 ^ DAT_182671828;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x3b8) = (CONCAT44(uVar10,uVar28) ^ 0xa3b15b227) << 0x1a;
  uVar19 = (*(uint *)(lVar2 + -0x754) ^ DAT_1826716ac) -
           (*(uint *)(lVar2 - ((ulonglong)uVar8 ^ 0x318df5a9)) ^ DAT_182671828) ^ DAT_182671674;
  *(uint *)(lVar2 + -0x968) = uVar19;
  *(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0xd94b6335)) =
       (uVar19 ^ DAT_182671674) * (uVar20 ^ *(uint *)(lVar2 + -0x5cc)) ^ DAT_1826718c8;
  *(uint *)(lVar2 + -0x27c) =
       (*(uint *)(lVar2 + -0x328) ^ DAT_182671650) * (uVar21 ^ 0xad96415) ^ DAT_18267169c;
  uVar7 = DAT_182671730;
  uVar18 = DAT_18267162c;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar33 ^ 0xad96762)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0xd94b6535)) ^ DAT_18267169c) +
       (*(uint *)(DAT_182671560 + -0x47c) ^ DAT_1826718c8) ^ DAT_18267162c;
  *(uint *)(lVar3 + -0x678) =
       (*(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0xd94b643d)) ^ uVar18) << ((byte)uVar8 & 0x1f) ^
       uVar7;
  uVar19 = DAT_182671588;
  *(ulonglong *)(lVar3 + -0x628) =
       (CONCAT44(uVar21,uVar21) ^ 0x1e9720bddf81c69) + 0x2523b22c541e62f4;
  puVar34 = (uint *)(lVar3 - ((ulonglong)uVar32 ^ 0xd94b6f3d));
  *puVar34 = (*(uint *)(lVar3 + -0x374) ^ uVar18) >> (((byte)uVar19 ^ 0xde) & 0x1f) ^ DAT_1826716a0;
  uVar19 = DAT_182671580;
  *(ulonglong *)(lVar3 + -0x400) =
       (CONCAT44(uVar28,uVar8) ^ 0x484439434ca117cc) <<
       ((*(byte *)(lVar3 - (uVar33 ^ 0xad96e96)) ^ (byte)DAT_18267179c) & 0x3f);
  puVar23 = (uint *)(lVar3 - ((ulonglong)uVar19 ^ 0x3bfe265c));
  uVar9 = DAT_182671574 ^ 0xde90f9e;
  *puVar23 = (*(uint *)(lVar3 + -0x678) ^ uVar7 | *(uint *)(lVar3 + -0x874) ^ DAT_1826716a0) ^
             DAT_1826716b0;
  uVar18 = DAT_182671788;
  *(uint *)(lVar3 - (uVar31 ^ 0x17f2c54c)) = uVar19 ^ 0x1492dbc0 | uVar9;
  puVar16 = (uint *)(lVar3 - ((ulonglong)uVar15 ^ 0xfccd3245));
  uVar19 = (*puVar16 ^ DAT_182671624) + (uVar20 ^ *(uint *)(lVar3 + -0x5cc)) ^ DAT_182671764;
  *(uint *)(lVar3 + -0x274) = uVar19;
  uVar19 = uVar19 ^ uVar18 ^ DAT_182671764;
  *(ulonglong *)(lVar3 + -0x9e8) =
       (CONCAT44(uVar10,uVar8) ^ 0x80ede70e2151f056) + *(longlong *)(lVar3 + -0xa88);
  *(uint *)(lVar3 + -0x344) = uVar19;
  *(ulonglong *)(lVar3 + -0x1d8) =
       *(longlong *)(lVar3 + -0x2a0) - (CONCAT44(uVar15,uVar21) ^ 0x4c3c43f54a2012a3);
  uVar19 = DAT_1826717b0;
  uVar20 = *(uint *)(lVar3 + -0x504) ^ DAT_1826717b0 ^ DAT_1826716b0;
  *(uint *)(lVar3 + -0x754) = uVar20;
  *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0xd94b6e2d)) = (uVar20 ^ uVar19) * (uVar32 ^ 0xc4bb538e);
  puVar17 = (uint *)(lVar3 - ((ulonglong)DAT_182671580 ^ 0x3bfe201c));
  *(uint *)(lVar3 + -0x968) = *puVar17 ^ uVar18 ^ DAT_182671624;
  *(longlong *)(lVar3 + -0x3f0) = *(longlong *)(lVar3 + -0x9e8) + 0x774be6861eff3f96;
  *(uint *)(lVar3 + -0x328) = *(uint *)(lVar3 + -0x754) ^ DAT_182671850 ^ uVar19;
  bVar6 = (byte)DAT_18267180c;
  bVar13 = (byte)DAT_182671570;
  pbVar11 = (byte *)((CONCAT44(uVar15,uVar8) ^ 0xfccd318d318dfccd) * 0x20 +
                     (CONCAT44(uVar28,uVar25) ^ 0x8d31cdfc17f2cd06) + *(longlong *)(lVar3 + -0x8f0))
  ;
  *(ulonglong *)(lVar3 + -0x720) = (ulonglong)pbVar11 ^ uVar24;
  *(byte *)(lVar3 + -0x831) = *pbVar11 ^ bVar6 ^ (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar3 + -0xa8) ^ (ulonglong)DAT_182671748) = bVar13 ^ 199;
  uVar20 = DAT_182671878;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x966b3d83)) =
       (CONCAT44(uVar25,uVar10) ^ 0xfdfdafd0d8408610) +
       (CONCAT44(uVar28,uVar21) ^ 0xaabd55fd10498b77);
  *(uint *)(lVar3 + -0x47c) = (bVar6 ^ *(byte *)(lVar3 + -0x831)) ^ uVar20;
  uVar19 = DAT_182671580;
  *(uint *)(lVar3 + -0x27c) =
       (*(uint *)(lVar3 - (uVar31 ^ 0x17f2ce20)) ^ DAT_182671850) + (uVar15 ^ 0xf53a1758) ^
       DAT_18267171c;
  puVar27 = (uint *)(lVar3 - ((ulonglong)uVar19 ^ 0x3bfe2724));
  *(ulonglong *)(lVar3 + -0x270) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0xd94b67e9)) >>
       ((byte)*(undefined8 *)(lVar3 + -0x898) & 0x3f);
  puVar36 = (uint *)(lVar3 - ((ulonglong)uVar8 ^ 0x318dfeb1));
  uVar15 = uVar20 ^ *puVar27;
  *(uint *)(lVar3 + -0x374) = uVar15 * 0x20000 ^ uVar18;
  uVar8 = DAT_182671708;
  uVar24 = (ulonglong)DAT_182671708;
  *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0xd94b6131)) =
       (*puVar36 ^ DAT_18267171c) + uVar15 * -0x20000 ^ DAT_1826716ec;
  lVar2 = DAT_182671560;
  *(uint *)(lVar3 + -0x874) =
       (*(uint *)(lVar3 + -0x678) ^ DAT_1826716ec) * (*(uint *)(lVar3 + -0x968) ^ DAT_182671624) ^
       DAT_182671614;
  uVar18 = (*(uint *)(lVar3 + -0x47c) ^ uVar20) * 0xe ^ DAT_182671848;
  *(uint *)(lVar3 + -0x844) = uVar18;
  uVar15 = DAT_182671880;
  *(uint *)(lVar3 + -0x5cc) =
       (*(uint *)(lVar3 - (uVar33 ^ 0xad96c62)) ^ DAT_182671614) + (uVar18 ^ DAT_182671848) ^
       DAT_182671880;
  bVar13 = (byte)DAT_182671574 ^ 0x2e;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xfccd398d)) =
       *(ulonglong *)(lVar3 + -0x400) | 0x4cee6a9b4439b7f0;
  *(uint *)(lVar2 + -0x274) =
       (*(uint *)(lVar2 - (uVar38 ^ 0x8d31c830)) ^ uVar15) << (bVar13 & 0x1f) ^ DAT_18267184c;
  *(uint *)(lVar2 + -0x504) =
       (uVar15 ^ *(uint *)(lVar2 + -0x5cc)) >> (((byte)uVar19 ^ 0x4b) & 0x1f) ^ uVar8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0xd94b6259)) =
       (CONCAT44(uVar21,uVar25) ^ 0x17a3d10d88f0b2c9) <<
       ((byte)*(undefined8 *)(lVar2 + -0x6d0) & 0x3f);
  uVar21 = DAT_182671588;
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 + -0x274) ^ DAT_18267184c | *(uint *)(lVar2 + -0x504) ^ uVar8) ^
       DAT_182671688;
  uVar20 = DAT_1826716f8;
  uVar18 = DAT_182671624;
  uVar15 = DAT_182671620;
  uVar8 = DAT_1826715bc;
  uVar19 = DAT_18267159c;
  uVar26 = (ulonglong)DAT_182671624;
  uVar37 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x318dfa75)) =
       *(ulonglong *)(lVar2 + -0xa0) | *(ulonglong *)(lVar2 + -0x9e8);
  *(uint *)(lVar2 + -0x344) =
       (*(uint *)(lVar2 + -0x968) ^ uVar18) + (*(uint *)(lVar2 + -0x3c8) ^ uVar18) ^ DAT_182671630;
  uVar9 = DAT_18267186c;
  uVar29 = *(uint *)(lVar2 + -0x964) ^ DAT_1826717e8 ^ DAT_182671688;
  *(ulonglong *)(lVar2 + -0x8a8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x318dfc4d)) >>
       (((byte)uVar7 ^ *(byte *)(lVar2 + -0x610)) & 0x3f);
  uVar21 = DAT_182671580;
  uVar12 = (ulonglong)DAT_182671580;
  uVar18 = *(uint *)(lVar2 - (uVar35 ^ 0xfccd32c9)) ^ DAT_1826717e4 ^ DAT_182671630;
  *(undefined8 *)(lVar2 + -0x240) = 0xff5cf7b7fdcfefcd;
  *(uint *)(lVar2 + -0x754) = uVar18;
  *(uint *)(lVar2 + -0x27c) = uVar18 ^ uVar9 ^ DAT_1826717e4;
  *(uint *)(lVar2 + -0x328) = uVar29;
  *(uint *)(lVar2 - (uVar12 ^ 0x3bfe202c)) = uVar29 ^ uVar20 ^ DAT_1826717e8;
  pbVar11 = (byte *)((CONCAT44(uVar19,uVar21) ^ 0x64074cef3bfe2358) * 0x20 +
                    *(longlong *)(lVar2 + -0x8f0) + 0x19);
  *(ulonglong *)(lVar2 + -0x500) = (ulonglong)pbVar11 ^ uVar26;
  *(byte *)(lVar2 + -0xbf2) = *pbVar11 ^ (byte)uVar8 ^ (byte)DAT_182671694;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x2b0) ^ uVar24) = 0x13;
  uVar18 = DAT_182671754;
  *(uint *)(lVar2 - (uVar35 ^ 0xfccd37f5)) = uVar8 & 0xff ^ (uint)*(byte *)(lVar2 + -0xbf2) ^ uVar15
  ;
  uVar21 = DAT_18267158c;
  *(ulonglong *)(lVar2 + -0x688) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0xad96016)) | *(ulonglong *)(lVar2 + -0x8a8);
  *puVar27 = (*(uint *)(lVar2 + -0x374) ^ uVar20) + (uVar21 ^ 0x84c6eb29) ^ DAT_182671628;
  *puVar34 = (*(uint *)(lVar2 + -0x678) ^ uVar15) << (((byte)uVar25 ^ 0x19) & 0x1f) ^ DAT_182671884;
  lVar3 = DAT_182671560;
  uVar21 = (*(uint *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x318df8b1)) ^ DAT_182671628) -
           (*(uint *)(lVar2 + -0x874) ^ DAT_182671884) ^ DAT_18267179c;
  uVar29 = DAT_182671574 ^ 0x966b3d3a;
  *(uint *)(lVar2 + -0x844) = uVar21;
  uVar30 = (*(uint *)(lVar2 + -0x27c) ^ uVar9) * (uVar21 ^ DAT_18267179c);
  *(uint *)(lVar2 + -0x5cc) = uVar30 ^ DAT_1826717c8;
  uVar7 = DAT_182671800;
  uVar21 = DAT_1826715f4;
  *(uint *)(lVar3 + -0x274) = (*(uint *)(lVar2 + -0x678) ^ uVar15) * uVar29 ^ DAT_182671800;
  *puVar23 = (*(uint *)(lVar3 - (uVar38 ^ 0x8d31cf88)) ^ uVar7) + uVar30 ^ DAT_1826715cc;
  lVar2 = DAT_182671560;
  uVar15 = *(uint *)(lVar3 + -0x504) ^ DAT_1826715cc;
  uVar29 = uVar15 << (bVar13 & 0x1f);
  bVar13 = (byte)uVar19;
  uVar30 = uVar29 ^ uVar21;
  *(uint *)(DAT_182671560 + -0x968) = uVar30;
  *(uint *)(lVar2 + -0x344) = uVar15 >> ((bVar13 ^ 0xfc) & 0x1f) ^ uVar18;
  uVar19 = DAT_18267172c;
  uVar5 = DAT_1826715c0;
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 + -0x274) ^ uVar7) << (((byte)uVar30 ^ (byte)uVar21) & 0x1f);
  lVar3 = DAT_182671560;
  uVar15 = (uVar18 ^ *puVar17 | uVar29) ^ DAT_182671654;
  *(uint *)(lVar2 + -0x754) = uVar15;
  uVar21 = DAT_1826715a4;
  uVar18 = uVar15 ^ uVar19 ^ DAT_182671654;
  uVar15 = (*puVar16 ^ DAT_182671624) + (*puVar36 ^ uVar9) ^ DAT_182671608;
  uVar24 = (ulonglong)DAT_1826715a4;
  *(uint *)(lVar2 + -0x374) = DAT_1826718b4 ^ DAT_182671608 ^ uVar15;
  *(uint *)(lVar2 + -0x328) = uVar15;
  uVar12 = CONCAT44(DAT_182671760,DAT_182671760);
  *(uint *)(lVar2 + -0x47c) = uVar18;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar32 ^ 0xd94b6eb1)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar38 ^ 0x8d31cd94)) ^ uVar12) ^
       CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar4 + -0x68) = CONCAT44(uVar21,uVar25) ^ 0x71691187fd27a78f;
  *(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x2c97423b)) =
       *(uint *)(lVar4 - (uVar35 ^ 0xfccd32f9)) ^ DAT_182671890 ^ DAT_1826718b4;
  *(uint *)(lVar3 + -0x844) = uVar19 ^ *(uint *)(lVar3 + -0x47c) ^ uVar20;
  bVar6 = (byte)DAT_1826716dc;
  lVar2 = DAT_182671560;
  uVar12 = (ulonglong)DAT_1826716ac;
  pbVar11 = (byte *)(*(longlong *)(DAT_182671560 + -0x8f0) + 4 +
                    (CONCAT44(uVar10,uVar25) ^ 0x966b3d2317f2cd08) * 0x20);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       *(ulonglong *)(DAT_182671560 + -0x400) >> (((byte)uVar25 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar2 + -0x498) = (ulonglong)pbVar11 ^ uVar12;
  *(byte *)(lVar2 + -0xae9) = *pbVar11 ^ bVar6 ^ (byte)DAT_182671694;
  uVar21 = DAT_182671580;
  *(byte *)(*(ulonglong *)(lVar2 + -0x998) ^ uVar26) = bVar13 ^ 0x5c;
  uVar15 = (uint)(*(byte *)(lVar2 - (uVar35 ^ 0xfccd3b64)) ^ bVar6);
  uVar10 = DAT_182671574 ^ 0x9f9c1bf6;
  *(uint *)(lVar2 + -0x678) = uVar15 ^ uVar8;
  *(uint *)(lVar2 + -0x5cc) = uVar10 + 0x7104f0ec;
  uVar8 = DAT_1826718a0;
  uVar18 = (uVar20 ^ *(uint *)(lVar2 + -0x844)) + (DAT_182671570 ^ 0x32e42c3);
  uVar10 = uVar15 << (((byte)uVar21 ^ 0x49) & 0x1f);
  uVar19 = uVar10 ^ DAT_182671858;
  *(uint *)(lVar2 + -0x504) = uVar18 ^ DAT_1826718a0;
  *(uint *)(lVar2 + -0x274) = uVar19;
  *(uint *)(lVar2 + -0x964) = uVar18 - uVar10 ^ DAT_182671650;
  *(uint *)(lVar2 + -0x968) =
       (*(uint *)(lVar2 - (uVar22 ^ 0x966b3447)) ^ DAT_182671650) *
       (*(uint *)(lVar2 + -0x874) ^ DAT_182671890) ^ DAT_182671604;
  uVar19 = DAT_182671658;
  uVar15 = (DAT_182671588 ^ 0x318dfcc9) * uVar15;
  *(uint *)(lVar2 + -0x344) = uVar15 ^ DAT_182671658;
  uVar10 = DAT_18267163c;
  *(uint *)(lVar2 + -0x27c) =
       (*(uint *)(lVar2 - (uVar22 ^ 0x966b344b)) ^ DAT_182671604) + uVar15 ^ DAT_18267163c;
  *(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0xd94b6461)) =
       (*(uint *)(lVar2 - (uVar31 ^ 0x17f2cf74)) ^ uVar10) << (((byte)uVar21 ^ 0x55) & 0x1f) ^ uVar8
  ;
  *(uint *)(lVar2 - (uVar24 ^ 0x2c974d1b)) =
       (*(uint *)(lVar2 - (uVar33 ^ 0xad96752)) ^ uVar19) << 0x15;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826715ac ^ 0x489005d4)) =
       (*(uint *)(lVar2 - (uVar37 ^ 0x64074e93)) ^ uVar10) >> (((byte)uVar32 ^ 0x5a) & 0x1f) ^
       DAT_1826718a4;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar28) * 4) = uVar14;
  return;
}



############ FUN_ 180ef0f20 size=3232 ############

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

void FUN_180ef0f20(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  ulonglong *puVar10;
  byte bVar11;
  byte bVar12;
  ulonglong uVar13;
  byte bVar14;
  byte bVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  byte local_res8;
  
  uVar6 = DAT_1826715b4;
  uVar27 = DAT_1826715a0;
  uVar5 = DAT_182671598;
  uVar3 = DAT_182671594;
  uVar21 = DAT_182671590;
  lVar1 = DAT_182671560;
  uVar23 = DAT_182671590 | DAT_182671568;
  uVar29 = DAT_182671594 & DAT_1826715a0;
  uVar20 = DAT_18267158c | DAT_182671584;
  DAT_1826715ac = DAT_1826715b4 << 0x10 | DAT_1826715b4 >> 0x10;
  uVar30 = DAT_182671598 << 0x10 | DAT_182671598 >> 0x10;
  uVar25 = *(uint *)(&DAT_182611e78 + DAT_18267198c) ^ DAT_1826715ac;
  uVar7 = *(uint *)(&DAT_182611e80 + DAT_18267198c) ^ DAT_1826715b4;
  uVar18 = (ulonglong)_DAT_18267188c;
  bVar14 = (byte)DAT_182671584;
  DAT_18267156c = uVar20;
  DAT_182671570 = uVar29;
  DAT_18267157c = uVar23;
  DAT_18267159c = uVar30;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0xa20) ^ uVar18) = (byte)DAT_18267158c ^ 0x21;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x60) ^ (ulonglong)DAT_1826716a0) = 0x33;
  uVar24 = (ulonglong)uVar20;
  uVar8 = (ulonglong)_DAT_182671868;
  *(byte *)(*(ulonglong *)(lVar1 + -0xce0) ^ (ulonglong)DAT_1826717c4) = bVar14 ^ 2;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xbb7fec89)) ^ uVar8) = bVar14 ^ 0xaa;
  uVar4 = DAT_18267158c;
  lVar1 = DAT_182671560;
  bVar11 = (byte)(uVar5 >> 0x10);
  bVar12 = (byte)DAT_182671568;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x428) ^ uVar8) = bVar11 ^ 0x67;
  uVar8 = (ulonglong)DAT_1826715c0;
  *(byte *)(*(ulonglong *)(lVar1 + -0x700) ^ (ulonglong)DAT_182671890) = bVar12 ^ 0xf1;
  *(byte *)(*(ulonglong *)(lVar1 + -0xcc0) ^ uVar8) = (byte)uVar5 ^ 0x61;
  lVar2 = DAT_182671560;
  uVar31 = (ulonglong)DAT_1826717d0;
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar23 ^ 0xffdfc7ef)) ^ (ulonglong)_DAT_1826716c0) =
       (byte)uVar4 ^ 0xf;
  uVar19 = (ulonglong)DAT_182671898;
  bVar12 = (byte)uVar21;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb38) ^ uVar31) = (byte)uVar27 ^ 0x77;
  uVar13 = (ulonglong)uVar29;
  uVar8 = (ulonglong)DAT_1826718a8;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar13 ^ 0x9602158)) ^ uVar19) = bVar12 ^ 0xaf;
  uVar17 = (ulonglong)DAT_182671740;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x7f0) ^ uVar8) = (byte)uVar3 ^ 0x27;
  lVar1 = DAT_182671560;
  bVar15 = (byte)uVar29;
  uVar8 = (ulonglong)DAT_1826717cc;
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0x5b9266ca)) ^ uVar17) =
       bVar15 ^ 0xef;
  lVar2 = DAT_182671560;
  local_res8 = (byte)(uVar6 >> 0x10);
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x8e8) ^ uVar8) = 0x23;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xbb7fe1f9)) ^ (ulonglong)DAT_182671794) =
       local_res8 ^ 0x29;
  uVar27 = DAT_182671594;
  uVar8 = (ulonglong)DAT_18267171c;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xbb7fe6a9)) ^ (ulonglong)DAT_182671774) = 0x5c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x118) ^ uVar8) = (byte)uVar5 ^ 0x65;
  *(byte *)(*(ulonglong *)(lVar2 + -0x1a8) ^ (ulonglong)DAT_182671804) = (byte)uVar6 ^ 0x1a;
  uVar8 = (ulonglong)_DAT_182671610;
  *(byte *)(*(ulonglong *)(lVar2 + -0x1b0) ^ (ulonglong)DAT_18267178c) = bVar12 ^ 0xee;
  uVar9 = (ulonglong)DAT_182671608;
  *(byte *)(*(ulonglong *)(lVar2 + -0xd80) ^ uVar8) = bVar14 ^ 0xa0;
  uVar16 = (ulonglong)DAT_182671828;
  *(byte *)(*(ulonglong *)(lVar2 + -0xae8) ^ uVar9) = (byte)uVar27 ^ 0x96;
  uVar5 = DAT_1826715a0;
  uVar3 = DAT_182671568;
  uVar8 = (ulonglong)DAT_182671720;
  uVar22 = (ulonglong)DAT_182671568;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xbb7fe7e9)) ^ uVar16) = bVar11 ^ 0x96;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x8d0) ^ uVar8) = (byte)uVar5 ^ 0x6a;
  uVar8 = (ulonglong)DAT_1826717d4;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar22 ^ 0x9996416e)) ^ (ulonglong)DAT_1826716b0) =
       (byte)DAT_18267158c ^ 0xca;
  uVar9 = (ulonglong)DAT_18267169c;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x5e8) ^ uVar8) = (byte)DAT_182671568 ^ 0x98;
  lVar1 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0xad0) ^ uVar9) = local_res8 ^ 0xbc;
  uVar8 = (ulonglong)DAT_18267176c;
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0x97024d9)) ^ (ulonglong)DAT_1826715c8) =
       local_res8 ^ 0x6a;
  uVar28 = (ulonglong)DAT_18267166c;
  *(byte *)(*(ulonglong *)(lVar1 + -0xb08) ^ uVar8) = (byte)uVar5 ^ 0x62;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0xd50) ^ uVar28) = 0xea;
  uVar16 = (ulonglong)_DAT_1826715dc;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x1b8) ^ (ulonglong)DAT_182671718) = 0x66;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x728) ^ uVar16) = 0xbe;
  uVar8 = (ulonglong)DAT_1826717f4;
  *(undefined1 *)
   (*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x99964fee)) ^ (ulonglong)DAT_1826716d4) = 0xf8;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x4d0) ^ uVar8) = bVar11 ^ 0xbe;
  uVar26 = (ulonglong)DAT_1826716e8;
  uVar8 = (ulonglong)DAT_182671744;
  *(undefined1 *)(*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xbb7fe589)) ^ (ulonglong)_DAT_182671838)
       = 0x96;
  uVar9 = (ulonglong)DAT_182671768;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x780) ^ uVar8) = bVar15 ^ 0x43;
  lVar1 = DAT_182671560;
  *(undefined1 *)(*(ulonglong *)(DAT_182671560 + -0x9e0) ^ uVar9) = 0xb2;
  *(undefined1 *)
   (*(ulonglong *)(lVar1 - ((ulonglong)uVar23 ^ 0xffdfc9e7)) ^ (ulonglong)DAT_1826716e4) = 0xdc;
  lVar2 = DAT_182671560;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0xc28) ^ uVar26) = 8;
  uVar24 = (ulonglong)DAT_18267163c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x7a0) ^ (ulonglong)DAT_182671874) = bVar14 ^ 0xfd;
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar23 ^ 0xffdfcd67)) ^
           (ulonglong)DAT_182671894) = bVar14 ^ 0x2c;
  lVar1 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x18) ^ uVar24) = (byte)DAT_182671598 ^ 0x31;
  *(undefined1 *)(*(ulonglong *)(lVar1 - (uVar22 ^ 0x99964fbe)) ^ (ulonglong)DAT_182671660) = 0x2a;
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0xbb7fe601)) ^ uVar18) =
       bVar12 ^ 0x6a;
  lVar1 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0xe6cd8e7f)) ^
           (ulonglong)DAT_182671814) = local_res8 ^ 0xa7;
  bVar12 = (byte)DAT_182671598;
  *(byte *)(*(ulonglong *)(lVar1 + -0x530) ^ (ulonglong)DAT_1826715c4) = bVar14 ^ 200;
  uVar27 = DAT_1826715b4;
  uVar8 = (ulonglong)DAT_182671888;
  *(byte *)(*(ulonglong *)(lVar1 + -0x928) ^ (ulonglong)DAT_1826718bc) = bVar12 ^ 0x71;
  uVar9 = (ulonglong)DAT_18267167c;
  *(byte *)(*(ulonglong *)(lVar1 + -0x598) ^ uVar8) = (byte)uVar27 ^ 0xaa;
  lVar2 = DAT_182671560;
  uVar18 = (ulonglong)DAT_1826715d4;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x4e8) ^ uVar9) = 0x8b;
  uVar3 = DAT_182671594;
  uVar8 = (ulonglong)DAT_18267175c;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar13 ^ 0x9602b68)) ^ uVar18) = bVar11 ^ 0x75;
  bVar12 = (byte)uVar3;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x3a8) ^ uVar8) = bVar12 ^ 1;
  uVar3 = DAT_1826715a0;
  uVar22 = (ulonglong)DAT_1826716f4;
  puVar10 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0xe6cd8297));
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0xbb7fe699)) ^ uVar24) =
       bVar11 ^ 0x76;
  lVar1 = DAT_182671560;
  uVar8 = (ulonglong)DAT_182671690;
  *(byte *)(*puVar10 ^ uVar19) = (byte)uVar27 ^ 0x37;
  *(byte *)(*(ulonglong *)(lVar1 + -0x500) ^ uVar8) = (byte)uVar3 ^ 0xe0;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x498) ^ uVar22) = 0x73;
  uVar8 = (ulonglong)DAT_182671698;
  *(byte *)(*(ulonglong *)(lVar1 + -0xb28) ^ (ulonglong)DAT_1826717d8) = (byte)uVar20 ^ 0x23;
  uVar9 = (ulonglong)DAT_1826716f0;
  *(byte *)(*(ulonglong *)(lVar1 + -0x860) ^ uVar8) = bVar12 ^ 0xbc;
  *(byte *)(*(ulonglong *)(lVar1 + -0xad8) ^ uVar9) = (byte)DAT_182671598 ^ 0xfd;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0xbd8) ^ uVar31) = 0xed;
  *(byte *)(*(ulonglong *)(lVar1 + -0xa18) ^ uVar28) = local_res8 ^ 0xb2;
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar23 ^ 0xffdfcdaf)) ^ uVar26) = bVar15 ^ 0x96;
  uVar18 = (ulonglong)DAT_18267172c;
  *(byte *)(*(ulonglong *)(lVar1 + -0x138) ^ uVar17) = (byte)uVar3 ^ 0xb1;
  bVar11 = (byte)DAT_182671568;
  *(byte *)(*(ulonglong *)(lVar1 + -0xe0) ^ uVar18) = bVar12 ^ 0x49;
  uVar8 = (ulonglong)DAT_1826715f8;
  *(byte *)(*(ulonglong *)(lVar1 + -0x820) ^ (ulonglong)DAT_182671780) = bVar11 ^ 0x66;
  uVar21 = DAT_18267158c;
  uVar9 = (ulonglong)DAT_182671810;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x188) ^ uVar8) = 0x75;
  *(undefined1 *)(*(ulonglong *)(lVar1 - (uVar13 ^ 0x9602d78)) ^ uVar9) = 0x53;
  uVar8 = (ulonglong)DAT_1826717e0;
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar30 ^ 0x6a3a59da)) ^ (ulonglong)DAT_182671604) =
       local_res8 ^ 0x83;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x868) ^ uVar8) = 0xa1;
  uVar4 = DAT_182671580;
  uVar3 = DAT_182671578;
  uVar24 = (ulonglong)DAT_182671724;
  uVar19 = (ulonglong)DAT_1826716ec;
  uVar17 = (ulonglong)DAT_1826718cc;
  uVar8 = (ulonglong)DAT_182671750;
  uVar13 = (ulonglong)DAT_18267160c;
  uVar27 = DAT_182671580 | DAT_182671578;
  DAT_1826715a8 = uVar27;
  *(undefined1 *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar21 ^ 0xbb7fe181)) ^ uVar16) = 0xb3;
  uVar9 = (ulonglong)DAT_182671738;
  *(byte *)(*(ulonglong *)(lVar1 + -0xc38) ^ uVar8) = (byte)uVar21 ^ 0x14;
  bVar14 = (byte)uVar27;
  *(byte *)(*(ulonglong *)(lVar1 + -0x990) ^ uVar9) = bVar11 ^ 0xe0;
  bVar12 = (byte)uVar4;
  *(byte *)(*(ulonglong *)(lVar1 + -0x148) ^ uVar24) = bVar12 ^ 0x6a;
  *(undefined1 *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xa2125a0)) ^ (ulonglong)DAT_1826716a0)
       = 0xf0;
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0xfeaff006)) ^ uVar19) = bVar14 ^ 0xbf;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0xcb8) ^ uVar17) = 0x15;
  uVar8 = (ulonglong)DAT_182671818;
  *(byte *)(*(ulonglong *)(lVar1 + -0xb58) ^ (ulonglong)DAT_182671834) = bVar14 ^ 0xd;
  uVar4 = DAT_1826715a4;
  lVar2 = DAT_182671560;
  uVar21 = DAT_1826715a4 << 0x10 | DAT_1826715a4 >> 0x10;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x7e8) ^ uVar8) = 0x29;
  bVar11 = (byte)uVar4;
  DAT_182671574 = uVar21;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x238) ^ uVar13) = 0x77;
  *(byte *)(*(ulonglong *)(lVar2 + -0x340) ^ (ulonglong)DAT_182671828) = bVar11 ^ 0xb9;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x738) ^ (ulonglong)DAT_1826717b8) =
       (byte)(uVar4 >> 0x10) ^ 0x36;
  lVar1 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0xca8) ^ (ulonglong)DAT_182671664) = bVar11 ^ 6;
  lVar2 = DAT_182671560;
  *(byte *)(*(ulonglong *)(lVar1 + -0x158) ^ uVar18) = bVar11 ^ 0x9b;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x528) ^ (ulonglong)DAT_182671694) = 0x8d;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x7a481052)) ^ (ulonglong)DAT_182671754) =
       (byte)uVar3 ^ 0x8f;
  uVar8 = (ulonglong)DAT_1826716d0;
  uVar16 = (ulonglong)DAT_1826718c4;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x7a48183a)) ^ uVar17) = bVar12 ^ 0xb9;
  uVar9 = (ulonglong)DAT_182671804;
  *(byte *)(*(ulonglong *)(lVar2 + -0x390) ^ uVar8) = bVar14 ^ 0x55;
  uVar3 = DAT_1826715b0;
  uVar21 = DAT_1826715b0 << 0x10 | DAT_1826715b0 >> 0x10;
  DAT_182671588 = uVar21;
  *(byte *)(*(ulonglong *)(lVar2 + -0xc30) ^ uVar9) = bVar12 ^ 0x39;
  uVar8 = (ulonglong)DAT_18267185c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x818) ^ (ulonglong)DAT_182671808) = bVar12 ^ 0xd9;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x750) ^ uVar8) = 0x6e;
  bVar12 = (byte)uVar3;
  *(byte *)(*(ulonglong *)(lVar2 + -0x3e0) ^ uVar16) = bVar12 ^ 0x56;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x99964fae)) ^ (ulonglong)DAT_18267187c) = 0x4f;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x150) ^ (ulonglong)DAT_1826715c4) = 0xa0;
  uVar8 = (ulonglong)DAT_182671788;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x9996428e)) ^ uVar19) = bVar12 ^ 0xa1;
  *(byte *)(*(ulonglong *)(lVar2 + -0x370) ^ uVar8) = (byte)(uVar3 >> 0x10) ^ 0xe8;
  *(byte *)(*(ulonglong *)(lVar2 + -0x7c8) ^ uVar22) = bVar12 ^ 0x34;
  *(undefined4 *)(*(ulonglong *)(lVar2 + -0xd00) ^ uVar24) = 0x22b473a4;
  *(undefined4 *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x19327cb0)) ^ uVar16) = 0x478eb84c;
  *(uint *)(*(ulonglong *)(lVar2 + -0x658) ^ uVar13) = uVar3 ^ 0x57da5b7d;
  *(uint *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x9996404e)) ^ (ulonglong)DAT_1826718b4) =
       uVar3 ^ 0x2cfe024c;
  uVar8 = (ulonglong)DAT_1826716a0;
  *(uint *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xfeaff356)) ^ (ulonglong)DAT_1826715d4) =
       uVar3 ^ 0x9d56bc3f;
  *(undefined4 *)(*(ulonglong *)(lVar2 + -0x8b0) ^ uVar8) = 0xedce562;
  *(undefined8 *)(CONCAT44(DAT_1826717ec,DAT_1826717ec) ^ *(ulonglong *)(lVar2 + -0x128)) =
       0xe363ac5a63f33825;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar7 * 4) = uVar25;
  return;
}



############ FUN_ 180e9a5e0 size=5834 ############

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

void FUN_180e9a5e0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte bVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_f8;
  
  uVar13 = DAT_182671738;
  uVar12 = DAT_1826715a0;
  uVar11 = DAT_18267159c;
  uVar27 = DAT_182671584;
  uVar9 = DAT_18267157c;
  uVar8 = DAT_182671574;
  lVar5 = DAT_182671560;
  uVar44 = (ulonglong)DAT_18267159c;
  uVar47 = (ulonglong)DAT_18267157c;
  uVar24 = (ulonglong)DAT_182671574;
  uVar28 = (ulonglong)DAT_182671584;
  uVar26 = DAT_182671570 ^ DAT_182671584;
  DAT_1826715ac = DAT_182671568 << 0x10 | DAT_182671568 >> 0x10;
  uVar46 = DAT_182671574 | DAT_1826715a0;
  uVar15 = DAT_18267159c | DAT_18267158c;
  uVar33 = (ulonglong)uVar15;
  uVar25 = DAT_18267157c << 0x10 | DAT_18267157c >> 0x10;
  uVar16 = *(uint *)(&DAT_182611e70 + (uVar33 ^ 0xddfdfff0) + (longlong)DAT_182671b74) ^
           DAT_18267158c;
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_182671b74) ^ DAT_18267159c;
  uVar37 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar34 = CONCAT44(DAT_182671814,DAT_182671814);
  uVar32 = (ulonglong)uVar46;
  uVar22 = (ulonglong)DAT_1826715a0;
  uVar41 = *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xfdfffff9)) ^
           CONCAT44(DAT_18267183c,DAT_18267183c) ^ uVar34 ^ uVar37 ^
           *(ulonglong *)(DAT_182671560 + -0x628);
  uVar21 = CONCAT44(uVar15,DAT_1826715a0);
  DAT_18267156c = uVar46;
  DAT_182671594 = uVar25;
  DAT_1826715a8 = uVar15;
  DAT_1826715b4 = uVar26;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar41;
  uVar14 = DAT_182671804;
  uVar7 = DAT_182671570;
  bVar18 = (byte)uVar12;
  uVar41 = (uVar41 ^ uVar37) >> ((bVar18 ^ 0x33) & 0x3f);
  *(ulonglong *)(lVar5 + -0x670) = uVar41 ^ CONCAT44(uVar13,uVar13);
  lVar5 = DAT_182671560;
  puVar2 = (ulonglong *)(DAT_182671560 + -0x318);
  uVar37 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0xedeefe81)) ^ uVar37) <<
           (((byte)uVar7 ^ 0x4a) & 0x3f);
  *puVar2 = uVar37 ^ CONCAT44(uVar14,uVar14);
  uVar38 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar35 = (ulonglong)uVar26;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0xddfdf9f8)) = (uVar37 | uVar41) ^ uVar38;
  uVar30 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar26 ^ 0xfffff92f)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar26 ^ 0xfffffe0f)) ^ uVar34) -
       (uVar38 ^ *(ulonglong *)(lVar5 + -0x600)) ^ uVar30;
  uVar13 = DAT_1826718b4;
  uVar14 = DAT_182671770;
  uVar7 = DAT_1826715ac;
  uVar29 = CONCAT44(DAT_182671770,DAT_182671770);
  uVar31 = CONCAT44(DAT_182671848,DAT_182671848);
  uVar42 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  uVar41 = (ulonglong)uVar25;
  uVar37 = *(ulonglong *)(lVar5 - ((ulonglong)uVar26 ^ 0xfffffa37)) ^ uVar42 ^ uVar31 ^ uVar29 ^
           *(ulonglong *)(lVar5 + -0x9f8);
  *(ulonglong *)(lVar5 + -0x898) = uVar37;
  lVar5 = DAT_182671560;
  uVar39 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x356d38ac)) =
       (uVar37 ^ uVar29) >> (((byte)uVar9 ^ 0xde) & 0x3f) ^ uVar39;
  uVar37 = CONCAT44(DAT_18267169c,DAT_18267169c);
  bVar20 = (byte)uVar8;
  *(ulonglong *)(lVar5 + -0x400) =
       (uVar29 ^ *(ulonglong *)(lVar5 + -0x898)) << ((bVar20 ^ 0x23) & 0x3f) ^ uVar37;
  uVar36 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xfffffdbf)) =
       (*(ulonglong *)(lVar5 - (uVar24 ^ 0xedeef009)) ^ uVar37 |
       *(ulonglong *)(lVar5 + -0x8a8) ^ uVar39) ^ uVar36;
  uVar13 = DAT_182671874;
  uVar29 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  uVar37 = *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x860d3e88));
  *(uint *)(lVar5 + -0x754) = uVar46 ^ 0xf53eef0f | 0x550e4705;
  uVar40 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x270) =
       (uVar42 ^ *(ulonglong *)(lVar5 + -0x9f8)) - (uVar37 ^ uVar36) ^ uVar29;
  uVar13 = DAT_182671658;
  uVar37 = uVar40 ^ uVar36 ^ uVar30 ^ *(ulonglong *)(lVar5 + -0x6d0) ^
           *(ulonglong *)(lVar5 + -0x240);
  *(ulonglong *)(lVar5 + -0x1d8) = uVar37;
  bVar43 = (byte)(uVar9 >> 0x10);
  uVar42 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x72e15a3)) =
       (uVar37 ^ uVar40) >> ((bVar43 ^ 0x23) & 0x3f) ^ uVar42;
  uVar13 = DAT_1826718d0;
  uVar7 = DAT_182671570;
  puVar3 = (ulonglong *)(lVar5 + -0x510);
  uVar37 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar5 + -0x548) =
       (uVar42 ^ *puVar3) >> (((byte)uVar14 ^ *(byte *)(lVar5 + -0x898)) & 0x3f);
  uVar10 = DAT_18267158c;
  lVar5 = DAT_182671560;
  uVar39 = CONCAT44(uVar13,uVar13);
  uVar48 = (ulonglong)DAT_18267158c;
  uVar36 = CONCAT44(uVar8,DAT_18267158c);
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xf8d1ee94)) ^ uVar40) << ((bVar18 ^ 0x1b) & 0x3f)
       ^ uVar39;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xf8d1edec)) =
       *(ulonglong *)(lVar5 - (uVar22 ^ 0x3d13a819)) ^ uVar36 ^ uVar39 ^ 0xf4f77256b0fd9d2d;
  uVar40 = CONCAT44(DAT_182671664,DAT_182671664);
  uVar37 = uVar39 ^ *(ulonglong *)(lVar5 + -0x610) | uVar42 ^ *puVar3;
  *(ulonglong *)(lVar5 + -0x748) = uVar37 ^ uVar40;
  puVar1 = (ulonglong *)(lVar5 + -0x80);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x72e1b43)) =
       (uVar30 ^ *(ulonglong *)(lVar5 + -0x6d0)) - uVar37 ^ uVar29;
  uVar14 = DAT_182671768;
  uVar37 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar22 = uVar37 ^ uVar29 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0x270) ^
           *(ulonglong *)(lVar5 + -0x600);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar22;
  uVar22 = uVar22 ^ uVar37;
  *puVar1 = uVar22 >> (((byte)uVar9 ^ 0xc4) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar5 - (uVar48 ^ 0xc4fcf7f8)) = uVar22 << (((byte)uVar11 ^ 0xec) & 0x3f) ^ uVar36;
  *(uint *)(lVar5 + -0x910) = (DAT_182671570 ^ 0x1e8b859c) + *(int *)(lVar5 + -0x874);
  uVar7 = DAT_1826717c4;
  uVar13 = _DAT_1826715f0;
  uVar37 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar39 = (ulonglong)DAT_1826717c4;
  uVar22 = uVar36 ^ *(ulonglong *)(lVar5 + -0x800) | CONCAT44(uVar14,uVar14) ^ *puVar1;
  uVar42 = uVar22 ^ uVar37;
  *(ulonglong *)(lVar5 + -0x628) = uVar42;
  lVar6 = DAT_182671560;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0xa88) = (uVar29 ^ *(ulonglong *)(lVar5 + -0x270)) - uVar22 ^ uVar36;
  lVar5 = DAT_182671560;
  puVar4 = (ulonglong *)(lVar6 + -0xbf0);
  uVar22 = CONCAT44(uVar7,uVar7);
  uVar38 = uVar22 ^ uVar42 ^ uVar37 ^ uVar29 ^ *puVar4;
  *(ulonglong *)(lVar6 + -0x670) = uVar38;
  *puVar2 = *(ulonglong *)(lVar5 + -0x548) >> (((byte)uVar14 ^ *(byte *)puVar1) & 0x3f);
  lVar5 = DAT_182671560;
  uVar42 = ((ulonglong)(uVar7 >> 0x19) | uVar39 << 7) ^
           *(ulonglong *)(DAT_182671560 - (uVar41 ^ 0x3cc8807d)) >> 0x19;
  uVar39 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar42 ^ CONCAT44(DAT_182671888,DAT_182671888);
  uVar37 = (uVar22 ^ uVar38) << ((bVar20 ^ 0x2e) & 0x3f);
  *(ulonglong *)(lVar5 + -0x5c8) = uVar37 ^ uVar39;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar22 ^ uVar38 ^ uVar21 ^ 0x78e1f5245e47521c;
  uVar9 = DAT_1826715ac;
  lVar5 = DAT_182671560;
  uVar21 = CONCAT44(DAT_182671654,DAT_182671654);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715ac ^ 0x356d3404)) =
       (uVar42 | uVar37) ^ uVar21;
  uVar7 = DAT_18267158c;
  uVar39 = CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar37 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar48 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar5 + -0x9f8) =
       (uVar29 ^ *puVar4) - (uVar39 ^ *(ulonglong *)(lVar5 + -0x638)) ^ uVar37;
  *(ulonglong *)(lVar5 + -0x240) =
       (*(ulonglong *)(lVar5 - (uVar32 ^ 0xfdfff7f1)) ^ uVar37) -
       (uVar21 ^ *(ulonglong *)(lVar5 + -0x400)) ^ uVar48;
  uVar29 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar5 + -0x898) =
       (CONCAT44(uVar9,uVar7) ^ 0x4e333b3b2ce98e85) << (((byte)uVar10 ^ 0xfd) & 0x3f);
  uVar22 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar5 + -0x1d8) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0xfffffbff)) ^ uVar21) -
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671568 ^ 0x300435cd)) ^
       CONCAT44(DAT_1826718bc,DAT_1826718bc)) ^ uVar29;
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x860d3e68)) =
       uVar36 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0xa88) ^ *(ulonglong *)(lVar5 + -0x748) ^ uVar22;
  uVar37 = (ulonglong)DAT_182671570;
  *puVar3 = (CONCAT44(uVar11,DAT_182671570) ^ 0xf80d3049bd55a380) -
            (CONCAT44(uVar27,uVar12) ^ 0x54669a5c01981430);
  puVar23 = (ulonglong *)(lVar5 - (uVar37 ^ 0xf8d1e95c));
  local_f8 = (byte)uVar15;
  *puVar23 = (*(ulonglong *)(lVar5 + -0x2a0) ^ uVar22) >> ((local_f8 ^ 0xd9) & 0x3f) ^ uVar34;
  uVar42 = CONCAT44(DAT_182671758,DAT_182671758);
  uVar37 = (*(ulonglong *)(lVar5 + -0x2a0) ^ uVar22) << ((bVar18 ^ 0x16) & 0x3f);
  uVar38 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(lVar5 + -0x6d0) = uVar37 ^ uVar42;
  *(ulonglong *)(lVar5 + -0x600) = (uVar34 ^ *(ulonglong *)(lVar5 + -0x610) | uVar37) ^ uVar38;
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x860d3a70)) =
       -0x313ef25ce572f8e1 - (CONCAT44(uVar15,uVar25) ^ 0x311ae210b5ef678e);
  uVar13 = DAT_1826716c4;
  uVar37 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar5 + -0x800) =
       (uVar36 ^ *(ulonglong *)(lVar5 + -0xa88)) -
       (*(ulonglong *)(lVar5 - (uVar24 ^ 0xedeef801)) ^ uVar40) ^ uVar37;
  uVar14 = DAT_182671794;
  lVar6 = DAT_182671560;
  uVar22 = *(ulonglong *)(lVar5 + -0x600) ^ uVar38;
  uVar21 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (*(ulonglong *)(DAT_182671560 - (uVar41 ^ 0x3cc88e0d)) ^ uVar37) - uVar22 ^ uVar21;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x628) =
       CONCAT44(DAT_182671644,DAT_182671644) ^ CONCAT44(DAT_182671568,uVar15) ^ uVar37 ^
       *(ulonglong *)(lVar6 + -0x688) ^ 0xcffbca9222020007;
  lVar5 = DAT_182671560;
  uVar37 = (*(ulonglong *)(lVar6 - (uVar35 ^ 0xfffff9d7)) ^ uVar37) + uVar22 ^ uVar39;
  *puVar1 = uVar37;
  uVar22 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar6 + -0x548) =
       uVar48 ^ uVar39 ^ *(ulonglong *)(lVar6 + -0x240) ^ uVar22 ^ uVar37;
  *puVar2 = CONCAT44(uVar27,uVar8) ^ 0x211f560978bd4f65 |
            CONCAT44(uVar11,uVar25) ^ 0xf3d5d45a0c470833;
  uVar36 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar5 + -0x670) =
       (*(ulonglong *)(lVar5 + -0x548) ^ uVar22) >> ((local_f8 ^ 0xfd) & 0x3f) ^ uVar36;
  lVar6 = DAT_182671560;
  puVar45 = (ulonglong *)(lVar5 - (uVar35 ^ 0xfffffab7));
  uVar37 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(DAT_182671560 - (uVar44 ^ 0xd9892270)) =
       (uVar22 ^ *puVar45) << ((bVar20 ^ 0x32) & 0x3f) ^ uVar37;
  uVar34 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar37 = *(ulonglong *)(lVar6 + -0x8a8) ^ uVar37 | *(ulonglong *)(lVar6 + -0x670) ^ uVar36;
  *(ulonglong *)(lVar6 + -0x5c8) = uVar37 ^ uVar34;
  bVar20 = (byte)DAT_182671568;
  *(ulonglong *)(lVar6 + -0x1f0) =
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0x3cc8844d)) ^ uVar48) - uVar37 ^ uVar31;
  *puVar4 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0xfdfff8d9)) ^ uVar42) >> ((bVar20 ^ 0x4b) & 0x3f);
  uVar22 = CONCAT44(DAT_182671834,DAT_182671834);
  uVar37 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  uVar29 = *(ulonglong *)(lVar6 - (uVar41 ^ 0x3cc8847d)) ^ *(ulonglong *)(lVar6 + -0x1d8) ^ uVar21 ^
           uVar38 ^ uVar29;
  *(ulonglong *)(lVar6 + -0x638) = uVar29;
  uVar41 = (uVar29 ^ uVar38) >> ((bVar18 ^ 0x2c) & 0x3f);
  *(ulonglong *)(lVar6 + -0x9f8) = uVar41 ^ uVar22;
  uVar22 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar6 + -0x898) =
       (*(ulonglong *)(lVar6 - (uVar44 ^ 0xd9892ce0)) ^ uVar38) << 0x1b ^ uVar37;
  uVar7 = DAT_182671570;
  *(ulonglong *)(lVar6 - (uVar44 ^ 0xd9892ed8)) =
       (*(ulonglong *)(lVar6 - (uVar47 ^ 0x860d3450)) ^ uVar37 | uVar41) ^ uVar22;
  uVar13 = DAT_18267186c;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x748) =
       (CONCAT44(uVar7,DAT_182671568) ^ 0x8a742d6c32f3e3c0) >> (((byte)uVar11 ^ 0xd9) & 0x3f);
  uVar8 = DAT_182671570;
  uVar29 = CONCAT44(uVar13,uVar13);
  *puVar3 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0xedeef679)) ^ uVar21) -
            (uVar22 ^ *(ulonglong *)(lVar5 + -0x400)) ^ uVar29;
  uVar37 = (ulonglong)DAT_18267158c;
  *(uint *)(lVar5 - (uVar47 ^ 0x860d3ebc)) = *(uint *)(lVar5 - (uVar28 ^ 0x72e17e7)) | 0xeb8b81c5;
  uVar41 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0xc4fcfd58)) =
       uVar31 ^ *(ulonglong *)(lVar5 + -0x1f0) ^ uVar41 ^ uVar22 ^ *(ulonglong *)(lVar5 + -0x400);
  uVar22 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xfffff9ef)) =
       (*(ulonglong *)(lVar5 + -0x2a0) ^ uVar41) >> ((bVar18 ^ 0x1e) & 0x3f) ^ uVar22;
  uVar37 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0xf8d1e9f4)) =
       (*(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar41) << (((byte)uVar8 ^ 0x65) & 0x3f) ^ uVar37;
  uVar9 = DAT_18267158c;
  lVar5 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar39 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0xfffff3f7)) =
       (uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x6b8) |
       uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x610)) ^ uVar21;
  uVar13 = DAT_18267171c;
  lVar6 = DAT_182671560;
  *(ulonglong *)(lVar5 + -0xa88) =
       (CONCAT44(uVar12,uVar8) ^ 0x832220486affbc51) - (CONCAT44(uVar46,uVar9) ^ 0xff47f59b11cabc7b)
  ;
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671570 ^ 0xf8d1e74c)) =
       (uVar31 ^ *(ulonglong *)(lVar6 + -0x1f0)) - (*(ulonglong *)(lVar5 + -0xc08) ^ uVar21) ^
       uVar41;
  uVar22 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(DAT_182671560 + -0x688) =
       *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xedeef119)) ^
       *(ulonglong *)(DAT_182671560 + -0x5c8) ^ uVar22 ^ uVar29 ^ uVar34;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671568 ^ 0x3004336d)) =
       CONCAT44(uVar26,uVar15) ^ CONCAT44(uVar15,uVar25) ^ 0xef95761e3363fc74;
  uVar31 = CONCAT44(DAT_18267181c,DAT_18267181c);
  bVar19 = (byte)DAT_182671588;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0xfdfff821)) =
       (uVar22 ^ *(ulonglong *)(lVar5 + -0x688)) >> ((bVar18 ^ 0x21) & 0x3f) ^ uVar31;
  uVar37 = CONCAT44(DAT_182671840,DAT_182671840);
  *puVar1 = (uVar22 ^ *(ulonglong *)(lVar5 + -0x688)) << ((bVar19 ^ 0xd) & 0x3f) ^ uVar37;
  uVar36 = CONCAT44(DAT_182671858,DAT_182671858);
  uVar22 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *puVar2 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0xedeef489)) ^ uVar37 |
            *(ulonglong *)(lVar5 + -0x628) ^ uVar31) ^ uVar36;
  *puVar45 = (*puVar3 ^ uVar29) - (*(ulonglong *)(lVar5 - (uVar39 ^ 0xc4fcfce0)) ^ uVar36) ^ uVar22;
  uVar32 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar37 = *(ulonglong *)(lVar5 + -0x800) ^ uVar32 ^ uVar36 ^ uVar41 ^ *puVar2;
  uVar29 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar5 + -0x670) = uVar37;
  uVar13 = DAT_1826716e4;
  uVar36 = (uVar37 ^ uVar32) << ((bVar20 ^ 0x61) & 0x3f);
  uVar37 = CONCAT44(uVar26,DAT_182671570);
  *(ulonglong *)(lVar5 + -0x8a8) =
       (*(ulonglong *)(lVar5 - (uVar47 ^ 0x860d3ab8)) ^ uVar32) >> ((bVar20 ^ 0x59) & 0x3f) ^ uVar29
  ;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x240) = uVar36 ^ uVar32;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x72e1663)) = (uVar37 ^ 0xd72d2486ca4f3aa4) + uVar36;
  uVar36 = CONCAT44(DAT_182671800,DAT_182671800);
  *puVar4 = (*(ulonglong *)(lVar5 - (uVar33 ^ 0xddfdfdb8)) ^ uVar32 |
            *(ulonglong *)(lVar5 + -0x8a8) ^ uVar29) ^ uVar36;
  *(ulonglong *)(lVar5 + -0x1d8) =
       (*(ulonglong *)(lVar5 + -0x800) ^ uVar41) -
       (*(ulonglong *)(lVar5 - (uVar24 ^ 0xedeefff9)) ^ uVar36) ^ uVar31;
  uVar37 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x860d3af0)) =
       *(ulonglong *)(lVar5 + -0xc08) ^ *(ulonglong *)(lVar5 + -0x548) ^ uVar37 ^ uVar22 ^ uVar21;
  uVar32 = (*(ulonglong *)(lVar5 + -0x638) ^ uVar37) >> ((bVar43 ^ 0x34) & 0x3f);
  uVar41 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(lVar5 + -0x9f8) = uVar32 ^ CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar9 = DAT_1826715ac;
  uVar24 = (ulonglong)DAT_1826715ac;
  bVar20 = (byte)DAT_1826715ac;
  uVar33 = (*(ulonglong *)(lVar5 - (uVar33 ^ 0xddfdf9c0)) ^ uVar37) << ((bVar20 ^ 3) & 0x3f);
  uVar37 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar5 + -0x898) = uVar33 ^ uVar41;
  uVar13 = DAT_1826717c0;
  *(ulonglong *)(lVar5 + -0x748) = uVar37 ^ *(ulonglong *)(*(ulonglong *)(lVar5 + -0x178) ^ uVar36);
  lVar5 = DAT_182671560;
  uVar27 = DAT_182671570 + uVar9;
  uVar37 = CONCAT44(uVar13,uVar13);
  DAT_182671568 = uVar27;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671570 ^ 0xf8d1ed3c)) =
       (uVar33 | uVar32) ^ uVar37;
  uVar13 = DAT_1826717dc;
  *(ulonglong *)(lVar5 + -0x400) =
       *(ulonglong *)(lVar5 - (uVar24 ^ 0x356d3274)) ^ uVar37 ^ uVar41 ^
       *(ulonglong *)(lVar5 + -0x898);
  uVar33 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0x2e3f1df0)) =
       (*(ulonglong *)(lVar5 + -0x548) ^ uVar22) - (*(ulonglong *)(lVar5 + -0x270) ^ uVar37) ^
       uVar33;
  uVar8 = DAT_182671570;
  lVar6 = DAT_182671560;
  uVar22 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar32 = (ulonglong)DAT_182671570;
  uVar21 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar41 = *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0x2e3f1d20)) ^ uVar22 ^ uVar37 ^ uVar31 ^
           *(ulonglong *)(DAT_182671560 + -0x1d8);
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar41;
  uVar13 = DAT_182671630;
  *(ulonglong *)(lVar6 + -0x6b8) = (uVar22 ^ *puVar23) >> ((bVar20 ^ 10) & 0x3f) ^ uVar21;
  uVar14 = DAT_182671824;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x356d3a8c)) =
       (uVar22 ^ uVar41) << (((byte)uVar8 ^ 0x7e) & 0x3f) ^ uVar37;
  uVar13 = DAT_182671884;
  uVar22 = uVar21 ^ *(ulonglong *)(lVar6 + -0x6b8) | *(ulonglong *)(lVar6 + -0xa88) ^ uVar37;
  uVar41 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(lVar6 + -0x1f0) = uVar22 ^ uVar30;
  lVar5 = DAT_182671560;
  *(uint *)(lVar6 + -0x874) = (uVar27 ^ 0x502504f5) * *(int *)(lVar6 + -0x8c);
  uVar21 = (uVar31 ^ *(ulonglong *)(lVar6 + -0x1d8)) -
           (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0x3b8));
  uVar37 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar6 + -0x5c8) = uVar21 ^ uVar41;
  *(ulonglong *)(lVar6 + -0x600) = uVar37 ^ uVar21 - uVar22;
  *(ulonglong *)(lVar5 + -0x688) =
       uVar22 - (*(ulonglong *)(lVar5 - (uVar32 ^ 0xf8d1e6a4)) ^ CONCAT44(uVar13,uVar13)) ^
       CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar5 + -0x628) = CONCAT44(uVar7,uVar9) ^ 0xf262dbaf64873867 | uVar21;
  uVar13 = DAT_182671700;
  uVar32 = CONCAT44(DAT_18267163c,DAT_18267163c);
  uVar33 = *(ulonglong *)(lVar5 - (uVar24 ^ 0x356d32a4)) ^ uVar32 ^ uVar33 ^ uVar36 ^ *puVar4;
  *puVar1 = uVar33;
  uVar37 = *puVar1;
  *puVar3 = (uVar33 ^ uVar32) - (CONCAT44(uVar7,uVar27) ^ 0xe186a336d8348ffb);
  *puVar2 = (uVar37 ^ uVar32) >> ((byte)uVar27 & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar16;
  return;
}



############ FUN_ 180f33230 size=5409 ############

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

void FUN_180f33230(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  byte bVar36;
  uint uVar37;
  ulonglong uVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong *puVar43;
  byte local_res18;
  
  uVar10 = DAT_182671658;
  uVar7 = DAT_182671598;
  uVar5 = DAT_182671584;
  uVar3 = DAT_18267157c;
  uVar17 = DAT_182671574;
  uVar37 = DAT_18267156c;
  lVar1 = DAT_182671560;
  DAT_182671578 = DAT_1826715a0 ^ DAT_182671580;
  DAT_1826715b4 =
       (DAT_1826715b0 << 0x10 | DAT_1826715b0 & 0xff00) << 8 | DAT_1826715b0 >> 8 & 0xff00 |
       DAT_1826715b0 >> 0x18;
  uVar12 = DAT_182671574 & 3;
  if (uVar12 < 2) {
    uVar42 = DAT_182671588;
    if (uVar12 == 0) {
      uVar42 = DAT_182671574;
    }
  }
  else {
    uVar42 = DAT_182671590;
    if (uVar12 < 3) {
      uVar42 = DAT_1826715ac;
    }
  }
  uVar32 = (ulonglong)DAT_18267156c;
  uVar38 = (ulonglong)DAT_182671598;
  uVar14 = DAT_18267156c * DAT_182671584;
  uVar16 = DAT_182671598 - DAT_18267157c;
  uVar22 = *(uint *)(&DAT_182611e78 + DAT_182671a58) ^ DAT_182671584;
  uVar13 = *(uint *)(&DAT_182611e80 + DAT_182671a58) ^ DAT_18267156c;
  uVar19 = (ulonglong)uVar16;
  DAT_182671570 = uVar42;
  DAT_18267158c = uVar14;
  DAT_18267159c = uVar16;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (CONCAT44(uVar14,uVar16) ^ 0x878d1726dd1e8c0c) + 0x329905cca1ebb39d;
  uVar23 = CONCAT44(DAT_182671844,DAT_182671844);
  bVar35 = (byte)uVar7;
  uVar15 = (ulonglong)uVar5;
  uVar27 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *(ulonglong *)(lVar1 + -0x748) =
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar1 + -0x670)) >> ((bVar35 ^ 0xf9) & 0x3f) ^
       uVar23;
  uVar11 = DAT_182671888;
  uVar10 = DAT_182671828;
  uVar23 = (*(ulonglong *)(lVar1 - (uVar15 ^ 0xcf3bc873)) ^ uVar23 |
           CONCAT44(DAT_182671624,DAT_182671624) ^ *(ulonglong *)(lVar1 + -0x638)) ^ uVar27;
  *(ulonglong *)(lVar1 + -0x610) = uVar23;
  uVar12 = DAT_182671594;
  uVar21 = CONCAT44(uVar10,uVar10);
  uVar40 = CONCAT44(DAT_182671878,DAT_182671878);
  *(ulonglong *)(lVar1 + -0x5c8) =
       *(ulonglong *)(lVar1 + -0x9f8) ^ uVar40 ^ uVar21 ^ uVar23 ^ uVar27;
  uVar9 = DAT_1826715ac;
  uVar6 = DAT_182671590;
  uVar23 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar1 + -0x3f0) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x3bcf3adf)) ^ CONCAT44(uVar11,uVar11)) <<
       (((byte)uVar12 ^ 0xc3) & 0x3f);
  puVar24 = (ulonglong *)(lVar1 - (uVar23 ^ 0xf351d16f));
  uVar23 = CONCAT44(DAT_182671754,DAT_182671754);
  uVar20 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar1 + -0x270) =
       (CONCAT44(DAT_18267160c,DAT_18267160c) ^ *puVar24) +
       (*(ulonglong *)(lVar1 + -0x6b8) ^ uVar23) ^ uVar20;
  *(longlong *)(lVar1 + -0x318) = -0x4736863a757dd234 << (((byte)uVar3 ^ 0xd9) & 0x3f);
  uVar10 = DAT_182671728;
  uVar12 = DAT_182671578;
  uVar27 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  puVar25 = (ulonglong *)(lVar1 - ((ulonglong)DAT_1826715b0 ^ 0xeff8f6ed));
  *puVar25 = (*(ulonglong *)(lVar1 + -0x6b8) ^ uVar23) << (((byte)uVar42 ^ 0xee) & 0x3f) ^ uVar27;
  uVar23 = (*(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar23) >> (((byte)uVar12 ^ 0x59) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar23 ^ CONCAT44(uVar10,uVar10);
  lVar1 = DAT_182671560;
  uVar28 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(DAT_182671560 - (uVar19 ^ 0xc430c208)) =
       (uVar23 | uVar27 ^ *(ulonglong *)(DAT_182671560 + -0x898)) ^ uVar28;
  uVar8 = DAT_1826715a0;
  uVar4 = DAT_182671580;
  lVar2 = DAT_182671560;
  uVar26 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar27 = (ulonglong)DAT_182671580;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0xf010c225)) =
       *(ulonglong *)(lVar1 + -0x270) ^ *(ulonglong *)(lVar1 + -0x638) ^ uVar26 ^ uVar28 ^ uVar20;
  local_res18 = (byte)uVar14;
  uVar28 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(lVar2 + -0x610) =
       (CONCAT44(uVar8,uVar5) ^ 0x3cba7142ea881184) << ((local_res18 ^ 0xa6) & 0x3f);
  uVar23 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xfffffeef)) =
       (*(ulonglong *)(lVar2 + -0x9f8) ^ uVar40) + (*(ulonglong *)(lVar2 + -0x748) ^ uVar26) ^
       uVar28;
  *(uint *)(lVar2 - (uVar23 ^ 0x6dc519e0)) = (uVar3 ^ 0x803a592d) * 0x2e38f47f;
  uVar33 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x281db43b)) ^ uVar26) << 0x20;
  uVar23 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar33 ^ CONCAT44(DAT_182671688,DAT_182671688);
  uVar10 = DAT_1826715e4;
  uVar12 = DAT_1826715b0;
  *(ulonglong *)(lVar2 + -0x400) =
       uVar23 ^ CONCAT44(uVar6,uVar37) ^ *(ulonglong *)(lVar2 + -0x548) ^ 0xc07086fab37e5f9;
  uVar11 = DAT_18267182c;
  uVar18 = (*(ulonglong *)(lVar2 + -0x748) ^ uVar26) >> ((byte)DAT_1826715ac & 0x3f);
  uVar23 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar2 + -0x318) = uVar18 ^ CONCAT44(uVar10,uVar10);
  lVar1 = DAT_182671560;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar18 = (uVar33 | uVar18) ^ uVar29;
  uVar41 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar18;
  *(ulonglong *)(lVar1 + -0x898) =
       *(ulonglong *)(lVar1 - (uVar23 ^ 0x281db263)) ^ uVar41 ^ uVar29 ^ uVar28 ^ uVar18;
  *(ulonglong *)(lVar1 + -0x670) =
       *(ulonglong *)(lVar1 + -0x5c8) ^ *(ulonglong *)(lVar1 + -0x270) ^ uVar20 ^ uVar21;
  uVar29 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar1 + -0x638) =
       (*(ulonglong *)(lVar1 - (uVar27 ^ 0xf010c71d)) ^ uVar20) +
       (*(ulonglong *)(lVar1 + -0x5c8) ^ uVar21) ^ uVar29;
  uVar37 = uVar7 ^ DAT_182671574;
  uVar33 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar23 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar1 + -0x610) =
       (*(ulonglong *)(lVar1 + -0x5c8) ^ uVar21) << ((local_res18 ^ 0x94) & 0x3f) ^ uVar33;
  *(uint *)(lVar1 - (uVar23 ^ 0x75fefbc7)) = uVar37 ^ 0xcbacda75;
  uVar18 = CONCAT44(DAT_182671638,DAT_182671638);
  puVar30 = (ulonglong *)(lVar1 - ((ulonglong)DAT_182671588 ^ 0xf351d027));
  uVar23 = (ulonglong)DAT_1826715a0;
  *puVar30 = (*(ulonglong *)(lVar1 + -0x5c8) ^ uVar21) >> (((byte)DAT_182671570 ^ 0xd8) & 0x3f) ^
             uVar18;
  uVar21 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  uVar20 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar1 + -0x400) =
       (*(ulonglong *)(lVar1 + -0x610) ^ uVar33 | uVar18 ^ *(ulonglong *)(lVar1 + -0x548)) ^ uVar21;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0xd80d7156)) = (uVar20 ^ 0x274dd800) >> 9;
  uVar37 = DAT_18267173c;
  uVar20 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  uVar33 = (ulonglong)DAT_18267173c;
  uVar23 = *(ulonglong *)(lVar1 - ((ulonglong)uVar12 ^ 0xeff8fa75)) ^ *(ulonglong *)(lVar1 + -0x638)
           ^ uVar20 ^ uVar21 ^ uVar29;
  *(ulonglong *)(lVar1 + -0x3f0) = uVar23;
  uVar34 = CONCAT44(uVar37,uVar37);
  uVar18 = (ulonglong)DAT_182671590;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0x6dc513e8)) =
       (CONCAT44(uVar16,uVar5) ^ 0x79730e50f9f0d09a) + (uVar23 ^ uVar20) ^ uVar34;
  lVar1 = DAT_182671560;
  uVar20 = (CONCAT44(uVar9,uVar4) ^ 0x23213ac9f78f7349) +
           (*(ulonglong *)(DAT_182671560 + -0x110) ^ uVar28);
  uVar31 = (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar34) << 0xe;
  uVar21 = CONCAT44(DAT_182671654,DAT_182671654);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar20 ^ CONCAT44(DAT_1826717b0,DAT_1826717b0);
  uVar10 = DAT_1826715b8;
  uVar23 = *(ulonglong *)(lVar1 - (uVar18 ^ 0xfe75ece0));
  uVar33 = (*(ulonglong *)(lVar1 + -0x318) >> 0x20 ^ uVar33) >> 0x12;
  *(ulonglong *)(lVar1 + -0x270) = uVar31 ^ CONCAT44(DAT_182671724,DAT_182671724);
  uVar20 = (uVar23 ^ uVar34) + uVar20 ^ uVar21;
  bVar36 = (byte)uVar16;
  *(ulonglong *)(lVar1 + -0x5c8) = uVar33 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x670) = uVar20;
  *(ulonglong *)(lVar1 + -0x610) =
       (*(ulonglong *)(lVar1 + -0x9f8) ^ uVar40) >> ((bVar36 ^ 0x28) & 0x3f);
  uVar10 = DAT_1826717ec;
  uVar18 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar31 = (uVar33 | uVar31) ^ uVar18;
  *(ulonglong *)(lVar1 + -0x548) = uVar31;
  uVar5 = DAT_18267159c;
  uVar37 = DAT_182671574;
  lVar1 = DAT_182671560;
  uVar12 = DAT_18267159c | DAT_182671574;
  uVar34 = (ulonglong)DAT_182671574;
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar23 = *(ulonglong *)(DAT_182671560 + -0x898);
  DAT_1826715a8 = uVar12;
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar33 ^ uVar18 ^ uVar21 ^ uVar20 ^ uVar31;
  uVar10 = DAT_18267178c;
  *(ulonglong *)(lVar1 + -0x400) =
       (*(ulonglong *)(lVar1 - (uVar34 ^ 0xfe75e988)) ^ uVar21) -
       (CONCAT44(uVar12,uVar16) ^ 0x2272fd440ba8652d);
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - (uVar19 ^ 0xc430c7c0)) =
       (CONCAT44(uVar17,uVar12) ^ 0xd7e6ba5039b699d3) + (uVar41 ^ uVar23) ^ uVar20;
  uVar10 = DAT_182671644;
  uVar23 = (CONCAT44(uVar12,uVar37) ^ 0x94a4cd2375cb5717) +
           (*(ulonglong *)(lVar1 + -0x638) ^ uVar29);
  *(ulonglong *)(lVar1 + -0x110) = uVar23 ^ CONCAT44(DAT_182671870,DAT_182671870);
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar23 + (uVar20 ^ *(ulonglong *)(lVar1 + -0x3f0)) ^ uVar18;
  bVar39 = (byte)uVar37;
  *(ulonglong *)(lVar1 + -0x318) =
       (uVar20 ^ *(ulonglong *)(lVar1 + -0x3f0)) << ((bVar39 ^ 0xe8) & 0x3f) ^ uVar26;
  uVar37 = DAT_1826715a4;
  uVar40 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar1 + -0x9f8) =
       -0x2cf7789c4b6c71ef - (CONCAT44(uVar16,uVar12) ^ 0x8e3686d7bc21f502);
  uVar23 = (*(ulonglong *)(lVar1 - (uVar32 ^ 0xe362992c)) ^ uVar20) >> ((bVar39 ^ 200) & 0x3f);
  *(ulonglong *)(lVar1 + -0x610) = uVar23 ^ CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar1 + -0x270) = CONCAT44(uVar42,uVar4) ^ 0xc16044520950098 | 0x61693bb0d56afa25;
  uVar11 = DAT_182671710;
  uVar20 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar1 + -0x5c8) =
       (*(ulonglong *)(lVar1 - (uVar15 ^ 0xcf3bcc23)) ^ uVar26 | uVar23) ^ uVar20;
  uVar10 = DAT_1826716d8;
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar23 = *(ulonglong *)(DAT_182671560 + -0x670);
  *(ulonglong *)(lVar1 + -0x548) =
       *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826715b0 ^ 0xeff8f8cd)) ^
       *(ulonglong *)(lVar1 - (uVar40 ^ 0xa11fea33)) ^ uVar29 ^ uVar20 ^ uVar18;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x400) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0x6dc515b8)) ^ uVar29) +
       (uVar21 ^ uVar23) ^ uVar20;
  uVar10 = DAT_18267163c;
  uVar23 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x281db63b)) ^ uVar29) <<
       (((byte)uVar4 ^ 0x59) & 0x3f) ^ uVar23;
  *(uint *)(lVar2 + -0x754) = uVar5 ^ 0x4c01098 | 0x521e4f24;
  uVar11 = DAT_18267177c;
  uVar29 = (uVar29 ^ *(ulonglong *)(lVar2 + -0x548)) >> ((bVar35 ^ 0xf3) & 0x3f);
  *(ulonglong *)(lVar2 + -0x638) = uVar29 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xc430c520)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0xfe75e760)) ^ uVar23 | uVar29) ^
       CONCAT44(uVar11,uVar11);
  uVar34 = CONCAT44(DAT_182671650,DAT_182671650);
  puVar43 = (ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0xd80d721e));
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b0 ^ 0xeff8f78d)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671574 ^ 0xfe75eee8)) ^ uVar34 ^
       CONCAT44(uVar11,uVar11) ^ uVar20 ^ *puVar43;
  lVar1 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar2 + -0x3f0) =
       (*(ulonglong *)(lVar2 + -0x748) ^ uVar33) + (uVar18 ^ *(ulonglong *)(lVar2 + -0x6b8)) ^
       uVar29;
  uVar10 = DAT_182671678;
  uVar23 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 + -0x270) =
       (CONCAT44(uVar8,DAT_1826715ac) ^ 0x37a35ff959ef1c1b) <<
       ((*(byte *)(lVar2 + -0x110) ^ (byte)uVar11) & 0x3f);
  uVar11 = DAT_182671768;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0xfe75e8b0)) ^ uVar33) << ((bVar36 ^ 9) & 0x3f) ^ uVar18;
  uVar17 = DAT_182671580 ^ 0xd78923a9;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar23 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 + -0x748) ^ uVar33) >> (((byte)uVar37 ^ 0xfc) & 0x3f) ^ uVar31;
  *(uint *)(lVar2 - (uVar23 ^ 0x75fef09b)) = uVar17 & *(uint *)(lVar2 + -0x344);
  uVar10 = DAT_1826717a8;
  uVar19 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar23 = (uVar18 ^ *(ulonglong *)(lVar2 + -0x318) | *(ulonglong *)(lVar2 + -0x610) ^ uVar31) ^
           uVar19;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar23;
  uVar32 = CONCAT44(uVar10,uVar10);
  uVar21 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar19 = uVar32 ^ uVar23 ^ uVar19 ^ uVar29 ^ *(ulonglong *)(lVar1 + -0x3f0);
  *(ulonglong *)(lVar1 + -0x670) = uVar19;
  uVar37 = DAT_182671594;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0x548) =
       (uVar20 ^ *(ulonglong *)(lVar1 + -0x400)) + (uVar32 ^ uVar19) ^ uVar21;
  uVar10 = DAT_182671660;
  *(ulonglong *)(lVar1 + -0x898) =
       CONCAT44(uVar16,uVar14) ^ CONCAT44(uVar37,DAT_182671570) ^ 0x651382a7e032a27;
  uVar20 = CONCAT44(uVar10,uVar10);
  uVar23 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0x2116e8c3)) =
       (uVar32 ^ uVar19) << 0x17 ^ uVar20;
  uVar23 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0x8504e90)) ^ uVar32) >>
           (((byte)DAT_1826715b0 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar23 ^ uVar31;
  uVar19 = uVar34 ^ *(ulonglong *)(lVar2 + -0x9f8);
  uVar23 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x638) | uVar23) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x110) = uVar23;
  *(ulonglong *)(lVar2 + -0x270) =
       *(ulonglong *)(lVar2 - (uVar40 ^ 0xa11fe763)) | 0xc842140b57791891;
  uVar10 = DAT_1826717e0;
  uVar41 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar31 = CONCAT44(DAT_182671800,DAT_182671800);
  *(ulonglong *)(lVar2 + -0x318) = (uVar29 ^ *(ulonglong *)(lVar2 + -0x3f0)) + uVar19 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x748) =
       uVar23 ^ uVar41 ^ uVar21 ^ uVar18 ^ *(ulonglong *)(lVar2 + -0x548);
  uVar17 = DAT_1826715c0;
  lVar1 = DAT_182671560;
  uVar18 = CONCAT44(uVar10,uVar10);
  uVar32 = (ulonglong)DAT_1826715c0;
  uVar40 = (ulonglong)DAT_182671590;
  bVar39 = (byte)DAT_182671590;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0xb7a592a4)) =
       uVar19 << ((bVar35 ^ 0xd7) & 0x3f) ^ uVar18;
  uVar10 = DAT_1826717f8;
  uVar19 = (uVar34 ^ *(ulonglong *)(lVar1 + -0x9f8)) >> (((byte)uVar4 ^ 0x75) & 0x3f);
  *(ulonglong *)(lVar1 + -0x5c8) = uVar19 ^ CONCAT44(DAT_182671718,DAT_182671718);
  uVar23 = CONCAT44(uVar10,uVar10);
  *puVar43 = (uVar19 | uVar18 ^ *(ulonglong *)(lVar1 + -0x610)) ^ uVar23;
  uVar10 = _DAT_1826715e0;
  uVar29 = CONCAT44(uVar17,uVar17);
  uVar19 = uVar29 ^ uVar23 ^ uVar31 ^ *(ulonglong *)(lVar1 + -0x318) ^ *puVar24;
  *(ulonglong *)(lVar1 + -0x670) = uVar19;
  uVar20 = CONCAT44(uVar10,uVar10);
  uVar23 = *puVar30;
  uVar33 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar18 = (uVar19 >> 0x20 ^ uVar32) >> 0x1b;
  *(ulonglong *)(lVar1 + -0x638) = (uVar29 ^ uVar19) << ((bVar39 ^ 0xfd) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar1 + -0x6b8) = (uVar21 ^ uVar23) + (uVar19 ^ uVar29) ^ uVar20;
  *(ulonglong *)(lVar1 + -0x898) = uVar18 ^ uVar28;
  uVar17 = DAT_1826715b4;
  uVar19 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826715b4 ^ 0x75fefa9f)) =
       uVar18 + (CONCAT44(uVar6,uVar42) ^ 0x9aa4733583db472b);
  uVar10 = DAT_182671730;
  uVar23 = (uVar33 ^ *(ulonglong *)(lVar1 + -0x638) | uVar28 ^ *(ulonglong *)(lVar1 + -0x898)) ^
           uVar26;
  *(ulonglong *)(lVar1 + -0x110) = uVar23;
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - (uVar19 ^ 0x75fefb1f)) =
       uVar32 ^ uVar23 ^ uVar20 ^ *(ulonglong *)(lVar1 + -0x6b8) ^ uVar26;
  uVar11 = DAT_18267187c;
  lVar1 = DAT_182671560;
  uVar28 = CONCAT44(DAT_182671744,DAT_182671744);
  uVar29 = (*(ulonglong *)(DAT_182671560 + -0x748) ^ uVar41) <<
           (((byte)DAT_182671574 ^ 0xdd) & 0x3f);
  uVar23 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar18 = (*(ulonglong *)(DAT_182671560 - (uVar38 ^ 0xfffff8b7)) ^ uVar41) +
           (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x318)) ^ uVar28;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar18;
  *(ulonglong *)(lVar1 + -0x610) = uVar29 ^ uVar23;
  uVar10 = DAT_182671698;
  lVar2 = DAT_182671560;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (*(ulonglong *)(lVar1 + -0x748) ^ uVar41) >> (((byte)uVar3 ^ 0xd4) & 0x3f) ^ uVar19;
  uVar21 = CONCAT44(uVar10,uVar10);
  uVar23 = (ulonglong)DAT_1826715ac;
  uVar19 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xb7a5917c)) ^ uVar19 | uVar29) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x400) = uVar19;
  uVar10 = _DAT_1826716c0;
  *(ulonglong *)(lVar2 + -0x548) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0x8504ce0)) ^ uVar21) << ((bVar36 ^ 2) & 0x3f);
  uVar11 = DAT_1826718ac;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar29 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar19 = uVar23 ^ uVar21 ^ uVar28 ^ uVar18 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x670) = uVar19;
  uVar28 = (CONCAT44(uVar37,uVar12) ^ 0x714322b75cb5717) + (uVar19 ^ uVar23);
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x270) = uVar28 ^ uVar29;
  uVar23 = (ulonglong)DAT_1826715b0;
  uVar21 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar2 + -0x638) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x6b8)) + (CONCAT44(uVar8,uVar17) ^ 0xf8f0ffd3f13588dd) ^
       uVar19;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xfe75e760)) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0xeff8f84d)) ^ uVar19) + uVar28 ^ uVar21;
  uVar18 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar28 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x270)) << (((byte)DAT_1826715a0 ^ 7) & 0x3f) ^ uVar18;
  uVar23 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar2 + -0x318) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x270)) >> (((byte)uVar17 ^ 200) & 0x3f) ^ uVar28;
  *(byte *)(lVar2 - (uVar27 ^ 0xf010c474)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0xf351df8f)) ^ (ulonglong)DAT_1826717e4) ^
       (byte)DAT_1826717c0;
  uVar19 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar27 = (uVar28 ^ *(ulonglong *)(lVar2 + -0x318) | uVar18 ^ *(ulonglong *)(lVar2 + -0x110)) ^
           uVar19;
  uVar23 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar2 + -0x748) = uVar27;
  uVar10 = DAT_182671804;
  *(ulonglong *)(lVar2 + -0x610) = uVar23 ^ uVar27 ^ uVar19 ^ uVar21 ^ *puVar25;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0xfe75ea30)) =
       (*(ulonglong *)(lVar2 - (uVar15 ^ 0xcf3bcccb)) ^ uVar32) +
       (CONCAT44(uVar16,uVar7) ^ 0xb9b5166c4979b4f3) ^ CONCAT44(uVar10,uVar10);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar22;
  return;
}



############ FUN_ 180e5f470 size=5856 ############

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

void FUN_180e5f470(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint *puVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_res18;
  byte local_e0;
  byte local_c8;
  byte local_c0;
  byte local_98;
  
  uVar10 = DAT_1826715b0;
  uVar37 = DAT_1826715ac;
  uVar9 = DAT_1826715a4;
  uVar8 = DAT_182671588;
  uVar7 = DAT_182671584;
  uVar4 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar46 = (ulonglong)DAT_182671584;
  uVar28 = ~DAT_182671574;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671ac8);
  uVar31 = DAT_1826715a8 + DAT_182671584;
  uVar36 = (ulonglong)DAT_1826715ac;
  uVar29 = DAT_182671570 ^ DAT_1826715b0;
  uVar42 = (ulonglong)DAT_1826715a4;
  uVar21 = DAT_182671588 ^ DAT_1826715ac;
  uVar30 = (ulonglong)uVar21;
  DAT_1826715b4 = DAT_182671568 & DAT_1826715a4;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671ac8) ^ DAT_182671574;
  uVar22 = (ulonglong)DAT_182671568;
  DAT_182671578 = uVar21;
  DAT_182671580 = uVar29;
  DAT_18267159c = uVar28;
  DAT_1826715a0 = uVar31;
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xea567d6c)) =
       CONCAT44(DAT_1826717a0,DAT_1826717a0) ^ *(ulonglong *)(DAT_182671560 + -0x898) |
       CONCAT44(DAT_1826715a4,DAT_1826715b4) ^ 0x7cec90808c6420ff;
  uVar17 = DAT_1826717ac;
  uVar12 = DAT_18267167c;
  uVar27 = (ulonglong)DAT_1826717ac;
  uVar38 = CONCAT44(DAT_182671774,DAT_182671774);
  uVar23 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x6e269513)) ^ uVar38 ^ *(ulonglong *)(lVar2 + -0x670);
  *(ulonglong *)(lVar2 + -0x318) = uVar23;
  uVar13 = DAT_182671730;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x2a0) = (uVar23 >> 0x20 ^ uVar27) >> 8 ^ uVar32;
  uVar14 = DAT_1826717e8;
  uVar27 = (ulonglong)uVar8;
  uVar33 = CONCAT44(uVar13,uVar13);
  puVar43 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0x2a001d12));
  *puVar43 = (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x6a6a5bb2)) ^ CONCAT44(uVar17,uVar17)) <<
             (((byte)DAT_182671570 ^ 0x98) & 0x3f) ^ uVar33;
  uVar12 = DAT_1826716a4;
  lVar2 = DAT_182671560;
  uVar23 = CONCAT44(uVar14,uVar14);
  puVar24 = (ulonglong *)(DAT_182671560 + -0x8a8);
  uVar32 = uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x110) |
           uVar32 ^ *(ulonglong *)(DAT_182671560 + -0x2a0);
  uVar34 = uVar32 ^ uVar23;
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar34;
  uVar13 = DAT_1826716bc;
  uVar44 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x628) = (uVar38 ^ *puVar24) - uVar32 ^ uVar44;
  lVar2 = DAT_182671560;
  uVar38 = CONCAT44(uVar13,uVar13);
  uVar33 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0x6e269523)) =
       uVar33 ^ uVar38 ^ *(ulonglong *)(DAT_182671560 + -0x240) ^ uVar34 ^ uVar23;
  uVar32 = (uVar38 ^ *(ulonglong *)(lVar2 + -0x898)) >> (((byte)uVar31 ^ 0x10) & 0x3f);
  bVar20 = (byte)DAT_1826715a8;
  uVar23 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar2 + -0xa88) = uVar32 ^ CONCAT44(DAT_1826717f8,DAT_1826717f8);
  uVar12 = DAT_18267179c;
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x898)) << ((bVar20 ^ 0x8c) & 0x3f) ^ uVar23;
  uVar47 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x2a001f1a)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x6656d6d4)) ^ uVar23 | uVar32) ^ uVar47;
  lVar3 = DAT_182671560;
  uVar23 = (ulonglong)uVar28;
  puVar24 = (ulonglong *)(lVar2 - (uVar23 ^ 0x11108149));
  *(uint *)(lVar2 + -0x274) = (uVar9 ^ 0x4d5de004) + 0xada610ff;
  uVar12 = DAT_18267169c;
  uVar18 = DAT_1826715a8;
  uVar5 = DAT_182671574;
  uVar32 = (ulonglong)DAT_182671574;
  bVar20 = (byte)DAT_182671574;
  uVar34 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar3 + -0x2a0) =
       (uVar33 ^ *puVar24) - (uVar47 ^ *(ulonglong *)(lVar3 + -0x318)) ^ uVar34;
  lVar2 = DAT_182671560;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar35 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  uVar33 = CONCAT44(DAT_1826717d8,DAT_1826717d8) ^ uVar39 ^ uVar44 ^
           *(ulonglong *)(DAT_182671560 + -0xbf0) ^ *(ulonglong *)(DAT_182671560 + -0x628);
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar33;
  local_c0 = (byte)uVar9;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x6a6a5002)) =
       (uVar33 ^ uVar39) >> ((bVar20 ^ 0xcf) & 0x3f) ^ uVar35;
  uVar11 = DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x6d0) =
       (CONCAT44(uVar31,uVar7) ^ 0x8dda9336f735d733) >> ((local_c0 ^ 0x6d) & 0x3f);
  uVar17 = DAT_182671570;
  local_res18 = (byte)uVar4;
  uVar38 = CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar33 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0x642f281a)) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0x110)) << ((local_res18 ^ 0xbc) & 0x3f) ^ uVar38;
  uVar6 = DAT_182671578;
  puVar26 = (ulonglong *)(lVar2 - (uVar33 ^ 0x4e2f3428));
  uVar33 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar35 = uVar38 ^ *(ulonglong *)(lVar2 + -0x898) | uVar35 ^ *puVar26;
  uVar39 = uVar35 ^ uVar33;
  uVar16 = DAT_1826715ac ^ 0xb33ce49a;
  *(ulonglong *)(lVar2 + -0x670) = uVar39;
  uVar38 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(uint *)(lVar2 + -0x844) = (uVar6 ^ 0xfb88a1f7) * uVar16;
  uVar6 = DAT_1826717b0;
  *(ulonglong *)(lVar2 + -0xa88) = (uVar44 ^ *(ulonglong *)(lVar2 + -0x628)) - uVar35 ^ uVar38;
  uVar44 = CONCAT44(uVar6,uVar6);
  puVar25 = (ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x2c261e72));
  uVar39 = uVar44 ^ uVar33 ^ uVar34 ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar39;
  *(ulonglong *)(lVar2 + -0x240) = uVar39;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar44 ^ *puVar25 | 0x4ce052d994650415;
  uVar12 = DAT_1826717f0;
  uVar35 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(lVar2 + -0x6d0) =
       ((ulonglong)uVar6 << 0x12 | (ulonglong)(uVar6 >> 0xe)) ^ uVar39 >> 0xe ^ uVar35;
  uVar13 = DAT_182671808;
  local_c8 = (byte)uVar8;
  uVar33 = (uVar39 ^ uVar44) << ((local_c8 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = uVar33 ^ CONCAT44(uVar12,uVar12);
  uVar40 = CONCAT44(uVar13,uVar13);
  uVar33 = *(ulonglong *)(lVar2 - (uVar30 ^ 0xea567134)) ^ uVar35 | uVar33;
  *(ulonglong *)(lVar2 + -0x898) = uVar33 ^ uVar40;
  uVar12 = DAT_182671760;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar33 + (CONCAT44(uVar28,uVar9) ^ 0x34e0ef0ca0238710);
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar46 ^ 0x6656d68c)) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x2a0)) - (CONCAT44(uVar18,uVar31) ^ 0xd7efa14aa2167630) ^
       uVar33;
  uVar13 = DAT_182671844;
  *(ulonglong *)(lVar2 + -0x670) =
       CONCAT44(DAT_1826717c8,DAT_1826717c8) ^ **(ulonglong **)(lVar2 + -0x690);
  uVar12 = DAT_182671814;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x803c2966)) ^ uVar33) -
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x898)) ^ uVar34;
  lVar2 = DAT_182671560;
  uVar45 = CONCAT44(uVar12,uVar12);
  local_98 = (byte)uVar29;
  *(ulonglong *)(DAT_182671560 + -0x240) =
       (uVar40 ^ *(ulonglong *)(DAT_182671560 + -0x898)) -
       (CONCAT44(uVar11,uVar17) ^ 0xe9ff8a0937ec1916) ^ uVar45;
  *(uint *)(lVar2 + -0x754) = *(uint *)(lVar2 + -0x774) & *(uint *)(lVar2 + 0x28);
  uVar12 = DAT_1826715d4;
  uVar39 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar36 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar33 = uVar39 ^ uVar38 ^ uVar47 ^ *(ulonglong *)(lVar2 + -0xa88) ^
           *(ulonglong *)(lVar2 + -0x318);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar33;
  *(ulonglong *)(lVar2 + -0x110) = (uVar33 ^ uVar39) >> ((local_98 ^ 0x92) & 0x3f) ^ uVar36;
  uVar33 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0xeeef7a26)) ^ uVar39) <<
           (((byte)uVar28 ^ 0x39) & 0x3f);
  uVar44 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar33 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x2a0) = (uVar36 ^ *puVar43 | uVar33) ^ uVar44;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xea567194)) =
       (CONCAT44(uVar29,uVar37) ^ 0xa2ac6bab46c7bc27) - (CONCAT44(uVar8,uVar4) ^ 0x245ea081c433f7c0)
  ;
  uVar12 = DAT_182671728;
  uVar30 = (uVar38 ^ *(ulonglong *)(lVar2 + -0xa88)) - (CONCAT44(uVar10,uVar7) ^ 0x8e0b916f8001f246)
  ;
  *(ulonglong *)(lVar2 + -0x628) = uVar30 ^ CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar33 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar2 + -0x898) =
       uVar30 - (*(ulonglong *)(lVar2 - (uVar27 ^ 0x6a6a5a0a)) ^ uVar44) ^ uVar35;
  uVar12 = DAT_182671854;
  uVar30 = (*(ulonglong *)(lVar2 - (uVar42 ^ 0xacee7ed6)) ^ uVar44) +
           (CONCAT44(uVar18,uVar21) ^ 0x472a4b5612363e28) ^ uVar33;
  *(ulonglong *)(lVar2 + -0x318) = uVar30;
  uVar6 = DAT_1826715a8;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar17 = DAT_1826715b4 ^ 0x27427bdd;
  uVar33 = uVar34 ^ *(ulonglong *)(lVar2 + -0xbf0) ^ uVar38 ^ uVar30 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar33;
  *(uint *)(lVar2 + -0x3d4) = uVar17 * -0x523d83d9;
  uVar13 = DAT_18267185c;
  uVar27 = (uVar33 ^ uVar38) >> ((local_c0 ^ 0x56) & 0x3f);
  uVar36 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(lVar2 + -0x110) = uVar27 ^ uVar36;
  uVar12 = DAT_182671638;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar30 = (uVar33 ^ uVar38) << (((byte)uVar6 ^ 0xa0) & 0x3f);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar30 ^ uVar41;
  uVar17 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar48 = CONCAT44(uVar12,uVar12);
  uVar44 = (ulonglong)DAT_182671570;
  uVar27 = uVar27 | uVar30;
  puVar19 = (uint *)(DAT_182671560 - ((ulonglong)uVar31 ^ 0xf9fb9450));
  uVar30 = *(ulonglong *)(DAT_182671560 + -0xbf0);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar27 ^ uVar48;
  uVar18 = DAT_18267175c;
  uVar12 = DAT_182671704;
  uVar33 = (ulonglong)DAT_18267175c;
  *(uint *)(lVar2 + -0x910) = *puVar19 ^ DAT_182671570 ^ 0x8afaeb11;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar42 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar2 - (uVar44 ^ 0x4e2f3608)) = (uVar34 ^ uVar30) - uVar27 ^ uVar38;
  lVar3 = DAT_182671560;
  uVar34 = uVar45 ^ *(ulonglong *)(lVar2 + -0x898) ^ *puVar24 ^ uVar42 ^ uVar35;
  *(ulonglong *)(lVar2 + -0x628) = uVar34;
  uVar12 = _DAT_18267161c;
  uVar30 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (CONCAT44(uVar5,uVar17) ^ 0x3a87f5da36aae08) - (CONCAT44(uVar17,uVar5) ^ 0x140a6254870e9e2e);
  uVar17 = DAT_1826715b4;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar33 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x2c261a1a)) >> 0x20 ^ uVar27 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x318) = uVar33;
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       (CONCAT44(uVar10,uVar31) ^ 0x3988678012fa7b29) << (((byte)uVar17 ^ 0x16) & 0x3f);
  lVar2 = DAT_182671560;
  uVar30 = (uVar42 ^ uVar34) << (((byte)uVar21 ^ 0xc4) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar30 ^ CONCAT44(DAT_1826715fc,DAT_1826715fc);
  uVar27 = uVar30 | uVar33 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar30 | 0x815b4b3563b3c071;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar27 ^ uVar36;
  uVar44 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar2 + -0x240) =
       (CONCAT44(uVar4,uVar6) ^ 0x1fca968b6fc19868) << (((byte)uVar7 ^ 0x86) & 0x3f);
  uVar17 = DAT_182671720;
  lVar2 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671720;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a8 ^ 0x93a4c420)) =
       (*(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x11108b91)) ^ uVar35) - uVar27 ^ uVar44;
  uVar27 = CONCAT44(uVar17,uVar17);
  uVar36 = *(ulonglong *)(lVar2 + -0xbf0) ^ *(ulonglong *)(lVar2 + -0xa88) ^ uVar27 ^ uVar38 ^
           uVar36;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar36;
  local_e0 = (byte)uVar37;
  *(ulonglong *)(lVar2 + -0x628) = (uVar36 >> 0x20 ^ uVar30) >> 0x1a ^ uVar41;
  uVar30 = CONCAT44(DAT_182671620,DAT_182671620);
  *puVar26 = (uVar36 ^ uVar27) << ((local_e0 ^ 0x48) & 0x3f) ^ uVar30;
  puVar24 = (ulonglong *)(lVar2 - (uVar32 ^ 0xeeef7fee));
  *puVar24 = CONCAT44(uVar11,uVar29) ^ 0xbe50df80c7c8fb92 |
             CONCAT44(uVar29,uVar8) ^ 0x5e7a3cba11f480d0;
  uVar12 = DAT_182671634;
  uVar34 = CONCAT44(DAT_18267166c,DAT_18267166c);
  puVar26 = (ulonglong *)(lVar2 - (uVar22 ^ 0x6e269cab));
  *puVar26 = (*(ulonglong *)(lVar2 + -0x8a8) ^ uVar30 | uVar41 ^ *(ulonglong *)(lVar2 + -0x628)) ^
             uVar34;
  uVar30 = CONCAT44(uVar12,uVar12);
  uVar35 = (*(ulonglong *)(lVar2 + -0xa88) ^ uVar38) - (*(ulonglong *)(lVar2 + -0x110) ^ uVar34) ^
           uVar30;
  *(ulonglong *)(lVar2 + -0x240) = uVar35;
  uVar13 = DAT_1826718c0;
  *(ulonglong *)(lVar2 + -0x898) =
       *(ulonglong *)(lVar2 - (uVar46 ^ 0x6656d1b4)) ^ CONCAT44(uVar8,uVar9) ^ uVar34 ^
       0x6f888a750fc779ae;
  uVar12 = DAT_182671768;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar48 = *(ulonglong *)(lVar2 + -0x2a0) ^ *(ulonglong *)(lVar2 + -0x670) ^ uVar36 ^ uVar44 ^
           uVar48;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar48;
  uVar27 = (uVar48 ^ uVar36) >> ((local_98 ^ 0x94) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar27 ^ CONCAT44(uVar12,uVar12);
  uVar8 = DAT_182671590;
  uVar38 = (ulonglong)DAT_182671590;
  uVar33 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar42 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar2 + -0x318) = (uVar48 ^ uVar36) << ((bVar20 ^ 0xdc) & 0x3f) ^ uVar33;
  uVar27 = *puVar24 ^ uVar33 | uVar27;
  uVar36 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar33 = uVar27 ^ uVar42;
  *(ulonglong *)(lVar2 + -0x628) = uVar33;
  uVar6 = DAT_18267157c;
  uVar48 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar2 + -0x8a8) = (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar44) - uVar27 ^ uVar36;
  uVar17 = DAT_18267156c;
  uVar27 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x11108981)) = uVar35 ^ uVar48 ^ uVar42 ^ uVar30 ^ uVar33;
  uVar9 = DAT_182671598;
  uVar7 = DAT_18267157c;
  uVar18 = uVar6 & 7;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      uVar37 = DAT_182671594;
      if (uVar18 == 0) {
        uVar37 = uVar6;
      }
    }
    else {
      uVar37 = uVar17;
      if (uVar18 < 3) {
        uVar37 = DAT_182671598;
      }
    }
  }
  else if (uVar18 < 6) {
    uVar37 = DAT_182671568;
    if (uVar18 < 5) {
      uVar37 = uVar8;
    }
  }
  else {
    uVar37 = DAT_1826715a8;
    if (uVar18 < 7) {
      uVar37 = DAT_1826715b4;
    }
  }
  uVar33 = CONCAT44(DAT_182671650,DAT_182671650);
  DAT_18267158c = uVar37;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0xa1687f18)) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0xe7d6d974)) ^ uVar48) >>
       (((byte)DAT_18267157c ^ 0xf6) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar2 + -0x670) =
       (CONCAT44(uVar37,uVar8) ^ 0x314e10233cda9daf) - (uVar44 ^ *(ulonglong *)(lVar2 + -0x2a0));
  uVar23 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (*(ulonglong *)(lVar2 + -0xa88) ^ uVar48) << ((bVar20 ^ 0xe4) & 0x3f) ^ uVar23;
  uVar6 = DAT_1826715a8;
  uVar35 = CONCAT44(DAT_182671654,DAT_182671654);
  uVar23 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x6e26964b)) ^ uVar23 |
           *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a8 ^ 0x93a4ce18)) ^ uVar33;
  uVar27 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar23 ^ uVar35;
  uVar12 = _DAT_182671618;
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x93a4c4c0)) ^ uVar30) - uVar23 ^ uVar27;
  uVar30 = CONCAT44(uVar12,uVar12);
  puVar43 = (ulonglong *)(lVar2 - (uVar38 ^ 0xcf82e910));
  *(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xe3d295f0)) =
       *puVar43 ^ uVar30 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0x8a8) ^ uVar34;
  uVar18 = DAT_1826715b4;
  *(uint *)(lVar2 + -0x874) =
       (DAT_18267156c ^ 0xb99abd7a) <<
       ((byte)*(undefined4 *)(lVar2 - ((ulonglong)uVar7 ^ 0xe3d29ac8)) & 0x1f);
  uVar6 = DAT_18267157c;
  uVar23 = (uVar30 ^ *(ulonglong *)(lVar2 + -0x628)) >> (((byte)uVar18 ^ 0x3e) & 0x3f);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar23 ^ CONCAT44(DAT_1826716f0,DAT_1826716f0);
  lVar2 = DAT_182671560;
  uVar33 = (uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x628)) << (((byte)uVar6 ^ 0xec) & 0x3f);
  uVar30 = (ulonglong)DAT_182671594;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar33 ^ CONCAT44(DAT_1826716a8,DAT_1826716a8);
  *(ulonglong *)(lVar2 + -0xa88) = (uVar23 | uVar33) ^ uVar40;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xcf82e098)) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xeeef745e)) ^ uVar36) -
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0xa1687d08)) ^ uVar40) ^ uVar47;
  lVar3 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xe3d29828)) =
       CONCAT44(uVar11,DAT_1826715a8) ^ CONCAT44(uVar9,uVar4) ^ 0x9d7101a0e265e25f;
  *(ulonglong *)(lVar2 + -0x240) =
       uVar40 ^ *(ulonglong *)(lVar2 + -0xa88) ^ uVar27 ^ *(ulonglong *)(lVar2 + -0x318) ^ uVar41;
  *puVar26 = (*(ulonglong *)(lVar2 - (uVar30 ^ 0x4804666)) ^ uVar41) >>
             (((byte)uVar17 ^ 0xe5) & 0x3f) ^ uVar39;
  uVar7 = DAT_18267157c;
  uVar34 = (ulonglong)DAT_18267157c;
  uVar23 = (*(ulonglong *)(lVar2 + -0x240) ^ uVar41) << 0x27;
  uVar36 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar2 + -0x628) = uVar23 ^ CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar12 = DAT_1826718b8;
  uVar30 = *(ulonglong *)(lVar3 + -0x318);
  *(ulonglong *)(lVar2 + -0x2a0) = (uVar39 ^ *(ulonglong *)(lVar2 + -0x110) | uVar23) ^ uVar36;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar37 ^ 0xe3d295a8)) =
       (uVar27 ^ uVar30) - (CONCAT44(uVar8,uVar7) ^ 0xef7f61cd6719e3ea) ^ uVar23;
  uVar7 = DAT_182671594;
  lVar2 = DAT_182671560;
  uVar33 = CONCAT44(DAT_182671850,DAT_182671850);
  uVar30 = CONCAT44(uVar8,DAT_182671594);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x2c26149a)) =
       (*(ulonglong *)(DAT_182671560 - (uVar38 ^ 0xcf82ee70)) ^ uVar23) -
       (uVar36 ^ *(ulonglong *)(DAT_182671560 + -0x2a0)) ^ uVar33;
  uVar12 = DAT_1826716ec;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x318)) + (CONCAT44(uVar4,uVar5) ^ 0xfab9b822cba46581);
  uVar13 = DAT_182671818;
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0x2a0)) - (CONCAT44(uVar7,uVar4) ^ 0x5e6714cd943bc473) ^
       CONCAT44(uVar12,uVar12);
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar38 = (ulonglong)DAT_18267157c;
  *puVar25 = *(ulonglong *)(lVar2 - (uVar34 ^ 0xe3d29b40)) ^ uVar47 ^ *(ulonglong *)(lVar2 + -0x6d0)
             ^ uVar23 ^ uVar35;
  uVar34 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar30 ^ 0x73b6ff0621be9d46) + (CONCAT44(uVar17,uVar6) ^ 0x589ddd275eaeee50);
  uVar12 = DAT_1826715c0;
  uVar4 = DAT_182671598;
  lVar3 = DAT_182671560;
  uVar27 = (ulonglong)DAT_182671598;
  uVar30 = CONCAT44(DAT_182671840,DAT_182671840);
  bVar20 = (byte)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0xe3d29198)) ^ uVar23) >> (((byte)uVar37 ^ 0xf9) & 0x3f) ^
       uVar34;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar23 = (*(ulonglong *)(lVar3 + -0x240) ^ uVar23) << ((bVar20 ^ 0x9f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x670) = uVar23 ^ uVar30;
  uVar12 = DAT_182671600;
  uVar30 = CONCAT44(uVar17,DAT_1826715a8);
  uVar23 = *(ulonglong *)(lVar3 - (uVar27 ^ 0x480420e)) ^ uVar34 | uVar23;
  uVar27 = uVar23 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x318) = uVar27;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar30 ^ uVar27 ^ uVar36 ^ 0xae41e913d464a8ce;
  uVar30 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(lVar3 + -0x2a0) =
       (uVar47 ^ *(ulonglong *)(lVar3 + -0x898)) - (CONCAT44(uVar5,uVar4) ^ 0x2b36eacd7d4361b0) ^
       uVar30;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xeeef7e56)) ^ uVar30) - (*puVar24 ^ uVar36) ^
       CONCAT44(uVar12,uVar12);
  *(int *)(lVar3 + -0x844) = *(int *)(lVar3 + -0x910) * *(int *)(lVar3 + -0x910);
  uVar27 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xe3d292c8)) =
       (CONCAT44(uVar37,uVar7) ^ 0x61a8be7be811c36a) + uVar23 ^ uVar27;
  uVar30 = *puVar43;
  uVar23 = *(ulonglong *)(lVar3 + -0x8a8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar28;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x6e269ffb)) = uVar30 ^ uVar27 ^ uVar34 ^ uVar33 ^ uVar23;
  return;
}



############ FUN_ 180f21090 size=5229 ############

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

void FUN_180f21090(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  ulonglong uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte local_res20;
  byte local_a8;
  
  uVar9 = DAT_1826718b0;
  uVar23 = DAT_1826715a8;
  uVar6 = DAT_182671588;
  lVar2 = DAT_182671560;
  uVar15 = DAT_1826715b4 & 3;
  if (uVar15 < 2) {
    DAT_18267156c = DAT_182671584;
    if (uVar15 == 0) {
      DAT_18267156c = DAT_1826715b4;
    }
  }
  else {
    DAT_18267156c = DAT_1826715ac;
    if (uVar15 < 3) {
      DAT_18267156c = DAT_182671578;
    }
  }
  uVar18 = (ulonglong)DAT_182671588;
  uVar35 = (DAT_182671570 << 0x10 | DAT_182671570 & 0xff00) << 8 | DAT_182671570 >> 8 & 0xff00 |
           DAT_182671570 >> 0x18;
  uVar15 = DAT_1826715a4 & 7;
  if (uVar15 < 4) {
    if (uVar15 < 2) {
      uVar20 = DAT_18267158c;
      if (uVar15 == 0) {
        uVar20 = DAT_1826715a4;
      }
    }
    else {
      uVar20 = DAT_182671588;
      if (uVar15 < 3) {
        uVar20 = DAT_1826715a0;
      }
    }
  }
  else if (uVar15 < 6) {
    uVar20 = DAT_18267159c;
    if (uVar15 < 5) {
      uVar20 = DAT_182671568;
    }
  }
  else {
    uVar20 = DAT_1826715a8;
    if (uVar15 < 7) {
      uVar20 = DAT_18267157c;
    }
  }
  uVar14 = *(uint *)(&DAT_182611e78 + DAT_182671900) ^ DAT_182671568;
  uVar11 = *(uint *)(&DAT_182611e80 + DAT_182671900) ^ DAT_182671598;
  uVar22 = (ulonglong)DAT_182671714;
  uVar30 = CONCAT44(DAT_182671714,DAT_182671714);
  uVar19 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar31 = (ulonglong)DAT_1826715a0;
  uVar12 = *(ulonglong *)(DAT_182671560 + -0x1f0);
  uVar16 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267157c ^ 0x860d3640)) ^
           CONCAT44(DAT_1826718ac,DAT_1826718ac) ^ uVar19 ^ uVar30 ^
           *(ulonglong *)(DAT_182671560 + -0x1f0);
  DAT_182671590 = uVar35;
  DAT_1826715b0 = uVar20;
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar16;
  bVar13 = (byte)DAT_1826715a4;
  uVar22 = (*(ulonglong *)(lVar2 - (uVar31 ^ 0x3d13a941)) >> 0x20 ^ uVar22) >> 0x19;
  uVar24 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(lVar2 + -0x400) = uVar22 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_1826717fc;
  *(ulonglong *)(lVar2 + -0x628) = (uVar30 ^ uVar16) << ((bVar13 ^ 0x17) & 0x3f) ^ uVar24;
  uVar15 = DAT_18267176c;
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar22 = *(ulonglong *)(lVar2 - (uVar18 ^ 0x57bfd293)) ^ uVar24 | uVar22;
  uVar30 = CONCAT44(DAT_182671848,DAT_182671848);
  uVar16 = uVar22 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x898) = uVar16;
  *(ulonglong *)(lVar2 + -0x600) = (uVar19 ^ uVar12) - uVar22 ^ uVar30;
  uVar7 = DAT_18267159c;
  uVar26 = CONCAT44(uVar15,uVar15);
  uVar22 = CONCAT44(DAT_182671818,DAT_182671818);
  uVar12 = CONCAT44(DAT_18267159c,DAT_18267158c);
  uVar31 = *(ulonglong *)(lVar2 + -0xbf0) ^ uVar16 ^ uVar22 ^ uVar26 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar31;
  uVar4 = DAT_182671570;
  uVar16 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar12 ^ uVar31 ^ uVar26 ^ 0xc58d0410724c04b2;
  uVar19 = CONCAT44(DAT_182671794,DAT_182671794);
  uVar12 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x60791c8)) =
       ((ulonglong)uVar15 << 0x12 | (ulonglong)(uVar15 >> 0xe)) ^
       *(ulonglong *)(lVar2 + -0x6d0) >> 0xe ^ uVar19;
  uVar10 = DAT_1826717d4;
  uVar31 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(lVar2 + -0x270) = (uVar26 ^ *(ulonglong *)(lVar2 + -0x6d0)) << 0x32 ^ uVar31;
  uVar9 = DAT_1826716d0;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x240) =
       (*(ulonglong *)(lVar2 - (uVar12 ^ 0x3004371d)) ^ uVar31 |
       *(ulonglong *)(lVar2 + -0x1d8) ^ uVar19) ^ uVar25;
  uVar5 = DAT_182671594;
  uVar20 = DAT_182671584;
  lVar3 = DAT_182671560;
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar12 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar2 + -0x9f8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar35 ^ 0x1b070bf5)) ^ uVar22) -
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0x5000d7b)) ^ uVar27) ^ uVar12;
  uVar15 = DAT_18267156c;
  puVar17 = (ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xf7eae611));
  uVar37 = CONCAT44(DAT_182671800,DAT_182671800);
  uVar22 = (uVar12 ^ *puVar17) -
           (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671578 ^ 0xc83c0fc6)) ^ uVar25) ^ uVar37;
  uVar12 = CONCAT44(DAT_18267156c,DAT_1826715ac);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar22;
  uVar9 = DAT_182671644;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar12 ^ uVar22 ^ uVar37 ^ 0x33f01b527015b0f9;
  uVar10 = DAT_182671718;
  uVar28 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar12 = (ulonglong)DAT_1826715b4;
  uVar16 = (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0x688)) +
           (CONCAT44(uVar5,uVar20) ^ 0x2b16f924b0b67daf);
  *(ulonglong *)(lVar3 + -0x548) = uVar16 ^ uVar28;
  uVar23 = DAT_182671884;
  uVar9 = DAT_18267173c;
  uVar26 = CONCAT44(uVar10,uVar10);
  uVar31 = (ulonglong)DAT_182671884;
  uVar16 = (*(ulonglong *)(lVar3 - (uVar12 ^ 0x123307e4)) ^ uVar25) - uVar16;
  *(ulonglong *)(lVar3 + -0x800) = uVar16 ^ uVar26;
  uVar19 = CONCAT44(uVar23,uVar23);
  uVar25 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar32 = CONCAT44(uVar9,uVar9) ^ uVar19 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0x600) ^
           *(ulonglong *)(lVar3 + -0x2a0);
  *(ulonglong *)(lVar3 + -0x318) = uVar32;
  uVar12 = ((ulonglong)(uVar23 >> 0x10) | uVar31 << 0x10) ^ uVar32 >> 0x10;
  *(ulonglong *)(lVar3 + -0xa88) = uVar12 ^ uVar25;
  uVar9 = DAT_182671870;
  uVar5 = DAT_182671580;
  uVar23 = DAT_182671580 - DAT_182671570;
  *(ulonglong *)(lVar3 + -0x748) = (uVar32 ^ uVar19) - uVar16;
  uVar10 = DAT_1826716e8;
  uVar25 = (uVar32 ^ uVar19) << (((byte)uVar4 ^ 0x2b) & 0x3f);
  DAT_182671574 = uVar23;
  *(ulonglong *)(DAT_182671560 + -0x400) = uVar25 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671630;
  lVar2 = DAT_182671560;
  uVar25 = uVar25 | uVar12;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x600);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar25 ^ CONCAT44(DAT_182671890,DAT_182671890);
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar12 = (uVar30 ^ *puVar1) - (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar2 + -0x610));
  *(ulonglong *)(lVar2 + -0x1f0) = uVar12 ^ uVar19;
  *(uint *)(lVar2 + -0x3d4) = (uVar23 ^ 0x4fd0e34) >> ((byte)*(undefined4 *)(lVar2 + -0x8c) & 0x1f);
  uVar9 = DAT_18267179c;
  uVar31 = CONCAT44(DAT_182671808,DAT_182671808);
  *(ulonglong *)(lVar2 + -0x898) = uVar12 - uVar25 ^ uVar31;
  uVar23 = DAT_1826715b0;
  uVar21 = uVar5 + DAT_1826715b0;
  uVar12 = (CONCAT44(uVar5,uVar4) ^ 0xd1104dbfafff8e3) -
           (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0x638));
  uVar30 = CONCAT44(uVar4,DAT_1826715ac);
  DAT_182671570 = uVar21;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar12 ^ CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar35 = DAT_1826717d0;
  uVar9 = DAT_1826716c8;
  lVar3 = DAT_182671560;
  uVar16 = (ulonglong)DAT_1826717d0;
  *(ulonglong *)(lVar2 + -0x6d0) =
       uVar30 ^ 0x99565c3cc623830b | CONCAT44(uVar5,uVar23) ^ 0xd18f3f84b27dcba6;
  uVar10 = DAT_1826716f0;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar12 = uVar12 + uVar25 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar12;
  uVar25 = CONCAT44(uVar35,uVar35);
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar22 = uVar25 ^ uVar12 ^ uVar29 ^ uVar37 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x270) = uVar22;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xf2eef0d4)) = uVar22 >> 0x20 ^ uVar30 ^ uVar16;
  uVar23 = DAT_1826715b0;
  bVar13 = (byte)DAT_1826715b0;
  uVar12 = (*(ulonglong *)(lVar3 + -0x270) ^ uVar25) << ((bVar13 ^ 0x30) & 0x3f);
  uVar36 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar12 ^ CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xf8f6839c)) =
       (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar30 | uVar12) ^ uVar36;
  uVar12 = (ulonglong)DAT_182671598;
  *(int *)(lVar3 - ((ulonglong)uVar23 ^ 0x6079854)) = *(int *)(lVar3 + -0x774) * -0x510af472;
  uVar9 = DAT_182671738;
  uVar23 = _DAT_1826715d8;
  uVar32 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar16 = (ulonglong)_DAT_1826715d8;
  *(ulonglong *)(lVar3 + -0x240) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x6b8)) -
       (*(ulonglong *)(lVar3 - (uVar12 ^ 0x72e181b)) ^ uVar36) ^ uVar32;
  uVar25 = CONCAT44(uVar23,uVar23);
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar12 = *(ulonglong *)(lVar3 + -0x898) ^ uVar25 ^ uVar31 ^ uVar26 ^
           *(ulonglong *)(lVar3 + -0x800);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar12;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0xcff48b5b)) = uVar12 >> 0x20 ^ uVar37 ^ uVar16
  ;
  uVar9 = DAT_1826717b8;
  uVar30 = (uVar25 ^ *(ulonglong *)(lVar3 + -0x2a0)) << ((bVar13 ^ 0x30) & 0x3f);
  uVar16 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar3 + -0x318) = uVar30 ^ CONCAT44(DAT_182671758,DAT_182671758);
  uVar8 = DAT_1826715b4;
  lVar2 = DAT_182671560;
  uVar33 = CONCAT44(uVar9,uVar9);
  bVar13 = (byte)DAT_1826715b4;
  uVar22 = (ulonglong)DAT_18267158c;
  uVar12 = *(ulonglong *)(DAT_182671560 + -0x2a0);
  uVar16 = (*(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x72e17fb)) ^ uVar37 | uVar30) ^ uVar33;
  uVar37 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar16;
  *(ulonglong *)(lVar2 + -0x400) =
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar31) -
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0xfe44f65c)) ^ uVar33) ^ uVar37;
  uVar10 = DAT_182671774;
  uVar30 = CONCAT44(DAT_182671704,DAT_182671704);
  *(ulonglong *)(lVar2 + -0x600) = uVar25 ^ uVar12 ^ 0x2c88a0e2d3ddb021;
  uVar9 = DAT_182671638;
  uVar12 = uVar30 ^ uVar33 ^ uVar32 ^ uVar16 ^ *(ulonglong *)(lVar2 + -0x240);
  *(ulonglong *)(lVar2 + -0x610) = uVar12;
  uVar23 = DAT_1826715a4;
  uVar20 = DAT_18267157c;
  uVar16 = (uVar30 ^ *(ulonglong *)(lVar2 + -0x610)) >> ((bVar13 ^ 0x9e) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar16 ^ CONCAT44(uVar10,uVar10);
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar30 = (uVar30 ^ uVar12) << (((byte)uVar23 ^ 0x16) & 0x3f);
  uVar12 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar30 ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar12 ^ 0x72e169b)) = (uVar16 | uVar30) ^ uVar22;
  uVar34 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar30 = (ulonglong)DAT_182671768;
  uVar33 = CONCAT44(DAT_182671768,DAT_182671768);
  uVar25 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar23 = DAT_182671768 >> 0x16;
  uVar12 = uVar33 ^ uVar37 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0x8a8) ^
           *(ulonglong *)(lVar2 + -0x400);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar12;
  *(ulonglong *)(lVar2 + -0x5c8) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x240)) - (uVar22 ^ *(ulonglong *)(lVar2 + -0x628)) ^
       uVar34;
  uVar16 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0xfe44fea4)) =
       ((ulonglong)uVar23 | uVar30 << 10) ^ uVar12 >> 0x16 ^ uVar25;
  uVar12 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0xc83c0676)) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x1d8)) << 0x2a ^ uVar12;
  uVar23 = DAT_182671568;
  uVar16 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xf8f682cc)) =
       (uVar12 ^ *(ulonglong *)(lVar2 + -0xbf0) | uVar25 ^ *(ulonglong *)(lVar2 + -0x270)) ^ uVar24;
  uVar4 = DAT_1826715f4;
  uVar12 = (ulonglong)DAT_1826715f4;
  uVar30 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0x3004316d)) ^ uVar37) -
       (*(ulonglong *)(lVar2 + -0x9f8) ^ uVar24) ^ uVar30;
  *(longlong *)(lVar2 + -0x800) = *(longlong *)(lVar2 + -0x600) + 0x41ffe3dc08488dbc;
  uVar35 = DAT_182671574;
  uVar16 = CONCAT44(uVar4,uVar4);
  uVar32 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar2 + -0x748) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715ac ^ 0x838d31cf)) ^ uVar16 ^ uVar34 ^
       *(ulonglong *)(lVar2 + -0x5c8) ^ uVar24;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x57bfd7a3)) = CONCAT44(uVar7,uVar6) ^ 0x3b5a942b4928f329;
  uVar25 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(lVar2 + -0x898) = (*(ulonglong *)(lVar2 + -0x748) >> 0x20 ^ uVar12) >> 0xe ^ uVar25
  ;
  uVar4 = DAT_1826715a0;
  lVar3 = DAT_182671560;
  uVar12 = CONCAT44(DAT_182671840,DAT_182671840);
  local_res20 = (byte)uVar5;
  *(ulonglong *)(lVar2 + -0xa88) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xedeef341)) ^ uVar16) << ((local_res20 ^ 0x36) & 0x3f) ^
       uVar12;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0xf5c0e937)) =
       (CONCAT44(uVar8,uVar4) ^ 0xe64cadef73020aee) + (CONCAT44(uVar15,uVar23) ^ 0x437b3cbd00b72a4e)
  ;
  uVar9 = DAT_1826718c8;
  uVar18 = *(ulonglong *)(lVar3 + -0x5c8);
  uVar32 = uVar12 ^ *(ulonglong *)(lVar2 + -0xa88) | uVar25 ^ *(ulonglong *)(lVar2 + -0x898);
  *(ulonglong *)(lVar2 + -0x610) = uVar32 ^ uVar31;
  uVar15 = DAT_1826715b4;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar12 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar35 ^ 0xedeef5f9)) = (uVar34 ^ uVar18) - uVar32 ^ uVar16;
  uVar4 = DAT_1826715b0;
  lVar2 = DAT_182671560;
  uVar32 = CONCAT44(DAT_182671674,DAT_182671674);
  bVar13 = (byte)DAT_1826715a8;
  uVar18 = *(ulonglong *)(lVar3 - (uVar12 ^ 0x860d3ae0)) ^ uVar32 ^ uVar30 ^ uVar22 ^
           *(ulonglong *)(lVar3 + -0x6b8);
  uVar22 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar3 + -0x6d0) = uVar18;
  uVar23 = DAT_1826715ac;
  uVar12 = (uVar18 ^ uVar32) >> ((bVar13 ^ 0xe5) & 0x3f);
  bVar13 = (byte)DAT_18267156c;
  *(ulonglong *)(lVar2 + -0x240) = uVar12 ^ uVar22;
  lVar2 = DAT_182671560;
  uVar18 = (uVar32 ^ uVar18) << ((bVar13 ^ 0x90) & 0x3f);
  uVar12 = uVar18 | uVar12;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar18 ^ CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar37 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar2 + -0x1d8) =
       (CONCAT44(uVar23,uVar21) ^ 0x50b386a7ced59dd3) >> (((byte)uVar15 ^ 0x81) & 0x3f);
  uVar35 = DAT_182671598;
  uVar18 = (ulonglong)DAT_182671598;
  uVar32 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 + -0x270) = uVar12 ^ uVar19;
  uVar9 = DAT_1826718d0;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x72e160b)) ^ uVar30) - uVar12 ^ uVar37;
  uVar30 = CONCAT44(uVar9,uVar9);
  bVar13 = (byte)DAT_1826715ac;
  uVar12 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0x6079260)) ^ uVar30 ^ uVar16 ^ uVar19
           ^ *(ulonglong *)(lVar2 + -0x1f0);
  uVar22 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(lVar2 + -0x400) = uVar12;
  uVar23 = DAT_1826715a0;
  uVar18 = (uVar12 ^ uVar30) >> ((bVar13 ^ 0x2e) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar2 + -0x600) = uVar18;
  uVar15 = DAT_182671584;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x800) =
       CONCAT44(DAT_182671584,uVar23) ^ uVar22 ^ uVar18 ^ 0xc135bab6e721fb99;
  *puVar17 = (uVar30 ^ uVar12) << 0x27 ^ uVar29;
  uVar9 = DAT_182671864;
  uVar19 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar2 + -0x318) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x9f8) | uVar22 ^ *(ulonglong *)(lVar2 + -0x600)) ^ uVar19;
  uVar12 = CONCAT44(uVar9,uVar9);
  uVar18 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0xc83c0ace)) =
       (uVar16 ^ *(ulonglong *)(lVar2 + -0x1f0)) - (*(ulonglong *)(lVar2 + -0x510) ^ uVar36) ^
       uVar12;
  uVar9 = DAT_182671798;
  uVar16 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar2 + -0x2a0) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x1b07074d)) ^ uVar12) -
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x318)) ^ uVar16;
  uVar23 = DAT_18267156c;
  uVar12 = CONCAT44(uVar9,uVar9);
  uVar18 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x898)) >> (((byte)DAT_1826715b0 ^ 0x14) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x72e157b)) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x12330fc4)) ^ uVar27) +
       (CONCAT44(uVar20,uVar5) ^ 0xb80d5ab9d816b3ed) ^ uVar12;
  uVar9 = DAT_182671850;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar15,uVar35) ^ 0x87c7d1e15b32b3a4) + 0x58f4eacae528f402;
  uVar15 = DAT_182671698;
  uVar32 = (ulonglong)DAT_182671594;
  uVar25 = CONCAT44(uVar9,uVar9);
  uVar18 = (ulonglong)DAT_182671698;
  *(ulonglong *)(lVar2 + -0x6d0) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x318)) - (*(ulonglong *)(lVar2 + -0x5c8) ^ uVar12) ^
       uVar25;
  uVar35 = DAT_1826715a0;
  lVar2 = DAT_182671560;
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xf5c0ea4f)) =
       uVar37 ^ *(ulonglong *)(DAT_182671560 + -0xbf0) ^ uVar31 ^
       *(ulonglong *)(DAT_182671560 + -0x610) ^ uVar22;
  uVar30 = (*(ulonglong *)(lVar2 + -0x1d8) >> 0x20 ^ uVar18) >> 1;
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar30 ^ uVar28;
  uVar20 = DAT_1826715a0;
  uVar15 = DAT_18267159c;
  lVar2 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar12 = (ulonglong)DAT_18267158c;
  uVar18 = (*(ulonglong *)(DAT_182671560 + -0x1d8) ^ uVar22) << (((byte)uVar35 ^ 0x16) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar18 ^ uVar31;
  uVar9 = DAT_1826716a8;
  *(ulonglong *)(lVar2 + -0x6b8) =
       CONCAT44(uVar20,uVar15) ^ 0x368d84e682706218 | CONCAT44(uVar21,uVar23) ^ 0xb016aef4e1d4e902;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715ac ^ 0x838d3a47)) = (uVar18 | uVar30) ^ uVar19;
  uVar18 = (uVar37 ^ *(ulonglong *)(lVar2 + -0xbf0)) -
           (*(ulonglong *)(lVar2 - (uVar12 ^ 0xfe44f99c)) ^ uVar28);
  uVar30 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar2 + -0x800) = uVar18 ^ uVar31;
  uVar9 = DAT_182671700;
  *(ulonglong *)(lVar2 + -0x400) = uVar18 - (*(ulonglong *)(lVar2 + -0x270) ^ uVar19) ^ uVar30;
  uVar23 = DAT_182671598;
  uVar15 = DAT_182671584 ^ 0x44b7f6ea;
  uVar18 = (CONCAT44(uVar4,DAT_182671568) ^ 0xf9f86fefcffbca94) -
           (*(ulonglong *)(lVar2 - (uVar12 ^ 0xfe44ff6c)) ^ CONCAT44(DAT_182671824,DAT_182671824));
  *(ulonglong *)(lVar2 + -0x600) = uVar18 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_18267189c;
  uVar22 = (ulonglong)DAT_1826715a4;
  *(uint *)(lVar2 + -0x274) = uVar15 + (uVar23 ^ 0xdec11a7);
  uVar12 = CONCAT44(uVar9,uVar9);
  uVar18 = (*(ulonglong *)(lVar2 + -0x270) ^ uVar19) + uVar18 ^ uVar12;
  *(ulonglong *)(lVar2 + -0x9f8) = uVar18;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267157c ^ 0x860d3d38)) =
       uVar37 ^ uVar18 ^ uVar12 ^ uVar16 ^ *(ulonglong *)(lVar2 + -0x2a0);
  uVar9 = DAT_18267174c;
  local_a8 = (byte)uVar6;
  *(ulonglong *)(lVar2 + -0x748) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xf5c0ea67)) ^ uVar37) >> ((local_a8 ^ 0xbe) & 0x3f) ^
       uVar26;
  uVar31 = (uVar37 ^ *(ulonglong *)(lVar2 + -0x1f0)) << 0x3b;
  uVar19 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *(ulonglong *)(lVar2 + -0x898) = uVar31 ^ CONCAT44(uVar9,uVar9);
  uVar6 = DAT_1826717f0;
  uVar31 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x6079758)) ^ uVar26 | uVar31;
  uVar18 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar12 = (ulonglong)DAT_1826717f0;
  *(ulonglong *)(lVar2 + -0xa88) = uVar31 ^ uVar19;
  uVar9 = DAT_182671778;
  *(ulonglong *)(lVar2 + -0x628) = (uVar16 ^ *(ulonglong *)(lVar2 + -0x2a0)) - uVar31 ^ uVar18;
  *(ulonglong *)(lVar2 + -0x318) =
       CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0x400) ^ uVar30 ^ uVar25 ^
       *(ulonglong *)(lVar2 + -0x6d0);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a8 ^ 0xf7eae9f9)) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x6079308)) >> 0x20 ^ uVar12) >> 5 ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar14;
  return;
}



############ FUN_ 180e92e10 size=4823 ############

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

void FUN_180e92e10(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  uint uVar22;
  uint uVar23;
  byte *pbVar24;
  ulonglong uVar25;
  longlong *plVar26;
  byte *pbVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  longlong *plVar31;
  ulonglong uVar32;
  byte bVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  byte local_108;
  byte local_100;
  
  uVar14 = DAT_18267166c;
  uVar13 = DAT_1826715b4;
  uVar12 = DAT_1826715b0;
  uVar11 = DAT_1826715a8;
  uVar10 = DAT_1826715a4;
  uVar9 = DAT_182671598;
  uVar7 = DAT_18267158c;
  uVar6 = DAT_18267157c;
  uVar28 = (ulonglong)DAT_18267158c;
  uVar46 = (ulonglong)DAT_1826715a8;
  uVar25 = (ulonglong)DAT_1826715a4;
  uVar41 = DAT_1826715b0 ^ DAT_1826715b4;
  uVar43 = DAT_1826715a4 * DAT_1826715a8;
  uVar45 = DAT_18267157c - DAT_182671598;
  uVar48 = (DAT_18267158c << 0x10 | DAT_18267158c & 0xff00) << 8 | DAT_18267158c >> 8 & 0xff00 |
           DAT_18267158c >> 0x18;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671920);
  uVar22 = *(uint *)(&DAT_182611e78 + DAT_182671920) ^ DAT_1826715a8;
  DAT_182671580 = uVar43;
  DAT_182671590 = uVar41;
  DAT_1826715a0 = uVar48;
  DAT_1826715ac = uVar45;
  *(byte *)(DAT_182671560 + -0x7f1) =
       (byte)DAT_18267166c ^ (byte)DAT_18267189c ^ *(byte *)(DAT_182671560 + -0xbf0);
  uVar35 = (ulonglong)uVar45;
  uVar20 = (ulonglong)DAT_182671738;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar45 ^ 0xc283e5cd)) =
       (CONCAT44(uVar10,uVar6) ^ 0x77bad5331902b1c6) <<
       ((byte)*(undefined8 *)(DAT_182671560 + -0xa80) & 0x3f);
  lVar3 = DAT_182671560;
  uVar19 = (ulonglong)uVar9;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x6d862acd)) =
       uVar20 ^ *(ulonglong *)(DAT_182671560 + -0x8c8);
  uVar15 = DAT_1826717bc;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0xd094d31f)) ^ uVar20) =
       *(byte *)(lVar3 + -0x7f1) ^ (byte)DAT_182671718 ^ (byte)DAT_18267189c;
  uVar40 = CONCAT44(uVar15,uVar15);
  puVar21 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar7,uVar10) ^ 0x1f61367a22110a30) +
            (CONCAT44(uVar41,uVar13) ^ 0x635d772db3c9af8a) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x78) = (ulonglong)puVar21 ^ uVar40;
  uVar17 = DAT_1826718d0;
  uVar15 = DAT_182671860;
  uVar29 = (ulonglong)uVar48;
  *(ulonglong *)(lVar3 + -0xa0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar48 ^ 0x7a366aef)) ^ CONCAT44(uVar14,uVar14)) +
       (CONCAT44(uVar45,uVar11) ^ 0x5420f1d292c9122c);
  uVar39 = (ulonglong)uVar43;
  uVar30 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar20 = *puVar21 ^ uVar30 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar20;
  *(ulonglong *)(lVar3 + -0x800) =
       (CONCAT44(uVar13,uVar43) ^ 0xaebe6d03602994ea) >> (((byte)uVar20 ^ (byte)uVar15) & 0x3f);
  uVar20 = (*(ulonglong *)(lVar3 + -0x3b8) ^ CONCAT44(uVar15,uVar15)) >>
           (((byte)uVar13 ^ 0x82) & 0x3f);
  *(ulonglong *)(lVar3 + -0x3f0) = uVar20 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x300a179a)) = uVar20 | *(ulonglong *)(lVar3 + -0xa60);
  *(byte *)(lVar3 + -0xc81) = (byte)uVar17 ^ *(byte *)(lVar3 + -0x3f0) ^ (byte)DAT_1826718b8;
  bVar18 = (byte)DAT_1826717c0;
  uVar37 = (ulonglong)DAT_1826715cc;
  uVar20 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar3 + -0xae0) = *(longlong *)(lVar3 + -0x8c8) + 1U ^ uVar37;
  uVar14 = DAT_1826716a8;
  *(uint *)(lVar3 + -0x47c) = (uVar45 ^ 0x9dc922ab) + *(int *)(lVar3 + -0x5cc);
  uVar47 = (ulonglong)DAT_1826717d8;
  *(ulonglong *)(lVar3 + -0x2a0) =
       (uVar20 ^ *(ulonglong *)(lVar3 + -0x9f8)) <<
       (((byte)uVar14 ^ *(byte *)(lVar3 + -0x5c8)) & 0x3f);
  uVar20 = CONCAT44(DAT_182671848,DAT_182671848);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar29 ^ 0x7a366bff)) ^ uVar37) =
       *(byte *)(lVar3 - ((ulonglong)uVar11 ^ 0xef6bbbff)) ^ (byte)DAT_1826718b8 ^
       (byte)DAT_182671718;
  uVar15 = DAT_1826716b8;
  puVar21 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) + (CONCAT44(uVar10,uVar41) ^ 0x22110a30635d772d) * 8);
  *(ulonglong *)(lVar3 + -0xcc8) = (ulonglong)puVar21 ^ uVar20;
  uVar17 = DAT_1826718b4;
  local_100 = (byte)uVar9;
  uVar20 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x80) = *puVar21 ^ uVar20 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x1d8) =
       CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar3 + -0x5c8) ^ 0xef2c63302038a4dc;
  uVar20 = (*(ulonglong *)(lVar3 + -0x80) ^ uVar20) >> ((local_100 ^ 0x65) & 0x3f) ^
           CONCAT44(uVar17,uVar17);
  bVar33 = (byte)uVar17 ^ (byte)uVar20;
  *(ulonglong *)(lVar3 + -0x240) = uVar20;
  *(byte *)(lVar3 + -0x6a1) = bVar33 ^ bVar18;
  lVar4 = DAT_182671560;
  pbVar24 = (byte *)(*(longlong *)(lVar3 + -0x8c8) + 2);
  *(ulonglong *)(lVar3 + -0x8f8) = (ulonglong)pbVar24 ^ uVar47;
  *pbVar24 = bVar33 ^ (byte)DAT_182671718;
  plVar26 = (longlong *)(lVar4 - ((ulonglong)uVar11 ^ 0xef6bbce6));
  puVar21 = (ulonglong *)
            (*plVar26 +
            ((CONCAT44(uVar12,uVar48) ^ 0xd094d8a77a36611f) +
            (CONCAT44(uVar45,uVar13) ^ 0xc283efadb3c9af8a) * 0xc) * 8);
  uVar32 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar4 + -0xab8) = (ulonglong)puVar21 ^ CONCAT44(DAT_182671874,DAT_182671874);
  uVar2 = DAT_1826715ec;
  uVar20 = (ulonglong)DAT_1826715ec;
  *(ulonglong *)(lVar4 + -0x638) = *puVar21 ^ uVar32 ^ uVar30;
  local_108 = (byte)uVar45;
  bVar33 = (byte)uVar2 ^ (byte)DAT_182671788;
  *(ulonglong *)(lVar4 + -0x8a8) =
       (*(ulonglong *)(lVar4 - (uVar39 ^ 0x4bb5598)) ^ uVar32) >> ((local_108 ^ 0xb5) & 0x3f) ^
       CONCAT44(uVar2,uVar2);
  *(byte *)(lVar4 + -0x321) = bVar33 ^ *(byte *)(lVar4 + -0x8a8);
  uVar37 = (ulonglong)DAT_182671894;
  *(ulonglong *)(lVar4 + -0xa88) = *(ulonglong *)(lVar4 + -0x8a8) >> 0x20 ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x4bb5258)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar11 ^ 0xef6bbfb6)) +
       (CONCAT44(uVar10,uVar6) ^ 0x22110a30300a1121) ^ uVar37;
  *(ulonglong *)(lVar4 + -0x610) =
       (CONCAT44(uVar7,uVar6) ^ 0x54e1746b6a80727e) >>
       (((byte)uVar17 ^ *(byte *)(lVar4 + -0x240)) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar19 ^ 0x6d86208d)) ^ uVar37) =
       *(byte *)(lVar4 - ((ulonglong)uVar11 ^ 0xef6bb45f)) ^ (byte)DAT_182671788 ^
       (byte)DAT_182671718;
  *(ulonglong *)(lVar4 + -0x6d0) =
       CONCAT44(uVar13,uVar48) ^ *(ulonglong *)(lVar4 + -0x610) ^ 0x9c8e5cf98d7df978;
  uVar36 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar4 + -0xb78) =
       *(longlong *)(lVar4 - (uVar35 ^ 0xc283e435)) +
       ((CONCAT44(uVar12,uVar13) ^ 0xd094d8a7b3c9af8a) +
       (CONCAT44(uVar41,uVar7) ^ 0x635d772d1f61367a) * 0xc) * 8 ^ uVar36;
  *(byte *)(lVar4 - ((ulonglong)uVar11 ^ 0xef6bbafc)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar19 ^ 0x6d862df5)) ^ (ulonglong)_DAT_1826715e0) ^ bVar18
  ;
  uVar14 = DAT_18267183c;
  uVar16 = DAT_182671774;
  lVar3 = DAT_182671560;
  uVar38 = CONCAT44(DAT_182671814,DAT_182671814);
  uVar37 = (ulonglong)DAT_182671774;
  uVar20 = *(ulonglong *)(DAT_182671560 + -0x638);
  *(ulonglong *)(lVar4 + -0x670) =
       *(ulonglong *)(uVar36 ^ *(ulonglong *)(lVar4 + -0xb78)) ^ uVar38 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x600) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x7a36676f)) ^ uVar38) >> ((byte)uVar43 & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  uVar5 = DAT_182671570;
  uVar36 = (ulonglong)DAT_182671634;
  uVar42 = (ulonglong)DAT_182671570;
  bVar33 = (byte)uVar16;
  bVar34 = *(byte *)(lVar3 - (uVar35 ^ 0xc283e9ad)) ^ (byte)uVar14 ^ bVar33;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (uVar32 ^ uVar20) - (CONCAT44(uVar12,uVar43) ^ 0x47f0b2c65c9d86ba);
  *(byte *)(lVar3 + -0x359) = bVar34;
  pbVar24 = (byte *)((CONCAT44(uVar48,uVar6) ^ 0x7a36611f300a1126) + *(longlong *)(lVar3 + -0x8c8));
  *(longlong *)(lVar3 + -0xa80) = -0x787e9113ce14a028 << ((local_100 ^ 0x6c) & 0x3f);
  bVar18 = bVar33 ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar3 + -0x5b8) = (ulonglong)pbVar24 ^ uVar36;
  *pbVar24 = bVar18 ^ bVar34;
  uVar2 = DAT_1826715e8;
  uVar8 = DAT_182671594;
  uVar44 = (ulonglong)DAT_182671594;
  uVar23 = uVar5 + DAT_182671594;
  uVar36 = (ulonglong)uVar23;
  puVar21 = (ulonglong *)
            ((CONCAT44(DAT_182671594,uVar23) ^ 0xfffffffffffffffe) * 0x60 +
            *(longlong *)(lVar3 + -0xb98));
  DAT_182671574 = uVar23;
  *(ulonglong *)(lVar3 + -0x220) = (ulonglong)puVar21 ^ CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar32 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0xbf0) = *puVar21 ^ uVar32 ^ uVar30;
  *(uint *)(lVar3 + -0x910) = (uVar5 ^ 0x427948b2) * 0x62687392;
  bVar18 = bVar33 ^ (byte)DAT_182671648;
  uVar38 = (ulonglong)DAT_182671670;
  uVar20 = (*(ulonglong *)(lVar3 + -0xbf0) >> 0x20 ^ uVar37) >> 8 ^ uVar32;
  *(ulonglong *)(lVar3 + -0xa0) = uVar20;
  *(byte *)(lVar3 + -0x951) = bVar18 ^ (byte)uVar20;
  lVar4 = DAT_182671560;
  plVar31 = (longlong *)(lVar3 - ((ulonglong)uVar23 ^ 0xfffff736));
  pbVar27 = (byte *)((CONCAT44(uVar23,uVar8) ^ 0xfffffffefffffffa) + *plVar31);
  pbVar24 = (byte *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0xfffff6ae));
  *(ulonglong *)(DAT_182671560 + -0x6b0) = (ulonglong)pbVar27 ^ uVar38;
  uVar14 = DAT_182671744;
  *pbVar27 = *pbVar24 ^ (byte)DAT_182671648 ^ (byte)DAT_182671718;
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x6f0) =
       *(longlong *)(lVar4 - (uVar42 ^ 0xfffff467)) +
       (CONCAT44(uVar23,uVar8) ^ 0xfffffffeffffffff) * 0x68 ^ uVar20;
  uVar14 = DAT_18267170c;
  *(ulonglong *)(lVar4 + -0x800) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar44 ^ 0xfffff90f)) ^ uVar20) ^
       CONCAT44(uVar2,uVar2) ^ uVar30;
  lVar3 = DAT_182671560;
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0xfffffc46)) =
       (ulonglong)*(ushort *)((DAT_182671560 - ((ulonglong)uVar5 ^ 0xfffff7ff)) + 6) ^
       (ulonglong)(uVar2 >> 0x10) ^ uVar20;
  bVar18 = (byte)DAT_18267172c;
  bVar34 = (byte)uVar14 ^ (byte)DAT_18267172c ^ *(byte *)(lVar3 + -0x3b8);
  *(byte *)(lVar3 + -0x941) = bVar34;
  bVar18 = bVar18 ^ bVar34 ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar3 + -0xa60) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xffffff5f)) ^ uVar32 |
       CONCAT44(uVar10,uVar23) ^ 0xffc235ff820d99c0;
  uVar14 = DAT_182671710;
  pbVar24 = (byte *)(*(longlong *)(lVar3 - (uVar28 ^ 0x1f613eb2)) + 6);
  *(ulonglong *)(lVar3 + -0xa68) = (ulonglong)pbVar24 ^ uVar47;
  uVar37 = CONCAT44(uVar14,uVar14);
  *pbVar24 = bVar18;
  *(ulonglong *)(lVar3 + -0x7b8) =
       *(longlong *)(lVar3 - (uVar39 ^ 0x4bb5838)) +
       ((CONCAT44(uVar8,uVar41) ^ 0xffffffff635d772d) +
       (CONCAT44(uVar10,uVar23) ^ 0x22110a30fffffffe) * 0xc) * 8 ^ uVar37;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x6b8) =
       CONCAT44(uVar43,uVar10) ^ 0x4fb92ff35549665a | uVar20 ^ *(ulonglong *)(lVar3 + -0x3b8);
  uVar14 = DAT_182671760;
  uVar2 = DAT_182671720 >> 0x18;
  *(ulonglong *)(lVar4 + -0x3f0) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x300a169a)) ^ uVar37) ^
       CONCAT44(DAT_182671720,DAT_182671720) ^ uVar30;
  uVar15 = DAT_182671694;
  lVar3 = DAT_182671560;
  *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar35 ^ 0xc283e72d)) ^ CONCAT44(uVar14,uVar14)) =
       CONCAT44(uVar12,uVar8) ^ 0x6ce2872500d7bae3;
  *(ulonglong *)(lVar4 + -0x9f8) = -0x4bca6f4c1e742435 - (uVar20 ^ *(ulonglong *)(lVar4 + -0x3b8));
  bVar34 = (byte)uVar15 ^ (byte)DAT_182671628;
  *(ulonglong *)(lVar3 + -0x2a0) =
       (ulonglong)*(byte *)(lVar3 + -0x3e9) ^ (ulonglong)uVar2 ^ CONCAT44(uVar15,uVar15);
  lVar3 = DAT_182671560;
  bVar18 = *(byte *)(DAT_182671560 + -0x2a0);
  puVar21 = (ulonglong *)(DAT_182671560 + -0x318);
  uVar20 = (CONCAT44(uVar13,uVar11) ^ 0xc0a725e6b1ea46a6) <<
           ((bVar33 ^ *(byte *)(DAT_182671560 + -0xbf0)) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar20;
  uVar37 = (ulonglong)DAT_1826717c4;
  *(ulonglong *)(lVar3 + -0x80) = *puVar21 ^ uVar20;
  *(byte *)(lVar3 + -0xb39) = bVar34 ^ bVar18;
  pbVar24 = (byte *)(*plVar31 + 7);
  *(ulonglong *)(lVar3 + -0xb20) = (ulonglong)pbVar24 ^ uVar37;
  lVar3 = DAT_182671560;
  *pbVar24 = *(byte *)(DAT_182671560 - (uVar36 ^ 0xfffff4c7)) ^ (byte)DAT_182671628 ^
             (byte)DAT_182671718;
  uVar14 = DAT_182671654;
  *(ulonglong *)(lVar3 + -0x8a8) =
       (CONCAT44(uVar43,uVar48) ^ 0x4b5b4cc92f046988) -
       (CONCAT44(uVar10,uVar5) ^ 0xf00ad13c548fb068);
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x1f613512)) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar12,uVar12) ^ 0xd094d8a7d094d8a6) +
       (CONCAT44(uVar41,uVar12) ^ 0x635d772dd094d8a7) * 0xc) * 8 ^ uVar20;
  uVar10 = DAT_182671630;
  uVar37 = CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(lVar3 - (uVar46 ^ 0xef6bbdf6)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x368) ^ uVar20) ^ uVar30 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x6d0) =
       CONCAT44(uVar13,uVar7) ^ 0x4902e22c8231c55 |
       CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar3 + -0x2a0);
  uVar2 = DAT_1826716bc;
  uVar20 = (ulonglong)DAT_1826716bc;
  *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0x4bb55b0)) =
       (*(ulonglong *)(DAT_182671560 - (uVar42 ^ 0xfffff577)) ^ uVar37) >>
       (((byte)uVar7 ^ 0x7a) & 0x3f) ^ CONCAT44(uVar10,uVar10);
  *(byte *)(DAT_182671560 - (uVar39 ^ 0x4bb5799)) =
       (byte)uVar10 ^ *(byte *)(DAT_182671560 + -0x610) ^ (byte)uVar2;
  lVar3 = DAT_182671560;
  puVar21 = (ulonglong *)(DAT_182671560 - (uVar29 ^ 0x7a36670f));
  pbVar24 = (byte *)((CONCAT44(uVar6,uVar45) ^ 0x300a1122c283efa5) +
                    *(longlong *)(DAT_182671560 + -0x8c8));
  *(ulonglong *)(DAT_182671560 + -0x908) = (ulonglong)pbVar24 ^ uVar20;
  bVar18 = *(byte *)(lVar3 + -0x439) ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar3 + -0x670) =
       *puVar21 ^ CONCAT44(uVar10,uVar10) ^ CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0x240)
  ;
  *pbVar24 = bVar18 ^ (byte)uVar2;
  uVar14 = DAT_18267189c;
  puVar21 = (ulonglong *)
            (*(longlong *)(lVar3 - (uVar19 ^ 0x6d862aed)) +
            ((CONCAT44(uVar41,uVar11) ^ 0x635d772def6bb77f) +
            (CONCAT44(uVar23,uVar9) ^ 0xfffffffe6d862175) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x4a0) = (ulonglong)puVar21 ^ CONCAT44(DAT_182671698,DAT_182671698);
  lVar3 = DAT_182671560;
  bVar18 = (byte)DAT_1826717bc;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar20 = *puVar21 ^ uVar39 ^ uVar30;
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar20;
  *(ulonglong *)(lVar3 + -0x638) = (uVar20 ^ uVar39) >> (((byte)uVar5 ^ 0xf7) & 0x3f) ^ uVar40;
  uVar20 = (ulonglong)DAT_182671634;
  *(byte *)(lVar3 - (uVar44 ^ 0xfffffd9d)) =
       *(byte *)(lVar3 - (uVar19 ^ 0x6d86274d)) ^ bVar18 ^ (byte)DAT_1826715bc;
  pbVar24 = (byte *)(*(longlong *)(lVar3 + -0x8c8) + 9);
  bVar18 = *(byte *)(lVar3 + -0x262) ^ (byte)DAT_182671718 ^ (byte)DAT_1826715bc;
  *(ulonglong *)(lVar3 + -0xc10) = (ulonglong)pbVar24 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (CONCAT44(uVar8,uVar45) ^ 0x55d2463228ce6d4d) - (CONCAT44(uVar7,uVar41) ^ 0x2a14b89eedf9fca6)
  ;
  *pbVar24 = bVar18;
  uVar20 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(lVar3 + -0x830) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar12,uVar6) ^ 0xd094d8a7300a1123) +
       (CONCAT44(uVar23,uVar48) ^ 0xfffffffe7a36611f) * 0xc) * 8 ^ uVar20;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x221100b0)) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x600)) - (CONCAT44(uVar45,uVar43) ^ 0xfe1fd5a720bf13ba);
  uVar19 = (ulonglong)DAT_182671650;
  uVar30 = CONCAT44(DAT_182671650,DAT_182671650) ^
           *(ulonglong *)(*(ulonglong *)(lVar3 + -0x830) ^ uVar20) ^ uVar30;
  uVar20 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar2 = DAT_182671650 >> 0x10;
  bVar18 = (byte)_DAT_1826715f0 ^ (byte)DAT_182671844;
  *(ulonglong *)(lVar3 + -0x800) = uVar30;
  uVar20 = ((ulonglong)uVar2 | uVar19 << 0x10) ^ uVar30 >> 0x10 ^ uVar20;
  *(ulonglong *)(lVar3 + -0xa0) = uVar20;
  *(byte *)(lVar3 - (uVar36 ^ 0xfffff98f)) = bVar18 ^ (byte)uVar20;
  *(ulonglong *)(lVar3 + -0x28) =
       (CONCAT44(uVar5,uVar6) ^ 0xffffffff300a1128) + *(longlong *)(lVar3 + -0x8c8) ^
       (ulonglong)uVar10;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar25 ^ 0x22110a18)) ^ (ulonglong)uVar10) =
       *(byte *)(lVar3 - (uVar42 ^ 0xfffff98e)) ^ (byte)DAT_182671718 ^ (byte)DAT_182671844;
  uVar20 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(lVar3 + -0xa60) =
       *(longlong *)(lVar3 + -0xa80) - (uVar37 ^ *(ulonglong *)(lVar3 + -0xa88));
  *(ulonglong *)(lVar3 + -0x570) =
       uVar20 ^ *plVar26 + (CONCAT44(uVar13,uVar43) ^ 0xb3c9af8a04bb53a1) * 8;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar43) * 4) = uVar22;
  return;
}



############ FUN_ 180e555f0 size=3223 ############

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

void FUN_180e555f0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  byte bVar21;
  ulonglong uVar22;
  byte *pbVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  
  uVar15 = DAT_18267159c;
  uVar11 = DAT_18267158c;
  uVar10 = DAT_182671584;
  lVar3 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671584;
  uVar24 = (ulonglong)DAT_18267158c;
  uVar35 = (ulonglong)DAT_18267159c;
  uVar28 = DAT_18267158c & DAT_18267159c;
  uVar25 = (DAT_182671584 << 0x10 | DAT_182671584 & 0xff00) << 8 | DAT_182671584 >> 8 & 0xff00 |
           DAT_182671584 >> 0x18;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671aa8);
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_182671aa8) ^ DAT_18267158c;
  uVar29 = (ulonglong)DAT_182671584;
  uVar26 = (ulonglong)DAT_182671758;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x390);
  uVar22 = (ulonglong)DAT_182671584;
  bVar19 = (byte)DAT_182671584;
  DAT_182671570 = uVar25;
  DAT_182671588 = uVar28;
  *(undefined8 *)(DAT_182671560 + -0xaa0) =
       *(undefined8 *)(DAT_182671560 - ((ulonglong)DAT_18267159c ^ 0xbebfc6f9));
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x454f7c88)) = *puVar1 ^ uVar26;
  *(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0xbebfcfcd)) = (uVar25 ^ 0x7c11a48) + 0xe47ec19;
  uVar22 = (ulonglong)_DAT_1826715e0;
  *(ulonglong *)(lVar3 + -0xa98) = (ulonglong)*(byte **)(lVar3 + -0xaa0) ^ uVar22;
  *(ulonglong *)(lVar3 + -0x170) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x8c31c250)) ^ uVar22) + 1;
  bVar18 = (byte)DAT_182671718;
  lVar4 = DAT_182671560;
  *(byte *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x8d31cf9e)) =
       **(byte **)(lVar3 + -0xaa0) ^ (byte)DAT_18267162c ^ (byte)DAT_182671718;
  uVar22 = (ulonglong)DAT_18267177c;
  bVar21 = (byte)(uVar10 >> 0x18);
  *(byte *)(lVar4 + -0xd09) = bVar19 ^ 0x67;
  *(byte *)(*(ulonglong *)(lVar4 + -0x9a0) ^ uVar22) = bVar21 ^ 0x2e;
  *(ulonglong *)(lVar4 + -0xba0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xbebfc929)) ^ uVar26) +
       (CONCAT44(uVar28,uVar10) ^ 0x8c31c8c8454f7f69);
  uVar27 = (ulonglong)DAT_182671658;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar25 ^ 0x687f4ca5)) ^ uVar26) =
       *(byte *)(lVar4 + -0x262) ^ (byte)DAT_18267162c;
  *(undefined1 *)(lVar4 + -0x262) = 0xc6;
  *(undefined8 *)(lVar4 + -0x60) = *(undefined8 *)(lVar4 - ((ulonglong)uVar11 ^ 0x8d31c65c));
  *(undefined8 *)(lVar4 + -0x4e0) = *(undefined8 *)(lVar4 + -0x170);
  *(ulonglong *)(lVar4 + -0xb00) = *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x8c31c8a8)) ^ uVar27
  ;
  *(byte *)(lVar4 - ((ulonglong)uVar28 ^ 0x8c31cd11)) = (byte)uVar15 ^ 0x6c;
  uVar22 = (ulonglong)DAT_18267160c;
  uVar26 = (ulonglong)DAT_18267160c ^ *(ulonglong *)(lVar4 + -0x4e0);
  *(ulonglong *)(lVar4 + -0xb48) = uVar26;
  *(ulonglong *)(lVar4 + -0x868) = (*(ulonglong *)(lVar4 - (uVar29 ^ 0x454f7420)) ^ uVar22) + 1;
  *(byte *)(lVar4 - ((ulonglong)uVar10 ^ 0x454f7919)) =
       *(byte *)(uVar26 ^ uVar22) ^ (byte)DAT_182671734 ^ bVar18;
  *(byte *)(lVar4 + -0x8b1) = (byte)uVar11 ^ 0xf9;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x8d31ca3c)) ^ uVar27) = bVar21 ^ 0x2c;
  uVar16 = DAT_1826715c0;
  uVar14 = DAT_182671598;
  uVar34 = (ulonglong)DAT_1826718b0;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x454f7548)) =
       (CONCAT44(uVar28,uVar15) ^ 0x8c31c8c8bebfcac8) + (*(ulonglong *)(lVar4 + -0xb00) ^ uVar27);
  uVar12 = DAT_182671590;
  uVar8 = DAT_18267157c;
  uVar30 = (ulonglong)DAT_182671590;
  *(byte *)(*(ulonglong *)(lVar4 + -0xb00) ^ uVar27) =
       *(byte *)(lVar4 + -0x671) ^ (byte)DAT_182671734;
  uVar22 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(undefined1 *)(lVar4 + -0x671) = 0x67;
  *(ulonglong *)(lVar4 + -0xa88) =
       *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar4 + -0x830)) ^ CONCAT44(uVar16,uVar16);
  uVar26 = (ulonglong)DAT_1826715b0;
  uVar27 = (ulonglong)DAT_18267187c;
  uVar22 = *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xc77208ec));
  *(ulonglong *)(lVar4 + -0xd48) = uVar22;
  uVar26 = *(ulonglong *)(lVar4 - (uVar26 ^ 0x895ebffe));
  *(ulonglong *)(lVar4 + -0xc38) = uVar26;
  *(ulonglong *)(lVar4 + -0xc00) = uVar22 ^ uVar34;
  bVar19 = (byte)DAT_182671840;
  *(ulonglong *)(lVar4 + -0x50) = uVar27 ^ uVar26;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x8c31cce0)) = uVar26 + 1;
  uVar16 = DAT_1826715a4;
  *(byte *)(lVar4 + -0xce1) = *(byte *)(uVar27 ^ *(ulonglong *)(lVar4 + -0x50)) ^ bVar19 ^ bVar18;
  *(byte *)(lVar4 + -0x3f1) = (byte)uVar12 ^ 0xfc;
  uVar22 = (ulonglong)DAT_18267156c;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715b4 ^ 0x17f2c610)) ^
           (ulonglong)DAT_1826716a4) = (byte)uVar14 ^ 0x56;
  uVar17 = DAT_1826715ac;
  uVar7 = DAT_182671578;
  uVar5 = DAT_182671568;
  uVar33 = (ulonglong)DAT_182671578;
  pbVar23 = (byte *)(*(ulonglong *)(lVar4 + -0xc00) ^ uVar34);
  uVar27 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 + -0xa80) =
       *(ulonglong *)(lVar4 - (uVar22 ^ 0x56894376)) ^ CONCAT44(uVar16,uVar10) ^ 0xb79a37a493b06f8c;
  *(byte **)(lVar4 + -0x700) = pbVar23 + 1;
  uVar26 = (ulonglong)DAT_182671674;
  *(ulonglong *)(lVar4 + -0x8a8) =
       *(longlong *)(lVar4 + -0xa0) - (CONCAT44(uVar7,uVar11) ^ 0x369903952863794a);
  *pbVar23 = bVar19 ^ *(byte *)(lVar4 + -0xce1);
  uVar29 = (ulonglong)DAT_1826718c0;
  *(byte *)(lVar4 + -0xce1) = (byte)uVar5 ^ 0x68;
  *(undefined8 *)(lVar4 - (uVar35 ^ 0xbebfc1f1)) = *(undefined8 *)(lVar4 + -0x700);
  uVar6 = DAT_182671574;
  uVar32 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar4 + -0x638) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671580 ^ 0xee94f252)) ^
       *(ulonglong *)(lVar4 + -0xa88);
  *(undefined8 *)(lVar4 + -0x148) = *(undefined8 *)(lVar4 + -0x428);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (CONCAT44(uVar6,uVar10) ^ 0x74515dd7f2b43200) >> (((byte)uVar17 ^ 0x4c) & 0x3f);
  *(byte *)(lVar3 + -0x2b9) = bVar21 ^ 0xef;
  uVar9 = DAT_182671580;
  *(ulonglong *)(lVar3 + -0x930) = *(ulonglong *)(lVar3 + -0xb38) ^ uVar29;
  *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0x8d31c13c)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x5b66cb71)) ^ uVar26;
  uVar22 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xee94f6a2)) =
       *(ulonglong *)(DAT_182671560 + -0x80) ^ *(ulonglong *)(DAT_182671560 + -0x8a8);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1a0) =
       (*(ulonglong *)(DAT_182671560 - (uVar22 ^ 0x895ebb56)) ^ uVar26) +
       (CONCAT44(uVar25,uVar5) ^ 0x687f4f457e3e782f);
  uVar13 = DAT_182671594;
  lVar4 = DAT_182671560;
  *(byte *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0xcab73084)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xcc0) ^ uVar26) ^ (byte)DAT_182671670 ^
       (byte)DAT_182671718;
  *(undefined1 *)(lVar4 - ((ulonglong)uVar9 ^ 0xee94fdf3)) = 0x36;
  uVar22 = CONCAT44(DAT_1826715b0,uVar11);
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xc772034c)) ^ (ulonglong)DAT_18267174c) =
       (byte)uVar28 ^ 0xc5;
  uVar17 = DAT_1826715a8;
  pbVar23 = (byte *)(uVar29 ^ *(ulonglong *)(lVar4 + -0x930));
  *(byte **)(lVar4 + -0x4c8) = pbVar23 + (uVar22 ^ 0x895eb7968d31cdfd);
  *pbVar23 = *(byte *)(lVar4 - ((ulonglong)uVar14 ^ 0x5b66c6db)) ^ (byte)DAT_182671670;
  *(byte *)(lVar4 - (uVar31 ^ 0x454f738a)) = (byte)uVar16 ^ 0x89;
  lVar3 = DAT_182671560;
  uVar26 = (ulonglong)DAT_1826716c4;
  *(undefined8 *)(lVar4 - ((ulonglong)DAT_18267156c ^ 0x568944e6)) =
       *(undefined8 *)(lVar4 - ((ulonglong)uVar17 ^ 0xea6f53a));
  uVar22 = (ulonglong)DAT_18267175c;
  *(ulonglong *)(lVar4 + -0x510) =
       *(ulonglong *)(lVar4 - (uVar30 ^ 0xb81db754)) ^ 0xbe842b5688ac3a2e;
  *(undefined8 *)(lVar4 + -0xb58) = *(undefined8 *)(lVar4 + -0x1a0);
  uVar9 = DAT_1826715a0;
  uVar29 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xeeddfe13)) =
       *(ulonglong *)(lVar3 - (uVar29 ^ 0x3d856a0a)) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x538) = uVar22 ^ *(ulonglong *)(lVar3 + -0xb58);
  *(ulonglong *)(lVar3 + -0x238) = *(ulonglong *)(lVar3 + -0xb58) + 1;
  *(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0x4dd8cfa)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0x454f7a50)) ^ uVar22) ^ (byte)DAT_182671680 ^
       (byte)DAT_182671718;
  *(byte *)(lVar3 + -0x54a) = (byte)DAT_182671598 ^ 0xfa;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0xab0) ^ uVar34) = 0xe5;
  *(ulonglong *)(lVar3 + -0x768) =
       (*(ulonglong *)(lVar3 + -0x7e8) ^ uVar26) + (CONCAT44(uVar25,uVar10) ^ 0x687f4f45454f7f69);
  lVar4 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b0 ^ 0x895eb07e)) ^ uVar26) =
       *(byte *)(lVar3 - (uVar35 ^ 0xbebfcf80)) ^ (byte)DAT_182671680;
  bVar18 = (byte)DAT_1826718c4;
  uVar7 = DAT_182671880;
  uVar24 = (ulonglong)DAT_182671880;
  *(undefined1 *)(lVar4 + -0x549) = 0xf9;
  *(ulonglong *)(lVar4 + -0x600) =
       (CONCAT44(uVar13,uVar5) ^ 0xee6370f0bb94dd7) - (CONCAT44(uVar15,uVar28) ^ 0xf37a3f8cca56393e)
  ;
  *(undefined8 *)(lVar4 + -0x7f0) = *(undefined8 *)(lVar4 - ((ulonglong)uVar17 ^ 0xea6f69a));
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267156c ^ 0x56894226)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x3d856dd2)) >>
       ((byte)*(undefined8 *)(lVar4 + -0xa88) & 0x3f);
  uVar9 = DAT_1826715b4;
  *(undefined8 *)(lVar4 + -0xcf0) = *(undefined8 *)(lVar4 - (uVar33 ^ 0x4dd8b8b));
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x5b66cff1)) =
       (CONCAT44(uVar6,uVar12) ^ 0x7001192b24f1197c) >> (((byte)uVar11 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar4 + -0x8e8) = uVar24 ^ *(ulonglong *)(lVar4 + -0x7f0);
  uVar22 = (ulonglong)DAT_1826717e8;
  uVar26 = (ulonglong)DAT_1826717e8 ^ *(ulonglong *)(lVar4 + -0xcf0);
  *(ulonglong *)(lVar4 + -0x4b8) = uVar26;
  pbVar23 = (byte *)(uVar26 ^ uVar22);
  *(byte **)(lVar4 + -0xa70) = pbVar23 + (CONCAT44(uVar10,DAT_18267157c) ^ 0x454f7f68c77202cd);
  *(longlong *)(lVar4 + -0x318) = 0x85dafbdbebf9da2 << (((byte)uVar17 ^ 0xe0) & 0x3f);
  *(byte *)(lVar4 + -0x8b2) = *pbVar23 ^ bVar18 ^ (byte)DAT_182671718;
  uVar6 = DAT_182671580;
  uVar22 = (ulonglong)DAT_18267182c;
  bVar19 = (byte)DAT_1826715a4;
  uVar26 = CONCAT44(uVar11,DAT_182671580);
  *(byte *)(lVar4 + -0x6c1) = (byte)uVar13 ^ 0x55;
  *(byte *)(*(ulonglong *)(lVar4 + -0x6d8) ^ uVar22) = bVar19 ^ 0xc6;
  *(ulonglong *)(lVar4 + -0xc08) = (uVar26 ^ 0x377031066277a48c) - *(longlong *)(lVar4 + -0x628);
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar8,uVar6) ^ 0xc77202ccee94f1eb) +
       ((ulonglong)uVar7 ^ *(ulonglong *)(lVar4 + -0x8e8));
  *(longlong *)(lVar4 - ((ulonglong)DAT_1826715b0 ^ 0x895ebf0e)) =
       0xf5a5e0aa59bf3ce << (((byte)uVar15 ^ 0xe8) & 0x3f);
  bVar19 = (byte)DAT_18267159c;
  *(byte *)(uVar24 ^ *(ulonglong *)(lVar4 + -0x8e8)) = bVar18 ^ *(byte *)(lVar4 + -0x8b2);
  uVar7 = DAT_1826715ac;
  uVar22 = *(ulonglong *)(lVar4 + -0xa70);
  *(byte *)(lVar4 + -0x8b2) = bVar19 ^ 0x4d;
  *(ulonglong *)(lVar4 + -0xd30) = *(ulonglong *)(lVar4 + -0x118);
  *(ulonglong *)(lVar4 + -0x340) = uVar22;
  uVar24 = (ulonglong)DAT_182671674;
  *(ulonglong *)(lVar4 + -0x800) = (CONCAT44(uVar7,uVar7) ^ 0xdaa47b96ddaedb81) + 0x64afd0c7d7eaaaa5
  ;
  uVar26 = (ulonglong)DAT_182671668;
  *(ulonglong *)(lVar4 + -0xc60) = uVar22 ^ uVar24;
  *(ulonglong *)(lVar4 + -0xca8) = uVar26 ^ *(ulonglong *)(lVar4 + -0x118);
  *(ulonglong *)(lVar4 + -0x960) = (CONCAT44(uVar25,uVar6) ^ 0x687f4f45ee94f1eb) + uVar22;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x3d856a6a)) =
       CONCAT44(uVar5,uVar7) ^ 0x403016a00184b04 | 0xc804dc85dd61b4fb;
  uVar5 = DAT_182671598;
  *(byte *)(lVar4 + -0x9cc) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar4 + -0xc60)) ^ (byte)DAT_182671690 ^
       (byte)DAT_182671718;
  *(byte *)(lVar4 + -0x42a) = (byte)uVar9 ^ 0xc4;
  uVar22 = CONCAT44(DAT_18267156c,uVar15);
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x8c31c5c0)) ^ (ulonglong)DAT_182671780) =
       (byte)uVar5 ^ 1;
  lVar3 = *(longlong *)(lVar4 + -0x638);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar28) * 4) = uVar20;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x7e3e793e)) = lVar3 - (uVar22 ^ 0xfcf19a65a6d12d45);
  return;
}



############ FUN_ 180ea29c0 size=4426 ############

void FUN_180ea29c0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  byte bVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  byte *pbVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  byte *pbVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  byte local_50;
  
  uVar7 = DAT_1826716d0;
  uVar8 = DAT_182671588;
  uVar14 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar23 = (ulonglong)DAT_182671588;
  uVar35 = DAT_182671588 * DAT_18267156c;
  uVar34 = (ulonglong)DAT_18267156c;
  uVar2 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_18267156c ^ 0xf341904a) + (longlong)DAT_182671b8c);
  uVar11 = *(uint *)(&DAT_182611e80 + DAT_182671b8c) ^ DAT_182671588;
  uVar15 = *(uint *)(DAT_182671560 + -0x374) ^ DAT_182671650;
  uVar18 = CONCAT44(uVar35,DAT_18267156c);
  uVar33 = (ulonglong)uVar35;
  uVar16 = (ulonglong)DAT_18267156c;
  uVar29 = (*(uint *)(DAT_182671560 - (uVar23 ^ 0x70ee0444)) ^ DAT_182671778) &
           *(uint *)(DAT_182671560 + 0x28);
  DAT_1826715b4 = uVar35;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (uVar18 ^ 0xb5143f286f9a75e0) >> ((byte)*(undefined8 *)(DAT_182671560 + -0x3f0) & 0x3f);
  *(uint *)(lVar3 + -0x678) = uVar29 ^ uVar7;
  uVar27 = (ulonglong)DAT_1826715bc;
  *(uint *)(lVar3 - (uVar16 ^ 0xf341943e)) = (uVar15 | uVar29) ^ DAT_18267184c;
  *(uint *)(*(ulonglong *)(lVar3 + -0x858) ^ (ulonglong)DAT_182671738) =
       *(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0x101f1c7c)) ^ DAT_1826717c0 ^ DAT_18267184c;
  *(ulonglong *)(lVar3 + -0x740) =
       (CONCAT44(uVar35,uVar8) ^ 0x101f180070ee0c00) * 0x10 + *(longlong *)(lVar3 + -0x9c8) + 4 ^
       uVar27;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar14 ^ 0xf341998a)) = 0x59c776f2b30cb06f;
  puVar19 = (ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x70ee0a28));
  *(ulonglong *)(lVar3 + -0x318) =
       0xbd8b04505c6c699 >> (((byte)DAT_1826718d4 ^ (byte)*puVar19) & 0x3f);
  uVar12 = DAT_182671798;
  *(uint *)(lVar3 - (uVar33 ^ 0x101f1110)) =
       *(uint *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x70ee0b40)) ^ uVar27) ^ DAT_182671798 ^
       DAT_1826717c0;
  uVar16 = (ulonglong)DAT_182671794;
  uVar15 = (*(uint *)(lVar3 + -0x844) ^ DAT_182671778) & (uVar8 ^ 0x70ee0c04) ^ DAT_18267180c;
  uVar29 = (*(uint *)(lVar3 - ((ulonglong)uVar14 ^ 0xf3419952)) ^ uVar12) &
           (*(uint *)(lVar3 + -0x968) ^ DAT_1826718a8);
  *(uint *)(lVar3 + -0x968) = uVar15;
  uVar7 = DAT_1826717c0;
  uVar15 = (uVar15 ^ DAT_18267180c | uVar29) ^ DAT_182671760;
  *(uint *)(lVar3 + -0x640) = uVar15;
  uVar15 = uVar15 ^ DAT_182671760;
  *(ulonglong *)(lVar3 + -0x400) =
       (CONCAT44(uVar14,uVar8) ^ 0xba1c843993df96e4) + (uVar18 ^ 0x589aa5d40641b95e);
  *(uint *)(lVar3 + -0x3c8) = (uVar14 ^ 0xdc00208d) + uVar29;
  *(uint *)(*(ulonglong *)(lVar3 + -0x740) ^ uVar27) = uVar15 ^ uVar7;
  bVar4 = (byte)DAT_182671770;
  uVar14 = (*(uint *)(lVar3 + -0x774) ^ DAT_1826718c0) & (*(uint *)(lVar3 + -0x8c) ^ DAT_1826716fc)
           ^ DAT_1826716b0;
  *(ulonglong *)(lVar3 + -0x8f8) = uVar16 ^ *(ulonglong *)(lVar3 + -3000);
  *(uint *)(lVar3 + -0x964) = uVar14;
  bVar10 = *(byte *)(*(ulonglong *)(lVar3 - (uVar33 ^ 0x101f10f8)) ^ uVar16) ^ bVar4 ^ (byte)uVar7;
  *(byte *)(lVar3 - (uVar34 ^ 0xf341924b)) = bVar10;
  uVar14 = DAT_1826717c0;
  uVar15 = DAT_1826715a4;
  uVar6 = DAT_182671584;
  uVar16 = (ulonglong)DAT_1826717fc;
  uVar21 = (ulonglong)DAT_1826715a4;
  uVar31 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xf34193b2)) = (bVar10 ^ bVar4) ^ uVar31;
  puVar1 = (ulonglong *)(lVar3 + -0xc80);
  *(ulonglong *)(lVar3 + -0x110) =
       *(longlong *)(lVar3 + -0x400) - (CONCAT44(uVar6,DAT_182671574) ^ 0x130ab706758ca526);
  bVar4 = (byte)DAT_182671724;
  *puVar1 = (CONCAT44(uVar8,uVar35) ^ 0x70ee0c00101f1801) + *(longlong *)(lVar3 + -3000) ^ uVar16;
  uVar9 = DAT_18267189c;
  bVar17 = (byte)uVar14;
  bVar10 = *(byte *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0x70ee0080)) ^ uVar16) ^ bVar4 ^ bVar17;
  *(byte *)(lVar3 + -0x5e9) = bVar10;
  uVar6 = DAT_1826715f8;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x628) = (bVar10 ^ bVar4) ^ uVar27;
  uVar14 = DAT_18267157c;
  uVar18 = CONCAT44(uVar6,uVar6);
  uVar16 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xeff8fd6d)) =
       (uVar27 ^ *puVar19) << (((byte)DAT_1826715ac ^ 0x25) & 0x3f) ^ uVar18;
  uVar27 = uVar18 ^ *(ulonglong *)(lVar3 + -0x318) | uVar31 ^ *(ulonglong *)(lVar3 + -0x3f0);
  *(ulonglong *)(lVar3 + -0x400) = uVar27 ^ CONCAT44(DAT_182671630,DAT_182671630);
  bVar4 = (byte)DAT_1826716cc;
  uVar7 = DAT_182671580;
  uVar34 = (ulonglong)DAT_182671580;
  pbVar13 = (byte *)((CONCAT44(uVar35,uVar14) ^ 0x101f1800118e120d) + *(longlong *)(lVar3 + -3000));
  *(ulonglong *)(lVar3 + -0x900) = (ulonglong)pbVar13 ^ (ulonglong)DAT_18267182c;
  *(byte *)(lVar3 + -0x642) = *pbVar13 ^ bVar4 ^ bVar17;
  uVar29 = DAT_182671718;
  uVar32 = (ulonglong)(*(byte *)(lVar3 - (uVar16 ^ 0x118e144d)) ^ bVar4);
  *(ulonglong *)(lVar3 + -0x628) = uVar32 ^ CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar31 = (ulonglong)DAT_1826716f8;
  uVar32 = uVar32 << (((byte)uVar15 ^ 0x65) & 0x3f);
  uVar18 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(lVar3 + -0x318) = uVar32 ^ CONCAT44(uVar29,uVar29);
  uVar16 = CONCAT44(DAT_182671598,DAT_182671578);
  *(ulonglong *)(lVar3 + -0x3f0) = (uVar32 | uVar27) ^ uVar18;
  bVar4 = (byte)DAT_1826716e0;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xee71e848)) =
       (uVar16 ^ 0xffffffff085048e3) + *(longlong *)(lVar3 + -3000) ^ uVar31;
  *(byte *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0xedf0ed34)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0x70ee09b8)) ^ uVar31) ^ bVar4 ^ bVar17;
  uVar29 = DAT_1826715b0;
  uVar27 = (ulonglong)DAT_1826715b0;
  uVar31 = (ulonglong)(*(byte *)(lVar3 + -0x345) ^ bVar4);
  uVar16 = CONCAT44(DAT_1826715b0,uVar35);
  *(ulonglong *)(lVar3 + -0x400) = uVar31 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar16 ^ 0x5259c278e290671a) - (CONCAT44(uVar15,uVar35) ^ 0x8e94f9492fe2705b);
  uVar6 = DAT_1826718ac;
  lVar3 = DAT_182671560;
  uVar12 = uVar35 & 3;
  if (uVar12 < 2) {
    uVar20 = uVar29;
    if (uVar12 == 0) {
      uVar20 = uVar35;
    }
  }
  else {
    uVar20 = uVar15;
    if (uVar12 < 3) {
      uVar20 = uVar7;
    }
  }
  uVar36 = (ulonglong)uVar20;
  uVar16 = *(ulonglong *)(DAT_182671560 + -0x3f0);
  uVar28 = CONCAT44(DAT_182671830,DAT_182671830);
  uVar24 = uVar31 ^ CONCAT44(uVar35,uVar14) ^ 0xfc180c304e4a0f9d;
  DAT_18267158c = uVar20;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar24;
  uVar32 = (ulonglong)DAT_1826715fc;
  bVar4 = (byte)uVar20;
  uVar31 = uVar31 << ((bVar4 ^ 0x18) & 0x3f);
  *(ulonglong *)(lVar3 + -0x318) = uVar31 ^ uVar28;
  bVar10 = (byte)DAT_1826717ac;
  uVar31 = uVar18 ^ uVar16 | uVar31;
  *(ulonglong *)(lVar3 + -0x400) = uVar31 ^ CONCAT44(uVar6,uVar6);
  pbVar22 = (byte *)((CONCAT44(uVar15,uVar29) ^ 0xeff8fe752b4ce658) + *(longlong *)(lVar3 + -3000));
  *(ulonglong *)(lVar3 + -0x8f8) = (ulonglong)pbVar22 ^ uVar32;
  uVar14 = DAT_18267157c;
  *(byte *)(lVar3 + -0x31) = bVar10 ^ bVar17 ^ *pbVar22;
  uVar6 = DAT_182671850;
  *(ulonglong *)(lVar3 + -0x3f0) = uVar24 - (CONCAT44(uVar35,uVar29) ^ 0x5299e875e0370228);
  uVar18 = (ulonglong)(*(byte *)(lVar3 - (uVar33 ^ 0x101f1831)) ^ bVar10);
  *(ulonglong *)(lVar3 + -0x318) = uVar18 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182671788;
  *(ulonglong *)(lVar3 + -0x628) = CONCAT44(uVar14,uVar29) ^ 0xce559335bf6d862c | uVar31;
  uVar16 = CONCAT44(uVar6,uVar6);
  uVar32 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar3 + -0x3f0) = uVar18 << ((bVar4 ^ 0x20) & 0x3f) ^ uVar16;
  uVar31 = *(ulonglong *)(lVar3 - (uVar34 ^ 0xee71ee00)) ^ uVar16 | uVar31;
  *(uint *)(lVar3 + -0x3c8) = (DAT_1826715b0 ^ 0x22bbc089) + (DAT_18267158c ^ 0xe8377c2);
  *(ulonglong *)(lVar3 + -0x628) = uVar31 ^ uVar32;
  uVar12 = DAT_1826717c0;
  pbVar13 = (byte *)((CONCAT44(uVar15,uVar15) ^ 0xeff8fe75eff8fe70) + *(longlong *)(lVar3 + -3000));
  *puVar1 = (ulonglong)pbVar13 ^ (ulonglong)DAT_1826717fc;
  bVar10 = (byte)DAT_182671660;
  bVar17 = (byte)uVar12;
  *(byte *)(lVar3 + -0x51a) = *pbVar13 ^ (byte)DAT_182671660 ^ bVar17;
  lVar5 = DAT_182671560;
  *(byte *)(lVar3 + -0x331) = bVar17 ^ *pbVar22;
  uVar18 = (ulonglong)(*(byte *)(lVar5 - (uVar27 ^ 0x2b4ce346)) ^ bVar10) << ((bVar4 ^ 0x28) & 0x3f)
  ;
  *(ulonglong *)(lVar5 + -0x3f0) =
       CONCAT44(uVar35,uVar7) ^ 0xdc16e8893bd4e95b | *(ulonglong *)(lVar5 + -0x110);
  uVar6 = DAT_1826717a4;
  *(ulonglong *)(lVar5 + -0x400) = uVar18 ^ uVar16;
  uVar16 = (ulonglong)DAT_182671634;
  uVar24 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 + -0x318) = (uVar31 | uVar18) ^ uVar24;
  uVar12 = DAT_182671760;
  uVar30 = DAT_182671760 & 0xff;
  pbVar13 = (byte *)(*(longlong *)(lVar5 - ((ulonglong)DAT_18267157c ^ 0x118e19b7)) +
                    (CONCAT44(uVar7,uVar15) ^ 0xee71edf0eff8fe73));
  *(ulonglong *)(lVar5 + -0x900) = (ulonglong)pbVar13 ^ uVar16;
  *(byte *)(lVar5 + -0x5a2) = *pbVar13 ^ (byte)uVar12 ^ bVar17;
  uVar6 = DAT_1826717b0;
  *(ulonglong *)(lVar5 + -0x110) =
       (CONCAT44(uVar29,uVar7) ^ 0xa0dd4b7f35472580) << ((bVar4 ^ 8) & 0x3f);
  uVar32 = CONCAT44(uVar6,uVar6);
  puVar25 = (ulonglong *)(lVar5 - (uVar33 ^ 0x101f1bf0));
  uVar31 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *puVar25 = (ulonglong)uVar30 ^ (ulonglong)*(byte *)(lVar5 + -0x5a2) ^ uVar32;
  bVar10 = (byte)DAT_1826718bc;
  uVar6 = DAT_1826715f4;
  uVar18 = (uVar32 ^ *(ulonglong *)(lVar5 + -0x3f0)) << ((bVar4 ^ 0x30) & 0x3f);
  uVar16 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar5 + -0x628) = uVar18 ^ uVar31;
  uVar31 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 - (uVar16 ^ 0x118e131f)) =
       uVar18 + (uVar24 ^ *(ulonglong *)(lVar5 + -0x318)) ^ uVar31;
  uVar16 = (ulonglong)DAT_1826717dc;
  local_50 = (byte)uVar35;
  *(ulonglong *)(lVar5 + -0x5b8) =
       (CONCAT44(uVar29,uVar15) ^ 0x2b4ce65ceff8fe72) + *(longlong *)(lVar5 + -3000) ^ uVar16;
  *(ulonglong *)(lVar5 + -0x400) = 0xd44239459b556815 >> ((local_50 ^ 0x34) & 0x3f);
  uVar12 = DAT_18267157c;
  *(byte *)(lVar5 - ((ulonglong)DAT_18267157c ^ 0x118e1bf6)) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar21 ^ 0xeff8fbcd)) ^ uVar16) ^ bVar10 ^
       (byte)DAT_1826717c0;
  uVar6 = DAT_1826717a8;
  *(ulonglong *)(lVar5 + -0x318) =
       (*(ulonglong *)(lVar5 - (uVar36 ^ 0x101f1bf0)) ^ uVar32) << (((byte)uVar12 ^ 4) & 0x3f);
  uVar16 = CONCAT44(uVar6,uVar6);
  uVar12 = DAT_1826715b0 ^ 0xb69c4966;
  *(ulonglong *)(lVar5 - (uVar36 ^ 0x101f1e28)) = (*(byte *)(lVar5 + -0x9f9) ^ bVar10) ^ uVar16;
  *(uint *)(lVar5 - (uVar36 ^ 0x101f1f74)) = uVar12 << ((local_50 ^ 0x13) & 0x1f);
  uVar30 = DAT_18267182c;
  uVar18 = (uVar16 ^ *(ulonglong *)(lVar5 + -0x628)) << (((byte)uVar15 ^ 0x4d) & 0x3f);
  *(ulonglong *)(lVar5 + -0x400) = uVar18 ^ CONCAT44(DAT_182671818,DAT_182671818);
  uVar12 = DAT_18267157c;
  uVar16 = CONCAT44(uVar30,uVar30);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_18267157c ^ 0x118e11ff)) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0xee71ece0)) ^ uVar31) + uVar18 ^ uVar16;
  puVar19 = *(ulonglong **)(lVar5 - (uVar36 ^ 0x101f1080));
  *(ulonglong *)(lVar5 + -0x368) = (ulonglong)puVar19 ^ CONCAT44(DAT_1826717d0,DAT_1826717d0);
  *(ulonglong *)(lVar5 + -0x318) = CONCAT44(uVar7,uVar7) ^ 0x5c8009449dc2d358;
  *puVar19 = CONCAT44(DAT_1826717c8,DAT_1826717c8) ^ uVar16 ^ *puVar25;
  uVar16 = (ulonglong)DAT_18267187c;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xee71ebd8)) =
       CONCAT44(uVar29,uVar20) ^ 0xc03700340081 | 0xb0db3b88720bc762;
  lVar3 = *(longlong *)(lVar5 + -3000);
  pbVar13 = (byte *)((CONCAT44(uVar20,uVar7) ^ 0x101f1800ee71edf8) + lVar3);
  *puVar1 = (ulonglong)pbVar13 ^ uVar16;
  uVar30 = DAT_1826717c0;
  bVar4 = (byte)DAT_182671628;
  *(byte *)(lVar5 + -0xd71) = *pbVar13 ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671628;
  uVar34 = CONCAT44(uVar30,uVar30);
  uVar16 = (ulonglong)DAT_182671864;
  *(ulonglong *)(lVar5 + -0x110) =
       (*(byte *)(lVar5 - ((ulonglong)uVar12 ^ 0x118e1f7e)) ^ bVar4) ^ uVar34;
  uVar30 = DAT_182671718;
  uVar26 = DAT_182671718 & 0xff;
  *(ulonglong *)(lVar5 + -0x8f8) = (CONCAT44(uVar29,uVar15) ^ 0x2b4ce65ceff8fe7c) + lVar3 ^ uVar16;
  *(ulonglong *)(lVar5 + -0x400) =
       (CONCAT44(uVar20,uVar35) ^ 0x5f6bbd39dc2b48d2) + 0x95f6423afd76c640;
  bVar10 = (byte)DAT_1826717c0;
  *(byte *)(lVar5 - (uVar27 ^ 0x2b4ce3e5)) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar21 ^ 0xeff8f68d)) ^ uVar16) ^ bVar10 ^ (byte)uVar30;
  uVar31 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar16 = CONCAT44(uVar7,DAT_1826715a8);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671578 ^ 0x8504bf8)) =
       (ulonglong)*(byte *)(lVar5 + -0x5b9) ^ (ulonglong)uVar26 ^ uVar31;
  uVar30 = DAT_18267157c;
  uVar6 = DAT_182671570;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0x101f11e8)) =
       uVar16 ^ 0xe387d9c7903c6b47 | CONCAT44(uVar35,uVar7) ^ 0xd917e41d40d819f8;
  puVar19 = (ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x118e1117));
  uVar18 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar30 ^ 0x118e1427)) =
       (*puVar19 ^ uVar31) << (((byte)uVar6 ^ 0xf0) & 0x3f) ^ uVar18;
  bVar4 = (byte)DAT_182671704;
  uVar31 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar16 = CONCAT44(DAT_18267159c,uVar29);
  *(ulonglong *)(lVar5 + -0x400) =
       (uVar34 ^ *(ulonglong *)(lVar5 + -0x110) | uVar18 ^ *(ulonglong *)(lVar5 + -0x628)) ^ uVar31;
  uVar32 = (ulonglong)DAT_182671760;
  pbVar13 = (byte *)((uVar16 ^ 0xe04850082b4ce656) + *(longlong *)(lVar5 + -3000));
  *(ulonglong *)(lVar5 + -0x900) = (ulonglong)pbVar13 ^ uVar32;
  *(byte *)(lVar5 - (uVar27 ^ 0x2b4cea1e)) = *pbVar13 ^ bVar10 ^ bVar4;
  uVar6 = DAT_182671668;
  uVar16 = (ulonglong)(*(byte *)(lVar5 + -0xc42) ^ bVar4);
  *(ulonglong *)(lVar5 + -0x9e8) = uVar16 ^ CONCAT44(DAT_1826715c8,DAT_1826715c8);
  uVar9 = DAT_1826716bc;
  uVar18 = CONCAT44(uVar6,uVar6);
  *puVar19 = uVar16 << (((byte)uVar30 ^ 0x1f) & 0x3f) ^ uVar18;
  bVar4 = (byte)DAT_1826716e4;
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x110) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x2b4ce544)) ^ uVar18 |
       *(ulonglong *)(lVar5 + -0x400) ^ uVar31) ^ uVar34;
  uVar16 = (ulonglong)DAT_182671758;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x2b4ce3e4)) =
       (CONCAT44(uVar14,uVar20) ^ 0x118e120f101f180b) + *(longlong *)(lVar5 + -3000) ^ uVar16;
  uVar6 = DAT_1826717b4;
  *(byte *)(lVar5 + -0x581) = *(byte *)(*(ulonglong *)(lVar5 + -0x5b8) ^ uVar16) ^ bVar10 ^ bVar4;
  uVar16 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 + -0x628) =
       (CONCAT44(uVar35,uVar35) ^ 0x2f7c8a8b0f7690c1) << (((byte)uVar8 ^ 0x35) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0xeff8f79d)) = (*(byte *)(lVar5 + -0x581) ^ bVar4) ^ uVar16;
  uVar18 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0xeff8fa75)) =
       (*(ulonglong *)(lVar5 + -0x9e8) ^ uVar16) << 0x18 ^ uVar18;
  *(byte *)(lVar5 + -0x28a) = *(byte *)(*(ulonglong *)(lVar5 + -0x900) ^ uVar32) ^ bVar10;
  uVar16 = (ulonglong)DAT_18267160c;
  *(ulonglong *)(lVar5 + -0x318) =
       (*(ulonglong *)(lVar5 + -0x110) ^ uVar34 | *(ulonglong *)(lVar5 + -0x400) ^ uVar18) ^
       CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *puVar1 = *(longlong *)(lVar5 - (uVar23 ^ 0x70ee07b8)) +
            (CONCAT44(uVar7,uVar15) ^ 0xee71edf0eff8fe79) ^ uVar16;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar2 ^ uVar35;
  return;
}



############ FUN_ 180eda4f0 size=4292 ############

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

void FUN_180eda4f0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint *puVar5;
  byte *pbVar6;
  uint *puVar7;
  uint *puVar8;
  uint uVar9;
  longlong lVar10;
  longlong lVar11;
  longlong lVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint *puVar21;
  uint uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  uint *puVar26;
  ulonglong uVar27;
  byte *pbVar28;
  uint *puVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  uint uVar39;
  uint uVar40;
  uint uVar41;
  uint uVar42;
  ulonglong uVar44;
  uint uVar45;
  byte local_res18;
  ulonglong uVar43;
  
  uVar40 = DAT_182671818;
  uVar35 = DAT_182671594;
  uVar39 = DAT_182671590;
  uVar36 = DAT_182671584;
  uVar33 = DAT_182671578;
  lVar10 = DAT_182671560;
  uVar19 = (ulonglong)DAT_182671578;
  uVar27 = (ulonglong)DAT_182671578;
  uVar45 = DAT_1826715a0 & DAT_182671578;
  uVar25 = (ulonglong)DAT_182671584;
  uVar44 = (ulonglong)DAT_182671590;
  uVar30 = DAT_18267157c | DAT_182671584;
  uVar41 = DAT_182671594 << 0x10 | DAT_182671594 >> 0x10;
  uVar43 = (ulonglong)uVar41;
  DAT_1826715a8 = ~DAT_182671590;
  uVar17 = *(uint *)(&DAT_182611e70 + (uVar19 ^ 0xa212408) + (longlong)DAT_182671944) ^
           DAT_1826715a0;
  uVar9 = *(uint *)(&DAT_182611e80 + DAT_182671944);
  puVar1 = (uint *)(DAT_182671560 + -0x374);
  DAT_182671574 = uVar30;
  DAT_182671588 = uVar45;
  DAT_1826715b0 = uVar41;
  *(ulonglong *)(DAT_182671560 + -0x3b8) =
       CONCAT44(DAT_182671590,DAT_1826715a8) ^ *(ulonglong *)(DAT_182671560 + -0xa0) ^
       0xaaf2e52571dc37c4;
  *(uint *)(lVar10 - ((ulonglong)uVar36 ^ 0x13aca0b6)) =
       (*puVar1 ^ DAT_18267173c) - (*(uint *)(lVar10 + -0x27c) ^ DAT_1826717f4) ^ uVar40;
  puVar2 = (uint *)(lVar10 + -0x47c);
  uVar20 = (ulonglong)uVar35;
  uVar37 = (*(uint *)(lVar10 + -0x344) ^ DAT_182671880) * (*puVar2 ^ uVar40) ^ DAT_18267182c;
  *(uint *)(lVar10 + -0x968) = uVar37;
  uVar34 = DAT_182671734;
  uVar37 = uVar37 ^ DAT_18267182c;
  uVar32 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar10 + -0x6b8) =
       *(longlong *)(lVar10 - (uVar20 ^ 0x999649be)) -
       (CONCAT44(uVar30,uVar41) ^ 0x632d56112e666e55);
  uVar18 = DAT_1826715a8;
  puVar26 = (uint *)(lVar10 + -0x504);
  uVar22 = (*(uint *)(lVar10 - (uVar32 ^ 0x6a3a5dea)) ^ uVar34) * (uVar39 ^ 0x4c807335) ^
           DAT_18267165c;
  *puVar26 = uVar22;
  *(uint *)(lVar10 + -0x910) = (uVar22 ^ DAT_18267165c) + uVar37 ^ DAT_1826717a4;
  uVar22 = DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0x4bce906e)) =
       (CONCAT44(uVar18,uVar33) ^ 0x7480b0114dbdf4d3) +
       (CONCAT44(uVar39,uVar36) ^ 0x12e490cf1b0c0393);
  uVar32 = (ulonglong)uVar45;
  puVar3 = (uint *)(DAT_182671560 + -0x8c);
  puVar21 = (uint *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0x1f613f6a));
  *puVar3 = (*(uint *)(DAT_182671560 - ((ulonglong)uVar45 ^ 0xa212d10)) ^ DAT_1826717a4) <<
            (((byte)uVar30 ^ 0xd7) & 0x1f) ^ _DAT_1826715dc;
  uVar37 = DAT_182671608;
  lVar10 = DAT_182671560;
  uVar33 = (*puVar21 ^ DAT_1826717a4) >> (((byte)uVar35 ^ 0xdd) & 0x1f);
  puVar23 = (ulonglong *)(DAT_182671560 - (uVar27 ^ 0xa212e88));
  *(uint *)(DAT_182671560 + -0x964) = uVar33 ^ uVar34;
  *(ulonglong *)(lVar10 + -0x2a0) = *puVar23 ^ CONCAT44(uVar22,uVar30) ^ 0xf32a91a862717743;
  puVar21 = (uint *)(lVar10 + -0x3d4);
  *puVar21 = (*(uint *)(lVar10 - ((ulonglong)uVar18 ^ 0xb37f8c45)) ^ _DAT_1826715dc | uVar33) ^
             uVar37;
  uVar33 = DAT_18267157c;
  *(uint *)(lVar10 - ((ulonglong)DAT_18267157c ^ 0x6a3a53d6)) =
       (*(uint *)(lVar10 - (uVar25 ^ 0x13aca702)) ^ DAT_182671624) +
       (*(uint *)(lVar10 + -0x344) ^ DAT_182671880) ^ DAT_182671794;
  puVar4 = (uint *)(lVar10 + -0x874);
  puVar5 = (uint *)(lVar10 + -0x754);
  uVar34 = *(uint *)(lVar10 + -0x844) ^ DAT_1826715cc ^ DAT_182671794;
  *puVar5 = uVar34;
  uVar18 = DAT_182671600;
  uVar34 = uVar34 ^ DAT_182671600 ^ DAT_1826715cc;
  *puVar4 = *puVar21 ^ DAT_1826717cc ^ uVar37;
  *(uint *)(lVar10 - ((ulonglong)uVar22 ^ 0x1f613552)) = uVar34;
  uVar34 = *puVar4 ^ DAT_1826718d4 ^ DAT_1826717cc;
  *(ulonglong *)(lVar10 + -0x6d0) =
       (CONCAT44(uVar39,uVar45) ^ 0x969d6ab482cc5081) >> (((byte)uVar35 ^ 0xf3) & 0x3f);
  uVar31 = (ulonglong)DAT_1826716fc;
  *puVar1 = uVar34;
  uVar38 = DAT_18267179c;
  uVar24 = DAT_18267179c & 0xff;
  *(ulonglong *)(lVar10 + -0xc80) =
       (CONCAT44(uVar36,uVar39) ^ 0x13aca4ca4c807338) + *(longlong *)(lVar10 + -0x8f0) ^ uVar31;
  *(ulonglong *)(lVar10 + -0x898) =
       (CONCAT44(uVar33,uVar41) ^ 0x5006c42a161177db) >>
       ((byte)*(undefined8 *)(lVar10 + -0x548) & 0x3f);
  uVar34 = DAT_18267175c;
  uVar27 = (ulonglong)DAT_1826715a8;
  bVar15 = *(byte *)(*(ulonglong *)(lVar10 - ((ulonglong)uVar30 ^ 0x7bbef35a)) ^ uVar31) ^
           (byte)uVar38 ^ (byte)DAT_182671694;
  pbVar6 = (byte *)(lVar10 + -0xc41);
  *pbVar6 = bVar15;
  uVar24 = bVar15 ^ uVar24;
  *(uint *)(lVar10 + -0x27c) = uVar24 ^ uVar34;
  uVar33 = DAT_18267159c;
  puVar8 = (uint *)(lVar10 + -0x678);
  uVar30 = DAT_18267159c ^ uVar45;
  uVar31 = (ulonglong)DAT_18267159c;
  uVar24 = uVar24 << 0x11 ^ DAT_182671848;
  uVar38 = (*(uint *)(lVar10 - (uVar27 ^ 0xb37f8fbd)) ^ DAT_1826718d4) + (uVar45 ^ 0x3d602d5) ^
           DAT_1826718b8;
  DAT_18267158c = uVar30;
  *puVar8 = uVar24;
  uVar24 = uVar24 ^ DAT_182671848;
  *puVar2 = uVar38;
  uVar39 = DAT_182671708;
  *(uint *)(lVar10 + -0x968) = (uVar38 ^ DAT_1826718b8) - uVar24 ^ DAT_182671770;
  lVar11 = DAT_182671560;
  *puVar26 = (*(uint *)(lVar10 + -0x328) ^ uVar18) * 0x49dfc70d;
  *(uint *)(lVar11 - (uVar31 ^ 0x8a25e510)) =
       (*(uint *)(lVar11 - (uVar32 ^ 0xa212d68)) ^ DAT_182671770) *
       (*(uint *)(lVar11 - ((ulonglong)uVar30 ^ 0x8004cb28)) ^ uVar18) ^ DAT_182671720;
  lVar12 = DAT_182671560;
  uVar34 = (*(uint *)(lVar11 + -0x27c) ^ uVar34) * (uVar30 ^ 0x8004c80e) ^ DAT_182671824;
  *puVar3 = uVar34;
  uVar34 = uVar34 ^ DAT_182671824;
  *(ulonglong *)(lVar12 + -0xc08) = *(ulonglong *)(lVar12 + -0x8a8) ^ 0x51a2187a34c1c2ad;
  uVar34 = uVar34 + (*(uint *)(lVar12 + -0x910) ^ DAT_182671720);
  *(uint *)(lVar12 + -0x964) = uVar34 ^ uVar39;
  *(uint *)(lVar12 + -0x344) = uVar34 * 0x2000 ^ DAT_1826716a8;
  uVar38 = DAT_1826717a0;
  *(uint *)(lVar12 - (uVar32 ^ 0xa212c44)) = uVar34 >> (((byte)uVar45 ^ 0x13) & 0x1f) ^ uVar40;
  *(uint *)(lVar12 - ((ulonglong)uVar33 ^ 0x8a25efd4)) =
       (*(uint *)(lVar12 + -0x844) ^ uVar40 | *(uint *)(lVar12 + -0x344) ^ DAT_1826716a8) ^
       DAT_182671784;
  puVar7 = (uint *)(lVar12 + -0x3c8);
  uVar39 = (*puVar7 ^ DAT_182671624) + (*(uint *)(lVar12 + -0x328) ^ uVar18) ^ DAT_182671768;
  *puVar5 = uVar39;
  uVar39 = uVar39 ^ uVar38 ^ DAT_182671768;
  *(longlong *)(lVar12 + -0x688) =
       0x5d785c2897e9ae58 << (((byte)DAT_1826718c8 ^ *(byte *)(lVar12 + -0x1d8)) & 0x3f);
  *(uint *)(lVar12 - ((ulonglong)uVar30 ^ 0x8004c074)) = uVar39;
  lVar11 = DAT_182671560;
  *puVar1 = *(uint *)(lVar12 - ((ulonglong)uVar30 ^ 0x8004cbd4)) ^ DAT_18267164c ^ DAT_182671784;
  *(ulonglong *)(lVar12 + -0x240) =
       *(ulonglong *)(lVar12 + -0xa60) ^ *(ulonglong *)(lVar12 + -0x600);
  uVar34 = DAT_182671690;
  *puVar2 = *puVar4 ^ DAT_182671690 ^ uVar38;
  *(ulonglong *)(lVar11 - (uVar32 ^ 0xa2121c8)) =
       -0x1d4f69ae050e904f - (CONCAT44(uVar45,uVar33) ^ 0x1ed5234515b518);
  uVar24 = DAT_182671860;
  uVar39 = _DAT_18267161c;
  uVar27 = CONCAT44(uVar30,DAT_1826715a8);
  *puVar8 = *(uint *)(lVar11 - (uVar31 ^ 0x8a25ef74)) ^ DAT_18267164c ^ uVar38;
  pbVar28 = (byte *)((uVar27 ^ 0x8004c800b37f8cd0) +
                     (CONCAT44(uVar33,uVar45) ^ 0x8a25ec000a212400) * 0x20 +
                    *(longlong *)(lVar11 + -0x8f0));
  uVar18 = DAT_1826715a0 ^ 0x395397f;
  *(ulonglong *)(lVar11 + -0xd20) = (ulonglong)pbVar28 ^ (ulonglong)DAT_182671700;
  *puVar26 = uVar18 << 4;
  bVar15 = DAT_182671838;
  *(byte *)(lVar11 - (uVar25 ^ 0x13aca48b)) = *pbVar28 ^ DAT_182671838 ^ (byte)DAT_182671694;
  lVar12 = DAT_182671560;
  uVar40 = (uint)(*(byte *)(lVar11 - (uVar19 ^ 0xa212441)) ^ bVar15);
  *(uint *)(DAT_182671560 + -0x968) = uVar40 ^ uVar39;
  uVar18 = DAT_18267158c;
  uVar38 = (*(uint *)(lVar12 - (uVar32 ^ 0xa212278)) ^ uVar38) + (uVar45 ^ 0x3d602d5);
  bVar15 = (byte)DAT_18267158c;
  *(uint *)(lVar12 + -0x27c) = uVar38 ^ uVar24;
  uVar40 = uVar40 << ((bVar15 ^ 0x11) & 0x1f) ^ DAT_182671850;
  uVar32 = CONCAT44(uVar33,DAT_182671574);
  uVar27 = (ulonglong)DAT_182671574;
  *(uint *)(lVar12 + -0x910) = uVar40;
  uVar38 = uVar38 - (uVar40 ^ DAT_182671850);
  *(ulonglong *)(lVar12 + -0x80) = (uVar32 ^ 0x3a7061efedd6f688) + 0x8049915ad13f9f3f;
  uVar32 = (ulonglong)DAT_18267157c;
  *puVar3 = uVar38 ^ uVar37;
  uVar37 = DAT_1826716f8;
  lVar11 = DAT_182671560;
  uVar33 = (*puVar2 ^ uVar34) * uVar38 ^ _DAT_18267188c;
  *(uint *)(lVar12 + -0x964) = uVar33;
  uVar33 = uVar33 ^ _DAT_18267188c;
  *(uint *)(lVar12 + -0x344) =
       (*(uint *)(lVar12 - (uVar32 ^ 0x6a3a52fa)) ^ uVar39) * (DAT_182671594 ^ 0x99964bd7) ^
       DAT_182671664;
  *(uint *)(lVar12 + -0x844) =
       (*(uint *)(lVar12 - (uVar20 ^ 0x9996488a)) ^ DAT_182671664) + uVar33 ^ uVar37;
  uVar33 = DAT_182671578;
  uVar38 = (*(uint *)(lVar12 - (uVar43 ^ 0x4bce91d2)) ^ uVar37) <<
           (((byte)DAT_182671584 ^ 199) & 0x1f) ^ DAT_1826717f4;
  *(uint *)(lVar12 + -0x328) = uVar38;
  uVar38 = uVar38 ^ DAT_1826717f4;
  uVar33 = (*(uint *)(lVar12 + -0x844) ^ uVar37) >> (((byte)uVar33 ^ 0x13) & 0x1f);
  *puVar5 = uVar33 ^ uVar39;
  puVar29 = (uint *)(lVar12 - (uVar44 ^ 0x4c80774a));
  *puVar21 = (uVar38 | uVar33) ^ DAT_18267179c;
  uVar39 = DAT_182671580;
  *(uint *)(lVar11 - (uVar19 ^ 0xa212c74)) =
       (*(uint *)(lVar11 - (uVar27 ^ 0x7bbefc12)) ^ DAT_182671624) + (*puVar29 ^ uVar34) ^
       DAT_1826716ec;
  uVar33 = *puVar4 ^ DAT_182671834 ^ DAT_1826716ec;
  *puVar1 = uVar33;
  uVar38 = DAT_182671710;
  bVar15 = (byte)DAT_18267162c;
  uVar37 = DAT_1826715a8;
  uVar34 = uVar33 ^ DAT_182671710 ^ DAT_182671834;
  *(ulonglong *)(lVar11 + -0x800) = (ulonglong)(uVar39 >> 0x1a);
  uVar33 = DAT_1826715a0;
  *puVar26 = *puVar21 ^ DAT_1826715d0 ^ DAT_18267179c;
  uVar40 = DAT_182671800;
  *(uint *)(lVar11 - ((ulonglong)uVar18 ^ 0x8004ce78)) = uVar34;
  uVar34 = DAT_1826716d8;
  lVar11 = DAT_182671560;
  uVar42 = *puVar26 ^ uVar40 ^ DAT_1826715d0;
  *(uint *)(DAT_182671560 + -0x27c) = uVar42;
  pbVar28 = (byte *)((CONCAT44(uVar35,uVar33) ^ 0x99964bce1f61367e) +
                     (CONCAT44(uVar45,uVar37) ^ 0xa212400b37f8cc9) * 0x20 +
                    *(longlong *)(lVar11 + -0x8f0));
  *(ulonglong *)(lVar11 + -0x4f0) = (ulonglong)pbVar28 ^ (ulonglong)DAT_182671638;
  bVar16 = *pbVar28 ^ bVar15 ^ (byte)DAT_182671694;
  uVar35 = (uint)(bVar15 ^ bVar16);
  *(uint *)(lVar11 + -0x910) = uVar35 ^ uVar34;
  *pbVar6 = bVar16;
  uVar30 = uVar35 << (((byte)uVar33 ^ 0x6b) & 0x1f) ^ DAT_1826717d4;
  *(ulonglong *)(lVar11 + -0x510) = CONCAT44(uVar22,uVar41) ^ 0x2b60ad31bc2767f;
  uVar33 = *puVar8;
  uVar35 = DAT_1826715b0 ^ 0x4239bf43;
  *(uint *)(lVar11 + -0x968) = uVar30;
  uVar35 = (uVar42 ^ uVar40) + uVar35 ^ DAT_18267184c;
  uVar30 = uVar30 ^ DAT_1826717d4;
  *puVar3 = uVar35;
  uVar30 = (uVar35 ^ DAT_18267184c) - uVar30;
  *(uint *)(lVar11 + -0x964) = uVar30 ^ DAT_182671884;
  uVar22 = DAT_1826716e8;
  uVar35 = DAT_1826715ac;
  uVar19 = (ulonglong)DAT_1826715ac;
  uVar33 = (uVar33 ^ uVar38) * uVar30 ^ DAT_1826716e8;
  *(uint *)(lVar11 + -0x344) = uVar33;
  *(uint *)(lVar11 - ((ulonglong)uVar18 ^ 0x8004c044)) =
       (DAT_182671574 ^ 0xa789c712) >> (((byte)uVar33 ^ (byte)uVar22) & 0x1f);
  bVar15 = (byte)DAT_18267157c;
  uVar37 = (*(uint *)(lVar11 - (uVar43 ^ 0x4bce9086)) ^ uVar34) * (uVar37 ^ 0xb37f8ccd) ^
           DAT_18267168c;
  *(uint *)(lVar11 + -0x328) = uVar37;
  uVar18 = DAT_1826717c0;
  uVar33 = DAT_182671628;
  uVar22 = (uVar22 ^ *(uint *)(lVar11 + -0x344)) + (uVar37 ^ DAT_18267168c);
  *puVar5 = uVar22 ^ DAT_1826717c0;
  *puVar29 = uVar22 << ((bVar15 ^ 0x9f) & 0x1f) ^ uVar33;
  lVar11 = DAT_182671560;
  puVar29 = (uint *)(DAT_182671560 - (uVar25 ^ 0x13aca39e));
  uVar18 = (*puVar29 ^ uVar18) >> 0x13 ^ DAT_182671748;
  *puVar4 = uVar18;
  uVar18 = (uVar33 ^ *puVar2 | uVar18 ^ DAT_182671748) ^ DAT_182671780;
  *puVar21 = uVar18;
  uVar33 = (*puVar8 ^ uVar38) + (*puVar7 ^ DAT_182671624) ^ DAT_182671614;
  *puVar1 = uVar33;
  uVar33 = uVar33 ^ DAT_1826715e8 ^ DAT_182671614;
  uVar18 = uVar18 ^ DAT_1826718a8;
  *(ulonglong *)(lVar11 + -0x9e8) =
       *(ulonglong *)(lVar11 - (uVar19 ^ 0xbb04a543)) | *(ulonglong *)(lVar11 + -0xc08);
  *puVar26 = uVar33;
  uVar14 = DAT_1826715b4;
  uVar33 = uVar33 ^ DAT_1826715e8 ^ _DAT_1826715dc;
  uVar18 = uVar18 ^ DAT_182671780;
  uVar19 = (ulonglong)DAT_182671820;
  *(uint *)(lVar11 + -0x27c) = uVar18;
  uVar18 = uVar18 ^ DAT_182671620;
  *puVar3 = uVar33;
  uVar33 = DAT_18267157c;
  uVar32 = (ulonglong)DAT_18267157c;
  *(uint *)(lVar11 + -0x968) = uVar18 ^ DAT_1826718a8;
  pbVar28 = (byte *)((CONCAT44(uVar14,uVar45) ^ 0xffffffff0a21240f) + *(longlong *)(lVar11 + -0x8f0)
                    );
  *(ulonglong *)(lVar11 + -0xd20) = (ulonglong)pbVar28 ^ uVar19;
  uVar19 = (ulonglong)DAT_182671598;
  *(byte *)(lVar11 + -0x41) = *pbVar28 ^ (byte)uVar24 ^ (byte)DAT_182671694;
  *(ulonglong *)(lVar11 - (uVar32 ^ 0x6a3a5daa)) =
       *(ulonglong *)(lVar11 + -0x600) >> (((byte)uVar33 ^ 0x9e) & 0x3f);
  uVar33 = DAT_1826718a0;
  lVar12 = DAT_182671560;
  uVar18 = (uint)*(byte *)(lVar11 - (uVar19 ^ 0x5b926a7b)) ^ uVar24 & 0xff;
  local_res18 = (byte)uVar36;
  *(uint *)(DAT_182671560 + -0x964) = uVar18 ^ DAT_1826718a0;
  uVar13 = DAT_182671570;
  *(uint *)(lVar12 + -0x844) =
       (*(uint *)(lVar12 + -0x968) ^ DAT_182671620) + (uVar39 ^ 0xff78f61b) ^ DAT_18267166c;
  uVar39 = uVar18 << (((byte)uVar13 ^ 0xee) & 0x1f) ^ DAT_1826717d8;
  *(ulonglong *)(lVar12 + -0x110) =
       (CONCAT44(uVar35,uVar41) ^ 0xb363b34eedcef467) << ((local_res18 ^ 0xf5) & 0x3f);
  uVar19 = (ulonglong)DAT_18267156c;
  *(uint *)(lVar12 - (uVar20 ^ 0x999642de)) = uVar39;
  *(uint *)(lVar12 + -0x344) =
       (*(uint *)(lVar12 + -0x844) ^ DAT_18267166c) -
       (*(uint *)(lVar12 - (uVar19 ^ 0x8c557c2c)) ^ DAT_1826717d8) ^ DAT_1826718c0;
  uVar18 = (*(uint *)(lVar12 - (uVar25 ^ 0x13aca78e)) ^ DAT_1826718c0) * (*puVar3 ^ _DAT_1826715dc);
  *(uint *)(lVar12 + -0x328) = uVar18 ^ DAT_1826717b0;
  uVar36 = DAT_1826718d4;
  uVar39 = DAT_182671714;
  *puVar5 = (*(uint *)(lVar12 - (uVar43 ^ 0x4bce90f2)) ^ uVar33) * 0xf ^ DAT_18267183c;
  uVar18 = uVar18 + (*puVar29 ^ DAT_18267183c);
  *puVar2 = uVar18 ^ uVar36;
  uVar13 = DAT_1826715a4;
  uVar33 = *puVar2;
  uVar35 = uVar18 << (((byte)uVar14 ^ 0xf2) & 0x1f);
  *puVar4 = uVar35 ^ uVar39;
  uVar33 = (uVar33 ^ uVar36) >> (((byte)uVar13 ^ 0x5b) & 0x1f) ^ DAT_1826717a4;
  uVar19 = (ulonglong)DAT_1826716fc;
  *puVar8 = uVar18 + (DAT_18267158c ^ 0x9e483870);
  *puVar1 = uVar33;
  uVar36 = (uVar35 | uVar33 ^ DAT_1826717a4) ^ DAT_1826716b4;
  uVar39 = *puVar3 ^ _DAT_1826715dc;
  *pbVar6 = *(byte *)(uVar19 ^ *(ulonglong *)(lVar10 + -0xc80)) ^ (byte)DAT_182671694;
  uVar33 = *puVar7 ^ DAT_182671624;
  *puVar21 = uVar36;
  *puVar26 = uVar39 + uVar33 ^ uVar40;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar9 ^ uVar45) * 4) = uVar17;
  return;
}



############ FUN_ 180ee2080 size=5136 ############

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

void FUN_180ee2080(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  byte bVar14;
  uint uVar15;
  byte bVar16;
  uint uVar17;
  ulonglong *puVar18;
  ulonglong *puVar19;
  longlong lVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_70;
  
  uVar11 = DAT_1826715ac;
  uVar8 = DAT_1826715a4;
  uVar6 = DAT_182671570;
  lVar4 = DAT_182671560;
  uVar27 = (ulonglong)DAT_182671570;
  uVar30 = (ulonglong)DAT_1826715ac;
  uVar21 = (ulonglong)DAT_1826715a4;
  uVar23 = DAT_1826715ac - DAT_1826715a4;
  uVar44 = (DAT_182671570 << 0x10 | DAT_182671570 & 0xff00) << 8 | DAT_182671570 >> 8 & 0xff00 |
           DAT_182671570 >> 0x18;
  uVar17 = *(uint *)(&DAT_182611e78 + DAT_18267195c) ^ DAT_1826715a4;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_18267195c) ^ DAT_1826715ac;
  uVar36 = (ulonglong)DAT_1826718b8;
  uVar33 = *(ulonglong *)(DAT_182671560 + -0x748);
  uVar28 = CONCAT44(DAT_1826718b8,DAT_1826718b8) ^ uVar33;
  uVar25 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar41 = (ulonglong)uVar23;
  DAT_182671580 = uVar23;
  DAT_18267159c = uVar44;
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (CONCAT44(DAT_1826715e4,DAT_1826715e4) ^ *(ulonglong *)(DAT_182671560 + -0x9f8)) + uVar28 ^
       uVar25;
  uVar7 = DAT_1826717a0;
  uVar31 = CONCAT44(DAT_182671778,DAT_182671778);
  *(uint *)(lVar4 + -0x678) = (uVar44 ^ 0x736f159c) * (uVar23 ^ 0xfd15e2f5);
  bVar14 = (byte)uVar6;
  *(ulonglong *)(lVar4 + -0x9e8) = uVar28 << ((bVar14 ^ 0xcf) & 0x3f) ^ uVar31;
  uVar10 = DAT_1826717ac;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar36 = uVar33 >> 0x20 ^ uVar28 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x110) = uVar36;
  uVar33 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xf7fffbff)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x882aa5e4)) ^ uVar31 | uVar36 ^ uVar28) ^
       uVar33;
  uVar7 = DAT_1826716c4;
  *(ulonglong *)(lVar4 + -0x638) =
       CONCAT44(DAT_182671728,DAT_182671728) ^ *(ulonglong *)(lVar4 + -0x670) ^ 0xe08829965599af9a;
  lVar20 = DAT_182671560;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x1f0) =
       *(ulonglong *)(lVar4 + -0x510) ^ *(ulonglong *)(lVar4 + -0x600) ^ uVar31 ^ uVar33 ^ uVar25;
  uVar33 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar36 = *(ulonglong *)(lVar4 + -0xa60) ^ uVar33;
  uVar28 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar46 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(lVar20 + -0x610) = (uVar28 ^ *(ulonglong *)(lVar20 + -0x5c8)) + uVar36 ^ uVar46;
  uVar7 = DAT_1826716f4;
  uVar37 = CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar36 = uVar36 << ((bVar14 ^ 0xcf) & 0x3f);
  *(ulonglong *)(lVar20 + -0x3f0) = uVar36 ^ uVar37;
  lVar4 = DAT_182671560;
  bVar40 = (byte)uVar23;
  uVar33 = (*(ulonglong *)(lVar20 - ((ulonglong)uVar44 ^ 0xeff8f415)) ^ uVar33) >>
           ((bVar40 ^ 0x2c) & 0x3f);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x628);
  *puVar1 = uVar33 ^ CONCAT44(uVar7,uVar7);
  uVar33 = uVar33 | uVar36;
  uVar42 = CONCAT44(DAT_18267174c,DAT_18267174c);
  puVar2 = (ulonglong *)(lVar4 + -0x6b8);
  uVar29 = uVar33 ^ uVar42;
  *puVar2 = uVar29;
  uVar7 = DAT_182671774;
  lVar4 = DAT_182671560;
  uVar26 = (ulonglong)DAT_1826717fc;
  uVar36 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(DAT_182671560 + -0x318) = (CONCAT44(uVar11,uVar6) ^ 0xefe41d3ce47bd01a) + uVar33;
  uVar34 = CONCAT44(uVar7,uVar7);
  puVar3 = (ulonglong *)(lVar4 + -0xbf0);
  uVar33 = *(ulonglong *)(lVar4 - (uVar41 ^ 0x882aaa1c)) ^ uVar29 ^ uVar34 ^ uVar42 ^ uVar46;
  *puVar3 = uVar33;
  uVar7 = DAT_182671864;
  lVar20 = DAT_182671560;
  uVar29 = (uVar33 ^ uVar34) + (CONCAT44(uVar44,uVar8) ^ 0xd7b133953b609248);
  *(ulonglong *)(lVar4 + -0x688) = uVar29 ^ uVar36;
  uVar10 = DAT_1826718c8;
  uVar33 = (CONCAT44(uVar11,uVar11) ^ 0xde6ca857303c8bd8) +
           (*(ulonglong *)(lVar4 + -0x510) ^ uVar25);
  *(ulonglong *)(lVar4 + -0x9f8) = uVar33 ^ CONCAT44(uVar7,uVar7);
  uVar43 = CONCAT44(uVar10,uVar10);
  puVar35 = (ulonglong *)(lVar20 - (uVar30 ^ 0xf7fffab7));
  *puVar35 = uVar33 + uVar29 ^ uVar43;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       CONCAT44(uVar23,uVar8) ^ CONCAT44(uVar6,uVar23) ^ 0xddf36994a62695a7;
  uVar29 = CONCAT44(DAT_182671654,DAT_182671654);
  *(ulonglong *)(lVar4 + -0x110) =
       (*(ulonglong *)(lVar4 + -0x688) ^ uVar36) << ((bVar14 ^ 0xe1) & 0x3f) ^ uVar29;
  lVar20 = DAT_182671560;
  uVar33 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar44 ^ 0xeff8f805)) =
       (*(ulonglong *)(lVar4 + -0x688) >> 0x20 ^ uVar26) >> 0x12 ^ uVar33;
  uVar7 = DAT_182671644;
  uVar25 = CONCAT44(DAT_182671800,DAT_182671800);
  uVar33 = (*(ulonglong *)(lVar20 + -0x670) ^ uVar33 | uVar29 ^ *(ulonglong *)(lVar20 + -0x110)) ^
           uVar25;
  *(ulonglong *)(lVar20 + -0x638) = uVar33;
  uVar45 = CONCAT44(uVar7,uVar7);
  uVar29 = (ulonglong)DAT_182671780;
  uVar38 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar20 - (uVar41 ^ 0x882aaa0c)) =
       *(ulonglong *)(lVar20 + -0x748) ^ uVar45 ^ uVar33 ^ uVar25 ^ uVar43;
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) +
       (CONCAT44(uVar6,uVar6) ^ 0x55037122f13588d1) ^ uVar38;
  lVar4 = DAT_182671560;
  uVar25 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xf7fff79f)) =
       (*(ulonglong *)(DAT_182671560 + -0x610) ^ uVar46) +
       (CONCAT44(uVar44,uVar11) ^ 0x284f4cce4e60986c) ^ uVar25;
  uVar33 = *(ulonglong *)(lVar4 + -0x5c8);
  uVar31 = uVar38 ^ uVar33;
  puVar18 = (ulonglong *)(lVar4 - (uVar41 ^ 0x882aa66c));
  uVar39 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar4 + -0x3f0) = (uVar25 ^ *puVar18) + uVar31 ^ uVar39;
  bVar16 = (byte)(uVar6 >> 0x18);
  *puVar1 = uVar31 << ((bVar16 ^ 0x65) & 0x3f) ^ uVar28;
  uVar7 = DAT_182671808;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       CONCAT44(uVar6,uVar11) ^ 0x5881bcff51b5183 | *(ulonglong *)(DAT_182671560 + -0x610) ^ uVar46;
  uVar10 = DAT_182671848;
  uVar26 = CONCAT44(uVar7,uVar7);
  puVar32 = (ulonglong *)(lVar4 - (uVar30 ^ 0xf7fffbd7));
  *puVar3 = (uVar33 >> 0x20 ^ uVar29) >> 0x10 ^ uVar26;
  uVar33 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x75fefdff)) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0x6fd55a03)) ^ uVar26 | *puVar32 ^ uVar28) ^ uVar33;
  uVar46 = CONCAT44(DAT_182671684,DAT_182671684);
  uVar27 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar33 = *(ulonglong *)(lVar4 - (uVar21 ^ 0x6fd55203)) ^ *(ulonglong *)(lVar4 + -0x510) ^ uVar46 ^
           uVar33 ^ uVar39;
  *(ulonglong *)(lVar4 + -0x9f8) = uVar33;
  *(ulonglong *)(lVar4 + -0x9e8) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x882aab44)) ^ uVar43) + (uVar33 ^ uVar46) ^ uVar27;
  *(ulonglong *)(lVar4 + -0x688) = *puVar2 ^ uVar42 | CONCAT44(uVar44,uVar11) ^ 0xbc84202eab2ef43d;
  puVar19 = (ulonglong *)(lVar4 - (uVar30 ^ 0xf7fff407));
  *(ulonglong *)(lVar4 + -0x110) = (*puVar19 ^ uVar46) << 0x34 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x670) = CONCAT44(uVar44,uVar44) ^ 0xfafbff65f73c76da | 0x78884e61e63c72c2
  ;
  uVar31 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  puVar24 = (ulonglong *)(lVar4 - (uVar21 ^ 0x6fd557cb));
  *puVar24 = (*(ulonglong *)(lVar4 + -0x9f8) ^ uVar46) >> ((bVar16 ^ 0x79) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x1f0) =
       (*(ulonglong *)(lVar4 + -0x9f8) ^ uVar46) - (CONCAT44(uVar6,uVar23) ^ 0xb7f225fd53a073b6);
  uVar9 = DAT_182671718;
  uVar28 = CONCAT44(DAT_182671734,DAT_182671734);
  uVar29 = (ulonglong)DAT_182671718;
  uVar33 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar4 + -0xa60) =
       (*(ulonglong *)(lVar4 + -0x638) ^ uVar31 | uVar34 ^ *(ulonglong *)(lVar4 + -0x110)) ^ uVar28;
  uVar5 = DAT_182671574;
  lVar20 = DAT_182671560;
  uVar31 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x610) =
       *(ulonglong *)(lVar4 - (uVar33 ^ 0x8a010d71)) ^ uVar31 ^ uVar28 ^ uVar27 ^
       *(ulonglong *)(lVar4 + -0x9e8);
  lVar4 = DAT_182671560;
  puVar22 = (ulonglong *)(DAT_182671560 + -0x3f0);
  uVar33 = *(ulonglong *)(DAT_182671560 + -0x600) ^ uVar45;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       CONCAT44(uVar44,uVar23) ^ *(ulonglong *)(lVar20 + -0x748) ^ uVar43 ^ 0x78fac9bd57f58ec7;
  uVar7 = DAT_1826715a0;
  *(ulonglong *)(lVar4 + -0x5c8) = (*puVar22 ^ uVar39) + uVar33 ^ uVar46;
  uVar39 = CONCAT44(DAT_182671804,DAT_182671804);
  bVar14 = (byte)DAT_1826715b4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x2eb04ecb)) =
       uVar33 << ((bVar40 ^ 0x35) & 0x3f) ^ uVar39;
  uVar34 = (*(ulonglong *)(lVar4 + -0x600) ^ uVar45) >> ((bVar14 ^ 0x3b) & 0x3f);
  uVar33 = CONCAT44(DAT_1826715a8,uVar6);
  *puVar3 = uVar34 ^ CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar10 = DAT_18267187c;
  *(ulonglong *)(lVar4 + -0x510) = uVar33 ^ CONCAT44(uVar7,uVar6) ^ 0x938a3f6d526c0fe6;
  uVar33 = *(ulonglong *)(lVar4 + -0x9e8);
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar34 = (uVar34 | *puVar1 ^ uVar39) ^ uVar28;
  *puVar2 = uVar34;
  uVar7 = DAT_182671578;
  uVar39 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  uVar28 = *(ulonglong *)(lVar4 - (uVar41 ^ 0x882aa9c4)) ^ uVar39 ^ uVar34 ^ uVar28 ^ uVar46;
  *(ulonglong *)(lVar4 + -0x688) = uVar28;
  *(ulonglong *)(lVar4 + -0x670) = (uVar39 ^ uVar28) + (uVar27 ^ uVar33) ^ uVar26;
  lVar20 = DAT_182671560;
  local_70 = (byte)uVar8;
  uVar27 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0xf7fffb77)) ^ uVar39) << ((local_70 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9f8) = uVar27 ^ uVar25;
  lVar4 = DAT_182671560;
  uVar28 = (*(ulonglong *)(lVar20 + -0x688) ^ uVar39) >> ((local_70 ^ 0xda) & 0x3f);
  *(ulonglong *)(lVar20 + -0x1f0) = uVar28 ^ uVar38;
  *(ulonglong *)(lVar4 + -0x110) = uVar28 << 0x2f;
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *puVar24 = (uVar27 | uVar28) ^ uVar33;
  lVar20 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       CONCAT44(uVar6,uVar7) ^ 0x8ae51dc42a60a26e | *(ulonglong *)(lVar4 + -0x688) ^ uVar39;
  uVar10 = DAT_182671594;
  uVar34 = (ulonglong)DAT_182671598;
  uVar28 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(lVar20 + -0x748) =
       *(ulonglong *)(lVar20 + -0x670) ^ *(ulonglong *)(lVar20 + -0x638) ^ uVar28 ^ uVar33 ^ uVar26;
  lVar4 = DAT_182671560;
  uVar27 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *(ulonglong *)(lVar20 - (uVar30 ^ 0xf7fffee7)) =
       (*(ulonglong *)(lVar20 - (uVar21 ^ 0x6fd5543b)) ^ uVar46) +
       (uVar31 ^ *(ulonglong *)(lVar20 + -0x610)) ^ uVar27;
  uVar12 = DAT_1826715cc;
  uVar33 = (uVar31 ^ *(ulonglong *)(lVar20 + -0x610)) << (((byte)uVar10 ^ 0x22) & 0x3f);
  *(ulonglong *)(lVar20 + -0x3f0) = uVar33 ^ CONCAT44(DAT_182671824,DAT_182671824);
  uVar38 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar20 + -0x600) =
       ((ulonglong)(uVar9 >> 0x18) | uVar29 << 8) ^ *(ulonglong *)(lVar20 + -0x610) >> 0x18 ^ uVar38
  ;
  uVar31 = CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar33 = (*(ulonglong *)(lVar20 - (uVar34 ^ 0x3542734a)) ^ uVar38 | uVar33) ^ uVar31;
  *(ulonglong *)(lVar20 + -0x510) = uVar33;
  uVar8 = DAT_182671590;
  uVar39 = (ulonglong)DAT_182671830;
  uVar30 = CONCAT44(DAT_182671830,DAT_182671830);
  uVar25 = (ulonglong)DAT_182671590;
  *puVar32 = uVar30 ^ uVar31 ^ uVar27 ^ *(ulonglong *)(lVar4 + -0x318) ^ uVar33;
  uVar31 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715b4 ^ 0x541a61cc)) =
       (uVar30 ^ *puVar1) + (*(ulonglong *)(lVar4 + -0x670) ^ uVar26) ^ uVar31;
  uVar5 = DAT_182671568;
  puVar22 = (ulonglong *)(lVar4 - (uVar34 ^ 0x35427362));
  *puVar2 = 0x47214a0219749e93 >> ((*(byte *)(lVar4 - (uVar21 ^ 0x6fd557f3)) ^ (byte)uVar12) & 0x3f)
  ;
  uVar13 = DAT_182671894;
  uVar29 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *(ulonglong *)(lVar4 + -0x9e8) = (uVar30 ^ *puVar22) << ((bVar40 ^ 9) & 0x3f) ^ uVar29;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x6fd550e3)) = (*puVar22 >> 0x20 ^ uVar39) >> 0x1b ^ uVar30;
  uVar33 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar4 + -0x9f8) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x882aad1c)) ^ uVar30 |
       uVar29 ^ *(ulonglong *)(lVar4 + -0x9e8)) ^ uVar33;
  uVar13 = DAT_182671658;
  lVar20 = (CONCAT44(uVar7,uVar8) ^ 0x97db778ac4d2d35b) - (uVar38 ^ *(ulonglong *)(lVar4 + -0x600));
  *(longlong *)(lVar4 + -0x1f0) = lVar20;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x688) = *puVar19 ^ uVar34 ^ uVar33 ^ uVar31 ^ *puVar3;
  uVar13 = DAT_1826717c0;
  uVar9 = DAT_182671588;
  *(ulonglong *)(lVar4 + -0xa60) =
       (CONCAT44(DAT_182671588,uVar5) ^ 0x757de15117325afc) << ((byte)lVar20 & 0x3f);
  lVar20 = DAT_182671560;
  puVar22 = (ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xcf39cc2b));
  uVar26 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a8 ^ 0xe925befd)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x748)) + (uVar27 ^ *puVar22) ^ uVar26;
  uVar5 = DAT_1826715ac;
  uVar28 = uVar28 ^ *(ulonglong *)(lVar4 + -0x748);
  uVar33 = uVar28 << (((byte)uVar10 ^ 0x2f) & 0x3f);
  bVar14 = (byte)DAT_182671584;
  *(ulonglong *)(lVar4 + -0x5c8) = uVar33 ^ CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar28 = uVar28 >> ((bVar14 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar4 + -0x610) = uVar28 ^ uVar36;
  uVar33 = (uVar33 | uVar28) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar20 + -0x3f0) = uVar33;
  *(uint *)(lVar20 + -0x874) = (uVar5 ^ 0x5784229d) << ((bVar16 ^ 0x69) & 0x1f);
  uVar7 = DAT_18267158c;
  uVar5 = DAT_182671574;
  uVar28 = CONCAT44(DAT_182671708,DAT_182671708);
  uVar33 = *(ulonglong *)(lVar20 + -0x638) ^ uVar33 ^ uVar28 ^ uVar26 ^ CONCAT44(uVar13,uVar13);
  uVar29 = CONCAT44(DAT_182671720,DAT_182671720);
  *(ulonglong *)(lVar20 + -0x510) = uVar33;
  *(ulonglong *)(lVar20 + -0x670) =
       (CONCAT44(uVar5,uVar5) ^ 0xe907fa58972f2d70) + (uVar28 ^ uVar33) ^ uVar29;
  uVar8 = DAT_18267157c;
  lVar4 = DAT_182671560;
  uVar28 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar30 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a8 ^ 0xe925be7d)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267157c ^ 0xc511c5eb)) ^ uVar31) +
       (CONCAT44(uVar6,uVar7) ^ 0x87b2ab373d3a5d8) ^ uVar28;
  uVar33 = *(ulonglong *)(lVar4 + -0x670) ^ uVar29;
  uVar31 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *puVar1 = (uVar28 ^ *puVar2) + uVar33 ^ uVar31;
  lVar4 = DAT_182671560;
  uVar36 = CONCAT44(DAT_182671790,DAT_182671790);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x6fd55783)) ^ uVar29) << 0x19 ^ uVar36;
  uVar23 = DAT_182671608;
  uVar5 = DAT_182671568;
  uVar29 = (ulonglong)DAT_182671608;
  uVar28 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xcf39ce23)) =
       uVar33 >> (((byte)DAT_1826715b0 ^ 0x36) & 0x3f) ^ uVar38;
  *(byte *)(lVar4 + -0x639) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xc80) ^ (ulonglong)_DAT_1826715e0) ^ (byte)uVar13;
  uVar33 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xe5d44ce2)) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x9e8) | uVar38 ^ *(ulonglong *)(lVar4 + -0x110)) ^ uVar33;
  uVar25 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x882aa5f4)) =
       CONCAT44(DAT_182671828,DAT_182671828) ^ uVar33 ^ uVar31 ^ *puVar1 ^
       *(ulonglong *)(lVar4 + -0x600);
  uVar33 = CONCAT44(DAT_18267156c,uVar11);
  *(uint *)(lVar4 + -0x504) = uVar8 ^ 0x90f0020 | 0xe0f0bddc;
  *(ulonglong *)(lVar4 + -0x1f0) =
       (uVar33 ^ 0xb2ca937aac121cde) + (uVar34 ^ *(ulonglong *)(lVar4 + -0x688)) ^ uVar25;
  uVar6 = DAT_182671598;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671574 ^ 0x2eb04283)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xe5d44cda)) ^ uVar26) +
       (CONCAT44(uVar9,DAT_182671574) ^ 0x580754629a2c00ee) ^ uVar37;
  uVar5 = DAT_1826715a8;
  uVar21 = (ulonglong)DAT_1826715a8;
  *(uint *)(lVar4 + -0x274) = (DAT_182671588 ^ 0x518726cc) << ((byte)uVar6 & 0x1f);
  uVar36 = CONCAT44(DAT_182671758,DAT_182671758);
  *puVar22 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x1f0)) + (uVar37 ^ *puVar18) ^ uVar36;
  uVar10 = DAT_182671694;
  uVar7 = DAT_182671664;
  uVar26 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar4 + -0x748) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x1f0)) << (((byte)uVar5 ^ 0xe4) & 0x3f) ^ uVar26;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xe5d44f2a)) =
       *(ulonglong *)(lVar4 - (uVar30 ^ 0xc511cfeb)) >> 0x1f ^
       ((ulonglong)(uVar23 >> 0x1f) | uVar29 * 2) ^ uVar25;
  uVar10 = DAT_1826716ec;
  uVar33 = (ulonglong)DAT_1826715b4;
  *(longlong *)(lVar4 + -0x610) =
       -0x32010a835acfcd9f << (((byte)uVar12 ^ *(byte *)(lVar4 + -0x110)) & 0x3f);
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar33 = (*(ulonglong *)(lVar4 - (uVar33 ^ 0x541a6ff4)) ^ uVar25 |
           uVar26 ^ *(ulonglong *)(lVar4 + -0x748)) ^ uVar28;
  uVar25 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(lVar4 + -0x3f0) = uVar33;
  uVar28 = uVar25 ^ uVar33 ^ uVar28 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x318);
  *(ulonglong *)(lVar4 + -0x510) = uVar28;
  uVar33 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *puVar3 = (uVar26 ^ *puVar35) << ((*(byte *)(lVar4 - (uVar21 ^ 0xe925bf8d)) ^ (byte)uVar7) & 0x3f)
  ;
  *puVar2 = (uVar31 ^ *puVar1) + (uVar25 ^ uVar28) ^ uVar33;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar17;
  return;
}



############ FUN_ 180ed1a30 size=3995 ############

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

void FUN_180ed1a30(void)

{
  uint *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  byte bVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  uint uVar12;
  uint uVar13;
  byte *pbVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  
  uVar13 = DAT_1826715ac;
  uVar10 = DAT_182671594;
  uVar30 = DAT_182671580;
  uVar27 = DAT_182671570;
  uVar28 = DAT_18267156c;
  lVar4 = DAT_182671560;
  uVar11 = (ulonglong)DAT_182671570;
  uVar15 = (ulonglong)DAT_182671580;
  uVar17 = (ulonglong)DAT_1826715ac;
  uVar12 = DAT_182671580 - DAT_182671570;
  uVar31 = (ulonglong)DAT_182671594;
  uVar24 = DAT_1826715ac | DAT_182671594;
  uVar21 = *(uint *)(&DAT_182611e78 + DAT_182671c18) ^ DAT_182671580;
  uVar18 = ~DAT_18267156c;
  uVar2 = *(uint *)(&DAT_182611e70 + (uVar11 ^ 0x56894096) + (longlong)DAT_182671c18);
  uVar29 = *(uint *)(DAT_182671560 + -0x754) ^ DAT_182671658;
  uVar9 = (*(uint *)(DAT_182671560 + -0x968) ^ DAT_182671860) * 3 ^ DAT_182671768;
  DAT_182671584 = uVar12;
  DAT_182671588 = uVar18;
  DAT_182671590 = uVar24;
  *(uint *)(DAT_182671560 + -0x47c) = uVar9;
  uVar29 = uVar29 + (uVar9 ^ DAT_182671768) ^ DAT_182671734;
  *(uint *)(lVar4 + -0x5cc) = uVar29;
  uVar29 = uVar29 ^ DAT_182671734;
  bVar3 = (byte)_DAT_1826715e0;
  uVar9 = *(uint *)(lVar4 - (uVar17 ^ 0xfffffc2b)) ^ DAT_1826716d0;
  bVar8 = (byte)uVar24 ^ 0xf2;
  *(uint *)(lVar4 + -0x27c) = uVar29 << (bVar8 & 0x1f) ^ DAT_182671778;
  *(uint *)(lVar4 + -0x374) = uVar9 << (((byte)*(undefined4 *)(lVar4 + -0x910) ^ bVar3) & 0x1f);
  *(ulonglong *)(lVar4 + -0xc08) =
       (CONCAT44(uVar28,uVar10) ^ 0x14af86d4da7c85cd) <<
       ((byte)*(undefined8 *)(lVar4 + -0x9f8) & 0x3f);
  *(uint *)(lVar4 - (uVar15 ^ 0xf68fd38a)) =
       uVar29 >> (((byte)uVar18 ^ 0x35) & 0x1f) ^ DAT_182671894;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xa0069580)) =
       *(ulonglong *)(lVar4 + -0xbf0) >> (((byte)uVar10 ^ 0x3a) & 0x3f);
  *(uint *)(lVar4 + -0x874) =
       (*(uint *)(lVar4 - ((ulonglong)uVar27 ^ 0x568942fa)) ^ DAT_182671778 |
       *(uint *)(lVar4 + -0x344) ^ DAT_182671894) ^ DAT_182671744;
  uVar22 = DAT_182671824;
  bVar3 = (byte)DAT_1826717c4;
  uVar9 = (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar4 + -0x328) ^ DAT_1826718a4)
          ^ DAT_182671820;
  uVar16 = (ulonglong)DAT_182671740;
  *(uint *)(lVar4 + -0x504) = uVar9;
  uVar9 = uVar9 ^ DAT_1826715f8 ^ DAT_182671820;
  *(uint *)(lVar4 + -0x844) = uVar9;
  uVar29 = *(uint *)(lVar4 - ((ulonglong)uVar12 ^ 0xa006983c)) ^ DAT_1826717e4 ^ DAT_182671744;
  uVar9 = uVar9 ^ DAT_182671790 ^ DAT_1826715f8;
  *(uint *)(lVar4 + -0x678) = uVar29;
  uVar29 = uVar29 ^ DAT_182671754 ^ DAT_1826717e4;
  *(ulonglong *)(lVar4 + -0x460) =
       (CONCAT44(uVar24,uVar30) ^ 0xfffffffff68fd0c0) + *(longlong *)(lVar4 + -0x8f0) ^ uVar16;
  *(uint *)(lVar4 + -0x754) = uVar29;
  uVar29 = uVar29 ^ DAT_182671754;
  *(uint *)(lVar4 + -0x968) = uVar9;
  uVar30 = uVar29 + (uVar13 ^ 0xf608d92a) ^ DAT_182671688;
  bVar7 = *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0xbb7fe8b9)) ^ uVar16) ^ bVar3 ^
          (byte)DAT_182671694;
  *(byte *)(lVar4 + -0xc41) = bVar7;
  *(uint *)(lVar4 + -0x47c) = (bVar7 ^ bVar3) ^ uVar22;
  *(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x448010f2)) = uVar30;
  uVar30 = *(uint *)(lVar4 + -0x3d4) ^ DAT_182671688;
  uVar19 = *(uint *)(lVar4 + -0x968) ^ DAT_182671790;
  uVar9 = (*(uint *)(lVar4 + -0x47c) ^ uVar22) << (((byte)uVar28 ^ 200) & 0x1f) ^ DAT_182671608;
  *(uint *)(lVar4 + -0x910) = uVar9;
  *(uint *)(lVar4 + -0x374) = uVar30 - (uVar9 ^ DAT_182671608) ^ DAT_1826715e8;
  uVar26 = DAT_1826718bc;
  uVar29 = DAT_18267176c;
  uVar9 = DAT_1826715b8;
  lVar5 = DAT_182671560;
  *(uint *)(lVar4 + -0x5cc) =
       (*(uint *)(lVar4 - ((ulonglong)uVar10 ^ 0x9702c45)) ^ DAT_1826715e8) * uVar19 ^ DAT_182671724
  ;
  *(ulonglong *)(lVar4 + -0x270) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0x5689463e)) | 0x15c4c7f171818947;
  *(uint *)(lVar4 + -0x27c) = (*(uint *)(lVar4 + -0x47c) ^ uVar22) * 0xe ^ uVar26;
  *(ulonglong *)(lVar4 + -0x9e8) =
       CONCAT44(uVar27,uVar18) ^ 0x4c7dd9efe5a3d113 | *(ulonglong *)(lVar4 + -0x5c8);
  uVar30 = DAT_1826715a0;
  uVar22 = (*(uint *)(lVar4 - ((ulonglong)uVar12 ^ 0xa0069584)) ^ DAT_182671724) +
           (*(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0xbb7feea5)) ^ uVar26);
  *(uint *)(lVar4 + -0x344) = uVar22 ^ uVar29;
  uVar22 = uVar22 << (((byte)uVar12 ^ 0x45) & 0x1f);
  *(uint *)(lVar4 + -0x328) = uVar22 ^ uVar9;
  uVar10 = (*(uint *)(lVar4 + -0x344) ^ uVar29) >> 0x13 ^ _DAT_182671838;
  *(uint *)(lVar4 + -0x504) = uVar10;
  *(uint *)(lVar4 + -0x874) = (uVar10 ^ _DAT_182671838 | uVar22) ^ DAT_182671694;
  uVar10 = DAT_1826715a4;
  uVar16 = (ulonglong)DAT_1826715a4;
  uVar29 = (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) + uVar19 ^ DAT_1826717d0;
  uVar20 = (ulonglong)DAT_1826715a4;
  uVar19 = uVar30 * DAT_1826715a4;
  *(uint *)(lVar5 + -0x844) = uVar29;
  uVar25 = uVar29 ^ _DAT_182671618 ^ DAT_1826717d0;
  *(uint *)(lVar5 + -0x678) = uVar25;
  uVar29 = DAT_182671708;
  uVar23 = (ulonglong)DAT_1826715c4;
  uVar22 = DAT_182671708 ^ _DAT_182671618;
  DAT_1826715b4 = uVar19;
  *(uint *)(lVar5 + -0x754) = *(uint *)(lVar5 - (uVar16 ^ 0xd9ec77cf)) ^ uVar9 ^ DAT_182671694;
  *(uint *)(lVar5 - ((ulonglong)uVar19 ^ 0xe218d5f6)) = uVar22 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x240) =
       (CONCAT44(uVar30,uVar30) ^ 0x53b4aad59d8cbea9) +
       *(longlong *)(lVar5 - ((ulonglong)uVar30 ^ 0xce94a74e));
  *(uint *)(lVar5 + -0x910) =
       *(uint *)(lVar5 - ((ulonglong)uVar19 ^ 0xe218d176)) ^ DAT_182671798 ^ uVar9;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       CONCAT44(uVar10,uVar19) ^ 0xc4d6d28870e626f6 | *(ulonglong *)(DAT_182671560 + -0xbf0);
  bVar3 = (byte)DAT_1826716fc;
  pbVar14 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar12 ^ 0xa00698b8)) +
                     (CONCAT44(uVar13,uVar18) ^ 0xffffffff44801326) * 0x20 +
                    (CONCAT44(uVar10,uVar24) ^ 0xd9ec7fbbffffffe6));
  *(ulonglong *)(DAT_182671560 + -0x4e0) = (ulonglong)pbVar14 ^ uVar23;
  lVar4 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x41) = *pbVar14 ^ bVar3 ^ (byte)DAT_182671694;
  uVar13 = DAT_18267164c;
  *(ulonglong *)(lVar4 + -0x510) =
       (CONCAT44(uVar30,uVar19) ^ 0xa114f809c30bb2d2) + 0x3380868456483135;
  *(uint *)(lVar4 - ((ulonglong)uVar10 ^ 0xd9ec7ccf)) = (*(byte *)(lVar4 + -0x41) ^ bVar3) ^ uVar13;
  bVar3 = (byte)DAT_182671580;
  uVar9 = (*(uint *)(lVar4 - (uVar20 ^ 0xd9ec76ab)) ^ DAT_182671798) + (uVar19 ^ 0xebeff0f7) ^
          DAT_18267162c;
  *(ulonglong *)(lVar4 + -0x548) = *(ulonglong *)(lVar4 + -0xc08) ^ *(ulonglong *)(lVar4 + -0xbf0);
  *(uint *)(lVar4 + -0x47c) = uVar9;
  *(uint *)(lVar4 - (uVar31 ^ 0x9702afd)) =
       (uVar13 ^ *(uint *)(lVar4 + -0x374)) << ((bVar3 ^ 0xdf) & 0x1f) ^ _DAT_182671868;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xe218d01a)) =
       *(ulonglong *)(lVar4 + -0xa60) >> ((byte)*(undefined8 *)(lVar4 + -0x600) & 0x3f);
  uVar9 = (*(uint *)(lVar4 + -0x47c) ^ DAT_18267162c) - (*(uint *)(lVar4 + -0x5cc) ^ _DAT_182671868)
          ^ DAT_182671644;
  *(uint *)(lVar4 + -0x27c) = uVar9;
  uVar9 = uVar9 ^ DAT_182671644;
  *(ulonglong *)(lVar4 + -0x800) =
       CONCAT44(uVar27,uVar28) ^ 0x770340948d2a5599 | *(ulonglong *)(lVar4 + -0xc08);
  uVar13 = (uVar13 ^ *(uint *)(lVar4 + -0x374)) * 0x19 ^ DAT_182671670;
  *(uint *)(lVar4 + -0x344) = uVar9 * (*(uint *)(lVar4 + -0x3d4) ^ uVar29) ^ DAT_182671674;
  *(uint *)(lVar4 - (uVar17 ^ 0xfffffcd7)) = uVar13;
  uVar13 = DAT_182671804;
  *(ulonglong *)(lVar4 + -0xa88) =
       CONCAT44(uVar18,uVar24) ^ CONCAT44(uVar30,uVar24) ^ 0x5a47586425197e73;
  uVar6 = DAT_18267166c;
  *(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0xbb7fe9dd)) =
       (*(uint *)(lVar4 - (uVar15 ^ 0xf68fd3e6)) ^ DAT_182671670) +
       (*(uint *)(lVar4 + -0x344) ^ DAT_182671674) ^ uVar13;
  uVar16 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar4 - (uVar11 ^ 0x56894196)) =
       *(ulonglong *)(CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar4 + -0xd60)) ^ uVar16;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0xd9ec72db)) = CONCAT44(uVar18,uVar27) ^ 0xc5f9bc9a9034c7cb;
  *(uint *)(lVar4 + -0x968) = (*(uint *)(lVar4 + -0x504) ^ uVar13) << (bVar8 & 0x1f) ^ DAT_1826717dc
  ;
  uVar27 = DAT_18267158c;
  uVar13 = (*(uint *)(lVar4 + -0x504) ^ uVar13) >> 0x13;
  uVar19 = DAT_18267158c << 0x10 | DAT_18267158c >> 0x10;
  uVar11 = (ulonglong)DAT_18267158c;
  *(uint *)(lVar4 + -0x844) = uVar13 ^ uVar26;
  DAT_18267157c = uVar19;
  *(uint *)(lVar4 - (uVar11 ^ 0x2a7cb8b9)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar19 ^ 0xb0cd2314)) ^ DAT_1826717dc | uVar13) ^
       DAT_1826718cc;
  uVar13 = (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar4 + -0x3d4) ^ uVar29) ^
           DAT_182671864;
  uVar9 = *(uint *)(lVar4 + -0x874) ^ DAT_18267167c ^ DAT_1826718cc;
  *(undefined8 *)(lVar4 + -0x1f0) = 0xc3032796e878b0e3;
  *(uint *)(lVar4 + -0x678) = uVar13;
  uVar13 = *(uint *)(lVar4 - ((ulonglong)uVar27 ^ 0x2a7cb6b5)) ^ DAT_182671808 ^ DAT_182671864;
  *(uint *)(lVar4 + -0x754) = uVar13;
  uVar29 = DAT_182671784;
  *(uint *)(lVar4 + -0x910) = uVar9;
  uVar22 = uVar13 ^ uVar29 ^ DAT_182671808;
  uVar13 = uVar9 ^ DAT_1826716dc ^ DAT_18267167c;
  *(ulonglong *)(lVar4 + -0xa0) =
       (CONCAT44(uVar27,uVar19) ^ 0x7767f140a9a99978) + 0x3cfcd86917874f1d;
  *(uint *)(lVar4 + -0x47c) = uVar22;
  bVar7 = (byte)(uVar27 >> 0x10);
  *(ulonglong *)(lVar4 + -0x80) =
       (CONCAT44(uVar18,uVar12) ^ 0x9fb3c9a588b37cfe) >> ((bVar7 ^ 0x56) & 0x3f);
  bVar3 = (byte)DAT_182671858;
  uVar15 = (ulonglong)DAT_182671818;
  *(uint *)(lVar4 - (uVar17 ^ 0xfffffa33)) = uVar13;
  *(ulonglong *)(lVar4 - (uVar11 ^ 0x2a7cb1bd)) =
       *(longlong *)(lVar4 + -0x8f0) + 4 + (CONCAT44(uVar10,uVar30) ^ 0xd9ec7fbbce94ab46) * 0x20 ^
       uVar15;
  *(byte *)(lVar4 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x170) ^ uVar15) ^ bVar3 ^ (byte)DAT_182671694;
  uVar9 = DAT_182671888;
  uVar10 = DAT_1826717a0;
  uVar13 = *(uint *)(lVar4 + -0x5cc) ^ DAT_1826716dc;
  *(uint *)(lVar4 + -0x27c) = (*(byte *)(lVar4 - (uVar31 ^ 0x9702370)) ^ bVar3) ^ DAT_182671888;
  *(ulonglong *)(lVar4 + -0x8a8) = *(ulonglong *)(lVar4 + -0xa88) | 0x736e9c48a808cf7f;
  uVar27 = DAT_18267158c;
  lVar4 = DAT_182671560;
  uVar26 = uVar13 + (DAT_18267158c ^ 0x238b9618) ^ DAT_182671830;
  *(uint *)(DAT_182671560 + -0x374) = uVar26;
  uVar13 = DAT_18267183c;
  lVar5 = DAT_182671560;
  uVar26 = uVar26 ^ DAT_182671830;
  uVar22 = (*(uint *)(lVar4 - (uVar17 ^ 0xfffffd83)) ^ uVar9) << (((byte)uVar24 ^ 0xee) & 0x1f) ^
           DAT_1826717ec;
  puVar1 = (uint *)(DAT_182671560 + -0x47c);
  *(uint *)(DAT_182671560 + -0x344) = uVar22;
  lVar4 = DAT_182671560;
  uVar26 = uVar26 - (uVar22 ^ DAT_1826717ec);
  uVar22 = (uVar29 ^ *puVar1) * uVar26;
  *(uint *)(lVar5 + -0x328) = uVar26 ^ uVar13;
  *(uint *)(lVar5 + -0x504) = uVar22 ^ uVar10;
  *(uint *)(DAT_182671560 + -0x968) =
       (*(uint *)(lVar5 - (uVar31 ^ 0x9702d4d)) ^ uVar9) << 2 ^ DAT_1826716d0;
  *(ulonglong *)(lVar4 + -0x3f0) =
       (CONCAT44(uVar30,uVar12) ^ 0xf5b36347c886c44b) << (((byte)uVar28 ^ 0xd5) & 0x3f);
  uVar9 = DAT_182671710;
  *(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0xfffff7bb)) =
       (*(uint *)(lVar4 - (uVar17 ^ 0xfffff697)) ^ DAT_1826716d0) + uVar22 ^ DAT_182671710;
  uVar13 = _DAT_1826715d8;
  uVar28 = DAT_18267159c;
  uVar22 = (*(uint *)(lVar4 + -0x844) ^ uVar9) << ((bVar7 ^ 0x71) & 0x1f);
  uVar11 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(uint *)(lVar4 + -0x3d4) = uVar22 ^ DAT_1826717c8;
  *(ulonglong *)(lVar4 + -0x9f8) = *(ulonglong *)(uVar11 ^ *(ulonglong *)(lVar4 + -0x220)) ^ uVar16;
  uVar10 = DAT_1826715a8;
  uVar26 = uVar28 - DAT_1826715a8;
  uVar11 = (ulonglong)DAT_1826715a8;
  DAT_182671578 = uVar26;
  *(ulonglong *)(lVar4 + -0x220) = CONCAT44(DAT_1826715a8,uVar26) ^ 0xa47653b8fea26bfc;
  *(uint *)(lVar4 + -0x678) =
       (*(uint *)(lVar4 + -0x844) ^ uVar9) >> (((byte)uVar28 ^ 0xb4) & 0x1f) ^ DAT_182671628;
  uVar18 = (*(uint *)(lVar4 - (uVar11 ^ 0x9300e6a4)) ^ DAT_182671628 | uVar22) ^ DAT_18267184c;
  *(ulonglong *)(lVar4 + -0x6b8) = *(ulonglong *)(lVar4 + -0x6d0) | 0xc1071efd57794a80;
  uVar22 = *(uint *)(lVar4 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar4 + -0x874) = uVar18;
  lVar5 = DAT_182671560;
  uVar29 = (uVar29 ^ *(uint *)(lVar4 + -0x47c)) + uVar22 ^ DAT_182671760;
  *(uint *)(lVar4 + -0x754) = uVar29;
  uVar29 = uVar29 ^ uVar13 ^ DAT_182671760;
  *(uint *)(lVar4 + -0x910) = uVar29;
  lVar4 = DAT_182671560;
  uVar29 = uVar13 ^ uVar29 ^ _DAT_1826715e0;
  *(ulonglong *)(DAT_182671560 + -0x270) =
       *(ulonglong *)(lVar5 + -0x9f8) >> (((byte)uVar26 ^ 0xff) & 0x3f);
  *(uint *)(lVar4 + -0x5cc) = DAT_182671874 ^ DAT_18267184c ^ uVar18;
  uVar13 = DAT_18267168c;
  bVar3 = (byte)DAT_182671640;
  uVar16 = (ulonglong)DAT_1826716c8;
  *(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0x54e842d3)) = uVar29;
  *(uint *)(lVar4 - ((ulonglong)uVar10 ^ 0x9300e398)) =
       *(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0xc1e76507)) ^ uVar13 ^ DAT_182671874;
  pbVar14 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar28 ^ 0x54e84957)) +
                     (CONCAT44(uVar28,uVar10) ^ 0x54e841a79300e0dc) * 0x20 +
                    (CONCAT44(uVar26,uVar28) ^ 0xc1e760cb54e841a8));
  *(ulonglong *)(lVar4 + -0xba0) = (ulonglong)pbVar14 ^ uVar16;
  *(byte *)(lVar4 + -0x41) = *pbVar14 ^ bVar3 ^ (byte)DAT_182671694;
  *(uint *)(lVar4 - (uVar11 ^ 0x9300e3f4)) =
       (*(uint *)(lVar4 + -0x344) ^ uVar13) << (((byte)uVar27 ^ 0xdd) & 0x1f);
  uVar27 = (bVar3 ^ *(byte *)(lVar4 + -0x41)) ^ DAT_182671728;
  *(uint *)(lVar4 + -0x27c) = uVar27;
  *(uint *)(lVar4 + -0x504) =
       *(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0x54e849e3)) ^ uVar9 | uVar28 ^ 0x2e77577c;
  uVar27 = uVar27 ^ DAT_182671728;
  *(uint *)(lVar4 + -0x968) =
       (*(uint *)(lVar4 - ((ulonglong)uVar30 ^ 0xce94a802)) ^ uVar13) + (uVar26 ^ 0xc810461e) ^
       _DAT_182671610;
  *(ulonglong *)(lVar4 + -0x5c8) =
       CONCAT44(uVar26,uVar28) ^ 0x63aebda37b3a2798 | *(ulonglong *)(lVar4 + -0x9f8);
  uVar28 = uVar27 << (((byte)uVar12 ^ 0x59) & 0x1f) ^ _DAT_1826716c0;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar12) * 4) = uVar21;
  *(uint *)(lVar4 - ((ulonglong)uVar19 ^ 0xb0cd29a8)) = uVar28;
  return;
}



############ FUN_ 180f00470 size=4562 ############

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

void FUN_180f00470(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte *pbVar20;
  ulonglong uVar21;
  uint uVar22;
  int iVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  uint uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  byte local_d0;
  byte local_b8;
  byte local_88;
  
  uVar12 = DAT_1826717c0;
  uVar11 = DAT_1826715a4;
  uVar10 = DAT_18267159c;
  uVar31 = DAT_182671588;
  uVar34 = DAT_182671584;
  uVar7 = DAT_18267157c;
  lVar4 = DAT_182671560;
  uVar22 = DAT_182671598 & 3;
  if (uVar22 < 2) {
    DAT_182671594 = DAT_1826715a0;
    if (uVar22 == 0) {
      DAT_182671594 = DAT_182671598;
    }
  }
  else {
    DAT_182671594 = DAT_1826715ac;
    if (uVar22 < 3) {
      DAT_182671594 = DAT_18267156c;
    }
  }
  uVar44 = (ulonglong)DAT_18267157c;
  uVar35 = (ulonglong)DAT_182671588;
  uVar25 = (ulonglong)DAT_1826715a4;
  uVar17 = DAT_182671584 | DAT_18267159c;
  uVar40 = DAT_18267157c << 0x10 | DAT_18267157c >> 0x10;
  uVar30 = DAT_182671588 + DAT_1826715a4;
  uVar18 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar17 ^ 0xf05d5800) + (longlong)DAT_1826719b8) ^
           DAT_182671584;
  uVar19 = *(uint *)(&DAT_182611e80 + DAT_1826719b8) ^ DAT_18267159c;
  uVar36 = (ulonglong)DAT_1826717e0;
  lVar3 = *(longlong *)(DAT_182671560 + -3000);
  uVar26 = CONCAT44(DAT_182671778,DAT_182671778);
  DAT_18267158c = uVar40;
  DAT_1826715a8 = uVar17;
  DAT_1826715b0 = uVar30;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = (uVar26 ^ *(ulonglong *)(DAT_182671560 + -0x9e8)) << 0x1d
  ;
  bVar16 = (byte)DAT_1826718bc;
  pbVar20 = (byte *)((CONCAT44(uVar11,uVar30) ^ 0xeff8fe758028b75f) + lVar3);
  *(ulonglong *)(lVar4 + -0xc80) = (ulonglong)pbVar20 ^ uVar36;
  uVar13 = DAT_182671670;
  bVar15 = *pbVar20 ^ bVar16 ^ (byte)uVar12;
  *(byte *)(lVar4 + -0x261) = bVar15;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar21 = (ulonglong)uVar40;
  *(ulonglong *)(lVar4 + -0x3b8) = (bVar16 ^ bVar15) ^ uVar32;
  lVar4 = DAT_182671560;
  uVar32 = (*(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x902fbab8)) ^ uVar32) <<
           (((byte)DAT_18267156c ^ 0x52) & 0x3f);
  pbVar20 = (byte *)(lVar3 + 0x2b);
  puVar41 = (ulonglong *)(DAT_182671560 + -0x9e8);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x270);
  *puVar1 = uVar32 ^ CONCAT44(DAT_18267181c,DAT_18267181c);
  uVar28 = CONCAT44(DAT_18267168c,DAT_18267168c);
  puVar2 = (ulonglong *)(lVar4 + -0x318);
  *puVar2 = (uVar32 | uVar26 ^ *puVar41) ^ uVar28;
  bVar16 = (byte)DAT_1826718ac;
  *(ulonglong *)(lVar4 + -0x5b8) = (ulonglong)pbVar20 ^ (ulonglong)DAT_1826717e4;
  uVar8 = DAT_182671594;
  uVar6 = DAT_182671574;
  uVar38 = (ulonglong)DAT_182671594;
  *(byte *)(lVar4 + -0x289) = *pbVar20 ^ bVar16 ^ (byte)uVar12;
  uVar12 = DAT_182671810;
  uVar22 = DAT_1826715a0;
  uVar9 = DAT_182671598;
  uVar27 = (ulonglong)uVar34;
  uVar32 = (ulonglong)DAT_182671598;
  puVar41 = (ulonglong *)(lVar4 - (uVar32 ^ 0xfffff577));
  *puVar41 = (CONCAT44(uVar34,uVar31) ^ 0xa1d18b2cc804b4ec) +
             (CONCAT44(uVar7,uVar11) ^ 0x99a3528bdbeb5dd2);
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xbf0) = (bVar16 ^ *(byte *)(lVar4 + -0x289)) ^ uVar26;
  lVar3 = DAT_182671560;
  bVar29 = (byte)uVar22;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715ac ^ 0x8504b58)) =
       (CONCAT44(uVar8,uVar22) ^ 0x72cad68fed653eb3) >>
       ((byte)*(undefined8 *)(lVar4 + -0x1f0) & 0x3f);
  uVar33 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar3 + -0x9e8) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xbf0)) << ((bVar29 ^ 6) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xeff8fc05)) =
       CONCAT44(uVar40,uVar31) ^ 0x400528000044427 | 0x6b0aa82efd7bb9d0;
  bVar16 = (byte)DAT_182671894;
  uVar24 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar26 = (ulonglong)DAT_182671700;
  *puVar41 = (uVar28 ^ *puVar2 | *(ulonglong *)(lVar3 + -0x9e8) ^ uVar33) ^ uVar24;
  uVar13 = DAT_1826717c0;
  pbVar20 = (byte *)(*(longlong *)(lVar3 + -3000) + 0x2c);
  *(ulonglong *)(lVar3 + -0x900) = (ulonglong)pbVar20 ^ uVar26;
  *(byte *)(lVar3 - (uVar21 ^ 0x8119cf72)) = *pbVar20 ^ bVar16 ^ (byte)uVar13;
  uVar33 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar3 + -0x1f0) = (*(byte *)(lVar3 + -0x41) ^ bVar16) ^ uVar33;
  lVar4 = DAT_182671560;
  uVar28 = CONCAT44(DAT_18267186c,DAT_18267186c);
  bVar39 = (byte)uVar17;
  uVar26 = (ulonglong)DAT_182671658;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0x8504b58)) =
       (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x101509f0)) ^ uVar33) << ((bVar39 ^ 0x28) & 0x3f)
       ^ uVar28;
  uVar42 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar4 + -0xbf0) =
       (uVar24 ^ *(ulonglong *)(lVar4 + -0xa88) | uVar28 ^ *(ulonglong *)(lVar4 + -0x3b8)) ^ uVar42;
  *puVar1 = (uVar33 ^ *(ulonglong *)(lVar4 + -0x1f0)) + 0x38444bd38e0350e2;
  bVar16 = (byte)DAT_1826717a4;
  pbVar20 = (byte *)((CONCAT44(uVar6,uVar11) ^ 0x69da7137eff8fe58) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0x5b8) = (ulonglong)pbVar20 ^ uVar26;
  uVar12 = _DAT_182671610;
  bVar15 = *pbVar20 ^ bVar16 ^ (byte)uVar13;
  *(byte *)(lVar4 + -0x309) = bVar15;
  uVar14 = DAT_182671884;
  lVar3 = DAT_182671560;
  uVar26 = CONCAT44(uVar12,uVar12);
  puVar46 = (ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xe0485310));
  uVar28 = CONCAT44(DAT_182671884,DAT_182671884);
  *puVar46 = (bVar16 ^ bVar15) ^ uVar26;
  uVar22 = DAT_1826715ac;
  uVar26 = (uVar26 ^ *puVar2) << 0x28;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar26 ^ uVar28;
  uVar12 = DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0xa88) =
       (CONCAT44(uVar31,uVar22) ^ 0x8f10b112e894c5c3) -
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0xcf338ae9)) ^ uVar42);
  uVar22 = DAT_18267156c;
  lVar4 = DAT_182671560;
  uVar45 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar33 = (ulonglong)DAT_18267156c;
  puVar41 = (ulonglong *)(DAT_182671560 + -0xc80);
  *(ulonglong *)(DAT_182671560 + -0x3b8) =
       (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x101503f0)) ^ uVar42 | uVar26) ^ uVar45;
  uVar26 = (ulonglong)DAT_1826717f0;
  *(byte *)(lVar4 + -0x789) = *(byte *)(uVar36 ^ *puVar41) ^ (byte)uVar12;
  pbVar20 = (byte *)((CONCAT44(uVar17,uVar22) ^ 0xf05d5808f341906c) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0x900) = (ulonglong)pbVar20 ^ uVar26;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x1f0) =
       CONCAT44(uVar31,uVar30) ^ CONCAT44(uVar6,uVar11) ^ 0x3ae9a636f7aabe29;
  bVar16 = (byte)DAT_182671740;
  *(byte *)(lVar3 - (uVar33 ^ 0xf34197e3)) = *pbVar20 ^ (byte)DAT_182671740 ^ (byte)DAT_1826717c0;
  uVar12 = DAT_1826718d4;
  *puVar1 = (CONCAT44(uVar9,uVar7) ^ 0x7f1da202a8cc3b75) >> ((bVar29 ^ 0x1c) & 0x3f);
  uVar26 = CONCAT44(uVar12,uVar12);
  *puVar46 = (*(byte *)(lVar3 + -0x7a1) ^ bVar16) ^ uVar26;
  uVar12 = DAT_182671754;
  *(byte *)(lVar3 + -0x429) =
       *(byte *)((ulonglong)DAT_182671864 ^ *(ulonglong *)(lVar3 + -0x8f8)) ^ (byte)DAT_1826717c0;
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar36 = (uVar26 ^ *puVar2) << ((bVar39 ^ 0x38) & 0x3f);
  uVar26 = (ulonglong)DAT_1826715a0;
  uVar37 = uVar36 ^ uVar42;
  *(ulonglong *)(lVar3 + -0xa88) = uVar37;
  uVar6 = DAT_18267180c;
  uVar12 = DAT_182671674;
  uVar33 = (ulonglong)DAT_18267180c;
  *(ulonglong *)(lVar3 + -0xbf0) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0xd80d7ff6)) ^ uVar28) >>
       (((byte)uVar14 ^ *(byte *)(lVar3 + -0x9e8)) & 0x3f);
  uVar43 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar36 + (uVar45 ^ *(ulonglong *)(lVar3 + -0x3b8)) ^ uVar43;
  uVar12 = DAT_1826717c0;
  uVar22 = DAT_182671598;
  pbVar20 = (byte *)((CONCAT44(uVar31,uVar7) ^ 0x902fb900cf338136) + *(longlong *)(lVar3 + -3000));
  *(ulonglong *)(lVar3 + -0x5b8) = (ulonglong)pbVar20 ^ uVar33;
  uVar31 = DAT_18267156c;
  local_d0 = (byte)uVar30;
  iVar23 = (uVar22 ^ 0x3728b5da) + 0xb7db40d4;
  *(int *)(lVar3 + -0x774) = iVar23;
  bVar16 = (byte)DAT_1826715d4;
  bVar15 = *pbVar20 ^ (byte)DAT_1826715d4;
  *(int *)(lVar3 + -0x3d4) = iVar23 * 0x4000000;
  *(byte *)(lVar3 + -0x659) = bVar15 ^ (byte)uVar12;
  uVar26 = (ulonglong)(bVar16 ^ *(byte *)(lVar3 + -0x659));
  *puVar1 = uVar26 ^ CONCAT44(DAT_182671608,DAT_182671608);
  *puVar2 = CONCAT44(uVar31,uVar8) ^ uVar37 ^ uVar42 ^ 0xec2afc3a0e29f945;
  uVar28 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x101501e8)) = uVar26 << ((local_d0 ^ 0x4d) & 0x3f) ^ uVar28;
  *(uint *)(lVar3 + -0x874) =
       (DAT_182671594 ^ 0x5b1659ef) >> ((byte)*(undefined4 *)(lVar3 - (uVar25 ^ 0xeff8fef9)) & 0x1f)
  ;
  uVar26 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar3 + -0xbf0) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x8119c6db)) ^ uVar28) +
       (uVar43 ^ *(ulonglong *)(lVar3 + -0x1f0)) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x230) = *(longlong *)(lVar3 + -0x880) + 0x28U ^ uVar42;
  uVar22 = DAT_1826715ac;
  uVar31 = DAT_1826715a0;
  uVar28 = (ulonglong)DAT_1826717ec;
  uVar33 = (ulonglong)DAT_1826715c0;
  *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a0 ^ 0xd80d742e)) ^ uVar42) =
       *(ulonglong *)(lVar3 - (uVar32 ^ 0xfffff40f)) ^ CONCAT44(DAT_1826717c8,DAT_1826717c8) ^
       uVar26;
  uVar12 = DAT_1826717c0;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671574 ^ 0x69da7db7)) =
       (CONCAT44(uVar22,uVar31) ^ 0x85048e0d80d762e) + *(longlong *)(lVar3 + -3000) ^ uVar28;
  bVar16 = (byte)DAT_182671844;
  lVar4 = DAT_182671560;
  bVar29 = (byte)uVar12;
  bVar15 = *(byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xc80)) ^ (byte)DAT_182671844 ^ bVar29;
  *(byte *)(lVar3 + -0xcca) = bVar15;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x3b8) = (bVar15 ^ bVar16) ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xeff8f775)) =
       (CONCAT44(uVar22,uVar8) ^ 0x85048e0085048d1) + *(longlong *)(lVar4 + -3000) ^ uVar33;
  *(byte *)(lVar4 + -0xc99) = *(byte *)((ulonglong)uVar6 ^ *(ulonglong *)(lVar4 + -0x5b8)) ^ bVar29;
  uVar31 = DAT_1826717d8 & 0xff;
  *(byte *)(lVar4 + -0x775) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x900) ^ uVar33) ^ bVar29 ^ (byte)DAT_1826717d8;
  local_b8 = (byte)uVar7;
  *(ulonglong *)(lVar4 + -0x898) = 0x113e10fe2e283331 >> ((local_b8 ^ 0x2c) & 0x3f);
  lVar3 = DAT_182671560;
  bVar16 = (byte)uVar6;
  uVar37 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar30 ^ 0x8028bdfd)) =
       (ulonglong)*(byte *)(lVar4 + -0x775) ^ (ulonglong)uVar31 ^ uVar37;
  uVar12 = DAT_182671690;
  uVar26 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *puVar46 = (*(ulonglong *)(lVar4 + -0xa88) ^ uVar37) << (bVar39 & 0x3f) ^ uVar26;
  lVar4 = DAT_182671560;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar42 = (ulonglong)DAT_1826717fc;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x902fbb70)) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x3b8) | uVar26 ^ *puVar2) ^ uVar36;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x8504018)) =
       *(longlong *)(lVar4 - (uVar27 ^ 0x101503b8)) + (CONCAT44(uVar40,uVar30) ^ 0x8119cf338028b747)
       ^ uVar42;
  *(byte *)(lVar3 - (uVar32 ^ 0xfffffd0e)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x8f8) ^ uVar42) ^ (byte)DAT_1826717c0 ^ bVar16;
  uVar26 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  local_88 = (byte)uVar11;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x902fb8f0)) = (*(byte *)(lVar3 + -0x2f1) ^ bVar16) ^ uVar26;
  uVar12 = DAT_1826715c4;
  uVar38 = (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar26) << ((local_88 ^ 0x65) & 0x3f);
  *(undefined8 *)(lVar3 + -0x548) = 0x779381;
  uVar13 = DAT_1826718b0;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar38 ^ CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar26 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xeff8f6ed)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xf05d5a78)) ^ uVar36 | uVar38) ^ uVar27;
  uVar7 = DAT_182671884;
  uVar31 = DAT_182671884 & 0xff;
  lVar4 = *(longlong *)(lVar3 + -3000);
  uVar38 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar3 + -0xa88) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar26 ^ 0xd80d76a6)) ^ uVar38) ^ uVar28;
  pbVar20 = (byte *)(lVar4 + 0x33);
  *(ulonglong *)(lVar3 + -0xc80) = (ulonglong)pbVar20 ^ uVar33;
  uVar12 = DAT_1826716d8;
  bVar16 = *pbVar20 ^ (byte)DAT_1826717c0 ^ (byte)uVar7;
  *(byte *)(lVar3 + -0x7f1) = bVar16;
  uVar13 = DAT_182671828;
  uVar42 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x3b8) = (ulonglong)bVar16 ^ (ulonglong)uVar31 ^ uVar42;
  uVar28 = CONCAT44(uVar13,uVar13);
  uVar36 = (ulonglong)DAT_1826715a0;
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_18267156c ^ 0xf34193fa)) ^ uVar42) <<
           (((byte)uVar34 ^ 0x18) & 0x3f);
  *puVar2 = uVar26 ^ uVar28;
  lVar5 = DAT_182671560;
  puVar41 = (ulonglong *)(lVar3 - (uVar44 ^ 0xcf338981));
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar26 | uVar27 ^ *puVar41) ^ uVar42;
  bVar16 = (byte)DAT_1826715fc;
  pbVar20 = (byte *)((CONCAT44(uVar8,DAT_1826715ac) ^ 0x85048e0085048d4) + lVar4);
  *(ulonglong *)(lVar5 + -0x5b8) = (ulonglong)pbVar20 ^ (ulonglong)DAT_182671800;
  *(ulonglong *)(lVar5 + -0x548) =
       0x4a1da29fedb770a4 - (*(ulonglong *)(lVar5 - (uVar32 ^ 0xfffffce7)) ^ uVar28);
  *(byte *)(lVar5 - (uVar36 ^ 0xd80d7a9f)) = *pbVar20 ^ (byte)DAT_1826717c0 ^ bVar16;
  uVar33 = (ulonglong)(*(byte *)(lVar5 + -0xc81) ^ bVar16);
  *puVar1 = uVar33 ^ CONCAT44(DAT_182671750,DAT_182671750);
  lVar4 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar33 = uVar33 << (((byte)uVar34 ^ 0x20) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar33 ^ uVar27;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(lVar4 + -0x1f0) ^ uVar42 | uVar33) ^ uVar38;
  uVar12 = DAT_1826717c0;
  pbVar20 = (byte *)(*(longlong *)(lVar3 - (uVar44 ^ 0xcf338aa1)) +
                    (CONCAT44(uVar9,uVar17) ^ 0xfffffffff05d583d));
  uVar26 = CONCAT44(uVar17,DAT_182671574);
  *(ulonglong *)(lVar3 + -0x900) = (ulonglong)pbVar20 ^ (ulonglong)DAT_182671768;
  uVar7 = DAT_182671778;
  uVar34 = DAT_182671778 & 0xff;
  *(ulonglong *)(lVar3 + -0x3b8) = (uVar26 ^ 0xaf626f46705bdb59) << ((byte)uVar33 & 0x3f);
  bVar15 = (byte)uVar12;
  *(byte *)(lVar3 + -0x6a1) = *pbVar20 ^ bVar15 ^ (byte)uVar7;
  uVar26 = (ulonglong)DAT_18267156c;
  *(int *)(lVar3 + -0x3c8) =
       *(int *)(lVar3 + -0x874) << ((byte)*(undefined4 *)(lVar3 + -0x504) & 0x1f);
  uVar12 = DAT_1826718d0;
  uVar42 = CONCAT44(DAT_182671874,DAT_182671874);
  *puVar41 = (ulonglong)*(byte *)(lVar3 - (uVar26 ^ 0xf34196e3)) ^ (ulonglong)uVar34 ^ uVar42;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x8028b46d)) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0x902fb198)) ^ uVar42) << (((byte)uVar10 ^ 0x20) & 0x3f) ^
       uVar33;
  lVar4 = DAT_182671560;
  uVar44 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  uVar26 = (ulonglong)DAT_1826715c8;
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0xe0485a80)) ^ uVar38 | uVar33 ^ *puVar2
       ) ^ uVar44;
  bVar16 = (byte)DAT_1826716ac;
  pbVar20 = (byte *)(*(longlong *)(lVar4 - (uVar25 ^ 0xeff8f5cd)) +
                    (CONCAT44(uVar22,uVar8) ^ 0x85048e0085048d6));
  *(ulonglong *)(lVar4 + -0x8f8) = (ulonglong)pbVar20 ^ uVar26;
  uVar34 = DAT_1826717d8;
  *(byte *)(lVar4 + -0x321) = *pbVar20 ^ bVar15 ^ bVar16;
  *puVar1 = *(ulonglong *)(lVar4 + -0x9e8) ^ *(ulonglong *)(lVar4 + -0x898) ^ uVar42 ^ uVar27;
  lVar3 = DAT_182671560;
  uVar27 = (ulonglong)(*(byte *)(lVar4 - (uVar35 ^ 0x902fba21)) ^ bVar16);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar27 ^ uVar37;
  uVar27 = uVar27 << ((local_d0 ^ 0x45) & 0x3f);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar27 ^ uVar24;
  uVar7 = DAT_18267163c;
  uVar26 = (ulonglong)DAT_1826715d0;
  uVar31 = DAT_18267163c & 0xff;
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xfffffab7)) ^ uVar44) + uVar27 ^ CONCAT44(uVar34,uVar34);
  *(ulonglong *)(lVar3 + -0xc80) =
       (CONCAT44(uVar22,uVar9) ^ 0x85048e0ffffffc8) + *(longlong *)(lVar3 + -3000) ^ uVar26;
  bVar16 = *(byte *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0x8119c3b3)) ^ uVar26) ^ bVar15 ^ (byte)uVar7;
  *(byte *)(lVar3 + -0xd82) = bVar16;
  uVar21 = CONCAT44(uVar40,DAT_1826715ac);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xd80d7506)) = (ulonglong)bVar16 ^ (ulonglong)uVar31 ^ uVar28;
  *puVar1 = (uVar21 ^ 0xe36d35c504ba3e10) << (((byte)uVar13 ^ *(byte *)puVar2) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar19 * 4) = uVar18;
  return;
}



############ FUN_ 180f2a5b0 size=4456 ############

void FUN_180f2a5b0(void)

{
  longlong *plVar1;
  uint uVar2;
  byte bVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  uint *puVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte *pbVar24;
  uint *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint *puVar28;
  uint uVar29;
  ulonglong uVar30;
  uint *puVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  
  uVar8 = DAT_1826716e4;
  uVar35 = DAT_182671680;
  uVar22 = DAT_1826715a8;
  uVar33 = DAT_182671570;
  uVar34 = DAT_18267156c;
  uVar13 = DAT_182671568;
  lVar5 = DAT_182671560;
  uVar14 = (ulonglong)DAT_18267156c;
  uVar39 = (ulonglong)DAT_182671568;
  uVar19 = (ulonglong)DAT_182671570;
  uVar20 = DAT_182671568 ^ DAT_182671570;
  uVar37 = (DAT_1826715a8 << 0x10 | DAT_1826715a8 & 0xff00) << 8 | DAT_1826715a8 >> 8 & 0xff00 |
           DAT_1826715a8 >> 0x18;
  uVar38 = (DAT_18267156c << 0x10 | DAT_18267156c & 0xff00) << 8 | DAT_18267156c >> 8 & 0xff00 |
           DAT_18267156c >> 0x18;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671a3c);
  uVar29 = *(uint *)(&DAT_182611e78 + DAT_182671a3c) ^ DAT_18267156c;
  DAT_18267158c = uVar38;
  DAT_182671594 = uVar20;
  DAT_1826715b0 = uVar37;
  *(int *)(DAT_182671560 + -0x504) = (int)(DAT_182671568 ^ 0x294c0000) >> 0xe;
  uVar26 = (ulonglong)uVar38;
  uVar17 = *(uint *)(lVar5 + -0x5cc) ^ DAT_182671800;
  uVar32 = (*(uint *)(lVar5 - (uVar19 ^ 0xfffffcbb)) ^ DAT_1826717b0) -
           (*(uint *)(lVar5 + -0x3d4) ^ DAT_1826718c4);
  *(uint *)(lVar5 + -0x964) = uVar32 ^ uVar35;
  uVar21 = DAT_182671678;
  uVar32 = uVar32 * (*(uint *)(lVar5 + -0x874) ^ uVar35) ^ DAT_1826716dc;
  *(uint *)(lVar5 + -0x8c) = uVar32;
  uVar32 = uVar32 ^ DAT_1826716dc;
  *(uint *)(lVar5 + -0x774) = uVar17 * (uVar20 ^ 0x55b1eab2) ^ uVar21;
  puVar18 = (uint *)(lVar5 - ((ulonglong)uVar22 ^ 0xfffff88b));
  *(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0x367a1835)) = uVar32 + (uVar21 ^ *puVar18) ^ uVar8;
  bVar3 = (byte)(uVar22 >> 0x18);
  bVar4 = (byte)(uVar34 >> 0x18);
  *(uint *)(lVar5 + -0x27c) =
       (*(uint *)(lVar5 - ((ulonglong)uVar38 ^ 0x611f7d62)) ^ uVar8) << ((bVar3 ^ 0xf2) & 0x1f) ^
       DAT_1826717ac;
  uVar21 = (*(uint *)(lVar5 + -0x754) ^ uVar8) >> ((bVar4 ^ 0x25) & 0x1f) ^ DAT_1826716e0;
  puVar25 = (uint *)(lVar5 - ((ulonglong)uVar22 ^ 0xfffffd83));
  *(uint *)(lVar5 + -0x374) = uVar21;
  uVar12 = DAT_182671854;
  uVar8 = DAT_1826715c0;
  lVar5 = DAT_182671560;
  uVar30 = (ulonglong)uVar37;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar37 ^ 0xfffffcd7)) =
       (uVar21 ^ DAT_1826716e0 | *puVar25 ^ DAT_1826717ac) ^ DAT_1826715c0;
  uVar20 = *(uint *)(lVar5 + -0x328) ^ DAT_182671844 ^ uVar8;
  uVar21 = *(uint *)(lVar5 - ((ulonglong)uVar38 ^ 0x611f7242));
  uVar17 = *(uint *)(lVar5 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar5 + -0x678) = uVar20;
  uVar21 = (uVar21 ^ uVar35) + uVar17 ^ DAT_1826718a0;
  *(uint *)(lVar5 + -0x910) = uVar20 ^ DAT_182671818 ^ DAT_182671844;
  *(uint *)(lVar5 + -0x968) = uVar21;
  uVar35 = DAT_1826715d4;
  uVar21 = uVar21 ^ DAT_18267178c ^ DAT_1826718a0;
  *(uint *)(lVar5 + -0x47c) = uVar21;
  *(uint *)(lVar5 + -0x844) = uVar21 ^ uVar12 ^ DAT_18267178c;
  uVar23 = (ulonglong)DAT_182671620;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar33 ^ 0xfffffb0f)) =
       *(longlong *)(lVar5 - (uVar39 ^ 0xaa4e1db3)) + 0x19U ^ uVar23;
  *(byte *)(lVar5 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x4f0) ^ uVar23) ^ (byte)uVar35 ^ (byte)DAT_182671694;
  uVar20 = DAT_182671830;
  uVar23 = CONCAT44(DAT_182671594,uVar37);
  *(uint *)(DAT_182671560 + -0x504) =
       (uint)*(byte *)(lVar5 - ((ulonglong)uVar22 ^ 0xffffffbe)) ^ uVar35 & 0xff ^ DAT_182671830;
  uVar17 = DAT_182671698;
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xfffffc0f)) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0xfffffab7)) | uVar23 ^ 0xbe7ef6ce5603df7
  ;
  uVar11 = DAT_182671828;
  lVar5 = DAT_182671560;
  uVar32 = (*(uint *)(DAT_182671560 - ((ulonglong)uVar38 ^ 0x611f7326)) ^ DAT_182671818) +
           (uVar13 ^ 0xa3b93396);
  *(uint *)(DAT_182671560 + -0x344) = uVar32 ^ uVar17;
  *(uint *)(lVar5 + -0x3d4) = (uVar38 ^ 0xffffff70) << 0x16;
  lVar6 = DAT_182671560;
  uVar22 = (*(uint *)(lVar5 - ((ulonglong)uVar22 ^ 0xfffffafb)) ^ uVar20) <<
           (((byte)uVar34 ^ 0x70) & 0x1f) ^ DAT_18267167c;
  *(uint *)(DAT_182671560 + -0x964) = uVar22;
  uVar21 = DAT_1826717bc;
  puVar28 = (uint *)(lVar6 - (uVar14 ^ 0x367a1aad));
  *puVar28 = uVar32 - (uVar22 ^ DAT_18267167c) ^ DAT_18267165c;
  lVar5 = DAT_182671560;
  uVar22 = DAT_182671594 ^ 0x55b1eaa5;
  *(uint *)(DAT_182671560 + -0x8c) =
       (*(uint *)(DAT_182671560 + -0x5cc) ^ DAT_18267165c) *
       (*(uint *)(DAT_182671560 + -0x844) ^ uVar12) ^ uVar11;
  *(uint *)(lVar5 + -0x774) = (*(uint *)(lVar5 + -0x504) ^ uVar20) * uVar22 ^ uVar21;
  *(uint *)(lVar5 - (uVar30 ^ 0xfffff8ab)) = (uVar13 ^ 0x5ecf35b1) + (uVar38 ^ 0x68e85ce3);
  uVar22 = DAT_182671824;
  lVar6 = DAT_182671560;
  puVar31 = (uint *)(lVar5 - (uVar14 ^ 0x367a1c15));
  *puVar31 = (uVar21 ^ *(uint *)(DAT_182671560 + -0x774)) +
             (*(uint *)(DAT_182671560 + -0x8c) ^ uVar11) ^ DAT_182671824;
  bVar15 = (byte)DAT_182671570 ^ 0xec;
  *puVar25 = (*(uint *)(lVar6 + -0x374) ^ uVar22) << 0xd ^ DAT_1826717a0;
  *(uint *)(lVar6 + -0x874) =
       (*(uint *)(lVar6 + -0x374) ^ uVar22) >> (bVar15 & 0x1f) ^ DAT_18267170c;
  *(ulonglong *)(lVar6 - (uVar19 ^ 0xfffff607)) =
       (CONCAT44(uVar13,uVar37) ^ 0xca4f9640731eda12) <<
       ((byte)*(undefined8 *)(lVar6 - (uVar30 ^ 0xfffff577)) & 0x3f);
  uVar32 = DAT_182671738;
  uVar21 = DAT_182671594;
  *(uint *)(lVar6 + -0x968) =
       (*(uint *)(lVar6 + -0x874) ^ DAT_18267170c | *(uint *)(lVar6 + -0x27c) ^ DAT_1826717a0) ^
       DAT_182671738;
  *(uint *)(lVar6 + -0x328) =
       (*(uint *)(lVar6 - ((ulonglong)uVar21 ^ 0x55b1e974)) ^ DAT_182671624) +
       (*(uint *)(lVar6 + -0x844) ^ uVar12) ^ DAT_18267177c;
  *(uint *)(lVar6 + -0x47c) =
       *(uint *)(lVar6 - ((ulonglong)DAT_1826715a8 ^ 0xfffffcd7)) ^ DAT_182671728 ^ DAT_18267177c;
  uVar20 = DAT_182671714;
  uVar27 = (ulonglong)DAT_1826717d4;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0x611f7ce6)) =
       (CONCAT44(uVar13,uVar13) ^ 0xc66bb6fb9c28d0d) >> (((byte)uVar21 ^ 0x9f) & 0x3f);
  *(uint *)(lVar6 + -0x678) = uVar32 ^ uVar35 ^ *(uint *)(lVar6 + -0x968);
  lVar5 = DAT_182671560;
  uVar36 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       CONCAT44(uVar38,DAT_1826715a8) ^ 0x1e634ac2f3cb32a7 |
       CONCAT44(uVar34,DAT_1826715a8) ^ 0x7fff9cfd77f7710a;
  *(uint *)(lVar5 + -0x910) = *(uint *)(lVar5 - (uVar14 ^ 0x367a1b1d)) ^ uVar20 ^ DAT_182671728;
  *(uint *)(lVar5 + -0x3d4) = *(uint *)(lVar5 - (uVar39 ^ 0xaa4e133b)) ^ DAT_1826718bc ^ uVar35;
  uVar21 = DAT_1826717cc;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x611f732e)) =
       (CONCAT44(uVar34,uVar38) ^ 0x367a1f61611f7a36) * 0x20 +
       (CONCAT44(uVar33,uVar38) ^ 0xffffffff611f7a32) + *(longlong *)(lVar5 + -0x8f0) ^ uVar27;
  bVar10 = (byte)DAT_1826717e4;
  bVar16 = *(byte *)(*(ulonglong *)(lVar5 + -0x918) ^ uVar27) ^ (byte)DAT_1826717e4 ^
           (byte)DAT_182671694;
  *(byte *)(lVar5 + -0xc41) = bVar16;
  uVar22 = *(uint *)(lVar5 + -0x3d4) ^ DAT_1826718bc;
  *(uint *)(lVar5 + -0x344) = (bVar16 ^ bVar10) ^ uVar21;
  uVar7 = DAT_1826716ec;
  uVar14 = (ulonglong)DAT_182671594;
  *(uint *)(lVar5 + -0x964) = uVar22 + (uVar37 ^ 0xf608d92a) ^ uVar17;
  puVar25 = (uint *)(lVar5 - (uVar14 ^ 0x55b1e9f8));
  *(uint *)(lVar5 + -0x5cc) = (*puVar25 ^ uVar21) << 0x11 ^ DAT_18267176c;
  *(ulonglong *)(lVar5 + -0x5c8) =
       *(ulonglong *)(lVar5 + -0x6b8) >> ((byte)*(undefined8 *)(lVar5 + -0xa0) & 0x3f);
  *(uint *)(lVar5 + -0x504) =
       (*(uint *)(lVar5 - (uVar36 ^ 0xfffff69b)) ^ uVar17) - (*puVar28 ^ DAT_18267176c) ^
       DAT_182671718;
  uVar22 = DAT_182671598;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x611f7236)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar19 ^ 0xffffffcf)) ^ CONCAT44(uVar7,uVar7)) ^
       CONCAT44(uVar8,uVar8);
  uVar35 = (*(uint *)(lVar5 + -0x910) ^ uVar20) * (*(uint *)(lVar5 + -0x504) ^ DAT_182671718) ^
           DAT_18267183c;
  *(uint *)(lVar5 + -0x754) = uVar35;
  *(uint *)(lVar5 + -0x8c) =
       (*(uint *)(lVar5 + -0x344) ^ uVar21) * (uVar37 ^ 0xfffffffb) ^ DAT_1826718cc;
  *(ulonglong *)(lVar5 + -0x600) = CONCAT44(uVar22,uVar33) ^ 0x42440204400821 | 0xd7251ae99a9ed7ca;
  uVar8 = DAT_1826718b8;
  uVar21 = DAT_1826715bc;
  lVar6 = DAT_182671560;
  uVar27 = (ulonglong)DAT_1826715bc;
  *puVar18 = (*(uint *)(lVar5 - (uVar26 ^ 0x611f7aba)) ^ DAT_1826718cc) + (uVar35 ^ DAT_18267183c) ^
             DAT_1826718b8;
  *(uint *)(lVar5 + -0x374) = (uVar8 ^ *(uint *)(lVar5 + -0x774)) << 0xd ^ DAT_182671780;
  uVar35 = (uVar8 ^ *(uint *)(lVar5 + -0x774)) >> (bVar15 & 0x1f) ^ DAT_182671830;
  uVar14 = (ulonglong)DAT_182671578;
  *(uint *)(lVar5 + -0x27c) = uVar35;
  uVar8 = DAT_1826715a0;
  *(uint *)(lVar5 - (uVar30 ^ 0xfffff78b)) =
       (*(uint *)(lVar5 - (uVar14 ^ 0x4bb50d4)) ^ DAT_182671780 | uVar35 ^ DAT_182671830) ^ uVar21;
  uVar35 = DAT_182671748;
  uVar17 = (*(uint *)(lVar5 - (uVar39 ^ 0xaa4e1c53)) ^ uVar20) +
           (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624);
  *(uint *)(lVar5 + -0x844) = uVar17 ^ DAT_182671748;
  *(uint *)(lVar5 + -0x328) = uVar17 ^ uVar11;
  *(ulonglong *)(lVar5 + -0x688) = uVar23 ^ 0xdecfedee9f7f7dd9 | 0x9201a9ce9d7f59c9;
  uVar17 = DAT_182671884;
  *(uint *)(lVar6 - ((ulonglong)DAT_1826715a8 ^ 0xfffff697)) =
       *(uint *)(lVar6 - ((ulonglong)uVar8 ^ 0x999543ba)) ^ DAT_1826717f8 ^ uVar21;
  uVar21 = DAT_182671594;
  lVar5 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0x55b1eec0)) =
       *(uint *)(lVar6 + -0x328) ^ uVar17 ^ uVar11;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a8 ^ 0xfffff9c7)) =
       (CONCAT44(uVar34,uVar13) ^ 0x941ae4094fe860ec) << (((byte)uVar21 ^ 0xa6) & 0x3f);
  uVar21 = DAT_1826715ac;
  uVar23 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar5 + -0x678) =
       *(uint *)(lVar5 - (uVar39 ^ 0xaa4e1c2b)) ^ DAT_1826717f8 ^ DAT_1826716dc;
  bVar10 = (byte)DAT_1826717fc;
  uVar13 = DAT_18267157c;
  uVar19 = (ulonglong)DAT_18267157c;
  uVar14 = CONCAT44(DAT_18267157c,uVar21);
  pbVar24 = (byte *)(~CONCAT44(uVar37,uVar33) * 0x20 + (uVar14 ^ 0xc985e09f367a1f6e) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  *(ulonglong *)(DAT_182671560 + -0x4f0) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182671778;
  lVar5 = DAT_182671560;
  bVar15 = *pbVar24 ^ bVar10 ^ (byte)DAT_182671694;
  uVar20 = (uint)(bVar10 ^ bVar15);
  plVar1 = (longlong *)(DAT_182671560 + -0x270);
  *(byte *)(DAT_182671560 + -0x41) = bVar15;
  *(longlong *)(lVar5 + -0x400) = *plVar1 << 0x15;
  *(uint *)(lVar5 + -0x3d4) = uVar20 ^ uVar32;
  uVar33 = DAT_182671644;
  *(uint *)(lVar5 + -0x964) =
       (*(uint *)(lVar5 - ((ulonglong)uVar22 ^ 0xfffff987)) ^ DAT_1826716dc) + (uVar8 ^ 0x90626d1b)
       ^ DAT_182671644;
  uVar22 = DAT_18267185c;
  uVar21 = DAT_182671590;
  uVar30 = (ulonglong)DAT_182671590;
  *(uint *)(lVar5 - (uVar26 ^ 0x611f7ffa)) = uVar20 << 0x11 ^ DAT_18267185c;
  uVar20 = DAT_1826718b0;
  uVar33 = (uVar33 ^ *(uint *)(lVar5 + -0x964)) - (uVar22 ^ *(uint *)(lVar5 + -0x5cc)) ^
           DAT_182671720;
  *(uint *)(lVar5 + -0x504) = uVar33;
  uVar22 = (uVar33 ^ DAT_182671720) * (*(uint *)(lVar5 + -0x47c) ^ uVar17) ^ DAT_18267174c;
  *(uint *)(lVar5 + -0x344) = uVar22;
  uVar7 = DAT_182671580;
  lVar5 = DAT_182671560;
  uVar22 = uVar22 ^ DAT_18267174c;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (CONCAT44(uVar34,uVar21) ^ 0x4d8854154c63ee2) << ((bVar4 ^ 0x26) & 0x3f);
  uVar33 = (*(uint *)(lVar5 - (uVar19 ^ 0xc985e34b)) ^ DAT_182671738) * 0xf;
  *(uint *)(lVar5 + -0x754) = uVar33 ^ uVar35;
  uVar19 = CONCAT44(DAT_182671864,DAT_182671864);
  *(uint *)(lVar5 + -0x8c) = uVar22 + uVar33 ^ uVar20;
  uVar33 = DAT_18267159c;
  *(ulonglong *)(lVar5 + -0x9e8) =
       uVar19 ^ *(ulonglong *)(lVar5 + -0xbf0) ^ *(ulonglong *)(lVar5 + -0x628);
  *(uint *)(lVar5 + -0x774) =
       (*(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x99954b42)) ^ uVar20) <<
       (((byte)uVar33 ^ 0xd) & 0x1f) ^ DAT_182671774;
  uVar22 = (*(uint *)(lVar5 - (uVar23 ^ 0x367a1fed)) ^ uVar20) >> ((bVar3 ^ 0xec) & 0x1f) ^
           DAT_182671878;
  *(uint *)(lVar5 + -0x27c) = (DAT_1826715a8 ^ 0xfc4226f3) << 4;
  *(uint *)(lVar5 + -0x374) = uVar22;
  uVar35 = DAT_182671624;
  uVar23 = (ulonglong)DAT_182671588;
  *(uint *)(lVar5 + -0x910) =
       (*(uint *)(lVar5 - ((ulonglong)uVar33 ^ 0x8a25eb74)) ^ DAT_182671774 |
       *(uint *)(lVar5 - ((ulonglong)uVar21 ^ 0x6cf43db6)) ^ DAT_182671878) ^ DAT_1826716b0;
  uVar21 = DAT_1826716a8;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671598 ^ 0xfffff7bb)) =
       *(uint *)(*(ulonglong *)(lVar5 + -0x740) ^ uVar27) ^ DAT_1826717c0;
  uVar20 = DAT_1826718b4;
  uVar22 = DAT_1826715a4;
  uVar26 = (ulonglong)DAT_1826715a4;
  uVar17 = (*(uint *)(lVar5 + -0x47c) ^ uVar17) + (*(uint *)(lVar5 + -0x3c8) ^ uVar35);
  *(uint *)(lVar5 + -0x874) = uVar17 ^ uVar21;
  uVar17 = uVar17 ^ uVar35;
  uVar19 = (ulonglong)DAT_182671578;
  *(longlong *)(lVar5 + -0xa60) =
       *(longlong *)(lVar5 + -0x110) << ((byte)*(undefined8 *)(lVar5 + -0x9e8) & 0x3f);
  *(uint *)(lVar5 + -0x328) = uVar17;
  *(uint *)(lVar5 + -0x968) =
       *(uint *)(lVar5 - (uVar19 ^ 0x4bb5ab0)) ^ DAT_1826716b0 ^ DAT_1826716e0;
  *(uint *)(lVar5 - (uVar23 ^ 0xfffff987)) = uVar20 ^ uVar17 ^ uVar35;
  *(uint *)(lVar5 + -0x964) =
       *(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x999542a6)) ^ DAT_1826715e8 ^ DAT_1826716e0;
  uVar9 = DAT_1826715b4;
  *(ulonglong *)(lVar5 + -0x3b8) =
       CONCAT44(DAT_1826715b4,uVar22) ^ 0x41fd6a09f029786b | *(ulonglong *)(lVar5 + -0xa60);
  uVar35 = DAT_182671724;
  uVar8 = DAT_182671684;
  bVar4 = DAT_18267161c;
  pbVar24 = (byte *)((CONCAT44(uVar38,uVar7) ^ 0x611f7a365b926a3a) * 0x20 +
                     (CONCAT44(uVar9,uVar34) ^ 0xe09ec985367a1f7b) + *(longlong *)(lVar5 + -0x8f0));
  *(ulonglong *)(lVar5 + -0x4f0) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182671830;
  uVar21 = DAT_182671578;
  uVar19 = CONCAT44(uVar33,DAT_182671578);
  *(byte *)(lVar5 - ((ulonglong)DAT_182671578 ^ 0x4bb5fe1)) = *pbVar24 ^ (byte)DAT_182671694 ^ bVar4
  ;
  uVar34 = (uint)(*(byte *)(lVar5 + -0xc41) ^ bVar4);
  *(uint *)(lVar5 + -0x5cc) = uVar34 ^ uVar35;
  *(uint *)(lVar5 + -0x504) =
       (*(uint *)(lVar5 - ((ulonglong)uVar22 ^ 0xe55a1442)) ^ DAT_1826715e8) +
       (DAT_182671594 ^ 0x5c46cc69) ^ uVar8;
  *(uint *)(lVar5 - (uVar30 ^ 0x6cf43d16)) =
       uVar34 << (((byte)uVar13 ^ 0x8e) & 0x1f) ^ DAT_182671664;
  uVar13 = DAT_18267168c;
  *puVar25 = (*(uint *)(lVar5 + -0x504) ^ uVar8) - (*(uint *)(lVar5 + -0x3d4) ^ DAT_182671664) ^
             DAT_182671648;
  uVar34 = DAT_1826715ac ^ 0x367a1f7b;
  *(uint *)(lVar5 + -0x754) =
       (*(uint *)(lVar5 - ((ulonglong)uVar21 ^ 0x4bb55d8)) ^ DAT_1826718b4) *
       (*(uint *)(lVar5 + -0x344) ^ DAT_182671648) ^ DAT_182671834;
  *(ulonglong *)(lVar5 + -0x898) = (uVar19 ^ 0xbd68d3ee3b996516) << ((bVar3 ^ 0xf2) & 0x3f);
  uVar34 = (uVar35 ^ *(uint *)(lVar5 + -0x5cc)) * uVar34;
  uVar21 = DAT_182671598 ^ 0xf608d92a;
  *(uint *)(lVar5 + -0x8c) = uVar34 ^ uVar13;
  *(uint *)(lVar5 + -0x27c) = (*(uint *)(lVar5 + -0x504) ^ uVar8) + uVar21;
  uVar13 = DAT_182671858;
  uVar21 = DAT_18267163c;
  uVar34 = (*(uint *)(lVar5 - (uVar26 ^ 0xe55a1a72)) ^ DAT_182671834) + uVar34;
  *(uint *)(lVar5 + -0x774) = uVar34 ^ DAT_182671858;
  uVar13 = (uVar13 ^ *(uint *)(lVar5 + -0x774)) >> 0x13 ^ DAT_182671818;
  *(uint *)(lVar5 + -0x374) = uVar34 * 0x2000 ^ uVar21;
  *(uint *)(lVar5 + -0x844) = uVar13;
  *(uint *)(lVar5 - (uVar23 ^ 0xfffffb83)) =
       (uVar21 ^ *puVar31 | uVar13 ^ DAT_182671818) ^ DAT_1826716e8;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar14 ^ 0x18a4428714600042 | 0xc71999586b0f702d;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar38) * 4) = uVar29;
  return;
}



############ FUN_ 180ee7cd0 size=4142 ############

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

void FUN_180ee7cd0(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  byte *pbVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  
  uVar28 = DAT_1826716f4;
  uVar15 = DAT_1826715b4;
  uVar7 = DAT_182671598;
  uVar4 = DAT_18267157c;
  uVar17 = DAT_182671578;
  uVar22 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671578;
  uVar26 = (ulonglong)DAT_1826715b4;
  uVar23 = (ulonglong)DAT_182671598;
  uVar9 = DAT_182671578 & 3;
  uVar19 = (ulonglong)DAT_182671568;
  if (uVar9 < 2) {
    uVar16 = DAT_182671568;
    if (uVar9 == 0) {
      uVar16 = DAT_182671578;
    }
  }
  else {
    uVar16 = DAT_182671598;
    if (uVar9 < 3) {
      uVar16 = DAT_1826715b4;
    }
  }
  uVar9 = *(uint *)(&DAT_182611e80 + DAT_182671970);
  uVar13 = *(uint *)(&DAT_182611e78 + DAT_182671970) ^ DAT_182671578;
  uVar33 = (ulonglong)uVar16;
  uVar29 = (ulonglong)DAT_18267157c;
  DAT_1826715a4 = uVar16;
  *(uint *)(DAT_182671560 + -0x754) =
       (*(uint *)(DAT_182671560 + -0x964) ^ DAT_1826716a8) -
       (*(uint *)(DAT_182671560 - (uVar23 ^ 0xfd76bb86)) ^ DAT_1826715c8) ^ _DAT_1826715d8;
  bVar12 = (byte)uVar16;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x4dd8f63)) =
       (CONCAT44(uVar22,uVar4) ^ 0x37ae43443bf8a09e) << ((bVar12 ^ 0xd0) & 0x3f);
  puVar32 = (uint *)(lVar2 - (uVar23 ^ 0xfd76bd86));
  *(uint *)(lVar2 + -0x344) =
       (*(uint *)(lVar2 - (uVar26 ^ 0x8ad82f03)) ^ _DAT_1826715d8) * (*puVar32 ^ uVar28) ^
       DAT_182671874;
  *(uint *)(lVar2 + -0x874) =
       (*(uint *)(lVar2 + -0x678) ^ DAT_18267167c) * (uVar4 ^ 0x64160ad9) ^ DAT_1826716c8;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x4dd8ca3)) =
       CONCAT44(uVar15,uVar16) ^ 0x1dbea6b8c6e9d78a | *(ulonglong *)(lVar2 + -0x898);
  uVar30 = DAT_182671860;
  uVar24 = _DAT_18267161c;
  uVar27 = (*(uint *)(lVar2 - (uVar19 ^ 0x96b75dcd)) ^ DAT_182671874) +
           (*(uint *)(lVar2 + -0x874) ^ DAT_1826716c8);
  *(uint *)(lVar2 + -0x5cc) = uVar27 ^ _DAT_18267161c;
  uVar14 = DAT_182671578;
  uVar27 = uVar27 << ((bVar12 ^ 0xf7) & 0x1f);
  *(uint *)(lVar2 + -0x274) = uVar27 ^ uVar30;
  uVar10 = DAT_18267178c;
  uVar24 = (*(uint *)(lVar2 + -0x5cc) ^ uVar24) >> ((byte)uVar14 & 0x1f) ^ DAT_1826717d4;
  uVar14 = *(uint *)(lVar2 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar2 + -0x844) = uVar24;
  *(uint *)(lVar2 + -0x504) = (uVar24 ^ DAT_1826717d4 | uVar27) ^ DAT_18267169c;
  uVar30 = DAT_182671844;
  uVar23 = (ulonglong)DAT_1826717e0;
  uVar14 = uVar14 + (*puVar32 ^ uVar28) ^ DAT_1826716b0;
  *(uint *)(lVar2 + -0x328) = uVar14;
  *(uint *)(lVar2 + -0x374) = uVar14 ^ uVar30 ^ DAT_1826716b0;
  lVar3 = DAT_182671560;
  *(uint *)(lVar2 - (uVar26 ^ 0x8ad8213f)) =
       *(uint *)(lVar2 - ((ulonglong)uVar4 ^ 0x64160fdd)) ^ DAT_182671790 ^ DAT_18267169c;
  uVar27 = DAT_1826716f8;
  *(uint *)(lVar3 + -0x964) = *(uint *)(lVar2 + -0x374) ^ DAT_1826716f8 ^ uVar30;
  *(uint *)(lVar3 + -0x47c) = uVar10 ^ DAT_182671790 ^ *(uint *)(lVar3 + -0x968);
  *(ulonglong *)(lVar3 + -0x3f0) =
       CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0x6b8) ^ 0x9f7cf8f7f75a2b3a;
  bVar1 = (byte)DAT_182671834;
  uVar8 = DAT_1826716fc;
  uVar24 = DAT_182671588;
  uVar34 = (ulonglong)DAT_182671588;
  uVar20 = DAT_182671588 << 0x10;
  pbVar18 = (byte *)(*(longlong *)(lVar3 - (uVar19 ^ 0x96b75679)) +
                     (CONCAT44(uVar7,uVar22) ^ 0xfd76bffa96b75e89) * 0x20 +
                    (CONCAT44(uVar16,uVar4) ^ 0xfd76bffa64160ad2));
  *(ulonglong *)(lVar3 + -0x9e0) = (ulonglong)pbVar18 ^ uVar23;
  *(byte *)(lVar3 + -0xb89) = *pbVar18 ^ bVar1 ^ (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x64160fb9)) ^ (ulonglong)DAT_1826718c4) =
       bVar12 ^ 0xb0;
  uVar25 = (uint)(*(byte *)(lVar3 - ((ulonglong)uVar4 ^ 0x64160150)) ^ bVar1);
  *(uint *)(lVar3 + -0x754) = uVar25 ^ uVar8;
  uVar14 = DAT_182671588;
  uVar21 = (uVar20 | uVar24 & 0xff00) << 8 | uVar24 >> 8 & 0xff00 | DAT_182671588 >> 0x18;
  uVar11 = (ulonglong)uVar21;
  uVar23 = CONCAT44(uVar24,uVar21);
  DAT_1826715b0 = uVar21;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar23 ^ 0x128fcaf12ce61d1c;
  uVar20 = (*(uint *)(lVar3 + -0x47c) ^ uVar10) + (uVar24 ^ 0x387ada18);
  *(uint *)(lVar3 + -0x678) = uVar20 ^ uVar30;
  *(uint *)(lVar3 + -0x344) = (uVar21 ^ 0xce77f461) - (*(uint *)(lVar3 + -0x374) ^ uVar30);
  bVar12 = (byte)(uVar14 >> 0x18);
  uVar14 = uVar25 << (bVar12 & 0x1f) ^ DAT_182671664;
  *(uint *)(lVar3 + -0x874) = uVar14;
  uVar14 = uVar20 - (uVar14 ^ DAT_182671664) ^ _DAT_182671618;
  *(uint *)(lVar3 + -0x5cc) = uVar14;
  uVar14 = uVar14 ^ _DAT_182671618;
  *(ulonglong *)(lVar3 + -0x110) = uVar23 ^ 0xfa76df7affbff49e | 0xd0044c687eadf08e;
  bVar1 = (byte)DAT_182671568;
  *(uint *)(lVar3 + -0x274) = uVar14 * (*(uint *)(lVar3 + -0x964) ^ uVar27) ^ uVar10;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x318dfaf5)) =
       (uVar23 ^ 0xf655633d9443177b) << ((byte)*(undefined8 *)(lVar3 + -0x240) & 0x3f);
  uVar30 = DAT_1826716e8;
  uVar14 = (*(uint *)(lVar3 + -0x754) ^ uVar8) * 0xb;
  *(uint *)(lVar3 + -0x844) = uVar14 ^ DAT_1826716e8;
  uVar14 = uVar14 + (uVar10 ^ *(uint *)(lVar3 + -0x274)) ^ DAT_1826717d8;
  *(uint *)(lVar3 + -0x27c) = uVar14;
  uVar14 = uVar14 ^ DAT_1826717d8;
  *(uint *)(lVar3 + -0x328) = uVar14 << ((bVar1 ^ 0x84) & 0x1f) ^ DAT_182671704;
  uVar8 = DAT_18267171c;
  *(uint *)(DAT_182671560 - (uVar33 ^ 0xfd76bafe)) = uVar14 >> 0x13 ^ DAT_18267171c;
  lVar2 = DAT_182671560;
  uVar14 = *(uint *)(DAT_182671560 + -0x3c8) ^ DAT_182671624;
  uVar20 = (*(uint *)(DAT_182671560 + -0x504) ^ uVar8 |
           *(uint *)(DAT_182671560 + -0x328) ^ DAT_182671704) ^ DAT_1826718d4;
  uVar23 = CONCAT44(uVar17,DAT_182671598);
  *(uint *)(DAT_182671560 + -0x968) = uVar20;
  uVar23 = (uVar23 ^ 0x51b16fcd905d196d) >> ((bVar12 ^ 0xe) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa88) = uVar23;
  bVar1 = DAT_18267188c;
  uVar14 = uVar14 + (*(uint *)(lVar2 + -0x964) ^ uVar27) ^ uVar28;
  *(uint *)(lVar2 + -0x47c) = uVar14;
  uVar28 = uVar14 ^ DAT_1826718b0 ^ uVar28;
  uVar14 = *(uint *)(lVar2 - (uVar31 ^ 0x4dd81f7));
  uVar27 = DAT_1826715b4 ^ 0xab9fdfc2;
  *(uint *)(lVar2 + -0x344) = uVar28;
  uVar10 = DAT_182671720 ^ DAT_1826718d4;
  *(uint *)(lVar2 + -0x374) = uVar14 ^ uVar30 | uVar27;
  uVar27 = DAT_182671754;
  *(uint *)(lVar2 + -0x678) = uVar10 ^ uVar20;
  uVar28 = uVar28 ^ uVar27 ^ DAT_1826718b0;
  *(ulonglong *)(lVar2 + -0x400) = *(ulonglong *)(lVar2 - (uVar11 ^ 0xcdfc8b09)) | uVar23;
  *(uint *)(lVar2 - (uVar26 ^ 0x8ad82023)) = uVar28;
  *(longlong *)(lVar2 + -0x2a0) = -0x5c2489609844134 - *(longlong *)(lVar2 + -0x548);
  *(uint *)(lVar2 + -0x5cc) = *(uint *)(lVar2 + -0x678) ^ DAT_18267189c ^ DAT_182671720;
  *(ulonglong *)(lVar2 + -0xc08) =
       (CONCAT44(uVar16,uVar15) ^ 0x3e426db7cdd217a4) + *(longlong *)(lVar2 + -0x548);
  pbVar18 = (byte *)(*(longlong *)(lVar2 + -0x8f0) + 0x16 +
                    (CONCAT44(uVar24,uVar24) ^ 0x318dfccd318dfccd) * 0x20);
  *(ulonglong *)(lVar2 + -0x618) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182671654;
  *(longlong *)(lVar2 + -0xbf0) = *(longlong *)(lVar2 - (uVar34 ^ 0x318dfd3d)) + 0x5cc71b354681fc0;
  uVar14 = DAT_18267157c;
  *(byte *)(lVar2 - (uVar19 ^ 0x96b75ec8)) = *pbVar18 ^ bVar1 ^ (byte)DAT_182671694;
  uVar28 = DAT_1826715ec;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x96b75419)) ^ (ulonglong)DAT_1826717a8) =
       (byte)uVar14 ^ 0xa4;
  uVar30 = (*(byte *)(lVar2 + -0x41) ^ bVar1) ^ DAT_182671700;
  *(uint *)(lVar2 + -0x754) = uVar30;
  uVar30 = uVar30 ^ DAT_182671700;
  uVar10 = *(uint *)(lVar2 + -0x5cc) ^ DAT_18267189c;
  uVar20 = (uVar24 ^ 0x318dfcdb) * uVar30 ^ DAT_182671710;
  *(ulonglong *)(lVar2 + -0x748) =
       (CONCAT44(uVar21,uVar22) ^ 0xa1ea1613690de827) -
       (CONCAT44(uVar7,uVar17) ^ 0x23fa7e2b9aeddff9);
  uVar10 = uVar10 + (DAT_1826715b4 ^ 0x832f0e82);
  *(uint *)(lVar2 + -0x274) = uVar10 ^ uVar28;
  uVar28 = DAT_182671570;
  uVar23 = *(ulonglong *)(lVar2 - (uVar31 ^ 0x4dd8243));
  uVar30 = uVar30 << 0x11 ^ DAT_1826716e0;
  *(uint *)(lVar2 + -0x27c) = uVar30;
  uVar30 = uVar30 ^ DAT_1826716e0;
  *(ulonglong *)(lVar2 + -0x80) = uVar23 ^ 0x61a64d1042d46ad;
  *(uint *)(lVar2 + -0x504) = uVar14 ^ 0xaf552b03 | uVar30;
  *(uint *)(lVar2 + -0x328) = uVar10 - uVar30 ^ DAT_182671798;
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 - ((ulonglong)uVar28 ^ 0xad9673e)) ^ DAT_182671798) *
       (*(uint *)(lVar2 + -0x874) ^ uVar27) ^ DAT_182671744;
  uVar10 = DAT_18267182c;
  uVar30 = DAT_18267159c;
  *(uint *)(lVar2 - (uVar33 ^ 0xfd76b7be)) = uVar20;
  *(ulonglong *)(lVar2 + -0x600) =
       CONCAT44(uVar17,uVar30) ^ CONCAT44(uVar15,uVar15) ^ 0x836875d22ca33acd;
  uVar14 = (*(uint *)(lVar2 - (uVar29 ^ 0x6416029d)) ^ DAT_182671710) +
           (*(uint *)(lVar2 + -0x964) ^ DAT_182671744);
  *(uint *)(lVar2 + -0x374) = uVar14 ^ uVar10;
  *(uint *)(lVar2 + -0x47c) = uVar14 * 0x2000 ^ DAT_18267160c;
  *(ulonglong *)(lVar2 + -0x3b8) =
       *(ulonglong *)(lVar2 - (uVar26 ^ 0x8ad82d9f)) ^ 0xfd36a5e98f26cdc7;
  uVar14 = DAT_182671698;
  uVar23 = (ulonglong)DAT_182671598;
  *(uint *)(lVar2 - (uVar34 ^ 0x318df5a5)) =
       (*(uint *)(lVar2 + -0x374) ^ uVar10) >> 0x13 ^ DAT_182671698;
  *(uint *)(lVar2 - (uVar23 ^ 0xfd76bcbe)) =
       (*(uint *)(lVar2 + -0x47c) ^ DAT_18267160c | uVar14 ^ *(uint *)(lVar2 + -0x968)) ^
       DAT_182671880;
  uVar10 = DAT_182671740;
  uVar27 = (*(uint *)(lVar2 - (uVar11 ^ 0xcdfc8545)) ^ uVar27) +
           (*(uint *)(lVar2 - ((ulonglong)uVar30 ^ 0x64074f27)) ^ DAT_182671624) ^ DAT_182671740;
  *(uint *)(lVar2 + -0x678) = uVar27;
  uVar14 = *(uint *)(lVar2 + -0x344) ^ DAT_182671880;
  *(uint *)(lVar2 + -0x5cc) = uVar27 ^ DAT_182671784 ^ uVar10;
  bVar1 = (byte)DAT_1826718d0;
  uVar20 = DAT_1826717e8;
  uVar19 = (ulonglong)DAT_1826716a8;
  *(uint *)(lVar2 + -0x274) = uVar14 ^ uVar8;
  uVar6 = DAT_18267158c;
  *(uint *)(lVar2 + -0x27c) =
       *(uint *)(lVar2 - (uVar34 ^ 0x318df901)) ^ DAT_182671784 ^ DAT_1826716fc;
  uVar25 = DAT_18267180c;
  uVar27 = DAT_182671694;
  *(uint *)(lVar2 + -0x504) = *(uint *)(lVar2 - (uVar11 ^ 0xcdfc8f45)) ^ uVar10 ^ uVar8;
  uVar14 = DAT_182671580;
  uVar23 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 + -0x530) =
       (CONCAT44(uVar30,uVar24) ^ 0x64074cef318dfccc) +
       (CONCAT44(uVar7,uVar15) ^ 0xfd76bffa8ad82857) * 0x20 + *(longlong *)(lVar2 + -0x8f0) ^ uVar19
  ;
  bVar12 = (byte)uVar27;
  *(byte *)(lVar2 + -0x561) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0x2894535)) ^ uVar19) ^ bVar1 ^ bVar12;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x20) ^ (ulonglong)DAT_182671780) = 0x3d;
  lVar3 = DAT_182671560;
  uVar24 = (uint)(bVar1 ^ *(byte *)(lVar2 + -0x561));
  uVar15 = DAT_1826715b0 ^ 0xc40babe4;
  *(uint *)(lVar2 + -0x328) = uVar24 ^ uVar20;
  uVar7 = DAT_1826717fc;
  *(uint *)(lVar2 + -0x754) = (*(uint *)(lVar2 + -0x504) ^ uVar10) + uVar15 ^ uVar25;
  uVar5 = DAT_182671584;
  *(uint *)(lVar2 - ((ulonglong)uVar14 ^ 0x3bfe2a3c)) =
       uVar24 << (((byte)uVar6 ^ 0xf1) & 0x1f) ^ uVar7;
  lVar2 = DAT_182671560;
  uVar24 = *(uint *)(lVar3 + -0x27c) ^ DAT_1826716fc;
  *(ulonglong *)(lVar3 + -0x628) =
       (CONCAT44(uVar16,uVar5) ^ 0x1a66044f8a639c91) -
       *(longlong *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0xfd76bd8a));
  uVar15 = (*(uint *)(lVar3 + -0x754) ^ uVar25) - (uVar7 ^ *(uint *)(lVar3 + -0x964)) ^
           DAT_1826717b4;
  *(uint *)(lVar3 + -0x844) = uVar15;
  uVar7 = DAT_1826715ac;
  uVar23 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar3 - (uVar33 ^ 0xfd76bc8e)) = uVar24 * (uVar15 ^ DAT_1826717b4) ^ DAT_1826717ec;
  uVar24 = DAT_1826717b8;
  *(uint *)(DAT_182671560 - (uVar23 ^ 0x489002dc)) =
       (uVar20 ^ *(uint *)(DAT_182671560 + -0x328)) * (uVar28 ^ 0xad96417) ^ DAT_1826717b8;
  uVar15 = DAT_182671794;
  *(ulonglong *)(lVar2 + -0x9e8) =
       CONCAT44(uVar17,DAT_182671590) ^ 0xec16be63bcd5c97d | *(ulonglong *)(lVar2 + -0x400);
  uVar17 = (uVar24 ^ *(uint *)(lVar2 + -0x47c)) + (*(uint *)(lVar2 + -0x374) ^ DAT_1826717ec);
  *(uint *)(lVar2 + -0x968) = uVar17 ^ uVar15;
  *(uint *)(lVar2 + -0x874) = uVar17 << (((byte)uVar28 ^ 0x1b) & 0x1f) ^ DAT_182671670;
  uVar17 = (uVar15 ^ *(uint *)(lVar2 + -0x968)) >> 0x13 ^ DAT_1826716dc;
  *(ulonglong *)(lVar2 + -0x1d8) =
       (CONCAT44(uVar22,uVar7) ^ 0x8c80daa2cbfc98c0) >> (((byte)DAT_182671598 ^ 0xdf) & 0x3f);
  *(uint *)(lVar2 - (uVar23 ^ 0x489000d8)) = uVar17;
  uVar7 = DAT_1826717c8;
  uVar17 = DAT_1826715c0;
  uVar19 = (ulonglong)DAT_182671620;
  *(uint *)(lVar2 - (uVar26 ^ 0x8ad82b13)) =
       (*(uint *)(lVar2 + -0x678) ^ DAT_1826716dc | *(uint *)(lVar2 + -0x874) ^ DAT_182671670) ^
       DAT_18267170c;
  uVar15 = uVar17 ^ DAT_18267170c;
  uVar28 = (*(uint *)(lVar2 + -0x27c) ^ DAT_1826716fc) + (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624)
           ^ _DAT_182671838;
  *(uint *)(lVar2 + -0x5cc) = uVar28;
  uVar28 = uVar28 ^ DAT_18267187c ^ _DAT_182671838;
  *(uint *)(lVar2 + -0x504) = uVar15 ^ *(uint *)(lVar2 + -0x344);
  *(uint *)(lVar2 + -0x274) = uVar28;
  *(uint *)(lVar2 + -0x754) =
       *(uint *)(lVar2 - (uVar31 ^ 0x4dd8bc7)) ^ DAT_18267166c ^ DAT_18267187c;
  *(uint *)(lVar2 - (uVar11 ^ 0xcdfc8455)) =
       *(uint *)(lVar2 - ((ulonglong)DAT_182671574 ^ 0x966b3827)) ^ uVar7 ^ uVar17;
  bVar1 = (byte)DAT_1826716d0;
  pbVar18 = (byte *)((CONCAT44(uVar5,uVar4) ^ 0xa006904864160ad9) * 0x20 +
                     (CONCAT44(uVar21,uVar22) ^ 0xcdfc8d3196b75e85) + *(longlong *)(lVar2 + -0x8f0))
  ;
  uVar23 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar2 + -0x928) = (ulonglong)pbVar18 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x800) =
       *(ulonglong *)(uVar23 ^ *(ulonglong *)(lVar2 + -0x450)) ^ CONCAT44(uVar17,uVar17);
  *(byte *)(lVar2 + -0xa09) = *pbVar18 ^ bVar12 ^ bVar1;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar33 ^ 0xfd76beca)) ^ (ulonglong)DAT_182671890) = 0x4d;
  uVar22 = (uint)(*(byte *)(lVar2 + -0xa09) ^ bVar1);
  *(uint *)(lVar2 + -0x844) = uVar22 ^ DAT_182671650;
  *(ulonglong *)(lVar2 + -0xa0) =
       *(longlong *)(lVar2 - (uVar11 ^ 0xcdfc8ec1)) - (CONCAT44(uVar6,uVar4) ^ 0x504127a239c8a6c3);
  *(uint *)(lVar2 + -0x328) =
       (uVar7 ^ *(uint *)(lVar2 + -0x964)) + (DAT_182671598 ^ 0xf481992f) ^ uVar25;
  *(uint *)(lVar2 + -0x374) = uVar22 << (((byte)uVar14 ^ 0x49) & 0x1f) ^ uVar27;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar9 ^ uVar16) * 4) = uVar13;
  return;
}



############ FUN_ 180ea1380 size=5689 ############

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

void FUN_180ea1380(void)

{
  longlong *plVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  byte *pbVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  byte bVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_60;
  
  uVar13 = DAT_182671894;
  uVar17 = DAT_18267174c;
  uVar15 = DAT_1826715b0;
  uVar14 = DAT_1826715a4;
  lVar3 = DAT_182671560;
  uVar26 = (ulonglong)DAT_1826715a4;
  uVar35 = (ulonglong)DAT_1826715b0;
  uVar28 = DAT_1826715b0 & DAT_1826715a4;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671b88);
  uVar21 = *(uint *)(&DAT_182611e78 + DAT_182671b88) ^ DAT_1826715a4;
  uVar30 = (ulonglong)DAT_1826715b0;
  uVar31 = (ulonglong)DAT_1826715a4;
  uVar23 = CONCAT44(DAT_18267163c,DAT_18267163c);
  uVar27 = *(ulonglong *)(DAT_182671560 + -0x318);
  uVar33 = CONCAT44(DAT_18267174c,DAT_18267174c);
  DAT_182671578 = uVar28;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       (*(ulonglong *)(DAT_182671560 + -0x80) ^ uVar23) << 0x30 ^ uVar33;
  uVar19 = DAT_1826718bc;
  uVar29 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar3 + -0x6d0) =
       CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0x1f0) ^ uVar27 ^ uVar29;
  uVar16 = DAT_182671818;
  uVar13 = DAT_1826717dc;
  uVar41 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar33 = *(ulonglong *)(lVar3 - (uVar35 ^ 0x6079660)) ^ uVar33 | uVar27 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x240) = uVar33 ^ uVar41;
  uVar29 = CONCAT44(uVar16,uVar16);
  uVar27 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar3 + -0x8a8) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0x60792b0)) ^ CONCAT44(uVar13,uVar13)) -
       (CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar3 + -0xa0)) ^ uVar29;
  *(ulonglong *)(lVar3 + -0x800) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x60798b8)) ^ uVar29) - uVar33 ^ uVar27;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x6079c18)) =
       (CONCAT44(uVar14,uVar15) ^ 0xa85676392a0a351e) +
       (CONCAT44(uVar28,uVar15) ^ 0xc219c2d6155f8724);
  uVar16 = DAT_1826715fc;
  uVar13 = DAT_1826715e4;
  uVar34 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar3 + -0x638) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x6079250)) ^ uVar41) -
       (CONCAT44(DAT_1826716d0,DAT_1826716d0) ^ *(ulonglong *)(lVar3 + -0xa60)) ^ uVar34;
  uVar42 = CONCAT44(uVar13,uVar13);
  uVar36 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x30) ^ uVar36) =
       CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar3 + -0x600) ^ uVar42;
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar3 + -0xb78) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x6079020)) ^ uVar36) +
       (CONCAT44(uVar28,uVar14) ^ 0x607901006079011) * 8 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x748) =
       CONCAT44(uVar14,uVar28) ^ *(ulonglong *)(lVar4 + -0x6d0) ^ 0xce531d9fd17ecc5;
  uVar13 = DAT_1826717b4;
  uVar29 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar30 ^ 0x6079b68)) ^ uVar33) =
       *(ulonglong *)(lVar4 + -0x688) ^ uVar29 ^ uVar42;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x4a0) =
       (*(ulonglong *)(lVar4 + -0x30) ^ uVar36) + (CONCAT44(uVar15,uVar14) ^ 0x607901006079012) * 8
       ^ uVar30;
  uVar7 = DAT_18267156c;
  uVar31 = (ulonglong)DAT_18267156c;
  uVar20 = DAT_18267156c & 0xff00;
  *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671568 ^ 0x2e3f1bf0)) ^ uVar30) =
       uVar42 ^ uVar27 ^ *(ulonglong *)(lVar4 + -0x800);
  uVar6 = DAT_18267156c;
  uVar22 = (uVar7 << 0x10 | uVar20) << 8 | uVar7 >> 8 & 0xff00 | DAT_18267156c >> 0x18;
  DAT_1826715b4 = uVar22;
  *(uint *)(lVar4 - ((ulonglong)uVar22 ^ 0x9fef8a9)) =
       (uVar7 ^ 0x6f1f023d) + *(int *)(lVar4 + -0x844);
  puVar24 = (ulonglong *)
            ((*(ulonglong *)(lVar4 + -0x30) ^ uVar36) +
            (CONCAT44(uVar7,uVar7) ^ 0xfdfffe09fdfffe0a) * 8);
  *(ulonglong *)(lVar4 + -0x6f0) = (ulonglong)puVar24 ^ CONCAT44(DAT_182671718,DAT_182671718);
  uVar13 = DAT_1826716b8;
  lVar3 = DAT_182671560;
  *puVar24 = *(ulonglong *)(lVar4 + -0x638) ^ uVar42 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x9f8) =
       (CONCAT44(uVar22,uVar22) ^ 0xd2c725ce6c2640df) <<
       ((*(byte *)(lVar4 - ((ulonglong)uVar7 ^ 0xfdfff481)) ^ (byte)DAT_182671630) & 0x3f);
  uVar16 = DAT_18267179c;
  uVar30 = CONCAT44(uVar7,uVar22) ^ 0xfdfffe0909fefffd;
  puVar24 = (ulonglong *)(*(longlong *)(lVar3 + -0xc18) + uVar30 * 8);
  *(ulonglong *)(lVar3 + -0xa38) = (ulonglong)puVar24 ^ CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar27 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xfdfff691)) = *puVar24 ^ uVar27 ^ uVar42;
  bVar38 = (byte)uVar13 ^ (byte)DAT_1826716ec;
  uVar27 = (*(ulonglong *)(lVar3 + -0x898) ^ uVar27) >> (((byte)(uVar6 >> 0x18) ^ 0xfd) & 0x3f) ^
           CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x400) = uVar27;
  *(byte *)(lVar3 + -0xbd9) = bVar38 ^ (byte)uVar27;
  uVar16 = DAT_1826716cc;
  uVar6 = DAT_182671568;
  uVar33 = (ulonglong)DAT_1826717e8;
  *(ulonglong *)(lVar3 + -0xc40) =
       uVar30 * 0x20 + (CONCAT44(uVar7,uVar7) ^ 0xfdfffe09fdfffe09) + *(longlong *)(lVar3 + -0x8f0)
       ^ uVar33;
  uVar12 = DAT_1826715ac;
  uVar20 = DAT_182671570;
  uVar27 = CONCAT44(DAT_182671570,uVar22);
  *(longlong *)(lVar3 - (uVar35 ^ 0x6079558)) =
       -0x10f7870a21ab7d53 << (((byte)DAT_1826715ac ^ 0x35) & 0x3f);
  *(byte *)(uVar33 ^ *(ulonglong *)(lVar3 + -0xc40)) =
       *(byte *)(lVar3 + -0xbd9) ^ (byte)DAT_182671694 ^ (byte)DAT_1826716ec;
  uVar13 = _DAT_182671618;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xc18) +
            ((uVar27 ^ 0xf8d1ef4c09fefffd) + (CONCAT44(uVar6,uVar15) ^ 0x2e3f1f5006079010) * 4) * 8)
  ;
  *(ulonglong *)(lVar3 + -0x880) = (ulonglong)puVar24 ^ CONCAT44(DAT_1826716e0,DAT_1826716e0);
  lVar4 = DAT_182671560;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x270) = *puVar24 ^ uVar27 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x9fefd8d)) ^ uVar27) >>
       (((byte)uVar14 ^ 0x18) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar11 = DAT_182671694;
  uVar8 = DAT_18267157c;
  uVar30 = (ulonglong)DAT_182671780;
  uVar27 = (ulonglong)DAT_182671570;
  *(byte *)(lVar4 - (uVar31 ^ 0xfdffffe8)) =
       *(byte *)(lVar4 - ((ulonglong)DAT_1826715ac ^ 0x356d3614)) ^ (byte)uVar16 ^ (byte)uVar17;
  pbVar25 = (byte *)(*(longlong *)(lVar4 + -0x8f0) + 1 +
                    (CONCAT44(uVar14,uVar28) ^ 0x607901006079010) * 0x20);
  *(ulonglong *)(lVar4 + -0x20) = (ulonglong)pbVar25 ^ uVar30;
  uVar13 = _DAT_1826715d8;
  *pbVar25 = *(byte *)(lVar4 - (uVar27 ^ 0xf8d1eead)) ^ (byte)uVar17 ^ (byte)uVar11;
  uVar9 = DAT_1826715a0;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xfdfff639)) =
       *(longlong *)(lVar4 + -0xc18) + (CONCAT44(uVar15,uVar28) ^ 0x607901006079010) * 8 ^ uVar32;
  uVar13 = DAT_182671760;
  *(ulonglong *)(lVar4 + -0x6b8) =
       (CONCAT44(uVar14,uVar6) ^ 0x8130146eeddbb448) >> (((byte)uVar6 ^ 0x68) & 0x3f);
  uVar17 = DAT_18267171c;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x860d3f70)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x860d34f8)) ^ uVar32) ^ uVar27 ^
       uVar42;
  uVar16 = DAT_182671704;
  uVar13 = DAT_182671598;
  uVar8 = DAT_182671574;
  uVar34 = (ulonglong)DAT_182671574;
  uVar30 = (ulonglong)DAT_182671864;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x3d13afd1)) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0x3b8)) >> ((byte)uVar15 & 0x3f) ^ CONCAT44(uVar17,uVar17);
  uVar10 = DAT_18267159c;
  bVar38 = (byte)DAT_182671744 ^ (byte)uVar11;
  *(byte *)(lVar4 + -0x65a) = (byte)uVar17 ^ (byte)DAT_182671744 ^ *(byte *)(lVar4 + -0x1d8);
  uVar9 = DAT_182671594;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xfdffff61)) =
       *(longlong *)(DAT_182671560 + -0x8f0) + 2 +
       (CONCAT44(uVar8,uVar14) ^ 0xedeef40906079010) * 0x20 ^ uVar30;
  uVar27 = CONCAT44(DAT_182671590,uVar9);
  *(byte *)(*(ulonglong *)(lVar3 + -0x168) ^ uVar30) = bVar38 ^ *(byte *)(lVar3 + -0x65a);
  uVar17 = DAT_182671778;
  puVar24 = (ulonglong *)((uVar27 ^ 0x1b0700053cc8860d) * 0x20 + *(longlong *)(lVar3 + -0xc18));
  *(ulonglong *)(lVar3 + -0x6a0) = (ulonglong)puVar24 ^ CONCAT44(DAT_182671640,DAT_182671640);
  uVar27 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x9e8) = *puVar24 ^ uVar27 ^ uVar42;
  bVar38 = (byte)DAT_182671684;
  lVar3 = DAT_182671560;
  uVar27 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0x9fef615)) ^ uVar27) >>
           ((byte)uVar10 & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar30 = (ulonglong)DAT_182671834;
  bVar39 = (byte)uVar16 ^ (byte)DAT_182671684 ^ (byte)uVar27;
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar27;
  bVar38 = bVar38 ^ bVar39 ^ (byte)DAT_182671694;
  *(byte *)(lVar3 + -0xce2) = bVar39;
  uVar10 = DAT_182671594;
  uVar11 = DAT_18267158c;
  uVar43 = (ulonglong)DAT_18267158c;
  pbVar25 = (byte *)(*(longlong *)(lVar3 + -0x8f0) + 3 +
                    (CONCAT44(uVar22,DAT_1826715ac) ^ 0x9fefffd356d3004) * 0x20);
  *(ulonglong *)(lVar3 + -0xcb0) = (ulonglong)pbVar25 ^ uVar30;
  uVar9 = DAT_182671580;
  *(ulonglong *)(lVar3 + -0x628) =
       (CONCAT44(uVar7,uVar10) ^ 0xafcfab64ff5569a8) +
       (CONCAT44(uVar20,uVar28) ^ 0x92c237758eb27272);
  uVar16 = DAT_1826715bc;
  *pbVar25 = bVar38;
  uVar19 = DAT_182671638;
  uVar17 = DAT_1826715cc;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 - ((ulonglong)uVar10 ^ 0x3cc88a15)) +
            (CONCAT44(uVar9,uVar11) ^ 0x638a8331c4fcfff8) * 8);
  bVar38 = (byte)DAT_182671570;
  *(ulonglong *)(lVar3 + -0x5f8) = (ulonglong)puVar24 ^ CONCAT44(uVar16,uVar16);
  uVar37 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar3 + -0xbf0) = *puVar24 ^ uVar37 ^ uVar42;
  uVar27 = (ulonglong)DAT_182671588;
  *(longlong *)(lVar3 + -0x510) = 0xb006770d6145b1f << ((bVar38 ^ 0x66) & 0x3f);
  bVar38 = (byte)DAT_1826717f8;
  lVar3 = DAT_182671560;
  uVar40 = uVar11 & uVar8;
  DAT_1826715ac = uVar40;
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xfdfffff9)) =
       (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x1d009be5)) ^ uVar37) >>
       (((byte)DAT_18267157c ^ 0xe8) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  lVar4 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671624;
  uVar33 = CONCAT44(uVar12,DAT_1826715a0);
  uVar27 = (ulonglong)uVar40;
  bVar39 = *(byte *)(lVar3 - ((ulonglong)uVar9 ^ 0x638a82c1)) ^ (byte)uVar17 ^ bVar38;
  bVar38 = bVar38 ^ (byte)DAT_182671694;
  plVar1 = (longlong *)(DAT_182671560 + -0x8f0);
  uVar41 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(byte *)(DAT_182671560 + -0x9fa) = bVar39;
  pbVar25 = (byte *)(*plVar1 + 4 + (uVar33 ^ 0x356d30043d13ae09) * 0x20);
  *(ulonglong *)(lVar4 + -0x998) = (ulonglong)pbVar25 ^ uVar30;
  uVar44 = CONCAT44(uVar40,uVar8);
  *pbVar25 = bVar38 ^ bVar39;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar4 + -0xc18) +
            ((CONCAT44(uVar11,uVar8) ^ 0xc4fcfff8edeef409) + (uVar44 ^ 0xc4ecf408edeef409) * 4) * 8)
  ;
  *(ulonglong *)(lVar4 + -0x3a0) = (ulonglong)puVar24 ^ uVar41;
  *(ulonglong *)(lVar4 + -0x670) = (uVar44 ^ 0x5161ed12d3c29a95) + 0x2426e60fd8f03e0d;
  uVar18 = DAT_182671604;
  uVar16 = DAT_1826715f4;
  lVar3 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar4 - (uVar43 ^ 0xc4fcfce0)) = *puVar24 ^ uVar30 ^ uVar42;
  uVar30 = (uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x318)) >> (((byte)uVar11 ^ 0xd0) & 0x3f) ^
           CONCAT44(uVar16,uVar16);
  bVar38 = (byte)uVar16 ^ (byte)DAT_1826717e0;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar30;
  uVar33 = (ulonglong)DAT_1826716c8;
  *(byte *)(lVar3 + -0x2e1) = bVar38 ^ (byte)uVar30;
  uVar20 = DAT_182671694;
  *(ulonglong *)(lVar3 + -0xa0) =
       *(ulonglong *)(lVar3 - (uVar27 ^ 0xc4ecf5f8)) ^ CONCAT44(uVar17,uVar17) ^
       CONCAT44(uVar8,uVar8) ^ 0x22270119f7ad881f;
  lVar3 = DAT_182671560;
  pbVar25 = (byte *)((CONCAT44(uVar11,uVar40) ^ 0xc4fcfff8c4ecf408) * 0x20 +
                     (CONCAT44(uVar8,uVar11) ^ 0xedeef409c4fcfffd) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  *(ulonglong *)(DAT_182671560 + -0x590) = (ulonglong)pbVar25 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x8a8) =
       (CONCAT44(uVar40,uVar40) ^ 0x1a65846d0fd01fb5) - (uVar37 ^ *(ulonglong *)(lVar3 + -0xbf0));
  *pbVar25 = *(byte *)(lVar3 - (uVar34 ^ 0xedeef6e8)) ^ (byte)DAT_1826717e0 ^ (byte)uVar20;
  uVar7 = DAT_18267159c;
  *(ulonglong *)(lVar3 + -0xc08) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar27 ^ 0xc4ecf7a8)) ^ uVar41) ^ uVar42;
  lVar4 = DAT_182671560;
  uVar30 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xc4ecf638)) =
       *(longlong *)(lVar3 + -0xc18) +
       ((CONCAT44(uVar11,uVar11) ^ 0xc4fcfff8c4fcfff8) +
       (CONCAT44(uVar8,uVar7) ^ 0xedeef409d9892ad8) * 4) * 8 ^ uVar30;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0xa60) =
       (CONCAT44(uVar15,uVar40) ^ 0x5fdbd51a64d333a3) + 0x7efa1fcd7adbb21f;
  uVar16 = _DAT_182671610;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x240) =
       CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0x230) ^ uVar30) ^
       uVar42;
  uVar30 = (ulonglong)*(ushort *)((lVar3 - (uVar26 ^ 0x6079250)) + 6) ^ (ulonglong)(uVar20 >> 0x10)
           ^ CONCAT44(uVar16,uVar16);
  bVar38 = (byte)uVar16 ^ (byte)uVar30 ^ (byte)DAT_1826715c4;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar30;
  uVar30 = (ulonglong)DAT_182671824;
  *(byte *)(lVar5 + -0x801) = bVar38;
  *(int *)(lVar5 + -0x274) = *(int *)(lVar5 + -0x910) * *(int *)(lVar5 + -0x754);
  pbVar25 = (byte *)((CONCAT44(uVar15,uVar8) ^ 0x6079010edeef409) * 0x20 +
                     (CONCAT44(uVar11,uVar28) ^ 0xc4fcfff806079016) + *(longlong *)(lVar4 + -0x8f0))
  ;
  *(ulonglong *)(lVar4 + -0x1e0) = (ulonglong)pbVar25 ^ uVar30;
  uVar16 = DAT_1826718a8;
  uVar30 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *pbVar25 = bVar38 ^ (byte)uVar20 ^ (byte)DAT_1826715c4;
  uVar10 = DAT_182671588;
  uVar33 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x9fef335)) =
       *(longlong *)(lVar4 + -0xc18) +
       ((CONCAT44(uVar6,uVar40) ^ 0x2e3f1f50c4ecf408) +
       (CONCAT44(uVar8,uVar8) ^ 0xedeef409edeef409) * 4) * 8 ^ uVar30;
  uVar34 = (ulonglong)DAT_182671668;
  uVar41 = CONCAT44(uVar40,DAT_182671568);
  *(ulonglong *)(lVar4 + -0x748) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0xcc8) ^ uVar30) ^ uVar32 ^ uVar42;
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x30) ^ uVar36) = uVar41 ^ 0xe00f0acce92fbc30;
  uVar12 = DAT_182671780;
  uVar7 = DAT_182671590;
  uVar30 = (uVar32 ^ *(ulonglong *)(lVar4 + -0x748)) >> (((byte)uVar8 ^ 0x31) & 0x3f) ^
           CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x9f8) = uVar30;
  *(byte *)(lVar4 + -0x8b2) = (byte)uVar16 ^ (byte)uVar30 ^ (byte)uVar12;
  uVar20 = DAT_182671584;
  lVar3 = DAT_182671560;
  bVar38 = (byte)DAT_182671694;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x1b0709bd)) =
       *(longlong *)(DAT_182671560 - (uVar43 ^ 0xc4fcf708)) +
       (CONCAT44(uVar28,DAT_182671584) ^ 0x6079010072e10b3) * 0x20 +
       (CONCAT44(uVar11,uVar15) ^ 0xc4fcfff806079017) ^ uVar34;
  uVar17 = DAT_1826717f0;
  *(byte *)(*(ulonglong *)(lVar3 + -0x9b8) ^ uVar34) =
       bVar38 ^ *(byte *)(lVar3 + -0x8b2) ^ (byte)uVar12;
  uVar16 = DAT_18267165c;
  uVar12 = DAT_182671594;
  uVar41 = (ulonglong)DAT_182671594;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xc18) +
            ((uVar44 ^ 0xc4ecf408edeef408) + (CONCAT44(uVar9,uVar40) ^ 0x638a8331c4ecf408) * 4) * 8)
  ;
  *(ulonglong *)(lVar3 + -0xab8) = (ulonglong)puVar24 ^ CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar30 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0xa88) = *puVar24 ^ uVar42 ^ uVar30;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x1d00988d)) =
       0x642ea9d718ced15 - (CONCAT44(uVar13,uVar12) ^ 0xc40cb02b94c4cdd0);
  lVar3 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671604;
  uVar30 = (*(ulonglong *)(DAT_182671560 + -0xa88) ^ uVar30) >> (((byte)uVar7 ^ 5) & 0x3f) ^
           CONCAT44(uVar17,uVar17);
  bVar38 = (byte)uVar17 ^ (byte)uVar30 ^ (byte)DAT_18267187c;
  *(ulonglong *)(DAT_182671560 + -0x400) = uVar30;
  *(byte *)(lVar3 + -0xce1) = bVar38;
  *(ulonglong *)(lVar3 + -0x5b0) =
       (CONCAT44(uVar20,uVar11) ^ 0x72e10b3c4fcfff8) * 0x20 +
       *(longlong *)(lVar3 - (uVar27 ^ 0xc4ecfcf8)) + 8 ^ uVar34;
  uVar17 = DAT_1826717c4;
  uVar9 = DAT_182671694;
  uVar13 = DAT_1826715a8;
  uVar7 = DAT_18267157c;
  local_60 = (byte)uVar18;
  uVar27 = CONCAT44(uVar6,DAT_1826715a8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x6079558)) =
       (CONCAT44(DAT_18267157c,uVar8) ^ 0xfe410dd8110ee9bf) >>
       ((*(byte *)(lVar3 - (uVar33 ^ 0x1d00930d)) ^ local_60) & 0x3f);
  *(byte *)(uVar34 ^ *(ulonglong *)(lVar3 + -0x5b0)) =
       (byte)uVar9 ^ *(byte *)(lVar3 + -0xce1) ^ (byte)DAT_18267187c;
  uVar16 = DAT_1826716f4;
  puVar24 = (ulonglong *)(*(longlong *)(lVar3 + -0xc18) + (uVar27 ^ 0x2e3f1f50ddfdfff9) * 8);
  *(ulonglong *)(lVar3 + -0x220) = (ulonglong)puVar24 ^ uVar29;
  uVar29 = CONCAT44(uVar16,uVar16);
  uVar27 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xc4fcfd88)) = *puVar24 ^ uVar42 ^ uVar29;
  puVar24 = (ulonglong *)(DAT_182671560 - (uVar26 ^ 0x6079600));
  *puVar24 = (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x270)) >> (((byte)uVar15 ^ 0x18) & 0x3f) ^
             CONCAT44(uVar17,uVar17);
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar27 ^ 0xf8d1e9f4)) =
       (*(ulonglong *)(DAT_182671560 - (uVar41 ^ 0x3cc88dfd)) ^ uVar37) +
       (*(ulonglong *)(DAT_182671560 + -0x80) ^ uVar23);
  *(byte *)(lVar4 - ((ulonglong)DAT_18267159c ^ 0xd9892fb9)) =
       (byte)uVar17 ^ (byte)*puVar24 ^ (byte)DAT_182671850;
  uVar23 = (ulonglong)DAT_1826715e8;
  uVar27 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar4 + -0x3b8) =
       *(longlong *)(lVar4 - ((ulonglong)uVar20 ^ 0x72e160b)) -
       (CONCAT44(uVar22,uVar20) ^ 0x9b951f75f3cefb03);
  pbVar25 = (byte *)((CONCAT44(uVar22,uVar28) ^ 0x9fefffd06079019) + *(longlong *)(lVar4 + -0x8f0));
  *(ulonglong *)(lVar4 + -0xc70) = (ulonglong)pbVar25 ^ uVar23;
  *(ulonglong *)(lVar4 + -0x1d8) =
       *(ulonglong *)(lVar4 - (uVar27 ^ 0x638a8479)) ^ uVar32 | 0x2ddfaa26ee7586f;
  uVar16 = DAT_1826718c0;
  *pbVar25 = *(byte *)(lVar4 - (uVar35 ^ 0x6079571)) ^ (byte)uVar9 ^ (byte)DAT_182671850;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar4 + -0xc18) + 8 +
            (CONCAT44(uVar10,uVar13) ^ 0x1d009015ddfdfff8) * 0x20);
  uVar27 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar4 + -0x7b8) = (ulonglong)puVar24 ^ CONCAT44(uVar16,uVar16);
  uVar13 = DAT_182671878;
  uVar42 = *puVar24 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x9e8) = uVar42 ^ uVar27;
  bVar39 = (byte)uVar13 ^ (byte)DAT_182671674;
  bVar38 = (byte)DAT_182671598;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xfdfffbc1)) =
       uVar42 >> (((byte)uVar7 ^ 0xd8) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(longlong *)(lVar4 + -0x628) = *(longlong *)(lVar4 + -0x3b8) << ((bVar38 ^ 0x83) & 0x3f);
  uVar6 = DAT_1826715a0;
  uVar23 = CONCAT44(uVar12,DAT_1826715a0);
  *(byte *)(lVar4 + -0x831) = bVar39 ^ *(byte *)(lVar4 + -0x5c8);
  uVar27 = (ulonglong)DAT_182671798;
  lVar3 = *(longlong *)(lVar4 + -0x8f0);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar28) * 4) = uVar21;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x6079238)) =
       (uVar23 ^ 0x3cc8860d3d13ae03) + (CONCAT44(uVar14,uVar6) ^ 0x60790103d13ae09) * 0x20 + lVar3 ^
       uVar27;
  return;
}



############ FUN_ 180ec68b0 size=5116 ############

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

void FUN_180ec68b0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  ulonglong *puVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  byte local_res18;
  
  uVar9 = DAT_1826715a8;
  uVar30 = DAT_1826715a4;
  uVar8 = DAT_182671598;
  uVar6 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar25 = (ulonglong)DAT_1826715a8;
  uVar12 = DAT_182671584 & 3;
  if (uVar12 < 2) {
    uVar19 = DAT_182671598;
    if (uVar12 == 0) {
      uVar19 = DAT_182671584;
    }
  }
  else {
    uVar19 = DAT_1826715a8;
    if (uVar12 < 3) {
      uVar19 = DAT_1826715a4;
    }
  }
  uVar12 = *(uint *)(&DAT_182611e78 + DAT_182671bf8);
  uVar13 = *(uint *)(&DAT_182611e80 + DAT_182671bf8) ^ DAT_182671584;
  uVar22 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar26 = CONCAT44(DAT_182671678,DAT_182671678);
  DAT_1826715ac = uVar19;
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       (uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x3b8)) >> (((byte)DAT_18267156c ^ 0x9c) & 0x3f) ^
       uVar26;
  uVar18 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar3 + -0x800) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xfb1ae7e5)) ^ uVar22) << (((byte)uVar30 ^ 0x48) & 0x3f) ^
       uVar18;
  puVar16 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x2800a22));
  uVar33 = CONCAT44(DAT_182671648,DAT_182671648);
  uVar22 = *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x4d9c8962)) ^ uVar18 | uVar26 ^ *puVar16;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar22 ^ uVar33;
  uVar7 = DAT_182671638;
  uVar20 = DAT_182671584;
  puVar15 = (ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xc2ff8670));
  *(ulonglong *)(lVar3 + -0x548) =
       (CONCAT44(DAT_182671634,DAT_182671634) ^ *puVar15) >> (((byte)uVar8 ^ 0x20) & 0x3f);
  uVar21 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0xfb1ae14d)) ^
       CONCAT44(DAT_1826717fc,DAT_1826717fc)) - uVar22 ^ uVar21;
  lVar4 = DAT_182671560;
  puVar38 = (ulonglong *)(lVar3 + -0x5c8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x4d678d27)) =
       CONCAT44(uVar6,uVar20) ^ 0xf8f7bdffddfef7fa | 0x58f7bc95853ae758;
  uVar27 = CONCAT44(DAT_182671684,DAT_182671684);
  uVar17 = CONCAT44(DAT_182671790,DAT_182671790);
  bVar14 = (byte)uVar19;
  uVar33 = *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x280002a)) ^ uVar17 ^ uVar27 ^ uVar33 ^
           *puVar38;
  puVar39 = (ulonglong *)(lVar4 - ((ulonglong)uVar30 ^ 0x4d9c889a));
  *(ulonglong *)(lVar4 + -0x9f8) = uVar33;
  uVar34 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar4 + -0x110) = (*puVar39 ^ uVar27) >> ((bVar14 ^ 0x73) & 0x3f) ^ uVar34;
  uVar22 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  puVar1 = (ulonglong *)(lVar4 + -0x610);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xfb1ae62d)) =
       (uVar27 ^ uVar33) << (((byte)DAT_182671598 ^ 0x12) & 0x3f) ^ uVar22;
  *puVar1 = (uVar18 ^ *(ulonglong *)(lVar4 + -0x800)) + 0x8512f3a1f7cde4ae;
  uVar23 = CONCAT44(DAT_182671714,DAT_182671714);
  uVar22 = *(ulonglong *)(lVar4 + -0x110) ^ uVar34 | *(ulonglong *)(lVar4 + -0x270) ^ uVar22;
  *(ulonglong *)(lVar4 + -0x688) = uVar22 ^ uVar23;
  *(ulonglong *)(lVar4 + -0xc08) = CONCAT44(uVar20,uVar9) ^ 0xddbee37fc41e762a | uVar22;
  uVar7 = _DAT_18267161c;
  uVar33 = CONCAT44(DAT_182671730,DAT_182671730);
  uVar31 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar4 + -0x400) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar30 ^ 0x4d9c84aa)) ^ uVar17) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar30 ^ 0x4d9c87ea)) ^ uVar23) ^ uVar33;
  uVar28 = CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar4 + -0xbf0) ^ *(ulonglong *)(lVar4 + -0xa60) ^
           uVar31 ^ uVar21;
  uVar27 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar4 + -0x6d0) = uVar28;
  puVar2 = (ulonglong *)(lVar4 + -0x670);
  uVar22 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar4 + -0x3b8) = (uVar28 ^ uVar31) >> ((bVar14 ^ 0x51) & 0x3f) ^ uVar27;
  *puVar16 = (uVar28 ^ uVar31) << 0x34 ^ uVar22;
  uVar7 = DAT_182671640;
  puVar41 = (ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0x4d678457));
  uVar28 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar22 = *puVar41 ^ uVar22 | *(ulonglong *)(lVar4 + -0x3b8) ^ uVar27;
  *puVar2 = uVar22 ^ uVar28;
  uVar10 = DAT_182671878;
  uVar27 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x548) = *(ulonglong *)(*(ulonglong *)(lVar4 + -0x5f8) ^ uVar27) ^ uVar33;
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(uVar10,uVar10);
  uVar24 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (*(ulonglong *)(DAT_182671560 + -0xa60) ^ uVar21) - uVar22 ^ uVar31;
  uVar22 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar3 + -0x1d8) =
       *(ulonglong *)(lVar3 + -0x400) ^ uVar24 ^ uVar28 ^ uVar33 ^ *puVar15;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xccb0eae1)) =
       (CONCAT44(uVar8,DAT_182671598) ^ 0x563cb32ddc7a08d2) +
       (CONCAT44(uVar30,uVar9) ^ 0xf29a23d9df823f68);
  uVar24 = *(ulonglong *)(lVar3 + -0x1d8) ^ uVar24;
  uVar22 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar24 >> (((byte)DAT_18267156c ^ 0x93) & 0x3f) ^ uVar22;
  uVar24 = uVar24 << ((bVar14 ^ 0x7a) & 0x3f);
  *puVar1 = uVar24 ^ CONCAT44(DAT_182671764,DAT_182671764);
  uVar7 = DAT_1826715e4;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x800) = (uVar28 ^ *puVar2) >> (((byte)uVar20 ^ 0xc6) & 0x3f);
  uVar10 = DAT_1826718b4;
  uVar6 = DAT_18267156c;
  uVar21 = CONCAT44(uVar7,uVar7);
  uVar24 = uVar24 | *puVar39 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x110) = uVar24 ^ uVar21;
  lVar3 = DAT_182671560;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar22 = (*(ulonglong *)(lVar5 + -0x400) ^ uVar33) -
           (*(ulonglong *)(lVar5 - (uVar25 ^ 0xfb1ae61d)) ^ uVar28);
  uVar36 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar22 ^ uVar28;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x2800e82)) = uVar22 - uVar24 ^ uVar36;
  uVar20 = DAT_182671598;
  uVar24 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar37 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar29 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715ac ^ 0xfb1ae195)) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xfb1ae54d)) ^ uVar21) -
       (uVar24 ^ *(ulonglong *)(lVar3 + -0xa0)) ^ uVar37;
  uVar22 = *(ulonglong *)(lVar3 + -0x510);
  uVar21 = uVar26 ^ uVar22 ^ uVar31 ^ uVar23 ^ *(ulonglong *)(DAT_182671560 + -0x688);
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar21;
  lVar3 = DAT_182671560;
  uVar33 = (uVar26 ^ uVar21) >> (((byte)uVar20 ^ 0x21) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar33 ^ CONCAT44(DAT_182671668,DAT_182671668);
  uVar7 = DAT_1826716b4;
  uVar21 = (uVar26 ^ uVar21) << (((byte)uVar6 ^ 0x95) & 0x3f);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar21 ^ uVar27;
  uVar27 = (ulonglong)DAT_182671584;
  uVar26 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar3 + -0x8a8) = (uVar33 | uVar21) ^ uVar26;
  uVar20 = DAT_1826715b0;
  uVar6 = DAT_182671580;
  uVar33 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0x548) =
       (uVar22 ^ uVar31) - (*(ulonglong *)(lVar3 - (uVar27 ^ 0x4d678bb7)) ^ CONCAT44(uVar7,uVar7)) ^
       uVar18;
  uVar31 = (ulonglong)DAT_1826715a4;
  *(uint *)(lVar3 - (uVar33 ^ 0xfd7fff01)) = (uVar6 ^ 0x96860daf) + *(int *)(lVar3 + -0x678);
  uVar22 = CONCAT44(DAT_182671590,uVar20);
  uVar40 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xfb1aee3d)) =
       (*(ulonglong *)(lVar3 + -0x548) ^ uVar18) - (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar26) ^
       uVar40;
  uVar6 = DAT_182671588;
  uVar21 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar35 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar32 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x4d9c83c2)) =
       uVar22 ^ *(ulonglong *)(lVar3 + -0x638) ^ uVar35 ^ uVar21 ^ 0x334f17be0280028a;
  lVar3 = DAT_182671560;
  puVar39 = (ulonglong *)(DAT_182671560 - (uVar25 ^ 0xfb1ae585));
  *puVar39 = CONCAT44(uVar30,uVar6) ^ uVar21 ^ *(ulonglong *)(DAT_182671560 + -0x2a0) ^
             0x2d4e462de2deb8be;
  uVar20 = DAT_182671854;
  lVar5 = DAT_182671560;
  uVar29 = CONCAT44(DAT_182671854,DAT_182671854);
  *puVar15 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x2a0)) + (*puVar41 ^ uVar26) ^ uVar34;
  uVar30 = DAT_18267159c;
  uVar22 = *(ulonglong *)(lVar5 - (uVar27 ^ 0x4d678a8f)) ^ uVar29 ^ uVar36 ^ uVar34 ^
           *(ulonglong *)(lVar5 + -0xc08);
  uVar33 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar5 + -0x800) = uVar22;
  uVar6 = DAT_18267156c;
  *(ulonglong *)(lVar5 + -0x9f8) =
       ((ulonglong)uVar20 << 0x1b | (ulonglong)(uVar20 >> 5)) ^ uVar22 >> 5 ^ uVar35;
  uVar7 = DAT_182671594;
  uVar18 = (ulonglong)DAT_1826715a0;
  *puVar1 = CONCAT44(DAT_182671594,uVar6) ^ uVar28 ^ *(ulonglong *)(lVar5 + -0x270) ^
            0x82b4e989f27d825e;
  uVar11 = DAT_1826717f4;
  lVar3 = DAT_182671560;
  uVar22 = (*(ulonglong *)(lVar5 - (uVar32 ^ 0x1008025c)) ^ uVar29) <<
           (((byte)uVar30 ^ 0x99) & 0x3f);
  *(ulonglong *)(lVar5 + -0x240) = uVar22 ^ CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar6 = DAT_1826715b4;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x4d9c8562)) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x4e5125a)) ^ uVar35 | uVar22) ^ uVar29;
  uVar27 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xf400eeb9)) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x41e8bcc4)) ^ uVar36) -
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x400)) ^ uVar27;
  uVar22 = (ulonglong)DAT_18267186c;
  uVar33 = CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar26 = (ulonglong)DAT_182671578;
  puVar41 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0xc2ff8688));
  bVar14 = (byte)DAT_18267158c;
  *puVar41 = uVar33 ^ uVar40 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0xa60) ^ *puVar38;
  uVar10 = DAT_182671768;
  uVar28 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar3 + -0xbf0) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0xed741fbd)) >> 0x20 ^ uVar22) >> 5 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x6d0) =
       0x8cb096b59b8134b4 >> (((byte)uVar11 ^ *(byte *)(lVar3 + -0x400)) & 0x3f);
  uVar22 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar3 + -0x3b8) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x688)) << ((bVar14 ^ 0x1b) & 0x3f) ^ uVar28;
  uVar31 = CONCAT44(uVar10,uVar10);
  uVar33 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xed741e7d)) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0xccb0e3b1)) ^ uVar21 |
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0x3d007c47)) ^ uVar28) ^ uVar31;
  uVar21 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xf400e5c9)) ^ uVar40) -
       (*(ulonglong *)(lVar3 + -0x748) ^ uVar31) ^ uVar21;
  uVar20 = DAT_1826717a0;
  uVar10 = DAT_1826716a4;
  uVar6 = DAT_182671574;
  lVar5 = DAT_182671560;
  uVar33 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar22 = (ulonglong)DAT_1826717a0;
  uVar28 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267157c ^ 0x408021dc)) ^
           *(ulonglong *)(lVar3 + -0x748) ^ uVar31 ^ uVar27;
  uVar31 = uVar28 ^ uVar24;
  uVar26 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 + -0x548) = uVar31;
  uVar30 = DAT_1826715b4;
  uVar22 = ((ulonglong)(uVar20 >> 0x17) | uVar22 << 9) ^ uVar31 >> 0x17;
  *(ulonglong *)(lVar3 + -0x638) = uVar22 ^ uVar33;
  uVar11 = DAT_1826717d4;
  *(ulonglong *)(lVar5 + -0x1d8) =
       (CONCAT44(uVar6,uVar30) ^ 0x3e0a58e229cde2ad) - (uVar29 ^ *(ulonglong *)(lVar5 + -0x400));
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar28 << ((bVar14 ^ 0x29) & 0x3f) ^ uVar33;
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar22 = *puVar16 ^ uVar33 | uVar22;
  uVar28 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar22 ^ uVar31;
  *puVar15 = (*(ulonglong *)(lVar3 + -0x110) ^ uVar27) - uVar22 ^ uVar28;
  uVar22 = *puVar2;
  *(ulonglong *)(lVar3 + -0x270) =
       *(ulonglong *)(lVar3 + -0x1d8) >> ((byte)(uVar28 ^ uVar22) & 0x3f);
  uVar33 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar20 = DAT_1826715a8 - uVar6;
  DAT_182671568 = uVar20;
  *puVar1 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x41e8b5dc)) ^ uVar33 ^ uVar21 ^ uVar29 ^
            *(ulonglong *)(lVar3 + -0x400);
  bVar14 = (byte)uVar6;
  uVar33 = *puVar1 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x800) =
       CONCAT44(uVar7,DAT_1826715b0) ^ 0x47a711c251c9c00f | uVar28 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar33 >> ((bVar14 ^ 0xe4) & 0x3f) ^ uVar23;
  uVar22 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x41e8b28c)) = uVar33 << 0x18 ^ uVar22;
  uVar33 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *(ulonglong *)(lVar3 + -0xc08) =
       (*(ulonglong *)(lVar3 + -0x548) ^ uVar24) >>
       (((byte)uVar10 ^ *(byte *)(lVar3 + -0x638)) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xfb1ae195)) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x240) | uVar23 ^ *(ulonglong *)(lVar3 + -0x9f8)) ^ uVar33;
  uVar22 = *puVar38;
  uVar23 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar18 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x510)) - (uVar33 ^ uVar22);
  uVar21 = uVar18 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar21;
  *(ulonglong *)(lVar3 + -0x688) = CONCAT44(uVar20,uVar20) ^ 0x2fb1aa34a5e55422;
  uVar27 = CONCAT44(DAT_182671758,DAT_182671758);
  uVar22 = *(ulonglong *)(lVar3 - (uVar25 ^ 0xfb1ae22d)) ^ uVar27 ^ uVar33 ^ uVar28 ^ uVar22;
  uVar33 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar22;
  uVar28 = (uVar22 ^ uVar27) >> ((bVar14 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar28 ^ uVar33;
  *(ulonglong *)(lVar3 + -0xa60) = -0x32d29e8b8e1776e8 - (uVar31 ^ *(ulonglong *)(lVar3 + -0x2a0));
  uVar7 = DAT_182671844;
  uVar33 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(lVar3 + -0x748) = (uVar22 ^ uVar27) << (((byte)uVar20 ^ 0x9d) & 0x3f) ^ uVar33;
  uVar10 = DAT_1826717bc;
  lVar3 = DAT_182671560;
  uVar27 = CONCAT44(uVar7,uVar7);
  uVar22 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  uVar33 = (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xfb1ae315)) ^ uVar33 | uVar28) ^ uVar27;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar33;
  uVar25 = uVar22 ^ uVar23 ^ uVar31 ^ uVar21 ^ *(ulonglong *)(lVar3 + -0x2a0);
  *(ulonglong *)(lVar3 + -0x110) = uVar25;
  uVar7 = DAT_182671660;
  lVar5 = DAT_182671560;
  local_res18 = (byte)uVar9;
  uVar21 = CONCAT44(uVar10,uVar10);
  uVar25 = (uVar22 ^ uVar25) << 7;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x41e8b1dc)) ^ uVar22) >>
       ((local_res18 ^ 100) & 0x3f) ^ uVar21;
  uVar22 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(lVar5 + -0x270) = uVar25 ^ CONCAT44(uVar7,uVar7);
  uVar30 = DAT_1826715b4;
  uVar25 = *puVar39 ^ uVar21 | uVar25;
  *(ulonglong *)(lVar5 + -0x400) = uVar25 ^ uVar22;
  uVar11 = DAT_1826717e4;
  uVar18 = uVar18 - uVar25;
  uVar21 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(lVar5 + -0x800) = uVar18 ^ uVar17;
  uVar7 = DAT_182671614;
  *puVar1 = *(ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0xb9323b91)) ^ uVar33 ^ uVar21 ^ uVar27 ^
            uVar17;
  uVar21 = *puVar1 ^ uVar21;
  uVar17 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0x548) =
       (CONCAT44(uVar6,uVar6) ^ 0xaff2b438cd22e0ea) >> ((bVar14 ^ 0xf9) & 0x3f);
  uVar10 = DAT_1826717ac;
  uVar30 = uVar30 ^ DAT_182671598;
  DAT_1826715b0 = uVar30;
  *(ulonglong *)(lVar5 + -0x638) = uVar21 >> ((bVar14 ^ 0xdc) & 0x3f) ^ uVar17;
  uVar7 = DAT_182671750;
  uVar9 = DAT_1826715b4;
  uVar6 = DAT_182671598;
  uVar33 = (ulonglong)DAT_1826715b4;
  uVar27 = (ulonglong)DAT_182671598;
  uVar21 = uVar21 << 0x30;
  uVar22 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar5 + -0xc08) = uVar21 ^ CONCAT44(uVar10,uVar10);
  uVar25 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar5 + -0x9f8) =
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0xf400e991)) ^ uVar17 | uVar21) ^ uVar22;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xc2ff8240)) =
       uVar18 - (uVar24 ^ *(ulonglong *)(lVar5 + -0xa0)) ^ uVar25;
  uVar10 = DAT_182671824;
  uVar17 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar5 + -0x510) =
       (uVar25 ^ *(ulonglong *)(lVar5 + -0x240)) - (uVar22 ^ *(ulonglong *)(lVar5 + -0x9f8)) ^
       uVar17;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0xc2ff8450)) =
       *(longlong *)(lVar5 + -0x880) + (CONCAT44(uVar30,uVar9) ^ 0x36ff6fa9f400efab) * 8 ^ uVar25;
  *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xf400ebf9)) ^ uVar25) =
       CONCAT44(DAT_18267171c,DAT_18267171c) ^ uVar17 ^ *(ulonglong *)(lVar5 + -0x510);
  *puVar41 = (CONCAT44(uVar9,uVar6) ^ 0xa4fe970a1ee10973) >>
             (((byte)uVar7 ^ *(byte *)(lVar5 + -0x9f8)) & 0x3f);
  *(undefined8 *)(lVar5 - ((ulonglong)uVar30 ^ 0x36ff64d1)) = *(undefined8 *)(lVar5 + -0x880);
  *(undefined8 *)(lVar5 + -0xa38) = *(undefined8 *)(lVar5 + -0x178);
  *(longlong *)(lVar5 + -0x70) = *(longlong *)(lVar5 + -0xb78);
  uVar25 = *(ulonglong *)(lVar5 - (uVar33 ^ 0xf400e591));
  *(ulonglong *)(lVar4 + -0x5f8) = uVar25;
  *puVar2 = (CONCAT44(uVar9,uVar30) ^ 0xfe51bdceaec1114) >>
            ((*(byte *)puVar1 ^ (byte)uVar11) & 0x3f);
  *(longlong *)(lVar5 + -0xb78) = uVar25 + (CONCAT44(uVar8,uVar30) ^ 0xc2ff800036ff6fa8) * 8;
  *puVar38 = CONCAT44(uVar20,uVar6) ^ CONCAT44(uVar9,uVar30) ^ 0xb601f619320c7adc;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar12 ^ uVar19;
  return;
}



############ FUN_ 180ed0b00 size=3880 ############

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

void FUN_180ed0b00(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  byte bVar10;
  byte bVar11;
  byte *pbVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  longlong lVar24;
  uint uVar25;
  uint uVar26;
  longlong lVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint *puVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  
  uVar15 = _DAT_182671618;
  uVar6 = DAT_182671594;
  uVar4 = DAT_18267158c;
  uVar22 = DAT_182671578;
  uVar7 = DAT_182671574;
  uVar35 = DAT_182671568;
  lVar3 = DAT_182671560;
  uVar18 = (ulonglong)DAT_182671574;
  uVar20 = (ulonglong)DAT_182671578;
  uVar36 = (ulonglong)DAT_182671568;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671c14);
  uVar25 = DAT_182671568 * DAT_182671594;
  uVar14 = (DAT_182671574 << 0x10 | DAT_182671574 & 0xff00) << 8 | DAT_182671574 >> 8 & 0xff00 |
           DAT_182671574 >> 0x18;
  uVar8 = (ulonglong)DAT_18267158c;
  uVar37 = DAT_182671578 - DAT_18267158c;
  uVar5 = *(uint *)(&DAT_182611e70 + (uVar8 ^ 0x1f61366a) + (longlong)DAT_182671c14) ^ DAT_182671578
  ;
  bVar13 = (byte)DAT_182671574;
  uVar9 = (ulonglong)uVar14;
  puVar33 = (uint *)(DAT_182671560 - (uVar9 ^ 0x611f7ffa));
  DAT_182671584 = uVar25;
  DAT_1826715a4 = uVar37;
  *puVar33 = (*(uint *)(DAT_182671560 + -0x774) ^ DAT_182671854) << ((bVar13 ^ 0x70) & 0x1f) ^
             _DAT_182671618;
  uVar21 = DAT_1826715bc;
  uVar32 = DAT_1826715b4;
  uVar19 = (ulonglong)DAT_1826715b4;
  uVar17 = (ulonglong)uVar25;
  uVar15 = (*(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0x8711628b)) ^ DAT_182671830) -
           (uVar15 ^ *(uint *)(lVar3 + -0x5cc)) ^ DAT_182671820;
  *(uint *)(lVar3 + -0x344) = uVar15;
  *(uint *)(lVar3 + -0x504) =
       (*(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0x367a1671)) ^ uVar21) * (uVar15 ^ DAT_182671820) ^
       DAT_182671614;
  *(uint *)(lVar3 + -0x3d4) =
       (*(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0xaa4e1237)) ^ DAT_182671854) * (uVar6 ^ 0x4bce9983)
       ^ DAT_1826715b8;
  uVar16 = DAT_1826715ac;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xe09ecb25)) =
       *(ulonglong *)(lVar3 + -0xa60) | *(ulonglong *)(lVar3 + -0x5c8);
  uVar28 = (*(uint *)(lVar3 + -0x504) ^ DAT_182671614) + (*(uint *)(lVar3 + -0x3d4) ^ DAT_1826715b8)
  ;
  *(uint *)(lVar3 + -0x374) = uVar28 ^ DAT_182671824;
  lVar3 = DAT_182671560;
  uVar34 = CONCAT44(uVar16,uVar37);
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       (uVar34 ^ 0xe103644153ac3b96) -
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar25 ^ 0x8711685f));
  bVar10 = (byte)uVar6 ^ 0x98;
  uVar15 = uVar28 << (bVar10 & 0x1f) ^ DAT_1826717d0;
  uVar28 = uVar28 >> (((byte)uVar35 ^ 0x50) & 0x1f) ^ DAT_1826715c8;
  *(uint *)(lVar3 + -0x844) = uVar28;
  uVar28 = uVar28 ^ DAT_1826715c8;
  *(uint *)(lVar3 + -0x47c) = uVar15;
  lVar3 = DAT_182671560;
  uVar29 = (uVar28 | uVar15 ^ DAT_1826717d0) ^ DAT_1826716c8;
  uVar15 = *(uint *)(DAT_182671560 + -0x910);
  *(ulonglong *)(DAT_182671560 + -0x638) =
       CONCAT44(uVar7,uVar37) ^ 0x11c4f9f15416ccde | CONCAT44(uVar22,uVar4) ^ 0xff49ef3e3f298b3b;
  uVar28 = DAT_182671624 ^ *(uint *)(lVar3 + -0x3c8);
  *(uint *)(lVar3 + -0x678) = uVar29;
  uVar15 = uVar28 + (uVar21 ^ uVar15) ^ DAT_1826718b8;
  *(uint *)(lVar3 + -0x27c) = uVar15;
  *(uint *)(lVar3 + -0x964) = uVar15 ^ DAT_18267167c ^ DAT_1826718b8;
  uVar21 = DAT_1826716bc;
  *(ulonglong *)(lVar3 + -0x548) =
       (CONCAT44(uVar4,uVar32) ^ 0x1e010116d1531a4) + *(longlong *)(lVar3 + -0xa60);
  *(uint *)(lVar3 + -0x8c) =
       *(uint *)(lVar3 - ((ulonglong)uVar22 ^ 0x4bb55d8)) ^ DAT_1826717d8 ^ DAT_1826716c8;
  *(uint *)(lVar3 + -0x968) = *(uint *)(lVar3 - (uVar17 ^ 0x8711639b)) ^ uVar21 ^ DAT_18267167c;
  uVar28 = DAT_18267181c;
  uVar23 = (ulonglong)DAT_182671648;
  *(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0xaa4e166b)) =
       *(uint *)(lVar3 - (uVar9 ^ 0x611f7aba)) ^ DAT_182671658 ^ DAT_1826717d8;
  *(longlong *)(lVar3 + -0x898) = *(longlong *)(lVar3 + -0x2a0) - *(longlong *)(lVar3 + -0x800);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x367a1b91)) =
       (CONCAT44(uVar14,DAT_1826715ac) ^ 0x611f7a3685c99ee0) * 0x20 +
       (CONCAT44(uVar6,uVar32) ^ 0x4bce9995e09ec984) + *(longlong *)(lVar3 + -0x8f0) ^ uVar23;
  bVar2 = (byte)DAT_1826715e8;
  *(ulonglong *)(lVar3 + -0x3f0) =
       *(ulonglong *)(lVar3 + -0x6b8) >> ((byte)*(undefined8 *)(lVar3 + -0x8a8) & 0x3f);
  uVar29 = DAT_182671894;
  bVar11 = *(byte *)(*(ulonglong *)(lVar3 + -0x4f0) ^ uVar23) ^ bVar2 ^ (byte)DAT_182671694;
  *(byte *)(lVar3 + -0x41) = bVar11;
  uVar15 = DAT_1826715ac;
  uVar26 = (uint)(bVar11 ^ bVar2);
  *(uint *)(lVar3 + -0x754) = uVar26 ^ uVar28;
  uVar30 = (*(uint *)(lVar3 - (uVar20 ^ 0x4bb5088)) ^ DAT_182671658) + (uVar35 ^ 0xa3b93396);
  uVar31 = uVar30 ^ uVar29;
  *(uint *)(lVar3 + -0x874) = uVar31;
  bVar2 = (byte)DAT_182671578;
  *(uint *)(lVar3 + -0x5cc) = (uVar15 ^ 0x6586073c) << (((byte)uVar31 ^ (byte)uVar29) & 0x1f);
  uVar15 = DAT_1826718c8;
  uVar31 = DAT_1826718b8;
  *(uint *)(lVar3 + -0x344) = uVar26 << ((bVar2 ^ 0xb1) & 0x1f) ^ DAT_182671680;
  uVar26 = uVar30 - (*(uint *)(lVar3 - (uVar9 ^ 0x611f7972)) ^ DAT_182671680) ^ _DAT_1826715e0;
  *(uint *)(lVar3 + -0x774) = uVar26;
  uVar29 = DAT_18267158c ^ 0xfebf7aab;
  *(uint *)(lVar3 + -0x504) =
       (uVar26 ^ _DAT_1826715e0) * (*(uint *)(lVar3 + -0x968) ^ uVar21) ^ DAT_182671654;
  *(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0x4bce9a41)) = *(uint *)(lVar3 + -0x27c) ^ uVar31 | uVar29;
  uVar28 = (*(uint *)(lVar3 + -0x754) ^ uVar28) * (uVar37 ^ 0xe55a1d27) ^ DAT_1826717a8;
  *(ulonglong *)(lVar3 + -0x6d0) =
       CONCAT44(uVar35,uVar25) ^ *(ulonglong *)(lVar3 + -0x548) ^ 0x374fc1790f3adcec;
  uVar29 = *(uint *)(lVar3 + -0x504) ^ DAT_182671654;
  *(uint *)(lVar3 + -0x374) = uVar28;
  uVar29 = (uVar28 ^ DAT_1826717a8) + uVar29;
  *(uint *)(lVar3 + -0x47c) = uVar29 ^ uVar15;
  uVar15 = (*(uint *)(lVar3 - (uVar18 ^ 0x367a1b1d)) ^ uVar15) << (((byte)uVar32 ^ 0x88) & 0x1f);
  *(uint *)(lVar3 + -0x844) = uVar15 ^ DAT_182671754;
  uVar29 = uVar29 >> 0x13;
  *(ulonglong *)(lVar3 + -0xa0) = CONCAT44(uVar6,uVar14) ^ 0x5a00603498460000 | 0x25a60fc16731fb71;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x910) = uVar29 ^ DAT_182671888;
  uVar28 = DAT_182671718;
  lVar24 = DAT_182671560;
  uVar32 = (uVar29 | uVar15) ^ DAT_1826715d0;
  uVar20 = (ulonglong)DAT_182671600;
  *(uint *)(lVar3 + -0x678) = uVar32;
  *(uint *)(lVar24 + -0x964) =
       (*(uint *)(lVar3 + -0x968) ^ uVar21) + (DAT_182671624 ^ *(uint *)(lVar24 + -0x3c8)) ^
       DAT_1826716c4;
  uVar32 = _DAT_182671868 ^ DAT_1826715d0 ^ uVar32;
  uVar21 = *(uint *)(lVar24 - ((ulonglong)uVar6 ^ 0x4bce90f1)) ^ DAT_182671878 ^ DAT_1826716c4;
  uVar15 = DAT_182671640 ^ _DAT_182671868;
  *(uint *)(lVar24 + -0x328) = uVar32;
  *(uint *)(lVar24 + -0x874) = uVar15 ^ uVar32;
  *(uint *)(lVar24 + -0x8c) = uVar21;
  *(uint *)(lVar24 + -0x5cc) = uVar21 ^ uVar28 ^ DAT_182671878;
  bVar2 = (byte)DAT_1826718ac;
  uVar32 = DAT_1826715ac;
  *(ulonglong *)(lVar24 - ((ulonglong)DAT_1826715ac ^ 0x85c997f8)) =
       *(longlong *)(lVar24 - (uVar8 ^ 0x1f613e8a)) +
       (CONCAT44(uVar7,uVar35) ^ 0x367a1f61aa4e1543) * 0x20 + (uVar34 ^ 0x85c99ee0e55a1d2a) ^ uVar20
  ;
  uVar29 = DAT_18267176c;
  *(byte *)(lVar24 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar24 + -0x918) ^ uVar20) ^ bVar2 ^ (byte)DAT_182671694;
  *(ulonglong *)(lVar24 - (uVar18 ^ 0x367a15e9)) =
       *(ulonglong *)(lVar24 + -0x548) >> ((byte)*(undefined8 *)(lVar24 + -0x510) & 0x3f);
  uVar15 = (uint)(*(byte *)(lVar24 - (uVar9 ^ 0x611f7677)) ^ bVar2);
  *(uint *)(lVar24 + -0x344) = uVar15 ^ uVar29;
  *(uint *)(lVar24 + -0x774) = uVar15 * (uVar14 ^ 0xb816a613);
  uVar21 = DAT_1826716fc;
  bVar2 = (byte)DAT_1826715ac;
  uVar30 = DAT_1826715ac ^ 0x85c99eec;
  *(uint *)(lVar24 - (uVar17 ^ 0x87116883)) =
       (*(uint *)(lVar24 + -0x874) ^ DAT_182671640) + (DAT_182671578 ^ 0xd4c7575) ^ DAT_1826716f4;
  uVar15 = *(uint *)(lVar24 + -0x27c) ^ DAT_1826716f4;
  uVar26 = (*(uint *)(lVar24 + -0x344) ^ uVar29) << ((bVar2 ^ 0xf1) & 0x1f) ^ DAT_182671710;
  *(uint *)(lVar24 + -0x3d4) = uVar26;
  uVar15 = uVar15 - (uVar26 ^ DAT_182671710);
  *(uint *)(lVar24 + -0x754) = uVar15 ^ DAT_1826717dc;
  *(uint *)(lVar24 - (uVar36 ^ 0xaa4e1047)) =
       uVar15 * (uVar28 ^ *(uint *)(lVar24 + -0x5cc)) ^ _DAT_1826715f0;
  *(ulonglong *)(lVar24 + -0x600) =
       CONCAT44(uVar35,uVar22) ^ 0xddc931cd88e4b9a9 | CONCAT44(uVar22,uVar37) ^ 0xaccaa99d88f3719d;
  uVar15 = DAT_1826716b4;
  *(uint *)(lVar24 - (uVar36 ^ 0xaa4e1637)) =
       (*(uint *)(lVar24 - (uVar19 ^ 0xe09ecac1)) ^ uVar29) * uVar30 ^ DAT_1826716b4;
  uVar29 = (*(uint *)(lVar24 + -0x504) ^ _DAT_1826715f0) + (uVar15 ^ *(uint *)(lVar24 + -0x374));
  *(uint *)(lVar24 + -0x47c) = uVar29 ^ uVar21;
  uVar15 = DAT_18267158c;
  *(ulonglong *)(lVar24 + -0x3b8) =
       (CONCAT44(uVar35,uVar7) ^ 0x521c9c9031d7a400) +
       (CONCAT44(uVar37,uVar25) ^ 0x931c3b0b2e6af547);
  *(uint *)(lVar24 - (uVar17 ^ 0x871162bb)) = uVar29 << (bVar10 & 0x1f) ^ uVar31;
  uVar29 = DAT_182671774;
  uVar15 = (*(uint *)(lVar24 + -0x47c) ^ uVar21) >> (((byte)uVar15 ^ 0x69) & 0x1f) ^ DAT_1826716d8;
  *(uint *)(lVar24 + -0x910) = uVar15;
  *(uint *)(lVar24 - ((ulonglong)uVar6 ^ 0x4bce90fd)) =
       (uVar31 ^ *(uint *)(lVar24 + -0x844) | uVar15 ^ DAT_1826716d8) ^ DAT_182671620;
  *(uint *)(lVar24 - (uVar19 ^ 0xe09ec0e1)) =
       (uVar28 ^ *puVar33) + (DAT_182671624 ^ *(uint *)(lVar24 + -0x3c8)) ^ DAT_1826717d0;
  uVar35 = *(uint *)(lVar24 + -0x964) ^ _DAT_1826715dc ^ DAT_1826717d0;
  uVar15 = *(uint *)(lVar24 + -0x968) ^ DAT_182671770 ^ DAT_182671620;
  *(longlong *)(lVar24 + -0x688) = *(longlong *)(lVar24 + -0x600) << ((bVar13 ^ 0x57) & 0x3f);
  *(uint *)(lVar24 + -0x678) = uVar35;
  *(uint *)(lVar24 + -0x8c) = uVar15;
  uVar31 = uVar35 ^ uVar29 ^ _DAT_1826715dc;
  uVar21 = uVar15 ^ DAT_1826715cc ^ DAT_182671770;
  uVar9 = (ulonglong)DAT_18267162c;
  *(ulonglong *)(lVar24 + -0x400) =
       CONCAT44(uVar6,uVar22) ^ CONCAT44(uVar4,uVar32) ^ 0xb67d5f15ad56c58;
  *(ulonglong *)(lVar24 + -0x9e8) =
       (CONCAT44(uVar37,uVar7) ^ 0xf440575fe0752e99) <<
       ((byte)*(undefined8 *)(lVar24 + -0x510) & 0x3f);
  *(uint *)(lVar24 + -0x328) = uVar31;
  *(uint *)(lVar24 + -0x774) = uVar21;
  bVar13 = (byte)DAT_182671764;
  uVar35 = DAT_18267159c;
  lVar3 = DAT_182671560;
  uVar21 = uVar21 ^ DAT_1826715cc;
  pbVar12 = (byte *)((CONCAT44(uVar16,DAT_182671580) ^ 0x85c99ee004bb53a0) * 0x20 +
                     (CONCAT44(uVar22,uVar14) ^ 0x4bb53a0611f7a21) + *(longlong *)(lVar24 + -0x8f0))
  ;
  *(ulonglong *)(lVar24 + -0xc80) = (ulonglong)pbVar12 ^ uVar9;
  *(byte *)(lVar24 + -0x41) = *pbVar12 ^ bVar13 ^ (byte)DAT_182671694;
  *(uint *)(lVar24 + -0x874) = DAT_182671588 ^ 0xb5199578 | DAT_182671588 ^ 0xf4eeb90;
  uVar32 = (uint)(bVar13 ^ *(byte *)(lVar24 + -0x41));
  *(uint *)(lVar24 + -0x27c) = uVar32 ^ DAT_18267166c;
  uVar15 = DAT_182671574;
  uVar22 = uVar32 << 0x11 ^ DAT_182671768;
  *(ulonglong *)(lVar24 + -0x9f8) =
       *(ulonglong *)(lVar24 - (uVar8 ^ 0x1f61340a)) >>
       ((byte)*(undefined8 *)(lVar24 + -0x548) & 0x3f);
  uVar28 = DAT_18267158c * uVar15;
  *(uint *)(lVar3 + -0x344) = uVar22;
  uVar22 = uVar22 ^ DAT_182671768;
  *(uint *)(lVar3 + -0x3d4) = uVar21 + (uVar15 ^ 0x3f8d39b4) ^ _DAT_182671610;
  uVar15 = DAT_182671570;
  uVar16 = DAT_182671570 | uVar35;
  uVar17 = (ulonglong)DAT_182671570;
  uVar9 = (ulonglong)DAT_182671570;
  DAT_182671580 = uVar28;
  DAT_1826715a8 = uVar16;
  *(uint *)(lVar3 + -0x754) = (uVar16 ^ 0xf2aca27a) >> ((byte)uVar35 & 0x1f);
  lVar24 = DAT_182671560;
  *(uint *)(lVar3 + -0x504) =
       (*(uint *)(lVar3 - (uVar9 ^ 0xfffffc2b)) ^ _DAT_182671610) - uVar22 ^ DAT_182671758;
  uVar22 = DAT_1826718b0;
  lVar3 = DAT_182671560;
  uVar6 = DAT_18267158c ^ 0x1f61366d;
  *(uint *)(DAT_182671560 + -0x374) =
       (*(uint *)(lVar24 - ((ulonglong)uVar28 ^ 0x5b926f3e)) ^ DAT_182671758) * (uVar31 ^ uVar29) ^
       DAT_1826717f0;
  *(uint *)(lVar3 - ((ulonglong)uVar16 ^ 0xfffffb83)) = uVar32 * uVar6 ^ DAT_18267189c;
  *(uint *)(lVar3 - ((ulonglong)uVar16 ^ 0xfffff7bb)) =
       (*(uint *)(lVar3 - (uVar18 ^ 0x367a1c15)) ^ DAT_1826717f0) +
       (*(uint *)(lVar3 + -0x47c) ^ DAT_18267189c) ^ uVar22;
  uVar6 = (uVar22 ^ *(uint *)(lVar3 + -0x844)) >> 0x13 ^ DAT_1826718d0;
  uVar22 = (uVar22 ^ *(uint *)(lVar3 + -0x844)) << 0xd;
  *(uint *)(lVar3 + -0x910) = uVar22 ^ DAT_18267165c;
  *(ulonglong *)(lVar3 + -0x748) =
       (CONCAT44(uVar28,uVar7) ^ 0x4efd094550e50492) <<
       ((byte)*(undefined8 *)(lVar3 - ((ulonglong)uVar35 ^ 0x8a25e5f8)) & 0x3f);
  *(uint *)(lVar3 + -0x5cc) = uVar6;
  uVar6 = (uVar6 ^ DAT_1826718d0 | uVar22) ^ DAT_1826717b4;
  *(uint *)(lVar3 + -0x964) = uVar6;
  uVar35 = DAT_182671694;
  uVar22 = (*(uint *)(lVar3 - (uVar17 ^ 0xfffffcd7)) ^ uVar29) +
           (*(uint *)(lVar3 - ((ulonglong)uVar16 ^ 0xfffffc37)) ^ DAT_182671624) ^ DAT_182671694;
  uVar7 = DAT_182671878 ^ uVar22;
  *(uint *)(lVar3 + -0x968) = uVar22;
  uVar7 = uVar7 ^ uVar35;
  uVar22 = DAT_1826717c0 ^ DAT_1826717b4;
  *(uint *)(lVar3 + -0x678) = uVar7;
  uVar22 = uVar22 ^ uVar6;
  *(uint *)(lVar3 + -0x874) = uVar7 ^ DAT_182671878 ^ DAT_182671820;
  *(uint *)(lVar3 + -0x8c) = uVar22;
  *(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0xfffff88b)) = uVar22;
  uVar9 = (ulonglong)DAT_182671830;
  lVar27 = *(longlong *)(lVar3 - (uVar8 ^ 0x1f6130c2)) - *(longlong *)(lVar3 + -0x3b8);
  *(longlong *)(lVar3 + -0x110) = lVar27;
  pbVar12 = (byte *)((CONCAT44(uVar4,uVar15) ^ 0x1f61367affffffff) * 0x20 +
                     (CONCAT44(uVar4,uVar28) ^ 0x1f61367a5b926a38) + *(longlong *)(lVar3 + -0x8f0));
  lVar24 = lVar27 << (((byte)uVar28 ^ 0xe) & 0x3f);
  *(longlong *)(lVar3 + -0x5c8) = lVar24;
  *(ulonglong *)(lVar3 + -0xd20) = (ulonglong)pbVar12 ^ uVar9;
  bVar13 = *pbVar12 ^ (byte)uVar35 ^ DAT_182671868;
  *(longlong *)(lVar3 + -0xc08) = lVar24 << ((byte)lVar27 & 0x3f);
  *(byte *)(lVar3 + -0xc41) = bVar13;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar5 * 4) = uVar1 ^ uVar37;
  return;
}



############ FUN_ 180ec9ec0 size=3730 ############

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

void FUN_180ec9ec0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte bVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  byte *pbVar33;
  uint uVar34;
  ulonglong uVar35;
  
  uVar7 = DAT_182671578;
  uVar4 = DAT_18267156c;
  uVar25 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar35 = (ulonglong)DAT_182671578;
  uVar17 = (ulonglong)DAT_18267156c;
  uVar31 = DAT_182671578 + DAT_18267156c;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671930);
  uVar24 = *(uint *)(&DAT_182611e78 + DAT_182671930) ^ DAT_182671578;
  uVar28 = (ulonglong)DAT_18267156c;
  uVar22 = (ulonglong)DAT_18267179c;
  uVar18 = (ulonglong)DAT_1826717e8;
  uVar21 = (ulonglong)DAT_182671568;
  DAT_182671598 = uVar31;
  *(ulonglong *)(DAT_182671560 + -0xc70) =
       (*(ulonglong *)(DAT_182671560 + -0x528) ^ uVar22) +
       (CONCAT44(DAT_18267156c,DAT_18267156c) ^ 0x5689408656894087);
  uVar6 = DAT_1826715a0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0x5b66cd71)) =
       (CONCAT44(uVar7,uVar4) ^ 0x86fc7f2a9d44d083) <<
       ((byte)*(undefined8 *)(lVar2 + -0x6b8) & 0x3f);
  uVar8 = DAT_182671590;
  uVar26 = (ulonglong)DAT_182671590;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0x5b66cf11)) ^ uVar22) =
       *(byte *)(lVar2 + -0x981) ^ (byte)DAT_1826716d4;
  uVar10 = DAT_1826715a4;
  uVar22 = (ulonglong)DAT_1826715a4;
  *(undefined8 *)(lVar2 + -0xb08) = *(undefined8 *)(lVar2 + -0xc70);
  uVar11 = DAT_1826715b0;
  uVar30 = (ulonglong)DAT_1826715b0;
  *(undefined8 *)(lVar2 - (uVar28 ^ 0x568942e6)) = *(undefined8 *)(lVar2 + -0x370);
  *(ulonglong *)(lVar2 + -0x728) = *(ulonglong *)(lVar2 + -0xb08) ^ uVar18;
  uVar5 = DAT_182671570;
  uVar16 = uVar6 & 7;
  if (uVar16 < 4) {
    if (uVar16 < 2) {
      uVar34 = uVar10;
      if (uVar16 == 0) {
        uVar34 = uVar6;
      }
    }
    else {
      uVar34 = DAT_182671574;
      if (uVar16 < 3) {
        uVar34 = uVar11;
      }
    }
  }
  else if (uVar16 < 6) {
    uVar34 = DAT_182671570;
    if (uVar16 < 5) {
      uVar34 = uVar8;
    }
  }
  else {
    uVar34 = DAT_182671594;
    if (uVar16 < 7) {
      uVar34 = uVar25;
    }
  }
  uVar23 = (ulonglong)DAT_182671824;
  *(ulonglong *)(lVar2 + -0x8d8) = *(ulonglong *)(lVar2 + -0x260) ^ uVar23;
  uVar9 = DAT_18267159c;
  uVar16 = DAT_182671594;
  uVar6 = DAT_182671574;
  DAT_182671584 = uVar34;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xb7968d7e)) =
       (CONCAT44(uVar5,uVar10) ^ 0xad96416c9cabfbf) + *(ulonglong *)(lVar2 + -0x260);
  bVar19 = (byte)DAT_1826715e4;
  *(uint *)(lVar2 - (uVar26 ^ 0xd94b6f0d)) =
       *(uint *)(lVar2 - (uVar30 ^ 0x895eb0c2)) >>
       (((byte)*(undefined4 *)(lVar2 + -0x344) ^ (byte)DAT_1826716a0) & 0x1f);
  *(byte *)(lVar2 + -0x3d6) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x28948dd)) ^ uVar23) ^ bVar19 ^
       (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0xbebfc921)) ^
           (ulonglong)DAT_182671758) = (byte)uVar34 ^ 3;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xc9cab876)) =
       (CONCAT44(uVar6,uVar9) ^ 0xa4e419fb4a4f2c96) + (*(ulonglong *)(lVar2 + -0x728) ^ uVar18);
  lVar3 = DAT_182671560;
  *(byte *)(*(ulonglong *)(lVar2 + -0x728) ^ uVar18) = bVar19 ^ *(byte *)(lVar2 + -0x3d6);
  *(undefined8 *)(lVar2 + -0x228) = *(undefined8 *)(lVar2 - ((ulonglong)uVar34 ^ 0xc9cab876));
  *(longlong *)(lVar3 - ((ulonglong)uVar6 ^ 0xa4e41ffb)) =
       *(longlong *)(lVar3 - (uVar22 ^ 0xc9cabdce)) << (((byte)uVar25 ^ 100) & 0x3f);
  uVar27 = (ulonglong)DAT_18267178c;
  uVar32 = (ulonglong)DAT_182671708;
  *(undefined8 *)(lVar3 - (uVar22 ^ 0xc9cabb6e)) =
       *(undefined8 *)(lVar3 - ((ulonglong)uVar6 ^ 0xa4e41ddb));
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0xbb0) = *(ulonglong *)(lVar3 + -0x228) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x895ebec6)) = *(ulonglong *)(lVar3 + -0x4d0) ^ uVar27;
  uVar28 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 + -0x688) = *(ulonglong *)(lVar3 + -0x2a0) | 0x8d03b4b1321eb94;
  bVar13 = (byte)DAT_182671660;
  uVar18 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xad96856)) =
       (CONCAT44(uVar9,uVar34) ^ 0x4a4f2c97c9cabfbf) + (*(ulonglong *)(lVar2 + -0x950) ^ uVar27);
  lVar2 = DAT_182671560;
  bVar19 = (byte)DAT_182671590;
  *(byte *)(DAT_182671560 + -0xbf2) =
       *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar18 ^ 0xa4e410ab)) ^ uVar27) ^ bVar13 ^
       (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0xbebfc061)) ^
           (ulonglong)DAT_182671644) = bVar19 ^ 0xd2;
  pbVar33 = (byte *)(uVar32 ^ *(ulonglong *)(lVar2 + -0xbb0));
  *(byte **)(lVar2 + -0x780) = pbVar33 + (CONCAT44(uVar16,uVar10) ^ 0x2894005c9cabfbf);
  *pbVar33 = bVar13 ^ *(byte *)(lVar2 + -0xbf2);
  uVar15 = DAT_182671834;
  uVar14 = DAT_182671744;
  uVar18 = (ulonglong)DAT_182671744;
  uVar27 = (ulonglong)DAT_182671834;
  *(ulonglong *)(lVar2 + -0x3b8) =
       (CONCAT44(uVar5,uVar11) ^ 0xd30b64273bcee492) + *(longlong *)(lVar2 + -0x748);
  *(ulonglong *)(lVar2 + -0x560) = *(ulonglong *)(lVar2 + -0x780);
  uVar5 = DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0xa90) = uVar27 ^ *(ulonglong *)(lVar2 + -0x780);
  *(ulonglong *)(lVar2 + -0x9e0) = *(ulonglong *)(lVar2 + -0xc40);
  lVar3 = DAT_182671560;
  uVar28 = uVar18 ^ *(ulonglong *)(lVar2 + -0xc40);
  *(ulonglong *)(DAT_182671560 + -0x510) =
       *(ulonglong *)(DAT_182671560 + -0x9e8) >> (((byte)uVar5 ^ 0xfa) & 0x3f);
  *(ulonglong *)(lVar3 + -0x618) = uVar28;
  *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xc9cabf9e)) =
       (CONCAT44(uVar34,uVar25) ^ 0xc9cabfbeb796895f) + (uVar14 ^ uVar28);
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x9fa) =
       *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x289461d)) ^ uVar18) ^
       (byte)DAT_1826715d0 ^ (byte)DAT_182671718;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x380) ^ uVar23) = 4;
  lVar2 = DAT_182671560;
  uVar28 = (ulonglong)DAT_1826718c8;
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xb7968c6e)) =
       (CONCAT44(uVar6,uVar7) ^ 0xa4e419fb04dd89b2) +
       ((ulonglong)uVar15 ^ *(ulonglong *)(DAT_182671560 + -0xa90));
  *(byte *)(uVar27 ^ *(ulonglong *)(lVar2 + -0xa90)) =
       *(byte *)(lVar2 + -0x9fa) ^ (byte)DAT_1826715d0;
  uVar5 = DAT_1826715a0;
  *(undefined8 *)(lVar2 + -0x4d8) = *(undefined8 *)(lVar2 + -0x20);
  *(ulonglong *)(lVar2 + -0x130) = *(ulonglong *)(lVar2 + -0x530);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x4a4f290f)) = uVar28 ^ *(ulonglong *)(lVar2 + -0x530);
  pbVar33 = *(byte **)(lVar2 + -0x4d8);
  *(ulonglong *)(lVar2 + -0x928) = (ulonglong)pbVar33 ^ (ulonglong)DAT_182671714;
  bVar19 = (byte)DAT_1826717b4 ^ (byte)DAT_182671718;
  *(byte **)(lVar2 + -0x168) = pbVar33 + (CONCAT44(uVar5,uVar11) ^ 0xbebfcac9895eb797);
  *(byte *)(lVar2 - (uVar26 ^ 0xd94b6da0)) = bVar19 ^ *pbVar33;
  *(byte *)(*(ulonglong *)(lVar2 + -0xc50) ^ (ulonglong)DAT_1826717fc) = (byte)DAT_182671590 ^ 0x66;
  pbVar33 = (byte *)(*(ulonglong *)(DAT_182671560 + -0x598) ^ uVar28);
  *(byte **)(DAT_182671560 + -0x4e8) = pbVar33 + (CONCAT44(uVar10,uVar9) ^ 0xc9cabfbe4a4f2c96);
  *pbVar33 = *(byte *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0xa4e41312)) ^
             (byte)DAT_1826717b4;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x4dd8f9b)) =
       CONCAT44(uVar31,uVar25) ^ 0xa299627f0a43bbdd |
       CONCAT44(uVar16,DAT_182671570) ^ 0x766e93a794d4e495;
  uVar21 = (ulonglong)_DAT_182671838;
  *(undefined8 *)(lVar2 - (uVar22 ^ 0xc9cab7fe)) =
       *(undefined8 *)(lVar2 - ((ulonglong)uVar5 ^ 0xbebfce21));
  pbVar33 = *(byte **)(lVar2 + -0x168);
  *(byte **)(lVar2 + -0x580) = pbVar33;
  uVar12 = DAT_1826715c0;
  *(ulonglong *)(lVar2 + -0xcb0) = uVar21 ^ (ulonglong)pbVar33;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (CONCAT44(uVar34,uVar9) ^ 0x377e7f249beec0f6) << (((byte)uVar8 ^ 0x77) & 0x3f);
  bVar19 = (byte)DAT_182671630;
  uVar28 = (ulonglong)DAT_1826717d0;
  *(ulonglong *)(lVar2 + -0x3a8) = *(ulonglong *)(lVar2 + -0x840) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x9f8) =
       *(ulonglong *)(CONCAT44(DAT_1826716ac,DAT_1826716ac) ^ *(ulonglong *)(lVar2 + -0x70)) ^
       CONCAT44(uVar12,uVar12);
  *(byte **)(lVar2 + -0xa50) = pbVar33 + 1;
  *(byte *)(lVar2 - ((ulonglong)uVar16 ^ 0x2894bcc)) = bVar19 ^ *pbVar33 ^ (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0xc9cab796)) ^ (ulonglong)DAT_182671798) =
       (byte)uVar31 ^ 0xd4;
  *(ulonglong *)(lVar2 + -0xa8) = (uVar28 ^ *(ulonglong *)(lVar2 + -0x3a8)) + 1;
  lVar3 = DAT_182671560;
  uVar21 = (ulonglong)DAT_182671688;
  uVar18 = (ulonglong)DAT_182671608;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar17 ^ 0x5689432e)) ^ uVar28) =
       *(byte *)(lVar2 + -0xbc9) ^ (byte)DAT_182671630;
  uVar7 = DAT_18267158c;
  uVar28 = (ulonglong)DAT_18267158c;
  *(undefined8 *)(lVar2 - (uVar22 ^ 0xc9cab89e)) = *(undefined8 *)(lVar2 + -0xa8);
  *(undefined8 *)(lVar2 + -0x2b0) = *(undefined8 *)(lVar2 + -0xa50);
  *(byte *)(lVar2 + -0xa51) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar30 ^ 0x895eb6f6)) ^ (ulonglong)DAT_182671754) ^
       (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0x998) = *(ulonglong *)(lVar2 + -0x720) ^ uVar18;
  uVar5 = DAT_182671588;
  uVar16 = uVar7 * DAT_182671588;
  puVar29 = (ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xc7720654));
  uVar22 = CONCAT44(uVar7,DAT_182671588) ^ 0x8d31cdfc318dfccc;
  DAT_18267157c = uVar16;
  *puVar29 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671588 ^ 0x318dfe7d)) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x9d8) = (*(ulonglong *)(lVar3 + -0x498) ^ uVar21) + uVar22;
  *(byte *)(lVar3 - ((ulonglong)uVar5 ^ 0x318df674)) =
       *(byte *)(uVar21 ^ *puVar29) ^ (byte)DAT_1826718a8 ^ (byte)DAT_182671718;
  uVar23 = (ulonglong)DAT_182671740;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar28 ^ 0x8d31c40c)) ^ (ulonglong)DAT_18267165c) =
       (byte)uVar16 ^ 4;
  uVar21 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 + -0xb28) =
       (CONCAT44(uVar7,uVar7) ^ 0x8d31cdfc8d31cdfd) + (uVar18 ^ *(ulonglong *)(lVar3 + -0x998));
  uVar27 = (ulonglong)DAT_182671738;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x318df645)) =
       CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar3 + -0x2a0) ^ 0xbf54f276ed58763b;
  *(byte *)(uVar18 ^ *(ulonglong *)(lVar3 + -0x998)) =
       *(byte *)(lVar3 + -0xab9) ^ (byte)DAT_1826718a8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xc77204f4)) =
       *(longlong *)(lVar3 + -0x548) - (CONCAT44(uVar16,uVar25) ^ 0xa01c79cf38642ba4);
  uVar17 = *(ulonglong *)(lVar3 - (uVar35 ^ 0x4dd829b));
  *(ulonglong *)(lVar3 + -0x6e8) = uVar17;
  *(ulonglong *)(lVar3 + -0x500) = uVar27 ^ uVar17;
  *(ulonglong *)(lVar3 + -0x860) = *(ulonglong *)(lVar3 + -0x9d8);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x8d31c86c)) = uVar23 ^ *(ulonglong *)(lVar3 + -0x9d8);
  *(ulonglong *)(lVar3 + -0x898) =
       (CONCAT44(DAT_182671684,DAT_182671684) ^ *(ulonglong *)(lVar3 + -0x318)) <<
       (((byte)DAT_182671594 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar3 + -0xad8) = (*(ulonglong *)(lVar3 - (uVar21 ^ 0xa4e41c6b)) ^ uVar23) + uVar22
  ;
  bVar13 = (byte)DAT_182671718;
  bVar19 = DAT_18267161c;
  uVar18 = (ulonglong)DAT_1826718bc;
  uVar28 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 + -0x800) =
       (CONCAT44(uVar10,uVar11) ^ 0x6ea12269a8bab6fe) + 0xaec0c977e6e8f2b;
  bVar20 = (byte)DAT_18267159c;
  uVar17 = (ulonglong)DAT_18267184c;
  *(byte *)(lVar3 + -0xbd9) = *(byte *)(*(ulonglong *)(lVar3 + -0x590) ^ uVar23) ^ bVar19 ^ bVar13;
  *(byte *)(*(ulonglong *)(lVar3 + -0xd8) ^ uVar17) = bVar20 ^ 0xd0;
  pbVar33 = (byte *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x500));
  *(byte **)(lVar3 + -0xba8) = pbVar33 + 1;
  *pbVar33 = bVar19 ^ *(byte *)(lVar3 + -0xbd9);
  uVar17 = (ulonglong)DAT_1826715a0;
  *(longlong *)(lVar3 + -0x6d0) =
       *(longlong *)(lVar3 + -0x2a0) << ((byte)*(undefined8 *)(lVar3 + -0x3f0) & 0x3f);
  *(undefined8 *)(lVar3 + -0xd58) = *(undefined8 *)(lVar3 + -0xba8);
  *(undefined8 *)(lVar3 + -0x358) = *(undefined8 *)(lVar3 + -0xad8);
  uVar22 = (ulonglong)DAT_182671854;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0xc9cab5a6)) =
       *(ulonglong *)(lVar3 - (uVar17 ^ 0xbebfc791)) ^ uVar18;
  *(ulonglong *)(lVar3 + -0x1e0) = uVar22 ^ *(ulonglong *)(lVar3 + -0x358);
  bVar19 = (byte)DAT_1826716d8;
  *(ulonglong *)(lVar3 + -0x250) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xad965f6)) ^ uVar22) +
       (CONCAT44(uVar4,uVar8) ^ 0x56894086d94b6748);
  bVar20 = (byte)DAT_1826715b0;
  *(byte *)(lVar3 + -0x411) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar26 ^ 0xd94b66a9)) ^ uVar22) ^ bVar19 ^ bVar13;
  uVar22 = (ulonglong)DAT_182671700;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar35 ^ 0x4dd80cb)) ^ (ulonglong)DAT_182671770) = bVar20 ^ 0xb5
  ;
  uVar17 = (ulonglong)DAT_18267189c;
  pbVar33 = (byte *)(*(ulonglong *)(lVar3 + -0xa18) ^ uVar18);
  *(byte **)(lVar3 + -0x8c8) = pbVar33 + 1;
  *pbVar33 = bVar19 ^ *(byte *)(lVar3 + -0x411);
  *(undefined8 *)(lVar3 + -0x138) = *(undefined8 *)(lVar3 + -0x8c8);
  *(undefined8 *)(lVar3 - (uVar30 ^ 0x895eb776)) = *(undefined8 *)(lVar3 + -0x250);
  *(ulonglong *)(lVar3 + -3000) = uVar22 ^ *(ulonglong *)(lVar3 + -0x138);
  *(ulonglong *)(lVar3 + -0x188) = *(ulonglong *)(lVar3 + -0xe0) ^ uVar17;
  *(ulonglong *)(lVar3 + -0xc80) =
       (CONCAT44(uVar6,uVar5) ^ 0xa4e419fb318dfccc) + *(ulonglong *)(lVar3 + -0xe0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xc7720314)) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0xad962c6)) | *(ulonglong *)(lVar3 + -0x6d0);
  uVar25 = DAT_1826715b4 | DAT_182671574;
  uVar35 = CONCAT44(uVar6,DAT_1826715b4);
  DAT_1826715a8 = uVar25;
  *(byte *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0x17f2cfe9)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0xa4e41873)) ^ uVar17) ^ (byte)DAT_18267173c ^
       bVar13;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xb7f6dd3b)) ^ (ulonglong)DAT_1826717c4) =
       (byte)uVar25 ^ 0x8a;
  *(ulonglong *)(lVar3 + -0x4f0) =
       (uVar35 ^ 0xa4e419fb17f2cd09) + (*(ulonglong *)(lVar3 + -3000) ^ uVar22);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar31) * 4) = uVar24;
  return;
}



############ FUN_ 180eaa130 size=5577 ############

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

void FUN_180eaa130(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  uint uVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  byte bVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte local_res18;
  byte local_res20;
  byte local_138;
  byte local_128;
  byte local_110;
  ulonglong uVar31;
  
  uVar17 = DAT_1826715a8;
  uVar16 = DAT_1826715a4;
  uVar14 = DAT_182671598;
  uVar15 = DAT_182671594;
  uVar13 = DAT_182671580;
  lVar10 = DAT_182671560;
  uVar44 = (ulonglong)DAT_182671594;
  uVar45 = (ulonglong)DAT_182671598;
  uVar28 = (ulonglong)DAT_182671580;
  uVar42 = (ulonglong)DAT_1826715a8;
  uVar33 = (ulonglong)DAT_1826715a4;
  uVar24 = DAT_182671580 & DAT_1826715a4;
  uVar8 = *(uint *)(&DAT_182611e80 + DAT_182671ba4);
  uVar39 = *(uint *)(&DAT_182611e78 + DAT_182671ba4) ^ DAT_182671594;
  uVar47 = DAT_182671598 << 0x10 | DAT_182671598 >> 0x10;
  uVar30 = DAT_1826715a8 | DAT_182671594;
  uVar31 = (ulonglong)uVar30;
  uVar50 = (ulonglong)uVar24;
  uVar36 = (ulonglong)DAT_1826715a4;
  uVar26 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar34 = CONCAT44(DAT_182671804,DAT_182671804);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x6b8);
  DAT_182671568 = uVar24;
  DAT_182671578 = uVar30;
  DAT_18267159c = uVar47;
  *(ulonglong *)(DAT_182671560 + -0x3a0) =
       (*(ulonglong *)(DAT_182671560 - (uVar42 ^ 0x8a010328)) ^ uVar26) +
       (CONCAT44(DAT_182671580,uVar24) ^ 0xf5fef9ff11ce11c7) * 8 ^ uVar34;
  uVar22 = CONCAT44(DAT_182671840,DAT_182671840);
  *puVar1 = (*(ulonglong *)(lVar10 + -0x9e8) ^ uVar22) + 0x8a6dc5d1ef0fbb7b;
  uVar18 = DAT_1826716f8;
  uVar27 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(*(ulonglong *)(lVar10 - (uVar36 ^ 0x1bce1265)) ^ uVar34) =
       CONCAT44(DAT_1826716f8,DAT_1826716f8) ^ uVar27 ^ *(ulonglong *)(lVar10 + -0x628);
  uVar12 = DAT_1826716a0;
  *(int *)(lVar10 + -0x678) = *(int *)(lVar10 + -0x640) - *(int *)(lVar10 + -0x874);
  uVar34 = (ulonglong)uVar47;
  uVar35 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar10 + -0x510) =
       (*(ulonglong *)(lVar10 - (uVar44 ^ 0x42354d3d)) ^ CONCAT44(uVar12,uVar12)) +
       (CONCAT44(uVar47,uVar14) ^ 0x71b518042423d4d8) ^ uVar35;
  *(ulonglong *)(lVar10 - (uVar42 ^ 0x8a010160)) =
       (CONCAT44(uVar16,uVar24) ^ 0xcc4441d41e6c1465) <<
       (((byte)uVar18 ^ *(byte *)(lVar10 + -0x628)) & 0x3f);
  uVar40 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar10 - (uVar28 ^ 0xf5fefbcf)) =
       (*(ulonglong *)(lVar10 + -0x438) ^ uVar26) +
       (CONCAT44(uVar14,uVar14) ^ 0x7fce35fe7fce35fd) * 8 ^ uVar40;
  *(ulonglong *)(*(ulonglong *)(lVar10 + -0x230) ^ uVar40) =
       *(ulonglong *)(lVar10 + -0x510) ^ uVar35 ^ uVar27;
  uVar46 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  lVar9 = *(longlong *)(lVar10 + -0x5a0);
  *(undefined8 *)(lVar10 + -0x5a0) = 0xada519065dcf4edf;
  *(ulonglong *)(lVar10 + -0x6f0) =
       (CONCAT44(uVar15,uVar13) ^ 0x42354a75f5fef9ff) * 0x60 + lVar9 + 0x40 ^ uVar46;
  uVar12 = DAT_182671848;
  lVar9 = *(longlong *)(lVar10 - (uVar31 ^ 0xca3544ed));
  *(uint *)(lVar10 + -0x274) = (uVar14 ^ 0x4eab9d5b) + 0xcbcb911c;
  uVar18 = DAT_18267179c;
  *(ulonglong *)(lVar10 + -0x30) =
       lVar9 + ((CONCAT44(uVar16,uVar14) ^ 0x1bce11c57fce35f6) +
               (CONCAT44(uVar47,uVar24) ^ 0x35fe7fce11ce11c5) * 0xc) * 8 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_1826715d4;
  uVar26 = CONCAT44(uVar18,uVar18);
  uVar48 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar10 + -0x610) =
       *(ulonglong *)(*(ulonglong *)(lVar10 - ((ulonglong)uVar24 ^ 0x11ce1735)) ^ uVar46) ^ uVar48 ^
       uVar26;
  *(ulonglong *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar10 + -0xcc8)) =
       CONCAT44(uVar15,uVar15) ^ 0x3ddd431bfbe46fad;
  uVar36 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar10 - (uVar42 ^ 0x8a010c68)) =
       (*(ulonglong *)(lVar10 + -0x6f0) ^ uVar46) + 8 ^ uVar36;
  puVar2 = (ulonglong *)(lVar10 + -0xbf0);
  uVar43 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *puVar2 = *(ulonglong *)(*(ulonglong *)(lVar10 + -0xb78) ^ uVar36) ^ uVar43 ^ uVar48;
  *(ulonglong *)(CONCAT44(DAT_1826716f4,DAT_1826716f4) ^ *(ulonglong *)(lVar10 + -0xab8)) =
       CONCAT44(uVar16,uVar13) ^ 0xc76386439d8bf207;
  puVar7 = (ulonglong *)
           ((*(ulonglong *)(lVar10 + -0x6f0) ^ uVar46) +
           (CONCAT44(uVar47,uVar16) ^ 0x35fe7fce1bce11c7) * 8);
  uVar36 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(lVar10 + -0x830) = (ulonglong)puVar7 ^ CONCAT44(DAT_182671638,DAT_182671638);
  *(ulonglong *)(lVar10 + -0x5c8) = *puVar7 ^ uVar36 ^ uVar48;
  uVar25 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(*(ulonglong *)(lVar10 + -0x220) ^ uVar25) =
       CONCAT44(uVar14,uVar17) ^ 0x1b45d7d244588bae;
  uVar32 = CONCAT44(DAT_182671650,DAT_182671650);
  bVar38 = (byte)uVar24;
  *(ulonglong *)(lVar10 - (uVar28 ^ 0xf5fefd5f)) =
       (*(ulonglong *)(lVar10 - (uVar33 ^ 0x1bce1735)) ^ uVar46) +
       (CONCAT44(uVar30,uVar17) ^ 0xca354f758a010713) * 8 ^ uVar32;
  *(ulonglong *)(lVar10 + -0x9f8) =
       (*(ulonglong *)(lVar10 + -0x610) ^ uVar26) << ((bVar38 ^ 0xca) & 0x3f);
  uVar12 = _DAT_18267188c;
  puVar7 = (ulonglong *)(lVar10 + -0x1f0);
  *puVar7 = *(ulonglong *)(*(ulonglong *)(lVar10 + -0x4a0) ^ uVar32) ^ uVar32 ^ uVar48;
  *(ulonglong *)(*(ulonglong *)(lVar10 - (uVar42 ^ 0x8a0100a8)) ^ CONCAT44(uVar12,uVar12)) =
       CONCAT44(uVar13,uVar15) ^ 0xe5a9c118b82d6fe7;
  *(uint *)(lVar10 + -0x5cc) =
       *(uint *)(*(ulonglong *)(lVar10 - (uVar34 ^ 0x35fe788e)) ^ (ulonglong)DAT_1826715bc) ^
       DAT_1826717c0;
  lVar9 = DAT_182671560;
  uVar46 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar10 - (uVar45 ^ 0x7fce33fe)) =
       (CONCAT44(uVar15,uVar24) ^ 0xbd3a2938ebd3480d) + (*puVar2 ^ uVar43) ^ uVar46;
  uVar26 = (CONCAT44(uVar17,uVar30) ^ 0xaafc8edd4efe3f47) +
           (*(ulonglong *)(lVar9 + -0x610) ^ uVar26);
  puVar3 = (ulonglong *)(lVar9 + -0x318);
  *puVar3 = uVar26 ^ CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar9 + -0xc08) = uVar32 ^ *puVar7 ^ 0xb50fef42c6906133;
  uVar49 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar9 + -0x688) =
       (*(ulonglong *)(lVar9 - (uVar33 ^ 0x1bce17c5)) ^ uVar46) + uVar26 ^ uVar49;
  *(ulonglong *)(lVar9 + -0x3f0) =
       (*(ulonglong *)(lVar9 + -0x600) ^ uVar46) << (((byte)uVar30 ^ 0x7b) & 0x3f) ^ uVar25;
  lVar9 = DAT_182671560;
  uVar43 = CONCAT44(DAT_182671644,DAT_182671644);
  local_110 = (byte)uVar14;
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x1bce101d)) =
       (*(ulonglong *)(DAT_182671560 - (uVar42 ^ 0x8a010110)) ^ uVar46) >>
       ((local_110 ^ 0xcc) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar9 - (uVar50 ^ 0x11ce1ba5)) =
       (CONCAT44(uVar30,uVar15) ^ 0x95a931caed713950) + 0x7312dcf3a8c010d4;
  uVar26 = *(ulonglong *)(lVar9 - (uVar50 ^ 0x11ce101d)) ^ uVar43 |
           *(ulonglong *)(lVar9 + -0x3f0) ^ uVar25;
  puVar4 = (ulonglong *)(lVar9 + -0x638);
  *puVar4 = uVar26 ^ CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x35fe7976)) =
       uVar26 ^ uVar49 ^ uVar27 ^ *(ulonglong *)(lVar9 + -0x688);
  uVar18 = DAT_182671788;
  puVar37 = (ulonglong *)(lVar9 - (uVar28 ^ 0xf5fef97f));
  *puVar37 = (*(ulonglong *)(lVar9 - (uVar28 ^ 0xf5fef80f)) ^ uVar32) +
             (CONCAT44(uVar14,uVar30) ^ 0x24be7a27cb30472) ^ uVar35;
  uVar32 = (CONCAT44(uVar16,uVar17) ^ 0x325d446d4dc27137) +
           (*(ulonglong *)(lVar9 + -0x5c8) ^ uVar36);
  *(ulonglong *)(lVar9 + -0x748) = uVar32 ^ CONCAT44(uVar18,uVar18);
  uVar12 = DAT_182671684;
  puVar41 = (ulonglong *)(lVar9 + -0x670);
  *puVar41 = *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xca354ead)) ^ uVar43 |
             CONCAT44(uVar15,uVar15) ^ 0x2bd3177ed3338ba6;
  lVar9 = DAT_182671560;
  uVar43 = *(ulonglong *)(DAT_182671560 + -0x80) ^ uVar35;
  uVar32 = uVar32 + uVar43;
  uVar26 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  puVar5 = (ulonglong *)(DAT_182671560 + -0x368);
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar32 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar9 + -0xa88) = *(ulonglong *)(uVar26 ^ *puVar5) ^ uVar48;
  uVar36 = CONCAT44(_DAT_182671838,_DAT_182671838);
  puVar5 = (ulonglong *)(lVar9 + -0x3b8);
  *(ulonglong *)(lVar9 + -0xa80) = (CONCAT44(uVar24,uVar47) ^ 0x8d8851578401d0a1) + uVar32 ^ uVar36;
  uVar12 = DAT_1826718c0;
  *puVar5 = (CONCAT44(uVar13,uVar13) ^ 0x4d09c3d9fb2afe47) << ((local_110 ^ 0xf1) & 0x3f);
  uVar11 = DAT_18267156c;
  bVar29 = (byte)(uVar14 >> 0x10);
  uVar46 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar43 << ((bVar29 ^ 0xde) & 0x3f) ^ uVar46;
  lVar9 = DAT_182671560;
  uVar48 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x1bce1165)) =
       uVar43 >> ((local_110 ^ 0xce) & 0x3f) ^ uVar48;
  uVar26 = *(ulonglong *)(lVar9 + -0x9f8);
  *puVar2 = (CONCAT44(uVar24,uVar11) ^ 0xad905fb894646b76) >>
            ((*(byte *)(lVar9 - (uVar28 ^ 0xf5fefeb7)) ^ (byte)uVar18) & 0x3f);
  uVar32 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar9 - (uVar44 ^ 0x42354c65)) =
       (uVar26 ^ uVar46 | uVar48 ^ *(ulonglong *)(lVar9 + -0xa0)) ^ uVar32;
  uVar12 = DAT_182671570;
  uVar46 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(lVar9 + -0xc08) =
       *(ulonglong *)(lVar9 - (uVar42 ^ 0x8a010100)) ^ *(ulonglong *)(lVar9 + -0xa80) ^ uVar46 ^
       uVar32 ^ uVar36;
  *(ulonglong *)(lVar9 - (uVar33 ^ 0x1bce12dd)) =
       *(ulonglong *)(lVar9 + -0x80) ^ uVar35 ^ 0xb9e2556e1ccfa48b;
  uVar18 = DAT_1826717fc;
  uVar26 = uVar46 ^ *(ulonglong *)(lVar9 + -0xc08);
  uVar28 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar9 + -0x600) = (uVar49 ^ *(ulonglong *)(lVar9 + -0x688)) + uVar26 ^ uVar28;
  uVar14 = DAT_182671590;
  lVar9 = DAT_182671560;
  uVar44 = CONCAT44(uVar18,uVar18);
  puVar6 = (ulonglong *)(DAT_182671560 + -0xa60);
  local_138 = (byte)uVar15;
  uVar35 = CONCAT44(DAT_182671870,DAT_182671870);
  *puVar6 = (*(ulonglong *)(DAT_182671560 - (uVar42 ^ 0x8a010b18)) ^ uVar46) <<
            (((byte)uVar12 ^ 0xdb) & 0x3f) ^ uVar44;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_1826715ac ^ 0xdfee5635)) =
       uVar26 >> ((local_138 ^ 0x79) & 0x3f) ^ uVar35;
  *puVar4 = *puVar3 - (CONCAT44(uVar14,uVar16) ^ 0xdebd3486b25f50f7);
  uVar21 = DAT_182671878;
  uVar32 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar49 = (ulonglong)DAT_182671878;
  uVar43 = CONCAT44(DAT_182671878,DAT_182671878);
  *puVar7 = (*(ulonglong *)(lVar9 - (uVar45 ^ 0x7fce360e)) ^ uVar35 | uVar44 ^ *puVar6) ^ uVar32;
  uVar11 = DAT_18267158c;
  uVar26 = *puVar1;
  *(ulonglong *)(lVar9 + -0x5c8) =
       *(ulonglong *)(lVar9 - (uVar33 ^ 0x1bce1035)) ^ *(ulonglong *)(lVar9 - (uVar50 ^ 0x11ce17c5))
       ^ uVar43 ^ uVar32 ^ uVar28;
  puVar23 = (ulonglong *)(lVar9 - (uVar42 ^ 0x8a010d90));
  uVar46 = CONCAT44(DAT_182671620,DAT_182671620);
  bVar20 = (byte)DAT_182671574;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0xc555ef07)) =
       (uVar26 ^ uVar27) + (uVar36 ^ *puVar23) ^ uVar46;
  uVar26 = *puVar1;
  *puVar41 = (uVar35 ^ *(ulonglong *)(lVar9 + -0x3f0)) >> ((bVar20 ^ 0xc9) & 0x3f);
  uVar12 = DAT_182671704;
  uVar35 = (uVar26 ^ uVar27) << 0x39;
  uVar32 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar27 = (uVar26 ^ uVar27) >> (((byte)uVar30 ^ 0x72) & 0x3f);
  *(ulonglong *)(lVar9 + -0xa88) = uVar35 ^ uVar32;
  uVar18 = DAT_1826717c4;
  *(ulonglong *)(lVar9 + -0x800) = uVar27 ^ CONCAT44(uVar12,uVar12);
  uVar19 = DAT_1826716e0;
  uVar11 = DAT_182671588;
  uVar44 = (ulonglong)DAT_1826716e0;
  uVar26 = CONCAT44(uVar18,uVar18);
  uVar36 = (ulonglong)DAT_182671588;
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0x1f841304)) = (uVar27 | uVar35) ^ uVar26;
  lVar9 = DAT_182671560;
  uVar35 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_182671560 - (uVar50 ^ 0x11ce168d)) =
       uVar35 ^ uVar26 ^ uVar46 ^ *puVar5 ^ *(ulonglong *)(DAT_182671560 + -0x1d8);
  uVar35 = uVar35 ^ *(ulonglong *)(lVar9 + -0x748);
  uVar26 = (ulonglong)DAT_18267156c;
  uVar33 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *puVar2 = (uVar28 ^ *(ulonglong *)(lVar9 + -0x600)) + uVar35 ^ uVar33;
  uVar27 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar9 - (uVar26 ^ 0xf681fd48)) = uVar35 << ((bVar29 ^ 0xd9) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar9 + -0xa0) =
       (*(ulonglong *)(lVar9 + -0xa88) ^ uVar32) << (((byte)uVar14 ^ 0x97) & 0x3f);
  uVar12 = DAT_182671844;
  uVar26 = (*(ulonglong *)(lVar9 + -0x748) >> 0x20 ^ uVar44) >> 9;
  *(ulonglong *)(lVar9 + -0x610) = uVar26 ^ CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar9 + -0x80) = (uVar26 | *(ulonglong *)(lVar9 + -0x9f8) ^ uVar27) ^ uVar32;
  uVar12 = DAT_182671764;
  uVar43 = uVar43 ^ *(ulonglong *)(lVar9 + -0x5c8);
  uVar44 = CONCAT44(DAT_182671774,DAT_182671774);
  uVar50 = (ulonglong)DAT_1826715b4;
  uVar26 = *puVar2;
  uVar35 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar28 = *(ulonglong *)(lVar9 - ((ulonglong)DAT_18267157c ^ 0x300a11a2)) ^ uVar44 ^ uVar32 ^
           uVar33 ^ uVar26;
  *(ulonglong *)(lVar9 + -0xc08) = (uVar46 ^ *(ulonglong *)(lVar9 + -0x1d8)) + uVar43 ^ uVar35;
  uVar43 = uVar43 << ((bVar38 ^ 0xed) & 0x3f);
  uVar32 = CONCAT44(uVar24,DAT_1826715a0);
  *(ulonglong *)(lVar9 + -0x688) = uVar28;
  uVar27 = ((ulonglong)(uVar21 >> 0x18) | uVar49 << 8) ^ *(ulonglong *)(lVar9 + -0x5c8) >> 0x18;
  *puVar3 = uVar43 ^ CONCAT44(uVar12,uVar12);
  *puVar4 = uVar27 ^ CONCAT44(DAT_182671600,DAT_182671600);
  uVar12 = DAT_182671678;
  lVar9 = DAT_182671560;
  *puVar6 = (uVar32 ^ 0xbc5a85af680c5b1b) + (uVar44 ^ uVar28);
  uVar32 = (ulonglong)DAT_1826715b0;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar27 = (uVar43 | uVar27) ^ uVar28;
  *puVar7 = uVar27;
  uVar12 = _DAT_1826716c0;
  uVar46 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  uVar27 = *(ulonglong *)(lVar9 - (uVar32 ^ 0xfff9f2fd)) ^ uVar46 ^ uVar28 ^ uVar35 ^ uVar27;
  *(ulonglong *)(lVar9 + -0xa80) = uVar27;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar21 = DAT_18267159c ^ 0x890542f9;
  uVar19 = DAT_182671580 ^ 0x1adebf4d;
  *(ulonglong *)(lVar9 + -0x3f0) = (uVar33 ^ uVar26) + (uVar46 ^ uVar27) ^ uVar28;
  uVar14 = DAT_182671584;
  uVar27 = (ulonglong)DAT_182671584;
  *(uint *)(lVar9 + -0x910) = uVar21 | uVar19;
  *puVar41 = (uVar46 ^ *puVar23) << (bVar38 & 0x3f) ^ uVar48;
  *(uint *)(lVar9 + -0x844) = (uVar11 ^ 0x4f897653) * -0x27ff1c21;
  uVar32 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  local_res20 = (byte)uVar16;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671590 ^ 0x12801638)) =
       (*(ulonglong *)(lVar9 - (uVar45 ^ 0x7fce3f7e)) ^ uVar46) >> ((local_res20 ^ 0xfe) & 0x3f) ^
       uVar32;
  lVar9 = DAT_182671560;
  uVar26 = CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar43 = CONCAT44(DAT_18267178c,DAT_18267178c);
  *(ulonglong *)(DAT_182671560 + -0x800) =
       (*(ulonglong *)(DAT_182671560 - (uVar42 ^ 0x8a0101a8)) ^ uVar32 | uVar48 ^ *puVar41) ^ uVar26
  ;
  *(ulonglong *)(lVar9 - (uVar27 ^ 0xda95dd1f)) =
       *(ulonglong *)(lVar9 - (uVar34 ^ 0x35fe77ce)) ^ uVar43 ^ uVar26 ^ uVar28 ^
       *(ulonglong *)(lVar9 + -0x3f0);
  uVar18 = DAT_18267174c;
  uVar26 = uVar44 ^ *(ulonglong *)(lVar9 + -0x688);
  uVar45 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar9 + -0x600) = (uVar35 ^ *(ulonglong *)(lVar9 + -0xc08)) + uVar26 ^ uVar45;
  uVar12 = DAT_1826716f0;
  uVar16 = DAT_1826715ac;
  uVar32 = (ulonglong)DAT_1826715ac;
  uVar34 = CONCAT44(uVar18,uVar18);
  local_128 = (byte)uVar13;
  *(ulonglong *)(lVar9 + -0xa88) = uVar26 << ((local_128 ^ 0xda) & 0x3f) ^ uVar34;
  uVar11 = DAT_18267156c;
  lVar9 = DAT_182671560;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar35 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(DAT_182671560 - (uVar50 ^ 0x3aaa1180)) =
       (*(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xca3549fd)) ^ uVar44) >>
       (((byte)uVar14 ^ 0xbc) & 0x3f) ^ uVar26;
  uVar42 = (uVar26 ^ *(ulonglong *)(lVar9 + -0xa0) | uVar34 ^ *(ulonglong *)(lVar9 + -0xa88)) ^
           uVar22;
  uVar26 = *(ulonglong *)(lVar9 - (uVar36 ^ 0x1f841a3c));
  *(ulonglong *)(lVar9 + -0x9f8) = uVar42;
  uVar18 = DAT_182671728;
  *(ulonglong *)(lVar9 + -0x748) = uVar26 ^ CONCAT44(uVar47,uVar11) ^ uVar46 ^ 0xdaa2fb675f08a159;
  uVar12 = DAT_182671570;
  uVar34 = CONCAT44(uVar18,uVar18);
  uVar22 = *(ulonglong *)(lVar9 - (uVar35 ^ 0xf681f2b0)) ^ uVar34 ^ uVar42 ^ uVar45 ^ uVar22;
  uVar36 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(lVar9 + -0x610) = uVar22;
  uVar13 = DAT_1826715b0;
  uVar26 = CONCAT44(uVar12,DAT_1826715b0);
  *(undefined8 *)(lVar9 + -0x1d8) = 0;
  uVar11 = DAT_18267158c;
  uVar42 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar9 + -0x80) = (uVar26 ^ 0xb0276ed4863adb63) + (uVar34 ^ uVar22) ^ uVar36;
  uVar34 = CONCAT44(DAT_182671890,DAT_182671890);
  *(ulonglong *)(lVar9 - (uVar27 ^ 0xda95db6f)) =
       (*(ulonglong *)(lVar9 - (uVar42 ^ 0xc555ed2f)) ^ uVar28) +
       (CONCAT44(uVar16,uVar11) ^ 0x9ba5320f9eb80fcb) ^ uVar34;
  uVar12 = DAT_182671818;
  uVar26 = uVar36 ^ *(ulonglong *)(lVar9 + -0x80);
  uVar42 = CONCAT44(DAT_182671700,DAT_182671700);
  *puVar6 = (uVar34 ^ *(ulonglong *)(lVar9 + -0x5c8)) + uVar26 ^ uVar42;
  *(ulonglong *)(lVar9 - (uVar32 ^ 0xdfee56dd)) = uVar26 << ((local_138 ^ 0x6c) & 0x3f) ^ uVar25;
  uVar36 = (uVar36 ^ *puVar37) >> ((local_138 ^ 0x52) & 0x3f);
  local_res18 = (byte)uVar17;
  *puVar4 = uVar36 ^ CONCAT44(uVar12,uVar12);
  uVar26 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar34 = (uVar36 | uVar25 ^ *puVar3) ^ uVar26;
  *puVar7 = uVar34;
  *puVar2 = CONCAT44(DAT_182671830,DAT_182671830) ^ uVar26 ^ uVar42 ^ *puVar6 ^ uVar34;
  *puVar41 = uVar36 << ((local_res18 ^ 0x17) & 0x3f);
  *puVar1 = (CONCAT44(uVar15,uVar13) ^ 0x6944385cf86648d0) + (uVar43 ^ *puVar5) ^ uVar40;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar8 ^ uVar30) * 4) = uVar39;
  return;
}



############ FUN_ 180ed29d0 size=4278 ############

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

void FUN_180ed29d0(void)

{
  ulonglong *puVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte *pbVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint *puVar31;
  uint *puVar32;
  ulonglong uVar33;
  uint *puVar34;
  ulonglong uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  byte local_70;
  
  uVar16 = DAT_1826718cc;
  uVar15 = DAT_1826715a8;
  uVar21 = DAT_1826715a4;
  uVar5 = DAT_182671590;
  uVar29 = DAT_182671588;
  uVar30 = DAT_182671584;
  uVar14 = DAT_182671578;
  lVar3 = DAT_182671560;
  uVar35 = (ulonglong)DAT_182671578;
  uVar24 = (ulonglong)DAT_182671590;
  uVar37 = DAT_182671578 & DAT_182671590;
  uVar39 = (ulonglong)DAT_1826715a4;
  uVar38 = uVar37 ^ 0x96b3ce89;
  uVar33 = (ulonglong)DAT_182671584;
  uVar36 = DAT_1826715a4 - DAT_18267156c;
  uVar18 = *(uint *)(&DAT_182611e78 + DAT_182671c1c) ^ DAT_182671578;
  uVar23 = ~DAT_182671594;
  uVar13 = DAT_1826715a8 * DAT_182671584;
  uVar26 = DAT_182671588 << 0x10 | DAT_182671588 >> 0x10;
  uVar7 = *(uint *)(&DAT_182611e80 + DAT_182671c1c) ^ DAT_182671590;
  uVar28 = DAT_1826718cc & 0xff;
  uVar8 = (ulonglong)uVar38;
  uVar9 = (ulonglong)uVar13;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x150);
  DAT_182671568 = uVar38;
  DAT_18267158c = uVar13;
  DAT_182671598 = uVar23;
  DAT_1826715a0 = uVar26;
  DAT_1826715b4 = uVar36;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = CONCAT44(uVar37,uVar13) ^ 0xdebc2593c27028d6;
  *(byte *)(lVar3 - ((ulonglong)uVar15 ^ 0x205c28ee)) =
       *(byte *)(*puVar1 ^ (ulonglong)DAT_182671760) ^ (byte)uVar16 ^ (byte)DAT_182671694;
  uVar16 = DAT_18267184c;
  uVar10 = (ulonglong)uVar23;
  *(byte *)(*(ulonglong *)(lVar3 + -0x5b0) ^ (ulonglong)DAT_182671604) = (byte)uVar30 ^ 0x61;
  lVar4 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x344) =
       *(byte *)(lVar3 - ((ulonglong)uVar23 ^ 0xfd76b748)) ^ uVar28 ^ uVar16;
  *(uint *)(lVar4 + -0x844) =
       (*(uint *)(lVar4 + -0x754) ^ DAT_182671788) + (uVar29 ^ 0x387ada18) ^ DAT_182671730;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0xa0069920)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0xfccd32c9)) ^ uVar16) <<
       (((byte)DAT_182671594 ^ 0x14) & 0x1f) ^ DAT_18267160c;
  uVar20 = DAT_1826716d4;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0x3bfeb1a9)) =
       (*(uint *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0xe1616099)) ^ DAT_182671730) -
       (*(uint *)(DAT_182671560 - ((ulonglong)uVar36 ^ 0x8ad8213f)) ^ DAT_18267160c) ^ DAT_182671630
  ;
  uVar15 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar11 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0x568942f6)) =
       CONCAT44(DAT_18267156c,uVar30) ^ 0x24b141124428064 | 0xedb4e3eed9ac6b03;
  uVar6 = DAT_1826717bc;
  uVar19 = (*(uint *)(lVar3 + -0x344) ^ uVar16) * (uVar23 ^ 0xfd76bff2);
  uVar28 = (*(uint *)(lVar3 + -0x964) ^ DAT_1826717b0) * (*(uint *)(lVar3 + -0x274) ^ DAT_182671630)
           ^ DAT_1826717f8;
  *(uint *)(lVar3 + -0x328) = uVar28;
  uVar28 = uVar28 ^ DAT_1826717f8;
  *(uint *)(lVar3 + -0x27c) = uVar19 ^ uVar6;
  uVar16 = DAT_182671594;
  uVar19 = uVar19 + uVar28;
  uVar17 = (ulonglong)DAT_182671594;
  *(uint *)(lVar3 + -0x47c) = uVar19 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x6d0) =
       ((ulonglong)uVar5 << 8 | (ulonglong)(uVar38 >> 0x18)) ^ 0xe886117f9;
  *(uint *)(lVar3 - (uVar8 ^ 0x96b75dfd)) =
       uVar19 << ((byte)(uVar29 >> 0x10) & 0x1f) ^ DAT_18267178c;
  uVar19 = DAT_1826716f4;
  uVar28 = DAT_1826716a8;
  uVar20 = (*(uint *)(lVar3 - (uVar17 ^ 0x2894479)) ^ uVar20) >> 0x13 ^ DAT_1826716a4;
  puVar31 = (uint *)(lVar3 - ((ulonglong)uVar5 ^ 0x80049374));
  *(uint *)(lVar3 + -0x504) = uVar20;
  *(uint *)(lVar3 + -0x5cc) = (*puVar31 ^ DAT_18267178c | uVar20 ^ DAT_1826716a4) ^ DAT_182671678;
  *(longlong *)(lVar3 + -0xc08) =
       0x2a2e5e390aa4863 << ((byte)*(undefined8 *)(lVar3 + -0x2a0) & 0x3f);
  puVar34 = (uint *)(lVar3 - (uVar9 ^ 0x2e44df98));
  *(uint *)(lVar3 + -0x874) =
       (*(uint *)(lVar3 - ((ulonglong)uVar14 ^ 0x3bfeb015)) ^ DAT_182671624) +
       (*(uint *)(lVar3 + -0x964) ^ DAT_1826717b0) ^ DAT_182671810;
  *puVar34 = *(uint *)(lVar3 - (uVar33 ^ 0xa006983c)) ^ DAT_1826717cc ^ DAT_182671810;
  uVar20 = *(uint *)(lVar3 + -0x5cc) ^ DAT_1826718b8 ^ DAT_182671678;
  uVar17 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar3 + -0x600) = CONCAT44(uVar29,uVar29) << 0x2a ^ 0x7734600000000000;
  *(uint *)(lVar3 - (uVar17 ^ 0x205c2708)) = uVar20;
  *(uint *)(lVar3 + -0x968) = *puVar34 ^ uVar19 ^ DAT_1826717cc;
  *(uint *)(lVar3 + -0x844) = *(uint *)(lVar3 + -0x754) ^ uVar28 ^ DAT_1826718b8;
  *(ulonglong *)(lVar3 + -0x688) =
       CONCAT44(uVar36,uVar23) ^ *(ulonglong *)(lVar3 + -0x270) ^ 0x69189729b8930f42;
  uVar20 = DAT_1826717ac;
  pbVar22 = (byte *)((CONCAT44(uVar30,uVar16) ^ 0xa006904802894005) * 0x20 +
                     (CONCAT44(uVar37,uVar30) ^ 0x49000a006905b) + *(longlong *)(lVar3 + -0x8f0));
  *(ulonglong *)(lVar3 + -0x940) = (ulonglong)pbVar22 ^ (ulonglong)uVar6;
  bVar2 = (byte)DAT_182671850;
  *(ulonglong *)(lVar3 + -0x3b8) =
       CONCAT44(uVar23,uVar26) ^ 0x840ddef699d85012 | *(ulonglong *)(lVar3 + -0x9f8);
  *(byte *)(lVar3 - (uVar39 ^ 0xe161628c)) = *pbVar22 ^ bVar2 ^ (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar29 ^ 0x318df1e5)) ^ (ulonglong)DAT_182671634) =
       (byte)uVar38 ^ 0x23;
  *(uint *)(lVar3 - (uVar11 ^ 0x568942f2)) = (*(byte *)(lVar3 + -0xa51) ^ bVar2) ^ uVar20;
  uVar38 = (uVar28 ^ *(uint *)(lVar3 + -0x844)) + (uVar21 ^ 0xe8964e08) ^ DAT_182671828;
  bVar12 = (byte)uVar36 ^ 0x46;
  *(uint *)(lVar3 + -0x344) = uVar38;
  uVar38 = uVar38 ^ DAT_182671828;
  uVar28 = (*(uint *)(lVar3 + -0x274) ^ uVar20) << (bVar12 & 0x1f) ^ DAT_1826715e4;
  *(uint *)(lVar3 + -0x328) = uVar28;
  uVar6 = DAT_182671778;
  uVar38 = uVar38 - (uVar28 ^ DAT_1826715e4);
  uVar28 = uVar38 ^ DAT_182671778;
  *(ulonglong *)(lVar3 + -0x9e8) =
       *(longlong *)(lVar3 + -0x628) - (CONCAT44(uVar36,DAT_1826715a8) ^ 0xc3c30733644c87ae);
  *(uint *)(lVar3 + -0x27c) = uVar28;
  uVar28 = _DAT_182671618;
  *(uint *)(lVar3 - (uVar9 ^ 0x2e44dd9c)) =
       uVar38 * (uVar19 ^ *(uint *)(lVar3 + -0x968)) ^ DAT_1826717e4;
  puVar34 = (uint *)(lVar3 + -0x374);
  bVar2 = (byte)DAT_182671590;
  *(uint *)(lVar3 - (uVar10 ^ 0xfd76bc8e)) =
       (*(uint *)(lVar3 + -0x274) ^ uVar20) * (DAT_182671590 ^ 0x80049013) ^ DAT_182671800;
  *(byte *)(lVar3 + -0x411) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x289452d)) ^ (ulonglong)DAT_1826717c0)
       ^ (byte)DAT_182671694;
  uVar20 = (*(uint *)(lVar3 - (uVar35 ^ 0x3bfeb7a1)) ^ DAT_1826717e4) + (*puVar34 ^ DAT_182671800);
  *(uint *)(lVar3 + -0x504) = uVar20 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x800) =
       (CONCAT44(uVar21,uVar15) ^ 0xd5617c59816a1b06) + *(longlong *)(lVar3 + -0x1d8);
  *(uint *)(lVar3 - (uVar39 ^ 0xe16161b9)) = uVar20 * 0x2000 ^ DAT_1826718c4;
  *(ulonglong *)(lVar3 + -0x548) =
       (CONCAT44(uVar29,uVar36) ^ 0xdb5905acc5bf88a2) << (((byte)uVar16 ^ 0x38) & 0x3f);
  *(uint *)(lVar3 + -0x874) =
       (*(uint *)(lVar3 + -0x504) ^ uVar28) >> ((bVar2 ^ 0x13) & 0x1f) ^ uVar6;
  uVar38 = DAT_182671824;
  uVar20 = DAT_182671748;
  uVar16 = DAT_1826716b8;
  uVar28 = (*(uint *)(lVar3 + -0x3c8) ^ DAT_182671624) + (uVar19 ^ *(uint *)(lVar3 + -0x968)) ^
           DAT_1826715f4;
  uVar27 = (ulonglong)DAT_1826716b8;
  uVar21 = DAT_182671824 ^ DAT_1826716b8;
  *(uint *)(lVar3 + -0x5cc) =
       (*(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0xfccd39f9)) ^ uVar6 |
       *(uint *)(lVar3 + -0x964) ^ DAT_1826718c4) ^ DAT_182671748;
  *(uint *)(lVar3 - (uVar33 ^ 0xa0069630)) = uVar28;
  uVar19 = *(uint *)(lVar3 + -0x678) ^ DAT_18267177c ^ DAT_1826715f4;
  *(ulonglong *)(lVar3 + -0x5c8) =
       (CONCAT44(uVar5,uVar37) ^ 0x911486c821948eac) +
       (CONCAT44(uVar15,uVar14) ^ 0x644c9bf0359cbbe0);
  uVar28 = DAT_1826716d8;
  *(uint *)(lVar3 + -0x754) = uVar19;
  uVar14 = *(uint *)(lVar3 - (uVar39 ^ 0xe1616d11));
  *(uint *)(lVar3 + -0x344) = uVar19 ^ uVar28 ^ DAT_18267177c;
  uVar14 = uVar14 ^ uVar16 ^ uVar20;
  *(uint *)(lVar3 + -0x844) = uVar14;
  *(uint *)(lVar3 - (uVar11 ^ 0x568943ae)) = uVar21 ^ uVar14;
  uVar17 = (ulonglong)DAT_182671874;
  *(ulonglong *)(lVar3 + -0x898) =
       CONCAT44(uVar37,uVar26) ^ 0x8c366c1308c26219 | CONCAT44(uVar5,uVar23) ^ 0xd3a989c508e1bfd0;
  uVar19 = DAT_1826718a0;
  uVar21 = DAT_182671688;
  bVar2 = (byte)DAT_182671680;
  uVar16 = DAT_1826715a8;
  pbVar22 = (byte *)((CONCAT44(uVar13,uVar30) ^ 0x2e44d9e0a0069048) * 0x20 +
                    *(longlong *)(lVar3 + -0x8f0) + 0x1e);
  uVar25 = (ulonglong)DAT_1826718a0;
  *(ulonglong *)(lVar3 + -0x370) = (ulonglong)pbVar22 ^ uVar17;
  uVar14 = DAT_182671578;
  *(byte *)(lVar3 + -0x41) = *pbVar22 ^ bVar2 ^ (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar3 + -0xf0) ^ uVar25) = (byte)uVar14 ^ 0x38;
  uVar30 = (uint)(*(byte *)(lVar3 - ((ulonglong)uVar29 ^ 0x318dfc8c)) ^ bVar2);
  *(uint *)(lVar3 + -0x27c) = uVar30 ^ uVar21;
  uVar14 = (*(uint *)(lVar3 + -0x328) ^ uVar38) + (uVar16 ^ 0x29ab0689) ^ DAT_182671808;
  uVar30 = uVar30 << (bVar12 & 0x1f) ^ DAT_1826716fc;
  *(uint *)(lVar3 + -0x274) = uVar14;
  uVar14 = uVar14 ^ DAT_182671808;
  *(uint *)(lVar3 + -0x47c) = uVar30;
  *puVar31 = uVar14 - (uVar30 ^ DAT_1826716fc) ^ DAT_1826717a8;
  local_70 = (byte)uVar5;
  uVar30 = (*(uint *)(lVar3 - (uVar39 ^ 0xe1616b99)) ^ uVar28) * (*puVar34 ^ DAT_1826717a8) ^
           DAT_18267173c;
  *(uint *)(lVar3 + -0x504) = uVar30;
  lVar4 = DAT_182671560;
  uVar30 = uVar30 ^ DAT_18267173c;
  uVar14 = (*(uint *)(lVar3 + -0x27c) ^ uVar21) * 0x1e ^ DAT_182671834;
  *(uint *)(lVar3 + -0x964) = uVar14;
  uVar14 = uVar14 ^ DAT_182671834;
  *(ulonglong *)(lVar3 + -0x240) = CONCAT44(uVar16,uVar29) ^ 0xf753ffdcfcb6b7fc | 0x2710fd1cbc36a314
  ;
  uVar5 = DAT_18267168c;
  uVar14 = uVar14 + uVar30 ^ DAT_18267168c;
  *(ulonglong *)(lVar4 + -0x110) = *(ulonglong *)(lVar4 + -0x6d0) >> ((local_70 ^ 0x10) & 0x3f);
  *(uint *)(lVar4 + -0x874) = uVar14;
  uVar14 = _DAT_1826715d8;
  *(uint *)(lVar4 - (uVar10 ^ 0xfd76b692)) =
       (*(uint *)(lVar4 - (uVar11 ^ 0x568948f2)) ^ uVar5) << (((byte)DAT_182671594 ^ 8) & 0x1f) ^
       _DAT_1826715d8;
  uVar17 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0x318df9dd)) =
       (CONCAT44(uVar23,uVar15) ^ 0xe1e183a504cea9a0) + 0x8bfbef6d53e21877;
  uVar15 = (uVar5 ^ *(uint *)(lVar4 + -0x874)) >> 0x13 ^ DAT_1826716bc;
  *(uint *)(lVar4 + -0x678) = uVar15;
  *(uint *)(lVar4 - (uVar17 ^ 0x205c2590)) =
       (uVar15 ^ DAT_1826716bc | uVar14 ^ *(uint *)(lVar4 + -0x968)) ^ DAT_182671860;
  uVar21 = DAT_1826718a4;
  *(uint *)(lVar4 - (uVar8 ^ 0x96b759dd)) =
       (*(uint *)(lVar4 - (uVar33 ^ 0xa0069380)) ^ DAT_182671624) +
       (*(uint *)(lVar4 + -0x344) ^ uVar28) ^ DAT_182671840;
  uVar15 = *(uint *)(lVar4 + -0x5cc) ^ DAT_182671650 ^ DAT_182671860;
  *(uint *)(lVar4 + -0x844) = DAT_1826718d0 ^ DAT_182671840 ^ *(uint *)(lVar4 + -0x754);
  *(uint *)(lVar4 + -0x328) = uVar15;
  uVar15 = uVar15 ^ DAT_182671710;
  uVar14 = *(uint *)(lVar4 - (uVar35 ^ 0x3bfebb99));
  *(undefined8 *)(lVar4 + -0x3f0) = 0x96c62e3bb4714;
  uVar15 = uVar15 ^ DAT_182671650;
  *(uint *)(lVar4 + -0x274) = uVar14 ^ uVar21 ^ DAT_1826718d0;
  bVar2 = DAT_1826716c0;
  *(uint *)(lVar4 - (uVar10 ^ 0xfd76bb86)) = uVar15;
  uVar14 = DAT_182671594;
  *(ulonglong *)(lVar4 - (uVar11 ^ 0x5689474e)) =
       *(longlong *)(lVar4 - (uVar9 ^ 0x2e44d110)) +
       (CONCAT44(uVar29,uVar26) ^ 0x318dfccdfccd318d) * 0x20 +
       (CONCAT44(uVar16,uVar26) ^ 0x205c205cfccd3184) ^ uVar27;
  *(byte *)(lVar4 + -0x909) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x7c8) ^ uVar27) ^ (byte)DAT_182671694 ^ bVar2;
  uVar9 = (ulonglong)DAT_1826717b0;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar39 ^ 0xe16164ad)) ^ (ulonglong)DAT_1826715e8) =
       (byte)uVar14 ^ 0x84;
  *(byte *)(lVar4 - (uVar33 ^ 0xa0069a41)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xb08) ^ uVar9) ^ (byte)DAT_182671694;
  *puVar34 = (bVar2 ^ *(byte *)(lVar4 + -0x909)) ^ uVar19;
  lVar3 = DAT_182671560;
  *(uint *)(lVar4 - ((ulonglong)uVar36 ^ 0x8ad82a2b)) =
       (*(uint *)(lVar4 + -0x47c) ^ DAT_182671710) + (uVar14 ^ 0xb7e66d0) ^ DAT_182671690;
  uVar30 = DAT_182671648;
  puVar32 = (uint *)(lVar3 - (uVar35 ^ 0x3bfeb6d9));
  *puVar32 = (*puVar31 ^ uVar19) << (((byte)DAT_1826715a8 ^ 0x4d) & 0x1f) ^ DAT_1826718cc;
  uVar29 = DAT_1826718cc;
  uVar16 = (*(uint *)(DAT_182671560 - (uVar33 ^ 0xa0069234)) ^ DAT_182671690) -
           (*(uint *)(DAT_182671560 + -0x504) ^ DAT_1826718cc);
  *(uint *)(DAT_182671560 + -0x964) = uVar16 ^ uVar38;
  lVar3 = DAT_182671560;
  uVar16 = (*(uint *)(DAT_182671560 - (uVar24 ^ 0x80049274)) ^ uVar21) * uVar16;
  uVar14 = *puVar34;
  uVar15 = *(uint *)(DAT_182671560 + -0x274);
  *(uint *)(DAT_182671560 + -0x874) = uVar16 ^ uVar30;
  uVar14 = (uVar14 ^ uVar19) * (DAT_1826715a8 ^ 0x205c2055);
  *(uint *)(lVar3 + -0x968) = uVar14 ^ _DAT_1826715f0;
  uVar14 = uVar16 + uVar14 ^ DAT_1826717f4;
  bVar2 = (byte)DAT_18267156c;
  *(uint *)(lVar3 + -0x678) = uVar14;
  uVar14 = uVar14 ^ DAT_1826717f4;
  uVar30 = uVar14 >> ((bVar2 ^ 0x95) & 0x1f) ^ DAT_1826717dc;
  uVar14 = uVar14 << 0xd;
  *(uint *)(lVar3 + -0x754) = uVar30;
  uVar30 = uVar30 ^ DAT_1826717dc;
  *(uint *)(lVar3 + -0x344) = uVar14 ^ uVar29;
  *(uint *)(lVar3 + -0x5cc) = (uVar14 | uVar30) ^ uVar20;
  *(longlong *)(lVar3 + -0x8a8) = -0x439a64bfce23d266 << (((byte)uVar36 ^ 0x53) & 0x3f);
  uVar14 = DAT_182671580;
  uVar30 = DAT_18267167c ^ uVar38;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0xfccd39c9)) =
       (*(uint *)(lVar3 - (uVar8 ^ 0x96b75d41)) ^ DAT_182671624) + (uVar21 ^ uVar15) ^ uVar38;
  uVar30 = uVar30 ^ *(uint *)(lVar3 + -0x844);
  *(uint *)(lVar3 + -0x328) = uVar30;
  uVar15 = DAT_1826715b0;
  uVar29 = uVar30 ^ DAT_1826718c8 ^ DAT_18267167c;
  uVar30 = *(uint *)(lVar3 - (uVar11 ^ 0x5689454a)) ^ uVar20 ^ DAT_1826717ac;
  uVar9 = (ulonglong)DAT_1826715b0;
  *(uint *)(lVar3 + -0x47c) = uVar30;
  uVar30 = uVar30 ^ DAT_182671888 ^ DAT_1826717ac;
  *(uint *)(lVar3 + -0x27c) = uVar29;
  *puVar32 = uVar30;
  bVar2 = (byte)DAT_18267162c;
  DAT_18267159c = uVar14 ^ uVar15;
  uVar8 = (ulonglong)DAT_18267159c;
  bVar12 = (byte)DAT_18267159c;
  *(ulonglong *)(lVar3 + -0x728) =
       (CONCAT44(uVar14,uVar15) ^ 0x3bfe23585ff96fb7) * 0x20 + 0x14 +
       *(longlong *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0x6407441f)) ^ uVar27;
  *(byte *)(lVar3 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar8 ^ 0x64074bc7)) ^ uVar27) ^ (byte)DAT_182671694 ^
       bVar2;
  *(byte *)(*(ulonglong *)(lVar3 + -0x260) ^ (ulonglong)DAT_1826715bc) = bVar12 ^ 0x33;
  *(uint *)(lVar3 + -0x964) = (bVar2 ^ *(byte *)(lVar3 + -0xc41)) ^ DAT_18267174c;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar7 * 4) = uVar18;
  *puVar34 = (*(uint *)(lVar3 - (uVar9 ^ 0x5ff96ab3)) ^ DAT_182671888) + (uVar14 ^ 0x3209058d) ^
             uVar5;
  return;
}



############ FUN_ 180e6de00 size=5262 ############

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

void FUN_180e6de00(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  byte bVar5;
  uint uVar6;
  undefined4 uVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  byte bVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte bVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  uint uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  byte local_160;
  byte local_158;
  byte local_140;
  byte local_130;
  byte local_f8;
  
  uVar16 = DAT_182671594;
  uVar15 = DAT_182671588;
  uVar14 = DAT_182671580;
  uVar13 = DAT_18267157c;
  uVar12 = DAT_182671578;
  uVar11 = DAT_182671570;
  uVar10 = DAT_18267156c;
  uVar23 = DAT_182671568;
  DAT_182671584 = DAT_182671574 - DAT_182671570;
  uVar54 = (ulonglong)DAT_18267156c;
  uVar47 = (ulonglong)DAT_182671568;
  uVar33 = (ulonglong)DAT_182671594;
  uVar50 = (ulonglong)DAT_182671580;
  uVar36 = DAT_182671578 | DAT_182671594;
  uVar58 = DAT_182671588 & DAT_182671580;
  uVar43 = DAT_18267156c * DAT_182671568;
  DAT_1826715b4 = DAT_18267157c << 0x10 | DAT_18267157c >> 0x10;
  uVar6 = *(uint *)(&DAT_182611e80 + DAT_182671af4);
  uVar27 = *(uint *)(&DAT_182611e78 + DAT_182671af4) ^ DAT_182671588;
  uVar28 = CONCAT44(DAT_182671648,DAT_182671648);
  local_158 = (byte)DAT_18267156c;
  uVar34 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar52 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar29 = *(ulonglong *)(DAT_182671560 + -0x8a8) ^ *(ulonglong *)(DAT_182671560 + -0x610) ^ uVar52
           ^ uVar34;
  DAT_18267158c = uVar58;
  DAT_182671598 = uVar43;
  DAT_1826715b0 = uVar36;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar29 ^ uVar28;
  lVar8 = DAT_182671560;
  uVar38 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar42 = (ulonglong)uVar43;
  puVar39 = (ulonglong *)(DAT_182671560 - (uVar42 ^ 0xc2ff8800));
  uVar24 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar46 = (ulonglong)uVar12;
  *puVar39 = uVar29 >> ((local_158 ^ 0x25) & 0x3f) ^ uVar38;
  uVar17 = DAT_1826715b4;
  uVar31 = (ulonglong)DAT_1826715b4;
  puVar1 = (ulonglong *)(lVar8 + -0x270);
  uVar25 = (ulonglong)uVar36;
  bVar20 = (byte)uVar36;
  uVar29 = (*(ulonglong *)(lVar8 + -0x110) ^ uVar28) << ((bVar20 ^ 0x6e) & 0x3f);
  uVar22 = DAT_182671584 ^ 0x3257625b;
  uVar40 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  uVar19 = DAT_1826715b4 ^ 0x94415df;
  *(ulonglong *)(lVar8 + -0x510) = uVar29 ^ uVar40;
  *(uint *)(lVar8 + -0x27c) = uVar19 - uVar22;
  uVar41 = (ulonglong)uVar13;
  uVar44 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar8 - (uVar41 ^ 0xefa9f148)) =
       (uVar29 | uVar38 ^ *(ulonglong *)(lVar8 + -0x800)) ^ uVar44;
  uVar7 = DAT_182671790;
  uVar22 = DAT_182671574;
  lVar9 = DAT_182671560;
  puVar2 = (ulonglong *)(lVar8 + -0x548);
  uVar56 = (ulonglong)DAT_182671574;
  puVar3 = (ulonglong *)(lVar8 + -0x6d0);
  uVar32 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar8 + -0x688) =
       (*(ulonglong *)(lVar8 + -0x8a8) ^ uVar34) - (*puVar2 ^ uVar44) ^ uVar32;
  uVar29 = (ulonglong)DAT_1826716e8;
  uVar48 = CONCAT44(uVar7,uVar7);
  uVar51 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar44 = *puVar2 ^ *(ulonglong *)(lVar8 + -0x1d8) ^ uVar48 ^ uVar51 ^ uVar44;
  uVar19 = DAT_1826716e8 >> 0x17;
  *(ulonglong *)(lVar8 + -0x9f8) = uVar44;
  uVar30 = ((ulonglong)uVar19 | uVar29 << 9) ^ uVar44 >> 0x17;
  uVar57 = (ulonglong)uVar58;
  uVar34 = (uVar44 ^ uVar51) << 0x29;
  uVar29 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar9 + -0x670) = uVar30 ^ uVar52;
  *puVar1 = uVar34 ^ uVar29;
  uVar7 = DAT_1826717e8;
  uVar19 = DAT_1826715f8;
  uVar59 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar60 = (ulonglong)DAT_1826715f8;
  uVar34 = uVar34 | uVar30;
  *(ulonglong *)(lVar9 + -0x110) = uVar34 ^ uVar59;
  uVar52 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar9 - (uVar50 ^ 0xddbb0810)) =
       (*(ulonglong *)(lVar9 + -0x1d8) ^ uVar48) - uVar34 ^ uVar52;
  uVar34 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar30 = CONCAT44(DAT_182671640,DAT_182671640);
  uVar49 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar29 = uVar30 ^ uVar34 ^ uVar32 ^ *(ulonglong *)(lVar9 + -0x688) ^
           *(ulonglong *)(lVar9 + -0x3b8);
  bVar21 = (byte)uVar15;
  *(ulonglong *)(lVar9 + -0x800) = uVar29;
  lVar8 = DAT_182671560;
  *puVar3 = (uVar29 ^ uVar34) >> ((bVar21 ^ 0x74) & 0x3f) ^ uVar49;
  uVar35 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar8 - (uVar57 ^ 0x100800a8)) =
       (uVar29 ^ uVar34) << (((byte)uVar11 ^ 0xd5) & 0x3f) ^ uVar35;
  uVar44 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar29 = *(ulonglong *)(lVar8 + -0x688);
  uVar34 = uVar49 ^ *puVar3 | *(ulonglong *)(lVar8 + -0x8a8) ^ uVar35;
  *puVar2 = uVar34 ^ uVar44;
  *(ulonglong *)(lVar8 + -0x610) =
       (CONCAT44(uVar14,uVar11) ^ 0x9a7e28cf6f5de59c) + 0x8a7247ebf0a2d174;
  uVar37 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar22 ^ 0x41e8b934)) = (uVar32 ^ uVar29) - uVar34 ^ uVar37;
  uVar19 = DAT_182671584;
  lVar9 = DAT_182671560;
  uVar32 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar29 = (ulonglong)DAT_182671584;
  uVar34 = *(ulonglong *)(lVar8 - (uVar46 ^ 0xed741c25)) ^ *puVar2 ^ uVar32 ^ uVar44 ^ uVar52;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar34;
  puVar26 = (ulonglong *)(lVar9 - (uVar29 ^ 0x4d678a8f));
  bVar55 = (byte)uVar13;
  uVar53 = CONCAT44(DAT_182671730,DAT_182671730);
  *puVar1 = (*puVar26 ^ uVar32) >> ((bVar55 ^ 0x34) & 0x3f) ^ uVar53;
  uVar29 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0x4d678d27)) =
       (uVar34 ^ uVar32) << 0xc ^ uVar29;
  lVar8 = DAT_182671560;
  uVar48 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar29 = uVar53 ^ *puVar1 | *(ulonglong *)(DAT_182671560 + -0x1d8) ^ uVar29;
  *(ulonglong *)(DAT_182671560 + -0x3b8) = uVar29 ^ uVar48;
  *(ulonglong *)(lVar8 + -0x800) =
       (*(ulonglong *)(lVar8 - (uVar54 ^ 0xddbb0810)) ^ uVar52) - uVar29 ^ uVar24;
  local_160 = (byte)uVar43;
  *puVar3 = *(ulonglong *)(lVar8 + -0x9f8) ^ *(ulonglong *)(lVar8 + -0x110) ^ uVar37 ^ uVar35 ^
            uVar59;
  *(ulonglong *)(lVar8 + -0x8a8) =
       (CONCAT44(uVar16,uVar22) ^ 0x3a9e7bbc69e24144) << ((local_160 ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar8 - (uVar25 ^ 0xfd7ffb65)) =
       (*(ulonglong *)(lVar8 - (uVar54 ^ 0xddbb0bd0)) >> 0x20 ^ uVar60) >> 0x19 ^ uVar40;
  local_130 = (byte)uVar14;
  uVar34 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar8 - (uVar47 ^ 0xe4491b08)) =
       (uVar35 ^ *puVar3) << ((local_130 ^ 7) & 0x3f) ^ uVar34;
  uVar29 = *(ulonglong *)(lVar8 + -0x688);
  uVar60 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  uVar44 = *(ulonglong *)(lVar8 - (uVar31 ^ 0xf400e9b9)) ^ uVar40 | uVar34 ^ uVar29;
  uVar32 = uVar44 ^ uVar60;
  *puVar2 = uVar32;
  *(ulonglong *)(lVar8 + -0x670) = CONCAT44(uVar13,uVar13) ^ uVar34 ^ uVar29 ^ 0x3fe14d74a8612740;
  uVar7 = DAT_182671878;
  uVar52 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar8 + -0x1d8) = (*(ulonglong *)(lVar8 + -0x9f8) ^ uVar37) - uVar44 ^ uVar52;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar8 - (uVar57 ^ 0x10080a70)) =
       uVar32 ^ uVar29 ^ uVar60 ^ uVar24 ^ *(ulonglong *)(lVar8 + -0x800);
  uVar18 = DAT_182671634;
  uVar34 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar8 + -0x510) =
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x1008082c)) ^ uVar29) >>
       ((bVar20 ^ 0x7b) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar8 - (uVar46 ^ 0xed741825)) =
       (uVar29 ^ *puVar1) << 0x32 ^ CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar8 + -0x8a8) =
       CONCAT44(uVar15,uVar12) ^ 0x8ebd11e66f4ab8a1 | *(ulonglong *)(lVar8 + -0x670);
  uVar35 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar29 = *(ulonglong *)(lVar8 + -0x800);
  uVar32 = *(ulonglong *)(lVar8 - (uVar25 ^ 0xfd7ffc65)) ^ CONCAT44(uVar18,uVar18) |
           uVar34 ^ *(ulonglong *)(lVar8 + -0x510);
  uVar44 = CONCAT44(DAT_182671670,DAT_182671670);
  uVar34 = *(ulonglong *)(lVar8 + -0x638);
  *puVar3 = uVar32 ^ uVar35;
  uVar7 = DAT_1826715fc;
  *(ulonglong *)(lVar8 + -0x610) = (uVar24 ^ uVar29) - (uVar34 ^ uVar24) ^ uVar44;
  lVar9 = DAT_182671560;
  uVar54 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar8 + -0x688) =
       (*(ulonglong *)(lVar8 - (uVar33 ^ 0x110be351)) ^ uVar44) - uVar32 ^ uVar54;
  local_140 = (byte)uVar23;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671584 ^ 0x4d678507)) =
       (*(ulonglong *)(lVar8 + -0x1d8) ^ uVar52) << ((local_140 ^ 0x98) & 0x3f);
  uVar34 = CONCAT44(DAT_182671688,DAT_182671688);
  uVar32 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar29 = *(ulonglong *)(lVar8 + -0x1d8) ^ uVar52 ^ uVar48 ^ uVar53 ^
           *(ulonglong *)(lVar9 + -0x3b8);
  bVar5 = *(byte *)(lVar9 + -0x110);
  *puVar2 = (uVar35 ^ *puVar3) - (*(ulonglong *)(lVar8 + -0x5c8) ^ uVar34) ^ uVar32;
  *puVar1 = uVar29;
  uVar7 = DAT_182671740;
  *(ulonglong *)(lVar9 + -0x670) = 0x34420bdcf0b8b5d6 >> (((byte)uVar18 ^ bVar5) & 0x3f);
  lVar8 = DAT_182671560;
  uVar44 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar9 + -0x8a8) = (uVar29 ^ uVar53) >> ((local_158 ^ 0x10) & 0x3f) ^ uVar44;
  uVar18 = DAT_182671898;
  uVar29 = (uVar53 ^ uVar29) << ((bVar55 ^ 0x30) & 0x3f);
  *(ulonglong *)(lVar8 + -0x510) = uVar29 ^ CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar7 = DAT_1826716f8;
  puVar4 = (ulonglong *)(lVar8 + -0xbf0);
  uVar48 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar8 + -0x800) =
       (*(ulonglong *)(lVar8 - (uVar42 ^ 0xc2ff88a8)) ^ uVar44 | uVar29) ^ uVar48;
  uVar44 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0xf48125dd)) =
       (*(ulonglong *)(lVar8 + -0x1d8) ^ uVar52) - (uVar44 ^ *puVar4) ^ uVar59;
  uVar37 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar8 - (uVar33 ^ 0x110becb9)) =
       (*(ulonglong *)(lVar8 + -0x610) ^ uVar59) - (uVar48 ^ *(ulonglong *)(lVar8 + -0x800)) ^
       uVar37;
  uVar7 = DAT_182671768;
  *puVar3 = 0x63dba8eeeef0c54a;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x100809e4)) =
       (CONCAT44(uVar22,uVar13) ^ 0xbe174f3310560bfc) -
       (*(ulonglong *)(lVar8 - (uVar46 ^ 0xed741d35)) ^ CONCAT44(uVar7,uVar7)) ^ uVar51;
  uVar7 = DAT_1826717e4;
  *(ulonglong *)(lVar8 + -0x110) =
       (uVar48 ^ *puVar39) + (uVar51 ^ *(ulonglong *)(lVar8 + -0x3b8)) ^ uVar49;
  uVar35 = CONCAT44(uVar7,uVar7);
  puVar45 = (ulonglong *)(lVar8 - (uVar57 ^ 0x10080910));
  *(ulonglong *)(lVar8 - (uVar41 ^ 0xefa9f270)) =
       *(ulonglong *)(lVar8 - (uVar56 ^ 0x41e8b644)) ^ uVar35 ^ uVar54 ^ *puVar45 ^ uVar49;
  lVar8 = DAT_182671560;
  uVar29 = *(ulonglong *)(DAT_182671560 + -0x670);
  *puVar1 = (*(ulonglong *)(DAT_182671560 + -0x670) ^ uVar35) >> ((bVar21 ^ 0x7c) & 0x3f) ^ uVar24;
  uVar33 = CONCAT44(DAT_182671858,DAT_182671858);
  uVar48 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(lVar8 + -0x8a8) = (uVar29 ^ uVar35) << ((bVar55 ^ 0x20) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar8 - (uVar56 ^ 0x41e8b5dc)) =
       (*(ulonglong *)(lVar8 - (uVar41 ^ 0xefa9fca8)) ^ uVar33 |
       *(ulonglong *)(lVar8 - (uVar50 ^ 0xddbb0f70)) ^ uVar24) ^ uVar48;
  uVar7 = DAT_182671638;
  uVar35 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *puVar4 = (uVar54 ^ *(ulonglong *)(lVar8 + -0x688)) - (uVar48 ^ *(ulonglong *)(lVar8 + -0x510)) ^
            uVar35;
  uVar24 = CONCAT44(uVar7,uVar7);
  uVar29 = uVar24 ^ *(ulonglong *)(DAT_182671560 + -0x9f8) ^ *puVar2 ^ uVar37 ^ uVar32;
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar29;
  *(ulonglong *)(DAT_182671560 - (uVar47 ^ 0xe4491b90)) =
       (uVar29 ^ uVar24) >> (((byte)DAT_182671584 ^ 0xdf) & 0x3f) ^ uVar32;
  uVar29 = (uVar24 ^ *(ulonglong *)(DAT_182671560 + -0x1d8)) << ((bVar20 ^ 0x55) & 0x3f);
  *puVar3 = uVar29 ^ CONCAT44(DAT_1826716b8,DAT_1826716b8);
  lVar8 = DAT_182671560;
  puVar39 = (ulonglong *)(DAT_182671560 + -0x610);
  *(ulonglong *)(DAT_182671560 + -0x800) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0x5f8) ^ uVar30) ^ uVar53;
  *(ulonglong *)(lVar8 + -0x3b8) = (uVar32 ^ *puVar39 | uVar29) ^ uVar60;
  *(uint *)(lVar8 + -0x27c) = DAT_182671574 ^ 0xeff7ffff | 0x6ff5ee8e;
  uVar24 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *puVar45 = (*(ulonglong *)(lVar8 + -0x9f8) ^ uVar37) -
             (*(ulonglong *)(lVar8 - (uVar42 ^ 0xc2ff83b8)) ^ uVar60) ^ uVar24;
  *(ulonglong *)(lVar8 - (uVar42 ^ 0xc2ff8670)) =
       CONCAT44(uVar17,uVar36) ^ uVar33 ^ *(ulonglong *)(lVar8 + -0x8a8) ^ 0xc2304992a28d7ae2;
  lVar8 = DAT_182671560;
  uVar41 = uVar35 ^ uVar60 ^ uVar38 ^ *puVar4 ^ *(ulonglong *)(DAT_182671560 + -0x3b8);
  *puVar1 = uVar41;
  uVar7 = DAT_18267167c;
  uVar30 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar8 + -0x688) = (uVar41 ^ uVar38) >> ((local_158 ^ 0x3a) & 0x3f) ^ uVar30;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar8 - (uVar47 ^ 0xe44918c8)) =
       (uVar41 ^ uVar38) << ((local_160 ^ 6) & 0x3f) ^ uVar29;
  uVar7 = _DAT_18267161c;
  uVar57 = CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar29 = uVar30 ^ *(ulonglong *)(lVar8 + -0x688) | uVar29 ^ *puVar2;
  *(ulonglong *)(lVar8 + -0x1d8) = uVar29 ^ uVar57;
  uVar41 = CONCAT44(uVar7,uVar7);
  uVar35 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0xf481283d)) ^ uVar35) - uVar29 ^ uVar41;
  uVar37 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(lVar8 + -0x800) = uVar35;
  uVar32 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar29 = uVar37 ^ uVar24 ^ uVar48 ^ *(ulonglong *)(lVar8 + -0x110) ^
           *(ulonglong *)(lVar8 + -0x510);
  *(ulonglong *)(lVar8 + -0x610) = uVar29;
  uVar30 = (*(ulonglong *)(lVar8 - (uVar56 ^ 0x41e8b6dc)) ^ uVar37) >> ((bVar21 ^ 0x4a) & 0x3f);
  uVar7 = *(undefined4 *)(lVar8 + -0x678);
  *puVar3 = uVar30 ^ uVar32;
  local_f8 = (byte)uVar16;
  *(uint *)(lVar8 + -0x27c) = (DAT_1826715b4 ^ 0x625294b7) << ((byte)uVar7 & 0x1f);
  uVar19 = DAT_182671584;
  lVar8 = DAT_182671560;
  uVar29 = (uVar37 ^ uVar29) << ((local_f8 ^ 0x6b) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar29 ^ uVar54;
  uVar30 = uVar30 | uVar29;
  *(ulonglong *)(lVar8 + -0x8a8) = uVar30 ^ uVar33;
  *(ulonglong *)(lVar8 + -0x670) =
       (*(ulonglong *)(lVar8 - (uVar42 ^ 0xc2ff8610)) ^ uVar37) -
       (CONCAT44(uVar22,uVar19) ^ 0xa58ed7941402ff97);
  uVar29 = (ulonglong)DAT_182671660;
  uVar42 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(lVar8 + -0x3b8) =
       (*(ulonglong *)(lVar8 - (uVar47 ^ 0xe4491c90)) ^ uVar24) - uVar30 ^ uVar37;
  *puVar1 = *(ulonglong *)(lVar8 - (uVar25 ^ 0xfd7ff5dd)) ^ uVar42 ^ uVar41 ^ uVar33 ^ uVar35;
  *(ulonglong *)(lVar8 - (uVar25 ^ 0xfd7ffbfd)) =
       CONCAT44(uVar16,uVar10) ^ CONCAT44(uVar12,uVar19) ^ 0x65fa0408bb1a7de0;
  *puVar2 = (*puVar1 >> 0x20 ^ uVar29) >> 0xe ^ uVar34;
  uVar29 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar8 - (uVar46 ^ 0xed7412c5)) =
       (uVar42 ^ *puVar1) << ((bVar55 ^ 0x12) & 0x3f) ^ uVar29;
  lVar9 = DAT_182671560;
  uVar34 = *(ulonglong *)(lVar8 - (uVar50 ^ 0xddbb0848)) ^ uVar34 | uVar29 ^ *puVar4;
  uVar42 = CONCAT44(DAT_182671704,DAT_182671704);
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar34 ^ CONCAT44(DAT_182671678,DAT_182671678);
  uVar29 = *(ulonglong *)(lVar9 + -0x3b8);
  *puVar3 = (*(ulonglong *)(lVar9 - (uVar31 ^ 0xf400e7a9)) ^ uVar41) - uVar34 ^ uVar42;
  *(ulonglong *)(lVar9 + -0x9f8) = uVar37 ^ uVar29 | 0xa5d5913e744bfe1d;
  lVar8 = DAT_182671560;
  uVar50 = CONCAT44(DAT_182671820,DAT_182671820);
  uVar24 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar46 = uVar50 ^ uVar37 ^ uVar57 ^ *(ulonglong *)(DAT_182671560 + -0x1d8) ^
           *(ulonglong *)(DAT_182671560 + -0x3b8);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar46;
  uVar7 = DAT_18267171c;
  uVar19 = DAT_18267159c;
  uVar34 = (ulonglong)DAT_18267159c;
  uVar23 = ~DAT_18267159c;
  DAT_1826715a8 = uVar23;
  *(ulonglong *)(lVar8 + -0x610) = (uVar50 ^ *puVar26) >> (((byte)uVar17 ^ 0xa5) & 0x3f) ^ uVar24;
  bVar5 = (byte)uVar23;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar23 ^ 0xfb1ae54d)) =
       (uVar50 ^ uVar46) << ((bVar5 ^ 0x69) & 0x3f) ^ uVar29;
  uVar46 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar29 = *(ulonglong *)(lVar8 - (uVar34 ^ 0x4e51ab2)) ^ uVar29 |
           *(ulonglong *)(lVar8 - ((ulonglong)uVar19 ^ 0x4e51db2)) ^ uVar24;
  *(ulonglong *)(lVar8 + -0x8a8) = uVar29 ^ uVar46;
  uVar7 = DAT_182671728;
  *(ulonglong *)(lVar8 + -0x688) =
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar23 ^ 0xfb1ae7e5)) ^ uVar37) - uVar29 ^ uVar44;
  uVar46 = *(ulonglong *)(lVar8 - (uVar34 ^ 0x4e5130a)) ^ uVar42 ^ uVar28 ^ *puVar3 ^ uVar46;
  *puVar1 = uVar46;
  *puVar2 = (uVar28 ^ uVar46) >> ((bVar5 ^ 0x44) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *puVar4 = (uVar28 ^ uVar46) << ((bVar5 ^ 0x7a) & 0x3f) ^ uVar52;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar6 ^ uVar58) * 4) = uVar27;
  return;
}



############ FUN_ 180e52dc0 size=5672 ############

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

void FUN_180e52dc0(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  byte bVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  
  uVar9 = DAT_1826715b4;
  uVar6 = DAT_1826715ac;
  uVar8 = DAT_18267159c;
  uVar39 = DAT_182671598;
  uVar7 = DAT_182671590;
  uVar5 = DAT_182671584;
  uVar4 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar14 = DAT_1826715ac & 7;
  if (uVar14 < 4) {
    if (uVar14 < 2) {
      uVar20 = DAT_182671590;
      if (uVar14 == 0) {
        uVar20 = DAT_1826715ac;
      }
    }
    else {
      uVar20 = DAT_182671568;
      if (uVar14 < 3) {
        uVar20 = DAT_182671584;
      }
    }
  }
  else if (uVar14 < 6) {
    uVar20 = DAT_1826715a0;
    if (uVar14 < 5) {
      uVar20 = DAT_1826715b4;
    }
  }
  else {
    uVar20 = DAT_182671598;
    if (uVar14 < 7) {
      uVar20 = DAT_1826715a4;
    }
  }
  uVar37 = (ulonglong)DAT_18267159c;
  uVar15 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_182671568 ^ 0xe5d44aea) + (longlong)DAT_182671a9c) ^
           DAT_1826715a4;
  uVar16 = *(uint *)(&DAT_182611e80 + DAT_182671a9c) ^ DAT_18267159c;
  uVar36 = (ulonglong)DAT_182671598;
  DAT_18267158c = uVar20;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0xc555e8cf)) =
       0xb822596dd383f665 >> (((byte)DAT_1826715b4 ^ 0x13) & 0x3f);
  uVar14 = DAT_1826715a0;
  uVar29 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar24 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar18 = CONCAT44(DAT_1826715a0,uVar4);
  *(ulonglong *)(lVar2 + -0x600) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0xc555e4bf)) ^ uVar29) << (((byte)uVar6 ^ 0xe8) & 0x3f) ^
       uVar24;
  uVar11 = DAT_1826716a8;
  *(ulonglong *)(lVar2 + -0x110) =
       uVar18 ^ 0x8213af6a4253e08 | CONCAT44(uVar20,uVar4) ^ 0xcd7f048cebee941;
  uVar20 = DAT_1826715a4;
  uVar32 = CONCAT44(uVar11,uVar11);
  bVar31 = (byte)uVar7;
  puVar1 = (ulonglong *)(lVar2 + -0x638);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xf7fffbc7)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x3bcf31af)) ^ uVar29) >>
       ((bVar31 ^ 0x1a) & 0x3f) ^ uVar32;
  uVar18 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x6fd55783)) =
       (uVar32 ^ *puVar1 | uVar24 ^ *(ulonglong *)(lVar2 + -0x600)) ^ uVar18;
  uVar25 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar32 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x3bcf3a3f)) =
       uVar32 ^ uVar25 ^ uVar18 ^ *(ulonglong *)(lVar2 + -0x670) ^ *(ulonglong *)(lVar2 + -0x628);
  uVar12 = DAT_1826717bc;
  uVar4 = DAT_182671568;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       CONCAT44(DAT_182671888,DAT_182671888) ^ CONCAT44(uVar9,uVar5) ^
       *(ulonglong *)(DAT_182671560 + -0xbf0) ^ 0x4165451f7d3d4112;
  uVar11 = DAT_182671644;
  uVar29 = CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x3f0);
  uVar27 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  uVar35 = (CONCAT44(DAT_1826716a4,DAT_1826716a4) ^ *(ulonglong *)(lVar2 + -0x9e8)) + uVar29 ^
           uVar27;
  *(ulonglong *)(lVar2 + -0x688) = uVar35;
  uVar13 = DAT_182671830;
  uVar18 = uVar29 << (((byte)uVar20 ^ 0xdb) & 0x3f);
  bVar17 = (byte)DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x318) = uVar18 ^ CONCAT44(uVar11,uVar11);
  uVar12 = DAT_18267180c;
  lVar2 = DAT_182671560;
  uVar29 = uVar29 >> ((bVar17 ^ 0x43) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar29 ^ CONCAT44(uVar13,uVar13);
  uVar11 = DAT_1826716bc;
  uVar18 = (uVar29 | uVar18) ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x748) = uVar18;
  uVar20 = DAT_1826715a4;
  uVar29 = CONCAT44(uVar11,uVar11);
  puVar21 = (ulonglong *)(lVar2 - (uVar37 ^ 0x3bcf3c87));
  *(ulonglong *)(lVar2 + -0x5c8) = uVar29 ^ CONCAT44(uVar12,uVar12) ^ uVar35 ^ uVar27 ^ *puVar21;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0xc555ebcf)) =
       (CONCAT44(uVar9,DAT_18267158c) ^ 0x36ed3ea9a7864674) <<
       (((byte)uVar12 ^ (byte)uVar18) & 0x3f);
  uVar29 = uVar29 ^ *(ulonglong *)(lVar2 + -0x5c8);
  uVar26 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar2 + -0x610) = (uVar32 ^ *(ulonglong *)(lVar2 + -0x628)) + uVar29 ^ uVar26;
  uVar33 = uVar29 << ((bVar31 ^ 0x36) & 0x3f);
  *(ulonglong *)(lVar3 + -0x110) = uVar33 ^ CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar11 = DAT_1826718bc;
  lVar2 = DAT_182671560;
  bVar17 = (byte)uVar39;
  uVar29 = uVar29 >> ((bVar17 ^ 0xe4) & 0x3f);
  uVar18 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0xa60) = uVar29 ^ CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x47fd505b)) = (uVar29 | uVar33) ^ uVar35;
  uVar34 = CONCAT44(DAT_18267173c,DAT_18267173c);
  puVar19 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0xe5d44ce2));
  *puVar1 = uVar34 ^ uVar35 ^ *puVar19 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0x610);
  uVar35 = CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar18 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar2 + -0x670) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715ac ^ 0xf7fffb77)) ^ uVar27) +
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x1f0)) ^ uVar35;
  uVar6 = DAT_18267158c;
  puVar30 = (ulonglong *)(lVar2 - (uVar18 ^ 0xda95d89f));
  puVar22 = (ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0xc555e867));
  *puVar22 = (uVar34 ^ *puVar30) << ((bVar31 ^ 0x3e) & 0x3f);
  uVar9 = DAT_1826715a0;
  uVar29 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0xc555e52f)) =
       (uVar25 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) << 0x25 ^ uVar29;
  lVar2 = DAT_182671560;
  puVar28 = (ulonglong *)(DAT_182671560 + -0x1f0);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (CONCAT44(uVar7,uVar9) ^ 0x7e8488eeb41889e) -
       (CONCAT44(uVar8,DAT_1826715ac) ^ 0xdfbf38f9ce8451f7);
  uVar11 = DAT_182671788;
  uVar18 = CONCAT44(DAT_182671708,DAT_182671708);
  puVar23 = (ulonglong *)(lVar2 - ((ulonglong)uVar39 ^ 0xc555ed2f));
  bVar31 = (byte)uVar8;
  *puVar23 = (uVar25 ^ *puVar28) >> ((bVar31 ^ 0xd4) & 0x3f) ^ uVar18;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0xe5d4431a)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x47fd55ab)) ^ uVar18 |
       uVar29 ^ *(ulonglong *)(lVar2 + -0xbf0)) ^ uVar25;
  uVar29 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar36 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar18 = uVar29 ^ uVar25 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x9f8) ^
           *(ulonglong *)(lVar2 + -0x670);
  *(ulonglong *)(lVar2 + -0x318) = uVar18;
  uVar10 = DAT_1826715b4;
  uVar5 = DAT_182671584;
  uVar40 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x47fd5113)) =
       (CONCAT44(uVar14,uVar6) ^ 0x9c3cd30ae7af0639) + (uVar18 ^ uVar29) ^ uVar36;
  uVar6 = DAT_1826715ac;
  puVar28 = (ulonglong *)(lVar2 - ((ulonglong)DAT_1826715ac ^ 0xf7fff8ef));
  uVar18 = (ulonglong)DAT_1826715a4;
  uVar29 = CONCAT44(DAT_1826715ac,uVar5);
  *puVar28 = (CONCAT44(uVar4,uVar7) ^ 0x49430b03d913d6d) << (((byte)uVar10 ^ 0x3d) & 0x3f);
  uVar33 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x6fd557db)) =
       (uVar29 ^ 0xdc8e8fd6dd0a6883) + (uVar26 ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar33;
  uVar25 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xcf39cafb)) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0x748)) + (uVar33 ^ *(ulonglong *)(lVar2 + -0x628)) ^
       uVar25;
  uVar27 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(lVar2 + -0x110) = (uVar36 ^ *(ulonglong *)(lVar2 + -0x748)) << 0x19 ^ uVar27;
  uVar5 = DAT_182671774;
  uVar43 = (ulonglong)DAT_182671774;
  *(byte *)(lVar2 - (uVar40 ^ 0xda95db06)) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x541a66bc)) ^
                (ulonglong)_DAT_1826715e0) ^ (byte)DAT_1826717c0;
  lVar2 = DAT_182671560;
  uVar42 = CONCAT44(uVar5,uVar5);
  uVar29 = CONCAT44(uVar7,DAT_18267158c);
  uVar18 = *(ulonglong *)(DAT_182671560 + -0x110);
  uVar36 = (uVar36 ^ *(ulonglong *)(DAT_182671560 + -0x748)) >> ((bVar17 ^ 0xf8) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa60) = uVar36 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x600) = uVar29 ^ 0x20f0184006c480b2 | 0x9d0fe6230819120c;
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar18 = (uVar36 | uVar27 ^ uVar18) ^ uVar29;
  *(ulonglong *)(lVar2 + -0x688) = uVar18;
  uVar7 = DAT_182671884;
  uVar27 = (ulonglong)DAT_182671884;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar39 ^ 0xc555e867)) =
       uVar42 ^ uVar29 ^ uVar25 ^ uVar18 ^ *(ulonglong *)(lVar3 + -0x5c8);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0x541a63d4)) =
       (CONCAT44(uVar6,uVar8) ^ 0xde6ca857fc0c4dff) + (uVar34 ^ *puVar1) ^ CONCAT44(uVar7,uVar7);
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671584 ^ 0xda95df57)) =
       (CONCAT44(uVar20,DAT_182671584) ^ 0x8f44f9aed7784e24) +
       (uVar35 ^ *(ulonglong *)(DAT_182671560 + -0x670)) ^ uVar29;
  uVar11 = DAT_182671670;
  uVar35 = CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0x9e8);
  uVar18 = (ulonglong)DAT_182671568;
  uVar41 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar2 + -0xbf0) = (uVar29 ^ *(ulonglong *)(lVar2 + -0x1f0)) + uVar35 ^ uVar41;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xe5d44912)) = uVar35 << 0x21 ^ uVar36;
  uVar5 = DAT_1826715a0;
  uVar29 = ((ulonglong)(uVar7 >> 0x1f) | uVar27 * 2) ^ *(ulonglong *)(lVar2 + -0x9e8) >> 0x1f;
  uVar18 = CONCAT44(uVar20,DAT_1826715a0);
  *(ulonglong *)(lVar2 + -0x9f8) = uVar29 ^ CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar2 + -0x318) = uVar18 ^ 0xc126e9f11f61619a;
  uVar11 = DAT_182671824;
  uVar18 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar2 + -0x510) = (uVar29 | uVar36 ^ *(ulonglong *)(lVar2 + -0x3f0)) ^ uVar18;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0xcf39c923)) =
       uVar29 ^ uVar18 ^ uVar41 ^ *(ulonglong *)(lVar2 + -0xbf0) ^ *puVar28;
  uVar11 = DAT_182671640;
  uVar35 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar2 + -0x628) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0xe5d44f2a)) ^ uVar25) +
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar35;
  uVar27 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671598 ^ 0xc555e997)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x610)) << (((byte)DAT_182671598 ^ 0xf1) & 0x3f) ^ uVar27;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x600) =
       (CONCAT44(uVar4,DAT_182671584) ^ 0xa6bac75590e2bbeb) >> (((byte)uVar5 ^ 0x76) & 0x3f);
  uVar11 = DAT_182671688;
  uVar4 = DAT_1826715a4;
  uVar29 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a4 ^ 0x6fd557e3)) ^ uVar29) >>
           ((bVar31 ^ 0xdd) & 0x3f);
  uVar18 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 + -0xa60) = uVar29 ^ CONCAT44(DAT_182671840,DAT_182671840);
  lVar2 = DAT_182671560;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x541a6b2c)) = (*puVar21 ^ uVar27 | uVar29) ^ uVar25;
  uVar27 = CONCAT44(DAT_182671784,DAT_182671784);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x6fd5577b)) =
       uVar35 ^ *(ulonglong *)(lVar2 + -0x110) ^ *(ulonglong *)(lVar2 + -0x628) ^ uVar27 ^ uVar25;
  uVar33 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar40 = (uVar41 ^ *(ulonglong *)(lVar2 + -0xbf0)) + (uVar42 ^ *(ulonglong *)(lVar2 + -0x6b8)) ^
           uVar33;
  *puVar1 = uVar40;
  uVar12 = DAT_182671874;
  uVar4 = DAT_1826715ac;
  uVar29 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  uVar25 = (*(ulonglong *)(lVar2 - (uVar37 ^ 0x3bcf3d77)) ^ uVar42) <<
           (((byte)DAT_1826715ac ^ 0xf3) & 0x3f);
  *(ulonglong *)(lVar2 + -0x670) = uVar25 ^ CONCAT44(DAT_182671630,DAT_182671630);
  lVar3 = DAT_182671560;
  uVar18 = (*puVar22 >> 0x20 ^ uVar43) >> 0x14;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar18 ^ uVar29;
  uVar11 = DAT_182671770;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x9e8) = (uVar25 | uVar18) ^ uVar29;
  uVar37 = CONCAT44(uVar11,uVar11);
  puVar21 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0xe5d449fa));
  *puVar21 = *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xf7fff417)) ^ uVar37 ^ uVar29 ^ uVar40 ^
             uVar33;
  *(ulonglong *)(lVar3 + -0x3f0) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar37) + (uVar35 ^ *(ulonglong *)(lVar3 + -0x628)) ^
       uVar26;
  uVar11 = DAT_18267177c;
  uVar42 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar40 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar3 + -0x9f8) = *(ulonglong *)(uVar42 ^ *(ulonglong *)(lVar3 + -0x178)) ^ uVar40;
  uVar12 = DAT_1826718d0;
  lVar2 = DAT_182671560;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a0 ^ 0x47fd5543)) ^ uVar37) <<
       (((byte)DAT_1826715a4 ^ 0xc9) & 0x3f) ^ uVar25;
  lVar3 = DAT_182671560;
  uVar18 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x541a6ff4)) =
       (*(ulonglong *)(lVar2 + -0x318) ^ uVar37) >> ((bVar31 ^ 0xc9) & 0x3f) ^ uVar18;
  uVar11 = DAT_182671768;
  uVar4 = DAT_18267158c;
  uVar29 = CONCAT44(DAT_182671600,DAT_182671600);
  uVar18 = (*(ulonglong *)(lVar3 + -0x510) ^ uVar25 | uVar18 ^ *(ulonglong *)(lVar3 + -0x5c8)) ^
           uVar29;
  *(ulonglong *)(lVar3 + -0x600) = uVar18;
  uVar37 = CONCAT44(uVar11,uVar11);
  uVar25 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x610) =
       *(ulonglong *)(lVar3 + -0x3f0) ^ uVar26 ^ uVar37 ^ uVar18 ^ uVar29;
  uVar11 = DAT_182671740;
  *(ulonglong *)(lVar3 + -0x748) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0x6fd55203)) ^ uVar26 |
       CONCAT44(uVar39,uVar4) ^ 0x88ceba24e8754905;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar18 = CONCAT44(DAT_182671578,uVar8);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x6fd55b93)) =
       (uVar33 ^ *puVar30) + (uVar27 ^ *(ulonglong *)(lVar3 + -0x688)) ^ uVar35;
  uVar11 = DAT_1826717d8;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar3 + -0x688);
  *(ulonglong *)(lVar3 + -0x110) = (uVar18 ^ 0xcde008840d8f390c) >> ((bVar31 ^ 0xe7) & 0x3f);
  uVar4 = DAT_182671568;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar27 << ((bVar17 ^ 0xc9) & 0x3f) ^ uVar33;
  uVar18 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671584 ^ 0xda95d81f)) =
       uVar27 >> (((byte)uVar4 ^ 200) & 0x3f) ^ uVar41;
  uVar25 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  uVar29 = (ulonglong)DAT_1826715ac;
  uVar18 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0x3bcf3d77)) ^ uVar41 |
           *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a0 ^ 0x47fd5dab)) ^ uVar33) ^ uVar25;
  uVar27 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(lVar3 + -0x670) = uVar18;
  uVar11 = DAT_182671870;
  uVar29 = *(ulonglong *)(lVar3 - (uVar29 ^ 0xf7fff79f)) ^ uVar27 ^ uVar18 ^ uVar25 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar29;
  uVar12 = DAT_1826717d0;
  uVar18 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x9e8) = (uVar26 ^ *puVar23) + (uVar29 ^ uVar27) ^ uVar18;
  uVar11 = DAT_1826715c0;
  uVar5 = DAT_182671580;
  uVar33 = (ulonglong)DAT_182671580;
  bVar38 = (byte)DAT_182671580;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x628) = (uVar29 ^ uVar27) << ((bVar38 ^ 0x55) & 0x3f) ^ uVar26;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b0 ^ 0x8a010ee9)) =
       (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar27) >> ((bVar31 ^ 0xef) & 0x3f) ^ uVar25;
  uVar11 = _DAT_18267161c;
  *(ulonglong *)(lVar3 + -0x318) = *(ulonglong *)(uVar42 ^ *(ulonglong *)(lVar3 + -0x178)) ^ uVar40;
  uVar29 = CONCAT44(uVar11,uVar11);
  *puVar28 = (*(ulonglong *)(lVar3 + -0x628) ^ uVar26 | *(ulonglong *)(lVar3 + -0x9f8) ^ uVar25) ^
             uVar29;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671588 ^ 0x1f841574)) =
       *(ulonglong *)(lVar3 + -0x510) ^ uVar29 ^ uVar18 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x9e8);
  uVar11 = DAT_1826718ac;
  *(ulonglong *)(lVar3 + -0x600) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar37) + (*(ulonglong *)(lVar3 + -0xa60) ^ uVar35) ^
       uVar24;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar39 = uVar5 * DAT_182671568;
  uVar29 = (ulonglong)DAT_1826715a8;
  DAT_182671598 = uVar39;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267156c ^ 0xf681f3f8)) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar37) << 0x20 ^ uVar26;
  uVar7 = DAT_182671614;
  uVar35 = (ulonglong)DAT_182671614;
  uVar25 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0xe125bcd5)) ^ uVar37) >> ((bVar17 ^ 0xff) & 0x3f);
  *puVar1 = uVar25 ^ CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar11 = DAT_1826716d8;
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar3 + -0x110) = (uVar25 | *(ulonglong *)(lVar3 + -0x748) ^ uVar26) ^ uVar29;
  uVar4 = DAT_182671568;
  uVar41 = CONCAT44(uVar11,uVar11);
  puVar22 = (ulonglong *)(lVar3 - (uVar33 ^ 0xeff8ff65));
  uVar25 = CONCAT44(uVar39,DAT_182671568);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0xe5d44c6a)) =
       uVar24 ^ uVar41 ^ uVar29 ^ *puVar22 ^ *(ulonglong *)(lVar3 + -0x600);
  uVar37 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe5d44112)) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x688)) + (uVar25 ^ 0xd5d3dd17e839da61) ^ uVar37;
  uVar11 = DAT_1826718a8;
  uVar26 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0x9e8)) + (CONCAT44(uVar5,uVar39) ^ 0xcf0577b8b1890578) ^
       uVar26;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0xe5d44c92)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar39 ^ 0x354273f2)) ^ uVar26) +
       (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar37) ^ uVar29;
  lVar3 = DAT_182671560;
  uVar26 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0xeff8f585)) ^ uVar37) << ((bVar38 ^ 0x7b) & 0x3f);
  puVar28 = (ulonglong *)(DAT_182671560 + -0x178);
  *(ulonglong *)(DAT_182671560 + -0x3f0) = uVar26 ^ CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar3 + -0x1f0) = *(ulonglong *)(uVar42 ^ *puVar28) ^ uVar40;
  uVar18 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar3 + -0x318) =
       (*(ulonglong *)(lVar3 + -0xbf0) >> 0x20 ^ uVar35) >> 0x12 ^ uVar18;
  uVar12 = DAT_182671848;
  uVar35 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar18 = (*puVar21 ^ uVar18 | uVar26) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x628) = uVar18;
  uVar11 = DAT_182671698;
  uVar4 = DAT_182671568;
  uVar26 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar3 + -0x9f8) =
       CONCAT44(uVar12,uVar12) ^ uVar18 ^ uVar35 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x670);
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x510) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x5c8)) + (uVar25 ^ 0x48c7a716535201f3) ^ uVar29;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xe5d44082)) =
       uVar41 ^ *(ulonglong *)(lVar3 + -0x688) ^ 0xffd1a957553e5cae;
  uVar18 = (CONCAT44(uVar5,uVar4) ^ 0xbfe1eecc124004e0) + (*puVar19 ^ uVar24);
  *(ulonglong *)(lVar3 + -0x610) = uVar18 ^ uVar34;
  uVar11 = DAT_1826716f0;
  *(ulonglong *)(lVar3 + -0x748) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xeff8fb65)) ^ uVar29) + uVar18 ^ uVar36;
  puVar28 = (ulonglong *)(lVar3 - ((ulonglong)uVar39 ^ 0x3542705a));
  *puVar1 = (*puVar28 ^ uVar29) << (((byte)uVar39 ^ 0x5a) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  *puVar22 = (*puVar28 ^ uVar29) >> ((bVar38 ^ 0x45) & 0x3f) ^ uVar32;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar15;
  return;
}



############ FUN_ 180ef7140 size=4332 ############

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

void FUN_180ef7140(void)

{
  uint *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  byte bVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint *puVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  uint uVar27;
  byte *pbVar28;
  ulonglong uVar29;
  uint *puVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  
  uVar19 = DAT_18267163c;
  uVar27 = DAT_18267157c;
  uVar4 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar25 = (ulonglong)DAT_182671568;
  uVar34 = DAT_18267157c + DAT_182671568;
  uVar33 = (ulonglong)uVar34;
  uVar11 = *(uint *)(&DAT_182611e78 + DAT_1826719a0) ^ DAT_182671568;
  uVar12 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar34 ^ 0x2894015) + (longlong)DAT_1826719a0) ^
           DAT_18267157c;
  uVar16 = *(uint *)(DAT_182671560 + -0x678) ^ _DAT_1826715f0;
  DAT_182671594 = uVar34;
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       *(ulonglong *)(DAT_182671560 + -0x110) | 0x966d7f6f5f2050c;
  *(uint *)(lVar2 + -0x504) = uVar16 * (uVar27 ^ 0x289401f) ^ DAT_18267185c;
  uVar16 = DAT_182671630;
  puVar22 = (uint *)(lVar2 - (uVar25 ^ 0xfffffa33));
  uVar17 = (*(uint *)(lVar2 - ((ulonglong)uVar34 ^ 0x2894501)) ^ DAT_18267185c) +
           (*puVar22 ^ DAT_1826717e0);
  *(uint *)(lVar2 + -0x964) = uVar17 ^ DAT_182671630;
  *(uint *)(lVar2 + -0x844) = uVar17 * 0x2000 ^ DAT_182671848;
  bVar14 = (byte)uVar34 ^ 0x16;
  uVar16 = (*(uint *)(lVar2 + -0x964) ^ uVar16) >> (bVar14 & 0x1f) ^ DAT_1826717c4;
  *(uint *)(lVar2 + -0x754) = uVar16;
  *(uint *)(lVar2 - ((ulonglong)uVar27 ^ 0x289447a)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar34 ^ 0x2894841)) ^ DAT_182671848 | uVar16 ^ DAT_1826717c4)
       ^ _DAT_1826716c0;
  uVar16 = (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) +
           (*(uint *)(lVar2 + -0x328) ^ _DAT_1826715e0) ^ DAT_182671810;
  *(uint *)(lVar2 + -0x344) = uVar16;
  uVar16 = uVar16 ^ DAT_18267172c ^ DAT_182671810;
  *(uint *)(lVar2 + -0x874) = uVar16;
  uVar17 = *(uint *)(lVar2 - ((ulonglong)uVar4 ^ 0xfffffb83)) ^ DAT_1826716f8 ^ _DAT_1826716c0;
  *(uint *)(lVar2 + -0x374) = uVar16 ^ uVar19 ^ DAT_18267172c;
  *(uint *)(lVar2 + -0x910) = uVar17;
  uVar16 = DAT_182671648;
  bVar15 = (byte)DAT_1826715cc;
  lVar3 = DAT_182671560;
  uVar13 = (ulonglong)DAT_1826718b8;
  uVar20 = uVar17 ^ DAT_182671648 ^ DAT_1826716f8;
  uVar17 = uVar20 ^ DAT_182671648;
  *(uint *)(lVar2 + -0x27c) = uVar20;
  *(uint *)(lVar2 + -0x678) = uVar17 * (uVar27 ^ 0x313600b7);
  pbVar28 = (byte *)((CONCAT44(uVar4,uVar34) ^ 0xffffffff02894001) + *(longlong *)(lVar3 + -0x8f0));
  *(ulonglong *)(lVar3 + -0x738) = (ulonglong)pbVar28 ^ uVar13;
  *(ulonglong *)(lVar3 + -0x6b8) =
       ((ulonglong)(uVar27 >> 0x10) | (ulonglong)uVar4 << 0x10) ^ 0x264b85ddea79;
  bVar10 = *pbVar28 ^ bVar15 ^ (byte)DAT_182671694;
  pbVar28 = (byte *)(lVar3 + -0x41);
  *pbVar28 = bVar10;
  uVar23 = DAT_182671788;
  puVar1 = (uint *)(lVar3 + -0x5cc);
  *puVar1 = (bVar15 ^ bVar10) ^ DAT_182671788;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0xfffffafb)) =
       (uVar20 ^ uVar16) + (uVar34 ^ 0xb7e66d0) ^ DAT_1826716e4;
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x964) =
       (*puVar22 ^ uVar23) << (((byte)uVar34 ^ 0x14) & 0x1f) ^ DAT_1826716cc;
  uVar24 = DAT_1826718a0;
  uVar27 = (*(uint *)(lVar2 - ((ulonglong)uVar27 ^ 0x2894502)) ^ DAT_1826716e4) -
           (*(uint *)(lVar2 - (uVar33 ^ 0x2894961)) ^ DAT_1826716cc);
  uVar13 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar2 + -0x844) = uVar27 ^ DAT_1826718a0;
  uVar5 = DAT_18267183c;
  uVar34 = DAT_18267178c;
  uVar17 = DAT_182671580;
  uVar18 = (ulonglong)DAT_182671580;
  *(uint *)(lVar2 + -0x754) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x318dffb9)) ^ uVar19) * uVar27 ^ DAT_1826717c8;
  uVar20 = DAT_182671590;
  bVar15 = (byte)DAT_18267156c;
  uVar31 = (ulonglong)DAT_182671590;
  uVar16 = (*(uint *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0xaadd7192)) ^ uVar23) *
           (DAT_182671598 ^ 0x745eaad9) ^ DAT_1826716dc;
  *(uint *)(lVar2 + -0x328) = uVar16;
  uVar27 = DAT_182671588;
  uVar16 = (*(uint *)(lVar2 - (uVar18 ^ 0x3bfe240c)) ^ DAT_1826717c8) + (uVar16 ^ DAT_1826716dc);
  *(ulonglong *)(lVar2 + -0x510) = 0x37ba97eaf5e2d389 >> ((bVar15 ^ 0x9e) & 0x3f);
  *(uint *)(lVar2 + -0x344) = uVar16 ^ uVar34;
  *(uint *)(lVar2 + -0x47c) = uVar16 * 0x2000 ^ DAT_1826718a4;
  uVar16 = DAT_182671584;
  uVar29 = (ulonglong)DAT_182671584;
  uVar32 = uVar20 + DAT_182671584;
  DAT_1826715ac = uVar32;
  *(uint *)(lVar2 - (uVar29 ^ 0xa006983c)) =
       (*(uint *)(lVar2 + -0x344) ^ uVar34) >> (((byte)uVar27 ^ 0xde) & 0x1f) ^ uVar5;
  *(uint *)(lVar2 + -0x910) =
       (*(uint *)(lVar2 + -0x874) ^ uVar5 | *(uint *)(lVar2 + -0x47c) ^ DAT_1826718a4) ^
       DAT_18267171c;
  uVar8 = DAT_182671758;
  uVar23 = DAT_1826716d8;
  lVar3 = DAT_182671560;
  *(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0x53a76a34)) =
       (*(uint *)(lVar2 - (uVar29 ^ 0xa0069380)) ^ DAT_182671624) +
       (*(uint *)(lVar2 + -0x374) ^ uVar19) ^ DAT_1826716b8;
  uVar27 = *(uint *)(lVar2 + -0x910) ^ DAT_1826716a8 ^ DAT_18267171c;
  *(uint *)(lVar2 + -0x27c) =
       *(uint *)(lVar2 - ((ulonglong)uVar20 ^ 0xb3a0da7c)) ^ DAT_182671830 ^ DAT_1826716b8;
  uVar6 = DAT_18267176c;
  uVar13 = (ulonglong)DAT_1826717d4;
  *(uint *)(lVar2 - (uVar31 ^ 0xb3a0d900)) = uVar27;
  *(uint *)(lVar3 + -0x964) = uVar6 ^ DAT_182671830 ^ *(uint *)(lVar3 + -0x27c);
  *(uint *)(lVar3 + -0x844) = *(uint *)(lVar3 + -0x504) ^ uVar23 ^ DAT_1826716a8;
  bVar15 = (byte)DAT_18267187c;
  pbVar26 = (byte *)((CONCAT44(uVar32,uVar16) ^ 0x53a76c4ca0069048) * 0x20 +
                     (CONCAT44(uVar16,uVar20) ^ 0xa0069048b3a0dc0b) + *(longlong *)(lVar3 + -0x8f0))
  ;
  *(ulonglong *)(lVar3 + -0xca8) = (ulonglong)pbVar26 ^ uVar13;
  uVar19 = DAT_182671694;
  bVar10 = *pbVar26 ^ bVar15 ^ (byte)DAT_182671694;
  *(byte *)(lVar3 + -0xc41) = bVar10;
  uVar34 = DAT_182671764;
  puVar30 = (uint *)(lVar3 - ((ulonglong)uVar16 ^ 0xa0069584));
  *puVar30 = (bVar15 ^ bVar10) ^ DAT_182671764;
  lVar2 = DAT_182671560;
  puVar22 = (uint *)(DAT_182671560 - ((ulonglong)uVar32 ^ 0x53a76408));
  *(uint *)(DAT_182671560 + -0x754) = (*puVar22 ^ uVar23) + (uVar20 ^ 0xba57fad1) ^ uVar8;
  uVar9 = DAT_1826718a8;
  uVar27 = DAT_182671584;
  bVar10 = (byte)uVar17;
  *(uint *)(lVar2 + -0x328) =
       (*(uint *)(lVar2 + -0x874) ^ uVar5) >>
       (((byte)*(undefined4 *)(lVar2 - ((ulonglong)uVar20 ^ 0xb3a0d440)) ^ (byte)uVar23) & 0x1f);
  uVar19 = (*puVar1 ^ uVar34) << (((byte)uVar27 ^ 0x59) & 0x1f) ^ uVar19;
  *(uint *)(lVar2 + -0x47c) = (uVar32 ^ 0x772d40f1) >> (((byte)uVar20 ^ 0xd) & 0x1f);
  *(uint *)(lVar2 + -0x344) = uVar19;
  *(uint *)(lVar2 - (uVar29 ^ 0xa006933c)) =
       (*(uint *)(lVar2 - (uVar31 ^ 0xb3a0db50)) ^ uVar8) - (uVar19 ^ DAT_182671694) ^ DAT_182671708
  ;
  uVar13 = (ulonglong)DAT_18267157c;
  uVar27 = (*(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0x53a76f38)) ^ DAT_182671708) *
           (*(uint *)(lVar2 + -0x964) ^ uVar6) ^ DAT_182671844;
  *(uint *)(lVar2 + -0x678) = uVar27;
  uVar27 = uVar27 ^ DAT_182671844;
  uVar19 = (uVar34 ^ *puVar30) * (uVar32 ^ 0x53a76c43) ^ DAT_1826718d4;
  *(uint *)(lVar2 + -0x910) = uVar19;
  *(uint *)(lVar2 - (uVar13 ^ 0x289427a)) = (uVar19 ^ DAT_1826718d4) + uVar27 ^ uVar9;
  uVar19 = DAT_18267158c;
  uVar23 = (uVar9 ^ *(uint *)(lVar2 + -0x27c)) << ((bVar10 ^ 0x55) & 0x1f) ^ DAT_182671620;
  *(uint *)(lVar2 + -0x504) = uVar23;
  uVar5 = DAT_1826715a8;
  uVar27 = DAT_182671578;
  lVar3 = DAT_182671560;
  uVar23 = uVar23 ^ DAT_182671620;
  uVar21 = (ulonglong)DAT_1826715a8;
  uVar19 = (uVar9 ^ *(uint *)(lVar2 + -0x27c)) >> (((byte)uVar19 ^ 0xde) & 0x1f) ^ DAT_1826717a8;
  uVar13 = CONCAT44(DAT_1826715b4,DAT_1826715a8);
  *(uint *)(lVar2 + -0x874) = uVar19;
  uVar18 = (ulonglong)DAT_182671574;
  uVar19 = (uVar23 | uVar19 ^ DAT_1826717a8) ^ DAT_1826715bc;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar13 ^ *(ulonglong *)(lVar2 + -0x6b8) ^ 0x4b102c7030de705e;
  *(uint *)(lVar2 + -0x844) = uVar19;
  uVar19 = (*(uint *)(lVar2 - (uVar18 ^ 0x966b3447)) ^ uVar6) +
           (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^ DAT_1826715f8;
  *(uint *)(lVar2 + -0x328) = uVar19;
  uVar19 = uVar19 ^ DAT_1826717fc ^ DAT_1826715f8;
  *(uint *)(lVar2 + -0x47c) = uVar19;
  *(ulonglong *)(lVar2 + -0x3f0) =
       *(longlong *)(lVar2 + -0x9e8) - (CONCAT44(uVar20,uVar16) ^ 0x47039d4f7af90199);
  *(uint *)(lVar2 + -0x754) =
       *(uint *)(lVar2 - ((ulonglong)uVar27 ^ 0xdc04bbe4)) ^ DAT_1826715bc ^ uVar24;
  uVar6 = DAT_182671628;
  *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0x53a76f08)) = uVar19 ^ DAT_182671628 ^ DAT_1826717fc;
  uVar13 = (ulonglong)DAT_1826717ec;
  *(uint *)(lVar3 + -0x374) = *(uint *)(lVar3 - (uVar33 ^ 0x2894751)) ^ DAT_1826715e8 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x158) =
       *(longlong *)(lVar3 + -0x8f0) + 0x1a + (CONCAT44(uVar20,uVar16) ^ 0xb3a0dc04a0069048) * 0x20
       ^ uVar13;
  bVar7 = (byte)DAT_182671640;
  uVar19 = DAT_182671614;
  uVar18 = (ulonglong)DAT_182671570;
  *(undefined8 *)(lVar3 - (uVar29 ^ 0xa00690e8)) = 0xcc7d6b0d955a7a6e;
  *pbVar28 = *(byte *)(uVar13 ^ *(ulonglong *)(lVar3 + -0x158)) ^ bVar7 ^ (byte)DAT_182671694;
  bVar15 = (byte)DAT_182671568;
  uVar23 = (uint)(*(byte *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0x318dfc8c)) ^ bVar7);
  uVar27 = (*(uint *)(lVar3 + -0x374) ^ DAT_1826715e8) + (uVar32 ^ 0x5a504a99) ^ DAT_1826715c0;
  *puVar1 = uVar23 ^ uVar19;
  uVar24 = uVar23 << ((bVar15 ^ 0xee) & 0x1f) ^ DAT_182671664;
  *(uint *)(lVar3 + -0x910) = uVar24;
  uVar24 = uVar24 ^ DAT_182671664;
  *(uint *)(lVar3 + -0x678) = uVar27;
  uVar34 = DAT_182671808;
  uVar23 = DAT_182671598;
  *(uint *)(lVar3 - (uVar18 ^ 0xad9666a)) = (uVar27 ^ DAT_1826715c0) - uVar24 ^ DAT_182671808;
  uVar13 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x745eacf5)) =
       *(ulonglong *)(lVar3 + -0xc08) >>
       ((byte)*(undefined8 *)(lVar3 - ((ulonglong)DAT_18267157c ^ 0x28940a6)) & 0x3f);
  uVar27 = *(uint *)(lVar3 - (uVar13 ^ 0x5ff96cf3));
  *(longlong *)(lVar3 + -0x5c8) = *(longlong *)(lVar3 + -0x240) - *(longlong *)(lVar3 + -0xa0);
  uVar24 = (uVar27 ^ uVar6) * (uVar34 ^ *(uint *)(lVar3 + -0x27c)) ^ DAT_1826716c4;
  uVar27 = *puVar1;
  *(uint *)(lVar3 + -0x504) = uVar24;
  uVar24 = uVar24 ^ DAT_1826716c4;
  uVar27 = (uVar27 ^ uVar19) * 0x1a ^ DAT_18267165c;
  *(uint *)(lVar3 + -0x874) = uVar27;
  uVar24 = (uVar27 ^ DAT_18267165c) + uVar24;
  uVar13 = (ulonglong)DAT_1826715a0;
  *(uint *)(lVar3 + -0x964) = uVar24 ^ uVar8;
  uVar34 = DAT_18267159c;
  bVar15 = (byte)DAT_182671584;
  *(uint *)(lVar3 + -0x328) = uVar24 << (((byte)uVar23 ^ 0xd0) & 0x1f) ^ DAT_1826716dc;
  *(uint *)(lVar3 - (uVar29 ^ 0xa006980c)) =
       (*(uint *)(lVar3 - (uVar13 ^ 0xaadd7d3a)) ^ uVar8) >> ((bVar15 ^ 0x5b) & 0x1f) ^
       DAT_1826716bc;
  uVar27 = *(uint *)(lVar3 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar3 + -0x47c) =
       (*(uint *)(lVar3 - (uVar25 ^ 0xfffffcd7)) ^ DAT_1826716dc |
       *(uint *)(lVar3 + -0x844) ^ DAT_1826716bc) ^ DAT_18267162c;
  *(longlong *)(lVar3 + -0x800) =
       *(longlong *)(lVar3 + -0x3f0) << (((byte)DAT_18267156c ^ 0x8f) & 0x3f);
  puVar30 = (uint *)(lVar3 - ((ulonglong)uVar5 ^ 0x205c2318));
  *(uint *)(lVar3 - (uVar21 ^ 0x205c2708)) = uVar27 + (*puVar30 ^ uVar6) ^ DAT_182671674;
  lVar2 = DAT_182671560;
  uVar25 = (ulonglong)DAT_1826715a4;
  *(longlong *)(lVar3 - (uVar18 ^ 0xad96e76)) = 0x7f4fb4c79df4299 << ((bVar10 ^ 0x5f) & 0x3f);
  *(uint *)(lVar2 - (uVar25 ^ 0xe1616ba9)) =
       DAT_182671784 ^ DAT_182671674 ^ *(uint *)(lVar2 + -0x754);
  uVar24 = DAT_182671858;
  uVar6 = DAT_182671814;
  uVar5 = DAT_18267180c;
  uVar27 = *(uint *)(lVar2 + -0x374) ^ DAT_182671814 ^ DAT_182671784;
  *(uint *)(lVar2 + -0x678) =
       *(uint *)(lVar2 - (uVar21 ^ 0x205c2420)) ^ DAT_182671858 ^ DAT_18267162c;
  *(uint *)(lVar2 - (uVar31 ^ 0xb3a0d514)) = uVar27;
  uVar13 = (ulonglong)DAT_1826717c0;
  *(uint *)(lVar2 - (uVar31 ^ 0xb3a0de78)) = *(uint *)(lVar2 + -0x678) ^ uVar5 ^ uVar24;
  uVar19 = DAT_182671588;
  uVar21 = (ulonglong)DAT_182671588;
  pbVar26 = (byte *)((CONCAT44(uVar34,DAT_182671578) ^ 0x318dfccddc04b3a0) * 0x20 +
                     (CONCAT44(uVar20,uVar32) ^ 0xb3a0dc0453a76c49) + *(longlong *)(lVar2 + -0x8f0))
  ;
  *(ulonglong *)(lVar2 + -0x528) = (ulonglong)pbVar26 ^ uVar13;
  bVar15 = (byte)DAT_1826716ec;
  *(ulonglong *)(lVar2 + -0x898) = CONCAT44(uVar19,uVar16) ^ 0x8b140ce2761110 | 0x3720c1d2188986ee;
  lVar3 = DAT_182671560;
  bVar10 = *pbVar26 ^ bVar15 ^ (byte)DAT_182671694;
  *(byte *)(lVar2 + -0xc41) = bVar10;
  uVar8 = DAT_182671834;
  uVar13 = (ulonglong)DAT_1826715b0;
  *puVar1 = (bVar15 ^ bVar10) ^ DAT_182671834;
  uVar27 = DAT_182671574;
  *(uint *)(lVar3 - (uVar13 ^ 0x5ff96ab3)) =
       (uVar5 ^ *(uint *)(lVar3 + -0x27c)) + (DAT_18267157c ^ 0xb7e66d3) ^ DAT_182671818;
  uVar16 = DAT_182671578;
  *(ulonglong *)(lVar3 + -0x1d8) =
       CONCAT44(uVar20,uVar4) ^ CONCAT44(uVar19,uVar27) ^ 0xcf810dc6633aa91e;
  lVar2 = DAT_182671560;
  uVar27 = (*(uint *)(lVar3 - (uVar33 ^ 0x28945c9)) ^ uVar8) << (((byte)uVar16 ^ 0xb1) & 0x1f) ^
           DAT_182671888;
  uVar13 = (ulonglong)DAT_18267156c;
  uVar31 = *(ulonglong *)(DAT_182671560 + -0x9f8) | *(ulonglong *)(DAT_182671560 + -0x5c8);
  *(uint *)(DAT_182671560 + -0x874) = uVar27;
  uVar27 = uVar27 ^ DAT_182671888;
  *(ulonglong *)(lVar2 + -0x548) = uVar31;
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x56894582)) ^ DAT_182671818) - uVar27 ^ uVar24;
  uVar27 = DAT_18267158c;
  uVar18 = (ulonglong)DAT_18267158c;
  *(uint *)(lVar2 + -0x328) =
       (*(uint *)(lVar2 - (uVar29 ^ 0xa006992c)) ^ uVar24) * (*(uint *)(lVar2 + -0x910) ^ uVar6) ^
       DAT_182671794;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (CONCAT44(uVar17,uVar23) ^ 0xe5a4bd62cfe0dfc7) -
       (CONCAT44(uVar34,uVar4) ^ 0x6a9cb3d8f37e8dce);
  uVar13 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar2 + -0x844) = (*puVar1 ^ uVar8) * 5 ^ DAT_1826716f8;
  *(ulonglong *)(lVar2 - (uVar13 ^ 0x318dfddd)) = uVar31 >> (((byte)uVar19 ^ 199) & 0x3f);
  uVar19 = DAT_182671884;
  *puVar30 = (*puVar22 ^ DAT_1826716f8) + (*(uint *)(lVar2 + -0x328) ^ DAT_182671794) ^
             DAT_182671884;
  uVar17 = DAT_18267179c;
  uVar16 = DAT_182671724;
  uVar13 = (ulonglong)DAT_1826715a0;
  *(uint *)(lVar2 - (uVar18 ^ 0x2a7cb799)) =
       (uVar19 ^ *(uint *)(lVar2 + -0x344)) << (((byte)DAT_1826715a8 ^ 0x51) & 0x1f) ^ DAT_182671724
  ;
  uVar4 = DAT_1826715c0;
  uVar23 = DAT_1826715c0 & 0xff;
  *(uint *)(lVar2 + -0x47c) = (uVar19 ^ *(uint *)(lVar2 + -0x344)) >> (bVar14 & 0x1f) ^ uVar17;
  uVar18 = (ulonglong)DAT_1826717ac;
  *(uint *)(lVar2 - (uVar13 ^ 0xaadd772a)) =
       (*(uint *)(lVar2 - (uVar33 ^ 0x2894479)) ^ uVar17 | uVar16 ^ *(uint *)(lVar2 + -0x754)) ^
       DAT_1826716d0;
  uVar16 = (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar2 + -0x910) ^ uVar6) ^
           uVar17;
  uVar17 = DAT_182671644 ^ uVar17;
  *(uint *)(lVar2 + -0x678) = uVar16;
  uVar13 = (ulonglong)DAT_1826715b4;
  *(uint *)(lVar2 + -0x27c) = uVar17 ^ uVar16;
  *(uint *)(lVar2 + -0x504) = *(uint *)(lVar2 - (uVar13 ^ 0xf526989d)) ^ DAT_1826716d0 ^ uVar5;
  *(uint *)(lVar2 + -0x874) =
       *(uint *)(lVar2 - (uVar21 ^ 0x318dfeb1)) ^ DAT_1826715c4 ^ DAT_182671644;
  *(undefined8 *)(lVar2 - (uVar25 ^ 0xe1616e0d)) = 0x3f44d6ffef2cd46c;
  *(uint *)(lVar2 + -0x964) = DAT_18267175c ^ *(uint *)(lVar2 + -0x504) ^ uVar5;
  *(ulonglong *)(lVar2 + -0x960) =
       *(longlong *)(lVar2 + -0x8f0) + 0x10 + (CONCAT44(uVar27,uVar20) ^ 0x2a7cb0cdb3a0dc04) * 0x20
       ^ uVar18;
  bVar15 = *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0xdc04bac0)) ^ uVar18) ^
           (byte)DAT_182671694 ^ (byte)uVar4;
  *pbVar28 = bVar15;
  *puVar1 = bVar15 ^ uVar23 ^ DAT_18267182c;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar11;
  return;
}



############ FUN_ 180f09cb0 size=5690 ############

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

void FUN_180f09cb0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  byte bVar17;
  uint uVar18;
  byte *pbVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte bVar53;
  byte bVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong *puVar59;
  ulonglong *puVar60;
  ulonglong *puVar61;
  byte local_140;
  byte local_108;
  byte local_68;
  
  uVar9 = DAT_1826718cc;
  uVar13 = DAT_1826715b0;
  uVar12 = DAT_1826715a8;
  uVar8 = DAT_1826715a0;
  uVar10 = DAT_182671594;
  lVar6 = DAT_182671560;
  uVar50 = (ulonglong)DAT_1826715a0;
  uVar32 = (ulonglong)DAT_1826715b0;
  uVar49 = (ulonglong)DAT_1826715a8;
  uVar51 = (ulonglong)DAT_182671594;
  uVar20 = DAT_1826715b0 ^ DAT_1826715a8;
  uVar44 = ~DAT_182671594;
  uVar37 = (DAT_1826715a0 << 0x10 | DAT_1826715a0 & 0xff00) << 8 | DAT_1826715a0 >> 8 & 0xff00 |
           DAT_1826715a0 >> 0x18;
  uVar26 = *(uint *)(&DAT_182611e78 + DAT_1826719d4) ^ DAT_1826715b0;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_1826719d4) ^ DAT_1826715a8;
  puVar60 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0x90278ab2));
  puVar1 = (ulonglong *)(DAT_182671560 + -0x510);
  uVar27 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  uVar31 = CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar55 = CONCAT44(DAT_182671628,DAT_182671628);
  DAT_182671578 = uVar20;
  DAT_18267158c = uVar37;
  DAT_182671598 = uVar44;
  *puVar1 = (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x8a8)) - (*puVar60 ^ uVar27) ^ uVar55;
  lVar7 = DAT_182671560;
  puVar2 = (ulonglong *)(lVar6 + -0x670);
  uVar58 = CONCAT44(uVar9,uVar9);
  uVar56 = CONCAT44(DAT_182671824,DAT_182671824);
  puVar3 = (ulonglong *)(lVar6 + -0x6d0);
  uVar27 = uVar56 ^ uVar58 ^ uVar27 ^ *puVar3 ^ *puVar2;
  puVar4 = (ulonglong *)(DAT_182671560 + -0x1d8);
  *puVar4 = uVar27;
  bVar17 = (byte)uVar44;
  *(ulonglong *)(lVar7 + -0x688) = (uVar27 ^ uVar58) >> ((bVar17 ^ 0x19) & 0x3f) ^ uVar31;
  lVar6 = DAT_182671560;
  bVar36 = (byte)(uVar8 >> 0x18);
  uVar45 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(DAT_182671560 - (uVar49 ^ 0xb3ea7dab)) =
       (uVar27 ^ uVar58) << ((bVar36 ^ 0xd9) & 0x3f) ^ uVar45;
  uVar41 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  puVar59 = (ulonglong *)(lVar6 - (uVar49 ^ 0xb3ea704b));
  uVar52 = CONCAT44(DAT_182671730,DAT_182671730);
  *puVar59 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xfe76f8f7)) ^ uVar31 |
             *(ulonglong *)(lVar6 - ((ulonglong)uVar44 ^ 0xb2987648)) ^ uVar45) ^ uVar41;
  uVar14 = DAT_1826718b4;
  *puVar3 = **(ulonglong **)(lVar6 + -0x450) ^ uVar52;
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar46 = CONCAT44(DAT_182671638,DAT_182671638);
  *(ulonglong *)(lVar6 + -0x688) =
       (uVar56 ^ *puVar2) - (uVar22 ^ *(ulonglong *)(lVar6 + -0x240)) ^ uVar46;
  puVar28 = (ulonglong *)(DAT_182671560 - (uVar32 ^ 0x23cdf209));
  puVar23 = (ulonglong *)(DAT_182671560 - (uVar51 ^ 0x4d678457));
  uVar57 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  puVar33 = (ulonglong *)(DAT_182671560 + -0x548);
  *puVar33 = (uVar46 ^ *puVar28) - (uVar41 ^ *puVar23) ^ uVar57;
  lVar6 = DAT_182671560;
  *puVar3 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar13 ^ 0x23cdf559)) ^ uVar58 |
            0xb22cc52e8142ebf2;
  uVar38 = CONCAT44(DAT_182671768,DAT_182671768);
  uVar29 = CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar47 = CONCAT44(DAT_182671714,DAT_182671714);
  uVar27 = *(ulonglong *)(lVar6 + -0x8a8);
  uVar31 = (*(ulonglong *)(lVar6 + -0x3b8) ^ uVar29) + (*(ulonglong *)(lVar6 + -0x400) ^ uVar38);
  *puVar2 = uVar31 ^ uVar47;
  uVar34 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar6 + -0x688) = (uVar41 ^ uVar27) - uVar31 ^ uVar34;
  uVar41 = CONCAT44(DAT_182671740,DAT_182671740);
  *puVar4 = (CONCAT44(uVar20,uVar8) ^ 0xd665a3a1f283120c) -
            (CONCAT44(uVar12,uVar37) ^ 0xf23fc4a38b18a39a);
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671634,DAT_182671634);
  puVar24 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar37 ^ 0x7ffe7f06));
  uVar31 = uVar30 ^ uVar41 ^ uVar55 ^ *puVar1 ^ *puVar24;
  *puVar3 = uVar31;
  uVar27 = (uVar41 ^ *puVar60) >> ((bVar17 ^ 0x21) & 0x3f);
  puVar60 = (ulonglong *)(lVar6 + -0x9f8);
  *(ulonglong *)(lVar6 + -0x8a8) = uVar27 ^ CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *puVar4 = **(ulonglong **)(lVar6 + -0xb78) ^ uVar52;
  puVar5 = (ulonglong *)(lVar6 + -0x270);
  *(ulonglong *)(lVar6 - (uVar51 ^ 0x4d678d27)) =
       ((uVar41 ^ uVar31) << (((byte)uVar8 ^ 0x60) & 0x3f) | uVar27) ^ uVar38;
  uVar31 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar35 = CONCAT44(DAT_182671858,DAT_182671858);
  uVar27 = (uVar55 ^ *puVar1) - (uVar31 ^ *puVar5);
  *puVar3 = uVar27 ^ uVar35;
  uVar16 = DAT_18267171c;
  uVar14 = DAT_18267166c;
  uVar55 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar6 + -0x8a8) = uVar27 - (uVar38 ^ *puVar4) ^ uVar55;
  uVar15 = DAT_182671608;
  lVar7 = DAT_182671560;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar42 = -(*(ulonglong *)(lVar6 + -0x638) ^ uVar41) - 0xb;
  *puVar60 = uVar42 ^ CONCAT44(DAT_182671608,DAT_182671608);
  uVar14 = DAT_1826715c8;
  uVar8 = DAT_1826715b4;
  puVar48 = (ulonglong *)(lVar7 - ((ulonglong)uVar37 ^ 0x7ffe7726));
  *puVar5 = 0xc431760f0d1d5afb >> (((byte)uVar16 ^ (byte)*puVar59) & 0x3f);
  uVar43 = CONCAT44(uVar14,uVar14);
  uVar27 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar44 ^ 0xb2987610)) = uVar42 + (uVar38 ^ *puVar48) ^ uVar43;
  uVar39 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *puVar5 = *(ulonglong *)(lVar7 - (uVar27 ^ 0xc07b2db7)) ^ uVar39 ^ uVar43 ^ uVar57 ^ *puVar1;
  uVar11 = DAT_1826715a4;
  uVar9 = DAT_182671584;
  lVar6 = DAT_182671560;
  *puVar4 = (CONCAT44(uVar13,DAT_1826715a4) ^ 0xbca030f5a6b8af3b) <<
            (((byte)uVar15 ^ *(byte *)puVar60) & 0x3f);
  puVar61 = (ulonglong *)(lVar6 - (uVar50 ^ 0xfe76fb6f));
  local_140 = (byte)uVar12;
  *puVar61 = (uVar39 ^ *puVar5) >> ((local_140 ^ 0xe6) & 0x3f) ^ uVar31;
  uVar38 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *puVar48 = (uVar39 ^ *puVar5) << (((byte)uVar8 ^ 0x3a) & 0x3f) ^ uVar38;
  uVar14 = DAT_1826717e8;
  *puVar5 = (CONCAT44(uVar9,uVar20) ^ 0x6a4429c299c55d52) - (uVar38 ^ *puVar4);
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar27 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0xddbb0cd8)) ^ uVar38 |
           uVar31 ^ *puVar1;
  pbVar19 = (byte *)(DAT_182671560 - (uVar49 ^ 0xb3ea711b));
  *puVar5 = uVar27 ^ uVar40;
  lVar6 = DAT_182671560;
  *puVar1 = (CONCAT44(DAT_182671588,uVar44) ^ 0x567702f9c117a833) >>
            ((*pbVar19 ^ (byte)uVar15) & 0x3f);
  puVar48 = (ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x32a28649));
  *puVar4 = (uVar57 ^ *puVar48) - uVar27 ^ uVar52;
  uVar20 = DAT_182671588;
  uVar8 = DAT_182671570;
  uVar44 = (uVar9 << 0x10 | uVar9 & 0xff00) << 8 | uVar9 >> 8 & 0xff00 | DAT_182671584 >> 0x18;
  uVar21 = uVar44 ^ 0x4af0650;
  bVar53 = (byte)uVar9;
  uVar27 = uVar55 ^ uVar34 ^ *(ulonglong *)(lVar6 + -0x688) ^ *(ulonglong *)(lVar6 + -0x8a8);
  uVar43 = (ulonglong)DAT_182671588;
  puVar59 = (ulonglong *)(lVar6 - ((ulonglong)uVar21 ^ 0x4e51d72));
  DAT_18267159c = uVar21;
  *puVar60 = (uVar35 ^ *puVar59) >> ((bVar53 ^ 0x18) & 0x3f);
  uVar14 = DAT_182671670;
  uVar42 = CONCAT44(DAT_182671710,DAT_182671710);
  *puVar1 = uVar27 ^ uVar42;
  uVar49 = CONCAT44(uVar14,uVar14);
  *puVar33 = uVar27 >> ((bVar53 ^ 0x25) & 0x3f) ^ uVar49;
  uVar37 = DAT_182671590;
  puVar25 = (ulonglong *)(lVar6 - (uVar43 ^ 0x10080c8c));
  *puVar25 = CONCAT44(uVar44,uVar44) ^ 0x4af065004af0650 ^
             CONCAT44(uVar44,uVar9) ^ 0x4af065000000000 ^ 0xf8456d2bf54b94a0;
  uVar31 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar37 ^ 0xccb0ed51)) ^ uVar42) <<
           (((byte)uVar8 ^ 0xd6) & 0x3f);
  *puVar60 = uVar31 ^ CONCAT44(DAT_182671704,DAT_182671704);
  uVar8 = DAT_1826718c4;
  lVar6 = DAT_182671560;
  uVar35 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar27 = (ulonglong)DAT_1826715ac;
  uVar34 = (ulonglong)DAT_1826718c4;
  *(ulonglong *)(DAT_182671560 + -0x688) = (*puVar33 ^ uVar49 | uVar31) ^ uVar35;
  *puVar3 = (*(ulonglong *)(lVar6 - (uVar27 ^ 0xc07b2057)) ^ uVar55) - (*puVar28 ^ uVar35) ^ uVar56;
  uVar31 = *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xf21d4c88)) ^ uVar52 ^ CONCAT44(uVar8,uVar8)
           ^ uVar35 ^ *puVar4;
  *puVar1 = uVar31;
  uVar14 = DAT_1826717fc;
  uVar27 = CONCAT44(DAT_182671764,DAT_182671764);
  *puVar33 = ((ulonglong)(uVar8 >> 0x17) | uVar34 << 9) ^ uVar31 >> 0x17 ^ uVar27;
  lVar6 = DAT_182671560;
  uVar35 = CONCAT44(uVar14,uVar14);
  *puVar24 = (uVar31 ^ CONCAT44(uVar8,uVar8)) << ((bVar53 ^ 0x29) & 0x3f) ^ uVar35;
  uVar49 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xf21d42a8)) =
       (*puVar33 ^ uVar27 | *puVar60 ^ uVar35) ^ uVar49;
  uVar57 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar27 = *puVar5;
  uVar31 = *puVar3;
  uVar34 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar6 + -0x688) =
       (uVar52 ^ *puVar4) - (*(ulonglong *)(lVar6 + -0x8a8) ^ uVar49) ^ uVar57;
  uVar9 = DAT_18267157c;
  uVar52 = (ulonglong)DAT_18267157c;
  bVar54 = (byte)DAT_18267157c;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0xddbb0810)) = uVar40 ^ uVar27 ^ uVar45 ^ uVar56 ^ uVar31;
  uVar8 = DAT_182671570;
  uVar27 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *puVar33 = (uVar45 ^ *puVar1) >> ((bVar54 ^ 0x28) & 0x3f) ^ uVar27;
  *puVar4 = (CONCAT44(uVar8,uVar20) ^ 0x6c301a147a2969fc) + (*puVar60 ^ uVar35);
  uVar40 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0x4e519d2)) =
       (uVar45 ^ *puVar1) << (((byte)uVar20 ^ 0x44) & 0x3f) ^ uVar40;
  uVar14 = DAT_1826716b4;
  uVar27 = *puVar5 ^ uVar40 | *puVar33 ^ uVar27;
  *puVar60 = uVar27 ^ uVar35;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715ac ^ 0xc07b2927)) =
       (uVar56 ^ *puVar3) - uVar27 ^ uVar34;
  uVar35 = *(ulonglong *)(DAT_182671560 + -0x688) ^ uVar56 ^ *puVar60 ^ uVar57 ^ uVar35;
  *puVar1 = uVar35;
  uVar31 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *puVar33 = (uVar56 ^ uVar35) >> ((local_140 ^ 0xd7) & 0x3f) ^ uVar31;
  uVar27 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(DAT_182671560 - (uVar50 ^ 0xfe76fc0f)) = (uVar56 ^ *puVar61) << 0xc ^ uVar27;
  uVar14 = DAT_182671884;
  uVar8 = DAT_182671568;
  lVar6 = DAT_182671560;
  uVar45 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0x41e8b61c)) =
       (*(ulonglong *)(DAT_182671560 - (uVar51 ^ 0x4d6789b7)) ^ uVar31 | *puVar5 ^ uVar27) ^ uVar45;
  lVar7 = DAT_182671560;
  puVar24 = (ulonglong *)(lVar6 - ((ulonglong)DAT_18267156c ^ 0xddbb04f8));
  *puVar24 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x23cdf288)) ^ uVar57) - (uVar45 ^ *puVar3)
             ^ uVar30;
  uVar27 = *(ulonglong *)(lVar7 + -0x8a8);
  *puVar1 = 0x3145463edd22c3ac >> (((byte)uVar14 ^ *(byte *)puVar3) & 0x3f);
  uVar15 = DAT_1826718d0;
  uVar35 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar31 = uVar27 ^ uVar35 ^ uVar34 ^ uVar49 ^ *puVar4;
  uVar27 = (uVar31 ^ uVar35) >> ((bVar36 ^ 199) & 0x3f);
  *puVar33 = uVar31;
  uVar49 = (uVar31 ^ uVar35) << ((bVar17 ^ 7) & 0x3f);
  *puVar5 = uVar27 ^ CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar14 = DAT_182671688;
  lVar6 = DAT_182671560;
  uVar31 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar7 + -0x8a8) = uVar49 ^ uVar31;
  uVar50 = CONCAT44(uVar14,uVar14);
  uVar35 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar6 + -0x688) = (uVar49 | uVar27) ^ uVar50;
  *puVar5 = (uVar34 ^ *puVar4) - (*(ulonglong *)(lVar6 - (uVar51 ^ 0x4d678a77)) ^ uVar50) ^ uVar35;
  *puVar4 = *(longlong *)(lVar6 - (uVar43 ^ 0x10080f4c)) <<
            ((*(byte *)(lVar6 - ((ulonglong)DAT_182671590 ^ 0xccb0ed09)) ^ (byte)uVar15) & 0x3f);
  uVar50 = *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715b4 ^ 0x32a28589)) ^ uVar30 ^ uVar29 ^
           *puVar60 ^ uVar50;
  *puVar33 = uVar50;
  uVar16 = DAT_182671898;
  bVar36 = (byte)uVar8;
  uVar49 = CONCAT44(DAT_182671898,DAT_182671898);
  *puVar1 = (uVar29 ^ uVar50) >> ((bVar54 ^ 0xe) & 0x3f) ^ uVar49;
  lVar7 = DAT_182671560;
  *puVar4 = (*(ulonglong *)(lVar6 + -0x8a8) ^ uVar31) >> ((bVar36 ^ 0xc) & 0x3f);
  local_108 = (byte)uVar13;
  uVar31 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar27 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar21 ^ 0x4e51d2a)) =
       (uVar29 ^ uVar50) << ((local_108 ^ 0xb3) & 0x3f) ^ uVar31;
  uVar14 = DAT_182671728;
  uVar34 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671580 ^ 0xddbb05a8)) =
       (*(ulonglong *)(lVar7 - (uVar27 ^ 0xf48126dd)) ^ uVar49 |
       *(ulonglong *)(lVar7 + -0x688) ^ uVar31) ^ uVar34;
  uVar43 = CONCAT44(DAT_182671648,DAT_182671648);
  *puVar4 = (uVar30 ^ *puVar60) - (*(ulonglong *)(lVar7 + -0x2a0) ^ uVar43) ^ uVar46;
  uVar29 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *puVar33 = (*(ulonglong *)(lVar7 - (uVar52 ^ 0xf21d4bd8)) ^ uVar46) -
             (uVar34 ^ *(ulonglong *)(lVar7 + -0x8a8)) ^ uVar29;
  uVar15 = DAT_182671878;
  uVar27 = (*(ulonglong *)(lVar7 + -0x110) ^ uVar58) + (uVar22 ^ *(ulonglong *)(lVar7 + -0x240));
  *(ulonglong *)(lVar7 + -0x688) = uVar27 ^ CONCAT44(DAT_182671650,DAT_182671650);
  uVar31 = CONCAT44(uVar15,uVar15);
  *puVar60 = (*puVar23 ^ uVar34) - uVar27 ^ uVar31;
  *puVar4 = uVar39 ^ *puVar5 ^ uVar35 ^ uVar45 ^ *puVar3;
  *(ulonglong *)(DAT_182671560 - (uVar51 ^ 0x4d678a2f)) =
       0x3ade2bebe2f5d22f >> ((*(byte *)puVar1 ^ (byte)uVar16) & 0x3f);
  uVar8 = DAT_1826715a4;
  uVar27 = *puVar4;
  uVar22 = (uVar39 ^ *puVar4) >> ((bVar53 ^ 0x10) & 0x3f);
  *puVar1 = uVar22 ^ uVar31;
  uVar49 = (uVar39 ^ uVar27) << (((byte)uVar8 ^ 0xcf) & 0x3f);
  *puVar3 = uVar49 ^ CONCAT44(DAT_182671790,DAT_182671790);
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar27 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *puVar4 = (uVar22 | uVar49) ^ uVar30;
  *puVar59 = (*puVar5 ^ uVar35) - (uVar47 ^ *puVar2) ^ uVar27;
  uVar8 = DAT_182671574;
  uVar22 = CONCAT44(uVar9,DAT_182671574);
  *puVar1 = (uVar27 ^ *puVar3) - (uVar30 ^ *puVar4) ^ uVar45;
  uVar27 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a4 ^ 0xf5a3b98f)) =
       (uVar22 ^ 0xde2b5ffbe174f3a) - (*(ulonglong *)(lVar6 + -0xc08) ^ uVar35) ^ uVar41;
  uVar35 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671590 ^ 0xccb0ea31)) =
       (*(ulonglong *)(lVar6 - (uVar27 ^ 0xf4812215)) ^ uVar30) + (uVar41 ^ *puVar2) ^ uVar43;
  uVar27 = (ulonglong)DAT_1826718cc;
  *puVar3 = *puVar33 ^ *puVar5 ^ uVar58 ^ uVar29 ^ uVar43;
  uVar22 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *puVar2 = *puVar25 >> 0x20 ^ uVar27 ^ uVar22;
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x32a282d9)) =
       (CONCAT44(DAT_18267156c,uVar10) ^ 0x1dfe704b6ef256e7) + 0xfc72ded9cfeb143f;
  lVar6 = DAT_182671560;
  uVar27 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x23cdf6f1)) =
       (uVar58 ^ *puVar3) << ((bVar17 ^ 0x20) & 0x3f) ^ uVar27;
  *puVar4 = (uVar58 ^ *puVar3) << (((byte)uVar14 ^ *(byte *)(lVar6 + -0x8a8)) & 0x3f);
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = (*puVar5 ^ uVar27 | uVar22 ^ *puVar2) ^ uVar55;
  uVar14 = DAT_18267177c;
  uVar41 = CONCAT44(_DAT_182671610,_DAT_182671610);
  *puVar3 = (*puVar33 ^ uVar29) - (*(ulonglong *)(lVar6 - (uVar35 ^ 0x32a28ba9)) ^ uVar55) ^ uVar41;
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar27 = *puVar1 ^ uVar22 ^ uVar31 ^ *puVar60 ^ uVar45;
  *puVar4 = uVar27;
  uVar31 = (uVar27 ^ uVar22) >> ((bVar36 ^ 0x20) & 0x3f);
  local_68 = (byte)uVar11;
  uVar22 = (uVar22 ^ uVar27) << ((local_68 ^ 0xdf) & 0x3f);
  uVar27 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar30 = CONCAT44(uVar8,DAT_1826715ac);
  *puVar5 = uVar22 ^ uVar34;
  *puVar2 = uVar31 ^ uVar27;
  uVar31 = uVar31 | uVar22;
  *puVar60 = uVar31 ^ uVar38;
  uVar27 = *puVar1;
  *puVar33 = (CONCAT44(uVar13,uVar12) ^ 0xda6fe893325a15d6) - (uVar30 ^ 0xbb81a1697b6ca8cf);
  *puVar4 = (uVar27 ^ uVar45) - uVar31 ^ uVar29;
  uVar31 = uVar38 ^ uVar41 ^ *puVar25 ^ uVar42 ^ *puVar24;
  uVar27 = (ulonglong)DAT_182671710;
  *puVar33 = uVar31;
  uVar14 = DAT_182671678;
  uVar31 = (uVar31 >> 0x20 ^ uVar27) >> 0x1a;
  *puVar5 = uVar31 ^ uVar40;
  uVar15 = DAT_182671844;
  uVar27 = (*puVar48 ^ uVar42) << 6;
  *puVar2 = uVar27 ^ CONCAT44(uVar14,uVar14);
  *puVar1 = (uVar27 | uVar31) ^ CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar26;
  return;
}



############ FUN_ 180ea50f0 size=5795 ############

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

void FUN_180ea50f0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  ulonglong *puVar18;
  ulonglong *puVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  byte bVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  byte local_res20;
  
  uVar11 = DAT_182671794;
  uVar12 = DAT_1826715ac;
  uVar8 = DAT_182671590;
  uVar4 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar32 = (ulonglong)DAT_182671590;
  uVar38 = (ulonglong)DAT_1826715ac;
  uVar21 = (ulonglong)DAT_182671568;
  uVar26 = DAT_182671568 - DAT_182671590;
  uVar33 = DAT_1826715ac << 0x10 | DAT_1826715ac >> 0x10;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671b94);
  uVar15 = *(uint *)(&DAT_182611e70 + (uVar32 ^ 0x1f311e2) + (longlong)DAT_182671b94) ^
           DAT_1826715ac;
  uVar42 = (ulonglong)uVar26;
  uVar44 = (ulonglong)uVar33;
  uVar27 = (CONCAT44(DAT_1826716b0,DAT_1826716b0) ^ *(ulonglong *)(DAT_182671560 + -0xa88)) -
           (CONCAT44(DAT_182671568,uVar26) ^ 0x9cc62bc107e1290);
  DAT_182671588 = uVar33;
  DAT_1826715b4 = uVar26;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar27 ^ CONCAT44(DAT_182671884,DAT_182671884);
  uVar5 = _DAT_1826715d8;
  uVar16 = CONCAT44(uVar11,uVar11);
  uVar23 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar2 + -0x110) = uVar27 - (uVar16 ^ *(ulonglong *)(lVar2 + -0x240)) ^ uVar23;
  uVar14 = DAT_182671888;
  uVar6 = DAT_1826716d4;
  uVar13 = DAT_182671638;
  uVar28 = CONCAT44(uVar5,uVar5);
  uVar27 = (ulonglong)DAT_1826716d4;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (uVar16 ^ *(ulonglong *)(lVar2 + -0x240)) - (CONCAT44(uVar33,uVar4) ^ 0x2f8fe1df344420e0) ^
       uVar28;
  uVar11 = DAT_1826715c4;
  uVar22 = CONCAT44(uVar13,uVar13);
  uVar34 = CONCAT44(uVar6,uVar6);
  uVar16 = *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x1f3195a)) ^ CONCAT44(uVar14,uVar14) ^ uVar22
           ^ uVar34 ^ *(ulonglong *)(lVar2 + -0x6d0);
  *(ulonglong *)(lVar2 + -0x670) = uVar16;
  uVar7 = DAT_182671584;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x4b93f09c)) =
       (uVar16 >> 0x20 ^ uVar27) >> 1 ^ CONCAT44(uVar11,uVar11);
  uVar9 = DAT_182671594;
  uVar16 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (CONCAT44(uVar4,uVar33) ^ 0x79179a9ef08a8b4f) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar12 ^ 0x77e4e94e)) ^ (byte)uVar11) & 0x3f);
  uVar6 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(DAT_182671898,DAT_182671898);
  bVar41 = (byte)uVar26;
  uVar27 = CONCAT44(uVar8,DAT_18267157c);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x9aa194a8)) =
       (*(ulonglong *)(DAT_182671560 - (uVar16 ^ 0xee71eb80)) ^ uVar34) << ((bVar41 ^ 0x9b) & 0x3f)
       ^ uVar29;
  uVar13 = DAT_182671850;
  *(ulonglong *)(lVar2 + -0xa88) = uVar27 ^ CONCAT44(uVar12,uVar33) ^ 0xfbe2d20dc43dc3f1;
  uVar5 = DAT_1826715c0;
  lVar3 = DAT_182671560;
  uVar16 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xe3d295f0)) ^ uVar29 |
       CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar2 + -0x318)) ^ uVar16;
  uVar11 = DAT_182671624;
  lVar2 = DAT_182671560;
  uVar35 = CONCAT44(uVar5,uVar5);
  puVar30 = (ulonglong *)(lVar3 - (uVar21 ^ 0x4d870736));
  *puVar30 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x9aa19a28)) ^ uVar22) -
             (CONCAT44(uVar9,uVar4) ^ 0x4a7a609dabd02794) ^ uVar35;
  uVar13 = DAT_1826718bc;
  uVar22 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x6d0) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x240)) - (*(ulonglong *)(lVar2 + -0x898) ^ uVar16) ^
       uVar22;
  uVar5 = DAT_182671880;
  uVar7 = DAT_182671584;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (CONCAT44(DAT_182671584,uVar8) ^ 0x4e2f1f56f9935829) +
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar16) ^ uVar27;
  uVar16 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 - (uVar44 ^ 0xea567194)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar33 ^ 0xea567c14)) ^ *(ulonglong *)(lVar2 + -0x110) ^
       uVar16 ^ uVar27 ^ uVar23;
  lVar3 = DAT_182671560;
  puVar17 = (ulonglong *)(lVar2 - (uVar32 ^ 0x1f31782));
  uVar34 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  local_res20 = (byte)uVar4;
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x77e4e0de)) =
       (uVar16 ^ *puVar17) >> ((bVar41 ^ 0x81) & 0x3f) ^ uVar34;
  uVar37 = (uVar16 ^ *(ulonglong *)(lVar3 + -0x670)) << ((local_res20 ^ 0x4d) & 0x3f);
  uVar27 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar3 + -0x318) = uVar37 ^ CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar5 = DAT_18267172c;
  lVar2 = DAT_182671560;
  uVar16 = *(ulonglong *)(DAT_182671560 + -0xa88);
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0x9aa190c0)) ^ uVar35) << (((byte)uVar8 ^ 0xff) & 0x3f);
  uVar45 = CONCAT44(uVar5,uVar5);
  uVar29 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar37 | uVar34 ^ uVar16) ^ uVar45;
  uVar16 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0x1f310e2)) ^ uVar23) -
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x77e4e2fe)) ^ uVar45) ^ uVar29;
  uVar5 = DAT_1826716ac;
  bVar20 = (byte)(uVar12 >> 0x10);
  *(ulonglong *)(lVar2 + -0xbf0) =
       *(ulonglong *)(lVar2 - (uVar16 ^ 0xee71e558)) ^ CONCAT44(uVar9,uVar8) ^ uVar45 ^
       0x798dd54c66a0044b;
  uVar37 = CONCAT44(uVar5,uVar5);
  uVar27 = uVar37 ^ uVar22 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x2a0) ^
           *(ulonglong *)(lVar2 + -0x6d0);
  uVar16 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar2 + -0x240) =
       (CONCAT44(uVar8,uVar26) ^ 0xe210b8687f2fa286) << ((bVar20 ^ 0xdd) & 0x3f);
  *(ulonglong *)(lVar2 + -0x670) = uVar27;
  puVar18 = (ulonglong *)(lVar2 - (uVar16 ^ 0x9aa194f0));
  uVar23 = (uVar37 ^ *puVar18) >> ((bVar20 ^ 0xc1) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar23 ^ CONCAT44(DAT_1826718c4,DAT_1826718c4);
  lVar2 = DAT_182671560;
  bVar20 = (byte)uVar12;
  uVar34 = CONCAT44(DAT_182671818,DAT_182671818);
  *(ulonglong *)(DAT_182671560 + -0xa88) = (uVar37 ^ uVar27) << ((bVar20 ^ 0x4d) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar2 + -0x318) =
       CONCAT44(uVar12,uVar6) ^ CONCAT44(uVar6,uVar8) ^ 0x1f33063d46468c04;
  uVar11 = DAT_1826717f4;
  uVar16 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  puVar31 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671584 ^ 0x9aa19390));
  *puVar31 = (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x4d870ffe)) ^ uVar34 | uVar23) ^ uVar16;
  uVar5 = DAT_182671744;
  lVar2 = DAT_182671560;
  uVar23 = CONCAT44(uVar11,uVar11);
  uVar36 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) -
       (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x4d870466)) ^ uVar16) ^ uVar23;
  uVar10 = DAT_182671594;
  uVar22 = (ulonglong)DAT_182671594;
  uVar37 = CONCAT44(uVar5,uVar5);
  uVar39 = CONCAT44(uVar8,DAT_182671594);
  uVar16 = uVar36 ^ uVar16 ^ uVar29 ^ *(ulonglong *)(lVar2 + -0x898) ^
           *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar16;
  uVar27 = (uVar16 ^ uVar36) >> (((byte)uVar6 ^ 0xcf) & 0x3f);
  *(ulonglong *)(lVar2 + -0x240) = uVar27 ^ uVar37;
  uVar5 = DAT_182671748;
  *(undefined1 *)(lVar2 + -0x5e9) = **(undefined1 **)(lVar2 - (uVar22 ^ 0xee71e4f0));
  lVar2 = DAT_182671560;
  uVar22 = CONCAT44(uVar5,uVar5);
  uVar16 = *(ulonglong *)(DAT_182671560 - (uVar42 ^ 0x4b93f124));
  *(int *)(DAT_182671560 + -0x874) =
       *(int *)(DAT_182671560 + -0x968) << ((byte)*(undefined4 *)(DAT_182671560 + -0x754) & 0x1f);
  uVar11 = DAT_1826718b8;
  *(ulonglong *)(lVar2 + -0x670) = (uVar16 ^ uVar36) << (((byte)uVar10 ^ 0xd9) & 0x3f) ^ uVar22;
  uVar5 = DAT_1826715c8;
  uVar43 = CONCAT44(uVar11,uVar11);
  uVar27 = *(ulonglong *)(lVar2 - (uVar42 ^ 0x4b93f5f4)) ^ uVar22 | uVar27;
  *(ulonglong *)(lVar2 + -0x628) = uVar27 ^ uVar43;
  uVar36 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x4b93f90c)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x898)) - uVar27 ^ uVar36;
  uVar27 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar16 = (ulonglong)DAT_182671584;
  uVar22 = uVar27 ^ uVar23 ^ uVar45 ^ *(ulonglong *)(lVar2 + -0xbf0) ^
           *(ulonglong *)(lVar2 + -0x8a8);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar22;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(lVar2 - (uVar16 ^ 0x9aa19198)) | CONCAT44(uVar8,uVar8) ^ 0xc9be4c82a96b6ea5;
  uVar11 = DAT_182671698;
  lVar2 = DAT_182671560;
  uVar16 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0x1f31722)) ^ uVar27) >> ((bVar20 ^ 0x7e) & 0x3f);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar16 ^ CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar5 = DAT_1826715d0;
  uVar29 = (uVar22 ^ uVar27) << ((local_res20 ^ 0x6e) & 0x3f);
  *(ulonglong *)(lVar2 + -0x670) = uVar29 ^ CONCAT44(uVar11,uVar11);
  uVar10 = DAT_18267182c;
  uVar46 = CONCAT44(uVar5,uVar5);
  uVar27 = (ulonglong)DAT_18267182c;
  uVar22 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar16 = uVar16 | uVar29;
  uVar29 = uVar16 ^ uVar46;
  *(ulonglong *)(lVar2 + -0x898) = uVar29;
  *(ulonglong *)(lVar2 + -0x8a8) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x77e4e1a6)) ^ uVar23) - uVar16 ^ uVar22;
  lVar2 = DAT_182671560;
  uVar16 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x4d87066e)) =
       uVar16 ^ uVar46 ^ uVar36 ^ uVar29 ^ *(ulonglong *)(DAT_182671560 + -0xa88);
  puVar47 = (ulonglong *)(lVar2 - (uVar32 ^ 0x1f312ea));
  uVar29 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  *(ulonglong *)(lVar2 - (uVar44 ^ 0xea5676f4)) = (*puVar47 >> 0x20 ^ uVar27) >> 0x14 ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar44 ^ 0xea567134)) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x240)) >> (((byte)uVar8 ^ 0xc1) & 0x3f);
  uVar5 = _DAT_18267161c;
  uVar16 = (uVar16 ^ *(ulonglong *)(lVar2 + -0x318)) << 0xc;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar16 ^ CONCAT44(DAT_1826716c4,DAT_1826716c4);
  lVar3 = DAT_182671560;
  uVar45 = CONCAT44(uVar5,uVar5);
  uVar16 = uVar16 | uVar29 ^ *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0x670) = uVar16 ^ uVar45;
  uVar5 = DAT_18267179c;
  puVar19 = (ulonglong *)(lVar2 - (uVar44 ^ 0xea567d6c));
  uVar23 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar2 + -0xbf0) = (uVar36 ^ *puVar19) - uVar16 ^ uVar23;
  uVar13 = DAT_182671844;
  uVar37 = CONCAT44(uVar5,uVar5);
  bVar25 = (byte)DAT_182671584;
  puVar24 = (ulonglong *)(lVar2 - ((ulonglong)DAT_18267157c ^ 0xe3d29b70));
  uVar27 = CONCAT44(DAT_182671844,DAT_182671844);
  uVar16 = uVar22 ^ uVar43 ^ *puVar24 ^ *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x898) = uVar16 ^ uVar37;
  *puVar30 = uVar16 >> ((bVar25 ^ 0xb9) & 0x3f) ^ uVar27;
  puVar30 = (ulonglong *)(lVar2 - (uVar38 ^ 0x77e4ec86));
  *puVar30 = (uVar29 ^ *(ulonglong *)(lVar3 + -0x110)) << ((bVar20 ^ 0x62) & 0x3f);
  uVar16 = (*(ulonglong *)(lVar3 + -0x898) ^ uVar37) << ((bVar41 ^ 0x83) & 0x3f);
  uVar37 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar3 + -0x318) = uVar16 ^ CONCAT44(DAT_18267177c,DAT_18267177c);
  uVar27 = (*(ulonglong *)(lVar3 - (uVar42 ^ 0x4b93f1c4)) ^ uVar27 | uVar16) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar27;
  puVar40 = (ulonglong *)(lVar3 - (uVar21 ^ 0x4d8707d6));
  uVar36 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar16 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar3 + -0xa88) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x8a8)) - (*puVar40 ^ uVar37) ^ uVar36;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x628) = uVar16 << 0x3f ^ 0x8000000000000000;
  uVar22 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x4b93f554)) =
       *(ulonglong *)(lVar3 + -0xbf0) ^ uVar27 ^ uVar22 ^ uVar37 ^ uVar23;
  uVar27 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0x6d0)) >> ((bVar41 ^ 0x8a) & 0x3f) ^ uVar27;
  uVar11 = DAT_182671760;
  uVar5 = DAT_18267158c;
  *(longlong *)(lVar2 + -0x898) =
       -0x2f0aab3d044b651c << ((*(byte *)(lVar2 + -0x240) ^ (byte)uVar13) & 0x3f);
  uVar16 = CONCAT44(uVar11,uVar11);
  *puVar47 = (*puVar30 ^ uVar22) << (((byte)uVar5 ^ 0x66) & 0x3f) ^ uVar16;
  uVar11 = DAT_1826717e8;
  lVar2 = DAT_182671560;
  *puVar24 = (*(ulonglong *)(DAT_182671560 + -0x110) ^ uVar27 |
             *(ulonglong *)(DAT_182671560 + -0x318) ^ uVar16) ^ uVar29;
  uVar5 = DAT_1826715e4;
  uVar8 = DAT_182671584;
  uVar29 = uVar29 ^ *(ulonglong *)(lVar2 + -0x8a8);
  uVar16 = (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar23) -
           (CONCAT44(uVar33,uVar26) ^ 0xcaabfe29cf5883b6);
  *(ulonglong *)(lVar2 + -0x628) = uVar16 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671630;
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar16 - uVar29 ^ uVar37;
  uVar27 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x240) = uVar29 - (CONCAT44(uVar33,uVar33) ^ 0x155914a9104b2e2c) ^ uVar27;
  uVar22 = uVar45 ^ uVar34 ^ *(ulonglong *)(lVar2 + -0xa88) ^ uVar36 ^ *puVar18;
  uVar23 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar29 >> ((*(byte *)(lVar2 + -0x2a0) ^ (byte)uVar5) & 0x3f);
  uVar10 = DAT_182671594;
  uVar16 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 + -0x898) = uVar22;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0xee71ece0)) =
       (uVar34 ^ uVar22) >> (((byte)uVar8 ^ 0x90) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x318) =
       CONCAT44(uVar6,uVar10) ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar37 ^ 0xe906dc2547decae9;
  uVar16 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x898)) << (((byte)uVar8 ^ 0xb0) & 0x3f) ^ uVar16;
  uVar5 = DAT_182671708;
  lVar3 = DAT_182671560;
  uVar22 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar16 = *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xee71e600)) ^ uVar16 |
           *(ulonglong *)(lVar2 + -0x110) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x628) = uVar16 ^ uVar22;
  uVar13 = DAT_1826715b0;
  uVar29 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x670) =
       (*(ulonglong *)(lVar3 + -0xa88) ^ uVar36) - (CONCAT44(uVar7,uVar4) ^ 0x5f7804bb344420e0) ^
       uVar29;
  *(ulonglong *)(lVar3 + -0x8a8) =
       (*puVar17 ^ uVar29) - (*(ulonglong *)(lVar3 - (uVar42 ^ 0x4b93f5ac)) ^ uVar22) ^ uVar46;
  uVar5 = DAT_18267178c;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar16 - (CONCAT44(uVar26,uVar26) ^ 0x361621d8fd15b883) ^ uVar28;
  uVar16 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x570) ^ uVar16) = uVar35 ^ *puVar40 ^ uVar37;
  lVar2 = DAT_182671560;
  puVar17 = (ulonglong *)((*(ulonglong *)(lVar3 + -0x570) ^ uVar16) + 8);
  *(ulonglong *)(lVar3 + -0x70) = (ulonglong)puVar17 ^ CONCAT44(DAT_18267164c,DAT_18267164c);
  *puVar17 = *(ulonglong *)(lVar2 - (uVar38 ^ 0x77e4e816)) ^ uVar35 ^ uVar27;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0xee71eee8)) =
       CONCAT44(uVar33,uVar13) ^ 0x154e4cf5ae199cac |
       CONCAT44(uVar6,DAT_182671584) ^ 0xb29e54ec26205d94;
  puVar17 = (ulonglong *)
            ((*(ulonglong *)(lVar2 + -0x570) ^ uVar16) +
            (CONCAT44(uVar6,uVar4) ^ 0xe3d293d84d870574) * 8);
  *(ulonglong *)(lVar2 + -0x68) = (ulonglong)puVar17 ^ CONCAT44(DAT_182671710,DAT_182671710);
  *puVar17 = uVar46 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x8a8);
  puVar17 = (ulonglong *)
            ((*(ulonglong *)(lVar2 + -0x570) ^ uVar16) +
            (CONCAT44(uVar9,uVar12) ^ 0xee71edf077e4ea55) * 8);
  *(ulonglong *)(lVar2 + -0x6a0) = (ulonglong)puVar17 ^ CONCAT44(DAT_18267183c,DAT_18267183c);
  *puVar17 = uVar35 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x6d0);
  uVar5 = DAT_182671870;
  uVar27 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  puVar17 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar42 ^ 0x4b93f81c)) +
            ((CONCAT44(uVar6,uVar33) ^ 0xe3d293d8ea5677e4) +
            (CONCAT44(uVar26,uVar33) ^ 0x4b93f384ea5677e4) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0xd60) = (ulonglong)puVar17 ^ uVar27;
  uVar11 = DAT_182671598;
  lVar3 = DAT_182671560;
  uVar22 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x1f3196a)) = *puVar17 ^ uVar35 ^ uVar22;
  uVar5 = DAT_1826716dc;
  *puVar31 = (uVar46 ^ *(ulonglong *)(lVar2 + -0x8a8)) << ((bVar20 ^ 0x7b) & 0x3f);
  uVar7 = DAT_182671594;
  uVar16 = CONCAT44(uVar11,uVar4) ^ 0x6ad8a86c4d870576;
  uVar23 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar3 + -0xbf0) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x4b93fb1c)) ^ uVar22) >> ((byte)uVar16 & 0x3f) ^
       CONCAT44(uVar5,uVar5);
  bVar20 = (byte)DAT_1826717c0 ^ (byte)DAT_18267176c;
  bVar25 = *(byte *)(lVar3 - (uVar21 ^ 0x4d870e86)) ^ (byte)uVar5 ^ (byte)DAT_18267176c;
  *(byte *)(lVar3 + -0x209) = bVar25;
  uVar8 = DAT_1826717d8;
  uVar32 = (ulonglong)DAT_1826717d8;
  *(ulonglong *)(lVar3 + -0x4e0) = *(longlong *)(lVar3 + -3000) + uVar16 ^ uVar32;
  uVar16 = CONCAT44(DAT_182671800,DAT_182671800);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0xee71e910)) ^ uVar32) = bVar20 ^ bVar25;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x4b93f2ac)) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar6,uVar26) ^ 0xe3d293d84b93f384) +
       (CONCAT44(uVar26,uVar7) ^ 0x4b93f384ee71edf0) * 0xc) * 8 ^ uVar16;
  *puVar19 = (uVar46 ^ *(ulonglong *)(lVar3 + -0x8a8)) - (uVar39 ^ 0xe6a9bbfe34655ed7);
  uVar32 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x128) ^ uVar16) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x628) = uVar32 ^ CONCAT44(DAT_182671810,DAT_182671810);
  uVar16 = (ulonglong)DAT_182671580;
  bVar20 = (byte)DAT_1826715b8 ^ (byte)DAT_182671684;
  uVar21 = (ulonglong)DAT_182671778;
  *(ulonglong *)(lVar3 + -0x318) =
       uVar32 >> (((byte)uVar6 ^ 0xd0) & 0x3f) ^ CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xeffefeee)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0xd60) ^ uVar27) ^ uVar35;
  uVar16 = (ulonglong)DAT_182671594;
  *(byte *)(lVar3 + -0x5e9) = bVar20 ^ *(byte *)(lVar3 + -0x318);
  uVar32 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x4b93f2f4)) =
       *(longlong *)(lVar3 - (uVar16 ^ 0xee71e648)) +
       (CONCAT44(uVar26,DAT_1826715a8) ^ 0x4b93f3849057f477) ^ uVar21;
  uVar5 = DAT_182671570;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar32 ^ 0x9aa193f0)) ^ uVar21) =
       *(byte *)(lVar3 + -0x5e9) ^ (byte)DAT_182671684 ^ (byte)DAT_1826717c0;
  uVar14 = _DAT_182671618;
  *(ulonglong *)(lVar3 + -0x898) =
       CONCAT44(DAT_1826715a0,uVar5) ^ 0x327280387cfa3239 | uVar29 ^ *(ulonglong *)(lVar3 + -0x670);
  puVar17 = (ulonglong *)
            ((CONCAT44(uVar12,uVar4) ^ 0x77e4ea564d870576) * 0x60 + *(longlong *)(lVar3 + -0xb98));
  uVar32 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar3 + -0x690) = (ulonglong)puVar17 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xbf0) = *puVar17 ^ uVar35 ^ uVar32;
  *(ulonglong *)(lVar3 + -0xa88) =
       (CONCAT44(uVar4,uVar33) ^ 0x9df9d79ea80fefbb) >> (((byte)DAT_1826715a4 ^ 0x73) & 0x3f);
  uVar16 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar32) >> (((byte)uVar11 ^ 0x7c) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  uVar32 = (ulonglong)DAT_1826716e0;
  *(byte *)(lVar3 + -0x642) =
       *(byte *)(lVar3 - (uVar16 ^ 0x7780a078)) ^ (byte)uVar14 ^ (byte)DAT_182671680;
  uVar27 = CONCAT44(uVar13,DAT_18267159c);
  lVar2 = *(longlong *)(lVar3 + -3000);
  uVar16 = (ulonglong)DAT_182671578;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar33;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xfc02e422)) = (uVar27 ^ 0x2b4ce65c8d0e7b92) + lVar2 ^ uVar32;
  return;
}



############ FUN_ 180eb6540 size=5597 ############

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

void FUN_180eb6540(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  undefined8 *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  uint uVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  byte bVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong *puVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  uint uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong *puVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_b8;
  
  uVar19 = DAT_1826716f8;
  uVar17 = DAT_1826715ac;
  uVar16 = DAT_1826715a8;
  uVar15 = DAT_1826715a4;
  uVar13 = DAT_18267158c;
  lVar9 = DAT_182671560;
  uVar45 = (ulonglong)DAT_1826715ac;
  uVar32 = (ulonglong)DAT_18267158c;
  uVar29 = (ulonglong)DAT_1826715a8;
  uVar40 = (ulonglong)DAT_1826715a4;
  uVar26 = DAT_1826715ac | DAT_1826715a8;
  uVar37 = DAT_18267158c & DAT_1826715a4;
  uVar8 = *(uint *)(&DAT_182611e78 + DAT_182671bc8);
  uVar21 = *(uint *)(&DAT_182611e80 + DAT_182671bc8) ^ DAT_1826715ac;
  uVar31 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  DAT_18267156c = uVar26;
  DAT_182671588 = uVar37;
  *(ulonglong *)(DAT_182671560 + -0x240) =
       (CONCAT44(DAT_1826715a8,DAT_1826715a4) ^ 0x5f0dc04a86d96e67) >>
       ((*(byte *)(DAT_182671560 + -0x510) ^ (byte)DAT_1826718b8) & 0x3f);
  uVar18 = DAT_182671694;
  uVar41 = CONCAT44(uVar19,uVar19);
  bVar28 = (byte)uVar15;
  uVar25 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar13 ^ 0xe20c0780)) ^
           CONCAT44(DAT_1826718d4,DAT_1826718d4)) << ((bVar28 ^ 0x7c) & 0x3f);
  uVar33 = CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(lVar9 + -0x80) = uVar25 ^ uVar41;
  uVar19 = DAT_1826717e0;
  puVar38 = (ulonglong *)(lVar9 - ((ulonglong)uVar37 ^ 0xe2080d80));
  *puVar38 = uVar25 << ((*(byte *)(lVar9 - ((ulonglong)uVar16 ^ 0x96bf358e)) ^ (byte)uVar18) & 0x3f)
  ;
  uVar20 = DAT_182671884;
  uVar39 = CONCAT44(uVar19,uVar19);
  puVar1 = (ulonglong *)(lVar9 + -0xa88);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar17 ^ 0x97bfb567)) =
       (uVar33 ^ *(ulonglong *)(lVar9 + -0xa60) | uVar41 ^ *(ulonglong *)(lVar9 + -0x80)) ^ uVar39;
  uVar18 = DAT_1826715b8;
  uVar51 = CONCAT44(DAT_18267174c,DAT_18267174c);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x628);
  *puVar2 = (CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(DAT_182671560 + -0x600)) - (*puVar1 ^ uVar39)
            ^ uVar51;
  lVar9 = DAT_182671560;
  uVar25 = (ulonglong)_DAT_18267188c;
  uVar46 = CONCAT44(uVar18,uVar18);
  uVar33 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar13 ^ 0xe20c0d58)) =
       *puVar1 ^ uVar46 ^ uVar33 ^ uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x1d8);
  uVar18 = DAT_1826716cc;
  uVar39 = (ulonglong)uVar26;
  uVar41 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar9 + -0x670) =
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar37 ^ 0xe2080dd8)) >> 0x20 ^ uVar25) >> 0x1a ^ uVar41;
  uVar25 = CONCAT44(uVar18,uVar18);
  puVar27 = (ulonglong *)(DAT_182671560 + -0x110);
  *puVar27 = (uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) << ((bVar28 ^ 0x5a) & 0x3f) ^ uVar25;
  uVar18 = DAT_18267160c;
  bVar22 = (byte)uVar26;
  puVar42 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x96bf37ee));
  *puVar42 = (uVar46 ^ *(ulonglong *)(DAT_182671560 + -0x1d8)) >> ((bVar22 ^ 0xec) & 0x3f);
  uVar11 = DAT_182671598;
  lVar9 = DAT_182671560;
  uVar33 = CONCAT44(uVar18,uVar18);
  puVar3 = (ulonglong *)(DAT_182671560 + -0x1d8);
  puVar4 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *puVar4 = (*(ulonglong *)(DAT_182671560 + -0x670) ^ uVar41 | uVar25 ^ *puVar27) ^ uVar33;
  uVar23 = DAT_1826718bc;
  uVar41 = CONCAT44(DAT_18267181c,DAT_18267181c);
  uVar25 = (ulonglong)DAT_1826718bc;
  puVar43 = (ulonglong *)(lVar9 + -0x898);
  *(ulonglong *)(lVar9 - (uVar40 ^ 0xfed97c44)) =
       (uVar46 ^ *puVar3) - (*(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x5e6f7421)) ^ uVar33) ^
       uVar41;
  *puVar43 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x5e6f7999)) ^
             CONCAT44(uVar23,uVar23) ^ *puVar2 ^ uVar51 ^ uVar31;
  uVar12 = DAT_182671574;
  lVar9 = DAT_182671560;
  puVar44 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x96bf3776));
  uVar31 = CONCAT44(DAT_182671678,DAT_182671678);
  puVar5 = (undefined8 *)(DAT_182671560 + -0x5b8);
  uVar50 = (ulonglong)DAT_182671574;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       ((ulonglong)(uVar23 >> 0x16) | uVar25 << 10) ^ *puVar44 >> 0x16 ^ uVar31;
  *(undefined1 *)(lVar9 - ((ulonglong)uVar16 ^ 0x96bf3a07)) = *(undefined1 *)*puVar5;
  uVar18 = DAT_1826717c8;
  puVar3 = (ulonglong *)(lVar9 + -0xbf0);
  uVar25 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar13 ^ 0xe20c0310)) ^ CONCAT44(uVar23,uVar23)) <<
           (((byte)uVar37 ^ 0x22) & 0x3f);
  *puVar3 = uVar25 ^ CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar46 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar9 + -0x240) =
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar16 ^ 0x96bf3d4e)) ^ uVar31 | uVar25) ^ uVar46;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671580 ^ 0x2ad8d581)) =
       CONCAT44(uVar13,uVar17) ^ 0x3e9656379ab0fc27 | CONCAT44(uVar12,uVar16) ^ 0xc90b66a711ff7ef1;
  puVar6 = (ulonglong *)(lVar9 + -0x688);
  uVar30 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *puVar6 = (*puVar2 ^ uVar51) - (*(ulonglong *)(lVar9 - (uVar39 ^ 0x97bfbdaf)) ^ uVar46) ^ uVar30;
  uVar31 = (ulonglong)_DAT_1826716c0;
  uVar34 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar47 = CONCAT44(DAT_182671658,DAT_182671658);
  uVar25 = (ulonglong)DAT_182671598;
  uVar51 = *(ulonglong *)(lVar9 - (uVar40 ^ 0xfed97d1c)) ^ *(ulonglong *)(lVar9 + -0x318) ^ uVar34 ^
           uVar46 ^ uVar41;
  *(ulonglong *)(lVar9 + -0xa60) = uVar51;
  lVar10 = DAT_182671560;
  uVar35 = (uVar34 ^ uVar51) << (((byte)DAT_182671588 ^ 0x1a) & 0x3f);
  uVar31 = (*(ulonglong *)(lVar9 - (uVar25 ^ 0x5e6f76e9)) >> 0x20 ^ uVar31) >> 0xe;
  *(ulonglong *)(DAT_182671560 + -0x600) =
       CONCAT44(uVar26,uVar26) ^ 0x212eb31a715e1973 |
       uVar46 ^ *(ulonglong *)(DAT_182671560 + -0x240);
  uVar11 = DAT_182671580;
  uVar25 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar10 + -0x80) = uVar31 ^ uVar47;
  lVar9 = DAT_182671560;
  *puVar1 = uVar35 ^ CONCAT44(DAT_182671850,DAT_182671850);
  *(uint *)(DAT_182671560 + -0x374) = (uVar12 ^ 0x8e2ee4) - *(int *)(DAT_182671560 + -0x774);
  uVar51 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar9 - (uVar25 ^ 0x2ad8df59)) = (uVar35 | uVar31) ^ uVar51;
  *(int *)(lVar9 + -0x678) = *(int *)(lVar9 + -0x3d4) + *(int *)(lVar9 + -0x274);
  puVar7 = (ulonglong *)(lVar9 + -0x800);
  uVar25 = *(ulonglong *)(lVar9 + -0x6d0);
  uVar46 = CONCAT44(DAT_182671670,DAT_182671670);
  *puVar7 = (*(ulonglong *)(lVar9 + -0x318) ^ uVar41) - (uVar51 ^ *(ulonglong *)(lVar9 + -0x6d0)) ^
            uVar46;
  *(ulonglong *)(lVar9 + -0x670) =
       *(longlong *)(lVar9 + -0xc08) - (CONCAT44(uVar12,uVar26) ^ 0x963fed3049e70e76);
  uVar19 = DAT_182671888;
  uVar31 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar33 = *(ulonglong *)(lVar9 - (uVar29 ^ 0x96bf3746)) ^ *puVar6 ^ uVar31 ^ uVar30 ^ uVar33;
  *puVar27 = uVar33;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671598 ^ 0x5e6f7d51)) =
       (uVar51 ^ uVar25) >> (((byte)uVar33 ^ (byte)uVar19) & 0x3f);
  lVar9 = DAT_182671560;
  uVar33 = CONCAT44(DAT_182671698,DAT_182671698);
  puVar24 = (ulonglong *)(DAT_182671560 - (uVar50 ^ 0x3396a8f0));
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (*(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xfed97e4c)) ^ uVar31) >>
       (((byte)uVar16 ^ 0xe2) & 0x3f) ^ uVar33;
  puVar36 = (ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x2ad8dc99));
  *puVar43 = (uVar33 ^ *puVar36) >> (((byte)*puVar24 ^ (byte)uVar18) & 0x3f);
  lVar9 = DAT_182671560;
  uVar25 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x97bfbd4f)) = (uVar31 ^ *puVar27) << 0x34 ^ uVar25;
  uVar35 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  uVar33 = uVar25 ^ *(ulonglong *)(lVar9 + -0x2a0) | *(ulonglong *)(lVar9 + -0x510) ^ uVar33;
  uVar25 = *puVar6;
  *puVar2 = uVar33 ^ uVar35;
  uVar23 = DAT_182671588;
  uVar31 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671588 ^ 0xe2080948)) =
       (uVar25 ^ uVar30) - uVar33 ^ uVar31;
  lVar9 = DAT_182671560;
  uVar33 = 0x894eeecd821f1d31 - (*puVar6 ^ uVar30);
  uVar25 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar33;
  uVar35 = uVar25 ^ uVar35 ^ uVar46 ^ *puVar2 ^ *puVar7;
  uVar30 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar9 + -0xa60) = uVar35;
  uVar35 = uVar35 ^ uVar25;
  *(ulonglong *)(lVar9 + -0x80) = uVar35 >> (((byte)uVar16 ^ 0xf7) & 0x3f) ^ uVar30;
  *puVar1 = CONCAT44(uVar13,uVar12) ^ uVar33 ^ 0xa7d36d41ba475080;
  uVar14 = DAT_182671598;
  uVar25 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar23 ^ 0xe2080810)) =
       uVar35 << ((bVar22 ^ 200) & 0x3f) ^ uVar25;
  uVar33 = uVar25 ^ *(ulonglong *)(lVar9 + -0x318) | uVar30 ^ *(ulonglong *)(lVar9 + -0x80);
  uVar30 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar25 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar9 + -0xc08) = uVar33 ^ uVar30;
  uVar18 = DAT_182671734;
  uVar46 = (uVar46 ^ *puVar7) - (CONCAT44(uVar15,uVar11) ^ 0x835cad009c5e928e);
  *(ulonglong *)(lVar9 + -0x670) = uVar46 ^ uVar25;
  uVar52 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar9 - (uVar40 ^ 0xfed977f4)) = uVar46 - uVar33 ^ uVar52;
  uVar18 = DAT_182671828;
  uVar49 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(lVar9 + -0x1d8) =
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar14 ^ 0x5e6f7081)) ^ uVar30) -
       (CONCAT44(uVar15,uVar17) ^ 0x396ecde72e20da7c) ^ uVar49;
  uVar33 = CONCAT44(uVar18,uVar18);
  uVar25 = *(ulonglong *)(lVar9 - (uVar32 ^ 0xe20c09c8)) ^ uVar33 ^ uVar31 ^ uVar51 ^
           *(ulonglong *)(lVar9 + -0x6d0);
  *puVar3 = uVar25;
  uVar46 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *puVar43 = (uVar25 ^ uVar33) >> (((byte)uVar11 ^ 0xa8) & 0x3f) ^ uVar46;
  uVar33 = (*(ulonglong *)(lVar9 - (uVar32 ^ 0xe20c0078)) ^ uVar33) <<
           (((byte)uVar12 ^ 0x1f) & 0x3f);
  uVar25 = (ulonglong)DAT_182671588;
  *puVar27 = uVar33 ^ CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar30 = CONCAT44(DAT_182671870,DAT_182671870);
  uVar33 = *(ulonglong *)(lVar9 - (uVar25 ^ 0xe2080390)) ^ uVar46 | uVar33;
  uVar46 = CONCAT44(DAT_182671800,DAT_182671800);
  *(ulonglong *)(lVar9 + -0x510) = uVar33 ^ uVar30;
  uVar25 = (uVar31 ^ *(ulonglong *)(lVar9 + -0x240)) -
           (CONCAT44(uVar37,uVar16) ^ 0xa58b4fd6222377e3);
  *(ulonglong *)(lVar9 + -0x2a0) = uVar25 ^ uVar46;
  *puVar6 = (CONCAT44(uVar12,uVar17) ^ 0xaf5c45552c62f340) >>
            ((byte)*(undefined8 *)(lVar9 - (uVar39 ^ 0x97bfb9ef)) & 0x3f);
  uVar46 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *puVar2 = uVar25 - uVar33 ^ uVar46;
  uVar25 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  *puVar1 = (*(ulonglong *)(lVar9 - (uVar39 ^ 0x97bfbaff)) ^ uVar30) +
            (CONCAT44(uVar14,uVar26) ^ 0xe5dbe4bc33ada130) ^ uVar25;
  uVar33 = CONCAT44(DAT_182671788,DAT_182671788);
  uVar47 = CONCAT44(DAT_182671688,DAT_182671688);
  uVar25 = *(ulonglong *)(lVar9 - (uVar50 ^ 0x3396a988)) ^ uVar33 ^ uVar25 ^ uVar52 ^ *puVar4;
  *(ulonglong *)(lVar9 + -0xa60) = uVar25;
  *(ulonglong *)(lVar9 + -0x80) = (uVar25 ^ uVar33) >> ((bVar28 ^ 0x59) & 0x3f) ^ uVar47;
  *(ulonglong *)(lVar9 + -0x318) = CONCAT44(uVar16,uVar12) ^ 0x1001051006802 | 0xe59a6f4f8afd07bd;
  uVar48 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  local_b8 = (byte)uVar17;
  *(ulonglong *)(lVar9 - (uVar45 ^ 0x97bfb7ef)) =
       (*(ulonglong *)(lVar9 - (uVar40 ^ 0xfed9753c)) ^ uVar33) << 0x3b ^ uVar48;
  uVar30 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar33 = uVar48 ^ *puVar7 | uVar47 ^ *(ulonglong *)(lVar9 + -0x80);
  *(ulonglong *)(lVar9 + -0x670) = uVar33 ^ uVar30;
  uVar25 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar9 - (uVar39 ^ 0x97bfb3e7)) = uVar33 << ((local_b8 ^ 0xde) & 0x3f);
  uVar35 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0x5e6f7a59)) =
       (uVar52 ^ *puVar4) - (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xe2080d78)) ^ uVar30) ^
       uVar35;
  lVar9 = DAT_182671560;
  uVar40 = CONCAT44(DAT_182671864,DAT_182671864);
  uVar33 = *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xe20c0da0)) ^ uVar40 ^ uVar46 ^ uVar49 ^
           *(ulonglong *)(DAT_182671560 + -0x1d8);
  *puVar3 = uVar33;
  uVar51 = CONCAT44(DAT_182671770,DAT_182671770);
  *puVar43 = (uVar40 ^ *puVar24) >> (((byte)uVar37 ^ 0x2d) & 0x3f) ^ uVar51;
  uVar18 = DAT_182671854;
  uVar25 = CONCAT44(DAT_182671854,DAT_182671854);
  uVar33 = (uVar40 ^ uVar33) << ((local_b8 ^ 0xf4) & 0x3f) ^ uVar25;
  *puVar27 = uVar33;
  uVar19 = DAT_1826718c0;
  *(ulonglong *)(lVar9 + -0x240) =
       (CONCAT44(uVar14,uVar17) ^ 0x89a3afaaa813111b) >> (((byte)uVar33 ^ (byte)uVar18) & 0x3f);
  uVar11 = DAT_182671590;
  uVar40 = CONCAT44(uVar19,uVar19);
  uVar33 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar9 - (uVar50 ^ 0x3396a500)) =
       (*(ulonglong *)(lVar9 - (uVar39 ^ 0x97bfbeff)) ^ uVar25 | uVar51 ^ *puVar44) ^ uVar40;
  *puVar6 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x8577adbe)) ^ uVar46) -
            (*(ulonglong *)(lVar9 + -0x600) ^ uVar40) ^ uVar41;
  uVar25 = (ulonglong)DAT_182671588;
  uVar39 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar9 + -0x2a0) =
       uVar35 ^ *(ulonglong *)(lVar9 + -0x6d0) ^ *(ulonglong *)(lVar9 + -0x600) ^ uVar39 ^ uVar40;
  *(undefined1 *)(lVar9 - (uVar33 ^ 0x2ad8db80)) = **(undefined1 **)(lVar9 + -0x170);
  uVar33 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(lVar9 + -0x510) =
       (*(ulonglong *)(lVar9 - (uVar25 ^ 0xe20809a8)) ^ uVar39) >>
       (((byte)DAT_1826715a0 ^ 0xb4) & 0x3f) ^ uVar47;
  uVar25 = *(ulonglong *)(lVar9 + -0x6d0);
  uVar39 = (uVar39 ^ *(ulonglong *)(lVar9 + -0x2a0)) << 0x29;
  *puVar1 = uVar39 ^ uVar33;
  uVar18 = DAT_182671804;
  uVar33 = *puVar6;
  uVar40 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar39 = uVar47 ^ *puVar36 | uVar39;
  *(ulonglong *)(lVar9 + -0x318) = uVar39 ^ uVar40;
  uVar14 = DAT_1826715a0;
  uVar46 = (ulonglong)DAT_1826715a0;
  uVar50 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar9 + -0xa60) = (uVar35 ^ uVar25) - uVar39 ^ uVar50;
  *(ulonglong *)(lVar9 - (uVar46 ^ 0x1200023)) =
       uVar30 ^ uVar48 ^ uVar33 ^ *(ulonglong *)(lVar9 + -0x670) ^ uVar41;
  *puVar7 = 0xb440000000000000;
  uVar39 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar25 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar9 + -0xc08) =
       (uVar48 ^ *(ulonglong *)(lVar9 + -0x80)) >> ((bVar22 ^ 199) & 0x3f) ^ uVar39;
  uVar33 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *puVar4 = (uVar48 ^ *(ulonglong *)(lVar9 + -0x80)) << 0x18 ^ uVar33;
  uVar18 = DAT_1826716f0;
  *(undefined8 *)(lVar9 + -0x1d8) = *(undefined8 *)(lVar9 - (uVar25 ^ 0x5e6f7489));
  lVar10 = DAT_182671560;
  uVar30 = CONCAT44(uVar18,uVar18);
  uVar25 = *(ulonglong *)(lVar9 - (uVar45 ^ 0x97bfb747)) ^ uVar33 |
           *(ulonglong *)(lVar9 - (uVar29 ^ 0x96bf33e6)) ^ uVar39;
  uVar33 = uVar25 ^ uVar30;
  *puVar3 = uVar33;
  uVar29 = CONCAT44(DAT_182671834,DAT_182671834);
  uVar41 = (*puVar6 ^ uVar41) - uVar25 ^ uVar29;
  *(ulonglong *)(lVar10 + -0x240) = uVar41;
  *puVar43 = uVar25 ^ 0x807e1d351a6ac9e1;
  uVar17 = DAT_1826715b0;
  uVar46 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar23 = DAT_182671588 ^ 0x2d54e27b;
  uVar25 = *(ulonglong *)(lVar10 - ((ulonglong)uVar11 ^ 0x8577a1f6)) ^ uVar33 ^ uVar46 ^ uVar30 ^
           uVar50;
  *puVar27 = uVar25;
  *(uint *)(lVar10 + -0x844) = uVar17 ^ 0x12ec8ed4 | uVar23;
  uVar11 = DAT_182671570;
  uVar30 = (ulonglong)DAT_182671570;
  uVar39 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar33 = (uVar25 ^ uVar46) << 0xc;
  *puVar2 = (uVar25 ^ uVar46) >> ((bVar22 ^ 0xdb) & 0x3f) ^ uVar39;
  uVar46 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar10 + -0x600) = uVar33 ^ CONCAT44(DAT_182671600,DAT_182671600);
  uVar18 = DAT_1826716d4;
  *(ulonglong *)(lVar10 + -0x2a0) =
       (*(ulonglong *)(lVar10 - (uVar30 ^ 0x880b0aca)) ^ uVar39 | uVar33) ^ uVar46;
  lVar9 = DAT_182671560;
  uVar39 = CONCAT44(uVar18,uVar18);
  uVar33 = (ulonglong)DAT_182671584;
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar40) << ((bVar22 ^ 0xfb) & 0x3f);
  uVar19 = DAT_182671830;
  uVar23 = DAT_182671590;
  uVar25 = *(ulonglong *)(lVar9 + -0x318);
  *puVar1 = (*(ulonglong *)(lVar9 - (uVar30 ^ 0x880b0682)) ^ uVar50) -
            (*(ulonglong *)(lVar9 - (uVar33 ^ 0x39ef28ff)) ^ uVar46) ^ uVar39;
  uVar18 = DAT_182671798;
  uVar46 = CONCAT44(uVar19,uVar19);
  uVar40 = uVar25 ^ uVar41 ^ uVar46 ^ uVar29 ^ uVar40;
  uVar33 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar9 + -0x6d0) = uVar40;
  uVar25 = (uVar40 ^ uVar46) >> ((bVar28 ^ 0x65) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar9 + -0x670) = uVar25;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar17 ^ 0x81008180)) =
       (CONCAT44(uVar12,uVar23) ^ 0x91643de242d37ace) >> (((byte)uVar25 ^ (byte)uVar18) & 0x3f);
  uVar25 = (*(ulonglong *)(lVar9 + -0x6d0) ^ uVar46) << (((byte)uVar23 ^ 0x91) & 0x3f);
  *(ulonglong *)(lVar9 + -0x1d8) = uVar25 ^ uVar34;
  uVar18 = DAT_1826715c0;
  *puVar42 = (*(ulonglong *)(lVar9 - ((ulonglong)DAT_182671598 ^ 0x5e6f7af9)) ^ uVar33 | uVar25) ^
             uVar31;
  uVar33 = CONCAT44(uVar16,DAT_182671594);
  *(ulonglong *)(lVar9 - (uVar45 ^ 0x97bfb3e7)) =
       (*(ulonglong *)(lVar9 - (uVar45 ^ 0x97bfbdaf)) ^ uVar29) -
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar14 ^ 0x12008a3)) ^ uVar31) ^ CONCAT44(uVar18,uVar18);
  uVar25 = *puVar1;
  *puVar4 = (uVar33 ^ 0xe1f411564a046c1e) + (CONCAT44(uVar13,uVar12) ^ 0x71bce4ff404266b9);
  uVar33 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *puVar38 = uVar31 ^ uVar25 ^ *puVar7 ^ uVar33 ^ uVar39;
  uVar33 = *puVar6 ^ uVar33;
  uVar31 = uVar33 << 0x32;
  uVar33 = uVar33 >> (((byte)DAT_1826715b4 ^ 0xe) & 0x3f);
  *puVar43 = uVar33 ^ CONCAT44(DAT_182671700,DAT_182671700);
  *puVar3 = uVar31 ^ CONCAT44(DAT_1826717b8,DAT_1826717b8);
  uVar25 = *puVar1;
  uVar29 = CONCAT44(DAT_182671630,DAT_182671630);
  *puVar27 = (uVar31 | uVar33) ^ CONCAT44(_DAT_182671868,_DAT_182671868);
  *puVar2 = (uVar25 ^ uVar39) - (CONCAT44(uVar11,uVar15) ^ 0xa198594a391a097b) ^ uVar29;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar21 * 4) = uVar8 ^ uVar26;
  return;
}



############ FUN_ 180efee10 size=5714 ############

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

void FUN_180efee10(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  longlong lVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  uint uVar39;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar40;
  
  uVar11 = DAT_1826715b0;
  uVar9 = DAT_1826715a4;
  uVar8 = DAT_18267159c;
  uVar7 = DAT_182671590;
  uVar6 = DAT_182671588;
  lVar4 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671588;
  uVar20 = (ulonglong)DAT_182671590;
  uVar14 = DAT_182671588 | DAT_182671590;
  uVar35 = (ulonglong)DAT_1826715b0;
  uVar32 = (ulonglong)DAT_18267159c;
  uVar34 = (ulonglong)DAT_1826715a4;
  uVar25 = *(uint *)(&DAT_182611e78 + DAT_1826719b4) ^ DAT_182671590;
  uVar39 = DAT_1826715b0 * DAT_1826715a4;
  uVar40 = (ulonglong)uVar39;
  uVar28 = DAT_18267159c << 0x10 | DAT_18267159c >> 0x10;
  uVar15 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar14 ^ 0xffff7f4e) + (longlong)DAT_1826719b4) ^
           DAT_182671588;
  uVar26 = CONCAT44(DAT_182671648,DAT_182671648);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x6d0);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x80);
  uVar19 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar17 = (ulonglong)DAT_1826715a4;
  DAT_18267156c = uVar14;
  DAT_182671584 = uVar39;
  DAT_182671594 = uVar28;
  *(ulonglong *)(DAT_182671560 + -0x240) =
       CONCAT44(DAT_182671628,DAT_182671628) ^ *puVar2 ^ *puVar1 ^ uVar19 ^ uVar26;
  puVar18 = (ulonglong *)(lVar4 - (uVar17 ^ 0xfed97d1c));
  bVar16 = (byte)uVar11;
  uVar22 = (*puVar18 ^ uVar26) >> ((bVar16 ^ 9) & 0x3f);
  uVar42 = CONCAT44(DAT_182671740,DAT_182671740);
  uVar43 = (ulonglong)uVar28;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar22 ^ uVar42;
  lVar4 = DAT_182671560;
  bVar38 = (byte)uVar39;
  uVar29 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0xd900a349)) ^ uVar26) <<
           ((bVar38 ^ 0xe7) & 0x3f);
  uVar27 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar29 ^ CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar10 = DAT_18267181c;
  uVar22 = uVar29 | uVar22;
  *(ulonglong *)(lVar4 + -0xa88) = uVar22 ^ uVar27;
  uVar12 = DAT_1826718b4;
  lVar4 = DAT_182671560;
  uVar26 = CONCAT44(uVar10,uVar10);
  uVar17 = (*puVar1 ^ uVar19) - (CONCAT44(uVar11,uVar7) ^ 0x2f94c5b8527c536d);
  *(ulonglong *)(DAT_182671560 + -0xc08) = uVar17 ^ uVar26;
  uVar5 = DAT_182671850;
  uVar41 = CONCAT44(uVar12,uVar12);
  uVar37 = (ulonglong)DAT_182671850;
  *(ulonglong *)(lVar4 + -0x800) = uVar17 - uVar22 ^ uVar41;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xffff7e86)) =
       CONCAT44(uVar6,uVar11) ^ 0x25966473f4432969 | uVar29;
  uVar12 = DAT_1826716cc;
  uVar10 = DAT_1826716b4;
  uVar19 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar4 + -0x2a0) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0xa88)) - (CONCAT44(uVar28,uVar14) ^ 0x7d0b2c6419a85dbc) ^
       uVar19;
  uVar23 = CONCAT44(uVar5,uVar5);
  uVar27 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x60798b8)) =
       CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar4 + -0xbf0) ^ *(ulonglong *)(lVar4 + -0x628) ^
       uVar27 ^ uVar23;
  uVar22 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xa109da18)) =
       (*(ulonglong *)(lVar4 + -0x8a8) >> 0x20 ^ uVar37) >> 1 ^ uVar22;
  uVar10 = DAT_1826717a4;
  uVar17 = (uVar23 ^ *(ulonglong *)(lVar4 + -0x8a8)) << (((byte)uVar7 ^ 0x55) & 0x3f);
  uVar36 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  *(ulonglong *)(lVar4 + -0x898) = uVar17 ^ uVar36;
  lVar21 = DAT_182671560;
  uVar33 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xfed979d4)) =
       (*(ulonglong *)(lVar4 + -0x318) ^ uVar22 | uVar17) ^ uVar33;
  uVar10 = DAT_182671820;
  uVar17 = (*(ulonglong *)(lVar21 - (uVar31 ^ 0xfedb7974)) ^ uVar27) -
           (CONCAT44(uVar7,uVar39) ^ 0x738a48e64d709b18);
  *(ulonglong *)(lVar21 + -0xa60) = uVar17 ^ uVar26;
  uVar5 = DAT_18267156c;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar21 - ((ulonglong)DAT_18267156c ^ 0xffff795e)) =
       uVar17 - (*(ulonglong *)(lVar21 - (uVar35 ^ 0x6079698)) ^ uVar33) ^ uVar27;
  uVar22 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  puVar3 = (ulonglong *)(lVar21 + -0x510);
  uVar17 = (CONCAT44(uVar8,uVar28) ^ 0x7e0baf32a2342eb4) +
           (*(ulonglong *)(lVar21 + -0x688) ^ uVar33) ^ uVar22;
  *puVar3 = uVar17;
  lVar4 = DAT_182671560;
  uVar26 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar17 = *(ulonglong *)(lVar21 + -0x800) ^ uVar26 ^ uVar17 ^ uVar22 ^ uVar41;
  *puVar2 = uVar17;
  uVar10 = DAT_1826717e4;
  *(undefined1 *)(lVar4 + -0x209) = **(undefined1 **)(lVar4 + -0x4e0);
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xe8bfb780)) =
       (uVar26 ^ uVar17) >> (((byte)uVar9 ^ 0x59) & 0x3f) ^ uVar29;
  uVar10 = DAT_1826716d8;
  lVar4 = DAT_182671560;
  uVar22 = (*puVar2 ^ uVar26) << 0x3b;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar22 ^ CONCAT44(DAT_182671720,DAT_182671720);
  lVar21 = DAT_182671560;
  uVar26 = CONCAT44(uVar10,uVar10);
  uVar22 = *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xffff7d1e)) ^ uVar29 | uVar22;
  uVar17 = *(ulonglong *)(DAT_182671560 + -0x800);
  *puVar1 = uVar22 ^ uVar26;
  uVar10 = DAT_18267169c;
  uVar29 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar21 + -0xc08) = (uVar17 ^ uVar41) - uVar22 ^ uVar29;
  uVar12 = DAT_182671860;
  uVar41 = CONCAT44(uVar10,uVar10);
  uVar19 = *(ulonglong *)(lVar21 - (uVar40 ^ 0xe8bfb760)) ^ *(ulonglong *)(lVar21 + -0x600) ^ uVar41
           ^ uVar27 ^ uVar19;
  uVar22 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar21 + -0x1d8) = (uVar19 ^ uVar41) >> (((byte)uVar8 ^ 0x25) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar21 + -0x110) = uVar19;
  uVar17 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar21 - (uVar31 ^ 0xfedb75d4)) =
       (uVar41 ^ uVar19) << (((byte)uVar9 ^ 0x47) & 0x3f) ^ uVar17;
  uVar10 = DAT_1826717f4;
  uVar30 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar17 = *(ulonglong *)(lVar21 - (uVar43 ^ 0xd900a0d1)) ^ uVar22 |
           uVar17 ^ *(ulonglong *)(lVar21 + -0xa88);
  *(ulonglong *)(lVar21 + -0xbf0) = uVar17 ^ uVar30;
  uVar14 = DAT_182671748;
  lVar4 = DAT_182671560;
  uVar19 = CONCAT44(uVar10,uVar10);
  uVar22 = (ulonglong)DAT_182671748;
  uVar41 = CONCAT44(DAT_182671748,DAT_182671748);
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xa109d1a8)) =
       (*(ulonglong *)(DAT_182671560 + -0x600) ^ uVar27) - uVar17 ^ uVar19;
  uVar5 = DAT_18267156c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267156c ^ 0xffff7c46)) =
       *(ulonglong *)(lVar4 - (uVar35 ^ 0x6079be0)) ^ uVar41 ^ uVar30 ^ uVar29 ^
       *(ulonglong *)(lVar4 + -0xc08);
  uVar10 = DAT_18267167c;
  uVar30 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *(ulonglong *)(lVar4 + -0x898) =
       ((ulonglong)(uVar14 >> 0x17) | uVar22 << 9) ^ *(ulonglong *)(lVar4 + -0x318) >> 0x17 ^ uVar30
  ;
  uVar17 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xffff7976)) =
       (*(ulonglong *)(lVar4 + -0x318) ^ uVar41) << ((bVar38 ^ 0xe9) & 0x3f) ^ uVar17;
  *(ulonglong *)(lVar4 + -0xa60) =
       (*(ulonglong *)(lVar4 + -0x628) ^ uVar17) - (CONCAT44(uVar6,uVar39) ^ 0xff93f1bd3474e343);
  uVar10 = DAT_1826716f8;
  uVar17 = *(ulonglong *)(lVar4 + -0x628) ^ uVar17 | *(ulonglong *)(lVar4 + -0x898) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x688) = uVar17 ^ uVar36;
  uVar41 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar43 ^ 0xd900a419)) =
       (uVar29 ^ *(ulonglong *)(lVar4 + -0xc08)) - uVar17 ^ uVar41;
  lVar21 = DAT_182671560;
  uVar17 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar22 = *puVar1 ^ uVar17 ^ uVar19 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x8a8);
  *puVar2 = uVar22;
  uVar26 = (uVar22 ^ uVar17) << 0x18;
  uVar22 = (uVar22 ^ uVar17) >> (((byte)uVar6 ^ 0x74) & 0x3f);
  uVar17 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(lVar21 + -0x240) = uVar22 ^ CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar10 = DAT_18267179c;
  *(ulonglong *)(lVar21 + -0x670) = uVar26 ^ uVar17;
  uVar12 = DAT_182671894;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar21 + -0x800) = (uVar22 | uVar26) ^ uVar27;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar17 = (ulonglong)DAT_18267162c;
  uVar22 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar21 - (uVar35 ^ 0x60792b0)) =
       (uVar19 ^ *(ulonglong *)(lVar21 + -0x8a8)) -
       (*(ulonglong *)(lVar21 - (uVar35 ^ 0x6079810)) ^ uVar27) ^ uVar26;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0x95bf245a)) =
       *(ulonglong *)(DAT_182671560 + -0x800) ^ uVar22 ^ uVar27 ^ uVar41 ^ *puVar3;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0xfed97e84)) =
       CONCAT44(uVar8,DAT_18267156c) ^ 0xd1fdf6dfcf911fc9 | 0x11fdd65dc3901fc9;
  uVar19 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x6079a98)) =
       (*(ulonglong *)(lVar4 + -0x110) >> 0x20 ^ uVar17) >> 0x14 ^ uVar19;
  uVar17 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x6079610)) =
       (uVar22 ^ *(ulonglong *)(lVar4 + -0x110)) << 0xc ^ uVar17;
  uVar22 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar17 = *(ulonglong *)(lVar4 - (uVar31 ^ 0xfedb795c)) ^ uVar17 |
           uVar19 ^ *(ulonglong *)(lVar4 + -0xa88);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar17 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x318) = (uVar41 ^ *puVar3) - uVar17 ^ uVar33;
  uVar10 = DAT_18267184c;
  uVar17 = *(ulonglong *)(lVar4 - (uVar34 ^ 0xfed97dfc)) ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x688) ^
           uVar36 ^ uVar23;
  *(ulonglong *)(lVar4 + -0xa60) = uVar17;
  uVar27 = (uVar17 >> 0x20 ^ uVar37) >> 0x19;
  *(ulonglong *)(lVar4 + -0x898) = uVar27 ^ CONCAT44(uVar10,uVar10);
  lVar21 = DAT_182671560;
  puVar24 = (ulonglong *)(lVar4 - (uVar32 ^ 0xa109d360));
  uVar17 = (*puVar24 ^ uVar23) << (((byte)uVar8 ^ 7) & 0x3f);
  uVar19 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar17 ^ CONCAT44(DAT_182671880,DAT_182671880);
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar21 - (uVar34 ^ 0xfed97354)) = (uVar17 | uVar27) ^ uVar19;
  uVar17 = *(ulonglong *)(lVar4 + -0x2a0);
  *puVar1 = (CONCAT44(uVar6,uVar39) ^ 0x7b05a0a68ec1cc5c) -
            (CONCAT44(uVar7,uVar8) ^ 0x52a3ac713bd4753c);
  *puVar2 = (uVar26 ^ uVar17) - (uVar19 ^ *(ulonglong *)(lVar4 + -0xc08)) ^ uVar26;
  uVar10 = DAT_1826717ac;
  uVar34 = CONCAT44(DAT_182671794,DAT_182671794);
  uVar17 = *(ulonglong *)(lVar4 - (uVar43 ^ 0xd900a211)) ^ uVar34 ^ uVar19 ^ uVar33 ^
           *(ulonglong *)(lVar4 + -0xc08);
  *(ulonglong *)(lVar4 + -0x240) = uVar17;
  uVar5 = DAT_18267156c;
  uVar17 = (uVar17 ^ uVar34) >> ((bVar16 ^ 0x1e) & 0x3f);
  *(ulonglong *)(lVar4 + -0x670) = uVar17 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671718;
  *(ulonglong *)(lVar4 + -0x8a8) =
       (CONCAT44(uVar8,uVar11) ^ 0xc820dd99e9d45e0) - (CONCAT44(uVar7,uVar5) ^ 0x523c29e539f807);
  uVar27 = (uVar34 ^ *puVar18) << 0x32;
  uVar34 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  *(ulonglong *)(lVar4 + -0x800) = uVar27 ^ CONCAT44(uVar10,uVar10);
  uVar27 = uVar27 | uVar17;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar27 ^ uVar34;
  uVar10 = _DAT_182671618;
  *(ulonglong *)(lVar4 + -0x110) = CONCAT44(uVar39,uVar8) ^ 0xac6534940afd081d | uVar27;
  uVar12 = DAT_18267173c;
  uVar17 = (*(ulonglong *)(lVar4 - (uVar35 ^ 0x6079308)) ^ uVar33) -
           (CONCAT44(uVar5,uVar39) ^ 0xbbb41894b35254d4);
  *(ulonglong *)(lVar4 + -0xa88) = uVar17 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671814;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x600) = uVar17 - uVar27 ^ uVar29;
  *puVar3 = *(ulonglong *)(CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar4 + -0xa38)) ^ uVar22;
  uVar12 = DAT_1826715e4;
  lVar21 = DAT_182671560;
  uVar19 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar4 + -0x688) = uVar27 - (CONCAT44(uVar9,uVar5) ^ 0x3b00e967863c5ac8) ^ uVar19;
  uVar10 = DAT_1826715a8;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar34 = *(ulonglong *)(lVar4 - (uVar40 ^ 0xe8bfb310)) ^ uVar27 ^ *(ulonglong *)(lVar4 + -0xbf0) ^
           uVar22 ^ uVar26;
  *(uint *)(lVar4 + -0x774) = *(int *)(lVar4 + -0x374) - (DAT_182671584 ^ 0x9a131764);
  uVar12 = DAT_182671654;
  *(ulonglong *)(lVar4 + -0xa60) = uVar34;
  uVar13 = DAT_1826717d4;
  uVar17 = (uVar27 ^ *(ulonglong *)(lVar21 + -0xa60)) >> (((byte)uVar6 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar21 + -0x898) = uVar17 ^ CONCAT44(uVar12,uVar12);
  uVar12 = _DAT_1826715d8;
  lVar4 = DAT_182671560;
  uVar34 = (uVar27 ^ uVar34) << (((byte)(uVar8 >> 0x10) ^ 0x39) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar34 ^ CONCAT44(uVar13,uVar13);
  uVar5 = DAT_182671580;
  uVar27 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xfedb7fdc)) = (uVar34 | uVar17) ^ uVar27;
  uVar13 = DAT_1826717f0;
  uVar6 = DAT_1826715ac;
  uVar34 = (*puVar2 ^ uVar26) - (CONCAT44(uVar11,uVar5) ^ 0xa20c1d7dcc8ffb6b);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar34 ^ CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar12 = DAT_1826717bc;
  uVar22 = CONCAT44(uVar13,uVar13);
  uVar17 = *puVar1;
  *(ulonglong *)(lVar4 + -0xc08) = uVar34 - (uVar27 ^ *puVar1) ^ uVar22;
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar17 = (CONCAT44(uVar7,uVar6) ^ 0x4131a89c6fdff623) + (uVar27 ^ uVar17) ^ uVar34;
  uVar27 = CONCAT44(DAT_18267182c,DAT_18267182c);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar17;
  uVar5 = DAT_182671570;
  lVar21 = DAT_182671560;
  uVar34 = *(ulonglong *)(lVar4 - (uVar20 ^ 0x95bf234a)) ^ uVar27 ^ uVar17 ^ uVar34 ^ uVar29;
  uVar26 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(lVar4 + -0x240) = uVar34;
  uVar17 = CONCAT44(uVar9,DAT_18267157c);
  *(ulonglong *)(lVar21 + -0x670) = (uVar27 ^ uVar34) >> (((byte)uVar5 ^ 0x7c) & 0x3f) ^ uVar26;
  uVar12 = DAT_182671898;
  *(ulonglong *)(lVar21 + -0x800) =
       (uVar17 ^ 0x16f500a79641e033) - (uVar19 ^ *(ulonglong *)(lVar21 + -0x688));
  uVar17 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar21 - (uVar35 ^ 0x6079100)) =
       (uVar27 ^ uVar34) << (((byte)DAT_1826715b4 ^ 0x20) & 0x3f) ^ uVar17;
  uVar12 = DAT_182671668;
  uVar23 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar17 = *(ulonglong *)(lVar21 - (uVar32 ^ 0xa109d810)) ^ uVar17 |
           *(ulonglong *)(lVar21 - (uVar20 ^ 0x95bf233a)) ^ uVar26;
  *(ulonglong *)(lVar21 + -0x318) = uVar17 ^ uVar23;
  lVar4 = DAT_182671560;
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(lVar21 + -0xa88) = (uVar29 ^ *(ulonglong *)(lVar21 + -0x600)) - uVar17 ^ uVar35;
  uVar5 = DAT_182671574;
  uVar34 = (ulonglong)DAT_182671574;
  uVar17 = uVar27 ^ uVar22 ^ uVar19 ^ *(ulonglong *)(lVar21 + -0x688) ^
           *(ulonglong *)(lVar21 + -0xc08);
  *puVar3 = uVar17;
  uVar12 = DAT_182671640;
  uVar29 = CONCAT44(DAT_18267178c,DAT_18267178c);
  *(ulonglong *)(lVar21 + -0x1d8) = (uVar17 ^ uVar27) >> (((byte)uVar10 ^ 0xce) & 0x3f) ^ uVar29;
  uVar19 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x3396a8f0)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x97bfbaff)) ^ uVar27) <<
       (((byte)DAT_18267156c ^ 0x7e) & 0x3f) ^ uVar19;
  uVar8 = DAT_182671680;
  uVar10 = DAT_1826715cc;
  uVar6 = DAT_182671578;
  uVar17 = (ulonglong)DAT_182671680;
  uVar19 = uVar19 ^ *(ulonglong *)(lVar4 + -0xbf0) | uVar29 ^ *(ulonglong *)(lVar4 + -0x1d8);
  uVar33 = (ulonglong)DAT_182671578;
  uVar34 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar4 + -0xa60) = uVar19 ^ uVar34;
  uVar41 = CONCAT44(uVar10,uVar10);
  uVar27 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x898) = (uVar22 ^ *(ulonglong *)(lVar4 + -0xc08)) - uVar19 ^ uVar41;
  uVar8 = DAT_1826715a0;
  *(ulonglong *)(lVar4 - (uVar43 ^ 0xd900a721)) =
       uVar27 ^ uVar34 ^ uVar35 ^ *puVar24 ^ *(ulonglong *)(lVar4 + -0xa88);
  uVar34 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  uVar22 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xfedb798c)) =
       (*(ulonglong *)(lVar4 + -0x628) >> 0x20 ^ uVar17) >> 0x1a ^ uVar34;
  uVar17 = (uVar27 ^ *(ulonglong *)(lVar4 + -0x628)) << ((bVar16 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar17 ^ CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x2a5f396f)) = (uVar34 ^ *puVar2 | uVar17) ^ uVar30;
  uVar10 = DAT_182671708;
  *(ulonglong *)(lVar4 + -0x8a8) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267158c ^ 0xe20c0df8)) ^ CONCAT44(uVar9,uVar8) ^
       uVar26 ^ 0xb447bfeb1bd668a;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x12008a3)) =
       (*(ulonglong *)(lVar4 - (uVar40 ^ 0xe8bfbf48)) ^ uVar35) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x3396a380)) ^ uVar30) ^ uVar19;
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671854,DAT_182671854);
  uVar17 = uVar31 ^ uVar41 ^ uVar23 ^ *(ulonglong *)(DAT_182671560 + -0x898) ^
           *(ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar17;
  uVar12 = DAT_182671848;
  uVar34 = (uVar17 ^ uVar31) >> (((byte)uVar7 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar4 + -0x110) = uVar34 ^ CONCAT44(DAT_182671874,DAT_182671874);
  uVar10 = DAT_182671800;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x600) = (uVar31 ^ uVar17) << ((bVar38 ^ 0xea) & 0x3f) ^ uVar26;
  uVar5 = DAT_182671580;
  uVar17 = CONCAT44(uVar10,uVar10);
  uVar34 = *(ulonglong *)(lVar4 - (uVar22 ^ 0x232843b)) ^ uVar26 | uVar34;
  uVar29 = (ulonglong)DAT_182671580;
  *(uint *)(lVar4 + -0x678) = (DAT_18267156c ^ 0x87a7f757) & (DAT_182671598 ^ 0xa882da79);
  *(ulonglong *)(lVar4 + -0x688) = uVar34 ^ uVar17;
  uVar7 = DAT_182671790;
  uVar22 = (ulonglong)DAT_182671790;
  lVar21 = CONCAT44(uVar8,DAT_1826715ac);
  *puVar3 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x2a5f3177)) ^ uVar41) - uVar34 ^ uVar42;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x1d8) = lVar21 << 0x28 ^ 0x202d230000000000;
  uVar26 = *(ulonglong *)(lVar4 - (uVar33 ^ 0x2a5f3f67)) ^ uVar31 ^ uVar17 ^ uVar19 ^
           *(ulonglong *)(lVar4 + -0x800);
  uVar27 = CONCAT44(DAT_182671638,DAT_182671638);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar26;
  uVar17 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar4 + -0xc08) = (uVar26 >> 0x20 ^ uVar22) >> 0xe ^ uVar27;
  uVar34 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar4 - (uVar17 ^ 0xfed9753c)) =
       (uVar31 ^ uVar26) << (((byte)uVar5 ^ 0x9b) & 0x3f) ^ uVar34;
  uVar10 = DAT_182671724;
  uVar22 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x2ad8dfa1)) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x2a5f338f)) ^ uVar34 |
       uVar27 ^ *(ulonglong *)(lVar4 + -0xc08)) ^ uVar22;
  uVar17 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x95bf27ea)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_18267157c ^ 0x1c022200)) ^ uVar19) -
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xa109df28)) ^ uVar22) ^ CONCAT44(uVar10,uVar10);
  *puVar2 = uVar17 ^ *puVar1 ^ uVar30 ^ uVar42 ^ *puVar3;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar25;
  return;
}



############ FUN_ 180f2b720 size=5097 ############

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

void FUN_180f2b720(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  byte bVar13;
  uint uVar14;
  ulonglong *puVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_res18;
  
  uVar7 = DAT_1826717c0;
  uVar10 = DAT_1826715a4;
  uVar8 = DAT_18267158c;
  uVar5 = DAT_182671580;
  uVar4 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar16 = (ulonglong)DAT_18267157c;
  uVar40 = (ulonglong)DAT_182671580;
  uVar20 = (ulonglong)DAT_1826715a4;
  uVar28 = (ulonglong)DAT_18267158c;
  uVar21 = DAT_1826715a4 - DAT_18267158c;
  uVar18 = DAT_182671584;
  if ((DAT_18267157c & 1) == 0) {
    uVar18 = DAT_18267157c;
  }
  uVar42 = DAT_182671580 << 0x10 | DAT_182671580 >> 0x10;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671a40);
  uVar14 = *(uint *)(&DAT_182611e78 + DAT_182671a40) ^ DAT_182671580;
  uVar32 = CONCAT44(DAT_18267165c,DAT_18267165c);
  uVar23 = (CONCAT44(DAT_182671604,DAT_182671604) ^ *(ulonglong *)(DAT_182671560 + -0x9f8) |
           CONCAT44(DAT_1826717c0,DAT_1826717c0) ^ *(ulonglong *)(DAT_182671560 + -0x3b8)) ^ uVar32;
  DAT_18267156c = uVar18;
  DAT_182671594 = uVar42;
  DAT_1826715ac = uVar21;
  *(uint *)(DAT_182671560 + -0x5cc) =
       (DAT_18267157c ^ 0x50fc7387) + *(int *)(DAT_182671560 + -0x678);
  uVar9 = DAT_1826716d8;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar23;
  uVar12 = DAT_182671630;
  uVar6 = DAT_182671584;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar38 = CONCAT44(DAT_182671894,DAT_182671894);
  uVar26 = (ulonglong)uVar18;
  uVar23 = uVar38 ^ uVar29 ^ uVar23 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0x80);
  *(ulonglong *)(lVar2 + -0x600) = uVar23;
  uVar9 = DAT_18267162c;
  lVar2 = DAT_182671560;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar24 = (ulonglong)DAT_182671578;
  uVar30 = (uVar29 ^ uVar23) + (CONCAT44(uVar6,uVar18) ^ 0x42c5d6c7ca1748ea);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar30 ^ uVar33;
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xa80) =
       (*(ulonglong *)(lVar2 + -0x800) ^ uVar23) <<
       ((*(byte *)(lVar2 - (uVar24 ^ 0x5aab8628)) ^ (byte)uVar12) & 0x3f);
  uVar12 = DAT_182671840;
  lVar2 = DAT_182671560;
  uVar29 = (ulonglong)uVar21;
  uVar23 = (CONCAT44(uVar10,uVar8) ^ 0x2ec83fd9baa4648) +
           (*(ulonglong *)(DAT_182671560 + -0x800) ^ uVar23);
  *(ulonglong *)(DAT_182671560 + -0xa0) = uVar23 ^ CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar9 = DAT_1826717e8;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x5c8)) -
       (CONCAT44(uVar21,uVar21) ^ 0x54cd035b11f24bc7);
  uVar22 = CONCAT44(uVar9,uVar9);
  bVar13 = (byte)DAT_182671584;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x1f61306a)) = uVar23 + uVar30 ^ uVar22;
  uVar31 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  uVar19 = (ulonglong)uVar42;
  *(ulonglong *)(lVar2 + -0x688) =
       (*(ulonglong *)(lVar2 + -0x1d8) ^ uVar33) << ((bVar13 ^ 0x93) & 0x3f) ^ uVar31;
  lVar3 = DAT_182671560;
  bVar13 = (byte)DAT_182671578;
  uVar24 = CONCAT44(DAT_182671878,DAT_182671878);
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xfffff8b7)) =
       (*(ulonglong *)(lVar2 + -0x1d8) ^ uVar33) >> ((bVar13 ^ 0xd7) & 0x3f) ^ uVar24;
  uVar23 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar42 ^ 0xfffff977)) ^ uVar31 |
       *(ulonglong *)(lVar3 + -0x748) ^ uVar24) ^ uVar23;
  uVar9 = DAT_182671650;
  *(ulonglong *)(lVar3 + -0xa60) =
       CONCAT44(uVar10,uVar10) ^ 0x3d2b12d7bb8c3559 |
       CONCAT44(uVar6,DAT_182671578) ^ 0xad7199f3b6ebc604;
  uVar12 = DAT_1826716f8;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xc08) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x1f613cf2)) ^ *(ulonglong *)(lVar3 + -0x610) ^
       uVar24 ^ uVar23 ^ uVar22;
  uVar30 = CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar34 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x6b8)) +
           (CONCAT44(uVar10,uVar42) ^ 0x5f94d86c4979b4e9);
  *(ulonglong *)(lVar3 + -0x318) = uVar34 ^ uVar30;
  *(uint *)(lVar3 + -0x47c) =
       *(uint *)(*(ulonglong *)(lVar3 - (uVar29 ^ 0x2afd4f6)) ^ (ulonglong)DAT_1826715bc) ^ uVar7;
  uVar23 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar4,uVar42) ^ 0xf5d38719863cda69) + (uVar38 ^ *(ulonglong *)(lVar3 + -0x80)) ^
       uVar23;
  uVar9 = DAT_18267182c;
  lVar2 = DAT_182671560;
  uVar38 = CONCAT44(DAT_182671744,DAT_182671744);
  bVar17 = (byte)DAT_182671578;
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       (*(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xfffff98f)) ^ uVar23) + uVar34 ^ uVar38;
  uVar34 = uVar34 << ((bVar17 ^ 0xd1) & 0x3f);
  puVar15 = (ulonglong *)(lVar2 - (uVar29 ^ 0x2afd0ae));
  *(ulonglong *)(lVar2 + -0x638) = uVar34 ^ CONCAT44(uVar9,uVar9);
  uVar7 = DAT_1826717b8;
  uVar36 = (ulonglong)DAT_1826717b8;
  uVar23 = (*puVar15 ^ uVar30) >> (((byte)uVar5 ^ 0xe0) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x3b8) = uVar23 ^ CONCAT44(DAT_182671690,DAT_182671690);
  lVar2 = DAT_182671560;
  uVar35 = CONCAT44(uVar7,uVar7);
  uVar33 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(DAT_182671560 - (uVar19 ^ 0xfffff607)) = (uVar34 | uVar23) ^ uVar33;
  uVar12 = DAT_1826718d4;
  uVar23 = *(ulonglong *)(lVar2 + -0x3f0) ^ uVar35 ^ uVar33 ^ uVar38 ^
           *(ulonglong *)(lVar2 + -0x9f8);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar23;
  uVar9 = DAT_1826716a0;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x600) =
       (*(ulonglong *)(lVar2 + -0x610) ^ uVar22) + (uVar23 ^ uVar35) ^ uVar30;
  uVar22 = CONCAT44(uVar9,uVar9);
  puVar25 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671584 ^ 0xbdcabf0a));
  *puVar25 = (uVar35 ^ uVar23) << (((byte)uVar18 ^ 0xc) & 0x3f) ^ uVar22;
  lVar2 = DAT_182671560;
  uVar34 = CONCAT44(DAT_182671828,DAT_182671828);
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xfffff7ff)) =
       ((ulonglong)(uVar7 >> 0x12) | uVar36 << 0xe) ^ *(ulonglong *)(DAT_182671560 + -0x1f0) >> 0x12
       ^ uVar34;
  uVar23 = CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar36 = (uVar34 ^ *(ulonglong *)(lVar2 + -0x800) | uVar22 ^ *puVar25) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar36;
  uVar9 = DAT_182671824;
  *(ulonglong *)(lVar2 + -0xbf0) =
       CONCAT44(uVar4,uVar8) ^ 0x76c148775b4ae016 | CONCAT44(uVar5,uVar10) ^ 0xdd5508de0bd9ea48;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xa0) =
       *(ulonglong *)(lVar2 - (uVar20 ^ 0x22110c30)) ^ uVar36 ^ uVar22 ^ uVar23 ^ uVar30;
  uVar34 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x1f6137a2)) =
       (*(ulonglong *)(lVar2 + -0xc08) ^ uVar24) + (*(ulonglong *)(lVar2 + -0x3f0) ^ uVar38) ^
       uVar34;
  lVar3 = DAT_182671560;
  uVar24 = *(ulonglong *)(lVar2 + -0xc08) ^ uVar24;
  uVar36 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar2 + -0x688) = uVar24 << ((bVar13 ^ 0xfc) & 0x3f) ^ uVar36;
  uVar43 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x300a166a)) = uVar24 >> (((byte)uVar18 ^ 0x16) & 0x3f) ^ uVar43;
  uVar23 = *(ulonglong *)(lVar3 + -0x1d8);
  uVar38 = CONCAT44(DAT_182671890,DAT_182671890);
  uVar24 = (*(ulonglong *)(lVar2 + -0x748) ^ uVar43 | *(ulonglong *)(lVar2 + -0x688) ^ uVar36) ^
           uVar38;
  *(ulonglong *)(lVar2 + -0xa60) = uVar24;
  uVar18 = DAT_182671848;
  uVar39 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xfffff577)) = uVar23 ^ uVar39 ^ uVar24 ^ uVar38 ^ uVar34;
  uVar38 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0xfffff9ff)) ^ uVar30) +
       (uVar39 ^ *(ulonglong *)(lVar3 + -0xa88)) ^ uVar38;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x22110ab0)) = CONCAT44(uVar10,uVar21) ^ 0xed66b873047cfec9;
  uVar30 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x2afd5c6)) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0xa88)) << 0x3a ^ uVar30;
  uVar23 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xfffffce7)) =
       ((ulonglong)uVar18 << 0x1a | (ulonglong)(uVar18 >> 6)) ^ *(ulonglong *)(lVar3 + -0xa88) >> 6
       ^ uVar23;
  uVar24 = CONCAT44(DAT_182671760,DAT_182671760);
  uVar23 = (*(ulonglong *)(lVar3 + -0x318) ^ uVar23 | uVar30 ^ *(ulonglong *)(lVar3 + -0x670)) ^
           uVar24;
  *(ulonglong *)(lVar3 + -0x638) = uVar23;
  uVar41 = (ulonglong)DAT_182671778;
  uVar30 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671578 ^ 0x5aab8448)) =
       uVar30 ^ uVar23 ^ uVar24 ^ uVar38 ^ *(ulonglong *)(lVar3 + -0x6b8);
  uVar36 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x1f613f82)) =
       (*(ulonglong *)(lVar3 + -0x1d8) ^ uVar34) + (*(ulonglong *)(lVar3 + -0xa0) ^ uVar22) ^ uVar36
  ;
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(DAT_18267164c,DAT_18267164c);
  bVar13 = (byte)DAT_182671584;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x300a1732)) =
       (*(ulonglong *)(lVar3 + -0xa0) ^ uVar22) << (((byte)uVar21 ^ 0xa0) & 0x3f) ^ uVar27;
  uVar23 = *(ulonglong *)(lVar3 + -0x9f8);
  uVar24 = *(ulonglong *)(lVar2 + -0x6b8);
  uVar34 = CONCAT44(DAT_182671638,DAT_182671638);
  *(ulonglong *)(lVar3 + -0x1f0) =
       (*(ulonglong *)(lVar3 + -0xa0) ^ uVar22) >> ((bVar13 ^ 0xa0) & 0x3f) ^ uVar34;
  uVar9 = DAT_1826716ec;
  uVar19 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar16 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0x300a10d2)) ^ uVar34 |
           *(ulonglong *)(lVar3 + -0x610) ^ uVar27) ^ uVar19;
  *(ulonglong *)(lVar3 + -0xa80) = uVar16;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar22 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar16 = uVar37 ^ uVar16 ^ uVar19 ^ uVar36 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x800) = uVar16;
  uVar9 = DAT_182671648;
  bVar13 = (byte)(uVar5 >> 0x10);
  uVar38 = (uVar37 ^ uVar16) + (uVar38 ^ uVar24) ^ uVar22;
  uVar16 = (uVar37 ^ uVar16) << ((bVar13 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar2 + -0x5c8) = uVar16 ^ uVar43;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar38;
  uVar12 = DAT_1826717f0;
  uVar24 = (ulonglong)DAT_182671584;
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar2 + -0x800)) >> (((byte)DAT_182671584 ^ 0xaa) & 0x3f);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar37 ^ CONCAT44(uVar9,uVar9);
  uVar19 = CONCAT44(uVar12,uVar12);
  uVar18 = DAT_182671574 ^ 0x354ec5d6;
  uVar37 = (uVar37 | uVar16) ^ uVar19;
  *(ulonglong *)(lVar2 + -0xc08) = uVar37;
  uVar9 = DAT_1826715b8;
  *(ulonglong *)(lVar2 + -0x688) = (uVar28 << 0x14 | (ulonglong)(uVar8 >> 0xc)) ^ 0x2c684e2ef6e79;
  uVar16 = (ulonglong)DAT_1826715a0;
  uVar43 = CONCAT44(uVar9,uVar9);
  puVar25 = (ulonglong *)(lVar2 - (uVar26 ^ 0x300a129a));
  *(ulonglong *)(lVar2 + -0x748) = uVar37 ^ uVar43 ^ uVar19 ^ uVar22 ^ uVar38;
  uVar9 = DAT_182671854;
  *(ulonglong *)(lVar2 + -0xa60) = (uVar36 ^ uVar23) + (uVar30 ^ *puVar25) ^ uVar32;
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x600) =
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0x2f6b24e0)) ^ uVar30) << 0x20 ^ uVar23;
  *(uint *)(lVar2 - (uVar20 ^ 0x221109e4)) = uVar18 | *(uint *)(lVar2 + -0x910);
  uVar21 = DAT_1826715a8;
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar16 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xffffff7f)) = *puVar25 >> 0x20 ^ uVar28 ^ uVar41;
  uVar36 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0xef6bbdf6)) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0x600)) + 0xc42f0efeaa3be051;
  uVar16 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar23 = (uVar28 ^ *(ulonglong *)(lVar2 + -0x80) | uVar23 ^ *(ulonglong *)(lVar2 + -0x600)) ^
           uVar16;
  uVar28 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(lVar2 + -0x670) = uVar23;
  *puVar15 = *(ulonglong *)(lVar2 + -0xa60) ^ uVar28 ^ uVar23 ^ uVar16 ^ uVar32;
  *(uint *)(lVar2 + -0x754) = (DAT_182671584 ^ 0x114d0be9) + 0xe99ddee2;
  uVar11 = DAT_1826715b0;
  uVar16 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar38 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xbdcab3b2)) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0xbdcab692)) ^ uVar28) +
       (CONCAT44(uVar6,uVar4) ^ 0x781323b149c934b4) ^ uVar16;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x5db15b11)) =
       (CONCAT44(uVar8,uVar4) ^ 0x5b2a51b06be7f036) + (uVar22 ^ *(ulonglong *)(lVar2 + -0xbf0)) ^
       uVar39;
  uVar7 = DAT_182671588;
  uVar18 = DAT_182671568;
  uVar44 = (ulonglong)DAT_182671588;
  uVar19 = (ulonglong)DAT_182671568;
  uVar41 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar2 + -0xa0) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0xd094d97f)) ^ uVar39) +
       (*(ulonglong *)(lVar2 + -0x638) ^ uVar16) ^ uVar41;
  local_res18 = (byte)uVar10;
  *(longlong *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0xb3c9a99a)) =
       0x62b074c137a41fe5 << ((byte)uVar7 & 0x3f);
  uVar9 = DAT_182671834;
  *(uint *)(lVar2 + -0x774) = (uVar21 ^ 0xc20cda08) + *(int *)(lVar2 + -0x5cc);
  uVar24 = (*(ulonglong *)(lVar2 + -0x638) ^ uVar16) << ((local_res18 ^ 0x3e) & 0x3f);
  uVar23 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar24 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671598;
  lVar2 = DAT_182671560;
  uVar28 = (*(ulonglong *)(DAT_182671560 + -0x638) ^ uVar16) >>
           (((byte)DAT_182671598 ^ 0x47) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa80) = uVar28 ^ uVar23;
  uVar16 = CONCAT44(DAT_182671708,DAT_182671708);
  uVar28 = (uVar28 | uVar24) ^ uVar16;
  uVar39 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar28;
  *(ulonglong *)(lVar2 + -0x800) = uVar39 ^ uVar16 ^ uVar41 ^ *(ulonglong *)(lVar2 + -0xa0) ^ uVar28
  ;
  uVar12 = DAT_18267177c;
  uVar22 = CONCAT44(DAT_18267184c,DAT_18267184c);
  puVar25 = (ulonglong *)(lVar2 - ((ulonglong)DAT_18267159c ^ 0x4f75cffd));
  *puVar25 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xd094dfef)) ^ uVar43) +
             (CONCAT44(uVar4,uVar18) ^ 0x1b7b630b058ebc04) ^ uVar22;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar16 = (*(ulonglong *)(lVar2 - (uVar36 ^ 0x5db150a9)) ^ uVar32) +
           (CONCAT44(uVar9,uVar8) ^ 0xc98dac18f9361498);
  uVar24 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar16 ^ uVar37;
  uVar9 = DAT_1826718a0;
  *(ulonglong *)(lVar2 + -0x688) = uVar16 + (uVar22 ^ *(ulonglong *)(lVar2 + -0x5c8)) ^ uVar24;
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 + -0xc08) = (uVar22 ^ *puVar25) << 0x10 ^ uVar28;
  *(undefined8 *)(lVar2 - (uVar44 ^ 0x1f841944)) = 0xa1c17a34b56c00bf;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xd094db1f)) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0x5c8)) >> (((byte)DAT_182671570 ^ 0x97) & 0x3f) ^ uVar35;
  uVar9 = DAT_1826718a4;
  uVar18 = DAT_1826715b4;
  uVar22 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0xa88) =
       *(ulonglong *)(lVar2 - (uVar26 ^ 0x300a12d2)) ^ uVar37 | 0x82a88d9280b4a91;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar38 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar2 + -0x600) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x3b8) | uVar28 ^ *(ulonglong *)(lVar2 + -0xc08)) ^ uVar16;
  uVar16 = *(ulonglong *)(lVar2 - (uVar20 ^ 0x22110cb8)) ^
           *(ulonglong *)(lVar2 - (uVar26 ^ 0x300a1722)) ^ uVar38 ^ uVar16 ^ uVar24;
  uVar36 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar2 + -0x80) = uVar16;
  uVar9 = DAT_182671870;
  *(ulonglong *)(lVar2 + -0x318) = (uVar38 ^ uVar16) << ((bVar13 ^ 0xcb) & 0x3f) ^ uVar30;
  uVar20 = CONCAT44(uVar9,uVar9);
  uVar26 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(lVar2 + -0xbf0) = (uVar38 ^ uVar16) >> (((byte)uVar18 ^ 0x86) & 0x3f) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0xa0)) + (uVar16 ^ uVar38) ^ uVar36;
  uVar28 = (ulonglong)DAT_1826715a0;
  uVar16 = *(ulonglong *)(lVar2 - (uVar44 ^ 0x1f841b4c)) ^ uVar20 | uVar30 ^ *puVar15;
  uVar20 = CONCAT44(DAT_1826715a0,uVar21);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar16 ^ uVar26;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x5aab81e0)) =
       uVar16 - (uVar20 ^ 0x6d2b6d1a89720211);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x2afd58e)) =
       uVar26 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0x1d8) ^ uVar31 ^ *(ulonglong *)(lVar2 + -0x670);
  *(int *)(lVar2 + -0x344) = *(int *)(lVar2 + -0x3d4) + -0x4cb05d5a;
  uVar26 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x2110230)) ^ uVar39) +
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x688)) ^ uVar26;
  *(ulonglong *)(lVar2 + -0xa80) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0x2f6b2f68)) ^ uVar34) ^ uVar33;
  uVar20 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x800)) << (((byte)uVar5 ^ 0xc6) & 0x3f);
  uVar28 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar24 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x800)) >> (((byte)DAT_182671574 ^ 0xe4) & 0x3f);
  uVar16 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar2 + -0x748) = uVar24 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar20 ^ uVar28;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xb3c9a5ea)) = (uVar20 | uVar24) ^ uVar16;
  uVar20 = *(ulonglong *)(lVar2 - (uVar40 ^ 0xfffffe0f)) ^ CONCAT44(DAT_182671880,DAT_182671880) ^
           uVar16 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0xa60);
  uVar18 = DAT_182671584 ^ 0xb43d935f;
  uVar16 = CONCAT44(DAT_182671880,DAT_182671880) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x9f8) = uVar20;
  uVar20 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(uint *)(lVar2 + -0x844) = uVar18 + *(int *)(lVar2 + -0x344);
  *(ulonglong *)(lVar2 + -0x5c8) = (uVar36 ^ *(ulonglong *)(lVar2 + -0x670)) + uVar16 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x3f0) = uVar20 ^ uVar16 << 0x17;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar42) * 4) = uVar14;
  return;
}



############ FUN_ 180ec4410 size=4615 ############

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

void FUN_180ec4410(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  byte local_e0;
  byte local_d0;
  byte local_68;
  
  uVar10 = DAT_1826715ac;
  uVar9 = DAT_182671598;
  uVar8 = DAT_182671580;
  uVar7 = DAT_18267157c;
  lVar4 = DAT_182671560;
  uVar28 = (ulonglong)DAT_18267157c;
  uVar30 = (ulonglong)DAT_182671580;
  uVar21 = DAT_18267157c - DAT_182671580;
  uVar23 = (ulonglong)DAT_182671598;
  uVar38 = ~DAT_18267158c;
  uVar25 = DAT_1826715ac + DAT_182671598;
  uVar31 = *(uint *)(&DAT_182611e78 + DAT_182671bf0) ^ DAT_182671580;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671bf0) ^ DAT_18267157c;
  uVar29 = (ulonglong)DAT_1826715ac;
  uVar16 = (ulonglong)uVar21;
  uVar34 = (ulonglong)uVar38;
  bVar14 = (byte)DAT_182671598;
  DAT_182671578 = uVar25;
  DAT_182671584 = uVar21;
  DAT_1826715a0 = uVar38;
  *(longlong *)(DAT_182671560 + -0x318) =
       *(longlong *)(DAT_182671560 + -0x800) << ((bVar14 ^ 0x18) & 0x3f);
  *(ulonglong *)(lVar4 + -0x610) =
       CONCAT44(uVar10,uVar25) ^ *(ulonglong *)(lVar4 + -0x80) ^ 0x51c9307147a4ec0a;
  *(ulonglong *)(lVar4 + -0x1d8) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar38 ^ 0x12003bb)) | *(ulonglong *)(lVar4 + -0x2a0);
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0xa70) =
       (CONCAT44(DAT_18267158c,uVar38) ^ 0xfedfff5c012000ff) + *(longlong *)(lVar4 + 0x30);
  *(undefined1 *)(lVar5 - (uVar28 ^ 0x1c022809)) =
       **(undefined1 **)(lVar4 - ((ulonglong)uVar25 ^ 0x2a5f339f));
  local_e0 = (byte)uVar21;
  *(ulonglong *)(lVar5 + -0x688) = (ulonglong)*(byte *)(lVar5 + -0x209);
  puVar19 = (ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x2ad8df01));
  *(ulonglong *)(lVar5 + -0x898) = *puVar19 << ((local_e0 ^ 0x57) & 0x3f);
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x240) =
       (CONCAT44(uVar10,uVar9) ^ 0x7dafdc5b92392d89) - (CONCAT44(uVar8,uVar25) ^ 0xa467ac4b2c5cfdcb)
  ;
  *(ulonglong *)(lVar4 + -0x8a8) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267158c ^ 0xfedff7c4)) |
       *(ulonglong *)(lVar4 - (uVar34 ^ 0x120017b));
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x929f71a0)) =
       (CONCAT44(uVar7,uVar7) ^ 0x1c022a001c022a5d) +
       *(longlong *)(((ulonglong)uVar25 ^ 0x2a5f39df) + DAT_182671560);
  puVar20 = (ulonglong *)(DAT_182671560 + -0x600);
  *puVar20 = (CONCAT44(uVar10,uVar9) ^ 0x591fb70b8c038584) >> (((byte)uVar8 ^ 0x89) & 0x3f);
  *(undefined1 *)(lVar4 - (uVar16 ^ 0xf129559e)) = **(undefined1 **)(lVar4 + -0xba0);
  *(uint *)(lVar4 + -0x27c) =
       *(uint *)(lVar4 - ((ulonglong)uVar38 ^ 0x12008e7)) | uVar21 ^ 0x6fdced63;
  *(ulonglong *)(lVar4 + -0xbf0) = (ulonglong)*(byte *)(lVar4 - ((ulonglong)uVar25 ^ 0x2a5f3c06));
  uVar17 = *(longlong *)(lVar4 - (uVar29 ^ 0x97bfb41f)) << 0x28;
  *(ulonglong *)(lVar4 + -0x670) = uVar17;
  *(ulonglong *)(lVar4 + -0xa60) = *(ulonglong *)(lVar4 + -0x8a8) | uVar17;
  *(longlong *)(lVar4 + -0x4e0) = *(longlong *)(lVar4 + 0x30) + 0x5e;
  *(undefined1 *)(lVar4 + -0x209) = **(undefined1 **)(lVar4 - (uVar28 ^ 0x1c022ee0));
  uVar17 = (ulonglong)*(byte *)(lVar4 - ((ulonglong)uVar25 ^ 0x2a5f3be6));
  *(ulonglong *)(lVar4 + -0xa88) = uVar17;
  *(ulonglong *)(lVar4 + -0x6d0) =
       (CONCAT44(DAT_18267158c,uVar8) ^ 0x6563a0256f1b0b8c) -
       (CONCAT44(uVar38,uVar7) ^ 0xa7f12ddf4cb88c82);
  puVar1 = (ulonglong *)(lVar4 + -0x510);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267158c ^ 0xfedffe4c)) =
       uVar17 << ((bVar14 ^ 0x30) & 0x3f);
  *puVar1 = (CONCAT44(uVar8,uVar21) ^ 0xdb1e250b3c6849d5) + 0xcc097b6de1c82f72;
  *(longlong *)(lVar4 + -0xc08) =
       *(longlong *)(lVar4 - ((ulonglong)uVar10 ^ 0x97bfbeff)) + *(longlong *)(lVar4 + -0xa60);
  *(ulonglong *)(lVar4 - (uVar16 ^ 0xf1295977)) =
       (CONCAT44(uVar10,uVar25) ^ 0x97bfbfef2a5f39b0) + *(longlong *)(lVar4 + 0x30);
  bVar14 = **(byte **)(lVar4 - ((ulonglong)DAT_18267158c ^ 0xfedff65c));
  *(byte *)(lVar4 + -0x5e9) = bVar14;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x1c022c28)) = (ulonglong)bVar14;
  *(longlong *)(lVar4 + -0x800) = *(longlong *)(lVar4 + -0xa88) + 0x16021f7729da7595;
  puVar2 = (ulonglong *)(lVar4 + -0x628);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671594 ^ 0x3cc8868d)) =
       *puVar2 << (((byte)DAT_18267158c ^ 100) & 0x3f);
  lVar5 = DAT_182671560;
  uVar17 = CONCAT44(DAT_18267158c,DAT_1826715a4);
  uVar26 = *(longlong *)(lVar4 - (uVar28 ^ 0x1c022608)) + *(longlong *)(lVar4 + -0x80);
  *(ulonglong *)(lVar4 + -0x610) = uVar26;
  *(ulonglong *)(lVar4 + -0x450) = *(longlong *)(lVar4 + -0x880) + (uVar17 ^ 0xfedfff5cfed97f57) * 8
  ;
  uVar6 = DAT_1826717c8;
  *(ulonglong *)(lVar4 + -0x318) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar38 ^ 0x12006b3)) >>
       ((byte)*(undefined8 *)(lVar4 + -0x670) & 0x3f);
  uVar21 = DAT_18267156c;
  uVar32 = CONCAT44(uVar6,uVar6);
  **(ulonglong **)(lVar5 - (uVar28 ^ 0x1c022e50)) = uVar32 ^ uVar26;
  uVar6 = DAT_182671864;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x2a001d7a)) =
       *(longlong *)(lVar5 - (uVar16 ^ 0xf12955d7)) +
       ((CONCAT44(uVar25,DAT_18267158c) ^ 0x2a5f39effedfff5c) +
       (CONCAT44(uVar9,DAT_182671568) ^ 0x929f7a00012680a3) * 0xc) * 8;
  uVar21 = DAT_18267159c;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar38 ^ 0x1200653)) =
       *(longlong *)(lVar5 + -0xb98) + (CONCAT44(uVar9,uVar8) ^ 0x929f7a002ad8d989) * 8 ^
       CONCAT44(uVar6,uVar6);
  uVar17 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar5 - (uVar23 ^ 0x929f7c88)) = **(ulonglong **)(lVar5 + -0x178) ^ uVar17 ^ uVar32
  ;
  uVar6 = DAT_1826716a0;
  uVar17 = uVar17 ^ *(ulonglong *)(lVar5 + -0x688);
  puVar3 = (ulonglong *)
           (*(longlong *)(lVar5 - (uVar29 ^ 0x97bfbe97)) +
           (CONCAT44(DAT_182671568,uVar21) ^ 0x12680a3a109d901) * 8);
  *(ulonglong **)(lVar5 + -0xb78) = puVar3;
  uVar23 = CONCAT44(uVar6,uVar6);
  uVar28 = uVar23 ^ uVar32 ^ *puVar3;
  *(ulonglong *)(lVar5 + -0x240) = uVar28;
  uVar6 = DAT_1826717c0;
  puVar3 = (ulonglong *)
           (*(longlong *)(lVar5 + -0x178) +
           (CONCAT44(uVar21,DAT_182671568) ^ 0xa109d900012680a1) * 8);
  *(ulonglong **)(lVar5 + -0x70) = puVar3;
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 + -0x898) = uVar29 ^ uVar32 ^ *puVar3;
  uVar21 = DAT_182671574;
  *(ulonglong *)(lVar5 + -0x1d8) = uVar17 >> ((byte)*(undefined8 *)(lVar5 + -0x2a0) & 0x3f);
  uVar11 = DAT_1826715b4;
  puVar3 = (ulonglong *)
           (*(longlong *)(lVar5 + -0x178) + (CONCAT44(uVar21,uVar8) ^ 0x3396a3002ad8d98a) * 8);
  *(ulonglong **)(lVar5 + -0x218) = puVar3;
  uVar33 = uVar32 ^ *puVar3;
  *puVar20 = uVar33;
  uVar6 = DAT_182671688;
  uVar22 = DAT_1826715a8;
  lVar4 = DAT_182671560;
  uVar27 = (ulonglong)DAT_1826715a8;
  uVar36 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       uVar17 - (CONCAT44(uVar11,DAT_1826715a8) ^ 0x6187f85c203974e9) ^ uVar36;
  uVar24 = CONCAT44(uVar6,uVar6);
  uVar26 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar4 + -0x8a8) =
       (uVar23 ^ uVar28) - (CONCAT44(uVar21,uVar38) ^ 0xd5a3ceaca4ef2e7b) ^ uVar24;
  uVar6 = DAT_18267172c;
  *(ulonglong *)(lVar4 + -0x6d0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671568 ^ 0x126883b)) ^ uVar29) -
       (CONCAT44(uVar9,DAT_18267158c) ^ 0x2fdcb060c814e0fd) ^ uVar26;
  uVar21 = DAT_182671588;
  uVar35 = (ulonglong)DAT_182671588;
  uVar18 = DAT_182671588 * uVar22;
  uVar23 = CONCAT44(uVar6,uVar6);
  DAT_18267158c = uVar18;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671588 ^ 0xfedb7a4c)) = uVar33 - 0x12 ^ uVar23;
  uVar29 = CONCAT44(DAT_182671744,DAT_182671744);
  uVar23 = (uVar23 ^ *puVar1) - (CONCAT44(uVar18,uVar22) ^ 0xa6476c42cd52defa) ^ uVar29;
  *(ulonglong *)(lVar4 + -0xa60) = uVar23;
  uVar17 = (ulonglong)DAT_18267170c;
  uVar33 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar18,uVar21) ^ 0x984779ff335377ac) + 0x84657659ee60a498;
  uVar23 = uVar33 ^ uVar23 ^ uVar29 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0xbf0);
  uVar28 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar4 + -0xa88) = uVar23;
  *(ulonglong *)(lVar4 + -0x800) = uVar23 >> 0x20 ^ uVar17 ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xfedb7974)) =
       (CONCAT44(uVar18,uVar22) ^ 0x6091fe0149c3b6b3) + 0x27b1e08e5bd9fb49;
  uVar23 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x96bf33e6)) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0xa88)) << (((byte)uVar21 ^ 0x7c) & 0x3f) ^ uVar23;
  uVar6 = DAT_1826716c4;
  lVar5 = DAT_182671560;
  uVar35 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar4 + -0x80) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0x96bf37ee)) ^ uVar28 |
       *(ulonglong *)(lVar4 + -0xc08) ^ uVar23) ^ uVar35;
  uVar12 = DAT_182671758;
  uVar28 = CONCAT44(uVar6,uVar6);
  uVar23 = *(ulonglong *)(lVar5 + -0x6d0);
  *(ulonglong *)(lVar5 + -0x670) =
       (uVar36 ^ *(ulonglong *)(lVar5 + -0xbf0)) -
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0xe20c0b08)) ^ uVar35) ^ uVar28;
  uVar6 = DAT_182671704;
  uVar36 = uVar26 ^ uVar24 ^ *(ulonglong *)(lVar5 + -0x8a8) ^ uVar23;
  *(ulonglong *)(lVar5 + -0x318) = uVar36 ^ CONCAT44(uVar12,uVar12);
  uVar24 = CONCAT44(uVar6,uVar6);
  local_d0 = (byte)uVar22;
  *(ulonglong *)(lVar5 + -0x2a0) = uVar36 >> ((local_d0 ^ 0xce) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar5 + -0x1d8) = uVar36 << 0x20 ^ CONCAT44(DAT_182671778,DAT_182671778);
  uVar6 = DAT_1826715d4;
  uVar17 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar5 + -0x688) =
       (CONCAT44(uVar18,uVar21) ^ 0x12c463cd56175296) -
       (CONCAT44(uVar18,uVar18) ^ 0x7640f12380e0d615);
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(uVar6,uVar6);
  uVar17 = *(ulonglong *)(DAT_182671560 - (uVar17 ^ 0x2a001ea2)) ^ uVar24 | uVar36 << 0x20;
  uVar36 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar17 ^ uVar33;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a4 ^ 0xfed977c4)) =
       (uVar26 ^ uVar23) - uVar17 ^ uVar36;
  uVar6 = DAT_182671570;
  *puVar20 = (CONCAT44(uVar10,uVar21) ^ 0x60f4f1926568dfa7) +
             (uVar29 ^ *(ulonglong *)(lVar4 + -0xa60));
  uVar23 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *puVar1 = *(ulonglong *)(lVar4 + -0x670) ^ uVar23 ^ uVar33 ^ uVar28 ^
            *(ulonglong *)(lVar4 + -0x240);
  uVar23 = *puVar1 ^ uVar23;
  uVar22 = DAT_182671580 * DAT_1826715a0;
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(DAT_1826715b0,uVar6) ^ 0x195e1c4b387b5a4e) + 0x15fc537fccc4b3f6;
  uVar12 = DAT_182671830;
  uVar26 = CONCAT44(DAT_182671830,DAT_182671830);
  DAT_182671568 = uVar22;
  *puVar2 = uVar23 >> (((byte)uVar21 ^ 0x66) & 0x3f) ^ uVar26;
  uVar6 = DAT_182671734;
  uVar17 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar4 + -0xa88) = uVar23 << (((byte)uVar18 ^ 0x8e) & 0x3f) ^ uVar17;
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x2ad8d189)) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x120068b)) ^ uVar26 |
       *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x23288b3)) ^ uVar17) ^ uVar29;
  lVar5 = DAT_182671560;
  uVar37 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar17 = (*(ulonglong *)(lVar4 + -0x670) ^ uVar28) - (*(ulonglong *)(lVar4 + -0x800) ^ uVar29) ^
           uVar37;
  *(ulonglong *)(lVar4 + -0xc08) = uVar17;
  uVar13 = DAT_182671860;
  *(ulonglong *)(lVar4 + -0xbf0) =
       **(ulonglong **)(lVar4 - ((ulonglong)uVar22 ^ 0x2328023)) ^ uVar32;
  uVar6 = DAT_1826717f8;
  uVar28 = CONCAT44(uVar13,uVar13);
  uVar33 = *(ulonglong *)(lVar4 + -0x80) ^ uVar28 ^ uVar36 ^ uVar35 ^ *(ulonglong *)(lVar5 + -0x898)
  ;
  *(ulonglong *)(lVar5 + -0x318) =
       CONCAT44(uVar38,uVar8) ^ 0x809e63c6fb1b57a4 | CONCAT44(uVar8,uVar38) ^ 0xbff78fff33a3589e;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar33;
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0x120080b)) ^ uVar28) >> (((byte)uVar22 ^ 0x2d) & 0x3f) ^
       uVar23;
  lVar4 = DAT_182671560;
  uVar26 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar32 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (uVar33 ^ uVar28) << (((byte)uVar38 ^ 0x89) & 0x3f) ^ uVar26;
  uVar33 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x23283e3)) ^ uVar26 | *puVar19 ^ uVar23) ^
           uVar32;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar33;
  *(ulonglong *)(lVar4 + -0xa60) =
       (*(ulonglong *)(lVar4 + -0x2a0) ^ uVar24) - (CONCAT44(uVar38,uVar38) ^ 0x536b5bf903f2efce);
  lVar5 = DAT_182671560;
  uVar28 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar23 = (ulonglong)DAT_18267159c;
  *puVar20 = (*(ulonglong *)(lVar4 - (uVar27 ^ 0x96bf3776)) ^ uVar36) -
             (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0x23284eb)) ^ uVar32) ^ uVar28;
  uVar36 = CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar24 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar17 = uVar17 ^ uVar33 ^ uVar36 ^ uVar32 ^ uVar37;
  *(ulonglong *)(lVar5 + -0x240) = uVar17;
  bVar14 = *(byte *)puVar2;
  *(ulonglong *)(lVar5 + -0x110) =
       (*(ulonglong *)(lVar5 - (uVar23 ^ 0xa109db40)) ^ uVar36) >> (((byte)uVar38 ^ 0x8d) & 0x3f) ^
       uVar24;
  local_68 = (byte)uVar25;
  *puVar1 = (CONCAT44(uVar21,uVar22) ^ 0x342768021d6d3bd3) >> ((bVar14 ^ (byte)uVar12) & 0x3f);
  *(ulonglong *)(lVar5 + -0xa88) = (uVar36 ^ uVar17) << ((local_68 ^ 0xfd) & 0x3f) ^ uVar26;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x12006d3)) =
       CONCAT44(uVar8,uVar8) ^ 0xe6daffebba7ffe5f | 0x6412fb63223f7455;
  uVar6 = _DAT_1826715e0;
  uVar23 = *(ulonglong *)(lVar5 - (uVar27 ^ 0x96bf3566)) ^ uVar26 |
           *(ulonglong *)(lVar5 + -0x110) ^ uVar24;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar23 ^ CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar24 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 + -0x80) = (*(ulonglong *)(lVar5 + -0xc08) ^ uVar37) - uVar23 ^ uVar24;
  uVar21 = DAT_182671594;
  uVar17 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x2ad8d121)) =
       *(ulonglong *)(lVar5 + -0x800) ^ uVar17 ^ uVar28 ^ uVar29 ^ *puVar20;
  uVar6 = DAT_1826716ac;
  *(ulonglong *)(lVar5 + -0x1d8) =
       CONCAT44(DAT_182671590,uVar21) ^ CONCAT44(uVar18,uVar22) ^ 0x28b6162b38b54f1e;
  uVar21 = DAT_1826715b0;
  uVar26 = (ulonglong)DAT_1826715b0;
  uVar23 = CONCAT44(DAT_18267156c,uVar9);
  uVar30 = (*(ulonglong *)(lVar5 + -0x8a8) ^ uVar17) >> (((byte)DAT_1826715b0 ^ 0x1c) & 0x3f);
  *(ulonglong *)(lVar5 + -0x688) = uVar30 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 + -0x2a0) =
       (uVar23 ^ 0x112e2bd51e4779ff) + (uVar24 ^ *(ulonglong *)(lVar5 + -0x80));
  uVar26 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0x60798b8)) ^ uVar17) << (((byte)uVar22 ^ 0xf) & 0x3f);
  uVar23 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar5 + -0xa60) = uVar26 ^ CONCAT44(DAT_182671834,DAT_182671834);
  uVar6 = DAT_182671628;
  *(ulonglong *)(lVar5 + -0x898) =
       (CONCAT44(uVar11,uVar7) ^ 0x93a03bae12563953) + *(longlong *)(lVar5 - (uVar23 ^ 0x1c022918));
  uVar12 = DAT_1826716cc;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671574 ^ 0x3396a5d0)) = (uVar26 | uVar30) ^ uVar17;
  uVar26 = CONCAT44(uVar18,DAT_182671570);
  uVar23 = CONCAT44(DAT_1826715a4,uVar21);
  *puVar2 = (uVar28 ^ *puVar20) - (*(ulonglong *)(lVar5 - (uVar16 ^ 0xf12956a7)) ^ uVar17) ^
            CONCAT44(uVar12,uVar12);
  *puVar1 = uVar23 ^ uVar26 ^ 0xeb583cfddcab34a6;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar31;
  return;
}



############ FUN_ 180efab80 size=6045 ############

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

void FUN_180efab80(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_res18;
  byte local_110;
  byte local_100;
  
  uVar14 = DAT_182671874;
  uVar6 = DAT_1826715fc;
  uVar11 = DAT_1826715a4;
  uVar7 = DAT_182671594;
  uVar8 = DAT_182671584;
  uVar5 = DAT_18267156c;
  uVar4 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar44 = (ulonglong)DAT_1826715a4;
  uVar18 = DAT_1826715a8 & 7;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      uVar40 = DAT_182671580;
      if (uVar18 == 0) {
        uVar40 = DAT_1826715a8;
      }
    }
    else {
      uVar40 = DAT_182671588;
      if (uVar18 < 3) {
        uVar40 = DAT_1826715b4;
      }
    }
  }
  else if (uVar18 < 6) {
    uVar40 = DAT_182671574;
    if (uVar18 < 5) {
      uVar40 = DAT_1826715a4;
    }
  }
  else {
    uVar40 = DAT_182671590;
    if (uVar18 < 7) {
      uVar40 = DAT_182671570;
    }
  }
  uVar46 = (ulonglong)DAT_182671584;
  DAT_182671578 = DAT_182671594 * DAT_182671568;
  uVar24 = (ulonglong)DAT_182671578;
  uVar22 = DAT_182671584 + DAT_18267156c;
  uVar34 = *(uint *)(&DAT_182611e78 + DAT_1826719a8) ^ DAT_18267156c;
  uVar19 = *(uint *)(&DAT_182611e80 + DAT_1826719a8) ^ DAT_182671584;
  DAT_182671598 = uVar22;
  DAT_1826715b0 = uVar40;
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       CONCAT44(DAT_1826717b0,DAT_1826717b0) ^ *(ulonglong *)(DAT_182671560 + -0x5c8) |
       CONCAT44(uVar22,DAT_182671578) ^ 0x1d69461f9272efda;
  uVar17 = DAT_18267177c;
  uVar15 = DAT_1826716f4;
  uVar47 = CONCAT44(uVar6,uVar6);
  uVar26 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar20 = (ulonglong)uVar4;
  uVar39 = (ulonglong)uVar7;
  uVar30 = *(ulonglong *)(lVar2 - (uVar20 ^ 0x2110c20)) ^ CONCAT44(uVar14,uVar14) ^ uVar26 ^ uVar47
           ^ *(ulonglong *)(lVar2 + -0x800);
  *(ulonglong *)(lVar2 + -0x638) = uVar30;
  uVar16 = DAT_182671750;
  uVar18 = DAT_18267158c;
  uVar33 = CONCAT44(uVar17,uVar17);
  puVar31 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0x5db159d1));
  *(ulonglong *)(lVar2 + -0x80) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0x4235438d)) ^ CONCAT44(uVar15,uVar15)) + (uVar30 ^ uVar47)
       ^ uVar33;
  uVar14 = DAT_1826715bc;
  uVar10 = DAT_1826715b4;
  uVar9 = DAT_18267159c;
  uVar6 = DAT_182671570;
  *(ulonglong *)(lVar2 + -0x688) =
       (CONCAT44(uVar16,uVar16) ^ *puVar31) + (CONCAT44(uVar40,uVar18) ^ 0x819b1fda5dc835f2);
  uVar12 = DAT_1826715a8;
  uVar40 = DAT_182671588;
  uVar18 = DAT_182671574;
  uVar43 = CONCAT44(DAT_1826715a8,uVar10);
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar29 = (ulonglong)DAT_182671574;
  bVar28 = (byte)DAT_182671574;
  *(ulonglong *)(lVar2 - (uVar44 ^ 0x22110a90)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x4f75cc0d)) ^ uVar47) <<
       (((byte)uVar10 ^ 0xa4) & 0x3f) ^ uVar41;
  uVar32 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar30 = (ulonglong)DAT_182671580;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0xd094d957)) =
       (uVar47 ^ *(ulonglong *)(DAT_182671560 + -0x638)) >> ((bVar28 ^ 0xf1) & 0x3f) ^ uVar32;
  lVar2 = DAT_182671560;
  uVar35 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar23 = CONCAT44(DAT_18267157c,uVar18);
  uVar27 = (ulonglong)uVar5;
  uVar32 = (*(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xffffff5f)) ^ uVar41 |
           uVar32 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) ^ uVar35;
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar32;
  uVar15 = DAT_182671778;
  uVar10 = DAT_1826715a0;
  uVar30 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0xa80) =
       uVar23 ^ 0x740ea437971e8ea5 | CONCAT44(uVar11,uVar5) ^ 0xebfbe096261f25d6;
  uVar6 = DAT_1826718d0;
  uVar41 = (ulonglong)DAT_1826718d0;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0x5db15139)) =
       *(ulonglong *)(lVar2 - (uVar30 ^ 0x2f6b27d8)) ^ CONCAT44(uVar15,uVar15) ^ uVar35 ^ uVar33 ^
       uVar32;
  uVar14 = DAT_18267163c;
  *(ulonglong *)(lVar2 + -0x670) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0x1f61358a)) ^
       CONCAT44(DAT_182671700,DAT_182671700)) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar22 ^ 0x6d862a85)) ^ (byte)uVar15) & 0x3f);
  uVar16 = _DAT_182671868;
  lVar2 = DAT_182671560;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar32 = CONCAT44(uVar6,uVar6);
  uVar30 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0xbdcab632));
  uVar23 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0xfffff7ff));
  uVar42 = (uVar32 ^ *(ulonglong *)(DAT_182671560 + -0x3b8)) << (((byte)uVar8 ^ 0x86) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xc08) = uVar42 ^ CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar2 + -0x748) = (uVar30 ^ uVar32) + (uVar23 ^ uVar26) ^ uVar35;
  uVar14 = DAT_1826717c0;
  uVar30 = CONCAT44(DAT_182671864,DAT_182671864);
  uVar23 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0x5db15971)) >> 0x20 ^ uVar41) >>
           0x14;
  uVar41 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar2 + -0x600) = uVar23 ^ CONCAT44(uVar16,uVar16);
  uVar23 = (uVar23 | uVar42) ^ uVar30;
  puVar25 = (ulonglong *)(lVar2 - ((ulonglong)uVar40 ^ 0x1f8417f4));
  *(ulonglong *)(lVar2 + -0xa88) = uVar23;
  uVar26 = (ulonglong)DAT_182671808;
  *(ulonglong *)(lVar2 + -0xa60) = uVar41 ^ uVar30 ^ uVar35 ^ uVar23 ^ *puVar25;
  *(byte *)(lVar2 - ((ulonglong)DAT_18267159c ^ 0x4f75cd40)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar39 ^ 0x42354375)) ^ uVar26) ^ (byte)uVar14;
  uVar40 = DAT_1826715b0;
  uVar42 = CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar30 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0xb3c9aa42)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b0 ^ 0xd094d2c7)) ^ uVar41) +
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x80)) ^ uVar42;
  *(byte *)(lVar2 - ((ulonglong)uVar10 ^ 0x2f6b25a9)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar30 ^ 0x300a1822)) ^ uVar26) ^ (byte)uVar14;
  uVar6 = DAT_182671570;
  uVar36 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x2110c88)) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0xa60)) << (((byte)uVar40 ^ 0x9d) & 0x3f) ^ uVar36;
  uVar14 = DAT_182671860;
  uVar32 = CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar2 + -0xbf0);
  uVar26 = CONCAT44(DAT_182671630,DAT_182671630);
  puVar45 = (ulonglong *)(lVar2 - (uVar24 ^ 0x5aab81e0));
  uVar30 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0x610) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0xa60)) >> (((byte)uVar6 ^ 0xa1) & 0x3f) ^ uVar26;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar26 = (uVar26 ^ *puVar45 | uVar36 ^ *(ulonglong *)(lVar2 + -0x6b8)) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x9f8) = uVar26;
  *(ulonglong *)(lVar2 + -0x318) =
       *(ulonglong *)(lVar2 - (uVar30 ^ 0xef6bb2b6)) ^ uVar26 ^ uVar23 ^ uVar42 ^ uVar47;
  *(uint *)(lVar2 + -0x774) = (uVar5 ^ 0x4c61c958) * 0x10e29145;
  uVar26 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar2 + -0x688) = (uVar35 ^ *(ulonglong *)(lVar2 + -0x748)) + uVar32 ^ uVar26;
  uVar14 = DAT_18267169c;
  uVar6 = DAT_182671580;
  local_110 = (byte)uVar22;
  uVar37 = CONCAT44(DAT_182671818,DAT_182671818);
  uVar30 = uVar32 << ((local_110 ^ 99) & 0x3f);
  local_100 = (byte)uVar11;
  uVar32 = uVar32 >> ((local_100 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa0) = uVar32 ^ CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar2 + -0x638) = uVar30 ^ uVar37;
  uVar9 = DAT_18267159c;
  uVar40 = DAT_18267158c;
  lVar2 = DAT_182671560;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = (uVar32 | uVar30) ^ uVar23;
  uVar13 = DAT_1826715b4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b0 ^ 0xd094d227)) =
       CONCAT44(uVar40,DAT_1826715b4) ^ 0x78c810479d6e100d |
       CONCAT44(uVar9,uVar6) ^ 0x225c5ff5ce40e433;
  uVar40 = DAT_182671588;
  uVar41 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x4f75cbed)) =
       *(ulonglong *)(DAT_182671560 + -0x688) ^ *(ulonglong *)(DAT_182671560 + -0x1f0) ^ uVar41 ^
       uVar23 ^ uVar26;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       (*(ulonglong *)(DAT_182671560 + -0x688) ^ uVar26) << (((byte)uVar40 ^ 0xb4) & 0x3f);
  lVar3 = DAT_182671560;
  uVar35 = CONCAT44(_DAT_182671610,_DAT_182671610);
  *(ulonglong *)(lVar2 + -0x670) =
       (*(ulonglong *)(lVar2 + -0x1d8) ^ uVar41) + (uVar42 ^ *(ulonglong *)(lVar2 + -0x5c8)) ^
       uVar35;
  uVar32 = CONCAT44(DAT_182671858,DAT_182671858);
  bVar21 = (byte)DAT_18267157c;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xafbb63eb)) =
       (*(ulonglong *)(lVar2 + -0x1d8) ^ uVar41) << ((bVar28 ^ 0xc3) & 0x3f) ^ uVar32;
  uVar14 = DAT_182671748;
  *(uint *)(lVar3 + -0x678) = (uVar10 ^ 0xa3e2c897) & (DAT_182671574 ^ 0x69dda011);
  lVar2 = DAT_182671560;
  uVar42 = CONCAT44(uVar14,uVar14);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x800);
  uVar30 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 + -0x3b8) =
       (*(ulonglong *)(DAT_182671560 + -0x1d8) ^ uVar41) >> ((bVar21 ^ 2) & 0x3f) ^ uVar42;
  uVar40 = DAT_182671590;
  uVar48 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar23 = CONCAT44(DAT_182671590,uVar10);
  *(ulonglong *)(lVar2 + -0xc08) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0xd094db1f)) ^ uVar42 | uVar32 ^ *puVar1) ^ uVar48;
  *(ulonglong *)(lVar2 - (uVar44 ^ 0x22110c30)) =
       uVar23 ^ CONCAT44(uVar13,uVar22) ^ 0xd3ebe4f9d317da18;
  uVar38 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671570 ^ 0xd094d22f)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0x1f613a72)) ^
       *(ulonglong *)(lVar2 + -0x670) ^ uVar38 ^ uVar48 ^ uVar35;
  uVar26 = *(ulonglong *)(lVar2 + -0x688) ^ uVar26;
  *(ulonglong *)(lVar2 + -0x80) = uVar38 ^ *(ulonglong *)(lVar2 + -0xa88) | uVar26;
  uVar32 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(DAT_182671560 - (uVar44 ^ 0x22110050)) =
       (*(ulonglong *)(DAT_182671560 - (uVar39 ^ 0x4235496d)) ^ uVar47) + uVar26 ^ uVar32;
  lVar2 = DAT_182671560;
  bVar21 = (byte)DAT_18267157c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar40 ^ 0x5db15c71)) =
       CONCAT44(uVar6,uVar5) ^ 0xfdfdf3f77ddfddc7 | 0x71ddf3f33c555807;
  uVar39 = (uVar47 ^ *(ulonglong *)(lVar2 + -0x318)) << ((bVar21 ^ 2) & 0x3f);
  uVar26 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar2 + -0x610) = uVar39 ^ CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar15 = DAT_182671654;
  *(ulonglong *)(lVar2 + -0x9f8) =
       *(ulonglong *)(lVar2 - (uVar20 ^ 0x2110928)) >> 0x20 ^ (ulonglong)DAT_1826715fc ^ uVar26;
  uVar14 = _DAT_18267161c;
  uVar23 = CONCAT44(uVar15,uVar15);
  uVar30 = *(ulonglong *)(lVar2 - (uVar27 ^ 0xafbb6213));
  *(ulonglong *)(lVar2 + -0xbf0) =
       (uVar42 ^ *(ulonglong *)(lVar2 + -0x3b8)) + *(longlong *)(lVar2 + -0x80);
  lVar3 = DAT_182671560;
  uVar30 = (uVar30 ^ uVar26 | uVar39) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x748) = uVar30;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar23 = *(ulonglong *)(lVar3 + -0xa60) ^ uVar30 ^ uVar41 ^ uVar23 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x638) = uVar23;
  uVar30 = (ulonglong)DAT_18267158c;
  *(int *)(lVar3 + -0x640) =
       *(int *)(lVar3 - (uVar24 ^ 0x5aab8fb4)) << ((byte)*(undefined4 *)(lVar3 + -0x344) & 0x1f);
  uVar42 = CONCAT44(DAT_18267164c,DAT_18267164c);
  uVar39 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar3 + -0xa0) = (uVar41 ^ uVar23) + (uVar43 ^ 0xa8e8f3a00755e787) ^ uVar42;
  uVar6 = DAT_182671570;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x1f613cfa)) =
       (CONCAT44(DAT_182671570,uVar4) ^ 0xfbe5aa8e058ebc14) +
       (*(ulonglong *)(lVar3 + -0x670) ^ uVar35) ^ uVar39;
  uVar35 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xafbb6a1b)) =
       (*(ulonglong *)(lVar3 + -0xa80) ^ uVar39) + (*(ulonglong *)(lVar3 + -0xa0) ^ uVar42) ^ uVar35
  ;
  bVar21 = (byte)DAT_18267159c;
  *(uint *)(lVar3 + -0x968) = (DAT_1826715a4 ^ 0x7da1871) - *(int *)(lVar3 - (uVar46 ^ 0xbdcab642));
  lVar2 = DAT_182671560;
  uVar43 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar41 = (*(ulonglong *)(DAT_182671560 + -0xa0) ^ uVar42) << ((bVar21 ^ 0x3b) & 0x3f);
  uVar30 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0x3f0) = uVar41 ^ uVar43;
  uVar23 = (*(ulonglong *)(lVar2 - (uVar30 ^ 0xef6bb7de)) ^ uVar42) >> (((byte)uVar5 ^ 0xd9) & 0x3f)
  ;
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar23 ^ uVar42;
  uVar14 = DAT_1826715d4;
  uVar40 = DAT_18267159c;
  lVar2 = DAT_182671560;
  uVar39 = (ulonglong)DAT_18267159c;
  uVar30 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar23 = (uVar41 | uVar23) ^ uVar30;
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar23;
  *(ulonglong *)(lVar2 + -0x800) =
       uVar23 ^ CONCAT44(uVar14,uVar14) ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x1f0) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x600) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0x4f75c63d)) ^ uVar48) -
       (CONCAT44(uVar4,uVar10) ^ 0x39274fde0b039498);
  *(ulonglong *)(lVar2 + -0x688) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_18267157c ^ 0x300a1baa)) ^ uVar38) +
       (CONCAT44(uVar11,uVar40) ^ 0xb825f9888b6bc00) ^ uVar43;
  uVar30 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (CONCAT44(uVar9,DAT_1826715b0) ^ 0xb07aa9782a89816f) +
       (*(ulonglong *)(lVar2 + -0xa60) ^ uVar32) ^ uVar30;
  local_res18 = (byte)uVar7;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671580 ^ 0xfffffce7)) =
       *(ulonglong *)(lVar2 + -0x9f8) ^ uVar26 | uVar48 ^ *(ulonglong *)(lVar2 + -0xc08);
  uVar15 = DAT_1826716e8;
  uVar39 = CONCAT44(DAT_182671798,DAT_182671798);
  *puVar45 = (uVar30 ^ *(ulonglong *)(lVar2 + -0x6b8)) + (*(ulonglong *)(lVar2 + -0x688) ^ uVar43) ^
             uVar39;
  lVar2 = DAT_182671560;
  uVar26 = CONCAT44(uVar15,uVar15);
  bVar21 = (byte)DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0xd094db1f)) =
       (*(ulonglong *)(DAT_182671560 + -0x688) ^ uVar43) << ((local_res18 ^ 0x65) & 0x3f) ^ uVar26;
  uVar23 = (*(ulonglong *)(lVar2 + -0x688) ^ uVar43) >> ((bVar21 ^ 0x97) & 0x3f);
  *(ulonglong *)(lVar2 + -0x80) = uVar23 ^ CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (CONCAT44(uVar18,DAT_182671590) ^ 0x8f71518ef401665) <<
       ((*(byte *)(lVar2 - (uVar24 ^ 0x5aab8ff0)) ^ (byte)uVar14) & 0x3f);
  uVar30 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar2 - (uVar46 ^ 0xbdcab2c2)) =
       (uVar23 | uVar26 ^ *(ulonglong *)(lVar2 + -0x3b8)) ^ uVar30;
  lVar3 = DAT_182671560;
  uVar32 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar2 + -0x638) =
       *(ulonglong *)(lVar2 + -0x748) ^ uVar32 ^ uVar30 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x610);
  uVar15 = DAT_1826718bc;
  uVar41 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar30 = (ulonglong)DAT_182671580;
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x6d86274d)) ^ uVar32) +
           (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar35) ^ uVar41;
  *(ulonglong *)(lVar3 + -0x670) = uVar26;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xfffff9c7)) ^ uVar32) <<
           (((byte)DAT_182671588 ^ 0x88) & 0x3f);
  uVar30 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar3 + -0xa80) = uVar23 ^ CONCAT44(uVar15,uVar15);
  uVar32 = (uVar32 ^ *(ulonglong *)(lVar3 + -0x638)) >> ((local_110 ^ 0x79) & 0x3f);
  *(undefined8 *)(lVar3 + -0x3f0) = 0xb91ce42dc8553a31;
  uVar15 = DAT_182671724;
  *(ulonglong *)(lVar3 + -0xa0) = uVar32 ^ uVar30;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar23 = (uVar32 | uVar23) ^ uVar30;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar23;
  uVar7 = DAT_182671570;
  *(ulonglong *)(lVar3 + -0x1d8) = uVar36 ^ uVar23 ^ uVar30 ^ uVar41 ^ uVar26;
  *(uint *)(lVar3 - (uVar27 ^ 0xafbb689f)) =
       *(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0xd094dda3)) | DAT_18267157c ^ 0xb57ee6a1;
  uVar15 = DAT_182671624;
  lVar2 = DAT_182671560;
  uVar35 = CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar3 + -0x800);
  uVar26 = uVar35 << (((byte)uVar7 ^ 0x9e) & 0x3f);
  bVar21 = (byte)DAT_182671590;
  uVar32 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  uVar23 = (uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x610)) + uVar35 ^ uVar32;
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar23;
  *(ulonglong *)(lVar2 + -0xa88) = uVar26 ^ CONCAT44(uVar15,uVar15);
  lVar2 = DAT_182671560;
  uVar35 = uVar35 >> (((byte)uVar5 ^ 0xec) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       (CONCAT44(uVar9,uVar4) ^ 0x39c6814bccbf2c73) >> ((bVar21 ^ 0xd6) & 0x3f);
  uVar14 = DAT_18267183c;
  uVar39 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(lVar2 + -0x9f8) = uVar35 ^ uVar39;
  *(ulonglong *)(lVar2 + -0xc08) = uVar35 >> ((local_110 ^ 0x78) & 0x3f);
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x318) = (uVar26 | uVar35) ^ uVar30;
  uVar14 = DAT_182671880;
  uVar43 = (ulonglong)DAT_1826715c4;
  uVar42 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar23 = *puVar31 ^ uVar42 ^ uVar30 ^ uVar32 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar23;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar35 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar2 + -0x688) =
       (*(ulonglong *)(lVar2 - (uVar44 ^ 0x22110c88)) ^ uVar42) +
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x670)) ^ uVar26;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x21101c0)) =
       (uVar42 ^ uVar23) << ((local_res18 ^ 0x62) & 0x3f) ^ uVar35;
  uVar41 = *(ulonglong *)(lVar2 + -0xbf0) ^ uVar35;
  uVar30 = (ulonglong)DAT_1826715b4;
  uVar23 = (*(ulonglong *)(lVar2 - (uVar27 ^ 0xafbb6d53)) >> 0x20 ^ uVar43) >> 9;
  *(ulonglong *)(lVar2 + -0x3b8) = uVar23 ^ uVar33;
  uVar14 = DAT_182671830;
  *(ulonglong *)(lVar2 + -0x80) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0xb3c9a47a)) ^ uVar35) + 0x85847c65c0dba92b;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x748) = (uVar23 | uVar41) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x1f0) =
       CONCAT44(uVar6,uVar22) ^ *(ulonglong *)(lVar2 + -0x9f8) ^ uVar39 ^ 0xc71e343169adeb30;
  uVar14 = DAT_18267167c;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x638) =
       *(ulonglong *)(lVar2 - (uVar46 ^ 0xbdcab302)) ^ uVar35 ^ uVar26 ^ uVar38 ^ *puVar25;
  uVar15 = _DAT_182671838;
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x3f0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0xd094dea7)) ^ uVar32) +
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x1d8)) ^ uVar27;
  uVar14 = DAT_182671790;
  uVar32 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x1f6137a2)) ^ uVar36) <<
           (((byte)DAT_182671580 ^ 0xd7) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa80) = uVar32 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671840;
  uVar46 = (uVar36 ^ *(ulonglong *)(lVar3 + -0x1d8)) >> ((local_res18 ^ 0x6d) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa0) = uVar46 ^ CONCAT44(uVar14,uVar14);
  uVar23 = (ulonglong)DAT_18267159c;
  uVar39 = CONCAT44(uVar15,uVar15);
  uVar30 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar3 + -0x5c8) = (uVar46 | uVar32) ^ uVar39;
  *(ulonglong *)(lVar3 + -0x610) =
       (CONCAT44(uVar12,uVar5) ^ 0x1d9cfdb5ea699a19) >> ((byte)uVar41 & 0x3f);
  uVar14 = DAT_18267162c;
  uVar23 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x5db15939)) ^
           *(ulonglong *)(lVar3 - (uVar23 ^ 0x4f75cffd)) ^ uVar39 ^ uVar27;
  *(ulonglong *)(lVar3 + -0xa60) = uVar23 ^ uVar37;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar30 = (ulonglong)DAT_18267157c;
  uVar39 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar3 + -0x800) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x5aab8d90)) ^ uVar37) +
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0x22110cb8)) ^ uVar26) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x300a1d2a)) = uVar23 << 5 ^ uVar39;
  uVar14 = DAT_1826718d4;
  *(ulonglong *)(lVar3 + -0xa88) =
       CONCAT44(uVar8,uVar10) ^ 0x402c00bf27a36fa8 | *(ulonglong *)(lVar3 + -0x748) ^ uVar35;
  uVar30 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0x2eb04283)) ^ uVar37) >> ((local_res18 ^ 0x4e) & 0x3f)
  ;
  uVar23 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar3 + -0x318) = uVar30 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_1826716f8;
  uVar39 = (uVar30 | uVar39 ^ *(ulonglong *)(lVar3 + -0xc08)) ^ uVar23;
  *(ulonglong *)(lVar3 + -0x670) = uVar39;
  uVar15 = DAT_182671894;
  uVar30 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0x2110230)) ^ CONCAT44(uVar14,uVar14) ^ uVar39 ^ uVar23 ^
       uVar32;
  uVar14 = DAT_1826717c0;
  uVar4 = DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0x80) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0xfffffc0f)) ^ uVar27) +
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0x22110c08)) ^ uVar38) ^ CONCAT44(uVar15,uVar15);
  uVar44 = *(ulonglong *)(lVar3 + -0x638);
  bVar21 = (byte)DAT_18267158c;
  *(ulonglong *)(lVar3 + -0x3b8) =
       (uVar38 ^ *(ulonglong *)(lVar3 + -0x638)) << (((byte)uVar4 ^ 0x82) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  uVar30 = CONCAT44(DAT_182671604,DAT_182671604);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar19 * 4) = uVar34;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x5aab8e08)) =
       (uVar38 ^ uVar44) >> ((bVar21 ^ 0x61) & 0x3f) ^ uVar30;
  return;
}



############ FUN_ 180ee5740 size=5574 ############

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

void FUN_180ee5740(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  uint uVar5;
  byte bVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  byte bVar16;
  uint uVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  byte local_c8;
  byte local_88;
  byte local_60;
  ulonglong uVar27;
  
  uVar11 = DAT_1826718a8;
  uVar13 = DAT_1826715b4;
  uVar17 = DAT_182671594;
  uVar9 = DAT_182671590;
  uVar14 = DAT_182671570;
  lVar7 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671570;
  uVar33 = (ulonglong)DAT_1826715b4;
  uVar19 = DAT_182671570 * DAT_1826715b4;
  uVar4 = DAT_182671594 + DAT_18267158c;
  uVar26 = (DAT_182671590 << 0x10 | DAT_182671590 & 0xff00) << 8 | DAT_182671590 >> 8 & 0xff00 |
           DAT_182671590 >> 0x18;
  uVar27 = (ulonglong)uVar26;
  uVar5 = *(uint *)(&DAT_182611e80 + DAT_182671968);
  uVar23 = *(uint *)(&DAT_182611e78 + DAT_182671968) ^ DAT_18267158c;
  uVar15 = (ulonglong)uVar19;
  uVar41 = CONCAT44(DAT_182671594,uVar19);
  bVar40 = (byte)uVar19;
  uVar29 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x748);
  uVar20 = (CONCAT44(DAT_1826718d0,DAT_1826718d0) ^ *(ulonglong *)(DAT_182671560 + -0x318)) >>
           ((bVar40 ^ 0x31) & 0x3f) ^ uVar29;
  DAT_1826715a4 = uVar26;
  DAT_1826715ac = uVar4;
  DAT_1826715b0 = uVar19;
  *puVar1 = uVar20;
  bVar16 = (byte)(uVar9 >> 0x18);
  puVar2 = (ulonglong *)(lVar7 + -0x3f0);
  *puVar2 = (CONCAT44(uVar4,uVar14) ^ 0x469cd70fb68c5b1d) >> ((bVar16 ^ 0xfb) & 0x3f);
  uVar21 = (ulonglong)uVar9;
  puVar24 = (ulonglong *)(lVar7 - (uVar21 ^ 0xfe75e8b0));
  uVar22 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar29 = (CONCAT44(DAT_1826718a4,DAT_1826718a4) ^ *(ulonglong *)(lVar7 + -0x670) |
           *puVar24 ^ uVar29) ^ uVar22;
  uVar18 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar29;
  uVar10 = DAT_1826717fc;
  *(ulonglong *)(lVar7 + -0x5c8) =
       (uVar18 ^ *(ulonglong *)(lVar7 + -0x110)) << (((byte)uVar20 ^ (byte)uVar11) & 0x3f);
  uVar12 = DAT_18267158c;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar25 = CONCAT44(DAT_182671830,DAT_182671830);
  puVar3 = (ulonglong *)(lVar7 + -0x9f8);
  uVar20 = *(ulonglong *)(lVar7 - ((ulonglong)uVar13 ^ 0x75fefed7)) ^ uVar29 ^ uVar25 ^ uVar30 ^
           uVar22;
  *puVar3 = uVar20;
  uVar11 = DAT_18267177c;
  uVar35 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar28 = (CONCAT44(uVar26,uVar12) ^ 0xc0a6b81eac5ab645) + (uVar20 ^ uVar30);
  uVar20 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar7 + -0x548) = uVar28 ^ uVar35;
  uVar10 = DAT_1826715f8;
  lVar7 = DAT_182671560;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar31 = CONCAT44(uVar12,uVar17);
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (uVar20 ^ *(ulonglong *)(DAT_182671560 + -0x610)) + (uVar31 ^ 0xd17c2056aa0666d7) ^ uVar29;
  uVar39 = CONCAT44(uVar10,uVar10);
  uVar32 = (*(ulonglong *)(lVar7 - (uVar21 ^ 0xfe75ed88)) ^ uVar29) + uVar28 ^ uVar39;
  uVar36 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar7 + -0x400) = uVar32;
  lVar7 = DAT_182671560;
  puVar38 = (ulonglong *)(DAT_182671560 + -0x548);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar28 << ((bVar16 ^ 0xf0) & 0x3f) ^ uVar36;
  uVar20 = (uVar35 ^ *puVar38) >> ((bVar16 ^ 0xcc) & 0x3f);
  uVar29 = CONCAT44(DAT_182671888,DAT_182671888);
  *puVar2 = uVar20 ^ CONCAT44(DAT_182671750,DAT_182671750);
  uVar20 = (*(ulonglong *)(lVar7 - (uVar34 ^ 0xfffffce7)) ^ uVar36 | uVar20) ^ uVar29;
  uVar37 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(lVar7 + -0x670) = uVar20;
  uVar10 = DAT_182671690;
  *(ulonglong *)(lVar7 + -0x110) = uVar37 ^ uVar29 ^ uVar39 ^ uVar20 ^ uVar32;
  uVar28 = CONCAT44(DAT_182671760,DAT_182671760);
  *puVar24 = (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar7 + -0x898)) +
             (uVar41 ^ 0x4d38993d0eca772f) ^ uVar28;
  uVar29 = CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_18267158c ^ 0xf8ef7036)) =
       (uVar25 ^ *(ulonglong *)(lVar7 + -0x638)) + (CONCAT44(uVar17,uVar4) ^ 0xaa72a24bdf2be37d) ^
       uVar29;
  lVar8 = DAT_182671560;
  *puVar3 = CONCAT44(uVar12,uVar13) ^ *(ulonglong *)(lVar7 + -0x6b8) ^ uVar22 ^ 0xd3ddeae4c5b79cf1;
  uVar20 = *puVar1;
  uVar35 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar7 + -0x610) =
       (*(ulonglong *)(lVar7 + -0x5c8) ^ uVar29) + (uVar28 ^ uVar20) ^ uVar35;
  uVar17 = DAT_182671594;
  uVar22 = CONCAT44(DAT_182671840,DAT_182671840);
  uVar29 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar8 + -0x270) = (uVar28 ^ uVar20) << ((bVar40 ^ 1) & 0x3f) ^ uVar22;
  uVar10 = DAT_182671798;
  puVar24 = (ulonglong *)(lVar8 - (uVar29 ^ 0x6dc515b8));
  local_c8 = (byte)uVar9;
  *puVar24 = 0xb2ee332793297744 >> (((byte)uVar4 ^ 0xc2) & 0x3f);
  uVar20 = (uVar28 ^ *puVar1) >> ((local_c8 ^ 200) & 0x3f);
  *puVar2 = uVar20 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar8 + -0x318) =
       -0x6af1f39ca0e7d91d - (CONCAT44(uVar19,uVar14) ^ 0xfd4626c110edfb1a);
  uVar10 = _DAT_1826715e0;
  uVar29 = CONCAT44(DAT_182671614,DAT_182671614);
  uVar20 = (*(ulonglong *)(lVar8 - (uVar27 ^ 0xf8ef778e)) ^ uVar22 | uVar20) ^ uVar29;
  *(ulonglong *)(lVar8 + -0x670) = uVar20;
  uVar12 = DAT_18267158c;
  uVar25 = CONCAT44(uVar10,uVar10);
  uVar20 = uVar25 ^ uVar20 ^ uVar29 ^ uVar35 ^ *(ulonglong *)(lVar8 + -0x610);
  *(ulonglong *)(lVar8 + -0x898) = uVar20;
  uVar11 = DAT_1826717ac;
  uVar20 = uVar25 ^ uVar20;
  *(ulonglong *)(lVar8 + -0x638) =
       CONCAT44(uVar26,uVar14) ^ 0x72949de9b6638f3b | CONCAT44(uVar13,uVar12) ^ 0x1b98ebc48e69c0e7;
  uVar10 = DAT_182671708;
  uVar22 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar8 + -0x6b8) = (uVar39 ^ *(ulonglong *)(lVar8 + -0x400)) + uVar20 ^ uVar22;
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_18267158c ^ 0xf8ef7c06)) =
       uVar20 << (((byte)uVar4 ^ 0xda) & 0x3f) ^ uVar32;
  uVar10 = DAT_18267169c;
  uVar20 = (uVar25 ^ *(ulonglong *)(lVar8 + -0x898)) >> ((local_c8 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar8 + -0x5c8) = uVar20 ^ CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar29 = CONCAT44(uVar10,uVar10);
  uVar20 = (uVar32 ^ *puVar3 | uVar20) ^ uVar29;
  puVar38 = (ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar20;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar15 ^ 0x8a010059)) =
       uVar29 ^ uVar22 ^ *puVar38 ^ uVar36 ^ uVar20;
  uVar12 = DAT_18267158c;
  *(byte *)(lVar7 + -0x189) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x5b8) ^ (ulonglong)DAT_182671604) ^ (byte)DAT_1826717c0;
  uVar10 = DAT_182671890;
  uVar32 = CONCAT44(DAT_182671854,DAT_182671854);
  puVar38 = (ulonglong *)(lVar7 - (uVar27 ^ 0xf8ef76e6));
  *puVar38 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0xf8ef73ee)) ^ uVar35) +
             (*(ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0xf8ef74ee)) ^ uVar37) ^ uVar32;
  uVar35 = CONCAT44(uVar10,uVar10);
  bVar6 = (byte)uVar13;
  *(ulonglong *)(lVar7 - (uVar33 ^ 0x75fefa9f)) =
       (uVar37 ^ *(ulonglong *)(lVar7 + -0x110)) << ((local_c8 ^ 0xc1) & 0x3f) ^ uVar35;
  uVar10 = DAT_1826715bc;
  uVar20 = *(ulonglong *)(lVar7 + -0x270);
  uVar39 = (uVar37 ^ *(ulonglong *)(lVar7 + -0x110)) >> ((bVar6 ^ 0xe8) & 0x3f);
  uVar37 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *puVar2 = uVar39 ^ uVar37;
  uVar29 = CONCAT44(DAT_18267164c,DAT_18267164c);
  uVar12 = DAT_182671594 ^ 0x60a9f27a;
  *(ulonglong *)(lVar7 + -0x670) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar17 ^ 0x6dc51300)) ^ uVar37 | uVar35 ^ uVar20) ^
       uVar29;
  uVar11 = DAT_1826716dc;
  *(uint *)(lVar7 + -0x910) = (DAT_182671570 ^ 0x723e4875) + uVar12;
  lVar7 = DAT_182671560;
  uVar37 = CONCAT44(uVar11,uVar11);
  uVar20 = *(ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(DAT_182671560 + -0x638) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0x66b4809e)) ^ uVar37 ^ uVar29 ^ uVar32 ^
       *(ulonglong *)(DAT_182671560 + -0x318);
  uVar12 = DAT_18267158c;
  uVar29 = CONCAT44(uVar9,DAT_18267158c);
  *(ulonglong *)(lVar7 + -0x400) = (uVar29 ^ 0x1c292ecbfc64264e) - uVar39;
  uVar35 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *puVar3 = (*(ulonglong *)(lVar7 - (uVar34 ^ 0xfffff9c7)) ^ uVar37) + (uVar22 ^ uVar20) ^ uVar35;
  uVar11 = DAT_1826717b4;
  *(ulonglong *)(lVar7 + -0x5c8) =
       (uVar25 ^ *(ulonglong *)(lVar7 + -0x898)) >> (((byte)uVar10 ^ *(byte *)puVar2) & 0x3f);
  uVar10 = DAT_1826717f4;
  uVar20 = CONCAT44(uVar11,uVar11);
  *puVar24 = (*(ulonglong *)(lVar7 - (uVar15 ^ 0x8a010129)) ^ uVar37) << 0x17 ^ uVar20;
  local_88 = (byte)uVar14;
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar7 + -0x638)) >> ((local_88 ^ 0xd6) & 0x3f);
  *(ulonglong *)(lVar7 + -0x610) = uVar37 ^ CONCAT44(uVar10,uVar10);
  *(int *)(lVar7 + -0x874) = *(int *)(lVar7 - (uVar15 ^ 0x8a0102dd)) - *(int *)(lVar7 + -0x504);
  lVar8 = DAT_182671560;
  uVar22 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(lVar7 + -0x110) = (uVar37 | uVar20 ^ *(ulonglong *)(lVar7 + -0x548)) ^ uVar22;
  uVar20 = *(ulonglong *)(lVar8 + -0x318);
  *(uint *)(lVar7 + -0x754) = (*(uint *)(lVar7 + -0x678) ^ DAT_1826716d0) << 0x11;
  uVar25 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar41 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar7 + -0x270) =
       *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671594 ^ 0x6dc511e0)) ^ uVar25 ^ uVar22 ^ uVar35 ^
       *puVar3;
  uVar10 = DAT_18267160c;
  *(ulonglong *)(lVar7 + -0x670) = uVar37 ^ 0xc1ae12b0b6018517;
  uVar22 = CONCAT44(uVar10,uVar10);
  uVar39 = (*(ulonglong *)(lVar8 - (uVar27 ^ 0xf8ef72b6)) ^ uVar36) + (uVar32 ^ uVar20) ^ uVar22;
  *(ulonglong *)(lVar8 + -0x400) = uVar39;
  lVar7 = DAT_182671560;
  uVar20 = *puVar1;
  uVar32 = (uVar36 ^ uVar20) << ((bVar16 ^ 0xd6) & 0x3f);
  bVar16 = (byte)DAT_18267158c;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar32 ^ CONCAT44(DAT_182671670,DAT_182671670);
  uVar10 = DAT_182671894;
  uVar37 = (uVar36 ^ uVar20) >> ((bVar16 ^ 0xe6) & 0x3f);
  *(ulonglong *)(lVar7 + -0x898) = uVar37 ^ CONCAT44(DAT_182671810,DAT_182671810);
  uVar17 = DAT_1826716a4;
  uVar20 = CONCAT44(uVar10,uVar10);
  uVar36 = (ulonglong)DAT_1826716a4;
  uVar32 = (uVar37 | uVar32) ^ uVar20;
  *puVar2 = uVar32;
  uVar37 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar7 + -0x5c8) =
       (CONCAT44(uVar9,uVar14) ^ 0x13ae42d08314c1a2) - (CONCAT44(uVar4,uVar13) ^ 0xcf75f0b9b27051d3)
  ;
  *(ulonglong *)(lVar7 - (uVar21 ^ 0xfe75e9c0)) = uVar37 ^ uVar20 ^ uVar22 ^ uVar32 ^ uVar39;
  uVar10 = DAT_182671648;
  *(ulonglong *)(lVar7 + -0x548) =
       (*(ulonglong *)(lVar7 - (uVar15 ^ 0x8a010311)) ^ uVar22) + (uVar31 ^ 0xcc0e8c247460350e);
  uVar32 = CONCAT44(uVar10,uVar10);
  uVar20 = (uVar37 ^ *(ulonglong *)(lVar7 + -0x638)) + (uVar35 ^ *puVar3);
  *(ulonglong *)(lVar7 + -0x110) = uVar20 ^ uVar32;
  *(ulonglong *)(lVar7 + -0x610) = uVar20 ^ uVar29 ^ 0x97289f48db7dc201;
  uVar21 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar7 - (uVar41 ^ 0x6dc51680)) =
       (uVar37 ^ *(ulonglong *)(lVar7 + -0x638)) << 5 ^ uVar21;
  uVar20 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar7 + -0x318) =
       (*(ulonglong *)(lVar7 + -0x638) >> 0x20 ^ uVar36) >> 0x1b ^ uVar20;
  puVar24 = (ulonglong *)(lVar7 - (uVar41 ^ 0x6dc51538));
  uVar29 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar21 = (*puVar38 ^ uVar20 | *(ulonglong *)(lVar7 + -0x670) ^ uVar21) ^ uVar29;
  *(longlong *)(lVar7 + -0x6b8) = 0x1cad4dd190a0f4bc << ((bVar6 ^ 0xe2) & 0x3f);
  uVar20 = *(ulonglong *)(lVar7 + -0x110);
  *puVar1 = uVar21;
  uVar11 = DAT_1826717c8;
  uVar10 = DAT_1826717b0;
  uVar17 = DAT_182671598;
  uVar41 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar35 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar7 - (uVar34 ^ 0xfffff767)) = uVar32 ^ uVar21 ^ uVar20 ^ uVar41 ^ uVar29;
  uVar39 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  uVar13 = uVar17 << 0x10 | uVar17 >> 0x10;
  uVar31 = (ulonglong)uVar13;
  DAT_18267156c = uVar13;
  *puVar24 = (uVar22 ^ *(ulonglong *)(lVar7 + -0x400)) + (uVar25 ^ *(ulonglong *)(lVar7 + -0x270)) ^
             uVar39;
  *(ulonglong *)(lVar7 - (uVar31 ^ 0xfffffc0f)) =
       *(ulonglong *)(CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar7 + -0x368)) ^
       CONCAT44(uVar11,uVar11);
  uVar21 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar20 = *(ulonglong *)(lVar7 + -0x270);
  *(ulonglong *)(lVar7 + -0x548) =
       (uVar25 ^ *(ulonglong *)(lVar7 + -0x270)) << (((byte)uVar17 ^ 0xda) & 0x3f) ^ uVar21;
  uVar37 = CONCAT44(uVar17,uVar13);
  *puVar3 = uVar37 ^ 0x1514ddae592d395b | uVar37 ^ 0x7629d48f109638ed;
  uVar22 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(lVar7 - (uVar35 ^ 0xfffff9ef)) =
       (uVar25 ^ uVar20) >> (((byte)(uVar17 >> 0x10) ^ 0xe4) & 0x3f) ^ uVar22;
  uVar11 = DAT_182671844;
  uVar20 = (*(ulonglong *)(lVar7 - (uVar31 ^ 0xfffffab7)) ^ uVar21 |
           *(ulonglong *)(lVar7 + -0x610) ^ uVar22) ^ uVar30;
  *(ulonglong *)(lVar7 + -0x638) = uVar20;
  uVar10 = DAT_182671668;
  uVar21 = CONCAT44(uVar11,uVar11);
  uVar20 = *(ulonglong *)(lVar7 + -0x5c8) ^ uVar30 ^ uVar21 ^ uVar20 ^ uVar39;
  *(ulonglong *)(lVar7 + -0x670) = uVar20;
  uVar36 = CONCAT44(uVar10,uVar10);
  puVar38 = (ulonglong *)(lVar7 - ((ulonglong)uVar17 ^ 0xfffffce7));
  *puVar38 = (CONCAT44(uVar13,uVar17) ^ 0x38484d4446609a6c) + (uVar20 ^ uVar21) ^ uVar36;
  uVar10 = DAT_182671778;
  uVar20 = (uVar32 ^ *(ulonglong *)(lVar7 + -0x110)) + (uVar37 ^ 0x827a2da34979b4f8);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar20 ^ CONCAT44(DAT_182671738,DAT_182671738);
  uVar29 = CONCAT44(uVar10,uVar10);
  *puVar1 = uVar20 + (uVar36 ^ *(ulonglong *)(lVar7 + -0x318)) ^ uVar29;
  *(ulonglong *)(lVar7 + -0x400) =
       CONCAT44(uVar17,uVar4) ^ 0xdb16b4526eb73493 | uVar37 ^ 0xe2cb35ffa690bfed;
  uVar25 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *puVar2 = (*puVar38 ^ uVar36) << ((bVar6 ^ 0xf6) & 0x3f) ^ uVar25;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0xf8ef7c06)) =
       CONCAT44(uVar14,uVar13) ^ 0x23a922f40d90c08f | CONCAT44(uVar13,uVar26) ^ 0x87541a5141ba7e77;
  uVar32 = (uVar36 ^ *(ulonglong *)(lVar7 + -0x318)) >> ((bVar40 ^ 0x36) & 0x3f);
  uVar20 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar13 ^ 0xfffffd8f)) =
       uVar32 ^ CONCAT44(DAT_182671620,DAT_182671620);
  lVar7 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar20 = (*(ulonglong *)(DAT_182671560 - (uVar20 ^ 0xf8ef760e)) ^ uVar25 | uVar32) ^ uVar21;
  uVar37 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar20;
  *(ulonglong *)(lVar7 - (uVar15 ^ 0x8a010101)) =
       *(ulonglong *)(lVar7 - (uVar33 ^ 0x75feffa7)) ^ uVar20 ^ uVar37 ^ uVar21 ^ uVar29;
  uVar33 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar7 + -0x638) =
       (CONCAT44(uVar17,uVar9) ^ 0xbbb49835a5980ed9) + (uVar41 ^ *(ulonglong *)(lVar7 + -0x898)) ^
       uVar33;
  *(ulonglong *)(lVar7 - (uVar15 ^ 0x8a010161)) =
       (CONCAT44(uVar13,uVar9) ^ 0x297b1d985759e95d) + (CONCAT44(uVar19,uVar9) ^ 0xa1c658527798ad73)
  ;
  uVar20 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar14 = DAT_1826715ac ^ 0x493d83f;
  *(ulonglong *)(lVar7 + -0x110) =
       (CONCAT44(uVar13,uVar4) ^ 0xb87cbb21d228cee3) + (*puVar24 ^ uVar39) ^ uVar20;
  *(uint *)(lVar7 + -0x640) = uVar14 - (DAT_182671594 ^ 0xb3a69851);
  uVar10 = DAT_1826718b4;
  uVar21 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar7 + -0x6b8) =
       (*(ulonglong *)(lVar7 - (uVar31 ^ 0xfffffeef)) ^ uVar20) +
       (*(ulonglong *)(lVar7 + -0x638) ^ uVar33) ^ uVar21;
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar7 + -0x400) = (*(ulonglong *)(lVar7 + -0x638) ^ uVar33) << 0x21 ^ uVar32;
  uVar20 = *(ulonglong *)(lVar7 + -0x638);
  local_60 = (byte)uVar12;
  *puVar3 = (CONCAT44(uVar26,uVar9) ^ 0x7c0a6a39ea28b155) << ((local_88 ^ 0xc1) & 0x3f);
  uVar25 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar4 ^ 0x66b485f6)) =
       (uVar20 ^ uVar33) >> ((local_60 ^ 0xe1) & 0x3f) ^ uVar25;
  uVar20 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *puVar2 = (*(ulonglong *)(lVar7 - (uVar15 ^ 0x8a010409)) ^ uVar25 |
            uVar32 ^ *(ulonglong *)(lVar7 + -0x400)) ^ uVar20;
  uVar20 = *(ulonglong *)(lVar7 - (uVar35 ^ 0xfffff947)) ^
           *(ulonglong *)(lVar7 - (uVar34 ^ 0xfffffc0f)) ^ uVar20 ^ uVar21;
  *(ulonglong *)(lVar7 + -0x270) = uVar20 ^ uVar22;
  uVar10 = DAT_182671698;
  uVar12 = DAT_182671588;
  DAT_182671568 = DAT_182671580;
  uVar14 = DAT_182671578;
  uVar22 = (ulonglong)DAT_182671578;
  uVar15 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar7 + -0x548) = (*puVar1 ^ uVar29) + uVar20 ^ uVar28;
  uVar9 = DAT_1826715a0;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar29 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar7 - (uVar35 ^ 0xfffff767)) = uVar20 << 0x2e ^ uVar34;
  uVar20 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *(ulonglong *)(lVar7 + -0x670) =
       ((ulonglong)(DAT_18267167c >> 0x12) | (ulonglong)DAT_18267167c << 0xe) ^
       *(ulonglong *)(lVar7 + -0x270) >> 0x12 ^ uVar20;
  uVar17 = uVar9 & 7;
  if (uVar17 < 4) {
    if (uVar17 < 2) {
      DAT_182671568 = uVar14;
      if (uVar17 == 0) {
        DAT_182671568 = uVar9;
      }
    }
    else {
      DAT_182671568 = uVar12;
      if (uVar17 < 3) {
        DAT_182671568 = DAT_182671574;
      }
    }
  }
  else if (uVar17 < 6) {
    if (uVar17 < 5) {
      DAT_182671568 = DAT_182671584;
    }
  }
  else {
    DAT_182671568 = DAT_18267158c;
    if (uVar17 < 7) {
      DAT_182671568 = DAT_18267159c;
    }
  }
  uVar25 = CONCAT44(DAT_182671660,DAT_182671660);
  uVar20 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_18267158c ^ 0xf8ef738e)) ^ uVar20 |
           uVar34 ^ *(ulonglong *)(lVar7 + -0x898)) ^ uVar25;
  uVar34 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar7 + -0x5c8) = uVar20;
  *(ulonglong *)(lVar7 - (uVar29 ^ 0xd80d770e)) =
       uVar34 ^ uVar28 ^ uVar20 ^ uVar25 ^ *(ulonglong *)(lVar7 + -0x548);
  uVar20 = *(ulonglong *)(lVar7 + -0x610);
  uVar29 = *(ulonglong *)(lVar7 + -0x610);
  uVar34 = CONCAT44(DAT_182671734,DAT_182671734);
  *(int *)(lVar7 + -0x274) = *(int *)(lVar7 + -0x3c8) + *(int *)(lVar7 + -0x328);
  uVar10 = DAT_182671628;
  *puVar3 = (*(ulonglong *)(lVar7 + -0x610) ^ uVar37) + (*(ulonglong *)(lVar7 + -0x6b8) ^ uVar21) ^
            uVar34;
  uVar32 = CONCAT44(uVar10,uVar10);
  uVar20 = (uVar20 ^ uVar37) << 0xc ^ uVar32;
  uVar29 = (uVar29 ^ uVar37) >> ((local_c8 ^ 0xcc) & 0x3f);
  uVar25 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar7 + -0x638) = uVar20;
  uVar21 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar7 + -0x400) = uVar29 ^ uVar25;
  *(ulonglong *)(lVar7 + -0x318) = uVar28 ^ uVar20 ^ uVar32 ^ *(ulonglong *)(lVar7 + -0x548);
  *(ulonglong *)(lVar7 - (uVar22 ^ 0x281db083)) =
       (*(ulonglong *)(lVar7 - (uVar15 ^ 0xf351d357)) ^ uVar32 | uVar29) ^ uVar21;
  *puVar1 = *puVar2 ^ uVar18 ^ uVar21 ^ uVar34 ^ *puVar3;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar5 ^ uVar4) * 4) = uVar23;
  return;
}



############ FUN_ 180eab700 size=5259 ############

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

void FUN_180eab700(void)

{
  ulonglong *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_res18;
  byte local_res20;
  byte local_e0;
  byte local_d0;
  byte local_a8;
  
  uVar14 = DAT_182671628;
  uVar13 = DAT_1826715b0;
  uVar12 = DAT_1826715a8;
  uVar9 = DAT_18267159c;
  uVar8 = DAT_182671588;
  uVar7 = DAT_182671580;
  uVar6 = DAT_18267157c;
  lVar4 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671588;
  uVar49 = (ulonglong)DAT_18267157c;
  uVar27 = DAT_182671588 ^ DAT_18267157c;
  uVar36 = (ulonglong)DAT_1826715a8;
  uVar31 = (ulonglong)DAT_182671580;
  uVar39 = (ulonglong)DAT_1826715b0;
  uVar24 = DAT_1826715a8 ^ DAT_18267159c;
  uVar41 = DAT_182671580 & DAT_1826715b0;
  uVar18 = *(uint *)(&DAT_182611e70 + (uVar34 ^ 0x1f8410b4) + (longlong)DAT_182671ba8) ^
           DAT_18267157c;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671ba8);
  uVar29 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  uVar46 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  DAT_182671584 = uVar27;
  DAT_18267158c = uVar41;
  DAT_182671594 = uVar24;
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       (CONCAT44(DAT_182671710,DAT_182671710) ^ *(ulonglong *)(DAT_182671560 + -0x510)) +
       (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x638)) ^ uVar46;
  uVar35 = (ulonglong)uVar41;
  bVar3 = (byte)uVar12;
  *(ulonglong *)(lVar4 + -0x5c8) =
       CONCAT44(uVar14,uVar14) ^ CONCAT44(uVar13,uVar7) ^ *(ulonglong *)(lVar4 + -0xa60) ^
       0x661345d38516de09;
  uVar15 = DAT_1826717b0;
  uVar32 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar4 + -0x110) =
       (uVar29 ^ *(ulonglong *)(lVar4 + -0x638)) << ((bVar3 ^ 0xdc) & 0x3f) ^ uVar32;
  uVar14 = DAT_1826715f4;
  uVar42 = CONCAT44(uVar15,uVar15);
  uVar23 = (ulonglong)uVar24;
  uVar40 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  puVar45 = (ulonglong *)(lVar4 - ((ulonglong)uVar24 ^ 0xdaea88e2));
  *puVar45 = *(ulonglong *)(*(ulonglong *)(lVar4 + -0x368) ^ uVar42) ^ uVar40;
  uVar11 = DAT_1826715a4;
  uVar26 = CONCAT44(uVar14,uVar14);
  local_e0 = (byte)uVar41;
  uVar44 = (ulonglong)DAT_1826715a4;
  uVar25 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar4 + -0x748) =
       (uVar29 ^ *(ulonglong *)(lVar4 + -0x638)) >> ((local_e0 ^ 0x36) & 0x3f) ^ uVar26;
  uVar41 = DAT_182671574;
  lVar5 = DAT_182671560;
  uVar48 = (ulonglong)uVar27;
  uVar33 = (ulonglong)DAT_182671574;
  uVar19 = uVar11 ^ DAT_182671574;
  uVar29 = (ulonglong)uVar19;
  uVar37 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0xdaea8642)) ^ uVar26 |
           *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar27 ^ 0xda95dfb7)) ^ uVar32) ^ uVar25;
  DAT_1826715b4 = uVar19;
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar37;
  *(ulonglong *)(lVar5 + -0x600) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar19 ^ 0x541a6954)) ^ uVar42) ^ uVar40;
  uVar32 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar5 - (uVar44 ^ 0x6fd55003)) =
       uVar37 ^ *(ulonglong *)(lVar5 + -0x6b8) ^ uVar32 ^ uVar25 ^ uVar46;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0x3bcf3de7)) =
       (CONCAT44(uVar41,uVar11) ^ 0xa97b49598627b7c0) +
       (CONCAT44(uVar24,uVar7) ^ 0x946a4486327d54ca);
  uVar17 = DAT_1826717dc;
  uVar14 = DAT_1826715bc;
  uVar10 = DAT_18267159c;
  uVar40 = (ulonglong)DAT_1826717dc;
  uVar37 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar5 + -0x3f0) =
       (CONCAT44(uVar8,DAT_18267159c) ^ 0x3f799971bf044bf6) +
       (*(ulonglong *)(lVar5 + -0xbf0) ^ uVar25) ^ uVar37;
  *(ulonglong *)(lVar5 + -0x318) = *(ulonglong *)(lVar5 + -0x9e8) ^ 0x7d29873e082e4f7;
  lVar4 = DAT_182671560;
  uVar25 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x541a6c4c)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0x3bcf3237)) ^ CONCAT44(uVar14,uVar14))
       + (CONCAT44(uVar13,uVar6) ^ 0xdbf62a2bf26143e4) ^ uVar25;
  uVar14 = DAT_182671660;
  uVar37 = *(ulonglong *)(lVar4 + -0x3f0) ^ uVar37;
  *(ulonglong *)(lVar4 + -0xa60) = 0x685bd28d0631afba >> ((bVar3 ^ 0xf4) & 0x3f);
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar43 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x670)) + uVar37 ^ uVar42;
  uVar37 = uVar37 << 0x21;
  uVar25 = CONCAT44(DAT_182671850,DAT_182671850);
  *(ulonglong *)(lVar4 + -0x610) = uVar43;
  *(ulonglong *)(lVar4 + -0x510) = uVar37 ^ uVar26;
  uVar14 = DAT_182671784;
  *(ulonglong *)(lVar4 + -0x5c8) =
       ((ulonglong)(uVar17 >> 0x1f) | uVar40 * 2) ^
       *(ulonglong *)(lVar4 - (uVar48 ^ 0xda95dd57)) >> 0x1f ^ uVar25;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar40 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar4 + -0x638) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x6fd5543b)) ^ uVar25 | uVar37) ^ uVar26;
  uVar14 = DAT_182671714;
  uVar25 = *(ulonglong *)(lVar4 - (uVar35 ^ 0x8a000029)) ^ uVar40 ^ uVar26 ^ uVar43 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x110) = uVar25;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x748) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x3bcf3adf)) ^ uVar40) +
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar46) ^ uVar28;
  puVar20 = (ulonglong *)(lVar4 - (uVar23 ^ 0xdaea870a));
  uVar30 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *puVar20 = uVar25 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0x6b8) ^ uVar46;
  puVar21 = (ulonglong *)(lVar4 - (uVar34 ^ 0x1f841634));
  *puVar21 = (*(ulonglong *)(lVar4 + -0x110) ^ uVar40) << 0x2e ^ uVar30;
  uVar14 = DAT_1826715c4;
  uVar43 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xeff8f85d)) =
       (*(ulonglong *)(lVar4 + -0x110) ^ uVar40) >> (((byte)uVar10 ^ 0xdd) & 0x3f) ^ uVar43;
  uVar25 = *(ulonglong *)(lVar4 + -0x688) ^ uVar30;
  *(ulonglong *)(lVar4 + -0xbf0) = 0x48611bd45d3404b2 >> ((byte)uVar25 & 0x3f);
  uVar37 = CONCAT44(DAT_182671608,DAT_182671608);
  *puVar45 = (*(ulonglong *)(lVar4 + -0x628) ^ uVar43 | uVar25) ^ uVar37;
  uVar40 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar4 + -0x318) =
       *(ulonglong *)(lVar4 - (uVar36 ^ 0xe125bd8d)) ^ *(ulonglong *)(lVar4 + -0x9e8) ^ uVar40 ^
       uVar37 ^ uVar28;
  *(undefined8 *)(lVar4 + -0x9f8) = 0x1fe6fdefbbf97eff;
  puVar22 = (ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x3bcf3ddf));
  uVar43 = CONCAT44(DAT_18267186c,DAT_18267186c);
  *(ulonglong *)(lVar4 + -0x670) =
       (uVar42 ^ *puVar22) + (uVar32 ^ *(ulonglong *)(lVar4 + -0x1f0)) ^ uVar43;
  puVar47 = (ulonglong *)(lVar4 - (uVar39 ^ 0x8a0106e1));
  uVar42 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  local_res20 = (byte)uVar41;
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       (*puVar47 ^ uVar32) << (((byte)uVar27 ^ 0xab) & 0x3f) ^ uVar42;
  *(ulonglong *)(DAT_182671560 - (uVar49 ^ 0xc511cdeb)) =
       CONCAT44(uVar27,DAT_18267159c) ^ 0x73bd7d878867a5ea |
       CONCAT44(uVar13,uVar41) ^ 0xa342805a537f431a;
  uVar25 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(DAT_182671560 - (uVar49 ^ 0xc511cb0b)) =
       (uVar32 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) >> ((local_res20 ^ 0xfb) & 0x3f) ^ uVar25;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0xe125bf0d)) =
       (CONCAT44(uVar8,uVar24) ^ 0x6f6c5c06611f21b6) >>
       ((*(byte *)(DAT_182671560 + -0x628) ^ (byte)uVar14) & 0x3f);
  uVar32 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x8a010129)) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x1f841adc)) ^ uVar42 |
       uVar25 ^ *(ulonglong *)(lVar4 + -0x510)) ^ uVar32;
  uVar25 = CONCAT44(DAT_182671758,DAT_182671758);
  local_a8 = (byte)uVar11;
  *(ulonglong *)(lVar4 + -0x6b8) =
       *(ulonglong *)(lVar4 - (uVar35 ^ 0x8a000061)) ^ *(ulonglong *)(lVar4 + -0x638) ^ uVar25 ^
       uVar32 ^ uVar43;
  uVar10 = DAT_18267159c;
  *(ulonglong *)(lVar4 + -0x600) =
       (*puVar21 ^ uVar30) - (CONCAT44(uVar7,DAT_18267159c) ^ 0x9525c7a0502792b0);
  uVar30 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar46 = (*(ulonglong *)(lVar4 - (uVar49 ^ 0xc511c8a3)) ^ uVar25) +
           (*(ulonglong *)(lVar4 + -0x748) ^ uVar28) ^ uVar30;
  uVar28 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar4 + -0x110) = uVar46;
  uVar14 = _DAT_1826715dc;
  uVar38 = (*(ulonglong *)(lVar4 - (uVar31 ^ 0xeff8f8cd)) ^ uVar25) << ((local_a8 ^ 0xc9) & 0x3f);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar38 ^ uVar28;
  uVar15 = DAT_182671688;
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar25 = (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar25) >> (((byte)uVar10 ^ 0xc9) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9e8) = uVar25 ^ uVar42;
  uVar14 = DAT_1826718d0;
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar25 = (uVar38 | uVar25) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x9f8) = uVar25;
  lVar4 = DAT_182671560;
  uVar38 = CONCAT44(uVar14,uVar14);
  uVar46 = uVar25 ^ uVar38 ^ uVar32 ^ uVar30 ^ uVar46;
  puVar45 = (ulonglong *)(DAT_182671560 + -0x670);
  uVar25 = CONCAT44(DAT_18267170c,DAT_18267170c);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar46;
  *(ulonglong *)(lVar4 + -0x3f0) = (uVar43 ^ *puVar45) + (*puVar1 ^ uVar40) ^ uVar25;
  local_d0 = (byte)uVar24;
  *puVar47 = (uVar46 ^ uVar38) >> ((local_d0 ^ 0x17) & 0x3f);
  uVar14 = DAT_182671748;
  lVar5 = DAT_182671560;
  uVar40 = *(ulonglong *)(lVar4 + -0x318) ^ uVar40;
  uVar46 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  uVar43 = uVar40 << (((byte)uVar19 ^ 0x2a) & 0x3f);
  local_res18 = (byte)uVar6;
  uVar32 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar40 >> ((local_res18 ^ 0x31) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar5 + -0x628) = uVar43 ^ uVar46;
  uVar40 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x541a605c)) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0x1f841574)) ^ uVar32 | uVar43) ^ uVar40;
  uVar34 = *(ulonglong *)(lVar5 - (uVar36 ^ 0xe125b0a5)) ^ uVar25 ^ *(ulonglong *)(lVar5 + -0x3f0);
  *(ulonglong *)(lVar5 + -0x510) = uVar34;
  uVar14 = DAT_1826715f8;
  lVar4 = DAT_182671560;
  uVar34 = uVar40 ^ uVar34;
  *(ulonglong *)(lVar5 + -0x638) =
       (*(ulonglong *)(lVar5 - (uVar48 ^ 0xda95d74f)) ^ uVar42) -
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0x3bcf3edf)) ^ uVar40);
  uVar15 = DAT_1826717ec;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x600) = (uVar30 ^ *(ulonglong *)(lVar5 + -0x110)) + uVar34 ^ uVar32;
  uVar10 = DAT_18267159c;
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x688) = uVar34 << (((byte)DAT_18267159c ^ 0xef) & 0x3f) ^ uVar43;
  uVar14 = DAT_182671620;
  uVar34 = uVar34 >> ((local_e0 ^ 0x31) & 0x3f);
  *(ulonglong *)(lVar4 + -0x748) = uVar34 ^ CONCAT44(DAT_182671624,DAT_182671624);
  lVar4 = DAT_182671560;
  uVar40 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x8a0000a9)) = (*puVar21 ^ uVar43 | uVar34) ^ uVar40;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xe125b135)) =
       *(ulonglong *)(lVar4 + -0x600) ^ *(ulonglong *)(lVar4 + -0x6b8) ^ uVar40 ^ uVar32 ^ uVar42;
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x6fd5580b)) =
       (CONCAT44(uVar7,uVar41) ^ 0x469e082f100acda4) - (uVar42 ^ *(ulonglong *)(lVar4 + -0xbf0));
  uVar40 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar4 + -0x670) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x3f0)) + (uVar38 ^ *puVar22) ^ uVar40;
  uVar14 = DAT_182671648;
  *(ulonglong *)(lVar4 + -0x1f0) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0x541a6c3c)) ^ uVar32 ^ 0xa8060a757921a9dd;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x318) = (*(ulonglong *)(lVar4 + -0x610) ^ uVar38) << 0x20 ^ uVar34;
  uVar41 = DAT_1826715b0 ^ 0x8350bd03;
  *(ulonglong *)(lVar4 + -0x628) =
       (*(ulonglong *)(lVar4 - (uVar48 ^ 0xda95d8b7)) ^ uVar38) >> (((byte)uVar8 ^ 0x9c) & 0x3f) ^
       uVar28;
  lVar5 = DAT_182671560;
  *(uint *)(lVar4 - (uVar49 ^ 0xc511c96f)) = (uVar10 ^ 0xc063c57) - uVar41;
  uVar14 = DAT_18267167c;
  uVar25 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  uVar34 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x628) | *(ulonglong *)(lVar4 + -0x318) ^ uVar34) ^
           uVar25;
  *(ulonglong *)(lVar4 + -0x5c8) = uVar34;
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xa60) =
       uVar43 ^ uVar34 ^ uVar25 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0x670);
  uVar35 = (*(ulonglong *)(lVar5 - (uVar44 ^ 0x6fd55b93)) ^ uVar43) +
           (CONCAT44(uVar12,uVar19) ^ 0xb0d297ff636ae7c3);
  uVar34 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *(ulonglong *)(lVar5 + -0x9e8) = uVar35 ^ uVar26;
  uVar14 = DAT_182671750;
  *(ulonglong *)(lVar5 + -0x638) =
       (CONCAT44(uVar11,uVar8) ^ 0x125083afa9025bbb) + (uVar32 ^ *puVar20) ^ uVar34;
  lVar4 = DAT_182671560;
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar32 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (*(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xeff8f84d)) ^ uVar34) + uVar35 ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar48 ^ 0xda95dbb7)) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x3bcf3227)) ^ uVar26) << 0xe ^ uVar32;
  *(int *)(lVar4 + -0x5cc) = *(int *)(lVar4 + -0x774) + -0x35e91904;
  uVar16 = DAT_182671708;
  uVar14 = DAT_1826715e8;
  uVar34 = (*(ulonglong *)(lVar4 + -0x9e8) ^ uVar26) >> ((local_d0 ^ 0x38) & 0x3f);
  *(ulonglong *)(lVar4 + -0x688) = uVar34 ^ CONCAT44(DAT_182671708,DAT_182671708);
  uVar15 = DAT_18267169c;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar32 = (uVar34 | uVar32 ^ *(ulonglong *)(lVar4 + -0x510)) ^ uVar35;
  *(ulonglong *)(lVar4 + -0x748) = uVar32;
  lVar4 = DAT_182671560;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar34 = *(ulonglong *)(DAT_182671560 - (uVar49 ^ 0xc511cf0b));
  *(uint *)(DAT_182671560 + -0x754) = DAT_18267158c ^ 0xffffdf5c | 0xd76a9f14;
  uVar14 = DAT_18267187c;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar34 ^ uVar32 ^ uVar30 ^ uVar35 ^ uVar28;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x541a63c4)) =
       (*(ulonglong *)(lVar4 - (uVar39 ^ 0x8a010ce1)) ^ uVar42) +
       (CONCAT44(uVar8,uVar7) ^ 0x5bcf7776b4151f69) ^ uVar32;
  uVar34 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar4 + -0x3f0) =
       (CONCAT44(uVar6,uVar27) ^ 0x1ed04b4af86f3641) + (uVar40 ^ *(ulonglong *)(lVar4 + -0x670)) ^
       uVar34;
  uVar14 = DAT_1826715ec;
  uVar48 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar4 + -0x1f0) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0xdaea82fa)) ^ uVar34) +
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x9f8)) ^ uVar48;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xe125bcd5)) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x9f8)) << ((local_res20 ^ 0xdf) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x541a6924)) =
       (*(ulonglong *)(lVar4 + -0x9e8) ^ uVar26) >>
       ((*(byte *)(lVar4 + -0x688) ^ (byte)uVar16) & 0x3f);
  uVar34 = *(ulonglong *)(lVar4 + -0x1f0);
  uVar32 = (uVar32 ^ *(ulonglong *)(lVar4 + -0x9f8)) >> ((bVar3 ^ 0xf5) & 0x3f);
  *(ulonglong *)(lVar4 + -0x628) = uVar32 ^ CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar4 + -0x5c8) =
       CONCAT44(uVar9,uVar13) ^ uVar43 ^ *(ulonglong *)(lVar4 + -0xa60) ^ 0x3e72796856fbb21d;
  uVar44 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar4 + -0x600) = (uVar32 | *(ulonglong *)(lVar4 + -0x610) ^ uVar35) ^ uVar25;
  uVar32 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar35 = *(ulonglong *)(lVar4 - (uVar39 ^ 0x8a010111)) ^ uVar44 ^ uVar48 ^ uVar25 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x638) = uVar35;
  uVar42 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x110)) + (uVar35 ^ uVar44) ^ uVar32;
  uVar25 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar4 + -0x510) = uVar42;
  uVar14 = DAT_182671888;
  uVar35 = (uVar44 ^ uVar35) << ((local_e0 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar4 + -0x748) = uVar35 ^ uVar25;
  uVar15 = DAT_1826717bc;
  lVar4 = DAT_182671560;
  uVar23 = (ulonglong)DAT_182671578;
  uVar26 = (uVar44 ^ *(ulonglong *)(DAT_182671560 + -0x638)) >> ((local_res18 ^ 0x17) & 0x3f);
  uVar44 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar26 ^ CONCAT44(uVar14,uVar14);
  uVar35 = (uVar35 | uVar26) ^ uVar44;
  *(ulonglong *)(lVar4 + -0x670) = uVar35;
  uVar14 = DAT_1826716a4;
  lVar4 = DAT_182671560;
  uVar40 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar26 = CONCAT44(DAT_182671768,DAT_182671768);
  uVar30 = uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       CONCAT44(uVar15,uVar15) ^ uVar35 ^ uVar44 ^ uVar32 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x9e8) = (uVar48 ^ uVar34) + uVar30 ^ uVar40;
  *(ulonglong *)(lVar4 + -0x688) = uVar30 << (((byte)uVar27 ^ 0x9e) & 0x3f) ^ uVar26;
  uVar34 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x3bcf38d7)) = uVar30 >> ((local_e0 ^ 0x16) & 0x3f) ^ uVar34;
  *(byte *)(lVar4 - (uVar31 ^ 0xeff8f51c)) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671568 ^ 0xe5d44662)) ^
                (ulonglong)_DAT_1826715e0) ^ (byte)DAT_1826717c0;
  uVar15 = DAT_1826717e8;
  *(ulonglong *)(lVar4 + -0x9f8) =
       (*(ulonglong *)(lVar4 + -0x318) ^ uVar34 | *(ulonglong *)(lVar4 + -0x688) ^ uVar26) ^ uVar37;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xa60) =
       *(ulonglong *)(lVar4 - (uVar33 ^ 0x3bcf3237)) ^ uVar34 ^ uVar40 ^ uVar37 ^
       *(ulonglong *)(lVar4 + -0x9e8);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x541a6ff4)) =
       (*(ulonglong *)(lVar4 - (uVar49 ^ 0xc511c953)) ^ uVar25) <<
       (((byte)uVar14 ^ (byte)*(ulonglong *)(lVar4 + -0x9e8)) & 0x3f);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x541a6c14)) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0x33cf33af)) ^ uVar34) +
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x510)) ^ CONCAT44(DAT_18267179c,DAT_18267179c);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar27) * 4) = uVar18;
  return;
}



############ FUN_ 180f22500 size=4074 ############

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

void FUN_180f22500(void)

{
  uint *puVar1;
  ulonglong *puVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint *puVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint *puVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint *puVar34;
  uint uVar35;
  
  uVar32 = DAT_182671864;
  uVar14 = DAT_1826717f8;
  uVar30 = DAT_1826715a4;
  uVar31 = DAT_1826715a0;
  uVar6 = DAT_182671594;
  uVar16 = DAT_182671588;
  uVar15 = DAT_18267157c;
  lVar4 = DAT_182671560;
  uVar9 = DAT_182671594 & 3;
  uVar35 = DAT_182671568 ^ DAT_182671570;
  uVar25 = DAT_1826715a0 & DAT_182671598;
  uVar12 = (ulonglong)DAT_1826715a4;
  if (uVar9 < 2) {
    uVar19 = DAT_182671588;
    if (uVar9 == 0) {
      uVar19 = DAT_182671594;
    }
  }
  else {
    uVar19 = DAT_1826715a4;
    if (uVar9 < 3) {
      uVar19 = DAT_182671580;
    }
  }
  uVar22 = (ulonglong)DAT_18267157c;
  uVar10 = *(uint *)(&DAT_182611e70 + (uVar12 ^ 0xe16168d5) + (longlong)DAT_182671a20) ^
           DAT_182671580;
  uVar11 = *(uint *)(&DAT_182611e80 + DAT_182671a20) ^ DAT_18267157c;
  uVar27 = (ulonglong)DAT_182671588;
  uVar23 = (ulonglong)uVar19;
  uVar20 = CONCAT44(DAT_182671598,uVar25);
  DAT_18267159c = uVar19;
  DAT_1826715a8 = uVar25;
  DAT_1826715b4 = uVar35;
  *(uint *)(DAT_182671560 + -0x328) =
       (*(uint *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0x318dfab5)) ^ DAT_182671864) +
       (DAT_182671588 ^ 0x387ada18) ^ DAT_182671644;
  puVar17 = (uint *)(lVar4 - ((ulonglong)uVar6 ^ 0xd92b739));
  *(uint *)(lVar4 + -0x874) = (*puVar17 ^ uVar14) << 0x11 ^ DAT_182671760;
  uVar18 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar31 ^ 0xaadd7da6)) =
       (uVar20 ^ 0x4f639d0cf601a9ed) + *(longlong *)(lVar4 - ((ulonglong)uVar6 ^ 0xd92b8c5));
  *(uint *)(lVar4 - (uVar18 ^ 0xad96762)) =
       (*(uint *)(lVar4 + -0x328) ^ DAT_182671644) - (*(uint *)(lVar4 + -0x874) ^ DAT_182671760) ^
       DAT_182671614;
  uVar6 = DAT_182671568;
  uVar33 = (ulonglong)DAT_182671568;
  *(uint *)(lVar4 + -0x27c) =
       (*(uint *)(lVar4 + -0x504) ^ DAT_182671850) * (*(uint *)(lVar4 + -0x374) ^ DAT_182671614) ^
       uVar32;
  uVar9 = DAT_182671770;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x6d0) =
       CONCAT44(uVar16,uVar19) ^ 0xee396008233021cd | CONCAT44(uVar35,uVar6) ^ 0xbbcb8ba3b1d1e07a;
  puVar24 = (uint *)(lVar4 - ((ulonglong)uVar16 ^ 0x318dfb99));
  uVar31 = (uVar14 ^ *puVar24) * (uVar25 ^ 0x205c2051) ^ DAT_182671710;
  *(uint *)(lVar4 + -0x910) = uVar31;
  *(uint *)(lVar4 + -0x844) =
       (*(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x289427a)) ^ uVar32) + (uVar31 ^ DAT_182671710) ^
       uVar9;
  uVar14 = DAT_1826715a0;
  uVar31 = DAT_182671570;
  bVar13 = (byte)DAT_1826715a4 ^ 0xd0;
  uVar32 = (*(uint *)(lVar5 - ((ulonglong)uVar6 ^ 0xfffff7bb)) ^ uVar9) << (bVar13 & 0x1f) ^
           DAT_182671730;
  *(uint *)(lVar5 + -0x964) = uVar32;
  lVar4 = DAT_182671560;
  uVar32 = uVar32 ^ DAT_182671730;
  bVar3 = (byte)DAT_182671580;
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (CONCAT44(uVar14,uVar16) ^ 0x4a74318a87bd0ce1) >> (((byte)uVar31 ^ 0x21) & 0x3f);
  puVar1 = (uint *)(lVar4 + -0x5cc);
  uVar31 = (*(uint *)(lVar4 + -0x844) ^ uVar9) >> ((bVar3 ^ 0x4b) & 0x1f) ^ DAT_1826718a0;
  *puVar1 = uVar31;
  *(uint *)(lVar4 - ((ulonglong)uVar14 ^ 0xaadd7022)) =
       (uVar31 ^ DAT_1826718a0 | uVar32) ^ DAT_182671758;
  *(undefined8 *)(lVar4 - (uVar33 ^ 0xfffff947)) = 0x9beddb67fffc3ffb;
  uVar26 = DAT_1826718cc;
  uVar31 = DAT_182671580;
  uVar18 = (ulonglong)DAT_18267179c;
  uVar14 = (*(uint *)(lVar4 + -0x504) ^ DAT_182671850) + (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624)
           ^ DAT_182671808;
  uVar20 = (ulonglong)DAT_182671580;
  *(uint *)(lVar4 + -0x874) = *(uint *)(lVar4 + -0x47c) ^ DAT_182671690 ^ DAT_182671758;
  *(uint *)(lVar4 + -0x344) = uVar14;
  *(uint *)(lVar4 + -0x678) = uVar14 ^ DAT_182671600 ^ DAT_182671808;
  uVar7 = DAT_182671894;
  uVar14 = DAT_182671594;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671594 ^ 0xd92b57d)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar25 ^ 0x205c285c)) -
       (CONCAT44(DAT_182671594,uVar19) ^ 0xac92c9e28f051b5);
  uVar32 = *(uint *)(lVar4 - (uVar22 ^ 0x289467e)) ^ uVar7 ^ DAT_182671600;
  *(uint *)(lVar4 + -0x374) = *(uint *)(lVar4 + -0x874) ^ uVar26 ^ DAT_182671690;
  *(uint *)(lVar4 + -0x328) = uVar32;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671598 ^ 0x745ea7ed)) =
       (CONCAT44(uVar35,uVar31) ^ 0xf5269be93bfe2340) + *(longlong *)(lVar4 + -0x8f0) ^ uVar18;
  bVar3 = (byte)DAT_18267176c;
  *(byte *)(lVar4 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xd30) ^ uVar18) ^ (byte)DAT_18267176c ^
       (byte)DAT_182671694;
  *(ulonglong *)(lVar4 + -0x1f0) =
       (CONCAT44(uVar6,uVar31) ^ 0x995f3cf7be99c37c) - *(longlong *)(lVar4 - (uVar27 ^ 0x318df4cd));
  uVar29 = DAT_182671718;
  *(uint *)(DAT_182671560 + -0x754) = (bVar3 ^ *(byte *)(lVar4 + -0x41)) ^ DAT_182671718;
  uVar32 = DAT_1826715a4;
  lVar4 = DAT_182671560;
  puVar34 = (uint *)(DAT_182671560 + -0x374);
  *(byte *)(DAT_182671560 + -0xc41) =
       *(byte *)(*(ulonglong *)(DAT_182671560 + -0xcb8) ^ (ulonglong)DAT_18267187c) ^
       (byte)DAT_182671694;
  uVar28 = (*puVar34 ^ uVar26) + (DAT_182671570 ^ 0x32e42c3) ^ DAT_18267167c;
  *(uint *)(lVar4 + -0x27c) = uVar28;
  lVar4 = DAT_182671560;
  uVar28 = uVar28 ^ DAT_18267167c;
  uVar32 = (uVar29 ^ *puVar24) << (((byte)uVar32 ^ 0xcc) & 0x1f) ^ DAT_182671684;
  *(uint *)(DAT_182671560 + -0x910) = uVar32;
  uVar9 = DAT_1826716cc;
  *(uint *)(lVar4 - (uVar23 ^ 0x318df489)) = uVar28 - (uVar32 ^ DAT_182671684) ^ DAT_182671620;
  lVar5 = DAT_182671560;
  *(uint *)(lVar4 + -0x964) =
       (*(uint *)(lVar4 + -0x328) ^ uVar7) * (*(uint *)(lVar4 + -0x844) ^ DAT_182671620) ^
       DAT_1826717e8;
  uVar29 = (*(uint *)(lVar4 + -0x754) ^ uVar29) * (uVar15 ^ 0x289401e) ^ DAT_1826717ec;
  *puVar1 = uVar29;
  uVar32 = DAT_182671598;
  uVar29 = uVar29 ^ DAT_1826717ec;
  *(ulonglong *)(lVar5 + -0x3f0) =
       CONCAT44(uVar25,DAT_182671598) ^ CONCAT44(uVar35,uVar25) ^ 0x251fa4bb7363691b;
  uVar29 = (*(uint *)(lVar5 - (uVar12 ^ 0xe16161b9)) ^ DAT_1826717e8) + uVar29;
  *(uint *)(lVar5 + -0x504) = uVar29 ^ DAT_1826718b4;
  *(uint *)(lVar5 + -0x344) = uVar29 * 0x2000 ^ uVar9;
  uVar9 = uVar29 >> (((byte)uVar15 ^ 0x15) & 0x1f) ^ DAT_1826718a4;
  uVar12 = (ulonglong)DAT_1826715a0;
  *(uint *)(lVar5 + -0x47c) = uVar9;
  *(uint *)(lVar5 - (uVar12 ^ 0xaadd7226)) =
       (uVar9 ^ DAT_1826718a4 | uVar29 * 0x2000) ^ DAT_1826718bc;
  uVar12 = (ulonglong)DAT_1826715b4;
  uVar31 = (*(uint *)(lVar5 - ((ulonglong)uVar31 ^ 0x3bfe2090)) ^ DAT_182671624) +
           (*(uint *)(lVar5 + -0x328) ^ uVar7) ^ DAT_1826715d0;
  *(uint *)(lVar5 + -0x874) = uVar31;
  *(uint *)(lVar5 + -0x374) = uVar31 ^ DAT_18267170c ^ DAT_1826715d0;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x289462e)) =
       *(ulonglong *)(lVar5 - (uVar12 ^ 0xf5269b49)) | 0x1b41271347ef1a27;
  puVar24 = (uint *)(lVar5 - ((ulonglong)DAT_182671594 ^ 0xd92b615));
  uVar31 = *puVar24 ^ DAT_18267181c ^ DAT_1826718bc;
  *(uint *)(lVar5 + -0x910) = *(uint *)(lVar5 + -0x374) ^ DAT_182671704 ^ DAT_18267170c;
  uVar12 = (ulonglong)DAT_1826715b8;
  *(longlong *)(lVar5 + -0x898) = *(longlong *)(lVar5 + -0x5c8) << (((byte)uVar30 ^ 0xe1) & 0x3f);
  *(uint *)(lVar5 + -0x27c) = uVar31;
  bVar3 = (byte)DAT_1826716e0;
  uVar31 = uVar31 ^ DAT_1826717d0 ^ DAT_18267181c;
  *(uint *)(lVar5 + -0x844) = uVar31;
  pbVar21 = (byte *)((CONCAT44(uVar14,uVar32) ^ 0xd92b06d745eaadd) * 0x20 +
                     (CONCAT44(uVar6,uVar25) ^ 0xffffffff205c205f) + *(longlong *)(lVar5 + -0x8f0));
  *(ulonglong *)(lVar5 + -0xa70) = (ulonglong)pbVar21 ^ uVar12;
  uVar29 = _DAT_182671838;
  uVar9 = DAT_182671764;
  uVar14 = DAT_182671750;
  uVar30 = DAT_182671590;
  bVar8 = *pbVar21 ^ bVar3 ^ (byte)DAT_182671694;
  uVar18 = (ulonglong)DAT_182671590;
  uVar32 = (uVar31 ^ DAT_1826717d0) + (DAT_1826715a0 ^ 0xa32a528b) ^ DAT_182671728;
  uVar31 = (bVar3 ^ bVar8) ^ DAT_182671750;
  *(byte *)(lVar5 + -0x41) = bVar8;
  *(uint *)(lVar5 + -0x754) = uVar31;
  *(uint *)(lVar5 - ((ulonglong)uVar6 ^ 0xfffff69b)) = uVar32;
  *puVar1 = (*(uint *)(lVar5 + -0x754) ^ uVar14) << (((byte)uVar19 ^ 0xdc) & 0x1f) ^ DAT_1826717b8;
  uVar31 = DAT_182671570;
  *(uint *)(lVar5 + -0x504) =
       (*(uint *)(lVar5 + -0x964) ^ DAT_182671728) -
       (*(uint *)(lVar5 - ((ulonglong)DAT_182671570 ^ 0xad961da)) ^ DAT_1826717b8) ^ DAT_1826717a4;
  uVar32 = DAT_182671704;
  *(uint *)(lVar5 - (uVar18 ^ 0xb3a0df40)) =
       (*(uint *)(lVar5 - (uVar33 ^ 0xfffffafb)) ^ DAT_1826717a4) *
       (*(uint *)(lVar5 + -0x910) ^ DAT_182671704) ^ DAT_18267165c;
  *(ulonglong *)(lVar5 + -0x240) =
       *(ulonglong *)(lVar5 + -0xa60) >> ((byte)*(undefined8 *)(lVar5 + -0x800) & 0x3f);
  uVar14 = (*(uint *)(lVar5 + -0x754) ^ uVar14) * (DAT_182671588 ^ 0x318dfcce);
  *(uint *)(lVar5 + -0x47c) = uVar14 ^ uVar29;
  *(uint *)(lVar5 + -0x328) =
       (*(uint *)(lVar5 - ((ulonglong)uVar31 ^ 0xad96752)) ^ DAT_18267165c) + uVar14 ^ uVar9;
  uVar14 = DAT_1826717f0;
  *(uint *)(lVar5 + -0x874) =
       (*(uint *)(lVar5 - (uVar22 ^ 0x289432e)) ^ uVar9) << (bVar13 & 0x1f) ^ DAT_1826717c4;
  *(uint *)(lVar5 - ((ulonglong)uVar30 ^ 0xb3a0da7c)) =
       (*(uint *)(lVar5 + -0x328) ^ uVar9) >> (((byte)uVar25 ^ 0x4f) & 0x1f) ^ _DAT_182671610;
  uVar19 = DAT_18267178c ^ uVar14;
  uVar9 = *(uint *)(lVar5 + -0x678) ^ _DAT_182671610;
  *(ulonglong *)(lVar5 + -0xbf0) =
       (CONCAT44(uVar6,uVar30) ^ 0xa63894f6ff1cbad5) >>
       ((byte)*(undefined8 *)(lVar5 + -0x898) & 0x3f);
  uVar31 = DAT_1826715e4;
  puVar34 = (uint *)(lVar5 - (uVar20 ^ 0x3bfe202c));
  *puVar34 = (uVar9 | *(uint *)(lVar5 + -0x874) ^ DAT_1826717c4) ^ uVar14;
  uVar30 = (*(uint *)(lVar5 - ((ulonglong)DAT_182671594 ^ 0xd92b97d)) ^ uVar32) +
           (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624);
  uVar9 = uVar30 ^ uVar26;
  *(uint *)(lVar5 + -0x27c) = uVar9;
  uVar26 = uVar9 ^ uVar29 ^ uVar26;
  *(uint *)(lVar5 + -0x844) = uVar26;
  uVar19 = uVar19 ^ *puVar34;
  *puVar1 = uVar30 * (*(uint *)(lVar5 + -0x374) ^ uVar14);
  uVar30 = DAT_1826716b4 ^ DAT_18267178c;
  uVar20 = (ulonglong)DAT_182671604;
  *(uint *)(lVar5 + -0x964) = uVar19;
  *(uint *)(lVar5 + -0x504) = uVar26 ^ uVar31 ^ uVar29;
  *puVar17 = uVar30 ^ uVar19;
  bVar3 = (byte)DAT_1826717e4;
  uVar30 = DAT_1826715e8;
  uVar33 = CONCAT44(DAT_182671570,DAT_182671598);
  uVar12 = (ulonglong)DAT_182671574;
  pbVar21 = (byte *)(*(longlong *)(lVar5 - (uVar22 ^ 0x28948f6)) +
                     (CONCAT44(DAT_182671578,DAT_1826715a0) ^ 0xdc04b3a0aadd745e) * 0x20 +
                    (CONCAT44(uVar15,DAT_182671598) ^ 0x2894006745eaad3));
  *(ulonglong *)(lVar5 + -0x118) = (ulonglong)pbVar21 ^ uVar20;
  *(byte *)(lVar5 + -0xc41) = *pbVar21 ^ bVar3 ^ (byte)DAT_182671694;
  *(uint *)(lVar5 - (uVar23 ^ 0x318dff89)) =
       (*(byte *)(lVar5 - (uVar12 ^ 0x966b3162)) ^ bVar3) ^ uVar30;
  uVar14 = (*(uint *)(lVar5 + -0x754) ^ DAT_1826716b4) + (DAT_182671580 ^ 0x3209058d) ^
           DAT_182671638;
  *(ulonglong *)(lVar5 + -0x1d8) = *(ulonglong *)(lVar5 + -0xc08) | 0x83154f115542fe6d;
  uVar12 = CONCAT44(uVar35,DAT_18267158c);
  uVar15 = (uVar30 ^ *(uint *)(lVar5 + -0x344)) << 0x11 ^ DAT_182671680;
  *(uint *)(lVar5 + -0x47c) = uVar14;
  uVar14 = uVar14 ^ DAT_182671638;
  *(uint *)(lVar5 + -0x328) = uVar15;
  uVar9 = DAT_182671774;
  lVar4 = DAT_182671560;
  uVar15 = uVar14 - (uVar15 ^ DAT_182671680) ^ DAT_182671774;
  puVar2 = (ulonglong *)(DAT_182671560 + -0x2a0);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (uVar33 ^ 0xbe8e4f944b495dc4) + (CONCAT44(uVar16,DAT_1826715b4) ^ 0x2e08cd52636cc07b);
  *(ulonglong *)(lVar4 + -0x270) = uVar12 ^ 0xbbd3643f19fb587c | *puVar2;
  *(uint *)(lVar4 + -0x874) = uVar15;
  uVar14 = DAT_18267166c;
  uVar16 = DAT_182671608;
  uVar15 = DAT_1826715a0;
  uVar35 = DAT_1826715a4 ^ 0xe16168d3;
  *(uint *)(lVar4 + -0x678) =
       (*(uint *)(lVar4 - (uVar22 ^ 0x2894872)) ^ uVar9) * (*(uint *)(lVar4 + -0x504) ^ uVar31) ^
       DAT_18267166c;
  uVar12 = (ulonglong)DAT_18267179c;
  *(uint *)(lVar4 - (uVar27 ^ 0x318df5dd)) =
       (uVar30 ^ *(uint *)(lVar4 + -0x344)) * uVar35 ^ _DAT_1826715dc;
  uVar14 = (uVar14 ^ *(uint *)(lVar4 + -0x678)) + (*(uint *)(lVar4 + -0x910) ^ _DAT_1826715dc);
  *(uint *)(lVar4 + -0x374) = uVar14 ^ uVar16;
  *(byte *)(lVar4 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xd30) ^ uVar12) ^ (byte)DAT_182671694;
  uVar30 = DAT_182671688;
  uVar12 = (ulonglong)DAT_182671594;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar15 ^ 0xaadd7622)) =
       uVar14 << (((byte)DAT_182671598 ^ 0xd0) & 0x1f) ^ DAT_182671688;
  lVar4 = DAT_182671560;
  uVar15 = (*(uint *)(DAT_182671560 - (uVar12 ^ 0xd92b319)) ^ uVar16) >>
           (((byte)uVar15 ^ 0x4d) & 0x1f) ^ DAT_1826716c4;
  puVar34 = (uint *)(DAT_182671560 - (uVar18 ^ 0xb3a0d440));
  *puVar1 = uVar15;
  *puVar34 = (uVar30 ^ *(uint *)(lVar4 + -0x27c) | uVar15 ^ DAT_1826716c4) ^ DAT_1826715d4;
  uVar15 = (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar4 + -0x504) ^ uVar31) ^
           DAT_18267186c;
  *(uint *)(lVar4 + -0x964) = uVar15;
  *(uint *)(lVar4 + -0x754) = uVar15 ^ DAT_182671744 ^ DAT_18267186c;
  uVar15 = _DAT_1826715f0;
  uVar18 = (ulonglong)DAT_1826717b8;
  uVar12 = (ulonglong)DAT_1826715b4;
  *(uint *)(lVar4 - (uVar23 ^ 0x318df8b1)) =
       *(uint *)(lVar4 + -0x844) ^ DAT_182671888 ^ DAT_1826715d4;
  uVar16 = *(uint *)(lVar4 + -0x47c) ^ DAT_1826716d0 ^ DAT_182671888;
  *(ulonglong *)(lVar4 + -0x9f8) = ((ulonglong)uVar25 ^ 0xcabcb000) >> 0xc;
  *(uint *)(lVar4 + -0x328) = *(uint *)(lVar4 + -0x754) ^ _DAT_1826715e0 ^ DAT_182671744;
  bVar3 = (byte)DAT_18267189c;
  *(uint *)(lVar4 - (uVar12 ^ 0xf526939d)) = uVar16;
  uVar12 = CONCAT44(DAT_1826715b0,DAT_182671594);
  *(undefined4 *)(lVar4 + -0x344) = 0x6d7f8b12;
  *(ulonglong *)(lVar4 + -0x340) =
       (uVar12 ^ 0x5ff96fb70d92b074) + (CONCAT44(uVar6,DAT_182671584) ^ 0xffffffffa0069048) * 0x20 +
       *(longlong *)(lVar4 + -0x8f0) ^ uVar18;
  bVar8 = *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_18267156c ^ 0x568943c6)) ^ uVar18) ^
          bVar3 ^ (byte)DAT_182671694;
  *(byte *)(lVar4 + -0xc41) = bVar8;
  uVar12 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar4 + -0x678) = (bVar8 ^ bVar3) ^ uVar15;
  bVar3 = (byte)DAT_182671570;
  uVar16 = (*(uint *)(lVar4 - (uVar12 ^ 0x28d7d6ac)) ^ DAT_1826716d0) + (DAT_1826715a4 ^ 0xe8964e08)
  ;
  *(uint *)(lVar4 + -0x910) = uVar16 ^ uVar9;
  uVar15 = (uVar15 ^ *puVar24) << ((bVar3 ^ 7) & 0x1f) ^ DAT_182671890;
  *(uint *)(lVar4 + -0x374) = uVar15;
  uVar16 = uVar16 - (uVar15 ^ DAT_182671890);
  *(uint *)(lVar4 + -0x27c) = uVar16 ^ uVar32;
  uVar15 = *(uint *)(lVar4 - (uVar27 ^ 0x318dffe5)) ^ _DAT_1826715e0;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar10;
  *puVar1 = uVar15 * uVar16 ^ DAT_1826717e0;
  return;
}



############ FUN_ 180e9e2b0 size=5283 ############

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

void FUN_180e9e2b0(void)

{
  uint uVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong uVar32;
  byte bVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  
  uVar7 = DAT_182671644;
  uVar2 = DAT_182671598;
  uVar6 = DAT_18267156c;
  lVar4 = DAT_182671560;
  uVar27 = (ulonglong)DAT_18267156c;
  uVar19 = (ulonglong)DAT_182671598;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671b80);
  uVar14 = DAT_182671598 + DAT_18267156c;
  uVar11 = *(uint *)(&DAT_182611e80 + DAT_182671b80) ^ DAT_18267156c;
  uVar32 = (ulonglong)uVar14;
  uVar15 = CONCAT44(uVar14,DAT_18267156c);
  uVar26 = DAT_18267156c ^ 0x27290330;
  DAT_182671594 = uVar14;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       uVar15 ^ CONCAT44(DAT_182671598,DAT_182671598) ^ 0x55dcab95b57544de;
  uVar16 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar18 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar37 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar15 = (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar4 + -0x688)) + (uVar15 ^ 0x37ae754c28784a43);
  bVar3 = (byte)uVar2;
  *(ulonglong *)(lVar4 + -0x600) = uVar15 ^ uVar16;
  uVar7 = DAT_18267176c;
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x72e157b)) =
       (uVar18 ^ *(ulonglong *)(lVar4 + -0x9f8)) - uVar15 ^ uVar37;
  uVar8 = DAT_1826718b4;
  uVar18 = (ulonglong)DAT_1826718b4;
  uVar15 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(uint *)(lVar4 + -0x3d4) = uVar26 >> ((bVar3 ^ 0xa4) & 0x1f);
  uVar22 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x1d8) =
       CONCAT44(uVar7,uVar7) ^ uVar15 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0xa88) ^
       *(ulonglong *)(lVar4 + -0x2a0);
  *(longlong *)(lVar4 - (uVar27 ^ 0x280049a)) = -0x7ea3987dc6741d73 << ((bVar3 ^ 0xb4) & 0x3f);
  uVar20 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar4 + -0x548) = (*(ulonglong *)(lVar4 + -0x1d8) >> 0x20 ^ uVar18) >> 1 ^ uVar20;
  uVar7 = DAT_182671778;
  uVar18 = CONCAT44(DAT_182671770,DAT_182671770);
  puVar28 = (ulonglong *)(lVar4 - ((ulonglong)uVar2 ^ 0x72e13ab));
  *puVar28 = (*(ulonglong *)(lVar4 + -0x1d8) ^ uVar22) << ((bVar3 ^ 0xac) & 0x3f) ^ uVar18;
  uVar9 = DAT_182671624;
  uVar29 = CONCAT44(uVar7,uVar7);
  puVar23 = (ulonglong *)(lVar4 - (uVar27 ^ 0x2800432));
  uVar22 = CONCAT44(DAT_182671798,DAT_182671798);
  *puVar23 = (*(ulonglong *)(lVar4 - (uVar32 ^ 0x9ae1025)) ^ uVar18 |
             uVar20 ^ *(ulonglong *)(lVar4 + -0x548)) ^ uVar29;
  uVar10 = DAT_18267179c;
  uVar7 = DAT_1826715c8;
  uVar20 = uVar29 ^ *(ulonglong *)(lVar4 + -0x6b8);
  uVar15 = (uVar15 ^ *(ulonglong *)(lVar4 + -0x2a0)) -
           (*(ulonglong *)(lVar4 - ((ulonglong)uVar2 ^ 0x72e14b3)) ^ CONCAT44(uVar9,uVar9));
  *(ulonglong *)(lVar4 + -0x240) = uVar15 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x898) = CONCAT44(uVar14,uVar14) ^ 0xefab1586fd67cd16;
  uVar34 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar15 - uVar20 ^ uVar34;
  uVar15 = -(CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar4 + -0x638)) - 0xd;
  uVar18 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(lVar4 + -0x1f0) = uVar15 ^ CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar4 + -0x800) =
       (*(ulonglong *)(lVar4 + -0x270) ^ uVar18) << ((byte)uVar20 & 0x3f);
  uVar21 = CONCAT44(DAT_18267186c,DAT_18267186c);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x28005c2)) = uVar15 + (*puVar23 ^ uVar29) ^ uVar21;
  uVar7 = DAT_182671750;
  uVar30 = *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x9ae1475)) ^ uVar21 ^ 0x70943c1b35159404;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar30;
  uVar22 = CONCAT44(uVar7,uVar7);
  uVar17 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar20 = *(ulonglong *)(lVar4 - (uVar27 ^ 0x2800a22)) ^ uVar17 ^ uVar22 ^
           *(ulonglong *)(lVar4 + -0x748) ^ uVar21;
  uVar24 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar4 + -0x628) = uVar20;
  uVar29 = (uVar20 ^ uVar22) >> ((bVar3 ^ 0xb6) & 0x3f);
  uVar15 = CONCAT44(uVar2,DAT_1826715a0);
  *(ulonglong *)(lVar4 + -0x9f8) = uVar29 ^ uVar24;
  uVar7 = DAT_182671810;
  *(ulonglong *)(lVar4 + -0xa88) = uVar15 ^ 0x975726a08323c96e | uVar29;
  *(ulonglong *)(lVar4 + -0x548) = uVar29 - uVar30;
  uVar9 = DAT_18267182c;
  uVar15 = (uVar22 ^ uVar20) << 0x3b;
  *(ulonglong *)(lVar4 + -0x610) = uVar15 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671714;
  lVar5 = DAT_182671560;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar29 = uVar29 | uVar15;
  uVar20 = uVar29 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar20;
  uVar8 = DAT_1826715a4;
  uVar24 = CONCAT44(uVar7,uVar7);
  uVar17 = (uVar17 ^ *(ulonglong *)(lVar5 + -0x8a8)) - uVar29 ^ uVar24;
  *(ulonglong *)(lVar5 + -0x318) = uVar17;
  uVar15 = *(ulonglong *)(lVar5 - (uVar32 ^ 0x9ae18cd)) ^ uVar22 ^ uVar34 ^ uVar37 ^
           *(ulonglong *)(lVar5 + -0x5c8);
  uVar30 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  *(ulonglong *)(lVar5 + -0x400) = uVar15;
  uVar2 = DAT_182671590;
  uVar7 = DAT_182671584;
  *(ulonglong *)(lVar5 + -0x2a0) = (uVar15 ^ uVar22) >> (((byte)uVar8 ^ 0xea) & 0x3f) ^ uVar30;
  uVar22 = (uVar22 ^ uVar15) << (((byte)uVar2 ^ 0x8a) & 0x3f);
  *(ulonglong *)(lVar5 + -0x898) = uVar22 ^ CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar15 = (ulonglong)DAT_18267177c;
  uVar2 = DAT_18267177c >> 0x17;
  uVar22 = *(ulonglong *)(lVar5 - (uVar19 ^ 0x72e1213)) ^ uVar30 | uVar22;
  uVar37 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  uVar19 = uVar22 ^ uVar30;
  uVar29 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar5 + -0x240) = uVar19;
  uVar9 = DAT_18267168c;
  uVar34 = (uVar34 ^ *(ulonglong *)(lVar5 + -0xbf0)) - uVar22 ^ uVar37;
  *(ulonglong *)(lVar5 + -0x270) = uVar34;
  uVar25 = CONCAT44(uVar9,uVar9);
  uVar19 = uVar29 ^ uVar30 ^ uVar17 ^ uVar24 ^ uVar19;
  *(ulonglong *)(lVar5 + -0x800) = uVar19;
  uVar9 = DAT_182671638;
  uVar22 = (ulonglong)DAT_182671574;
  uVar17 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar5 + -0x6b8) =
       ((ulonglong)uVar2 | uVar15 << 9) ^ *(ulonglong *)(lVar5 - (uVar32 ^ 0x9ae1b3d)) >> 0x17 ^
       uVar25;
  uVar35 = CONCAT44(uVar9,uVar9);
  uVar15 = (uVar29 ^ uVar19) << 0x29;
  *(ulonglong *)(lVar5 + -0x1f0) = uVar15 ^ uVar17;
  uVar9 = DAT_182671670;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar5 + -0x748) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0xc5c19d0d)) ^ uVar25 | uVar15) ^ uVar35;
  uVar10 = DAT_1826716f4;
  uVar26 = DAT_18267158c;
  lVar5 = DAT_182671560;
  uVar38 = CONCAT44(uVar9,uVar9);
  uVar19 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar4 + -0xa88) =
       (uVar24 ^ *puVar28) -
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715b0 ^ 0xaac63a99)) ^ uVar35) ^ uVar38;
  uVar9 = DAT_182671780;
  uVar8 = DAT_182671588;
  uVar15 = CONCAT44(uVar10,uVar10);
  uVar20 = uVar15 ^ uVar37 ^ uVar36 ^ uVar34 ^ uVar20;
  *(ulonglong *)(lVar4 + -0x628) = uVar20;
  uVar17 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 - (uVar19 ^ 0x2e07b500)) =
       (uVar20 ^ uVar15) >> (((byte)uVar6 ^ 0xa2) & 0x3f) ^ uVar17;
  uVar10 = DAT_182671884;
  uVar20 = (uVar15 ^ *(ulonglong *)(lVar5 + -0x628)) << 0x18;
  *(ulonglong *)(lVar5 + -0x548) = uVar20 ^ CONCAT44(DAT_1826717d0,DAT_1826717d0);
  uVar9 = DAT_1826716e8;
  uVar15 = (ulonglong)DAT_1826715a4;
  uVar22 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 + -0x6d0) = (uVar17 ^ *(ulonglong *)(lVar5 + -0x610) | uVar20) ^ uVar22;
  uVar24 = CONCAT44(uVar9,uVar9);
  uVar20 = (*(ulonglong *)(lVar5 - (uVar15 ^ 0x138cf6bf)) ^ uVar37) -
           (*(ulonglong *)(lVar5 - (uVar27 ^ 0x280045a)) ^ uVar22) ^ uVar24;
  uVar30 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar5 + -0x9f8) = uVar20;
  uVar10 = DAT_1826717ec;
  bVar13 = (byte)DAT_1826715b4;
  uVar15 = *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x57bfd26b)) ^ uVar30 ^ uVar22 ^ uVar38 ^
           *(ulonglong *)(lVar5 + -0xa88);
  *(ulonglong *)(lVar5 + -0x8a8) = uVar15;
  uVar9 = DAT_18267159c;
  lVar4 = DAT_182671560;
  uVar22 = (uVar15 ^ uVar30) >> ((bVar13 ^ 0x90) & 0x3f);
  bVar31 = (byte)uVar14;
  uVar15 = (uVar30 ^ uVar15) << ((bVar31 ^ 0x31) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar22 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x400) = uVar15 ^ CONCAT44(DAT_182671834,DAT_182671834);
  uVar10 = DAT_1826715bc;
  uVar2 = DAT_182671574;
  uVar15 = uVar15 | uVar22;
  *(ulonglong *)(lVar4 + -0x2a0) =
       (CONCAT44(uVar8,uVar6) ^ 0x3d24be91439c510) - (CONCAT44(uVar9,uVar14) ^ 0xd05287ae2e52889f);
  bVar13 = (byte)DAT_182671590;
  uVar36 = CONCAT44(uVar10,uVar10);
  uVar22 = CONCAT44(uVar2,DAT_182671570);
  *(ulonglong *)(lVar4 + -0x898) = uVar15 ^ uVar36;
  uVar9 = DAT_1826715b8;
  *(ulonglong *)(lVar4 + -0xbf0) = (uVar22 ^ 0x2a0bf7627271ffca) >> ((bVar13 ^ 0xaf) & 0x3f);
  uVar10 = DAT_182671830;
  uVar2 = DAT_182671588;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x240) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0x2800802)) ^ uVar38) - uVar15 ^ uVar37;
  uVar15 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a4 ^ 0x138cfccf)) =
       uVar24 ^ uVar35 ^ *(ulonglong *)(lVar4 + -0x748) ^ uVar15 ^ uVar20;
  uVar12 = uVar2 & uVar26;
  uVar17 = CONCAT44(DAT_182671630,DAT_182671630);
  DAT_1826715a4 = uVar12;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar2 ^ 0x57bfd203)) =
       (uVar15 ^ *(ulonglong *)(lVar4 + -0x800)) >> (((byte)uVar12 ^ 0x29) & 0x3f) ^ uVar17;
  uVar9 = _DAT_182671838;
  bVar33 = (byte)uVar2;
  uVar15 = (uVar15 ^ *(ulonglong *)(lVar4 + -0x800)) << ((bVar33 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar4 + -0x1f0) = uVar15 ^ CONCAT44(DAT_182671684,DAT_182671684);
  lVar5 = DAT_182671560;
  uVar15 = *(ulonglong *)(lVar4 + -0x6b8) ^ uVar17 | uVar15;
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar20 = uVar15 ^ uVar34;
  uVar35 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar20;
  uVar10 = DAT_1826716d0;
  *(ulonglong *)(lVar5 + -0x1d8) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x60799e8)) ^ uVar24) - uVar15 ^ uVar35;
  uVar9 = DAT_1826716b0;
  uVar22 = CONCAT44(uVar10,uVar10);
  uVar15 = *(ulonglong *)(lVar5 + -0x240) ^ uVar20 ^ uVar22 ^ uVar34 ^ uVar37;
  *(ulonglong *)(lVar5 + -0x628) = uVar15;
  uVar10 = DAT_182671864;
  uVar24 = (uVar15 ^ uVar22) >> ((bVar33 ^ 0xb5) & 0x3f);
  *(ulonglong *)(lVar5 + -0x610) = uVar24 ^ CONCAT44(uVar9,uVar9);
  lVar4 = DAT_182671560;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x6079638)) ^ uVar22) <<
       (((byte)uVar26 ^ 0x22) & 0x3f) ^ uVar20;
  lVar5 = DAT_182671560;
  uVar15 = *(ulonglong *)(DAT_182671560 + -0x240);
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (*(ulonglong *)(lVar4 - (uVar19 ^ 0x2e07b658)) ^ uVar20 | uVar24) ^ uVar29;
  *(ulonglong *)(lVar5 + -0x6d0) =
       (CONCAT44(uVar8,uVar12) ^ 0x82fa00ef9cac22ec) + 0x1a7fa3df67b4e98f;
  uVar20 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar5 - (uVar19 ^ 0x2e07bbb8)) =
       (uVar15 ^ uVar37) - (*(ulonglong *)(lVar5 + -0x510) ^ uVar25) ^ uVar20;
  uVar29 = uVar29 ^ *(ulonglong *)(lVar5 + -0x270);
  *(uint *)(lVar5 + -0x274) = (uVar2 ^ 0x83ad427a) + 0x9f1f5c20;
  uVar37 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar5 + -0x2a0) = (*(ulonglong *)(lVar5 + -0x8a8) ^ uVar20) - uVar29 ^ uVar37;
  uVar6 = DAT_1826715a4;
  lVar4 = DAT_182671560;
  uVar15 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  uVar34 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a4 ^ 0x6079a70)) ^ uVar22) +
       (CONCAT44(uVar12,DAT_1826715a4) ^ 0xe6d1e4d29b67b5c5) ^ uVar15;
  uVar9 = DAT_182671604;
  *(ulonglong *)(lVar4 + -0x400) =
       uVar29 - (*(ulonglong *)(lVar4 - (uVar19 ^ 0x2e07b6d8)) ^ uVar15) ^ uVar34;
  uVar29 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0xbf0) =
       *(ulonglong *)(lVar4 + -0x898) ^ *(ulonglong *)(lVar4 + -0x1d8) ^ uVar29 ^ uVar35 ^ uVar36;
  uVar24 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x2e07b998)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x6079be0)) ^ uVar29) >> ((byte)uVar12 & 0x3f) ^
       uVar24;
  *(ulonglong *)(lVar4 + -0x748) =
       (CONCAT44(uVar12,uVar2) ^ 0x22c2c7563ec6318d) + 0x3583aed699b78b2c;
  uVar22 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar15 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x6079810)) =
       (uVar29 ^ *(ulonglong *)(lVar4 + -0xbf0)) << (((byte)uVar26 ^ 0x20) & 0x3f) ^ uVar22;
  lVar5 = DAT_182671560;
  uVar29 = *(ulonglong *)(lVar4 - (uVar15 ^ 0xf7eae561)) ^ uVar24 |
           uVar22 ^ *(ulonglong *)(lVar4 + -0x800);
  uVar15 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar29 ^ CONCAT44(DAT_182671854,DAT_182671854);
  uVar9 = DAT_1826716fc;
  *(ulonglong *)(lVar4 + -0x1f0) =
       (*(ulonglong *)(lVar4 + -0x1d8) ^ uVar35) - (*(ulonglong *)(lVar4 + -0x600) ^ uVar16) ^
       uVar15;
  uVar10 = DAT_182671774;
  uVar2 = DAT_182671590;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x9f8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x60791e0)) ^ uVar15) - uVar29 ^ uVar16;
  uVar22 = (CONCAT44(uVar2,DAT_1826715b4) ^ 0xfd7ffb6eedccfa50) -
           (*(ulonglong *)(lVar4 + -0x3b8) ^ uVar30);
  *(ulonglong *)(lVar5 + -0x318) = uVar22 ^ CONCAT44(uVar10,uVar10);
  uVar15 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar5 + -0x628) =
       0x12f0b9796624eb4c - (CONCAT44(uVar26,uVar26) ^ 0xc4cb9671a343dd9c);
  *(ulonglong *)(lVar5 - (uVar15 ^ 0x57bfd2ab)) = uVar22 + uVar29 ^ uVar20;
  uVar8 = DAT_1826715ac;
  uVar6 = DAT_182671578;
  uVar2 = DAT_182671568;
  uVar29 = (ulonglong)DAT_1826715ac;
  bVar13 = (byte)DAT_18267157c;
  uVar22 = CONCAT44(DAT_182671738,DAT_182671738);
  uVar20 = *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671578 ^ 0xeff6bbc3)) ^ uVar30 ^
           *(ulonglong *)(lVar5 + -0x2a0) ^ uVar37 ^ uVar20;
  *(ulonglong *)(lVar5 + -0x548) = uVar20;
  *(ulonglong *)(lVar5 + -0x6d0) = (uVar30 ^ uVar20) >> ((bVar13 ^ 0xe8) & 0x3f) ^ uVar22;
  uVar15 = (uVar30 ^ uVar20) << (((byte)uVar8 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar5 + -0x240) = uVar15 ^ CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0xeff6b57b)) =
       (*(ulonglong *)(lVar5 - (uVar32 ^ 0x9ae15ed)) ^ uVar22 | uVar15) ^ uVar17;
  uVar20 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar22 = (*(ulonglong *)(lVar5 + -0x2a0) ^ uVar37) - (*(ulonglong *)(lVar5 + -0x8a8) ^ uVar17) ^
           uVar20;
  *(ulonglong *)(lVar5 + -0x270) = uVar22;
  uVar15 = *(ulonglong *)(lVar5 - ((ulonglong)uVar2 ^ 0x3004316d)) ^ uVar18 ^ uVar16 ^ uVar34 ^
           *(ulonglong *)(lVar5 + -0x9f8);
  uVar30 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar5 + -0x898) = uVar15;
  uVar24 = uVar15 >> 0x20 ^ (ulonglong)DAT_1826716ac;
  uVar37 = (uVar15 ^ uVar18) << ((bVar33 ^ 0x9b) & 0x3f);
  uVar15 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar5 + -0x748) = uVar24 ^ uVar30;
  uVar9 = DAT_182671648;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar37 ^ uVar15;
  uVar10 = DAT_18267174c;
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar37 = uVar37 | uVar24;
  uVar15 = uVar37 ^ uVar30;
  *(ulonglong *)(lVar5 + -0xa88) = uVar15;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar18 = uVar22 ^ uVar15 ^ uVar20;
  uVar15 = *(ulonglong *)(lVar5 - (uVar19 ^ 0x2e07bae8));
  *(ulonglong *)(lVar5 + -0x600) = uVar18;
  *(undefined4 *)(lVar5 + -0x27c) = 0x6460c471;
  uVar9 = DAT_182671784;
  uVar8 = DAT_1826715b0;
  uVar22 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar5 + -0x800) = (uVar15 ^ uVar16) - uVar37 ^ uVar34;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x1d8) =
       (uVar18 ^ uVar30) >> (((byte)DAT_182671588 ^ 0x81) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xaac63c21)) = (uVar19 ^ 0x54e00000) >> 0x15;
  uVar15 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar5 + -0x628) = (*(ulonglong *)(lVar5 + -0x600) ^ uVar30) << 6 ^ uVar15;
  uVar6 = DAT_1826715a0;
  uVar2 = DAT_182671570;
  uVar16 = CONCAT44(DAT_182671664,DAT_182671664);
  uVar18 = (ulonglong)DAT_182671570;
  uVar22 = (ulonglong)DAT_1826715a0;
  uVar26 = DAT_1826715a4 ^ 0xff0b6c5;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a4 ^ 0x6079308)) =
       (*(ulonglong *)(lVar5 - (uVar29 ^ 0x838d3e1f)) ^ uVar15 |
       *(ulonglong *)(lVar5 + -0x1d8) ^ uVar24) ^ uVar16;
  uVar29 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xcdd6ad74)) =
       (*(ulonglong *)(lVar5 + -0x270) ^ uVar20) - (uVar16 ^ *(ulonglong *)(lVar5 + -0x318)) ^
       uVar29;
  uVar9 = DAT_1826715f4;
  *(uint *)(lVar5 + -0x874) = uVar26 + 0x3279ead6;
  uVar18 = *(ulonglong *)(lVar5 + -0x8a8) ^ uVar21 ^ uVar34 ^ uVar17 ^
           *(ulonglong *)(lVar5 + -0x800);
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x610) = uVar18;
  uVar9 = _DAT_1826716c0;
  *(ulonglong *)(lVar5 + -0x548) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xaac63bc1)) ^ uVar21) >> ((bVar3 ^ 0xa5) & 0x3f)
       ^ uVar16;
  uVar15 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x6d0) = (uVar21 ^ uVar18) << ((bVar31 ^ 0x17) & 0x3f) ^ uVar15;
  uVar18 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_18267157c ^ 0x860d3e88)) =
       (CONCAT44(uVar6,DAT_182671574) ^ 0x9f57c8613f97414e) +
       (CONCAT44(uVar7,uVar8) ^ 0x4eadb7ee48936bb);
  uVar20 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar5 + -0x2a0) =
       (uVar15 ^ *(ulonglong *)(lVar5 + -0x6d0) | *(ulonglong *)(lVar5 + -0x548) ^ uVar16) ^ uVar20;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x280068a)) =
       CONCAT44(uVar12,uVar2) ^ 0xbfa8b904fe3d2d1b | uVar34 ^ *(ulonglong *)(lVar5 + -0x800);
  uVar9 = DAT_1826718a4;
  uVar15 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar5 + -0x898) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0x57b9ccb9)) ^ uVar34) -
       (*(ulonglong *)(lVar5 + -0x2a0) ^ uVar20) ^ CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar7 = DAT_1826717d8;
  *(ulonglong *)(lVar5 + -0x748) = uVar15 << 0x29 ^ 0xa97b300000000000;
  uVar15 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xc5c19045)) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671590 ^ 0x2800631)) ^ uVar15 ^ uVar20 ^ uVar29 ^
       *(ulonglong *)(lVar5 + -0x6b8);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x2800b72)) =
       (uVar15 ^ *(ulonglong *)(lVar5 + -0xbf0)) >> ((bVar31 ^ 0x13) & 0x3f) ^ CONCAT44(uVar9,uVar9)
  ;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar1 ^ uVar14;
  return;
}



############ FUN_ 180ecf6b0 size=5185 ############

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

void FUN_180ecf6b0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  ulonglong *puVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_108;
  
  uVar9 = _DAT_182671868;
  uVar5 = DAT_1826715a0;
  uVar4 = DAT_182671580;
  uVar14 = DAT_182671570;
  lVar2 = DAT_182671560;
  DAT_182671594 = DAT_182671590 ^ DAT_18267156c;
  DAT_18267157c = DAT_182671568 * DAT_1826715b4;
  uVar11 = DAT_182671580 & 7;
  if (uVar11 < 4) {
    if (uVar11 < 2) {
      uVar1 = DAT_1826715ac;
      if (uVar11 == 0) {
        uVar1 = DAT_182671580;
      }
      uVar41 = (ulonglong)uVar1;
    }
    else {
      uVar1 = DAT_182671574;
      if (uVar11 < 3) {
        uVar1 = DAT_1826715b0;
      }
      uVar41 = (ulonglong)uVar1;
    }
  }
  else if (uVar11 < 6) {
    uVar1 = DAT_18267158c;
    if (uVar11 < 5) {
      uVar1 = DAT_18267159c;
    }
    uVar41 = (ulonglong)uVar1;
  }
  else {
    uVar41 = (ulonglong)DAT_182671570;
    if (uVar11 < 7) {
      uVar41 = (ulonglong)DAT_182671588;
    }
  }
  uVar40 = (ulonglong)DAT_1826715a0;
  uVar34 = DAT_1826715a0 << 0x10 | DAT_1826715a0 >> 0x10;
  DAT_1826715a8 = (uint)uVar41;
  uVar11 = *(uint *)(&DAT_182611e80 + DAT_182671c10);
  uVar13 = *(uint *)(&DAT_182611e78 + DAT_182671c10) ^ DAT_1826715a0;
  puVar15 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0x41e8b5dc));
  uVar47 = CONCAT44(DAT_182671844,DAT_182671844);
  uVar17 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar22 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  DAT_182671584 = uVar34;
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (uVar17 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) - (*puVar15 ^ uVar47) ^ uVar22;
  uVar1 = DAT_1826715c8;
  uVar24 = CONCAT44(uVar9,uVar9);
  uVar18 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar33 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xddbb0848)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x100802f4)) ^ uVar33 ^ uVar18 ^ uVar24 ^
       *(ulonglong *)(lVar2 + -0x1d8);
  uVar19 = CONCAT44(uVar1,uVar1);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xf48121bd)) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x548)) >> (((byte)DAT_18267158c ^ 0xe8) & 0x3f) ^ uVar19;
  uVar1 = DAT_1826715b4;
  uVar42 = CONCAT44(DAT_182671730,DAT_182671730);
  uVar28 = (uVar24 ^ *(ulonglong *)(lVar2 + -0x548)) << (((byte)uVar5 ^ 0x55) & 0x3f);
  uVar41 = CONCAT44(DAT_1826715ac,DAT_182671598);
  *(ulonglong *)(lVar2 + -0x670) = uVar28 ^ uVar42;
  uVar6 = DAT_1826715b0;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       uVar41 ^ 0x5855907a8febdae6 | CONCAT44(DAT_1826715b0,uVar1) ^ 0xf91dd394d57de96;
  uVar41 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar28 = uVar28 | uVar19 ^ *(ulonglong *)(lVar2 + -0x270);
  uVar29 = uVar28 ^ uVar41;
  uVar25 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar29;
  uVar9 = DAT_182671884;
  *(ulonglong *)(lVar2 + -0x548) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0xfe7fffae)) ^ uVar33) - uVar28 ^ uVar25;
  uVar1 = DAT_18267157c;
  uVar33 = CONCAT44(uVar9,uVar9);
  puVar16 = (ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xfe76f8af));
  *puVar16 = uVar33 ^ uVar41 ^ uVar22 ^ *(ulonglong *)(lVar2 + -0x9f8) ^ uVar29;
  uVar9 = DAT_182671714;
  uVar35 = CONCAT44(DAT_182671714,DAT_182671714);
  uVar28 = (uVar33 ^ *(ulonglong *)(lVar2 + -0x6d0)) >> (((byte)uVar1 ^ 0x2e) & 0x3f);
  uVar29 = uVar28 ^ uVar35;
  uVar20 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(lVar2 + -0x270) = uVar29;
  lVar2 = DAT_182671560;
  uVar22 = uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x9f8);
  uVar33 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0xf481251d)) ^ uVar33) <<
           (((byte)uVar6 ^ 0x93) & 0x3f);
  uVar45 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar33 ^ uVar20;
  uVar10 = DAT_182671898;
  uVar41 = *(ulonglong *)(lVar2 + -0x548);
  uVar33 = uVar33 | uVar28;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar33 ^ uVar45;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar28 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar33 << (((byte)uVar29 ^ (byte)uVar9) & 0x3f);
  uVar14 = DAT_182671770;
  *(ulonglong *)(lVar2 + -0x6d0) =
       uVar22 - (*(ulonglong *)(lVar2 - (uVar28 ^ 0xc07b2927)) ^ uVar45) ^ uVar23;
  uVar9 = DAT_18267169c;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar28 = uVar29 ^ uVar25 ^ uVar41 ^ *(ulonglong *)(lVar2 + -0x510) ^ uVar47;
  *(ulonglong *)(lVar2 + -0x670) = uVar28;
  uVar7 = DAT_182671594;
  uVar38 = (ulonglong)DAT_182671594;
  uVar36 = ((ulonglong)uVar14 << 0x14 | (ulonglong)(uVar14 >> 0xc)) ^ uVar28 >> 0xc;
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar36 ^ CONCAT44(uVar9,uVar9);
  uVar6 = DAT_182671590;
  uVar14 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar33 = (uVar29 ^ uVar28) << (((byte)DAT_18267159c ^ 0x96) & 0x3f);
  uVar28 = CONCAT44(DAT_182671590,uVar7);
  uVar36 = uVar36 | uVar33;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar33 ^ CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar2 + -0x510) = uVar28 ^ 0xe2457f8146db0a4b | uVar22;
  uVar9 = DAT_1826715f8;
  *(ulonglong *)(lVar2 + -0x670) = uVar36 ^ uVar25;
  lVar2 = DAT_182671560;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0xddbb04f8)) =
       (uVar25 ^ uVar41) - uVar36 ^ uVar22;
  uVar28 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar41 = CONCAT44(uVar5,DAT_1826715b0);
  *(ulonglong *)(lVar2 + -0x510) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xddbb0bd0)) ^ uVar28 ^ uVar23 ^ uVar25 ^
       *(ulonglong *)(lVar2 + -0x670);
  uVar1 = DAT_182671598;
  local_108 = (byte)(uVar5 >> 0x10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xddbb0f70)) =
       uVar41 ^ 0xbe3d5bfbfb7beffd | 0x23d0a7b395bebe8;
  uVar9 = DAT_182671614;
  uVar41 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  puVar21 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671574 ^ 0x41e8b864));
  bVar12 = (byte)DAT_18267159c;
  *puVar21 = (uVar28 ^ *(ulonglong *)(lVar2 + -0x510)) >> ((local_108 ^ 0x6f) & 0x3f) ^ uVar41;
  uVar14 = DAT_18267157c;
  *(ulonglong *)(lVar2 + -0x548) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x510)) << ((bVar12 ^ 0x85) & 0x3f) ^ uVar24;
  uVar36 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x670) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x110be009)) ^ uVar24 |
       uVar41 ^ *(ulonglong *)(lVar2 + -0x8a8)) ^ uVar36;
  uVar5 = DAT_182671590;
  lVar2 = DAT_182671560;
  uVar41 = (ulonglong)DAT_182671568;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xccb0ea31)) =
       (CONCAT44(uVar14,DAT_1826715a8) ^ 0xc36a46d12d60702e) +
       (CONCAT44(uVar4,DAT_1826715b4) ^ 0x85d8e5b45181da41);
  uVar10 = DAT_182671688;
  uVar30 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar33 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar41 = (*(ulonglong *)(lVar2 - (uVar41 ^ 0x23cdf2d0)) ^ uVar23) -
           (uVar30 ^ *(ulonglong *)(lVar2 + -0x638));
  *(ulonglong *)(lVar2 + -0x510) = uVar41 ^ uVar33;
  uVar9 = DAT_182671648;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar41 - (uVar36 ^ *(ulonglong *)(lVar2 + -0x670)) ^ uVar26;
  uVar14 = _DAT_18267188c;
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar37 = CONCAT44(DAT_182671640,DAT_182671640);
  uVar23 = (ulonglong)_DAT_18267188c;
  uVar28 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xccb0ee51)) ^ uVar47) +
           (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar31);
  *(ulonglong *)(lVar2 + -0x548) = uVar28 ^ uVar37;
  uVar9 = DAT_182671670;
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x270) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0xb2987ba8)) ^ uVar26) << 0xc;
  uVar41 = (ulonglong)DAT_1826715ac;
  uVar43 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x6d0) = (uVar36 ^ *(ulonglong *)(lVar2 + -0x670)) - uVar28 ^ uVar43;
  *(ulonglong *)(lVar2 + -0x510) =
       uVar44 ^ uVar22 ^ uVar45 ^ *(ulonglong *)(lVar2 + -0x9f8) ^ *(ulonglong *)(lVar2 + -0x1d8);
  uVar1 = DAT_18267158c;
  uVar5 = DAT_182671588;
  uVar36 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar39 = (ulonglong)DAT_18267159c;
  uVar28 = CONCAT44(DAT_182671588,DAT_18267159c);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0x7ffe748e)) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0xc07b2def)) >> 0x20 ^ uVar23) >> 1 ^ uVar36;
  uVar9 = DAT_182671888;
  lVar2 = DAT_182671560;
  puVar27 = (ulonglong *)(DAT_182671560 + -0x510);
  uVar23 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(DAT_182671560 + -0x670) = (uVar28 ^ 0x289dfea8e004215c) + (uVar43 ^ *puVar16);
  uVar38 = CONCAT44(uVar9,uVar9);
  uVar28 = (uVar44 ^ *puVar27) << (((byte)DAT_182671580 ^ 0x1f) & 0x3f);
  uVar41 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar28 ^ uVar23;
  uVar9 = DAT_182671650;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0xb2987570)) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0x23cdf6f1)) ^ uVar36 | uVar28) ^ uVar38;
  uVar41 = CONCAT44(DAT_182671790,DAT_182671790);
  puVar32 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x10080f4c));
  *puVar32 = (uVar22 ^ *(ulonglong *)(lVar3 + -0x9f8)) -
             (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0x688)) ^ uVar41;
  uVar9 = DAT_182671768;
  *(ulonglong *)(lVar3 + -0x270) =
       (uVar41 ^ *(ulonglong *)(lVar3 + -0x510)) - (uVar38 ^ *(ulonglong *)(lVar3 + -0x670)) ^
       uVar42;
  uVar8 = DAT_1826715a8;
  uVar14 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar47 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  uVar28 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  uVar41 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a8 ^ 0xddbb04f8)) =
       ((CONCAT44(DAT_1826715a8,uVar1) ^ 0x2244f2ff80018909) -
       (*(ulonglong *)(DAT_182671560 - (uVar39 ^ 0x4e51fa2)) ^ uVar22)) +
       (uVar38 ^ *(ulonglong *)(DAT_182671560 + -0x670)) ^ uVar28;
  uVar4 = DAT_18267157c;
  uVar39 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xddbb0b88)) =
       uVar39 ^ uVar28 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0x9f8) ^ *(ulonglong *)(lVar2 + -0x8a8);
  uVar9 = DAT_1826717a8;
  uVar46 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar23 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x688)) >> (((byte)uVar4 ^ 5) & 0x3f);
  uVar41 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x688)) << 0x3b;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar41 ^ uVar25;
  *(ulonglong *)(lVar2 + -0x510) = uVar23 ^ uVar46;
  uVar38 = CONCAT44(uVar9,uVar9);
  uVar28 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar34 ^ 0xfe7ff806)) = (uVar23 | uVar41) ^ uVar38;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (uVar26 ^ *puVar21) - (*(ulonglong *)(DAT_182671560 - (uVar28 ^ 0xc07b2e8f)) ^ uVar38) ^
       uVar44;
  puVar21 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0x23cdf288));
  uVar41 = (ulonglong)DAT_182671598;
  *puVar21 = 0xf34f5a7595002ff >> (local_108 & 0x3f);
  uVar28 = uVar47 ^ uVar43 ^ uVar42 ^ *(ulonglong *)(lVar2 + -0x6d0) ^
           *(ulonglong *)(lVar2 + -0x270);
  bVar12 = (byte)DAT_182671570;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xb29872d8)) = uVar28;
  uVar28 = (uVar28 ^ uVar47) >> ((bVar12 ^ 0xe8) & 0x3f);
  uVar41 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x510) = uVar28 ^ uVar45;
  uVar10 = DAT_1826718cc;
  *(ulonglong *)(lVar2 + -0x8a8) = *(ulonglong *)(lVar2 - (uVar41 ^ 0x32a28611)) ^ uVar45 | uVar28;
  uVar9 = DAT_1826718b4;
  uVar43 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x688) =
       (uVar47 ^ *(ulonglong *)(lVar2 + -0x1d8)) << (((byte)uVar5 ^ 0x47) & 0x3f) ^ uVar43;
  lVar2 = DAT_182671560;
  uVar23 = CONCAT44(uVar9,uVar9);
  puVar27 = (ulonglong *)(DAT_182671560 + -0x270);
  uVar28 = *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xfe76f8f7)) ^ uVar43 | uVar28;
  uVar41 = uVar28 ^ uVar23;
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar41;
  uVar10 = DAT_1826716b8;
  uVar28 = (uVar42 ^ *puVar27) - uVar28 ^ uVar46;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar28;
  uVar47 = CONCAT44(uVar10,uVar10);
  uVar40 = CONCAT44(DAT_182671628,DAT_182671628);
  uVar41 = uVar47 ^ uVar23 ^ uVar44 ^ *(ulonglong *)(lVar2 + -0x9f8) ^ uVar41;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar41;
  uVar9 = DAT_182671634;
  uVar23 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xddbb0cd8)) ^ uVar47) >>
           (((byte)DAT_182671580 ^ 0x17) & 0x3f);
  bVar12 = (byte)DAT_1826715ac;
  *(ulonglong *)(lVar2 + -0x510) = uVar23 ^ uVar40;
  lVar2 = DAT_182671560;
  uVar41 = (uVar47 ^ uVar41) << ((bVar12 ^ 0xd6) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar41 ^ CONCAT44(uVar9,uVar9);
  uVar23 = uVar23 | uVar41;
  uVar40 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar41 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar23 ^ uVar40;
  puVar27 = (ulonglong *)(lVar2 - (uVar41 ^ 0xddbb0cd8));
  uVar41 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar2 + -0x510) = (uVar43 ^ *puVar21) << (((byte)uVar10 ^ (byte)*puVar27) & 0x3f);
  uVar4 = DAT_182671578;
  *(ulonglong *)(lVar2 + -0x270) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0x7ffe7f06)) ^ uVar44) - uVar23 ^ uVar39;
  uVar14 = DAT_18267159c;
  *puVar15 = uVar38 ^ uVar46 ^ uVar31 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x670);
  uVar9 = DAT_18267181c;
  uVar28 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x510)) >> (((byte)uVar14 ^ 0x8a) & 0x3f);
  uVar14 = uVar4 ^ DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0x688) = uVar28 ^ uVar26;
  uVar41 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x510)) << 0x18;
  DAT_1826715a4 = uVar14;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar41 ^ uVar18;
  lVar2 = DAT_182671560;
  uVar38 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0x4d9c889a)) = (uVar41 | uVar28) ^ uVar38;
  uVar41 = (ulonglong)DAT_1826715f4;
  uVar28 = (ulonglong)DAT_1826715a8;
  uVar23 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar46 ^ *(ulonglong *)(lVar2 + -0x8a8)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x9027859a)) ^ uVar38) ^ uVar20;
  uVar38 = uVar39 ^ *(ulonglong *)(lVar2 + -0x9f8) ^ uVar23 ^ uVar38 ^
           *(ulonglong *)(lVar2 + -0x270);
  *(ulonglong *)(lVar2 + -0x510) = uVar38;
  uVar9 = DAT_18267177c;
  uVar38 = (uVar38 >> 0x20 ^ uVar41) >> 0x14;
  uVar26 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar38 ^ uVar33;
  lVar3 = DAT_182671560;
  uVar41 = (*(ulonglong *)(lVar2 - (uVar28 ^ 0xddbb0810)) ^ uVar23) << 0xc;
  *(ulonglong *)(lVar2 + -0x688) = uVar41 ^ uVar26;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x902784ca)) = (uVar38 | uVar41) ^ uVar22;
  *(ulonglong *)(lVar3 + -0x9f8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x4d9c8312)) ^ uVar39) -
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x8a8)) ^ uVar18;
  *(ulonglong *)(lVar3 + -0x510) =
       (CONCAT44(uVar8,uVar14) ^ 0xc5e11738a48376d1) <<
       ((*(byte *)(lVar3 + -0x688) ^ (byte)uVar9) & 0x3f);
  uVar41 = (ulonglong)DAT_1826715c8;
  *puVar27 = *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x90278ab2)) ^ uVar20 ^ uVar19 ^
             *(ulonglong *)(lVar3 + -0x670) ^ uVar40;
  uVar9 = DAT_182671638;
  uVar41 = (*(ulonglong *)(lVar3 + -0x1d8) >> 0x20 ^ uVar41) >> 0x19;
  *(ulonglong *)(lVar3 + -0x510) = uVar41 ^ uVar35;
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar41 = (uVar19 ^ *(ulonglong *)(DAT_182671560 + -0x1d8)) << (((byte)uVar14 ^ 0x65) & 0x3f) |
           uVar41;
  uVar33 = uVar41 ^ uVar28;
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar33;
  uVar9 = DAT_182671678;
  uVar19 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x670)) - uVar41 ^ uVar43;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar19;
  uVar14 = DAT_182671570;
  lVar3 = DAT_182671560;
  uVar23 = (ulonglong)DAT_182671570;
  uVar20 = CONCAT44(uVar9,uVar9);
  uVar28 = uVar18 ^ *(ulonglong *)(lVar2 + -0x9f8) ^ uVar33 ^ uVar20 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x510) = uVar28;
  *(ulonglong *)(lVar3 + -0x6d0) = (uVar28 ^ uVar20) >> (((byte)uVar14 ^ 0xc3) & 0x3f) ^ uVar47;
  lVar2 = DAT_182671560;
  uVar41 = (ulonglong)DAT_182671598;
  *(ulonglong *)(DAT_182671560 + -0x270) = (ulonglong)uVar4 << 0x34 ^ 0x4140000000000000;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar41 ^ 0xb2987610)) ^ uVar20) <<
           (((byte)DAT_182671590 ^ 0x73) & 0x3f);
  uVar20 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar2 + -0x670) = uVar28 ^ uVar37;
  uVar14 = DAT_1826715b4;
  uVar28 = uVar47 ^ *puVar16 | uVar28;
  uVar41 = (ulonglong)DAT_18267157c;
  uVar38 = (ulonglong)DAT_1826715b4;
  uVar33 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar2 + -0x688) = uVar28 ^ uVar20;
  uVar41 = (*(ulonglong *)(lVar2 - (uVar41 ^ 0xefa9fdf8)) ^ uVar18) -
           (*(ulonglong *)(lVar2 + -0xc08) ^ uVar39);
  uVar18 = CONCAT44(uVar1,DAT_18267156c);
  *(ulonglong *)(lVar2 + -0x270) = uVar41 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x510) =
       uVar18 ^ 0x4f64b726d0fb55da | CONCAT44(uVar6,uVar14) ^ 0x8d6297fa5863e36f;
  uVar41 = uVar41 - uVar28 ^ uVar17;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar41;
  uVar28 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x32a28571)) = uVar43 ^ uVar17 ^ uVar19 ^ uVar41;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xddbb04f8)) =
       (*(ulonglong *)(lVar2 + -0x3b8) ^ uVar24) + (uVar30 ^ *(ulonglong *)(lVar2 + -0x638)) ^
       uVar36;
  *puVar32 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0xf4812545)) ^ uVar20) -
             (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715ac ^ 0xc07b2107)) ^ uVar36) ^ uVar25;
  uVar9 = DAT_18267186c;
  uVar41 = (ulonglong)DAT_182671824;
  uVar28 = uVar43 ^ uVar22 ^ *(ulonglong *)(lVar2 + -0x8a8) ^ *(ulonglong *)(lVar2 + -0x1d8);
  uVar33 = CONCAT44(uVar8,DAT_1826715b0);
  uVar14 = DAT_182671824 >> 0x10;
  uVar17 = uVar28 ^ CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar2 + -0x270) = uVar17;
  *(ulonglong *)(lVar2 + -0x670) = uVar28 - (uVar33 ^ 0x7ebd1b69581e2c7f);
  *(ulonglong *)(lVar2 + -0x688) = ((ulonglong)uVar14 | uVar41 << 0x10) ^ uVar17 >> 0x10 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x8a8) = (CONCAT44(uVar7,DAT_182671574) ^ 0x39973780e1c641c2) * 2;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0x23cdf270)) =
       uVar28 << ((local_108 ^ 0x46) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar11 ^ uVar34) * 4) = uVar13;
  return;
}



############ FUN_ 180efc320 size=5434 ############

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

void FUN_180efc320(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  undefined8 *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte bVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  byte local_res20;
  byte local_118;
  byte local_108;
  byte local_100;
  byte local_f0;
  
  uVar15 = DAT_1826715b0;
  uVar13 = DAT_1826715a4;
  uVar12 = DAT_1826715a0;
  uVar11 = DAT_182671598;
  uVar10 = DAT_182671590;
  uVar9 = DAT_182671580;
  uVar8 = DAT_182671578;
  uVar7 = DAT_182671574;
  uVar6 = DAT_182671570;
  lVar3 = DAT_182671560;
  uVar53 = (ulonglong)DAT_1826715a0;
  uVar46 = (ulonglong)DAT_1826715b0;
  uVar52 = (ulonglong)DAT_182671578;
  uVar42 = (ulonglong)DAT_182671598;
  DAT_18267158c = DAT_1826715b0 & DAT_182671578 ^ 0xc4f8fff8;
  uVar37 = (ulonglong)DAT_182671590;
  uVar26 = (ulonglong)DAT_182671580;
  uVar30 = DAT_182671590 ^ DAT_1826715a4;
  uVar20 = DAT_182671598 ^ DAT_182671574;
  uVar39 = DAT_1826715a0 - DAT_182671580;
  uVar27 = (ulonglong)DAT_182671570;
  DAT_1826715a8 = ~DAT_182671570;
  uVar21 = *(uint *)(&DAT_182611e70 + (uVar27 ^ 0xf8d1ef44) + (longlong)DAT_1826719ac) ^
           DAT_1826715a8;
  uVar22 = *(uint *)(&DAT_182611e80 + DAT_1826719ac) ^ DAT_1826715a0;
  uVar49 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  uVar31 = CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar34 = CONCAT44(DAT_1826716a4,DAT_1826716a4) ^ *(ulonglong *)(DAT_182671560 + -0x2a0) |
           uVar49 ^ *(ulonglong *)(DAT_182671560 + -0xa88);
  uVar25 = (ulonglong)uVar39;
  DAT_18267156c = uVar20;
  DAT_182671588 = uVar30;
  DAT_18267159c = uVar39;
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar34 ^ uVar31;
  uVar16 = DAT_182671774;
  *(int *)(lVar3 + -0x774) =
       *(int *)(lVar3 - ((ulonglong)uVar9 ^ 0x638a8a21)) <<
       ((byte)*(undefined4 *)(lVar3 - (uVar25 ^ 0xd9892a54)) & 0x1f);
  uVar50 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x72e160b)) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar3 + -0x748)) - uVar34 ^ uVar50;
  lVar3 = DAT_182671560;
  uVar40 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar23 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x628);
  uVar38 = (ulonglong)uVar7;
  uVar32 = *(ulonglong *)(DAT_182671560 + -0x240) ^ uVar23 ^ uVar40 ^ uVar31 ^
           *(ulonglong *)(DAT_182671560 + -0x6d0);
  *puVar1 = uVar32;
  uVar14 = DAT_1826715a8;
  uVar34 = (ulonglong)DAT_1826715a8;
  uVar35 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xedeef221)) ^ uVar40) >> (((byte)uVar10 ^ 0x1c) & 0x3f) ^
       uVar35;
  lVar3 = DAT_182671560;
  uVar44 = (ulonglong)uVar20;
  uVar33 = (uVar32 ^ uVar40) << (((byte)uVar30 ^ 0x32) & 0x3f);
  uVar32 = (ulonglong)uVar13;
  uVar28 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar33 ^ CONCAT44(DAT_182671808,DAT_182671808);
  uVar40 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar45 = *(ulonglong *)(lVar3 - (uVar32 ^ 0x6079600)) ^ uVar35 | uVar33;
  uVar35 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar3 + -0x1d8) = uVar45 ^ uVar28;
  uVar40 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xc83c0fc6)) ^ uVar23) -
           (uVar40 ^ *(ulonglong *)(lVar3 + -0xa60));
  *(ulonglong *)(lVar3 + -0x400) = uVar33 >> (((byte)uVar12 ^ 0x27) & 0x3f);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar40 ^ uVar35;
  uVar16 = DAT_182671698;
  uVar35 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *(ulonglong *)(lVar3 + -0x270) = uVar40 - uVar45 ^ uVar35;
  uVar40 = CONCAT44(uVar16,uVar16);
  uVar54 = CONCAT44(DAT_182671788,DAT_182671788);
  uVar28 = (ulonglong)DAT_18267158c;
  uVar33 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar45 - (*(ulonglong *)(lVar3 + -0x670) ^ uVar40) ^ uVar54;
  uVar45 = CONCAT44(DAT_182671714,DAT_182671714);
  *(undefined8 *)(lVar3 + -0x898) = 0x6201108cb8131;
  uVar17 = DAT_1826718a0;
  uVar45 = uVar45 ^ *(ulonglong *)(lVar3 + -0x6b8) ^ uVar33 ^ uVar50 ^
           *(ulonglong *)(lVar3 + -0x1f0);
  *(ulonglong *)(lVar3 + -0x800) = uVar45;
  uVar16 = DAT_1826715c0;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0xc4fcf7f8)) ^ uVar33) >>
           (((byte)uVar10 ^ 0x24) & 0x3f);
  uVar47 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  local_f0 = (byte)uVar11;
  uVar33 = (uVar45 ^ uVar33) << ((local_f0 ^ 0xac) & 0x3f);
  uVar36 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar3 + -0x5c8) = uVar28 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x600) = uVar33 ^ uVar47;
  uVar17 = DAT_1826717c4;
  puVar2 = (ulonglong *)(lVar3 + -0x9f8);
  uVar28 = uVar28 | uVar33;
  *puVar2 = uVar28 ^ uVar36;
  uVar18 = DAT_182671830;
  uVar33 = (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar50) -
           (CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0x80));
  *(ulonglong *)(lVar3 + -0x548) = uVar33 ^ uVar31;
  lVar3 = DAT_182671560;
  uVar45 = CONCAT44(uVar18,uVar18);
  puVar24 = (undefined8 *)(DAT_182671560 - (uVar25 ^ 0xd9892240));
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar33 - uVar28 ^ uVar45;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xedeefe81)) = 0xc1c56cbf6b36605 >> ((byte)*puVar24 & 0x3f);
  uVar17 = DAT_182671708;
  uVar33 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar28 = (CONCAT44(uVar12,uVar30) ^ 0xc2ec51f6e2ff6fe8) -
           (*(ulonglong *)(lVar3 + -0x638) ^ uVar31);
  *(ulonglong *)(lVar3 + -0x748) = uVar28 ^ uVar33;
  uVar19 = DAT_1826717b4;
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(uVar17,uVar17);
  puVar41 = (ulonglong *)(DAT_182671560 - (uVar52 ^ 0xc83c0b56));
  *puVar41 = uVar28 + (*puVar2 ^ uVar36) ^ uVar31;
  uVar18 = DAT_182671744;
  uVar28 = CONCAT44(uVar19,uVar19);
  uVar31 = *(ulonglong *)(lVar3 - (uVar46 ^ 0x60796c0)) ^ uVar28 ^ uVar31 ^ uVar35 ^
           *(ulonglong *)(lVar3 + -0x270);
  *puVar1 = uVar31;
  uVar17 = DAT_1826716d4;
  local_108 = (byte)uVar14;
  uVar31 = (uVar31 ^ uVar28) >> ((local_108 ^ 0xb6) & 0x3f);
  *(ulonglong *)(lVar3 + -0x610) = uVar31 ^ CONCAT44(uVar18,uVar18);
  bVar48 = (byte)uVar20;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar37 ^ 0x1b07062d)) ^ uVar28) << ((bVar48 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar3 + -0x240) = uVar28 ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_1826715c8;
  lVar4 = DAT_182671560;
  uVar28 = uVar28 | uVar31;
  *(ulonglong *)(lVar3 + -0x400) =
       (CONCAT44(uVar7,uVar9) ^ 0x8815ee7d9c7f76a) + (*(ulonglong *)(lVar3 + -0x748) ^ uVar33);
  uVar18 = DAT_182671650;
  uVar50 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x318) = uVar28 ^ uVar50;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 + -0x8a8) = (uVar35 ^ *(ulonglong *)(lVar4 + -0x270)) - uVar28 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x1d8) =
       (CONCAT44(uVar13,uVar8) ^ 0x3a6d1a33625e3a4d) - (CONCAT44(uVar6,uVar11) ^ 0x35fdd6dc5973493a)
  ;
  lVar3 = DAT_182671560;
  uVar47 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar31 = CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar28 = *(ulonglong *)(lVar4 - (uVar34 ^ 0x72e1b43)) ^ uVar47 ^ uVar45 ^ uVar54 ^
           *(ulonglong *)(DAT_182671560 + -0x2a0);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar28;
  *(ulonglong *)(lVar3 + -0x800) = (uVar28 ^ uVar47) >> ((local_f0 ^ 0x96) & 0x3f) ^ uVar31;
  *(uint *)(lVar3 - (uVar46 ^ 0x6079264)) = (DAT_1826715a8 ^ 0x65d4f351) << ((bVar48 ^ 0xa2) & 0x1f)
  ;
  uVar28 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar3 - (uVar46 ^ 0x60795d8)) =
       (uVar47 ^ *(ulonglong *)(lVar3 + -0x1f0)) << 0x1b ^ uVar28;
  uVar33 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar28 = *(ulonglong *)(lVar3 - (uVar44 ^ 0xeac0e172)) ^ uVar28 |
           uVar31 ^ *(ulonglong *)(lVar3 + -0x800);
  uVar31 = uVar28 ^ uVar33;
  uVar54 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar3 + -0x80) = uVar31;
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar45 ^ *(ulonglong *)(lVar3 + -0x2a0)) - uVar28 ^ uVar54;
  *(ulonglong *)(lVar3 + -0x548) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar50) >>
       ((*(byte *)(lVar3 - (uVar25 ^ 0xd9892cd8)) ^ (byte)uVar16) & 0x3f);
  uVar35 = CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar25 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xf8d1e7d4)) =
       *(ulonglong *)(lVar3 - (uVar53 ^ 0x3d13a6a1)) ^ uVar31 ^ uVar35 ^ uVar33 ^ uVar36;
  uVar16 = DAT_1826715b8;
  local_res20 = (byte)uVar9;
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xc4fcfe08)) ^ uVar47) << ((local_res20 ^ 0x2c) & 0x3f);
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x1d0099ed)) =
       (*(ulonglong *)(lVar3 + -0x898) ^ uVar35) >> (((byte)uVar7 ^ 0x1e) & 0x3f) ^ uVar28;
  uVar16 = DAT_18267167c;
  uVar25 = (*(ulonglong *)(lVar3 + -0x898) ^ uVar35) << 0x29;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar25 ^ CONCAT44(DAT_182671758,DAT_182671758);
  uVar35 = CONCAT44(uVar16,uVar16);
  puVar43 = (ulonglong *)(lVar3 - (uVar52 ^ 0xc83c0bae));
  *puVar43 = (uVar28 ^ *puVar2 | uVar25) ^ uVar35;
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar3 - (uVar37 ^ 0x1b07074d)) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x8a8)) - (*puVar1 ^ uVar35) ^ uVar31;
  uVar10 = DAT_182671890;
  uVar25 = (ulonglong)DAT_182671890;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xedeef009)) =
       (CONCAT44(uVar13,uVar7) ^ 0xa02fe96077626f6d) >> (((byte)uVar30 ^ 4) & 0x3f);
  uVar16 = DAT_182671898;
  uVar36 = CONCAT44(uVar10,uVar10);
  uVar45 = *(ulonglong *)(lVar4 + -0x318) ^ uVar36 ^ uVar54 ^ uVar50 ^
           *(ulonglong *)(lVar4 + -0x6b8);
  *(ulonglong *)(lVar4 + -0x610) = uVar45;
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xedeef649)) = (uVar45 >> 0x20 ^ uVar25) >> 8 ^ uVar28;
  uVar28 = *(ulonglong *)(lVar4 + -0x240) ^ uVar28;
  uVar47 = (uVar36 ^ *(ulonglong *)(lVar4 + -0x610)) << 0x18;
  *(ulonglong *)(lVar4 + -0x270) = uVar28 | 0x72e5599c375a10f9;
  uVar16 = DAT_182671740;
  uVar36 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(lVar4 + -0x1d8) = uVar47 ^ uVar36;
  uVar47 = uVar47 | uVar28;
  uVar25 = CONCAT44(uVar16,uVar16);
  uVar28 = uVar47 ^ uVar25;
  uVar50 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar28;
  uVar47 = (uVar54 ^ *(ulonglong *)(lVar4 + -0x6b8)) - uVar47;
  uVar51 = uVar47 ^ uVar50;
  *(ulonglong *)(lVar4 + -0x800) = uVar51;
  uVar16 = DAT_182671884;
  *(ulonglong *)(lVar4 + -0x5c8) = *(ulonglong *)(*(ulonglong *)(lVar4 + -0x450) ^ uVar49) ^ uVar49;
  uVar18 = DAT_1826717d0;
  uVar45 = CONCAT44(uVar16,uVar16);
  uVar54 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  uVar28 = uVar45 ^ *(ulonglong *)(lVar4 + -0x748) ^ uVar25 ^ uVar31 ^ uVar28;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar28;
  uVar17 = DAT_1826716b0;
  uVar25 = (*(ulonglong *)(lVar4 - (uVar46 ^ 0x60792b0)) ^ uVar45) >>
           (((byte)DAT_18267158c ^ 0xcc) & 0x3f);
  uVar49 = (uVar45 ^ uVar28) << (((byte)uVar8 ^ 0x8a) & 0x3f);
  *(ulonglong *)(lVar4 + -0x548) = uVar49 ^ CONCAT44(DAT_1826716b4,DAT_1826716b4);
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x600) = uVar25 ^ uVar54;
  uVar10 = DAT_18267182c;
  uVar16 = DAT_1826715ec;
  uVar54 = CONCAT44(uVar17,uVar17);
  uVar28 = (ulonglong)DAT_18267182c;
  uVar49 = uVar49 | uVar25;
  *(ulonglong *)(lVar3 + -0x80) = uVar49 ^ uVar54;
  uVar45 = CONCAT44(uVar16,uVar16);
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x1f0) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x72e17fb)) ^ uVar31) - uVar49 ^ uVar45;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0xa88) = uVar25 ^ uVar50 ^ *puVar1 ^ uVar35 ^ uVar51;
  uVar31 = (*(ulonglong *)(lVar4 - (uVar27 ^ 0xf8d1e5c4)) >> 0x20 ^ uVar28) >> 0x19;
  *(ulonglong *)(lVar4 + -0x898) = uVar31 ^ uVar36;
  *puVar2 = (CONCAT44(uVar14,uVar6) ^ 0x6e012bc798e3a4f1) >> ((bVar48 ^ 0x9e) & 0x3f);
  lVar3 = DAT_182671560;
  uVar28 = CONCAT44(DAT_182671820,DAT_182671820);
  uVar25 = (*(ulonglong *)(DAT_182671560 - (uVar53 ^ 0x3d13a481)) ^ uVar25) <<
           (((byte)uVar6 ^ 0x4b) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = (uVar34 ^ 0xda980000) >> 0x13;
  uVar16 = DAT_1826717dc;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar25 ^ uVar28;
  lVar5 = DAT_182671560;
  uVar28 = CONCAT44(uVar16,uVar16);
  uVar35 = (uVar25 | uVar31) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x400) = uVar35;
  uVar31 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar4 + -0x318) =
       uVar47 - (*(ulonglong *)(lVar5 - (uVar26 ^ 0x638a8731)) ^ uVar28) ^ uVar23;
  local_118 = (byte)uVar39;
  uVar25 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(lVar4 + -0x270) =
       *(ulonglong *)(lVar4 - (uVar53 ^ 0x3d13aff9)) ^ uVar31 ^ uVar28 ^ uVar45 ^ uVar35;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x72e16a3)) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0x638a8141)) ^ uVar31) >> ((local_118 ^ 0xd6) & 0x3f) ^
       uVar25;
  puVar55 = (ulonglong *)(lVar4 - (uVar42 ^ 0x72e16a3));
  uVar28 = (uVar31 ^ *(ulonglong *)(lVar4 + -0x270)) << 0x32;
  *(ulonglong *)(lVar4 + -0x240) = CONCAT44(uVar20,uVar9) ^ uVar25 ^ *puVar55 ^ 0x4eea493fe6037d44;
  uVar16 = DAT_1826717bc;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar28 ^ CONCAT44(DAT_182671678,DAT_182671678);
  uVar9 = DAT_18267158c;
  uVar36 = (ulonglong)DAT_18267158c;
  uVar35 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       (*(ulonglong *)(DAT_182671560 - (uVar36 ^ 0xc4fcf9e8)) ^ uVar25 | uVar28) ^ uVar35;
  uVar16 = DAT_18267168c;
  local_100 = (byte)uVar15;
  *(ulonglong *)(DAT_182671560 - (uVar52 ^ 0xc83c084e)) =
       (CONCAT44(uVar13,uVar13) ^ 0xe24fe149fafe6fb8) << ((local_100 ^ 9) & 0x3f);
  lVar3 = DAT_182671560;
  uVar25 = CONCAT44(DAT_18267186c,DAT_18267186c);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (uVar45 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) -
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(DAT_182671560 + -0x510)) ^ uVar25;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x72e1213)) = CONCAT44(uVar14,uVar8) ^ 0x4873b0ed39f2e50b;
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x72e15fb)) =
       (*(ulonglong *)(lVar3 - (uVar53 ^ 0x3d13a5f9)) ^ uVar25) -
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^ uVar31;
  uVar28 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x6079758)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x6b8)) -
       (CONCAT44(DAT_182671664,DAT_182671664) ^ *(ulonglong *)(lVar4 + -0xc08)) ^ uVar28;
  uVar16 = DAT_182671854;
  uVar35 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *puVar1 = *(ulonglong *)(lVar4 - (uVar37 ^ 0x1b07031d)) ^ uVar35 ^ uVar54 ^
            *(ulonglong *)(lVar4 + -0x80) ^ uVar23;
  uVar37 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0xeac0ed42)) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0xf8d1e964)) ^ uVar35) >> ((local_res20 ^ 0x21) & 0x3f) ^
       uVar37;
  uVar17 = _DAT_18267188c;
  uVar25 = *puVar2;
  uVar35 = (uVar35 ^ *puVar1) << (((byte)uVar6 ^ 0x7c) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa88) = uVar35 ^ CONCAT44(DAT_182671760,DAT_182671760);
  uVar16 = DAT_18267173c;
  uVar45 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x8a8) = (uVar37 ^ uVar25 | uVar35) ^ uVar45;
  uVar25 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x898) =
       (*(ulonglong *)(lVar4 + -0x318) ^ uVar23) - (*(ulonglong *)(lVar4 + -0x670) ^ uVar40) ^
       uVar25;
  *puVar41 = (CONCAT44(uVar15,uVar9) ^ 0xfef04f3bed3440d1) >>
             ((*(byte *)(lVar4 - (uVar53 ^ 0x3d13a809)) ^ (byte)uVar18) & 0x3f);
  uVar23 = CONCAT44(DAT_182671628,DAT_182671628);
  puVar29 = (ulonglong *)(lVar4 - (uVar38 ^ 0xedeefc09));
  uVar38 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *puVar29 = (*(ulonglong *)(lVar4 + -0x898) ^ uVar25) - (uVar45 ^ *(ulonglong *)(lVar4 + -0x8a8)) ^
             uVar23;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xc4fcfbf8)) =
       (CONCAT44(uVar15,uVar7) ^ 0xf9f86fef12110bf7) -
       (CONCAT44(DAT_182671824,DAT_182671824) ^ *(ulonglong *)(lVar4 + -0x3b8)) ^ uVar38;
  uVar25 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x638a8171)) =
       (uVar45 ^ *(ulonglong *)(lVar4 + -0x8a8)) + (*(ulonglong *)(lVar4 + -0x400) ^ uVar38) ^
       uVar25;
  uVar16 = DAT_1826717f4;
  uVar38 = CONCAT44(DAT_182671634,DAT_182671634);
  uVar25 = *(ulonglong *)(lVar4 - (uVar44 ^ 0xeac0e6fa)) ^ uVar31 ^ *(ulonglong *)(lVar4 + -0x548) ^
           uVar38 ^ uVar25;
  uVar44 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar4 + -0x270) = uVar25;
  *(ulonglong *)(lVar4 + -0x1d8) = (uVar25 ^ uVar38) >> ((local_118 ^ 0xf8) & 0x3f) ^ uVar44;
  uVar17 = DAT_182671848;
  uVar40 = CONCAT44(uVar16,uVar16);
  uVar27 = (*(ulonglong *)(lVar4 - (uVar27 ^ 0xf8d1ed3c)) ^ uVar38) << 0x20;
  *(ulonglong *)(lVar4 + -0x610) = uVar27 ^ uVar40;
  lVar3 = DAT_182671560;
  uVar27 = *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x72e116b)) ^ uVar44 | uVar27;
  puVar41 = (ulonglong *)(DAT_182671560 - (uVar46 ^ 0x6079600));
  uVar25 = *(ulonglong *)(DAT_182671560 + -0x548);
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar27 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x510) = *puVar41 ^ uVar40 | 0x91e3a11c672e546b;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x60791e0)) =
       (uVar31 ^ uVar25) - uVar27 ^ CONCAT44(DAT_182671814,DAT_182671814);
  uVar17 = _DAT_182671868;
  *(ulonglong *)(lVar3 + -0x2a0) =
       (CONCAT44(uVar6,uVar14) ^ 0x3d2cb1b056610925) - (*puVar55 ^ uVar40);
  uVar16 = DAT_182671660;
  uVar25 = uVar28 ^ *puVar29 ^ *(ulonglong *)(lVar3 + -0x748) ^ uVar33 ^ uVar23;
  uVar34 = (uVar33 ^ uVar25) >> (((byte)uVar8 ^ 0xa6) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar34 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar25;
  lVar4 = DAT_182671560;
  uVar25 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0xc4fcf408)) ^ uVar33) << ((local_108 ^ 0x93) & 0x3f);
  uVar27 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar25 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_1826715d0;
  *puVar43 = (uVar34 | uVar25) ^ uVar27;
  *puVar2 = (*(ulonglong *)(lVar4 - (uVar53 ^ 0x3d13a609)) ^ uVar23) - (*puVar1 ^ uVar27) ^
            CONCAT44(uVar16,uVar16);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar22 * 4) = uVar21;
  return;
}



############ FUN_ 180edde50 size=5184 ############

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

void FUN_180edde50(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  byte *pbVar3;
  uint uVar4;
  int iVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  byte bVar18;
  uint uVar19;
  byte bVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  byte bVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  byte local_e8;
  byte local_b0;
  
  uVar15 = DAT_182671880;
  uVar13 = DAT_1826715b4;
  uVar12 = DAT_1826715b0;
  uVar11 = DAT_18267159c;
  uVar10 = DAT_182671590;
  uVar9 = DAT_182671588;
  uVar8 = DAT_182671584;
  uVar19 = DAT_18267157c;
  lVar6 = DAT_182671560;
  uVar25 = (ulonglong)DAT_182671588;
  uVar37 = (ulonglong)DAT_182671584;
  bVar18 = (byte)DAT_182671588;
  uVar26 = (ulonglong)DAT_182671590;
  uVar29 = DAT_1826715b0 | DAT_18267159c;
  uVar28 = DAT_18267157c - DAT_182671590;
  uVar46 = DAT_182671584;
  if ((DAT_182671588 & 1) == 0) {
    uVar46 = DAT_182671588;
  }
  uVar4 = *(uint *)(&DAT_182611e80 + DAT_182671950);
  uVar22 = *(uint *)(&DAT_182611e78 + DAT_182671950) ^ DAT_182671584;
  uVar44 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x8a8);
  DAT_182671578 = uVar29;
  DAT_182671598 = uVar46;
  DAT_1826715ac = uVar28;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0x2800d69)) =
       (CONCAT44(DAT_182671670,DAT_182671670) ^ *(ulonglong *)(DAT_182671560 + -0x600)) <<
       ((bVar18 ^ 0x92) & 0x3f) ^ uVar44;
  uVar16 = DAT_1826718a0;
  lVar7 = DAT_182671560;
  uVar35 = CONCAT44(DAT_182671850,DAT_182671850);
  uVar23 = CONCAT44(uVar15,uVar15) ^ *puVar1 | *(ulonglong *)(lVar6 + -0x9f8) ^ uVar44;
  *(ulonglong *)(lVar6 + -0x800) = uVar23 ^ uVar35;
  uVar15 = DAT_182671734;
  uVar32 = CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar6 + -0x6b8);
  uVar45 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar7 + -0x5c8) = uVar32 - uVar23 ^ uVar45;
  lVar6 = DAT_182671560;
  uVar36 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  uVar42 = CONCAT44(DAT_182671784,DAT_182671784);
  uVar23 = (ulonglong)uVar12;
  uVar24 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0x860d3b80)) ^
           CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(DAT_182671560 + -0x1d8) ^ uVar42;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar24 ^ uVar36;
  uVar41 = (ulonglong)uVar29;
  *(ulonglong *)(lVar6 + -0x898) =
       (CONCAT44(uVar12,uVar28) ^ 0x3d59474a5716ee77) >> ((byte)uVar32 & 0x3f);
  uVar32 = (ulonglong)uVar11;
  bVar20 = (byte)DAT_1826715b4;
  uVar33 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar29 ^ 0xeff6bc23)) =
       uVar24 >> ((bVar20 ^ 0x8c) & 0x3f) ^ uVar33;
  uVar16 = DAT_18267185c;
  uVar14 = DAT_1826715b4;
  uVar30 = CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar24 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar19 ^ 0x860d3eb8)) =
       (*(ulonglong *)(lVar6 + -0x628) ^ uVar36) << (((byte)uVar8 ^ 0xab) & 0x3f) ^ uVar30;
  uVar17 = DAT_182671888;
  uVar36 = CONCAT44(DAT_182671660,DAT_182671660);
  puVar38 = (ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x72e16a3));
  *puVar38 = (*(ulonglong *)(lVar6 - (uVar24 ^ 0x123307d4)) ^ uVar30 |
             *(ulonglong *)(lVar6 + -0x1f0) ^ uVar33) ^ uVar36;
  uVar15 = DAT_182671804;
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(uVar17,uVar17);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x6d0);
  *puVar2 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0x123302ec)) ^ uVar42) -
            (*(ulonglong *)(DAT_182671560 + -0x610) ^ uVar36) ^ uVar30;
  uVar24 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x2a0) =
       *puVar38 ^ *(ulonglong *)(lVar6 + -0x5c8) ^ uVar24 ^ uVar36 ^ uVar45;
  uVar36 = CONCAT44(DAT_18267167c,DAT_18267167c);
  bVar27 = (byte)uVar29;
  *(ulonglong *)(lVar6 - (uVar23 ^ 0xaac63621)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar46 ^ 0x72e1213)) ^ uVar24) >>
       ((bVar27 ^ 0xe7) & 0x3f) ^ uVar36;
  local_e8 = (byte)uVar11;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar19 ^ 0x860d3e88)) =
       *(ulonglong *)(lVar6 - (uVar26 ^ 0x2800c91)) ^ uVar35 | 0xf2f187a4cb00f79a;
  lVar6 = DAT_182671560;
  uVar24 = (*(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar24) << ((local_e8 ^ 0x1f) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x400) = uVar24 ^ CONCAT44(DAT_1826715d0,DAT_1826715d0);
  uVar17 = _DAT_18267188c;
  uVar24 = uVar24 | uVar36 ^ *(ulonglong *)(lVar6 + -0xbf0);
  uVar36 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar6 + -0x318) = uVar24 ^ uVar36;
  uVar15 = DAT_1826717c8;
  uVar33 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x548) = (*(ulonglong *)(lVar6 + -0x5c8) ^ uVar45) - uVar24 ^ uVar33;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar46 ^ 0x72e1a3b)) =
       *(ulonglong *)(lVar6 + -0x800) ^ *puVar2 ^ uVar34 ^ uVar30 ^ uVar35;
  uVar42 = *(ulonglong *)(lVar6 + -0xa88) ^ uVar34;
  uVar24 = CONCAT44(DAT_182671818,DAT_182671818);
  bVar21 = (byte)DAT_1826715b4;
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar42 >> ((local_e8 ^ 0x2a) & 0x3f) ^ uVar24;
  uVar42 = uVar42 << ((bVar21 ^ 0xa3) & 0x3f);
  *puVar1 = uVar42 ^ CONCAT44(DAT_182671754,DAT_182671754);
  lVar6 = DAT_182671560;
  uVar39 = (*(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xcff48a13)) ^ uVar24 | uVar42) ^ uVar30;
  pbVar3 = (byte *)(DAT_182671560 + -0x270);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar39;
  uVar15 = DAT_1826717dc;
  *(ulonglong *)(lVar6 + -0x1d8) =
       (CONCAT44(uVar9,uVar8) ^ 0x5e81b231037f1021) >> ((*pbVar3 ^ (byte)uVar16) & 0x3f);
  uVar42 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (*puVar2 ^ uVar30) - (*(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0x838d31cf)) ^ uVar30) ^
       uVar42;
  uVar24 = CONCAT44(DAT_182671720,DAT_182671720);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar19 ^ 0x860d3450)) =
       uVar39 ^ *(ulonglong *)(lVar6 + -0x548) ^ uVar24 ^ uVar33 ^ uVar30;
  uVar24 = *(ulonglong *)(lVar6 + -0x898) ^ uVar24;
  uVar40 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar6 + -0x628) = uVar24 >> ((bVar18 ^ 0xb5) & 0x3f) ^ uVar40;
  uVar9 = DAT_1826715b4;
  *(ulonglong *)(lVar6 + -0x1f0) =
       -0x4bac845af68949c4 - (CONCAT44(uVar10,uVar19) ^ 0x7c3c55f78ba4f21f);
  uVar30 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xeff6ba9b)) = uVar24 << (((byte)uVar9 ^ 0x96) & 0x3f) ^ uVar30;
  *(uint *)(lVar6 + -0x8c) =
       *(uint *)(lVar6 + -0x328) >> ((byte)*(undefined4 *)(lVar6 + -0x678) & 0x1f);
  lVar7 = DAT_182671560;
  uVar43 = CONCAT44(DAT_182671758,DAT_182671758);
  uVar39 = CONCAT44(DAT_182671844,DAT_182671844);
  puVar31 = (ulonglong *)(DAT_182671560 + -0x548);
  uVar30 = *(ulonglong *)(lVar6 - (uVar23 ^ 0xaac63bf9)) ^ uVar40 |
           uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x748);
  uVar24 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar30 ^ uVar43;
  *(ulonglong *)(lVar7 + -0x240) =
       (*puVar31 ^ uVar33) - (uVar24 ^ *(ulonglong *)(lVar7 + -0x688)) ^ uVar39;
  uVar16 = DAT_182671824;
  uVar40 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0x72e1213)) =
       (*(ulonglong *)(lVar7 - (uVar25 ^ 0x57bfd6fb)) ^ uVar39) - uVar30 ^ uVar40;
  uVar15 = DAT_1826715e4;
  uVar24 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar7 + -0x400) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar7 + -0x3b8)) +
       (CONCAT44(uVar46,uVar10) ^ 0xd9f80200b518698d) ^ uVar24;
  uVar9 = DAT_182671790;
  uVar47 = CONCAT44(uVar15,uVar15);
  uVar30 = (ulonglong)DAT_182671790;
  *(ulonglong *)(lVar7 + -0xbf0) =
       (*(ulonglong *)(lVar7 + -0x610) ^ uVar43) -
       (*(ulonglong *)(lVar7 - (uVar37 ^ 0x72e14b3)) ^ uVar24) ^ uVar47;
  lVar6 = DAT_182671560;
  uVar33 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  uVar36 = *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0xaac63ec9)) ^ CONCAT44(uVar9,uVar9) ^
           *(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar42 ^ uVar36;
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar36;
  *(ulonglong *)(lVar6 - (uVar23 ^ 0xaac635d1)) =
       ((ulonglong)(uVar9 >> 0x10) | uVar30 << 0x10) ^ uVar36 >> 0x10 ^ uVar33;
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xeff6b75b)) =
       CONCAT44(uVar19,uVar28) ^ *(ulonglong *)(lVar6 + -0x610) ^ uVar43 ^ 0xf8eafa62aaa620ac;
  uVar19 = DAT_1826715b4 ^ 0x1926906a;
  uVar24 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0xcff489db)) ^ CONCAT44(uVar9,uVar9)) << 0x30;
  *(ulonglong *)(lVar6 + -0x600) = uVar24 ^ CONCAT44(DAT_1826716d8,DAT_1826716d8);
  uVar15 = DAT_182671884;
  *(uint *)(lVar6 + -0x3d4) = uVar19 * 0x6df24037;
  uVar30 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *puVar1 = (*(ulonglong *)(lVar6 + -0x800) ^ uVar33 | uVar24) ^ uVar30;
  lVar7 = DAT_182671560;
  uVar36 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar24 = (*(ulonglong *)(lVar6 + -0x6b8) ^ uVar42) -
           (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0x9e8)) ^ uVar36;
  *(ulonglong *)(lVar6 + -0x270) = uVar24;
  *(ulonglong *)(lVar7 - (uVar25 ^ 0x57bfd563)) =
       CONCAT44(uVar46,uVar11) ^ uVar24 ^ uVar36 ^ 0xb3a4c2535743ddc1;
  uVar15 = DAT_18267168c;
  uVar42 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *puVar2 = (uVar36 ^ *(ulonglong *)(lVar7 + -0x270)) -
            (*(ulonglong *)(lVar7 - (uVar23 ^ 0xaac63579)) ^ uVar30) ^ uVar42;
  puVar31 = (ulonglong *)(lVar7 - ((ulonglong)uVar28 ^ 0x838d32bf));
  uVar24 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar7 + -0x9f8) =
       (CONCAT44(uVar46,uVar8) ^ 0xffad81b9be7746e7) << ((byte)*puVar31 & 0x3f);
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (CONCAT44(uVar29,DAT_1826715b4) ^ 0x1009422cedccfa56) -
       (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(DAT_182671560 + -0x510)) ^ uVar24;
  *(undefined8 *)(lVar6 - (uVar23 ^ 0xaac63549)) = 0x69c72e2ef1e7f63f;
  uVar36 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar6 - (uVar32 ^ 0xcff48a3b)) =
       (*(ulonglong *)(lVar6 - (uVar26 ^ 0x2800561)) ^ uVar24) + (uVar30 ^ *puVar1) ^ uVar36;
  uVar36 = uVar36 ^ uVar42 ^ *(ulonglong *)(lVar6 + -0x628) ^ uVar40 ^
           *(ulonglong *)(lVar6 + -0x2a0);
  *(ulonglong *)(lVar6 + -0x548) = uVar36;
  *(ulonglong *)(lVar6 + -0x748) =
       CONCAT44(uVar13,uVar10) ^ *(ulonglong *)(lVar6 + -0x1d8) ^ 0x352f28bcb6bd6f82;
  uVar16 = DAT_1826717f8;
  uVar36 = uVar36 ^ uVar42;
  uVar24 = uVar36 >> (((byte)uVar28 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar6 + -0x240) = uVar24 ^ CONCAT44(DAT_182671718,DAT_182671718);
  uVar15 = DAT_18267160c;
  uVar36 = uVar36 << (((byte)uVar28 ^ 0x17) & 0x3f);
  uVar43 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0x318) = uVar36 ^ uVar43;
  uVar19 = DAT_182671698;
  uVar33 = CONCAT44(uVar15,uVar15);
  uVar39 = (ulonglong)DAT_182671698;
  *(ulonglong *)(lVar6 + -0x610) = (uVar36 | uVar24) ^ uVar33;
  uVar30 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  *(ulonglong *)(lVar6 + -0x5c8) =
       (uVar40 ^ *(ulonglong *)(lVar6 + -0x2a0)) -
       (*(ulonglong *)(lVar6 - (uVar26 ^ 0x2800281)) ^ uVar33) ^ uVar30;
  lVar6 = DAT_182671560;
  uVar24 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x57bfdcbb)) =
       *(ulonglong *)(DAT_182671560 - (uVar41 ^ 0xeff6b623)) ^ *puVar2 ^ uVar24 ^ uVar42 ^ uVar47;
  uVar19 = DAT_182671580;
  uVar40 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  uVar39 = *(ulonglong *)(lVar6 + -0x800) >> 0x20 ^ uVar40 ^ uVar39;
  uVar41 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar6 + -0x600) = uVar39;
  uVar15 = DAT_1826716ac;
  *(ulonglong *)(lVar6 + -0x6b8) =
       (CONCAT44(uVar19,uVar8) ^ 0xa2c97ec738a779cb) >> ((local_e8 ^ 9) & 0x3f);
  uVar24 = (*(ulonglong *)(lVar6 + -0x800) ^ uVar24) << ((bVar27 ^ 0xf3) & 0x3f);
  uVar36 = CONCAT44(uVar11,DAT_18267156c);
  *(ulonglong *)(lVar6 + -0x270) = uVar24 ^ CONCAT44(uVar15,uVar15);
  *puVar31 = (uVar24 | uVar39 ^ uVar40) ^ uVar45;
  uVar15 = DAT_18267171c;
  *(ulonglong *)(lVar6 + -0x9f8) =
       (uVar36 ^ 0x2de4a8b87a81add6) - (CONCAT44(uVar11,uVar46) ^ 0x11057bba5bc5bc96);
  uVar19 = DAT_1826716e4;
  uVar40 = CONCAT44(uVar15,uVar15);
  uVar39 = (ulonglong)DAT_1826716e4;
  uVar24 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar6 + -0x898) =
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0xf2eefdf4)) ^ uVar42) -
       (*(ulonglong *)(lVar6 - (uVar23 ^ 0xaac63759)) ^ uVar45) ^ uVar40;
  uVar23 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar6 - (uVar25 ^ 0x57bfdc13)) =
       *(ulonglong *)(lVar6 - (uVar24 ^ 0x2e07b6d8)) ^ *(ulonglong *)(lVar6 + -0xa88) ^ uVar23 ^
       uVar30 ^ uVar45;
  uVar19 = DAT_182671568;
  uVar36 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  uVar25 = CONCAT44(DAT_182671638,DAT_182671638);
  *(ulonglong *)(lVar6 + -0x1f0) =
       (*(ulonglong *)(lVar6 - (uVar26 ^ 0x2800c39)) >> 0x20 ^ uVar39) >> 0x1a ^ uVar36;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar19 ^ 0x30043225)) =
       (uVar23 ^ *puVar1) << (((byte)DAT_182671574 ^ 0xb3) & 0x3f) ^ uVar25;
  uVar15 = DAT_182671898;
  uVar16 = DAT_18267169c;
  uVar39 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar25 = uVar25 ^ *(ulonglong *)(lVar6 + -0x748) | uVar36 ^ *(ulonglong *)(lVar6 + -0x1f0);
  *(ulonglong *)(lVar6 + -0x1d8) = uVar25 ^ uVar39;
  uVar42 = CONCAT44(uVar15,uVar15);
  uVar23 = uVar40 ^ uVar33 ^ uVar43 ^ *(ulonglong *)(lVar6 + -0x610) ^
           *(ulonglong *)(lVar6 + -0x898);
  *(ulonglong *)(lVar6 + -0x628) =
       (*(ulonglong *)(lVar6 - (uVar37 ^ 0x72e157b)) ^ uVar30) - uVar25 ^ uVar42;
  uVar19 = DAT_182671590;
  *(ulonglong *)(lVar6 + -0x548) = uVar23;
  uVar9 = DAT_1826715a4;
  uVar8 = DAT_182671594;
  uVar25 = (ulonglong)DAT_182671594;
  uVar24 = (ulonglong)DAT_1826715a4;
  *(uint *)(lVar6 + -0x874) = -0x7ffd5dab - (uVar19 ^ 0x7e891af3);
  uVar15 = DAT_1826718b0;
  uVar19 = DAT_182671570;
  uVar37 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar6 + -0x240) =
       (*(ulonglong *)(lVar6 - (uVar25 ^ 0x10b30266)) ^ uVar43) >>
       (((byte)DAT_1826715b4 ^ 0xb2) & 0x3f) ^ uVar37;
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar6 + -0x318) =
       (uVar40 ^ *(ulonglong *)(lVar6 + -0x898)) << ((bVar20 ^ 0x83) & 0x3f);
  uVar26 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar19 ^ 0xcdd6a96c)) =
       (uVar23 ^ uVar43) << (((byte)uVar9 ^ 0xe5) & 0x3f) ^ uVar26;
  uVar25 = *(ulonglong *)(lVar7 + -0x898);
  uVar37 = uVar26 ^ *(ulonglong *)(lVar6 + -0x2a0) | uVar37 ^ *(ulonglong *)(lVar6 + -0x240);
  iVar5 = *(int *)(lVar6 + -0x27c);
  uVar26 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar23 = uVar37 ^ uVar26;
  *(ulonglong *)(lVar6 + -0xbf0) = uVar23;
  *(int *)(lVar6 + -0x274) = iVar5 * -0x72d06305;
  uVar15 = DAT_1826716c8;
  uVar30 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar7 + -0x6b8) = (uVar40 ^ uVar25) - uVar37 ^ uVar30;
  lVar6 = DAT_182671560;
  uVar25 = *(ulonglong *)(lVar7 + -0x628);
  uVar41 = CONCAT44(uVar15,uVar15);
  uVar37 = uVar41 ^ uVar23 ^ uVar26 ^ uVar42 ^ uVar25;
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar37;
  uVar15 = DAT_182671664;
  uVar42 = uVar42 ^ uVar25;
  uVar26 = (uVar41 ^ uVar37) >> ((bVar27 ^ 0xfd) & 0x3f);
  uVar23 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar6 + -0x9f8) =
       (uVar36 ^ *(ulonglong *)(lVar6 + -0x1f0)) - (CONCAT44(uVar8,uVar12) ^ 0x758b9c190df47207);
  *(ulonglong *)(lVar6 + -0x600) = uVar26 ^ uVar39;
  uVar25 = CONCAT44(uVar15,uVar15);
  *puVar2 = (uVar41 ^ uVar37) << 0x12 ^ uVar25;
  lVar6 = DAT_182671560;
  uVar26 = *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x57b9c269)) ^ uVar25 | uVar26;
  uVar25 = CONCAT44(uVar28,DAT_18267156c);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar26 ^ CONCAT44(DAT_18267176c,DAT_18267176c);
  bVar18 = *(byte *)(lVar6 + -0x600);
  *puVar1 = uVar25 ^ 0x8ba4db01f2f37eb1 | uVar42;
  uVar36 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar33 = uVar42 - uVar26 ^ uVar36;
  uVar25 = (ulonglong)DAT_1826715b4;
  uVar41 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar6 + -0x748) = uVar33;
  *(ulonglong *)(lVar6 + -0x5c8) =
       (CONCAT44(uVar29,uVar28) ^ 0xe06135cfc420e0c) >> (((byte)uVar16 ^ bVar18) & 0x3f);
  uVar15 = DAT_18267181c;
  *(ulonglong *)(lVar6 + -0x610) =
       *(ulonglong *)(lVar6 - (uVar25 ^ 0x1233031c)) ^ uVar41 ^ uVar30 ^ uVar39 ^
       *(ulonglong *)(lVar6 + -0x1d8);
  uVar26 = (uVar41 ^ *puVar38) >> (((byte)DAT_1826715a8 ^ 0xe5) & 0x3f);
  *(ulonglong *)(lVar6 + -0x318) = uVar26 ^ CONCAT44(uVar15,uVar15);
  uVar8 = DAT_1826716c4;
  uVar15 = DAT_1826715c8;
  uVar37 = (ulonglong)DAT_1826716c4;
  uVar25 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0xcff48a03)) ^ uVar41) << 0x34;
  *(ulonglong *)(lVar6 + -0x548) = uVar25 ^ uVar35;
  uVar26 = uVar26 | uVar25;
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x240) = uVar26 ^ uVar32;
  *(ulonglong *)(lVar6 + -0x2a0) =
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0x138cf277)) ^ uVar30) - uVar26 ^ uVar34;
  uVar25 = (ulonglong)DAT_182671568;
  uVar23 = *(ulonglong *)(lVar6 - (uVar23 ^ 0x57b9c6f9)) ^ CONCAT44(uVar8,uVar8) ^ uVar32 ^ uVar33 ^
           uVar36;
  *(ulonglong *)(lVar6 + -0x898) = uVar23;
  local_b0 = (byte)uVar46;
  uVar26 = ((ulonglong)(uVar8 >> 0x19) | uVar37 << 7) ^
           *(ulonglong *)(lVar6 - (uVar25 ^ 0x30043df5)) >> 0x19;
  *(int *)(lVar6 + -0x678) = *(int *)(lVar6 + -0x874) << ((byte)iVar5 & 0x1f);
  uVar25 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar37 = (CONCAT44(uVar8,uVar8) ^ uVar23) << ((local_b0 ^ 0x94) & 0x3f);
  *(ulonglong *)(lVar6 + -0xbf0) = uVar26 ^ uVar44;
  uVar15 = DAT_1826718bc;
  *(ulonglong *)(lVar6 + -0x1f0) = uVar37 ^ uVar25;
  uVar25 = CONCAT44(DAT_18267156c,uVar10);
  uVar37 = uVar37 | uVar26;
  *(ulonglong *)(lVar6 + -0x9f8) = uVar37 ^ CONCAT44(uVar15,uVar15);
  uVar16 = DAT_1826716d0;
  uVar15 = DAT_1826715c4;
  *(ulonglong *)(lVar6 + -0x800) = (uVar25 ^ 0x3a9300100c57e9a6) << (((byte)uVar19 ^ 0xc1) & 0x3f);
  uVar25 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_18267158c ^ 0x2e07b458)) ^ uVar36) -
           (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar6 + -0xa60));
  *puVar2 = uVar25 ^ CONCAT44(uVar15,uVar15);
  *puVar1 = uVar25 - uVar37 ^ uVar41;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar4 ^ uVar46) * 4) = uVar22;
  return;
}



############ FUN_ 180ed3a90 size=5553 ############

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

void FUN_180ed3a90(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  byte bVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  ulonglong uVar52;
  uint uVar53;
  byte local_res18;
  byte local_res20;
  byte local_138;
  byte local_128;
  byte local_d8;
  
  uVar16 = DAT_1826715ac;
  uVar14 = DAT_1826715a4;
  uVar13 = DAT_182671594;
  uVar9 = DAT_182671584;
  uVar8 = DAT_182671574;
  uVar7 = DAT_18267156c;
  lVar5 = DAT_182671560;
  uVar21 = (ulonglong)DAT_1826715ac;
  uVar27 = (ulonglong)DAT_1826715a4;
  uVar45 = (ulonglong)DAT_182671594;
  uVar47 = (ulonglong)DAT_18267156c;
  uVar30 = (ulonglong)DAT_182671574;
  uVar28 = DAT_1826715ac * DAT_1826715a4;
  uVar53 = DAT_18267156c + DAT_182671574;
  uVar40 = DAT_182671584 << 0x10 | DAT_182671584 >> 0x10;
  uVar23 = DAT_182671594 << 0x10 | DAT_182671594 >> 0x10;
  uVar49 = (DAT_182671598 << 0x10 | DAT_182671598 & 0xff00) << 8 | DAT_182671598 >> 8 & 0xff00 |
           DAT_182671598 >> 0x18;
  uVar4 = *(uint *)(&DAT_182611e78 + DAT_182671c20);
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671c20) ^ DAT_182671598;
  uVar38 = (ulonglong)uVar23;
  uVar48 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar34 = (ulonglong)uVar53;
  uVar19 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  DAT_182671568 = uVar49;
  DAT_18267157c = uVar23;
  DAT_18267159c = uVar53;
  DAT_1826715a0 = uVar28;
  DAT_1826715b0 = uVar40;
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x10006d0)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0xe46dd81e)) ^
        CONCAT44(DAT_182671684,DAT_182671684) |
       *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0xd296e57d)) ^ CONCAT44(DAT_182671698,DAT_182671698)
       ) ^ uVar48;
  uVar31 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar37 = (ulonglong)uVar9;
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x810080d8)) =
       (uVar19 ^ *(ulonglong *)(DAT_182671560 + -0x80)) -
       (CONCAT44(uVar40,uVar53) ^ 0xef86afd4fbc3a496) ^ uVar31;
  uVar41 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar22 = (ulonglong)uVar28;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x39ef2c5f)) =
       (*(ulonglong *)(lVar5 + -0x1d8) ^ uVar31) - (*(ulonglong *)(lVar5 + -0x6d0) ^ uVar48) ^
       uVar41;
  uVar15 = DAT_1826716a4;
  uVar31 = CONCAT44(DAT_182671878,DAT_182671878);
  *(ulonglong *)(lVar5 + -0x688) =
       (*(ulonglong *)(lVar5 + -0x6d0) ^ uVar48) - (CONCAT44(uVar16,uVar28) ^ 0x9eab2d775d59f15) ^
       uVar31;
  uVar19 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar29 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(*(ulonglong *)(lVar5 + -0x6f0) ^ uVar29) =
       CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar5 + -0xa60) ^ uVar19;
  uVar17 = DAT_182671858;
  uVar25 = CONCAT44(DAT_182671678,DAT_182671678);
  puVar1 = (ulonglong *)
           ((*(ulonglong *)(lVar5 + -0x6f0) ^ uVar29) +
           (CONCAT44(uVar14,uVar13) ^ 0xacee7c76e46dd297) * 8);
  *(ulonglong *)(lVar5 + -0xb78) = (ulonglong)puVar1 ^ uVar25;
  uVar15 = DAT_182671700;
  uVar10 = DAT_182671598;
  uVar32 = CONCAT44(uVar17,uVar17);
  uVar39 = (ulonglong)uVar49;
  *puVar1 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar49 ^ 0x897c6a4e)) ^ uVar32 ^ uVar19;
  lVar5 = DAT_182671560;
  uVar33 = CONCAT44(uVar15,uVar15);
  puVar1 = (ulonglong *)
           ((*(ulonglong *)(DAT_182671560 + -0x6f0) ^ uVar29) +
           (CONCAT44(uVar10,uVar28) ^ 0x5e6f7c89c353d410) * 8);
  *(ulonglong *)(DAT_182671560 + -0x178) = (ulonglong)puVar1 ^ uVar33;
  uVar15 = DAT_1826717b0;
  lVar6 = DAT_182671560;
  *puVar1 = *(ulonglong *)(lVar5 - (uVar30 ^ 0x1000600)) ^ uVar19 ^ uVar41;
  *(uint *)(lVar6 + -0x874) = (uVar23 ^ 0x91b7dfb9) + *(int *)(lVar6 + -0x374);
  puVar1 = (ulonglong *)
           ((*(ulonglong *)(lVar6 + -0x6f0) ^ uVar29) +
           (CONCAT44(uVar7,uVar10) ^ 0x810081005e6f7c8a) * 8);
  *(ulonglong *)(lVar6 + -0x218) = (ulonglong)puVar1 ^ CONCAT44(uVar15,uVar15);
  *puVar1 = *(ulonglong *)(lVar6 + -0x688) ^ uVar19 ^ uVar31;
  *(uint *)(lVar6 + -0x274) = (uVar49 ^ 0xa2ef43c8) * (uVar53 ^ 0x2b7073f7);
  uVar15 = _DAT_182671610;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar6 + -0x5a0) +
           ((CONCAT44(uVar9,uVar14) ^ 0x39ef2a5facee7c72) +
           (CONCAT44(uVar16,uVar14) ^ 0x746f608bacee7c76) * 0xc) * 8);
  *(ulonglong **)(lVar6 + -0x2d8) = puVar2;
  uVar17 = DAT_182671704;
  uVar35 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x410) =
       (CONCAT44(uVar40,uVar49) ^ 0x2a5f39ef897c6f5e) * 0x60 +
       *(longlong *)(lVar6 - ((ulonglong)DAT_182671598 ^ 0x5e6f7711)) + 0x20 ^ uVar35;
  uVar50 = CONCAT44(uVar17,uVar17);
  uVar24 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar6 + -0x318) = uVar24 ^ uVar50 ^ *puVar2;
  uVar15 = DAT_182671870;
  puVar1 = (ulonglong *)(lVar6 + -0x2a0);
  *(ulonglong *)(lVar6 + -0xd60) =
       *(longlong *)(lVar6 - (uVar34 ^ 0x820083d8)) +
       (CONCAT44(uVar9,uVar49) ^ 0x39ef2a5f897c6f5f) * 8;
  uVar41 = CONCAT44(uVar15,uVar15);
  *puVar1 = **(ulonglong **)(lVar6 - (uVar38 ^ 0xd296e90d)) ^ uVar41 ^ uVar24;
  *(ulonglong **)(lVar6 - (uVar22 ^ 0xc353d972)) =
       puVar2 + (CONCAT44(uVar13,uVar8) ^ 0xe46dd29601000002);
  uVar42 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(lVar6 + -0x628) = **(ulonglong **)(lVar6 - (uVar27 ^ 0xacee7116)) ^ uVar42 ^ uVar24
  ;
  *(ulonglong *)(lVar6 + -0x128) =
       *(longlong *)(lVar6 + -0x2d8) + (CONCAT44(uVar13,uVar7) ^ 0xe46dd29681008103) * 8;
  uVar11 = DAT_1826715b4;
  uVar19 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar6 - (uVar21 ^ 0x746f6b7b)) =
       **(ulonglong **)(lVar6 - (uVar30 ^ 0x1000128)) ^ uVar24;
  uVar31 = CONCAT44(DAT_182671848,DAT_182671848);
  puVar20 = (ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0x1c022c70));
  *puVar20 = (*(ulonglong *)(lVar6 - (uVar19 ^ 0x823b012a)) ^ uVar50) -
             (CONCAT44(uVar23,uVar28) ^ 0xaf13363175d59f15) ^ uVar31;
  uVar15 = DAT_18267171c;
  puVar51 = (ulonglong *)(lVar6 - (uVar37 ^ 0x39ef28ff));
  *(uint *)(lVar6 + -0x3d4) = (uVar7 ^ 0xbffb5407) << ((byte)*(undefined4 *)(lVar6 + -0x8c) & 0x1f);
  lVar5 = DAT_182671560;
  uVar46 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0x5e6f7411)) =
       (*puVar51 ^ uVar41) - (CONCAT44(uVar9,uVar13) ^ 0xdfda47f341a2fc4e) ^ uVar46;
  *(undefined8 *)(lVar5 - (uVar39 ^ 0x897c675e)) = 0x2e4;
  *(ulonglong *)(lVar5 + -0xc08) =
       (*(ulonglong *)(lVar5 + -0x628) ^ uVar42) - (CONCAT44(uVar23,uVar28) ^ 0x6fd52e0df598cbb3) ^
       uVar29;
  uVar12 = DAT_182671590;
  lVar6 = DAT_182671560;
  uVar26 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar41 = (CONCAT44(uVar14,uVar16) ^ 0x531183898b909f65) + *(longlong *)(lVar5 + -0xbf0);
  uVar19 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar5 + -0x240) = uVar41 ^ uVar26;
  puVar2 = (ulonglong *)(lVar5 + -0x8a8);
  uVar41 = uVar41 - (CONCAT44(uVar49,uVar13) ^ 0xcd370894bf803382) ^ uVar19;
  *puVar2 = uVar41;
  uVar10 = DAT_18267158c;
  uVar43 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  puVar36 = (ulonglong *)(lVar5 - (uVar34 ^ 0x82008770));
  uVar19 = uVar43 ^ uVar19 ^ uVar31 ^ uVar41 ^ *puVar36;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar19;
  uVar41 = CONCAT44(DAT_182671608,DAT_182671608);
  local_138 = (byte)uVar8;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x82008b88)) =
       (uVar43 ^ uVar19) >> ((local_138 ^ 0x20) & 0x3f) ^ uVar41;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x2ac03480)) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0xa88)) >> (((byte)uVar12 ^ 0x15) & 0x3f);
  uVar15 = DAT_182671708;
  lVar5 = DAT_182671560;
  local_128 = (byte)uVar28;
  uVar19 = (*(ulonglong *)(lVar6 - (uVar21 ^ 0x746f619b)) ^ uVar43) << 0x20;
  *(ulonglong *)(lVar6 + -0x1d8) = uVar19 ^ CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x6d0) =
       (*(ulonglong *)(lVar5 - (uVar39 ^ 0x897c65d6)) ^ uVar41 | uVar19) ^ uVar43;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x39ef2947)) =
       (*(ulonglong *)(lVar5 + -0x670) ^ uVar31) -
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671598 ^ 0x5e6f7a59)) ^ uVar43) ^ uVar26;
  uVar19 = CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar41 = *(ulonglong *)(lVar5 + -0x898) ^ uVar19 ^ uVar46 ^ uVar29 ^
           *(ulonglong *)(lVar5 + -0xc08);
  *puVar1 = uVar41;
  uVar15 = DAT_182671718;
  uVar44 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar5 + -0x800) = (uVar41 ^ uVar19) >> ((local_128 ^ 0x32) & 0x3f) ^ uVar44;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x628) = (uVar41 ^ uVar19) << (((byte)uVar11 ^ 0x20) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x39ef21af)) = (uVar41 ^ uVar19) + 0x8a4166bfa5b96145;
  uVar10 = DAT_182671598;
  uVar11 = DAT_18267158c;
  lVar6 = DAT_182671560;
  uVar41 = (ulonglong)DAT_18267158c;
  uVar46 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar19 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar5 + -0x240) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671580 ^ 0x823b041a)) ^ uVar31 |
       uVar44 ^ *(ulonglong *)(lVar5 + -0x800)) ^ uVar46;
  *puVar2 = 0xe4f04527bc516372 >> ((byte)*(undefined8 *)(lVar5 - (uVar19 ^ 0x5e6f7c09)) & 0x3f);
  uVar44 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar6 - (uVar47 ^ 0x81008010)) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0x746f6c83)) ^ uVar29) -
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar40 ^ 0x2a5f3baf)) ^ uVar46) ^ uVar44;
  lVar5 = DAT_182671560;
  *(undefined1 *)(lVar6 - (uVar34 ^ 0x82008309)) = **(undefined1 **)(lVar6 - (uVar47 ^ 0x81008800));
  uVar29 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar31 = *(ulonglong *)(lVar5 - (uVar41 ^ 0x2ac03718)) ^ uVar29 ^ uVar46 ^ uVar26 ^
           *(ulonglong *)(lVar5 + -0x240);
  *(ulonglong *)(lVar5 + -0xa88) = uVar31;
  uVar17 = DAT_1826718cc;
  lVar6 = DAT_182671560;
  local_res20 = (byte)uVar13;
  uVar19 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar40 ^ 0x2a5f3367)) ^ uVar29) >>
           ((local_res20 ^ 0xac) & 0x3f);
  local_res18 = (byte)uVar7;
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar19 ^ CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar15 = DAT_1826717c4;
  uVar19 = (uVar29 ^ uVar31) << ((local_res18 ^ 6) & 0x3f) | uVar19;
  uVar29 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x898) = uVar19 ^ uVar29;
  uVar17 = DAT_18267187c;
  lVar5 = DAT_182671560;
  uVar41 = CONCAT44(uVar15,uVar15);
  *puVar51 = (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar26) - uVar19 ^ uVar41;
  uVar46 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xacee7786)) =
       *(ulonglong *)(lVar5 + -0x6d0) ^ uVar46 ^ uVar44 ^ *(ulonglong *)(lVar5 + -0x110) ^ uVar43;
  uVar26 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xd296ec6d)) =
       (uVar46 ^ *(ulonglong *)(lVar5 + -0xbf0)) >> (((byte)DAT_182671580 ^ 0x24) & 0x3f) ^ uVar26;
  uVar8 = DAT_182671570;
  uVar19 = *(ulonglong *)(lVar5 + -0x800);
  uVar31 = *(ulonglong *)(lVar5 + -0x110);
  uVar52 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar5 + -0x628) = (uVar22 ^ 0x7a000000) >> 0x19;
  uVar15 = DAT_1826715a8;
  uVar27 = CONCAT44(DAT_182671774,DAT_182671774);
  uVar43 = (uVar46 ^ *(ulonglong *)(lVar5 + -0xbf0)) << (((byte)uVar10 ^ 0xa3) & 0x3f);
  *puVar2 = uVar43 ^ uVar32;
  uVar43 = uVar43 | uVar26 ^ uVar19;
  uVar19 = uVar43 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x80) = uVar19;
  uVar17 = DAT_1826715f4;
  *(ulonglong *)(lVar5 + -0xc08) = (uVar44 ^ uVar31) - uVar43 ^ uVar27;
  uVar26 = CONCAT44(uVar17,uVar17);
  uVar19 = uVar26 ^ uVar41 ^ *puVar1 ^ uVar25 ^ uVar19;
  local_d8 = (byte)(uVar9 >> 0x10);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar19;
  lVar5 = DAT_182671560;
  uVar31 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(DAT_182671560 - (uVar52 ^ 0x80000b88)) =
       (uVar26 ^ uVar19) >> ((local_d8 ^ 0xc1) & 0x3f) ^ uVar31;
  uVar19 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0x746f6153)) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0x240)) << (((byte)uVar15 ^ 0xfc) & 0x3f) ^ uVar19;
  uVar10 = DAT_182671588;
  uVar26 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar5 + -0x670) =
       (uVar31 ^ *(ulonglong *)(lVar5 + -0xa88) | *(ulonglong *)(lVar5 + -0x1d8) ^ uVar19) ^ uVar26;
  uVar17 = DAT_182671690;
  *(ulonglong *)(lVar5 + -0x318) =
       (CONCAT44(uVar53,uVar13) ^ 0xec17156c976e037d) << (((byte)uVar14 ^ 0x47) & 0x3f);
  uVar13 = DAT_182671808;
  uVar19 = *(ulonglong *)(lVar5 + -0xc08);
  uVar25 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 + -0x6d0) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671590 ^ 0x823b0092)) ^ uVar41) -
       (*(ulonglong *)(lVar5 - (uVar45 ^ 0xe46dd4e6)) ^ uVar26) ^ uVar25;
  *(uint *)(lVar5 + -0x968) = (uVar10 ^ 0xebab6567) * (DAT_182671580 ^ 0xaa2e2c70);
  uVar17 = DAT_182671660;
  uVar9 = DAT_182671590;
  lVar6 = DAT_182671560;
  uVar41 = CONCAT44(DAT_182671660,DAT_182671660);
  uVar31 = *(ulonglong *)(lVar5 - (uVar47 ^ 0x81008998)) ^ CONCAT44(uVar13,uVar13) ^ uVar27 ^ uVar29
           ^ uVar19;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar31;
  *(ulonglong *)(lVar6 + -0xbf0) =
       ((ulonglong)uVar13 << 0x14 | (ulonglong)(uVar13 >> 0xc)) ^ uVar31 >> 0xc ^ uVar41;
  lVar5 = DAT_182671560;
  bVar3 = *(byte *)(lVar6 - (uVar22 ^ 0xc353dfe2));
  uVar31 = (CONCAT44(uVar13,uVar13) ^ uVar31) << 0x34;
  *(ulonglong *)(lVar6 + -0x800) = uVar31 ^ uVar48;
  *puVar2 = (CONCAT44(uVar11,uVar9) ^ 0x317aba7831d162cc) << ((bVar3 ^ (byte)uVar17) & 0x3f);
  uVar17 = DAT_182671620;
  uVar22 = CONCAT44(DAT_182671734,DAT_182671734);
  uVar31 = *(ulonglong *)(lVar6 - (uVar45 ^ 0xe46dd966)) ^ uVar41 | uVar31;
  *(ulonglong *)(lVar6 + -0x110) = uVar31 ^ uVar22;
  uVar13 = DAT_1826715b4;
  uVar41 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x39ef2adf)) = (uVar27 ^ uVar19) - uVar31 ^ uVar41;
  uVar37 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar31 = *(ulonglong *)(lVar5 + -0x6d0) ^ uVar22 ^ uVar25 ^ *(ulonglong *)(lVar5 + -0x110);
  *(ulonglong *)(lVar5 + -0x240) = uVar31 ^ uVar42;
  uVar17 = DAT_18267175c;
  uVar9 = DAT_182671598;
  *(ulonglong *)(lVar5 + -0xa88) = uVar31 >> (((byte)uVar13 ^ 0x19) & 0x3f) ^ uVar37;
  uVar19 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x820080d8)) = uVar31 << (((byte)uVar9 ^ 0xae) & 0x3f) ^ uVar19;
  uVar29 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xd296e775)) =
       (uVar19 ^ *(ulonglong *)(lVar5 + -0x1d8) | uVar37 ^ *(ulonglong *)(lVar5 + -0xa88)) ^ uVar29;
  uVar19 = *(ulonglong *)(lVar5 + -0x6d0);
  *puVar1 = (CONCAT44(uVar8,uVar53) ^ 0x22de9102fd6b941c) -
            (uVar22 ^ *(ulonglong *)(lVar5 + -0x110));
  uVar9 = DAT_182671580;
  uVar31 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar19 = (uVar19 ^ uVar25) - (CONCAT44(uVar49,uVar16) ^ 0xa0ef3af6b3ac16ac);
  *(ulonglong *)(lVar5 + -0x898) = uVar19 ^ uVar31;
  uVar8 = DAT_182671578;
  *(uint *)(lVar5 + -0x678) = (DAT_182671578 ^ 0x1fd81a5d) + *(int *)(lVar5 - (uVar38 ^ 0xd296e4e1))
  ;
  uVar37 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *puVar2 = uVar19 - (uVar29 ^ *(ulonglong *)(lVar5 + -0x318)) ^ uVar37;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0x823b041a)) =
       (CONCAT44(uVar40,uVar9) ^ 0xf9834715102a81aa) - uVar19;
  *(ulonglong *)(lVar5 + -0xbf0) =
       (uVar29 ^ *(ulonglong *)(lVar5 + -0x318)) - (CONCAT44(uVar7,uVar7) ^ 0x250b0c6d6757a3e2) ^
       uVar24;
  lVar6 = DAT_182671560;
  uVar19 = (ulonglong)DAT_1826715bc;
  uVar38 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  bVar3 = (byte)DAT_182671598;
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x746f688b)) =
       *(ulonglong *)(lVar5 - (uVar45 ^ 0xe46dd216)) ^ uVar38 ^
       *(ulonglong *)(DAT_182671560 + -0x670) ^ uVar41 ^ uVar26;
  uVar45 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(uint *)(lVar6 + -0x374) = (DAT_182671574 ^ 0xbdf8cdd7) << ((bVar3 ^ 0x8d) & 0x1f);
  *(ulonglong *)(lVar6 - (uVar39 ^ 0x897c6356)) =
       (*(ulonglong *)(lVar6 - (uVar47 ^ 0x81008900)) >> 0x20 ^ uVar19) >> 1 ^ uVar45;
  uVar19 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x162f3488)) ^ uVar38) << 0x1f;
  uVar38 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar6 + -0x240) = uVar19 ^ CONCAT44(DAT_182671828,DAT_182671828);
  uVar19 = uVar45 ^ *(ulonglong *)(lVar6 + -0xc08) | uVar19;
  *(ulonglong *)(lVar6 + -0xa88) = uVar19 ^ uVar38;
  *(ulonglong *)(lVar6 + -0x1d8) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0x80)) - (CONCAT44(uVar16,uVar14) ^ 0x4ea3e90b094e113b);
  uVar38 = (uVar41 ^ *(ulonglong *)(lVar6 + -0x80)) - (CONCAT44(uVar11,uVar10) ^ 0xccf559acb3e01250)
  ;
  *puVar1 = uVar38 ^ uVar50;
  *(ulonglong *)(lVar6 + -0x628) =
       CONCAT44(uVar12,uVar15) ^ 0x6de266f9e4b42ed9 | uVar31 ^ *(ulonglong *)(lVar6 + -0x898);
  uVar31 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar6 + -0x6d0) = uVar38 - uVar19 ^ uVar33;
  uVar7 = _DAT_1826716c0;
  uVar38 = (ulonglong)_DAT_1826716c0;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x162f3f90)) =
       (CONCAT44(uVar23,uVar9) ^ 0xd94925ff90f8d8f) + uVar19 ^ uVar31;
  uVar19 = (ulonglong)DAT_18267158c;
  *puVar36 = CONCAT44(uVar7,uVar7) ^ uVar31 ^ uVar37 ^ *(ulonglong *)(lVar6 + -0x318) ^ *puVar2;
  *(ulonglong *)(lVar6 + -0x800) = 0x2299837bc17af00 - (CONCAT44(uVar15,uVar40) ^ 0x7e0babb2fade88d)
  ;
  uVar39 = (uVar38 << 0x1b | (ulonglong)(uVar7 >> 5)) ^ *puVar20 >> 5;
  uVar31 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar6 + -0xc08) = uVar39 ^ CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar19 = (*(ulonglong *)(lVar6 - (uVar19 ^ 0x2ac03270)) ^ CONCAT44(uVar7,uVar7)) << 0x3b;
  uVar38 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar6 + -0x1d8) = uVar19 ^ uVar31;
  *(ulonglong *)(lVar6 + -0x80) = (uVar39 | uVar19) ^ uVar38;
  uVar19 = *puVar2;
  uVar31 = *(ulonglong *)(lVar6 - (uVar30 ^ 0x1000080));
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar4 ^ uVar49;
  *puVar1 = (uVar37 ^ uVar19) - (uVar31 ^ uVar38) ^ uVar35;
  return;
}



############ FUN_ 180e95670 size=3029 ############

void FUN_180e95670(void)

{
  byte *pbVar1;
  ulonglong *puVar2;
  longlong *plVar3;
  ulonglong *puVar4;
  byte bVar5;
  uint uVar6;
  longlong lVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  undefined1 *puVar19;
  longlong lVar20;
  uint uVar21;
  byte bVar22;
  ulonglong uVar23;
  byte *pbVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  longlong lVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  byte *pbVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  longlong *plVar35;
  ulonglong uVar36;
  byte local_a0;
  byte local_90;
  
  uVar13 = DAT_1826715b4;
  uVar12 = DAT_18267159c;
  uVar11 = DAT_182671598;
  uVar10 = DAT_18267158c;
  lVar7 = DAT_182671560;
  uVar25 = (ulonglong)DAT_18267158c;
  uVar23 = (ulonglong)DAT_182671598;
  uVar18 = (ulonglong)DAT_18267159c;
  uVar31 = (DAT_182671598 << 0x10 | DAT_182671598 & 0xff00) << 8 | DAT_182671598 >> 8 & 0xff00 |
           DAT_182671598 >> 0x18;
  uVar26 = (DAT_18267159c << 0x10 | DAT_18267159c & 0xff00) << 8 | DAT_18267159c >> 8 & 0xff00 |
           DAT_18267159c >> 0x18;
  uVar21 = (DAT_18267158c << 0x10 | DAT_18267158c & 0xff00) << 8 | DAT_18267158c >> 8 & 0xff00 |
           DAT_18267158c >> 0x18;
  uVar17 = (ulonglong)DAT_1826715b4;
  uVar30 = ~DAT_1826715b4;
  uVar6 = *(uint *)(&DAT_182611e70 + (uVar17 ^ 0x3fee96b7) + (longlong)DAT_182671b64);
  uVar14 = *(uint *)(&DAT_182611e80 + DAT_182671b64) ^ DAT_18267158c;
  uVar33 = (ulonglong)uVar30;
  uVar29 = *(ulonglong *)(DAT_182671560 + -0x2a0) | *(ulonglong *)(DAT_182671560 + -0x670);
  DAT_182671568 = uVar21;
  DAT_18267157c = uVar26;
  DAT_182671580 = uVar31;
  DAT_182671588 = uVar30;
  *(uint *)(DAT_182671560 + -0x27c) = (uVar21 ^ 0x62a7a1d7) + *(int *)(DAT_182671560 + -0x678);
  *(ulonglong *)(lVar7 + -0x548) = uVar29;
  uVar15 = (ulonglong)uVar26;
  lVar28 = *(longlong *)(lVar7 + 0x30);
  uVar36 = (ulonglong)uVar31;
  *(ulonglong *)(lVar7 + -0xa20) = (CONCAT44(uVar12,uVar26) ^ 0xd9892ad8d82a89db) + lVar28;
  pbVar1 = (byte *)(lVar7 + -0x209);
  bVar5 = **(byte **)(lVar7 - (uVar36 ^ 0xd02a8cbe));
  *(ulonglong *)(lVar7 + -0x80) = (ulonglong)bVar5;
  *pbVar1 = bVar5;
  lVar7 = DAT_182671560;
  bVar22 = (byte)uVar11;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = (ulonglong)bVar5 << (bVar22 & 0x3f);
  *(ulonglong *)(lVar7 + -0xc08) = *(ulonglong *)(lVar7 - ((ulonglong)uVar31 ^ 0xd02a876e)) | uVar29
  ;
  *(longlong *)(lVar7 - ((ulonglong)uVar13 ^ 0x3fee9c9f)) = lVar28 + 3;
  *(int *)(lVar7 + -0x754) = *(int *)(lVar7 + -0x274) + -0x5ed109e6;
  uVar29 = (ulonglong)uVar21;
  *pbVar1 = **(byte **)(lVar7 + -0xa20);
  lVar28 = DAT_182671560;
  bVar5 = *pbVar1;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = (ulonglong)bVar5;
  *(ulonglong *)(lVar28 + -0xa60) =
       (CONCAT44(uVar10,uVar30) ^ 0xe34a0b3d8eb6432a) -
       (CONCAT44(uVar21,uVar12) ^ 0x9aaa6983981cbcdf);
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar28 + -0x6d0) =
       (CONCAT44(uVar11,uVar26) ^ 0x382e0309546551c4) >>
       ((byte)*(undefined8 *)(lVar28 + -0x2a0) & 0x3f);
  *(ulonglong *)(lVar28 - (uVar15 ^ 0xd82a8b99)) = (ulonglong)bVar5 << ((bVar22 ^ 200) & 0x3f);
  *(ulonglong *)(lVar28 + -0x5c8) =
       *(ulonglong *)(lVar28 - (uVar17 ^ 0x3fee9ab7)) | *(ulonglong *)(lVar28 + -0x240);
  *(longlong *)(lVar28 + -0x898) = *(longlong *)(lVar28 + -0x6d0) + 0x359aa75381f0194b;
  puVar19 = (undefined1 *)
            (*(longlong *)((uVar36 ^ 0xd02a86ae) + lVar7) +
            (CONCAT44(uVar13,uVar10) ^ 0x3fee96bfc4fcfffc));
  *(undefined1 **)(lVar7 + -0x60) = puVar19;
  *(undefined1 *)(lVar7 - (uVar33 ^ 0xc0116b49)) = *puVar19;
  *(ulonglong *)(DAT_182671560 - (uVar18 ^ 0xd9892270)) =
       (CONCAT44(uVar31,uVar13) ^ 0xc165ae96a2510fb7) >>
       ((byte)*(undefined8 *)(DAT_182671560 + -0x240) & 0x3f);
  lVar28 = DAT_182671560;
  puVar34 = (ulonglong *)(DAT_182671560 - (uVar15 ^ 0xd82a8ff1));
  *puVar34 = (ulonglong)*pbVar1;
  *(longlong *)(lVar28 - (uVar23 ^ 0x9e862328)) = *(longlong *)(lVar28 + -0x628) << 0x20;
  lVar7 = DAT_182671560;
  uVar27 = *(ulonglong *)(lVar28 + -0x9f8) | *(ulonglong *)(lVar28 + -0x5c8);
  *(ulonglong *)(lVar28 + -0x600) = uVar27;
  lVar28 = *(longlong *)(lVar28 + 0x30);
  *(byte **)(lVar7 + -0x60) = (byte *)(lVar28 + 5);
  *(ulonglong *)(lVar7 + -0x688) = *puVar34 ^ CONCAT44(uVar21,uVar12) ^ 0x55c85c7ee8da2533;
  lVar7 = DAT_182671560;
  bVar5 = *(byte *)(lVar28 + 5);
  *pbVar1 = bVar5;
  *(ulonglong *)(lVar7 + -0x270) = (ulonglong)bVar5;
  *(ulonglong *)(lVar7 + -0x318) = (ulonglong)bVar5 << (((byte)uVar10 ^ 0xd0) & 0x3f);
  *(ulonglong *)(lVar7 + -0x1d8) = *(ulonglong *)(lVar7 - (uVar29 ^ 0xf8ffffdc)) | uVar27;
  pbVar16 = (byte *)((CONCAT44(uVar31,uVar30) ^ 0xd02a869ec0116946) + lVar28);
  *(byte **)(lVar7 + -0x60) = pbVar16;
  *(longlong *)(lVar7 + -0xa88) = 0x46654ad7dd2927bf - *(longlong *)(lVar7 + -0x8a8);
  bVar5 = *pbVar16;
  pbVar16 = *(byte **)(lVar7 + -0xa20);
  *pbVar1 = bVar5;
  *(ulonglong *)(lVar7 + -0x800) = (ulonglong)bVar5;
  *pbVar1 = *pbVar16;
  *(ulonglong *)(lVar7 + -0xbf0) = (ulonglong)bVar5 << 0x30;
  *pbVar1 = *pbVar16;
  *(ulonglong *)(lVar7 + -0x748) =
       *(longlong *)(lVar7 - (uVar17 ^ 0x3fee9767)) + ((ulonglong)bVar5 << 0x30);
  *(ulonglong *)(lVar7 + -0x60) = (CONCAT44(uVar11,uVar21) ^ 0x9e862ad0f8fffcc3) + lVar28;
  lVar28 = DAT_182671560;
  plVar35 = (longlong *)(lVar7 - (uVar33 ^ 0xc0116920));
  *pbVar1 = *(byte *)*plVar35;
  local_90 = (byte)uVar12;
  pbVar24 = (byte *)(lVar28 - ((ulonglong)uVar10 ^ 0xc4fcfdf1));
  uVar17 = (ulonglong)*pbVar24;
  *(ulonglong *)(lVar28 + -0x3b8) = uVar17;
  puVar2 = (ulonglong *)(lVar28 + -0x638);
  *(ulonglong *)(lVar28 - (uVar33 ^ 0xc0116f78)) = uVar17 << ((local_90 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar28 - (uVar29 ^ 0xf8fff52c)) = *puVar2 + *(longlong *)(lVar28 + -0x748);
  uVar9 = DAT_1826717c8;
  puVar4 = (ulonglong *)
           (*(longlong *)(lVar28 + -0x880) + (CONCAT44(uVar13,uVar31) ^ 0x3fee96bfd02a869e) * 8);
  *(ulonglong **)(lVar28 + -0x830) = puVar4;
  *(ulonglong *)(lVar28 + -0x610) = *puVar2 >> ((byte)*puVar2 & 0x3f);
  uVar27 = CONCAT44(uVar9,uVar9);
  *puVar4 = *(ulonglong *)(DAT_182671560 + -0x9e8) ^ uVar27;
  pbVar16 = (byte *)((CONCAT44(uVar10,uVar31) ^ 0xc4fcfff8d02a8696) +
                    *(longlong *)(DAT_182671560 + 0x30));
  *(byte **)(DAT_182671560 + -0xa20) = pbVar16;
  *pbVar1 = *pbVar16;
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x9e862bc0)) =
       CONCAT44(uVar10,uVar26) ^ CONCAT44(uVar12,uVar21) ^ 0xe45eb1ee5a3cc5e9;
  lVar28 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x510) = (ulonglong)*pbVar1;
  *(ulonglong *)(lVar28 + -0x60) =
       (CONCAT44(uVar30,uVar10) ^ 0xc0116940c4fcfff1) + *(longlong *)(lVar28 + 0x30);
  *(undefined1 *)(DAT_182671560 - (uVar36 ^ 0xd02a8497)) =
       **(undefined1 **)(lVar28 - (uVar25 ^ 0xc4fcff98));
  lVar28 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa0) = (ulonglong)*pbVar1;
  *(ulonglong *)(lVar28 + -0x670) =
       CONCAT44(uVar12,uVar31) ^ CONCAT44(uVar12,uVar21) ^ 0x7681feb484649214;
  *(longlong *)(DAT_182671560 - (uVar25 ^ 0xc4fcff78)) =
       *(longlong *)(lVar28 - (uVar23 ^ 0x9e862a70)) << (((byte)(uVar10 >> 0x18) ^ 0xcc) & 0x3f);
  lVar28 = DAT_182671560;
  pbVar16 = (byte *)((CONCAT44(uVar13,uVar10) ^ 0x3fee96bfc4fcfff2) +
                    *(longlong *)(DAT_182671560 + 0x30));
  *(ulonglong *)(DAT_182671560 + -0x548) =
       *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x9e862fc0)) | *(ulonglong *)(DAT_182671560 + -0x80)
  ;
  *(byte **)(lVar28 + -0xa20) = pbVar16;
  bVar5 = *pbVar16;
  *pbVar1 = bVar5;
  *(ulonglong *)(lVar28 - (uVar33 ^ 0xc01168b0)) = (ulonglong)bVar5;
  uVar17 = *(longlong *)(lVar28 + -0x1f0) << 0x10;
  *(ulonglong *)(lVar28 + -0xa60) = uVar17;
  *(ulonglong *)(lVar28 + -0x2a0) = *(ulonglong *)(lVar28 + -0x548) | uVar17;
  lVar28 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x60) =
       (CONCAT44(uVar13,uVar26) ^ 0x3fee96bfd82a89d2) + *(longlong *)(DAT_182671560 + 0x30);
  bVar5 = **(byte **)(lVar28 - (uVar29 ^ 0xf8fffca4));
  *pbVar1 = bVar5;
  lVar28 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x9e862c68)) = (ulonglong)bVar5;
  uVar17 = (ulonglong)bVar5 << (((byte)uVar30 ^ 0x58) & 0x3f);
  *(ulonglong *)(lVar28 + -0xc08) = uVar17;
  *(ulonglong *)(lVar28 + -0x6d0) = uVar17 | *(ulonglong *)(lVar28 + -0x2a0);
  *(ulonglong *)(lVar28 - (uVar29 ^ 0xf8fff6e4)) =
       (CONCAT44(uVar13,uVar12) ^ 0x3fee96bfd9892ad4) + *(longlong *)(lVar28 + 0x30);
  *pbVar1 = **(byte **)(lVar28 + -0xa20);
  pbVar32 = (byte *)(lVar28 - (uVar23 ^ 0x9e8628d9));
  uVar17 = (ulonglong)*pbVar32;
  *(ulonglong *)(lVar28 + -0x898) = uVar17;
  *(ulonglong *)(lVar28 + -0x240) = uVar17 << ((local_90 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar28 + -0x5c8) =
       *(ulonglong *)(lVar28 - (uVar36 ^ 0xd02a804e)) |
       *(ulonglong *)(lVar28 - (uVar33 ^ 0xc0116b00));
  *(longlong *)(lVar28 + -0x60) = *(longlong *)(lVar28 + 0x30) + 0xd;
  bVar5 = **(byte **)(lVar28 - (uVar23 ^ 0x9e862ab0));
  *(ulonglong *)(lVar28 + -0x9f8) = (ulonglong)bVar5;
  *pbVar1 = bVar5;
  uVar8 = DAT_18267156c;
  uVar17 = (ulonglong)DAT_18267156c;
  *puVar34 = *(longlong *)(lVar28 - (uVar15 ^ 0xd82a8021)) << (((byte)uVar10 ^ 0xd0) & 0x3f);
  *(ulonglong *)(lVar28 - (uVar36 ^ 0xd02a8016)) =
       *(ulonglong *)(lVar28 + -0x628) | *(ulonglong *)(lVar28 + -0x5c8);
  *(ulonglong *)(lVar28 - (uVar17 ^ 0x4cefd388)) =
       (CONCAT44(uVar13,uVar13) ^ 0xf6f28cbbd12ed6c4) <<
       ((byte)*(undefined8 *)(lVar28 + -0x628) & 0x3f);
  lVar7 = DAT_182671560;
  lVar28 = *(longlong *)(lVar28 + 0x30);
  pbVar16 = (byte *)((CONCAT44(uVar31,uVar21) ^ 0xd02a869ef8fffcca) + lVar28);
  *(byte **)(DAT_182671560 + -0xa20) = pbVar16;
  bVar5 = *pbVar16;
  *(ulonglong *)(lVar7 + -0x600) = (ulonglong)bVar5;
  uVar9 = DAT_182671570;
  *pbVar1 = bVar5;
  lVar7 = DAT_182671560;
  local_a0 = (byte)uVar13;
  lVar20 = (ulonglong)bVar5 << ((local_a0 ^ 0x8f) & 0x3f);
  plVar3 = (longlong *)(DAT_182671560 + -0x688);
  *(longlong *)(DAT_182671560 + -0x318) = lVar20;
  *(longlong *)(lVar7 + -0x8a8) = *plVar3 + lVar20;
  *(ulonglong *)(lVar7 + -0xa88) = *(ulonglong *)(lVar7 + -0x898) | 0x237de5504062bed;
  *plVar35 = (CONCAT44(uVar9,uVar8) ^ 0xf8d1ef4c4cefd1f7) + lVar28;
  *pbVar1 = **(byte **)(lVar7 + -0x60);
  uVar17 = (ulonglong)*pbVar24;
  *(ulonglong *)(lVar7 + -0x800) = uVar17;
  *(ulonglong *)(lVar7 + -0x1d8) =
       *(ulonglong *)(lVar7 + -0x270) >> (((byte)(uVar11 >> 0x18) ^ 0x92) & 0x3f);
  lVar28 = uVar17 << ((bVar22 ^ 0xe8) & 0x3f);
  uVar17 = *(longlong *)(lVar7 + -0x8a8) + lVar28;
  *(longlong *)(lVar7 + -0xbf0) = lVar28;
  puVar4 = (ulonglong *)
           (*(longlong *)(lVar7 + -0x880) + (CONCAT44(uVar8,uVar21) ^ 0x4cefd1f8f8fffcc5) * 8);
  *(ulonglong *)(lVar7 + -0x3b8) = uVar17;
  *(ulonglong **)(lVar7 + -0x5f8) = puVar4;
  *(ulonglong *)(lVar7 + -0x748) =
       *(ulonglong *)(lVar7 - (uVar18 ^ 0xd98922d8)) ^ CONCAT44(uVar12,uVar13) ^ 0x51efc785371268e7;
  *puVar4 = uVar27 ^ uVar17;
  *(ulonglong *)(lVar7 + -0xa20) =
       (CONCAT44(uVar8,uVar26) ^ 0x4cefd1f8d82a89c9) + *(longlong *)(lVar7 + (uVar33 ^ 0xc0116970));
  *pbVar1 = **(byte **)(lVar7 - (uVar23 ^ 0x9e8620f0));
  *puVar2 = (ulonglong)*pbVar32;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar6 ^ uVar30;
  return;
}



############ FUN_ 180e668c0 size=3950 ############

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

void FUN_180e668c0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  byte bVar5;
  byte bVar6;
  uint uVar7;
  ulonglong uVar8;
  byte bVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  byte *pbVar13;
  undefined8 *puVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  
  uVar17 = DAT_1826715b4;
  uVar32 = DAT_1826715ac;
  uVar19 = DAT_1826715a8;
  uVar20 = DAT_1826715a4;
  uVar4 = DAT_18267159c;
  uVar10 = DAT_182671580;
  uVar24 = DAT_18267159c | DAT_1826715a8;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671ae0);
  uVar23 = DAT_18267156c & DAT_1826715ac;
  uVar33 = (ulonglong)DAT_1826715b4;
  uVar21 = DAT_182671580 ^ DAT_1826715b4;
  uVar26 = (ulonglong)DAT_1826715a4;
  uVar34 = DAT_1826715a0 | DAT_1826715a4;
  uVar7 = *(uint *)(&DAT_182611e80 + DAT_182671ae0) ^ DAT_1826715a8;
  uVar11 = (ulonglong)DAT_18267159c;
  uVar12 = (ulonglong)uVar34;
  DAT_182671570 = uVar34;
  DAT_182671584 = uVar23;
  DAT_18267158c = uVar24;
  DAT_182671594 = uVar21;
  *(uint *)(DAT_182671560 - (uVar11 ^ 0x8a25ee7c)) =
       *(uint *)(DAT_182671560 + -0x504) ^ DAT_1826716a0 ^ DAT_182671800;
  uVar29 = DAT_1826715a0;
  lVar2 = DAT_182671560;
  uVar15 = *(uint *)(DAT_182671560 + -0x27c) ^ DAT_182671798 ^ DAT_1826716a0;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar34 ^ 0x1f737b6a)) |
       CONCAT44(DAT_1826715a0,uVar20) ^ 0xc3add605b967ff01;
  *(uint *)(lVar2 + -0x968) = DAT_182671688 ^ DAT_1826716b4 ^ *(uint *)(lVar2 + -0x3d4);
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0xfffff7bb)) = uVar15;
  uVar8 = (ulonglong)DAT_182671664;
  *(uint *)(lVar2 + -0x910) = *(uint *)(lVar2 + -0x968) ^ DAT_1826718d0 ^ DAT_182671688;
  bVar6 = (byte)DAT_182671614;
  pbVar13 = (byte *)((CONCAT44(uVar19,uVar10) ^ 0xb37f8cc9f68fd0ce) * 0x20 +
                     (CONCAT44(uVar32,uVar21) ^ 0xbb04a05309702f2b) + *(longlong *)(lVar2 + -0x8f0))
  ;
  *(ulonglong *)(lVar2 + -0x4f0) = (ulonglong)pbVar13 ^ uVar8;
  uVar30 = (ulonglong)uVar23;
  *(byte *)(DAT_182671560 - ((ulonglong)uVar23 ^ 0x88042051)) =
       *pbVar13 ^ bVar6 ^ (byte)DAT_182671694;
  uVar17 = DAT_18267177c;
  uVar15 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar22 = (ulonglong)DAT_18267156c;
  bVar9 = (byte)uVar4 ^ 0x11;
  pbVar13 = (byte *)(DAT_182671560 + -0x41);
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (CONCAT44(DAT_18267156c,uVar19) ^ 0x79ab4953c954e690) -
       (CONCAT44(uVar29,uVar23) ^ 0x8f3ec4b76dc9637b);
  uVar25 = DAT_182671828;
  uVar31 = (uint)(*pbVar13 ^ bVar6);
  *(uint *)(lVar2 + -0x344) = uVar31 ^ uVar17;
  uVar18 = DAT_182671680;
  lVar3 = DAT_182671560;
  uVar16 = (*(uint *)(lVar2 - (uVar22 ^ 0x8c557c2c)) ^ DAT_1826718d0) + (uVar21 ^ 0x8709e4);
  *(uint *)(DAT_182671560 + -0x328) = uVar31 << (bVar9 & 0x1f) ^ DAT_1826717c8;
  *(uint *)(lVar3 + -0x964) = uVar16 ^ uVar25;
  uVar17 = DAT_1826715e4;
  *(uint *)(lVar3 + -0x754) =
       uVar16 - (*(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x9702c19)) ^ DAT_1826717c8) ^ DAT_18267176c
  ;
  uVar25 = (*(uint *)(lVar3 - (uVar12 ^ 0x1f73792e)) ^ DAT_18267176c) *
           (*(uint *)(lVar3 + -0x844) ^ DAT_182671798) ^ DAT_182671684;
  *(uint *)(lVar3 + -0x678) = uVar25;
  uVar25 = uVar25 ^ DAT_182671684;
  *(uint *)(lVar3 + -0x47c) = uVar31 * 0x1a ^ uVar17;
  *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0xbb04a327)) = uVar25 + uVar31 * 0x1a ^ uVar18;
  *(uint *)(lVar3 + -0x874) = *(uint *)(lVar3 + -0x47c) ^ uVar17;
  uVar25 = DAT_1826717ac;
  uVar16 = (uVar18 ^ *(uint *)(lVar3 + -0x374)) << (((byte)uVar34 ^ 0x77) & 0x1f) ^ DAT_1826715e8;
  *(uint *)(lVar3 + -0x8c) = uVar16;
  uVar16 = uVar16 ^ DAT_1826715e8;
  uVar8 = (ulonglong)DAT_1826715a0;
  uVar31 = DAT_182671834 ^ DAT_1826718cc;
  uVar17 = (*(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0xbb7fefbd)) ^ uVar18) >>
           (((byte)uVar23 ^ 3) & 0x1f) ^ DAT_1826715d4;
  *(uint *)(lVar3 + -0x504) = uVar17;
  *(uint *)(lVar3 + -0x3d4) = (uVar17 ^ DAT_1826715d4 | uVar16) ^ DAT_1826718cc;
  *(longlong *)(lVar3 - (uVar30 ^ 0x880423a8)) =
       *(longlong *)(lVar3 - (uVar11 ^ 0x8a25e910)) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar8 ^ 0x1f6136da)) & 0x3f);
  *(uint *)(lVar3 - (uVar33 ^ 0xfffffd83)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar19 ^ 0xb37f8f01)) ^ DAT_182671624) +
       (*(uint *)(lVar3 + -0x844) ^ DAT_182671798) ^ uVar25;
  uVar31 = uVar31 ^ *(uint *)(lVar3 + -0x3d4);
  *(uint *)(lVar3 + -0x910) = uVar31;
  *(ulonglong *)(lVar3 + -0x6b8) = *(ulonglong *)(lVar3 + -0x80) | 0xa2fb43b93e4516c8;
  *(uint *)(lVar3 + -0x968) = *(uint *)(lVar3 + -0x27c) ^ DAT_182671864 ^ uVar25;
  *(longlong *)(lVar3 + -0x9f8) = *(longlong *)(lVar3 + -0x688) - *(longlong *)(lVar3 + -0x600);
  uVar16 = DAT_1826716d4;
  lVar2 = DAT_182671560;
  uVar17 = uVar31 ^ DAT_1826717b8 ^ DAT_182671834;
  *(uint *)(DAT_182671560 + -0x964) =
       *(uint *)(lVar3 - ((ulonglong)uVar10 ^ 0xf68fd9a6)) ^ DAT_1826716d4 ^ DAT_182671864;
  uVar8 = (ulonglong)DAT_1826716ec;
  *(uint *)(lVar2 - (uVar11 ^ 0x8a25ef28)) = uVar17;
  uVar17 = DAT_1826715a0;
  pbVar13 = (byte *)((CONCAT44(uVar4,DAT_1826715a0) ^ 0x8a25ec001f61367f) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  *(ulonglong *)(DAT_182671560 + -0xd20) = (ulonglong)pbVar13 ^ uVar8;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (CONCAT44(uVar20,uVar20) ^ 0xc1fa17b6ff8ae173) -
       (CONCAT44(uVar34,uVar21) ^ 0x4509ad61ca81a1db);
  bVar6 = (byte)DAT_182671788;
  lVar2 = DAT_182671560;
  bVar5 = *pbVar13 ^ (byte)DAT_182671788 ^ (byte)DAT_182671694;
  *(byte *)(DAT_182671560 + -0xc41) = bVar5;
  *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0x1f61312e)) = (bVar5 ^ bVar6) ^ uVar25;
  *(ulonglong *)(lVar2 + -0x2a0) =
       *(ulonglong *)(CONCAT44(DAT_1826715cc,DAT_1826715cc) ^ *(ulonglong *)(lVar2 + -0x6a0)) ^
       CONCAT44(DAT_1826715c0,DAT_1826715c0);
  lVar3 = DAT_182671560;
  uVar27 = (*(uint *)(lVar2 + -0x328) ^ DAT_1826717b8) + (uVar32 ^ 0xb2f38686) ^ DAT_1826718a4;
  puVar14 = (undefined8 *)(DAT_182671560 - (uVar30 ^ 0x880422b0));
  *(uint *)(DAT_182671560 + -0x344) = uVar27;
  uVar17 = DAT_1826718c8;
  uVar31 = DAT_1826717f0;
  uVar27 = uVar27 ^ DAT_1826718a4;
  uVar18 = (*(uint *)(lVar3 + -0x754) ^ uVar25) << (bVar9 & 0x1f) ^ DAT_1826717b4;
  *(longlong *)(lVar3 + -0x6d0) = -0x513ab1c41f3c1dd0 << ((byte)*puVar14 & 0x3f);
  *(uint *)(lVar3 + -0x678) = uVar18;
  uVar27 = uVar27 - (uVar18 ^ DAT_1826717b4);
  *(uint *)(lVar3 + -0x47c) = uVar27 ^ uVar17;
  uVar28 = DAT_1826715b4 ^ 0x1aa80b38;
  *(uint *)(lVar3 + -0x874) = uVar27 * (uVar16 ^ *(uint *)(lVar3 + -0x964)) ^ DAT_1826717e0;
  *(undefined8 *)(lVar3 - (uVar22 ^ 0x8c557074)) = 0xd62e526cc948f2df;
  uVar18 = DAT_182671650;
  uVar17 = *(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0xbb7feb9d));
  bVar6 = (byte)DAT_1826715a8;
  *(uint *)(lVar3 + -0x8c) = uVar28 << (((byte)DAT_182671580 ^ 0xd3) & 0x1f);
  uVar27 = *(uint *)(lVar3 + -0x874) ^ DAT_1826717e0;
  uVar17 = (uVar17 ^ uVar25) * (uVar34 ^ 0x1f737e7f);
  *(uint *)(lVar3 + -0x374) = uVar17 ^ uVar18;
  uVar27 = uVar27 + uVar17;
  *(uint *)(lVar3 + -0x504) = uVar27 ^ uVar31;
  *(uint *)(lVar3 - (uVar30 ^ 0x88042854)) = uVar27 << ((bVar6 ^ 0xc4) & 0x1f) ^ DAT_18267184c;
  uVar17 = *(uint *)(lVar3 + -0x844) ^ DAT_18267184c;
  uVar18 = (*(uint *)(lVar3 + -0x504) ^ uVar31) >> 0x13 ^ DAT_1826715d0;
  *(uint *)(lVar3 + -0x27c) = uVar18;
  uVar17 = (uVar18 ^ DAT_1826715d0 | uVar17) ^ DAT_182671824;
  *(uint *)(lVar3 + -0x3d4) = uVar17;
  uVar31 = DAT_182671798;
  uVar25 = DAT_1826716b0;
  uVar18 = DAT_1826715a0;
  uVar16 = (*(uint *)(lVar3 - (uVar12 ^ 0x1f737db2)) ^ DAT_182671624) +
           (uVar16 ^ *(uint *)(lVar3 + -0x964)) ^ DAT_1826716e4;
  uVar28 = DAT_182671798 & 0xff;
  *(uint *)(lVar3 + -0x328) = DAT_182671898 ^ DAT_182671824 ^ uVar17;
  *(uint *)(lVar3 + -0x968) = uVar16;
  uVar17 = DAT_182671588;
  uVar16 = uVar16 ^ uVar25 ^ DAT_1826716e4;
  *(uint *)(lVar3 + -0x910) = uVar16;
  *(uint *)(lVar3 + -0x344) = uVar16;
  uVar27 = ~uVar17;
  DAT_182671590 = uVar27;
  *(ulonglong *)(lVar3 + -0x8a8) =
       (CONCAT44(uVar29,uVar34) ^ 0xa18e99ae35a0fcb0) +
       (CONCAT44(uVar15,uVar18) ^ 0xfd08db896763321);
  uVar16 = DAT_182671764;
  uVar18 = *(uint *)(lVar3 - (uVar12 ^ 0x1f737d52)) ^ DAT_1826716f4 ^ DAT_182671898;
  *(uint *)(lVar3 + -0x678) = uVar18;
  pbVar13 = (byte *)((CONCAT44(uVar23,uVar19) ^ 0x88042010b37f8cc9) * 0x20 +
                     (CONCAT44(uVar4,uVar10) ^ 0x8a25ec00f68fd0de) + *(longlong *)(lVar3 + -0x8f0));
  uVar18 = uVar18 ^ DAT_1826716f4;
  *(ulonglong *)(lVar3 + -0xc80) = (ulonglong)pbVar13 ^ (ulonglong)DAT_182671664;
  *(ulonglong *)(lVar3 + -0x1d8) =
       (CONCAT44(uVar15,uVar32) ^ 0x87c089f9b324d2be) +
       (CONCAT44(uVar20,uVar32) ^ 0x527d5222527dca5c);
  uVar29 = DAT_1826715b0;
  lVar2 = DAT_182671560;
  bVar6 = *pbVar13 ^ (byte)uVar31 ^ (byte)DAT_182671694;
  uVar19 = DAT_1826715b0 << 0x10 | DAT_1826715b0 >> 0x10;
  uVar28 = uVar28 ^ bVar6;
  DAT_182671568 = uVar19;
  *(byte *)(DAT_182671560 + -0x41) = bVar6;
  *(uint *)(lVar2 + -0x47c) = uVar28 ^ uVar16;
  *(uint *)(lVar2 + -0x754) = uVar18 + (uVar27 ^ 0xfc29fd2a) ^ DAT_1826715d4;
  *(undefined4 *)(lVar2 + -0x8c) = 0x5e79f3c0;
  *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x999643ba)) =
       uVar28 << (((byte)uVar17 ^ 0x11) & 0x1f) ^ DAT_1826715c0;
  uVar18 = DAT_18267174c;
  *(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0x4bce9ae2)) =
       (*(uint *)(lVar2 + -0x754) ^ DAT_1826715d4) - (*(uint *)(lVar2 + -0x874) ^ DAT_1826715c0) ^
       DAT_18267174c;
  uVar15 = DAT_1826716ac;
  *(ulonglong *)(lVar2 + -0xa60) = CONCAT44(uVar29,uVar27) ^ 0xfeaf6ffd5e3bbdde | 0xd4a56f7d4a0ab5de
  ;
  *(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0x4bce9c92)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0xa212744)) ^ uVar25) *
       (uVar18 ^ *(uint *)(lVar2 + -0x374)) ^ uVar15;
  uVar18 = DAT_182671874;
  *(uint *)(lVar2 - ((ulonglong)uVar27 ^ 0xf5ded3bb)) =
       (*(uint *)(lVar2 + -0x504) ^ uVar15) + (uVar27 ^ 0xa490c851);
  uVar20 = (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x99964fb2)) ^ uVar16) << 4 ^ DAT_1826717bc;
  *(uint *)(lVar2 + -0x27c) = uVar20;
  *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0xa212d64)) =
       (*(uint *)(lVar2 + -0x504) ^ uVar15) + (uVar20 ^ DAT_1826717bc) ^ uVar18;
  uVar20 = DAT_182671894;
  *(uint *)(lVar2 + -0x968) =
       (uVar18 ^ *(uint *)(lVar2 + -0x964)) << (((byte)uVar29 ^ 0x9b) & 0x1f) ^ DAT_182671894;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0xa212640)) =
       *(longlong *)(lVar2 + -0x898) - (CONCAT44(uVar19,uVar29) ^ 0x757e1f699abe4ecb);
  uVar15 = DAT_182671700;
  uVar32 = (uVar18 ^ *(uint *)(lVar2 + -0x964)) >> 0x13 ^ DAT_1826717e0;
  uVar18 = *(uint *)(lVar2 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar2 + -0x3d4) = uVar32;
  uVar18 = uVar18 + (*(uint *)(lVar2 + -0x344) ^ uVar25) ^ DAT_1826715c4;
  uVar32 = uVar32 ^ DAT_1826717e0;
  *(uint *)(lVar2 + -0x328) = uVar18;
  uVar20 = (uVar32 | uVar20 ^ *(uint *)(lVar2 + -0x968)) ^ DAT_182671644;
  uVar18 = uVar18 ^ uVar15 ^ DAT_1826715c4;
  uVar32 = DAT_1826717d8 ^ DAT_182671644;
  *(longlong *)(lVar2 + -0x5c8) = -0x67b6108520b4e1e1 << (((byte)uVar27 ^ 0xcd) & 0x3f);
  *(uint *)(lVar2 + -0x910) = uVar20;
  *(ulonglong *)(lVar2 + -0x800) =
       CONCAT44(uVar17,uVar24) ^ 0xef8186bca5a4d510 | CONCAT44(uVar19,uVar19) ^ 0x308156fe98bc2596;
  uVar20 = DAT_182671750;
  *(uint *)(lVar2 - (uVar26 ^ 0x19327c30)) = uVar18;
  uVar32 = uVar32 ^ *(uint *)(lVar2 + -0x910);
  *(uint *)(lVar2 + -0x754) = *(uint *)(lVar2 + -0x678) ^ uVar15 | 0xb2ac07f6;
  *(uint *)(lVar2 + -0x8c) = uVar32;
  *(uint *)(lVar2 + -0x374) = *(uint *)(lVar2 - ((ulonglong)uVar21 ^ 0x9702949)) ^ uVar20 ^ uVar15;
  bVar6 = (byte)DAT_1826718a8;
  uVar18 = DAT_1826716bc;
  uVar15 = DAT_182671578;
  uVar17 = DAT_182671574;
  uVar8 = (ulonglong)DAT_182671734;
  *(uint *)(lVar2 + -0x844) = uVar32 ^ DAT_182671678 ^ DAT_1826717d8;
  *(ulonglong *)(lVar2 + -0x4f0) =
       *(longlong *)(lVar2 - ((ulonglong)uVar29 ^ 0x4bce9166)) +
       (CONCAT44(uVar4,uVar10) ^ 0x8a25ec00f68fd0d5) ^ uVar8;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xfffff617)) =
       *(ulonglong *)(lVar2 + -0x688) | 0xfe4850111ea3ea9a;
  uVar4 = DAT_182671804;
  uVar10 = DAT_1826715a0 ^ 0x98391777;
  *(byte *)(lVar2 + -0xc41) =
       *(byte *)(uVar8 ^ *(ulonglong *)(lVar2 + -0x4f0)) ^ bVar6 ^ (byte)DAT_182671694;
  *(uint *)(lVar2 + -0x47c) = uVar10 - (*(uint *)(lVar2 + -0x874) ^ DAT_1826715c0);
  uVar10 = DAT_182671598;
  uVar8 = (ulonglong)DAT_182671598;
  DAT_18267157c = uVar17;
  if ((DAT_182671598 & 1) == 0) {
    DAT_18267157c = DAT_182671598;
  }
  uVar11 = (ulonglong)DAT_18267157c;
  uVar29 = (uint)(bVar6 ^ *(byte *)(lVar2 + -0xc41));
  *(uint *)(lVar2 + -0x504) = uVar29 ^ uVar18;
  *(uint *)(lVar2 + -0x27c) =
       (*(uint *)(lVar2 - (uVar11 ^ 0x5b92627e)) ^ DAT_182671678) + (uVar10 ^ 0x52654cef) ^
       DAT_182671794;
  *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0x7bbef6be)) =
       uVar29 << (((byte)uVar15 ^ 0x11) & 0x1f) ^ uVar4;
  uVar29 = (*(uint *)(lVar2 - (uVar11 ^ 0x5b926846)) ^ DAT_182671794) -
           (uVar4 ^ *(uint *)(lVar2 + -0x964)) ^ DAT_1826717c8;
  *(uint *)(lVar2 + -0x968) = uVar29;
  uVar4 = DAT_1826717cc;
  uVar29 = (uVar29 ^ DAT_1826717c8) * (uVar20 ^ *(uint *)(lVar2 + -0x374));
  *(uint *)(lVar2 + -0x344) =
       (*(uint *)(lVar2 + -0x504) ^ uVar18) * (uVar17 ^ 0x7bbeffc1) ^ DAT_18267181c;
  *(uint *)(lVar2 + -0x3d4) = uVar29 ^ uVar4;
  *(ulonglong *)(lVar2 + -0xc08) =
       (CONCAT44(uVar10,uVar17) ^ 0xa3d26509f2a3e613) + 0x3a295436fac38f59;
  uVar4 = DAT_182671698;
  uVar29 = (*(uint *)(lVar2 - ((ulonglong)uVar15 ^ 0xa212744)) ^ DAT_18267181c) + uVar29;
  *(uint *)(lVar2 + -0x328) = uVar29 ^ DAT_182671698;
  *(uint *)(lVar2 - ((ulonglong)uVar15 ^ 0xa212d10)) = uVar29 * 0x2000 ^ _DAT_182671610;
  *(ulonglong *)(lVar2 - (uVar8 ^ 0x5b926c02)) =
       (CONCAT44(uVar10,uVar10) ^ 0x64bfbbe76e297294) + *(longlong *)(lVar2 - (uVar11 ^ 0x5b926c82))
  ;
  *(uint *)(lVar2 - (uVar11 ^ 0x5b926d6e)) =
       (*(uint *)(lVar2 + -0x328) ^ uVar4) >> (((byte)uVar17 ^ 0xc9) & 0x1f) ^ DAT_18267160c;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar7 * 4) = uVar1 ^ uVar24;
  return;
}



############ FUN_ 180e5ae60 size=4169 ############

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

void FUN_180e5ae60(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  undefined8 *puVar21;
  uint uVar22;
  uint uVar23;
  byte *pbVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint *puVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  byte local_60;
  
  uVar10 = DAT_1826715ac;
  uVar19 = DAT_182671568;
  lVar6 = DAT_182671560;
  uVar25 = (ulonglong)DAT_1826715ac;
  uVar27 = DAT_1826715ac - DAT_182671568;
  uVar20 = (ulonglong)DAT_182671568;
  uVar15 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_182671568 ^ 0xfffffff7) + (longlong)DAT_182671abc) ^
           DAT_1826715ac;
  uVar4 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_1826715ac ^ 0x4bce9985) + (longlong)DAT_182671abc);
  puVar1 = (uint *)(DAT_182671560 + -0x374);
  bVar5 = (byte)uVar27;
  uVar31 = DAT_182671844 ^ *puVar1;
  uVar29 = (*(uint *)(DAT_182671560 + -0x678) ^ DAT_18267160c) + (DAT_182671568 ^ 0xf608d92a) ^
           DAT_1826716dc;
  uVar16 = *(uint *)(DAT_182671560 + -0x968) ^ DAT_18267170c;
  puVar2 = (uint *)(DAT_182671560 + -0x328);
  uVar22 = (DAT_182671844 ^ *puVar1) << ((bVar5 ^ 0x87) & 0x1f) ^ DAT_182671710;
  DAT_1826715a0 = uVar27;
  *puVar2 = uVar22;
  uVar22 = uVar22 ^ DAT_182671710;
  *(uint *)(lVar6 + -0x47c) = uVar29;
  uVar34 = DAT_1826715c0;
  uVar29 = (uVar29 ^ DAT_1826716dc) - uVar22 ^ DAT_1826717f0;
  *(uint *)(lVar6 + -0x910) = uVar29;
  uVar22 = _DAT_1826715e0;
  *(uint *)(lVar6 + -0x27c) = uVar16 * (uVar29 ^ DAT_1826717f0) ^ uVar34;
  *(ulonglong *)(lVar6 + -0x6b8) =
       (CONCAT44(uVar19,uVar10) ^ 0x3a4b9eac83f9d988) + 0x211b59b5a3f3f229;
  *(ulonglong *)(lVar6 + -0xc08) =
       (CONCAT44(uVar10,uVar19) ^ 0x5b6ab5b361096034) + *(longlong *)(lVar6 + -0x510);
  uVar16 = uVar31 * (uVar27 ^ 0x4bce998b) ^ DAT_1826717dc;
  puVar28 = (uint *)(lVar6 - ((ulonglong)uVar10 ^ 0x4bce9be9));
  *(uint *)(lVar6 + -0x844) = uVar16;
  *(uint *)(lVar6 - ((ulonglong)uVar19 ^ 0xfffffafb)) =
       (uVar16 ^ DAT_1826717dc) + (uVar34 ^ *puVar28) ^ uVar22;
  *(uint *)(lVar6 + -0x874) =
       (*(uint *)(lVar6 + -0x504) ^ uVar22) << ((bVar5 ^ 0x9b) & 0x1f) ^ DAT_182671668;
  uVar31 = DAT_18267187c;
  uVar8 = DAT_1826715a4;
  uVar16 = DAT_182671574;
  puVar3 = (uint *)(lVar6 + -0x964);
  *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0x4bce991a)) =
       (*(uint *)(lVar6 + -0x504) ^ uVar22) >> (((byte)uVar10 ^ 0x86) & 0x1f) ^ DAT_182671804;
  *(uint *)(lVar6 - (uVar20 ^ 0xfffffc2b)) =
       (*(uint *)(lVar6 + -0x874) ^ DAT_182671668 | *(uint *)(lVar6 + -0x8c) ^ DAT_182671804) ^
       _DAT_18267188c;
  lVar7 = DAT_182671560;
  *(uint *)(lVar6 + -0x344) =
       (*(uint *)(lVar6 - ((ulonglong)uVar19 ^ 0xfffffc37)) ^ DAT_182671624) +
       (*(uint *)(lVar6 + -0x968) ^ DAT_18267170c) ^ uVar31;
  uVar13 = DAT_1826716fc;
  uVar29 = DAT_1826716d4;
  uVar20 = (ulonglong)DAT_18267158c;
  uVar34 = *(uint *)(lVar6 - ((ulonglong)uVar10 ^ 0x4bce9ad1)) ^ DAT_1826716fc ^ uVar31;
  *(uint *)(lVar7 + -0x754) = *(uint *)(lVar7 + -0x3d4) ^ DAT_1826717a0 ^ _DAT_18267188c;
  *puVar3 = uVar34;
  uVar35 = uVar34 ^ uVar29 ^ uVar13;
  *(uint *)(lVar7 + -0x678) = uVar35;
  uVar32 = *(uint *)(lVar7 - (uVar20 ^ 0x1f61312e)) ^ DAT_18267171c ^ DAT_1826717a0;
  *puVar2 = uVar32;
  uVar11 = DAT_1826715b0;
  uVar20 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar7 + -0x2a0) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar27 ^ 0x4bce9c5e)) >>
       ((byte)*(undefined8 *)(lVar7 + -0x748) & 0x3f);
  uVar22 = DAT_182671578;
  uVar34 = DAT_182671570;
  lVar6 = DAT_182671560;
  uVar26 = (ulonglong)DAT_182671814;
  uVar32 = (uVar32 ^ DAT_18267171c) + (uVar27 ^ 0x4239bf43) ^ DAT_1826716ac;
  uVar36 = (ulonglong)DAT_182671570;
  pbVar24 = (byte *)((CONCAT44(DAT_182671578,uVar11) ^ 0x4bb53a06abb2585) * 0x20 +
                     (CONCAT44(uVar8,uVar16) ^ 0x781e9a6e367a1f69) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  *(uint *)(DAT_182671560 + -0x47c) = (DAT_182671570 ^ 0xbdbde1b8) + 0xdd083656;
  *(ulonglong *)(lVar6 + -0xc80) = (ulonglong)pbVar24 ^ uVar26;
  bVar14 = DAT_182671618;
  lVar6 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0xc41) = *pbVar24 ^ DAT_182671618 ^ (byte)DAT_182671694;
  bVar17 = (byte)DAT_182671594;
  *(ulonglong *)(lVar6 + -0x3b8) =
       (CONCAT44(uVar34,uVar19) ^ 0x46a42d0a74fafb86) - *(longlong *)(lVar6 + -0xc08);
  uVar34 = DAT_182671574;
  uVar16 = (uint)(bVar14 ^ *(byte *)(lVar6 + -0xc41));
  *(uint *)(lVar6 + -0x910) = uVar16 ^ uVar31;
  *(ulonglong *)(lVar6 + -0x110) = 0xdee5a2f9df5a07cd >> (bVar17 & 0x3f);
  uVar23 = DAT_18267189c;
  uVar34 = uVar16 << (((byte)uVar34 ^ 0x70) & 0x1f) ^ DAT_182671890;
  uVar26 = (ulonglong)DAT_182671590;
  *puVar1 = uVar32;
  uVar32 = uVar32 ^ DAT_1826716ac;
  *(uint *)(lVar6 + -0x27c) = uVar34;
  uVar32 = uVar32 - (uVar34 ^ DAT_182671890);
  *(uint *)(lVar6 + -0x844) = uVar32 ^ uVar23;
  *(uint *)(lVar6 - (uVar26 ^ 0x6cf43bc6)) = (uVar35 ^ uVar29) * uVar32 ^ DAT_1826717d0;
  uVar34 = (*(uint *)(lVar6 + -0x910) ^ uVar31) << 3 ^ DAT_1826717f8;
  *(uint *)(lVar6 + -0x874) = uVar34;
  uVar34 = uVar34 ^ DAT_1826717f8;
  *(ulonglong *)(lVar6 + -0x80) = *(ulonglong *)(lVar6 + -0x600) >> 0x2d;
  uVar31 = DAT_18267177c;
  uVar32 = DAT_18267159c;
  uVar34 = uVar34 + (*(uint *)(lVar6 + -0x504) ^ DAT_1826717d0);
  *(uint *)(lVar6 + -0x8c) = uVar34 ^ DAT_18267177c;
  uVar35 = DAT_1826715a8;
  uVar16 = DAT_182671568;
  uVar33 = uVar34 << (((byte)uVar32 ^ 0xd) & 0x1f) ^ DAT_182671790;
  *(ulonglong *)(lVar6 + -0xa88) =
       *(ulonglong *)(lVar6 - (uVar20 ^ 0x6abb2675)) ^ CONCAT44(DAT_1826715a8,uVar19) ^
       0xc24ca203172bd4bd;
  *(uint *)(lVar6 + -0x968) = uVar33;
  uVar33 = uVar33 ^ DAT_182671790;
  uVar34 = *(uint *)(lVar6 - ((ulonglong)uVar32 ^ 0x8a25ec8c));
  *(undefined8 *)(lVar6 + -0xa60) = 0xc000000000000000;
  uVar34 = (uVar34 ^ uVar31) >> (((byte)uVar16 ^ 0xec) & 0x1f) ^ DAT_182671718;
  uVar20 = (ulonglong)DAT_182671590;
  *(uint *)(lVar6 + -0x344) = uVar34;
  uVar12 = DAT_1826715b4;
  *(uint *)(lVar6 + -0x3d4) = (uVar34 ^ DAT_182671718 | uVar33) ^ DAT_1826718b8;
  uVar34 = (*(uint *)(lVar6 - (uVar20 ^ 0x6cf43d0a)) ^ DAT_182671624) +
           (*(uint *)(lVar6 + -0x678) ^ uVar29) ^ DAT_1826717cc;
  *puVar3 = uVar34;
  *(uint *)(lVar6 - (uVar36 ^ 0xfffff8ab)) = uVar34 ^ DAT_182671854 ^ DAT_1826717cc;
  *(ulonglong *)(lVar6 + -0x548) = CONCAT44(uVar22,uVar12) ^ 0x200031b260089380 | 0x9bd98e4d1de74429
  ;
  *(uint *)(lVar6 + -0x47c) = *(uint *)(lVar6 + -0x3d4) ^ DAT_182671770 ^ DAT_1826718b8;
  uVar18 = DAT_182671858;
  bVar14 = (byte)DAT_182671684;
  uVar29 = DAT_182671598;
  uVar20 = CONCAT44(uVar10,DAT_182671580);
  *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0x4bce9abe)) =
       DAT_182671858 ^ DAT_182671854 ^ *(uint *)(lVar6 + -0x754);
  uVar34 = DAT_182671594;
  uVar8 = DAT_18267157c;
  uVar16 = DAT_18267156c;
  uVar26 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar6 + -0x9f8) =
       uVar20 ^ 0x88964eff869868a9 | CONCAT44(uVar10,DAT_1826715a4) ^ 0xcc9bf2066ec426d4;
  *puVar1 = *(uint *)(lVar6 - (uVar25 ^ 0x4bce9de9)) ^ DAT_182671770 ^ uVar13;
  pbVar24 = (byte *)((CONCAT44(uVar8,uVar34) ^ 0x6a3a5b9255b1eaaf) + *(longlong *)(lVar6 + -0x8f0));
  *(ulonglong *)(lVar6 + -0x4f0) = (ulonglong)pbVar24 ^ (ulonglong)DAT_1826716d8;
  uVar31 = DAT_182671590;
  bVar17 = (byte)DAT_182671590;
  *(byte *)(lVar6 - ((ulonglong)uVar29 ^ 0x930bc17f)) = *pbVar24 ^ bVar14 ^ (byte)DAT_182671694;
  lVar6 = DAT_182671560;
  *(longlong *)(DAT_182671560 + -0x9e8) =
       *(longlong *)(DAT_182671560 + -0x110) << ((bVar17 ^ 0xdf) & 0x3f);
  uVar33 = DAT_1826717fc;
  uVar30 = (uint)(*(byte *)(lVar6 - (uVar26 ^ 0x367a1f20)) ^ bVar14);
  *(uint *)(lVar6 + -0x27c) = uVar30 ^ DAT_1826717fc;
  uVar37 = (uVar13 ^ *puVar1) + (uVar12 ^ 0xe969ef50);
  *(uint *)(lVar6 + -0x844) = uVar37 ^ uVar23;
  uVar13 = DAT_18267181c;
  uVar29 = DAT_182671588;
  lVar6 = DAT_182671560;
  uVar38 = (ulonglong)DAT_182671588;
  uVar34 = *puVar2;
  uVar33 = (uVar33 ^ *puVar28) << (((byte)uVar32 ^ 0x11) & 0x1f) ^ DAT_182671780;
  *(uint *)(DAT_182671560 + -0x910) = uVar33;
  uVar33 = uVar37 - (uVar33 ^ DAT_182671780) ^ DAT_182671798;
  *(uint *)(lVar6 + -0x504) = uVar33;
  uVar33 = uVar33 ^ DAT_182671798;
  uVar23 = uVar30 * 0x13 ^ DAT_18267185c;
  *(uint *)(lVar6 + -0x8c) = uVar23;
  uVar23 = uVar23 ^ DAT_18267185c;
  *(uint *)(lVar6 + -0x874) = uVar33 * (uVar34 ^ uVar18) ^ DAT_18267171c;
  uVar33 = DAT_182671828;
  uVar23 = (*(uint *)(lVar6 - ((ulonglong)uVar32 ^ 0x8a25e474)) ^ DAT_18267171c) + uVar23;
  *(uint *)(lVar6 + -0x968) = uVar23 ^ uVar13;
  uVar34 = DAT_182671584;
  uVar26 = (ulonglong)DAT_182671584;
  uVar32 = (*(uint *)(lVar6 + -0x968) ^ uVar13) >> 0x13;
  *(ulonglong *)(lVar6 + -0x898) =
       (CONCAT44(DAT_182671584,uVar29) ^ 0x269a887e985b470c) <<
       ((byte)*(undefined8 *)(lVar6 + -0x6b8) & 0x3f);
  bVar17 = (byte)DAT_1826715b0 ^ 0x88;
  *(uint *)(lVar6 + -0x678) = uVar32 ^ uVar33;
  *(longlong *)(lVar6 + -0x6d0) = *(longlong *)(lVar6 + -0x2a0) << 0x13;
  *(uint *)(lVar6 + -0x344) = uVar23 << (bVar17 & 0x1f) ^ DAT_182671724;
  uVar23 = (*(uint *)(lVar6 - (uVar36 ^ 0xfffffcbb)) ^ DAT_182671724 | uVar32) ^ DAT_182671754;
  *puVar3 = uVar23;
  *(ulonglong *)(lVar6 + -0x688) =
       (CONCAT44(uVar19,uVar8) ^ 0xcfd090c364952f0b) << ((bVar5 ^ 0x98) & 0x3f);
  uVar13 = DAT_182671600;
  uVar20 = (ulonglong)DAT_1826716a0;
  uVar32 = (*(uint *)(lVar6 - ((ulonglong)DAT_18267158c ^ 0x1f613552)) ^ uVar18) +
           (*(uint *)(lVar6 + -0x3c8) ^ DAT_182671624) ^ DAT_182671818;
  *(uint *)(lVar6 + -0x3d4) = uVar32;
  *(uint *)(lVar6 + -0x754) = uVar32 ^ DAT_182671860 ^ DAT_182671818;
  uVar18 = DAT_1826716f0 ^ DAT_182671754;
  *(ulonglong *)(lVar6 + -0x240) =
       (CONCAT44(uVar31,uVar34) ^ 0xe5a6735407860f49) >>
       ((byte)*(undefined8 *)(lVar6 + -0x5c8) & 0x3f);
  uVar32 = DAT_1826715fc;
  *(uint *)(lVar6 - (uVar26 ^ 0x13aca0b6)) = uVar18 ^ uVar23;
  uVar18 = DAT_1826718bc;
  uVar34 = *(uint *)(lVar6 + -0x47c) ^ uVar13 ^ DAT_1826716f0;
  *puVar1 = *(uint *)(lVar6 - ((ulonglong)DAT_182671590 ^ 0x6cf43996)) ^ DAT_1826718bc ^
            DAT_182671860;
  *(uint *)(lVar6 - (uVar25 ^ 0x4bce91d1)) = uVar34;
  bVar5 = (byte)DAT_1826716f8;
  *(ulonglong *)(lVar6 + -0xc80) =
       (CONCAT44(uVar31,uVar12) ^ 0x6cf43ec2e09ec985) * 0x20 + *(longlong *)(lVar6 + -0x8f0) + 0x1e
       ^ uVar20;
  uVar34 = DAT_18267158c;
  bVar14 = *(byte *)(*(ulonglong *)(lVar6 - (uVar38 ^ 0x92182f68)) ^ uVar20) ^ bVar5 ^
           (byte)DAT_182671694;
  *(byte *)(lVar6 + -0xc41) = bVar14;
  uVar30 = (uint)(bVar14 ^ bVar5);
  uVar31 = (uVar13 ^ *(uint *)(lVar6 + -0x844)) + (uVar34 ^ 0x169610af) ^ DAT_182671840;
  *(uint *)(lVar6 + -0x910) = uVar30 ^ uVar32;
  uVar34 = DAT_182671578;
  lVar7 = DAT_182671560;
  uVar20 = (ulonglong)DAT_182671578;
  uVar25 = (ulonglong)DAT_182671594;
  *(uint *)(lVar6 + -0x504) = uVar31;
  uVar31 = (*(uint *)(lVar6 - (uVar20 ^ 0x4bb5ab0)) ^ uVar32) << 0x11 ^ DAT_182671674;
  *(uint *)(lVar6 + -0x27c) = uVar31;
  uVar32 = DAT_182671690;
  uVar37 = (*(uint *)(lVar6 - ((ulonglong)uVar34 ^ 0x4bb56a4)) ^ DAT_182671840) -
           (uVar31 ^ DAT_182671674) ^ DAT_182671668;
  *(uint *)(lVar6 + -0x874) = uVar37;
  uVar13 = DAT_1826718d0;
  uVar31 = DAT_1826715a8;
  uVar26 = (ulonglong)DAT_1826715a8;
  uVar23 = DAT_182671578 ^ 0x4bb53be;
  *(uint *)(lVar7 + -0x8c) =
       (*(uint *)(DAT_182671560 - (uVar26 ^ 0xfffffc8b)) ^ uVar18) * (uVar37 ^ DAT_182671668) ^
       DAT_182671794;
  *(uint *)(lVar7 - (uVar25 ^ 0x55b1e3d4)) = uVar30 * uVar23 ^ uVar32;
  lVar6 = DAT_182671560;
  puVar28 = (uint *)(DAT_182671560 + -0x968);
  *(ulonglong *)(DAT_182671560 + -0x800) =
       (CONCAT44(uVar29,uVar11) ^ 0xc85dcd5561213e17) +
       (CONCAT44(uVar22,uVar16) ^ 0x70cbf7a9d5d215b8);
  bVar5 = (byte)DAT_1826715a4;
  *(uint *)(lVar6 + -0x344) =
       (*(uint *)(lVar6 - ((ulonglong)uVar31 ^ 0xffffff73)) ^ DAT_182671794) + (uVar32 ^ *puVar28) ^
       uVar13;
  uVar31 = DAT_182671624;
  uVar29 = DAT_182671580;
  lVar7 = DAT_182671560;
  *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0x4bce9fee)) =
       (*(uint *)(lVar6 - (uVar25 ^ 0x55b1e9f8)) ^ uVar13) << ((bVar5 ^ 99) & 0x1f) ^ DAT_182671698;
  uVar22 = DAT_182671574;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671574 ^ 0x367a1d11)) =
       (CONCAT44(uVar16,uVar34) ^ 0x2a59fd8dc4384190) >>
       ((byte)*(undefined8 *)(lVar6 + -0x898) & 0x3f);
  *puVar2 = (uVar13 ^ *(uint *)(lVar6 + -0x344)) >> 0x13 ^ uVar33;
  uVar16 = DAT_18267158c;
  uVar32 = (*(uint *)(lVar6 - ((ulonglong)uVar29 ^ 0xa053b82c)) ^ uVar33 |
           *(uint *)(lVar6 + -0x678) ^ DAT_182671698) ^ DAT_182671730;
  *(uint *)(lVar6 + -0x3d4) = uVar32;
  uVar34 = *puVar1;
  *(uint *)(lVar6 + -0x47c) = uVar32 ^ DAT_182671870 ^ DAT_182671730;
  uVar32 = DAT_182671704;
  uVar34 = (*(uint *)(lVar6 + -0x3c8) ^ uVar31) + (uVar18 ^ uVar34) ^ DAT_18267186c;
  *puVar3 = uVar34;
  *(uint *)(lVar6 + -0x754) = uVar34 ^ DAT_18267186c ^ uVar31;
  *(longlong *)(lVar6 + -0x510) = 0x2cc1f291ff4dd3e8 - *(longlong *)(lVar6 + -0x9e8);
  *(ulonglong *)(lVar6 + -0x400) =
       CONCAT44(uVar35,uVar16) ^ 0x4bc55796076f94ee | CONCAT44(uVar19,uVar16) ^ 0xdcac01985d81654a;
  uVar20 = (ulonglong)DAT_182671590;
  uVar31 = *(uint *)(lVar6 - (uVar26 ^ 0xfffff8ab)) ^ uVar32 ^ uVar31;
  *(uint *)(lVar7 + -0x844) = uVar31;
  *(uint *)(lVar7 + -0x504) =
       *(uint *)(lVar7 - (uVar20 ^ 0x6cf43abe)) ^ DAT_1826718a0 ^ DAT_182671870;
  bVar5 = (byte)DAT_182671834;
  uVar9 = DAT_1826715a4;
  uVar20 = (ulonglong)_DAT_1826715d8;
  local_60 = (byte)uVar19;
  uVar26 = *(ulonglong *)(lVar7 + -0x8a8) >> ((local_60 ^ 0xe9) & 0x3f);
  *(ulonglong *)(lVar7 + -0x3b8) = uVar26;
  pbVar24 = (byte *)((CONCAT44(uVar22,uVar10) ^ 0x367a1f614bce9995) * 0x20 +
                     (CONCAT44(uVar8,uVar9) ^ 0x6a3a5b92781e9a67) + *(longlong *)(lVar7 + -0x8f0));
  *(ulonglong *)(lVar7 + -0xc80) = (ulonglong)pbVar24 ^ uVar20;
  uVar34 = DAT_1826718d4;
  bVar14 = *pbVar24 ^ bVar5 ^ (byte)DAT_182671694;
  *(byte *)(lVar7 + -0x41) = bVar14;
  uVar16 = (uint)(bVar5 ^ bVar14);
  *(uint *)(lVar7 + -0x27c) = uVar16 ^ uVar34;
  lVar6 = DAT_182671560;
  uVar22 = (*(uint *)(lVar7 - (uVar38 ^ 0x921826ec)) ^ DAT_1826718a0) + (DAT_182671574 ^ 0x3f8d39b4)
           ^ DAT_1826715c8;
  puVar21 = (undefined8 *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0xe09eca75));
  *(uint *)(DAT_182671560 + -0x874) = uVar22;
  uVar22 = uVar22 ^ DAT_1826715c8;
  *(longlong *)(lVar6 + -0xc08) = -0x612cbbe3f4f69f4d << ((byte)*puVar21 & 0x3f);
  uVar34 = DAT_182671748;
  uVar19 = uVar16 << 0x11 ^ DAT_182671700;
  *(uint *)(lVar6 + -0x910) = uVar19;
  uVar22 = uVar22 - (uVar19 ^ DAT_182671700);
  *(uint *)(lVar6 + -0x8c) = uVar22 ^ uVar34;
  uVar16 = uVar16 * 9 ^ DAT_182671854;
  *(uint *)(lVar6 + -0x344) = uVar16;
  uVar16 = uVar16 ^ DAT_182671854;
  *(uint *)(lVar6 + -0x968) = uVar22 * (uVar32 ^ uVar31) ^ DAT_182671814;
  uVar34 = DAT_182671570;
  uVar16 = (*(uint *)(lVar6 - (uVar38 ^ 0x92182a80)) ^ DAT_182671814) + uVar16;
  uVar19 = uVar16 ^ DAT_18267172c;
  *puVar2 = uVar16 << (bVar17 & 0x1f) ^ DAT_1826717ec;
  *(uint *)(lVar6 + -0x678) = uVar19;
  uVar19 = DAT_18267182c;
  *puVar1 = uVar16 >> (((byte)uVar34 ^ 0xec) & 0x1f) ^ DAT_18267182c;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671598 ^ 0x930bc73e)) =
       uVar26 >> (((byte)uVar29 ^ 0x2c) & 0x3f);
  *puVar3 = (*puVar2 ^ DAT_1826717ec | uVar19 ^ *puVar1) ^ DAT_182671614;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar4 ^ uVar27) * 4) = uVar15;
  return;
}



############ FUN_ 180f35f10 size=4525 ############

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

void FUN_180f35f10(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  undefined4 uVar18;
  byte bVar19;
  byte bVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte *pbVar28;
  ulonglong uVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  
  uVar7 = DAT_182671828;
  uVar18 = DAT_182671664;
  uVar9 = DAT_182671580;
  uVar25 = DAT_182671578;
  lVar4 = DAT_182671560;
  uVar37 = (ulonglong)DAT_182671580;
  uVar34 = (ulonglong)DAT_182671578;
  uVar21 = DAT_182671580 ^ DAT_182671578;
  uVar35 = (ulonglong)uVar21;
  uVar22 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar21 ^ 0x40218fc2) + (longlong)DAT_182671a60) ^
           DAT_182671578;
  uVar23 = *(uint *)(&DAT_182611e70 + (uVar37 ^ 0x89acb9a8) + (longlong)DAT_182671a60) ^
           DAT_182671580;
  uVar27 = (ulonglong)DAT_182671578;
  uVar41 = (ulonglong)DAT_1826716fc;
  uVar31 = (ulonglong)DAT_182671828;
  uVar36 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  uVar39 = CONCAT44(DAT_182671580,DAT_182671578);
  uVar32 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar26 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  uVar29 = (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar32) << 0x38;
  puVar1 = (ulonglong *)(DAT_182671560 + -0xa88);
  DAT_182671570 = uVar21;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar29 ^ CONCAT44(DAT_182671664,DAT_182671664);
  uVar14 = DAT_18267169c;
  *(ulonglong *)(lVar4 + -0x1f0) = (uVar26 ^ *puVar1) + uVar29 ^ uVar36;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xc98d3642)) =
       *(longlong *)(lVar4 + -0x880) + (uVar39 ^ 0x89acb9b8c98d3674) * 8 ^ uVar29;
  lVar5 = DAT_182671560;
  uVar27 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x30) ^ uVar29) =
       uVar27 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x1f0);
  *(ulonglong *)(lVar5 + -0x5b8) =
       (CONCAT44(uVar21,uVar9) ^ 0x40218fca89acb980) + *(longlong *)(lVar5 + -3000) ^ uVar41;
  bVar19 = (byte)DAT_182671890;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x89acbcf0)) = (CONCAT44(uVar9,uVar21) ^ 0x701501cb9d084) << 0xc;
  *(byte *)(lVar5 + -0x359) =
       *(byte *)(uVar41 ^ *(ulonglong *)(lVar5 + -0x5b8)) ^ bVar19 ^ (byte)DAT_1826717c0;
  lVar6 = DAT_182671560;
  uVar36 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x40218c72)) =
       (*(ulonglong *)(lVar5 + -0x318) ^ uVar32) + (uVar39 ^ 0x7f8c6b7cd9471f84);
  puVar1 = (ulonglong *)(lVar6 + -0x270);
  uVar32 = CONCAT44(DAT_182671638,DAT_182671638);
  uVar29 = (ulonglong)DAT_18267177c;
  *puVar1 = (*(byte *)(lVar6 - (uVar36 ^ 0x8119cc6a)) ^ bVar19) ^ uVar32;
  pbVar28 = (byte *)((CONCAT44(uVar21,uVar25) ^ 0x40218fcac98d364b) + *(longlong *)(lVar6 + -3000));
  *(ulonglong *)(lVar6 + -0x900) = (ulonglong)pbVar28 ^ uVar29;
  *(byte *)(lVar6 + -0x951) = *pbVar28 ^ (byte)uVar7 ^ (byte)DAT_1826717c0;
  *(undefined8 *)(lVar6 - (uVar35 ^ 0x40218a02)) = 0x1030a92e6917cce2;
  uVar36 = CONCAT44(DAT_18267182c,DAT_18267182c);
  bVar30 = (byte)uVar9;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar25 ^ 0xc98d333a)) =
       uVar31 & 0xff ^ (ulonglong)*(byte *)(lVar6 + -0x951) ^ uVar36;
  uVar14 = DAT_182671830;
  uVar29 = CONCAT44(DAT_182671670,DAT_182671670);
  *(ulonglong *)(lVar6 + -0x318) =
       (uVar36 ^ *(ulonglong *)(lVar6 + -0x548)) << ((bVar30 ^ 0xb0) & 0x3f) ^ uVar29;
  uVar33 = DAT_182671880;
  uVar15 = DAT_1826715b0;
  uVar8 = DAT_182671574;
  puVar2 = (ulonglong *)(lVar6 + -0x3b8);
  uVar36 = (ulonglong)DAT_182671608;
  uVar39 = *(ulonglong *)(lVar6 - (uVar37 ^ 0x89acbaa0)) ^ uVar29 | uVar32 ^ *puVar1;
  lVar4 = *(longlong *)(lVar6 + -3000);
  *puVar2 = uVar39 ^ CONCAT44(uVar14,uVar14);
  lVar5 = DAT_182671560;
  pbVar28 = (byte *)((CONCAT44(uVar15,uVar9) ^ 0x8028b77589acb982) + lVar4);
  *(ulonglong *)(lVar6 + -0x8f8) = (ulonglong)pbVar28 ^ uVar36;
  uVar7 = DAT_1826715e4;
  uVar24 = DAT_1826715e4 & 0xff;
  *(ulonglong *)(lVar6 + -0x5c8) =
       CONCAT44(uVar33,uVar33) ^ *(ulonglong *)(lVar6 + -0x9e8) ^ 0x7f1113a46f0888c7;
  uVar16 = _DAT_18267161c;
  bVar19 = *pbVar28 ^ (byte)DAT_1826717c0 ^ (byte)uVar7;
  *(byte *)(lVar6 + -0x941) = bVar19;
  uVar14 = _DAT_1826715dc;
  uVar29 = (ulonglong)bVar19 ^ (ulonglong)uVar24;
  uVar32 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0x548) = uVar29 ^ uVar32;
  uVar16 = DAT_182671628;
  uVar33 = DAT_18267157c;
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar29 = uVar29 << (((byte)DAT_18267157c ^ 9) & 0x3f);
  bVar19 = *(byte *)(lVar5 + -0x898);
  *puVar1 = uVar29 ^ uVar42;
  uVar31 = CONCAT44(uVar16,uVar16);
  uVar36 = CONCAT44(uVar21,DAT_1826715ac);
  *(ulonglong *)(lVar5 + -0x318) = (uVar29 | uVar39) ^ uVar31;
  *(ulonglong *)(lVar5 + -0x9e8) = (uVar36 ^ 0xfa8f2e8dc04271b8) << (((byte)uVar18 ^ bVar19) & 0x3f)
  ;
  bVar19 = (byte)DAT_182671678;
  uVar13 = DAT_1826715a4;
  uVar12 = DAT_1826715a0;
  uVar24 = DAT_182671588;
  uVar36 = (ulonglong)DAT_1826716f0;
  uVar44 = (ulonglong)DAT_182671584;
  uVar43 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 + -0xc80) =
       (CONCAT44(DAT_1826715a0,DAT_182671584) ^ 0xd80d761e1015083b) + lVar4 ^ uVar36;
  uVar29 = CONCAT44(DAT_182671590,uVar25);
  *(byte *)(lVar5 - (uVar37 ^ 0x89acb281)) =
       *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar33 ^ 0xcf338d99)) ^ uVar36) ^
       (byte)DAT_1826717c0 ^ bVar19;
  uVar14 = DAT_182671600;
  uVar7 = DAT_182671568;
  *(ulonglong *)(lVar5 + -0x5c8) = uVar29 ^ CONCAT44(DAT_182671568,uVar24) ^ 0x24b36b1a42cd7eb;
  uVar29 = (ulonglong)(*(byte *)(lVar5 - ((ulonglong)uVar33 ^ 0xcf338a20)) ^ bVar19);
  *(ulonglong *)(lVar5 + -0x548) = uVar29 ^ CONCAT44(uVar14,uVar14);
  *puVar2 = uVar26 ^ *(ulonglong *)(lVar5 + -0xa88) | 0xfc2e3b17bd305ab;
  uVar16 = DAT_1826718a4;
  uVar29 = uVar29 << (((byte)uVar8 ^ 0x2f) & 0x3f);
  *(ulonglong *)(lVar5 + -0x898) = uVar29 ^ CONCAT44(DAT_182671620,DAT_182671620);
  uVar17 = DAT_18267162c;
  bVar19 = (byte)DAT_18267160c;
  uVar14 = DAT_1826715a8;
  uVar11 = DAT_18267159c;
  uVar10 = DAT_182671594;
  lVar4 = DAT_182671560;
  uVar41 = CONCAT44(uVar16,uVar16);
  uVar36 = (ulonglong)DAT_18267162c;
  uVar39 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xeff8f79d)) =
       (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar31 | uVar29) ^ uVar41;
  *(ulonglong *)(lVar4 + -0x5c8) =
       (CONCAT44(uVar10,DAT_1826715b4) ^ 0x120a3d0160874785) -
       (CONCAT44(uVar24,uVar24) ^ 0x96bcc509cbbfb4ab);
  pbVar28 = (byte *)((CONCAT44(uVar14,DAT_18267156c) ^ 0xf05d5808f341907e) +
                    *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0x5b8) = (ulonglong)pbVar28 ^ uVar36;
  *(byte *)(lVar4 - ((ulonglong)uVar13 ^ 0xeff8fa4c)) = *pbVar28 ^ (byte)DAT_1826717c0 ^ bVar19;
  uVar14 = DAT_1826715b8;
  uVar29 = (ulonglong)(*(byte *)(lVar4 + -0x439) ^ bVar19);
  *(ulonglong *)(lVar4 + -0xa88) = uVar29 ^ uVar32;
  uVar33 = DAT_18267156c;
  uVar37 = (ulonglong)DAT_18267156c;
  uVar31 = CONCAT44(uVar14,uVar14);
  puVar40 = (ulonglong *)(lVar4 - (uVar39 ^ 0xe0485540));
  uVar36 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *puVar40 = uVar29 << ((bVar30 ^ 0x98) & 0x3f) ^ uVar31;
  bVar19 = (byte)DAT_182671820;
  lVar4 = DAT_182671560;
  uVar29 = (ulonglong)DAT_182671648;
  uVar39 = (ulonglong)DAT_182671574;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xf34199aa)) ^ uVar41 |
       uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x548)) ^ uVar36;
  pbVar28 = (byte *)(*(longlong *)(lVar4 - (uVar35 ^ 0x40218472)) +
                    (CONCAT44(uVar15,uVar13) ^ 0x8028b775eff8fe48));
  *(ulonglong *)(lVar4 + -0x900) = (ulonglong)pbVar28 ^ uVar29;
  uVar14 = DAT_182671654;
  bVar20 = *pbVar28 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar4 + -0x262) = bVar20 ^ bVar19;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar29 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar4 + -0x898) = bVar20 ^ uVar37;
  bVar19 = (byte)DAT_182671598;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x69da74ff)) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0xfffffd8f)) ^ CONCAT44(uVar12,uVar21) ^ uVar42 ^
       0xb63fd11cc5015162;
  lVar4 = DAT_182671560;
  uVar32 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(DAT_182671560 - (uVar44 ^ 0x10150288)) =
       (*(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x40218752)) ^ uVar37) << ((bVar19 ^ 0xd7) & 0x3f)
       ^ uVar32;
  uVar14 = DAT_1826715b0;
  uVar8 = DAT_182671568;
  uVar37 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar29 = (ulonglong)DAT_182671708;
  uVar41 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 + -0x9e8) =
       (*(ulonglong *)(lVar4 + -0xa88) ^ uVar32 | *(ulonglong *)(lVar4 + -0x318) ^ uVar36) ^ uVar37;
  pbVar28 = (byte *)((CONCAT44(uVar13,uVar14) ^ 0xeff8fe758028b74b) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0x8f8) = (ulonglong)pbVar28 ^ uVar29;
  uVar31 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar4 + -0x548) =
       *(ulonglong *)(lVar4 - (uVar41 ^ 0x503ebf40)) ^ uVar36 |
       CONCAT44(uVar11,uVar9) ^ 0x722dfdf6935c3518;
  bVar19 = *pbVar28 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar4 + -0x671) = bVar19 ^ (byte)DAT_182671798;
  lVar4 = DAT_182671560;
  uVar35 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0x69da7347)) = bVar19 ^ uVar35;
  uVar29 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(lVar4 + -0x5c8) = (uVar35 ^ *puVar1) << 0x30 ^ uVar29;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x8504078)) =
       *(ulonglong *)(lVar4 + -0x9e8) ^ uVar37 | *(ulonglong *)(lVar4 + -0xa88) ^ uVar32;
  uVar36 = (uVar29 ^ *(ulonglong *)(lVar4 + -0x5c8)) + (*(ulonglong *)(lVar4 + -0x9e8) ^ uVar37);
  *(ulonglong *)(lVar4 + -0x318) = uVar36 ^ CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar9 = DAT_182671810;
  lVar5 = DAT_182671560;
  uVar29 = (ulonglong)DAT_182671640;
  uVar39 = CONCAT44(uVar10,DAT_18267157c);
  uVar32 = (ulonglong)DAT_182671810;
  uVar37 = CONCAT44(uVar12,DAT_18267158c);
  *(ulonglong *)(lVar4 + -0x548) = (uVar35 ^ *puVar1) >> (((byte)uVar25 ^ 0x55) & 0x3f);
  bVar19 = (byte)DAT_1826716b8;
  pbVar28 = (byte *)((uVar39 ^ 0x85048e0cf338126) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0xc80) = (ulonglong)pbVar28 ^ uVar29;
  bVar20 = *pbVar28 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar4 + -0x2b9) = bVar20 ^ bVar19;
  uVar25 = DAT_18267158c ^ 0x49676e8b;
  *(ulonglong *)(lVar4 + -0xa88) = bVar20 ^ uVar26;
  uVar14 = DAT_182671698;
  *(uint *)(lVar4 + -0x754) = uVar25 + (DAT_182671588 ^ 0x99d89fd5);
  uVar29 = (ulonglong)bVar20 << 0x38;
  *(ulonglong *)(lVar4 + -0x898) = uVar29 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xc98d3f9a)) = uVar29 + uVar36 ^ CONCAT44(uVar9,uVar9);
  uVar26 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x503eb8f8)) =
       *(longlong *)(lVar5 + -0x880) + (uVar37 ^ 0xd80d761e8119cf34) * 8 ^ uVar26;
  uVar29 = (ulonglong)DAT_182671690;
  *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar31 ^ 0x8504c40)) ^ uVar26) =
       uVar27 ^ *(ulonglong *)(lVar5 + -0x9e8) ^ CONCAT44(uVar9,uVar9);
  pbVar28 = (byte *)((CONCAT44(uVar24,uVar33) ^ 0x902fb900f3419002) + *(longlong *)(lVar5 + -3000));
  *(ulonglong *)(lVar5 + -0x5b8) = (ulonglong)pbVar28 ^ uVar29;
  uVar35 = (ulonglong)DAT_182671594;
  uVar33 = DAT_18267159c ^ 0xea353218;
  uVar25 = DAT_182671568 + DAT_18267157c;
  *(byte *)(lVar5 + -0x549) = *pbVar28 ^ (byte)DAT_1826717c0 ^ (byte)uVar9;
  DAT_182671588 = uVar25;
  *(uint *)(lVar5 - (uVar35 ^ 0x8504bc8)) = uVar33 * (DAT_1826715a0 ^ 0x58aca50c);
  uVar33 = DAT_1826715b4;
  uVar26 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar29 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar5 + -0x5c8) = (ulonglong)*(byte *)(lVar5 + -0x549) ^ uVar32 & 0xff ^ uVar26;
  bVar19 = (byte)DAT_182671684;
  pbVar28 = (byte *)(*(longlong *)(lVar5 - (uVar29 ^ 0x101f13b8)) +
                    (CONCAT44(uVar33,uVar8) ^ 0x101f1800503ebc19));
  *(ulonglong *)(lVar5 + -0x900) = (ulonglong)pbVar28 ^ (ulonglong)DAT_182671638;
  *(byte *)(lVar5 + -0x9cc) = *pbVar28 ^ (byte)DAT_1826717c0 ^ bVar19;
  uVar8 = DAT_18267157c;
  uVar36 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  puVar38 = (ulonglong *)(lVar5 - (uVar41 ^ 0x503ebe28));
  *puVar38 = (*(byte *)(lVar5 - ((ulonglong)uVar25 ^ 0x1f7234bd)) ^ bVar19) ^ uVar36;
  uVar14 = DAT_182671724;
  *(ulonglong *)(lVar5 + -0x548) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xcf3382a1)) ^ CONCAT44(uVar8,uVar25) ^
       0xbc615b50867ae8ea;
  lVar4 = DAT_182671560;
  puVar3 = (ulonglong *)(lVar5 + -0xa80);
  uVar37 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar29 = (uVar36 ^ *puVar38) << (((byte)uVar8 ^ 0x11) & 0x3f);
  *puVar3 = uVar29 ^ CONCAT44(uVar14,uVar14);
  uVar27 = (ulonglong)DAT_182671880;
  *(ulonglong *)(lVar4 + -0xa88) = (uVar26 ^ *(ulonglong *)(lVar4 + -0x5c8) | uVar29) ^ uVar37;
  uVar8 = DAT_18267157c;
  lVar4 = DAT_182671560;
  uVar26 = CONCAT44(uVar25,DAT_182671568);
  uVar29 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar26 ^ uVar36 ^ *puVar1 ^ 0xe5adc821cf021e26;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xcf3389e1)) =
       (uVar26 ^ 0x1f723d71503ebc1a) + *(longlong *)(lVar4 + -3000) ^ uVar27;
  uVar15 = DAT_1826718d0;
  bVar19 = *(byte *)(*(ulonglong *)(lVar4 + -0x8f8) ^ uVar27) ^ (byte)DAT_1826717c0;
  *(byte *)(lVar4 + -0xe2) = bVar19 ^ (byte)DAT_182671834;
  uVar14 = DAT_182671770;
  *(ulonglong *)(lVar4 + -0x898) = (ulonglong)bVar19 ^ CONCAT44(uVar15,uVar15);
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xcf3387a1)) = (ulonglong)bVar19 << 0x10 ^ uVar26;
  uVar14 = DAT_1826715f4;
  lVar5 = DAT_182671560;
  uVar27 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar25 ^ 0x1f723ec9)) =
       (uVar37 ^ *(ulonglong *)(lVar4 + -0xa88) | *(ulonglong *)(lVar4 + -0x6b8) ^ uVar26) ^ uVar27;
  lVar6 = DAT_182671560;
  uVar29 = *(ulonglong *)(lVar5 + -0x6b8);
  pbVar28 = (byte *)((CONCAT44(uVar25,uVar25) ^ 0x1f723d711f723d32) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0xc80) = (ulonglong)pbVar28 ^ (ulonglong)DAT_1826717b8;
  uVar15 = DAT_1826716b0;
  uVar8 = DAT_182671568;
  bVar19 = (byte)DAT_1826716b0;
  uVar36 = (ulonglong)DAT_182671568;
  *(byte *)(lVar5 + -0x701) = *pbVar28 ^ (byte)DAT_1826717c0 ^ bVar19;
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x503eb910)) =
       (uVar29 ^ uVar26) >> ((*(byte *)puVar2 ^ (byte)uVar14) & 0x3f);
  uVar14 = DAT_182671808;
  uVar26 = (ulonglong)(bVar19 ^ *(byte *)(lVar6 + -0x701));
  *puVar3 = uVar26 ^ CONCAT44(DAT_182671720,DAT_182671720);
  uVar26 = uVar26 << (((byte)uVar25 ^ 0x69) & 0x3f);
  *puVar1 = uVar26 ^ CONCAT44(uVar14,uVar14);
  uVar29 = (ulonglong)DAT_1826715d0;
  uVar31 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar6 + -0x318) = (uVar26 | *puVar2 ^ uVar27) ^ uVar31;
  pbVar28 = (byte *)(*(longlong *)(lVar6 - ((ulonglong)uVar8 ^ 0x503eb7e0)) + 0x44);
  *(ulonglong *)(lVar6 + -0x5b8) = (ulonglong)pbVar28 ^ uVar29;
  bVar19 = (byte)DAT_182671774;
  uVar33 = DAT_18267157c;
  uVar26 = CONCAT44(uVar15,uVar15);
  *(byte *)(DAT_182671560 - (uVar36 ^ 0x503ebb89)) =
       *pbVar28 ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671774;
  lVar4 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0x503ebb2c)) =
       (uVar33 ^ 0x2eaedbee) * (uVar25 ^ 0x82e55532);
  *(ulonglong *)(lVar4 + -0xa88) = (*(byte *)(lVar4 + -0x7d1) ^ bVar19) ^ uVar26;
  uVar29 = (ulonglong)DAT_1826715a0;
  *(int *)(lVar4 + -0x3d4) = *(int *)(lVar4 + -0x328) << (((byte)uVar33 ^ 0x13) & 0x1f);
  uVar37 = CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar26 = (*(ulonglong *)(lVar4 - (uVar29 ^ 0xd80d7c96)) ^ uVar26) <<
           (((byte)uVar25 ^ 0x51) & 0x3f);
  uVar29 = (ulonglong)DAT_1826716e4;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar26 ^ CONCAT44(DAT_182671704,DAT_182671704);
  uVar27 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar4 + -0x548) = (uVar26 | *(ulonglong *)(lVar4 + -0x318) ^ uVar31) ^ uVar37;
  bVar19 = (byte)DAT_182671818;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xcf338819)) =
       (CONCAT44(uVar7,uVar8) ^ 0x503ebc58503ebc1d) + *(longlong *)(lVar4 + -3000) ^ uVar29;
  *(byte *)(lVar4 - (uVar35 ^ 0x8504b37)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x900) ^ uVar29) ^ (byte)DAT_1826717c0 ^ bVar19;
  uVar14 = DAT_1826718b8;
  uVar26 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar29 = (ulonglong)(*(byte *)(lVar4 - (uVar36 ^ 0x503ebf8f)) ^ bVar19);
  *puVar3 = uVar29 ^ CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar29 = uVar29 << ((bVar30 ^ 0x90) & 0x3f);
  *puVar2 = uVar29 ^ uVar26;
  *puVar1 = (uVar29 | uVar37 ^ *puVar40) ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar23 * 4) = uVar22;
  return;
}



############ FUN_ 180ef3240 size=5754 ############

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

void FUN_180ef3240(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte local_res18;
  byte local_b8;
  byte local_a8;
  byte local_68;
  
  uVar7 = DAT_18267159c;
  uVar6 = DAT_182671580;
  uVar2 = DAT_18267157c;
  uVar5 = DAT_18267156c;
  lVar3 = DAT_182671560;
  DAT_182671570 = DAT_182671574 - DAT_1826715a8;
  uVar31 = DAT_1826715a0 & DAT_1826715b0;
  DAT_182671588 = DAT_18267158c & DAT_1826715a4;
  uVar22 = DAT_182671594 << 0x10 | DAT_182671594 >> 0x10;
  uVar14 = DAT_18267159c & 3;
  if (uVar14 < 2) {
    uVar25 = DAT_182671580;
    if (uVar14 == 0) {
      uVar25 = DAT_18267159c;
    }
  }
  else {
    uVar25 = DAT_18267157c;
    if (uVar14 < 3) {
      uVar25 = DAT_182671568;
    }
  }
  uVar18 = *(uint *)(&DAT_182611e78 + DAT_182671994) ^ DAT_18267156c;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671994) ^ DAT_182671568;
  puVar35 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267157c ^ 0x12330504));
  uVar30 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar21 = CONCAT44(DAT_18267182c,DAT_18267182c);
  DAT_182671584 = uVar22;
  DAT_182671590 = uVar31;
  DAT_1826715b4 = uVar25;
  *(ulonglong *)(DAT_182671560 + -0x600) =
       (CONCAT44(DAT_1826716b4,DAT_1826716b4) ^ *puVar35) -
       (*(ulonglong *)(DAT_182671560 + -0xa60) ^ uVar30) ^ uVar21;
  uVar12 = DAT_182671644;
  uVar8 = DAT_182671594;
  *(ulonglong *)(lVar3 + -0xbf0) =
       (CONCAT44(uVar25,uVar6) ^ 0x318d53bedcb7ebe5) + (CONCAT44(uVar7,uVar6) ^ 0xe872d7e169bbfd38);
  uVar26 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x688)) +
       (CONCAT44(uVar8,uVar31) ^ 0xf06573ec9fe02144) ^ uVar26;
  uVar12 = DAT_1826716dc;
  *(uint *)(lVar3 - ((ulonglong)DAT_1826715a0 ^ 0x57b9c6cd)) = ~uVar22 << 0x1c;
  uVar13 = DAT_182671824;
  uVar11 = DAT_1826715b0;
  uVar9 = DAT_1826715a4;
  uVar22 = DAT_182671588;
  uVar32 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar3 + -0x9f8) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x548)) -
       (uVar26 ^ *(ulonglong *)(lVar3 + -0x670)) ^ uVar32;
  uVar10 = DAT_1826715a8;
  uVar19 = CONCAT44(uVar13,uVar13);
  uVar27 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  uVar20 = (uVar19 ^ *(ulonglong *)(lVar3 + -0x3b8)) + (CONCAT44(uVar2,uVar11) ^ 0x2c3363d5803e7518)
  ;
  uVar16 = CONCAT44(uVar9,DAT_18267158c);
  *(ulonglong *)(lVar3 + -0x80) = uVar20 ^ uVar27;
  uVar28 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x120016e8)) = uVar20 - (uVar16 ^ 0x489ea04fec507f9e);
  uVar14 = DAT_182671574;
  lVar3 = DAT_182671560;
  uVar36 = CONCAT44(DAT_182671784,DAT_182671784);
  uVar29 = (ulonglong)DAT_182671574;
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (CONCAT44(DAT_1826715bc,DAT_1826715bc) ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) -
       (*(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x10b307ae)) ^ uVar27) ^ uVar36;
  uVar12 = DAT_18267179c;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xc5c19e7d)) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0xcdd6a354)) +
       (CONCAT44(uVar10,uVar9) ^ 0x8151016ec730b21) ^ uVar30;
  uVar13 = DAT_18267169c;
  uVar28 = CONCAT44(_DAT_182671618,_DAT_182671618);
  uVar16 = (uVar30 ^ *(ulonglong *)(lVar4 + -0x5c8)) -
           (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0x638)) ^ uVar28;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar16;
  uVar12 = DAT_182671628;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar28 = uVar21 ^ *(ulonglong *)(lVar4 + -0x600) ^ uVar27 ^ uVar16 ^ uVar28;
  *(ulonglong *)(lVar4 + -0xc08) = uVar28;
  uVar20 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar25 ^ 0x123307d4)) =
       (uVar28 ^ uVar27) >> (((byte)uVar22 ^ 0xe0) & 0x3f) ^ uVar20;
  bVar17 = (byte)DAT_182671584;
  *(undefined8 *)(lVar4 - ((ulonglong)DAT_182671584 ^ 0x72e160b)) = 0;
  lVar3 = DAT_182671560;
  uVar23 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar28 = (*(ulonglong *)(DAT_182671560 + -0xc08) ^ uVar27) << ((bVar17 ^ 0x93) & 0x3f);
  *(undefined8 *)(DAT_182671560 + -0x800) = 0x4300000000000000;
  uVar16 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar3 + -0x240) = uVar28 ^ uVar23;
  lVar3 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x5a021048)) =
       (uVar28 | uVar20 ^ *(ulonglong *)(DAT_182671560 + -0x270)) ^ uVar27;
  uVar16 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x240)) -
       (CONCAT44(uVar5,DAT_1826715a4) ^ 0x5bd293b3a4ce5b6c);
  lVar4 = DAT_182671560;
  uVar24 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar28 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0xcdd6addc)) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0x123303a4)) ^ uVar21) -
       (*(ulonglong *)(lVar3 + -0xa88) ^ uVar27) ^ uVar24;
  uVar12 = DAT_182671658;
  uVar20 = (ulonglong)DAT_182671730;
  uVar16 = (ulonglong)DAT_182671594;
  uVar21 = CONCAT44(DAT_182671730,DAT_182671730);
  uVar32 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x30043c95)) ^ uVar32 ^ *(ulonglong *)(lVar3 + -0x9e8) ^
           uVar21 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x400) = uVar32;
  uVar13 = DAT_1826716b0;
  uVar28 = CONCAT44(uVar12,uVar12);
  local_b8 = (byte)uVar6;
  uVar21 = (uVar32 ^ uVar21) << ((local_b8 ^ 0x29) & 0x3f);
  uVar20 = *(ulonglong *)(lVar4 - (uVar16 ^ 0x10b3032e)) >> 0x20 ^ uVar28 ^ uVar20;
  *(ulonglong *)(lVar4 + -0x748) = uVar20;
  uVar12 = DAT_182671810;
  *(ulonglong *)(lVar4 + -0x318) = uVar21 ^ CONCAT44(uVar13,uVar13);
  uVar21 = uVar20 ^ uVar28 | uVar21;
  uVar16 = CONCAT44(uVar12,uVar12);
  uVar33 = uVar21 ^ uVar16;
  *(ulonglong *)(lVar4 + -0x8a8) = uVar33;
  uVar12 = DAT_182671740;
  uVar32 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar21 = (*(ulonglong *)(lVar4 + -0x9e8) ^ uVar36) - uVar21 ^ uVar32;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar21;
  uVar13 = DAT_182671854;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar20 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  bVar17 = (byte)DAT_182671584;
  *(ulonglong *)(lVar4 + -0xa0) = uVar33 ^ *(ulonglong *)(lVar4 + -0x610) ^ uVar28 ^ uVar16 ^ uVar24
  ;
  uVar33 = (uVar28 ^ *puVar35) >> ((bVar17 ^ 0x89) & 0x3f);
  uVar16 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar4 + -0xbf0) = uVar33 ^ uVar20;
  uVar16 = (*(ulonglong *)(lVar4 - (uVar16 ^ 0x12001060)) ^ uVar28) <<
           (((byte)DAT_1826715a0 ^ 0xbf) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar16 ^ CONCAT44(uVar13,uVar13);
  lVar3 = DAT_182671560;
  uVar20 = CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(DAT_182671560 + -0x628) = (uVar16 | uVar33) ^ uVar20;
  uVar9 = DAT_1826715b4;
  uVar36 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(lVar3 + -0x6d0) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar24) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0x1233038c)) ^ uVar20) ^ uVar36;
  uVar12 = DAT_18267170c;
  uVar22 = DAT_182671594;
  *(ulonglong *)(lVar3 + -0x898) = uVar16 - (CONCAT44(uVar7,DAT_18267157c) ^ 0x36e4c82abc06d44a);
  uVar24 = CONCAT44(uVar12,uVar12);
  uVar33 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar27 = uVar21 ^ *(ulonglong *)(lVar3 + -0xa88) ^ uVar24 ^ uVar32 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar27;
  uVar7 = DAT_182671588;
  uVar16 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar3 + -0x1d8) = (uVar24 ^ uVar27) >> (((byte)uVar22 ^ 0x38) & 0x3f) ^ uVar33;
  uVar28 = (ulonglong)DAT_182671570;
  *(int *)(lVar3 - (uVar16 ^ 0x12001314)) = *(int *)(lVar3 + -0x968) + -0x969b284;
  uVar21 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar16 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b0 ^ 0xaac63b69)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xcdd6ae04)) ^ uVar24) << 0x2a ^ uVar21;
  uVar27 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  uVar28 = (ulonglong)DAT_182671584;
  uVar16 = *(ulonglong *)(lVar3 - (uVar16 ^ 0x138cf277)) ^ uVar21 |
           *(ulonglong *)(lVar3 + -0x1d8) ^ uVar33;
  uVar21 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(lVar3 + -0xc08) = uVar16 ^ uVar27;
  uVar22 = DAT_182671580 ^ 0x588ba25b;
  *(ulonglong *)(lVar3 + -0x800) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x72e1213)) ^ uVar32) - uVar16 ^ uVar21;
  *(uint *)(lVar3 + -0x274) = uVar22 * (DAT_182671574 ^ 0xe6571f1b);
  uVar22 = DAT_18267158c;
  uVar32 = CONCAT44(DAT_18267187c,DAT_18267187c);
  local_res18 = (byte)uVar5;
  uVar16 = (ulonglong)DAT_18267158c;
  uVar24 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  uVar28 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a0 ^ 0x57b9c8b1)) ^
           *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x12330374)) ^ uVar32 ^ uVar27 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x270) = uVar28;
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar28 ^ uVar32) >> ((local_res18 ^ 0xa4) & 0x3f) ^ uVar24;
  uVar9 = DAT_1826715a8;
  uVar27 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x5a021880)) =
       (uVar32 ^ uVar28) << (((byte)uVar11 ^ 0xc3) & 0x3f) ^ uVar27;
  uVar37 = CONCAT44(DAT_182671890,DAT_182671890);
  *(ulonglong *)(lVar3 + -0x600) =
       (CONCAT44(uVar14,uVar22) ^ 0x2dac54db6f4b69f9) >> (((byte)uVar9 ^ 0xed) & 0x3f);
  uVar22 = DAT_182671894;
  *(ulonglong *)(lVar3 + -0x9f8) =
       (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar24 | uVar27 ^ *(ulonglong *)(lVar3 + -0x240)) ^ uVar37;
  uVar28 = CONCAT44(uVar22,uVar22);
  uVar24 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar3 + -0x400) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x6d0)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x12001938)) ^ uVar37) ^ uVar24;
  uVar7 = DAT_1826715b0;
  bVar17 = (byte)DAT_1826715b0;
  uVar34 = *(ulonglong *)(lVar3 - (uVar29 ^ 0xc5c193b5)) ^ uVar28 ^ uVar21 ^
           *(ulonglong *)(lVar3 + -0x628) ^ uVar20;
  uVar32 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar3 + -0x748) = uVar34;
  uVar12 = DAT_18267178c;
  lVar4 = DAT_182671560;
  uVar27 = ((ulonglong)uVar22 << 0x14 | (ulonglong)(uVar22 >> 0xc)) ^ uVar34 >> 0xc;
  uVar16 = (uVar34 ^ uVar28) << ((bVar17 ^ 0xe5) & 0x3f);
  *(ulonglong *)(lVar3 + -0x318) = uVar27 ^ uVar32;
  uVar13 = DAT_1826717e8;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x9e8) = uVar16 ^ uVar33;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xa0) = 0x675098306f465c15 - (uVar34 ^ uVar28);
  uVar12 = DAT_182671760;
  *(ulonglong *)(lVar4 + -0x8a8) = (uVar27 | uVar16) ^ uVar36;
  lVar3 = DAT_182671560;
  uVar27 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0x2800f61)) =
       (*(ulonglong *)(DAT_182671560 + -0x800) ^ uVar21) -
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xaac63579)) ^ uVar36) ^ uVar27;
  uVar12 = DAT_182671828;
  uVar16 = *(ulonglong *)(lVar3 + -0x400);
  uVar32 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar28 = CONCAT44(DAT_182671660,DAT_182671660);
  uVar29 = *(ulonglong *)(lVar3 - (uVar29 ^ 0xc5c1931d)) ^ uVar32 ^ uVar36 ^ uVar24 ^ uVar16;
  *(ulonglong *)(lVar3 + -0x610) = uVar29;
  uVar21 = (uVar29 ^ uVar32) >> ((local_res18 ^ 0x93) & 0x3f);
  bVar17 = (byte)DAT_182671584;
  *(ulonglong *)(lVar3 + -0x898) = uVar21 ^ uVar28;
  uVar28 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x548) = (uVar29 ^ uVar32) << ((bVar17 ^ 0x94) & 0x3f) ^ uVar23;
  uVar7 = DAT_1826715b0;
  uVar21 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x138cf187)) ^ uVar23 | uVar21;
  uVar28 = (ulonglong)DAT_1826715a0;
  uVar23 = CONCAT44(uVar2,DAT_1826715a0);
  *(ulonglong *)(lVar3 + -0xa88) = uVar21 ^ CONCAT44(uVar12,uVar12);
  uVar13 = DAT_18267168c;
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (uVar23 ^ 0x6bc809892cde1098) << (((byte)uVar7 ^ 0xd4) & 0x3f);
  uVar12 = DAT_182671620;
  uVar7 = DAT_18267158c;
  lVar3 = DAT_182671560;
  uVar16 = (uVar24 ^ uVar16) - (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(DAT_182671560 + -0x510));
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar16 ^ CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar2 = DAT_18267159c;
  uVar24 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar16 - uVar21 ^ uVar24;
  uVar12 = DAT_182671664;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a4 ^ 0x138cfd27)) ^ uVar33 |
       CONCAT44(uVar8,uVar2) ^ 0x3419767ed19e2324;
  uVar13 = DAT_1826718c8;
  uVar16 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671588 ^ 0x12001aa0)) ^ uVar30) +
           (CONCAT44(uVar25,uVar7) ^ 0xcce51717ed9a77dc);
  *(ulonglong *)(lVar3 + -0xc08) = uVar16 ^ CONCAT44(uVar12,uVar12);
  uVar2 = DAT_182671570;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0xcdd6a9bc)) = uVar21 - uVar16 ^ uVar23;
  uVar21 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x57b9c2b9)) =
       *(ulonglong *)(lVar3 + -0xbf0) ^ uVar21 ^ uVar27 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x9f8);
  uVar12 = DAT_1826716d4;
  uVar22 = DAT_182671590;
  lVar3 = DAT_182671560;
  uVar28 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671584 ^ 0x72e16b3)) ^ uVar21) >>
           (((byte)DAT_182671590 ^ 0xb0) & 0x3f);
  uVar16 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar28 ^ CONCAT44(DAT_1826716a4,DAT_1826716a4);
  lVar4 = DAT_182671560;
  uVar16 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0xf7eae9e9)) ^ uVar21) <<
           (((byte)DAT_18267157c ^ 0xbb) & 0x3f);
  uVar33 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar16 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x2800241)) = (uVar28 | uVar16) ^ uVar33;
  uVar12 = DAT_1826718c0;
  uVar16 = (*(ulonglong *)(lVar4 + -0xbf0) ^ uVar27) - (uVar26 ^ *(ulonglong *)(lVar4 + -0x670));
  *(ulonglong *)(lVar4 + -0x628) = uVar16 ^ CONCAT44(DAT_182671770,DAT_182671770);
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671594 ^ 0x10b30436)) =
       uVar16 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x5a021c10)) ^ uVar33) ^ uVar28;
  uVar21 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715b4 ^ 0x123302ec)) =
       -(uVar19 ^ *(ulonglong *)(lVar4 + -0x3b8)) - 0x11 ^ uVar21;
  uVar12 = DAT_182671830;
  uVar16 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar19 = (uVar21 ^ *(ulonglong *)(lVar4 + -0x748)) + (uVar33 ^ *(ulonglong *)(lVar4 + -0x6d0)) ^
           uVar16;
  *(ulonglong *)(lVar4 + -0xa0) = uVar19;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar30 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  uVar16 = uVar26 ^ uVar19 ^ uVar16 ^ *(ulonglong *)(lVar4 + -0x6b8) ^ uVar24;
  bVar17 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar4 + -0x800) = uVar16;
  local_a8 = (byte)uVar14;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671570 ^ 0xcdd6a364)) =
       (uVar26 ^ uVar16) >> ((bVar17 ^ 0xca) & 0x3f) ^ uVar30;
  uVar16 = (ulonglong)DAT_182671588;
  uVar27 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar4 + -0x610) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x800)) << ((local_a8 ^ 0x8e) & 0x3f) ^ uVar27;
  uVar12 = DAT_1826717d4;
  uVar16 = *(ulonglong *)(lVar4 - (uVar16 ^ 0x120016d0)) ^ uVar27 |
           uVar30 ^ *(ulonglong *)(lVar4 + -0x8a8);
  *(ulonglong *)(lVar4 + -0x898) = uVar16 ^ uVar20;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar21 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671568 ^ 0x30043025)) =
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar24) - uVar16 ^ uVar33;
  uVar22 = DAT_1826715a8;
  uVar19 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(lVar4 - (uVar21 ^ 0xaac63819)) =
       uVar19 ^ uVar28 ^ uVar23 ^ *(ulonglong *)(lVar4 + -0x318) ^ *(ulonglong *)(lVar4 + -0x270);
  uVar7 = DAT_1826715b4;
  uVar21 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar4 + -0x400) =
       (uVar19 ^ *(ulonglong *)(lVar4 + -0x5c8)) >> (((byte)DAT_182671590 ^ 0xb4) & 0x3f) ^ uVar21;
  uVar24 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  uVar16 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0xf7eaee31)) =
       (uVar19 ^ *(ulonglong *)(lVar4 + -0x5c8)) << (((byte)uVar7 ^ 0xbf) & 0x3f) ^ uVar24;
  uVar12 = DAT_182671680;
  uVar24 = uVar24 ^ *(ulonglong *)(lVar4 + -0x1d8) | uVar21 ^ *(ulonglong *)(lVar4 + -0x400);
  *(ulonglong *)(lVar4 + -0x9e8) =
       *(ulonglong *)(lVar4 - (uVar16 ^ 0x123303b4)) ^ uVar27 |
       CONCAT44(uVar2,uVar5) ^ 0x2e0fb33ff0d78932;
  uVar16 = (ulonglong)DAT_18267158c;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar21 = CONCAT44(DAT_182671720,DAT_182671720);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar24 ^ uVar27;
  uVar7 = _DAT_182671610;
  uVar19 = (ulonglong)_DAT_182671610;
  uVar2 = _DAT_182671610 >> 0x17;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267159c ^ 0x29fdefdb)) =
       (*(ulonglong *)(lVar4 - (uVar16 ^ 0x5a0219d8)) ^ uVar28) - uVar24 ^ uVar21;
  uVar12 = DAT_182671870;
  uVar28 = CONCAT44(uVar7,uVar7);
  local_68 = (byte)uVar31;
  uVar16 = *(ulonglong *)(lVar4 + -0x548) ^ uVar28 ^ uVar27 ^ uVar33 ^
           *(ulonglong *)(lVar4 + -0x2a0);
  *(ulonglong *)(lVar4 + -0x9f8) = uVar16;
  uVar13 = DAT_182671774;
  uVar7 = DAT_182671584;
  uVar27 = (uVar28 ^ uVar16) << ((local_68 ^ 0xb8) & 0x3f);
  uVar28 = ((ulonglong)uVar2 | uVar19 << 9) ^ uVar16 >> 0x17;
  *(ulonglong *)(lVar4 + -0x600) = uVar28 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671718;
  *(ulonglong *)(lVar4 + -0x1f0) = uVar27 ^ CONCAT44(uVar13,uVar13);
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar28 = uVar28 | uVar27;
  puVar35 = (ulonglong *)(DAT_182671560 + -0xa88);
  uVar27 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x548);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar28 ^ uVar29;
  uVar28 = (*puVar1 ^ uVar33) - uVar28;
  uVar20 = uVar21 ^ *puVar35 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0x898) ^ uVar20;
  uVar19 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar28 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x628) = uVar20;
  uVar16 = (uVar20 ^ uVar32) >> (((byte)uVar7 ^ 0x9b) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6d0) = uVar16 ^ uVar19;
  lVar4 = DAT_182671560;
  uVar19 = (ulonglong)DAT_182671568;
  uVar24 = (ulonglong)DAT_1826715ac;
  uVar20 = (uVar32 ^ uVar20) << (((byte)uVar22 ^ 0xf1) & 0x3f);
  *(int *)(lVar3 + -0x968) = 0x104c478d << ((byte)*(undefined4 *)(lVar3 + -0x910) & 0x1f);
  uVar12 = DAT_18267163c;
  uVar2 = DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0x748) = uVar20 ^ uVar30;
  uVar32 = (ulonglong)DAT_182671598;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xa0) = (uVar16 | uVar20) ^ uVar23;
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x30043d6d)) =
       CONCAT44(uVar14,uVar2) ^ 0x2e8c77c45d77ee8d | uVar28;
  uVar2 = DAT_1826717a8;
  uVar28 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar16 = (ulonglong)DAT_1826717a8;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x7bfff744)) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0xa88)) - (uVar23 ^ *(ulonglong *)(lVar4 + -0xa0)) ^ uVar28
  ;
  lVar3 = DAT_182671560;
  uVar19 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xe45dfda2)) =
       uVar19 ^ *(ulonglong *)(DAT_182671560 + -0xbf0) ^ uVar23 ^ uVar27 ^
       *(ulonglong *)(DAT_182671560 + -0xa0);
  *(ulonglong *)(lVar3 + -0x270) =
       (*(ulonglong *)(lVar3 + -0x6b8) >> 0x20 ^ uVar16) >> 0x14 ^ uVar33;
  uVar2 = DAT_1826715a4;
  uVar20 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar3 + -0x5c8) = (uVar19 ^ *(ulonglong *)(lVar3 + -0x6b8)) << 0xc ^ uVar20;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0x29fde343)) =
       (CONCAT44(uVar6,DAT_182671578) ^ 0xa84ed33a2de63219) << (((byte)uVar2 ^ 0xca) & 0x3f);
  uVar2 = DAT_182671614;
  uVar16 = CONCAT44(DAT_182671748,DAT_182671748);
  uVar20 = *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x28000fa)) ^ uVar33 |
           uVar20 ^ *(ulonglong *)(lVar3 + -0x5c8);
  uVar19 = (ulonglong)DAT_182671614;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar20 ^ CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar21 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(lVar3 + -0x400) = (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar27) - uVar20 ^ uVar16;
  uVar28 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671594 ^ 0x10b30f86)) ^ uVar21 ^ uVar28 ^
           uVar29 ^ *(ulonglong *)(lVar3 + -0x240);
  uVar20 = CONCAT44(DAT_182671704,DAT_182671704);
  *(ulonglong *)(lVar3 + -0x1d8) = uVar28;
  uVar12 = DAT_182671788;
  uVar16 = (ulonglong)DAT_182671590;
  uVar19 = (*(ulonglong *)(lVar3 - (uVar24 ^ 0x7bfffe34)) >> 0x20 ^ uVar19) >> 0x19;
  uVar28 = (uVar21 ^ uVar28) << ((local_b8 ^ 0xe) & 0x3f);
  *(ulonglong *)(lVar3 + -0x318) = uVar19 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar28 ^ uVar26;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar18;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x2800d69)) = (uVar28 | uVar19) ^ CONCAT44(uVar12,uVar12);
  return;
}



############ FUN_ 180eb58a0 size=3232 ############

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

void FUN_180eb58a0(void)

{
  longlong *plVar1;
  uint uVar2;
  longlong lVar3;
  ulonglong *puVar4;
  undefined8 uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  longlong *plVar22;
  undefined8 *puVar23;
  longlong *plVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  uint uVar30;
  ulonglong uVar31;
  longlong *plVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  undefined8 *puVar35;
  undefined8 *puVar36;
  ulonglong uVar37;
  longlong *plVar38;
  ulonglong uVar39;
  
  uVar8 = DAT_1826715b4;
  uVar13 = DAT_182671594;
  lVar6 = DAT_182671560;
  uVar21 = (ulonglong)DAT_182671594;
  uVar27 = (ulonglong)DAT_18267158c;
  uVar30 = DAT_182671594 - DAT_18267158c;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_182671bc4);
  uVar19 = *(uint *)(&DAT_182611e80 + DAT_182671bc4) ^ DAT_182671594;
  uVar25 = (ulonglong)DAT_182671594;
  plVar32 = (longlong *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0x10080870));
  plVar1 = (longlong *)(DAT_182671560 + -0xa38);
  DAT_1826715a0 = uVar30;
  *plVar1 = *plVar32 + 8;
  plVar24 = (longlong *)(lVar6 - ((ulonglong)uVar13 ^ 0x4663facd));
  *(longlong *)(lVar6 + -0x5f8) = *plVar24;
  *(undefined8 *)(lVar6 + -0x70) = *(undefined8 *)(lVar6 + -0xb78);
  plVar22 = (longlong *)(lVar6 - ((ulonglong)DAT_18267158c ^ 0x10080df8));
  *plVar1 = *plVar22;
  *(ulonglong *)(lVar6 + -0xa60) = CONCAT44(uVar30,uVar13) ^ 0xfda3bf5cdb7fcfae | 0x5183bf5cc85fcc0e
  ;
  lVar3 = *(longlong *)(lVar6 - ((ulonglong)uVar30 ^ 0x365be885));
  *(longlong *)(lVar6 + -0xb78) = lVar3;
  plVar38 = (longlong *)(lVar6 - (uVar25 ^ 0x4663f50d));
  *plVar38 = lVar3 + (CONCAT44(DAT_18267158c,uVar30) ^ 0x10080800365be8f4) * 8;
  *plVar32 = *plVar24 + (CONCAT44(uVar30,DAT_18267158c) ^ 0x365be8f510080801) * 8;
  *(undefined8 *)(lVar6 + -0xb78) = *(undefined8 *)(lVar6 + -0x70);
  *plVar24 = *(longlong *)(lVar6 + -0x5f8);
  uVar39 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar6 + -0x70) = *(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0x4663fb8d)) ^ uVar39;
  uVar16 = DAT_1826715a8;
  uVar26 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar30 ^ 0x365be305)) =
       CONCAT44(uVar30,uVar8) ^ *(ulonglong *)(lVar6 + -0x688) ^ 0x681328e348dccaab;
  *(longlong *)(lVar6 + -0x5f8) = *plVar1;
  uVar31 = CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar33 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  puVar23 = (undefined8 *)(lVar6 - ((ulonglong)uVar8 ^ 0xf400ea51));
  *(ulonglong *)(lVar6 - (uVar25 ^ 0x4663f7bd)) = *(ulonglong *)*puVar23 ^ uVar33 ^ uVar31;
  lVar3 = DAT_182671560;
  **(ulonglong **)(lVar6 + -0x220) = CONCAT44(uVar13,uVar30) ^ 0x3aa780e41db3bc88;
  *(int *)(lVar6 + -0x8c) = *(int *)(lVar6 + -0x344) * -0x69ef23dc;
  uVar17 = DAT_1826715b0;
  uVar34 = CONCAT44(DAT_182671710,DAT_182671710);
  uVar28 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xf400ec11)) =
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0x70) ^ uVar39) ^ uVar28 ^ uVar34;
  lVar6 = DAT_182671560;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x36ff6d09)) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0xfb1ae315)) ^ uVar31) +
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x748));
  uVar8 = DAT_1826715a0;
  uVar9 = DAT_182671598;
  uVar25 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar3 + -0x110) =
       *(ulonglong *)(lVar3 + -0x3b8) ^ uVar25 ^ uVar34 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0x748);
  lVar7 = DAT_182671560;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x70) ^ uVar39) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x36ff6eb9)) ^ uVar25 ^ uVar28;
  uVar10 = DAT_182671574;
  uVar31 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar7 + -0xb78) =
       *(longlong *)(lVar7 + -0x4a0) + (CONCAT44(uVar9,uVar8) ^ 0xc2ff8000365be8f1) * 8;
  plVar24 = (longlong *)(lVar7 + -0x880);
  *plVar1 = *plVar24 + 0x20;
  *(undefined8 *)(lVar7 + -0x220) = *(undefined8 *)(lVar7 - (uVar31 ^ 0x41e8bbb4));
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0x100809d8)) =
       (CONCAT44(_DAT_18267188c,_DAT_18267188c) ^ *(ulonglong *)(DAT_182671560 + -0x510)) -
       (CONCAT44(uVar17,uVar9) ^ 0x380ff79e5820ccb8);
  lVar7 = DAT_182671560;
  lVar3 = *plVar1;
  *(longlong *)(DAT_182671560 + -0x5f8) = lVar3;
  *(undefined8 *)(lVar6 + -0x450) = *(undefined8 *)(lVar7 + -0x220);
  *(longlong *)(lVar6 + -0x4a0) = lVar3;
  uVar18 = DAT_1826715b4;
  plVar32 = (longlong *)(lVar6 - ((ulonglong)uVar8 ^ 0x365be075));
  uVar31 = (ulonglong)DAT_1826715b4;
  *plVar32 = *(longlong *)(lVar6 + -0xab8);
  puVar35 = (undefined8 *)(lVar6 - (uVar31 ^ 0xf400e4d1));
  *puVar35 = *(undefined8 *)(DAT_182671560 - ((ulonglong)DAT_1826715ac ^ 0xfb1ae00d));
  uVar8 = DAT_182671568;
  puVar4 = (ulonglong *)*plVar24;
  *plVar1 = (longlong)puVar4;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x270) =
       CONCAT44(uVar18,uVar10) ^ CONCAT44(uVar10,DAT_18267158c) ^ 0xc5a05aad67566cdc;
  uVar11 = DAT_1826715b4;
  *(uint *)(lVar3 + -0x328) = (uVar16 ^ 0xbf51937c) - (DAT_18267158c ^ 0x22235c53);
  *(longlong *)(lVar3 + -0x220) = *(longlong *)(lVar3 + -0xb78);
  *(ulonglong *)(lVar3 + -0x5f8) =
       *(longlong *)(lVar3 + -0xb78) + (CONCAT44(uVar9,uVar11) ^ 0xc2ff8000f400efa8) * 8;
  uVar15 = DAT_1826715a4;
  puVar36 = (undefined8 *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0xc2ff8220));
  uVar31 = *(ulonglong *)*puVar36;
  uVar37 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x400) = uVar31;
  *plVar24 = *(longlong *)(lVar3 - ((ulonglong)uVar17 ^ 0x36ff6591)) +
             (CONCAT44(DAT_18267158c,uVar8) ^ 0x10080800b9323390) * 8;
  *puVar4 = uVar34 ^ uVar31;
  *puVar35 = *(undefined8 *)(DAT_182671560 - (uVar21 ^ 0x4663f875));
  lVar3 = DAT_182671560;
  *(longlong *)(DAT_182671560 + -0x220) = *plVar38;
  uVar9 = DAT_1826715a0;
  *plVar24 = *(longlong *)(lVar3 - (uVar37 ^ 0x4d9c8a1a));
  puVar35 = (undefined8 *)(lVar3 - ((ulonglong)uVar8 ^ 0xb9323669));
  uVar31 = CONCAT44(uVar13,DAT_1826715b0);
  *puVar35 = *(undefined8 *)(lVar3 - (uVar26 ^ 0xfb1ae67d));
  puVar4 = (ulonglong *)*plVar24;
  *(ulonglong *)(lVar3 + -0xb78) =
       *(longlong *)(lVar3 - ((ulonglong)uVar15 ^ 0x4d9c849a)) + (uVar31 ^ 0x4663f0f536ff6fa8) * 8;
  uVar5 = **(undefined8 **)(lVar3 + -0x5f8);
  *(ulonglong **)(lVar3 + -0x220) = puVar4 + 1;
  uVar31 = (ulonglong)DAT_1826715b4;
  *(undefined8 *)(lVar3 + -0x6d0) = uVar5;
  *(int *)(lVar3 + -0x274) =
       *(int *)(lVar3 - (uVar31 ^ 0xf400e8fd)) >> (((byte)uVar9 ^ 0xf4) & 0x1f);
  puVar29 = (ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x365bee25));
  *puVar4 = uVar34 ^ *puVar29;
  *(ulonglong *)(lVar3 + -0x8a8) = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x70) ^ uVar39) ^ uVar28;
  *plVar22 = *(longlong *)(lVar3 - ((ulonglong)uVar8 ^ 0xb93231b1));
  *puVar36 = *(undefined8 *)(lVar3 + -0xb78);
  puVar36 = (undefined8 *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0xc2ff85f8));
  *(undefined8 *)(lVar3 + -0xb78) = *puVar36;
  *(undefined8 *)(lVar3 - (uVar26 ^ 0xfb1ae1a5)) = *(undefined8 *)(lVar3 + -0x220);
  uVar14 = DAT_18267159c;
  uVar11 = DAT_182671580;
  uVar9 = DAT_182671570;
  uVar31 = (ulonglong)DAT_182671570;
  uVar26 = (ulonglong)DAT_18267157c;
  *(longlong *)(lVar3 - ((ulonglong)DAT_182671580 ^ 0xa9ef02d4)) = *(longlong *)(lVar3 + -0x5f8) + 8
  ;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar9 ^ 0xf4812685)) = *(undefined8 *)*puVar23;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715ac ^ 0xfb1ae1a5)) =
       *(longlong *)(lVar3 + -0xb78) + (CONCAT44(uVar10,uVar14) ^ 0x41e8b0cc04e51ba3) * 8;
  **(ulonglong **)(lVar3 + -0xb78) = *(ulonglong *)(lVar3 - (uVar27 ^ 0x10080d48)) ^ uVar34;
  *(undefined8 *)(lVar3 + -0x6f0) = *(undefined8 *)(lVar3 + -0x5f8);
  lVar6 = DAT_182671560;
  *(int *)(lVar3 - (uVar26 ^ 0x40802798)) =
       *(int *)(lVar3 - (uVar31 ^ 0xf4812089)) - *(int *)(lVar3 + -0x774);
  uVar5 = *(undefined8 *)(lVar3 + -0x220);
  *(undefined8 *)(lVar3 + -0x220) = *(undefined8 *)(lVar3 + -0x6f0);
  *(undefined8 *)(lVar3 + -0x5f8) = uVar5;
  uVar20 = DAT_182671590;
  lVar3 = DAT_182671560;
  uVar26 = (ulonglong)DAT_182671590;
  *(undefined8 *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xccb0eeb1)) = uVar5;
  *(undefined8 *)(lVar6 - ((ulonglong)DAT_1826715a0 ^ 0x365beecd)) =
       **(undefined8 **)(lVar3 - ((ulonglong)DAT_182671598 ^ 0xc2ff86f0));
  **(ulonglong **)(lVar6 - (uVar21 ^ 0x4663f2d5)) = *(ulonglong *)(lVar6 + -0x638) ^ uVar34;
  *(uint *)(lVar6 + -0x274) = uVar9 ^ 0x7030489f | *(uint *)(lVar6 + -0x374);
  *puVar35 = *(undefined8 *)(lVar6 + -0x178);
  uVar9 = DAT_1826715b0;
  *(ulonglong *)(lVar6 + -0xc08) =
       (CONCAT44(uVar15,uVar20) ^ 0xf3ce6cf49962acd8) << (((byte)DAT_1826715b0 ^ 0xb5) & 0x3f);
  uVar21 = (ulonglong)DAT_182671578;
  *(undefined8 *)(lVar6 + -0x6f0) = *(undefined8 *)(lVar6 - (uVar21 ^ 0xed74138d));
  *(undefined8 *)(lVar6 + -0xab8) = *(undefined8 *)(lVar6 + -0x5f8);
  uVar31 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a0 ^ 0x365be855)) =
       (CONCAT44(uVar18,uVar16) ^ 0x9a37d06497a591ec) - *(longlong *)(lVar6 + -0x548);
  *(longlong *)(lVar6 + -0x5f8) = *(longlong *)(lVar6 + -0x6f0);
  *(ulonglong *)(lVar6 + -0x6f0) =
       *(longlong *)(lVar6 + -0x6f0) + (CONCAT44(uVar20,uVar20) ^ 0xccb0e841ccb0e840) * 8;
  *(ulonglong *)(lVar6 + -0x800) = *(ulonglong *)*puVar36 ^ uVar34;
  *(ulonglong *)*plVar1 = CONCAT44(uVar14,uVar11) ^ 0xc6fc76c9c2649bee;
  *(ulonglong *)(lVar6 + -0x9f8) = *puVar29 + 0x6531234e5cd2fbe9;
  *(ulonglong **)(lVar6 + -0x5f8) =
       *(ulonglong **)(lVar6 + -0xab8) + (CONCAT44(uVar17,uVar9) ^ 0x36ff6fa936ff6fa8);
  **(ulonglong **)(lVar6 + -0xab8) = *(ulonglong *)(lVar6 + -0x800) ^ uVar33;
  *(ulonglong *)(lVar6 + -0x610) =
       CONCAT44(uVar13,uVar16) ^ 0xb274375bf0cd47db | uVar25 ^ *(ulonglong *)(lVar6 + -0x110);
  *plVar1 = *(longlong *)(lVar6 - (uVar31 ^ 0x365bed0d));
  *puVar36 = *(undefined8 *)(lVar6 + -0x6f0);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x10080e70)) =
       CONCAT44(DAT_18267158c,uVar8) ^ 0xa391cfe29e904e4d | *(ulonglong *)(lVar6 + -0x800);
  uVar8 = DAT_182671584;
  uVar31 = (ulonglong)DAT_182671584;
  *(longlong *)(lVar6 + -0x6f0) = *plVar1;
  *(undefined8 *)(lVar6 - (uVar31 ^ 0x4d6786c7)) = *(undefined8 *)(lVar6 + -0x5f8);
  uVar12 = DAT_182671588;
  *(ulonglong *)(lVar6 + -0x5c8) =
       *(ulonglong *)(lVar6 - (uVar37 ^ 0x4d9c8962)) ^ CONCAT44(uVar8,uVar14) ^ 0xe503e44935a9bce7;
  *(ulonglong *)(lVar6 - (uVar21 ^ 0xed741ccd)) =
       *plVar1 + (CONCAT44(uVar12,DAT_1826715b4) ^ 0x10080a5cf400efa8) * 8;
  puVar4 = (ulonglong *)*plVar24;
  *(ulonglong *)(lVar6 + -0xa60) =
       **(ulonglong **)(lVar6 - ((ulonglong)DAT_182671598 ^ 0xc2ff8a38)) ^ uVar34;
  uVar8 = DAT_1826715ac;
  *puVar4 = CONCAT44(uVar10,uVar11) ^ 0xd7ba838884f6e0e0;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671568 ^ 0xb9323b11)) =
       *(longlong *)(lVar6 + -0x6f0) + (CONCAT44(uVar8,DAT_18267156c) ^ 0xfb1ae45d0280028b) * 8;
  *(longlong *)(lVar6 + -0xbf0) =
       *(longlong *)(lVar6 + -0x6d0) - *(longlong *)(lVar6 - (uVar27 ^ 0x10080e38));
  uVar20 = DAT_1826715a0 + uVar20;
  **(ulonglong **)(lVar6 + -0x6f0) = uVar33 ^ *(ulonglong *)(lVar6 + -0xa60);
  DAT_18267158c = uVar20;
  *plVar1 = *plVar32;
  *(undefined8 *)(lVar6 - ((ulonglong)uVar20 ^ 0x30cd9b6)) = *(undefined8 *)(lVar6 + -0x5f8);
  *(longlong *)(lVar6 + -0x5f8) = *plVar1;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xccb0eef9)) =
       *(ulonglong *)(lVar6 + -0x670) | *(ulonglong *)(lVar6 + -0x6d0);
  lVar3 = *plVar24;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar19 * 4) = uVar2 ^ uVar30;
  *plVar1 = lVar3;
  return;
}



############ FUN_ 180e70600 size=5481 ############

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

void FUN_180e70600(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  byte *pbVar4;
  uint uVar5;
  undefined8 uVar6;
  longlong lVar7;
  longlong lVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  byte bVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  
  uVar17 = DAT_1826715b4;
  uVar10 = DAT_1826715a8;
  uVar12 = DAT_182671578;
  lVar7 = DAT_182671560;
  uVar35 = (ulonglong)DAT_1826715b4;
  uVar38 = (ulonglong)DAT_182671578;
  uVar33 = (ulonglong)DAT_1826715a8;
  uVar42 = DAT_182671578 * DAT_1826715a8;
  uVar31 = (DAT_1826715b4 << 0x10 | DAT_1826715b4 & 0xff00) << 8 | DAT_1826715b4 >> 8 & 0xff00 |
           DAT_1826715b4 >> 0x18;
  uVar5 = *(uint *)(&DAT_182611e80 + DAT_182671afc);
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_182671afc) ^ DAT_182671578;
  uVar40 = (ulonglong)DAT_1826715a8;
  uVar37 = (ulonglong)DAT_1826715b4;
  uVar28 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x628);
  uVar34 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar46 = (ulonglong)uVar42;
  DAT_18267159c = uVar42;
  DAT_1826715a4 = uVar31;
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (CONCAT44(DAT_182671790,DAT_182671790) ^ *puVar1) -
       (*(ulonglong *)(DAT_182671560 + -0x240) ^ uVar28) ^ uVar34;
  uVar9 = DAT_182671750;
  puVar21 = (ulonglong *)(lVar7 - (uVar33 ^ 0xfb1ae4fd));
  uVar36 = CONCAT44(_DAT_182671618,_DAT_182671618);
  uVar47 = CONCAT44(DAT_182671628,DAT_182671628);
  uVar29 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar7 + -0x510) =
       (*puVar21 ^ uVar34) - (uVar36 ^ *(ulonglong *)(lVar7 + -0x610)) ^ uVar47;
  *(ulonglong *)(lVar7 + -0x3b8) =
       (CONCAT44(DAT_182671688,DAT_182671688) ^ *(ulonglong *)(lVar7 + -0xbf0)) +
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar7 + -0x1d8)) ^ uVar29;
  uVar9 = DAT_182671788;
  lVar8 = DAT_182671560;
  uVar39 = (ulonglong)uVar31;
  uVar23 = (CONCAT44(uVar17,uVar31) ^ 0xca36c5f4f806a9fe) +
           (CONCAT44(uVar12,uVar42) ^ 0xb1e2ef313fad9383);
  uVar34 = *(ulonglong *)(DAT_182671560 + -0x610);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x400);
  *(ulonglong *)(lVar7 + -0x5c8) = uVar23;
  uVar48 = CONCAT44(uVar9,uVar9);
  *puVar2 = (uVar36 ^ uVar34) - (*(ulonglong *)(lVar8 - (uVar40 ^ 0xfb1ae7e5)) ^ uVar29) ^ uVar48;
  uVar11 = DAT_182671850;
  uVar9 = DAT_1826717a4;
  uVar40 = (ulonglong)DAT_182671850;
  *(ulonglong *)(lVar8 + -0x80) = CONCAT44(uVar42,uVar10) ^ 0xb520d61a0fb3c6f5 | uVar23;
  lVar7 = DAT_182671560;
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar43 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  puVar32 = (ulonglong *)(lVar8 - (uVar37 ^ 0xf400eae1));
  *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xa9ef0104)) =
       CONCAT44(uVar9,uVar9) ^ uVar43 ^ uVar34 ^ *puVar32 ^ *(ulonglong *)(DAT_182671560 + -0xc08);
  uVar9 = DAT_1826718b0;
  puVar3 = (ulonglong *)(lVar7 + -0x1f0);
  uVar23 = CONCAT44(DAT_182671888,DAT_182671888);
  puVar24 = (ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0xfb1aedb5));
  *puVar24 = ((ulonglong)(uVar11 >> 0x10) | uVar40 << 0x10) ^ *puVar3 >> 0x10 ^ uVar23;
  lVar7 = DAT_182671560;
  uVar40 = CONCAT44(uVar9,uVar9);
  bVar26 = (byte)uVar10;
  *(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x15f6521a)) =
       (uVar34 ^ *puVar3) << ((bVar26 ^ 0x6d) & 0x3f) ^ uVar40;
  uVar9 = DAT_182671620;
  uVar36 = uVar40 ^ *(ulonglong *)(lVar7 + -0x638) | uVar23 ^ *(ulonglong *)(lVar7 + -0x9e8);
  uVar30 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar40 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar7 + -0x898) = uVar36 ^ uVar30;
  uVar14 = DAT_1826717d0;
  *puVar1 = (uVar43 ^ *(ulonglong *)(lVar7 + -0xc08)) -
            (*(ulonglong *)(lVar7 - ((ulonglong)uVar42 ^ 0x15f65222)) ^ CONCAT44(uVar9,uVar9)) ^
            uVar40;
  uVar9 = DAT_1826716fc;
  lVar7 = DAT_182671560;
  uVar23 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (*(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x3f8084a2)) ^ uVar40) - uVar36 ^ uVar23;
  uVar40 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar7 + -0x610) =
       (CONCAT44(uVar31,uVar17) ^ 0x5610ff0b0bff105b) -
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar7 + -0x670)) ^ uVar40;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x3f80820a)) =
       CONCAT44(uVar42,uVar17) ^ 0x380c7140f0642bda | CONCAT44(uVar31,uVar10) ^ 0x6971ec482971a02c;
  uVar36 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar40 = (uVar40 ^ *(ulonglong *)(lVar7 + -0x610)) + (uVar30 ^ *(ulonglong *)(lVar7 + -0x898)) ^
           uVar36;
  *(ulonglong *)(lVar7 + -0x5c8) = uVar40;
  uVar9 = DAT_1826717c4;
  *(ulonglong *)(lVar7 + -0x548) = uVar34 ^ *puVar3 ^ 0xc9400484cf06ad1f;
  uVar34 = CONCAT44(uVar9,uVar9);
  puVar22 = (ulonglong *)(lVar7 - (uVar39 ^ 0xa9ef091c));
  *puVar22 = uVar34 ^ uVar40 ^ uVar36 ^ *(ulonglong *)(DAT_182671560 + -0x510) ^ uVar47;
  lVar7 = DAT_182671560;
  bVar19 = (byte)uVar12;
  *(ulonglong *)(DAT_182671560 + -0x638) = (CONCAT44(uVar10,uVar42) ^ 0x24f25cad3b8d63df) - *puVar32
  ;
  uVar40 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(lVar7 + -0xc08) =
       (uVar34 ^ *(ulonglong *)(lVar7 + -0x9e8)) >> ((bVar19 ^ 0xaa) & 0x3f) ^ uVar40;
  uVar45 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *puVar1 = (uVar34 ^ *(ulonglong *)(lVar7 + -0x9e8)) << ((bVar19 ^ 0xaa) & 0x3f) ^ uVar45;
  puVar41 = (ulonglong *)(lVar7 - (uVar46 ^ 0x15f6520a));
  puVar32 = (ulonglong *)(lVar7 - (uVar33 ^ 0xfb1ae4dd));
  *puVar32 = uVar45 ^ *puVar41 | uVar36 ^ *(ulonglong *)(lVar7 + -0x5c8);
  uVar34 = *puVar1;
  uVar49 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar7 + -0x898) =
       (uVar40 ^ *(ulonglong *)(lVar7 + -0xc08) | uVar45 ^ uVar34) ^ uVar49;
  lVar8 = DAT_182671560;
  *(ulonglong *)(lVar7 - (uVar39 ^ 0xa9ef06e4)) =
       (uVar45 ^ uVar34) << ((*(byte *)(lVar7 - (uVar46 ^ 0x15f65dca)) ^ (byte)uVar9) & 0x3f);
  uVar40 = CONCAT44(DAT_182671794,DAT_182671794);
  *puVar3 = (*(ulonglong *)(lVar8 - (uVar46 ^ 0x15f65132)) ^ uVar47) -
            (*(ulonglong *)(lVar8 - (uVar35 ^ 0xf400e731)) ^ uVar49) ^ uVar40;
  uVar9 = _DAT_1826715e0;
  uVar43 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar34 = uVar43 ^ uVar23 ^ *puVar21 ^ uVar48 ^ *puVar2;
  *(ulonglong *)(lVar8 + -0x548) = uVar34;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar8 + -0x638) = (uVar34 ^ uVar43) >> ((bVar26 ^ 0x7d) & 0x3f) ^ uVar37;
  bVar27 = (byte)uVar17;
  *(undefined4 *)(lVar8 - (uVar39 ^ 0xa9ef0380)) = 0xcea7d730;
  uVar9 = DAT_1826717f8;
  uVar34 = (uVar43 ^ *(ulonglong *)(lVar8 + -0x548)) << ((bVar27 ^ 0x89) & 0x3f);
  *(ulonglong *)(lVar8 + -0x5c8) = uVar34 ^ CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar43 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar8 + -0x80) = (uVar34 | uVar37 ^ *(ulonglong *)(lVar8 + -0x638)) ^ uVar43;
  puVar25 = (ulonglong *)(lVar8 - (uVar39 ^ 0xa9ef0074));
  uVar47 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(lVar8 - (uVar33 ^ 0xfb1ae855)) =
       (uVar23 ^ *(ulonglong *)(lVar8 + -0xa0)) - (uVar43 ^ *puVar25) ^ uVar47;
  uVar9 = DAT_182671820;
  uVar37 = CONCAT44(DAT_182671740,DAT_182671740);
  uVar34 = *puVar3;
  uVar23 = uVar37 ^ uVar43 ^ uVar40 ^ uVar34 ^ *(ulonglong *)(lVar8 + -0x80);
  *(ulonglong *)(lVar8 + -0x9e8) = uVar23;
  uVar43 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar8 + -0x610) = (uVar23 ^ uVar37) >> ((bVar19 ^ 0xb0) & 0x3f) ^ uVar43;
  lVar7 = DAT_182671560;
  puVar44 = (ulonglong *)(lVar8 - (uVar35 ^ 0xf400e641));
  uVar23 = (uVar37 ^ *puVar44) << ((bVar27 ^ 0xaf) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar23 ^ CONCAT44(DAT_182671760,DAT_182671760);
  uVar14 = DAT_1826716dc;
  *puVar2 = (CONCAT44(uVar12,uVar31) ^ 0x65df198a90dafaad) -
            (uVar47 ^ *(ulonglong *)(lVar7 + -0xc08));
  uVar18 = DAT_182671884;
  uVar9 = DAT_182671568;
  uVar48 = CONCAT44(uVar14,uVar14);
  uVar23 = *(ulonglong *)(lVar7 - (uVar46 ^ 0x15f65232)) ^ uVar43 | uVar23;
  *(ulonglong *)(lVar7 + -0x548) = uVar23 ^ uVar48;
  uVar37 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 - (uVar38 ^ 0x3f8084b2)) = (uVar40 ^ uVar34) - uVar23 ^ uVar37;
  uVar10 = DAT_182671860;
  puVar21 = (ulonglong *)(lVar7 - (uVar33 ^ 0xfb1ae275));
  uVar23 = (ulonglong)DAT_182671860;
  uVar40 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar7 + -0x5c8) =
       (CONCAT44(uVar9,DAT_182671570) ^ 0x3789fdf886832819) + (uVar45 ^ *puVar21);
  uVar9 = DAT_18267173c;
  uVar34 = uVar47 ^ uVar49 ^ *(ulonglong *)(lVar7 + -0xc08) ^ uVar40 ^
           *(ulonglong *)(lVar7 + -0x898);
  *(ulonglong *)(lVar7 + -0xa0) = uVar34;
  uVar43 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar7 + -0x80) =
       ((ulonglong)(uVar10 >> 0x16) | uVar23 << 10) ^ uVar34 >> 0x16 ^ uVar43;
  uVar35 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *puVar24 = (*(ulonglong *)(lVar7 - (uVar38 ^ 0x3f80822a)) ^ uVar40) << ((bVar26 ^ 0x77) & 0x3f) ^
             uVar35;
  uVar15 = DAT_1826715a0;
  uVar34 = *(ulonglong *)(lVar7 + -0xc08);
  uVar23 = *(ulonglong *)(lVar7 + -0x638);
  uVar35 = *puVar25 ^ uVar43 | uVar35 ^ *puVar44;
  uVar43 = CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar40 = uVar35 ^ uVar43;
  *puVar2 = uVar40;
  uVar33 = CONCAT44(DAT_182671840,DAT_182671840);
  uVar45 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar7 + -0x610) = (uVar47 ^ uVar34) - uVar35 ^ uVar33;
  uVar35 = uVar23 ^ uVar40 ^ uVar45 ^ uVar43 ^ uVar37;
  uVar23 = CONCAT44(_DAT_182671610,_DAT_182671610);
  *(ulonglong *)(lVar7 + -0x5c8) = uVar35;
  uVar10 = DAT_1826715b0;
  uVar34 = (uVar35 ^ uVar45) >> (((byte)uVar42 ^ 0xc) & 0x3f);
  uVar50 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar7 + -0x898) = uVar34 ^ uVar23;
  uVar18 = DAT_182671784;
  uVar9 = DAT_182671568;
  uVar23 = (uVar35 ^ uVar45) << (((byte)uVar10 ^ 0xc3) & 0x3f);
  bVar19 = (byte)DAT_18267156c;
  *(ulonglong *)(lVar7 + -0xa0) = uVar23 ^ uVar50;
  uVar14 = DAT_182671588;
  uVar49 = CONCAT44(uVar18,uVar18);
  *puVar32 = (uVar23 | uVar34) ^ uVar49;
  *puVar22 = (CONCAT44(uVar42,uVar9) ^ 0xeaaf838611c485dd) << ((bVar19 ^ 0x9d) & 0x3f);
  uVar9 = _DAT_1826716c0;
  uVar35 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  uVar23 = (*(ulonglong *)(lVar7 + -0x638) ^ uVar37) - (uVar49 ^ *(ulonglong *)(lVar7 + -0x80)) ^
           uVar35;
  *(ulonglong *)(lVar7 + -0xc08) = uVar23;
  uVar10 = DAT_182671598;
  uVar40 = CONCAT44(uVar9,uVar9);
  uVar48 = *(ulonglong *)(lVar7 + -0x548) ^ *(ulonglong *)(lVar7 + -0x610) ^ uVar40 ^ uVar33 ^
           uVar48;
  uVar45 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar7 + -0x510) = uVar48;
  uVar37 = (uVar48 ^ uVar40) >> ((bVar27 ^ 0xa5) & 0x3f);
  *puVar2 = uVar37 ^ uVar45;
  uVar34 = (uVar48 ^ uVar40) << (((byte)uVar42 ^ 0x16) & 0x3f);
  *puVar1 = uVar34 ^ CONCAT44(DAT_1826715f4,DAT_1826715f4);
  lVar7 = DAT_182671560;
  uVar37 = uVar37 | uVar34;
  uVar34 = *(ulonglong *)(DAT_182671560 + -0x610);
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       -0x21115e3e25f6e660 - (CONCAT44(uVar14,uVar12) ^ 0xa0d3d136490d7568);
  uVar14 = DAT_1826717dc;
  uVar43 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar47 = uVar37 ^ uVar43;
  *(ulonglong *)(lVar7 + -0x898) = uVar47;
  uVar9 = DAT_1826715cc;
  uVar46 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x9e8) = (uVar34 ^ uVar33) - uVar37 ^ uVar46;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar47 = uVar37 ^ uVar43 ^ uVar23 ^ uVar35 ^ uVar47;
  uVar43 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar7 + -0x638) = uVar47;
  uVar9 = DAT_18267170c;
  bVar19 = (byte)DAT_1826715b0;
  *(ulonglong *)(lVar7 + -0x548) = (uVar47 ^ uVar37) >> (((byte)uVar10 ^ 0x19) & 0x3f) ^ uVar43;
  uVar34 = CONCAT44(uVar9,uVar9);
  *puVar3 = (uVar47 ^ uVar37) << ((bVar19 ^ 0xf6) & 0x3f) ^ uVar34;
  uVar13 = DAT_182671580;
  uVar47 = CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar23 = (ulonglong)DAT_182671580;
  uVar48 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_18267156c ^ 0x280079a)) =
       (*(ulonglong *)(lVar7 - (uVar39 ^ 0xa9ef05bc)) ^ uVar43 |
       *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671590 ^ 0x490285ad)) ^ uVar34) ^ uVar47;
  uVar9 = DAT_1826715c8;
  uVar10 = DAT_182671570;
  uVar43 = (ulonglong)DAT_182671570;
  uVar37 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar34 = (*(ulonglong *)(lVar7 + -0xc08) ^ uVar35) - (*(ulonglong *)(lVar7 + -0x6b8) ^ uVar37);
  *(ulonglong *)(lVar7 + -0x5c8) = uVar34 ^ CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar35 = (ulonglong)DAT_18267158c;
  uVar33 = CONCAT44(uVar9,uVar9);
  *puVar2 = uVar34 - (*(ulonglong *)(lVar7 - (uVar23 ^ 0xf000e119)) ^ uVar47) ^ uVar33;
  *(ulonglong *)(lVar7 - (uVar35 ^ 0x30cd71e)) =
       CONCAT44(uVar10,uVar17) ^ 0xa3be39cdb4acf6b7 | *(ulonglong *)(lVar7 + -0xa0) ^ uVar50;
  uVar34 = (CONCAT44(DAT_1826716e4,DAT_1826716e4) ^ *(ulonglong *)(lVar7 + -0x688)) +
           (*(ulonglong *)(lVar7 - (uVar48 ^ 0x4d678ebf)) ^ uVar28);
  uVar50 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar7 + -0x610) = uVar34 ^ uVar37;
  uVar16 = DAT_1826715ac;
  uVar39 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar7 + -0x898) = (*(ulonglong *)(lVar7 + -0x510) ^ uVar47) - uVar34 ^ uVar50;
  lVar8 = DAT_182671560;
  uVar47 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar28 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar7 + -0x638) =
       *(ulonglong *)(lVar7 - (uVar38 ^ 0x3f808b62)) ^ uVar47 ^ uVar46 ^ uVar49 ^
       *(ulonglong *)(lVar7 + -0x80);
  uVar11 = DAT_182671574;
  puVar22 = (ulonglong *)(lVar7 - (uVar35 ^ 0x30cd70e));
  uVar34 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar8 - (uVar43 ^ 0xf4812685)) =
       (uVar47 ^ *puVar22) >> (((byte)uVar16 ^ 0x7c) & 0x3f) ^ uVar28;
  *puVar3 = CONCAT44(uVar11,uVar13) ^ *(ulonglong *)(lVar8 + -0x638) ^ uVar47 ^ 0x673743eda1887aee;
  uVar23 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar8 + -0xc08) =
       (*(ulonglong *)(lVar8 - (uVar34 ^ 0x41e8b6f4)) ^ uVar47) << ((bVar26 ^ 0x42) & 0x3f) ^ uVar23
  ;
  uVar11 = DAT_182671590;
  uVar47 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar8 + -0x5c8) =
       (*(ulonglong *)(lVar8 - (uVar47 ^ 0x49028855)) ^ uVar23 |
       *(ulonglong *)(lVar8 + -0x548) ^ uVar28) ^ uVar30;
  uVar13 = DAT_182671594;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_18267157c ^ 0x4080206c)) =
       CONCAT44(uVar17,uVar31) ^ *(ulonglong *)(lVar8 + -0x610) ^ uVar37 ^ 0x624aa284a78e6a3a;
  uVar34 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *puVar41 = (*(ulonglong *)(lVar8 - (uVar48 ^ 0x4d678517)) ^ uVar46) -
             (*(ulonglong *)(lVar8 - (uVar48 ^ 0x4d678f47)) ^ uVar29) ^ uVar34;
  *(ulonglong *)(lVar8 - (uVar38 ^ 0x3f80879a)) =
       (CONCAT44(uVar42,uVar31) ^ 0x3e423a646cbb6cc2) + (uVar50 ^ *(ulonglong *)(lVar8 + -0x898));
  uVar9 = DAT_18267167c;
  uVar37 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar13 ^ 0x421da5af)) =
       (uVar34 ^ *puVar21) - (uVar30 ^ *(ulonglong *)(lVar8 + -0x5c8)) ^ uVar37;
  uVar14 = DAT_182671758;
  uVar34 = *(ulonglong *)(lVar8 + -0x5c8);
  uVar23 = (CONCAT44(uVar12,uVar12) ^ 0xc07f7d75c07f7d79) -
           (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar8 + -0x6d0));
  *puVar3 = uVar23 ^ CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar18 = DAT_182671878;
  uVar35 = CONCAT44(uVar14,uVar14);
  *puVar22 = (uVar30 ^ uVar34) + uVar23 ^ uVar35;
  lVar7 = DAT_182671560;
  uVar43 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0xf000e141)) =
       *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xfb1ae265)) ^ uVar43 ^ uVar35 ^ *puVar2 ^ uVar33;
  uVar9 = DAT_1826716a4;
  uVar23 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar7 + -0xc08) =
       (*(ulonglong *)(lVar7 + -0x548) ^ uVar43) >> (((byte)DAT_18267156c ^ 0x8f) & 0x3f) ^ uVar23;
  lVar7 = DAT_182671560;
  uVar34 = CONCAT44(uVar9,uVar9);
  pbVar4 = (byte *)(DAT_182671560 + -0x548);
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar13 ^ 0x421da067)) ^ uVar43) <<
       (((byte)DAT_182671588 ^ 0x21) & 0x3f) ^ uVar34;
  *(longlong *)(lVar7 - ((ulonglong)DAT_1826715b0 ^ 0xaac63e69)) =
       -0x74c28306134c3130 << ((*pbVar4 ^ (byte)uVar18) & 0x3f);
  uVar34 = *(ulonglong *)(lVar7 + -0xa0) ^ uVar34 | *(ulonglong *)(lVar7 + -0xc08) ^ uVar23;
  uVar43 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(lVar7 + -0x9e8) = uVar34 ^ CONCAT44(DAT_1826718bc,DAT_1826718bc);
  bVar19 = (byte)DAT_182671568;
  *(ulonglong *)(lVar7 + -0x510) = (*puVar2 ^ uVar33) - uVar34 ^ uVar43;
  uVar28 = (ulonglong)DAT_1826715a0;
  uVar23 = CONCAT44(uVar10,DAT_1826715a0);
  uVar35 = (ulonglong)DAT_18267157c;
  *puVar1 = *(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0x49028cc5)) ^ uVar37 ^ uVar50 ^ uVar45 ^
            *(ulonglong *)(lVar7 + -0x80);
  lVar7 = DAT_182671560;
  uVar34 = *puVar1;
  *puVar3 = (uVar23 ^ 0xbcd308f388dfe2f2) + 0x1bf506ec29922736;
  *(ulonglong *)(lVar7 - (uVar35 ^ 0x40802504)) =
       (uVar34 ^ uVar45) >> ((bVar19 ^ 0x89) & 0x3f) ^ uVar40;
  uVar9 = _DAT_1826715d8;
  *(ulonglong *)(lVar7 + -0x638) = 0xf21fba4d957d936a >> ((bVar19 ^ 0xae) & 0x3f);
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar7 - (uVar47 ^ 0x49028115)) = (*puVar1 ^ uVar45) << 0x1b ^ uVar34;
  uVar35 = CONCAT44(DAT_182671800,DAT_182671800);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar13 ^ 0x421da697)) =
       (*(ulonglong *)(lVar7 + -0x548) ^ uVar34 | *(ulonglong *)(lVar7 + -0x5c8) ^ uVar40) ^ uVar35;
  uVar9 = DAT_18267186c;
  uVar34 = *(ulonglong *)(lVar7 + -0x3b8);
  *(ulonglong *)(lVar7 + -0xa0) = CONCAT44(uVar15,uVar11) ^ uVar34 ^ uVar35 ^ 0x139b7d6304d56719;
  uVar40 = (uVar37 ^ *(ulonglong *)(lVar7 + -0x80)) - (uVar34 ^ uVar35);
  uVar23 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar7 + -0xc08) = uVar40 ^ CONCAT44(uVar9,uVar9);
  uVar6 = *(undefined8 *)(lVar7 + -0x638);
  *puVar2 = *(ulonglong *)(lVar7 + -0x510) ^ uVar23 ^ uVar34 ^ uVar35 ^ uVar43;
  *(ulonglong *)(lVar7 - (uVar28 ^ 0x97eaa2f8)) = uVar40 << ((byte)uVar6 & 0x3f);
  uVar34 = *puVar2;
  *puVar3 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_182671598 ^ 0xc2ff8400)) ^ uVar23) >>
            (((byte)uVar13 ^ 0x38) & 0x3f) ^ uVar36;
  *puVar1 = (uVar23 ^ uVar34) << 0x29 ^ CONCAT44(DAT_18267178c,DAT_18267178c);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar5 ^ uVar42) * 4) = uVar20;
  return;
}



############ FUN_ 180ecad60 size=4128 ############

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

void FUN_180ecad60(void)

{
  uint uVar1;
  longlong lVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  byte *pbVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  longlong lVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  byte *pbVar26;
  byte bVar27;
  byte bVar28;
  uint uVar29;
  longlong *plVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint *puVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  byte local_res20;
  byte local_68;
  byte local_58;
  
  uVar3 = DAT_182671824;
  uVar5 = DAT_182671580;
  uVar4 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar12 = (ulonglong)DAT_18267157c;
  uVar14 = (ulonglong)DAT_182671580;
  uVar16 = (ulonglong)DAT_18267157c;
  uVar18 = DAT_18267157c ^ DAT_182671580;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar12 ^ 0x300a112a) + (longlong)DAT_182671c00);
  uVar10 = *(uint *)(&DAT_182611e80 + DAT_182671c00) ^ DAT_182671580;
  uVar34 = (ulonglong)uVar18;
  uVar15 = (ulonglong)DAT_182671880;
  DAT_18267156c = uVar18;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0x4bb5070)) =
       (CONCAT44(uVar18,DAT_18267157c) ^ 0x34b14282300a117e) + *(longlong *)(DAT_182671560 + -0x8c8)
       ^ uVar15;
  *(byte *)(*(ulonglong *)(lVar2 + -0x3d0) ^ uVar15) =
       *(byte *)(lVar2 + -0x3f2) ^ (byte)DAT_1826715ec ^ (byte)DAT_182671718;
  uVar21 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x300a1b1a)) =
       *(longlong *)(lVar2 + -0xb98) + 0x58 + (CONCAT44(uVar18,uVar18) ^ 0x34b1428234b14282) * 0x60
       ^ uVar21;
  uVar15 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar31 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x300a1752)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0xa38) ^ uVar21) ^ uVar31 ^ uVar15;
  uVar32 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar2 + -0x400) =
       (*(ulonglong *)(lVar2 + -0x688) ^ uVar32) >>
       (((byte)DAT_1826715b8 ^ *(byte *)(lVar2 + -0x240)) & 0x3f);
  uVar29 = DAT_1826716ec;
  uVar21 = (ulonglong)DAT_1826716ec;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x4bb5250)) =
       (uVar15 ^ *(ulonglong *)(lVar2 + -0x670)) >> (((byte)uVar18 ^ 0xaa) & 0x3f) ^
       CONCAT44(uVar3,uVar3);
  bVar27 = (byte)uVar3 ^ *(byte *)(lVar2 + -0x1f0) ^ (byte)DAT_18267168c;
  plVar30 = (longlong *)(lVar2 - (uVar16 ^ 0x300a171a));
  *(longlong *)(lVar2 + -0xa0) = *plVar30 << (((byte)uVar5 ^ 0xa7) & 0x3f);
  *(byte *)(lVar2 + -0x2a1) = bVar27;
  uVar36 = CONCAT44(uVar5,uVar18);
  uVar16 = CONCAT44(uVar4,uVar18);
  *(ulonglong *)(DAT_182671560 - (uVar12 ^ 0x300a1b42)) = uVar36 ^ uVar16 ^ 0x744af1e2f068a7d;
  lVar2 = DAT_182671560;
  bVar27 = *(byte *)(DAT_182671560 + -0x2a1) ^ (byte)DAT_18267168c ^ (byte)DAT_182671718;
  *(ulonglong *)(DAT_182671560 + -0xd40) =
       (uVar16 ^ 0x300a112234b142df) + *(longlong *)(DAT_182671560 + -0x8c8) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x628) =
       *(ulonglong *)(lVar2 + -0xa60) ^ uVar15 ^ *(ulonglong *)(lVar2 + -0x670);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x4bb5ee0)) ^ uVar21) = bVar27;
  *(ulonglong *)(lVar2 + -0x110) = 0x2816049141073fe2 >> ((byte)*plVar30 & 0x3f);
  uVar3 = DAT_182671730;
  lVar17 = (uVar36 ^ 0x4bb53a034b14282) * 0xc;
  puVar35 = (ulonglong *)(lVar2 - (uVar34 ^ 0x34b1491a));
  uVar15 = CONCAT44(uVar29,uVar29);
  uVar21 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar29 = DAT_18267183c >> 0x10;
  *(ulonglong *)(lVar2 + -0x30) =
       *puVar35 + ((CONCAT44(uVar5,uVar4) ^ 0x4bb53a0300a1129) + lVar17) * 8 ^ uVar15;
  uVar15 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar14 ^ 0x4bb5390)) ^ uVar15);
  *(undefined8 *)(lVar2 + -0x2a0) = 7;
  *(ulonglong *)(lVar2 + -0x548) = uVar15 ^ uVar21 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x610) =
       (ulonglong)*(ushort *)(lVar2 + -0x542) ^ (ulonglong)uVar29 ^ CONCAT44(uVar3,uVar3);
  uVar15 = (ulonglong)DAT_1826716a4;
  *(ulonglong *)(lVar2 + -0x748) =
       (CONCAT44(uVar4,uVar4) ^ 0x5625f76e4dcd89ce) + (CONCAT44(uVar4,uVar4) ^ 0x3821385e783c256c);
  bVar27 = *(byte *)(lVar2 - (uVar34 ^ 0x34b14492)) ^ (byte)uVar3 ^ (byte)DAT_182671640;
  pbVar26 = (byte *)((CONCAT44(uVar4,uVar5) ^ 0x300a112204bb53fe) + *(longlong *)(lVar2 + -0x8c8));
  *(byte *)(lVar2 + -0x571) = bVar27;
  bVar27 = bVar27 ^ (byte)DAT_182671640 ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0x8a0) = (ulonglong)pbVar26 ^ uVar15;
  uVar3 = DAT_1826716f0;
  *(ulonglong *)(lVar2 + -0x3f0) =
       (*(ulonglong *)(lVar2 - (uVar14 ^ 0x4bb56e8)) ^ uVar21) -
       *(longlong *)(lVar2 - (uVar12 ^ 0x300a166a));
  *pbVar26 = bVar27;
  uVar22 = DAT_182671784;
  uVar6 = DAT_1826715a8;
  uVar15 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar2 + -0x830) =
       *(longlong *)(lVar2 + -0xb98) + ((uVar16 ^ 0x300a112234b14289) + lVar17) * 8 ^ uVar15;
  uVar20 = DAT_18267179c;
  *puVar35 = uVar36 ^ 0x39c48d579987a040;
  uVar23 = DAT_18267159c;
  uVar21 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar2 + -0xa80) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x830) ^ uVar15) ^ uVar21 ^ uVar31;
  uVar11 = DAT_1826715b0;
  *(ulonglong *)(CONCAT44(uVar22,uVar22) ^ *(ulonglong *)(lVar2 + -0x2d8)) =
       CONCAT44(uVar5,DAT_1826715b0) ^ 0xc1a76f74e5c2f470;
  lVar17 = DAT_182671560;
  uVar15 = *(ulonglong *)(DAT_182671560 + -0xa80);
  *(ulonglong *)(lVar2 + -0x2d8) = CONCAT44(uVar18,uVar6) ^ 0x4ae285e68063fa18;
  uVar29 = DAT_182671594;
  local_res20 = (byte)uVar4;
  bVar28 = (byte)DAT_182671864;
  uVar15 = (uVar15 ^ uVar21) >> ((local_res20 ^ 0x1a) & 0x3f) ^
           CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar17 + -0xbf0) = uVar15;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x80) =
       (CONCAT44(uVar18,DAT_1826715a4) ^ 0xa2997bb12bdba8f5) << (((byte)uVar15 ^ bVar28) & 0x3f);
  lVar17 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x9ca) =
       *(byte *)(lVar2 - (uVar34 ^ 0x34b14972)) ^ bVar28 ^ (byte)DAT_182671758;
  uVar19 = DAT_182671684;
  uVar15 = (ulonglong)DAT_182671890;
  *(int *)(lVar17 - ((ulonglong)uVar29 ^ 0x420162e1)) =
       0x798e6988 >> ((byte)*(undefined4 *)(lVar17 - (uVar14 ^ 0x4bb532c)) & 0x1f);
  bVar27 = *(byte *)(lVar17 + -0x9ca) ^ (byte)DAT_182671758 ^ (byte)DAT_182671718;
  pbVar26 = (byte *)((CONCAT44(uVar18,uVar23) ^ 0x34b142824f75ca6a) + *(longlong *)(lVar17 + -0x8c8)
                    );
  *(ulonglong *)(lVar17 + -0xcd8) = (ulonglong)pbVar26 ^ uVar15;
  *pbVar26 = bVar27;
  uVar16 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar17 - (uVar12 ^ 0x300a129a)) =
       *(ulonglong *)(CONCAT44(DAT_18267166c,DAT_18267166c) ^ *(ulonglong *)(lVar17 + -0xd60)) ^
       uVar31;
  uVar15 = (ulonglong)DAT_182671590;
  *(uint *)(lVar17 + -0x640) =
       (*(uint *)(lVar17 - (uVar16 ^ 0x7a36687b)) ^ DAT_1826716b0 |
       DAT_1826718cc ^ *(uint *)(lVar17 + -0x27c)) ^ uVar22;
  uVar22 = *(uint *)(lVar17 - (uVar15 ^ 0x635d716d)) ^ *(uint *)(lVar17 + 0x40) ^ uVar19 ^ uVar22;
  *(ulonglong *)(lVar17 + -0x510) = -0x1f3d595ae905c5f - (*(ulonglong *)(lVar17 + -0x688) ^ uVar32);
  *(uint *)(lVar17 + -0x47c) = uVar22;
  uVar23 = uVar22 ^ DAT_18267182c;
  *(uint *)(lVar17 + -0x3c8) = (uVar22 ^ uVar19 | uVar11 ^ 0x367a1ee6) ^ DAT_182671624;
  *(uint *)(lVar17 + -0x274) =
       (*(uint *)(lVar17 - (uVar14 ^ 0x4bb5068)) ^ DAT_182671624) <<
       (((byte)DAT_182671570 ^ 0xfa) & 0x1f) ^ DAT_1826718cc;
  uVar8 = DAT_1826717bc;
  uVar5 = _DAT_182671610;
  uVar22 = DAT_182671598;
  uVar29 = DAT_182671578;
  uVar32 = (ulonglong)DAT_182671598;
  puVar33 = (uint *)(lVar17 - (uVar14 ^ 0x4bb54f4));
  *(uint *)(lVar17 + -0x754) = uVar23 ^ uVar19;
  *(uint *)(lVar17 - (uVar12 ^ 0x300a120a)) = *puVar33 ^ uVar8 ^ DAT_18267182c;
  *(ulonglong *)(lVar17 + -0x270) =
       CONCAT44(DAT_182671600,DAT_182671600) ^ *(ulonglong *)(lVar17 + -0xa88) ^
       *(ulonglong *)(lVar17 + -0xa80) ^ uVar21;
  uVar19 = DAT_1826716e8;
  *(uint *)(lVar17 - (uVar14 ^ 0x4bb5bd4)) = *(uint *)(lVar17 + -0x328) ^ uVar5 ^ uVar8;
  uVar15 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar17 + -0x6d0) =
       (CONCAT44(uVar29,uVar22) ^ 0xe6d1a94269f44d78) <<
       ((*(byte *)(lVar17 + -0xbf0) ^ bVar28) & 0x3f);
  uVar21 = (ulonglong)DAT_182671574;
  uVar16 = CONCAT44(DAT_182671574,uVar18);
  uVar24 = *(uint *)(lVar17 - (uVar15 ^ 0xfffff78b)) ^ uVar19 ^ uVar5;
  *(uint *)(lVar17 + -0x774) = uVar24;
  bVar27 = (byte)DAT_182671800;
  lVar2 = DAT_182671560;
  pbVar26 = (byte *)((uVar16 ^ 0x42012e0d34b14282) * 0x20 +
                     (CONCAT44(uVar11,DAT_182671568) ^ 0x367a1f61aa4e1552) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  *(ulonglong *)(DAT_182671560 + -0x918) = (ulonglong)pbVar26 ^ (ulonglong)uVar5;
  *(byte *)(lVar2 + -0x41) = *pbVar26 ^ bVar27 ^ (byte)DAT_182671694;
  uVar7 = DAT_182671810;
  uVar11 = DAT_1826716d4;
  uVar23 = DAT_18267158c;
  uVar5 = DAT_182671584;
  pbVar26 = (byte *)(lVar2 - (uVar21 ^ 0x42012e4c));
  uVar15 = (ulonglong)DAT_18267158c;
  uVar24 = (uVar19 ^ uVar24) + (uVar6 ^ 0x169610af) ^ DAT_1826715d0;
  uVar19 = (uint)(bVar27 ^ *pbVar26);
  *(uint *)(lVar2 + -0x910) = uVar24;
  uVar24 = uVar24 ^ DAT_1826715d0;
  *(uint *)(lVar2 + -0x344) = uVar19 ^ uVar7;
  uVar19 = uVar19 << 0x11 ^ DAT_18267171c;
  *(uint *)(lVar2 + -0x968) = uVar19;
  *(uint *)(lVar2 + -0x3d4) = uVar24 - (uVar19 ^ DAT_18267171c) ^ DAT_182671828;
  *(uint *)(lVar2 - (uVar34 ^ 0x34b144fa)) =
       (*(uint *)(lVar2 - (uVar34 ^ 0x34b14156)) ^ DAT_182671828) * (uVar5 ^ 0x8d9a99cc) ^ uVar11;
  *(uint *)(lVar2 - (uVar15 ^ 0x1f61350e)) =
       (*(uint *)(lVar2 + -0x344) ^ uVar7) * (uVar18 ^ 0x34b14293) ^ DAT_182671704;
  local_68 = (byte)uVar20;
  *(longlong *)(lVar2 + -0x600) =
       0x6303e5cfe3a2421b << ((*(byte *)(lVar2 + -0xa80) ^ local_68) & 0x3f);
  uVar20 = DAT_1826718a4;
  uVar19 = DAT_182671790;
  uVar3 = DAT_1826715ac;
  uVar29 = (*(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0x99f5cfd8)) ^ DAT_182671704) +
           (uVar11 ^ *(uint *)(lVar2 + -0x678));
  *(uint *)(lVar2 + -0x504) = uVar29 ^ DAT_1826718a4;
  uVar29 = uVar29 << (((byte)uVar18 ^ 0x8f) & 0x1f);
  *(uint *)(lVar2 + -0x844) = uVar29 ^ uVar19;
  lVar2 = DAT_182671560;
  uVar21 = (ulonglong)DAT_1826715b4;
  uVar15 = *(ulonglong *)(DAT_182671560 + -0x4f0);
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       (CONCAT44(uVar3,uVar23) ^ 0xf5b9e84b377eebba) -
       (CONCAT44(DAT_1826715b4,DAT_1826715a4) ^ 0x9f323e91ccb0b913);
  *(uint *)(lVar2 + -0x8c) = (*(uint *)(lVar2 + -0x504) ^ uVar20) >> 0x13 ^ DAT_182671734;
  uVar7 = DAT_1826715e4;
  uVar19 = DAT_1826715a4;
  uVar24 = (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) + (uVar22 ^ 0xce53e379) ^ DAT_1826717d0;
  uVar16 = (ulonglong)DAT_1826716c8;
  uVar31 = (ulonglong)DAT_1826715a4;
  uVar20 = (*(uint *)(lVar2 - (uVar34 ^ 0x34b1420e)) ^ DAT_182671734 | uVar29) ^ uVar8;
  *(uint *)(lVar2 + -0x5cc) = uVar20;
  uVar29 = DAT_182671794;
  *(byte *)(lVar2 + -0x41) = *(byte *)(uVar15 ^ uVar16) ^ (byte)DAT_1826717c0;
  uVar11 = DAT_18267163c;
  *(uint *)(lVar2 + -0x27c) = uVar24;
  *(uint *)(lVar2 + -0x47c) = uVar20 ^ uVar7 ^ uVar8;
  uVar20 = uVar29 ^ DAT_1826718cc;
  uVar29 = uVar24 ^ uVar29 ^ DAT_1826717d0;
  *(uint *)(lVar2 + -0x964) = uVar29;
  *puVar33 = uVar20 ^ uVar29;
  uVar29 = DAT_18267159c;
  uVar16 = (ulonglong)DAT_182671594;
  *(uint *)(lVar2 + -0x328) = uVar11 ^ uVar7 ^ *(uint *)(lVar2 + -0x47c);
  uVar15 = (ulonglong)DAT_1826717e4;
  *(ulonglong *)(lVar2 + -0x898) = (uVar16 << 0x18 | (ulonglong)(uVar6 >> 8)) ^ 0x9e918989c94b94;
  bVar28 = (byte)DAT_182671670;
  pbVar13 = (byte *)((CONCAT44(uVar19,uVar29) ^ 0xccac99f54f75ca35) * 0x20 +
                     (CONCAT44(uVar3,uVar3) ^ 0xd6800699d6800685) + *(longlong *)(lVar2 + -0x8f0));
  *(ulonglong *)(lVar2 + -0x918) = (ulonglong)pbVar13 ^ uVar15;
  uVar8 = DAT_1826716cc;
  lVar17 = DAT_182671560;
  *(byte *)(lVar2 - (uVar31 ^ 0xccac99b4)) = *pbVar13 ^ bVar28 ^ (byte)DAT_182671694;
  uVar24 = DAT_182671894;
  uVar3 = DAT_182671570;
  bVar27 = (byte)DAT_182671570;
  *(uint *)(lVar17 - ((ulonglong)uVar5 ^ 0xfffefdeb)) =
       (bVar28 ^ *(byte *)(lVar2 + -0x41)) ^ DAT_182671894;
  uVar11 = DAT_1826717f4;
  *(uint *)(lVar17 + -0x774) =
       (*(uint *)(lVar17 + -0x328) ^ DAT_18267163c) + (uVar23 ^ 0x169610af) ^ DAT_1826717f4;
  uVar9 = DAT_1826718cc;
  uVar15 = (ulonglong)DAT_1826718cc;
  *(uint *)(lVar17 - (uVar21 ^ 0x7a366875)) =
       (*(uint *)(lVar17 + -0x874) ^ uVar24) << ((bVar27 ^ 0xee) & 0x1f) ^ uVar8;
  uVar20 = DAT_1826716fc;
  uVar25 = (uVar11 ^ *(uint *)(lVar17 + -0x774)) - (uVar8 ^ *(uint *)(lVar17 + -0x968)) ^
           DAT_18267179c;
  *(uint *)(lVar17 + -0x910) = uVar25;
  uVar11 = DAT_1826715a0;
  uVar25 = (uVar25 ^ DAT_18267179c) * (uVar9 ^ *(uint *)(lVar17 + -0x754));
  *(uint *)(lVar17 + -0x3d4) = uVar25 ^ uVar20;
  lVar2 = DAT_182671560;
  uVar24 = (*(uint *)(lVar17 - (uVar12 ^ 0x300a1956)) ^ uVar24) * (uVar29 ^ 0x4f75ca29) ^
           DAT_182671834;
  uVar29 = *(uint *)(DAT_182671560 + -0x968);
  *(undefined8 *)(DAT_182671560 + -0x8a8) = *(undefined8 *)(DAT_182671560 + -0x270);
  *(uint *)(lVar2 + -0x344) = uVar24;
  uVar20 = DAT_1826715b8;
  uVar25 = (uVar24 ^ DAT_182671834) + uVar25;
  *(uint *)(lVar2 + -0x678) = uVar25 ^ DAT_1826715b8;
  *(uint *)(lVar2 + -0x374) = uVar25 * 0x2000 ^ DAT_182671820;
  uVar21 = (ulonglong)DAT_182671594;
  uVar16 = CONCAT44(uVar19,DAT_1826715a0);
  *(uint *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0x7a36641b)) =
       (uVar8 ^ uVar29) >> (((byte)uVar11 ^ 0x14) & 0x1f);
  uVar29 = DAT_182671588;
  uVar19 = (*(uint *)(lVar2 - (uVar14 ^ 0x4bb55d8)) ^ uVar20) >> 0x13;
  uVar20 = uVar19 ^ DAT_1826717a0;
  *(ulonglong *)(lVar2 + -0x800) = CONCAT44(uVar18,DAT_182671578) ^ uVar16 ^ 0xb536721ef2dd07ef;
  uVar11 = *(uint *)(lVar2 + -0x374) ^ DAT_182671820;
  *(uint *)(lVar2 + -0x844) = uVar20;
  *(uint *)(lVar2 + -0x8c) = (uVar19 | uVar11) ^ DAT_182671778;
  *(uint *)(lVar2 - (uVar21 ^ 0x42016551)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0xfffff8ab)) ^ uVar9) +
       (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^ DAT_18267174c;
  local_58 = (byte)uVar23;
  uVar23 = *(uint *)(lVar2 - (uVar32 ^ 0xbc378d56)) ^ DAT_18267174c ^ DAT_1826716ec;
  *(longlong *)(lVar2 + -0x9f8) = *(longlong *)(lVar2 + -0x898) << ((local_58 ^ 0x67) & 0x3f);
  *(uint *)(lVar2 + -0x964) = _DAT_1826716c0 ^ DAT_182671778 ^ *(uint *)(lVar2 + -0x8c);
  *(uint *)(lVar2 + -0x5cc) = uVar23;
  *(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x1f613206)) = uVar23 ^ DAT_182671740 ^ DAT_1826716ec;
  *(uint *)(lVar2 + -0x328) = _DAT_1826715f0 ^ _DAT_1826716c0 ^ *(uint *)(lVar2 + -0x964);
  bVar27 = (byte)DAT_182671858;
  *(ulonglong *)(lVar2 + -0x6b8) =
       CONCAT44(uVar6,uVar22) ^ CONCAT44(uVar18,uVar5) ^ 0x71f66585f434fdfe;
  *(longlong *)(lVar2 - (uVar12 ^ 0x300a1522)) = *(longlong *)(lVar2 + -0x6d0) << 0x23;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xfffef8bf)) =
       (CONCAT44(uVar4,uVar3) ^ 0x300a1122fffffff8) + *(longlong *)(lVar2 + -0x8f0) ^ uVar15;
  *pbVar26 = *(byte *)(*(ulonglong *)(lVar2 + -0xd20) ^ uVar15) ^ bVar27 ^ (byte)DAT_182671694;
  *(uint *)(lVar2 + -0x774) = (bVar27 ^ *(byte *)(lVar2 + -0x41)) ^ uVar7;
  *(ulonglong *)(lVar2 + -0xa0) = *(ulonglong *)(lVar2 + -0x270) >> (((byte)uVar29 ^ 0xdb) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar1 ^ uVar18;
  return;
}



############ FUN_ 180e97750 size=6110 ############

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

void FUN_180e97750(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong *puVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  byte bVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong *puVar56;
  uint uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  uint uVar60;
  byte local_188;
  byte local_170;
  byte local_168;
  byte local_148;
  byte local_140;
  byte local_110;
  byte local_d0;
  
  uVar17 = DAT_182671864;
  uVar16 = DAT_182671808;
  uVar15 = DAT_1826715b4;
  uVar14 = DAT_1826715b0;
  uVar13 = DAT_1826715a4;
  uVar12 = DAT_18267159c;
  uVar11 = DAT_18267158c;
  uVar7 = DAT_18267156c;
  uVar54 = (ulonglong)DAT_18267159c;
  uVar19 = DAT_182671588 - DAT_18267159c;
  uVar50 = (ulonglong)uVar19;
  uVar32 = (ulonglong)DAT_18267156c;
  uVar52 = (ulonglong)DAT_18267158c;
  uVar33 = (ulonglong)DAT_1826715b0;
  uVar57 = DAT_1826715b4 & DAT_1826715ac;
  uVar46 = (ulonglong)DAT_1826715a4;
  uVar29 = DAT_18267158c - DAT_1826715a4;
  uVar39 = *(uint *)(&DAT_182611e78 + DAT_182671b6c) ^ DAT_182671588;
  uVar30 = uVar29 ^ 0xc555eedf;
  uVar60 = DAT_18267156c * DAT_1826715b0;
  uVar20 = *(uint *)(&DAT_182611e70 + (uVar50 ^ 0xf3d1e564) + (longlong)DAT_182671b6c) ^
           DAT_18267159c;
  uVar40 = CONCAT44(DAT_182671864,DAT_182671864);
  uVar43 = CONCAT44(DAT_182671870,DAT_182671870);
  uVar26 = (CONCAT44(DAT_182671874,DAT_182671874) ^ *(ulonglong *)(DAT_182671560 + -0x610) |
           *(ulonglong *)(DAT_182671560 + -0x270) ^ uVar40) ^ uVar43;
  DAT_182671570 = uVar60;
  DAT_182671590 = uVar19;
  DAT_182671594 = uVar57;
  DAT_182671598 = uVar30;
  *(ulonglong *)(DAT_182671560 + -0x3f0) = uVar26;
  lVar5 = DAT_182671560;
  uVar35 = CONCAT44(uVar16,uVar16);
  uVar24 = CONCAT44(DAT_182671840,DAT_182671840);
  uVar43 = uVar24 ^ uVar35 ^ uVar26 ^ uVar43 ^ *(ulonglong *)(DAT_182671560 + -0x318);
  uVar26 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar43;
  puVar21 = (ulonglong *)(lVar5 + -0x548);
  uVar44 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar13 ^ 0xf8ef7346)) =
       (uVar26 ^ *puVar21) + (uVar35 ^ uVar43) ^ uVar44;
  lVar5 = DAT_182671560;
  uVar38 = (ulonglong)uVar30;
  puVar27 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0xc555e8e7));
  puVar1 = (ulonglong *)(DAT_182671560 + -0x670);
  local_d0 = (byte)uVar17;
  *puVar27 = (CONCAT44(uVar29,uVar7) ^ 0xa685c0c37bacf22f) >>
             ((*(byte *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0xf8ef778e)) ^ local_d0) & 0x3f);
  uVar45 = CONCAT44(DAT_182671770,DAT_182671770);
  uVar41 = (ulonglong)uVar60;
  uVar28 = (ulonglong)uVar57;
  uVar43 = (ulonglong)uVar15;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar60 ^ 0x75fefe9f)) =
       (uVar35 ^ *(ulonglong *)(lVar5 + -0x898)) << ((byte)uVar57 & 0x3f) ^ uVar45;
  uVar16 = DAT_1826717e0;
  uVar55 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar5 + -0x748) =
       (uVar35 ^ *(ulonglong *)(lVar5 + -0x898)) >> (((byte)uVar12 ^ 0xe9) & 0x3f) ^ uVar55;
  uVar9 = DAT_1826715ac;
  uVar8 = DAT_182671588;
  uVar26 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671588 ^ 0xf351d47f)) =
       (*(ulonglong *)(lVar5 - (uVar50 ^ 0xf3d1e23c)) ^ uVar55 | *puVar1 ^ uVar45) ^ uVar26;
  uVar37 = CONCAT44(DAT_182671634,DAT_182671634);
  puVar2 = (ulonglong *)(lVar5 + -0x6b8);
  puVar3 = (ulonglong *)(lVar5 + -0x400);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x66b48326)) =
       uVar37 ^ uVar26 ^ uVar44 ^ *puVar2 ^ *(ulonglong *)(lVar5 + -0x110);
  uVar16 = DAT_1826718d0;
  lVar5 = DAT_182671560;
  uVar26 = CONCAT44(DAT_182671718,DAT_182671718);
  uVar34 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar31 = (*puVar3 ^ uVar26) + (uVar24 ^ *(ulonglong *)(DAT_182671560 + -0x318)) ^ uVar34;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar31;
  uVar47 = CONCAT44(uVar16,uVar16);
  bVar51 = (byte)uVar7;
  local_170 = (byte)uVar14;
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*(ulonglong *)(lVar5 - (uVar52 ^ 0xf8ef71fe)) ^ uVar26) << ((bVar51 ^ 0xf3) & 0x3f) ^ uVar47
  ;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       (CONCAT44(uVar13,uVar57) ^ 0xa885e56cb02f407) >> ((local_170 ^ 0x3b) & 0x3f);
  uVar35 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar26 = (*(ulonglong *)(lVar5 - (uVar43 ^ 0x75fefcef)) ^ uVar26) >> (((byte)uVar8 ^ 0x5b) & 0x3f)
  ;
  *puVar21 = uVar26 ^ uVar35;
  lVar5 = DAT_182671560;
  puVar36 = (ulonglong *)(DAT_182671560 - (uVar28 ^ 0x64b485a6));
  *(ulonglong *)(DAT_182671560 + -0x270) =
       CONCAT44(uVar19,uVar15) ^ *puVar36 ^ uVar35 ^ 0x7dbad0edc74b515d;
  uVar16 = DAT_1826715cc;
  uVar9 = DAT_182671584;
  uVar8 = DAT_182671574;
  uVar42 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar48 = (ulonglong)DAT_182671584;
  uVar45 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar5 + -0x638) =
       (*(ulonglong *)(lVar5 - (uVar32 ^ 0xfffff9ef)) ^ uVar47 | uVar26) ^ uVar42;
  lVar5 = DAT_182671560;
  uVar22 = uVar8 | uVar9;
  uVar53 = CONCAT44(uVar16,uVar16);
  uVar35 = (ulonglong)uVar22;
  uVar31 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0xdffbd907)) ^ uVar53 ^ uVar42 ^
           uVar31 ^ uVar34;
  DAT_182671578 = uVar22;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar31;
  puVar25 = (ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xdee917bc));
  uVar32 = CONCAT44(DAT_182671790,DAT_182671790);
  *puVar1 = (uVar53 ^ uVar31) + (uVar44 ^ *puVar25) ^ uVar32;
  lVar5 = DAT_182671560;
  uVar26 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  local_188 = (byte)uVar22;
  *(ulonglong *)(DAT_182671560 + -0x748) = (uVar53 ^ uVar31) << ((local_188 ^ 5) & 0x3f) ^ uVar26;
  lVar6 = DAT_182671560;
  puVar49 = (ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xcf3bc7a3));
  uVar47 = CONCAT44(DAT_182671704,DAT_182671704);
  *(ulonglong *)(DAT_182671560 - (uVar41 ^ 0x75fef9ff)) =
       (uVar53 ^ *puVar49) >> ((local_188 ^ 0x39) & 0x3f) ^ uVar47;
  uVar10 = _DAT_18267188c;
  uVar53 = CONCAT44(DAT_182671648,DAT_182671648);
  uVar59 = (ulonglong)_DAT_18267188c;
  *(ulonglong *)(lVar6 + -0x318) =
       (uVar47 ^ *(ulonglong *)(lVar6 + -0x110) | *(ulonglong *)(lVar6 + -0x748) ^ uVar26) ^ uVar53;
  uVar58 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xdffbdccf)) =
       CONCAT44(uVar29,uVar19) ^ 0xe1728d9a5c277ea7 | CONCAT44(uVar8,uVar9) ^ 0x60d7617617837f20;
  uVar26 = *(ulonglong *)(lVar6 + -0x5c8);
  *puVar3 = *puVar1 ^ uVar58 ^ uVar53 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x318);
  lVar5 = DAT_182671560;
  uVar26 = uVar26 ^ uVar37;
  uVar37 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar42 = (*(ulonglong *)(DAT_182671560 - (uVar35 ^ 0xdffbd6c7)) ^ uVar34) + uVar26 ^ uVar37;
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar42;
  uVar16 = DAT_1826716a8;
  *(ulonglong *)(lVar5 + -0x610) =
       CONCAT44(uVar7,DAT_1826715ac) ^ 0x968e71a5a267389b |
       CONCAT44(uVar12,uVar8) ^ 0x3241a148dc636841;
  uVar31 = CONCAT44(uVar16,uVar16);
  *puVar21 = uVar26 << 0x16 ^ uVar31;
  uVar16 = DAT_1826718c4;
  uVar10 = DAT_182671588;
  local_140 = (byte)uVar13;
  uVar34 = CONCAT44(DAT_18267182c,DAT_18267182c);
  *(ulonglong *)(lVar5 + -0x638) = uVar26 >> ((local_140 ^ 0xd4) & 0x3f) ^ uVar34;
  uVar44 = CONCAT44(uVar16,uVar16);
  uVar26 = (uVar34 ^ *puVar27 | *puVar36 ^ uVar31) ^ uVar44;
  *puVar2 = uVar26;
  puVar36 = (ulonglong *)(lVar5 - (uVar45 ^ 0xdee9199c));
  *puVar36 = uVar42 ^ uVar26 ^ uVar44 ^ uVar37 ^ uVar55;
  *(ulonglong *)(lVar5 - (uVar45 ^ 0xdee9164c)) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0xf351d71f)) ^ uVar37 |
       CONCAT44(uVar60,uVar9) ^ 0x291350d96b59c713;
  uVar16 = DAT_182671654;
  uVar31 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar5 + -0x110) =
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0x8a010f89)) ^ uVar55) + (*puVar1 ^ uVar32) ^ uVar31;
  uVar17 = DAT_182671810;
  uVar26 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x3f0) =
       (uVar55 ^ *(ulonglong *)(lVar5 + -0x898)) << (((byte)uVar11 ^ 0xde) & 0x3f) ^ uVar26;
  uVar32 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x75fefbf7)) =
       (*(ulonglong *)(lVar5 - (uVar38 ^ 0xc555e647)) ^ uVar55) >> (((byte)uVar10 ^ 0x4f) & 0x3f) ^
       uVar32;
  uVar17 = DAT_182671800;
  uVar16 = DAT_1826715c0;
  uVar10 = DAT_1826715a8;
  uVar45 = (ulonglong)DAT_1826715a8;
  uVar23 = (DAT_1826715a8 << 0x10 | DAT_1826715a8 & 0xff00) << 8 | DAT_1826715a8 >> 8 & 0xff00 |
           DAT_1826715a8 >> 0x18;
  uVar34 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar26 = (uVar32 ^ *(ulonglong *)(lVar5 + -0x318) | uVar26 ^ *(ulonglong *)(lVar5 + -0x3f0)) ^
           uVar34;
  DAT_182671580 = uVar23;
  *(ulonglong *)(lVar5 + -0x9f8) = uVar26;
  uVar18 = DAT_18267186c;
  lVar6 = DAT_182671560;
  uVar55 = CONCAT44(uVar17,uVar17);
  puVar27 = (ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x3bcf3fce));
  *(ulonglong *)(lVar5 + -0x610) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar23 ^ 0xce3bce2b)) ^ uVar55 ^ uVar26 ^ uVar34 ^ uVar31;
  uVar17 = DAT_182671884;
  uVar34 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 + -0x5c8) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x3bcf39be)) ^ uVar37) + (*puVar27 ^ uVar58) ^
       uVar34;
  uVar37 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar23 ^ 0xce3bc903)) = (*puVar27 ^ uVar58) << 0x20 ^ uVar37;
  uVar26 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *puVar21 = *puVar3 >> 0x20 ^ uVar26 ^ uVar59;
  uVar32 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar26 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar23 ^ 0xce3bca73)) ^ uVar26 |
           *(ulonglong *)(lVar6 + -0x638) ^ uVar37) ^ uVar32;
  *puVar2 = uVar26;
  uVar37 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x3bcf3c86)) =
       *(ulonglong *)(lVar6 - (uVar33 ^ 0x8a0102d9)) ^ uVar37 ^ uVar26 ^ uVar32 ^ uVar34;
  uVar26 = *(ulonglong *)(lVar6 + -0x110);
  bVar4 = *(byte *)(lVar6 + -0x9f8);
  uVar32 = (CONCAT44(uVar10,uVar23) ^ 0xfe16adf5b7f8eaad) +
           (*(ulonglong *)(lVar6 + -0x748) ^ uVar37);
  *puVar1 = uVar32 ^ CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar6 + -0x898) =
       (CONCAT44(uVar13,DAT_1826715ac) ^ 0x474c5fc39d796458) << (((byte)uVar16 ^ bVar4) & 0x3f);
  lVar5 = DAT_182671560;
  uVar31 = (CONCAT44(uVar23,uVar22) ^ 0x8a70a8f184163e2b) + (uVar31 ^ uVar26);
  *(ulonglong *)(lVar6 + -0x3f0) = uVar31 ^ uVar44;
  uVar26 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar6 + -0x318) = *(ulonglong *)(lVar6 - (uVar28 ^ 0x64b48876)) | uVar31;
  uVar16 = _DAT_182671868;
  uVar59 = CONCAT44(DAT_182671684,DAT_182671684);
  uVar42 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0xf351d69f)) ^ uVar44) + uVar32 ^ uVar59;
  *(ulonglong *)(lVar5 + -0x270) = uVar42;
  uVar37 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *puVar3 = uVar32 * 0x4000 ^ CONCAT44(uVar16,uVar16);
  local_110 = (byte)uVar19;
  uVar26 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar31 = uVar32 >> ((local_110 ^ 0x46) & 0x3f);
  *(ulonglong *)(lVar5 + -0x638) = uVar31 ^ uVar37;
  *puVar21 = (uVar31 | uVar32 * 0x4000) ^ uVar26;
  uVar29 = DAT_1826715ac;
  uVar44 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *puVar2 = *(ulonglong *)(lVar5 - (uVar41 ^ 0x75fefda7)) ^ uVar42 ^ uVar44 ^ uVar26 ^ uVar59;
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x75feffa7)) =
       CONCAT44(uVar14,uVar8) ^ 0x85e8217677a82b16 | CONCAT44(uVar12,uVar29) ^ 0x4e83983d0ab50f85;
  uVar58 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(ulonglong *)(lVar5 - (uVar46 ^ 0xf8ef7c06)) =
       (uVar55 ^ *(ulonglong *)(lVar5 + -0x610)) + (CONCAT44(uVar9,uVar11) ^ 0xe44abd12ff70c3ca) ^
       uVar58;
  uVar17 = DAT_1826717f0;
  uVar31 = CONCAT44(DAT_182671850,DAT_182671850);
  uVar26 = (*(ulonglong *)(lVar5 - (uVar41 ^ 0x75fefd27)) ^ uVar34) +
           (CONCAT44(uVar7,uVar7) ^ 0x5bf4729219a8dd1d);
  *(ulonglong *)(lVar5 + -0x110) = uVar26 ^ uVar31;
  uVar16 = DAT_1826715c4;
  uVar37 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 + -0x898) = uVar26 + (uVar58 ^ *(ulonglong *)(lVar5 + -0x9f8)) ^ uVar37;
  uVar17 = DAT_182671818;
  uVar32 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0x64b48916)) ^ uVar58) << ((bVar51 ^ 0xef) & 0x3f);
  local_148 = (byte)uVar10;
  *(ulonglong *)(lVar5 + -0x318) = uVar32 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_18267163c;
  uVar34 = (uVar58 ^ *(ulonglong *)(lVar5 + -0x9f8)) >> ((local_148 ^ 0xfe) & 0x3f);
  uVar42 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 + -0x3f0) = uVar34 ^ uVar42;
  uVar26 = CONCAT44(uVar16,uVar16);
  uVar46 = (uVar34 | uVar32) ^ uVar26;
  *puVar1 = uVar46;
  uVar16 = DAT_1826717b4;
  uVar32 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar46 = *(ulonglong *)(lVar5 - (uVar54 ^ 0xff7fe763)) ^ uVar32 ^ uVar26 ^ uVar37 ^ uVar46;
  puVar56 = (ulonglong *)(lVar5 - (uVar50 ^ 0xf3d1e174));
  *puVar3 = uVar46;
  uVar17 = DAT_182671894;
  lVar6 = DAT_182671560;
  uVar26 = *puVar3;
  uVar34 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x638) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar23 ^ 0xce3bcd4b)) ^ uVar59) + (uVar32 ^ *puVar56) ^
       uVar34;
  uVar54 = CONCAT44(uVar17,uVar17);
  *puVar21 = (uVar46 ^ uVar32) << (((byte)DAT_182671588 ^ 0x5b) & 0x3f) ^ uVar54;
  uVar50 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0x8a010059)) =
       (uVar26 ^ uVar32) >> (((byte)uVar30 ^ 0xd3) & 0x3f) ^ uVar50;
  uVar16 = DAT_182671660;
  *(ulonglong *)(lVar6 + -0x610) =
       uVar42 ^ *(ulonglong *)(lVar6 + -0x3f0) | CONCAT44(uVar12,uVar8) ^ 0x5e79b82db490fe34;
  uVar32 = CONCAT44(uVar16,uVar16);
  uVar50 = (*(ulonglong *)(lVar6 - (uVar38 ^ 0xc555e997)) ^ uVar50 | *puVar21 ^ uVar54) ^ uVar32;
  *(ulonglong *)(lVar6 + -0x5c8) = uVar50;
  uVar16 = DAT_182671604;
  *(ulonglong *)(lVar6 + -0x110) =
       (CONCAT44(uVar9,uVar60) ^ 0x1c388e3ceb3550a0) >> (((byte)(uVar10 >> 0x18) ^ 0x35) & 0x3f);
  lVar5 = DAT_182671560;
  uVar42 = CONCAT44(uVar16,uVar16);
  uVar26 = *puVar2;
  puVar27 = (ulonglong *)(DAT_182671560 + -0x898);
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       uVar50 ^ uVar42 ^ uVar32 ^ uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x638);
  *(ulonglong *)(lVar5 + -0x318) = (uVar37 ^ *puVar27) + (uVar44 ^ uVar26) ^ uVar44;
  uVar50 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0xdffbd987)) ^ uVar44) <<
           (((byte)uVar12 ^ 0xc2) & 0x3f);
  *puVar1 = uVar50 ^ uVar58;
  *(ulonglong *)(lVar5 + -0x270) = 0xd0672e2b13f92052 >> (((byte)uVar60 ^ 0xf8) & 0x3f);
  uVar26 = (*(ulonglong *)(lVar5 - (uVar38 ^ 0xc555e867)) ^ uVar44) >> ((local_148 ^ 0xc9) & 0x3f);
  *puVar3 = uVar26 ^ CONCAT44(DAT_182671798,DAT_182671798);
  uVar16 = DAT_1826716d0;
  lVar5 = DAT_182671560;
  uVar35 = (uVar50 | uVar26) ^ uVar47;
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (CONCAT44(uVar19,uVar57) ^ 0x9065e37ba60fee40) +
       (CONCAT44(uVar8,uVar13) ^ 0x1b77548533049d39);
  uVar50 = CONCAT44(uVar16,uVar16);
  uVar26 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar5 + -0x3f0) = uVar35;
  local_168 = (byte)uVar15;
  uVar35 = *(ulonglong *)(lVar5 - (uVar26 ^ 0xf351d677)) ^ uVar50 ^ uVar44 ^ uVar47 ^ uVar35;
  uVar37 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  *puVar21 = uVar35;
  uVar35 = uVar35 ^ uVar50;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x638)) + uVar35 ^ uVar37;
  lVar5 = DAT_182671560;
  uVar26 = CONCAT44(DAT_182671720,DAT_182671720);
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar35 << 0x17 ^ uVar26;
  *puVar36 = uVar35 >> ((local_168 ^ 0xc6) & 0x3f) ^ uVar53;
  uVar35 = CONCAT44(DAT_182671670,DAT_182671670);
  *puVar25 = (uVar53 ^ *(ulonglong *)(lVar5 + -0x898) | *(ulonglong *)(lVar5 + -0x5c8) ^ uVar26) ^
             uVar35;
  uVar7 = DAT_1826715ac;
  uVar26 = *(ulonglong *)(lVar5 + -0x318);
  uVar50 = *(ulonglong *)(lVar5 + -0x9f8);
  uVar38 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *puVar3 = uVar38 ^ uVar35 ^ uVar37 ^ *puVar2 ^ *(ulonglong *)(lVar5 + -0x110);
  uVar35 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar32 = (uVar44 ^ uVar26) + (uVar42 ^ *(ulonglong *)(lVar5 + -0x9f8)) ^ uVar35;
  *puVar1 = uVar32;
  uVar16 = DAT_1826715e4;
  uVar26 = (uVar42 ^ uVar50) << (((byte)uVar7 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar5 + -0x610) = uVar26 ^ CONCAT44(DAT_1826717d8,DAT_1826717d8);
  uVar50 = (uVar42 ^ *(ulonglong *)(lVar5 + -0x9f8)) >> ((local_170 ^ 9) & 0x3f);
  uVar26 = uVar50 | uVar26;
  *(ulonglong *)(lVar5 + -0x3f0) = uVar50 ^ CONCAT44(uVar16,uVar16);
  lVar6 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar5 + -0x748) =
       CONCAT44(uVar9,uVar12) ^ 0xee84f5cb99978a1f | CONCAT44(uVar8,uVar23) ^ 0xfec1952f149f6177;
  *(ulonglong *)(lVar5 + -0x638) = uVar26 ^ CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *(ulonglong *)(lVar5 - (uVar45 ^ 0x3bcf3e86)) = uVar26 ^ uVar35 ^ uVar32 ^ uVar40;
  uVar26 = *(ulonglong *)(lVar5 + -0x110);
  uVar40 = *puVar21 ^ uVar40;
  *(ulonglong *)(lVar6 + -0x5c8) = uVar40 << (((byte)uVar30 ^ 0xda) & 0x3f) ^ uVar31;
  uVar50 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar6 + -0x270) = (uVar37 ^ uVar26) + uVar40 ^ uVar55;
  *puVar49 = uVar40 >> ((bVar51 ^ 0xc4) & 0x3f) ^ uVar50;
  uVar17 = DAT_1826717cc;
  uVar26 = CONCAT44(DAT_182671848,DAT_182671848);
  *puVar2 = (*(ulonglong *)(lVar6 + -0x5c8) ^ uVar31 | uVar50 ^ *(ulonglong *)(lVar6 + -0x898)) ^
            uVar26;
  uVar16 = DAT_182671748;
  *(ulonglong *)(lVar6 + -0x318) =
       *(ulonglong *)(lVar6 - (uVar34 ^ 0xf351d3d7)) ^ CONCAT44(uVar17,uVar17) ^ uVar26 ^
       *(ulonglong *)(lVar6 + -0x270) ^ uVar55;
  uVar32 = CONCAT44(uVar16,uVar16);
  uVar26 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x75fef117)) = (uVar35 ^ *puVar1) + (uVar38 ^ *puVar56) ^ uVar32;
  uVar45 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(lVar6 - (uVar52 ^ 0xf8ef72b6)) =
       (*(ulonglong *)(lVar6 - (uVar26 ^ 0x3bcf3fcf)) ^ uVar38) << 0x25 ^ uVar45;
  uVar35 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar26 = (*(ulonglong *)(lVar6 - (uVar41 ^ 0x75fefcef)) ^ uVar38) >> ((local_168 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar6 + -0x610) = uVar26 ^ uVar35;
  uVar50 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar6 + -0x3f0) = *(ulonglong *)(lVar6 - (uVar28 ^ 0x64b48526)) ^ uVar31 | uVar26;
  uVar38 = (ulonglong)DAT_182671734;
  uVar43 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar6 - (uVar34 ^ 0xf351d357)) =
       (*(ulonglong *)(lVar6 - (uVar48 ^ 0xcf3bc92b)) ^ uVar35 |
       uVar45 ^ *(ulonglong *)(lVar6 + -0x748)) ^ uVar50;
  uVar26 = CONCAT44(DAT_182671804,DAT_182671804);
  uVar50 = uVar26 ^ uVar50 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x638) ^
           *(ulonglong *)(lVar6 + -0x9f8);
  *(ulonglong *)(lVar6 + -0x110) = uVar50;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671568 ^ 0xff7feab3)) =
       (uVar50 ^ uVar26) + (CONCAT44(uVar13,uVar57) ^ 0x5ce4f89382e3a20c) ^ uVar43;
  uVar50 = (CONCAT44(uVar12,uVar22) ^ 0xd6ecba531838a918) +
           (*(ulonglong *)(lVar6 + -0x270) ^ uVar55);
  uVar26 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar6 + -0x898) = uVar50 ^ uVar44;
  uVar16 = DAT_18267183c;
  *puVar2 = (*(ulonglong *)(lVar6 - (uVar33 ^ 0x8a010259)) ^ uVar43) + uVar50 ^ uVar26;
  uVar26 = *puVar21;
  *puVar1 = (uVar43 ^ uVar26) << ((local_148 ^ 0xd7) & 0x3f) ^ uVar24;
  *puVar3 = (uVar26 >> 0x20 ^ uVar38) >> 7 ^ CONCAT44(uVar16,uVar16);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar20 * 4) = uVar39;
  return;
}



############ FUN_ 180f1ae80 size=4558 ############

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

void FUN_180f1ae80(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_100;
  byte local_f0;
  byte local_e8;
  
  uVar11 = DAT_1826715a0;
  uVar12 = DAT_182671594;
  uVar20 = DAT_182671580;
  lVar7 = DAT_182671560;
  uVar27 = (ulonglong)DAT_182671594;
  uVar40 = (ulonglong)DAT_1826715a0;
  uVar44 = (ulonglong)DAT_182671580;
  uVar35 = DAT_1826716f0 >> 0x18;
  uVar30 = DAT_182671594 * DAT_1826715a0;
  uVar49 = DAT_182671580 << 0x10 | DAT_182671580 >> 0x10;
  uVar6 = DAT_1826718d4 >> 0x10;
  uVar18 = *(uint *)(&DAT_182611e78 + DAT_182671a0c) ^ DAT_1826715a0;
  uVar5 = *(uint *)(&DAT_182611e70 + (uVar27 ^ 0x4d678cef) + (longlong)DAT_182671a0c);
  uVar51 = (ulonglong)uVar49;
  DAT_18267165c = ((uVar35 << 8 | uVar35) << 8 | uVar35) << 8 | uVar35;
  puVar33 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a0 ^ 0xfe76f8c7));
  uVar29 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x2a0);
  uVar36 = CONCAT44(DAT_18267165c,DAT_18267165c);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x318);
  DAT_182671570 = uVar49;
  DAT_1826715b0 = uVar30;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar49 ^ 0x227071d2)) =
       (CONCAT44(DAT_1826715c0,DAT_1826715c0) ^ *puVar1 | *puVar33 ^ uVar29) ^ uVar36;
  uVar17 = DAT_182671774;
  uVar35 = DAT_1826716f0 & 0xff;
  DAT_1826716f0 = ((DAT_1826716f0 << 8 | uVar35) << 8 | uVar35) << 8 | uVar35;
  uVar24 = (ulonglong)DAT_1826716f0;
  uVar23 = CONCAT44(DAT_182671774,DAT_182671774);
  uVar52 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  uVar22 = (*puVar2 ^ uVar23) - (CONCAT44(uVar20,uVar12) ^ 0x8e81bbae5868eef5);
  puVar3 = (ulonglong *)(lVar7 + -0x9e8);
  *puVar3 = uVar22 ^ uVar52;
  uVar19 = DAT_1826718d4 & 0xff;
  uVar28 = DAT_1826718d4 << 8;
  DAT_1826718d4 = ((uVar28 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar34 = (ulonglong)DAT_1826718d4;
  uVar41 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  puVar4 = (ulonglong *)(lVar7 + -0x628);
  uVar35 = uVar6 & 0xff;
  *puVar4 = uVar22 - (*(ulonglong *)(lVar7 + -0x1f0) ^ uVar36) ^ uVar41;
  lVar8 = DAT_182671560;
  DAT_1826716d4 = ((uVar6 << 8 | uVar35) << 8 | uVar35) << 8 | uVar35;
  uVar32 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xfe76f6e7)) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar30 ^ 0x23cdf571)) ^ uVar36) -
       (CONCAT44(uVar11,uVar49) ^ 0x4bf22b28027bbeee) ^ uVar32;
  uVar22 = *(ulonglong *)(lVar7 + -0xa88) ^ *(ulonglong *)(lVar7 + -0x8a8);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar22 ^ uVar32;
  uVar15 = DAT_1826715a8;
  *puVar2 = uVar22 >> (((byte)uVar30 ^ 0xa0) & 0x3f) ^ uVar32;
  puVar31 = (ulonglong *)(lVar8 - (uVar51 ^ 0x227079ca));
  *puVar31 = uVar22 << (((byte)uVar15 ^ 0x5f) & 0x3f) ^ uVar52;
  lVar7 = DAT_182671560;
  uVar22 = *puVar2 ^ uVar32 | *puVar3 ^ uVar52;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar22 ^ uVar41;
  uVar45 = CONCAT44(DAT_182671754,DAT_182671754);
  *puVar1 = (*(ulonglong *)(lVar7 + -0xa88) ^ uVar45) -
            (CONCAT44(uVar30,uVar15) ^ 0x77fb59de9550ed39) ^ uVar52;
  *(undefined8 *)(lVar7 + -0x8a8) = **(undefined8 **)(lVar7 + 0x10);
  puVar46 = (ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xfe76fcdf));
  *(ulonglong *)(lVar7 + -0x6b8) =
       (*puVar46 ^ uVar52) - (*(ulonglong *)(lVar7 - (uVar27 ^ 0x4d678d0f)) ^ uVar41) ^ uVar36;
  uVar22 = (CONCAT44(uVar49,uVar20) ^ 0xdb641fc4b7aa3602) + uVar22 ^ uVar41;
  *puVar2 = uVar22;
  uVar6 = DAT_1826715a4;
  puVar37 = (ulonglong *)(lVar7 - (uVar44 ^ 0x70222458));
  *puVar3 = uVar22 ^ *puVar37 ^ uVar32;
  lVar7 = DAT_182671560;
  uVar22 = (ulonglong)DAT_182671568;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0x4c763982)) ^ uVar32) >>
       (((byte)uVar30 ^ 0x84) & 0x3f) ^ uVar41;
  uVar22 = (*(ulonglong *)(lVar7 - (uVar22 ^ 0x40ed800a)) ^ uVar32) <<
           (((byte)DAT_182671584 ^ 0x3b) & 0x3f);
  puVar42 = (ulonglong *)(DAT_182671560 - (uVar27 ^ 0x4d678677));
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar22 ^ uVar36;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267157c ^ 0x5a58e4ca)) =
       (*puVar42 ^ uVar41 | uVar22) ^ uVar36;
  *(ulonglong *)(lVar7 + -0x1f0) = (*puVar37 ^ uVar41) - (*puVar1 ^ uVar36) ^ uVar52;
  uVar35 = DAT_182671584;
  bVar21 = (byte)DAT_182671584;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x4d678517)) =
       *(ulonglong *)(lVar7 + -0x898) ^ *(ulonglong *)(lVar7 + -0x6b8) ^ uVar32 ^ uVar52 ^ uVar36;
  local_100 = (byte)(uVar20 >> 0x10);
  *(ulonglong *)(lVar7 + -0xa88) = 0x1ac451fb1d9645c9 >> ((bVar21 ^ 0xf) & 0x3f);
  *(ulonglong *)(lVar7 + -0x8a8) = (*puVar3 >> 0x20 ^ uVar24) >> 5 ^ uVar41;
  lVar7 = DAT_182671560;
  uVar22 = (*puVar3 ^ uVar52) << ((local_100 ^ 0x39) & 0x3f);
  *(uint *)(DAT_182671560 + -0x968) = (uVar49 ^ 0xa12116cc) + 0xc0974854;
  *puVar4 = uVar22 ^ uVar41;
  uVar6 = DAT_1826715cc;
  uVar25 = (ulonglong)DAT_1826715cc;
  uVar48 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  *(ulonglong *)(lVar7 - (uVar44 ^ 0x70222ae8)) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar30 ^ 0x23cdfc29)) ^ uVar41 | uVar22) ^ uVar32;
  uVar22 = (ulonglong)DAT_18267157c;
  uVar24 = *(ulonglong *)(lVar7 + -0x1f0) ^ uVar48 ^ *(ulonglong *)(lVar7 + -0x898) ^ uVar32 ^
           uVar52;
  uVar38 = (*(ulonglong *)(lVar7 + -0x6b8) ^ uVar36) - (*(ulonglong *)(lVar7 + -0x898) ^ uVar32) ^
           uVar23;
  *puVar3 = uVar38;
  *puVar2 = uVar24;
  *(ulonglong *)(lVar7 + -0xa88) =
       ((ulonglong)(uVar6 >> 0x17) | uVar25 << 9) ^ uVar24 >> 0x17 ^ uVar36;
  uVar25 = (*(ulonglong *)(lVar7 - (uVar22 ^ 0x5a58e572)) ^ uVar48) << 0x29;
  *(ulonglong *)(lVar7 + -0x6b8) = uVar25 ^ uVar32;
  *(ulonglong *)(lVar7 + -0x898) = (*puVar4 ^ uVar41) - uVar25;
  uVar25 = *(ulonglong *)(lVar7 - ((ulonglong)uVar30 ^ 0x23cdfe09)) ^ uVar36 | uVar25;
  uVar50 = uVar25 ^ uVar32;
  *puVar2 = uVar50;
  bVar21 = (byte)DAT_1826715a4;
  *puVar4 = (CONCAT44(uVar35,uVar11) ^ 0x6d165a9fdbe8bcbb) << ((local_100 ^ 0x23) & 0x3f);
  uVar6 = DAT_182671600;
  lVar7 = DAT_182671560;
  uVar25 = (*(ulonglong *)(DAT_182671560 + -0x1f0) ^ uVar52) - uVar25;
  uVar22 = (ulonglong)DAT_182671600;
  uVar24 = uVar25 ^ uVar41;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar24;
  uVar10 = DAT_1826715b8;
  uVar26 = CONCAT44(uVar6,uVar6);
  uVar47 = (ulonglong)DAT_1826715b8;
  uVar38 = uVar38 ^ uVar26 ^ *puVar46 ^ uVar23 ^ uVar36;
  *(ulonglong *)(lVar7 + -0xa88) = uVar38;
  *(ulonglong *)(lVar7 + -0x6b8) = (uVar38 >> 0x20 ^ uVar22) >> 8 ^ uVar52;
  uVar6 = DAT_182671568;
  *puVar4 = (*puVar42 ^ uVar26) << ((bVar21 ^ 0x72) & 0x3f) ^ uVar41;
  puVar37 = (ulonglong *)(lVar7 - (uVar44 ^ 0x702224c8));
  uVar39 = CONCAT44(DAT_182671850,DAT_182671850);
  uVar22 = (ulonglong)DAT_18267157c;
  uVar38 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar6 ^ 0x40ed8fca)) ^ uVar41 | uVar52 ^ *puVar37) ^
           uVar39;
  *(ulonglong *)(lVar7 + -0x1f0) = uVar38;
  puVar42 = (ulonglong *)(lVar7 - (uVar22 ^ 0x5a58e79a));
  uVar52 = CONCAT44(uVar10,uVar10);
  local_f0 = (byte)uVar12;
  uVar43 = (*puVar31 ^ uVar23) - (uVar39 ^ *puVar42) ^ uVar32;
  uVar22 = uVar38 ^ uVar52 ^ uVar39 ^ uVar24 ^ uVar41;
  *puVar1 = uVar43;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar22;
  uVar22 = (uVar22 ^ uVar52) >> ((local_f0 ^ 0xcb) & 0x3f);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar22 ^ uVar39;
  *(int *)(lVar7 + -0x910) = *(int *)(lVar7 + -0x754) + -0x484578fb;
  uVar24 = CONCAT44(DAT_182671758,DAT_182671758);
  *puVar4 = (*(ulonglong *)(lVar7 - (uVar40 ^ 0xfe76f4f7)) ^ uVar52) <<
            (((byte)DAT_1826715a4 ^ 0x66) & 0x3f) ^ uVar24;
  lVar7 = DAT_182671560;
  uVar38 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *puVar3 = (*(ulonglong *)(DAT_182671560 - (uVar51 ^ 0x2270760a)) ^ uVar24 | uVar22) ^ uVar38;
  uVar39 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar22 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715a8 ^ 0xe289e4a8));
  *(ulonglong *)(lVar7 + -0xa88) = uVar43 ^ uVar50 ^ uVar52;
  uVar22 = uVar25 - (uVar22 ^ uVar38) ^ uVar39;
  *(ulonglong *)(lVar7 + -0x1f0) = uVar22;
  *puVar37 = *(ulonglong *)(lVar7 - (uVar40 ^ 0xfe76f6d7)) ^ uVar22 ^ uVar39 ^ uVar41;
  uVar14 = DAT_1826715a4;
  uVar10 = DAT_182671584;
  uVar40 = (*(ulonglong *)(lVar7 + -0xa88) >> 0x20 ^ uVar47) >> 0x19;
  uVar22 = *(ulonglong *)(lVar7 + -0xa88);
  *puVar4 = uVar40 ^ CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar25 = (uVar22 ^ uVar52) << (((byte)uVar14 ^ 0x6d) & 0x3f);
  uVar22 = CONCAT44(DAT_182671578,uVar11);
  *(ulonglong *)(lVar7 + -0x898) = uVar25 ^ uVar48;
  lVar8 = DAT_182671560;
  *(ulonglong *)(lVar7 + -0x8a8) = (uVar40 | uVar25) ^ uVar29;
  uVar11 = DAT_182671588;
  *puVar2 = (CONCAT44(uVar30,uVar10) ^ 0x390b713a91447db9) - (uVar22 ^ 0x8da7c7ac0bbc2fd4);
  *puVar33 = (*puVar1 ^ uVar32) -
             (*(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0xa3f5f717)) ^ uVar29) ^ uVar32;
  *(undefined8 *)(lVar8 - (uVar51 ^ 0x22707aaa)) = 0x9fbdf6ffb43d2ffa;
  uVar40 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar10 ^ 0xf21d4918)) =
       *(ulonglong *)(lVar8 + -0x8a8) ^ uVar39 ^ uVar24 ^ *puVar42 ^ uVar29;
  uVar13 = DAT_1826715ac;
  uVar9 = DAT_182671574;
  lVar7 = DAT_182671560;
  local_e8 = (byte)uVar20;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a8 ^ 0xe289eb68)) =
       (*puVar2 ^ uVar24) >> ((local_e8 ^ 0x7e) & 0x3f) ^ uVar36;
  uVar22 = *puVar2;
  *(ulonglong *)(lVar7 + -0x898) =
       CONCAT44(uVar13,uVar12) ^ CONCAT44(uVar15,uVar49) ^ 0x5f0c11c407ee336a;
  uVar25 = (ulonglong)DAT_182671590;
  *puVar1 = (uVar22 ^ uVar24) << (((byte)uVar14 ^ 0x58) & 0x3f) ^ uVar32;
  uVar16 = DAT_1826715b4;
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xde2bf77)) =
       CONCAT44(uVar15,uVar30) ^ 0x72f9dfbff3504d4a | *puVar2 ^ uVar24;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = (*puVar4 ^ uVar36 | *puVar1 ^ uVar32) ^ uVar29;
  uVar13 = DAT_182671598;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a4 ^ 0x4c7638f2)) =
       (*(ulonglong *)(lVar7 + -0x1f0) ^ uVar39) - (CONCAT44(uVar16,uVar9) ^ 0xc1d9f3f15b87965c) ^
       uVar41;
  *puVar2 = (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x4d678467)) ^ uVar41) -
            (*(ulonglong *)(DAT_182671560 + -0x8a8) ^ uVar29) ^ uVar52;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (CONCAT44(uVar30,uVar11) ^ 0x4be3a723013f5992) >> (((byte)uVar13 ^ 0xb1) & 0x3f);
  *puVar4 = (*(ulonglong *)(lVar7 + -0x8a8) ^ uVar29) -
            (CONCAT44(uVar6,uVar20) ^ 0xb28906f16fe707bd) ^ uVar24;
  *(undefined8 *)(lVar7 - (uVar44 ^ 0x702220d0)) = **(undefined8 **)((uVar40 ^ 0x8affd347) + lVar7);
  uVar22 = *puVar3 ^ *(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar38 ^ uVar32;
  uVar39 = uVar22 ^ uVar41;
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar39;
  uVar27 = (ulonglong)(uVar28 & 0xffff | uVar19) | uVar34 << 0x10;
  uVar34 = uVar39 >> 0x10 ^ uVar27;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar34 ^ uVar32;
  *(ulonglong *)(lVar7 + -0xa88) = *puVar2 ^ uVar39 ^ uVar52 ^ uVar41;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar22 << (((byte)uVar9 ^ 0xbf) & 0x3f) ^ uVar23;
  uVar22 = *(ulonglong *)(lVar7 + -0x6b8);
  *puVar1 = *(ulonglong *)(lVar7 + -0x1f0) >> 0x10 ^ uVar27;
  uVar34 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_18267157c ^ 0x5a58eec2)) ^ uVar23 | uVar34;
  *puVar3 = uVar34 ^ uVar26;
  uVar9 = DAT_1826717cc;
  uVar22 = (uVar22 ^ uVar32) - (CONCAT44(uVar16,uVar49) ^ 0x66d35fa8027bbeee);
  uVar39 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar7 + -0xa88) = uVar22 ^ uVar23;
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar22 = uVar22 - uVar34;
  *puVar1 = uVar22 ^ uVar27;
  uVar34 = (CONCAT44(uVar35,DAT_182671568) ^ 0xda8e4d107c247366) + uVar34 ^ uVar29;
  *(ulonglong *)(lVar7 + -0x898) = uVar22 << ((*(byte *)(lVar7 + -0xa88) ^ (byte)uVar17) & 0x3f);
  uVar22 = *puVar2;
  *(ulonglong *)(lVar7 + -0x1f0) = uVar34;
  uVar6 = DAT_18267156c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0x8fdddb37)) =
       uVar27 ^ uVar22 ^ uVar34 ^ uVar52 ^ uVar29;
  lVar7 = DAT_182671560;
  uVar23 = (*(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xb29875b8)) ^ uVar27) >>
           (((byte)DAT_1826715a4 ^ 0x4a) & 0x3f);
  uVar22 = (*(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar27) << 0x20;
  *puVar3 = uVar23 ^ uVar38;
  *(ulonglong *)(lVar7 + -0x898) = uVar22 ^ uVar38;
  uVar23 = uVar23 | uVar22;
  uVar20 = DAT_18267168c & 0xff;
  *(ulonglong *)(lVar7 + -0x1f0) = 0x6309e9bf461052e >> (((byte)uVar11 ^ 0x9b) & 0x3f);
  uVar35 = DAT_18267168c * DAT_182671684;
  *(ulonglong *)(lVar7 + -0xa88) = uVar23 ^ uVar45;
  lVar7 = DAT_182671560;
  DAT_18267168c = ((DAT_18267168c << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar22 = (ulonglong)DAT_182671584;
  uVar34 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = (*puVar2 ^ uVar52) - uVar23 ^ uVar34;
  uVar20 = DAT_182671684 & 0xff;
  DAT_182671684 = ((DAT_182671684 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar26 = (ulonglong)DAT_182671684;
  uVar38 = CONCAT44(DAT_182671684,DAT_182671684);
  uVar20 = uVar35 & 0xff;
  uVar24 = *(ulonglong *)(lVar7 - (uVar22 ^ 0xf21d4c28)) ^ *puVar1 ^ uVar38 ^ uVar27 ^ uVar24;
  *(ulonglong *)(lVar7 + -0x1f0) = uVar24;
  DAT_1826715c4 = ((uVar35 * 0x100 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar23 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *puVar3 = uVar24 >> 0x20 ^ uVar23 ^ uVar26;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xde2bd67)) =
       (uVar38 ^ uVar24) << (((byte)uVar13 ^ 0x87) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar7 - (uVar39 ^ 0xb2987528)) =
       (*puVar3 ^ uVar23 | *(ulonglong *)(lVar7 + -0x898) ^ uVar23) ^ uVar38;
  uVar22 = *puVar4;
  *(ulonglong *)(lVar7 + -0x1f0) = (*puVar1 ^ uVar27) - (*puVar4 ^ uVar38) ^ uVar34;
  uVar34 = *(ulonglong *)(lVar7 + -0x6b8) ^ uVar22 ^ uVar34;
  uVar22 = (ulonglong)DAT_18267157c;
  *puVar2 = uVar34;
  *(ulonglong *)(lVar7 - (uVar22 ^ 0x5a58eef2)) = (uVar34 >> 0x20 ^ uVar26) >> 0x1a ^ uVar23;
  uVar22 = CONCAT44(uVar6,DAT_18267159c);
  *puVar1 = (uVar38 ^ *puVar2) << ((local_100 ^ 0x24) & 0x3f) ^ uVar38;
  *puVar4 = (uVar22 ^ 0xb1b40bcecb649444) - (*puVar3 ^ uVar23);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar5 ^ uVar30) * 4) = uVar18;
  return;
}



############ FUN_ 180eb1ce0 size=5139 ############

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

void FUN_180eb1ce0(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_res18;
  byte local_d0;
  byte local_90;
  ulonglong uVar33;
  
  uVar7 = DAT_1826718b0;
  uVar14 = DAT_1826716f8;
  uVar12 = DAT_1826715a8;
  uVar11 = DAT_1826715a0;
  uVar10 = DAT_18267159c;
  uVar9 = DAT_182671590;
  uVar6 = DAT_18267157c;
  uVar4 = DAT_182671568;
  uVar40 = (ulonglong)DAT_18267157c;
  uVar28 = (ulonglong)DAT_18267159c;
  uVar21 = DAT_18267157c - DAT_18267159c;
  uVar24 = (ulonglong)DAT_182671590;
  uVar43 = (ulonglong)DAT_1826715a0;
  uVar35 = (ulonglong)DAT_1826715a8;
  DAT_182671570 = DAT_182671568 << 0x10 | DAT_182671568 >> 0x10;
  uVar23 = DAT_182671590 ^ DAT_1826715a8;
  uVar32 = DAT_1826715a0 << 0x10 | DAT_1826715a0 >> 0x10;
  uVar33 = (ulonglong)uVar32;
  uVar18 = *(uint *)(&DAT_182611e78 + DAT_182671bb8) ^ DAT_18267159c;
  uVar16 = *(uint *)(&DAT_182611e80 + DAT_182671bb8) ^ DAT_18267157c;
  uVar36 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar41 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  uVar25 = (ulonglong)uVar21;
  uVar29 = (CONCAT44(DAT_182671844,DAT_182671844) ^ *(ulonglong *)(DAT_182671560 + -0x2a0)) -
           (uVar36 ^ *(ulonglong *)(DAT_182671560 + -0xa88)) ^ uVar41;
  DAT_182671574 = uVar32;
  DAT_182671584 = uVar21;
  DAT_182671594 = uVar23;
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar29;
  uVar5 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar27 = (ulonglong)uVar4;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar32 ^ 0xc4b953b9)) =
       (CONCAT44(uVar21,uVar11) ^ 0x5d152214b902435c) >> (((byte)uVar29 ^ (byte)uVar7) & 0x3f);
  uVar37 = CONCAT44(DAT_182671770,DAT_182671770);
  uVar44 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xd6021344)) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x638)) - (uVar37 ^ *(ulonglong *)(lVar2 + -0x5c8)) ^
       uVar44;
  uVar31 = (ulonglong)uVar23;
  uVar29 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar2 + -0x688) =
       CONCAT44(_DAT_1826715f0,_DAT_1826715f0) ^ CONCAT44(uVar5,uVar23) ^ uVar29 ^
       *(ulonglong *)(lVar2 + -0x240) ^ 0xe55329fd12ee4df2;
  uVar8 = DAT_1826718c4;
  *(ulonglong *)(lVar2 + -0x6d0) =
       (CONCAT44(uVar9,uVar10) ^ 0xc44a2a3e138a035f) + (uVar41 ^ *(ulonglong *)(lVar2 + -0x638));
  uVar7 = DAT_182671678;
  uVar22 = DAT_182671638;
  lVar3 = DAT_182671560;
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar29 = (*(ulonglong *)(lVar2 - (uVar35 ^ 0xf7eaea21)) ^ uVar37) +
           (*(ulonglong *)(lVar2 - (uVar43 ^ 0x57b9c231)) ^ uVar29) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar29;
  uVar8 = DAT_1826716c4;
  uVar37 = CONCAT44(uVar7,uVar7);
  puVar34 = (ulonglong *)(lVar2 - (uVar25 ^ 0xf3877389));
  uVar30 = *puVar34 ^ uVar37 ^ CONCAT44(uVar22,uVar22) ^ uVar29 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x510) = uVar30;
  uVar7 = DAT_182671740;
  bVar17 = (byte)uVar12;
  uVar29 = ((ulonglong)uVar22 << 0x1b | (ulonglong)(uVar22 >> 5)) ^ uVar30 >> 5;
  uVar39 = (uVar30 ^ CONCAT44(uVar22,uVar22)) << ((bVar17 ^ 0xd2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x610) = uVar29 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar39 ^ CONCAT44(uVar7,uVar7);
  uVar22 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671720;
  uVar38 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar26 = CONCAT44(DAT_182671780,DAT_182671780);
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671570 ^ 0x1aacd03a)) ^ uVar41) <<
       ((byte)uVar29 & 0x3f);
  puVar19 = (ulonglong *)(lVar2 - (uVar27 ^ 0xd6021a0c));
  *(ulonglong *)(lVar2 + -0xa0) = (uVar39 | uVar29) ^ uVar26;
  uVar39 = CONCAT44(DAT_182671664,DAT_182671664);
  uVar29 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar2 + -0x3b8) =
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar37) - (*puVar19 ^ uVar26) ^ uVar39;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x1aacd34a)) =
       uVar29 ^ uVar44 ^ *(ulonglong *)(lVar2 + -0x9e8) ^ *(ulonglong *)(lVar2 + -0x670) ^ uVar38;
  uVar38 = (*(ulonglong *)(lVar2 + -0x548) ^ uVar38) << 0x1b;
  uVar37 = (*(ulonglong *)(lVar2 + -0x548) >> 0x20 ^ uVar30) >> 5;
  uVar29 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar2 + -0x9f8) = uVar37 ^ CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar8 = DAT_182671888;
  *(ulonglong *)(lVar2 + -0x628) = uVar38 ^ uVar29;
  uVar7 = DAT_182671878;
  uVar13 = DAT_1826716f0;
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar38 = uVar38 | uVar37;
  uVar29 = (ulonglong)DAT_1826716f0;
  *(ulonglong *)(lVar2 + -0x80) = uVar38 ^ uVar30;
  lVar2 = DAT_182671560;
  uVar42 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       (uVar44 ^ *(ulonglong *)(DAT_182671560 + -0x9e8)) - uVar38 ^ uVar42;
  uVar38 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xa88) =
       *(ulonglong *)(lVar2 - (uVar24 ^ 0x1afb5c3c)) ^ CONCAT44(uVar6,uVar23) ^ 0xb50ef41c929e64b6;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x1aacd4a2)) =
       *(ulonglong *)(lVar2 - (uVar27 ^ 0xd6021a2c)) ^ uVar38 ^ uVar30 ^ uVar39 ^
       *(ulonglong *)(lVar2 + -0x3b8);
  uVar7 = DAT_1826716e8;
  uVar37 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(lVar2 + -0x400) =
       ((ulonglong)(uVar13 >> 0x17) | uVar29 << 9) ^ *(ulonglong *)(lVar2 + -0x2a0) >> 0x17 ^ uVar37
  ;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x240) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0xf7eaed49)) ^ uVar38) <<
       (((byte)(uVar11 >> 0x10) ^ 0x90) & 0x3f) ^ uVar29;
  lVar3 = DAT_182671560;
  puVar20 = (ulonglong *)(lVar2 - (uVar25 ^ 0xf3877dc1));
  *puVar20 = CONCAT44(uVar11,uVar6) ^ 0xe6bbddb2ac7bf75f | 0x86185c22ac28b71e;
  uVar7 = DAT_1826715bc;
  uVar41 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar29 = uVar29 ^ *(ulonglong *)(lVar3 + -0x240) | *(ulonglong *)(lVar3 + -0x400) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar29 ^ uVar41;
  lVar2 = DAT_182671560;
  uVar30 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x1afb5b6c)) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x3b8)) - uVar29 ^ uVar30;
  uVar7 = DAT_182671808;
  uVar29 = CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar26 = *(ulonglong *)(lVar3 - (uVar35 ^ 0xf7eaef49)) ^
           *(ulonglong *)(lVar2 - (uVar24 ^ 0x1afb51ec)) ^ uVar29 ^ uVar42 ^ uVar26;
  bVar1 = (byte)DAT_182671570;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar26;
  uVar39 = (uVar26 ^ uVar29) >> ((bVar1 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar2 + -0x510) = uVar39 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671734;
  *(ulonglong *)(lVar2 + -0x638) = uVar39 | CONCAT44(uVar21,uVar23) ^ 0xf9043ef2dcadec65;
  uVar8 = DAT_182671754;
  lVar2 = DAT_182671560;
  uVar37 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (uVar26 ^ uVar29) << (((byte)uVar23 ^ 0x15) & 0x3f) ^ uVar37;
  uVar35 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x1afb5c14)) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0xf3877d01)) ^ uVar37 | uVar39) ^ uVar35;
  uVar44 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0x1d8568fc)) =
       (uVar42 ^ *(ulonglong *)(lVar2 + -0xc08)) - (uVar35 ^ *(ulonglong *)(lVar2 + -0x1f0)) ^
       uVar44;
  uVar37 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar2 + -0x670) =
       uVar37 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x1f0) ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x688);
  *(int *)(lVar2 - (uVar24 ^ 0x1afb5e30)) = *(int *)(lVar2 + -0x47c) + -0x6daa0336;
  lVar2 = DAT_182671560;
  uVar35 = (*(ulonglong *)(DAT_182671560 + -0x670) ^ uVar37) >> (((byte)uVar4 ^ 0x98) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar35 ^ CONCAT44(DAT_182671684,DAT_182671684);
  local_d0 = (byte)uVar10;
  *(ulonglong *)(lVar2 + -0x9f8) = *(ulonglong *)(lVar2 + -0x638) >> ((local_d0 ^ 0x5a) & 0x3f);
  lVar3 = DAT_182671560;
  uVar37 = (*(ulonglong *)(lVar2 - (uVar31 ^ 0xed11b47d)) ^ uVar37) << (((byte)uVar4 ^ 0xa0) & 0x3f)
  ;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar37 ^ CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar8 = DAT_1826717b4;
  *(ulonglong *)(lVar3 + -0x9e8) =
       (CONCAT44(uVar11,uVar11) ^ 0x293f6918ed40fe42) + (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar29);
  uVar7 = DAT_1826716b8;
  uVar29 = (ulonglong)DAT_182671570;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x1d8) = (uVar35 | uVar37) ^ uVar26;
  uVar8 = DAT_1826717b8;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0xa88) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0x688)) -
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x1aacd7da)) ^ uVar26) ^ uVar24;
  uVar37 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x57b9c439)) =
       *(ulonglong *)(lVar3 + -0x5c8) ^ uVar37 ^ uVar44 ^ *puVar34 ^ uVar41;
  uVar37 = *(ulonglong *)(lVar3 + -0x80) ^ uVar37;
  uVar35 = uVar37 >> ((bVar1 ^ 0x3b) & 0x3f);
  uVar29 = CONCAT44(DAT_18267174c,DAT_18267174c);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar35 ^ CONCAT44(DAT_182671708,DAT_182671708);
  uVar7 = DAT_182671840;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar37 << 7 ^ uVar29;
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar35 = *puVar20 ^ uVar29 | uVar35;
  uVar39 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(lVar3 + -0x400) = uVar35 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x240) = (*(ulonglong *)(lVar3 + -0x898) ^ uVar44) - uVar35 ^ uVar39;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x57b9c701)) =
       (CONCAT44(uVar21,uVar23) ^ 0x6e90e74be0e935be) - (*(ulonglong *)(lVar3 + -0x1d8) ^ uVar26);
  uVar7 = DAT_182671820;
  uVar30 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar35 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar37 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x29fdefdb)) ^ *(ulonglong *)(lVar3 + -0x400) ^ uVar30 ^
           uVar37 ^ uVar24;
  *(ulonglong *)(lVar3 + -0xa0) = uVar37;
  *(ulonglong *)(lVar3 + -0x510) = (*puVar19 ^ uVar30) >> ((bVar17 ^ 0xe7) & 0x3f) ^ uVar35;
  uVar8 = DAT_182671620;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0x1aacd012)) =
       (uVar30 ^ uVar37) << 0x32 ^ uVar29;
  uVar6 = DAT_1826715ac;
  uVar37 = *(ulonglong *)(lVar3 + -0x610) ^ uVar29 | *(ulonglong *)(lVar3 + -0x510) ^ uVar35;
  uVar41 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0xc08) = uVar37 ^ CONCAT44(DAT_182671854,DAT_182671854);
  uVar7 = DAT_1826717e4;
  uVar35 = (uVar24 ^ *(ulonglong *)(lVar3 + -0xa88)) - (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar44);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar35 ^ uVar36;
  uVar35 = uVar35 - uVar37;
  uVar29 = *(ulonglong *)(lVar3 + -0x240);
  uVar24 = CONCAT44(uVar7,uVar7);
  *(int *)(lVar3 + -0x874) = *(int *)(lVar3 + -0x344) - *(int *)(lVar3 + -0x3d4);
  uVar7 = DAT_182671608;
  *(ulonglong *)(lVar3 + -0x638) = uVar35 ^ uVar24;
  uVar15 = DAT_182671804;
  uVar44 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x9f8) =
       uVar37 - (*(ulonglong *)(lVar3 - (uVar33 ^ 0xc4b951b9)) ^ CONCAT44(uVar8,uVar8)) ^ uVar44;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x670) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0x29fde48b)) ^ uVar37 ^ uVar39 ^ uVar26 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x8a8) = CONCAT44(uVar12,uVar9) ^ 0xbbd252a5f1f9b3cb | uVar35;
  uVar8 = DAT_182671728;
  uVar7 = DAT_18267158c;
  uVar37 = *(ulonglong *)(lVar3 + -0x670) ^ uVar37;
  uVar35 = uVar37 >> ((bVar17 ^ 0xf9) & 0x3f);
  uVar30 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar35 ^ CONCAT44(DAT_1826717d4,DAT_1826717d4);
  lVar2 = DAT_182671560;
  uVar26 = CONCAT44(uVar8,uVar8);
  local_res18 = (byte)uVar11;
  uVar37 = uVar37 << ((local_res18 ^ 0x89) & 0x3f);
  *(ulonglong *)(lVar3 + -0x548) = uVar37 ^ uVar30;
  uVar37 = uVar37 | uVar35;
  *(ulonglong *)(lVar3 + -0x628) = uVar37 ^ uVar26;
  uVar8 = DAT_182671774;
  uVar22 = DAT_18267156c;
  *(ulonglong *)(lVar2 + -0x688) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267156c ^ 0x28007c2)) ^ uVar30 |
       CONCAT44(uVar9,uVar7) ^ 0x8de16ecde52ed8f0;
  uVar7 = DAT_182671704;
  uVar29 = (uVar39 ^ uVar29) - (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0x318));
  uVar35 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar2 + -0x5c8) = uVar29 ^ uVar38;
  uVar39 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar2 + -0x80) = uVar29 - uVar37 ^ uVar35;
  uVar8 = DAT_18267171c;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (*(ulonglong *)(lVar2 - (uVar40 ^ 0x1d85664c)) ^ uVar26) -
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0x6b8)) ^ uVar39;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar26 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(uVar26 ^ *(ulonglong *)(lVar2 + -0xb78)) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0x29fde36b)) ^ uVar36 ^ uVar24;
  uVar37 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  local_90 = (byte)uVar14;
  uVar29 = *(ulonglong *)(lVar2 - (uVar25 ^ 0xf3877069));
  *(ulonglong *)(lVar2 + -0x6d0) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x548)) << ((local_90 ^ *(byte *)(lVar2 + -0x1f0)) & 0x3f);
  uVar8 = DAT_1826715a4;
  puVar19 = (ulonglong *)((uVar29 ^ uVar26) + 8);
  *(ulonglong *)(lVar2 + -0x4a0) = (ulonglong)puVar19 ^ uVar37;
  *puVar19 = *(ulonglong *)(lVar2 - (uVar28 ^ 0x29fdecab)) ^ uVar36 ^ uVar44;
  uVar7 = DAT_182671884;
  *(ulonglong *)(lVar2 + -0x898) =
       CONCAT44(uVar6,uVar8) ^ 0x8f3f3229aa528bc4 | CONCAT44(uVar12,uVar32) ^ 0xa9c13655dea84e0;
  uVar29 = (ulonglong)DAT_182671598;
  uVar37 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x230) = (uVar26 ^ *(ulonglong *)(lVar2 + -0xb78)) + 0x10 ^ uVar37;
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar29 ^ 0xe45df92a)) ^ uVar37) =
       uVar36 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x80);
  uVar7 = DAT_182671578;
  uVar29 = CONCAT44(DAT_182671794,DAT_182671794);
  uVar37 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xc4b953e9)) =
       (*(ulonglong *)(lVar2 - (uVar40 ^ 0x1d856b1c)) ^ uVar26) +
       (CONCAT44(DAT_182671578,uVar9) ^ 0x1afb5de41afb5de7) * 8 ^ uVar29;
  lVar2 = DAT_182671560;
  puVar19 = (ulonglong *)(DAT_182671560 - (uVar33 ^ 0xc4b95789));
  *(ulonglong *)(*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xaac63981)) ^ uVar29) =
       uVar36 ^ uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x2a0);
  *puVar19 = uVar26 ^ *(ulonglong *)(lVar2 + -0xb78);
  *(undefined8 *)(lVar2 - (uVar25 ^ 0xf3877db1)) = *(undefined8 *)(lVar2 + -0x178);
  uVar25 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar2 + -0x3a0) = uVar25 ^ *(ulonglong *)(lVar2 + -0x30);
  *(undefined8 *)(lVar2 - (uVar31 ^ 0xed11b5b5)) = *(undefined8 *)(lVar2 - (uVar27 ^ 0xd6021c0c));
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xed11b015)) =
       *(longlong *)(lVar2 + -0x7b8) + (CONCAT44(DAT_182671588,uVar8) ^ 0xa338e774ff0061bf) * 8;
  uVar29 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar27 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(lVar2 + -0x3b8) = **(ulonglong **)(lVar2 + -0x7b8) ^ uVar27 ^ uVar29;
  uVar8 = DAT_182671580;
  **(ulonglong **)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0xd7338f1c)) =
       CONCAT44(DAT_182671588,DAT_182671580) ^ 0xe7fead9566f4699f;
  uVar6 = DAT_182671570;
  uVar24 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x7bfff324)) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x3a0)) + (CONCAT44(uVar22,uVar7) ^ 0x280028a1afb5de5) * 8;
  puVar19 = (ulonglong *)(uVar25 ^ *(ulonglong *)(lVar3 + -0x3a0));
  uVar35 = CONCAT44(DAT_18267181c,DAT_18267181c);
  uVar25 = *puVar19 ^ uVar35 ^ uVar36;
  uVar31 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(lVar3 + -0x400) = uVar25;
  uVar29 = *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x1aacd5ba)) ^ uVar31 ^ uVar25 ^ uVar35 ^
           uVar29;
  *(ulonglong *)(lVar3 + -0xa0) = uVar29;
  *puVar19 = uVar31 ^ uVar36 ^ uVar29;
  *(undefined8 *)(lVar3 + -0xa38) = *(undefined8 *)(lVar3 + -0x218);
  uVar7 = DAT_18267186c;
  *(ulonglong *)(lVar3 + -0x220) = *(ulonglong *)(lVar3 + -0xcc8);
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x438) = uVar29 ^ *(ulonglong *)(lVar3 + -0xcc8);
  uVar22 = DAT_1826715a0 * uVar6;
  DAT_182671588 = uVar22;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xaac63bc1)) =
       CONCAT44(uVar8,uVar4) ^ 0x6f605dc750636d75 | CONCAT44(uVar12,uVar11) ^ 0x15d4b3f7df155814;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar6 ^ 0x1aacde32)) = *(undefined8 *)(lVar3 + -0xa38);
  uVar7 = DAT_182671800;
  *(ulonglong *)(lVar3 + -0x178) =
       *(longlong *)(lVar3 - ((ulonglong)uVar22 ^ 0xf0322742)) +
       (CONCAT44(uVar11,uVar6) ^ 0x57b9c4b91aacd603) * 8;
  uVar37 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x510) = **(ulonglong **)(lVar3 + -0x830) ^ uVar37 ^ uVar27;
  **(ulonglong **)(lVar3 + -0x6f0) = CONCAT44(uVar5,uVar11) ^ 0xa3e00eecc67e2b09;
  puVar19 = (ulonglong *)(uVar29 ^ *(ulonglong *)(lVar3 + -0x438));
  *(ulonglong **)(lVar3 + -0x30) = puVar19 + (CONCAT44(uVar22,uVar22) ^ 0xf0322f72f0322f73);
  uVar27 = CONCAT44(DAT_182671698,DAT_182671698);
  uVar29 = uVar27 ^ uVar36 ^ *puVar19;
  uVar25 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar29;
  uVar29 = uVar25 ^ uVar29 ^ uVar27 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x510);
  *(ulonglong *)(lVar3 + -0xa88) = uVar29;
  *puVar19 = uVar25 ^ uVar36 ^ uVar29;
  *(undefined8 *)(lVar3 + -0x6a0) = *(undefined8 *)(lVar3 + -0x30);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar22 ^ 0xf03225ca)) = *(undefined8 *)(lVar3 + -0x178);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x1aacd1ba)) =
       CONCAT44(DAT_18267172c,DAT_18267172c) ^ *(ulonglong *)(lVar3 + -0x6a0);
  *(undefined8 *)(lVar3 + -0x600) = 0x34d3be3121cd3a71;
  *(undefined8 *)(lVar3 + -0xb78) = *(undefined8 *)(lVar3 - (uVar43 ^ 0x57b9ce01));
  *(ulonglong *)(lVar3 + -0xcc8) =
       *(longlong *)(lVar3 - (uVar43 ^ 0x57b9cfc1)) +
       (CONCAT44(uVar22,uVar11) ^ 0xf0322f7257b9c4b8) * 8;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar18;
  return;
}



############ FUN_ 180f27a20 size=5479 ############

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

void FUN_180f27a20(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte bVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  byte local_130;
  byte local_108;
  byte local_f8;
  byte local_c8;
  
  uVar13 = DAT_1826715b0;
  uVar12 = DAT_1826715a4;
  uVar8 = DAT_18267159c;
  uVar6 = DAT_182671574;
  uVar30 = DAT_182671570;
  uVar5 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar18 = DAT_182671588 & 3;
  if (uVar18 < 2) {
    DAT_182671590 = DAT_182671584;
    if (uVar18 == 0) {
      DAT_182671590 = DAT_182671588;
    }
  }
  else {
    DAT_182671590 = DAT_1826715b4;
    if (uVar18 < 3) {
      DAT_182671590 = DAT_182671568;
    }
  }
  uVar45 = (ulonglong)DAT_1826715a4;
  uVar25 = (ulonglong)DAT_182671574;
  uVar31 = (ulonglong)DAT_182671570;
  uVar35 = (ulonglong)DAT_18267159c;
  uVar40 = (ulonglong)DAT_1826715b0;
  uVar19 = DAT_1826715a4 + DAT_18267156c;
  uVar47 = DAT_182671574 & DAT_18267159c;
  uVar21 = DAT_182671570 ^ DAT_1826715b0;
  uVar42 = *(uint *)(&DAT_182611e78 + DAT_182671a34) ^ DAT_18267156c;
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_182671a34) ^ DAT_1826715a4;
  uVar28 = CONCAT44(DAT_182671634,DAT_182671634);
  uVar49 = (ulonglong)uVar21;
  DAT_182671578 = uVar19;
  DAT_182671594 = uVar21;
  DAT_1826715ac = uVar47;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0x491e3d2e)) ^ uVar28) +
       0xb56a8ba999c4a35d;
  uVar7 = DAT_182671678;
  puVar23 = (ulonglong *)(lVar3 - (uVar49 ^ 0x6e2698a9));
  puVar1 = (ulonglong *)(lVar3 + -0x800);
  uVar32 = (CONCAT44(DAT_182671718,DAT_182671718) ^ *puVar23) << (((byte)uVar13 ^ 0x30) & 0x3f);
  uVar27 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar3 + -0x1d8) = uVar32 ^ uVar27;
  uVar18 = DAT_182671588;
  uVar20 = CONCAT44(uVar7,uVar7);
  uVar43 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  uVar36 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x4e2f3c00)) = (uVar20 ^ *puVar1 | uVar32) ^ uVar43;
  uVar7 = _DAT_1826715e0;
  uVar11 = DAT_182671598;
  uVar37 = (uVar36 ^ *(ulonglong *)(lVar3 + -0x8a8)) - (CONCAT44(uVar18,uVar6) ^ 0xb55ede9541ed7489)
  ;
  uVar36 = (ulonglong)DAT_182671598;
  puVar2 = (ulonglong *)(lVar3 + -0xbf0);
  uVar32 = (ulonglong)DAT_182671598;
  uVar22 = DAT_182671598 - DAT_18267158c;
  *(ulonglong *)(lVar3 + -0xc08) = uVar37 ^ CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar14 = DAT_18267177c;
  uVar48 = CONCAT44(uVar7,uVar7);
  DAT_1826715a0 = uVar22;
  *puVar2 = uVar37 - (*(ulonglong *)(lVar3 - (uVar32 ^ 0x8a2d1308)) ^ uVar43) ^ uVar48;
  lVar3 = DAT_182671560;
  uVar50 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(DAT_182671560 + -0x80) ^ uVar43) -
       (CONCAT44(uVar22,DAT_18267158c) ^ 0x136c705d9bc2ab0b) ^ uVar50;
  uVar9 = DAT_182671590;
  uVar32 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(lVar3 + -0x318) =
       CONCAT44(DAT_182671638,DAT_182671638) ^ *(ulonglong *)(lVar3 + -0x6d0) ^
       *(ulonglong *)(lVar3 + -0x670) ^ uVar32 ^ uVar28;
  uVar18 = DAT_182671568;
  uVar43 = (ulonglong)uVar47;
  *(ulonglong *)(lVar3 + -0x898) =
       CONCAT44(DAT_182671568,uVar9) ^ 0x577fc2fb1a67ba21 | *(ulonglong *)(lVar3 + -0x2a0);
  puVar33 = (ulonglong *)(lVar3 - ((ulonglong)uVar47 ^ 0x44260798));
  uVar34 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar32 ^ *puVar33) >> (((byte)DAT_1826715b4 ^ 0x10) & 0x3f) ^ uVar34;
  uVar7 = DAT_18267186c;
  uVar9 = DAT_182671584;
  lVar3 = DAT_182671560;
  uVar41 = (ulonglong)DAT_182671584;
  bVar16 = (byte)DAT_182671584;
  uVar37 = (*(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x442686a3)) ^ uVar32) <<
           ((bVar16 ^ 0x94) & 0x3f);
  uVar32 = (ulonglong)DAT_182671580;
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar37 ^ CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x823b041a)) ^ uVar34 | uVar37) ^ uVar38;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x4e2f3480)) =
       (*(ulonglong *)(lVar3 + -0x6d0) ^ uVar28) - (CONCAT44(uVar11,uVar22) ^ 0xda34033104699602) ^
       uVar50;
  uVar38 = uVar38 ^ *(ulonglong *)(lVar3 + -0x110);
  uVar26 = CONCAT44(DAT_182671744,DAT_182671744);
  uVar28 = CONCAT44(uVar19,uVar8);
  *(ulonglong *)(lVar3 + -0x1d8) = (uVar50 ^ *puVar1) - uVar38 ^ uVar26;
  uVar24 = CONCAT44(DAT_182671624,DAT_182671624);
  bVar29 = (byte)uVar30;
  uVar37 = (uVar28 ^ 0xcb64165d0756886f) + uVar38 ^ uVar24;
  uVar34 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar37;
  uVar32 = *puVar2;
  uVar37 = uVar32 ^ uVar34 ^ uVar37 ^ uVar24 ^ uVar48;
  *(ulonglong *)(lVar3 + -0xc08) = uVar37;
  uVar34 = uVar34 ^ uVar37;
  bVar46 = (byte)uVar5;
  uVar37 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar3 + -0x80) = uVar34 >> ((bVar46 ^ 0xa8) & 0x3f) ^ uVar37;
  uVar7 = DAT_1826716e4;
  uVar34 = uVar34 << ((bVar29 ^ 0x9b) & 0x3f);
  uVar39 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar3 + -0x670) = uVar34 ^ uVar39;
  uVar14 = DAT_182671880;
  uVar44 = CONCAT44(uVar7,uVar7);
  uVar34 = *(ulonglong *)(lVar3 - (uVar49 ^ 0x6e269939)) ^ uVar37 | uVar34;
  *(ulonglong *)(lVar3 + -0x898) = uVar34 ^ uVar44;
  uVar24 = CONCAT44(uVar14,uVar14);
  uVar37 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x2a001ea2)) = (uVar32 ^ uVar48) - uVar34 ^ uVar24;
  uVar10 = DAT_182671590;
  uVar34 = CONCAT44(DAT_182671780,DAT_182671780);
  uVar32 = *(ulonglong *)(lVar3 - (uVar37 ^ 0x6e269733)) ^ uVar34 ^ uVar26 ^ uVar50 ^
           *(ulonglong *)(lVar3 + -0x1d8);
  uVar40 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(lVar3 + -0x318) = uVar32;
  *(ulonglong *)(lVar3 + -0x628) = (uVar32 ^ uVar34) >> ((bVar46 ^ 0xa8) & 0x3f) ^ uVar40;
  *(undefined1 *)(lVar3 - (uVar36 ^ 0x8a2d1181)) = **(undefined1 **)(lVar3 - (uVar41 ^ 0x6656da84));
  uVar14 = DAT_182671770;
  local_f8 = (byte)uVar12;
  uVar32 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(lVar3 + -0x240) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar34) << ((local_f8 ^ 0x56) & 0x3f) ^ uVar32;
  uVar7 = DAT_1826715b8;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar32 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x962f39c8)) ^ uVar32 |
           uVar40 ^ *(ulonglong *)(lVar3 + -0x628);
  puVar51 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671588 ^ 0x95a35680));
  *(ulonglong *)(lVar3 + -0x6d0) = uVar32 ^ uVar37;
  uVar40 = CONCAT44(uVar7,uVar7);
  uVar41 = CONCAT44(DAT_182671714,DAT_182671714);
  *puVar1 = (uVar26 ^ *puVar51) - uVar32 ^ uVar40;
  uVar8 = DAT_182671580;
  lVar3 = DAT_182671560;
  *puVar23 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0x823b04e2)) ^
             *(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar41 ^ uVar37 ^ uVar24;
  uVar7 = DAT_1826716ec;
  *(ulonglong *)(lVar3 + -0x8a8) = CONCAT44(uVar19,uVar47) ^ 0xc31e25bbc6ad0590 | uVar40 ^ *puVar1;
  uVar14 = DAT_182671800;
  lVar3 = DAT_182671560;
  uVar34 = CONCAT44(uVar7,uVar7);
  uVar37 = uVar41 ^ *(ulonglong *)(DAT_182671560 + -0x110);
  uVar32 = uVar37 >> ((bVar29 ^ 0x81) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xc08) = uVar32 ^ uVar34;
  uVar7 = DAT_182671700;
  uVar37 = uVar37 << ((bVar16 ^ 0xa2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x80) = uVar37 ^ CONCAT44(uVar14,uVar14);
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0x670) = (uVar37 | uVar32) ^ uVar38;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671568 ^ 0x6e26964b)) =
       (CONCAT44(uVar10,uVar19) ^ 0xc57b272634eeaf76) -
       (CONCAT44(uVar12,uVar5) ^ 0xa7534a3d31ded426);
  uVar10 = DAT_1826715b4;
  uVar48 = CONCAT44(DAT_182671768,DAT_182671768);
  bVar16 = (byte)DAT_1826715b4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x823b08ba)) =
       (*(ulonglong *)(lVar3 + -0x2a0) ^ uVar24) - (*(ulonglong *)(lVar3 + -0x670) ^ uVar38) ^
       uVar48;
  *(ulonglong *)(lVar3 + -0x318) =
       CONCAT44(DAT_18267158c,uVar10) ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x110) ^ 0x3d4b771177d2d4c6
  ;
  uVar7 = DAT_182671870;
  uVar37 = CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar32 = uVar37 ^ uVar40 ^ uVar44 ^ *puVar1 ^ *(ulonglong *)(lVar3 + -0x898);
  *(ulonglong *)(lVar3 + -0x628) = uVar32;
  uVar41 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xc52606fb)) =
       (uVar32 ^ uVar37) >> ((bVar16 ^ 0x16) & 0x3f) ^ uVar41;
  uVar5 = DAT_182671590;
  uVar7 = DAT_18267157c;
  lVar3 = DAT_182671560;
  uVar50 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar32 = CONCAT44(DAT_18267157c,uVar22);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0xf3fdd9d8)) =
       (*(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x4e2f3aa8)) ^ uVar37) <<
       (((byte)uVar8 ^ 0x18) & 0x3f) ^ uVar50;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (CONCAT44(uVar47,uVar5) ^ 0x323a45f5bf8ab379) - (uVar32 ^ 0x91212dc3d2d20539);
  uVar14 = DAT_182671810;
  uVar24 = (ulonglong)DAT_182671588;
  uVar26 = CONCAT44(DAT_182671854,DAT_182671854);
  uVar32 = *(ulonglong *)(lVar3 - (uVar35 ^ 0x4e2f3ec0)) ^ uVar41 |
           uVar50 ^ *(ulonglong *)(lVar3 + -0x1d8);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar32 ^ uVar26;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar37 = (ulonglong)DAT_182671850;
  uVar35 = CONCAT44(DAT_182671850,DAT_182671850);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x442689b3)) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x95a35f58)) ^ uVar40) - uVar32 ^ uVar41;
  uVar32 = uVar35 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x8a8) ^ uVar48 ^
           *(ulonglong *)(lVar3 + -0xa88);
  uVar24 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar3 + -0x80) = uVar32;
  *(ulonglong *)(lVar3 - (uVar45 ^ 0xacee7786)) = (uVar32 >> 0x20 ^ uVar37) >> 0xe ^ uVar24;
  uVar14 = DAT_1826717c8;
  uVar5 = DAT_1826715a8;
  uVar32 = (uVar35 ^ *(ulonglong *)(lVar3 + -0x80)) << 0x12;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar32 ^ CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar32 = uVar32 | uVar24 ^ *puVar2;
  *(ulonglong *)(lVar3 + -0x318) = uVar32 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x110) =
       CONCAT44(uVar5,uVar6) ^ CONCAT44(uVar18,uVar19) ^ 0x8d74f451126b6b2e;
  lVar3 = DAT_182671560;
  bVar16 = (byte)DAT_182671580;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (*(ulonglong *)(DAT_182671560 - (uVar49 ^ 0x6e269331)) ^ uVar48) - uVar32 ^ uVar20;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x442602a8)) =
       (CONCAT44(DAT_18267158c,uVar11) ^ 0xd179c577e2c4964c) << ((bVar16 ^ 1) & 0x3f);
  lVar4 = DAT_182671560;
  uVar40 = CONCAT44(DAT_182671720,DAT_182671720);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xc526026b)) =
       uVar40 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x670) ^ uVar38 ^ *(ulonglong *)(lVar3 + -0xc08);
  uVar45 = CONCAT44(DAT_182671828,DAT_182671828);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x8a2d11c8)) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x6d0)) >> (((byte)uVar7 ^ 0xc) & 0x3f) ^ uVar45;
  *puVar51 = (uVar45 ^ *(ulonglong *)(lVar4 + -0x240)) -
             (CONCAT44(uVar13,uVar9) ^ 0x8b313a07324663c7);
  uVar24 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar32 = *(ulonglong *)(lVar4 + -0x240);
  uVar49 = *(ulonglong *)(lVar4 + -0xc08);
  uVar38 = CONCAT44(DAT_18267187c,DAT_18267187c);
  local_108 = (byte)uVar19;
  uVar37 = (ulonglong)DAT_182671568;
  *puVar1 = (uVar40 ^ *(ulonglong *)(lVar4 + -0x6d0)) << (((byte)uVar21 ^ 0x8d) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar4 + -0x8a8) =
       (CONCAT44(uVar22,uVar10) ^ 0xdd737d26c0fd123d) << ((bVar29 ^ 0x97) & 0x3f);
  uVar37 = *(ulonglong *)(lVar4 - (uVar37 ^ 0x6e2695bb)) ^ uVar24 | uVar45 ^ uVar32;
  uVar24 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar4 + -0x80) = uVar37 ^ uVar38;
  *puVar2 = (uVar41 ^ uVar49) - uVar37 ^ uVar24;
  uVar14 = DAT_182671834;
  *(ulonglong *)(lVar4 + -0x2a0) =
       (CONCAT44(uVar47,uVar12) ^ 0xb91b59558d659601) + (uVar20 ^ *(ulonglong *)(lVar4 + -0x898));
  uVar5 = DAT_182671590;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x110) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671590 ^ 0x95a357d8)) ^ uVar32 ^ uVar38 ^ uVar20 ^
       *(ulonglong *)(lVar4 + -0x898);
  uVar32 = uVar32 ^ *(ulonglong *)(lVar4 + -0x110);
  *(ulonglong *)(lVar4 + -0xa88) = CONCAT44(uVar9,uVar13) ^ 0x9b0e3da0f9db460f | uVar37;
  uVar6 = DAT_1826715a8;
  uVar37 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar4 + -0x628) = uVar32 >> ((local_108 ^ 0xe7) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xc52602cb)) =
       uVar32 << (((byte)DAT_18267158c ^ 0xaf) & 0x3f) ^ uVar39;
  uVar14 = DAT_18267185c;
  uVar32 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267158c ^ 0x962f3da0)) ^ uVar27 |
           *(ulonglong *)(lVar4 + -0x670) ^ uVar39;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar32 ^ CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar15 = DAT_182671864;
  lVar3 = DAT_182671560;
  uVar49 = (uVar20 ^ *(ulonglong *)(lVar4 + -0x898)) - (CONCAT44(uVar30,uVar6) ^ 0x6f57f792912089ca)
  ;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar49 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671760;
  uVar27 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar49 - uVar32 ^ uVar27;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar41 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar3 + -0x240) = uVar32 - (CONCAT44(uVar12,uVar5) ^ 0x772ff927b759bfbe) ^ uVar40;
  uVar14 = DAT_1826717e8;
  uVar20 = CONCAT44(DAT_182671774,DAT_182671774);
  uVar32 = *(ulonglong *)(lVar3 - (uVar36 ^ 0x8a2d1090)) ^
           *(ulonglong *)(lVar3 - (uVar43 ^ 0x44260f70)) ^ uVar41 ^ uVar24 ^ uVar26;
  *puVar1 = uVar32;
  uVar30 = DAT_182671598 | DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0xc08) = (uVar32 ^ uVar41) >> (((byte)uVar7 ^ 0x21) & 0x3f) ^ uVar20;
  uVar49 = CONCAT44(uVar14,uVar14);
  DAT_18267158c = uVar30;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x96bf3d4e)) =
       (uVar41 ^ uVar32) << (((byte)uVar47 ^ 0x9f) & 0x3f) ^ uVar49;
  uVar41 = CONCAT44(DAT_182671804,DAT_182671804);
  uVar32 = *puVar2;
  *(ulonglong *)(lVar3 + -0x80) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0x8a2d1f80)) ^ uVar20 |
       *(ulonglong *)(lVar3 - (uVar43 ^ 0x44260620)) ^ uVar49) ^ uVar41;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x8a2d1900)) =
       (uVar24 ^ uVar32) - (CONCAT44(uVar30,uVar30) ^ 0x2ebebfd5c3c2870b) ^ uVar34;
  lVar3 = DAT_182671560;
  uVar36 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (uVar34 ^ *(ulonglong *)(DAT_182671560 + -0xa88)) -
       (*(ulonglong *)(DAT_182671560 + -0x80) ^ uVar41) ^ uVar36;
  *(undefined1 *)(lVar3 - (uVar43 ^ 0x44260169)) = **(undefined1 **)(lVar3 + -0x60);
  uVar14 = DAT_1826718a4;
  uVar7 = DAT_1826715ec;
  uVar49 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar32 = (CONCAT44(uVar30,uVar11) ^ 0x1843bddfb2119a58) + (*(ulonglong *)(lVar3 + -0x80) ^ uVar41)
           ^ uVar49;
  *(ulonglong *)(lVar3 + -0x628) = uVar32;
  uVar20 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0xce2f11f8)) =
       uVar27 ^ *(ulonglong *)(lVar3 + -0x8a8) ^ uVar20 ^ uVar32 ^ uVar49;
  uVar7 = DAT_182671824;
  uVar32 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar3 + -0x898) =
       (CONCAT44(uVar30,uVar47) ^ 0x567a662dd9c68bf4) <<
       ((*(byte *)(lVar3 + -0x628) ^ (byte)uVar14) & 0x3f);
  uVar49 = (*(ulonglong *)(lVar3 + -0x670) ^ uVar20) << 0x3b;
  uVar34 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0x6e269bcb)) ^ uVar20) >>
           (((byte)uVar30 ^ 0x8d) & 0x3f);
  uVar32 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar3 + -0x6d0) = uVar34 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x1d8) = uVar49 ^ uVar32;
  uVar32 = *(ulonglong *)(lVar3 + -0x8a8);
  uVar34 = uVar34 | uVar49;
  *(ulonglong *)(lVar3 + -0x318) =
       (CONCAT44(uVar21,uVar11) ^ 0xee0de194551a84fd) -
       (*(ulonglong *)(lVar3 - (uVar43 ^ 0x442602f0)) ^ uVar20);
  uVar20 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *puVar1 = uVar34 ^ uVar20;
  uVar49 = *(ulonglong *)(lVar3 + -0x110);
  uVar34 = (uVar27 ^ uVar32) - uVar34;
  *(ulonglong *)(lVar3 + -0xc08) = uVar34 ^ uVar50;
  uVar7 = DAT_182671664;
  *(ulonglong *)(lVar3 + -0x2a0) = **(ulonglong **)(lVar3 - (uVar37 ^ 0x96bf3ec6)) ^ uVar26;
  uVar32 = CONCAT44(uVar7,uVar7);
  *(int *)(lVar3 + -0x874) = -0x453bcbfd - *(int *)(lVar3 + -0x27c);
  uVar7 = DAT_1826717f0;
  uVar37 = uVar40 ^ uVar49 ^ *(ulonglong *)(lVar3 + -0x240) ^ uVar32 ^ uVar36;
  *puVar2 = uVar37;
  uVar14 = DAT_1826716cc;
  local_130 = (byte)uVar11;
  uVar37 = (uVar37 ^ uVar32) >> ((local_130 ^ 0xad) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa88) = uVar37 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_18267162c;
  local_c8 = (byte)uVar22;
  uVar41 = (*(ulonglong *)(lVar3 - (uVar31 ^ 0x44268e4b)) ^ uVar32) << ((local_c8 ^ 0x1b) & 0x3f);
  *(ulonglong *)(lVar3 + -0x80) = uVar41 ^ CONCAT44(uVar14,uVar14);
  uVar14 = _DAT_1826716c0;
  uVar43 = CONCAT44(uVar7,uVar7);
  uVar41 = uVar41 | uVar37;
  uVar26 = uVar41 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x898) = uVar26;
  uVar5 = DAT_1826717b0;
  lVar3 = DAT_182671560;
  uVar32 = (ulonglong)DAT_1826717b0;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar24 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(DAT_182671560 + -0x628) = (uVar49 ^ uVar36) - uVar41 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x670) = uVar34 ^ uVar24 ^ uVar43 ^ uVar26;
  *puVar33 = (uVar28 ^ 0x8dcd3d9bba5aa97b) + 0xf9044b032afe4f79;
  uVar49 = ((ulonglong)(uVar5 >> 0x17) | uVar32 << 9) ^ *(ulonglong *)(lVar3 + -0x670) >> 0x17;
  *(undefined8 *)(lVar3 + -0x1d8) = 0x3fbbdf2f7f9b697b;
  uVar14 = DAT_18267178c;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar49 ^ uVar44;
  uVar7 = DAT_1826715e8;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x8a8) =
       (*(ulonglong *)(lVar3 + -0x670) ^ uVar24) << (((byte)uVar47 ^ 0xa9) & 0x3f) ^ uVar32;
  uVar49 = *(ulonglong *)(lVar3 - (uVar25 ^ 0xc5260c13)) ^ uVar32 | uVar49;
  uVar32 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar49 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671898;
  *(ulonglong *)(lVar3 + -0x240) = (uVar50 ^ *(ulonglong *)(lVar3 + -0xc08)) - uVar49 ^ uVar32;
  *puVar2 = *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0xce2f11a0)) ^ CONCAT44(uVar7,uVar7) ^
            *puVar1 ^ uVar37 ^ uVar20;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar42;
  return;
}



############ FUN_ 180f326a0 size=2953 ############

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

void FUN_180f326a0(void)

{
  longlong *plVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  
  uVar12 = DAT_1826715a4;
  uVar10 = DAT_18267158c;
  uVar9 = DAT_182671584;
  uVar8 = DAT_182671578;
  uVar6 = DAT_182671570;
  uVar5 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar27 = (ulonglong)DAT_182671584;
  uVar25 = DAT_1826715a4 & DAT_182671584;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_182671a54);
  uVar23 = DAT_182671578 ^ DAT_18267158c;
  uVar21 = (ulonglong)DAT_18267156c;
  uVar17 = DAT_182671570 | DAT_18267156c;
  uVar16 = *(uint *)(&DAT_182611e80 + DAT_182671a54) ^ DAT_182671584;
  uVar26 = (ulonglong)DAT_1826715c4;
  uVar24 = (ulonglong)DAT_182671578;
  DAT_182671568 = uVar25;
  DAT_182671598 = uVar23;
  DAT_1826715a0 = uVar17;
  *(undefined8 *)(DAT_182671560 + -0x1a0) = 0x35b35e1d585ae28;
  *(byte *)(lVar3 + -0x28a) = (byte)uVar12 ^ 200;
  uVar20 = *(ulonglong *)(lVar3 + -0x4c8);
  *(ulonglong *)(lVar3 + -0xb58) = uVar20 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x868) = CONCAT44(uVar17,uVar6) ^ 0x8b4bce765f226cff;
  uVar18 = (ulonglong)DAT_1826717cc;
  *(ulonglong *)(lVar3 + -0x4c8) = CONCAT44(uVar5,uVar8) ^ 0x61a92641b2017910;
  pbVar19 = *(byte **)(lVar3 + -0x460);
  *(undefined8 *)(lVar3 + -0x460) = 0x7d709d05c370b50f;
  *(ulonglong *)(lVar3 + -0xc78) = (ulonglong)pbVar19 ^ uVar18;
  uVar22 = (ulonglong)uVar10;
  *(byte **)(lVar3 + -0x538) = pbVar19 + (CONCAT44(uVar10,uVar12) ^ 0x603a94387f8fb439);
  *(byte *)(lVar3 + -0x321) = (byte)DAT_182671740 ^ (byte)DAT_1826717b4 ^ *pbVar19;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xc78) = CONCAT44(uVar23,uVar12) ^ 0xcf78d7a9e2774bb9;
  uVar18 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 + -0x318) =
       CONCAT44(uVar6,uVar8) ^ 0x3b764807f8b3e15e | *(ulonglong *)(lVar3 + -0x1d8);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x53494b6b)) =
       (CONCAT44(uVar5,uVar10) ^ 0xffbffef9603a9439) + uVar20;
  uVar20 = (ulonglong)DAT_1826716dc;
  *(byte *)(uVar26 ^ *(ulonglong *)(lVar3 + -0xb58)) =
       *(byte *)(lVar3 + -0x321) ^ (byte)DAT_182671740;
  uVar18 = (ulonglong)DAT_1826717f4;
  *(undefined1 *)(lVar3 + -0x321) = 0;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar25 ^ 0x5f07a378)) = *(undefined8 *)(lVar3 + -0x238);
  *(ulonglong *)(lVar3 + -0x238) = CONCAT44(uVar9,uVar8) ^ 0xd1f7a3c09327fb44;
  *(undefined8 *)(lVar3 + -0x7f0) = *(undefined8 *)(lVar3 + -0x538);
  *(ulonglong *)(lVar3 + -0x538) = CONCAT44(uVar17,uVar23) ^ 0x67e2abb76b08b598;
  *(ulonglong *)(lVar3 + -0xcf0) = *(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x5426f103)) ^ uVar18
  ;
  *(ulonglong *)(lVar3 + -0x768) = CONCAT44(uVar17,uVar12) ^ 0x99648b8cf8a6ad6b;
  pbVar19 = *(byte **)(lVar3 - (uVar21 ^ 0xffbff909));
  *(ulonglong *)(lVar3 + -0xb88) = (ulonglong)pbVar19 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x7f0) = CONCAT44(uVar8,uVar9) ^ 0x60b4b9ec76c36cc0;
  bVar14 = DAT_1826715dc;
  uVar7 = DAT_182671570;
  *(ulonglong *)(DAT_182671560 + -0x4b8) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0xfffff473)) ^ uVar20) +
       (CONCAT44(uVar8,DAT_182671570) ^ 0x341c625353494952);
  lVar3 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x91a) = *pbVar19 ^ bVar14 ^ (byte)DAT_1826717b4;
  *(ulonglong *)(lVar3 + -0xb88) = CONCAT44(uVar25,uVar25) ^ 0x119e16339dbc779f;
  lVar4 = DAT_182671560;
  plVar1 = (longlong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0xa70) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xffbff209)) ^ uVar18) +
       (CONCAT44(uVar5,uVar7) ^ 0xffbffef953494952);
  *(longlong *)(lVar4 - ((ulonglong)uVar23 ^ 0x5426f79b)) = *plVar1 << (((byte)uVar8 ^ 0x47) & 0x3f)
  ;
  *(byte *)(*(ulonglong *)(lVar4 + -0xcf0) ^ uVar18) = bVar14 ^ *(byte *)(lVar4 + -0x91a);
  uVar20 = *(ulonglong *)(lVar4 + -0xa70);
  *(byte *)(lVar4 + -0x91a) = (byte)uVar9;
  uVar18 = *(ulonglong *)(lVar4 + -0x4b8);
  *(ulonglong *)(lVar4 + -0xa70) = CONCAT44(uVar12,uVar5) ^ 0x829ee9d2904afdc;
  *(ulonglong *)(lVar4 + -0xd30) = uVar18;
  uVar26 = (ulonglong)DAT_182671828;
  *(ulonglong *)(lVar4 + -0x4b8) = CONCAT44(uVar23,uVar5) ^ 0xed99c54a2f7c00f8;
  *(ulonglong *)(lVar4 + -0x340) = uVar26 ^ uVar20;
  uVar20 = (ulonglong)DAT_1826718c8;
  *(ulonglong *)(lVar4 + -0x118) = CONCAT44(uVar6,uVar25) ^ 0xa8ed0fad538943d7;
  *(ulonglong *)(lVar4 + -0x240) =
       *(ulonglong *)(lVar4 + -0x8a8) ^ CONCAT44(uVar17,uVar23) ^ 0xb0a9441cbc1f0fad;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x341c6713)) = uVar18 ^ uVar20;
  uVar7 = DAT_18267186c;
  uVar18 = (ulonglong)DAT_18267186c;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x603a9908)) = CONCAT44(uVar8,uVar10) ^ 0x6842682f6d7e8389;
  pbVar19 = (byte *)(*(ulonglong *)(lVar4 + -0x540) ^ uVar20);
  *(byte **)(lVar4 + -0x960) = pbVar19 + (CONCAT44(uVar9,uVar17) ^ 0x5f77ac54fffffffa);
  *(byte *)(lVar4 + -0x381) = (byte)uVar7 ^ *pbVar19 ^ (byte)DAT_1826717b4;
  *(undefined8 *)(lVar4 + -0x540) = 0x6be16aa5afa669de;
  *(ulonglong *)(lVar4 + -0x738) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0xffbffdb9)) ^ uVar26) +
       (CONCAT44(uVar12,uVar23) ^ 0x7f8fb4385426f66a);
  *(byte *)(*(ulonglong *)(lVar4 + -0x340) ^ uVar26) =
       *(byte *)(lVar4 - (uVar22 ^ 0x603a97b9)) ^ (byte)uVar7;
  uVar13 = DAT_1826715ac;
  *(byte *)(lVar4 - ((ulonglong)uVar25 ^ 0x5f07a791)) = (byte)uVar9 ^ 0xe0;
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar6,uVar5) ^ 0xa7ac945a92ccd8f0) >> (((byte)uVar12 ^ 0x16) & 0x3f);
  *(undefined8 *)(lVar4 + -0x108) = *(undefined8 *)(lVar4 - (uVar22 ^ 0x603a9300));
  *(ulonglong *)(lVar4 + -0x738) = CONCAT44(uVar8,uVar17) ^ 0x1ac2e1e267d0da83;
  *(undefined8 *)(lVar4 + -0x5e8) = *(undefined8 *)(lVar4 + -0x960);
  bVar14 = (byte)DAT_182671804;
  lVar3 = DAT_182671560;
  uVar24 = (ulonglong)DAT_182671624;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar13 ^ 0xcac9b7df)) =
       CONCAT44(uVar9,uVar25) ^ 0xa5e3e768dce1389b;
  uVar20 = (ulonglong)DAT_1826717d8;
  *(ulonglong *)(lVar3 + -0x2b8) = *(ulonglong *)(lVar3 + -0x108) ^ uVar24;
  *(undefined8 *)(lVar3 + -0x108) = 0xed9dd7edbdd22a01;
  *(ulonglong *)(lVar3 + -0xa0) =
       CONCAT44(uVar6,uVar23) ^ 0xd26ecd8366b0527 | *(ulonglong *)(lVar3 + -0x3f0);
  lVar3 = DAT_182671560;
  pbVar19 = *(byte **)(DAT_182671560 - (uVar21 ^ 0xffbffb11));
  *(ulonglong *)(DAT_182671560 + -0x710) = (ulonglong)pbVar19 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x5e8) = CONCAT44(uVar9,uVar23) ^ 0x65235fdf385f06e1;
  *(byte **)(lVar3 + -0x9b8) = pbVar19 + (CONCAT44(uVar12,uVar17) ^ 0x7f8fb438fffffffa);
  uVar9 = DAT_182671590;
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar8,uVar10) ^ 0x7654d59e8a2bec59) -
       (CONCAT44(uVar23,uVar23) ^ 0xe80dcc58e2b50b84);
  *(byte *)(lVar3 - (uVar21 ^ 0xffbff8d0)) = bVar14 ^ *pbVar19 ^ (byte)DAT_1826717b4;
  uVar26 = (ulonglong)DAT_182671570;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0x53494e27)) = uVar9 ^ 0xf25bf61b;
  *(undefined4 *)((ulonglong)DAT_18267180c ^ *(ulonglong *)(lVar3 + -0x3c0)) = 0xf6d55993;
  *(ulonglong *)(lVar3 + -0x3c0) = CONCAT44(uVar23,uVar12) ^ 0xbae1c5b4a9c26c5a;
  pbVar19 = (byte *)(*(ulonglong *)(lVar3 + -0x2b8) ^ uVar24);
  *(undefined8 *)(lVar3 + -0x710) = 0x297260fcd9df946c;
  *(byte **)(lVar3 + -0x9c0) = pbVar19 + 1;
  *(uint *)(lVar3 + -0x874) = DAT_18267158c ^ 0xe42a3d10;
  uVar23 = DAT_1826715b4;
  uVar10 = DAT_18267159c;
  uVar7 = DAT_182671588;
  uVar6 = DAT_18267157c;
  uVar24 = (ulonglong)DAT_1826715b4;
  uVar20 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar3 + -0x678) = DAT_18267157c ^ 0x22c06a18;
  *pbVar19 = bVar14 ^ *(byte *)(lVar3 + -0x629);
  uVar11 = DAT_182671594;
  *(byte *)(lVar3 + -0x629) = (byte)DAT_182671594 ^ 0xf8;
  *(undefined8 *)(lVar3 + -0xbe8) = *(undefined8 *)(lVar3 - (uVar24 ^ 0xaabda37c));
  *(ulonglong *)(lVar3 + -0x9c0) = CONCAT44(uVar7,uVar10) ^ 0x3fa307afe0a82250;
  *(undefined8 *)(lVar3 + -0xd50) = *(undefined8 *)(lVar3 + -0x9b8);
  bVar14 = (byte)DAT_182671790;
  uVar24 = (ulonglong)_DAT_18267161c;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0xbebfc371)) = CONCAT44(uVar12,uVar11) ^ 0xdccd04e0b368b767;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x53494053)) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671574 ^ 0xb606ff5e)) ^ uVar24;
  *(ulonglong *)(lVar3 + -0xbe8) = CONCAT44(uVar23,uVar23) ^ 0x1741ee4e59d8fde5;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xffbff999)) = uVar18 ^ *(ulonglong *)(lVar3 + -0xd50);
  *(ulonglong *)(lVar3 + -0xd50) = CONCAT44(uVar12,uVar17) ^ 0x561d3d0915a97880;
  pbVar19 = (byte *)(*(ulonglong *)(lVar3 + -0x760) ^ uVar18);
  bVar15 = bVar14 ^ (byte)DAT_1826717b4;
  *(byte **)(lVar3 + -0xd28) = pbVar19 + (CONCAT44(uVar8,uVar13) ^ 0x341c6253cac9bebe);
  *(byte *)(lVar3 + -0x909) = bVar15 ^ *pbVar19;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xfffff89b)) =
       CONCAT44(uVar12,uVar25) ^ 0xdfefd82b65f7e43a;
  *(ulonglong *)(lVar3 + -0x5b0) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x603a9d38)) ^ uVar24) +
       (CONCAT44(uVar5,DAT_1826715b0) ^ 0xffbffef97e3e782f);
  uVar20 = (ulonglong)DAT_182671580;
  *(uint *)(lVar3 - (uVar27 ^ 0x5f77a828)) = uVar7 ^ 0x6d66c1c8;
  *(uint *)(lVar3 + -0x5cc) = DAT_182671570 ^ 0x8d293a0;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar20 ^ 0xb6aca5b6)) ^ uVar24) =
       bVar14 ^ *(byte *)(lVar3 + -0x909);
  uVar7 = DAT_1826715a8;
  uVar20 = (ulonglong)DAT_1826715a8;
  *(byte *)(lVar3 - (uVar27 ^ 0x5f77a55d)) = (byte)uVar13 ^ 0x25;
  *(undefined8 *)(lVar3 - (uVar20 ^ 0xb389d444)) = *(undefined8 *)(lVar3 + -0x5b0);
  *(ulonglong *)(lVar3 + -0x5b0) = CONCAT44(uVar25,uVar7) ^ 0x53b25235182db97;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar6 ^ 0xc7720154)) = *(undefined8 *)(lVar3 + -0xd28);
  *(ulonglong *)(lVar3 + -0xd28) = CONCAT44(uVar17,uVar9) ^ 0x81fb6b348deb43e1;
  *(ulonglong *)(lVar3 + -0x448) = (ulonglong)DAT_182671798 ^ *(ulonglong *)(lVar3 + -0x940);
  *(ulonglong *)(lVar3 + -0x940) = CONCAT44(uVar5,uVar7) ^ 0x20c60cdfeb5d18e2;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar2 ^ uVar25;
  return;
}



############ FUN_ 180edff00 size=5536 ############

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

void FUN_180edff00(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  byte bVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte local_res18;
  byte local_118;
  byte local_d0;
  
  uVar11 = DAT_1826715ac;
  uVar10 = DAT_1826715a0;
  uVar6 = DAT_182671598;
  uVar9 = DAT_182671594;
  uVar5 = DAT_182671570;
  lVar1 = DAT_182671560;
  uVar28 = (ulonglong)DAT_1826715ac;
  uVar26 = (ulonglong)DAT_182671570;
  uVar16 = DAT_1826715ac & DAT_182671570;
  uVar18 = (ulonglong)DAT_182671598;
  uVar41 = (ulonglong)DAT_182671594;
  uVar50 = (ulonglong)DAT_1826715a0;
  uVar37 = DAT_182671594 | DAT_1826715a0;
  uVar24 = ~DAT_182671598;
  uVar27 = *(uint *)(&DAT_182611e78 + DAT_1826718ec) ^ DAT_1826715ac;
  uVar25 = uVar24 ^ 0xad17c88a;
  uVar14 = *(uint *)(&DAT_182611e80 + DAT_1826718ec) ^ DAT_182671570;
  uVar45 = (ulonglong)uVar16;
  uVar19 = (ulonglong)DAT_1826715a0;
  DAT_18267159c = uVar16;
  DAT_1826715a8 = uVar25;
  DAT_1826715b0 = uVar37;
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0xfe75eab0)) =
       CONCAT44(uVar16,DAT_182671598) ^ 0x2080840407101008 | 0x9b2e51a1482f2ff7;
  uVar3 = DAT_182671804;
  uVar30 = CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar35 = (ulonglong)DAT_182671804;
  *(ulonglong *)(lVar1 - (uVar28 ^ 0x8504e90)) =
       (*(ulonglong *)(lVar1 - (uVar19 ^ 0xd80d7fe6)) ^ CONCAT44(DAT_182671744,DAT_182671744)) +
       (CONCAT44(uVar24,uVar37) ^ 0xe457512c983f9825) ^ uVar30;
  uVar15 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar1 + -0x6b8) =
       (CONCAT44(uVar10,uVar16) ^ 0xd708417f58da9dfb) +
       (CONCAT44(uVar9,uVar16) ^ 0x9c6a5cab455d3d86);
  uVar4 = DAT_1826716c8;
  uVar19 = uVar15 ^ *(ulonglong *)(lVar1 + -0x5c8);
  uVar21 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar1 + -0x638) = (uVar30 ^ *(ulonglong *)(lVar1 + -0x670)) + uVar19 ^ uVar21;
  uVar38 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar19 << (((byte)uVar25 ^ 0xab) & 0x3f) ^ uVar38;
  lVar1 = DAT_182671560;
  uVar42 = CONCAT44(DAT_182671850,DAT_182671850);
  uVar19 = *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x8504d28)) >> 0x1f ^
           ((ulonglong)(uVar3 >> 0x1f) | uVar35 * 2);
  uVar30 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar19 ^ uVar42;
  uVar12 = _DAT_182671838;
  uVar3 = DAT_1826715bc;
  lVar2 = DAT_182671560;
  uVar32 = (ulonglong)DAT_1826715bc;
  uVar31 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0xfe75e8b0)) =
       (*(ulonglong *)(lVar1 - (uVar26 ^ 0xfe75ed88)) ^ uVar38 | uVar19) ^ uVar30;
  uVar4 = DAT_1826717e8;
  uVar19 = *(ulonglong *)(lVar2 + -0x748) ^ uVar31 ^ uVar30 ^ uVar21 ^
           *(ulonglong *)(lVar2 + -0x638);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar19;
  uVar43 = CONCAT44(uVar4,uVar4);
  uVar19 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x898)) + (uVar19 ^ uVar31) ^ uVar43;
  *(ulonglong *)(lVar2 + -0x548) = uVar19;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x6dc51908)) =
       CONCAT44(uVar24,uVar6) ^ 0xad17c88a00000000 ^ uVar43 ^ uVar19 ^ 0xde3160bbd500d122;
  uVar12 = DAT_182671668;
  uVar35 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x8504e58)) =
       (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x3f0)) << 0x2e ^ uVar35;
  uVar4 = _DAT_1826715d8;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       CONCAT44(DAT_182671898,DAT_182671898) ^ CONCAT44(uVar37,uVar10) ^
       *(ulonglong *)(DAT_182671560 + -0x110) ^ 0x7fe0f243b825ce71;
  uVar49 = CONCAT44(uVar4,uVar4);
  uVar30 = *(ulonglong *)(lVar1 - (uVar45 ^ 0x8504b10)) >> 0x12 ^
           ((ulonglong)(uVar3 >> 0x12) | uVar32 << 0xe);
  uVar19 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar1 + -0x5c8) = uVar30 ^ uVar49;
  *(ulonglong *)(lVar1 + -0x270) =
       (uVar19 ^ *(ulonglong *)(lVar1 + -0x400)) >>
       ((*(byte *)(lVar1 + -0x6b8) ^ (byte)uVar12) & 0x3f);
  uVar4 = DAT_182671654;
  uVar3 = DAT_182671584;
  uVar7 = DAT_182671578;
  puVar46 = (ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0xad17ce32));
  uVar38 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar19 = (uVar30 | *puVar46 ^ uVar35) ^ uVar38;
  uVar35 = (ulonglong)DAT_182671584;
  uVar32 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar1 + -0x318) = uVar19;
  uVar47 = CONCAT44(uVar4,uVar4);
  uVar34 = uVar7 + uVar3;
  DAT_18267158c = uVar34;
  *(ulonglong *)(lVar1 + -0x748) =
       uVar47 ^ uVar19 ^ uVar38 ^ uVar43 ^ *(ulonglong *)(lVar1 + -0x548);
  uVar8 = DAT_18267181c;
  uVar33 = (ulonglong)DAT_18267181c;
  *(ulonglong *)(lVar1 + -0x898) = (CONCAT44(uVar3,uVar7) ^ 0x819b561bbc71ee4c) + 0x61cdbaafa623d98b
  ;
  lVar2 = DAT_182671560;
  uVar39 = CONCAT44(uVar8,uVar8);
  bVar29 = (byte)uVar34;
  uVar19 = *(ulonglong *)(lVar1 - ((ulonglong)uVar34 ^ 0xf75984be));
  uVar30 = *(ulonglong *)(DAT_182671560 + -0x610);
  *(ulonglong *)(lVar1 + -0x110) =
       (*(ulonglong *)(lVar1 + -0x748) ^ uVar47) >> ((bVar29 ^ 0x86) & 0x3f);
  uVar12 = DAT_182671874;
  uVar21 = (uVar19 ^ uVar39) + (uVar21 ^ *(ulonglong *)(lVar1 + -0x638)) ^ uVar38;
  *(ulonglong *)(lVar1 + -0x9f8) = uVar21;
  uVar4 = DAT_182671604;
  uVar30 = (uVar39 ^ uVar30) << (((byte)uVar3 ^ 0x37) & 0x3f);
  puVar22 = (ulonglong *)(lVar2 - (uVar32 ^ 0x281db563));
  *(ulonglong *)(lVar2 + -0x670) = uVar30 ^ CONCAT44(uVar12,uVar12);
  uVar19 = (*puVar22 >> 0x20 ^ uVar33) >> 0x14;
  *(ulonglong *)(DAT_182671560 + -0x400) = uVar19 ^ CONCAT44(uVar4,uVar4);
  uVar8 = DAT_182671818;
  lVar1 = DAT_182671560;
  uVar39 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar19 = (uVar19 | uVar30) ^ uVar39;
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar19;
  uVar40 = CONCAT44(uVar8,uVar8);
  uVar19 = uVar40 ^ uVar39 ^ uVar21 ^ uVar38 ^ uVar19;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar19;
  uVar12 = DAT_182671750;
  uVar44 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(lVar1 + -0x5c8) =
       (uVar43 ^ *(ulonglong *)(lVar1 + -0x548)) + (uVar40 ^ uVar19) ^ uVar44;
  uVar4 = DAT_1826716a4;
  local_d0 = (byte)uVar37;
  uVar30 = CONCAT44(uVar12,uVar12);
  puVar20 = (ulonglong *)(lVar1 - ((ulonglong)uVar34 ^ 0xf75981b6));
  *puVar20 = (uVar19 ^ uVar40) << ((local_d0 ^ 0xc4) & 0x3f) ^ uVar30;
  lVar1 = DAT_182671560;
  uVar33 = CONCAT44(uVar4,uVar4);
  uVar19 = ((ulonglong)uVar8 << 0x1a | (ulonglong)(uVar8 >> 6)) ^
           *(ulonglong *)(DAT_182671560 + -0x6b8) >> 6;
  puVar17 = (uint *)(DAT_182671560 - (uVar28 ^ 0x8504fb4));
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar19 ^ uVar33;
  *(uint *)(lVar1 + -0x3d4) = *puVar17 | uVar24 ^ 0x885a8cce;
  lVar1 = DAT_182671560;
  uVar36 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar30 = (uVar19 | uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x318)) ^ uVar36;
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar30;
  uVar4 = DAT_1826718c0;
  *(byte *)(lVar1 + -0x2a1) =
       *(byte *)((ulonglong)DAT_1826717e4 ^ *(ulonglong *)(lVar1 + -0xae0)) ^ (byte)DAT_1826717c0;
  uVar21 = CONCAT44(uVar4,uVar4);
  uVar19 = (ulonglong)DAT_18267183c;
  *(ulonglong *)(lVar1 + -0x110) =
       *(ulonglong *)(lVar1 - (uVar50 ^ 0xd80d73d6)) ^ uVar21 ^ uVar36 ^ uVar44 ^ uVar30;
  *(byte *)(lVar1 + -0x9a1) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x1f8) ^ uVar19) ^ (byte)DAT_1826717c0;
  uVar4 = DAT_1826717cc;
  *puVar22 = (*(ulonglong *)(lVar1 + -0x748) ^ uVar47) + (*(ulonglong *)(lVar1 + -0x9f8) ^ uVar38) ^
             uVar43;
  uVar38 = CONCAT44(uVar4,uVar4);
  puVar22 = (ulonglong *)(lVar1 - (uVar41 ^ 0x6dc51680));
  *puVar22 = (*(ulonglong *)(lVar1 + -0x748) ^ uVar47) << ((local_d0 ^ 0xe8) & 0x3f) ^ uVar38;
  uVar30 = (*(ulonglong *)(lVar1 - (uVar50 ^ 0xd80d7156)) ^ uVar47) >> (((byte)uVar3 ^ 0x11) & 0x3f)
  ;
  uVar19 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar1 + -0x400) = uVar30 ^ uVar49;
  uVar4 = DAT_182671600;
  *(ulonglong *)(lVar1 + -0x270) = (uVar38 ^ *puVar22 | uVar30) ^ uVar19;
  uVar36 = CONCAT44(uVar4,uVar4);
  puVar48 = (ulonglong *)(lVar1 - (uVar28 ^ 0x8504a90));
  *(ulonglong *)(lVar1 + -0x548) =
       uVar36 ^ uVar19 ^ uVar43 ^ *puVar48 ^ *(ulonglong *)(lVar1 + -0x610);
  uVar4 = DAT_182671758;
  uVar30 = CONCAT44(DAT_182671824,DAT_182671824);
  *puVar46 = (*(ulonglong *)(lVar1 - (uVar50 ^ 0xd80d7356)) ^ uVar36) +
             (uVar44 ^ *(ulonglong *)(lVar1 + -0x5c8)) ^ uVar30;
  uVar38 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x281db06b)) =
       (uVar36 ^ *(ulonglong *)(lVar1 + -0x548)) << (((byte)uVar6 ^ 0xdf) & 0x3f) ^ uVar38;
  uVar19 = (uVar36 ^ *(ulonglong *)(lVar1 + -0x548)) >> ((bVar29 ^ 0x8e) & 0x3f);
  uVar44 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar1 + -0x898) = uVar19 ^ CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(lVar1 + -0x638) = (uVar38 ^ *(ulonglong *)(lVar1 + -0x318) | uVar19) ^ uVar44;
  uVar12 = DAT_1826718b4;
  *(ulonglong *)(lVar1 + -0x9f8) =
       (CONCAT44(uVar37,uVar3) ^ 0xcf4a6719cbfee227) + (CONCAT44(uVar6,uVar37) ^ 0x3ecb3d6cb411131);
  uVar4 = DAT_182671870;
  lVar2 = DAT_182671560;
  uVar38 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0x748) =
       *(ulonglong *)(lVar1 - (uVar28 ^ 0x8504ed8)) ^ *(ulonglong *)(lVar1 - (uVar45 ^ 0x8504e58)) ^
       uVar38 ^ uVar44 ^ uVar30;
  uVar28 = CONCAT44(uVar4,uVar4);
  puVar46 = (ulonglong *)(lVar1 - (uVar35 ^ 0xcf3bc94b));
  *puVar46 = (uVar21 ^ *(ulonglong *)(lVar2 + -0x110)) + (uVar43 ^ *(ulonglong *)(lVar2 + -0x610)) ^
             uVar28;
  uVar19 = (uVar21 ^ *(ulonglong *)(lVar2 + -0x110)) << 0x20;
  *(ulonglong *)(lVar2 + -0x400) = uVar19 ^ CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(lVar2 + -0x270) = uVar41 << 0x2d ^ 0xb5e1800000000000;
  lVar1 = DAT_182671560;
  uVar44 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (*(ulonglong *)(lVar2 - (uVar50 ^ 0xd80d770e)) ^ uVar21) >> ((bVar29 ^ 0x8e) & 0x3f) ^ uVar44
  ;
  uVar4 = DAT_182671630;
  lVar2 = DAT_182671560;
  puVar22 = (ulonglong *)(lVar1 - (uVar41 ^ 0x6dc51538));
  uVar21 = (uVar44 ^ *puVar22 | uVar19) ^ uVar15;
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar21;
  uVar43 = (ulonglong)_DAT_1826715e0;
  uVar19 = CONCAT44(uVar4,uVar4);
  uVar15 = *(ulonglong *)(lVar2 - (uVar18 ^ 0xfffff98f)) ^ uVar19 ^ uVar21 ^ uVar28 ^ uVar15;
  uVar21 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar2 + -0x318) = uVar15;
  *(ulonglong *)(lVar2 + -0x898) =
       (CONCAT44(uVar5,uVar16) ^ 0x1a22bed46da2a63b) + (uVar19 ^ uVar15) ^ uVar21;
  uVar19 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xfdcd7f06)) =
       (CONCAT44(uVar10,uVar9) ^ 0x9c4611d43628f1e4) + (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar30) ^
       uVar19;
  uVar4 = DAT_1826716fc;
  uVar15 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar2 + -0x638) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x9f8)) + (uVar21 ^ *(ulonglong *)(lVar2 + -0x898)) ^
       uVar15;
  uVar44 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*(ulonglong *)(DAT_182671560 - (uVar18 ^ 0xfffff767)) ^ uVar21) << ((bVar29 ^ 0xa0) & 0x3f)
       ^ uVar44;
  *puVar48 = 0x31c129b6c80bce31 >> ((bVar29 ^ 0xab) & 0x3f);
  uVar8 = DAT_182671588;
  lVar1 = DAT_182671560;
  uVar19 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar47 = (ulonglong)DAT_182671588;
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x85049f0)) =
       (*(ulonglong *)(DAT_182671560 + -0x898) >> 0x20 ^ uVar43) >> 0x12 ^ uVar19;
  uVar12 = DAT_182671738;
  *(byte *)(lVar1 + -0x519) =
       *(byte *)((ulonglong)DAT_1826717e4 ^ *(ulonglong *)(lVar1 + -0xae0)) ^ (byte)DAT_1826717c0;
  uVar4 = DAT_18267156c;
  uVar30 = CONCAT44(uVar12,uVar12);
  uVar19 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar37 ^ 0xfdcd70ee)) ^ uVar44 |
           *(ulonglong *)(lVar1 - (uVar41 ^ 0x6dc511e0)) ^ uVar19) ^ uVar30;
  uVar43 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar1 + -0x400) = uVar19;
  uVar44 = CONCAT44(DAT_182671748,DAT_182671748);
  *(ulonglong *)(lVar1 + -0x5c8) =
       *(ulonglong *)(lVar1 - (uVar32 ^ 0x281db54b)) ^ uVar43 ^ uVar19 ^ uVar30 ^ uVar15;
  *(ulonglong *)(lVar1 + -0x548) =
       (CONCAT44(uVar6,uVar4) ^ 0xd48e8dd6e4fd2cf6) + (*(ulonglong *)(lVar1 + -0x748) ^ uVar38) ^
       uVar44;
  uVar6 = DAT_182671570;
  *(ulonglong *)(lVar1 + -0x318) =
       (CONCAT44(uVar8,uVar3) ^ 0xea9dc780a7be354d) + (uVar28 ^ *(ulonglong *)(lVar1 + -0x670)) ^
       uVar40;
  uVar3 = DAT_182671568;
  uVar38 = (ulonglong)DAT_182671568;
  uVar19 = (ulonglong)DAT_18267157c;
  *(uint *)(lVar1 + -0x504) = (uVar6 ^ 0x6e72f94b) + (uVar6 ^ 0x2531a20c);
  uVar12 = DAT_1826716b8;
  uVar21 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar30 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar1 - (uVar26 ^ 0xfe75e940)) =
       (*(ulonglong *)(lVar1 - (uVar19 ^ 0x3bcf3e87)) ^ uVar44) + (*puVar20 ^ uVar40) ^ uVar21;
  uVar13 = DAT_18267180c;
  *(ulonglong *)(lVar1 + -0x9f8) =
       (*(ulonglong *)(lVar1 - (uVar30 ^ 0xa11fec0b)) ^ uVar31) >>
       (((byte)uVar12 ^ *(byte *)(lVar1 + -0x6b8)) & 0x3f);
  local_res18 = (byte)uVar11;
  uVar19 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x270) = (uVar44 ^ *(ulonglong *)(lVar1 + -0x548)) << 0x10 ^ uVar19;
  uVar12 = DAT_1826715f4;
  uVar6 = DAT_182671574;
  lVar1 = DAT_182671560;
  uVar30 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0xfe75e760)) =
       (uVar44 ^ *(ulonglong *)(DAT_182671560 + -0x548)) >> ((local_res18 ^ 0xd0) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar1 + -0x610) =
       (uVar30 ^ *(ulonglong *)(lVar1 + -0x898) | uVar19 ^ *(ulonglong *)(lVar1 + -0x270)) ^ uVar42;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (CONCAT44(uVar9,uVar7) ^ 0x54157432522b81ef) <<
       (((byte)uVar12 ^ *(byte *)(DAT_182671560 + -0x898)) & 0x3f);
  uVar19 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  *(ulonglong *)(lVar1 + -0x400) =
       *(ulonglong *)(lVar1 - (uVar50 ^ 0xd80d700e)) ^ uVar19 ^ uVar21 ^
       *(ulonglong *)(lVar1 + -0x6b8) ^ uVar42;
  *(ulonglong *)(lVar1 - (uVar35 ^ 0xcf3bc873)) =
       (CONCAT44(uVar5,uVar4) ^ 0xeb2dbcef389cd046) >> ((local_res18 ^ 0xc1) & 0x3f);
  uVar50 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *puVar46 = (uVar19 ^ *(ulonglong *)(lVar1 + -0x400)) + (uVar15 ^ *(ulonglong *)(lVar1 + -0x638)) ^
             uVar50;
  uVar4 = _DAT_182671610;
  local_118 = (byte)uVar10;
  *(int *)(lVar1 + -0x3c8) =
       -0x669d31be << (((byte)*(undefined4 *)(lVar1 + -0x964) ^ (byte)DAT_1826716b0) & 0x1f);
  lVar1 = DAT_182671560;
  uVar30 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0xcf3bcc23)) =
       (*(ulonglong *)(DAT_182671560 - (uVar47 ^ 0xf351d16f)) ^ uVar19) <<
       ((local_118 ^ 0x2a) & 0x3f) ^ uVar30;
  uVar28 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar1 - (uVar41 ^ 0x6dc51300)) =
       (uVar19 ^ *(ulonglong *)(lVar1 + -0x400)) >> (((byte)uVar6 ^ 0xf4) & 0x3f) ^ uVar28;
  uVar35 = CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar19 = (ulonglong)DAT_1826717e4;
  uVar30 = (uVar28 ^ *(ulonglong *)(lVar1 + -0x3f0) | uVar30 ^ *(ulonglong *)(lVar1 + -0x318)) ^
           uVar35;
  *(ulonglong *)(lVar1 + -0x9f8) = uVar30;
  *(byte *)(lVar1 + -0x1f9) =
       *(byte *)(uVar19 ^ *(ulonglong *)(lVar1 + -0xae0)) ^ (byte)DAT_1826717c0;
  uVar15 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar1 + -0x548) =
       uVar15 ^ uVar35 ^ uVar50 ^ uVar30 ^ *(ulonglong *)(lVar1 + -0x670);
  uVar44 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0xad17cafa)) =
       (uVar43 ^ *(ulonglong *)(lVar1 + -0x5c8)) + (uVar21 ^ *(ulonglong *)(lVar1 + -0x6b8)) ^
       uVar44;
  uVar4 = _DAT_1826715f0;
  bVar23 = (byte)DAT_182671590;
  *(ulonglong *)(lVar1 + -0x898) =
       (*(ulonglong *)(lVar1 - (uVar38 ^ 0x2116eb33)) ^ uVar43) <<
       (((byte)DAT_18267157c ^ 0xf6) & 0x3f) ^ uVar36;
  uVar19 = (ulonglong)DAT_1826715b4;
  uVar30 = CONCAT44(uVar4,uVar4);
  *(undefined8 *)(lVar1 + -0x610) = 0;
  *(ulonglong *)(lVar1 + -0x110) =
       (uVar43 ^ *(ulonglong *)(lVar1 + -0x5c8)) >> ((bVar23 ^ 0xff) & 0x3f) ^ uVar30;
  uVar19 = (*(ulonglong *)(lVar1 - (uVar32 ^ 0x281dbbeb)) ^ uVar36 |
           *(ulonglong *)(lVar1 - (uVar19 ^ 0x75fef9ff)) ^ uVar30) ^ uVar33;
  *(ulonglong *)(lVar1 + -0x748) = uVar19;
  uVar4 = DAT_1826716bc;
  uVar32 = (ulonglong)DAT_182671580;
  uVar38 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar19 = uVar44 ^ uVar33 ^ *(ulonglong *)(lVar1 + -0x270) ^ uVar38 ^ uVar19;
  *(ulonglong *)(lVar1 + -0x638) = uVar19;
  lVar1 = DAT_182671560;
  uVar31 = CONCAT44(uVar4,uVar4);
  uVar26 = (uVar19 ^ uVar38) * 0x800000;
  uVar50 = (*(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xf010c31d)) ^ uVar50) + (uVar19 ^ uVar38) ^
           uVar31;
  uVar30 = CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar19 = *(ulonglong *)(DAT_182671560 + -0x638);
  uVar21 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       uVar35 ^ uVar28 ^ *(ulonglong *)(DAT_182671560 + -0x9f8) ^
       *(ulonglong *)(DAT_182671560 + -0x3f0);
  uVar35 = (ulonglong)DAT_182671574;
  bVar23 = (byte)DAT_182671574;
  uVar28 = CONCAT44(DAT_182671720,DAT_182671720);
  *(ulonglong *)(lVar1 + -0x400) = uVar50;
  *(ulonglong *)(lVar1 + -0x318) = uVar26 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x5c8) = (uVar19 ^ uVar38) >> ((bVar23 ^ 0xd1) & 0x3f) ^ uVar21;
  uVar30 = (*puVar22 ^ uVar21 | uVar26) ^ uVar28;
  *(ulonglong *)(lVar1 + -0x610) = uVar30;
  uVar19 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar1 + -0x898) =
       (CONCAT44(uVar11,uVar16) ^ 0xfdbe4c3a37813613) << ((bVar29 ^ 0xb2) & 0x3f);
  uVar4 = DAT_182671678;
  *(ulonglong *)(lVar1 + -0x110) = uVar19 ^ uVar28 ^ uVar31 ^ uVar30 ^ uVar50;
  uVar21 = CONCAT44(uVar4,uVar4);
  uVar19 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar1 + -0x748) =
       (CONCAT44(uVar3,uVar10) ^ 0x5e07245a1fba5d92) >> (((byte)uVar6 ^ 199) & 0x3f);
  *(ulonglong *)(lVar1 + -0x670) =
       (uVar44 ^ *(ulonglong *)(lVar1 + -0x270)) + (uVar15 ^ *(ulonglong *)(lVar1 + -0x548)) ^
       uVar21;
  *(ulonglong *)(lVar1 - (uVar19 ^ 0x3bcf383f)) =
       (CONCAT44(uVar3,uVar5) ^ 0xa92fe3c0c29ee0ae) + uVar26;
  uVar30 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar1 - (uVar35 ^ 0xfe75e600)) =
       (uVar15 ^ *(ulonglong *)(lVar1 + -0x548)) << 0x28 ^ uVar30;
  uVar19 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *(ulonglong *)(lVar1 + -0x6b8) =
       (uVar15 ^ *(ulonglong *)(lVar1 + -0x548)) >> ((local_res18 ^ 0xf8) & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826715b4 ^ 0x75fefed7)) =
       (*(ulonglong *)(lVar1 - (uVar18 ^ 0xfffff947)) ^ uVar19 |
       *(ulonglong *)(lVar1 + -0x9f8) ^ uVar30) ^ uVar39;
  *(ulonglong *)(lVar1 - (uVar32 ^ 0xf010c0a5)) =
       CONCAT44(DAT_182671708,DAT_182671708) ^ uVar39 ^ *(ulonglong *)(lVar1 + -0x670) ^
       *(ulonglong *)(lVar1 + -0x638) ^ uVar21;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar27;
  return;
}



############ FUN_ 180e9bcb0 size=5521 ############

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

void FUN_180e9bcb0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  byte bVar24;
  uint uVar25;
  ulonglong *puVar26;
  byte bVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_res18;
  byte local_120;
  byte local_108;
  byte local_f8;
  ulonglong uVar47;
  
  uVar8 = DAT_1826716b0;
  uVar15 = DAT_1826715ac;
  uVar14 = DAT_1826715a8;
  uVar13 = DAT_1826715a4;
  uVar12 = DAT_182671598;
  uVar11 = DAT_182671584;
  uVar10 = DAT_182671570;
  uVar9 = DAT_18267156c;
  lVar6 = DAT_182671560;
  uVar21 = (ulonglong)DAT_1826715ac;
  uVar51 = (ulonglong)DAT_182671584;
  uVar31 = (ulonglong)DAT_18267156c;
  uVar42 = (ulonglong)DAT_1826715a8;
  uVar46 = DAT_182671584 & DAT_1826715ac;
  uVar47 = (ulonglong)uVar46;
  uVar38 = (ulonglong)DAT_1826715a4;
  uVar20 = (ulonglong)DAT_182671570;
  uVar4 = *(uint *)(&DAT_182611e78 + DAT_182671b78);
  uVar23 = (ulonglong)DAT_182671598;
  uVar28 = DAT_18267156c - DAT_182671598;
  uVar25 = DAT_1826715a8 << 0x10 | DAT_1826715a8 >> 0x10;
  uVar34 = DAT_1826715a4 + DAT_182671570;
  uVar18 = *(uint *)(&DAT_182611e70 + (uVar21 ^ 0xfb1ae44d) + (longlong)DAT_182671b78) ^
           DAT_182671584;
  uVar49 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x5c8);
  uVar32 = *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0xf4812fc5)) ^ uVar49 ^
           *(ulonglong *)(DAT_182671560 + -0x510);
  DAT_182671578 = uVar28;
  DAT_182671588 = uVar25;
  DAT_182671590 = uVar46;
  DAT_182671594 = uVar34;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar32;
  lVar7 = DAT_182671560;
  uVar43 = CONCAT44(uVar8,uVar8);
  uVar39 = CONCAT44(DAT_182671798,DAT_182671798);
  *puVar1 = (*(ulonglong *)(lVar6 - (uVar38 ^ 0x4d9c827a)) ^ uVar49) >>
            (((byte)uVar14 ^ 0x73) & 0x3f) ^ uVar43;
  uVar33 = (ulonglong)uVar28;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x280037a)) = (uVar49 ^ uVar32) << 0x12 ^ uVar39;
  uVar16 = DAT_1826717ec;
  uVar45 = CONCAT44(DAT_182671784,DAT_182671784);
  uVar32 = uVar39 ^ *(ulonglong *)(lVar7 + -0x1f0) | *puVar1 ^ uVar43;
  uVar22 = CONCAT44(DAT_182671808,DAT_182671808);
  *(ulonglong *)(lVar7 + -0x600) = uVar32 ^ uVar45;
  uVar17 = DAT_18267181c;
  uVar8 = DAT_182671734;
  *(ulonglong *)(lVar7 + -0x898) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar28 ^ 0x3f80879a)) ^ CONCAT44(uVar16,uVar16)) - uVar32
       ^ uVar22;
  uVar16 = DAT_182671870;
  uVar29 = CONCAT44(uVar8,uVar8);
  local_res18 = (byte)uVar10;
  uVar44 = CONCAT44(DAT_182671628,DAT_182671628);
  uVar37 = (ulonglong)uVar25;
  uVar32 = CONCAT44(uVar17,uVar17) ^ uVar44 ^ uVar29 ^ *(ulonglong *)(lVar7 + -0x9e8) ^
           *(ulonglong *)(lVar7 + -0x628);
  *(ulonglong *)(lVar7 + -0xa88) = uVar32;
  lVar6 = DAT_182671560;
  uVar35 = CONCAT44(uVar16,uVar16);
  bVar24 = (byte)uVar12;
  *(ulonglong *)(lVar7 - (uVar23 ^ 0xc2ff83b8)) =
       (uVar32 ^ uVar29) >> ((local_res18 ^ 0xc1) & 0x3f) ^ uVar35;
  uVar32 = *(ulonglong *)(lVar6 + -0xa88);
  *(ulonglong *)(lVar7 + -0x638) =
       uVar35 ^ uVar39 ^ *(ulonglong *)(lVar7 + -0x1f0) ^ *(ulonglong *)(lVar7 + -0x3b8);
  uVar39 = CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0x3f80820a)) =
       (uVar29 ^ uVar32) << ((bVar24 ^ 0x34) & 0x3f) ^ uVar39;
  uVar40 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  puVar2 = (ulonglong *)(lVar6 + -0xa0);
  *(ulonglong *)(lVar6 - (uVar37 ^ 0xe45dfbba)) =
       (uVar35 ^ *(ulonglong *)(lVar6 + -0x3b8) | *(ulonglong *)(lVar6 + -0x80) ^ uVar39) ^ uVar40;
  uVar30 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar6 + -0x610) =
       (uVar44 ^ *(ulonglong *)(lVar6 + -0x9e8)) - (uVar40 ^ *puVar2) ^ uVar30;
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar51 ^ 0x4d6788ff)) =
       CONCAT44(uVar46,uVar10) ^ uVar49 ^ *(ulonglong *)(DAT_182671560 + -0x318) ^
       0x8fddbde64f0ad2c8;
  uVar32 = (ulonglong)_DAT_18267161c;
  uVar44 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar19 = _DAT_18267161c >> 0x19;
  uVar39 = *(ulonglong *)(lVar6 - ((ulonglong)uVar34 ^ 0x421da58f)) ^ uVar44 ^ uVar40 ^ uVar22 ^
           *(ulonglong *)(lVar6 + -0x898);
  uVar35 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar6 + -0x548) = uVar39;
  uVar32 = ((ulonglong)uVar19 | uVar32 << 7) ^ uVar39 >> 0x19;
  *(ulonglong *)(lVar6 + -0xc08) = uVar32 ^ uVar35;
  *puVar1 = 0xffbbb5e17ffdff9f;
  uVar8 = DAT_1826718d4;
  local_f8 = (byte)uVar15;
  uVar40 = (uVar44 ^ uVar39) << ((local_f8 ^ 0x7a) & 0x3f);
  *(ulonglong *)(lVar6 + -0x510) = uVar40 ^ CONCAT44(DAT_182671888,DAT_182671888);
  uVar35 = CONCAT44(uVar8,uVar8);
  uVar40 = uVar40 | uVar32;
  uVar39 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  *(ulonglong *)(lVar6 + -0x628) = uVar40 ^ uVar35;
  uVar16 = DAT_182671874;
  uVar32 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar6 + -0x1f0) =
       (uVar22 ^ *(ulonglong *)(lVar6 + -0x898)) - (*(ulonglong *)(lVar6 + -0x670) ^ uVar39) ^
       uVar32;
  uVar8 = DAT_182671704;
  lVar6 = DAT_182671560;
  uVar52 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x3f8084b2)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar46 ^ 0x490285ad)) ^ uVar32) - uVar40 ^ uVar52
  ;
  uVar48 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar44 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar6 - (uVar51 ^ 0x4d678677)) =
       (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar6 + -0x6b8)) +
       (*(ulonglong *)(lVar6 - (uVar51 ^ 0x4d678d27)) ^ uVar48) ^ uVar44;
  uVar19 = DAT_18267179c;
  uVar32 = *(ulonglong *)(lVar6 + -0x610);
  uVar22 = (ulonglong)DAT_18267179c;
  *(ulonglong *)(lVar6 + -0x3b8) =
       (CONCAT44(uVar10,uVar9) ^ 0x8e895f41d7a559a5) + 0xed91936f1e086117;
  uVar16 = DAT_182671740;
  uVar40 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar6 + -0x80) =
       (uVar35 ^ *(ulonglong *)(lVar6 + -0x628)) - (uVar44 ^ *(ulonglong *)(lVar6 + -0xa88)) ^
       uVar40;
  uVar49 = CONCAT44(uVar19,uVar19);
  uVar45 = uVar32 ^ uVar49 ^ uVar30 ^ *(ulonglong *)(lVar6 + -0x600) ^ uVar45;
  *(ulonglong *)(lVar6 + -0x9e8) = uVar45;
  uVar8 = DAT_1826716b4;
  lVar6 = DAT_182671560;
  uVar35 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671560 + -0x318) = (uVar45 >> 0x20 ^ uVar22) >> 1 ^ uVar35;
  lVar7 = DAT_182671560;
  uVar22 = (*(ulonglong *)(lVar6 - (uVar42 ^ 0xfb1aedb5)) ^ uVar49) << ((local_res18 ^ 0xd2) & 0x3f)
  ;
  uVar45 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(DAT_182671560 + -0x400) = uVar22 ^ CONCAT44(uVar8,uVar8);
  uVar22 = *(ulonglong *)(lVar7 - (uVar42 ^ 0xfb1ae745)) ^ uVar35 | uVar22;
  *puVar2 = uVar22 ^ uVar45;
  uVar45 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar49 = (uVar32 ^ uVar30) - (*(ulonglong *)(lVar7 + -0x9f8) ^ uVar45);
  *puVar1 = uVar49 ^ uVar48;
  uVar30 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar32 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar7 + -0x548) = uVar49 - uVar22 ^ uVar30;
  uVar8 = DAT_18267166c;
  uVar32 = (CONCAT44(uVar12,uVar25) ^ 0x3d007fff1ba204f5) -
           (uVar32 ^ *(ulonglong *)(lVar7 + -0xbf0));
  *(ulonglong *)(lVar7 + -0xc08) = uVar32 ^ uVar43;
  uVar16 = DAT_182671850;
  uVar49 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 + -0x510) = uVar22 + uVar32 ^ uVar49;
  uVar41 = CONCAT44(uVar16,uVar16);
  uVar36 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar7 + -0x898) =
       *(ulonglong *)(lVar7 - (uVar38 ^ 0x4d9c8472)) ^ uVar41 ^ uVar49 ^ uVar52 ^
       *(ulonglong *)(lVar7 + -0x638);
  local_108 = (byte)uVar34;
  bVar27 = (byte)(uVar14 >> 0x10);
  *(ulonglong *)(lVar7 - (uVar51 ^ 0x4d678d0f)) =
       (*(ulonglong *)(lVar7 - (uVar31 ^ 0x2800a12)) ^ uVar41) >> ((local_108 ^ 0x2a) & 0x3f) ^
       uVar36;
  uVar22 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar7 + -0x3b8) =
       (uVar41 ^ *(ulonglong *)(lVar7 + -0x898)) << ((bVar27 ^ 0x21) & 0x3f) ^ uVar22;
  uVar8 = DAT_182671858;
  lVar6 = DAT_182671560;
  uVar50 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar32 = *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0xf4812075));
  puVar26 = (ulonglong *)(DAT_182671560 + -0x1f0);
  *(ulonglong *)(DAT_182671560 + -0x600) =
       ((ulonglong)(uVar46 >> 0x1b) | uVar21 << 5) ^ 0x1432eb1c8d;
  uVar32 = uVar32 ^ uVar22 | uVar36 ^ *puVar26;
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 + -0x628) = uVar32 ^ uVar50;
  uVar19 = DAT_1826718b4;
  uVar22 = (ulonglong)DAT_1826718b4;
  bVar5 = (byte)uVar11;
  *(ulonglong *)(lVar6 + -0x9e8) = (uVar52 ^ *(ulonglong *)(lVar6 + -0x638)) - uVar32 ^ uVar31;
  uVar8 = DAT_182671634;
  lVar7 = DAT_182671560;
  uVar36 = CONCAT44(uVar19,uVar19);
  uVar32 = *(ulonglong *)(lVar6 - (uVar37 ^ 0xe45dfe52)) ^ uVar30 ^ uVar40 ^
           *(ulonglong *)(lVar6 + -0x80) ^ uVar36;
  *(ulonglong *)(lVar6 + -0x318) = uVar32;
  uVar16 = DAT_182671778;
  uVar49 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 + -0x400) = (uVar32 >> 0x20 ^ uVar22) >> 5 ^ uVar49;
  uVar8 = DAT_1826716f4;
  uVar22 = CONCAT44(uVar16,uVar16);
  puVar26 = (ulonglong *)(lVar7 - (uVar42 ^ 0xfb1ae24d));
  *puVar26 = (*(ulonglong *)(DAT_182671560 - (uVar23 ^ 0xc2ff8318)) ^ uVar36) <<
             ((bVar5 ^ 0xe4) & 0x3f) ^ uVar22;
  uVar19 = DAT_182671694;
  lVar6 = DAT_182671560;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar32 = *(ulonglong *)(DAT_182671560 + -0x548);
  uVar40 = (ulonglong)DAT_182671694;
  uVar22 = *(ulonglong *)(DAT_182671560 - (uVar47 ^ 0x4902805d)) ^ uVar49 |
           *(ulonglong *)(DAT_182671560 + -0x610) ^ uVar22;
  uVar49 = CONCAT44(DAT_182671694,DAT_182671694);
  *puVar1 = uVar22 ^ uVar36;
  *(ulonglong *)(lVar6 - (uVar33 ^ 0x3f80822a)) = (uVar30 ^ uVar32) - uVar22 ^ uVar48;
  lVar7 = DAT_182671560;
  local_120 = (byte)uVar13;
  uVar30 = *(ulonglong *)(lVar6 - (uVar20 ^ 0xf4812a25)) ^
           *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0xc2ff85c8)) ^ uVar49 ^ uVar36 ^ uVar31;
  uVar22 = CONCAT44(DAT_182671800,DAT_182671800);
  *(ulonglong *)(DAT_182671560 + -0xc08) = uVar30;
  uVar40 = ((ulonglong)(uVar19 >> 0x17) | uVar40 << 9) ^ uVar30 >> 0x17;
  uVar32 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar7 + -0x510) = uVar40 ^ uVar22;
  uVar8 = DAT_182671668;
  *(ulonglong *)(lVar7 + -0x898) = (uVar30 ^ uVar49) << ((local_120 ^ 0x4b) & 0x3f) ^ uVar32;
  uVar30 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 - (uVar51 ^ 0x4d678f47)) =
       (*(ulonglong *)(lVar7 - (uVar21 ^ 0xfb1aecc5)) ^ uVar32 | uVar40) ^ uVar30;
  uVar32 = uVar30 ^ *(ulonglong *)(lVar7 + -0x3b8);
  *(ulonglong *)(lVar7 + -0x1f0) = uVar32 << 0xd;
  *(ulonglong *)(lVar7 + -0x600) =
       (*(ulonglong *)(lVar7 - (uVar21 ^ 0xfb1aedb5)) ^ uVar31) - uVar32 ^ uVar39;
  uVar16 = DAT_18267183c;
  lVar6 = DAT_182671560;
  *(ulonglong *)(lVar7 + -0x638) =
       CONCAT44(uVar9,uVar34) ^ 0x8fd0452eee2dc261 | *(ulonglong *)(lVar7 + -0x510) ^ uVar22;
  uVar8 = DAT_18267172c;
  uVar22 = CONCAT44(uVar16,uVar16);
  uVar31 = *(ulonglong *)(lVar7 - (uVar47 ^ 0x49028275)) ^ uVar50 ^ uVar48 ^ uVar22 ^ *puVar2;
  *(ulonglong *)(lVar7 + -0x80) = uVar31;
  uVar32 = (*(ulonglong *)(lVar6 - (uVar42 ^ 0xfb1ae4dd)) ^ uVar22) >> ((local_res18 ^ 0xe5) & 0x3f)
  ;
  uVar19 = DAT_182671590 ^ 0x85726d0d;
  *(ulonglong *)(lVar6 + -0x318) = uVar32 ^ CONCAT44(uVar8,uVar8);
  uVar31 = (uVar31 ^ uVar22) << ((bVar24 ^ 0x18) & 0x3f);
  *(uint *)(lVar6 + -0x754) = uVar19 + 0x5f5d6fd8;
  uVar8 = DAT_1826715fc;
  *(ulonglong *)(lVar6 + -0x400) = uVar31 ^ uVar29;
  uVar16 = DAT_182671744;
  uVar22 = CONCAT44(uVar8,uVar8);
  *puVar26 = (uVar31 | uVar32) ^ uVar22;
  uVar8 = DAT_182671708;
  lVar6 = DAT_182671560;
  uVar31 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (uVar48 ^ *puVar2) - (*(ulonglong *)(DAT_182671560 + -0x610) ^ uVar22) ^ uVar31;
  uVar32 = CONCAT44(uVar8,uVar8);
  uVar22 = *(ulonglong *)(lVar6 - (uVar21 ^ 0xfb1ae24d)) ^ uVar39 ^ *(ulonglong *)(lVar6 + -0x600) ^
           uVar32 ^ uVar22;
  *puVar1 = uVar22;
  uVar29 = (uVar22 ^ uVar32) >> ((local_120 ^ 0x56) & 0x3f);
  *(ulonglong *)(lVar6 + -0xc08) = uVar29 ^ CONCAT44(DAT_1826717bc,DAT_1826717bc);
  uVar8 = DAT_182671828;
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar6 + -0x898) =
       CONCAT44(uVar11,uVar9) ^ CONCAT44(uVar28,uVar34) ^ 0xa4eb1b528e0f8f16;
  uVar16 = DAT_1826716f0;
  uVar32 = (uVar22 ^ uVar32) << ((bVar5 ^ 0xf3) & 0x3f);
  *(ulonglong *)(lVar6 + -0x1f0) = uVar32 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182671608;
  uVar29 = uVar29 | uVar32;
  uVar49 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 + -0x9e8) = uVar29 ^ uVar49;
  uVar40 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 - (uVar42 ^ 0xfb1ae14d)) =
       (*(ulonglong *)(lVar7 - (uVar38 ^ 0x4d9c8762)) ^ uVar39) - uVar29 ^ uVar40;
  *(ulonglong *)(lVar7 + -0x638) = 0x13f74289d7b38c9a >> ((local_f8 ^ 0x57) & 0x3f);
  uVar22 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar7 - (uVar20 ^ 0xf48125e5)) =
       *(ulonglong *)(lVar7 + -0x548) ^ uVar22 ^ uVar31 ^ uVar30 ^ *(ulonglong *)(lVar7 + -0x3b8);
  uVar8 = DAT_182671764;
  uVar30 = CONCAT44(DAT_182671748,DAT_182671748);
  *(ulonglong *)(lVar7 + -0x80) =
       (*(ulonglong *)(lVar7 - (uVar33 ^ 0x3f8084a2)) ^ uVar22) >> (((byte)uVar46 ^ 100) & 0x3f) ^
       uVar30;
  *(ulonglong *)(lVar7 + -0x318) =
       (CONCAT44(uVar14,uVar46) ^ 0x8dc0fa3b6c5d0d22) + (*(ulonglong *)(lVar7 + -0x510) ^ uVar40);
  uVar32 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xe45dff1a)) =
       (*(ulonglong *)(lVar7 + -0x628) ^ uVar22) << (((byte)uVar9 ^ 0x8d) & 0x3f) ^ uVar32;
  uVar22 = CONCAT44(DAT_182671660,DAT_182671660);
  uVar32 = *(ulonglong *)(lVar7 + -0x400) ^ uVar32 | *(ulonglong *)(lVar7 + -0x80) ^ uVar30;
  *puVar2 = uVar32 ^ uVar22;
  uVar30 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar7 + -0x610) = (*(ulonglong *)(lVar7 + -0x548) ^ uVar31) - uVar32 ^ uVar30;
  uVar19 = DAT_1826715b0;
  uVar29 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar36 = (ulonglong)DAT_1826715b0;
  uVar31 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar22 = *(ulonglong *)(lVar7 - (uVar51 ^ 0x4d678c5f)) ^ uVar29 ^ *(ulonglong *)(lVar7 + -0x510) ^
           uVar22 ^ uVar40;
  *(ulonglong *)(lVar7 + -0x898) = uVar22;
  uVar32 = (uVar22 ^ uVar29) >> ((local_108 ^ 0x21) & 0x3f);
  *puVar1 = uVar32 ^ uVar31;
  uVar8 = DAT_182671664;
  uVar31 = (uVar29 ^ uVar22) << (((byte)uVar9 ^ 0xb8) & 0x3f);
  *(ulonglong *)(lVar7 + -0xc08) = uVar31 ^ CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  uVar31 = uVar31 | uVar32;
  uVar22 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 + -0x1f0) = uVar31 ^ uVar22;
  *(ulonglong *)(lVar7 + -0x600) = (CONCAT44(uVar34,uVar19) ^ 0xe0669d4c002b4efb) + uVar31;
  lVar6 = DAT_182671560;
  uVar31 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xe45dfd22)) =
       (*(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x365bede5)) ^ uVar40) -
       (CONCAT44(DAT_18267167c,DAT_18267167c) ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) ^ uVar41;
  uVar16 = DAT_182671774;
  uVar8 = DAT_1826716e4;
  *(ulonglong *)(lVar6 + -0x3b8) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0x638)) - (*(ulonglong *)(lVar6 + -0x1f0) ^ uVar22) ^
       uVar43;
  uVar33 = (*(ulonglong *)(lVar6 - (uVar23 ^ 0xc2ff8688)) ^ CONCAT44(uVar8,uVar8)) +
           (*(ulonglong *)(lVar6 - (uVar33 ^ 0x3f8084fa)) ^ uVar39);
  uVar32 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(lVar6 + -0x318) = uVar33 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671580 ^ 0xf000e221)) =
       (*(ulonglong *)(lVar6 + -0x1f0) ^ uVar22) - uVar33 ^ uVar32;
  uVar8 = DAT_182671568;
  uVar33 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar39 = (ulonglong)DAT_18267159c;
  uVar32 = CONCAT44(DAT_18267159c,uVar14);
  *(ulonglong *)(lVar6 + -0x80) =
       *(ulonglong *)(lVar6 - (uVar38 ^ 0x4d9c8772)) ^ *(ulonglong *)(lVar6 - (uVar38 ^ 0x4d9c888a))
       ^ uVar33 ^ uVar30 ^ uVar49;
  *(ulonglong *)(lVar6 - (uVar21 ^ 0xfb1ae05d)) =
       uVar32 ^ 0xce3cee455e67a9dd | CONCAT44(uVar9,uVar15) ^ 0x5c8e10a56ddf2118;
  uVar21 = (*(ulonglong *)(lVar6 + -0x80) ^ uVar33) >> (((byte)uVar14 ^ 0x4d) & 0x3f);
  *(ulonglong *)(lVar6 + -0x548) = uVar21 ^ CONCAT44(DAT_182671698,DAT_182671698);
  uVar32 = (*(ulonglong *)(lVar6 - (uVar37 ^ 0xe45dfb9a)) ^ uVar33) << 0x30;
  uVar37 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *puVar2 = uVar32 ^ uVar45;
  lVar6 = DAT_182671560;
  puVar26 = (ulonglong *)(DAT_182671560 + -0xa88);
  puVar3 = (ulonglong *)(DAT_182671560 + -0x610);
  *(ulonglong *)(DAT_182671560 + -0x898) = (uVar21 | uVar32) ^ uVar37;
  uVar16 = DAT_18267187c;
  *(ulonglong *)(lVar6 - (uVar51 ^ 0x4d678937)) = (uVar30 ^ *puVar3) - (uVar44 ^ *puVar26) ^ uVar52;
  lVar6 = DAT_182671560;
  uVar32 = *(ulonglong *)(DAT_182671560 + -0x898);
  uVar21 = CONCAT44(uVar28,DAT_182671574);
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       (uVar52 ^ *puVar1) - (uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x898)) ^
       CONCAT44(uVar16,uVar16);
  uVar16 = _DAT_1826715f0;
  *(ulonglong *)(lVar6 + -0x600) =
       uVar21 ^ 0x7edc2d636c230f31 | CONCAT44(uVar13,uVar46) ^ 0xd209dcff0cd241d7;
  uVar21 = (CONCAT44(uVar8,uVar25) ^ 0x29fde5531ba204ea) -
           (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar6 + -0x240));
  *(ulonglong *)(lVar6 + -0x510) = uVar21 ^ CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar6 - (uVar39 ^ 0x416086f4)) = (uVar37 ^ uVar32) + uVar21 ^ uVar35;
  uVar8 = DAT_182671730;
  uVar21 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar6 + -0x1f0) =
       uVar35 ^ uVar43 ^ uVar21 ^ *(ulonglong *)(lVar6 + -0x638) ^ *(ulonglong *)(lVar6 + -0x3b8);
  uVar16 = DAT_182671754;
  *(ulonglong *)(lVar6 + -0x9e8) = CONCAT44(uVar8,uVar8) ^ **(ulonglong **)(lVar6 + -0x830);
  *(ulonglong *)(lVar6 - (uVar42 ^ 0xfb1ae05d)) =
       (*(ulonglong *)(lVar6 + -0x1f0) ^ uVar21) >> (((byte)DAT_18267158c ^ 0x16) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar8 = DAT_182671604;
  *(ulonglong *)(lVar6 + -0x80) =
       (*(ulonglong *)(lVar6 - (uVar47 ^ 0x490287e5)) ^ uVar43) <<
       ((*(byte *)(lVar6 + -0x400) ^ (byte)uVar16) & 0x3f);
  uVar32 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x36ff6ae1)) =
       (*(ulonglong *)(lVar6 + -0x1f0) ^ uVar21) << ((bVar27 ^ 0x3a) & 0x3f) ^ uVar32;
  uVar8 = DAT_1826716c4;
  uVar21 = CONCAT44(DAT_182671684,DAT_182671684);
  *puVar2 = (*(ulonglong *)(lVar6 - (uVar20 ^ 0xf48127cd)) ^ CONCAT44(uVar16,uVar16) |
            uVar32 ^ *(ulonglong *)(lVar6 + -0x548)) ^ uVar21;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x365beee5)) = (ulonglong)DAT_1826715b4._2_2_ ^ 0x444;
  *puVar1 = (*(ulonglong *)(lVar6 - (uVar36 ^ 0x36ff6c11)) ^ uVar43) - (uVar21 ^ *puVar2) ^
            CONCAT44(uVar8,uVar8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar4 ^ uVar46;
  return;
}



############ FUN_ 180ee48a0 size=3729 ############

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

void FUN_180ee48a0(void)

{
  uint *puVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte *pbVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  
  uVar36 = DAT_1826717d4;
  uVar35 = DAT_1826715b4;
  uVar9 = DAT_182671590;
  uVar8 = DAT_18267158c;
  uVar7 = DAT_182671588;
  uVar6 = DAT_182671580;
  uVar5 = DAT_182671570;
  uVar41 = (ulonglong)DAT_18267158c;
  uVar28 = (ulonglong)DAT_182671588;
  uVar24 = (ulonglong)DAT_182671570;
  uVar39 = (ulonglong)DAT_182671580;
  uVar23 = (ulonglong)DAT_182671590;
  uVar25 = DAT_18267158c + DAT_182671588;
  uVar17 = DAT_1826715b4 + DAT_182671570;
  uVar38 = DAT_1826715a4 << 0x10 | DAT_1826715a4 >> 0x10;
  uVar40 = DAT_182671580 + DAT_182671590;
  uVar19 = *(uint *)(&DAT_182611e78 + DAT_182671964) ^ DAT_182671588;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671964) ^ DAT_18267158c;
  DAT_182671598 = uVar17;
  DAT_18267159c = uVar38;
  DAT_1826715a0 = uVar25;
  DAT_1826715ac = uVar40;
  *(uint *)(DAT_182671560 + -0x844) =
       (*(byte *)(DAT_182671560 + -0x41) ^ (byte)DAT_1826717f4) ^ DAT_1826717d4;
  lVar3 = DAT_182671560;
  uVar33 = (ulonglong)uVar25;
  uVar29 = (ulonglong)uVar38;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x318df4cd)) =
       (CONCAT44(uVar40,uVar6) ^ 0x4d241464fc061ff) + (CONCAT44(uVar25,uVar9) ^ 0x6057698c76245888);
  uVar10 = DAT_1826717c0;
  lVar4 = DAT_182671560;
  uVar31 = (*(uint *)(lVar3 + -0x964) ^ DAT_1826716c4) + (uVar35 ^ 0x1e05ebdd) ^ DAT_182671854;
  *(uint *)(lVar3 + -0x344) = uVar31;
  uVar31 = uVar31 ^ DAT_182671854;
  uVar22 = (uVar36 ^ *(uint *)(lVar3 + -0x844)) << (((byte)uVar5 ^ 7) & 0x1f) ^ DAT_18267160c;
  *(uint *)(DAT_182671560 + -0x968) = uVar22;
  uVar35 = DAT_1826715e8;
  *(uint *)(lVar4 - (uVar39 ^ 0x3bfe265c)) = uVar31 - (uVar22 ^ DAT_18267160c) ^ uVar10;
  lVar3 = DAT_182671560;
  puVar1 = (uint *)(DAT_182671560 + -0x874);
  uVar42 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       (CONCAT44(uVar17,uVar38) ^ 0x9bec1589552c750c) + 0x26e3746b1d67985;
  uVar22 = DAT_182671654;
  *(uint *)(DAT_182671560 - (uVar42 ^ 0x2c974c37)) =
       (uVar35 ^ *puVar1) * (uVar10 ^ *(uint *)(lVar3 + -0x504)) ^ DAT_182671654;
  uVar35 = DAT_1826716a8;
  uVar31 = DAT_1826715b4;
  lVar3 = DAT_182671560;
  uVar27 = (ulonglong)DAT_1826715b4;
  uVar42 = CONCAT44(uVar25,DAT_1826715b4);
  *(uint *)(DAT_182671560 + -0x374) =
       (uVar36 ^ *(uint *)(DAT_182671560 + -0x844)) * (uVar25 ^ 0xbebfcad2) ^ DAT_1826718cc;
  uVar36 = DAT_1826716cc;
  bVar16 = (byte)uVar40;
  *(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0xad9673e)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar38 ^ 0x4a4f2fe3)) ^ DAT_1826718cc) +
       (uVar22 ^ *(uint *)(lVar3 + -0x678)) ^ uVar35;
  uVar22 = (*(uint *)(lVar3 + -0x328) ^ uVar35) << ((bVar16 ^ 0xac) & 0x1f);
  *(uint *)(lVar3 + -0x47c) =
       *(uint *)(lVar3 + -0x754) ^ uVar36 | uVar10 ^ *(uint *)(lVar3 + -0x504);
  *(uint *)(lVar3 + -0x27c) = uVar22 ^ uVar36;
  uVar35 = (*(uint *)(lVar3 - ((ulonglong)uVar8 ^ 0x8d31ced4)) ^ uVar35) >>
           (((byte)uVar17 ^ 0xd) & 0x1f) ^ DAT_182671800;
  *(uint *)(lVar3 + -0x5cc) = uVar35;
  uVar35 = (uVar35 ^ DAT_182671800 | uVar22) ^ DAT_182671704;
  *(uint *)(lVar3 + -0x274) = uVar35;
  uVar36 = uVar35 ^ DAT_1826716e0 ^ DAT_182671704;
  *(ulonglong *)(lVar3 + -0x240) =
       (uVar42 ^ 0xb3096029c61b9617) + (CONCAT44(uVar25,uVar9) ^ 0x92deb65f3f3b0f2b);
  uVar22 = *(uint *)(lVar3 - (uVar29 ^ 0x4a4f24e3)) ^ DAT_1826715e8;
  uVar35 = *(uint *)(lVar3 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar3 + -0x968) = uVar36;
  uVar35 = uVar22 + uVar35 ^ DAT_1826718b8;
  *(uint *)(lVar3 + -0x964) = uVar35;
  *(uint *)(lVar3 + -0x344) = uVar35;
  bVar2 = (byte)DAT_1826716d4;
  uVar10 = DAT_182671674;
  uVar22 = DAT_182671578;
  uVar35 = uVar35 ^ DAT_182671674 ^ DAT_1826718b8;
  *(uint *)(lVar3 + -0x678) = DAT_182671760 ^ DAT_1826716e0 ^ uVar36;
  *(uint *)(lVar3 + -0x844) = uVar35;
  uVar42 = (ulonglong)DAT_18267166c;
  *(ulonglong *)(lVar3 + -0x548) = CONCAT44(uVar7,uVar40) ^ 0xdedefbecff7fbea7 | 0x5cde6b24fa573c85;
  *(ulonglong *)(lVar3 + -0x250) =
       (CONCAT44(uVar5,uVar7) ^ 0xad96416318dfccd) * 0x20 + *(longlong *)(lVar3 + -0x8f0) + 6 ^
       uVar42;
  *(undefined8 *)(lVar3 - (uVar27 ^ 0x17f2c5f8)) = 0x72a80498b4ad689d;
  *(byte *)(lVar3 - ((ulonglong)uVar31 ^ 0x17f2cce9)) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a4 ^ 0x2c97481f)) ^ uVar42) ^
       (byte)DAT_182671694 ^ bVar2;
  *(byte *)(*(ulonglong *)(lVar3 + -0x1e0) ^ (ulonglong)DAT_182671824) = bVar16 ^ 0x92;
  uVar36 = DAT_1826715a8;
  uVar30 = (ulonglong)DAT_1826715a8;
  *(uint *)(lVar3 + -0x374) = (*(byte *)(lVar3 + -0x1e1) ^ bVar2) ^ DAT_182671804;
  uVar26 = uVar36 + uVar22;
  bVar2 = (byte)uVar26;
  DAT_182671584 = uVar26;
  *(uint *)(lVar3 - ((ulonglong)uVar22 ^ 0x4dd8ee7)) = 0xf35b070b >> ((bVar2 ^ 0x39) & 0x1f);
  uVar15 = DAT_1826718a8;
  lVar4 = DAT_182671560;
  uVar35 = *(uint *)(lVar3 + -0x374) ^ DAT_182671804;
  *(uint *)(lVar3 + -0x504) =
       (*(uint *)(lVar3 - ((ulonglong)uVar36 ^ 0x408650f1)) ^ DAT_182671760) + (uVar26 ^ 0x4c94c6e9)
       ^ DAT_182671774;
  uVar11 = DAT_1826715d4;
  *(uint *)(lVar3 + -0x47c) = uVar35 << (((byte)uVar22 ^ 0xa2) & 0x1f) ^ DAT_1826717c8;
  uVar12 = DAT_182671628;
  uVar42 = *(ulonglong *)(lVar4 + -0x400);
  uVar32 = (*(uint *)(lVar3 - (uVar33 ^ 0xbebfcfcd)) ^ DAT_182671774) -
           (*(uint *)(lVar3 - (uVar30 ^ 0x408652f5)) ^ DAT_1826717c8) ^ DAT_182671600;
  *(uint *)(lVar3 + -0x328) = uVar32;
  uVar32 = (uVar32 ^ DAT_182671600) * (uVar10 ^ *(uint *)(lVar3 + -0x844));
  uVar20 = (ulonglong)uVar26;
  *(uint *)(lVar3 + -0x27c) = uVar32 ^ uVar15;
  uVar10 = DAT_1826715b8;
  *(ulonglong *)(lVar4 + -0x1f0) = uVar42 >> ((bVar2 ^ 0x23) & 0x3f);
  uVar35 = uVar35 * 6;
  *(uint *)(lVar4 + -0x5cc) = uVar35 ^ uVar11;
  *(uint *)(lVar4 + -0x3c8) = uVar35 + uVar32 ^ uVar12;
  *(uint *)(lVar4 - (uVar30 ^ 0x40865efd)) =
       (*(uint *)(lVar4 - (uVar24 ^ 0xad967de)) ^ uVar12) << (((byte)uVar6 ^ 0x55) & 0x1f) ^ uVar10;
  *(ulonglong *)(lVar4 + -0x510) = *(ulonglong *)(lVar4 + -0x8a8) ^ *(ulonglong *)(lVar4 + -0x5c8);
  uVar42 = (ulonglong)DAT_18267163c;
  *(uint *)(lVar4 - (uVar27 ^ 0x17f2c46c)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar22 ^ 0x4dd8a7b)) ^ uVar12) >>
       (((byte)DAT_1826715a4 ^ 0x5c) & 0x1f) ^ DAT_182671898;
  uVar35 = (*(uint *)(lVar4 + -0x964) ^ DAT_182671898 | uVar10 ^ *(uint *)(lVar4 + -0x874)) ^
           DAT_1826716a0;
  uVar34 = (ulonglong)DAT_18267165c;
  *(uint *)(lVar4 + -0x344) = uVar35;
  uVar35 = uVar35 ^ DAT_1826717b4 ^ DAT_1826716a0;
  *(uint *)(lVar4 + -0x274) = (uVar17 ^ 0xd12a0a0f) * (uVar26 ^ 0x10ee9348);
  puVar1 = (uint *)(*(longlong *)(lVar4 + -0xa08) +
                   (CONCAT44(uVar9,uVar40) ^ 0xd94b674915498aa5) * 4);
  *(ulonglong *)(lVar4 + -0x8e0) = (ulonglong)puVar1 ^ uVar42;
  *puVar1 = uVar35;
  uVar27 = (ulonglong)DAT_182671874;
  *(undefined8 *)(lVar4 + -0x138) = *(undefined8 *)(lVar4 + 0x38);
  *(undefined8 *)(lVar4 + -0xe0) = *(undefined8 *)(lVar4 + -0x8c8);
  *(undefined8 *)(lVar4 - ((ulonglong)uVar22 ^ 0x4dd8243)) = 0x72714af9f3fbffd3;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0x22cc393e)) = *(ulonglong *)(lVar4 + -0x138) ^ uVar34
  ;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       CONCAT44(uVar38,uVar7) ^ 0xc0c2508e1c0a288 | 0x41035ad518351d17;
  uVar42 = *(ulonglong *)(lVar3 - ((ulonglong)uVar40 ^ 0x15498a41));
  *(ulonglong *)(DAT_182671560 + -0x188) = uVar42 ^ uVar27;
  bVar14 = (byte)DAT_182671718;
  bVar13 = DAT_1826716c0;
  lVar3 = DAT_182671560;
  uVar37 = (ulonglong)_DAT_182671618;
  *(ulonglong *)(DAT_182671560 + -0x4f0) = (CONCAT44(uVar31,uVar25) ^ 0x17f2cd08bebfcac8) + uVar42;
  lVar4 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x561) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xad9659e)) ^ uVar27) ^ bVar13 ^ bVar14;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar28 ^ 0x318df775)) ^ (ulonglong)DAT_182671738) = bVar2 ^ 99;
  bVar2 = DAT_182671610;
  pbVar21 = (byte *)(*(ulonglong *)(lVar4 + -0x820) ^ uVar34);
  *(byte **)(lVar4 + -0xc80) = pbVar21 + (CONCAT44(uVar8,uVar6) ^ 0x8d31cdfc3bfe2359);
  *pbVar21 = bVar13 ^ *(byte *)(lVar4 + -0x561);
  *(undefined8 *)(lVar4 - (uVar20 ^ 0x4563ec14)) = *(undefined8 *)(lVar4 + -0xc80);
  uVar42 = *(ulonglong *)(lVar4 - (uVar30 ^ 0x40865279));
  *(ulonglong *)(lVar4 + -0x7a0) = uVar42;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x918) = *(ulonglong *)(lVar4 - (uVar24 ^ 0xad9683e)) ^ uVar37;
  uVar27 = (ulonglong)DAT_1826716b4;
  *(ulonglong *)(lVar3 + -0x298) = uVar42 ^ uVar27;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x18) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xbebfc851)) ^ uVar27) +
       (CONCAT44(uVar9,uVar17) ^ 0xd94b674922cc311f);
  *(byte *)(lVar4 + -0x412) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0x4a4f2e0f)) ^ uVar27) ^ bVar2 ^ bVar14;
  *(byte *)(*(ulonglong *)(lVar4 + -0xae0) ^ (ulonglong)DAT_1826715cc) = bVar16 ^ 0xf6;
  uVar35 = DAT_1826715a4;
  *(ulonglong *)(lVar4 + -0x470) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x4dd80ab)) ^ uVar37) + 1;
  *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0x4563e774)) =
       CONCAT44(uVar35,uVar36) ^ 0xc0d5aacab392b06;
  lVar3 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar39 ^ 0x3bfe2a40)) ^ uVar37) =
       bVar2 ^ *(byte *)(DAT_182671560 + -0x412);
  uVar27 = (ulonglong)DAT_18267169c;
  *(undefined8 *)(lVar3 + -0xac8) = *(undefined8 *)(lVar3 + -0x470);
  *(ulonglong *)(lVar3 + -0x600) =
       CONCAT44(uVar5,uVar35) ^ CONCAT44(uVar36,uVar22) ^ 0x44f88707900d8084;
  *(undefined8 *)(lVar3 + -0x1a8) = *(undefined8 *)(lVar3 - (uVar20 ^ 0x4563e024));
  *(longlong *)(lVar3 + -0x3b8) = *(longlong *)(lVar3 + -0x688) + -0x5517ba82a3c47d4b;
  uVar42 = (ulonglong)DAT_182671888;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x3bfe22e8)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x22cc3bd6)) ^ uVar27;
  *(ulonglong *)(lVar3 + -0xd80) = *(ulonglong *)(lVar3 + -0x1a8) ^ uVar42;
  *(ulonglong *)(lVar3 + -0xbc8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x22cc3c9e)) ^ uVar42) +
       (CONCAT44(uVar7,uVar8) ^ 0x318dfccd8d31cdfd);
  *(uint *)(lVar3 + -0x968) = (*(uint *)(lVar3 + -0x5cc) ^ uVar11) + (DAT_182671578 ^ 0x6820c09d);
  bVar16 = (byte)DAT_1826715b4;
  *(byte *)(lVar3 + -0xa09) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0xd94b6ac9)) ^ uVar42) ^ (byte)DAT_18267176c ^
       bVar14;
  *(byte *)(*(ulonglong *)(lVar3 + -0x8f8) ^ (ulonglong)DAT_1826717d8) = bVar16 ^ 0x95;
  pbVar21 = (byte *)(*(ulonglong *)(lVar3 + -0x1b0) ^ uVar27);
  uVar27 = (ulonglong)DAT_1826716f0;
  *(ulonglong *)(lVar3 + -0x628) =
       (CONCAT44(uVar8,uVar6) ^ 0x55a6c4740fc9b627) >>
       ((byte)*(undefined8 *)(lVar3 + -0x510) & 0x3f);
  *(byte **)(lVar3 + -0xae8) = pbVar21 + 1;
  *pbVar21 = *(byte *)(lVar3 - ((ulonglong)uVar40 ^ 0x154980a8)) ^ (byte)DAT_18267176c;
  *(undefined8 *)(lVar3 - (uVar33 ^ 0xbebfc1f9)) = *(undefined8 *)(lVar3 + -0xae8);
  *(undefined8 *)(lVar3 - (uVar24 ^ 0xad96936)) = *(undefined8 *)(lVar3 + -0xbc8);
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x8d0) = *(ulonglong *)(lVar3 + -0xb30) ^ uVar27;
  uVar28 = (ulonglong)DAT_18267183c;
  uVar42 = *(ulonglong *)(lVar4 + -0xd20);
  *(ulonglong *)(lVar4 + -0xaa0) = uVar42 ^ uVar28;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x390) = uVar42 + (CONCAT44(uVar38,uVar7) ^ 0x4a4f2c97318dfccc);
  uVar35 = DAT_1826715a4;
  bVar16 = (byte)DAT_1826715a4;
  *(byte *)(lVar3 + -0x381) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar41 ^ 0x8d31c75c)) ^ uVar28) ^ (byte)DAT_182671688 ^
       bVar14;
  *(byte *)(*(ulonglong *)(lVar3 + -0x1f8) ^ (ulonglong)DAT_182671894) = bVar16 ^ 0x6a;
  pbVar21 = (byte *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x8d0));
  bVar16 = *(byte *)(lVar3 + -0x381) ^ (byte)DAT_182671688;
  *(byte **)(lVar3 + -0xc30) = pbVar21 + (CONCAT44(uVar36,uVar31) ^ 0x4086568917f2cd09);
  *pbVar21 = bVar16;
  uVar24 = (ulonglong)DAT_18267189c;
  *(ulonglong *)(lVar3 + -0x750) = *(ulonglong *)(lVar3 + -0xc30);
  uVar42 = *(ulonglong *)(lVar3 - (uVar23 ^ 0xd94b64d9));
  *(ulonglong *)(lVar3 + -0x3e0) = uVar42;
  uVar23 = (ulonglong)DAT_182671730;
  *(ulonglong *)(lVar3 + -0x818) = uVar24 ^ *(ulonglong *)(lVar3 + -0xc30);
  *(byte *)(lVar3 + -0x909) = *(byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xaa0)) ^ bVar14;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x4a4f28f7)) = uVar23 ^ uVar42;
  *(ulonglong *)(lVar3 + -0x170) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar35 ^ 0x2c974e2f)) ^ uVar23) +
       (CONCAT44(uVar7,uVar7) ^ 0x318dfccd318dfccc);
  uVar42 = (ulonglong)DAT_182671634;
  *(byte *)(lVar3 + -0x505) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x460) ^ uVar23) ^ (byte)DAT_1826718ac ^ bVar14;
  *(byte *)(*(ulonglong *)(lVar3 + -0x5b8) ^ uVar42) = (byte)uVar17 ^ 100;
  pbVar21 = (byte *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x818));
  *(byte **)(lVar3 + -0xba0) = pbVar21 + (CONCAT44(uVar38,uVar9) ^ 0x4a4f2c97d94b6748);
  *(uint *)(lVar3 + -0x754) = (uVar35 ^ 0xe321effe) + *(int *)(lVar3 + -0x274);
  *pbVar21 = *(byte *)(lVar3 - (uVar20 ^ 0x4563e539)) ^ (byte)DAT_1826718ac;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar19;
  *(undefined8 *)(lVar3 + -0x60) = *(undefined8 *)(lVar3 - (uVar33 ^ 0xbebfc169));
  return;
}



############ FUN_ 180ef1bc0 size=5754 ############

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

void FUN_180ef1bc0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_res20;
  byte local_130;
  byte local_118;
  byte local_110;
  byte local_108;
  
  uVar14 = _DAT_18267188c;
  uVar13 = DAT_1826715a4;
  uVar12 = DAT_18267159c;
  uVar10 = DAT_182671594;
  uVar9 = DAT_182671590;
  uVar7 = DAT_182671578;
  uVar6 = DAT_182671574;
  uVar5 = DAT_182671570;
  lVar1 = DAT_182671560;
  uVar42 = (ulonglong)DAT_182671594;
  uVar37 = (ulonglong)DAT_1826715a4;
  uVar28 = (ulonglong)DAT_18267159c;
  DAT_182671584 = ~DAT_182671594;
  uVar32 = (ulonglong)DAT_182671578;
  DAT_18267156c = DAT_182671574 | DAT_182671578;
  uVar48 = DAT_182671590 & DAT_182671570;
  uVar36 = (ulonglong)uVar48;
  DAT_182671568 = DAT_1826715a4 & DAT_18267159c;
  uVar29 = *(uint *)(&DAT_182611e78 + DAT_182671990) ^ DAT_18267156c;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671990) ^ DAT_182671574;
  uVar39 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar50 = CONCAT44(DAT_182671698,DAT_182671698);
  uVar47 = CONCAT44(DAT_182671748,DAT_182671748);
  uVar30 = CONCAT44(DAT_182671740,DAT_182671740) ^ uVar50 ^ uVar39 ^
           *(ulonglong *)(DAT_182671560 + -0x748) ^ *(ulonglong *)(DAT_182671560 + -0x610);
  DAT_1826715ac = uVar48;
  *(ulonglong *)(DAT_182671560 + -0x3b8) = uVar30;
  uVar3 = DAT_182671568;
  uVar43 = (ulonglong)DAT_182671568;
  bVar17 = (byte)DAT_182671568;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar7 ^ 0x8dbb6d9b)) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar1 + -0x1d8)) + (uVar30 ^ uVar39) ^ uVar47;
  lVar1 = DAT_182671560;
  puVar21 = (ulonglong *)(DAT_182671560 + -0x3b8);
  uVar30 = (uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x3b8)) << 0x3a;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar30 ^ CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar15 = _DAT_182671838;
  uVar22 = CONCAT44(DAT_182671630,DAT_182671630);
  puVar20 = (ulonglong *)(lVar1 - ((ulonglong)uVar13 ^ 0x22110050));
  *(ulonglong *)(lVar1 + -0xa60) = (uVar39 ^ *puVar21) >> ((bVar17 ^ 0x36) & 0x3f) ^ uVar22;
  uVar8 = DAT_182671584;
  lVar1 = DAT_182671560;
  uVar44 = CONCAT44(uVar15,uVar15);
  uVar40 = (ulonglong)DAT_182671584;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0x4f75cc35)) =
       (uVar22 ^ *puVar20 | uVar30) ^ uVar44;
  uVar14 = DAT_182671688;
  lVar2 = DAT_182671560;
  uVar38 = (ulonglong)uVar5;
  *(ulonglong *)(lVar1 + -0xc08) =
       (CONCAT44(uVar8,uVar3) ^ 0x2a7232e5274ae6e6) <<
       (((byte)uVar15 ^ *(byte *)(lVar1 + -0x600)) & 0x3f);
  uVar4 = DAT_18267178c;
  uVar31 = CONCAT44(uVar14,uVar14);
  uVar39 = (ulonglong)uVar9;
  puVar34 = (ulonglong *)(lVar2 - (uVar39 ^ 0x5db15cc9));
  uVar30 = (ulonglong)DAT_18267178c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar48 ^ 0x50905801)) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0xd094ded7)) ^ uVar31 ^ uVar44 ^ uVar47 ^ *puVar34;
  uVar14 = DAT_1826715c0;
  uVar45 = CONCAT44(uVar4,uVar4);
  uVar25 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar2 + -0x5c8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xbdcab67a)) ^ uVar45) +
       (uVar50 ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar25;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x1f0) = (uVar45 ^ *(ulonglong *)(lVar2 + -0x3f0)) << 0x16 ^ uVar26;
  uVar35 = CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar30 = (*(ulonglong *)(lVar2 + -0x3f0) >> 0x20 ^ uVar30) >> 10;
  uVar50 = (ulonglong)uVar6;
  *(ulonglong *)(lVar2 + -0x9f8) = uVar30 ^ uVar35;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x22110a90)) =
       uVar30 + (CONCAT44(uVar6,uVar12) ^ 0xd4e27356221bb509);
  uVar11 = DAT_182671598;
  uVar23 = (ulonglong)DAT_182671598;
  uVar19 = DAT_182671598 << 0x10 | DAT_182671598 >> 0x10;
  uVar24 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar30 = (uVar26 ^ *(ulonglong *)(lVar2 + -0x1f0) | uVar35 ^ *(ulonglong *)(lVar2 + -0x9f8)) ^
           uVar24;
  uVar27 = CONCAT44(uVar19,DAT_182671598);
  DAT_182671580 = uVar19;
  *(ulonglong *)(lVar2 + -0x688) = uVar30;
  *(ulonglong *)(lVar2 + -0x6b8) =
       uVar27 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0x5c8) ^ 0xf227f6a84f8fda8e;
  uVar35 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar30 = *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xfffffa37)) ^ uVar35 ^ uVar30 ^ uVar24 ^
           uVar25;
  *(ulonglong *)(lVar2 + -0xa88) = uVar30;
  *(ulonglong *)(lVar2 + -0x318) =
       (uVar35 ^ uVar30) + (uVar47 ^ *(ulonglong *)(lVar2 + -0x670)) ^ uVar45;
  uVar4 = DAT_18267156c;
  bVar33 = (byte)(uVar11 >> 0x10);
  *(uint *)(lVar2 - (uVar36 ^ 0x50905191)) = (uVar8 ^ 0x2ed639a6) * -0x79520efa;
  uVar16 = DAT_1826717a4;
  uVar47 = (uVar35 ^ *(ulonglong *)(lVar2 + -0xa88)) << ((bVar33 ^ 0xdf) & 0x3f);
  local_res20 = (byte)uVar7;
  uVar30 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar2 + -0xa80) = uVar47 ^ CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar2 + -0x800) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0xa88)) >> ((local_res20 ^ 0xcb) & 0x3f) ^ uVar30;
  uVar14 = DAT_182671804;
  uVar41 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  uVar30 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar48 ^ 0x50905081)) ^ uVar30 | uVar47) ^ uVar41;
  *(ulonglong *)(lVar2 + -0x638) = uVar30;
  uVar47 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x22110d78)) =
       *(ulonglong *)(lVar2 - (uVar32 ^ 0x8dbb68f3)) ^ uVar47 ^ uVar30 ^ uVar41 ^ uVar45;
  uVar49 = CONCAT44(DAT_182671658,DAT_182671658);
  bVar17 = (byte)uVar8;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xd094d97f)) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0x2110ff8)) ^ uVar25) +
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x80)) ^ uVar49;
  uVar14 = _DAT_1826716c0;
  *(ulonglong *)(lVar2 + -0x3b8) =
       uVar41 ^ *(ulonglong *)(lVar2 + -0x638) | *(ulonglong *)(lVar2 + -0x6b8);
  uVar15 = DAT_182671708;
  lVar1 = DAT_182671560;
  uVar41 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0xffffff7f)) ^ uVar31) <<
           ((bVar17 ^ 0xaa) & 0x3f);
  uVar51 = (uVar31 ^ *(ulonglong *)(DAT_182671560 + -0x80)) >> (((byte)uVar12 ^ 0x15) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa60) = uVar51 ^ CONCAT44(DAT_182671760,DAT_182671760);
  uVar30 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 + -0xbf0) = uVar41 ^ CONCAT44(uVar14,uVar14);
  puVar46 = (ulonglong *)(lVar1 - (uVar39 ^ 0x5db156c1));
  uVar31 = CONCAT44(DAT_182671768,DAT_182671768);
  *puVar46 = (uVar41 | uVar51) ^ uVar30;
  *(ulonglong *)(lVar1 + -0x600) =
       uVar49 ^ *(ulonglong *)(lVar1 + -0xc08) ^ uVar31 ^ uVar30 ^ *(ulonglong *)(lVar1 + -0x1d8);
  uVar15 = DAT_1826718b8;
  puVar21 = (ulonglong *)(lVar1 - ((ulonglong)uVar19 ^ 0xfffff57f));
  *(ulonglong *)(lVar1 + -0x610) =
       (uVar27 ^ 0xe46463404c32755e) << (((byte)uVar16 ^ (byte)*puVar21) & 0x3f);
  uVar14 = DAT_18267182c;
  lVar1 = DAT_182671560;
  uVar27 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 + -0x3f0) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0xafbb6deb)) ^ uVar31) +
       (CONCAT44(uVar13,uVar7) ^ 0x1a58c7d0d90ea850) ^ uVar27;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 - (uVar43 ^ 0x2110a90)) =
       (*(ulonglong *)(lVar1 - (uVar50 ^ 0x2eb04bfb)) ^ uVar45) +
       (CONCAT44(uVar13,uVar11) ^ 0xb825f98383c89d8) ^ uVar30;
  uVar14 = DAT_1826716fc;
  lVar2 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(lVar1 + -0x9f8) =
       (*(ulonglong *)(lVar1 - (uVar36 ^ 0x50905b71)) ^ uVar27) +
       (*(ulonglong *)(lVar1 + -0xa0) ^ uVar30) ^ uVar31;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar30 = *(ulonglong *)(lVar2 + -0x3f0);
  *(ulonglong *)(lVar1 + -0x1f0) =
       (*(ulonglong *)(lVar1 + -0x3f0) ^ uVar27) << ((bVar17 ^ 0x84) & 0x3f) ^ uVar25;
  *(ulonglong *)(lVar2 + -0x688) = (uVar30 ^ uVar27) >> ((local_res20 ^ 0xd9) & 0x3f) ^ uVar41;
  lVar1 = DAT_182671560;
  *(int *)(DAT_182671560 - (uVar40 ^ 0xbdcabdce)) =
       *(int *)(lVar2 - (uVar40 ^ 0xbdcab046)) << ((byte)*(undefined4 *)(lVar2 + -0x3d4) & 0x1f);
  uVar27 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar30 = (*(ulonglong *)(lVar1 + -0x688) ^ uVar41 | uVar25 ^ *(ulonglong *)(lVar1 + -0x1f0)) ^
           uVar27;
  *(ulonglong *)(lVar1 + -0x670) = uVar30;
  uVar14 = _DAT_1826715d8;
  *(ulonglong *)(lVar1 + -0xa88) =
       CONCAT44(uVar5,uVar6) ^ 0x6d3ee4b43a101386 | CONCAT44(uVar12,uVar19) ^ 0x4c6de01692844b95;
  uVar15 = DAT_182671614;
  uVar52 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0x800) =
       *(ulonglong *)(lVar1 - (uVar36 ^ 0x50905179)) ^ uVar52 ^ uVar30 ^ uVar27 ^ uVar31;
  lVar1 = DAT_182671560;
  uVar45 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (CONCAT44(uVar10,uVar11) ^ 0x62c8c3b87b348fc1) +
       (uVar47 ^ *(ulonglong *)(DAT_182671560 + -0x748)) ^ uVar45;
  uVar14 = DAT_1826716f4;
  *(ulonglong *)(lVar1 + -0x6b8) =
       CONCAT44(uVar3,uVar13) ^ 0x66cec2a122669dfe | CONCAT44(uVar3,uVar9) ^ 0x420205a0db8348ef;
  uVar51 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x8dbb6dd3)) =
       (CONCAT44(uVar7,uVar10) ^ 0x4a0cd950fbaa2fe6) + (uVar49 ^ *(ulonglong *)(lVar1 + -0x1d8)) ^
       uVar51;
  uVar27 = *(ulonglong *)(lVar1 + -0x5c8) ^ uVar45;
  uVar47 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar1 + -0x3b8) =
       (*(ulonglong *)(lVar1 - (uVar50 ^ 0x2eb04edb)) ^ uVar51) + uVar27 ^ uVar47;
  *(ulonglong *)(lVar1 + -0x80) =
       (CONCAT44(uVar5,uVar48) ^ 0xb07c77d60c25585e) << ((byte)uVar27 & 0x3f);
  uVar4 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar41 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  local_118 = (byte)uVar11;
  uVar30 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar1 + -0xbf0) =
       (*(ulonglong *)(lVar1 - (uVar28 ^ 0x4f75cffd)) ^ uVar45) << ((local_118 ^ 0xef) & 0x3f) ^
       uVar41;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xafbb618b)) = uVar27 >> ((byte)uVar13 & 0x3f) ^ uVar35;
  uVar15 = DAT_18267185c;
  uVar30 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *puVar46 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0x5db150a9)) ^ uVar35 |
             *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xafbb601b)) ^ uVar41) ^ uVar30;
  uVar14 = DAT_18267160c;
  uVar27 = CONCAT44(uVar15,uVar15);
  uVar30 = *(ulonglong *)(lVar2 - (uVar23 ^ 0xfffffc47)) ^ *(ulonglong *)(lVar2 + -0xc08) ^ uVar27 ^
           uVar30 ^ uVar47;
  *(ulonglong *)(lVar2 + -0xa80) = uVar30;
  uVar45 = CONCAT44(uVar14,uVar14);
  uVar41 = (*(ulonglong *)(lVar2 + -0x9f8) ^ uVar31) + (uVar30 ^ uVar27) ^ uVar45;
  *(ulonglong *)(lVar2 + -0x610) = uVar41;
  *(ulonglong *)(lVar2 + -0x600) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0x423540f5)) ^ uVar27) << 0x34 ^ uVar35;
  uVar14 = DAT_182671638;
  *(ulonglong *)(lVar2 + -0x318) =
       (CONCAT44(uVar19,uVar8) ^ 0x6fa287cc92c4867d) - (CONCAT44(uVar6,uVar48) ^ 0x65e7604c9806cebf)
  ;
  uVar15 = DAT_18267169c;
  lVar1 = DAT_182671560;
  uVar31 = (*(ulonglong *)(DAT_182671560 + -0xa80) ^ uVar27) >> (((byte)uVar13 ^ 0x3c) & 0x3f);
  puVar46 = (ulonglong *)(DAT_182671560 - (uVar42 ^ 0x42354c75));
  *(ulonglong *)(DAT_182671560 + -0xa0) = uVar31 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671894;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar31 = (uVar31 | uVar35 ^ *puVar46) ^ uVar30;
  *(ulonglong *)(lVar1 + -0x3f0) = uVar31;
  uVar27 = CONCAT44(uVar14,uVar14);
  uVar35 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar1 + -0x1f0) = uVar31 ^ uVar41 ^ uVar27 ^ uVar30 ^ uVar45;
  uVar14 = DAT_1826716a0;
  *(ulonglong *)(lVar1 + -0x688) =
       (*(ulonglong *)(lVar1 - (uVar28 ^ 0x4f75c235)) ^ uVar52) +
       (*(ulonglong *)(lVar1 + -0x3b8) ^ uVar47) ^ uVar35;
  uVar47 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 - (uVar23 ^ 0xfffff577)) =
       (*(ulonglong *)(lVar1 + -0x800) ^ uVar52) << (((byte)uVar48 ^ 0xb8) & 0x3f) ^ uVar47;
  uVar30 = (*(ulonglong *)(lVar1 - (uVar40 ^ 0xbdcabd8a)) ^ uVar52) >> ((bVar17 ^ 0x8d) & 0x3f);
  uVar31 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar1 + -0x670) = uVar30 ^ CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar14 = DAT_182671620;
  uVar30 = (uVar30 | *(ulonglong *)(lVar1 + -0xa88) ^ uVar47) ^ uVar31;
  *(ulonglong *)(lVar1 + -0x748) = uVar30;
  uVar47 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 - (uVar36 ^ 0x50905e39)) =
       uVar30 ^ *(ulonglong *)(lVar1 + -0x688) ^ uVar47 ^ uVar31 ^ uVar35;
  lVar2 = DAT_182671560;
  uVar41 = CONCAT44(DAT_182671808,DAT_182671808);
  *(ulonglong *)(lVar1 + -0x1d8) =
       (uVar47 ^ *(ulonglong *)(lVar1 + -0x6b8)) + (*(ulonglong *)(lVar1 + -0x610) ^ uVar45) ^
       uVar41;
  local_108 = (byte)uVar10;
  *(uint *)(lVar1 - (uVar32 ^ 0x8dbb6f97)) = *(uint *)(lVar1 + -0x274) >> 0x12;
  uVar36 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(lVar1 - (uVar43 ^ 0x2110c08)) =
       (uVar47 ^ *(ulonglong *)(lVar1 + -0x6b8)) << ((local_108 ^ 0x62) & 0x3f) ^ uVar36;
  uVar30 = *(ulonglong *)(lVar2 + -0x6b8);
  *(uint *)(lVar1 + -0x754) = (DAT_182671568 ^ 0xbe62ce5) + *(int *)(lVar1 + -0x3d4);
  uVar49 = CONCAT44(uVar5,DAT_18267156c);
  uVar23 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x4f75cab5)) =
       (uVar47 ^ uVar30) >> (((byte)DAT_18267156c ^ 0xc2) & 0x3f) ^ uVar23;
  uVar30 = *(ulonglong *)(lVar2 + -0x1d8);
  uVar45 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar47 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  *(ulonglong *)(lVar2 + -0x5c8) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0x638) | *(ulonglong *)(lVar2 + -0x80) ^ uVar23) ^ uVar45;
  uVar23 = *(ulonglong *)(lVar2 - (uVar37 ^ 0x22110ff8)) ^ uVar30 ^ uVar47 ^ uVar45 ^ uVar41;
  *(ulonglong *)(lVar2 + -0xa60) = uVar23;
  uVar14 = DAT_1826717a8;
  lVar1 = DAT_182671560;
  uVar27 = *(ulonglong *)(lVar2 + -0x1f0) ^ uVar27;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (uVar23 ^ uVar47) - (CONCAT44(uVar13,uVar19) ^ 0xe3a18856f87b5ca6);
  uVar45 = (*(ulonglong *)(lVar2 + -0x688) ^ uVar35) + uVar27;
  *(ulonglong *)(lVar1 + -0xc08) = uVar45 ^ uVar26;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0x9f8) = uVar27 << (((byte)uVar12 ^ 0x1d) & 0x3f) ^ uVar37;
  uVar14 = DAT_182671684;
  uVar27 = uVar27 >> (((byte)uVar48 ^ 0x99) & 0x3f);
  *(ulonglong *)(lVar1 + -0x318) = uVar27 ^ CONCAT44(DAT_182671818,DAT_182671818);
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0xa80) =
       (*(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xbdcabc72)) ^ uVar37 | uVar27) ^ uVar23;
  lVar1 = DAT_182671560;
  uVar37 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar23 = uVar45 ^ uVar37 ^ uVar23 ^ *puVar21;
  local_130 = (byte)uVar9;
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar23;
  *(ulonglong *)(lVar1 + -0xa0) = (uVar30 ^ uVar41) + (uVar23 ^ uVar37) ^ uVar44;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_18267156c ^ 0xafbb681b)) =
       (uVar37 ^ *puVar34) << ((local_130 ^ 0xcc) & 0x3f) ^ uVar22;
  local_110 = (byte)uVar6;
  *(ulonglong *)(lVar1 + -0x3b8) = *(ulonglong *)(lVar1 + -0xbf0) | 0x2208b20683f3129;
  uVar14 = DAT_182671734;
  uVar23 = (uVar37 ^ *(ulonglong *)(lVar1 + -0x600)) >> ((local_110 ^ 0xd8) & 0x3f);
  *(ulonglong *)(lVar1 + -0x800) = uVar23 ^ CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar15 = DAT_182671820;
  lVar2 = DAT_182671560;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar30 = *(ulonglong *)(DAT_182671560 + -0xc08);
  uVar23 = (uVar22 ^ *(ulonglong *)(lVar1 + -0x3f0) | uVar23) ^ uVar37;
  *(ulonglong *)(lVar1 + -0xa88) = uVar23;
  uVar27 = CONCAT44(uVar15,uVar15);
  uVar22 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar2 + -0x670) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0xd094d807)) ^ uVar23 ^ uVar44 ^ uVar27 ^ uVar37;
  uVar14 = DAT_182671794;
  *(ulonglong *)(lVar2 + -0x748) =
       (uVar26 ^ uVar30) + (*(ulonglong *)(lVar2 + -0xa60) ^ uVar47) ^ uVar22;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 - (uVar50 ^ 0x2eb04ef3)) =
       (*(ulonglong *)(lVar2 + -0xa60) ^ uVar47) << ((local_130 ^ 0xec) & 0x3f) ^ uVar23;
  lVar1 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xbdcab332)) =
       (*(ulonglong *)(DAT_182671560 + -0xa60) ^ uVar47) >> ((local_108 ^ 0x6e) & 0x3f) ^ uVar30;
  lVar2 = DAT_182671560;
  uVar38 = CONCAT44(DAT_182671788,DAT_182671788);
  *(ulonglong *)(lVar1 - (uVar40 ^ 0xbdcab3b2)) =
       (uVar30 ^ *(ulonglong *)(lVar1 + -0x6b8) | uVar23 ^ *(ulonglong *)(lVar1 + -0x610)) ^ uVar38;
  uVar23 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar30 = *(ulonglong *)(lVar1 - (uVar28 ^ 0x4f75cc0d)) ^
           *(ulonglong *)(lVar2 - (uVar32 ^ 0x8dbb6ca3)) ^ uVar23 ^ uVar38 ^ uVar22;
  uVar38 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(lVar2 + -0x80) = uVar30;
  bVar17 = (byte)DAT_18267156c;
  *(ulonglong *)(lVar2 + -0x5c8) = (uVar30 ^ uVar23) + (uVar49 ^ 0x17236a1c16240e78) ^ uVar38;
  uVar23 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar2 + -0x688) =
       (CONCAT44(uVar48,uVar13) ^ 0x7d56daa564f1d069) << ((bVar17 ^ 0xeb) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x2110bc0)) =
       (CONCAT44(uVar7,uVar48) ^ 0xf03eb9b7e6161386) + (uVar44 ^ *(ulonglong *)(lVar2 + -0xa0)) ^
       uVar23;
  uVar14 = DAT_182671750;
  uVar30 = *(ulonglong *)(lVar2 + -0x5c8) ^ uVar38;
  *(ulonglong *)(lVar2 + -0x9f8) = (uVar23 ^ *(ulonglong *)(lVar2 + -0x1f0)) + uVar30 ^ uVar51;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x5db159d1)) = uVar30 << 0x19 ^ uVar23;
  *(ulonglong *)(lVar2 + -0xa80) =
       (*(ulonglong *)(lVar2 + -0x5c8) ^ uVar38) >> ((local_110 ^ 0xc4) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x1d8) =
       (CONCAT44(DAT_18267158c,uVar11) ^ 0xcb0c884318e4bed7) +
       (CONCAT44(uVar3,uVar5) ^ 0x5e0f8c29753a3f49);
  uVar3 = DAT_1826717d0;
  uVar37 = (ulonglong)DAT_1826717d0;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0x21100b0)) ^ uVar24 |
       uVar23 ^ *(ulonglong *)(lVar2 + -0x318)) ^ uVar25;
  uVar23 = (CONCAT44(uVar6,uVar5) ^ 0x6afb2f298b793986) + (*(ulonglong *)(lVar2 + -0x670) ^ uVar27);
  *(ulonglong *)(lVar2 + -0x3b8) =
       *(ulonglong *)(lVar2 - (uVar50 ^ 0x2eb04313)) ^ uVar25 ^ *(ulonglong *)(lVar2 + -0x9f8) ^
       uVar35 ^ uVar51;
  uVar14 = DAT_182671700;
  uVar38 = uVar23 ^ CONCAT44(uVar3,uVar3);
  uVar30 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar2 + -0x600) = uVar38;
  uVar39 = (CONCAT44(uVar12,uVar12) ^ 0x8f68eebfbe98238) + (uVar22 ^ *(ulonglong *)(lVar2 + -0x748))
  ;
  *(ulonglong *)(lVar2 + -0x3f0) = uVar39 ^ uVar30;
  uVar30 = *puVar46;
  uVar50 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar23 = uVar23 << ((bVar33 ^ 0xde) & 0x3f);
  uVar32 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar2 + -0xa88) = uVar23 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x800) = (uVar30 ^ CONCAT44(uVar3,uVar3)) + uVar39 ^ uVar50;
  uVar15 = DAT_182671874;
  *(ulonglong *)(lVar2 + -0xc08) = uVar23 << (((byte)uVar14 ^ *(byte *)(lVar2 + -0x3f0)) & 0x3f);
  *puVar20 = ((ulonglong)(uVar3 >> 0x1f) | uVar37 * 2) ^ uVar38 >> 0x1f ^ uVar32;
  DAT_18267158c = DAT_18267157c ^ DAT_1826715a0;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x42354c65)) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0xa60) | *(ulonglong *)(lVar2 + -0xa88) ^ uVar31) ^
       CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar29;
  return;
}



############ FUN_ 180e4ab10 size=4246 ############

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

void FUN_180e4ab10(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  byte bVar21;
  uint uVar22;
  uint *puVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint *puVar32;
  uint uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  uint uVar43;
  byte local_90;
  ulonglong uVar17;
  
  uVar16 = DAT_1826716c4;
  uVar10 = DAT_18267167c;
  uVar8 = DAT_1826715b0;
  uVar7 = DAT_182671598;
  uVar28 = DAT_182671578;
  uVar27 = DAT_182671568;
  lVar4 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671598;
  uVar39 = (ulonglong)DAT_182671578;
  uVar29 = (ulonglong)DAT_182671568;
  uVar33 = DAT_182671578 ^ DAT_18267157c;
  uVar43 = DAT_182671568 + DAT_182671598;
  uVar30 = (DAT_1826715b0 << 0x10 | DAT_1826715b0 & 0xff00) << 8 | DAT_1826715b0 >> 8 & 0xff00 |
           DAT_1826715b0 >> 0x18;
  uVar13 = ~DAT_182671574;
  uVar17 = (ulonglong)uVar13;
  uVar14 = *(uint *)(&DAT_182611e70 + (uVar17 ^ 0xf8eeb3f7) + (longlong)DAT_182671a84) ^
           DAT_182671574;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671a84) ^ DAT_182671598;
  bVar21 = (byte)DAT_1826715b0;
  DAT_182671584 = uVar13;
  DAT_18267158c = uVar43;
  DAT_18267159c = uVar33;
  DAT_1826715a0 = uVar30;
  *(uint *)(DAT_182671560 - ((ulonglong)DAT_182671568 ^ 0x999649b2)) =
       DAT_18267167c & 0xff ^ (uint)*(byte *)(DAT_182671560 + -0xc41) ^ DAT_1826716c4;
  uVar36 = *(uint *)(lVar4 + -0x968) ^ DAT_182671620;
  *(undefined8 *)(lVar4 + -0xa60) = 0x356e93d2fd304941;
  uVar26 = DAT_1826715fc;
  uVar37 = uVar36 + (uVar43 ^ 0x238b9618) ^ DAT_182671878;
  puVar3 = (uint *)(lVar4 + -0x754);
  uVar36 = (*(uint *)(lVar4 + -0x27c) ^ uVar16) << ((bVar21 ^ 0xdf) & 0x1f) ^ DAT_1826715fc;
  *puVar3 = uVar37;
  uVar37 = uVar37 ^ DAT_182671878;
  *(uint *)(DAT_182671560 + -0x844) = uVar36;
  lVar4 = DAT_182671560;
  uVar18 = (ulonglong)uVar30;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0xa2121cc)) =
       uVar37 - (*(uint *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0xce94a302)) ^ uVar26) ^
       DAT_1826716b4;
  puVar1 = (uint *)(lVar4 + -0x328);
  puVar2 = (uint *)(lVar4 + -0x678);
  uVar35 = (*puVar1 ^ DAT_182671750) * (*(uint *)(lVar4 + -0x5cc) ^ DAT_1826716b4) ^ DAT_18267166c;
  *(uint *)(lVar4 + -0x374) = uVar35;
  uVar36 = DAT_18267157c;
  uVar25 = (*(uint *)(lVar4 + -0x27c) ^ uVar16) * (uVar33 ^ 0x54e841b0) ^ DAT_1826717c4;
  uVar35 = uVar35 ^ DAT_18267166c;
  *puVar2 = uVar25;
  uVar37 = DAT_182671870;
  lVar4 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar36 ^ 0x5ec96673)) =
       (uVar25 ^ DAT_1826717c4) + uVar35 ^ DAT_182671870;
  uVar42 = (ulonglong)uVar33;
  *(uint *)(lVar4 - ((ulonglong)uVar27 ^ 0x999642de)) =
       (uVar43 ^ 0xd70a8503) - (*(uint *)(lVar4 + -0x27c) ^ uVar16);
  *(uint *)(lVar4 - ((ulonglong)uVar36 ^ 0x5ec960a3)) =
       (*(uint *)(lVar4 + -0x3d4) ^ uVar37) << 0xd ^ DAT_182671844;
  uVar40 = (ulonglong)uVar43;
  *(uint *)(lVar4 + -0x344) =
       (*(uint *)(lVar4 - ((ulonglong)uVar7 ^ 0x90e6672b)) ^ uVar37) >> 0x13 ^ DAT_1826718d4;
  puVar23 = (uint *)(lVar4 - (uVar39 ^ 0xa212744));
  uVar16 = *puVar1 ^ DAT_182671750;
  *(uint *)(lVar4 + -0x47c) =
       (*puVar23 ^ DAT_1826718d4 | *(uint *)(lVar4 + -0x504) ^ DAT_182671844) ^ DAT_1826716b0;
  uVar24 = (ulonglong)uVar8;
  *(uint *)(lVar4 - (uVar24 ^ 0x46ab9cba)) =
       (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) + uVar16 ^ DAT_182671638;
  *(uint *)(lVar4 + -0x968) = DAT_182671738 ^ DAT_182671638 ^ *(uint *)(lVar4 + -0x874);
  puVar32 = (uint *)(lVar4 - ((ulonglong)uVar36 ^ 0x5ec962f3));
  *puVar32 = DAT_18267183c ^ DAT_1826716b0 ^ *(uint *)(lVar4 + -0x47c);
  uVar35 = DAT_1826716d8;
  lVar5 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671724;
  *(uint *)(lVar4 - ((ulonglong)uVar43 ^ 0x2a7cb889)) =
       *(uint *)(lVar4 - ((ulonglong)uVar33 ^ 0x54e848cf)) ^ DAT_1826716d8 ^ DAT_182671738;
  uVar16 = DAT_182671574;
  uVar19 = CONCAT44(DAT_182671574,uVar28);
  *(uint *)(lVar4 + -0x5cc) =
       *(uint *)(lVar4 - ((ulonglong)DAT_182671574 ^ 0x7114b54)) ^ DAT_18267176c ^ DAT_18267183c;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar17 ^ 0xf8eebfcf)) =
       (CONCAT44(uVar30,uVar13) ^ 0xce94ab46f8eeb3ff) * 0x20 + (uVar19 ^ 0x7114c000a212402) +
       *(longlong *)(DAT_182671560 + -0x8f0) ^ uVar34;
  bVar21 = (byte)DAT_18267173c;
  lVar6 = DAT_182671560;
  bVar12 = *(byte *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0x999647fe)) ^ uVar34) ^ (byte)DAT_18267173c ^
           (byte)DAT_182671694;
  *(byte *)(lVar4 + -0x41) = bVar12;
  uVar11 = DAT_1826717b4;
  uVar34 = (ulonglong)DAT_1826717b4;
  uVar36 = *(uint *)(lVar6 + -0x5cc) ^ DAT_18267176c;
  *(uint *)(lVar6 + -0x374) = (bVar12 ^ bVar21) ^ DAT_1826717b4;
  *(uint *)(lVar5 - (uVar31 ^ 0x90e66287)) = uVar36 + (DAT_182671574 ^ 0xee66ad5) ^ DAT_1826718c8;
  uVar22 = DAT_1826717c0;
  uVar37 = DAT_18267160c;
  *(ulonglong *)(lVar5 + -0xc08) =
       CONCAT44(uVar33,DAT_18267157c) ^ 0xfcf7dfdcbae7f9ed | 0xd8e79c0c9206f940;
  uVar36 = *puVar2 ^ DAT_1826718c8;
  uVar25 = (uVar11 ^ *(uint *)(lVar5 + -0x374)) << (((byte)uVar43 ^ 0xdc) & 0x1f) ^ DAT_1826717dc;
  *(uint *)(lVar5 + -0x27c) = uVar25;
  *(uint *)(lVar5 + -0x910) = uVar36 - (uVar25 ^ DAT_1826717dc) ^ DAT_182671800;
  bVar21 = (byte)DAT_18267157c;
  *(ulonglong *)(lVar5 - (uVar17 ^ 0xf8eeb18f)) =
       *(ulonglong *)(lVar5 - (uVar39 ^ 0xa212e88)) | *(ulonglong *)(lVar5 + -0x5c8);
  lVar4 = DAT_182671560;
  uVar41 = (*(uint *)(lVar5 + -0x844) ^ uVar35) * (*(uint *)(lVar5 + -0x910) ^ DAT_182671800) ^
           DAT_1826718c0;
  *(uint *)(lVar5 + -0x3d4) = uVar41;
  uVar25 = DAT_1826715a0;
  uVar41 = uVar41 ^ DAT_1826718c0;
  uVar36 = (uVar11 ^ *(uint *)(lVar4 + -0x374)) * (uVar8 ^ 0x46ab94cc) ^ DAT_1826716a8;
  *(uint *)(lVar4 + -0x504) = uVar36;
  lVar4 = DAT_182671560;
  uVar41 = (uVar36 ^ DAT_1826716a8) + uVar41;
  *(uint *)(DAT_182671560 + -0x344) = uVar41 ^ uVar22;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x9e8) =
       (CONCAT44(uVar30,uVar8) ^ 0xe4e9800ece8c3daf) << ((bVar21 ^ 0x9a) & 0x3f);
  uVar41 = uVar41 << (((byte)uVar25 ^ 0x4b) & 0x1f);
  uVar36 = *(uint *)(lVar5 + -0x344);
  bVar21 = (byte)DAT_182671568;
  *puVar1 = uVar41 ^ uVar37;
  *(uint *)(lVar5 + -0x874) = (uVar36 ^ uVar22) >> ((bVar21 ^ 0xdd) & 0x1f) ^ DAT_1826717ec;
  lVar4 = DAT_182671560;
  uVar19 = (ulonglong)DAT_182671574;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       *(ulonglong *)(DAT_182671560 - (uVar42 ^ 0x54e843e7)) >> (((byte)uVar28 ^ 0x3c) & 0x3f);
  uVar37 = DAT_18267157c;
  *(uint *)(lVar4 + -0x47c) =
       (*(uint *)(lVar4 - (uVar19 ^ 0x7114474)) ^ DAT_1826717ec | uVar41) ^ DAT_1826715cc;
  uVar22 = DAT_182671770;
  uVar35 = (*(uint *)(lVar4 - (uVar40 ^ 0x2a7cb305)) ^ DAT_182671624) +
           (*(uint *)(lVar4 + -0x844) ^ uVar35);
  uVar36 = _DAT_182671610 ^ DAT_1826715cc;
  *(uint *)(lVar4 + -0x968) = uVar35 ^ uVar26;
  *puVar32 = uVar35 ^ uVar10;
  *(uint *)(lVar4 + -0x5cc) = uVar36 ^ *(uint *)(lVar4 + -0x47c);
  *puVar2 = *puVar3 ^ uVar22 ^ uVar10;
  *(uint *)(lVar4 + -0x27c) =
       *(uint *)(lVar4 - (uVar17 ^ 0xf8eeb633)) ^ DAT_182671730 ^ _DAT_182671610;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0xa2125d8)) =
       CONCAT44(uVar30,uVar43) ^ 0xc7dffbcffeffefbb | 0x85d771cf309da3b2;
  pbVar20 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar37 ^ 0x5ec96d57)) +
                    (CONCAT44(uVar7,uVar8) ^ 0x90e664ff46ab94c3));
  *(ulonglong *)(lVar4 + -0x818) = (ulonglong)pbVar20 ^ uVar34;
  uVar10 = DAT_182671780;
  uVar36 = DAT_1826716ac;
  lVar4 = DAT_182671560;
  uVar26 = DAT_182671780 & 0xff;
  *(byte *)(DAT_182671560 + -0xc41) = *pbVar20 ^ (byte)DAT_182671780 ^ (byte)DAT_182671694;
  uVar19 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar4 + -0x548) =
       *(ulonglong *)(lVar4 - (uVar42 ^ 0x54e844b7)) | *(ulonglong *)(lVar4 + -0x510);
  *(uint *)(lVar4 + -0x910) = uVar26 ^ *(byte *)(lVar4 + -0xc41) ^ uVar36;
  uVar26 = _DAT_18267161c;
  *(uint *)(lVar4 - (uVar40 ^ 0x2a7cb3b9)) =
       (*(uint *)(lVar4 - (uVar19 ^ 0x7114e7c)) ^ DAT_182671730) + (uVar25 ^ 0xc7638d93) ^
       _DAT_18267161c;
  *(uint *)(lVar4 - (uVar29 ^ 0x9996481a)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar37 ^ 0x5ec96cb7)) ^ uVar36) <<
       (((byte)uVar37 ^ 0xb6) & 0x1f) ^ DAT_1826717a8;
  *(uint *)(lVar4 - (uVar39 ^ 0xa212104)) =
       (*(uint *)(lVar4 - (uVar42 ^ 0x54e842d3)) ^ uVar26) -
       (*(uint *)(lVar4 + -0x3d4) ^ DAT_1826717a8) ^ DAT_1826715e4;
  uVar41 = DAT_182671568 ^ 0x99964bc3;
  uVar38 = (*(uint *)(lVar4 + -0x504) ^ DAT_1826715e4) * (*puVar2 ^ uVar22) ^ DAT_182671608;
  *(uint *)(lVar4 + -0x344) = uVar38;
  uVar35 = DAT_182671824;
  uVar25 = DAT_1826717d8;
  uVar36 = (*(uint *)(lVar4 + -0x910) ^ uVar36) * uVar41 ^ DAT_1826715b8;
  uVar38 = uVar38 ^ DAT_182671608;
  *puVar1 = uVar36;
  lVar4 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar17 ^ 0xf8eebb8b)) = (uVar36 ^ DAT_1826715b8) + uVar38 ^ uVar25;
  uVar38 = (uVar25 ^ *(uint *)(lVar4 + -0x874)) << (((byte)uVar33 ^ 0xaa) & 0x1f);
  *(uint *)(lVar4 + -0x844) = uVar38 ^ uVar25;
  uVar41 = *(uint *)(lVar4 + -0x3c8) ^ DAT_182671624;
  uVar36 = *(uint *)(lVar4 - (uVar18 ^ 0xce94a332));
  *(ulonglong *)(lVar4 + -0x638) = *(ulonglong *)(lVar4 + -0x1d8) >> 0x15;
  uVar36 = (uVar36 ^ uVar25) >> 0x13 ^ _DAT_18267188c;
  *(uint *)(lVar4 + -0x968) = uVar36;
  uVar22 = uVar41 + (*puVar2 ^ uVar22) ^ uVar35;
  *(uint *)(lVar4 + -0x47c) = (uVar38 | uVar36 ^ _DAT_18267188c) ^ uVar10;
  uVar36 = _DAT_1826716c0;
  *puVar3 = uVar22;
  *(uint *)(lVar4 - ((ulonglong)uVar37 ^ 0x5ec9606b)) = uVar22 ^ DAT_182671678 ^ uVar35;
  uVar36 = uVar36 ^ uVar10 ^ *(uint *)(lVar4 + -0x47c);
  *(uint *)(lVar4 + -0x27c) = uVar36;
  uVar36 = uVar36 ^ DAT_1826716cc ^ _DAT_1826716c0;
  uVar19 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  *(uint *)(lVar4 + -0x374) =
       *(uint *)(lVar4 - (uVar40 ^ 0x2a7cb501)) ^ DAT_182671678 ^ DAT_1826716b0;
  uVar9 = DAT_1826715c0;
  *(uint *)(lVar4 + -0x3d4) = uVar36;
  uVar22 = DAT_182671880;
  *(ulonglong *)(lVar4 - (uVar17 ^ 0xf8eebbff)) =
       *(ulonglong *)(uVar19 ^ *(ulonglong *)(lVar4 + -0x30)) ^ CONCAT44(uVar9,uVar9);
  *(undefined8 *)(lVar4 + -0x30) = 0x8b4ac150e266927e;
  bVar21 = (byte)DAT_182671684;
  pbVar20 = (byte *)((CONCAT44(uVar8,uVar43) ^ 0x46ab94ce2a7cb0cd) * 0x20 +
                     (CONCAT44(uVar16,uVar33) ^ 0x7114c0054e841bf) + *(longlong *)(lVar4 + -0x8f0));
  *(ulonglong *)(lVar4 + -0x750) = (ulonglong)pbVar20 ^ (ulonglong)uVar35;
  *(byte *)(lVar4 + -0x41) = *pbVar20 ^ bVar21 ^ (byte)DAT_182671694;
  *(ulonglong *)(lVar4 + -0x110) = *(ulonglong *)(lVar4 - (uVar24 ^ 0x46ab9e46)) >> 0x1f;
  *(uint *)(lVar4 + -0x504) = (bVar21 ^ *(byte *)(lVar4 + -0x41)) ^ uVar22;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x90e6650f)) =
       (CONCAT44(uVar27,uVar30) ^ 0x853f32764c79ea49) >> (((byte)uVar7 ^ 0xd4) & 0x3f);
  uVar10 = DAT_18267182c;
  *(uint *)(lVar4 + -0x910) =
       (*(uint *)(lVar4 - (uVar18 ^ 0xce94a892)) ^ DAT_1826716cc) + (uVar43 ^ 0x238b9618) ^
       DAT_18267182c;
  uVar36 = (*(uint *)(lVar4 + -0x504) ^ uVar22) << 0x11 ^ DAT_1826715bc;
  *(uint *)(lVar4 + -0x344) = uVar36;
  uVar35 = DAT_1826718cc;
  lVar5 = DAT_182671560;
  uVar19 = (ulonglong)DAT_182671574;
  uVar36 = (*(uint *)(lVar4 - (uVar18 ^ 0xce94a256)) ^ uVar10) - (uVar36 ^ DAT_1826715bc) ^
           DAT_1826718c4;
  *puVar1 = uVar36;
  lVar4 = DAT_182671560;
  uVar36 = uVar36 ^ DAT_1826718c4;
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (CONCAT44(uVar33,uVar27) ^ 0x456e11c39cdb8899) + 0x4428629a143c84af;
  *(uint *)(lVar4 - (uVar19 ^ 0x7114444)) =
       uVar36 * (DAT_1826716b0 ^ *(uint *)(lVar4 + -0x374)) ^ DAT_182671814;
  uVar37 = DAT_1826717b8;
  *(uint *)(lVar4 + -0x968) = (uVar25 ^ *(uint *)(lVar4 + -0x874)) * (DAT_18267157c ^ 0xe9199832);
  uVar36 = DAT_182671624;
  uVar25 = (*(uint *)(lVar4 - (uVar40 ^ 0x2a7cb5c9)) ^ uVar22) * 0x18;
  *puVar2 = uVar25 ^ DAT_182671624;
  *puVar3 = uVar25 + (*(uint *)(DAT_182671560 + -0x844) ^ DAT_182671814) ^ uVar35;
  *(ulonglong *)(lVar5 - (uVar17 ^ 0xf8eeb15f)) =
       CONCAT44(uVar13,uVar33) ^ CONCAT44(uVar16,uVar43) ^ 0xaf1ded1bf9c7bb3e;
  uVar25 = (uVar35 ^ *puVar3) << (((byte)DAT_182671598 ^ 0xf2) & 0x1f);
  *(uint *)(lVar5 + -0x47c) = uVar25 ^ uVar37;
  *(ulonglong *)(lVar5 + -0x80) = *(ulonglong *)(lVar5 + -0x1d8) ^ 0x33b3c0532b2f7402;
  uVar16 = DAT_1826717d0;
  uVar29 = (ulonglong)DAT_182671574;
  uVar19 = (ulonglong)DAT_182671574;
  *(uint *)(lVar5 + -0x5cc) = (uVar35 ^ *puVar3) >> (((byte)uVar13 ^ 0xec) & 0x1f) ^ DAT_182671828;
  local_90 = (byte)uVar27;
  *(uint *)(lVar5 - (uVar18 ^ 0xce94a93a)) =
       (*(uint *)(lVar5 - (uVar19 ^ 0x71149cc)) ^ DAT_182671828 | uVar25) ^ DAT_182671698;
  *(ulonglong *)(lVar5 + -0x8a8) = *(ulonglong *)(lVar5 + -0x3f0) >> ((local_90 ^ 0xe3) & 0x3f);
  uVar27 = (*(uint *)(lVar5 - (uVar39 ^ 0xa212774)) ^ DAT_1826716b0) +
           (*(uint *)(lVar5 + -0x3c8) ^ uVar36) ^ DAT_1826716d0;
  *(uint *)(lVar5 + -0x344) = *(uint *)(lVar5 + -0x27c) ^ DAT_1826717fc ^ DAT_182671698;
  uVar36 = DAT_1826718a4 ^ _DAT_1826715e0;
  *(uint *)(lVar5 + -0x3d4) = uVar27;
  uVar27 = uVar27 ^ _DAT_1826715e0 ^ DAT_1826716d0;
  *(uint *)(lVar5 + -0x910) = uVar27;
  *puVar1 = uVar36 ^ uVar27;
  *(uint *)(lVar5 - (uVar42 ^ 0x54e849d3)) = *puVar23 ^ uVar16 ^ DAT_1826717fc;
  pbVar20 = (byte *)((CONCAT44(uVar8,uVar28) ^ 0x46ab94ce0a212403) +
                     (CONCAT44(uVar7,uVar28) ^ 0x90e664ff0a212400) * 0x20 +
                    *(longlong *)(lVar5 + -0x8f0));
  *(ulonglong *)(lVar5 + -0x3e0) = (ulonglong)pbVar20 ^ (ulonglong)uVar26;
  uVar36 = DAT_182671884;
  bVar21 = (byte)DAT_18267164c;
  *(ulonglong *)(lVar5 + -0xbf0) = CONCAT44(uVar33,uVar33) ^ 0xf74f7fdd26efeffb | 0x77060ed8228beecb
  ;
  bVar12 = *pbVar20 ^ bVar21 ^ (byte)DAT_182671694;
  uVar28 = (bVar21 ^ bVar12) ^ DAT_182671860;
  uVar27 = DAT_18267157c ^ 0x573e4372;
  *(byte *)(lVar5 + -0xc41) = bVar12;
  uVar27 = (uVar16 ^ *(uint *)(lVar5 + -0x874)) + uVar27 ^ DAT_182671804;
  *(uint *)(lVar5 + -0x968) = uVar28;
  *(uint *)(lVar5 - (uVar29 ^ 0x7114904)) = uVar27;
  *(uint *)(lVar5 - (uVar24 ^ 0x46ab9c8a)) =
       (*(uint *)(lVar5 - (uVar31 ^ 0x90e66d97)) ^ DAT_182671860) <<
       (((byte)DAT_182671574 ^ 0x11) & 0x1f) ^ uVar10;
  *puVar2 = (*(uint *)(lVar5 + -0x504) ^ DAT_182671804) - (*(uint *)(lVar5 + -0x844) ^ uVar10) ^
            uVar36;
  *(byte *)(lVar5 - (uVar17 ^ 0xf8eeb3be)) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar18 ^ 0xce94a35e)) ^ (ulonglong)uVar11) ^
       (byte)DAT_182671694;
  *puVar3 = (uVar36 ^ *puVar2) * (*puVar1 ^ DAT_1826718a4) ^ DAT_182671658;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar14;
  return;
}



############ FUN_ 180ea3b10 size=5587 ############

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

void FUN_180ea3b10(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  ulonglong *puVar12;
  ulonglong *puVar13;
  uint uVar14;
  ulonglong *puVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte local_d8;
  
  uVar5 = DAT_182671588;
  uVar4 = DAT_182671574;
  uVar3 = DAT_18267156c;
  lVar1 = DAT_182671560;
  uVar19 = (ulonglong)DAT_182671574;
  uVar16 = (ulonglong)DAT_182671588;
  uVar9 = DAT_182671574 | DAT_182671588;
  uVar21 = (ulonglong)DAT_18267156c;
  uVar33 = (ulonglong)uVar9;
  uVar14 = DAT_18267156c << 0x10 | DAT_18267156c >> 0x10;
  uVar23 = *(uint *)(&DAT_182611e78 + DAT_182671b90) ^ DAT_182671574;
  uVar10 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar9 ^ 0x7bfffffc) + (longlong)DAT_182671b90) ^
           DAT_182671588;
  uVar26 = (ulonglong)uVar14;
  uVar24 = CONCAT44(DAT_182671698,DAT_182671698);
  uVar22 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  DAT_1826715ac = uVar9;
  DAT_1826715b4 = uVar14;
  *(ulonglong *)(DAT_182671560 - (uVar19 ^ 0x5afb7d4c)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0x2800132)) ^
       CONCAT44(DAT_18267176c,DAT_18267176c)) +
       (*(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x28a0790)) ^ uVar24) ^ uVar22;
  uVar6 = DAT_182671834;
  lVar2 = DAT_182671560;
  uVar25 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar29 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  puVar12 = (ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x2800e82));
  puVar15 = (ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x28a0220));
  uVar22 = uVar29 ^ uVar25 ^ uVar22 ^ *puVar15 ^ *puVar12;
  *(ulonglong *)(lVar1 + -0x610) = uVar22;
  bVar11 = (byte)uVar3;
  uVar35 = CONCAT44(uVar6,uVar6);
  uVar27 = (uVar22 ^ uVar25) >> ((bVar11 ^ 0xaa) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar27 ^ uVar35;
  lVar1 = DAT_182671560;
  uVar22 = (*(ulonglong *)(lVar2 - (uVar16 ^ 0x61bef910)) ^ uVar25) << ((bVar11 ^ 0xaa) & 0x3f);
  uVar37 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar22 ^ CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0x7bfff9c4)) = (uVar22 | uVar27) ^ uVar37;
  uVar6 = _DAT_1826716c0;
  puVar13 = (ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x28a04a8));
  uVar36 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar1 + -0x5c8) =
       (uVar29 ^ *(ulonglong *)(lVar1 + -0xc08)) - (*puVar13 ^ uVar37) ^ uVar36;
  uVar27 = CONCAT44(uVar6,uVar6);
  uVar25 = CONCAT44(DAT_182671654,DAT_182671654);
  uVar30 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar22 = CONCAT44(DAT_18267179c,DAT_18267179c) ^ uVar25 ^ uVar27 ^ *(ulonglong *)(lVar1 + -0x638)
           ^ *(ulonglong *)(lVar1 + -0x548);
  *(ulonglong *)(lVar1 + -0x898) = uVar22;
  *(ulonglong *)(lVar1 + -0x9e8) = (uVar22 ^ uVar27) >> (((byte)uVar9 ^ 0xcc) & 0x3f) ^ uVar30;
  uVar6 = DAT_182671784;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0x3b8) =
       (*(ulonglong *)(lVar1 - (uVar21 ^ 0x2800b62)) ^ uVar30) -
       (CONCAT44(uVar4,uVar5) ^ 0x35cfc496a8925896);
  uVar22 = CONCAT44(uVar6,uVar6);
  puVar17 = (ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x7bfffafc));
  bVar18 = (byte)(uVar3 >> 0x10);
  uVar29 = CONCAT44(DAT_182671800,DAT_182671800);
  *puVar17 = (*(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x7bfff774)) ^ uVar27) <<
             ((bVar18 ^ 0xa0) & 0x3f) ^ uVar22;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x7bffff4c)) =
       (*(ulonglong *)(DAT_182671560 + -0x510) ^ uVar22 |
       uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x9e8)) ^ uVar29;
  uVar6 = DAT_182671738;
  *(uint *)(lVar1 + -0x968) = (uVar4 ^ 0x51586f0f) << ((byte)*(undefined4 *)(lVar1 + -0x27c) & 0x1f)
  ;
  uVar20 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 + -0x610) =
       (*(ulonglong *)(lVar1 - (uVar16 ^ 0x61befa48)) ^ uVar25) -
       (*(ulonglong *)(lVar1 + -0xa0) ^ uVar29) ^ uVar20;
  uVar6 = DAT_18267182c;
  puVar34 = (ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0x7bfffe1c));
  *puVar34 = (CONCAT44(uVar5,uVar3) ^ 0x488250609562734e) +
             (CONCAT44(uVar14,uVar4) ^ 0x5750f44b75e4ab27);
  uVar27 = CONCAT44(uVar6,uVar6);
  uVar22 = *(ulonglong *)(lVar1 + -0x5c8) ^ *(ulonglong *)(lVar1 + -0xa0) ^ uVar27 ^ uVar29 ^ uVar36
  ;
  *(ulonglong *)(lVar1 + -0x80) = uVar22;
  uVar7 = DAT_182671758;
  *(ulonglong *)(lVar1 + -0xc08) = (uVar22 ^ uVar27) << ((bVar18 ^ 0xbc) & 0x3f);
  uVar6 = _DAT_18267161c;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0x638) =
       (*(ulonglong *)(lVar1 + -0x80) ^ uVar27) >> ((bVar11 ^ 0xb0) & 0x3f) ^ uVar31;
  lVar1 = DAT_182671560;
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x61befcb8)) =
       (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x280020a)) ^ uVar27) << ((bVar11 ^ 0x8c) & 0x3f) ^
       uVar22;
  uVar7 = DAT_182671638;
  uVar29 = CONCAT44(DAT_182671604,DAT_182671604);
  uVar22 = *(ulonglong *)(lVar1 + -0x3b8) ^ uVar22 | uVar31 ^ *(ulonglong *)(lVar1 + -0x638);
  uVar27 = CONCAT44(DAT_182671638,DAT_182671638);
  *(ulonglong *)(lVar1 + -0x898) = uVar22 ^ uVar29;
  uVar6 = _DAT_182671610;
  *(ulonglong *)(lVar1 + -0x9e8) =
       (*(ulonglong *)(lVar1 - (uVar26 ^ 0x28a0748)) ^ uVar36) - uVar22 ^ uVar27;
  uVar28 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 + -0x510) =
       *(ulonglong *)(lVar1 + -0x610) ^ uVar28 ^ uVar20 ^ *(ulonglong *)(lVar1 + -0x628) ^ uVar37;
  uVar6 = DAT_1826717e4;
  *(ulonglong *)(lVar1 + -0x548) =
       (CONCAT44(uVar9,uVar9) ^ 0x352ec874df277f91) << ((byte)uVar22 & 0x3f);
  lVar1 = DAT_182671560;
  uVar36 = CONCAT44(uVar6,uVar6);
  *puVar34 = (*puVar17 ^ uVar28) >> (((byte)uVar5 ^ 0x16) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar1 + -0xa0) =
       uVar29 ^ *(ulonglong *)(lVar1 + -0x898) | uVar31 ^ *(ulonglong *)(lVar1 + -0x638);
  local_d8 = (byte)uVar4;
  uVar31 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(lVar1 - (uVar16 ^ 0x61bef308)) =
       (*(ulonglong *)(lVar1 + -0x510) ^ uVar28) << ((local_d8 ^ 0xc6) & 0x3f) ^ uVar31;
  uVar28 = CONCAT44(DAT_182671734,DAT_182671734);
  uVar22 = CONCAT44(uVar4,DAT_18267159c);
  *(ulonglong *)(lVar1 + -0x3b8) =
       (*(ulonglong *)(lVar1 + -0xc08) ^ uVar31 | *(ulonglong *)(lVar1 + -0x1f0) ^ uVar36) ^ uVar28;
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x2800742)) = (uVar22 ^ 0x8844688a73f62ad2) + 0x84752d3b920c654d;
  uVar3 = DAT_1826715a4;
  uVar38 = CONCAT44(DAT_182671704,DAT_182671704);
  *puVar13 = (*(ulonglong *)(lVar1 + -0x610) ^ uVar20) - (*(ulonglong *)(lVar1 + -0x3b8) ^ uVar28) ^
             uVar38;
  uVar6 = DAT_1826718cc;
  uVar8 = DAT_18267181c;
  uVar20 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar31 = *(ulonglong *)(lVar1 + -0x3b8) ^ uVar20 ^ uVar28 ^ uVar27 ^
           *(ulonglong *)(lVar1 + -0x9e8);
  uVar36 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar1 + -0x548) = uVar31;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0x638) = (uVar31 ^ uVar20) >> (((byte)uVar3 ^ 0x90) & 0x3f) ^ uVar36;
  uVar4 = DAT_182671594;
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0x40002028)) =
       (uVar31 ^ uVar20) << 0x12 ^ uVar22;
  uVar6 = DAT_182671744;
  uVar5 = DAT_18267173c;
  uVar28 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar22 = *(ulonglong *)(lVar2 + -0xa0) ^ uVar22 | uVar36 ^ *(ulonglong *)(lVar2 + -0x638);
  *(ulonglong *)(lVar2 + -0x510) = uVar22 ^ uVar28;
  uVar20 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x80) = (uVar27 ^ *(ulonglong *)(lVar2 + -0x9e8)) - uVar22 ^ uVar20;
  uVar6 = DAT_182671648;
  *(ulonglong *)(lVar2 + -0x1f0) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xff006796)) ^ CONCAT44(uVar5,uVar5) ^ uVar38 ^
       uVar29 ^ *(ulonglong *)(lVar2 + -0x898);
  uVar3 = DAT_18267158c;
  uVar31 = CONCAT44(uVar6,uVar6);
  uVar22 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar2 + -0xc08) =
       ((ulonglong)uVar5 << 0x14 | (ulonglong)(uVar5 >> 0xc)) ^ *puVar34 >> 0xc ^ uVar31;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x5afb7824)) =
       (*puVar12 ^ uVar31) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar4 ^ 0x40002960)) ^ (byte)uVar7) & 0x3f);
  uVar6 = DAT_18267174c;
  uVar4 = DAT_1826715a0;
  lVar1 = DAT_182671560;
  uVar27 = (*(ulonglong *)(lVar2 - (uVar22 ^ 0x4defbd0f)) ^ CONCAT44(uVar5,uVar5)) <<
           ((bVar18 ^ 0xb4) & 0x3f);
  uVar22 = (ulonglong)DAT_182671568;
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar27 ^ CONCAT44(DAT_1826716b0,DAT_1826716b0);
  lVar2 = DAT_182671560;
  uVar32 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0x97eaa9d8)) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0xd60216a4)) ^ uVar31 | uVar27) ^ uVar32;
  uVar7 = DAT_1826716e8;
  uVar36 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar2 + -0x548) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x628)) - (uVar32 ^ *(ulonglong *)(lVar2 + -0x3b8)) ^
       uVar36;
  uVar6 = DAT_1826716b8;
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar22 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar29 = *(ulonglong *)(lVar2 + -0x80) ^ uVar37 ^ uVar32 ^ uVar20 ^ *(ulonglong *)(lVar2 + -0x3b8)
  ;
  *(ulonglong *)(lVar2 + -0xa0) = uVar29;
  uVar27 = (uVar29 ^ uVar37) >> ((bVar18 ^ 0x99) & 0x3f);
  uVar29 = (uVar37 ^ uVar29) << 0x27;
  *(ulonglong *)(lVar2 + -0x898) = uVar27 ^ uVar22;
  uVar7 = DAT_1826717c0;
  uVar5 = DAT_18267159c;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar29 ^ CONCAT44(uVar6,uVar6);
  uVar4 = DAT_182671598;
  lVar1 = DAT_182671560;
  uVar27 = uVar27 | uVar29;
  uVar22 = (ulonglong)DAT_182671598;
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar27 ^ CONCAT44(uVar7,uVar7);
  uVar6 = DAT_1826717d0;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       *(ulonglong *)(lVar1 - (uVar22 ^ 0xe45df8a2)) ^ CONCAT44(uVar5,uVar3) ^ uVar32 ^
       0xfcdff09288e22704;
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar37 = CONCAT44(DAT_182671650,DAT_182671650);
  uVar22 = (*(ulonglong *)(lVar2 + -0x80) ^ uVar20) -
           (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe45dfd6a)) ^ uVar29);
  *(ulonglong *)(lVar2 + -0x610) = uVar22 ^ CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar7 = DAT_1826716e4;
  uVar14 = DAT_1826715b0;
  *(ulonglong *)(lVar2 + -0xc08) = uVar22 - uVar27 ^ uVar37;
  uVar6 = _DAT_1826715e0;
  uVar20 = CONCAT44(uVar7,uVar7);
  uVar22 = (*(ulonglong *)(lVar2 - (uVar16 ^ 0x61bef9b8)) ^ uVar38) +
           (uVar20 ^ *(ulonglong *)(lVar2 + -0x688));
  *(ulonglong *)(lVar2 + -0x628) = uVar22 ^ uVar31;
  uVar31 = CONCAT44(DAT_182671584,uVar14);
  *(ulonglong *)(lVar2 + -0xa0) = uVar27 - uVar22 ^ CONCAT44(uVar6,uVar6);
  uVar7 = DAT_182671794;
  uVar3 = DAT_1826715a4;
  uVar5 = DAT_182671578;
  uVar32 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar2 + -0x898) =
       (uVar31 ^ 0x1011f523c1090333) << (((byte)uVar8 ^ *(byte *)(lVar2 + -0x638)) & 0x3f);
  uVar22 = CONCAT44(uVar7,uVar7);
  uVar28 = *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xff0064ae)) ^
           *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0xd6021fe4)) ^ uVar22 ^ uVar36 ^
           uVar28;
  uVar27 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar2 + -0x9e8) = uVar28;
  uVar7 = DAT_1826716ec;
  puVar13 = (ulonglong *)(lVar2 - (uVar19 ^ 0x5afb7e54));
  *puVar13 = (uVar28 ^ uVar22) >> (((byte)DAT_182671590 ^ 0xc5) & 0x3f) ^ uVar27;
  uVar8 = DAT_18267187c;
  uVar31 = (uVar22 ^ *(ulonglong *)(lVar2 + -0x9e8)) << 0x1f;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar31 ^ CONCAT44(uVar7,uVar7);
  uVar4 = DAT_182671570;
  uVar28 = CONCAT44(uVar8,uVar8);
  uVar22 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar2 + -0x80) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xff006206)) ^ uVar27 | uVar31) ^ uVar28;
  uVar7 = DAT_1826715f8;
  uVar27 = (uVar36 ^ *(ulonglong *)(lVar2 + -0x548)) -
           (CONCAT44(DAT_1826716d4,DAT_1826716d4) ^ *(ulonglong *)(lVar2 + -0x400));
  *(ulonglong *)(lVar2 + -0x610) = uVar27 ^ uVar22;
  uVar8 = DAT_182671688;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xaac63b59)) =
       uVar27 - (*(ulonglong *)(lVar2 - (uVar26 ^ 0x28a0200)) ^ uVar28) ^ uVar31;
  uVar3 = DAT_182671568;
  uVar26 = (ulonglong)DAT_182671568;
  uVar27 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar22 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xf4812605)) =
       -(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0xbf0)) - 7 ^ uVar27;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xf000e231)) =
       CONCAT44(DAT_182671594,uVar3) ^ *(ulonglong *)(lVar2 + -0x898) ^ 0x849d4418741eb7d8;
  uVar3 = DAT_18267158c;
  uVar36 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0x4defb9ef)) =
       (*(ulonglong *)(lVar2 + -0x5c8) ^ uVar27) + (*(ulonglong *)(lVar2 + -0x80) ^ uVar28) ^ uVar36
  ;
  uVar7 = DAT_1826717ac;
  uVar22 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0x9e8) =
       (CONCAT44(uVar14,uVar3) ^ 0x77fbfbedebef2667) <<
       (((byte)uVar6 ^ *(byte *)(lVar2 + -0xa0)) & 0x3f);
  uVar3 = DAT_18267157c;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar27 = (ulonglong)DAT_18267157c;
  uVar22 = *(ulonglong *)(lVar2 - (uVar22 ^ 0xf7eaeaf9)) ^ uVar28 ^ uVar36 ^
           *(ulonglong *)(lVar2 + -0xc08) ^ uVar37;
  *(ulonglong *)(lVar2 + -0x3b8) = uVar22;
  uVar8 = DAT_1826717a8;
  uVar27 = (*(ulonglong *)(lVar2 - (uVar27 ^ 0x40802374)) ^ uVar28) >>
           (((byte)DAT_1826715a0 ^ 0x65) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar27 ^ uVar30;
  uVar7 = DAT_182671674;
  uVar22 = (uVar28 ^ uVar22) << 0x3b;
  *(ulonglong *)(lVar2 + -0x548) = uVar22 ^ CONCAT44(uVar8,uVar8);
  lVar1 = DAT_182671560;
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0x400) = (uVar27 | uVar22) ^ uVar38;
  uVar22 = (ulonglong)DAT_182671594;
  *(int *)(lVar1 - (uVar33 ^ 0x7bfff684)) = (int)(DAT_182671588 ^ 0xb74adedf) >> 5;
  uVar28 = CONCAT44(DAT_182671708,DAT_182671708);
  uVar22 = *(ulonglong *)(lVar1 - (uVar22 ^ 0x40002c80));
  *(uint *)(lVar1 + -0x874) = (uVar3 ^ 0x6a4d2383) * *(int *)(lVar1 + -0x968);
  uVar8 = DAT_1826717e0;
  *(ulonglong *)(lVar1 + -0x610) =
       (uVar22 ^ uVar37) - (uVar38 ^ *(ulonglong *)(lVar1 + -0x400)) ^ uVar28;
  uVar7 = DAT_18267164c;
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar27 = *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671590 ^ 0x1afb5b6c)) ^ *puVar15 ^ uVar30 ^
           uVar31 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 + -0x898) = uVar27;
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar22 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar1 + -0x638) = (uVar27 ^ uVar30) >> ((bVar11 ^ 0xaf) & 0x3f) ^ uVar37;
  uVar36 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0x4d678c7f)) =
       (uVar30 ^ uVar27) << (((byte)uVar3 ^ 0xd7) & 0x3f) ^ uVar36;
  uVar7 = DAT_182671754;
  uVar27 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar22 = *(ulonglong *)(lVar1 + -0x80) ^ uVar36 | uVar37 ^ *(ulonglong *)(lVar1 + -0x638);
  *(ulonglong *)(lVar1 + -0x5c8) = uVar22 ^ uVar27;
  uVar6 = DAT_1826716c8;
  uVar36 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0x9e8) = (uVar31 ^ *(ulonglong *)(lVar1 + -0x688)) - uVar22 ^ uVar36;
  uVar30 = CONCAT44(uVar6,uVar6);
  uVar37 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar22 = (ulonglong)DAT_1826715a0;
  uVar26 = *(ulonglong *)(lVar1 - (uVar26 ^ 0xd6021f64)) ^ *(ulonglong *)(lVar1 + -0x610) ^ uVar30 ^
           uVar27 ^ uVar28;
  *(ulonglong *)(lVar1 + -0x510) = uVar26;
  uVar6 = DAT_1826715f4;
  lVar2 = DAT_182671560;
  uVar31 = (*(ulonglong *)(lVar1 - (uVar22 ^ 0x97eaaf70)) ^ uVar30) >> (((byte)uVar9 ^ 0xfb) & 0x3f)
  ;
  *(ulonglong *)(lVar1 + -0x3b8) = uVar31 ^ uVar37;
  uVar7 = DAT_18267177c;
  uVar27 = (ulonglong)DAT_182671590;
  uVar39 = CONCAT44(uVar6,uVar6);
  uVar37 = (uVar30 ^ uVar26) << ((bVar18 ^ 0xa9) & 0x3f);
  uVar22 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar37 ^ uVar39;
  uVar6 = DAT_1826717fc;
  uVar26 = CONCAT44(uVar7,uVar7);
  uVar37 = uVar37 | uVar31;
  *(ulonglong *)(lVar2 + -0x548) = uVar37 ^ uVar26;
  uVar3 = DAT_182671570;
  uVar31 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x1afb51ec)) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0xaac63bc1)) ^ uVar28) - uVar37 ^ uVar31;
  uVar4 = DAT_182671580;
  uVar22 = CONCAT44(DAT_182671818,DAT_182671818);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x9f47613e)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0xd6021344)) ^ uVar22 ^ uVar36 ^ uVar38 ^
       *(ulonglong *)(lVar2 + -0x400);
  uVar6 = DAT_1826715e8;
  bVar18 = (byte)uVar4;
  bVar11 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar2 + -0x638) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0xa0)) >> ((bVar18 ^ 0x21) & 0x3f) ^ uVar29;
  uVar7 = DAT_182671788;
  uVar22 = (uVar22 ^ *(ulonglong *)(lVar2 + -0xa0)) << ((bVar11 ^ 0xa6) & 0x3f);
  *(ulonglong *)(lVar2 + -0x80) = uVar22 ^ CONCAT44(uVar6,uVar6);
  lVar1 = DAT_182671560;
  uVar28 = CONCAT44(uVar7,uVar7);
  puVar12 = (ulonglong *)(DAT_182671560 + -0x9e8);
  uVar22 = *(ulonglong *)(lVar2 - (uVar32 ^ 0x9f4767a6)) ^ uVar29 | uVar22;
  uVar37 = CONCAT44(DAT_182671864,DAT_182671864);
  uVar27 = uVar22 ^ uVar28;
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar27;
  *(ulonglong *)(lVar1 + -0x5c8) = (uVar36 ^ *puVar12) - uVar22 ^ uVar37;
  uVar27 = *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0xf000e801)) ^ uVar35 ^ uVar28 ^ uVar31 ^
           uVar27;
  *(ulonglong *)(lVar1 + -0x510) = uVar27;
  uVar4 = DAT_1826715a8;
  lVar1 = DAT_182671560;
  uVar29 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x7bfffc54)) =
       (uVar35 ^ uVar27) >> (((byte)uVar3 ^ 0xf9) & 0x3f) ^ uVar24;
  uVar6 = DAT_1826716dc;
  *(ulonglong *)(lVar1 + -0x610) =
       (uVar28 ^ *(ulonglong *)(lVar1 + -0x688)) <<
       (((byte)uVar8 ^ *(byte *)(lVar1 + -0x898)) & 0x3f);
  uVar27 = CONCAT44(uVar6,uVar6);
  uVar36 = CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(lVar1 + -0x400) =
       (uVar35 ^ *(ulonglong *)(lVar1 + -0x510)) << (((byte)uVar4 ^ 0xe5) & 0x3f) ^ uVar27;
  uVar6 = DAT_182671620;
  uVar22 = (ulonglong)DAT_182671598;
  uVar27 = *(ulonglong *)(lVar1 - (uVar19 ^ 0x5afb79ec)) ^ uVar27 |
           uVar24 ^ *(ulonglong *)(lVar1 + -0x3b8);
  *(ulonglong *)(lVar1 + -0xa0) = uVar27 ^ uVar36;
  uVar7 = DAT_182671658;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 + -0x638) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0xe45df712)) ^ uVar31) - uVar27 ^ uVar36;
  uVar22 = *(ulonglong *)(lVar1 + -0x5c8) ^ uVar37 ^ uVar26 ^ uVar20 ^
           *(ulonglong *)(lVar1 + -0x548);
  *(ulonglong *)(lVar1 + -0x80) = uVar22;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_18267159c ^ 0x29fdecbb)) =
       (uVar22 ^ uVar20) >> (((byte)uVar3 ^ 0xf4) & 0x3f) ^ uVar31;
  bVar11 = (byte)DAT_182671594;
  *(ulonglong *)(lVar1 + -0x898) = *(ulonglong *)(lVar1 + -0x1f0) ^ uVar39 ^ 0xa9792dd18856872e;
  uVar6 = DAT_1826716c4;
  uVar22 = (*(ulonglong *)(lVar1 + -0x80) ^ uVar20) << ((bVar11 ^ 0x8f) & 0x3f);
  *(ulonglong *)(lVar1 + -0x688) = uVar22 ^ uVar25;
  uVar27 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x280049a)) =
       (*(ulonglong *)(lVar1 - (uVar16 ^ 0x61bef6e8)) ^ uVar31 | uVar22) ^ uVar27;
  uVar7 = DAT_182671858;
  *(ulonglong *)(lVar1 + -0x510) =
       (*(ulonglong *)(lVar1 + -0x5c8) ^ uVar37) - (uVar27 ^ *(ulonglong *)(lVar1 + -0x610)) ^
       CONCAT44(DAT_182671770,DAT_182671770);
  uVar6 = DAT_1826717c8;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xf7eaec51)) =
       uVar22 ^ uVar27 ^ uVar36 ^ *(ulonglong *)(lVar1 + -0x610) ^ *(ulonglong *)(lVar1 + -0x638);
  *(uint *)(lVar1 + -0x874) =
       (DAT_1826715a0 ^ 0x414d49ea) >> ((byte)*(undefined4 *)(lVar1 + -0x344) & 0x1f);
  uVar3 = DAT_1826715a0;
  *(ulonglong *)(lVar1 + -0x400) =
       (uVar22 ^ *puVar13) >> ((bVar18 ^ 7) & 0x3f) ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 + -0xc08) =
       (uVar22 ^ *(ulonglong *)(lVar1 + -0x3b8)) << (((byte)uVar3 ^ 0x52) & 0x3f) ^ uVar25;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar23;
  return;
}



############ FUN_ 180e86d70 size=5611 ############

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

void FUN_180e86d70(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int *piVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte local_f8;
  byte local_e8;
  
  uVar13 = DAT_1826715a4;
  uVar11 = DAT_182671588;
  uVar8 = DAT_182671584;
  uVar9 = DAT_182671578;
  lVar6 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671588;
  uVar35 = (ulonglong)DAT_182671584;
  uVar39 = (ulonglong)DAT_182671578;
  uVar28 = (ulonglong)DAT_1826715a4;
  uVar44 = DAT_182671584 * DAT_182671578;
  uVar26 = DAT_182671588 ^ DAT_1826715a4;
  uVar43 = (ulonglong)uVar26;
  uVar5 = *(uint *)(&DAT_182611e80 + DAT_182671b38);
  uVar40 = *(uint *)(&DAT_182611e78 + DAT_182671b38) ^ DAT_182671588;
  puVar3 = (ulonglong *)(DAT_182671560 + -0x628);
  DAT_182671568 = uVar26;
  DAT_18267159c = uVar44;
  *(undefined1 *)(DAT_182671560 - ((ulonglong)DAT_182671588 ^ 0x6a6a5aa3)) =
       **(undefined1 **)(DAT_182671560 - (uVar28 ^ 0xacee70f6));
  uVar10 = DAT_182671840;
  puVar4 = (ulonglong *)(lVar6 + -0x240);
  uVar41 = CONCAT44(DAT_182671664,DAT_182671664);
  uVar36 = CONCAT44(DAT_182671874,DAT_182671874);
  uVar38 = (ulonglong)uVar44;
  *puVar3 = (uVar41 ^ *puVar4) >> (((byte)uVar8 ^ 0xa1) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0x6a6a535a)) =
       CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar6 + -0x670) |
       CONCAT44(uVar44,uVar44) ^ 0xe76f724a23d2c60f;
  uVar10 = _DAT_1826715d8;
  uVar24 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(lVar6 + -0x898) = (uVar41 ^ *puVar4) << 0x3b ^ uVar24;
  uVar16 = DAT_182671850;
  uVar15 = DAT_1826716ec;
  lVar7 = DAT_182671560;
  uVar42 = CONCAT44(uVar10,uVar10);
  uVar24 = *(ulonglong *)(lVar6 - (uVar43 ^ 0xc6842c44)) ^ uVar24 | uVar36 ^ *puVar3;
  uVar30 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar6 + -0x2a0) = uVar24 ^ uVar42;
  *(ulonglong *)(lVar6 + -0x318) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar6 + -0x8a8)) - uVar24 ^ uVar30;
  uVar24 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  uVar41 = CONCAT44(DAT_182671600,DAT_182671600);
  puVar1 = (ulonglong *)(lVar7 + -0x110);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0xea5676f4)) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar13 ^ 0xacee7aa6)) ^ CONCAT44(uVar15,uVar15) ^ uVar41 ^
       uVar24 ^ *(ulonglong *)(lVar7 + -0xa88);
  uVar10 = DAT_18267184c;
  lVar6 = DAT_182671560;
  uVar36 = (uVar24 ^ *puVar1) >> (((byte)uVar8 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar7 + -0x670) = uVar36 ^ CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar20 = DAT_1826715b0;
  uVar48 = CONCAT44(uVar10,uVar10);
  puVar2 = (ulonglong *)(lVar6 + -0xbf0);
  uVar24 = (*(ulonglong *)(lVar6 - (uVar38 ^ 0x7f660f00)) ^ uVar24) << (((byte)uVar9 ^ 0xff) & 0x3f)
  ;
  uVar34 = (ulonglong)DAT_1826715b0;
  *puVar2 = uVar24 ^ uVar48;
  lVar6 = DAT_182671560;
  uVar36 = uVar36 | uVar24;
  uVar32 = CONCAT44(DAT_182671890,DAT_182671890);
  uVar24 = *(ulonglong *)(DAT_182671560 + -0x6d0);
  *puVar4 = uVar36 ^ uVar32;
  uVar10 = DAT_182671860;
  uVar50 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  uVar46 = (uVar41 ^ uVar24) - uVar36 ^ uVar50;
  *puVar3 = uVar46;
  uVar24 = CONCAT44(uVar10,uVar10);
  puVar25 = (ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x6656d3bc));
  uVar36 = *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x6656d2e4)) ^ uVar30 ^ *puVar25 ^ uVar24 ^
           uVar32;
  *(ulonglong *)(lVar6 + -0x898) = uVar36;
  *(undefined1 *)(lVar6 + -0x5e9) = **(undefined1 **)(lVar6 + -0x900);
  uVar15 = DAT_182671808;
  uVar12 = DAT_182671590;
  bVar18 = (byte)uVar26;
  uVar33 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar37 = (uVar36 ^ uVar24) >> ((bVar18 ^ 0xcb) & 0x3f);
  uVar41 = (ulonglong)DAT_182671590;
  uVar29 = uVar20 | DAT_182671590;
  uVar27 = CONCAT44(DAT_182671590,uVar29);
  uVar21 = (ulonglong)uVar29;
  *(ulonglong *)(lVar6 + -0x8a8) = uVar37 ^ uVar33;
  uVar10 = DAT_1826717c0;
  uVar45 = (uVar36 ^ uVar24) << (((byte)uVar29 ^ 0x2b) & 0x3f);
  DAT_182671570 = uVar29;
  *(ulonglong *)(lVar6 + -0xa88) = uVar45 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_1826718ac;
  uVar14 = DAT_1826715cc;
  lVar6 = DAT_182671560;
  uVar36 = (ulonglong)DAT_1826715cc;
  uVar47 = CONCAT44(uVar10,uVar10);
  uVar24 = *(ulonglong *)(DAT_182671560 + -0x318);
  *puVar1 = (uVar45 | uVar37) ^ uVar47;
  uVar49 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x670) =
       (uVar30 ^ uVar24) - (*(ulonglong *)(lVar6 - (uVar34 ^ 0x2a001d12)) ^ uVar47) ^ uVar49;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xcf82e3f0)) =
       uVar42 ^ *(ulonglong *)(lVar6 + -0x2a0) ^ uVar30 ^ uVar50 ^ uVar46;
  lVar6 = DAT_182671560;
  uVar24 = *puVar2;
  uVar37 = (*puVar2 >> 0x20 ^ uVar36) >> 8;
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar37 ^ CONCAT44(DAT_1826717c8,DAT_1826717c8);
  lVar7 = DAT_182671560;
  *puVar4 = *(ulonglong *)(lVar6 + -0x8a8) ^ uVar27 ^ uVar33 ^ 0xbd61a0fe18544ed9;
  uVar10 = DAT_1826715c4;
  bVar19 = (byte)uVar20;
  uVar24 = (uVar24 ^ uVar30) << ((bVar19 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar7 + -0x898) = uVar24 ^ CONCAT44(DAT_182671628,DAT_182671628);
  uVar15 = DAT_182671864;
  uVar36 = CONCAT44(uVar10,uVar10);
  puVar22 = (ulonglong *)(lVar7 - (uVar21 ^ 0xef82f68a));
  *puVar22 = (uVar37 | uVar24) ^ uVar36;
  uVar45 = CONCAT44(uVar15,uVar15);
  uVar24 = *(ulonglong *)(lVar7 - (uVar34 ^ 0x2a001a2a));
  *(uint *)(lVar7 + -0x774) = uVar29 ^ 0x1040080 | 0x4893e77f;
  uVar10 = DAT_1826718a0;
  *(ulonglong *)(lVar7 + -0x318) =
       (uVar24 ^ uVar50) - (*(ulonglong *)(lVar7 + -0xa88) ^ uVar36) ^ uVar45;
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar7 - (uVar43 ^ 0xc684267c)) =
       *(ulonglong *)(lVar7 + -0xa88) ^ *(ulonglong *)(lVar7 + -0x670) ^ uVar24 ^ uVar36 ^ uVar49;
  uVar36 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar7 + -0x8a8) =
       (*(ulonglong *)(lVar7 + -0x2a0) ^ uVar24) >> (((byte)uVar11 ^ 0x9e) & 0x3f) ^ uVar36;
  *puVar4 = *puVar2 ^ uVar30 | CONCAT44(uVar9,uVar8) ^ 0x14fb7d2a2e441fff;
  uVar11 = DAT_1826715b4;
  local_f8 = (byte)uVar12;
  uVar27 = CONCAT44(DAT_182671898,DAT_182671898);
  uVar24 = (*(ulonglong *)(lVar7 + -0x2a0) ^ uVar24) << ((local_f8 ^ 0xc) & 0x3f);
  uVar37 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar7 + -0x6d0) = uVar24 ^ uVar27;
  uVar10 = DAT_18267164c;
  uVar24 = *(ulonglong *)(lVar7 - (uVar31 ^ 0x6a6a5002)) ^ uVar36 | uVar24;
  *(ulonglong *)(lVar7 + -0x898) = uVar24 ^ uVar37;
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar36 = (ulonglong)DAT_1826717a8;
  uVar30 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar7 - (uVar31 ^ 0x6a6a5e82)) =
       (*(ulonglong *)(lVar7 + -0x670) ^ uVar49) - uVar24 ^ uVar33;
  *(ulonglong *)(lVar7 + -0xa88) =
       *puVar1 ^ *(ulonglong *)(lVar7 + -0x318) ^ uVar30 ^ uVar45 ^ uVar47;
  uVar42 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar7 - (uVar38 ^ 0x7f6605e0)) =
       (*(ulonglong *)(lVar7 - (uVar38 ^ 0x7f660498)) >> 0x20 ^ uVar36) >> 0x19 ^ uVar42;
  uVar24 = (*(ulonglong *)(lVar7 + -0xa88) ^ uVar30) << ((bVar19 ^ 5) & 0x3f);
  *puVar4 = uVar24 ^ CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar7 + -0x2a0) =
       (CONCAT44(uVar9,uVar12) ^ 0xa098e1e846b1cb05) -
       (CONCAT44(uVar11,uVar26) ^ 0x4913affcc6300bb8);
  uVar10 = DAT_182671730;
  uVar36 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar24 = uVar24 | *puVar2 ^ uVar42;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar24 ^ uVar36;
  uVar20 = DAT_1826718a8;
  uVar42 = CONCAT44(uVar10,uVar10);
  puVar23 = (ulonglong *)(lVar7 - (uVar39 ^ 0xea567194));
  *puVar23 = (*(ulonglong *)(lVar7 + -0x318) ^ uVar45) - uVar24 ^ uVar42;
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar7 - (uVar31 ^ 0x6a6a59ba)) =
       *(ulonglong *)(lVar7 - (uVar35 ^ 0x6656d80c)) ^ uVar30 ^ uVar36 ^ uVar33 ^ *puVar3;
  uVar24 = *(ulonglong *)(lVar6 + -0x6d0);
  uVar36 = *puVar1;
  uVar38 = ((ulonglong)uVar20 << 0x12 | (ulonglong)(uVar20 >> 0xe)) ^ uVar36 >> 0xe;
  *puVar2 = uVar38 ^ CONCAT44(DAT_182671878,DAT_182671878);
  lVar7 = DAT_182671560;
  *puVar4 = (uVar24 ^ uVar27) << ((bVar19 ^ 0x1c) & 0x3f);
  uVar36 = (uVar36 ^ uVar30) << ((bVar18 ^ 0xee) & 0x3f);
  *(ulonglong *)(lVar6 + -0x318) = uVar36 ^ CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar6 + -0x8a8) = CONCAT44(uVar8,uVar11) ^ 0x23778ebb6fab2837;
  uVar36 = uVar36 | uVar38;
  uVar46 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar24 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar7 + -0xa88) = uVar36 ^ uVar46;
  uVar10 = DAT_182671758;
  uVar27 = (uVar33 ^ *puVar3) - (CONCAT44(uVar12,uVar12) ^ 0xe4f39a29c81d5e24);
  *(ulonglong *)(lVar7 + -0x2a0) = uVar27 ^ uVar24;
  uVar49 = CONCAT44(uVar10,uVar10);
  uVar24 = (ulonglong)DAT_18267158c;
  uVar33 = uVar27 - uVar36 ^ uVar49;
  *(ulonglong *)(lVar7 + -0x6d0) = uVar33;
  *puVar4 = *(ulonglong *)(lVar7 - (uVar24 ^ 0xe3d292c8)) ^ CONCAT44(uVar13,uVar29) ^ uVar30 ^
            0xab7da81d4971b3f5;
  uVar11 = DAT_18267178c;
  uVar27 = CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar24 = (ulonglong)DAT_18267178c;
  *(ulonglong *)(lVar7 + -0x8a8) =
       (uVar46 ^ *puVar22) - (CONCAT44(uVar26,uVar13) ^ 0x810760021872347b) ^ uVar27;
  uVar8 = DAT_18267157c;
  lVar6 = DAT_182671560;
  uVar30 = *(ulonglong *)(lVar7 - (uVar31 ^ 0x6a6a5032)) ^
           *(ulonglong *)(lVar7 - (uVar35 ^ 0x6656d6d4)) ^ CONCAT44(uVar11,uVar11) ^ uVar42 ^ uVar37
  ;
  *puVar2 = uVar30;
  uVar10 = DAT_1826717ec;
  uVar36 = ((ulonglong)(uVar11 >> 0x10) | uVar24 << 0x10) ^
           *(ulonglong *)(lVar6 - (uVar39 ^ 0xea567c14)) >> 0x10;
  local_e8 = (byte)uVar44;
  *(ulonglong *)(lVar6 + -0x318) = uVar36 ^ CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar24 = (CONCAT44(uVar11,uVar11) ^ uVar30) << ((local_e8 ^ 0x20) & 0x3f);
  uVar20 = DAT_1826715a8 ^ 0x19e3521a;
  *puVar3 = uVar24 ^ CONCAT44(uVar10,uVar10);
  lVar6 = DAT_182671560;
  uVar36 = uVar36 | uVar24;
  uVar39 = CONCAT44(DAT_182671704,DAT_182671704);
  piVar17 = (int *)(DAT_182671560 - (uVar31 ^ 0x6a6a5ed2));
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar36 ^ uVar39;
  uVar11 = DAT_1826715a0;
  *(uint *)(lVar6 + -0x754) = *piVar17 * uVar20;
  uVar24 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *puVar1 = (*(ulonglong *)(lVar6 + -0x670) ^ uVar42) -
            (CONCAT44(uVar12,uVar11) ^ 0x308d8b4d03e6ceec) ^ uVar24;
  uVar30 = CONCAT44(DAT_182671660,DAT_182671660);
  *puVar4 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715b4 ^ 0x2c261d22)) ^ uVar24) - uVar36 ^
            uVar30;
  uVar10 = DAT_1826718a4;
  uVar31 = CONCAT44(DAT_18267165c,DAT_18267165c);
  uVar38 = (ulonglong)DAT_182671594;
  uVar24 = (CONCAT44(uVar8,DAT_182671598) ^ 0x35be398f3cbccded) + uVar36 ^ uVar31;
  *(ulonglong *)(lVar6 + -0xa88) = uVar24;
  uVar36 = CONCAT44(uVar10,uVar10);
  uVar42 = CONCAT44(DAT_182671770,DAT_182671770);
  uVar24 = uVar33 ^ uVar36 ^ uVar24 ^ uVar31 ^ uVar49;
  *(ulonglong *)(lVar6 + -0x898) = uVar24;
  *(ulonglong *)(lVar6 - (uVar28 ^ 0xacee7786)) =
       (uVar24 ^ uVar36) >> ((local_e8 ^ 0x30) & 0x3f) ^ uVar42;
  uVar10 = DAT_182671790;
  uVar24 = (*(ulonglong *)(lVar6 + -0x898) ^ uVar36) << 0x20;
  *(ulonglong *)(lVar6 + -0x318) = uVar24 ^ CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar8 = DAT_182671764;
  uVar11 = DAT_1826715b4;
  uVar47 = CONCAT44(uVar10,uVar10);
  uVar33 = (ulonglong)DAT_182671764;
  uVar45 = (ulonglong)DAT_182671574;
  bVar19 = (byte)DAT_182671574;
  *(ulonglong *)(lVar6 - (uVar38 ^ 0xa16871a8)) = (uVar42 ^ *puVar2 | uVar24) ^ uVar47;
  lVar6 = DAT_182671560;
  uVar38 = CONCAT44(uVar8,uVar8);
  *(longlong *)(DAT_182671560 + -0x670) = 0x7b59ef0299d833f5 << ((bVar19 ^ 0xfd) & 0x3f);
  uVar28 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar24 = *puVar2;
  *puVar1 = (*(ulonglong *)(lVar6 + -0x6d0) ^ uVar49) - (uVar47 ^ *puVar3) ^ uVar28;
  lVar6 = DAT_182671560;
  uVar36 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x2c261e72));
  puVar22 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *(ulonglong *)(DAT_182671560 + -0x898) = (uVar42 ^ uVar24) << 0x16;
  uVar27 = uVar36 ^ *puVar22 ^ uVar38 ^ uVar30 ^ uVar27;
  *(ulonglong *)(lVar6 + -0x2a0) = uVar27;
  *(ulonglong *)(lVar6 + -0x318) = *(ulonglong *)(lVar6 + -0x2a0) >> 0x20 ^ uVar33 ^ uVar37;
  uVar10 = DAT_18267186c;
  *(ulonglong *)(lVar6 + -0x670) = (uVar38 ^ uVar27) << 0x20 ^ uVar46;
  uVar33 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_18267158c ^ 0xe3d29508)) =
       (*(ulonglong *)(lVar6 - (uVar43 ^ 0xc68427c4)) ^ uVar37 |
       *(ulonglong *)(lVar6 - (uVar34 ^ 0x2a001a72)) ^ uVar46) ^ uVar33;
  uVar15 = DAT_1826715d4;
  uVar8 = DAT_18267156c;
  uVar42 = CONCAT44(DAT_182671604,DAT_182671604);
  *(ulonglong *)(lVar6 + -0x8a8) =
       (*puVar4 ^ uVar30) - (*(ulonglong *)(lVar6 + -0x6d0) ^ uVar33) ^ uVar42;
  uVar10 = DAT_182671580;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar45 ^ 0xeeef7706)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xe7d6d52c)) ^ *puVar1 ^ uVar36 ^ uVar33 ^ uVar28;
  uVar15 = DAT_182671858;
  lVar6 = DAT_182671560;
  uVar43 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar36 ^ *puVar2) >> (((byte)uVar13 ^ 0x4c) & 0x3f) ^ uVar43;
  uVar27 = CONCAT44(uVar15,uVar15);
  uVar24 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xcf82eaa0)) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xef82f7f2)) ^ uVar36) << (((byte)uVar10 ^ 0x84) & 0x3f) ^
       uVar27;
  *puVar25 = *(ulonglong *)(lVar6 - (uVar24 ^ 0xf9fb9dac)) ^ uVar31 |
             CONCAT44(uVar44,uVar9) ^ 0x83f6a011d8681294;
  uVar10 = DAT_1826715ac;
  uVar46 = CONCAT44(DAT_182671784,DAT_182671784);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0x2c261a42)) =
       (uVar43 ^ *(ulonglong *)(lVar6 + -0x898) | uVar27 ^ *(ulonglong *)(lVar6 + -0x2a0)) ^ uVar46;
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x2a001e42)) =
       uVar27 ^ *(ulonglong *)(lVar6 + -0x2a0) ^ 0xa755b85ba729e097;
  uVar31 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar28 = (*puVar1 ^ uVar28) - (uVar46 ^ *(ulonglong *)(lVar6 + -0x670));
  uVar36 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  *(ulonglong *)(lVar6 + -0x6d0) = uVar28 ^ uVar31;
  uVar24 = uVar36 ^ *(ulonglong *)(lVar6 + -0x8a8) ^ uVar42 ^ uVar47 ^ *puVar3;
  uVar38 = (uVar24 ^ uVar36) >> (((byte)uVar8 ^ 0xea) & 0x3f);
  *puVar2 = uVar24;
  uVar15 = DAT_182671710;
  *(ulonglong *)(lVar6 + -0xa88) = uVar38 ^ CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar16 = DAT_1826717e0;
  uVar24 = (uVar36 ^ uVar24) << (((byte)uVar10 ^ 100) & 0x3f);
  *(ulonglong *)(lVar7 + -0x318) = uVar24 ^ CONCAT44(uVar15,uVar15);
  uVar8 = DAT_1826717fc;
  uVar36 = (ulonglong)DAT_1826717fc;
  uVar27 = CONCAT44(uVar16,uVar16);
  uVar38 = uVar38 | uVar24;
  uVar30 = uVar38 ^ uVar27;
  uVar45 = CONCAT44(DAT_182671828,DAT_182671828);
  *(ulonglong *)(lVar7 + -0x898) = uVar30;
  uVar43 = CONCAT44(uVar8,uVar8);
  uVar24 = (ulonglong)DAT_18267157c;
  uVar41 = (*(ulonglong *)(lVar7 - (uVar41 ^ 0xcf82e0a8)) ^ uVar42) - uVar38 ^ uVar45;
  *(ulonglong *)(lVar7 + -0x2a0) = uVar41;
  uVar8 = DAT_18267158c;
  uVar30 = *(ulonglong *)(lVar7 - (uVar24 ^ 0xe3d29508)) ^ uVar43 ^ uVar27 ^ uVar31 ^ uVar30;
  *puVar4 = uVar30;
  uVar36 = (uVar30 >> 0x20 ^ uVar36) >> 0xe;
  *puVar1 = uVar36 ^ CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar24 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xe3d29198)) ^ uVar43) << 0x12;
  *puVar3 = uVar24 ^ CONCAT44(DAT_182671650,DAT_182671650);
  uVar24 = uVar24 | uVar36;
  uVar43 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *puVar2 = uVar24 ^ uVar43;
  uVar15 = DAT_182671830;
  lVar6 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671794,DAT_182671794);
  bVar19 = (byte)DAT_1826715b4;
  uVar41 = uVar45 ^ uVar46 ^ *(ulonglong *)(DAT_182671560 + -0x670) ^ uVar41;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar41 ^ uVar32;
  uVar27 = uVar41 >> ((bVar19 ^ 0x3e) & 0x3f);
  uVar36 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar6 + -0xa88) = uVar28 - uVar24 ^ uVar31;
  *(ulonglong *)(lVar6 + -0x8a8) = uVar27 ^ CONCAT44(uVar15,uVar15);
  uVar24 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar6 + -0x898) = uVar41 << (((byte)uVar8 ^ 0xec) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_18267156c ^ 0xe7d6d1bc)) =
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0xe3d29b40)) ^ uVar36 | uVar27) ^ uVar37;
  uVar28 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar6 - (uVar21 ^ 0xef82fa2a)) =
       (uVar45 ^ *(ulonglong *)(lVar6 + -0x2a0)) - (*puVar4 ^ uVar37) ^ uVar28;
  uVar15 = DAT_1826717e4;
  uVar41 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  uVar37 = *(ulonglong *)(lVar6 + -0xa88) ^ uVar41 ^ uVar31 ^ *puVar4 ^ uVar37;
  *puVar1 = uVar37;
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar24 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar6 + -0x6d0) =
       (*(ulonglong *)(lVar6 - (uVar35 ^ 0x6656d1b4)) ^ uVar41) >>
       (((byte)DAT_182671580 ^ 0x9b) & 0x3f) ^ uVar36;
  *puVar23 = (uVar41 ^ uVar37) << 0x27 ^ uVar24;
  *(ulonglong *)(lVar6 + -0x318) =
       (uVar24 ^ *(ulonglong *)(lVar6 + -0x670) | *(ulonglong *)(lVar6 + -0x6d0) ^ uVar36) ^ uVar48;
  uVar15 = DAT_1826715e8;
  *(undefined1 *)(lVar6 - (uVar34 ^ 0x2a001e0b)) = **(undefined1 **)(lVar6 + -0xa20);
  uVar24 = (*(ulonglong *)(lVar6 + -0xa88) ^ uVar31) -
           (CONCAT44(DAT_1826715a0,uVar10) ^ 0x847e457836ba6449);
  *(ulonglong *)(lVar6 + -0x8a8) = uVar24 ^ uVar33;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x2a00149a)) =
       uVar24 - (*(ulonglong *)(lVar6 + -0x318) ^ uVar48) ^ uVar39;
  uVar10 = DAT_1826716b0;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671598 ^ 0x4804686)) =
       (*(ulonglong *)(lVar6 + -0x318) ^ uVar48) -
       (CONCAT44(DAT_1826715a8,uVar44) ^ 0x5413743bc6f96b83) ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_18267183c;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar36 = uVar24 ^ uVar28 ^ uVar43 ^ *puVar2 ^ *puVar3;
  *puVar4 = uVar36;
  *puVar1 = (uVar36 ^ uVar24) >> ((bVar18 ^ 0xfd) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar5 ^ uVar26) * 4) = uVar40;
  return;
}



############ FUN_ 180ecbd80 size=4269 ############

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

void FUN_180ecbd80(void)

{
  uint uVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  byte bVar10;
  uint uVar11;
  ulonglong uVar12;
  byte *pbVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint *puVar36;
  ulonglong uVar32;
  
  uVar11 = DAT_18267179c;
  uVar27 = DAT_182671604;
  uVar8 = DAT_182671594;
  uVar7 = DAT_182671590;
  uVar6 = DAT_182671588;
  uVar14 = DAT_18267157c;
  lVar4 = DAT_182671560;
  uVar12 = (ulonglong)DAT_182671588;
  uVar29 = (ulonglong)DAT_18267157c;
  uVar16 = (ulonglong)DAT_182671590;
  uVar18 = DAT_182671588 << 0x10 | DAT_182671588 >> 0x10;
  uVar31 = DAT_182671594 << 0x10 | DAT_182671594 >> 0x10;
  uVar32 = (ulonglong)uVar31;
  uVar35 = DAT_18267157c + DAT_182671590;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar12 ^ 0xfffffff7) + (longlong)DAT_182671c04);
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671c04);
  uVar24 = (uint)(DAT_182671868 ^ *(byte *)(DAT_182671560 + -0xc41));
  DAT_182671598 = uVar18;
  DAT_1826715a0 = uVar31;
  DAT_1826715ac = uVar35;
  *(uint *)(DAT_182671560 + -0x754) = uVar24 ^ DAT_18267179c;
  uVar25 = uVar24 << 0x11 ^ DAT_1826717f0;
  uVar17 = (ulonglong)uVar8;
  uVar20 = (*(uint *)(lVar4 - (uVar16 ^ 0x6cf439b6)) ^ DAT_1826717c0) + (uVar35 ^ 0x3f8d39b4) ^
           DAT_18267182c;
  uVar24 = DAT_182671820 ^ *(uint *)(lVar4 + -0x874);
  *(uint *)(lVar4 + -0x3d4) = uVar20;
  uVar20 = uVar20 ^ DAT_18267182c;
  *(longlong *)(lVar4 + -0x638) =
       *(longlong *)(lVar4 + -0x3b8) <<
       ((byte)*(undefined8 *)(lVar4 - (uVar17 ^ 0x4bce9885)) & 0x3f);
  *(uint *)(lVar4 + -0x344) = uVar25;
  uVar15 = DAT_182671790;
  puVar36 = (uint *)(lVar4 - ((ulonglong)uVar14 ^ 0xc985e59b));
  *(uint *)(lVar4 + -0x504) = uVar20 - (uVar25 ^ DAT_1826717f0) ^ uVar27;
  uVar22 = (ulonglong)uVar18;
  *(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0xfffffd83)) = uVar24 * (uVar27 ^ *puVar36) ^ uVar15;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x800) =
       CONCAT44(uVar35,uVar18) ^ 0xd13017cf85030473 | CONCAT44(uVar14,uVar31) ^ 0xdaeef2e5df651ac3;
  *(uint *)(lVar4 + -0x374) =
       (*(uint *)(lVar4 + -0x754) ^ uVar11) * (uVar8 ^ 0x4bce9997) ^ DAT_18267172c;
  uVar24 = DAT_1826716e4;
  *(ulonglong *)(DAT_182671560 - (uVar12 ^ 0xfffff767)) =
       CONCAT44(uVar31,uVar18) ^ CONCAT44(uVar7,uVar7) ^ 0xbd1cfce92a33f1c5;
  lVar4 = DAT_182671560;
  bVar3 = (byte)uVar35;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar31 ^ 0x99954fb2)) =
       (*(uint *)(DAT_182671560 - ((ulonglong)uVar31 ^ 0x999548ba)) ^ DAT_18267172c) +
       (uVar15 ^ *(uint *)(DAT_182671560 + -0x27c)) ^ uVar24;
  uVar15 = (*(uint *)(lVar4 + -0x47c) ^ uVar24) >> ((bVar3 ^ 0x72) & 0x1f) ^ DAT_182671744;
  *(uint *)(lVar4 + -0x844) = (*(uint *)(lVar4 + -0x47c) ^ uVar24) << 0xd ^ DAT_1826715f4;
  *(uint *)(lVar4 + -0x910) = uVar15;
  *(uint *)(lVar4 + -0x5cc) =
       (*(uint *)(lVar4 - (uVar17 ^ 0x4bce91d1)) ^ DAT_1826715f4 |
       *(uint *)(lVar4 - (uVar16 ^ 0x6cf437d2)) ^ DAT_182671744) ^ _DAT_182671610;
  uVar15 = DAT_1826715a8;
  uVar20 = DAT_182671580;
  uVar24 = DAT_182671570;
  uVar34 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xc985e837)) =
       (CONCAT44(uVar7,uVar35) ^ 0x8ab91a8a6fcb7ddc) >> (((byte)(uVar6 >> 0x10) ^ 0xf2) & 0x3f);
  *(uint *)(lVar4 + -0x328) =
       (*(uint *)(lVar4 - ((ulonglong)uVar14 ^ 0xc985e8eb)) ^ DAT_182671820) +
       (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) ^ uVar11;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xfffffc0f)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar35 ^ 0x367a1369)) ^ *(ulonglong *)(lVar4 + -0x80);
  uVar15 = DAT_182671574;
  uVar19 = (ulonglong)DAT_182671574;
  *(uint *)(lVar4 + -0x968) = DAT_18267170c ^ uVar11 ^ *(uint *)(lVar4 + -0x328);
  *(ulonglong *)(lVar4 - (uVar16 ^ 0x6cf43812)) = *(ulonglong *)(lVar4 + -0x9f8) >> 9;
  uVar25 = *(uint *)(lVar4 - (uVar34 ^ 0x5b926ff6)) ^ DAT_182671780 ^ _DAT_182671610;
  uVar11 = *(uint *)(lVar4 + -0x968) ^ _DAT_18267161c ^ DAT_18267170c;
  *(uint *)(lVar4 + -0x964) = uVar25;
  *(uint *)(lVar4 + -0x8c) = uVar25 ^ DAT_182671664 ^ DAT_182671780;
  *(uint *)(lVar4 + -0x678) = uVar11;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar24 ^ 0xffffff5f)) =
       (CONCAT44(uVar15,uVar7) ^ 0xbdc2351567c781c4) << (((byte)uVar20 ^ 0x1e) & 0x3f);
  uVar28 = DAT_1826717f4;
  uVar11 = DAT_18267158c;
  uVar23 = (ulonglong)DAT_1826717f4;
  uVar30 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x367a1b91)) =
       *(longlong *)(lVar4 + -0x8f0) + 0xd + (CONCAT44(uVar20,uVar35) ^ 0x5b926a3a367a1f61) * 0x20 ^
       uVar23;
  *(byte *)(lVar4 - (uVar22 ^ 0xffffffbe)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar32 ^ 0x99954f3e)) ^ uVar23) ^ (byte)DAT_182671694 ^
       (byte)uVar27;
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x367a15e9)) =
       *(ulonglong *)(lVar4 - (uVar16 ^ 0x6cf436c2)) |
       CONCAT44(uVar11,DAT_1826715a8) ^ 0xfe8d1262fe999c23;
  uVar24 = DAT_1826716b0;
  *(uint *)(lVar4 + -0x774) = (uint)*(byte *)(lVar4 + -0x41) ^ uVar27 & 0xff ^ DAT_1826716b0;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xfffff9ff)) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267159c ^ 0x8a25e9c8)) |
       *(ulonglong *)(lVar4 + -0x800);
  uVar21 = (*(uint *)(lVar4 + -0x8c) ^ DAT_182671664) + (DAT_182671594 ^ 0x4239bf40) ^ DAT_18267186c
  ;
  *(uint *)(lVar4 + -0x344) = uVar21;
  uVar25 = DAT_182671738;
  uVar21 = uVar21 ^ DAT_18267186c;
  *(uint *)(lVar4 + -0x3d4) = (uVar24 ^ *(uint *)(lVar4 + -0x774)) << 0x11 ^ uVar28;
  lVar4 = DAT_182671560;
  uVar23 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (CONCAT44(uVar18,uVar8) ^ 0xe167723d5de17a44) - (CONCAT44(uVar14,uVar8) ^ 0x770790d49197720b)
  ;
  *puVar36 = uVar21 - (*(uint *)(lVar4 - (uVar23 ^ 0xfffffc2b)) ^ uVar28) ^ uVar25;
  uVar28 = DAT_18267174c;
  uVar24 = (uVar24 ^ *(uint *)(lVar4 + -0x774)) * (uVar11 ^ 0x1f613677) ^ DAT_18267174c;
  *(uint *)(lVar4 + -0x754) =
       (*(uint *)(lVar4 - (uVar12 ^ 0xfffff987)) ^ _DAT_18267161c) *
       (uVar25 ^ *(uint *)(lVar4 + -0x504)) ^ uVar27;
  *(uint *)(lVar4 - (uVar12 ^ 0xfffffd83)) = uVar24;
  uVar24 = (*(uint *)(lVar4 + -0x754) ^ uVar27) + (uVar28 ^ *(uint *)(lVar4 + -0x27c));
  *(uint *)(lVar4 + -0x374) = uVar24 ^ DAT_182671870;
  uVar26 = uVar24 << ((bVar3 ^ 0x6c) & 0x1f) ^ DAT_182671654;
  *(uint *)(lVar4 + -0x844) = uVar24 >> (((byte)uVar15 ^ 0x72) & 0x1f) ^ DAT_1826716e8;
  *(uint *)(lVar4 + -0x47c) = uVar26;
  uVar28 = DAT_182671788;
  uVar25 = DAT_182671708;
  bVar10 = (byte)DAT_182671650;
  uVar27 = DAT_18267159c;
  uVar24 = DAT_182671570;
  uVar21 = (*(uint *)(lVar4 + -0x678) ^ _DAT_18267161c) +
           (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) ^ DAT_18267164c;
  *(uint *)(lVar4 + -0x910) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_18267159c ^ 0x8a25e444)) ^ DAT_1826716e8 |
       uVar26 ^ DAT_182671654) ^ DAT_182671668;
  *(uint *)(lVar4 - (uVar34 ^ 0x5b92624e)) = uVar21;
  uVar21 = uVar28 ^ DAT_182671634;
  uVar26 = *(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0xfffff78b)) ^ DAT_182671634 ^ DAT_18267164c;
  *(uint *)(lVar4 + -0x5cc) = DAT_1826716d4 ^ DAT_182671668 ^ *(uint *)(lVar4 + -0x910);
  *(uint *)(lVar4 + -0x328) = uVar26;
  *(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x5b926352)) = uVar21 ^ uVar26;
  uVar23 = (ulonglong)DAT_182671848;
  *(uint *)(lVar4 + -0x964) = *(uint *)(lVar4 + -0x5cc) ^ uVar25 ^ DAT_1826716d4;
  *(ulonglong *)(lVar4 + -0x918) =
       (CONCAT44(uVar6,uVar7) ^ 0xffffffff6cf43ec2) * 0x20 +
       (CONCAT44(uVar24,uVar31) ^ 0xffffffff99954bd6) + *(longlong *)(lVar4 + -0x8f0) ^ uVar23;
  *(byte *)(lVar4 - (uVar16 ^ 0x6cf43283)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0xc985e987)) ^ uVar23) ^ bVar10 ^
       (byte)DAT_182671694;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x400) =
       *(ulonglong *)(lVar4 - (uVar22 ^ 0xfffff9c7)) ^ *(ulonglong *)(lVar4 + -0x110);
  uVar7 = DAT_182671880;
  uVar24 = DAT_18267175c;
  uVar23 = (ulonglong)DAT_1826715a8;
  uVar33 = CONCAT44(uVar15,DAT_1826715a8);
  *(uint *)(lVar4 + -0x8c) = (bVar10 ^ *(byte *)(lVar4 + -0xc41)) ^ DAT_182671880;
  uVar20 = DAT_182671584;
  *(uint *)(lVar5 - (uVar12 ^ 0xfffffcbb)) =
       (*(uint *)(lVar4 - (uVar23 ^ 0xfffff69b)) ^ uVar25) + (DAT_182671584 ^ 0x8ee64c2a) ^
       DAT_1826718a0;
  *(uint *)(lVar5 - ((ulonglong)uVar27 ^ 0x8a25efd4)) =
       (*(uint *)(lVar5 + -0x8c) ^ uVar7) << 0x11 ^ DAT_1826717e8;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0x99954226)) =
       uVar33 ^ 0xca6dd4ab98d44a7b | *(ulonglong *)(lVar5 + -0x2a0);
  *(uint *)(lVar5 + -0x504) =
       (*(uint *)(lVar5 - (uVar34 ^ 0x5b92697e)) ^ DAT_1826718a0) -
       (*(uint *)(lVar5 + -0x3d4) ^ DAT_1826717e8) ^ DAT_18267183c;
  uVar27 = (*(uint *)(lVar5 - (uVar19 ^ 0x367a1a65)) ^ DAT_18267183c) *
           (*(uint *)(lVar5 + -0x968) ^ uVar28);
  uVar15 = DAT_182671598 ^ 0xffffffe7;
  *(uint *)(lVar5 + -0x774) = uVar27 ^ uVar24;
  uVar24 = (*(uint *)(lVar5 + -0x8c) ^ uVar7) * uVar15 ^ DAT_18267180c;
  *(uint *)(lVar5 + -0x754) = uVar24;
  uVar21 = DAT_1826718ac;
  uVar15 = DAT_182671570;
  lVar4 = DAT_182671560;
  uVar24 = uVar24 ^ DAT_18267180c;
  uVar33 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar5 + -0x270) =
       *(ulonglong *)(lVar5 - (uVar32 ^ 0x99954ede)) >>
       ((byte)*(undefined8 *)(lVar5 - (uVar30 ^ 0x1f613c1a)) & 0x3f);
  uVar7 = DAT_182671690;
  *(uint *)(lVar5 - (uVar29 ^ 0xc985e2e3)) = uVar24 + uVar27 ^ DAT_182671690;
  uVar27 = DAT_182671734;
  uVar24 = *(uint *)(lVar5 - (uVar17 ^ 0x4bce9be9));
  uVar26 = (uVar7 ^ *(uint *)(lVar4 + -0x27c)) >> 0x13 ^ DAT_1826717cc;
  *(uint *)(lVar4 + -0x47c) = uVar26;
  uVar26 = uVar26 ^ DAT_1826717cc;
  uVar24 = (uVar24 ^ uVar7) << 0xd;
  *(uint *)(lVar4 + -0x374) = uVar24 ^ uVar27;
  *(uint *)(lVar4 + -0x844) = (uVar26 | uVar24) ^ DAT_182671894;
  *(ulonglong *)(lVar4 - (uVar17 ^ 0x4bce9cdd)) =
       ((ulonglong)(uVar15 >> 8) | uVar12 << 0x18) ^ 0xa09d108d5382a0;
  uVar24 = (*(uint *)(lVar4 + -0x968) ^ uVar28) + (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) ^
           DAT_1826717e0;
  *(uint *)(lVar4 + -0x678) = uVar24;
  uVar24 = uVar24 ^ DAT_182671628 ^ DAT_1826717e0;
  *(uint *)(lVar4 + -0x874) = uVar24;
  uVar15 = *(uint *)(lVar4 + -0x844) ^ DAT_18267160c ^ DAT_182671894;
  uVar24 = uVar21 ^ uVar24 ^ DAT_182671628;
  *(uint *)(lVar4 + -0x910) = uVar15;
  uVar15 = uVar15 ^ DAT_182671830 ^ DAT_18267160c;
  *(uint *)(lVar4 + -0x328) = uVar24;
  uVar9 = DAT_182671864;
  *(uint *)(lVar4 + -0x5cc) = uVar15;
  uVar23 = CONCAT44(uVar11,DAT_182671568);
  *(ulonglong *)(lVar4 + -0x748) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar4 + -0xbf0)) <<
       (((byte)DAT_18267159c ^ 0x24) & 0x3f);
  uVar7 = DAT_1826717b0;
  pbVar13 = (byte *)(*(longlong *)(lVar4 - (uVar12 ^ 0xfffff70f)) +
                     (uVar23 ^ 0x1f61367aaa4e1543) * 0x20 +
                    (CONCAT44(uVar18,uVar18) ^ 0xfffffffffffffffc));
  *(ulonglong *)(lVar4 + -0xc80) = (ulonglong)pbVar13 ^ (ulonglong)DAT_18267170c;
  *(byte *)(lVar4 - (uVar17 ^ 0x4bce99d4)) = *pbVar13 ^ (byte)uVar25 ^ (byte)DAT_182671694;
  uVar24 = DAT_1826715a4;
  uVar17 = (ulonglong)DAT_1826715a4;
  uVar26 = (*(uint *)(lVar4 + -0x5cc) ^ DAT_182671830) + (uVar35 ^ 0x3f8d39b4) ^ DAT_1826716b0;
  *(ulonglong *)(lVar4 + -0x6b8) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0xc985e7d7)) >> ((bVar3 ^ 0x6a) & 0x3f);
  uVar28 = (uint)*(byte *)(lVar4 - (uVar17 ^ 0xe55a1d67)) ^ uVar25 & 0xff;
  *(uint *)(lVar4 + -0x344) = uVar26;
  uVar15 = DAT_1826715a8;
  *(ulonglong *)(lVar4 + -0x3b8) = *(ulonglong *)(lVar4 + -0x748) | 0xc3eaafa9c691e5f2;
  *(uint *)(lVar4 + -0x964) = uVar28 ^ uVar7;
  uVar15 = (*(uint *)(lVar4 - (uVar16 ^ 0x6cf437a6)) ^ uVar7) << (((byte)uVar15 ^ 0xee) & 0x1f) ^
           DAT_1826715f8;
  *(uint *)(lVar4 + -0x3d4) = uVar15;
  uVar25 = DAT_182671858;
  uVar15 = (uVar26 ^ DAT_1826716b0) - (uVar15 ^ DAT_1826715f8) ^ DAT_1826716e8;
  *(uint *)(lVar4 + -0x504) = uVar15;
  uVar15 = (uVar15 ^ DAT_1826716e8) * (uVar21 ^ *(uint *)(lVar4 + -0x328)) ^ DAT_182671700;
  *(uint *)(lVar4 + -0x774) = uVar28 * 3 ^ DAT_1826715b8;
  *(uint *)(lVar4 + -0x8c) = uVar15;
  lVar5 = DAT_182671560;
  *(uint *)(lVar4 - (uVar12 ^ 0xfffff8ab)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x87116d8b)) ^ DAT_1826715b8) +
       (uVar15 ^ DAT_182671700) ^ uVar25;
  uVar15 = DAT_1826715b4;
  *(uint *)(lVar5 + -0x27c) =
       (*(uint *)(lVar4 + -0x754) ^ uVar25) << (((byte)DAT_1826715b4 ^ 0x88) & 0x1f) ^ uVar27;
  uVar17 = CONCAT44(uVar14,DAT_182671578);
  *(uint *)(lVar5 + -0x374) = (*(uint *)(lVar5 + -0x754) ^ uVar25) >> 0x13 ^ DAT_182671704;
  *(ulonglong *)(lVar5 + -0x898) = (uVar17 ^ 0x8b64680a617e3be4) >> ((bVar3 ^ 0x7c) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xfffff757)) =
       0x1c12ab765a431232 >> ((byte)*(undefined8 *)(lVar5 + -0x270) & 0x3f);
  uVar14 = (*(uint *)(lVar5 - ((ulonglong)uVar20 ^ 0x8711698b)) ^ DAT_182671704 |
           uVar27 ^ *(uint *)(lVar5 + -0x27c)) ^ DAT_182671670;
  *(uint *)(lVar5 + -0x968) =
       (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624) + (uVar21 ^ *(uint *)(lVar5 + -0x328)) ^
       DAT_1826718a8;
  *(uint *)(lVar5 + -0x47c) = uVar14;
  uVar14 = DAT_1826717b8;
  *(longlong *)(lVar5 - (uVar19 ^ 0x367a1fe1)) =
       *(longlong *)(lVar5 + -0x270) - *(longlong *)(lVar5 + -0x548);
  *(uint *)(lVar5 + -0x678) =
       *(uint *)(lVar5 - (uVar33 ^ 0xfffff697)) ^ DAT_182671898 ^ DAT_1826718a8;
  uVar27 = DAT_18267156c ^ 0x3f8d39b4;
  uVar17 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar5 - (uVar16 ^ 0x6cf432ca)) =
       (CONCAT44(uVar8,DAT_18267156c) ^ 0x209189969a9c2a) >> (((byte)uVar6 ^ 0xc1) & 0x3f);
  uVar20 = *(uint *)(lVar5 - (uVar17 ^ 0xfffffb83)) ^ DAT_182671818 ^ DAT_182671670;
  *(uint *)(lVar5 + -0x874) = *(uint *)(lVar5 + -0x678) ^ DAT_182671680 ^ DAT_182671898;
  *(uint *)(lVar5 + -0x844) = uVar20;
  *(uint *)(lVar5 + -0x910) = uVar20 ^ uVar14 ^ DAT_182671818;
  bVar3 = (byte)DAT_182671808;
  pbVar13 = (byte *)(*(longlong *)(lVar5 - ((ulonglong)uVar15 ^ 0xe09ec175)) +
                    (CONCAT44(uVar24,uVar11) ^ 0xe55a1d261f613674));
  *(ulonglong *)(lVar5 + -0xd20) = (ulonglong)pbVar13 ^ (ulonglong)DAT_18267163c;
  bVar10 = *pbVar13 ^ (byte)DAT_182671694;
  *(byte *)(lVar5 + -0xc41) = bVar10 ^ bVar3;
  *(uint *)(lVar5 - (uVar12 ^ 0xfffffa33)) = bVar10 ^ DAT_182671800;
  *(uint *)(lVar5 + -0x344) = (uVar14 ^ *(uint *)(lVar5 + -0x910)) + uVar27 ^ uVar7;
  *(uint *)(lVar5 - (uVar19 ^ 0x367a1cb5)) =
       (*(uint *)(lVar5 + -0x5cc) ^ DAT_182671800) << (((byte)DAT_1826715b0 ^ 0x70) & 0x1f) ^
       DAT_1826718c4;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar31) * 4) = uVar1 ^ uVar18;
  return;
}



############ FUN_ 180e76e80 size=5858 ############

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

void FUN_180e76e80(void)

{
  undefined4 *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  byte bVar59;
  ulonglong uVar60;
  ulonglong *puVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  byte local_res18;
  byte local_res20;
  byte local_168;
  byte local_158;
  byte local_110;
  byte local_f0;
  
  uVar7 = DAT_1826715b0;
  uVar10 = DAT_1826715a4;
  uVar8 = DAT_182671590;
  uVar6 = DAT_182671574;
  uVar5 = DAT_182671570;
  lVar3 = DAT_182671560;
  uVar50 = (ulonglong)DAT_182671590;
  uVar33 = (ulonglong)DAT_182671570;
  uVar29 = (ulonglong)DAT_182671574;
  uVar60 = (ulonglong)DAT_182671578;
  uVar39 = (ulonglong)DAT_1826715b0;
  uVar43 = DAT_182671578 ^ DAT_1826715a4;
  uVar22 = ~DAT_1826715b0;
  uVar34 = (DAT_182671590 << 0x10 | DAT_182671590 & 0xff00) << 8 | DAT_182671590 >> 8 & 0xff00 |
           DAT_182671590 >> 0x18;
  uVar16 = DAT_182671570 & DAT_182671574;
  uVar27 = (ulonglong)uVar16;
  uVar17 = *(uint *)(&DAT_182611e70 + (uVar27 ^ 0x408020c4) + (longlong)DAT_182671918) ^
           DAT_182671570;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671918) ^ DAT_182671574;
  uVar32 = (ulonglong)uVar22;
  uVar62 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar53 = CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar40 = *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x280097a)) ^
           CONCAT44(DAT_1826715f4,DAT_1826715f4) |
           *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b0 ^ 0xfd7ff83d)) ^ uVar62;
  bVar59 = (byte)DAT_182671578;
  DAT_18267156c = uVar22;
  DAT_18267157c = uVar16;
  DAT_1826715a0 = uVar34;
  DAT_1826715ac = uVar43;
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar40 ^ uVar53;
  *(ulonglong *)(lVar3 + -0x9f8) = 0x7e0b844b15c2597c >> ((bVar59 ^ 3) & 0x3f);
  uVar9 = DAT_182671598;
  uVar51 = (ulonglong)DAT_182671598;
  uVar44 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar23 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar55 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar19 = ~DAT_182671598;
  *(ulonglong *)(lVar3 + -0x1d8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xccb0ee91)) ^ uVar44) -
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xc08)) ^ uVar55;
  uVar49 = (ulonglong)uVar19;
  uVar57 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar24 = CONCAT44(DAT_18267171c,DAT_18267171c);
  DAT_182671568 = uVar19;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xc2ff81d8)) ^ uVar55) -
       (*(ulonglong *)(DAT_182671560 - (uVar49 ^ 0x3d0077ff)) ^ uVar53) ^ uVar57;
  uVar11 = DAT_18267177c;
  uVar56 = CONCAT44(DAT_182671884,DAT_182671884);
  uVar53 = (ulonglong)uVar10;
  uVar36 = (ulonglong)DAT_18267177c;
  *(ulonglong *)(DAT_182671560 + -0x610) =
       uVar40 - (*(ulonglong *)(DAT_182671560 - (uVar49 ^ 0x3d00759f)) ^ uVar24) ^ uVar56;
  uVar12 = DAT_182671678;
  lVar3 = DAT_182671560;
  puVar41 = (ulonglong *)(DAT_182671560 - (uVar27 ^ 0x408021dc));
  uVar30 = CONCAT44(uVar11,uVar11);
  *puVar41 = (CONCAT44(uVar7,uVar6) ^ 0x7ae72a8852b3d312) -
             (CONCAT44(uVar19,uVar10) ^ 0xd4f66228c1b6a7b4);
  lVar4 = DAT_182671560;
  uVar54 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  puVar25 = (ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0x41e8b5dc));
  uVar40 = CONCAT44(DAT_182671608,DAT_182671608);
  uVar35 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar45 = CONCAT44(uVar12,uVar12) ^ uVar54 ^ uVar30 ^ *puVar25 ^
           *(ulonglong *)(DAT_182671560 + -0x688);
  puVar1 = (undefined4 *)(DAT_182671560 + -0x328);
  *(ulonglong *)(DAT_182671560 + -0x3b8) = uVar45;
  *(uint *)(lVar4 + -0x678) = (uVar9 ^ 0x7293180b) << ((byte)*puVar1 & 0x1f);
  uVar46 = (uVar45 >> 0x20 ^ uVar36) >> 1;
  *(ulonglong *)(lVar4 + -0x8a8) = uVar46 ^ uVar40;
  uVar13 = DAT_182671688;
  lVar3 = DAT_182671560;
  bVar28 = (byte)uVar43;
  uVar45 = (*(ulonglong *)(lVar4 - (uVar60 ^ 0xed741a8d)) ^ uVar30) << ((bVar28 ^ 0x48) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar45 ^ uVar35;
  uVar45 = uVar45 | uVar46;
  uVar52 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar42 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar45 ^ uVar52;
  uVar12 = DAT_182671628;
  uVar40 = (uVar54 ^ *(ulonglong *)(lVar3 + -0x688)) -
           (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0x5c8));
  *(ulonglong *)(lVar3 + -0x548) = uVar40 ^ uVar42;
  uVar46 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar40 - uVar45 ^ uVar46;
  lVar3 = DAT_182671560;
  uVar47 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(DAT_182671560 - (uVar49 ^ 0x3d0073f7)) =
       (CONCAT44(uVar16,uVar7) ^ 0xbf7fdf3302800288) -
       (CONCAT44(DAT_1826718b4,DAT_1826718b4) ^ *(ulonglong *)(DAT_182671560 + -0x240)) ^ uVar47;
  *(ulonglong *)(lVar3 - (uVar53 ^ 0x4d9c87b2)) =
       (CONCAT44(uVar8,uVar22) ^ 0xd8c373199cdb1eb9) - (CONCAT44(uVar5,uVar6) ^ 0x67aa56b98e844ebc);
  uVar12 = DAT_1826718cc;
  lVar3 = DAT_182671560;
  uVar40 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (*(ulonglong *)(DAT_182671560 - (uVar53 ^ 0x4d9c8d6a)) ^ uVar47) +
       (uVar52 ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) ^ uVar40;
  uVar48 = CONCAT44(uVar12,uVar12);
  puVar61 = (ulonglong *)(lVar3 - (uVar32 ^ 0x2800352));
  *(ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0x41e8b8cc)) =
       *puVar61 ^ uVar48 ^ uVar40 ^ uVar57 ^ *(ulonglong *)(lVar3 + -0x670);
  uVar7 = DAT_18267158c;
  uVar45 = (ulonglong)DAT_18267158c;
  uVar34 = (DAT_18267158c << 0x10 | DAT_18267158c & 0xff00) << 8 | DAT_18267158c >> 8 & 0xff00 |
           DAT_18267158c >> 0x18;
  uVar20 = uVar34 ^ 0x466bf8e5;
  uVar52 = (ulonglong)uVar20;
  bVar21 = (byte)DAT_18267158c;
  DAT_182671594 = uVar20;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x10080910)) =
       (*(ulonglong *)(lVar3 + -0x800) ^ uVar48) >> ((bVar21 ^ 5) & 0x3f) ^ uVar54;
  uVar40 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar52 ^ 0x4663f8f5)) ^ uVar48) << 0x3b ^ uVar40;
  uVar12 = DAT_1826718d0;
  uVar40 = *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x10080d10)) ^ uVar40 |
           uVar54 ^ *(ulonglong *)(lVar3 + -0x110);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar40 ^ uVar62;
  uVar63 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x270) = (uVar57 ^ *(ulonglong *)(lVar3 + -0x670)) - uVar40 ^ uVar63;
  *(int *)(lVar3 + -0x328) =
       *(int *)(lVar3 - ((ulonglong)uVar43 ^ 0xa0e898db)) >>
       ((byte)*(undefined4 *)(lVar3 - ((ulonglong)uVar20 ^ 0x4663f281)) & 0x1f);
  *(ulonglong *)(lVar3 + -0x8a8) =
       *(ulonglong *)(lVar3 + -0x9f8) ^ *(ulonglong *)(lVar3 + -0x610) ^ uVar46 ^ uVar30 ^ uVar56;
  uVar14 = DAT_182671768;
  lVar4 = DAT_182671560;
  puVar31 = (ulonglong *)(lVar3 - (uVar29 ^ 0x41e8b864));
  uVar48 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar3 - (uVar51 ^ 0xc2ff85c8)) = (*puVar31 >> 0x20 ^ uVar36) >> 5 ^ uVar48;
  uVar11 = DAT_1826715b4;
  uVar30 = (uVar30 ^ *(ulonglong *)(lVar3 + -0x8a8)) << 0x1b;
  uVar38 = (DAT_1826715b4 << 0x10 | DAT_1826715b4 & 0xff00) << 8 | DAT_1826715b4 >> 8 & 0xff00 |
           DAT_1826715b4 >> 0x18;
  DAT_182671580 = uVar38;
  *(ulonglong *)(lVar3 + -0x688) = uVar30 ^ CONCAT44(DAT_182671684,DAT_182671684);
  puVar26 = (ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xf400ea61));
  uVar58 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  puVar2 = (ulonglong *)(lVar4 + -0x6d0);
  uVar30 = uVar30 | uVar48 ^ *puVar26;
  uVar40 = uVar30 ^ uVar58;
  *(ulonglong *)(lVar4 + -0x548) = uVar40;
  uVar13 = DAT_1826716b4;
  *puVar2 = (*(ulonglong *)(lVar4 + -0x9f8) ^ uVar46) - uVar30 ^ uVar63;
  uVar12 = DAT_1826715ec;
  lVar3 = DAT_182671560;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar40 = *(ulonglong *)(lVar4 - ((ulonglong)uVar38 ^ 0xa9ef0284)) ^ uVar30 ^ uVar58 ^ uVar63 ^
           uVar40;
  *(ulonglong *)(lVar4 + -0xbf0) = uVar40;
  uVar54 = CONCAT44(uVar12,uVar12);
  bVar37 = (byte)(uVar11 >> 0x18);
  *(ulonglong *)(lVar3 + -0xc08) = (uVar40 ^ uVar30) >> ((bVar37 ^ 0xe3) & 0x3f) ^ uVar54;
  uVar46 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar38 ^ 0xa9ef012c)) = (uVar30 ^ uVar40) << 0x29 ^ uVar46;
  uVar12 = DAT_182671714;
  *(ulonglong *)(lVar3 + -0x800) =
       CONCAT44(uVar16,uVar34) ^ 0x9d456c218f2eae01 | CONCAT44(uVar11,uVar16) ^ 0x136f27c0e97f0f3e;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xfd7ffc65)) =
       (uVar46 ^ *puVar61 | uVar54 ^ *(ulonglong *)(lVar3 + -0xc08)) ^ uVar36;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xf400eab9)) =
       (uVar63 ^ *(ulonglong *)(lVar3 + -0x270)) - (uVar36 ^ *(ulonglong *)(lVar3 + -0x110)) ^
       uVar42;
  lVar4 = DAT_182671560;
  local_110 = (byte)uVar13;
  *(ulonglong *)(lVar3 - (uVar51 ^ 0xc2ff8670)) =
       (*(ulonglong *)(lVar3 - (uVar52 ^ 0x4663f5bd)) ^ uVar58) >>
       ((local_110 ^ *(byte *)(lVar3 + -0xbf0)) & 0x3f);
  uVar12 = _DAT_182671610;
  uVar40 = uVar63 ^ *puVar2 ^ *(ulonglong *)(lVar3 + -0x3b8);
  *(ulonglong *)(lVar3 + -0x610) = uVar40;
  uVar46 = CONCAT44(uVar12,uVar12);
  *puVar31 = (uVar40 ^ uVar62) >> ((bVar21 ^ 0x28) & 0x3f) ^ uVar46;
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (CONCAT44(uVar43,uVar7) ^ 0x42fa6ff45e5a2476) + 0x4c73e110240cf9e9;
  uVar40 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(lVar4 + -0x688) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar62) << ((bVar37 ^ 0xec) & 0x3f) ^ uVar40;
  *(uint *)(lVar4 + -0x678) = uVar38 ^ 0x64c3573d | DAT_182671578 ^ 0x77bef197;
  puVar61 = (ulonglong *)(lVar4 - (uVar51 ^ 0xc2ff8688));
  uVar54 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar4 - (uVar53 ^ 0x4d9c889a)) =
       (*(ulonglong *)(lVar4 - (uVar50 ^ 0xccb0e0e9)) ^ uVar46 | uVar40 ^ *puVar61) ^ uVar54;
  uVar13 = DAT_1826717dc;
  *(ulonglong *)(lVar4 + -0x800) = uVar46 ^ *(ulonglong *)(lVar4 + -0x8a8) | 0xe424a8d5a943beea;
  uVar12 = DAT_182671670;
  lVar3 = DAT_182671560;
  uVar46 = CONCAT44(uVar13,uVar13);
  local_res20 = (byte)uVar22;
  *(ulonglong *)(lVar4 + -0xc08) =
       (*(ulonglong *)(lVar4 - (uVar49 ^ 0x3d00792f)) ^ uVar63) -
       (*(ulonglong *)(lVar4 - (uVar50 ^ 0xccb0e1b9)) ^ uVar54) ^ uVar46;
  uVar13 = DAT_182671770;
  uVar62 = CONCAT44(uVar12,uVar12);
  uVar57 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar40 = uVar62 ^ uVar54 ^ *(ulonglong *)(lVar3 + -0x9f8) ^ *(ulonglong *)(lVar3 + -0x510) ^
           uVar42;
  *(ulonglong *)(lVar3 + -0x1d8) = uVar40;
  lVar4 = DAT_182671560;
  uVar40 = uVar40 ^ uVar62;
  uVar56 = uVar40 >> ((local_res20 ^ 0xbe) & 0x3f);
  *(ulonglong *)(lVar3 + -0x270) = uVar56 ^ uVar57;
  uVar54 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x548) = uVar40 << (((byte)uVar11 ^ 0xa5) & 0x3f) ^ uVar54;
  *(ulonglong *)(lVar4 - (uVar52 ^ 0x4663fb05)) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0xf4812685)) ^ uVar54 | uVar56) ^ uVar58;
  uVar52 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar54 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(lVar4 + -0x670) =
       (*(ulonglong *)(lVar4 + -0x510) ^ uVar42) - (uVar58 ^ *(ulonglong *)(lVar4 + -0xbf0)) ^
       uVar52;
  uVar7 = DAT_18267159c;
  lVar3 = DAT_182671560;
  uVar57 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x40802374)) =
       uVar46 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x110) ^ *(ulonglong *)(lVar4 + -0xc08) ^ uVar54;
  uVar13 = DAT_1826718a0;
  uVar40 = *(ulonglong *)(lVar3 + -0x3b8);
  *(ulonglong *)(lVar4 + -0x5c8) =
       CONCAT44(DAT_182671730,DAT_182671730) ^
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x70) ^ uVar23);
  uVar12 = DAT_182671740;
  uVar56 = (*(ulonglong *)(lVar4 + -0x3b8) ^ uVar54) >> ((bVar28 ^ 0x6e) & 0x3f);
  local_168 = (byte)uVar19;
  *(ulonglong *)(lVar3 + -0x610) = uVar56 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_18267181c;
  uVar40 = (uVar40 ^ uVar54) << ((local_168 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar3 + -0x688) = uVar40 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_1826717e4;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar56 = uVar56 | uVar40;
  *(ulonglong *)(lVar3 + -0x800) = uVar56 ^ uVar23;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar57 ^ 0x4e5130a)) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0xc08)) - uVar56 ^ uVar36;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x10080ed0)) =
       *(ulonglong *)(lVar3 - (uVar53 ^ 0x4d9c8962)) ^ *(ulonglong *)(lVar3 - (uVar32 ^ 0x28004fa))
       ^ uVar35 ^ uVar23 ^ uVar52;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x41e8b934)) =
       (*(ulonglong *)(lVar4 + -0x670) ^ uVar52) << ((bVar28 ^ 0x7f) & 0x3f);
  uVar23 = (*puVar2 ^ uVar35) >> (((byte)uVar20 ^ 0xfb) & 0x3f);
  local_158 = (byte)uVar10;
  uVar35 = (*puVar2 ^ uVar35) << ((local_158 ^ 0x50) & 0x3f);
  uVar40 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar4 + -0x1d8) = uVar23 ^ CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar4 + -0x270) = uVar35 ^ uVar40;
  *(ulonglong *)(lVar4 + -0x548) =
       (*(ulonglong *)(lVar4 + -0x670) ^ uVar52) << (((byte)uVar6 ^ 0xc9) & 0x3f);
  uVar12 = DAT_1826715bc;
  uVar46 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar4 + -0x510) = (uVar35 | uVar23) ^ uVar46;
  puVar31 = (ulonglong *)(lVar4 + -0x400);
  uVar40 = CONCAT44(uVar12,uVar12);
  *puVar41 = (*(ulonglong *)(lVar4 + -0x670) ^ uVar52) - (uVar48 ^ *puVar31) ^ uVar40;
  uVar23 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *puVar26 = (*(ulonglong *)(lVar4 + -0x110) ^ uVar40) - (*puVar25 ^ uVar46) ^ uVar23;
  uVar35 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x2800132)) =
       (*(ulonglong *)(lVar4 + -0x510) ^ uVar46) - (*(ulonglong *)(lVar4 + -0x748) ^ uVar30) ^
       uVar35;
  uVar46 = CONCAT44(DAT_182671820,DAT_182671820);
  uVar40 = uVar58 ^ *(ulonglong *)(lVar4 + -0xbf0) ^ uVar46 ^ uVar36 ^
           *(ulonglong *)(lVar4 + -0x8a8);
  *(ulonglong *)(lVar4 + -0x610) = uVar40;
  *(ulonglong *)(lVar4 - (uVar49 ^ 0x3d007977)) =
       (uVar40 ^ uVar46) >> (((byte)uVar7 ^ 0xb2) & 0x3f) ^ uVar62;
  uVar12 = DAT_182671614;
  *(ulonglong *)(lVar4 + -0xc08) =
       *(ulonglong *)(lVar4 - (uVar53 ^ 0x4d9c87ea)) ^ uVar62 |
       CONCAT44(uVar16,uVar16) ^ 0x6a59bf810f491f83;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar40 = (*(ulonglong *)(lVar4 + -0x610) ^ uVar46) << ((bVar21 ^ 0x30) & 0x3f);
  *(ulonglong *)(lVar4 + -0x800) = uVar40 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x9f8) = (uVar62 ^ *(ulonglong *)(lVar4 + -0x688) | uVar40) ^ uVar32;
  uVar13 = DAT_182671648;
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xf481251d)) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x8a8)) -
       (*(ulonglong *)(lVar4 - (uVar60 ^ 0xed741355)) ^ uVar24) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x548) =
       (CONCAT44(uVar38,uVar19) ^ 0xacfe25a15fdcdf7b) + 0x440789a7dba75fab;
  *(ulonglong *)(lVar4 + -0x1d8) =
       (uVar30 ^ *puVar2) - (*(ulonglong *)(lVar4 - (uVar39 ^ 0xfd7ff48d)) ^ uVar32) ^ uVar55;
  uVar15 = DAT_1826717d0;
  uVar40 = -(*(ulonglong *)(lVar4 - ((ulonglong)uVar38 ^ 0xa9ef0254)) ^ CONCAT44(uVar13,uVar13)) - 2
  ;
  *(ulonglong *)(lVar4 + -0x270) = uVar40 ^ CONCAT44(DAT_1826715c8,DAT_1826715c8);
  uVar49 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar50 ^ 0xccb0ec41)) =
       uVar40 + (*(ulonglong *)(lVar4 + -0x9f8) ^ uVar32) ^ uVar49;
  lVar3 = DAT_182671560;
  uVar53 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar49 = *(ulonglong *)(DAT_182671560 - (uVar51 ^ 0xc2ff8400)) ^ uVar53 ^ uVar49 ^ uVar23 ^
           *(ulonglong *)(DAT_182671560 + -0x5c8);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar49;
  uVar32 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar3 + -0x110) = (uVar49 ^ uVar53) >> ((local_res20 ^ 0xaa) & 0x3f) ^ uVar32;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (CONCAT44(uVar34,uVar9) ^ 0x39dc81eb37f91d8d) >>
       ((*(byte *)(DAT_182671560 + -0x9f8) ^ (byte)uVar12) & 0x3f);
  uVar40 = CONCAT44(uVar11,DAT_1826715a8);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x41e8bb3c)) = (uVar49 ^ uVar53) << 0x20 ^ uVar42;
  *(ulonglong *)(lVar3 - (uVar57 ^ 0x4e517aa)) =
       (*(ulonglong *)(lVar3 - (uVar50 ^ 0xccb0e3b1)) ^ uVar42 |
       *(ulonglong *)(lVar3 + -0x110) ^ uVar32) ^ uVar47;
  *(ulonglong *)(lVar3 - (uVar60 ^ 0xed741f25)) = uVar40 ^ 0x434840603d201c8 | 0x70c04af96c25f812;
  uVar6 = DAT_182671874;
  uVar32 = (ulonglong)DAT_182671874;
  uVar24 = (*puVar26 ^ uVar23) - (*(ulonglong *)(lVar3 - (uVar51 ^ 0xc2ff8c08)) ^ uVar47) ^ uVar44;
  *(ulonglong *)(lVar3 + -0x688) = uVar24;
  uVar12 = DAT_1826715c0;
  uVar49 = CONCAT44(uVar6,uVar6);
  local_f0 = (byte)uVar5;
  uVar35 = *(ulonglong *)(lVar3 - (uVar39 ^ 0xfd7ffecd)) ^ uVar55 ^ *(ulonglong *)(lVar3 + -0x1d8) ^
           uVar49 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x800) = uVar35;
  uVar40 = *puVar2;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xa60) = uVar35 >> 0x20 ^ uVar23 ^ uVar32;
  bVar21 = (byte)(uVar8 >> 0x18);
  uVar53 = CONCAT44(DAT_182671650,DAT_182671650);
  uVar32 = (uVar35 ^ uVar49) << ((local_f0 ^ 0xed) & 0x3f);
  *(ulonglong *)(lVar3 + -0x8a8) = (uVar30 ^ uVar40) >> ((bVar21 ^ 0xce) & 0x3f);
  *(ulonglong *)(lVar3 + -0x548) = uVar32 ^ uVar53;
  *(ulonglong *)(lVar3 + -0x2a0) =
       (CONCAT44(uVar38,uVar16) ^ 0x3695282dfbedde5a) << ((local_168 ^ 0xf6) & 0x3f);
  uVar32 = *(ulonglong *)(lVar3 - (uVar29 ^ 0x41e8baac)) ^ uVar23 | uVar32;
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar32 ^ uVar48;
  uVar12 = DAT_1826717fc;
  *puVar31 = 0x4f099e27d293ac3f << (((byte)uVar14 ^ (byte)(uVar32 ^ uVar48)) & 0x3f);
  lVar3 = DAT_182671560;
  uVar49 = CONCAT44(uVar12,uVar12);
  uVar40 = (uVar55 ^ *(ulonglong *)(DAT_182671560 + -0x1d8)) - uVar32 ^ uVar49;
  uVar53 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar40;
  uVar24 = uVar32 ^ uVar44 ^ uVar24;
  uVar30 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar24 ^ uVar53;
  uVar12 = DAT_18267160c;
  lVar4 = DAT_182671560;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0x40802934)) ^ uVar53) >> ((bVar59 ^ 0xf) & 0x3f);
  *(ulonglong *)(lVar3 + -0x670) = uVar23 ^ uVar30;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar53 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar4 + -0x110) = uVar24 << ((bVar21 ^ 0xca) & 0x3f) ^ uVar27;
  uVar13 = DAT_182671790;
  *(ulonglong *)(lVar4 + -0xbf0) =
       (*(ulonglong *)(lVar4 - (uVar60 ^ 0xed741825)) ^ uVar27 | uVar23) ^ uVar53;
  local_res18 = (byte)uVar16;
  *(ulonglong *)(lVar4 + -0x610) = uVar32 << ((local_res18 ^ 0xf5) & 0x3f);
  uVar12 = DAT_1826716c8;
  *(ulonglong *)(lVar4 + -0x5c8) =
       (uVar44 ^ *puVar61) - (*(ulonglong *)(lVar4 - (uVar45 ^ 0x100803f0)) ^ uVar53) ^
       CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x41e8b374)) =
       CONCAT44(uVar12,uVar12) ^ uVar40 ^ uVar47 ^ uVar49 ^ *(ulonglong *)(lVar4 + -0xc08);
  *puVar2 = *puVar31 | 0x7543a0620bf554f8;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar17;
  return;
}



############ FUN_ 180f076f0 size=5559 ############

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

void FUN_180f076f0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  byte bVar14;
  ulonglong *puVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  uint uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  
  uVar7 = DAT_182671848;
  uVar6 = _DAT_182671838;
  uVar9 = DAT_1826715a0;
  uVar8 = DAT_182671588;
  uVar17 = DAT_182671584;
  uVar5 = DAT_182671580;
  lVar3 = DAT_182671560;
  uVar39 = (ulonglong)DAT_1826715a0;
  uVar35 = (ulonglong)DAT_182671584;
  uVar30 = (ulonglong)DAT_182671588;
  uVar25 = (ulonglong)DAT_182671580;
  uVar42 = DAT_182671588 + DAT_182671580;
  uVar31 = (DAT_182671584 << 0x10 | DAT_182671584 & 0xff00) << 8 | DAT_182671584 >> 8 & 0xff00 |
           DAT_182671584 >> 0x18;
  uVar16 = (DAT_1826715a0 << 0x10 | DAT_1826715a0 & 0xff00) << 8 | DAT_1826715a0 >> 8 & 0xff00 |
           DAT_1826715a0 >> 0x18;
  uVar44 = (ulonglong)uVar16;
  uVar11 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar16 ^ 0x1e760dd0) + (longlong)DAT_1826718f8) ^
           DAT_1826715a0;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_1826718f8);
  uVar27 = (ulonglong)DAT_182671584;
  uVar20 = (ulonglong)uVar31;
  bVar13 = (byte)(DAT_182671584 >> 0x18);
  uVar18 = (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xf010c16d)) ^
           CONCAT44(DAT_1826717dc,DAT_1826717dc)) >> ((bVar13 ^ 0xef) & 0x3f);
  DAT_18267156c = uVar42;
  DAT_18267157c = uVar31;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar18 ^ CONCAT44(DAT_182671638,DAT_182671638);
  uVar32 = CONCAT44(uVar7,uVar7);
  uVar26 = (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0x610) | uVar18) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x670) = uVar26;
  *(ulonglong *)(lVar3 + -0x3f0) = (CONCAT44(uVar17,uVar31) ^ 0xc1bba277be74d85c) + uVar18;
  uVar19 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  uVar22 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar18 = *(ulonglong *)(lVar3 + -0x748) ^ uVar26 ^ uVar22 ^ uVar19 ^ uVar32;
  uVar37 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar3 + -0x318) = uVar18;
  uVar6 = DAT_182671630;
  uVar19 = (CONCAT44(uVar5,uVar17) ^ 0x541b4800296cedd9) + (uVar18 ^ uVar19);
  puVar1 = (ulonglong *)(lVar3 + -0x638);
  *puVar1 = uVar19 ^ uVar37;
  uVar26 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0x438)) ^ uVar26;
  uVar28 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar18 = (CONCAT44(uVar16,uVar17) ^ 0x37e5587008f8b91c) +
           (uVar28 ^ *(ulonglong *)(lVar3 + -0x110));
  puVar29 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar42 ^ 0xe3629ce4));
  *(ulonglong *)(lVar3 + -0x898) = uVar18 ^ CONCAT44(DAT_182671668,DAT_182671668);
  lVar3 = DAT_182671560;
  uVar45 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  bVar14 = (byte)uVar42;
  *(ulonglong *)(DAT_182671560 + -0x548) = (uVar37 ^ *puVar29) + uVar18 ^ uVar45;
  uVar6 = DAT_182671788;
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar3 + -0x5c8) = uVar19 << ((bVar14 ^ 0xd2) & 0x3f) ^ uVar33;
  uVar19 = CONCAT44(uVar6,uVar6);
  bVar36 = (byte)uVar5;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xcf3bcb3b)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xd80d7026)) ^ uVar37) >>
       ((bVar36 ^ 0x5f) & 0x3f) ^ uVar19;
  uVar6 = DAT_1826718ac;
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - (uVar44 ^ 0x1e7609d8)) ^ uVar19) + 0x9a44a519b187615e;
  uVar12 = DAT_182671700;
  uVar18 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x3bcf3237)) =
       (*(ulonglong *)(lVar4 + -0x5c8) ^ uVar33 | uVar19 ^ *(ulonglong *)(lVar4 + -0x400)) ^ uVar18;
  uVar6 = DAT_1826717d4;
  lVar3 = DAT_182671560;
  uVar40 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(lVar4 + -0x3f0) =
       *(ulonglong *)(lVar4 - (uVar25 ^ 0xf010c025)) ^ uVar40 ^ uVar18 ^ uVar45 ^
       *(ulonglong *)(lVar4 + -0x9f8);
  uVar7 = DAT_182671780;
  uVar18 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0x270)) +
       (CONCAT44(uVar8,uVar5) ^ 0xd3ac5ca274dbb559) ^ uVar18;
  uVar6 = DAT_182671698;
  lVar4 = DAT_182671560;
  uVar22 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar31 ^ 0x3bcf3c87)) ^ uVar22) +
           (CONCAT44(uVar42,uVar9) ^ 0x557f7707dc258c6);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar22 ^ CONCAT44(uVar7,uVar7);
  lVar3 = DAT_182671560;
  uVar19 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xf010c3d5)) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xcf3bc94b)) ^ uVar18) + uVar22 ^ uVar19;
  uVar6 = DAT_182671680;
  lVar4 = DAT_182671560;
  puVar15 = (ulonglong *)(lVar3 - (uVar44 ^ 0x1e760ba8));
  puVar21 = (ulonglong *)(DAT_182671560 + -0x670);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (uVar18 ^ *puVar15) << (((byte)uVar7 ^ *(byte *)(DAT_182671560 + -0x318)) & 0x3f);
  uVar18 = (uVar18 ^ *puVar21) << ((bVar36 ^ 0x7d) & 0x3f);
  uVar22 = CONCAT44(uVar6,uVar6);
  *(uint *)(lVar4 + -0x3c8) = (uVar42 ^ 0xd5bde9b) + *(int *)(lVar4 + -0x504);
  uVar6 = DAT_182671768;
  *(ulonglong *)(lVar4 + -0x898) = uVar18 ^ uVar22;
  uVar33 = CONCAT44(uVar6,uVar6);
  *puVar1 = (ulonglong)*(ushort *)(lVar4 + -0x66a) ^ (ulonglong)(uVar12 >> 0x10) ^ uVar33;
  uVar6 = DAT_1826718a0;
  *(ulonglong *)(lVar4 + -0x610) =
       CONCAT44(uVar5,uVar16) ^ 0x9e67b93c53175233 | uVar19 ^ *(ulonglong *)(lVar4 + -0x6b8);
  lVar3 = DAT_182671560;
  uVar37 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar42 ^ 0xe3629f14)) =
       (*(ulonglong *)(DAT_182671560 - (uVar35 ^ 0xcf3bc903)) ^ uVar33 | uVar18) ^ uVar37;
  uVar27 = CONCAT44(DAT_182671840,DAT_182671840);
  puVar43 = (ulonglong *)(lVar3 - (uVar44 ^ 0x1e760b60));
  uVar18 = *(ulonglong *)(lVar3 + -0x5c8) ^ uVar27 ^ uVar37 ^ uVar19 ^ *puVar43;
  uVar33 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar3 + -0x400) = uVar18;
  uVar6 = DAT_182671820;
  *(ulonglong *)(lVar3 + -0x9f8) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0xd80d7356)) ^ uVar45) + (uVar18 ^ uVar27) ^ uVar33;
  uVar45 = CONCAT44(uVar6,uVar6);
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)uVar42 ^ 0xe36298ac));
  *puVar23 = (uVar27 ^ uVar18) << ((bVar13 ^ 0xfb) & 0x3f) ^ uVar45;
  uVar18 = (*(ulonglong *)(lVar3 - (uVar39 ^ 0xd80d721e)) ^ uVar27) >>
           (((byte)uVar17 ^ 0x37) & 0x3f);
  uVar37 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar3 + -0x748) = uVar18 ^ CONCAT44(DAT_182671864,DAT_182671864);
  uVar18 = (*(ulonglong *)(lVar3 + -0x270) ^ uVar45 | uVar18) ^ uVar37;
  uVar47 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar3 + -0x318) = uVar18;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xf010c47d)) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0xf351dc97)) ^ uVar47 ^ uVar37 ^ uVar33 ^ uVar18;
  uVar46 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x3bcf3dbf)) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xf351d69f)) ^ uVar40) +
       (uVar19 ^ *(ulonglong *)(lVar4 + -0x6b8)) ^ uVar46;
  bVar24 = (byte)(uVar9 >> 0x18);
  uVar34 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xf010c37d)) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x3f0)) << ((bVar24 ^ 0xe1) & 0x3f) ^ uVar34;
  uVar19 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *puVar1 = (uVar40 ^ *(ulonglong *)(lVar4 + -0x3f0)) >> ((bVar24 ^ 0xdf) & 0x3f) ^ uVar19;
  uVar18 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar12 = DAT_1826715a0 ^ 0xbd15a31;
  *(ulonglong *)(lVar4 + -0x898) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xf351d357)) ^ uVar19 |
       *(ulonglong *)(lVar4 - (uVar39 ^ 0xd80d700e)) ^ uVar34) ^ uVar18;
  *(uint *)(lVar4 + -0x344) = uVar12 * *(int *)(lVar4 + -0x274);
  uVar37 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  *(ulonglong *)(lVar4 + -0x5c8) =
       *(ulonglong *)(lVar4 - (uVar35 ^ 0xcf3bc7a3)) ^ uVar37 ^ uVar18 ^ uVar46 ^
       *(ulonglong *)(lVar4 + -0x670);
  uVar12 = DAT_18267183c;
  puVar21 = (ulonglong *)(lVar4 - (uVar20 ^ 0x3bcf3df7));
  *(ulonglong *)(lVar4 + -0x548) = uVar19 ^ *puVar21 ^ 0xae506cbe1969dddc;
  uVar19 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x400) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xf010c0a5)) ^ uVar37) +
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x9f8)) ^ uVar19;
  puVar41 = (ulonglong *)(lVar4 - (uVar30 ^ 0xf351d16f));
  *puVar23 = (CONCAT44(uVar42,uVar42) ^ 0x44f18e80e005aa9c) >>
             (((byte)uVar12 ^ (byte)*puVar41) & 0x3f);
  uVar12 = DAT_182671884;
  uVar7 = DAT_18267185c;
  lVar3 = DAT_182671560;
  uVar20 = (ulonglong)DAT_182671884;
  uVar33 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xf351d227)) =
       (*(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xd80d73d6)) ^ uVar37) << 0x17 ^ uVar33;
  uVar6 = DAT_182671654;
  uVar45 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x5c8)) >> ((bVar14 ^ 0xf5) & 0x3f);
  *(ulonglong *)(lVar3 + -0x318) = uVar45 ^ CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar37 = CONCAT44(uVar6,uVar6);
  uVar18 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xcf3bc983)) =
       (uVar45 | uVar33 ^ *(ulonglong *)(lVar3 + -0x748)) ^ uVar37;
  *(uint *)(lVar3 + -0x774) = (DAT_18267156c ^ 0x6db224ef) + *(int *)(lVar3 + -0x8c);
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0xeff8fd85)) =
       uVar33 ^ uVar37 ^ uVar19 ^ *(ulonglong *)(lVar3 + -0x400) ^ *(ulonglong *)(lVar3 + -0x6b8);
  uVar38 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(lVar3 + -0x610) =
       (CONCAT44(uVar9,uVar5) ^ 0x6d72c28fe05f877e) <<
       (((byte)uVar7 ^ *(byte *)(lVar3 + -0x748)) & 0x3f);
  uVar45 = uVar47 ^ *(ulonglong *)(lVar3 + -0x110);
  uVar37 = CONCAT44(DAT_182671828,DAT_182671828);
  *(ulonglong *)(lVar3 + -0x898) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0xd80d770e)) ^ uVar47) +
       (uVar46 ^ *(ulonglong *)(lVar3 + -0x670)) ^ uVar38;
  *puVar1 = uVar45 << 0x28 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x548) = CONCAT44(uVar42,uVar31) ^ 0xbeef3dbbfedbc6ff | 0x1cab3912fecac44f
  ;
  uVar18 = CONCAT44(DAT_182671784,DAT_182671784);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar42 ^ 0xe3629324)) = uVar45 >> (bVar24 & 0x3f) ^ uVar18;
  lVar3 = DAT_182671560;
  uVar45 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xf010c71d)) =
       (uVar18 ^ *(ulonglong *)(DAT_182671560 + -0x9f8) | uVar37 ^ *puVar1) ^ uVar45;
  uVar18 = uVar38 ^ *(ulonglong *)(lVar3 + -0x270) ^ *(ulonglong *)(lVar3 + -0x898);
  *(ulonglong *)(lVar3 + -0x5c8) = uVar18;
  *(ulonglong *)(lVar3 + -0x318) =
       (uVar18 ^ uVar45) + (uVar19 ^ *(ulonglong *)(lVar3 + -0x400)) ^ uVar26;
  uVar7 = DAT_182671854;
  uVar37 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *puVar43 = (uVar18 ^ uVar45) << ((bVar13 ^ 0xca) & 0x3f) ^ uVar37;
  uVar6 = DAT_18267174c;
  uVar5 = DAT_182671570;
  lVar3 = DAT_182671560;
  uVar19 = CONCAT44(uVar7,uVar7);
  uVar37 = uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x6b8);
  uVar18 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 + -0x748) =
       (uVar45 ^ *(ulonglong *)(DAT_182671560 + -0x5c8)) >> ((bVar14 ^ 0xe7) & 0x3f) ^ uVar19;
  lVar4 = DAT_182671560;
  uVar46 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x8119c87b)) ^ uVar19 | uVar37) ^ uVar46;
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xf351d31f)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x33cf1a71)) ^ uVar33) >> ((byte)uVar37 & 0x3f);
  uVar18 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar4 + -0x548) =
       uVar18 ^ uVar46 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x610) ^ *(ulonglong *)(lVar4 + -0x318);
  uVar6 = DAT_18267166c;
  uVar40 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar4 + -0x110) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x898)) + (uVar33 ^ *(ulonglong *)(lVar4 + -0x3f0)) ^
       uVar40;
  uVar45 = CONCAT44(uVar6,uVar6);
  *puVar21 = (*(ulonglong *)(lVar4 - (uVar35 ^ 0xcf3bcccb)) ^ uVar33) << ((bVar36 ^ 0x48) & 0x3f) ^
             uVar45;
  uVar10 = DAT_182671808;
  uVar7 = DAT_182671578;
  lVar3 = DAT_182671560;
  uVar35 = (ulonglong)DAT_18267159c;
  uVar19 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar33 = ((ulonglong)(uVar12 >> 0x1b) | uVar20 << 5) ^
           *(ulonglong *)(DAT_182671560 + -0x3f0) >> 0x1b;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar33 ^ uVar19;
  uVar6 = DAT_182671800;
  uVar20 = CONCAT44(uVar10,uVar10);
  uVar37 = (uVar33 | uVar45 ^ *puVar1) ^ uVar20;
  *(ulonglong *)(lVar3 + -0x270) = uVar37;
  uVar30 = CONCAT44(uVar6,uVar6);
  uVar33 = CONCAT44(DAT_1826715b0,uVar17);
  *puVar41 = *(ulonglong *)(lVar3 - (uVar35 ^ 0x48e00940)) ^ uVar30 ^ uVar20 ^ uVar40 ^ uVar37;
  uVar37 = (ulonglong)DAT_1826716b0;
  uVar35 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  *(ulonglong *)(lVar3 - (uVar44 ^ 0x1e760810)) =
       (uVar33 ^ 0x41404eb2e02fb3b3) >> (((byte)uVar5 ^ 0xa5) & 0x3f);
  uVar20 = (ulonglong)DAT_18267158c;
  uVar30 = (*(ulonglong *)(lVar3 - (uVar20 ^ 0x8119cb33)) ^ uVar30) +
           (CONCAT44(DAT_18267158c,uVar17) ^ 0x672ca29f6af4e1e3);
  *(ulonglong *)(lVar3 + -0x748) = uVar30 ^ uVar35;
  uVar6 = DAT_18267189c;
  uVar5 = DAT_182671598;
  uVar33 = (ulonglong)DAT_182671598;
  uVar44 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0x8119cc2b)) ^ uVar26) +
       (CONCAT44(uVar42,uVar7) ^ 0x9ee74880f1dd16f7) ^ uVar32;
  uVar38 = CONCAT44(uVar6,uVar6);
  uVar26 = (ulonglong)DAT_18267183c;
  *(ulonglong *)(lVar3 + -0x670) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0x2116e9b3)) ^ uVar35) +
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xfffff947)) ^ uVar32) ^ uVar38;
  uVar10 = _DAT_18267188c;
  *(byte *)(lVar3 + -0xa72) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x1f8) ^ uVar26) ^ (byte)DAT_1826717c0;
  uVar6 = DAT_1826716d8;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x898) = uVar30 * 0x2000000 ^ uVar20;
  uVar31 = DAT_1826715b4;
  lVar3 = DAT_182671560;
  uVar33 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar26 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x37fdac27)) >> 0x20 ^ uVar37
           ) >> 7;
  puVar21 = (ulonglong *)(DAT_182671560 - (uVar44 ^ 0xfe75e760));
  *(ulonglong *)(DAT_182671560 + -0x3f0) = uVar26 ^ CONCAT44(uVar6,uVar6);
  uVar16 = DAT_1826715b0;
  uVar37 = (ulonglong)DAT_1826715b0;
  uVar26 = (*puVar21 ^ uVar20 | uVar26) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar26;
  uVar10 = DAT_1826715f4;
  *(ulonglong *)(lVar3 + -0x270) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0x610)) -
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0xeff8f84d)) ^ uVar45);
  uVar12 = DAT_1826715a8;
  uVar6 = DAT_182671574;
  lVar4 = DAT_182671560;
  uVar20 = (ulonglong)DAT_1826715a8;
  uVar30 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar31 ^ 0x37fdaea7)) =
       *puVar15 ^ uVar26 ^ uVar30 ^ uVar33 ^ uVar38;
  uVar26 = (ulonglong)DAT_1826715ac;
  uVar33 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar4 + -0x400) =
       (CONCAT44(DAT_1826715ac,uVar6) ^ 0x4c1b2f2aa5980eef) +
       (uVar18 ^ *(ulonglong *)(lVar4 + -0x548)) ^ uVar33;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x8504bf8)) =
       (CONCAT44(uVar5,uVar16) ^ 0x69333760fac628d8) >> (((byte)uVar7 ^ 0xf5) & 0x3f);
  uVar18 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *(ulonglong *)(lVar4 + -0x6b8) =
       (CONCAT44(uVar8,uVar31) ^ 0x4e121f0f0136b4ce) + (uVar40 ^ *(ulonglong *)(lVar4 + -0x110)) ^
       uVar18;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0xd80d7156)) = (uVar45 ^ *puVar1) << 0x30;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xf010cdf5)) =
       (*(ulonglong *)(lVar4 - (uVar20 ^ 0x8119cb33)) ^ uVar33) +
       (uVar18 ^ *(ulonglong *)(lVar4 + -0x6b8)) ^ uVar27;
  uVar7 = DAT_1826718c4;
  uVar18 = (*(ulonglong *)(lVar4 + -0x400) ^ uVar33) >> (((byte)uVar17 ^ 0x24) & 0x3f);
  uVar20 = CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar26 = (*(ulonglong *)(lVar4 + -0x400) ^ uVar33) << 0x21;
  *(ulonglong *)(lVar4 + -0x610) = uVar18 ^ uVar28;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x3f0) = uVar26 ^ uVar20;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar4 - (uVar44 ^ 0xfe75ed88)) = (uVar18 | uVar26) ^ uVar33;
  uVar39 = CONCAT44(DAT_182671770,DAT_182671770);
  uVar18 = *(ulonglong *)(lVar4 + -0x270) ^ uVar27 ^ *(ulonglong *)(lVar4 + -0x898) ^ uVar39 ^
           uVar33;
  *(ulonglong *)(lVar4 + -0x9f8) = uVar18;
  *(ulonglong *)(lVar4 + -0x548) = (*(ulonglong *)(lVar4 + -0x270) ^ uVar33) + 0x780463adde08e36d;
  uVar7 = DAT_182671888;
  uVar26 = CONCAT44(DAT_18267186c,DAT_18267186c);
  *(ulonglong *)(lVar4 + -0x318) =
       (uVar18 ^ uVar39) + (*(ulonglong *)(lVar4 + -0x670) ^ uVar38) ^ uVar26;
  uVar5 = DAT_182671568;
  uVar20 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671570 ^ 0x33cf1891)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671568 ^ 0x2116e703)) ^ uVar39) <<
       (((byte)uVar6 ^ 0xd6) & 0x3f) ^ uVar20;
  uVar18 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *puVar29 = (*(ulonglong *)(lVar3 + -0x9f8) ^ uVar39) >> (((byte)uVar9 ^ 0xc) & 0x3f) ^ uVar18;
  uVar17 = DAT_182671568 | DAT_1826715a8;
  uVar33 = CONCAT44(DAT_182671830,DAT_182671830);
  uVar39 = *puVar1 ^ uVar18 | *(ulonglong *)(lVar3 + -0x110) ^ uVar20;
  uVar37 = uVar39 ^ uVar33;
  uVar18 = CONCAT44(DAT_182671754,DAT_182671754);
  DAT_1826715a4 = uVar17;
  *(ulonglong *)(lVar3 + -0x748) = uVar37;
  uVar20 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar3 + -0x6b8) =
       uVar18 ^ *(ulonglong *)(lVar3 + -0x318) ^ uVar37 ^ uVar33 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x400) =
       (*(ulonglong *)(lVar3 + -0x5c8) ^ uVar30) + (uVar27 ^ *(ulonglong *)(lVar3 + -0x898)) ^
       uVar20;
  *(ulonglong *)(lVar3 + -0x3f0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x8119cafb)) ^ uVar30) <<
       (((byte)uVar17 ^ 0xf7) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xa11fe9eb)) =
       uVar39 | CONCAT44(uVar5,uVar12) ^ 0xe372f27652c61e90;
  uVar18 = (*(ulonglong *)(lVar3 + -0x5c8) ^ uVar30) >> (((byte)uVar12 ^ 7) & 0x3f);
  *(ulonglong *)(lVar3 + -0x270) = uVar18 ^ CONCAT44(DAT_182671684,DAT_182671684);
  uVar6 = DAT_182671878;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xa11feab3)) =
       (uVar18 | uVar22 ^ *(ulonglong *)(lVar3 + -0x3f0)) ^ uVar34;
  uVar18 = CONCAT44(DAT_182671658,DAT_182671658);
  uVar22 = uVar34 ^ uVar18 ^ *(ulonglong *)(lVar3 + -0x400) ^ uVar20 ^
           *(ulonglong *)(lVar3 + -0x548);
  *(ulonglong *)(lVar3 + -0x670) = uVar22;
  *(ulonglong *)(lVar3 + -0x9f8) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar26) + (uVar22 ^ uVar18) ^ CONCAT44(uVar6,uVar6);
  *puVar1 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xa11fe98b)) ^ uVar18) <<
            (((byte)uVar12 ^ 9) & 0x3f) ^ uVar19;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar42) * 4) = uVar11;
  return;
}



############ FUN_ 180e6b6f0 size=4722 ############

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

void FUN_180e6b6f0(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  byte bVar22;
  uint uVar23;
  ulonglong uVar24;
  byte *pbVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  byte bVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  byte bVar34;
  ulonglong uVar35;
  byte *pbVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res20;
  byte local_e0;
  byte local_50;
  
  uVar13 = DAT_1826715b4;
  uVar12 = DAT_1826715ac;
  uVar9 = DAT_182671590;
  uVar6 = DAT_182671574;
  uVar5 = DAT_182671570;
  uVar4 = DAT_18267156c;
  uVar35 = (ulonglong)DAT_1826715ac;
  uVar28 = (ulonglong)DAT_182671590;
  uVar18 = DAT_1826715ac & DAT_182671590;
  uVar33 = (ulonglong)DAT_18267156c;
  uVar39 = (ulonglong)DAT_182671574;
  uVar32 = (ulonglong)DAT_1826715b4;
  uVar31 = DAT_18267156c & DAT_182671570;
  uVar26 = *(uint *)(&DAT_182611e78 + DAT_182671aec) ^ DAT_1826715ac;
  uVar23 = DAT_182671574 + DAT_1826715b4;
  uVar19 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar18 ^ 0x4201673d) + (longlong)DAT_182671aec) ^
           DAT_182671590;
  uVar44 = CONCAT44(DAT_182671648,DAT_182671648);
  bVar34 = (byte)DAT_182671648;
  uVar37 = (ulonglong)DAT_1826717d4;
  uVar24 = (ulonglong)DAT_182671574;
  DAT_182671594 = uVar18;
  DAT_182671598 = uVar23;
  DAT_1826715b0 = uVar31;
  *(ulonglong *)(CONCAT44(DAT_182671848,DAT_182671848) ^ *(ulonglong *)(DAT_182671560 + -0x30)) =
       CONCAT44(uVar23,DAT_1826715b4) ^ 0xfdee7662410d2fb2;
  lVar2 = DAT_182671560;
  uVar24 = (*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0x42012b1d)) ^
           CONCAT44(DAT_182671748,DAT_182671748)) >> (((byte)uVar5 ^ 199) & 0x3f) ^ uVar44;
  bVar22 = (byte)DAT_182671744;
  uVar21 = (ulonglong)uVar31;
  bVar34 = bVar34 ^ bVar22 ^ (byte)uVar24;
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar24;
  *(byte *)(lVar2 + -0xcc9) = bVar34;
  bVar22 = (byte)DAT_182671718 ^ bVar22;
  *(ulonglong *)(lVar2 + -0x2c8) =
       (CONCAT44(uVar4,uVar31) ^ 0x367a1f61367a1f26) + *(longlong *)(lVar2 + -0x8c8) ^ uVar37;
  uVar8 = DAT_182671820;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x635d75e5)) ^ uVar37) = bVar22 ^ bVar34;
  uVar7 = DAT_1826717f4;
  uVar24 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x42012e75)) =
       *(longlong *)(lVar2 + -0xb98) + (CONCAT44(uVar18,uVar13) ^ 0x4201672d7a366114) * 8 ^ uVar24;
  uVar29 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar43 = CONCAT44(uVar7,uVar7);
  uVar37 = (ulonglong)DAT_18267160c;
  uVar24 = *(ulonglong *)(*(ulonglong *)(lVar2 + -0x78) ^ uVar24);
  *(undefined8 *)(lVar2 + -0x78) = 0xa0c63e85aa73b539;
  *(ulonglong *)(lVar2 + -0x800) = uVar24 ^ uVar43 ^ uVar29;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar43 ^ *(ulonglong *)(lVar2 + -0x800)) >> (((byte)uVar5 ^ 0xff) & 0x3f) ^ uVar43;
  uVar15 = DAT_182671814;
  pbVar36 = (byte *)(lVar3 - (uVar33 ^ 0x367a1382));
  bVar22 = (byte)DAT_182671754 ^ (byte)DAT_182671718;
  uVar38 = (ulonglong)DAT_182671814;
  *pbVar36 = (byte)uVar7 ^ *(byte *)(lVar3 + -0x670) ^ (byte)DAT_182671754;
  pbVar25 = (byte *)(*(longlong *)(lVar3 - ((ulonglong)uVar9 ^ 0x635d7fe5)) +
                    (CONCAT44(uVar23,uVar4) ^ 0xbc378f2a367a1f29));
  uVar45 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 + -0xcf8) = (ulonglong)pbVar25 ^ uVar37;
  lVar2 = DAT_182671560;
  *pbVar25 = bVar22 ^ *pbVar36;
  uVar8 = DAT_182671898;
  *(ulonglong *)(lVar2 + -0x450) =
       *(longlong *)(lVar2 - (uVar21 ^ 0x367a14f9)) +
       (CONCAT44(uVar12,uVar9) ^ 0xc283efad635d7724) * 8 ^ uVar45;
  uVar7 = DAT_1826715d4;
  *(ulonglong *)(lVar2 + -0xa80) =
       (CONCAT44(uVar6,uVar31) ^ 0xb996db9cc860f32d) >> (((byte)uVar13 ^ 0x26) & 0x3f);
  uVar11 = DAT_1826715a4;
  uVar41 = CONCAT44(uVar7,uVar7);
  uVar24 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x635d712d)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x42012a5d)) ^ uVar45) ^ uVar41 ^
       uVar29;
  lVar2 = DAT_182671560;
  uVar20 = uVar11 << 0x10 | uVar11 >> 0x10;
  uVar27 = (ulonglong)uVar20;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x80);
  DAT_182671578 = uVar20;
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       (uVar41 ^ *(ulonglong *)(DAT_182671560 + -0x600)) >> (((byte)uVar11 ^ 0xfd) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  uVar16 = DAT_18267184c;
  bVar22 = (byte)DAT_18267184c;
  uVar37 = (ulonglong)DAT_18267183c;
  *(ulonglong *)(lVar2 + -0x3b8) =
       (uVar44 ^ *puVar1) - (CONCAT44(uVar11,uVar20) ^ 0xea1d63ba5e1cc7ad);
  *(byte *)(lVar2 + -0xc53) = (byte)uVar8 ^ bVar22 ^ *(byte *)(lVar2 + -0x6d0);
  uVar8 = DAT_182671628;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x635d77a5)) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0xccac913d)) +
       (CONCAT44(uVar11,uVar9) ^ 0xccac99f5635d7764) ^ uVar37;
  *(byte *)(*(ulonglong *)(lVar2 + -0x88) ^ uVar37) =
       *(byte *)(lVar2 + -0xc53) ^ bVar22 ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0x898) = (uVar41 ^ *(ulonglong *)(lVar2 + -0x600)) << 0x37;
  *(ulonglong *)(lVar2 + -0x270) = CONCAT44(uVar20,uVar12) ^ 0xf9efb9c7797bbd97 | 0x114f914728789983
  ;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar2 + -0xb98) + (CONCAT44(uVar20,uVar4) ^ 0x99f5ccac367a1f68) * 8);
  *(ulonglong *)(lVar2 + -0xcc8) = (ulonglong)puVar1 ^ CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x99f5c404)) = *puVar1 ^ uVar45 ^ uVar29;
  uVar37 = (ulonglong)DAT_182671674;
  *(ulonglong *)(lVar2 + -0xcc8) = CONCAT44(uVar11,uVar5) ^ 0xb94f9ccc09f83e16;
  uVar41 = CONCAT44(uVar8,uVar8);
  *(byte *)(lVar2 + -0x571) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x100) ^ uVar37) ^ (byte)DAT_1826717c0;
  bVar22 = (byte)DAT_1826715d0;
  puVar42 = (ulonglong *)(lVar2 - (uVar21 ^ 0x367a17c9));
  uVar37 = (ulonglong)DAT_1826718a4;
  *(ulonglong *)(lVar2 + -0x6b8) =
       ((ulonglong)(uVar15 >> 0x10) | uVar38 << 0x10) ^ *puVar42 >> 0x10 ^ uVar41;
  *(ulonglong *)(lVar2 + -0xa60) =
       CONCAT44(uVar13,uVar6) ^ 0xa40ae4ee48d2e75f | uVar43 ^ *(ulonglong *)(lVar2 + -0x670);
  *(byte *)(lVar2 - (uVar35 ^ 0xc283e4c4)) = bVar22 ^ *(byte *)(lVar2 + -0x6b8) ^ (byte)uVar8;
  pbVar25 = (byte *)((CONCAT44(uVar18,uVar23) ^ 0x4201672dbc378f60) + *(longlong *)(lVar2 + -0x8c8))
  ;
  *(ulonglong *)(lVar2 + -0xc78) = (ulonglong)pbVar25 ^ uVar37;
  *(ulonglong *)(lVar2 + -0xbf0) = *(ulonglong *)(lVar2 + -0x898) >> (((byte)uVar11 ^ 0xf8) & 0x3f);
  uVar7 = DAT_1826715fc;
  *pbVar25 = *(byte *)(lVar2 - (uVar32 ^ 0x7a366a74)) ^ (byte)DAT_1826715d0 ^ (byte)DAT_182671718;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar2 - ((ulonglong)uVar23 ^ 0xbc3784b2)) +
           (CONCAT44(uVar18,uVar6) ^ 0x4201672d42012e04) * 8);
  *(ulonglong *)(lVar2 + -0xab8) = (ulonglong)puVar1 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x9f8) = CONCAT44(uVar23,uVar5) ^ uVar45 ^ *puVar42 ^ 0xe43de89edb7680b5;
  uVar7 = DAT_182671728;
  uVar37 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar2 + -0x240) = *puVar1 ^ uVar37 ^ uVar29;
  *(ulonglong *)(lVar2 + -0xab8) = CONCAT44(uVar9,uVar18) ^ 0x4f9873d9a59b077f;
  bVar30 = (byte)(uVar11 >> 0x10);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(DAT_182671560 + -0x638) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x240)) >> ((bVar30 ^ 0xb4) & 0x3f) ^ CONCAT44(uVar7,uVar7)
  ;
  bVar22 = (byte)DAT_18267175c;
  lVar2 = DAT_182671560;
  bVar34 = (byte)uVar7 ^ (byte)DAT_18267175c ^ *(byte *)(DAT_182671560 + -0x638);
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       uVar41 ^ *puVar1 | CONCAT44(uVar18,uVar4) ^ 0x16f8a0ef5f178e59;
  lVar3 = DAT_182671560;
  bVar22 = bVar22 ^ bVar34 ^ (byte)DAT_182671718;
  *(byte *)(lVar2 + -0x5a1) = bVar34;
  pbVar25 = (byte *)((CONCAT44(uVar13,uVar20) ^ 0x7a36611d99f5cce7) + *(longlong *)(lVar3 + -0x8c8))
  ;
  *(ulonglong *)(lVar3 + -0xb88) = (ulonglong)pbVar25 ^ (ulonglong)uVar16;
  uVar37 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *pbVar25 = bVar22;
  *(ulonglong *)(lVar3 + -0x3a0) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar18,uVar4) ^ 0x4201672d367a1f68) +
       (CONCAT44(uVar12,uVar12) ^ 0xc283efadc283efad) * 0xc) * 8 ^ uVar37;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x7a366205)) =
       uVar43 ^ *(ulonglong *)(lVar3 + -0x670) | 0xdfb66861cd01be8;
  uVar17 = DAT_1826718a8;
  bVar22 = DAT_18267188c;
  uVar38 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar3 + -0x400) =
       *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar3 + -0x3a0)) ^ uVar38 ^ uVar29;
  bVar40 = (byte)uVar17;
  local_e0 = (byte)uVar23;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xccac9a55)) = CONCAT44(uVar11,uVar5) ^ 0x1cfc6c7302ab2f2c;
  uVar24 = (uVar38 ^ *(ulonglong *)(lVar3 + -0x400)) >> ((local_e0 ^ 10) & 0x3f) ^
           CONCAT44(uVar17,uVar17);
  bVar34 = bVar22 ^ bVar40 ^ (byte)uVar24;
  *(ulonglong *)(lVar3 + -0xa88) = uVar24;
  lVar2 = DAT_182671560;
  bVar22 = bVar22 ^ bVar34 ^ (byte)DAT_182671718;
  *(byte *)(lVar3 + -0x461) = bVar34;
  pbVar25 = (byte *)(*(longlong *)(lVar2 + -0x8c8) + 0x4c);
  *(ulonglong *)(lVar2 + -0xa0) =
       (CONCAT44(uVar5,uVar20) ^ 0xd2c3404bbdf8dab0) - *(longlong *)(lVar2 + -0x1f0);
  *(ulonglong *)(lVar2 + -0x540) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182671794;
  uVar10 = DAT_182671834;
  *pbVar25 = bVar22;
  uVar7 = DAT_182671830;
  uVar44 = CONCAT44(uVar10,uVar10);
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar2 + -0xb98) +
           ((CONCAT44(uVar12,uVar6) ^ 0xc283efad42012e04) +
           (CONCAT44(uVar9,uVar31) ^ 0x635d772d367a1f61) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0xb78) = (ulonglong)puVar1 ^ uVar44;
  uVar43 = CONCAT44(uVar7,uVar7);
  uVar24 = *puVar1 ^ uVar43 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x110) = uVar24;
  uVar37 = (ulonglong)DAT_182671678;
  *(ulonglong *)(lVar2 + -0x628) = (uVar43 ^ uVar24) >> ((bVar30 ^ 0x84) & 0x3f) ^ uVar41;
  pbVar25 = (byte *)((CONCAT44(uVar12,uVar13) ^ 0xc283efad7a366150) + *(longlong *)(lVar2 + -0x8c8))
  ;
  *(byte *)(lVar2 + -0x639) =
       *(byte *)(lVar2 - ((ulonglong)uVar23 ^ 0xbc378902)) ^ (byte)DAT_18267187c ^ (byte)uVar8;
  *(ulonglong *)(lVar2 + -0x2b8) = (ulonglong)pbVar25 ^ uVar37;
  *pbVar25 = *(byte *)(lVar2 - (uVar32 ^ 0x7a366724)) ^ (byte)DAT_18267187c ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0x548) =
       (CONCAT44(uVar6,uVar9) ^ 0xc08a4e7212e042d) <<
       ((*(byte *)(lVar2 - (uVar28 ^ 0x635d7da5)) ^ bVar40) & 0x3f);
  uVar24 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x7a36633d)) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar4,uVar11) ^ 0x367a1f61ccac99fc) +
       (CONCAT44(uVar6,uVar18) ^ 0x42012e0d4201672d) * 0xc) * 8 ^ uVar24;
  uVar37 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar2 + -0x2a0) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x220) ^ uVar24) ^ uVar37 ^ uVar29;
  uVar7 = DAT_18267182c;
  uVar8 = DAT_18267158c;
  local_res20 = (byte)uVar31;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x367a1971)) =
       (CONCAT44(uVar5,uVar12) ^ 0xdfb419c5bfdb41ca) + *(longlong *)(lVar2 - (uVar28 ^ 0x635d7265));
  uVar24 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x9e8) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x2a0)) >> ((local_res20 ^ 0x51) & 0x3f) ^
       CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x42012fd5)) =
       (CONCAT44(uVar18,uVar12) ^ 0xe9cd72dd1e5b7548) >>
       ((byte)*(undefined8 *)(lVar2 + -0x318) & 0x3f);
  uVar38 = (ulonglong)DAT_182671808;
  uVar37 = (ulonglong)DAT_1826718bc;
  *(byte *)(lVar2 + -0x4b9) =
       *(byte *)(lVar2 - (uVar28 ^ 0x635d7ec5)) ^ (byte)uVar7 ^ (byte)DAT_18267186c;
  *(byte *)(lVar2 - (uVar32 ^ 0x7a3668d7)) =
       *(byte *)(uVar38 ^ *(ulonglong *)(lVar2 + -0x900)) ^ (byte)DAT_1826717c0;
  pbVar25 = (byte *)(*(longlong *)(lVar2 - (uVar24 ^ 0x7a3669d7)) +
                    (CONCAT44(uVar20,uVar20) ^ 0x99f5ccac99f5cce2));
  *(ulonglong *)(lVar2 + -0x900) = (ulonglong)pbVar25 ^ uVar37;
  *pbVar25 = *(byte *)(lVar2 - (uVar24 ^ 0x7a3665a6)) ^ (byte)DAT_18267186c ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0x3f0) = *(ulonglong *)(lVar2 + -0x1d8) ^ 0xd24aeaddac83f3b4;
  uVar14 = DAT_182671770;
  uVar10 = DAT_18267159c;
  uVar7 = DAT_18267157c;
  uVar37 = CONCAT44(DAT_182671740,DAT_182671740);
  uVar24 = CONCAT44(uVar4,DAT_1826715a8);
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar2 + -0xb98) +
           ((CONCAT44(DAT_18267159c,uVar18) ^ 0x4f75ca3542016724) +
           (CONCAT44(uVar13,DAT_18267157c) ^ 0x7a36611d300a1122) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x6f0) = (ulonglong)puVar1 ^ uVar37;
  *(ulonglong *)(lVar2 + -0xc08) = *puVar1 ^ uVar37 ^ uVar29;
  *(undefined8 *)(CONCAT44(DAT_182671880,DAT_182671880) ^ *(ulonglong *)(lVar2 + -0x178)) =
       0xc525b6a3e7d6e946;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x99f5cdd4)) = uVar24 ^ 0x3bc4b5f9be5b500b;
  *(undefined8 *)(lVar2 - (uVar33 ^ 0x367a1991)) = 0xe3f0d30d3eb93e62;
  bVar22 = (byte)DAT_18267171c;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x367a1a71)) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0xc08)) >> ((local_res20 ^ 0x59) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  bVar34 = (byte)uVar14 ^ *(byte *)(lVar2 + -0x510);
  pbVar25 = (byte *)((CONCAT44(uVar23,uVar18) ^ 0xbc378f2a42016762) + *(longlong *)(lVar2 + -0x8c8))
  ;
  uVar24 = (ulonglong)DAT_1826715c4;
  *(byte *)(lVar2 + -0x261) = bVar34 ^ bVar22;
  bVar34 = bVar34 ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0x448) = (ulonglong)pbVar25 ^ uVar24;
  uVar14 = _DAT_1826715e0;
  *pbVar25 = bVar34;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar24 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x635d7315)) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar8,uVar18) ^ 0x1f61367a42016727) +
       (CONCAT44(uVar31,uVar9) ^ 0x367a1f61635d772d) * 0xc) * 8 ^ uVar33;
  uVar4 = DAT_182671588;
  uVar39 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar28 = (ulonglong)DAT_182671588;
  uVar37 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x4bb5ba0)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x438) ^ uVar33) ^ uVar39 ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xaa4e117b)) = CONCAT44(uVar12,uVar23) ^ 0x29dea00bd22a115e;
  bVar22 = (byte)DAT_182671664;
  *(ulonglong *)(lVar2 + -0xa80) = *(ulonglong *)(uVar44 ^ *(ulonglong *)(lVar2 + -0xb78)) ^ uVar29;
  *(ulonglong *)(lVar2 + -0xb78) = CONCAT44(uVar20,uVar11) ^ 0x2e1c1ed3d9ff8204;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x367a1fe1)) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0x800)) >> ((local_res20 ^ 0x61) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  *(byte *)(lVar2 + -0x289) = *(byte *)(lVar2 - (uVar28 ^ 0xffffff7f)) ^ bVar22 ^ bVar40;
  *(ulonglong *)(lVar2 + -0x3b8) =
       (CONCAT44(uVar6,uVar5) ^ 0x4af6d21fff5a51f5) - (CONCAT44(uVar6,uVar8) ^ 0x779d91a3554662b);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xc283ef65)) = *(longlong *)(lVar2 + -0x8c8) + 0x50U ^ uVar38;
  bVar22 = bVar22 ^ *(byte *)(lVar2 + -0x289) ^ (byte)DAT_182671718;
  uVar24 = CONCAT44(DAT_182671584,uVar11);
  *(ulonglong *)(lVar2 + -0x6d0) = CONCAT44(uVar18,uVar10) ^ 0x9263d13fab54437d;
  *(byte *)(*(ulonglong *)(lVar2 + -200) ^ uVar38) = bVar22;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar2 + -0xb98) +
           ((uVar24 ^ 0xfffef59fccac99ff) + (CONCAT44(uVar18,uVar31) ^ 0x4201672d367a1f61) * 0xc) *
           8);
  *(ulonglong *)(lVar2 + -0x880) = (ulonglong)puVar1 ^ uVar41;
  *(byte *)(lVar2 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0x7a36601d)) ^ (ulonglong)DAT_182671674) ^
       (byte)DAT_1826717c0;
  uVar24 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(lVar2 + -0x270) = *puVar1 ^ uVar29 ^ uVar24;
  local_50 = (byte)uVar18;
  *(ulonglong *)(lVar2 + -0x880) = CONCAT44(uVar11,uVar4) ^ 0xefbefa63f5badd5e;
  *(ulonglong *)(lVar2 + -0x600) =
       (*(ulonglong *)(lVar2 + -0x270) ^ uVar24) >> ((local_50 ^ 0x25) & 0x3f) ^ uVar43;
  *(int *)(lVar2 + -0x678) =
       *(int *)(lVar2 - (uVar27 ^ 0x99f5cf78)) << (((byte)uVar7 ^ 0x3a) & 0x1f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar19 * 4) = uVar26;
  return;
}



############ FUN_ 180e78570 size=3823 ############

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

void FUN_180e78570(void)

{
  uint *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  byte bVar9;
  ulonglong uVar10;
  byte *pbVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  uVar15 = DAT_18267173c;
  uVar21 = DAT_1826715ac;
  uVar8 = DAT_182671594;
  uVar24 = DAT_18267158c;
  uVar18 = DAT_18267157c;
  lVar4 = DAT_182671560;
  uVar27 = (ulonglong)DAT_182671594;
  uVar26 = (ulonglong)DAT_18267157c;
  uVar33 = (ulonglong)DAT_18267158c;
  uVar20 = DAT_18267157c * DAT_1826715ac;
  uVar28 = DAT_182671568 ^ DAT_182671594;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671b10);
  uVar12 = *(uint *)(&DAT_182611e78 + DAT_182671b10) ^ DAT_182671594;
  uVar22 = DAT_18267158c << 0x10 | DAT_18267158c >> 0x10;
  DAT_1826715a0 = uVar20 ^ 0x46cbaede;
  uVar13 = DAT_18267157c ^ 0x74a67d53;
  DAT_182671570 = uVar22;
  DAT_182671598 = uVar28;
  *(uint *)(*(ulonglong *)(DAT_182671560 + -0x8e0) ^ (ulonglong)DAT_18267164c) =
       DAT_182671568 ^ 0xc2347024;
  *(uint *)((ulonglong)DAT_182671890 ^ *(ulonglong *)(lVar4 + -0x1c8)) = uVar13;
  uVar31 = (ulonglong)uVar22;
  uVar19 = (ulonglong)_DAT_182671838;
  *(ulonglong *)(CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar4 + -800)) =
       CONCAT44(uVar20,uVar21) ^ 0x53c24c1671b1fa91;
  lVar5 = DAT_182671560;
  uVar10 = (ulonglong)DAT_182671620;
  *(uint *)(*(ulonglong *)(lVar4 - (uVar31 ^ 0xecc9bcaf)) ^ uVar19) = uVar24 ^ 0xf15768b1;
  *(uint *)(*(ulonglong *)(lVar4 + -0xc98) ^ uVar10) = DAT_182671568 ^ 0xc0d16ddd;
  uVar19 = (ulonglong)DAT_1826716c4;
  *(ulonglong *)(CONCAT44(DAT_182671874,DAT_182671874) ^ *(ulonglong *)(lVar4 + -0x690)) =
       CONCAT44(uVar18,uVar28) ^ 0x310f07f76f26d83b;
  uVar14 = DAT_1826718c4;
  uVar10 = (ulonglong)DAT_182671734;
  *(uint *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0xecc9bb27)) ^ uVar19) = uVar21 ^ 0x8ef153b6
  ;
  *(undefined4 *)(uVar10 ^ *(ulonglong *)(lVar5 + -0x98)) = 0x5f390f13;
  uVar13 = DAT_182671568 ^ 0xbf679e1a;
  *(ulonglong *)(CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar5 + -0xf8)) =
       CONCAT44(uVar20,uVar20) ^ 0x2b2c64d323485d75;
  *(uint *)((ulonglong)DAT_182671748 ^ *(ulonglong *)(lVar5 + -8)) = uVar13;
  uVar6 = DAT_182671858;
  *(uint *)(*(ulonglong *)(lVar5 + -0x518) ^ (ulonglong)DAT_1826715e4) = uVar24 ^ 0xa6365228;
  *(undefined8 *)(CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar5 + -0xb8)) = 0x1a0738b8fa50774f;
  *(uint *)((ulonglong)DAT_182671738 ^ *(ulonglong *)(lVar5 + -0x858)) = uVar8 ^ 0x52c192cb;
  *(uint *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0xfffff8bf)) ^ (ulonglong)DAT_1826715bc) =
       uVar28 ^ 0xaeb6ef82;
  uVar13 = DAT_182671568;
  *(ulonglong *)(lVar5 + -0xd00) = CONCAT44(uVar8,uVar20) ^ 0x4185b3343b8faf70;
  *(undefined8 *)(lVar5 + -0x6f8) = 0x9a572cf86a0d3aa2;
  *(undefined8 *)(lVar5 + -0x658) = 0x2513be56905317e5;
  *(ulonglong *)(lVar5 + -0xb80) = CONCAT44(uVar28,uVar24) ^ 0x8b6150fe1a997b55;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0xfffff867)) =
       CONCAT44(uVar13,uVar18) ^ 0x6f5fd229ac2e153f;
  *(ulonglong *)(lVar5 + -0x8b0) = CONCAT44(uVar18,uVar13) ^ 0x2a1abc852dabc0e3;
  uVar30 = (ulonglong)DAT_1826715a4;
  uVar29 = CONCAT44(DAT_1826715a8,uVar28);
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x19327b60)) =
       CONCAT44(uVar28,uVar22) ^ 0xcf266f21541e7472;
  *(ulonglong *)(DAT_182671560 + -0x1c8) = uVar29 ^ 0x69f5507414cb54e2;
  lVar4 = DAT_182671560;
  *(undefined8 *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0xfffff82f)) = 0xb2f19ccd6b3f9676;
  *(undefined8 *)(lVar4 + -800) = 0x899b6354f08fe065;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a4 ^ 0x19327a10)) =
       CONCAT44(uVar24,uVar20) ^ 0xd7f67ef04e08df55;
  uVar13 = DAT_182671578;
  *(undefined8 *)(lVar4 - (uVar26 ^ 0xffdfc96f)) = 0x65db5ce87131351d;
  uVar7 = DAT_1826715b0;
  uVar23 = DAT_182671580;
  uVar32 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar4 + -0x98) = CONCAT44(uVar8,uVar24) ^ 0xba4ee8824a1b2372;
  *(undefined8 *)(lVar4 + -8) = 0xfa7e4d14ae879de0;
  uVar6 = DAT_182671574;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xecc9bb87)) =
       CONCAT44(DAT_182671574,uVar13) ^ 0xd44e8687fe3d3b5a;
  *(ulonglong *)(lVar4 + -0x858) = CONCAT44(uVar6,uVar23) ^ 0xd1dcd99e64b5b4b7;
  *(ulonglong *)(lVar4 + -0xb8) = CONCAT44(uVar28,DAT_182671588) ^ 0xfce934330167bd4a;
  *(ulonglong *)(lVar4 + -0x740) = CONCAT44(uVar7,uVar20) ^ 0x48384e711ccf0795;
  uVar25 = DAT_18267178c;
  uVar17 = DAT_182671650;
  *(uint *)(lVar4 + -0x678) =
       (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar4 + -0x910) ^ DAT_182671744) ^
       DAT_182671660;
  uVar16 = DAT_182671614;
  *(byte *)(lVar4 - ((ulonglong)DAT_1826715ac ^ 0xffffffbe)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x4f0) ^ uVar19) ^ (byte)DAT_182671694;
  uVar14 = *(uint *)(lVar4 + -0x874) ^ DAT_182671844 ^ uVar14;
  uVar13 = *(uint *)(lVar4 + -0x678) ^ uVar17 ^ DAT_182671660;
  *(uint *)(lVar4 + -0x968) = uVar14;
  uVar14 = uVar14 ^ DAT_182671844;
  *(uint *)(lVar4 + -0x47c) = uVar13;
  *(uint *)(lVar4 + -0x5cc) = uVar14 ^ uVar15;
  uVar10 = CONCAT44(uVar22,DAT_1826715a8);
  *(uint *)(lVar4 + -0x344) = uVar13 ^ uVar16 ^ uVar17;
  lVar5 = DAT_182671560;
  uVar19 = (ulonglong)DAT_1826717f0;
  *(ulonglong *)(lVar4 + -0xc80) =
       (uVar10 ^ 0xecc9bb7ffeaff4ce) * 0x20 + (CONCAT44(uVar6,uVar24) ^ 0x7a481932bb7fecdb) +
       *(longlong *)(lVar4 + -0x8f0) ^ uVar19;
  *(ulonglong *)(lVar4 + -0x638) = uVar29 ^ 0xfcfbfe6ffbdfd6f3 | 0xd8f3de4e99d7c6f3;
  uVar13 = DAT_182671588;
  uVar23 = DAT_182671748 & 0xff;
  *(byte *)(lVar5 - ((ulonglong)DAT_182671588 ^ 0x9996478f)) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar27 ^ 0x97023b1)) ^ uVar19) ^ (byte)DAT_182671748 ^
       (byte)DAT_182671694;
  *(uint *)(lVar5 + -0x844) = *(byte *)(lVar5 + -0xc41) ^ uVar23 ^ uVar25;
  *(uint *)(lVar5 - (uVar26 ^ 0xffdfccd7)) =
       (*(uint *)(lVar5 + -0x5cc) ^ uVar15) + (DAT_1826715a4 ^ 0x10c55c9d) ^ DAT_1826717bc;
  uVar23 = *(uint *)(lVar5 + -0x328) ^ DAT_1826717bc;
  uVar24 = (*(uint *)(lVar5 + -0x844) ^ uVar25) << (((byte)uVar6 ^ 0x23) & 0x1f) ^ DAT_1826717fc;
  uVar10 = (ulonglong)DAT_182671568;
  *(uint *)(lVar5 + -0x754) = uVar24;
  *(uint *)(lVar5 - (uVar10 ^ 0x999648ba)) = uVar23 - (uVar24 ^ DAT_1826717fc) ^ DAT_182671604;
  uVar24 = DAT_1826715a0 ^ 0x46eb9ecd;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671578 ^ 0xa21267c)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar28 ^ 0x90e6678b)) ^ DAT_182671604) *
       (*(uint *)(lVar5 + -0x344) ^ uVar16) ^ DAT_1826716bc;
  uVar15 = DAT_1826718bc;
  uVar23 = DAT_1826715a8;
  uVar10 = (ulonglong)DAT_1826715a8;
  *(uint *)(lVar5 + -0x3d4) = (*(uint *)(lVar5 + -0x844) ^ uVar25) * uVar24 ^ DAT_18267187c;
  bVar3 = (byte)DAT_18267158c;
  uVar24 = (*(uint *)(lVar5 - (uVar10 ^ 0xfeaff71a)) ^ DAT_18267187c) +
           (*(uint *)(lVar5 + -0x27c) ^ DAT_1826716bc);
  *(uint *)(lVar5 + -0x504) = uVar24 ^ uVar15;
  uVar25 = uVar24 << ((bVar3 ^ 0xc4) & 0x1f) ^ DAT_18267164c;
  *(uint *)(lVar5 + -0x910) = uVar25;
  uVar24 = DAT_182671584;
  uVar15 = (*(uint *)(lVar5 - (uVar30 ^ 0x19327f4c)) ^ uVar15) >> 0x13 ^ DAT_18267171c;
  uVar25 = uVar25 ^ DAT_18267164c;
  *(uint *)(lVar5 + -0x678) = uVar15;
  *(uint *)(lVar5 + -0x874) = (uVar15 ^ DAT_18267171c | uVar25) ^ DAT_182671874;
  uVar15 = *(uint *)(lVar5 - ((ulonglong)DAT_1826715ac ^ 0xfffffc37)) ^ DAT_182671624;
  *(undefined8 *)(lVar5 + -0x110) = 0;
  uVar16 = uVar15 + (*(uint *)(lVar5 + -0x344) ^ uVar16) ^ uVar17;
  *(uint *)(lVar5 + -0x47c) = uVar16;
  *(uint *)(lVar5 - (uVar32 ^ 0xf68fd9a6)) = uVar16 ^ DAT_182671740 ^ uVar17;
  uVar16 = DAT_1826715f4;
  uVar15 = DAT_1826715f4 ^ DAT_182671740;
  *(ulonglong *)(lVar5 + -0x510) =
       (CONCAT44(uVar20,uVar18) ^ 0x8eb297c26e6e0d8a) + *(longlong *)(lVar5 - (uVar31 ^ 0xecc9bd47))
  ;
  *(uint *)(lVar5 + -0x5cc) = *(uint *)(lVar5 + -0x874) ^ DAT_1826716dc ^ DAT_182671874;
  *(uint *)(lVar5 - ((ulonglong)uVar13 ^ 0x999648e6)) = uVar15 ^ *(uint *)(lVar5 + -0x968);
  bVar3 = (byte)DAT_182671790;
  uVar23 = *(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0xfeaff102)) ^ DAT_1826717b4 ^ DAT_1826716dc;
  pbVar11 = (byte *)((CONCAT44(uVar7,uVar24) ^ 0x4bce999688042010) * 0x20 +
                     (CONCAT44(uVar20,uVar21) ^ 0x203001ffffffe2) + *(longlong *)(lVar5 + -0x8f0));
  *(ulonglong *)(lVar5 + -0xc28) = (ulonglong)pbVar11 ^ (ulonglong)_DAT_182671838;
  *(uint *)(lVar5 + -0x754) = uVar23;
  uVar18 = DAT_1826715d0;
  uVar7 = DAT_182671590;
  uVar13 = DAT_182671580;
  lVar4 = DAT_182671560;
  bVar9 = *pbVar11 ^ bVar3 ^ (byte)DAT_182671694;
  uVar15 = *(uint *)(DAT_182671560 + -0x328) ^ uVar16;
  uVar23 = (uVar23 ^ DAT_1826717b4) + (DAT_1826715a4 ^ 0x10c55c9d) ^ _DAT_182671838;
  *(byte *)(DAT_182671560 + -0x41) = bVar9;
  uVar21 = (bVar9 ^ bVar3) ^ DAT_182671820;
  *(uint *)(lVar4 + -0x374) = uVar21;
  lVar5 = DAT_182671560;
  uVar21 = uVar21 ^ DAT_182671820;
  uVar13 = (uVar13 ^ 0xf68fd0d3) * uVar21 ^ DAT_18267176c;
  *(uint *)(DAT_182671560 + -0x844) = (*(uint *)(lVar4 - (uVar30 ^ 0x19327e34)) ^ uVar17) + uVar15;
  *(uint *)(lVar5 + -0x27c) = uVar23;
  uVar23 = DAT_18267156c;
  uVar19 = (ulonglong)DAT_18267156c;
  uVar21 = uVar21 << (((byte)uVar7 ^ 0xa6) & 0x1f) ^ DAT_1826716d4;
  uVar10 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar5 + -0x3d4) = uVar21;
  *(uint *)(lVar5 + -0x504) =
       (*(uint *)(lVar5 - (uVar10 ^ 0x6a3a59ee)) ^ _DAT_182671838) - (uVar21 ^ DAT_1826716d4) ^
       DAT_182671870;
  uVar21 = *(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0xbb7fe9dd)) ^ DAT_182671870;
  *(uint *)(lVar5 + -0x678) = uVar13;
  uVar13 = uVar13 ^ DAT_18267176c;
  uVar21 = uVar21 * uVar15 ^ DAT_1826717c0;
  *(uint *)(lVar5 + -0x910) = uVar21;
  *(uint *)(lVar5 - (uVar30 ^ 0x1932790c)) = (uVar21 ^ DAT_1826717c0) + uVar13 ^ uVar18;
  bVar3 = (byte)DAT_182671568;
  *(longlong *)(lVar5 + -0xa0) = *(longlong *)(lVar5 + -0xbf0) + 0x298cd1a453b05930;
  *(uint *)(lVar5 - ((ulonglong)uVar28 ^ 0x90e66c8b)) =
       (*(uint *)(lVar5 + -0x344) ^ uVar18) << ((bVar3 ^ 0xc3) & 0x1f) ^ DAT_18267177c;
  uVar13 = DAT_1826716e0;
  lVar4 = DAT_182671560;
  uVar17 = (uVar23 << 0x10 | uVar23 & 0xff00) << 8 | uVar23 >> 8 & 0xff00 | DAT_18267156c >> 0x18;
  puVar1 = (uint *)(DAT_182671560 + -0x344);
  DAT_1826715a4 = uVar17;
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       (CONCAT44(uVar23,uVar17) ^ 0xefd36498311c37d6) -
       (CONCAT44(uVar17,uVar17) ^ 0xf5ab7eca21af39e1);
  *(uint *)(lVar4 - ((ulonglong)uVar23 ^ 0xbb7fe5b1)) = (*puVar1 ^ uVar18) >> 0x13 ^ uVar13;
  lVar4 = DAT_182671560;
  uVar15 = (uVar13 ^ *(uint *)(DAT_182671560 + -0x968) |
           *(uint *)(DAT_182671560 + -0x874) ^ DAT_18267177c) ^ DAT_182671658;
  *(uint *)(DAT_182671560 + -0x5cc) = uVar15;
  uVar21 = DAT_182671708;
  uVar13 = *(uint *)(lVar4 - (uVar19 ^ 0xbb7feff1));
  uVar18 = *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xd9ec7c73)) ^ DAT_182671624;
  *(uint *)(lVar4 + -0x754) = uVar15 ^ DAT_1826718d0 ^ DAT_182671658;
  uVar13 = (uVar13 ^ uVar16) + uVar18 ^ DAT_1826716f4;
  *(uint *)(lVar4 + -0x47c) = uVar13;
  *(uint *)(lVar4 + -0x844) = uVar13 ^ DAT_182671880 ^ DAT_1826716f4;
  *(uint *)(lVar4 + -0x27c) =
       *(uint *)(lVar4 - ((ulonglong)uVar23 ^ 0xbb7fe49d)) ^ uVar21 ^ DAT_182671880;
  *(longlong *)(lVar4 + -0x2a0) =
       *(longlong *)(lVar4 + -0x1d8) << ((byte)*(undefined8 *)(lVar4 + -0x548) & 0x3f);
  bVar3 = (byte)DAT_182671808;
  uVar10 = (ulonglong)DAT_182671578;
  *(uint *)(lVar4 + -0x3d4) =
       *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xd9ec78ef)) ^ DAT_1826717ac ^ DAT_1826718d0;
  uVar16 = DAT_182671860;
  uVar18 = DAT_182671568;
  pbVar11 = (byte *)(*(longlong *)(lVar4 - (uVar26 ^ 0xffdfc70f)) +
                     (CONCAT44(uVar23,uVar23) ^ 0xbb7fecd9bb7fecd9) * 0x20 +
                    (CONCAT44(uVar23,uVar17) ^ 0xbb7fecd9d9ec7fb3));
  *(ulonglong *)(lVar4 + -0x7a0) = (ulonglong)pbVar11 ^ (ulonglong)DAT_1826717d4;
  *(byte *)(lVar4 - (uVar10 ^ 0xa212841)) = *pbVar11 ^ bVar3 ^ (byte)DAT_182671694;
  *(uint *)(lVar4 + -0x504) = (*(byte *)(lVar4 - (uVar33 ^ 0xbb7fe088)) ^ bVar3) ^ uVar16;
  *(uint *)(lVar4 + -0x374) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_182671588 ^ 0x9996481a)) ^ DAT_1826717ac) +
       (uVar24 ^ 0x81f306c5) ^ DAT_1826716b8;
  bVar3 = (byte)DAT_1826715ac;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715a8 ^ 0xfeaff44e)) =
       CONCAT44(uVar17,uVar6) ^ 0xef259a15740ba8bc | CONCAT44(uVar22,uVar18) ^ 0xda8a72f2276789eb;
  *(uint *)(lVar4 + -0x910) =
       (*(uint *)(lVar4 + -0x504) ^ uVar16) << ((bVar3 ^ 0xee) & 0x1f) ^ DAT_1826716a8;
  *(ulonglong *)(lVar4 + -0x3b8) =
       0x6860fd6c929fd50e - (CONCAT44(uVar24,uVar6) ^ 0x9e62324bba71f1b1);
  uVar13 = (*(uint *)(lVar4 - (uVar27 ^ 0x9702c45)) ^ DAT_1826716b8) -
           (*(uint *)(lVar4 - (uVar10 ^ 0xa212d10)) ^ DAT_1826716a8) ^ DAT_182671724;
  *(uint *)(lVar4 + -0x678) = uVar13;
  *(uint *)(lVar4 - (uVar19 ^ 0xbb7fef9d)) =
       (uVar21 ^ *(uint *)(lVar4 + -0x27c)) * (uVar13 ^ DAT_182671724) ^ DAT_1826717d8;
  *(ulonglong *)(lVar4 + -0xa88) = (CONCAT44(uVar7,uVar8) ^ 0x1926c84a94977e8f) + 0x2b27231854f92f2f
  ;
  uVar13 = *(uint *)(lVar4 + -0x504);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar28) * 4) = uVar12;
  *(uint *)(lVar4 + -0x874) = (uVar13 ^ uVar16) * (uVar18 ^ 0x99964bc6) ^ DAT_182671748;
  return;
}



############ FUN_ 180f26cd0 size=3403 ############

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

void FUN_180f26cd0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  int iVar13;
  uint uVar14;
  byte bVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  byte *pbVar31;
  ulonglong uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  
  uVar4 = DAT_1826715b4;
  iVar12 = DAT_1826715b0;
  uVar11 = DAT_1826715ac;
  uVar10 = DAT_1826715a8;
  uVar7 = DAT_18267158c;
  uVar6 = DAT_182671588;
  uVar5 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar29 = (ulonglong)DAT_18267158c;
  uVar33 = DAT_1826715b4 - DAT_182671578;
  uVar20 = (ulonglong)DAT_1826715ac;
  uVar25 = (ulonglong)DAT_1826715a8;
  uVar22 = *(uint *)(&DAT_182611e78 + DAT_182671a30) ^ DAT_18267157c;
  uVar35 = DAT_1826715ac | DAT_18267157c;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671a30);
  uVar28 = DAT_18267158c ^ DAT_182671588;
  uVar34 = DAT_1826715a8 + DAT_1826715b0;
  uVar21 = (ulonglong)DAT_182671824;
  bVar24 = (byte)DAT_1826715b0;
  DAT_182671568 = uVar33;
  DAT_182671570 = uVar34;
  DAT_182671580 = uVar35;
  DAT_182671598 = uVar28;
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715ac ^ 0xcab73bd6)) ^
           (ulonglong)DAT_182671624) = (byte)DAT_182671870 ^ *(byte *)(DAT_182671560 + -0x3d7);
  *(byte *)(lVar2 + -0x3d7) = bVar24 ^ 0x9b;
  uVar23 = (ulonglong)uVar34;
  uVar27 = (ulonglong)DAT_1826715c4;
  *(uint *)(lVar2 + -0x374) = (uVar28 ^ 0x6a63a5e8) * (uVar10 ^ 0x786b5d84);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar34 ^ 0x9805a1c8)) = *(undefined8 *)(lVar2 + -0x4e8);
  uVar16 = (ulonglong)uVar6;
  *(undefined8 *)(lVar2 - (uVar16 ^ 0x57cf7a6e)) = *(undefined8 *)(lVar2 + -0x168);
  uVar18 = *(ulonglong *)(lVar2 + -0x580);
  *(ulonglong *)(lVar2 + -0xb60) = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x17f2c548)) ^ uVar27;
  *(ulonglong *)(lVar2 + -0xcb0) = uVar18 ^ uVar21;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (CONCAT44(uVar5,uVar34) ^ 0x3e9adf39aa155a9e) +
       (CONCAT44(uVar7,DAT_182671578) ^ 0xb6bdf4f8dcd0a0db);
  lVar2 = DAT_182671560;
  uVar17 = (ulonglong)uVar33;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar35 ^ 0xcff734be)) =
       (CONCAT44(uVar33,uVar11) ^ 0x13154355cab73c67) + uVar18;
  uVar26 = (ulonglong)DAT_182671754;
  bVar15 = (byte)DAT_182671578;
  *(byte *)(lVar2 + -0xae9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xcb0) ^ uVar21) ^ (byte)DAT_1826716d8 ^
       (byte)DAT_182671718;
  *(byte *)(lVar2 + -0xa72) = bVar15 ^ 0xe;
  uVar21 = (ulonglong)DAT_182671638;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x870) ^ (ulonglong)DAT_1826717e8) = 0x9a;
  pbVar31 = (byte *)(uVar27 ^ *(ulonglong *)(lVar2 + -0xb60));
  *(byte **)(lVar2 + -0xa8) = pbVar31 + (CONCAT44(uVar33,uVar4) ^ 0x1315435517f2cd09);
  *pbVar31 = *(byte *)(lVar2 + -0xae9) ^ (byte)DAT_1826716d8;
  *(byte *)(lVar2 + -0xae9) = (byte)uVar34 ^ 0x50;
  *(undefined8 *)(lVar2 + -0x720) = *(undefined8 *)(lVar2 + -0xa50);
  *(ulonglong *)(lVar2 + -0x160) = *(ulonglong *)(lVar2 + -0xa8);
  *(ulonglong *)(lVar2 + -0x308) = uVar21 ^ *(ulonglong *)(lVar2 + -0xa8);
  pbVar31 = *(byte **)(lVar2 - ((ulonglong)uVar4 ^ 0x17f2ca28));
  uVar18 = CONCAT44(DAT_182671578,uVar6);
  *(ulonglong *)(lVar2 + -0x9f0) = (ulonglong)pbVar31 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x628) = (uVar18 ^ 0x4f033edb91d92fdd) + 0xfeb0d4f36ea9d33d;
  *(byte **)(lVar2 + -0xb28) = pbVar31 + (CONCAT44(uVar7,iVar12) ^ 0x8d31cdfc895eb797);
  *(byte *)(lVar2 + -0xd31) = (byte)DAT_1826715f4 ^ *pbVar31 ^ (byte)DAT_182671718;
  *(byte *)(lVar2 + -0x119) = bVar24 ^ 0xf8;
  *(byte *)(*(ulonglong *)(lVar2 + -0x488) ^ (ulonglong)DAT_182671650) = (byte)uVar10 ^ 0x29;
  uVar27 = (ulonglong)uVar28;
  *(ulonglong *)(lVar2 + -0x498) = (*(ulonglong *)(lVar2 + -0x308) ^ uVar21) + 1;
  uVar9 = DAT_182671594;
  uVar32 = (ulonglong)DAT_18267169c;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x57cf73e6)) =
       *(ulonglong *)(lVar2 - (uVar17 ^ 0x1315428d)) ^ CONCAT44(uVar35,uVar28) ^ 0x4b1846728e2a752f;
  uVar26 = (ulonglong)DAT_18267178c;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xea6f2fa)) ^ uVar21) =
       *(byte *)(lVar2 + -0xd31) ^ (byte)DAT_1826715f4;
  *(byte *)(lVar2 + -0xd31) = (byte)uVar28 ^ 0x7b;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xcab734fe)) =
       CONCAT44(uVar5,uVar4) ^ 0xffff7fabfdfbfbdf | 0x55f637a2f10b13d6;
  *(undefined8 *)(lVar2 + -0x9d8) = *(undefined8 *)(lVar2 + -0x498);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar7 ^ 0x8d31cb14)) =
       *(undefined8 *)(lVar2 - (uVar17 ^ 0x1315487d));
  uVar8 = DAT_182671590;
  uVar21 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 + -0x608) = uVar32 ^ *(ulonglong *)(lVar2 + -0x9d8);
  uVar30 = uVar9 + uVar8;
  DAT_1826715a4 = uVar30;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xb81db1b4)) = *(ulonglong *)(lVar2 + -0x6e8) ^ uVar26;
  *(longlong *)(lVar2 - ((ulonglong)uVar9 ^ 0xc7720acc)) =
       *(longlong *)(lVar2 + -0x318) << ((byte)*(undefined8 *)(lVar2 + -0x898) & 0x3f);
  lVar2 = DAT_182671560;
  uVar18 = (ulonglong)DAT_182671754;
  *(ulonglong *)(DAT_182671560 + -0xba8) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0x7f8fb4e0)) ^ uVar26) +
       (CONCAT44(uVar9,uVar30) ^ 0xc77202cc7f8fb439);
  bVar15 = (byte)DAT_18267181c;
  lVar3 = DAT_182671560;
  *(byte *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xc7720905)) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xb81db89c)) ^ uVar18) ^
       (byte)DAT_182671718;
  bVar24 = (byte)uVar9;
  *(byte *)(lVar3 + -0xbc9) = bVar24 ^ 0x2b;
  lVar2 = DAT_182671560;
  uVar18 = (ulonglong)DAT_1826717dc;
  *(byte *)(DAT_182671560 + -0xa51) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xd8) ^ uVar26) ^ bVar15 ^ (byte)DAT_182671718;
  *(byte *)(lVar2 + -0x9a1) = (byte)uVar30 ^ 0xc0;
  *(byte *)(*(ulonglong *)(lVar2 + -0x2f0) ^ uVar18) = bVar24 ^ 0x8b;
  *(ulonglong *)(lVar2 + -0x590) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x7f8fb230)) ^ uVar32) + 1;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar27 ^ 0xdafeb41a)) ^ uVar32) =
       bVar15 ^ *(byte *)(lVar2 + -0xa51);
  uVar14 = DAT_1826716ec;
  pbVar31 = *(byte **)(lVar2 + -0xba8);
  uVar32 = (ulonglong)DAT_1826716ec;
  uVar18 = (ulonglong)DAT_1826717a0;
  *(longlong *)(lVar2 + -0x400) = *(longlong *)(lVar2 + -0xa88) - *(longlong *)(lVar2 + -0x9f8);
  *(ulonglong *)(lVar2 + -0xad8) = *(ulonglong *)(lVar2 + -0x590);
  *(ulonglong *)(lVar2 + -0x40) = uVar32 ^ *(ulonglong *)(lVar2 + -0x590);
  *(byte **)(lVar2 + -0xd58) = pbVar31;
  *(byte *)(lVar2 + -0xa51) = bVar24 ^ 0x38;
  uVar4 = DAT_182671578;
  *(ulonglong *)(lVar2 + -0x978) = uVar18 ^ (ulonglong)pbVar31;
  uVar19 = DAT_182671578 ^ 0xd2aaf66;
  *(byte **)(lVar2 + -0x8c8) = pbVar31 + (CONCAT44(uVar8,uVar8) ^ 0xb81db16cb81db16d);
  bVar15 = (byte)DAT_182671784;
  *(uint *)(lVar2 + -0x964) = uVar19 + (uVar28 ^ 0xbad82a4a);
  *(byte *)(lVar2 + -0x919) = bVar15 ^ *pbVar31 ^ (byte)DAT_182671718;
  *(byte *)(lVar2 - (uVar23 ^ 0x9805ac91)) = (byte)uVar35 ^ 0xa2;
  uVar19 = DAT_1826715b4;
  uVar26 = CONCAT44(uVar9,uVar4) ^ 0xc77202cc04dd89b2;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0x17f2c998)) ^
           (ulonglong)DAT_182671844) = (byte)uVar5 ^ 0x47;
  iVar13 = DAT_1826715b0;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xea6f012)) =
       ((ulonglong)uVar14 ^ *(ulonglong *)(lVar2 + -0x40)) + uVar26;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar16 ^ 0x57cf7fae)) ^ uVar32) =
       *(byte *)(lVar2 + -0x919) ^ (byte)DAT_182671784;
  uVar32 = (ulonglong)DAT_182671824;
  *(byte *)(lVar2 - (uVar21 ^ 0xb81db875)) = (byte)iVar13 ^ 0x22;
  *(undefined8 *)(lVar2 + -0x250) = *(undefined8 *)(lVar2 + -0x1e0);
  *(undefined8 *)(lVar2 - (uVar20 ^ 0xcab73d5e)) = *(undefined8 *)(lVar2 - (uVar25 ^ 0xea6f93a));
  pbVar31 = *(byte **)(lVar2 + -0x138);
  *(ulonglong *)(lVar2 + -600) = *(ulonglong *)(lVar2 + -0x250) ^ uVar32;
  uVar18 = (ulonglong)DAT_1826716a4;
  *(ulonglong *)(lVar2 + -0x638) =
       *(ulonglong *)(lVar2 - (uVar27 ^ 0xdafebe1a)) >> (((byte)uVar30 ^ 0x39) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc0) = (ulonglong)pbVar31 ^ uVar18;
  bVar24 = (byte)DAT_182671774;
  *(ulonglong *)(DAT_182671560 + -0x150) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar35 ^ 0xcff73e2e)) ^ uVar18) +
       (CONCAT44(uVar6,uVar30) ^ 0x57cf7fee7f8fb439);
  lVar2 = DAT_182671560;
  uVar18 = *(ulonglong *)(DAT_182671560 + -0x650);
  *(byte *)(DAT_182671560 + -0xab9) = *pbVar31 ^ bVar24 ^ (byte)DAT_182671718;
  uVar16 = (ulonglong)_DAT_1826715dc;
  *(byte *)(lVar2 + -0x1f9) = (byte)iVar13 ^ 0x90;
  *(undefined1 *)(uVar18 ^ uVar16) = 0xf2;
  *(ulonglong *)(lVar2 + -0x9e8) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0x9805abf8)) >>
       ((byte)*(undefined8 *)(lVar2 + -0x8a8) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xb81db59c)) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0xdafeb04a)) ^ uVar32) +
       (CONCAT44(uVar19,uVar7) ^ 0x17f2cd088d31cdfd);
  bVar15 = (byte)DAT_1826715b4;
  *(byte *)(uVar32 ^ *(ulonglong *)(lVar2 + -600)) = bVar24 ^ *(byte *)(lVar2 + -0xab9);
  uVar16 = (ulonglong)DAT_182671874;
  *(byte *)(lVar2 + -0xab9) = bVar15 ^ 0x5e;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar9 ^ 0xc7720344)) =
       *(undefined8 *)(lVar2 - (uVar27 ^ 0xdafeb6e2));
  *(undefined8 *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x4dd8533)) = *(undefined8 *)(lVar2 + -0x150);
  *(ulonglong *)(lVar2 + -0xc28) = *(ulonglong *)(lVar2 + -0x188) ^ uVar16;
  uVar18 = (ulonglong)DAT_18267175c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xc7720a0c)) =
       *(ulonglong *)(lVar2 - (uVar17 ^ 0x13154fd5)) ^ uVar18;
  bVar15 = (byte)DAT_1826715ac;
  pbVar31 = (byte *)(*(ulonglong *)(lVar2 + -0x8c0) ^ uVar18);
  *(byte **)(lVar2 + -0x4b0) = pbVar31 + 1;
  *(byte *)(lVar2 + -0x209) = (byte)DAT_1826717a4 ^ *pbVar31 ^ (byte)DAT_182671718;
  *(byte *)(lVar2 + -0xc52) = (byte)uVar34 ^ 0x2e;
  *(byte *)(*(ulonglong *)(lVar2 + -0x668) ^ (ulonglong)_DAT_182671610) = bVar15 ^ 0x52;
  pbVar31 = (byte *)(uVar16 ^ *(ulonglong *)(lVar2 + -0xc28));
  *(byte **)(lVar2 + -0x18) = pbVar31 + (CONCAT44(uVar35,uVar30) ^ 0xcff73eee7f8fb439);
  uVar4 = DAT_182671858;
  uVar16 = (ulonglong)DAT_182671858;
  bVar15 = *(byte *)(lVar2 + -0x209) ^ (byte)DAT_1826717a4;
  *(int *)(lVar2 + -0x844) = *(int *)(lVar2 - (uVar29 ^ 0x8d31caa8)) + -0x29f1714b;
  *pbVar31 = bVar15;
  lVar3 = DAT_182671560;
  uVar18 = *(ulonglong *)(lVar2 + -0x4b0);
  bVar15 = (byte)DAT_182671578;
  *(ulonglong *)(lVar2 + -0x298) = *(ulonglong *)(lVar2 + -0x18);
  *(byte *)(lVar2 + -0x209) = bVar15 ^ 0xa5;
  *(ulonglong *)(lVar2 + -0x470) = uVar18;
  uVar17 = (ulonglong)DAT_182671630;
  *(ulonglong *)(lVar3 + -0xac8) = uVar17 ^ *(ulonglong *)(lVar2 + -0x18);
  pbVar31 = (byte *)(lVar3 - ((ulonglong)uVar30 ^ 0x7f8fbfe1));
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x8d31cacc)) = uVar16 ^ uVar18;
  *(undefined8 *)(lVar3 + -0xbf0) = 0xd31ac7eb00000000;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x9805a490)) =
       ((ulonglong)uVar4 ^ *(ulonglong *)(lVar3 + -0x730)) + uVar26;
  bVar15 = (byte)DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar11,uVar6) ^ 0xa31cf7f6f25beee9) +
       (CONCAT44(iVar12,uVar33) ^ 0x782574368cde64b4);
  *pbVar31 = *(byte *)(uVar16 ^ *(ulonglong *)(lVar3 + -0x730)) ^ (byte)DAT_18267177c ^
             (byte)DAT_182671718;
  *(byte *)(lVar3 + -0x189) = (byte)DAT_1826715b4 ^ 0xb5;
  *(byte *)(*(ulonglong *)(lVar3 + -0x788) ^ (ulonglong)DAT_182671894) = bVar15 ^ 0x54;
  bVar15 = *(byte *)(lVar3 + -0xbd9) ^ (byte)DAT_18267177c;
  *(ulonglong *)(lVar3 + -0x240) =
       (CONCAT44(uVar5,uVar10) ^ 0x446dfcf2e7517775) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar21 ^ 0xb81db09c)) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbc8) =
       (CONCAT44(uVar10,uVar35) ^ 0xea6f1f2cff73eef) + (*(ulonglong *)(lVar3 + -0xac8) ^ uVar17);
  uVar18 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar3 + -0x110) = CONCAT44(uVar7,uVar5) ^ 0x1002683069088828 | 0x8fac974392e17517;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar18 ^ 0x4dd837b)) ^ uVar17) = bVar15;
  *pbVar31 = (byte)uVar28 ^ 0xb1;
  *(undefined8 *)(lVar3 + -0xd80) = *(undefined8 *)(lVar3 + -0xbc8);
  *(undefined8 *)(lVar3 + -0xae8) = *(undefined8 *)(lVar3 + -0xd18);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xdafeb2b2)) =
       CONCAT44(uVar7,uVar33) ^ 0xd3f86b9d1ab247b8 | CONCAT44(uVar8,uVar11) ^ 0xd43c27e551c526a;
  *(ulonglong *)(lVar3 + -0xb30) = (ulonglong)DAT_182671778 ^ *(ulonglong *)(lVar3 + -0xd80);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar35) * 4) = uVar22;
  return;
}



############ FUN_ 180e9f760 size=4042 ############

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

void FUN_180e9f760(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  undefined8 *puVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  longlong *plVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint *puVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  byte *pbVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  uint uVar38;
  uint uVar39;
  ulonglong uVar40;
  uint uVar41;
  
  uVar38 = DAT_18267166c;
  uVar27 = DAT_182671598;
  uVar10 = DAT_18267158c;
  uVar16 = DAT_182671584;
  uVar9 = DAT_182671578;
  lVar7 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671584;
  uVar30 = DAT_182671584 & DAT_182671578;
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_182671b84) ^ DAT_182671584;
  uVar6 = *(uint *)(&DAT_182611e80 + DAT_182671b84);
  uVar41 = DAT_1826715b0 | DAT_182671598;
  uVar24 = DAT_182671594 * DAT_18267158c;
  uVar37 = (ulonglong)uVar24;
  puVar1 = (uint *)(DAT_182671560 + -0x964);
  uVar25 = *(uint *)(DAT_182671560 + -0x5cc) ^ DAT_18267182c;
  DAT_182671590 = uVar30;
  DAT_18267159c = uVar41;
  DAT_1826715b4 = uVar24;
  *(uint *)(DAT_182671560 + -0x328) =
       (*puVar1 ^ DAT_18267175c) + (DAT_182671578 ^ 0xd5f39575) ^ DAT_1826715e4;
  *(uint *)(lVar7 - (uVar37 ^ 0x3857bc45)) =
       uVar25 << (((byte)DAT_182671594 ^ 0x14) & 0x1f) ^ DAT_18267186c;
  lVar8 = DAT_182671560;
  puVar2 = (uint *)(lVar7 + -0x344);
  uVar17 = (ulonglong)uVar10;
  puVar28 = (uint *)(lVar7 - (uVar17 ^ 0x2a7cb3e5));
  puVar3 = (uint *)(lVar7 + -0x844);
  uVar25 = (*puVar28 ^ DAT_1826715e4) - (*puVar3 ^ DAT_18267186c) ^ DAT_1826717a4;
  *puVar2 = uVar25;
  uVar39 = DAT_182671700;
  uVar26 = (*(uint *)(lVar7 + -0x874) ^ DAT_1826715c4) * (uVar25 ^ DAT_1826717a4);
  uVar25 = *(uint *)(lVar8 + -0x5cc) ^ DAT_18267182c;
  *(uint *)(lVar8 + -0x754) = uVar26 ^ DAT_182671700;
  uVar18 = (ulonglong)uVar27;
  uVar25 = uVar25 * (DAT_1826715b0 ^ 0x5ff96fa7) ^ DAT_1826717cc;
  *(uint *)(lVar7 + -0x47c) = uVar25;
  uVar26 = uVar26 + (uVar25 ^ DAT_1826717cc);
  plVar21 = (longlong *)(lVar7 - (uVar18 ^ 0x745eaf95));
  *(uint *)(lVar7 + -0x910) = uVar26 ^ uVar38;
  *(uint *)(lVar7 + -0x678) = uVar26 * 0x2000 ^ DAT_182671650;
  *(longlong *)(lVar7 - ((ulonglong)uVar9 ^ 0xdc04b6b0)) = *plVar21 + 0x24c3eb95d15cf318;
  uVar26 = DAT_182671594;
  uVar25 = *(uint *)(lVar7 + -0x678) ^ DAT_182671650;
  uVar32 = (*(uint *)(lVar7 + -0x874) ^ DAT_1826715c4) + (*(uint *)(lVar7 + -0x3c8) ^ DAT_182671624)
           ^ DAT_18267172c;
  uVar38 = (uVar38 ^ *(uint *)(lVar7 + -0x910)) >> 0x13 ^ DAT_1826717e8;
  *(uint *)(lVar7 + -0x374) = uVar38;
  *(uint *)(lVar7 + -0x27c) = (uVar25 | uVar38 ^ DAT_1826717e8) ^ DAT_182671604;
  uVar11 = DAT_182671694;
  uVar22 = (ulonglong)uVar41;
  puVar4 = (uint *)(lVar7 + -0x504);
  *(uint *)(lVar7 - (uVar22 ^ 0x7fffeafb)) = uVar32;
  *puVar1 = DAT_182671870 ^ DAT_18267172c ^ *puVar4;
  uVar13 = DAT_1826718b4;
  *(uint *)(lVar7 + -0x328) = DAT_1826715cc ^ DAT_182671604 ^ *(uint *)(lVar7 + -0x27c);
  *puVar3 = *(uint *)(lVar7 - ((ulonglong)uVar30 ^ 0x80049964)) ^ uVar13 ^ DAT_182671870;
  *(byte *)(lVar7 - ((ulonglong)uVar16 ^ 0xa0069c09)) =
       *(byte *)(*(ulonglong *)(lVar7 - ((ulonglong)uVar26 ^ 0x289473d)) ^ (ulonglong)DAT_1826718b8)
       ^ (byte)uVar11;
  uVar23 = (ulonglong)DAT_182671654;
  *puVar2 = *puVar28 ^ DAT_1826718ac ^ DAT_1826715cc;
  uVar34 = DAT_1826718bc;
  uVar14 = DAT_182671768;
  lVar7 = DAT_182671560;
  pbVar35 = (byte *)((CONCAT44(uVar9,uVar16) ^ 0xdc04b3a0a0069048) * 0x20 +
                     (CONCAT44(uVar30,uVar41) ^ 0x800490007fffefe4) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  puVar36 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *(ulonglong *)(DAT_182671560 + -0x108) = (ulonglong)pbVar35 ^ uVar23;
  *(ulonglong *)(lVar7 + -0x6b8) = CONCAT44(uVar9,uVar30) ^ *puVar36 ^ 0xb7c87854081da582;
  bVar15 = *pbVar35 ^ (byte)uVar14 ^ (byte)uVar11;
  puVar36 = (ulonglong *)(DAT_182671560 + -0x1f0);
  *(byte *)(lVar7 + -0x41) = bVar15;
  uVar32 = DAT_1826715b0;
  uVar29 = (ulonglong)DAT_1826715b0;
  uVar23 = CONCAT44(uVar27,DAT_1826715b0);
  *(uint *)(lVar7 - (uVar37 ^ 0x3857b1cd)) = (uint)bVar15 ^ uVar14 & 0xff ^ uVar34;
  uVar12 = DAT_182671714;
  uVar38 = DAT_182671664;
  *puVar36 = uVar23 ^ 0x1e60640154ada031 | CONCAT44(uVar26,uVar41) ^ 0xe204e5bb98af1182;
  lVar7 = DAT_182671560;
  uVar33 = (*puVar2 ^ DAT_1826718ac) + (uVar10 ^ 0x238b9618);
  puVar28 = (uint *)(DAT_182671560 - ((ulonglong)uVar32 ^ 0x5ff96a7b));
  bVar15 = (byte)DAT_182671578;
  *(uint *)(DAT_182671560 + -0x47c) = uVar33 ^ uVar38;
  uVar38 = *puVar28;
  *(longlong *)(lVar7 + -0x9e8) = *(longlong *)(lVar7 + -0x9f8) + *(longlong *)(lVar7 + -0x270);
  *(uint *)(lVar7 + -0x754) = (uVar38 ^ uVar34) << ((bVar15 ^ 0xb1) & 0x1f) ^ uVar12;
  uVar25 = DAT_182671594;
  uVar33 = uVar33 - (*(uint *)(lVar7 - (uVar17 ^ 0x2a7cb799)) ^ uVar12);
  *(uint *)(lVar7 + -0x910) = uVar33 ^ DAT_1826716fc;
  uVar38 = DAT_182671590;
  *(ulonglong *)(lVar7 + -0x628) =
       CONCAT44(uVar41,uVar25) ^ CONCAT44(uVar27,uVar24) ^ 0x129c0e96008a08d8;
  *(uint *)(lVar7 + -0x678) = (*puVar3 ^ uVar13) * uVar33 ^ DAT_182671840;
  uVar34 = (*(uint *)(lVar7 + -0x5cc) ^ uVar34) * (uVar38 ^ 0x8004901b);
  *(uint *)(lVar7 + -0x374) = uVar34 ^ uVar39;
  uVar25 = DAT_182671668;
  uVar34 = (*(uint *)(lVar7 - (uVar31 ^ 0xa0069630)) ^ DAT_182671840) + uVar34;
  bVar19 = (byte)DAT_182671594 ^ 8;
  *(uint *)(lVar7 + -0x874) = uVar34 ^ uVar11;
  *(uint *)(lVar7 - (uVar17 ^ 0x2a7cb5c9)) = uVar34 << (bVar19 & 0x1f) ^ uVar25;
  uVar39 = DAT_182671798;
  *(uint *)(lVar7 + -0x27c) =
       (*(uint *)(lVar7 + -0x874) ^ uVar11) >> (((byte)uVar27 ^ 0xce) & 0x1f) ^ DAT_1826718d0;
  puVar28 = (uint *)(lVar7 - (uVar31 ^ 0xa0069234));
  *(uint *)(lVar7 - (uVar22 ^ 0x7fffe69b)) = (uVar25 ^ *puVar4 | *puVar28 ^ DAT_1826718d0) ^ uVar39;
  lVar7 = DAT_182671560;
  uVar23 = CONCAT44(uVar24,DAT_182671578);
  *(ulonglong *)(DAT_182671560 + -0xc08) = (uVar23 ^ 0xc229e4ab9130cbc5) + 0x3c758e1c677d495a;
  lVar8 = DAT_182671560;
  uVar25 = (*(uint *)(lVar7 - ((ulonglong)uVar32 ^ 0x5ff967f3)) ^ uVar13) +
           (*(uint *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0x800493c8)) ^ DAT_182671624) ^
           _DAT_18267188c;
  *(uint *)(DAT_182671560 + -0x328) = uVar25;
  *(uint *)(lVar8 - (uVar37 ^ 0x3857b745)) = uVar25 ^ _DAT_18267188c ^ uVar39;
  uVar11 = DAT_182671594;
  lVar7 = DAT_182671560;
  uVar40 = (ulonglong)DAT_182671594;
  *(longlong *)(DAT_182671560 + -0xa0) =
       *(longlong *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0x28942a5)) + 0x2a232359fe6e6f68;
  lVar8 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar32 ^ 0x5ff968e3)) =
       *(uint *)(lVar7 - (uVar18 ^ 0x745ea3b9)) ^ uVar39 ^ uVar12;
  *(uint *)(lVar8 + -0x47c) = *puVar2 ^ uVar39 ^ uVar14;
  *(uint *)(lVar8 - (uVar17 ^ 0x2a7cb9dd)) = (uVar32 ^ 0x4711b009) + (uVar38 ^ 0x89f3b6d5);
  *(uint *)(lVar8 + -0x5cc) = *(uint *)(lVar8 + -0x754) ^ DAT_1826715d0 ^ uVar12;
  uVar12 = DAT_182671698;
  bVar15 = (byte)DAT_182671640;
  uVar37 = (ulonglong)DAT_18267165c;
  *(ulonglong *)(lVar8 - (uVar22 ^ 0x7fffe59f)) =
       (CONCAT44(uVar9,uVar32) ^ 0xfac90d7bc53955d8) - *(longlong *)(lVar8 + -0xbf0);
  pbVar35 = (byte *)(*(longlong *)(lVar8 + -0x8f0) + 6 +
                    (CONCAT44(uVar30,uVar11) ^ 0x8004900002894005) * 0x20);
  *(ulonglong *)(lVar8 + -0x5e8) = (ulonglong)pbVar35 ^ uVar37;
  *(byte *)(lVar8 + -0xc41) = *pbVar35 ^ bVar15 ^ (byte)DAT_182671694;
  uVar34 = DAT_182671854;
  *(ulonglong *)(lVar8 - (uVar40 ^ 0x289489d)) =
       *(ulonglong *)(lVar8 - (uVar31 ^ 0xa0069660)) >> (((byte)uVar30 ^ 0x19) & 0x3f);
  *(uint *)(lVar8 - (uVar29 ^ 0x5ff969cf)) = (bVar15 ^ *(byte *)(lVar8 + -0xc41)) ^ uVar12;
  *(longlong *)(lVar8 + -0x1d8) = *(longlong *)(lVar8 + -0x240) + 0x1bba95b8afb30447;
  lVar7 = DAT_182671560;
  uVar33 = (*(uint *)(lVar8 + -0x5cc) ^ DAT_1826715d0) + (uVar24 ^ 0x31a092d4) ^ DAT_1826717d0;
  *(uint *)(DAT_182671560 + -0x374) = uVar33;
  uVar33 = uVar33 ^ DAT_1826717d0;
  uVar38 = (*(uint *)(lVar7 - (uVar17 ^ 0x2a7cb6b5)) ^ uVar12) << 0x11 ^ DAT_182671660;
  puVar5 = (undefined8 *)(DAT_182671560 + -0x800);
  *(uint *)(DAT_182671560 + -0x874) = uVar38;
  lVar7 = DAT_182671560;
  uVar33 = uVar33 - (uVar38 ^ DAT_182671660);
  *(longlong *)(DAT_182671560 + -0x5c8) = *plVar21 << ((byte)*puVar5 & 0x3f);
  uVar13 = DAT_18267173c;
  uVar39 = _DAT_18267161c;
  uVar25 = DAT_182671578;
  uVar38 = *(uint *)(lVar7 + -0x47c);
  *puVar4 = uVar33 ^ uVar34;
  *(uint *)(lVar7 - (uVar29 ^ 0x5ff96dcb)) = uVar33 * (uVar14 ^ uVar38) ^ uVar39;
  lVar8 = DAT_182671560;
  *(uint *)(lVar7 - (uVar31 ^ 0xa006980c)) =
       (*(uint *)(lVar7 + -0x678) ^ uVar12) * (uVar25 ^ 0xdc04b3a6) ^ DAT_1826715f8;
  uVar12 = DAT_182671630;
  uVar37 = (ulonglong)DAT_182671780;
  uVar39 = (uVar39 ^ *(uint *)(lVar7 + -0x27c)) + (*puVar3 ^ DAT_1826715f8);
  *(uint *)(lVar7 + -0x328) = uVar39 ^ DAT_182671630;
  uVar38 = *(uint *)(lVar8 + -0x328);
  *puVar1 = uVar39 << (((byte)uVar24 ^ 0xc) & 0x1f) ^ DAT_1826716cc;
  *puVar2 = (uVar12 ^ uVar38) >> (((byte)uVar41 ^ 0xec) & 0x1f) ^ DAT_1826717c8;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar30 ^ 0x80049110)) =
       CONCAT44(uVar26,uVar16) ^ uVar23 ^ 0xc848adf65a8d40bf;
  uVar38 = *(uint *)(lVar8 + -0x968) ^ DAT_18267177c;
  *(uint *)(lVar8 + -0x910) = (*puVar2 ^ DAT_1826717c8 | *puVar1 ^ DAT_1826716cc) ^ uVar13;
  *(uint *)(lVar8 + -0x754) = (*(uint *)(lVar8 + -0x274) ^ DAT_1826718cc) + uVar38 ^ DAT_18267160c;
  uVar26 = DAT_182671728;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0x289451d)) =
       *(longlong *)(lVar8 + -0xa08) +
       ((CONCAT44(uVar27,uVar16) ^ 0x745eaadda0069048) * 5 +
       (CONCAT44(uVar9,uVar10) ^ 0xdc04b3a02a7cb0ce)) * 4 ^ uVar37;
  *(uint *)(*(ulonglong *)(lVar8 + -0x518) ^ uVar37) =
       *(uint *)(lVar8 - (uVar29 ^ 0x5ff966a7)) ^ DAT_1826717b4 ^ uVar13;
  *(uint *)(lVar8 - ((ulonglong)uVar25 ^ 0xdc04b66c)) =
       *(uint *)(lVar8 + -0x754) ^ DAT_182671770 ^ DAT_18267160c;
  uVar25 = *(uint *)(lVar8 + -0x5cc) ^ DAT_18267183c ^ DAT_182671770;
  *(uint *)(lVar8 + -0x374) = *(uint *)(lVar8 - (uVar18 ^ 0x745ea3cd)) ^ DAT_1826717a0 ^ uVar13;
  uVar38 = DAT_1826715bc ^ DAT_1826717a0;
  *(uint *)(lVar8 - (uVar22 ^ 0x7fffe78b)) = uVar25;
  *(uint *)(lVar8 - (uVar40 ^ 0x2894501)) = uVar38 ^ *(uint *)(lVar8 + -0x374);
  *(uint *)(lVar8 - (uVar18 ^ 0x745eaea1)) =
       *(uint *)(lVar8 + -0x874) ^ DAT_182671820 ^ DAT_18267183c;
  uVar27 = DAT_182671760 ^ DAT_1826715bc ^ *puVar4;
  uVar38 = uVar26 ^ DAT_182671820;
  *(uint *)(lVar8 + -0x678) = uVar27;
  *(uint *)(lVar8 + -0x27c) = uVar38 ^ *(uint *)(lVar8 + -0x47c);
  uVar11 = DAT_182671830;
  uVar25 = DAT_18267162c;
  lVar7 = DAT_182671560;
  uVar23 = (ulonglong)DAT_1826717f4;
  *(uint *)(DAT_182671560 - (uVar18 ^ 0x745ea299)) = uVar27 ^ DAT_182671830 ^ DAT_182671760;
  bVar15 = (byte)DAT_182671898;
  pbVar35 = (byte *)((CONCAT44(uVar30,uVar16) ^ 0x80049000a0069048) * 0x20 + 0x11 +
                    *(longlong *)(lVar7 - (uVar29 ^ 0x5ff96747)));
  *(ulonglong *)(lVar7 + -0xad0) = (ulonglong)pbVar35 ^ uVar23;
  *(ulonglong *)(lVar7 + -0x6d0) =
       (CONCAT44(uVar10,uVar32) ^ 0xe44788e45c6fffc6) << (((byte)uVar24 ^ 10) & 0x3f);
  *(byte *)(lVar7 + -0x41) = *pbVar35 ^ bVar15 ^ (byte)DAT_182671694;
  *(undefined1 *)(*(ulonglong *)(lVar7 + -0x9b0) ^ (ulonglong)DAT_182671844) = 0x48;
  *(uint *)(lVar7 - (uVar31 ^ 0xa0069360)) = (*(byte *)(lVar7 + -0x41) ^ bVar15) ^ uVar25;
  uVar38 = *(uint *)(lVar7 + -0x328);
  uVar27 = (uVar25 ^ *(uint *)(lVar7 + -0x328)) << 0x11 ^ DAT_1826717dc;
  uVar16 = DAT_182671594 ^ 0xb7e66d0;
  *puVar2 = uVar27;
  uVar27 = uVar27 ^ DAT_1826717dc;
  uVar16 = (*puVar3 ^ uVar11) + uVar16 ^ DAT_1826715c0;
  *puVar1 = uVar16;
  uVar27 = (uVar16 ^ DAT_1826715c0) - uVar27;
  *(uint *)(lVar7 + -0x274) = uVar27 ^ DAT_182671708;
  uVar27 = (*puVar28 ^ uVar26) * uVar27;
  uVar16 = (uVar25 ^ uVar38) * 0x11 ^ DAT_1826718ac;
  *(uint *)(lVar7 + -0x968) = uVar27 ^ uVar11;
  uVar25 = DAT_182671874;
  *(uint *)(lVar7 + -0x754) = uVar16;
  uVar38 = DAT_182671670;
  uVar16 = (uVar16 ^ DAT_1826718ac) + uVar27 ^ DAT_182671670;
  uVar23 = CONCAT44(uVar10,DAT_182671570);
  *(ulonglong *)(lVar7 + -0x510) =
       0x149f51a8afa1d7f >>
       ((byte)*(undefined8 *)(lVar7 - ((ulonglong)DAT_182671570 ^ 0xad96496)) & 0x3f);
  *(uint *)(lVar7 - (uVar31 ^ 0xa0069584)) = uVar16;
  puVar28 = (uint *)(lVar7 - (uVar22 ^ 0x7fffec8b));
  bVar15 = (byte)DAT_182671578;
  *(ulonglong *)(lVar7 + -0x8a8) = *(ulonglong *)(lVar7 + -0x3f0) >> (((byte)uVar32 ^ 0xb6) & 0x3f);
  *puVar28 = (*(uint *)(lVar7 + -0x5cc) ^ uVar38) << (bVar19 & 0x1f) ^ uVar25;
  *(uint *)(lVar7 + -0x874) =
       (*(uint *)(lVar7 + -0x5cc) ^ uVar38) >> ((bVar15 ^ 0xb3) & 0x1f) ^ DAT_1826717d8;
  uVar18 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_18267157c ^ 0x28946be)) =
       *(ulonglong *)(lVar7 - (uVar17 ^ 0x2a7cb115)) ^ uVar23 ^ 0x7628b6de665a2d16;
  uVar38 = (*(uint *)(lVar7 + -0x3c8) ^ DAT_182671624) + (uVar26 ^ *(uint *)(lVar7 + -0x27c)) ^
           DAT_182671894;
  *puVar4 = (*(uint *)(lVar7 - (uVar18 ^ 0xfffff78b)) ^ DAT_1826717d8 | uVar25 ^ *puVar28) ^
            DAT_1826716e8;
  *(uint *)(lVar7 - (uVar22 ^ 0x7fffeb83)) = uVar38;
  uVar17 = (ulonglong)DAT_1826715a0;
  *(int *)(lVar7 + -0x678) = 0x392d3e6 << (((byte)DAT_1826715a4 ^ 0xc5) & 0x1f);
  uVar38 = *(uint *)(lVar7 - (uVar17 ^ 0xaadd7022)) ^ DAT_182671894 ^ uVar13;
  *puVar3 = uVar38;
  uVar38 = uVar38 ^ DAT_1826716bc;
  *puVar1 = DAT_1826718a4 ^ DAT_1826716e8 ^ *puVar4;
  *puVar36 = CONCAT44(uVar24,uVar41) ^ CONCAT44(uVar9,uVar10) ^ 0x6b2fc09c38f75dc2;
  *puVar2 = uVar38 ^ uVar13;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar6 ^ uVar30) * 4) = uVar20;
  return;
}



############ FUN_ 180ec8cb0 size=4610 ############

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

void FUN_180ec8cb0(void)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint *puVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint *puVar21;
  ulonglong uVar22;
  uint *puVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  byte *pbVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint *puVar41;
  byte local_58;
  
  uVar5 = DAT_1826717ac;
  uVar19 = DAT_1826715e4;
  uVar6 = DAT_1826715ac;
  uVar18 = DAT_1826715a0;
  uVar25 = DAT_182671594;
  uVar4 = DAT_182671590;
  uVar32 = DAT_18267158c;
  uVar20 = DAT_182671588;
  uVar33 = DAT_182671584;
  uVar12 = DAT_182671570;
  lVar1 = DAT_182671560;
  uVar17 = (ulonglong)DAT_182671590;
  DAT_182671574 = DAT_18267159c - DAT_182671598;
  uVar16 = (ulonglong)DAT_182671594;
  uVar36 = (ulonglong)DAT_182671570;
  uVar26 = (ulonglong)DAT_182671584;
  uVar22 = (ulonglong)DAT_182671580;
  uVar9 = DAT_1826715ac << 0x10 | DAT_1826715ac >> 0x10;
  DAT_182671578 = DAT_182671584 + DAT_182671580;
  DAT_18267157c = DAT_1826715a0 & DAT_182671570;
  DAT_1826715b0 = DAT_182671594 & DAT_182671590;
  uVar29 = *(uint *)(&DAT_182611e78 + DAT_1826718e8) ^ DAT_1826715b0;
  uVar10 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_182671590 ^ 0xffffffef) + (longlong)DAT_1826718e8) ^
           DAT_182671594;
  uVar15 = (ulonglong)DAT_18267158c;
  uVar39 = (ulonglong)DAT_182671588;
  puVar13 = (uint *)(DAT_182671560 - (uVar22 ^ 0x3bfe2b1c));
  uVar30 = (*(uint *)(DAT_182671560 + -0x504) ^ DAT_1826716d4) * (DAT_182671578 ^ 0xdc04b3aa) ^
           DAT_1826716ac;
  DAT_1826715b4 = uVar9;
  *(uint *)(DAT_182671560 + -0x47c) = uVar30;
  *(uint *)(lVar1 - (uVar26 ^ 0xa006930c)) =
       (*puVar13 ^ DAT_182671858) + (uVar30 ^ DAT_1826716ac) ^ uVar5;
  uVar31 = (uVar5 ^ *(uint *)(lVar1 + -0x344)) << 0xd ^ DAT_182671814;
  *(uint *)(lVar1 + -0x27c) = uVar31;
  uVar31 = uVar31 ^ DAT_182671814;
  uVar30 = (*(uint *)(lVar1 - ((ulonglong)uVar12 ^ 0x568943c2)) ^ uVar5) >>
           (((byte)uVar18 ^ 0x4d) & 0x1f) ^ DAT_1826718a8;
  *(uint *)(lVar1 + -0x5cc) = uVar30;
  uVar5 = DAT_182671608;
  *(uint *)(lVar1 - (uVar26 ^ 0xa0069630)) = (uVar30 ^ DAT_1826718a8 | uVar31) ^ DAT_182671608;
  uVar24 = (DAT_182671624 ^ *(uint *)(lVar1 + -0x3c8)) + (DAT_1826717f4 ^ *(uint *)(lVar1 + -0x328))
           ^ uVar19;
  uVar31 = uVar32 & 7;
  *(uint *)(lVar1 + -0x374) = uVar24;
  uVar30 = DAT_182671648;
  if (uVar31 < 4) {
    if (uVar31 < 2) {
      uVar18 = DAT_182671568;
      if (uVar31 == 0) {
        uVar18 = uVar32;
      }
    }
    else {
      uVar18 = DAT_1826715a4;
      if (uVar31 < 3) {
        uVar18 = DAT_1826715a8;
      }
    }
  }
  else if (uVar31 < 6) {
    uVar18 = uVar12;
    if (uVar31 < 5) {
      uVar18 = uVar20;
    }
  }
  else if (uVar31 < 7) {
    uVar18 = uVar25;
  }
  uVar35 = DAT_182671634 ^ DAT_18267167c;
  DAT_18267156c = uVar18;
  *(uint *)(lVar1 - ((ulonglong)DAT_182671568 ^ 0x99964c9a)) = uVar24 ^ DAT_182671648 ^ uVar19;
  uVar12 = DAT_1826715a4;
  uVar27 = (ulonglong)DAT_1826717dc;
  *(uint *)(lVar1 + -0x964) = *(uint *)(lVar1 + -0x678) ^ DAT_18267167c ^ uVar5;
  uVar7 = DAT_182671878;
  uVar31 = DAT_1826715a8;
  uVar11 = uVar4 << 0x10 | uVar4 >> 0x10;
  uVar14 = (ulonglong)uVar18;
  uVar28 = (ulonglong)DAT_1826715a8;
  DAT_182671568 = uVar11;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar12 ^ 0x3bfe2128)) =
       (CONCAT44(uVar4,uVar11) ^ 0x3aa58f36fc069a9d) >> (((byte)uVar33 ^ 0x4d) & 0x3f);
  uVar35 = uVar35 ^ *(uint *)(lVar1 + -0x964);
  pbVar34 = (byte *)(*(longlong *)(lVar1 + -0x8f0) + 0x15);
  uVar12 = *(uint *)(lVar1 - (uVar28 ^ 0x9300e788));
  *(ulonglong *)(lVar1 + -0x4c8) = (ulonglong)pbVar34 ^ uVar27;
  *(uint *)(lVar1 + -0x874) = uVar12 ^ uVar7 ^ uVar30;
  *(longlong *)(lVar1 + -0x6b8) = *(longlong *)(lVar1 + -0x3f0) << (((byte)uVar32 ^ 0xc2) & 0x3f);
  puVar13 = (uint *)(lVar1 + -0x910);
  *puVar13 = uVar35;
  *(ulonglong *)(lVar1 + -0x6d0) = *(ulonglong *)(lVar1 + -0x548) >> (((byte)uVar20 ^ 0xe8) & 0x3f);
  uVar32 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar18 = DAT_1826715c8 & 0xff;
  bVar8 = *pbVar34 ^ (byte)DAT_1826715c8 ^ (byte)DAT_182671694;
  uVar35 = uVar35 ^ DAT_182671634;
  uVar12 = DAT_182671590 ^ 0xf608d92a;
  *(byte *)(lVar1 + -0x41) = bVar8;
  uVar25 = DAT_182671754;
  uVar12 = uVar35 + uVar12 ^ _DAT_1826716c0;
  *(uint *)(lVar2 + -0x844) = uVar18 ^ bVar8 ^ DAT_182671754;
  *(uint *)(lVar2 - (uVar36 ^ 0x568944fa)) = uVar12;
  uVar28 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 + -0x9f8) =
       (CONCAT44(uVar4,uVar32) ^ 0xedbfa406a7e22491) >>
       ((byte)*(undefined8 *)(lVar2 + -0x510) & 0x3f);
  uVar12 = DAT_182671630;
  uVar18 = DAT_1826715ac;
  *(uint *)(lVar2 - (uVar22 ^ 0x3bfe201c)) =
       (*(uint *)(lVar2 - (uVar28 ^ 0x745ea299)) ^ uVar25) << (((byte)DAT_18267156c ^ 0x97) & 0x1f)
       ^ DAT_182671630;
  uVar5 = DAT_18267186c;
  uVar35 = *(uint *)(lVar2 + -0x504) ^ DAT_1826716d4;
  uVar12 = (*(uint *)(lVar2 - (uVar15 ^ 0x2a7cb4b1)) ^ _DAT_1826716c0) -
           (uVar12 ^ *(uint *)(lVar2 + -0x344)) ^ DAT_1826718c4;
  *(uint *)(lVar2 + -0x27c) = uVar12;
  *(uint *)(lVar2 + -0x5cc) =
       (uVar12 ^ DAT_1826718c4) * (*(uint *)(lVar2 + -0x874) ^ uVar7) ^ _DAT_182671618;
  *(ulonglong *)(lVar2 + -0x898) =
       (CONCAT44(uVar18,uVar11) ^ 0x7779855170b1fd8d) >>
       ((byte)*(undefined8 *)(lVar2 + -0x9e8) & 0x3f);
  *(uint *)(lVar2 + -0x328) = (*(uint *)(lVar2 + -0x844) ^ uVar25) * 0x15 ^ uVar5;
  uVar24 = DAT_1826715d0;
  uVar19 = DAT_18267159c;
  uVar37 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0xded82ba3)) = uVar35 | 0xffc574cd;
  uVar12 = DAT_1826717f0;
  *(uint *)(lVar2 + -0x678) =
       (*(uint *)(lVar2 + -0x5cc) ^ _DAT_182671618) + (uVar5 ^ *(uint *)(lVar2 + -0x328)) ^
       DAT_1826717f0;
  uVar25 = (*(uint *)(lVar2 - (uVar37 ^ 0xac9ee78)) ^ uVar12) << 0xd ^ DAT_182671780;
  *(uint *)(lVar2 + -0x964) =
       (*(uint *)(lVar2 + -0x678) ^ uVar12) >> (((byte)DAT_182671570 ^ 0x95) & 0x1f) ^ DAT_182671654
  ;
  *(uint *)(lVar2 + -0x754) = uVar25;
  *puVar13 = (*(uint *)(lVar2 - (uVar26 ^ 0xa006992c)) ^ DAT_182671654 | uVar25 ^ DAT_182671780) ^
             uVar30;
  uVar12 = DAT_182671574;
  uVar25 = (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0xac9e074)) ^ uVar7) +
           (DAT_182671624 ^ *(uint *)(lVar2 + -0x3c8)) ^ DAT_182671880;
  *(uint *)(lVar2 + -0x47c) = uVar25;
  *(uint *)(lVar2 - (uVar39 ^ 0x318dff89)) = uVar25 ^ DAT_18267163c ^ DAT_182671880;
  uVar30 = *puVar13 ^ DAT_1826716f4 ^ uVar30;
  *(uint *)(lVar2 + -0x27c) = uVar30;
  *(ulonglong *)(lVar2 + -0x8a8) = CONCAT44(uVar12,uVar32) ^ 0xdfadf3a3f69b76cf | 0x4fad4103d69b708b
  ;
  *(uint *)(lVar2 + -0x844) =
       *(uint *)(lVar2 - ((ulonglong)uVar12 ^ 0x966b3e67)) ^ uVar24 ^ DAT_18267163c;
  bVar8 = (byte)DAT_18267162c;
  uVar5 = DAT_1826715a4;
  uVar32 = uVar30 ^ DAT_1826718b4 ^ DAT_1826716f4;
  uVar15 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar28 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar2 + -0xa0) = *(ulonglong *)(uVar15 ^ *(ulonglong *)(lVar2 + -0x218)) ^ uVar28;
  uVar40 = CONCAT44(uVar31,DAT_1826715a0);
  *(uint *)(lVar2 + -0x504) = uVar32;
  uVar25 = DAT_18267158c;
  uVar27 = (ulonglong)DAT_18267187c;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0x2a7cbc75)) =
       (CONCAT44(uVar31,uVar18) ^ 0x9300e0dc28d7ded8) + (uVar40 ^ 0x9300e0dcaadd745e) * 0x20 +
       *(longlong *)(lVar2 + -0x8f0) ^ uVar27;
  *(byte *)(lVar2 - (uVar22 ^ 0x3bfe2f19)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xcb8) ^ uVar27) ^ bVar8 ^ (byte)DAT_182671694;
  *(uint *)(lVar2 + -0x374) = (*(byte *)(lVar2 - (uVar16 ^ 0x5ff963f6)) ^ bVar8) ^ DAT_1826717f4;
  uVar32 = DAT_18267159c;
  uVar18 = DAT_182671598;
  *(ulonglong *)(lVar2 + -0x1f0) =
       CONCAT44(uVar5,DAT_182671598) ^ *(ulonglong *)(lVar2 + -0xa0) ^ 0x491da1c7f141ba99;
  *(uint *)(lVar2 + -0x5cc) =
       (*(uint *)(lVar2 + -0x504) ^ DAT_1826718b4) + (uVar32 ^ 0x33eced5) ^ DAT_182671784;
  uVar32 = DAT_18267164c;
  lVar1 = DAT_182671560;
  puVar38 = (uint *)(lVar2 - (uVar17 ^ 0xfffffc8b));
  puVar41 = (uint *)(lVar2 - (uVar16 ^ 0x5ff96c9f));
  *puVar41 = (*puVar38 ^ DAT_1826717f4) << (((byte)DAT_182671588 ^ 0xdc) & 0x1f) ^ DAT_18267164c;
  uVar30 = DAT_182671604;
  puVar23 = (uint *)(lVar2 - (uVar22 ^ 0x3bfe2520));
  *puVar23 = (*(uint *)(lVar2 + -0x5cc) ^ DAT_182671784) - (uVar32 ^ *(uint *)(lVar2 + -0x328)) ^
             DAT_18267184c;
  *(uint *)(lVar2 + -0x754) =
       (*(uint *)(lVar2 + -0x678) ^ DAT_18267184c) * (*(uint *)(lVar2 + -0x844) ^ uVar24) ^
       DAT_182671730;
  uVar32 = DAT_182671578;
  *(ulonglong *)(lVar1 + -0x80) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0xded8204f)) >>
       (((byte)DAT_1826715b0 ^ 0x9d) & 0x3f);
  *(uint *)(lVar1 - (uVar14 ^ 0x568949e2)) =
       (*(uint *)(lVar1 + -0x374) ^ DAT_1826717f4) * ~uVar11 ^ DAT_182671860;
  bVar8 = (byte)DAT_182671580;
  uVar12 = (*(uint *)(lVar1 - ((ulonglong)uVar12 ^ 0x966b3447)) ^ DAT_182671860) +
           (*(uint *)(lVar1 + -0x754) ^ DAT_182671730);
  *(uint *)(lVar1 + -0x874) = uVar12 ^ uVar30;
  *(uint *)(lVar1 + -0x47c) = uVar12 << ((bVar8 ^ 0x55) & 0x1f) ^ DAT_1826715ec;
  uVar7 = DAT_182671790;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0x2a7cbb3d)) =
       (CONCAT44(uVar20,uVar32) ^ 0xed1c7b2d421b9206) + *(longlong *)(lVar1 - (uVar26 ^ 0xa00699b0))
  ;
  uVar12 = DAT_1826715ac;
  puVar21 = (uint *)(lVar1 - ((ulonglong)DAT_182671598 ^ 0x745ea3cd));
  *puVar21 = (*(uint *)(lVar1 + -0x874) ^ uVar30) >> (((byte)DAT_182671590 ^ 0xec) & 0x1f) ^ uVar7;
  uVar16 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar1 - (uVar36 ^ 0x568946ae)) =
       *(ulonglong *)(lVar1 + -0x9e8) ^ 0x206013e4420f0844;
  uVar25 = _DAT_1826715dc;
  uVar11 = (*(uint *)(lVar1 - (uVar16 ^ 0x3bfe2724)) ^ DAT_1826715ec | *puVar13 ^ uVar7) ^
           DAT_18267182c;
  uVar24 = (*(uint *)(lVar2 + -0x844) ^ uVar24) + (DAT_182671624 ^ *(uint *)(lVar2 + -0x3c8)) ^
           _DAT_1826715dc;
  uVar30 = DAT_18267174c ^ DAT_18267182c;
  *(uint *)(lVar2 + -0x27c) = uVar24;
  uVar24 = uVar24 ^ DAT_182671768;
  *(uint *)(lVar2 + -0x5cc) = uVar30 ^ uVar11;
  *(uint *)(lVar2 + -0x504) = uVar24 ^ uVar25;
  uVar16 = (ulonglong)DAT_18267157c;
  *(uint *)(lVar2 + -0x344) = uVar11;
  *(uint *)(lVar2 - ((ulonglong)uVar12 ^ 0x28d7ddf0)) =
       *(uint *)(lVar2 - (uVar16 ^ 0x2894502)) ^ DAT_182671768 ^ uVar7;
  *puVar23 = *(uint *)(lVar2 - ((ulonglong)uVar12 ^ 0x28d7db14)) ^ DAT_182671764 ^ DAT_18267174c;
  bVar8 = (byte)DAT_1826718c0;
  lVar1 = DAT_182671560;
  pbVar34 = (byte *)(*(longlong *)(lVar2 + -0x8f0) + 0xb +
                    (CONCAT44(uVar5,uVar32) ^ 0x3bfe2358dc04b3a0) * 0x20);
  *(ulonglong *)(lVar2 + -0xb58) = (ulonglong)pbVar34 ^ (ulonglong)DAT_1826715c8;
  lVar3 = DAT_182671560;
  uVar16 = (ulonglong)DAT_182671594;
  *(byte *)(lVar2 + -0x41) = *pbVar34 ^ bVar8 ^ (byte)DAT_182671694;
  uVar5 = DAT_182671870;
  uVar30 = (uint)(bVar8 ^ *(byte *)(lVar2 + -0x41));
  uVar12 = *(uint *)(lVar2 + -0x678) ^ DAT_182671764;
  uVar24 = uVar30 ^ DAT_182671870;
  *(uint *)(lVar2 + -0x374) = (*(uint *)(lVar2 - (uVar16 ^ 0x5ff96dcb)) ^ uVar25) + 0xace8e17f;
  uVar32 = DAT_182671588 ^ 0x387ada18;
  *(uint *)(lVar2 + -0x754) = uVar24;
  *(uint *)(lVar2 + -0x964) = uVar12 + uVar32 ^ DAT_1826717c0;
  uVar32 = DAT_1826718b0;
  uVar25 = DAT_1826715b0;
  uVar12 = DAT_182671574;
  *(ulonglong *)(lVar2 + -0x240) =
       (CONCAT44(uVar19,DAT_182671574) ^ 0x79a67331c6a9f8a5) +
       (CONCAT44(uVar33,uVar4) ^ 0xf5d91abc57def0a5);
  uVar33 = uVar30 << (((byte)(uVar4 >> 0x10) ^ 0xee) & 0x1f) ^ DAT_182671620;
  *(uint *)(lVar1 + -0x874) = uVar33;
  *(uint *)(lVar3 - (uVar17 ^ 0xfffffb83)) =
       (*(uint *)(lVar1 - ((ulonglong)uVar25 ^ 0x5ff966d3)) ^ DAT_1826717c0) -
       (uVar33 ^ DAT_182671620) ^ uVar32;
  uVar4 = DAT_182671844;
  uVar33 = DAT_182671780;
  *puVar21 = (uVar7 ^ *puVar41) * (uVar32 ^ *(uint *)(lVar3 + -0x47c)) ^ DAT_1826715c8;
  uVar32 = DAT_18267158c;
  uVar16 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar3 - (uVar39 ^ 0x318df489)) =
       (uVar5 ^ *(uint *)(lVar3 + -0x754)) * 0xb ^ DAT_1826717bc;
  *(uint *)(lVar3 + -0x344) =
       (*(uint *)(lVar3 - (uVar16 ^ 0x28d7d69c)) ^ DAT_1826717bc) + (*puVar13 ^ DAT_1826715c8) ^
       uVar33;
  *(ulonglong *)(lVar3 + -0x1d8) = *(ulonglong *)(uVar15 ^ *(ulonglong *)(lVar3 + -0x218)) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x218) = uVar40 ^ 0x5e652a4326c13f7c;
  uVar15 = (ulonglong)DAT_182671598;
  uVar19 = (*(uint *)(lVar3 - (uVar15 ^ 0x745ea999)) ^ uVar33) << ((byte)uVar32 & 0x1f);
  *(uint *)(lVar3 + -0x504) = uVar19 ^ uVar4;
  uVar33 = (uVar33 ^ *(uint *)(lVar3 + -0x344)) >> (((byte)(uVar6 >> 0x10) ^ 0xc4) & 0x1f) ^
           DAT_182671608;
  *(uint *)(lVar3 + -0x5cc) = uVar33;
  *(uint *)(lVar3 - (uVar14 ^ 0x568942fa)) = (uVar19 | uVar33 ^ DAT_182671608) ^ DAT_1826717c8;
  uVar33 = DAT_18267157c;
  *puVar38 = (*(uint *)(lVar3 - (uVar17 ^ 0xfffffcd7)) ^ uVar7) +
             (*(uint *)(lVar3 - ((ulonglong)DAT_18267157c ^ 0x28943ce)) ^ DAT_182671624) ^
             DAT_182671854;
  bVar8 = (byte)DAT_182671840;
  uVar4 = DAT_1826715c0;
  uVar17 = (ulonglong)DAT_182671670;
  uVar19 = *(uint *)(lVar3 - (uVar22 ^ 0x3bfe202c)) ^ DAT_1826717e0 ^ DAT_182671854;
  *(uint *)(lVar3 + -0x964) = *(uint *)(lVar3 + -0x27c) ^ DAT_1826715f4 ^ DAT_1826717c8;
  *(uint *)(lVar3 + -0x678) = uVar19;
  uVar6 = DAT_1826715fc;
  *(uint *)(lVar3 + -0x874) = uVar19 ^ DAT_1826715fc ^ DAT_1826717e0;
  uVar19 = DAT_182671734;
  *(uint *)(lVar3 + -0x47c) =
       *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0x2a7cb9a9)) ^ DAT_1826715f4 ^ uVar4;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x5689476e)) =
       (CONCAT44(uVar33,uVar20) ^ 0x2894006318dfccd) * 0x20 +
       (CONCAT44(uVar31,uVar25) ^ 0x9300e0dc5ff96fa1) + *(longlong *)(lVar3 + -0x8f0) ^ uVar17;
  *(byte *)(lVar3 - ((ulonglong)DAT_1826715a0 ^ 0xaadd781f)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar37 ^ 0xac9efe8)) ^ uVar17) ^ (byte)DAT_182671694 ^
       bVar8;
  *(ulonglong *)(lVar3 + -0xa60) =
       (CONCAT44(uVar25,uVar12) ^ 0x60f665a520eba1fc) <<
       ((byte)*(undefined8 *)(lVar3 + -0x80) & 0x3f);
  *(uint *)(lVar3 + -0x754) = (*(byte *)(lVar3 - ((ulonglong)uVar9 ^ 0xded82496)) ^ bVar8) ^ uVar19;
  local_58 = (byte)uVar18;
  bVar8 = (byte)DAT_18267158c;
  *(longlong *)(lVar3 - (uVar14 ^ 0x56894886)) = 0x3d807cde1f0787c5 << ((local_58 ^ 0xcf) & 0x3f);
  uVar33 = (uVar19 ^ *(uint *)(lVar3 + -0x754)) << ((bVar8 ^ 0xdc) & 0x1f);
  uVar17 = (ulonglong)DAT_1826715a4;
  uVar20 = (uVar4 ^ *(uint *)(lVar3 + -0x47c)) + (DAT_182671578 ^ 0xd5f39575) ^ DAT_182671720;
  uVar12 = uVar33 ^ DAT_18267160c;
  *puVar13 = uVar20;
  uVar20 = uVar20 ^ DAT_182671720;
  *(uint *)(lVar3 + -0x844) = uVar12;
  uVar12 = DAT_182671658;
  *(uint *)(lVar3 - (uVar17 ^ 0x3bfe201c)) = uVar20 - uVar33 ^ DAT_182671658;
  uVar32 = DAT_18267156c | DAT_182671598;
  DAT_182671590 = uVar32;
  *(byte *)(lVar3 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x248) ^ (ulonglong)DAT_182671690) ^ (byte)DAT_182671694;
  uVar20 = (uVar12 ^ *(uint *)(lVar3 + -0x344)) * (*(uint *)(lVar3 + -0x874) ^ uVar6) ^
           DAT_182671634;
  *(uint *)(lVar3 + -0x504) = uVar20;
  uVar20 = uVar20 ^ DAT_182671634;
  *(longlong *)(lVar3 + -0xc08) =
       *(longlong *)(lVar3 + -0x1d8) - *(longlong *)(lVar3 - (uVar14 ^ 0x56894ae6));
  uVar12 = DAT_1826716a4;
  uVar33 = (*(uint *)(lVar3 - (uVar26 ^ 0xa006971c)) ^ uVar19) * (DAT_182671594 ^ 0x5ff96fa1);
  *(uint *)(lVar3 + -0x5cc) = uVar33 ^ DAT_1826717fc;
  *(uint *)(lVar3 + -0x328) = uVar33 + uVar20 ^ uVar12;
  *(ulonglong *)(lVar3 + -0x270) =
       *(ulonglong *)(CONCAT44(DAT_182671814,DAT_182671814) ^ *(ulonglong *)(lVar3 + -0x450)) ^
       uVar28;
  *(uint *)(lVar3 - (uVar15 ^ 0x745ea9a9)) =
       (*(uint *)(lVar3 - (uVar14 ^ 0x568943ae)) ^ uVar12) << (((byte)uVar32 ^ 0xd2) & 0x1f) ^
       DAT_1826715bc;
  uVar33 = *(uint *)(lVar3 + -0x374) ^ DAT_1826715bc;
  uVar12 = (uVar12 ^ *(uint *)(lVar3 + -0x328)) >> 0x13;
  *(uint *)(lVar3 + -0x27c) = uVar12 ^ DAT_182671864;
  *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0x76dfeca7)) = (uVar12 | uVar33) ^ DAT_182671714;
  uVar12 = DAT_18267165c ^ DAT_1826715c8;
  *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0x76dfe3bb)) =
       (*(uint *)(lVar3 - (uVar14 ^ 0x5689434e)) ^ DAT_182671624) +
       (*(uint *)(lVar3 - (uVar14 ^ 0x568948f2)) ^ uVar6) ^ DAT_1826715c8;
  *(uint *)(lVar3 + -0x47c) = uVar12 ^ *(uint *)(lVar3 + -0x964);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar29;
  *puVar13 = *(uint *)(lVar3 - (uVar14 ^ 0x568946fe)) ^ DAT_182671714 ^ DAT_1826718c4;
  return;
}



############ FUN_ 180ee6d10 size=4018 ############

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

void FUN_180ee6d10(void)

{
  uint *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  byte bVar9;
  byte bVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  undefined1 *puVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte *pbVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  
  uVar7 = DAT_1826715b4;
  uVar5 = DAT_1826715a4;
  uVar20 = DAT_18267159c;
  uVar13 = DAT_182671594;
  uVar14 = DAT_182671580;
  lVar3 = DAT_182671560;
  uVar31 = (ulonglong)DAT_1826715b4;
  uVar38 = (ulonglong)DAT_1826715a4;
  uVar27 = (ulonglong)DAT_182671580;
  uVar23 = DAT_1826715b4 ^ DAT_18267159c;
  uVar15 = (ulonglong)DAT_18267159c;
  uVar36 = DAT_1826715a4 * DAT_182671594;
  uVar39 = DAT_182671580 << 0x10 | DAT_182671580 >> 0x10;
  uVar12 = *(uint *)(&DAT_182611e70 + (uVar15 ^ 0x8a25ec08) + (longlong)DAT_18267196c) ^
           DAT_1826715b4;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_18267196c);
  puVar1 = (uint *)(DAT_182671560 + -0x910);
  DAT_18267157c = uVar39;
  DAT_182671588 = uVar36;
  DAT_1826715b0 = uVar23;
  *(uint *)(DAT_182671560 - (uVar31 ^ 0xe09ec1f1)) =
       (*(uint *)(DAT_182671560 + -0x3c8) ^ DAT_182671624) +
       (*(uint *)(DAT_182671560 + -0x678) ^ DAT_1826718b4) ^ DAT_1826717c0;
  uVar16 = (ulonglong)uVar13;
  uVar24 = *(uint *)(lVar3 + -0x47c) ^ DAT_1826715c4 ^ DAT_1826716e8;
  puVar29 = (uint *)(lVar3 - (uVar16 ^ 0x55b1e2c8));
  *puVar1 = *puVar29 ^ DAT_1826717a0 ^ DAT_1826717c0;
  uVar17 = (ulonglong)uVar36;
  *(uint *)(lVar3 - ((ulonglong)uVar36 ^ 0x921820c0)) = uVar24;
  bVar9 = (byte)DAT_182671694;
  *(uint *)(lVar3 - ((ulonglong)uVar14 ^ 0x5b926352)) = DAT_1826716cc ^ DAT_1826717a0 ^ *puVar1;
  uVar19 = (ulonglong)DAT_182671630;
  *(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0xe55a1442)) =
       *(uint *)(lVar3 + -0x328) ^ DAT_182671850 ^ DAT_1826715c4;
  bVar11 = (byte)DAT_182671640;
  uVar18 = (ulonglong)uVar39;
  pbVar32 = (byte *)((CONCAT44(uVar39,uVar7) ^ 0x6a3a5b92e09ec985) * 0x20 +
                     (CONCAT44(uVar20,uVar5) ^ 0x8a25ec00e55a1d23) + *(longlong *)(lVar3 + -0x8f0));
  *(ulonglong *)(lVar3 + -0x4f0) = (ulonglong)pbVar32 ^ uVar19;
  bVar10 = *pbVar32 ^ bVar11 ^ bVar9;
  uVar24 = (bVar11 ^ bVar10) ^ DAT_1826715d0;
  *(byte *)(lVar3 + -0x41) = bVar10;
  *(uint *)(lVar3 + -0x3d4) = uVar24;
  uVar34 = DAT_1826717e0;
  *(uint *)(lVar3 + -0x344) =
       (*(uint *)(lVar3 + -0x964) ^ DAT_182671850) + (uVar39 ^ 0x63cd7d47) ^ DAT_1826716b8;
  *(uint *)(lVar3 - (uVar18 ^ 0x6a3a5e5e)) =
       (*(uint *)(lVar3 - (uVar27 ^ 0x5b9269ee)) ^ DAT_1826715d0) << (((byte)uVar36 ^ 0xf9) & 0x1f)
       ^ uVar34;
  uVar6 = DAT_182671814;
  uVar24 = *(uint *)(lVar3 + -0x3d4) ^ DAT_1826715d0;
  uVar33 = (*(uint *)(lVar3 - (uVar17 ^ 0x921820ac)) ^ DAT_1826716b8) -
           (*(uint *)(lVar3 + -0x5cc) ^ uVar34) ^ DAT_18267172c;
  uVar37 = *(uint *)(lVar3 + -0x968) ^ DAT_1826716cc;
  *(uint *)(lVar3 + -0x504) = uVar33;
  uVar33 = uVar33 ^ DAT_18267172c;
  *(uint *)(lVar3 + -0x754) = uVar24 * (uVar14 ^ 0x5b926a3f) ^ DAT_18267175c;
  uVar19 = (ulonglong)DAT_18267163c;
  uVar24 = uVar33 * uVar37 ^ DAT_1826717fc;
  *(uint *)(lVar3 + -0x27c) = uVar24;
  uVar24 = uVar24 ^ DAT_1826717fc;
  *(byte *)(lVar3 + -0xc41) = *(byte *)(uVar19 ^ *(ulonglong *)(lVar3 + -0xd20)) ^ bVar9;
  lVar4 = DAT_182671560;
  uVar24 = (*(uint *)(lVar3 - ((ulonglong)uVar13 ^ 0x55b1ede8)) ^ DAT_18267175c) + uVar24;
  *(uint *)(DAT_182671560 + -0x8c) = uVar24 ^ uVar6;
  *(ulonglong *)(lVar4 + -0x80) =
       CONCAT44(uVar23,uVar20) ^ 0x195e303a8a235cee | *(ulonglong *)(lVar4 + -0x8a8);
  lVar3 = DAT_182671560;
  uVar33 = uVar24 << (((byte)uVar7 ^ 0x88) & 0x1f) ^ DAT_1826716ec;
  *(uint *)(DAT_182671560 + -0x774) = uVar33;
  uVar24 = DAT_182671590;
  uVar33 = uVar33 ^ DAT_1826716ec;
  uVar28 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar3 + -0xc08) =
       (CONCAT44(uVar5,uVar23) ^ 0xeb37bee011de14cb) << (((byte)uVar23 ^ 0xa4) & 0x3f);
  *(uint *)(lVar3 + -0x374) =
       (*(uint *)(lVar3 + -0x8c) ^ uVar6) >> (((byte)uVar13 ^ 0xaf) & 0x1f) ^ DAT_1826716c8;
  uVar13 = (*(uint *)(lVar3 + -0x3c8) ^ DAT_182671624) + uVar37 ^ DAT_1826716a0;
  *(uint *)(lVar3 + -0x844) =
       (*(uint *)(lVar3 - (uVar17 ^ 0x9218209c)) ^ DAT_1826716c8 | uVar33) ^ DAT_182671604;
  *(uint *)(lVar3 + -0x678) = uVar13;
  uVar13 = DAT_182671760 ^ DAT_182671604;
  *puVar29 = *(uint *)(lVar3 - (uVar18 ^ 0x6a3a5dea)) ^ DAT_182671798 ^ DAT_1826716a0;
  *(uint *)(lVar3 + -0x47c) = uVar13 ^ *(uint *)(lVar3 + -0x844);
  *(uint *)(lVar3 - (uVar27 ^ 0x5b92632a)) = (uVar20 ^ 0x83d2cad5) + 0xba2d8c99;
  uVar33 = DAT_18267160c;
  *(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0x6abb26ad)) =
       *(uint *)(lVar3 + -0x874) ^ DAT_18267160c ^ DAT_182671798;
  uVar26 = *(uint *)(lVar3 + -0x47c) ^ DAT_1826716f0 ^ DAT_182671760;
  *(uint *)(lVar3 + -0x964) = uVar26;
  uVar37 = DAT_182671750;
  uVar13 = DAT_182671674;
  uVar6 = DAT_1826715a8;
  uVar26 = uVar26 ^ DAT_1826716f0;
  uVar30 = (ulonglong)DAT_1826715a8;
  uVar40 = uVar24 * DAT_1826715a8;
  uVar19 = CONCAT44(DAT_1826715a8,uVar24);
  uVar21 = (ulonglong)uVar40;
  uVar35 = CONCAT44(uVar40,DAT_1826715a8);
  uVar25 = DAT_182671750 & 0xff;
  pbVar32 = (byte *)((CONCAT44(uVar40,uVar24) ^ 0x930bc13e6cf43ed2) +
                     (uVar19 ^ 0xffffffff6cf43ec2) * 0x20 + *(longlong *)(DAT_182671560 + -0x8f0));
  DAT_182671598 = uVar40;
  *(ulonglong *)(DAT_182671560 + -0x4f0) = (ulonglong)pbVar32 ^ (ulonglong)DAT_182671698;
  lVar4 = DAT_182671560;
  bVar11 = *pbVar32 ^ (byte)uVar37 ^ (byte)DAT_182671694;
  lVar3 = *(longlong *)(DAT_182671560 + -0x9e8);
  *(byte *)(DAT_182671560 + -0x41) = bVar11;
  *(uint *)(lVar4 + -0x344) = uVar25 ^ bVar11 ^ uVar13;
  uVar37 = uVar26 + (uVar24 ^ 0x65031817) ^ DAT_182671660;
  *(ulonglong *)(lVar4 + -0x548) = (uVar35 ^ 0xe7961e40d5ecb4e6) + lVar3;
  *(uint *)(lVar4 - (uVar21 ^ 0x930bc4f2)) = uVar37;
  lVar4 = DAT_182671560;
  uVar37 = (uVar13 ^ *(uint *)(DAT_182671560 + -0x344)) << (((byte)uVar5 ^ 0x37) & 0x1f) ^
           DAT_18267183c;
  puVar29 = (uint *)(DAT_182671560 - (uVar28 ^ 0x6cf43b0e));
  *(uint *)(DAT_182671560 + -0x504) = uVar37;
  *(uint *)(lVar4 + -0x3d4) = (*puVar29 ^ DAT_182671660) - (uVar37 ^ DAT_18267183c) ^ DAT_182671878;
  *(byte *)(lVar4 - (uVar30 ^ 0xfffff3be)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar21 ^ 0x930bc826)) ^ (ulonglong)DAT_1826717d4) ^
       (byte)DAT_182671694;
  uVar37 = DAT_18267159c ^ 0x8a25ec10;
  *(uint *)(lVar4 + -0x27c) =
       (*(uint *)(lVar4 - (uVar31 ^ 0xe09ecaad)) ^ uVar33) *
       (*(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0xfffffc2b)) ^ DAT_182671878) ^ DAT_1826717c8;
  *(uint *)(lVar4 + -0x754) = (uVar13 ^ *(uint *)(lVar4 + -0x344)) * uVar37 ^ DAT_18267174c;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0x6a3a5862)) =
       CONCAT44(uVar7,uVar14) ^ *(ulonglong *)(lVar4 + -0x9e8) ^ 0x32d9cbc1b67e012b;
  uVar13 = DAT_182671874;
  puVar29 = (uint *)(lVar4 - (uVar30 ^ 0xfffff8ab));
  uVar37 = (*(uint *)(lVar4 + -0x27c) ^ DAT_1826717c8) + (*puVar29 ^ DAT_18267174c);
  *(uint *)(lVar4 + -0x8c) = uVar37 ^ DAT_182671874;
  uVar37 = uVar37 * 0x2000 ^ DAT_1826718c4;
  *(uint *)(lVar4 + -0x774) = uVar37;
  uVar37 = uVar37 ^ DAT_1826718c4;
  uVar25 = (*(uint *)(lVar4 - (uVar27 ^ 0x5b926ab6)) ^ uVar13) >> (((byte)uVar24 ^ 0xd1) & 0x1f);
  *(uint *)(lVar4 + -0x374) = uVar25 ^ uVar34;
  uVar13 = DAT_1826715a0;
  uVar37 = (uVar25 | uVar37) ^ DAT_182671824;
  uVar25 = DAT_1826715a0 << 0x10 | DAT_1826715a0 >> 0x10;
  *(uint *)(lVar4 + -0x968) = uVar37;
  uVar26 = uVar37 ^ DAT_182671734 ^ DAT_182671824;
  uVar34 = DAT_182671734 ^ DAT_182671630;
  uVar37 = DAT_18267181c ^ DAT_182671634;
  uVar33 = (*(uint *)(lVar4 - ((ulonglong)uVar25 ^ 0x4bce9a5d)) ^ DAT_182671624) +
           (*(uint *)(lVar4 + -0x328) ^ uVar33) ^ DAT_1826717e8;
  DAT_1826715ac = uVar25;
  *(uint *)(lVar4 + -0x678) = uVar33;
  uVar33 = uVar33 ^ DAT_182671634 ^ DAT_1826717e8;
  *(uint *)(lVar4 + -0x844) = uVar33;
  *(uint *)(lVar4 + -0x874) = uVar37 ^ uVar33;
  *puVar1 = uVar26;
  uVar37 = DAT_182671704;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x99954146)) =
       (CONCAT44(uVar13,uVar25) ^ 0x51f3178d040a3111) >>
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)uVar13 ^ 0x99954366)) & 0x3f);
  uVar18 = (ulonglong)DAT_182671654;
  *(uint *)(lVar4 + -0x47c) = uVar34 ^ *puVar1;
  bVar11 = DAT_182671610;
  pbVar32 = (byte *)((CONCAT44(uVar25,uVar25) ^ 0x4bce99954bce998e) +
                     (CONCAT44(uVar13,uVar25) ^ 0x99954bce4bce9995) * 0x20 +
                    *(longlong *)(lVar4 + -0x8f0));
  *(ulonglong *)(lVar4 + -0xd20) = (ulonglong)pbVar32 ^ uVar18;
  *(byte *)(lVar4 - (uVar21 ^ 0x930bc17f)) = *pbVar32 ^ bVar11 ^ (byte)DAT_182671694;
  uVar33 = DAT_182671684;
  *(uint *)(lVar4 - (uVar16 ^ 0x55b1e3d8)) = (bVar11 ^ *(byte *)(lVar4 + -0x41)) ^ uVar37;
  *(uint *)(lVar4 - ((ulonglong)uVar25 ^ 0x4bce9c91)) =
       (*(uint *)(lVar4 + -0x47c) ^ DAT_182671630) + (DAT_1826715a0 ^ 0x90626d1b) ^ uVar33;
  uVar26 = *(uint *)(lVar4 + -0x874) ^ DAT_18267181c;
  uVar34 = (*(uint *)(lVar4 + -0x964) ^ uVar37) << (((byte)uVar24 ^ 0xd3) & 0x1f) ^ DAT_1826716f8;
  *(longlong *)(lVar4 + -0x9f8) = *(longlong *)(lVar4 + -0x548) << (((byte)uVar36 ^ 0xd7) & 0x3f);
  *(uint *)(lVar4 + -0x5cc) = uVar34;
  uVar24 = DAT_182671828;
  *(uint *)(lVar4 + -0x3d4) =
       (uVar33 ^ *(uint *)(lVar4 + -0x504)) - (uVar34 ^ DAT_1826716f8) ^ DAT_182671724;
  uVar34 = (*(uint *)(lVar4 - ((ulonglong)uVar13 ^ 0x9995481a)) ^ DAT_182671724) * uVar26;
  *(uint *)(lVar4 + -0x344) = uVar34 ^ uVar24;
  uVar24 = DAT_1826717ec;
  uVar33 = (*(uint *)(lVar4 - (uVar15 ^ 0x8a25e564)) ^ uVar37) * 0x1b ^ DAT_18267169c;
  *(uint *)(lVar4 + -0x27c) = uVar33;
  *(uint *)(lVar4 + -0x754) = (uVar33 ^ DAT_18267169c) + uVar34 ^ uVar24;
  uVar33 = (*(uint *)(lVar4 - (uVar38 ^ 0xe55a1a72)) ^ uVar24) << (((byte)uVar40 ^ 0x33) & 0x1f) ^
           DAT_1826716b4;
  *(uint *)(lVar4 + -0x8c) = uVar33;
  uVar24 = (uVar24 ^ *(uint *)(lVar4 + -0x754)) >> (((byte)uVar23 ^ 0x96) & 0x1f) ^ DAT_182671758;
  *(uint *)(lVar4 + -0x774) = uVar24;
  uVar34 = _DAT_182671868;
  uVar37 = DAT_182671800;
  uVar33 = (uVar24 ^ DAT_182671758 | uVar33 ^ DAT_1826716b4) ^ DAT_182671714;
  uVar24 = (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) + uVar26 ^ _DAT_182671868;
  *(uint *)(lVar4 + -0x328) = uVar24;
  uVar18 = (ulonglong)DAT_1826716d8;
  uVar24 = uVar24 ^ DAT_1826718c0 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x6d0) =
       CONCAT44(uVar14,uVar20) ^ 0xc07ba3341bba2c4d | *(ulonglong *)(lVar4 + -0x9e8);
  uVar14 = DAT_182671860 ^ DAT_182671714;
  *(uint *)(lVar4 + -0x374) = uVar33;
  *(uint *)(lVar4 + -0x968) = uVar14 ^ uVar33;
  uVar8 = DAT_1826715b8;
  *(uint *)(lVar4 + -0x678) = uVar24;
  *(ulonglong *)(lVar4 + -0xa0) =
       CONCAT44(uVar8,uVar8) ^ CONCAT44(uVar5,uVar25) ^ *(ulonglong *)(lVar4 + -0x240) ^
       0xc7ab46a808a3ecdd;
  uVar14 = DAT_18267166c;
  uVar26 = uVar24 ^ DAT_18267166c ^ DAT_1826718c0;
  lVar3 = *(longlong *)(lVar4 + -0x8f0);
  *(uint *)(lVar4 + -0x844) = uVar26;
  uVar40 = *(uint *)(lVar4 - (uVar28 ^ 0x6cf437aa)) ^ uVar37 ^ DAT_182671860;
  *puVar1 = uVar40;
  puVar22 = (undefined1 *)(lVar3 + 6 + (CONCAT44(uVar13,uVar39) ^ 0x99954bce6a3a5b92) * 0x20);
  *(ulonglong *)(lVar4 + -0x4f0) = (ulonglong)puVar22 ^ uVar18;
  *(undefined1 *)(lVar4 + -0xc41) = *puVar22;
  bVar11 = (byte)DAT_182671694;
  *(ulonglong *)(lVar4 + -0x5c8) =
       CONCAT44(uVar5,uVar7) ^ *(ulonglong *)(lVar4 + -0x3f0) ^ 0x87f4c924b75f7f49;
  uVar20 = DAT_1826718c8;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x47c) = (*(byte *)(lVar4 + -0xc41) ^ bVar11) ^ DAT_1826718c8;
  *(undefined8 *)(lVar3 + -0x800) = 0xac3160a8d4ec78d9;
  uVar33 = DAT_182671764;
  uVar24 = DAT_1826715ec;
  uVar37 = (uVar37 ^ uVar40) + (uVar39 ^ 0x63cd7d47);
  *(uint *)(lVar3 + -0x504) = uVar37 ^ DAT_182671764;
  lVar4 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x5cc) =
       (*(uint *)(lVar3 - (uVar17 ^ 0x92182794)) ^ uVar20) << (((byte)DAT_1826715a8 ^ 0xee) & 0x1f)
       ^ DAT_182671844;
  *(ulonglong *)(lVar4 + -0x600) = CONCAT44(uVar36,uVar5) ^ uVar19 ^ 0x186b4a39062e5ab8;
  uVar37 = uVar37 - (*(uint *)(lVar4 - (uVar16 ^ 0x55b1ef70)) ^ DAT_182671844) ^ DAT_1826715d0;
  *(uint *)(lVar4 + -0x3d4) = uVar37;
  *(uint *)(lVar4 - (uVar31 ^ 0xe09ec0e1)) = (uVar37 ^ DAT_1826715d0) * (uVar14 ^ uVar26) ^ uVar24;
  uVar14 = (*(uint *)(lVar4 - (uVar27 ^ 0x5b926e46)) ^ uVar20) * 6;
  *(uint *)(lVar4 + -0x344) = uVar14 ^ DAT_182671744;
  uVar20 = DAT_182671754;
  *(ulonglong *)(lVar4 + -0x270) =
       (CONCAT44(uVar5,uVar6) ^ 0x800a0a29ec110ec4) >>
       ((byte)*(undefined8 *)(lVar4 + -0x688) & 0x3f);
  *(uint *)(lVar4 - ((ulonglong)uVar23 ^ 0x6abb27f9)) =
       (uVar24 ^ *(uint *)(lVar4 + -0x964)) + uVar14 ^ uVar20;
  *(ulonglong *)(lVar4 + -0x400) = *(ulonglong *)(lVar4 + -0x270) | *(ulonglong *)(lVar4 + -0x800);
  *puVar29 = (*(uint *)(lVar4 + -0x27c) ^ uVar20) << 0xd ^ DAT_1826715e4;
  uVar16 = (ulonglong)DAT_18267180c;
  *(ulonglong *)(lVar4 + -0x2a0) =
       *(ulonglong *)(lVar4 - (uVar28 ^ 0x6cf4387a)) | *(ulonglong *)(lVar4 + -0xc08);
  uVar14 = DAT_1826716a8;
  *(uint *)(lVar4 - (uVar21 ^ 0x930bc1b2)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar25 ^ 0x4bce9be9)) ^ uVar20) >> 0x13 ^ DAT_18267167c;
  *(uint *)(lVar4 + -0x774) =
       (*(uint *)(lVar4 - (uVar28 ^ 0x6cf43996)) ^ DAT_1826715e4 |
       *(uint *)(lVar4 + -0x8c) ^ DAT_18267167c) ^ uVar14;
  uVar20 = DAT_1826715a0 ^ 0xebf1279d;
  *(uint *)(lVar4 - (uVar38 ^ 0xe55a1552)) = (uVar33 ^ *(uint *)(lVar4 + -0x504)) + 0x45db8db3;
  uVar24 = DAT_182671740;
  *(uint *)(lVar4 + -0x374) = (*(uint *)(lVar4 + -0x274) ^ DAT_1826718cc) + uVar20 ^ DAT_182671740;
  puVar29 = (uint *)(*(longlong *)(lVar4 + -0xa08) +
                    ((CONCAT44(uVar23,uVar7) ^ 0x6abb2585e09ec985) * 5 +
                    (CONCAT44(uVar7,uVar39) ^ 0xe09ec9856a3a5b92)) * 4);
  *(ulonglong *)(lVar4 + -0x3c0) = (ulonglong)puVar29 ^ uVar16;
  *puVar29 = *(uint *)(lVar4 - ((ulonglong)uVar13 ^ 0x99954cba)) ^ DAT_1826717b4 ^ uVar14;
  *(uint *)(lVar4 + -0x678) = *(uint *)(lVar4 - (uVar27 ^ 0x5b92694e)) ^ uVar24 ^ DAT_182671750;
  *(uint *)(lVar4 - (uVar15 ^ 0x8a25e568)) =
       (uVar24 ^ *(uint *)(lVar4 + -0x374)) >>
       (((byte)*(undefined4 *)(lVar4 + -0x328) ^ (byte)uVar34) & 0x1f);
  *puVar1 = *(uint *)(lVar4 - (uVar27 ^ 0x5b926d4e)) ^ DAT_1826716a4 ^ uVar14;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar23) * 4) = uVar12;
  return;
}



############ FUN_ 180e7c160 size=5795 ############

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

void FUN_180e7c160(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  uint uVar14;
  byte bVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  
  uVar7 = DAT_18267157c;
  uVar6 = DAT_182671578;
  lVar3 = DAT_182671560;
  uVar18 = (ulonglong)DAT_182671578;
  uVar24 = (ulonglong)DAT_18267157c;
  uVar34 = (ulonglong)DAT_182671578;
  uVar21 = DAT_18267157c - DAT_182671578;
  uVar14 = *(uint *)(&DAT_182611e70 + (uVar18 ^ 0xc83c0d8e) + (longlong)DAT_182671b1c) ^
           DAT_18267157c;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671b1c);
  uVar23 = (ulonglong)DAT_1826717ac;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x2a0);
  uVar29 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  uVar22 = CONCAT44(uVar21,DAT_182671578);
  uVar36 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  DAT_182671594 = uVar21;
  *puVar1 = (CONCAT44(DAT_182671844,DAT_182671844) ^ *(ulonglong *)(DAT_182671560 + -0x628)) -
            (*(ulonglong *)(DAT_182671560 + -0x5c8) ^ uVar29) ^ uVar36;
  uVar11 = DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0x9f8) =
       CONCAT44(uVar7,uVar6) ^ 0x483b2e731e98f60e | uVar22 ^ 0x1a16851b11a4afa9;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar20 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x860d3b80)) =
       CONCAT44(_DAT_182671838,_DAT_182671838) ^ uVar20 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0xbf0) ^
       *(ulonglong *)(lVar3 + -0xa88);
  uVar12 = DAT_182671798;
  uVar30 = (*(ulonglong *)(lVar3 + -0x748) ^ uVar25) >> (((byte)uVar6 ^ 0xa7) & 0x3f);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar30 ^ CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar11 = DAT_182671688;
  puVar19 = (ulonglong *)(lVar3 + -0x548);
  uVar32 = CONCAT44(uVar21,uVar7);
  *puVar19 = (uVar22 ^ 0x5cbdd5fe88c8e2e2) -
             (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x860d38c8)) ^
             CONCAT44(uVar12,uVar12));
  lVar3 = DAT_182671560;
  uVar22 = (*(ulonglong *)(DAT_182671560 + -0x748) ^ uVar25) << (((byte)uVar21 ^ 0x5d) & 0x3f);
  uVar26 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar22 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x270) = (uVar22 | uVar30) ^ uVar26;
  uVar11 = _DAT_18267161c;
  puVar16 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a4 ^ 0x6079308));
  *puVar16 = uVar22 - (uVar32 ^ 0xe19ae4d228643710);
  uVar26 = *(ulonglong *)(lVar3 + -0x270) ^ uVar26;
  uVar22 = (uVar20 ^ *(ulonglong *)(lVar3 + -0xbf0)) -
           (CONCAT44(DAT_182671664,DAT_182671664) ^ *(ulonglong *)(lVar3 + -0x610));
  uVar20 = CONCAT44(DAT_182671758,DAT_182671758);
  *(ulonglong *)(lVar3 + -0x800) = uVar22 ^ CONCAT44(uVar11,uVar11);
  uVar25 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar22 - uVar26 ^ uVar20;
  uVar8 = DAT_1826715f4;
  uVar5 = DAT_182671570;
  uVar30 = CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar22 = (uVar32 ^ 0x422ed0bd79f2c333) - (*(ulonglong *)(lVar3 + -0xa60) ^ uVar25);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar22 ^ uVar30;
  uVar12 = DAT_1826717cc;
  *(ulonglong *)(lVar3 + -0x240) =
       CONCAT44(uVar6,uVar6) ^ 0x97c4ba2f5c4adce6 | uVar32 ^ 0x29b978059339b42;
  uVar11 = DAT_182671640;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x898) = uVar22 + uVar26 ^ uVar32;
  uVar12 = DAT_18267175c;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar22 = (ulonglong)DAT_182671580;
  uVar32 = *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xf8d1e7d4)) ^
           *(ulonglong *)(lVar3 - (uVar24 ^ 0x860d3ac8)) ^ uVar26 ^ CONCAT44(uVar8,uVar8) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar32;
  uVar11 = DAT_1826718a8;
  uVar22 = ((ulonglong)uVar8 << 0x1b | (ulonglong)(uVar8 >> 5)) ^
           *(ulonglong *)(lVar3 - (uVar22 ^ 0x638a85e1)) >> 5;
  bVar15 = (byte)DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0x628) = uVar22 ^ CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar33 = (uVar32 ^ CONCAT44(uVar8,uVar8)) << ((bVar15 ^ 0x32) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar33 ^ uVar27;
  uVar11 = DAT_1826718cc;
  uVar8 = DAT_1826715ac;
  lVar3 = DAT_182671560;
  uVar28 = CONCAT44(DAT_1826715b0,uVar7);
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       ((ulonglong)(DAT_1826715ac >> 0xb) | (ulonglong)uVar21 << 0x15) ^ 0xc8bf32620f0c5;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xc83c0986)) = (uVar33 | uVar22) ^ uVar32;
  uVar33 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  puVar17 = (ulonglong *)(lVar3 - (uVar34 ^ 0xc83c08ce));
  uVar22 = (ulonglong)DAT_18267159c;
  *puVar17 = (*(ulonglong *)(lVar3 + -0x600) ^ uVar26) -
             (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xf8d1eb4c)) ^ uVar32) ^ uVar33;
  uVar11 = DAT_182671770;
  uVar26 = (ulonglong)DAT_182671598;
  uVar22 = *(ulonglong *)(lVar3 - (uVar22 ^ 0xcff48aab)) ^ uVar20 ^ *puVar1;
  *(ulonglong *)(lVar3 + -0x748) = uVar22;
  uVar12 = DAT_182671824;
  uVar34 = (uVar22 >> 0x20 ^ uVar23) >> 5;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar34 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671748;
  uVar5 = DAT_182671574;
  uVar23 = CONCAT44(uVar12,uVar12);
  uVar22 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x1d8) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x72e17fb)) ^ uVar36) << (((byte)uVar7 ^ 0xd3) & 0x3f) ^
       uVar23;
  uVar26 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xedeef711)) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x60791c8)) ^ uVar23 | uVar34) ^ uVar26;
  uVar11 = DAT_18267163c;
  uVar23 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar20) - (*(ulonglong *)(lVar3 + -0x318) ^ uVar26) ^
       uVar23;
  uVar22 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xbf0) =
       uVar22 ^ *(ulonglong *)(lVar3 + -0x318) ^ uVar26 ^ uVar33 ^ *puVar19;
  lVar4 = DAT_182671560;
  bVar15 = (byte)DAT_182671584;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar5 ^ 0xedeefc09)) = 0x77d8f13ec036a87f;
  uVar26 = (uVar22 ^ *(ulonglong *)(lVar4 + -0xbf0)) >> ((bVar15 ^ 0xa4) & 0x3f);
  uVar34 = (uVar22 ^ *(ulonglong *)(lVar4 + -0xbf0)) << (((byte)uVar8 ^ 0x1e) & 0x3f);
  uVar22 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar4 + -0x240) = uVar26 ^ CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar34 ^ uVar22;
  uVar11 = DAT_1826716c4;
  uVar5 = DAT_1826715a8;
  uVar8 = DAT_182671588;
  uVar22 = *puVar19;
  uVar37 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar4 + -0x270) = (uVar34 | uVar26) ^ uVar37;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xf7eae771)) =
       (uVar33 ^ uVar22) - (*(ulonglong *)(lVar4 - (uVar24 ^ 0x860d3eb8)) ^ uVar37) ^ uVar35;
  *(ulonglong *)(lVar4 + -0x6d0) =
       (*(ulonglong *)(lVar4 + -0x898) ^ uVar35) + *(longlong *)(lVar4 + -0xa88);
  uVar26 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar22 = (ulonglong)DAT_182671590;
  uVar32 = *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x57bfd0bb)) ^ *(ulonglong *)(lVar4 + -0x610)
           ^ uVar26 ^ uVar23 ^ uVar32;
  *(ulonglong *)(lVar4 + -0x628) = uVar32;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x1b0709fd)) =
       uVar32 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x898) ^ uVar35;
  uVar5 = DAT_182671568;
  uVar32 = (uVar26 ^ *(ulonglong *)(lVar4 + -0x628)) >> (((byte)DAT_182671580 ^ 0x19) & 0x3f);
  *(ulonglong *)(lVar4 + -0x600) = uVar32 ^ CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar6 = DAT_1826716dc;
  uVar7 = DAT_18267156c;
  uVar31 = (ulonglong)DAT_1826716dc;
  uVar22 = (uVar26 ^ *(ulonglong *)(lVar4 + -0x628)) << (((byte)uVar5 ^ 0x75) & 0x3f);
  *puVar1 = uVar22 ^ uVar36;
  uVar11 = DAT_182671880;
  uVar33 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar36 = (uVar32 | uVar22) ^ uVar33;
  *(ulonglong *)(lVar4 + -0x748) = uVar36;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x1f0) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar23) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x57bfd3f3)) ^ uVar33) ^ uVar34;
  uVar32 = CONCAT44(uVar6,uVar6);
  uVar22 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x1233047c)) =
       uVar36 ^ uVar32 ^ uVar33 ^ uVar35 ^ *(ulonglong *)(DAT_182671560 + -0x898);
  lVar3 = DAT_182671560;
  uVar33 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0x3d13a8b1)) =
       (*(ulonglong *)(DAT_182671560 + -0x1d8) >> 0x20 ^ uVar31) >> 0x14 ^ uVar33;
  uVar10 = DAT_1826715b4;
  bVar13 = (byte)DAT_18267158c;
  *(ulonglong *)(lVar3 + -0x318) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b0 ^ 0x6079638)) ^
       CONCAT44(uVar7,DAT_182671570) ^ uVar26 ^ 0x35d05eda1681d0c5;
  uVar6 = DAT_1826715a8;
  uVar22 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0xcff48413)) =
       (*(ulonglong *)(lVar3 + -0x1d8) ^ uVar32) << ((bVar13 ^ 0xa8) & 0x3f) ^ uVar29;
  uVar11 = DAT_1826718c8;
  uVar26 = (ulonglong)DAT_1826717f8;
  uVar23 = CONCAT44(DAT_182671608,DAT_182671608);
  uVar31 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  uVar22 = *(ulonglong *)(lVar3 - (uVar22 ^ 0xedeef2b1)) ^ uVar33 |
           uVar29 ^ *(ulonglong *)(lVar3 + -0x800);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar22 ^ uVar23;
  uVar32 = CONCAT44(uVar11,uVar11);
  uVar35 = (uVar35 ^ *(ulonglong *)(lVar3 + -0x898)) - uVar22 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar35;
  uVar11 = DAT_182671784;
  uVar22 = *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xf7eaed99)) ^ uVar31 ^ uVar34 ^ uVar37 ^
           *(ulonglong *)(lVar3 + -0x1f0);
  *(ulonglong *)(lVar3 + -0x240) = uVar22;
  uVar36 = CONCAT44(uVar11,uVar11);
  *puVar19 = (uVar22 >> 0x20 ^ uVar26) >> 0x19 ^ uVar36;
  lVar3 = DAT_182671560;
  uVar22 = (uVar31 ^ uVar22) << (((byte)uVar6 ^ 0xee) & 0x3f);
  uVar26 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar22 ^ CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar37 = CONCAT44(DAT_18267177c,DAT_18267177c);
  uVar31 = (*puVar17 ^ uVar36 | uVar22) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar31;
  uVar11 = DAT_18267160c;
  *(ulonglong *)(lVar3 + -0x400) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x1f0)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0x12330374)) ^ uVar26) ^ uVar37;
  uVar6 = DAT_1826715ac;
  lVar4 = DAT_182671560;
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar22 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 - (uVar18 ^ 0xc83c047e)) = uVar34 ^ uVar26 ^ uVar32 ^ uVar35 ^ uVar31;
  uVar31 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar4 + -0x600) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0x12330c5c)) ^ uVar34) >> (((byte)uVar8 ^ 0xb5) & 0x3f) ^
       uVar31;
  uVar22 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x838d3a97)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x838d3e8f)) ^ uVar33) + 0x502ec752983c5d11;
  uVar12 = DAT_1826716ec;
  uVar11 = DAT_182671644;
  uVar26 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0xedeefdf1)) ^ uVar34) << ((bVar15 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar4 + -0x610) = uVar26 ^ CONCAT44(DAT_182671750,DAT_182671750);
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar35 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar22 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar4 + -0x748) = (uVar26 | uVar31 ^ *(ulonglong *)(lVar4 + -0x600)) ^ uVar34;
  uVar26 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0xc83c0bae)) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0x1b0708ad)) ^ uVar32) -
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar4 + -0x688)) ^ uVar35;
  uVar11 = DAT_1826717c4;
  *(ulonglong *)(lVar4 + -0x318) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0x72e169b)) ^ uVar35) -
       (*(ulonglong *)(lVar4 + -0x748) ^ uVar34) ^ uVar36;
  uVar12 = DAT_1826718b8;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar33 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar38 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar4 + -0x1d8) =
       (*(ulonglong *)(lVar4 + -0x748) ^ uVar34) - (*(ulonglong *)(lVar4 + -0x80) ^ uVar26) ^ uVar33
  ;
  uVar22 = uVar38 ^ uVar37 ^ uVar23 ^ *(ulonglong *)(lVar4 + -0x400) ^
           *(ulonglong *)(lVar4 + -0xbf0);
  *(ulonglong *)(lVar4 + -0x800) = uVar22;
  *(longlong *)(lVar4 + -0x898) = 0x33aa14fab0675623 << (((byte)uVar22 ^ (byte)uVar12) & 0x3f);
  uVar6 = DAT_1826715a0;
  uVar23 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671580 ^ 0x638a8141)) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x800)) >> (((byte)DAT_18267159c ^ 3) & 0x3f) ^ uVar23;
  uVar32 = (uVar38 ^ *(ulonglong *)(lVar4 + -0x800)) << (((byte)uVar6 ^ 0x39) & 0x3f);
  uVar34 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar4 + -0x240) = uVar32 ^ CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar9 = DAT_1826715b0;
  lVar3 = DAT_182671560;
  uVar22 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x123300ec)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x123307d4)) ^ uVar23 | uVar32) ^
       uVar34;
  uVar11 = DAT_1826715e8;
  uVar23 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x400)) -
           (*(ulonglong *)(lVar3 - (uVar22 ^ 0x60795d8)) ^ uVar29);
  *(ulonglong *)(lVar3 + -0xa88) = uVar23 ^ uVar29;
  uVar32 = CONCAT44(uVar11,uVar11);
  uVar22 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar23 - (uVar34 ^ *puVar19) ^ uVar32;
  uVar11 = DAT_18267185c;
  uVar6 = DAT_182671568;
  uVar29 = (ulonglong)DAT_182671568;
  uVar22 = (CONCAT44(uVar7,DAT_182671580) ^ 0xedccfa5b9c757ccd) -
           (uVar22 ^ *(ulonglong *)(lVar3 + -0x510));
  *(ulonglong *)(lVar3 + -0x6d0) = uVar22 ^ uVar30;
  lVar3 = DAT_182671560;
  uVar30 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671560 - (uVar18 ^ 0xc83c0b3e)) =
       (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x30043025)) ^ uVar34) + uVar22 ^ uVar30;
  uVar23 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar18 = *(ulonglong *)(lVar3 + -0x6b8) ^ uVar23 ^ uVar30 ^ uVar36 ^
           *(ulonglong *)(lVar3 + -0x318);
  *puVar1 = uVar18;
  uVar30 = CONCAT44(DAT_182671734,DAT_182671734);
  uVar22 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267158c ^ 0x12330c5c)) =
       (uVar18 ^ uVar23) >> (((byte)uVar9 ^ 0x30) & 0x3f) ^ uVar30;
  uVar11 = DAT_182671710;
  uVar22 = (*(ulonglong *)(lVar3 - (uVar22 ^ 0xf7eaed49)) ^ uVar23) <<
           (((byte)DAT_182671590 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar3 + -0x600) = uVar22 ^ uVar26;
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar18 = uVar30 ^ *(ulonglong *)(lVar3 + -0x9f8) | uVar22;
  *(ulonglong *)(lVar3 + -0x610) = uVar18 ^ uVar34;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar22 ^ 0x714782c277910289;
  uVar30 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar3 + -0x628) = (uVar36 ^ *puVar16) - uVar18 ^ uVar20;
  uVar9 = DAT_18267158c;
  uVar31 = (ulonglong)DAT_18267158c;
  uVar26 = uVar30 ^ *(ulonglong *)(lVar3 + -0x1d8) ^ uVar32 ^ uVar33 ^
           *(ulonglong *)(lVar3 + -0x1f0);
  uVar22 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0xbf0) =
       (CONCAT44(uVar8,DAT_18267158c) ^ 0xa368e2216380dbf6) >>
       ((byte)*(undefined8 *)(lVar3 + -0x8a8) & 0x3f);
  uVar12 = DAT_182671860;
  *(ulonglong *)(lVar3 + -0x748) = uVar26;
  uVar11 = DAT_1826715d4;
  uVar7 = DAT_182671574;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x898) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x6079758)) ^ uVar30) >>
       (((byte)DAT_182671580 ^ 0x11) & 0x3f) ^ uVar33;
  uVar18 = CONCAT44(uVar11,uVar11);
  uVar22 = CONCAT44(uVar7,DAT_182671598);
  *(ulonglong *)(lVar3 + -0x800) = (uVar30 ^ uVar26) << (((byte)uVar21 ^ 0x62) & 0x3f) ^ uVar18;
  uVar26 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xbdd12d32)) =
       uVar22 ^ 0x721f562f1d38d3d0 | CONCAT44(uVar5,uVar7) ^ 0x158f71a51e4d5b01;
  uVar23 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar22 = *(ulonglong *)(lVar3 - (uVar26 ^ 0x12330da4)) ^ uVar18 |
           *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267156c ^ 0x12330d3c)) ^ uVar33;
  uVar18 = uVar22 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x240) = uVar18;
  uVar11 = DAT_1826718a4;
  *(ulonglong *)(lVar3 + -0x5c8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x3004337d)) ^ uVar18 ^ uVar23 ^ uVar34;
  lVar3 = DAT_182671560;
  uVar30 = CONCAT44(uVar11,uVar11);
  puVar16 = (ulonglong *)(DAT_182671560 - (uVar29 ^ 0x30043345));
  *(ulonglong *)(DAT_182671560 + -0x400) =
       (*(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x12330454)) ^ uVar32) - uVar22 ^ uVar30;
  uVar7 = DAT_1826715ac;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715ac ^ 0x838d32bf)) =
       *puVar16 ^ uVar23 ^ uVar38 ^ uVar20 ^ uVar18;
  uVar6 = DAT_182671590;
  uVar5 = DAT_182671570;
  uVar18 = (ulonglong)DAT_182671590;
  *puVar19 = CONCAT44(uVar10,uVar7) ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x240) ^ 0x96db3c9fa11fcb60;
  uVar7 = DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (uVar38 ^ *(ulonglong *)(lVar3 + -0xa88)) >> (((byte)uVar5 ^ 0x76) & 0x3f) ^ uVar25;
  uVar22 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar38 ^ *(ulonglong *)(lVar3 + -0xa88)) << (((byte)uVar7 ^ 0x16) & 0x3f) ^ uVar22;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x1b0702a5)) =
       (uVar28 ^ 0x12b389d3a399eaa1) >> (((byte)DAT_182671598 ^ 0x8f) & 0x3f);
  uVar11 = DAT_1826718a0;
  uVar22 = *(ulonglong *)(lVar3 + -0x6d0) ^ uVar25 | uVar22 ^ *(ulonglong *)(lVar3 + -0x6b8);
  uVar26 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar22 ^ uVar26;
  uVar12 = DAT_1826718ac;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x600) =
       (*(ulonglong *)(lVar4 - (uVar18 ^ 0x1b07062d)) ^ uVar20) - uVar22 ^ uVar25;
  bVar15 = (byte)DAT_1826715a4;
  uVar18 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x318) =
       uVar18 ^ uVar30 ^ uVar34 ^ *(ulonglong *)(lVar4 + -0x610) ^ *(ulonglong *)(lVar4 + -0x400);
  uVar5 = DAT_1826715b0;
  uVar22 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671584 ^ 0x72e116b)) =
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0x123306bc)) ^ uVar18) >> ((bVar15 ^ 6) & 0x3f) ^ uVar35;
  uVar11 = DAT_18267166c;
  uVar20 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0x6079308)) ^ uVar18) << 0x2a;
  *(ulonglong *)(lVar4 + -0x8a8) = uVar20 ^ CONCAT44(DAT_182671668,DAT_182671668);
  uVar12 = DAT_182671774;
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar20 = uVar20 | *(ulonglong *)(lVar4 + -0x1d8) ^ uVar35;
  uVar18 = uVar20 ^ uVar22;
  *(ulonglong *)(lVar4 + -0xbf0) = uVar18;
  uVar23 = CONCAT44(uVar12,uVar12);
  uVar32 = CONCAT44(uVar8,DAT_182671574);
  *(ulonglong *)(lVar4 + -0x748) = (uVar30 ^ *(ulonglong *)(lVar4 + -0x400)) - uVar20 ^ uVar23;
  uVar12 = DAT_182671864;
  uVar20 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar4 + -0x270) = CONCAT44(uVar9,DAT_1826715a0) ^ uVar32 ^ 0xa89dc7a693c2c9f0;
  uVar11 = DAT_182671740;
  uVar32 = CONCAT44(uVar12,uVar12);
  bVar15 = (byte)DAT_18267156c;
  uVar18 = uVar32 ^ uVar22 ^ uVar25 ^ *(ulonglong *)(lVar4 + -0x600) ^ uVar18;
  *(ulonglong *)(lVar4 + -0x800) = uVar18;
  uVar30 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671580 ^ 0x638a8ba9)) =
       (uVar18 ^ uVar32) >> ((bVar15 ^ 0x8a) & 0x3f) ^ uVar30;
  uVar12 = DAT_182671714;
  uVar11 = _DAT_1826715dc;
  uVar18 = (uVar32 ^ *(ulonglong *)(lVar4 + -0x800)) << ((bVar15 ^ 0xb6) & 0x3f);
  *(ulonglong *)(lVar4 + -0x5c8) = uVar18 ^ CONCAT44(DAT_182671834,DAT_182671834);
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x3d13aff9)) =
       (uVar18 | uVar30 ^ *(ulonglong *)(lVar4 + -0x898)) ^ uVar22;
  uVar18 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(lVar4 + -0x240) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x600)) - (uVar22 ^ *(ulonglong *)(lVar4 + -0x1f0)) ^
       CONCAT44(uVar11,uVar11);
  *puVar19 = uVar18 ^ uVar23 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x9f8) ^
             *(ulonglong *)(lVar4 + -0x748);
  bVar15 = (byte)DAT_18267159c;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x860d3640)) =
       (uVar18 ^ *puVar17) >> (((byte)uVar5 ^ 0x1c) & 0x3f) ^ uVar27;
  *puVar1 = (uVar18 ^ *puVar19) << ((bVar15 ^ 0x27) & 0x3f) ^ CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar21) * 4) = uVar14;
  return;
}



############ FUN_ 180ee8d00 size=5194 ############

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

void FUN_180ee8d00(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res18;
  byte local_res20;
  byte local_100;
  byte local_c8;
  
  uVar11 = DAT_1826715c8;
  uVar10 = DAT_1826715b0;
  uVar8 = DAT_1826715ac;
  uVar9 = DAT_1826715a4;
  uVar15 = DAT_182671594;
  uVar6 = DAT_182671584;
  uVar4 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar39 = (ulonglong)DAT_1826715a4;
  uVar34 = (ulonglong)DAT_18267156c;
  uVar30 = (ulonglong)DAT_1826715ac;
  uVar18 = (ulonglong)DAT_1826715b0;
  uVar25 = DAT_182671594 | DAT_1826715b0;
  uVar20 = DAT_1826715a4 + DAT_18267156c;
  uVar32 = ~DAT_1826715ac;
  uVar23 = (DAT_182671584 << 0x10 | DAT_182671584 & 0xff00) << 8 | DAT_182671584 >> 8 & 0xff00 |
           DAT_182671584 >> 0x18;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671974);
  uVar14 = *(uint *)(&DAT_182611e80 + DAT_182671974) ^ DAT_182671584;
  DAT_182671570 = uVar25;
  DAT_182671578 = uVar32;
  DAT_182671580 = uVar20;
  DAT_18267159c = uVar23;
  *(uint *)(DAT_182671560 + -0x344) =
       *(uint *)(DAT_182671560 + -0x874) >> ((byte)*(undefined4 *)(DAT_182671560 + -0x3d4) & 0x1f);
  uVar26 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xf7fff8ef)) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar2 + -0x688)) +
       (CONCAT44(uVar10,uVar25) ^ 0xa39252b92976f1d8) ^ uVar26;
  uVar17 = (ulonglong)uVar15;
  puVar22 = (ulonglong *)(lVar2 - (uVar17 ^ 0x64b485fe));
  uVar16 = CONCAT44(DAT_182671658,DAT_182671658);
  uVar19 = *(ulonglong *)(lVar2 + -0xa60) ^ uVar16;
  uVar21 = CONCAT44(DAT_182671698,DAT_182671698);
  uVar31 = (*puVar22 ^ uVar26) + uVar19 ^ uVar21;
  uVar26 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar31;
  uVar11 = DAT_182671730;
  uVar27 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar2 + -0x1f0) = *(ulonglong *)(*(ulonglong *)(lVar2 + -0x368) ^ uVar26) ^ uVar27;
  uVar12 = DAT_1826718b8;
  lVar2 = DAT_182671560;
  uVar41 = CONCAT44(uVar11,uVar11);
  uVar28 = (ulonglong)uVar32;
  uVar38 = (ulonglong)uVar20;
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar19 << (((byte)uVar32 ^ 0xe) & 0x3f) ^ uVar41;
  uVar11 = DAT_18267183c;
  uVar7 = DAT_182671584;
  uVar29 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xeeb58d9f)) ^ uVar16) >>
           ((byte)uVar20 & 0x3f);
  puVar33 = (ulonglong *)(lVar2 - (uVar17 ^ 0x64b486fe));
  *(ulonglong *)(lVar2 + -0x318) = uVar29 ^ CONCAT44(uVar12,uVar12);
  uVar13 = DAT_182671878;
  uVar12 = DAT_182671828;
  uVar19 = CONCAT44(uVar11,uVar11);
  uVar29 = (uVar29 | uVar41 ^ *puVar33) ^ uVar19;
  *(ulonglong *)(lVar2 + -0x110) = uVar29;
  uVar11 = DAT_1826716f0;
  uVar42 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar31 ^ uVar42 ^ uVar19 ^ uVar21 ^ uVar29;
  lVar3 = DAT_182671560;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x9e8) =
       CONCAT44(uVar7,uVar32) ^ uVar19 ^ *(ulonglong *)(lVar2 + -0x9f8) ^ 0xb63f47a49d1ded0b;
  uVar35 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar15 = DAT_1826715f8 >> 0x10;
  uVar29 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x6fd556bb)) ^ CONCAT44(uVar12,uVar12)) +
           (CONCAT44(uVar20,uVar4) ^ 0x4f28d83f7b348fcb);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar29 ^ uVar35;
  lVar2 = DAT_182671560;
  uVar19 = (*(ulonglong *)(DAT_182671560 - (uVar39 ^ 0x6fd5580b)) ^ uVar19) +
           (CONCAT44(uVar8,uVar23) ^ 0x11ca90539e001517);
  uVar24 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar19 ^ CONCAT44(DAT_182671834,DAT_182671834);
  local_res20 = (byte)uVar10;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x80001f0)) = uVar29 + uVar19 ^ uVar24;
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar2 + -0x628) =
       (*(ulonglong *)(lVar2 + -0x670) ^ uVar35) << ((local_res20 ^ 1) & 0x3f) ^ uVar31;
  uVar12 = DAT_182671710;
  uVar5 = DAT_182671570;
  uVar19 = (ulonglong)*(ushort *)(lVar3 + -0x66a) ^ (ulonglong)uVar15;
  *(ulonglong *)(lVar3 + -0x5c8) =
       CONCAT44(uVar7,DAT_182671584) ^ CONCAT44(DAT_182671570,uVar32) ^ 0x37b5a147c2b98653;
  uVar11 = DAT_1826715fc;
  *(ulonglong *)(lVar3 + -0x600) = uVar19 ^ CONCAT44(uVar12,uVar12);
  uVar15 = DAT_182671650;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar19 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xf7fffbd7)) ^ uVar31 | uVar19) ^ uVar29;
  *(ulonglong *)(lVar3 + -0x688) = uVar19;
  uVar35 = CONCAT44(uVar15,uVar15);
  *puVar22 = uVar35 ^ uVar29 ^ uVar24 ^ uVar19 ^ *(ulonglong *)(lVar3 + -0x3f0);
  uVar11 = DAT_1826717a0;
  uVar29 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar3 + -0x1f0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x6fd554e3)) ^ uVar35) +
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0xfffff947)) ^ uVar21) ^ uVar29;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar19 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 + -0x510) ^ uVar35) << (((byte)uVar25 ^ 0xcb) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x6fd557e2)) =
       ((ulonglong)uVar15 << 0x14 | (ulonglong)(uVar15 >> 0xc)) ^
       *(ulonglong *)(lVar3 + -0x510) >> 0xc ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xfffffce7)) =
       (CONCAT44(uVar5,uVar23) ^ 0x14f1cb0d100bdea7) <<
       ((*(byte *)(lVar3 + -0x510) ^ (byte)uVar15) & 0x3f);
  uVar11 = DAT_182671734;
  uVar21 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar19 = (*(ulonglong *)(lVar3 - (uVar38 ^ 0x6fd55b92)) ^ uVar31 |
           uVar19 ^ *(ulonglong *)(lVar3 + -0x610)) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x110) = uVar19;
  uVar45 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x9e8) =
       uVar45 ^ uVar19 ^ uVar21 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x1f0);
  uVar31 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(DAT_182671560 - (uVar17 ^ 0x64b487a6)) =
       (*(ulonglong *)(DAT_182671560 + -0xbf0) ^ uVar42) +
       (uVar24 ^ *(ulonglong *)(DAT_182671560 + -0x3f0)) ^ uVar31;
  lVar2 = DAT_182671560;
  uVar36 = CONCAT44(DAT_182671854,DAT_182671854);
  uVar24 = (*(ulonglong *)(DAT_182671560 + -0xbf0) ^ uVar42) << (((byte)uVar32 ^ 0x39) & 0x3f);
  uVar35 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar24 ^ uVar36;
  uVar15 = DAT_182671584;
  uVar21 = (*(ulonglong *)(lVar2 - (uVar30 ^ 0xf7fff60f)) ^ uVar42) >>
           (((byte)DAT_182671584 ^ 0x3c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x638) = uVar21 ^ uVar35;
  *(uint *)(lVar2 + -0x5cc) = *(int *)(lVar2 - (uVar18 ^ 0x8a010215)) - (uVar9 ^ 0x4c8fafd0);
  uVar11 = DAT_1826718d4;
  uVar19 = CONCAT44(DAT_182671790,DAT_182671790);
  *(ulonglong *)(lVar2 + -0x5c8) = (uVar21 | uVar24) ^ uVar19;
  uVar21 = CONCAT44(uVar11,uVar11);
  uVar19 = *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xcf3bcaf3)) ^ *(ulonglong *)(lVar2 + -0x748)
           ^ uVar21 ^ uVar19 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x670) = uVar19;
  uVar15 = DAT_182671568;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0x3bcf3de7)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x1f0)) + (uVar19 ^ uVar21) ^ uVar42;
  *(ulonglong *)(lVar2 + -0x600) = CONCAT44(uVar15,uVar32) ^ 0xee61f776a2ac6215;
  uVar37 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *(ulonglong *)(lVar2 + -0x688) =
       (*(ulonglong *)(lVar2 + -0x670) ^ uVar21) << (((byte)uVar15 ^ 0xec) & 0x3f) ^ uVar37;
  local_res18 = (byte)uVar8;
  uVar29 = (*(ulonglong *)(lVar2 - (uVar17 ^ 0x64b4869e)) ^ uVar21) >> ((local_res18 ^ 0xd6) & 0x3f)
  ;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar29 ^ CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar8 = DAT_18267158c;
  lVar3 = DAT_182671560;
  puVar40 = (ulonglong *)(lVar2 - (uVar38 ^ 0x6fd5577a));
  uVar24 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar19 = (ulonglong)DAT_18267158c;
  uVar21 = CONCAT44(uVar5,DAT_18267158c);
  uVar29 = (*puVar40 ^ uVar37 | uVar29) ^ uVar24;
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar29;
  uVar11 = DAT_182671788;
  uVar38 = uVar45 ^ *(ulonglong *)(lVar3 + -0x9e8);
  *(ulonglong *)(lVar3 + -0x318) = CONCAT44(uVar5,uVar10) ^ uVar21 ^ 0x883a283f5728e9a3;
  uVar44 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xa60) =
       *(ulonglong *)(lVar3 - (uVar18 ^ 0x8a010139)) ^ uVar29 ^ uVar44 ^ uVar24 ^ uVar42;
  uVar11 = DAT_182671684;
  *(ulonglong *)(lVar3 + -0x610) = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x368) ^ uVar26) ^ uVar27;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar24 = uVar38 << (((byte)uVar4 ^ 0xd7) & 0x3f);
  *(ulonglong *)(lVar3 + -0x110) = (*(ulonglong *)(lVar3 + -0x748) ^ uVar31) + uVar38 ^ uVar29;
  uVar12 = DAT_1826718a8;
  *(ulonglong *)(lVar3 + -0x3f0) = uVar24 ^ CONCAT44(DAT_182671898,DAT_182671898);
  uVar11 = DAT_18267174c;
  lVar2 = DAT_182671560;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0x64b48906)) ^ uVar45) >> (((byte)uVar4 ^ 0xe7) & 0x3f) ^
       uVar21;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar38 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *(ulonglong *)(lVar2 + -0x9f8) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x8a010ce1)) ^ uVar21 | uVar24) ^ uVar31;
  uVar21 = *(ulonglong *)(lVar2 - (uVar28 ^ 0x8000310)) ^
           *(ulonglong *)(lVar2 - (uVar30 ^ 0xf7fff407)) ^ uVar38 ^ uVar31 ^ uVar29;
  uVar24 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar2 + -0x5c8) = uVar21;
  uVar11 = DAT_182671724;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xd6fde5dc)) ^ uVar42) + (uVar21 ^ uVar38) ^
       uVar24;
  uVar15 = DAT_182671568;
  uVar37 = (uVar21 ^ uVar38) << (((byte)DAT_182671568 ^ 0xfe) & 0x3f);
  local_c8 = (byte)(uVar6 >> 0x18);
  uVar21 = (*(ulonglong *)(lVar2 + -0x5c8) ^ uVar38) >> ((local_c8 ^ 0xf4) & 0x3f);
  uVar31 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar2 + -0x600) = uVar37 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x670) = uVar21 ^ uVar31;
  *(uint *)(lVar2 + -0x774) = (uVar8 ^ 0xd6270773) * 0x23ce8b57;
  puVar22 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671584 ^ 0xcf3bc9b3));
  *puVar22 = (uVar37 | uVar21) ^ uVar31;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xd6fde54c)) =
       (*(ulonglong *)(lVar2 + -0x638) ^ uVar35) - (CONCAT44(uVar10,uVar9) ^ 0xa79d681a2324c6b2);
  uVar21 = uVar44 ^ *(ulonglong *)(lVar2 + -0xa60);
  uVar45 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(lVar2 + -0x318) =
       uVar45 ^ uVar31 ^ uVar24 ^ *puVar22 ^ *(ulonglong *)(lVar2 + -0x1f0);
  uVar11 = DAT_1826717cc;
  uVar42 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar2 + -0x510) = (uVar29 ^ *(ulonglong *)(lVar2 + -0x110)) + uVar21 ^ uVar42;
  uVar29 = CONCAT44(uVar11,uVar11);
  puVar43 = (ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xff7fe9eb));
  *puVar43 = uVar21 << ((local_res18 ^ 0xda) & 0x3f) ^ uVar29;
  lVar2 = DAT_182671560;
  uVar21 = (uVar44 ^ *(ulonglong *)(DAT_182671560 + -0xa60)) >> ((local_res18 ^ 0xe4) & 0x3f);
  puVar22 = (ulonglong *)(DAT_182671560 - (uVar30 ^ 0xf7fff79f));
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar21 ^ uVar27;
  uVar11 = DAT_182671810;
  *(ulonglong *)(lVar2 + -0x9e8) =
       (*puVar22 ^ uVar44) + (CONCAT44(uVar20,uVar23) ^ 0x3fd4220335a19ddf);
  lVar2 = DAT_182671560;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar21 = (uVar21 | uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x610)) ^ uVar31;
  *(ulonglong *)(DAT_182671560 + -0x3f0) = uVar21;
  *(int *)(lVar2 + -0x754) = *(int *)(lVar2 + -0x640) - *(int *)(lVar2 + -0x5cc);
  uVar29 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  uVar21 = uVar29 ^ *(ulonglong *)(lVar2 + -0x510) ^ uVar31 ^ uVar42 ^ uVar21;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar21;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xff7fe603)) =
       (CONCAT44(uVar7,uVar8) ^ 0x290ea2977332cd2c) + (uVar29 ^ uVar21) ^ uVar35;
  uVar21 = CONCAT44(uVar4,DAT_182671570);
  uVar29 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xfffff9d7)) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x1f0)) + (uVar21 ^ 0x827a2da35833ccf8) ^ uVar29;
  uVar11 = DAT_182671844;
  uVar44 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar2 + -0x5c8) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x628)) + (uVar35 ^ *(ulonglong *)(lVar2 + -0x9f8)) ^
       uVar44;
  lVar2 = DAT_182671560;
  uVar31 = CONCAT44(uVar11,uVar11);
  local_100 = (byte)uVar9;
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x8000400)) =
       (uVar35 ^ *(ulonglong *)(DAT_182671560 + -0x9f8)) << ((local_res20 ^ 8) & 0x3f) ^ uVar31;
  uVar29 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xff7fe98b)) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x9f8)) >> ((local_100 ^ 0xd4) & 0x3f) ^ uVar29;
  uVar31 = uVar31 ^ *(ulonglong *)(lVar2 + -0x600) | uVar29 ^ *(ulonglong *)(lVar2 + -0x670);
  *(uint *)(lVar2 + -0x274) = (DAT_182671594 ^ 0xda5e5467) + *(int *)(lVar2 + -0x3c8);
  *(ulonglong *)(lVar2 + -0x638) = uVar31 ^ CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar29 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar31 ^ uVar44 ^ *(ulonglong *)(lVar2 + -0x5c8) ^ uVar26;
  uVar6 = DAT_182671824;
  lVar3 = DAT_182671560;
  uVar37 = (ulonglong)DAT_182671824;
  uVar31 = CONCAT44(DAT_182671824,DAT_182671824);
  *puVar40 = (*(ulonglong *)(lVar2 - (uVar29 ^ 0xeeb584e7)) ^ uVar45) +
             (CONCAT44(uVar8,uVar20) ^ 0x92b6843e3438b0e5) ^ uVar31;
  uVar29 = (CONCAT44(uVar32,uVar23) ^ 0xb543c8600d04246e) +
           (*(ulonglong *)(lVar3 + -0x510) ^ uVar42);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x6fd550e3)) = uVar29 ^ uVar36;
  uVar5 = DAT_18267168c;
  uVar24 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar29 = uVar29 + (uVar31 ^ *(ulonglong *)(lVar3 + -0x688));
  uVar35 = CONCAT44(uVar10,uVar23) ^ 0xbac498c325ef2b5a;
  *(ulonglong *)(lVar3 + -0xa60) = uVar29 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar35;
  uVar15 = DAT_182671584;
  *(ulonglong *)(lVar3 + -0x3f0) = uVar29 << 0x3b;
  uVar36 = CONCAT44(uVar5,uVar5);
  uVar42 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar3 + -0x610) = (uVar31 ^ *(ulonglong *)(lVar3 + -0x688)) << 0x21 ^ uVar36;
  uVar29 = ((ulonglong)(uVar6 >> 0x1f) | uVar37 * 2) ^ *(ulonglong *)(lVar3 + -0x688) >> 0x1f;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar29 ^ uVar42;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar35 << (((byte)uVar15 ^ 0x36) & 0x3f);
  uVar29 = (uVar29 | uVar36 ^ *puVar33) ^ uVar41;
  *(ulonglong *)(lVar3 + -0x9f8) =
       uVar21 ^ *(ulonglong *)(lVar3 + -0x748) ^ uVar27 ^ 0xa64ef4755256159b;
  uVar11 = DAT_1826717dc;
  *(ulonglong *)(lVar3 + -0x628) = uVar29;
  lVar2 = DAT_182671560;
  uVar21 = CONCAT44(uVar11,uVar11);
  uVar29 = *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0xfffff59f)) ^ uVar21 ^ uVar24 ^ uVar41 ^ uVar29
  ;
  uVar31 = CONCAT44(DAT_18267164c,DAT_18267164c);
  puVar22 = (ulonglong *)(DAT_182671560 + -0x5c8);
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar29;
  uVar35 = (uVar29 ^ uVar21) + (uVar44 ^ *puVar22) ^ uVar31;
  *(ulonglong *)(lVar2 + -0x670) = uVar35;
  uVar11 = DAT_182671720;
  *(ulonglong *)(lVar2 + -0x638) =
       (uVar42 ^ *(ulonglong *)(lVar2 + -0xbf0)) >> ((local_res18 ^ 0xde) & 0x3f);
  lVar3 = DAT_182671560;
  uVar29 = (uVar21 ^ uVar29) << (((byte)uVar20 ^ 0xdc) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar29 ^ uVar38;
  uVar27 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x600)) >> ((local_res20 ^ 3) & 0x3f);
  uVar21 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar3 + -0x510) = uVar27 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_1826715ec;
  uVar27 = (uVar27 | uVar29) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x110) = uVar27;
  *(ulonglong *)(lVar3 + -0x3f0) = CONCAT44(uVar11,uVar11) ^ uVar21 ^ uVar31 ^ uVar35 ^ uVar27;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xf7fffb77)) = uVar29 << 0x32;
  uVar21 = CONCAT44(DAT_182671678,DAT_182671678);
  *(ulonglong *)(lVar3 + -0x9e8) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0xa60)) + (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar26) ^
       uVar21;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (CONCAT44(uVar23,uVar10) ^ 0x82321526fa2d0155) -
       (CONCAT44(uVar23,uVar4) ^ 0x3e6b3596e9ddfb4b);
  uVar29 = CONCAT44(DAT_182671778,DAT_182671778);
  *puVar43 = (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar26) << (((byte)uVar8 ^ 0xf8) & 0x3f) ^ uVar29;
  uVar26 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0x8a0101a9)) >> 0x20 ^ (ulonglong)DAT_1826717b0) >>
           0x14;
  *(ulonglong *)(lVar3 + -0x748) = uVar26 ^ CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar21 = (*(ulonglong *)(lVar3 - (uVar19 ^ 0xd6fde5e4)) ^ uVar29 | uVar26) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar21;
  uVar15 = DAT_182671570 ^ 0x6fc81b70;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671574 ^ 0x3bcf3de7)) =
       uVar36 ^ uVar21 ^ *(ulonglong *)(lVar3 + -0x9e8);
  *(uint *)(lVar3 + -0x910) = uVar15 | DAT_182671584 ^ 0x9377a3fd;
  uVar15 = DAT_182671568;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x64b48526)) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x628)) + (uVar31 ^ *(ulonglong *)(lVar3 + -0x670)) ^
       CONCAT44(DAT_182671814,DAT_182671814);
  uVar17 = (ulonglong)DAT_18267157c;
  uVar19 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar3 + -0xbf0) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x628)) << (((byte)uVar15 ^ 0xc1) & 0x3f) ^ uVar16;
  uVar11 = DAT_18267182c;
  uVar17 = *(ulonglong *)(lVar3 - (uVar17 ^ 0xfdfff8d7)) >> 6 ^
           ((ulonglong)uVar5 << 0x1a | (ulonglong)(uVar5 >> 6));
  *(ulonglong *)(lVar3 + -0x638) = uVar17 ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xfffff9ff)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x80009f0)) ^ uVar16 | uVar17) ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar1 ^ uVar23;
  return;
}



############ FUN_ 180e59860 size=5627 ############

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

void FUN_180e59860(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  ulonglong *puVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  byte local_148;
  byte local_140;
  byte local_118;
  byte local_110;
  byte local_100;
  ulonglong uVar21;
  
  uVar9 = DAT_182671594;
  uVar8 = DAT_182671588;
  uVar7 = DAT_182671584;
  uVar5 = DAT_182671574;
  uVar4 = DAT_182671570;
  uVar23 = DAT_18267156c;
  uVar3 = DAT_182671568;
  uVar39 = DAT_182671588 | DAT_182671568;
  uVar31 = (ulonglong)DAT_182671594;
  uVar43 = (ulonglong)DAT_182671570;
  uVar28 = DAT_18267159c | DAT_18267156c;
  uVar46 = (ulonglong)DAT_182671584;
  uVar34 = *(uint *)(&DAT_182611e78 + DAT_182671ab8) ^ DAT_182671568;
  uVar33 = (ulonglong)DAT_182671574;
  uVar19 = DAT_182671594 & DAT_182671574;
  uVar21 = (ulonglong)uVar19;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671ab8) ^ DAT_182671588;
  uVar25 = ~DAT_182671570;
  uVar48 = ~DAT_182671584;
  uVar35 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar38 = (ulonglong)uVar39;
  uVar40 = CONCAT44(DAT_182671708,DAT_182671708);
  DAT_182671578 = uVar19;
  DAT_182671598 = uVar39;
  DAT_1826715a0 = uVar48;
  DAT_1826715a8 = uVar25;
  DAT_1826715b0 = uVar28;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0x2eb04e6b)) =
       (*(ulonglong *)(DAT_182671560 + -0x510) ^ uVar35) << (((byte)uVar19 ^ 0x27) & 0x3f) ^ uVar40;
  uVar6 = DAT_18267157c;
  uVar24 = (ulonglong)DAT_18267157c;
  uVar20 = (DAT_18267157c << 0x10 | DAT_18267157c & 0xff00) << 8 | DAT_18267157c >> 8 & 0xff00 |
           DAT_18267157c >> 0x18;
  uVar16 = (ulonglong)uVar20;
  uVar17 = CONCAT44(uVar20,DAT_18267157c);
  DAT_1826715a4 = uVar20;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xdaea80fa)) =
       0x457f526d322afb22 >> (((byte)DAT_18267157c ^ 0x17) & 0x3f);
  uVar32 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xaa00a62)) =
       (*(ulonglong *)(DAT_182671560 + -0x510) ^ uVar35) >> (((byte)uVar7 ^ 0xbc) & 0x3f) ^ uVar32;
  uVar10 = DAT_18267159c;
  lVar1 = DAT_182671560;
  uVar44 = (ulonglong)DAT_18267159c;
  uVar36 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  uVar35 = (ulonglong)uVar23;
  *(ulonglong *)(DAT_182671560 - (uVar44 ^ 0xeff8f79d)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar25 ^ 0x8a010d70)) ^ uVar32 |
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0x75fefe67)) ^ uVar40) ^ uVar36;
  uVar32 = CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar26 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar1 + -0x638) =
       *(ulonglong *)(lVar1 + -0x9e8) ^ *(ulonglong *)(lVar1 + -0x748) ^ uVar26 ^ uVar32 ^ uVar36;
  *(ulonglong *)(lVar1 - (uVar16 ^ 0x1bce140d)) =
       (CONCAT44(DAT_1826716bc,DAT_1826716bc) ^ *(ulonglong *)(lVar1 + -0x318)) -
       (CONCAT44(uVar23,uVar9) ^ 0x61234288540317f7);
  uVar45 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826715a0 ^ 0x256a2758)) =
       (CONCAT44(uVar28,uVar39) ^ 0xf69db885d36c36) + (*(ulonglong *)(lVar1 + -0x638) ^ uVar32) ^
       uVar45;
  uVar12 = DAT_1826718c8;
  uVar13 = DAT_182671844;
  uVar32 = (*(ulonglong *)(lVar1 - (uVar43 ^ 0x75fefeff)) ^ CONCAT44(DAT_182671800,DAT_182671800)) +
           (CONCAT44(uVar6,uVar19) ^ 0xe5ec47d68e6b7030);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar32 ^ CONCAT44(DAT_182671844,DAT_182671844);
  uVar11 = DAT_1826715c0;
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar41 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0x1f8416bc)) ^ uVar45) + uVar32 ^ uVar29;
  uVar40 = CONCAT44(DAT_18267165c,DAT_18267165c);
  uVar32 = (uVar45 ^ *(ulonglong *)(DAT_182671560 + -0x600)) << (((byte)uVar7 ^ 0xbe) & 0x3f);
  uVar36 = (ulonglong)uVar3;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar41;
  *(ulonglong *)(lVar2 + -0x110) = uVar32 ^ uVar40;
  lVar1 = DAT_182671560;
  uVar51 = CONCAT44(uVar11,uVar11);
  bVar18 = (byte)uVar28;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x754a3342)) ^ uVar45) >> ((bVar18 ^ 0xd2) & 0x3f) ^ uVar51
  ;
  uVar11 = DAT_1826716d8;
  *(int *)(lVar1 + -0x640) = *(int *)(lVar1 + -0x8c) - *(int *)(lVar1 - (uVar38 ^ 0x7fce3182));
  uVar14 = DAT_1826718d0;
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar32 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0xfff9f505)) ^ uVar51 | uVar32) ^ uVar40;
  *(ulonglong *)(lVar1 + -0x9f8) = uVar32;
  uVar12 = DAT_182671810;
  uVar27 = CONCAT44(uVar14,uVar14);
  uVar45 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(lVar1 + -0x670) = uVar41 ^ uVar27 ^ uVar40 ^ uVar29 ^ uVar32;
  uVar11 = DAT_1826717c0;
  uVar41 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0x1f0) =
       (*(ulonglong *)(lVar1 - (uVar33 ^ 0x2eb04b13)) ^ uVar45) +
       (CONCAT44(uVar25,uVar8) ^ 0xf784d54ca9025baa) ^ uVar41;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0x510) =
       (*(ulonglong *)(lVar1 - (uVar44 ^ 0xeff8f93d)) ^ uVar26) +
       (CONCAT44(uVar20,uVar8) ^ 0xde1787fe6647352a) ^ uVar32;
  *(int *)(lVar1 - (uVar46 ^ 0xda95d9d3)) = *(int *)(lVar1 - (uVar36 ^ 0x754a313e)) * 0x379e6c9f;
  uVar11 = DAT_18267186c;
  uVar26 = CONCAT44(DAT_182671754,DAT_182671754);
  uVar42 = (*(ulonglong *)(lVar1 - (uVar43 ^ 0x75fef91f)) ^ uVar41) +
           (*(ulonglong *)(lVar1 + -0x510) ^ uVar32) ^ uVar26;
  *(ulonglong *)(lVar1 + -0x688) = uVar42;
  uVar40 = CONCAT44(uVar11,uVar11);
  local_140 = (byte)uVar23;
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       (*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xc511cfeb)) ^ uVar41) <<
       (((byte)uVar39 ^ 0xdf) & 0x3f) ^ uVar40;
  lVar1 = DAT_182671560;
  uVar32 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar41 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) >> ((local_140 ^ 0xaf) & 0x3f) ^ uVar32;
  uVar14 = _DAT_182671868;
  uVar12 = DAT_182671828;
  lVar2 = DAT_182671560;
  uVar30 = CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar32 = (*(ulonglong *)(lVar1 - (uVar44 ^ 0xeff8f415)) ^ uVar40 |
           *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xc511c7f3)) ^ uVar32) ^ uVar30;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar32;
  uVar11 = DAT_18267178c;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar42 = uVar42 ^ uVar37 ^ uVar32 ^ uVar30 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar42;
  lVar1 = DAT_182671560;
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar32 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 + -0x638) =
       (*(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x1bce17ed)) ^ uVar29) + (uVar37 ^ uVar42) ^ uVar40
  ;
  puVar22 = (ulonglong *)(lVar1 - (uVar32 ^ 0x256a2490));
  *(ulonglong *)(lVar1 + -0x610) =
       (CONCAT44(uVar23,uVar3) ^ 0xd05cc0adb87d5cae) >>
       ((*(byte *)(lVar1 + -0x318) ^ (byte)uVar14) & 0x3f);
  uVar42 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar1 - (uVar16 ^ 0x1bce17c5)) =
       (uVar37 ^ *puVar22) << (((byte)uVar25 ^ 0x3e) & 0x3f) ^ uVar42;
  *(longlong *)(lVar1 + -0x110) =
       -0x79855ba4c90503e6 << ((*(byte *)(lVar1 - (uVar35 ^ 0xf681f208)) ^ (byte)uVar13) & 0x3f);
  uVar11 = DAT_1826716dc;
  uVar32 = CONCAT44(DAT_182671758,DAT_182671758);
  *(ulonglong *)(lVar1 + -0xbf0) =
       (uVar37 ^ *(ulonglong *)(lVar1 + -0x5c8)) >> (((byte)uVar39 ^ 0xec) & 0x3f) ^ uVar32;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0xaa009fa)) =
       (*(ulonglong *)(lVar1 - (uVar33 ^ 0x2eb04313)) ^ uVar32 |
       uVar42 ^ *(ulonglong *)(lVar1 + -0x600)) ^ uVar29;
  uVar33 = *(ulonglong *)(lVar1 + -0x670) ^ uVar27;
  uVar49 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar1 + -0x3f0) =
       uVar49 ^ uVar29 ^ uVar40 ^ *(ulonglong *)(lVar1 + -0x638) ^ *(ulonglong *)(lVar1 + -0x9f8);
  uVar12 = DAT_1826717dc;
  uVar53 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  uVar29 = (*(ulonglong *)(lVar1 - (uVar24 ^ 0xc511c86b)) ^ uVar27) +
           (*(ulonglong *)(lVar1 + -0x688) ^ uVar26) ^ uVar53;
  *(ulonglong *)(lVar1 + -0x748) = uVar29;
  uVar11 = DAT_1826716c8;
  lVar1 = DAT_182671560;
  local_110 = (byte)(uVar6 >> 0x18);
  uVar32 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar27 = uVar33 << ((local_110 ^ 0xc9) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar27 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0x1f0) = uVar33 >> (((byte)uVar9 ^ 0x3e) & 0x3f) ^ uVar32;
  uVar12 = DAT_1826717d0;
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar32 = (*(ulonglong *)(lVar1 - (uVar35 ^ 0xf681f540)) ^ uVar32 | uVar27) ^ uVar33;
  *(ulonglong *)(lVar1 + -0xa60) = uVar32;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar32 = uVar27 ^ uVar33 ^ uVar53 ^ uVar29 ^ uVar32;
  *(ulonglong *)(lVar1 + -0x9e8) = uVar32;
  uVar11 = DAT_1826716fc;
  *(ulonglong *)(lVar1 + -0x628) =
       *(ulonglong *)(lVar1 - (uVar46 ^ 0xda95ddbf)) ^ uVar30 | 0xaf21b4e9afe2e272;
  lVar2 = DAT_182671560;
  uVar52 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - (uVar44 ^ 0xeff8f865)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0x8a010128)) ^ uVar40) + (uVar27 ^ uVar32) ^
       uVar52;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar1 + -0x9e8);
  *(ulonglong *)(lVar1 + -0x6b8) =
       CONCAT44(uVar48,uVar5) ^ CONCAT44(uVar8,uVar9) ^ 0xfe690ab67fd1f770;
  uVar33 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar2 + -0x110) = uVar27 << (((byte)uVar3 ^ 0x78) & 0x3f) ^ uVar33;
  uVar37 = CONCAT44(DAT_182671604,DAT_182671604);
  local_148 = (byte)uVar4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x1f841574)) =
       uVar27 >> ((local_140 ^ 0xb6) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xaa00602)) =
       (CONCAT44(uVar3,uVar23) ^ 0xe4e4750e1abe93c3) << ((local_148 ^ 0xe2) & 0x3f);
  uVar11 = DAT_182671770;
  uVar32 = *(ulonglong *)(lVar2 + -0x610);
  uVar40 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  uVar33 = (uVar37 ^ *(ulonglong *)(lVar2 + -0x5c8) | uVar33 ^ *(ulonglong *)(lVar2 + -0x110)) ^
           uVar40;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar33;
  uVar47 = CONCAT44(uVar11,uVar11);
  uVar29 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  uVar27 = uVar32 ^ uVar47 ^ uVar33 ^ uVar40 ^ uVar52;
  *(ulonglong *)(lVar2 + -0x9f8) = uVar27;
  uVar50 = uVar49 ^ *(ulonglong *)(lVar2 + -0x3f0);
  local_118 = (byte)uVar5;
  uVar49 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x8a0104e0)) ^ uVar49) +
           (uVar53 ^ *(ulonglong *)(lVar2 + -0x748)) ^ uVar29;
  uVar30 = uVar50 << 0x16;
  uVar50 = uVar50 >> ((local_118 ^ 0xc9) & 0x3f);
  *(uint *)(lVar2 + -0x874) = (DAT_18267157c ^ 0xe5e7820c) * (DAT_182671584 ^ 0x48a8680a);
  uVar11 = DAT_182671860;
  *(ulonglong *)(lVar2 + -0x688) = uVar49;
  uVar33 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar2 + -0x670) = uVar30 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671750;
  *(ulonglong *)(lVar2 + -0x510) = uVar50 ^ uVar33;
  lVar1 = DAT_182671560;
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar53 = (uVar50 | uVar30) ^ uVar40;
  *(uint *)(DAT_182671560 + -0x274) =
       *(uint *)(DAT_182671560 + -0x678) | *(uint *)(DAT_182671560 + -0x344);
  uVar11 = DAT_182671714;
  *(ulonglong *)(lVar1 + -0x1f0) = uVar53;
  lVar2 = DAT_182671560;
  uVar50 = CONCAT44(uVar11,uVar11);
  uVar54 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar33 = uVar50 ^ uVar40 ^ uVar29 ^ uVar49 ^ uVar53;
  *(ulonglong *)(lVar1 + -0xa60) = uVar33;
  uVar12 = DAT_182671814;
  uVar33 = (uVar32 ^ uVar52) + (uVar50 ^ uVar33) ^ uVar54;
  *(ulonglong *)(lVar1 + -0x318) = uVar33;
  uVar11 = _DAT_1826715e0;
  local_100 = (byte)uVar8;
  uVar32 = *(ulonglong *)(lVar2 + -0xa60);
  uVar30 = (*(ulonglong *)(lVar1 - (uVar46 ^ 0xda95d4c7)) ^ uVar50) << ((local_100 ^ 0x9c) & 0x3f);
  *(ulonglong *)(lVar1 + -0x628) = uVar30 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671738;
  uVar32 = (uVar50 ^ uVar32) >> ((bVar18 ^ 0xd5) & 0x3f);
  *(ulonglong *)(lVar2 + -0x638) = uVar32 ^ CONCAT44(uVar11,uVar11);
  uVar50 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar32 | uVar30) ^ uVar50;
  *(ulonglong *)(lVar2 + -0x9e8) = CONCAT44(uVar23,uVar25) ^ uVar40 ^ uVar53 ^ 0xdc10ec51fdf67fac;
  uVar49 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar23 = DAT_182671598 ^ 0xf540f1b9;
  *(ulonglong *)(lVar2 + -0x600) =
       *(ulonglong *)(lVar2 - (uVar43 ^ 0x75fefe57)) ^ uVar49 ^ uVar50 ^ uVar54 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - (uVar44 ^ 0xeff8f8fd)) ^ uVar29) + (uVar47 ^ uVar27) ^ uVar45;
  uVar32 = (ulonglong)DAT_1826715a0;
  *(uint *)(lVar2 - (uVar31 ^ 0xdaea84c6)) = uVar23 & *(uint *)(lVar2 + -0x3c8);
  uVar33 = CONCAT44(DAT_182671878,DAT_182671878);
  *puVar22 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0x256a28a0)) ^ uVar47) << ((local_118 ^ 0xc3) & 0x3f)
             ^ uVar33;
  uVar12 = DAT_1826717d4;
  uVar27 = CONCAT44(DAT_182671864,DAT_182671864);
  puVar22 = (ulonglong *)(lVar2 - (uVar36 ^ 0x754a3eb2));
  *puVar22 = (*(ulonglong *)(lVar2 - (uVar46 ^ 0xda95d75f)) ^ uVar47) >>
             (((byte)uVar9 ^ 0x2a) & 0x3f) ^ uVar27;
  uVar11 = DAT_182671630;
  uVar40 = CONCAT44(uVar12,uVar12);
  uVar32 = (uVar27 ^ *(ulonglong *)(lVar2 + -0xbf0) | uVar33 ^ *(ulonglong *)(lVar2 + -0x5c8)) ^
           uVar40;
  *(ulonglong *)(lVar2 + -0x748) = uVar32;
  uVar12 = DAT_1826717f4;
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar32 = uVar33 ^ uVar32 ^ uVar40 ^ uVar45 ^ *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar32;
  *(ulonglong *)(lVar2 + -0x510) = (uVar27 ^ *puVar22) << 6;
  uVar40 = CONCAT44(uVar12,uVar12);
  uVar29 = (uVar33 ^ uVar32) + (uVar17 ^ 0xde1787febcd2eb8d);
  *(ulonglong *)(lVar2 + -0x610) = (uVar38 ^ 0x28418000) >> 0xe;
  uVar11 = DAT_18267169c;
  *(ulonglong *)(lVar2 + -0x670) = uVar29 ^ uVar40;
  uVar32 = (CONCAT44(uVar5,uVar7) ^ 0x6afb2f2981783fb3) + (uVar54 ^ *(ulonglong *)(lVar2 + -0x318));
  puVar55 = (ulonglong *)(lVar2 - (uVar38 ^ 0x7fce338e));
  *(ulonglong *)(lVar2 + -0xa60) = uVar32 ^ CONCAT44(uVar11,uVar11);
  uVar13 = DAT_1826717e8;
  uVar27 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar32 + (uVar40 ^ *puVar55) ^ uVar27;
  lVar1 = DAT_182671560;
  puVar22 = (ulonglong *)(DAT_182671560 - (uVar36 ^ 0x754a3332));
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (uVar50 ^ *(ulonglong *)(DAT_182671560 + -0x6b8)) -
       (CONCAT44(uVar19,uVar6) ^ 0x105e578e5d5e1531);
  uVar30 = (*puVar22 ^ uVar40) << ((local_100 ^ 0xb2) & 0x3f);
  *(ulonglong *)(lVar1 + -0x1f0) = uVar30 ^ uVar41;
  uVar11 = DAT_1826715d4;
  lVar2 = DAT_182671560;
  uVar32 = *(ulonglong *)(DAT_182671560 + -0x600);
  uVar17 = *(ulonglong *)(DAT_182671560 + -0x110);
  *(ulonglong *)(lVar1 + -0x9e8) =
       (CONCAT44(uVar28,uVar7) ^ 0xe0f7916ff935989b) +
       (CONCAT44(uVar48,uVar10) ^ 0x8ee96abc4dae503f);
  uVar12 = DAT_1826716ec;
  uVar40 = (*(ulonglong *)(lVar1 - (uVar35 ^ 0xf681f2c0)) ^ uVar40) >> ((local_110 ^ 0xf7) & 0x3f);
  *(ulonglong *)(lVar1 + -0x688) = uVar40 ^ CONCAT44(uVar11,uVar11);
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar40 = (uVar30 | uVar40) ^ uVar33;
  *(ulonglong *)(lVar2 + -0x9f8) = uVar40;
  uVar41 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(lVar2 + -0x5c8) =
       *(ulonglong *)(lVar2 - (uVar46 ^ 0xda95d89f)) ^ uVar33 ^ uVar27 ^ uVar37 ^ uVar40;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar29 << (((byte)uVar13 ^ *(byte *)(lVar2 + -0x638)) & 0x3f);
  uVar33 = (CONCAT44(uVar10,uVar9) ^ 0xc4898c5cdd75373e) + (uVar49 ^ uVar32);
  uVar32 = CONCAT44(DAT_182671818,DAT_182671818);
  *(ulonglong *)(lVar2 + -0x748) = uVar33 ^ uVar41;
  uVar40 = (CONCAT44(uVar25,uVar19) ^ 0x2e0a8a7decf722e0) + (uVar45 ^ uVar17);
  uVar17 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar2 + -0x510) = uVar40 ^ uVar32;
  uVar23 = DAT_18267159c ^ 0xe60fd8a0;
  *(ulonglong *)(lVar2 + -0x610) = uVar33 << ((bVar18 ^ 0xe5) & 0x3f) ^ uVar42;
  *(uint *)(lVar2 + -0x910) = uVar23 + 0x7770dac1;
  uVar32 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar40 + uVar33 ^ uVar17;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x75fefbf7)) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x748)) >> ((local_118 ^ 0xd3) & 0x3f) ^ uVar32;
  uVar12 = DAT_182671848;
  uVar32 = uVar32 ^ *(ulonglong *)(lVar2 + -0x318) | uVar42 ^ *(ulonglong *)(lVar2 + -0x610);
  *(ulonglong *)(lVar2 + -0xa60) = uVar32 ^ CONCAT44(DAT_182671688,DAT_182671688);
  uVar11 = DAT_182671700;
  uVar32 = uVar32 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0x3f0);
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar32 ^ uVar26;
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar45 = uVar32 + (uVar27 ^ *(ulonglong *)(lVar2 + -0x638)) ^ uVar29;
  *(ulonglong *)(lVar2 + -0x628) = uVar45;
  uVar33 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar2 + -0x9e8) =
       (*(ulonglong *)(lVar2 - (uVar44 ^ 0xeff8f8cd)) ^ uVar26) << (((byte)uVar10 ^ 0x41) & 0x3f) ^
       uVar40;
  uVar32 = ((ulonglong)DAT_182671754 << 0x14 | (ulonglong)(DAT_182671754 >> 0xc)) ^
           *(ulonglong *)(lVar2 + -0x6b8) >> 0xc;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar32 ^ uVar33;
  uVar11 = DAT_182671820;
  *(ulonglong *)(lVar2 + -0x688) =
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0x1bce182d)) ^ uVar40 | uVar32) ^ uVar51;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xf681fd48)) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0x7fce3376)) ^ CONCAT44(uVar11,uVar11) ^ uVar29 ^ uVar45 ^
       uVar51;
  uVar11 = DAT_182671788;
  *(uint *)(lVar2 - (uVar35 ^ 0xf681f43c)) =
       (DAT_1826715a0 ^ 0xfaf1bac8) <<
       (((byte)*(undefined4 *)(lVar2 + -0x844) ^ (byte)DAT_182671778) & 0x1f);
  uVar38 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(lVar2 + -0x600) =
       (uVar17 ^ *(ulonglong *)(lVar2 + -0x3f0)) + (uVar37 ^ *(ulonglong *)(lVar2 + -0x5c8)) ^
       CONCAT44(uVar11,uVar11);
  uVar11 = _DAT_1826715d8;
  *(ulonglong *)(lVar2 + -0x670) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x5c8)) << ((local_148 ^ 0xd6) & 0x3f) ^ uVar38;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xbf0) =
       ((ulonglong)DAT_182671604 << 0x19 | (ulonglong)(DAT_182671604 >> 7)) ^
       *(ulonglong *)(lVar2 - (uVar21 ^ 0xaa005ca)) >> 7 ^ uVar32;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xc511cf0b)) =
       (uVar36 * 8 | (ulonglong)(uVar6 >> 0x1d)) ^ 0x58d06295b;
  bVar18 = (byte)DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x510) =
       (*puVar55 ^ uVar38 | uVar32 ^ *(ulonglong *)(lVar2 + -0xbf0)) ^
       CONCAT44(DAT_182671884,DAT_182671884);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar34;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xaa0074a)) =
       (CONCAT44(uVar39,uVar3) ^ 0x3a873ee0184dc18f) >> ((bVar18 ^ 0x2f) & 0x3f);
  return;
}



############ FUN_ 180ee14a0 size=3032 ############

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

void FUN_180ee14a0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  ulonglong uVar16;
  byte *pbVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  byte bVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong uVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  
  uVar11 = DAT_18267159c;
  uVar4 = DAT_182671590;
  uVar7 = DAT_182671584;
  uVar5 = DAT_182671574;
  lVar2 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671590;
  uVar18 = (ulonglong)DAT_18267159c;
  uVar16 = (ulonglong)DAT_182671584;
  uVar32 = DAT_182671574 & DAT_182671584;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671958);
  uVar23 = DAT_182671590 + DAT_18267159c;
  uVar21 = *(uint *)(&DAT_182611e78 + DAT_182671958) ^ DAT_182671574;
  uVar26 = (ulonglong)DAT_182671584;
  uVar28 = (ulonglong)DAT_182671878;
  uVar24 = (ulonglong)DAT_18267159c;
  bVar27 = (byte)DAT_182671590;
  DAT_182671568 = uVar32;
  DAT_1826715ac = uVar23;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xb81db74c)) =
       *(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x454f7580)) ^ uVar28;
  pbVar17 = (byte *)(*(ulonglong *)(lVar2 + -0x620) ^ uVar28);
  uVar28 = (ulonglong)DAT_182671778;
  *(ulonglong *)(lVar2 + -0x80) =
       (CONCAT44(uVar23,uVar11) ^ 0xfdac01fc97600380) - *(longlong *)(lVar2 + -0x898);
  lVar3 = DAT_182671560;
  bVar20 = (byte)uVar23;
  *(byte **)(lVar2 + -0x750) = pbVar17 + (CONCAT44(uVar11,uVar7) ^ 0xbebfcac9454f7f69);
  *(byte *)(lVar2 + -0x5e9) = (byte)DAT_1826717e4 ^ (byte)DAT_182671718 ^ *pbVar17;
  *(byte *)(lVar2 - (uVar26 ^ 0x454f79f9)) = bVar20 ^ 0xcc;
  *(byte *)(*(ulonglong *)(lVar2 + -0x408) ^ (ulonglong)DAT_1826718d4) = bVar27 ^ 0x96;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xb606f886)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x454f7458)) ^ uVar28) +
       (CONCAT44(uVar4,uVar32) ^ 0xb81db16c04067421);
  *(byte *)(*(ulonglong *)(lVar3 + -0xb30) ^ uVar28) =
       *(byte *)(lVar3 + -0x5e9) ^ (byte)DAT_1826717e4;
  *(byte *)(lVar3 + -0x5e9) = (byte)uVar11 ^ 0xf3;
  *(undefined8 *)(lVar3 + -0xaa0) = *(undefined8 *)(lVar3 + -0x750);
  uVar28 = (ulonglong)DAT_1826718c4;
  uVar31 = (ulonglong)_DAT_182671610;
  *(ulonglong *)(lVar3 + -0x390) = *(ulonglong *)(lVar3 + -0xc30);
  *(ulonglong *)(lVar3 + -0x9a0) = uVar31 ^ *(ulonglong *)(lVar3 + -0xc30);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xb606f1a6)) =
       *(ulonglong *)(lVar3 + -0x548) >>
       ((byte)*(undefined8 *)(lVar3 - (uVar26 ^ 0x454f7820)) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa98) = *(ulonglong *)(lVar3 + -0xaa0) ^ uVar28;
  *(ulonglong *)(lVar3 + -0xba0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xb81dbbf4)) ^ uVar28) + 1;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x454f7968)) =
       (CONCAT44(uVar32,uVar23) ^ 0x1e4e726b0b) << 0x1a;
  *(byte *)(lVar3 - (uVar18 ^ 0xbebfced8)) =
       *(byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xa98)) ^ (byte)DAT_1826717ac ^
       (byte)DAT_182671718;
  *(byte *)(lVar3 - ((ulonglong)uVar32 ^ 0x4067789)) = bVar20 ^ 0x36;
  uVar26 = CONCAT44(uVar4,uVar7) ^ 0xb81db16c454f7f69;
  *(byte *)(*(ulonglong *)(lVar3 + -0x478) ^ (ulonglong)DAT_1826717cc) = (byte)uVar11 ^ 0xe;
  uVar29 = (ulonglong)DAT_18267175c;
  *(ulonglong *)(lVar3 + -0x170) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x76dd7595)) ^ uVar31) + uVar26;
  *(byte *)(uVar31 ^ *(ulonglong *)(lVar3 + -0x9a0)) =
       *(byte *)(lVar3 - ((ulonglong)uVar5 ^ 0xb606f0a7)) ^ (byte)DAT_1826717ac;
  *(byte *)(lVar3 + -0x411) = bVar20 ^ 0xab;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar11 ^ 0xbebfcaa9)) =
       *(undefined8 *)(lVar3 - (uVar24 ^ 0xbebfcbb9));
  uVar18 = *(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x4067f80));
  *(ulonglong *)(lVar3 + -0x198) = uVar18;
  *(ulonglong *)(lVar3 + -0x4e0) = *(ulonglong *)(lVar3 + -0x60) ^ uVar29;
  *(longlong *)(lVar3 + -0x688) =
       *(longlong *)(lVar3 + -0x6b8) << ((byte)*(undefined8 *)(lVar3 + -0x600) & 0x3f);
  bVar14 = (byte)DAT_182671718;
  uVar28 = (ulonglong)DAT_1826718b0;
  uVar18 = DAT_1826718b0 ^ uVar18;
  *(ulonglong *)(lVar3 + -0x7c0) = uVar18;
  pbVar17 = (byte *)(uVar18 ^ uVar28);
  *(byte **)(lVar3 + -0xa20) = pbVar17 + (CONCAT44(uVar7,uVar32) ^ 0x454f7f6804067421);
  *(byte *)(lVar3 + -0x345) = *pbVar17 ^ (byte)DAT_18267166c ^ bVar14;
  *(byte *)(lVar3 + -0xcc9) = bVar20 ^ 9;
  *(byte *)(*(ulonglong *)(lVar3 + -0x2c8) ^ (ulonglong)DAT_1826717d4) = (byte)uVar5 ^ 0x2d;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xbebfc2a1)) = (*(ulonglong *)(lVar3 + -0x4e0) ^ uVar29) + uVar26
  ;
  uVar4 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar24 = (ulonglong)DAT_18267156c;
  uVar26 = (ulonglong)DAT_18267189c;
  bVar25 = (byte)DAT_18267156c;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x76dd78d5)) ^ uVar29) =
       *(byte *)(lVar3 + -0x345) ^ (byte)DAT_18267166c;
  *(byte *)(lVar3 + -0x345) = bVar25 ^ 0xe7;
  uVar10 = DAT_182671598;
  uVar29 = (ulonglong)DAT_182671598;
  uVar22 = DAT_182671598 ^ uVar4;
  uVar28 = CONCAT44(uVar22,DAT_182671598);
  DAT_1826715a8 = uVar22;
  *(ulonglong *)(lVar2 + -0x3b8) = (uVar28 ^ 0x45f5cc7def24dab9) + 0xc05138f9c4ba444f;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar22 ^ 0x8c77ffdc)) =
       *(undefined8 *)(lVar2 - ((ulonglong)uVar4 ^ 0x568948ee));
  *(undefined8 *)(lVar2 - (uVar29 ^ 0xdafebe2a)) = *(undefined8 *)(lVar2 + -0xa20);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x56894b9e)) = *(ulonglong *)(lVar2 + -0xd48) ^ uVar26;
  uVar18 = (ulonglong)DAT_182671740;
  *(ulonglong *)(lVar2 + -0x50) = *(ulonglong *)(lVar2 + -0xc38) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x3f0) =
       (uVar28 ^ 0x45ac1eb5377ee0cb) >> ((byte)*(undefined8 *)(lVar2 + -0xa80) & 0x3f);
  bVar27 = (byte)DAT_182671810;
  puVar19 = (ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x8c77f2c4));
  *(ulonglong *)(lVar2 + -0x700) = (*puVar19 ^ uVar18) + (uVar28 ^ 0x8c77f294dafeb213);
  *(byte *)(lVar2 - ((ulonglong)uVar10 ^ 0xdafeb0f3)) =
       *(byte *)(*puVar19 ^ uVar18) ^ bVar27 ^ bVar14;
  *(undefined1 *)(lVar2 + -0xce3) = 0xb6;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x56894c7e)) ^ (ulonglong)DAT_18267160c) = bVar25 ^ 6;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xdafeb63a)) =
       (CONCAT44(uVar22,uVar4) ^ 0x8c77f29456894087) + (uVar26 ^ *(ulonglong *)(lVar2 + -0xb18));
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xdafeb0b2)) =
       CONCAT44(uVar4,uVar22) << 0x2d ^ 0xb4d7a00000000000;
  bVar15 = (byte)uVar22;
  *(byte *)(uVar26 ^ *(ulonglong *)(lVar2 + -0xb18)) = bVar27 ^ *(byte *)(lVar2 + -0x2e1);
  uVar8 = _DAT_182671838;
  uVar18 = *(ulonglong *)(lVar2 + -0x428);
  uVar26 = (ulonglong)_DAT_182671838;
  *(byte *)(lVar2 + -0x2e1) = bVar15 ^ 0x6c;
  *(ulonglong *)(lVar2 + -0xb38) = uVar18;
  *(ulonglong *)(lVar3 + -0x5c8) =
       (CONCAT44(uVar10,uVar4) ^ 0x6e038815b9ed75d9) +
       *(longlong *)(lVar3 - ((ulonglong)uVar32 ^ 0x4067220));
  *(undefined8 *)(lVar3 + -0xb48) = *(undefined8 *)(lVar3 + -0x700);
  *(ulonglong *)(lVar3 + -0x148) = uVar26 ^ uVar18;
  *(byte *)(lVar3 - ((ulonglong)uVar10 ^ 0xdafeb223)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xc0) ^ (ulonglong)DAT_1826716a4) ^ bVar14;
  uVar18 = (ulonglong)DAT_1826718bc;
  *(byte *)(lVar3 + -0x31) = bVar15 ^ 0x9c;
  *(ulonglong *)(lVar3 + -0x180) = (ulonglong)*(byte **)(lVar3 + -0xb48) ^ uVar18;
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x40675a0)) ^ uVar18) + 1;
  bVar27 = (byte)DAT_1826715e8;
  uVar12 = DAT_1826715b0;
  lVar2 = DAT_182671560;
  uVar18 = *(ulonglong *)(DAT_182671560 + -0x88);
  *(byte *)(DAT_182671560 + -0x931) = **(byte **)(lVar3 + -0xb48) ^ (byte)DAT_1826715e8 ^ bVar14;
  uVar28 = (ulonglong)DAT_18267183c;
  *(byte *)(lVar2 + -0xc53) = bVar15 ^ 0xe8;
  uVar6 = DAT_182671578;
  uVar31 = (ulonglong)DAT_182671578;
  *(byte *)(uVar18 ^ uVar28) = bVar25 ^ 0xdf;
  uVar28 = (ulonglong)DAT_182671714;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0x7f8fb598)) =
       (CONCAT44(uVar12,uVar5) ^ 0x895eb796b606f4b7) +
       ((ulonglong)uVar8 ^ *(ulonglong *)(lVar2 + -0x148));
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x8c77f3dc)) ^ uVar26) =
       bVar27 ^ *(byte *)(lVar2 + -0x931);
  *(undefined1 *)(lVar2 - ((ulonglong)uVar23 ^ 0x76dd7504)) = 0x77;
  *(undefined8 *)(lVar2 + -0x460) = *(undefined8 *)(lVar2 + -0x1a0);
  uVar18 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x4dd8f9b)) =
       (CONCAT44(uVar10,uVar7) ^ 0x2ef9e66df6a821a7) - *(longlong *)(lVar2 + -0x400);
  *(undefined8 *)(lVar2 + -0xb58) = *(undefined8 *)(lVar2 - (uVar18 ^ 0xcff73a26));
  uVar9 = DAT_182671594;
  uVar8 = DAT_182671588;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x56894a36)) = uVar28 ^ *(ulonglong *)(lVar2 + -0x460);
  uVar18 = (ulonglong)DAT_182671634;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x57cf7e36)) =
       0x6fa370a705b369b8 - (CONCAT44(uVar32,uVar9) ^ 0xce95a527f5716a66);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xdafeb72a)) = uVar18 ^ *(ulonglong *)(lVar3 + -0xb58);
  uVar13 = DAT_1826715b4;
  uVar5 = DAT_182671570;
  uVar26 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 + -0x768) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0x454f7a50)) ^ uVar18) +
       (CONCAT44(uVar11,uVar10) ^ 0xbebfcac9dafeb213);
  pbVar17 = (byte *)(lVar3 - (uVar26 ^ 0x17f2ce39));
  bVar27 = (byte)DAT_182671574;
  *pbVar17 = *(byte *)(*(ulonglong *)(lVar3 + -0x538) ^ uVar18) ^ (byte)DAT_182671754 ^
             (byte)DAT_182671718;
  *(byte *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0x9805a2e1)) = bVar27 ^ 0x13;
  lVar2 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0xc78) ^ (ulonglong)DAT_1826718a4) = (byte)uVar5 ^ 0x40;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x5689439e)) =
       (CONCAT44(uVar13,uVar10) ^ 0x7d8fca7badaa607) + *(longlong *)(lVar2 + -0x748);
  uVar24 = (ulonglong)DAT_18267158c;
  uVar16 = (ulonglong)DAT_182671678;
  *(ulonglong *)(lVar2 + -0x238) = (*(ulonglong *)(lVar2 - (uVar30 ^ 0xb81dbbdc)) ^ uVar28) + 1;
  *(byte *)(*(ulonglong *)(lVar2 + -0xab0) ^ uVar28) =
       *(byte *)(lVar2 + -0x331) ^ (byte)DAT_182671754;
  *pbVar17 = (byte)uVar8 ^ 0xeb;
  *(undefined8 *)(lVar2 + -0x7f0) = *(undefined8 *)(lVar2 + -0x238);
  *(int *)(lVar2 + -0x5cc) = *(int *)(lVar2 - (uVar24 ^ 0x8d31caa8)) - *(int *)(lVar2 + -0x678);
  *(undefined8 *)(lVar2 + -0xcf0) = *(undefined8 *)(lVar2 + -0x768);
  uVar18 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x6d8) = *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x8c77f564)) ^ uVar16
  ;
  *(undefined8 *)(lVar2 - (uVar18 ^ 0x7e3e702e)) = *(undefined8 *)(lVar2 + -0x628);
  uVar18 = (ulonglong)DAT_182671790;
  *(ulonglong *)(lVar2 + -0x4b8) = *(ulonglong *)(lVar2 + -0xcf0) ^ uVar18;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0x76dd7d2d)) =
       (CONCAT44(uVar6,uVar10) ^ 0x4dd89b3dafeb213) + *(ulonglong *)(lVar2 + -0xcf0);
  *(ulonglong *)(lVar2 + -0x9f8) =
       CONCAT44(uVar7,uVar32) ^ 0xc698a848a319775f | *(ulonglong *)(lVar2 + -0x628);
  *(byte *)(lVar2 + -0x1b9) =
       *(byte *)(uVar18 ^ *(ulonglong *)(lVar2 + -0x4b8)) ^ (byte)DAT_1826716b8 ^
       (byte)DAT_182671718;
  uVar18 = (ulonglong)DAT_18267184c;
  *(byte *)(lVar2 + -0x5a1) = (byte)uVar9 ^ 10;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb88) ^ uVar18) = bVar20 ^ 0xb8;
  pbVar17 = (byte *)(uVar16 ^ *(ulonglong *)(lVar2 + -0x6d8));
  *(byte **)(lVar2 + -0xa70) = pbVar17 + (CONCAT44(uVar5,uVar4) ^ 0x9805a98856894087);
  *pbVar17 = *(byte *)(lVar2 - (uVar24 ^ 0x8d31cc45)) ^ (byte)DAT_1826716b8;
  *(byte *)(lVar2 + -0x1b9) = (byte)uVar12 ^ 0xc5;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar32) * 4) = uVar21;
  return;
}



############ FUN_ 180e730f0 size=5215 ############

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

void FUN_180e730f0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar43;
  byte local_f8;
  byte local_f0;
  byte local_e8;
  byte local_d8;
  byte local_d0;
  byte local_c8;
  byte local_c0;
  ulonglong uVar42;
  
  uVar10 = DAT_1826715b4;
  uVar9 = DAT_1826715a0;
  uVar8 = DAT_18267159c;
  uVar7 = DAT_182671594;
  uVar6 = DAT_18267158c;
  uVar4 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar21 = (ulonglong)DAT_18267158c;
  uVar39 = (ulonglong)DAT_18267159c;
  uVar18 = (ulonglong)DAT_1826715a0;
  uVar23 = (ulonglong)DAT_182671578;
  uVar40 = (ulonglong)DAT_1826715b4;
  uVar27 = (ulonglong)DAT_182671594;
  uVar31 = DAT_1826715a0 & DAT_1826715b4;
  uVar32 = uVar31 ^ 0x8577ab96;
  uVar22 = DAT_182671578 << 0x10 | DAT_182671578 >> 0x10;
  uVar36 = (ulonglong)uVar22;
  uVar20 = (DAT_18267158c << 0x10 | DAT_18267158c & 0xff00) << 8 | DAT_18267158c >> 8 & 0xff00 |
           DAT_18267158c >> 0x18;
  uVar41 = DAT_182671594 & DAT_18267159c;
  uVar42 = (ulonglong)uVar41;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671b04);
  uVar28 = *(uint *)(&DAT_182611e78 + DAT_182671b04) ^ DAT_18267159c;
  uVar35 = CONCAT44(DAT_182671780,DAT_182671780);
  bVar15 = (byte)DAT_1826715a0;
  uVar17 = CONCAT44(DAT_182671594,uVar31);
  uVar29 = (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0xd900a7d9)) ^ uVar35) >>
           ((bVar15 ^ 0xaf) & 0x3f);
  uVar16 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar37 = (ulonglong)uVar32;
  puVar24 = (ulonglong *)(DAT_182671560 + -0x6d0);
  DAT_182671570 = uVar20;
  DAT_182671584 = uVar22;
  DAT_182671590 = uVar32;
  DAT_1826715b0 = uVar41;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar29 ^ CONCAT44(DAT_182671624,DAT_182671624);
  uVar35 = (uVar35 ^ *puVar24) << (((byte)uVar31 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar35 ^ uVar16;
  uVar11 = DAT_182671740;
  lVar2 = DAT_182671560;
  uVar33 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar16 = (ulonglong)uVar20;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0x880b066a)) = (uVar29 | uVar35) ^ uVar33;
  uVar25 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x39ef2947)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x2a5f3cff)) ^ CONCAT44(uVar11,uVar11)) -
       (*(ulonglong *)(lVar2 + -0xa88) ^ uVar33) ^ uVar25;
  uVar11 = DAT_182671888;
  uVar29 = (ulonglong)DAT_1826716d4;
  uVar30 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  uVar35 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar14 = DAT_1826716d4 >> 0x19;
  uVar33 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xe20c0928)) ^ *(ulonglong *)(lVar2 + -0xa88)
           ^ uVar35 ^ uVar30 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x240) = uVar33;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x110) = ((ulonglong)uVar14 | uVar29 << 7) ^ uVar33 >> 0x19 ^ uVar34;
  *(ulonglong *)(lVar2 + -0x600) =
       CONCAT44(uVar8,uVar10) ^ CONCAT44(uVar8,uVar41) ^ 0xbcbc01f980336e7f;
  uVar29 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar2 + -0x898) = (uVar33 ^ uVar30) << 0x27 ^ uVar29;
  lVar3 = DAT_182671560;
  puVar26 = (ulonglong *)(lVar2 - (uVar18 ^ 0x12001b3));
  uVar30 = CONCAT44(DAT_182671848,DAT_182671848);
  uVar33 = *(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x880b047a)) ^ uVar29 | *puVar26 ^ uVar34;
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar33 ^ uVar30;
  uVar29 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar3 + -0x688) =
       (*(ulonglong *)(lVar3 + -0x2a0) ^ uVar35) - (CONCAT44(uVar31,uVar22) ^ 0x20fd89cdbd245a6d) ^
       uVar29;
  *(ulonglong *)(lVar3 + -0xbf0) = (CONCAT44(uVar6,uVar4) ^ 0xd1c5c187d73e3441) + 0x56244e46c2353f39
  ;
  uVar38 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar41 ^ 0x81008d08)) =
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0xd900a781)) ^ uVar29) - uVar33 ^ uVar38;
  uVar35 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 + -0x1d8) ^ uVar30) - (CONCAT44(uVar20,uVar9) ^ 0x77046faffb3d596b) ^
       uVar35;
  uVar12 = DAT_182671774;
  *(ulonglong *)(lVar3 + -0x800) = (uVar17 ^ 0x687147afb5216e62) + 0x33c158b5b19245ee;
  uVar11 = DAT_182671608;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar34 = CONCAT44(DAT_1826717d0,DAT_1826717d0) ^ *(ulonglong *)(lVar3 + -0x628) ^
           *(ulonglong *)(lVar3 + -0x318) ^ uVar33 ^ uVar25;
  local_f0 = (byte)uVar4;
  *(ulonglong *)(lVar3 + -0x80) = uVar34;
  uVar29 = (uVar34 ^ uVar33) >> ((local_f0 ^ 0xce) & 0x3f);
  local_f8 = (byte)uVar6;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar29 ^ CONCAT44(uVar11,uVar11);
  uVar17 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar8,uVar10) ^ 0x2b6550fba2b91139) >> ((local_f8 ^ 0x82) & 0x3f);
  uVar30 = CONCAT44(DAT_18267164c,DAT_18267164c);
  local_e8 = (byte)uVar10;
  uVar33 = (uVar34 ^ uVar33) << ((local_e8 ^ 0x1f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar33 ^ uVar17;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x39ef2f4f)) = (uVar33 | uVar29) ^ uVar30;
  uVar17 = CONCAT44(DAT_182671890,DAT_182671890);
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar25) - (CONCAT44(uVar6,uVar7) ^ 0x27d59db3a0c3849f) ^
       uVar17;
  *(longlong *)(lVar3 - ((ulonglong)uVar41 ^ 0x81008700)) = *(longlong *)(lVar3 + -0x670) << 0x14;
  uVar14 = DAT_182671840;
  uVar13 = DAT_182671620;
  uVar30 = uVar30 ^ *(ulonglong *)(lVar3 + -0x510);
  uVar25 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar29 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar3 + -0x240) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x2a5f3367)) ^ uVar17) - uVar30 ^ uVar25;
  uVar17 = (CONCAT44(uVar9,uVar41) ^ 0x835a2d00c87935ea) + uVar30 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x898) = uVar17;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x110) =
       *(ulonglong *)(lVar3 + -0xc08) ^ uVar34 ^ uVar17 ^ uVar29 ^ uVar38;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xd900a3a9)) = ((ulonglong)uVar8 ^ 0x30000000) >> 0x1c;
  uVar12 = _DAT_1826715e0;
  uVar33 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(lVar3 + -0xbf0) =
       ((ulonglong)uVar14 << 0x1b | (ulonglong)(uVar14 >> 5)) ^ *(ulonglong *)(lVar3 + -0x110) >> 5
       ^ uVar33;
  uVar17 = CONCAT44(uVar12,uVar12);
  puVar24 = (ulonglong *)(lVar3 - (uVar23 ^ 0x2a5f3f67));
  *puVar24 = (*(ulonglong *)(lVar3 + -0x110) ^ uVar34) << 0x3b ^ uVar17;
  *(undefined1 *)(lVar3 - (uVar36 ^ 0x39ef2fb6)) = **(undefined1 **)(lVar3 + -0xc80);
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x1c022bd8)) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0x688) | *(ulonglong *)(lVar3 + -0xbf0) ^ uVar33) ^ uVar29;
  uVar11 = DAT_1826715cc;
  *(ulonglong *)(lVar3 + -0x800) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0x880b00ea)) ^ uVar38) -
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xe20c0a50)) ^ uVar29) ^ uVar29;
  uVar30 = CONCAT44(uVar11,uVar11);
  local_c0 = (byte)uVar8;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x880b0aca)) =
       *(ulonglong *)(lVar2 - (uVar37 ^ 0x8577a1f6)) ^ uVar30 ^ uVar25 ^ uVar35 ^
       *(ulonglong *)(lVar2 + -0x240);
  uVar11 = DAT_1826717f0;
  uVar33 = (*(ulonglong *)(lVar2 + -0x628) ^ uVar30) >> ((local_c0 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar2 + -0x80) = uVar33 ^ CONCAT44(DAT_18267169c,DAT_18267169c);
  lVar3 = DAT_182671560;
  local_d0 = (byte)uVar41;
  uVar35 = (*(ulonglong *)(lVar2 + -0x628) ^ uVar30) << ((local_d0 ^ 0x1b) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar35 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x8a8) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0x688)) << (((byte)*puVar24 ^ (byte)uVar12) & 0x3f);
  uVar17 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x12003bb)) = (uVar35 | uVar33) ^ uVar17;
  uVar35 = CONCAT44(DAT_182671670,DAT_182671670);
  uVar33 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar3 + -0x600) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x240)) - (uVar17 ^ *(ulonglong *)(lVar3 + -0x318)) ^
       uVar35;
  uVar38 = CONCAT44(DAT_182671638,DAT_182671638);
  uVar17 = uVar33 ^ uVar17 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x318) ^
           *(ulonglong *)(lVar3 + -0x800);
  uVar14 = DAT_1826715b4 ^ 0x15f50cd5;
  *(ulonglong *)(lVar3 + -0x670) = uVar17;
  uVar17 = uVar17 ^ uVar33;
  *(uint *)(lVar3 + -0x844) = uVar14 + *(int *)(lVar3 + -0x874);
  uVar18 = uVar17 >> ((bVar15 ^ 0xb4) & 0x3f);
  uVar30 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar3 + -0xa88) = uVar18 ^ uVar38;
  uVar11 = DAT_1826716b4;
  local_d8 = (byte)uVar32;
  uVar17 = uVar17 << ((local_d8 ^ 0xbf) & 0x3f);
  *(ulonglong *)(lVar3 + -0x510) = uVar17 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x2a0) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x110)) <<
       ((*(byte *)(lVar3 + -0x898) ^ (byte)uVar13) & 0x3f);
  uVar43 = CONCAT44(uVar11,uVar11);
  uVar17 = uVar17 | uVar18;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar17 ^ uVar43;
  lVar2 = DAT_182671560;
  puVar19 = (ulonglong *)(lVar3 - (uVar39 ^ 0xa109d100));
  uVar25 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(DAT_182671560 + -0xc08) = (*puVar19 ^ uVar29) - uVar17 ^ uVar25;
  uVar11 = DAT_182671674;
  *(ulonglong *)(lVar2 + -0xa60) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x39ef2c2f)) ^ uVar33) + 0xaf91afa5519cad54;
  uVar17 = CONCAT44(uVar11,uVar11);
  uVar18 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar29 = *(ulonglong *)(lVar2 - (uVar21 ^ 0xe20c0d88)) ^ *(ulonglong *)(lVar2 + -0x1d8) ^ uVar17 ^
           uVar35 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x628) = uVar29;
  *(ulonglong *)(lVar2 + -0x688) = (uVar29 ^ uVar17) >> ((local_d0 ^ 0x28) & 0x3f) ^ uVar18;
  uVar34 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xe20c0320)) =
       (uVar17 ^ uVar29) << ((bVar15 ^ 0xbb) & 0x3f) ^ uVar34;
  uVar11 = DAT_182671894;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x80) =
       CONCAT44(uVar31,uVar7) ^ 0x49c294457b9dd1e | uVar38 ^ *(ulonglong *)(DAT_182671560 + -0xa88);
  uVar39 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0x1c022cd0)) =
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0x880b0a6a)) ^ uVar18 |
       uVar34 ^ *(ulonglong *)(lVar2 + -0x8a8)) ^ uVar39;
  uVar33 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x81008340)) =
       (*(ulonglong *)(lVar2 + -0x600) ^ uVar35) -
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0xe20c0d58)) ^ uVar39) ^ uVar33;
  uVar38 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x81008218)) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0x2a5f35e7)) ^ uVar38 ^ uVar39 ^ uVar25 ^
       *(ulonglong *)(lVar2 + -0x6d0);
  uVar29 = (*(ulonglong *)(lVar2 - (uVar40 ^ 0x1c022918)) ^ uVar38) >> ((local_f0 ^ 0xdb) & 0x3f);
  *(ulonglong *)(lVar2 + -0x898) = uVar29 ^ CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar11 = DAT_1826716a4;
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(lVar2 - (uVar37 ^ 0x8577a33e)) ^ uVar34 ^ CONCAT44(uVar7,uVar9) ^
       0x492df5ef2f720d2e;
  uVar12 = DAT_182671628;
  lVar3 = DAT_182671560;
  uVar18 = (uVar38 ^ *(ulonglong *)(lVar2 + -0x318)) << 0xc;
  uVar17 = *(ulonglong *)(DAT_182671560 + -0xc08);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar18 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_1826715fc;
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar18 = uVar18 | uVar29;
  *(ulonglong *)(lVar2 + -0x510) = uVar18 ^ uVar35;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x800) = (uVar25 ^ uVar17) - uVar18 ^ uVar29;
  *(uint *)(lVar3 - (uVar36 ^ 0x39ef2823)) = *(uint *)(lVar3 + -0x754) >> 0x11;
  uVar11 = DAT_182671814;
  uVar36 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar25 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar17 = *(ulonglong *)(lVar3 + -0xbf0) ^ uVar36 ^ uVar33 ^ uVar43 ^
           *(ulonglong *)(lVar3 + -0x240);
  *(ulonglong *)(lVar3 + -0x670) = uVar17;
  uVar18 = (uVar17 ^ uVar36) >> ((local_c0 ^ 0x39) & 0x3f);
  puVar24 = (ulonglong *)(DAT_182671560 - (uVar27 ^ 0xd900ab31));
  *(ulonglong *)(lVar3 + -0xa60) = uVar18 ^ uVar25;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       *(ulonglong *)(*puVar24 ^ CONCAT44(uVar11,uVar11)) ^ CONCAT44(DAT_18267171c,DAT_18267171c);
  lVar2 = DAT_182671560;
  uVar40 = CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar17 = (uVar36 ^ uVar17) << ((local_f0 ^ 0xe8) & 0x3f);
  puVar24 = (ulonglong *)(DAT_182671560 - (uVar23 ^ 0x2a5f3baf));
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar17 ^ CONCAT44(DAT_1826716ec,DAT_1826716ec);
  uVar18 = uVar18 | uVar17;
  *(ulonglong *)(lVar2 + -0xa88) = uVar18 ^ uVar40;
  local_c8 = (byte)(uVar4 >> 0x10);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x81008180)) = (*puVar24 ^ uVar33) - uVar18 ^ uVar40;
  uVar27 = CONCAT44(DAT_182671600,DAT_182671600);
  uVar18 = CONCAT44(DAT_182671788,DAT_182671788);
  uVar17 = uVar27 ^ uVar40 ^ uVar29 ^ *(ulonglong *)(lVar2 + -0xa88) ^
           *(ulonglong *)(lVar2 + -0x800);
  *(ulonglong *)(lVar2 + -0x688) = uVar17;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x8577ad96)) =
       (uVar17 ^ uVar27) >> ((local_c8 ^ 0x51) & 0x3f) ^ uVar18;
  uVar11 = DAT_1826716f0;
  uVar17 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar2 + -0x6d0) = (uVar27 ^ *(ulonglong *)(lVar2 + -0x688)) << 0x32 ^ uVar17;
  lVar2 = DAT_182671560;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar27 = CONCAT44(DAT_182671710,DAT_182671710);
  puVar24 = (ulonglong *)(DAT_182671560 + -0x800);
  uVar17 = *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x8577ad46)) ^ uVar17 |
           uVar18 ^ *(ulonglong *)(DAT_182671560 + -0x600);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar17 ^ uVar25;
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar29 ^ *puVar24) - (CONCAT44(uVar8,uVar8) ^ 0x8a78ab29a6966f24) ^ uVar27;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (CONCAT44(uVar6,uVar31) ^ 0x5890f81dbf63677c) + (CONCAT44(uVar10,uVar8) ^ 0x70d0aea38efe8250)
  ;
  uVar11 = DAT_182671878;
  *(ulonglong *)(lVar2 + -0x898) = (uVar27 ^ *puVar26) - uVar17 ^ uVar38;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x2a0) =
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0x880b044a)) ^ uVar25) -
       (CONCAT44(uVar22,uVar7) ^ 0x7e6c6e816d9ce904) ^ uVar33;
  uVar11 = DAT_1826717c8;
  uVar17 = *(ulonglong *)(lVar2 - (uVar21 ^ 0xe20c0b08)) ^ uVar40 ^ uVar35 ^ uVar39 ^
           *(ulonglong *)(lVar2 + -0x510);
  uVar27 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(lVar2 + -0xc08) = uVar17;
  *(ulonglong *)(lVar2 + -0xbf0) = (uVar17 ^ uVar39) >> (((byte)uVar7 ^ 0x19) & 0x3f) ^ uVar27;
  uVar12 = _DAT_182671868;
  *(ulonglong *)(lVar2 + -0x1d8) = CONCAT44(uVar11,uVar11) ^ **(ulonglong **)(lVar2 + -0x218);
  uVar29 = (uVar39 ^ uVar17) << (((byte)(uVar6 >> 0x18) ^ 0xd2) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa60) = uVar29 ^ uVar30;
  lVar2 = DAT_182671560;
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar29 = *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x8577a066)) ^ uVar27 | uVar29;
  uVar17 = *(ulonglong *)(DAT_182671560 + -0x80);
  uVar27 = CONCAT44(uVar7,DAT_18267156c);
  *(ulonglong *)(DAT_182671560 + -0x240) =
       (CONCAT44(uVar9,uVar20) ^ 0x1c19ca0a23d2dba3) - (CONCAT44(uVar8,uVar41) ^ 0xae95fec2cc43f0c5)
  ;
  uVar11 = DAT_1826718bc;
  *(ulonglong *)(lVar2 + -0x628) = uVar29 ^ uVar35;
  uVar17 = (uVar40 ^ uVar17) - (CONCAT44(uVar22,uVar8) ^ 0xc6e049125b1480c8);
  uVar18 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar2 + -0xa88) = uVar17 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x688) = (uVar27 ^ 0x37c31c1933c7b05a) >> ((bVar15 ^ 0x85) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x880b0ae2)) = uVar17 - uVar29 ^ uVar18;
  uVar14 = DAT_182671654;
  uVar17 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar27 = (ulonglong)DAT_182671654;
  uVar29 = (CONCAT44(uVar9,uVar6) ^ 0xd74caaf4da308243) + (uVar35 ^ *(ulonglong *)(lVar2 + -0x628))
           ^ uVar17;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar29;
  uVar16 = CONCAT44(uVar14,uVar14);
  *puVar19 = uVar16 ^ uVar29 ^ uVar17 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0x898);
  *(undefined1 *)(lVar2 - (uVar23 ^ 0x2a5f3be6)) = **(undefined1 **)(lVar2 + -0xa20);
  uVar29 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  uVar17 = CONCAT44(DAT_1826715a8,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715ac ^ 0x97bfbcf7)) =
       *(ulonglong *)(lVar2 + -0x800) >> 0x20 ^ uVar29 ^ uVar27;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x81008010)) =
       (uVar17 ^ 0xbbb0b9952c45a00) - (uVar36 ^ *(ulonglong *)(lVar2 + -0x670));
  iVar5 = DAT_182671580;
  uVar27 = (ulonglong)DAT_182671574;
  uVar14 = DAT_182671574 + DAT_182671580;
  uVar17 = (uVar16 ^ *(ulonglong *)(lVar2 + -0x800)) << (((byte)DAT_182671574 ^ 0x20) & 0x3f);
  uVar16 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  DAT_182671598 = uVar14;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar17 ^ CONCAT44(DAT_182671758,DAT_182671758);
  uVar11 = DAT_1826715b8;
  *(ulonglong *)(lVar2 + -0x510) = (uVar29 ^ *(ulonglong *)(lVar2 + -0x318) | uVar17) ^ uVar16;
  uVar12 = DAT_1826718d4;
  *(ulonglong *)(lVar2 + -0x1d8) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x898)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x5e6f7999)) ^ uVar16) ^ CONCAT44(uVar11,uVar11)
  ;
  uVar17 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xc08) =
       *(ulonglong *)(lVar2 - (uVar27 ^ 0x3396a1a0)) ^ uVar17 ^ uVar18 ^ uVar33 ^
       *(ulonglong *)(lVar2 + -0x600);
  uVar11 = DAT_182671694;
  *(ulonglong *)(lVar2 + -0xbf0) = CONCAT44(uVar14,iVar5) ^ 0x48df2b2b701fa5f3;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x3396a960)) =
       (uVar17 ^ *(ulonglong *)(lVar2 + -0xc08)) >> (((byte)uVar14 ^ 0xa9) & 0x3f) ^
       CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar41) * 4) = uVar28;
  return;
}



############ FUN_ 180e75b60 size=4885 ############

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

void FUN_180e75b60(void)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  byte local_98;
  byte local_68;
  
  uVar6 = DAT_182671674;
  uVar26 = DAT_1826715b0;
  uVar11 = DAT_182671594;
  uVar5 = DAT_182671588;
  uVar4 = DAT_182671578;
  lVar1 = DAT_182671560;
  uVar20 = (ulonglong)DAT_182671594;
  uVar31 = (ulonglong)DAT_182671578;
  uVar9 = DAT_182671594 ^ DAT_182671578;
  uVar14 = (ulonglong)DAT_1826715b0;
  uVar29 = (ulonglong)DAT_182671588;
  uVar37 = (ulonglong)uVar9;
  uVar32 = DAT_1826715b0 & DAT_182671588;
  uVar22 = *(uint *)(&DAT_182611e78 + DAT_182671b0c) ^ DAT_182671578;
  uVar10 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar9 ^ 0xe925b8d5) + (longlong)DAT_182671b0c) ^
           DAT_182671594;
  puVar16 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b0 ^ 0x8a010129));
  uVar18 = (ulonglong)DAT_182671588;
  uVar27 = CONCAT44(DAT_182671854,DAT_182671854);
  uVar23 = (CONCAT44(DAT_18267179c,DAT_18267179c) ^ *(ulonglong *)(DAT_182671560 + -0x110) |
           CONCAT44(DAT_1826716f0,DAT_1826716f0) ^ *puVar16) ^ uVar27;
  DAT_18267159c = uVar32;
  DAT_1826715a8 = uVar9;
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar23;
  uVar17 = CONCAT44(uVar6,uVar6);
  uVar15 = CONCAT44(DAT_182671670,DAT_182671670);
  uVar25 = (ulonglong)uVar32;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0x1f841604)) =
       uVar15 ^ uVar17 ^ uVar23 ^ uVar27 ^ *(ulonglong *)(lVar1 + -0x748);
  uVar24 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  uVar27 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar26 ^ 0x8a0106e1)) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xa0006a8)) ^ uVar17) +
       (uVar24 ^ *(ulonglong *)(lVar1 + -0x670)) ^ uVar27;
  *(uint *)(lVar1 - ((ulonglong)uVar4 ^ 0x33cf3a07)) =
       *(uint *)(lVar1 - ((ulonglong)uVar11 ^ 0xdaea8772)) >>
       ((byte)*(undefined4 *)(lVar1 + -0x874) & 0x1f);
  uVar23 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(lVar1 - (uVar37 ^ 0xe925b335)) =
       (uVar17 ^ *(ulonglong *)(lVar1 + -0x6b8)) << 0x34 ^ uVar23;
  uVar6 = DAT_1826716ac;
  uVar18 = (uVar17 ^ *(ulonglong *)(lVar1 + -0x6b8)) >> (((byte)uVar5 ^ 0xb0) & 0x3f);
  uVar35 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  *(ulonglong *)(lVar1 + -0x3f0) = uVar18 ^ uVar35;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x33cf3ad7)) =
       (uVar18 | uVar23 ^ *(ulonglong *)(lVar1 + -0xbf0)) ^ uVar17;
  uVar28 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0xdaea8722)) =
       *(ulonglong *)(lVar1 - (uVar29 ^ 0x1f8413a4)) ^ uVar28 ^ uVar17 ^ uVar27 ^
       *(ulonglong *)(lVar1 + -0x1f0);
  lVar2 = DAT_182671560;
  local_98 = (byte)uVar26;
  bVar13 = (byte)uVar32;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x1f841574)) =
       (CONCAT44(uVar32,uVar9) ^ 0x3af05abcdd60d090) >> ((local_98 ^ 0x2f) & 0x3f);
  uVar23 = CONCAT44(DAT_182671848,DAT_182671848);
  uVar18 = uVar23 ^ *(ulonglong *)(lVar1 + -0x9f8);
  uVar19 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar17 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar1 + -0x688) = (uVar15 ^ *(ulonglong *)(lVar1 + -0x748)) + uVar18 ^ uVar19;
  uVar7 = DAT_18267160c;
  puVar38 = (ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x33cf33af));
  *puVar38 = uVar18 << ((bVar13 ^ 0x29) & 0x3f) ^ uVar17;
  uVar6 = DAT_1826715b8;
  uVar18 = (uVar23 ^ *(ulonglong *)(lVar2 + -0x9f8)) >> ((bVar13 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar2 + -0x600) = uVar18 ^ CONCAT44(uVar7,uVar7);
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x610) = (*(ulonglong *)(lVar2 + -0xa60) ^ uVar17 | uVar18) ^ uVar23;
  uVar18 = (ulonglong)DAT_1826717a8;
  uVar15 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xdaea841a)) =
       *(ulonglong *)(lVar2 - (uVar29 ^ 0x1f8416ac)) ^ uVar15 ^ uVar23 ^ uVar19 ^
       *(ulonglong *)(lVar2 + -0x688);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xe925befd)) =
       CONCAT44(uVar9,uVar4) ^ 0x5fd260b59a4242df | CONCAT44(uVar4,uVar26) ^ 0xdb0a95419f7ccb2d;
  uVar7 = _DAT_18267161c;
  uVar21 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar33 = (*(ulonglong *)(lVar2 + -0x510) ^ uVar15) + (uVar27 ^ *(ulonglong *)(lVar2 + -0x1f0)) ^
           uVar21;
  *(ulonglong *)(lVar2 + -0x110) = uVar33;
  uVar6 = DAT_182671600;
  lVar1 = DAT_182671560;
  uVar30 = (*(ulonglong *)(lVar2 + -0x510) ^ uVar15) << (((byte)uVar11 ^ 0x1d) & 0x3f);
  uVar17 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar30 ^ CONCAT44(uVar7,uVar7);
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(uVar6,uVar6);
  uVar15 = (*(ulonglong *)(lVar1 + -0x510) >> 0x20 ^ uVar18) >> 9;
  uVar18 = *(ulonglong *)(DAT_182671560 + -0x3f0);
  uVar34 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar15 ^ uVar17;
  uVar15 = (uVar30 | uVar15) ^ uVar27;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar15;
  *(ulonglong *)(lVar2 + -0x318) = (uVar35 ^ uVar18) << (((byte)uVar11 ^ 0x21) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar15 ^ uVar34 ^ uVar27 ^ uVar33 ^ uVar21;
  uVar6 = DAT_1826718cc;
  puVar36 = (ulonglong *)(lVar2 - (uVar14 ^ 0x8a010199));
  uVar27 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar2 + -0x5c8) =
       (*puVar36 ^ uVar19) + (uVar28 ^ *(ulonglong *)(lVar2 + -0x628)) ^ uVar27;
  uVar15 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x748) = (uVar28 ^ *(ulonglong *)(lVar2 + -0x628)) << 0x28 ^ uVar15;
  uVar18 = CONCAT44(DAT_182671620,DAT_182671620);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x1f841944)) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x628)) >> ((bVar13 ^ 8) & 0x3f) ^ uVar18;
  uVar6 = DAT_182671634;
  uVar33 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar2 + -0xa60) =
       (*(ulonglong *)(lVar2 + -0x748) ^ uVar15 | *(ulonglong *)(lVar2 + -0x9f8) ^ uVar18) ^ uVar33;
  uVar15 = CONCAT44(uVar6,uVar6);
  uVar18 = *(ulonglong *)(lVar2 - (uVar37 ^ 0xe925b2a5)) ^ uVar15 ^ uVar33 ^ uVar27 ^
           *(ulonglong *)(lVar2 + -0x5c8);
  *(ulonglong *)(lVar2 + -0x600) = uVar18;
  uVar6 = DAT_182671708;
  *(ulonglong *)(lVar2 + -0x610) = CONCAT44(uVar26,uVar4) ^ 0xb467a5697f875a69 | *puVar38 ^ uVar33;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xdaea8732)) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar21) + (uVar18 ^ uVar15) ^ uVar17;
  uVar21 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar18 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0xdaea870a)) ^ uVar15) << (((byte)uVar5 ^ 0xb9) & 0x3f) ^
       uVar21;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x1f8415ac)) =
       (*(ulonglong *)(lVar2 + -0x600) ^ uVar15) >> ((local_98 ^ 0x2a) & 0x3f) ^ uVar18;
  uVar6 = DAT_182671744;
  *(ulonglong *)(lVar2 + -0x9e8) =
       CONCAT44(uVar32,uVar4) ^ 0x9f24d38d75073f2a | CONCAT44(uVar26,uVar11) ^ 0x4369ed08b4450b5f;
  uVar15 = CONCAT44(uVar6,uVar6);
  uVar18 = (*(ulonglong *)(lVar2 + -0x510) ^ uVar18 | *(ulonglong *)(lVar2 + -0x1f0) ^ uVar21) ^
           uVar15;
  *(ulonglong *)(lVar2 + -0x670) = uVar18;
  *(ulonglong *)(lVar2 + -0x6b8) =
       uVar24 ^ *(ulonglong *)(lVar2 + -0x638) ^ uVar18 ^ uVar15 ^ uVar17;
  uVar6 = DAT_182671798;
  uVar12 = DAT_182671568;
  lVar1 = DAT_182671560;
  uVar35 = CONCAT44(DAT_182671774,DAT_182671774);
  uVar27 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0xe5d44112)) ^ uVar34) +
           (uVar27 ^ *(ulonglong *)(lVar2 + -0x5c8)) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x3f0) = uVar27;
  uVar7 = DAT_1826717a4;
  lVar3 = DAT_182671560;
  uVar21 = (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar34) << (((byte)uVar4 ^ 0xea) & 0x3f);
  local_68 = (byte)uVar9;
  *(ulonglong *)(lVar1 + -0x318) = uVar21 ^ CONCAT44(uVar6,uVar6);
  uVar18 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x688) =
       (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar34) >> ((local_68 ^ 0xde) & 0x3f) ^ uVar18;
  uVar20 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(int *)(lVar3 + -0x274) = *(int *)(lVar3 - (uVar31 ^ 0x33cf3ccb)) * *(int *)(lVar3 + -0x910);
  uVar6 = DAT_182671780;
  uVar31 = (uVar21 | *puVar36 ^ uVar18) ^ uVar20;
  *(ulonglong *)(lVar3 + -0x628) = uVar31;
  uVar18 = CONCAT44(uVar6,uVar6);
  uVar31 = uVar31 ^ uVar18 ^ uVar20 ^ uVar27 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar31;
  uVar8 = DAT_18267180c;
  *(ulonglong *)(lVar3 + -0x748) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0xe5d44082)) ^ uVar33 | 0xab040d2859be9b90;
  uVar4 = DAT_182671580;
  uVar28 = CONCAT44(uVar8,uVar8);
  uVar31 = (CONCAT44(uVar5,uVar12) ^ 0x4f9d0005124004e0) + (uVar31 ^ uVar18);
  uVar18 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar3 + -0x610) = uVar31 ^ uVar28;
  uVar6 = DAT_182671814;
  bVar13 = (byte)uVar4;
  uVar17 = (CONCAT44(uVar11,uVar11) ^ 0x9ea1e6c08107601e) + (uVar17 ^ *puVar16);
  *(ulonglong *)(lVar3 + -0x110) = uVar17 ^ uVar18;
  uVar27 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xe925bec5)) = uVar17 + uVar31 ^ uVar27;
  uVar12 = DAT_182671584;
  uVar21 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  uVar30 = (ulonglong)DAT_182671584;
  uVar17 = (*(ulonglong *)(lVar3 - (uVar25 ^ 0xa000600)) ^ uVar28) << 0x19;
  uVar31 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar18 = (*(ulonglong *)(lVar3 + -0x610) ^ uVar28) >> ((bVar13 ^ 0x52) & 0x3f);
  *(ulonglong *)(lVar3 + -0x1f0) =
       (CONCAT44(uVar5,uVar26) ^ 0xc9ef78bc53b7338f) << ((bVar13 ^ 0x56) & 0x3f);
  *(ulonglong *)(lVar3 + -0x510) = uVar18 ^ uVar31;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar17 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x670) = (uVar18 | uVar17) ^ uVar19;
  uVar5 = DAT_1826715b4;
  uVar21 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 + -0x5c8) =
       CONCAT44(uVar9,uVar12) ^ *(ulonglong *)(lVar3 + -0xa60) ^ uVar33 ^ 0x85cecb8a53d990f8;
  uVar26 = uVar5 + uVar12;
  uVar17 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  DAT_182671574 = uVar26;
  *(ulonglong *)(lVar3 + -0xbf0) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0x541a6c4c)) ^ uVar17 ^ uVar27 ^
       *(ulonglong *)(lVar3 + -0x600) ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xa000308)) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x6b8)) + (CONCAT44(uVar11,uVar4) ^ 0xf19bf323e867485a) ^
       uVar15;
  uVar6 = _DAT_182671610;
  uVar18 = (CONCAT44(uVar5,uVar12) ^ 0x6c53a7dc8e201d1c) + (*(ulonglong *)(lVar3 + -0x3f0) ^ uVar35)
  ;
  *(ulonglong *)(lVar3 + -0x688) = uVar18 ^ CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar18 = (uVar15 ^ *(ulonglong *)(lVar3 + -0x318)) + uVar18;
  uVar19 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x628) = uVar18 ^ uVar19;
  uVar7 = DAT_182671704;
  *(ulonglong *)(lVar3 + -0x748) = uVar18 + (CONCAT44(uVar26,uVar26) ^ 0x55140efeee377780);
  uVar6 = DAT_1826716dc;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x9f8) =
       (uVar15 ^ *(ulonglong *)(lVar3 + -0x318)) << (((byte)uVar26 ^ 0xc2) & 0x3f) ^ uVar24;
  uVar25 = CONCAT44(uVar6,uVar6);
  puVar36 = (ulonglong *)(DAT_182671560 - (uVar21 ^ 0x541a6f2c));
  *(ulonglong *)(DAT_182671560 + -0x638) =
       (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x541a6924)) ^ uVar15) >>
       (((byte)uVar12 ^ 0xb8) & 0x3f) ^ uVar25;
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0xda95dfb7)) =
       (uVar31 ^ *puVar36) - (CONCAT44(uVar5,uVar26) ^ 0x57a6c367de556efe);
  lVar1 = DAT_182671560;
  uVar18 = CONCAT44(DAT_182671858,DAT_182671858);
  puVar16 = (ulonglong *)(DAT_182671560 + -0x628);
  uVar15 = (uVar25 ^ *(ulonglong *)(DAT_182671560 + -0x638) |
           *(ulonglong *)(DAT_182671560 + -0x9f8) ^ uVar24) ^ uVar18;
  *(uint *)(DAT_182671560 + -0x328) = (uVar12 ^ 0xead89710) + *(int *)(DAT_182671560 + -0x910);
  uVar6 = DAT_1826716a4;
  uVar18 = *puVar16 ^ uVar15 ^ uVar18 ^ uVar19;
  *(ulonglong *)(lVar1 + -0x610) = uVar18 ^ uVar20;
  uVar25 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 + -0x1f0) = uVar15;
  uVar27 = (*(ulonglong *)(lVar1 - (uVar21 ^ 0x541a6c3c)) ^ uVar27) + uVar18 ^ uVar25;
  uVar15 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(lVar1 + -0x9e8) = uVar27;
  uVar31 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar26 ^ 0x2eb04ef3)) ^ uVar20) << 0x2e;
  uVar18 = CONCAT44(DAT_182671748,DAT_182671748);
  *(ulonglong *)(lVar1 + -0xa60) = uVar31 ^ uVar15;
  uVar6 = DAT_1826715f8;
  *(ulonglong *)(lVar1 + -0x5c8) =
       ((ulonglong)(DAT_1826717f0 >> 0x12) | (ulonglong)DAT_1826717f0 << 0xe) ^
       *(ulonglong *)(lVar1 + -0x610) >> 0x12 ^ uVar18;
  uVar15 = CONCAT44(uVar6,uVar6);
  uVar18 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar26 ^ 0x2eb04d2b)) ^ uVar18 | uVar31) ^ uVar15;
  uVar20 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar1 + -0x670) = uVar18;
  uVar6 = DAT_182671844;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar27 ^ uVar20 ^ uVar18 ^ uVar15 ^ uVar25;
  uVar4 = DAT_182671584;
  uVar31 = CONCAT44(uVar6,uVar6);
  uVar11 = DAT_182671584 ^ 0x4ef2fa3e;
  *(ulonglong *)(lVar1 + -0x3f0) =
       (*(ulonglong *)(lVar1 + -0x628) ^ uVar19) + (*(ulonglong *)(lVar1 + -0xbf0) ^ uVar17) ^
       uVar31;
  uVar12 = DAT_182671574;
  *(uint *)(lVar2 - (uVar30 ^ 0xda95dadb)) = (DAT_182671574 ^ 0xe6649d1) * uVar11;
  lVar1 = DAT_182671560;
  uVar27 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar2 + -0x688) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0x541a61cc)) ^ uVar17) << 0xc ^ uVar27;
  *(uint *)(lVar1 - ((ulonglong)uVar26 ^ 0x2eb0486f)) =
       (*(uint *)(lVar2 - (uVar30 ^ 0xda95d7cf)) ^ DAT_18267180c) + (uVar12 ^ 0xa82bc3f1);
  lVar2 = DAT_182671560;
  uVar15 = (*(ulonglong *)(lVar1 + -0xbf0) ^ uVar17) >> (((byte)uVar26 ^ 0xd7) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar15 ^ CONCAT44(DAT_18267181c,DAT_18267181c);
  uVar11 = DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x318) = CONCAT44(uVar5,uVar5) ^ 0x518100b10002408 | 0xd2470cc4c5ded2f6;
  lVar1 = DAT_182671560;
  uVar18 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *puVar36 = (uVar15 | uVar27 ^ *(ulonglong *)(DAT_182671560 + -0x688)) ^ uVar18;
  *(uint *)(lVar1 - (uVar29 ^ 0x1f8413f8)) = (uVar11 ^ 0x4ab51b78) + (uVar4 ^ 0xd362f872);
  uVar6 = _DAT_182671618;
  *(uint *)(lVar1 + -0x5cc) = (uVar12 ^ 0xb2591b01) - *(int *)(lVar1 + -0x640);
  uVar17 = CONCAT44(uVar6,uVar6);
  uVar15 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  uVar18 = *(ulonglong *)(lVar1 + -0x510) ^ uVar17 ^ uVar18 ^ uVar31 ^
           *(ulonglong *)(lVar1 + -0x3f0);
  *(ulonglong *)(lVar1 + -0x110) = uVar18;
  uVar12 = DAT_182671580 ^ 0xe6fd7f73;
  *(ulonglong *)(lVar1 + -0x9f8) =
       (*(ulonglong *)(lVar1 + -0x9e8) ^ uVar25) + (uVar17 ^ uVar18) ^ uVar15;
  *(uint *)(lVar1 + -0x774) = uVar12 | 0x80dd3173;
  uVar27 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar25 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(lVar1 + -0x638) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar26 ^ 0x2eb049f3)) ^ uVar17) << 0x3a ^ uVar27;
  uVar18 = (uVar17 ^ uVar18) >> (((byte)DAT_182671598 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar1 + -0x1f0) = uVar18 ^ uVar25;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x1f8416bc)) = uVar18 >> ((byte)uVar18 & 0x3f);
  uVar6 = _DAT_18267188c;
  uVar17 = CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar25 = (*(ulonglong *)(lVar1 + -0x1f0) ^ uVar25 | uVar27 ^ *(ulonglong *)(lVar1 + -0x638)) ^
           uVar17;
  *(ulonglong *)(lVar1 + -0x610) = uVar25;
  uVar18 = (ulonglong)_DAT_1826715e0;
  *(ulonglong *)(lVar1 + -0xa60) =
       CONCAT44(uVar6,uVar6) ^ uVar25 ^ uVar17 ^ uVar15 ^ *(ulonglong *)(lVar1 + -0x9f8);
  *(byte *)(lVar1 + -0x461) =
       *(byte *)(*(ulonglong *)(lVar1 + -0xc80) ^ uVar18) ^ (byte)DAT_1826717c0;
  uVar15 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar12 = DAT_182671568 ^ 0x2cd8a714;
  uVar31 = (*(ulonglong *)(lVar1 - (uVar21 ^ 0x541a69cc)) ^ uVar31) +
           (uVar20 ^ *(ulonglong *)(lVar1 + -0x6b8)) ^ uVar15;
  *(ulonglong *)(lVar1 + -0x5c8) = uVar31;
  *(uint *)(lVar1 + -0x754) = uVar12 + 0x4b1bc168;
  uVar18 = CONCAT44(DAT_182671580,uVar32);
  uVar17 = (uVar20 ^ *(ulonglong *)(lVar1 + -0x6b8)) << 0x16;
  *(ulonglong *)(lVar1 + -0x670) = uVar17 ^ CONCAT44(DAT_182671728,DAT_182671728);
  uVar6 = DAT_1826715ec;
  *(ulonglong *)(lVar1 + -0x628) =
       uVar18 ^ 0x5768c8a917d4dd21 | CONCAT44(uVar26,uVar26) ^ 0xe8ddba6a394cf64a;
  uVar25 = CONCAT44(uVar6,uVar6);
  uVar18 = (*(ulonglong *)(lVar1 - (uVar14 ^ 0x8a0101a9)) ^ uVar20) >>
           (((byte)DAT_182671590 ^ 0x19) & 0x3f);
  bVar13 = (byte)DAT_18267158c;
  *(ulonglong *)(lVar1 + -0xbf0) = uVar18 ^ uVar25;
  *(ulonglong *)(lVar1 + -0x318) = uVar18 << ((bVar13 ^ 0xcd) & 0x3f);
  uVar18 = (*(ulonglong *)(lVar1 - (uVar30 ^ 0xda95d557)) ^ uVar25 | uVar17) ^ uVar23;
  uVar25 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar1 + -0x688) = uVar18;
  *(ulonglong *)(lVar1 - (uVar30 ^ 0xda95d9ef)) = uVar25 ^ uVar18 ^ uVar15 ^ uVar23 ^ uVar31;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar22;
  return;
}



############ FUN_ 180f0f4d0 size=5570 ############

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

void FUN_180f0f4d0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  
  uVar14 = DAT_1826717c4;
  uVar10 = DAT_1826715a8;
  lVar7 = DAT_182671560;
  uVar41 = (ulonglong)DAT_182671594;
  uVar30 = (ulonglong)DAT_1826715a8;
  uVar25 = DAT_1826715a8 ^ DAT_182671594;
  uVar19 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_182671594 ^ 0x9ae1335) + (longlong)DAT_1826719e8) ^
           DAT_1826715a8;
  uVar6 = *(uint *)(&DAT_182611e80 + DAT_1826719e8);
  uVar40 = (ulonglong)DAT_1826715a8;
  uVar23 = (ulonglong)uVar25;
  puVar1 = (ulonglong *)(DAT_182671560 + -0xbf0);
  uVar35 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar22 = (CONCAT44(uVar25,DAT_1826715a8) ^ 0x1bb032b0815101f) -
           (*(ulonglong *)(DAT_182671560 + -0xa60) ^ uVar35);
  DAT_18267158c = uVar25;
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar22 ^ CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar7 - (uVar41 ^ 0x9ae1025)) = (*puVar1 ^ uVar28) + uVar22 ^ uVar36;
  uVar22 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar27 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  puVar42 = (ulonglong *)(lVar7 - (uVar23 ^ 0xfe44f44c));
  *(ulonglong *)(lVar7 + -0x6d0) =
       *(ulonglong *)(lVar7 - (uVar40 ^ 0xf7eaecf1)) ^ *puVar42 ^ uVar27 ^ uVar22 ^ uVar36;
  uVar22 = *(ulonglong *)(lVar7 + -0x6d0) ^ uVar22;
  *(ulonglong *)(lVar7 + -0x610) = CONCAT44(uVar10,DAT_182671594) ^ 0x397a561adbebbf53;
  lVar7 = DAT_182671560;
  uVar37 = uVar22 >> (((byte)uVar10 ^ 0xc9) & 0x3f);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *puVar2 = uVar37 ^ CONCAT44(DAT_18267187c,DAT_18267187c);
  lVar8 = DAT_182671560;
  uVar32 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  puVar3 = (ulonglong *)(lVar7 + -0x6b8);
  *puVar3 = uVar22 << (((byte)uVar25 ^ 0xf4) & 0x3f) ^ uVar32;
  uVar36 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar8 + -0x600) =
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar10 ^ 0xf7eae951)) ^ uVar32 | uVar37) ^ uVar36;
  *(int *)(lVar8 + -0x3d4) = -0x509a5782 << ((byte)DAT_182671594 & 0x1f);
  uVar32 = CONCAT44(DAT_18267178c,DAT_18267178c);
  puVar31 = (ulonglong *)(lVar8 - (uVar41 ^ 0x9ae1ac5));
  *puVar31 = (*puVar42 ^ uVar27) - (*(ulonglong *)(lVar8 - (uVar41 ^ 0x9ae153d)) ^ uVar36) ^ uVar32;
  lVar7 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar37 = CONCAT44(DAT_182671628,DAT_182671628);
  uVar33 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0xfe44fd0c)) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar10 ^ 0xf7eaee19)) ^
       *(ulonglong *)(DAT_182671560 + -0x400) ^ uVar33 ^ uVar37 ^ uVar27;
  uVar22 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(DAT_182671560 - (uVar41 ^ 0x9ae1b3d)) =
       (uVar27 ^ *(ulonglong *)(lVar7 + -0x1d8)) >> (((byte)uVar25 ^ 0xf4) & 0x3f) ^ uVar22;
  uVar20 = DAT_182671590;
  uVar9 = DAT_18267157c;
  lVar7 = DAT_182671560;
  puVar42 = (ulonglong *)(DAT_182671560 + -0x1d8);
  *(ulonglong *)(DAT_182671560 + -0x270) =
       CONCAT44(uVar10,DAT_18267157c) ^ *puVar1 ^ uVar28 ^ 0x41ea3a67e4711c49;
  uVar29 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar7 + -0x748) =
       (uVar27 ^ *puVar42) << (((byte)DAT_182671594 ^ 0x1d) & 0x3f) ^ uVar29;
  puVar42 = (ulonglong *)(lVar7 + -0x800);
  *(ulonglong *)(lVar7 - (uVar23 ^ 0xfe44fe74)) =
       (CONCAT44(uVar20,uVar10) ^ 0xf242105986766ba8) +
       (CONCAT44(uVar9,DAT_182671594) ^ 0x58256da95b323560);
  uVar28 = CONCAT44(DAT_18267168c,DAT_18267168c);
  puVar4 = (ulonglong *)(lVar7 + -0x548);
  uVar22 = uVar29 ^ *(ulonglong *)(lVar7 + -0x748) | *puVar42 ^ uVar22;
  uVar27 = uVar22 ^ uVar28;
  uVar34 = CONCAT44(DAT_182671634,DAT_182671634);
  *(ulonglong *)(lVar7 + -0x628) = uVar27;
  *puVar4 = (*(ulonglong *)(lVar7 + -0x400) ^ uVar37) - uVar22 ^ uVar34;
  uVar9 = DAT_18267156c;
  uVar22 = *(ulonglong *)(lVar7 - (uVar23 ^ 0xfe44f52c)) ^ uVar27 ^ uVar28 ^ uVar33 ^ uVar32;
  uVar39 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar7 + -0xa88) = uVar22;
  uVar27 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  uVar37 = (uVar33 ^ uVar22) >> (((byte)uVar9 ^ 0xb0) & 0x3f);
  puVar5 = (ulonglong *)(lVar7 + -0x318);
  *(ulonglong *)(lVar7 + -0x5c8) = uVar37 ^ uVar39;
  lVar7 = DAT_182671560;
  uVar22 = (uVar33 ^ uVar22) << 6;
  *puVar5 = uVar22 ^ uVar27;
  uVar45 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0xf7eae9f9)) = (uVar37 | uVar22) ^ uVar45;
  uVar37 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar20 ^ 0x2800241)) =
       (uVar32 ^ *puVar31) - (uVar45 ^ *(ulonglong *)(lVar7 + -0x610)) ^ uVar37;
  uVar38 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar22 = uVar38 ^ uVar34 ^ *(ulonglong *)(lVar7 + -0x600) ^ uVar36 ^ *puVar4;
  *puVar2 = 0x50656aa0374e0740;
  uVar18 = DAT_182671888;
  uVar20 = DAT_1826715b4;
  *puVar3 = uVar22;
  uVar14 = DAT_1826715b0;
  *(ulonglong *)(lVar7 - (uVar40 ^ 0xf7eae771)) =
       (uVar22 ^ uVar38) >> (((byte)uVar9 ^ 0x9c) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  uVar15 = _DAT_18267161c;
  uVar27 = (uVar38 ^ *puVar3) << (((byte)uVar20 ^ 0x8e) & 0x3f);
  uVar22 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar7 + -0x1f0) = uVar27 ^ CONCAT44(DAT_182671710,DAT_182671710);
  uVar16 = DAT_182671674;
  uVar39 = CONCAT44(uVar15,uVar15);
  *puVar1 = (uVar27 | CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar7 + -0x898)) ^ uVar39;
  uVar32 = CONCAT44(uVar16,uVar16);
  puVar26 = (ulonglong *)(lVar7 - (uVar41 ^ 0x9ae114d));
  puVar31 = (ulonglong *)(lVar7 + -0x2a0);
  *puVar26 = (uVar34 ^ *puVar4) - (*(ulonglong *)(lVar7 - (uVar22 ^ 0x280097a)) ^ uVar39) ^ uVar32;
  uVar15 = _DAT_182671610;
  *(longlong *)(lVar7 + -0x1d8) =
       -0x7d6e6418e2ded58c << (((byte)uVar18 ^ *(byte *)(lVar7 + -0x898)) & 0x3f);
  uVar9 = DAT_18267157c;
  lVar8 = DAT_182671560;
  uVar40 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar7 - (uVar30 ^ 0xf7eaed49)) =
       uVar40 ^ uVar39 ^ uVar37 ^ *puVar1 ^ *(ulonglong *)(lVar7 + -0x6d0);
  uVar20 = DAT_182671588;
  uVar30 = (ulonglong)DAT_182671588;
  uVar27 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar9 ^ 0x860d34c8)) =
       (uVar40 ^ *puVar31) >> (((byte)uVar9 ^ 0xe6) & 0x3f) ^ uVar27;
  uVar15 = DAT_1826718b0;
  uVar12 = DAT_182671598;
  *(ulonglong *)(lVar8 + -0x748) =
       (CONCAT44(DAT_182671598,uVar20) ^ 0xce0d88de3d87643a) +
       (CONCAT44(uVar10,DAT_182671570) ^ 0x6aec909f81ee0861);
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar8 - (uVar23 ^ 0xfe44f8d4)) = (uVar40 ^ *puVar31) << 0x12 ^ uVar22;
  uVar17 = DAT_182671828;
  uVar40 = CONCAT44(DAT_182671820,DAT_182671820);
  uVar22 = *(ulonglong *)(lVar8 - (uVar41 ^ 0x9ae173d)) ^ uVar22 | uVar27 ^ *puVar42;
  *(ulonglong *)(lVar8 + -0x628) = uVar22 ^ uVar40;
  uVar13 = DAT_1826715a0;
  *(longlong *)(lVar8 + -0xa88) =
       -0x4d2c320fd49fa48c <<
       ((*(byte *)(lVar8 - ((ulonglong)DAT_1826715a0 ^ 0x3d13a691)) ^ (byte)uVar18) & 0x3f);
  uVar44 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *puVar5 = (uVar37 ^ *(ulonglong *)(lVar8 + -0x6d0)) - uVar22 ^ uVar44;
  uVar15 = DAT_1826716b4;
  uVar9 = DAT_182671570;
  uVar22 = CONCAT44(uVar17,uVar17) ^ uVar32 ^ uVar45 ^ *(ulonglong *)(lVar8 + -0x270) ^
           *(ulonglong *)(lVar8 + -0x610);
  uVar27 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar8 + -0x5c8) = uVar22;
  uVar39 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar8 - (uVar27 ^ 0x5000ee3)) =
       ((ulonglong)uVar17 << 0x14 | (ulonglong)(uVar17 >> 0xc)) ^ uVar22 >> 0xc ^ uVar39;
  uVar11 = DAT_182671580;
  uVar27 = (ulonglong)DAT_182671580;
  uVar22 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar8 + -0x600) =
       CONCAT44(uVar14,DAT_182671580) ^ 0xeffeb34cebe4ef3c | 0x42aa1204e3c0af1c;
  uVar10 = DAT_182671584;
  uVar20 = DAT_182671574;
  uVar23 = (*(ulonglong *)(lVar8 - (uVar22 ^ 0x2800159)) ^ CONCAT44(uVar17,uVar17)) << 0x34;
  uVar22 = *(ulonglong *)(lVar8 + -0x9f8);
  uVar37 = (ulonglong)DAT_182671584;
  *puVar2 = uVar23 ^ CONCAT44(DAT_182671608,DAT_182671608);
  lVar7 = DAT_182671560;
  uVar41 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *puVar3 = (uVar39 ^ uVar22 | uVar23) ^ uVar41;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0xc5c19a45)) =
       (CONCAT44(uVar10,DAT_182671590) ^ 0x8abec2ef87c1e870) + uVar23;
  uVar15 = DAT_182671660;
  uVar23 = CONCAT44(DAT_182671660,DAT_182671660);
  *puVar4 = (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x72e12c3)) ^ uVar32) - (uVar41 ^ *puVar3) ^
            uVar23;
  uVar10 = DAT_18267157c;
  bVar21 = (byte)uVar11;
  uVar32 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(ulonglong *)(lVar7 + -0x1d8) =
       (CONCAT44(uVar13,uVar9) ^ 0x99090057897d85d5) >> ((bVar21 ^ 0x25) & 0x3f);
  uVar22 = *(ulonglong *)(lVar7 - (uVar30 ^ 0x57bfd7a3)) ^ uVar41 ^ uVar44 ^ *puVar3;
  uVar37 = CONCAT44(DAT_182671878,DAT_182671878);
  *puVar1 = uVar22 ^ uVar32;
  uVar13 = DAT_18267159c;
  uVar9 = DAT_182671578;
  uVar41 = (ulonglong)DAT_18267159c;
  uVar39 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715b4 ^ 0x123302ec)) =
       uVar22 >> (((byte)uVar10 ^ 0xd1) & 0x3f) ^ uVar37;
  uVar22 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *puVar31 = (*puVar1 ^ uVar32) << ((bVar21 ^ 3) & 0x3f) ^ uVar22;
  puVar24 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671598 ^ 0x72e1213));
  uVar32 = CONCAT44(DAT_182671890,DAT_182671890);
  uVar45 = *puVar24 ^ uVar22 | *(ulonglong *)(lVar7 + -0x748) ^ uVar37;
  *puVar42 = uVar45 ^ uVar32;
  uVar14 = DAT_182671644;
  *(ulonglong *)(lVar7 + -0x400) = uVar45 >> (((byte)uVar13 ^ 8) & 0x3f);
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar22 = CONCAT44(DAT_18267156c,DAT_182671590);
  *(ulonglong *)(lVar7 + -0x898) =
       (uVar44 ^ *puVar5) - (*(ulonglong *)(lVar7 - (uVar39 ^ 0xc83c0b0e)) ^ uVar30) ^ uVar36;
  uVar18 = DAT_18267189c;
  *(ulonglong *)(lVar7 + -0xa88) =
       (uVar22 ^ 0xeb0121d902f9380a) << (((byte)uVar15 ^ *(byte *)puVar4) & 0x3f);
  uVar16 = DAT_182671824;
  uVar15 = DAT_1826716e8;
  uVar14 = DAT_1826715a4;
  uVar43 = CONCAT44(uVar18,uVar18);
  uVar37 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar7 + -0x6d0) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0xc83c051e)) ^ uVar36) - uVar45 ^ uVar43;
  uVar18 = DAT_182671830;
  lVar8 = DAT_182671560;
  uVar22 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_18267157c ^ 0x860d3f70)) ^
           CONCAT44(uVar16,uVar16)) + (CONCAT44(uVar13,uVar14) ^ 0x2f22f8d19b67b5c5);
  *(ulonglong *)(lVar7 + -0x610) = uVar22 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar7 + -0x600) = uVar45 - uVar22 ^ uVar35;
  uVar15 = DAT_1826718c0;
  uVar44 = CONCAT44(uVar18,uVar18);
  uVar36 = *(ulonglong *)(lVar7 - (uVar37 ^ 0x838d3d7f)) ^ uVar40 ^ *(ulonglong *)(lVar7 + -0x628) ^
           uVar44 ^ uVar23;
  *(ulonglong *)(lVar7 + -0x5c8) = uVar36;
  uVar45 = CONCAT44(uVar15,uVar15);
  uVar22 = (ulonglong)DAT_18267156c;
  uVar40 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(lVar8 + -0x9f8) = (uVar36 ^ uVar44) >> (((byte)uVar20 ^ 0x94) & 0x3f) ^ uVar45;
  uVar36 = CONCAT44(DAT_182671568,DAT_182671594);
  *(ulonglong *)(lVar8 - (uVar39 ^ 0xc83c052e)) =
       (*(ulonglong *)(lVar8 - (uVar22 ^ 0x2800742)) ^ uVar44) << (((byte)DAT_182671570 ^ 4) & 0x3f)
       ^ uVar40;
  *(ulonglong *)(lVar8 - (uVar37 ^ 0x838d39c7)) =
       uVar36 ^ 0x228c22e937341fb9 | *(ulonglong *)(lVar8 + -0x5c8) ^ uVar44;
  *puVar26 = (uVar40 ^ *puVar2 | uVar45 ^ *(ulonglong *)(lVar8 + -0x9f8)) ^ uVar34;
  uVar22 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_18267157c ^ 0x860d3d10)) =
       (uVar23 ^ *puVar4) - (*(ulonglong *)(lVar8 - (uVar41 ^ 0xcff48e53)) ^ uVar30) ^ uVar22;
  uVar36 = uVar34 ^ *(ulonglong *)(lVar8 + -0x270);
  uVar37 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar41 = (*(ulonglong *)(lVar8 + -0x1d8) ^ uVar22) - uVar36 ^ uVar37;
  *puVar3 = uVar41;
  uVar22 = CONCAT44(DAT_182671760,DAT_182671760);
  uVar28 = (CONCAT44(uVar14,uVar25) ^ 0xf9f86fef01bb0323) -
           (*(ulonglong *)(lVar8 + -0x510) ^ uVar28);
  *(int *)(lVar8 + -0x874) = *(int *)(lVar8 + -0x844) + *(int *)(lVar8 + -0x274);
  uVar14 = DAT_1826716f8;
  *puVar1 = uVar28 ^ uVar22;
  uVar15 = DAT_1826718a8;
  lVar7 = DAT_182671560;
  uVar22 = *(ulonglong *)(lVar8 + -0x6d0);
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar28 = uVar28 + uVar36 ^ uVar23;
  *(ulonglong *)(lVar8 + -0x748) = uVar28;
  uVar40 = CONCAT44(uVar15,uVar15);
  *puVar31 = *(ulonglong *)(*(ulonglong *)(lVar8 + -0x450) ^ uVar40) ^ uVar40;
  uVar14 = DAT_182671748;
  uVar36 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar20 = DAT_182671580 ^ DAT_182671598;
  uVar28 = uVar22 ^ uVar28 ^ uVar36 ^ uVar23 ^ uVar43;
  DAT_182671594 = uVar20;
  *(ulonglong *)(lVar8 + -0x400) = uVar28;
  uVar28 = uVar28 ^ uVar36;
  uVar23 = CONCAT44(uVar20,DAT_182671598);
  uVar36 = CONCAT44(uVar14,uVar14);
  *puVar5 = uVar28 >> (((byte)DAT_182671598 ^ 0xb6) & 0x3f) ^ uVar36;
  uVar14 = DAT_182671834;
  uVar9 = DAT_182671598;
  puVar26 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671598 ^ 0x72e13ab));
  uVar28 = uVar28 << (((byte)DAT_182671598 ^ 0x88) & 0x3f);
  *(ulonglong *)(lVar7 + -0xa88) = uVar28 ^ uVar32;
  uVar39 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x898) = (*puVar26 ^ uVar36 | uVar28) ^ uVar39;
  *puVar42 = CONCAT44(uVar20,uVar11) ^ uVar23 ^ 0x615d8aef6fa50423;
  lVar7 = DAT_182671560;
  uVar30 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar36 = *(ulonglong *)(DAT_182671560 + -0x600);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (uVar22 ^ uVar43) - (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x72e182b)) ^ uVar39)
       ^ uVar30;
  lVar8 = DAT_182671560;
  *(ulonglong *)(lVar7 + -0x5c8) = CONCAT44(uVar12,uVar11) ^ 0x6e04b4158109081 | 0xe912b03ea5e26b56;
  uVar20 = DAT_182671598;
  uVar22 = CONCAT44(DAT_182671654,DAT_182671654);
  uVar23 = (ulonglong)DAT_182671598;
  uVar36 = uVar36 ^ uVar35 ^ uVar22 ^ uVar41 ^ uVar37;
  *(ulonglong *)(lVar7 + -0x1f0) = uVar36;
  uVar36 = uVar36 ^ uVar22;
  uVar22 = *(ulonglong *)(lVar7 - (uVar27 ^ 0xf2eefd0c));
  *(ulonglong *)(lVar7 + -0x240) = uVar36 << 0x1b ^ uVar38;
  *(ulonglong *)(lVar7 + -0x9f8) = uVar22 ^ uVar30 | uVar34 ^ *(ulonglong *)(lVar7 + -0x270);
  uVar9 = DAT_182671594;
  uVar22 = (ulonglong)DAT_182671594;
  *puVar2 = uVar36 >> ((bVar21 ^ 1) & 0x3f) ^ uVar33;
  uVar36 = CONCAT44(DAT_182671788,DAT_182671788);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar20 ^ 0x72e15fb)) =
       (*(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xf5c0e33f)) ^ uVar33 |
       *(ulonglong *)(lVar8 - (uVar23 ^ 0x72e12f3)) ^ uVar38) ^ uVar36;
  uVar14 = DAT_182671804;
  uVar28 = (ulonglong)uVar9;
  *(ulonglong *)(lVar8 + -0x1d8) = (*puVar3 ^ uVar37) - (uVar36 ^ *puVar4) ^ uVar29;
  uVar32 = CONCAT44(uVar14,uVar14);
  *puVar1 = *(ulonglong *)(lVar8 - ((ulonglong)uVar9 ^ 0xf5c0eedf)) ^
            *(ulonglong *)(lVar8 - ((ulonglong)uVar9 ^ 0xf5c0edbf)) ^ uVar32 ^ uVar36 ^ uVar30;
  uVar22 = *puVar1;
  *puVar31 = (*puVar2 >> 0x20 ^ (ulonglong)DAT_182671744) >> 1;
  uVar14 = DAT_182671708;
  uVar36 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar8 + -0x748) = (uVar22 ^ uVar32) >> ((bVar21 ^ 0x33) & 0x3f) ^ uVar36;
  lVar7 = DAT_182671560;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x72e14b3)) =
       (*(ulonglong *)(lVar8 - (uVar28 ^ 0xf5c0e067)) ^ uVar32) << ((bVar21 ^ 0xd) & 0x3f) ^ uVar22;
  *puVar26 = *(ulonglong *)(CONCAT44(DAT_182671800,DAT_182671800) ^ *(ulonglong *)(lVar7 + -0x178))
             ^ uVar40;
  uVar14 = DAT_1826716bc;
  uVar22 = *(ulonglong *)(lVar7 + -0x400) ^ uVar22 | *(ulonglong *)(lVar7 + -0x748) ^ uVar36;
  *(ulonglong *)(lVar7 + -0xa88) = uVar22 ^ CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar32 = CONCAT44(uVar14,uVar14);
  *puVar42 = (*(ulonglong *)(lVar7 + -0x628) ^ uVar30) - uVar22 ^ uVar32;
  lVar7 = DAT_182671560;
  uVar22 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xf5c0ed47)) =
       *(ulonglong *)(DAT_182671560 + -0x898) ^ uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x1d8) ^
       uVar22 ^ uVar39;
  uVar36 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar7 + -0x5c8) =
       (*(ulonglong *)(lVar7 + -0x6d0) ^ uVar22) >> (((byte)uVar9 ^ 0xbf) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar7 - (uVar28 ^ 0xf5c0ed97)) =
       CONCAT44(uVar11,uVar11) ^ 0x8280a808880f01d | 0xb1d6c42f752a0ba2;
  uVar22 = (*(ulonglong *)(lVar7 + -0x6d0) ^ uVar22) << ((bVar21 ^ 0x3c) & 0x3f);
  uVar37 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar23 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar7 + -0x270) = uVar22 ^ uVar37;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0xf2eef2dc)) =
       (*(ulonglong *)(lVar7 + -0x5c8) ^ uVar36 | uVar22) ^ uVar23;
  uVar14 = DAT_182671678;
  *(int *)(lVar7 - (uVar27 ^ 0xf2eefba8)) =
       *(int *)(lVar7 - ((ulonglong)uVar9 ^ 0xf5c0ecc3)) <<
       ((byte)*(undefined4 *)(lVar7 + -0x754) & 0x1f);
  lVar8 = DAT_182671560;
  uVar22 = *(ulonglong *)(lVar7 + -0x9f8);
  *(ulonglong *)(lVar7 + -0x1f0) =
       (uVar29 ^ *(ulonglong *)(lVar7 + -0x1d8)) - (uVar22 ^ uVar23) ^ CONCAT44(uVar14,uVar14);
  uVar36 = *puVar42;
  *(ulonglong *)(lVar8 + -0x240) = *puVar42 ^ uVar37 ^ uVar32 ^ *(ulonglong *)(lVar8 + -0x270);
  uVar37 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar27 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar8 - (uVar28 ^ 0xf5c0ed2f)) = uVar22 ^ uVar36 ^ uVar37 ^ uVar23 ^ uVar32;
  uVar22 = (uVar37 ^ *puVar3) >> (((byte)uVar9 ^ 0xa3) & 0x3f);
  uVar23 = (uVar37 ^ *puVar3) << 0xc;
  *puVar4 = uVar22 ^ uVar27;
  *puVar2 = uVar23 ^ CONCAT44(DAT_182671704,DAT_182671704);
  uVar36 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *puVar24 = (uVar23 | uVar22) ^ uVar36;
  uVar22 = (*puVar42 ^ uVar32) - (uVar36 ^ *puVar31);
  *puVar1 = uVar22 ^ CONCAT44(DAT_182671818,DAT_182671818);
  *puVar5 = uVar22 >> ((bVar21 ^ 0x35) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar6 ^ uVar25) * 4) = uVar19;
  return;
}



############ FUN_ 180f24a30 size=3519 ############

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

void FUN_180f24a30(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  byte *pbVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  
  uVar7 = DAT_182671598;
  uVar8 = DAT_182671594;
  uVar6 = DAT_182671584;
  uVar5 = DAT_182671580;
  uVar4 = DAT_18267157c;
  uVar25 = DAT_182671578;
  uVar3 = DAT_18267156c;
  lVar1 = DAT_182671560;
  uVar28 = DAT_1826715a0 - DAT_18267158c;
  uVar21 = (ulonglong)DAT_182671594;
  uVar22 = (ulonglong)DAT_182671598;
  uVar36 = (DAT_182671584 << 0x10 | DAT_182671584 & 0xff00) << 8 | DAT_182671584 >> 8 & 0xff00 |
           DAT_182671584 >> 0x18;
  uVar13 = DAT_1826715a4 & 3;
  if (uVar13 < 2) {
    uVar31 = DAT_18267157c;
    if (uVar13 == 0) {
      uVar31 = DAT_1826715a4;
    }
  }
  else {
    uVar31 = DAT_182671598;
    if (uVar13 < 3) {
      uVar31 = DAT_182671594;
    }
  }
  uVar35 = (DAT_182671578 << 0x10 | DAT_182671578 & 0xff00) << 8 | DAT_182671578 >> 8 & 0xff00 |
           DAT_182671578 >> 0x18;
  uVar16 = (ulonglong)DAT_182671580;
  uVar24 = DAT_18267156c ^ DAT_182671580;
  uVar13 = *(uint *)(&DAT_182611e70 + (uVar16 ^ 0xee94f1e2) + (longlong)DAT_182671a28);
  uVar14 = *(uint *)(&DAT_182611e80 + DAT_182671a28) ^ DAT_18267156c;
  DAT_182671574 = uVar28;
  DAT_182671590 = uVar24;
  DAT_18267159c = uVar36;
  DAT_1826715ac = uVar31;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0xc10) ^ (ulonglong)DAT_182671814) =
       *(byte *)(DAT_182671560 - (uVar21 ^ 0xc77207ad)) ^ (byte)DAT_182671780;
  *(undefined8 *)(lVar1 + -0x340) = *(undefined8 *)(lVar1 + -0x118);
  uVar10 = DAT_1826715b0;
  uVar15 = DAT_1826715a4;
  uVar9 = DAT_1826715a0;
  uVar17 = (ulonglong)uVar25;
  *(longlong *)(lVar1 - ((ulonglong)uVar4 ^ 0xc7720784)) =
       *(longlong *)(lVar1 - (uVar17 ^ 0x4dd8db3)) << (((byte)uVar7 ^ 0x1c) & 0x3f);
  *(undefined8 *)(lVar1 - ((ulonglong)uVar15 ^ 0xc9cab316)) =
       *(undefined8 *)(lVar1 - ((ulonglong)uVar10 ^ 0x895ebaa6));
  uVar18 = (ulonglong)uVar31;
  uVar26 = (ulonglong)DAT_182671864;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar31 ^ 0xc77201d4)) =
       CONCAT44(uVar28,uVar6) ^ 0x8beaa7920734df1f;
  pbVar32 = *(byte **)(lVar1 + -0xca8);
  uVar29 = (ulonglong)DAT_18267186c;
  *(ulonglong *)(lVar1 + -0x28) = *(ulonglong *)(lVar1 + -0x340) ^ uVar26;
  *(ulonglong *)(lVar1 + -0x960) = (ulonglong)pbVar32 ^ uVar29;
  uVar7 = DAT_18267158c;
  uVar33 = (ulonglong)DAT_18267158c;
  uVar27 = (ulonglong)DAT_18267167c;
  bVar12 = (byte)DAT_18267158c;
  uVar20 = (ulonglong)DAT_182671790;
  *(ulonglong *)(DAT_182671560 + -0x108) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar36 ^ 0xbebfc3a9)) ^ uVar29) +
       (CONCAT44(DAT_18267158c,uVar9) ^ 0x8d31cdfcbfbec9cb);
  lVar1 = DAT_182671560;
  puVar19 = (ulonglong *)(DAT_182671560 + -0xc60);
  *(byte *)(DAT_182671560 + -0xc81) = *pbVar32 ^ (byte)DAT_1826716d8 ^ (byte)DAT_182671718;
  *(byte *)(*puVar19 ^ (ulonglong)DAT_182671760) = bVar12 ^ 0xd8;
  pbVar32 = (byte *)(uVar26 ^ *(ulonglong *)(lVar1 + -0x28));
  uVar29 = (ulonglong)DAT_1826715a4;
  *(byte **)(lVar1 + -0x738) = pbVar32 + (CONCAT44(uVar35,uVar28) ^ 0xb389dd04328cfbcf);
  bVar12 = *(byte *)(lVar1 + -0xc81) ^ (byte)DAT_1826716d8;
  *(uint *)(lVar1 + -0x964) = *(uint *)(lVar1 - (uVar29 ^ 0xc9cabcca)) | 0xa750dcea;
  *pbVar32 = bVar12;
  *(undefined8 *)(lVar1 - (uVar16 ^ 0xee94f402)) = *(undefined8 *)(lVar1 - (uVar21 ^ 0xc77205f4));
  *(ulonglong *)(lVar1 + -0x9b0) = *(ulonglong *)(lVar1 + -0x108);
  *(ulonglong *)(lVar1 + -0x2d0) = *(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x895eb27e)) ^ uVar27
  ;
  lVar2 = DAT_182671560;
  uVar29 = uVar20 ^ *(ulonglong *)(lVar1 + -0x108);
  puVar19 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar36 ^ 0xbebfc371));
  *(ulonglong *)(DAT_182671560 + -0x9b8) = uVar29;
  uVar4 = DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0xbe8) =
       (*puVar19 ^ uVar20) + (CONCAT44(uVar36,uVar6) ^ 0xbebfcac9c9cabfbf);
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x800) =
       (CONCAT44(uVar3,uVar4) ^ 0x3087a1b2593da995) - *(longlong *)(lVar2 - (uVar22 ^ 0x5b66c631));
  *(byte *)(lVar1 + -0x412) =
       *(byte *)(uVar29 ^ DAT_182671790) ^ (byte)DAT_18267187c ^ (byte)DAT_182671718;
  uVar9 = DAT_182671768;
  uVar15 = DAT_182671578 ^ 0x2dc9fe2b;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar18 ^ 0xc77205dc)) ^ (ulonglong)DAT_182671768) =
       (byte)uVar24 ^ 0x29;
  uVar4 = DAT_18267157c;
  lVar1 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x5cc) =
       uVar15 >> ((byte)*(undefined4 *)(DAT_182671560 + -0x844) & 0x1f);
  *(ulonglong *)(lVar1 + -0x9c0) =
       (CONCAT44(uVar4,uVar25) ^ 0xc77202cc04dd89b2) + (*(ulonglong *)(lVar1 + -0x2d0) ^ uVar27);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0x5b66c9c9)) =
       *(longlong *)(lVar1 + -0x3b8) - (CONCAT44(uVar3,uVar7) ^ 0x48ad71f1b8a972b8);
  *(byte *)(*(ulonglong *)(lVar1 + -0x2d0) ^ uVar27) =
       *(byte *)(lVar1 + -0x412) ^ (byte)DAT_18267187c;
  *(undefined8 *)(lVar1 + -0xd50) = *(undefined8 *)(lVar1 - ((ulonglong)DAT_182671584 ^ 0xc9cab67e))
  ;
  uVar20 = (ulonglong)uVar24;
  *(undefined8 *)(lVar1 - (uVar20 ^ 0xb81db534)) = *(undefined8 *)(lVar1 + -0xbe8);
  uVar30 = (ulonglong)DAT_182671714;
  *(ulonglong *)(lVar1 + -0x2a0) = *(ulonglong *)(lVar1 + -0x800) ^ 0xb95339ae06736b4;
  *(ulonglong *)(lVar1 + -0x1b8) = *(ulonglong *)(lVar1 + -0xd50) ^ uVar30;
  uVar26 = (ulonglong)DAT_1826718a4;
  uVar29 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar1 + -0x150) = *(ulonglong *)(lVar1 + -0x458) ^ uVar26;
  uVar34 = (ulonglong)DAT_18267157c;
  uVar27 = CONCAT44(uVar36,DAT_18267157c);
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xc9caba0e)) =
       (CONCAT44(uVar35,uVar5) ^ 0xb389dd04ee94f1eb) + *(ulonglong *)(lVar1 + -0x458);
  bVar11 = (byte)DAT_182671718;
  *(byte *)(lVar1 + -0x6a1) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0x328cfa9e)) ^ uVar26) ^
       (byte)DAT_1826717d4 ^ (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar21 ^ 0xc77205ac)) ^ (ulonglong)DAT_1826717f4) =
       (byte)(uVar25 >> 0x18) ^ 0x51;
  uVar7 = DAT_1826715b0;
  uVar21 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar1 + -0x240) = (uVar27 ^ 0xaa35bfd7dadd8480) + 0x6ea9a5d3609c4f41;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0xd28) = (*(ulonglong *)(lVar1 - (uVar17 ^ 0x4dd880b)) ^ uVar30) + 1;
  *(byte *)(*(ulonglong *)(lVar1 + -0x1b8) ^ uVar30) =
       *(byte *)(lVar1 + -0x6a1) ^ (byte)DAT_1826717d4;
  *(undefined8 *)(lVar1 - (uVar21 ^ 0x895ebed6)) = *(undefined8 *)(lVar1 + -0xd28);
  uVar21 = *(ulonglong *)(lVar1 - ((ulonglong)uVar7 ^ 0x895eb226));
  uVar29 = *(ulonglong *)(lVar2 + -0x940);
  *(ulonglong *)(lVar1 + -0x398) = uVar21;
  uVar4 = DAT_182671584;
  uVar27 = (ulonglong)_DAT_1826715e0;
  uVar26 = (ulonglong)DAT_182671898;
  *(ulonglong *)(lVar2 + -0xf0) = uVar29 ^ uVar27;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x8d31c624)) = uVar26 ^ uVar21;
  *(ulonglong *)(lVar2 + -0xc70) = (*(ulonglong *)(lVar2 - (uVar34 ^ 0xc7720914)) ^ uVar26) + 1;
  uVar21 = (ulonglong)DAT_18267179c;
  *(byte *)(lVar2 + -0xa09) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xbd8) ^ uVar26) ^ (byte)DAT_182671770 ^ bVar11;
  *(byte *)(*(ulonglong *)(lVar2 + -0x1d0) ^ uVar21) = (byte)uVar31 ^ 0x5a;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0xc9cabcce)) =
       (CONCAT44(uVar24,uVar3) ^ 0xb81db16c56894087) + (*(ulonglong *)(lVar2 + -0xf0) ^ uVar27);
  bVar12 = *(byte *)(lVar2 + -0xa09) ^ (byte)DAT_182671770;
  *(undefined8 *)(lVar2 + -0x8a8) = 0x89dc296ab57e574;
  *(byte *)(*(ulonglong *)(lVar2 + -0xf0) ^ uVar27) = bVar12;
  uVar21 = *(ulonglong *)(lVar2 + -0xc70);
  *(undefined8 *)(lVar2 + -0xb08) = *(undefined8 *)(lVar2 + -0x370);
  uVar25 = DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x260) = uVar21;
  *(ulonglong *)(lVar2 + -0x1d8) =
       (CONCAT44(uVar8,uVar4) ^ 0x619773c17841e227) - (CONCAT44(uVar25,uVar7) ^ 0xabcfb5799ef65a3e);
  lVar1 = DAT_182671560;
  puVar19 = (ulonglong *)(DAT_182671560 - (uVar22 ^ 0x5b66c131));
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(lVar2 + -0x240) >> (((byte)(uVar6 >> 0x18) ^ 0xe4) & 0x3f);
  uVar5 = DAT_1826717fc;
  uVar26 = (ulonglong)DAT_1826717dc;
  uVar22 = (ulonglong)DAT_1826717fc;
  *(ulonglong *)(lVar1 + -1000) = *puVar19 ^ uVar26;
  uVar21 = uVar5 ^ uVar21;
  uVar29 = (ulonglong)DAT_1826716ec;
  *(ulonglong *)(lVar1 + -0x8d8) = uVar21;
  pbVar32 = (byte *)(uVar21 ^ uVar22);
  *(byte **)(lVar1 + -0x7c8) = pbVar32 + 1;
  *(byte *)(lVar1 + -0x321) = *pbVar32 ^ (byte)DAT_1826715f4 ^ bVar11;
  *(byte *)(*(ulonglong *)(lVar1 + -0x140) ^ (ulonglong)DAT_18267185c) = (byte)uVar24 ^ 0x7d;
  bVar12 = *(byte *)(lVar1 + -0x321) ^ (byte)DAT_1826715f4;
  *(ulonglong *)(lVar1 + -0x420) = (uVar26 ^ *(ulonglong *)(lVar1 + -1000)) + 1;
  uVar27 = (ulonglong)DAT_18267182c;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar18 ^ 0xc7720124)) ^ uVar26) = bVar12;
  *(ulonglong *)(lVar1 + -0x228) = *(ulonglong *)(lVar1 + -0x420);
  uVar22 = *(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0xbfbece02));
  *(longlong *)(lVar1 + -0x1f0) = 0x37cede101857b186 - *(longlong *)(lVar1 + -0x9e8);
  *(ulonglong *)(lVar1 + -0x4d0) = uVar22;
  *(ulonglong *)(lVar1 + -0xaa8) = uVar27 ^ *(ulonglong *)(lVar1 + -0x420);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar35 ^ 0xb389d454)) = uVar29 ^ uVar22;
  lVar1 = DAT_182671560;
  pbVar32 = (byte *)(*(ulonglong *)(DAT_182671560 + -0x950) ^ uVar29);
  *(byte **)(DAT_182671560 + -0x780) = pbVar32 + 1;
  *(ulonglong *)(lVar1 + -0x6b8) = CONCAT44(uVar8,uVar25) ^ 0x3c1040c000d1140 | 0x7c3aabe3d5b0e41f;
  *(byte *)(lVar1 + -0x381) = (byte)uVar9 ^ *pbVar32 ^ bVar11;
  uVar25 = DAT_18267157c;
  uVar30 = (ulonglong)DAT_18267157c;
  uVar29 = (ulonglong)DAT_182671818;
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x5689447e)) ^ (ulonglong)DAT_1826715f8) =
       (byte)uVar28 ^ 0x4b;
  uVar3 = DAT_1826718d0;
  uVar21 = (ulonglong)DAT_1826718d0;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar35 ^ 0xb389d144)) =
       (*(ulonglong *)(lVar1 - (uVar30 ^ 0xc7720864)) ^ uVar27) + 1;
  bVar12 = (byte)DAT_1826717bc;
  uVar5 = DAT_1826715a4;
  *(byte *)(*(ulonglong *)(lVar1 + -0xaa8) ^ uVar27) = *(byte *)(lVar1 + -0x381) ^ (byte)uVar9;
  *(ulonglong *)(lVar1 + -0x380) = uVar29 ^ *(ulonglong *)(lVar1 + -0xc40);
  *(ulonglong *)(lVar1 + -0x560) = *(ulonglong *)(lVar1 + -0xc40);
  uVar22 = (ulonglong)uVar3 ^ *(ulonglong *)(lVar1 + -0x780);
  *(ulonglong *)(lVar1 + -0x9e0) = *(ulonglong *)(lVar1 + -0x780);
  *(ulonglong *)(lVar1 + -0x618) = uVar22;
  *(ulonglong *)(lVar1 + -0x530) = (uVar21 ^ uVar22) + 1;
  uVar3 = DAT_182671578;
  bVar23 = (byte)DAT_182671578;
  *(byte *)(lVar1 + -0x909) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0xc77204d4)) ^ uVar21) ^ bVar12 ^
       bVar11;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar20 ^ 0xb81db3e4)) ^ (ulonglong)DAT_182671680) =
       bVar23 ^ 0x6d;
  *(ulonglong *)(lVar1 + -0xa88) =
       CONCAT44(uVar5,uVar4) ^ 0x57fceeaa168744 | *(ulonglong *)(lVar1 + -0xbf0);
  uVar25 = DAT_1826715a0 ^ 0xa3c35b7f;
  *(ulonglong *)(lVar1 + -0x20) =
       (CONCAT44(uVar7,uVar8) ^ 0x895eb796c77202cd) + (*(ulonglong *)(lVar1 + -0x380) ^ uVar29);
  uVar26 = (ulonglong)DAT_182671648;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar30 ^ 0xc772014c)) ^ uVar29) =
       bVar12 ^ *(byte *)(lVar1 + -0x909);
  uVar21 = (ulonglong)DAT_1826718b8;
  *(uint *)(lVar1 - (uVar17 ^ 0x4dd8bc7)) = uVar25 * (uVar3 ^ 0x2a41bccf);
  pbVar32 = *(byte **)(lVar1 + -0x530);
  uVar22 = *(ulonglong *)(lVar1 - (uVar20 ^ 0xb81db14c));
  *(ulonglong *)(lVar1 + -0x130) = uVar22;
  *(ulonglong *)(lVar1 + -0xc50) = uVar26 ^ uVar22;
  *(byte **)(lVar1 + -0x4d8) = pbVar32;
  bVar12 = (byte)DAT_1826715c0;
  *(ulonglong *)(lVar1 + -0x928) = uVar21 ^ (ulonglong)pbVar32;
  *(ulonglong *)(lVar1 + -0x4e8) = (*(ulonglong *)(lVar1 - (uVar33 ^ 0x8d31c4d4)) ^ uVar21) + 1;
  *(byte *)(lVar1 + -0x359) = *pbVar32 ^ bVar12 ^ bVar11;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0x7b0) ^ (ulonglong)DAT_182671758) = 100;
  *(ulonglong *)(lVar1 + -0x168) =
       (*(ulonglong *)(lVar1 - (uVar18 ^ 0xc7720e9c)) ^ uVar26) +
       (CONCAT44(uVar5,uVar35) ^ 0xc9cabfbeb389dd05);
  *(ulonglong *)(lVar1 - (uVar20 ^ 0xb81db754)) =
       *(ulonglong *)(lVar1 + -0xa80) ^ CONCAT44(uVar35,uVar28) ^ 0x6044e36e14e43716;
  *(byte *)(*(ulonglong *)(lVar1 + -0xc50) ^ uVar26) = bVar12 ^ *(byte *)(lVar1 + -0x359);
  *(undefined8 *)(lVar1 + -0x840) = *(undefined8 *)(lVar1 + -0x168);
  *(undefined8 *)(lVar1 - (uVar16 ^ 0xee94f46a)) = *(undefined8 *)(lVar1 + -0x4e8);
  DAT_182671570 =
       (DAT_1826715b4 << 0x10 | DAT_1826715b4 & 0xff00) << 8 | DAT_1826715b4 >> 8 & 0xff00 |
       DAT_1826715b4 >> 0x18;
  uVar22 = (ulonglong)DAT_182671790;
  *(ulonglong *)(lVar1 + -0xcb0) = *(ulonglong *)(lVar1 + -0x580) ^ (ulonglong)DAT_182671840;
  *(ulonglong *)(lVar1 + -0x828) = uVar22 ^ *(ulonglong *)(lVar1 + -0x840);
  *(longlong *)(lVar1 + -0x600) =
       *(longlong *)(lVar1 - ((ulonglong)DAT_182671570 ^ 0x8cdf42f)) <<
       ((byte)*(undefined8 *)(lVar1 + -0x8a8) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar13 ^ uVar24;
  return;
}



############ FUN_ 180f13030 size=5225 ############

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

void FUN_180f13030(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong *puVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte bVar24;
  uint uVar25;
  ulonglong uVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  int iVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong *puVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_90;
  
  uVar15 = DAT_1826718c4;
  iVar38 = DAT_1826716b8;
  uVar8 = DAT_1826715a0;
  uVar7 = DAT_182671590;
  uVar6 = DAT_18267158c;
  uVar5 = DAT_182671568;
  lVar3 = DAT_182671560;
  DAT_18267156c = DAT_1826715b4 * DAT_1826715b0;
  uVar36 = (ulonglong)DAT_18267158c;
  uVar50 = DAT_182671580 | DAT_1826715a0;
  uVar37 = (ulonglong)DAT_1826718c4;
  DAT_182671588 = DAT_18267158c ^ DAT_182671568;
  uVar22 = DAT_1826715bc & DAT_1826717d4 ^ 0xfd648aef;
  uVar48 = DAT_1826717ac * DAT_1826715f8;
  DAT_182671598 = DAT_1826715a4 << 0x10 | DAT_1826715a4 >> 0x10;
  DAT_1826715ac = DAT_182671578 + DAT_182671590;
  uVar25 = DAT_1826718c4 * DAT_1826716b8;
  uVar2 = *(uint *)(&DAT_182611e78 + DAT_1826719f4);
  uVar13 = *(uint *)(&DAT_182611e80 + DAT_1826719f4) ^ DAT_182671580;
  puVar16 = (ulonglong *)(DAT_182671560 + -0x670);
  uVar21 = (ulonglong)DAT_182671568;
  uVar29 = (ulonglong)DAT_182671588;
  uVar44 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  bVar31 = (byte)DAT_182671588;
  uVar42 = (ulonglong)DAT_1826715bc;
  uVar18 = (CONCAT44(DAT_182671640,DAT_182671640) ^ *puVar16) << ((bVar31 ^ 0x75) & 0x3f);
  uVar32 = CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar46 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar14 = uVar22 & 0xff;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x8a8);
  DAT_18267159c = uVar50;
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar18 ^ uVar44;
  uVar18 = uVar32 ^ *puVar1 | uVar18;
  *(ulonglong *)(lVar3 + -0x1d8) = uVar18 ^ uVar46;
  uVar11 = DAT_182671824;
  lVar3 = DAT_182671560;
  DAT_1826715c8 = ((uVar22 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar39 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *puVar16 = (CONCAT44(DAT_182671670,DAT_182671670) ^ *(ulonglong *)(DAT_182671560 + -0x688)) -
             uVar18 ^ uVar39;
  uVar14 = DAT_182671578;
  uVar40 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  puVar1 = (ulonglong *)(lVar3 + -0x9f8);
  uVar47 = CONCAT44(uVar15,uVar15);
  uVar52 = (ulonglong)DAT_182671578;
  uVar43 = DAT_182671578 + uVar7;
  uVar30 = CONCAT44(iVar38,iVar38);
  uVar33 = CONCAT44(uVar11,uVar11) ^ uVar47 ^ uVar40 ^ *puVar1 ^ *(ulonglong *)(lVar3 + -0x6d0);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar33;
  uVar15 = DAT_18267156c;
  uVar32 = (ulonglong)uVar43;
  uVar22 = uVar25 & 0xff;
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xc07b2057)) >> 0x20 ^ uVar37) >> 8 ^ uVar30;
  lVar3 = DAT_182671560;
  uVar37 = (ulonglong)uVar7;
  DAT_182671884 = ((uVar25 * 0x100 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar23 = CONCAT44(DAT_182671884,DAT_182671884);
  uVar18 = (ulonglong)DAT_182671598;
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0xaff7f977)) =
       (uVar33 ^ uVar47) << (((byte)uVar7 ^ 0xe7) & 0x3f) ^ uVar23;
  uVar22 = DAT_182671580;
  uVar25 = uVar48 & 0xff;
  DAT_182671770 = ((uVar48 * 0x100 | uVar25) << 8 | uVar25) << 8 | uVar25;
  uVar28 = CONCAT44(DAT_182671770,DAT_182671770);
  puVar34 = (ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x738df151));
  *puVar34 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0xbffff32b)) ^ uVar23 |
             *(ulonglong *)(lVar3 - (uVar21 ^ 0xbffff0b3)) ^ uVar30) ^ uVar28;
  iVar38 = DAT_1826715f8;
  uVar10 = DAT_1826715b4;
  uVar25 = DAT_1826715a4;
  puVar49 = (ulonglong *)(lVar3 - ((ulonglong)uVar50 ^ 0xfffff9af));
  *(ulonglong *)(lVar3 + -0x8a8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a4 ^ 0xf5a3b607)) ^ uVar40) -
       (*puVar49 ^ uVar28) ^ uVar23;
  uVar51 = CONCAT44(iVar38,iVar38);
  uVar18 = *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x32a28571)) ^ uVar51 ^ uVar28 ^ uVar39 ^
           *(ulonglong *)(lVar3 + -0x6d0);
  *(ulonglong *)(lVar3 + -0x688) = uVar18;
  uVar9 = DAT_1826715b0;
  lVar3 = DAT_182671560;
  bVar17 = (byte)DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 + -0x510) = (uVar18 ^ uVar51) >> ((bVar17 ^ 0xb5) & 0x3f) ^ uVar44;
  lVar4 = DAT_182671560;
  puVar41 = (ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xf5a3b977));
  puVar35 = (ulonglong *)(lVar3 - (uVar36 ^ 0xaff7f607));
  *puVar35 = (uVar51 ^ *puVar41) << ((bVar17 ^ 0x8d) & 0x3f) ^ uVar30;
  lVar3 = DAT_182671560;
  puVar19 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671598 ^ 0xbffffc5b));
  uVar18 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar33 = *(ulonglong *)(lVar4 + -0x510) ^ uVar44 | uVar30 ^ *puVar19;
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar33 ^ uVar18;
  *(ulonglong *)(lVar3 + -0x688) = (uVar39 ^ *puVar16) - uVar33 ^ uVar28;
  local_90 = (byte)uVar14;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x32a28611)) =
       uVar23 ^ *(ulonglong *)(lVar3 + -0x8a8) ^ *(ulonglong *)(lVar3 + -0x1d8);
  lVar3 = DAT_182671560;
  *puVar1 = (*(ulonglong *)(DAT_182671560 + -0x510) ^ uVar46) >> ((local_90 ^ 0x39) & 0x3f) ^ uVar51
  ;
  *puVar16 = (*(ulonglong *)(lVar3 + -0x510) ^ uVar46) << (((byte)uVar15 ^ 0x86) & 0x3f) ^ uVar44;
  bVar27 = (byte)uVar48;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a4 ^ 0xf5a3be27)) =
       0x586e74cb9b0fa932 >> ((*(byte *)(lVar3 - (uVar37 ^ 0xde2b377)) ^ bVar27) & 0x3f);
  lVar3 = DAT_182671560;
  uVar33 = uVar44 ^ *puVar16 | uVar51 ^ *puVar1;
  puVar20 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar33 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x1d8) = (uVar23 ^ *puVar20) - uVar33 ^ uVar51;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar21 ^ 0xbffff68b)) =
       (uVar15 ^ 0xe9360067) << (((byte)uVar43 ^ 0xe7) & 0x1f);
  uVar43 = DAT_1826715a0;
  uVar25 = DAT_182671598;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xddbb04f8)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xddbb0b88)) ^ *(ulonglong *)(lVar3 + -0x510) ^
       uVar18 ^ uVar28 ^ uVar30;
  uVar22 = DAT_1826715a0;
  *puVar16 = (uVar18 ^ *puVar1) >> (((byte)uVar43 ^ 0x71) & 0x3f) ^ uVar47;
  *(ulonglong *)(DAT_182671560 - (uVar52 ^ 0xb2987ba8)) =
       (uVar18 ^ *puVar1) << (((byte)uVar22 ^ 0x4d) & 0x3f) ^ uVar39;
  lVar3 = DAT_182671560;
  *puVar1 = (uVar47 ^ *puVar16 | uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x8a8)) ^ uVar39;
  uVar33 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *puVar16 = (*(ulonglong *)(lVar3 + -0x688) ^ uVar28) - (uVar33 ^ *(ulonglong *)(lVar3 + -0x638)) ^
             uVar47;
  uVar11 = DAT_182671648;
  *(ulonglong *)(lVar3 + -0x8a8) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0xde2b38f)) ^ uVar47) - (uVar39 ^ *puVar35) ^ uVar46;
  *puVar41 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x23cdf739)) ^
             CONCAT44(_DAT_182671868,_DAT_182671868)) +
             (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0x2a0)) ^ uVar46;
  uVar40 = uVar18 ^ uVar51 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x6d0) ^
           *(ulonglong *)(lVar3 + -0x1d8);
  *puVar16 = (uVar39 ^ *puVar1) - (*(ulonglong *)(lVar3 + -0x688) ^ uVar46) ^ uVar28;
  *puVar1 = uVar40;
  bVar24 = (byte)uVar5;
  *puVar34 = (uVar40 ^ uVar23) >> ((bVar24 ^ 0xb3) & 0x3f) ^ uVar30;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x270) = (uVar23 ^ *puVar1) << ((bVar31 ^ 0x6c) & 0x3f) ^ uVar51;
  puVar35 = (ulonglong *)(lVar3 - ((ulonglong)uVar50 ^ 0xfffffd0f));
  *puVar1 = (uVar30 ^ *(ulonglong *)(lVar3 + -0x6d0) | *puVar35 ^ uVar51) ^ uVar18;
  uVar22 = DAT_182671598;
  uVar40 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *puVar49 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0xaff7fd8f)) ^ uVar51) >>
             (((byte)DAT_1826715a4 ^ 0xf1) & 0x3f);
  *(ulonglong *)(lVar3 + -0x270) =
       (uVar51 ^ *(ulonglong *)(lVar3 + -0x1d8)) - (uVar40 ^ *(ulonglong *)(lVar3 + -0x548)) ^
       uVar39;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xde2b0b7)) =
       (CONCAT44(uVar25,DAT_182671580) ^ 0xda74e53638198115) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar21 ^ 0xbffff373)) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xc07b2927)) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x270)) - (uVar18 ^ *puVar1) ^ uVar30;
  uVar26 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar3 + -0x6d0) =
       (CONCAT44(uVar6,uVar22) ^ 0x5008000040000a51) - (*(ulonglong *)(lVar3 + -0x400) ^ uVar26) ^
       uVar28;
  lVar4 = DAT_182671560;
  uVar36 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b0 ^ 0x23cdf251)) ^ uVar28) +
           (uVar18 ^ *puVar1) ^ uVar44;
  *(ulonglong *)(lVar3 + -0x548) = uVar36;
  *(ulonglong *)(lVar4 + -0x270) =
       (*(ulonglong *)(lVar3 + -0x510) ^ uVar30) << (((byte)uVar43 ^ 0x65) & 0x3f);
  puVar20 = (ulonglong *)(lVar4 - (uVar21 ^ 0xbffffc5b));
  *puVar20 = *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x738dff29)) ^ uVar44 ^ uVar36;
  uVar15 = DAT_1826715a4;
  uVar21 = (ulonglong)DAT_182671598;
  uVar42 = *puVar1 >> 0x20 ^ uVar18 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar42;
  uVar36 = (uVar46 ^ *puVar20) << ((bVar31 ^ 0x7c) & 0x3f);
  uVar22 = DAT_1826715a4 ^ 0xf45a1134;
  *(ulonglong *)(lVar4 + -0x510) = uVar36 ^ uVar18;
  *(uint *)(lVar4 + -0x374) = *(int *)(lVar4 - (uVar21 ^ 0xbffff2f7)) * uVar22;
  uVar22 = DAT_1826715b0;
  uVar40 = (ulonglong)DAT_1826715b0;
  *puVar35 = (uVar36 | uVar18 ^ uVar42) ^ uVar44;
  *puVar1 = (uVar46 ^ *(ulonglong *)(lVar4 + -0x8a8)) - (uVar44 ^ *(ulonglong *)(lVar4 + -0x270)) ^
            uVar51;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x10080c8c)) =
       uVar28 ^ uVar30 ^ uVar47 ^ *puVar16 ^ *(ulonglong *)(DAT_182671560 + -0x1d8);
  lVar3 = DAT_182671560;
  puVar20 = (ulonglong *)(DAT_182671560 + -0x6d0);
  uVar42 = (uVar47 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) >> (((byte)uVar22 ^ 0xa1) & 0x3f);
  bVar17 = (byte)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar42 ^ uVar44;
  uVar21 = (uVar47 ^ *puVar20) << ((bVar17 ^ 0x5f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x548) = uVar21 ^ uVar39;
  uVar21 = uVar21 | uVar42;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar21 ^ uVar51;
  *puVar16 = (uVar30 ^ *(ulonglong *)(lVar3 + -0x1d8)) - uVar21 ^ uVar23;
  uVar21 = (ulonglong)DAT_182671598;
  *puVar49 = (CONCAT44(uVar15,uVar7) ^ 0xadbb3aa20acb9a6) -
             (CONCAT44(uVar10,uVar14) ^ 0x8ad2ee1b904df836);
  lVar3 = DAT_182671560;
  uVar42 = uVar23 ^ *puVar1 ^ *(ulonglong *)(DAT_182671560 + -0x8a8);
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar42;
  lVar4 = DAT_182671560;
  uVar37 = (uVar42 ^ uVar23) << 6;
  uVar36 = (*(ulonglong *)(lVar3 - (uVar21 ^ 0xbffff0b3)) ^ uVar23) >> ((bVar24 ^ 0x99) & 0x3f);
  uVar21 = CONCAT44(uVar6,DAT_1826715a0);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar36 ^ uVar39;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar37 ^ uVar28;
  uVar12 = DAT_1826716a4;
  *(ulonglong *)(lVar4 + -0x6d0) = (uVar21 ^ 0x3a85978395d20ee5) - uVar36;
  uVar11 = _DAT_18267161c;
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar36 = uVar36 | uVar37;
  *(ulonglong *)(lVar4 + -0x8a8) = uVar36 ^ uVar42;
  uVar45 = CONCAT44(uVar11,uVar11);
  bVar17 = (byte)DAT_182671580;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671580 ^ 0xddbb0810)) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xc07b2107)) ^ uVar51) - uVar36 ^ uVar45;
  uVar14 = DAT_1826715b4;
  *puVar34 = 0x6059116f3b18642b << ((bVar27 ^ *(byte *)(lVar4 + -0x1d8)) & 0x3f);
  lVar3 = DAT_182671560;
  uVar21 = uVar23 ^ uVar47 ^ uVar44 ^ *puVar16 ^ *(ulonglong *)(DAT_182671560 + -0x270);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar21;
  uVar21 = (uVar21 ^ uVar47) >> (((byte)uVar14 ^ 0x17) & 0x3f) ^ uVar28;
  *puVar1 = uVar21;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x23cdf559)) =
       (CONCAT44(uVar15,uVar5) ^ 0x2bf9e27dd415be04) << ((bVar27 ^ (byte)uVar21) & 0x3f);
  uVar21 = (uVar47 ^ *(ulonglong *)(lVar3 + -0x548)) << ((bVar17 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6d0) = uVar21 ^ CONCAT44(DAT_182671638,DAT_182671638);
  uVar36 = (ulonglong)DAT_18267189c;
  uVar44 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x1008082c)) = (uVar21 | uVar28 ^ *puVar19) ^ uVar33;
  uVar39 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar40 = (uVar23 ^ *puVar16) - (uVar33 ^ *(ulonglong *)(lVar3 + -0x270));
  uVar28 = uVar40 ^ uVar39;
  *(ulonglong *)(lVar3 + -0x1d8) = uVar28;
  uVar14 = DAT_1826715a0;
  uVar21 = (ulonglong)DAT_1826715a0;
  uVar47 = (ulonglong)DAT_1826715a0;
  uVar37 = *(ulonglong *)(lVar3 - (uVar32 ^ 0xc07b2def)) ^ uVar44 ^ uVar45 ^ uVar33 ^
           *(ulonglong *)(lVar3 + -0x270);
  *(ulonglong *)(lVar3 + -0x548) = uVar37;
  uVar37 = (uVar37 >> 0x20 ^ uVar36) >> 0xe;
  *puVar1 = uVar37 ^ uVar26;
  uVar11 = DAT_18267186c;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xfe76f787)) ^ uVar26) + 0xc60ace028705533c;
  uVar12 = DAT_182671880;
  uVar36 = CONCAT44(uVar11,uVar11);
  *puVar16 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0xc07b2db7)) ^ uVar44) <<
             (((byte)uVar50 ^ 0x6d) & 0x3f) ^ uVar36;
  uVar15 = DAT_182671594;
  uVar5 = DAT_182671570;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar37 = *(ulonglong *)(lVar3 - (uVar52 ^ 0xb2987570)) ^ uVar36 | uVar37;
  uVar21 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 + -0x270) = uVar37 ^ uVar29;
  iVar38 = uVar5 + uVar15;
  uVar26 = CONCAT44(DAT_18267177c,DAT_18267177c);
  DAT_182671574 = iVar38;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xf48126dd)) ^ uVar45) - uVar37 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x548) =
       uVar39 ^ uVar42 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x8a8) ^ uVar28;
  uVar12 = DAT_182671858;
  uVar21 = *(ulonglong *)(lVar3 + -0x548);
  *puVar1 = CONCAT44(uVar15,iVar38) ^ CONCAT44(uVar15,uVar15) ^ 0xaa2217d8b03b0886;
  uVar21 = (uVar23 ^ uVar21) >> ((byte)iVar38 & 0x3f);
  *(ulonglong *)(lVar3 + -0x510) = uVar21 ^ uVar30;
  uVar11 = DAT_1826715ec;
  uVar22 = DAT_1826715a8;
  uVar28 = (ulonglong)DAT_1826715a8;
  uVar37 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x4d6789b7)) ^ uVar23) << 0x34;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar37 ^ CONCAT44(uVar12,uVar12);
  uVar37 = uVar37 | uVar21;
  uVar21 = CONCAT44(uVar11,uVar11);
  *puVar1 = uVar37 ^ uVar46;
  uVar5 = DAT_182671584;
  uVar32 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar3 + -0x548) = uVar40 - uVar37 ^ uVar21;
  uVar15 = uVar5 & 3;
  if (uVar15 < 2) {
    if (uVar15 == 0) {
      uVar22 = uVar5;
    }
  }
  else {
    uVar22 = DAT_1826715a4;
    if (uVar15 < 3) {
      uVar22 = DAT_182671598;
    }
  }
  uVar40 = CONCAT44(DAT_182671628,DAT_182671628);
  DAT_18267157c = uVar22;
  *(ulonglong *)(lVar3 + -0x510) =
       *(ulonglong *)(lVar3 - (uVar32 ^ 0xf21d4cd0)) ^ uVar26 ^ uVar46 ^ *puVar1 ^ uVar40;
  *(undefined4 *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0xbffff6e7)) = 0xe686992a;
  uVar23 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xf21d42a8)) =
       (*(ulonglong *)(lVar3 + -0x510) ^ uVar40) >> (((byte)uVar14 ^ 0x66) & 0x3f) ^ uVar23;
  uVar37 = *(ulonglong *)(lVar3 + -0x6d0);
  uVar40 = (*(ulonglong *)(lVar3 + -0x510) ^ uVar40) << 0x27;
  *(ulonglong *)(lVar3 + -0x1d8) = uVar40 ^ CONCAT44(DAT_182671740,DAT_182671740);
  uVar12 = DAT_1826717f0;
  uVar11 = DAT_182671678;
  puVar20 = (ulonglong *)(lVar3 - (uVar28 ^ 0xb3ea704b));
  uVar30 = CONCAT44(DAT_182671650,DAT_182671650);
  *puVar1 = (*puVar20 ^ uVar23 | uVar40) ^ uVar30;
  uVar40 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(lVar3 + -0x510) =
       (uVar26 ^ uVar37) - (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0xc08)) ^ uVar40;
  uVar12 = DAT_1826718cc;
  *puVar20 = (*(ulonglong *)(lVar3 - (uVar47 ^ 0xfe76fb6f)) ^ uVar40) -
             (*(ulonglong *)(lVar3 - (uVar32 ^ 0xf21d43f8)) ^ uVar30) ^ CONCAT44(uVar11,uVar11);
  uVar15 = DAT_1826715a4;
  uVar37 = *puVar1;
  uVar32 = *(ulonglong *)(lVar3 - (uVar32 ^ 0xf21d4b10));
  *(ulonglong *)(lVar3 + -0x6d0) = CONCAT44(uVar8,uVar22) ^ uVar36 ^ *puVar16 ^ 0x5a7ae663f33130df;
  *(ulonglong *)(lVar3 + -0x1d8) =
       (uVar32 ^ CONCAT44(uVar12,uVar12)) + (uVar33 ^ *(ulonglong *)(lVar3 + -0x638)) ^ uVar42;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0xf5a3baef)) =
       (uVar37 ^ uVar30) - (*(ulonglong *)(lVar3 - (uVar47 ^ 0xfe76ffa7)) ^ uVar42) ^
       CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(uint *)(lVar3 + -0x47c) = DAT_1826715a0 ^ 0x523c349f;
  uVar5 = DAT_182671598;
  *puVar16 = *(ulonglong *)(lVar3 - (uVar28 ^ 0xb3ea7a93)) ^ uVar21 ^ uVar29 ^ uVar18 ^
             *(ulonglong *)(lVar3 + -0x548);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xb3ea7e33)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xbffff3d3)) ^ uVar18) >>
       (((byte)uVar15 ^ 0xde) & 0x3f) ^ uVar29;
  *puVar1 = (uVar18 ^ *puVar16) << (((byte)uVar5 ^ 0xbc) & 0x3f) ^
            CONCAT44(DAT_18267169c,DAT_18267169c);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar2 ^ uVar50;
  return;
}



############ FUN_ 180e587e0 size=4216 ############

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

void FUN_180e587e0(void)

{
  uint uVar1;
  char cVar2;
  char cVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  byte bVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte *pbVar19;
  uint *puVar20;
  int iVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  
  uVar25 = DAT_182671738;
  uVar18 = DAT_1826715b0;
  uVar9 = DAT_1826715a0;
  uVar17 = DAT_18267159c;
  uVar27 = DAT_18267158c;
  lVar4 = DAT_182671560;
  uVar22 = (ulonglong)DAT_18267158c;
  uVar33 = (ulonglong)DAT_18267159c;
  iVar21 = DAT_1826715a4 + DAT_182671570;
  uVar34 = DAT_18267159c ^ DAT_182671580;
  uVar37 = DAT_18267158c << 0x10 | DAT_18267158c >> 0x10;
  uVar13 = (ulonglong)DAT_1826715a0;
  uVar28 = DAT_1826715b4;
  if ((DAT_1826715b0 & 1) == 0) {
    uVar28 = DAT_1826715b0;
  }
  uVar29 = DAT_1826715a0 ^ DAT_182671588;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar13 ^ 0x7a366117) + (longlong)DAT_182671ab4);
  uVar8 = *(uint *)(&DAT_182611e80 + DAT_182671ab4) ^ DAT_182671588;
  uVar11 = (ulonglong)DAT_1826715b0;
  DAT_18267156c = uVar28;
  DAT_182671574 = uVar37;
  DAT_182671578 = iVar21;
  DAT_182671594 = uVar34;
  DAT_1826715ac = uVar29;
  *(uint *)(DAT_182671560 - (uVar11 ^ 0x367a1671)) =
       (*(uint *)(DAT_182671560 + -0x328) ^ _DAT_1826715f0) + (DAT_1826715b4 ^ 0x73c147c8) ^
       DAT_182671860;
  uVar30 = *(uint *)(lVar4 + -0x774) ^ DAT_1826715e4;
  uVar14 = *(uint *)(lVar4 + -0x910) ^ DAT_182671860;
  uVar23 = *(uint *)(lVar4 + -0x47c) ^ DAT_182671740;
  *(uint *)(lVar4 + -0x874) = uVar30 << 0x11 ^ DAT_18267185c;
  uVar14 = uVar14 - (*(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0x7a366969)) ^ DAT_18267185c) ^
           DAT_1826718d0;
  *(uint *)(lVar4 + -0x344) = uVar14;
  uVar15 = DAT_182671898;
  uVar14 = uVar14 ^ DAT_1826718d0;
  *(ulonglong *)(lVar4 + -0xa60) = *(ulonglong *)(lVar4 + -0x9f8) ^ 0x367a1b0ddeba0b9a;
  lVar5 = DAT_182671560;
  uVar24 = uVar23 * uVar14 ^ DAT_182671778;
  *(uint *)(lVar4 + -0x3d4) = uVar24;
  uVar24 = uVar24 ^ DAT_182671778;
  uVar23 = uVar30 * 7 ^ DAT_182671690;
  *(uint *)(lVar4 + -0x968) = uVar23;
  uVar14 = DAT_18267157c;
  uVar36 = (ulonglong)DAT_18267157c;
  *(uint *)(lVar5 - (uVar36 ^ 0x300a1426)) = uVar24 + (uVar23 ^ DAT_182671690) ^ uVar15;
  uVar23 = DAT_182671580;
  uVar24 = (*(uint *)(lVar5 + -0x504) ^ uVar15) << (((byte)uVar18 ^ 0x6c) & 0x1f) ^ DAT_182671820;
  *(uint *)(lVar5 + -0x678) = uVar24;
  uVar24 = uVar24 ^ DAT_182671820;
  uVar23 = (*(uint *)(lVar5 + -0x504) ^ uVar15) >> (((byte)uVar23 ^ 0xb3) & 0x1f) ^ DAT_182671660;
  *(uint *)(lVar5 + -0x374) = uVar23;
  *(uint *)(lVar5 + -0x844) = (uVar23 ^ DAT_182671660 | uVar24) ^ uVar25;
  uVar23 = DAT_1826715a4;
  uVar35 = (ulonglong)DAT_1826715a4;
  uVar15 = (*(uint *)(lVar5 - ((ulonglong)uVar17 ^ 0x4f75ce49)) ^ DAT_182671740) +
           (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624) ^ DAT_18267171c;
  *(uint *)(lVar5 + -0x754) = uVar15;
  uVar12 = (ulonglong)DAT_182671588;
  *(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0x4bce9be9)) = uVar15 ^ DAT_1826718b8 ^ DAT_18267171c;
  uVar15 = DAT_1826717fc ^ DAT_1826716fc;
  uVar24 = *(uint *)(lVar5 + -0x844) ^ DAT_1826716fc ^ uVar25;
  *(uint *)(lVar5 + -0x8c) = uVar24;
  uVar16 = DAT_182671848;
  *(uint *)(lVar5 + -0x5cc) =
       *(uint *)(lVar5 - (uVar12 ^ 0xfffffd83)) ^ DAT_182671848 ^ DAT_1826718b8;
  uVar12 = (ulonglong)DAT_182671650;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671570 ^ 0xfffff69b)) = uVar15 ^ uVar24;
  uVar10 = DAT_1826716c8;
  pbVar19 = (byte *)((CONCAT44(uVar27,uVar23) ^ 0x1f61367accac99e7) +
                     (CONCAT44(uVar37,iVar21) ^ 0x367a1f61ccac99f4) * 0x20 +
                    *(longlong *)(lVar5 + -0x8f0));
  *(ulonglong *)(lVar5 + -0xd20) = (ulonglong)pbVar19 ^ uVar12;
  bVar7 = *pbVar19 ^ (byte)DAT_182671694 ^ (byte)uVar25;
  uVar15 = uVar25 & 0xff ^ (uint)bVar7 ^ DAT_182671770;
  *(byte *)(lVar5 + -0x41) = bVar7;
  *(uint *)(lVar5 + -0x328) = uVar15;
  uVar6 = DAT_1826717cc;
  uVar15 = uVar15 ^ DAT_182671770;
  *(byte *)(lVar5 + -0x41) =
       *(byte *)((ulonglong)uVar10 ^ *(ulonglong *)(lVar5 + -0x4f0)) ^ (byte)DAT_1826717c0;
  *(uint *)(lVar5 + -0x910) =
       (*(uint *)(lVar5 - (uVar11 ^ 0x367a1605)) ^ DAT_1826717fc) + (uVar14 ^ 0x39fd37f7) ^
       DAT_1826716a0;
  uVar25 = uVar15 << (((byte)(uVar27 >> 0x10) ^ 0x70) & 0x1f) ^ DAT_182671788;
  *(uint *)(lVar5 + -0x874) = uVar25;
  uVar25 = (*(uint *)(lVar5 - (uVar22 ^ 0x1f613f6a)) ^ DAT_1826716a0) - (uVar25 ^ DAT_182671788) ^
           DAT_1826718c4;
  *(uint *)(lVar5 + -0x344) = uVar25;
  bVar7 = *(byte *)(lVar5 - ((ulonglong)uVar28 ^ 0x7a366795));
  uVar30 = (*(uint *)(lVar5 + -0x5cc) ^ uVar16) * (uVar25 ^ DAT_1826718c4) ^ _DAT_18267188c;
  *(uint *)(lVar5 + -0x774) = uVar30;
  uVar25 = DAT_18267173c;
  uVar30 = uVar30 ^ _DAT_18267188c;
  *(ulonglong *)(lVar5 + -0x628) =
       (CONCAT44(uVar9,iVar21) ^ 0x82ef4f5979a0efaf) >> ((bVar7 ^ (byte)uVar6) & 0x3f);
  uVar9 = DAT_1826716f4;
  *(byte *)(lVar5 + -0x41) =
       *(byte *)((ulonglong)_DAT_1826715e0 ^ *(ulonglong *)(lVar5 + -0xc80)) ^ (byte)DAT_1826717c0;
  uVar15 = (uVar29 ^ 0x85c99ef2) * uVar15 ^ DAT_1826715e8;
  *(uint *)(lVar5 + -0x3d4) = uVar15;
  uVar30 = (uVar15 ^ DAT_1826715e8) + uVar30;
  *(uint *)(lVar5 + -0x968) = uVar30 ^ uVar9;
  *(uint *)(lVar5 + -0x504) = uVar30 * 0x2000 ^ uVar25;
  uVar24 = DAT_182671644;
  uVar9 = DAT_182671580;
  *(uint *)(lVar5 + -0x678) = uVar30 >> (((byte)uVar14 ^ 0x31) & 0x1f) ^ DAT_182671644;
  uVar25 = DAT_182671570;
  *(uint *)(lVar5 + -0x374) =
       (*(uint *)(lVar5 - ((ulonglong)DAT_182671570 ^ 0xfffff987)) ^ uVar24 | uVar30 * 0x2000) ^
       DAT_1826716e4;
  uVar14 = DAT_182671690;
  uVar30 = DAT_182671658;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar29 ^ 0x85c998d8)) =
       CONCAT44(uVar25,uVar25) ^ 0x2ae69a90dd3d10b9;
  uVar15 = DAT_1826715b4;
  *(uint *)(lVar5 - ((ulonglong)uVar27 ^ 0x1f613206)) =
       (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar5 + -0x5cc) ^ uVar16) ^ uVar14;
  *(uint *)(lVar5 - ((ulonglong)uVar9 ^ 0x4bb54f4)) = (uVar15 ^ 0x619bab83) + 0x3070260;
  uVar27 = DAT_182671588;
  *(uint *)(lVar5 + -0x844) = *(uint *)(lVar5 + -0x47c) ^ DAT_182671720 ^ uVar14;
  *(ulonglong *)(lVar5 + -0x110) =
       CONCAT44(uVar37,uVar27) ^ *(ulonglong *)(lVar5 + -0x9f8) ^ 0x5e6d1496be908ba4;
  uVar27 = DAT_1826715bc;
  uVar16 = *(uint *)(lVar5 + -0x374) ^ DAT_1826715bc ^ DAT_1826716e4;
  *(uint *)(lVar5 + -0x27c) = uVar16;
  *(uint *)(lVar5 + -0x8c) = *(uint *)(lVar5 - (uVar33 ^ 0x4f75c271)) ^ uVar30 ^ DAT_182671720;
  uVar11 = (ulonglong)DAT_1826717d4;
  *(uint *)(lVar5 - (uVar35 ^ 0xccac9091)) = uVar16 ^ uVar27 ^ uVar10;
  uVar16 = DAT_1826718b0;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar23 ^ 0xccac94d5)) =
       *(longlong *)(lVar5 + -0x8f0) + 0x1d + (CONCAT44(uVar28,uVar34) ^ 0x7a36611d4bce9995) * 0x20
       ^ uVar11;
  *(byte *)(lVar4 - ((ulonglong)uVar9 ^ 0x4bb53e1)) =
       *(byte *)(uVar11 ^ *(ulonglong *)(lVar4 + -0xd20)) ^ (byte)uVar14 ^ (byte)DAT_182671694;
  cVar2 = (char)DAT_182671570;
  cVar3 = (char)DAT_1826715a4;
  *(uint *)(lVar4 - (uVar13 ^ 0x7a36680f)) = (uint)*(byte *)(lVar4 + -0x41) ^ uVar14 & 0xff ^ uVar16
  ;
  uVar9 = DAT_1826715a0 ^ 0xbd1f3346;
  *(uint *)(lVar4 + -0x874) =
       (uVar10 ^ *(uint *)(lVar4 + -0x964)) + (uVar34 ^ 0x4239bf40) ^ DAT_1826715c4;
  lVar5 = DAT_182671560;
  uVar23 = (*(uint *)(lVar4 + -0x910) ^ uVar16) << ((cVar2 + cVar3 ^ 0xe5U) & 0x1f) ^ DAT_182671804;
  uVar14 = DAT_1826715a4 ^ 0x5ef126e9;
  *(uint *)(DAT_182671560 + -0x344) = uVar23;
  uVar23 = uVar23 ^ DAT_182671804;
  *(uint *)(lVar5 + -0x328) = uVar14 | uVar9;
  *(uint *)(lVar5 - (uVar33 ^ 0x4f75cd41)) =
       (*(uint *)(lVar5 - (uVar35 ^ 0xccac9181)) ^ DAT_1826715c4) - uVar23 ^ DAT_1826718bc;
  uVar23 = DAT_182671828;
  uVar14 = DAT_182671584;
  uVar9 = DAT_182671568;
  uVar35 = (ulonglong)DAT_182671568;
  uVar10 = DAT_1826715b0 ^ 0x367a1f7c;
  *(uint *)(lVar5 + -0x3d4) =
       (*(uint *)(lVar5 + -0x774) ^ DAT_1826718bc) * (*(uint *)(lVar5 + -0x8c) ^ uVar30) ^
       DAT_182671604;
  *(uint *)(lVar5 - ((ulonglong)uVar15 ^ 0x7a366875)) =
       (*(uint *)(lVar5 + -0x910) ^ uVar16) * uVar10 ^ DAT_1826716d0;
  *(uint *)(lVar5 - ((ulonglong)uVar25 ^ 0xfffffafb)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar37 ^ 0x367a1609)) ^ DAT_1826716d0) +
       (*(uint *)(lVar5 + -0x3d4) ^ DAT_182671604) ^ uVar23;
  uVar25 = DAT_1826715a8;
  uVar11 = (ulonglong)DAT_1826715a8;
  uVar32 = DAT_1826715a8 - uVar9;
  DAT_182671598 = uVar32;
  *(uint *)(lVar5 + -0x678) =
       (*(uint *)(lVar5 + -0x504) ^ uVar23) << (((byte)uVar32 ^ 0x3a) & 0x1f) ^ DAT_18267186c;
  *(uint *)(lVar5 - ((ulonglong)uVar25 ^ 0x1f6133b6)) =
       (*(uint *)(lVar5 + -0x504) ^ uVar23) >> (((byte)uVar9 ^ 0x50) & 0x1f) ^ DAT_182671774;
  *(uint *)(lVar5 + -0x754) =
       (*(uint *)(lVar5 + -0x504) ^ uVar23) + (uVar27 ^ *(uint *)(lVar5 + -0x27c));
  uVar31 = (*(uint *)(lVar5 - ((ulonglong)uVar9 ^ 0xaa4e133b)) ^ DAT_18267186c |
           *(uint *)(lVar5 + -0x5cc) ^ DAT_182671774) ^ uVar24;
  uVar16 = uVar14 | DAT_18267159c;
  DAT_182671590 = uVar16;
  *(uint *)(lVar5 + -0x47c) = uVar31;
  uVar10 = DAT_182671810;
  uVar27 = DAT_182671664;
  uVar23 = DAT_182671630;
  lVar4 = DAT_182671560;
  uVar31 = uVar31 ^ DAT_182671810;
  puVar20 = (uint *)(lVar5 - ((ulonglong)uVar16 ^ 0xffffff33));
  uVar15 = (*(uint *)(lVar5 - (uVar33 ^ 0x4f75c9fd)) ^ DAT_182671624) + (uVar30 ^ *puVar20) ^
           DAT_182671664;
  *(uint *)(lVar5 + -0x374) = uVar15;
  *(uint *)(lVar5 + -0x844) = uVar15 ^ DAT_1826715c0 ^ uVar27;
  *(uint *)(lVar5 - ((ulonglong)uVar14 ^ 0xfffefcfb)) = uVar31 ^ uVar24;
  uVar24 = DAT_182671674;
  uVar15 = DAT_18267163c;
  uVar30 = *(uint *)(lVar5 + -0x844) ^ uVar23 ^ DAT_1826715c0;
  uVar26 = DAT_182671674 & 0xff;
  uVar31 = DAT_18267163c ^ uVar10;
  *(uint *)(lVar5 + -0x328) = uVar30;
  *(uint *)(lVar5 + -0x874) = (uVar30 ^ uVar23) + (*(uint *)(lVar5 + -0x374) ^ uVar27);
  uVar12 = (ulonglong)_DAT_1826715dc;
  *(uint *)(lVar5 - ((ulonglong)uVar14 ^ 0xfffef6db)) = uVar31 ^ *(uint *)(lVar5 + -0x964);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0x751325c7)) =
       (CONCAT44(uVar16,uVar25) ^ 0xffffffbf1f61367a) * 0x20 +
       (CONCAT44(uVar25,uVar17) ^ 0x1f61367a4f75ca3d) + *(longlong *)(lVar4 + -0x8f0) ^ uVar12;
  *(byte *)(lVar4 - ((ulonglong)uVar9 ^ 0xaa4e1502)) =
       *(byte *)(uVar12 ^ *(ulonglong *)(lVar4 + -0x4f0)) ^ (byte)uVar24 ^ (byte)DAT_182671694;
  uVar24 = DAT_1826718b4;
  lVar5 = DAT_182671560;
  uVar26 = *(byte *)(lVar4 - (uVar11 ^ 0x1f61363b)) ^ uVar26;
  uVar17 = uVar26 ^ DAT_1826718b4;
  uVar27 = *(uint *)(DAT_182671560 + -0x344);
  *(uint *)(DAT_182671560 + -0x910) =
       (uVar10 ^ *(uint *)(DAT_182671560 + -0x964)) - (DAT_18267159c ^ 0x7b8803e5);
  uVar30 = DAT_182671584 ^ 0xf609d34a;
  *(uint *)(lVar5 + -0x774) = uVar17;
  *(uint *)(lVar5 + -0x3d4) = (uVar15 ^ uVar27) + uVar30 ^ DAT_1826716dc;
  uVar17 = DAT_182671588;
  *(ulonglong *)(lVar5 + -0x2a0) =
       (CONCAT44(uVar18,uVar16) ^ 0xf2925a71919bbba4) <<
       ((byte)*(undefined8 *)(lVar5 + -0x6b8) & 0x3f);
  *(uint *)(lVar5 + -0x968) = uVar26 << (((byte)uVar9 ^ 0x52) & 0x1f) ^ DAT_1826717e0;
  *(byte *)(lVar5 - (uVar22 ^ 0x1f61363b)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x918) ^ (ulonglong)DAT_1826717e4) ^ (byte)DAT_182671694;
  *(uint *)(lVar5 - ((ulonglong)uVar32 ^ 0x7513234b)) =
       (*(uint *)(lVar5 + -0x3d4) ^ DAT_1826716dc) -
       (*(uint *)(lVar5 - ((ulonglong)uVar17 ^ 0xfffff697)) ^ DAT_1826717e0) ^ uVar10;
  *(longlong *)(lVar5 - ((ulonglong)uVar14 ^ 0xfffef0d7)) =
       -0x44e188dc3daffe61 << (((byte)uVar34 ^ 0x81) & 0x3f);
  bVar7 = (byte)DAT_182671730;
  *(uint *)(lVar5 + -0x504) =
       (uVar10 ^ *(uint *)(lVar5 + -0x27c)) * (*(uint *)(lVar5 + -0x328) ^ uVar23) ^ DAT_1826716d8;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xaa4e120b)) =
       *(ulonglong *)(lVar5 + -0x548) >> ((bVar7 ^ *(byte *)(lVar5 + -0x610)) & 0x3f);
  uVar9 = DAT_182671624;
  uVar27 = DAT_1826715f8;
  *(uint *)(lVar5 - ((ulonglong)uVar32 ^ 0x75132663)) =
       (uVar24 ^ *(uint *)(lVar5 + -0x774)) << 3 ^ DAT_1826715f8;
  uVar18 = DAT_182671850;
  uVar14 = DAT_18267180c;
  uVar27 = (uVar27 ^ *(uint *)(lVar5 + -0x754)) + (*(uint *)(lVar5 + -0x504) ^ DAT_1826716d8);
  *(uint *)(lVar5 + -0x678) = uVar27 ^ DAT_182671850;
  bVar7 = (byte)DAT_1826715a0;
  *(uint *)(lVar5 + -0x5cc) = uVar27 << (((byte)uVar34 ^ 0x98) & 0x1f) ^ DAT_1826715fc;
  uVar27 = DAT_18267177c;
  *puVar20 = (uVar18 ^ *(uint *)(lVar5 + -0x678)) >> ((bVar7 ^ 0xc) & 0x1f) ^ DAT_18267177c;
  *(uint *)(lVar5 + -0x47c) =
       (uVar27 ^ *(uint *)(lVar5 + -0x8c) | *(uint *)(lVar5 + -0x5cc) ^ DAT_1826715fc) ^
       DAT_182671688;
  uVar27 = (*(uint *)(lVar5 + -0x3c8) ^ uVar9) + (*(uint *)(lVar5 + -0x328) ^ uVar23) ^
           DAT_1826716d4;
  *(uint *)(lVar5 + -0x844) = uVar27;
  *(uint *)(lVar5 - (uVar36 ^ 0x300a1256)) = uVar27 ^ _DAT_18267161c ^ DAT_1826716d4;
  uVar18 = *(uint *)(lVar5 + -0x47c) ^ DAT_182671854 ^ DAT_182671688;
  *(uint *)(lVar5 + -0x874) = uVar18;
  uVar27 = *(uint *)(lVar5 + -0x374) ^ uVar14 ^ _DAT_18267161c;
  *(uint *)(lVar5 + -0x910) = uVar18 ^ DAT_182671790 ^ DAT_182671854;
  *(uint *)(lVar5 + -0x964) = uVar27;
  uVar18 = DAT_1826716f4;
  uVar27 = DAT_182671570;
  uVar34 = DAT_1826716f4 & 0xff;
  *(ulonglong *)(lVar5 - (uVar13 ^ 0x7a3662ef)) =
       (CONCAT44(uVar37,uVar29) ^ 0x70d914014dc47bd8) >>
       ((byte)*(undefined8 *)(lVar5 + -0x628) & 0x3f);
  uVar13 = (ulonglong)DAT_182671880;
  *(ulonglong *)(lVar5 + -0xc80) =
       (CONCAT44(uVar28,iVar21) ^ 0x7a36611dccac99e7) + *(longlong *)(lVar5 + -0x8f0) ^ uVar13;
  *(ulonglong *)(lVar5 + -0x5c8) =
       (CONCAT44(DAT_182671580,uVar28) ^ 0xa4158ce674632b3a) - *(longlong *)(lVar5 + -0xa60);
  *(byte *)(lVar5 - ((ulonglong)uVar27 ^ 0xffffffbe)) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar33 ^ 0x4f75c6b5)) ^ uVar13) ^ (byte)uVar18 ^
       (byte)DAT_182671694;
  *(uint *)(lVar5 - (uVar33 ^ 0x4f75c971)) = uVar34 ^ *(byte *)(lVar5 + -0x41) ^ uVar9;
  uVar18 = (*(uint *)(lVar5 + -0x910) ^ DAT_182671790) + uVar30 ^ DAT_182671758;
  uVar27 = (*(uint *)(lVar5 + -0x344) ^ uVar9) << (((byte)uVar27 ^ 0xee) & 0x1f) ^ DAT_182671884;
  uVar13 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(uint *)(lVar5 + -0x3d4) = uVar18;
  uVar18 = uVar18 ^ DAT_182671758;
  *(uint *)(lVar5 + -0x968) = uVar27;
  uVar18 = uVar18 - (uVar27 ^ DAT_182671884);
  *(ulonglong *)(lVar5 + -0x80) =
       uVar13 ^ *(ulonglong *)(lVar5 + -0xa80) | CONCAT44(uVar28,uVar25) ^ 0x65144a78afd19985;
  uVar14 = uVar14 ^ *(uint *)(lVar5 + -0x964);
  *(uint *)(lVar5 + -0x27c) = uVar18 ^ DAT_182671818;
  uVar18 = uVar18 * uVar14;
  uVar28 = (*(uint *)(lVar5 + -0x344) ^ uVar9) * (DAT_1826715a4 ^ 0xccac99e6) ^ DAT_182671700;
  uVar27 = uVar18 ^ DAT_1826716b0;
  *(uint *)(lVar5 + -0x504) = uVar28;
  uVar18 = (uVar28 ^ DAT_182671700) + uVar18;
  *(uint *)(lVar5 + -0x774) = uVar27;
  uVar28 = DAT_1826718d4;
  *(uint *)(lVar5 + -0x754) = uVar18 ^ DAT_1826717a4;
  uVar27 = uVar18 << (((byte)uVar17 ^ 0xf2) & 0x1f);
  *(uint *)(lVar5 + -0x678) = uVar27 ^ uVar28;
  uVar18 = uVar18 >> (((byte)uVar29 ^ 0xf3) & 0x1f);
  *(uint *)(lVar5 + -0x5cc) = uVar18 ^ DAT_182671674;
  *(uint *)(lVar5 + -0x8c) = (uVar18 | uVar27) ^ DAT_1826717c4;
  uVar28 = *(uint *)(lVar5 + -0x3c8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar8 * 4) = uVar1 ^ uVar29;
  *(uint *)(lVar5 + -0x328) = (uVar28 ^ uVar9) + uVar14 ^ DAT_1826717b8;
  return;
}



############ FUN_ 180efd860 size=5543 ############

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

void FUN_180efd860(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  uint uVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  int iVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong *puVar37;
  ulonglong *puVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  uint uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  uint uVar57;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  ulonglong *puVar63;
  ulonglong uVar64;
  ulonglong uVar65;
  ulonglong uVar66;
  uint uVar67;
  ulonglong uVar68;
  ulonglong *puVar69;
  ulonglong uVar70;
  ulonglong uVar71;
  ulonglong *puVar72;
  ulonglong uVar73;
  ulonglong uVar74;
  uint uVar75;
  ulonglong *puVar76;
  byte bVar77;
  ulonglong uVar78;
  ulonglong *puVar79;
  byte local_1e0;
  byte local_1d8;
  byte local_1d0;
  byte local_1a0;
  byte local_190;
  byte local_170;
  ulonglong uVar58;
  
  uVar21 = DAT_18267171c;
  uVar14 = DAT_1826715ac;
  uVar13 = DAT_182671594;
  uVar12 = DAT_182671584;
  uVar11 = DAT_18267157c;
  uVar10 = DAT_182671568;
  lVar8 = DAT_182671560;
  uVar78 = (ulonglong)DAT_182671568;
  uVar64 = (ulonglong)DAT_1826715ac;
  uVar47 = (ulonglong)DAT_18267157c;
  uVar75 = DAT_182671584 - DAT_18267157c;
  uVar30 = (ulonglong)DAT_182671594;
  uVar50 = *(uint *)(&DAT_182611e78 + DAT_1826719b0) ^ DAT_182671568;
  uVar67 = DAT_1826715ac & DAT_182671594;
  uVar7 = *(uint *)(&DAT_182611e80 + DAT_1826719b0);
  uVar57 = DAT_182671568 << 0x10 | DAT_182671568 >> 0x10;
  uVar58 = (ulonglong)uVar57;
  uVar20 = DAT_18267171c & DAT_182671688 & 0xff;
  DAT_1826718cc = (((DAT_18267171c & DAT_182671688) << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar40 = CONCAT44(DAT_182671730,DAT_182671730);
  uVar52 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar27 = (ulonglong)DAT_182671594;
  uVar25 = **(ulonglong **)(DAT_182671560 + -0x450) ^ uVar52 ^ uVar40;
  uVar51 = _DAT_182671868 ^ (uint)uVar25;
  DAT_182671598 = uVar67;
  DAT_1826715a4 = uVar57;
  DAT_1826715b4 = uVar75;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar25;
  uVar26 = (ulonglong)uVar67;
  *(ulonglong *)(lVar8 - (uVar58 ^ 0xf5a3b5c7)) =
       *(longlong *)(lVar8 - (uVar27 ^ 0x4d678a3f)) + 0xa0 +
       (CONCAT44(uVar14,uVar67) ^ 0x57d3ff8a45438c8a) * 0xa8;
  _DAT_182671868 = uVar51 & 0xff;
  _DAT_182671868 = ((uVar51 << 8 | _DAT_182671868) << 8 | _DAT_182671868) << 8 | _DAT_182671868;
  uVar31 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar8 + -0x3b8) = **(ulonglong **)(lVar8 + -0xa38) ^ uVar31 ^ uVar40;
  uVar15 = DAT_18267166c;
  lVar9 = DAT_182671560;
  uVar24 = DAT_1826717f4 ^ *(uint *)(lVar8 + -0x3b8);
  uVar20 = uVar24 & 0xff;
  DAT_1826717f4 = ((uVar24 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar32 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  puVar1 = (ulonglong *)(lVar8 + -0xa0);
  uVar68 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar53 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x510);
  *puVar1 = (uVar68 ^ *(ulonglong *)(lVar8 + -0xa60)) - (uVar32 ^ *(ulonglong *)(lVar8 + -0xc08)) ^
            uVar53;
  uVar33 = CONCAT44(uVar15,uVar15);
  uVar74 = CONCAT44(DAT_182671844,DAT_182671844);
  uVar48 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar9 + -0xa60) =
       (*(ulonglong *)(lVar9 + -0x610) ^ uVar74) + (*(ulonglong *)(lVar9 + -0x638) ^ uVar33) ^
       uVar48;
  uVar21 = DAT_182671858 & 0xff;
  DAT_182671858 = ((DAT_182671858 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar34 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar59 = CONCAT44(DAT_182671858,DAT_182671858);
  *puVar2 = (uVar34 ^ *(ulonglong *)(lVar9 + -0x5c8)) -
            (*(ulonglong *)(lVar9 - (uVar47 ^ 0xbf7acc9f)) ^ uVar48) ^ uVar59;
  uVar15 = DAT_1826717fc;
  lVar8 = DAT_182671560;
  uVar22 = DAT_182671688 & 0xff;
  uVar45 = DAT_182671688 << 8;
  DAT_182671688 = ((uVar45 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar49 = (ulonglong)DAT_182671688;
  uVar35 = CONCAT44(DAT_182671648,DAT_182671648);
  uVar41 = CONCAT44(DAT_182671688,DAT_182671688);
  uVar27 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0xbf7ac7ef)) ^ uVar52) +
           (*(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar35);
  uVar25 = (ulonglong)uVar75;
  puVar3 = (ulonglong *)(DAT_182671560 + -0x688);
  puVar36 = (ulonglong *)(DAT_182671560 - (uVar25 ^ 0x32a28ba9));
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar27 ^ uVar41;
  uVar54 = CONCAT44(uVar15,uVar15);
  puVar69 = (ulonglong *)(lVar8 - (uVar30 ^ 0x4d678d27));
  *puVar69 = (*puVar36 ^ uVar54) - uVar27 ^ uVar41;
  uVar40 = (ulonglong)uVar12;
  puVar4 = (ulonglong *)(lVar8 + -0x8a8);
  uVar27 = (CONCAT44(uVar12,uVar10) ^ 0xde2b5ff40000a4d) + *puVar3;
  uVar55 = uVar27 ^ uVar59;
  uVar20 = DAT_182671650 ^ (uint)uVar55;
  *puVar4 = uVar55;
  uVar21 = uVar20 & 0xff;
  DAT_182671650 = ((uVar20 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar46 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar42 = CONCAT44(DAT_182671650,DAT_182671650);
  bVar77 = (byte)uVar10;
  local_1d0 = (byte)uVar14;
  *(ulonglong *)(DAT_182671560 - (uVar47 ^ 0xbf7ace57)) =
       uVar27 - (*(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x45438eca)) ^ uVar46) ^ uVar53 ^ uVar42 ^
       *puVar1;
  lVar8 = DAT_182671560;
  uVar27 = *puVar4;
  uVar60 = (*puVar4 ^ uVar42) >> ((local_1d0 ^ 0xaa) & 0x3f);
  *puVar3 = uVar60 ^ uVar48;
  uVar27 = (uVar27 ^ uVar42) << ((bVar77 ^ 0x83) & 0x3f);
  *(ulonglong *)(lVar8 + -0x748) = uVar27 ^ uVar34;
  uVar60 = uVar60 | uVar27;
  *puVar4 = uVar60 ^ uVar41;
  puVar5 = (ulonglong *)(lVar8 + -0x1d8);
  uVar60 = (*(ulonglong *)(lVar8 - (uVar25 ^ 0x32a283a1)) ^ uVar53) - uVar60;
  uVar43 = uVar60 ^ uVar31;
  *(ulonglong *)(lVar8 + -0x748) = uVar43;
  uVar15 = DAT_182671898;
  uVar27 = *(ulonglong *)(lVar8 - (uVar40 ^ 0xf21d4f10)) ^ uVar59 ^ uVar48 ^ *puVar5 ^ uVar41;
  *puVar3 = uVar27;
  uVar61 = CONCAT44(uVar15,uVar15);
  *puVar1 = (uVar48 ^ uVar27) >> ((bVar77 ^ 0x83) & 0x3f) ^ uVar61;
  uVar27 = (uVar48 ^ uVar27) << 0x20;
  *puVar2 = uVar27 ^ uVar31;
  uVar27 = *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x4d678c5f)) ^ uVar61 | uVar27;
  uVar55 = uVar27 ^ uVar53;
  *puVar3 = uVar55;
  uVar65 = (*puVar5 ^ uVar41) - uVar27 ^ uVar35;
  *puVar1 = uVar65;
  uVar56 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *puVar5 = uVar53 ^ uVar31 ^ uVar43 ^ uVar56 ^ uVar55;
  lVar8 = DAT_182671560;
  uVar43 = CONCAT44(DAT_182671764,DAT_182671764);
  *puVar3 = (*(ulonglong *)(DAT_182671560 - (uVar58 ^ 0xf5a3be27)) ^ uVar56) >>
            ((local_1d0 ^ 0xb0) & 0x3f) ^ uVar46;
  puVar6 = (ulonglong *)(lVar8 + -0x548);
  local_1a0 = (byte)uVar12;
  uVar27 = (*puVar69 ^ uVar56) << ((local_1a0 ^ 6) & 0x3f);
  *puVar6 = uVar27 ^ uVar43;
  uVar20 = DAT_182671590;
  uVar21 = DAT_182671588;
  uVar55 = (ulonglong)DAT_182671590;
  uVar62 = (ulonglong)DAT_182671588;
  uVar23 = DAT_182671588 | DAT_182671590;
  uVar73 = (ulonglong)uVar23;
  uVar27 = *(ulonglong *)(lVar8 - (uVar26 ^ 0x45438a02)) ^ uVar46 | uVar27;
  uVar70 = CONCAT44(uVar23,DAT_182671590);
  local_1e0 = (byte)uVar51;
  DAT_18267158c = uVar23;
  *puVar5 = uVar27 ^ uVar34;
  *puVar3 = (uVar70 ^ 0xf1dd4281c17307c3) >> ((local_1e0 ^ *(byte *)puVar2) & 0x3f);
  uVar16 = DAT_1826716bc;
  *puVar6 = uVar60 - uVar27 ^ uVar54;
  lVar8 = DAT_182671560;
  uVar44 = CONCAT44(uVar16,uVar16);
  puVar37 = (ulonglong *)(DAT_182671560 - (uVar62 ^ 0xa3f5f717));
  puVar28 = (ulonglong *)(DAT_182671560 - (uVar73 ^ 0xaff7faef));
  *puVar28 = *puVar37 ^ uVar44 ^ uVar41 ^ uVar35 ^ uVar65;
  *puVar4 = (*puVar2 ^ uVar44) >> (((byte)uVar20 ^ 0xe9) & 0x3f) ^ uVar74;
  iVar17 = DAT_18267177c;
  uVar24 = DAT_182671670;
  uVar60 = (ulonglong)DAT_182671670;
  uVar27 = (*puVar2 ^ uVar44) << (((byte)uVar23 ^ 0xd5) & 0x3f);
  *(undefined8 *)(lVar8 + -0x748) = 0x86acd6ab362147ea;
  uVar15 = DAT_1826716a4;
  *puVar3 = uVar27 ^ CONCAT44(DAT_1826716a4,DAT_1826716a4);
  puVar29 = (ulonglong *)(lVar8 - (uVar78 ^ 0xbffff32b));
  *(ulonglong *)(lVar8 + -0x748) =
       (uVar70 ^ 0x2cc52a3c3871b710) << (((byte)*puVar29 ^ (byte)uVar15) & 0x3f);
  uVar71 = CONCAT44(uVar24,uVar24);
  uVar51 = iVar17 * uVar24 & 0xff;
  DAT_182671638 = ((iVar17 * uVar24 * 0x100 | uVar51) << 8 | uVar51) << 8 | uVar51;
  uVar65 = CONCAT44(DAT_182671638,DAT_182671638);
  puVar38 = (ulonglong *)(lVar8 - (uVar64 ^ 0x57d3f8c2));
  *(ulonglong *)(lVar8 + -0x748) =
       (*(ulonglong *)(lVar8 - (uVar58 ^ 0xf5a3b757)) ^ uVar74 | uVar27) ^ uVar65;
  uVar70 = CONCAT44(iVar17,iVar17);
  *puVar4 = (uVar35 ^ *puVar1) - (*puVar38 ^ uVar65) ^ uVar70;
  uVar66 = *puVar38 ^ uVar71 ^ uVar65 ^ uVar54 ^ *puVar6;
  *puVar3 = uVar66;
  *puVar1 = 0x4385c118082611a9 >> ((*(byte *)puVar2 ^ (byte)uVar16) & 0x3f);
  local_1d8 = (byte)(uVar10 >> 0x10);
  uVar74 = (*(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x4d678a77)) >> 0x20 ^ uVar60) >> 0xe;
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar74 ^ uVar65;
  uVar27 = *puVar5;
  uVar60 = (uVar71 ^ uVar66) << ((local_1d8 ^ 0xed) & 0x3f);
  *puVar2 = uVar60 ^ uVar71;
  uVar60 = uVar60 | uVar74;
  *puVar1 = uVar60 ^ uVar65;
  lVar8 = DAT_182671560;
  *puVar3 = (uVar54 ^ *puVar6) - uVar60 ^ uVar52;
  puVar79 = (ulonglong *)(lVar8 - (uVar73 ^ 0xaff7f757));
  *(ulonglong *)(lVar8 - ((ulonglong)uVar20 ^ 0xde2b0ef)) =
       uVar34 ^ uVar27 ^ *puVar79 ^ uVar70 ^ uVar41;
  *(ulonglong *)(lVar8 + -0x748) =
       (uVar49 << 0x14 | (ulonglong)(((uVar45 & 0xffff | uVar22) << 8 | uVar22) >> 4)) ^
       *puVar2 >> 0xc ^ uVar68;
  bVar19 = (byte)uVar75;
  uVar27 = (*puVar2 ^ uVar41) << ((bVar19 ^ 0x35) & 0x3f);
  *puVar6 = uVar27 ^ uVar46;
  iVar18 = DAT_18267181c;
  iVar17 = DAT_1826716e8;
  lVar8 = DAT_182671560;
  uVar27 = *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x45438bc2)) ^ uVar68 | uVar27;
  puVar76 = (ulonglong *)(DAT_182671560 - (uVar26 ^ 0x45438422));
  *puVar5 = uVar27 ^ uVar70;
  uVar60 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar8 - (uVar58 ^ 0xf5a3baef)) = (*puVar76 ^ uVar70) - uVar27 ^ uVar60;
  *(ulonglong *)(lVar8 - (uVar62 ^ 0xa3f5faf7)) =
       uVar68 ^ *(ulonglong *)(lVar8 + -0x748) | *puVar2 ^ uVar60;
  lVar9 = DAT_182671560;
  uVar24 = iVar18 - iVar17 & 0xff;
  DAT_1826716b4 = (((iVar18 - iVar17) * 0x100 | uVar24) << 8 | uVar24) << 8 | uVar24;
  uVar66 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  puVar38 = (ulonglong *)(lVar8 - ((ulonglong)uVar20 ^ 0xde2b427));
  uVar70 = *(ulonglong *)(lVar8 - (uVar47 ^ 0xbf7ac077)) ^ uVar52 ^ *puVar38 ^ uVar66 ^ uVar70;
  *puVar4 = uVar70;
  puVar39 = (ulonglong *)(lVar9 - (uVar40 ^ 0xf21d42a8));
  uVar49 = CONCAT44(iVar18,iVar18);
  uVar74 = CONCAT44(iVar17,iVar17);
  uVar34 = (uVar66 ^ *puVar39) >> (((byte)uVar11 ^ 0xe6) & 0x3f);
  *puVar6 = uVar34 ^ uVar49;
  uVar27 = (uVar66 ^ uVar70) << ((local_1d0 ^ 0xad) & 0x3f);
  puVar63 = (ulonglong *)(DAT_182671560 - (uVar73 ^ 0xaff7fe27));
  *(ulonglong *)(DAT_182671560 + -0x748) = uVar27 ^ uVar74;
  lVar8 = DAT_182671560;
  *puVar63 = (uVar34 | uVar27) ^ uVar74;
  uVar73 = CONCAT44(DAT_182671768,DAT_182671768);
  uVar27 = *puVar5;
  *puVar4 = (*(ulonglong *)(lVar8 - (uVar40 ^ 0xf21d4c88)) ^ uVar52) -
            (*(ulonglong *)(lVar8 + -0x400) ^ uVar73) ^ uVar49;
  *puVar6 = (*puVar36 ^ uVar49) - (uVar27 ^ uVar74) ^ uVar66;
  uVar34 = (uVar32 ^ *(ulonglong *)(lVar8 + -0xc08)) + (uVar31 ^ *(ulonglong *)(lVar8 + -0x3b8));
  uVar27 = *puVar5;
  *(ulonglong *)(lVar8 + -0x748) = uVar34 ^ uVar66;
  *puVar3 = (uVar27 ^ uVar74) - uVar34 ^ uVar74;
  uVar15 = DAT_182671640;
  local_190 = (byte)uVar67;
  uVar27 = *puVar2 ^ uVar49 ^ uVar60 ^ uVar65 ^ *puVar1;
  *puVar4 = uVar27;
  uVar34 = CONCAT44(uVar15,uVar15);
  *puVar5 = (uVar27 ^ uVar49) >> ((local_190 ^ 0xab) & 0x3f) ^ uVar34;
  local_170 = (byte)uVar21;
  *(ulonglong *)(DAT_182671560 - (uVar58 ^ 0xf5a3bf5f)) =
       CONCAT44(uVar20,uVar10) ^ CONCAT44(uVar12,uVar14) ^ 0xc4e5c172e63bdaed;
  lVar8 = DAT_182671560;
  *puVar1 = (uVar49 ^ *puVar4) << ((local_170 ^ 0xa0) & 0x3f) ^ uVar71;
  uVar15 = DAT_1826717a4;
  puVar72 = (ulonglong *)(lVar8 - (uVar55 ^ 0xde2b55f));
  *puVar79 = (*puVar63 ^ uVar34 | *puVar72 ^ uVar71) ^ uVar56;
  lVar8 = DAT_182671560;
  uVar65 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x32a282d9)) =
       (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x32a28611)) ^ uVar60) -
       (uVar48 ^ *(ulonglong *)(DAT_182671560 + -0xa60)) ^ uVar65;
  lVar9 = DAT_182671560;
  *puVar1 = (*puVar5 ^ uVar65) - (*puVar76 ^ uVar56) ^ uVar33;
  uVar27 = (CONCAT44(uVar13,uVar57) ^ 0xb29873000a5c4010) -
           (*(ulonglong *)(lVar8 - (uVar40 ^ 0xf21d48a0)) ^ uVar35);
  *puVar2 = uVar27 ^ uVar35;
  puVar36 = (ulonglong *)(lVar9 + -0x9f8);
  *(ulonglong *)(lVar9 - (uVar30 ^ 0x4d678507)) = (*puVar4 ^ uVar56) + uVar27 ^ uVar32;
  *puVar28 = uVar65 ^ *puVar69 | uVar32 ^ *puVar36;
  uVar40 = uVar33 ^ uVar32 ^ uVar66 ^ *puVar36 ^ *puVar6;
  *puVar4 = uVar40;
  uVar27 = (uVar33 ^ uVar40) >> (((byte)uVar20 ^ 0xfa) & 0x3f);
  *puVar5 = (CONCAT44(uVar11,uVar11) ^ 0x4b611f4e942f04a5) +
            (CONCAT44(uVar12,uVar14) ^ 0x8769faad76d860db);
  *puVar2 = uVar27 ^ uVar35;
  *puVar36 = (uVar33 ^ uVar40) << ((local_190 ^ 0xb1) & 0x3f) ^ uVar61;
  uVar27 = *(ulonglong *)(DAT_182671560 - (uVar55 ^ 0xde2bc07)) ^ uVar61 | uVar27;
  *puVar5 = uVar27 ^ uVar56;
  uVar55 = (uVar66 ^ *puVar6) - uVar27 ^ uVar49;
  *puVar4 = uVar55;
  uVar27 = uVar33 ^ uVar74 ^ *puVar29 ^ uVar71 ^ *puVar1;
  uVar40 = (uVar27 ^ uVar71) >> ((local_170 ^ 0x9a) & 0x3f);
  *puVar2 = uVar27;
  lVar8 = DAT_182671560;
  *puVar6 = (uVar27 ^ uVar71) << (((byte)uVar23 ^ 0xe4) & 0x3f) ^ uVar59;
  *puVar36 = uVar40 ^ uVar52;
  uVar27 = (*(ulonglong *)(lVar8 - (uVar25 ^ 0x32a28649)) ^ uVar59 | uVar40) ^ uVar41;
  *puVar3 = uVar27;
  *puVar2 = uVar40 << (((byte)uVar13 ^ 0xcd) & 0x3f);
  *puVar6 = (uVar33 ^ *puVar1) - (*(ulonglong *)(DAT_182671560 - (uVar62 ^ 0xa3f5f937)) ^ uVar41) ^
            uVar44;
  uVar15 = DAT_18267169c;
  uVar27 = uVar73 ^ uVar49 ^ uVar55 ^ uVar41 ^ uVar27;
  *puVar36 = uVar27;
  uVar40 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 - (uVar47 ^ 0xbf7ac3ef)) =
       (uVar27 ^ uVar73) >> ((local_1d8 ^ 0xe8) & 0x3f) ^ uVar40;
  lVar8 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x45438c2a)) =
       (*(ulonglong *)(DAT_182671560 - (uVar78 ^ 0xbffffc5b)) ^ uVar73) <<
       ((local_1a0 ^ 0x29) & 0x3f) ^ uVar42;
  *(ulonglong *)(lVar8 - (uVar25 ^ 0x32a28589)) = (*puVar72 ^ uVar42 | uVar40 ^ *puVar2) ^ uVar31;
  uVar25 = CONCAT44(DAT_182671790,DAT_182671790);
  *puVar36 = (uVar49 ^ *puVar37) - (*(ulonglong *)(lVar8 - (uVar64 ^ 0x57d3f902)) ^ uVar31) ^ uVar25
  ;
  uVar27 = *puVar5 ^ uVar44 ^ uVar56 ^ uVar46 ^ *puVar6;
  *puVar2 = uVar27;
  *puVar1 = (uVar27 ^ uVar46) >> ((bVar19 ^ 0x29) & 0x3f) ^ uVar31;
  uVar27 = *puVar6;
  *puVar4 = (*(ulonglong *)(DAT_182671560 - (uVar64 ^ 0x57d3fa9a)) ^ uVar46) <<
            ((bVar19 ^ 0x19) & 0x3f) ^ uVar74;
  puVar28 = (ulonglong *)(DAT_182671560 - (uVar47 ^ 0xbf7ac65f));
  uVar40 = uVar74 ^ *puVar39 | uVar31 ^ *puVar28;
  *puVar5 = uVar40 ^ uVar43;
  *puVar2 = (CONCAT44(uVar20,uVar21) ^ 0xdb599adfeb970f9f) >> ((local_1d8 ^ 0xe3) & 0x3f);
  *puVar28 = (uVar44 ^ uVar27) - uVar40 ^ uVar54;
  lVar8 = DAT_182671560;
  *puVar4 = 0xb6d816e49d24d5f3 - (uVar54 ^ *puVar1);
  puVar28 = (ulonglong *)(lVar8 - (uVar64 ^ 0x57d3fac2));
  uVar43 = *puVar38 ^ uVar25 ^ uVar34 ^ *puVar36 ^ uVar43;
  *puVar2 = uVar43;
  *puVar28 = (uVar43 ^ uVar34) >> ((bVar19 ^ 0x35) & 0x3f) ^ uVar46;
  uVar27 = (*puVar2 ^ uVar34) << ((bVar77 ^ 0xaf) & 0x3f);
  *puVar4 = uVar27 ^ uVar53;
  uVar27 = *puVar28 ^ uVar46 | uVar27;
  *puVar5 = uVar27 ^ uVar68;
  *puVar4 = (uVar25 ^ *puVar36) - uVar27 ^ uVar41;
  *puVar2 = uVar31 ^ uVar49 ^ uVar54 ^ *puVar3 ^ *puVar1;
  *puVar6 = CONCAT44(uVar57,uVar23) ^ 0x6dbc73d68dcbaf0b |
            CONCAT44(uVar11,uVar12) ^ 0x5edc0eb12feb3ec4;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar7 ^ uVar57) * 4) = uVar50;
  return;
}



############ FUN_ 180f395d0 size=4801 ############

void FUN_180f395d0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  byte bVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  ulonglong *puVar17;
  byte *pbVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  byte local_58;
  
  uVar19 = DAT_1826717e8;
  iVar6 = DAT_18267159c;
  uVar5 = DAT_182671598;
  uVar4 = DAT_18267158c;
  uVar31 = DAT_182671574;
  uVar3 = DAT_182671568;
  lVar1 = DAT_182671560;
  uVar33 = DAT_18267159c * DAT_1826715a0;
  uVar13 = DAT_182671574 & 3;
  uVar27 = (ulonglong)DAT_182671598;
  uVar28 = DAT_18267158c & DAT_182671598;
  if (uVar13 < 2) {
    uVar25 = DAT_182671570;
    if (uVar13 == 0) {
      uVar25 = DAT_182671574;
    }
  }
  else {
    uVar25 = DAT_182671590;
    if (uVar13 < 3) {
      uVar25 = DAT_18267156c;
    }
  }
  uVar30 = (ulonglong)DAT_182671568;
  uVar14 = *(uint *)(&DAT_182611e78 + DAT_182671a6c) ^ DAT_182671568;
  uVar15 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_182671574 ^ 0x69da7127) + (longlong)DAT_182671a6c) ^
           DAT_182671570;
  uVar21 = (ulonglong)DAT_1826717d4;
  uVar13 = DAT_1826717e8 & 0xff;
  DAT_182671580 = uVar25;
  DAT_182671594 = uVar33;
  DAT_1826715a8 = uVar28;
  *(ulonglong *)(DAT_182671560 + -0x8f8) =
       (CONCAT44(DAT_18267156c,DAT_182671590) ^ 0xf3419042fe75efbe) +
       *(longlong *)(DAT_182671560 + -3000) ^ uVar21;
  *(byte *)(lVar1 + -0xd31) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0xfe75e700)) ^ uVar21) ^ (byte)uVar19 ^
       (byte)DAT_1826717c0;
  uVar7 = DAT_1826715bc;
  *(ulonglong *)(lVar1 + -0xa88) =
       (CONCAT44(DAT_1826718d0,DAT_1826718d0) ^ *(ulonglong *)(lVar1 + -0x898)) >>
       (((byte)uVar4 ^ 0x14) & 0x3f);
  uVar20 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0x8119cc2b)) =
       (ulonglong)uVar13 ^ (ulonglong)*(byte *)(lVar1 + -0xd31) ^ uVar20;
  uVar7 = DAT_1826716c8;
  uVar21 = (uVar20 ^ *(ulonglong *)(lVar1 + -0x318)) << (((byte)uVar4 ^ 3) & 0x3f);
  uVar32 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar21 ^ CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar21 = (uVar32 ^ *(ulonglong *)(lVar1 + -0x270)) + uVar21;
  *(ulonglong *)(lVar1 + -0xa80) = uVar21 ^ CONCAT44(uVar7,uVar7);
  uVar28 = DAT_1826715a0;
  lVar2 = DAT_182671560;
  uVar22 = (ulonglong)DAT_1826715a0;
  uVar32 = (ulonglong)DAT_1826716b8;
  *(uint *)(lVar1 + -0x5cc) = *(int *)(lVar1 + -0x754) - (uVar33 ^ 0x26b6625f);
  bVar12 = (byte)DAT_1826716f8;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xc80) =
       *(longlong *)(lVar2 - (uVar22 ^ 0xd80d7da6)) + (CONCAT44(uVar31,iVar6) ^ 0x69da7137e048504f)
       ^ uVar32;
  puVar34 = (ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0xfe75e378));
  *(byte *)(lVar1 + -0x919) = *(byte *)(uVar32 ^ *puVar34) ^ (byte)DAT_1826717c0 ^ bVar12;
  uVar7 = DAT_1826718c8;
  uVar26 = (ulonglong)(*(byte *)(lVar1 + -0x919) ^ bVar12);
  *(ulonglong *)(lVar1 + -0x548) = (ulonglong)(uVar19 >> 9) ^ *(ulonglong *)(lVar1 + -0x5c8) >> 0x29
  ;
  uVar8 = DAT_1826716d8;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0x3b8) = uVar26 ^ uVar24;
  uVar7 = DAT_182671640;
  uVar26 = uVar26 << 0x38;
  *(ulonglong *)(lVar1 + -0x898) = uVar26 ^ CONCAT44(uVar8,uVar8);
  uVar22 = CONCAT44(uVar7,uVar7);
  uVar29 = (ulonglong)DAT_1826715d4;
  uVar32 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0xd80d7c96)) = uVar21 + uVar26 ^ uVar22;
  uVar7 = DAT_1826717c8;
  puVar17 = (ulonglong *)(*(longlong *)(lVar1 + -0x880) + 0x40);
  *(ulonglong *)(lVar1 + -0xcc8) = (ulonglong)puVar17 ^ uVar32;
  bVar12 = (byte)DAT_182671860;
  uVar26 = CONCAT44(uVar7,uVar7);
  *puVar17 = *(ulonglong *)(lVar1 + -0xa88) ^ uVar26 ^ uVar22;
  uVar10 = DAT_1826718a8;
  uVar21 = (ulonglong)DAT_182671574;
  uVar32 = (ulonglong)DAT_1826718a8;
  *(ulonglong *)(lVar1 + -0x5b8) = *(longlong *)(lVar1 + -3000) + 0x48U ^ uVar29;
  uVar7 = DAT_18267176c;
  bVar16 = (byte)DAT_1826717c0;
  bVar11 = *(byte *)(*(ulonglong *)(lVar1 - (uVar21 ^ 0x69da748f)) ^ uVar29) ^ bVar16;
  *(byte *)(lVar1 + -0x209) = bVar11 ^ bVar12;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0x318) = bVar11 ^ uVar29;
  *(ulonglong *)(lVar1 - (uVar27 ^ 0xfffff6ff)) =
       *(longlong *)(lVar1 - ((ulonglong)uVar3 ^ 0x503eb7e0)) +
       (CONCAT44(iVar6,DAT_18267156c) ^ 0xe0485008f341900b) ^ uVar32;
  bVar12 = (byte)DAT_18267186c;
  *(byte *)(lVar1 + -0x5e9) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x900) ^ uVar32) ^ bVar16 ^ (byte)DAT_18267186c;
  uVar7 = DAT_18267167c;
  *(ulonglong *)(lVar1 + -0x270) =
       *(ulonglong *)(lVar1 - ((ulonglong)DAT_18267158c ^ 0x8119c5bb)) ^ uVar22 |
       *(ulonglong *)(lVar1 + -0x3b8) ^ uVar24;
  uVar32 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0x6b8) = (*(byte *)(lVar1 + -0x5e9) ^ bVar12) ^ uVar32;
  uVar13 = DAT_182671594;
  uVar21 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671594 ^ 0x6dc51538)) =
       CONCAT44(uVar25,uVar28) ^ 0x71a23749688e882b;
  uVar7 = DAT_182671784;
  uVar21 = (*(ulonglong *)(lVar1 - (uVar21 ^ 0xfe75e940)) ^ uVar32) << 8;
  *(ulonglong *)(lVar1 + -0x548) = uVar21 ^ CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar4 = DAT_182671630;
  lVar1 = DAT_182671560;
  uVar21 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar3 ^ 0x503ebf40)) ^ uVar29 | uVar21;
  pbVar18 = (byte *)((CONCAT44(DAT_182671590,DAT_1826715a8) ^ 0xfe75eff88119cf79) +
                    *(longlong *)(DAT_182671560 + -3000));
  uVar19 = DAT_182671630 & 0xff;
  *(ulonglong *)(DAT_182671560 + -0x8f8) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182671748;
  *(ulonglong *)(lVar1 + -0xa80) = uVar21 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671738;
  bVar12 = *pbVar18 ^ (byte)DAT_1826717c0 ^ (byte)uVar4;
  bVar11 = (byte)DAT_182671570;
  *(byte *)(lVar1 + -0x642) = bVar12;
  uVar24 = (ulonglong)bVar12 ^ (ulonglong)uVar19;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar24 ^ CONCAT44(uVar7,uVar7);
  lVar1 = DAT_182671560;
  uVar24 = uVar24 << ((bVar11 ^ 0xda) & 0x3f);
  puVar17 = (ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar24 ^ CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar1 + -0x3b8) = (*puVar17 ^ uVar32) << (((byte)uVar28 ^ 0x3e) & 0x3f);
  bVar12 = (byte)DAT_182671634;
  uVar33 = DAT_1826715a8;
  uVar19 = DAT_18267158c;
  uVar32 = (ulonglong)DAT_1826718b0;
  uVar22 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar1 - (uVar27 ^ 0xfffffd8f)) = (uVar21 | uVar24) ^ uVar22;
  *puVar34 = (CONCAT44(uVar33,uVar19) ^ 0x8119cf338119cf78) + *(longlong *)(lVar1 + -3000) ^ uVar32;
  uVar4 = DAT_182671570;
  uVar24 = (ulonglong)DAT_182671570;
  *(byte *)(lVar1 + -0x345) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar13 ^ 0x6dc51c70)) ^ uVar32) ^
       (byte)DAT_1826717c0 ^ bVar12;
  *(ulonglong *)(lVar1 + -0x5c8) =
       (CONCAT44(iVar6,uVar13) ^ 0xec8d74dad96e436e) -
       (CONCAT44(uVar5,DAT_182671590) ^ 0x5a11c8145648bf1c);
  uVar7 = DAT_1826716e4;
  uVar21 = (ulonglong)(bVar12 ^ *(byte *)(lVar1 + -0x345));
  *(ulonglong *)(lVar1 + -0x318) = uVar21 ^ CONCAT44(DAT_1826718d4,DAT_1826718d4);
  uVar27 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x40218a82)) = uVar21 << (((byte)uVar19 ^ 0x2b) & 0x3f) ^ uVar27;
  bVar12 = (byte)DAT_18267180c;
  uVar19 = DAT_18267158c;
  uVar29 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar21 = (ulonglong)DAT_18267158c;
  uVar24 = (ulonglong)DAT_1826716c4;
  *(ulonglong *)(lVar1 - (uVar30 ^ 0x503eb4c0)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar33 ^ 0x8119ca7b)) ^ uVar27 |
       uVar22 ^ *(ulonglong *)(lVar1 + -0x270)) ^ uVar29;
  uVar7 = DAT_1826717c0;
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x8119ca8b)) =
       (CONCAT44(uVar31,DAT_182671590) ^ 0x69da7137fe75efb4) + *(longlong *)(lVar1 + -3000) ^ uVar24
  ;
  *(byte *)(lVar1 - (uVar30 ^ 0x503ebc69)) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x5b8) ^ uVar24) ^ (byte)uVar7 ^ bVar12;
  lVar2 = DAT_182671560;
  uVar27 = (ulonglong)(*(byte *)(lVar1 + -0x31) ^ bVar12);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar27 ^ CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar19 ^ 0x8119cc8b)) = uVar27 << 0x20 ^ uVar20;
  uVar27 = (ulonglong)DAT_182671714;
  uVar22 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar2 + -0xa80) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x3b8) | uVar29 ^ *(ulonglong *)(lVar2 + -0x898)) ^ uVar22;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x402186ca)) =
       (CONCAT44(uVar19,uVar3) ^ 0x8119cf33503ebc15) + *(longlong *)(lVar2 + -3000) ^ uVar27;
  bVar12 = (byte)DAT_182671834;
  uVar31 = DAT_18267156c;
  uVar21 = (ulonglong)DAT_18267156c;
  uVar35 = (ulonglong)DAT_182671574;
  *(byte *)(lVar2 + -0x331) =
       *(byte *)(uVar27 ^ *(ulonglong *)(lVar2 + -0x900)) ^ (byte)uVar7 ^ (byte)DAT_182671834;
  uVar7 = DAT_1826716b4;
  *(ulonglong *)(lVar2 + -0x638) =
       (CONCAT44(iVar6,uVar33) ^ 0x4cd2f373bf1e8717) -
       (CONCAT44(uVar28,uVar31) ^ 0x35c1ae330cb81af0);
  uVar8 = DAT_1826717c0;
  uVar32 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x69da74ff)) = (bVar12 ^ *(byte *)(lVar2 + -0x331)) ^ uVar32;
  uVar19 = DAT_1826715ac;
  *(ulonglong *)(lVar2 + -0x318) = 0x2585c80986451b67 - (uVar29 ^ *(ulonglong *)(lVar2 + -0x898));
  uVar31 = uVar19 << 0x10 | uVar19 >> 0x10;
  uVar30 = CONCAT44(DAT_182671758,DAT_182671758);
  uVar27 = *(ulonglong *)(lVar2 - (uVar21 ^ 0xf341958a));
  DAT_182671578 = uVar31;
  *(undefined8 *)(lVar2 + -0x548) = 0x55da849699d41364;
  uVar27 = (uVar27 ^ uVar32) << (((byte)uVar33 ^ 0x1b) & 0x3f);
  pbVar18 = (byte *)(*(longlong *)(lVar2 + -3000) + 0x4e);
  uVar32 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar2 + -0x270) = uVar27 ^ uVar30;
  bVar12 = (byte)DAT_1826716d4;
  *(ulonglong *)(lVar2 + -0x8f8) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182671734;
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar22 ^ *(ulonglong *)(lVar2 + -0xa80) | uVar27) ^ uVar32;
  bVar11 = *pbVar18 ^ (byte)uVar8;
  *(byte *)(lVar2 + -0x51a) = bVar11 ^ bVar12;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x8504b58)) = bVar11 ^ uVar27;
  uVar9 = DAT_182671810;
  uVar7 = DAT_182671684;
  pbVar18 = (byte *)(*(longlong *)(lVar2 + -3000) + 0x4f);
  uVar21 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar2 + -0x638) = (uVar27 ^ *(ulonglong *)(lVar2 + -0x3b8)) << 0x30 ^ uVar21;
  uVar22 = CONCAT44(uVar7,uVar7);
  uVar27 = *(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0x48e00e68));
  *(ulonglong *)(lVar2 + -0xc80) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182671778;
  *(ulonglong *)(lVar2 + -0x898) =
       (uVar27 ^ uVar21) + (uVar32 ^ *(ulonglong *)(lVar2 + -0x6b8)) ^ uVar22;
  bVar12 = (byte)DAT_182671728;
  *(ulonglong *)(lVar2 + -0x318) =
       CONCAT44(uVar19,uVar31) ^ 0x9bc871f52aad0ef2 | CONCAT44(uVar31,uVar19) ^ 0x11c24ac237933676;
  *(byte *)(lVar2 + -0x5a2) = *pbVar18 ^ (byte)uVar8 ^ bVar12;
  uVar29 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x8504d28)) =
       (*(byte *)(lVar2 - ((ulonglong)uVar19 ^ 0x8504d42)) ^ bVar12) ^ uVar29;
  uVar8 = DAT_1826717c0;
  bVar16 = (byte)DAT_1826717c0;
  *(byte *)(lVar2 - ((ulonglong)uVar19 ^ 0x8504119)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x5b8) ^ uVar24) ^ bVar16;
  uVar24 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar27 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0x48e00d98)) ^ uVar29) <<
           (((byte)(uVar19 >> 0x10) ^ 0x68) & 0x3f);
  uVar21 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar2 + -0x548) = uVar27 ^ uVar24;
  uVar7 = DAT_1826716f4;
  *(ulonglong *)(lVar2 + -0xa80) = uVar27 + (uVar22 ^ *(ulonglong *)(lVar2 + -0x898)) ^ uVar21;
  uVar27 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x8504258)) =
       *(longlong *)(lVar2 + -0x880) + 0x48U ^ uVar27;
  bVar11 = DAT_18267188c;
  uVar32 = (ulonglong)DAT_182671674;
  uVar30 = CONCAT44(uVar31,DAT_182671594);
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0xab8) ^ uVar27) =
       uVar21 ^ *(ulonglong *)(lVar2 + -0xa80) ^ uVar26;
  uVar27 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 + -0x900) =
       *(longlong *)(lVar2 - ((ulonglong)uVar19 ^ 0x8504358)) + (uVar30 ^ 0x48e008506dc510a0) ^
       uVar32;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x69da7347)) =
       (CONCAT44(uVar25,uVar4) ^ 0x7d90f935758ca44) -
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0xfe75eab0)) ^ uVar24);
  bVar12 = (byte)DAT_1826717d0;
  uVar31 = DAT_182671584;
  lVar1 = DAT_182671560;
  uVar27 = (ulonglong)DAT_182671894;
  uVar26 = (ulonglong)DAT_182671584;
  *(byte *)(lVar2 + -0xd71) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x85041e0)) ^ uVar32) ^ bVar16 ^ bVar11
  ;
  uVar4 = DAT_182671630;
  *(ulonglong *)(lVar2 + -0x3b8) =
       (CONCAT44(uVar3,uVar19) ^ 0x6234cd5b39747219) + (uVar22 ^ *(ulonglong *)(lVar2 + -0x898));
  uVar32 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x6b8) = (*(byte *)(lVar2 + -0xd71) ^ bVar11) ^ uVar32;
  uVar4 = DAT_1826715b0;
  uVar13 = uVar31 & DAT_1826715b0;
  uVar28 = uVar13 ^ 0x37fdab6f;
  DAT_1826715b4 = uVar28;
  *(ulonglong *)(lVar1 + -0x8f8) =
       *(longlong *)(lVar1 - ((ulonglong)uVar31 ^ 0x101503b8)) +
       (CONCAT44(DAT_1826715b0,uVar13) ^ 0x8028b77500000051) ^ uVar27;
  *(byte *)(lVar1 - ((ulonglong)uVar28 ^ 0x37fdaed6)) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0x37fda397)) ^ uVar27) ^ bVar16 ^
       bVar12;
  *(ulonglong *)(lVar1 + -0x318) =
       *(ulonglong *)(CONCAT44(DAT_182671858,DAT_182671858) ^ *(ulonglong *)(lVar1 + -0xb8)) ^
       CONCAT44(uVar8,uVar8);
  uVar3 = DAT_1826715a4;
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar1 + -0x670) = (*(byte *)(lVar1 - (uVar26 ^ 0x10150db9)) ^ bVar12) ^ uVar27;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x8028be8d)) =
       uVar21 ^ *(ulonglong *)(lVar1 + -0xa80) ^ 0x56cd709cad8bb74d;
  uVar7 = DAT_1826715f8;
  uVar19 = (uVar3 << 0x10 | uVar3 & 0xff00) << 8 | uVar3 >> 8 & 0xff00 | DAT_1826715a4 >> 0x18;
  uVar21 = CONCAT44(DAT_18267165c,DAT_18267165c);
  DAT_182671588 = uVar19;
  *(ulonglong *)(lVar1 + -0x548) =
       (uVar27 ^ *(ulonglong *)(lVar1 + -0x670)) << (((byte)uVar3 ^ 0x7d) & 0x3f) ^ uVar21;
  uVar27 = (ulonglong)DAT_182671844;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x270) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x75fefda7)) ^ uVar21 |
       *(ulonglong *)(lVar2 + -0x6b8) ^ uVar32) ^ uVar24;
  pbVar18 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar19 ^ 0x75fef357)) +
                    (CONCAT44(uVar3,uVar31) ^ 0xeff8fe7510150852));
  puVar17 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0x75fef46f));
  *(ulonglong *)(lVar2 + -0xc80) = (ulonglong)pbVar18 ^ uVar27;
  bVar12 = (byte)DAT_18267164c;
  lVar1 = DAT_182671560;
  bVar16 = (byte)DAT_1826717c0;
  bVar23 = (byte)uVar4;
  *(byte *)(DAT_182671560 + -0xc42) = *(byte *)(*puVar17 ^ uVar27) ^ bVar16 ^ (byte)DAT_18267164c;
  bVar11 = (byte)DAT_18267179c;
  *(byte *)(lVar1 + -0x581) = *pbVar18 ^ bVar16;
  uVar32 = (ulonglong)(bVar12 ^ *(byte *)(lVar1 + -0xc42));
  uVar27 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar1 + -0x3b8) = uVar32 ^ CONCAT44(DAT_18267163c,DAT_18267163c);
  uVar7 = DAT_1826717c0;
  *(ulonglong *)(lVar1 + -0x898) = uVar32 << ((bVar23 ^ 0x65) & 0x3f) ^ uVar27;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar28 ^ 0x37fda877)) = 0xf78e445b068d200;
  uVar22 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(lVar1 + -0x9f8) =
       (uVar27 ^ *(ulonglong *)(lVar1 + -0x898) | uVar24 ^ *(ulonglong *)(lVar1 + -0x270)) ^ uVar22;
  *(ulonglong *)(lVar1 + -0x6b8) =
       (CONCAT44(uVar13,uVar19) ^ 0x3d6adc8794c28a78) >> ((bVar23 ^ 100) & 0x3f);
  uVar27 = (ulonglong)DAT_182671604;
  *(ulonglong *)(lVar1 + -0x5b8) = *(longlong *)(lVar1 + -3000) + 0x53U ^ uVar27;
  bVar16 = (byte)uVar7;
  *(byte *)(lVar1 - ((ulonglong)uVar31 ^ 0x10150a8a)) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xeff8fbcd)) ^ uVar27) ^ bVar16 ^ bVar11
  ;
  uVar8 = DAT_1826717bc;
  uVar30 = CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar27 = (ulonglong)(*(byte *)(lVar1 + -0x28a) ^ bVar11);
  uVar32 = (ulonglong)DAT_182671788;
  *(ulonglong *)(lVar1 + -0x548) = uVar27 ^ uVar30;
  uVar7 = DAT_1826716e0;
  uVar27 = uVar27 << 0x18;
  *(ulonglong *)(lVar1 + -0x3b8) = uVar27 ^ CONCAT44(uVar8,uVar8);
  bVar12 = (byte)DAT_182671678;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 - (uVar26 ^ 0x10150b18)) =
       (uVar27 | *(ulonglong *)(lVar1 + -0x9f8) ^ uVar22) ^ uVar24;
  local_58 = (byte)uVar9;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar19 ^ 0x75fef077)) =
       (*(ulonglong *)(lVar1 + -0x5c8) ^ uVar29) >> ((*(byte *)(lVar1 + -0x638) ^ local_58) & 0x3f);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar19 ^ 0x75fef1ef)) =
       *(longlong *)(lVar1 + -3000) + 0x54U ^ uVar32;
  *(byte *)(lVar1 - ((ulonglong)uVar3 ^ 0xeff8f85c)) =
       *(byte *)(uVar32 ^ *(ulonglong *)(lVar1 + -0x900)) ^ bVar16 ^ bVar12;
  *(ulonglong *)(lVar1 - (uVar26 ^ 0x10150a70)) = (*(byte *)(lVar1 + -0x629) ^ bVar12) ^ uVar30;
  uVar27 = (uVar30 ^ *(ulonglong *)(lVar1 + -0x270)) << 0x20;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar27 ^ uVar21;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0x37fdae27)) =
       (uVar24 ^ *(ulonglong *)(lVar1 + -0x318) | uVar27) ^ uVar20;
  pbVar18 = (byte *)((CONCAT44(uVar5,uVar19) ^ 0xffffffff75fef8ba) + *(longlong *)(lVar1 + -3000));
  *(ulonglong *)(lVar1 + -0xc80) = (ulonglong)pbVar18 ^ (ulonglong)DAT_1826717f0;
  *(byte *)(lVar1 - ((ulonglong)uVar3 ^ 0xeff8f404)) = *pbVar18 ^ bVar16 ^ (byte)DAT_18267189c;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar14;
  return;
}



############ FUN_ 180e8f890 size=5279 ############

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

void FUN_180e8f890(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_e8;
  ulonglong uVar31;
  
  uVar14 = DAT_1826715ac;
  uVar13 = DAT_182671588;
  uVar9 = DAT_18267157c;
  uVar10 = DAT_182671570;
  lVar7 = DAT_182671560;
  uVar36 = (ulonglong)DAT_1826715ac;
  uVar35 = (ulonglong)DAT_182671588;
  uVar29 = DAT_182671588 - DAT_182671570;
  uVar31 = (ulonglong)uVar29;
  uVar20 = (DAT_1826715ac << 0x10 | DAT_1826715ac & 0xff00) << 8 | DAT_1826715ac >> 8 & 0xff00 |
           DAT_1826715ac >> 0x18;
  uVar27 = (DAT_18267157c << 0x10 | DAT_18267157c & 0xff00) << 8 | DAT_18267157c >> 8 & 0xff00 |
           DAT_18267157c >> 0x18;
  uVar28 = uVar27 ^ 0xc50e06b7;
  uVar6 = *(uint *)(&DAT_182611e78 + DAT_182671b54);
  uVar23 = (ulonglong)uVar20;
  uVar17 = *(uint *)(&DAT_182611e70 + (uVar23 ^ 0x8b606f64) + (longlong)DAT_182671b54) ^
           DAT_18267157c;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x318);
  uVar38 = CONCAT44(DAT_182671854,DAT_182671854);
  uVar37 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar33 = CONCAT44(DAT_182671834,DAT_182671834);
  DAT_182671574 = uVar28;
  DAT_18267158c = uVar29;
  *(ulonglong *)(DAT_182671560 + -0x80) =
       (CONCAT44(DAT_18267157c,DAT_1826715ac) ^ 0x8051ade94e874cad) >>
       ((*(byte *)(DAT_182671560 + -0x110) ^ (byte)DAT_182671854) & 0x3f);
  uVar12 = DAT_18267187c;
  uVar26 = (ulonglong)uVar10;
  uVar33 = uVar33 ^ *puVar1 | CONCAT44(DAT_18267169c,DAT_18267169c) ^ *(ulonglong *)(lVar7 + -0x1d8)
  ;
  uVar34 = uVar33 ^ uVar37;
  *(ulonglong *)(lVar7 + -0xa88) = uVar34;
  uVar11 = DAT_1826717ac;
  uVar45 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 + -0x628) = (*(ulonglong *)(lVar7 + -0x110) ^ uVar38) - uVar33 ^ uVar45;
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar47 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  puVar2 = (ulonglong *)(lVar7 + -0x800);
  uVar37 = *puVar2 ^ uVar47 ^ uVar33 ^ uVar34 ^ uVar37;
  *(ulonglong *)(lVar7 + -0xbf0) = uVar37;
  lVar7 = DAT_182671560;
  uVar33 = uVar33 ^ uVar37;
  uVar37 = uVar33 >> (((byte)uVar10 ^ 0x19) & 0x3f);
  bVar18 = (byte)uVar13;
  puVar3 = (ulonglong *)(DAT_182671560 + -0xc08);
  *puVar3 = uVar37 ^ CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar7 + -0x898) =
       CONCAT44(uVar20,uVar14) ^ CONCAT44(uVar29,uVar10) ^ 0xbe86887a87321811;
  uVar11 = DAT_182671824;
  uVar33 = uVar33 << ((bVar18 ^ 0xaf) & 0x3f);
  *(ulonglong *)(lVar7 + -0x670) = uVar33 ^ CONCAT44(DAT_182671684,DAT_182671684);
  uVar34 = CONCAT44(uVar11,uVar11);
  puVar4 = (ulonglong *)(lVar7 + -0x240);
  *puVar4 = (uVar33 | uVar37) ^ uVar34;
  lVar8 = DAT_182671560;
  *(undefined1 *)(lVar7 - ((ulonglong)DAT_18267157c ^ 0xc022de9)) =
       **(undefined1 **)(lVar7 - (uVar36 ^ 0x746f6533));
  uVar37 = (*puVar2 ^ uVar47) - (CONCAT44(uVar27,uVar29) ^ 0x20d58bc112e44bba);
  puVar5 = (ulonglong *)(lVar8 + -0x6d0);
  *puVar5 = uVar37 ^ CONCAT44(DAT_1826716f4,DAT_1826716f4);
  uVar48 = CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar37 = uVar37 - (*(ulonglong *)(lVar8 - (uVar23 ^ 0x8b606d34)) ^ uVar34);
  uVar33 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar8 + -0x2a0) = uVar37 ^ uVar48;
  uVar12 = DAT_18267182c;
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar8 + -0x80) =
       (uVar34 ^ *puVar4) - (CONCAT44(uVar27,uVar13) ^ 0xff276141ec326540) ^ uVar33;
  uVar11 = DAT_1826716f0;
  *(ulonglong *)(lVar8 + -0x1d8) = (CONCAT44(uVar27,uVar14) ^ 0x3fbeff67e3946f62) + uVar37;
  uVar39 = CONCAT44(uVar11,uVar11);
  puVar32 = (ulonglong *)(lVar8 - (uVar26 ^ 0x80000218));
  uVar37 = (ulonglong)DAT_18267157c;
  *puVar32 = *(ulonglong *)(lVar7 - (uVar31 ^ 0x962f3320)) ^ CONCAT44(uVar12,uVar12) ^
             *(ulonglong *)(lVar7 + -0x628) ^ uVar39 ^ uVar45;
  lVar8 = DAT_182671560;
  puVar21 = (ulonglong *)(lVar7 - (uVar37 ^ 0xc022b18));
  uVar38 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (*puVar21 ^ uVar39) >> (((byte)uVar10 ^ 0x21) & 0x3f) ^ uVar38;
  uVar11 = _DAT_1826715d8;
  uVar34 = CONCAT44(DAT_18267168c,DAT_18267168c);
  puVar40 = (ulonglong *)(lVar8 - (uVar36 ^ 0x746f6a03));
  uVar37 = (ulonglong)DAT_18267157c;
  *puVar40 = (*puVar1 ^ uVar39) << ((bVar18 ^ 0x97) & 0x3f) ^ uVar34;
  uVar39 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0xc022288)) ^ uVar34 |
       *(ulonglong *)(DAT_182671560 + -0x110) ^ uVar38) ^ uVar39;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (CONCAT44(uVar9,uVar29) ^ 0x9c1ccfb9a8ed299f) -
       (CONCAT44(uVar14,uVar27) ^ 0xf5153bbaec41d1de);
  uVar42 = CONCAT44(DAT_182671728,DAT_182671728);
  *puVar3 = (*(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x80000728)) ^ uVar45) -
            (CONCAT44(uVar13,uVar14) ^ 0xd3f6aab30dac451d) ^ uVar42;
  lVar7 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x8b606904)) =
       CONCAT44(uVar27,uVar29) << 0x2e ^ 0xd29e400000000000;
  *puVar2 = (uVar42 ^ *puVar3) - (uVar39 ^ *(ulonglong *)(lVar7 + -0x898)) ^ uVar42;
  uVar38 = (ulonglong)DAT_18267157c;
  uVar37 = CONCAT44(uVar14,DAT_18267157c);
  *puVar5 = CONCAT44(uVar14,uVar10) ^ 0x2bf744116ae50b54 |
            CONCAT44(uVar9,uVar10) ^ 0x79a1788af783d690;
  lVar7 = DAT_182671560;
  uVar34 = CONCAT44(DAT_182671818,DAT_182671818);
  *puVar4 = (uVar37 ^ 0xf6154d28457b9cea) + (uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x898)) ^
            uVar34;
  uVar9 = DAT_182671840;
  uVar37 = CONCAT44(DAT_182671840,DAT_182671840);
  *(uint *)(DAT_182671560 - (uVar31 ^ 0x962f32e0)) =
       *(int *)(lVar7 + -0x274) - (uVar20 ^ 0x8017310a);
  lVar7 = DAT_182671560;
  puVar22 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0xc5260563));
  *puVar22 = uVar37 ^ uVar34 ^ uVar48 ^ *puVar4 ^ *(ulonglong *)(DAT_182671560 + -0x2a0);
  local_e8 = (byte)uVar29;
  *(ulonglong *)(lVar7 - (uVar35 ^ 0x162f3420)) =
       ((ulonglong)uVar9 << 0x1b | (ulonglong)(uVar9 >> 5)) ^ *(ulonglong *)(lVar7 + -0x1d8) >> 5 ^
       uVar47;
  uVar34 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *puVar1 = (uVar37 ^ *(ulonglong *)(lVar7 + -0x1d8)) << ((local_e8 ^ 0xb3) & 0x3f) ^ uVar34;
  uVar44 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar37 = *(ulonglong *)(lVar7 - (uVar38 ^ 0xc0220a8)) ^ uVar47 | uVar34 ^ *puVar32;
  *(uint *)(lVar7 + -0x678) = (uVar20 ^ 0xf9be376f) + *(int *)(lVar7 + -0x3d4);
  uVar11 = DAT_182671634;
  *(ulonglong *)(lVar7 + -0x110) = uVar37 ^ uVar44;
  uVar49 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0xbf0) = (uVar48 ^ *(ulonglong *)(lVar7 + -0x2a0)) - uVar37 ^ uVar49;
  uVar11 = DAT_18267167c;
  *(ulonglong *)(lVar7 + -0xa88) = uVar37 << ((local_e8 ^ 0xb2) & 0x3f);
  lVar8 = DAT_182671560;
  uVar48 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 - (uVar23 ^ 0x8b60695c)) =
       uVar48 ^ *puVar2 ^ uVar42 ^ uVar33 ^ *(ulonglong *)(lVar7 + -0x80);
  *(uint *)(lVar7 + -0x8c) = (DAT_1826715ac ^ 0x7d98465e) + *(int *)(lVar7 + -0x968);
  uVar9 = DAT_1826715b4;
  uVar38 = (ulonglong)DAT_1826715b4;
  uVar30 = DAT_1826715b4 << 0x10 | DAT_1826715b4 >> 0x10;
  puVar32 = (ulonglong *)(lVar7 - ((ulonglong)DAT_1826715b4 ^ 0x1c022c28));
  uVar47 = (ulonglong)uVar30;
  uVar33 = CONCAT44(uVar30,DAT_1826715b4);
  bVar24 = (byte)DAT_1826715b4;
  uVar39 = CONCAT44(DAT_182671780,DAT_182671780);
  DAT_1826715b0 = uVar30;
  *(ulonglong *)(lVar8 + -0x670) = (uVar48 ^ *puVar32) >> ((bVar24 ^ 0x25) & 0x3f) ^ uVar39;
  uVar11 = _DAT_1826715dc;
  *(undefined1 *)(lVar8 + -0x209) = **(undefined1 **)(lVar8 + -0xa20);
  uVar37 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar30 ^ 0x2a001a2a)) ^ uVar48) << 0x1b;
  *puVar3 = uVar37 ^ CONCAT44(uVar11,uVar11);
  uVar41 = CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar37 = *(ulonglong *)(lVar8 - (uVar38 ^ 0x1c022c70)) ^ uVar39 | uVar37;
  uVar45 = uVar37 ^ uVar41;
  *puVar5 = uVar45;
  lVar7 = DAT_182671560;
  uVar38 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar39 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x1c022200)) ^ uVar42) - uVar37 ^
           uVar38;
  uVar42 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar39;
  *puVar4 = *(ulonglong *)(lVar7 - (uVar47 ^ 0x2a0017f2)) ^ uVar42 ^ uVar41 ^ uVar49 ^ uVar45;
  uVar15 = DAT_1826715b4;
  uVar42 = uVar42 ^ *puVar4;
  *(ulonglong *)(lVar7 + -0x1d8) = (uVar33 ^ 0x79aa2d12f5bd460a) << ((bVar24 ^ 0x23) & 0x3f);
  uVar33 = uVar42 >> (((byte)(uVar9 >> 0x10) ^ 0x15) & 0x3f);
  uVar37 = CONCAT44(DAT_182671794,DAT_182671794);
  *(ulonglong *)(lVar7 + -0x8a8) = uVar33 ^ CONCAT44(DAT_1826716b0,DAT_1826716b0);
  lVar7 = DAT_182671560;
  uVar42 = uVar42 << (((byte)uVar15 ^ 0x29) & 0x3f);
  *puVar1 = uVar42 ^ uVar37;
  uVar11 = DAT_1826716c8;
  *(uint *)(lVar7 + -0x374) =
       (uVar30 ^ 0xe01f016e) >> ((byte)*(undefined4 *)(lVar7 + -0x754) & 0x1f);
  uVar12 = DAT_1826716d0;
  uVar43 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0xa88) = (uVar42 | uVar33) ^ uVar43;
  uVar11 = DAT_182671664;
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar37 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar7 + -0x2a0) =
       (uVar49 ^ *(ulonglong *)(lVar7 + -0xbf0)) -
       (*(ulonglong *)(lVar7 - (uVar47 ^ 0x2a00168a)) ^ uVar43) ^ uVar42;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0x80) =
       *(ulonglong *)(lVar7 - (uVar37 ^ 0xc022910)) ^ uVar33 ^ uVar38 ^ uVar44 ^ uVar39;
  uVar11 = DAT_182671760;
  puVar19 = (ulonglong *)(lVar7 - ((ulonglong)uVar15 ^ 0x1c022a80));
  uVar39 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  *puVar32 = (uVar33 ^ *puVar19) >> ((bVar18 ^ 0xa0) & 0x3f) ^ uVar39;
  uVar12 = DAT_182671814;
  lVar8 = DAT_182671560;
  uVar37 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0x670) =
       (uVar33 ^ *(ulonglong *)(lVar7 + -0x80)) << (((byte)(uVar14 >> 0x18) ^ 0x6c) & 0x3f) ^ uVar37
  ;
  uVar11 = DAT_182671578;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar37 = *(ulonglong *)(lVar8 - (uVar35 ^ 0x162f3af8)) ^ uVar37 |
           *(ulonglong *)(lVar8 + -0x628) ^ uVar39;
  uVar35 = uVar37 ^ uVar33;
  *puVar3 = uVar35;
  uVar12 = DAT_182671724;
  uVar46 = CONCAT44(DAT_182671874,DAT_182671874);
  *puVar2 = (*(ulonglong *)(lVar8 - (uVar23 ^ 0x8b6067ec)) ^ uVar38) - uVar37 ^ uVar46;
  bVar18 = (byte)DAT_1826715a0;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar35 = uVar38 ^ uVar33 ^ uVar42 ^ uVar35 ^ *(ulonglong *)(lVar8 + -0x2a0);
  *puVar5 = uVar35;
  uVar12 = DAT_18267175c;
  uVar37 = (ulonglong)DAT_182671580;
  uVar33 = CONCAT44(DAT_18267178c,DAT_18267178c);
  *(ulonglong *)(lVar8 + -0x1d8) = (uVar35 ^ uVar38) >> ((bVar18 ^ 0x26) & 0x3f) ^ uVar33;
  uVar15 = DAT_18267159c;
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar45 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar8 - (uVar26 ^ 0x80000340)) =
       (*(ulonglong *)(lVar8 - (uVar37 ^ 0x823b04e2)) ^ uVar38) << (((byte)uVar11 ^ 0x84) & 0x3f) ^
       uVar35;
  uVar49 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *(ulonglong *)(lVar8 - (uVar47 ^ 0x2a0014aa)) =
       (uVar35 ^ *puVar4 | uVar33 ^ *(ulonglong *)(lVar8 + -0x1d8)) ^ uVar49;
  uVar39 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar8 - (uVar36 ^ 0x746f6393)) =
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar28 ^ 0xc526061b)) ^ uVar42) -
       (uVar49 ^ *(ulonglong *)(lVar8 + -0x8a8)) ^ uVar39;
  uVar12 = DAT_182671650;
  uVar9 = DAT_18267157c;
  uVar35 = (ulonglong)DAT_1826718b4;
  uVar37 = *puVar2;
  uVar42 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar41 = CONCAT44(DAT_182671608,DAT_182671608);
  uVar44 = (ulonglong)DAT_18267157c;
  uVar38 = uVar42 ^ uVar46 ^ uVar43 ^ *(ulonglong *)(lVar8 + -0xa88) ^ uVar37;
  *(ulonglong *)(lVar8 + -0xbf0) = uVar38;
  uVar33 = (ulonglong)DAT_1826715b4;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar35 = (uVar38 >> 0x20 ^ uVar35) >> 0x19;
  *(ulonglong *)(lVar8 + -0x110) = uVar35 ^ uVar41;
  *(ulonglong *)(lVar8 + -0x80) =
       (*(ulonglong *)(lVar8 - (uVar33 ^ 0x1c0221f0)) ^ uVar42) << (((byte)uVar9 ^ 7) & 0x3f) ^
       uVar36;
  uVar30 = DAT_1826715bc;
  lVar7 = DAT_182671560;
  uVar38 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar35 = (*(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x82008180)) ^ uVar36 | uVar35) ^ uVar38;
  uVar41 = CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar33 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  puVar32 = (ulonglong *)(DAT_182671560 - (uVar44 ^ 0xc022e28));
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar35;
  uVar12 = DAT_182671878;
  uVar14 = DAT_182671590;
  uVar42 = (ulonglong)DAT_182671590;
  puVar25 = (ulonglong *)(lVar7 - (uVar47 ^ 0x2a001f1a));
  *(ulonglong *)(lVar7 + -0x670) = (uVar46 ^ uVar37) - (*puVar32 ^ uVar38) ^ uVar41;
  uVar9 = DAT_182671568;
  uVar35 = uVar33 ^ uVar38 ^ uVar39 ^ *puVar25 ^ uVar35;
  *(ulonglong *)(lVar7 + -0x898) = uVar35;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar37 = (ulonglong)DAT_1826715a8;
  *puVar3 = ((ulonglong)uVar30 << 0x12 | (ulonglong)(uVar30 >> 0xe)) ^ uVar35 >> 0xe ^ uVar38;
  lVar7 = DAT_182671560;
  uVar36 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x897c698e)) =
       (*(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x96bf3776)) ^ uVar33) <<
       ((local_e8 ^ 0xba) & 0x3f) ^ uVar36;
  uVar16 = DAT_182671808;
  uVar37 = *puVar3;
  *(int *)(lVar7 + -0x774) = *(int *)(lVar7 + -0x374) << ((byte)*(int *)(lVar7 + -0x374) & 0x1f);
  uVar12 = DAT_182671628;
  uVar35 = (ulonglong)DAT_182671594;
  uVar45 = CONCAT44(uVar16,uVar16);
  uVar38 = uVar36 ^ *puVar5 | uVar38 ^ uVar37;
  *(ulonglong *)(lVar7 + -0x1d8) = uVar38 ^ uVar45;
  uVar37 = CONCAT44(uVar12,uVar12);
  *puVar4 = (uVar39 ^ *puVar25) - (CONCAT44(uVar27,uVar15) ^ 0x2b597025859f3724) ^ uVar37;
  uVar15 = DAT_1826715b4;
  uVar9 = DAT_18267156c;
  uVar36 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar33 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar7 - (uVar26 ^ 0x800003a0)) =
       (*(ulonglong *)(lVar7 - (uVar35 ^ 0xe46dd0d6)) ^ uVar37) - uVar38 ^ uVar36;
  uVar30 = DAT_1826716c4;
  uVar38 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar37 = (ulonglong)DAT_1826716c4;
  *puVar40 = (uVar45 ^ *puVar22) - (CONCAT44(uVar9,uVar15) ^ 0xc683c5dea89e620d) ^ uVar38;
  *(ulonglong *)(lVar7 - (uVar33 ^ 0x81008af0)) =
       CONCAT44(uVar30,uVar30) ^ uVar41 ^ uVar49 ^ *(ulonglong *)(lVar7 + -0x670) ^
       *(ulonglong *)(lVar7 + -0x8a8);
  uVar35 = ((ulonglong)(uVar30 >> 0x10) | uVar37 << 0x10) ^ *(ulonglong *)(lVar7 + -0xbf0) >> 0x10;
  uVar37 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar7 + -0x110) = uVar35 ^ CONCAT44(DAT_182671638,DAT_182671638);
  uVar33 = (CONCAT44(uVar30,uVar30) ^ *(ulonglong *)(lVar7 + -0xbf0)) <<
           (((byte)DAT_182671580 ^ 2) & 0x3f);
  *(ulonglong *)(lVar7 + -0x80) = uVar33 ^ uVar37;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar14 ^ 0x982fb588)) = (uVar33 | uVar35) ^ uVar48;
  uVar9 = DAT_1826715a8;
  uVar33 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar35 = (uVar41 ^ *(ulonglong *)(lVar7 + -0x670)) -
           (CONCAT44(uVar14,uVar13) ^ 0x6720dec5ec326540);
  *(ulonglong *)(lVar7 + -0x628) = uVar35 ^ uVar33;
  *(ulonglong *)(lVar7 + -0x898) =
       (uVar37 ^ *puVar19) - (CONCAT44(uVar29,uVar10) ^ 0x329d48501b9e4d37);
  uVar37 = *puVar2;
  uVar26 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *puVar3 = uVar35 - (uVar48 ^ uVar37) ^ uVar26;
  uVar16 = DAT_1826716a4;
  uVar12 = DAT_182671584;
  *puVar5 = (CONCAT44(uVar20,uVar9) ^ 0x6ff35f79e0a82b5a) >> (((byte)uVar11 ^ 0x81) & 0x3f);
  uVar11 = DAT_182671578;
  uVar35 = CONCAT44(uVar16,uVar16);
  uVar47 = (ulonglong)DAT_182671568;
  uVar37 = (CONCAT44(uVar12,DAT_182671578) ^ 0xef8380082e13b543) + (uVar48 ^ uVar37) ^ uVar35;
  *puVar1 = uVar37;
  uVar39 = CONCAT44(DAT_182671734,DAT_182671734);
  uVar37 = uVar39 ^ uVar37 ^ uVar35 ^ uVar36 ^ *(ulonglong *)(lVar7 + -0x2a0);
  *puVar4 = uVar37;
  uVar45 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x8b606eac)) =
       (uVar39 ^ uVar37) >> (((byte)uVar11 ^ 0xa8) & 0x3f) ^ uVar45;
  uVar11 = DAT_1826716f8;
  lVar7 = DAT_182671560;
  puVar32 = (ulonglong *)(DAT_182671560 + -0x1d8);
  uVar23 = (*(ulonglong *)(DAT_182671560 - (uVar42 ^ 0x982fbfc8)) ^ uVar39) <<
           (((byte)uVar9 ^ 0xce) & 0x3f);
  uVar37 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar23 ^ CONCAT44(DAT_182671800,DAT_182671800);
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0xbf0) = (uVar45 ^ *puVar32 | uVar23) ^ uVar35;
  uVar39 = (*(ulonglong *)(lVar7 - (uVar37 ^ 0xc353d6b2)) ^ uVar36) -
           (*(ulonglong *)(lVar7 - (uVar31 ^ 0x962f3078)) ^ uVar35);
  *(ulonglong *)(lVar7 + -0x110) = uVar39 ^ uVar33;
  uVar23 = (ulonglong)DAT_1826716ac;
  uVar33 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar37 = *puVar3;
  uVar38 = uVar26 ^ uVar38 ^ *(ulonglong *)(lVar7 + -0xa88) ^ uVar33 ^ *puVar3;
  *(ulonglong *)(lVar7 + -0x670) = uVar38;
  uVar23 = uVar38 >> 0x20 ^ uVar34 ^ uVar23;
  *(ulonglong *)(lVar7 + -0x898) = uVar23;
  *(ulonglong *)(lVar7 + -0x80) = uVar34 ^ uVar38 ^ uVar23 ^ uVar33;
  uVar12 = DAT_1826717a4;
  uVar35 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar7 + -0x628) = (uVar38 ^ uVar33) << 0x20 ^ uVar35;
  uVar11 = DAT_18267165c;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar23 = *(ulonglong *)(lVar7 - (uVar47 ^ 0x897c6976)) ^ uVar35 | uVar34 ^ uVar23;
  uVar35 = uVar23 ^ uVar33;
  *puVar5 = uVar35;
  *puVar2 = (uVar26 ^ uVar37) - uVar23 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671670;
  uVar37 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *puVar1 = uVar39 ^ uVar35 ^ uVar37 ^ uVar33;
  DAT_182671598 = DAT_1826715b4 & DAT_18267157c;
  *puVar4 = (*puVar21 ^ uVar37) >> (((byte)DAT_182671598 ^ 0x3a) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar6 ^ uVar28;
  return;
}



############ FUN_ 180f15d30 size=5063 ############

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

void FUN_180f15d30(void)

{
  longlong *plVar1;
  uint uVar2;
  uint uVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong *puVar22;
  byte *pbVar23;
  ulonglong uVar24;
  longlong lVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  byte *pbVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  byte local_res20;
  byte local_118;
  
  uVar15 = DAT_182671684;
  uVar12 = DAT_1826715b0;
  uVar11 = DAT_1826715a4;
  uVar8 = DAT_182671584;
  uVar7 = DAT_182671580;
  uVar5 = DAT_182671570;
  uVar3 = DAT_18267156c;
  uVar34 = (ulonglong)DAT_18267156c;
  uVar41 = (ulonglong)DAT_1826715b0;
  uVar27 = DAT_18267156c ^ DAT_1826715b0;
  uVar26 = (ulonglong)DAT_1826715a4;
  uVar31 = (ulonglong)DAT_182671584;
  uVar36 = (ulonglong)DAT_182671570;
  uVar24 = (ulonglong)DAT_182671580;
  uVar40 = DAT_1826715a4 & DAT_182671580;
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_1826719f8) ^ DAT_1826715b0;
  uVar28 = DAT_182671584 + DAT_182671570;
  uVar2 = *(uint *)(&DAT_182611e70 + (uVar34 ^ 0xf211f311) + (longlong)DAT_1826719f8);
  uVar33 = (ulonglong)DAT_182671894;
  uVar44 = (ulonglong)uVar28;
  DAT_18267158c = uVar40;
  DAT_18267159c = uVar28;
  DAT_1826715a0 = uVar27;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x618) ^ (ulonglong)DAT_1826716e4) =
       *(byte *)(DAT_182671560 + -0x429) ^ (byte)DAT_182671894 ^ (byte)DAT_1826717c0;
  uVar6 = DAT_182671670;
  uVar13 = DAT_1826715c0;
  lVar4 = DAT_182671560;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar19 = (ulonglong)DAT_182671670;
  *(ulonglong *)(DAT_182671560 + -0x128) =
       *(longlong *)(DAT_182671560 - (uVar36 ^ 0xef82f79a)) +
       ((CONCAT44(uVar12,uVar40) ^ 0x2b4ce65c28006404) +
       (CONCAT44(uVar28,uVar8) ^ 0x8a248e829aa19280) * 0xc) * 8 ^ uVar37;
  uVar15 = DAT_182671834;
  uVar42 = CONCAT44(uVar13,uVar13);
  uVar35 = (ulonglong)uVar27;
  *(ulonglong *)(lVar4 + -0x628) =
       (ulonglong)*(byte *)((*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x2800e728)) ^ uVar37) + 7)
       ^ ((CONCAT44(uVar6,uVar6) ^ uVar42) >> 0x20 ^ uVar19) >> 0x18 ^
       CONCAT44(DAT_182671834,DAT_182671834);
  uVar14 = DAT_182671660;
  uVar10 = DAT_182671598;
  lVar4 = DAT_182671560;
  uVar32 = (ulonglong)DAT_182671598;
  uVar19 = (ulonglong)DAT_1826716e8;
  uVar43 = (ulonglong)DAT_182671660;
  *(byte *)(DAT_182671560 + -0x659) =
       (byte)uVar15 ^ (byte)DAT_1826717ec ^ *(byte *)(DAT_182671560 + -0x628);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x8a2482aa)) =
       (CONCAT44(uVar28,uVar27) ^ 0x8a248e82d95d157a) + *(longlong *)(lVar4 + -3000) ^ uVar19;
  uVar21 = ~uVar10;
  DAT_182671578 = uVar21;
  *(byte *)(*(ulonglong *)(lVar4 + -0xc28) ^ uVar19) =
       *(byte *)(lVar4 + -0x659) ^ (byte)DAT_1826717ec ^ (byte)DAT_1826717c0;
  uVar13 = DAT_1826716bc;
  *(ulonglong *)(lVar4 + -0xbf0) =
       CONCAT44(DAT_1826716bc,DAT_1826716bc) ^ *(ulonglong *)(lVar4 + -0x110) ^ 0xb0dde0176f370f3;
  uVar9 = DAT_182671588;
  uVar6 = DAT_182671574;
  uVar19 = (ulonglong)uVar21;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar4 + -0xb98) +
            ((CONCAT44(uVar7,uVar12) ^ 0x2800e6002b4ce659) +
            (CONCAT44(uVar21,uVar10) ^ 0x952757936ad8a86c) * 0xc) * 8);
  uVar18 = DAT_182671588 & DAT_182671574;
  *(ulonglong *)(lVar4 + -0xd60) = (ulonglong)puVar22 ^ CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar15 = DAT_182671760;
  lVar25 = (CONCAT44(uVar18,uVar6) ^ 0xa9e3fd36f12b5c4a) -
           (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar4 + -0xa88));
  DAT_182671590 = uVar18;
  *(longlong *)(lVar4 + -0x898) = lVar25;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x628) = *puVar22 ^ uVar37 ^ uVar42;
  lVar4 = DAT_182671560;
  uVar38 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  uVar37 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xea5671cc)) ^ uVar38 ^ uVar37;
  bVar39 = (byte)DAT_1826718a8 ^ (byte)uVar37 ^ (byte)DAT_1826718ac;
  bVar30 = (byte)DAT_1826718ac ^ (byte)DAT_1826717c0;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar37;
  *(byte *)(lVar4 + -0x5a1) = bVar39;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (CONCAT44(DAT_182671764,DAT_182671764) ^ *(ulonglong *)(DAT_182671560 + -0x670)) >>
       (((byte)uVar6 ^ 99) & 0x3f);
  pbVar29 = (byte *)((CONCAT44(uVar6,uVar5) ^ 0x62d08048ef82fc2a) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0x7a0) = (ulonglong)pbVar29 ^ (ulonglong)DAT_182671874;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       lVar25 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xea567c14)) ^ uVar38);
  *pbVar29 = bVar30 ^ bVar39;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x670) = CONCAT44(uVar12,uVar11) ^ 0xf43f0e661bc83f7b;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar4 + -0xb98) + 0x28 +
            (CONCAT44(uVar21,uVar18) ^ 0x9527579362500040) * 0x60);
  uVar38 = CONCAT44(DAT_182671890,DAT_182671890);
  local_res20 = (byte)uVar10;
  *(ulonglong *)(lVar4 + -0x128) = (ulonglong)puVar22 ^ CONCAT44(DAT_1826717f8,DAT_1826717f8);
  uVar37 = *puVar22 ^ uVar38 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x898) = uVar37;
  lVar4 = DAT_182671560;
  bVar39 = (byte)DAT_182671624;
  pbVar29 = (byte *)(DAT_182671560 + -0x110);
  plVar1 = (longlong *)(DAT_182671560 + -0xa88);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (uVar38 ^ uVar37) >> ((local_res20 ^ 100) & 0x3f) ^ CONCAT44(DAT_182671624,DAT_182671624);
  bVar30 = (byte)DAT_1826717ac;
  lVar25 = *plVar1 << (((byte)uVar13 ^ *pbVar29) & 0x3f);
  bVar39 = bVar39 ^ (byte)DAT_1826717ac ^ *(byte *)(lVar4 + -0xbf0);
  *(longlong *)(lVar4 + -0x628) = lVar25;
  *(byte *)(lVar4 + -0xb69) = bVar39;
  bVar30 = bVar30 ^ bVar39 ^ (byte)DAT_1826717c0;
  pbVar29 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar18 ^ 0x62500bf8)) + 0x29);
  *(ulonglong *)(lVar4 + -0x298) = (ulonglong)pbVar29 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x670) = (CONCAT44(uVar40,uVar9) ^ 0x6a8526202e645b1b) + lVar25;
  uVar37 = CONCAT44(DAT_182671824,DAT_182671824);
  *pbVar29 = bVar30;
  uVar13 = DAT_1826718a4;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x2800eb60)) =
       *(longlong *)(lVar4 + -0xb98) +
       ((CONCAT44(uVar27,uVar28) ^ 0xd95d155d8a248e87) +
       (CONCAT44(uVar9,uVar8) ^ 0xea5677e49aa19280) * 0xc) * 8 ^ uVar37;
  uVar38 = CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar33 = (ulonglong)DAT_18267163c;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x9aa19a18)) =
       *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar4 + -0xd60)) ^ uVar42 ^ uVar38;
  puVar45 = (ulonglong *)(lVar4 - (uVar26 ^ 0xacee74ee));
  *(ulonglong *)(lVar4 + -0x110) =
       (*puVar45 ^ uVar38) >> (((byte)uVar27 ^ 0x4d) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (CONCAT44(uVar12,uVar3) ^ 0x4552a91d6212d582) <<
       ((byte)*(undefined8 *)(DAT_182671560 + -0x628) & 0x3f);
  *(byte *)(lVar4 + -0x461) =
       *(byte *)(lVar4 - (uVar36 ^ 0xef82fd12)) ^ (byte)uVar13 ^ (byte)DAT_1826716cc;
  uVar13 = DAT_18267168c;
  pbVar29 = (byte *)((CONCAT44(uVar7,uVar6) ^ 0x2800e60062d08062) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0x18) = (ulonglong)pbVar29 ^ uVar33;
  local_118 = (byte)uVar28;
  *(ulonglong *)(lVar4 + -0xbf0) =
       (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar4 + -0x318)) >> ((local_118 ^ 0xad) & 0x3f);
  uVar15 = DAT_18267172c;
  *pbVar29 = *(byte *)(lVar4 - (uVar31 ^ 0x9aa196e1)) ^ (byte)DAT_1826716cc ^ (byte)DAT_1826717c0;
  uVar16 = DAT_182671820;
  uVar13 = DAT_1826716a8;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x128) =
       *(longlong *)(lVar4 + -0xb98) + (CONCAT44(uVar18,uVar3) ^ 0x62500040f211f304) * 8 ^ uVar37;
  uVar37 = *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar19 ^ 0x952756bb)) ^ uVar37) ^
           CONCAT44(uVar13,uVar13) ^ uVar42;
  *(ulonglong *)(lVar4 + -0x670) = uVar37;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar37 ^ CONCAT44(uVar13,uVar13)) >> (((byte)uVar6 ^ 0x50) & 0x3f) ^ CONCAT44(uVar16,uVar16)
  ;
  bVar30 = (byte)DAT_18267170c;
  lVar25 = DAT_182671560;
  bVar39 = (byte)uVar16 ^ (byte)DAT_18267170c ^ *(byte *)(DAT_182671560 + -0x898);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (CONCAT44(uVar40,uVar8) ^ 0xdfe2a04791c5ea0f) <<
       ((*(byte *)(lVar4 - (uVar24 ^ 0x2800e070)) ^ (byte)uVar13) & 0x3f);
  *(byte *)(lVar25 + -0x639) = bVar39;
  uVar13 = DAT_182671648;
  pbVar29 = (byte *)((CONCAT44(uVar40,uVar10) ^ 0x280064006ad8a847) + *(longlong *)(lVar25 + -3000))
  ;
  bVar30 = bVar30 ^ bVar39 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar25 + -0x470) = (ulonglong)pbVar29 ^ uVar43;
  *pbVar29 = bVar30;
  uVar37 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar25 - ((ulonglong)uVar6 ^ 0x62d08d28)) =
       *(longlong *)(lVar25 + -0xb98) +
       ((CONCAT44(uVar28,uVar40) ^ 0x8a248e8228006405) +
       (CONCAT44(uVar8,uVar9) ^ 0x9aa19280ea5677e4) * 0xc) * 8 ^ uVar37;
  bVar30 = (byte)DAT_18267179c;
  uVar33 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar25 + -0xa88) =
       *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar25 + -0xd60)) ^ uVar33 ^ uVar42;
  uVar37 = (*(ulonglong *)(lVar25 - ((ulonglong)uVar18 ^ 0x62500ac8)) ^ uVar33) >>
           (((byte)uVar18 ^ 0x60) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar25 + -0x110) = uVar37;
  bVar39 = (byte)uVar13 ^ bVar30 ^ (byte)uVar37;
  uVar37 = (ulonglong)_DAT_18267188c;
  *(byte *)(lVar25 + -0x4b9) = bVar39;
  bVar30 = bVar30 ^ bVar39 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar25 + -0x318) =
       (CONCAT44(uVar12,uVar3) ^ 0xd5fee2c46e094cb) + 0xf2887e6acf6192ae;
  *(ulonglong *)(lVar25 + -0xac8) =
       (CONCAT44(uVar9,uVar7) ^ 0xea5677e42800e62c) + *(longlong *)(lVar25 + -3000) ^ uVar37;
  uVar15 = DAT_182671754;
  uVar13 = DAT_1826716f8;
  uVar14 = DAT_182671634;
  uVar33 = (ulonglong)DAT_182671634;
  *(byte *)(*(ulonglong *)(lVar25 - (uVar26 ^ 0xacee76be)) ^ uVar37) = bVar30;
  lVar4 = DAT_182671560;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 + -0x128) =
       *(longlong *)(DAT_182671560 + -0xb98) +
       ((CONCAT44(uVar5,uVar28) ^ 0xef82fc028a248e87) +
       (CONCAT44(uVar11,uVar21) ^ 0xacee7c7695275793) * 0xc) * 8 ^ uVar37;
  uVar37 = *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar44 ^ 0x8a248faa)) ^ uVar37) ^
           CONCAT44(uVar14,uVar14) ^ uVar42;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar37;
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x6ad8ae1c)) =
       (uVar37 >> 0x20 ^ uVar33) >> 8 ^ CONCAT44(uVar13,uVar13);
  lVar4 = DAT_182671560;
  uVar37 = (ulonglong)DAT_182671814;
  plVar1 = (longlong *)(DAT_182671560 + -3000);
  *(byte *)(DAT_182671560 + -0x9ca) =
       (byte)uVar13 ^ *(byte *)(DAT_182671560 + -0x670) ^ (byte)DAT_1826716a4;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xef82f7ca)) = *plVar1 + 0x2dU ^ uVar37;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar24 ^ 0x2800edc8)) ^ uVar37) =
       (byte)DAT_1826717c0 ^ *(byte *)(lVar4 + -0x9ca) ^ (byte)DAT_1826716a4;
  uVar13 = DAT_182671638;
  lVar25 = DAT_182671560;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar4 + -0xb98) +
            ((CONCAT44(uVar21,uVar9) ^ 0x95275793ea5677e1) +
            (CONCAT44(uVar21,uVar27) ^ 0x95275793d95d155d) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xd60) = (ulonglong)puVar22 ^ CONCAT44(DAT_182671724,DAT_182671724);
  uVar15 = DAT_182671730;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x8a2488aa)) = *puVar22 ^ uVar42 ^ uVar37;
  *(uint *)(lVar4 + -0x968) = (DAT_1826715b0 ^ 0x69637f59) + *(int *)(lVar4 + -0x328);
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x628)) >> ((local_res20 ^ 0x5c) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  *(byte *)(lVar4 - (uVar19 ^ 0x952755f2)) = (byte)uVar15 ^ (byte)*puVar45 ^ (byte)DAT_182671790;
  uVar37 = (ulonglong)DAT_1826715c4;
  *(ulonglong *)(lVar25 + -0x530) =
       (CONCAT44(uVar6,uVar18) ^ 0x62d080486250006e) + *(longlong *)(lVar25 + -3000) ^ uVar37;
  *(ulonglong *)(lVar25 + -0xa88) =
       (CONCAT44(uVar3,uVar28) ^ 0x735fed40d95c2269) >> ((local_res20 ^ 0x5f) & 0x3f);
  uVar16 = DAT_1826717a4;
  uVar33 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(byte *)(*(ulonglong *)(lVar25 - (uVar34 ^ 0xf211f631)) ^ uVar37) =
       *(byte *)(lVar25 - (uVar31 ^ 0x9aa190e1)) ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671790;
  uVar17 = DAT_1826718b8;
  lVar4 = DAT_182671560;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar25 + -0xb98) + 0x28 +
            (CONCAT44(uVar40,uVar9) ^ 0x28006400ea5677e4) * 0x60);
  *(ulonglong *)(lVar25 + -0x128) = (ulonglong)puVar22 ^ uVar33;
  uVar13 = DAT_18267173c;
  uVar37 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x318) = *puVar22 ^ uVar42 ^ uVar37;
  lVar25 = DAT_182671560;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar40 ^ 0x28006510)) =
       (*(ulonglong *)(lVar4 - (uVar19 ^ 0x9527548b)) ^ uVar37) >> (((byte)uVar9 ^ 0xdc) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  bVar30 = (byte)DAT_1826717c0;
  pbVar29 = (byte *)((CONCAT44(uVar6,uVar18) ^ 0x62d080486250006f) + *(longlong *)(lVar25 + -3000));
  uVar34 = (ulonglong)DAT_1826718bc;
  bVar39 = *(byte *)(DAT_182671560 - (uVar35 ^ 0xd95d144d)) ^ (byte)uVar16 ^ (byte)uVar13;
  *(byte *)(lVar25 + -0x289) = bVar39;
  *(ulonglong *)(lVar25 + -0x928) = (ulonglong)pbVar29 ^ uVar34;
  *pbVar29 = bVar30 ^ (byte)uVar13 ^ bVar39;
  *(ulonglong *)(lVar25 + -0xbf0) = CONCAT44(uVar5,uVar10) ^ 0x3984107009561e61;
  uVar13 = DAT_182671898;
  lVar4 = DAT_182671560;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar25 + -0xb98) +
            ((CONCAT44(uVar40,uVar3) ^ 0x28006400f211f307) +
            (CONCAT44(uVar18,uVar6) ^ 0x6250004062d08048) * 0xc) * 8);
  *(ulonglong *)(lVar25 + -0xd60) = (ulonglong)puVar22 ^ CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar16 = DAT_182671848;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x670) = *puVar22 ^ uVar42 ^ uVar34;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0xd95d132d)) ^ uVar34 ^ CONCAT44(uVar16,uVar16);
  uVar34 = (ulonglong)DAT_182671888;
  *(byte *)(lVar4 + -0x629) =
       *(byte *)(DAT_182671560 - (uVar31 ^ 0x9aa194a8)) ^ (byte)uVar16 ^ (byte)DAT_1826716c4;
  *(ulonglong *)(lVar4 + -0xa88) =
       *(ulonglong *)(lVar4 - (uVar41 ^ 0x2b4ce544)) ^ uVar37 | 0x43339f8a88cf456c;
  uVar14 = DAT_182671620;
  lVar25 = DAT_182671560;
  uVar19 = (ulonglong)DAT_182671620;
  pbVar23 = (byte *)(*(longlong *)(lVar4 - (uVar35 ^ 0xd95d1ee5)) +
                    (CONCAT44(uVar21,uVar27) ^ 0x95275793d95d156d));
  pbVar29 = (byte *)(DAT_182671560 - (uVar44 ^ 0x8a2488ab));
  *(ulonglong *)(DAT_182671560 + -0x598) = (ulonglong)pbVar23 ^ uVar34;
  uVar13 = DAT_182671718;
  *pbVar23 = *pbVar29 ^ (byte)DAT_1826717c0 ^ (byte)DAT_1826716c4;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar25 + -0xb98) + 0x30 +
            (CONCAT44(uVar3,uVar5) ^ 0xf211f301ef82fc02) * 0x60);
  *(ulonglong *)(lVar25 + -0x128) = (ulonglong)puVar22 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_1826718a0;
  *(ulonglong *)(lVar25 + -0x110) =
       CONCAT44(uVar11,uVar7) ^ 0x7ebdb5e90de68faf | CONCAT44(uVar18,uVar7) ^ 0x2a4c6db91da688e2;
  uVar34 = CONCAT44(uVar14,uVar14) ^ *puVar22 ^ uVar42;
  *(ulonglong *)(lVar25 + -0xbf0) = uVar34;
  *(ulonglong *)(lVar25 + -0x670) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar25 + -0x628)) << 0x23;
  uVar16 = DAT_18267184c;
  uVar34 = (uVar19 << 0x18 | (ulonglong)(uVar14 >> 8)) ^ uVar34 >> 8 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar25 + -0x318) = uVar34;
  bVar30 = (byte)uVar16;
  *(byte *)(lVar25 + -0xa71) = (byte)uVar13 ^ (byte)uVar34 ^ bVar30;
  uVar34 = (ulonglong)DAT_18267167c;
  *(ulonglong *)(lVar25 + -0xa88) =
       (CONCAT44(uVar10,uVar27) ^ 0x2678976ca2f38358) >>
       ((*(byte *)(lVar25 - (uVar24 ^ 0x2800ee98)) ^ (byte)uVar15) & 0x3f);
  pbVar29 = (byte *)((CONCAT44(uVar40,uVar28) ^ 0x280064008a248eb3) + *(longlong *)(lVar25 + -3000))
  ;
  *(ulonglong *)(lVar25 + -0x4e8) = (ulonglong)pbVar29 ^ uVar34;
  uVar13 = _DAT_1826716c0;
  *pbVar29 = *(byte *)(lVar25 - ((ulonglong)uVar40 ^ 0x28006e71)) ^ (byte)DAT_1826717c0 ^ bVar30;
  uVar34 = (ulonglong)DAT_1826718d4;
  uVar35 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar25 + -0xb98) +
            ((CONCAT44(uVar6,uVar8) ^ 0x62d080489aa19286) +
            (CONCAT44(uVar10,uVar11) ^ 0x6ad8a86cacee7c76) * 0xc) * 8);
  uVar3 = DAT_1826718d4 >> 0x10;
  *(ulonglong *)(lVar25 + -0xd60) = (ulonglong)puVar22 ^ CONCAT44(uVar13,uVar13);
  uVar42 = uVar35 ^ *puVar22 ^ uVar42;
  *(ulonglong *)(lVar25 + -0x110) = uVar42;
  uVar34 = ((ulonglong)uVar3 | uVar34 << 0x10) ^ uVar42 >> 0x10;
  *(ulonglong *)(lVar25 + -0x628) = uVar34 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar25 + -0xbf0) = uVar34 - (CONCAT44(uVar8,uVar9) ^ 0xd2f24cc9225315b);
  *(byte *)(lVar25 + -0xb09) =
       *(byte *)(lVar25 - (uVar24 ^ 0x2800e028)) ^ bVar30 ^ (byte)DAT_182671738;
  *(ulonglong *)(lVar25 - (uVar32 ^ 0x6ad8a534)) =
       (CONCAT44(uVar28,uVar12) ^ 0x8a248e822b4ce66e) + *(longlong *)(lVar25 + -3000) ^
       (ulonglong)DAT_1826715d4;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar27) * 4) = uVar20;
  return;
}



############ FUN_ 180e6a120 size=5584 ############

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

void FUN_180e6a120(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  byte bVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong *puVar32;
  uint uVar33;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  byte local_138;
  byte local_130;
  byte local_108;
  byte local_f8;
  ulonglong uVar34;
  
  uVar12 = DAT_1826715b0;
  uVar9 = DAT_1826715a4;
  uVar11 = DAT_18267159c;
  uVar10 = DAT_182671594;
  uVar19 = DAT_182671578;
  uVar8 = DAT_182671570;
  uVar40 = DAT_182671568;
  uVar51 = (ulonglong)DAT_182671594;
  uVar37 = (ulonglong)DAT_1826715a4;
  uVar36 = DAT_182671594 * DAT_1826715a8;
  uVar42 = (ulonglong)DAT_1826715b0;
  uVar4 = *(uint *)(&DAT_182611e78 + DAT_182671ae8);
  uVar47 = DAT_182671570 | DAT_182671578;
  uVar53 = (ulonglong)DAT_182671568;
  uVar33 = DAT_1826715a4 | DAT_18267159c;
  uVar34 = (ulonglong)uVar33;
  uVar28 = DAT_1826715b0 ^ DAT_182671568;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671ae8) ^ DAT_182671570;
  uVar35 = (ulonglong)uVar28;
  DAT_182671574 = uVar33;
  DAT_18267158c = uVar36;
  DAT_182671598 = uVar47;
  DAT_1826715a0 = uVar28;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       -0x15f2f9ad2500d52 - (CONCAT44(DAT_182671578,DAT_1826715b0) ^ 0x1b31674f4368dc42);
  uVar14 = DAT_182671670;
  lVar6 = DAT_182671560;
  bVar21 = (byte)uVar28;
  uVar29 = (CONCAT44(DAT_182671898,DAT_182671898) ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) >>
           ((bVar21 ^ 0x91) & 0x3f);
  uVar23 = DAT_1826715a8 ^ 0xaf5e4229;
  uVar45 = (CONCAT44(DAT_182671898,DAT_182671898) ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) << 0x18;
  uVar50 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar29 ^ uVar50;
  lVar7 = DAT_182671560;
  *(uint *)(lVar6 + -0x678) = uVar23 * (uVar40 ^ 0xfb9d2f0);
  uVar15 = DAT_182671744;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x110) = uVar45 ^ uVar24;
  uVar41 = CONCAT44(uVar15,uVar15);
  uVar20 = (ulonglong)uVar36;
  uVar25 = (ulonglong)uVar47;
  puVar1 = (ulonglong *)(lVar7 + -0x628);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar36 ^ 0xfebe7866)) = (uVar45 | uVar29) ^ uVar41;
  uVar30 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar45 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  puVar2 = (ulonglong *)(lVar7 + -0x318);
  *puVar2 = (*puVar1 ^ uVar30) - (*(ulonglong *)(lVar7 - (uVar25 ^ 0x4d3eb767)) ^ uVar41) ^ uVar45;
  uVar48 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar26 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0xacee7dae)) =
       *(ulonglong *)(lVar7 + -0x898) ^ *(ulonglong *)(lVar7 + -0x240) ^ uVar26 ^ uVar48 ^ uVar41;
  uVar14 = _DAT_182671610;
  lVar6 = DAT_182671560;
  puVar27 = (ulonglong *)(lVar7 - (uVar42 ^ 0x2a001dda));
  uVar56 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  uVar29 = (*puVar27 ^ uVar48) >> (((byte)uVar10 ^ 0x8d) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar29 ^ CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar15 = DAT_1826718d0;
  lVar7 = DAT_182671560;
  uVar48 = (*(ulonglong *)(lVar6 + -0x1d8) ^ uVar48) << ((bVar21 ^ 0xb5) & 0x3f);
  uVar52 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar48 ^ uVar56;
  uVar48 = uVar48 | uVar29;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar48 ^ uVar52;
  puVar3 = (ulonglong *)(lVar7 + -0x2a0);
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar41 = (ulonglong)uVar8;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar33 ^ 0xeeef70fe)) =
       (*(ulonglong *)(lVar7 + -0x240) ^ uVar26) - uVar48 ^ uVar38;
  uVar48 = CONCAT44(DAT_182671694,DAT_182671694);
  bVar5 = (byte)uVar40;
  *(ulonglong *)(lVar7 - (uVar41 ^ 0x44268dbb)) =
       CONCAT44(DAT_1826715e8,DAT_1826715e8) ^ uVar48 ^ uVar45 ^ *puVar3 ^ *puVar2;
  lVar6 = DAT_182671560;
  uVar46 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0xeeef767e)) =
       (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x4d3eb7ff)) ^ uVar48) >> ((bVar5 ^ 0x82) & 0x3f) ^
       uVar46;
  uVar29 = CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(lVar6 - (uVar42 ^ 0x2a0017f2)) =
       (uVar48 ^ *(ulonglong *)(lVar6 + -0x800)) << 7 ^ uVar29;
  uVar48 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar6 + -0x110) =
       (*(ulonglong *)(lVar6 - (uVar25 ^ 0x4d3eb40f)) ^ uVar29 |
       uVar46 ^ *(ulonglong *)(lVar6 + -0xa88)) ^ uVar48;
  uVar42 = *puVar2;
  *(ulonglong *)(lVar6 + -0x80) =
       CONCAT44(uVar19,uVar47) ^ uVar38 ^ *(ulonglong *)(lVar6 + -0xc08) ^ 0x49dac99da05ca96e;
  uVar54 = CONCAT44(DAT_182671878,DAT_182671878);
  puVar31 = (ulonglong *)(lVar6 - (uVar37 ^ 0xacee7a5e));
  *puVar31 = (uVar45 ^ uVar42) - (*(ulonglong *)(lVar6 - (uVar20 ^ 0xfebe71ee)) ^ uVar48) ^ uVar54;
  *(ulonglong *)(lVar6 - (uVar35 ^ 0x44268921)) =
       *(ulonglong *)(lVar6 + -0x110) ^ uVar48 ^ uVar38 ^ uVar50 ^ *(ulonglong *)(lVar6 + -0xc08);
  uVar40 = DAT_1826715a8;
  uVar29 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  local_f8 = (byte)uVar8;
  *puVar27 = (*(ulonglong *)(lVar6 + -0x898) ^ uVar50) >> ((bVar5 ^ 0xb5) & 0x3f) ^ uVar29;
  uVar42 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(lVar6 + -0x670) =
       (*(ulonglong *)(lVar6 + -0x898) ^ uVar50) << ((local_f8 ^ 0x89) & 0x3f) ^ uVar42;
  puVar32 = (ulonglong *)(lVar6 - (uVar51 ^ 0x6e269939));
  *(ulonglong *)(lVar6 - ((ulonglong)uVar40 ^ 0x96bf3dae)) = *puVar32 << ((bVar5 ^ 0xaf) & 0x3f);
  uVar49 = CONCAT44(DAT_182671614,DAT_182671614);
  bVar22 = (byte)DAT_18267159c;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar40 ^ 0x96bf3d4e)) =
       (uVar42 ^ *(ulonglong *)(lVar6 + -0x670) | uVar29 ^ *(ulonglong *)(lVar6 + -0x1d8)) ^ uVar49;
  *(ulonglong *)(lVar6 + -0x800) = 0x70640fdb917a8517 >> ((bVar22 ^ 0xb0) & 0x3f);
  uVar13 = DAT_1826715b4;
  uVar9 = DAT_182671584;
  lVar7 = DAT_182671560;
  uVar50 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  uVar48 = (ulonglong)DAT_1826715b4;
  uVar45 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar6 + -0xbf0) =
       (*(ulonglong *)(lVar6 - (uVar51 ^ 0x6e2695b1)) ^ uVar38) -
       (CONCAT44(uVar33,uVar36) ^ 0x936aaeaa48383bf9) ^ uVar50;
  uVar44 = uVar13 * uVar9;
  DAT_182671590 = uVar44;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x6656da2c)) =
       uVar56 ^ *(ulonglong *)(lVar6 + -0x6d0) ^ 0xec4898c3aaf4d4f1;
  uVar38 = CONCAT44(DAT_182671688,DAT_182671688);
  *puVar2 = (uVar50 ^ *(ulonglong *)(lVar7 + -0xbf0)) - (uVar49 ^ *puVar3) ^ uVar38;
  uVar14 = DAT_18267160c;
  uVar42 = *puVar3;
  *(uint *)(lVar7 + -0x274) = (uVar44 ^ 0xc675ced5) + (uVar13 ^ 0x5f40259d);
  uVar15 = DAT_1826718a0;
  uVar29 = *puVar1;
  uVar46 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x110) =
       (uVar49 ^ uVar42) - (CONCAT44(uVar13,uVar9) ^ 0x4df5073a51265d5b) ^ uVar46;
  uVar14 = DAT_182671888;
  uVar49 = CONCAT44(uVar15,uVar15);
  uVar42 = uVar29 ^ uVar49 ^ uVar54 ^ uVar52 ^ *(ulonglong *)(lVar7 + -0x8a8);
  *(ulonglong *)(lVar7 + -0x898) = uVar42;
  uVar29 = CONCAT44(uVar14,uVar14);
  local_108 = (byte)uVar19;
  *(ulonglong *)(lVar7 - (uVar48 ^ 0x1c022840)) =
       (uVar42 ^ uVar49) >> (((byte)uVar9 ^ 0xb4) & 0x3f) ^ uVar29;
  uVar14 = DAT_1826718bc;
  lVar6 = DAT_182671560;
  puVar39 = (ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x6656d024));
  *puVar39 = (uVar49 ^ *(ulonglong *)(DAT_182671560 + -0x898)) << ((local_108 ^ 0xce) & 0x3f) ^
             uVar24;
  uVar49 = uVar29 ^ *(ulonglong *)(lVar6 + -0x240) | *(ulonglong *)(lVar6 + -0x80) ^ uVar24;
  uVar42 = *puVar1;
  *(ulonglong *)(lVar6 + -0x1d8) = uVar49 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x670) =
       (uVar42 ^ uVar54) - (CONCAT44(uVar44,uVar13) ^ 0x14436d513ef8c2e6) ^ uVar46;
  uVar14 = DAT_182671850;
  uVar24 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  *(ulonglong *)(lVar6 + -0x800) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x6656d6d4)) ^ uVar46) - uVar49 ^ uVar24;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0x44268db1)) =
       (CONCAT44(uVar47,uVar12) ^ 0xf68a27ca8e1202e6) + uVar49 ^ uVar29;
  uVar42 = CONCAT44(DAT_182671780,DAT_182671780);
  uVar40 = DAT_182671578 ^ 0xdae5154;
  *(ulonglong *)(lVar6 + -0xa88) =
       uVar42 ^ uVar29 ^ uVar38 ^ *(ulonglong *)(lVar6 + -0xc08) ^ *puVar2;
  local_138 = (byte)uVar36;
  *(uint *)(lVar6 - (uVar41 ^ 0x44268537)) = uVar40 | DAT_1826715a4 ^ 0xf6d6d36a;
  uVar49 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar6 + -0x6d0) =
       (uVar42 ^ *(ulonglong *)(lVar6 + -0xa88)) >> ((local_138 ^ 0xde) & 0x3f) ^ uVar49;
  uVar14 = DAT_182671634;
  *(undefined1 *)(lVar6 + -0x209) = **(undefined1 **)(lVar6 + -0x5b8);
  uVar29 = (*(ulonglong *)(lVar6 - (uVar51 ^ 0x6e269331)) ^ uVar42) << 0x20;
  uVar55 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *(ulonglong *)(lVar6 + -0xbf0) = uVar29 ^ CONCAT44(uVar14,uVar14);
  uVar40 = DAT_182671788;
  uVar42 = (ulonglong)DAT_182671788;
  *(ulonglong *)(lVar6 - (uVar53 ^ 0x6e269f1b)) =
       (*(ulonglong *)(lVar6 - (uVar48 ^ 0x1c022cd0)) ^ uVar49 | uVar29) ^ uVar55;
  lVar6 = DAT_182671560;
  uVar49 = CONCAT44(uVar40,uVar40);
  uVar56 = CONCAT44(DAT_182671818,DAT_182671818);
  puVar43 = (ulonglong *)(DAT_182671560 + -0x110);
  uVar52 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = (uVar38 ^ *puVar2) - (uVar55 ^ *puVar3) ^ uVar56;
  uVar29 = uVar49 ^ uVar24 ^ *puVar43 ^ uVar46 ^ *(ulonglong *)(lVar6 + -0x800);
  *(ulonglong *)(lVar6 + -0x898) = uVar29;
  *(ulonglong *)(lVar6 + -0x240) = uVar29 >> 0x20 ^ uVar52 ^ uVar42;
  uVar14 = DAT_182671770;
  local_130 = (byte)uVar12;
  uVar46 = CONCAT44(DAT_182671844,DAT_182671844);
  *puVar39 = (uVar49 ^ uVar29) << ((local_130 ^ 0x22) & 0x3f) ^ uVar46;
  uVar40 = DAT_18267159c;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_18267159c ^ 0x4e2f3aa8)) =
       (uVar52 ^ *(ulonglong *)(lVar6 + -0x240) | uVar46 ^ *(ulonglong *)(lVar6 + -0x80)) ^ uVar29;
  uVar17 = DAT_182671808;
  uVar23 = DAT_1826715a8;
  uVar38 = CONCAT44(DAT_182671654,DAT_182671654);
  uVar42 = (ulonglong)DAT_182671808;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a8 ^ 0x96bf399e)) =
       (*(ulonglong *)(lVar6 - (uVar34 ^ 0xeeef74f6)) ^ uVar24) - (uVar29 ^ *puVar1) ^ uVar38;
  lVar6 = DAT_182671560;
  uVar24 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       uVar24 ^ uVar29 ^ uVar56 ^ *puVar1 ^ *(ulonglong *)(DAT_182671560 + -0x8a8);
  lVar7 = DAT_182671560;
  puVar39 = (ulonglong *)(lVar6 - (uVar25 ^ 0x4d3eb3f7));
  *puVar39 = (CONCAT44(uVar23,uVar36) ^ 0xc427a564b1f7c80) - (uVar46 ^ *puVar32);
  uVar29 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar7 + -0xa88) =
       (*(ulonglong *)(lVar7 + -0x1d8) >> 0x20 ^ uVar42) >> 0x1a ^ uVar29;
  uVar46 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar40 ^ 0x4e2f3a50)) =
       (uVar24 ^ *(ulonglong *)(lVar7 + -0x1d8)) << ((local_108 ^ 0xf8) & 0x3f) ^ uVar46;
  uVar14 = DAT_18267179c;
  uVar49 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  uVar42 = uVar46 ^ *(ulonglong *)(lVar7 + -0x6d0) | uVar29 ^ *(ulonglong *)(lVar7 + -0xa88);
  *(ulonglong *)(lVar7 + -0xbf0) = uVar42 ^ uVar49;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 - (uVar51 ^ 0x6e269aa1)) =
       (uVar56 ^ *(ulonglong *)(lVar7 + -0x8a8)) - uVar42 ^ uVar29;
  *(ulonglong *)(lVar7 - (uVar35 ^ 0x442680a9)) =
       *(ulonglong *)(lVar7 - (uVar48 ^ 0x1c022c70)) ^ uVar38 ^ uVar55 ^ uVar26 ^ *puVar3;
  uVar14 = DAT_1826717ec;
  lVar6 = DAT_182671560;
  uVar52 = (ulonglong)DAT_1826715a8;
  uVar24 = (*(ulonglong *)(lVar7 + -0x110) ^ uVar26) >> (((byte)DAT_1826715a8 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar7 + -0x898) = uVar24 ^ CONCAT44(DAT_1826717cc,DAT_1826717cc);
  uVar42 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar44 ^ 0xcf82e910)) ^ uVar26) <<
           ((local_130 ^ 0x28) & 0x3f);
  uVar26 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar6 + -0x240) = uVar42 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_18267174c;
  *(ulonglong *)(lVar6 + -0x800) = (uVar24 | uVar42) ^ uVar26;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar34 ^ 0xeeef7ade)) =
       (uVar38 ^ *(ulonglong *)(lVar6 + -0x670)) -
       (*(ulonglong *)(lVar6 - (uVar45 ^ 0x6656d8a4)) ^ uVar26) ^ uVar24;
  uVar14 = DAT_182671854;
  uVar48 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  puVar43 = (ulonglong *)(lVar6 - (uVar35 ^ 0x44268139));
  *puVar43 = *(ulonglong *)(lVar6 - (uVar37 ^ 0xacee7476)) ^ uVar48 ^ uVar26 ^ uVar29 ^ *puVar2;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0xc08) =
       (*(ulonglong *)(lVar6 - (uVar20 ^ 0xfebe707e)) ^ uVar48) >> (((byte)uVar10 ^ 0x97) & 0x3f) ^
       uVar26;
  uVar42 = CONCAT44(DAT_182671660,DAT_182671660);
  *puVar27 = (uVar48 ^ *puVar43) << ((local_130 ^ 0x10) & 0x3f) ^ uVar42;
  uVar35 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar6 + -0xa88) =
       (*(ulonglong *)(lVar6 + -0x1d8) ^ uVar42 | uVar26 ^ *(ulonglong *)(lVar6 + -0xc08)) ^ uVar35;
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x4426836b)) =
       (CONCAT44(uVar33,uVar19) ^ 0x8cd22a15174116d3) -
       (CONCAT44(uVar28,uVar10) ^ 0xc0ab554f01ba25e);
  uVar51 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar6 + -0x8a8) =
       (uVar29 ^ *puVar2) - (uVar35 ^ *(ulonglong *)(lVar6 + -0xa88)) ^ uVar51;
  uVar40 = DAT_18267159c;
  uVar42 = *(ulonglong *)(lVar6 - (uVar25 ^ 0x4d3eb9d7)) ^ uVar49 ^ *(ulonglong *)(lVar6 + -0xbf0);
  *puVar3 = uVar42;
  uVar48 = (uVar24 ^ uVar42) >> (((byte)uVar13 ^ 0xc) & 0x3f);
  uVar29 = CONCAT44(DAT_18267182c,DAT_18267182c);
  *(ulonglong *)(lVar6 + -0x110) = uVar48 ^ CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar42 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar40 ^ 0x4e2f3e20)) ^ uVar24) << 0x34;
  uVar26 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar6 + -0x898) = uVar42 ^ uVar29;
  uVar14 = DAT_182671668;
  uVar19 = DAT_18267158c ^ 0xcc270fdd;
  uVar48 = uVar48 | uVar42;
  *(ulonglong *)(lVar6 + -0x240) = uVar48 ^ uVar26;
  uVar49 = CONCAT44(uVar14,uVar14);
  *(uint *)(lVar6 + -0x754) = (uVar40 ^ 0x47d81a55) + uVar19;
  uVar19 = DAT_182671588;
  lVar7 = DAT_182671560;
  uVar56 = (ulonglong)DAT_1826715ac;
  uVar38 = (ulonglong)DAT_182671580;
  uVar29 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar6 - (uVar37 ^ 0xacee7a06)) =
       (*(ulonglong *)(lVar6 - (uVar52 ^ 0x96bf39c6)) ^ uVar24) - uVar48 ^ uVar49;
  uVar24 = CONCAT44(DAT_182671684,DAT_182671684);
  uVar42 = *(ulonglong *)(lVar6 - (uVar38 ^ 0x823b0072)) ^ *(ulonglong *)(lVar6 + -0x8a8) ^ uVar24 ^
           uVar26 ^ uVar51;
  *(ulonglong *)(lVar6 + -0x800) = uVar42;
  uVar40 = DAT_18267157c;
  uVar26 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar6 - (uVar56 ^ 0x44260400)) =
       (uVar42 ^ uVar24) >> ((bVar5 ^ 0xa2) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar7 - (uVar26 ^ 0xc022408)) =
       (*(ulonglong *)(lVar7 + -0x800) ^ uVar24) << ((bVar5 ^ 0x9c) & 0x3f) ^ uVar54;
  *(ulonglong *)(lVar7 - (uVar29 ^ 0x95a35680)) =
       (*(ulonglong *)(lVar7 + -0x80) ^ uVar30 | uVar54 ^ *(ulonglong *)(lVar7 + -0xc08)) ^ uVar30;
  uVar42 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar7 + -0x6d0) =
       (*(ulonglong *)(lVar7 + -0x8a8) ^ uVar51) - (CONCAT44(uVar9,uVar40) ^ 0x4fc5850ccbc15e27) ^
       uVar42;
  puVar27 = (ulonglong *)(lVar7 - (uVar38 ^ 0x823b04e2));
  *puVar2 = (uVar42 ^ *puVar27) - (*(ulonglong *)(lVar7 - (uVar25 ^ 0x4d3ebe27)) ^ uVar30) ^ uVar50;
  *(uint *)(lVar7 + -0x27c) = (DAT_1826715a8 ^ 0xf82119c2) & *(uint *)(lVar7 + -0x968);
  uVar15 = DAT_182671648;
  uVar14 = DAT_1826715c0;
  puVar43 = (ulonglong *)(lVar7 - (uVar45 ^ 0x6656db54));
  *puVar43 = (*(ulonglong *)(lVar7 - (uVar20 ^ 0xfebe7126)) ^ uVar30) -
             (CONCAT44(uVar19,uVar44) ^ 0x8c6f45b7a7071276) ^ CONCAT44(DAT_182671648,DAT_182671648);
  uVar45 = CONCAT44(uVar14,uVar14);
  uVar35 = uVar45 ^ uVar49 ^ uVar35 ^ *(ulonglong *)(lVar7 + -0xa88) ^
           *(ulonglong *)(lVar7 + -0x670);
  *puVar3 = uVar35;
  uVar14 = DAT_1826718c8;
  uVar24 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar7 + -0x110) =
       (*(ulonglong *)(lVar7 - (uVar34 ^ 0xeeef7e56)) ^ uVar45) >> ((local_108 ^ 0xdf) & 0x3f) ^
       uVar24;
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x898) = (uVar35 ^ uVar45) << (((byte)uVar40 ^ 0x1f) & 0x3f) ^ uVar42;
  *puVar31 = (CONCAT44(uVar11,uVar10) ^ 0x59f08365159d31e) + 0xa1d0e1345959820e;
  uVar14 = _DAT_1826715dc;
  uVar45 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  *(ulonglong *)(lVar7 + -0x240) =
       (*(ulonglong *)(lVar7 + -0x898) ^ uVar42 | *(ulonglong *)(lVar7 + -0x110) ^ uVar24) ^ uVar45;
  uVar16 = DAT_1826718b0;
  *(undefined1 *)(lVar7 + -0x5e9) = **(undefined1 **)(lVar7 - (uVar53 ^ 0x6e269ddb));
  uVar42 = (uVar49 ^ *(ulonglong *)(lVar7 + -0x670)) -
           (CONCAT44(uVar10,uVar28) ^ 0x3fd1b48373560c46);
  *(ulonglong *)(lVar7 + -0x800) = uVar42 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_182671778;
  *(ulonglong *)(lVar7 + -0x80) =
       uVar42 - (*(ulonglong *)(lVar7 - (uVar29 ^ 0x95a35518)) ^ uVar45) ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_1826716fc;
  lVar6 = DAT_182671560;
  uVar29 = CONCAT44(uVar16,uVar16);
  uVar42 = (*(ulonglong *)(lVar7 - (uVar56 ^ 0x442606c0)) ^ uVar45) +
           (CONCAT44(uVar12,uVar8) ^ 0xf5026a303f120a7c) ^ uVar29;
  *(ulonglong *)(lVar7 + -0xc08) = uVar42;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x8a8) =
       *(ulonglong *)(lVar6 - (uVar26 ^ 0xc022b18)) ^ uVar50 ^ uVar35 ^ uVar42 ^ uVar29;
  uVar14 = DAT_1826718a4;
  *puVar27 = (uVar29 ^ *puVar39) << (((byte)uVar15 ^ (byte)*puVar43) & 0x3f);
  uVar15 = DAT_182671874;
  uVar45 = (*(ulonglong *)(lVar6 + -0x8a8) ^ uVar35) >> ((local_108 ^ 0xfb) & 0x3f);
  *(ulonglong *)(lVar6 + -0x1d8) = uVar45 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_18267185c;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0xa88) =
       (*(ulonglong *)(lVar6 + -0x8a8) ^ uVar35) << ((bVar21 ^ 0x82) & 0x3f) ^ uVar29;
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0xfebe725e)) =
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0x44268f33)) ^ uVar29 | uVar45) ^ uVar42;
  *puVar1 = (uVar50 ^ *puVar2) - (uVar42 ^ *puVar3) ^ uVar46;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar4 ^ uVar47;
  return;
}



############ FUN_ 180ebd830 size=5739 ############

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

void FUN_180ebd830(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  ulonglong *puVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  byte local_res18;
  byte local_res20;
  byte local_f0;
  byte local_e0;
  
  uVar14 = DAT_18267184c;
  uVar13 = DAT_1826717cc;
  uVar12 = DAT_18267179c;
  uVar11 = DAT_1826715b4;
  uVar10 = DAT_1826715ac;
  uVar8 = DAT_182671580;
  uVar6 = DAT_182671578;
  uVar1 = DAT_182671570;
  uVar5 = DAT_182671568;
  uVar45 = (ulonglong)DAT_182671578;
  uVar27 = (ulonglong)DAT_1826715ac;
  uVar50 = DAT_182671578 - DAT_18267157c;
  uVar35 = *(uint *)(&DAT_182611e78 + DAT_182671bdc) ^ DAT_1826715a0;
  uVar25 = (ulonglong)DAT_1826715b4;
  DAT_1826715a8 = DAT_1826715b4 | DAT_1826715a0;
  uVar47 = DAT_1826715b0 & DAT_182671568;
  uVar21 = DAT_182671570 ^ DAT_182671580;
  uVar30 = DAT_1826715ac << 0x10 | DAT_1826715ac >> 0x10;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671bdc) ^ DAT_1826715a8;
  uVar23 = CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar36 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0xf400e981)) ^
           CONCAT44(DAT_18267178c,DAT_18267178c) |
           CONCAT44(DAT_1826717e4,DAT_1826717e4) ^ *(ulonglong *)(DAT_182671560 + -0x1f0);
  DAT_182671590 = uVar47;
  DAT_182671594 = uVar21;
  DAT_182671598 = uVar30;
  DAT_1826715a4 = uVar50;
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar36 ^ uVar23;
  lVar3 = DAT_182671560;
  uVar22 = (ulonglong)uVar8;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar44 = (ulonglong)uVar1;
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(DAT_182671560 + -0x510)) -
       (*(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xf000e1c1)) ^ uVar23) ^ uVar32;
  lVar4 = DAT_182671560;
  uVar24 = CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar38 = (ulonglong)uVar21;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xf481236d)) = uVar36 | uVar24 ^ *(ulonglong *)(lVar3 + -0xc08);
  uVar37 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x481c744)) =
       CONCAT44(DAT_1826718bc,DAT_1826718bc) ^ uVar37 ^ uVar24 ^ *(ulonglong *)(lVar4 + -0xc08) ^
       *(ulonglong *)(lVar4 + -0x9e8);
  uVar13 = DAT_182671880;
  *(ulonglong *)(lVar4 + -0x3b8) =
       0xa3d1404fce25d2d6 >> (((byte)uVar12 ^ *(byte *)(lVar4 + -0x5c8)) & 0x3f);
  uVar41 = (ulonglong)uVar30;
  bVar26 = (byte)uVar10;
  uVar34 = (ulonglong)uVar47;
  uVar36 = (*(ulonglong *)(lVar4 - (uVar41 ^ 0xe45dfb9a)) ^ uVar37) >> ((bVar26 ^ 0x75) & 0x3f);
  *(ulonglong *)(lVar4 + -0x638) = uVar36 ^ CONCAT44(uVar13,uVar13);
  uVar30 = DAT_18267157c;
  puVar16 = (ulonglong *)(lVar4 - (uVar34 ^ 0x82021800));
  uVar39 = CONCAT44(DAT_182671810,DAT_182671810);
  uVar37 = (uVar37 ^ *puVar16) << 0x18;
  *(ulonglong *)(lVar4 + -0x400) = CONCAT44(DAT_18267157c,uVar50) ^ 0xe4779334aa5c832a;
  uVar12 = DAT_182671720;
  *(ulonglong *)(lVar4 + -0x898) = uVar37 ^ uVar39;
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar39 = (uVar37 | uVar36) ^ uVar42;
  puVar19 = (ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x3f808e82));
  *(ulonglong *)(lVar4 + -0x1f0) = uVar39;
  uVar12 = DAT_18267160c;
  lVar3 = DAT_182671560;
  uVar48 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar4 + -0x628) =
       (uVar24 ^ *puVar19) - (*(ulonglong *)(lVar4 - (uVar25 ^ 0xf400ee59)) ^ uVar42) ^ uVar48;
  uVar7 = DAT_1826715b0;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar36 = (ulonglong)uVar5;
  puVar33 = (ulonglong *)(lVar4 - (uVar36 ^ 0xd6021fbc));
  *puVar33 = uVar37 ^ uVar39 ^ uVar42 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0x548);
  uVar12 = DAT_1826717e0;
  uVar39 = CONCAT44(DAT_182671680,DAT_182671680);
  puVar28 = (ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xaac63d71));
  *puVar28 = (*(ulonglong *)(lVar3 - (uVar34 ^ 0x82021d90)) ^ uVar37) >>
             (((byte)uVar7 ^ 0xe5) & 0x3f) ^ uVar39;
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar37 ^ *puVar33) << (((byte)uVar50 ^ 0xb2) & 0x3f) ^ uVar24;
  *(undefined8 *)(lVar3 - (uVar38 ^ 0x481c47c)) = 0xc;
  uVar12 = DAT_1826715f8;
  uVar39 = uVar39 ^ *(ulonglong *)(lVar3 + -0xa0) | uVar24 ^ *(ulonglong *)(lVar3 + -0x9e8);
  uVar24 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar3 + -0x80) = uVar39 ^ uVar24;
  uVar31 = CONCAT44(uVar12,uVar12);
  uVar37 = (ulonglong)DAT_1826715a0;
  puVar20 = (ulonglong *)(lVar3 - (uVar41 ^ 0xe45dff1a));
  uVar40 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  *puVar20 = (uVar32 ^ *(ulonglong *)(lVar3 + -0x548)) - uVar39 ^ uVar31;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267157c ^ 0x408026f4)) =
       *(ulonglong *)(lVar3 - (uVar37 ^ 0x97eaafa8)) ^ uVar40 ^ uVar48 ^ uVar23 ^
       *(ulonglong *)(lVar3 + -0x628);
  *(ulonglong *)(lVar3 - (uVar45 ^ 0x3f808a12)) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x400)) + (uVar42 ^ *(ulonglong *)(lVar3 + -0x1f0));
  uVar12 = DAT_182671794;
  uVar46 = CONCAT44(DAT_182671824,DAT_182671824);
  uVar39 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xfb1ae265)) ^ uVar40) >>
           (((byte)uVar21 ^ 0xfd) & 0x3f);
  uVar37 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(lVar3 + -0xc08) = uVar39 ^ uVar46;
  uVar40 = (uVar40 ^ *(ulonglong *)(lVar3 + -0x638)) << (((byte)uVar6 ^ 0x8d) & 0x3f);
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x510) = uVar40 ^ uVar37;
  uVar7 = DAT_1826715e8;
  uVar42 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xf4812075)) = (uVar39 | uVar40) ^ uVar32;
  uVar13 = DAT_1826716a8;
  uVar29 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar49 = (uVar48 ^ *(ulonglong *)(lVar3 + -0x628)) - (*(ulonglong *)(lVar3 + -0x3b8) ^ uVar32) ^
           uVar29;
  *(uint *)(lVar3 + -0x274) = (DAT_18267157c ^ 0x49770619) + *(int *)(lVar3 + -0x774);
  *(ulonglong *)(lVar3 + -0xa0) = uVar49;
  uVar32 = *(ulonglong *)(lVar3 - (uVar27 ^ 0xfb1ae05d)) ^ uVar31 ^ *(ulonglong *)(lVar3 + -0x3b8) ^
           uVar42 ^ uVar32;
  uVar39 = CONCAT44(DAT_182671828,DAT_182671828);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar32;
  uVar14 = DAT_182671730;
  lVar4 = DAT_182671560;
  uVar37 = ((ulonglong)uVar7 << 0x12 | (ulonglong)(uVar7 >> 0xe)) ^ uVar32 >> 0xe;
  *(ulonglong *)(lVar3 + -0x548) = uVar37 ^ uVar39;
  uVar12 = DAT_182671604;
  lVar3 = DAT_182671560;
  uVar51 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar25 ^ 0xf400ed89)) ^ CONCAT44(uVar13,uVar13)) ^
       uVar51;
  uVar13 = DAT_182671654;
  local_f0 = (byte)uVar47;
  uVar40 = (uVar32 ^ uVar42) << ((local_f0 ^ 0xb2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar40 ^ CONCAT44(uVar12,uVar12);
  lVar3 = DAT_182671560;
  uVar48 = CONCAT44(uVar13,uVar13);
  uVar40 = uVar40 | uVar37;
  uVar37 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  puVar33 = (ulonglong *)(DAT_182671560 + -0x400);
  uVar39 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar40 ^ uVar48;
  uVar12 = DAT_182671648;
  uVar32 = (ulonglong)DAT_18267157c;
  uVar31 = (uVar31 ^ *puVar33) - (*(ulonglong *)(lVar3 + -0x670) ^ uVar37);
  *(ulonglong *)(lVar3 + -0x638) = uVar31 ^ uVar39;
  uVar14 = DAT_182671704;
  uVar13 = DAT_1826716b4;
  uVar42 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xc08) =
       uVar31 - (*(ulonglong *)(lVar3 - (uVar32 ^ 0x40802854)) ^ uVar48) ^ uVar42;
  uVar12 = DAT_182671688;
  uVar43 = CONCAT44(uVar14,uVar14);
  local_res18 = (byte)uVar5;
  uVar48 = CONCAT44(DAT_182671634,DAT_182671634);
  uVar32 = (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0x2a0)) +
           (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar43);
  *(ulonglong *)(lVar3 + -0x510) = uVar32 ^ uVar48;
  uVar13 = DAT_182671710;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x628) = uVar40 - uVar32 ^ uVar31;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar39 = uVar24 ^ *(ulonglong *)(lVar3 + -0x80) ^ uVar49 ^ uVar32 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x3b8) = uVar39;
  *(ulonglong *)(lVar3 + -0x5c8) = (uVar39 ^ uVar32) >> ((local_res18 ^ 0xbc) & 0x3f) ^ uVar51;
  uVar7 = DAT_1826715b0;
  lVar4 = DAT_182671560;
  uVar40 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xf000ede1)) =
       (uVar39 ^ uVar32) << (((byte)uVar1 ^ 0xfd) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar3 + -0x1f0) = CONCAT44(uVar7,uVar6) ^ 0xffdffebfff77f1af | 0x9ed3bebbbd46108f;
  uVar49 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar39 = *(ulonglong *)(lVar4 - (uVar36 ^ 0xd6021344)) ^ uVar40 |
           uVar51 ^ *(ulonglong *)(lVar4 + -0x5c8);
  *(ulonglong *)(lVar4 + -0x400) = *(ulonglong *)(lVar4 + -0x9e8) ^ uVar40 | 0xad08a8d0f341a6d6;
  uVar12 = DAT_1826717a8;
  *(ulonglong *)(lVar4 + -0x548) = uVar39 ^ uVar49;
  lVar3 = DAT_182671560;
  uVar29 = (*(ulonglong *)(lVar4 + -0xa0) ^ uVar29) - (*(ulonglong *)(lVar4 + -0x610) ^ uVar43);
  *(ulonglong *)(lVar4 + -0x638) = uVar29 ^ CONCAT44(uVar12,uVar12);
  uVar9 = DAT_1826716f8;
  uVar32 = (ulonglong)DAT_1826716f8;
  puVar17 = (ulonglong *)(lVar3 - (uVar25 ^ 0xf400ef29));
  uVar40 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar29 = uVar29 - uVar39 ^ uVar40;
  *(ulonglong *)(lVar3 + -0x898) = uVar29;
  uVar7 = DAT_18267157c;
  uVar39 = (ulonglong)DAT_1826715a8;
  *puVar17 = ((ulonglong)(uVar9 >> 0x17) | uVar32 << 9) ^ uVar29 >> 0x17;
  uVar9 = DAT_1826715a0;
  lVar4 = DAT_182671560;
  bVar2 = (byte)DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 - (uVar39 ^ 0xf7eaec51)) =
       (CONCAT44(DAT_1826715a0,uVar7) ^ 0x6815559fbf7fdf38) -
       (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar31) ^ uVar24;
  *(uint *)(lVar4 + -0x774) = *(uint *)(lVar4 + -0x374) >> ((bVar2 ^ 0xd5) & 0x1f);
  uVar12 = DAT_18267162c;
  uVar32 = CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar24 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x3b8)) + (uVar49 ^ *(ulonglong *)(lVar4 + -0x548)) ^
           uVar32;
  *(ulonglong *)(lVar4 + -0x1f0) = uVar24;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar24 = *(ulonglong *)(lVar4 + -0xc08) ^ uVar39 ^ uVar24 ^ uVar32 ^ uVar42;
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar24;
  *puVar20 = (uVar24 ^ uVar39) >> ((local_f0 ^ 0xa0) & 0x3f) ^ uVar46;
  puVar18 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar50 ^ 0xff006476));
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x481c1d4)) =
       (*puVar18 ^ uVar51) - (CONCAT44(uVar30,uVar47) ^ 0x60d11b024c3d831c);
  uVar32 = CONCAT44(DAT_182671830,DAT_182671830);
  uVar24 = (*(ulonglong *)(DAT_182671560 + -0x9e8) ^ uVar39) << 0x20;
  *(ulonglong *)(DAT_182671560 + -0xa0) = uVar24 ^ uVar32;
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *(ulonglong *)(DAT_182671560 + -0x638) =
       (uVar24 | *(ulonglong *)(DAT_182671560 + -0x400) ^ uVar46) ^ uVar29;
  uVar39 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar3 + -0x80) =
       (uVar42 ^ *puVar19) - (*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x97eaac58)) ^ uVar29) ^
       uVar23;
  uVar42 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar31 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b0 ^ 0xaac63549)) ^
           *(ulonglong *)(lVar3 + -0x628) ^ uVar39 ^ uVar40 ^ uVar31;
  *(ulonglong *)(lVar3 + -0x548) = uVar31;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xf000e7b1)) =
       (uVar31 ^ uVar39) >> (((byte)uVar7 ^ 0xec) & 0x3f) ^ uVar42;
  uVar24 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar50 ^ 0xff00604e)) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x548)) << ((local_res18 ^ 0x8c) & 0x3f) ^ uVar24;
  uVar7 = DAT_1826716bc;
  uVar51 = **(ulonglong **)(lVar3 - (uVar36 ^ 0xd602129c)) ^ uVar51;
  uVar46 = (ulonglong)DAT_1826716bc;
  uVar36 = *(ulonglong *)(lVar3 + -0x1f0) ^ uVar24 | *(ulonglong *)(lVar3 + -0x3b8) ^ uVar42;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar51;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x610) = uVar36 ^ uVar31;
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (CONCAT44(uVar1,uVar5) ^ 0x557db83259674f32) >> ((local_f0 ^ 0xbb) & 0x3f);
  uVar1 = DAT_1826715a8;
  lVar3 = DAT_182671560;
  uVar39 = CONCAT44(DAT_182671708,DAT_182671708);
  uVar24 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(DAT_182671560 + -0x400) =
       (uVar40 ^ *(ulonglong *)(DAT_182671560 + -0x898)) - uVar36 ^ uVar39;
  puVar19 = (ulonglong *)(lVar3 - ((ulonglong)uVar1 ^ 0xf7eae9f9));
  *(ulonglong *)(lVar3 + -0xa0) =
       uVar23 ^ *(ulonglong *)(lVar3 + -0x80) ^ *puVar19 ^ uVar24 ^ uVar31;
  uVar40 = CONCAT44(DAT_182671834,DAT_182671834);
  local_res20 = (byte)uVar11;
  local_e0 = (byte)(uVar10 >> 0x10);
  *(ulonglong *)(lVar3 + -0xc08) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar1 ^ 0xf7eaef49)) ^ uVar24) >>
       ((local_res20 ^ 0x93) & 0x3f) ^ uVar40;
  uVar12 = DAT_1826717d4;
  uVar7 = DAT_182671698;
  uVar43 = (ulonglong)DAT_182671698;
  *(ulonglong *)(lVar3 + -0x628) = uVar51 << ((local_e0 ^ 0x1e) & 0x3f);
  uVar13 = DAT_1826717f0;
  lVar3 = DAT_182671560;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar49 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (*(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x3f80822a)) ^ uVar24) <<
       (((byte)uVar21 ^ 0xc2) & 0x3f) ^ uVar36;
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar24 = *(ulonglong *)(lVar3 - (uVar25 ^ 0xf400e3a1)) ^ uVar40 |
           *(ulonglong *)(lVar3 - (uVar45 ^ 0x3f8087c2)) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x3b8) = uVar24 ^ uVar31;
  uVar36 = *(ulonglong *)(lVar4 + -0x638);
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar23 ^ *(ulonglong *)(lVar3 + -0x80)) - uVar24 ^ uVar49;
  uVar23 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(lVar4 - (uVar45 ^ 0x3f808b62)) = uVar36 ^ *puVar20 ^ uVar23 ^ uVar39 ^ uVar29;
  uVar40 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x82021018)) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x9e8)) >> ((bVar26 ^ 0x4b) & 0x3f) ^ uVar40;
  uVar34 = CONCAT44(DAT_182671664,DAT_182671664);
  uVar36 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xe45dfed2)) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x9e8)) << (((byte)uVar8 ^ 0x23) & 0x3f) ^ uVar34;
  uVar24 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x408026e4)) =
       (uVar34 ^ *(ulonglong *)(lVar4 + -0x5c8) | uVar40 ^ *(ulonglong *)(lVar4 + -0x898)) ^ uVar24;
  uVar12 = DAT_182671608;
  lVar3 = DAT_182671560;
  uVar36 = *(ulonglong *)(lVar4 + -0x628);
  uVar40 = CONCAT44(DAT_18267169c,DAT_18267169c);
  puVar33 = (ulonglong *)(DAT_182671560 + -0x1f0);
  uVar42 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (*(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xf000e009)) ^ uVar39) - (uVar24 ^ uVar36) ^ uVar40
  ;
  uVar34 = (ulonglong)DAT_182671790;
  uVar39 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar36 = *puVar33 ^ uVar39 ^ uVar24 ^ uVar49 ^ uVar36;
  *(ulonglong *)(lVar3 + -0xc08) = uVar36;
  uVar34 = (uVar36 >> 0x20 ^ uVar34) >> 0xe;
  *(ulonglong *)(lVar3 + -0x548) = uVar34 ^ uVar42;
  uVar36 = (uVar39 ^ uVar36) << 0x12;
  uVar1 = DAT_1826715b0 >> 0x11;
  *(ulonglong *)(lVar3 + -0x80) = uVar36 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_1826718b0;
  uVar36 = uVar36 | uVar34;
  *(ulonglong *)(lVar3 + -0x638) = ((ulonglong)uVar1 | uVar25 << 0xf) ^ 0x9f3c511e977;
  uVar25 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar36 ^ uVar25;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x898) = (*(ulonglong *)(lVar3 + -0x610) >> 0x20 ^ uVar46) >> 3;
  uVar34 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar4 - (uVar45 ^ 0x3f808742)) =
       (*(ulonglong *)(lVar4 + -0x1f0) ^ uVar49) - uVar36 ^ uVar34;
  uVar12 = DAT_1826716f4;
  uVar24 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar31 = uVar24 ^ *puVar28 ^ *(ulonglong *)(lVar4 + -0x3b8) ^ uVar40 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x400) = uVar31;
  uVar39 = (uVar31 ^ uVar24) >> ((local_res18 ^ 0xa0) & 0x3f);
  *(longlong *)(lVar4 + -0xc08) = *(longlong *)(lVar4 + -0x638) << 0x1f;
  uVar13 = DAT_1826717ec;
  *(ulonglong *)(lVar4 + -0x628) = uVar39 ^ CONCAT44(uVar12,uVar12);
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x548) = (uVar31 ^ uVar24) << ((local_e0 ^ 0x2e) & 0x3f) ^ uVar36;
  uVar1 = DAT_1826715a0;
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(DAT_18267177c,DAT_18267177c);
  uVar39 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a0 ^ 0x97eaaf28)) ^ uVar36 |
           uVar39) ^ uVar32;
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar39;
  uVar12 = DAT_18267187c;
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x481c764)) ^ uVar40) - (*puVar16 ^ uVar32) ^ uVar24;
  uVar36 = (ulonglong)DAT_1826715a8;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x898) = uVar39 ^ *puVar18 ^ uVar34 ^ uVar49 ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xf481223d)) =
       *(ulonglong *)(lVar3 - (uVar36 ^ 0xf7eae771)) >> 0x19 ^
       ((ulonglong)(uVar7 >> 0x19) | uVar43 << 7) ^ uVar31;
  uVar13 = DAT_1826716c8;
  uVar36 = (*(ulonglong *)(lVar3 - (uVar22 ^ 0xf000ec91)) ^ uVar49) << (((byte)uVar6 ^ 0xad) & 0x3f)
  ;
  *(ulonglong *)(lVar3 + -0x3b8) = uVar36 ^ CONCAT44(DAT_182671660,DAT_182671660);
  uVar14 = DAT_1826717c0;
  uVar12 = DAT_182671624;
  uVar44 = CONCAT44(uVar13,uVar13);
  uVar36 = *(ulonglong *)(lVar3 + -0x1f0) ^ uVar31 | uVar36;
  *(ulonglong *)(lVar3 + -0x638) = uVar36 ^ uVar44;
  uVar22 = CONCAT44(uVar30,DAT_1826715b0);
  uVar34 = (*puVar18 ^ uVar34) - (*(ulonglong *)(lVar3 + -0x6d0) ^ uVar23);
  *(ulonglong *)(lVar3 + -0xc08) = uVar34 ^ CONCAT44(uVar12,uVar12);
  uVar13 = DAT_182671750;
  uVar12 = _DAT_1826715dc;
  *(ulonglong *)(lVar3 + -0x400) = uVar34 - uVar36 ^ CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(uVar12,uVar12);
  puVar33 = (ulonglong *)(lVar3 - (uVar27 ^ 0xfb1ae275));
  *puVar33 = (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0x1d8)) +
             (*(ulonglong *)(lVar3 + -0x670) ^ uVar37) ^ uVar36;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xe45dfe52)) = uVar22 ^ 0xb1d81c777e5df238;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar1 ^ 0x97eaaac0)) =
       (*(ulonglong *)(lVar3 + -0x638) ^ uVar44) - (uVar36 ^ *puVar33) ^ uVar29;
  uVar36 = (ulonglong)DAT_1826716d4;
  uVar34 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar3 + -0x80) =
       *(ulonglong *)(lVar3 - (uVar38 ^ 0x481ce2c)) ^ uVar34 ^ uVar24 ^ uVar25 ^
       *(ulonglong *)(lVar3 + -0x610);
  *(ulonglong *)(lVar3 + -0x898) = CONCAT44(uVar47,uVar8) ^ 0x13a941c310a004c9 | 0xc41416382f179204;
  uVar44 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xfb1ae5ad)) = (*puVar17 >> 0x20 ^ uVar36) >> 1 ^ uVar44;
  uVar25 = (ulonglong)DAT_18267157c;
  uVar36 = (*(ulonglong *)(lVar3 + -0x80) ^ uVar34) << 0x1f;
  uVar41 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar3 + -0x3b8) = uVar36 ^ CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar36 = *(ulonglong *)(lVar3 - (uVar25 ^ 0x4080213c)) ^ uVar44 | uVar36;
  uVar34 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar3 + -0x5c8) = uVar36 ^ uVar41;
  uVar25 = (uVar24 ^ *puVar19) - (*(ulonglong *)(lVar3 + -0x510) ^ uVar48);
  *(ulonglong *)(lVar3 + -0xc08) = uVar25 ^ uVar34;
  uVar12 = DAT_1826715bc;
  *(ulonglong *)(lVar3 + -0x548) =
       CONCAT44(uVar11,uVar11) ^ 0x8792afeb8012ed0c | CONCAT44(uVar5,uVar1) ^ 0xd0347a4a29cbe802;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x481c1fc)) = uVar25 - uVar36 ^ CONCAT44(uVar12,uVar12);
  uVar34 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar36 = *(ulonglong *)(lVar3 + -0x240);
  uVar25 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar35;
  *(ulonglong *)(lVar3 + -0x9e8) = (uVar22 ^ 0xbf7fdf335539c224) - (uVar34 ^ uVar36) ^ uVar25;
  return;
}



############ FUN_ 180e6f290 size=4972 ############

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

void FUN_180e6f290(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte local_b0;
  
  uVar11 = DAT_182671890;
  uVar4 = DAT_182671858;
  uVar9 = DAT_1826715b4;
  uVar8 = DAT_1826715ac;
  lVar2 = DAT_182671560;
  uVar36 = (ulonglong)DAT_1826715ac;
  uVar34 = (ulonglong)DAT_1826715b4;
  uVar23 = DAT_1826715ac | DAT_1826715b4;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671af8);
  uVar15 = *(uint *)(&DAT_182611e78 + DAT_182671af8) ^ DAT_1826715ac;
  uVar27 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar31 = (ulonglong)uVar23;
  puVar24 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x1c022cd0));
  DAT_18267158c = uVar23;
  *puVar24 = (*(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x1c0222a8)) ^
              CONCAT44(DAT_182671640,DAT_182671640) |
             CONCAT44(DAT_1826717e4,DAT_1826717e4) ^ *(ulonglong *)(DAT_182671560 + -0x1d8)) ^
             uVar27;
  uVar10 = DAT_182671748;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar18 = (CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar2 + -0x670)) -
           (CONCAT44(uVar23,uVar8) ^ 0xb8717fac21d4ea5b);
  *(ulonglong *)(lVar2 + -0xa88) = uVar18 ^ uVar29;
  uVar4 = _DAT_182671610;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x318) = uVar18 - (uVar27 ^ *puVar24) ^ uVar20;
  uVar21 = CONCAT44(uVar4,uVar4);
  uVar18 = (uVar27 ^ *(ulonglong *)(lVar2 + -0x6d0)) + (CONCAT44(uVar9,uVar8) ^ 0x9e7807a30d5fb074)
           ^ uVar21;
  uVar16 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar2 + -0x628) = uVar18;
  uVar4 = DAT_1826716c8;
  lVar2 = DAT_182671560;
  uVar22 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar27 = *(ulonglong *)(DAT_182671560 + -0xc08) ^ uVar22 ^ uVar16 ^ uVar18 ^ uVar21;
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar27;
  uVar10 = DAT_1826716e8;
  uVar28 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x80) = (uVar16 ^ uVar27) >> (((byte)uVar8 ^ 0x85) & 0x3f) ^ uVar28;
  lVar2 = DAT_182671560;
  bVar13 = (byte)uVar23;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x1c022b10)) =
       (uVar16 ^ uVar27) << ((bVar13 ^ 0xbb) & 0x3f) ^ uVar18;
  uVar4 = DAT_182671620;
  *(ulonglong *)(lVar2 + -0xbf0) = CONCAT44(uVar9,uVar8) ^ 0xa4ade9540abcecf1;
  uVar10 = DAT_182671840;
  uVar27 = CONCAT44(uVar4,uVar4);
  uVar18 = *(ulonglong *)(lVar2 + -0x110) ^ uVar18 | *(ulonglong *)(lVar2 + -0x80) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x240) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x628)) - (CONCAT44(uVar8,uVar23) ^ 0x2b2214b8798b138b);
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x898) = uVar18 ^ uVar27;
  puVar24 = (ulonglong *)(lVar2 - (uVar31 ^ 0x5c262628));
  *puVar24 = (*(ulonglong *)(lVar2 + -0xc08) ^ uVar22) - uVar18 ^ uVar28;
  uVar10 = DAT_1826716f0;
  uVar22 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar21 = CONCAT44(DAT_182671760,DAT_182671760) ^ *(ulonglong *)(lVar2 + -0x318) ^
           *(ulonglong *)(lVar2 + -0x2a0) ^ uVar22 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar21;
  uVar4 = DAT_18267168c;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x670) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x44260558)) ^ uVar22) >>
       ((bVar13 ^ 0xa5) & 0x3f) ^ uVar25;
  uVar18 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x6d0) = (uVar21 ^ uVar22) << (((byte)uVar9 ^ 0x1b) & 0x3f) ^ uVar18;
  uVar6 = DAT_1826716ac;
  uVar22 = (ulonglong)DAT_1826716ac;
  *(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x1c022368)) = (uVar8 ^ 0xd4757da6) + (uVar9 ^ 0x61536426);
  uVar4 = _DAT_1826715f0;
  puVar17 = (ulonglong *)(lVar2 - (uVar36 ^ 0x44260250));
  uVar35 = CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar18 = uVar25 ^ *(ulonglong *)(lVar2 + -0x670) | uVar18 ^ *puVar17;
  uVar25 = uVar18 ^ uVar35;
  *(ulonglong *)(lVar2 + -0x800) = uVar25;
  uVar21 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0xbf0) = (*(ulonglong *)(lVar2 + -0x318) ^ uVar20) - uVar18 ^ uVar21;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267156c ^ 0x9c2fbf08)) =
       CONCAT44(uVar6,uVar6) ^ uVar35 ^ *puVar24 ^ uVar28 ^ uVar25;
  uVar10 = DAT_1826718ac;
  uVar5 = DAT_182671570;
  *(ulonglong *)(lVar2 + -0x110) =
       ((ulonglong)(uVar8 >> 0x1b) | (ulonglong)uVar9 << 5) ^ 0x14255ed04;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x8d44bb9f)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671580 ^ 0xf3f5877c)) >> 0x17 ^
       ((ulonglong)(uVar6 >> 0x17) | uVar22 << 9) ^ uVar20;
  uVar10 = DAT_182671638;
  uVar18 = (*(ulonglong *)(lVar2 + -0x80) ^ CONCAT44(uVar6,uVar6)) << 0x29;
  *(ulonglong *)(lVar2 + -0x240) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0xa88)) -
       (CONCAT44(uVar9,DAT_182671598) ^ 0x58a2ad6d7276d95b);
  uVar6 = DAT_182671584;
  *(ulonglong *)(lVar2 + -0xc08) = uVar18 ^ CONCAT44(uVar10,uVar10);
  uVar22 = uVar20 ^ *(ulonglong *)(lVar2 + -0x628) | uVar18;
  *(ulonglong *)(lVar2 + -0x2a0) =
       uVar18 << ((*(byte *)(lVar2 - ((ulonglong)uVar6 ^ 0x6656db54)) ^ (byte)uVar4) & 0x3f);
  uVar4 = DAT_1826715c4;
  uVar20 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar22 ^ uVar20;
  uVar7 = DAT_1826715a8;
  uVar32 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x442602f0)) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x8a8)) - uVar22 ^ uVar32;
  uVar4 = DAT_1826715a4;
  uVar22 = CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar28 = CONCAT44(DAT_182671848,DAT_182671848);
  uVar18 = uVar22 ^ uVar21 ^ *(ulonglong *)(lVar2 + -0x898) ^ uVar27 ^
           *(ulonglong *)(lVar2 + -0xbf0);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar18;
  uVar6 = DAT_182671594;
  *(ulonglong *)(lVar2 + -0x318) = (uVar18 ^ uVar22) >> ((bVar13 ^ 0xa8) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x110) = (CONCAT44(uVar6,uVar4) ^ 0xc7533203623c1333) + 0x10487b32793179db
  ;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x44260e08)) =
       (uVar22 ^ uVar18) << (((byte)uVar7 ^ 0xf6) & 0x3f) ^ uVar27;
  uVar10 = DAT_182671844;
  uVar29 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar18 = uVar27 ^ *(ulonglong *)(lVar2 + -0xa88) | *(ulonglong *)(lVar2 + -0x318) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x240) = uVar18 ^ uVar29;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 + -0x80) =
       (uVar21 ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) - uVar18 ^ uVar25;
  lVar2 = DAT_182671560;
  uVar18 = (ulonglong)DAT_182671588;
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x5c262c20)) =
       CONCAT44(uVar5,uVar4) ^ 0x2c5d41f3ac665eb7 | *(ulonglong *)(DAT_182671560 + -0x898) ^ uVar27;
  uVar28 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar18 = *(ulonglong *)(lVar2 - (uVar31 ^ 0x5c262cc0)) ^
           *(ulonglong *)(lVar2 - (uVar18 ^ 0x95a35128)) ^ uVar28 ^ uVar29 ^ uVar32;
  uVar21 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar2 + -0x628) = uVar18;
  uVar12 = DAT_18267181c;
  uVar4 = DAT_182671568;
  uVar27 = (uVar18 ^ uVar28) >> (((byte)uVar9 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc08) = uVar27 ^ uVar21;
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar18 = (uVar28 ^ uVar18) << (((byte)uVar4 ^ 0xb7) & 0x3f);
  uVar37 = CONCAT44(DAT_182671808,DAT_182671808);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar18 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x110) = uVar27 + (*(ulonglong *)(lVar2 + -0x240) ^ uVar29);
  uVar10 = DAT_1826717ec;
  uVar18 = *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x96bf33e6)) ^ uVar21 | uVar18;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar18 ^ uVar37;
  uVar4 = DAT_18267172c;
  uVar29 = CONCAT44(uVar10,uVar10);
  uVar33 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x670)) - uVar18 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x318) = uVar33;
  uVar30 = CONCAT44(uVar4,uVar4);
  uVar21 = *(ulonglong *)(lVar2 + -0x1d8) ^ *(ulonglong *)(lVar2 + -0x80) ^ uVar30 ^ uVar25 ^ uVar20
  ;
  uVar18 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *(ulonglong *)(lVar2 + -0xa88) = uVar21;
  uVar4 = DAT_1826717dc;
  lVar3 = DAT_182671560;
  uVar32 = (*(ulonglong *)(lVar2 - (uVar34 ^ 0x1c022088)) ^ uVar30) >>
           (((byte)DAT_1826715a4 ^ 0x4f) & 0x3f);
  uVar27 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar21 = (uVar30 ^ uVar21) << 7;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar32 ^ uVar18;
  uVar18 = *(ulonglong *)(lVar3 + -0x800);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar21 ^ uVar27;
  uVar26 = CONCAT44(uVar4,uVar4);
  uVar27 = (ulonglong)DAT_182671588;
  uVar28 = (ulonglong)DAT_18267156c;
  uVar21 = (uVar32 | uVar21) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x898) = uVar21;
  puVar24 = (ulonglong *)(lVar3 - (uVar27 ^ 0x95a357d8));
  *(ulonglong *)(lVar3 + -0x628) = uVar32 | uVar35 ^ uVar18;
  uVar5 = DAT_18267157c;
  uVar32 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  bVar13 = (byte)DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0x240) =
       (*puVar24 ^ uVar25) - (*(ulonglong *)(lVar3 - (uVar28 ^ 0x9c2fb710)) ^ uVar26) ^ uVar32;
  uVar4 = DAT_182671590;
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar28 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar21 = uVar27 ^ uVar26 ^ uVar33 ^ uVar29 ^ uVar21;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar21;
  uVar18 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xc022408)) =
       (uVar27 ^ uVar21) >> ((bVar13 ^ 0xb7) & 0x3f) ^ uVar28;
  uVar11 = DAT_1826717d0;
  *(uint *)(lVar2 + -0x27c) =
       *(uint *)(lVar2 - (uVar18 ^ 0xeeef7f82)) >> ((byte)*(undefined4 *)(lVar2 + -0x910) & 0x1f);
  uVar10 = DAT_18267165c;
  uVar18 = (*(ulonglong *)(lVar2 - (uVar36 ^ 0x44260590)) ^ uVar27) <<
           (((byte)DAT_1826715a8 ^ 0xdc) & 0x3f);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar18 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671730;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x670) = (uVar18 | uVar28 ^ *(ulonglong *)(lVar2 + -0xc08)) ^ uVar21;
  uVar9 = DAT_1826715b0;
  uVar27 = CONCAT44(uVar11,uVar11);
  puVar19 = (ulonglong *)(lVar2 - (uVar31 ^ 0x5c262f58));
  uVar18 = (ulonglong)DAT_182671570;
  *puVar19 = (*(ulonglong *)(lVar2 + -0x318) ^ uVar29) -
             (CONCAT44(uVar6,uVar4) ^ 0x4557eb90c81d5e24) ^ uVar27;
  uVar4 = DAT_182671694;
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x1d8)) -
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x8d44bbc7)) ^ uVar21) ^ uVar20;
  uVar10 = DAT_182671794;
  uVar5 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar26 = (ulonglong)DAT_182671578;
  uVar28 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (uVar21 ^ *(ulonglong *)(DAT_182671560 + -0x670)) -
       (CONCAT44(uVar9,DAT_182671578) ^ 0x9743d6627fd5245f) ^ uVar28;
  uVar6 = DAT_182671598;
  uVar29 = CONCAT44(uVar10,uVar10);
  uVar25 = CONCAT44(DAT_18267163c,DAT_18267163c);
  uVar27 = uVar29 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0x240) ^ uVar37 ^
           *(ulonglong *)(lVar2 + -0x6d0);
  uVar18 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar27;
  uVar4 = DAT_182671664;
  *(ulonglong *)(lVar2 + -0x800) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x4804fd6)) ^ uVar29) >> (((byte)uVar5 ^ 0xee) & 0x3f) ^
       uVar25;
  uVar21 = CONCAT44(uVar4,uVar4);
  uVar18 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267156c ^ 0x9c2fb9a0)) =
       (uVar29 ^ uVar27) << (((byte)uVar9 ^ 0x32) & 0x3f) ^ uVar21;
  uVar5 = DAT_182671580;
  uVar27 = (ulonglong)DAT_18267157c;
  uVar21 = *(ulonglong *)(lVar2 - (uVar18 ^ 0x95a35170)) ^ uVar21 |
           uVar25 ^ *(ulonglong *)(lVar2 + -0x800);
  *(ulonglong *)(lVar2 + -0x80) = uVar21 ^ uVar16;
  uVar10 = DAT_182671738;
  lVar3 = DAT_182671560;
  uVar18 = (*(ulonglong *)(lVar2 - (uVar27 ^ 0xc022a40)) ^ uVar32) -
           (CONCAT44(uVar7,uVar6) ^ 0xfc6e1d358f3efcc9);
  *(ulonglong *)(lVar2 + -0x898) = uVar18 ^ uVar30;
  uVar4 = DAT_182671684;
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x110) = uVar18 - uVar21 ^ uVar32;
  uVar18 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xf3f58bf4)) =
       (CONCAT44(uVar6,DAT_1826715a4) ^ 0xd2ecee7194d2f5a3) + uVar21 ^ uVar18;
  uVar27 = (ulonglong)DAT_18267160c;
  uVar25 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar29 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  uVar18 = uVar25 ^ uVar18 ^ *(ulonglong *)(lVar3 + -0xc08) ^ uVar20 ^
           *(ulonglong *)(lVar3 + -0xa88);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar18;
  uVar21 = CONCAT44(uVar8,DAT_182671594);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x1c022918)) = uVar18 >> 0x20 ^ uVar29 ^ uVar27;
  uVar10 = DAT_182671758;
  *puVar19 = (uVar21 ^ 0xcbddd1562396ff9b) >> (((byte)DAT_1826715a0 ^ 0xa1) & 0x3f);
  uVar4 = DAT_1826715d0;
  uVar27 = CONCAT44(uVar10,uVar10);
  puVar19 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xf3f5818c));
  uVar18 = (ulonglong)DAT_18267156c;
  *puVar19 = (uVar25 ^ *(ulonglong *)(lVar3 + -0x8a8)) << (((byte)DAT_18267159c ^ 0xa0) & 0x3f) ^
             uVar27;
  uVar10 = DAT_1826716d8;
  uVar25 = CONCAT44(uVar4,uVar4);
  uVar18 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x9c2fbc90)) ^ uVar29 |
           uVar27 ^ *(ulonglong *)(lVar3 + -0x670);
  *(ulonglong *)(lVar3 + -0x6d0) = uVar18 ^ uVar25;
  *(ulonglong *)(lVar3 + -0xbf0) =
       uVar27 ^ *(ulonglong *)(lVar3 + -0x80) ^ uVar16 ^ *(ulonglong *)(lVar3 + -0x670);
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar16 = CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar3 + -0x800) = (uVar20 ^ *(ulonglong *)(lVar3 + -0xa88)) - uVar18 ^ uVar30;
  uVar29 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  bVar13 = (byte)DAT_18267157c;
  uVar18 = uVar16 ^ uVar32 ^ uVar28 ^ *(ulonglong *)(lVar3 + -0x110) ^
           *(ulonglong *)(lVar3 + -0x2a0);
  *(ulonglong *)(lVar3 + -0x628) = uVar18;
  uVar5 = DAT_182671574;
  uVar27 = CONCAT44(uVar23,DAT_182671574);
  *(ulonglong *)(lVar3 + -0x240) = (uVar18 ^ uVar16) >> ((bVar13 ^ 0x20) & 0x3f) ^ uVar29;
  lVar2 = DAT_182671560;
  uVar20 = (uVar16 ^ uVar18) << (((byte)uVar5 ^ 0xd6) & 0x3f);
  uVar16 = (ulonglong)DAT_182671594;
  uVar18 = *(ulonglong *)(DAT_182671560 + -0x110);
  *(ulonglong *)(lVar3 + -0x898) = uVar20 ^ CONCAT44(DAT_1826718d4,DAT_1826718d4);
  uVar10 = DAT_1826716d0;
  uVar21 = (ulonglong)DAT_182671598;
  uVar20 = *(ulonglong *)(lVar3 - (uVar16 ^ 0x6e269bf9)) ^ uVar29 | uVar20;
  *(ulonglong *)(lVar3 + -0xc08) = uVar20 ^ uVar22;
  uVar4 = _DAT_1826715d8;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x1d8) = (uVar32 ^ uVar18) - uVar20 ^ uVar28;
  uVar10 = _DAT_182671838;
  uVar22 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0x44268db1)) ^
           *(ulonglong *)(lVar2 - (uVar21 ^ 0x4804c26)) ^ uVar30 ^ uVar22;
  bVar13 = (byte)DAT_182671584;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar22 ^ CONCAT44(uVar4,uVar4);
  uVar11 = DAT_182671704;
  uVar4 = DAT_182671568;
  uVar16 = uVar22 >> ((bVar13 ^ 0x9e) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar16 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671670;
  uVar22 = uVar22 << (((byte)uVar4 ^ 0xbd) & 0x3f);
  uVar18 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar22 ^ CONCAT44(uVar11,uVar11);
  uVar20 = CONCAT44(uVar10,uVar10);
  *puVar24 = (uVar16 | uVar22) ^ uVar20;
  uVar4 = DAT_182671614;
  lVar2 = DAT_182671560;
  uVar21 = CONCAT44(DAT_182671788,DAT_182671788);
  uVar32 = (ulonglong)DAT_18267159c;
  uVar16 = CONCAT44(uVar8,DAT_182671584);
  puVar24 = (ulonglong *)(DAT_182671560 + -0x1d8);
  bVar13 = (byte)DAT_18267159c;
  uVar30 = (uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x800)) -
           (*(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x2a001c82)) ^ uVar20) ^ uVar21;
  uVar29 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar30;
  uVar10 = DAT_1826717d4;
  uVar22 = uVar28 ^ uVar25 ^ *puVar24 ^ *puVar17;
  uVar18 = uVar22 ^ uVar29;
  *(ulonglong *)(lVar2 + -0xa88) = uVar18;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (uVar16 ^ 0x50b8ebe816a0fc2d) >> (((byte)uVar18 ^ (byte)uVar4) & 0x3f);
  uVar16 = (uVar29 ^ *(ulonglong *)(lVar3 + -0xa88)) >> ((bVar13 ^ 0x96) & 0x3f);
  uVar18 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar3 + -0x628) = uVar16 ^ CONCAT44(uVar10,uVar10);
  uVar4 = DAT_182671798;
  *(ulonglong *)(lVar3 + -0x240) = uVar22 << 0x2a ^ uVar18;
  uVar5 = DAT_1826715ec;
  uVar22 = (ulonglong)DAT_1826715ec;
  uVar29 = CONCAT44(uVar4,uVar4);
  uVar25 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0x4e2f3ec0)) ^ uVar18 | uVar16) ^ uVar29;
  uVar16 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar3 + -0x898) = uVar25;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x1d8)) -
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x491e3366)) ^ uVar29) ^ uVar16;
  uVar18 = CONCAT44(uVar5,uVar5);
  bVar13 = (byte)DAT_182671588;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a8 ^ 0x96bf3746)) =
       uVar25 ^ uVar30 ^ uVar18 ^ uVar29 ^ uVar21;
  uVar10 = DAT_1826718c4;
  bVar14 = (byte)DAT_182671580;
  *(ulonglong *)(lVar3 + -0x318) = 0x79307d3f0e1ac482 >> (bVar13 & 0x3f);
  uVar4 = _DAT_1826715dc;
  uVar18 = (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar18) << ((bVar14 ^ 0xee) & 0x3f);
  uVar22 = (*(ulonglong *)(lVar3 + -0x8a8) >> 0x20 ^ uVar22) >> 0xe;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar22 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_1826716b0;
  uVar5 = DAT_1826716a8;
  *(ulonglong *)(lVar3 + -0x800) = uVar18 ^ CONCAT44(uVar4,uVar4);
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x6d0) = (uVar22 | uVar18) ^ uVar28;
  uVar4 = DAT_1826716c4;
  local_b0 = (byte)uVar12;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671594 ^ 0x6e269b19)) =
       (uVar27 ^ 0xdbc5a08c7357139) >>
       ((*(byte *)(lVar3 - (uVar36 ^ 0x44260888)) ^ local_b0) & 0x3f);
  uVar18 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0xa88) =
       (uVar21 ^ *puVar19) - (*(ulonglong *)(lVar3 + -0x6d0) ^ uVar28) ^ CONCAT44(uVar4,uVar4);
  uVar4 = DAT_182671708;
  uVar27 = (ulonglong)DAT_1826715b0;
  uVar20 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x442680a9)) ^ CONCAT44(uVar5,uVar5) ^
           *(ulonglong *)(lVar3 + -0x80) ^ uVar16 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x628) = uVar20;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar23) * 4) = uVar15;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x2a001e42)) =
       ((ulonglong)uVar5 << 0x14 | (ulonglong)(uVar5 >> 0xc)) ^ uVar20 >> 0xc ^
       CONCAT44(uVar4,uVar4);
  return;
}



############ FUN_ 180ec2d80 size=5768 ############

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

void FUN_180ec2d80(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_res18;
  byte local_128;
  byte local_110;
  byte local_108;
  byte local_e0;
  byte local_c0;
  byte local_90;
  
  uVar9 = DAT_1826715b0;
  uVar8 = DAT_1826715a4;
  uVar7 = DAT_1826715a0;
  uVar6 = DAT_18267159c;
  uVar18 = DAT_182671598;
  uVar3 = DAT_18267157c;
  uVar5 = DAT_182671570;
  uVar4 = DAT_18267156c;
  uVar35 = (ulonglong)DAT_182671598;
  uVar36 = (ulonglong)DAT_18267156c;
  uVar23 = (ulonglong)DAT_1826715a4;
  uVar37 = (ulonglong)DAT_1826715b0;
  uVar48 = (ulonglong)DAT_18267159c;
  uVar31 = (ulonglong)DAT_18267157c;
  uVar30 = (ulonglong)DAT_1826715a0;
  uVar24 = (ulonglong)DAT_182671570;
  DAT_182671578 =
       (DAT_182671598 << 0x10 | DAT_182671598 & 0xff00) << 8 | DAT_182671598 >> 8 & 0xff00 |
       DAT_182671598 >> 0x18;
  bVar16 = (byte)DAT_1826715a4;
  uVar43 = DAT_18267159c;
  if ((DAT_1826715a4 & 1) == 0) {
    uVar43 = DAT_1826715a4;
  }
  uVar32 = DAT_1826715a0 ^ DAT_182671570;
  DAT_1826715b4 = DAT_18267157c * DAT_1826715b0;
  uVar39 = (DAT_18267156c << 0x10 | DAT_18267156c & 0xff00) << 8 | DAT_18267156c >> 8 & 0xff00 |
           DAT_18267156c >> 0x18;
  uVar22 = *(uint *)(&DAT_182611e78 + DAT_182671bec) ^ DAT_1826715b0;
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_182671bec) ^ DAT_1826715b4;
  uVar27 = (ulonglong)DAT_182671778;
  uVar26 = CONCAT44(DAT_182671778,DAT_182671778);
  uVar19 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar20 = CONCAT44(DAT_18267179c,DAT_18267179c) ^ uVar19 ^ uVar26 ^
           *(ulonglong *)(DAT_182671560 + -0xa0) ^ *(ulonglong *)(DAT_182671560 + -0x80);
  DAT_182671574 = uVar39;
  DAT_182671584 = uVar43;
  DAT_182671588 = uVar32;
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar20;
  uVar38 = CONCAT44(DAT_182671748,DAT_182671748);
  *(ulonglong *)(DAT_182671560 + -0x3b8) = (uVar20 >> 0x20 ^ uVar27) >> 5 ^ uVar38;
  lVar1 = DAT_182671560;
  uVar20 = (ulonglong)uVar39;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar43 ^ 0xff0065be)) =
       CONCAT44(uVar39,uVar7) << 0x38 ^ 0x6100000000000000;
  uVar27 = (uVar26 ^ *(ulonglong *)(lVar1 + -0x9e8)) << (((byte)uVar32 ^ 0x6f) & 0x3f);
  uVar26 = CONCAT44(DAT_182671800,DAT_182671800);
  *(ulonglong *)(lVar1 + -0xc08) = uVar27 ^ CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar27 = uVar38 ^ *(ulonglong *)(lVar1 + -0x3b8) | uVar27;
  uVar38 = uVar27 ^ uVar26;
  uVar33 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar1 + -0x898) = uVar38;
  uVar10 = DAT_182671824;
  *(ulonglong *)(lVar1 + -0x628) = (uVar19 ^ *(ulonglong *)(lVar1 + -0x80)) - uVar27 ^ uVar33;
  uVar40 = CONCAT44(uVar10,uVar10);
  uVar46 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671580 ^ 0xf000e6a9)) =
       uVar46 ^ uVar40 ^ uVar26 ^ uVar38 ^ *(ulonglong *)(lVar1 + -0x1f0);
  uVar11 = DAT_18267187c;
  uVar40 = uVar40 ^ *(ulonglong *)(lVar1 + -0x2a0);
  uVar27 = uVar40 >> ((bVar16 ^ 0xa9) & 0x3f);
  *(ulonglong *)(lVar1 + -0x548) = uVar27 ^ CONCAT44(DAT_182671690,DAT_182671690);
  uVar10 = DAT_1826716a8;
  bVar28 = (byte)uVar9;
  uVar40 = uVar40 << ((bVar28 ^ 0xf8) & 0x3f);
  uVar29 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  uVar27 = uVar40 | uVar27;
  *(ulonglong *)(lVar1 + -0x688) = uVar40 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0x510) = uVar27 ^ uVar29;
  uVar26 = CONCAT44(uVar10,uVar10);
  uVar44 = (uVar46 ^ *(ulonglong *)(lVar1 + -0x1f0)) - uVar27 ^ uVar46;
  uVar27 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar1 + -0x638) = uVar44;
  uVar10 = DAT_18267183c;
  uVar39 = DAT_182671578;
  uVar27 = uVar27 ^ uVar33 ^ *(ulonglong *)(lVar1 + -0x610) ^ uVar26 ^
           *(ulonglong *)(lVar1 + -0x628);
  *(ulonglong *)(lVar1 + -0x5c8) = uVar27;
  lVar1 = DAT_182671560;
  local_res18 = (byte)uVar3;
  uVar38 = (uVar27 ^ uVar26) >> ((local_res18 ^ 0x4c) & 0x3f);
  uVar26 = (uVar27 ^ uVar26) << ((local_res18 ^ 0x7c) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa0) = uVar38 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_1826717bc;
  *(ulonglong *)(lVar1 + -0x1d8) = uVar26 ^ CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar26 = uVar26 | uVar38;
  uVar27 = CONCAT44(uVar10,uVar10);
  uVar38 = uVar26 ^ uVar27;
  *(ulonglong *)(lVar1 + -0x8a8) = uVar38;
  uVar11 = DAT_1826718c8;
  puVar45 = (ulonglong *)(lVar1 - ((ulonglong)uVar39 ^ 0x1afb5bcc));
  uVar40 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(lVar1 + -0x400) = (uVar33 ^ *puVar45) - uVar26 ^ uVar40;
  uVar10 = DAT_18267175c;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar27 = uVar38 ^ uVar46 ^ uVar44 ^ uVar26 ^ uVar27;
  *(ulonglong *)(lVar1 + -0x9e8) = uVar27;
  uVar38 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - (uVar20 ^ 0x8a0283ba)) =
       (uVar27 ^ uVar26) >> ((bVar16 ^ 0x8a) & 0x3f) ^ uVar38;
  uVar10 = DAT_182671628;
  uVar27 = (*(ulonglong *)(lVar1 + -0x9e8) ^ uVar26) << 0xc;
  *(ulonglong *)(lVar1 + -0xc08) = uVar27 ^ CONCAT44(DAT_18267168c,DAT_18267168c);
  uVar50 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - (uVar36 ^ 0x280020a)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar43 ^ 0xff006206)) ^ uVar38 | uVar27) ^ uVar50;
  uVar38 = CONCAT44(DAT_182671850,DAT_182671850);
  uVar27 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar1 + -0x898) =
       (uVar46 ^ *(ulonglong *)(lVar1 + -0x638)) - (*(ulonglong *)(lVar1 + -0x80) ^ uVar50) ^ uVar38
  ;
  uVar3 = DAT_1826715b4;
  uVar39 = DAT_182671580;
  uVar26 = *(ulonglong *)(lVar1 + -0x400) ^ uVar27 ^ uVar40 ^ uVar29 ^
           *(ulonglong *)(lVar1 + -0x510);
  *(ulonglong *)(lVar1 + -0x2a0) = uVar26;
  uVar26 = uVar26 ^ uVar27;
  uVar27 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  local_128 = (byte)uVar5;
  uVar41 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(lVar1 + -0x548) = uVar26 >> (((byte)uVar3 ^ 0x9d) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar39 ^ 0xf000e281)) =
       uVar26 << ((local_128 ^ 0xca) & 0x3f) ^ uVar41;
  uVar11 = DAT_1826718cc;
  uVar33 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar27 = *(ulonglong *)(lVar1 + -0x688) ^ uVar41 | *(ulonglong *)(lVar1 + -0x548) ^ uVar27;
  uVar26 = uVar27 ^ uVar33;
  *(ulonglong *)(lVar1 + -0x1f0) = uVar26;
  uVar10 = DAT_18267170c;
  lVar1 = DAT_182671560;
  uVar29 = CONCAT44(uVar11,uVar11);
  puVar21 = (ulonglong *)(DAT_182671560 + -0x898);
  uVar44 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (*(ulonglong *)(DAT_182671560 + -0x400) ^ uVar40) - uVar27 ^ uVar29;
  local_c0 = (byte)uVar18;
  uVar27 = CONCAT44(uVar10,uVar10);
  uVar26 = *puVar21 ^ uVar44 ^ uVar26 ^ uVar33 ^ uVar38;
  *(ulonglong *)(lVar1 + -0x5c8) = uVar26;
  *(ulonglong *)(lVar1 + -0xa0) = (uVar44 ^ uVar26) >> ((local_c0 ^ 0x14) & 0x3f) ^ uVar27;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (CONCAT44(uVar4,uVar4) ^ 0x4a26956066d5a1b7) - (CONCAT44(uVar32,uVar3) ^ 0xf8860c4ef1b06c95);
  uVar11 = DAT_1826718a4;
  lVar1 = DAT_182671560;
  uVar33 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x1d85664c)) =
       (uVar26 ^ uVar44) << (((byte)uVar32 ^ 0x46) & 0x3f) ^ uVar33;
  uVar10 = DAT_1826717d0;
  uVar12 = DAT_18267178c;
  uVar3 = DAT_182671568;
  uVar44 = (ulonglong)DAT_182671568;
  uVar26 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar1 + -0x8a8) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar43 ^ 0xff006796)) ^ uVar33 |
       *(ulonglong *)(lVar1 - (uVar48 ^ 0x29fde5f3)) ^ uVar27) ^ uVar26;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar39 ^ 0xf000ede1)) =
       (*(ulonglong *)(lVar1 + -0x898) ^ uVar38) -
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar1 + -0x670)) ^ CONCAT44(uVar12,uVar12);
  uVar15 = DAT_182671888;
  uVar49 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar1 + -0x3b8) =
       (CONCAT44(uVar4,uVar5) ^ 0x5811a9ed0c4a6fc0) << (((byte)*puVar45 ^ (byte)uVar11) & 0x3f);
  uVar11 = DAT_1826716f8;
  uVar10 = DAT_1826715cc;
  uVar39 = DAT_1826715ac;
  uVar33 = (ulonglong)DAT_1826715ac;
  uVar25 = uVar3 - DAT_1826715ac;
  *(ulonglong *)(lVar1 + -0xc08) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0x8a0289ea)) ^ CONCAT44(uVar12,uVar12)) -
       (*(ulonglong *)(lVar1 + -0x8a8) ^ uVar26) ^ uVar49;
  uVar38 = CONCAT44(uVar10,uVar10);
  DAT_18267158c = uVar25;
  *(ulonglong *)(lVar1 + -0x638) =
       (*(ulonglong *)(lVar1 + -0x8a8) ^ uVar26) -
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar1 + -0xa88)) ^ uVar38;
  uVar14 = DAT_182671880;
  uVar26 = (ulonglong)DAT_182671880;
  uVar40 = CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar1 - (uVar33 ^ 0x7bfffafc)) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xd6021cbc)) ^ *(ulonglong *)(lVar1 + -0x80) ^
       uVar40 ^ uVar29 ^ uVar50;
  uVar10 = DAT_1826715b8;
  *(uint *)(lVar1 + -0x274) = (uVar25 ^ 0x99879411) + (uVar25 ^ 0x53f53c15);
  uVar13 = DAT_1826717a8;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x2a0) =
       ((ulonglong)(uVar14 >> 0x10) | uVar26 << 0x10) ^ *(ulonglong *)(lVar1 + -0x510) >> 0x10 ^
       uVar27;
  uVar11 = DAT_182671774;
  uVar51 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x548) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xd6021fbc)) ^ uVar40) << 0x30 ^ uVar51;
  uVar10 = DAT_1826715fc;
  uVar50 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0x688) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0x5a021860)) ^ uVar27 |
       *(ulonglong *)(lVar1 - ((ulonglong)uVar39 ^ 0x7bfffaa4)) ^ uVar51) ^ uVar50;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x400) =
       (*(ulonglong *)(lVar1 + -0x610) ^ uVar29) - (*(ulonglong *)(lVar1 + -0x9f8) ^ uVar51) ^
       uVar27;
  uVar11 = DAT_1826718c0;
  uVar10 = DAT_182671688;
  lVar2 = DAT_182671560;
  puVar21 = (ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xd6021eac));
  puVar34 = (ulonglong *)(lVar1 - ((ulonglong)uVar39 ^ 0x7bfff964));
  uVar29 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(lVar1 + -0x1f0) = (*puVar21 ^ uVar27) - (*puVar34 ^ uVar50) ^ uVar29;
  uVar47 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x5a021b18)) =
       (CONCAT44(uVar18,uVar39) ^ 0x1ba204e584000012) -
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar25 ^ 0x5a021130)) ^ CONCAT44(uVar10,uVar10))
       ^ uVar47;
  uVar40 = (ulonglong)DAT_182671684;
  uVar46 = CONCAT44(DAT_182671684,DAT_182671684);
  uVar27 = (uVar50 ^ *(ulonglong *)(lVar2 + -0x688)) + (*(ulonglong *)(lVar2 + -0x1d8) ^ uVar47) ^
           uVar41;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar27;
  uVar10 = _DAT_18267188c;
  uVar27 = *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xd60216a4)) ^ uVar46 ^ uVar27 ^ uVar49 ^
           uVar41;
  *(ulonglong *)(lVar2 + -0xa0) = uVar27;
  uVar26 = CONCAT44(DAT_1826715b4,uVar9);
  uVar42 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x670) = uVar27 >> 0x20 ^ uVar42 ^ uVar40;
  *(ulonglong *)(lVar2 + -0x898) =
       (uVar26 ^ 0x70cdc5898f0e0361) >> ((*(byte *)(lVar2 + -0xc08) ^ (byte)uVar15) & 0x3f);
  puVar45 = (ulonglong *)(lVar2 - (uVar30 ^ 0x57b9c419));
  uVar27 = CONCAT44(DAT_182671604,DAT_182671604);
  uVar18 = DAT_1826715a0 ^ 0xbbab9a87;
  *(ulonglong *)(lVar2 + -0x628) = (uVar46 ^ *puVar45) << ((bVar28 ^ 0xf1) & 0x3f) ^ uVar27;
  *(uint *)(lVar2 + -0x274) = uVar18 * *(int *)(lVar2 + -0x328);
  uVar52 = CONCAT44(DAT_182671720,DAT_182671720);
  *(ulonglong *)(lVar2 - (uVar48 ^ 0x29fde6eb)) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0xf48125e5)) ^ uVar27 |
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x1afb5b94)) ^ uVar42) ^ uVar52;
  lVar1 = DAT_182671560;
  uVar26 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar46 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       (*(ulonglong *)(DAT_182671560 + -0xc08) ^ uVar49) -
       (uVar52 ^ *(ulonglong *)(DAT_182671560 + -0x3b8)) ^ uVar26;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0x80) =
       *(ulonglong *)(lVar1 + -0x638) ^ *(ulonglong *)(lVar1 + -0x1f0) ^ uVar46 ^ uVar29 ^ uVar38;
  uVar10 = DAT_182671864;
  uVar38 = *(ulonglong *)(lVar1 + -0x80) ^ uVar46;
  *(ulonglong *)(lVar1 + -0x510) =
       CONCAT44(uVar8,uVar32) ^ 0xb3f62405ad4ed137 | *(ulonglong *)(lVar1 + -0x5c8) ^ uVar41;
  uVar27 = uVar38 >> ((local_res18 ^ 0x44) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar27 ^ CONCAT44(uVar10,uVar10);
  uVar10 = _DAT_182671838;
  *(ulonglong *)(lVar2 + -0x548) =
       (CONCAT44(uVar39,uVar7) ^ 0x771d93a54a4c7030) + (CONCAT44(uVar5,uVar6) ^ 0x3e5b7c4a94243d36);
  uVar40 = CONCAT44(uVar10,uVar10);
  uVar38 = uVar38 << ((bVar28 ^ 0xf1) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9f8) = uVar38 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x610) = (uVar38 | uVar27) ^ uVar40;
  local_e0 = (byte)uVar25;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x1d856464)) =
       *(ulonglong *)(lVar2 + -0x510) >> ((local_e0 ^ 0xc9) & 0x3f);
  uVar19 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xff006736)) =
       (*(ulonglong *)(lVar2 + -0x1f0) ^ uVar29) -
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0xaac63bc1)) ^ uVar40) ^ uVar19;
  uVar38 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(lVar2 + -0x1d8) =
       *(ulonglong *)(lVar2 + -0x610) ^ *(ulonglong *)(lVar2 + -0x8a8) ^ uVar38 ^ uVar40 ^ uVar26;
  uVar27 = (*(ulonglong *)(lVar2 - (uVar44 ^ 0xd6021b74)) ^ uVar38) >> (((byte)uVar3 ^ 0x96) & 0x3f)
  ;
  uVar23 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar2 + -0x898) = uVar27 ^ CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar10 = DAT_182671708;
  lVar1 = DAT_182671560;
  bVar16 = (byte)uVar39;
  uVar35 = (*(ulonglong *)(lVar2 - (uVar35 ^ 0xe45dfac2)) ^ uVar38) << ((bVar16 ^ 0xea) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa0) = uVar35 ^ uVar23;
  lVar2 = DAT_182671560;
  uVar35 = uVar35 | uVar27;
  uVar38 = CONCAT44(uVar10,uVar10);
  uVar27 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar1 + -0x628) = uVar35 ^ uVar38;
  uVar5 = DAT_182671580;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x5a021cb0)) =
       (*(ulonglong *)(lVar1 + -0x8a8) ^ uVar26) - uVar35 ^ uVar27;
  *(ulonglong *)(lVar2 + -0xc08) =
       0x199fcc068a0dfd7b - (CONCAT44(uVar43,uVar5) ^ 0xfd333cf2876ec750);
  uVar35 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x28004b2)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0xa338e1fc)) ^
       *(ulonglong *)(lVar2 - (uVar44 ^ 0xd6021914)) ^ uVar35 ^ uVar19 ^ uVar52;
  uVar36 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x5c8) =
       (*(ulonglong *)(lVar2 + -0x638) ^ uVar35) >> ((bVar16 ^ 0xf5) & 0x3f);
  uVar23 = (*(ulonglong *)(lVar2 - (uVar36 ^ 0xd733839c)) ^ uVar35) >> (((byte)uVar7 ^ 0xaf) & 0x3f)
  ;
  uVar36 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *(ulonglong *)(lVar2 + -0x548) = uVar23 ^ CONCAT44(DAT_1826717d8,DAT_1826717d8);
  uVar10 = DAT_1826715d4;
  uVar26 = (*(ulonglong *)(lVar2 + -0x638) ^ uVar35) << (((byte)uVar7 ^ 0x93) & 0x3f);
  local_90 = (byte)uVar12;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x670)) >> ((*(byte *)(lVar2 + -0x9e8) ^ local_90) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9f8) = uVar26 ^ uVar36;
  uVar35 = CONCAT44(uVar10,uVar10);
  uVar36 = (ulonglong)DAT_182671578;
  uVar23 = (uVar26 | uVar23) ^ uVar35;
  uVar26 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar2 + -0x510) = uVar23;
  uVar10 = DAT_182671834;
  *(ulonglong *)(lVar2 + -0x400) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x688)) -
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x1afb58f4)) ^ uVar35) ^ uVar26;
  uVar23 = uVar35 ^ uVar27 ^ uVar47 ^ *(ulonglong *)(lVar2 + -0x670) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar23;
  uVar23 = uVar23 ^ uVar47;
  bVar28 = (byte)uVar6;
  uVar35 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x610) = uVar23 >> ((bVar28 ^ 0x7d) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x1d8) = (CONCAT44(uVar7,uVar25) ^ 0xcfe58a0a0f32fd2) + 0x95301a6de72948b5
  ;
  uVar36 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x57b9cc21)) = uVar23 << 0x12 ^ uVar36;
  uVar10 = DAT_182671858;
  uVar29 = CONCAT44(_DAT_182671618,_DAT_182671618);
  uVar24 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xf4812b55)) ^ uVar36 |
           *(ulonglong *)(lVar2 + -0x610) ^ uVar35;
  *(ulonglong *)(lVar2 + -0xa0) = uVar24 ^ uVar29;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar36 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0xa338efdc)) =
       (*(ulonglong *)(lVar2 + -0x670) ^ uVar27) - uVar24 ^ uVar30;
  uVar35 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar2 + -0xc08) =
       uVar35 ^ uVar26 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0x400) ^ *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0xd733861c)) =
       CONCAT44(uVar4,uVar9) ^ 0xde4519c1236d771d | *(ulonglong *)(lVar2 + -0x80) ^ uVar46;
  local_110 = (byte)(uVar4 >> 0x18);
  uVar36 = (*(ulonglong *)(lVar2 - (uVar37 ^ 0xaac631d9)) ^ uVar35) >> ((local_110 ^ 0xe) & 0x3f);
  uVar24 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(lVar2 + -0x5c8) = uVar36 ^ CONCAT44(DAT_182671710,DAT_182671710);
  uVar10 = DAT_182671640;
  uVar23 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0x7bfff3e4)) ^ uVar35) << ((bVar16 ^ 0xd8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x638) = uVar23 ^ uVar24;
  uVar11 = DAT_182671844;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar23 = uVar23 | uVar36;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar23 ^ uVar24;
  uVar4 = DAT_182671874;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar36 = (ulonglong)DAT_182671874;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x1afb5f44)) =
       (uVar26 ^ *puVar21) - uVar23 ^ uVar35;
  uVar23 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x548) =
       *(ulonglong *)(lVar2 + -0x9e8) ^ uVar23 ^ uVar24 ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x8a8);
  uVar10 = _DAT_18267161c;
  uVar19 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x1d85699c)) =
       *(ulonglong *)(lVar2 - (uVar20 ^ 0x8a02854a)) >> 0x19 ^
       ((ulonglong)(uVar4 >> 0x19) | uVar36 << 7) ^ uVar19;
  uVar24 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  *puVar34 = (*(ulonglong *)(lVar2 - (uVar48 ^ 0x29fde01b)) ^ uVar23) << ((bVar28 ^ 0x74) & 0x3f) ^
             uVar24;
  uVar12 = DAT_1826716c8;
  *(ulonglong *)(lVar2 + -0x510) =
       CONCAT44(DAT_182671730,DAT_182671730) ^ **(ulonglong **)(lVar2 + -0x830);
  uVar11 = DAT_18267167c;
  uVar36 = uVar24 ^ *(ulonglong *)(lVar2 + -0x688) | *(ulonglong *)(lVar2 + -0x9f8) ^ uVar19;
  uVar24 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar36 ^ CONCAT44(uVar12,uVar12);
  uVar31 = (uVar30 ^ *(ulonglong *)(lVar2 + -0x8a8)) -
           (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar2 + -0x6d0));
  *(ulonglong *)(lVar2 + -0x610) =
       *(ulonglong *)(lVar2 + -0x510) >> ((byte)*(ulonglong *)(lVar2 + -0x510) & 0x3f);
  uVar11 = DAT_182671678;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar31 ^ uVar24;
  uVar13 = DAT_1826717a4;
  *(ulonglong *)(lVar2 + -0x898) = uVar31 - uVar36 ^ CONCAT44(uVar11,uVar11);
  uVar12 = DAT_182671770;
  uVar11 = DAT_1826716cc;
  *(ulonglong *)(lVar2 + -0x670) =
       uVar36 - (*(ulonglong *)(lVar2 - (uVar20 ^ 0x8a02831a)) ^ uVar50) ^ CONCAT44(uVar13,uVar13);
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xaac63bf9)) =
       uVar31 ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar35 ^ uVar29 ^ *puVar45;
  bVar16 = *(byte *)(lVar2 - (uVar44 ^ 0xd6021354));
  local_108 = (byte)uVar43;
  uVar37 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x628)) >> ((local_108 ^ 0x9f) & 0x3f);
  uVar24 = CONCAT44(DAT_182671670,DAT_182671670);
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x628)) << ((local_128 ^ 0xd2) & 0x3f);
  *(uint *)(lVar2 + -0x274) = *(uint *)(lVar2 + -0x874) & *(uint *)(lVar2 + -0x3d4);
  *(ulonglong *)(lVar2 + -0x3b8) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0x548)) >> ((bVar16 ^ (byte)uVar10) & 0x3f);
  *(ulonglong *)(lVar2 + -0x80) = uVar37 ^ uVar24;
  *(ulonglong *)(lVar2 + -0xc08) = uVar31 ^ uVar51;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar22;
  *(ulonglong *)(lVar2 + -0x5c8) = (uVar31 | uVar37) ^ CONCAT44(uVar12,uVar12);
  return;
}



############ FUN_ 180e98f30 size=5806 ############

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

void FUN_180e98f30(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  uint uVar7;
  longlong lVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  undefined4 uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte bVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  byte bVar51;
  uint uVar52;
  ulonglong *puVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  byte local_res20;
  byte local_130;
  byte local_110;
  
  uVar17 = DAT_1826715b4;
  uVar16 = DAT_1826715a8;
  uVar15 = DAT_1826715a0;
  uVar14 = DAT_18267159c;
  uVar11 = DAT_182671598;
  uVar13 = DAT_182671590;
  uVar12 = DAT_182671570;
  uVar30 = (ulonglong)DAT_182671570;
  uVar52 = ~DAT_182671570;
  uVar28 = (ulonglong)DAT_1826715a0;
  uVar7 = *(uint *)(&DAT_182611e78 + DAT_182671b70);
  uVar33 = DAT_1826715b4 ^ DAT_1826715a0;
  uVar35 = (ulonglong)DAT_18267159c;
  uVar44 = DAT_182671598 & DAT_1826715a8;
  uVar23 = DAT_182671590 - DAT_18267159c;
  uVar21 = *(uint *)(&DAT_182611e80 + DAT_182671b70) ^ DAT_182671570;
  uVar22 = (ulonglong)uVar23;
  uVar49 = CONCAT44(_DAT_182671868,_DAT_182671868);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x628);
  uVar48 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  puVar3 = (ulonglong *)(DAT_182671560 + -0x600);
  uVar24 = (ulonglong)DAT_1826715a8;
  DAT_18267156c = uVar52;
  DAT_18267157c = uVar23;
  DAT_182671588 = uVar44;
  DAT_182671594 = uVar33;
  *puVar3 = (CONCAT44(DAT_182671630,DAT_182671630) ^ *puVar2) -
            (*(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xe46dd386)) ^ uVar49) ^ uVar48;
  lVar8 = DAT_182671560;
  uVar38 = (ulonglong)uVar13;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x5e6f7999)) =
       CONCAT44(uVar12,uVar16) ^ 0x7ff5ef04f23dedae | CONCAT44(uVar14,uVar13) ^ 0x7314fb5b16680f0f;
  puVar4 = (ulonglong *)(lVar8 + -0xa60);
  uVar54 = CONCAT44(DAT_182671874,DAT_182671874);
  *puVar4 = (uVar49 ^ *(ulonglong *)(lVar8 + -0x110)) -
            (CONCAT44(uVar44,uVar13) ^ 0x2e66f168d1c2682d) ^ uVar54;
  uVar11 = DAT_182671598;
  uVar41 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  uVar45 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar29 = (ulonglong)uVar33;
  uVar39 = (ulonglong)uVar17;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x12003bb)) =
       CONCAT44(DAT_182671634,DAT_182671634) ^ uVar45 ^ uVar41 ^ *(ulonglong *)(lVar8 + -0xc08) ^
       *(ulonglong *)(lVar8 + -0x2a0);
  bVar32 = (byte)uVar33;
  uVar41 = uVar41 ^ *(ulonglong *)(lVar8 + -0x318);
  uVar36 = uVar41 >> ((bVar32 ^ 0xb3) & 0x3f);
  uVar41 = uVar41 << 0x30;
  puVar1 = (ulonglong *)(lVar8 + -0x80);
  *puVar1 = uVar36 ^ CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar8 + -0x6d0) = uVar41 ^ CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(lVar8 + -0x670) =
       CONCAT44(uVar33,uVar11) ^ CONCAT44(uVar14,uVar12) ^ 0xa23cf531637c33ba;
  puVar50 = (ulonglong *)(lVar8 + -0x1d8);
  uVar40 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *puVar50 = (uVar41 | uVar36) ^ uVar40;
  lVar8 = DAT_182671560;
  puVar5 = (ulonglong *)(DAT_182671560 + -0x240);
  *puVar5 = uVar36 * 2;
  uVar41 = CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar37 = (ulonglong)uVar52;
  puVar6 = (ulonglong *)(lVar8 + -0x8a8);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar52 ^ 0x77f4fbb5)) =
       (uVar45 ^ *(ulonglong *)(lVar8 + -0xc08)) - (CONCAT44(uVar16,uVar44) ^ 0x51088d55afb0591b) ^
       uVar41;
  uVar18 = DAT_1826717c8;
  uVar46 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar36 = *puVar50;
  *(ulonglong *)(lVar8 + -0x800) = (uVar41 ^ *puVar6) - (uVar40 ^ *puVar50) ^ uVar46;
  uVar41 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar8 - (uVar30 ^ 0x880b0a6a)) =
       (uVar40 ^ uVar36) + (CONCAT44(uVar44,uVar13) ^ 0xc92d4abafe432454) ^ uVar41;
  uVar45 = CONCAT44(DAT_182671680,DAT_182671680);
  puVar53 = (ulonglong *)(lVar8 - (uVar39 ^ 0x1c022298));
  *puVar53 = uVar45 ^ uVar41 ^ uVar48 ^ *puVar3 ^ *(ulonglong *)(lVar8 + -0x688);
  uVar40 = CONCAT44(DAT_182671890,DAT_182671890);
  uVar36 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  uVar42 = (uVar45 ^ *(ulonglong *)(lVar8 + -0x898)) << 0x20;
  *(ulonglong *)(lVar8 + -0xbf0) =
       (*(ulonglong *)(lVar8 - (uVar22 ^ 0xe46dda0e)) ^ uVar45) >> (((byte)uVar52 ^ 0x3d) & 0x3f) ^
       uVar40;
  uVar18 = DAT_18267168c;
  *(ulonglong *)(lVar8 + -0xa88) = uVar42 ^ uVar36;
  uVar31 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x120068b)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x5e6f7779)) ^ uVar40 | uVar42) ^ uVar31
  ;
  uVar18 = DAT_1826715bc;
  lVar8 = DAT_182671560;
  uVar34 = CONCAT44(DAT_182671828,DAT_182671828);
  puVar25 = (ulonglong *)(DAT_182671560 - (uVar30 ^ 0x880b09f2));
  *puVar25 = (uVar48 ^ *puVar3) - (uVar31 ^ *puVar2) ^ uVar34;
  uVar11 = _DAT_182671610;
  uVar40 = CONCAT44(uVar18,uVar18);
  puVar26 = (ulonglong *)(lVar8 - (uVar24 ^ 0x96bf3efe));
  *puVar26 = *(ulonglong *)(lVar8 - (uVar35 ^ 0xa109d100)) ^ uVar40 ^ uVar46 ^ uVar54 ^ *puVar4;
  uVar43 = CONCAT44(uVar11,uVar11);
  uVar36 = (uVar40 ^ *(ulonglong *)(lVar8 + -0x110)) >> (((byte)uVar52 ^ 0x3d) & 0x3f);
  *(ulonglong *)(lVar8 + -0x2a0) = uVar36 ^ uVar43;
  *(ulonglong *)(lVar8 + -0x318) =
       (uVar34 ^ *(ulonglong *)(lVar8 + -0x510)) - (CONCAT44(uVar23,uVar14) ^ 0xa3238dbd4b9e9311);
  uVar18 = DAT_1826717a4;
  uVar40 = (uVar40 ^ *(ulonglong *)(lVar8 + -0x110)) << (((byte)uVar13 ^ 0xb6) & 0x3f);
  *(ulonglong *)(lVar8 + -0x670) = uVar40 ^ uVar48;
  lVar9 = DAT_182671560;
  uVar45 = CONCAT44(uVar18,uVar18);
  puVar55 = (ulonglong *)(lVar8 - ((ulonglong)uVar44 ^ 0x162f3a58));
  *puVar55 = (uVar36 | uVar40) ^ uVar45;
  *(ulonglong *)(lVar8 - (uVar39 ^ 0x1c022a80)) =
       uVar46 ^ *(ulonglong *)(lVar8 + -0x800) ^ 0x21ce0c1f3adae10b;
  uVar42 = CONCAT44(DAT_182671750,DAT_182671750);
  *puVar5 = (*(ulonglong *)(lVar9 - (uVar39 ^ 0x1c022200)) ^ uVar46) -
            (*(ulonglong *)(lVar9 - (uVar38 ^ 0x8577ad46)) ^ uVar45) ^ uVar42;
  uVar18 = DAT_182671764;
  *(ulonglong *)(lVar9 + -0xc08) =
       (CONCAT44(uVar15,uVar23) ^ 0x115ae815a800509b) -
       (CONCAT44(uVar33,uVar16) ^ 0x9152d892ef9ed95a);
  uVar36 = CONCAT44(uVar18,uVar18);
  *puVar6 = uVar45 ^ uVar34 ^ *(ulonglong *)(lVar9 + -0x6d0) ^ *(ulonglong *)(lVar9 + -0x510) ^
            uVar36;
  uVar11 = DAT_182671598;
  uVar40 = CONCAT44(uVar14,DAT_182671598);
  local_res20 = (byte)uVar15;
  *(ulonglong *)(lVar9 - (uVar24 ^ 0x96bf3e36)) =
       CONCAT44(uVar12,uVar52) ^ uVar40 ^ 0xcf776cecd18080d4;
  uVar48 = CONCAT44(DAT_182671814,DAT_182671814);
  local_110 = (byte)uVar44;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x5e6f7411)) =
       (*puVar6 ^ uVar36) >> ((local_res20 ^ 0x99) & 0x3f) ^ uVar48;
  lVar8 = DAT_182671560;
  uVar36 = (*puVar6 ^ uVar36) << ((local_110 ^ 0x8e) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       uVar45 ^ uVar41 ^ *(ulonglong *)(DAT_182671560 + -0x6d0) ^
       *(ulonglong *)(DAT_182671560 + -0x688);
  uVar18 = DAT_18267177c;
  *(ulonglong *)(lVar8 + -0xa88) = uVar36 ^ CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar46 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar8 - (uVar35 ^ 0xa109df00)) = (*puVar53 ^ uVar48 | uVar36) ^ uVar46;
  *(uint *)(lVar8 + -0x754) = *(uint *)(lVar8 + -0x844) | *(uint *)(lVar8 + -0x774);
  uVar45 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  *puVar4 = (uVar34 ^ *(ulonglong *)(lVar8 + -0x510)) - (*puVar3 ^ uVar46) ^ uVar45;
  *(ulonglong *)(lVar8 - (uVar38 ^ 0x8577a88e)) =
       CONCAT44(DAT_18267171c,DAT_18267171c) ^
       *(ulonglong *)(*(ulonglong *)(lVar8 + -0xa38) ^ uVar48);
  uVar18 = DAT_18267189c;
  uVar27 = DAT_182671598;
  uVar41 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar36 = *(ulonglong *)(lVar8 - (uVar30 ^ 0x880b0aca)) ^
           *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671598 ^ 0x5e6f7ec9)) ^ uVar31 ^ uVar41 ^
           uVar42;
  *(ulonglong *)(lVar8 + -0x110) = uVar36;
  uVar34 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0x96bf3d4e)) =
       (uVar36 ^ uVar41) >> ((bVar32 ^ 0xb5) & 0x3f) ^ uVar34;
  lVar9 = DAT_182671560;
  uVar41 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar44 ^ 0x162f3d98)) ^ uVar41) <<
           ((local_110 ^ 0xa2) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar41 ^ CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar19 = DAT_182671780;
  uVar36 = (ulonglong)DAT_182671780;
  *puVar1 = (CONCAT44(uVar13,uVar23) ^ 0x16bb9bdc93063451) >> (((byte)uVar16 ^ 0xed) & 0x3f);
  uVar48 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar27 ^ 0x5e6f7489)) =
       (uVar41 | *(ulonglong *)(lVar9 + -0x2a0) ^ uVar34) ^ uVar48;
  uVar47 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar9 + -0xc08) =
       (uVar42 ^ *puVar5) - (*(ulonglong *)(lVar9 + -0x800) ^ uVar48) ^ uVar47;
  lVar9 = DAT_182671560;
  uVar34 = CONCAT44(uVar19,uVar19);
  uVar42 = *(ulonglong *)(DAT_182671560 + -0x800) ^ *puVar4 ^ uVar34 ^ uVar48 ^ uVar45;
  *puVar50 = uVar42;
  uVar18 = DAT_18267185c;
  uVar48 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar41 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *(ulonglong *)(lVar9 + -0x688) =
       (*(ulonglong *)(lVar9 - (uVar39 ^ 0x1c022bd8)) >> 0x20 ^ uVar36) >> 0xe ^ uVar48;
  *puVar55 = (uVar42 ^ uVar34) << 0x12 ^ uVar41;
  *(ulonglong *)(lVar9 + -0xbf0) =
       (CONCAT44(uVar15,uVar44) ^ 0x431f8ef3939c44a6) <<
       ((*(byte *)(lVar9 - (uVar29 ^ 0x1d222c73)) ^ (byte)uVar18) & 0x3f);
  uVar18 = DAT_1826718b8;
  uVar34 = CONCAT44(DAT_182671788,DAT_182671788);
  uVar36 = *(ulonglong *)(lVar9 + -0x688) ^ uVar48 | *(ulonglong *)(lVar9 + -0x6d0) ^ uVar41;
  *puVar6 = uVar36 ^ uVar34;
  uVar54 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar9 + -0x898) = (*puVar4 ^ uVar45) - uVar36 ^ uVar54;
  lVar10 = DAT_182671560;
  uVar36 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(lVar9 - (uVar37 ^ 0x77f4f995)) =
       *puVar3 ^ *(ulonglong *)(lVar9 + -0xc08) ^ uVar36 ^ uVar47 ^ uVar46;
  uVar48 = (*(ulonglong *)(lVar9 - (uVar35 ^ 0xa109d388)) ^ uVar36) >> ((local_res20 ^ 0xaf) & 0x3f)
  ;
  *(ulonglong *)(lVar10 + -0x510) = uVar48 ^ CONCAT44(DAT_182671820,DAT_182671820);
  bVar51 = (byte)uVar17;
  *(ulonglong *)(lVar10 + -0x318) =
       (*(ulonglong *)(lVar10 + -0xa88) ^ uVar36) << (((byte)uVar13 ^ 0xa2) & 0x3f) ^ uVar49;
  *puVar2 = (CONCAT44(uVar52,uVar13) ^ 0xbd7ade3876f88884) << ((bVar51 ^ 0x2e) & 0x3f);
  puVar53 = (ulonglong *)(lVar10 - (uVar37 ^ 0x77f4f005));
  uVar36 = *(ulonglong *)(lVar10 + -0xc08);
  uVar42 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar46 = uVar49 ^ *puVar53 | uVar48;
  uVar41 = *puVar6;
  uVar45 = uVar46 ^ uVar42;
  *(ulonglong *)(lVar10 + -0x110) = uVar45;
  uVar45 = uVar43 ^ *(ulonglong *)(lVar10 + -0x898) ^ uVar42 ^ uVar54 ^ uVar45;
  *(ulonglong *)(lVar10 + -0x670) = uVar45;
  *puVar1 = uVar48 | uVar41 ^ uVar34;
  uVar27 = _DAT_182671610;
  uVar48 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  uVar41 = (ulonglong)_DAT_182671610;
  uVar42 = (uVar36 ^ uVar47) - uVar46 ^ uVar48;
  uVar36 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar10 + -0x2a0) = uVar42;
  *puVar5 = ((ulonglong)(uVar27 >> 0x19) | uVar41 << 7) ^ uVar45 >> 0x19 ^ uVar36;
  *(uint *)(lVar10 + -0x374) =
       (DAT_182671570 ^ 0x8cdcd38c) >>
       ((byte)*(undefined4 *)(lVar10 - (uVar30 ^ 0x880b058a)) & 0x1f);
  uVar45 = (*(ulonglong *)(lVar10 - (uVar39 ^ 0x1c022c70)) ^ uVar43) << ((bVar32 ^ 0x84) & 0x3f);
  uVar41 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar10 + -0x800) = uVar45 ^ CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar45 = *(ulonglong *)(lVar10 - (uVar38 ^ 0x8577a9d6)) ^ uVar36 | uVar45;
  uVar36 = *(ulonglong *)(lVar10 + -0x898);
  *puVar50 = uVar45 ^ uVar41;
  uVar20 = DAT_1826717c4;
  uVar36 = (uVar36 ^ uVar54) - (CONCAT44(uVar11,uVar12) ^ 0x1a241b43d3e6edf6);
  *(ulonglong *)(lVar10 + -0xbf0) = uVar36 ^ CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar18 = DAT_182671698;
  uVar54 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar10 + -0x688) =
       uVar36 - (*(ulonglong *)(lVar10 - (uVar37 ^ 0x77f4f2c5)) ^ uVar41) ^ uVar54;
  uVar36 = *puVar6;
  uVar46 = CONCAT44(uVar18,uVar18);
  uVar41 = (ulonglong)DAT_1826717fc;
  uVar38 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       uVar45 - (CONCAT44(uVar33,uVar23) ^ 0x4d3b3a1a13f99c94) ^ uVar46;
  uVar18 = DAT_182671614;
  uVar34 = uVar36 ^ uVar42 ^ uVar38 ^ uVar48 ^ uVar34;
  *puVar4 = uVar34;
  uVar11 = DAT_182671598;
  uVar42 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671598 ^ 0x5e6f7a89)) =
       (uVar34 >> 0x20 ^ uVar41) >> 1 ^ uVar42;
  lVar9 = DAT_182671560;
  uVar36 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *(ulonglong *)(DAT_182671560 + -0xa88) = (uVar38 ^ *puVar4) << ((bVar51 ^ 0x1f) & 0x3f) ^ uVar36;
  *puVar2 = CONCAT44(uVar23,uVar12) ^ 0x300430410022002 | 0xa81ea4f9cdc9db59;
  uVar18 = DAT_1826717b4;
  uVar45 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar9 + -0x318) =
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x5e6f7601)) ^ uVar36 | *puVar3 ^ uVar42) ^
       uVar45;
  uVar20 = DAT_182671800;
  uVar36 = (*(ulonglong *)(lVar9 + -0x2a0) ^ uVar48) - (uVar40 ^ 0x994014e00adabf32);
  *(ulonglong *)(lVar9 + -0x510) = uVar36 ^ CONCAT44(uVar18,uVar18);
  uVar38 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar9 - (uVar29 ^ 0x1d222a23)) = uVar36 - (*puVar53 ^ uVar45) ^ uVar38;
  *(uint *)(lVar9 - (uVar28 ^ 0x1200377)) = *(uint *)(lVar9 + -0x910) | *(uint *)(lVar9 + -0x844);
  uVar18 = DAT_182671620;
  uVar41 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  *(ulonglong *)(lVar9 + -0xc08) =
       (CONCAT44(uVar13,uVar16) ^ 0x51f926406edf763f) + (*(ulonglong *)(lVar9 + -0x318) ^ uVar45) ^
       uVar41;
  uVar40 = CONCAT44(uVar18,uVar18);
  uVar36 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar9 + -0x110) =
       *(ulonglong *)(lVar9 - (uVar35 ^ 0xa109d508)) ^ *(ulonglong *)(lVar9 + -0x688) ^ uVar40 ^
       uVar41 ^ uVar54;
  lVar10 = DAT_182671560;
  local_130 = (byte)uVar12;
  uVar36 = (*(ulonglong *)(lVar9 - (uVar36 ^ 0x5e6f7d99)) ^ uVar40) >> ((local_130 ^ 0xe7) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar36 ^ CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *puVar5 = CONCAT44(uVar23,uVar44) ^ CONCAT44(uVar52,uVar33) ^ 0x460364a3e9515cba;
  uVar18 = DAT_1826718c4;
  uVar41 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar10 + -0x800) = (*puVar26 ^ uVar40) << (((byte)uVar23 ^ 0xad) & 0x3f) ^ uVar41;
  uVar34 = CONCAT44(uVar18,uVar18);
  uVar36 = *(ulonglong *)(lVar10 - (uVar28 ^ 0x12008a3)) ^ uVar41 | uVar36;
  uVar48 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar10 + -0x898) = uVar36 ^ uVar34;
  uVar20 = DAT_1826717d4;
  *(ulonglong *)(lVar10 + -0xbf0) =
       (*(ulonglong *)(lVar10 - (uVar24 ^ 0x96bf3966)) ^ uVar54) - uVar36 ^ uVar48;
  uVar18 = DAT_182671604;
  lVar9 = DAT_182671560;
  uVar41 = CONCAT44(uVar20,uVar20);
  uVar40 = CONCAT44(DAT_182671784,DAT_182671784);
  uVar36 = *(ulonglong *)(lVar10 + -0x6d0) ^ uVar41 ^ uVar38 ^ uVar46 ^ *puVar1;
  *puVar50 = uVar36;
  *puVar6 = (uVar36 ^ uVar41) >> ((local_110 ^ 0xad) & 0x3f) ^ uVar40;
  uVar36 = (*(ulonglong *)(lVar9 - (uVar35 ^ 0xa109d8d8)) ^ uVar41) << ((local_130 ^ 0xf9) & 0x3f);
  *puVar4 = uVar36 ^ CONCAT44(uVar18,uVar18);
  uVar45 = CONCAT44(DAT_182671808,DAT_182671808);
  *(ulonglong *)(lVar9 - (uVar39 ^ 0x1c022c28)) =
       (*(ulonglong *)(lVar9 - (uVar30 ^ 0x880b044a)) ^ uVar40 | uVar36) ^ uVar45;
  uVar36 = *puVar1;
  uVar41 = *puVar2;
  uVar40 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar39 = uVar31 ^ *(ulonglong *)(lVar9 + -0xbf0) ^ uVar41 ^ uVar45 ^ uVar48;
  *(ulonglong *)(lVar9 + -0xa88) = uVar39;
  *puVar3 = (uVar38 ^ uVar36) - (uVar41 ^ uVar45) ^ uVar40;
  uVar18 = DAT_1826715cc;
  uVar11 = DAT_182671568;
  lVar10 = DAT_182671560;
  uVar36 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar27 = DAT_182671598 ^ 0x60b87549;
  *(ulonglong *)(lVar9 + -0x2a0) =
       (uVar31 ^ uVar39) >> (((byte)DAT_182671598 ^ 0x9e) & 0x3f) ^ uVar36;
  uVar38 = CONCAT44(uVar18,uVar18);
  *puVar25 = (uVar31 ^ uVar39) << 0x29 ^ uVar38;
  *(uint *)(lVar10 + -0x678) = uVar11 ^ 0x3e51aa0d | uVar27;
  uVar18 = DAT_18267165c;
  uVar41 = *(ulonglong *)(lVar10 - (uVar37 ^ 0x77f4f60d)) ^ uVar38 |
           *(ulonglong *)(lVar10 - (uVar28 ^ 0x1200203)) ^ uVar36;
  *(undefined8 *)(lVar10 + -0xc08) = 0;
  uVar36 = (ulonglong)DAT_182671580;
  uVar42 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar10 + -0x318) = uVar41 ^ uVar45;
  *puVar5 = (*(ulonglong *)(lVar10 + -0xbf0) ^ uVar48) -
            (*(ulonglong *)(lVar10 - (uVar36 ^ 0x2ad8da91)) ^ uVar45) ^ uVar42;
  uVar18 = DAT_182671684;
  *(ulonglong *)(lVar10 + -0x110) = uVar41 + 0x4f8593d4c6bd6f98;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar10 - (uVar35 ^ 0xa109df70)) =
       *(ulonglong *)(lVar10 - (uVar29 ^ 0x1d22223b)) ^ *puVar3 ^ uVar36 ^ uVar40 ^ uVar34;
  uVar18 = DAT_1826716d8;
  *(undefined1 *)(lVar10 + -0x5e9) = **(undefined1 **)(lVar10 - (uVar24 ^ 0x96bf3a56));
  uVar20 = DAT_1826717f4;
  uVar41 = (uVar36 ^ *(ulonglong *)(lVar10 + -0x670)) >> (((byte)uVar14 ^ 0x28) & 0x3f);
  *(ulonglong *)(lVar10 + -0x800) = uVar41 ^ uVar48;
  lVar9 = DAT_182671560;
  uVar36 = (uVar36 ^ *(ulonglong *)(lVar10 + -0x670)) << ((local_res20 ^ 0xbb) & 0x3f);
  *(ulonglong *)(lVar10 + -0x688) = uVar36 ^ CONCAT44(uVar18,uVar18);
  uVar18 = DAT_182671768;
  uVar39 = CONCAT44(uVar20,uVar20);
  uVar36 = (uVar36 | uVar41) ^ uVar39;
  *(ulonglong *)(lVar9 + -0x6d0) = uVar36;
  *puVar50 = (*puVar3 ^ uVar40) - (*(ulonglong *)(lVar9 - (uVar22 ^ 0xe46dd446)) ^ uVar39) ^
             CONCAT44(uVar18,uVar18);
  *(uint *)(lVar8 + -0x774) = 0xe9c82d8e;
  uVar41 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar36 = uVar36 ^ uVar41 ^ uVar39 ^ uVar42 ^ *puVar5;
  *puVar6 = uVar36;
  *puVar4 = (CONCAT44(uVar12,uVar13) ^ 0xa7ba344058d0cca) -
            (CONCAT44(uVar14,uVar23) ^ 0xe792b42944974c8c);
  *puVar1 = (uVar36 ^ uVar41) >> (((byte)uVar11 ^ 0xf) & 0x3f) ^
            CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *puVar2 = (uVar36 ^ uVar41) << ((bVar51 ^ 0xc) & 0x3f) ^ uVar38;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar21 * 4) = uVar7 ^ uVar52;
  return;
}



############ FUN_ 180eb0be0 size=4345 ############

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

void FUN_180eb0be0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  uint *puVar17;
  uint *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  byte *pbVar23;
  uint uVar24;
  byte bVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  longlong *plVar30;
  uint uVar31;
  uint uVar32;
  uint *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte *pbVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  
  uVar32 = DAT_182671888;
  uVar9 = DAT_1826715a4;
  uVar8 = DAT_1826715a0;
  lVar5 = DAT_182671560;
  uVar20 = (ulonglong)DAT_1826715a0;
  uVar24 = DAT_1826715a4 - DAT_1826715a0;
  uVar12 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar24 ^ 0x9300e0d4) + (longlong)DAT_182671bb4) ^
           DAT_1826715a0;
  uVar13 = *(uint *)(&DAT_182611e80 + DAT_182671bb4) ^ DAT_1826715a4;
  uVar34 = (ulonglong)DAT_182671810;
  uVar26 = CONCAT44(uVar24,DAT_1826715a0);
  uVar19 = (ulonglong)DAT_1826715a4;
  bVar25 = (byte)DAT_1826715a0;
  DAT_1826715a8 = uVar24;
  *(ulonglong *)(DAT_182671560 + -0x548) =
       *(ulonglong *)(DAT_182671560 + -0x800) >> ((bVar25 ^ 0xf4) & 0x3f);
  puVar1 = (uint *)(lVar5 + -0x374);
  puVar17 = (uint *)(lVar5 - (uVar19 ^ 0xd9ec7a77));
  *puVar17 = *puVar1 ^ uVar32 ^ DAT_1826717a8;
  uVar16 = DAT_18267178c;
  plVar30 = (longlong *)(lVar5 - ((ulonglong)uVar24 ^ 0x9300e82c));
  pbVar23 = (byte *)((CONCAT44(uVar9,uVar9) ^ 0xd9ec7fbbd9ec7fbb) * 0x20 +
                     (CONCAT44(uVar8,uVar24) ^ 0x46eb9edf9300e0c3) + *plVar30);
  *(ulonglong *)(lVar5 + -0xbc8) = (ulonglong)pbVar23 ^ uVar34;
  *(ulonglong *)(lVar5 + -0x1d8) = CONCAT44(uVar8,uVar9) ^ CONCAT44(uVar9,uVar8) ^ 0xb3e3e794cc5217d
  ;
  bVar11 = DAT_1826715dc;
  *(byte *)(lVar5 + -0xc41) = *pbVar23 ^ DAT_1826715dc ^ (byte)DAT_182671694;
  *(ulonglong *)(lVar5 + -0x2a0) = *(ulonglong *)(lVar5 + -0x110) | *(ulonglong *)(lVar5 + -0xa88);
  *(uint *)(lVar5 + -0x910) = (*(byte *)(lVar5 + -0xc41) ^ bVar11) ^ uVar16;
  uVar31 = (*(uint *)(lVar5 + -0x5cc) ^ uVar32) + (uVar8 ^ 0x4f1cb80a) ^ DAT_182671894;
  bVar15 = (byte)uVar24 ^ 0xcd;
  *(uint *)(lVar5 + -0x754) = uVar31;
  uVar29 = DAT_1826716a4;
  uVar14 = DAT_18267156c;
  lVar6 = DAT_182671560;
  uVar31 = uVar31 ^ DAT_182671894;
  uVar35 = (ulonglong)DAT_18267156c;
  uVar27 = DAT_18267156c << 0x10;
  uVar21 = (*(uint *)(lVar5 - ((ulonglong)uVar9 ^ 0xd9ec76ab)) ^ uVar16) << (bVar15 & 0x1f) ^
           DAT_1826717d4;
  *(uint *)(lVar5 + -0x344) = uVar21;
  *(uint *)(lVar5 - ((ulonglong)uVar24 ^ 0x9300e8a8)) =
       uVar31 - (uVar21 ^ DAT_1826717d4) ^ DAT_1826717e8;
  uVar21 = DAT_182671700;
  puVar2 = (uint *)(lVar5 + -0x844);
  uVar31 = *(uint *)(lVar5 + -0x874) ^ DAT_1826717e8;
  *(uint *)(lVar5 + -0x504) = (*puVar2 ^ DAT_182671840) + uVar31;
  uVar28 = (uVar27 | uVar14 & 0xff00) << 8 | uVar14 >> 8 & 0xff00 | DAT_18267156c >> 0x18;
  *(uint *)(lVar5 + -0x47c) =
       (*(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x46eb9ca3)) ^ DAT_1826718c4) * uVar31 ^ uVar29;
  uVar38 = (ulonglong)uVar28;
  DAT_182671590 = uVar28;
  *(uint *)(lVar5 - ((ulonglong)uVar14 ^ 0xbb7feaa1)) =
       (*(uint *)(lVar5 + -0x910) ^ uVar16) * 0x1f ^ uVar21;
  uVar16 = (*(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xd9ec79c3)) ^ uVar21) +
           (*(uint *)(lVar6 + -0x47c) ^ uVar29);
  *(uint *)(lVar6 + -0x968) = uVar16 ^ uVar21;
  *(ulonglong *)(lVar6 + -0x80) = *(ulonglong *)(lVar6 + -0xbf0) | *(ulonglong *)(lVar6 + -0x600);
  bVar11 = (byte)uVar14;
  *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xd9ec7c93)) =
       uVar16 << ((bVar11 ^ 0xd4) & 0x1f) ^ DAT_182671778;
  uVar16 = *(uint *)(lVar6 + -0x328) ^ DAT_182671778;
  puVar3 = (uint *)(lVar6 + -0x3d4);
  uVar21 = (uVar21 ^ *(uint *)(lVar6 + -0x968)) >> ((bVar11 ^ 0xca) & 0x1f) ^ DAT_1826718c8;
  *puVar3 = uVar21;
  lVar5 = DAT_182671560;
  *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xd9ec7ccf)) =
       (uVar21 ^ DAT_1826718c8 | uVar16) ^ DAT_18267172c;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xd9ec7dcb)) =
       (CONCAT44(uVar14,uVar14) ^ 0x5c000e3822705932) -
       (CONCAT44(uVar28,uVar28) ^ 0x726b7fd748df1043);
  uVar7 = DAT_182671730;
  *(uint *)(lVar5 - (uVar20 ^ 0x46eb9b13)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar14 ^ 0xbb7feea5)) ^ DAT_1826718c4) +
       (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624) ^ DAT_182671818;
  uVar21 = *(uint *)(lVar5 + -0x5cc) ^ DAT_182671688 ^ DAT_182671818;
  *(ulonglong *)(lVar5 + -0x3b8) =
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar5 + -0x610)) -
       (CONCAT44(uVar32,uVar32) ^ *(ulonglong *)(lVar5 + -0x670));
  *(uint *)(lVar5 - (uVar38 ^ 0xd9ec78ef)) = uVar21;
  *(longlong *)(lVar5 + -0x5c8) = -0x2d05835aa385768a << ((bVar11 ^ 0xd7) & 0x3f);
  *(uint *)(lVar5 + -0x344) = *puVar1 ^ DAT_1826717dc ^ DAT_18267172c;
  uVar22 = DAT_1826718a8;
  *(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x46eb969b)) =
       DAT_1826718a8 ^ DAT_182671688 ^ *(uint *)(lVar5 + -0x754);
  uVar32 = DAT_1826715a4;
  uVar19 = (ulonglong)DAT_1826718b8;
  pbVar23 = (byte *)((CONCAT44(uVar28,uVar28) ^ 0xd9ec7fbbd9ec7fbb) * 0x20 +
                     (uVar26 ^ 0x9300e0dc46eb9ed5) + *(longlong *)(lVar5 + -0x8f0));
  uVar16 = *(uint *)(lVar5 + -0x344) ^ DAT_1826716ec ^ DAT_1826717dc;
  *(uint *)(lVar5 + -0x504) = uVar16;
  uVar16 = uVar16 ^ DAT_1826716ec;
  *(ulonglong *)(lVar5 + -0x6d0) =
       (CONCAT44(uVar24,uVar32) ^ 0xaff16e850e18635b) <<
       ((byte)*(undefined8 *)(lVar5 + -0x3b8) & 0x3f);
  *(ulonglong *)(lVar5 + -0x1a8) = (ulonglong)pbVar23 ^ uVar19;
  uVar31 = DAT_182671664;
  lVar5 = DAT_182671560;
  uVar21 = DAT_182671688 & 0xff;
  bVar11 = *pbVar23 ^ (byte)DAT_182671688 ^ (byte)DAT_182671694;
  pbVar23 = (byte *)(DAT_182671560 + -0x41);
  *pbVar23 = bVar11;
  *(uint *)(lVar5 + -0x874) = uVar21 ^ bVar11 ^ uVar31;
  puVar18 = (uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x46eb97cf));
  *puVar18 = uVar16 + (uVar14 ^ 0xb288ca0c) ^ DAT_1826717a0;
  uVar27 = DAT_1826717fc;
  uVar16 = DAT_182671594;
  uVar7 = DAT_182671588;
  uVar21 = DAT_182671574;
  uVar37 = (ulonglong)DAT_182671594;
  uVar19 = CONCAT44(uVar28,DAT_182671570);
  *(uint *)(lVar5 - (uVar38 ^ 0xd9ec7bc7)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar32 ^ 0xd9ec77cf)) ^ uVar31) << ((bVar25 ^ 0xce) & 0x1f) ^
       DAT_1826717fc;
  uVar32 = *(uint *)(lVar5 + -0x910) ^ DAT_1826717a0;
  *(ulonglong *)(lVar5 + -0xa60) = *(longlong *)(lVar5 + -0x5c8) - (uVar19 ^ 0xb32306740179fb58);
  uVar32 = uVar32 - (*(uint *)(lVar5 + -0x47c) ^ uVar27) ^ DAT_1826717a4;
  *(uint *)(lVar5 + -0x678) = uVar32;
  uVar32 = uVar32 ^ DAT_1826717a4;
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       CONCAT44(uVar21,uVar7) ^ 0x2cfeb7016176deab | CONCAT44(uVar14,uVar16) ^ 0xc6be4e7e0d4748b2;
  uVar16 = DAT_1826715a4;
  lVar5 = DAT_182671560;
  uVar19 = (ulonglong)DAT_1826715a4;
  *(uint *)(DAT_182671560 + -0x968) = uVar32 * (*puVar2 ^ uVar22) ^ DAT_182671794;
  lVar6 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x328) =
       (*(uint *)(lVar5 - (uVar19 ^ 0xd9ec7bc7)) ^ uVar27) + (uVar14 ^ 0x214bbc43);
  uVar31 = (*(uint *)(lVar6 - (uVar35 ^ 0xbb7fe4ad)) ^ uVar31) * 10 ^ _DAT_18267188c;
  *puVar3 = uVar31;
  uVar32 = DAT_1826716d0;
  uVar27 = DAT_182671598;
  puVar33 = (uint *)(lVar6 - ((ulonglong)uVar16 ^ 0xd9ec76d3));
  uVar26 = (ulonglong)DAT_182671598;
  uVar31 = (*puVar33 ^ DAT_182671794) + (uVar31 ^ _DAT_18267188c);
  puVar4 = (uint *)(lVar6 + -0x27c);
  *puVar4 = uVar31 ^ DAT_1826716d0;
  *(uint *)(lVar6 + -0x5cc) = uVar31 * 0x2000 ^ DAT_182671768;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar16 ^ 0xd9ec7dfb)) =
       CONCAT44(uVar24,uVar14) ^ *(ulonglong *)(lVar6 + -0x270) ^ 0xf7ce9357a7348ead;
  uVar10 = DAT_182671624;
  uVar14 = DAT_18267157c;
  lVar5 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671624;
  uVar19 = (ulonglong)DAT_18267157c;
  *(uint *)(lVar6 - (uVar35 ^ 0xbb7fefad)) = (*puVar4 ^ uVar32) >> 0x13 ^ DAT_1826718b0;
  *(longlong *)(lVar5 - (uVar26 ^ 0x90e66d17)) =
       *(longlong *)(lVar5 - (uVar19 ^ 0x5ec967e7)) << (((byte)uVar14 ^ 0x87) & 0x3f);
  uVar24 = DAT_1826715b0;
  *(uint *)(lVar5 + -0x754) =
       (*(uint *)(lVar5 + -0x5cc) ^ DAT_182671768 | *puVar1 ^ DAT_1826718b0) ^ uVar29;
  uVar16 = (*(uint *)(lVar5 + -0x3c8) ^ uVar10) + (*puVar2 ^ uVar22) ^ DAT_182671814;
  *(uint *)(lVar5 + -0x344) = uVar16;
  *(uint *)(lVar5 + -0x504) = uVar16 ^ DAT_1826718b4 ^ DAT_182671814;
  bVar11 = (byte)DAT_182671788;
  uVar22 = DAT_18267168c;
  uVar32 = DAT_182671580;
  uVar16 = DAT_182671578;
  uVar35 = (ulonglong)DAT_182671578;
  uVar19 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671580 ^ 0xf68fd676)) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar24 ^ 0x46ab9516)) | *(ulonglong *)(lVar5 + -0x800);
  uVar26 = (ulonglong)DAT_182671584;
  uVar31 = *(uint *)(lVar5 - (uVar19 ^ 0xecc9bc2b)) ^ DAT_1826716a4 ^ DAT_1826718c4;
  *(uint *)(lVar5 + -0x910) = uVar31;
  uVar31 = uVar31 ^ DAT_182671760 ^ DAT_1826718c4;
  *(uint *)(lVar5 + -0x678) = *(uint *)(lVar5 + -0x504) ^ uVar22 ^ DAT_1826718b4;
  *(uint *)(lVar5 - (uVar26 ^ 0x8804246c)) = uVar31;
  uVar34 = (CONCAT44(uVar14,uVar28) ^ 0x5ec965a7d9ec7fae) + *plVar30 ^ uVar34;
  *(ulonglong *)(lVar5 + -0x638) =
       CONCAT44(uVar21,uVar8) ^ 0x179ebc356bdc4faf | *(ulonglong *)(lVar5 + -0x6d0);
  *(ulonglong *)(lVar5 + -0x1b0) = uVar34;
  uVar29 = DAT_1826715ec;
  uVar31 = DAT_18267158c;
  lVar5 = DAT_182671560;
  *(byte *)(DAT_182671560 - ((ulonglong)DAT_18267158c ^ 0xbb7fe088)) =
       *(byte *)(uVar10 ^ uVar34) ^ (byte)DAT_182671694 ^ bVar11;
  uVar21 = (uint)(*(byte *)(lVar5 + -0xc41) ^ bVar11);
  *(ulonglong *)(lVar5 + -0x510) =
       (CONCAT44(uVar28,uVar8) ^ 0x2e629ef5519109db) >> (((byte)uVar7 ^ 0xdf) & 0x3f);
  *(uint *)(lVar5 + -0x328) = uVar21 ^ uVar29;
  *(uint *)(lVar5 + -0x874) =
       (*(uint *)(lVar5 - (uVar20 ^ 0x46eb9aa3)) ^ DAT_182671760) + (uVar16 ^ 0x3d602d5) ^
       DAT_182671734;
  uVar14 = DAT_18267175c;
  *puVar33 = uVar21 << (bVar15 & 0x1f) ^ DAT_18267175c;
  uVar21 = DAT_182671568;
  uVar26 = (ulonglong)DAT_182671568;
  *puVar3 = (*(uint *)(lVar5 + -0x874) ^ DAT_182671734) - (uVar14 ^ *(uint *)(lVar5 + -0x968)) ^
            DAT_1826716cc;
  uVar19 = (ulonglong)DAT_1826715b4;
  *puVar4 = (*(uint *)(lVar5 - (uVar38 ^ 0xd9ec7c6f)) ^ DAT_1826716cc) *
            (*(uint *)(lVar5 - ((ulonglong)uVar16 ^ 0xa212278)) ^ uVar22) ^ DAT_1826716ec;
  uVar8 = DAT_182671630;
  uVar14 = DAT_1826715a4;
  *(uint *)(lVar5 - (uVar19 ^ 0xfffffa33)) =
       (*(uint *)(lVar5 + -0x328) ^ uVar29) * (uVar32 ^ 0xf68fd0db) ^ DAT_1826718a4;
  *(longlong *)(lVar5 + -0xa0) = *(longlong *)(lVar5 - (uVar37 ^ 0x9702c89)) + -0x30ff0381cea7c41d;
  uVar10 = DAT_18267177c;
  uVar29 = (*(uint *)(lVar5 - ((ulonglong)uVar14 ^ 0xd9ec7dc7)) ^ DAT_1826716ec) +
           (*(uint *)(lVar5 - (uVar26 ^ 0x99964e02)) ^ DAT_1826718a4);
  *puVar1 = uVar29 ^ DAT_18267177c;
  uVar32 = DAT_1826716b4;
  uVar26 = (ulonglong)DAT_18267159c;
  uVar19 = CONCAT44(DAT_182671570,DAT_18267159c);
  *puVar2 = uVar29 << (((byte)uVar14 ^ 0xb6) & 0x1f) ^ uVar8;
  uVar7 = DAT_1826715ac;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar19 ^ 0x11dace1b92d254c7 | *(ulonglong *)(lVar5 + -0x270);
  *(uint *)(lVar5 - ((ulonglong)DAT_182671574 ^ 0x7a481a76)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar21 ^ 0x999648ba)) ^ uVar10) >>
       (((byte)uVar7 ^ 0xec) & 0x1f) ^ DAT_182671604;
  uVar29 = DAT_182671738;
  uVar14 = *puVar2;
  *(ulonglong *)(lVar5 + -0x548) =
       CONCAT44(uVar7,uVar27) ^ 0xe800107c6f234d52 | *(ulonglong *)(lVar5 + -0x510);
  uVar22 = (*(uint *)(lVar5 + -0x678) ^ uVar22) + (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624) ^
           _DAT_182671618;
  uVar27 = DAT_1826716d8 ^ _DAT_182671618;
  *(uint *)(lVar5 + -0x754) =
       (uVar8 ^ uVar14 | *(uint *)(lVar5 + -0x344) ^ DAT_182671604) ^ DAT_1826717a0;
  *(uint *)(lVar5 + -0x504) = uVar22;
  *puVar18 = uVar27 ^ uVar22;
  *(uint *)(lVar5 - (uVar26 ^ 0x6a3a5fee)) =
       _DAT_1826715f0 ^ DAT_1826717a0 ^ *(uint *)(lVar5 + -0x754);
  uVar27 = DAT_182671768;
  pbVar36 = (byte *)((CONCAT44(uVar21,uVar31) ^ 0x99964bcebb7fecc9) + *(longlong *)(lVar5 + -0x8f0))
  ;
  uVar28 = *(uint *)(lVar5 + -0x910) ^ uVar29 ^ DAT_1826716d8;
  uVar22 = *(uint *)(lVar5 + -0x47c) ^ uVar32 ^ _DAT_1826715f0;
  uVar21 = DAT_182671768 & 0xff;
  *(ulonglong *)(lVar5 + -0xd80) = (ulonglong)pbVar36 ^ (ulonglong)DAT_18267185c;
  *(uint *)(lVar5 + -0x874) = uVar28;
  *(uint *)(lVar5 + -0x968) = uVar22;
  uVar31 = DAT_1826716c8;
  uVar14 = DAT_182671578;
  bVar11 = *pbVar36 ^ (byte)DAT_182671694 ^ (byte)uVar27;
  uVar24 = (uVar32 ^ uVar22) + (uVar24 ^ 0x4f5cb21b) ^ DAT_182671678;
  uVar27 = DAT_182671578 * DAT_1826715a4;
  *(uint *)(lVar5 + -0x328) = uVar24;
  uVar24 = uVar24 ^ DAT_182671678;
  *pbVar23 = bVar11;
  uVar21 = bVar11 ^ uVar21 ^ DAT_1826715bc;
  DAT_182671574 = uVar27;
  *puVar3 = uVar21;
  uVar21 = uVar21 ^ DAT_1826715bc;
  *puVar4 = uVar21 * 0x20000 ^ uVar8;
  lVar5 = DAT_182671560;
  uVar24 = uVar24 + uVar21 * -0x20000;
  *(uint *)(DAT_182671560 + -0x5cc) = uVar24 ^ uVar10;
  *(ulonglong *)(lVar5 + -0xa88) =
       CONCAT44(uVar9,uVar16) ^ CONCAT44(uVar27,uVar16) ^ 0xce6a8f0365e4a27c;
  uVar32 = DAT_182671694;
  uVar26 = (ulonglong)DAT_182671810;
  *puVar1 = uVar24 * (uVar29 ^ uVar28) ^ DAT_1826718a0;
  uVar19 = *(ulonglong *)(lVar5 + -0xbc8);
  uVar34 = (ulonglong)DAT_1826715a4;
  *puVar2 = uVar31;
  uVar20 = (ulonglong)DAT_1826715a4;
  *(byte *)(DAT_182671560 - (uVar34 ^ 0xd9ec73fa)) = *(byte *)(uVar19 ^ uVar26) ^ (byte)uVar32;
  uVar21 = DAT_182671688;
  lVar5 = DAT_182671560;
  uVar31 = (*(uint *)(DAT_182671560 - (uVar20 ^ 0xd9ec77ff)) ^ uVar31) + (*puVar1 ^ DAT_1826718a0);
  *(uint *)(DAT_182671560 + -0x344) = uVar31 ^ DAT_182671688;
  *(uint *)(lVar5 + -0x678) = uVar31 << (((byte)uVar27 ^ 0xd) & 0x1f) ^ _DAT_18267188c;
  *(uint *)(lVar5 - ((ulonglong)uVar27 ^ 0x7114904)) =
       (*(uint *)(lVar5 + -0x344) ^ uVar21) >> (((byte)DAT_1826715a4 ^ 0xa8) & 0x1f) ^ DAT_182671750
  ;
  lVar5 = DAT_182671560;
  uVar21 = *(uint *)(DAT_182671560 + -0x678) ^ _DAT_18267188c;
  *(uint *)(DAT_182671560 + -0x754) = (uVar14 ^ 0xfffffaa8) << 0x13;
  uVar14 = *(uint *)(lVar5 + -0x3c8) ^ DAT_182671624;
  *(uint *)(lVar5 + -0x910) = (uVar21 | *(uint *)(lVar5 + -0x504) ^ DAT_182671750) ^ DAT_182671758;
  uVar14 = (uVar29 ^ *(uint *)(lVar5 + -0x874)) + uVar14 ^ uVar32;
  *(uint *)(lVar5 + -0x47c) = uVar14;
  uVar14 = uVar14 ^ DAT_182671654;
  uVar19 = (ulonglong)DAT_1826717d0;
  *(ulonglong *)(lVar5 + -0x110) = *(ulonglong *)(lVar5 - (uVar35 ^ 0xa2124a0)) ^ 0x643e4011d34c6a98
  ;
  *puVar33 = uVar14 ^ uVar32;
  *(uint *)(lVar5 + -0x328) = *(uint *)(lVar5 + -0x910) ^ DAT_1826716b0 ^ DAT_182671758;
  uVar21 = DAT_182671790;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xa2126a0)) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0x71144a8)) ^ CONCAT44(uVar9,uVar27) ^
       0xe8fec73b2bec72a9;
  *puVar4 = uVar21 ^ DAT_182671654 ^ *(uint *)(lVar5 + -0x968);
  *(uint *)(lVar5 + -0x5cc) = *(uint *)(lVar5 + -0x328) ^ DAT_182671720 ^ DAT_1826716b0;
  bVar11 = DAT_182671610;
  uVar26 = (ulonglong)DAT_1826715a4;
  uVar31 = DAT_1826715a4 ^ 0xd01b596e;
  pbVar36 = (byte *)(*(longlong *)(lVar5 - (uVar35 ^ 0xa212cf0)) +
                     (CONCAT44(uVar16,uVar16) ^ 0xa2124000a21240b) +
                    (CONCAT44(uVar27,DAT_1826715a4) ^ 0x7114c00d9ec7fbb) * 0x20);
  *(ulonglong *)(lVar5 + -0xae8) = (ulonglong)pbVar36 ^ uVar19;
  *(byte *)(lVar5 - (uVar26 ^ 0xd9ec7ffa)) = *pbVar36 ^ (byte)uVar32 ^ bVar11;
  uVar14 = *puVar4;
  *puVar3 = (bVar11 ^ *pbVar23) ^ DAT_182671648;
  *puVar1 = uVar21 ^ uVar14 | uVar27 ^ 0x402d6fa4;
  *puVar2 = (*puVar17 ^ DAT_182671720) + uVar31 ^ DAT_1826717e8;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar12;
  return;
}



############ FUN_ 180f17d60 size=3714 ############

void FUN_180f17d60(void)

{
  longlong *plVar1;
  byte *pbVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  int *piVar5;
  ulonglong *puVar6;
  byte bVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  byte *pbVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  undefined1 *puVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  longlong lVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  uint uVar39;
  uint uVar40;
  ulonglong uVar41;
  byte local_70;
  
  uVar16 = DAT_1826715b0;
  uVar15 = DAT_1826715a8;
  uVar14 = DAT_182671594;
  uVar13 = DAT_182671590;
  uVar12 = DAT_182671584;
  uVar11 = DAT_182671570;
  uVar10 = DAT_182671568;
  lVar8 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671568;
  uVar39 = DAT_182671570 | DAT_1826715b0;
  uVar38 = DAT_1826715b4 | DAT_1826715a4;
  uVar35 = (ulonglong)DAT_182671590;
  uVar23 = DAT_1826715a8 | DAT_182671568;
  uVar40 = DAT_182671584 ^ DAT_182671590;
  uVar32 = (DAT_182671594 << 0x10 | DAT_182671594 & 0xff00) << 8 | DAT_182671594 >> 8 & 0xff00 |
           DAT_182671594 >> 0x18;
  uVar26 = *(uint *)(&DAT_182611e78 + DAT_182671a00) ^ DAT_1826715a8;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671a00) ^ DAT_182671568;
  DAT_182671588 = uVar38;
  DAT_18267158c = uVar39;
  DAT_1826715a0 = uVar32;
  DAT_1826715ac = uVar23;
  *(longlong *)(DAT_182671560 - ((ulonglong)uVar23 ^ 0x97bfb9ff)) =
       *(longlong *)(DAT_182671560 + -0x638) - *(longlong *)(DAT_182671560 + -0x1d8);
  uVar17 = DAT_1826715b4;
  pbVar2 = (byte *)(lVar8 + -0x5e9);
  uVar41 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar40 ^ 0xba82f74c)) = (ulonglong)*pbVar2;
  lVar8 = DAT_182671560;
  uVar27 = (ulonglong)uVar15;
  uVar21 = *(longlong *)(DAT_182671560 - (uVar27 ^ 0x96bf3746)) << (((byte)uVar12 ^ 0x8e) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar21;
  *(ulonglong *)(lVar8 + -0x600) = uVar21 | *(ulonglong *)(lVar8 + -0x1d8);
  puVar28 = (undefined1 *)
            ((CONCAT44(uVar40,uVar38) ^ 0xba82ffe4fedb7f11) +
            *(longlong *)((uVar41 ^ 0x1c022a30) + lVar8));
  *(undefined1 **)(lVar8 + -0xa20) = puVar28;
  uVar19 = DAT_1826715a4;
  *(undefined1 *)(lVar8 - (uVar31 ^ 0x12682aa)) = *puVar28;
  *(ulonglong *)(DAT_182671560 + -0x240) =
       CONCAT44(uVar19,uVar12) ^ *(ulonglong *)(DAT_182671560 + -0x6d0) ^ 0x2a06e2d37306dd95;
  lVar34 = DAT_182671560;
  uVar21 = (ulonglong)uVar32;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0x3cc88c6d)) =
       (ulonglong)*(byte *)(DAT_182671560 - ((ulonglong)uVar32 ^ 0xd86ca35));
  uVar25 = (ulonglong)uVar11;
  uVar22 = *(longlong *)(lVar34 - (uVar25 ^ 0xfed9753c)) << (((byte)uVar16 ^ 0x38) & 0x3f);
  puVar3 = (ulonglong *)(lVar34 + -0xc08);
  *(ulonglong *)(lVar34 + -0xa0) = uVar22;
  *puVar3 = uVar22 | *(ulonglong *)(lVar34 + -0x600);
  plVar1 = (longlong *)(lVar34 + 0x30);
  lVar8 = *(longlong *)(lVar34 + -0x6d0);
  pbVar24 = (byte *)((CONCAT44(uVar19,uVar19) ^ 0xfed97f5cfed97f12) + *plVar1);
  *(byte **)(lVar34 + -0xa20) = pbVar24;
  *pbVar2 = *pbVar24;
  *(longlong *)(lVar34 - ((ulonglong)uVar40 ^ 0xba82f56c)) = lVar8 << 0x13;
  *(ulonglong *)(lVar34 + -0x510) = (ulonglong)*pbVar2;
  lVar8 = DAT_182671560;
  puVar4 = (ulonglong *)(DAT_182671560 + -0x2a0);
  lVar34 = *(longlong *)(DAT_182671560 - ((ulonglong)uVar39 ^ 0xfedffa4c)) <<
           (((byte)uVar39 ^ 0x6c) & 0x3f);
  *(longlong *)(DAT_182671560 + -0x628) = lVar34;
  *puVar4 = *puVar3 + lVar34;
  puVar28 = (undefined1 *)((CONCAT44(uVar15,uVar19) ^ 0x96bf3feefed97f13) + *plVar1);
  *(undefined1 **)(lVar8 + -0xa20) = puVar28;
  *(undefined1 *)(lVar8 - ((ulonglong)uVar23 ^ 0x97bfbde6)) = *puVar28;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar19 ^ 0xfed97e4c)) =
       (ulonglong)*(byte *)(lVar8 - ((ulonglong)uVar38 ^ 0xfedb7d55));
  *(longlong *)(lVar8 + -0x80) = *(longlong *)(lVar8 - (uVar21 ^ 0xd86c92c)) << 0x38;
  uVar20 = DAT_18267157c;
  piVar5 = (int *)(lVar8 + -0x678);
  uVar22 = (ulonglong)DAT_18267157c;
  *(longlong *)(lVar8 + -0x9f8) =
       *(longlong *)(lVar8 - ((ulonglong)uVar12 ^ 0x2f3dd80e)) +
       *(longlong *)(lVar8 - ((ulonglong)uVar38 ^ 0xfedb7fdc));
  uVar33 = uVar20 << 0x10 | uVar20 >> 0x10;
  DAT_18267156c = uVar33;
  *piVar5 = (uVar33 ^ 0xf9b82ecb) * 0x17a04483;
  *(longlong *)(lVar8 + -0x7b8) = *(longlong *)(lVar8 + -0x880) + 0x48;
  *(int *)(lVar8 - ((ulonglong)uVar20 ^ 0x1c02287c)) =
       *(int *)(lVar8 - (uVar22 ^ 0x1c022d74)) * *(int *)(lVar8 + -0x274);
  lVar34 = DAT_182671560;
  uVar36 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  **(ulonglong **)(DAT_182671560 - ((ulonglong)uVar33 ^ 0x2a001bba)) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0x1c0223f8)) ^ uVar36;
  lVar8 = *plVar1;
  pbVar24 = (byte *)(lVar8 + 0x50);
  *(byte **)(lVar34 + -0xa20) = pbVar24;
  puVar28 = (undefined1 *)(lVar8 + 0x51);
  bVar7 = *pbVar24;
  *(ulonglong *)(lVar34 + -0x318) = (ulonglong)bVar7;
  *pbVar2 = bVar7;
  *(undefined1 **)(lVar34 + -0xa20) = puVar28;
  *piVar5 = (uVar14 ^ 0x350a8b98) << (((byte)uVar40 ^ 0xf3) & 0x1f);
  lVar8 = DAT_182671560;
  *(undefined1 *)(lVar34 - ((ulonglong)uVar33 ^ 0x2a001e0b)) = *puVar28;
  *(ulonglong *)(lVar34 - (uVar31 ^ 0x12688a3)) =
       (CONCAT44(uVar17,uVar15) ^ 0x94c7135369b077cd) >>
       ((byte)*(undefined8 *)(lVar34 + -0x9f8) & 0x3f);
  *(ulonglong *)(lVar34 - (uVar25 ^ 0xfed974ac)) = (ulonglong)*(byte *)(lVar34 + -0x209);
  *(longlong *)(lVar34 + -0x670) = *(longlong *)(lVar34 + -0xbf0) << (((byte)uVar38 ^ 0x54) & 0x3f);
  lVar9 = DAT_182671560;
  local_70 = (byte)uVar13;
  uVar37 = *(ulonglong *)(lVar34 - ((ulonglong)uVar16 ^ 0x6079660)) | *(ulonglong *)(lVar8 + -0x318)
  ;
  *(ulonglong *)(lVar8 + -0x688) =
       (CONCAT44(uVar20,uVar40) ^ 0xfbe9475c984f6e2f) >> ((local_70 ^ 0x70) & 0x3f);
  *(ulonglong *)(lVar8 + -0x898) = uVar37;
  lVar8 = *plVar1;
  pbVar24 = (byte *)(lVar8 + 0x52);
  *(byte **)(lVar9 + -0xa20) = pbVar24;
  *pbVar2 = *pbVar24;
  lVar34 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (CONCAT44(uVar40,uVar15) ^ 0x97c06b990aa7e4f7) << (((byte)uVar16 ^ 0x3a) & 0x3f);
  bVar7 = *pbVar2;
  *(ulonglong *)(lVar34 + -0x8a8) = (ulonglong)bVar7;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (CONCAT44(uVar19,uVar32) ^ 0xcff5cdcdca71b594) >>
       ((byte)*(undefined8 *)(lVar34 + -0x9f8) & 0x3f);
  lVar34 = DAT_182671560;
  uVar29 = (ulonglong)bVar7 << (((byte)(uVar20 >> 0x10) ^ 0x12) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar29;
  *(ulonglong *)(lVar34 + -0xa60) = uVar29 | uVar37;
  lVar34 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x600) =
       CONCAT44(uVar14,uVar15) ^ CONCAT44(uVar13,uVar14) ^ 0x60adde2993e7496b;
  *(ulonglong *)(lVar34 + -0xa20) = (CONCAT44(uVar12,uVar17) ^ 0x2f3ddaae1c022a53) + lVar8;
  bVar7 = **(byte **)(lVar34 - (uVar25 ^ 0xfed9757c));
  *(byte *)(lVar34 + -0x209) = bVar7;
  *(ulonglong *)(lVar34 - ((ulonglong)uVar39 ^ 0xfedffffc)) = (ulonglong)bVar7;
  *pbVar2 = **(byte **)(lVar34 + -0x60);
  *(longlong *)(lVar34 + -0x6d0) = *(longlong *)(lVar34 + -0xa0) << (((byte)uVar20 ^ 0x18) & 0x3f);
  *(ulonglong *)(lVar34 + -0xa88) =
       *(ulonglong *)(lVar34 + -0xa60) | *(ulonglong *)(lVar34 + -0x670);
  *(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x96bf3afe)) =
       *(ulonglong *)(lVar34 - (uVar41 ^ 0x1c022cd0)) | *(ulonglong *)(DAT_182671560 + -0xa60);
  lVar8 = DAT_182671560;
  *puVar3 = (CONCAT44(uVar16,uVar11) ^ 0x6adc31a102663d37) +
            (CONCAT44(uVar40,uVar10) ^ 0x3a346166a3ea1d01);
  *(ulonglong *)(lVar8 - (uVar27 ^ 0x96bf35ce)) =
       (CONCAT44(uVar38,uVar32) ^ 0xfedb7f5c0d86c868) + *plVar1;
  *(undefined1 *)(lVar8 + -0x209) = **(undefined1 **)(lVar8 + -0xa20);
  uVar10 = DAT_182671580;
  uVar19 = ~DAT_182671580;
  uVar29 = (ulonglong)uVar19;
  uVar37 = (ulonglong)DAT_182671580;
  uVar41 = CONCAT44(DAT_182671580,uVar20);
  DAT_182671578 = uVar19;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xd527205e)) =
       CONCAT44(uVar19,DAT_182671580) ^ CONCAT44(DAT_182671580,uVar19) ^ 0x3fffeb9d7138d7c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0x2ad8d899)) =
       (ulonglong)*(byte *)(DAT_182671560 - (uVar37 ^ 0x2ad8db80));
  *(longlong *)(DAT_182671560 - ((ulonglong)uVar23 ^ 0x97bfbd4f)) =
       *(longlong *)(DAT_182671560 + -0x110) << (((byte)uVar20 ^ 0x20) & 0x3f);
  lVar8 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0xd52726f6)) =
       (CONCAT44(uVar13,uVar20) ^ 0xc8140cd467e35b34) <<
       ((byte)*(undefined8 *)(DAT_182671560 + -0x628) & 0x3f);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x6079810)) =
       *(ulonglong *)(lVar8 - (uVar37 ^ 0x2ad8dc99)) | *puVar4;
  lVar8 = DAT_182671560;
  puVar6 = (ulonglong *)(DAT_182671560 + -0x800);
  *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0x1c022a60)) =
       (CONCAT44(uVar14,uVar33) ^ 0x3cc8860d2a001c57) + *plVar1;
  bVar7 = **(byte **)(lVar8 + -0x60);
  *(ulonglong *)(lVar8 + -0xbf0) = (ulonglong)bVar7;
  *pbVar2 = bVar7;
  *(longlong *)(lVar8 + -0x318) =
       *(longlong *)(lVar8 - (uVar29 ^ 0xd5272d86)) << (((byte)uVar19 ^ 0x5e) & 0x3f);
  *(ulonglong *)(lVar8 + -0x688) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar10 ^ 0x2ad8da91)) | *puVar6;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar40 ^ 0xba82ff84)) =
       (CONCAT44(uVar14,uVar38) ^ 0x3cc8860dfedb7f0a) + *plVar1;
  bVar7 = **(byte **)(lVar8 + -0x60);
  *(byte *)(lVar8 + -0x209) = bVar7;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar10 ^ 0x2ad8df99)) = (ulonglong)bVar7;
  uVar25 = CONCAT44(uVar23,DAT_1826715a4);
  *(longlong *)(lVar8 - ((ulonglong)uVar19 ^ 0xd52727ae)) =
       *(longlong *)(lVar8 + -0x610) << (((byte)uVar39 ^ 0x6c) & 0x3f);
  *(longlong *)(lVar8 + -0x8a8) = *(longlong *)(lVar8 + -0x688) + *(longlong *)(lVar8 + -0x1d8);
  pbVar24 = (byte *)((uVar25 ^ 0x97bfbfeffed97f0b) + *plVar1);
  *(byte **)(lVar8 + -0x60) = pbVar24;
  uVar10 = DAT_1826715b4;
  *(ulonglong *)(lVar8 + -0x898) = CONCAT44(uVar12,uVar38) ^ 0xe24d1f01f134e25f;
  *pbVar2 = *pbVar24;
  *(uint *)(lVar8 - (uVar31 ^ 0x12687d7)) = uVar10 & 0xcee9f4ba ^ 0x844814a8;
  *(ulonglong *)(lVar8 + -0x240) = (ulonglong)*pbVar2;
  *(longlong *)(lVar8 + -0x600) =
       *(longlong *)(lVar8 - (uVar35 ^ 0x95bf270a)) << ((local_70 ^ 0x72) & 0x3f);
  *(longlong *)(lVar8 - (uVar21 ^ 0xd86c89c)) =
       *(longlong *)(lVar8 - (uVar27 ^ 0x96bf39ee)) +
       *(longlong *)(lVar8 - ((ulonglong)uVar12 ^ 0x2f3dd206));
  puVar30 = (ulonglong *)(*(longlong *)(lVar8 + -0x880) + 0x50);
  *(ulonglong **)(lVar8 + -0x438) = puVar30;
  *puVar30 = *(ulonglong *)(lVar8 - (uVar31 ^ 0x1268003)) ^ uVar36;
  puVar28 = (undefined1 *)
            ((CONCAT44(uVar15,uVar23) ^ 0x96bf3fee97bfbfb7) +
            *(longlong *)((uVar21 ^ 0xd86c80c) + lVar8));
  *(undefined1 **)(lVar8 + -0x60) = puVar28;
  lVar34 = DAT_182671560;
  *(undefined1 *)(lVar8 - ((ulonglong)uVar39 ^ 0xfedffd55)) = *puVar28;
  *(uint *)(lVar8 + -0x27c) = (DAT_1826715a4 ^ 0x419a4f99) - *(int *)(lVar8 + -0x774);
  *(ulonglong *)(lVar8 - (uVar22 ^ 0x1c022088)) = (ulonglong)*(byte *)(lVar8 + -0x209);
  *(ulonglong *)(lVar34 - (uVar29 ^ 0xd5272af6)) =
       (CONCAT44(uVar12,uVar11) ^ 0x2f3ddaaefed97f05) + *plVar1;
  uVar11 = DAT_182671598;
  uVar21 = (ulonglong)DAT_182671598;
  *pbVar2 = **(byte **)(lVar34 + -0xc80);
  *(ulonglong *)(lVar34 - (uVar37 ^ 0x2ad8dff9)) =
       (CONCAT44(uVar40,uVar23) ^ 0x476711d5ae890e31) + *(longlong *)(lVar34 + -0xbf0);
  uVar10 = DAT_182671574;
  bVar7 = *pbVar2;
  uVar20 = uVar11 ^ DAT_182671574;
  *(ulonglong *)(lVar34 + -0xa60) = (ulonglong)bVar7;
  uVar25 = (ulonglong)bVar7 << (((byte)uVar20 ^ 8) & 0x3f);
  DAT_18267159c = uVar20;
  *(ulonglong *)(lVar34 + -0x6d0) = uVar25;
  *(ulonglong *)(lVar34 - (uVar21 ^ 0x929f7608)) =
       *(ulonglong *)(lVar34 - ((ulonglong)uVar10 ^ 0x3396a988)) | uVar25;
  pbVar24 = (byte *)((CONCAT44(uVar10,uVar20) ^ 0x3396a300a109d95a) + *plVar1);
  *(byte **)(lVar34 + -0x5b8) = pbVar24;
  bVar7 = *pbVar24;
  *(byte *)(lVar34 + -0x209) = bVar7;
  *(ulonglong *)(lVar34 - ((ulonglong)uVar11 ^ 0x929f7b10)) = (ulonglong)bVar7;
  *(ulonglong *)(lVar34 + -0x80) =
       CONCAT44(uVar11,uVar10) ^ 0xb286fe4fa69deb7c | CONCAT44(uVar10,uVar11) ^ 0xe3ec872b543b7164;
  *(longlong *)(lVar34 - ((ulonglong)uVar20 ^ 0xa109df28)) =
       *(longlong *)(lVar34 + -0x110) << (((byte)uVar20 ^ 0x10) & 0x3f);
  *(ulonglong *)(lVar34 + -0x510) =
       (CONCAT44(uVar20,uVar11) ^ 0xe9bb5d91311820a4) - (uVar41 ^ 0xd1fe5cba6391cba3);
  pbVar24 = (byte *)((CONCAT44(uVar19,uVar10) ^ 0xd52726763396a35b) + *plVar1);
  uVar21 = *(ulonglong *)(lVar34 - ((ulonglong)uVar10 ^ 0x3396a528));
  uVar25 = *puVar3;
  *(byte **)(lVar34 + -0x5b8) = pbVar24;
  *puVar4 = uVar21 | uVar25;
  *pbVar2 = *pbVar24;
  *piVar5 = (uVar11 ^ 0xd10c7ef8) + 0xe9530be;
  *puVar6 = (ulonglong)*pbVar2;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar26;
  return;
}



############ FUN_ 180e819b0 size=4699 ############

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

void FUN_180e819b0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong uVar14;
  int *piVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong *puVar32;
  uint uVar33;
  ulonglong *puVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte bVar45;
  byte local_res18;
  ulonglong uVar34;
  
  uVar12 = DAT_182671668;
  uVar6 = DAT_1826715a0;
  uVar11 = DAT_182671588;
  lVar2 = DAT_182671560;
  uVar23 = (ulonglong)DAT_182671588;
  uVar28 = (ulonglong)DAT_1826715a0;
  uVar37 = DAT_1826717e4 ^ DAT_182671668;
  uVar21 = DAT_1826715a0 + DAT_182671574;
  uVar33 = (DAT_182671588 << 0x10 | DAT_182671588 & 0xff00) << 8 | DAT_182671588 >> 8 & 0xff00 |
           DAT_182671588 >> 0x18;
  uVar34 = (ulonglong)uVar33;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671b2c);
  uVar8 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_182671588 ^ 0xa3f5ffaf) + (longlong)DAT_182671b2c) ^
          DAT_182671588;
  uVar17 = (ulonglong)uVar21;
  uVar14 = CONCAT44(DAT_18267160c,DAT_18267160c);
  puVar16 = (ulonglong *)(DAT_182671560 + -0x898);
  DAT_182671570 = uVar21;
  DAT_18267157c = uVar33;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       CONCAT44(DAT_182671574,uVar21) ^ uVar14 ^ *(ulonglong *)(DAT_182671560 + -0x898) ^
       0x653c55c86fcf1a09;
  uVar9 = DAT_182671668 & 0xff;
  DAT_182671668 = ((DAT_182671668 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar20 = CONCAT44(DAT_182671820,DAT_182671820);
  uVar41 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xfe76f8c7)) =
       (uVar14 ^ *puVar16) - (uVar20 ^ *(ulonglong *)(lVar2 + -0x9e8)) ^ uVar41;
  bVar13 = (byte)DAT_182671574;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (CONCAT44(uVar33,uVar21) ^ 0xab4dcf8820a0b3e3) >> ((bVar13 ^ 0x94) & 0x3f);
  lVar2 = DAT_182671560;
  uVar9 = uVar37 & 0xff;
  DAT_182671828 = ((uVar37 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar43 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar9 = DAT_1826717e4 & 0xff;
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       (CONCAT44(uVar6,DAT_182671574) ^ 0xff2a985e97310b7b) +
       (uVar20 ^ *(ulonglong *)(DAT_182671560 + -0x9e8)) ^ uVar43;
  uVar4 = DAT_182671660;
  DAT_1826717e4 = ((DAT_1826717e4 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar26 = (ulonglong)DAT_1826717e4;
  uVar25 = CONCAT44(DAT_182671660,DAT_182671660);
  uVar19 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  local_res18 = (byte)uVar6;
  uVar29 = *(ulonglong *)(lVar2 - (uVar34 ^ 0xbffffd0b)) ^ *(ulonglong *)(lVar2 + -0x1f0) ^ uVar19 ^
           uVar25 ^ uVar43;
  *(ulonglong *)(lVar2 + -0xa88) = uVar29;
  uVar30 = (uVar29 ^ uVar19) << ((local_res18 ^ 0x5f) & 0x3f);
  uVar26 = uVar29 >> 0x20 ^ uVar19 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x318) = uVar26;
  *(ulonglong *)(lVar2 + -0x898) = uVar30 ^ uVar41;
  *(ulonglong *)(lVar2 + -0x2a0) = CONCAT44(uVar21,DAT_182671574) ^ 0x9c5c2f2794402add;
  lVar3 = DAT_182671560;
  uVar30 = uVar19 ^ uVar26 | uVar30;
  puVar38 = (ulonglong *)(lVar2 - (uVar34 ^ 0xbffffc4b));
  *puVar38 = uVar30 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x8a8) = (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar25) - uVar30 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xa88) = *(ulonglong *)(lVar3 + -0x2a0) ^ 0x919f963e62cc2007;
  lVar2 = DAT_182671560;
  puVar31 = (ulonglong *)(lVar3 - (uVar28 ^ 0xfe76f857));
  uVar30 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671574 ^ 0x7dc19037)) ^ *puVar31 ^ uVar19 ^
           uVar41 ^ uVar14;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar30;
  uVar26 = (uVar30 ^ uVar19) >> ((local_res18 ^ 0x5f) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar26 ^ uVar41;
  lVar3 = DAT_182671560;
  uVar30 = (*(ulonglong *)(lVar2 - (uVar17 ^ 0x7c389d96)) ^ uVar19) <<
           (((byte)uVar11 ^ 0x9f) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar30 ^ uVar43;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0xa88) = (uVar30 | uVar26) ^ uVar19;
  puVar16 = (ulonglong *)(lVar2 - (uVar23 ^ 0xa3f5f537));
  *puVar31 = (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar41) - (*puVar16 ^ uVar19) ^ uVar43;
  lVar3 = DAT_182671560;
  puVar32 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671574 ^ 0x7dc1942f));
  *(ulonglong *)(lVar2 + -0x898) = *puVar32 << ((*(byte *)(lVar2 + -0x8a8) ^ (byte)uVar12) & 0x3f);
  puVar35 = (ulonglong *)(lVar2 - (uVar17 ^ 0x7c389616));
  *puVar35 = *(ulonglong *)(lVar3 + -0x8a8) ^ *puVar16 ^ uVar41;
  puVar31 = (ulonglong *)(lVar3 - (uVar28 ^ 0xfe76fd67));
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (uVar19 ^ *puVar31) >> ((local_res18 ^ 0x45) & 0x3f) ^ uVar43;
  uVar26 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *puVar32 = (uVar19 ^ *(ulonglong *)(DAT_182671560 + -0x318)) << 6 ^ uVar26;
  lVar2 = DAT_182671560;
  uVar29 = (CONCAT44(DAT_182671574,uVar33) ^ 0xbcbd7f2ca08e21b9) -
           (CONCAT44(uVar6,uVar33) ^ 0x7a7c70e533c00e11);
  puVar16 = (ulonglong *)(DAT_182671560 + -0x1f0);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar29;
  lVar3 = DAT_182671560;
  uVar30 = *puVar16 ^ uVar43 | *(ulonglong *)(lVar2 + -0x2a0) ^ uVar26;
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar30 ^ uVar41;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar41) - uVar30 ^ uVar41;
  uVar5 = DAT_1826717d0;
  *puVar32 = uVar30 | uVar29;
  uVar42 = CONCAT44(uVar5,uVar5);
  puVar16 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671574 ^ 0x7dc19e27));
  *puVar16 = uVar42 ^ *(ulonglong *)(lVar2 + -0x628) ^ *(ulonglong *)(lVar2 + -0x9e8);
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 + -0x8a8) ^ uVar42) >> (((byte)uVar11 ^ 0xa9) & 0x3f) ^ uVar41;
  uVar5 = DAT_1826716a8;
  *(ulonglong *)(lVar2 + -0x2a0) =
       CONCAT44(uVar6,uVar11) ^ 0xaf135e261766a721 | uVar19 ^ *(ulonglong *)(lVar2 + -0x318);
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (*(ulonglong *)(DAT_182671560 + -0x8a8) ^ uVar42) << (((byte)uVar21 ^ 0x24) & 0x3f) ^ uVar27;
  *(uint *)(lVar2 - (uVar17 ^ 0x7c389c1e)) =
       (DAT_182671588 ^ 0xe345991e) + *(int *)(lVar2 - (uVar28 ^ 0xfe76fc03));
  uVar5 = _DAT_1826716c0;
  *puVar35 = (uVar27 ^ *(ulonglong *)(lVar2 + -0x9e8) | uVar41 ^ *(ulonglong *)(lVar2 + -0x898)) ^
             uVar26;
  uVar7 = DAT_18267175c;
  lVar2 = DAT_182671560;
  uVar24 = CONCAT44(uVar5,uVar5);
  uVar30 = uVar26 ^ *(ulonglong *)(DAT_182671560 + -0x1f0) ^ uVar43 ^ uVar41 ^
           *(ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (*(ulonglong *)(DAT_182671560 + -0x628) ^ uVar43) - (uVar26 ^ *puVar31) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar30;
  lVar2 = DAT_182671560;
  uVar36 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0x898) = (uVar30 ^ uVar43) >> ((bVar13 ^ 0xa1) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xfe76f797)) =
       (uVar30 ^ uVar43) << ((bVar13 ^ 0x9d) & 0x3f) ^ uVar19;
  uVar22 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar30 = *(ulonglong *)(lVar2 - (uVar34 ^ 0xbffffd3b)) ^ uVar36 | *puVar38 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 + -0xa88) ^ uVar19) <<
       ((*(byte *)(lVar2 + -0x2a0) ^ (byte)uVar5) & 0x3f);
  *(ulonglong *)(lVar2 + -0x628) = uVar30 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x8a8) = (*(ulonglong *)(lVar2 + -0x1f0) ^ uVar41) - uVar30 ^ uVar19;
  lVar3 = DAT_182671560;
  bVar13 = (byte)DAT_182671580;
  uVar30 = *(ulonglong *)(lVar2 - (uVar17 ^ 0x7c3893b6)) ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar24 ^
           uVar26 ^ uVar41;
  *(ulonglong *)(lVar2 + -0x898) = uVar30;
  uVar9 = DAT_1826715c4;
  uVar40 = (ulonglong)DAT_1826715c4;
  *(ulonglong *)(lVar2 + -0x9e8) = (uVar30 ^ uVar26) >> ((bVar13 ^ 0x7c) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671574 ^ 0x7dc19c07)) =
       (uVar26 ^ uVar30) << ((local_res18 ^ 0x4b) & 0x3f) ^ uVar19;
  uVar30 = *(ulonglong *)(lVar2 + -0x9e8);
  uVar39 = CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar17 = *(ulonglong *)(lVar3 + -0xa88) ^ uVar19 | uVar43 ^ uVar30;
  uVar29 = uVar17 ^ uVar39;
  *(ulonglong *)(lVar3 + -0x318) = uVar29;
  *(ulonglong *)(lVar3 + -0x1f0) = (*(ulonglong *)(lVar3 + -0x2a0) ^ uVar24) - uVar17 ^ uVar41;
  uVar12 = DAT_18267156c;
  uVar29 = *puVar16 ^ CONCAT44(uVar9,uVar9) ^ uVar39 ^ uVar19 ^ uVar29;
  uVar18 = (ulonglong)DAT_18267156c;
  uVar10 = DAT_18267156c << 0x10 | DAT_18267156c >> 0x10;
  DAT_182671574 = uVar10;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar29;
  uVar40 = *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xdd8f8965)) >> 0x19 ^
           ((ulonglong)(uVar9 >> 0x19) | uVar40 << 7);
  *(ulonglong *)(lVar3 + -0x898) = uVar40 ^ uVar24;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       CONCAT44(uVar12,uVar12) ^ uVar43 ^ uVar30 ^ 0xf50cbf4da7d2605b;
  bVar13 = (byte)uVar12;
  uVar30 = (CONCAT44(uVar9,uVar9) ^ uVar29) << ((bVar13 ^ 0xa8) & 0x3f);
  uVar17 = uVar30 ^ uVar25;
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar17;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (CONCAT44(uVar10,uVar10) ^ 0x952b116977c618ca) << (((byte)uVar17 ^ (byte)uVar4) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9e8) = (uVar30 | uVar40) ^ uVar43;
  uVar4 = DAT_1826717dc;
  lVar2 = DAT_182671560;
  puVar16 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       CONCAT44(uVar12,uVar12) ^ 0xd6a0c692355b893f | CONCAT44(uVar10,uVar12) ^ 0xc63597278b3646d2;
  uVar37 = DAT_182671598;
  uVar17 = CONCAT44(uVar4,uVar4);
  uVar40 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xdd8f8cc5)) =
       (*puVar16 ^ uVar19) - (CONCAT44(uVar10,uVar12) ^ 0xfbf41c21ee294b85) ^ uVar17;
  uVar30 = *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x8fddde97));
  *(longlong *)(lVar2 + -0x2a0) = *(longlong *)(lVar2 + -0xa88) << 0xf;
  uVar4 = DAT_1826715e4;
  *(ulonglong *)(lVar2 + -0x898) =
       (uVar30 ^ uVar17) - (uVar43 ^ *(ulonglong *)(lVar2 + -0x9e8)) ^ uVar42;
  uVar9 = DAT_182671874;
  uVar29 = CONCAT44(uVar4,uVar4);
  uVar30 = (ulonglong)DAT_182671874;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x8fddd467)) ^ uVar43) -
       (CONCAT44(uVar12,uVar10) ^ 0x44f033ab106446e6) ^ uVar29;
  uVar44 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0x8cff45cf)) =
       -0x7181d084b8257124 - (CONCAT44(uVar12,uVar11) ^ 0x69c3ddfd17ad5af0);
  uVar43 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar2 + -0x318) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0xa3f5fe4f)) ^
       *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x8fdddba7)) ^ uVar44 ^ uVar22 ^ uVar41;
  uVar9 = DAT_18267158c;
  uVar4 = DAT_182671568;
  lVar3 = DAT_182671560;
  uVar40 = (ulonglong)DAT_1826715a8;
  bVar45 = (byte)(uVar12 >> 0x10);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xbfffff2b)) = (*puVar31 >> 0x20 ^ uVar30) >> 1 ^ uVar43;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xe289efe0)) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0x318)) << ((bVar45 ^ 0xc2) & 0x3f) ^ uVar24;
  puVar32 = (ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xdd8f8635));
  *puVar32 = (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar24 | uVar43 ^ *(ulonglong *)(lVar2 + -0xa88)) ^
             uVar25;
  uVar17 = (*(ulonglong *)(DAT_182671560 + -0x1f0) ^ uVar41) -
           (CONCAT44(uVar9,uVar12) ^ 0x1f0b02247952f9c4);
  uVar11 = DAT_182671588 ^ 0x4a466fb6;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar17 ^ uVar43;
  *(uint *)(lVar3 + -0x910) = uVar11 + 0x45161409;
  uVar30 = uVar25 ^ *(ulonglong *)(lVar3 + -0x9e8);
  *(ulonglong *)(lVar3 + -0x628) = uVar17 - uVar30 ^ uVar27;
  uVar5 = DAT_182671594;
  uVar30 = (CONCAT44(uVar33,uVar4) ^ 0x528e735266460a8f) + uVar30;
  uVar17 = uVar30 ^ uVar39;
  *(ulonglong *)(lVar3 + -0x318) = uVar17;
  uVar30 = uVar30 ^ uVar22 ^ uVar42 ^ *(ulonglong *)(lVar3 + -0x898);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar30;
  uVar43 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0xa88) = CONCAT44(uVar5,uVar37) ^ uVar39 ^ uVar17 ^ 0x790044bdeb343af0;
  uVar11 = DAT_182671570 ^ 0x251628e4;
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar30 ^ uVar22) >> (((byte)uVar21 ^ 0xb) & 0x3f) ^ uVar20;
  *(uint *)(lVar3 + -0x8c) = uVar11 * *(int *)(lVar3 + -0x27c);
  uVar11 = DAT_182671584;
  lVar2 = DAT_182671560;
  uVar17 = (uVar30 ^ uVar22) << ((bVar13 ^ 0xb4) & 0x3f);
  uVar30 = (ulonglong)DAT_182671590;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar17 ^ uVar24;
  uVar5 = DAT_1826716d0;
  uVar37 = DAT_1826715ac;
  lVar3 = DAT_182671560;
  uVar22 = (ulonglong)DAT_1826715ac;
  uVar17 = *(ulonglong *)(lVar2 - (uVar30 ^ 0xde2b40f)) ^ uVar20 | uVar17;
  piVar15 = (int *)(DAT_182671560 - (uVar23 ^ 0xa3f5f6af));
  uVar30 = *(ulonglong *)(DAT_182671560 + -0x898);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar17 ^ uVar44;
  *(uint *)(lVar3 + -0x8c) = (uVar9 ^ 0x8308f582) + *piVar15;
  uVar41 = CONCAT44(uVar5,uVar5);
  *puVar31 = (uVar42 ^ uVar30) - uVar17 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xa88) =
       CONCAT44(uVar37,uVar12) ^ 0x1e7248902cefbf6c | uVar44 ^ *(ulonglong *)(lVar3 + -0x9e8);
  puVar16 = (ulonglong *)(lVar3 - (uVar43 ^ 0x23cdf2a9));
  uVar30 = *puVar16 ^ uVar29 ^ uVar36 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x6b8);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar30;
  lVar2 = DAT_182671560;
  uVar17 = (uVar30 ^ uVar36) >> ((bVar45 ^ 0xf8) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar17 ^ uVar27;
  uVar30 = (uVar30 ^ uVar36) << 0x1b;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar30 ^ uVar36;
  uVar17 = uVar17 | uVar30;
  uVar30 = uVar17 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x898) = uVar30;
  lVar3 = DAT_182671560;
  uVar30 = uVar41 ^ uVar24 ^ uVar20 ^ uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x628)) - uVar17 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar30;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671580 ^ 0x702220d0)) =
       (uVar30 ^ uVar24) >> ((bVar13 ^ 0x98) & 0x3f) ^ uVar14;
  lVar2 = DAT_182671560;
  *(undefined4 *)(lVar3 - ((ulonglong)uVar9 ^ 0x8affd52f)) = 0x7d7844c4;
  uVar30 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xfe76ff8f)) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x6b8)) << ((bVar13 ^ 0xa6) & 0x3f) ^ uVar30;
  uVar30 = *(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xe66a58f8)) ^ uVar14 |
           uVar30 ^ *(ulonglong *)(lVar2 + -0x1f0);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar30 ^ uVar27;
  uVar5 = DAT_18267159c;
  *(uint *)(lVar2 + -0x774) =
       (uVar11 ^ 0xaf2d313e) << ((byte)*(undefined4 *)(lVar2 - (uVar40 ^ 0xe289eb38)) & 0x1f);
  *puVar16 = (uVar41 ^ *(ulonglong *)(lVar2 + -0x318)) - uVar30 ^ uVar26;
  uVar30 = uVar44 ^ *puVar32 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0xa88) ^ uVar25;
  *(ulonglong *)(lVar2 + -0x898) = uVar30;
  uVar14 = (uVar30 ^ uVar39) >> ((bVar45 ^ 0xf5) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar14 ^ uVar29;
  uVar30 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0xa3f5f727)) ^ uVar39) << ((bVar45 ^ 0xc5) & 0x3f);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar30 ^ uVar29;
  uVar30 = uVar30 | uVar14;
  uVar14 = uVar30 ^ uVar36;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (CONCAT44(uVar4,uVar21) ^ 0xf98f218cefe2889d) - (CONCAT44(uVar5,uVar6) ^ 0xd16de317f170adff);
  *(ulonglong *)(lVar2 + -0x318) = uVar14;
  *(ulonglong *)(lVar2 + -0x9e8) = (*(ulonglong *)(lVar2 + -0xa88) ^ uVar25) - uVar30 ^ uVar19;
  uVar11 = DAT_182671750 | _DAT_182671610;
  uVar12 = DAT_182671750 & 0xff;
  DAT_182671750 = ((DAT_182671750 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar30 = (ulonglong)DAT_182671750;
  uVar17 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar12 = uVar11 & 0xff;
  uVar14 = *(ulonglong *)(lVar2 - (uVar22 ^ 0xe66a5c70)) ^ uVar17 ^ uVar36 ^ uVar26 ^ uVar14;
  *(ulonglong *)(lVar2 + -0x898) = uVar14;
  DAT_18267172c = ((uVar11 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar12 = _DAT_182671610 & 0xff;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0x23cdfc19)) >> 0x20 ^ uVar30) >> 0x14 ^
       CONCAT44(DAT_18267172c,DAT_18267172c);
  _DAT_182671610 = ((_DAT_182671610 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (uVar17 ^ uVar14) << ((local_res18 ^ 0x73) & 0x3f) ^ CONCAT44(_DAT_182671610,_DAT_182671610);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x8fdddb37)) = uVar34 << 0x2a ^ 0x8b67d00000000000;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar8 * 4) = uVar1 ^ uVar33;
  return;
}



############ FUN_ 180e90d30 size=5222 ############

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

void FUN_180e90d30(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  byte bVar30;
  byte bVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  uint uVar37;
  ulonglong uVar38;
  longlong *plVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_128;
  byte local_108;
  ulonglong uVar26;
  
  uVar5 = DAT_182671820;
  uVar10 = DAT_1826715a0;
  uVar9 = DAT_18267159c;
  uVar7 = DAT_182671590;
  uVar16 = DAT_182671580;
  uVar4 = DAT_18267157c;
  uVar3 = DAT_182671578;
  lVar1 = DAT_182671560;
  uVar43 = (ulonglong)DAT_18267157c;
  uVar25 = DAT_18267159c & DAT_18267158c;
  uVar26 = (ulonglong)uVar25;
  uVar37 = DAT_18267157c - DAT_182671590;
  uVar22 = (DAT_1826715a0 << 0x10 | DAT_1826715a0 & 0xff00) << 8 | DAT_1826715a0 >> 8 & 0xff00 |
           DAT_1826715a0 >> 0x18;
  uVar17 = *(uint *)(&DAT_182611e78 + DAT_182671b58) ^ DAT_182671590;
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671b58) ^ DAT_18267157c;
  uVar28 = (ulonglong)DAT_182671578;
  uVar38 = (ulonglong)DAT_182671820;
  uVar24 = (ulonglong)DAT_182671580;
  uVar32 = DAT_182671580 - DAT_182671578;
  uVar41 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar18 = (ulonglong)uVar32;
  DAT_182671568 = uVar32;
  DAT_182671598 = uVar25;
  DAT_1826715a4 = uVar37;
  DAT_1826715a8 = uVar22;
  *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0x4bb5598)) =
       *(ulonglong *)
        (CONCAT44(DAT_1826718d4,DAT_1826718d4) ^ *(ulonglong *)(DAT_182671560 + -0x880)) ^
       CONCAT44(DAT_182671820,DAT_182671820) ^ uVar41;
  uVar11 = DAT_182671694;
  puVar20 = (ulonglong *)(lVar1 - (uVar28 ^ 0x5a6d37a5));
  *(ulonglong *)(lVar1 + -0xbf0) =
       CONCAT44(DAT_1826717e0,DAT_1826717e0) ^ *puVar20 |
       CONCAT44(uVar32,uVar37) ^ 0x48209b62a67f841e;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0x1f613f92)) =
       ((ulonglong)(uVar5 >> 0x18) | uVar38 << 8) ^ *(ulonglong *)(DAT_182671560 + -0x638) >> 0x18 ^
       CONCAT44(uVar11,uVar11);
  bVar31 = (byte)DAT_18267181c;
  bVar30 = (byte)uVar11 ^ bVar31 ^ *(byte *)(lVar1 + -0x9e8);
  *(byte *)(lVar1 + -0x8d) = bVar30;
  bVar30 = bVar30 ^ (byte)DAT_182671718;
  pbVar19 = (byte *)((CONCAT44(uVar3,uVar10) ^ 0x5a6d3e5d7a366124) + *(longlong *)(lVar1 + -0x8c8));
  *(ulonglong *)(lVar1 + -0xc68) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182671658;
  *pbVar19 = bVar30 ^ bVar31;
  *(int *)(lVar1 + -0x874) = *(int *)(lVar1 + -0x774) + -0x1d6bd92e;
  uVar13 = DAT_1826717b4;
  uVar6 = DAT_18267158c;
  lVar2 = DAT_182671560;
  uVar38 = (ulonglong)DAT_18267158c;
  puVar21 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb98) +
            ((CONCAT44(uVar9,uVar10) ^ 0x4f75ca357a366118) +
            (CONCAT44(DAT_18267158c,uVar25) ^ 0x1f61367a0f610230) * 0xc) * 8);
  *(ulonglong *)(lVar1 + -0x5f8) = (ulonglong)puVar21 ^ CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar2 + -0xa88) = *puVar21 ^ CONCAT44(uVar13,uVar13) ^ uVar41;
  local_108 = (byte)uVar32;
  uVar27 = CONCAT44(DAT_182671688,DAT_182671688);
  bVar31 = (byte)DAT_182671688 ^ (byte)DAT_1826716f0;
  uVar23 = (ulonglong)DAT_182671700;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x300a1922)) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0xf6108b8)) ^ CONCAT44(uVar13,uVar13)) >>
       ((local_108 ^ 99) & 0x3f) ^ uVar27;
  *(byte *)(lVar2 - (uVar24 ^ 0x4bb55e1)) = bVar31 ^ *(byte *)(lVar2 + -0x800);
  *(ulonglong *)(lVar2 + -0x400) = CONCAT44(uVar7,uVar3) ^ 0xff9ae3fbee7feafb | 0x5d9203f9a82360c3;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xf610540)) =
       (CONCAT44(uVar10,uVar37) ^ 0x7a36611fccac99c9) + *(longlong *)(lVar2 + -0x8c8) ^ uVar23;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar38 ^ 0x1f61310a)) ^ uVar23) =
       *(byte *)(lVar2 + -0x641) ^ (byte)DAT_1826716f0 ^ (byte)DAT_182671718;
  uVar34 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x5a6d39e5)) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x4f75c1ad)) +
       (CONCAT44(uVar37,uVar22) ^ 0xccac99f51f61367d) * 8 ^ uVar34;
  uVar5 = DAT_182671804;
  uVar12 = DAT_182671710;
  lVar1 = DAT_182671560;
  bVar30 = (byte)uVar6;
  uVar28 = (ulonglong)DAT_182671804;
  uVar23 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x635d7435)) =
       (CONCAT44(uVar4,uVar37) ^ 0x4ac27a32a5c35e7a) >> ((bVar30 ^ 0x57) & 0x3f);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0x4f75cbed)) =
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0x7b8) ^ uVar34) ^ uVar23 ^ uVar41;
  *(ulonglong *)(lVar1 + -0x110) =
       (*(ulonglong *)(lVar1 + -0x1d8) >> 0x20 ^ uVar28) >> 8 ^ CONCAT44(uVar12,uVar12);
  lVar1 = DAT_182671560;
  uVar28 = (ulonglong)DAT_18267178c;
  pbVar19 = (byte *)(*(longlong *)(DAT_182671560 + -0x8c8) + 0x3d);
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (CONCAT44(uVar22,uVar16) ^ 0x8517bcb249e81a53) <<
       (((byte)uVar13 ^ *(byte *)(DAT_182671560 + -0xa88)) & 0x3f);
  bVar31 = (byte)DAT_1826716ac;
  *(ulonglong *)(lVar1 + -0xa40) = (ulonglong)pbVar19 ^ uVar28;
  bVar36 = (byte)uVar12 ^ bVar31 ^ *(byte *)(lVar1 + -0x110);
  bVar31 = bVar31 ^ bVar36 ^ (byte)DAT_182671718;
  uVar34 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(byte *)(lVar1 + -0x9cb) = bVar36;
  *pbVar19 = bVar31;
  *(ulonglong *)(lVar1 - (uVar38 ^ 0x1f613512)) =
       *(longlong *)(lVar1 + -0xb98) +
       ((CONCAT44(uVar32,uVar16) ^ 0xaa4e154304bb53a7) +
       (CONCAT44(uVar37,uVar10) ^ 0xccac99f57a36611f) * 0xc) * 8 ^ uVar34;
  uVar28 = CONCAT44(DAT_18267166c,DAT_18267166c);
  uVar34 = *(ulonglong *)(*(ulonglong *)(lVar1 + -0x368) ^ uVar34) ^ uVar28 ^ uVar41;
  *(ulonglong *)(lVar1 + -0x628) = uVar34;
  lVar1 = DAT_182671560;
  pbVar19 = (byte *)(DAT_182671560 + -0x1d8);
  bVar31 = (byte)DAT_1826717f8;
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (uVar34 ^ uVar28) >> ((bVar30 ^ 0x4a) & 0x3f) ^ CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(lVar1 - (uVar43 ^ 0x300a1382)) =
       (CONCAT44(uVar6,uVar3) ^ 0xb57e3a6e8a2002a5) << (((byte)uVar5 ^ *pbVar19) & 0x3f);
  *(byte *)(lVar1 + -0xa72) = bVar31 ^ *(byte *)(lVar1 + -0x548) ^ (byte)DAT_182671614;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0x610) =
       (CONCAT44(uVar3,uVar25) ^ 0x35d2f7aa21559394) + 0x88dcbac3bea7a65e;
  uVar28 = (ulonglong)DAT_1826717e8;
  bVar31 = (byte)DAT_182671718 ^ (byte)DAT_182671614;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x300a1952)) = *(longlong *)(lVar2 + -0x8c8) + 0x3eU ^ uVar28;
  *(byte *)(*(ulonglong *)(lVar2 + -0x870) ^ uVar28) = bVar31 ^ *(byte *)(lVar2 + -0xa72);
  uVar28 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar2 + -0x4a0) =
       (CONCAT44(uVar7,uVar6) ^ 0x635d772d1f61367a) * 0x60 +
       *(longlong *)(lVar2 - ((ulonglong)uVar7 ^ 0x635d7cb5)) + 0x38 ^ uVar28;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xaa4e16b3)) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0x1d8)) <<
       (((byte)uVar11 ^ *(byte *)(lVar2 + -0x9e8)) & 0x3f);
  uVar35 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xccac9975)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x4a0) ^ uVar28) ^ uVar41 ^ uVar35;
  uVar40 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  uVar34 = CONCAT44(DAT_182671680,DAT_182671680);
  bVar31 = (byte)DAT_182671680;
  uVar29 = (ulonglong)DAT_182671650;
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x4bb5190)) ^ uVar40) =
       CONCAT44(uVar10,uVar9) ^ 0xc119f312ba973ab2;
  uVar8 = DAT_182671594;
  uVar5 = DAT_182671588;
  uVar23 = (ulonglong)DAT_182671594;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar18 ^ 0xaa4e15c3)) ^ uVar35) >> (((byte)uVar25 ^ 8) & 0x3f) ^
           uVar34;
  uVar35 = (ulonglong)DAT_182671588;
  bVar31 = bVar31 ^ (byte)uVar28 ^ (byte)DAT_1826715d4;
  uVar33 = DAT_182671594 & DAT_182671588;
  *(ulonglong *)(lVar2 + -0x240) = uVar28;
  *(byte *)(lVar2 + -0x119) = bVar31;
  DAT_182671584 = uVar33;
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar27 ^ *(ulonglong *)(lVar2 + -0x800)) + 0x43e57070f7f2cf0b;
  uVar12 = DAT_182671730;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xfffef117)) =
       *(longlong *)(lVar2 + -0x8c8) + 0x3fU ^ uVar29;
  bVar31 = (byte)DAT_182671718;
  *(byte *)(lVar2 - ((ulonglong)uVar33 ^ 0xfffef73e)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x100) ^ (ulonglong)DAT_182671674) ^ (byte)DAT_1826717c0;
  uVar42 = CONCAT44(uVar12,uVar12);
  *(byte *)(*(ulonglong *)(lVar2 + -0x488) ^ uVar29) =
       bVar31 ^ *(byte *)(lVar2 + -0x119) ^ (byte)DAT_1826715d4;
  uVar11 = DAT_182671690;
  lVar1 = DAT_182671560;
  uVar27 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(DAT_182671560 + -0x570) =
       *(longlong *)(DAT_182671560 - (uVar35 ^ 0xfffff467)) +
       ((CONCAT44(uVar33,uVar8) ^ 0xfffef59ffffef597) +
       (CONCAT44(uVar8,uVar5) ^ 0xfffef59fffffffff) * 0xc) * 8 ^ uVar42;
  uVar28 = *(ulonglong *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xfffffa8f)) ^ uVar42) ^ uVar41
  ;
  *(ulonglong *)(lVar1 + -0x670) = uVar28 ^ uVar27;
  lVar2 = DAT_182671560;
  uVar28 = uVar28 >> (((byte)uVar33 ^ 0x9f) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - (uVar35 ^ 0xfffff57f)) = uVar28;
  pbVar19 = (byte *)(*(longlong *)(lVar2 + -0x8c8) + 0x40);
  bVar36 = (byte)uVar11 ^ (byte)uVar28 ^ (byte)DAT_1826716d8;
  uVar28 = (ulonglong)DAT_1826717dc;
  *(longlong *)(lVar2 + -0x898) =
       *(longlong *)(lVar2 + -0x8a8) << ((*(byte *)(lVar2 + -0xa80) ^ (byte)uVar11) & 0x3f);
  bVar31 = (byte)DAT_182671718 ^ bVar36;
  *(ulonglong *)(lVar2 + -0x2f0) = (ulonglong)pbVar19 ^ uVar28;
  bVar31 = bVar31 ^ (byte)DAT_1826716d8;
  *(byte *)(lVar2 + -0x9a1) = bVar36;
  *pbVar19 = bVar31;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xfffef39f)) =
       *(ulonglong *)(lVar2 + -0xa80) ^ CONCAT44(uVar11,uVar11) ^ CONCAT44(uVar8,uVar33) ^
       0x5341b7320351cd88;
  lVar1 = DAT_182671560;
  uVar28 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x300a1152)) =
       *(longlong *)(lVar2 + -0xb98) + (CONCAT44(uVar22,uVar7) ^ 0x1f61367a635d7725) * 8 ^ uVar28;
  *(ulonglong *)(lVar1 - (uVar35 ^ 0xfffff92f)) =
       0xa402f07908e69ded >> (((byte)uVar8 ^ 0x8e) & 0x3f);
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar33 ^ 0xfffef7ef)) =
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0x70) ^ uVar28) ^ uVar41 ^ uVar27;
  *(ulonglong *)(lVar1 + -0x3b8) = ((ulonglong)(uVar10 >> 0x16) | uVar24 << 10) ^ 0x3e450bf98bd;
  uVar24 = (ulonglong)DAT_182671844;
  uVar28 = *(ulonglong *)(lVar1 - (uVar23 ^ 0xfffef7ef));
  *(longlong *)(lVar1 + -0x6b8) = *(longlong *)(lVar1 + -0x8a8) + *(longlong *)(lVar1 + -0x898);
  uVar28 = (uVar28 ^ uVar27) >> ((bVar30 ^ 0x72) & 0x3f) ^ uVar42;
  *(ulonglong *)(lVar1 + -0x1f0) = uVar28;
  bVar31 = (byte)uVar12 ^ (byte)uVar28 ^ (byte)DAT_18267186c;
  *(byte *)(lVar1 + -0x519) = bVar31;
  bVar31 = bVar31 ^ (byte)DAT_182671718 ^ (byte)DAT_18267186c;
  pbVar19 = (byte *)(*(longlong *)(lVar1 - (uVar35 ^ 0xfffff737)) +
                    (CONCAT44(uVar25,uVar5) ^ 0xf610230ffffffbe));
  *(ulonglong *)(lVar1 + -0x490) = (ulonglong)pbVar19 ^ uVar24;
  *pbVar19 = bVar31;
  uVar35 = CONCAT44(uVar5,uVar8) ^ 0xfffffffffffef597;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x300a133a)) =
       *(longlong *)(lVar2 + -0xb98) +
       (uVar35 + (CONCAT44(uVar16,uVar10) ^ 0x4bb53a07a36611f) * 0xc) * 8 ^ uVar40;
  *(ulonglong *)(lVar2 + -0xa60) = CONCAT44(uVar22,uVar9) ^ 0x6348c4014152924 | 0x90c810b7ab2ad699;
  uVar11 = DAT_182671660;
  uVar28 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar2 + -0xbf0) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x218) ^ uVar40) ^ uVar41 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x9f8) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0xaa4e1eb3)) ^ uVar28) >> ((bVar30 ^ 0x6a) & 0x3f) ^
       CONCAT44(uVar11,uVar11);
  bVar30 = (byte)uVar11 ^ (byte)*puVar20 ^ (byte)DAT_18267170c;
  *(byte *)(lVar2 + -0x1f9) = bVar30;
  *(ulonglong *)(lVar2 + -0x638) =
       CONCAT44(uVar8,uVar37) ^ 0x7b0c9bafd1a04fb7 | *(ulonglong *)(lVar2 + -0x240) ^ uVar34;
  pbVar19 = (byte *)((CONCAT44(uVar37,uVar22) ^ 0xccac99f51f613638) + *(longlong *)(lVar2 + -0x8c8))
  ;
  bVar31 = (byte)DAT_182671718 ^ (byte)DAT_18267170c;
  *(ulonglong *)(lVar2 + -0x650) = (ulonglong)pbVar19 ^ (ulonglong)_DAT_1826715dc;
  *pbVar19 = bVar31 ^ bVar30;
  puVar21 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar32,uVar33) ^ 0xaa4e1543fffef597) +
            (CONCAT44(uVar10,uVar8) ^ 0x7a36611ffffef59f) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x6a0) = (ulonglong)puVar21 ^ CONCAT44(DAT_18267164c,DAT_18267164c);
  uVar8 = DAT_182671774;
  lVar1 = DAT_182671560;
  uVar18 = (ulonglong)DAT_182671774;
  uVar24 = CONCAT44(DAT_182671774,DAT_182671774) ^ uVar41;
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x1f61327a)) = *puVar21 ^ uVar24;
  *(ulonglong *)(lVar1 + -0x318) =
       (CONCAT44(uVar22,uVar22) ^ 0xa12088e0f363f01b) + (*(ulonglong *)(lVar1 + -0x1f0) ^ uVar42);
  uVar14 = DAT_1826718d4;
  bVar31 = (byte)DAT_1826717c4;
  uVar28 = ((ulonglong)(uVar8 >> 0x18) | (ulonglong)uVar8 << 8) ^
           *(ulonglong *)(lVar1 + -0x400) >> 0x18 ^ CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar1 + -0xa88) = uVar28;
  uVar38 = (ulonglong)_DAT_182671610;
  *(byte *)(lVar1 - (uVar26 ^ 0xf610e62)) = bVar31 ^ (byte)uVar14 ^ (byte)uVar28;
  lVar2 = DAT_182671560;
  bVar31 = *(byte *)(lVar1 + -0xc52) ^ (byte)DAT_182671718;
  pbVar19 = (byte *)((CONCAT44(uVar9,uVar5) ^ 0x4f75ca35ffffffbc) + *(longlong *)(lVar1 + -0x8c8));
  *(ulonglong *)(lVar1 + -0x668) = (ulonglong)pbVar19 ^ uVar38;
  *pbVar19 = bVar31 ^ (byte)uVar14;
  uVar28 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  puVar21 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar23 ^ 0xfffefe07)) +
            ((CONCAT44(uVar22,uVar33) ^ 0x1f61367afffef597) +
            (CONCAT44(uVar7,uVar9) ^ 0x635d772d4f75ca35) * 0xc) * 8);
  *(uint *)(lVar2 + -0x344) = DAT_18267158c ^ 0xe706b78a | *(uint *)(lVar2 + -0x774);
  uVar11 = DAT_182671604;
  *(ulonglong *)(lVar2 + -0x68) = (ulonglong)puVar21 ^ uVar28;
  uVar38 = *puVar21 ^ uVar41;
  local_128 = (byte)uVar16;
  *(ulonglong *)(lVar2 + -0xa0) = uVar38 ^ CONCAT44(uVar11,uVar11);
  lVar1 = DAT_182671560;
  uVar28 = (ulonglong)DAT_182671894;
  bVar31 = (byte)DAT_1826716a0;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       uVar38 >> (local_128 & 0x3f) ^ CONCAT44(DAT_1826716a0,DAT_1826716a0);
  pbVar19 = (byte *)((CONCAT44(uVar9,uVar10) ^ 0x4f75ca357a36615b) + *(longlong *)(lVar1 + -0x8c8));
  bVar30 = bVar31 ^ *(byte *)(lVar1 + -0x110) ^ (byte)DAT_182671634;
  uVar16 = DAT_182671588 ^ 0x4bd0099a;
  *(byte *)(lVar1 + -0x189) = bVar30;
  *(uint *)(lVar1 + -0x968) = uVar16 - *(int *)(lVar1 + -0x910);
  bVar31 = (byte)DAT_182671718 ^ (byte)DAT_182671634;
  *(ulonglong *)(lVar1 + -0x788) = (ulonglong)pbVar19 ^ uVar28;
  *pbVar19 = bVar31 ^ bVar30;
  *(ulonglong *)(lVar1 + -0x628) = CONCAT44(uVar5,uVar32) ^ 0xbf58eef9e4d2ecf;
  plVar39 = (longlong *)(lVar1 - ((ulonglong)uVar22 ^ 0x1f613de2));
  uVar28 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar1 + -0xd60) =
       (CONCAT44(uVar6,uVar6) ^ 0x1f61367a1f61367a) * 0x60 + *plVar39 + 0x40 ^ uVar28;
  *(ulonglong *)(lVar1 - (uVar26 ^ 0xf610090)) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar43 ^ 0x300a1c42)) ^ uVar28) ^ uVar24;
  uVar11 = DAT_182671764;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0x548) =
       (CONCAT44(uVar9,uVar4) ^ 0x3fe7ef140ccabd30) - (CONCAT44(uVar37,uVar4) ^ 0x98abab32ffa5fd11);
  bVar31 = (byte)DAT_182671718;
  uVar28 = (*(ulonglong *)(lVar1 + -0x2a0) >> 0x20 ^ uVar18) >> 8 ^ CONCAT44(uVar11,uVar11);
  bVar30 = (byte)uVar11 ^ (byte)DAT_18267180c;
  uVar38 = (ulonglong)DAT_1826718d4;
  *(ulonglong *)(lVar1 + -0x610) = uVar28;
  pbVar19 = (byte *)((CONCAT44(uVar7,uVar5) ^ 0x635d772dffffffba) + *(longlong *)(lVar1 + -0x8c8));
  *(byte *)(lVar1 + -0x691) = bVar30 ^ (byte)uVar28;
  *(ulonglong *)(lVar1 + -0x408) = (ulonglong)pbVar19 ^ uVar38;
  uVar11 = DAT_1826718c8;
  *pbVar19 = *(byte *)(lVar1 - (uVar23 ^ 0xfffef30e)) ^ bVar31 ^ (byte)DAT_18267180c;
  puVar21 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb98) + 0x40 +
            (CONCAT44(uVar32,uVar37) ^ 0xaa4e1543ccac99f5) * 0x60);
  uVar38 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(lVar1 + -0xa38) = (ulonglong)puVar21 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_1826715c8;
  uVar28 = *puVar21 ^ uVar41;
  *(ulonglong *)(lVar1 + -0x9e8) = uVar28 ^ uVar38;
  uVar38 = uVar28 >> (((byte)uVar3 ^ 0x6d) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  uVar28 = (ulonglong)DAT_1826717cc;
  bVar30 = (byte)uVar11 ^ (byte)DAT_182671788 ^ (byte)uVar38;
  *(byte *)(lVar2 + -0x3a9) = bVar30;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar38;
  bVar31 = bVar31 ^ (byte)DAT_182671788;
  pbVar19 = (byte *)((CONCAT44(uVar37,uVar33) ^ 0xccac99f5fffef5d9) + *(longlong *)(lVar2 + -0x8c8))
  ;
  *(ulonglong *)(lVar2 + -0x478) = (ulonglong)pbVar19 ^ uVar28;
  uVar28 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *pbVar19 = bVar31 ^ bVar30;
  puVar21 = (ulonglong *)(*plVar39 + uVar35 * 8);
  *(ulonglong *)(lVar2 + -0x830) = (ulonglong)puVar21 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x3f0) =
       0x445e5adce88bc41a - (CONCAT44(uVar25,uVar7) ^ 0xb0ea90078074c84b);
  uVar38 = CONCAT44(DAT_182671748,DAT_182671748);
  uVar28 = *puVar21;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar17;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x300a1432)) = uVar38 ^ uVar28 ^ uVar41;
  return;
}



############ FUN_ 180eaf7a0 size=5175 ############

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

void FUN_180eaf7a0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  byte bVar43;
  ulonglong uVar44;
  byte local_res18;
  byte local_a8;
  
  uVar15 = DAT_182671740;
  uVar12 = DAT_1826715ec;
  uVar10 = DAT_1826715b4;
  uVar11 = DAT_1826715b0;
  uVar9 = DAT_182671584;
  uVar17 = DAT_18267157c;
  lVar6 = DAT_182671560;
  uVar34 = (ulonglong)DAT_1826715b0;
  uVar37 = (ulonglong)DAT_18267157c;
  uVar25 = (ulonglong)DAT_1826715b4;
  uVar20 = DAT_1826715b4 << 0x10 | DAT_1826715b4 >> 0x10;
  uVar27 = *(uint *)(&DAT_182611e78 + DAT_182671bb0) ^ DAT_18267157c;
  uVar23 = (DAT_1826715b0 << 0x10 | DAT_1826715b0 & 0xff00) << 8 | DAT_1826715b0 >> 8 & 0xff00 |
           DAT_1826715b0 >> 0x18;
  uVar21 = (ulonglong)DAT_182671584;
  uVar24 = uVar23 ^ 0x78afafef;
  uVar35 = DAT_18267157c | DAT_182671584;
  uVar4 = *(uint *)(&DAT_182611e70 + (uVar21 ^ 0x39ef2a4f) + (longlong)DAT_182671bb0);
  uVar40 = (ulonglong)uVar20;
  uVar41 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  uVar28 = *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0x2a001662)) ^
           CONCAT44(DAT_1826716e4,DAT_1826716e4) |
           *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715b4 ^ 0x1c022840)) ^
           CONCAT44(DAT_182671604,DAT_182671604);
  DAT_18267158c = uVar35;
  DAT_1826715a4 = uVar20;
  DAT_1826715ac = uVar24;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar28 ^ uVar41;
  uVar14 = DAT_182671730;
  uVar13 = DAT_18267170c;
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x688) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0x782ea946)) ^ CONCAT44(uVar12,uVar12)) - uVar28
       ^ uVar22;
  puVar1 = (ulonglong *)(lVar6 + -0xc08);
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar28 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar6 + -0x898) =
       CONCAT44(uVar13,uVar13) ^ *puVar1 ^ *(ulonglong *)(lVar6 + -0x510) ^ uVar28 ^ uVar29;
  uVar12 = DAT_182671664;
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       CONCAT44(uVar11,uVar23) ^ 0x3611d947271e0590 | CONCAT44(uVar20,uVar17) ^ 0x25fa3e38bd52b65a;
  uVar32 = CONCAT44(uVar12,uVar12);
  bVar38 = (byte)uVar9;
  *(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x81008900)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar35 ^ 0xfdeff247)) ^ uVar29) >>
       ((bVar38 ^ 0x66) & 0x3f) ^ uVar32;
  lVar6 = DAT_182671560;
  uVar26 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x1c022c70)) =
       (*(ulonglong *)(DAT_182671560 + -0x898) ^ uVar29) << 7 ^ uVar26;
  puVar2 = (ulonglong *)(lVar6 + -0x670);
  uVar29 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0x782ea76e)) ^ uVar32 | *puVar2 ^ uVar26) ^
           uVar28;
  uVar26 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar6 + -0x2a0) = uVar29;
  lVar7 = DAT_182671560;
  uVar33 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar6 + -0xa88) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar20 ^ 0x2a001912)) ^ uVar28) -
       (*(ulonglong *)(lVar6 - (uVar40 ^ 0x2a001ea2)) ^ uVar28) ^ uVar26;
  uVar12 = DAT_182671898;
  bVar42 = (byte)uVar17;
  uVar32 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  uVar29 = *(ulonglong *)(lVar6 + -0x688) ^ uVar29 ^ uVar33 ^ uVar28 ^ uVar22;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar29;
  lVar6 = DAT_182671560;
  uVar28 = (uVar29 ^ uVar33) >> ((bVar42 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar7 + -0x6d0) = uVar28 ^ uVar32;
  bVar43 = (byte)uVar10;
  uVar29 = (uVar29 ^ uVar33) << ((bVar43 ^ 0x32) & 0x3f);
  *(ulonglong *)(lVar6 + -0xbf0) = uVar29 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671814;
  *(undefined1 *)(lVar6 + -0x209) = **(undefined1 **)(lVar6 + -0xc80);
  lVar6 = DAT_182671560;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar35 ^ 0xfdeffcdf)) = (uVar29 | uVar28) ^ uVar32;
  uVar5 = DAT_182671574;
  uVar29 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar39 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar20 ^ 0x2a001d12)) =
       (*(ulonglong *)(lVar6 + -0x688) ^ uVar22) - (CONCAT44(uVar9,uVar23) ^ 0x446af803b6074b86) ^
       uVar29;
  uVar12 = DAT_1826718d0;
  uVar8 = DAT_182671570;
  puVar3 = (ulonglong *)(lVar6 + -0x600);
  uVar32 = uVar32 ^ *puVar3;
  uVar22 = CONCAT44(DAT_182671794,DAT_182671794);
  uVar28 = (ulonglong)DAT_182671570;
  uVar16 = uVar5 ^ DAT_182671570;
  DAT_18267156c = uVar16;
  *(ulonglong *)(lVar6 + -0x80) = (uVar29 ^ *(ulonglong *)(lVar6 + -0x110)) - uVar32 ^ uVar22;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x880b0ea2)) =
       uVar32 - (CONCAT44(uVar5,uVar16) ^ 0xd3cc2f083d40832f) ^ uVar33;
  uVar12 = DAT_182671784;
  uVar29 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  bVar19 = (byte)uVar16;
  uVar41 = *(ulonglong *)(lVar6 - (uVar39 ^ 0x823b08ba)) ^ *(ulonglong *)(lVar6 + -0x318) ^ uVar29 ^
           uVar26 ^ uVar41;
  *(ulonglong *)(lVar6 + -0xa60) = uVar41;
  uVar32 = (uVar41 ^ uVar29) >> (bVar19 & 0x3f);
  uVar29 = (uVar29 ^ uVar41) << 0x30;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar32 ^ CONCAT44(uVar12,uVar12);
  *puVar1 = uVar29 ^ CONCAT44(DAT_182671848,DAT_182671848);
  lVar6 = DAT_182671560;
  uVar32 = uVar32 | uVar29;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (uVar22 ^ *(ulonglong *)(DAT_182671560 + -0x80)) << (((byte)uVar8 ^ 0xe2) & 0x3f);
  uVar29 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  *(ulonglong *)(lVar6 + -0x898) = uVar32 ^ CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar12 = DAT_18267165c;
  uVar26 = (*(ulonglong *)(lVar6 + -0xa88) ^ uVar26) - (CONCAT44(uVar8,uVar5) ^ 0x53ca89b3a0c1ead4);
  *(ulonglong *)(lVar6 + -0x800) = uVar26 ^ uVar29;
  lVar7 = DAT_182671560;
  uVar29 = CONCAT44(uVar12,uVar12);
  *puVar2 = uVar26 - uVar32 ^ uVar29;
  *(ulonglong *)(lVar6 + -0x510) = CONCAT44(uVar17,uVar11) ^ 0x34c4d71f4ca220f2;
  uVar41 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar26 = (CONCAT44(uVar20,uVar8) ^ 0x91b484372c191206) + uVar32 ^ uVar41;
  *(ulonglong *)(lVar7 + -0x2a0) = uVar26;
  uVar13 = DAT_1826717d0;
  *(ulonglong *)(lVar7 + -0x8a8) =
       (CONCAT44(uVar16,uVar16) ^ 0x85accf6e44c1e278) << (((byte)uVar5 ^ 0xd) & 0x3f);
  uVar12 = DAT_182671700;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar26 = *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0x39ef2adf)) ^ uVar32 ^ uVar41 ^ uVar22 ^ uVar26
  ;
  *(ulonglong *)(DAT_182671560 + -0x6d0) = uVar26;
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0xa300520)) =
       (uVar32 ^ uVar26) >> (((byte)uVar8 ^ 0xc2) & 0x3f) ^ uVar30;
  uVar12 = DAT_1826717d8;
  *(ulonglong *)(lVar6 + -0x688) =
       uVar41 ^ CONCAT44(uVar23,uVar10) ^ 0x78afafef00000000 ^ *(ulonglong *)(lVar6 + -0x2a0) ^
       0x554caceeb6b06e51;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x110) = (uVar32 ^ *(ulonglong *)(lVar6 + -0x6d0)) << 0x20 ^ uVar26;
  uVar44 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *puVar3 = (uVar32 ^ *(ulonglong *)(lVar6 + -0x6d0)) -
            (*(ulonglong *)(lVar6 - (uVar21 ^ 0x39ef21af)) ^ uVar30);
  uVar12 = DAT_1826717c8;
  lVar7 = DAT_182671560;
  uVar21 = *(ulonglong *)(lVar6 - (uVar34 ^ 0x81008010)) ^ uVar26 |
           *(ulonglong *)(lVar6 + -0xbf0) ^ uVar30;
  *(ulonglong *)(lVar6 + -0x318) = uVar21 ^ uVar44;
  uVar13 = DAT_182671850;
  *(ulonglong *)(lVar6 + -0xa60) = CONCAT44(uVar12,uVar12) ^ **(ulonglong **)(lVar6 + -0x218);
  uVar26 = CONCAT44(uVar13,uVar13);
  uVar22 = (uVar22 ^ *(ulonglong *)(lVar7 + -0x80)) - uVar21 ^ uVar26;
  uVar17 = DAT_1826715ac ^ 0xbd7f84c9;
  *(ulonglong *)(lVar7 + -0x1d8) = uVar22;
  *(uint *)(lVar7 + -0x968) = uVar17 + *(int *)(lVar7 - (uVar40 ^ 0x2a001e7e));
  uVar12 = DAT_18267185c;
  uVar31 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar21 = *puVar2 ^ uVar31 ^ uVar29 ^ uVar33 ^ *(ulonglong *)(lVar7 + -0x240);
  *(ulonglong *)(lVar7 + -0x628) = uVar21;
  uVar41 = CONCAT44(uVar12,uVar12);
  *puVar1 = (uVar21 ^ uVar31) >> (((byte)uVar5 ^ 0x12) & 0x3f) ^ uVar41;
  lVar6 = DAT_182671560;
  uVar32 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  uVar21 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0x823b041a)) ^ uVar31) <<
           ((bVar38 ^ 0x7f) & 0x3f);
  uVar36 = CONCAT44(DAT_182671704,DAT_182671704);
  *(uint *)(DAT_182671560 + -0x910) =
       (uVar5 ^ 0x9ba73dbf) >> ((byte)*(undefined4 *)(DAT_182671560 + -0x274) & 0x1f);
  *(ulonglong *)(lVar6 + -0xa88) = uVar21 ^ uVar32;
  lVar7 = DAT_182671560;
  uVar21 = *(ulonglong *)(lVar6 - (uVar34 ^ 0x81008d08)) ^ uVar41 | uVar21;
  uVar32 = uVar21 ^ uVar36;
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar32;
  uVar12 = DAT_182671638;
  *(ulonglong *)(lVar7 + -0x510) =
       (CONCAT44(uVar8,uVar35) ^ 0xb909d0052141fcdb) >> ((bVar19 ^ 0xf3) & 0x3f);
  uVar13 = DAT_1826718a0;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 + -0x898) =
       (*(ulonglong *)(lVar7 - (uVar28 ^ 0x880b0a92)) ^ uVar29) - uVar21 ^ uVar33;
  uVar12 = DAT_182671650;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar21 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar22 = uVar31 ^ uVar36 ^ uVar26 ^ uVar32 ^ uVar22;
  *(ulonglong *)(lVar7 + -0x8a8) = uVar22;
  uVar29 = (uVar22 ^ uVar31) >> ((bVar43 ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar7 + -0x2a0) = uVar29 ^ uVar21;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 + -0x688) = (uVar31 ^ uVar22) << ((bVar42 ^ 0x90) & 0x3f) ^ uVar21;
  lVar6 = DAT_182671560;
  uVar36 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0xa300800)) =
       (*(ulonglong *)(DAT_182671560 - (uVar40 ^ 0x2a001a8a)) ^ uVar21 | uVar29) ^ uVar36;
  uVar5 = DAT_182671658;
  uVar32 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar21 = (ulonglong)DAT_182671658;
  uVar29 = CONCAT44(DAT_182671658,DAT_182671658);
  *puVar3 = (uVar26 ^ *(ulonglong *)(lVar6 + -0x1d8)) -
            (*(ulonglong *)(lVar6 - (uVar39 ^ 0x823b04e2)) ^ uVar36) ^ uVar32;
  uVar17 = DAT_182671594;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0x782ea49e)) = uVar28 << 0x28 ^ 0x5b613a0000000000;
  *(ulonglong *)(lVar6 - (uVar37 ^ 0xe46dd386)) =
       *(ulonglong *)(lVar6 + -0x318) ^ uVar29 ^ uVar33 ^ *(ulonglong *)(lVar6 + -0x898) ^ uVar44;
  uVar22 = ((ulonglong)(uVar5 >> 0x16) | uVar21 << 10) ^ *(ulonglong *)(lVar6 + -0x110) >> 0x16;
  uVar26 = (uVar29 ^ *(ulonglong *)(lVar6 + -0x110)) << ((bVar38 ^ 0x75) & 0x3f);
  uVar21 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar6 + -0xa60) = uVar22 ^ uVar41;
  uVar12 = DAT_1826715cc;
  *(ulonglong *)(lVar6 + -0x80) = uVar26 ^ uVar21;
  uVar13 = _DAT_1826715d8;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x240) = (uVar22 | uVar26) ^ uVar28;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x628) =
       (uVar33 ^ *(ulonglong *)(lVar6 + -0x898)) -
       (*(ulonglong *)(lVar6 - (uVar34 ^ 0x81008340)) ^ uVar28) ^ uVar37;
  uVar10 = DAT_1826715a0;
  lVar7 = DAT_182671560;
  uVar21 = (ulonglong)DAT_1826715a0;
  uVar18 = uVar17 | DAT_1826715a0;
  uVar29 = (ulonglong)uVar17;
  DAT_18267159c = uVar18;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x1d22202b)) =
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a0 ^ 0x12002e3)) ^ uVar28 ^ uVar32 ^ uVar33 ^
       *puVar3;
  uVar22 = (uVar33 ^ *(ulonglong *)(lVar7 + -0xa88)) >> (((byte)uVar10 ^ 0x8d) & 0x3f);
  *puVar1 = uVar22 ^ CONCAT44(DAT_182671720,DAT_182671720);
  *(undefined1 *)(lVar7 + -0x5e9) = **(undefined1 **)(lVar7 + -0xba0);
  uVar12 = DAT_182671890;
  uVar41 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(lVar7 + -0x510) =
       (*(ulonglong *)(lVar7 - (uVar29 ^ 0x1d22202b)) ^ uVar33) << (((byte)uVar17 ^ 0xb1) & 0x3f) ^
       uVar41;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar22 = *(ulonglong *)(lVar7 - (uVar21 ^ 0x12005b3)) ^ uVar41 | uVar22;
  *puVar2 = uVar22 ^ uVar26;
  lVar6 = DAT_182671560;
  uVar33 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  uVar28 = (ulonglong)DAT_182671748;
  uVar31 = CONCAT44(DAT_182671748,DAT_182671748);
  uVar5 = DAT_182671748 >> 0xc;
  *(ulonglong *)(lVar7 - (uVar21 ^ 0x12008a3)) = (uVar32 ^ *puVar3) - uVar22 ^ uVar33;
  uVar13 = DAT_182671894;
  uVar22 = uVar31 ^ uVar37 ^ uVar36 ^ *(ulonglong *)(lVar6 + -0x6d0) ^
           *(ulonglong *)(lVar6 + -0x628);
  *(ulonglong *)(lVar6 + -0x8a8) = uVar22;
  uVar12 = _DAT_182671868;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar31 = (uVar31 ^ uVar22) << 0x34;
  *(ulonglong *)(lVar6 + -0x2a0) = (uVar28 << 0x14 | (ulonglong)uVar5) ^ uVar22 >> 0xc ^ uVar32;
  *(ulonglong *)(lVar6 + -0x688) = uVar31 ^ CONCAT44(uVar12,uVar12);
  uVar31 = *(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x1d222803)) ^ uVar32 | uVar31;
  uVar32 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar6 + -0x1d8) = uVar31 ^ uVar33;
  uVar28 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0x1d222c8b)) ^ uVar37) - uVar31 ^ uVar32;
  uVar31 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar6 + -0xbf0) = uVar28;
  uVar22 = *(ulonglong *)(lVar6 - (uVar29 ^ 0x1d2222a3)) ^
           *(ulonglong *)(lVar6 - (uVar21 ^ 0x120017b));
  *(ulonglong *)(lVar6 + -0x318) = uVar22 ^ uVar31;
  *(ulonglong *)(lVar6 + -0x110) = uVar22 >> (((byte)uVar18 ^ 0xba) & 0x3f) ^ uVar41;
  uVar31 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar6 + -0x80) = uVar22 << 0x27 ^ uVar31;
  uVar22 = *(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x1d222bb3)) ^ uVar41 | uVar22 << 0x27;
  *(ulonglong *)(lVar6 + -0xa60) = uVar22 ^ uVar31;
  uVar13 = DAT_182671724;
  *(undefined1 *)(lVar6 + -0x209) = **(undefined1 **)(lVar6 + -0xc80);
  uVar12 = DAT_182671698;
  uVar33 = (uVar33 ^ *(ulonglong *)(lVar6 + -0x800)) -
           (CONCAT44(uVar10,uVar17) ^ 0x28b3550bdae15c84);
  *(ulonglong *)(lVar6 + -0x898) = uVar33 ^ CONCAT44(uVar13,uVar13);
  lVar6 = DAT_182671560;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar41 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar33 - uVar22 ^ uVar37;
  uVar12 = DAT_1826717ec;
  *(ulonglong *)(lVar6 + -0xa88) =
       (*(ulonglong *)(lVar6 - (uVar29 ^ 0x1d2220c3)) ^ uVar31) -
       (CONCAT44(uVar18,uVar18) ^ 0x4ee384c75a7d0d5) ^ uVar41;
  lVar6 = DAT_182671560;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar22 = uVar33 ^ uVar28 ^ *puVar2 ^ uVar32 ^ uVar26;
  uVar28 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *puVar1 = uVar22;
  *(ulonglong *)(lVar6 + -0x510) = (uVar22 ^ uVar33) >> (((byte)uVar17 ^ 0x82) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar6 - (uVar21 ^ 0x12006a3)) =
       (CONCAT44(uVar17,uVar10) ^ 0x2c524818884154a4) + 0xc33264f016babdcd;
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar6 + -0x6d0) = (uVar33 ^ *puVar1) << ((bVar19 ^ 0xcf) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x810089a8)) = *puVar3 | 0x6f1c4439d4eb73ba;
  uVar22 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(lVar7 + -0x2a0) =
       (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x1d222c73)) ^ uVar30 |
       uVar28 ^ *(ulonglong *)(lVar7 + -0x510)) ^ uVar22;
  *(ulonglong *)(lVar7 + -0x688) = CONCAT44(uVar16,uVar8) ^ 0x6008e80084006dc | 0x91317124f3af9923;
  uVar21 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0x1d222153)) ^ uVar32) -
           (CONCAT44(uVar9,uVar20) ^ 0x681807651d7091fd);
  *(ulonglong *)(lVar7 + -0x628) = uVar21 ^ CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar12 = DAT_1826716d0;
  *(ulonglong *)(lVar7 + -0x1d8) =
       uVar21 - (*(ulonglong *)(lVar7 - ((ulonglong)uVar35 ^ 0xfdeff87f)) ^ uVar22) ^ uVar26;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar35 ^ 0xfdeff9c7)) =
       (*(ulonglong *)(lVar7 - (uVar39 ^ 0x823b0092)) ^ uVar22) +
       (CONCAT44(uVar23,uVar18) ^ 0xdf8376b36616a564) ^ uVar21;
  *(uint *)(lVar7 + -0x3d4) = (DAT_1826715ac ^ 0xce01d7bd) - *(int *)(lVar7 + -0x8c);
  uVar12 = DAT_1826717a8;
  uVar34 = CONCAT44(DAT_182671878,DAT_182671878);
  uVar28 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  uVar22 = uVar34 ^ uVar21 ^ uVar37 ^ *(ulonglong *)(lVar7 + -0x318) ^
           *(ulonglong *)(lVar7 + -0x240);
  *(ulonglong *)(lVar7 + -0x110) = uVar22;
  local_a8 = (byte)uVar24;
  *(ulonglong *)(lVar7 + -0x80) = (uVar22 ^ uVar34) >> ((bVar42 ^ 0x93) & 0x3f) ^ uVar28;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 - (uVar25 ^ 0x1c022200)) =
       (uVar34 ^ uVar22) << ((local_a8 ^ 0x55) & 0x3f) ^ uVar21;
  uVar21 = uVar21 ^ *(ulonglong *)(lVar7 + -0x800) | uVar28 ^ *(ulonglong *)(lVar7 + -0x80);
  *(ulonglong *)(lVar7 + -0x898) = uVar21 ^ uVar41;
  uVar13 = DAT_1826717fc;
  uVar12 = DAT_182671744;
  local_res18 = (byte)uVar11;
  *(ulonglong *)(lVar7 + -0xa60) =
       (uVar37 ^ *(ulonglong *)(lVar7 + -0x240)) - uVar21 ^ CONCAT44(DAT_182671634,DAT_182671634);
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 - (uVar29 ^ 0x1d222cd3)) =
       uVar22 ^ uVar41 ^ uVar26 ^ *(ulonglong *)(lVar7 + -0xa88) ^ *(ulonglong *)(lVar7 + -0x1d8);
  uVar21 = *puVar2;
  *puVar1 = (uVar22 ^ *puVar2) >> (((byte)uVar10 ^ 0x86) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *puVar3 = (uVar22 ^ uVar21) << ((local_res18 ^ 0x1b) & 0x3f) ^
            CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar4 ^ uVar35) * 4) = uVar27;
  return;
}



############ FUN_ 180e9d250 size=4180 ############

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

void FUN_180e9d250(void)

{
  uint *puVar1;
  ulonglong *puVar2;
  uint *puVar3;
  longlong *plVar4;
  ulonglong *puVar5;
  uint *puVar6;
  longlong *plVar7;
  ulonglong *puVar8;
  uint uVar9;
  uint *puVar10;
  longlong lVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong *puVar25;
  longlong lVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  uint *puVar47;
  uint uVar48;
  ulonglong uVar46;
  
  uVar14 = DAT_1826715a0;
  uVar13 = DAT_182671588;
  uVar23 = DAT_182671584;
  uVar12 = DAT_182671580;
  uVar18 = DAT_18267157c;
  lVar26 = DAT_182671560;
  uVar37 = (ulonglong)DAT_182671588;
  uVar34 = (ulonglong)DAT_18267157c;
  uVar40 = (ulonglong)DAT_1826715a0;
  uVar45 = DAT_1826715a0 * DAT_18267156c;
  uVar46 = (ulonglong)uVar45;
  uVar28 = DAT_18267157c - DAT_182671584;
  uVar48 = DAT_182671580 << 0x10 | DAT_182671580 >> 0x10;
  uVar30 = (DAT_182671588 << 0x10 | DAT_182671588 & 0xff00) << 8 | DAT_182671588 >> 8 & 0xff00 |
           DAT_182671588 >> 0x18;
  uVar43 = (ulonglong)uVar30;
  uVar9 = *(uint *)(&DAT_182611e78 + DAT_182671b7c);
  uVar16 = *(uint *)(&DAT_182611e80 + DAT_182671b7c) ^ DAT_18267157c;
  puVar2 = (ulonglong *)(DAT_182671560 + -0x798);
  puVar3 = (uint *)(DAT_182671560 + -0x374);
  uVar21 = (ulonglong)DAT_1826715d4;
  uVar22 = (*(uint *)(DAT_182671560 - ((ulonglong)DAT_182671584 ^ 0x96258d1c)) ^ DAT_1826715e8 |
           DAT_182671870 ^ *puVar3) ^ DAT_1826716c8;
  DAT_182671568 = uVar28;
  DAT_18267158c = uVar48;
  DAT_182671594 = uVar45;
  DAT_1826715ac = uVar30;
  *(uint *)(DAT_182671560 + -0x678) = uVar22;
  plVar4 = (longlong *)(lVar26 + -0x350);
  *(uint *)(*puVar2 ^ uVar21) = uVar22 ^ DAT_1826717c0 ^ DAT_1826716c8;
  puVar2 = (ulonglong *)(lVar26 + -0x9c8);
  *puVar2 = (CONCAT44(uVar13,uVar30) ^ 0x2dfbebc9c9ebfb2c) * 0x10 + *plVar4;
  uVar19 = (ulonglong)uVar12;
  puVar5 = (ulonglong *)(lVar26 + -0x898);
  *plVar4 = *(longlong *)(lVar26 - ((ulonglong)uVar12 ^ 0xee71e438));
  uVar27 = (ulonglong)DAT_1826716a0;
  uVar21 = *(ulonglong *)(lVar26 - ((ulonglong)uVar23 ^ 0x96258d98));
  *puVar2 = uVar21;
  *(ulonglong *)(lVar26 + -0x8b0) = uVar27 ^ uVar21;
  *(ulonglong *)(lVar26 + -0x670) =
       CONCAT44(DAT_1826717bc,DAT_1826717bc) ^ *puVar5 |
       CONCAT44(uVar48,uVar45) ^ 0x4d141f23517f74cb;
  uVar17 = DAT_1826718a8;
  uVar23 = *(uint *)(*(ulonglong *)(lVar26 - ((ulonglong)uVar14 ^ 0x2a40ece0)) ^ uVar27) ^
           DAT_1826718a8 ^ DAT_1826717c0;
  *(uint *)(lVar26 + -0x274) = uVar23;
  uVar23 = (int)(uVar23 ^ uVar17) >> (((byte)uVar28 ^ 0x58) & 0x1f) ^ DAT_1826717d0;
  *(uint *)(lVar26 + -0x910) = uVar23;
  uVar22 = DAT_18267186c;
  *(uint *)(lVar26 - ((ulonglong)uVar48 ^ 0xedf0ed35)) =
       uVar23 ^ DAT_1826717cc ^ DAT_1826717d0 ^ uVar13 ^ 0xd2041436;
  uVar23 = DAT_182671664;
  uVar24 = (uVar17 ^ *(uint *)(lVar26 + -0x274)) -
           (*(uint *)(lVar26 - ((ulonglong)uVar48 ^ 0xedf0ed59)) ^ DAT_182671628);
  *(uint *)(lVar26 + -0x844) = uVar24 ^ uVar22;
  uVar21 = *(ulonglong *)(lVar26 + -0x628);
  bVar20 = (byte)DAT_182671584 ^ 0xd7;
  *(ulonglong *)(lVar26 + -0x3f0) =
       (CONCAT44(uVar45,uVar18) ^ 0x83e61599ef011ec6) -
       *(longlong *)(lVar26 - (uVar43 ^ 0xc9ebfa3d));
  *puVar3 = (int)uVar24 >> (bVar20 & 0x1f) ^ uVar23;
  *(ulonglong *)(lVar26 - (uVar46 ^ 0x4d77d438)) = uVar21 >> (((byte)uVar18 ^ 0x2e) & 0x3f);
  uVar22 = DAT_18267156c;
  puVar6 = (uint *)(lVar26 + -0x344);
  plVar7 = (longlong *)(lVar26 + -0x888);
  *(uint *)(lVar26 + -0x3d4) = (*puVar6 ^ DAT_1826717cc) & (uVar23 ^ *puVar3) ^ DAT_1826717f0;
  *(uint *)(lVar26 - (uVar43 ^ 0xc9ebf23d)) =
       (*(uint *)(lVar26 - (uVar40 ^ 0x2a40e784)) ^ DAT_1826717f0 |
       uVar17 ^ *(uint *)(lVar26 + -0x274)) ^ DAT_182671730;
  *(uint *)(*(ulonglong *)(lVar26 + -0x8b0) ^ uVar27) =
       *(uint *)(lVar26 + -0x910) ^ DAT_182671730 ^ DAT_1826717c0;
  *(longlong *)(lVar26 - ((ulonglong)uVar13 ^ 0x2dfbe899)) = *plVar7;
  uVar21 = *(ulonglong *)(lVar26 - (uVar19 ^ 0xee71eea0));
  *puVar2 = uVar21;
  puVar8 = (ulonglong *)(lVar26 + -0xa80);
  *(longlong *)(lVar26 + -0x670) = *(longlong *)(lVar26 + -0x318) << ((byte)*puVar8 & 0x3f);
  uVar44 = (ulonglong)DAT_18267164c;
  *(ulonglong *)(lVar26 - ((ulonglong)uVar13 ^ 0x2dfbe329)) =
       (CONCAT44(uVar18,uVar22) ^ 0x118e120ff3419042) * 0x10 + uVar21 ^ uVar44;
  uVar36 = DAT_182671808;
  uVar17 = DAT_1826716f0;
  lVar11 = DAT_182671560;
  *(ulonglong *)(lVar26 + -0x110) =
       *(ulonglong *)(lVar26 - ((ulonglong)uVar22 ^ 0xf34198da)) ^ CONCAT44(uVar30,uVar48) ^
       0x9072a8183fb65770;
  *(uint *)(lVar26 - ((ulonglong)uVar22 ^ 0xf341936a)) =
       *(uint *)(*(ulonglong *)(lVar26 + -0x8e0) ^ uVar44) ^ uVar17 ^ DAT_1826717c0;
  puVar1 = (uint *)(lVar26 + -0x328);
  uVar23 = (int)(*puVar1 ^ uVar17) >> (bVar20 & 0x1f) ^ DAT_182671614;
  *(ulonglong *)(lVar26 + -0x3f0) = *(ulonglong *)(lVar26 + -0xa88) ^ 0xdc5078f76cef5731;
  *(uint *)(lVar26 + -0x844) = uVar23;
  *(uint *)(lVar26 - (uVar19 ^ 0xee71eeb4)) = uVar23 ^ uVar36 ^ DAT_182671614;
  uVar23 = *puVar6;
  *puVar3 = ~DAT_182671704 ^ *puVar6 ^ uVar36;
  uVar15 = DAT_1826717ec;
  uVar21 = CONCAT44(uVar14,DAT_18267158c);
  uVar42 = CONCAT44(DAT_182671684,DAT_182671684);
  uVar27 = (longlong)(int)(uVar23 ^ uVar36) ^ uVar42;
  *(ulonglong *)(lVar26 + -0x628) = uVar27;
  uVar29 = CONCAT44(uVar15,uVar15);
  puVar25 = (ulonglong *)(*puVar2 + 8 + (uVar21 ^ 0x2a40e450edf0ee71) * 0x10);
  uVar41 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(lVar11 + -0x128) = (ulonglong)puVar25 ^ uVar29;
  uVar21 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar38 = *puVar25 ^ uVar21;
  *(ulonglong *)(lVar11 + -0x318) = uVar38 ^ uVar41;
  uVar41 = CONCAT44(DAT_182671780,DAT_182671780);
  uVar27 = CONCAT44(uVar18,uVar28) ^ uVar41 ^ uVar27 ^ uVar42 ^ 0xee71edf084977cb8;
  *puVar8 = uVar27;
  uVar15 = DAT_182671680;
  uVar38 = uVar38 & (uVar27 ^ uVar41);
  *(ulonglong *)(lVar11 + -0x670) =
       CONCAT44(DAT_182671698,DAT_182671698) ^ CONCAT44(uVar13,uVar13) ^
       *(ulonglong *)(lVar11 + -0x400) ^ 0xb6d4802312f571c9;
  uVar41 = CONCAT44(uVar15,uVar15);
  *puVar5 = uVar38 ^ uVar41;
  uVar42 = CONCAT44(DAT_182671744,DAT_182671744);
  uVar27 = (longlong)(int)(uVar23 ^ uVar36) & *(ulonglong *)(DAT_182671560 + 0x20);
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar27 ^ uVar42;
  lVar26 = DAT_182671560;
  uVar33 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(DAT_182671560 + -0xa88) = (uVar27 | uVar38) ^ uVar33;
  *(ulonglong *)(lVar26 - (uVar43 ^ 0xc9ebf8dd)) =
       (CONCAT44(uVar28,uVar45) ^ 0xfffffffe51fe18e1) << 0x1e;
  *(ulonglong *)(*(ulonglong *)(lVar26 - (uVar43 ^ 0xc9ebfa05)) ^ uVar29) =
       uVar33 ^ uVar21 ^ *(ulonglong *)(lVar26 + -0xa88);
  uVar35 = DAT_18267178c;
  uVar32 = DAT_182671728;
  uVar24 = DAT_182671604;
  *(ulonglong *)(lVar26 + -0x400) =
       (CONCAT44(uVar45,uVar13) ^ 0xb7845f56ba913504) -
       (CONCAT44(uVar18,uVar30) ^ 0x191c9e2ca6bf2c89);
  uVar23 = *puVar1;
  uVar31 = *(uint *)(lVar26 - ((ulonglong)uVar28 ^ 0x7b688003)) ^ uVar35 ^ uVar36 ^ DAT_1826715a0 ^
           0xd5bf1baf;
  *(uint *)(lVar26 + -0x274) = uVar31;
  uVar29 = (ulonglong)DAT_18267158c;
  *(uint *)(lVar26 - ((ulonglong)DAT_18267158c ^ 0xedf0eda5)) =
       (uVar31 ^ uVar35) & (uVar23 ^ uVar17) ^ uVar32;
  uVar17 = DAT_182671584;
  uVar23 = *(uint *)(lVar26 + -0x3d4);
  uVar31 = (*puVar6 ^ uVar36) & *(uint *)(lVar26 + 0x28);
  *puVar1 = uVar31 ^ uVar24;
  uVar23 = (uVar31 | uVar32 ^ uVar23) ^ DAT_182671638;
  *(uint *)(lVar26 + -0x504) = uVar23;
  uVar23 = uVar23 ^ DAT_182671638 ^ DAT_1826717c0;
  *(uint *)(lVar26 + -0x3d4) = (uVar17 ^ 0x8e526c1c) << (((byte)uVar17 ^ 0xc5) & 0x1f);
  lVar11 = DAT_182671560;
  uVar38 = (ulonglong)DAT_182671890;
  *(uint *)(*(ulonglong *)(lVar26 + -0x8e0) ^ uVar44) = uVar23;
  *(ulonglong *)(lVar11 + -0x1c8) = *puVar2 + 4 ^ uVar38;
  uVar27 = (ulonglong)DAT_182671584;
  *puVar1 = *(uint *)(*(ulonglong *)(lVar11 - (uVar46 ^ 0x4d77dd68)) ^ uVar38) ^ DAT_18267175c ^
            DAT_1826717c0;
  uVar23 = DAT_18267156c;
  uVar35 = (*(uint *)(lVar11 - (uVar27 ^ 0x96258de0)) ^ DAT_18267175c) &
           (uVar35 ^ *(uint *)(lVar11 + -0x274));
  *(uint *)(lVar11 + -0x3d4) = uVar35 ^ DAT_182671880;
  uVar17 = DAT_182671660;
  uVar32 = (*(uint *)(lVar11 - (uVar34 ^ 0x118e114b)) ^ uVar36) & (DAT_182671580 ^ 0xee71edf4) ^
           DAT_1826716a8;
  *(uint *)(lVar11 + -0x968) = uVar32;
  uVar36 = uVar17 ^ DAT_1826717c0;
  *(uint *)(lVar11 - ((ulonglong)uVar28 ^ 0x7b688133)) = (uVar32 ^ DAT_1826716a8 | uVar35) ^ uVar17;
  bVar20 = (byte)DAT_18267156c;
  *(ulonglong *)(lVar11 - (uVar40 ^ 0x2a40e220)) =
       (*(ulonglong *)(lVar11 - (uVar34 ^ 0x118e131f)) ^ uVar42) - *(longlong *)(lVar11 + -0xbf0);
  uVar17 = DAT_18267158c ^ 0x452d183e;
  *(uint *)(*(ulonglong *)(lVar11 - (uVar43 ^ 0xc9ebfae5)) ^ uVar38) =
       uVar36 ^ *(uint *)(lVar11 + -0x274);
  puVar39 = (uint *)(lVar11 - (uVar37 ^ 0x2dfbe8e1));
  *puVar39 = (int)uVar17 >> ((bVar20 ^ 0x45) & 0x1f);
  lVar26 = (CONCAT44(uVar30,uVar14) ^ 0xc9ebfb2d2a40e451) * 0x10 +
           *(longlong *)(lVar11 - ((ulonglong)uVar23 ^ 0xf341998a));
  *plVar7 = lVar26;
  *puVar6 = uVar24 ^ DAT_182671704 ^ *puVar3;
  uVar32 = DAT_1826716b8;
  uVar17 = DAT_182671654;
  uVar42 = (ulonglong)_DAT_182671838;
  *plVar4 = lVar26;
  uVar14 = DAT_1826715c0;
  lVar26 = DAT_182671560;
  puVar47 = (uint *)(lVar11 - (uVar40 ^ 0x2a40e714));
  *(uint *)(DAT_182671560 - (uVar29 ^ 0xedf0e719)) = *puVar47 ^ uVar17 ^ uVar24;
  puVar10 = *(uint **)(lVar26 - (uVar46 ^ 0x4d77dff0));
  *puVar2 = (ulonglong)puVar10;
  *(ulonglong *)(lVar26 + -2000) = uVar42 ^ (ulonglong)puVar10;
  *(uint *)(lVar26 - (uVar34 ^ 0x118e11db)) = *puVar10 ^ uVar32 ^ DAT_1826717c0;
  puVar10 = (uint *)(lVar26 + -0x874);
  *(uint *)(lVar26 - (uVar40 ^ 0x2a40ec24)) =
       (int)(uVar32 ^ *(uint *)(lVar26 + -0x3d4)) >> (((byte)uVar45 ^ 0xbf) & 0x1f) ^ DAT_1826718ac;
  uVar24 = (*puVar10 ^ DAT_1826718ac) & (*(uint *)(lVar26 + -0x968) ^ uVar17) ^ uVar14;
  *puVar1 = uVar24;
  *puVar3 = *(uint *)(lVar26 + -0x968) ^ uVar24 ^ DAT_1826716bc ^ uVar14 ^ uVar17;
  lVar26 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar43 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *(ulonglong *)(DAT_182671560 + -0x318) = (longlong)(int)(*puVar39 ^ uVar14) ^ uVar27;
  *(ulonglong *)(lVar26 - ((ulonglong)uVar23 ^ 0xf3419362)) = *puVar2 + 8 ^ uVar43;
  *puVar8 = *(ulonglong *)(*(ulonglong *)(lVar26 + -800) ^ uVar43) ^ uVar41 ^ uVar21;
  uVar23 = DAT_182671584;
  *(ulonglong *)(lVar26 + -0x628) =
       CONCAT44(uVar28,uVar30) ^ uVar33 ^ *(ulonglong *)(lVar26 + -0xa88) ^ 0xb755b7e2a137b614;
  uVar34 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *(ulonglong *)(lVar26 - ((ulonglong)uVar23 ^ 0x96258650)) =
       CONCAT44(uVar30,uVar23) ^ uVar34 ^ uVar27 ^ *(ulonglong *)(lVar26 + -0x318) ^
       0x361404d269da7137;
  uVar15 = DAT_1826716e4;
  lVar11 = DAT_182671560;
  uVar34 = (*(ulonglong *)(lVar26 - (uVar46 ^ 0x4d77d620)) ^ uVar41) & (*puVar5 ^ uVar34);
  uVar29 = CONCAT44(DAT_182671738,DAT_182671738);
  uVar27 = (uVar27 ^ *(ulonglong *)(DAT_182671560 + -0x318)) & *(ulonglong *)(DAT_182671560 + 0x20);
  *(ulonglong *)(DAT_182671560 + -0x3f0) = uVar34 ^ CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar11 + -0x400) = uVar27 ^ uVar29;
  uVar34 = uVar34 | uVar27;
  *(ulonglong *)(lVar11 + -0xbf0) = uVar34 ^ CONCAT44(uVar15,uVar15);
  uVar27 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(*(ulonglong *)(lVar11 + -800) ^ uVar43) = uVar34 ^ uVar21;
  uVar24 = DAT_1826717f8;
  uVar17 = DAT_182671584;
  lVar26 = DAT_182671560;
  uVar23 = *(uint *)(lVar11 + -0x3d4);
  uVar21 = *(ulonglong *)(DAT_182671560 + -0x400);
  uVar35 = *(uint *)(lVar11 - (uVar27 ^ 0xe0485320)) ^ DAT_1826717f8 ^ uVar14 ^ DAT_18267158c ^
           0x120f118e;
  *puVar6 = uVar35;
  uVar34 = (ulonglong)DAT_18267156c;
  uVar32 = (uVar35 ^ uVar24) & (uVar32 ^ uVar23) ^ DAT_1826717a0;
  uVar27 = CONCAT44(DAT_18267156c,uVar17);
  *puVar10 = uVar32;
  uVar32 = uVar32 ^ DAT_1826717a0;
  uVar23 = (*puVar1 ^ uVar14) & *(uint *)(lVar26 + 0x28);
  *(ulonglong *)(lVar26 + -0x110) =
       uVar27 ^ uVar33 ^ *(ulonglong *)(lVar26 + -0xa88) ^ 0x6e89a443b57263f0;
  *(uint *)(lVar26 + -0x968) = uVar23 ^ DAT_182671670;
  *(uint *)(lVar26 + -0x3d4) = (uVar32 | uVar23) ^ DAT_182671758;
  lVar11 = DAT_182671560;
  *(ulonglong *)(lVar26 + -0x670) =
       (uVar29 ^ uVar21) - (CONCAT44(uVar48,uVar45) ^ 0x4730cd73da9c8daf);
  uVar17 = DAT_1826717c0;
  uVar27 = (ulonglong)DAT_182671620;
  *(uint *)(*(ulonglong *)(lVar11 - (uVar19 ^ 0xee71ea20)) ^ uVar42) =
       *(uint *)(lVar26 - (uVar19 ^ 0xee71ee24)) ^ DAT_182671758 ^ DAT_1826717c0;
  *(ulonglong *)(lVar11 + -0xc98) = *puVar2 + 4 ^ uVar27;
  *(ulonglong *)(lVar11 - (uVar46 ^ 0x4d77da88)) =
       (CONCAT44(uVar13,uVar28) ^ 0x6935d1c193baeb88) -
       (CONCAT44(uVar18,uVar22) ^ 0x543ddc17780bba2c);
  *(uint *)(lVar11 - (uVar34 ^ 0xf3419836)) =
       *(uint *)(uVar27 ^ *(ulonglong *)(lVar11 + -0xc98)) ^ DAT_1826715cc ^ uVar17;
  uVar22 = DAT_182671834;
  uVar23 = *puVar1;
  uVar21 = (ulonglong)DAT_1826715a8;
  uVar24 = (*(uint *)(lVar11 - (uVar46 ^ 0x4d77d4d4)) ^ DAT_1826715cc) & (*puVar47 ^ uVar24) ^
           DAT_182671658;
  uVar18 = DAT_182671584 ^ 0x96258ecc;
  *(uint *)(lVar11 + -0x968) = uVar24;
  uVar23 = (uVar23 ^ uVar14) & uVar18 ^ _DAT_182671610;
  uVar24 = uVar24 ^ DAT_182671658;
  *(uint *)(lVar11 + -0x754) = uVar23;
  uVar19 = (ulonglong)DAT_1826715a4;
  *(uint *)(lVar11 - (uVar21 ^ 0x9e75dfdc)) = (uVar24 | uVar23 ^ _DAT_182671610) ^ uVar22;
  uVar21 = (ulonglong)DAT_182671590;
  *(uint *)(uVar27 ^ *(ulonglong *)(lVar11 + -0xc98)) =
       *(uint *)(lVar11 - (uVar19 ^ 0xeff8f601)) ^ uVar22 ^ uVar17;
  *puVar6 = (*puVar10 ^ uVar22) <<
            (((byte)*(undefined4 *)(lVar11 - (uVar21 ^ 0xfe75e7bc)) ^ (byte)DAT_182671614) & 0x1f);
  lVar26 = (CONCAT44(uVar13,DAT_182671574) ^ 0x2dfbebc969da7136) * 0x10 + *puVar2;
  *plVar7 = lVar26;
  *puVar1 = DAT_182671788 ^ DAT_1826716bc ^ *puVar3;
  *puVar5 = (CONCAT44(uVar12,uVar28) ^ 0x47e0674a967362e8) + (*puVar8 ^ uVar41);
  *plVar4 = lVar26;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar9 ^ uVar28;
  return;
}



############ FUN_ 180f18bf0 size=3470 ############

void FUN_180f18bf0(void)

{
  ulonglong *puVar1;
  byte bVar2;
  longlong lVar3;
  uint uVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  undefined1 *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  byte *pbVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_res18;
  byte local_b0;
  byte local_58;
  
  uVar10 = DAT_1826715b0;
  uVar15 = DAT_1826715a4;
  uVar12 = DAT_18267159c;
  uVar7 = DAT_182671598;
  uVar8 = DAT_182671574;
  uVar6 = DAT_18267156c;
  lVar5 = DAT_182671560;
  bVar17 = (byte)DAT_18267156c;
  uVar42 = (ulonglong)DAT_18267159c;
  uVar28 = (ulonglong)DAT_182671598;
  uVar33 = DAT_18267159c;
  if ((DAT_18267156c & 1) == 0) {
    uVar33 = DAT_18267156c;
  }
  uVar36 = (ulonglong)DAT_1826715a4;
  uVar18 = DAT_182671574 - DAT_1826715b0;
  uVar31 = (ulonglong)uVar18;
  uVar38 = DAT_1826715a0 & DAT_182671598;
  uVar32 = ~DAT_1826715a4;
  uVar19 = *(uint *)(&DAT_182611e70 + (uVar31 ^ 0x2f3ddaa6) + (longlong)DAT_182671a04) ^
           DAT_1826715b0;
  uVar20 = *(uint *)(&DAT_182611e80 + DAT_182671a04) ^ DAT_182671574;
  lVar3 = *(longlong *)(DAT_182671560 + 0x30);
  DAT_182671568 = uVar32;
  DAT_18267157c = uVar38;
  DAT_182671584 = uVar18;
  DAT_1826715b4 = uVar33;
  *(longlong *)(DAT_182671560 + -0xa20) = lVar3 + 0x21;
  bVar2 = **(byte **)(lVar5 - ((ulonglong)uVar32 ^ 0x1268a83));
  uVar22 = (ulonglong)uVar10;
  *(byte *)(lVar5 + -0x209) = bVar2;
  *(ulonglong *)(lVar5 + -0x670) = (ulonglong)bVar2;
  uVar29 = (ulonglong)bVar2 << (((byte)uVar10 ^ 0x18) & 0x3f);
  uVar24 = (ulonglong)uVar8;
  *(ulonglong *)(lVar5 + -0x110) = *(ulonglong *)(lVar5 + -0xa0) | uVar29;
  uVar13 = DAT_1826715a0;
  uVar25 = CONCAT44(DAT_1826715a0,uVar8);
  *(ulonglong *)(lVar5 + -0x548) = uVar29;
  *(ulonglong *)(lVar5 + -0x170) = (uVar25 ^ 0x3d13ae0935456a9c) + lVar3;
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x2f3dda2e)) =
       *(ulonglong *)(lVar5 + -0xa0) >> ((byte)*(undefined8 *)(lVar5 + -0x670) & 0x3f);
  bVar2 = **(byte **)(lVar5 + -0x170);
  *(byte *)(lVar5 + -0x209) = bVar2;
  *(ulonglong *)(lVar5 + -0x1f0) = (ulonglong)bVar2;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (CONCAT44(uVar38,uVar7) ^ 0xe88e0cc1a58543fc) + (CONCAT44(uVar6,uVar18) ^ 0xb1e63259434aa205)
  ;
  uVar39 = (ulonglong)uVar33;
  *(ulonglong *)(lVar5 + -0x510) = (ulonglong)bVar2 << (((byte)uVar33 ^ 0xe8) & 0x3f);
  uVar21 = DAT_182671594;
  uVar29 = CONCAT44(DAT_182671594,uVar10);
  *(ulonglong *)(lVar5 + -0xa60) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar33 ^ 0x4cefd4e8)) | *(ulonglong *)(lVar5 + -0x110);
  uVar9 = DAT_1826715a0;
  uVar34 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar5 - (uVar39 ^ 0x4cefd088)) =
       (uVar29 ^ 0x3cc8860d06079033) + *(longlong *)(lVar5 + 0x30);
  *(ulonglong *)(lVar5 + -0x638) =
       CONCAT44(uVar12,uVar7) ^ CONCAT44(uVar6,uVar9) ^ 0xe1b7596c842bda5f;
  pbVar30 = (byte *)(lVar5 - (uVar31 ^ 0x2f3dd8a7));
  *pbVar30 = **(byte **)(lVar5 + -0x170);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x3cc884ad)) =
       (ulonglong)*(byte *)(lVar5 - (uVar39 ^ 0x4cefd3f1));
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x4cefddf0)) =
       *(longlong *)(lVar5 + -0x1f0) - (CONCAT44(uVar32,uVar15) ^ 0xb67bde4354a8ebff);
  *(longlong *)(lVar5 - ((ulonglong)uVar38 ^ 0x1c022840)) =
       *(longlong *)(lVar5 + -0x2a0) << ((bVar17 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar5 + -0x628) =
       CONCAT44(uVar8,uVar33) ^ *(ulonglong *)(lVar5 + -0x548) ^ 0xdf1051b3aafe9b8d;
  local_res18 = (byte)uVar18;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x60799e8)) =
       *(ulonglong *)(lVar5 - (uVar36 ^ 0xfed97d1c)) | *(ulonglong *)(lVar5 + -0xa60);
  *(undefined1 *)(lVar5 - (uVar34 ^ 0x3d13ac00)) = **(undefined1 **)(lVar5 - (uVar42 ^ 0xd9892ab8));
  uVar9 = DAT_182671578;
  uVar34 = (ulonglong)DAT_182671578;
  uVar40 = (ulonglong)DAT_182671578;
  pbVar26 = (byte *)((CONCAT44(uVar6,uVar7) ^ 0x4cefd1f89e862af4) + *(longlong *)(lVar5 + 0x30));
  *(byte **)(lVar5 + -0x60) = pbVar26;
  bVar17 = *pbVar26;
  *(byte *)(lVar5 + -0x209) = bVar17;
  *(ulonglong *)(lVar5 + -0x688) = (ulonglong)bVar17;
  uVar29 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar5 + -0x5c8) = (ulonglong)bVar17 << ((local_res18 ^ 0x8e) & 0x3f);
  *(uint *)(lVar5 + -0x910) = uVar32 ^ 0x3e22f5a1 | *(uint *)(lVar5 + -0x374);
  uVar4 = DAT_1826715ac;
  *(undefined1 *)(lVar5 + -0x209) = **(undefined1 **)(lVar5 - (uVar29 ^ 0x3cc88c2d));
  uVar23 = uVar4 & uVar9;
  DAT_182671570 = uVar23;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0xe0ff6bf4)) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar23 ^ 0xe0f204c8)) | *(ulonglong *)(lVar5 + -0x9f8);
  *(ulonglong *)(lVar5 + -0xa88) =
       *(ulonglong *)(lVar5 - (uVar34 ^ 0xf1f20770)) >>
       ((byte)*(undefined8 *)(lVar5 + -0x800) & 0x3f);
  puVar27 = (undefined1 *)
            ((CONCAT44(uVar23,uVar9) ^ 0xe0f20100f1f20125) +
            *(longlong *)(((ulonglong)uVar4 ^ 0xe0ff6dc4) + lVar5));
  *(undefined1 **)(lVar5 + -0x60) = puVar27;
  *(undefined1 *)(lVar5 + -0x209) = *puVar27;
  *(ulonglong *)(lVar5 + -0x318) =
       0x6165b8f944e0da69 - (CONCAT44(uVar23,uVar9) ^ 0xbff9e4453413b17f);
  *(int *)(lVar5 + -0x678) = *(int *)(lVar5 + -0x774) - *(int *)(lVar5 + -0x844);
  *(ulonglong *)(lVar5 + -0x1d8) = (ulonglong)*(byte *)(lVar5 + -0x209);
  *(ulonglong *)(lVar5 + -0xbf0) =
       (ulonglong)*(byte *)(lVar5 + -0x209) << (((byte)uVar4 ^ 0xdc) & 0x3f);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0xe0ff656c)) =
       CONCAT44(uVar9,uVar10) ^ 0xb9ca523d3a0c2e2d | CONCAT44(uVar33,uVar18) ^ 0x863027f57485bd06;
  uVar34 = *(ulonglong *)(lVar5 + -0xbf0) | *(ulonglong *)(lVar5 + -0x600);
  *(ulonglong *)(lVar5 + -0xa20) =
       (CONCAT44(uVar18,uVar23) ^ 0x2f3ddaaee0f20126) + *(longlong *)(lVar5 + 0x30);
  *(ulonglong *)(lVar5 + -0x8a8) = uVar34;
  bVar17 = **(byte **)(lVar5 - (uVar22 ^ 0x6079a30));
  *(byte *)(lVar5 + -0x209) = bVar17;
  local_b0 = (byte)uVar7;
  *(ulonglong *)(lVar5 + -0x610) = (ulonglong)bVar17;
  *(ulonglong *)(lVar5 + -0xa0) = (ulonglong)bVar17 << ((local_b0 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar5 + -0x6d0) =
       CONCAT44(uVar8,uVar4) ^ 0x1590c8d7cad34d16 | CONCAT44(uVar12,uVar38) ^ 0x9d7bb38b5cc34fe1;
  uVar14 = DAT_1826715a0;
  uVar11 = DAT_182671590;
  uVar7 = DAT_182671570;
  uVar37 = (ulonglong)DAT_1826715a0;
  uVar29 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar5 + -0x80) = *(longlong *)(lVar5 - ((ulonglong)uVar9 ^ 0xf1f201a0)) + uVar34;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar32 ^ 0x126861b)) =
       CONCAT44(uVar4,uVar15) ^ 0x2260080802802 | 0xb86499fa0f74815d;
  *(longlong *)(lVar5 - (uVar40 ^ 0xf1f20160)) = *(longlong *)(lVar5 + 0x30) + 0x27;
  uVar9 = DAT_182671588;
  uVar34 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar5 + -0x110) =
       CONCAT44(uVar23,uVar10) ^ CONCAT44(uVar21,uVar6) ^ 0xa52ab7b50815f666;
  *(undefined1 *)(lVar5 - (uVar24 ^ 0x354568b7)) = **(undefined1 **)(lVar5 + -0x60);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x3d13ab19)) = (ulonglong)*(byte *)(lVar5 + -0x209);
  *(ulonglong *)(lVar5 + -0x638) = *(ulonglong *)(lVar5 + -0x510) << ((byte)uVar33 & 0x3f);
  *(undefined1 *)(lVar5 + -0x209) = **(undefined1 **)(lVar5 + -0x60);
  uVar10 = DAT_18267158c;
  uVar37 = (ulonglong)DAT_18267158c;
  *(longlong *)(lVar5 + -0x1f0) =
       *(longlong *)(lVar5 - (uVar24 ^ 0x35456c86)) + *(longlong *)(lVar5 - (uVar40 ^ 0xf1f20180));
  *(ulonglong *)(lVar5 + -0xc08) = *(ulonglong *)(lVar5 + -0x510) >> 0x23;
  uVar33 = DAT_1826715a8;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar5 + -0x880) + (CONCAT44(uVar32,uVar12) ^ 0x12680a3d9892adc) * 8);
  uVar40 = (ulonglong)DAT_1826715a8;
  *(ulonglong **)(lVar5 + -0x30) = puVar1;
  uVar21 = uVar10 & 7;
  if (uVar21 < 4) {
    if (uVar21 < 2) {
      uVar4 = uVar9;
      if (uVar21 == 0) {
        uVar4 = uVar10;
      }
      uVar35 = (ulonglong)uVar4;
    }
    else {
      uVar35 = (ulonglong)uVar11;
      if (uVar21 < 3) {
        uVar35 = uVar40;
      }
    }
  }
  else if (uVar21 < 6) {
    uVar4 = DAT_18267159c;
    if (uVar21 < 5) {
      uVar4 = DAT_182671574;
    }
    uVar35 = (ulonglong)uVar4;
  }
  else {
    uVar35 = (ulonglong)uVar7;
    if (uVar21 < 7) {
      uVar35 = (ulonglong)DAT_1826715a0;
    }
  }
  DAT_182671580 = (undefined4)uVar35;
  *puVar1 = CONCAT44(DAT_1826717c8,DAT_1826717c8) ^ *(ulonglong *)(lVar5 + -0x1f0);
  uVar41 = (ulonglong)uVar7;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0xd98920f8)) =
       (CONCAT44(uVar8,uVar14) ^ 0x35456abe3d13ae21) + *(longlong *)(lVar5 + 0x30);
  *(undefined1 *)(lVar5 + -0x209) = **(undefined1 **)(lVar5 + -0xa20);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xc4fcfd58)) = (ulonglong)*pbVar30;
  pbVar26 = (byte *)((CONCAT44(uVar10,uVar11) ^ 0xc4fcfff8d7589778) + *(longlong *)(lVar5 + 0x30));
  *(byte **)(lVar5 + -0x60) = pbVar26;
  bVar17 = *pbVar26;
  *(byte *)(lVar5 + -0x209) = bVar17;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xe0f20448)) = (ulonglong)bVar17;
  *(ulonglong *)(lVar5 + -0x628) =
       (CONCAT44(uVar33,uVar9) ^ 0xa6b09d00edf4ee38) << (((byte)uVar11 ^ 0x68) & 0x3f);
  *(longlong *)(lVar5 - (uVar34 ^ 0xfdfff599)) = *(longlong *)(lVar5 + -0x548) << 8;
  *(ulonglong *)(lVar5 + -0x240) = *(ulonglong *)(lVar5 + -0xa60) | *(ulonglong *)(lVar5 + -0x2a0);
  puVar27 = (undefined1 *)
            (*(longlong *)((uVar40 ^ 0x96bf3fde) + lVar5) +
            ((uVar35 << 0x20 | (ulonglong)DAT_1826715a0) ^ 0xc4fcfff83d13ae23));
  *(undefined1 **)(lVar5 + -0xa20) = puVar27;
  *(undefined1 *)(lVar5 - (uVar41 ^ 0xe0f20309)) = *puVar27;
  *(ulonglong *)(lVar5 + -0x9f8) = (ulonglong)*(byte *)(lVar5 + -0x209);
  *(ulonglong *)(lVar5 + -0x688) =
       (CONCAT44(uVar8,uVar10) ^ 0xc106c2fb84a5ccfb) +
       (CONCAT44(uVar10,uVar11) ^ 0x7b955e2696f14f59);
  *(ulonglong *)(lVar5 + -0x5c8) =
       ((uVar35 << 0x20 | uVar31) ^ 0x2bc6b4d999ef0529) + 0x8125c7171e5e9d4;
  uVar31 = (ulonglong)*(byte *)(lVar5 + -0x209) << (((byte)uVar9 ^ 0xe9) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar42 ^ 0xd98922d8)) = uVar31;
  *(ulonglong *)(lVar5 + -0x670) = uVar31 | *(ulonglong *)(lVar5 + -0x240);
  *(longlong *)(lVar5 - ((ulonglong)uVar7 ^ 0xe0f20160)) = *(longlong *)(lVar5 + 0x30) + 0x2b;
  *(ulonglong *)(lVar5 - (uVar41 ^ 0xe0f20b88)) =
       CONCAT44(uVar18,uVar11) ^ 0xa58fb0a06ec5875 | CONCAT44(uVar13,uVar18) ^ 0x87cc73fc8195cfb4;
  *(undefined1 *)(lVar5 - (uVar35 ^ 0xc4fcfdf1)) = **(undefined1 **)(lVar5 + -0x60);
  *(undefined1 *)(lVar5 + -0x5e9) =
       **(undefined1 **)(lVar5 - ((ulonglong)DAT_1826715a0 ^ 0x3d13af79));
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x354569a6)) = (ulonglong)*(byte *)(lVar5 + -0x209);
  uVar31 = *(longlong *)(lVar5 + -0x318) << (((byte)uVar33 ^ 0xf6) & 0x3f);
  *(ulonglong *)(lVar5 + -0x1d8) = uVar31;
  *(ulonglong *)(lVar5 + -0x898) = *(ulonglong *)(lVar5 + -0x670) | uVar31;
  *(longlong *)(lVar5 - (uVar29 ^ 0xd7589d71)) = *(longlong *)((uVar37 ^ 0xc4fcffc8) + lVar5) + 0x2c
  ;
  *(undefined1 *)(lVar5 - (uVar34 ^ 0xfdfffa10)) = **(undefined1 **)(lVar5 + -0xa20);
  *(ulonglong *)(lVar5 + -0x600) = (ulonglong)*(byte *)(lVar5 + -0x5e9);
  uVar31 = *(longlong *)(lVar5 - ((ulonglong)uVar7 ^ 0xe0f20700)) << (((byte)uVar12 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar5 + -0x6d0) = *(ulonglong *)(lVar5 + -0x898) | uVar31;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar31;
  pbVar26 = (byte *)((uVar25 ^ 0x3d13ae0935456a93) + *(longlong *)(lVar5 + 0x30));
  *(byte **)(lVar5 + -0x60) = pbVar26;
  bVar17 = *pbVar26;
  *(byte *)(lVar5 + -0x209) = bVar17;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x9e862cc0)) = (ulonglong)bVar17;
  local_58 = (byte)uVar23;
  *(longlong *)(lVar5 - (uVar41 ^ 0xe0f209a8)) =
       *(longlong *)(lVar5 + -0x610) << ((local_58 ^ 0x28) & 0x3f);
  *(ulonglong *)(lVar5 + -0xa0) = *(ulonglong *)(lVar5 + -0x6d0) | *(ulonglong *)(lVar5 + -0x8a8);
  pbVar26 = (byte *)((CONCAT44(uVar6,uVar18) ^ 0x4cefd1f82f3dda80) + *(longlong *)(lVar5 + 0x30));
  *(byte **)(lVar5 + -0x170) = pbVar26;
  bVar17 = *pbVar26;
  *(byte *)(lVar5 + -0x5e9) = bVar17;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xc4fcf940)) = (ulonglong)bVar17;
  *(longlong *)(lVar5 + -0x110) = *(longlong *)(lVar5 + -0x6b8) << (((byte)uVar11 ^ 0x61) & 0x3f);
  *(longlong *)(lVar5 + -0x80) =
       *(longlong *)(lVar5 - (uVar36 ^ 0xfed97e4c)) + *(longlong *)(lVar5 + -0xa0);
  uVar16 = DAT_18267171c;
  uVar28 = CONCAT44(uVar38,DAT_182671594);
  puVar27 = (undefined1 *)
            ((CONCAT44(uVar9,uVar15) ^ 0xfdfffff9fed97f73) +
            *(longlong *)((uVar22 ^ 0x6079020) + lVar5));
  *(undefined1 **)(lVar5 + -0xa20) = puVar27;
  *(ulonglong *)(lVar5 + -0x638) =
       *(ulonglong *)(lVar5 - (uVar40 ^ 0x96bf3dae)) | uVar28 ^ 0xb74a7967f6dd21ed;
  *(undefined1 *)(lVar5 + -0x209) = *puVar27;
  *(ulonglong *)(lVar5 + -0x510) =
       *(ulonglong *)(CONCAT44(DAT_182671814,DAT_182671814) ^ *(ulonglong *)(lVar5 + -0xa38)) ^
       CONCAT44(uVar16,uVar16);
  uVar28 = (ulonglong)*(byte *)(lVar5 - (uVar42 ^ 0xd98928d1));
  *(ulonglong *)(lVar5 + -0xc08) = uVar28;
  *(ulonglong *)(lVar5 - (uVar39 ^ 0x4cefd7d0)) = uVar28 << 0x38;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar20 * 4) = uVar19;
  return;
}



############ FUN_ 180ec7cb0 size=4088 ############

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

void FUN_180ec7cb0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  ulonglong *puVar5;
  byte bVar6;
  uint uVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint *puVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint *puVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  uint uVar38;
  uint uVar39;
  uint uVar40;
  uint *puVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar47;
  byte local_d8;
  byte local_98;
  ulonglong uVar46;
  
  uVar29 = DAT_182671720;
  uVar13 = DAT_18267159c;
  uVar12 = DAT_182671590;
  uVar11 = DAT_182671584;
  uVar10 = DAT_182671578;
  uVar30 = DAT_182671574;
  uVar39 = DAT_182671570;
  lVar8 = DAT_182671560;
  uVar26 = (ulonglong)DAT_182671574;
  uVar27 = *(uint *)(&DAT_182611e78 + DAT_182671bfc) ^ DAT_182671570;
  uVar7 = *(uint *)(&DAT_182611e80 + DAT_182671bfc);
  uVar31 = DAT_182671578 + DAT_182671584;
  uVar45 = DAT_182671590 << 0x10 | DAT_182671590 >> 0x10;
  uVar46 = (ulonglong)uVar45;
  uVar34 = DAT_182671570 | DAT_182671574;
  uVar36 = ~DAT_18267159c;
  puVar41 = (uint *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0x69da774f));
  uVar17 = (ulonglong)uVar36;
  DAT_182671598 = uVar34;
  DAT_1826715a4 = uVar45;
  DAT_1826715a8 = uVar31;
  DAT_1826715b4 = uVar36;
  *puVar41 = (*(uint *)(DAT_182671560 + -0x274) ^ DAT_1826716ec) &
             (*(uint *)(DAT_182671560 + -0x27c) ^ DAT_182671850) ^ DAT_182671720;
  uVar38 = _DAT_18267188c;
  uVar25 = DAT_1826716e4;
  uVar18 = (ulonglong)uVar11;
  *(uint *)(lVar8 + -0x874) =
       *(uint *)(lVar8 - ((ulonglong)uVar36 ^ 0x1fb7ad8b)) ^ _DAT_18267188c ^ DAT_182671850 ^ uVar13
       ^ 0x1fb7aff7;
  uVar43 = DAT_1826718d4;
  *(uint *)(lVar8 + -0x8c) =
       (*(uint *)(lVar8 - ((ulonglong)uVar11 ^ 0x962586bc)) ^ uVar38 |
       *(uint *)(lVar8 + -0x3d4) ^ DAT_18267189c) ^ uVar25;
  *(ulonglong *)(lVar8 + -0x110) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar10 ^ 0x8504268)) ^ *(ulonglong *)(lVar8 + -0xa80);
  uVar24 = _DAT_182671618;
  uVar19 = (ulonglong)uVar31;
  puVar1 = (uint *)(lVar8 + -0x344);
  uVar23 = (*(uint *)(lVar8 - ((ulonglong)uVar31 ^ 0x9e75d724)) ^ uVar25) &
           (*puVar1 ^ DAT_182671840);
  puVar2 = (uint *)(lVar8 + -0x844);
  uVar28 = *puVar2 ^ _DAT_182671618;
  *(uint *)(lVar8 + -0x754) = uVar23 ^ uVar43;
  uVar28 = uVar28 & (*(uint *)(lVar8 + -0x678) ^ uVar29) ^ DAT_182671708;
  *(uint *)(lVar8 + -0x774) = uVar28;
  puVar3 = (uint *)(lVar8 + -0x374);
  *(uint *)(lVar8 - ((ulonglong)uVar45 ^ 0xeff8fd5d)) =
       (uVar28 ^ DAT_182671708 | uVar23) ^ DAT_182671628;
  puVar4 = (uint *)(lVar8 + -0x910);
  *(uint *)(lVar8 - (uVar26 ^ 0x69da754b)) =
       (*(uint *)(lVar8 + -0x8c) ^ uVar25) & (DAT_182671688 ^ *puVar3) ^ uVar24;
  uVar25 = DAT_182671768;
  uVar20 = (ulonglong)uVar34;
  uVar35 = (ulonglong)DAT_18267180c;
  uVar29 = (*(uint *)(lVar8 - ((ulonglong)uVar34 ^ 0xfffff987)) ^ uVar29) & 4 ^ DAT_1826716cc;
  *(uint *)(lVar8 + -0x968) = uVar29;
  *puVar4 = (*(uint *)(lVar8 + -0x47c) ^ uVar24 | uVar29 ^ DAT_1826716cc) ^ uVar25;
  uVar24 = DAT_1826717c0;
  uVar15 = DAT_182671780;
  lVar9 = DAT_182671560;
  uVar21 = (ulonglong)uVar12;
  puVar32 = (uint *)(lVar8 - (uVar21 ^ 0xfe75e6e8));
  uVar35 = uVar35 ^ *(ulonglong *)(DAT_182671560 + -0xb0);
  uVar37 = (ulonglong)(int)(*puVar32 ^ uVar25);
  puVar5 = (ulonglong *)(DAT_182671560 + -0x3f0);
  *puVar5 = uVar37 ^ CONCAT44(DAT_182671780,DAT_182671780);
  uVar14 = DAT_182671800;
  puVar33 = (ulonglong *)(uVar35 + 8 + uVar37 * 0x10);
  *(ulonglong *)(lVar9 + -0x690) = (ulonglong)puVar33 ^ CONCAT44(_DAT_182671868,_DAT_182671868);
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar42 = CONCAT44(DAT_182671828,DAT_182671828) ^ CONCAT44(uVar24,uVar24) ^ *puVar33 ^ uVar44 ^
           *(ulonglong *)(lVar9 + -0x400);
  uVar47 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(lVar9 + -0xa88) = uVar42;
  *(ulonglong *)(lVar9 + -0xa80) = -(uVar44 ^ uVar42) ^ uVar47;
  uVar23 = DAT_1826717bc;
  uVar44 = -(uVar44 ^ uVar42) | uVar44 ^ uVar42;
  *(uint *)(lVar9 + -0x274) = (uVar36 ^ 0x8a102e09) - (*(uint *)(lVar9 + -0x874) ^ uVar38);
  uVar16 = DAT_1826718cc;
  uVar47 = (ulonglong)DAT_182671724;
  uVar42 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar9 + -0x400) = uVar44 ^ uVar42;
  *(ulonglong *)(lVar9 + -0xa80) = *(ulonglong *)(lVar9 + -0xbf0) | 0x5e6c73115ee25b5e;
  *(ulonglong *)(lVar9 + -0x898) =
       (longlong)uVar44 >> (((byte)uVar39 ^ 199) & 0x3f) ^ CONCAT44(uVar23,uVar23);
  *(uint *)(lVar9 + -0x27c) = uVar23 ^ *(uint *)(lVar9 + -0x898) ^ uVar16;
  *(ulonglong *)(lVar9 + -0xd00) =
       uVar35 + 4 + (uVar37 + (CONCAT44(uVar10,uVar36) ^ 0x85048e01fb7aff7) * 6) * 0x10 ^ uVar47;
  uVar38 = DAT_1826717a8;
  uVar29 = DAT_1826716f4;
  *(ulonglong *)(lVar9 + -0xb0) = CONCAT44(uVar12,uVar34) ^ 0x44663d935b62a381;
  uVar24 = DAT_182671574 ^ 0x69da7137;
  *(uint *)(lVar9 - (uVar18 ^ 0x96258d1c)) =
       *(uint *)(*(ulonglong *)(lVar9 - (uVar46 ^ 0xeff8f375)) ^ uVar47) ^ uVar29 ^ DAT_1826717c0;
  *puVar1 = uVar24 - (*(uint *)(lVar9 + -0x3d4) ^ uVar29) ^ uVar43;
  *(ulonglong *)(lVar9 - (uVar17 ^ 0x1fb7a57f)) =
       *(longlong *)(lVar9 - (uVar19 ^ 0x9e75d180)) - (CONCAT44(uVar10,uVar39) ^ 0x62fdd85ab1fcfcb6)
  ;
  uVar25 = DAT_18267159c;
  uVar37 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar9 - ((ulonglong)DAT_18267159c ^ 0xe048584c)) =
       (*puVar1 ^ uVar43 | *(uint *)(lVar9 + -0x3d4) ^ uVar29) ^ DAT_1826716b0;
  *(ulonglong *)(lVar9 + -0xbf0) =
       (CONCAT44(uVar39,uVar34) ^ 0xafaf71db5be74de) + (uVar42 ^ *(ulonglong *)(lVar9 + -0x400));
  uVar14 = DAT_1826715d0;
  uVar43 = (int)(*puVar2 ^ DAT_1826716b0) >> 0x1f ^ uVar38;
  *(uint *)(lVar9 + -0x754) = uVar43;
  uVar40 = DAT_1826718c0;
  uVar24 = *(uint *)(lVar9 + -0x27c);
  uVar28 = uVar43 ^ DAT_1826716fc ^ uVar38 ^ DAT_1826715b4 ^ 0xe0485008;
  *(ulonglong *)(lVar9 + -0xa80) =
       CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar9 + -0x670) | 0xe92771ee8d8b9a8e;
  uVar43 = DAT_1826715a8 ^ 0x618a2857;
  *(uint *)(lVar9 + -0x774) = ~uVar40 ^ uVar24 ^ uVar16;
  *puVar3 = (*(uint *)(lVar9 + -0x3d4) ^ uVar29) + uVar43 ^ DAT_1826718bc;
  *(uint *)(lVar9 + -0x8c) = uVar28;
  uVar24 = (uVar24 ^ uVar16 | uVar28 ^ DAT_1826716fc) ^ DAT_1826716c4;
  *(ulonglong *)(lVar9 + -0x628) =
       (CONCAT44(uVar11,uVar45) ^ 0xc931ddc5862d8cea) >>
       ((byte)*(undefined8 *)(lVar9 - (uVar21 ^ 0xfe75ece0)) & 0x3f);
  *(uint *)(lVar9 - (uVar18 ^ 0x962588b0)) = uVar24;
  uVar24 = *(uint *)(lVar9 + -0x678) ^ DAT_1826716c4;
  *(ulonglong *)(lVar9 + -0xa88) =
       CONCAT44(uVar10,uVar25) ^ 0xf5c48439fe345fdf | *(ulonglong *)(lVar9 + -0xa80);
  *(uint *)(lVar9 - (uVar20 ^ 0xfffffb83)) =
       uVar24 & (*(uint *)(lVar9 + -0x3d4) ^ uVar29) ^ DAT_1826718b8;
  uVar28 = DAT_18267181c;
  uVar35 = *(ulonglong *)(lVar9 + -0xd00);
  *(ulonglong *)(lVar9 + -0x670) =
       *(ulonglong *)(CONCAT44(DAT_182671848,DAT_182671848) ^ *(ulonglong *)(lVar9 + -0x128)) ^
       CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar43 = DAT_1826717c0;
  uVar24 = *(uint *)(lVar9 + -0x47c) ^ DAT_1826718b8;
  uVar25 = (*(uint *)(lVar9 - (uVar26 ^ 0x69da7243)) ^ DAT_1826718bc) &
           (uVar38 ^ *(uint *)(lVar9 + -0x754)) ^ DAT_18267176c;
  *(uint *)(lVar9 + -0x968) = uVar25;
  uVar42 = (ulonglong)DAT_1826718c4;
  uVar25 = (uVar25 ^ DAT_18267176c) & (uVar40 ^ *(uint *)(lVar9 + -0x774)) ^ DAT_182671778;
  *puVar4 = uVar25;
  uVar24 = uVar25 ^ DAT_182671778 | uVar24;
  *(uint *)(lVar9 + -0x874) = uVar24 ^ uVar28;
  *(uint *)(uVar47 ^ uVar35) = uVar24 ^ uVar43;
  *(undefined8 *)(lVar9 + -0x350) = *(undefined8 *)(lVar9 + -0x888);
  *(undefined8 *)(lVar9 - (uVar46 ^ 0xeff8f7bd)) = *(undefined8 *)(lVar9 + -0x888);
  puVar22 = (uint *)((CONCAT44(uVar39,uVar30) ^ 0xfe75eff869da7137) * 0x10 +
                    *(longlong *)(lVar9 + -0x9c8));
  *(ulonglong *)(lVar9 + -0x6f8) = (ulonglong)puVar22 ^ uVar42;
  uVar25 = DAT_182671600;
  *(uint *)(lVar9 + -0x274) = *puVar22 ^ DAT_182671600 ^ uVar43;
  *(ulonglong *)(lVar9 - (uVar46 ^ 0xeff8fd6d)) =
       (CONCAT44(uVar13,uVar31) ^ 0xafe1bf5120413c50) <<
       ((byte)*(undefined8 *)(lVar9 - (uVar37 ^ 0xe0485620)) & 0x3f);
  uVar40 = *(uint *)(lVar9 + -0x274) ^ uVar25;
  uVar24 = *(uint *)(lVar9 + -0x27c);
  uVar38 = (int)uVar40 >> 0x1f ^ DAT_1826716f0;
  *puVar1 = uVar38;
  uVar29 = DAT_1826717d4;
  uVar13 = DAT_1826715f8;
  uVar38 = ~DAT_1826715f8 ^ uVar38 ^ DAT_1826716f0;
  *puVar2 = uVar24 ^ uVar16 | *(uint *)(lVar9 + -0x874) ^ uVar28;
  *(uint *)(lVar9 + -0x3d4) = uVar38;
  uVar24 = uVar40 - (*(uint *)(lVar9 - (uVar37 ^ 0xe0485320)) ^ DAT_182671628) ^ DAT_18267166c;
  bVar6 = (byte)DAT_182671578;
  *(uint *)(lVar9 + -0x678) = uVar24;
  uVar24 = (int)(uVar24 ^ DAT_18267166c) >> ((bVar6 ^ 0xff) & 0x1f);
  *(uint *)(lVar9 + -0x754) = uVar24 ^ uVar29;
  lVar9 = DAT_182671560;
  uVar24 = (uVar38 ^ uVar13) & uVar24 ^ DAT_1826716dc;
  *(ulonglong *)(DAT_182671560 + -0xa80) =
       (CONCAT44(uVar34,uVar10) ^ 0x51eb9ca37f4951b4) +
       (CONCAT44(uVar45,uVar12) ^ 0x1540a87efb9740a6);
  *puVar3 = uVar24;
  uVar24 = (*(uint *)(lVar9 - (uVar19 ^ 0x9e75d5dc)) ^ uVar25 | uVar24 ^ DAT_1826716dc) ^
           DAT_1826718d0;
  *(uint *)(lVar9 + -0x968) = uVar24;
  *(uint *)(*(ulonglong *)(lVar9 - (uVar26 ^ 0x69da77cf)) ^ uVar42) =
       uVar24 ^ DAT_1826718d0 ^ uVar43;
  *(longlong *)(lVar9 + -0x9c8) = *(longlong *)(lVar9 + -0x9c8) + 0x10;
  *(ulonglong *)(lVar9 + -0x350) = *(ulonglong *)(lVar9 + -0x9c8);
  *(undefined1 *)(lVar9 + -0x31) = **(undefined1 **)(lVar9 - (uVar26 ^ 0x69da7db7));
  uVar29 = DAT_182671714;
  uVar35 = (ulonglong)DAT_18267160c;
  bVar6 = (byte)DAT_182671590;
  *(ulonglong *)(lVar9 - (uVar17 ^ 0x1fb7a9af)) = uVar35 ^ *(ulonglong *)(lVar9 + -0x9c8);
  *(uint *)(lVar9 - (uVar17 ^ 0x1fb7ab8b)) =
       *(uint *)(*(ulonglong *)(lVar9 + -0x658) ^ uVar35) ^ uVar29 ^ uVar43;
  uVar24 = *(uint *)(lVar9 + -0x47c);
  *puVar4 = (int)(*(uint *)(lVar9 + -0x47c) ^ uVar29) >> ((bVar6 ^ 0xe7) & 0x1f) ^ DAT_18267179c;
  *puVar2 = ~DAT_1826716b8 ^ *puVar32 ^ DAT_18267179c;
  bVar6 = (byte)DAT_18267159c;
  *(uint *)(lVar9 - (uVar20 ^ 0xfffffcbb)) =
       (uVar24 ^ uVar29) - (*(uint *)(lVar9 + -0x328) ^ DAT_182671628) ^ DAT_1826716a4;
  uVar25 = DAT_182671654;
  uVar42 = (ulonglong)DAT_182671570;
  uVar24 = *puVar2 ^ DAT_1826716b8;
  *(uint *)(lVar9 + -0x678) =
       (int)(*(uint *)(lVar9 - ((ulonglong)DAT_182671570 ^ 0xfe75ecbc)) ^ DAT_1826716a4) >>
       ((bVar6 ^ 0x17) & 0x1f) ^ DAT_182671740;
  *(uint *)(lVar9 - (uVar19 ^ 0x9e75d47c)) = (*puVar41 ^ DAT_182671740) & uVar24 ^ uVar25;
  *(undefined1 *)(lVar9 + -0x51a) = **(undefined1 **)(lVar9 + -0x5b8);
  uVar28 = DAT_182671818;
  uVar38 = DAT_18267172c;
  local_d8 = (byte)uVar30;
  uVar24 = *(uint *)(lVar9 - (uVar46 ^ 0xeff8fa09));
  uVar19 = (ulonglong)DAT_1826718b4;
  *(longlong *)(lVar9 + -0x318) = *(longlong *)(lVar9 + -0xa80) + -0x58c860a26e06c40d;
  uVar24 = (uVar24 ^ uVar29 | uVar25 ^ *(uint *)(lVar9 + -0x3d4)) ^ uVar38;
  *(uint *)(lVar9 + -0x754) = uVar24;
  *(uint *)(*(ulonglong *)(lVar9 + -0x658) ^ uVar35) = uVar38 ^ uVar43 ^ uVar24;
  *(ulonglong *)(lVar9 - (uVar21 ^ 0xfe75eca8)) =
       (CONCAT44(uVar11,uVar31) ^ 0x96258ec89e75d7a9) * 0x10 + *(longlong *)(lVar9 + -0x350);
  *(undefined8 *)(lVar9 + -0x9c8) = *(undefined8 *)(lVar9 + -0x350);
  *(ulonglong *)(lVar9 + -0xb80) = *(ulonglong *)(lVar9 - (uVar42 ^ 0xfe75e630)) ^ uVar19;
  *(longlong *)(lVar9 + -0xa80) =
       *(longlong *)(lVar9 - (uVar18 ^ 0x962588b8)) << ((local_d8 ^ 0x15) & 0x3f);
  bVar6 = *(byte *)puVar5;
  local_98 = (byte)uVar15;
  uVar30 = *(uint *)(*(ulonglong *)(lVar9 - (uVar17 ^ 0x1fb7a477)) ^ uVar19) ^ uVar28 ^ uVar43;
  *puVar3 = uVar30;
  uVar24 = DAT_182671570;
  *(longlong *)(lVar9 + -0x318) = *(longlong *)(lVar9 + -0x628) << ((bVar6 ^ local_98) & 0x3f);
  *(uint *)(lVar9 + -0x274) =
       (int)(uVar28 ^ uVar30) >> (((byte)uVar24 ^ 0xe7) & 0x1f) ^ DAT_182671634;
  *(uint *)(lVar9 - (uVar20 ^ 0xfffff6ef)) =
       *(uint *)(lVar9 - (uVar21 ^ 0xfe75ed8c)) ^ DAT_1826717ac ^ DAT_182671634 ^ DAT_182671578 ^
       0xf7afb71f;
  uVar24 = (uVar28 ^ *puVar3) - (*(uint *)(lVar9 + -0x328) ^ DAT_182671628);
  *puVar1 = uVar24 ^ uVar13;
  uVar30 = (int)uVar24 >> 0x1f ^ DAT_1826715c4;
  uVar35 = *(ulonglong *)(lVar9 + -0x670);
  *puVar2 = uVar30;
  uVar30 = uVar30 ^ DAT_1826715c4;
  *(ulonglong *)(lVar9 + -0xa80) = uVar35 >> (((byte)uVar39 ^ 0xf0) & 0x3f);
  uVar24 = DAT_18267177c;
  *puVar41 = (*(uint *)(lVar9 - (uVar17 ^ 0x1fb7a6e7)) ^ DAT_1826717ac) & uVar30 ^ DAT_182671888;
  uVar30 = uVar28 ^ *puVar3 | *(uint *)(lVar9 + -0x678) ^ DAT_182671888;
  *(uint *)(lVar9 + -0x47c) = uVar30 ^ uVar24;
  *(uint *)(*(ulonglong *)(lVar9 + -0xb80) ^ uVar19) = uVar30 ^ uVar43;
  *(ulonglong *)(lVar9 + -0x350) =
       (CONCAT44(uVar12,uVar11) ^ 0xfe75eff896258ec9) * 0x10 + *(longlong *)(lVar9 + -0x9c8);
  *puVar5 = (CONCAT44(uVar45,uVar36) ^ 0xe4956f4b729f4259) -
            (CONCAT44(uVar31,uVar11) ^ 0x975b351146df2fc2);
  uVar24 = DAT_1826715e8;
  lVar8 = *(longlong *)(lVar9 - ((ulonglong)uVar10 ^ 0x8504bb0));
  uVar35 = (ulonglong)DAT_1826715d4;
  puVar22 = (uint *)((CONCAT44(uVar39,uVar31) ^ 0xfe75eff89e75d7a8) * 0x10 + lVar8);
  *(longlong *)(lVar9 + -0x9c8) = lVar8;
  *(longlong *)(lVar9 + -0x350) = lVar8;
  *(ulonglong *)(lVar9 + -0x798) = (ulonglong)puVar22 ^ uVar35;
  uVar43 = *puVar22 ^ uVar24 ^ uVar43;
  *(uint *)(lVar9 + -0x3d4) = uVar43;
  uVar31 = DAT_1826717a4;
  uVar35 = *(ulonglong *)(lVar9 - (uVar26 ^ 0x69da722f));
  *(uint *)(lVar9 + -0x274) = (int)(uVar24 ^ uVar43) >> 0x1f ^ DAT_182671810;
  *(ulonglong *)(lVar9 + -0x670) = uVar35 ^ CONCAT44(uVar23,uVar23) ^ *(ulonglong *)(lVar9 + -0x898)
  ;
  uVar39 = *(uint *)(lVar9 - (uVar20 ^ 0xfffffd8b)) ^ ~DAT_1826716e8 ^ DAT_182671810;
  *puVar1 = uVar39;
  uVar39 = uVar39 ^ DAT_1826716e8;
  uVar30 = (uVar24 ^ uVar43) - (*(uint *)(lVar9 + -0x328) ^ DAT_182671628);
  uVar24 = (int)uVar30 >> 0x1f ^ DAT_1826718b0;
  *puVar4 = uVar30 ^ uVar31;
  *puVar2 = uVar24;
  uVar31 = (uVar24 ^ DAT_1826718b0) & uVar39 ^ DAT_182671870;
  *puVar5 = CONCAT44(uVar36,uVar11) ^ 0xafef6bf3db5f9bdf | 0x2aac4261d35b9b9c;
  *puVar3 = uVar31;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar7 ^ uVar34) * 4) = uVar27;
  return;
}



############ FUN_ 180e68e60 size=4800 ############

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

void FUN_180e68e60(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  byte bVar14;
  byte bVar15;
  byte bVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte *pbVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  byte local_f0;
  byte local_d0;
  byte local_b0;
  
  uVar11 = DAT_1826715b4;
  uVar10 = DAT_1826715ac;
  uVar9 = DAT_1826715a8;
  uVar8 = DAT_1826715a4;
  uVar29 = DAT_182671594;
  uVar21 = DAT_182671590;
  uVar6 = DAT_182671570;
  lVar3 = DAT_182671560;
  uVar36 = (ulonglong)DAT_1826715b4;
  uVar47 = (ulonglong)DAT_1826715ac;
  uVar32 = (ulonglong)DAT_182671590;
  uVar48 = (ulonglong)DAT_1826715a4;
  uVar26 = (ulonglong)DAT_182671570;
  uVar42 = (ulonglong)DAT_182671594;
  uVar23 = DAT_182671594 - DAT_1826715a8;
  uVar45 = DAT_182671590 * DAT_1826715ac;
  uVar50 = DAT_1826715a4 * DAT_182671570;
  uVar27 = (DAT_1826715b4 << 0x10 | DAT_1826715b4 & 0xff00) << 8 | DAT_1826715b4 >> 8 & 0xff00 |
           DAT_1826715b4 >> 0x18;
  uVar28 = uVar27 ^ 0xcf2b9e09;
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671914);
  uVar20 = *(uint *)(&DAT_182611e78 + DAT_182671914) ^ DAT_1826715ac;
  uVar22 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x9e8);
  uVar33 = (ulonglong)uVar23;
  DAT_182671568 = uVar50;
  DAT_182671578 = uVar23;
  DAT_18267157c = uVar28;
  DAT_182671588 = uVar45;
  *puVar1 = (CONCAT44(DAT_182671640,DAT_182671640) ^ *(ulonglong *)(DAT_182671560 + -0x628) |
            CONCAT44(DAT_182671898,DAT_182671898) ^ *(ulonglong *)(DAT_182671560 + -0xa88)) ^ uVar22
  ;
  uVar17 = (ulonglong)uVar9;
  uVar35 = (ulonglong)DAT_182671624;
  uVar18 = CONCAT44(uVar21,uVar9);
  *(ulonglong *)(lVar3 + -0x8f8) =
       (uVar18 ^ 0xfe75eff82cd6f67e) + *(longlong *)(lVar3 + -3000) ^ uVar35;
  bVar15 = (byte)DAT_182671888;
  *(byte *)(lVar3 - ((ulonglong)uVar23 ^ 0xc98d376b)) =
       *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar29 ^ 0xf664242e)) ^ uVar35) ^
       (byte)DAT_182671888 ^ (byte)DAT_1826717c0;
  uVar38 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x101f1f48)) =
       (*(byte *)(lVar3 + -0x119) ^ bVar15) ^ uVar38;
  *(uint *)(lVar3 + -0x3c8) =
       (*(uint *)(lVar3 - (uVar17 ^ 0x2cd6ff74)) ^ DAT_182671798) * -0xf430f52;
  lVar4 = DAT_182671560;
  uVar35 = *puVar1;
  uVar39 = CONCAT44(DAT_182671644,DAT_182671644);
  bVar19 = (byte)(uVar11 >> 0x18);
  uVar30 = (uVar38 ^ *(ulonglong *)(DAT_182671560 + -0x748)) << (bVar19 & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x3b8) = uVar30 ^ CONCAT44(DAT_182671718,DAT_182671718);
  uVar24 = (ulonglong)DAT_1826715e8;
  uVar41 = (ulonglong)uVar50;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xeff8fd6d)) = (uVar35 ^ uVar22 | uVar30) ^ uVar39;
  bVar16 = (byte)DAT_1826717c0;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xfe75ea40)) =
       (CONCAT44(uVar11,uVar50) ^ 0x101f1800503ebc43) + *(longlong *)(lVar4 + -3000) ^ uVar24;
  uVar13 = DAT_182671824;
  bVar15 = (byte)DAT_182671694;
  *(byte *)(lVar4 + -0x2a1) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x5b8) ^ uVar24) ^ (byte)DAT_182671694 ^ bVar16;
  uVar7 = DAT_182671804;
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar24 = (ulonglong)(*(byte *)(lVar4 - (uVar17 ^ 0x2cd6f4c5)) ^ bVar15);
  *(ulonglong *)(lVar4 + -0x628) = uVar24 ^ uVar34;
  bVar15 = (byte)DAT_1826717d4;
  lVar5 = DAT_182671560;
  uVar24 = uVar24 << (((byte)uVar28 ^ 1) & 0x3f);
  uVar49 = (ulonglong)uVar45;
  *(ulonglong *)(lVar4 + -0xa88) = uVar24 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_1826715fc;
  uVar24 = uVar24 | uVar39 ^ *(ulonglong *)(lVar4 + -0x318);
  lVar3 = *(longlong *)(lVar4 + -3000);
  pbVar37 = (byte *)(lVar3 + 0x1c);
  *(uint *)(lVar4 + -0x274) =
       (*(uint *)(lVar4 - (uVar26 ^ 0xfe75e690)) ^ DAT_18267180c) <<
       (((byte)*(undefined4 *)(lVar4 + -0x964) ^ (byte)DAT_1826716b0) & 0x1f);
  *(ulonglong *)(lVar4 + -0x900) = (ulonglong)pbVar37 ^ (ulonglong)DAT_182671684;
  *(ulonglong *)(lVar4 + -0x748) = uVar24 ^ CONCAT44(uVar7,uVar7);
  *puVar1 = -0x71f802958093baa7 << (((byte)uVar11 ^ 10) & 0x3f);
  uVar7 = _DAT_1826715dc;
  bVar14 = *pbVar37 ^ bVar15 ^ bVar16;
  uVar35 = (ulonglong)(bVar15 ^ bVar14);
  *(byte *)(lVar5 + -0x9a1) = bVar14;
  uVar30 = CONCAT44(uVar7,uVar7);
  uVar39 = CONCAT44(DAT_18267186c,DAT_18267186c);
  *(ulonglong *)(lVar5 + -0x3b8) = uVar35 ^ uVar30;
  uVar7 = DAT_182671870;
  uVar35 = uVar35 << (((byte)uVar29 ^ 0xf6) & 0x3f);
  *(ulonglong *)(lVar5 + -0x628) = uVar35 ^ uVar39;
  uVar12 = DAT_1826716f4;
  lVar4 = DAT_182671560;
  uVar39 = CONCAT44(uVar7,uVar7);
  pbVar37 = (byte *)(lVar3 + 0x1d);
  uVar31 = DAT_1826716f4 & 0xff;
  *(ulonglong *)(DAT_182671560 + -0x8f8) = (ulonglong)pbVar37 ^ (ulonglong)DAT_182671808;
  *(ulonglong *)(lVar4 + -0x318) = (uVar24 | uVar35) ^ uVar39;
  uVar7 = DAT_18267168c;
  bVar15 = *pbVar37 ^ (byte)uVar12 ^ bVar16;
  uVar35 = (ulonglong)uVar31 ^ (ulonglong)bVar15;
  *(byte *)(lVar4 + -0x519) = bVar15;
  uVar13 = DAT_182671890;
  local_d0 = (byte)uVar50;
  uVar40 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0xa88) = uVar35 ^ uVar40;
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671560 - (uVar47 ^ 0x8504108)) =
       uVar35 << ((local_d0 ^ 0x70) & 0x3f) ^ uVar24;
  bVar15 = (byte)DAT_1826717f4;
  uVar35 = (ulonglong)DAT_182671744;
  uVar43 = CONCAT44(DAT_182671628,DAT_182671628);
  *(ulonglong *)(lVar3 + -0x3b8) =
       (*puVar1 ^ uVar24 | uVar39 ^ *(ulonglong *)(lVar3 + -0x318)) ^ uVar43;
  *(ulonglong *)(lVar3 + -0x5b8) =
       (CONCAT44(uVar8,uVar29) ^ 0xeff8fe75f6642cc8) + *(longlong *)(lVar3 + -3000) ^ uVar35;
  uVar7 = DAT_182671818;
  bVar14 = *(byte *)(*(ulonglong *)(lVar3 - (uVar17 ^ 0x2cd6f3dc)) ^ uVar35) ^ bVar15 ^ bVar16;
  *(byte *)(lVar3 + -0x1f9) = bVar14;
  uVar12 = DAT_1826715c8;
  uVar35 = CONCAT44(uVar7,uVar7);
  local_f0 = (byte)uVar8;
  uVar46 = (ulonglong)DAT_1826715c8;
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0xfe75e8b0)) = (bVar15 ^ bVar14) ^ uVar35;
  lVar3 = DAT_182671560;
  puVar25 = (ulonglong *)(DAT_182671560 + -0x748);
  uVar44 = (ulonglong)DAT_182671780;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (CONCAT44(uVar21,uVar11) ^ 0x251e8a958e951241) -
       (*(ulonglong *)(DAT_182671560 - (uVar49 ^ 0x902fb388)) ^ uVar40);
  uVar7 = DAT_182671660;
  uVar24 = (uVar35 ^ *puVar25) << ((local_f0 ^ 0x45) & 0x3f);
  *(ulonglong *)(lVar3 + -0x318) = uVar24 ^ CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar21 = DAT_182671640;
  lVar4 = DAT_182671560;
  uVar31 = DAT_182671640 & 0xff;
  uVar40 = CONCAT44(uVar7,uVar7);
  uVar35 = (ulonglong)DAT_1826715cc;
  *puVar1 = (*(ulonglong *)(lVar3 + -0x3b8) ^ uVar43) + uVar24 ^ uVar40;
  *(ulonglong *)(lVar4 + -0x900) =
       (CONCAT44(uVar45,uVar10) ^ 0x902fb900085048ff) + *(longlong *)(lVar4 + -3000) ^ uVar35;
  *(byte *)(lVar4 + -0xc52) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar41 ^ 0x503eb0d8)) ^ uVar44) ^ bVar16;
  bVar16 = *(byte *)(*(ulonglong *)(lVar4 - (uVar17 ^ 0x2cd6ff64)) ^ uVar35) ^ (byte)uVar21 ^ bVar16
  ;
  *(byte *)(lVar4 + -0x189) = bVar16;
  uVar35 = (ulonglong)bVar16 ^ (ulonglong)uVar31;
  *(ulonglong *)(lVar4 + -0xa88) = uVar35 ^ uVar40;
  uVar7 = DAT_1826717ec;
  local_b0 = (byte)uVar9;
  uVar35 = uVar35 << ((local_b0 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar4 + -0x628) = uVar35 ^ CONCAT44(uVar12,uVar12);
  bVar15 = (byte)DAT_1826715e4;
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0xc98d313a)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar45 ^ 0x902fb0e8)) ^ uVar40) + uVar35 ^ uVar24
  ;
  uVar35 = (ulonglong)DAT_182671874;
  uVar51 = CONCAT44(_DAT_1826715d8,_DAT_1826715d8);
  *(ulonglong *)(lVar3 + -0xd60) =
       *(longlong *)(lVar3 + -0x880) + (CONCAT44(uVar10,uVar27) ^ 0x85048e000181f13) * 8 ^ uVar51;
  *(undefined8 *)(lVar3 - (uVar41 ^ 0x503ebfe0)) = 0;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0xd60) ^ uVar51) =
       uVar24 ^ uVar38 ^ *(ulonglong *)(lVar3 + -0x748);
  *(ulonglong *)(lVar3 + -0x8f8) =
       (CONCAT44(uVar6,uVar50) ^ 0xfe75eff8503ebc78) + *(longlong *)(lVar3 + -3000) ^ uVar35;
  uVar7 = DAT_18267171c;
  bVar16 = *(byte *)(*(ulonglong *)(lVar3 - (uVar41 ^ 0x503eb4a0)) ^ uVar35) ^ bVar15 ^
           (byte)DAT_1826717c0;
  *(byte *)(lVar3 + -0x691) = bVar16;
  lVar3 = DAT_182671560;
  uVar40 = CONCAT44(uVar7,uVar7);
  uVar35 = (ulonglong)DAT_182671790;
  *(ulonglong *)(DAT_182671560 - (uVar42 ^ 0xf6642fce)) = (bVar16 ^ bVar15) ^ uVar40;
  puVar25 = (ulonglong *)(lVar3 - (uVar36 ^ 0x101f13f0));
  *(ulonglong *)(lVar3 + -0x5b8) =
       (CONCAT44(uVar45,uVar8) ^ 0x902fb900eff8fe54) + *(longlong *)(lVar3 + -3000) ^ uVar35;
  bVar15 = (byte)DAT_182671700;
  lVar4 = DAT_182671560;
  *puVar25 = (CONCAT44(uVar23,uVar8) ^ 0x9c63d4505e4fe34c) + 0x2d2f481dd5d0ba26;
  bVar16 = *(byte *)(*(ulonglong *)(lVar3 + -0x5b8) ^ uVar35) ^ bVar15 ^ (byte)DAT_1826717c0;
  uVar24 = CONCAT44(DAT_182671894,DAT_182671894);
  *(byte *)(lVar4 + -0x3a9) = bVar16;
  uVar35 = (ulonglong)(bVar16 ^ bVar15);
  uVar36 = uVar35 << 8;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xf664265e)) = uVar35 ^ uVar24;
  uVar35 = *(ulonglong *)(lVar4 + -0x318);
  *(ulonglong *)(lVar4 + -0x270) =
       *(ulonglong *)(lVar4 + -0x3b8) >> ((*(byte *)(lVar4 + -0x628) ^ (byte)uVar12) & 0x3f);
  *puVar1 = uVar36 ^ uVar39;
  uVar13 = DAT_18267179c;
  uVar43 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(ulonglong *)(lVar4 + -0xbf0) = (uVar40 ^ uVar35 | uVar36) ^ uVar43;
  bVar15 = (byte)DAT_1826715d4;
  uVar39 = (ulonglong)DAT_1826716dc;
  *(ulonglong *)(lVar4 - (uVar48 ^ 0xeff8f775)) =
       *(longlong *)(lVar4 - (uVar33 ^ 0xc98d3dca)) + (CONCAT44(uVar29,uVar23) ^ 0xf6642cd6c98d3650)
       ^ uVar39;
  *(byte *)(lVar4 - (uVar32 ^ 0xfe75e331)) =
       *(byte *)(uVar39 ^ *(ulonglong *)(lVar4 + -0x900)) ^ bVar15 ^ (byte)DAT_1826717c0;
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(DAT_182671560 - (uVar41 ^ 0x503eb6d0)) =
       (*(byte *)(lVar4 + -0xcc9) ^ bVar15) ^ uVar24;
  uVar7 = DAT_1826716fc;
  uVar35 = (uVar24 ^ *(ulonglong *)(lVar3 + -0xa88)) << (bVar19 & 0x3f);
  uVar36 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar3 + -0x628) = uVar35 ^ uVar36;
  uVar40 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x2cd6f5dc)) =
       (uVar35 | uVar43 ^ *(ulonglong *)(lVar3 + -0xbf0)) ^ uVar40;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x270) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x628)) <<
       (((byte)uVar13 ^ *(byte *)(lVar3 + -0xbf0)) & 0x3f);
  pbVar37 = (byte *)((uVar18 ^ 0xfe75eff82cd6f647) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0x8f8) = (ulonglong)pbVar37 ^ (ulonglong)DAT_1826715b8;
  *(ulonglong *)(lVar4 + -0x318) =
       (CONCAT44(uVar8,uVar27) ^ 0xaa3ced2389b99d1d) >> (((byte)uVar10 ^ 0xda) & 0x3f);
  bVar15 = (byte)DAT_182671748;
  lVar3 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0xce3) = *pbVar37 ^ (byte)DAT_182671748 ^ (byte)DAT_1826717c0;
  lVar4 = DAT_182671560;
  uVar18 = (ulonglong)(*(byte *)(lVar3 - (uVar42 ^ 0xf6642035)) ^ bVar15);
  *puVar1 = uVar18 ^ CONCAT44(DAT_182671720,DAT_182671720);
  uVar7 = DAT_182671574;
  *(byte *)(lVar4 + -0xc53) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar49 ^ 0x902fb580)) ^ uVar44) ^ (byte)DAT_1826717c0;
  uVar44 = CONCAT44(DAT_182671624,DAT_182671624);
  uVar35 = (ulonglong)DAT_182671688;
  *puVar25 = uVar18 << (((byte)uVar28 ^ 1) & 0x3f) ^ uVar44;
  uVar36 = uVar44 ^ *(ulonglong *)(lVar4 + -0xbf0) | uVar40 ^ *(ulonglong *)(lVar4 + -0x3b8);
  *(ulonglong *)(lVar4 + -0x628) = uVar36 ^ uVar22;
  bVar15 = (byte)DAT_182671730;
  pbVar37 = (byte *)((CONCAT44(uVar23,uVar8) ^ 0xc98d3672eff8fe51) + *(longlong *)(lVar4 + -3000));
  *(ulonglong *)(lVar4 + -0x5b8) = (ulonglong)pbVar37 ^ uVar35;
  uVar13 = DAT_18267162c;
  bVar16 = *pbVar37 ^ bVar15 ^ (byte)DAT_1826717c0;
  uVar35 = (ulonglong)(bVar15 ^ bVar16);
  *(byte *)(lVar4 + -0x571) = bVar16;
  uVar44 = uVar35 << (((byte)uVar11 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar4 + -0x318) = uVar44 ^ CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar4 + -0x270) = uVar35 ^ CONCAT44(uVar13,uVar13);
  bVar15 = (byte)DAT_182671714;
  *puVar1 = *(ulonglong *)(lVar4 - (uVar42 ^ 0xf6642afe)) ^ CONCAT44(uVar6,uVar7) ^ uVar22 ^
            0x708d705088ff8229;
  uVar18 = (ulonglong)_DAT_1826715e0;
  uVar22 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(DAT_182671560 - (uVar47 ^ 0x8504b58)) = (uVar36 | uVar44) ^ uVar22;
  lVar3 = DAT_182671560;
  puVar25 = (ulonglong *)(DAT_182671560 - (uVar17 ^ 0x2cd6fe9c));
  uVar35 = *(ulonglong *)(DAT_182671560 + -0x900);
  *(ulonglong *)(DAT_182671560 + -0x8f8) =
       (CONCAT44(uVar6,uVar6) ^ 0xfe75eff8fe75efdd) + *(longlong *)(DAT_182671560 + -3000) ^ uVar18;
  *(byte *)(lVar3 + -0x5a1) = *(byte *)(*puVar25 ^ uVar18) ^ bVar15 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar3 + -0xb69) = *(byte *)(uVar39 ^ uVar35) ^ (byte)DAT_1826717c0;
  uVar35 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0xf6642726)) = (*(byte *)(lVar3 + -0x5a1) ^ bVar15) ^ uVar35;
  uVar35 = (uVar35 ^ *(ulonglong *)(lVar3 + -0xbf0)) << (((byte)uVar23 ^ 0x5a) & 0x3f);
  *(ulonglong *)(lVar3 + -0x270) = uVar35 ^ CONCAT44(DAT_18267185c,DAT_18267185c);
  *puVar1 = (uVar22 ^ *(ulonglong *)(lVar3 + -0x3b8) | uVar35) ^ uVar51;
  bVar16 = (byte)DAT_1826717c0;
  uVar6 = DAT_182671744;
  uVar21 = DAT_182671744 & 0xff;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0xcf338d99)) =
       (CONCAT44(uVar8,uVar8) ^ 0xeff8fe75eff8fe53) + *(longlong *)(lVar3 + -3000) ^ uVar46;
  uVar13 = DAT_1826717a0;
  bVar14 = *(byte *)(*(ulonglong *)(lVar3 + -0xc80) ^ uVar46) ^ (byte)uVar6 ^ bVar16;
  *(byte *)(lVar3 + -0x461) = bVar14;
  uVar6 = DAT_1826716f4;
  bVar15 = (byte)DAT_182671630;
  uVar35 = (ulonglong)bVar14 ^ (ulonglong)uVar21;
  *(ulonglong *)(lVar3 + -0x628) = uVar35 ^ CONCAT44(uVar13,uVar13);
  uVar18 = (ulonglong)DAT_1826716c8;
  uVar35 = uVar35 << (((byte)uVar45 ^ 0x30) & 0x3f);
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x318) = uVar35 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar35 + (*puVar1 ^ uVar51) ^ uVar22;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0xc98d33ca)) =
       (CONCAT44(DAT_182671580,uVar50) ^ 0x89acb9b8503ebc7f) + *(longlong *)(lVar3 + -3000) ^ uVar18
  ;
  uVar13 = _DAT_18267188c;
  bVar14 = *(byte *)(*(ulonglong *)(lVar3 - (uVar49 ^ 0x902fbcb8)) ^ uVar18) ^ bVar15 ^ bVar16;
  *(byte *)(lVar3 + -0x639) = bVar14;
  uVar21 = DAT_18267180c;
  uVar6 = DAT_18267159c;
  uVar35 = (ulonglong)DAT_18267159c;
  uVar29 = DAT_18267180c & 0xff;
  *(ulonglong *)(lVar3 + -0x3b8) = (ulonglong)(bVar14 ^ bVar15) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x503ebe28)) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0xe04853b0)) ^ CONCAT44(uVar13,uVar13)) << 0x38 ^ uVar24;
  uVar18 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 + -0x270) ^ uVar24) + (uVar22 ^ *(ulonglong *)(lVar3 + -0xbf0)) ^
       uVar18;
  *(ulonglong *)(lVar3 - (uVar48 ^ 0xeff8fdd5)) = *(longlong *)(lVar3 + -0x880) + 0x20U ^ uVar34;
  uVar35 = (ulonglong)DAT_182671864;
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar26 ^ 0xfe75ec58)) ^ uVar34) =
       uVar18 ^ *(ulonglong *)(lVar3 + -0x628) ^ uVar38;
  pbVar37 = (byte *)(*(longlong *)(lVar3 + -3000) + 0x28);
  *(ulonglong *)(lVar3 + -0x8f8) = (ulonglong)pbVar37 ^ uVar35;
  *(byte *)(lVar3 - (uVar32 ^ 0xfe75eb41)) = *pbVar37 ^ (byte)uVar21 ^ bVar16;
  puVar25 = (ulonglong *)(lVar3 - (uVar17 ^ 0x2cd6ff8c));
  *puVar25 = uVar18 ^ *(ulonglong *)(lVar3 + -0x628) | uVar24 ^ *(ulonglong *)(lVar3 + -0xa88);
  uVar41 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar3 + -0x318) = (ulonglong)*(byte *)(lVar3 + -0x4b9) ^ (ulonglong)uVar29 ^ uVar41
  ;
  bVar15 = (byte)DAT_18267170c;
  pbVar37 = (byte *)((CONCAT44(uVar7,uVar6) ^ 0x69da7137e0485021) + *(longlong *)(lVar3 + -3000));
  *(ulonglong *)(lVar3 + -0x900) = (ulonglong)pbVar37 ^ (ulonglong)DAT_18267174c;
  *(ulonglong *)(lVar3 + -0xbf0) = (uVar18 ^ *(ulonglong *)(lVar3 + -0x628)) + *puVar25;
  uVar7 = DAT_182671788;
  bVar16 = *pbVar37 ^ bVar15 ^ bVar16;
  uVar18 = (ulonglong)(bVar15 ^ bVar16);
  *(byte *)(lVar3 + -0x9ca) = bVar16;
  *(ulonglong *)(lVar3 + -0x270) = uVar18 ^ CONCAT44(uVar7,uVar7);
  uVar35 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar3 + -0x1f0) =
       (CONCAT44(uVar10,uVar27) ^ 0xdc6de2afee493a30) >>
       (((byte)uVar13 ^ *(byte *)(lVar3 + -0x3b8)) & 0x3f);
  uVar7 = DAT_182671778;
  uVar18 = uVar18 << 8;
  *(ulonglong *)(lVar3 + -0xa88) = uVar18 ^ uVar35;
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar17 ^ 0x2cd6f57c)) ^ uVar41 | uVar18) ^
            CONCAT44(uVar7,uVar7);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar45) * 4) = uVar20;
  return;
}



############ FUN_ 180eba070 size=5176 ############

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

void FUN_180eba070(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte bVar21;
  byte bVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  byte *pbVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong uVar54;
  byte local_res18;
  byte local_e8;
  byte local_e0;
  byte local_c8;
  byte local_c0;
  
  uVar13 = DAT_1826715ac;
  uVar12 = DAT_1826715a8;
  uVar10 = DAT_182671594;
  uVar9 = DAT_182671590;
  uVar8 = DAT_18267158c;
  uVar7 = DAT_182671588;
  uVar6 = DAT_18267157c;
  uVar20 = DAT_18267156c;
  uVar25 = (ulonglong)DAT_1826715a8;
  uVar51 = (ulonglong)DAT_182671594;
  uVar30 = (ulonglong)DAT_18267156c;
  uVar43 = (ulonglong)DAT_182671590;
  uVar32 = (ulonglong)DAT_18267158c;
  uVar54 = (ulonglong)DAT_18267157c;
  uVar33 = (ulonglong)DAT_182671588;
  DAT_182671578 = DAT_18267156c * DAT_182671590;
  uVar29 = DAT_182671598 & DAT_182671588;
  uVar53 = DAT_18267158c * DAT_18267157c;
  uVar34 = (DAT_182671594 << 0x10 | DAT_182671594 & 0xff00) << 8 | DAT_182671594 >> 8 & 0xff00 |
           DAT_182671594 >> 0x18;
  DAT_182671570 =
       (DAT_1826715a8 << 0x10 | DAT_1826715a8 & 0xff00) << 8 | DAT_1826715a8 >> 8 & 0xff00 |
       DAT_1826715a8 >> 0x18;
  uVar18 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_1826715a8 ^ 0x8119cf3b) + (longlong)DAT_182671bd4) ^
           DAT_182671570;
  uVar19 = *(uint *)(&DAT_182611e80 + DAT_182671bd4) ^ DAT_182671594;
  uVar41 = (ulonglong)DAT_18267189c;
  uVar26 = (ulonglong)*(byte *)(DAT_182671560 - ((ulonglong)uVar34 ^ 0xf010cf1c)) ^ uVar41 & 0xff;
  uVar50 = (ulonglong)DAT_1826715ac;
  uVar23 = DAT_1826715ac << 0x10 | DAT_1826715ac >> 0x10;
  DAT_182671568 = uVar53;
  DAT_182671574 = uVar29;
  DAT_182671580 = uVar34;
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar26 ^ CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar14 = DAT_1826715bc;
  lVar2 = DAT_182671560;
  uVar40 = (ulonglong)uVar23;
  uVar46 = CONCAT44(DAT_18267178c,DAT_18267178c);
  DAT_18267159c = uVar23;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar23 ^ 0x48e00be8)) =
       uVar26 << (((byte)uVar13 ^ 200) & 0x3f) ^ uVar46;
  uVar15 = DAT_1826717a8;
  uVar47 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar26 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0x48e00e68)) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar2 + -0x548) |
       uVar46 ^ *(ulonglong *)(lVar2 + -0x3b8)) ^ uVar47;
  puVar1 = (ulonglong *)(lVar2 + -0x5c8);
  uVar28 = (ulonglong)DAT_182671764;
  *puVar1 = 0xbc9cde1febc51c51 - (uVar26 ^ *(ulonglong *)(lVar2 + -0x670));
  uVar5 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar26 = (ulonglong)DAT_182671578;
  pbVar27 = (byte *)(*(longlong *)(DAT_182671560 - (uVar26 ^ 0x475b5648)) +
                    (CONCAT44(uVar9,uVar34) ^ 0xfe75eff8f010c53b));
  *(ulonglong *)(DAT_182671560 + -0x900) = (ulonglong)pbVar27 ^ uVar28;
  bVar21 = (byte)DAT_1826717c0;
  *(byte *)(lVar2 + -0xb09) = *pbVar27 ^ (byte)uVar15 ^ bVar21;
  uVar14 = DAT_182671850;
  *(longlong *)(lVar2 + -0x898) =
       *(longlong *)(lVar2 - ((ulonglong)uVar20 ^ 0xf341958a)) + -0x3a7824878b0c1766;
  lVar3 = DAT_182671560;
  uVar44 = (ulonglong)(byte)(*(byte *)(lVar2 + -0xb09) ^ (byte)uVar15);
  puVar31 = (ulonglong *)(DAT_182671560 - (uVar50 ^ 0x8504018));
  uVar28 = (ulonglong)DAT_182671894;
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar44 ^ CONCAT44(uVar14,uVar14);
  uVar39 = (ulonglong)uVar29;
  *(byte *)(lVar3 + -0x5da) = *(byte *)(uVar28 ^ *puVar31) ^ bVar21;
  local_e0 = (byte)(uVar13 >> 0x10);
  uVar28 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x75fefbf7)) =
       uVar44 << ((local_e0 ^ 0x60) & 0x3f) ^ uVar28;
  uVar42 = DAT_182671598;
  uVar44 = (ulonglong)DAT_18267166c;
  uVar36 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar28) + (*(ulonglong *)(lVar3 + -0x638) ^ uVar47) ^
       uVar36;
  uVar14 = DAT_18267177c;
  uVar38 = (ulonglong)uVar53;
  *(ulonglong *)(lVar3 + -0xc80) =
       (CONCAT44(uVar29,uVar42) ^ 0x75fef8efffffffa8) + *(longlong *)(lVar3 + -3000) ^ uVar44;
  bVar17 = (byte)DAT_1826717c0;
  *(byte *)(lVar3 - (uVar38 ^ 0x2116e5b2)) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x8119c3b3)) ^ uVar44) ^ (byte)uVar14 ^
       bVar17;
  uVar28 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  local_c0 = (byte)uVar20;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xcf3388e1)) =
       (byte)(*(byte *)(lVar3 + -0xb49) ^ (byte)uVar14) ^ uVar28;
  uVar44 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar3 + -0x548) =
       (*(ulonglong *)(lVar3 + -0x9f8) ^ uVar28) << ((local_c0 ^ 0x7a) & 0x3f) ^ uVar44;
  lVar3 = DAT_182671560;
  uVar47 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(DAT_182671560 - (uVar54 ^ 0xcf3382a1)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar8 ^ 0x8119ca7b)) ^ uVar44) +
       (uVar36 ^ *(ulonglong *)(DAT_182671560 + -0x6b8)) ^ uVar47;
  uVar42 = DAT_1826717c8;
  uVar37 = (ulonglong)DAT_1826717c8;
  uVar28 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar3 + -0x220) =
       *(longlong *)(lVar3 + -0x880) + (CONCAT44(uVar10,uVar12) ^ 0x6dc510f08119cf39) * 8 ^ uVar28;
  uVar44 = CONCAT44(uVar42,uVar42);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x48e00e20)) = (uVar47 ^ *(ulonglong *)(lVar3 + -0x3b8)) << 0x33;
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar26 ^ 0x475b5fd0)) ^ uVar28) =
       uVar44 ^ uVar47 ^ *(ulonglong *)(lVar3 + -0x3b8);
  bVar21 = (byte)DAT_182671798;
  lVar2 = *(longlong *)(lVar3 + -3000);
  pbVar27 = (byte *)(lVar2 + 0x58);
  *(ulonglong *)(lVar3 + -0x900) = (ulonglong)pbVar27 ^ uVar41;
  *(byte *)(lVar3 + -0x54b) = *pbVar27 ^ bVar21 ^ bVar17;
  *puVar1 = (CONCAT44(uVar20,uVar13) ^ 0xd24a1e8897f64a5e) >>
            ((byte)*(undefined8 *)(lVar3 + -0x670) & 0x3f);
  uVar28 = (ulonglong)DAT_182671878;
  uVar45 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar3 + -0x898) = (*(byte *)(lVar3 + -0x54b) ^ bVar21) ^ uVar45;
  bVar21 = (byte)DAT_182671734;
  *(ulonglong *)(lVar3 + -0x8f8) = (CONCAT44(uVar8,uVar29) ^ 0x8119cf3375fef8b6) + lVar2 ^ uVar28;
  *(byte *)(lVar3 - (uVar38 ^ 0x2116e64a)) = *(byte *)(*puVar31 ^ uVar28) ^ bVar21 ^ bVar17;
  uVar11 = DAT_182671598;
  uVar4 = DAT_182671570;
  uVar28 = (ulonglong)DAT_182671598;
  uVar47 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar3 + -0x270) = (*(byte *)(lVar3 + -0x8b1) ^ bVar21) ^ uVar47;
  lVar3 = DAT_182671560;
  puVar31 = (ulonglong *)(DAT_182671560 + -0x898);
  uVar41 = (ulonglong)_DAT_1826715e0;
  uVar28 = (*(ulonglong *)(DAT_182671560 - (uVar28 ^ 0xfffffd8f)) ^ uVar47) <<
           (((byte)uVar4 ^ 0x89) & 0x3f);
  uVar47 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar28 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x318) = (uVar45 ^ *puVar31 | uVar28) ^ uVar47;
  *(ulonglong *)(lVar3 + -0xc80) =
       (CONCAT44(uVar4,uVar7) ^ 0x33cf198175fef8b5) + *(longlong *)(lVar3 + -3000) ^ uVar41;
  *(byte *)(lVar3 - (uVar38 ^ 0x2116e2e2)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar25 ^ 0x8119c3b3)) ^ uVar41) ^ (byte)uVar42 ^ bVar17;
  uVar41 = (ulonglong)*(byte *)(lVar3 - (uVar51 ^ 0x6dc51ce9)) ^ uVar37 & 0xff;
  uVar37 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar41 ^ CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar24 = DAT_1826717e4;
  lVar2 = *(longlong *)(lVar3 + -3000);
  uVar38 = (ulonglong)DAT_1826717e4;
  uVar41 = uVar41 << 0x10;
  uVar48 = CONCAT44(DAT_18267182c,DAT_18267182c);
  *(ulonglong *)(lVar3 + -0x548) = uVar41 ^ uVar37;
  uVar35 = DAT_18267159c ^ 0xa5d9c685;
  uVar28 = (ulonglong)DAT_182671808;
  *(ulonglong *)(lVar3 + -0xa0) = (*(ulonglong *)(lVar3 + -0x318) ^ uVar47 | uVar41) ^ uVar48;
  uVar42 = DAT_18267156c;
  *(ulonglong *)(lVar3 + -0x900) = lVar2 + 0x5bU ^ uVar28;
  *(uint *)(lVar3 + -0x504) = uVar35 << (((byte)uVar42 ^ 0x4a) & 0x1f);
  uVar15 = DAT_1826717dc;
  lVar3 = DAT_182671560;
  bVar21 = (byte)DAT_1826717dc;
  *(byte *)(DAT_182671560 + -0x6c1) = *(byte *)(lVar2 + 0x5bU) ^ bVar21 ^ bVar17;
  uVar28 = (ulonglong)(*(byte *)(lVar3 - ((ulonglong)uVar11 ^ 0xfffff93e)) ^ bVar21);
  uVar45 = CONCAT44(uVar24,uVar24);
  *puVar1 = uVar28 ^ CONCAT44(DAT_182671830,DAT_182671830);
  lVar3 = DAT_182671560;
  puVar31 = (ulonglong *)(DAT_182671560 - (uVar50 ^ 0x8504840));
  uVar41 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar28 << (((byte)uVar7 ^ 0xf7) & 0x3f) ^ uVar45;
  uVar48 = *(ulonglong *)(lVar3 - (uVar40 ^ 0x48e00a20)) ^ uVar45 | uVar48 ^ *puVar31;
  *(ulonglong *)(lVar3 + -0x898) = uVar48 ^ uVar41;
  bVar21 = (byte)DAT_1826717f4;
  uVar42 = DAT_182671760;
  uVar28 = (ulonglong)DAT_1826716c8;
  uVar24 = *(uint *)(lVar3 + -0x640) ^ DAT_182671760;
  *(uint *)(lVar3 + -0x874) = uVar24 >> ((byte)uVar24 & 0x1f);
  *(ulonglong *)(lVar3 + -0x4f0) = lVar2 + 0x5cU ^ uVar28;
  *(byte *)(lVar3 + -0x3f2) = *(byte *)(lVar2 + 0x5cU) ^ bVar21 ^ (byte)DAT_1826717c0;
  uVar16 = DAT_18267187c;
  uVar28 = CONCAT44(DAT_182671834,DAT_182671834);
  *(ulonglong *)(lVar3 + -0x638) = (*(byte *)(lVar3 - (uVar26 ^ 0x475b5e02)) ^ bVar21) ^ uVar28;
  uVar14 = _DAT_182671618;
  lVar3 = DAT_182671560;
  uVar45 = CONCAT44(uVar16,uVar16);
  local_res18 = (byte)uVar6;
  uVar41 = (ulonglong)DAT_182671674;
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0xfffff9c7)) ^ uVar28) <<
       ((local_res18 ^ 0x39) & 0x3f) ^ uVar45;
  uVar49 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x548) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x8119c6cb)) ^ uVar45 | uVar48) ^ uVar49;
  bVar21 = (byte)DAT_182671598;
  *(ulonglong *)(lVar3 + -0x100) = (CONCAT44(uVar29,uVar53) ^ 0x75fef8ef2116eea6) + lVar2 ^ uVar41;
  *(int *)(lVar3 - (uVar43 ^ 0xfe75ec30)) = *(int *)(lVar3 + -0x3d4) << ((bVar21 ^ 0xf0) & 0x1f);
  bVar21 = (byte)DAT_182671874;
  uVar11 = DAT_1826717d0;
  uVar14 = _DAT_182671610;
  uVar45 = (ulonglong)DAT_1826717d0;
  bVar22 = (byte)DAT_1826717c0;
  bVar17 = *(byte *)(uVar41 ^ *(ulonglong *)(lVar3 + -0x100)) ^ (byte)DAT_182671874 ^ bVar22;
  *(byte *)(lVar3 + -0xe1) = bVar17;
  uVar16 = DAT_1826718b0;
  uVar28 = (ulonglong)(bVar17 ^ bVar21);
  local_e8 = (byte)(uVar10 >> 0x18);
  *(ulonglong *)(lVar3 + -0x318) = uVar28 ^ CONCAT44(uVar14,uVar14);
  uVar52 = CONCAT44(uVar16,uVar16);
  *puVar1 = uVar28 << ((local_e8 ^ 0x45) & 0x3f) ^ uVar52;
  uVar41 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar3 + -0x270) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0x8119ca7b)) ^ uVar49 |
       *(ulonglong *)(lVar3 - (uVar39 ^ 0x75fefd27)) ^ uVar52) ^ uVar41;
  *(ulonglong *)(lVar3 - (uVar54 ^ 0xcf338bf9)) =
       (CONCAT44(uVar10,DAT_182671570) ^ 0x6dc510f033cf19df) + *(longlong *)(lVar3 + -3000) ^ uVar38
  ;
  bVar21 = *(byte *)(*(ulonglong *)(lVar3 + -0xae0) ^ uVar38) ^ (byte)uVar11 ^ bVar22;
  *(byte *)(lVar3 + -0xd81) = bVar21;
  uVar48 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar34 ^ 0xf010c5cd)) =
       (ulonglong)bVar21 ^ uVar45 & 0xff ^ uVar48;
  uVar24 = DAT_18267183c;
  lVar3 = DAT_182671560;
  uVar28 = (ulonglong)DAT_18267183c;
  uVar38 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *(ulonglong *)(DAT_182671560 - (uVar50 ^ 0x8504ed8)) =
       (*(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x8119cf93)) ^ uVar48) <<
       (((byte)DAT_182671598 ^ 0xcf) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xfe75e760)) =
       (*(ulonglong *)(lVar3 - (uVar51 ^ 0x6dc51280)) ^ uVar41) +
       (*(ulonglong *)(lVar3 + -0x638) ^ uVar38) ^ uVar41;
  *(uint *)(lVar3 - (uVar26 ^ 0x475b5eb4)) = *(uint *)(lVar3 + -0x274) | 0x2e225670;
  bVar21 = (byte)DAT_18267173c;
  lVar2 = *(longlong *)(lVar3 - (uVar40 ^ 0x48e003e8));
  *(undefined8 *)(lVar3 + -0x9f8) = 0x4be43b38670d9ee2;
  pbVar27 = (byte *)(lVar2 + 0x5f);
  *(ulonglong *)(lVar3 + -0x1f8) = (ulonglong)pbVar27 ^ uVar28;
  uVar14 = DAT_182671840;
  bVar22 = *pbVar27 ^ bVar21 ^ bVar22;
  *(byte *)(lVar3 + -0x641) = bVar22;
  lVar2 = DAT_182671560;
  uVar38 = (ulonglong)(bVar22 ^ bVar21);
  uVar28 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar45 = uVar38 << 0x38;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar38 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x548) = uVar45 ^ uVar28;
  uVar15 = _DAT_18267188c;
  uVar14 = DAT_1826715b0;
  uVar28 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *puVar31 = uVar45 + (uVar41 ^ *(ulonglong *)(lVar2 + -0x898)) ^ uVar28;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (CONCAT44(uVar4,uVar34) ^ 0x8819b4944a4ce428) >> (((byte)uVar14 ^ 0x5b) & 0x3f);
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar32 ^ 0x8119c7b3)) +
            (CONCAT44(uVar7,uVar6) ^ 0x75fef8efcf338112) * 8);
  *(ulonglong *)(lVar2 + -0x7b8) = (ulonglong)puVar31 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671630;
  *puVar31 = *(ulonglong *)(lVar2 - (uVar30 ^ 0xf34190e2)) ^ uVar28 ^ uVar44;
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x438) =
       *(longlong *)(lVar2 - (uVar50 ^ 0x8504d40)) +
       (CONCAT44(uVar9,uVar9) ^ 0xfe75eff8fe75eff8) * 8 ^ uVar32;
  uVar16 = DAT_1826718bc;
  *(ulonglong *)(lVar2 + -0x880) =
       *(longlong *)(lVar2 + -0xb98) + (CONCAT44(uVar12,uVar9) ^ 0x8119cf33fe75eff8) * 8 ^
       CONCAT44(uVar42,uVar42);
  uVar15 = DAT_182671864;
  uVar45 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0x638) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar50 ^ 0x8504cd8)) ^ uVar32) ^ uVar45 ^ uVar44;
  *(undefined8 *)(*(ulonglong *)(lVar2 - (uVar39 ^ 0x75fefb87)) ^ CONCAT44(uVar11,uVar11)) =
       0xd01bf1db7e0cf739;
  uVar28 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x475b59a0)) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x438)) + 8 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x9f8) =
       (CONCAT44(uVar4,DAT_182671598) ^ 0xa1314ab7ee6269d6) +
       (CONCAT44(uVar20,uVar23) ^ 0x3c8dcba9755b73db);
  *(ulonglong *)(lVar2 + -0x318) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x450) ^ uVar28) ^ uVar44 ^ uVar47;
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar43 ^ 0xfe75e7c8)) ^ CONCAT44(uVar15,uVar15)) =
       CONCAT44(uVar53,uVar7) ^ 0x88654852a3310099;
  uVar15 = DAT_1826717b0;
  *(ulonglong *)(lVar2 + -0x548) =
       CONCAT44(uVar6,uVar5) ^ 0xa2630342e97e8618 | uVar45 ^ *(ulonglong *)(lVar2 + -0x638);
  puVar31 = (ulonglong *)
            ((uVar32 ^ *(ulonglong *)(lVar2 + -0x438)) +
            (CONCAT44(uVar34,DAT_1826715a4) ^ 0xf010c56deff8fe77) * 8);
  uVar38 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar2 + -0x368) = (ulonglong)puVar31 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x898) = *puVar31 ^ uVar38 ^ uVar44;
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0x5f8) ^ uVar37) =
       CONCAT44(uVar20,uVar14) ^ 0xb63edd205d43ffae;
  puVar31 = (ulonglong *)
            ((uVar32 ^ *(ulonglong *)(lVar2 + -0x438)) +
            (CONCAT44(uVar10,uVar7) ^ 0x6dc510f075fef8ec) * 8);
  uVar50 = (ulonglong)DAT_182671584;
  uVar41 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar2 + -0x830) = (ulonglong)puVar31 ^ uVar28;
  *(ulonglong *)(lVar2 - (uVar50 ^ 0x10150a70)) = *puVar31 ^ uVar41 ^ uVar44;
  uVar20 = DAT_182671570;
  uVar50 = CONCAT44(uVar4,DAT_182671570);
  *(undefined8 *)(CONCAT44(_DAT_1826715d8,_DAT_1826715d8) ^ *(ulonglong *)(lVar2 + -0xd60)) =
       0xc8f16220ef872b2c;
  uVar37 = (uVar50 ^ 0xccc07accc9d24049) + (*(ulonglong *)(lVar2 + -0x318) ^ uVar47);
  *(ulonglong *)(lVar2 + -0x610) = uVar37 ^ uVar46;
  *(ulonglong *)(lVar2 + -0x3f0) =
       (CONCAT44(uVar8,uVar13) ^ 0xba0cc5dd658f10ac) + (uVar36 ^ *(ulonglong *)(lVar2 + -0x6b8));
  uVar42 = DAT_1826715b4 ^ 0x3e0a8dba;
  uVar50 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0x75fefed7)) ^ uVar45) +
           (CONCAT44(DAT_1826715b4,uVar20) ^ 0x170022a2b70469b3);
  *(ulonglong *)(lVar2 + -0x9f8) = uVar50 ^ CONCAT44(DAT_182671814,DAT_182671814);
  uVar15 = DAT_1826716ec;
  local_c8 = (byte)uVar53;
  *(ulonglong *)(lVar2 + -0x400) = uVar52 ^ *puVar1 ^ *(ulonglong *)(lVar2 + -0x670);
  uVar14 = DAT_1826716a8;
  uVar47 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x548) = uVar50 + uVar37 ^ uVar47;
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar20 = DAT_182671578 ^ 0x9e7bdc2c;
  *(ulonglong *)(lVar2 + -0x110) = uVar37 << ((local_c8 ^ 0xf5) & 0x3f) ^ uVar28;
  uVar14 = DAT_182671640;
  *(uint *)(lVar2 + -0x774) = uVar42 + uVar20;
  uVar50 = CONCAT44(uVar14,uVar14);
  uVar39 = CONCAT44(uVar24,uVar24);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x75feffa7)) =
       ((uVar37 ^ uVar46) >> 0x20 ^ (ulonglong)DAT_18267178c) >> 0x12 ^ uVar50;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar30 ^ 0xf341970a)) ^ uVar50 |
           uVar28 ^ *(ulonglong *)(lVar2 + -0x110)) ^ uVar39;
  uVar50 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar2 + -0x318) = uVar28;
  uVar14 = DAT_182671658;
  *(ulonglong *)(lVar2 + -0x6b8) =
       uVar50 ^ uVar47 ^ uVar28 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x548);
  uVar15 = DAT_1826716dc;
  uVar50 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x8119ccc3)) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x475b5f80)) ^ uVar41) +
       (CONCAT44(uVar29,uVar10) ^ 0x87b2ab3db435bf7) ^ uVar50;
  uVar26 = (CONCAT44(uVar8,uVar9) ^ 0xa88a9a9b39b699df) + (uVar38 ^ *(ulonglong *)(lVar2 + -0x898));
  *(ulonglong *)(lVar2 + -0x638) = uVar26 ^ CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(lVar2 + -0x670) = *(ulonglong *)(uVar32 ^ *(ulonglong *)(lVar2 + -0x438)) ^ uVar44;
  *puVar1 = (*(ulonglong *)(lVar2 - (uVar51 ^ 0x6dc51300)) ^ uVar50) + uVar26 ^
            CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar19 * 4) = uVar18;
  return;
}



############ FUN_ 180edf290 size=3173 ############

void FUN_180edf290(void)

{
  ulonglong *puVar1;
  longlong *plVar2;
  ulonglong *puVar3;
  undefined8 *puVar4;
  byte *pbVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  ulonglong *puVar9;
  ulonglong *puVar10;
  ulonglong *puVar11;
  longlong lVar12;
  longlong lVar13;
  longlong lVar14;
  longlong lVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  byte *pbVar26;
  byte bVar27;
  byte *pbVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  undefined1 *puVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  longlong *plVar36;
  ulonglong uVar37;
  byte bVar38;
  longlong *plVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  ulonglong uVar43;
  
  uVar22 = DAT_1826715b0;
  uVar21 = DAT_182671598;
  uVar17 = DAT_182671580;
  uVar16 = DAT_18267157c;
  lVar13 = DAT_182671560;
  uVar32 = (ulonglong)DAT_182671580;
  uVar23 = DAT_1826715a4 & 3;
  if (uVar23 < 2) {
    uVar29 = DAT_1826715b0;
    if (uVar23 == 0) {
      uVar29 = DAT_1826715a4;
    }
  }
  else {
    uVar29 = DAT_182671580;
    if (uVar23 < 3) {
      uVar29 = DAT_18267157c;
    }
  }
  uVar24 = *(uint *)(&DAT_182611e78 + DAT_182671954) ^ DAT_1826715b0;
  uVar25 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_18267157c ^ 0x1c022a10) + (longlong)DAT_182671954) ^
           DAT_1826715a4;
  uVar37 = (ulonglong)DAT_1826715b0;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x80);
  pbVar28 = (byte *)(DAT_182671560 + -0x5e9);
  DAT_182671570 = uVar29;
  *(ulonglong *)(DAT_182671560 + -0x548) = *puVar1 + *(longlong *)(DAT_182671560 + -0x628);
  puVar10 = (ulonglong *)
            (*(longlong *)(lVar13 - ((ulonglong)uVar21 ^ 0x9e862250)) +
            (CONCAT44(uVar17,uVar29) ^ 0xc4fcfff8fed97f59) * 8);
  *(ulonglong **)(lVar13 + -0x4a0) = puVar10;
  *(ulonglong *)(lVar13 + -0xa60) = (CONCAT44(uVar21,uVar17) ^ 0x16bcdcf68330f) << 0xd;
  uVar41 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *puVar10 = *(ulonglong *)(lVar13 - ((ulonglong)uVar16 ^ 0x1c022f48)) ^ uVar41;
  puVar10 = (ulonglong *)(lVar13 + -0x110);
  plVar2 = (longlong *)(lVar13 + 0x30);
  *(ulonglong *)(lVar13 + -0x60) =
       (CONCAT44(uVar29,uVar22) ^ 0xfed97f5c06079020) + *(longlong *)(lVar13 + 0x30);
  uVar18 = DAT_1826715a4;
  puVar3 = (ulonglong *)(lVar13 + -0x2a0);
  uVar31 = (ulonglong)DAT_1826715a4;
  *puVar3 = *puVar1 >> (((byte)uVar17 ^ 0xc1) & 0x3f);
  *pbVar28 = **(byte **)(lVar13 - (uVar31 ^ 0xfed97f3c));
  uVar31 = (ulonglong)DAT_18267157c;
  puVar34 = (ulonglong *)(lVar13 + -0x688);
  *puVar34 = *puVar10 << (((byte)uVar21 ^ 0xf1) & 0x3f);
  lVar12 = DAT_182671560;
  puVar4 = (undefined8 *)(DAT_182671560 + -0x170);
  pbVar5 = (byte *)(DAT_182671560 + -0x209);
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (ulonglong)*(byte *)(DAT_182671560 - (uVar31 ^ 0x1c022fe9));
  pbVar26 = (byte *)(*(longlong *)((uVar37 ^ 0x6079020) + lVar12) + 0x31);
  *puVar4 = pbVar26;
  uVar31 = (ulonglong)DAT_18267157c;
  *pbVar5 = *pbVar26;
  uVar23 = DAT_182671588;
  *(ulonglong *)(lVar12 - (uVar31 ^ 0x1c0223f8)) =
       CONCAT44(uVar18,uVar17) ^ 0x36ccf06f0cf70653 | CONCAT44(uVar29,uVar22) ^ 0x95f8218a4d044eb7;
  puVar6 = (ulonglong *)(lVar12 + -0x800);
  bVar42 = *pbVar5;
  *puVar6 = (ulonglong)bVar42;
  *(ulonglong *)(lVar12 + -0xa88) = CONCAT44(uVar21,uVar17) << 0x27 ^ 0x3ce1a00000000000;
  uVar22 = DAT_18267159c;
  uVar37 = (ulonglong)DAT_18267159c;
  puVar7 = (ulonglong *)(lVar12 + -0x318);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar18 ^ 0xfed97c44)) =
       (ulonglong)bVar42 << (((byte)uVar21 ^ 0xd8) & 0x3f);
  uVar31 = *(ulonglong *)(lVar12 + -0x5c8);
  *(ulonglong *)(lVar12 + -0x670) = *puVar7 | uVar31;
  uVar29 = uVar22;
  if ((DAT_18267157c & 1) == 0) {
    uVar29 = DAT_18267157c;
  }
  pbVar26 = (byte *)((CONCAT44(uVar16,uVar23) ^ 0x1c022a00fdffffcb) + *plVar2);
  DAT_1826715b4 = uVar29;
  *(byte **)(lVar12 + -0xa20) = pbVar26;
  lVar14 = DAT_182671560;
  uVar40 = (ulonglong)uVar29;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar29 ^ 0x1c022c70)) + *puVar7;
  *pbVar28 = *pbVar26;
  uVar16 = DAT_18267157c;
  puVar8 = (ulonglong *)(lVar14 + -0xbf0);
  *(ulonglong *)(lVar14 - ((ulonglong)uVar23 ^ 0xfdfff9f9)) =
       *(ulonglong *)(lVar14 - ((ulonglong)uVar22 ^ 0xd9892f10)) | uVar31;
  puVar9 = (ulonglong *)(lVar14 + -0x898);
  bVar42 = *pbVar28;
  uVar31 = *(ulonglong *)(lVar14 + -0x670);
  *puVar9 = (ulonglong)bVar42;
  *puVar8 = CONCAT44(uVar29,uVar16) ^ uVar31 ^ 0x182ecc6299f14d6b;
  uVar18 = DAT_182671584;
  bVar38 = (byte)uVar22;
  uVar35 = (ulonglong)bVar42 << ((bVar38 ^ 200) & 0x3f);
  DAT_182671590 = DAT_182671580 - DAT_182671584;
  lVar12 = *plVar2;
  *(ulonglong *)(lVar14 + -0x610) = uVar35;
  *(undefined8 *)(lVar13 + -0x60) = (byte *)(lVar12 + 0x33);
  *(ulonglong *)(lVar14 + -0x6d0) = uVar35 | uVar31;
  *pbVar5 = *(byte *)(lVar12 + 0x33);
  uVar19 = DAT_1826715a8;
  uVar16 = DAT_18267156c;
  uVar43 = (ulonglong)DAT_1826715a8;
  uVar31 = (ulonglong)*(byte *)(lVar14 - (uVar32 ^ 0xc4fcfdf1));
  *(ulonglong *)(lVar14 + -0x8a8) = uVar31;
  uVar30 = uVar16 | uVar19;
  DAT_18267158c = uVar30;
  *(ulonglong *)(lVar14 - ((ulonglong)uVar30 ^ 0xdefff946)) =
       uVar31 << (((byte)uVar19 ^ 0xf6) & 0x3f);
  uVar20 = DAT_182671590;
  lVar12 = DAT_182671560;
  uVar35 = (ulonglong)DAT_182671590;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x4cefd158)) =
       *(ulonglong *)(DAT_182671560 - (uVar35 ^ 0x95bf239a)) |
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar18 ^ 0x2f3ddc16));
  pbVar26 = (byte *)(*(longlong *)(((ulonglong)uVar20 ^ 0x95bf257a) + lVar12) + 0x34);
  *puVar4 = pbVar26;
  bVar42 = *pbVar26;
  *pbVar28 = bVar42;
  *(ulonglong *)(lVar12 - (uVar43 ^ 0x96bf3dae)) = (ulonglong)bVar42;
  uVar31 = *(longlong *)(lVar12 + -0x240) << (((byte)uVar18 ^ 0x8e) & 0x3f);
  *(ulonglong *)(lVar12 + -0x638) = uVar31;
  *(ulonglong *)(lVar12 - (uVar35 ^ 0x95bf205a)) = uVar31 | *(ulonglong *)(lVar12 + -0xa0);
  *(ulonglong *)(lVar12 + -0xc08) =
       (CONCAT44(uVar30,uVar18) ^ 0x187feb21312c576a) - *(longlong *)(lVar12 + -0xa88);
  plVar36 = (longlong *)(lVar12 - ((ulonglong)uVar16 ^ 0x4cefdbd8));
  *plVar36 = (CONCAT44(uVar29,uVar19) ^ 0x1c022a0096bf3fdb) + *plVar2;
  bVar42 = **(byte **)(lVar12 + -0xa20);
  *(ulonglong *)(lVar12 + -0x628) = (ulonglong)bVar42;
  uVar19 = DAT_182671588;
  *pbVar5 = bVar42;
  lVar12 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0x4cefdb98)) =
       (ulonglong)bVar42 << (((byte)uVar19 ^ 0xd1) & 0x3f);
  uVar31 = *(ulonglong *)(lVar12 + -0xa60) | *(ulonglong *)(lVar12 + -0x510);
  *puVar1 = uVar31;
  *puVar3 = uVar31 ^ 0x252dded28810127a;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0xfdfff5d9)) =
       (CONCAT44(uVar16,DAT_18267157c) ^ 0x4cefd1f81c022a36) + *plVar2;
  plVar39 = (longlong *)(DAT_182671560 - ((ulonglong)uVar20 ^ 0x95bf2f6a));
  *(undefined1 *)(DAT_182671560 - (uVar37 ^ 0xd9892f31)) = *(undefined1 *)*plVar39;
  bVar27 = (byte)DAT_18267157c;
  bVar42 = *pbVar28;
  *puVar10 = (ulonglong)bVar42;
  *puVar34 = (ulonglong)bVar42 << ((bVar27 ^ 0x30) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar18 ^ 0x2f3ddc26)) + *puVar1;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar30 ^ 0xdefff5de)) =
       (CONCAT44(uVar29,uVar22) ^ 0x1c022a00d9892aef) + *plVar2;
  lVar12 = DAT_182671560;
  bVar42 = **(byte **)(DAT_182671560 + -0xa20);
  *pbVar5 = bVar42;
  *puVar6 = (ulonglong)bVar42;
  *(ulonglong *)(lVar12 + -0x1d8) = 0x353f96bfeb55fb25 >> (((byte)uVar18 ^ 0x97) & 0x3f);
  lVar14 = DAT_182671560;
  *puVar7 = *(longlong *)(lVar12 - ((ulonglong)uVar30 ^ 0xdefff7fe)) << ((byte)uVar16 & 0x3f);
  uVar32 = *(longlong *)(lVar14 - (uVar32 ^ 0xc4fcfce0)) + *(longlong *)(lVar14 + -0x9f8);
  *(ulonglong *)(lVar14 + -0x5c8) = uVar32;
  lVar15 = DAT_182671560;
  puVar11 = (ulonglong *)
            (*(longlong *)(lVar14 - (uVar37 ^ 0xd9892258)) +
            (CONCAT44(uVar23,uVar29) ^ 0xfdfffff91c022a06) * 8);
  *(ulonglong **)(DAT_182671560 + -0xcc8) = puVar11;
  *puVar11 = uVar32 ^ uVar41;
  lVar12 = *plVar2;
  *(ulonglong *)(lVar15 + -0xa20) = (CONCAT44(uVar30,DAT_18267157c) ^ 0xdefffffe1c022a38) + lVar12;
  bVar42 = *(byte *)*plVar36;
  *(ulonglong *)(lVar15 + -0x600) = (ulonglong)bVar42;
  *pbVar28 = bVar42;
  lVar14 = DAT_182671560;
  *puVar8 = (CONCAT44(uVar16,DAT_182671570) ^ 0x76ef0d2580eb9707) +
            *(longlong *)(lVar15 - (uVar43 ^ 0x96bf3cf6));
  *(longlong *)(lVar14 - ((ulonglong)uVar18 ^ 0x2f3dd08e)) = lVar12 + 0x39;
  bVar42 = **(byte **)(lVar14 + -0xa20);
  uVar32 = *(ulonglong *)(lVar14 + -0x5c8);
  *pbVar5 = bVar42;
  uVar31 = *(ulonglong *)(lVar14 + -0x600);
  *puVar9 = uVar32 >> 0x1a;
  *(ulonglong *)(lVar14 + -0x610) = *(ulonglong *)(lVar14 + -0x9f8) >> ((byte)uVar31 & 0x3f);
  lVar12 = DAT_182671560;
  *(ulonglong *)(lVar14 + -0x670) = (ulonglong)bVar42;
  uVar37 = (ulonglong)DAT_1826715a4;
  uVar43 = CONCAT44(uVar30,DAT_1826715a4);
  uVar32 = (ulonglong)bVar42 << ((bVar38 ^ 0xd0) & 0x3f);
  bVar42 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar12 + -0x8a8) = uVar32;
  *(ulonglong *)(lVar12 + -0x6d0) = uVar32 | uVar31;
  *(ulonglong *)(lVar12 + -0x6b8) = *(ulonglong *)(lVar12 + -0x1d8) >> ((bVar42 ^ 0x79) & 0x3f);
  *plVar39 = (CONCAT44(uVar17,DAT_1826715b0) ^ 0xc4fcfff80607902a) +
             *(longlong *)(((ulonglong)DAT_18267157c ^ 0x1c022a30) + lVar12);
  uVar35 = (ulonglong)DAT_182671588;
  *(uint *)(lVar12 + -0x274) = 0x552ea547 >> ((byte)*(undefined4 *)(lVar12 + -0x754) & 0x1f);
  *(undefined1 *)(lVar12 - (uVar35 ^ 0xfdfffa10)) = **(undefined1 **)(lVar12 + -0xa20);
  *(ulonglong *)(lVar12 - (uVar40 ^ 0x1c022840)) =
       (ulonglong)*(byte *)(lVar12 - ((ulonglong)uVar18 ^ 0x2f3ddf47));
  uVar32 = CONCAT44(uVar29,DAT_182671598);
  *(longlong *)(lVar12 + -0xa0) = *(longlong *)(lVar12 + -0x240) << (((byte)uVar29 ^ 0x10) & 0x3f);
  *(undefined8 *)(lVar12 - (uVar40 ^ 0x1c022c38)) = 0x7bbbfb56dffbaddb;
  *(ulonglong *)(lVar12 + -0xc08) =
       *(ulonglong *)(lVar12 - ((ulonglong)DAT_1826715ac ^ 0xe0ff6b24)) |
       *(ulonglong *)(lVar12 + -0xa0);
  puVar33 = (undefined1 *)((uVar32 ^ 0x1c022a009e862aeb) + *plVar2);
  uVar32 = (ulonglong)DAT_182671570;
  *(undefined1 **)(lVar12 + -0xa20) = puVar33;
  *(undefined1 *)(lVar12 - (uVar32 ^ 0xfed97d55)) = *puVar33;
  lVar14 = DAT_182671560;
  *(ulonglong *)(lVar12 + -0xa88) = (ulonglong)*pbVar5;
  uVar32 = *(ulonglong *)(lVar14 + -0xc08);
  *(longlong *)(lVar12 + -0x628) =
       *(longlong *)(lVar12 - ((ulonglong)DAT_182671568 ^ 0x1268673)) <<
       (((byte)uVar30 ^ 0xf5) & 0x3f);
  uVar41 = (ulonglong)DAT_182671574;
  uVar31 = *(longlong *)(lVar14 - (uVar41 ^ 0x35456036)) << 0x18;
  *(ulonglong *)(lVar14 + -0xa60) = uVar32 | 0x54617515ed3cd7ae;
  *(ulonglong *)(lVar14 + -0x510) = uVar31;
  *(ulonglong *)(lVar14 - (uVar37 ^ 0xfed97dfc)) = uVar32 | uVar31;
  *(ulonglong *)(lVar14 + -0xa20) = (CONCAT44(uVar16,DAT_182671578) ^ 0x4cefd1f8f1f2013c) + *plVar2;
  *(undefined1 *)(lVar14 - (uVar40 ^ 0x1c022fe9)) =
       **(undefined1 **)(lVar14 - (uVar41 ^ 0x35456ade));
  bVar42 = **(byte **)(lVar14 + -0xa20);
  *pbVar5 = bVar42;
  *(ulonglong *)(lVar14 - (uVar35 ^ 0xfdfffee9)) = (ulonglong)bVar42;
  *(ulonglong *)(lVar14 - ((ulonglong)DAT_1826715a0 ^ 0x3d13ae89)) =
       *puVar10 << ((bVar38 ^ 0xf8) & 0x3f);
  uVar32 = *puVar3;
  uVar31 = *puVar1;
  *puVar34 = uVar32 | uVar31;
  *pbVar28 = *(byte *)*puVar4;
  pbVar28 = (byte *)((uVar43 ^ 0xdefffffefed97f61) + *plVar2);
  *(undefined8 *)(lVar13 + -0x60) = pbVar28;
  uVar16 = DAT_18267157c;
  *pbVar5 = *pbVar28;
  bVar42 = *pbVar5;
  *puVar6 = CONCAT44(uVar21,uVar16) ^ 0xa6613efff4456bc5 | *puVar10;
  bVar27 = (byte)DAT_182671594;
  *puVar7 = (ulonglong)bVar42;
  uVar37 = (ulonglong)bVar42 << ((bVar27 ^ 0x25) & 0x3f);
  *puVar8 = uVar37;
  *puVar9 = uVar37 | uVar32 | uVar31;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar25 * 4) = uVar24;
  return;
}



############ FUN_ 180e4f810 size=5264 ############

void FUN_180e4f810(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  longlong *plVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  uint uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte local_e0;
  byte local_c8;
  byte local_a0;
  
  uVar6 = DAT_1826717c0;
  uVar11 = DAT_182671748;
  uVar10 = DAT_182671670;
  uVar13 = DAT_182671580;
  uVar42 = (ulonglong)DAT_182671580;
  uVar18 = ~DAT_182671580;
  uVar25 = (ulonglong)uVar18;
  uVar19 = DAT_182671840 + DAT_182671748;
  uVar27 = DAT_182671674 ^ DAT_1826717b4;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671a94);
  uVar22 = *(uint *)(&DAT_182611e78 + DAT_182671a94) ^ DAT_182671580;
  uVar49 = CONCAT44(DAT_182671880,DAT_182671880);
  DAT_18267156c = uVar18;
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x8fddd707)) =
       (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x8fddde97)) ^ uVar49) >>
       (((byte)uVar18 ^ 0x98) & 0x3f);
  lVar2 = DAT_182671560;
  uVar12 = (DAT_1826717c0 ^ DAT_182671760) & 0xff;
  DAT_182671784 = (((DAT_1826717c0 ^ DAT_182671760) << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar43 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar33 = CONCAT44(DAT_182671784,DAT_182671784);
  puVar23 = (ulonglong *)(DAT_182671560 - (uVar42 ^ 0x70222380));
  local_c8 = (byte)uVar13;
  *puVar23 = CONCAT44(uVar10,uVar10) ^ uVar33 ^ uVar43 ^ *(ulonglong *)(DAT_182671560 + -0x898) ^
             *(ulonglong *)(DAT_182671560 + -0x628);
  *(ulonglong *)(lVar2 + -0x9e8) =
       (uVar49 ^ *(ulonglong *)(lVar2 + -0x318)) << ((local_c8 ^ 0x60) & 0x3f);
  uVar13 = DAT_182671760 & 0xff;
  DAT_182671760 = ((DAT_182671760 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar36 = CONCAT44(DAT_182671760,DAT_182671760);
  uVar34 = (uVar33 ^ *puVar23) >> (((byte)DAT_182671590 ^ 0xcb) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar34 ^ uVar36;
  uVar13 = DAT_182671568;
  uVar12 = DAT_1826717c0 & 0xff;
  DAT_1826717c0 = ((DAT_1826717c0 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar35 = (ulonglong)DAT_1826717c0;
  uVar40 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar24 = (uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) << (((byte)uVar18 ^ 0x83) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar24 ^ uVar40;
  uVar4 = DAT_1826715ac;
  uVar12 = DAT_182671674 & 0xff;
  DAT_182671674 = ((DAT_182671674 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar20 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar21 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(DAT_182671560 + -0x628) = (uVar24 | uVar34) ^ uVar20;
  uVar10 = DAT_18267185c;
  lVar2 = DAT_182671560;
  uVar12 = DAT_1826717b4 & 0xff;
  DAT_1826717b4 = ((DAT_1826717b4 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar26 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar43 ^ *(ulonglong *)(DAT_182671560 + -0x898)) -
       (*(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xe66a5c70)) ^ uVar20) ^ uVar26;
  uVar12 = uVar27 & 0xff;
  uVar24 = *(ulonglong *)(lVar2 - (uVar42 ^ 0x702224c8)) ^ CONCAT44(uVar10,uVar10) ^ uVar40 ^ uVar49
           ^ *(ulonglong *)(lVar2 + -0x318);
  uVar34 = (uVar40 ^ uVar24) << 7;
  DAT_1826716b0 = ((uVar27 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar24;
  uVar30 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar24 = (uVar24 >> 0x20 ^ uVar35) >> 0x19;
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar24 ^ uVar30;
  lVar2 = DAT_182671560;
  uVar12 = DAT_182671604 + DAT_18267170c & 0xff;
  DAT_1826718a4 = (((DAT_182671604 + DAT_18267170c) * 0x100 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar44 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar12 = DAT_182671604 & 0xff;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar34 ^ uVar44;
  DAT_182671604 = ((DAT_182671604 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar37 = CONCAT44(DAT_182671604,DAT_182671604);
  uVar34 = uVar34 | uVar24;
  uVar14 = DAT_182671840 & 0xff;
  uVar46 = DAT_182671840 << 8;
  *(ulonglong *)(lVar2 + -0x898) = uVar34 ^ uVar37;
  uVar27 = DAT_182671590;
  uVar12 = DAT_182671568;
  DAT_182671840 = ((uVar46 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar24 = (ulonglong)DAT_182671840;
  uVar29 = CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0xde2b347)) =
       (uVar49 ^ *(ulonglong *)(lVar2 + -0x318)) - uVar34 ^ uVar29;
  uVar15 = DAT_18267170c & 0xff;
  DAT_18267170c = ((DAT_18267170c << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar31 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar48 = (ulonglong)DAT_182671578;
  puVar45 = (ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xde2bc17));
  uVar34 = uVar31 ^ uVar37 ^ uVar26 ^ *puVar45 ^ *(ulonglong *)(lVar2 + -0x898);
  puVar38 = (ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x702321d0));
  *(ulonglong *)(lVar2 + -0x2a0) = uVar34;
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar31 ^ *puVar38) >> (((byte)DAT_182671578 ^ 0xf0) & 0x3f) ^ uVar20;
  *(uint *)(lVar2 + -0x910) =
       *(int *)(lVar2 - ((ulonglong)DAT_182671570 ^ 0x33a18a1f)) - (uVar4 ^ 0xc6fe77ca);
  uVar5 = DAT_1826715b4;
  uVar15 = DAT_182671588;
  uVar27 = DAT_18267157c;
  uVar16 = DAT_182671748 & 0xff;
  DAT_182671748 = ((DAT_182671748 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar50 = CONCAT44(DAT_182671748,DAT_182671748);
  uVar35 = (uVar31 ^ uVar34) << ((local_c8 ^ 0x42) & 0x3f);
  uVar34 = CONCAT44(DAT_18267157c,DAT_182671584);
  *(ulonglong *)(lVar2 + -0x318) = uVar35 ^ uVar50;
  *(ulonglong *)(lVar2 + -0x898) = uVar35 - (uVar34 ^ 0x217ecf49ab47d3ba);
  lVar2 = DAT_182671560;
  uVar16 = uVar19 & 0xff;
  DAT_18267164c = ((uVar19 * 0x100 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar49 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xe66a58f8)) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0x886a4081)) ^ uVar20 | uVar35) ^ uVar49;
  uVar8 = DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0x8fddd467)) ^ uVar26) -
       (CONCAT44(uVar18,DAT_1826715a4) ^ 0x89364d966d9a25ac) ^ uVar30;
  *(ulonglong *)(lVar2 + -0xa88) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x69f96d85)) ^ uVar30) -
       (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar49) ^ uVar36;
  uVar5 = DAT_182671598;
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar49) - (CONCAT44(uVar8,uVar12) ^ 0x5fe14417947e1ae5) ^
       uVar37;
  uVar9 = DAT_1826715b0;
  *(ulonglong *)(lVar2 + -0x9e8) =
       uVar29 ^ uVar20 ^ *(ulonglong *)(lVar2 + -0x628) ^ uVar50 ^ *(ulonglong *)(lVar2 + -0x6b8);
  uVar34 = (ulonglong)uVar9;
  puVar47 = (ulonglong *)(lVar2 - (uVar34 ^ 0x4d678467));
  local_e0 = (byte)uVar6;
  uVar35 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x22f47094)) =
       (uVar30 ^ *puVar47) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar8 ^ 0xfe76ff8f)) ^ local_e0) & 0x3f);
  uVar19 = DAT_182671580 ^ 0x7795522e;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0x4d678517)) ^ uVar50) >> ((local_c8 ^ 0x60) & 0x3f) ^
       uVar31;
  uVar7 = DAT_1826715a8;
  uVar12 = DAT_182671574;
  lVar2 = DAT_182671560;
  puVar23 = (ulonglong *)(DAT_182671560 + -0x9e8);
  *(uint *)(DAT_182671560 + -0x910) = uVar19 * (DAT_182671574 ^ 0x9609c978);
  uVar43 = (uVar50 ^ *puVar23) << 0x30;
  *(ulonglong *)(lVar2 + -0x628) = uVar43 ^ uVar33;
  lVar3 = DAT_182671560;
  uVar35 = (ulonglong)DAT_182671584;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xe289ecb0)) ^ uVar31 | uVar43) ^ uVar30;
  uVar19 = DAT_1826715b4;
  lVar2 = DAT_182671560;
  puVar32 = (ulonglong *)(lVar3 - (uVar35 ^ 0xf21d4cb8));
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar29 ^ *puVar32) - (CONCAT44(DAT_1826715b4,DAT_18267159c) ^ 0xf30704446a47a2b4) ^ uVar40;
  lVar3 = DAT_182671560;
  local_a0 = (byte)uVar4;
  plVar41 = (longlong *)(lVar2 - ((ulonglong)uVar15 ^ 0x69f964ed));
  *plVar41 = (*puVar38 ^ uVar49) << ((local_a0 ^ 0x41) & 0x3f);
  uVar39 = (uVar40 ^ *puVar45) - (uVar30 ^ *(ulonglong *)(lVar3 + -0x898)) ^ uVar20;
  *(ulonglong *)(lVar3 + -0x628) = uVar39;
  uVar43 = CONCAT44(uVar19,DAT_182671594);
  uVar35 = (CONCAT44(uVar12,uVar4) ^ 0xc3e4d943786133b6) + (uVar30 ^ *(ulonglong *)(lVar3 + -0x898))
           ^ uVar44;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar35;
  *(ulonglong *)(lVar3 + -0x2a0) =
       uVar44 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0xa88) ^ uVar35 ^ uVar49;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (uVar43 ^ 0x8908b30a7f67bb13) >> ((local_e0 ^ *(byte *)(lVar3 + -0x9e8)) & 0x3f);
  uVar19 = DAT_182671588;
  uVar4 = DAT_182671584;
  lVar3 = DAT_182671560;
  uVar43 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x69f967bd)) ^ uVar49) >>
           (((byte)DAT_1826715a4 ^ 5) & 0x3f);
  uVar35 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar43 ^ uVar33;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0x55edcc85)) ^ uVar49) << (((byte)uVar9 ^ 0xdf) & 0x3f) ^
       uVar29;
  lVar3 = DAT_182671560;
  uVar43 = *(ulonglong *)(lVar2 - (uVar25 ^ 0x8fdddb37)) ^ uVar29 | uVar43;
  puVar23 = (ulonglong *)(DAT_182671560 + -0xa88);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar43 ^ uVar26;
  uVar39 = uVar37 ^ uVar39 ^ *(ulonglong *)(lVar3 + -0x318);
  *(ulonglong *)(lVar3 + -0x9e8) = (uVar36 ^ *puVar23) - uVar43 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar39;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar20 ^ uVar39) >> (((byte)uVar19 ^ 0x3d) & 0x3f) ^ uVar36;
  lVar2 = DAT_182671560;
  uVar35 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       (uVar20 ^ uVar39) << (((byte)uVar8 ^ 0x5f) & 0x3f) ^ uVar26;
  uVar25 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xa3f5f537)) = (uVar20 ^ uVar39) + 0x25ee47e29bc8af48;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x33a1806f)) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0x6b8) | uVar36 ^ *(ulonglong *)(lVar2 + -0x898)) ^ uVar36;
  uVar19 = DAT_18267157c;
  uVar43 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xe289eb68)) ^ uVar20) -
           (uVar36 ^ *(ulonglong *)(lVar2 + -0x318));
  *(ulonglong *)(lVar2 + -0x2a0) = uVar43 ^ uVar29;
  uVar16 = DAT_182671594;
  uVar35 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 + -0xa88) =
       (CONCAT44(uVar8,uVar5) ^ 0xc09cad69055e3ac1) << (((byte)uVar19 ^ 0x52) & 0x3f);
  uVar6 = DAT_18267158c;
  uVar25 = (ulonglong)DAT_18267158c;
  uVar35 = *(ulonglong *)(lVar2 - (uVar35 ^ 0x4d678fe7)) ^ uVar31 ^ uVar29 ^ uVar36 ^
           *(ulonglong *)(DAT_182671560 + -0x9e8);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar35;
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       (uVar31 ^ uVar35) >> (((byte)uVar5 ^ 0x86) & 0x3f) ^ uVar37;
  lVar2 = DAT_182671560;
  bVar17 = (byte)uVar6;
  uVar35 = (uVar31 ^ uVar35) << ((bVar17 ^ 0x51) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar35 ^ uVar33;
  *(ulonglong *)(lVar2 + -0xa88) = uVar35 >> ((bVar17 ^ 0x5d) & 0x3f);
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x318) = (uVar35 | uVar37 ^ *puVar32) ^ uVar36;
  *(ulonglong *)(lVar2 + -0x898) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x9e8)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0x55edcd3d)) ^ uVar36) ^ uVar44;
  puVar23 = (ulonglong *)(lVar2 - (uVar25 ^ 0x8affd5ef));
  *puVar23 = uVar43 ^ *(ulonglong *)(DAT_182671560 + -0x1f0);
  lVar2 = DAT_182671560;
  uVar28 = ~uVar9;
  uVar25 = (uVar26 ^ *(ulonglong *)(DAT_182671560 + -0x6b8)) >> (((byte)DAT_182671588 ^ 0xb) & 0x3f)
  ;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar25 ^ uVar37;
  lVar3 = DAT_182671560;
  uVar25 = (uVar26 ^ *(ulonglong *)(lVar2 + -0x6b8)) << (((byte)uVar12 ^ 0x6a) & 0x3f) | uVar25;
  DAT_182671578 = uVar28;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar25 ^ uVar50;
  lVar2 = DAT_182671560;
  uVar35 = uVar31 ^ uVar44 ^ *(ulonglong *)(lVar3 + -0x898) ^ uVar25 ^ uVar50 ^ uVar50;
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar29 ^ *(ulonglong *)(lVar3 + -0x2a0)) - uVar25 ^ uVar30;
  bVar17 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x628) = uVar35;
  uVar39 = (uVar31 ^ uVar35) >> ((bVar17 ^ 0xb) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9e8) = uVar39 ^ uVar50;
  uVar43 = (uVar31 ^ uVar35) << (((byte)uVar9 ^ 0xed) & 0x3f);
  uVar35 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar43 ^ uVar49;
  *(ulonglong *)(lVar2 + -0x628) = (uVar43 | uVar39) ^ uVar50;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x5a58ef82)) =
       *(ulonglong *)(lVar2 - (uVar48 ^ 0x7ffe7046)) ^ uVar26 | uVar25;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0x898)) - (*(ulonglong *)(lVar2 + -0x628) ^ uVar50) ^
       uVar40;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0xb2987988)) =
       uVar29 ^ uVar30 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0x318) ^ *(ulonglong *)(lVar3 + -0x1f0);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar24 << 0x14 | (ulonglong)(((uVar46 & 0xffff | uVar14) << 8 | uVar14) >> 4)) ^
       *(ulonglong *)(lVar3 + -0xa88) >> 0xc ^ uVar31;
  *puVar47 = (uVar29 ^ *(ulonglong *)(lVar3 + -0xa88)) << 0x34 ^ uVar20;
  uVar24 = (uVar31 ^ *(ulonglong *)(lVar3 + -0x9e8) | uVar20 ^ *(ulonglong *)(lVar3 + -0x898)) ^
           uVar30;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar24;
  bVar17 = (byte)uVar28;
  *(ulonglong *)(lVar3 + -0x318) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0x1f0)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0xb29875b8)) ^ uVar30) ^ uVar26;
  uVar24 = uVar44 ^ uVar30 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x2a0) ^ uVar24;
  *(ulonglong *)(lVar3 + -0xa88) = uVar24;
  *(ulonglong *)(lVar3 + -0x898) = (uVar44 ^ uVar24) >> ((bVar17 ^ 0x19) & 0x3f) ^ uVar31;
  lVar2 = DAT_182671560;
  puVar32 = (ulonglong *)(lVar3 - (uVar34 ^ 0x4d678517));
  *puVar32 = (uVar44 ^ uVar24) << ((bVar17 ^ 0x27) & 0x3f) ^ uVar37;
  uVar35 = uVar37 ^ *(ulonglong *)(lVar2 + -0x9e8) | uVar31 ^ *puVar47;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar35 ^ uVar44;
  lVar3 = DAT_182671560;
  uVar24 = (uVar40 ^ *(ulonglong *)(lVar2 + -0x2a0)) -
           (CONCAT44(uVar28,uVar28) ^ 0x65f48bef71ae7678);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar24 ^ uVar33;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       uVar24 - (*(ulonglong *)(lVar3 - (uVar34 ^ 0x4d678d0f)) ^ uVar44) ^ uVar33;
  *(uint *)(lVar2 + -0x910) = *(uint *)(lVar2 + -0x968) >> 4;
  lVar3 = DAT_182671560;
  *puVar47 = uVar35 - (CONCAT44(uVar9,uVar28) ^ 0xb7cb09b1f1b5dc4c) ^ uVar36;
  uVar5 = DAT_182671588;
  *puVar32 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x69f96335)) ^ uVar26 ^
             *(ulonglong *)(lVar2 + -0x318);
  uVar34 = (uVar50 ^ *(ulonglong *)(lVar2 + -0x9e8)) >> ((bVar17 ^ 0x21) & 0x3f);
  uVar24 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar34 ^ uVar40;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0x22f47f54)) ^ uVar50) << (((byte)uVar7 ^ 0x5f) & 0x3f) ^
       uVar29;
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar29 ^ *puVar23 | uVar34) ^ uVar49;
  uVar7 = DAT_18267159c;
  uVar15 = DAT_18267157c;
  uVar25 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0xa3f5f997)) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0x318)) - (CONCAT44(uVar9,uVar9) ^ 0xecf03697a93ab56a) ^
       uVar31;
  uVar19 = DAT_182671568;
  *puVar32 = (uVar31 ^ *(ulonglong *)(lVar3 + -0x628)) - (uVar49 ^ *(ulonglong *)(lVar3 + -0x1f0)) ^
             uVar49;
  uVar9 = DAT_1826715a4;
  uVar24 = (CONCAT44(DAT_1826715a4,uVar19) ^ 0x54b1a8049ad3be9f) +
           (uVar49 ^ *(ulonglong *)(lVar3 + -0x1f0));
  *(ulonglong *)(lVar3 + -0x6b8) = uVar24 ^ uVar37;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x70222168)) =
       uVar24 - (CONCAT44(uVar13,uVar15) ^ 0x3f89b757b0fc984f);
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0xb2987528)) =
       uVar37 ^ uVar44 ^ uVar33 ^ *(ulonglong *)(lVar3 + -0xa88) ^ *(ulonglong *)(lVar3 + -0x6b8);
  uVar35 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar24 = CONCAT44(uVar8,DAT_182671570);
  *(ulonglong *)(lVar2 + -0x2a0) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0x628)) >> (((byte)uVar12 ^ 0x45) & 0x3f) ^ uVar35;
  *plVar41 = (uVar24 ^ 0xdaa9b14e78752347) + (CONCAT44(uVar16,uVar28) ^ 0x48254e72028746ec);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar21 ^ 0xe66a5940)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x1a60b368)) ^ uVar44) <<
       ((local_c8 ^ 0x4b) & 0x3f) ^ uVar20;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xe66a5ce0)) =
       (*(ulonglong *)(lVar3 + -0x2a0) ^ uVar35 | uVar20 ^ *(ulonglong *)(lVar3 + -0x318)) ^ uVar30;
  uVar24 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar3 + -0x1f0) =
       (CONCAT44(uVar27,uVar7) ^ 0x9e9402fe80351b99) - (CONCAT44(uVar4,uVar6) ^ 0x2dbd03fee2dd3cfe);
  uVar34 = CONCAT44(uVar16,DAT_182671590);
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0xa88)) - (uVar30 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^
       uVar50;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0x886a48a9)) =
       (uVar34 ^ 0x446b968c20c4543c) <<
       ((*(byte *)(lVar3 - (uVar24 ^ 0xf21d4c28)) ^ (byte)uVar11) & 0x3f);
  uVar24 = uVar36 ^ *(ulonglong *)(lVar3 + -0x898) ^ uVar49 ^ uVar50 ^
           *(ulonglong *)(lVar3 + -0x9e8);
  *(ulonglong *)(lVar3 + -0x318) = uVar24;
  *(ulonglong *)(lVar3 + -0x1f0) = (uVar24 ^ uVar50) >> ((byte)(uVar24 ^ uVar50) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa88) = (uVar24 ^ uVar50) >> (((byte)uVar5 ^ 0x38) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x5a58e4ca)) =
       (uVar24 ^ uVar50) << (((byte)uVar9 ^ 0x3e) & 0x3f) ^ uVar36;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar18) * 4) = uVar22;
  return;
}



############ FUN_ 180ec1970 size=5130 ############

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

void FUN_180ec1970(void)

{
  int *piVar1;
  ulonglong *puVar2;
  uint uVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  ulonglong *puVar19;
  undefined1 *puVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte *pbVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_d0;
  byte local_c8;
  
  uVar7 = DAT_18267176c;
  uVar16 = DAT_1826715b0;
  uVar11 = DAT_182671588;
  uVar8 = DAT_182671578;
  lVar5 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671578;
  uVar26 = (ulonglong)DAT_18267156c;
  uVar23 = (ulonglong)DAT_1826715b0;
  uVar31 = DAT_18267156c - DAT_182671588;
  uVar32 = DAT_1826715b0 | DAT_182671578;
  uVar3 = *(uint *)(&DAT_182611e80 + DAT_182671be8);
  uVar37 = *(uint *)(&DAT_182611e78 + DAT_182671be8) ^ DAT_182671578;
  uVar24 = (ulonglong)DAT_182671588;
  uVar38 = (ulonglong)DAT_1826717a8;
  DAT_182671590 = uVar32;
  DAT_1826715ac = uVar31;
  *(ulonglong *)(DAT_182671560 + -0x270) = 0xc73c2e4f21a67016 >> (((byte)uVar31 ^ 0xf7) & 0x3f);
  bVar41 = (byte)uVar7 ^ (byte)DAT_182671764;
  uVar27 = (CONCAT44(DAT_18267164c,DAT_18267164c) ^ *(ulonglong *)(lVar5 + -0x318)) >>
           (((byte)DAT_18267156c ^ 0x39) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0x748) = uVar27;
  uVar43 = (ulonglong)uVar32;
  *(byte *)(lVar5 + -0x6d9) = bVar41 ^ (byte)uVar27;
  pbVar28 = (byte *)((CONCAT44(uVar32,uVar32) ^ 0xf7f79110f7f79110) * 0x20 +
                     (CONCAT44(uVar11,DAT_18267156c) ^ 0x1d009015fdfffe1f) +
                    *(longlong *)(lVar5 + -0x8f0));
  *(ulonglong *)(lVar5 + -0xa90) = (ulonglong)pbVar28 ^ uVar38;
  uVar7 = DAT_182671710;
  *pbVar28 = *(byte *)(lVar5 - ((ulonglong)uVar31 ^ 0xe0ff6b2d)) ^ (byte)DAT_182671694 ^
             (byte)DAT_182671764;
  uVar17 = DAT_1826715b4;
  lVar5 = DAT_182671560;
  puVar2 = (ulonglong *)
           (*(longlong *)(DAT_182671560 + -0xc18) +
           (CONCAT44(uVar31,uVar8) ^ 0xe0ff6df4f1f20102) * 8);
  uVar27 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(DAT_182671560 + -0xcc8) = (ulonglong)puVar2 ^ CONCAT44(uVar7,uVar7);
  uVar22 = uVar17 << 0x10 | uVar17 >> 0x10;
  uVar30 = (ulonglong)uVar22;
  bVar21 = (byte)(uVar17 >> 0x10);
  DAT_1826715a8 = uVar22;
  *(longlong *)(lVar5 + -0x1d8) = -0x63b9d9efaaf6d831 << ((bVar21 ^ 0xdb) & 0x3f);
  uVar38 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar25 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar17 ^ 0x3fee9d4f)) = *puVar2 ^ uVar25 ^ uVar38;
  uVar10 = DAT_1826717b4;
  bVar41 = (byte)DAT_182671690;
  uVar29 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar35 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  bVar18 = (byte)DAT_1826716ac;
  *(ulonglong *)(*(ulonglong *)(lVar5 + -0x4a0) ^ uVar29) =
       CONCAT44(uVar22,uVar22) ^ 0xca80d7be1548f7cf;
  lVar5 = DAT_182671560;
  uVar38 = (*(ulonglong *)(DAT_182671560 + -0xbf0) ^ uVar38) >> (((byte)uVar17 ^ 0x87) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar38 ^ uVar35;
  *(ulonglong *)(lVar5 + -0x3b8) = uVar38 - (CONCAT44(uVar17,uVar32) ^ 0x1eb221d1e8cb0746);
  uVar38 = (ulonglong)DAT_182671878;
  bVar36 = bVar41 ^ (byte)DAT_182671694;
  bVar41 = *(byte *)(lVar5 - ((ulonglong)uVar17 ^ 0x3fee9f57)) ^ bVar41 ^ bVar18;
  *(byte *)(lVar5 + -0x381) = bVar41;
  uVar9 = DAT_18267185c;
  *(ulonglong *)(lVar5 + -0x4d8) =
       (CONCAT44(uVar31,uVar22) ^ 0xe0ff6df496bf3ff9) + *(longlong *)(lVar5 + -0x8f0) ^ uVar38;
  uVar7 = DAT_1826717f4;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar24 ^ 0x1d0094cd)) ^ uVar38) = bVar36 ^ bVar41;
  lVar6 = DAT_182671560;
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0xfdfff4b1)) = *(longlong *)(lVar5 + -0xc18) + 0x18U ^ uVar38;
  uVar39 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  uVar42 = *(ulonglong *)(*(ulonglong *)(lVar6 + -0xab8) ^ uVar38) ^ uVar39 ^ uVar25;
  uVar38 = (ulonglong)DAT_182671814;
  *(ulonglong *)(lVar6 + -0x610) = uVar42;
  bVar41 = (byte)DAT_18267179c;
  lVar5 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x400) =
       (uVar42 ^ uVar39) >> ((byte)uVar8 & 0x3f) ^ CONCAT44(uVar9,uVar9);
  lVar6 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x5d9) =
       *(byte *)(lVar5 - (uVar30 ^ 0x96bf3bee)) ^ (byte)uVar9 ^ bVar41;
  lVar5 = DAT_182671560;
  bVar41 = bVar41 ^ (byte)DAT_182671694;
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0xfdfffb89)) =
       *(longlong *)(lVar6 - (uVar30 ^ 0x96bf371e)) + (CONCAT44(uVar16,uVar16) ^ 0x607901006079008)
       + (CONCAT44(uVar8,uVar8) ^ 0xf1f20100f1f20100) * 0x20 ^ uVar38;
  *(byte *)(*(ulonglong *)(lVar5 + -0x580) ^ uVar38) = bVar41 ^ *(byte *)(lVar5 + -0x5d9);
  uVar9 = DAT_182671790;
  *(uint *)(lVar5 + -0x274) = uVar31 ^ 0xddc5115e | uVar32 ^ 0x722acd6f;
  uVar7 = DAT_18267177c;
  lVar5 = DAT_182671560;
  puVar19 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0xc18) +
            ((CONCAT44(uVar11,uVar11) ^ 0x1d0090151d009016) +
            (CONCAT44(uVar22,uVar16) ^ 0x96bf3fee06079010) * 4) * 8);
  local_c8 = (byte)uVar32;
  *(ulonglong *)(DAT_182671560 + -0x220) = (ulonglong)puVar19 ^ CONCAT44(uVar9,uVar9);
  uVar39 = CONCAT44(uVar7,uVar7);
  bVar18 = (byte)DAT_182671788 ^ bVar18;
  puVar2 = (ulonglong *)(lVar5 + -0x670);
  uVar38 = *puVar19 ^ uVar39 ^ uVar25;
  uVar39 = (uVar39 ^ uVar38) >> ((local_c8 ^ 0x18) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar5 + -0x2a0) = uVar38;
  uVar38 = (ulonglong)DAT_182671708;
  *(byte *)(lVar5 + -0x3d6) = bVar18 ^ (byte)uVar39;
  *puVar2 = uVar39;
  *(ulonglong *)(lVar5 + -0x510) =
       0x43e27f2d24460ad9 - (CONCAT44(uVar31,uVar17) ^ 0xba8d0f8d7747f852);
  lVar6 = DAT_182671560;
  uVar39 = CONCAT44(uVar17,uVar31);
  *(ulonglong *)(lVar5 - (uVar23 ^ 0x60792a0)) =
       (CONCAT44(uVar31,DAT_18267156c) ^ 0xe0ff6df4fdfffe10) + *(longlong *)(lVar5 + -0x8f0) ^
       uVar38;
  *(ulonglong *)(lVar5 + -0xa0) =
       (CONCAT44(uVar8,uVar8) ^ 0xee231d6dc43e3829) - (uVar39 ^ 0x723d78908cd6c8c0);
  *(byte *)(*(ulonglong *)(lVar5 + -0x2b0) ^ uVar38) =
       *(byte *)(lVar5 - (uVar30 ^ 0x96bf3c38)) ^ (byte)DAT_182671788 ^ (byte)DAT_182671694;
  uVar40 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar6 + -0x7b8) =
       *(longlong *)(lVar6 - (uVar30 ^ 0x96bf33f6)) +
       ((CONCAT44(uVar8,uVar32) ^ 0xf1f20100f7f79113) +
       (CONCAT44(uVar11,uVar8) ^ 0x1d009015f1f20100) * 4) * 8 ^ uVar40;
  uVar38 = (ulonglong)DAT_182671704;
  uVar42 = CONCAT44(DAT_182671704,DAT_182671704);
  uVar4 = DAT_182671704 >> 0x10;
  *(ulonglong *)(lVar6 - (uVar23 ^ 0x6079558)) = (uVar35 ^ *puVar2) - (uVar39 ^ 0xd24665c4fb57b0a6);
  uVar42 = uVar42 ^ *(ulonglong *)(uVar40 ^ *(ulonglong *)(lVar6 + -0x7b8)) ^ uVar25;
  *(ulonglong *)(lVar6 + -0x80) = uVar42;
  bVar41 = (byte)DAT_182671720;
  lVar5 = DAT_182671560;
  uVar35 = CONCAT44(DAT_182671640,DAT_182671640);
  bVar18 = (byte)DAT_182671640;
  *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xf7f790e0)) =
       ((ulonglong)uVar4 | uVar38 << 0x10) ^ uVar42 >> 0x10 ^ uVar35;
  uVar38 = (ulonglong)DAT_1826717d8;
  *(undefined8 *)(lVar5 - ((ulonglong)uVar31 ^ 0xe0ff656c)) = 0x6df9cdbddfb5ffaf;
  pbVar28 = (byte *)((CONCAT44(uVar31,DAT_18267156c) ^ 0xe0ff6df4fdfffe13) +
                    *(longlong *)(lVar5 + -0x8f0));
  bVar36 = *(byte *)(lVar5 + -0x1f0) ^ bVar41 ^ bVar18;
  *(byte *)(lVar5 + -0xab9) = bVar36;
  bVar41 = bVar41 ^ bVar36 ^ (byte)DAT_182671694;
  *(ulonglong *)(lVar5 + -0x6e8) = (ulonglong)pbVar28 ^ uVar38;
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       CONCAT44(uVar22,uVar11) ^ CONCAT44(DAT_18267156c,uVar11) ^ 0xceffaf436c6b6cfd;
  uVar7 = DAT_182671850;
  *pbVar28 = bVar41;
  lVar5 = DAT_182671560;
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x6079208)) =
       *(longlong *)(DAT_182671560 + -0xc18) +
       ((CONCAT44(DAT_18267156c,uVar8) ^ 0xfdfffe09f1f20103) + (uVar39 ^ 0x3fee96bfe0ff6df4) * 4) *
       8 ^ uVar38;
  uVar39 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x3fee9007)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 + -0x218) ^ uVar38) ^ uVar39 ^ uVar25;
  uVar7 = DAT_18267168c;
  uVar42 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x96bf358e)) =
       (CONCAT44(uVar16,DAT_18267156c) ^ 0x3e40daecb7284dc9) +
       (CONCAT44(uVar8,uVar32) ^ 0xcd39228b51c67080);
  local_d0 = (byte)uVar11;
  uVar39 = (*(ulonglong *)(lVar5 + -0x6b8) ^ uVar39) >> ((local_d0 ^ 0xd) & 0x3f) ^
           CONCAT44(uVar7,uVar7);
  bVar41 = (byte)uVar7 ^ (byte)DAT_1826717ec ^ (byte)uVar39;
  *(byte *)(lVar5 + -0x889) = bVar41;
  bVar41 = bVar41 ^ (byte)DAT_182671694 ^ (byte)DAT_1826717ec;
  uVar38 = (ulonglong)DAT_182671608;
  pbVar28 = (byte *)(*(longlong *)(lVar5 + -0x8f0) + 0x1b);
  *(ulonglong *)(lVar5 + -0x6d0) = uVar39;
  *(ulonglong *)(lVar5 + -0x240) =
       (CONCAT44(uVar32,uVar32) ^ 0x3177fbcea3e8d492) << (((byte)uVar17 ^ 0xa2) & 0x3f);
  *(ulonglong *)(lVar5 + -0x358) = (ulonglong)pbVar28 ^ uVar38;
  uVar7 = DAT_182671890;
  *pbVar28 = bVar41;
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x1d00942d)) =
       *(longlong *)(lVar5 + -0xc18) +
       ((CONCAT44(DAT_18267156c,uVar16) ^ 0xfdfffe0906079013) +
       (CONCAT44(uVar17,uVar17) ^ 0x3fee96bf3fee96bf) * 4) * 8 ^ uVar38;
  uVar9 = DAT_18267157c;
  uVar40 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar38 = *(ulonglong *)(*(ulonglong *)(lVar5 + -0x438) ^ uVar38) ^ uVar25;
  bVar18 = bVar18 ^ (byte)DAT_182671808;
  uVar39 = (ulonglong)DAT_1826716ec;
  *(ulonglong *)(lVar5 + -0x600) = uVar38 ^ uVar40;
  lVar6 = DAT_182671560;
  uVar35 = uVar38 >> ((local_c8 ^ 0x30) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar5 + -0x5c8) = uVar35;
  *(byte *)(lVar5 + -0x909) = bVar18 ^ (byte)uVar35;
  *(ulonglong *)(lVar5 - (uVar43 ^ 0xf7f79070)) =
       (CONCAT44(uVar31,uVar17) ^ 0xe0ff6df43fee96a3) + *(longlong *)(lVar5 + -0x8f0) ^ uVar39;
  uVar14 = DAT_18267159c;
  bVar41 = *(byte *)(lVar5 + -0x909) ^ (byte)DAT_182671694 ^ (byte)DAT_182671808;
  uVar44 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar5 + -0x754) = (DAT_182671578 ^ 0x55e4835a) * *(int *)(lVar5 + -0x27c);
  uVar7 = DAT_182671568;
  uVar38 = CONCAT44(DAT_182671728,DAT_182671728);
  *(byte *)(*(ulonglong *)(lVar5 - (uVar42 ^ 0x6079170)) ^ uVar39) = bVar41;
  *(ulonglong *)(lVar5 + -0x450) =
       *(longlong *)(lVar5 + -0xc18) +
       ((CONCAT44(uVar7,DAT_18267158c) ^ 0xfbdbef7dc4fcfffb) +
       (CONCAT44(DAT_18267158c,uVar9) ^ 0xc4fcfff8fdfffe09) * 4) * 8 ^ uVar38;
  uVar33 = DAT_182671580;
  uVar35 = (ulonglong)DAT_182671580;
  *(longlong *)(lVar6 - (uVar44 ^ 0xd9892270)) =
       *(longlong *)(lVar6 + -0x898) << (((byte)DAT_182671580 ^ 5) & 0x3f);
  uVar39 = CONCAT44(DAT_182671670,DAT_182671670);
  uVar38 = *(ulonglong *)(*(ulonglong *)(lVar6 + -0x450) ^ uVar38) ^ uVar25;
  *(ulonglong *)(lVar6 + -0x688) = uVar38 ^ uVar39;
  *(ulonglong *)(lVar6 - (uVar23 ^ 0x6079a98)) = uVar38 >> (((byte)uVar9 ^ 0x21) & 0x3f) ^ uVar29;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x3fee9097)) =
       (CONCAT44(uVar8,uVar16) ^ 0x1753941d5c8fddbb) >>
       (((byte)uVar10 ^ *(byte *)(lVar6 + -0xa88)) & 0x3f);
  uVar38 = (ulonglong)DAT_18267162c;
  *(byte *)(lVar6 + -0xa09) = (byte)DAT_1826717b4 ^ *(byte *)(lVar6 + -0xa88) ^ (byte)DAT_18267167c;
  *(ulonglong *)(lVar6 + -0x9f8) = CONCAT44(DAT_18267156c,uVar16) ^ 0xadb3e05a5d13e19;
  uVar10 = DAT_182671584;
  lVar5 = DAT_182671560;
  pbVar28 = (byte *)((CONCAT44(uVar22,DAT_182671584) ^ 0x96bf3fee072e10ae) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  puVar19 = (ulonglong *)(DAT_182671560 - (uVar30 ^ 0x96bf3966));
  *(ulonglong *)(DAT_182671560 + -0x5d8) = (ulonglong)pbVar28 ^ uVar38;
  *(ulonglong *)(lVar5 + -0x270) = *puVar19 ^ uVar39 | *(ulonglong *)(lVar5 + -0x600) ^ uVar40;
  uVar12 = DAT_182671650;
  *pbVar28 = *(byte *)(lVar5 - ((ulonglong)DAT_182671574 ^ 0xedeefe00)) ^ (byte)DAT_182671694 ^
             (byte)DAT_18267167c;
  uVar13 = DAT_182671698;
  puVar19 = (ulonglong *)(*(longlong *)(lVar5 + -0xc18) + 0x18);
  *(ulonglong *)(lVar5 + -0x178) = (ulonglong)puVar19 ^ CONCAT44(uVar12,uVar12);
  uVar38 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x3fee95a7)) = *puVar19 ^ uVar25 ^ uVar38;
  uVar13 = DAT_18267166c;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xf1f20648)) = uVar29 ^ *(ulonglong *)(lVar5 + -0xa88);
  uVar12 = DAT_182671594;
  uVar4 = DAT_182671570;
  lVar5 = DAT_182671560;
  uVar39 = (ulonglong)DAT_182671570;
  uVar27 = *(ulonglong *)(DAT_182671560 + -0xa88);
  uVar22 = DAT_182671588 ^ 0xd4a8e919;
  piVar1 = (int *)(DAT_182671560 + -0x874);
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar38) >> ((bVar21 ^ 0xde) & 0x3f) ^
       CONCAT44(uVar13,uVar13);
  uVar38 = (ulonglong)DAT_1826718a0;
  *(uint *)(lVar5 + -0x678) = *piVar1 - uVar22;
  *(byte *)(lVar5 + -0xb89) =
       *(byte *)(lVar5 - ((ulonglong)uVar4 ^ 0xf8d1ee94)) ^ (byte)uVar13 ^ (byte)DAT_182671798;
  *(ulonglong *)(lVar5 + -0x800) = CONCAT44(uVar31,uVar32) ^ 0xe32e3261779d4738 | uVar29 ^ uVar27;
  uVar13 = DAT_182671598;
  *(ulonglong *)(DAT_182671560 + -0xf0) =
       (CONCAT44(uVar12,DAT_182671598) ^ 0x3cc8860d9e862ad0) * 0x20 +
       (CONCAT44(uVar4,uVar9) ^ 0xf8d1ef4cfdfffe17) + *(longlong *)(DAT_182671560 + -0x8f0) ^ uVar38
  ;
  uVar15 = DAT_1826715a0;
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x96bf341e)) =
       (CONCAT44(DAT_18267156c,uVar7) ^ 0x28bd01028d768fda) >> (((byte)uVar7 ^ 0x74) & 0x3f);
  lVar5 = DAT_182671560;
  *(byte *)(uVar38 ^ *(ulonglong *)(DAT_182671560 + -0xf0)) =
       (byte)DAT_182671694 ^ (byte)DAT_182671798 ^ *(byte *)(DAT_182671560 + -0xb89);
  lVar6 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(lVar5 + -0xb78) =
       *(longlong *)(lVar5 - ((ulonglong)uVar14 ^ 0xd98926c0)) +
       ((CONCAT44(uVar15,uVar12) ^ 0x3d13ae093cc8860e) +
       (CONCAT44(uVar17,uVar16) ^ 0x3fee96bf06079010) * 4) * 8 ^ uVar27;
  *(ulonglong *)(lVar5 + -0xc18) = CONCAT44(uVar9,uVar13) ^ 0x4698e50d211e637e;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x638a8089)) =
       (CONCAT44(uVar9,uVar14) ^ 0xa6aff112c912600d) <<
       ((byte)*(undefined8 *)(lVar5 - (uVar23 ^ 0x6079758)) & 0x3f);
  uVar9 = DAT_182671718;
  uVar38 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar6 - (uVar43 ^ 0xf7f798f8)) =
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0xb78) ^ uVar27) ^ uVar25 ^ uVar38;
  uVar7 = DAT_182671604;
  uVar27 = (ulonglong)DAT_1826717a0;
  *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar6 + -0x6f0)) =
       CONCAT44(uVar4,uVar10) ^ 0x4efab5b9a1f9480b;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar33 ^ 0x638a8521)) =
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0x1d0099fd)) ^ uVar38) >> (((byte)uVar31 ^ 0xcc) & 0x3f) ^
       CONCAT44(uVar7,uVar7);
  *(byte *)(lVar6 - (uVar23 ^ 0x6079669)) =
       (byte)uVar7 ^ *(byte *)(lVar6 + -0x610) ^ (byte)DAT_182671818;
  *(ulonglong *)(lVar6 + -0x8d8) =
       (CONCAT44(uVar11,DAT_182671574) ^ 0x1d009015edeef409) * 0x20 +
       (CONCAT44(DAT_18267156c,uVar8) ^ 0xfdfffe09f1f2011f) + *(longlong *)(lVar6 + -0x8f0) ^ uVar27
  ;
  *(byte *)(*(ulonglong *)(lVar6 - (uVar26 ^ 0xfdfff6d1)) ^ uVar27) =
       *(byte *)(lVar6 + -0x679) ^ (byte)DAT_182671694 ^ (byte)DAT_182671818;
  *(undefined8 *)(lVar6 - ((ulonglong)uVar4 ^ 0xf8d1ef9c)) = *(undefined8 *)(lVar6 + 0x48);
  *(undefined8 *)(lVar6 - (uVar35 ^ 0x638a8bf9)) = *(undefined8 *)(lVar6 - (uVar43 ^ 0xf7f79be8));
  *(ulonglong *)(lVar6 + -0xaf8) = CONCAT44(uVar14,uVar15) ^ 0x844e6e4e6922c227;
  uVar10 = DAT_182671828;
  uVar8 = DAT_182671570;
  uVar33 = (uVar4 << 0x10 | uVar4 & 0xff00) << 8 | uVar4 >> 8 & 0xff00 | DAT_182671570 >> 0x18;
  uVar43 = CONCAT44(uVar33,uVar4) ^ 0x4cefd1f8f8d1ef4c;
  uVar27 = CONCAT44(DAT_182671814,DAT_182671814);
  DAT_18267156c = uVar33;
  *(ulonglong *)(lVar6 - (uVar39 ^ 0xf8d1e574)) =
       ((ulonglong)DAT_182671778 ^ *(ulonglong *)(lVar6 + -0x980)) + 0x20 +
       ((CONCAT44(uVar33,uVar33) ^ 0x4cefd1f84cefd1fa) + uVar43 * 0x10) * 8 ^ uVar27;
  uVar9 = DAT_18267171c;
  *(ulonglong *)(lVar6 + -0x980) = CONCAT44(uVar33,uVar4) ^ 0x202bea23908bb71b;
  uVar7 = DAT_1826715f8;
  *(ulonglong *)(lVar6 + -0x400) =
       CONCAT44(uVar9,uVar9) ^ CONCAT44(uVar10,uVar10) ^
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0xa38) ^ uVar27);
  *(ulonglong *)(CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar6 + -0x70)) =
       CONCAT44(uVar4,uVar33) ^ 0x1e623701350c1f80;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar33 ^ 0x4cefda40)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar4 ^ 0xf8d1effc)) ^ (ulonglong)DAT_18267180c;
  *(longlong *)(lVar6 + -0xa20) = *(longlong *)(lVar6 + 0x30);
  *(ulonglong *)(lVar6 + -0x880) = *(longlong *)(lVar6 + -0x5a0) + uVar43 * 8;
  bVar41 = **(byte **)(lVar6 - (uVar39 ^ 0xf8d1e56c));
  *(byte *)(lVar6 + -0x209) = bVar41;
  puVar20 = (undefined1 *)
            ((CONCAT44(uVar33,uVar33) ^ 0x4cefd1f84cefd1f9) + *(longlong *)(lVar6 + 0x30));
  *(ulonglong *)(lVar6 + -0x2a0) = (ulonglong)bVar41;
  *(undefined1 **)(lVar6 + -0xa20) = puVar20;
  *(undefined1 *)(lVar6 + -0x209) = *puVar20;
  *(ulonglong *)(lVar6 + -0xa0) = (ulonglong)*(byte *)(lVar6 + -0x209);
  *(ulonglong *)(lVar6 + -0x510) =
       CONCAT44(uVar4,uVar4) ^ CONCAT44(uVar4,uVar33) ^ 0x143cfced854daccb;
  *(uint *)(lVar6 - ((ulonglong)uVar33 ^ 0x4cefd38c)) =
       (uVar33 ^ 0xf1a91f93) * *(int *)(lVar6 + -0x844);
  *puVar2 = *(longlong *)(lVar6 - (uVar39 ^ 0xf8d1efec)) << (((byte)(uVar8 >> 0x18) ^ 0xf0) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar3 ^ uVar32) * 4) = uVar37;
  return;
}



############ FUN_ 180f1d550 size=4884 ############

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

void FUN_180f1d550(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  longlong *plVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  byte *pbVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  byte bVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte local_res20;
  byte local_d0;
  
  uVar32 = DAT_1826715b0;
  uVar7 = DAT_1826715a4;
  uVar6 = DAT_182671594;
  uVar5 = DAT_182671588;
  uVar4 = DAT_182671578;
  uVar24 = (ulonglong)DAT_182671594;
  uVar35 = (ulonglong)DAT_182671578;
  uVar19 = ~DAT_182671594;
  uVar29 = DAT_182671578 & DAT_1826715b0;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671a14);
  uVar20 = DAT_182671588 | DAT_1826715a4;
  uVar13 = *(uint *)(&DAT_182611e80 + DAT_182671a14) ^ DAT_182671594;
  uVar39 = (ulonglong)DAT_1826715a4;
  uVar38 = (ulonglong)uVar20;
  uVar37 = CONCAT44(DAT_1826715a4,DAT_182671588);
  DAT_182671580 = uVar29;
  DAT_18267159c = uVar20;
  DAT_1826715b4 = uVar19;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0xba0) ^ (ulonglong)DAT_1826716e0) =
       *(byte *)(DAT_182671560 + -0x642) ^ (byte)DAT_182671680 ^ (byte)DAT_1826717c0;
  uVar8 = _DAT_182671610;
  lVar2 = DAT_182671560;
  uVar31 = (ulonglong)uVar5;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       (CONCAT44(uVar5,uVar20) ^ 0x397d5e526c899d6c) << (((byte)uVar5 ^ 0xf3) & 0x3f);
  uVar9 = DAT_182671688;
  uVar17 = CONCAT44(uVar8,uVar8);
  uVar36 = (ulonglong)uVar29;
  *(ulonglong *)(lVar2 + -0x128) = *(ulonglong *)(lVar2 - (uVar36 ^ 0x2800ed98)) ^ uVar17;
  uVar14 = (ulonglong)uVar32;
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar26 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar2 + -0x898) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar14 ^ 0x2b4ce774)) ^ uVar17) ^ uVar26 ^ uVar22;
  uVar8 = DAT_182671640;
  uVar15 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar30 = (ulonglong)_DAT_18267188c;
  uVar40 = (ulonglong)uVar19;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xfc02e50a)) =
       CONCAT44(DAT_182671810,DAT_182671810) ^ *(ulonglong *)(lVar2 + -0x628) ^
       *(ulonglong *)(lVar2 + -0x318) ^ uVar15;
  *(ulonglong *)(lVar2 + -0xbf0) =
       (*(ulonglong *)(lVar2 - (uVar40 ^ 0x118e1a97)) ^ uVar22) >> (((byte)uVar6 ^ 0xe8) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  uVar11 = _DAT_182671868;
  lVar2 = DAT_182671560;
  uVar21 = (ulonglong)_DAT_182671868;
  bVar28 = (byte)_DAT_182671868;
  *(byte *)(DAT_182671560 - (uVar38 ^ 0xeefe7cb3)) =
       *(byte *)(DAT_182671560 - (uVar39 ^ 0xacee7786)) ^ (byte)uVar8 ^ bVar28;
  uVar39 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar2 + -0x670) = uVar39 ^ *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xeefe75d6)) =
       (CONCAT44(uVar29,uVar7) ^ 0x2800e600acee7c75) + *(longlong *)(lVar2 + -3000) ^ uVar30;
  *(byte *)(*(ulonglong *)(lVar2 + -0xa20) ^ uVar30) =
       *(byte *)(lVar2 - (uVar31 ^ 0xea5674a1)) ^ bVar28 ^ (byte)DAT_1826717c0;
  uVar8 = DAT_1826716a8;
  puVar18 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar32,uVar6) ^ 0x2b4ce65cee71edf0) +
            (CONCAT44(uVar19,uVar6) ^ 0x118e120fee71edf0) * 0xc) * 8);
  local_res20 = (byte)uVar32;
  *(ulonglong *)(lVar2 + -0xd60) = (ulonglong)puVar18 ^ CONCAT44(DAT_182671648,DAT_182671648);
  lVar2 = DAT_182671560;
  uVar30 = (ulonglong)DAT_18267186c;
  *(ulonglong *)(DAT_182671560 + -0x628) = CONCAT44(DAT_18267186c,DAT_18267186c) ^ *puVar18 ^ uVar26
  ;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xeefe7cee)) =
       (CONCAT44(uVar19,uVar5) ^ 0x5aa45dccf473bd73) >> ((local_res20 ^ 0x41) & 0x3f);
  lVar2 = DAT_182671560;
  bVar28 = (byte)uVar8 ^ (byte)DAT_182671804;
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0xeefe757e)) =
       *(ulonglong *)(DAT_182671560 + -0x628) >> 0x20 ^ CONCAT44(uVar8,uVar8) ^ uVar30;
  *(byte *)(lVar2 - ((ulonglong)uVar7 ^ 0xacee796c)) = bVar28 ^ *(byte *)(lVar2 + -0xa88);
  lVar3 = DAT_182671560;
  puVar25 = (ulonglong *)(lVar2 - (uVar38 ^ 0xeefe7406));
  uVar30 = (ulonglong)DAT_1826716a0;
  *puVar25 = (uVar22 ^ *(ulonglong *)(lVar2 + -0x898)) -
             (CONCAT44(uVar6,uVar6) ^ 0x43917aa6529cb633);
  pbVar16 = (byte *)((CONCAT44(uVar29,uVar29) ^ 0x2800e6002800e604) + *(longlong *)(lVar2 + -3000));
  bVar28 = *(byte *)(lVar2 + -0x51a) ^ (byte)DAT_182671804 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar2 + -0x60) = (ulonglong)pbVar16 ^ uVar30;
  *pbVar16 = bVar28;
  uVar8 = DAT_1826715e8;
  puVar18 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar4,uVar7) ^ 0xfc02ef82acee7c76) +
            (CONCAT44(uVar4,uVar5) ^ 0xfc02ef82ea5677e4) * 0xc) * 8);
  uVar30 = CONCAT44(DAT_182671698,DAT_182671698);
  *(ulonglong *)(lVar3 + -0x690) = (ulonglong)puVar18 ^ CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(lVar3 + -0x670) = *puVar18 ^ uVar30 ^ uVar26;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0x2800e518)) =
       (*(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xea567194)) ^ uVar30) >>
       ((local_res20 ^ 0x74) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  bVar28 = (byte)DAT_1826717ec;
  uVar30 = (ulonglong)DAT_1826717c4;
  bVar33 = (byte)uVar8 ^ (byte)DAT_1826717ec ^ *(byte *)(lVar2 + -0x318);
  *(byte *)(lVar2 + -0x41) = bVar33;
  uVar8 = DAT_1826717c0;
  bVar34 = (byte)DAT_1826717c0;
  pbVar16 = (byte *)((CONCAT44(uVar5,uVar7) ^ 0xea5677e4acee7c73) + *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0xce0) = (ulonglong)pbVar16 ^ uVar30;
  uVar9 = DAT_18267183c;
  *pbVar16 = bVar28 ^ bVar33 ^ bVar34;
  puVar18 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar5,uVar32) ^ 0xea5677e42b4ce65c) +
            (CONCAT44(uVar6,uVar19) ^ 0xee71edf0118e120f) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x128) = (ulonglong)puVar18 ^ CONCAT44(uVar9,uVar9);
  uVar30 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xfc02e9aa)) = *puVar18 ^ uVar26 ^ uVar30;
  uVar8 = DAT_182671628;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xee71e778)) =
       0xadc3e403774d45a8 >> ((local_res20 ^ 0x65) & 0x3f);
  lVar2 = DAT_182671560;
  bVar28 = (byte)uVar8 ^ (byte)DAT_18267180c;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (*(ulonglong *)(DAT_182671560 + -0x628) ^ uVar30) >> (((byte)uVar20 ^ 0xc6) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  *(byte *)(lVar2 + -0x309) = bVar28 ^ *(byte *)(lVar2 + -0x898);
  uVar10 = DAT_182671654;
  pbVar16 = (byte *)((CONCAT44(uVar32,uVar7) ^ 0x2b4ce65cacee7c70) + *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0x50) = (ulonglong)pbVar16 ^ uVar21;
  *pbVar16 = *(byte *)(lVar2 - (uVar40 ^ 0x118e1106)) ^ (byte)DAT_18267180c ^ (byte)DAT_1826717c0;
  uVar9 = DAT_182671670;
  lVar3 = DAT_182671560;
  puVar18 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar38 ^ 0xeefe746e)) + (uVar37 ^ 0xacee7c76ea5677e4) * 0x60);
  *(ulonglong *)(lVar2 + -0xd60) = (ulonglong)puVar18 ^ CONCAT44(uVar10,uVar10);
  uVar8 = DAT_18267160c;
  uVar30 = CONCAT44(uVar9,uVar9);
  *puVar25 = *puVar18 ^ uVar30 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x670) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0xbf0)) >> (((byte)uVar20 ^ 0xce) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  bVar28 = DAT_1826715e0 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar3 + -0xcca) = (byte)uVar8 ^ DAT_1826715e0 ^ *(byte *)(lVar3 + -0x670);
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x2b4ce274)) =
       (CONCAT44(uVar5,uVar6) ^ 0xea5677e4ee71edf7) + *(longlong *)(lVar3 + -3000) ^
       (ulonglong)uVar11;
  *(byte *)(*(ulonglong *)(lVar3 + -0x428) ^ (ulonglong)uVar11) = bVar28 ^ *(byte *)(lVar3 + -0xcca)
  ;
  uVar8 = DAT_1826717e4;
  uVar11 = DAT_182671740;
  lVar2 = DAT_182671560;
  uVar21 = (ulonglong)DAT_182671740;
  puVar18 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0xb98) +
            ((CONCAT44(uVar5,uVar19) ^ 0xea5677e4118e120e) +
            (CONCAT44(uVar20,uVar29) ^ 0xeefe7ff62800e600) * 0xc) * 8);
  *(ulonglong *)(DAT_182671560 + -0x690) =
       (ulonglong)puVar18 ^ CONCAT44(DAT_1826717fc,DAT_1826717fc);
  uVar30 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x318) = *puVar18 ^ uVar26 ^ uVar30;
  *(ulonglong *)(lVar2 + -0xa88) =
       *(ulonglong *)(lVar2 - (uVar40 ^ 0x118e131f)) ^ CONCAT44(uVar19,uVar4) ^ uVar39 ^
       0x870d9276984708a3;
  *(ulonglong *)(lVar2 + -0x628) =
       (*(ulonglong *)(lVar2 - (uVar14 ^ 0x2b4ce544)) ^ uVar30) >> ((local_res20 ^ 0x5c) & 0x3f) ^
       CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x898) =
       CONCAT44(uVar19,uVar29) ^ 0x1272b39b81dcf311 | CONCAT44(uVar4,uVar6) ^ 0xafc6f9f494b884c2;
  uVar30 = (ulonglong)DAT_182671890;
  *(undefined1 *)(lVar2 - (uVar24 ^ 0xee71eb31)) = *(undefined1 *)(lVar2 + -0x628);
  uVar9 = DAT_182671644;
  pbVar16 = (byte *)((CONCAT44(uVar29,uVar20) ^ 0x2800e600eefe7ffe) + *(longlong *)(lVar2 + -3000));
  *(ulonglong *)(lVar2 + -0x700) = (ulonglong)pbVar16 ^ uVar30;
  *pbVar16 = *(byte *)(lVar2 + -0x6c1) ^ (byte)DAT_1826717c0 ^ (byte)uVar11;
  uVar8 = DAT_182671658;
  puVar18 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar29,uVar29) ^ 0x2800e6002800e601) +
            (CONCAT44(uVar5,uVar20) ^ 0xea5677e4eefe7ff6) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x128) = (ulonglong)puVar18 ^ CONCAT44(DAT_1826718d0,DAT_1826718d0);
  uVar22 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xea567c14)) = *puVar18 ^ uVar26 ^ uVar22;
  local_d0 = (byte)uVar19;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xee71eb80)) =
       (CONCAT44(uVar19,uVar7) ^ 0x9268851169f78121) - (CONCAT44(uVar7,uVar4) ^ 0x259812ab17c9d9c0);
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0xea5676f4)) =
       (*(ulonglong *)(DAT_182671560 + -0xbf0) ^ uVar22) >> ((local_d0 ^ 7) & 0x3f) ^
       CONCAT44(uVar9,uVar9);
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0x3f2) = (byte)uVar9 ^ *(byte *)(DAT_182671560 + -0x110) ^ (byte)uVar10
  ;
  lVar3 = DAT_182671560;
  uVar30 = (ulonglong)DAT_1826715c0;
  bVar28 = (byte)DAT_1826717c0;
  *(ulonglong *)(DAT_182671560 - (uVar14 ^ 0x2b4cecd4)) =
       (CONCAT44(uVar19,uVar20) ^ 0xa8cc9528e3032233) - (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar22);
  *(ulonglong *)(lVar3 + -0xcc0) =
       (CONCAT44(uVar4,uVar4) ^ 0xfc02ef82fc02ef8b) + *(longlong *)(lVar3 + -3000) ^ uVar30;
  uVar12 = DAT_1826718a8;
  uVar14 = (ulonglong)DAT_1826718a8;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar36 ^ 0x2800eac0)) ^ uVar30) =
       bVar28 ^ *(byte *)(lVar3 + -0x3f2) ^ (byte)uVar10;
  uVar8 = DAT_182671720;
  *(ulonglong *)(lVar3 + -0xd60) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar32,uVar20) ^ 0x2b4ce65ceefe7ff7) +
       (CONCAT44(uVar29,uVar20) ^ 0x2800e600eefe7ff6) * 0xc) * 8 ^ uVar17;
  uVar4 = DAT_18267159c;
  uVar30 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x318) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xee71e090)) ^ uVar17) ^ uVar26 ^ uVar30;
  *(uint *)(lVar3 + -0x774) = (uVar4 ^ 0x63bda1b3) * (DAT_182671588 ^ 0x730ae612);
  uVar30 = (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar30) >> (((byte)uVar29 ^ 0x10) & 0x3f) ^
           CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar30;
  uVar36 = (ulonglong)_DAT_1826716c0;
  *(byte *)(DAT_182671560 - (uVar35 ^ 0xfc02ef63)) =
       (byte)uVar12 ^ (byte)uVar30 ^ (byte)DAT_1826717dc;
  lVar2 = DAT_182671560;
  pbVar27 = (byte *)((CONCAT44(uVar7,uVar29) ^ 0xacee7c762800e60a) +
                    *(longlong *)(DAT_182671560 + -3000));
  pbVar16 = (byte *)(DAT_182671560 + -0x110);
  *(ulonglong *)(DAT_182671560 + -0x810) = (ulonglong)pbVar27 ^ uVar36;
  uVar8 = DAT_1826715cc;
  *(ulonglong *)(lVar2 + -0x670) =
       (CONCAT44(uVar20,uVar32) ^ 0x9c136b46f56bbb38) << ((*pbVar16 ^ (byte)uVar9) & 0x3f);
  lVar2 = DAT_182671560;
  *pbVar27 = *(byte *)(DAT_182671560 - (uVar31 ^ 0xea567705)) ^ (byte)DAT_1826717c0 ^
             (byte)DAT_1826717dc;
  uVar9 = DAT_182671830;
  *(ulonglong *)(lVar2 + -0xa88) =
       (CONCAT44(uVar19,uVar32) ^ 0x7b4acd52bef9008) -
       (*(ulonglong *)(lVar2 + -0x898) ^ CONCAT44(uVar12,uVar12));
  uVar10 = DAT_1826718c8;
  puVar18 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) + (CONCAT44(uVar32,uVar5) ^ 0x2b4ce65cea5677e5) * 8);
  *(ulonglong *)(lVar2 + -0x690) = (ulonglong)puVar18 ^ CONCAT44(uVar9,uVar9);
  uVar30 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xee71e600)) = *puVar18 ^ uVar26 ^ uVar30;
  uVar30 = *(ulonglong *)(lVar2 + -0xbf0) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x318) = uVar30 >> ((local_res20 ^ 0x44) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  uVar31 = (ulonglong)DAT_1826717d0;
  *(ulonglong *)(lVar2 + -0x110) = CONCAT44(uVar29,uVar7) ^ 0x1e01be7c1a6a55af | uVar30;
  bVar28 = *(byte *)(lVar2 - (uVar35 ^ 0xfc02ec9a)) ^ (byte)uVar8 ^ (byte)DAT_1826717b8;
  *(byte *)(lVar2 + -0xd81) = bVar28;
  uVar4 = DAT_182671584;
  pbVar16 = (byte *)(*(longlong *)(lVar2 - (uVar38 ^ 0xeefe744e)) +
                    (CONCAT44(uVar6,uVar29) ^ 0xee71edf02800e60b));
  *(ulonglong *)(lVar2 + -0xb38) = (ulonglong)pbVar16 ^ uVar31;
  uVar7 = DAT_1826715a0;
  bVar28 = (byte)DAT_1826717c0 ^ bVar28 ^ (byte)DAT_1826717b8;
  uVar32 = uVar4 - DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x670) =
       (CONCAT44(uVar5,uVar6) ^ 0x3303c569a7e50512) >>
       ((*(byte *)(lVar2 + -0x628) ^ (byte)uVar11) & 0x3f);
  *pbVar16 = bVar28;
  uVar36 = CONCAT44(uVar7,uVar4) ^ 0xb2a8b88c9aa19281;
  uVar30 = CONCAT44(DAT_182671734,DAT_182671734);
  DAT_182671568 = uVar32;
  *(ulonglong *)(lVar2 + -0x128) = *(longlong *)(lVar2 + -0xb98) + uVar36 * 8 ^ uVar30;
  uVar8 = DAT_182671880;
  *(undefined1 *)(lVar2 + -0x641) = **(undefined1 **)(lVar2 + -0xa70);
  uVar31 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0xe7f8d8dc)) ^ uVar30) ^
           uVar26;
  *(ulonglong *)(lVar2 + -0x898) = uVar31 ^ CONCAT44(uVar8,uVar8);
  bVar28 = (byte)DAT_1826715b8 ^ (byte)DAT_182671828;
  uVar31 = uVar31 >> (((byte)uVar7 ^ 0xac) & 0x3f);
  uVar15 = uVar31 ^ uVar15;
  *(ulonglong *)(lVar2 + -0xa88) = uVar15;
  uVar30 = (ulonglong)DAT_182671898;
  bVar28 = bVar28 ^ (byte)uVar15;
  *(byte *)(lVar2 + -0x641) = bVar28;
  lVar3 = DAT_182671560;
  plVar23 = (longlong *)(lVar2 - ((ulonglong)uVar32 ^ 0xe7f8d24c));
  bVar28 = bVar28 ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671828;
  pbVar16 = (byte *)((CONCAT44(uVar7,uVar4) ^ 0xb2a8b88c9aa1928c) + *plVar23);
  *(ulonglong *)(DAT_182671560 + -0x768) = (ulonglong)pbVar16 ^ uVar30;
  uVar8 = DAT_1826715fc;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar31 << 0x37;
  *pbVar16 = bVar28;
  uVar5 = DAT_182671660;
  puVar18 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            (uVar36 + (CONCAT44(uVar32,uVar7) ^ 0xe7f8d9f4b2a8b88c) * 0xc) * 8);
  uVar30 = (ulonglong)DAT_182671660;
  *(ulonglong *)(lVar3 + -0xd60) = (ulonglong)puVar18 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182671818;
  uVar31 = CONCAT44(uVar5,uVar5) ^ *puVar18 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x110) = uVar31;
  *(ulonglong *)(lVar3 + -0x318) = (uVar31 >> 0x20 ^ uVar30) >> 8 ^ CONCAT44(uVar8,uVar8);
  bVar28 = (byte)DAT_1826717e4;
  *(byte *)(lVar3 + -0x9cb) =
       *(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0xb2a8bb94)) ^ (byte)uVar8 ^ bVar28;
  uVar10 = DAT_1826717a4;
  pbVar16 = (byte *)((CONCAT44(uVar32,uVar32) ^ 0xe7f8d9f4e7f8d9f9) + *(longlong *)(lVar3 + -3000));
  *(ulonglong *)(lVar3 + -0x7f0) = (ulonglong)pbVar16 ^ uVar14;
  uVar9 = DAT_182671730;
  *pbVar16 = *(byte *)(lVar3 - ((ulonglong)uVar32 ^ 0xe7f8d03f)) ^ (byte)DAT_1826717c0 ^ bVar28;
  uVar8 = DAT_182671680;
  uVar30 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x690) =
       *(longlong *)(lVar3 + -0xb98) + (CONCAT44(uVar4,uVar32) ^ 0x9aa19280e7f8d9f5) * 8 ^ uVar30;
  uVar26 = *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xb2a8be1c)) ^ uVar30) ^ uVar26
  ;
  *(ulonglong *)(lVar3 + -0x628) = uVar26 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x670) = uVar26 >> (((byte)uVar4 ^ 0xb0) & 0x3f) ^ CONCAT44(uVar10,uVar10)
  ;
  bVar28 = (byte)DAT_1826717c0 ^ (byte)DAT_18267167c;
  bVar33 = *(byte *)(lVar3 - ((ulonglong)uVar4 ^ 0x9aa194f0)) ^ (byte)uVar10 ^ (byte)DAT_18267167c;
  *(byte *)(lVar3 + -0xa72) = bVar33;
  pbVar16 = (byte *)((CONCAT44(uVar32,uVar4) ^ 0xe7f8d9f49aa1928e) + *plVar23);
  *(ulonglong *)(lVar3 + -0xcf0) = (ulonglong)pbVar16 ^ uVar21;
  *pbVar16 = bVar28 ^ bVar33;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar19;
  return;
}



############ FUN_ 180f28f90 size=5650 ############

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

void FUN_180f28f90(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  ulonglong uVar15;
  byte bVar16;
  uint uVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_e0;
  
  uVar9 = DAT_1826715a8;
  uVar5 = DAT_182671574;
  uVar4 = DAT_18267156c;
  uVar17 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar29 = (ulonglong)DAT_182671574;
  uVar41 = (ulonglong)DAT_182671568;
  uVar36 = (ulonglong)DAT_1826715a8;
  uVar23 = DAT_18267156c ^ DAT_182671574;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671a38);
  uVar19 = DAT_182671568 & DAT_1826715a8;
  uVar14 = *(uint *)(&DAT_182611e80 + DAT_182671a38) ^ DAT_182671574;
  uVar30 = (ulonglong)uVar19;
  uVar26 = CONCAT44(DAT_182671884,DAT_182671884);
  uVar35 = CONCAT44(DAT_18267156c,uVar19);
  uVar42 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  bVar34 = (byte)uVar19;
  DAT_182671570 = uVar23;
  DAT_1826715ac = uVar19;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (CONCAT44(DAT_1826718a4,DAT_1826718a4) ^ *(ulonglong *)(DAT_182671560 + -0x318)) <<
       ((bVar34 ^ 0x48) & 0x3f) ^ uVar26;
  uVar12 = DAT_1826718b0;
  uVar8 = DAT_18267180c;
  uVar26 = *(ulonglong *)(lVar2 - (uVar41 ^ 0x897c6e86)) ^ uVar26 |
           CONCAT44(DAT_182671670,DAT_182671670) ^ *(ulonglong *)(lVar2 + -0x240);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar26 ^ uVar42;
  uVar22 = CONCAT44(uVar12,uVar12);
  puVar18 = (ulonglong *)(lVar2 - (uVar36 ^ 0x96bf3d4e));
  *(ulonglong *)(lVar2 + -0x2a0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x96bf3efe)) ^ CONCAT44(uVar8,uVar8)) - uVar26 ^
       uVar22;
  uVar8 = DAT_1826718c4;
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar35 ^ 0xd375ca30e740e25) << (((byte)uVar12 ^ (byte)*puVar18) & 0x3f);
  uVar12 = DAT_1826717f8;
  uVar10 = DAT_1826715b4;
  uVar6 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(uVar8,uVar8);
  bVar37 = (byte)uVar17;
  uVar21 = CONCAT44(DAT_18267165c,DAT_18267165c);
  uVar31 = CONCAT44(DAT_1826716f8,DAT_1826716f8) ^ uVar21 ^ uVar27 ^
           *(ulonglong *)(DAT_182671560 + -0xbf0) ^ *(ulonglong *)(DAT_182671560 + -0x800);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar31;
  uVar8 = DAT_182671660;
  uVar26 = (uVar31 ^ uVar27) >> ((bVar37 ^ 0x48) & 0x3f);
  uVar15 = (ulonglong)uVar23;
  *(ulonglong *)(lVar2 + -0x670) = uVar26 ^ CONCAT44(uVar12,uVar12);
  uVar32 = CONCAT44(uVar8,uVar8);
  uVar27 = (uVar31 ^ uVar27) << (((byte)uVar6 ^ 0x2a) & 0x3f);
  uVar31 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  puVar24 = (ulonglong *)(DAT_182671560 - (uVar29 ^ 0xc5260293));
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar27 ^ uVar32;
  lVar2 = DAT_182671560;
  *puVar24 = (uVar27 | uVar26) ^ uVar31;
  uVar26 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 + -0xc08) = CONCAT44(uVar4,uVar9) ^ 0x512541891280018 | 0x9a2d08e766c1ed21;
  lVar3 = DAT_182671560;
  uVar39 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x810087d0)) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x800)) -
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0xc022e28)) ^ uVar31) ^ uVar39;
  uVar8 = DAT_182671748;
  *(ulonglong *)(lVar2 + -0x318) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x898)) >>
       (((byte)uVar12 ^ *(byte *)(lVar2 + -0x670)) & 0x3f);
  uVar27 = CONCAT44(uVar8,uVar8);
  puVar25 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xc022288));
  uVar21 = *(ulonglong *)(lVar2 - (uVar41 ^ 0x897c6976)) ^ uVar27 ^ uVar31 ^ uVar22 ^
           *(ulonglong *)(lVar2 + -0x2a0);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar21;
  *(ulonglong *)(lVar2 + -0x240) =
       (CONCAT44(uVar5,uVar9) ^ 0x3df8754f821700a1) >> ((byte)*puVar25 & 0x3f);
  uVar12 = DAT_1826717bc;
  local_e0 = (byte)uVar23;
  uVar26 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x1d8)) >> ((local_e0 ^ 0x95) & 0x3f);
  *(ulonglong *)(lVar3 + -0x110) = uVar26 ^ CONCAT44(DAT_182671840,DAT_182671840);
  uVar8 = DAT_182671634;
  bVar16 = (byte)uVar5;
  uVar21 = (uVar27 ^ uVar21) << ((bVar16 ^ 0xa9) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar21 ^ CONCAT44(uVar12,uVar12);
  lVar2 = DAT_182671560;
  uVar21 = uVar21 | uVar26;
  uVar40 = CONCAT44(uVar8,uVar8);
  puVar20 = (ulonglong *)(DAT_182671560 + -0x2a0);
  uVar38 = CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar26 = *(ulonglong *)(DAT_182671560 + -0x6d0);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar21 ^ uVar40;
  uVar8 = DAT_18267174c;
  *(ulonglong *)(lVar2 + -0xc08) = (uVar22 ^ *puVar20) - uVar21 ^ uVar38;
  uVar12 = DAT_1826717b4;
  uVar5 = DAT_1826715b4;
  uVar6 = DAT_18267157c;
  lVar3 = DAT_182671560;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar21 = uVar26 ^ uVar22 ^ uVar39 ^ uVar42 ^ *(ulonglong *)(lVar2 + -0x8a8);
  *(ulonglong *)(lVar2 + -0x800) = uVar21;
  uVar31 = (uVar21 ^ uVar22) >> (((byte)uVar9 ^ 0xe2) & 0x3f);
  *(ulonglong *)(lVar2 + -0x898) = uVar31 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar17,DAT_182671598) ^ 0x10432146ad167f1e) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar5 ^ 0x1c022200)) ^ (byte)uVar8) & 0x3f);
  uVar21 = (uVar22 ^ uVar21) << (((byte)uVar5 ^ 0x34) & 0x3f);
  uVar32 = CONCAT44(DAT_182671810,DAT_182671810);
  *(ulonglong *)(lVar3 + -0x318) = uVar21 ^ CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar31 = uVar31 | uVar21;
  uVar22 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar3 + -0x628) = uVar31 ^ uVar32;
  uVar5 = DAT_18267156c;
  uVar21 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267156c ^ 0x81008340)) =
       (uVar26 ^ uVar39) - uVar31 ^ uVar22;
  uVar7 = DAT_182671598;
  uVar42 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar26 = *(ulonglong *)(lVar3 - (uVar15 ^ 0x442689b3)) ^
           *(ulonglong *)(lVar3 - (uVar21 ^ 0xc022e28)) ^ uVar42 ^ uVar32 ^ uVar38;
  uVar31 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar3 + -0xa88) = uVar26;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (uVar26 ^ uVar42) >> (((byte)uVar5 ^ 0x19) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x897c6e4e)) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x96bf3dae)) ^ uVar22) + 0x493b10bcd5c4a34a;
  uVar26 = (uVar42 ^ *puVar25) << 0x27;
  uVar21 = CONCAT44(DAT_1826715f4,DAT_1826715f4);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar26 ^ CONCAT44(DAT_182671654,DAT_182671654);
  uVar5 = DAT_18267156c;
  puVar20 = (ulonglong *)(lVar2 - (uVar30 ^ 0x803c2dee));
  *puVar20 = (*(ulonglong *)(lVar2 + -0x1d8) ^ uVar31 | uVar26) ^ uVar21;
  uVar8 = DAT_1826717e0;
  uVar26 = (uVar38 ^ *(ulonglong *)(lVar2 + -0xc08)) - (CONCAT44(uVar6,uVar9) ^ 0x7187fa5c203974e9);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar26 ^ CONCAT44(DAT_182671658,DAT_182671658);
  uVar12 = DAT_1826718d4;
  uVar42 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x670) = uVar26 - (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar21) ^ uVar42;
  *(int *)(lVar2 + -0x874) = -0x35efb3ae << (((byte)uVar5 ^ 0xc) & 0x1f);
  uVar43 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x800) =
       (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar21) - (CONCAT44(uVar10,uVar7) ^ 0xdbb598bbb59d4d93) ^
       uVar43;
  uVar26 = CONCAT44(DAT_182671820,DAT_182671820);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x897c6c46)) =
       *(ulonglong *)(lVar2 - (uVar36 ^ 0x96bf3f6e)) ^ uVar22 ^ uVar40 ^ uVar26 ^
       *(ulonglong *)(lVar2 + -0x240);
  uVar21 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  puVar33 = (ulonglong *)(lVar2 - ((ulonglong)DAT_18267157c ^ 0xc022098));
  *puVar33 = (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar26) >> ((bVar16 ^ 0x9a) & 0x3f) ^ uVar21;
  uVar11 = DAT_1826715b4;
  lVar2 = DAT_182671560;
  uVar31 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       CONCAT44(uVar7,uVar23) ^ CONCAT44(uVar17,uVar5) ^ 0x1f3fbb21149096b8;
  *(ulonglong *)(lVar2 + -0x628) =
       (*(ulonglong *)(lVar2 + -0x318) ^ uVar26) << ((bVar16 ^ 0xa4) & 0x3f) ^ uVar38;
  lVar3 = DAT_182671560;
  puVar28 = (ulonglong *)(lVar2 - (uVar15 ^ 0x442684ab));
  *puVar28 = (CONCAT44(uVar23,uVar7) ^ 0x4c6c07edcf02ef0f) -
             (CONCAT44(uVar4,uVar11) ^ 0x3115cf7807e7d382);
  uVar36 = CONCAT44(DAT_182671688,DAT_182671688);
  uVar32 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x803c2966)) ^ uVar38 |
           *(ulonglong *)(lVar3 + -0x898) ^ uVar21;
  uVar21 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  *(ulonglong *)(lVar3 + -0xa88) = uVar32 ^ uVar36;
  uVar26 = CONCAT44(uVar6,DAT_182671598);
  uVar22 = (uVar22 ^ *(ulonglong *)(lVar3 + -0x240)) - (CONCAT44(uVar6,uVar9) ^ 0x4b816cde222377e3);
  *(ulonglong *)(lVar3 + -0x1d8) = uVar22 ^ uVar21;
  uVar8 = DAT_182671864;
  *(ulonglong *)(lVar3 + -0xbf0) =
       (uVar26 ^ 0xd711b9e41e7b6c17) + (CONCAT44(uVar23,uVar17) ^ 0xa98d742e46202d7b);
  uVar38 = CONCAT44(uVar8,uVar8);
  uVar26 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *(ulonglong *)(lVar3 + -0xc08) =
       uVar22 - (*(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x1c022088)) ^ uVar36) ^ uVar38;
  uVar12 = DAT_182671814;
  lVar2 = DAT_182671560;
  puVar25 = (ulonglong *)(lVar3 - (uVar31 ^ 0x1c022a80));
  uVar22 = uVar32 + (CONCAT44(uVar9,uVar19) ^ 0x2d0ba7db242e3191) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar22;
  uVar8 = DAT_18267179c;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x2a0) =
       CONCAT44(DAT_18267171c,DAT_18267171c) ^
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0xa38) ^ uVar32);
  uVar21 = CONCAT44(uVar8,uVar8);
  *puVar25 = *(ulonglong *)(lVar3 + -0x670) ^ uVar22 ^ uVar21 ^ uVar26 ^ uVar42;
  uVar12 = DAT_182671630;
  uVar31 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar2 + -0x6d0) =
       (*(ulonglong *)(lVar2 + -0x80) ^ uVar21) >> ((bVar34 ^ 0x4b) & 0x3f) ^ uVar31;
  uVar5 = DAT_18267157c;
  uVar26 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x803c2c56)) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0xc526043b)) ^ uVar21) << 0x3b ^ CONCAT44(uVar12,uVar12);
  uVar13 = DAT_182671784;
  uVar22 = CONCAT44(DAT_182671784,DAT_182671784);
  uVar21 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xc022910)) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0xc022b18)) ^ CONCAT44(uVar12,uVar12) |
       *(ulonglong *)(lVar2 - (uVar29 ^ 0xc526026b)) ^ uVar31) ^ uVar22;
  uVar36 = uVar27 ^ *(ulonglong *)(lVar2 + -0x800) ^ uVar38 ^ uVar43 ^
           *(ulonglong *)(lVar2 + -0xc08);
  uVar31 = CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar26 = *(ulonglong *)(lVar2 - (uVar21 ^ 0x81008010));
  *(ulonglong *)(lVar2 + -0x240) = uVar36;
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 + -0x670) ^ uVar42) - (uVar26 ^ uVar22) ^ uVar31;
  uVar8 = DAT_1826716fc;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar23,uVar17) ^ 0x6e4f85781ae9d4a2) >>
       (((byte)uVar13 ^ *(byte *)(lVar2 + -0x110)) & 0x3f);
  lVar2 = DAT_182671560;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x803c24be)) =
       (uVar27 ^ uVar36) >> ((bVar16 ^ 0x9e) & 0x3f) ^ uVar26;
  uVar8 = DAT_182671600;
  *(ulonglong *)(lVar2 + -0x1d8) =
       (CONCAT44(uVar23,uVar9) ^ 0x7b0c087dc6bc6a91) - (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar26);
  uVar27 = (uVar27 ^ *(ulonglong *)(lVar2 + -0x240)) << (((byte)DAT_182671598 ^ 0x1b) & 0x3f);
  uVar36 = CONCAT44(DAT_1826716f0,DAT_1826716f0);
  *(ulonglong *)(lVar2 + -0xa88) = uVar27 ^ CONCAT44(uVar8,uVar8);
  uVar17 = DAT_1826717e4;
  uVar21 = (ulonglong)DAT_1826717e4;
  uVar42 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *puVar20 = (uVar27 | *(ulonglong *)(lVar2 + -0xbf0) ^ uVar26) ^ uVar36;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar35 ^ 0x5283b4cb22f41313;
  uVar27 = CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar26 = CONCAT44(uVar6,DAT_18267156c);
  uVar35 = (uVar38 ^ *(ulonglong *)(lVar2 + -0xc08)) -
           (*(ulonglong *)(lVar2 - (uVar29 ^ 0xc526061b)) ^ uVar36) ^ uVar27;
  *(ulonglong *)(lVar2 + -0x80) = uVar35;
  *(ulonglong *)(lVar2 + -0x6d0) =
       (uVar26 ^ 0xdae488f4f73e6c13) << ((*(byte *)(lVar2 + -0x318) ^ (byte)uVar12) & 0x3f);
  uVar26 = *(ulonglong *)(lVar2 - (uVar15 ^ 0x44268d23));
  *(uint *)(lVar2 + -0x274) = DAT_18267157c ^ 0x35bfaba2 | *(uint *)(lVar2 + -0x678);
  uVar12 = DAT_1826717c4;
  uVar26 = uVar26 ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar42 ^ uVar36 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x670) = uVar26;
  uVar8 = _DAT_182671610;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x628) =
       ((ulonglong)(uVar17 >> 0x17) | uVar21 << 9) ^ uVar26 >> 0x17 ^ uVar29;
  uVar12 = DAT_1826717d4;
  uVar21 = (uVar26 ^ uVar42) << ((bVar37 ^ 0x77) & 0x3f);
  uVar26 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar2 + -0x800) = uVar21 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_1826715c8;
  lVar3 = DAT_182671560;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar21 = *(ulonglong *)(lVar2 - (uVar26 ^ 0xe46dd4be)) ^ uVar29 | uVar21;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar21 ^ uVar38;
  uVar42 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x240) = (*(ulonglong *)(lVar3 + -0x898) ^ uVar31) - uVar21 ^ uVar42;
  lVar2 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(DAT_182671560 - (uVar15 ^ 0x44268e4b)) =
       uVar29 ^ *puVar28 ^ uVar35 ^ uVar27 ^ uVar22;
  uVar22 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0xbf0)) >> ((bVar16 ^ 0x93) & 0x3f) ^ uVar22;
  uVar26 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar29 ^ *(ulonglong *)(lVar2 + -0xbf0)) + 0xf88dadd480d3131c;
  uVar21 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar2 + -0xc08) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0xc0223f0)) ^ uVar29) << ((bVar16 ^ 0xa3) & 0x3f) ^ uVar21;
  uVar26 = (ulonglong)DAT_1826715a4;
  *(undefined4 *)(lVar2 - (uVar30 ^ 0x803c2c9a)) = 0xaa4a96c;
  uVar17 = DAT_1826718c8;
  uVar8 = DAT_182671874;
  uVar31 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar29 = (ulonglong)DAT_1826718c8;
  uVar26 = *(ulonglong *)(lVar2 - (uVar26 ^ 0xacee707e)) ^ uVar21 |
           uVar22 ^ *(ulonglong *)(lVar2 + -0xa88);
  uVar21 = uVar26 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x318) = uVar21;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar36 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar2 + -0x6d0) = (*puVar25 ^ uVar27) - uVar26 ^ uVar22;
  *puVar18 = uVar21 ^ uVar36 ^ uVar31 ^ uVar42 ^ *(ulonglong *)(lVar2 + -0x240);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x897c692e)) =
       CONCAT44(uVar4,DAT_182671584) ^ 0x2c1864171cd21528 | *(ulonglong *)(lVar2 + -0x6d0) ^ uVar22;
  uVar40 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_18267156c ^ 0x81008728)) =
       (*(ulonglong *)(lVar2 + -0x2a0) >> 0x20 ^ uVar29) >> 0x14 ^ uVar40;
  uVar12 = DAT_182671714;
  uVar8 = DAT_18267159c;
  uVar26 = (*(ulonglong *)(lVar2 + -0x2a0) ^ uVar36) << 0xc;
  *(ulonglong *)(lVar2 + -0x800) = uVar26 ^ CONCAT44(DAT_182671620,DAT_182671620);
  uVar35 = CONCAT44(uVar12,uVar12);
  *puVar33 = (*(ulonglong *)(lVar2 + -0x628) ^ uVar40 | uVar26) ^ uVar35;
  uVar21 = CONCAT44(DAT_182671770,DAT_182671770);
  uVar26 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0x897c6d1e)) ^ uVar42) -
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar35) ^ uVar21;
  uVar12 = DAT_182671890;
  *(ulonglong *)(lVar2 + -0x8a8) = ((ulonglong)(uVar9 >> 0x14) | uVar26 << 0xc) ^ 0x9d053a0de36;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar26 = CONCAT44(uVar8,DAT_182671594);
  uVar31 = *(ulonglong *)(lVar2 + -0x6d0) ^ uVar36 ^ uVar22 ^ uVar38 ^
           *(ulonglong *)(lVar2 + -0x1d8);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar31;
  bVar16 = (byte)uVar8;
  *(ulonglong *)(lVar2 + -0xa88) = uVar26 ^ 0x14d8f0048458400e | 0x8b270b3a7b02a3a1;
  uVar29 = (uVar36 ^ uVar31) >> ((bVar16 ^ 0x39) & 0x3f);
  uVar26 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(lVar2 + -0xc08) = uVar29 ^ CONCAT44(DAT_182671674,DAT_182671674);
  uVar5 = DAT_1826715b0;
  uVar27 = (ulonglong)DAT_1826715b0;
  uVar41 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  uVar31 = (uVar36 ^ uVar31) << ((bVar34 ^ 0x49) & 0x3f);
  *(ulonglong *)(lVar2 + -0x80) = uVar31 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x318) = (uVar29 | uVar31) ^ uVar32;
  uVar17 = DAT_182671578;
  lVar2 = DAT_182671560;
  uVar31 = (ulonglong)DAT_182671578;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0xe46dd4e6)) =
       (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x2a001ad2)) ^ uVar22) -
       (*(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x162f3f90)) ^ uVar32) ^ uVar41;
  uVar6 = DAT_182671870;
  uVar26 = (ulonglong)DAT_182671870;
  uVar27 = *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x2a001f1a)) ^ uVar39 ^ uVar21 ^ uVar32 ^
           *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar27;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671598 ^ 0xc022000)) =
       (uVar39 ^ uVar27) >> ((bVar16 ^ 0xe) & 0x3f) ^ uVar21;
  uVar8 = DAT_1826717d0;
  uVar29 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x2a0)) << ((bVar34 ^ 0x7c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x240) = uVar29 ^ CONCAT44(uVar6,uVar6);
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar22 = (ulonglong)DAT_182671590;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0x162f3420)) =
       (*(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x803c274e)) ^ uVar21 | uVar29) ^ uVar27;
  uVar30 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x982fbc50)) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x110)) -
       (CONCAT44(uVar9,DAT_182671588) ^ 0xbf2c6a46d1ec4aaf) ^ uVar30;
  uVar13 = DAT_1826717e8;
  uVar12 = DAT_182671724;
  *(ulonglong *)(lVar2 + -0xa88) = (*puVar24 ^ uVar40) >> ((bVar37 ^ 0x55) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x1d8)) - (uVar27 ^ *(ulonglong *)(lVar2 + -0x8a8)) ^
       CONCAT44(uVar12,uVar12);
  uVar8 = DAT_1826717a8;
  uVar17 = DAT_18267156c ^ 0xaa1f410a;
  *(ulonglong *)(lVar2 + -0xc08) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x8a8)) - (CONCAT44(uVar4,uVar5) ^ 0xb9494ce07eb5dfb9) ^
       CONCAT44(uVar13,uVar13);
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x80) =
       uVar21 ^ *(ulonglong *)(lVar2 + -0x898) ^ *(ulonglong *)(lVar2 + -0x670) ^ uVar41 ^ uVar35;
  *(uint *)(lVar2 + -0x968) = *(int *)(lVar2 + -0x910) - uVar17;
  uVar30 = CONCAT44(DAT_182671888,DAT_182671888);
  *(ulonglong *)(lVar2 + -0x6d0) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x80)) >> (((byte)DAT_18267157c ^ 0x10) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x982fbe90)) =
       (*(ulonglong *)(lVar2 + -0x240) >> 0x20 ^ uVar26) >> 3;
  uVar8 = DAT_182671680;
  uVar17 = DAT_182671594;
  uVar26 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(lVar2 + -0x2a0) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x80)) << ((local_e0 ^ 0x8b) & 0x3f) ^ uVar26;
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x44268dbb)) =
       (uVar26 ^ *puVar18 | uVar30 ^ *(ulonglong *)(lVar2 + -0x6d0)) ^ uVar21;
  uVar8 = DAT_1826718a8;
  uVar26 = (*(ulonglong *)(lVar2 + -0x670) ^ uVar41) -
           (CONCAT44(uVar17,DAT_182671588) ^ 0x23da602dafb0591b);
  *(ulonglong *)(lVar2 + -0x110) = uVar26 ^ CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar2 + -0xa88) =
       (CONCAT44(uVar10,uVar9) ^ 0xfc1a3cbc555797c7) <<
       (((byte)uVar12 ^ *(byte *)(lVar2 + -0xbf0)) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x162f3aa0)) =
       uVar26 - (uVar21 ^ *(ulonglong *)(lVar2 + -0x800)) ^ CONCAT44(uVar8,uVar8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar1 ^ uVar23;
  return;
}



############ FUN_ 180ea7be0 size=5455 ############

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

void FUN_180ea7be0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  byte bVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_c0;
  
  uVar8 = DAT_182671834;
  uVar9 = DAT_182671598;
  uVar7 = DAT_182671578;
  lVar5 = DAT_182671560;
  DAT_1826715b4 = ~DAT_18267158c;
  uVar18 = DAT_182671594 & 7;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      uVar19 = DAT_18267157c;
      if (uVar18 == 0) {
        uVar19 = DAT_182671594;
      }
    }
    else {
      uVar19 = DAT_1826715ac;
      if (uVar18 < 3) {
        uVar19 = DAT_182671588;
      }
    }
  }
  else if (uVar18 < 6) {
    uVar19 = DAT_182671590;
    if (uVar18 < 5) {
      uVar19 = DAT_182671580;
    }
  }
  else {
    uVar19 = DAT_182671584;
    if (uVar18 < 7) {
      uVar19 = DAT_1826715a8;
    }
  }
  uVar37 = (ulonglong)DAT_182671598;
  uVar26 = DAT_182671598 << 0x10 | DAT_182671598 >> 0x10;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671b9c);
  uVar23 = *(uint *)(&DAT_182611e78 + DAT_182671b9c) ^ DAT_182671598;
  uVar20 = (ulonglong)DAT_182671834;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x510);
  uVar34 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar25 = (ulonglong)DAT_182671578;
  DAT_182671568 = uVar26;
  DAT_1826715a4 = uVar19;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0x882aaa7c)) =
       (*puVar1 ^ CONCAT44(DAT_182671834,DAT_182671834)) << 0x2e ^ uVar34;
  uVar30 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  uVar27 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x33cf3027)) =
       ((ulonglong)(uVar8 >> 0x12) | uVar20 << 0xe) ^ *puVar1 >> 0x12 ^ uVar30;
  uVar25 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar5 + -0x600) =
       (CONCAT44(DAT_18267157c,uVar19) ^ 0x30b0c2cc3bed772a) <<
       ((*(byte *)(lVar5 - (uVar27 ^ 0xdaea841a)) ^ (byte)uVar8) & 0x3f);
  uVar24 = CONCAT44(DAT_182671870,DAT_182671870);
  uVar40 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(lVar5 + -0x688) =
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0xf7fffb8f)) ^ uVar34 |
       *(ulonglong *)(lVar5 + -0x9e8) ^ uVar30) ^ uVar24;
  uVar11 = DAT_182671590;
  uVar8 = DAT_18267158c;
  uVar31 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  puVar2 = (ulonglong *)(lVar5 + -0x9f8);
  *(ulonglong *)(lVar5 + -0x638) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671588 ^ 0x1f841634)) ^
       *(ulonglong *)(lVar5 + -0x6b8) ^ uVar31 ^ uVar40 ^ uVar24;
  uVar34 = CONCAT44(DAT_182671828,DAT_182671828) ^ *puVar2;
  uVar27 = CONCAT44(DAT_182671704,DAT_182671704);
  *(ulonglong *)(lVar5 + -0xa60) =
       (CONCAT44(DAT_182671758,DAT_182671758) ^ *(ulonglong *)(lVar5 + -0x318)) + uVar34 ^ uVar27;
  uVar16 = DAT_182671794;
  uVar15 = DAT_1826715b4;
  uVar19 = DAT_1826715a8;
  lVar5 = DAT_182671560;
  uVar20 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       CONCAT44(DAT_182671584,DAT_1826715a8) ^ 0x5f87a9cbddf592fe |
       CONCAT44(uVar11,uVar8) ^ 0x5316a13a55ae8e42;
  lVar6 = DAT_182671560;
  uVar30 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x610) = uVar34 << (((byte)DAT_1826715a4 ^ 0xb0) & 0x3f) ^ uVar30;
  uVar25 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671580 ^ 0x882aad1c)) =
       uVar34 >> (((byte)DAT_182671594 ^ 0x3e) & 0x3f) ^ uVar25;
  uVar17 = _DAT_1826716c0;
  uVar29 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar25 = (*(ulonglong *)(lVar6 + -0x610) ^ uVar30 | *(ulonglong *)(lVar6 + -0x110) ^ uVar25) ^
           uVar29;
  *(ulonglong *)(lVar6 + -0x5c8) = uVar25;
  uVar16 = DAT_182671654;
  uVar34 = CONCAT44(uVar17,uVar17);
  uVar25 = *(ulonglong *)(lVar6 + -0xa60) ^ uVar34 ^ uVar25 ^ uVar29 ^ uVar27;
  *(ulonglong *)(lVar6 + -0x3f0) = uVar25;
  uVar28 = CONCAT44(uVar16,uVar16);
  puVar3 = (ulonglong *)(DAT_182671560 + -0x748);
  *puVar3 = (uVar34 ^ uVar25) + (*(ulonglong *)(DAT_182671560 + -0x6b8) ^ uVar31) ^ uVar28;
  uVar16 = DAT_182671760;
  lVar5 = DAT_182671560;
  uVar30 = (ulonglong)uVar26;
  bVar21 = (byte)(uVar9 >> 0x10);
  uVar25 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(DAT_182671560 + -0x628) =
       *(ulonglong *)(DAT_182671560 + -0x600) >> ((bVar21 ^ 0x48) & 0x3f);
  uVar14 = DAT_1826715ac;
  uVar32 = CONCAT44(uVar16,uVar16);
  uVar31 = (*(ulonglong *)(lVar5 - (uVar25 ^ 0xc511cdeb)) ^ uVar34) <<
           (((byte)uVar19 ^ 0xff) & 0x3f);
  puVar38 = (ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a4 ^ 0x1f84134c));
  *puVar1 = uVar31 ^ uVar32;
  puVar4 = (ulonglong *)(lVar5 + -0x670);
  *puVar4 = (uVar34 ^ *puVar38) + 0x52519d672dd47819;
  bVar36 = (byte)uVar9;
  bVar22 = (byte)DAT_182671584;
  *(ulonglong *)(lVar5 + -0x9e8) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xc555ed2f)) ^ uVar34) >>
       ((bVar36 ^ 0x4c) & 0x3f) ^ uVar32;
  *(longlong *)(lVar5 + -0x688) = *(longlong *)(lVar5 + -0xbf0) << ((bVar22 ^ 0x83) & 0x3f);
  uVar25 = CONCAT44(DAT_182671850,DAT_182671850);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a8 ^ 0xe925bbdd)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826715a8 ^ 0xe925b12d)) ^ uVar32 | uVar31) ^ uVar25;
  uVar16 = DAT_1826715e4;
  *(undefined8 *)(lVar5 + -0x1f0) = 0xa77;
  uVar32 = CONCAT44(uVar16,uVar16);
  *puVar2 = *(ulonglong *)(lVar5 + -0x318) ^ uVar32 ^ uVar25 ^ uVar28 ^ *puVar3;
  uVar25 = (ulonglong)DAT_182671594;
  *(undefined8 *)(lVar5 + -0x610) = 0xf7cedf3fd7ebdf35;
  lVar5 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671740,DAT_182671740);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (*(ulonglong *)(DAT_182671560 - (uVar25 ^ 0xdaea8732)) ^ uVar40) +
       (*(ulonglong *)(DAT_182671560 + -0xa60) ^ uVar27) ^ uVar31;
  bVar22 = (byte)DAT_182671580;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671578 ^ 0x33cf3c07)) =
       uVar28 ^ *puVar3 ^ 0xea0fb397dfed9a04;
  uVar19 = DAT_182671588;
  uVar40 = *(ulonglong *)(lVar5 + -0x638) ^ uVar40;
  uVar27 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar25 = (ulonglong)DAT_182671588;
  uVar33 = uVar40 << 0x16;
  *(int *)(lVar5 + -0x910) = *(int *)(lVar5 + -0x5cc) + 0x7a8f7be;
  uVar17 = _DAT_182671838;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar33 ^ uVar27;
  uVar16 = DAT_1826715c4;
  uVar34 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 + -0x600) = uVar40 >> ((bVar22 ^ 0x26) & 0x3f) ^ uVar34;
  uVar17 = DAT_182671824;
  lVar6 = DAT_182671560;
  uVar40 = CONCAT44(uVar16,uVar16);
  uVar27 = (ulonglong)DAT_1826715a8;
  uVar25 = (*(ulonglong *)(lVar5 - (uVar25 ^ 0x1f8416bc)) ^ uVar34 | uVar33) ^ uVar40;
  *(ulonglong *)(lVar5 + -0x628) = uVar25;
  uVar8 = DAT_18267157c;
  uVar33 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x754a3332)) =
       *(ulonglong *)(lVar5 - (uVar27 ^ 0xe925b9d5)) ^ uVar33 ^ uVar40 ^ uVar31 ^ uVar25;
  uVar10 = DAT_1826715b4;
  uVar34 = CONCAT44(DAT_18267187c,DAT_18267187c);
  *(ulonglong *)(lVar6 + -0x3f0) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xc511c953)) ^ uVar28) + (uVar33 ^ *puVar4) ^
       uVar34;
  *(uint *)(lVar6 - ((ulonglong)uVar8 ^ 0xc511cd33)) = uVar9 ^ 0x1d0a5334 | uVar10 ^ 0xded9d82e;
  uVar17 = DAT_182671874;
  uVar40 = (uVar33 ^ *puVar4) << 0x20;
  uVar35 = (uVar33 ^ *puVar4) >> ((bVar36 ^ 0x6a) & 0x3f);
  uVar27 = (ulonglong)DAT_182671580;
  uVar25 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(lVar6 + -0xbf0) = uVar40 ^ CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar6 + -0x688) = uVar35 ^ uVar25;
  lVar5 = DAT_182671560;
  uVar33 = (ulonglong)DAT_1826717ac;
  uVar28 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar40 = (uVar35 | uVar40) ^ uVar28;
  *puVar1 = uVar40;
  uVar16 = DAT_1826718a8;
  uVar41 = CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar25 = *puVar2;
  *(ulonglong *)(lVar5 + -0x9e8) =
       *(ulonglong *)(lVar5 - (uVar27 ^ 0x882aa91c)) ^ uVar41 ^ uVar28 ^ uVar34 ^ *puVar38;
  uVar8 = DAT_182671578;
  uVar35 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x318) = (uVar40 >> 0x20 ^ uVar33) >> 0x11;
  uVar12 = DAT_182671594;
  *(ulonglong *)(lVar5 + -0x1f0) =
       (*(ulonglong *)(lVar5 + -0x110) ^ uVar31) + (uVar25 ^ uVar32) ^ uVar35;
  uVar10 = DAT_18267158c;
  uVar28 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  bVar22 = (byte)DAT_1826715ac;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671590 ^ 0xcf39c923)) =
       (uVar25 ^ uVar32) << (((byte)uVar8 ^ 0xef) & 0x3f) ^ uVar28;
  lVar5 = DAT_182671560;
  uVar27 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x35427f2a)) =
       (*puVar2 ^ uVar32) >> ((bVar22 ^ 0xdf) & 0x3f) ^ uVar27;
  uVar25 = CONCAT44(DAT_18267184c,DAT_18267184c);
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x754a308a)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0xc555e4bf)) ^ uVar27 |
       *(ulonglong *)(lVar5 + -0x610) ^ uVar28) ^ uVar25;
  lVar5 = DAT_182671560;
  uVar40 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(DAT_182671560 + -0x638) =
       *(ulonglong *)(DAT_182671560 + -0x5c8) ^ uVar40 ^ uVar25 ^ uVar35 ^
       *(ulonglong *)(DAT_182671560 + -0x1f0);
  uVar16 = DAT_182671660;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (CONCAT44(uVar19,DAT_18267157c) ^ 0xfcaa3f3c9180492d) +
       (uVar34 ^ *(ulonglong *)(lVar5 + -0x3f0));
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0xc555e8df)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671584 ^ 0xda95d89f)) ^ uVar40) +
       (CONCAT44(uVar11,DAT_1826715a8) ^ 0x88ba8bed5db9f0c8) ^ uVar33;
  uVar13 = DAT_1826715a4;
  lVar6 = DAT_182671560;
  puVar38 = (ulonglong *)(lVar5 - (uVar37 ^ 0x35427362));
  *puVar38 = (CONCAT44(uVar12,uVar15) ^ 0x9e060de78866482d) <<
             ((*(byte *)(DAT_182671560 + -0xbf0) ^ (byte)uVar17) & 0x3f);
  uVar8 = DAT_182671590;
  uVar27 = (CONCAT44(uVar13,uVar13) ^ 0x34f56295181ba698) +
           (uVar34 ^ *(ulonglong *)(lVar6 + -0x3f0));
  *puVar3 = uVar27 ^ CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar25 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xcf39c943)) =
       uVar27 + (uVar33 ^ *(ulonglong *)(lVar6 + -0x600)) ^ uVar33;
  uVar10 = DAT_1826715ac;
  uVar31 = (*(ulonglong *)(lVar6 - (uVar25 ^ 0x882aaa0c)) ^ uVar33) << (((byte)uVar8 ^ 0x3d) & 0x3f)
  ;
  uVar27 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar6 + -0x688) = uVar31 ^ CONCAT44(DAT_182671764,DAT_182671764);
  uVar34 = (uVar33 ^ *(ulonglong *)(lVar6 + -0x600)) >> (((byte)uVar10 ^ 0xcd) & 0x3f);
  uVar25 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar6 + -0x110) = uVar34 ^ uVar27;
  uVar27 = (uVar34 | uVar31) ^ uVar29;
  *puVar1 = uVar27;
  uVar8 = DAT_182671584;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671594 ^ 0xdaea8212)) =
       *(ulonglong *)(lVar6 - (uVar25 ^ 0xe925beb5)) ^ uVar33 ^ uVar29 ^ uVar24 ^ uVar27;
  uVar25 = *(ulonglong *)(lVar6 + -0x9e8);
  uVar27 = *(ulonglong *)(lVar6 + -0x1f0);
  *puVar2 = (*(ulonglong *)(lVar6 + -0x318) ^ uVar24) << (((byte)uVar8 ^ 0xb3) & 0x3f);
  uVar31 = CONCAT44(uVar7,DAT_182671588);
  uVar29 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar34 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar6 + -0x610) = (uVar41 ^ uVar25) + (uVar31 ^ 0x1a5c6c67d8476689) ^ uVar29;
  uVar10 = DAT_18267158c;
  uVar8 = DAT_182671580;
  uVar39 = (ulonglong)DAT_18267158c;
  uVar32 = CONCAT44(uVar9,DAT_18267158c);
  uVar25 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  *(ulonglong *)(lVar6 + -0xa60) =
       *(ulonglong *)(lVar6 - (uVar34 ^ 0x33cf3ad7)) ^ uVar24 |
       CONCAT44(uVar13,uVar15) ^ 0x7182edb728896819;
  uVar34 = (uVar32 ^ 0xca4d16073f48b717) + (uVar35 ^ uVar27);
  uVar27 = CONCAT44(uVar14,uVar8);
  *(ulonglong *)(lVar6 + -0x5c8) = uVar34 ^ uVar25;
  uVar7 = DAT_18267157c;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_18267157c ^ 0xc511c8a3)) =
       uVar34 | uVar27 ^ 0x4d60c90d7043394d;
  lVar5 = DAT_182671560;
  uVar34 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x754a337a)) =
       (*(ulonglong *)(DAT_182671560 + -0x5c8) ^ uVar25) +
       (*(ulonglong *)(DAT_182671560 + -0x610) ^ uVar29) ^ uVar34;
  uVar29 = *(ulonglong *)(lVar5 + -0x610) ^ uVar29;
  uVar32 = uVar29 << ((bVar36 ^ 0x5a) & 0x3f);
  uVar25 = CONCAT44(uVar11,DAT_182671594);
  *(ulonglong *)(lVar5 + -0xbf0) = uVar32 ^ CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar16 = DAT_1826716f8;
  *(ulonglong *)(lVar5 + -0x628) = uVar25 ^ CONCAT44(uVar10,uVar7) ^ 0xcc211e5222c5f3f5;
  lVar6 = DAT_182671560;
  uVar29 = uVar29 >> (((byte)uVar8 ^ 0x3c) & 0x3f);
  uVar25 = *(ulonglong *)(DAT_182671560 + -0x100);
  *(ulonglong *)(lVar5 + -0x3f0) = uVar29 ^ CONCAT44(uVar16,uVar16);
  uVar8 = DAT_182671674;
  uVar41 = (ulonglong)DAT_182671674;
  *(byte *)(lVar6 + -0x4b9) = *(byte *)(uVar25 ^ uVar41) ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a8 ^ 0xe925bf8d)) = (uVar29 | uVar32) ^ uVar28;
  uVar9 = DAT_182671788;
  *(ulonglong *)(lVar6 + -0x600) =
       uVar34 ^ *(ulonglong *)(lVar6 + -0x638) | uVar31 ^ 0x94f21e3ee6b9b003;
  uVar16 = DAT_18267172c;
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar25 = uVar32 ^ uVar34 ^ uVar28 ^ *(ulonglong *)(lVar6 + -0x638) ^ *puVar3;
  *(ulonglong *)(lVar6 + -0x688) = uVar25;
  uVar17 = DAT_1826717e4;
  uVar31 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0x110) = (uVar25 ^ uVar32) + (uVar33 ^ *puVar4) ^ uVar31;
  uVar33 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 - (uVar39 ^ 0xc555ebcf)) =
       (*(ulonglong *)(lVar6 - (uVar37 ^ 0x354273c2)) ^ uVar32) << 0x34 ^ uVar33;
  uVar29 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *puVar2 = ((ulonglong)uVar9 << 0x14 | (ulonglong)(uVar9 >> 0xc)) ^
            *(ulonglong *)(lVar6 + -0x688) >> 0xc ^ uVar29;
  uVar32 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar25 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar7 ^ 0xc511c7f3)) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0x754a3052)) ^ uVar33 |
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826715a4 ^ 0x1f841944)) ^ uVar29) ^ uVar32;
  uVar42 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar6 + -0xa60) =
       uVar42 ^ uVar32 ^ uVar31 ^ *(ulonglong *)(lVar6 + -0x110) ^ *(ulonglong *)(lVar6 + -0x9e8);
  uVar16 = DAT_182671648;
  uVar39 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar6 + -0x1f0) =
       (uVar34 ^ *(ulonglong *)(lVar6 + -0x638)) + (*(ulonglong *)(lVar6 + -0x318) ^ uVar24) ^
       uVar39;
  uVar9 = DAT_182671584;
  uVar35 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - (uVar37 ^ 0x354273f2)) =
       (*(ulonglong *)(lVar6 - (uVar25 ^ 0x1f8413a4)) ^ uVar24) <<
       (((byte)DAT_182671588 ^ 0x85) & 0x3f) ^ uVar35;
  uVar34 = (ulonglong)DAT_1826715a8;
  local_c0 = (byte)uVar15;
  *(longlong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xcf39cafb)) =
       -0x1fc1f892f9cb4ab9 << ((local_c0 ^ 0x2a) & 0x3f);
  lVar5 = DAT_182671560;
  uVar24 = (*(ulonglong *)(DAT_182671560 + -0x318) ^ uVar24) >> (((byte)uVar9 ^ 0xa0) & 0x3f);
  uVar25 = CONCAT44(uVar19,DAT_1826715ac);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar24 ^ CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar5 + -0x610) = uVar25 ^ 0xf145df11eef2320c;
  lVar6 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar32 = (ulonglong)DAT_182671730;
  uVar25 = (ulonglong)DAT_1826715a4;
  uVar33 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671580 ^ 0x882aa7fc)) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0xe925be7d)) ^ uVar35 | uVar24) ^ uVar29;
  uVar25 = *(ulonglong *)(lVar6 - (uVar25 ^ 0x1f841b4c)) ^ uVar33 ^ uVar29 ^ uVar39 ^
           *(ulonglong *)(lVar6 + -0x1f0);
  uVar24 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar19 = DAT_1826715a8 ^ 0x2aaf2cbf;
  *(ulonglong *)(lVar6 + -0x3f0) = uVar25;
  *(ulonglong *)(lVar6 + -0x600) =
       (uVar31 ^ *(ulonglong *)(lVar6 + -0x110)) + (uVar25 ^ uVar33) ^ uVar24;
  uVar7 = DAT_182671578;
  *(uint *)(lVar6 - ((ulonglong)uVar9 ^ 0xda95dadb)) = -0x2d72b76e - uVar19;
  uVar34 = (uVar33 ^ *(ulonglong *)(lVar6 + -0x3f0)) << (((byte)uVar7 ^ 0xd8) & 0x3f);
  *puVar3 = uVar34 ^ CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar25 = CONCAT44(DAT_182671798,DAT_182671798);
  *puVar4 = (*(ulonglong *)(lVar6 + -0x3f0) >> 0x20 ^ uVar32) >> 9 ^ uVar25;
  lVar5 = DAT_182671560;
  uVar32 = CONCAT44(DAT_18267177c,DAT_18267177c);
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar34 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xda95d8d7)) ^ uVar25 | uVar34) ^ uVar32;
  *(ulonglong *)(lVar6 + -0x688) = uVar34;
  uVar25 = *(ulonglong *)(lVar5 + -0x1f0);
  uVar29 = uVar42 ^ *(ulonglong *)(lVar5 + -0xa60);
  *puVar1 = uVar31 ^ uVar34 ^ uVar32 ^ uVar24 ^ *(ulonglong *)(lVar6 + -0x600);
  uVar34 = (ulonglong)DAT_182671584;
  uVar32 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *puVar2 = (uVar39 ^ uVar25) + uVar29 ^ uVar32;
  uVar17 = DAT_1826717f4;
  lVar6 = DAT_182671560;
  uVar35 = (ulonglong)DAT_182671588;
  uVar34 = (*(ulonglong *)(lVar5 - (uVar34 ^ 0xda95d4c7)) ^ uVar42) << ((bVar21 ^ 0x6a) & 0x3f);
  uVar29 = uVar29 >> (((byte)DAT_182671588 ^ 0xa4) & 0x3f);
  *(ulonglong *)(lVar5 + -0x9e8) = uVar34 ^ CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar16 = DAT_18267166c;
  *(ulonglong *)(lVar6 + -0x638) = uVar29 ^ CONCAT44(uVar17,uVar17);
  uVar25 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0x3aaa14e8)) = (uVar29 | uVar34) ^ uVar25;
  uVar16 = DAT_182671800;
  uVar33 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar6 + -0x318) =
       *(ulonglong *)(lVar6 - (uVar30 ^ 0x754a3cba)) ^ uVar25 ^ uVar32 ^
       *(ulonglong *)(lVar6 + -0x5c8) ^ uVar40;
  uVar7 = DAT_182671590;
  uVar29 = CONCAT44(uVar16,uVar16);
  uVar20 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar6 + -0x610) =
       (*(ulonglong *)(lVar6 - (uVar35 ^ 0x1f8413a4)) ^ uVar40) +
       (uVar24 ^ *(ulonglong *)(lVar6 + -0x600)) ^ uVar29;
  *(byte *)(lVar6 - ((ulonglong)DAT_182671594 ^ 0xdaea88c0)) =
       *(byte *)(*(ulonglong *)(lVar6 - (uVar33 ^ 0x882aad0c)) ^ uVar41) ^ (byte)DAT_1826717c0;
  uVar9 = DAT_1826715a4;
  uVar40 = uVar40 ^ *(ulonglong *)(lVar6 + -0x318);
  uVar30 = CONCAT44(DAT_182671890,DAT_182671890);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar40 << (((byte)uVar7 ^ 0x36) & 0x3f) ^ uVar30;
  uVar34 = CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_18267157c ^ 0xc511c833)) =
       uVar40 >> (((byte)uVar9 ^ 0x87) & 0x3f) ^ uVar34;
  uVar25 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar30 = (uVar34 ^ *puVar38 | uVar30 ^ *(ulonglong *)(lVar6 + -0x6b8)) ^ uVar25;
  *(ulonglong *)(lVar6 + -0xbf0) = uVar30;
  *(ulonglong *)(lVar6 + -0x110) =
       CONCAT44(uVar12,uVar9) ^ 0xe56d3929cb902ae2 | uVar27 ^ 0x695152c503ab3290;
  uVar16 = DAT_1826717cc;
  *(ulonglong *)(lVar6 - (uVar20 ^ 0xcf39ccc3)) =
       *(ulonglong *)(lVar6 - (uVar33 ^ 0x882aaa1c)) ^ uVar29 ^ uVar30 ^ uVar28 ^ uVar25;
  *puVar3 = (uVar32 ^ *puVar2) + (uVar31 ^ *puVar1) ^ CONCAT44(uVar16,uVar16);
  *puVar4 = 0xca648c091ce47b90;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar18 ^ uVar26) * 4) = uVar23;
  return;
}



############ FUN_ 180e56290 size=5332 ############

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

void FUN_180e56290(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  ulonglong uVar14;
  ulonglong *puVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_res20;
  byte local_108;
  byte local_f8;
  
  uVar8 = DAT_182671590;
  uVar7 = DAT_182671588;
  uVar6 = DAT_182671578;
  uVar5 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar40 = (ulonglong)DAT_182671578;
  uVar41 = (ulonglong)DAT_182671570;
  uVar21 = (ulonglong)DAT_182671590;
  uVar32 = DAT_182671578 * DAT_182671588;
  uVar38 = DAT_182671570 ^ DAT_182671590;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671aac);
  uVar11 = *(uint *)(&DAT_182611e80 + DAT_182671aac) ^ DAT_182671588;
  uVar29 = (ulonglong)DAT_182671570;
  uVar14 = CONCAT44(DAT_182671578,DAT_182671590);
  bVar12 = (byte)DAT_182671590;
  uVar34 = (ulonglong)uVar38;
  uVar19 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar27 = (*(ulonglong *)(DAT_182671560 + -0x240) ^ uVar19) >> ((bVar12 ^ 0xf7) & 0x3f);
  uVar30 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar35 = CONCAT44(DAT_182671578,uVar38);
  bVar37 = (byte)uVar38;
  uVar23 = (*(ulonglong *)(DAT_182671560 + -0x240) ^ uVar19) << ((bVar37 ^ 0xcb) & 0x3f);
  uVar39 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  DAT_18267158c = uVar32;
  DAT_182671594 = uVar38;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar23 ^ CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar27 ^ uVar30;
  lVar2 = DAT_182671560;
  uVar42 = (ulonglong)uVar32;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar32 ^ 0x5c1bbf4c)) = (uVar23 | uVar27) ^ uVar39;
  *(ulonglong *)(lVar2 + -0x110) =
       CONCAT44(DAT_182671780,DAT_182671780) ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x898) ^
       0x32f054c9a4a34a3f;
  uVar9 = DAT_182671790;
  puVar17 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfc02ec9a));
  uVar20 = CONCAT44(DAT_182671874,DAT_182671874);
  uVar27 = (ulonglong)uVar7;
  uVar18 = (CONCAT44(DAT_182671690,DAT_182671690) ^ *(ulonglong *)(lVar2 + -0xbf0)) -
           (uVar39 ^ *puVar17) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x628) = uVar18;
  uVar4 = DAT_182671604;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar31 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  uVar23 = CONCAT44(DAT_182671728,DAT_182671728) ^ uVar31 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x6d0)
           ^ *(ulonglong *)(lVar2 + -0x670);
  *(ulonglong *)(lVar2 + -0xa88) = uVar23;
  bVar13 = (byte)uVar5;
  uVar30 = (*(ulonglong *)(DAT_182671560 - (uVar27 ^ 0x6a6a5222)) ^ uVar28) >>
           ((bVar13 ^ 0x27) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x240) = uVar30 ^ CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       (CONCAT44(uVar8,uVar38) ^ 0x6b7eb15b8fef0427) << ((bVar13 ^ 10) & 0x3f);
  uVar4 = DAT_1826717e4;
  lVar2 = DAT_182671560;
  uVar22 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar28 = (uVar23 ^ uVar28) << ((bVar12 ^ 0xe9) & 0x3f);
  uVar23 = *(ulonglong *)(DAT_182671560 + -0x6d0);
  uVar30 = (uVar30 | uVar28) ^ uVar19;
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar28 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x898) = uVar30;
  uVar43 = CONCAT44(uVar4,uVar4);
  uVar24 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar31 ^ uVar23) - (*(ulonglong *)(lVar2 - (uVar42 ^ 0x5c1bb4cc)) ^ uVar19) ^ uVar43;
  uVar23 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar18 = uVar24 ^ uVar20 ^ uVar19 ^ uVar30 ^ uVar18;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar18;
  uVar9 = DAT_182671768;
  *(ulonglong *)(lVar2 + -0x670) = uVar23 ^ **(ulonglong **)(lVar2 + -0x690);
  uVar4 = DAT_182671704;
  local_f8 = (byte)uVar6;
  uVar30 = (uVar24 ^ uVar18) >> ((local_f8 ^ 0x95) & 0x3f);
  local_res20 = (byte)uVar32;
  uVar23 = (uVar24 ^ uVar18) << ((local_res20 ^ 0x7d) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa88) = uVar23 ^ CONCAT44(DAT_182671814,DAT_182671814);
  uVar28 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar30 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x240) = (uVar23 | uVar30) ^ uVar28;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xee71e558)) = uVar23 - uVar30;
  uVar4 = _DAT_1826715f0;
  lVar3 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(lVar2 + -0x6d0) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x628)) - (uVar28 ^ *(ulonglong *)(lVar2 + -0x240)) ^
       uVar30;
  lVar2 = DAT_182671560;
  uVar20 = CONCAT44(uVar4,uVar4);
  local_108 = (byte)uVar7;
  puVar25 = (ulonglong *)(lVar3 - (uVar29 ^ 0xef82fd12));
  uVar23 = uVar20 ^ uVar43 ^ uVar39 ^ *puVar25 ^ *(ulonglong *)(DAT_182671560 + -0x318);
  uVar39 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar23;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xfc02e9f2)) =
       (uVar23 ^ uVar20) >> ((local_108 ^ 0x82) & 0x3f) ^ uVar39;
  uVar4 = DAT_18267179c;
  uVar23 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x898)) << ((bVar37 ^ 0xe8) & 0x3f);
  uVar36 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar23 ^ uVar36;
  uVar33 = CONCAT44(uVar4,uVar4);
  uVar23 = uVar39 ^ *(ulonglong *)(lVar2 + -0x670) | uVar23;
  uVar18 = uVar23 ^ uVar33;
  uVar31 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar18;
  uVar23 = (uVar43 ^ *puVar25) - uVar23;
  uVar19 = uVar23 ^ uVar31;
  *(ulonglong *)(lVar2 + -0xa88) = uVar19;
  uVar29 = CONCAT44(DAT_182671894,DAT_182671894);
  puVar26 = (ulonglong *)(lVar2 - (uVar21 ^ 0x1f3196a));
  uVar18 = uVar29 ^ uVar33 ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x6d0) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar18;
  uVar4 = DAT_182671638;
  *(ulonglong *)(lVar2 + -0x628) =
       *(ulonglong *)(lVar2 - (uVar34 ^ 0xee71eb80)) ^ uVar39 | uVar20 ^ *puVar26;
  uVar39 = CONCAT44(uVar4,uVar4);
  uVar20 = (*(ulonglong *)(lVar2 - (uVar42 ^ 0x5c1bb4fc)) ^ uVar29) >> ((bVar37 ^ 0xc4) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar20 ^ uVar39;
  *(ulonglong *)(lVar2 + -0xbf0) = CONCAT44(uVar38,uVar7) ^ 0xc493e65396de9f38 | uVar23;
  uVar4 = _DAT_1826715d8;
  puVar25 = (ulonglong *)(lVar2 - (uVar21 ^ 0x1f310e2));
  *(ulonglong *)(lVar2 + -0x110) = (uVar29 ^ uVar18) << ((bVar37 ^ 0xfc) & 0x3f) ^ uVar33;
  uVar29 = CONCAT44(uVar4,uVar4);
  uVar20 = uVar20 | uVar33 ^ *puVar25;
  *(ulonglong *)(lVar2 + -0x2a0) = uVar20 ^ uVar29;
  uVar4 = DAT_182671624;
  *(undefined1 *)(lVar2 + -0x209) = **(undefined1 **)(lVar2 + -0x60);
  uVar9 = DAT_1826717c4;
  uVar33 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x898) =
       (*(ulonglong *)(lVar2 - (uVar40 ^ 0xfc02e952)) ^ uVar30) - uVar20 ^ uVar33;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar20 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  uVar19 = uVar23 ^ uVar31 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x240) ^ uVar19;
  *(ulonglong *)(lVar2 + -0x670) = uVar19;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xfc02e9aa)) =
       (uVar23 ^ uVar19) >> ((local_108 ^ 0x93) & 0x3f) ^ uVar20;
  uVar23 = (uVar23 ^ *(ulonglong *)(lVar2 + -0x670)) << ((local_res20 ^ 0x53) & 0x3f);
  uVar19 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar28 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar23 ^ uVar19;
  uVar23 = *(ulonglong *)(lVar2 + -0x628) ^ uVar20 | uVar23;
  uVar18 = uVar23 ^ uVar28;
  uVar43 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar18;
  uVar23 = (uVar31 ^ *(ulonglong *)(lVar2 + -0xa88)) - uVar23;
  *(ulonglong *)(lVar2 + -0x318) = uVar23 ^ uVar43;
  uVar4 = DAT_182671714;
  *(ulonglong *)(lVar2 + -0x110) = uVar23 + (*(ulonglong *)(lVar2 + -0x628) ^ uVar20);
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x6d0) =
       *(ulonglong *)(lVar2 - (uVar27 ^ 0x6a6a5032)) ^ uVar33 ^ uVar18 ^ uVar31 ^ uVar28;
  uVar23 = *(ulonglong *)(lVar3 + -0x6d0);
  *(ulonglong *)(lVar2 + -0x240) = (uVar35 ^ 0xb6caf7429854d71e) >> ((bVar12 ^ 200) & 0x3f);
  uVar28 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xef82fa72)) =
       (uVar23 ^ uVar31) >> ((local_108 ^ 0xa4) & 0x3f) ^ uVar28;
  lVar2 = DAT_182671560;
  uVar18 = (*(ulonglong *)(lVar3 + -0x6d0) ^ uVar31) << ((bVar13 ^ 0x30) & 0x3f);
  uVar23 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (CONCAT44(uVar5,uVar32) ^ 0xf643cf924821f926) & *(ulonglong *)(DAT_182671560 + 0x20);
  uVar4 = DAT_182671808;
  *(ulonglong *)(lVar2 + -0xa88) = uVar18 ^ uVar23;
  uVar23 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar18 | *(ulonglong *)(lVar2 + -0x670) ^ uVar28) ^ uVar23;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xfc02edc2)) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0xef82f7f2)) ^ uVar19) >> ((bVar37 ^ 0xd6) & 0x3f);
  uVar4 = DAT_1826716d0;
  uVar40 = (uVar33 ^ *(ulonglong *)(lVar2 + -0x898)) - (CONCAT44(uVar32,uVar7) ^ 0x7588e9fcada92e8d)
  ;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar40 ^ uVar36;
  uVar33 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x110) = uVar40 - (*(ulonglong *)(lVar2 + -0x8a8) ^ uVar23) ^ uVar33;
  *(ulonglong *)(lVar2 + -0x670) = 0x4ffe67e852ffaec0 - (*(ulonglong *)(lVar2 + -0x628) ^ uVar20);
  uVar40 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xef82f68a)) =
       (*(ulonglong *)(lVar2 + -0x8a8) ^ uVar23) - (CONCAT44(uVar8,uVar7) ^ 0xa5f89c9f8c3d7a48) ^
       uVar40;
  uVar4 = DAT_18267187c;
  uVar9 = DAT_182671844;
  uVar18 = CONCAT44(DAT_182671844,DAT_182671844);
  puVar15 = (ulonglong *)(lVar2 - (uVar34 ^ 0xee71e600));
  *puVar15 = uVar29 ^ *(ulonglong *)(lVar2 + -0x318) ^ *(ulonglong *)(lVar2 + -0x2a0) ^ uVar18 ^
             uVar43;
  uVar20 = (*(ulonglong *)(lVar2 - (uVar42 ^ 0x5c1bb7a4)) ^ uVar18) >> ((bVar12 ^ 0xe2) & 0x3f);
  uVar23 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar2 + -0x240) = uVar20 ^ CONCAT44(uVar4,uVar4);
  uVar4 = DAT_182671890;
  uVar19 = (uVar18 ^ *(ulonglong *)(lVar2 + -0xbf0)) << ((local_res20 ^ 100) & 0x3f);
  *(ulonglong *)(lVar2 + -0x898) = uVar19 ^ uVar23;
  uVar28 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x5c1bba84)) = (uVar19 | uVar20) ^ uVar28;
  uVar4 = DAT_1826716f0;
  *(ulonglong *)(lVar2 + -0x628) =
       (*puVar25 ^ uVar33) << (((byte)uVar9 ^ *(byte *)(lVar2 + -0xbf0)) & 0x3f);
  uVar7 = DAT_1826715a4;
  uVar23 = CONCAT44(uVar4,uVar4);
  puVar16 = (ulonglong *)(lVar2 - (uVar27 ^ 0x6a6a5eda));
  uVar19 = (ulonglong)DAT_1826715a4;
  *puVar16 = (*(ulonglong *)(lVar2 + -0x318) ^ uVar43) - (uVar14 ^ 0x1a37822ea43c3f2a) ^ uVar23;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xacee74de)) =
       CONCAT44(uVar38,uVar38) ^ uVar18 ^ *(ulonglong *)(lVar2 + -0xbf0) ^ 0x40e9a2f13e9506ec;
  uVar18 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar19 = (*(ulonglong *)(lVar2 + -0x670) ^ uVar23) - (*(ulonglong *)(lVar2 + -0x6d0) ^ uVar28) ^
           uVar18;
  uVar23 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar19;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar41 ^ 0xef82fad2)) ^ uVar28) +
           (CONCAT44(uVar8,uVar6) ^ 0xdef167c08736604e) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x240) = uVar28;
  *(ulonglong *)(lVar2 + -0x898) =
       0x7d8e1152040e9f98 -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671598 ^ 0x6ad8aa2c)) ^ uVar23);
  uVar4 = DAT_18267181c;
  uVar20 = CONCAT44(DAT_182671778,DAT_182671778);
  uVar14 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar23 = uVar28 ^ *(ulonglong *)(lVar2 + -0x110) ^ uVar20 ^ uVar23 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x628) = uVar23;
  lVar3 = DAT_182671560;
  uVar31 = (uVar23 ^ uVar20) >> ((local_f8 ^ 0xa2) & 0x3f);
  bVar13 = (byte)DAT_18267159c;
  *(ulonglong *)(lVar2 + -0x318) = uVar31 ^ uVar14;
  uVar14 = (uVar23 ^ uVar20) << ((bVar13 ^ 0xb0) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar14 ^ CONCAT44(uVar4,uVar4);
  uVar6 = DAT_1826715b4;
  uVar23 = *(ulonglong *)(lVar3 + -0xa88);
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar31 | uVar14) ^ uVar22;
  uVar41 = CONCAT44(DAT_182671784,DAT_182671784);
  *(ulonglong *)(lVar3 + -0x670) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar33) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671584 ^ 0x7617f30c)) ^ uVar22) ^ uVar41;
  uVar9 = DAT_182671878;
  *(undefined1 *)(lVar3 + -0x5e9) = **(undefined1 **)(lVar3 + -0x900);
  uVar4 = DAT_182671750;
  uVar14 = CONCAT44(uVar9,uVar9);
  uVar28 = uVar23 ^ uVar19 ^ uVar14 ^ uVar18 ^ uVar40;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar28;
  uVar20 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 + -0x898) = (uVar28 ^ uVar14) >> (((byte)uVar6 ^ 0x30) & 0x3f) ^ uVar20;
  uVar4 = DAT_1826717a4;
  uVar23 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0x240) = uVar31 + 0xd1361e82770cad7a;
  lVar2 = DAT_182671560;
  uVar19 = CONCAT44(uVar4,uVar4);
  puVar25 = (ulonglong *)(DAT_182671560 - (uVar42 ^ 0x5c1bba7c));
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (uVar28 ^ uVar14) << (((byte)uVar6 ^ 0x30) & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x1f31a02)) = (*puVar25 ^ uVar19 | *puVar26 ^ uVar20) ^ uVar40;
  uVar9 = DAT_182671850;
  uVar4 = DAT_18267156c;
  uVar14 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0x2b4ce4fc)) ^ uVar18) -
       (uVar40 ^ *(ulonglong *)(lVar2 + -0xbf0)) ^ uVar14;
  uVar18 = CONCAT44(uVar9,uVar9);
  uVar40 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0x4d870e86)) ^
           *(ulonglong *)(lVar2 + -0x670) ^ uVar18 ^ uVar41 ^ uVar40;
  uVar31 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar2 + -0xa88) = uVar40;
  uVar10 = DAT_1826717bc;
  uVar23 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar2 + -0x318) =
       (CONCAT44(uVar4,uVar38) ^ 0xd12c1dd2acf73c61) << ((bVar37 ^ 0xd7) & 0x3f);
  uVar23 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0xb2a8b204)) ^ uVar18) >> ((local_res20 ^ 0x6e) & 0x3f)
  ;
  *(ulonglong *)(lVar2 + -0x6d0) = CONCAT44(uVar5,uVar7) ^ 0x55172cb382e6a0c6;
  uVar9 = DAT_18267174c;
  *(ulonglong *)(lVar2 + -0x240) = uVar23 ^ CONCAT44(uVar10,uVar10);
  uVar4 = DAT_182671664;
  uVar40 = (uVar40 ^ uVar18) << ((bVar37 ^ 0xf6) & 0x3f);
  *(ulonglong *)(lVar2 + -0x898) = uVar40 ^ CONCAT44(uVar9,uVar9);
  uVar29 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x628) = (uVar40 | uVar23) ^ uVar29;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0x2c660eb0)) =
       0x916b55de57f8a32 >> ((bVar37 ^ 0xef) & 0x3f);
  lVar2 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  uVar18 = (*(ulonglong *)(DAT_182671560 + -0x670) ^ uVar41) -
           (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x628));
  puVar25 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671584 ^ 0x7617fab4));
  uVar19 = uVar18 ^ uVar21;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar19;
  uVar40 = *puVar25 ^ uVar24 ^ uVar22 ^ uVar14 ^ *(ulonglong *)(lVar2 + -0x8a8);
  *(ulonglong *)(lVar2 + -0x318) = uVar40;
  uVar9 = DAT_18267189c;
  lVar3 = DAT_182671560;
  uVar20 = ((ulonglong)(DAT_182671770 >> 0x16) | (ulonglong)DAT_182671770 << 10) ^
           *(ulonglong *)(lVar2 - (uVar27 ^ 0x6a6a5bb2)) >> 0x16;
  uVar23 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar40 = (uVar24 ^ uVar40) << ((bVar12 ^ 0xd8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar20 ^ CONCAT44(DAT_182671758,DAT_182671758);
  *(ulonglong *)(lVar2 + -0xa88) = uVar40 ^ uVar23;
  uVar4 = DAT_18267172c;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar20 = uVar20 | uVar40;
  uVar22 = uVar20 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x898) = uVar22;
  *(ulonglong *)(lVar2 + -0x240) = uVar40 ^ uVar21 ^ uVar19;
  uVar41 = CONCAT44(uVar4,uVar4);
  uVar28 = (*(ulonglong *)(lVar3 + -0x110) ^ uVar14) - uVar20 ^ uVar41;
  uVar14 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar28;
  uVar40 = (ulonglong)DAT_1826715ac;
  uVar20 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar19 = uVar22 ^ uVar14 ^ uVar23 ^ uVar21 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x670) = uVar19;
  uVar4 = DAT_182671888;
  uVar5 = DAT_18267157c;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar40 ^ 0x77e4ec26)) ^ uVar14) >> ((local_f8 ^ 0xac) & 0x3f);
  uVar23 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(lVar3 + -0x318) = (uVar19 ^ uVar14) << 0x12 ^ uVar23;
  uVar40 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar21 ^ uVar20;
  uVar4 = DAT_1826716b0;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x6d0) = (uVar23 ^ *puVar17 | uVar21) ^ uVar40;
  uVar9 = DAT_1826717b4;
  uVar14 = CONCAT44(uVar4,uVar4);
  uVar23 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 + -0xa88) =
       uVar18 - (*(ulonglong *)(lVar2 - (uVar27 ^ 0x6a6a5e7a)) ^ uVar40) ^ uVar14;
  uVar4 = DAT_18267165c;
  uVar40 = CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(lVar2 - (uVar23 ^ 0x6ad8ae44)) ^ uVar40 ^ uVar41 ^ uVar29 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x240) = uVar28;
  uVar9 = DAT_182671700;
  uVar23 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x110) = (uVar28 ^ uVar40) >> ((local_f8 ^ 0x8e) & 0x3f) ^ uVar23;
  uVar4 = DAT_1826716a8;
  uVar40 = (uVar28 ^ uVar40) << ((local_108 ^ 0x9e) & 0x3f);
  *(ulonglong *)(lVar2 + -0x898) = uVar40 ^ CONCAT44(uVar9,uVar9);
  uVar27 = CONCAT44(uVar4,uVar4);
  *puVar16 = (*(ulonglong *)(lVar2 - (uVar31 ^ 0xeffefeee)) ^ uVar23 | uVar40) ^ uVar27;
  *(undefined1 *)(lVar2 + -0x209) = **(undefined1 **)(lVar2 + -0x900);
  uVar4 = DAT_1826717b0;
  uVar23 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0x8a8) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x2a0)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0x2c660a60)) ^ uVar27) ^ uVar39;
  uVar40 = CONCAT44(uVar4,uVar4);
  DAT_182671584 = uVar5 * DAT_182671594;
  uVar18 = (ulonglong)DAT_182671584;
  bVar12 = (byte)DAT_182671584;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xe3d290c0)) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0x9057fefe)) ^ *(ulonglong *)(lVar2 + -0x670) ^ uVar40 ^
       uVar27 ^ uVar14;
  uVar23 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *puVar15 = (*(ulonglong *)(lVar2 + -0x318) ^ uVar40) >> ((bVar12 ^ 0x99) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xee71ebd8)) =
       (*(ulonglong *)(lVar2 + -0x318) ^ uVar40) << 0x27 ^ uVar30;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xee71efb0)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xe3d295f0)) ^ uVar30 |
       *(ulonglong *)(lVar2 - (uVar18 ^ 0x9aa19970)) ^ uVar23) ^
       CONCAT44(DAT_182671794,DAT_182671794);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar1 ^ uVar32;
  return;
}



############ FUN_ 180e96250 size=5364 ############

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

void FUN_180e96250(void)

{
  uint uVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  byte local_res20;
  byte local_100;
  byte local_f8;
  byte local_e0;
  byte local_90;
  
  uVar8 = DAT_182671848;
  uVar12 = DAT_1826715a4;
  uVar11 = DAT_18267158c;
  uVar9 = DAT_182671578;
  uVar7 = DAT_18267156c;
  uVar6 = DAT_182671568;
  lVar4 = DAT_182671560;
  uVar37 = (ulonglong)DAT_18267158c;
  uVar24 = (ulonglong)DAT_182671568;
  uVar27 = (ulonglong)DAT_182671578;
  DAT_18267157c = DAT_1826715b4 ^ DAT_182671578;
  uVar38 = (ulonglong)DAT_18267156c;
  uVar42 = DAT_1826715a4 & DAT_18267156c;
  uVar25 = (DAT_182671568 << 0x10 | DAT_182671568 & 0xff00) << 8 | DAT_182671568 >> 8 & 0xff00 |
           DAT_182671568 >> 0x18;
  uVar32 = (DAT_18267158c << 0x10 | DAT_18267158c & 0xff00) << 8 | DAT_18267158c >> 8 & 0xff00 |
           DAT_18267158c >> 0x18;
  uVar1 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_18267158c ^ 0xc555eed7) + (longlong)DAT_182671b68);
  uVar2 = *(uint *)(&DAT_182611e80 + DAT_182671b68);
  uVar31 = (ulonglong)DAT_1826715a4;
  uVar22 = CONCAT44(DAT_1826716a8,DAT_1826716a8);
  uVar23 = CONCAT44(DAT_182671788,DAT_182671788);
  DAT_182671590 = uVar42;
  DAT_182671594 = uVar25;
  DAT_1826715ac = uVar32;
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x1bce17d5)) =
       CONCAT44(DAT_182671884,DAT_182671884) ^ *(ulonglong *)(DAT_182671560 + -0x600) ^
       *(ulonglong *)(DAT_182671560 + -0x510) ^ uVar23 ^ uVar22;
  uVar44 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  uVar28 = (*(ulonglong *)(lVar4 + -0x610) ^ uVar22) << 0x17;
  uVar35 = (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar4 + -0x628)) +
           (*(ulonglong *)(lVar4 + -0x610) ^ uVar22) ^ uVar44;
  *(ulonglong *)(lVar4 + -0x318) = uVar35;
  *(ulonglong *)(lVar4 + -0xa60) =
       *(longlong *)(lVar4 + -0x748) - (CONCAT44(uVar32,uVar7) ^ 0xa0aa81b5bbc2058c);
  uVar8 = DAT_182671608;
  uVar18 = (ulonglong)uVar25;
  *(ulonglong *)(lVar4 + -0x638) = uVar28 ^ CONCAT44(DAT_1826718d4,DAT_1826718d4);
  lVar4 = DAT_182671560;
  uVar40 = CONCAT44(uVar8,uVar8);
  uVar22 = (*(ulonglong *)(DAT_182671560 + -0x610) ^ uVar22) >> (((byte)uVar6 ^ 0x6b) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar22 ^ uVar40;
  uVar8 = DAT_182671888;
  uVar15 = DAT_182671728;
  uVar29 = (ulonglong)DAT_182671728;
  uVar39 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  uVar33 = CONCAT44(DAT_182671820,DAT_182671820);
  uVar22 = (uVar22 | uVar28) ^ uVar39;
  *(ulonglong *)(lVar4 + -0x1f0) = uVar22;
  uVar26 = CONCAT44(uVar15,uVar15);
  uVar22 = uVar26 ^ uVar39 ^ uVar35 ^ uVar44 ^ uVar22;
  uVar36 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x9e8) = uVar22;
  uVar8 = _DAT_18267188c;
  *(ulonglong *)(lVar4 + -0x688) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x9f8)) + (*(ulonglong *)(lVar4 + -0x600) ^ uVar23) ^
       uVar36;
  *(ulonglong *)(lVar4 + -0x3f0) = (uVar22 >> 0x20 ^ uVar29) >> 0xd;
  uVar35 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x5c8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar42 ^ 0x12801978)) ^ uVar33) << 0x28 ^ uVar35;
  uVar14 = DAT_1826715b4;
  uVar13 = DAT_1826715b0;
  uVar28 = (ulonglong)DAT_1826715b0;
  uVar20 = (DAT_1826715b0 << 0x10 | DAT_1826715b0 & 0xff00) << 8 | DAT_1826715b0 >> 8 & 0xff00 |
           DAT_1826715b0 >> 0x18;
  uVar23 = CONCAT44(DAT_1826717a8,DAT_1826717a8);
  bVar19 = (byte)(DAT_1826715b0 >> 0x18);
  uVar22 = (ulonglong)DAT_1826715b0;
  DAT_182671580 = uVar20;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xaa00112)) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x9f8)) >> ((bVar19 ^ 0xe7) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xfff9f505)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x5c8) | uVar23 ^ *(ulonglong *)(lVar4 + -0x110)) ^ uVar44;
  uVar10 = DAT_18267157c;
  uVar23 = CONCAT44(DAT_182671804,DAT_182671804);
  uVar35 = CONCAT44(DAT_182671634,DAT_182671634);
  uVar22 = *(ulonglong *)(lVar4 + -0xbf0) ^ *(ulonglong *)(lVar4 + -0x688) ^ uVar23 ^ uVar36 ^
           uVar44;
  *(ulonglong *)(lVar4 + -0x510) = uVar22;
  *(ulonglong *)(lVar4 + -0x628) =
       (*(ulonglong *)(lVar4 + -0x318) ^ uVar44) + (uVar22 ^ uVar23) ^ uVar35;
  local_100 = (byte)(uVar11 >> 0x18);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x300a166a)) = (uVar22 ^ uVar23) << 5 ^ uVar39;
  uVar16 = DAT_182671688;
  uVar23 = (*(ulonglong *)(lVar4 + -0x510) ^ uVar23) >> ((local_100 ^ 0xfe) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa60) = uVar23 ^ CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar8 = DAT_18267164c;
  uVar22 = CONCAT44(uVar16,uVar16);
  uVar23 = uVar23 | *(ulonglong *)(lVar4 + -0x748) ^ uVar39;
  uVar39 = uVar23 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x610) = uVar39;
  uVar16 = DAT_182671850;
  *(ulonglong *)(lVar4 + -0x638) =
       *(ulonglong *)(lVar4 - (uVar37 ^ 0xc555e8af)) ^ CONCAT44(uVar8,uVar8) ^
       *(ulonglong *)(lVar4 + -0x628) ^ uVar35;
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671560 + -0x1f0) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0x300a170a)) ^ uVar33 ^ uVar22 ^ uVar35 ^
       uVar39;
  uVar8 = DAT_182671614;
  *(ulonglong *)(lVar4 + -0x600) = uVar23 >> ((bVar19 ^ 0xd3) & 0x3f);
  lVar5 = DAT_182671560;
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar22 = (ulonglong)DAT_1826716c8;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xaa003f2)) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x754a3caa)) ^ uVar26) +
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar14 ^ 0x3aaa17a8)) ^ uVar36) ^ uVar39;
  uVar8 = DAT_182671664;
  *(byte *)(lVar5 + -0x261) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x4f0) ^ uVar22) ^ (byte)DAT_1826717c0;
  local_f8 = (byte)(uVar6 >> 0x18);
  *(ulonglong *)(lVar5 + -0x5c8) = -0x5043ac35e16921e6 - (uVar40 ^ *(ulonglong *)(lVar5 + -0x6b8));
  uVar26 = (*(ulonglong *)(lVar5 + -0x9e8) ^ uVar26) << ((local_f8 ^ 0x50) & 0x3f);
  uVar23 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar5 + -0x9f8) = uVar26 ^ CONCAT44(uVar8,uVar8);
  uVar29 = *(ulonglong *)(lVar5 - (uVar37 ^ 0xc555e737)) >> 0x1b ^
           ((ulonglong)(uVar15 >> 0x1b) | uVar29 << 5);
  uVar22 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  *(ulonglong *)(lVar5 + -0x110) = uVar29 ^ uVar23;
  uVar29 = (uVar29 | uVar26) ^ uVar22;
  uVar23 = CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(lVar5 + -0xbf0) = uVar29;
  *(ulonglong *)(lVar5 + -0x318) =
       uVar23 ^ uVar22 ^ uVar39 ^ uVar29 ^ *(ulonglong *)(lVar5 + -0x3f0);
  uVar8 = DAT_182671734;
  uVar27 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar23 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x300a123a)) ^ uVar23) +
           (CONCAT44(uVar6,uVar13) ^ 0xd141b82f19aedc17);
  *(ulonglong *)(lVar5 + -0x510) = uVar23 ^ uVar27;
  uVar16 = DAT_18267179c;
  uVar22 = (CONCAT44(uVar6,uVar12) ^ 0x5cd960eadc0d67e2) + (*(ulonglong *)(lVar5 + -0x628) ^ uVar35)
  ;
  *(ulonglong *)(lVar5 + -0x748) = uVar22 ^ CONCAT44(uVar8,uVar8);
  lVar4 = DAT_182671560;
  uVar36 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671560 + -0xa60) = uVar23 + uVar22 ^ uVar36;
  uVar10 = DAT_18267157c;
  lVar5 = DAT_182671560;
  uVar35 = CONCAT44(DAT_182671648,DAT_182671648);
  bVar3 = (byte)DAT_1826715b4;
  *(ulonglong *)(lVar4 + -0x670) = uVar23 * 0x2000000 ^ uVar35;
  uVar23 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xf681f288)) =
       (*(ulonglong *)(lVar4 - (uVar38 ^ 0xf681f1a0)) ^ uVar27) >> ((bVar3 ^ 7) & 0x3f) ^ uVar23;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar5 + -0x670);
  *(ulonglong *)(lVar5 + -0x610) = uVar35 >> (((byte)uVar10 ^ 0x35) & 0x3f);
  uVar8 = DAT_1826715e4;
  puVar21 = (ulonglong *)(lVar5 - (uVar37 ^ 0xc555e8e7));
  uVar22 = CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar23 = (uVar23 ^ *puVar21 | uVar35) ^ uVar22;
  uVar34 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(lVar5 + -0x600) = uVar23;
  uVar22 = uVar34 ^ uVar23 ^ uVar22 ^ uVar36 ^ *(ulonglong *)(lVar5 + -0xa60);
  puVar30 = (ulonglong *)(lVar5 - (uVar24 ^ 0x754a308a));
  *(ulonglong *)(lVar5 + -0x688) = uVar22;
  uVar16 = DAT_1826717b0;
  lVar4 = DAT_182671560;
  *puVar30 = (CONCAT44(uVar14,uVar12) ^ 0x35e5dc2f90443d79) + (uVar34 ^ uVar22);
  uVar23 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x6b8) =
       (CONCAT44(uVar32,uVar13) ^ 0xff13dc087b328eb6) + (uVar33 ^ *(ulonglong *)(lVar4 + -0x1f0)) ^
       uVar23;
  *(ulonglong *)(lVar4 + -0x9e8) =
       (CONCAT44(uVar42,uVar42) ^ 0xed1c7cef6215faa6) >>
       ((*(byte *)(lVar4 - (uVar31 ^ 0x1bce174d)) ^ (byte)uVar8) & 0x3f);
  uVar22 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar11,uVar42) ^ 0x23608373b74f3e58) + (uVar39 ^ *(ulonglong *)(lVar4 + -0x3f0)) ^
       uVar22;
  uVar8 = DAT_1826715d0;
  uVar15 = DAT_1826715b4;
  uVar41 = CONCAT44(DAT_182671710,DAT_182671710);
  puVar43 = (ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x300a179a));
  *(ulonglong *)(lVar4 + -0x9f8) =
       (*(ulonglong *)(lVar4 - (uVar18 ^ 0x42354b65)) ^ uVar22) +
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0xdfee537d)) ^ uVar23) ^ uVar41;
  uVar16 = DAT_18267173c;
  uVar40 = CONCAT44(uVar8,uVar8);
  uVar35 = (uVar23 ^ *puVar43) << 0x21;
  *(ulonglong *)(lVar4 + -0xbf0) = uVar35 ^ uVar40;
  uVar8 = DAT_182671760;
  uVar10 = DAT_18267170c;
  uVar44 = (ulonglong)DAT_18267170c;
  uVar29 = (uVar23 ^ *(ulonglong *)(lVar4 + -0x6b8)) >> (((byte)uVar15 ^ 0x3f) & 0x3f);
  *(ulonglong *)(lVar4 + -0x318) = uVar29 ^ CONCAT44(uVar16,uVar16);
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xc555e8f7)) = (uVar29 | uVar35) ^ uVar22;
  uVar8 = DAT_182671638;
  uVar22 = uVar23 ^ uVar22 ^ uVar41 ^ *(ulonglong *)(lVar4 + -0x628) ^
           *(ulonglong *)(lVar4 + -0x9f8);
  *(ulonglong *)(lVar4 + -0x748) = uVar22;
  lVar5 = DAT_182671560;
  uVar26 = CONCAT44(uVar8,uVar8);
  uVar39 = (*(ulonglong *)(lVar4 - (uVar24 ^ 0x754a3f22)) ^ uVar36) + (uVar22 ^ uVar23);
  uVar35 = (uVar23 ^ uVar22) << ((bVar3 ^ 0xe) & 0x3f);
  uVar36 = uVar39 ^ uVar26;
  uVar22 = *(ulonglong *)(DAT_182671560 + -0x740);
  uVar29 = CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar23 = (ulonglong)DAT_1826715bc;
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar36;
  *(ulonglong *)(lVar5 + -0x610) = uVar35 ^ uVar29;
  *(uint *)(lVar5 + -0x640) = *(uint *)(uVar22 ^ uVar23) ^ DAT_1826717c0;
  uVar22 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar44 = ((ulonglong)(uVar10 >> 0x12) | uVar44 << 0xe) ^ *(ulonglong *)(lVar5 + -0x748) >> 0x12;
  uVar23 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar5 + -0x670) = uVar44 ^ uVar22;
  uVar35 = *(ulonglong *)(lVar5 - (uVar28 ^ 0xfff9f885)) ^ uVar22 | uVar35;
  uVar22 = uVar35 ^ uVar23;
  uVar29 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(lVar5 + -0x638) = uVar22;
  *(ulonglong *)(lVar5 + -0x600) = uVar36 ^ uVar29 ^ uVar22 ^ uVar23 ^ uVar26;
  uVar8 = DAT_182671684;
  *(ulonglong *)(lVar5 + -0x5c8) = uVar44 + uVar35;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar22 = (uVar41 ^ *(ulonglong *)(lVar5 + -0x9f8)) + (uVar34 ^ *(ulonglong *)(lVar5 + -0x688)) ^
           uVar36;
  *(ulonglong *)(lVar5 + -0x1f0) = uVar22;
  local_90 = (byte)uVar13;
  uVar26 = (uVar34 ^ *(ulonglong *)(lVar5 + -0x688)) << ((local_90 ^ 0xf9) & 0x3f);
  *(ulonglong *)(lVar5 + -0x9e8) =
       (CONCAT44(uVar25,uVar7) ^ 0xc5a1deff571d2419) - (uVar40 ^ *(ulonglong *)(lVar5 + -0xbf0));
  *(ulonglong *)(lVar5 + -0x3f0) = uVar26 ^ uVar33;
  *(ulonglong *)(lVar5 + -0x110) =
       (CONCAT44(uVar32,uVar42) ^ 0x373c4a11558558ca) >> ((local_100 ^ 0xdb) & 0x3f);
  uVar35 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(DAT_182671560 + -0x6b8) =
       (uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x688)) >> (((byte)uVar9 ^ 0x36) & 0x3f) ^ uVar35;
  uVar23 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  uVar35 = (uVar26 | uVar35 ^ *puVar43) ^ uVar23;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar35;
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(_DAT_182671610,_DAT_182671610);
  uVar26 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar22 = uVar33 ^ uVar35 ^ uVar23 ^ uVar36 ^ uVar22;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar22;
  *(ulonglong *)(lVar4 + -0xa60) = (uVar33 ^ uVar22) + uVar39 ^ uVar26;
  uVar10 = DAT_18267157c;
  uVar35 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xf681f3f8)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar42 ^ 0x128016a8)) ^ uVar33) <<
       (((byte)uVar9 ^ 0x38) & 0x3f) ^ uVar35;
  uVar40 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  uVar22 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar4 + -0x670) = CONCAT44(uVar7,uVar13) ^ 0xf09a0e84a5eb365e;
  uVar8 = _DAT_1826715dc;
  *(ulonglong *)(lVar4 + -0x610) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x628)) >> (((byte)uVar10 ^ 0x24) & 0x3f) ^ uVar40;
  uVar16 = DAT_182671724;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x638) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0x3aaa1730)) ^ uVar40 |
       uVar35 ^ *(ulonglong *)(lVar4 + -0x748)) ^ uVar23;
  uVar10 = DAT_1826715b4;
  uVar35 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x5c8) =
       uVar35 ^ uVar23 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0xa60) ^ *puVar21;
  *(longlong *)(lVar4 - (uVar18 ^ 0x4235438d)) =
       0x46c2e1afd871ae11 << (((byte)uVar42 ^ 0x92) & 0x3f);
  uVar8 = DAT_18267162c;
  uVar33 = CONCAT44(DAT_182671730,DAT_182671730);
  *(ulonglong *)(lVar4 + -0xbf0) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x1f0)) + (*(ulonglong *)(lVar4 + -0x600) ^ uVar29) ^
       uVar33;
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar22 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *(ulonglong *)(lVar4 + -0x9e8) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0xc555e8df)) ^ uVar29) << (((byte)uVar10 ^ 0x36) & 0x3f) ^
       uVar39;
  lVar4 = DAT_182671560;
  local_e0 = (byte)uVar7;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (*(ulonglong *)(DAT_182671560 + -0x600) ^ uVar29) >> ((local_e0 ^ 0x9a) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xc555e857)) =
       CONCAT44(uVar20,uVar11) ^ 0x887102a1614ae677 | CONCAT44(uVar6,uVar9) ^ 0xc82c20b85f6ecdc9;
  uVar16 = DAT_182671670;
  uVar23 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  local_res20 = (byte)uVar12;
  uVar22 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x3aaa1030)) ^ uVar22 |
           uVar39 ^ *(ulonglong *)(lVar4 + -0x9e8)) ^ uVar23;
  *(ulonglong *)(lVar4 + -0x3f0) = uVar22;
  uVar8 = DAT_18267163c;
  uVar29 = CONCAT44(uVar16,uVar16);
  uVar22 = uVar29 ^ uVar22 ^ uVar23 ^ uVar33 ^ *(ulonglong *)(lVar4 + -0xbf0);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar22;
  uVar16 = DAT_1826716b8;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x318) =
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0x1bce177d)) ^ uVar29) +
       (uVar26 ^ *(ulonglong *)(lVar4 + -0xa60)) ^ uVar23;
  uVar37 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x510) = (uVar29 ^ uVar22) << ((bVar19 ^ 0xdf) & 0x3f) ^ uVar37;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x754a336a)) =
       (CONCAT44(uVar7,uVar42) ^ 0x62f51ad2718fd121) >> ((local_90 ^ 0xcc) & 0x3f);
  uVar22 = (uVar29 ^ *(ulonglong *)(lVar5 + -0x6b8)) >> ((local_res20 ^ 0xe5) & 0x3f);
  *(ulonglong *)(lVar5 + -0x670) = uVar22 ^ CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar8 = DAT_182671640;
  *(int *)(lVar5 + -0x774) = *(int *)(lVar5 - (uVar24 ^ 0x754a313e)) * *(int *)(lVar5 + -0x640);
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - (uVar18 ^ 0x42354c65)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar32 ^ 0xdfee50d5)) ^ uVar37 | uVar22) ^ uVar31;
  uVar8 = DAT_1826718a0;
  lVar4 = DAT_182671560;
  uVar22 = *(ulonglong *)(DAT_182671560 + -0xbf0);
  *(ulonglong *)(lVar5 + -0x748) =
       CONCAT44(DAT_1826716a0,DAT_1826716a0) ^ uVar31 ^ uVar23 ^ *(ulonglong *)(lVar5 + -0x318) ^
       *(ulonglong *)(lVar5 + -0x610);
  uVar16 = DAT_18267167c;
  uVar29 = (ulonglong)DAT_1826715b4;
  uVar37 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x638) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0x3aaa14e8)) ^ uVar35) + (uVar33 ^ uVar22) ^ uVar37;
  uVar17 = DAT_1826717d0;
  uVar8 = DAT_182671570;
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       (uVar35 ^ *(ulonglong *)(DAT_182671560 + -0x5c8)) << ((local_100 ^ 0xe5) & 0x3f) ^ uVar31;
  uVar22 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xfff9ff05)) =
       (uVar35 ^ *puVar30) >> (((byte)uVar8 ^ 0xcf) & 0x3f) ^ uVar22;
  uVar8 = DAT_1826718c0;
  *(ulonglong *)(lVar4 + -0x600) =
       (uVar22 ^ *(ulonglong *)(lVar4 + -0x1f0) | uVar31 ^ *(ulonglong *)(lVar4 + -0x9f8)) ^ uVar40;
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267157c ^ 0x300a17aa)) =
       *(ulonglong *)(lVar4 - (uVar28 ^ 0xfff9f8cd)) ^ *(ulonglong *)(lVar4 - (uVar18 ^ 0x42354c75))
       ^ uVar31 ^ uVar37 ^ uVar40;
  uVar22 = (ulonglong)_DAT_1826715e0;
  uVar23 = (CONCAT44(uVar42,uVar20) ^ 0x6f05c2dc4378b2f8) +
           (uVar23 ^ *(ulonglong *)(lVar4 + -0x318));
  *(ulonglong *)(lVar4 + -0x9e8) = uVar23 ^ CONCAT44(DAT_182671840,DAT_182671840);
  *(byte *)(lVar4 + -0x289) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xc80) ^ uVar22) ^ (byte)DAT_1826717c0;
  uVar35 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(uVar35 ^ *(ulonglong *)(lVar4 + -0x438)) = uVar23 ^ uVar27;
  uVar28 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar4 + -0x110) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x688)) + (CONCAT44(uVar6,uVar9) ^ 0x937f58eeaf6f2eda) ^
       uVar28;
  uVar23 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar4 + -0x3f0) =
       (*(ulonglong *)(lVar4 - (uVar18 ^ 0x42354cfd)) ^ uVar31) << (((byte)uVar6 ^ 0x79) & 0x3f);
  uVar22 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar4 + -0x218) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x438)) +
       (CONCAT44(uVar11,uVar11) ^ 0xc555eedfc555eede) * 8 ^ uVar23;
  *(int *)(lVar4 - (uVar22 ^ 0x2eb04ba7)) = -0x4b68d5dd - *(int *)(lVar4 + -0x754);
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x218) ^ uVar23) =
       uVar27 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0x110);
  uVar8 = DAT_1826716f8;
  uVar22 = *(ulonglong *)(lVar4 + -0x638);
  *(ulonglong *)(lVar4 + -0xa60) =
       (CONCAT44(uVar32,uVar12) ^ 0xe01d3dc6ea83f79b) -
       (CONCAT44(uVar20,uVar20) ^ 0x63fe240dd96121d1);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar42) * 4) = uVar1 ^ uVar32;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x3aaa1708)) =
       (uVar37 ^ uVar22) + (CONCAT44(uVar14,uVar13) ^ 0x87e9db40c932e154) ^ CONCAT44(uVar8,uVar8);
  return;
}



############ FUN_ 180eee410 size=5106 ############

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

void FUN_180eee410(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  ulonglong *puVar10;
  ulonglong *puVar11;
  ulonglong uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  byte bVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  byte local_res18;
  
  uVar14 = DAT_182671594;
  uVar5 = DAT_182671590;
  uVar4 = DAT_182671574;
  uVar9 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar33 = (ulonglong)DAT_182671594;
  uVar19 = (ulonglong)DAT_182671574;
  uVar29 = (ulonglong)DAT_18267156c;
  uVar18 = (ulonglong)DAT_182671590;
  uVar13 = DAT_182671574 << 0x10 | DAT_182671574 >> 0x10;
  uVar30 = DAT_18267156c + DAT_182671590;
  uVar38 = (ulonglong)uVar13;
  uVar17 = (DAT_182671594 << 0x10 | DAT_182671594 & 0xff00) << 8 | DAT_182671594 >> 8 & 0xff00 |
           DAT_182671594 >> 0x18;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671984);
  uVar8 = *(uint *)(&DAT_182611e70 + (uVar38 ^ 0x9bb5c5d1) + (longlong)DAT_182671984) ^
          DAT_182671594;
  bVar16 = (byte)DAT_182671594;
  uVar20 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  uVar25 = (ulonglong)uVar30;
  DAT_182671570 = uVar30;
  DAT_1826715a0 = uVar17;
  DAT_1826715b0 = uVar13;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x2800802)) =
       (CONCAT44(DAT_1826717d8,DAT_1826717d8) ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) <<
       ((bVar16 ^ 0x2f) & 0x3f) ^ uVar20;
  uVar7 = DAT_1826718a8;
  uVar36 = CONCAT44(DAT_182671898,DAT_182671898);
  puVar41 = (ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x50006eb));
  *puVar41 = (*(ulonglong *)(lVar2 - (uVar18 ^ 0x2800e19)) ^ uVar20 |
             CONCAT44(DAT_1826718a4,DAT_1826718a4) ^ *(ulonglong *)(lVar2 + -0x9f8)) ^ uVar36;
  uVar6 = DAT_182671664;
  uVar34 = CONCAT44(uVar7,uVar7);
  uVar15 = CONCAT44(DAT_182671724,DAT_182671724);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x500011b)) =
       (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar34) - (*(ulonglong *)(lVar2 + -0x1f0) ^ uVar36) ^
       uVar15;
  uVar20 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  puVar26 = (ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x9bb5c419));
  *puVar26 = CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0x898) ^ *(ulonglong *)(lVar2 + -0x318)
             ^ uVar20 ^ uVar34;
  lVar2 = DAT_182671560;
  uVar12 = (ulonglong)uVar17;
  uVar31 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(DAT_182671560 - (uVar38 ^ 0x9bb5c3e9)) =
       (*(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x2800549)) ^ uVar34) >> ((bVar16 ^ 0x31) & 0x3f) ^
       uVar31;
  *(uint *)(lVar2 - (uVar19 ^ 0xc5c19dcd)) = (uVar9 ^ 0xb77245f) + *(int *)(lVar2 + -0x274);
  lVar2 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(DAT_182671560 - (uVar18 ^ 0x28006e1)) = (*puVar26 ^ uVar34) << 0x34 ^ uVar21;
  puVar10 = (ulonglong *)(lVar2 - (uVar25 ^ 0x500056b));
  uVar34 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *(ulonglong *)(lVar2 + -0x8a8) =
       (uVar21 ^ *puVar10 | uVar31 ^ *(ulonglong *)(lVar2 + -0x628)) ^ uVar34;
  puVar26 = (ulonglong *)(lVar2 - (uVar19 ^ 0xc5c1931d));
  uVar18 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x9ae152d)) =
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar20) - (uVar34 ^ *puVar26) ^ uVar18;
  *(uint *)(lVar2 + -0x3d4) =
       0x44c36ca0 >> ((byte)*(undefined4 *)(lVar2 - (uVar12 ^ 0x3d13ae85)) & 0x1f);
  uVar20 = CONCAT44(DAT_182671790,DAT_182671790);
  *(ulonglong *)(DAT_182671560 - (uVar25 ^ 0x500055b)) =
       *(ulonglong *)(DAT_182671560 + -0x600) ^ uVar20 ^ uVar34 ^ uVar15 ^ *puVar26;
  lVar2 = DAT_182671560;
  uVar20 = uVar20 ^ *(ulonglong *)(DAT_182671560 + -0x240);
  uVar21 = uVar20 << 0x27;
  uVar20 = uVar20 >> ((bVar16 ^ 0x24) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar20 ^ uVar34;
  uVar6 = DAT_1826718d4;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar21 ^ CONCAT44(DAT_1826716a0,DAT_1826716a0);
  uVar31 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x280068a)) = (uVar21 | uVar20) ^ uVar31;
  uVar6 = DAT_1826718b8;
  puVar11 = (ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x9bb5c3c1));
  uVar21 = CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar39 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar20 = (*puVar11 ^ uVar15) - (uVar21 ^ *(ulonglong *)(lVar2 + -0x638));
  *(ulonglong *)(lVar2 + -0x800) = uVar20 ^ uVar39;
  uVar7 = DAT_1826716ec;
  uVar35 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x748) = uVar20 - (*(ulonglong *)(lVar2 + -0x400) ^ uVar31) ^ uVar35;
  uVar6 = DAT_182671620;
  lVar3 = DAT_182671560;
  uVar27 = CONCAT44(uVar7,uVar7);
  uVar20 = (CONCAT44(DAT_18267168c,DAT_18267168c) ^ *(ulonglong *)(lVar2 + -0x510)) +
           (CONCAT44(uVar14,uVar4) ^ 0xd778018e7259f6a9);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar20 ^ uVar27;
  uVar40 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0xbf0) = (*(ulonglong *)(lVar3 + -0x400) ^ uVar31) - uVar20 ^ uVar40;
  uVar20 = CONCAT44(DAT_182671764,DAT_182671764);
  bVar16 = (byte)uVar5;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x2800b72)) =
       uVar20 ^ uVar18 ^ uVar36 ^ *puVar41 ^ *(ulonglong *)(lVar3 + -0x610);
  uVar15 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar3 + -0xa88) =
       (uVar20 ^ *(ulonglong *)(lVar3 + -0x9f8)) >> ((bVar16 ^ 0xb0) & 0x3f) ^ uVar15;
  uVar31 = CONCAT44(DAT_182671814,DAT_182671814);
  *(ulonglong *)(lVar3 - (uVar12 ^ 0x3d13a8b1)) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0x5000ee3)) ^ uVar20) << ((bVar16 ^ 0x8e) & 0x3f) ^ uVar31;
  uVar6 = DAT_182671614;
  lVar2 = DAT_182671560;
  uVar36 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  uVar15 = *(ulonglong *)(lVar3 - (uVar38 ^ 0x9bb5c379)) ^ uVar31 |
           *(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x9ae19b5)) ^ uVar15;
  uVar22 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  puVar26 = (ulonglong *)(DAT_182671560 + -0x610);
  uVar20 = *(ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar15 ^ uVar36;
  uVar18 = (uVar18 ^ *puVar26) - (*(ulonglong *)(lVar2 + -0x5c8) ^ uVar22);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar18 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x628) = CONCAT44(uVar30,uVar13) ^ 0xceb7338d050e4288 | uVar31 ^ uVar20;
  uVar42 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar18 - uVar15 ^ uVar42;
  uVar6 = DAT_1826715d0;
  lVar2 = DAT_182671560;
  uVar18 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar31 = -(*(ulonglong *)(DAT_182671560 + -0x688) ^ uVar18) - 0xb;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar31 ^ CONCAT44(DAT_18267175c,DAT_18267175c);
  uVar7 = DAT_1826716a8;
  uVar20 = CONCAT44(uVar6,uVar6);
  uVar15 = uVar31 + uVar15 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar15;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x240) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0x9ae1475)) ^ uVar31 ^ uVar20 ^ uVar35 ^ uVar15;
  uVar6 = DAT_1826717e0;
  uVar20 = uVar31 ^ *(ulonglong *)(lVar2 + -0x240);
  *(ulonglong *)(lVar2 + -0x6d0) =
       *(ulonglong *)(lVar2 - (uVar12 ^ 0x3d13ac49)) ^ uVar31 |
       CONCAT44(uVar5,uVar4) ^ 0x3e17e925d86c849f;
  uVar23 = CONCAT44(uVar6,uVar6);
  local_res18 = (byte)uVar30;
  *(ulonglong *)(lVar2 + -0x548) = uVar20 >> ((local_res18 ^ 0x1e) & 0x3f) ^ uVar23;
  uVar6 = DAT_182671688;
  *(ulonglong *)(lVar2 + -0x600) = ((ulonglong)(uVar9 >> 0x1d) | uVar38 * 8) ^ 0x39c2385b2;
  uVar15 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x9ae1b3d)) = uVar20 << ((local_res18 ^ 0x20) & 0x3f) ^ uVar15;
  uVar6 = DAT_1826715ec;
  lVar3 = DAT_182671560;
  uVar20 = *(ulonglong *)(DAT_182671560 + -0x270);
  uVar37 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar31 = uVar15 ^ *(ulonglong *)(lVar2 + -0x800) | uVar23 ^ *(ulonglong *)(lVar2 + -0x548);
  *(ulonglong *)(lVar2 + -0x400) = uVar31 ^ uVar37;
  uVar14 = _DAT_1826715e0;
  uVar34 = CONCAT44(uVar6,uVar6);
  uVar15 = (ulonglong)_DAT_1826715e0;
  uVar31 = (*(ulonglong *)(lVar2 + -0x748) ^ uVar35) - uVar31 ^ uVar34;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar31;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar40 = uVar20 ^ uVar35 ^ *(ulonglong *)(lVar3 + -0xbf0) ^ uVar42 ^ uVar40;
  *(ulonglong *)(lVar3 + -0x9f8) = uVar40;
  uVar6 = DAT_1826718cc;
  uVar24 = (uVar40 >> 0x20 ^ uVar15) >> 5;
  uVar28 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar3 + -0xa88) = uVar24 ^ uVar39;
  uVar32 = CONCAT44(uVar6,uVar6);
  uVar15 = (uVar40 ^ uVar35) << (local_res18 & 0x3f);
  *(ulonglong *)(lVar3 + -0x610) = uVar15 ^ uVar28;
  uVar15 = uVar15 | uVar24;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar15 ^ uVar32;
  uVar6 = DAT_182671758;
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0x50002d3)) ^ uVar32 | uVar40 ^ uVar35;
  lVar2 = DAT_182671560;
  uVar40 = CONCAT44(uVar6,uVar6);
  uVar24 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(DAT_182671560 + -0x628) = (uVar20 ^ uVar42) - uVar15 ^ uVar40;
  *(ulonglong *)(lVar2 - (uVar12 ^ 0x3d13afd1)) =
       *(ulonglong *)(lVar2 - (uVar19 ^ 0xc5c19e7d)) ^ uVar24 ^ uVar32 ^ uVar34 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x318) =
       uVar40 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x9f8) ^ *(ulonglong *)(lVar2 + -0x628);
  uVar20 = (uVar24 ^ *(ulonglong *)(lVar2 + -0x1d8)) >> ((local_res18 ^ 0xc) & 0x3f);
  *(ulonglong *)(lVar2 + -0x898) = uVar20 ^ CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar7 = DAT_182671728;
  *(ulonglong *)(lVar2 + -0x8a8) =
       (CONCAT44(uVar4,uVar13) ^ 0x414dce328d2e884d) + (*(ulonglong *)(lVar2 + -0xa88) ^ uVar39);
  uVar6 = DAT_18267163c;
  uVar14 = DAT_182671594;
  uVar15 = (uVar24 ^ *(ulonglong *)(lVar2 + -0x1d8)) << ((bVar16 ^ 0xb8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6d0) = uVar15 ^ CONCAT44(uVar7,uVar7);
  uVar35 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x600) = (uVar15 | uVar20) ^ uVar35;
  *(uint *)(lVar2 + -0x27c) = (uVar14 ^ 0x43909325) * (uVar14 ^ 0x45534a9b);
  uVar24 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar2 + -0x240) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x1f0)) - (uVar35 ^ *puVar11) ^ uVar24;
  *(ulonglong *)(DAT_182671560 - (uVar12 ^ 0x3d13ab41)) =
       (CONCAT44(uVar30,uVar9) ^ 0x8220dd3ae45648) + 0x927b42128be53870;
  lVar2 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar15 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar20 = uVar31 ^ uVar40 ^ uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x400) ^
           *(ulonglong *)(DAT_182671560 + -0x628);
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar20;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x9bb5c289)) =
       (uVar20 ^ uVar31) >> (((byte)uVar4 ^ 0x9d) & 0x3f) ^ uVar15;
  uVar28 = CONCAT44(DAT_182671880,DAT_182671880);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x9bb5ce31)) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x800)) << (((byte)uVar9 ^ 0x92) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x610) =
       uVar28 ^ *(ulonglong *)(lVar2 + -0xbf0) | CONCAT44(uVar17,uVar4) ^ 0x33613ba34cdbe6d;
  uVar6 = DAT_1826715c4;
  uVar31 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar20 = uVar28 ^ *(ulonglong *)(lVar2 + -0xbf0) | *(ulonglong *)(lVar2 + -0x748) ^ uVar15;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar20 ^ uVar31;
  uVar34 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x28000fa)) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x628)) - uVar20 ^ uVar34;
  uVar20 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar2 + -0x5c8) =
       CONCAT44(uVar9,uVar9) ^ uVar28 ^ *(ulonglong *)(lVar2 + -0xbf0) ^ 0x51ce477ccbbbad17;
  uVar28 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  uVar15 = (ulonglong)DAT_1826715a8;
  uVar31 = *(ulonglong *)(lVar2 - (uVar20 ^ 0xcff48aab)) ^ uVar28 ^ uVar31 ^ uVar24 ^
           *(ulonglong *)(lVar2 + -0x240);
  uVar20 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(lVar2 + -0x9f8) = uVar31;
  uVar29 = (*(ulonglong *)(lVar2 - (uVar15 ^ 0xf7eae611)) ^ uVar28) >> ((bVar16 ^ 0xa5) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar29 ^ uVar20;
  *(ulonglong *)(lVar2 + -0xa88) = (uVar34 ^ *puVar10) << ((local_res18 ^ 0x1e) & 0x3f);
  uVar4 = DAT_18267157c;
  uVar32 = (ulonglong)DAT_18267157c;
  uVar14 = (DAT_18267157c << 0x10 | DAT_18267157c & 0xff00) << 8 | DAT_18267157c >> 8 & 0xff00 |
           DAT_18267157c >> 0x18;
  uVar20 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  DAT_182671578 = uVar14;
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar28 ^ uVar31) << 0xc ^ uVar20;
  uVar28 = CONCAT44(DAT_182671750,DAT_182671750);
  uVar29 = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x860d3460)) ^ uVar20 | uVar29;
  *(ulonglong *)(lVar2 + -0x898) =
       uVar34 ^ *(ulonglong *)(lVar2 + -0x270) ^ *(ulonglong *)(lVar2 + -0x610);
  uVar6 = DAT_1826716fc;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar29 ^ uVar28;
  uVar9 = DAT_1826716d4;
  uVar15 = CONCAT44(uVar6,uVar6);
  uVar20 = (ulonglong)DAT_1826716d4;
  *(ulonglong *)(lVar2 + -0x6d0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xc83c0fc6)) ^ uVar24) - uVar29 ^ uVar15;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x860d3d38)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xc83c0b86)) ^ uVar24 ^ uVar34 ^ uVar35 ^
       *(ulonglong *)(lVar2 + -0x270);
  uVar31 = CONCAT44(DAT_182671894,DAT_182671894);
  *(ulonglong *)(lVar2 + -0x548) =
       (*(ulonglong *)(lVar2 + -0x1f0) >> 0x20 ^ uVar20) >> 0x19 ^ uVar31;
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x860d38c8)) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x1f0)) << 7 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x800) = 0x1f9fd3a9de357b46 - (uVar31 ^ *(ulonglong *)(lVar2 + -0x548));
  uVar20 = CONCAT44(DAT_18267160c,DAT_18267160c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x860d3b80)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x860d3980)) ^ uVar31 |
       uVar29 ^ *(ulonglong *)(lVar2 + -0x400)) ^ uVar20;
  uVar32 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 + -0x270) ^ uVar34) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xc83c0ace)) ^ uVar20) ^ uVar32;
  uVar6 = DAT_182671874;
  uVar35 = CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar20 = uVar35 ^ uVar20 ^ uVar15 ^ *(ulonglong *)(lVar3 + -0x748) ^
           *(ulonglong *)(lVar3 + -0x6d0);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar20;
  lVar2 = DAT_182671560;
  uVar34 = (uVar20 ^ uVar35) >> (((byte)(uVar4 >> 0x18) ^ 0x88) & 0x3f);
  uVar20 = (uVar35 ^ uVar20) << (((byte)uVar4 ^ 0xfa) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar20 ^ uVar24;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar34 ^ CONCAT44(uVar6,uVar6);
  uVar9 = DAT_182671578;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0xc83c08ce)) ^ uVar31) +
       (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x400));
  *(ulonglong *)(lVar3 + -0x9f8) = (uVar20 | uVar34) ^ uVar36;
  uVar6 = DAT_182671824;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x318) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0xc83c0b3e)) ^ uVar24) -
       (CONCAT44(uVar30,uVar4) ^ 0x90a51676a7d5ccd0);
  *(ulonglong *)(lVar2 + -0x8a8) =
       (uVar15 ^ *(ulonglong *)(lVar2 + -0x6d0)) -
       (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0x3b8)) ^ uVar22;
  uVar6 = DAT_1826715bc;
  *(ulonglong *)(lVar2 - (uVar12 ^ 0x3d13a819)) =
       uVar15 ^ *(ulonglong *)(lVar2 + -0x6d0) | CONCAT44(uVar14,uVar4) ^ 0x1e65ccdfc4d3b9a5;
  *(ulonglong *)(lVar2 + -0x898) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0x8a8)) - (uVar36 ^ *(ulonglong *)(lVar2 + -0x9f8)) ^
       CONCAT44(uVar6,uVar6);
  *(uint *)(lVar2 + -0x874) = (uVar4 ^ 0xc17062b0) << (((byte)uVar9 ^ 0x9b) & 0x1f);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xc5c199f5)) =
       (CONCAT44(uVar14,uVar30) ^ 0xf63c6bf72ff84fd2) + (uVar21 ^ *(ulonglong *)(lVar2 + -0x638)) ^
       uVar18;
  uVar7 = DAT_182671744;
  *(ulonglong *)(lVar2 + -0x600) =
       (CONCAT44(uVar5,uVar9) ^ 0x276e4b6b3f9a56f) - (uVar24 ^ *(ulonglong *)(lVar2 + -0x6b8));
  uVar6 = DAT_1826715fc;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0x9f8)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x860d3e88)) ^ uVar18) ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671690;
  uVar21 = CONCAT44(uVar6,uVar6);
  uVar20 = *(ulonglong *)(lVar2 - (uVar33 ^ 0x9ae12e5)) ^ uVar21 ^ uVar32 ^ uVar28 ^
           *(ulonglong *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x800) = uVar20;
  uVar15 = (uVar20 ^ uVar21) >> (((byte)uVar9 ^ 0x96) & 0x3f);
  *(ulonglong *)(lVar2 + -0x270) = uVar15 ^ uVar23;
  uVar6 = DAT_1826717c4;
  uVar20 = (uVar21 ^ uVar20) << 0x30;
  *(ulonglong *)(lVar2 + -0x748) = uVar20 ^ CONCAT44(uVar7,uVar7);
  uVar21 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x5000ceb)) = (uVar15 | uVar20) ^ uVar21;
  uVar15 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x628)) -
           (*(ulonglong *)(lVar2 - (uVar12 ^ 0x3d13aca9)) ^ uVar27);
  uVar9 = *(uint *)(lVar2 + -0x678) ^ DAT_182671578;
  *(ulonglong *)(lVar2 + -0x548) = uVar15 ^ CONCAT44(DAT_182671848,DAT_182671848);
  uVar20 = CONCAT44(DAT_182671628,DAT_182671628);
  *(uint *)(lVar2 + -0x8c) = uVar9 ^ 0x71804437;
  uVar12 = CONCAT44(uVar5,DAT_1826715ac);
  *(ulonglong *)(lVar2 + -0x400) = uVar15 - (uVar21 ^ *(ulonglong *)(lVar2 + -0xbf0)) ^ uVar20;
  *(ulonglong *)(lVar2 + -0xa88) = uVar12 ^ 0xfdfc90e9b77d20b0;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar8 * 4) = uVar1 ^ uVar17;
  return;
}



############ FUN_ 180e88360 size=4308 ############

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

void FUN_180e88360(void)

{
  uint *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  byte *pbVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  uint uVar41;
  
  uVar32 = DAT_1826718c8;
  uVar11 = DAT_1826715b0;
  uVar10 = DAT_1826715a8;
  uVar9 = DAT_182671590;
  uVar8 = DAT_182671578;
  uVar7 = DAT_182671574;
  lVar4 = DAT_182671560;
  uVar19 = (ulonglong)DAT_182671578;
  uVar38 = (ulonglong)DAT_1826715a8;
  uVar39 = (ulonglong)DAT_182671590;
  uVar37 = (ulonglong)DAT_182671574;
  uVar40 = ~DAT_1826715a8;
  uVar41 = uVar40 ^ 0x781e9a6e;
  uVar26 = DAT_18267156c | DAT_182671570;
  uVar13 = DAT_182671574 << 0x10 | DAT_182671574 >> 0x10;
  uVar25 = DAT_1826715b0 * DAT_182671590;
  DAT_182671580 =
       (DAT_182671578 << 0x10 | DAT_182671578 & 0xff00) << 8 | DAT_182671578 >> 8 & 0xff00 |
       DAT_182671578 >> 0x18;
  uVar2 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_1826715a8 ^ 0xfffffff7) + (longlong)DAT_182671b3c);
  uVar15 = (ulonglong)uVar25;
  uVar14 = *(uint *)(&DAT_182611e70 + (uVar15 ^ 0x13aca4da) + (longlong)DAT_182671b3c) ^
           DAT_182671590;
  DAT_182671568 = uVar26;
  DAT_182671584 = uVar25;
  DAT_18267158c = uVar13;
  DAT_1826715a4 = uVar41;
  *(uint *)(DAT_182671560 - (uVar38 ^ 0xfffffa33)) =
       DAT_1826718b0 ^ DAT_182671750 ^ *(uint *)(DAT_182671560 + -0x678);
  uVar23 = *(uint *)(lVar4 + -0x5cc) ^ DAT_182671834 ^ DAT_1826718b0;
  *(uint *)(lVar4 + -0x844) = *(uint *)(lVar4 + -0x910) ^ DAT_1826715cc ^ DAT_1826716a4;
  *(uint *)(lVar4 + -0x3d4) = (uVar32 ^ *(uint *)(lVar4 + -0x47c)) * (uVar11 ^ 0x42ce19e6);
  lVar5 = DAT_182671560;
  *(uint *)(lVar4 - ((ulonglong)uVar8 ^ 0x4bb5ac4)) = uVar23;
  *(uint *)(lVar4 + -0x344) = *(uint *)(lVar4 + -0x844) ^ DAT_1826716ec ^ DAT_1826715cc;
  uVar35 = DAT_1826717a4;
  uVar36 = DAT_182671580;
  uVar16 = (ulonglong)DAT_182671580;
  *(uint *)(lVar5 + -0x27c) =
       *(uint *)(lVar4 - (uVar39 ^ 0x6cf437a6)) ^ DAT_1826717a4 ^ DAT_182671834;
  uVar18 = (ulonglong)DAT_182671758;
  uVar31 = *(uint *)(lVar5 - ((ulonglong)uVar36 ^ 0xa053b840)) ^ DAT_18267169c ^ DAT_1826716ec;
  uVar17 = (ulonglong)uVar13;
  *(uint *)(lVar5 + -0x754) = uVar31;
  bVar3 = (byte)DAT_182671730;
  lVar4 = DAT_182671560;
  pbVar29 = (byte *)((CONCAT44(uVar13,uVar7) ^ 0x1f61367a367a1f61) * 0x20 +
                     (CONCAT44(uVar8,DAT_18267156c) ^ 0x4bb53a0367a1f70) +
                    *(longlong *)(DAT_182671560 + -0x8f0));
  *(ulonglong *)(DAT_182671560 + -0x918) = (ulonglong)pbVar29 ^ uVar18;
  lVar5 = DAT_182671560;
  uVar31 = uVar31 ^ DAT_18267169c;
  *(byte *)(lVar4 + -0x41) = *pbVar29 ^ bVar3 ^ (byte)DAT_182671694;
  uVar12 = DAT_182671884;
  uVar24 = DAT_182671570;
  lVar6 = DAT_182671560;
  uVar23 = (uint)(*(byte *)(lVar4 - (uVar17 ^ 0x1f61363b)) ^ bVar3);
  uVar31 = uVar31 + (uVar26 ^ 0xf608d92a) ^ DAT_18267184c;
  uVar18 = (ulonglong)DAT_182671570;
  *(uint *)(DAT_182671560 + -0x8c) = uVar23 ^ DAT_182671884;
  *(uint *)(lVar6 + -0x504) = uVar31;
  uVar31 = DAT_18267156c;
  lVar4 = DAT_182671560;
  uVar33 = (ulonglong)uVar41;
  *(ulonglong *)(DAT_182671560 + -0x110) = 0xe1e19851427ff7a4 >> (((byte)uVar10 ^ 0xc4) & 0x3f);
  lVar6 = DAT_182671560;
  *(uint *)(lVar4 - ((ulonglong)uVar41 ^ 0x781e921a)) =
       uVar23 << (((byte)DAT_182671580 ^ 0x15) & 0x1f) ^ DAT_1826717e0;
  lVar4 = DAT_182671560;
  uVar23 = *(uint *)(lVar5 + -0x8c);
  *(byte *)(DAT_182671560 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar6 - ((ulonglong)uVar31 ^ 0x367a13e1)) ^ (ulonglong)DAT_18267170c
                ) ^ (byte)DAT_182671694;
  uVar28 = (DAT_18267184c ^ *(uint *)(lVar5 + -0x504)) -
           (*(uint *)(lVar4 - ((ulonglong)uVar10 ^ 0xfffff78b)) ^ DAT_1826717e0) ^ DAT_18267189c;
  *(uint *)(lVar5 + -0x328) = uVar28;
  uVar28 = (uVar28 ^ DAT_18267189c) * (*(uint *)(lVar5 + -0x27c) ^ uVar35);
  *(uint *)(lVar5 + -0x374) = uVar28 ^ uVar32;
  uVar32 = DAT_1826716e0;
  uVar23 = (uVar23 ^ uVar12) * (uVar31 ^ 0x367a1f70) ^ DAT_18267166c;
  *(uint *)(lVar5 + -0x968) = uVar23;
  bVar3 = (byte)DAT_182671570;
  bVar20 = (byte)uVar9 ^ 0xd1;
  *(uint *)(lVar5 - (uVar15 ^ 0x13aca2b2)) = (uVar23 ^ DAT_18267166c) + uVar28 ^ uVar32;
  uVar23 = DAT_1826717bc;
  uVar32 = uVar32 ^ *(uint *)(lVar5 + -0x678);
  uVar31 = uVar32 << ((bVar3 ^ 0xf2) & 0x1f) ^ _DAT_1826715d8;
  uVar32 = uVar32 >> (bVar20 & 0x1f) ^ DAT_1826717d8;
  *(uint *)(lVar5 + -0x910) = uVar31;
  uVar31 = uVar31 ^ _DAT_1826715d8;
  *(uint *)(lVar5 + -0x47c) = uVar32;
  uVar21 = (ulonglong)uVar11;
  uVar31 = (*(uint *)(lVar5 - (uVar18 ^ 0xfffffb83)) ^ DAT_1826717d8 | uVar31) ^ DAT_182671860;
  uVar32 = (*(uint *)(lVar5 + -0x3c8) ^ DAT_182671624) + (*(uint *)(lVar5 + -0x27c) ^ uVar35);
  *(uint *)(lVar5 + -0x3d4) = uVar31;
  uVar35 = uVar31 ^ DAT_1826718d4 ^ DAT_182671860;
  *(uint *)(lVar5 + -0x844) = uVar32 ^ uVar23;
  uVar27 = (ulonglong)uVar26;
  uVar23 = *(uint *)(lVar5 - (uVar21 ^ 0x6abb2dc1)) ^ DAT_1826715c8 ^ uVar23;
  uVar31 = DAT_182671578 ^ 0xd4c7575;
  *(uint *)(lVar5 + -0x964) = uVar23;
  *(uint *)(lVar5 + -0x754) = uVar35;
  lVar4 = DAT_182671560;
  *(uint *)(lVar5 + -0x344) = uVar32 + uVar31;
  uVar28 = DAT_1826717c8;
  *(uint *)(lVar4 - (uVar16 ^ 0xa053be00)) = uVar23 ^ DAT_1826717c8 ^ DAT_1826715c8;
  *(uint *)(lVar4 + -0x874) =
       *(uint *)(lVar4 - (uVar33 ^ 0x781e9d3a)) ^ DAT_1826716c8 ^ DAT_1826718d4;
  bVar3 = (byte)DAT_182671810;
  lVar5 = DAT_182671560;
  pbVar29 = (byte *)(*(longlong *)(lVar4 - (uVar37 ^ 0x367a1791)) +
                    (CONCAT44(uVar26,uVar13) ^ 0xffffffff1f613666));
  *(ulonglong *)(lVar4 + -0xd20) = (ulonglong)pbVar29 ^ (ulonglong)DAT_18267187c;
  uVar23 = DAT_18267165c;
  *(byte *)(lVar4 + -0x41) = *pbVar29 ^ bVar3 ^ (byte)DAT_182671694;
  uVar32 = DAT_1826718cc;
  lVar6 = DAT_182671560;
  uVar31 = (uint)(*(byte *)(lVar4 - (uVar15 ^ 0x13aca48b)) ^ bVar3);
  *(uint *)(DAT_182671560 + -0x328) = uVar31 ^ DAT_1826718cc;
  *(uint *)(lVar5 + -0x8c) =
       (*(uint *)(lVar6 - (uVar17 ^ 0x1f613e0e)) ^ DAT_1826716c8) + (uVar25 ^ 0x1a5b821f) ^
       DAT_1826717b8;
  uVar35 = DAT_1826716e4;
  *(uint *)(lVar5 - (uVar37 ^ 0x367a1c15)) =
       uVar31 << (((byte)uVar11 ^ 0x94) & 0x1f) ^ DAT_1826716e4;
  *(uint *)(lVar5 - (uVar19 ^ 0x4bb5ac8)) =
       (*(uint *)(lVar5 + -0x8c) ^ DAT_1826717b8) -
       (*(uint *)(lVar5 - (uVar33 ^ 0x781e991a)) ^ uVar35) ^ DAT_1826715f4;
  *(uint *)(lVar5 - (uVar39 ^ 0x6cf438ba)) =
       (uVar28 ^ *(uint *)(lVar5 + -0x504)) * (*(uint *)(lVar5 + -0x968) ^ DAT_1826715f4) ^ uVar23;
  uVar31 = DAT_182671608;
  lVar4 = DAT_182671560;
  uVar30 = (*(uint *)(lVar5 + -0x328) ^ uVar32) * (uVar40 ^ 0x1c);
  puVar1 = (uint *)(DAT_182671560 + -0x678);
  *(uint *)(DAT_182671560 + -0x47c) = uVar30 ^ DAT_182671608;
  uVar12 = DAT_18267174c;
  uVar30 = uVar30 + (uVar23 ^ *puVar1);
  *(uint *)(lVar4 + -0x910) = uVar30 ^ DAT_18267174c;
  uVar32 = DAT_182671624;
  uVar23 = DAT_18267156c;
  *(uint *)(lVar4 - ((ulonglong)DAT_18267156c ^ 0x367a1d1d)) =
       uVar30 << (((byte)uVar10 ^ 0xf2) & 0x1f) ^ DAT_182671638;
  *(uint *)(lVar4 + -0x844) = (*(uint *)(lVar4 + -0x910) ^ uVar12) >> (bVar20 & 0x1f) ^ uVar31;
  uVar34 = CONCAT44(uVar36,uVar24);
  *(uint *)(lVar4 + -0x344) =
       (*(uint *)(lVar4 - (uVar27 ^ 0xfffffd83)) ^ DAT_182671638 |
       *(uint *)(lVar4 - (uVar18 ^ 0xfffff7bb)) ^ uVar31) ^ DAT_182671674;
  *(ulonglong *)(lVar4 + -0xa60) =
       (CONCAT44(uVar23,uVar7) ^ 0xf078b3879a86508a) << (((byte)uVar8 ^ 0x87) & 0x3f);
  uVar31 = (*(uint *)(lVar4 - (uVar33 ^ 0x781e9f6a)) ^ uVar28) +
           (*(uint *)(lVar4 + -0x3c8) ^ uVar32) ^ DAT_1826718ac;
  *(uint *)(lVar4 + -0x3d4) = uVar31;
  lVar5 = DAT_182671560;
  uVar24 = uVar31 ^ _DAT_1826715f0 ^ DAT_1826718ac;
  *(ulonglong *)(lVar4 + -0x3b8) = CONCAT44(uVar25,uVar10) ^ uVar34 ^ 0x56891dbaa26b144b;
  uVar31 = DAT_182671658;
  uVar22 = (ulonglong)DAT_182671870;
  *(uint *)(lVar4 - (uVar33 ^ 0x781e930a)) = uVar24;
  *(longlong *)(lVar4 + -0x80) =
       *(longlong *)(lVar4 + -0x110) << ((byte)*(undefined8 *)(lVar4 + -0xa0) & 0x3f);
  uVar24 = DAT_182671640 ^ DAT_182671674 ^ *(uint *)(lVar5 + -0x344);
  *(ulonglong *)(lVar5 + -0xa88) =
       (CONCAT44(uVar25,uVar9) ^ 0xf1bec9690c4c9c46) - *(longlong *)(lVar5 + -0x3f0);
  *(uint *)(lVar5 + -0x754) = uVar24;
  uVar36 = uVar24 ^ DAT_182671660 ^ DAT_182671640;
  *(uint *)(lVar5 + -0x874) =
       *(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0x367a1605)) ^ uVar31 ^ _DAT_1826715f0;
  *(uint *)(lVar5 + -0x8c) = uVar36;
  uVar23 = DAT_1826718b0;
  uVar36 = uVar36 ^ DAT_182671660;
  uVar24 = DAT_1826718b0 & 0xff;
  pbVar29 = (byte *)(*(longlong *)(lVar5 - (uVar21 ^ 0x6abb2d75)) +
                    (CONCAT44(uVar8,uVar26) ^ 0x4bb53a0fffffff8));
  *(ulonglong *)(lVar5 + -0x918) = (ulonglong)pbVar29 ^ uVar22;
  uVar12 = DAT_1826718a4;
  uVar28 = uVar36 + (uVar26 ^ 0xf608d92a) ^ DAT_1826718a4;
  *(byte *)(lVar5 + -0xc41) = *pbVar29 ^ (byte)uVar23 ^ (byte)DAT_182671694;
  *(ulonglong *)(lVar5 + -0x548) = uVar34 ^ 0xf1129dacbcf8748d | *(ulonglong *)(lVar5 + -0xa60);
  uVar36 = DAT_182671788;
  *(uint *)(lVar5 + -0x374) = *(byte *)(lVar5 + -0xc41) ^ uVar24 ^ DAT_182671788;
  *(uint *)(lVar5 - (uVar37 ^ 0x367a1609)) = uVar28;
  uVar28 = (*(uint *)(lVar5 + -0x374) ^ uVar36) << (((byte)(uVar7 >> 0x10) ^ 0x6b) & 0x1f) ^
           DAT_1826717c0;
  *(uint *)(lVar5 + -0x328) = uVar28;
  uVar24 = DAT_182671748;
  lVar4 = DAT_182671560;
  uVar28 = uVar28 ^ DAT_1826717c0;
  *(ulonglong *)(lVar5 + -0x9f8) =
       CONCAT44(uVar11,uVar7) ^ *(ulonglong *)(lVar5 + -0xa0) ^ 0x7198c8c7a949f7f3;
  uVar23 = DAT_18267163c;
  *(uint *)(lVar4 - (uVar19 ^ 0x4bb55d8)) = (*(uint *)(lVar5 + -0x968) ^ uVar12) - uVar28 ^ uVar24;
  lVar5 = DAT_182671560;
  *(uint *)(lVar4 + -0x47c) =
       (*(uint *)(lVar4 + -0x874) ^ uVar31) * (uVar24 ^ *(uint *)(lVar4 + -0x678)) ^ uVar23;
  *(uint *)(lVar5 - (uVar27 ^ 0xfffff6ef)) = (*(uint *)(lVar4 + -0x374) ^ uVar36) * 7 ^ uVar12;
  *(uint *)(lVar5 - (uVar39 ^ 0x6cf43cbe)) =
       (*(uint *)(lVar5 + -0x910) ^ uVar12) + (uVar23 ^ *(uint *)(lVar5 + -0x47c)) ^ uVar24;
  lVar4 = DAT_182671560;
  bVar3 = (byte)DAT_182671578;
  uVar23 = (*(uint *)(lVar5 - (uVar17 ^ 0x1f613406)) ^ uVar24) << 0xd ^ DAT_182671874;
  puVar1 = (uint *)(DAT_182671560 + -0x27c);
  *(uint *)(DAT_182671560 + -0x844) = uVar23;
  uVar23 = uVar23 ^ DAT_182671874;
  *(uint *)(lVar4 + -0x504) = (*puVar1 ^ uVar24) >> ((bVar3 ^ 0xb3) & 0x1f) ^ DAT_1826716c4;
  *(uint *)(lVar4 + -0x3d4) =
       (*(uint *)(lVar4 - (uVar17 ^ 0x1f61337e)) ^ DAT_1826716c4 | uVar23) ^ _DAT_1826715e0;
  uVar24 = DAT_1826716d0;
  *(uint *)(lVar4 - (uVar21 ^ 0x6abb26c1)) =
       (*(uint *)(lVar4 + -0x874) ^ uVar31) + (*(uint *)(lVar4 + -0x3c8) ^ uVar32) ^ DAT_18267184c;
  uVar23 = DAT_182671764 ^ DAT_18267184c;
  *(byte *)(lVar4 + -0x41) =
       *(byte *)((ulonglong)DAT_1826716d8 ^ *(ulonglong *)(lVar4 + -0x4f0)) ^ (byte)DAT_182671694;
  *(uint *)(lVar4 - (uVar15 ^ 0x13acadae)) = uVar23 ^ *(uint *)(lVar4 + -0x344);
  uVar23 = *(uint *)(lVar4 + -0x3d4) ^ DAT_182671728 ^ _DAT_1826715e0;
  *(longlong *)(lVar4 + -0x9e8) = *(longlong *)(lVar4 + -0x600) + -0x2a7d2f7521ce6cd8;
  *(uint *)(lVar4 - (uVar21 ^ 0x6abb22d1)) = uVar23;
  uVar31 = DAT_1826717f4;
  uVar23 = *(uint *)(lVar4 + -0x754) ^ DAT_18267162c ^ DAT_182671728;
  *(uint *)(lVar4 + -0x8c) = *(uint *)(lVar4 + -0x964) ^ DAT_1826717f4 ^ DAT_182671764;
  *(uint *)(lVar4 - (uVar17 ^ 0x1f613f12)) = uVar23;
  *(ulonglong *)(lVar4 + -0x6d0) = *(ulonglong *)(lVar4 + -0x898) | 0xfd4782c02417dd31;
  pbVar29 = (byte *)((CONCAT44(uVar40,uVar9) ^ 0x6cf43ec2) * 0x20 +
                     (CONCAT44(uVar13,uVar40) ^ 0x1f61367a00000012) + *(longlong *)(lVar4 + -0x8f0))
  ;
  *(ulonglong *)(lVar4 + -0xc80) = (ulonglong)pbVar29 ^ (ulonglong)DAT_182671744;
  bVar20 = (byte)DAT_1826717f8;
  *(byte *)(lVar4 + -0xc41) = *pbVar29 ^ (byte)DAT_1826717f8 ^ (byte)DAT_182671694;
  lVar5 = DAT_182671560;
  bVar3 = (byte)DAT_182671570;
  *(uint *)(lVar4 - (uVar16 ^ 0xa053b82c)) =
       (*(byte *)(lVar4 - (uVar38 ^ 0xfffff3be)) ^ bVar20) ^ uVar24;
  uVar23 = (*(uint *)(lVar5 + -0x328) ^ uVar24) << ((bVar3 ^ 0xee) & 0x1f) ^ DAT_182671864;
  uVar36 = (*(uint *)(lVar4 + -0x968) ^ DAT_18267162c) + (DAT_182671580 ^ 0xa9a49dd1) ^
           DAT_182671708;
  *(uint *)(lVar5 + -0x374) = uVar23;
  uVar23 = uVar23 ^ DAT_182671864;
  *(uint *)(lVar5 + -0x678) = uVar36;
  *(uint *)(lVar5 + -0x47c) = (uVar36 ^ DAT_182671708) - uVar23 ^ DAT_1826715ec;
  uVar36 = DAT_18267156c ^ 0x367a1f73;
  *(uint *)(lVar5 + -0x910) =
       (*(uint *)(lVar5 - ((ulonglong)DAT_18267156c ^ 0x367a1b1d)) ^ DAT_1826715ec) *
       (uVar31 ^ *(uint *)(lVar5 + -0x8c)) ^ uVar32;
  *(longlong *)(lVar5 - (uVar38 ^ 0xfffffdbf)) =
       *(longlong *)(lVar5 + -0x688) << (((byte)uVar7 ^ 0x77) & 0x3f);
  uVar23 = DAT_182671678;
  uVar22 = CONCAT44(DAT_182671724,DAT_182671724);
  uVar36 = (*(uint *)(lVar5 + -0x328) ^ uVar24) * uVar36;
  uVar19 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(uint *)(lVar5 + -0x27c) = uVar36 ^ _DAT_1826715dc;
  uVar19 = *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar5 + -0xa38)) ^ uVar19;
  *(ulonglong *)(lVar5 + -0x800) = uVar19;
  *(ulonglong *)(lVar5 + -0xa38) = CONCAT44(uVar25,uVar8) ^ 0xa50fa59e682d1e65;
  bVar3 = (byte)DAT_182671578;
  *(uint *)(lVar5 + -0x844) = uVar36 + (*(uint *)(lVar5 + -0x910) ^ uVar32) ^ uVar23;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xfffffd8f)) =
       CONCAT44(uVar11,uVar9) ^ uVar19 ^ 0x9f81a89e310d85d1;
  *(uint *)(lVar5 - (uVar18 ^ 0xfffffafb)) =
       (*(uint *)(lVar5 + -0x844) ^ uVar23) << ((bVar3 ^ 0xad) & 0x1f) ^ DAT_182671888;
  bVar3 = (byte)DAT_182671588;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xfffffbff)) =
       CONCAT44(uVar26,uVar8) ^ 0xbf6dfbadfdfddb7f | 0x2764faa569bd927e;
  *(uint *)(lVar5 + -0x874) =
       (*(uint *)(lVar5 + -0x844) ^ uVar23) >> ((bVar3 ^ 0xfb) & 0x1f) ^ DAT_182671600;
  uVar23 = DAT_18267179c;
  uVar24 = (*(uint *)(lVar5 - (uVar37 ^ 0x367a1715)) ^ DAT_182671600 |
           *(uint *)(lVar5 - (uVar21 ^ 0x6abb2081)) ^ DAT_182671888) ^ DAT_18267179c;
  *(uint *)(lVar5 + -0x344) = uVar24;
  uVar31 = (*(uint *)(lVar5 - (uVar15 ^ 0x13aca702)) ^ uVar32) + (uVar31 ^ *(uint *)(lVar5 + -0x8c))
           ^ DAT_182671740;
  *(uint *)(lVar5 + -0x3d4) = uVar31;
  *(uint *)(lVar5 + -0x964) = uVar31 ^ DAT_182671778 ^ DAT_182671740;
  *(uint *)(lVar5 - (uVar39 ^ 0x6cf43996)) = uVar23 ^ uVar35 ^ uVar24;
  *(uint *)(lVar5 + -0x968) =
       *(uint *)(lVar5 - (uVar17 ^ 0x1f613f1e)) ^ DAT_182671778 ^ DAT_18267170c;
  uVar15 = (ulonglong)DAT_1826717e4;
  *(uint *)(lVar5 + -0x678) = *(uint *)(lVar5 - (uVar16 ^ 0xa053bc50)) ^ DAT_18267160c ^ uVar35;
  bVar3 = (byte)DAT_1826716bc;
  pbVar29 = (byte *)((CONCAT44(uVar10,uVar7) ^ 0xffffffff367a1f61) * 0x20 +
                     (CONCAT44(uVar10,uVar26) ^ 0xffffffffffffffe2) + *(longlong *)(lVar5 + -0x8f0))
  ;
  *(ulonglong *)(lVar5 + -0x4f0) = (ulonglong)pbVar29 ^ uVar15;
  bVar20 = *pbVar29 ^ bVar3 ^ (byte)DAT_182671694;
  *(byte *)(lVar5 + -0x41) = bVar20;
  *(uint *)(lVar5 - (uVar16 ^ 0xa053b870)) = (bVar3 ^ bVar20) ^ DAT_182671844;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar2 ^ uVar41;
  return;
}



############ FUN_ 180eb7b20 size=4276 ############

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

void FUN_180eb7b20(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  byte bVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  uint uVar12;
  uint uVar13;
  byte *pbVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint *puVar23;
  uint *puVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint *puVar31;
  ulonglong uVar32;
  uint *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte local_60;
  
  uVar12 = DAT_18267174c;
  uVar18 = DAT_18267159c;
  uVar13 = DAT_182671584;
  uVar28 = DAT_182671570;
  lVar6 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671584;
  uVar10 = (ulonglong)DAT_182671570;
  uVar21 = DAT_182671570 << 0x10 | DAT_182671570 >> 0x10;
  uVar25 = (DAT_182671584 << 0x10 | DAT_182671584 & 0xff00) << 8 | DAT_182671584 >> 8 & 0xff00 |
           DAT_182671584 >> 0x18;
  uVar3 = *(uint *)(&DAT_182611e78 + DAT_182671bcc);
  uVar8 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_182671570 ^ 0xad96406) + (longlong)DAT_182671bcc) ^ DAT_182671584
  ;
  uVar16 = (ulonglong)DAT_182671584;
  uVar34 = (ulonglong)DAT_18267159c;
  uVar22 = (ulonglong)uVar25;
  DAT_18267157c = uVar21;
  DAT_1826715ac = uVar25;
  *(uint *)(DAT_182671560 - (uVar10 ^ 0xad96c62)) =
       (*(uint *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0x641603bd)) ^ DAT_18267174c) << 0x11 ^
       DAT_18267174c;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar21 ^ 0x64160ce1)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0xad96506)) |
       CONCAT44(uVar13,uVar28) ^ 0xaaa88b35a0eeedc3;
  *(uint *)(lVar6 - ((ulonglong)uVar25 ^ 0x48900fc8)) =
       (*(uint *)(lVar6 + -0x374) ^ DAT_18267168c) - (*(uint *)(lVar6 + -0x874) ^ uVar12) ^
       DAT_1826717d8;
  uVar9 = *(uint *)(lVar6 + -0x968) ^ DAT_1826717d8;
  uVar29 = *(uint *)(lVar6 + -0x27c) ^ DAT_1826718c8;
  *(ulonglong *)(lVar6 + -0x1f0) =
       (CONCAT44(uVar25,uVar21) ^ 0x6d30209ca9918af2) >>
       ((byte)*(undefined8 *)(lVar6 + -0xa88) & 0x3f);
  uVar9 = uVar29 * uVar9 ^ _DAT_182671610;
  *(uint *)(lVar6 + -0x678) = uVar9;
  uVar9 = uVar9 ^ _DAT_182671610;
  uVar12 = (*(uint *)(lVar6 - (uVar34 ^ 0x6407458b)) ^ uVar12) * (uVar18 ^ 0x64074cfb) ^
           DAT_182671644;
  *(uint *)(lVar6 + -0x344) = uVar12;
  uVar21 = uVar9 + (uVar12 ^ DAT_182671644) ^ DAT_182671604;
  *(uint *)(lVar6 + -0x274) = uVar21;
  uVar29 = DAT_182671814;
  uVar9 = DAT_1826715b0;
  lVar7 = DAT_182671560;
  uVar21 = uVar21 ^ DAT_182671604;
  uVar11 = (ulonglong)DAT_182671814;
  *(uint *)(DAT_182671560 + -0x844) =
       (DAT_1826715b0 ^ 0xf33fad0b) <<
       (((byte)DAT_1826717dc ^ (byte)*(undefined4 *)(lVar6 + -0x754)) & 0x1f);
  uVar12 = DAT_182671580;
  *(uint *)(lVar7 + -0x5cc) = uVar21 << (((byte)uVar18 ^ 0xe2) & 0x1f) ^ DAT_182671804;
  *(ulonglong *)(lVar7 + -0x2a0) =
       *(longlong *)(lVar7 - (uVar16 ^ 0xa0069448)) - (CONCAT44(uVar12,uVar13) ^ 0x498b696596977c02)
  ;
  uVar12 = DAT_1826716e0;
  *(uint *)(DAT_182671560 + -0x328) =
       uVar21 >> (((byte)(uVar28 >> 0x10) ^ 0xca) & 0x1f) ^ DAT_1826716e0;
  lVar6 = DAT_182671560;
  puVar23 = (uint *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0xad9673e));
  *(uint *)(DAT_182671560 - (uVar22 ^ 0x489002dc)) =
       (*(uint *)(DAT_182671560 - (uVar10 ^ 0xad961da)) ^ DAT_182671804 | uVar12 ^ *puVar23) ^
       DAT_182671694;
  *(uint *)(lVar6 + -0x504) =
       (*(uint *)(lVar6 - ((ulonglong)uVar18 ^ 0x64074f27)) ^ DAT_182671624) +
       (*(uint *)(lVar6 + -0x27c) ^ DAT_1826718c8) ^ DAT_1826717b4;
  bVar4 = (byte)DAT_182671864;
  uVar21 = DAT_1826715a8;
  lVar7 = DAT_182671560;
  uVar16 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x5ff963bf)) =
       *(ulonglong *)(CONCAT44(uVar29,uVar29) ^ *(ulonglong *)(lVar6 + -0x450)) ^
       CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar9 = DAT_182671574;
  puVar1 = (uint *)(lVar7 + -0x47c);
  *(uint *)(lVar6 + -0x374) = *(uint *)(lVar6 + -0x504) ^ DAT_182671684 ^ DAT_1826717b4;
  uVar29 = DAT_1826717ec;
  uVar12 = uVar21;
  if ((uVar9 & 1) == 0) {
    uVar12 = uVar9;
  }
  uVar10 = (ulonglong)DAT_18267156c;
  DAT_182671590 = uVar12;
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x966b3557)) = *puVar1 ^ DAT_182671818 ^ DAT_182671694;
  puVar2 = (uint *)(lVar7 + -0x964);
  *(uint *)(lVar7 - (uVar10 ^ 0x568949ee)) = *(uint *)(lVar7 + -0x374) ^ uVar29 ^ DAT_182671684;
  *(longlong *)(lVar7 + -0x270) = 0x16968b0bda311d47 - *(longlong *)(lVar7 + -0xbf0);
  *puVar2 = *(uint *)(lVar7 + -0x874) ^ DAT_1826718b0 ^ DAT_182671818;
  uVar9 = DAT_18267156c;
  uVar10 = (ulonglong)uVar12;
  pbVar14 = (byte *)((CONCAT44(uVar12,DAT_18267156c) ^ 0x205c205c56894099) +
                     (CONCAT44(uVar12,uVar21) ^ 0x205c205c205c205c) * 0x20 +
                    *(longlong *)(lVar7 + -0x8f0));
  *(ulonglong *)(lVar7 + -0x420) = (ulonglong)pbVar14 ^ uVar11;
  uVar17 = DAT_182671574;
  *(byte *)(lVar7 + -0xce1) = *pbVar14 ^ bVar4 ^ (byte)DAT_182671694;
  uVar26 = DAT_182671884;
  uVar19 = uVar17 ^ 0x9f9c1bf6;
  *(byte *)(*(ulonglong *)(lVar7 - ((ulonglong)uVar17 ^ 0x966b35fb)) ^ (ulonglong)DAT_1826717a0) =
       (byte)uVar21 ^ 0xb9;
  *(longlong *)(lVar7 + -0x688) =
       *(longlong *)(lVar7 + -0x1f0) << ((byte)*(undefined8 *)(lVar7 + -0x600) & 0x3f);
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x568946fe)) =
       (*(byte *)(lVar7 - ((ulonglong)uVar9 ^ 0x56894c67)) ^ bVar4) ^ uVar26;
  *(uint *)(lVar7 + -0x344) = (*puVar2 ^ DAT_1826718b0) + uVar19 ^ DAT_182671700;
  uVar9 = DAT_182671654;
  puVar31 = (uint *)(lVar7 - (uVar22 ^ 0x489001f4));
  *puVar31 = (*(uint *)(lVar7 + -0x678) ^ uVar26) << (((byte)DAT_18267156c ^ 0x97) & 0x1f) ^
             DAT_182671654;
  puVar33 = (uint *)(lVar7 - (uVar10 ^ 0x205c2318));
  uVar11 = (ulonglong)DAT_182671580;
  *(uint *)(lVar7 + -0x844) =
       (*puVar33 ^ DAT_182671700) - (uVar9 ^ *(uint *)(lVar7 + -0x754)) ^ DAT_1826717b8;
  uVar15 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar7 - (uVar11 ^ 0x3bfe2aa0)) =
       *(ulonglong *)(lVar7 + -0x748) ^ *(ulonglong *)(lVar7 + -0x80);
  uVar17 = DAT_1826715d4;
  uVar26 = (*(uint *)(lVar7 + -0x678) ^ uVar26) * (uVar21 ^ 0x205c2043);
  *(uint *)(lVar7 + -0x274) =
       (*(uint *)(lVar7 - (uVar15 ^ 0x966b3567)) ^ DAT_1826717b8) *
       (*(uint *)(lVar7 + -0x968) ^ uVar29) ^ DAT_1826716ac;
  *(uint *)(lVar7 + -0x5cc) = uVar26 ^ uVar17;
  uVar9 = DAT_1826717ac;
  *(longlong *)(lVar7 + -0x3b8) = *(longlong *)(lVar7 + -0x9f8) - *(longlong *)(lVar7 + -0x600);
  uVar11 = (ulonglong)DAT_182671580;
  *(uint *)(lVar7 + -0x328) =
       (*(uint *)(lVar7 - (uVar16 ^ 0x205c2228)) ^ DAT_1826716ac) + uVar26 ^ uVar9;
  puVar24 = (uint *)(lVar7 - (uVar11 ^ 0x3bfe2070));
  *(uint *)(lVar7 + -0x27c) =
       (uVar9 ^ *puVar23) << (((byte)DAT_18267156c ^ 0x8b) & 0x1f) ^ DAT_182671704;
  *(uint *)(lVar7 - ((ulonglong)DAT_182671574 ^ 0x966b3827)) =
       (*puVar24 ^ uVar9) >> (((byte)DAT_182671570 ^ 5) & 0x1f) ^ DAT_182671854;
  uVar9 = DAT_18267156c;
  uVar26 = (*(uint *)(lVar7 + -0x504) ^ DAT_182671854 | *(uint *)(lVar7 + -0x27c) ^ DAT_182671704) ^
           DAT_18267185c;
  uVar29 = (*(uint *)(lVar7 + -0x968) ^ uVar29) + (*(uint *)(lVar7 + -0x3c8) ^ DAT_182671624) ^
           DAT_182671600;
  *(uint *)(lVar7 + -0x374) = uVar29;
  uVar29 = uVar29 ^ DAT_182671848 ^ DAT_182671600;
  *puVar1 = uVar26;
  *(uint *)(lVar7 - (uVar10 ^ 0x205c2828)) = uVar29;
  *puVar2 = (DAT_1826715b0 ^ 0xc49fecd7) + uVar19;
  *(uint *)(lVar7 + -0x344) = *puVar1 ^ DAT_182671658 ^ DAT_18267185c;
  uVar19 = _DAT_182671868;
  *(ulonglong *)(lVar7 + -0x628) =
       (CONCAT44(uVar9,DAT_18267157c) ^ 0x79890786d5c44b1d) -
       (CONCAT44(uVar12,uVar21) ^ 0x5df1e473155c81b8);
  uVar16 = (ulonglong)DAT_1826717d4;
  *(uint *)(lVar7 + -0x754) = *(uint *)(lVar7 + -0x874) ^ uVar19 ^ DAT_182671848;
  uVar12 = DAT_182671694;
  *(uint *)(lVar7 + -0x844) = *puVar33 ^ DAT_182671888 ^ DAT_182671658;
  *(byte *)(lVar7 + -0x8b2) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x7c8) ^ (ulonglong)DAT_1826716b8) ^ (byte)uVar12;
  bVar4 = (byte)DAT_182671890;
  uVar11 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0x6407483f)) =
       *(longlong *)(lVar7 + -0x8f0) + 10 + (CONCAT44(uVar25,uVar21) ^ 0x489006a0205c205c) * 0x20 ^
       uVar16;
  uVar26 = DAT_182671850;
  *(byte *)(lVar7 - (uVar11 ^ 0x5ff96445)) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x4d0) ^ uVar16) ^ bVar4 ^ (byte)uVar12;
  *(byte *)(*(ulonglong *)(lVar7 + -0x228) ^ (ulonglong)DAT_182671798) = (byte)uVar18 ^ 0x4c;
  *(uint *)(lVar7 + -0x678) = (*(byte *)(lVar7 + -0xbf2) ^ bVar4) ^ uVar26;
  bVar4 = (byte)DAT_182671570;
  *(ulonglong *)(lVar7 - (uVar22 ^ 0x48900f48)) =
       CONCAT44(uVar28,uVar18) ^ 0x762baee27c259cad | *(ulonglong *)(lVar7 + -0x9f8);
  uVar28 = (*(uint *)(lVar7 + -0x844) ^ DAT_182671888) + (DAT_182671584 ^ 0xa9f1b69d) ^
           DAT_1826715b8;
  uVar12 = (*(uint *)(lVar7 + -0x678) ^ uVar26) << ((bVar4 ^ 7) & 0x1f);
  *(uint *)(lVar7 + -0x274) = uVar28;
  uVar28 = uVar28 ^ DAT_1826715b8;
  *(uint *)(lVar7 + -0x5cc) = uVar12 ^ uVar17;
  *(uint *)(lVar7 + -0x328) = uVar28 - uVar12 ^ DAT_182671778;
  uVar29 = DAT_1826715b4;
  uVar28 = DAT_182671594;
  uVar32 = (ulonglong)DAT_182671594;
  uVar27 = (uVar19 ^ *(uint *)(lVar7 + -0x754)) * (*puVar24 ^ DAT_182671778);
  uVar20 = DAT_182671594 * DAT_1826715b4;
  uVar35 = CONCAT44(DAT_1826715b4,DAT_182671594);
  *(uint *)(lVar7 + -0x27c) = uVar27 ^ DAT_1826717a4;
  uVar15 = (ulonglong)uVar20;
  DAT_182671578 = uVar20;
  *(uint *)(lVar7 + -0x504) = (uVar20 ^ 0xb5e99747) - uVar27;
  uVar17 = (*(uint *)(lVar7 + -0x678) ^ uVar26) * 10 ^ DAT_182671760;
  *(uint *)(lVar7 + -0x968) = uVar17;
  uVar12 = DAT_18267175c;
  uVar27 = (uVar17 ^ DAT_182671760) + uVar27;
  *(uint *)(lVar7 + -0x374) = uVar27 ^ DAT_18267175c;
  *puVar2 = uVar27 << (((byte)uVar28 ^ 8) & 0x1f) ^ DAT_1826715cc;
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x28941dd)) =
       CONCAT44(uVar20,uVar29) ^ 0x29dee7b876d8c07 | uVar35 ^ 0x811bc28a3874c3b4;
  *(uint *)(lVar6 - (uVar15 ^ 0x4dd8dcf)) =
       (*(uint *)(lVar6 + -0x374) ^ uVar12) >> ((byte)uVar20 & 0x1f) ^ DAT_1826717c0;
  *(longlong *)(lVar6 - ((ulonglong)uVar29 ^ 0x8ad82057)) =
       *(longlong *)(lVar6 + -0x9f8) - *(longlong *)(lVar6 + -0x688);
  uVar27 = DAT_1826718ac;
  uVar17 = DAT_182671668;
  uVar16 = (ulonglong)DAT_182671668;
  *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0x2894871)) =
       (*puVar1 ^ DAT_1826717c0 | *puVar2 ^ DAT_1826715cc) ^ DAT_182671794;
  *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0x2894341)) =
       (*(uint *)(lVar6 - ((ulonglong)uVar29 ^ 0x8ad82f03)) ^ uVar19) +
       (*(uint *)(lVar6 + -0x3c8) ^ DAT_182671624) ^ DAT_1826715e8;
  uVar12 = DAT_182671574;
  *(uint *)(lVar6 + -0x844) = *(uint *)(lVar6 + -0x344) ^ DAT_1826715e8 ^ uVar19;
  uVar11 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar6 + -0x548) =
       (CONCAT44(uVar9,uVar28) ^ 0xfad5abf5b9d886dc) -
       *(longlong *)(lVar6 - ((ulonglong)uVar29 ^ 0x8ad82eef));
  uVar9 = *(uint *)(lVar6 - (uVar11 ^ 0x5ff967c3)) ^ uVar17 ^ DAT_182671794;
  *(uint *)(lVar6 + -0x274) = uVar9;
  uVar9 = uVar9 ^ uVar17 ^ DAT_182671604;
  *(uint *)(lVar6 + -0x5cc) = *(uint *)(lVar6 - ((ulonglong)uVar20 ^ 0x4dd81f7)) ^ uVar27 ^ uVar19;
  uVar11 = (ulonglong)_DAT_1826715e0;
  *(uint *)(lVar6 - ((ulonglong)DAT_18267157c ^ 0x641609f1)) = uVar9;
  bVar4 = (byte)DAT_182671738;
  uVar9 = DAT_182671694;
  pbVar14 = (byte *)(*(longlong *)(lVar6 - ((ulonglong)uVar29 ^ 0x8ad820a7)) +
                     (CONCAT44(uVar21,uVar12) ^ 0x205c205c966b3d36) +
                    (CONCAT44(uVar20,DAT_182671580) ^ 0x4dd89b33bfe2358) * 0x20);
  *(ulonglong *)(lVar6 + -0x950) = (ulonglong)pbVar14 ^ uVar11;
  *(uint *)(lVar6 + -0x504) = uVar27 ^ *(uint *)(lVar6 + -0x5cc) | 0x972d69f5;
  uVar19 = DAT_1826718b4;
  lVar7 = DAT_182671560;
  *(byte *)(lVar6 + -0xa51) = *pbVar14 ^ bVar4 ^ (byte)uVar9;
  *(undefined1 *)(*(ulonglong *)(lVar6 + -0xbb0) ^ (ulonglong)_DAT_18267188c) = 0x9f;
  uVar26 = DAT_1826717c4;
  local_60 = (byte)uVar13;
  *(uint *)(lVar7 + -0x678) = (bVar4 ^ *(byte *)(lVar6 + -0xa51)) ^ DAT_1826717c4;
  *(ulonglong *)(lVar7 + -0x5c8) =
       (CONCAT44(DAT_18267157c,uVar18) ^ 0x4a583d97e455ea04) >> ((local_60 ^ 0x76) & 0x3f);
  uVar12 = DAT_1826715a8;
  *(uint *)(lVar7 + -0x27c) =
       (*(uint *)(lVar7 - (uVar32 ^ 0x289432d)) ^ DAT_182671604) + (DAT_18267158c ^ 0x27b3ff35) ^
       _DAT_182671618;
  *(uint *)(lVar7 - (uVar15 ^ 0x4dd80db)) =
       (*(uint *)(lVar7 - (uVar10 ^ 0x205c2624)) ^ uVar26) << (((byte)uVar12 ^ 0x4d) & 0x1f) ^
       DAT_18267168c;
  uVar12 = (*(uint *)(lVar7 + -0x27c) ^ _DAT_182671618) -
           (*(uint *)(lVar7 + -0x968) ^ DAT_18267168c);
  *(uint *)(lVar7 + -0x374) = uVar12 ^ uVar19;
  lVar6 = DAT_182671560;
  uVar11 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (CONCAT44(DAT_182671574,uVar28) ^ 0xb64b5938a136ca8c) >>
       ((byte)*(undefined8 *)(lVar7 - (uVar22 ^ 0x48900600)) & 0x3f);
  *(uint *)(lVar6 - (uVar11 ^ 0x5ff966d3)) =
       uVar12 * (uVar27 ^ *(uint *)(lVar6 + -0x5cc)) ^ DAT_1826716b8;
  uVar12 = (uVar26 ^ *(uint *)(lVar6 + -0x678)) * 0x15 ^ DAT_182671600;
  *puVar1 = uVar12;
  uVar28 = DAT_182671894;
  lVar7 = DAT_182671560;
  bVar4 = (byte)DAT_182671570;
  uVar12 = (*(uint *)(lVar6 - (uVar30 ^ 0xa006992c)) ^ DAT_1826716b8) + (uVar12 ^ DAT_182671600);
  *(uint *)(DAT_182671560 + -0x754) = uVar12 ^ DAT_182671894;
  bVar5 = (byte)DAT_182671568;
  *(uint *)(lVar7 + -0x344) = uVar12 << ((bVar4 ^ 0x1b) & 0x1f) ^ DAT_1826717d0;
  uVar12 = DAT_1826715fc;
  lVar6 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0x568948f2)) =
       (uVar28 ^ *puVar31) >> ((bVar5 ^ 0x9a) & 0x1f) ^ DAT_1826715fc;
  uVar28 = DAT_182671574;
  uVar22 = (ulonglong)DAT_182671574;
  uVar11 = (ulonglong)DAT_182671574;
  *(uint *)(lVar6 + -0x844) =
       (*(uint *)(lVar6 - (uVar15 ^ 0x4dd8af7)) ^ DAT_1826717d0 | uVar12 ^ *(uint *)(lVar6 + -0x874)
       ) ^ DAT_182671780;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x64074eaf)) =
       *(ulonglong *)(lVar6 - (uVar11 ^ 0x966b34db)) >> (((byte)uVar29 ^ 0x6f) & 0x3f);
  uVar9 = DAT_18267167c;
  *(uint *)(lVar6 - (uVar30 ^ 0xa006923c)) =
       (uVar27 ^ *(uint *)(lVar6 + -0x5cc)) + (*(uint *)(lVar6 + -0x3c8) ^ DAT_182671624) ^
       DAT_1826717a4;
  uVar12 = DAT_18267157c;
  uVar13 = *(uint *)(lVar6 + -0x844) ^ DAT_182671780;
  uVar18 = *(uint *)(lVar6 + -0x274) ^ DAT_182671788 ^ DAT_1826717a4;
  *(uint *)(lVar6 + -0x328) = uVar13 ^ uVar26;
  *(uint *)(lVar6 + -0x504) = uVar18;
  uVar18 = uVar18 ^ DAT_1826716f4 ^ DAT_182671788;
  *(uint *)(lVar6 + -0x374) = (uVar12 ^ 0xc85a1053) + 0x51901dd8;
  *(uint *)(lVar6 + -0x968) = uVar13 ^ uVar17;
  *(uint *)(lVar6 + -0x27c) = uVar18;
  bVar4 = (byte)DAT_1826716a0;
  uVar16 = *(longlong *)(lVar6 - (uVar10 ^ 0x205c28ac)) +
           (CONCAT44(uVar20,uVar21) ^ 0x4dd89b3205c205c) * 0x20 + (uVar35 ^ 0x8ad8285702894005) ^
           uVar16;
  *(ulonglong *)(lVar6 + -0x780) = uVar16;
  uVar12 = DAT_18267156c;
  *(byte *)(lVar6 + -0x411) = *(byte *)(uVar17 ^ uVar16) ^ (byte)DAT_182671694 ^ bVar4;
  uVar13 = DAT_1826715b0 ^ 0x560e4962;
  *(byte *)(*(ulonglong *)(lVar6 + -0xc40) ^ (ulonglong)DAT_1826717e8) = (byte)uVar12 ^ 0x78;
  uVar12 = (uint)(*(byte *)(lVar6 + -0x411) ^ bVar4);
  *(uint *)(lVar6 + -0x678) = uVar12 ^ uVar9;
  uVar12 = uVar12 << (((byte)uVar28 ^ 0x32) & 0x1f) ^ DAT_1826715c8;
  *puVar2 = (*(uint *)(lVar6 - (uVar22 ^ 0x966b344b)) ^ uVar17) + uVar13 ^ DAT_1826716a8;
  *puVar1 = uVar12;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar8 * 4) = uVar3 ^ uVar25;
  return;
}



############ FUN_ 180ebeea0 size=5769 ############

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

void FUN_180ebeea0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  byte bVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  byte local_res18;
  
  uVar17 = DAT_182671854;
  uVar14 = DAT_182671778;
  uVar15 = DAT_1826715a8;
  uVar10 = DAT_182671598;
  uVar8 = DAT_182671588;
  uVar9 = DAT_182671574;
  lVar4 = DAT_182671560;
  uVar21 = DAT_18267156c & 3;
  if (uVar21 < 2) {
    DAT_18267158c = DAT_1826715ac;
    if (uVar21 == 0) {
      DAT_18267158c = DAT_18267156c;
    }
  }
  else {
    DAT_18267158c = DAT_182671568;
    if (uVar21 < 3) {
      DAT_18267158c = DAT_1826715b0;
    }
  }
  uVar46 = (ulonglong)DAT_182671588;
  uVar24 = (ulonglong)DAT_1826715a8;
  uVar26 = (ulonglong)DAT_182671598;
  uVar31 = DAT_182671574 * DAT_1826715a8;
  uVar28 = ~DAT_182671598;
  uVar49 = (DAT_182671588 << 0x10 | DAT_182671588 & 0xff00) << 8 | DAT_182671588 >> 8 & 0xff00 |
           DAT_182671588 >> 0x18;
  uVar21 = *(uint *)(&DAT_182611e78 + DAT_182671be0);
  uVar19 = *(uint *)(&DAT_182611e80 + DAT_182671be0) ^ DAT_182671588;
  uVar36 = (ulonglong)uVar31;
  uVar32 = (CONCAT44(DAT_1826717f0,DAT_1826717f0) ^ *(ulonglong *)(DAT_182671560 + -0x318)) <<
           (((byte)uVar31 ^ 0x2a) & 0x3f);
  uVar22 = (ulonglong)DAT_182671574;
  DAT_182671570 = uVar28;
  DAT_182671580 = uVar31;
  DAT_182671594 = uVar49;
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar32 ^ CONCAT44(DAT_182671708,DAT_182671708);
  uVar18 = DAT_18267166c;
  uVar43 = CONCAT44(uVar17,uVar17);
  uVar32 = *(ulonglong *)(lVar4 - (uVar22 ^ 0xedeef219)) ^ CONCAT44(uVar14,uVar14) | uVar32;
  puVar1 = (ulonglong *)(lVar4 + -0x400);
  uVar39 = uVar32 ^ uVar43;
  uVar50 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar39;
  uVar14 = DAT_1826715cc;
  *(ulonglong *)(lVar4 + -0x8a8) = (CONCAT44(uVar18,uVar18) ^ *puVar1) - uVar32 ^ uVar50;
  lVar5 = DAT_182671560;
  puVar47 = (ulonglong *)(lVar4 + -0x628);
  uVar25 = CONCAT44(uVar14,uVar14);
  uVar30 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar27 = (ulonglong)uVar28;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar28 ^ 0xf8d1ed0c)) =
       *puVar47 ^ uVar30 ^ uVar25 ^ uVar43 ^ uVar39;
  uVar33 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0xf7eaeda9)) ^ uVar25) >>
           (((byte)uVar10 ^ 0xa4) & 0x3f);
  uVar39 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(ulonglong *)(lVar5 + -0x548) = uVar33 ^ CONCAT44(DAT_1826717d8,DAT_1826717d8);
  uVar32 = (uVar25 ^ *(ulonglong *)(lVar5 + -0x240)) << 0x29;
  uVar43 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar5 + -0xbf0) = uVar32 ^ uVar39;
  uVar12 = DAT_18267158c;
  uVar7 = DAT_182671568;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar49 ^ 0xbbd4b757)) = (uVar33 | uVar32) ^ uVar43;
  uVar32 = *puVar47;
  *(ulonglong *)(lVar5 + -0x270) =
       (CONCAT44(uVar12,DAT_1826715ac) ^ 0x6e00e8952a608f40) -
       (uVar25 ^ *(ulonglong *)(lVar5 + -0x240));
  uVar40 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x3004336d)) =
       (uVar32 ^ uVar30) - (uVar43 ^ *(ulonglong *)(lVar5 + -0x800)) ^ uVar40;
  uVar11 = DAT_182671584;
  uVar39 = CONCAT44(DAT_18267170c,DAT_18267170c);
  uVar33 = CONCAT44(DAT_182671804,DAT_182671804);
  uVar32 = CONCAT44(DAT_1826718a4,DAT_1826718a4) ^ uVar39 ^ uVar50 ^ *(ulonglong *)(lVar5 + -0xa88)
           ^ *(ulonglong *)(lVar5 + -0x8a8);
  *(ulonglong *)(lVar5 + -0x9f8) = uVar32;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x57bfd54b)) =
       (uVar32 ^ uVar39) >> (((byte)DAT_1826715b0 ^ 0x38) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar5 + -0x748) = (uVar33 ^ *(ulonglong *)(lVar5 + -0x1f0)) + 0x4ac0100e9c6e0e2d;
  uVar14 = DAT_1826715c0;
  uVar30 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar5 + -0x898) =
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0x72e194b)) ^ uVar39) << (((byte)uVar7 ^ 0x75) & 0x3f) ^
       uVar30;
  uVar17 = DAT_182671800;
  uVar13 = DAT_182671764;
  uVar39 = (ulonglong)DAT_182671764;
  uVar25 = CONCAT44(uVar14,uVar14);
  uVar32 = *(ulonglong *)(lVar5 - (uVar22 ^ 0xedeefc91)) ^ uVar30 |
           uVar33 ^ *(ulonglong *)(lVar5 + -0x1f0);
  *(ulonglong *)(lVar5 + -0x2a0) = uVar32 ^ uVar25;
  uVar44 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar49 ^ 0xbbd4b987)) =
       (uVar50 ^ *(ulonglong *)(lVar5 + -0x8a8)) - uVar32 ^ uVar44;
  uVar14 = DAT_182671650;
  lVar4 = DAT_182671560;
  puVar2 = (ulonglong *)(lVar5 + -0x600);
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar32 = uVar33 ^ uVar25 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0x2a0) ^ *puVar2;
  *(ulonglong *)(lVar5 + -0x318) = uVar32;
  uVar50 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0x610) = (uVar32 >> 0x20 ^ uVar39) >> 0x14 ^ uVar50;
  puVar23 = (ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x57bfd563));
  *puVar23 = (CONCAT44(uVar31,DAT_1826715b0) ^ 0xe524e08d69281fc5) + 0x47e8944e1ba37f35;
  local_res18 = (byte)(uVar8 >> 0x18);
  uVar39 = (uVar33 ^ *(ulonglong *)(lVar4 + -0x318)) << ((local_res18 ^ 0x5b) & 0x3f);
  *puVar1 = uVar39 ^ CONCAT44(DAT_182671688,DAT_182671688);
  uVar14 = DAT_182671754;
  *(ulonglong *)(lVar4 + -0x6b8) =
       CONCAT44(uVar28,DAT_18267156c) ^ 0xb155b7a4fbb28b41 |
       CONCAT44(uVar11,uVar31) ^ 0x390538249c12f4d7;
  uVar17 = DAT_182671874;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar39 = uVar50 ^ *(ulonglong *)(lVar4 + -0x610) | uVar39;
  *(ulonglong *)(lVar4 + -0x548) = uVar39 ^ uVar34;
  uVar13 = DAT_182671748;
  uVar16 = DAT_1826715ac;
  uVar33 = CONCAT44(uVar17,uVar17);
  uVar32 = (ulonglong)DAT_18267156c;
  uVar25 = (ulonglong)DAT_182671748;
  uVar42 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar4 + -0xbf0) = (uVar40 ^ *puVar2) - uVar39 ^ uVar33;
  puVar35 = (ulonglong *)(lVar4 - (uVar32 ^ 0x12330374));
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar40 = CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar32 = uVar41 ^ uVar44 ^ uVar43 ^ *puVar35 ^ *(ulonglong *)(lVar4 + -0x800);
  *(ulonglong *)(lVar4 + -0x240) = uVar32;
  *(ulonglong *)(lVar4 + -0x270) = (uVar32 >> 0x20 ^ uVar25) >> 0x19 ^ uVar40;
  uVar39 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xf8d1e964)) =
       (uVar41 ^ uVar32) << (((byte)uVar31 ^ 0x36) & 0x3f) ^ uVar39;
  uVar25 = CONCAT44(DAT_182671620,DAT_182671620);
  uVar32 = *(ulonglong *)(lVar4 - (uVar42 ^ 0x838d3e1f)) ^ uVar39 |
           uVar40 ^ *(ulonglong *)(lVar4 + -0x270);
  uVar39 = uVar32 ^ uVar25;
  uVar41 = CONCAT44(DAT_182671828,DAT_182671828);
  *(ulonglong *)(lVar4 + -0xa88) = uVar39;
  uVar14 = DAT_18267171c;
  *(ulonglong *)(lVar4 + -0x748) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0xedeef2d9)) ^ uVar44) - uVar32 ^ uVar41;
  uVar17 = DAT_182671784;
  lVar4 = DAT_182671560;
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 + -0x9f8) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0x218) ^ uVar30) ^ uVar43;
  uVar13 = DAT_18267158c;
  uVar40 = CONCAT44(uVar17,uVar17);
  uVar30 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar32 = uVar40 ^ uVar25 ^ uVar33 ^ uVar39 ^ *(ulonglong *)(lVar4 + -0xbf0);
  *(ulonglong *)(lVar4 + -0x1f0) = uVar32;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x898) = (uVar32 ^ uVar40) >> (((byte)uVar13 ^ 0xaa) & 0x3f) ^ uVar30;
  uVar39 = (uVar40 ^ uVar32) << (((byte)uVar16 ^ 5) & 0x3f);
  *(ulonglong *)(lVar5 + -0x8a8) = uVar39 ^ CONCAT44(DAT_18267183c,DAT_18267183c);
  uVar32 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar5 + -0x2a0) =
       (CONCAT44(uVar11,uVar10) ^ 0xae8c006ca7a81e9e) +
       (CONCAT44(uVar7,uVar16) ^ 0xbf5e8e7da20d70c2);
  uVar25 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar39 = *(ulonglong *)(lVar5 - (uVar32 ^ 0x6079888)) ^ uVar30 | uVar39;
  *(uint *)(lVar5 + -0x754) = (DAT_182671574 ^ 0xe6766e81) + *(int *)(lVar5 + -0x274);
  uVar14 = DAT_18267179c;
  *(ulonglong *)(lVar5 + -0x1d8) = uVar39 ^ uVar25;
  uVar18 = DAT_182671730;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar44 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar5 + -0x318) =
       (uVar33 ^ *(ulonglong *)(lVar5 + -0xbf0)) - (uVar37 ^ *(ulonglong *)(lVar5 + -0x638)) ^
       uVar44;
  uVar17 = DAT_18267168c;
  uVar14 = DAT_182671664;
  uVar51 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 + -0x6b8) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar49 ^ 0xbbd4bc4f)) ^ uVar44) - uVar39 ^ uVar51;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671568 ^ 0x3004337d)) =
       (*(ulonglong *)(lVar5 - (uVar46 ^ 0x57bfd1ab)) ^ CONCAT44(uVar17,uVar17)) +
       (CONCAT44(uVar11,uVar28) ^ 0xe7f8647165b1ca99) ^ uVar32;
  uVar30 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar36 ^ 0x638a82e9)) ^ uVar25) -
            (uVar32 ^ *(ulonglong *)(lVar5 + -0x610)) ^ uVar30;
  uVar14 = DAT_18267186c;
  uVar25 = CONCAT44(DAT_18267165c,DAT_18267165c);
  *puVar2 = *(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0x123300ec)) ^ uVar41 ^ uVar34 ^
            *(ulonglong *)(lVar5 + -0x748) ^ uVar25;
  lVar4 = DAT_182671560;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar32 = *puVar2;
  *(ulonglong *)(lVar5 + -0x800) = *(ulonglong *)(*(ulonglong *)(lVar5 + -0x438) ^ uVar39) ^ uVar43;
  uVar45 = (ulonglong)DAT_1826715fc;
  uVar40 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar4 + -0x240) = (uVar25 ^ uVar32) >> ((local_res18 ^ 0x47) & 0x3f) ^ uVar40;
  uVar32 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715ac ^ 0x838d3a47)) =
       (*(ulonglong *)(lVar4 - (uVar46 ^ 0x57bfd2bb)) ^ uVar25) <<
       (((byte)DAT_18267156c ^ 0x94) & 0x3f) ^ uVar32;
  *puVar47 = CONCAT44(uVar10,uVar9) ^ uVar25 ^ *puVar2 ^ 0xa18d592d45d64969;
  uVar14 = DAT_182671798;
  uVar38 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  puVar3 = (ulonglong *)(lVar4 + -0x5c8);
  *(ulonglong *)(lVar4 + -0x6d0) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0x638a8141)) ^ uVar32 |
       uVar40 ^ *(ulonglong *)(lVar4 + -0x240)) ^ uVar38;
  uVar25 = CONCAT44(uVar14,uVar14);
  uVar43 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar32 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xf8d1e6b4)) =
       (uVar41 ^ *(ulonglong *)(lVar4 + -0x748)) - (*puVar3 ^ uVar25) ^ uVar43;
  uVar10 = DAT_182671590;
  uVar33 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(lVar4 + -0xa88) =
       (uVar43 ^ *(ulonglong *)(lVar4 + -0x9f8)) -
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x72e1663)) ^ uVar38) ^ uVar33;
  uVar48 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar41 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715b0 ^ 0x60791e0)) =
       (CONCAT44(uVar15,uVar10) ^ 0x8151016e4f8ffff) - (*(ulonglong *)(lVar4 + -0x688) ^ uVar48) ^
       uVar41;
  uVar14 = DAT_1826716bc;
  uVar10 = _DAT_1826715f0;
  uVar42 = (ulonglong)_DAT_1826715f0;
  *(ulonglong *)(lVar4 + -0x2a0) =
       CONCAT44(uVar7,DAT_1826715a0) ^ 0x78bd9e9081f55f5f | *(ulonglong *)(lVar4 + -0x1f0) ^ uVar41;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x898) =
       (*(ulonglong *)(lVar4 + -0x1f0) ^ uVar41) + (*(ulonglong *)(lVar4 + -0x6d0) ^ uVar38) ^
       uVar32;
  uVar41 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267158c ^ 0x12330d0c)) =
       *(ulonglong *)(lVar4 - (uVar24 ^ 0xf7eae771)) ^ uVar41 ^ uVar32 ^ uVar51 ^
       *(ulonglong *)(lVar4 + -0x6b8);
  uVar38 = CONCAT44(DAT_182671780,DAT_182671780);
  uVar32 = *(ulonglong *)(lVar4 - (uVar27 ^ 0xf8d1e7e4));
  *(ulonglong *)(lVar4 + -0x318) = (uVar41 ^ *(ulonglong *)(lVar4 + -0x8a8)) << 0x20 ^ uVar34;
  uVar10 = DAT_182671578;
  *(ulonglong *)(lVar4 + -0xbf0) = uVar32 >> 0x20 ^ uVar38 ^ uVar42;
  uVar32 = (ulonglong)DAT_18267156c;
  *(uint *)(lVar4 + -0x3d4) =
       *(uint *)(lVar4 + -0x844) >> ((byte)*(undefined4 *)(lVar4 + -0x8c) & 0x1f);
  uVar41 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xc83c0c5e)) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x123306bc)) ^ uVar34 |
       *(ulonglong *)(lVar4 - (uVar26 ^ 0x72e1b43)) ^ uVar38) ^ uVar41;
  uVar42 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar51 = (uVar51 ^ *(ulonglong *)(lVar4 + -0x6b8)) - (*puVar23 ^ uVar41) ^ uVar42;
  *(ulonglong *)(lVar4 + -0x548) = uVar51;
  uVar30 = *puVar1 ^ *(ulonglong *)(lVar4 + -0xa88) ^ uVar33 ^ uVar40 ^ uVar30;
  uVar34 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar4 + -0x800) = uVar30;
  *puVar2 = uVar30 >> 0x20 ^ uVar34 ^ uVar45;
  uVar14 = DAT_1826715a4;
  uVar38 = CONCAT44(DAT_1826715b8,DAT_1826715b8);
  uVar27 = (uVar40 ^ uVar30) << ((local_res18 ^ 0x77) & 0x3f);
  uVar32 = (ulonglong)DAT_1826715ac;
  *puVar47 = uVar27 ^ uVar38;
  uVar18 = DAT_182671858;
  uVar10 = DAT_182671584;
  uVar30 = CONCAT44(DAT_182671818,DAT_182671818);
  uVar27 = *(ulonglong *)(lVar4 - (uVar32 ^ 0x838d3e37)) ^ uVar34 | uVar27;
  uVar32 = uVar27 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x240) = uVar32;
  uVar17 = DAT_1826716f4;
  lVar6 = DAT_182671560;
  uVar34 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 + -0x270) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x72e1a3b)) ^ uVar33) - uVar27 ^ uVar34;
  uVar27 = CONCAT44(uVar17,uVar17);
  uVar32 = uVar51 ^ uVar27 ^ uVar30 ^ uVar42 ^ uVar32;
  *puVar3 = uVar32;
  uVar7 = DAT_18267157c;
  uVar30 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(lVar4 + -0x748) = (uVar32 ^ uVar27) >> (((byte)uVar14 ^ 0x2a) & 0x3f) ^ uVar30;
  uVar16 = DAT_1826715b4;
  uVar13 = DAT_18267159c;
  uVar11 = DAT_182671590;
  uVar32 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_18267159c ^ 0xcff485eb)) =
       (*(ulonglong *)(lVar6 - (uVar36 ^ 0x638a86f9)) ^ uVar27) <<
       (((byte)DAT_1826715b0 ^ 0x16) & 0x3f) ^ uVar42;
  uVar40 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar16 ^ 0x12330704)) =
       (*(ulonglong *)(lVar6 - (uVar32 ^ 0x1b07074d)) ^ uVar30 |
       uVar42 ^ *(ulonglong *)(lVar6 + -0x9f8)) ^ uVar40;
  uVar30 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *(ulonglong *)(lVar6 + -0x6d0) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0x1b07054d)) ^ uVar42) -
       (*(ulonglong *)(lVar6 + -0x2a0) ^ uVar40) ^ uVar30;
  uVar32 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar6 + -0x1f0) =
       *(ulonglong *)(lVar6 + -0x270) ^ *(ulonglong *)(lVar6 + -0x1d8) ^ uVar34 ^ uVar41 ^ uVar48;
  lVar4 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar36 = (ulonglong)DAT_182671568;
  uVar41 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (*(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xc83c0c76)) ^ uVar48) >>
       (((byte)uVar11 ^ 0x13) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar4 - (uVar46 ^ 0x57bfdc13)) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0x3004349d)) ^ uVar48) << (((byte)uVar10 ^ 0x99) & 0x3f) ^
       uVar41;
  uVar17 = DAT_1826716d4;
  uVar36 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar32 = uVar41 ^ *(ulonglong *)(lVar4 + -0x8a8) | *(ulonglong *)(lVar4 + -0x898) ^ uVar27;
  *(ulonglong *)(lVar4 + -0xbf0) = uVar32 ^ uVar36;
  uVar33 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xf7eaecf1)) =
       (*(ulonglong *)(lVar4 + -0x270) ^ uVar34) - uVar32 ^ uVar33;
  uVar27 = CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar32 = *(ulonglong *)(lVar4 - (uVar22 ^ 0xedeefff9)) ^ uVar27 ^ uVar36 ^ uVar30 ^ *puVar35;
  bVar20 = (byte)DAT_1826715b0;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar32;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xf7eaebe9)) =
       (uVar32 ^ uVar27) >> ((bVar20 ^ 0x3e) & 0x3f) ^ uVar50;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x12330da4)) =
       CONCAT44(uVar12,uVar28) ^ 0xe8bd3dff3ddebf7c | 0x28193df931c68974;
  uVar17 = DAT_1826717fc;
  uVar24 = (ulonglong)DAT_1826715a0;
  uVar22 = (ulonglong)DAT_18267157c;
  uVar32 = *(ulonglong *)(DAT_182671560 + -0x8a8);
  uVar36 = (uVar27 ^ *(ulonglong *)(DAT_182671560 + -0x6b8)) <<
           (((byte)DAT_182671568 ^ 0x7f) & 0x3f);
  *puVar2 = uVar36 ^ CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *puVar47 = (uVar41 ^ uVar32) >> ((byte)uVar8 & 0x3f);
  lVar4 = DAT_182671560;
  uVar36 = *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0x860d38c8)) ^ uVar50 | uVar36;
  puVar23 = (ulonglong *)(DAT_182671560 + -0x6d0);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar36 ^ CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar27 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar4 + -0x240) = (*puVar23 ^ uVar30) - uVar36 ^ uVar38;
  uVar32 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x1b0705cd)) =
       (CONCAT44(uVar13,DAT_1826715ac) ^ 0x6c957d47d82f065b) <<
       ((*(byte *)(lVar4 - (uVar27 ^ 0x1b070605)) ^ (byte)uVar17) & 0x3f);
  uVar10 = DAT_182671578;
  *(ulonglong *)(lVar4 + -0x748) =
       *(ulonglong *)(lVar4 - (uVar32 ^ 0x300437cd)) ^ uVar33 ^ uVar40 ^ uVar39 ^
       *(ulonglong *)(lVar4 + -0x318);
  uVar17 = DAT_182671660;
  uVar8 = DAT_18267156c;
  *(ulonglong *)(lVar4 + -0x9f8) =
       (CONCAT44(uVar9,uVar28) ^ 0xbd0b8a73a946f97b) - (CONCAT44(uVar10,uVar14) ^ 0xb9c9af45f7f4d0f)
  ;
  uVar36 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x72e15fb)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x123302ec)) ^ uVar39) >>
       (((byte)uVar16 ^ 0xa8) & 0x3f) ^ uVar36;
  uVar27 = (*(ulonglong *)(lVar4 + -0x748) ^ uVar39) << 0x34;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar27 ^ CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar9 = DAT_1826717bc;
  uVar32 = (ulonglong)DAT_1826717bc;
  uVar27 = uVar27 | *(ulonglong *)(lVar4 + -0x548) ^ uVar36;
  *(ulonglong *)(lVar4 + -0x1f0) =
       (CONCAT44(uVar15,uVar49) ^ 0xfa468186c4deb06a) >> (((byte)uVar8 ^ 0x9e) & 0x3f);
  *(ulonglong *)(lVar4 + -0x898) = uVar27 ^ CONCAT44(uVar9,uVar9);
  uVar14 = DAT_1826717e8;
  *(ulonglong *)(lVar4 + -0x270) =
       ((ulonglong)(uVar9 >> 0x19) | uVar32 << 7) ^
       *(ulonglong *)(lVar4 - (uVar22 ^ 0x860d3450)) >> 0x19;
  *(ulonglong *)(lVar4 + -0xbf0) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x318)) - uVar27 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_1826716dc;
  uVar36 = (ulonglong)DAT_182671584;
  uVar32 = uVar27 ^ uVar38 ^ uVar43 ^ *(ulonglong *)(lVar4 + -0x240);
  bVar29 = (byte)DAT_182671584;
  *(ulonglong *)(lVar4 + -0x800) = uVar32;
  uVar17 = DAT_182671834;
  uVar27 = CONCAT44(uVar14,uVar14);
  bVar20 = (byte)DAT_1826715b0;
  *(ulonglong *)(lVar4 + -0x6b8) = (uVar32 ^ uVar43) >> ((bVar29 ^ 0xaa) & 0x3f) ^ uVar27;
  uVar32 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x3d13a6a1)) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0x72e18b3)) ^ uVar43) << ((bVar20 ^ 0x37) & 0x3f) ^ uVar32;
  uVar36 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x72e169b)) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x8a8) | uVar27 ^ *(ulonglong *)(lVar4 + -0x6b8)) ^ uVar36;
  uVar32 = *(ulonglong *)(lVar4 + -0x898);
  *puVar1 = (uVar38 ^ *(ulonglong *)(lVar4 + -0x240)) -
            (CONCAT44(DAT_182671824,DAT_182671824) ^ *(ulonglong *)(lVar4 + -0x3b8)) ^ uVar25;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x72e1663)) = (uVar32 ^ CONCAT44(uVar9,uVar9)) << 8;
  uVar14 = DAT_1826717a0;
  *puVar2 = (*puVar1 ^ uVar25) - (*puVar47 ^ uVar36) ^ uVar44;
  *puVar3 = (CONCAT44(uVar7,uVar15) ^ 0x58db2e7b407282f5) +
            (uVar37 ^ *(ulonglong *)(lVar5 + -0x638)) ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar19 * 4) = uVar21 ^ uVar49;
  return;
}



############ FUN_ 180ed93c0 size=4399 ############

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

void FUN_180ed93c0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint *puVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  longlong lVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  byte *pbVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  uint *puVar35;
  uint *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint *puVar40;
  byte local_98;
  
  uVar25 = DAT_1826716c8;
  uVar6 = DAT_1826715a4;
  uVar4 = DAT_182671580;
  lVar2 = DAT_182671560;
  uVar18 = (ulonglong)DAT_1826715a4;
  uVar20 = (ulonglong)DAT_182671580;
  uVar30 = ~DAT_1826715a4;
  uVar22 = DAT_182671580 << 0x10 | DAT_182671580 >> 0x10;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671940);
  uVar16 = *(uint *)(&DAT_182611e78 + DAT_182671940) ^ DAT_1826715a4;
  uVar23 = (ulonglong)DAT_182671680;
  uVar12 = DAT_182671750 ^ *(uint *)(DAT_182671560 + -0x374);
  DAT_182671590 = uVar30;
  DAT_1826715a8 = uVar22;
  *(uint *)(DAT_182671560 + -0x678) =
       (DAT_18267160c ^ *(uint *)(DAT_182671560 + -0x754) |
       _DAT_182671610 ^ *(uint *)(DAT_182671560 + -0x910)) ^ DAT_182671668;
  uVar39 = (ulonglong)uVar30;
  uVar37 = (ulonglong)uVar22;
  *(uint *)(lVar2 - ((ulonglong)uVar4 ^ 0xf68fd042)) =
       (DAT_182671624 ^ *(uint *)(lVar2 + -0x3c8)) + uVar12 ^ DAT_1826715f4;
  uVar12 = *(uint *)(lVar2 + -0x678) ^ uVar25 ^ DAT_182671668;
  *(uint *)(lVar2 + -0x874) = (*(uint *)(lVar2 + -0x504) ^ DAT_1826716bc) * (uVar22 ^ 0xcabf2ba9);
  *(uint *)(lVar2 + -0x47c) =
       *(uint *)(lVar2 - ((ulonglong)uVar30 ^ 0xe6cd853b)) ^ _DAT_1826715d8 ^ DAT_1826715f4;
  *(uint *)(lVar2 + -0x844) = uVar12;
  uVar34 = uVar12 ^ DAT_182671828 ^ uVar25;
  *(uint *)(lVar2 + -0x27c) =
       *(uint *)(lVar2 - ((ulonglong)uVar22 ^ 0xd0cef2f3)) ^ DAT_1826717ec ^ _DAT_1826715d8;
  *(uint *)(lVar2 + -0x964) = uVar34;
  *(ulonglong *)(lVar2 + -0xd20) =
       *(longlong *)(lVar2 - ((ulonglong)uVar6 ^ 0x193272b8)) +
       (CONCAT44(uVar4,uVar30) ^ 0xf68fd0cee6cd85b7) * 0x20 +
       (CONCAT44(uVar4,uVar6) ^ 0xf68fd0ce19327a4e) ^ uVar23;
  uVar31 = DAT_182671858;
  uVar17 = DAT_1826717d8;
  bVar11 = (byte)DAT_1826717c4;
  uVar12 = DAT_182671578;
  uVar32 = DAT_182671574;
  lVar3 = DAT_182671560;
  uVar34 = uVar34 ^ DAT_182671828;
  uVar27 = (ulonglong)DAT_182671578;
  uVar38 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar2 + -0x110) = (CONCAT44(uVar6,uVar22) ^ 0xb39cfb3d3cae8e99) + 0xc5097fc9ce01ebd
  ;
  lVar21 = DAT_182671560;
  bVar10 = *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0xd0cefbaf)) ^ uVar23) ^ bVar11 ^
           (byte)DAT_182671694;
  *(byte *)(lVar2 + -0x41) = bVar10;
  uVar34 = uVar34 + (uVar32 ^ 0x7249d90f) ^ DAT_182671874;
  *(uint *)(lVar2 + -0x968) = (bVar10 ^ bVar11) ^ uVar17;
  *(uint *)(lVar2 + -0x3d4) = uVar34;
  uVar13 = DAT_18267157c;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xe6cd8e47)) =
       (CONCAT44(uVar30,uVar12) ^ 0x538cb00e1c2c4b57) +
       *(longlong *)(lVar3 - ((ulonglong)DAT_18267157c ^ 0x5b926c3a));
  uVar19 = *(uint *)(lVar21 + -0x27c) ^ DAT_1826717ec;
  uVar34 = (*(uint *)(lVar3 + -0x968) ^ uVar17) << 0x11 ^ DAT_182671634;
  *(uint *)(lVar3 + -0x344) = uVar34;
  uVar24 = (*(uint *)(lVar3 + -0x3d4) ^ DAT_182671874) - (uVar34 ^ DAT_182671634) ^ DAT_182671800;
  *(uint *)(lVar21 + -0x328) = uVar24;
  uVar34 = DAT_1826715b8;
  *(uint *)(lVar21 - ((ulonglong)uVar4 ^ 0xf68fd9de)) =
       uVar19 * (uVar24 ^ DAT_182671800) ^ DAT_1826715b8;
  uVar19 = DAT_182671688;
  uVar24 = DAT_182671594;
  uVar5 = DAT_182671588;
  *(uint *)(lVar21 - ((ulonglong)uVar4 ^ 0xf68fd79a)) =
       (*(uint *)(lVar21 + -0x968) ^ uVar17) * 6 ^ uVar31;
  uVar17 = DAT_182671804;
  uVar34 = (uVar31 ^ *(uint *)(lVar21 + -0x754)) + (uVar34 ^ *(uint *)(lVar21 + -0x910));
  *(uint *)(lVar21 + -0x374) = uVar34 ^ DAT_182671804;
  uVar31 = uVar34 * 0x2000 ^ DAT_182671888;
  *(uint *)(lVar21 + -0x504) = uVar31;
  lVar2 = DAT_182671560;
  uVar31 = uVar31 ^ DAT_182671888;
  uVar34 = (*(uint *)(lVar21 - ((ulonglong)uVar13 ^ 0x5b92694e)) ^ uVar17) >>
           (((byte)uVar5 ^ 0x13) & 0x1f) ^ DAT_182671600;
  puVar15 = (uint *)(DAT_182671560 - (uVar27 ^ 0xa21248c));
  *(uint *)(DAT_182671560 + -0x874) = uVar34;
  uVar14 = DAT_1826715a0;
  *puVar15 = (uVar34 ^ DAT_182671600 | uVar31) ^ uVar19;
  uVar23 = (ulonglong)DAT_1826716e0;
  *(uint *)(lVar2 + -0x678) =
       (*(uint *)(lVar2 - (uVar18 ^ 0x19327f84)) ^ DAT_1826718b0) +
       (*(uint *)(lVar2 + -0x274) ^ DAT_1826718cc) ^ DAT_1826718a4;
  uVar34 = DAT_182671570;
  uVar17 = *(uint *)(lVar2 + -0x8c) ^ DAT_1826717b4;
  puVar15 = (uint *)(*(longlong *)(lVar2 - (uVar39 ^ 0xe6cd8fbf)) +
                    ((CONCAT44(DAT_182671570,uVar22) ^ 0x1f737e7ad0cef68f) * 5 +
                    (CONCAT44(uVar14,uVar24) ^ 0x1f61367a09702f30)) * 4);
  *(ulonglong *)(lVar2 + -0xa48) = (ulonglong)puVar15 ^ uVar23;
  *puVar15 = uVar17 ^ uVar19;
  lVar3 = DAT_182671560;
  uVar17 = *(uint *)(lVar2 + -0x678) ^ _DAT_1826716c0 ^ DAT_1826718a4;
  lVar21 = *(longlong *)(lVar2 + -0x6d0) << ((byte)*(undefined8 *)(lVar2 + -0xbf0) & 0x3f);
  *(longlong *)(lVar2 + -0x510) = lVar21;
  *(uint *)(lVar2 + -0x47c) = uVar17;
  uVar19 = *(uint *)(lVar2 + -0x8c) ^ DAT_182671834 ^ uVar19;
  uVar31 = uVar17 ^ DAT_182671638 ^ _DAT_1826716c0;
  *(uint *)(lVar3 + -0x844) = uVar19;
  uVar17 = DAT_182671598;
  lVar2 = DAT_182671560;
  uVar19 = uVar19 ^ DAT_182671670 ^ DAT_182671834;
  *(longlong *)(DAT_182671560 + -0xa0) =
       lVar21 << ((byte)*(undefined8 *)(lVar3 - (uVar20 ^ 0xf68fd936)) & 0x3f);
  *(uint *)(lVar2 + -0x964) = uVar31;
  uVar7 = DAT_182671734;
  uVar31 = DAT_18267159c;
  *(uint *)(lVar2 - ((ulonglong)uVar12 ^ 0xa2127d4)) = uVar19;
  lVar2 = DAT_182671560;
  uVar18 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0x5b926982)) =
       CONCAT44(uVar14,uVar5) ^ *(ulonglong *)(DAT_182671560 + -0x8a8) ^ 0x2d890a1bb4ffce32;
  *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0x5b92697e)) =
       *(uint *)(lVar2 - (uVar18 ^ 0xfffff69b)) ^ DAT_18267169c ^ DAT_182671638;
  *(uint *)(lVar2 - ((ulonglong)uVar31 ^ 0x8a25ee7c)) =
       *(uint *)(lVar2 + -0x3d4) ^ DAT_1826715d0 ^ DAT_182671670;
  *(uint *)(lVar2 + -0x328) = *(uint *)(lVar2 + -0x344) ^ uVar7 ^ DAT_18267169c;
  *(uint *)(lVar2 + -0x968) = *(uint *)(lVar2 + -0x27c) ^ DAT_1826715d0 ^ uVar25;
  uVar26 = DAT_1826715b0;
  uVar12 = DAT_18267158c;
  uVar19 = DAT_182671584;
  uVar27 = (ulonglong)DAT_1826716b8;
  uVar23 = (ulonglong)DAT_18267158c;
  uVar18 = CONCAT44(DAT_18267158c,uVar32);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x7bbeff5a)) =
       *(ulonglong *)(lVar2 + -0x898) ^ *(ulonglong *)(lVar2 + -0x2a0);
  bVar11 = (byte)DAT_1826717fc;
  *(ulonglong *)(lVar2 + -0xc80) =
       (uVar18 ^ 0xbb7fecc97bbeffda) * 0x20 + (CONCAT44(uVar19,DAT_182671568) ^ 0x8804201099964bdf)
       + *(longlong *)(lVar2 + -0x8f0) ^ uVar27;
  *(ulonglong *)(lVar2 + -0xa88) = *(ulonglong *)(lVar2 + -0x3b8) >> (((byte)uVar26 ^ 0x8f) & 0x3f);
  lVar3 = DAT_182671560;
  bVar10 = *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0xbb7fe049)) ^ uVar27) ^ bVar11 ^
           (byte)DAT_182671694;
  uVar12 = *(uint *)(DAT_182671560 + -0x968);
  *(byte *)(lVar2 + -0xc41) = bVar10;
  uVar9 = DAT_1826718ac;
  uVar8 = DAT_182671878;
  uVar29 = (uVar12 ^ uVar25) + (uVar30 ^ 0xef3aa362) ^ DAT_18267163c;
  uVar12 = (uint)(bVar10 ^ bVar11);
  uVar25 = uVar12 ^ DAT_182671878;
  *(uint *)(lVar3 + -0x754) = uVar29;
  uVar29 = uVar29 ^ DAT_18267163c;
  *(uint *)(lVar3 + -0x910) = uVar25;
  lVar2 = DAT_182671560;
  uVar12 = uVar12 << 0x11 ^ DAT_18267173c;
  *(uint *)(DAT_182671560 + -0x374) = uVar12;
  *(uint *)(lVar2 + -0x504) = uVar29 - (uVar12 ^ DAT_18267173c) ^ uVar9;
  *(longlong *)(lVar2 + -0x1d8) =
       0x77bec5021a71b316 <<
       ((byte)*(undefined8 *)(lVar2 - ((ulonglong)uVar13 ^ 0x5b926cea)) & 0x3f);
  uVar13 = DAT_18267162c;
  uVar12 = DAT_18267156c;
  puVar15 = (uint *)(lVar2 - ((ulonglong)uVar17 ^ 0x5b926f3e));
  puVar36 = (uint *)(lVar2 - ((ulonglong)uVar24 ^ 0x9702745));
  uVar18 = (ulonglong)DAT_18267156c;
  *puVar36 = (*(uint *)(lVar2 + -0x328) ^ uVar7) * (uVar9 ^ *puVar15) ^ DAT_1826716d0;
  *(uint *)(lVar2 + -0x5cc) =
       (uVar8 ^ *(uint *)(lVar2 + -0x910)) * (uVar26 ^ 0x4bce9987) ^ DAT_182671658;
  uVar17 = DAT_1826718b8;
  puVar40 = (uint *)(lVar2 - ((ulonglong)uVar31 ^ 0x8a25e9cc));
  *(uint *)(lVar2 - ((ulonglong)DAT_18267157c ^ 0x5b926c42)) =
       (*(uint *)(lVar2 - (uVar39 ^ 0xe6cd8dc3)) ^ DAT_1826716d0) + (*puVar40 ^ DAT_182671658) ^
       DAT_1826718b8;
  *(uint *)(lVar2 - (uVar18 ^ 0x8c557140)) =
       (*(uint *)(lVar2 - (uVar37 ^ 0xd0cef0f7)) ^ uVar17) << 0xd ^ uVar13;
  *(uint *)(lVar2 + -0x844) = (*(uint *)(lVar2 + -0x678) ^ uVar17) >> 0x13 ^ DAT_182671690;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0x1932799c)) =
       (*(uint *)(lVar2 - (uVar20 ^ 0xf68fd88a)) ^ DAT_182671690 |
       uVar13 ^ *(uint *)(lVar2 + -0x47c)) ^ DAT_182671808;
  uVar13 = DAT_182671578;
  uVar27 = (ulonglong)DAT_1826716c4;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826715b4 ^ 0xfffffcbb)) =
       (*(uint *)(lVar2 + -0x328) ^ uVar7) + (DAT_182671624 ^ *(uint *)(lVar2 + -0x3c8)) ^
       DAT_182671844;
  uVar17 = DAT_18267159c;
  *(uint *)(lVar2 + -0x27c) = *(uint *)(lVar2 + -0x344) ^ DAT_182671844 ^ uVar8;
  lVar2 = DAT_182671560;
  uVar18 = CONCAT44(uVar17,DAT_18267157c);
  *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0xbb7fe6a9)) =
       CONCAT44(uVar13,DAT_18267157c) ^ 0x1992e9ca40c83e7a |
       CONCAT44(uVar12,uVar5) ^ 0x96a912619ecce31b;
  uVar25 = DAT_1826717c0;
  uVar13 = *(uint *)(lVar2 + -0x27c) ^ DAT_1826717c0;
  *(uint *)(lVar2 + -0x968) =
       *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x880423c4)) ^ DAT_182671850 ^ DAT_182671808;
  uVar31 = DAT_182671664;
  *(uint *)(lVar2 + -0x754) = uVar13 ^ uVar8;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0x999648ba)) =
       *(uint *)(lVar2 - (uVar37 ^ 0xd0ceffe7)) ^ uVar31 ^ DAT_182671850;
  pbVar28 = (byte *)((uVar18 ^ 0x8a25ec005b926a26) + *(longlong *)(lVar2 + -0x8f0));
  local_98 = (byte)uVar4;
  *(ulonglong *)(lVar2 + -0x4f0) = (ulonglong)pbVar28 ^ uVar27;
  uVar7 = _DAT_182671868;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x240) =
       (CONCAT44(uVar34,uVar12) ^ 0xc7d5f0fb500a39f7) >> ((local_98 ^ 0xee) & 0x3f);
  bVar11 = (byte)DAT_182671628;
  bVar10 = *pbVar28 ^ (byte)DAT_182671628 ^ (byte)DAT_182671694;
  *(byte *)(lVar2 + -0x41) = bVar10;
  uVar13 = DAT_182671594;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0x19327f4c)) = (bVar11 ^ bVar10) ^ uVar7;
  uVar17 = DAT_1826715ac;
  lVar21 = DAT_182671560;
  uVar23 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar3 + -0x910) =
       (uVar31 ^ *(uint *)(lVar2 + -0x374)) + (DAT_1826715ac ^ 0xb2f38686) ^ DAT_1826717e4;
  uVar13 = (*(uint *)(lVar3 + -0x504) ^ uVar7) << ((byte)uVar13 & 0x1f) ^ DAT_1826717dc;
  uVar18 = (ulonglong)DAT_1826715b4;
  *(uint *)(lVar3 + -0x874) = uVar13;
  uVar13 = (*(uint *)(lVar3 - (uVar18 ^ 0xfffff6ef)) ^ DAT_1826717e4) - (uVar13 ^ DAT_1826717dc) ^
           DAT_18267187c;
  *(uint *)(lVar21 + -0x5cc) = uVar13;
  *(uint *)(lVar21 - ((ulonglong)uVar24 ^ 0x9702949)) =
       (uVar25 ^ *(uint *)(lVar21 + -0x754)) * (uVar13 ^ DAT_18267187c) ^ DAT_182671758;
  uVar13 = DAT_1826715a0;
  uVar27 = (ulonglong)DAT_1826715a0;
  *(uint *)(lVar21 + -0x47c) =
       (*(uint *)(lVar21 - ((ulonglong)DAT_182671570 ^ 0x1f737b7e)) ^ uVar7) * (uVar26 ^ 0x4bce998a)
       ^ DAT_182671898;
  uVar31 = DAT_182671764;
  uVar24 = DAT_1826715e4;
  uVar26 = (*(uint *)(lVar21 - (uVar27 ^ 0x1f613206)) ^ DAT_182671898) +
           (*(uint *)(lVar21 - ((ulonglong)uVar12 ^ 0x8c557344)) ^ DAT_182671758);
  uVar18 = (ulonglong)DAT_182671568;
  uVar33 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar21 + -0x844) = uVar26 ^ DAT_1826715e4;
  *(uint *)(lVar21 + -0x328) = uVar26 * 0x2000 ^ DAT_1826716a8;
  uVar24 = (*(uint *)(lVar21 - (uVar18 ^ 0x9996438a)) ^ uVar24) >>
           (((byte)DAT_182671574 ^ 0xc9) & 0x1f) ^ DAT_1826715c4;
  uVar18 = (ulonglong)DAT_182671578;
  *(uint *)(lVar21 + -0x344) = uVar24;
  *(uint *)(lVar21 + -0x3d4) =
       (*(uint *)(lVar21 - (uVar18 ^ 0xa212728)) ^ DAT_1826716a8 | uVar24 ^ DAT_1826715c4) ^
       DAT_18267177c;
  *(uint *)(lVar21 - (uVar38 ^ 0x7bbefda6)) =
       (*(uint *)(lVar21 - (uVar33 ^ 0x8a25eb54)) ^ uVar25) +
       (DAT_182671624 ^ *(uint *)(lVar21 + -0x3c8)) ^ DAT_1826717a8;
  *(uint *)(lVar21 + -0x968) =
       *(uint *)(lVar21 - ((ulonglong)uVar17 ^ 0xbb04a22f)) ^ uVar31 ^ DAT_1826717a8;
  uVar18 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar21 + -0x5c8) =
       *(ulonglong *)(lVar21 + -0x9f8) ^ *(ulonglong *)(lVar21 + -0x600);
  *(uint *)(lVar21 + -0x374) =
       *(uint *)(lVar21 - (uVar18 ^ 0x5b9269ee)) ^ DAT_1826716a0 ^ DAT_18267177c;
  *(ulonglong *)(lVar21 - (uVar27 ^ 0x1f613e7a)) =
       (CONCAT44(uVar34,uVar13) ^ 0x47d7a6eaf69aa3ee) -
       *(longlong *)(lVar21 - ((ulonglong)DAT_182671570 ^ 0x1f7378aa));
  uVar24 = DAT_182671744;
  lVar2 = DAT_182671560;
  uVar27 = (ulonglong)DAT_182671754;
  puVar35 = (uint *)(lVar21 - (uVar33 ^ 0x8a25e510));
  *puVar35 = *(uint *)(lVar21 + -0x968) ^ DAT_182671744 ^ uVar31;
  uVar18 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar2 + -0x9e8) =
       (CONCAT44(uVar19,uVar5) ^ 0xe5785e1e30db0f93) + *(longlong *)(lVar2 + -0x1d8);
  *(uint *)(lVar2 + -0x874) = DAT_1826717b8 ^ DAT_1826716a0 ^ *(uint *)(lVar2 + -0x374);
  bVar11 = (byte)DAT_1826718b4;
  uVar13 = DAT_1826715b4;
  pbVar28 = (byte *)(*(longlong *)(lVar2 - (uVar18 ^ 0x5b9262ca)) +
                     (CONCAT44(uVar14,uVar32) ^ 0x1f61367a7bbeffda) * 0x20 +
                    (CONCAT44(uVar12,DAT_182671584) ^ 0x8c55753c88042017));
  *(ulonglong *)(lVar2 + -0xc80) = (ulonglong)pbVar28 ^ uVar27;
  uVar17 = DAT_182671870;
  *(byte *)(lVar2 + -0xc41) = *pbVar28 ^ (byte)DAT_182671694 ^ bVar11;
  uVar19 = DAT_182671820;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x5cc) =
       (*(byte *)(lVar2 - ((ulonglong)uVar13 ^ 0xfffff3be)) ^ bVar11) ^ DAT_182671820;
  uVar34 = DAT_182671580;
  *(ulonglong *)(lVar3 + -0xc08) =
       *(longlong *)(lVar3 + -0xa60) - (CONCAT44(uVar22,uVar4) ^ 0xae5e9a6aba04c4b6);
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar23 ^ 0xbb04a557)) =
       (*puVar36 ^ DAT_1826717b8) + (DAT_182671594 ^ 0x8709e4) ^ uVar17;
  uVar32 = DAT_1826716e8;
  uVar14 = (*puVar40 ^ uVar19) << (((byte)uVar34 ^ 0xdf) & 0x1f);
  *(uint *)(lVar2 + -0x678) = uVar14 ^ DAT_182671670;
  uVar14 = (uVar17 ^ *puVar15) - uVar14;
  uVar34 = DAT_1826715a4 ^ 0xdd739e36;
  *(uint *)(lVar2 + -0x47c) = uVar14 ^ DAT_182671770;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (CONCAT44(uVar6,uVar12) ^ 0x311f676a3545555d) + 0xa6fa38088bdeb371;
  uVar12 = DAT_182671570;
  uVar14 = (uVar24 ^ *puVar35) * uVar14;
  *(uint *)(lVar2 + -0x344) = (*(uint *)(lVar2 + -0x968) ^ uVar31) + uVar34;
  *(uint *)(lVar2 + -0x844) = uVar14 ^ uVar32;
  *(uint *)(lVar2 + -0x328) =
       (*(uint *)(lVar2 + -0x5cc) ^ uVar19) * (uVar12 ^ 0x1f737e7d) ^ DAT_182671830;
  uVar32 = DAT_18267166c;
  uVar14 = (*(uint *)(lVar2 - (uVar20 ^ 0xf68fd3e6)) ^ DAT_182671830) + uVar14;
  *(uint *)(lVar2 + -0x754) = uVar14 ^ DAT_18267180c;
  uVar19 = uVar14 << (((byte)uVar30 ^ 0xba) & 0x1f) ^ DAT_18267165c;
  *(uint *)(lVar2 + -0x27c) = uVar19;
  uVar34 = DAT_18267158c;
  uVar19 = uVar19 ^ DAT_18267165c;
  uVar14 = uVar14 >> (((byte)(uVar4 >> 0x10) ^ 0x9c) & 0x1f);
  *(uint *)(lVar2 + -0x3d4) = uVar14 ^ uVar32;
  uVar32 = (uVar19 | uVar14) ^ DAT_1826718c4;
  uVar18 = (ulonglong)DAT_182671568;
  *(uint *)(lVar2 + -0x374) = (uVar13 ^ 0x271e9d49) + (uVar34 ^ 0xb288ca1c);
  *(uint *)(lVar2 - (uVar18 ^ 0x999643ba)) = uVar32;
  *(uint *)(lVar2 - (uVar37 ^ 0xd0cef38b)) =
       *(uint *)(*(ulonglong *)(lVar2 + -0x740) ^ (ulonglong)DAT_1826715bc) ^ uVar25;
  bVar11 = (byte)DAT_18267157c;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar39 ^ 0xe6cd8157)) ^ (ulonglong)DAT_1826717d8) =
       (byte)DAT_182671598 ^ 0xe3;
  *(byte *)(*(ulonglong *)(lVar2 + -0x170) ^ (ulonglong)DAT_182671778) = (byte)uVar12 ^ 0xec;
  *(byte *)(*(ulonglong *)(lVar2 + -0xba0) ^ (ulonglong)DAT_1826716e0) = bVar11 ^ 0xeb;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar30) * 4) = uVar16;
  return;
}



############ FUN_ 180f234f0 size=5438 ############

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

void FUN_180f234f0(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong *puVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte local_res20;
  byte local_118;
  byte local_110;
  byte local_108;
  byte local_100;
  byte local_f8;
  byte local_e0;
  byte local_c0;
  
  uVar13 = DAT_1826715b4;
  uVar12 = DAT_1826715a8;
  uVar11 = DAT_1826715a4;
  uVar10 = DAT_18267159c;
  uVar9 = DAT_182671594;
  uVar8 = DAT_182671580;
  uVar5 = DAT_18267156c;
  lVar3 = DAT_182671560;
  uVar30 = (ulonglong)DAT_182671580;
  uVar27 = (ulonglong)DAT_1826715a4;
  DAT_182671590 = DAT_182671578 + DAT_18267159c;
  uVar46 = (ulonglong)DAT_1826715b4;
  uVar37 = (ulonglong)DAT_182671594;
  uVar40 = (ulonglong)DAT_18267156c;
  uVar48 = DAT_182671568 & DAT_18267156c;
  uVar34 = DAT_182671594 | DAT_1826715a8;
  DAT_18267157c = DAT_1826715a4 & DAT_1826715b4;
  uVar17 = DAT_182671580 ^ DAT_1826715ac;
  uVar33 = (ulonglong)uVar17;
  uVar18 = *(uint *)(&DAT_182611e70 + (uVar33 ^ 0xf65462b1) + (longlong)DAT_182671a24) ^
           DAT_182671580;
  uVar19 = *(uint *)(&DAT_182611e80 + DAT_182671a24) ^ DAT_1826715ac;
  uVar44 = CONCAT44(_DAT_182671610,_DAT_182671610);
  DAT_182671574 = uVar17;
  DAT_18267158c = uVar34;
  DAT_182671598 = uVar48;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar44 ^ *(ulonglong *)(DAT_182671560 + -0x2a0)) +
       *(longlong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0x81008900));
  uVar24 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  uVar22 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar28 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar45 = (ulonglong)uVar12;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x96bf39c6)) =
       *(ulonglong *)(lVar3 + -0xbf0) ^ *(ulonglong *)(lVar3 + -0x6d0) ^ uVar28 ^ uVar22 ^ uVar24;
  uVar41 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 + -0x628) ^ uVar24) >> (((byte)uVar9 ^ 0xb3) & 0x3f) ^ uVar41;
  *(ulonglong *)(lVar3 + -0x318) =
       (uVar44 ^ *(ulonglong *)(lVar3 + -0x2a0)) >> (((byte)DAT_182671568 ^ 0x6e) & 0x3f);
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar36 = (ulonglong)uVar10;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar48 ^ 0x81000770)) =
       (*(ulonglong *)(DAT_182671560 + -0x628) ^ uVar24) << (((byte)uVar13 ^ 0x1b) & 0x3f) ^ uVar31;
  uVar7 = DAT_18267157c;
  uVar29 = (ulonglong)DAT_18267157c;
  uVar38 = CONCAT44(DAT_182671634,DAT_182671634);
  uVar24 = *(ulonglong *)(lVar3 - (uVar36 ^ 0x82008b88)) ^ uVar41 |
           *(ulonglong *)(lVar3 + -0x670) ^ uVar31;
  uVar31 = uVar24 ^ uVar38;
  *(ulonglong *)(lVar3 + -0xc08) = uVar31;
  *(ulonglong *)(lVar3 + -0x1d8) = (*(ulonglong *)(lVar3 + -0xa88) ^ uVar41) + 0x625d9de834371c8c;
  uVar41 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  uVar28 = (*(ulonglong *)(lVar3 + -0x6d0) ^ uVar28) - uVar24 ^ uVar41;
  uVar24 = CONCAT44(DAT_182671734,DAT_182671734);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar28;
  uVar14 = DAT_1826718ac;
  *(ulonglong *)(lVar3 + -0x898) = (uVar24 ^ *(ulonglong *)(lVar3 + -0x110)) + 0xffb87cbb59f947c;
  uVar6 = DAT_182671578;
  uVar42 = CONCAT44(uVar14,uVar14);
  puVar23 = (ulonglong *)(lVar3 - (uVar29 ^ 0xc022aa0));
  uVar31 = uVar42 ^ uVar38 ^ uVar44 ^ *puVar23 ^ uVar31;
  uVar1 = DAT_182671578 + uVar10;
  uVar49 = (ulonglong)uVar1;
  *(ulonglong *)(lVar3 + -0x800) = uVar31;
  lVar3 = DAT_182671560;
  uVar32 = (uVar31 ^ uVar42) >> (((byte)uVar1 ^ 0x9f) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar32 ^ CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar3 + -0x318) = CONCAT44(uVar7,uVar12) ^ uVar31 ^ uVar42 ^ 0x3bd45e9de662646;
  uVar24 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar1 ^ 0x982fb588)) ^ uVar42) << 0x29 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar13,uVar8) ^ 0xbd1ff2d0336ad068) + 0x24620087bd1c14a8;
  uVar38 = CONCAT44(DAT_182671648,DAT_182671648);
  uVar47 = CONCAT44(_DAT_1826715dc,_DAT_1826715dc);
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xf6546491)) ^ uVar24 | uVar32) ^ uVar38;
  uVar15 = DAT_1826718c0;
  *(ulonglong *)(lVar3 + -0x1d8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0xf6fffd5e)) ^ uVar44) -
       (*(ulonglong *)(lVar3 - (uVar45 ^ 0x96bf3566)) ^ uVar38) ^ uVar47;
  uVar14 = DAT_182671730;
  lVar4 = DAT_182671560;
  uVar42 = CONCAT44(uVar15,uVar15);
  uVar24 = CONCAT44(DAT_182671828,DAT_182671828);
  uVar28 = CONCAT44(_DAT_182671618,_DAT_182671618) ^ *(ulonglong *)(lVar3 + -0x80) ^ uVar42 ^ uVar28
           ^ uVar41;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar28;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x240)) << (((byte)uVar6 ^ 0xbb) & 0x3f);
  uVar2 = DAT_1826715ac;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x898) =
       (uVar42 ^ uVar28) >> (((byte)DAT_1826715ac ^ 0xa3) & 0x3f) ^ uVar31;
  local_res20 = (byte)uVar17;
  uVar24 = CONCAT44(DAT_18267164c,DAT_18267164c);
  puVar25 = (ulonglong *)(lVar4 - (uVar36 ^ 0x82008d08));
  uVar32 = CONCAT44(DAT_182671790,DAT_182671790);
  *puVar25 = (uVar42 ^ uVar28) << ((local_res20 ^ 0xa1) & 0x3f) ^ uVar24;
  lVar3 = DAT_182671560;
  puVar39 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar2 ^ 0x746f6393));
  *puVar39 = (*(ulonglong *)(DAT_182671560 - (uVar46 ^ 0x1c022608)) ^ uVar24 |
             *(ulonglong *)(DAT_182671560 + -0x898) ^ uVar31) ^ uVar32;
  uVar2 = DAT_182671568;
  *(ulonglong *)(lVar3 - (uVar45 ^ 0x96bf37ee)) =
       (CONCAT44(uVar5,uVar48) ^ 0xb4910483f0e5e314) + (CONCAT44(uVar6,uVar8) ^ 0xc24fef2c71976a13);
  uVar42 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xacee7a06)) =
       (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar41) - (uVar32 ^ *(ulonglong *)(lVar3 + -0x318)) ^
       uVar42;
  *(uint *)(lVar3 - (uVar37 ^ 0xe46ddae2)) = (uVar2 ^ 0x3883acd2) * *(int *)(lVar3 + -0x910);
  lVar4 = DAT_182671560;
  uVar41 = CONCAT44(DAT_1826717d4,DAT_1826717d4);
  local_118 = (byte)uVar5;
  uVar31 = *(ulonglong *)(lVar3 - (uVar45 ^ 0x96bf3e36)) ^ uVar41 ^ uVar32 ^ uVar47 ^
           *(ulonglong *)(DAT_182671560 + -0x318);
  uVar24 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar31;
  uVar31 = (uVar31 ^ uVar41) >> ((local_118 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar4 + -0x628) = uVar31 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x2a0) =
       (CONCAT44(uVar17,uVar13) ^ 0xc53367e8f8c6e9dc) - (CONCAT44(uVar1,uVar8) ^ 0xff32e025b77600c2)
  ;
  local_e0 = (byte)uVar34;
  puVar35 = (ulonglong *)(lVar4 - (uVar27 ^ 0xacee7786));
  uVar28 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(DAT_182671560 + -0x80) = (uVar41 ^ *puVar35) << ((local_e0 ^ 0xf2) & 0x3f) ^ uVar28
  ;
  uVar14 = DAT_182671888;
  lVar3 = DAT_182671560;
  uVar24 = *(ulonglong *)(DAT_182671560 + -0x1d8);
  *(uint *)(DAT_182671560 + -0x968) = (uVar1 ^ 0x88be1c77) << (((byte)uVar2 ^ 0x5c) & 0x1f);
  uVar50 = CONCAT44(uVar14,uVar14);
  uVar31 = *(ulonglong *)(lVar3 - (uVar27 ^ 0xacee7cf6)) ^ uVar28 | uVar31;
  uVar28 = CONCAT44(DAT_182671744,DAT_182671744);
  *(ulonglong *)(lVar3 + -0x240) = uVar31 ^ uVar50;
  uVar31 = (uVar47 ^ uVar24) - uVar31;
  uVar32 = CONCAT44(DAT_18267163c,DAT_18267163c);
  *(ulonglong *)(lVar3 + -0x110) = uVar31 ^ uVar28;
  uVar14 = DAT_182671894;
  uVar38 = *(ulonglong *)(lVar3 - (uVar45 ^ 0x96bf399e)) ^ uVar32 ^ uVar42 ^
           *(ulonglong *)(lVar3 + -0xa88) ^ uVar38;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar38;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x898) = (uVar38 ^ uVar32) >> ((local_e0 ^ 199) & 0x3f) ^ uVar24;
  uVar14 = DAT_182671640;
  lVar4 = DAT_182671560;
  local_c0 = (byte)uVar7;
  *(ulonglong *)(lVar3 + -0xc08) = CONCAT44(uVar10,DAT_1826715ac) ^ 0x213d4714c7fec126 | uVar31;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x800) = (uVar38 ^ uVar32) << ((local_c0 ^ 7) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0x810089a8)) =
       (uVar38 ^ uVar32) - (CONCAT44(uVar9,uVar12) ^ 0xed349ec0117217bf);
  uVar14 = DAT_18267186c;
  uVar38 = CONCAT44(DAT_182671604,DAT_182671604);
  uVar24 = uVar31 ^ *(ulonglong *)(lVar4 + -0x800) | *(ulonglong *)(lVar4 + -0x898) ^ uVar24;
  *(ulonglong *)(lVar4 + -0x318) = uVar24 ^ uVar38;
  uVar2 = DAT_182671578;
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671578 ^ 0x162f3e28)) =
       (*(ulonglong *)(lVar4 + -0x670) ^ uVar42) - uVar24 ^ uVar44;
  uVar14 = DAT_182671850;
  uVar24 = CONCAT44(DAT_182671628,DAT_182671628);
  puVar26 = (ulonglong *)(lVar4 - (uVar45 ^ 0x96bf341e));
  *puVar26 = *(ulonglong *)(lVar4 - (uVar49 ^ 0x982fbe90)) ^ uVar24 ^ uVar38 ^ uVar28 ^
             *(ulonglong *)(lVar4 + -0x110);
  lVar3 = DAT_182671560;
  local_110 = (byte)uVar48;
  uVar32 = (*(ulonglong *)(DAT_182671560 + -0xbf0) ^ uVar24) >> ((local_110 ^ 0xe) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar32 ^ CONCAT44(uVar14,uVar14);
  uVar38 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar3 + -0x80) =
       (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar24) << (((byte)uVar2 ^ 0xba) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar3 + -0x1d8) = **(ulonglong **)(lVar3 + -0x70) ^ uVar22;
  uVar15 = DAT_182671860;
  uVar24 = (ulonglong)DAT_182671568;
  puVar43 = (ulonglong *)(lVar3 - (uVar46 ^ 0x1c022a80));
  uVar32 = uVar38 ^ *puVar43 | uVar32;
  *(ulonglong *)(lVar3 + -0xa88) = uVar32 ^ CONCAT44(DAT_1826716d8,DAT_1826716d8);
  uVar14 = DAT_1826715d0;
  uVar24 = (*(ulonglong *)(lVar3 - (uVar24 ^ 0x897c6e4e)) ^ uVar28) -
           (CONCAT44(uVar7,uVar8) ^ 0x48494fcad9d6e326);
  *(ulonglong *)(lVar3 + -0xc08) = uVar24 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_1826716a0;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar24 - uVar32 ^ uVar38;
  uVar6 = DAT_1826715ac;
  uVar28 = CONCAT44(uVar15,uVar15);
  uVar22 = CONCAT44(DAT_1826715ac,uVar17);
  *(ulonglong *)(DAT_182671560 - (uVar36 ^ 0x820087d0)) =
       uVar32 - (CONCAT44(uVar9,uVar34) ^ 0x21b444ad8f3cda68) ^ uVar28;
  uVar7 = _DAT_18267188c;
  uVar24 = (ulonglong)_DAT_18267188c;
  uVar2 = _DAT_18267188c >> 0x10;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0x746f6813)) =
       uVar22 ^ 0x58c4812042012 | 0xddf803b1ad7b9e6d;
  lVar3 = DAT_182671560;
  uVar42 = CONCAT44(uVar7,uVar7);
  uVar36 = CONCAT44(DAT_182671840,DAT_182671840);
  puVar20 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671568 ^ 0x897c675e));
  uVar22 = uVar42 ^ uVar44 ^ uVar50 ^ *(ulonglong *)(DAT_182671560 + -0x240) ^
           *(ulonglong *)(DAT_182671560 + -0x2a0);
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar22;
  uVar32 = ((ulonglong)uVar2 | uVar24 << 0x10) ^ *puVar20 >> 0x10;
  *(uint *)(lVar3 + -0x8c) = *(uint *)(lVar3 + -0x678) | 0xd11a47a4;
  uVar14 = DAT_18267166c;
  uVar24 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  uVar22 = (uVar42 ^ uVar22) << (((byte)uVar1 ^ 0xb8) & 0x3f);
  *(ulonglong *)(lVar3 + -0x670) = uVar32 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x318) = uVar22 ^ uVar24;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar24 = CONCAT44(DAT_182671624,DAT_182671624);
  *puVar26 = (uVar32 | uVar22) ^ uVar36;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x810080d8)) =
       (uVar44 ^ *puVar23) - (CONCAT44(uVar11,uVar48) ^ 0x8e5f11b675723e2) ^ uVar24;
  *(uint *)(lVar3 + -0x374) = DAT_18267157c ^ 0x9428303 | 0xb2817828;
  uVar15 = DAT_1826718b8;
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x1d8)) - (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar36) ^
       uVar41;
  uVar14 = DAT_1826716a8;
  uVar22 = CONCAT44(uVar15,uVar15);
  uVar24 = (CONCAT44(uVar9,uVar48) ^ 0x30e35f40796048cc) + (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar36)
           ^ uVar22;
  *(ulonglong *)(lVar3 + -0x80) = uVar24;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar32 = CONCAT44(DAT_182671844,DAT_182671844);
  uVar24 = *(ulonglong *)(lVar3 + -0x8a8) ^ uVar36 ^ uVar24 ^ uVar22 ^ uVar38;
  *(ulonglong *)(lVar3 + -0x110) = uVar24;
  lVar4 = DAT_182671560;
  uVar22 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xacee7d66)) ^ uVar36) >>
           (((byte)uVar13 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc08) = uVar22 ^ uVar32;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar33 << 0x23 ^ 0xc84ecfc000000000;
  uVar14 = DAT_18267179c;
  local_108 = (byte)uVar8;
  uVar24 = (uVar36 ^ uVar24) << ((local_108 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar4 + -0x898) = uVar24 ^ CONCAT44(DAT_1826716f4,DAT_1826716f4);
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar24 = uVar24 | uVar22;
  uVar32 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar4 + -0x240) = uVar24 ^ uVar42;
  uVar2 = DAT_1826718b4;
  uVar22 = (ulonglong)DAT_1826718b4;
  *(ulonglong *)(lVar4 + -0x800) = (*(ulonglong *)(lVar4 + -0x8a8) ^ uVar38) - uVar24 ^ uVar32;
  uVar38 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(lVar4 + -0x670) =
       *(ulonglong *)(lVar4 - (uVar40 ^ 0x81008728)) ^ *(ulonglong *)(lVar4 + -0x6d0) ^ uVar38 ^
       uVar28 ^ uVar41;
  *(undefined1 *)(lVar4 + -0x5e9) = **(undefined1 **)(lVar4 - (uVar45 ^ 0x96bf36ee));
  uVar45 = CONCAT44(uVar1,DAT_182671578);
  uVar24 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671578 ^ 0x162f3f90)) =
       *(ulonglong *)(lVar4 - (uVar46 ^ 0x1c022c70)) >> 0x20 ^ uVar22 ^ uVar36;
  local_f8 = (byte)uVar10;
  uVar24 = (*(ulonglong *)(lVar4 - (uVar24 ^ 0x746f66fb)) ^ uVar38) << ((local_f8 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar24 ^ CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar4 + -0x1d8) = uVar45 ^ 0x1a1808a142981b89 | 0xa5e7f35e0c07e032;
  uVar1 = DAT_182671568;
  uVar45 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar4 + -0xbf0) = (uVar24 | uVar36 ^ *(ulonglong *)(lVar4 + -0x318)) ^ uVar45;
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xf6546239)) =
       (CONCAT44(uVar34,uVar48) ^ 0x73f2884d0c527da2) << (((byte)uVar9 ^ 0xa9) & 0x3f);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (*(ulonglong *)(lVar4 + -0x628) ^ uVar41) - (*(ulonglong *)(lVar4 + -0xbf0) ^ uVar45) ^
       uVar31;
  *(ulonglong *)(lVar3 - (uVar46 ^ 0x1c022b10)) =
       CONCAT44(uVar34,uVar1) ^ *(ulonglong *)(lVar3 + -0xbf0) ^ uVar45 ^ 0xaccb24449a48888a;
  uVar24 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *puVar25 = *(ulonglong *)(lVar3 + -0xbf0) ^ uVar24 ^ uVar45 ^ uVar32 ^
             *(ulonglong *)(lVar3 + -0x800);
  uVar45 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xc022098)) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0xc08)) >> ((local_118 ^ 0x3a) & 0x3f) ^ uVar45;
  *(uint *)(lVar3 - (uVar49 ^ 0x982fb498)) =
       (DAT_182671578 ^ 0xc67ac058) - (DAT_1826715ac ^ 0xb9b0a7ac);
  uVar14 = DAT_1826716d4;
  uVar24 = (*(ulonglong *)(lVar3 - (uVar37 ^ 0xe46dde9e)) ^ uVar24) << ((local_f8 ^ 6) & 0x3f);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar24 ^ CONCAT44(_DAT_182671838,_DAT_182671838);
  uVar15 = DAT_1826717b8;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x6d0) = (uVar45 ^ *(ulonglong *)(lVar3 + -0x898) | uVar24) ^ uVar22;
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar45 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar3 + -0x670) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0x800)) -
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0xacee7aa6)) ^ uVar22) ^ uVar36;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xacee7dae)) =
       uVar45 ^ uVar42 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0xa88) ^ *(ulonglong *)(lVar3 + -0x240);
  uVar45 = uVar45 ^ *(ulonglong *)(lVar3 + -0x1d8);
  uVar40 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(lVar3 + -0x318) = uVar45 >> ((local_e0 ^ 0xe8) & 0x3f) ^ uVar40;
  uVar14 = DAT_1826717fc;
  *(ulonglong *)(lVar3 + -0x2a0) =
       CONCAT44(uVar5,uVar1) ^ 0xe6919d9a5bfcf30c | uVar22 ^ *(ulonglong *)(lVar3 + -0x6d0);
  uVar15 = DAT_182671808;
  uVar24 = CONCAT44(uVar14,uVar14);
  *puVar43 = uVar45 << ((local_118 ^ 0x2a) & 0x3f) ^ uVar24;
  uVar16 = DAT_182671854;
  uVar28 = CONCAT44(uVar15,uVar15);
  uVar24 = *(ulonglong *)(lVar3 - ((ulonglong)uVar48 ^ 0x81000180)) ^ uVar24 |
           *(ulonglong *)(lVar3 - (uVar30 ^ 0x823b012a)) ^ uVar40;
  uVar40 = uVar24 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x628) = uVar40;
  uVar14 = DAT_1826716dc;
  uVar45 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0x110) = (uVar31 ^ *(ulonglong *)(lVar3 + -0xa88)) - uVar24 ^ uVar45;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar33 ^ 0xf6546949)) =
       uVar31 ^ uVar28 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0x670) ^ uVar40;
  uVar24 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar3 + -0xc08) = (uVar31 ^ *puVar35) >> ((local_e0 ^ 0xd0) & 0x3f) ^ uVar24;
  *(undefined1 *)(lVar3 - (uVar30 ^ 0x823b003b)) = **(undefined1 **)(lVar3 + -0x5b8);
  uVar15 = DAT_18267182c;
  uVar14 = DAT_1826715e8;
  bVar21 = (byte)DAT_182671570;
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar3 + -0xbf0)) << ((bVar21 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar3 + -0x898) = uVar31 ^ CONCAT44(DAT_182671758,DAT_182671758);
  uVar31 = uVar24 ^ *(ulonglong *)(lVar3 + -0xc08) | uVar31;
  uVar33 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x8a8) = uVar31 ^ uVar33;
  uVar24 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar3 + -0x800) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x670)) - uVar31 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671614;
  local_100 = (byte)uVar11;
  *(ulonglong *)(lVar3 + -0x240) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x39ef22f7)) ^ uVar33) >> ((local_100 ^ 0x5a) & 0x3f);
  uVar15 = DAT_182671834;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar24 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar33 = *(ulonglong *)(lVar3 - (uVar49 ^ 0x982fbc98)) ^ uVar36 ^ uVar45 ^ uVar22 ^
           *(ulonglong *)(lVar3 + -0x6d0);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar33;
  *(ulonglong *)(lVar3 + -0x1d8) = (uVar33 ^ uVar36) >> ((local_e0 ^ 0xf2) & 0x3f) ^ uVar24;
  *(uint *)(lVar3 + -0x874) =
       *(uint *)(lVar3 - ((ulonglong)uVar48 ^ 0x81000674)) >> ((bVar21 ^ 0x1c) & 0x1f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar19 * 4) = uVar18;
  *puVar39 = (uVar36 ^ uVar33) << ((local_c0 ^ 0x34) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  return;
}



############ FUN_ 180ef48c0 size=4913 ############

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

void FUN_180ef48c0(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  byte *pbVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  byte bVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte local_b8;
  byte local_b0;
  byte local_a8;
  byte local_a0;
  byte local_88;
  
  uVar13 = DAT_1826715b0;
  uVar10 = DAT_1826715a4;
  uVar19 = DAT_1826715a0;
  uVar6 = DAT_182671574;
  lVar3 = DAT_182671560;
  uVar30 = (ulonglong)DAT_1826715a4;
  uVar20 = (ulonglong)DAT_1826715a0;
  uVar32 = (ulonglong)DAT_1826715b0;
  uVar25 = (ulonglong)DAT_1826715a0;
  uVar29 = (ulonglong)DAT_182671574;
  uVar24 = DAT_1826715a4 * DAT_1826715b0;
  uVar28 = DAT_182671574 + DAT_1826715a0;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar30 ^ 0x22110a38) + (longlong)DAT_182671998);
  uVar15 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_1826715a0 ^ 0x7a36610f) + (longlong)DAT_182671998) ^
           DAT_1826715b0;
  uVar16 = CONCAT44(uVar28,DAT_1826715b0);
  bVar27 = (byte)DAT_1826715b0;
  uVar21 = 0xedda1b9f68eccf68 >> ((bVar27 ^ 0x88) & 0x3f);
  bVar17 = (byte)DAT_182671848;
  DAT_182671594 = uVar24;
  DAT_1826715b4 = uVar28;
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar21;
  bVar17 = bVar17 ^ (byte)DAT_1826716fc;
  *(ulonglong *)(lVar3 + -0x600) = 0x5e60dde1715f4220 - uVar21;
  *(byte *)(lVar3 + -0x31) = bVar17 ^ *(byte *)(lVar3 + -0x898);
  pbVar22 = (byte *)((CONCAT44(uVar10,uVar6) ^ 0x22110a30ffffffe9) + *(longlong *)(lVar3 + -0x8c8));
  *(ulonglong *)(lVar3 + -0x4b0) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671850;
  *pbVar22 = *(byte *)(lVar3 - (uVar25 ^ 0x7a36612e)) ^ (byte)DAT_182671718 ^ (byte)DAT_1826716fc;
  *(ulonglong *)(lVar3 + -0x318) =
       (CONCAT44(uVar28,uVar19) ^ 0xaec6eeba7277e26f) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x7d762710)) ^
       CONCAT44(DAT_1826715c4,DAT_1826715c4));
  uVar5 = DAT_182671828;
  lVar4 = DAT_182671560;
  uVar21 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x7a366275)) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar6,uVar10) ^ 0xfffffffe22110a33) +
       (CONCAT44(uVar6,uVar13) ^ 0xfffffffed094d8a7) * 0xc) * 8 ^ uVar21;
  lVar3 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671660,DAT_182671660);
  uVar33 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar21 = *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0x368) ^ uVar21) ^ uVar33 ^ uVar31;
  *(ulonglong *)(DAT_182671560 + -0x638) = uVar21;
  uVar25 = (ulonglong)DAT_1826718c0;
  bVar17 = (byte)DAT_182671858;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x7d762ea0)) = CONCAT44(uVar5,uVar5) ^ uVar21 ^ uVar31
  ;
  lVar3 = DAT_182671560;
  *(byte *)(DAT_182671560 - ((ulonglong)uVar10 ^ 0x22110901)) =
       (byte)uVar5 ^ bVar17 ^ *(byte *)(DAT_182671560 + -0xbf0);
  *(ulonglong *)(lVar3 + -0x800) = CONCAT44(uVar19,uVar19) ^ 0xad2a1376b333d534;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar24 ^ 0x7d762848)) =
       *(longlong *)(lVar3 + -0x8c8) + 0x18U ^ uVar25;
  uVar5 = DAT_1826715d0;
  *(byte *)(*(ulonglong *)(lVar4 + -0xd18) ^ uVar25) =
       *(byte *)(lVar4 + -0x331) ^ bVar17 ^ (byte)DAT_182671718;
  uVar11 = DAT_1826718c4;
  uVar7 = DAT_18267169c;
  *(ulonglong *)(lVar4 + -0x1d8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x7a36619d)) ^ CONCAT44(uVar5,uVar5)) -
       (CONCAT44(uVar13,uVar19) ^ 0x72b45824b37ffd2b);
  uVar5 = _DAT_182671868;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar4 + -0xb98) + 0x18 +
            (CONCAT44(uVar10,uVar13) ^ 0x22110a30d094d8a7) * 0x60);
  *(ulonglong *)(lVar4 + -0x4a0) = (ulonglong)puVar23 ^ CONCAT44(uVar11,uVar11);
  lVar3 = DAT_182671560;
  uVar26 = CONCAT44(uVar5,uVar5);
  uVar21 = CONCAT44(uVar6,DAT_18267159c);
  *(ulonglong *)(DAT_182671560 + -0x3f0) = *puVar23 ^ uVar26 ^ uVar33;
  local_a8 = (byte)uVar24;
  *(ulonglong *)(lVar3 + -0x9f8) = (uVar21 ^ 0x6364b55168e4008f) << (((byte)uVar28 ^ 0x3f) & 0x3f);
  bVar17 = (byte)DAT_182671788;
  uVar34 = CONCAT44(uVar7,uVar7);
  uVar21 = (uVar26 ^ *(ulonglong *)(lVar3 + -0x3f0)) >> ((local_a8 ^ 0x58) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar3 + -0x1f0) = uVar21;
  bVar18 = bVar17 ^ (byte)uVar7 ^ (byte)uVar21;
  *(byte *)(lVar3 + -0x51a) = bVar18;
  lVar3 = DAT_182671560;
  uVar21 = (ulonglong)DAT_1826716cc;
  bVar17 = bVar17 ^ bVar18 ^ (byte)DAT_182671718;
  *(ulonglong *)(DAT_182671560 + -0x198) =
       (CONCAT44(uVar6,uVar6) ^ 0xfffffffeffffffe7) + *(longlong *)(DAT_182671560 + -0x8c8) ^ uVar21
  ;
  *(uint *)(lVar3 + -0x3d4) = (uVar24 ^ 0x864e1d0a) + *(int *)(lVar3 + -0x874);
  uVar25 = CONCAT44(DAT_182671600,DAT_182671600);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671588 ^ 0x35ca74d7)) ^ uVar21) = bVar17;
  uVar11 = DAT_182671800;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar10,uVar10) ^ 0x22110a3022110a33) +
            (CONCAT44(uVar13,uVar28) ^ 0xd094d8a77a36611d) * 0xc) * 8);
  *(int *)(lVar3 + -0x344) = -0x16ccc682 << ((bVar27 ^ 0xa1) & 0x1f);
  uVar12 = DAT_182671814;
  local_a0 = (byte)uVar10;
  *(ulonglong *)(lVar3 + -0x830) = (ulonglong)puVar23 ^ uVar25;
  lVar4 = DAT_182671560;
  uVar21 = *puVar23 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar21 ^ CONCAT44(uVar12,uVar12);
  bVar17 = (byte)DAT_182671718;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_18267159c ^ 0x4f75cc45)) =
       uVar21 >> ((local_a0 ^ 0x20) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  uVar21 = (ulonglong)DAT_18267180c;
  bVar27 = *(byte *)(lVar4 - (uVar20 ^ 0x7a36676f)) ^ (byte)uVar11 ^ (byte)DAT_1826718b8;
  *(ulonglong *)(lVar4 + -0xa98) = *(longlong *)(lVar4 + -0x8c8) + 0x1aU ^ uVar21;
  bVar17 = bVar17 ^ bVar27 ^ (byte)DAT_1826718b8;
  *(byte *)(lVar4 + -0x5a2) = bVar27;
  uVar31 = CONCAT44(uVar10,DAT_182671588);
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar24 ^ 0x7d762fc8)) ^ uVar21) = bVar17;
  lVar3 = DAT_182671560;
  puVar23 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0xb98) +
            ((CONCAT44(uVar24,uVar6) ^ 0x7d762550fffffffd) + (uVar31 ^ 0x22110a3035ca754f) * 0xc) *
            8);
  uVar21 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(DAT_182671560 + -0x570) = (ulonglong)puVar23 ^ uVar26;
  uVar5 = DAT_1826717a8;
  uVar8 = DAT_18267159c;
  uVar26 = *puVar23 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar26 ^ uVar21;
  local_b0 = (byte)uVar19;
  bVar17 = (byte)uVar5 ^ (byte)DAT_182671758;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar26 >> ((local_b0 ^ 7) & 0x3f) ^ CONCAT44(uVar5,uVar5);
  uVar21 = (ulonglong)DAT_182671740;
  *(byte *)(lVar3 - (uVar32 ^ 0xd094d15e)) = bVar17 ^ *(byte *)(lVar3 + -0x8a8);
  *(ulonglong *)(lVar3 + -0xb00) = *(longlong *)(lVar3 + -0x8c8) + 0x1bU ^ uVar21;
  uVar2 = DAT_182671588;
  *(ulonglong *)(lVar3 + -0xa0) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x4f75c29d)) ^ CONCAT44(uVar5,uVar5) ^ uVar31 ^
       0xa088c6d4f40b5f1c;
  uVar31 = CONCAT44(DAT_182671818,DAT_182671818);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x4f75c135)) ^ uVar21) =
       *(byte *)(lVar3 + -0x9f9) ^ (byte)DAT_182671718 ^ (byte)DAT_182671758;
  uVar5 = DAT_182671750;
  bVar17 = (byte)uVar7 ^ (byte)DAT_1826716d4;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((uVar16 ^ 0x7a36611dd094d8a4) + (CONCAT44(uVar28,uVar2) ^ 0x7a36611d35ca754f) * 0xc) *
            8);
  *(ulonglong *)(lVar3 + -0x70) = (ulonglong)puVar23 ^ uVar31;
  uVar21 = *puVar23 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x548) = uVar21 ^ CONCAT44(uVar5,uVar5);
  uVar9 = DAT_18267159c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0x35ca7fcf)) =
       uVar21 >> (((byte)uVar28 ^ 0x3d) & 0x3f) ^ uVar34;
  bVar17 = bVar17 ^ *(byte *)(lVar3 + -0xa80);
  uVar21 = (ulonglong)DAT_182671644;
  *(byte *)(lVar3 + -0xd61) = bVar17;
  lVar3 = DAT_182671560;
  bVar17 = bVar17 ^ (byte)DAT_182671718 ^ (byte)DAT_1826716d4;
  *(ulonglong *)(DAT_182671560 + -0x610) =
       (CONCAT44(uVar19,uVar13) ^ 0x4be389b81bf2c35a) >> (((byte)uVar2 ^ 0x65) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc00) =
       (CONCAT44(uVar2,uVar19) ^ 0x35ca754f7a366103) + *(longlong *)(lVar3 + -0x8c8) ^ uVar21;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar29 ^ 0xfffff3fe)) ^ uVar21) = bVar17;
  *(uint *)(lVar3 + -0x968) =
       (DAT_182671594 ^ 0x74810385) + *(int *)(lVar3 - ((ulonglong)uVar24 ^ 0x7d762614));
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar19,uVar13) ^ 0x7a36611fd094d8a4) +
            (CONCAT44(uVar10,uVar9) ^ 0x22110a304f75ca35) * 0xc) * 8);
  local_b8 = (byte)uVar6;
  uVar21 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *(ulonglong *)(lVar3 + -0x68) = (ulonglong)puVar23 ^ CONCAT44(DAT_18267186c,DAT_18267186c);
  uVar26 = *puVar23 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar26 ^ uVar21;
  lVar3 = DAT_182671560;
  uVar31 = (ulonglong)DAT_1826716f0;
  bVar17 = (byte)DAT_1826716f4;
  pbVar22 = (byte *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x4f75c055));
  uVar21 = *(ulonglong *)(DAT_182671560 + -0xa80);
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       uVar26 >> ((local_b8 ^ 0xd6) & 0x3f) ^ CONCAT44(DAT_1826716f4,DAT_1826716f4);
  bVar17 = *pbVar22 ^ bVar17 ^ DAT_1826716c0;
  *(byte *)(lVar3 + -0xd71) = bVar17;
  *(ulonglong *)(lVar3 + -0x270) = uVar34 ^ uVar21 | 0x4d6e43b8b613ac9c;
  *(ulonglong *)(lVar3 + -0x930) =
       (CONCAT44(uVar24,uVar19) ^ 0x7d7625507a366102) + *(longlong *)(lVar3 + -0x8c8) ^ uVar31;
  lVar3 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar30 ^ 0x22110300)) ^ uVar31) =
       (byte)DAT_182671718 ^ bVar17 ^ DAT_1826716c0;
  *(ulonglong *)(lVar3 + -0x3b8) =
       CONCAT44(uVar6,uVar6) ^ CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0x670) ^
       0xda95d607b6e80467;
  uVar8 = DAT_182671588;
  uVar21 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x22110c90)) =
       *(longlong *)(lVar3 + -0xb98) + 0x18 + (CONCAT44(uVar28,uVar9) ^ 0x7a36611d4f75ca35) * 0x60 ^
       uVar21;
  uVar21 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x6a0) ^ uVar21) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x898) = uVar21 ^ CONCAT44(DAT_1826715fc,DAT_1826715fc);
  bVar17 = (byte)DAT_1826717c8;
  uVar21 = uVar21 >> (local_a0 & 0x3f) ^ CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar3 + -0xa88) = uVar21;
  bVar27 = bVar17 ^ (byte)uVar21 ^ (byte)DAT_182671730;
  uVar21 = (ulonglong)DAT_182671698;
  *(ulonglong *)(lVar3 + -0x600) =
       0x539891ead1a1156a - (CONCAT44(uVar19,uVar19) ^ 0xf6a986ad2e2d8a34);
  *(byte *)(lVar3 + -0xbf1) = bVar27;
  pbVar22 = (byte *)((uVar16 ^ 0x7a36611dd094d8b9) + *(longlong *)(lVar3 + -0x8c8));
  bVar17 = (byte)DAT_182671718 ^ (byte)DAT_182671730;
  *(ulonglong *)(lVar3 + -0x538) = (ulonglong)pbVar22 ^ uVar21;
  uVar21 = CONCAT44(DAT_182671584,uVar6);
  *pbVar22 = bVar17 ^ bVar27;
  uVar5 = DAT_1826717f8;
  *(ulonglong *)(lVar3 + -0x240) = uVar21 ^ CONCAT44(uVar2,uVar13) ^ 0xabcd34c81d01cb3f;
  uVar19 = DAT_1826716cc;
  uVar11 = DAT_1826715a8;
  lVar3 = DAT_182671560;
  uVar34 = CONCAT44(uVar5,uVar5);
  uVar21 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  uVar2 = DAT_1826715cc >> 0x18;
  puVar23 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0xb98) + 0x18 +
            (CONCAT44(DAT_1826715a8,uVar8) ^ 0xef6bb77e35ca754f) * 0x60);
  *(ulonglong *)(DAT_182671560 + -0x450) = (ulonglong)puVar23 ^ uVar34;
  *(ulonglong *)(lVar3 + -0x318) = uVar21 ^ *puVar23 ^ uVar33;
  uVar21 = CONCAT44(uVar28,DAT_1826715ac);
  *(ulonglong *)(CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar3 + -0xd60)) =
       CONCAT44(uVar6,uVar28) ^ 0x7481620029ce0221;
  bVar17 = (byte)DAT_182671718 ^ (byte)DAT_182671620;
  *(ulonglong *)(lVar3 + -0x638) = (uVar21 ^ 0x97375d7c6dcae318) << ((local_a8 ^ 0x67) & 0x3f);
  uVar19 = DAT_182671590;
  uVar35 = (ulonglong)DAT_182671590;
  uVar30 = (ulonglong)DAT_182671668;
  uVar21 = (ulonglong)*(byte *)(lVar3 + -0x311) ^ (ulonglong)uVar2 ^
           CONCAT44(DAT_1826716bc,DAT_1826716bc);
  local_88 = (byte)uVar12;
  bVar27 = (byte)DAT_1826716bc ^ (byte)uVar21 ^ (byte)DAT_182671620;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar21;
  *(byte *)(lVar3 + -0x5b9) = bVar27;
  *(ulonglong *)(lVar3 + -0x800) =
       (CONCAT44(uVar10,uVar9) ^ 0x464b571b8cfcd33b) <<
       ((*(byte *)(lVar3 + -0x6d0) ^ local_88) & 0x3f);
  *(ulonglong *)(lVar3 + -0x4b8) =
       (CONCAT44(uVar24,uVar19) ^ 0x7d762550635d7732) + *(longlong *)(lVar3 + -0x8c8) ^ uVar30;
  uVar5 = DAT_182671854;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x35ca71f7)) ^ uVar30) = bVar17 ^ bVar27;
  uVar12 = DAT_182671858;
  uVar7 = DAT_182671704;
  puVar23 = (ulonglong *)(*(longlong *)(lVar3 - ((ulonglong)DAT_18267157c ^ 0x300a1aba)) + 0x20);
  *(ulonglong *)(lVar3 + -0xa38) = (ulonglong)puVar23 ^ CONCAT44(uVar5,uVar5);
  uVar31 = CONCAT44(uVar12,uVar12);
  uVar21 = *puVar23 ^ uVar33 ^ uVar31;
  bVar17 = (byte)uVar7 ^ (byte)DAT_182671840;
  *(ulonglong *)(lVar3 + -0x80) = uVar21;
  uVar5 = DAT_182671570;
  *(ulonglong *)(lVar3 + -0x1d8) = CONCAT44(uVar7,uVar7) ^ uVar21 ^ uVar31;
  uVar2 = DAT_18267158c;
  bVar17 = bVar17 ^ *(byte *)(lVar3 + -0x1d8);
  uVar16 = (ulonglong)DAT_18267158c;
  *(byte *)(lVar3 + -0xc51) = bVar17;
  *(ulonglong *)(lVar3 + -0x9f8) =
       (CONCAT44(uVar5,uVar10) ^ 0xda0d99dedadf4a2b) <<
       (((byte)uVar12 ^ *(byte *)(lVar3 + -0x80)) & 0x3f);
  uVar19 = uVar2 << 0x10 | uVar2 >> 0x10;
  *(ulonglong *)(lVar3 + -0x3f0) = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x830) ^ uVar25) ^ uVar33;
  uVar26 = CONCAT44(uVar2,uVar19);
  pbVar22 = (byte *)((CONCAT44(uVar19,uVar2) ^ 0x367a1f611f61365a) +
                    *(longlong *)(DAT_182671560 + -0x8c8));
  DAT_18267156c = uVar19;
  *(ulonglong *)(DAT_182671560 + -0xc60) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671760;
  *pbVar22 = (byte)DAT_182671718 ^ (byte)DAT_182671840 ^ bVar17;
  lVar3 = DAT_182671560;
  uVar21 = CONCAT44(DAT_182671780,DAT_182671780);
  puVar23 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar19 ^ 0x367a1f19));
  *puVar23 = *(longlong *)(DAT_182671560 + -0xb98) +
             ((uVar26 ^ 0x1f61367a367a1f65) + (uVar26 ^ 0x1f61367a367a1f61) * 0xc) * 8 ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x1f61378a)) =
       (uVar26 ^ 0xb70915abff1fcd55) - (CONCAT44(uVar2,uVar2) ^ 0x66d3abec05e23eb8);
  uVar5 = DAT_182671878;
  uVar8 = DAT_182671808;
  uVar30 = (ulonglong)DAT_182671808;
  uVar25 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar21 = *(ulonglong *)(uVar21 ^ *puVar23) ^ uVar33 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x2a0) = uVar21;
  uVar29 = (ulonglong)DAT_182671768;
  *(ulonglong *)(lVar3 + -0xa0) =
       (uVar30 << 0x18 | (ulonglong)(uVar8 >> 8)) ^ uVar21 >> 8 ^ CONCAT44(uVar5,uVar5);
  *(byte *)(lVar3 - ((ulonglong)uVar19 ^ 0x367a1ae0)) =
       *(byte *)(lVar3 - ((ulonglong)uVar19 ^ 0x367a1fc1)) ^ (byte)uVar5 ^ (byte)DAT_1826716a0;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x1f613ed2)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x450) ^ uVar34) ^ uVar33;
  uVar5 = DAT_1826717d8;
  pbVar22 = (byte *)(*(longlong *)(lVar3 - (uVar16 ^ 0x1f613eb2)) +
                    (CONCAT44(uVar19,uVar19) ^ 0x367a1f61367a1f40));
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x1f61316a)) = (ulonglong)pbVar22 ^ uVar29;
  *pbVar22 = *(byte *)(lVar3 + -0x581) ^ (byte)DAT_182671718 ^ (byte)DAT_1826716a0;
  uVar21 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0x367a13a9)) =
       *(longlong *)(lVar3 + -0xb98) +
       ((uVar26 ^ 0x1f61367a367a1f65) + (CONCAT44(uVar19,uVar2) ^ 0x367a1f611f61367a) * 0xc) * 8 ^
       uVar21;
  uVar12 = DAT_1826715ac;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671588 ^ 0x35ca7007)) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0x635d758d)) ^ uVar25) >>
       (((byte)(uVar2 >> 0x10) ^ 0x76) & 0x3f);
  uVar30 = CONCAT44(DAT_1826716b0,DAT_1826716b0);
  *(ulonglong *)(lVar3 + -0x610) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0xcc8) ^ uVar21) ^ uVar33 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0x4f75cc25)) ^ uVar30) >>
       (((byte)uVar2 ^ 0x6a) & 0x3f) ^ CONCAT44(uVar5,uVar5);
  uVar21 = (ulonglong)DAT_1826717f4;
  *(byte *)(lVar3 + -0xc42) =
       *(byte *)(lVar3 - (uVar16 ^ 0x1f6130c2)) ^ (byte)uVar5 ^ (byte)DAT_1826715e4;
  uVar5 = DAT_182671568;
  pbVar22 = (byte *)((CONCAT44(uVar2,uVar6) ^ 0x1f61367affffffdc) + *(longlong *)(lVar3 + -0x8c8));
  *(ulonglong *)(lVar3 + -0x760) = (ulonglong)pbVar22 ^ uVar21;
  *pbVar22 = *(byte *)(lVar3 - (uVar20 ^ 0x7a366d5d)) ^ (byte)DAT_182671718 ^ (byte)DAT_1826715e4;
  uVar14 = DAT_1826715c8;
  uVar7 = DAT_182671578;
  *(ulonglong *)(lVar3 + -0xa60) =
       CONCAT44(uVar2,uVar5) ^ 0xb0aca28bccb8de2f | uVar31 ^ *(ulonglong *)(lVar3 + -0x80);
  uVar8 = DAT_182671850;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar7,uVar13) ^ 0x5a6d3e5dd094d8a3) +
            (CONCAT44(uVar11,uVar19) ^ 0xef6bb77e367a1f61) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xab8) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671614,DAT_182671614);
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xa80) = *puVar23 ^ uVar33 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x270) =
       (CONCAT44(uVar12,uVar6) ^ 0xdaabc376c1c7b5f2) >> (((byte)uVar5 ^ 0x35) & 0x3f);
  bVar17 = (byte)uVar14 ^ (byte)DAT_182671818;
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar3 + -0xa80)) >> (((byte)uVar2 ^ 0x62) & 0x3f) ^
           CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x670) = uVar21;
  *(byte *)(lVar3 - (uVar32 ^ 0xd094d16e)) = bVar17 ^ (byte)uVar21;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar24;
  return;
}



############ FUN_ 180e4cfc0 size=5647 ############

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

void FUN_180e4cfc0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  byte bVar17;
  ulonglong *puVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  byte bVar32;
  byte bVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong *puVar46;
  byte local_res18;
  byte local_res20;
  
  uVar4 = DAT_182671594;
  uVar8 = DAT_182671590;
  uVar7 = DAT_18267158c;
  uVar6 = DAT_182671580;
  uVar3 = DAT_18267157c;
  uVar5 = DAT_182671574;
  lVar1 = DAT_182671560;
  uVar20 = (ulonglong)DAT_18267158c;
  uVar22 = (ulonglong)DAT_182671580;
  uVar13 = DAT_182671580 - DAT_182671594;
  uVar24 = (ulonglong)DAT_182671574;
  uVar41 = (ulonglong)DAT_182671590;
  uVar27 = (ulonglong)DAT_18267157c;
  uVar29 = DAT_18267158c * DAT_182671574;
  uVar31 = DAT_182671590 + DAT_18267157c;
  uVar14 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar13 ^ 0xb3c9af82) + (longlong)DAT_182671a8c) ^
           DAT_182671594;
  uVar15 = *(uint *)(&DAT_182611e70 + (uVar20 ^ 0x723f5b87) + (longlong)DAT_182671a8c) ^
           DAT_182671580;
  uVar34 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar21 = (ulonglong)uVar29;
  uVar25 = (uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x748)) << (((byte)uVar29 ^ 0xc5) & 0x3f);
  uVar28 = (ulonglong)uVar31;
  DAT_182671578 = uVar31;
  DAT_1826715b0 = uVar29;
  DAT_1826715b4 = uVar13;
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar25 ^ CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar9 = DAT_1826718ac;
  puVar18 = (ulonglong *)(lVar1 - (uVar28 ^ 0x8dbb6ca3));
  uVar26 = (ulonglong)DAT_1826718ac;
  uVar35 = (uVar34 ^ *puVar18) >> (((byte)uVar7 ^ 0xb7) & 0x3f);
  uVar34 = CONCAT44(DAT_1826715c8,DAT_1826715c8);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar35 ^ CONCAT44(DAT_182671850,DAT_182671850);
  uVar36 = (uVar35 | uVar25) ^ uVar34;
  uVar39 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar1 + -0x9f8) = uVar36;
  uVar35 = CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar25 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x300a12d2)) =
       uVar35 ^ uVar39 ^ uVar34 ^ uVar36 ^ *(ulonglong *)(lVar1 + -0x5c8);
  uVar44 = CONCAT44(DAT_182671720,DAT_182671720);
  uVar34 = (ulonglong)DAT_182671604;
  *(ulonglong *)(lVar1 + -0xa88) =
       (*(ulonglong *)(lVar1 - (uVar21 ^ 0x39c0a8e5)) ^ uVar25) +
       (CONCAT44(DAT_1826717a0,DAT_1826717a0) ^ *(ulonglong *)(lVar1 + -0xa60)) ^ uVar44;
  *(byte *)(lVar1 - ((ulonglong)uVar3 ^ 0x300a177b)) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar13 ^ 0xb3c9aa32)) ^ uVar34) ^
       (byte)DAT_1826717c0;
  uVar36 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xf5fefa47)) =
       (uVar25 ^ *(ulonglong *)(lVar1 + -0x600)) << 0x20 ^ uVar36;
  uVar34 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(uint *)(lVar1 + -0x640) = (uVar8 ^ 0xdf93068b) << ((byte)*(undefined4 *)(lVar1 + -0x678) & 0x1f)
  ;
  uVar26 = *(ulonglong *)(lVar1 + -0x600) >> 0x20 ^ uVar34 ^ uVar26;
  uVar25 = CONCAT44(DAT_182671770,DAT_182671770);
  *(ulonglong *)(lVar1 + -0x800) = uVar26;
  uVar34 = (uVar26 ^ uVar34 | *(ulonglong *)(lVar1 + -0x3b8) ^ uVar36) ^ uVar25;
  uVar26 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar1 + -0x670) = uVar34;
  uVar34 = uVar26 ^ uVar25 ^ uVar44 ^ uVar34 ^ *(ulonglong *)(lVar1 + -0xa88);
  *(ulonglong *)(lVar1 + -0xa80) = uVar34;
  lVar2 = DAT_182671560;
  uVar30 = (ulonglong)DAT_1826716b8;
  uVar40 = (ulonglong)DAT_1826716a0;
  uVar25 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  uVar36 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar37 = (CONCAT44(uVar31,uVar5) ^ 0x6d2ac3b6235dd860) + (uVar26 ^ uVar34) ^ uVar36;
  uVar26 = (ulonglong)uVar4;
  *(ulonglong *)(lVar1 + -0x1f0) = uVar37;
  uVar35 = (CONCAT44(uVar7,uVar4) ^ 0x52c2d25ac6fe3a47) + (uVar35 ^ *(ulonglong *)(lVar2 + -0x5c8));
  *(ulonglong *)(lVar2 + -0x80) = uVar35 ^ uVar25;
  uVar23 = CONCAT44(DAT_182671700,DAT_182671700);
  uVar34 = *(ulonglong *)(lVar2 - (uVar28 ^ 0x8dbb6a1b));
  *(ulonglong *)(lVar2 + -0xa0) = (*(ulonglong *)(lVar2 + -0x3f0) ^ uVar39) << ((byte)uVar35 & 0x3f)
  ;
  uVar10 = DAT_182671634;
  *(ulonglong *)(lVar2 + -0x610) = (uVar34 ^ uVar36) + uVar35 ^ uVar23;
  uVar11 = DAT_1826716d4;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x1d8) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0xf5fef80f)) ^ uVar36) << 0xe ^ uVar25;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x300a1ad2)) = (uVar37 >> 0x20 ^ uVar30) >> 0x12 ^ uVar34;
  bVar32 = (byte)uVar8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xb3c9a382)) =
       (CONCAT44(uVar8,uVar3) ^ 0x2a77b6c5fd8aa16d) >> ((bVar32 ^ 0xec) & 0x3f);
  lVar1 = DAT_182671560;
  uVar37 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  puVar19 = (ulonglong *)(lVar2 - (uVar24 ^ 0x2eb04edb));
  uVar35 = CONCAT44(DAT_182671870,DAT_182671870);
  *puVar19 = (uVar25 ^ *(ulonglong *)(lVar2 + -0x1d8) | uVar34 ^ *(ulonglong *)(lVar2 + -0xbf0)) ^
             uVar37;
  uVar34 = (ulonglong)_DAT_1826715e0;
  *(ulonglong *)(lVar1 + -0x318) =
       uVar35 ^ uVar37 ^ uVar23 ^ *(ulonglong *)(lVar1 + -0x610) ^ *(ulonglong *)(lVar1 + -0x638);
  uVar10 = DAT_182671754;
  *(byte *)(lVar1 + -0xcca) =
       *(byte *)(*(ulonglong *)(lVar1 + -0xc80) ^ uVar34) ^ (byte)DAT_1826717c0;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar25 = (CONCAT44(uVar4,uVar6) ^ 0x3fb098294378b2ee) + (*(ulonglong *)(lVar1 + -0x3f0) ^ uVar39);
  puVar42 = (ulonglong *)(lVar1 - (uVar41 ^ 0x5db15041));
  *(ulonglong *)(lVar1 + -0x748) = uVar25 ^ uVar30;
  uVar12 = DAT_182671854;
  uVar10 = DAT_1826716f4;
  lVar1 = DAT_182671560;
  uVar34 = (*puVar42 ^ uVar44) + (CONCAT44(uVar6,uVar31) ^ 0xa5e7e9467a2f25e9);
  *(ulonglong *)(DAT_182671560 + -0x688) = uVar34 ^ CONCAT44(DAT_182671854,DAT_182671854);
  uVar11 = DAT_1826717c4;
  uVar44 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar34 + uVar25 ^ uVar44;
  lVar2 = DAT_182671560;
  uVar38 = CONCAT44(uVar11,uVar11);
  bVar16 = (byte)uVar3;
  puVar45 = (ulonglong *)(lVar1 - (uVar27 ^ 0x300a18da));
  *puVar45 = uVar25 << ((bVar16 ^ 0x32) & 0x3f) ^ uVar38;
  uVar10 = DAT_1826716dc;
  puVar46 = (ulonglong *)(lVar2 - (uVar21 ^ 0x39c0a485));
  *puVar46 = (uVar37 ^ *(ulonglong *)(lVar2 + -0x638)) >>
             (((byte)uVar12 ^ *(byte *)(lVar2 + -0x688)) & 0x3f);
  uVar34 = CONCAT44(uVar10,uVar10);
  local_res20 = (byte)uVar31;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x42354c75)) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x748)) >> ((local_res20 ^ 0xdb) & 0x3f) ^ uVar34;
  uVar11 = DAT_182671858;
  uVar37 = CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar34 = (uVar38 ^ *(ulonglong *)(lVar2 + -0x9f8) | uVar34 ^ *(ulonglong *)(lVar2 + -0x600)) ^
           uVar37;
  *(ulonglong *)(lVar2 + -0x3b8) = uVar34;
  uVar10 = DAT_182671834;
  lVar1 = DAT_182671560;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar34 = uVar30 ^ uVar34 ^ uVar37 ^ uVar44 ^ *(ulonglong *)(lVar2 + -0x6b8);
  *(ulonglong *)(lVar2 + -0x800) = uVar34;
  uVar25 = CONCAT44(uVar10,uVar10);
  local_res18 = (byte)uVar6;
  *(ulonglong *)(lVar1 + -0x670) =
       (uVar23 ^ *(ulonglong *)(lVar1 + -0x610)) + (uVar30 ^ uVar34) ^ uVar25;
  lVar1 = DAT_182671560;
  puVar43 = (ulonglong *)(DAT_182671560 + -0x800);
  *(ulonglong *)(DAT_182671560 + -0xa80) =
       (uVar30 ^ uVar34) << ((local_res18 ^ 0xcb) & 0x3f) ^ uVar36;
  bVar33 = (byte)uVar13;
  uVar34 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar1 - (uVar20 ^ 0x723f5e5f)) =
       (uVar30 ^ *puVar43) >> ((bVar33 ^ 0x86) & 0x3f) ^ uVar34;
  uVar23 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(lVar1 + -0x80) =
       (uVar34 ^ *(ulonglong *)(lVar1 + -0x5c8) | uVar36 ^ *(ulonglong *)(lVar1 + -0xa80)) ^ uVar23;
  *(ulonglong *)(lVar1 + -0xa0) = CONCAT44(uVar29,uVar5) ^ 0x87d9823632c087f2;
  uVar36 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  uVar39 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar1 + -0x1f0) =
       *(ulonglong *)(lVar1 - (uVar27 ^ 0x300a11a2)) ^ *(ulonglong *)(lVar1 - (uVar28 ^ 0x8dbb6d9b))
       ^ uVar36 ^ uVar23 ^ uVar25;
  uVar3 = DAT_1826715a8;
  *(ulonglong *)(lVar1 - (uVar26 ^ 0x4235467d)) =
       (*(ulonglong *)(lVar1 - (uVar27 ^ 0x300a123a)) ^ uVar35) +
       (uVar44 ^ *(ulonglong *)(lVar1 + -0x6b8)) ^ uVar39;
  uVar10 = DAT_18267174c;
  lVar2 = DAT_182671560;
  uVar34 = *(ulonglong *)(DAT_182671560 + -0x318);
  *(uint *)(lVar1 + -0x968) = *(uint *)(*(ulonglong *)(lVar1 + -0x8b0) ^ uVar40) ^ DAT_1826717c0;
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xf5fef20f)) = (uVar35 ^ uVar34) << 0x39 ^ uVar23;
  uVar34 = (uVar35 ^ *(ulonglong *)(lVar2 + -0x318)) >> ((bVar33 ^ 0x8d) & 0x3f);
  uVar35 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar27 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar34 ^ uVar35;
  uVar34 = (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar23 | uVar34) ^ uVar27;
  uVar30 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar34;
  *puVar42 = uVar39 ^ *(ulonglong *)(lVar2 + -0xc08) ^ uVar34 ^ uVar30 ^ uVar27;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x723f5daf)) =
       *(ulonglong *)(lVar2 + -0x3f0) ^ uVar27 | 0xa269069444f6b5d6;
  uVar10 = DAT_182671730;
  uVar4 = DAT_1826715a0;
  puVar43 = (ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xef6bb10e));
  puVar42 = (ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xef6bb1f6));
  *puVar42 = (uVar25 ^ *puVar43) + (*(ulonglong *)(lVar2 + -0xa88) ^ uVar30) ^ uVar23;
  uVar3 = DAT_18267156c;
  lVar1 = DAT_182671560;
  uVar27 = CONCAT44(uVar10,uVar10);
  *puVar46 = (*(ulonglong *)(DAT_182671560 + -0xa88) ^ uVar30) <<
             (((byte)DAT_18267156c ^ 0x39) & 0x3f) ^ uVar27;
  uVar34 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *puVar18 = (*(ulonglong *)(lVar1 + -0xa88) ^ uVar30) >> ((bVar32 ^ 0xe0) & 0x3f) ^ uVar34;
  lVar1 = DAT_182671560;
  uVar30 = CONCAT44(DAT_18267172c,DAT_18267172c);
  *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0x2eb0411b)) =
       (*puVar46 ^ uVar27 | uVar34 ^ *(ulonglong *)(DAT_182671560 + -0x748)) ^ uVar30;
  uVar10 = DAT_1826717dc;
  *(ulonglong *)(lVar1 + -0x600) =
       *(ulonglong *)(lVar1 - (uVar41 ^ 0x5db15cb9)) ^ uVar25 ^ CONCAT44(uVar5,uVar8) ^
       0x5814451f934483c0;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x3b8) =
       *(ulonglong *)(lVar1 - (uVar24 ^ 0x2eb04e6b)) ^ *puVar45 ^ uVar27 ^ uVar30 ^ uVar23;
  uVar10 = DAT_1826715ec;
  *(ulonglong *)(lVar1 + -0x610) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x2f6b26a8)) ^ uVar36) +
       (uVar39 ^ *(ulonglong *)(lVar1 + -0xc08)) ^ uVar38;
  uVar11 = DAT_182671784;
  uVar30 = CONCAT44(uVar10,uVar10);
  bVar17 = (byte)DAT_18267156c;
  *(ulonglong *)(lVar1 + -0x800) =
       (uVar36 ^ *(ulonglong *)(lVar1 + -0x1f0)) << ((bVar33 ^ 0xa2) & 0x3f) ^ uVar30;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xf5fef37f)) =
       (uVar36 ^ *(ulonglong *)(lVar1 + -0x1f0)) >> ((bVar17 ^ 0x36) & 0x3f) ^ uVar25;
  uVar10 = DAT_182671668;
  uVar34 = CONCAT44(DAT_182671840,DAT_182671840);
  *(ulonglong *)(lVar1 + -0x5c8) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0x723f5117)) ^ uVar25 |
       *(ulonglong *)(lVar1 + -0x800) ^ uVar30) ^ uVar34;
  uVar36 = CONCAT44(uVar10,uVar10);
  uVar34 = *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826715a8 ^ 0xef6bb2b6)) ^ uVar38 ^
           *(ulonglong *)(lVar1 + -0x610) ^ uVar36 ^ uVar34;
  uVar39 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar1 + -0xa0) = uVar34;
  *(ulonglong *)(lVar1 - (uVar26 ^ 0x42354af5)) =
       (*(ulonglong *)(lVar1 + -0x688) ^ uVar23) + (uVar34 ^ uVar36) ^ uVar39;
  uVar25 = CONCAT44(DAT_1826717b0,DAT_1826717b0);
  *(ulonglong *)(lVar1 - (uVar26 ^ 0x42354ccd)) =
       (uVar36 ^ *(ulonglong *)(lVar1 + -0xa0)) << ((local_res20 ^ 0xee) & 0x3f) ^ uVar25;
  uVar10 = DAT_182671788;
  uVar36 = (uVar36 ^ *(ulonglong *)(lVar1 + -0xa0)) >> (((byte)uVar29 ^ 0xde) & 0x3f);
  *(ulonglong *)(lVar1 + -0x318) = uVar36 ^ CONCAT44(DAT_182671758,DAT_182671758);
  uVar11 = DAT_1826718c8;
  lVar2 = DAT_182671560;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar36 = (uVar36 | *(ulonglong *)(lVar1 + -0x6b8) ^ uVar25) ^ uVar34;
  *(ulonglong *)(lVar1 + -0xbf0) = uVar36;
  uVar23 = CONCAT44(uVar11,uVar11);
  uVar25 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar1 + -0x3f0) = *(ulonglong *)(lVar1 + -0x80) ^ uVar36 ^ uVar23 ^ uVar34 ^ uVar39
  ;
  uVar10 = DAT_1826715d0;
  uVar36 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x39c0a8dd)) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0x2f6b2148)) ^ uVar38) +
       (*(ulonglong *)(lVar2 + -0x3b8) ^ uVar27) ^ uVar36;
  uVar30 = CONCAT44(DAT_182671654,DAT_182671654);
  *(ulonglong *)(lVar2 + -0xa88) = (*(ulonglong *)(lVar2 + -0x3b8) ^ uVar27) << 0x25 ^ uVar30;
  uVar25 = CONCAT44(DAT_182671750,DAT_182671750);
  *(ulonglong *)(lVar2 + -0xa60) =
       (*(ulonglong *)(lVar2 + -0x3b8) ^ uVar27) >> ((bVar16 ^ 0x39) & 0x3f) ^ uVar25;
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x42354d3d)) =
       (*(ulonglong *)(lVar2 + -0x3f0) ^ uVar23) >> (((byte)*puVar19 ^ (byte)uVar10) & 0x3f);
  uVar27 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(DAT_182671560 + -0x670) =
       (*(ulonglong *)(DAT_182671560 + -0xa88) ^ uVar30 |
       *(ulonglong *)(DAT_182671560 + -0xa60) ^ uVar25) ^ uVar27;
  lVar1 = DAT_182671560;
  uVar25 = CONCAT44(DAT_18267181c,DAT_18267181c);
  uVar30 = CONCAT44(DAT_182671620,DAT_182671620);
  uVar27 = *puVar43 ^ uVar25 ^ uVar27 ^ uVar36 ^ *(ulonglong *)(DAT_182671560 + -0x638);
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar27;
  *puVar45 = (uVar27 ^ uVar25) + (CONCAT44(uVar8,uVar7) ^ 0xda84a7085ab1595) ^ uVar30;
  uVar10 = DAT_1826718b4;
  uVar4 = DAT_18267156c;
  uVar25 = (CONCAT44(uVar31,DAT_18267156c) ^ 0xc9f00c21b8a5513a) +
           (*(ulonglong *)(lVar1 + -0x80) ^ uVar39);
  *(ulonglong *)(lVar1 + -0xc08) = uVar25 ^ CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar38 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x42354b85)) =
       (*(ulonglong *)(lVar1 + -0x9f8) ^ uVar30) + uVar25 ^ uVar38;
  lVar1 = DAT_182671560;
  uVar27 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(DAT_182671560 + -0x800) =
       (*(ulonglong *)(DAT_182671560 + -0x9f8) ^ uVar30) << ((local_res18 ^ 0xe6) & 0x3f) ^ uVar27;
  uVar10 = DAT_182671738;
  uVar9 = DAT_1826715a8;
  uVar39 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a8 ^ 0xef6bbdfe)) =
       (*(ulonglong *)(lVar1 + -0x9f8) ^ uVar30) >> (((byte)uVar7 ^ 0xb0) & 0x3f) ^ uVar39;
  *(ulonglong *)(DAT_182671560 + -0x5c8) =
       (CONCAT44(uVar29,uVar13) ^ 0x736eb1408c7de625) >> (((byte)uVar4 ^ 0x22) & 0x3f);
  lVar1 = DAT_182671560;
  uVar25 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  puVar43 = (ulonglong *)(DAT_182671560 + -0x1f0);
  *(ulonglong *)(DAT_182671560 + -0x688) =
       (*(ulonglong *)(DAT_182671560 - (uVar24 ^ 0x2eb040e3)) ^ uVar27 |
       *(ulonglong *)(DAT_182671560 + -0xa80) ^ uVar39) ^ uVar25;
  *(ulonglong *)(lVar1 + -0xa0) = *puVar43 ^ uVar38 | uVar35 ^ *(ulonglong *)(lVar1 + -0x1d8);
  lVar2 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671800,DAT_182671800);
  uVar25 = *(ulonglong *)(lVar1 - (uVar21 ^ 0x39c0a86d)) ^ *(ulonglong *)(DAT_182671560 + -0x1f0) ^
           uVar30 ^ uVar25 ^ uVar38;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar25;
  uVar11 = DAT_1826717ec;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (CONCAT44(uVar8,uVar13) ^ 0xc874a1c88fa55ca2) << ((bVar16 ^ 0x27) & 0x3f);
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (CONCAT44(uVar3,uVar9) ^ 0xc839c207e8f40151) + (*(ulonglong *)(lVar2 + -0x3f0) ^ uVar23) ^
       uVar35;
  *(ulonglong *)(lVar2 + -0x610) = CONCAT44(uVar6,uVar31) ^ uVar25 ^ uVar30 ^ 0x263357ebe944dd3a;
  uVar25 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar2 + -0x3b8) =
       (CONCAT44(uVar8,uVar6) ^ 0x65f89729a14b3a44) + (uVar36 ^ *(ulonglong *)(lVar2 + -0x638)) ^
       uVar25;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x2eb04fab)) =
       (*(ulonglong *)(lVar2 + -0x800) ^ uVar27) >>
       ((*(byte *)(lVar2 + -0xa80) ^ (byte)uVar10) & 0x3f);
  uVar10 = DAT_182671724;
  *(ulonglong *)(lVar2 + -0xa88) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0xbf0)) + (*(ulonglong *)(lVar2 + -0x3b8) ^ uVar25) ^
       uVar34;
  uVar36 = (uVar35 ^ *(ulonglong *)(lVar2 + -0xbf0)) << ((bVar32 ^ 0xe8) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa60) = uVar36 ^ CONCAT44(uVar10,uVar10);
  uVar11 = DAT_182671864;
  uVar4 = DAT_1826715a8;
  uVar3 = DAT_18267156c;
  uVar21 = (ulonglong)DAT_1826715a0;
  uVar24 = (ulonglong)DAT_1826715a8;
  uVar23 = (uVar35 ^ *(ulonglong *)(lVar2 + -0xbf0)) >> (((byte)DAT_1826715a0 ^ 0x47) & 0x3f);
  uVar25 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 + -0x670) =
       (CONCAT44(uVar13,uVar5) ^ 0xb195f4a62b22effa) << ((local_res20 ^ 0xd5) & 0x3f);
  uVar10 = DAT_18267168c;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x600) = uVar23 ^ uVar35;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xe348b0ae)) = (uVar36 | uVar23) ^ uVar27;
  lVar1 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xc08) =
       CONCAT44(uVar29,uVar4) ^ uVar35 ^ *(ulonglong *)(DAT_182671560 + -0x600) ^ 0x9a65fa0342a7879d
  ;
  uVar35 = CONCAT44(DAT_1826717f4,DAT_1826717f4);
  *(ulonglong *)(lVar1 + -0x5c8) = (*(ulonglong *)(lVar1 + -0x80) ^ uVar27) + 0x1ea53d0690976599;
  uVar25 = *(ulonglong *)(lVar1 + -0x80) ^ *(ulonglong *)(lVar1 + -0xa88) ^ uVar35 ^ uVar27 ^ uVar34
  ;
  uVar27 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar1 + -0x9f8) = uVar25;
  *(ulonglong *)(lVar1 + -0x1d8) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0x723f5a67)) ^ uVar38) + (uVar25 ^ uVar35) ^ uVar27;
  bVar16 = (byte)uVar3;
  *(byte *)(lVar1 - (uVar26 ^ 0x423546ec)) =
       *(byte *)(*(ulonglong *)(lVar1 - (uVar28 ^ 0x8dbb6e53)) ^ (ulonglong)DAT_182671604) ^
       (byte)DAT_1826717c0;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar1 + -0xa0) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0x723f526f)) ^ uVar35) << ((bVar32 ^ 0xe7) & 0x3f) ^ uVar44
  ;
  uVar20 = (ulonglong)DAT_1826715bc;
  uVar28 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  *puVar42 = (*(ulonglong *)(lVar2 + -0x9f8) ^ uVar35) >> ((bVar16 ^ 0x3c) & 0x3f) ^ uVar28;
  uVar25 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0xa0) | *(ulonglong *)(lVar2 + -0x688) ^ uVar28) ^ uVar25;
  *(ulonglong *)(lVar2 + -0x3f0) =
       *(ulonglong *)(lVar2 - (uVar41 ^ 0x5db15c71)) ^ *(ulonglong *)(lVar2 - (uVar21 ^ 0x2f6b2680))
       ^ uVar37 ^ uVar25 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xe348b336)) ^ uVar30) +
       (*(ulonglong *)(lVar2 + -0xa88) ^ uVar34) ^ CONCAT44(DAT_182671698,DAT_182671698);
  uVar25 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  *(uint *)(lVar2 + -0x374) = *(uint *)(*(ulonglong *)(lVar2 + -0x740) ^ uVar20) ^ DAT_1826717c0;
  uVar10 = DAT_182671640;
  uVar34 = (*(ulonglong *)(lVar2 - (uVar22 ^ 0xf5fefae7)) ^ uVar30) << ((local_res20 ^ 0xe7) & 0x3f)
  ;
  *(ulonglong *)(lVar2 + -0x638) = uVar34 ^ uVar25;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x800) =
       (*(ulonglong *)(lVar2 + -0x318) ^ uVar30) >> ((bVar16 ^ 0x1a) & 0x3f) ^ uVar28;
  uVar10 = DAT_182671740;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x423540f5)) = uVar34 | 0x8380725e31ab0f68;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x5db15d81)) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0xef6bbf7e)) ^ uVar28 |
       uVar25 ^ *(ulonglong *)(lVar2 + -0x638)) ^ CONCAT44(uVar10,uVar10);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar14;
  return;
}



############ FUN_ 180e89440 size=5474 ############

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

void FUN_180e89440(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  ulonglong *puVar14;
  byte *pbVar15;
  byte bVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_res18;
  byte local_res20;
  
  uVar31 = _DAT_1826715e0;
  uVar4 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar30 = (ulonglong)DAT_18267157c;
  uVar19 = (ulonglong)DAT_18267157c;
  uVar18 = (DAT_18267157c << 0x10 | DAT_18267157c & 0xff00) << 8 | DAT_18267157c >> 8 & 0xff00 |
           DAT_18267157c >> 0x18;
  uVar27 = (ulonglong)uVar18;
  uVar1 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_18267157c ^ 0x300a112a) + (longlong)DAT_182671b40);
  uVar13 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar18 ^ 0x22110a20) + (longlong)DAT_182671b40) ^
           DAT_18267157c;
  uVar17 = (ulonglong)DAT_182671740;
  uVar37 = CONCAT44(DAT_182671620,DAT_182671620);
  uVar21 = CONCAT44(DAT_182671740,DAT_182671740);
  uVar32 = (CONCAT44(DAT_182671768,DAT_182671768) ^ *(ulonglong *)(DAT_182671560 + -0x688) |
           CONCAT44(DAT_182671698,DAT_182671698) ^ *(ulonglong *)(DAT_182671560 + -0xbf0)) ^ uVar37;
  DAT_1826715a4 = uVar18;
  *(ulonglong *)(DAT_182671560 + -0x3b8) = uVar32;
  uVar7 = DAT_182671708;
  uVar20 = CONCAT44(uVar31,uVar31);
  uVar32 = uVar20 ^ uVar21 ^ uVar32 ^ uVar37 ^ *(ulonglong *)(lVar2 + -0xa60);
  uVar33 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(lVar2 + -0x638) = uVar32;
  uVar5 = DAT_182671588;
  uVar24 = CONCAT44(uVar7,uVar7);
  uVar41 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x22110ab0)) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x300a1d2a)) ^ uVar33) + (uVar21 ^ uVar32) ^ uVar24;
  uVar10 = DAT_1826715ac;
  uVar32 = (ulonglong)DAT_1826715ac;
  uVar36 = uVar5 | DAT_1826715ac;
  uVar29 = (ulonglong)DAT_1826715ac;
  uVar28 = CONCAT44(DAT_1826715ac,uVar5);
  uVar19 = (*(ulonglong *)(lVar2 + -0x638) ^ uVar21) << (((byte)uVar5 ^ 0xb9) & 0x3f);
  DAT_1826715b0 = uVar36;
  *(ulonglong *)(lVar2 + -0x748) = uVar19 ^ CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar7 = DAT_1826718d4;
  uVar31 = _DAT_18267188c;
  uVar42 = (ulonglong)_DAT_18267188c;
  uVar22 = CONCAT44(DAT_182671734,DAT_182671734);
  uVar34 = (*(ulonglong *)(lVar2 + -0x638) >> 0x20 ^ uVar17) >> 0x1b;
  *(ulonglong *)(lVar2 + -0xa80) = uVar34 ^ uVar22;
  uVar17 = CONCAT44(uVar7,uVar7);
  uVar23 = (ulonglong)uVar36;
  uVar19 = (uVar34 | uVar19) ^ uVar17;
  uVar34 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar2 + -0x600) = uVar19;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0xa0) = uVar34 ^ uVar17 ^ uVar24 ^ *(ulonglong *)(lVar2 + -0x80) ^ uVar19;
  uVar40 = CONCAT44(_DAT_182671838,_DAT_182671838);
  *(ulonglong *)(lVar3 + -0x5c8) =
       (CONCAT44(uVar31,uVar31) ^ *(ulonglong *)(lVar3 + -0x3f0)) +
       (uVar20 ^ *(ulonglong *)(lVar3 + -0xa60)) ^ uVar40;
  uVar19 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x1f841944)) =
       (CONCAT44(uVar31,uVar31) ^ *(ulonglong *)(lVar3 + -0x3f0)) << (((byte)uVar5 ^ 0x99) & 0x3f) ^
       uVar19;
  uVar7 = DAT_1826717dc;
  uVar17 = CONCAT44(DAT_18267162c,DAT_18267162c);
  *(ulonglong *)(lVar3 + -0x6b8) =
       ((ulonglong)(uVar31 >> 0x1b) | uVar42 << 5) ^ *(ulonglong *)(lVar3 + -0x3f0) >> 0x1b ^ uVar17
  ;
  lVar2 = DAT_182671560;
  uVar20 = CONCAT44(uVar7,uVar7);
  uVar19 = (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xdfee537d)) ^ uVar17 |
           *(ulonglong *)(DAT_182671560 - (uVar23 ^ 0xdfee5c05)) ^ uVar19) ^ uVar20;
  uVar24 = uVar24 ^ *(ulonglong *)(DAT_182671560 + -0x80);
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar19;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x318) = uVar24 - (uVar28 ^ 0x9f23c42853146187);
  uVar17 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *(ulonglong *)(lVar2 + -0x670) =
       uVar17 ^ uVar20 ^ uVar40 ^ uVar19 ^ *(ulonglong *)(lVar2 + -0x5c8);
  uVar11 = DAT_182671798;
  uVar20 = CONCAT44(DAT_182671784,DAT_182671784);
  uVar28 = (ulonglong)DAT_182671604;
  uVar17 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar36 ^ 0xdfee538d)) ^ uVar17) +
           (CONCAT44(uVar5,uVar5) ^ 0x75553267943aa853);
  *(ulonglong *)(lVar3 + -0xa88) = uVar17 ^ uVar20;
  lVar2 = DAT_182671560;
  puVar35 = (ulonglong *)(DAT_182671560 + -0x5b8);
  uVar24 = (CONCAT44(uVar36,uVar10) ^ 0xff13dc305b2525f7) + uVar24;
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar24 ^ CONCAT44(uVar11,uVar11);
  uVar7 = DAT_1826717ec;
  *(byte *)(lVar2 + -0x309) = *(byte *)(*puVar35 ^ uVar28) ^ (byte)DAT_1826717c0;
  uVar12 = DAT_1826717d4;
  uVar19 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x1d8) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0x1f841a34)) ^ uVar20) + uVar24 ^ uVar19;
  bVar25 = (byte)uVar10;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0x300a10d2)) =
       uVar17 << ((bVar25 ^ 0xdc) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  uVar7 = DAT_1826718bc;
  lVar2 = DAT_182671560;
  uVar17 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  bVar26 = (byte)uVar4;
  *(ulonglong *)(DAT_182671560 + -0xbf0) =
       (*(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xdfee5f4d)) ^ uVar20) >> ((bVar26 ^ 5) & 0x3f) ^
       uVar17;
  uVar24 = CONCAT44(uVar7,uVar7);
  puVar14 = (ulonglong *)(DAT_182671560 - (uVar27 ^ 0x22110be8));
  uVar17 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0xdfee5e35)) ^ uVar17 |
           CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x1f0)) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x688) = uVar17;
  lVar2 = DAT_182671560;
  uVar38 = (ulonglong)DAT_182671830;
  uVar42 = CONCAT44(DAT_182671830,DAT_182671830);
  puVar35 = (ulonglong *)(DAT_182671560 + -0x5b8);
  *(ulonglong *)(DAT_182671560 + -0x3b8) = *puVar14 ^ uVar42 ^ uVar17 ^ uVar24 ^ uVar19;
  uVar31 = DAT_182671588;
  *(byte *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x1f841735)) =
       *(byte *)(*puVar35 ^ uVar28) ^ (byte)DAT_1826717c0;
  uVar28 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(lVar2 + -0xc08) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0xa0)) + (CONCAT44(uVar36,uVar5) ^ 0xa26b87a1a9025bb0) ^
       uVar28;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xdfee53fd)) =
       (CONCAT44(uVar18,uVar4) ^ 0x956eb1bdfdc39883) + 0xa2ecb9a0b4699fbd;
  uVar7 = DAT_182671764;
  uVar17 = (CONCAT44(uVar5,uVar36) ^ 0xfbd34190ba1cbb26) + (uVar40 ^ *(ulonglong *)(lVar2 + -0x5c8))
  ;
  *(ulonglong *)(lVar2 + -0x748) = uVar17 ^ CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar20 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xa80) = (uVar28 ^ *(ulonglong *)(lVar2 + -0xc08)) + uVar17 ^ uVar20;
  puVar14 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671580 ^ 0xf5feffff));
  *puVar14 = (CONCAT44(uVar4,uVar31) ^ 0xd392ef4c4ae6f21e) >>
             ((*(byte *)(lVar2 - (uVar23 ^ 0xdfee540d)) ^ (byte)uVar12) & 0x3f);
  uVar7 = DAT_182671828;
  lVar2 = DAT_182671560;
  uVar17 = CONCAT44(DAT_182671668,DAT_182671668);
  uVar24 = (uVar28 ^ *(ulonglong *)(DAT_182671560 + -0xc08)) << ((bVar25 ^ 0xe4) & 0x3f);
  uVar28 = (uVar28 ^ *(ulonglong *)(DAT_182671560 + -0xc08)) >> ((bVar26 ^ 0x3d) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa60) = uVar24 ^ CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(lVar2 + -0x3f0) = uVar28 ^ uVar17;
  uVar24 = (uVar28 | uVar24) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x9f8) = uVar24;
  lVar3 = DAT_182671560;
  uVar17 = CONCAT44(uVar7,uVar7);
  uVar21 = *(ulonglong *)(lVar2 - (uVar30 ^ 0x300a1ba2)) ^ uVar17 ^ uVar20 ^ uVar24 ^ uVar21;
  uVar29 = CONCAT44(DAT_182671644,DAT_182671644);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar21;
  uVar28 = (uVar17 ^ uVar21) + (uVar19 ^ *(ulonglong *)(lVar3 + -0x1d8)) ^ uVar29;
  local_res18 = (byte)(uVar4 >> 0x18);
  *(ulonglong *)(lVar3 + -0x318) = uVar28;
  uVar7 = DAT_1826716ac;
  uVar21 = (uVar17 ^ uVar21) << ((local_res18 ^ 0x1e) & 0x3f);
  puVar35 = (ulonglong *)(DAT_182671560 + -0x6b8);
  *(ulonglong *)(DAT_182671560 + -0x610) = uVar21 ^ CONCAT44(DAT_182671658,DAT_182671658);
  lVar2 = DAT_182671560;
  uVar17 = (uVar17 ^ *puVar35) >> (((byte)uVar31 ^ 0xae) & 0x3f);
  uVar24 = CONCAT44(uVar7,uVar7);
  pbVar15 = (byte *)(DAT_182671560 - (uVar30 ^ 0x300a1922));
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar17 ^ uVar24;
  uVar7 = DAT_1826715c0;
  uVar9 = DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x80) = uVar17 << ((*pbVar15 ^ (byte)uVar11) & 0x3f);
  uVar4 = DAT_182671588;
  uVar19 = CONCAT44(uVar7,uVar7);
  uVar41 = (ulonglong)DAT_182671588;
  uVar17 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x1f8416cc)) ^ uVar24 | uVar21) ^
           uVar19;
  uVar21 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar2 + -0xa88) = uVar17;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0xca354485)) =
       uVar21 ^ uVar17 ^ uVar19 ^ uVar29 ^ uVar28;
  uVar11 = DAT_1826716a4;
  *(ulonglong *)(lVar2 + -0x688) =
       (CONCAT44(uVar10,uVar10) ^ 0xafb14778cd340991) + (CONCAT44(uVar9,uVar4) ^ 0x5e3886b0589c4b4b)
  ;
  uVar7 = DAT_18267160c;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xa0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671584 ^ 0x10070b0a)) ^ uVar20) +
       (uVar42 ^ *(ulonglong *)(lVar2 + -0x3b8)) ^ uVar28;
  uVar11 = DAT_182671890;
  uVar40 = (*(ulonglong *)(lVar2 - (uVar27 ^ 0x22110988)) ^ uVar42) << ((local_res18 ^ 0x3c) & 0x3f)
  ;
  *(ulonglong *)(lVar2 + -0x638) = uVar40 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671778;
  uVar31 = DAT_182671574;
  lVar3 = DAT_182671560;
  uVar39 = (ulonglong)DAT_182671574;
  uVar42 = CONCAT44(uVar11,uVar11);
  uVar17 = (*(ulonglong *)(lVar2 + -0x3b8) >> 0x20 ^ uVar38) >> 0x14;
  *(ulonglong *)(lVar2 + -0x5c8) = uVar17 ^ uVar42;
  uVar6 = DAT_18267158c;
  uVar20 = CONCAT44(uVar7,uVar7);
  uVar19 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0x42354d3d)) = (uVar40 | uVar17) ^ uVar20;
  uVar7 = DAT_18267179c;
  uVar40 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  uVar17 = *(ulonglong *)(lVar2 - (uVar19 ^ 0x8a0107b0)) ^ uVar40 ^ uVar20 ^ uVar28 ^
           *(ulonglong *)(lVar2 + -0x748);
  uVar20 = CONCAT44(DAT_18267182c,DAT_18267182c);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar17;
  *(ulonglong *)(lVar2 + -0x600) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x318)) + (uVar17 ^ uVar40) ^ uVar20;
  uVar8 = DAT_182671598;
  uVar4 = DAT_182671570;
  local_res20 = (byte)uVar36;
  uVar29 = (*(ulonglong *)(lVar3 - (uVar39 ^ 0x2eb04913)) ^ uVar40) << ((local_res20 ^ 199) & 0x3f);
  uVar40 = (uVar40 ^ *(ulonglong *)(lVar3 + -0x1f0)) >> (((byte)uVar6 ^ 0xd9) & 0x3f);
  uVar19 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar3 + -0xc08) = uVar29 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671628;
  uVar17 = CONCAT44(uVar4,DAT_182671590);
  *(ulonglong *)(lVar3 + -0x3f0) = uVar40 ^ uVar19;
  uVar19 = CONCAT44(uVar7,uVar7);
  uVar39 = (ulonglong)DAT_1826715cc;
  uVar38 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x1f841adc)) = (uVar29 | uVar40) ^ uVar19;
  uVar4 = DAT_182671568;
  uVar29 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar3 + -0x9f8) =
       uVar17 ^ 0x9b292b780351517 | uVar42 ^ *(ulonglong *)(lVar3 + -0x5c8);
  uVar6 = DAT_1826715a0;
  uVar17 = (ulonglong)_DAT_1826715e0;
  *(ulonglong *)(lVar3 + -0x1d8) =
       uVar38 ^ uVar19 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0x600) ^ *(ulonglong *)(lVar3 + -0xa60);
  *(byte *)(lVar3 + -0x7a1) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xc80) ^ uVar17) ^ (byte)DAT_1826717c0;
  lVar2 = DAT_182671560;
  puVar35 = (ulonglong *)(lVar3 - (uVar23 ^ 0xdfee5e0d));
  uVar40 = CONCAT44(DAT_182671790,DAT_182671790);
  uVar17 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar6 ^ 0x256a27e0)) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x42354ad5)) ^ uVar28) + (uVar21 ^ *puVar35) ^ uVar40;
  uVar28 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x42354275)) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0x8a010ce0)) ^ uVar21) <<
       (((byte)DAT_182671580 ^ 0xe9) & 0x3f) ^ uVar28;
  uVar7 = DAT_1826716e8;
  *(ulonglong *)(lVar2 + -0x80) =
       CONCAT44(uVar5,uVar10) ^ CONCAT44(uVar9,DAT_182671570) ^ 0x3522fe40ed6134fe;
  uVar11 = DAT_18267170c;
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar2 + -0xbf0)) >> ((local_res18 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar2 + -0x610) = uVar21 ^ CONCAT44(uVar7,uVar7);
  uVar4 = DAT_18267156c;
  uVar41 = (ulonglong)DAT_18267156c;
  uVar19 = CONCAT44(uVar11,uVar11);
  uVar17 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x300a1752)) =
       (*(ulonglong *)(lVar2 + -0x800) ^ uVar28 | uVar21) ^ uVar19;
  uVar28 = CONCAT44(DAT_182671884,DAT_182671884);
  uVar21 = uVar40 ^ *(ulonglong *)(lVar2 + -0x670) ^ uVar28 ^ uVar19 ^
           *(ulonglong *)(lVar2 + -0x6b8);
  uVar19 = CONCAT44(DAT_18267169c,DAT_18267169c);
  *(ulonglong *)(lVar2 + -0xa88) = uVar21;
  uVar7 = DAT_182671650;
  *(ulonglong *)(lVar2 + -0x688) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0xc555e457)) ^ uVar28) +
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x600)) ^ uVar19;
  uVar6 = DAT_182671584;
  uVar20 = CONCAT44(uVar7,uVar7);
  bVar16 = (byte)DAT_182671580;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xf681fe30)) =
       (uVar28 ^ uVar21) << (((byte)uVar4 ^ 0x90) & 0x3f) ^ uVar20;
  uVar17 = CONCAT44(_DAT_182671618,_DAT_182671618);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a8 ^ 0x8a0104a8)) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xa88)) >> ((bVar16 ^ 0xdf) & 0x3f) ^ uVar17;
  uVar7 = DAT_182671878;
  lVar3 = DAT_182671560;
  uVar21 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar2 + -0x638) =
       (*(ulonglong *)(lVar2 + -0x3b8) ^ uVar17 | *(ulonglong *)(lVar2 + -0xa80) ^ uVar20) ^ uVar21;
  uVar11 = DAT_18267174c;
  uVar41 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x748) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0xfffff977)) ^
       *(ulonglong *)(lVar3 - (uVar23 ^ 0xdfee53c5)) ^ uVar41 ^ uVar21 ^ uVar19;
  uVar7 = DAT_182671714;
  uVar21 = CONCAT44(uVar11,uVar11);
  uVar28 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671578 ^ 0xca354ead)) ^ uVar38) +
           (*(ulonglong *)(lVar3 - (uVar29 ^ 0x42354ccd)) ^ uVar40) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x318) = uVar28;
  uVar9 = DAT_182671598;
  uVar20 = (ulonglong)DAT_182671598;
  uVar17 = CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar29 = (uVar38 ^ *(ulonglong *)(lVar3 + -0x1d8)) << ((local_res20 ^ 0xdd) & 0x3f);
  *(ulonglong *)(lVar3 + -0x1f0) = uVar29 ^ CONCAT44(uVar7,uVar7);
  uVar36 = DAT_1826715a8;
  *(ulonglong *)(lVar3 + -0xc08) = *(ulonglong *)(lVar3 + -0x1d8) >> 0x20 ^ uVar39 ^ uVar17;
  uVar5 = DAT_182671578;
  uVar17 = (*(ulonglong *)(lVar3 - (uVar20 ^ 0xfffff3f7)) ^ uVar17 | uVar29) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x3f0) = uVar17;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xf681f178)) =
       uVar22 ^ uVar28 ^ uVar37 ^ uVar17 ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x300a18da)) =
       CONCAT44(uVar10,uVar36) ^ 0x6feeb78b79ff0fdc | uVar22 ^ *(ulonglong *)(lVar3 + -0x5c8);
  uVar29 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(lVar3 + -0xa60) =
       (CONCAT44(uVar31,uVar4) ^ 0xcae719cf93731a6b) + (uVar22 ^ *(ulonglong *)(lVar3 + -0x5c8)) ^
       uVar29;
  uVar10 = DAT_1826715a0;
  uVar4 = DAT_182671580;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a0 ^ 0x256a21f8)) =
       CONCAT44(uVar5,DAT_182671580) ^ uVar22 ^ *(ulonglong *)(lVar3 + -0x5c8) ^ 0x486d83a1840608a0;
  uVar7 = DAT_182671590;
  uVar31 = DAT_182671588 ^ 0xc4ee0876;
  uVar28 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  uVar17 = (CONCAT44(uVar8,uVar9) ^ 0xbbb49835a4121eeb) + (*(ulonglong *)(lVar2 + -0x688) ^ uVar19);
  *(ulonglong *)(lVar2 + -0x80) = uVar17 ^ uVar28;
  *(uint *)(lVar2 + -0x844) = *(int *)(lVar2 - (uVar27 ^ 0x22110320)) * uVar31;
  *(ulonglong *)(lVar2 + -0xbf0) = uVar17 + (uVar29 ^ *(ulonglong *)(lVar2 + -0xa60)) ^ uVar33;
  uVar31 = DAT_182671584;
  uVar22 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671574 ^ 0x2eb04ef3)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0xa60)) << (((byte)uVar7 ^ 0x5d) & 0x3f) ^ uVar22;
  uVar19 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar2 + -0x800) =
       (*(ulonglong *)(lVar2 + -0x80) ^ uVar28) << (((byte)uVar31 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xfffff98f)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0xa60)) >> ((bVar26 ^ 0x10) & 0x3f) ^ uVar19;
  *(uint *)(lVar2 + -0x678) =
       (DAT_18267158c ^ 0x87c0ce7c) << ((byte)*(undefined4 *)(lVar2 + -0x5cc) & 0x1f);
  uVar17 = CONCAT44(DAT_182671680,DAT_182671680);
  *puVar14 = (*(ulonglong *)(lVar2 + -0x670) ^ uVar19 | *(ulonglong *)(lVar2 + -0x610) ^ uVar22) ^
             uVar17;
  *(ulonglong *)(lVar2 + -0xa88) =
       CONCAT44(_DAT_182671868,_DAT_182671868) ^ *(ulonglong *)(lVar2 + -0xbf0) ^ uVar33 ^
       *(ulonglong *)(lVar2 + -0x600) ^ uVar17;
  uVar11 = DAT_1826717b4;
  uVar17 = (CONCAT44(uVar18,uVar5) ^ 0x9607819cdaaf95f) + (*(ulonglong *)(lVar2 + -0x748) ^ uVar41);
  *(ulonglong *)(lVar2 + -0xa80) = uVar17 ^ uVar42;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar21 = (CONCAT44(uVar6,uVar5) ^ 0x9cb1365a2b0b503) + (*(ulonglong *)(lVar2 + -0x318) ^ uVar21);
  *(ulonglong *)(lVar2 + -0x3b8) = uVar21 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x638) = uVar17 + uVar21 ^ uVar34;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xdfee5345)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar36 ^ 0x8a010160)) ^ uVar19 |
       uVar29 ^ *(ulonglong *)(lVar2 + -0xa60);
  uVar11 = DAT_18267168c;
  uVar19 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0xdfee5f45)) ^ uVar42) <<
           (((byte)uVar10 ^ 0x48) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar19 ^ CONCAT44(DAT_18267185c,DAT_18267185c);
  uVar20 = (ulonglong)DAT_1826715b4;
  uVar17 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0xdfee5f7d)) ^ uVar42) >> (((byte)uVar7 ^ 99) & 0x3f);
  uVar32 = CONCAT44(DAT_182671818,DAT_182671818);
  *(ulonglong *)(lVar2 + -0xc08) = uVar17 ^ CONCAT44(uVar11,uVar11);
  uVar21 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  *(ulonglong *)(lVar2 + -0x1f0) = (uVar17 | uVar19) ^ uVar32;
  uVar32 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671570 ^ 0xd094d957)) ^ uVar34 ^
           *(ulonglong *)(lVar2 + -0x638) ^ uVar21 ^ uVar32;
  *(ulonglong *)(lVar2 + -0x3f0) = uVar32;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x3aaa18d8)) = (uVar32 ^ uVar21) + (*puVar35 ^ uVar33) ^ uVar24;
  uVar19 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xdfee5035)) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x3f0)) << 0x34 ^ uVar19;
  uVar32 = CONCAT44(DAT_182671794,DAT_182671794);
  *(uint *)(lVar2 + -0x47c) = (uVar4 ^ 0xfc09df2a) + *(int *)(lVar2 + -0x5cc);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x3aaa1180)) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x3f0)) >> ((bVar25 ^ 0xc9) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar2 + -0x688) = uVar19 ^ *(ulonglong *)(lVar2 + -0x5c8) ^ 0x5911d678476c24f2;
  uVar17 = CONCAT44(DAT_182671848,DAT_182671848);
  *(undefined8 *)(lVar2 + -0x800) = 0x78f2a2093b16c9cf;
  uVar19 = (uVar19 ^ *(ulonglong *)(lVar2 + -0x5c8) | *(ulonglong *)(lVar2 + -0xa0) ^ uVar32) ^
           uVar17;
  *(ulonglong *)(lVar2 + -0x80) = uVar19;
  uVar32 = *(ulonglong *)(lVar2 + -0x9f8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar18;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x22110c20)) = uVar24 ^ uVar19 ^ uVar17 ^ uVar32 ^ uVar28;
  return;
}



############ FUN_ 180e8cbc0 size=5672 ############

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

void FUN_180e8cbc0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  undefined8 *puVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong *puVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  uint uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  byte bVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  uint uVar56;
  uint uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  byte local_128;
  byte local_108;
  
  uVar18 = DAT_1826715a8;
  uVar6 = DAT_182671588;
  uVar27 = DAT_182671568;
  uVar50 = (ulonglong)DAT_182671568;
  uVar34 = DAT_182671568 ^ DAT_182671580;
  uVar61 = (ulonglong)DAT_182671588;
  uVar30 = DAT_182671570 ^ DAT_182671588;
  uVar26 = DAT_182671594 - DAT_1826715b0;
  uVar44 = DAT_1826718a0 | DAT_182671648;
  uVar56 = (DAT_1826715a8 << 0x10 | DAT_1826715a8 & 0xff00) << 8 | DAT_1826715a8 >> 8 & 0xff00 |
           DAT_1826715a8 >> 0x18;
  uVar11 = DAT_182671620 - DAT_1826716ac;
  uVar57 = *(uint *)(&DAT_182611e78 + DAT_182671b4c) ^ DAT_182671594;
  uVar12 = *(uint *)(&DAT_182611e80 + DAT_182671b4c) ^ DAT_1826715b0;
  uVar13 = DAT_182671648 & 0xff;
  DAT_182671648 = ((DAT_182671648 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar32 = CONCAT44(DAT_182671814,DAT_182671814);
  uVar39 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar21 = CONCAT44(DAT_182671648,DAT_182671648);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x628);
  uVar37 = (ulonglong)uVar26;
  puVar22 = (ulonglong *)(DAT_182671560 - (uVar37 ^ 0x8affd5ef));
  DAT_18267156c = uVar56;
  DAT_18267157c = uVar30;
  DAT_18267158c = uVar26;
  DAT_1826715a4 = uVar34;
  *puVar22 = uVar21 ^ uVar39 ^ uVar32 ^ *puVar1 ^ *(ulonglong *)(DAT_182671560 + -0x1f0);
  uVar7 = DAT_182671594;
  uVar23 = (ulonglong)uVar18;
  uVar41 = (ulonglong)DAT_182671594;
  *(uint *)(DAT_182671560 - (uVar23 ^ 0xe289e428)) =
       (DAT_182671594 ^ 0x73c70b06) + (uVar56 ^ 0x737821f5);
  lVar4 = DAT_182671560;
  uVar14 = uVar44 & 0xff;
  uVar44 = uVar44 << 8;
  DAT_18267176c = ((uVar44 | uVar14) << 8 | uVar14) << 8 | uVar14;
  puVar19 = (ulonglong *)(DAT_182671560 + -0x6b8);
  uVar31 = (ulonglong)uVar30;
  uVar55 = (ulonglong)DAT_18267176c;
  uVar51 = CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar48 = (ulonglong)uVar56;
  puVar45 = (ulonglong *)(DAT_182671560 - (uVar48 ^ 0x40ed800a));
  bVar20 = (byte)uVar30;
  uVar13 = DAT_1826718a0 & 0xff;
  *puVar45 = (uVar21 ^ *puVar19) >> ((bVar20 ^ 0x4a) & 0x3f) ^ uVar51;
  uVar17 = DAT_182671580;
  uVar52 = (ulonglong)uVar34;
  DAT_1826718a0 = ((DAT_1826718a0 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar53 = (ulonglong)DAT_182671580;
  uVar35 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  puVar2 = (ulonglong *)(lVar4 + -0xa88);
  *(ulonglong *)(DAT_182671560 - (uVar52 ^ 0x55edcd3d)) =
       (uVar21 ^ *puVar19) << (((byte)uVar6 ^ 0x3d) & 0x3f) ^ uVar35;
  uVar13 = DAT_182671830 >> 0x10 & 0xff;
  DAT_18267179c = (((DAT_182671830 >> 0x10) << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar28 = CONCAT44(DAT_18267179c,DAT_18267179c);
  *puVar2 = (*(ulonglong *)(lVar4 - (uVar53 ^ 0x25cee4bd)) ^ uVar51 |
            uVar35 ^ *(ulonglong *)(lVar4 + -0x318)) ^ uVar28;
  puVar24 = (ulonglong *)(lVar4 - (uVar61 ^ 0x69f96f95));
  uVar15 = DAT_1826716ac & 0xff;
  uVar29 = CONCAT44(DAT_182671778,DAT_182671778);
  *(ulonglong *)(lVar4 + -0x1f0) = (uVar32 ^ *puVar1) - (uVar28 ^ *puVar24) ^ uVar21;
  uVar13 = DAT_182671570;
  DAT_1826716ac = ((DAT_1826716ac << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar46 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  uVar59 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar58 = (ulonglong)DAT_182671570;
  uVar32 = uVar29 ^ uVar59 ^ uVar46 ^ *(ulonglong *)(lVar4 + -0x898) ^
           *(ulonglong *)(lVar4 + -0x2a0);
  uVar29 = CONCAT44(uVar18,DAT_182671570);
  *puVar19 = uVar32;
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar29 ^ 0x9967774fe09b4ff8) - (CONCAT44(uVar34,uVar7) ^ 0xf906fb200189aa26);
  lVar4 = DAT_182671560;
  uVar15 = DAT_182671830 & 0xff;
  DAT_182671830 = ((DAT_182671830 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  bVar40 = (byte)uVar26;
  uVar38 = CONCAT44(DAT_182671830,DAT_182671830);
  *(ulonglong *)(DAT_182671560 - (uVar37 ^ 0x8affd04f)) =
       (uVar32 ^ uVar59) >> ((bVar40 ^ 0x77) & 0x3f) ^ uVar38;
  uVar15 = uVar11 & 0xff;
  DAT_1826716e4 = ((uVar11 * 0x100 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar29 = (uVar59 ^ *puVar19) << 0x20;
  uVar33 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *puVar1 = uVar29 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x2a0) =
       *(ulonglong *)(lVar4 - (uVar31 ^ 0x5a58e572)) ^ uVar38 ^ uVar59 ^ *puVar19;
  uVar15 = DAT_1826718a8;
  uVar11 = DAT_1826715b0;
  uVar16 = DAT_182671620 & 0xff;
  DAT_182671620 = ((DAT_182671620 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar32 = (ulonglong)DAT_182671620;
  uVar60 = CONCAT44(DAT_182671620,DAT_182671620);
  uVar29 = uVar38 ^ *(ulonglong *)(DAT_182671560 + -0x318) | uVar29;
  uVar42 = uVar29 ^ uVar60;
  *(ulonglong *)(DAT_182671560 + -0x9e8) = uVar42;
  uVar16 = DAT_1826718a8 & 0xff;
  DAT_1826718a8 = ((DAT_1826718a8 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar62 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  *puVar19 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x4d678467)) ^ uVar46) - uVar29 ^
             uVar62;
  lVar4 = DAT_182671560;
  uVar11 = DAT_182671678 & 0xff;
  DAT_182671678 = ((DAT_182671678 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar46 = CONCAT44(DAT_182671678,DAT_182671678);
  puVar25 = (ulonglong *)(DAT_182671560 - (uVar50 ^ 0x70232280));
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar21 ^ uVar46 ^ uVar42 ^ uVar60 ^ *puVar25;
  uVar29 = *(ulonglong *)(lVar4 + -0x2a0);
  *puVar1 = (CONCAT44(uVar7,uVar6) ^ 0x6b60ed5b3641bbcb) + (uVar38 ^ *(ulonglong *)(lVar4 + -0x318))
  ;
  uVar11 = DAT_1826715b0;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0xd86768ce)) =
       (uVar29 ^ uVar46) >> (((byte)DAT_1826715b0 ^ 0xc5) & 0x3f) ^ uVar39;
  lVar4 = DAT_182671560;
  puVar36 = (ulonglong *)(DAT_182671560 + -0x2a0);
  *(undefined8 *)(DAT_182671560 + -0x9e8) = 0x297ade3dd036f1c5;
  lVar5 = DAT_182671560;
  uVar29 = (*puVar36 ^ uVar46) << (((byte)uVar6 ^ 0x1b) & 0x3f);
  *(ulonglong *)(lVar4 + -0x318) = uVar29 ^ uVar59;
  puVar54 = (ulonglong *)(DAT_182671560 - (uVar53 ^ 0x25cee5cd));
  *puVar1 = (uVar39 ^ *puVar54 | uVar29) ^ uVar38;
  lVar4 = DAT_182671560;
  local_128 = (byte)uVar18;
  uVar29 = *puVar2;
  *(ulonglong *)(lVar5 + -0x9e8) =
       (uVar21 ^ *(ulonglong *)(lVar5 + -0x1f0)) -
       (*(ulonglong *)(lVar5 - (uVar31 ^ 0x5a58e042)) ^ uVar38) ^ uVar46;
  bVar49 = (byte)uVar13;
  uVar29 = uVar28 ^ uVar29 ^ *puVar19 ^ uVar62;
  *(ulonglong *)(lVar5 + -0x2a0) = uVar29 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x898) = uVar29 >> ((local_128 ^ 0x56) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xd867634e)) =
       (CONCAT44(uVar26,uVar27) ^ 0x7b788ed3d595695b) >> ((bVar49 ^ 0x5c) & 0x3f);
  lVar4 = DAT_182671560;
  puVar36 = (ulonglong *)(DAT_182671560 + -0x898);
  uVar29 = (*(ulonglong *)(DAT_182671560 + -0x2a0) ^ uVar33) << (((byte)uVar17 ^ 0x7f) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar29 ^ uVar60;
  uVar29 = uVar35 ^ *puVar36 | uVar29;
  uVar42 = uVar29 ^ uVar62;
  *puVar2 = uVar42;
  *(ulonglong *)(lVar4 + -0x318) = (*puVar22 ^ uVar62) - uVar29 ^ uVar21;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar48 ^ 0x40ed817a)) =
       uVar28 ^ uVar42 ^ *(ulonglong *)(DAT_182671560 + -0x9e8) ^ uVar46 ^ uVar62;
  *puVar19 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x898)) >> ((bVar49 ^ 0x59) & 0x3f) ^ uVar46;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar31 ^ 0x5a58e79a)) =
       (uVar28 ^ *(ulonglong *)(DAT_182671560 + -0x898)) << 0x12 ^ uVar51;
  uVar29 = uVar51 ^ *(ulonglong *)(lVar4 + -0x1f0) | *puVar19 ^ uVar46;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar29 ^ uVar59;
  lVar5 = DAT_182671560;
  *puVar2 = (*(ulonglong *)(lVar4 + -0x9e8) ^ uVar46) - uVar29 ^ uVar33;
  local_108 = (byte)uVar27;
  *puVar54 = (CONCAT44(uVar34,uVar6) ^ 0x4374864b4d17ea7b) >> ((local_108 ^ 0x6e) & 0x3f);
  uVar29 = uVar38 ^ *puVar1 ^ uVar51 ^ uVar21 ^ *(ulonglong *)(lVar5 + -0x318);
  *puVar19 = uVar29;
  *(ulonglong *)(lVar5 + -0x1f0) =
       (uVar55 << 0x14 | (ulonglong)(((uVar44 & 0xffff | uVar14) << 8 | uVar14) >> 4)) ^
       uVar29 >> 0xc ^ uVar62;
  puVar47 = (ulonglong *)(lVar5 - (uVar58 ^ 0x33a18a9f));
  *puVar47 = (uVar51 ^ uVar29) << ((bVar20 ^ 0x5e) & 0x3f) ^ uVar28;
  puVar36 = (ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xd86769be));
  uVar29 = uVar28 ^ *puVar36 | *(ulonglong *)(lVar5 + -0x1f0) ^ uVar62;
  *(ulonglong *)(lVar5 + -0x898) = uVar29 ^ uVar46;
  puVar54 = (ulonglong *)(lVar5 - (uVar53 ^ 0x25ceeb7d));
  *puVar54 = (uVar21 ^ *(ulonglong *)(lVar5 + -0x318)) - uVar29 ^ uVar21;
  *puVar19 = *puVar2 ^ *(ulonglong *)(lVar5 + -0x898) ^ uVar33;
  *(ulonglong *)(lVar5 - (uVar23 ^ 0xe289e4a8)) =
       (*(ulonglong *)(lVar5 - (uVar61 ^ 0x69f963a5)) ^ uVar46) >> ((bVar40 ^ 0x4e) & 0x3f) ^ uVar38
  ;
  *(ulonglong *)(lVar5 - (uVar48 ^ 0x40ed8afa)) = (*puVar19 ^ uVar46) << 0x27 ^ uVar21;
  *(ulonglong *)(lVar5 - (uVar23 ^ 0xe289e5d8)) =
       (uVar21 ^ *(ulonglong *)(lVar5 + -0x318) | uVar38 ^ *(ulonglong *)(lVar5 + -0x9e8)) ^ uVar62;
  lVar4 = DAT_182671560;
  uVar29 = (*puVar2 ^ uVar33) - (CONCAT44(uVar26,uVar7) ^ 0xac8440abb993f65c);
  *puVar19 = uVar29 ^ uVar38;
  *(ulonglong *)(lVar4 + -0x9e8) = uVar29 - (*(ulonglong *)(lVar4 + -0x898) ^ uVar62) ^ uVar39;
  *(ulonglong *)(lVar4 - (uVar58 ^ 0x33a1806f)) =
       (*(ulonglong *)(lVar4 + -0x898) ^ uVar62) - (CONCAT44(uVar13,uVar56) ^ 0x55d7b93dc1a0b7d8) ^
       uVar59;
  uVar13 = DAT_1826715b0;
  uVar55 = *(ulonglong *)(lVar4 - (uVar50 ^ 0x702321d0)) ^ uVar59 ^ uVar21 ^ *puVar1;
  *puVar2 = uVar55 ^ uVar60;
  uVar55 = uVar55 >> (((byte)uVar13 ^ 0xde) & 0x3f);
  *puVar19 = uVar55 ^ uVar62;
  lVar5 = DAT_182671560;
  uVar29 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0xe289e7c8)) ^ uVar60) << ((bVar40 ^ 0x48) & 0x3f);
  uVar55 = uVar29 | uVar55;
  *(longlong *)(DAT_182671560 + -0x2a0) =
       -0x57b74dcf0e725f95 << ((*(byte *)(DAT_182671560 + -0x1f0) ^ (byte)uVar15) & 0x3f);
  *(ulonglong *)(lVar5 + -0x898) = uVar29 ^ uVar28;
  *puVar2 = uVar55 ^ uVar35;
  puVar22 = (ulonglong *)(lVar5 - (uVar52 ^ 0x55edc80d));
  uVar29 = (uVar21 ^ *puVar22) - (CONCAT44(uVar27,uVar30) ^ 0xf39667f8b74200e0);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = uVar29 ^ uVar51;
  lVar4 = DAT_182671560;
  puVar43 = (ulonglong *)(DAT_182671560 - (uVar52 ^ 0x55edcc85));
  *puVar43 = uVar29 - uVar55 ^ uVar60;
  *puVar19 = (uVar51 ^ *(ulonglong *)(lVar4 + -0x1f0)) >> ((bVar20 ^ 0x48) & 0x3f);
  uVar29 = (CONCAT44(uVar11,DAT_1826715b0) ^ 0xa0160a0e94de73dd) + (uVar35 ^ *puVar2) ^ uVar51;
  *(ulonglong *)(lVar4 + -0x898) = uVar29;
  *puVar54 = uVar51 ^ uVar39 ^ uVar29 ^ *(ulonglong *)(lVar4 + -0x9e8) ^ uVar33;
  puVar54 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671590 ^ 0xbee6628));
  puVar3 = *(undefined8 **)(lVar4 + 0x10);
  *puVar19 = (*puVar54 ^ uVar33) >> (((byte)uVar7 ^ 0x53) & 0x3f) ^ uVar28;
  *(undefined8 *)(lVar4 + -0x1f0) = *puVar3;
  *puVar24 = (*puVar1 ^ uVar33) << (((byte)DAT_182671578 ^ 0xc5) & 0x3f) ^ uVar39;
  uVar29 = uVar28 ^ *puVar19 | uVar39 ^ *puVar2;
  *(ulonglong *)(lVar4 + -0x898) = uVar29 ^ uVar46;
  *(ulonglong *)(lVar4 + -0x1f0) = (uVar39 ^ *puVar36) - uVar29 ^ uVar33;
  *puVar19 = (*puVar1 ^ uVar33) - (CONCAT44(uVar11,uVar34) ^ 0x2370fd60de97eca4);
  *(ulonglong *)(lVar4 + -0x9e8) =
       *(ulonglong *)(lVar4 - (uVar23 ^ 0xe289efe0)) ^ uVar59 ^ uVar35 ^ uVar60 ^
       *(ulonglong *)(lVar4 + -0x318);
  uVar8 = DAT_182671598;
  bVar49 = (byte)(uVar18 >> 0x18);
  *puVar54 = (uVar35 ^ *puVar45) >> ((bVar49 ^ 199) & 0x3f) ^ uVar33;
  uVar7 = DAT_1826715b4;
  puVar24 = (ulonglong *)(lVar4 - (uVar48 ^ 0x40ed8f5a));
  *puVar24 = (uVar35 ^ *(ulonglong *)(lVar4 + -0x9e8)) << ((local_128 ^ 0x5b) & 0x3f) ^ uVar38;
  uVar29 = *puVar1 ^ uVar33 | uVar38 ^ *puVar19;
  uVar55 = uVar29 ^ uVar21;
  *(ulonglong *)(lVar4 + -0x318) = uVar55;
  uVar27 = DAT_182671570 ^ 0x895c6f07;
  *(ulonglong *)(lVar4 + -0x9e8) = (*(ulonglong *)(lVar4 + -0x2a0) ^ uVar60) - uVar29 ^ uVar62;
  *(uint *)(lVar4 + -0x27c) = (uVar7 ^ 0xa90158c0) * uVar27;
  puVar36 = (ulonglong *)(lVar4 - (uVar41 ^ 0xd86766ee));
  *puVar36 = *(ulonglong *)(lVar4 + -0x1f0) ^ uVar51 ^ uVar21 ^ uVar33 ^ uVar55;
  uVar9 = DAT_182671880;
  uVar6 = DAT_1826715ac;
  uVar13 = DAT_182671584;
  uVar48 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar21 = (ulonglong)DAT_1826715ac;
  *puVar22 = (uVar51 ^ *puVar19) >> (((byte)uVar17 ^ 0x42) & 0x3f) ^ uVar48;
  uVar29 = (ulonglong)DAT_18267159c;
  uVar55 = CONCAT44(uVar9,uVar9);
  uVar17 = DAT_1826717e0 & 0xff;
  *(ulonglong *)(lVar4 + -0x2a0) =
       (uVar51 ^ *puVar24) << (((byte)DAT_18267159c ^ 0x96) & 0x3f) ^ uVar55;
  uVar27 = DAT_182671574;
  lVar5 = DAT_182671560;
  DAT_1826717e0 = ((DAT_1826717e0 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  puVar22 = (ulonglong *)(lVar4 - (uVar37 ^ 0x8affd1f7));
  uVar37 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671574 ^ 0x1a60b658)) =
       (*puVar1 ^ uVar48 | uVar55 ^ *puVar22) ^ uVar37;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0xf21d4cb8)) =
       (*(ulonglong *)(lVar5 + -0x1f0) ^ uVar33) - (uVar37 ^ *(ulonglong *)(lVar5 + -0x318)) ^
       uVar28;
  puVar24 = (ulonglong *)(lVar5 - (uVar23 ^ 0xe289eb68));
  *puVar24 = (*(ulonglong *)(lVar5 - (uVar21 ^ 0xcf8ea1b9)) ^ uVar37) + 0xc80f4947ce8578f2;
  uVar13 = DAT_1826715a0;
  uVar55 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar5 + -0x2a0) =
       uVar39 ^ *(ulonglong *)(lVar5 + -0x9e8) ^ *(ulonglong *)(lVar5 + -0x898) ^ uVar46 ^ uVar62;
  *(ulonglong *)(lVar5 - (uVar61 ^ 0x69f964ed)) =
       (*(ulonglong *)(lVar5 - (uVar55 ^ 0xfe76fcdf)) ^ uVar39) >> (((byte)uVar7 ^ 0xb) & 0x3f) ^
       uVar59;
  uVar39 = (uVar39 ^ *(ulonglong *)(lVar5 + -0x2a0)) << ((local_108 ^ 0x68) & 0x3f);
  *puVar1 = uVar39 ^ CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar21 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar27 ^ 0x1a60b7e0)) =
       (uVar39 | uVar59 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) ^ uVar21;
  uVar17 = DAT_1826716b8;
  uVar39 = (uVar28 ^ *puVar19) >> ((bVar49 ^ 0xf9) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar39;
  lVar4 = DAT_182671560;
  uVar18 = DAT_1826716b8 & 0xff;
  DAT_1826716b8 = ((DAT_1826716b8 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar48 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  *puVar2 = (*(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xa3f5f657)) ^ uVar62) -
            (uVar21 ^ *(ulonglong *)(DAT_182671560 + -0x2a0)) ^ uVar48;
  *(ulonglong *)(lVar4 + -0x1f0) = CONCAT44(uVar6,uVar13) ^ uVar39 ^ 0xc6eb8ba49c07ef2e;
  *puVar24 = uVar28 ^ uVar21 ^ *puVar19 ^ uVar60 ^ *puVar22;
  uVar21 = CONCAT44(DAT_182671890,DAT_182671890);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x237079cb)) =
       (*puVar1 >> 0x20 ^ uVar32) >> 0x14 ^ uVar21;
  uVar29 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x5a58eef2)) = (*puVar1 ^ uVar60) << 0xc ^ uVar29;
  uVar39 = (ulonglong)DAT_182671590;
  *puVar25 = (uVar29 ^ *(ulonglong *)(lVar4 + -0x898) | uVar21 ^ *(ulonglong *)(lVar4 + -0x9e8)) ^
             uVar59;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715b0 ^ 0x4d678e5f)) =
       (*puVar1 ^ uVar60) << ((*(byte *)(lVar4 - (uVar39 ^ 0xbee6a88)) ^ (byte)uVar17) & 0x3f);
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(DAT_18267181c,DAT_18267181c);
  uVar39 = CONCAT44(DAT_182671578,uVar26);
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar28 ^ *puVar19) -
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671578 ^ 0x7ffe770e)) ^ uVar59) ^ uVar31;
  uVar9 = DAT_1826716a0;
  *(ulonglong *)(lVar4 + -0x898) = uVar39 ^ 0x100c70922bc20000 | 0x8a438d2d94186fb7;
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar32 = uVar39 ^ uVar48 ^ uVar37 ^ *puVar2 ^ *(ulonglong *)(lVar4 + -0x318);
  *puVar1 = uVar32;
  uVar9 = DAT_182671864;
  uVar29 = (uVar32 ^ uVar39) >> (((byte)uVar34 ^ 0x1c) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar29 ^ CONCAT44(DAT_1826718c0,DAT_1826718c0);
  uVar10 = DAT_1826718ac;
  uVar37 = CONCAT44(DAT_182671860,DAT_182671860);
  *puVar19 = (uVar32 ^ uVar39) << (((byte)uVar27 ^ 0x47) & 0x3f) ^ uVar37;
  lVar4 = DAT_182671560;
  uVar32 = CONCAT44(uVar10,uVar10);
  uVar39 = *puVar2;
  uVar29 = *puVar36 ^ uVar37 | uVar29;
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar29 ^ uVar32;
  *(ulonglong *)(lVar4 - (uVar55 ^ 0xfe76fd67)) = (uVar48 ^ uVar39) - uVar29 ^ CONCAT44(uVar9,uVar9)
  ;
  uVar9 = DAT_182671708;
  *puVar24 = (CONCAT44(uVar8,uVar7) ^ 0x48fe7e155b77e0ee) << (((byte)DAT_182671584 ^ 0xe) & 0x3f);
  uVar37 = CONCAT44(uVar9,uVar9);
  *puVar43 = *puVar47 ^ uVar37 ^ uVar32 ^ uVar31 ^ *(ulonglong *)(lVar4 + -0x898);
  uVar8 = DAT_18267163c;
  uVar39 = *(ulonglong *)(lVar4 + -0x2a0);
  *puVar19 = (uVar37 ^ *(ulonglong *)(lVar4 + -0x2a0)) >> ((local_108 ^ 0x7e) & 0x3f) ^ uVar35;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826715b0 ^ 0x4d678677)) =
       (uVar37 ^ uVar39) << (((byte)uVar7 ^ 0x11) & 0x3f) ^ uVar29;
  *puVar1 = (uVar35 ^ *puVar19 | uVar29 ^ *puVar2) ^ uVar46;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar12 * 4) = uVar57;
  return;
}



############ FUN_ 180eb4420 size=5235 ############

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

void FUN_180eb4420(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  ulonglong *puVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte local_88;
  
  uVar8 = DAT_182671708;
  uVar9 = DAT_18267159c;
  lVar4 = DAT_182671560;
  uVar26 = (ulonglong)DAT_18267159c;
  uVar16 = (DAT_18267159c << 0x10 | DAT_18267159c & 0xff00) << 8 | DAT_18267159c >> 8 & 0xff00 |
           DAT_18267159c >> 0x18;
  uVar3 = *(uint *)(&DAT_182611e80 + DAT_182671bc0);
  uVar13 = *(uint *)(&DAT_182611e78 + DAT_182671bc0) ^ DAT_18267159c;
  uVar31 = (ulonglong)uVar16;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x240);
  uVar27 = CONCAT44(DAT_182671870,DAT_182671870);
  puVar34 = (ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267159c ^ 0x4e2f3d58));
  uVar20 = CONCAT44(uVar16,DAT_18267159c);
  bVar19 = (byte)DAT_18267159c;
  uVar36 = CONCAT44(DAT_18267184c,DAT_18267184c);
  DAT_1826715ac = uVar16;
  *puVar34 = (CONCAT44(DAT_1826716a8,DAT_1826716a8) ^ *(ulonglong *)(DAT_182671560 + -0x628)) <<
             ((bVar19 ^ 0xb4) & 0x3f) ^ uVar27;
  puVar21 = (ulonglong *)(lVar4 - (uVar31 ^ 0x803c27d6));
  uVar23 = CONCAT44(DAT_182671810,DAT_182671810);
  uVar22 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar27 = (CONCAT44(uVar8,uVar8) ^ *puVar1 | uVar27 ^ *(ulonglong *)(lVar4 + -0x1d8)) ^ uVar36;
  *(ulonglong *)(lVar4 + -0x898) = uVar27;
  uVar10 = DAT_182671814;
  uVar24 = (uVar23 ^ *(ulonglong *)(lVar4 + -0x110)) - (uVar36 ^ *puVar21);
  uVar23 = uVar24 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x318) = uVar23;
  uVar8 = DAT_182671734;
  lVar4 = DAT_182671560;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar29 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  uVar27 = uVar29 ^ uVar30 ^ uVar27 ^ uVar36 ^ *(ulonglong *)(DAT_182671560 + -0xa88);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar27;
  bVar12 = (byte)(uVar9 >> 0x18);
  uVar27 = (uVar30 ^ uVar27) >> ((bVar12 ^ 0x57) & 0x3f);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar27 ^ CONCAT44(uVar8,uVar8);
  puVar37 = (ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x4e2f3428));
  uVar30 = (uVar30 ^ *puVar37) << ((bVar12 ^ 0x69) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x800) = uVar30 ^ uVar29;
  lVar4 = DAT_182671560;
  uVar30 = uVar30 | uVar27;
  puVar25 = (ulonglong *)(DAT_182671560 + -0xa88);
  puVar2 = (ulonglong *)(DAT_182671560 + -0xc08);
  uVar27 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(DAT_182671560 + -0x2a0) = uVar30 ^ CONCAT44(_DAT_182671868,_DAT_182671868);
  *puVar2 = (uVar29 ^ *puVar25) - (CONCAT44(uVar16,uVar16) ^ 0xfdb9fd1236ba6449) ^ uVar27;
  uVar8 = DAT_182671758;
  puVar18 = (ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x4e2f3088));
  puVar28 = (ulonglong *)(lVar4 + -0x670);
  uVar32 = CONCAT44(DAT_1826716ec,DAT_1826716ec);
  uVar38 = (uVar27 ^ *puVar18) - uVar30;
  uVar39 = uVar38 ^ uVar32;
  *puVar28 = uVar39;
  uVar11 = DAT_1826718b0;
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar30 - (uVar20 ^ 0x660942e2ebe01258) ^ uVar33;
  uVar10 = DAT_1826718a8;
  uVar29 = CONCAT44(uVar11,uVar11);
  puVar15 = (ulonglong *)(lVar4 - (uVar26 ^ 0x4e2f3aa8));
  uVar27 = CONCAT44(DAT_1826716b0,DAT_1826716b0) ^ uVar29 ^ uVar22 ^ uVar23 ^
           *(ulonglong *)(lVar4 + -0x6d0);
  *(ulonglong *)(lVar4 + -0x628) = uVar27;
  uVar8 = DAT_182671738;
  lVar4 = DAT_182671560;
  uVar30 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = (uVar29 ^ *puVar15) >> ((bVar12 ^ 0x6f) & 0x3f) ^ uVar30;
  uVar23 = (uVar27 ^ uVar29) << ((bVar19 ^ 0x9f) & 0x3f);
  uVar22 = CONCAT44(uVar8,uVar8);
  *puVar1 = uVar23 ^ uVar22;
  uVar27 = CONCAT44(DAT_182671798,DAT_182671798);
  uVar29 = uVar30 ^ *puVar34 | uVar23;
  *(uint *)(lVar4 + -0x874) = (DAT_18267159c ^ 0xec395048) + *(int *)(lVar4 + -0x27c);
  uVar8 = DAT_1826715e4;
  *(ulonglong *)(lVar4 + -0x110) = uVar29 ^ uVar27;
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar35 = CONCAT44(DAT_182671684,DAT_182671684);
  *(ulonglong *)(lVar4 + -0x898) = uVar24 - (uVar20 ^ 0x3d7fe52e78e42321) ^ uVar27;
  uVar8 = DAT_1826717f0;
  uVar17 = DAT_1826715a4;
  *(ulonglong *)(lVar4 + -0x8a8) = (uVar27 ^ *puVar21) - uVar29 ^ uVar35;
  uVar6 = DAT_182671570;
  uVar24 = CONCAT44(uVar8,uVar8);
  bVar12 = (byte)DAT_182671590;
  uVar27 = CONCAT44(DAT_182671570,uVar16);
  uVar20 = (CONCAT44(uVar17,uVar16) ^ 0x175ae443242e31a7) + uVar29 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x800) = uVar20;
  *(ulonglong *)(lVar4 + -0xbf0) = (uVar27 ^ 0x95b886a9f1dd325e) << ((bVar12 ^ 0x3f) & 0x3f);
  uVar8 = DAT_1826718cc;
  uVar27 = CONCAT44(DAT_18267174c,DAT_18267174c);
  uVar20 = uVar39 ^ uVar27 ^ uVar24 ^ uVar32 ^ uVar20;
  *(ulonglong *)(lVar4 + -0xa88) = uVar20;
  uVar24 = (uVar20 ^ uVar27) >> ((bVar19 ^ 0x85) & 0x3f);
  uVar27 = (uVar27 ^ uVar20) << ((bVar19 ^ 0xbb) & 0x3f);
  *puVar2 = uVar24 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182671600;
  *(ulonglong *)(lVar4 + -0x2a0) = uVar27 ^ CONCAT44(DAT_182671700,DAT_182671700);
  uVar24 = uVar24 | uVar27;
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar27 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar4 + -0x628) = 0xe0488ba0915eb3e - uVar23;
  uVar8 = DAT_1826717b4;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar24 ^ uVar39;
  uVar7 = DAT_182671790;
  uVar14 = DAT_1826715a8;
  uVar29 = CONCAT44(uVar8,uVar8);
  uVar20 = (ulonglong)DAT_182671790;
  *(ulonglong *)(DAT_182671560 - (uVar27 ^ 0xc0229d8)) = uVar38 - uVar24 ^ uVar29;
  uVar8 = DAT_182671584;
  lVar4 = DAT_182671560;
  uVar24 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  uVar23 = uVar35 ^ uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x80) ^
           *(ulonglong *)(DAT_182671560 + -0x8a8);
  uVar27 = uVar23 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar27;
  bVar12 = (byte)DAT_1826715a0;
  *(ulonglong *)(lVar4 + -0x898) = (uVar27 >> 0x20 ^ uVar20) >> 5 ^ uVar24;
  uVar10 = DAT_1826718a0;
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar8,DAT_182671580) ^ 0x5e1d8509e680e4c1) >> ((bVar12 ^ 0x98) & 0x3f);
  uVar7 = DAT_182671578;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x96bf341e)) =
       uVar23 << ((bVar19 ^ 0x9b) & 0x3f) ^ uVar27;
  uVar38 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar32 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xacee7786)) ^ uVar27 |
           *(ulonglong *)(lVar4 + -0x898) ^ uVar24) ^ uVar38;
  uVar30 = CONCAT44(DAT_182671680,DAT_182671680);
  *(ulonglong *)(lVar4 + -0x800) = uVar32;
  uVar14 = DAT_18267156c;
  uVar27 = *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x491e33fe));
  uVar23 = (ulonglong)DAT_182671744;
  uVar24 = (ulonglong)DAT_18267156c;
  uVar20 = *puVar37;
  uVar33 = CONCAT44(DAT_182671744,DAT_182671744);
  uVar17 = DAT_182671744 >> 0x17;
  uVar32 = *(ulonglong *)(lVar4 + -0x1d8) ^ uVar32 ^ uVar33 ^ uVar38 ^ uVar29;
  *puVar2 = uVar32;
  uVar8 = DAT_182671850;
  *(ulonglong *)(lVar4 + -0xa88) = (uVar35 ^ uVar20) - (uVar27 ^ uVar38) ^ uVar30;
  uVar10 = DAT_182671894;
  uVar20 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x2a0) = ((ulonglong)uVar17 | uVar23 << 9) ^ uVar32 >> 0x17 ^ uVar20;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x9c2fbdc8)) = (uVar32 ^ uVar33) << 0x29 ^ uVar27;
  uVar8 = DAT_182671650;
  uVar32 = CONCAT44(DAT_18267164c,DAT_18267164c);
  *(ulonglong *)(lVar4 + -0x628) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x491e395e)) ^ uVar20 | *puVar1 ^ uVar27) ^
       uVar32;
  uVar35 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671598 ^ 0x4804256)) =
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0x803c2e96)) ^ uVar29) - (uVar32 ^ *puVar15) ^ uVar35;
  uVar17 = DAT_182671568;
  uVar27 = CONCAT44(DAT_182671620,DAT_182671620);
  uVar33 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671590 ^ 0xcf82e880)) =
       *(ulonglong *)(lVar4 + -0x6d0) ^ uVar27 ^ uVar30 ^ uVar39 ^ *(ulonglong *)(lVar4 + -0xa88);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x803c2e5e)) =
       (uVar20 ^ *(ulonglong *)(lVar4 + -0x2a0)) << ((*(byte *)puVar28 ^ (byte)uVar8) & 0x3f);
  uVar8 = _DAT_1826715e0;
  uVar23 = (*(ulonglong *)(lVar4 + -0x80) ^ uVar27) >> (((byte)uVar7 ^ 0xd6) & 0x3f);
  uVar38 = CONCAT44(DAT_182671718,DAT_182671718);
  *(ulonglong *)(lVar4 + -0x318) = uVar23 ^ uVar38;
  uVar27 = (*(ulonglong *)(lVar4 + -0x80) ^ uVar27) << 0x18;
  *(uint *)(lVar4 + -0x678) = (uVar14 ^ 0x95d8995d) + *(int *)(lVar4 + -0x3d4);
  uVar10 = DAT_1826717e8;
  *(ulonglong *)(lVar4 + -0x898) = uVar27 ^ CONCAT44(uVar8,uVar8);
  uVar23 = uVar23 | uVar27;
  uVar20 = CONCAT44(uVar10,uVar10);
  uVar27 = *puVar28;
  uVar29 = uVar23 ^ uVar20;
  uVar24 = CONCAT44(DAT_18267186c,DAT_18267186c);
  *(ulonglong *)(lVar4 + -0xbf0) = uVar29;
  *(ulonglong *)(lVar4 + -0x8a8) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x6e269733)) ^ uVar30) - uVar23 ^ uVar24;
  uVar10 = DAT_1826717e0;
  uVar7 = DAT_1826715b0;
  uVar27 = uVar27 ^ uVar29 ^ uVar20 ^ uVar38 ^ uVar35;
  uVar23 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar4 + -0x800) = uVar27;
  uVar11 = DAT_182671890;
  uVar8 = DAT_1826715a0;
  uVar39 = CONCAT44(uVar10,uVar10);
  *puVar2 = (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0x6e2695bb)) ^ uVar38) >>
            (((byte)DAT_182671570 ^ 0x83) & 0x3f) ^ uVar39;
  uVar20 = CONCAT44(uVar11,uVar11);
  *puVar1 = (uVar27 ^ uVar38) << 0xc ^ uVar20;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715a4 ^ 0xacee7dae)) =
       (CONCAT44(uVar6,uVar14) ^ 0x208262b68cdc24af) -
       (CONCAT44(uVar8,DAT_182671594) ^ 0x81880984c18881a7);
  uVar8 = DAT_182671688;
  uVar17 = DAT_182671590;
  uVar33 = CONCAT44(DAT_182671728,DAT_182671728);
  uVar27 = *puVar28;
  uVar20 = *(ulonglong *)(lVar4 - (uVar23 ^ 0x2a001e42)) ^ uVar20 | *puVar2 ^ uVar39;
  *(ulonglong *)(lVar4 + -0x6d0) = uVar20 ^ uVar33;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xcf82eaa0)) = (uVar27 ^ uVar35) - uVar20 ^ uVar29;
  uVar17 = DAT_182671574;
  uVar27 = (ulonglong)DAT_1826715f8;
  uVar23 = (ulonglong)DAT_182671574;
  puVar25 = (ulonglong *)(DAT_182671560 + -0x800);
  uVar20 = CONCAT44(DAT_1826715f8,DAT_1826715f8);
  bVar19 = (byte)DAT_182671574;
  uVar32 = *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671570 ^ 0x8d44bb9f)) ^
           *(ulonglong *)(DAT_182671560 + -0x8a8) ^ uVar20 ^ uVar24 ^ uVar32;
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar32;
  uVar8 = DAT_182671584;
  lVar4 = DAT_182671560;
  puVar21 = (ulonglong *)(DAT_182671560 + -0x110);
  *(ulonglong *)(DAT_182671560 + -0x80) = (*puVar25 ^ uVar38) >> ((bVar19 ^ 0xf7) & 0x3f);
  uVar31 = (*puVar21 >> 0x20 ^ uVar27) >> 0x19;
  *(ulonglong *)(lVar4 + -0x318) = uVar31 ^ uVar39;
  uVar10 = DAT_182671640;
  lVar4 = DAT_182671560;
  uVar20 = (uVar32 ^ uVar20) << (((byte)uVar8 ^ 0xa3) & 0x3f);
  uVar27 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar20 ^ CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar31 = uVar31 | uVar20;
  uVar20 = uVar31 ^ uVar27;
  *(ulonglong *)(lVar4 + -0xa88) = uVar20;
  uVar30 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar4 + -0xbf0) =
       (CONCAT44(uVar16,uVar7) ^ 0xef6b0d5bdbcf6170) << (((byte)uVar20 ^ (byte)uVar10) & 0x3f);
  uVar38 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(lVar4 + -0x1d8) = (*(ulonglong *)(lVar4 + -0x8a8) ^ uVar24) - uVar31 ^ uVar30;
  local_88 = (byte)uVar14;
  uVar20 = uVar38 ^ uVar27 ^ uVar29 ^ uVar20 ^ *(ulonglong *)(lVar4 + -0x2a0);
  uVar27 = *(ulonglong *)(lVar4 + -0x2a0);
  *puVar1 = uVar20;
  uVar31 = (uVar20 ^ uVar38) >> ((local_88 ^ 0x86) & 0x3f);
  uVar35 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *puVar28 = uVar31 ^ uVar35;
  uVar14 = DAT_18267159c;
  uVar32 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  bVar12 = (byte)DAT_1826715a4;
  uVar20 = *(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xeeef7eb6));
  *(uint *)(lVar4 + -0x774) = (DAT_182671588 ^ 0x6c5684ba) - *(int *)(lVar4 + -0x874);
  uVar8 = DAT_182671880;
  uVar14 = uVar14 + uVar17;
  *(ulonglong *)(lVar4 + -0x628) = (uVar20 ^ uVar38) << ((bVar12 ^ 0x44) & 0x3f) ^ uVar32;
  uVar24 = (ulonglong)uVar14;
  uVar31 = uVar31 | uVar32 ^ *puVar15;
  uVar20 = CONCAT44(DAT_182671714,DAT_182671714);
  DAT_182671570 = uVar14;
  *(ulonglong *)(lVar4 + -0x800) = uVar31 ^ CONCAT44(uVar8,uVar8);
  uVar27 = (uVar29 ^ uVar27) - (CONCAT44(uVar17,uVar14) ^ 0xc77c295efaddcf51);
  *(ulonglong *)(lVar4 + -0x80) = uVar27 ^ uVar20;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x110) = *puVar2 ^ uVar39 ^ 0x2f4c388c3ec5edf8;
  uVar8 = _DAT_182671618;
  uVar32 = CONCAT44(DAT_18267176c,DAT_18267176c);
  *(ulonglong *)(lVar4 + -0x318) = uVar27 - uVar31 ^ uVar32;
  uVar10 = DAT_1826716c8;
  uVar39 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 + -0x898) = uVar31 - (CONCAT44(uVar9,uVar14) ^ 0xea24b1eddb499b94) ^ uVar39;
  uVar8 = DAT_1826715fc;
  lVar4 = DAT_182671560;
  uVar27 = CONCAT44(uVar10,uVar10);
  uVar33 = *(ulonglong *)(lVar5 - (uVar26 ^ 0x4e2f3a50)) ^
           *(ulonglong *)(lVar5 - ((ulonglong)uVar14 ^ 0x3d1eb8ae)) ^ uVar27 ^ uVar30 ^ uVar33;
  *(ulonglong *)(lVar5 + -0xbf0) = uVar33;
  bVar12 = (byte)uVar14;
  uVar20 = CONCAT44(uVar8,uVar8);
  uVar31 = CONCAT44(DAT_18267168c,DAT_18267168c);
  *(ulonglong *)(lVar4 + -0x8a8) = (uVar33 ^ uVar27) >> ((bVar19 ^ 0xe6) & 0x3f) ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xeeef767e)) =
       (uVar27 ^ uVar33) << ((bVar12 ^ 0x46) & 0x3f) ^ uVar31;
  uVar38 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  uVar27 = *(ulonglong *)(lVar4 + -0x1d8);
  uVar33 = uVar31 ^ *(ulonglong *)(lVar4 + -0xa88) | *(ulonglong *)(lVar4 + -0x8a8) ^ uVar20;
  uVar20 = CONCAT44(DAT_182671710,DAT_182671710);
  *puVar1 = uVar33 ^ uVar38;
  uVar8 = DAT_182671860;
  *(ulonglong *)(lVar4 + -0x628) =
       (uVar27 ^ uVar30) - (CONCAT44(uVar17,uVar17) ^ 0x8da115a4b20522e) ^ uVar20;
  uVar29 = CONCAT44(uVar8,uVar8);
  *puVar28 = (*(ulonglong *)(DAT_182671560 - (uVar23 ^ 0xeeef7ade)) ^ uVar20) - uVar33 ^ uVar29;
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x4e2f3e20)) =
       (*(ulonglong *)(DAT_182671560 - (uVar26 ^ 0x4e2f3af0)) ^ uVar29) << 0x3f;
  uVar27 = CONCAT44(DAT_18267173c,DAT_18267173c);
  *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0x3d1eb866)) =
       (*puVar1 ^ uVar38) + (CONCAT44(uVar17,uVar14) ^ 0x31ed0ac4462a36ba) ^ uVar27;
  lVar4 = DAT_182671560;
  uVar33 = CONCAT44(DAT_1826715c4,DAT_1826715c4);
  uVar30 = *(ulonglong *)(DAT_182671560 + -0x318) ^ uVar33 ^ uVar27 ^ uVar32 ^
           *(ulonglong *)(DAT_182671560 + -0x110);
  *puVar2 = uVar30;
  uVar8 = DAT_1826715c8;
  lVar5 = DAT_182671560;
  uVar20 = (uVar30 ^ uVar33) >> ((bVar12 ^ 0x56) & 0x3f);
  *(ulonglong *)(lVar4 + -0x80) = uVar20 ^ uVar36;
  uVar27 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 + -0x800) = (uVar33 ^ uVar30) << ((bVar19 ^ 0xd6) & 0x3f) ^ uVar27;
  uVar20 = *(ulonglong *)(lVar5 - (uVar24 ^ 0x3d1eb176)) ^ uVar27 | uVar20;
  *(ulonglong *)(lVar5 + -0x6d0) = uVar20 ^ uVar31;
  uVar8 = DAT_18267167c;
  *(ulonglong *)(lVar5 + -0xbf0) = CONCAT44(uVar17,uVar17) ^ 0xfffff7d9bf63bfdf | 0x13fd66d8be613e9b
  ;
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar20 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0x3d1eba6e)) ^ uVar32) - uVar20;
  *(ulonglong *)(lVar5 + -0x8a8) = uVar20 ^ uVar30;
  lVar4 = DAT_182671560;
  puVar25 = (ulonglong *)(lVar5 - (uVar26 ^ 0x4e2f3418));
  uVar32 = *(ulonglong *)(lVar5 - (uVar24 ^ 0x3d1ebf06)) ^ uVar22 ^ uVar29 ^ uVar39 ^ *puVar25;
  *(ulonglong *)(lVar5 + -0xa88) = uVar32;
  uVar8 = DAT_182671764;
  *(ulonglong *)(lVar5 + -0x1d8) = uVar20 ^ CONCAT44(uVar9,uVar17) ^ 0x39b38efee2a83fc6;
  uVar27 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0x3d1eb3fe)) ^ uVar22) >> ((bVar12 ^ 0x56) & 0x3f);
  *(ulonglong *)(lVar4 + -0x628) = uVar27 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_1826716cc;
  *(ulonglong *)(lVar4 + -0x2a0) =
       (CONCAT44(uVar9,uVar14) ^ 0x36d23525c010f2fa) >> ((bVar19 ^ 0xee) & 0x3f);
  uVar20 = CONCAT44(uVar8,uVar8);
  *puVar1 = (uVar22 ^ uVar32) << ((bVar19 ^ 0xd6) & 0x3f) ^ uVar20;
  uVar22 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar27 = *(ulonglong *)(lVar4 - (uVar26 ^ 0x4e2f3ec0)) ^ uVar20 | uVar27;
  uVar17 = DAT_182671568 ^ 0xa5d7bc27;
  *(ulonglong *)(lVar4 + -0x110) = uVar27 ^ uVar22;
  *puVar18 = (*puVar28 ^ uVar29) - uVar27 ^ uVar35;
  uVar8 = DAT_182671720;
  lVar5 = DAT_182671560;
  uVar29 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  uVar27 = *(ulonglong *)(lVar4 - (uVar23 ^ 0xeeef745e)) ^ uVar29 ^ uVar22 ^ uVar30 ^
           *(ulonglong *)(lVar4 + -0x110);
  *(ulonglong *)(lVar4 + -0x80) = uVar27;
  uVar10 = DAT_182671854;
  uVar22 = (uVar27 ^ uVar29) >> ((bVar19 ^ 0xcc) & 0x3f);
  *(uint *)(lVar5 + -0x274) = uVar17 << ((bVar12 ^ 0x7f) & 0x1f);
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 + -0x800) = uVar22 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 + -0xbf0) = (uVar27 ^ uVar29) << ((bVar12 ^ 0x70) & 0x3f) ^ uVar20;
  uVar8 = DAT_182671690;
  *(undefined1 *)(lVar5 + -0x5e9) = **(undefined1 **)(lVar5 + -0x60);
  uVar29 = CONCAT44(uVar8,uVar8);
  uVar27 = CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar22 = *(ulonglong *)(lVar5 - (uVar26 ^ 0x4e2f3770)) ^ uVar20 | uVar22;
  *(ulonglong *)(lVar5 + -0x318) = uVar22 ^ uVar29;
  uVar17 = DAT_18267177c;
  uVar20 = (ulonglong)DAT_18267177c;
  *puVar25 = (*(ulonglong *)(lVar5 + -0x8a8) ^ uVar30) - uVar22 ^ uVar27;
  uVar27 = CONCAT44(uVar17,uVar17) ^ uVar31 ^ uVar35 ^ *puVar2 ^ *(ulonglong *)(lVar5 + -0x6d0);
  *(ulonglong *)(lVar5 + -0x1d8) = uVar27;
  *(ulonglong *)(lVar5 + -0x2a0) =
       ((ulonglong)(uVar17 >> 0x16) | uVar20 << 10) ^ uVar27 >> 0x16 ^ uVar29;
  bVar12 = (byte)DAT_182671590;
  *(ulonglong *)(lVar5 + -0xa88) = uVar29 ^ *(ulonglong *)(lVar5 + -0x318) | 0xd1232a8730081eb4;
  uVar20 = (CONCAT44(uVar17,uVar17) ^ uVar27) << ((bVar12 ^ 0x2a) & 0x3f);
  uVar27 = CONCAT44(_DAT_182671610,_DAT_182671610);
  *(ulonglong *)(lVar5 + -0x628) = uVar20 ^ CONCAT44(DAT_182671800,DAT_182671800);
  uVar8 = DAT_182671698;
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x3d1ebb36)) =
       (*(ulonglong *)(lVar5 - (uVar23 ^ 0xeeef7e56)) ^ uVar29 | uVar20) ^ uVar27;
  *puVar28 = (uVar35 ^ *puVar2) - (uVar27 ^ *puVar1) ^ CONCAT44(uVar8,uVar8);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar3 ^ uVar16) * 4) = uVar13;
  return;
}



############ FUN_ 180e5beb0 size=3524 ############

void FUN_180e5beb0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  ulonglong uVar17;
  undefined8 *puVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  
  uVar24 = DAT_182671670;
  uVar7 = DAT_1826715b0;
  uVar5 = DAT_182671584;
  uVar6 = DAT_18267157c;
  lVar2 = DAT_182671560;
  DAT_1826715a8 = DAT_18267156c + DAT_182671590;
  uVar28 = DAT_1826715a4 * DAT_18267159c;
  uVar27 = DAT_182671578 | DAT_182671580;
  uVar15 = (ulonglong)DAT_18267157c;
  uVar13 = DAT_182671588 & 3;
  if (uVar13 < 2) {
    uVar1 = DAT_18267157c;
    if (uVar13 == 0) {
      uVar1 = DAT_182671588;
    }
    uVar25 = (ulonglong)uVar1;
  }
  else {
    uVar25 = (ulonglong)DAT_182671594;
    if (uVar13 < 3) {
      uVar25 = (ulonglong)DAT_18267158c;
    }
  }
  uVar20 = DAT_182671598 * DAT_1826715b0;
  uVar13 = *(uint *)(&DAT_182611e78 + DAT_182671910);
  uVar14 = *(uint *)(&DAT_182611e80 + DAT_182671910) ^ DAT_1826715b0;
  bVar19 = (byte)DAT_182671598;
  pbVar16 = (byte *)(*(ulonglong *)(DAT_182671560 + -0xcb0) ^ (ulonglong)DAT_182671840);
  DAT_182671568 = uVar28;
  DAT_182671574 = uVar27;
  DAT_1826715ac = uVar20;
  *(byte **)(DAT_182671560 + -0xa8) = pbVar16 + 1;
  *(byte *)(lVar2 + -0x505) = (byte)uVar24 ^ *pbVar16 ^ (byte)DAT_182671718;
  uVar22 = (ulonglong)DAT_182671790;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb60) ^ (ulonglong)DAT_182671640) = bVar19 ^ 0xd5;
  uVar8 = DAT_182671594;
  uVar1 = DAT_18267158c;
  pbVar16 = (byte *)(*(ulonglong *)(lVar2 + -0x828) ^ uVar22);
  uVar23 = (ulonglong)DAT_182671688;
  *(byte **)(lVar2 + -0xa50) = pbVar16 + (CONCAT44(DAT_182671594,uVar5) ^ 0xc77202ccc9cabfbf);
  *pbVar16 = *(byte *)(lVar2 + -0x505) ^ (byte)uVar24;
  uVar10 = DAT_18267159c;
  *(undefined8 *)(lVar2 + -0x160) = *(undefined8 *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x318df69d))
  ;
  *(ulonglong *)(lVar2 + -0x270) =
       (CONCAT44(uVar6,uVar7) ^ 0xc12b0b59400b874a) - (CONCAT44(uVar1,uVar20) ^ 0x4449d96100d23817);
  uVar22 = (ulonglong)DAT_182671578;
  *(undefined8 *)(lVar2 + -0x720) = *(undefined8 *)(lVar2 + -0xa8);
  uVar17 = (ulonglong)DAT_1826715a4;
  *(ulonglong *)(lVar2 + -0x688) =
       ((uVar25 << 0x20 | uVar22) ^ 0x8f9df6f445967413) >> (((byte)DAT_182671580 ^ 0xde) & 0x3f);
  uVar11 = DAT_1826715b4;
  uVar5 = DAT_182671590;
  *(ulonglong *)(lVar2 + -0x2b0) = *(ulonglong *)(lVar2 - (uVar17 ^ 0xc9cabede)) ^ uVar23;
  bVar12 = (byte)DAT_1826715c4;
  iVar4 = DAT_18267156c;
  pbVar16 = *(byte **)(lVar2 - ((ulonglong)uVar28 ^ 0x7e3e7f0e));
  *(ulonglong *)(lVar2 + -0x9f0) = (ulonglong)pbVar16 ^ (ulonglong)DAT_1826716a0;
  *(byte **)(lVar2 + -0x498) = pbVar16 + (CONCAT44(uVar27,uVar5) ^ 0xeeddf9fbb81db16d);
  bVar19 = (byte)DAT_1826715a8;
  *(byte *)(lVar2 + -0x951) = *pbVar16 ^ bVar12 ^ (byte)DAT_182671718;
  uVar22 = CONCAT44(DAT_182671814,DAT_182671814);
  *(byte *)(*(ulonglong *)(lVar2 + -0x308) ^ (ulonglong)DAT_1826715e8) = bVar19 ^ 0xc6;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x748) =
       *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar2 + -0x450)) ^
       CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar9 = DAT_182671598;
  uVar5 = DAT_182671570;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0x5b66ce69)) =
       CONCAT44(uVar11,iVar4) ^ 0x90afb2ec528cb44b;
  *(ulonglong *)(lVar3 + -0xb28) =
       (CONCAT44(uVar20,uVar5) ^ 0xcab73c6608cdf216) + (uVar23 ^ *(ulonglong *)(lVar3 + -0x2b0));
  *(ulonglong *)(lVar3 - (uVar15 ^ 0xc77207dc)) =
       *(longlong *)(lVar3 + -0x600) - (CONCAT44(uVar6,iVar4) ^ 0x3c6ed3acfc7e0f12);
  uVar5 = DAT_182671588;
  uVar15 = (ulonglong)DAT_18267158c;
  uVar17 = (ulonglong)DAT_182671588;
  *(byte *)(uVar23 ^ *(ulonglong *)(lVar3 + -0x2b0)) = bVar12 ^ *(byte *)(lVar3 + -0x951);
  *(undefined8 *)(lVar3 + -0x9d8) = *(undefined8 *)(lVar3 + -0xb28);
  uVar23 = (ulonglong)DAT_1826718c0;
  uVar22 = (ulonglong)DAT_182671574;
  *(undefined8 *)(lVar3 + -0x6e8) = *(undefined8 *)(lVar3 - (uVar15 ^ 0x8d31c964));
  uVar15 = (ulonglong)DAT_18267166c;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x318df4ad)) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0xeeddf023)) ^ uVar23;
  lVar2 = DAT_182671560;
  uVar26 = (ulonglong)DAT_1826715a8;
  pbVar16 = *(byte **)(DAT_182671560 - ((ulonglong)uVar28 ^ 0x7e3e7ec6));
  *(ulonglong *)(DAT_182671560 + -0x628) =
       *(ulonglong *)(DAT_182671560 + -0x1f0) ^ *(ulonglong *)(DAT_182671560 + -0x1d8);
  *(ulonglong *)(lVar2 + -0xd8) = (ulonglong)pbVar16 ^ uVar15;
  *(byte **)(lVar2 + -0x590) = pbVar16 + ((uVar26 << 0x20 | uVar25) ^ 0xea6f1f2c77202cd);
  uVar24 = DAT_18267158c;
  *(byte *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0x8d31cba6)) =
       (byte)DAT_18267179c ^ *pbVar16 ^ (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar2 + -0x608) ^ (ulonglong)DAT_182671800) = (byte)DAT_182671590 ^ 0x18;
  bVar19 = *(byte *)(lVar2 + -0x65a) ^ (byte)DAT_18267179c;
  *(ulonglong *)(lVar2 + -0xba8) =
       (CONCAT44(DAT_182671580,uVar20) ^ 0xee94f1eacab73c67) +
       (*(ulonglong *)(lVar2 + -0x860) ^ uVar23);
  uVar21 = uVar20 - DAT_18267158c;
  uVar22 = (ulonglong)DAT_182671794;
  DAT_1826715a0 = uVar21;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x895ebff6)) ^ uVar23) = bVar19;
  uVar25 = (ulonglong)DAT_182671590;
  uVar15 = *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x318df765));
  *(ulonglong *)(lVar2 + -0xad8) = uVar15;
  *(undefined8 *)(lVar2 + -0xd58) = *(undefined8 *)(lVar2 - (uVar25 ^ 0xb81db4fc));
  *(ulonglong *)(lVar2 + -0x358) = uVar15 ^ uVar22;
  uVar15 = (ulonglong)DAT_182671820;
  *(ulonglong *)(lVar2 + -0x6d0) = (CONCAT44(uVar21,uVar24) ^ 0xffed72f64196bfb7) << 7;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x3d856712)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xcab7313e)) ^ uVar15;
  pbVar16 = (byte *)(*(ulonglong *)(lVar2 + -0x978) ^ uVar15);
  *(byte **)(lVar2 + -0x1e0) = pbVar16 + (CONCAT44(uVar20,DAT_18267158c) ^ 0xcab73c668d31cdfd);
  *(byte *)(lVar2 + -0x941) = (byte)DAT_182671770 ^ *pbVar16 ^ (byte)DAT_182671718;
  lVar3 = DAT_182671560;
  uVar15 = CONCAT44(DAT_1826715a4,uVar20);
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x40) ^ (ulonglong)DAT_18267173c) = 0x48;
  pbVar16 = (byte *)(uVar22 ^ *(ulonglong *)(lVar2 + -0x358));
  *(byte **)(lVar2 + -0x8c8) = pbVar16 + (uVar15 ^ 0xc9cabfbecab73c67);
  *(ulonglong *)(lVar2 + -0x5c8) = *(ulonglong *)(lVar2 + -0x2a0) ^ 0xc170d9e5e7ff20f3;
  uVar27 = DAT_182671578;
  uVar15 = (ulonglong)DAT_182671578;
  *pbVar16 = *(byte *)(lVar2 + -0x941) ^ (byte)DAT_182671770;
  *(undefined8 *)(lVar3 + -0x250) = *(undefined8 *)(lVar3 - (uVar15 ^ 0x4dd817b));
  uVar22 = (ulonglong)DAT_182671750;
  *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671594 ^ 0xc77203f4)) = *(undefined8 *)(lVar3 + -0x1e0)
  ;
  uVar5 = DAT_182671574;
  uVar25 = (ulonglong)DAT_182671698;
  *(ulonglong *)(lVar3 + -0x9f8) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671574 ^ 0xeeddf823)) ^ 0x19fd9ab3b7fcaa98;
  *(ulonglong *)(lVar3 + -0xe0) = *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x3d856c3a)) ^ uVar22;
  uVar15 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_18267159c ^ 0xbebfcbf1));
  *(ulonglong *)(lVar3 + -0xc0) = uVar15 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x188) = (CONCAT44(uVar27,uVar5) ^ 0x4dd89b3eeddf9fa) + uVar15;
  lVar2 = DAT_182671560;
  bVar19 = (byte)DAT_182671590;
  *(byte *)(DAT_182671560 + -0xc41) =
       *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671584 ^ 0xc9cabf7e)) ^ uVar25) ^
       (byte)DAT_1826716b8 ^ (byte)DAT_182671718;
  uVar15 = (ulonglong)DAT_1826718a4;
  *(byte *)(*(ulonglong *)(lVar2 + -600) ^ (ulonglong)DAT_182671828) = bVar19 ^ 0xda;
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0xb39) =
       *(byte *)(*(ulonglong *)(DAT_182671560 + -0x150) ^ uVar15) ^ (byte)DAT_182671718;
  *(ulonglong *)(lVar2 + -0x4f0) = (*(ulonglong *)(lVar2 - (uVar26 ^ 0xea6f112)) ^ uVar22) + 1;
  uVar24 = DAT_182671574;
  uVar5 = DAT_182671570;
  uVar26 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar2 + -0x400) =
       (CONCAT44(uVar8,DAT_182671574) ^ 0x5b0123654012bade) +
       (CONCAT44(uVar20,uVar11) ^ 0xb9418ad2ae6771b3);
  uVar25 = (ulonglong)DAT_18267183c;
  *(byte *)(*(ulonglong *)(lVar2 + -0xe0) ^ uVar22) =
       *(byte *)(lVar2 + -0xc41) ^ (byte)DAT_1826716b8;
  *(uint *)(lVar2 + -0x678) = (*(uint *)(lVar2 + -0x344) ^ DAT_1826716a0) * 0x513f7bb5;
  *(undefined8 *)(lVar2 - (uVar26 ^ 0x8cdfe97)) = *(undefined8 *)(lVar2 + -0x4f0);
  lVar3 = DAT_182671560;
  pbVar16 = *(byte **)(lVar2 + -0x188);
  puVar18 = (undefined8 *)(DAT_182671560 - (uVar17 ^ 0x318dfae5));
  *(byte **)(DAT_182671560 + -0xc28) = pbVar16;
  uVar15 = (ulonglong)DAT_182671694;
  *(ulonglong *)(lVar3 + -0x318) = 0x84b6d91d2c36466e >> ((byte)*puVar18 & 0x3f);
  *(ulonglong *)(lVar3 + -0x7a0) = *(ulonglong *)(lVar3 + -0xc80) ^ uVar25;
  *(ulonglong *)(lVar3 + -0x4b0) = uVar15 ^ (ulonglong)pbVar16;
  *(byte **)(lVar3 + -0x298) = pbVar16 + 1;
  bVar19 = (byte)DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0xc08) =
       CONCAT44(DAT_182671584,uVar24) ^ 0x388c7903a2164ba |
       CONCAT44(uVar6,uVar11) ^ 0x9ca84b7bd69e9f3e;
  *(byte *)(lVar3 - ((ulonglong)DAT_182671590 ^ 0xb81db716)) =
       bVar19 ^ *pbVar16 ^ (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar3 + -0x8c0) ^ (ulonglong)DAT_182671670) = (byte)DAT_18267158c ^ 0x1c;
  uVar15 = (ulonglong)DAT_18267159c;
  *(longlong *)(lVar3 + -0x3b8) = *(longlong *)(lVar3 + -0x898) + 0x4db088089d3954;
  uVar6 = DAT_18267158c;
  uVar22 = (ulonglong)DAT_18267174c;
  uVar23 = (ulonglong)DAT_18267158c;
  bVar19 = *(byte *)(lVar3 + -0x67a) ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0x18) =
       (*(ulonglong *)(lVar3 - (uVar15 ^ 0xbebfcd69)) ^ uVar25) +
       (CONCAT44(uVar1,uVar9) ^ 0x8d31cdfc5b66ca38);
  uVar24 = DAT_18267158c + DAT_182671590;
  *(ulonglong *)(lVar3 + -0x3f0) =
       (CONCAT44(uVar27,uVar7) ^ 0x7e271bcb8efc2be3) << (((byte)DAT_182671580 ^ 0xec) & 0x3f);
  *(byte *)(uVar25 ^ *(ulonglong *)(lVar3 + -0x7a0)) = bVar19;
  uVar7 = DAT_182671590;
  lVar2 = DAT_182671560;
  uVar15 = CONCAT44(uVar1,DAT_182671584);
  uVar17 = (ulonglong)DAT_182671888;
  uVar25 = (ulonglong)DAT_182671590;
  DAT_182671584 = uVar24;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x3d85666a)) =
       CONCAT44(uVar10,iVar4) ^ uVar15 ^ 0x84de9d5530751e5;
  *(undefined8 *)(lVar3 + -0x470) = *(undefined8 *)(lVar3 + -0x18);
  *(undefined8 *)(lVar3 - (uVar23 ^ 0x8d31c734)) = *(undefined8 *)(lVar3 + -0x298);
  *(ulonglong *)(lVar2 + -0x1a8) = *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x454f7b18)) ^ uVar17
  ;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xb81dbc74)) = *(ulonglong *)(lVar2 + -0xac8) ^ uVar22;
  bVar12 = (byte)DAT_1826717f0;
  pbVar16 = (byte *)(*(ulonglong *)(lVar2 + -0xd18) ^ uVar22);
  *(byte **)(lVar2 + -0xd80) = pbVar16 + (CONCAT44(uVar1,uVar24) ^ 0x8d31cdfc454f7f69);
  *(byte *)(lVar2 + -0x439) = bVar12 ^ *pbVar16 ^ (byte)DAT_182671718;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x8d31cacc)) ^ (ulonglong)DAT_182671870) = 0x4e;
  lVar2 = DAT_182671560;
  bVar19 = *(byte *)(DAT_182671560 + -0x439);
  pbVar16 = (byte *)(uVar17 ^ *(ulonglong *)(DAT_182671560 + -0x1a8));
  *(ulonglong *)(DAT_182671560 + -0x240) =
       CONCAT44(uVar7,uVar24) ^ *(ulonglong *)(DAT_182671560 + -0x270) ^ 0xa70f5865d2177cae;
  *(byte **)(lVar2 + -0xbc8) = pbVar16 + 1;
  *(longlong *)(lVar2 + -0x110) = *(longlong *)(lVar2 + -0x400) - *(longlong *)(lVar2 + -0x3f0);
  *pbVar16 = bVar12 ^ bVar19;
  *(undefined8 *)(lVar2 + -0xae8) = *(undefined8 *)(lVar2 + -0xbc8);
  uVar17 = (ulonglong)DAT_18267177c;
  *(byte *)(lVar2 + -0x439) = (byte)uVar24 ^ 0x8c;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar7 ^ 0xb81dba5c)) = *(undefined8 *)(lVar2 + -0xd80);
  bVar19 = (byte)DAT_1826715f8;
  uVar22 = (ulonglong)DAT_182671810;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0xc9cab656)) =
       (CONCAT44(uVar1,uVar7) ^ 0xdce08b637e6a7f12) << (((byte)uVar24 ^ 0x73) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd20) = uVar17 ^ *(ulonglong *)(lVar2 + -0xae8);
  *(ulonglong *)(lVar2 + -0x198) = *(ulonglong *)(lVar2 + -0xb30) ^ uVar22;
  uVar15 = (ulonglong)DAT_182671574;
  *(ulonglong *)(lVar2 + -0x6b8) = 0xa66eb1a6da8f4c8e >> (((byte)uVar5 ^ 0x2d) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc30) =
       (CONCAT44(uVar20,DAT_18267159c) ^ 0xcab73c66bebfcac8) + *(ulonglong *)(lVar2 + -0xb30);
  *(byte *)(lVar2 + -0x679) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar15 ^ 0xeeddf863)) ^ uVar22) ^ bVar19 ^
       (byte)DAT_182671718;
  uVar11 = DAT_1826715b4;
  *(byte *)(lVar2 + -0x54b) = (byte)uVar28 ^ 0x5e;
  *(byte *)(*(ulonglong *)(lVar2 + -0x620) ^ (ulonglong)DAT_182671664) = (byte)uVar11 ^ 0x53;
  *(longlong *)(lVar2 + -0x750) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671594 ^ 0xc7720fec)) ^ uVar17) + 1;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x8d31c60c)) =
       *(ulonglong *)(lVar2 + -0x548) >> (((byte)uVar21 ^ 0x43) & 0x3f);
  bVar12 = (byte)DAT_182671598;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar25 ^ 0xb81dbc4c)) ^ uVar17) =
       bVar19 ^ *(byte *)(lVar2 + -0x679);
  *(byte *)(lVar2 + -0x679) = bVar12 ^ 5;
  *(longlong *)(lVar2 - (uVar26 ^ 0x8cdf187)) = *(longlong *)(lVar2 + -0x750);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar14 * 4) = uVar13 ^ uVar20;
  return;
}



############ FUN_ 180ed67f0 size=2769 ############

void FUN_180ed67f0(void)

{
  byte *pbVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  int iVar23;
  uint uVar24;
  
  uVar8 = DAT_1826715cc;
  uVar7 = DAT_1826715c0;
  uVar24 = DAT_1826715a8;
  uVar12 = DAT_18267158c;
  uVar6 = DAT_18267157c;
  uVar4 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar10 = DAT_1826715a8 * DAT_182671590;
  uVar14 = (ulonglong)uVar10;
  uVar17 = *(uint *)(&DAT_182611e78 + DAT_182671934) ^ DAT_1826715a8;
  uVar11 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar10 ^ 0x1ba81e88) + (longlong)DAT_182671934) ^
           DAT_182671590;
  uVar15 = (ulonglong)DAT_1826715a8;
  uVar18 = (ulonglong)DAT_18267158c;
  uVar21 = (ulonglong)DAT_18267157c;
  bVar13 = *(byte *)(DAT_182671560 + -0x711) ^ (byte)DAT_1826716e8;
  uVar19 = CONCAT44(DAT_18267158c,DAT_18267157c);
  DAT_182671588 = uVar10;
  *(ulonglong *)(DAT_182671560 + -0x270) = uVar19 ^ 0x31929ffc2ff3f3a3;
  *(ulonglong *)(lVar2 + -0x638) = CONCAT44(uVar24,uVar12) ^ 0x6693322aa4f38c4c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8c8) ^ (ulonglong)DAT_182671720) = bVar13;
  uVar16 = (ulonglong)DAT_1826716dc;
  *(undefined1 *)(lVar2 + -0x711) = 0xa2;
  *(ulonglong *)(lVar2 + -0xbf0) =
       *(ulonglong *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0x6a0)) ^
       CONCAT44(uVar7,uVar7);
  *(undefined8 *)(lVar2 + -0x6a0) = 0xa0b74f4268364268;
  *(undefined8 *)(lVar2 + -0x150) = *(undefined8 *)(lVar2 + -0x650);
  *(ulonglong *)(lVar2 + -0x650) = CONCAT44(uVar10,uVar10) ^ 0xdbe0dc601928bbdc;
  *(undefined8 *)(lVar2 + -0x4f0) = *(undefined8 *)(lVar2 + -0x558);
  *(ulonglong *)(lVar2 + -0x558) = CONCAT44(uVar24,uVar4) ^ 0xb679cba2a412d056;
  *(undefined8 *)(lVar2 - (uVar15 ^ 0xb389d10c)) = 0x966e1e7fd3278291;
  *(ulonglong *)(lVar2 + -0x1d8) = uVar19 ^ 0xd5784d5b159e99d9;
  *(ulonglong *)(lVar2 + -0x188) = *(ulonglong *)(lVar2 + -0x150) ^ uVar16;
  uVar20 = CONCAT44(uVar4,uVar24);
  pbVar1 = *(byte **)(lVar2 + -0x4f0);
  *(ulonglong *)(lVar2 + -0x150) = uVar20 ^ 0x59022ae574f46416;
  uVar19 = (ulonglong)DAT_1826718b4;
  *(undefined8 *)(lVar2 + -0x4f0) = 0x63286c4bce742a5e;
  *(ulonglong *)(lVar2 + -0xc80) = (ulonglong)pbVar1 ^ uVar19;
  *(byte **)(lVar2 + -0x300) = pbVar1 + 1;
  *(byte *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0x603a9f01)) =
       *pbVar1 ^ (byte)DAT_1826717b4 ^ (byte)uVar8;
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0xf66b5d36)) = uVar6 ^ 0xa4f635a2;
  *(uint *)((ulonglong)DAT_182671780 ^ *(ulonglong *)(lVar2 + -0x518)) = uVar12 ^ 0xee903b42;
  *(undefined8 *)(lVar2 + -0x518) = 0x60c7cb41964019f8;
  *(undefined8 *)(lVar2 + -0xc80) = 0x8a0d7e0e9cbd46e9;
  *(ulonglong *)(lVar2 + -0x318) =
       CONCAT44(uVar4,uVar6) ^ 0xd00e8234b51a5d46 | *(ulonglong *)(lVar2 + -0xbf0);
  uVar5 = DAT_182671568;
  uVar15 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar2 + -0x8c0) =
       (*(ulonglong *)(lVar2 + -0x188) ^ uVar16) + (uVar20 ^ 0xdd04b389b389dd05);
  lVar3 = DAT_182671560;
  *(byte *)(*(ulonglong *)(DAT_182671560 - (uVar15 ^ 0xdd04b201)) ^ uVar16) =
       *(byte *)(lVar2 + -0xb39) ^ (byte)uVar8;
  *(undefined1 *)(lVar3 - (uVar14 ^ 0x1ba815a1)) = 0x55;
  *(undefined8 *)(lVar3 - (uVar14 ^ 0x1ba81a28)) = *(undefined8 *)(lVar3 - (uVar14 ^ 0x1ba81658));
  uVar22 = (ulonglong)DAT_1826716b4;
  *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671590 ^ 0xf66b5ce6)) = 0xdafd9b33979ef859;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar5 ^ 0xdd04b391)) = *(undefined8 *)(lVar3 + -0x300);
  *(ulonglong *)(lVar3 + -0x300) = CONCAT44(DAT_182671590,uVar6) ^ 0x5a0cf684dd41c195;
  *(ulonglong *)(lVar3 + -0x298) = *(ulonglong *)(lVar3 + -0x4b0) ^ uVar22;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x4b0) = CONCAT44(uVar12,DAT_182671590) ^ 0x242bc037a700e574;
  uVar16 = (ulonglong)DAT_1826715b8;
  *(ulonglong *)(lVar2 - (uVar14 ^ 0x1ba81f68)) =
       CONCAT44(uVar10,DAT_182671590) ^ uVar20 ^ 0x37fd6ae18a2ef768;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0xf66b55d6)) =
       CONCAT44(uVar24,DAT_182671590) ^ 0x4e5532396678fd29;
  uVar19 = *(ulonglong *)(lVar2 + -0x18);
  *(ulonglong *)(lVar2 + -0x18) = CONCAT44(uVar24,uVar4) ^ 0x13fda0e3a297cdd6;
  *(ulonglong *)(lVar2 + -0x470) = uVar19 ^ uVar16;
  *(ulonglong *)(lVar2 + -0xd90) = (CONCAT44(uVar10,uVar6) ^ 0x1ba81e988335e0ae) + uVar19;
  *(ulonglong *)(lVar2 + -0x8a8) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0xf66b573e)) ^
       *(ulonglong *)(lVar2 - (uVar21 ^ 0x8335eb5f));
  *(undefined8 *)(lVar2 - (uVar18 ^ 0x603a9fc8)) = 0xef8d355f9b6a368b;
  *(undefined8 *)(lVar2 + -0x318) = 0x3bc7a5eac16054ad;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x8335e807)) = CONCAT44(uVar12,uVar24) ^ 0x567c63a82d5540e6;
  uVar7 = DAT_1826715b0;
  *(byte *)(lVar2 + -0xc41) =
       *(byte *)(uVar16 ^ *(ulonglong *)(lVar2 + -0x470)) ^ (byte)DAT_18267174c ^
       (byte)DAT_1826717b4;
  *(ulonglong *)(lVar2 + -0x470) = CONCAT44(uVar12,uVar24) ^ 0xd7702dff2f99d7db;
  uVar18 = CONCAT44(uVar7,DAT_1826715b4);
  uVar19 = CONCAT44(DAT_1826715b4,uVar12);
  *(ulonglong *)(lVar2 + -0x730) =
       (CONCAT44(uVar6,uVar24) ^ 0x8335e0afb389dd05) + (uVar22 ^ *(ulonglong *)(lVar2 + -0x298));
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671590 ^ 0xf66b5256)) =
       CONCAT44(uVar7,uVar5) ^ 0xfa7d76ccb4e7be16;
  *(ulonglong *)(lVar2 - (uVar14 ^ 0x1ba81410)) = uVar19 ^ 0x94aa75f9b11e31ab;
  bVar13 = *(byte *)(lVar2 + -0xc41) ^ (byte)DAT_18267174c;
  *(ulonglong *)(lVar2 + -0x240) = CONCAT44(uVar6,uVar10) ^ 0x2663982e1d25e6d5;
  *(byte *)(uVar22 ^ *(ulonglong *)(lVar2 + -0x298)) = bVar13;
  *(byte *)(lVar2 + -0xc41) = (byte)DAT_18267159c ^ 0xd5;
  *(undefined8 *)(lVar2 + -0xd18) = *(undefined8 *)(lVar2 + -0x730);
  *(ulonglong *)(lVar2 + -0x730) = CONCAT44(DAT_182671590,uVar6) ^ 0x11b9780e1e00dc74;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xdd04b309)) = uVar18 ^ 0x98224ca0503004 | 0x9f26dc23420fcbd2;
  uVar6 = DAT_182671584;
  uVar19 = (ulonglong)DAT_1826717c0;
  uVar14 = (ulonglong)DAT_182671664;
  *(ulonglong *)(lVar2 + -0x80) = CONCAT44(uVar24,DAT_1826715ac) ^ 0xd531bc6e917ffbe0;
  *(undefined8 *)(lVar2 + -0xbc8) = *(undefined8 *)(lVar2 + -0xd90);
  *(undefined8 *)(lVar2 + -0xd90) = 0x8dc87e4dd8d5a31;
  *(ulonglong *)(lVar2 + -0x898) = CONCAT44(uVar4,DAT_1826715a0) ^ 0xdf5096a1bd19b893;
  *(ulonglong *)(lVar2 + -0xd80) = uVar14 ^ *(ulonglong *)(lVar2 + -0xd18);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar6 ^ 0x5f77a14c)) = 0xdc370fea59566f81;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0x55425fab)) =
       *(ulonglong *)(lVar2 + -0xbc8) ^ uVar19;
  uVar4 = DAT_18267156c;
  *(undefined8 *)(lVar2 + -0xbc8) = 0x24a9124fb05fd492;
  uVar24 = uVar4 << 0x10 | uVar4 >> 0x10;
  *(ulonglong *)(lVar2 + -0xb68) = (*(ulonglong *)(lVar2 + -0xae8) ^ uVar19) + 1;
  DAT_182671590 = uVar24;
  *(byte *)(lVar2 + -0xb49) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0xfef9f557)) ^ uVar19) ^
       (byte)DAT_182671704 ^ (byte)DAT_1826717b4;
  uVar15 = (ulonglong)uVar4;
  *(ulonglong *)(lVar2 + -0xae8) = CONCAT44(uVar4,uVar4) ^ 0x870a17570665575f;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0xfef9fc2f)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0xfef9f23f)) ^ uVar14) +
       (CONCAT44(uVar4,uVar24) ^ 0xffbffef9fef9ffbe);
  uVar5 = DAT_182671580;
  uVar16 = (ulonglong)DAT_182671580;
  uVar18 = CONCAT44(DAT_182671580,uVar4);
  *(byte *)(*(ulonglong *)(lVar2 + -0xd80) ^ uVar14) =
       *(byte *)(lVar2 - (uVar15 ^ 0xffbff5b0)) ^ (byte)DAT_182671704;
  uVar12 = uVar5 << 0x10 | uVar5 >> 0x10;
  bVar9 = (byte)(uVar4 >> 0x10);
  *(byte *)(lVar2 + -0xb49) = bVar9 ^ 0x12;
  *(undefined8 *)(lVar2 + -0x748) = 0xfdb8f03dc0dc3a3b;
  *(undefined8 *)(lVar2 + -0x750) = *(undefined8 *)(lVar2 + -0x390);
  uVar19 = CONCAT44(uVar12,uVar5);
  DAT_1826715ac = uVar12;
  *(ulonglong *)(lVar2 + -0x390) = uVar19 ^ 0x60efc43a524b5620;
  *(undefined8 *)(lVar2 + -0xaa0) = *(undefined8 *)(lVar2 - ((ulonglong)uVar12 ^ 0xacb6bdc4));
  *(ulonglong *)(lVar2 + -0xb68) = uVar19 ^ 0x5554d2aedf77175d;
  *(ulonglong *)(lVar2 + -0x548) = *(ulonglong *)(lVar2 + -0x110) >> (((byte)uVar5 ^ 0xbf) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = uVar18 ^ 0x43b07d3b3a6e90a6;
  uVar20 = (ulonglong)DAT_1826716d4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xffbffbb1)) = uVar19 ^ 0xca61547830a4e86a;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar15 ^ 0xffbffa81)) =
       uVar20 ^ *(ulonglong *)(DAT_182671560 + -0x750);
  uVar14 = (ulonglong)DAT_18267179c;
  *(ulonglong *)(lVar2 + -0x750) = CONCAT44(uVar24,uVar5) ^ 0x622488484d4d7851;
  iVar23 = uVar6 * DAT_18267159c;
  uVar19 = *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xb6aca616));
  DAT_182671574 = iVar23;
  *(undefined8 *)(lVar2 + -0xaa0) = 0xf7fd7f8d9e9830e6;
  *(ulonglong *)(lVar2 + -0x3d0) = uVar19 ^ uVar14;
  bVar13 = (byte)DAT_1826718c4;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x170) = (CONCAT44(uVar24,uVar12) ^ 0xfef9ffbfacb6b6ad) + uVar19;
  *(byte *)(lVar2 + -0x67a) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar16 ^ 0xb6acaf66)) ^ uVar14) ^ bVar13 ^
       (byte)DAT_1826717b4;
  *(ulonglong *)(lVar2 + -0x3d0) = CONCAT44(uVar24,uVar4) ^ 0x6f7045480e006d98;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xffbffe99)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0xfef9fbc7)) ^ uVar20) +
       (CONCAT44(uVar4,uVar5) ^ 0xffbffef9b6acacb7);
  *(ulonglong *)(lVar2 + -0x628) = uVar18 ^ 0xdc4f7e50f6991bc8;
  *(byte *)(*(ulonglong *)(lVar2 + -0x478) ^ uVar20) = bVar13 ^ *(byte *)(lVar2 + -0x67a);
  *(undefined8 *)(lVar2 + -0xba0) = *(undefined8 *)(lVar2 + -0x60);
  *(byte *)(lVar2 + -0x67a) = bVar9 ^ 0x62;
  *(ulonglong *)(lVar2 + -0x60) = CONCAT44(iVar23,uVar6) ^ 0xaafb4fdc9f55bd19;
  *(undefined8 *)(lVar2 + -0x198) = *(undefined8 *)(lVar2 + -0x170);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar11 * 4) = uVar17;
  return;
}



############ FUN_ 180f06630 size=4284 ############

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

void FUN_180f06630(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong *puVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  longlong lVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint *puVar39;
  ulonglong uVar40;
  
  uVar7 = DAT_182671820;
  uVar12 = DAT_1826717c0;
  uVar21 = DAT_1826716c4;
  uVar6 = DAT_182671668;
  uVar8 = DAT_1826715b0;
  uVar25 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar11 = (ulonglong)DAT_182671570;
  uVar26 = (ulonglong)DAT_1826715b0;
  uVar28 = DAT_1826715b0 - DAT_182671570;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar11 ^ 0xfe75eff0) + (longlong)DAT_1826719cc);
  uVar9 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_182671570 ^ 0xfe75efe8) + (longlong)DAT_1826719cc) ^
          DAT_1826715b0;
  uVar34 = (ulonglong)DAT_1826715b0;
  uVar35 = (ulonglong)DAT_1826716c4;
  DAT_1826715a8 = uVar28;
  *(uint *)(DAT_182671560 + -0x968) =
       *(uint *)(DAT_182671560 + -0x328) ^ DAT_182671820 ^ DAT_182671788;
  *(ulonglong *)(lVar2 + -0x9c8) = *(ulonglong *)(lVar2 + -0x350);
  uVar17 = (ulonglong)uVar28;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar28 ^ 0x2cd6f63c)) = uVar35 ^ *(ulonglong *)(lVar2 + -0x350)
  ;
  uVar21 = *(uint *)((ulonglong)uVar21 ^ *(ulonglong *)(lVar2 + -0x58)) ^ DAT_18267173c ^ uVar12;
  *(uint *)(lVar2 + -0x754) = uVar21;
  lVar3 = DAT_182671560;
  *(uint *)(lVar2 - ((ulonglong)uVar8 ^ 0x2b4cee18)) =
       (int)(uVar21 ^ DAT_18267173c) >> (((byte)uVar28 ^ 0x7b) & 0x1f) ^ DAT_182671698;
  puVar39 = (uint *)(lVar2 - (uVar17 ^ 0x2cd6ff0c));
  uVar23 = CONCAT44(uVar12,uVar12);
  uVar12 = (*(uint *)(lVar2 + -0x844) ^ DAT_182671698) & (*puVar39 ^ uVar7) ^ uVar6;
  *(uint *)(lVar2 + -0x344) = uVar12;
  uVar21 = _DAT_182671868;
  uVar29 = DAT_182671734;
  uVar33 = (ulonglong)DAT_182671734;
  *(uint *)(lVar3 + -0x374) = *(uint *)(lVar2 + -0x968) ^ uVar12 ^ DAT_182671734 ^ uVar6 ^ uVar7;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xfe75ece0)) =
       *(ulonglong *)(CONCAT44(uVar21,uVar21) ^ *(ulonglong *)(lVar3 + -0x690)) ^ uVar23;
  uVar30 = DAT_18267189c;
  uVar16 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar31 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x2b4ce5ac)) =
       (longlong)(int)(*(uint *)(lVar3 + -0x344) ^ uVar6) ^ uVar16;
  uVar4 = DAT_1826718b4;
  lVar2 = DAT_182671560;
  uVar32 = CONCAT44(DAT_182671874,DAT_182671874);
  puVar15 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x9c8) + 8 +
            (CONCAT44(uVar25,uVar8) ^ 0xfe75eff82b4ce65c) * 0x10);
  *(ulonglong *)(lVar3 + -0x690) = (ulonglong)puVar15 ^ uVar32;
  uVar27 = *puVar15 ^ uVar31 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x400) = uVar27;
  uVar24 = CONCAT44(uVar4,uVar4);
  uVar19 = uVar24 ^ uVar16;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       *(ulonglong *)(lVar2 - (uVar17 ^ 0x2cd6f594)) ^ CONCAT44(uVar8,uVar25) ^ uVar19 ^
       0xd4b319a3018a1007;
  lVar3 = DAT_182671560;
  uVar20 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(DAT_182671560 - (uVar17 ^ 0x2cd6f04c)) =
       (*(ulonglong *)(DAT_182671560 - (uVar34 ^ 0x2b4ce02c)) ^ uVar24) & (uVar31 ^ uVar27) ^ uVar20
  ;
  uVar21 = DAT_182671568;
  uVar16 = (uVar16 ^ *(ulonglong *)(lVar3 + -0x3f0)) & *(ulonglong *)(lVar3 + 0x20);
  uVar36 = CONCAT44(DAT_182671818,DAT_182671818);
  uVar31 = (ulonglong)DAT_182671568;
  uVar24 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *(ulonglong *)(lVar3 + -0xa80) = uVar16 ^ uVar36;
  uVar7 = DAT_182671700;
  uVar16 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0x2b4ce074)) ^ uVar20 | uVar16) ^ uVar24;
  *(ulonglong *)(lVar3 + -0x898) = uVar16;
  *(ulonglong *)(uVar32 ^ *(ulonglong *)(lVar3 + -0x690)) = uVar24 ^ uVar23 ^ uVar16;
  uVar12 = *(uint *)(lVar3 + -0x754) ^ DAT_18267173c;
  uVar13 = *(uint *)(lVar3 + -0x344) ^ uVar7 ^ uVar21 ^ uVar6 ^ 0x84977cb8;
  *(uint *)(lVar3 + -0x328) = uVar13;
  uVar10 = (*(uint *)(lVar3 + -0x344) ^ uVar6) & *(uint *)(lVar3 + 0x28) ^ DAT_1826717c4;
  *(uint *)(lVar3 + -0x844) = (uVar13 ^ uVar7) & uVar12 ^ DAT_1826715b8;
  *(uint *)(lVar3 + -0x968) = uVar10;
  uVar24 = CONCAT44(DAT_1826716e4,DAT_1826716e4);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x2b4ce544)) =
       CONCAT44(uVar28,uVar28) ^ uVar24 ^ *(ulonglong *)(lVar3 + -0xbf0) ^ 0x1272881293262947;
  uVar12 = (*(uint *)(lVar3 + -0x968) ^ DAT_1826717c4 | *(uint *)(lVar3 + -0x844) ^ DAT_1826715b8) ^
           DAT_18267162c;
  *(uint *)(lVar3 + -0x754) = uVar12;
  *(uint *)(uVar35 ^ *(ulonglong *)(lVar3 + -0x58)) = uVar12 ^ DAT_18267162c ^ DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0x98) = *(longlong *)(lVar3 - (uVar11 ^ 0xfe75e630)) + 4U ^ uVar33;
  uVar10 = DAT_1826716e0;
  uVar12 = DAT_1826715ac;
  uVar21 = *(uint *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x7b6883df)) ^ uVar33) ^
           DAT_18267166c ^ DAT_1826717c0;
  *(uint *)(lVar3 + -0x844) = uVar21;
  *puVar39 = (*(uint *)(lVar3 - (uVar26 ^ 0x2b4ce574)) ^ uVar7) & (uVar21 ^ DAT_18267166c) ^
             DAT_182671718;
  *(undefined1 *)(lVar3 + -0x41) = **(undefined1 **)(lVar3 + -0x900);
  uVar16 = (ulonglong)DAT_1826715a0;
  *(uint *)(lVar3 + -0x47c) = (*(uint *)(lVar3 + -0x344) ^ uVar6) & 4 ^ DAT_182671774;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar12 ^ 0xc9ebf824)) =
       **(undefined1 **)(lVar3 - (uVar16 ^ 0x2a40e1e8));
  uVar21 = (*(uint *)(lVar3 + -0x47c) ^ DAT_182671774 | *(uint *)(lVar3 + -0x968) ^ DAT_182671718) ^
           DAT_182671850;
  *(uint *)(lVar3 + -0x328) = uVar21;
  *(uint *)((ulonglong)uVar29 ^ *(ulonglong *)(lVar3 + -0x98)) =
       uVar21 ^ DAT_182671850 ^ DAT_1826717c0;
  *(undefined8 *)(lVar3 + -0x400) = 0;
  uVar29 = *(uint *)(lVar3 + -0x374) ^ uVar30 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x888) =
       (CONCAT44(uVar25,uVar25) ^ 0xfe75eff8fe75eff9) * 0x10 +
       *(longlong *)(lVar3 - (uVar17 ^ 0x2cd6ffac));
  *(uint *)(lVar3 + -0x844) = uVar29;
  uVar30 = uVar29 ^ uVar10 ^ uVar30;
  lVar2 = *(longlong *)(lVar3 - ((ulonglong)DAT_182671588 ^ 0x2dfbe341));
  *(longlong *)(lVar3 + -0x350) = lVar2;
  *(uint *)(lVar3 + -0x344) = uVar30;
  *(longlong *)(lVar3 + -0x9c8) = lVar2;
  uVar29 = DAT_182671708;
  uVar21 = DAT_1826715b4;
  uVar6 = DAT_182671594;
  uVar12 = DAT_18267158c;
  uVar37 = (ulonglong)DAT_18267158c;
  uVar35 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar3 + -0x318) =
       uVar36 ^ *(ulonglong *)(lVar3 + -0x110) ^ *(ulonglong *)(lVar3 + -0xa80);
  uVar7 = DAT_18267159c;
  puVar39 = (uint *)((CONCAT44(uVar21,uVar25) ^ 0x1fb7aff7fe75eff8) * 0x10 + lVar2);
  *(ulonglong *)(lVar3 + -8) = (ulonglong)puVar39 ^ (ulonglong)DAT_182671748;
  uVar21 = DAT_182671578;
  uVar27 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar3 + -0x400) =
       (CONCAT44(DAT_182671588,uVar12) ^ 0x9a19a13a1ac974b2) +
       (uVar24 ^ *(ulonglong *)(lVar3 + -0xbf0));
  uVar25 = DAT_182671878;
  uVar38 = (ulonglong)uVar21;
  uVar12 = *puVar39 ^ uVar29 ^ DAT_1826717c0;
  *(uint *)(lVar3 + -0x47c) = uVar12;
  uVar12 = (int)(uVar12 ^ uVar29) >> (((byte)uVar7 ^ 0x17) & 0x1f) ^ DAT_182671834;
  *(uint *)(lVar3 + -0x968) = uVar12;
  uVar12 = (uVar12 ^ DAT_182671834) & (uVar30 ^ uVar10);
  uVar16 = (ulonglong)DAT_1826715a4;
  *(uint *)(lVar3 + -0x374) = uVar12 ^ uVar25;
  lVar2 = DAT_182671560;
  uVar14 = uVar6 * uVar21;
  *(uint *)(lVar3 + -0x844) =
       *(uint *)(lVar3 - (uVar16 ^ 0xeff8fd01)) ^ uVar30 ^ DAT_182671864 ^ uVar25 ^ uVar10;
  uVar33 = (ulonglong)uVar14;
  uVar40 = CONCAT44(DAT_18267185c,DAT_18267185c);
  DAT_182671588 = uVar14;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x70ee0d10)) = (longlong)(int)uVar12 ^ uVar40;
  lVar18 = (CONCAT44(uVar21,uVar6) ^ 0x85048e04d77dca0) * 0x10;
  uVar24 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  *(ulonglong *)(lVar2 + -0xf8) = *(longlong *)(lVar2 + -0x9c8) + 8 + lVar18 ^ uVar24;
  uVar4 = _DAT_1826715d8;
  *(ulonglong *)(lVar2 + -0x318) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x4d77dad0)) ^ uVar19 ^
       *(ulonglong *)(lVar2 + -0x3f0);
  uVar32 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x70ee0800)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x8504818)) ^ uVar24) ^ uVar32 ^
       uVar23;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x8504b10)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x8504ec8)) ^ uVar20) + 0xb77427adfbafa1ea;
  uVar16 = CONCAT44(DAT_18267169c,DAT_18267169c);
  uVar34 = ~uVar16 ^ uVar40 ^ *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0x670) = uVar34;
  lVar2 = DAT_182671560;
  uVar19 = (CONCAT44(uVar14,uVar21) ^ 0x98774a0620dcaf95) >> (((byte)uVar6 ^ 0xa3) & 0x3f);
  uVar20 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  puVar15 = (ulonglong *)(DAT_182671560 + -0x400);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar19;
  uVar16 = (uVar34 ^ uVar16) & (uVar32 ^ *puVar15);
  *(ulonglong *)(lVar2 + -0x628) = uVar16 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x400) = *(ulonglong *)(lVar2 - (uVar33 ^ 0x70ee0680)) ^ uVar19 ^ uVar36;
  uVar25 = DAT_182671894;
  uVar19 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar2 + -0x670) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0x85049f0)) ^ uVar40) &
       *(ulonglong *)((uVar35 ^ 0x4d77dc80) + lVar2) ^ uVar19;
  uVar4 = DAT_182671784;
  *(undefined1 *)(lVar2 + -0xcca) = **(undefined1 **)(lVar2 + -0x5b8);
  uVar16 = *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x8504e90)) ^ uVar19 | uVar16;
  *(ulonglong *)(lVar2 + -0xa80) = uVar16 ^ CONCAT44(uVar4,uVar4);
  *(ulonglong *)(uVar24 ^ *(ulonglong *)(lVar2 + -0xf8)) = uVar16 ^ uVar23;
  uVar30 = DAT_182671878;
  *(uint *)(lVar2 + -0x968) =
       *(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x4d77dfd4)) ^ uVar25 ^ uVar21 ^ DAT_182671878 ^
       0xf7afb71f;
  lVar3 = DAT_182671560;
  puVar39 = (uint *)(lVar2 - (uVar33 ^ 0x70ee0f44));
  *puVar39 = (*(uint *)(DAT_182671560 - (uVar33 ^ 0x70ee087c)) ^ uVar29) &
             (*(uint *)(DAT_182671560 - (uVar38 ^ 0x8504188)) ^ uVar25) ^ DAT_182671848;
  *(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x8504c9c)) =
       *(uint *)(((ulonglong)uVar6 ^ 0x4d77dc88) + lVar3) & (*(uint *)(lVar3 + -0x374) ^ uVar30) ^
       DAT_182671710;
  uVar24 = (ulonglong)DAT_1826715e4;
  *(uint *)(lVar3 + -0x5cc) =
       (*(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0x4d77d8dc)) ^ DAT_182671710 |
       *(uint *)(lVar3 + -0x344) ^ DAT_182671848) ^ DAT_1826716d4;
  uVar29 = DAT_1826717c0;
  *(uint *)((ulonglong)DAT_182671748 ^ *(ulonglong *)(lVar3 + -8)) =
       *(uint *)(lVar3 - (uVar33 ^ 0x70ee09cc)) ^ DAT_1826716d4 ^ DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0x518) = *(longlong *)(lVar3 + -0x9c8) + 4 + lVar18 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x318) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0xedf0ef61)) ^ uVar40) >> (((byte)uVar8 ^ 0x53) & 0x3f);
  uVar21 = DAT_1826717b8;
  *(uint *)(lVar3 + -0x344) =
       *(uint *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0x8504df8)) ^ uVar24) ^ DAT_1826717b8 ^ uVar29;
  *(undefined8 *)(lVar3 - (uVar26 ^ 0x2b4ce25c)) = 0x8064;
  lVar2 = DAT_182671560;
  uVar22 = (*(uint *)(lVar3 - (uVar33 ^ 0x70ee0568)) ^ uVar25) & (uVar21 ^ *puVar39) ^ DAT_182671614
  ;
  puVar15 = (ulonglong *)(DAT_182671560 + -0x110);
  *(uint *)(DAT_182671560 + -0x47c) = uVar22;
  *(ulonglong *)(lVar2 + -0x628) = uVar40 ^ *puVar15 ^ 0x3c0ff7b3a9427a87;
  uVar10 = DAT_18267173c;
  uVar25 = DAT_1826715a0;
  uVar7 = DAT_18267159c;
  uVar21 = DAT_182671598;
  uVar12 = DAT_182671584;
  lVar3 = DAT_182671560;
  uVar30 = (*(uint *)(lVar2 - (uVar38 ^ 0x8504b94)) ^ uVar30) & (uVar6 ^ 0x4d77dca4);
  uVar13 = uVar30 ^ DAT_182671630;
  uVar16 = *(ulonglong *)(DAT_182671560 + -0x518);
  uVar27 = (ulonglong)DAT_182671598;
  uVar26 = (ulonglong)DAT_18267159c;
  uVar32 = (ulonglong)DAT_182671584;
  *(uint *)(DAT_182671560 + -0x344) = (uVar30 | uVar22 ^ DAT_182671614) ^ _DAT_182671868;
  *(uint *)(lVar3 + -0x678) = uVar13;
  uVar5 = DAT_182671590;
  *(uint *)(uVar24 ^ uVar16) = *(uint *)(lVar3 - (uVar17 ^ 0x2cd6f520)) ^ _DAT_182671868 ^ uVar29;
  uVar24 = (CONCAT44(uVar25,uVar14) ^ 0x2a40e45070ee0c01) * 0x10 + *(longlong *)(lVar3 + -0x9c8);
  uVar25 = *(uint *)(lVar3 + -0x844) ^ DAT_1826716a0 ^ DAT_182671864;
  *(uint *)(lVar3 + -0x968) = uVar25;
  uVar25 = uVar25 ^ DAT_182671758 ^ DAT_1826716a0;
  *(ulonglong *)(lVar3 + -0x888) = CONCAT44(uVar21,uVar8) ^ 0x238e830cfeb20685;
  *(ulonglong *)(lVar3 + -0x350) = uVar24;
  uVar4 = DAT_18267157c;
  uVar16 = (ulonglong)DAT_182671738;
  *(ulonglong *)(lVar3 + -0x670) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar11 ^ 0xfe75ecd8)) ^ CONCAT44(uVar10,uVar10)) ^
       uVar23;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar24;
  *(uint *)(lVar3 + -0x374) = uVar25;
  uVar25 = DAT_182671580;
  *(ulonglong *)(lVar3 + -0x350) = CONCAT44(uVar4,uVar6) ^ 0x32b2c6d540aa9bfe;
  *(ulonglong *)(lVar3 + -0x858) = uVar24 ^ uVar16;
  uVar10 = DAT_1826715ac;
  uVar11 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0x318) =
       (CONCAT44(uVar25,uVar7) ^ 0xe030ce6e98847f07) + (CONCAT44(uVar5,uVar12) ^ 0x6174ac135748d983)
  ;
  uVar30 = DAT_182671778;
  uVar29 = DAT_1826716a8;
  uVar7 = DAT_18267165c;
  uVar13 = *(uint *)(*(ulonglong *)(lVar3 - (uVar11 ^ 0xc9ebf375)) ^ uVar16) ^ DAT_18267165c ^
           DAT_1826717c0;
  uVar22 = DAT_18267165c ^ uVar13;
  *(uint *)(lVar3 + -0x47c) = uVar13;
  *(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0xee71eb88)) = (int)uVar22 >> 0x1f ^ uVar29;
  lVar2 = DAT_182671560;
  uVar29 = (*(uint *)(lVar3 + -0x374) ^ DAT_182671758) & (uVar29 ^ *(uint *)(lVar3 + -0x678));
  *(ulonglong *)(lVar3 + -0x400) = *(ulonglong *)(lVar3 + -0x318) >> 5;
  uVar4 = DAT_18267183c;
  *(uint *)(lVar3 + -0x844) = uVar29 ^ uVar30;
  uVar19 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x7b688257)) = (longlong)(int)uVar29 ^ uVar19;
  uVar4 = DAT_1826718c0;
  uVar17 = CONCAT44(DAT_182671858,DAT_182671858);
  *(ulonglong *)(lVar2 + -0xb8) =
       (CONCAT44(uVar10,uVar14) ^ 0xc9ebfb2d70ee0c00) * 0x10 + *(longlong *)(lVar2 + -0x9c8) + 8 ^
       uVar17;
  lVar3 = DAT_182671560;
  uVar24 = CONCAT44(uVar4,uVar4);
  uVar16 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar8,uVar28) ^ 0xf79087f7be9564c4) << (((byte)uVar21 ^ 0xce) & 0x3f);
  uVar21 = DAT_18267156c;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_18267156c ^ 0xf3419632)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar16 ^ 0x1fb7af4f)) ^ uVar17) ^ uVar23 ^ uVar24;
  lVar2 = DAT_182671560;
  uVar16 = *(ulonglong *)(DAT_182671560 + -0x110);
  *(ulonglong *)(DAT_182671560 + -0x318) = (ulonglong)uVar21 << 0x2d ^ 0x442ba00000000000;
  *(ulonglong *)(lVar2 + -0x400) = ~uVar24 ^ uVar16 ^ uVar19;
  lVar2 = DAT_182671560;
  uVar11 = *(ulonglong *)(DAT_182671560 + 0x20);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (CONCAT44(uVar10,uVar28) ^ 0x8cae05d709258996) -
       (CONCAT44(uVar5,uVar25) ^ 0x2c4464c2d87cbd4e);
  uVar5 = DAT_1826718d4;
  uVar20 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x96258ac8)) ^ uVar24) &
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x670)) ^ uVar20;
  uVar4 = DAT_182671854;
  uVar24 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x628) = (uVar16 ^ uVar19) & uVar11 ^ uVar24;
  uVar19 = CONCAT44(uVar4,uVar4);
  uVar16 = *(ulonglong *)(lVar2 - (uVar33 ^ 0x70ee0a28));
  uVar11 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x4d77dfb8));
  *(undefined8 *)(lVar2 + -0x400) = 0x2b32e88dac209df2;
  *(ulonglong *)(lVar2 + -0x670) = (uVar16 ^ uVar24 | uVar11 ^ uVar20) ^ uVar19;
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0xb8) ^ uVar17) =
       *(ulonglong *)(lVar2 - (uVar27 ^ 0xfffff98f)) ^ uVar23 ^ uVar19;
  *(uint *)(lVar2 + -0x968) = *(uint *)(lVar2 - (uVar26 ^ 0xe048584c)) ^ ~DAT_1826718a8 ^ uVar30;
  *(uint *)(lVar2 - (uVar32 ^ 0x96258dbc)) =
       (*(uint *)(lVar2 - (uVar26 ^ 0xe0485960)) ^ DAT_1826718a8) &
       (*(uint *)(lVar2 + -0x47c) ^ uVar7) ^ DAT_182671650;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar9 * 4) = uVar1 ^ uVar28;
  return;
}



############ FUN_ 180f08cb0 size=4092 ############

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

void FUN_180f08cb0(void)

{
  longlong lVar1;
  longlong lVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  byte bVar7;
  byte bVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte *pbVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  
  uVar4 = DAT_182671590;
  iVar3 = DAT_18267157c;
  uVar13 = DAT_182671578;
  uVar30 = DAT_182671574;
  lVar1 = DAT_182671560;
  uVar21 = (ulonglong)DAT_182671590;
  uVar37 = DAT_182671590 - DAT_182671584;
  DAT_18267156c = DAT_182671588 & DAT_182671578;
  uVar19 = DAT_182671598 & DAT_182671568;
  uVar39 = DAT_182671570 * DAT_18267157c;
  uVar32 = (DAT_182671574 << 0x10 | DAT_182671574 & 0xff00) << 8 | DAT_182671574 >> 8 & 0xff00 |
           DAT_182671574 >> 0x18;
  uVar33 = uVar32 ^ 0xaa916559;
  uVar23 = *(uint *)(&DAT_182611e78 + DAT_1826719d0) ^ DAT_18267156c;
  uVar10 = *(uint *)(&DAT_182611e80 + DAT_1826719d0) ^ DAT_182671588;
  uVar14 = (ulonglong)DAT_182671578;
  uVar12 = (ulonglong)DAT_182671584;
  DAT_182671594 = uVar37;
  DAT_1826715a0 = uVar33;
  DAT_1826715ac = uVar39;
  DAT_1826715b0 = uVar19;
  *(uint *)(DAT_182671560 - (uVar14 ^ 0xc1e766b3)) =
       (_DAT_182671610 ^ *(uint *)(DAT_182671560 + -0x968)) -
       (_DAT_1826716c0 ^ *(uint *)(DAT_182671560 + -0x3d4)) ^ DAT_182671660;
  uVar17 = DAT_18267169c;
  uVar16 = DAT_182671728 ^ *(uint *)(lVar1 + -0x27c);
  uVar29 = (*(uint *)(lVar1 + -0x374) ^ _DAT_1826715e0) *
           (*(uint *)(lVar1 + -0x678) ^ DAT_182671660);
  *(uint *)(lVar1 + -0x47c) = uVar29 ^ DAT_18267169c;
  uVar6 = DAT_182671898;
  lVar2 = DAT_182671560;
  *(uint *)(lVar1 + -0x754) =
       (uVar37 ^ 0x57ea543) <<
       (((byte)*(undefined4 *)(lVar1 - (uVar12 ^ 0xa0069434)) ^ (byte)uVar17) & 0x1f);
  uVar17 = uVar16 * (uVar4 ^ 0xfffffff0) ^ DAT_182671788;
  *(uint *)(lVar1 + -0x874) = uVar17;
  puVar25 = (uint *)(lVar1 - ((ulonglong)uVar33 ^ 0xaadd7d4e));
  *puVar25 = (uVar17 ^ DAT_182671788) + uVar29 ^ DAT_182671890;
  uVar17 = *(uint *)(lVar2 + -0x910) ^ DAT_182671890;
  *(undefined8 *)(lVar2 + -0x9e8) = 0x133b8865173d15b2;
  uVar16 = uVar17 >> 0x13 ^ DAT_182671834;
  *(uint *)(lVar2 + -0x328) = uVar16;
  uVar16 = uVar16 ^ DAT_182671834;
  uVar17 = uVar17 << 0xd;
  *(uint *)(lVar2 + -0x5cc) = uVar17 ^ uVar6;
  uVar17 = (uVar16 | uVar17) ^ DAT_1826717ac;
  uVar12 = (ulonglong)DAT_182671584;
  *(longlong *)(lVar2 + -0x240) =
       *(longlong *)(lVar2 - ((ulonglong)uVar30 ^ 0x71149c8)) <<
       ((byte)*(undefined8 *)(lVar2 + -0x5c8) & 0x3f);
  uVar35 = DAT_18267159c;
  lVar1 = DAT_182671560;
  uVar26 = (ulonglong)DAT_18267159c;
  *(uint *)(lVar2 - (uVar12 ^ 0xa006980c)) = uVar17;
  uVar24 = DAT_182671624;
  uVar17 = (*(uint *)(lVar2 + -0x374) ^ _DAT_1826715e0) +
           (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^ DAT_18267172c;
  *(uint *)(lVar2 + -0x504) = uVar17;
  *(uint *)(lVar2 + -0x344) = uVar17 ^ DAT_18267172c ^ uVar24;
  uVar36 = DAT_182671690;
  uVar15 = (ulonglong)uVar39;
  *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x908649a6)) =
       *(uint *)(lVar2 - (uVar15 ^ 0x3a5f34ac)) ^ DAT_18267165c ^ DAT_1826717ac;
  uVar34 = DAT_18267158c;
  uVar29 = DAT_182671570;
  uVar12 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar2 + -0x898) =
       (CONCAT44(DAT_182671570,iVar3) ^ 0x83eda602f55073d7) - *(longlong *)(lVar2 + -0x270);
  uVar5 = DAT_18267178c;
  uVar16 = DAT_182671568;
  uVar22 = (ulonglong)DAT_182671568;
  uVar11 = uVar34 | uVar35;
  uVar18 = DAT_18267178c ^ DAT_18267165c;
  uVar17 = *(uint *)(lVar1 + -0x968);
  DAT_182671580 = uVar11;
  *(uint *)(lVar2 + -0x3d4) =
       *(uint *)(lVar2 - ((ulonglong)DAT_182671568 ^ 0x9996488a)) ^ uVar36 ^ uVar24;
  *(uint *)(lVar1 - ((ulonglong)uVar11 ^ 0x7efcf797)) = uVar18 ^ uVar17;
  uVar17 = DAT_182671588;
  lVar2 = DAT_182671560;
  uVar20 = (ulonglong)DAT_182671638;
  *(uint *)(lVar1 - (uVar26 ^ 0x54e846f3)) = *(uint *)(lVar1 + -0x678) ^ uVar5 | uVar34 ^ 0x396bd6d8
  ;
  uVar18 = DAT_1826717d8;
  lVar1 = DAT_182671560;
  uVar31 = (ulonglong)uVar34;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar33 ^ 0xaadd7e7e)) =
       *(longlong *)(lVar2 - (uVar31 ^ 0x2a7cb83d)) +
       (CONCAT44(uVar16,uVar35) ^ 0x99964bce54e841a7) * 0x20 +
       (CONCAT44(DAT_182671598,uVar17) ^ 0x90e664ff4480133c) ^ uVar20;
  bVar8 = (byte)DAT_182671768;
  *(byte *)(lVar1 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar1 + -0xa20) ^ uVar20) ^ (byte)DAT_182671768 ^
       (byte)DAT_182671694;
  *(ulonglong *)(lVar1 + -0x510) =
       (CONCAT44(iVar3,uVar11) ^ 0xb37368bf9fc390dc) + 0x44ca9731b305868c;
  *(uint *)(lVar1 + -0x27c) = (bVar8 ^ *(byte *)(lVar1 + -0xc41)) ^ uVar18;
  *(uint *)(lVar1 - (uVar12 ^ 0x568944fa)) =
       (*(uint *)(lVar1 + -0x678) ^ uVar5) + (uVar34 ^ 0x238b9618) ^ uVar18;
  uVar17 = (*(uint *)(lVar1 - ((ulonglong)uVar11 ^ 0x7efcf393)) ^ uVar18) <<
           (((byte)DAT_182671598 ^ 0xee) & 0x1f) ^ DAT_18267173c;
  *(uint *)(lVar1 + -0x874) = uVar17;
  uVar34 = DAT_182671748;
  uVar16 = DAT_182671640;
  uVar17 = (uVar18 ^ *(uint *)(lVar1 + -0x47c)) - (uVar17 ^ DAT_18267173c) ^ DAT_18267179c;
  *(ulonglong *)(lVar1 + -0xbf0) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar19 ^ 0x908646f6)) ^ *(ulonglong *)(lVar1 + -0x270);
  *(uint *)(lVar1 - (uVar21 ^ 0xfffff6ef)) = uVar17;
  uVar17 = DAT_182671584 ^ 0x2bc59194;
  *(uint *)(lVar1 - (uVar12 ^ 0x5689454a)) =
       (*(uint *)(lVar1 - (uVar26 ^ 0x54e848b7)) ^ DAT_18267179c) *
       (uVar36 ^ *(uint *)(lVar1 + -0x3d4)) ^ uVar6;
  uVar24 = DAT_1826716d4;
  uVar35 = (uVar18 ^ *(uint *)(lVar1 + -0x27c)) * (uVar37 ^ 0x5ff96fad) ^ DAT_182671818;
  *(uint *)(lVar1 + -0x328) = uVar35;
  uVar35 = uVar35 ^ DAT_182671818;
  *(uint *)(lVar1 + -0x374) = uVar17 * (uVar13 ^ 0x7929e3f2);
  uVar17 = DAT_18267156c;
  uVar40 = (ulonglong)DAT_18267156c;
  uVar35 = (*(uint *)(lVar1 - ((ulonglong)DAT_182671588 ^ 0x448016ea)) ^ uVar6) + uVar35;
  *(uint *)(lVar1 + -0x504) = uVar35 ^ uVar16;
  uVar35 = uVar35 << (((byte)uVar39 ^ 0xe5) & 0x1f);
  *(uint *)(lVar1 + -0x844) = uVar35 ^ uVar34;
  uVar20 = (ulonglong)DAT_1826715c4;
  *(byte *)(lVar1 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x4e0) ^ uVar20) ^ (byte)DAT_182671694;
  uVar16 = (*(uint *)(lVar1 - (uVar40 ^ 0x40800506)) ^ uVar16) >> 0x13;
  *(uint *)(lVar1 + -0x344) = uVar16 ^ uVar24;
  *(uint *)(lVar1 - ((ulonglong)uVar30 ^ 0x7114568)) = (uVar16 | uVar35) ^ DAT_18267186c;
  uVar34 = DAT_182671614;
  uVar35 = *(uint *)(lVar1 - ((ulonglong)uVar4 ^ 0xfffffc37)) ^ DAT_182671624;
  *(uint *)(lVar1 + -0x678) = (uVar13 ^ 0x66aa2f6) >> (((byte)DAT_18267157c ^ 0x7a) & 0x1f);
  uVar5 = DAT_182671700;
  uVar16 = DAT_182671594;
  uVar35 = uVar35 + (uVar36 ^ *(uint *)(lVar1 + -0x3d4)) ^ DAT_1826717c0;
  uVar38 = (ulonglong)DAT_182671594;
  uVar27 = CONCAT44(uVar17,DAT_182671594);
  *(uint *)(lVar1 + -0x754) = uVar35;
  *(uint *)(lVar1 + -0x47c) = uVar35 ^ DAT_1826717b0 ^ DAT_1826717c0;
  *(uint *)(lVar1 - ((ulonglong)uVar4 ^ 0xfffff78b)) =
       DAT_182671680 ^ DAT_18267186c ^ *(uint *)(lVar1 + -0x968);
  *(uint *)(lVar1 - (uVar38 ^ 0x5ff966a7)) = uVar34 ^ DAT_1826717b0 ^ *(uint *)(lVar1 + -0x47c);
  bVar8 = (byte)DAT_1826716f0;
  lVar2 = DAT_182671560;
  uVar36 = *(uint *)(lVar1 + -0x874) ^ DAT_182671718 ^ DAT_182671680;
  *(uint *)(lVar1 + -0x27c) = uVar36;
  uVar35 = DAT_1826716d0;
  pbVar28 = (byte *)((uVar27 ^ 0x408000025ff96fb2) +
                     (CONCAT44(uVar4,uVar11) ^ 0xffffffff7efcf1ef) * 0x20 +
                    *(longlong *)(lVar2 + -0x8f0));
  uVar36 = uVar36 ^ DAT_182671718;
  *(ulonglong *)(lVar2 + -0x60) = (ulonglong)pbVar28 ^ (ulonglong)DAT_1826716d0;
  uVar17 = DAT_18267156c;
  bVar7 = *pbVar28 ^ bVar8 ^ (byte)DAT_182671694;
  *(byte *)(lVar2 + -0xc41) = bVar7;
  uVar17 = uVar36 + (uVar17 ^ 0x497726d7) ^ DAT_182671644;
  *(uint *)(lVar2 + -0x374) = (bVar7 ^ bVar8) ^ uVar5;
  bVar8 = (byte)DAT_18267158c;
  *(uint *)(lVar2 - (uVar15 ^ 0x3a5f3924)) = uVar17;
  uVar17 = *(uint *)(lVar2 + -0x5cc) ^ DAT_182671644;
  *(uint *)(lVar2 + -0x328) =
       (*(uint *)(lVar2 + -0x374) ^ uVar5) << ((bVar8 ^ 0xdc) & 0x1f) ^ DAT_18267175c;
  *(uint *)(lVar2 - (uVar31 ^ 0x2a7cb5c9)) =
       uVar17 - (*(uint *)(lVar2 - (uVar22 ^ 0x999648e6)) ^ DAT_18267175c) ^ DAT_182671674;
  *(uint *)(lVar2 + -0x844) =
       (*puVar25 ^ uVar34) * (*(uint *)(lVar2 + -0x504) ^ DAT_182671674) ^ DAT_18267169c;
  uVar36 = DAT_182671574 ^ 0xee66ad5;
  *(byte *)(lVar2 - ((ulonglong)uVar16 ^ 0x5ff96ff6)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x4e0) ^ uVar20) ^ (byte)DAT_182671694;
  uVar17 = (*(uint *)(lVar2 + -0x374) ^ uVar5) * 5;
  uVar16 = DAT_18267159c ^ 0xfac6ed0c;
  *(uint *)(lVar2 + -0x344) = uVar17 ^ uVar35;
  *(uint *)(lVar2 + -0x3d4) = uVar36 + uVar16;
  uVar16 = DAT_182671850;
  bVar8 = (byte)DAT_182671598;
  uVar17 = (*(uint *)(lVar2 - (uVar40 ^ 0x40800846)) ^ DAT_18267169c) + uVar17;
  *(uint *)(lVar2 + -0x678) = uVar17 ^ DAT_182671850;
  uVar35 = uVar17 << ((bVar8 ^ 0xf2) & 0x1f) ^ DAT_1826715d4;
  uVar17 = (*(uint *)(lVar2 + -0x678) ^ uVar16) >> 0x13 ^ DAT_182671848;
  *(uint *)(lVar2 + -0x968) = uVar17;
  uVar17 = uVar17 ^ DAT_182671848;
  *(uint *)(lVar2 + -0x754) = uVar35;
  uVar20 = (ulonglong)DAT_182671598;
  *(uint *)(lVar2 - (uVar15 ^ 0x3a5f3894)) = (uVar17 | uVar35 ^ DAT_1826715d4) ^ DAT_1826716b0;
  uVar35 = DAT_1826716a8;
  lVar1 = DAT_182671560;
  uVar15 = (ulonglong)DAT_182671584;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671584 ^ 0xa006983c)) =
       (*(uint *)(lVar2 + -0x910) ^ uVar34) + (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^
       DAT_1826716b8;
  uVar34 = DAT_1826717d4;
  uVar17 = DAT_182671820 ^ DAT_1826716b0 ^ *(uint *)(lVar1 + -0x47c);
  *(uint *)(lVar1 + -0x27c) = *(uint *)(lVar2 + -0x874) ^ DAT_1826717d4 ^ DAT_1826716b8;
  *(uint *)(lVar1 + -0x328) = uVar17;
  uVar17 = uVar17 ^ DAT_1826717d0 ^ DAT_182671820;
  *(ulonglong *)(lVar1 + -0x548) =
       (CONCAT44(uVar13,uVar4) ^ 0xc549ec566e5d61c) - *(longlong *)(lVar1 + -0x8a8);
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x5cc) = *(uint *)(lVar1 - (uVar15 ^ 0xa0069234)) ^ uVar35 ^ uVar34;
  *(uint *)(lVar2 + -0x504) = uVar17;
  pbVar28 = (byte *)((CONCAT44(uVar19,uVar13) ^ 0x908640cec1e760cb) * 0x20 +
                    *(longlong *)(lVar2 + -0x8f0) + 0x10);
  *(ulonglong *)(lVar2 + -0xce0) = (ulonglong)pbVar28 ^ (ulonglong)DAT_1826717fc;
  bVar8 = *pbVar28 ^ (byte)uVar24 ^ (byte)DAT_182671694;
  *(byte *)(lVar2 + -0xc41) = bVar8;
  uVar13 = DAT_1826716f8;
  uVar17 = DAT_182671588;
  *(uint *)(lVar2 - (uVar20 ^ 0x90e6678b)) = (uint)bVar8 ^ uVar24 & 0xff ^ DAT_1826716f8;
  uVar16 = DAT_182671568 ^ 0x90616d1b;
  *(ulonglong *)(lVar2 + -0xa60) =
       CONCAT44(uVar4,uVar32) ^ 0xadb79d467942beac | *(ulonglong *)(lVar2 + -0x1d8);
  uVar24 = (*(uint *)(lVar2 + -0x374) ^ uVar13) << 0x11 ^ DAT_182671728;
  *(uint *)(lVar2 + -0x3d4) = (*(uint *)(lVar2 + -0x504) ^ DAT_1826717d0) + uVar16 ^ DAT_18267174c;
  *(uint *)(lVar2 + -0x844) = uVar24;
  *(uint *)(lVar2 + -0x344) =
       (*(uint *)(lVar2 - (uVar22 ^ 0x9996481a)) ^ DAT_18267174c) - (uVar24 ^ DAT_182671728) ^
       DAT_1826718c0;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x54e840b7)) =
       CONCAT44(iVar3,uVar17) ^ *(ulonglong *)(lVar2 + -0x800) ^ 0xe125ec291687ce91;
  *(uint *)(lVar2 - (uVar12 ^ 0x568946fe)) =
       (*(uint *)(lVar2 - (uVar38 ^ 0x5ff96cf3)) ^ DAT_1826718c0) *
       (*(uint *)(lVar2 + -0x5cc) ^ uVar35) ^ uVar34;
  uVar22 = (CONCAT44(uVar4,iVar3) ^ 0x41ea4c2003301efd) >>
           ((byte)*(undefined8 *)(lVar2 + -0xa60) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1f0) = uVar22;
  uVar16 = DAT_182671604;
  uVar17 = (*(uint *)(lVar2 + -0x374) ^ uVar13) * (uVar17 ^ 0x44801336) ^ DAT_1826717e4;
  *(uint *)(lVar2 + -0x754) = uVar17;
  uVar13 = (uVar17 ^ DAT_1826717e4) + (*(uint *)(lVar2 + -0x678) ^ uVar34);
  uVar17 = DAT_182671580 ^ 0x770bd73a;
  *(uint *)(lVar2 + -0x968) = uVar13 ^ uVar16;
  *(uint *)(lVar2 + -0x910) = uVar17 + 0x689fb262;
  uVar17 = DAT_182671570;
  bVar8 = (byte)DAT_182671570;
  uVar13 = uVar13 << ((bVar8 ^ 0x8b) & 0x1f) ^ DAT_1826716e4;
  *(uint *)(lVar2 + -0x874) = uVar13;
  uVar13 = uVar13 ^ DAT_1826716e4;
  uVar16 = (uVar16 ^ *(uint *)(lVar2 + -0x968)) >> (((byte)DAT_182671584 ^ 0x5b) & 0x1f) ^
           DAT_1826716c4;
  *(ulonglong *)(lVar2 + -0xa0) =
       *(ulonglong *)(lVar2 - (uVar12 ^ 0x56894a0e)) | *(ulonglong *)(lVar2 - (uVar31 ^ 0x2a7cbcc5))
  ;
  *(ulonglong *)(lVar2 + -0x80) = uVar22 << 0x29;
  *(uint *)(lVar2 + -0x47c) = uVar16;
  uVar34 = DAT_182671628 ^ DAT_1826718a8;
  *(uint *)(lVar2 - (uVar21 ^ 0xfffffd83)) =
       (*(uint *)(lVar2 - (uVar14 ^ 0xc1e764b7)) ^ DAT_1826716c4 | uVar13) ^ DAT_1826718a8;
  *(uint *)(lVar2 - (uVar12 ^ 0x568943ae)) =
       (*(uint *)(lVar2 + -0x5cc) ^ uVar35) + (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^
       DAT_182671634;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x90e6670f)) = CONCAT44(uVar19,uVar30) ^ 0x6d684f4f882cb727;
  uVar16 = DAT_1826715a8;
  uVar17 = DAT_1826715a8 ^ uVar17;
  *(undefined4 *)(lVar2 - (uVar14 ^ 0xc1e765cf)) = *(undefined4 *)(lVar2 + -0x328);
  uVar34 = uVar34 ^ *(uint *)(lVar2 + -0x27c);
  *(uint *)(lVar2 + -0x3d4) = uVar34;
  uVar30 = DAT_1826716a4;
  uVar22 = (ulonglong)DAT_18267181c;
  uVar13 = uVar34 ^ DAT_1826716a4 ^ DAT_182671628;
  uVar31 = CONCAT44(uVar29,uVar17);
  DAT_1826715b4 = uVar17;
  *(uint *)(lVar2 + -0x844) =
       *(uint *)(lVar2 - ((ulonglong)uVar16 ^ 0x9300e5d8)) ^ DAT_182671720 ^ DAT_182671634;
  *(ulonglong *)(lVar2 + -0x6d0) = *(longlong *)(lVar2 + -0x5c8) - (uVar31 ^ 0x8e712e1d22f90156);
  *(uint *)(lVar2 - ((ulonglong)uVar16 ^ 0x9300e398)) = uVar13;
  bVar7 = (byte)DAT_18267189c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0xc589ab12)) =
       (CONCAT44(uVar29,uVar16) ^ 0x568940869300e0c7) + (uVar31 ^ 0x56894086c589a05a) * 0x20 +
       *(longlong *)(lVar2 + -0x8f0) ^ uVar22;
  uVar29 = (uVar30 ^ *(uint *)(lVar2 + -0x344)) + (uVar16 ^ 0x9af7c609) ^ DAT_182671840;
  bVar9 = *(byte *)(*(ulonglong *)(lVar2 - (uVar12 ^ 0x56894bce)) ^ uVar22) ^ bVar7 ^
          (byte)DAT_182671694;
  *(uint *)(lVar2 + -0x678) = uVar29;
  uVar29 = uVar29 ^ DAT_182671840;
  *(byte *)(lVar2 + -0x41) = bVar9;
  uVar30 = (bVar7 ^ *(byte *)(lVar2 + -0x41)) ^ DAT_182671734;
  *(uint *)(lVar2 + -0x374) = uVar30;
  uVar30 = (uVar30 ^ DAT_182671734) << ((bVar8 ^ 0x97) & 0x1f);
  uVar13 = uVar30 ^ DAT_182671814;
  *(ulonglong *)(lVar2 + -0x9f8) =
       (CONCAT44(uVar16,uVar17) ^ 0x138baffb0eb910d4) >>
       ((byte)*(undefined8 *)(lVar2 + -0x110) & 0x3f);
  *(uint *)(lVar2 + -0x754) = uVar13;
  *(uint *)(lVar2 - (uVar12 ^ 0x56894996)) = uVar29 - uVar30 ^ DAT_18267186c;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar23;
  return;
}



############ FUN_ 180f10aa0 size=5021 ############

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

void FUN_180f10aa0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  byte bVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  uVar5 = DAT_182671738;
  uVar6 = DAT_182671590;
  lVar3 = DAT_182671560;
  uVar15 = (ulonglong)DAT_182671590;
  uVar17 = (ulonglong)DAT_182671590;
  uVar18 = (DAT_182671590 << 0x10 | DAT_182671590 & 0xff00) << 8 | DAT_182671590 >> 8 & 0xff00 |
           DAT_182671590 >> 0x18;
  uVar27 = (ulonglong)uVar18;
  uVar11 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar18 ^ 0xf8ef75f6) + (longlong)DAT_1826719ec) ^
           DAT_182671590;
  uVar2 = *(uint *)(&DAT_182611e70 + (uVar17 ^ 0xfe75efe8) + (longlong)DAT_1826719ec);
  uVar28 = CONCAT44(DAT_182671738,DAT_182671738);
  uVar16 = CONCAT44(DAT_18267173c,DAT_18267173c);
  DAT_18267158c = uVar18;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar18 ^ 0xf8ef7c06)) =
       (CONCAT44(DAT_18267178c,DAT_18267178c) ^ *(ulonglong *)(DAT_182671560 + -0x318)) +
       (uVar28 ^ *(ulonglong *)(DAT_182671560 + -0x270)) ^ uVar16;
  bVar34 = (byte)(uVar6 >> 0x18);
  uVar29 = (uVar28 ^ *(ulonglong *)(lVar3 + -0x270)) << ((bVar34 ^ 0xca) & 0x3f);
  uVar28 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar3 + -0x638) = uVar29 ^ CONCAT44(DAT_182671808,DAT_182671808);
  uVar8 = DAT_1826718b8;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x548)) - (CONCAT44(uVar18,uVar6) ^ 0xa3770ac00ce4de48);
  uVar9 = DAT_1826717c4;
  uVar19 = ((ulonglong)uVar5 << 0x14 | (ulonglong)(uVar5 >> 0xc)) ^
           *(ulonglong *)(lVar3 + -0x270) >> 0xc;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar19 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182671624;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar19 = (uVar19 | uVar29) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x898) = uVar19;
  uVar12 = DAT_182671720;
  uVar36 = CONCAT44(uVar8,uVar8);
  puVar1 = (ulonglong *)(lVar3 + -0x400);
  uVar30 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  *(ulonglong *)(lVar3 + -0x3f0) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xfe75e600)) ^ uVar36 ^ uVar28 ^ uVar16 ^ uVar19;
  uVar8 = DAT_182671758;
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(DAT_18267181c,DAT_18267181c) ^ *puVar1) +
       (*(ulonglong *)(lVar3 + -0x610) ^ CONCAT44(uVar12,uVar12)) ^ uVar30;
  uVar5 = DAT_18267164c;
  uVar24 = CONCAT44(uVar8,uVar8);
  uVar20 = (ulonglong)DAT_18267164c;
  *(ulonglong *)(lVar3 + -0x748) =
       (*(ulonglong *)(lVar3 + -0x610) ^ CONCAT44(uVar12,uVar12)) << 0x39 ^ uVar24;
  uVar19 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xf8ef76e6)) =
       ((ulonglong)uVar12 << 0x19 | (ulonglong)(uVar12 >> 7)) ^ *(ulonglong *)(lVar3 + -0x610) >> 7
       ^ uVar19;
  uVar9 = DAT_182671854;
  uVar29 = CONCAT44(uVar5,uVar5);
  uVar28 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  uVar19 = (uVar24 ^ *(ulonglong *)(lVar3 + -0x748) | *(ulonglong *)(lVar3 + -0x318) ^ uVar19) ^
           uVar28;
  *(ulonglong *)(lVar3 + -0x548) = uVar19;
  uVar28 = *(ulonglong *)(lVar3 + -0x670) ^ uVar29 ^ uVar19 ^ uVar28 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x110) = uVar28;
  uVar8 = DAT_182671714;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671560 + -0x270) =
       (*(ulonglong *)(DAT_182671560 + -0x9f8) ^ uVar16) + (uVar29 ^ uVar28) ^ uVar19;
  lVar3 = DAT_182671560;
  uVar25 = CONCAT44(uVar8,uVar8);
  uVar24 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(DAT_182671560 + -0x638) =
       (uVar29 ^ uVar28) << (((byte)uVar6 ^ 0xef) & 0x3f) ^ uVar25;
  uVar8 = DAT_18267170c;
  *(ulonglong *)(lVar3 + -0x5c8) = (uVar28 >> 0x20 ^ uVar20) >> 9 ^ uVar24;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xfe75e760)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xf8ef7346)) ^ CONCAT44(uVar8,uVar8) |
       *(ulonglong *)(lVar3 + -0x670) ^ uVar30;
  uVar8 = DAT_182671814;
  uVar20 = CONCAT44(DAT_182671794,DAT_182671794);
  uVar28 = (uVar24 ^ *(ulonglong *)(lVar3 + -0x5c8) | uVar25 ^ *(ulonglong *)(lVar3 + -0x638)) ^
           uVar20;
  uVar26 = uVar36 ^ *(ulonglong *)(lVar3 + -0x3f0);
  *puVar1 = uVar28;
  uVar9 = DAT_18267186c;
  uVar32 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x610) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xfe75ed88)) ^ uVar32 ^ uVar28 ^ uVar20 ^ uVar19;
  uVar20 = CONCAT44(uVar9,uVar9);
  uVar25 = (*(ulonglong *)(lVar3 + -0x670) ^ uVar30) + uVar26;
  uVar17 = uVar25 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x748) = uVar17;
  *(ulonglong *)(lVar3 + -0x318) =
       (CONCAT44(uVar18,uVar18) ^ 0xc0db30ec8c808916) >> (((byte)uVar6 ^ 0xdc) & 0x3f);
  uVar26 = uVar26 << ((bVar34 ^ 0xd6) & 0x3f);
  uVar21 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(lVar3 + -0x548) = uVar26 ^ uVar30;
  uVar8 = DAT_18267172c;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xf8ef760e)) ^ uVar36) >> ((bVar34 ^ 0xe6) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar28 ^ uVar21;
  uVar5 = DAT_18267189c;
  lVar3 = DAT_182671560;
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar30 = (ulonglong)DAT_18267189c;
  *(ulonglong *)(DAT_182671560 + -0x110) = (uVar28 | uVar26) ^ uVar21;
  lVar4 = DAT_182671560;
  uVar28 = CONCAT44(uVar5,uVar5);
  uVar20 = *(ulonglong *)(lVar3 - (uVar27 ^ 0xf8ef74ee)) ^ uVar28 ^ uVar21 ^ uVar17 ^ uVar20;
  uVar37 = CONCAT44(DAT_182671870,DAT_182671870);
  puVar22 = (ulonglong *)(DAT_182671560 + -0x270);
  *(ulonglong *)(DAT_182671560 + -0x6b8) = uVar20;
  *(ulonglong *)(lVar4 + -0x898) = (uVar28 ^ uVar20) + (uVar19 ^ *puVar22) ^ uVar37;
  *(ulonglong *)(lVar4 + -0x638) =
       (CONCAT44(uVar6,uVar18) ^ 0x29b0100074a2cea7) << (((byte)DAT_182671574 ^ 0xd7) & 0x3f);
  uVar17 = (*(ulonglong *)(lVar4 + -0x6b8) >> 0x20 ^ uVar30) >> 0x1b;
  uVar21 = (uVar20 ^ uVar28) << 5;
  uVar20 = CONCAT44(DAT_1826718b0,DAT_1826718b0);
  *(ulonglong *)(lVar4 + -0x5c8) = uVar21 ^ CONCAT44(DAT_182671604,DAT_182671604);
  *puVar1 = uVar17 ^ uVar20;
  uVar8 = DAT_1826716fc;
  uVar28 = (ulonglong)DAT_1826715ac;
  uVar19 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  uVar17 = (uVar17 | uVar21) ^ uVar19;
  *(ulonglong *)(lVar4 + -0x670) = uVar17;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar21 = CONCAT44(DAT_182671650,DAT_182671650);
  *(ulonglong *)(lVar4 + -0x318) =
       *(ulonglong *)(lVar4 - (uVar28 ^ 0xeefb298e)) ^ uVar36 ^ uVar19 ^ uVar37 ^ uVar17;
  *(ulonglong *)(lVar4 - (uVar15 ^ 0xfe75ec08)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671574 ^ 0xfe75e9e8)) ^ uVar32) + uVar25 ^ uVar21;
  uVar8 = DAT_1826717c0;
  puVar22 = (ulonglong *)(lVar4 - (uVar27 ^ 0xf8ef73ee));
  uVar17 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  uVar19 = (uVar32 ^ *puVar22) << ((bVar34 ^ 0xdb) & 0x3f);
  uVar28 = CONCAT44(DAT_182671788,DAT_182671788);
  *(ulonglong *)(DAT_182671560 + -0x9f8) = uVar19 ^ uVar17;
  uVar9 = DAT_182671768;
  lVar3 = DAT_182671560;
  uVar30 = (uVar32 ^ *puVar22) >> ((bVar34 ^ 0xe5) & 0x3f);
  uVar25 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar30 ^ uVar28;
  uVar8 = DAT_18267171c;
  uVar5 = DAT_18267156c;
  uVar26 = CONCAT44(uVar9,uVar9);
  puVar23 = (ulonglong *)(lVar3 - (uVar15 ^ 0xfe75eee8));
  *(ulonglong *)(lVar3 + -0x110) = (uVar19 | uVar30) ^ uVar25;
  uVar19 = CONCAT44(uVar8,uVar8);
  uVar28 = uVar26 ^ uVar25 ^ uVar21 ^ *puVar23 ^ *(ulonglong *)(lVar3 + -0x3f0);
  *(ulonglong *)(lVar3 + -0x270) = uVar28;
  uVar12 = DAT_182671594;
  *(ulonglong *)(lVar3 + -0x638) =
       (CONCAT44(uVar5,uVar6) ^ 0xb37b8a6509e1a1fa) + (uVar28 ^ uVar26) ^ uVar19;
  uVar7 = DAT_1826715b4;
  *(ulonglong *)(lVar3 + -0x6b8) =
       CONCAT44(DAT_182671578,uVar12) ^ uVar20 ^ *puVar1 ^ 0x8ee34b1148da324b;
  uVar28 = (CONCAT44(uVar7,uVar6) ^ 0x31b59f25a5980eec) + (*(ulonglong *)(lVar3 + -0x898) ^ uVar37);
  *(ulonglong *)(lVar3 + -0x5c8) = uVar28 ^ CONCAT44(DAT_182671634,DAT_182671634);
  uVar8 = DAT_182671840;
  *(ulonglong *)(lVar3 + -0x670) =
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0xf8ef778e)) ^ uVar26) >> (((byte)uVar5 ^ 0xdf) & 0x3f);
  uVar6 = DAT_182671588;
  uVar32 = CONCAT44(uVar8,uVar8);
  uVar15 = CONCAT44(DAT_182671574,DAT_182671598);
  *(ulonglong *)(lVar3 + -0x748) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xe3629ce4)) ^ uVar19) + uVar28 ^ uVar32;
  uVar8 = DAT_1826717dc;
  uVar28 = (ulonglong)DAT_1826715ac;
  *(ulonglong *)(lVar3 + -0x610) = uVar15 ^ 0x7b5ffcbfe5fc5f21;
  uVar5 = DAT_182671568;
  uVar15 = (ulonglong)DAT_182671568;
  uVar27 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0xeefb272e)) ^ uVar19) << (((byte)uVar6 ^ 0x76) & 0x3f)
  ;
  uVar28 = (ulonglong)DAT_1826715a0;
  uVar20 = CONCAT44(DAT_182671760,DAT_182671760);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar27 ^ CONCAT44(uVar8,uVar8);
  uVar8 = _DAT_1826715dc;
  bVar14 = (byte)uVar5;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0xd80d7026)) ^ uVar19) >> ((bVar14 ^ 0xdc) & 0x3f);
  *(ulonglong *)(lVar3 + -0x548) = uVar28 ^ uVar20;
  uVar20 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x110) = (uVar28 | uVar27) ^ uVar20;
  uVar13 = ~uVar5;
  uVar26 = (ulonglong)uVar13;
  DAT_182671574 = uVar13;
  *puVar1 = *(ulonglong *)(*(ulonglong *)(lVar3 + -800) ^ uVar16) ^ uVar25;
  lVar4 = DAT_182671560;
  uVar30 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2116e843)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2116e9b3)) ^
       *(ulonglong *)(lVar3 - (uVar26 ^ 0xdee91014)) ^ uVar30 ^ uVar20 ^ uVar32;
  uVar27 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *(ulonglong *)(lVar4 + -0x898) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xdee9121c)) ^ uVar36) +
       (CONCAT44(uVar5,uVar5) ^ 0xa679cd2268958d4) ^ uVar27;
  puVar22 = (ulonglong *)(lVar4 - (uVar26 ^ 0xdee912f4));
  uVar28 = (uVar21 ^ *puVar22) + (CONCAT44(uVar5,uVar13) ^ 0x195f231b8a5cd2bf);
  puVar33 = (ulonglong *)(lVar4 - (uVar15 ^ 0x2116e663));
  *(ulonglong *)(lVar4 + -0x270) = uVar28 ^ CONCAT44(DAT_18267185c,DAT_18267185c);
  lVar3 = DAT_182671560;
  uVar15 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  puVar31 = (ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xdee91774));
  *puVar31 = (uVar27 ^ *puVar33) + uVar28 ^ uVar15;
  bVar35 = (byte)uVar13;
  uVar28 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x898)) << ((bVar35 ^ 0x25) & 0x3f);
  uVar16 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar28 ^ uVar16;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar13 ^ 0xdee91714)) =
       uVar28 + (CONCAT44(uVar5,uVar13) ^ 0x2c8be060af0fca23);
  uVar20 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2116e703)) =
       (uVar27 ^ *puVar33) >> ((bVar35 ^ 0x1b) & 0x3f) ^ uVar20;
  uVar27 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  uVar28 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xdee914cc)) ^ uVar16 |
           uVar20 ^ *(ulonglong *)(lVar3 + -0x9f8)) ^ uVar27;
  uVar25 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(lVar3 + -0x548) = uVar28;
  lVar3 = DAT_182671560;
  uVar28 = uVar25 ^ uVar28 ^ uVar27 ^ uVar15 ^ *puVar31;
  *puVar1 = uVar28;
  uVar9 = DAT_1826717b0;
  uVar16 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar25 ^ uVar28) + (uVar32 ^ *(ulonglong *)(lVar3 + -0x748)) ^ uVar16;
  uVar8 = DAT_182671644;
  *(ulonglong *)(lVar3 + -0x318) =
       *(ulonglong *)
        (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2116ed93)) ^ CONCAT44(uVar9,uVar9)) ^ uVar17;
  uVar9 = DAT_1826716c8;
  uVar17 = CONCAT44(uVar8,uVar8);
  *puVar22 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2116eafb)) ^ uVar25) << 0x2e ^ uVar17;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(undefined4 *)(lVar3 + -0x344) = 0x9b0686d5;
  uVar6 = DAT_182671580;
  uVar25 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0xdee91504)) ^ uVar25) >> ((bVar35 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar3 + -0x270) = uVar25 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x610) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x638)) << ((bVar35 ^ 0x3b) & 0x3f);
  uVar8 = DAT_182671744;
  lVar4 = DAT_182671560;
  uVar28 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *puVar33 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xf010c69d)) ^ uVar17 | uVar25) ^ uVar28;
  uVar36 = (ulonglong)DAT_1826715b0;
  uVar37 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x2116eb33)) =
       uVar37 ^ uVar28 ^ uVar16 ^ *(ulonglong *)(lVar4 + -0x898) ^ *(ulonglong *)(lVar4 + -0x110);
  *(uint *)(lVar4 + -0x774) = (DAT_182671578 ^ 0x94f4be7b) << ((bVar14 ^ 0xfa) & 0x1f);
  uVar8 = DAT_1826717a8;
  uVar21 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0xfdcd7046)) ^ uVar30) +
           (uVar15 ^ *(ulonglong *)(lVar4 + -0x670)) ^ uVar29;
  *(ulonglong *)(lVar4 + -0x9f8) = uVar21;
  lVar3 = DAT_182671560;
  uVar25 = (uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x6b8)) << ((bVar14 ^ 0xf7) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x548) = uVar25 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x748) =
       uVar25 >> ((*(byte *)(lVar3 - (uVar26 ^ 0xdee9144c)) ^ (byte)uVar8) & 0x3f);
  uVar7 = DAT_18267159c;
  lVar3 = DAT_182671560;
  uVar17 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar32 = (ulonglong)DAT_18267159c;
  uVar15 = (*(ulonglong *)(DAT_182671560 - (uVar26 ^ 0xdee917bc)) ^ uVar30) >>
           (((byte)DAT_182671598 ^ 0xcb) & 0x3f);
  uVar12 = DAT_182671588 ^ 0x9f14a22;
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar15 ^ uVar17;
  uVar28 = *(ulonglong *)(lVar3 + -0x110);
  *(uint *)(DAT_182671560 + -0x5cc) = uVar12 | DAT_182671570 ^ 0xdc7262b6;
  uVar19 = CONCAT44(DAT_182671848,DAT_182671848);
  uVar15 = (uVar15 | uVar25) ^ uVar19;
  *puVar1 = uVar15;
  uVar12 = DAT_182671594;
  uVar15 = uVar19 ^ uVar27 ^ uVar21 ^ uVar29 ^ uVar15;
  *(ulonglong *)(lVar3 + -0x610) = uVar15;
  *(ulonglong *)(lVar3 + -0x270) = (uVar27 ^ uVar15) + (uVar16 ^ uVar28) ^ uVar17;
  uVar8 = DAT_182671670;
  uVar16 = CONCAT44(DAT_182671710,DAT_182671710);
  uVar19 = (uVar27 ^ uVar15) << ((bVar14 ^ 0xc1) & 0x3f) ^ uVar16;
  *(ulonglong *)(lVar3 + -0x3f0) = uVar19;
  uVar28 = CONCAT44(uVar8,uVar8);
  uVar15 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x610)) >> ((bVar35 ^ 2) & 0x3f) ^ uVar28;
  puVar22 = (ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x6dc517b8));
  *(ulonglong *)(lVar3 + -0x670) = uVar15;
  uVar8 = DAT_182671608;
  uVar27 = CONCAT44(DAT_182671608,DAT_182671608);
  *puVar22 = uVar19 ^ uVar15 ^ uVar28 ^ uVar16;
  uVar28 = (*(ulonglong *)(lVar3 + -0x670) ^ uVar28 | *(ulonglong *)(lVar3 + -0x3f0) ^ uVar16) ^
           uVar27;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar28;
  uVar19 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar3 + -0x318) =
       uVar17 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0x270) ^ uVar28 ^ uVar27;
  uVar27 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xf010c025)) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x5c8)) + (*(ulonglong *)(lVar3 + -0x9f8) ^ uVar29) ^
       uVar27;
  uVar28 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *puVar33 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x5c8)) << ((bVar34 ^ 0xe8) & 0x3f) ^ uVar28;
  uVar9 = DAT_182671730;
  uVar15 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x5c8)) >> ((bVar14 ^ 0xd1) & 0x3f);
  *(ulonglong *)(lVar3 + -0x638) = uVar15 ^ CONCAT44(DAT_18267180c,DAT_18267180c);
  lVar3 = DAT_182671560;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar28 = (*(ulonglong *)(DAT_182671560 + -0x898) ^ uVar28 | uVar15) ^ uVar16;
  *puVar1 = uVar28;
  uVar15 = CONCAT44(DAT_182671764,DAT_182671764);
  uVar28 = *(ulonglong *)(lVar3 + -0x548) ^ uVar28 ^ uVar15 ^ uVar16 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x110) = uVar28;
  uVar9 = DAT_182671614;
  *(ulonglong *)(lVar3 + -0x610) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0x270)) + (*puVar23 ^ uVar15) ^ uVar24;
  uVar10 = DAT_182671844;
  uVar25 = CONCAT44(uVar9,uVar9);
  *puVar22 = (uVar28 ^ uVar15) << (((byte)uVar7 ^ 0xdb) & 0x3f) ^ uVar25;
  uVar29 = (*(ulonglong *)(lVar3 + -0x110) ^ uVar15) >> (((byte)uVar6 ^ 0x4d) & 0x3f);
  uVar28 = CONCAT44(uVar5,DAT_182671594);
  *(ulonglong *)(lVar3 + -0x3f0) = uVar29 ^ CONCAT44(uVar10,uVar10);
  uVar15 = (ulonglong)DAT_1826715a0;
  *(ulonglong *)(lVar3 + -0x670) = uVar28 ^ *puVar1 ^ uVar16 ^ 0x931b62e419ef4c4a;
  uVar5 = DAT_18267156c;
  uVar16 = CONCAT44(DAT_182671834,DAT_182671834);
  uVar28 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar3 - (uVar15 ^ 0xd80d7fe6)) =
       (uVar29 | *(ulonglong *)(lVar3 + -0x748) ^ uVar25) ^ uVar16;
  uVar9 = DAT_182671690;
  *(ulonglong *)(lVar3 + -0x5c8) =
       (*(ulonglong *)(lVar3 + -0x9f8) ^ uVar16) >>
       ((*(byte *)(lVar3 - (uVar28 ^ 0x281db5cb)) ^ (byte)uVar8) & 0x3f);
  uVar8 = DAT_182671830;
  *(ulonglong *)(lVar3 + -0x898) =
       *(ulonglong *)(lVar3 - (uVar19 ^ 0xcf3bc92b)) ^
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xe3629324)) ^ CONCAT44(uVar9,uVar9) ^ uVar24 ^
       uVar16;
  uVar6 = DAT_1826715ac;
  uVar28 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar3 + -0x638) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0xfdcd73b6)) ^ uVar27) +
       (uVar20 ^ *(ulonglong *)(lVar3 + -0x318)) ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_1826718a4;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x75fefa9f)) = CONCAT44(uVar6,DAT_1826715a4) ^ 0x34afc10b63b6a4e8
  ;
  uVar28 = CONCAT44(DAT_1826715a8,uVar13);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xff7fe98b)) =
       (uVar20 ^ *(ulonglong *)(lVar3 + -0x318)) << (((byte)uVar5 ^ 0xfc) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  *puVar1 = (uVar28 ^ 0xbd1a2c5900e31388) << ((bVar14 ^ 0xc2) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar2 ^ uVar18) * 4) = uVar11;
  return;
}



############ FUN_ 180ece150 size=5468 ############

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

void FUN_180ece150(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  byte bVar17;
  uint uVar18;
  byte bVar19;
  byte bVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  uint uVar37;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar38;
  
  uVar13 = DAT_1826715a4;
  uVar11 = DAT_182671598;
  lVar4 = DAT_182671560;
  uVar24 = (ulonglong)DAT_1826715a4;
  uVar35 = (ulonglong)DAT_182671598;
  uVar37 = DAT_1826715a4 ^ DAT_182671598;
  uVar38 = (ulonglong)uVar37;
  uVar21 = *(uint *)(&DAT_182611e78 + DAT_182671c0c) ^ DAT_182671598;
  uVar18 = *(uint *)(&DAT_182611e80 + DAT_182671c0c) ^ DAT_1826715a4;
  uVar30 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar26 = CONCAT44(DAT_1826715a4,DAT_182671598);
  bVar25 = (byte)DAT_182671598;
  DAT_1826715ac = uVar37;
  *(uint *)(DAT_182671560 + -0x754) = (uVar37 ^ 0xfffc5cab) << 0xc;
  uVar14 = DAT_182671690;
  uVar34 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar23 = CONCAT44(DAT_182671694,DAT_182671694);
  uVar31 = uVar30 ^ uVar23 ^ uVar34 ^ *(ulonglong *)(lVar4 + -0xbf0) ^
           *(ulonglong *)(lVar4 + -0x898);
  *(ulonglong *)(lVar4 + -0x688) = uVar31;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x318) = (uVar31 ^ uVar34) >> ((bVar25 ^ 0xa8) & 0x3f) ^ uVar28;
  uVar14 = _DAT_1826715dc;
  *(ulonglong *)(lVar4 + -0xa88) =
       *(ulonglong *)(lVar4 - (uVar38 ^ 0x746f6b7b)) ^ uVar23 |
       CONCAT44(uVar11,uVar37) ^ 0x3d397a969b002692;
  bVar36 = (byte)uVar37;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x5e6f7d51)) =
       (uVar31 ^ uVar34) << ((bVar36 ^ 0x94) & 0x3f) ^ uVar30;
  uVar14 = DAT_182671828;
  uVar34 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar4 + -0x240) =
       (uVar30 ^ *(ulonglong *)(lVar4 + -0x1d8) | uVar28 ^ *(ulonglong *)(lVar4 + -0x318)) ^ uVar34;
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar28 = (uVar23 ^ *(ulonglong *)(lVar4 + -0xbf0)) -
           (CONCAT44(uVar37,uVar37) ^ 0x903831a7119d8e50);
  *(ulonglong *)(lVar4 + -0x800) = uVar28 ^ uVar30;
  puVar22 = (ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x2a001e42));
  uVar44 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x5e6f7a89)) = uVar28 - (uVar34 ^ *puVar22) ^ uVar44;
  uVar31 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar28 = (uVar34 ^ *puVar22) + (uVar26 ^ 0xa87a31a11716c87d) ^ uVar31;
  uVar27 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar4 + -0x2a0) = uVar28;
  uVar39 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar4 + -0x628) =
       *(ulonglong *)(lVar4 + -0x510) ^ uVar39 ^ uVar27 ^ uVar28 ^ uVar31;
  *(ulonglong *)(lVar4 + -0xa60) = *(ulonglong *)(lVar4 + -0x240) ^ uVar34 ^ 0x28ed0e47aaa62784;
  uVar14 = DAT_1826718cc;
  uVar7 = DAT_1826715b0;
  puVar22 = (ulonglong *)(lVar4 - (uVar35 ^ 0x5e6f7aa1));
  uVar34 = CONCAT44(DAT_18267171c,DAT_18267171c);
  uVar41 = (ulonglong)DAT_1826715b0;
  uVar28 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar4 + -0x8a8) = (uVar27 ^ *puVar22) >> ((bVar36 ^ 0x8e) & 0x3f) ^ uVar34;
  uVar31 = (uVar27 ^ *puVar22) << 0x3b;
  uVar46 = CONCAT44(DAT_182671870,DAT_182671870);
  *(ulonglong *)(lVar4 + -0x670) = uVar31 ^ CONCAT44(uVar14,uVar14);
  puVar1 = (ulonglong *)(lVar4 + -0x6d0);
  uVar31 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x1d22220b)) ^ uVar34 | uVar31;
  uVar33 = uVar7 << 0x10 | uVar7 >> 0x10;
  *puVar1 = uVar31 ^ uVar46;
  uVar14 = DAT_182671670;
  uVar34 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  puVar22 = (ulonglong *)(lVar4 + -0x80);
  uVar39 = (*(ulonglong *)(lVar4 + -0x510) ^ uVar39) - uVar31 ^ uVar34;
  DAT_18267156c = uVar33;
  *(ulonglong *)(lVar4 + -0xc08) = uVar39;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar31 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar40 = CONCAT44(DAT_1826716a4,DAT_1826716a4) ^ uVar32 ^ uVar44 ^ *(ulonglong *)(lVar4 + -0x600)
           ^ *puVar22;
  bVar19 = (byte)(uVar7 >> 0x10);
  *(ulonglong *)(lVar4 + -0x110) = uVar40;
  lVar4 = DAT_182671560;
  uVar42 = (ulonglong)uVar33;
  uVar28 = (uVar40 ^ uVar32) >> ((bVar19 ^ 0x25) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar28 ^ uVar31;
  *(uint *)(lVar4 + -0x27c) = (uVar33 ^ 0xf791fe93) * 0x37e53838;
  lVar4 = DAT_182671560;
  bVar17 = (byte)uVar7;
  uVar32 = (uVar40 ^ uVar32) << ((bVar17 ^ 0x1b) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0xa88) = uVar32 ^ CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar32 = uVar32 | uVar28;
  uVar40 = CONCAT44(DAT_18267178c,DAT_18267178c);
  uVar28 = uVar32 ^ uVar40;
  uVar31 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(lVar4 + -0x688) = uVar28;
  uVar14 = DAT_18267187c;
  *(ulonglong *)(lVar4 + -0x318) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x81008700)) ^ uVar44) - uVar32 ^ uVar31;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar32 = CONCAT44(DAT_182671674,DAT_182671674);
  uVar39 = uVar44 ^ uVar40 ^ uVar34 ^ uVar28 ^ uVar39;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar39;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x81008af0)) =
       (uVar44 ^ uVar39) >> ((bVar19 ^ 0x17) & 0x3f) ^ uVar32;
  uVar14 = DAT_18267185c;
  *(undefined1 *)(lVar4 + -0x5e9) = **(undefined1 **)(lVar4 - ((ulonglong)uVar33 ^ 0x81008aa0));
  uVar15 = DAT_1826718d0;
  uVar28 = CONCAT44(uVar14,uVar14);
  puVar29 = (ulonglong *)(lVar4 - (uVar42 ^ 0x81008900));
  *puVar29 = (uVar44 ^ *(ulonglong *)(lVar4 + -0x1d8)) << ((bVar17 ^ 0x29) & 0x3f) ^ uVar28;
  uVar43 = CONCAT44(uVar15,uVar15);
  bVar3 = (byte)uVar13;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0x810083a0)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x800) | uVar32 ^ *(ulonglong *)(lVar4 + -0xbf0)) ^ uVar43;
  uVar32 = CONCAT44(DAT_182671728,DAT_182671728);
  *(ulonglong *)(lVar4 + -0x240) =
       (uVar34 ^ *(ulonglong *)(lVar4 + -0xc08)) - (uVar43 ^ *(ulonglong *)(lVar4 + -0x2a0)) ^
       uVar32;
  uVar14 = DAT_182671754;
  *(ulonglong *)(lVar4 + -0xa60) =
       (CONCAT44(uVar33,uVar7) ^ 0x16c4af7d9b6ad64) - (CONCAT44(uVar33,uVar11) ^ 0xf7ae14f8ba3bde31)
  ;
  uVar6 = DAT_1826715ac;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar39 = *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x810087d0)) ^ uVar34 ^ uVar31 ^ uVar46 ^
           *(ulonglong *)(lVar4 + -0x318);
  uVar28 = CONCAT44(DAT_1826717dc,DAT_1826717dc);
  *(ulonglong *)(lVar4 + -0x628) = uVar39;
  uVar44 = (uVar39 ^ uVar34) >> ((bVar3 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar44 ^ uVar28;
  *(uint *)(lVar4 + -0x968) = (uVar6 ^ 0xd165f946) * (uVar7 ^ 0xed7e4bbf);
  uVar14 = DAT_182671834;
  lVar5 = DAT_182671560;
  uVar28 = (*(ulonglong *)(lVar4 - (uVar42 ^ 0x81008728)) ^ uVar34) << ((bVar3 ^ 0x1a) & 0x3f);
  uVar34 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar28 ^ CONCAT44(DAT_18267160c,DAT_18267160c);
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar28 = (uVar28 | uVar44) ^ uVar34;
  *(ulonglong *)(lVar5 + -0x510) = uVar28;
  *puVar22 = (*(ulonglong *)(lVar5 - (uVar41 ^ 0x81008218)) ^ uVar31) -
             (*(ulonglong *)(lVar5 - (uVar41 ^ 0x81008410)) ^ uVar34) ^ uVar39;
  lVar4 = DAT_182671560;
  *(int *)(lVar5 + -0x274) =
       *(int *)(lVar5 + -0x374) << ((byte)*(undefined4 *)(lVar5 - (uVar42 ^ 0x8100837c)) & 0x1f);
  uVar44 = CONCAT44(DAT_18267183c,DAT_18267183c);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x5e6f7d99)) =
       *(ulonglong *)(lVar4 - (uVar42 ^ 0x81008340)) ^ uVar44 ^ uVar34 ^ uVar32 ^ uVar28;
  *(ulonglong *)(lVar4 + -0x898) = (uVar26 ^ 0x1de02acf7fdc1444) >> ((bVar25 ^ 0x8a) & 0x3f);
  uVar46 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar31 = (*(ulonglong *)(lVar4 - (uVar41 ^ 0x81008010)) ^ uVar44) >> ((bVar17 ^ 0x34) & 0x3f);
  uVar28 = CONCAT44(DAT_182671784,DAT_182671784);
  uVar34 = (uVar44 ^ *(ulonglong *)(lVar4 + -0x110)) << ((bVar25 ^ 0x85) & 0x3f);
  uVar45 = CONCAT44(DAT_182671664,DAT_182671664);
  *(ulonglong *)(lVar4 + -0xa88) = uVar31 ^ uVar46;
  *(ulonglong *)(lVar4 + -0x600) = uVar34 ^ uVar28;
  bVar20 = (byte)DAT_182671574;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x2a001a8a)) = (uVar31 | uVar34) ^ uVar45;
  *(ulonglong *)(lVar4 + -0x1d8) = (uVar39 ^ *puVar22) << ((bVar20 ^ 0x36) & 0x3f);
  uVar24 = CONCAT44(DAT_182671888,DAT_182671888);
  uVar26 = CONCAT44(DAT_18267167c,DAT_18267167c);
  *(ulonglong *)(lVar4 + -0xbf0) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x240)) - (uVar45 ^ *(ulonglong *)(lVar4 + -0x688)) ^
       uVar24;
  uVar15 = DAT_1826718b0;
  uVar9 = DAT_182671588;
  uVar8 = DAT_18267157c;
  uVar31 = uVar26 ^ uVar39 ^ uVar43 ^ *puVar22 ^ *(ulonglong *)(lVar4 + -0x2a0);
  uVar44 = (ulonglong)DAT_182671588;
  *(ulonglong *)(lVar4 + -0x800) = uVar31;
  uVar14 = DAT_182671804;
  uVar10 = DAT_18267158c;
  uVar7 = DAT_182671570;
  uVar6 = DAT_182671568;
  uVar34 = (ulonglong)DAT_18267158c;
  bVar20 = (byte)DAT_18267158c;
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xc08) = (uVar31 ^ uVar26) >> ((bVar25 ^ 0xb0) & 0x3f) ^ uVar32;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xa60) = (uVar26 ^ uVar31) << ((bVar20 ^ 0xd8) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x880b0a32)) =
       (uVar46 ^ *(ulonglong *)(lVar4 + -0xa88)) << (((byte)uVar6 ^ 1) & 0x3f);
  uVar31 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x81008728)) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0xc08) | *(ulonglong *)(lVar4 + -0xa60) ^ uVar28) ^ uVar31;
  uVar28 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671578 ^ 0x162f3420)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xe46dd036)) ^
       *(ulonglong *)(lVar4 - (uVar44 ^ 0x162f3a58)) ^ uVar43;
  uVar12 = DAT_182671744;
  uVar14 = DAT_182671700;
  uVar6 = DAT_182671584;
  lVar5 = DAT_182671560;
  puVar47 = (ulonglong *)(lVar4 - (uVar38 ^ 0x746f66a3));
  *(ulonglong *)(DAT_182671560 + -0x670) =
       (*(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x96bf3f6e)) ^ uVar39) - (uVar31 ^ *puVar47) ^
       uVar30;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar31 = uVar24 ^ *(ulonglong *)(lVar5 + -0xbf0) ^ *(ulonglong *)(lVar5 + -0x628) ^
           CONCAT44(uVar12,uVar12) ^ uVar31;
  *(ulonglong *)(lVar5 + -0x318) = uVar31;
  *(ulonglong *)(lVar5 + -0x510) =
       ((ulonglong)uVar12 << 0x12 | (ulonglong)(uVar12 >> 0xe)) ^ uVar31 >> 0xe ^ uVar26;
  uVar7 = DAT_182671590;
  uVar28 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xe46dda0e)) =
       CONCAT44(uVar33,DAT_182671570) ^ 0x155e69b4d20c26be |
       CONCAT44(uVar37,DAT_182671574) ^ 0x3faf6105eaa404ca;
  uVar28 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0x2328123)) ^ CONCAT44(uVar12,uVar12)) <<
           (((byte)uVar6 ^ 0x6d) & 0x3f);
  uVar39 = CONCAT44(DAT_1826718c4,DAT_1826718c4);
  puVar2 = (ulonglong *)(DAT_182671560 + -0x510);
  *(ulonglong *)(DAT_182671560 + -0x110) = uVar28 ^ CONCAT44(DAT_1826716d8,DAT_1826716d8);
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x823b0432)) =
       (*puVar2 ^ uVar26 | uVar28) ^ uVar39;
  uVar14 = DAT_1826718a4;
  uVar12 = DAT_1826715a0;
  uVar7 = DAT_182671580;
  *(ulonglong *)(lVar4 + -0x1d8) =
       (CONCAT44(DAT_182671594,uVar11) ^ 0x38300a082646d1df) >> (((byte)uVar9 ^ 0xa9) & 0x3f);
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x5e6f7ec9)) =
       (uVar24 ^ *(ulonglong *)(lVar4 + -0xbf0)) - (CONCAT44(uVar9,uVar7) ^ 0x3d5e4ea13b17a00b) ^
       uVar28;
  uVar8 = DAT_18267159c;
  uVar44 = CONCAT44(DAT_1826716d4,DAT_1826716d4);
  *(ulonglong *)(lVar4 + -0x800) =
       (*(ulonglong *)(lVar4 + -0x240) ^ uVar28) - (*(ulonglong *)(lVar4 + -0x600) ^ uVar39) ^
       uVar44;
  *(uint *)(lVar4 - ((ulonglong)uVar8 ^ 0x1d2223b3)) = uVar10 ^ 0xa49210e | 0xd5b6c260;
  uVar10 = DAT_1826715ec;
  uVar32 = CONCAT44(uVar9,DAT_18267157c);
  uVar31 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar28 = (ulonglong)DAT_1826715ec;
  *(ulonglong *)(lVar4 + -0xa88) =
       (*(ulonglong *)(lVar4 + -0x600) ^ uVar39) - (uVar32 ^ 0xab6cf6e8d2a6cd37) ^ uVar31;
  uVar14 = DAT_1826717c4;
  uVar6 = DAT_182671568;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0xc08) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x3c88105f)) ^ uVar45 ^ uVar30 ^
       *(ulonglong *)(lVar4 + -0x688) ^ CONCAT44(uVar10,uVar10);
  uVar7 = DAT_182671570;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xa60) =
       ((ulonglong)(uVar10 >> 0x10) | uVar28 << 0x10) ^
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671570 ^ 0x880b00ea)) >> 0x10 ^ uVar24;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x1d222803)) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x120080b)) ^
       CONCAT44(DAT_1826715a8,DAT_182671584) ^ 0xce021ec1c3bfad71;
  uVar28 = (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar5 + -0xc08)) <<
           (((byte)uVar7 ^ 0xd2) & 0x3f);
  *puVar1 = uVar28 ^ CONCAT44(DAT_182671810,DAT_182671810);
  uVar8 = DAT_1826715b4;
  uVar7 = DAT_182671590;
  uVar26 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar43 = (ulonglong)DAT_1826715b4;
  *puVar22 = (*(ulonglong *)(lVar5 + -0xa60) ^ uVar24 | uVar28) ^ uVar26;
  *puVar47 = (CONCAT44(uVar8,uVar13) ^ 0x434bdabbce2bc01e) >> (((byte)uVar7 ^ 0xf) & 0x3f);
  lVar4 = DAT_182671560;
  uVar24 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  uVar28 = (ulonglong)DAT_182671574;
  *(ulonglong *)(DAT_182671560 + -0x898) =
       (uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x670)) - (uVar32 ^ 0x7cfe1e536fd36a79) ^ uVar24;
  uVar39 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0x823b0aaa)) ^ uVar24) - (*puVar22 ^ uVar26);
  uVar28 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar4 + -0x318) = uVar39 ^ uVar23;
  uVar15 = DAT_182671704;
  uVar30 = (*(ulonglong *)(lVar4 - (uVar35 ^ 0x5e6f7c09)) ^ uVar26) +
           (CONCAT44(uVar6,uVar12) ^ 0xd45e286c391c8976) ^ uVar28;
  *(ulonglong *)(lVar4 + -0x510) = uVar30;
  uVar14 = DAT_1826716a0;
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar26 = CONCAT44(DAT_182671880,DAT_182671880);
  uVar30 = *(ulonglong *)(lVar4 - (uVar34 ^ 0xfdeff2df)) ^ uVar32 ^ uVar30 ^ uVar28 ^ uVar44;
  *(ulonglong *)(lVar4 + -0x110) = uVar30;
  uVar24 = (uVar30 ^ uVar32) >> (((byte)uVar7 ^ 0x12) & 0x3f);
  uVar46 = CONCAT44(uVar14,uVar14);
  uVar30 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar4 + -0x1d8) = uVar24 ^ uVar26;
  uVar14 = DAT_182671608;
  uVar28 = (ulonglong)DAT_182671568;
  *(ulonglong *)(lVar4 + -0xbf0) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xe46dd386)) ^ uVar32) << ((bVar36 ^ 0xab) & 0x3f) ^ uVar46
  ;
  uVar15 = DAT_1826717c0;
  uVar45 = CONCAT44(uVar14,uVar14);
  uVar24 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x23289cb)) ^ uVar46 | uVar24;
  *(uint *)(lVar4 + -0x8c) = (DAT_182671594 ^ 0x4d992b67) - (DAT_182671588 ^ 0x597e7978);
  *(ulonglong *)(lVar4 + -0x240) = uVar24 ^ uVar45;
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar30 = (ulonglong)DAT_182671578;
  uVar35 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar24 = (*(ulonglong *)(lVar4 - (uVar38 ^ 0x746f688b)) ^ uVar44) - uVar24 ^ uVar32;
  *(ulonglong *)(lVar4 + -0x600) = uVar24;
  uVar15 = DAT_182671748;
  uVar23 = *(ulonglong *)(lVar4 - (uVar30 ^ 0x162f3f90)) ^ uVar23 ^ uVar35 ^ uVar31 ^
           *(ulonglong *)(lVar4 + -0xa88);
  *(ulonglong *)(lVar4 + -0x688) = uVar23;
  uVar6 = DAT_182671574;
  lVar4 = DAT_182671560;
  uVar30 = (uVar23 ^ uVar35) >> ((bVar19 ^ 0x20) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x8a8) = uVar30 ^ CONCAT44(uVar15,uVar15);
  uVar16 = DAT_18267184c;
  uVar28 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar4 + -0x2a0) = (uVar23 ^ uVar35) << (((byte)uVar6 ^ 0x12) & 0x3f) ^ uVar28;
  uVar15 = DAT_182671808;
  uVar23 = CONCAT44(uVar16,uVar16);
  uVar30 = *(ulonglong *)(lVar4 - (uVar43 ^ 0x1c0228a0)) ^ uVar28 | uVar30;
  uVar28 = uVar30 ^ uVar23;
  *(ulonglong *)(lVar4 + -0xc08) = uVar28;
  uVar6 = DAT_182671570;
  *puVar1 = uVar24 ^ uVar23 ^ uVar32 ^ uVar26 ^ uVar28;
  uVar35 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xa60) = uVar39 - uVar30 ^ uVar35;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671590 ^ 0x823b041a)) =
       (*(ulonglong *)(lVar4 - (uVar38 ^ 0x746f6aeb)) ^ uVar35) >> (((byte)uVar6 ^ 0xd4) & 0x3f);
  uVar30 = *puVar1;
  uVar28 = (*puVar1 ^ uVar26) >> ((bVar17 ^ 0x3a) & 0x3f);
  bVar17 = (byte)DAT_1826715a0;
  *(ulonglong *)(lVar4 + -0x670) = uVar28 ^ uVar45;
  uVar15 = DAT_1826716b0;
  uVar30 = (uVar30 ^ uVar26) << ((bVar17 ^ 0xa5) & 0x3f);
  *(ulonglong *)(lVar4 + -0x898) = uVar30 ^ uVar31;
  lVar4 = DAT_182671560;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar30 = uVar30 | uVar28;
  uVar26 = CONCAT44(DAT_182671894,DAT_182671894);
  *puVar22 = uVar30 ^ uVar31;
  lVar5 = DAT_182671560;
  uVar28 = (ulonglong)DAT_182671568;
  puVar2 = (ulonglong *)(DAT_182671560 + -0x240);
  puVar47 = (ulonglong *)(DAT_182671560 + -0xa60);
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (*(ulonglong *)(lVar4 + -0x600) ^ uVar32) - uVar30 ^ uVar26;
  uVar23 = CONCAT44(DAT_1826718d4,DAT_1826718d4);
  bVar17 = (byte)DAT_182671594;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x232832b)) = *puVar2 ^ *puVar47 ^ uVar23 ^ uVar35 ^ uVar45;
  uVar39 = CONCAT44(DAT_1826717ac,DAT_1826717ac);
  *(ulonglong *)(lVar5 + -0xbf0) =
       (*(ulonglong *)(lVar5 + -0x110) ^ uVar23) >> ((bVar17 ^ 0xb5) & 0x3f) ^ uVar39;
  lVar4 = DAT_182671560;
  uVar24 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (CONCAT44(uVar8,DAT_18267159c) ^ 0x7f929b436ea927e3) <<
       ((*(byte *)(DAT_182671560 + -0x670) ^ (byte)uVar14) & 0x3f);
  uVar30 = CONCAT44(DAT_1826717ec,DAT_1826717ec);
  *puVar29 = (*(ulonglong *)(lVar4 + -0x110) ^ uVar23) << 0x2a ^ uVar30;
  uVar23 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(lVar4 - (uVar42 ^ 0x81008b88)) =
       (*(ulonglong *)(lVar4 + -0x800) ^ uVar30 | *(ulonglong *)(lVar4 + -0xbf0) ^ uVar39) ^ uVar23;
  uVar14 = DAT_182671800;
  uVar39 = CONCAT44(DAT_1826716cc,DAT_1826716cc);
  *(ulonglong *)(lVar4 + -0x688) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671584 ^ 0x39ef203f)) ^ uVar35) -
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x81008b88)) ^ uVar23) ^ uVar39;
  uVar30 = *(ulonglong *)(lVar4 + -0x510) ^ uVar27 ^ uVar23 ^ uVar26 ^
           *(ulonglong *)(lVar4 + -0xa88);
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar30;
  *(ulonglong *)(lVar4 + -0x2a0) = (uVar27 ^ uVar30) >> ((bVar3 ^ 0x2c) & 0x3f) ^ uVar23;
  uVar30 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x1d2229bb)) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0x2328a93)) ^ uVar27) << (((byte)uVar6 ^ 0xf0) & 0x3f) ^
       uVar46;
  uVar28 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar4 + -0xc08) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x2a0) | uVar46 ^ *(ulonglong *)(lVar4 + -0x318)) ^ uVar28;
  *(ulonglong *)(lVar4 + -0x628) =
       (*(ulonglong *)(lVar4 + -0x510) ^ uVar26) -
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x1d2226ab)) ^ uVar28) ^
       CONCAT44(DAT_182671760,DAT_182671760);
  *puVar1 = *(ulonglong *)(lVar4 - (uVar34 ^ 0xfdeffc57)) ^ uVar40 ^ *puVar22 ^ uVar39 ^ uVar31;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar18 * 4) = uVar21;
  return;
}



############ FUN_ 180e543f0 size=3472 ############

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

void FUN_180e543f0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  byte *pbVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  byte bVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar33;
  
  uVar13 = _DAT_1826715d8;
  uVar12 = DAT_1826715b0;
  uVar11 = DAT_1826715a0;
  uVar10 = DAT_182671594;
  uVar8 = DAT_182671574;
  uVar6 = DAT_18267156c;
  lVar4 = DAT_182671560;
  uVar20 = (ulonglong)DAT_1826715a0;
  uVar22 = (ulonglong)DAT_18267156c;
  uVar25 = (ulonglong)DAT_1826715b0;
  uVar30 = (ulonglong)DAT_182671574;
  uVar35 = (ulonglong)DAT_182671594;
  uVar32 = DAT_1826715b0 << 0x10 | DAT_1826715b0 >> 0x10;
  uVar33 = (ulonglong)uVar32;
  uVar27 = DAT_18267156c & DAT_182671594;
  uVar36 = DAT_182671574 << 0x10 | DAT_182671574 >> 0x10;
  uVar23 = (DAT_1826715a0 << 0x10 | DAT_1826715a0 & 0xff00) << 8 | DAT_1826715a0 >> 8 & 0xff00 |
           DAT_1826715a0 >> 0x18;
  uVar2 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_1826715a0 ^ 0xbebfcac1) + (longlong)DAT_182671aa0);
  uVar16 = *(uint *)(&DAT_182611e80 + DAT_182671aa0) ^ DAT_18267156c;
  uVar29 = (ulonglong)DAT_18267174c;
  uVar24 = (ulonglong)_DAT_1826715d8;
  uVar17 = (ulonglong)uVar27;
  uVar28 = (ulonglong)uVar36;
  uVar19 = (ulonglong)DAT_182671594;
  uVar26 = CONCAT44(DAT_1826715b0,uVar36);
  DAT_182671568 = uVar32;
  DAT_18267157c = uVar27;
  DAT_1826715a4 = uVar23;
  DAT_1826715a8 = uVar36;
  *(undefined8 *)(DAT_182671560 + -0x4e0) =
       *(undefined8 *)(DAT_182671560 - ((ulonglong)uVar27 ^ 0x2894174));
  *(ulonglong *)(lVar4 + -0xce0) = *(ulonglong *)(lVar4 + -0x60) ^ uVar24;
  *(longlong *)(lVar4 + -0x9f8) = *(longlong *)(lVar4 + -0xbf0) + *(longlong *)(lVar4 + -0xc08);
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xa4e412b3)) =
       *(ulonglong *)(lVar4 - (uVar19 ^ 0x28944e5)) ^ uVar29;
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xa4e41373)) = uVar26 ^ 0xbd47630f17c9802e;
  uVar18 = (ulonglong)uVar23;
  uVar21 = CONCAT44(uVar23,uVar36) ^ 0xc9cabfbe19fba4e5;
  *(ulonglong *)(lVar5 + -0x868) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar32 ^ 0xb7968216)) ^ uVar29) + uVar21;
  *(byte *)(lVar5 - (uVar20 ^ 0xbebfcc93)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0xb48) ^ uVar29) ^ (byte)DAT_18267182c ^
       (byte)DAT_182671718;
  uVar9 = DAT_1826715d4;
  bVar34 = (byte)uVar10;
  uVar29 = (ulonglong)DAT_1826715d4;
  *(byte *)(*(ulonglong *)(lVar5 + -0x6b0) ^ (ulonglong)DAT_182671670) = bVar34 ^ 0xec;
  *(ulonglong *)(lVar5 - (uVar20 ^ 0xbebfc0e9)) = (uVar24 ^ *(ulonglong *)(lVar5 + -0xce0)) + 1;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar17 ^ 0x2894ce4)) ^ uVar24) =
       *(byte *)(lVar5 - (uVar33 ^ 0xb7968f04)) ^ (byte)DAT_18267182c;
  *(undefined8 *)(lVar5 - ((ulonglong)uVar6 ^ 0x56894dce)) = *(undefined8 *)(lVar5 + -0xa20);
  *(ulonglong *)(lVar5 + -0xc38) = *(ulonglong *)(lVar5 + -0x868);
  uVar31 = (ulonglong)DAT_182671774;
  *(ulonglong *)(lVar5 + -0x990) = *(ulonglong *)(lVar5 + -0xd48) ^ uVar31;
  uVar19 = (ulonglong)uVar9 ^ *(ulonglong *)(lVar5 + -0x868);
  *(ulonglong *)(lVar5 + -0x50) = uVar19;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0xa4e41dd3)) = (uVar29 ^ uVar19) + 1;
  uVar19 = (ulonglong)DAT_1826717d8;
  *(byte *)(lVar5 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x50) ^ uVar29) ^ (byte)DAT_182671678 ^ (byte)DAT_182671718
  ;
  *(byte *)(*(ulonglong *)(lVar5 + -0xa68) ^ uVar19) = (byte)uVar6 ^ 0xf5;
  *(ulonglong *)(lVar5 - (uVar20 ^ 0xbebfcdc9)) =
       (CONCAT44(uVar23,uVar12) ^ 0xc9cabfbe895eb797) + (uVar31 ^ *(ulonglong *)(lVar5 + -0x990));
  uVar14 = DAT_1826716dc;
  uVar19 = (ulonglong)DAT_1826716dc;
  *(byte *)(uVar31 ^ *(ulonglong *)(lVar5 + -0x990)) =
       *(byte *)(lVar5 + -0xc41) ^ (byte)DAT_182671678;
  *(undefined8 *)(lVar5 + -0xb38) = *(undefined8 *)(lVar5 + -0x700);
  *(undefined8 *)(lVar5 + -0x148) = *(undefined8 *)(lVar5 + -0x428);
  *(ulonglong *)(lVar5 + -0x810) = *(ulonglong *)(lVar5 - (uVar33 ^ 0xb7968266)) ^ uVar19;
  *(ulonglong *)(lVar5 - (uVar17 ^ 0x289463c)) =
       0x7d51e80761333975 - (CONCAT44(uVar6,uVar10) ^ 0x844e6e0c724d9d8b);
  pbVar3 = *(byte **)(lVar5 + -0x148);
  *(ulonglong *)(lVar5 + -0xcc0) = (ulonglong)pbVar3 ^ (ulonglong)DAT_18267165c;
  *(byte **)(lVar5 + -0x1a0) = pbVar3 + 1;
  *(byte *)(lVar5 + -0x67a) = *pbVar3 ^ (byte)uVar13 ^ (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar5 + -0xb20) ^ (ulonglong)DAT_1826717c4) =
       (byte)(uVar11 >> 0x18) ^ 0x51;
  *(ulonglong *)(lVar5 + -0x4c8) =
       (*(ulonglong *)(lVar5 + -0x810) ^ uVar19) + (uVar26 ^ 0x895eb79619fba4e5);
  *(ulonglong *)(lVar5 + -0xa80) =
       (CONCAT44(uVar6,uVar32) ^ 0xa30274da235fcdfa) - (CONCAT44(uVar8,uVar10) ^ 0x67f1c73dc38f20f6)
  ;
  *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x2894815)) ^ uVar19) =
       *(byte *)(lVar5 - (uVar17 ^ 0x289467e)) ^ (byte)uVar13;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x895eb536)) =
       CONCAT44(uVar6,uVar36) ^ CONCAT44(uVar23,uVar6) ^ 0xde7de9d5758cf783;
  uVar19 = (ulonglong)DAT_18267184c;
  *(undefined8 *)(lVar5 - (uVar20 ^ 0xbebfc191)) = *(undefined8 *)(lVar5 + -0x4c8);
  uVar26 = (ulonglong)DAT_1826715ec;
  *(undefined8 *)(lVar5 - (uVar30 ^ 0xa4e41e13)) = *(undefined8 *)(lVar5 + -0x1a0);
  *(ulonglong *)(lVar5 + -0x248) = *(ulonglong *)(lVar5 + -0xb58) ^ uVar26;
  *(ulonglong *)(lVar5 + -0x238) = *(ulonglong *)(lVar5 + -0x7e8) ^ uVar19;
  *(ulonglong *)(lVar5 + -0x768) = *(ulonglong *)(lVar5 + -0x7e8) + 1;
  *(byte *)(lVar5 - (uVar22 ^ 0x568946ff)) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar18 ^ 0xc9cabd86)) ^ uVar19) ^ (byte)DAT_182671828 ^
       (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar25 ^ 0x895ebe9e)) ^ (ulonglong)DAT_1826716bc) =
       bVar34 ^ 0x56;
  bVar15 = *(byte *)(lVar5 + -0x679) ^ (byte)DAT_182671828;
  *(ulonglong *)(lVar5 + -0x7f0) = (*(ulonglong *)(lVar5 - (uVar33 ^ 0xb7968b16)) ^ uVar26) + 1;
  *(byte *)(uVar26 ^ *(ulonglong *)(lVar5 + -0x248)) = bVar15;
  lVar4 = *(longlong *)(lVar5 - (uVar33 ^ 0xb79689fe));
  *(undefined8 *)(lVar5 + -0xcf0) = *(undefined8 *)(lVar5 + -0x7f0);
  *(longlong *)(lVar5 + -0x1d8) = *(longlong *)(lVar5 + -0xa0) - lVar4;
  uVar9 = DAT_1826715b0;
  *(uint *)(lVar5 + -0x678) = (DAT_1826715b0 ^ 0x3435ec41) + (uVar36 ^ 0x100c8231);
  uVar26 = (ulonglong)DAT_182671724;
  *(undefined8 *)(lVar5 - (uVar17 ^ 0x28948ec)) = *(undefined8 *)(lVar5 + -0x768);
  *(ulonglong *)(lVar5 + -0xcb8) = uVar26 ^ *(ulonglong *)(lVar5 + -0xcf0);
  *(ulonglong *)(lVar5 + -0x110) =
       CONCAT44(uVar6,uVar11) ^ 0x335bf85d6cd09936 | CONCAT44(uVar6,uVar27) ^ 0x1a6286f489ab0097;
  uVar25 = (ulonglong)DAT_1826717e4;
  uVar19 = *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x28948ed));
  *(ulonglong *)(lVar5 + -0xa70) = uVar19 ^ uVar25;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xc9cabea6)) = uVar19 + 1;
  *(byte *)(lVar5 - (uVar18 ^ 0xc9caba67)) =
       *(byte *)(uVar25 ^ *(ulonglong *)(lVar5 + -0xa70)) ^ (byte)DAT_182671604 ^
       (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar5 + -0xc10) ^ (ulonglong)DAT_182671634) = (byte)uVar9 ^ 3;
  uVar9 = DAT_182671584;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x2894d35)) =
       (*(ulonglong *)(lVar5 - (uVar28 ^ 0x19fba85c)) ^ uVar26) +
       (CONCAT44(uVar32,uVar36) ^ 0xb796895e19fba4e5);
  *(byte *)(*(ulonglong *)(lVar5 + -0xcb8) ^ uVar26) =
       *(byte *)(lVar5 - (uVar33 ^ 0xb7968c87)) ^ (byte)DAT_182671604;
  pbVar3 = *(byte **)(lVar5 + -0x118);
  *(undefined8 *)(lVar5 + -0x898) = 0xd56beaef9fe3797f;
  *(ulonglong *)(lVar5 + -0x340) = *(ulonglong *)(lVar5 + -0xd30);
  *(byte **)(lVar5 + -0xca8) = pbVar3;
  uVar25 = (ulonglong)DAT_1826718d4;
  uVar19 = (ulonglong)DAT_182671638;
  *(ulonglong *)(lVar5 + -0x158) = uVar25 ^ *(ulonglong *)(lVar5 + -0xd30);
  *(ulonglong *)(lVar5 + -0x960) = uVar19 ^ (ulonglong)pbVar3;
  *(byte **)(lVar5 + -0x738) = pbVar3 + (CONCAT44(uVar8,uVar8) ^ 0xa4e419fba4e419fa);
  *(byte *)(lVar5 - ((ulonglong)uVar9 ^ 0x4563ecdd)) =
       *pbVar3 ^ (byte)DAT_1826717a0 ^ (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar5 + -0x28) ^ (ulonglong)DAT_182671630) = bVar34 ^ 0xf;
  bVar15 = *(byte *)(lVar5 + -0xce1) ^ (byte)DAT_1826717a0;
  *(ulonglong *)(lVar5 + -0x108) = (*(ulonglong *)(lVar5 - (uVar33 ^ 0xb7968806)) ^ uVar25) + 1;
  *(byte *)(uVar25 ^ *(ulonglong *)(lVar5 + -0x158)) = bVar15;
  *(undefined8 *)(lVar5 + -0x5e8) = *(undefined8 *)(lVar5 - (uVar22 ^ 0x5689418e));
  *(undefined8 *)(lVar5 + -0x9b0) = *(undefined8 *)(lVar5 + -0x738);
  uVar10 = DAT_182671754;
  uVar7 = DAT_182671570;
  uVar26 = (ulonglong)DAT_1826716b8;
  uVar25 = (ulonglong)DAT_182671754;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x56894a56)) =
       *(ulonglong *)(lVar4 - (uVar17 ^ 0x28945ec)) ^ uVar26;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x56894886)) =
       (CONCAT44(uVar23,DAT_18267158c) ^ 0x4ef7146d764d5443) + 0x1f48619a25c3a786;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x19fba584)) = uVar25 ^ *(ulonglong *)(lVar4 + -0x9b0);
  *(ulonglong *)(lVar4 + -0xbe8) =
       (CONCAT44(uVar7,uVar11) ^ 0xad96416bebfcac8) +
       ((ulonglong)uVar10 ^ *(ulonglong *)(lVar4 + -0x160));
  uVar19 = CONCAT44(uVar27,DAT_1826715ac);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_1826715ac ^ 0x15498c71)) =
       (CONCAT44(uVar8,uVar32) ^ 0x45142d842be657e8) - *(longlong *)(DAT_182671560 + -0x1d8);
  lVar4 = DAT_182671560;
  bVar15 = (byte)DAT_1826715b0;
  puVar1 = (ulonglong *)(DAT_182671560 + -0x2d0);
  *(byte *)(DAT_182671560 + -0xce2) =
       *(byte *)(uVar25 ^ *(ulonglong *)(DAT_182671560 + -0x160)) ^ (byte)uVar14 ^
       (byte)DAT_182671718;
  *(byte *)(*puVar1 ^ (ulonglong)_DAT_1826715dc) = bVar15 ^ 0x1e;
  *(ulonglong *)(lVar4 + -0x240) =
       (uVar19 ^ 0x8c14de95665df596) & (CONCAT44(uVar8,uVar11) ^ 0x5507320197d0603f);
  uVar17 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar4 + -0x9b8) =
       (CONCAT44(uVar11,DAT_18267159c) ^ 0xbebfcac94a4f2c96) +
       (*(ulonglong *)(lVar4 + -0xad0) ^ uVar26);
  bVar15 = (byte)DAT_182671674;
  uVar22 = (ulonglong)DAT_18267176c;
  *(ulonglong *)(lVar4 + -0x548) =
       *(longlong *)(lVar4 + -0xc08) - (CONCAT44(DAT_182671578,uVar12) ^ 0xea0076d4563d84fb);
  uVar25 = (ulonglong)_DAT_18267188c;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar28 ^ 0x19fbae34)) ^ uVar26) =
       (byte)uVar14 ^ *(byte *)(lVar4 + -0xce2);
  *(undefined8 *)(lVar4 - (uVar35 ^ 0x28949c5)) = *(undefined8 *)(lVar4 + -0x9b8);
  *(int *)(lVar4 + -0x504) =
       -0x8c598d0 <<
       (((byte)*(undefined4 *)(lVar4 - (uVar20 ^ 0xbebfc2bd)) ^ (byte)DAT_1826715b8) & 0x1f);
  pbVar3 = *(byte **)(lVar4 - (uVar30 ^ 0xa4e41213));
  *(byte **)(lVar4 + -0xd50) = pbVar3;
  *(ulonglong *)(lVar4 + -0x5d8) = *(ulonglong *)(lVar4 + -0x9c0) ^ uVar25;
  uVar19 = CONCAT44(uVar8,DAT_182671598);
  *(ulonglong *)(lVar4 + -0x1b8) = (ulonglong)pbVar3 ^ uVar22;
  uVar8 = DAT_182671580;
  uVar20 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar4 + -0x1f0) =
       (uVar19 ^ 0x80a99edded5562ed) >> ((byte)*(undefined8 *)(lVar4 + -0x110) & 0x3f);
  *(ulonglong *)(lVar4 + -0x5b0) = (*(ulonglong *)(lVar4 - (uVar20 ^ 0x3bfe22e0)) ^ uVar22) + uVar21
  ;
  *(byte *)(lVar4 + -0x8b2) = *pbVar3 ^ bVar15 ^ (byte)DAT_182671718;
  *(undefined1 *)(*(ulonglong *)(lVar4 + -0x458) ^ uVar24) = 0xb1;
  *(ulonglong *)(lVar4 - (uVar17 ^ 0x4a4f2dc7)) = (uVar25 ^ *(ulonglong *)(lVar4 + -0x5d8)) + 1;
  *(byte *)(uVar25 ^ *(ulonglong *)(lVar4 + -0x5d8)) = bVar15 ^ *(byte *)(lVar4 + -0x8b2);
  uVar17 = (ulonglong)_DAT_182671868;
  *(undefined8 *)(lVar4 + -0x940) = *(undefined8 *)(lVar4 + -0x5b0);
  uVar19 = (ulonglong)DAT_18267179c;
  *(ulonglong *)(lVar4 + -0xd28) = *(ulonglong *)(lVar4 + -0x150);
  *(ulonglong *)(lVar4 + -0x528) = uVar19 ^ *(ulonglong *)(lVar4 + -0x150);
  uVar19 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar4 + -0x5c8) =
       (CONCAT44(uVar7,uVar8) ^ 0xf2f83431c81f9e4f) >> (((byte)uVar6 ^ 0xba) & 0x3f);
  pbVar3 = *(byte **)(lVar4 - (uVar33 ^ 0xb796801e));
  *(ulonglong *)(lVar4 + -0xf0) = (ulonglong)pbVar3 ^ uVar17;
  *(ulonglong *)(lVar4 + -0x370) =
       (*(ulonglong *)(lVar4 - (uVar19 ^ 0xd94b67b9)) ^ uVar17) +
       (CONCAT44(uVar6,DAT_1826715b4) ^ 0x5689408617f2cd09);
  *(byte *)(lVar4 + -0x981) = *pbVar3 ^ (byte)DAT_1826716d4 ^ (byte)DAT_182671718;
  *(byte *)(*(ulonglong *)(lVar4 + -0x398) ^ (ulonglong)DAT_18267169c) = (byte)uVar9 ^ 0xdb;
  *(byte *)(lVar4 - (uVar18 ^ 0xc9cab78f)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xbd8) ^ (ulonglong)DAT_182671690) ^ (byte)DAT_182671694;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar2 ^ uVar23;
  return;
}



############ FUN_ 180f19980 size=5363 ############

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

void FUN_180f19980(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  byte *pbVar22;
  ulonglong uVar23;
  uint uVar24;
  byte bVar25;
  uint uVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte bVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte local_res20;
  byte local_d0;
  
  uVar14 = DAT_18267178c;
  uVar12 = DAT_1826715a4;
  uVar11 = DAT_1826715a0;
  uVar10 = DAT_18267159c;
  uVar9 = DAT_182671594;
  uVar8 = DAT_18267158c;
  uVar7 = DAT_182671584;
  uVar6 = DAT_182671574;
  lVar3 = DAT_182671560;
  uVar23 = (ulonglong)DAT_18267158c;
  uVar35 = (ulonglong)DAT_18267159c;
  uVar30 = (ulonglong)DAT_1826715a0;
  uVar26 = DAT_18267158c + DAT_18267159c;
  uVar27 = (ulonglong)DAT_1826715a4;
  uVar21 = DAT_1826715a0 | DAT_182671574;
  uVar37 = (ulonglong)DAT_182671584;
  uVar34 = DAT_182671594 | DAT_182671584;
  uVar24 = DAT_1826715b0 * DAT_1826715a4;
  uVar2 = *(uint *)(&DAT_182611e70 + (uVar23 ^ 0xc4fcfff0) + (longlong)DAT_182671a08);
  uVar20 = (ulonglong)uVar21;
  uVar16 = *(uint *)(&DAT_182611e70 + (uVar20 ^ 0xfdfffe19) + (longlong)DAT_182671a08) ^
           DAT_18267159c;
  DAT_182671578 = uVar24;
  DAT_18267157c = uVar21;
  DAT_182671598 = uVar26;
  DAT_1826715b4 = uVar34;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x228) ^ (ulonglong)DAT_182671798) =
       *(byte *)(DAT_182671560 + -0x831) ^ (byte)DAT_182671674 ^ (byte)DAT_182671694;
  uVar5 = DAT_1826718a4;
  uVar31 = (ulonglong)uVar6;
  uVar33 = (ulonglong)DAT_1826718a4;
  uVar38 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 + -0xc18) + (CONCAT44(uVar11,uVar6) ^ 0x3d13ae09edeef408) * 8);
  *(uint *)(lVar3 + -0x754) = (uVar34 ^ 0x3619b06a) + *(int *)(lVar3 + -0x910);
  uVar13 = DAT_1826715e4;
  *(ulonglong *)(lVar3 + -0x218) = (ulonglong)puVar1 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671858;
  lVar4 = DAT_182671560;
  uVar19 = CONCAT44(uVar13,uVar13);
  uVar18 = (ulonglong)uVar9;
  puVar36 = (ulonglong *)(lVar3 - (uVar18 ^ 0x3cc8831d));
  *puVar36 = *puVar1 ^ uVar19 ^ uVar38;
  lVar3 = DAT_182671560;
  bVar28 = (byte)uVar14 ^ (byte)DAT_1826716e8;
  *(uint *)(lVar4 + -0x274) = DAT_1826715b0 ^ 0x185c088e | *(uint *)(lVar4 + -0x678);
  *(ulonglong *)(lVar4 + -0x670) =
       ((ulonglong)(uVar5 >> 0x18) | uVar33 << 8) ^ *(ulonglong *)(lVar4 + -0x510) >> 0x18 ^
       CONCAT44(uVar14,uVar14);
  *(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0x72e1982)) = bVar28 ^ *(byte *)(lVar3 + -0x670);
  uVar13 = DAT_1826717c4;
  uVar33 = (ulonglong)DAT_1826718c4;
  *(ulonglong *)(lVar3 + -0x560) =
       (CONCAT44(uVar24,uVar12) ^ 0xf1f2010006079010) * 0x20 + *(longlong *)(lVar3 + -0x8f0) + 0xb ^
       uVar33;
  lVar3 = DAT_182671560;
  bVar28 = *(byte *)(DAT_182671560 + -0x931) ^ (byte)DAT_1826716e8 ^ (byte)DAT_182671694;
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       CONCAT44(uVar13,uVar13) ^ CONCAT44(uVar8,uVar26) ^ *(ulonglong *)(DAT_182671560 + -0x610) ^
       0x34f500796bb05bb9;
  uVar29 = CONCAT44(DAT_182671614,DAT_182671614);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0xedeef169)) ^ uVar33) = bVar28;
  uVar13 = DAT_18267187c;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0xfdfffa31)) =
       *(longlong *)(lVar3 + -0xc18) + (CONCAT44(uVar8,uVar12) ^ 0xc4fcfff806079011) * 8 ^ uVar29;
  uVar33 = CONCAT44(DAT_1826718c0,DAT_1826718c0);
  *(ulonglong *)(lVar3 - (uVar37 ^ 0x72e1143)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x438) ^ uVar29) ^ uVar33 ^ uVar19;
  lVar3 = DAT_182671560;
  bVar25 = (byte)uVar11;
  *(ulonglong *)(DAT_182671560 + -0xa0) =
       (uVar33 ^ *(ulonglong *)(DAT_182671560 + -0x1f0)) >> ((bVar25 ^ 0x29) & 0x3f) ^
       CONCAT44(uVar13,uVar13);
  uVar5 = DAT_1826715b0;
  uVar29 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 + -0x8a8) =
       *(ulonglong *)(lVar3 - (uVar31 ^ 0xedeef279)) ^ CONCAT44(uVar14,uVar14) | uVar38 ^ *puVar36;
  *(byte *)(lVar3 - (uVar37 ^ 0x72e14a1)) =
       *(byte *)(lVar3 - (uVar35 ^ 0xd9892a78)) ^ (byte)uVar13 ^ (byte)DAT_18267184c;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x6079c18)) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x3cc887fd)) ^ uVar33) <<
       (((byte)DAT_182671878 ^ *(byte *)(lVar3 + -0x5c8)) & 0x3f);
  pbVar22 = (byte *)(*(longlong *)(lVar3 - ((ulonglong)uVar24 ^ 0xf1f209f0)) +
                     (CONCAT44(uVar12,uVar6) ^ 0x6079010edeef409) * 0x20 +
                    (CONCAT44(uVar10,uVar5) ^ 0xd9892ad80607901c));
  *(ulonglong *)(lVar3 + -0x130) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671890;
  uVar14 = DAT_182671784;
  uVar13 = DAT_1826715c8;
  *pbVar22 = *(byte *)(lVar3 - (uVar23 ^ 0xc4fcfbea)) ^ (byte)DAT_182671694 ^ (byte)DAT_18267184c;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar17 = DAT_1826715a0 ^ 0x6c704ace;
  *(ulonglong *)(DAT_182671560 + -0x450) =
       *(longlong *)(DAT_182671560 + -0xc18) + (CONCAT44(uVar12,uVar9) ^ 0x60790103cc8860c) * 8 ^
       uVar33;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar34 ^ 0x3fee91eb)) =
       (DAT_18267157c ^ 0x909dbce4) * uVar17;
  uVar29 = *(ulonglong *)(uVar33 ^ *(ulonglong *)(lVar3 + -0x450)) ^ uVar19;
  *(ulonglong *)(lVar3 + -0xa60) = uVar29 ^ CONCAT44(DAT_1826717e4,DAT_1826717e4);
  uVar33 = (ulonglong)DAT_182671770;
  uVar29 = uVar29 >> (((byte)uVar7 ^ 0x9b) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  bVar32 = (byte)uVar13 ^ (byte)uVar29 ^ (byte)DAT_1826717d0;
  *(ulonglong *)(lVar3 + -0x240) = uVar29;
  *(byte *)(lVar3 + -0x67a) = bVar32;
  *(ulonglong *)(lVar3 + -0x840) =
       (CONCAT44(uVar8,uVar6) ^ 0xc4fcfff8edeef409) * 0x20 +
       (CONCAT44(uVar26,uVar10) ^ 0x9e862ad0d9892ad5) + *(longlong *)(lVar3 + -0x8f0) ^ uVar33;
  uVar15 = DAT_1826718b0;
  lVar4 = DAT_182671560;
  bVar28 = (byte)DAT_182671694 ^ (byte)DAT_1826717d0;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (CONCAT44(uVar24,uVar12) ^ 0x486d4e4cbb7b953e) <<
       ((byte)*(undefined8 *)(lVar3 - ((ulonglong)uVar5 ^ 0x60798b8)) & 0x3f);
  uVar29 = CONCAT44(DAT_1826718ac,DAT_1826718ac);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar27 ^ 0x6079850)) ^ uVar33) = bVar28 ^ bVar32;
  uVar13 = DAT_182671738;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 + -0xc18) +
           ((CONCAT44(uVar21,uVar6) ^ 0xfdfffe09edeef408) +
           (CONCAT44(uVar9,uVar24) ^ 0x3cc8860df1f20100) * 4) * 8);
  *(ulonglong *)(lVar4 + -0x178) = (ulonglong)puVar1 ^ uVar29;
  lVar3 = DAT_182671560;
  uVar33 = CONCAT44(uVar13,uVar13);
  local_res20 = (byte)uVar8;
  *(ulonglong *)(DAT_182671560 - (uVar20 ^ 0xfdfff809)) = *puVar1 ^ uVar19 ^ uVar33;
  uVar33 = (*(ulonglong *)(lVar3 + -0x600) ^ uVar33) >> ((local_res20 ^ 200) & 0x3f) ^
           CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar33;
  bVar28 = (byte)uVar15 ^ (byte)uVar33 ^ (byte)DAT_182671724;
  *(byte *)(lVar3 + -0x981) = bVar28;
  pbVar22 = (byte *)(*(longlong *)(DAT_182671560 + -0x8f0) + 0xe +
                    (CONCAT44(uVar7,uVar26) ^ 0x72e10b39e862ad0) * 0x20);
  *(ulonglong *)(DAT_182671560 + -0xa8) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671748;
  lVar3 = DAT_182671560;
  *pbVar22 = (byte)DAT_182671694 ^ (byte)DAT_182671724 ^ bVar28;
  *(ulonglong *)(lVar3 + -0x898) =
       (CONCAT44(uVar6,uVar26) ^ 0x281645ac3c4a39b3) - (CONCAT44(uVar9,uVar11) ^ 0x170b4d89087c8802)
  ;
  uVar17 = DAT_182671600;
  uVar33 = CONCAT44(DAT_182671774,DAT_182671774);
  *(ulonglong *)(lVar3 + -0xa38) =
       *(longlong *)(lVar3 - (uVar31 ^ 0xedeef811)) +
       ((CONCAT44(uVar9,uVar6) ^ 0x3cc8860dedeef408) +
       (CONCAT44(uVar34,uVar11) ^ 0x3fee96bf3d13ae09) * 4) * 8 ^ uVar33;
  uVar14 = DAT_18267170c;
  *(ulonglong *)(lVar3 + -0xa88) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar35 ^ 0xd98920e0)) ^ uVar33) ^
       CONCAT44(uVar17,uVar17) ^ uVar19;
  uVar13 = _DAT_1826715f0;
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar20 ^ 0xfdfff571)) ^ CONCAT44(uVar14,uVar14)) =
       CONCAT44(uVar5,uVar11) ^ 0xb38af7f1a0022c3b;
  lVar3 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x678) = *(uint *)(DAT_182671560 + -0x754) >> 0x1a;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar20 = (ulonglong)*(byte *)((lVar3 - (uVar23 ^ 0xc4fcf570)) + 7) ^ (ulonglong)(uVar17 >> 0x18) ^
           uVar29;
  *(ulonglong *)(lVar3 + -0x400) = uVar20;
  *(byte *)(lVar3 - (uVar31 ^ 0xedeeffc0)) = (byte)uVar13 ^ (byte)uVar20 ^ (byte)DAT_1826715f4;
  uVar20 = (ulonglong)DAT_182671678;
  *(ulonglong *)(lVar3 + -0x318) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0x3d13a821)) >>
       ((*(byte *)(lVar3 + -0x9f8) ^ (byte)uVar15) & 0x3f);
  puVar36 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b0 ^ 0x6079410));
  *(ulonglong *)(lVar3 + -0x9d8) =
       *(longlong *)(lVar3 - (uVar37 ^ 0x72e1843)) +
       (CONCAT44(uVar12,uVar10) ^ 0x6079010d9892ad8) * 0x20 +
       (CONCAT44(uVar26,uVar9) ^ 0x9e862ad03cc88602) ^ uVar20;
  bVar28 = *(byte *)(lVar3 + -0xbc9) ^ (byte)DAT_182671694 ^ (byte)DAT_1826715f4;
  *(ulonglong *)(lVar3 + -0x548) = uVar29 ^ *puVar36 | 0xe26f8bec4a739d3b;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0xf1f208d8)) ^ uVar20) = bVar28;
  *(ulonglong *)(lVar3 + -0x270) =
       CONCAT44(uVar6,uVar34) ^ 0xa0a1903c92e39dd1 | CONCAT44(uVar7,uVar24) ^ 0xb572de2f915ca2d3;
  uVar14 = DAT_182671730;
  uVar13 = DAT_18267165c;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 + -0xc18) + (CONCAT44(uVar12,uVar8) ^ 0x6079010c4fcfffa) * 8);
  *(ulonglong *)(lVar3 + -0x880) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671644,DAT_182671644);
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar33 = *puVar1 ^ uVar19;
  bVar32 = (byte)uVar14 ^ (byte)DAT_1826716d0;
  *(ulonglong *)(lVar3 + -0x80) = uVar33 ^ uVar31;
  uVar33 = uVar33 >> ((bVar25 ^ 9) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar33 ^ CONCAT44(uVar14,uVar14);
  bVar32 = bVar32 ^ *(byte *)(lVar3 + -0xbf0);
  local_d0 = (byte)uVar24;
  uVar20 = *(ulonglong *)(lVar3 - (uVar23 ^ 0xc4fcf408));
  *(byte *)(lVar3 + -0x1b9) = bVar32;
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar20 ^ CONCAT44(uVar14,uVar14)) << ((local_d0 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar3 + -0x748) = (CONCAT44(uVar34,uVar10) ^ 0xcd65ff37191b69f1) - uVar33;
  uVar13 = DAT_1826715f8;
  lVar3 = DAT_182671560;
  pbVar22 = (byte *)(*(longlong *)(DAT_182671560 - (uVar23 ^ 0xc4fcf708)) +
                     (CONCAT44(uVar5,uVar6) ^ 0x6079010edeef409) * 0x20 +
                    (CONCAT44(uVar9,uVar34) ^ 0x3cc8860d3fee96af));
  bVar28 = (byte)DAT_182671694 ^ (byte)DAT_1826716d0;
  *(ulonglong *)(DAT_182671560 + -0xba8) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671884;
  *pbVar22 = bVar28 ^ bVar32;
  uVar5 = DAT_1826715b0;
  uVar20 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar23 = (ulonglong)DAT_1826715b0;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x3d13a639)) =
       *(longlong *)(lVar3 + -0xc18) +
       ((CONCAT44(uVar34,uVar7) ^ 0x3fee96bf072e10b1) +
       (CONCAT44(uVar21,uVar9) ^ 0xfdfffe093cc8860d) * 4) * 8 ^ uVar20;
  uVar15 = DAT_182671780;
  *(ulonglong *)(lVar3 + -0x1d8) =
       (CONCAT44(uVar26,uVar24) ^ 0x71eaef8441ab66e) >>
       (((byte)uVar14 ^ *(byte *)(lVar3 + -0xbf0)) & 0x3f);
  uVar20 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x830) ^ uVar20) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar20 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xd9892960)) =
       uVar20 >> (((byte)uVar7 ^ 0xbb) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  lVar4 = DAT_182671560;
  uVar20 = (ulonglong)DAT_182671844;
  *(byte *)(DAT_182671560 - (uVar27 ^ 0x6079a41)) =
       (byte)uVar13 ^ *(byte *)(lVar3 + -0x3b8) ^ (byte)DAT_1826718c8;
  uVar13 = DAT_182671754;
  pbVar22 = (byte *)((CONCAT44(uVar10,uVar21) ^ 0xd9892ad8fdfffe18) +
                     (CONCAT44(uVar34,uVar5) ^ 0x3fee96bf06079010) * 0x20 +
                    *(longlong *)(lVar4 + -0x8f0));
  bVar28 = *(byte *)(lVar4 + -0xa51) ^ (byte)DAT_182671694 ^ (byte)DAT_1826718c8;
  *(ulonglong *)(lVar4 + -0x9b0) = (ulonglong)pbVar22 ^ uVar20;
  *pbVar22 = bVar28;
  *(ulonglong *)(lVar4 + -0x610) = *(ulonglong *)(lVar4 + -0x548) ^ uVar29 ^ *puVar36;
  uVar14 = DAT_1826717f8;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 - (uVar27 ^ 0x6079c08)) +
           ((CONCAT44(uVar24,uVar9) ^ 0xf1f201003cc8860f) +
           (CONCAT44(uVar11,uVar8) ^ 0x3d13ae09c4fcfff8) * 4) * 8);
  *(ulonglong *)(lVar4 + -0x6a0) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671864,DAT_182671864);
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x2a0) = *puVar1 ^ uVar19 ^ uVar20;
  bVar28 = (byte)uVar13 ^ (byte)DAT_182671874;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x6079660)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0x9e862870)) ^ uVar20) >> ((byte)uVar5 & 0x3f) ^
       CONCAT44(uVar13,uVar13);
  uVar20 = (ulonglong)DAT_182671714;
  *(byte *)(lVar4 + -0x411) = bVar28 ^ *(byte *)(lVar4 + -0x670);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x3fee9f7f)) =
       *(longlong *)(lVar4 + -0x8f0) + 0x12U ^ uVar20;
  uVar13 = DAT_182671898;
  uVar5 = DAT_182671570;
  uVar29 = (ulonglong)DAT_182671570;
  *(byte *)(*(ulonglong *)(lVar4 + -0x9c0) ^ uVar20) =
       (byte)DAT_182671694 ^ (byte)DAT_182671874 ^ *(byte *)(lVar4 + -0x411);
  uVar17 = DAT_182671580;
  uVar20 = CONCAT44(DAT_182671608,DAT_182671608);
  uVar21 = uVar5 | DAT_182671580;
  uVar30 = (ulonglong)DAT_182671580;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 + -0xc18) +
           ((CONCAT44(uVar7,uVar12) ^ 0x72e10b306079012) +
           (CONCAT44(uVar7,uVar6) ^ 0x72e10b3edeef409) * 4) * 8);
  bVar28 = (byte)*(undefined8 *)(lVar4 + -0x548);
  DAT_182671568 = uVar21;
  *(longlong *)(lVar4 + -0x510) = -0x78d7da8630bf0dbd << (bVar28 & 0x3f);
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x5f8) = (ulonglong)puVar1 ^ uVar20;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar20 = *puVar1 ^ uVar19;
  *(ulonglong *)(lVar3 + -0xa0) = uVar20 ^ uVar37;
  bVar32 = (byte)DAT_18267186c ^ DAT_182671868;
  uVar33 = CONCAT44(DAT_18267186c,DAT_18267186c);
  puVar1 = (ulonglong *)(DAT_182671560 + -0x80);
  *(ulonglong *)(DAT_182671560 + -0x5c8) = uVar20 >> (((byte)uVar5 ^ 0x54) & 0x3f) ^ uVar33;
  lVar3 = DAT_182671560;
  uVar27 = (ulonglong)uVar21;
  pbVar22 = (byte *)(DAT_182671560 + -0x5c8);
  *(ulonglong *)(DAT_182671560 + -0x1f0) = (uVar31 ^ *puVar1) << (bVar28 & 0x3f);
  *(byte *)(lVar3 + -0xbf2) = bVar32 ^ *pbVar22;
  *(longlong *)(lVar3 + -0xc08) = *(longlong *)(lVar3 + -0x898) + 0x4362719dc38175a3;
  uVar20 = (ulonglong)DAT_182671634;
  bVar32 = (byte)uVar13 ^ (byte)DAT_1826718b8;
  *(ulonglong *)(lVar3 + -0xd28) =
       (CONCAT44(uVar21,uVar5) ^ 0xfbdbef7df8d1ef5f) + *(longlong *)(lVar3 + -0x8f0) ^ uVar20;
  uVar31 = CONCAT44(DAT_182671630,DAT_182671630);
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0xf8d1e264)) ^ uVar20) =
       *(byte *)(DAT_182671560 - (uVar30 ^ 0x638a88c3)) ^ (byte)DAT_182671694 ^ DAT_182671868;
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0xf8d1ecec)) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0x638a8f29)) +
       ((CONCAT44(uVar21,uVar21) ^ 0xfbdbef7dfbdbef7f) +
       (CONCAT44(uVar21,uVar5) ^ 0xfbdbef7df8d1ef4c) * 4) * 8 ^ uVar31;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       *(ulonglong *)(DAT_182671560 - (uVar27 ^ 0xfbdbe9c5)) |
       CONCAT44(uVar17,uVar17) ^ 0x5b8d828a70fd9e8;
  uVar23 = CONCAT44(DAT_18267180c,DAT_18267180c);
  uVar20 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x3a0) ^ uVar31) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x240) = uVar20 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x6d0) = uVar20;
  uVar20 = (uVar23 ^ *(ulonglong *)(lVar3 + -0x240)) >> (((byte)uVar5 ^ 0x6c) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x8a8) = uVar20;
  uVar14 = DAT_1826718bc;
  lVar4 = DAT_182671560;
  bVar32 = bVar32 ^ (byte)uVar20;
  *(byte *)(lVar3 + -0x505) = bVar32;
  bVar28 = (byte)DAT_182671694 ^ (byte)DAT_1826718b8;
  pbVar22 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar5 ^ 0xf8d1e7bc)) +
                     (CONCAT44(uVar5,uVar21) ^ 0xf8d1ef4cfbdbef7d) * 0x20 +
                    (CONCAT44(uVar17,uVar17) ^ 0x638a8331638a8325));
  *(ulonglong *)(lVar4 + -0x260) = (ulonglong)pbVar22 ^ (ulonglong)DAT_1826715bc;
  *pbVar22 = bVar28 ^ bVar32;
  uVar13 = DAT_1826715d4;
  *(ulonglong *)(lVar4 + -0x600) =
       uVar33 ^ *(ulonglong *)(lVar4 + -0x5c8) | uVar37 ^ *(ulonglong *)(lVar4 + -0x8a8);
  uVar20 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x230) =
       *(longlong *)(lVar4 + -0xc18) +
       ((CONCAT44(uVar21,uVar17) ^ 0xfbdbef7d638a8333) +
       (CONCAT44(uVar6,uVar24) ^ 0xedeef409f1f20100) * 4) * 8 ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xf8d1e9c4)) =
       (CONCAT44(uVar17,uVar5) ^ 0x9d93871b34bb6f0f) << (((byte)uVar9 ^ 0x28) & 0x3f);
  uVar23 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  *(ulonglong *)(lVar4 + -0xa88) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar30 ^ 0x638a8101)) ^ uVar20) ^ uVar19 ^ uVar23;
  bVar28 = (byte)uVar14 ^ (byte)DAT_1826716d4;
  uVar20 = (*(ulonglong *)(lVar4 - (uVar27 ^ 0xfbdbe5f5)) ^ uVar23) >> ((bVar25 ^ 0x21) & 0x3f) ^
           CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x628) = uVar20;
  uVar23 = (ulonglong)_DAT_18267188c;
  *(byte *)(lVar4 - (uVar18 ^ 0x3cc88ce4)) = bVar28 ^ (byte)uVar20;
  pbVar22 = (byte *)((CONCAT44(uVar34,uVar26) ^ 0x3fee96bf9e862ad0) * 0x20 +
                    *(longlong *)(lVar4 + -0x8f0) + 0x15);
  *(ulonglong *)(lVar4 + -0xbb0) = (ulonglong)pbVar22 ^ uVar23;
  *(ulonglong *)(lVar4 + -0x9f8) =
       CONCAT44(uVar17,uVar10) ^ CONCAT44(uVar8,uVar21) ^ 0xf343983434e0a51b;
  *pbVar22 = *(byte *)(lVar4 + -0xae9) ^ (byte)DAT_182671694 ^ (byte)DAT_1826716d4;
  uVar13 = DAT_18267164c;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 - (uVar18 ^ 0x3cc88a15)) +
           ((CONCAT44(uVar24,uVar11) ^ 0xf1f201003d13ae0b) +
           (CONCAT44(uVar26,uVar10) ^ 0x9e862ad0d9892ad8) * 4) * 8);
  *(ulonglong *)(lVar4 + -0x30) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671810,DAT_182671810);
  uVar20 = *puVar1;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar2 ^ uVar26;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xfbdbec65)) = CONCAT44(uVar13,uVar13) ^ uVar20 ^ uVar19;
  return;
}



############ FUN_ 180e50ca0 size=2899 ############

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

void FUN_180e50ca0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  byte bVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  byte bVar13;
  uint uVar14;
  byte *pbVar15;
  ulonglong uVar16;
  uint uVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  
  uVar22 = DAT_1826715b4;
  uVar4 = DAT_182671598;
  uVar5 = DAT_182671580;
  lVar2 = DAT_182671560;
  uVar25 = (ulonglong)DAT_182671580;
  uVar23 = (ulonglong)DAT_1826715b4;
  uVar19 = DAT_182671580 << 0x10 | DAT_182671580 >> 0x10;
  uVar24 = ~DAT_182671598;
  uVar17 = ~DAT_1826715b4;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_18267190c);
  uVar14 = *(uint *)(&DAT_182611e78 + DAT_18267190c) ^ DAT_182671580;
  pbVar15 = (byte *)((ulonglong)_DAT_182671618 ^ *(ulonglong *)(DAT_182671560 + -0x870));
  uVar26 = (ulonglong)uVar24;
  bVar13 = (byte)DAT_1826715b4;
  DAT_1826715a4 = uVar17;
  DAT_1826715b0 = uVar24;
  *(byte **)(DAT_182671560 + -0xa8) = pbVar15 + 1;
  *(byte *)(lVar2 + -0x951) = *pbVar15 ^ (byte)DAT_18267162c ^ (byte)DAT_1826717b4;
  *(undefined8 *)(lVar2 + -0x870) = 0xcedfe624e6d77634;
  uVar16 = (ulonglong)uVar17;
  uVar10 = CONCAT44(uVar22,uVar17);
  uVar18 = (ulonglong)DAT_1826715fc;
  *(ulonglong *)(lVar2 + -0xcb0) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0xbc0)) + (uVar10 ^ 0xaabdaabc55425542);
  uVar11 = (ulonglong)uVar19;
  *(undefined8 *)(lVar2 - (uVar25 ^ 0xb6acaa0e)) = 0x4eac405eac4e0192;
  uVar12 = *(ulonglong *)(lVar2 + -0xbc0);
  *(ulonglong *)(DAT_182671560 + -0x6d0) = CONCAT44(uVar5,uVar22) ^ 0xf4820153dc742d16;
  *(byte *)(uVar18 ^ uVar12) =
       *(byte *)(DAT_182671560 - (uVar11 ^ 0xacb6bffd)) ^ (byte)DAT_18267162c;
  *(byte *)(lVar2 + -0x951) = bVar13 ^ 0xf7;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar5 ^ 0xb6aca6e6)) = *(undefined8 *)(lVar2 + -0xcb0);
  *(undefined8 *)(lVar2 - (uVar16 ^ 0x554259f3)) = 0x100a94c258d043e6;
  *(uint *)(lVar2 + -0x964) = uVar24 ^ 0x216782fe;
  *(uint *)(lVar2 + -0x504) = uVar19 ^ 0x870622c8;
  *(uint *)(lVar2 + -0x968) = uVar4 ^ 0x307fbbb8;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar4 ^ 0x5426f70b)) = *(undefined8 *)(lVar2 + -0xa8);
  uVar8 = DAT_1826715c0;
  *(undefined8 *)(lVar2 + -0xa8) = 0xf2a735556db978c4;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xabd9059c)) =
       *(ulonglong *)(CONCAT44(DAT_1826716ac,DAT_1826716ac) ^ *(ulonglong *)(lVar2 + -0x70)) ^
       CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x70) = uVar10 ^ 0xb52aedc152d08abf;
  uVar18 = (ulonglong)DAT_182671844;
  *(ulonglong *)(lVar2 + -0xc60) = *(ulonglong *)(lVar2 + -0xa50) ^ uVar18;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x5426fc3b)) =
       CONCAT44(uVar19,uVar22) ^ 0x51dfb5451a99ac4f;
  uVar12 = (ulonglong)DAT_182671850;
  *(ulonglong *)(lVar2 + -0x510) = CONCAT44(uVar19,uVar22) ^ 0xf45ca8d66216d2b4;
  pbVar15 = *(byte **)(lVar2 + -0x160);
  *(ulonglong *)(lVar2 + -0x2e0) = uVar12 ^ (ulonglong)pbVar15;
  bVar13 = (byte)DAT_1826717e0;
  *(ulonglong *)(lVar2 + -0x160) = CONCAT44(uVar5,uVar24) ^ 0x3893775db10b7baa;
  *(byte **)(lVar2 + -0x488) = pbVar15 + (CONCAT44(uVar5,uVar17) ^ 0xb6acacb655425542);
  *(byte *)(lVar2 + -0xb09) = bVar13 ^ (byte)DAT_1826717b4 ^ *pbVar15;
  uVar12 = (ulonglong)DAT_1826718b4;
  *(undefined4 *)(lVar2 + -0x3d4) = 0x4be1b652;
  *(uint *)(uVar12 ^ *(ulonglong *)(lVar2 + -0xc98)) = uVar19 ^ 0x71513c29;
  *(ulonglong *)(lVar2 + -0xc98) = CONCAT44(uVar22,uVar24) ^ 0xc99469e5d7685c55;
  *(ulonglong *)(DAT_182671560 - (uVar16 ^ 0x554257a3)) =
       CONCAT44(uVar24,uVar5) ^ 0x2b51a7303d6b0bd1;
  lVar2 = DAT_182671560;
  pbVar15 = (byte *)(DAT_182671560 + -0xb09);
  *(ulonglong *)(DAT_182671560 + -0xb28) =
       (CONCAT44(uVar24,uVar19) ^ 0xabd90994acb6b6ad) +
       (*(ulonglong *)(DAT_182671560 + -0xc60) ^ uVar18);
  uVar20 = (ulonglong)DAT_1826717a4;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar16 ^ 0x55425923)) ^ uVar18) = bVar13 ^ *pbVar15;
  uVar12 = (ulonglong)DAT_182671708;
  *(undefined1 *)(lVar2 + -0xb09) = 0x9b;
  *(undefined8 *)(lVar2 + -0x498) = *(undefined8 *)(lVar2 - (uVar23 ^ 0xaabda194));
  *(ulonglong *)(lVar2 + -0xb28) = CONCAT44(uVar4,uVar5) ^ 0xc58d9d650e16a05d;
  *(undefined8 *)(lVar2 - (uVar16 ^ 0x55425c9b)) = *(undefined8 *)(lVar2 + -0x488);
  *(undefined8 *)(lVar2 + -0x488) = 0x56231128ec68401a;
  *(ulonglong *)(lVar2 + -0xa88) =
       CONCAT44(uVar5,uVar4) ^ 0xf31626e4726fa028 | *(ulonglong *)(lVar2 + -0x3f0);
  *(ulonglong *)(lVar2 + -0x3f0) = CONCAT44(uVar4,uVar19) ^ 0x4a537c5a2c4b1656;
  *(ulonglong *)(lVar2 + -0x6e8) = uVar20 ^ *(ulonglong *)(lVar2 + -0x498);
  *(ulonglong *)(lVar2 + -0x498) = CONCAT44(uVar5,uVar17) ^ 0xf4bbe32a22d96025;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar26 ^ 0xabd900e4)) = *(ulonglong *)(lVar2 + -0x9d8) ^ uVar12;
  *(ulonglong *)(lVar3 + -0x9d8) = CONCAT44(uVar19,uVar5) ^ 0x84cf59207ff973cd;
  *(ulonglong *)(lVar3 + -0x2f0) = (uVar12 ^ *(ulonglong *)(lVar3 + -0x970)) + 1;
  *(byte *)(lVar3 - ((ulonglong)uVar24 ^ 0xabd90fce)) =
       *(byte *)((ulonglong)DAT_182671614 ^ *(ulonglong *)(lVar3 + -0xa40)) ^ (byte)DAT_1826717b4;
  bVar9 = (byte)DAT_1826718a8;
  *(undefined1 *)(DAT_182671560 - (uVar23 ^ 0xaabdace6)) = 0xe8;
  lVar2 = DAT_182671560;
  puVar21 = (ulonglong *)(DAT_182671560 + -0x970);
  pbVar15 = (byte *)(uVar20 ^ *(ulonglong *)(DAT_182671560 + -0x6e8));
  *(ulonglong *)(DAT_182671560 + -0xa40) = CONCAT44(uVar4,uVar4) ^ 0x24c734c44b40853d;
  bVar13 = *(byte *)(uVar12 ^ *puVar21);
  *(ulonglong *)(lVar2 + -0x970) = CONCAT44(uVar5,uVar22) ^ 0xe7225f197eb76423;
  bVar13 = bVar13 ^ bVar9 ^ (byte)DAT_1826717b4;
  *(byte **)(lVar2 + -0x590) = pbVar15 + (CONCAT44(uVar4,uVar22) ^ 0x5426f66baabdaabd);
  *pbVar15 = bVar9 ^ bVar13;
  *(undefined8 *)(lVar2 + -0x620) = *(undefined8 *)(lVar2 + -0x590);
  *(undefined1 *)(lVar2 + -0x5da) = 0xf3;
  *(ulonglong *)(lVar2 + -0x590) = CONCAT44(uVar24,uVar17) ^ 0x5abf387eca567222;
  *(undefined4 *)(lVar2 + -0x27c) = 0xb3267937;
  *(undefined8 *)(lVar2 - (uVar11 ^ 0xacb6b674)) = *(undefined8 *)(lVar2 - (uVar11 ^ 0xacb6b45c));
  uVar18 = (ulonglong)DAT_1826716cc;
  *(ulonglong *)(lVar2 + -0x2f0) = CONCAT44(DAT_182671574,uVar17) ^ 0x6aba03164979fddf;
  uVar4 = DAT_182671568;
  *(ulonglong *)(lVar2 + -0xba8) = *(ulonglong *)(lVar2 - (uVar25 ^ 0xb6acaa96)) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x620) = CONCAT44(uVar24,uVar17) ^ 0xbc39004d30e1cd06;
  uVar20 = (ulonglong)DAT_1826716f4;
  uVar12 = *(ulonglong *)(lVar2 - (uVar26 ^ 0xabd9094c));
  *(undefined8 *)(lVar2 + -0xd8) = 0x4882eee2401e79b5;
  *(ulonglong *)(lVar2 + -0xad8) = uVar12 ^ uVar20;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 - (uVar11 ^ 0xacb6b0ac)) =
       *(ulonglong *)(lVar2 - (uVar25 ^ 0xb6aca4b6)) | uVar10 ^ 0xb49f8e244ed57937;
  uVar6 = DAT_182671584;
  uVar11 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar2 + -0x800) = CONCAT44(uVar19,DAT_1826715a8) ^ 0xb3e94a2e778c055c;
  *(ulonglong *)(lVar2 + -0x600) = CONCAT44(DAT_18267159c,uVar4) ^ 0x69d6e7f38f7e94df;
  bVar13 = DAT_1826715e0;
  uVar12 = *(ulonglong *)(lVar2 - (uVar16 ^ 0x55425f9b));
  uVar10 = CONCAT44(uVar6,DAT_182671578);
  *(undefined8 *)(lVar2 + -0x3b8) = 0x430b67d341f5c8c6;
  *(ulonglong *)(lVar2 + -0x208) = (uVar12 ^ uVar20) + (uVar10 ^ 0x5f77ac54e9db00e3);
  uVar23 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar3 + -0x9f8) = CONCAT44(uVar6,DAT_182671590) ^ 0x4e849eff330f8404;
  uVar7 = DAT_1826715a4;
  *(byte *)(lVar3 + -0x941) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xad8) ^ uVar20) ^ bVar13 ^ (byte)DAT_1826717b4;
  *(ulonglong *)(lVar3 + -0xad8) = CONCAT44(uVar24,uVar22) ^ 0xfc2eeabd0c61eeef;
  lVar2 = DAT_182671560;
  uVar22 = uVar6 + uVar7;
  DAT_1826715a0 = uVar22;
  *(undefined4 *)(lVar3 - ((ulonglong)uVar22 ^ 0xb4ba09d3)) = 0xa6838dcf;
  *(uint *)(lVar3 + -0x754) = uVar7 ^ 0x2326319d;
  uVar25 = CONCAT44(uVar17,uVar6);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0xb4ba0507)) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0xba8)) + (CONCAT44(uVar22,uVar6) ^ 0xb4ba01975f77ac55);
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x9e8) =
       (uVar25 ^ 0x9e4b2d7557e757e8) <<
       ((byte)*(undefined8 *)(DAT_182671560 - ((ulonglong)uVar22 ^ 0xb4ba0bf7)) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa60) = uVar25 ^ 0x2b3d3095a106cd02;
  *(ulonglong *)(lVar2 - (uVar11 ^ 0x5f77a5bc)) = CONCAT44(uVar22,uVar6) ^ 0x3873c9bbdd07f6ab;
  *(byte *)(uVar18 ^ *(ulonglong *)(lVar2 + -0xba8)) = bVar13 ^ *(byte *)(lVar2 + -0x941);
  lVar2 = DAT_182671560;
  *(byte *)(DAT_182671560 - (uVar16 ^ 0x55425c02)) = (byte)uVar22 ^ 0x9e;
  *(undefined8 *)(lVar2 + -0x1e0) = *(undefined8 *)(lVar2 - (uVar16 ^ 0x554251d3));
  *(undefined8 *)(lVar2 + -0x490) = 0x898574228e6bf2bf;
  *(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x5f77af7c)) = (uVar22 ^ 0xc24d9e82) + 0x39fd583e;
  uVar12 = (ulonglong)DAT_18267185c;
  uVar10 = (ulonglong)DAT_182671720;
  *(undefined4 *)(lVar2 + -0x328) = 0x6418dbc3;
  puVar21 = (ulonglong *)(lVar2 - (uVar11 ^ 0x5f77ae04));
  *(undefined8 *)(lVar2 - (uVar16 ^ 0x55425c3b)) = *(undefined8 *)(lVar2 + -0x208);
  *(ulonglong *)(lVar2 + -0x208) = CONCAT44(uVar22,uVar17) ^ 0xba860ccc8672ca64;
  *(ulonglong *)(lVar2 + -0x8c8) = *(ulonglong *)(lVar2 + -0x1e0) ^ uVar10;
  *(ulonglong *)(lVar2 + -0x1e0) = CONCAT44(uVar6,uVar22) ^ 0xb7dac98a692e115e;
  pbVar15 = *(byte **)(lVar2 - ((ulonglong)uVar22 ^ 0xb4ba08ef));
  *(ulonglong *)(lVar2 + -0x250) = (ulonglong)pbVar15 ^ uVar12;
  *(ulonglong *)(lVar2 + -0x978) = uVar25 ^ 0xef294b3d4d98d09f;
  *(ulonglong *)(lVar2 + -0x558) =
       (CONCAT44(uVar6,uVar5) ^ 0x5f77ac54b6acacb7) + (uVar12 ^ *puVar21);
  *(byte *)(lVar2 + -0x711) = *pbVar15 ^ (byte)DAT_1826716e8 ^ (byte)DAT_1826717b4;
  *puVar21 = CONCAT44(uVar6,DAT_182671588) ^ 0xba3f873a23e5b057;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xf66b5276)) =
       (uVar10 ^ *(ulonglong *)(lVar2 + -0x8c8)) + (CONCAT44(uVar22,uVar17) ^ 0xb4ba019755425542);
  DAT_18267157c = DAT_18267158c - uVar4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xdd04b5b1)) =
       (CONCAT44(DAT_18267157c,uVar4) ^ 0xb53e3a9bda9021fb) >>
       ((byte)*(undefined8 *)(lVar2 - ((ulonglong)DAT_18267158c ^ 0x603a9648)) & 0x3f);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar19) * 4) = uVar14;
  return;
}



############ FUN_ 180f02630 size=5466 ############

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

void FUN_180f02630(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  byte bVar20;
  uint uVar21;
  ulonglong *puVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte bVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar56;
  byte local_100;
  
  uVar18 = DAT_182671710;
  uVar17 = _DAT_182671618;
  uVar16 = DAT_1826715b0;
  uVar15 = DAT_1826715ac;
  uVar13 = DAT_1826715a0;
  uVar10 = DAT_182671588;
  uVar21 = DAT_182671584;
  uVar9 = DAT_18267157c;
  uVar8 = DAT_18267156c;
  lVar6 = DAT_182671560;
  DAT_1826715a4 = DAT_1826715a8 + DAT_182671578;
  uVar27 = (ulonglong)DAT_18267156c;
  uVar49 = (ulonglong)DAT_1826715ac;
  uVar30 = (ulonglong)DAT_182671584;
  bVar20 = (byte)DAT_18267157c;
  DAT_182671594 = DAT_1826715a0;
  if ((DAT_18267157c & 1) == 0) {
    DAT_182671594 = DAT_18267157c;
  }
  uVar55 = DAT_182671588 & DAT_1826715ac;
  uVar45 = (ulonglong)DAT_1826715b0;
  uVar31 = DAT_18267156c & DAT_182671584;
  uVar5 = *(uint *)(&DAT_182611e80 + DAT_1826719c0);
  uVar42 = *(uint *)(&DAT_182611e78 + DAT_1826719c0) ^ DAT_182671570;
  uVar53 = DAT_182671570 + DAT_1826715b0;
  puVar1 = (ulonglong *)(DAT_182671560 + -0xa88);
  bVar46 = (byte)DAT_18267156c;
  uVar38 = (CONCAT44(DAT_1826715f8,DAT_1826715f8) ^ *puVar1) << ((bVar46 ^ 6) & 0x3f);
  DAT_182671568 = uVar53;
  DAT_182671574 = uVar31;
  DAT_18267159c = uVar55;
  *(ulonglong *)(DAT_182671560 + -0x80) = uVar38 ^ CONCAT44(DAT_182671600,DAT_182671600);
  uVar19 = DAT_182671804;
  uVar47 = CONCAT44(uVar18,uVar18);
  uVar38 = CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar6 + -0x318) | uVar38;
  *(ulonglong *)(lVar6 + -0x600) = uVar38 ^ uVar47;
  uVar18 = DAT_18267186c;
  uVar39 = CONCAT44(uVar19,uVar19);
  uVar43 = CONCAT44(DAT_182671754,DAT_182671754);
  *(ulonglong *)(lVar6 + -0x2a0) = (*(ulonglong *)(lVar6 + -0x628) ^ uVar39) - uVar38 ^ uVar43;
  uVar17 = _DAT_182671838;
  lVar6 = DAT_182671560;
  uVar51 = (ulonglong)uVar31;
  uVar40 = CONCAT44(DAT_182671638,DAT_182671638);
  uVar35 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar44 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0x39ef2f4f)) ^
           *(ulonglong *)(DAT_182671560 - (uVar51 ^ 0x1000898)) ^ uVar35 ^ uVar40;
  *(ulonglong *)(DAT_182671560 + -0x670) = uVar44 ^ CONCAT44(uVar18,uVar18);
  uVar33 = CONCAT44(uVar17,uVar17);
  uVar38 = uVar44 >> (((byte)uVar10 ^ 0x9e) & 0x3f);
  uVar24 = (ulonglong)uVar13;
  uVar28 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar6 + -0xa60) = uVar38 ^ uVar33;
  *(ulonglong *)(lVar6 + -0x6d0) =
       (CONCAT44(uVar21,uVar13) ^ 0x776c0fece97c3c46) + (uVar28 ^ *(ulonglong *)(lVar6 + -0xbf0));
  uVar18 = DAT_182671608;
  uVar25 = (ulonglong)uVar9;
  uVar52 = (ulonglong)uVar55;
  uVar44 = uVar44 << ((bVar20 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar6 + -0x800) = uVar44 ^ CONCAT44(DAT_1826717e8,DAT_1826717e8);
  uVar32 = CONCAT44(uVar18,uVar18);
  uVar38 = uVar38 | uVar44;
  uVar50 = CONCAT44(DAT_1826716b4,DAT_1826716b4);
  *(ulonglong *)(lVar6 + -0xc08) = uVar38 ^ uVar32;
  uVar12 = DAT_182671598;
  uVar11 = DAT_182671594;
  uVar44 = (ulonglong)DAT_182671594;
  puVar2 = (ulonglong *)(lVar6 + -0x240);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar53 ^ 0x1008488)) =
       (uVar35 ^ *(ulonglong *)(lVar6 + -0x510)) - uVar38 ^ uVar50;
  uVar17 = DAT_182671844;
  *puVar2 = (CONCAT44(uVar11,uVar31) ^ 0x6c5d7925f9d77114) +
            (uVar32 ^ *(ulonglong *)(lVar6 + -0xc08));
  uVar14 = DAT_1826715a8;
  uVar35 = CONCAT44(uVar17,uVar17);
  puVar3 = (ulonglong *)(lVar6 + -0x110);
  uVar38 = uVar35 ^ uVar32 ^ uVar43 ^ *(ulonglong *)(lVar6 + -0xc08) ^
           *(ulonglong *)(lVar6 + -0x2a0);
  *puVar3 = uVar38;
  uVar32 = (uVar38 ^ uVar35) >> ((byte)uVar14 & 0x3f);
  bVar23 = (byte)DAT_182671578;
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar32 ^ CONCAT44(DAT_1826716b8,DAT_1826716b8);
  lVar6 = DAT_182671560;
  uVar38 = (uVar35 ^ uVar38) << ((bVar23 ^ 0x9a) & 0x3f);
  uVar36 = CONCAT44(DAT_182671830,DAT_182671830);
  puVar4 = (ulonglong *)(DAT_182671560 + -0x8a8);
  *puVar4 = uVar38 ^ uVar36;
  uVar32 = uVar32 | uVar38;
  uVar41 = CONCAT44(DAT_182671724,DAT_182671724);
  *puVar1 = uVar32 ^ uVar41;
  lVar7 = DAT_182671560;
  puVar29 = (ulonglong *)(lVar6 - (uVar49 ^ 0x746f622b));
  uVar37 = CONCAT44(DAT_182671784,DAT_182671784);
  uVar38 = *(ulonglong *)(DAT_182671560 + -0x688);
  *(ulonglong *)(DAT_182671560 + -0x318) = (uVar43 ^ *puVar29) - uVar32 ^ uVar37;
  uVar17 = DAT_18267189c;
  uVar32 = (ulonglong)DAT_182671570;
  uVar47 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826715a4 ^ 0xacee7a76)) ^ uVar38 ^ uVar50 ^
           uVar40 ^ uVar47;
  *(ulonglong *)(lVar7 + -0x80) = uVar47;
  uVar35 = CONCAT44(uVar17,uVar17);
  *(uint *)(lVar7 + -0x374) = (uVar11 ^ 0x1b8546be) - *(int *)(lVar7 - (uVar32 ^ 0x80000374));
  local_100 = (byte)uVar21;
  uVar34 = (uVar40 ^ uVar47) << 0x34;
  *(ulonglong *)(lVar7 + -0x628) = (uVar40 ^ uVar47) >> ((local_100 ^ 0x53) & 0x3f) ^ uVar35;
  uVar17 = DAT_1826716f0;
  uVar47 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar7 + -0x898) = uVar34 ^ uVar47;
  uVar40 = CONCAT44(uVar17,uVar17);
  uVar34 = *(ulonglong *)(DAT_182671560 - (uVar51 ^ 0x1000628)) ^ uVar35 | uVar34;
  uVar32 = uVar34 ^ uVar40;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar32;
  uVar17 = DAT_1826715c4;
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x6d0) =
       (CONCAT44(uVar16,uVar9) ^ 0x271d45162d8fae34) <<
       (((byte)uVar18 ^ *(byte *)(DAT_182671560 + -0xc08)) & 0x3f);
  uVar18 = DAT_182671734;
  uVar35 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x670) = (uVar38 ^ uVar50) - uVar34 ^ uVar35;
  uVar21 = DAT_182671578;
  uVar34 = CONCAT44(uVar18,uVar18);
  uVar38 = CONCAT44(DAT_182671808,DAT_182671808);
  uVar32 = *(ulonglong *)(lVar6 - (uVar52 ^ 0x142f2390)) ^ uVar34 ^ uVar40 ^ uVar37 ^ uVar32;
  *(ulonglong *)(lVar6 + -0xa60) = uVar32;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0xe46dda96)) =
       (uVar32 ^ uVar34) >> (((byte)uVar21 ^ 0x91) & 0x3f) ^ uVar38;
  uVar17 = DAT_182671694;
  lVar6 = DAT_182671560;
  uVar40 = CONCAT44(DAT_18267165c,DAT_18267165c);
  puVar22 = (ulonglong *)(DAT_182671560 + -0x800);
  *(ulonglong *)(DAT_182671560 + -0x510) =
       (uVar34 ^ *(ulonglong *)(DAT_182671560 + -0xa60)) << (((byte)uVar16 ^ 0x27) & 0x3f) ^ uVar40;
  uVar32 = *(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0x5e6f7999)) ^ uVar40 | uVar38 ^ *puVar22;
  uVar38 = CONCAT44(DAT_182671798,DAT_182671798);
  *puVar2 = uVar32 ^ CONCAT44(uVar17,uVar17);
  lVar6 = DAT_182671560;
  *puVar3 = (uVar37 ^ *(ulonglong *)(DAT_182671560 + -0x318)) -
            (CONCAT44(uVar10,uVar16) ^ 0x52645b42daed6014) ^ uVar38;
  uVar50 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  uVar34 = CONCAT44(DAT_18267170c,DAT_18267170c);
  *(ulonglong *)(lVar6 + -0x1d8) =
       (*(ulonglong *)(lVar6 - (uVar51 ^ 0x1000110)) ^ uVar38) - uVar32 ^ uVar50;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x810089a8)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x162f3ec8)) ^ CONCAT44(uVar17,uVar17)) -
       (CONCAT44(uVar13,DAT_1826715a4) ^ 0xc4f99698d52d59e0) ^ uVar34;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671570 ^ 0x800003a0)) =
       (uVar40 ^ *(ulonglong *)(lVar6 + -0x510)) << ((*(byte *)puVar2 ^ (byte)uVar17) & 0x3f);
  lVar6 = DAT_182671560;
  uVar32 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar38 = *puVar1 ^ uVar32 ^ uVar35 ^ uVar41 ^ *(ulonglong *)(DAT_182671560 + -0x670);
  uVar56 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar38;
  uVar17 = DAT_182671800;
  puVar48 = (ulonglong *)(lVar6 - (uVar24 ^ 0x1200023));
  *puVar48 = (uVar38 ^ uVar32) >> ((bVar20 ^ 0xb7) & 0x3f) ^ uVar56;
  uVar38 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x628) = (uVar32 ^ *(ulonglong *)(lVar6 + -0x600)) << 0x1f ^ uVar38;
  uVar14 = DAT_1826715a8;
  uVar40 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar6 + -0x898) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0x39ef2c77)) ^ uVar38 |
       uVar56 ^ *(ulonglong *)(lVar6 + -0x80)) ^ uVar47;
  *(ulonglong *)(lVar6 + -0xc08) =
       CONCAT44(uVar15,uVar13) ^ uVar56 ^ *(ulonglong *)(lVar6 + -0x80) ^ 0x1bf3b2317975ef07;
  uVar30 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar6 - (uVar44 ^ 0xe46dd446)) =
       (uVar35 ^ *(ulonglong *)(lVar6 + -0x670)) - (CONCAT44(uVar31,uVar14) ^ 0xa50b8d6d70e81d0c) ^
       uVar30;
  puVar26 = (ulonglong *)(lVar6 - ((ulonglong)uVar53 ^ 0x1008a98));
  uVar37 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  *(ulonglong *)(lVar6 - (uVar49 ^ 0x746f6603)) =
       (uVar30 ^ *(ulonglong *)(lVar6 + -0x6d0)) - (uVar47 ^ *puVar26) ^ uVar37;
  uVar38 = CONCAT44(DAT_1826715d4,DAT_1826715d4);
  uVar21 = DAT_18267156c ^ 0xc98bf6b;
  uVar32 = (CONCAT44(uVar13,DAT_182671578) ^ 0xd5ae8d75ee4f7553) +
           (uVar47 ^ *(ulonglong *)(lVar6 + -0x898)) ^ uVar38;
  bVar23 = (byte)DAT_182671598;
  *(ulonglong *)(lVar6 + -0xbf0) = uVar32;
  *(uint *)(lVar6 + -0x910) = uVar21 * *(int *)(lVar6 + -0x3d4);
  lVar7 = DAT_182671560;
  uVar30 = *(ulonglong *)(lVar6 + -0x1d8);
  uVar44 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  uVar35 = CONCAT44(_DAT_1826716c0,_DAT_1826716c0);
  uVar32 = uVar44 ^ uVar38 ^ uVar50 ^ uVar30 ^ uVar32;
  puVar22 = (ulonglong *)(DAT_182671560 - (uVar40 ^ 0x96bf358e));
  *(ulonglong *)(DAT_182671560 + -0xa60) = uVar32;
  uVar47 = (*puVar22 ^ uVar44) >> ((bVar20 ^ 0x93) & 0x3f);
  uVar40 = CONCAT44(DAT_182671714,DAT_182671714);
  *(ulonglong *)(lVar7 + -0x800) = uVar47 ^ uVar35;
  lVar6 = DAT_182671560;
  uVar54 = CONCAT44(DAT_182671794,DAT_182671794);
  uVar35 = (uVar44 ^ uVar32) << ((bVar23 ^ 0xb2) & 0x3f);
  uVar38 = *(ulonglong *)(DAT_182671560 + -0x688);
  *(ulonglong *)(DAT_182671560 + -0x318) = uVar35 ^ uVar40;
  uVar47 = uVar47 | uVar35;
  *puVar3 = uVar47 ^ uVar54;
  *(ulonglong *)(lVar6 + -0x510) = CONCAT44(uVar9,uVar31) ^ 0xc1911853e0669676 | uVar44 ^ uVar32;
  *puVar2 = (uVar50 ^ uVar30) - uVar47 ^ uVar28;
  lVar6 = DAT_182671560;
  uVar32 = CONCAT44(DAT_182671854,DAT_182671854);
  *(ulonglong *)(DAT_182671560 + -0x2a0) =
       *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x810089a8)) ^ uVar32 ^ uVar37 ^ uVar34 ^ uVar38;
  *puVar1 = 0x436cde3a9a98d528 << (((byte)uVar55 ^ 0xae) & 0x3f);
  uVar35 = (uVar32 ^ *puVar29) >> ((bVar46 ^ 0x25) & 0x3f);
  uVar30 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar6 + -0x600) = uVar35 ^ CONCAT44(DAT_18267182c,DAT_18267182c);
  uVar18 = DAT_1826718c8;
  uVar30 = (*(ulonglong *)(lVar6 - (uVar30 ^ 0x5e6f7e29)) ^ uVar32) <<
           (((byte)uVar11 ^ 0x8d) & 0x3f);
  *(ulonglong *)(lVar6 + -0x628) = uVar30 ^ uVar56;
  uVar17 = DAT_18267163c;
  lVar7 = DAT_182671560;
  uVar35 = uVar35 | uVar30;
  uVar30 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 + -0xc08) = uVar35 ^ uVar30;
  uVar32 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar7 - (uVar45 ^ 0x81008180)) = (uVar37 ^ uVar38) - uVar35 ^ uVar32;
  *(ulonglong *)(lVar7 + -0x670) =
       CONCAT44(uVar13,uVar53) ^ 0x9bc53d67f532c930 | uVar40 ^ *(ulonglong *)(lVar7 + -0x318);
  uVar13 = DAT_182671830;
  uVar17 = DAT_182671810;
  uVar21 = DAT_1826715a4;
  uVar45 = uVar30 ^ *puVar2 ^ uVar36 ^ uVar28 ^ *(ulonglong *)(lVar7 + -0xc08);
  uVar30 = (ulonglong)DAT_182671830;
  *(ulonglong *)(lVar7 + -0x6d0) = uVar45;
  uVar38 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar7 + -0x898) =
       ((ulonglong)(uVar13 >> 0x17) | uVar30 << 9) ^ uVar45 >> 0x17 ^ uVar38;
  bVar20 = (byte)DAT_182671578;
  *(ulonglong *)(lVar7 - (uVar25 ^ 0xe46dd966)) =
       (CONCAT44(uVar55,uVar8) ^ 0x9fe2eb750e13872a) +
       (CONCAT44(uVar31,uVar14) ^ 0x999b52d57c65bf3a);
  *(ulonglong *)(lVar7 - (uVar51 ^ 0x1000800)) =
       (uVar36 ^ *(ulonglong *)(lVar7 + -0x6d0)) << ((bVar20 ^ 0xa1) & 0x3f) ^ uVar39;
  uVar17 = DAT_182671788;
  uVar35 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar30 = uVar38 ^ *(ulonglong *)(lVar7 + -0x898) | *(ulonglong *)(lVar7 + -0x800) ^ uVar39;
  *(ulonglong *)(lVar7 + -0x510) = uVar30 ^ uVar35;
  lVar6 = DAT_182671560;
  uVar45 = CONCAT44(uVar17,uVar17);
  puVar22 = (ulonglong *)(DAT_182671560 + -0x898);
  *(ulonglong *)(DAT_182671560 + -0xa60) =
       (*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0xacee7e36)) ^ uVar28) - uVar30 ^ uVar45
  ;
  lVar7 = DAT_182671560;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar21 ^ 0xacee7dae)) =
       CONCAT44(uVar15,uVar31) ^ uVar38 ^ *puVar22 ^ 0x493cdebc744ae681;
  uVar51 = CONCAT44(DAT_18267173c,DAT_18267173c);
  uVar30 = uVar51 ^ uVar32 ^ uVar54 ^ *puVar48 ^ *puVar3;
  uVar38 = (uVar30 ^ uVar51) >> ((bVar23 ^ 0xa1) & 0x3f);
  *puVar4 = uVar30;
  *puVar1 = uVar38 ^ CONCAT44(DAT_182671818,DAT_182671818);
  uVar17 = DAT_1826716dc;
  *(undefined1 *)(lVar7 + -0x5e9) = **(undefined1 **)(lVar7 + -0xc80);
  uVar51 = (uVar51 ^ uVar30) << (((byte)uVar55 ^ 0x90) & 0x3f);
  *(ulonglong *)(lVar7 + -0x2a0) = uVar51 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar7 + -0x600) =
       *(ulonglong *)(lVar7 - (uVar25 ^ 0xe46dd34e)) ^ CONCAT44(uVar12,uVar15) ^ 0xc513d865d82f6703;
  uVar17 = DAT_1826715cc;
  uVar30 = CONCAT44(DAT_1826715cc,DAT_1826715cc);
  *(ulonglong *)(lVar7 - (uVar49 ^ 0x746f66a3)) = (uVar51 | uVar38) ^ uVar30;
  *(ulonglong *)(lVar7 + -0x688) = CONCAT44(uVar16,uVar9) ^ 0x596eba3e4003be2;
  uVar38 = CONCAT44(DAT_1826717d0,DAT_1826717d0);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0x162f3f90)) =
       (uVar32 ^ *(ulonglong *)(lVar7 + -0x80)) - (uVar30 ^ *(ulonglong *)(lVar7 + -0x628)) ^ uVar38
  ;
  *(ulonglong *)(lVar7 - (uVar52 ^ 0x142f26f8)) =
       uVar30 ^ uVar45 ^ *(ulonglong *)(lVar7 + -0x628) ^ uVar43 ^ *(ulonglong *)(lVar7 + -0xa60);
  *(int *)(lVar7 + -0x8c) =
       *(int *)(lVar7 + -0x968) << ((byte)*(undefined4 *)(lVar7 - (uVar25 ^ 0xe46dd5c2)) & 0x1f);
  *(ulonglong *)(lVar7 + -0xc08) =
       (*(ulonglong *)(lVar7 - (uVar27 ^ 0x81008770)) ^ uVar43) >> ((local_100 ^ 0x6b) & 0x3f) ^
       uVar33;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x81008af0)) =
       (uVar30 ^ *(ulonglong *)(lVar7 + -0x628)) >>
       ((*(byte *)(lVar7 - ((ulonglong)uVar53 ^ 0x1008428)) ^ (byte)uVar17) & 0x3f);
  uVar17 = DAT_18267183c;
  uVar27 = (*(ulonglong *)(lVar7 + -0x670) ^ uVar43) << 0xc;
  *(ulonglong *)(lVar7 + -0x800) = uVar27 ^ CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar51 = CONCAT44(uVar17,uVar17);
  uVar27 = uVar33 ^ *(ulonglong *)(lVar7 + -0xc08) | uVar27;
  *puVar2 = uVar27 ^ uVar51;
  uVar9 = DAT_1826718a8;
  uVar17 = DAT_182671688;
  lVar6 = DAT_182671560;
  uVar28 = CONCAT44(DAT_182671688,DAT_182671688);
  uVar30 = (ulonglong)DAT_1826718a8;
  uVar27 = (*(ulonglong *)(lVar7 - (uVar24 ^ 0x1200ac3)) ^ uVar45) - uVar27 ^ uVar28;
  *(ulonglong *)(lVar7 + -0x898) = uVar27;
  uVar8 = DAT_1826715a4;
  uVar32 = CONCAT44(uVar9,uVar9);
  *puVar3 = uVar38 ^ uVar35 ^ *(ulonglong *)(lVar7 + -0x318) ^ *(ulonglong *)(lVar7 + -0x510) ^
            uVar32;
  *puVar4 = CONCAT44(uVar8,uVar16) ^ uVar27 ^ uVar28 ^ 0x12974d7136386b74;
  uVar45 = CONCAT44(DAT_18267185c,DAT_18267185c);
  *(ulonglong *)(lVar6 + -0x1d8) = (*puVar3 >> 0x20 ^ uVar30) >> 0x19 ^ uVar45;
  uVar30 = CONCAT44(DAT_1826716e8,DAT_1826716e8);
  uVar27 = (ulonglong)DAT_182671578;
  *(ulonglong *)(lVar6 + -0x600) =
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0x12001b3)) ^ uVar32) << (((byte)uVar8 ^ 0x71) & 0x3f) ^
       uVar30;
  *(ulonglong *)(lVar6 - (uVar52 ^ 0x142f2a00)) =
       (*(ulonglong *)(lVar6 - (uVar27 ^ 0x162f3a58)) ^ uVar36) <<
       (((byte)*puVar26 ^ (byte)uVar17) & 0x3f);
  uVar10 = DAT_182671664;
  uVar21 = DAT_1826715b4;
  uVar9 = DAT_182671590;
  uVar8 = DAT_18267158c;
  uVar52 = CONCAT44(DAT_18267184c,DAT_18267184c);
  uVar27 = (ulonglong)DAT_1826715b4;
  uVar32 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar6 - (uVar25 ^ 0xe46dd036)) =
       (*(ulonglong *)(lVar6 - (uVar49 ^ 0x746f668b)) ^ uVar30 |
       *(ulonglong *)(lVar6 + -0x1d8) ^ uVar45) ^ uVar52;
  lVar6 = DAT_182671560;
  uVar49 = uVar27;
  if ((uVar9 & 1) == 0) {
    uVar49 = (ulonglong)uVar9;
  }
  DAT_182671580 = (undefined4)uVar49;
  puVar22 = (ulonglong *)(DAT_182671560 + -0x318);
  uVar30 = *(ulonglong *)(DAT_182671560 + -0x2a0);
  *(ulonglong *)(DAT_182671560 + -0x688) =
       0xfbf95b05e721460 - ((uVar49 << 0x20 | uVar32) ^ 0xdb4fa59545c93e82);
  uVar45 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(ulonglong *)(lVar6 + -0x80) = (uVar38 ^ *puVar22) - (uVar30 ^ uVar52) ^ uVar45;
  uVar30 = *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x823b0aaa)) ^ uVar30 ^
           CONCAT44(uVar10,uVar10) ^ uVar52 ^ uVar28;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar30;
  uVar17 = DAT_182671890;
  lVar6 = DAT_182671560;
  uVar38 = ((ulonglong)uVar10 << 0x12 | (ulonglong)(uVar10 >> 0xe)) ^ uVar30 >> 0xe;
  uVar30 = (uVar30 ^ CONCAT44(uVar10,uVar10)) << 0x32;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar38 ^ CONCAT44(DAT_182671668,DAT_182671668);
  uVar18 = DAT_182671824;
  *(ulonglong *)(lVar6 + -0x670) = uVar30 ^ CONCAT44(uVar17,uVar17);
  uVar38 = uVar38 | uVar30;
  *(ulonglong *)(lVar6 + -0xc08) = uVar38 ^ uVar41;
  uVar17 = DAT_1826716a4;
  lVar7 = DAT_182671560;
  uVar30 = (*(ulonglong *)(lVar6 + -0x898) ^ uVar28) -
           (CONCAT44(uVar21,uVar21) ^ 0x3cffa3cd98c95a32);
  *(uint *)(DAT_182671560 + -0x678) = *(uint *)(DAT_182671560 + -0x8c) & 0x51ce6863;
  *(ulonglong *)(lVar7 + -0x800) = uVar30 ^ CONCAT44(uVar18,uVar18);
  uVar18 = DAT_182671858;
  *(ulonglong *)(lVar7 + -0xa60) =
       uVar30 - (*(ulonglong *)(lVar7 - (uVar49 ^ 0x823b0e3a)) ^ uVar41) ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_182671698;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x1c022f10)) =
       uVar38 - (CONCAT44(uVar9,uVar8) ^ 0x7d34617fd0dd6dc8) ^ CONCAT44(uVar18,uVar18);
  uVar49 = CONCAT44(DAT_182671820,DAT_182671820);
  puVar22 = (ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x823b0a9a));
  *puVar22 = *(ulonglong *)(lVar7 - (uVar32 ^ 0x2ac03480)) ^ *puVar2 ^ uVar49 ^ uVar45 ^ uVar51;
  *puVar3 = (*puVar4 ^ uVar49) >> (((byte)uVar21 ^ 0x10) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  *puVar1 = (*puVar22 ^ uVar49) << 0x30 ^ CONCAT44(DAT_182671684,DAT_182671684);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar5 ^ uVar53) * 4) = uVar42;
  return;
}



############ FUN_ 180eed480 size=3979 ############

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

void FUN_180eed480(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint *puVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  byte *pbVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint *puVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  byte bVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  uVar12 = _DAT_182671868;
  uVar24 = DAT_182671734;
  uVar15 = DAT_182671694;
  uVar11 = DAT_18267166c;
  uVar6 = DAT_18267159c;
  lVar2 = DAT_182671560;
  uVar32 = (ulonglong)DAT_18267159c;
  uVar17 = (DAT_18267159c << 0x10 | DAT_18267159c & 0xff00) << 8 | DAT_18267159c >> 8 & 0xff00 |
           DAT_18267159c >> 0x18;
  uVar18 = (ulonglong)uVar17;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671980);
  uVar7 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar17 ^ 0xef4c0774) + (longlong)DAT_182671980) ^
          DAT_18267159c;
  uVar29 = CONCAT44(uVar17,DAT_18267159c);
  bVar27 = (byte)DAT_18267159c;
  DAT_1826715b0 = uVar17;
  *(longlong *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0xef4c0e9c)) =
       -0x402f63925cb7abfe << ((bVar27 ^ 0xef) & 0x3f);
  *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0xef4c0318)) =
       (*(uint *)(lVar2 + -0x328) ^ DAT_18267180c) - (*(uint *)(lVar2 + -0x374) ^ uVar15) ^ uVar12;
  uVar20 = (uVar11 ^ *(uint *)(lVar2 + -0x754)) * (uVar12 ^ *(uint *)(lVar2 + -0x47c)) ^
           DAT_1826716f0;
  *(uint *)(lVar2 + -0x968) = uVar20;
  uVar20 = uVar20 ^ DAT_1826716f0;
  uVar10 = (*(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x640744ab)) ^ DAT_182671650) *
           (uVar17 ^ 0xef4c0768) ^ _DAT_18267188c;
  *(uint *)(lVar2 + -0x874) = uVar10;
  *(uint *)(lVar2 + -0x678) = uVar20 + (uVar10 ^ _DAT_18267188c) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x6d0) =
       *(ulonglong *)(lVar2 + -0x270) >> ((byte)*(undefined8 *)(lVar2 + -0xbf0) & 0x3f);
  uVar10 = DAT_1826717f8;
  bVar13 = (byte)(uVar6 >> 0x18);
  uVar21 = (*(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x64074a97)) ^ uVar24) << ((bVar13 ^ 0x69) & 0x1f)
           ^ DAT_182671718;
  uVar24 = (uVar24 ^ *(uint *)(lVar2 + -0x678)) >> ((bVar13 ^ 0x77) & 0x1f) ^ DAT_1826717f8;
  *(uint *)(lVar2 + -0x27c) = uVar21;
  *(uint *)(lVar2 + -0x5cc) = uVar24;
  uVar20 = DAT_182671724;
  uVar11 = (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) + (uVar11 ^ *(uint *)(lVar2 + -0x754)) ^
           uVar12;
  uVar30 = (ulonglong)DAT_18267186c;
  uVar21 = (*(uint *)(lVar2 - (uVar32 ^ 0x64074923)) ^ uVar10 | uVar21 ^ DAT_182671718) ^ uVar10;
  *(uint *)(lVar2 + -0x274) = uVar11;
  uVar24 = DAT_18267156c;
  uVar12 = uVar11 ^ DAT_1826718a4 ^ uVar12;
  *(uint *)(lVar2 + -0x504) = uVar12;
  *(uint *)(lVar2 + -0x328) = uVar12 ^ uVar20 ^ DAT_1826718a4;
  *(uint *)(lVar2 + -0x344) = uVar21;
  uVar21 = uVar21 ^ DAT_1826715fc;
  *(ulonglong *)(lVar2 + -0x898) = uVar29 ^ 0x90e9c374335fa682;
  *(uint *)(lVar2 + -0x964) = uVar21 ^ uVar10;
  *(longlong *)(lVar2 - (uVar18 ^ 0xef4c0274)) = *(longlong *)(lVar2 + -0x800) << 0xd;
  *(uint *)(lVar2 + -0x374) =
       *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0xef4c0e00)) ^ DAT_1826716ac ^ DAT_1826715fc;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xef4c01dc)) =
       *(ulonglong *)(lVar2 + -0x9f8) | 0xe980ed2e2f7e5aba;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0xef4c02fc)) =
       (CONCAT44(DAT_182671584,uVar6) ^ 0xa006904864074cf8) + *(longlong *)(lVar2 + -0x8f0) ^ uVar30
  ;
  lVar3 = DAT_182671560;
  uVar21 = DAT_182671634 & 0xff;
  *(byte *)(lVar2 + -0x909) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x598) ^ uVar30) ^ (byte)DAT_182671634 ^ (byte)uVar15;
  uVar28 = DAT_182671878;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x4d8) ^ (ulonglong)DAT_182671878) = 0x4f;
  uVar11 = DAT_182671890;
  uVar12 = _DAT_182671838;
  uVar15 = DAT_182671588;
  *(uint *)(lVar3 + -0x47c) = (uVar24 ^ 0x245381c6) - (DAT_182671574 ^ 0x2a85c333);
  uVar10 = DAT_1826715a0;
  uVar29 = (ulonglong)DAT_1826715a0;
  uVar21 = *(byte *)(lVar3 - ((ulonglong)uVar6 ^ 0x640745e6)) ^ uVar21;
  uVar14 = *(uint *)(lVar3 + -0x374) ^ DAT_1826716ac;
  *(uint *)(lVar3 + -0x844) = uVar21 ^ uVar11;
  uVar14 = uVar14 + (uVar15 ^ 0x387ada18) ^ DAT_1826715f8;
  *(uint *)(lVar3 + -0x968) = uVar14;
  uVar14 = uVar14 ^ DAT_1826715f8;
  uVar21 = uVar21 << 0x11 ^ DAT_1826717d0;
  *(uint *)(lVar3 + -0x874) = uVar21;
  uVar30 = (ulonglong)DAT_1826715b4;
  *(uint *)(lVar3 + -0x678) = uVar14 - (uVar21 ^ DAT_1826717d0) ^ uVar12;
  *(uint *)(lVar3 - (uVar30 ^ 0x8ad82a2b)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar17 ^ 0xef4c011c)) ^ uVar12) *
       (*(uint *)(lVar3 + -0x328) ^ uVar20) ^ DAT_18267168c;
  bVar13 = (byte)DAT_182671594;
  *(uint *)(lVar3 - (uVar29 ^ 0xfccd3441)) =
       (*(uint *)(lVar3 + -0x844) ^ uVar11) * (DAT_1826715ac ^ 0x489006b7) ^ DAT_18267187c;
  uVar11 = (*(uint *)(lVar3 + -0x5cc) ^ DAT_18267187c) + (*(uint *)(lVar3 + -0x27c) ^ DAT_18267168c)
  ;
  *(uint *)(lVar3 + -0x754) = uVar11 ^ uVar12;
  uVar14 = uVar11 << ((bVar13 ^ 8) & 0x1f) ^ DAT_1826716e0;
  *(uint *)(lVar3 + -0x274) = uVar14;
  uVar21 = _DAT_1826715e0;
  uVar11 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar14 = uVar14 ^ DAT_1826716e0;
  puVar31 = (uint *)(DAT_182671560 + -0x328);
  *(ulonglong *)(DAT_182671560 + -0x8a8) =
       (CONCAT44(DAT_182671568,uVar15) ^ 0x2c4ac7ddc6d3a0cb) + *(longlong *)(DAT_182671560 + -0xa88)
  ;
  uVar15 = (*(uint *)(lVar2 - ((ulonglong)DAT_1826715a8 ^ 0x205c2708)) ^ uVar12) >>
           (((byte)DAT_182671590 ^ 0x4f) & 0x1f) ^ DAT_182671664;
  uVar20 = (*puVar31 ^ uVar20) + (*(uint *)(lVar2 + -0x3c8) ^ DAT_182671624) ^ DAT_1826716a4;
  *(uint *)(lVar2 + -0x344) = uVar15;
  *(uint *)(lVar2 + -0x504) = (uVar15 ^ DAT_182671664 | uVar14) ^ DAT_1826718d0;
  *(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x6407458b)) = uVar20;
  lVar3 = DAT_182671560;
  uVar15 = *(uint *)(lVar2 + -0x964) ^ DAT_1826717cc ^ DAT_1826716a4;
  *(uint *)(lVar2 + -0x374) = *(uint *)(lVar2 + -0x504) ^ DAT_1826716a8 ^ DAT_1826718d0;
  *(uint *)(lVar2 + -0x47c) = uVar15;
  uVar15 = uVar15 ^ uVar21 ^ DAT_1826717cc;
  *(byte *)(lVar2 + -0x505) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x640745c7)) ^ (ulonglong)DAT_182671620)
       ^ (byte)DAT_182671694;
  *(uint *)(lVar2 + -0x968) = uVar15;
  uVar20 = DAT_1826715c0;
  uVar30 = (ulonglong)DAT_182671580;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x96b75f99)) =
       (CONCAT44(uVar6,uVar6) ^ 0x139a3342dcd68668) <<
       ((byte)*(undefined8 *)(lVar3 - ((ulonglong)uVar24 ^ 0x568942c6)) & 0x3f);
  uVar5 = DAT_182671598;
  uVar4 = DAT_182671578;
  *(uint *)(lVar3 + -0x874) = *(uint *)(lVar3 - (uVar30 ^ 0x3bfe202c)) ^ uVar20 ^ DAT_1826716a8;
  bVar13 = (byte)DAT_182671660;
  pbVar16 = (byte *)((CONCAT44(uVar4,DAT_1826715a4) ^ 0x4dd89b3fd76bff8) +
                     (CONCAT44(uVar10,uVar5) ^ 0xfccd318dfd76bffa) * 0x20 +
                    *(longlong *)(lVar3 + -0x8f0));
  *(ulonglong *)(lVar3 + -0x4e8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_18267164c;
  uVar15 = DAT_182671570;
  *(byte *)(lVar3 + -0xc41) = *pbVar16 ^ bVar13 ^ (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar3 + -0x168) ^ (ulonglong)DAT_182671864) = bVar27 ^ 0x1d;
  uVar12 = (*(byte *)(lVar3 - ((ulonglong)uVar15 ^ 0xad96857)) ^ bVar13) ^ _DAT_182671868;
  *(uint *)(lVar3 + -0x678) = uVar12;
  uVar11 = DAT_18267157c;
  lVar2 = DAT_182671560;
  uVar29 = (ulonglong)DAT_18267157c;
  puVar31 = (uint *)(DAT_182671560 + -0x874);
  *(ulonglong *)(DAT_182671560 + -0x638) =
       CONCAT44(uVar10,DAT_18267157c) ^ 0x474301fbe042fd06 | *(ulonglong *)(DAT_182671560 + -0x688);
  uVar25 = _DAT_182671868;
  *(uint *)(lVar2 + -0x844) = (uVar20 ^ *puVar31) + (DAT_1826715a4 ^ 0xf481992f) ^ uVar28;
  *(uint *)(lVar2 + -0x27c) = (uVar25 ^ uVar12) << 0x11 ^ DAT_182671744;
  uVar30 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar2 + -0x2a0) =
       CONCAT44(uVar17,DAT_182671584) ^ 0xd55e12fd96483afc | *(ulonglong *)(lVar2 + -0x9f8);
  uVar10 = DAT_182671824;
  uVar14 = DAT_182671624;
  uVar12 = DAT_1826715d0;
  uVar20 = DAT_1826715ac;
  uVar33 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar2 - ((ulonglong)uVar24 ^ 0x5689454a)) =
       (*(uint *)(lVar2 - (uVar30 ^ 0x2e44d1a4)) ^ uVar28) -
       (*(uint *)(lVar2 - ((ulonglong)uVar11 ^ 0x641608a5)) ^ DAT_182671744) ^ DAT_1826717c4;
  puVar22 = (uint *)(lVar2 - (uVar33 ^ 0x48900fc8));
  uVar25 = (uVar25 ^ *(uint *)(lVar2 + -0x678)) * 2 ^ DAT_1826717dc;
  uVar11 = (*(uint *)(lVar2 + -0x5cc) ^ DAT_1826717c4) * (uVar21 ^ *puVar22);
  *(uint *)(lVar2 + -0x274) = uVar25;
  uVar25 = uVar25 ^ DAT_1826717dc;
  *(uint *)(lVar2 + -0x754) = uVar11 ^ uVar10;
  uVar24 = DAT_182671590;
  *(uint *)(lVar2 - (uVar29 ^ 0x6416099d)) = uVar11 + uVar25 ^ uVar12;
  uVar10 = DAT_1826715a8;
  lVar2 = DAT_182671560;
  puVar31 = (uint *)(DAT_182671560 + -0x344);
  puVar8 = (uint *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0x2894961));
  *(uint *)(DAT_182671560 + -0x328) =
       (*(uint *)(DAT_182671560 - ((ulonglong)uVar24 ^ 0x205c2318)) ^ uVar12) <<
       (((byte)uVar5 ^ 0xf7) & 0x1f) ^ DAT_1826718c8;
  *puVar8 = (*puVar31 ^ uVar12) >> 0x13 ^ DAT_182671758;
  uVar29 = (ulonglong)DAT_1826715b4;
  uVar30 = CONCAT44(uVar24,DAT_1826715b4);
  *(uint *)(lVar2 - ((ulonglong)DAT_1826715a4 ^ 0xfd76bafe)) =
       (*(uint *)(lVar2 + -0x328) ^ DAT_1826718c8 | *(uint *)(lVar2 + -0x964) ^ DAT_182671758) ^
       uVar14;
  *(ulonglong *)(lVar2 + -0x548) =
       uVar30 ^ 0x85779573c2416adf | CONCAT44(uVar20,uVar10) ^ 0xf5204696e5f66644;
  uVar25 = DAT_182671770;
  uVar12 = DAT_182671648;
  bVar13 = (byte)DAT_1826715e4;
  uVar11 = DAT_182671568;
  uVar23 = (ulonglong)DAT_182671770;
  uVar21 = (*(uint *)(lVar2 - ((ulonglong)uVar10 ^ 0x205c2394)) ^ uVar14) +
           (*(uint *)(lVar2 + -0x968) ^ uVar21) ^ DAT_182671808;
  *(uint *)(lVar2 + -0x47c) = uVar21;
  uVar21 = uVar21 ^ DAT_182671780 ^ DAT_182671808;
  *(uint *)(lVar2 + -0x374) = uVar21;
  uVar19 = (ulonglong)DAT_182671580;
  uVar26 = CONCAT44(uVar10,DAT_182671580);
  *(ulonglong *)(lVar2 + -0xc08) =
       CONCAT44(DAT_182671580,uVar11) ^ 0x55cf98f1914a5a13 | *(ulonglong *)(lVar2 + -0xbf0);
  uVar10 = DAT_182671674;
  *(uint *)(lVar2 + -0x874) = *(uint *)(lVar2 - (uVar32 ^ 0x640749eb)) ^ DAT_182671640 ^ uVar14;
  *(uint *)(lVar2 + -0x27c) = uVar21 ^ uVar10 ^ DAT_182671780;
  uVar21 = DAT_182671850;
  uVar30 = (ulonglong)DAT_182671630;
  *(uint *)(lVar2 + -0x844) = *(uint *)(lVar2 - (uVar18 ^ 0xef4c0f10)) ^ uVar12 ^ DAT_182671640;
  pbVar16 = (byte *)((uVar26 ^ 0x205c205c3bfe2355) + *(longlong *)(lVar2 + -0x8f0));
  *(ulonglong *)(lVar2 + -0xd58) = (ulonglong)pbVar16 ^ uVar30;
  *(byte *)(lVar2 - ((ulonglong)uVar15 ^ 0xad9626f)) = *pbVar16 ^ bVar13 ^ (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar2 + -0x840) ^ uVar23) = (byte)uVar24 ^ 0xe;
  uVar11 = DAT_182671594;
  uVar28 = (uVar12 ^ *(uint *)(lVar2 + -0x844)) + (uVar15 ^ 0x32e42c3);
  uVar14 = (uint)(*(byte *)(lVar2 + -0x679) ^ bVar13);
  *(uint *)(lVar2 + -0x5cc) = uVar14 ^ uVar21;
  *(uint *)(lVar2 + -0x678) = uVar28 ^ uVar25;
  uVar24 = DAT_182671720;
  uVar15 = DAT_1826715ac;
  uVar12 = DAT_182671574 ^ 0x966b3d2e;
  *(uint *)(lVar2 + -0x274) = uVar14 << (((byte)uVar11 ^ 0x14) & 0x1f) ^ DAT_1826716b4;
  lVar3 = DAT_182671560;
  uVar12 = uVar12 * uVar14 ^ DAT_182671864;
  uVar15 = uVar15 ^ DAT_18267159c;
  bVar13 = (byte)DAT_18267159c;
  DAT_1826715a4 = uVar15;
  *(uint *)(lVar2 + -0x754) =
       uVar28 - (*(uint *)(lVar2 - (uVar19 ^ 0x3bfe212c)) ^ DAT_1826716b4) ^ uVar21;
  uVar11 = *(uint *)(lVar2 - (uVar29 ^ 0x8ad82f03));
  *(uint *)(lVar2 + -0x328) = uVar12;
  uVar12 = uVar12 ^ DAT_182671864;
  uVar11 = (uVar11 ^ uVar21) * (*(uint *)(lVar2 + -0x27c) ^ uVar10);
  *(uint *)(lVar2 + -0x344) = uVar11 ^ DAT_1826718bc;
  puVar31 = (uint *)(lVar3 - (uVar32 ^ 0x64074587));
  *(uint *)(lVar2 + -0x964) = uVar12 + uVar11 ^ uVar24;
  bVar9 = (byte)uVar15 ^ 0x42;
  *puVar31 = (*(uint *)(lVar3 - (uVar33 ^ 0x48900fc4)) ^ uVar24) << (bVar9 & 0x1f) ^ DAT_1826717a8;
  uVar11 = DAT_1826716c8;
  *(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0x2c974e33)) =
       (*(uint *)(lVar3 + -0x964) ^ uVar24) >> ((bVar13 ^ 0xfc) & 0x1f) ^ DAT_1826716c8;
  *(uint *)(lVar3 + -0x504) =
       (*puVar31 ^ DAT_1826717a8 | uVar11 ^ *(uint *)(lVar3 + -0x47c)) ^ DAT_182671678;
  uVar11 = DAT_1826717a0;
  lVar2 = DAT_182671560;
  uVar24 = *(uint *)(lVar3 + -0x3c8) ^ DAT_182671624;
  *(ulonglong *)(lVar3 + -0x1f0) = CONCAT44(uVar20,uVar6) ^ 0xfb6ff5fffc762a7f | 0xd96d55cfac760832;
  uVar24 = uVar24 + (*(uint *)(lVar3 + -0x27c) ^ uVar10) ^ DAT_182671884;
  *(longlong *)(lVar3 + -0x748) = *(longlong *)(lVar3 + -0x110) << (((byte)uVar15 ^ 99) & 0x3f);
  *(uint *)(lVar3 + -0x374) = uVar24;
  uVar24 = uVar24 ^ DAT_182671728 ^ DAT_182671884;
  *(uint *)(lVar3 + -0x874) = uVar24;
  uVar10 = *(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0x2c974f4b)) ^ uVar11 ^ DAT_182671678;
  uVar11 = uVar11 ^ uVar10 ^ DAT_1826717f8;
  *(ulonglong *)(lVar3 + -0x80) =
       (CONCAT44(uVar6,uVar20) ^ 0xc5817b8bc21c6f59) >> ((bVar27 ^ 0xfc) & 0x3f);
  *(uint *)(lVar3 + -0x844) = uVar10;
  uVar12 = DAT_182671768;
  uVar10 = _DAT_1826715dc;
  *(uint *)(lVar2 + -0x678) = _DAT_1826715dc ^ DAT_182671728 ^ uVar24;
  *(uint *)(lVar2 - (uVar33 ^ 0x489004d4)) = uVar11;
  uVar21 = DAT_182671814;
  pbVar16 = (byte *)((CONCAT44(uVar15,uVar6) ^ 0x2c974a4f64074cef) * 0x20 +
                     (CONCAT44(uVar6,uVar20) ^ 0x64074cef489006b8) + *(longlong *)(lVar2 + -0x8f0));
  uVar30 = (ulonglong)DAT_182671814;
  *(ulonglong *)(lVar2 + -0x3a8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_18267175c;
  bVar13 = (byte)DAT_1826715ac;
  *(byte *)(lVar2 + -0xce1) = *pbVar16 ^ (byte)uVar12 ^ (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x2c974fcf)) ^ uVar30) = bVar13 ^ 0x83;
  uVar14 = DAT_182671854;
  uVar6 = DAT_1826717b0;
  lVar3 = DAT_182671560;
  uVar11 = uVar12 & 0xff ^ (uint)*(byte *)(lVar2 + -0xce1);
  *(uint *)(DAT_182671560 + -0x754) = uVar11 ^ DAT_182671854;
  lVar2 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x5cc) =
       (*(uint *)(lVar3 + -0x274) ^ DAT_1826717f8) + (uVar15 ^ 0x25606c9a) ^ uVar6;
  *(uint *)(lVar2 - (uVar32 ^ 0x64074fab)) = uVar11 << ((bVar13 ^ 0xb1) & 0x1f) ^ uVar10;
  *(ulonglong *)(lVar2 + -0x600) =
       (CONCAT44(uVar20,uVar20) ^ 0x2471c1b1fce3089b) + 0xaf389bac8bbafd31;
  uVar11 = *(uint *)(lVar2 - ((ulonglong)uVar15 ^ 0x2c97490b));
  uVar24 = *(uint *)(lVar2 - ((ulonglong)uVar15 ^ 0x2c974f83));
  *(undefined8 *)(lVar2 + -0x5c8) = 0x3af05ee157187;
  uVar11 = (uVar24 ^ uVar6) - (uVar11 ^ uVar10) ^ DAT_1826715b8;
  *(uint *)(lVar2 + -0x328) = uVar11;
  uVar24 = (uVar11 ^ DAT_1826715b8) * (uVar10 ^ *(uint *)(lVar2 + -0x678)) ^ DAT_182671700;
  *(uint *)(lVar2 + -0x964) = uVar24;
  uVar24 = uVar24 ^ DAT_182671700;
  *(uint *)(lVar2 + -0x968) = (*(uint *)(lVar2 - (uVar33 ^ 0x489001f4)) ^ uVar14) * 0x18 ^ uVar6;
  uVar11 = DAT_182671634;
  uVar24 = uVar24 + (uVar6 ^ *puVar22);
  *(uint *)(lVar2 + -0x47c) = uVar24 ^ DAT_182671634;
  *(uint *)(lVar2 + -0x27c) = uVar24 << (bVar9 & 0x1f) ^ uVar12;
  *(uint *)(lVar2 - ((ulonglong)uVar15 ^ 0x2c97493b)) =
       (*(uint *)(lVar2 - (uVar32 ^ 0x64074893)) ^ uVar11) >> 0x13 ^ uVar21;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar7 * 4) = uVar1 ^ uVar17;
  return;
}



############ FUN_ 180f34760 size=6052 ############

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

void FUN_180f34760(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar28;
  ulonglong uVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong uVar54;
  byte local_res20;
  byte local_110;
  byte local_108;
  byte local_100;
  ulonglong uVar27;
  
  uVar9 = DAT_1826715b0;
  uVar8 = DAT_1826715ac;
  uVar7 = DAT_182671594;
  uVar17 = DAT_182671590;
  uVar16 = DAT_182671580;
  uVar15 = DAT_182671578;
  iVar6 = DAT_182671574;
  uVar5 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar50 = (ulonglong)DAT_1826715ac;
  uVar47 = (ulonglong)DAT_1826715b0;
  uVar34 = (ulonglong)DAT_182671580;
  uVar28 = (ulonglong)DAT_182671590;
  uVar43 = (ulonglong)DAT_182671594;
  uVar26 = DAT_1826715b4 | DAT_182671590;
  uVar27 = (ulonglong)uVar26;
  uVar21 = DAT_182671580 ^ DAT_182671594;
  uVar37 = DAT_182671578 * DAT_182671574;
  uVar53 = (DAT_1826715ac << 0x10 | DAT_1826715ac & 0xff00) << 8 | DAT_1826715ac >> 8 & 0xff00 |
           DAT_1826715ac >> 0x18;
  uVar36 = (ulonglong)DAT_182671570;
  uVar49 = DAT_1826715b0 | DAT_182671570;
  uVar14 = *(uint *)(&DAT_182611e70 + (uVar36 ^ 0x442685b3) + (longlong)DAT_182671a5c) ^
           DAT_1826715b0;
  uVar1 = *(uint *)(&DAT_182611e80 + DAT_182671a5c);
  uVar24 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  uVar46 = (ulonglong)uVar21;
  bVar23 = (byte)DAT_1826718a8;
  uVar48 = (ulonglong)DAT_182671578;
  uVar18 = CONCAT44(uVar37,DAT_182671578);
  DAT_182671568 = uVar49;
  DAT_18267156c = uVar26;
  DAT_182671584 = uVar21;
  DAT_182671588 = uVar37;
  DAT_18267159c = uVar53;
  *(ulonglong *)(DAT_182671560 + -0x1d8) =
       (CONCAT44(uVar21,DAT_182671580) ^ 0x16c6949e5b1f3) <<
       ((*(byte *)(DAT_182671560 - ((ulonglong)DAT_182671594 ^ 0xe46dd4be)) ^ bVar23) & 0x3f);
  uVar10 = DAT_182671740;
  uVar12 = _DAT_18267161c;
  uVar22 = CONCAT44(DAT_182671680,DAT_182671680);
  uVar32 = (ulonglong)uVar37;
  uVar38 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar18 = (uVar18 ^ 0x4aa1216a6d1bb34a) + (*(ulonglong *)(lVar2 + -0x800) ^ uVar22) ^ uVar38;
  *(ulonglong *)(lVar2 + -0x8a8) = uVar18;
  uVar44 = CONCAT44(uVar10,uVar10);
  uVar25 = CONCAT44(DAT_182671724,DAT_182671724);
  bVar30 = (byte)iVar6;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0xe46dda0e)) =
       *(ulonglong *)(lVar2 + -0xbf0) ^ uVar25 ^ uVar44 ^ uVar18 ^ uVar38;
  uVar39 = CONCAT44(DAT_182671650,DAT_182671650);
  uVar51 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar2 + -0x240) =
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar44) >> ((bVar30 ^ 0x9b) & 0x3f) ^ uVar39;
  uVar35 = (ulonglong)uVar53;
  local_res20 = (byte)uVar16;
  *(ulonglong *)(lVar2 - (uVar51 ^ 0x1c022918)) =
       (CONCAT44(uVar53,uVar17) ^ 0x3ae1b992ec081e12) >> (((byte)uVar26 ^ 0xbe) & 0x3f);
  uVar10 = DAT_18267164c;
  uVar18 = (*(ulonglong *)(lVar2 + -0x898) ^ uVar44) << ((local_res20 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar2 + -0x80) = uVar18 ^ CONCAT44(DAT_182671790,DAT_182671790);
  uVar18 = uVar18 | uVar39 ^ *(ulonglong *)(lVar2 + -0x240);
  uVar54 = CONCAT44(uVar10,uVar10);
  uVar29 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar18 ^ uVar54;
  uVar39 = (ulonglong)DAT_1826716bc;
  uVar52 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x4426836b)) =
       (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar25) - uVar18 ^ uVar29;
  uVar10 = DAT_1826715f8;
  lVar2 = DAT_182671560;
  puVar40 = (ulonglong *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0x982fbbf8));
  *puVar40 = *(ulonglong *)(DAT_182671560 - (uVar47 ^ 0x2a001a2a)) ^
             CONCAT44(DAT_1826717e8,DAT_1826717e8) ^ uVar24 ^ *(ulonglong *)(DAT_182671560 + -0xc08)
             ^ uVar52;
  uVar44 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xa88) = *(ulonglong *)(lVar2 + -0x670) >> 0x20 ^ uVar44 ^ uVar39;
  *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xe46dd386)) =
       (CONCAT44(uVar37,uVar37) ^ 0x13a51cd7ada40de) -
       (CONCAT44(uVar53,uVar17) ^ 0x62e6f3db492a9270);
  lVar2 = DAT_182671560;
  puVar19 = (ulonglong *)(DAT_182671560 + -0xa88);
  uVar39 = (uVar52 ^ *(ulonglong *)(DAT_182671560 + -0x670)) << (((byte)uVar5 ^ 0x9b) & 0x3f);
  uVar18 = *(ulonglong *)(DAT_182671560 + -0x628);
  uVar25 = *(ulonglong *)(DAT_182671560 + -0x6d0);
  uVar45 = CONCAT44(DAT_1826717c0,DAT_1826717c0);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar39 ^ CONCAT44(DAT_182671818,DAT_182671818);
  uVar39 = *puVar19 ^ uVar44 | uVar39;
  uVar41 = uVar39 ^ uVar45;
  uVar31 = CONCAT44(DAT_182671658,DAT_182671658);
  *(ulonglong *)(lVar2 + -0x800) = uVar41;
  uVar44 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(lVar2 + -0x8a8) = (uVar24 ^ uVar18) - uVar39 ^ uVar31;
  uVar41 = uVar25 ^ uVar44 ^ uVar45 ^ uVar29 ^ uVar41;
  *(ulonglong *)(lVar2 + -0x318) = uVar41;
  *(int *)(lVar2 + -0x8c) = *(int *)(lVar2 + -0x774) * *(int *)(lVar2 + -0x374);
  uVar10 = DAT_1826716d4;
  lVar3 = DAT_182671560;
  local_100 = (byte)(uVar8 >> 0x18);
  uVar39 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x9c2fbc90)) ^ uVar44) >>
           ((local_100 ^ 0xba) & 0x3f);
  uVar42 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar2 + -0x898) = uVar39 ^ CONCAT44(DAT_1826718b8,DAT_1826718b8);
  uVar11 = DAT_182671604;
  uVar18 = (ulonglong)DAT_182671604;
  local_108 = (byte)uVar8;
  uVar45 = CONCAT44(uVar10,uVar10);
  uVar25 = (uVar44 ^ uVar41) << ((local_108 ^ 0x48) & 0x3f);
  *(ulonglong *)(lVar3 + -0x240) = uVar25 ^ uVar42;
  *(ulonglong *)(lVar3 - (uVar48 ^ 0x162f3c08)) = (uVar39 | uVar25) ^ uVar45;
  uVar39 = CONCAT44(DAT_182671648,DAT_182671648);
  *(ulonglong *)(lVar3 + -0xbf0) =
       (*(ulonglong *)(lVar3 + -0x6d0) ^ uVar29) - (*(ulonglong *)(lVar3 + -0x80) ^ uVar45) ^ uVar39
  ;
  puVar19 = (ulonglong *)(lVar3 - (uVar46 ^ 0x6656dcac));
  *puVar19 = *(ulonglong *)(lVar3 + -0x8a8) ^ CONCAT44(uVar11,uVar11) ^ uVar31 ^ uVar54 ^
             *(ulonglong *)(lVar3 + -0x2a0);
  uVar18 = ((ulonglong)(uVar11 >> 0x16) | uVar18 << 10) ^ *(ulonglong *)(lVar3 + -0xc08) >> 0x16;
  uVar25 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar3 + -0x110) = uVar18 ^ CONCAT44(DAT_1826717b4,DAT_1826717b4);
  uVar10 = _DAT_182671618;
  *(ulonglong *)(lVar3 + -0x670) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0xc08)) << (((byte)uVar7 ^ 0xbc) & 0x3f) ^
       uVar25;
  uVar29 = CONCAT44(uVar10,uVar10);
  uVar18 = *(ulonglong *)(lVar3 - (uVar51 ^ 0x1c022c70)) ^ uVar25 | uVar18;
  *(ulonglong *)(lVar3 + -0xa88) = uVar18 ^ uVar29;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xe46dd34e)) =
       (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar31) - uVar18 ^ uVar24;
  uVar10 = DAT_182671774;
  *(ulonglong *)(lVar3 + -0x628) =
       CONCAT44(DAT_1826717c8,DAT_1826717c8) ^ **(ulonglong **)(lVar3 + -0x128);
  uVar25 = CONCAT44(uVar10,uVar10);
  uVar31 = CONCAT44(uVar49,uVar16);
  *(ulonglong *)(lVar3 - (uVar47 ^ 0x2a001402)) =
       *(ulonglong *)(lVar3 + -0xa88) ^ uVar25 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0xbf0) ^ uVar39;
  *(ulonglong *)(lVar3 + -0x318) =
       (uVar31 ^ 0x79daf5d27552ebc9) << ((*(byte *)(lVar3 - (uVar32 ^ 0x95a35680)) ^ bVar23) & 0x3f)
  ;
  uVar10 = DAT_1826717ec;
  uVar44 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  *(ulonglong *)(lVar3 + -0x240) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x800)) >> ((bVar30 ^ 0x95) & 0x3f) ^ uVar44;
  uVar18 = CONCAT44(uVar10,uVar10);
  local_110 = (byte)uVar21;
  *(ulonglong *)(lVar3 + -0x898) =
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0x9c2fb788)) ^ uVar25) << ((local_100 ^ 0x92) & 0x3f) ^
       uVar18;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar3 + -0x6d0) =
       (*(ulonglong *)(lVar3 + -0xa88) ^ uVar29) << ((local_110 ^ 0xa3) & 0x3f);
  uVar25 = CONCAT44(DAT_182671644,DAT_182671644);
  uVar18 = *(ulonglong *)(lVar2 - (uVar35 ^ 0x4e2f3ec0)) ^ uVar44 |
           *(ulonglong *)(lVar2 - (uVar50 ^ 0x803c27d6)) ^ uVar18;
  uVar29 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  *(ulonglong *)(lVar2 + -0x2a0) = uVar18 ^ uVar25;
  puVar20 = (ulonglong *)(lVar2 - (uVar32 ^ 0x95a35b50));
  *puVar20 = (*(ulonglong *)(lVar2 + -0xbf0) ^ uVar39) - uVar18 ^ uVar29;
  bVar33 = (byte)uVar15;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x9c2fbe98)) =
       (CONCAT44(iVar6,uVar15) ^ 0x8272f81ff1272518) -
       (*(ulonglong *)(lVar2 - (uVar51 ^ 0x1c022608)) ^ uVar29);
  *(ulonglong *)(lVar2 - (uVar47 ^ 0x2a001a72)) =
       *(ulonglong *)(lVar2 - (uVar36 ^ 0x4426853b)) ^ uVar24 ^ uVar45 ^ uVar22 ^
       *(ulonglong *)(lVar2 + -0x1d8);
  bVar23 = (byte)uVar37;
  uVar18 = CONCAT44(DAT_1826717f8,DAT_1826717f8);
  *(ulonglong *)(lVar2 + -0x8a8) =
       (*(ulonglong *)(lVar2 - (uVar34 ^ 0x823b0442)) ^ uVar22) >> ((bVar33 ^ 0x84) & 0x3f) ^ uVar54
  ;
  *(ulonglong *)(lVar2 - (uVar46 ^ 0x6656d68c)) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0x670)) << ((bVar23 ^ 0x6c) & 0x3f) ^ uVar18;
  uVar39 = CONCAT44(DAT_182671654,DAT_182671654);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0xe46dd18e)) =
       (*(ulonglong *)(lVar2 + -0x8a8) ^ uVar54 | *(ulonglong *)(lVar2 + -0x628) ^ uVar18) ^ uVar39;
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x800) =
       *(ulonglong *)(lVar2 + -0x8a8) ^ uVar31 ^ uVar54 ^ 0x9f209fdf91b1a972;
  uVar22 = CONCAT44(DAT_1826716f8,DAT_1826716f8);
  *(ulonglong *)(lVar3 - (uVar46 ^ 0x6656da2c)) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x1d8)) - (*(ulonglong *)(lVar3 + -0x318) ^ uVar39) ^
       uVar22;
  uVar45 = CONCAT44(DAT_1826718d0,DAT_1826718d0);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x823b04e2)) =
       *(ulonglong *)(lVar3 - (uVar36 ^ 0x442689b3)) ^
       *(ulonglong *)(lVar3 - ((ulonglong)uVar49 ^ 0x6e269ea3)) ^ uVar45 ^ uVar39 ^ uVar29;
  uVar10 = DAT_182671748;
  lVar2 = DAT_182671560;
  uVar39 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(lVar3 + -0x240) =
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0x9c2fb958)) ^ uVar45) >> ((bVar30 ^ 0xa2) & 0x3f) ^ uVar39
  ;
  uVar44 = CONCAT44(uVar10,uVar10);
  uVar15 = DAT_1826715ac ^ 0x9d941a5f;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x44268d23)) =
       (*(ulonglong *)(lVar2 + -0x6d0) ^ uVar45) << ((local_110 ^ 0x83) & 0x3f) ^ uVar44;
  lVar3 = DAT_182671560;
  *(uint *)(lVar2 + -0x754) = DAT_182671594 ^ 0xf4db28df | uVar15;
  uVar10 = DAT_182671684;
  lVar4 = DAT_182671560;
  uVar18 = *(ulonglong *)(lVar3 + -0xc08);
  uVar24 = CONCAT44(DAT_182671674,DAT_182671674);
  *(ulonglong *)(lVar2 + -0xbf0) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0x95a35fc0)) ^ uVar44 |
       uVar39 ^ *(ulonglong *)(lVar2 + -0x240)) ^ uVar24;
  uVar13 = DAT_182671784;
  uVar18 = (uVar18 ^ uVar29) - (CONCAT44(uVar26,iVar6) ^ 0xd864d8429ecbe5af);
  *(ulonglong *)(lVar4 + -0x110) = uVar18 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671880;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x80) =
       uVar18 - (*(ulonglong *)(lVar4 - (uVar51 ^ 0x1c0221f0)) ^ uVar24) ^ uVar29;
  uVar39 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x670) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x4e2f3770)) ^ uVar24) -
       (CONCAT44(uVar37,uVar17) ^ 0xc5ba47e16fbbf38a) ^ uVar39;
  *(ulonglong *)(lVar4 - (uVar48 ^ 0x162f3aa0)) =
       *(ulonglong *)(lVar4 - (uVar34 ^ 0x823b02b2)) ^ *(ulonglong *)(lVar4 + -0x898) ^ uVar29 ^
       uVar44;
  uVar18 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  uVar25 = *(ulonglong *)(lVar4 - (uVar46 ^ 0x6656d204)) ^ uVar18 ^ *(ulonglong *)(lVar4 + -0xa88) ^
           uVar22 ^ uVar25;
  *(ulonglong *)(lVar4 + -0x800) = uVar25;
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0x8a8) = (uVar25 ^ uVar18) >> ((bVar33 ^ 0xa9) & 0x3f) ^ uVar38;
  uVar10 = DAT_182671698;
  uVar44 = CONCAT44(DAT_1826717e4,DAT_1826717e4);
  *(ulonglong *)(lVar2 + -0x1d8) = (uVar18 ^ uVar25) << ((bVar23 ^ 0x47) & 0x3f) ^ uVar44;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar25 = *(ulonglong *)(lVar2 - (uVar50 ^ 0x803c27e6)) ^ uVar38 |
           *(ulonglong *)(lVar2 - (uVar36 ^ 0x44268463)) ^ uVar44;
  uVar18 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(lVar2 + -0x318) = uVar25 ^ uVar24;
  *(ulonglong *)(lVar2 + -0x6d0) =
       (*(ulonglong *)(lVar2 + -0xa88) ^ uVar22) - (CONCAT44(uVar9,uVar7) ^ 0x1249d1e2b0d8112d) ^
       uVar18;
  lVar3 = DAT_182671560;
  uVar22 = CONCAT44(DAT_182671798,DAT_182671798);
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x95a35518)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar49 ^ 0x6e269b6b)) ^ uVar18) - uVar25 ^ uVar22;
  *(ulonglong *)(lVar3 + -0xc08) =
       (uVar44 ^ *(ulonglong *)(lVar3 + -0x1d8)) <<
       ((*(byte *)(lVar3 - (uVar43 ^ 0xe46dda3e)) ^ (byte)uVar12) & 0x3f);
  uVar18 = (CONCAT44(uVar17,uVar53) ^ 0x4ca1305eb64f7551) +
           (uVar24 ^ *(ulonglong *)(lVar3 + -0x318)) ^ uVar45;
  *(ulonglong *)(lVar3 + -0x110) = uVar18;
  uVar10 = DAT_1826716c4;
  uVar25 = uVar29 ^ uVar45 ^ *(ulonglong *)(lVar3 + -0x80) ^ uVar42 ^ uVar18;
  *(ulonglong *)(lVar3 + -0xbf0) = CONCAT44(iVar6,uVar17) ^ uVar18 ^ uVar45 ^ 0x9e026a0be20eb3a0;
  *(ulonglong *)(lVar3 + -0x898) = uVar25;
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x628) =
       ((ulonglong)DAT_182671690 << 0x1b | (ulonglong)(DAT_182671690 >> 5)) ^
       *(ulonglong *)(lVar3 - (uVar35 ^ 0x4e2f3418)) >> 5 ^ uVar24;
  uVar10 = DAT_18267189c;
  *(undefined1 *)(lVar3 + -0x5e9) = **(undefined1 **)(lVar3 - (uVar36 ^ 0x4426893b));
  lVar2 = DAT_182671560;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xe46dd036)) =
       (uVar25 ^ uVar42) << ((bVar33 ^ 0xb3) & 0x3f) ^ uVar18;
  uVar10 = DAT_1826718c0;
  *(ulonglong *)(lVar2 + -0x800) =
       (uVar45 ^ *(ulonglong *)(lVar2 + -0x110)) - (CONCAT44(uVar26,uVar5) ^ 0x1b0686c1a81bb411);
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x823b08ba)) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar24 | uVar18 ^ *(ulonglong *)(lVar2 + -0x2a0)) ^ uVar32;
  *(ulonglong *)(lVar2 - (uVar51 ^ 0x1c022cd0)) = uVar18 ^ *(ulonglong *)(lVar2 + -0x2a0);
  uVar25 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  uVar24 = CONCAT44(DAT_1826716fc,DAT_1826716fc);
  *(ulonglong *)(lVar2 + -0x8a8) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x80)) -
       (*(ulonglong *)(lVar2 - (uVar50 ^ 0x803c25c6)) ^ uVar32) ^ uVar25;
  uVar43 = CONCAT44(DAT_182671758,DAT_182671758);
  uVar18 = *puVar40 ^ uVar24 ^ uVar22 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x240);
  *(ulonglong *)(lVar2 + -0x1d8) = uVar18;
  *(ulonglong *)(lVar2 + -0xc08) = (uVar18 ^ uVar24) >> (((byte)uVar49 ^ 0x9e) & 0x3f) ^ uVar43;
  uVar35 = CONCAT44(DAT_182671844,DAT_182671844);
  *(ulonglong *)(lVar2 - (uVar48 ^ 0x162f3f90)) =
       (uVar24 ^ uVar18) << ((local_100 ^ 0x9b) & 0x3f) ^ uVar35;
  uVar10 = DAT_182671864;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar2 + -0x318) | uVar43 ^ *(ulonglong *)(lVar2 + -0xc08);
  uVar18 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar2 + -0xbf0) = uVar35 ^ uVar18;
  uVar48 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x898) = (uVar22 ^ *(ulonglong *)(lVar2 + -0x240)) - uVar35 ^ uVar48;
  lVar3 = DAT_182671560;
  uVar35 = CONCAT44(DAT_1826718a4,DAT_1826718a4);
  *(ulonglong *)(DAT_182671560 - (uVar28 ^ 0x982fbc98)) =
       *(ulonglong *)(lVar2 - (uVar46 ^ 0x6656db54)) ^ *(ulonglong *)(lVar2 + -0x8a8) ^ uVar35 ^
       uVar18 ^ uVar25;
  uVar10 = DAT_1826715fc;
  uVar46 = CONCAT44(DAT_1826715fc,DAT_1826715fc);
  *(ulonglong *)(lVar3 + -0x800) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x110)) >> ((local_100 ^ 0x97) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x9c2fb9a0)) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x240)) >> ((bVar30 ^ 0xa5) & 0x3f);
  uVar18 = CONCAT44(DAT_1826717f0,DAT_1826717f0);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x4426871b)) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x110)) << (((byte)uVar17 ^ 0xa1) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x982fbb58)) =
       (CONCAT44(uVar21,uVar49) ^ 0x447f6e9ad1fad9bd) <<
       ((*(byte *)(lVar3 - (uVar51 ^ 0x1c022200)) ^ (byte)uVar10) & 0x3f);
  uVar18 = uVar18 ^ *(ulonglong *)(lVar3 + -0x2a0) | uVar46 ^ *(ulonglong *)(lVar3 + -0x800);
  uVar22 = CONCAT44(DAT_1826718b4,DAT_1826718b4);
  *(longlong *)(lVar3 + -0x670) = 0x27617be635134343 << (((byte)uVar49 ^ 0x9a) & 0x3f);
  uVar10 = DAT_1826716e0;
  *(ulonglong *)(lVar3 + -0x80) = uVar18 ^ uVar22;
  uVar46 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x1d8) = (*(ulonglong *)(lVar3 + -0x8a8) ^ uVar25) - uVar18 ^ uVar46;
  uVar18 = (ulonglong)DAT_182671858;
  uVar25 = CONCAT44(DAT_182671858,DAT_182671858);
  *puVar20 = uVar25 ^ uVar48 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0xa88) ^
             *(ulonglong *)(lVar3 + -0x898);
  uVar36 = (*(ulonglong *)(lVar3 + -0xc08) >> 0x20 ^ uVar18) >> 8;
  uVar18 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar3 + -0x318) = uVar36 ^ CONCAT44(DAT_182671884,DAT_182671884);
  lVar2 = DAT_182671560;
  uVar25 = (uVar25 ^ *puVar19) << (bVar23 & 0x3f);
  uVar32 = CONCAT44(DAT_182671738,DAT_182671738);
  *(ulonglong *)(lVar3 + -0xbf0) = uVar25 ^ uVar18;
  uVar15 = DAT_1826715a8;
  uVar36 = uVar36 | uVar25;
  uVar25 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(lVar3 + -0x240) = uVar36 ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar50 ^ 0x803c2966)) =
       (uVar48 ^ *(ulonglong *)(lVar3 + -0x898)) - uVar36 ^ uVar25;
  uVar5 = DAT_1826715a4;
  uVar36 = CONCAT44(DAT_182671788,DAT_182671788);
  uVar18 = *(ulonglong *)(lVar2 + -0x240);
  uVar16 = DAT_1826715a4 - uVar15;
  uVar48 = (ulonglong)DAT_1826715a4;
  uVar35 = *(ulonglong *)(lVar3 - (uVar47 ^ 0x2a001e42)) ^ uVar36 ^ uVar32 ^ uVar46 ^
           *(ulonglong *)(lVar3 + -0x1d8);
  DAT_1826715a0 = uVar16;
  *(ulonglong *)(lVar3 + -0x110) = uVar35;
  uVar12 = DAT_182671764;
  *(ulonglong *)(lVar2 + -0x6d0) = (uVar32 ^ uVar18) - (CONCAT44(uVar5,uVar16) ^ 0x32fcd3e5d255fe72)
  ;
  uVar18 = (uVar36 ^ *(ulonglong *)(lVar2 + -0x110)) >> (((byte)uVar5 ^ 0x42) & 0x3f);
  *(ulonglong *)(lVar2 + -0x800) = uVar18 ^ uVar52;
  uVar10 = DAT_182671638;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x2a0) = (uVar36 ^ uVar35) << (((byte)uVar15 ^ 0xe2) & 0x3f) ^ uVar32;
  uVar12 = DAT_18267171c;
  iVar6 = DAT_18267158c;
  uVar5 = DAT_18267157c;
  uVar18 = *(ulonglong *)(lVar2 - (uVar48 ^ 0xacee7ed6)) ^ uVar32 | uVar18;
  *(ulonglong *)(lVar2 + -0x670) = uVar18 ^ CONCAT44(uVar10,uVar10);
  uVar17 = iVar6 - uVar5;
  uVar35 = (ulonglong)DAT_1826718a0;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar32 = CONCAT44(DAT_1826718a0,DAT_1826718a0);
  DAT_182671598 = uVar17;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar17 ^ 0x8a2d1b20)) =
       (uVar46 ^ *(ulonglong *)(DAT_182671560 + -0x1d8)) - uVar18 ^ uVar36;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar5 ^ 0xc022288)) =
       uVar32 ^ uVar25 ^ *(ulonglong *)(DAT_182671560 + -0x628) ^ uVar22 ^
       *(ulonglong *)(DAT_182671560 + -0x80);
  *(ulonglong *)(lVar2 + -0xc08) =
       CONCAT44(iVar6,uVar17) ^ uVar36 ^ *(ulonglong *)(lVar2 + -0x8a8) ^ 0x7c2f8da45acb4250;
  uVar46 = CONCAT44(DAT_1826716a4,DAT_1826716a4);
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x8a2d1900)) >> 0x20 ^ uVar35) >> 0x19 ^ uVar46;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x8a2d1878)) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0xa88)) >>
       (((byte)uVar12 ^ *(byte *)(lVar2 + -0x8a8)) & 0x3f);
  uVar12 = DAT_1826718b0;
  uVar10 = DAT_182671634;
  uVar18 = (uVar32 ^ *(ulonglong *)(lVar2 + -0xa88)) << (((byte)uVar5 ^ 7) & 0x3f);
  *(ulonglong *)(lVar2 + -0x898) = uVar18 ^ CONCAT44(DAT_182671704,DAT_182671704);
  uVar18 = uVar46 ^ *(ulonglong *)(lVar2 + -0x318) | uVar18;
  uVar46 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x240) = uVar18 ^ uVar46;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x96bf393e)) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x628)) - uVar18 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671678;
  uVar18 = CONCAT44(DAT_182671718,DAT_182671718);
  uVar25 = uVar18 ^ uVar46 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0x8a8) ^
           *(ulonglong *)(lVar2 + -0x240);
  *(ulonglong *)(lVar2 + -0x110) = uVar25;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x162f3488)) =
       (uVar25 ^ uVar18) >> (((byte)iVar6 ^ 0x86) & 0x3f) ^ CONCAT44(uVar10,uVar10);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar49) * 4) = uVar14;
  return;
}



############ FUN_ 180f0d600 size=4852 ############

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

void FUN_180f0d600(void)

{
  int *piVar1;
  longlong *plVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte *pbVar28;
  byte *pbVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  uint uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte bVar45;
  byte bVar46;
  uint uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  byte local_d8;
  
  uVar15 = DAT_1826716cc;
  uVar14 = DAT_1826715b0;
  uVar13 = DAT_1826715ac;
  uVar11 = DAT_18267159c;
  uVar9 = DAT_182671594;
  uVar8 = DAT_182671590;
  uVar7 = DAT_182671578;
  uVar23 = DAT_18267156c;
  uVar6 = DAT_182671568;
  lVar3 = DAT_182671560;
  uVar51 = (ulonglong)DAT_182671568;
  uVar53 = (ulonglong)DAT_182671594;
  uVar31 = (ulonglong)DAT_1826715ac;
  uVar24 = DAT_182671568 & DAT_182671594;
  uVar52 = (ulonglong)DAT_182671578;
  uVar38 = (ulonglong)DAT_18267159c;
  DAT_182671598 = DAT_1826715ac & DAT_182671584 ^ 0x90ab4f6d;
  uVar49 = DAT_18267159c ^ DAT_1826715a8;
  uVar33 = (ulonglong)DAT_1826715b0;
  uVar44 = (ulonglong)DAT_182671590;
  uVar36 = DAT_182671578 - DAT_1826715b0;
  uVar42 = DAT_18267156c ^ DAT_182671590;
  uVar47 = *(uint *)(&DAT_182611e78 + DAT_1826719e0) ^ DAT_182671568;
  uVar20 = *(uint *)(&DAT_182611e80 + DAT_1826719e0) ^ DAT_182671594;
  uVar25 = (ulonglong)DAT_18267156c;
  uVar40 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  DAT_182671570 = uVar49;
  DAT_182671574 = uVar36;
  DAT_182671580 = uVar24;
  DAT_1826715a4 = uVar42;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)DAT_182671590 ^ 0x62500168)) =
       *(longlong *)(DAT_182671560 + -0xb98) + 0x40 +
       (CONCAT44(uVar24,DAT_18267156c) ^ 0xee71edf0f211f301) * 0x60 ^ uVar40;
  lVar4 = DAT_182671560;
  uVar50 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar27 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  uVar32 = (ulonglong)uVar49;
  uVar41 = *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar42 ^ 0x9041f269)) ^ uVar40) ^
           uVar27 ^ uVar50;
  *(ulonglong *)(lVar3 + -0x670) = uVar41;
  uVar40 = (ulonglong)DAT_182671780;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x179d7dfa)) = CONCAT44(uVar15,uVar15) ^ uVar41 ^ uVar50;
  bVar45 = (byte)uVar15 ^ *(byte *)(lVar4 + -0xbf0) ^ (byte)DAT_182671888;
  pbVar28 = (byte *)(*(longlong *)(lVar4 + -3000) + 0x40);
  bVar19 = (byte)DAT_1826717c0 ^ (byte)DAT_182671888;
  *(ulonglong *)(lVar4 + -0x820) = (ulonglong)pbVar28 ^ uVar40;
  *(byte *)(lVar4 + -0x8b1) = bVar45;
  *pbVar28 = bVar19 ^ bVar45;
  uVar10 = DAT_182671598;
  uVar21 = DAT_182671584;
  *(undefined1 *)(lVar4 + -0xc19) = **(undefined1 **)(lVar4 + -0x5b8);
  uVar12 = DAT_1826715a8;
  lVar3 = DAT_182671560;
  uVar39 = (ulonglong)DAT_1826715a8;
  uVar41 = CONCAT44(DAT_1826715a8,uVar13) ^ 0x9db9f8886246077f;
  uVar40 = CONCAT44(DAT_1826716ac,DAT_1826716ac);
  uVar26 = (ulonglong)uVar36;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar42 ^ 0x9041f5d1)) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0x1dfdb4a4)) +
       (uVar41 + (CONCAT44(uVar10,uVar11) ^ 0x90ef48598a248e82) * 0xc) * 8 ^ uVar40;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0x62500668)) =
       CONCAT44(DAT_182671850,DAT_182671850) ^ CONCAT44(uVar36,uVar14) ^
       *(ulonglong *)(lVar3 + -0x110) ^ 0x5aa70a9d8431877e;
  uVar48 = CONCAT44(DAT_1826717bc,DAT_1826717bc);
  *(ulonglong *)(lVar3 + -0xa88) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x690) ^ uVar40) ^ uVar48 ^ uVar27;
  uVar40 = (ulonglong)DAT_182671584;
  uVar34 = CONCAT44(DAT_182671858,DAT_182671858);
  bVar19 = (byte)DAT_182671858;
  uVar43 = (ulonglong)DAT_1826715f8;
  *(longlong *)(lVar3 - (uVar51 ^ 0xfffff40f)) =
       0x25c3ecb8d710376b << (((byte)uVar13 ^ 0x6d) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0x1dfdb5b4)) ^ uVar48) >> (((byte)uVar24 ^ 0xf8) & 0x3f) ^
       uVar34;
  lVar3 = DAT_182671560;
  *(byte *)(DAT_182671560 + -0xc19) =
       *(byte *)(DAT_182671560 - (uVar33 ^ 0x2b4ce74c)) ^ bVar19 ^ (byte)DAT_182671790;
  lVar4 = DAT_182671560;
  pbVar29 = (byte *)(*(longlong *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0x90ef43e1)) +
                    (CONCAT44(uVar12,uVar23) ^ 0x9db9f888f211f340));
  pbVar28 = (byte *)(DAT_182671560 - (uVar26 ^ 0x69da7d2e));
  *(ulonglong *)(DAT_182671560 + -0x188) = (ulonglong)pbVar29 ^ uVar43;
  *pbVar29 = *pbVar28 ^ (byte)DAT_182671790 ^ (byte)DAT_1826717c0;
  uVar15 = DAT_182671834;
  *(ulonglong *)(lVar4 + -0x628) =
       CONCAT44(uVar42,uVar12) ^ 0x77916f3a92a248df | CONCAT44(uVar6,uVar49) ^ 0xa1b130bf369add62;
  bVar19 = (byte)DAT_18267181c;
  uVar40 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x62500d20)) =
       *(longlong *)(lVar4 + -0xb98) + 0x40 + (CONCAT44(uVar7,uVar9) ^ 0x95275793ee71edf0) * 0x60 ^
       uVar40;
  uVar16 = DAT_182671890;
  uVar15 = DAT_182671814;
  lVar3 = DAT_182671560;
  uVar43 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar4 + -0xbf0) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0xd60) ^ uVar40) ^ uVar43 ^ uVar27;
  lVar5 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0xa88) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xee71eee8)) ^ CONCAT44(uVar16,uVar16)) -
       (*(ulonglong *)(lVar4 + -0x670) ^ uVar50);
  lVar4 = DAT_182671560;
  uVar50 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (*(ulonglong *)(lVar5 + -0xbf0) ^ uVar43) >> (((byte)uVar14 ^ 0x4c) & 0x3f) ^ uVar50;
  lVar5 = DAT_182671560;
  uVar21 = DAT_182671590 ^ 0x8c028782;
  bVar45 = *(byte *)(lVar4 - (uVar26 ^ 0x69da7027)) ^ (byte)uVar15 ^ bVar19;
  piVar1 = (int *)(DAT_182671560 + -0x844);
  *(byte *)(DAT_182671560 + -0xb49) = bVar45;
  *(uint *)(lVar5 + -0x874) = uVar21 * *piVar1;
  pbVar28 = (byte *)((CONCAT44(uVar23,uVar11) ^ 0xf211f3018a248ec0) + *(longlong *)(lVar3 + -3000));
  bVar19 = bVar19 ^ (byte)DAT_1826717c0;
  uVar21 = DAT_1826715a4 ^ 0xf5bf9b39;
  *(ulonglong *)(lVar3 + -0xb48) = (ulonglong)pbVar28 ^ (ulonglong)DAT_182671810;
  *(uint *)(lVar3 + -0x774) = uVar21 * (uVar12 ^ 0x606725fe);
  *pbVar28 = bVar19 ^ bVar45;
  lVar3 = DAT_182671560;
  plVar2 = (longlong *)(DAT_182671560 + -0xb98);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (uVar50 ^ *(ulonglong *)(DAT_182671560 + -0x110)) << (((byte)uVar23 ^ 0x32) & 0x3f);
  uVar16 = _DAT_1826715e0;
  uVar40 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  uVar48 = CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0xee71ecd8)) =
       *plVar2 + 0x40 + (CONCAT44(uVar6,uVar13) ^ 0xffffffff62460777) * 0x60 ^ uVar40;
  uVar18 = DAT_1826718c4;
  uVar21 = DAT_182671584;
  *(ulonglong *)(lVar3 + -0x318) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x128) ^ uVar40) ^ uVar48 ^ uVar27;
  bVar45 = (byte)DAT_182671650;
  bVar19 = (byte)DAT_182671598;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x2b4ce02c)) =
       (CONCAT44(uVar21,uVar6) ^ 0xc883282a80de1913) + (uVar50 ^ *(ulonglong *)(lVar3 + -0x110));
  uVar40 = (uVar48 ^ *(ulonglong *)(lVar3 + -0x318)) >> ((bVar19 ^ 0x41) & 0x3f) ^
           CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar3 + -0xa88) = uVar40;
  uVar15 = DAT_1826715bc;
  uVar43 = (ulonglong)DAT_182671604;
  *(byte *)(lVar3 + -0x54b) = (byte)uVar18 ^ bVar45 ^ (byte)uVar40;
  uVar22 = DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x248) = *(longlong *)(lVar3 + -3000) + 0x43U ^ uVar43;
  *(uint *)(lVar3 - (uVar26 ^ 0x69da7243)) = (uVar22 ^ 0xadd4410d) + 0xaa4de80c;
  *(byte *)(uVar43 ^ *(ulonglong *)(lVar3 + -0x248)) =
       bVar45 ^ (byte)DAT_1826717c0 ^ *(byte *)(lVar3 + -0x54b);
  puVar30 = (ulonglong *)(*(longlong *)(lVar3 + -0xb98) + uVar41 * 8);
  uVar22 = DAT_182671568 ^ 0xf608d92a;
  *(ulonglong *)(lVar3 + -0x690) = (ulonglong)puVar30 ^ CONCAT44(DAT_182671654,DAT_182671654);
  uVar40 = *puVar30 ^ uVar34 ^ uVar27;
  local_d8 = (byte)uVar49;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar40;
  lVar3 = DAT_182671560;
  uVar40 = (uVar40 ^ uVar34) >> ((local_d8 ^ 0x2a) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  bVar19 = (byte)uVar15 ^ (byte)uVar40 ^ (byte)DAT_1826717c8;
  *(uint *)(DAT_182671560 + -0x910) = uVar22 + *(int *)(DAT_182671560 + -0x344);
  *(ulonglong *)(lVar3 + -0x628) = uVar40;
  uVar40 = (ulonglong)DAT_1826717e0;
  *(byte *)(lVar3 - (uVar44 ^ 0x62500791)) = bVar19;
  pbVar28 = (byte *)((CONCAT44(uVar11,uVar7) ^ 0x8a248e82952757d7) + *(longlong *)(lVar3 + -3000));
  bVar19 = *(byte *)(lVar3 + -0x7d1) ^ (byte)DAT_1826717c8 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0x868) = (ulonglong)pbVar28 ^ uVar40;
  *pbVar28 = bVar19;
  lVar3 = DAT_182671560;
  uVar43 = CONCAT44(uVar36,uVar24) ^ 0x69da7137ee71edf0;
  puVar30 = (ulonglong *)(*(longlong *)(DAT_182671560 + -0xb98) + 0x40 + uVar43 * 0x60);
  *(ulonglong *)(DAT_182671560 + -0xd60) =
       (ulonglong)puVar30 ^ CONCAT44(DAT_1826715f4,DAT_1826715f4);
  uVar44 = CONCAT44(DAT_182671860,DAT_182671860);
  uVar40 = *puVar30 ^ uVar44 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x110) = uVar40;
  lVar3 = DAT_182671560;
  uVar41 = (ulonglong)_DAT_1826715dc;
  *(ulonglong *)(DAT_182671560 - (uVar53 ^ 0xee71eb80)) =
       (uVar44 ^ uVar40) >> (((byte)uVar23 ^ 0x29) & 0x3f) ^ uVar48;
  uVar17 = DAT_182671700;
  bVar19 = (byte)DAT_18267165c;
  bVar35 = (byte)uVar16 ^ *(byte *)(lVar3 + -0x670);
  pbVar28 = (byte *)(*(longlong *)(lVar3 + -3000) + 0x45);
  *(ulonglong *)(lVar3 + -0xd48) = (ulonglong)pbVar28 ^ uVar41;
  *(byte *)(lVar3 + -0x3d7) = bVar35 ^ bVar19;
  *(ulonglong *)(lVar3 + -0x318) =
       (CONCAT44(uVar7,uVar9) ^ 0x88a47b5e45584375) <<
       (((byte)uVar18 ^ *(byte *)(lVar3 + -0xa88)) & 0x3f);
  *pbVar28 = bVar35 ^ (byte)DAT_1826717c0;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar13,uVar42) ^ 0x624607779041f349) +
            (CONCAT44(uVar49,uVar8) ^ 0x179d760a62500040) * 0xc) * 8);
  uVar23 = DAT_182671584 ^ 0xef05b582;
  *(ulonglong *)(lVar3 + -0x128) = (ulonglong)puVar30 ^ CONCAT44(uVar17,uVar17);
  *(uint *)(lVar3 + -0x8c) = uVar23 * *(int *)(lVar3 + -0x754);
  uVar16 = DAT_182671680;
  lVar4 = DAT_182671560;
  uVar40 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x8a248572)) = *puVar30 ^ uVar40 ^ uVar27;
  puVar37 = (ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0xee71e600));
  bVar19 = (byte)DAT_18267156c;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x179d7022)) =
       (uVar40 ^ *puVar37) >> (((byte)DAT_182671598 ^ 0x69) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  bVar35 = (byte)uVar16 ^ (byte)DAT_182671620;
  bVar46 = (byte)DAT_182671620 ^ (byte)DAT_1826717c0;
  *(int *)(lVar4 - (uVar39 ^ 0x9db9fef0)) = 0x40c88b98 << ((bVar19 ^ 9) & 0x1f);
  uVar40 = (ulonglong)DAT_182671750;
  *(byte *)(lVar4 + -0xd31) = bVar35 ^ *(byte *)(lVar4 + -0x628);
  lVar3 = DAT_182671560;
  *(ulonglong *)(lVar4 + -0xc38) =
       (CONCAT44(uVar7,uVar6) ^ 0x95275793ffffffb9) + *(longlong *)(lVar4 + -3000) ^ uVar40;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x9db9f998)) =
       (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar4 + -0x898)) >> ((byte)uVar13 & 0x3f);
  uVar41 = CONCAT44(DAT_182671634,DAT_182671634);
  *(byte *)(uVar40 ^ *(ulonglong *)(lVar4 + -0xc38)) = bVar46 ^ *(byte *)(lVar4 + -0xd31);
  uVar16 = DAT_1826717f8;
  uVar15 = DAT_18267171c;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar3 - (uVar53 ^ 0xee71e668)) +
            (CONCAT44(uVar42,uVar36) ^ 0x9041f34169da713f) * 8);
  *(ulonglong *)(lVar3 + -0x690) = (ulonglong)puVar30 ^ uVar41;
  bVar19 = (byte)DAT_1826716e0;
  uVar41 = CONCAT44(uVar16,uVar16);
  uVar40 = *puVar30 ^ uVar41 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x670) = uVar40;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xa88) =
       (uVar41 ^ uVar40) >> (((byte)uVar14 ^ 100) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  bVar35 = (byte)uVar15 ^ bVar19 ^ *(byte *)(lVar3 + -0xa88);
  *(byte *)(lVar3 + -0x919) = bVar35;
  bVar19 = bVar19 ^ bVar35 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar3 + -0x318) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0xf211f211)) | CONCAT44(uVar14,uVar8) ^ 0x1efb1b445c08454;
  pbVar28 = (byte *)((CONCAT44(uVar9,uVar8) ^ 0xee71edf062500007) + *(longlong *)(lVar3 + -3000));
  *(ulonglong *)(lVar3 + -0x990) = (ulonglong)pbVar28 ^ (ulonglong)DAT_182671738;
  uVar17 = DAT_1826718a4;
  *pbVar28 = bVar19;
  uVar16 = DAT_182671710;
  uVar15 = DAT_1826715fc;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0x90ef43c1)) +
            ((CONCAT44(uVar10,uVar6) ^ 0x90ef4859fffffff6) + uVar43 * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xd60) = (ulonglong)puVar30 ^ CONCAT44(uVar17,uVar17);
  uVar44 = CONCAT44(uVar16,uVar16);
  uVar40 = (ulonglong)DAT_182671724;
  uVar41 = *puVar30 ^ uVar44 ^ uVar27;
  *(ulonglong *)(lVar3 + -0xbf0) = uVar41;
  lVar3 = DAT_182671560;
  uVar41 = CONCAT44(uVar15,uVar15) ^ uVar44 ^ uVar41;
  bVar19 = (byte)uVar15 ^ (byte)uVar41;
  *(ulonglong *)(DAT_182671560 + -0x628) = uVar41;
  bVar35 = bVar19 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar3 + -0x439) = bVar19 ^ bVar45;
  uVar15 = DAT_1826716c4;
  pbVar28 = (byte *)((CONCAT44(uVar6,uVar11) ^ 0xffffffff8a248eca) + *(longlong *)(lVar3 + -3000));
  *(ulonglong *)(lVar3 + -0x148) = (ulonglong)pbVar28 ^ uVar40;
  uVar40 = CONCAT44(DAT_182671668,DAT_182671668);
  *pbVar28 = bVar35;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) + 0x48 +
            (CONCAT44(uVar49,uVar12) ^ 0x179d760a9db9f888) * 0x60);
  *(ulonglong *)(lVar3 + -0x128) = (ulonglong)puVar30 ^ uVar40;
  uVar23 = DAT_182671870;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x898) = CONCAT44(DAT_182671870,DAT_182671870) ^ *puVar30 ^ uVar27
  ;
  *(undefined1 *)(lVar3 + -0x262) = **(undefined1 **)(lVar3 + -0x5b8);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0x179d707a)) =
       ((ulonglong)uVar23 << 0x18 | (ulonglong)(uVar23 >> 8)) ^
       *(ulonglong *)(DAT_182671560 + -0x898) >> 8 ^ CONCAT44(uVar15,uVar15);
  bVar45 = (byte)uVar15 ^ (byte)DAT_18267164c;
  bVar19 = (byte)DAT_18267164c ^ (byte)DAT_1826717c0;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x2b4cecd4)) =
       (CONCAT44(uVar24,uVar8) ^ 0x9165572013304d4) - (CONCAT44(uVar7,uVar12) ^ 0xe9a5ea2124d12b45);
  uVar40 = (ulonglong)DAT_1826716a0;
  *(byte *)(DAT_182671560 - (uVar38 ^ 0x8a248ce0)) = bVar45 ^ *(byte *)(DAT_182671560 + -0x670);
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x1a0) =
       (CONCAT44(uVar42,uVar13) ^ 0x9041f3416246073e) + *(longlong *)(DAT_182671560 + -3000) ^
       uVar40;
  uVar23 = DAT_182671598;
  uVar44 = (ulonglong)DAT_182671598;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671598 ^ 0x90ef4949)) =
       (CONCAT44(uVar21,uVar9) ^ 0xcd3317e0e85004f2) << (((byte)uVar9 ^ 0xf1) & 0x3f);
  uVar16 = DAT_182671874;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar53 ^ 0xee71ec50)) ^ uVar40) =
       bVar19 ^ *(byte *)(lVar3 + -0x262);
  uVar15 = DAT_1826717dc;
  uVar40 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826715a0 ^ 0xd95d13cd)) =
       *(longlong *)(lVar3 - (uVar33 ^ 0x2b4cedc4)) +
       ((CONCAT44(uVar9,uVar6) ^ 0xee71edf0fffffff6) +
       (CONCAT44(uVar49,uVar9) ^ 0x179d760aee71edf0) * 0xc) * 8 ^ uVar40;
  uVar41 = (ulonglong)DAT_1826716ec;
  uVar32 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  uVar40 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x690) ^ uVar40);
  *(int *)(lVar3 + -0x47c) = *(int *)(lVar3 + -0x774) + 0x2f8512fb;
  *(ulonglong *)(lVar3 + -0x318) = uVar40 ^ uVar27 ^ uVar32;
  *puVar37 = (*(ulonglong *)(lVar3 + -0x318) ^ uVar32) >> (((byte)DAT_182671588 ^ 0xf4) & 0x3f) ^
             CONCAT44(uVar15,uVar15);
  *(byte *)(lVar3 - (uVar25 ^ 0xf211f570)) =
       (byte)uVar15 ^ *(byte *)(lVar3 + -0xbf0) ^ DAT_18267161c;
  uVar15 = DAT_182671728;
  *(ulonglong *)(lVar3 - (uVar52 ^ 0x9527535b)) = *(longlong *)(lVar3 + -3000) + 0x4aU ^ uVar41;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0x624603bf)) ^ uVar41) =
       *(byte *)(lVar3 + -0x671) ^ (byte)DAT_1826717c0 ^ DAT_18267161c;
  *(ulonglong *)(lVar3 + -0xd60) = *(longlong *)(lVar3 + -0xb98) + 0x48U ^ uVar27;
  uVar27 = *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar44 ^ 0x90ef4539)) ^ uVar27) ^ uVar27;
  *(ulonglong *)(lVar3 + -0x628) = uVar27 ^ CONCAT44(DAT_182671824,DAT_182671824);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x69da79af)) =
       uVar27 >> (((byte)uVar11 ^ 0x9a) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  *(byte *)(lVar3 + -0x2b9) =
       *(byte *)(lVar3 - (uVar33 ^ 0x2b4ceec4)) ^ (byte)uVar15 ^ (byte)DAT_1826717cc;
  uVar6 = DAT_1826715b4;
  *(ulonglong *)(lVar3 + -0xa88) =
       (*(ulonglong *)(lVar3 + -0x318) ^ uVar32) << (((byte)DAT_182671584 ^ 0xe) & 0x3f);
  DAT_18267158c = uVar6 | DAT_182671598;
  *(ulonglong *)(lVar3 + -0xcb8) =
       (CONCAT44(uVar6,uVar23) ^ 0x118e120f90ef4812) + *(longlong *)(lVar3 + -3000) ^
       (ulonglong)DAT_1826718cc;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar20 * 4) = uVar47;
  return;
}



############ FUN_ 180eb3100 size=4889 ############

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

void FUN_180eb3100(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  
  uVar6 = DAT_182671784;
  uVar8 = DAT_1826715a8;
  uVar7 = DAT_182671598;
  uVar5 = DAT_18267157c;
  uVar18 = DAT_18267156c;
  lVar2 = DAT_182671560;
  uVar22 = (ulonglong)DAT_18267157c;
  uVar24 = (ulonglong)DAT_18267156c;
  uVar28 = (ulonglong)DAT_182671598;
  uVar23 = DAT_1826715a8 ^ DAT_18267156c;
  uVar32 = DAT_18267157c & DAT_182671598;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671bbc);
  uVar15 = *(uint *)(&DAT_182611e80 + DAT_182671bbc) ^ DAT_1826715a8;
  uVar20 = (ulonglong)DAT_18267156c;
  uVar34 = (ulonglong)DAT_182671598;
  uVar25 = (ulonglong)DAT_1826715a8;
  uVar30 = (ulonglong)DAT_182671784;
  DAT_182671574 = uVar32;
  DAT_1826715ac = uVar23;
  *(byte *)(*(ulonglong *)(DAT_182671560 + -0x5e8) ^ (ulonglong)DAT_1826717d4) =
       *(byte *)(DAT_182671560 + -0x519) ^ (byte)DAT_1826715f4 ^ (byte)DAT_1826717c0;
  uVar11 = DAT_182671614;
  *(ulonglong *)(lVar2 + -0x318) =
       *(ulonglong *)(lVar2 - (uVar25 ^ 0x9057fcee)) ^ CONCAT44(DAT_1826716e8,DAT_1826716e8) ^
       CONCAT44(uVar18,uVar5) ^ 0xadd5d93ac666c209;
  uVar10 = DAT_1826715c0;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) + 0x18 +
            (CONCAT44(uVar7,uVar32) ^ 0x6ad8a86c62d08048) * 0x60);
  *(ulonglong *)(lVar2 + -0x128) = (ulonglong)puVar19 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_18267171c;
  uVar35 = CONCAT44(uVar10,uVar10);
  *(uint *)(lVar2 + -0x47c) = (uVar5 ^ 0xea25b50d) + (uVar23 ^ 0x996a1432);
  *(ulonglong *)(lVar2 + -0x110) = CONCAT44(uVar6,uVar6) ^ *puVar19 ^ uVar35;
  *(undefined1 *)(lVar2 + -0x1f9) = **(undefined1 **)(lVar2 + -0x900);
  uVar17 = (ulonglong)uVar23;
  uVar29 = (ulonglong)DAT_18267169c;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xf211f8f1)) =
       *(ulonglong *)(lVar2 - (uVar17 ^ 0x62460667)) >> 0x18 ^
       ((ulonglong)(uVar6 >> 0x18) | uVar30 << 8) ^ CONCAT44(uVar11,uVar11);
  lVar2 = DAT_182671560;
  uVar37 = CONCAT44(DAT_182671750,DAT_182671750);
  bVar31 = (byte)uVar11 ^ (byte)DAT_182671814;
  pbVar21 = (byte *)(DAT_182671560 + -0xbf0);
  bVar26 = (byte)DAT_182671814 ^ (byte)DAT_1826717c0;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       (CONCAT44(uVar8,uVar32) ^ 0x2d0070bcfc8c6ea8) <<
       ((*(byte *)(DAT_182671560 - (uVar34 ^ 0x6ad8ae44)) ^ (byte)DAT_182671750) & 0x3f);
  *(byte *)(lVar2 - ((ulonglong)uVar18 ^ 0xf211f2f8)) = bVar31 ^ *pbVar21;
  lVar3 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar17 ^ 0x62460da7)) =
       *(longlong *)(lVar2 - (uVar17 ^ 0x62460ccf)) + (CONCAT44(uVar8,uVar32) ^ 0x9057f47662d08053)
       ^ uVar29;
  *(byte *)(*(ulonglong *)(lVar3 + -0xad0) ^ uVar29) = bVar26 ^ *(byte *)(lVar3 + -0x1f9);
  uVar12 = DAT_18267182c;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) + (CONCAT44(uVar32,uVar7) ^ 0x62d080486ad8a86f) * 8);
  *(ulonglong *)(lVar3 + -0xd60) = (ulonglong)puVar19 ^ CONCAT44(DAT_182671758,DAT_182671758);
  uVar10 = DAT_182671694;
  *(ulonglong *)(lVar3 + -0x898) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0xe3d29828)) ^ CONCAT44(uVar11,uVar11) | 0x3e140be323220c7d;
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xe3d290c0)) = *puVar19 ^ uVar29 ^ uVar35;
  lVar2 = DAT_182671560;
  uVar30 = (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x318)) >> (((byte)uVar18 ^ 0x21) & 0x3f) ^
           CONCAT44(uVar12,uVar12);
  uVar29 = (ulonglong)DAT_1826715c8;
  *(byte *)(DAT_182671560 + -0xc52) = (byte)uVar12 ^ (byte)DAT_182671888 ^ (byte)uVar30;
  *(ulonglong *)(lVar2 + -0x110) = uVar30;
  *(ulonglong *)(lVar2 + -0xbe8) =
       (CONCAT44(uVar23,uVar8) ^ 0x624607779057f46a) + *(longlong *)(lVar2 + -3000) ^ uVar29;
  uVar30 = CONCAT44(DAT_1826716d8,DAT_1826716d8);
  *(byte *)(*(ulonglong *)(DAT_182671560 - ((ulonglong)uVar7 ^ 0x6ad8a384)) ^ uVar29) =
       *(byte *)(lVar2 - (uVar25 ^ 0x9057f824)) ^ (byte)DAT_182671888 ^ (byte)DAT_1826717c0;
  lVar2 = DAT_182671560;
  puVar19 = (ulonglong *)
            (*(longlong *)(DAT_182671560 + -0xb98) + 0x18 +
            (CONCAT44(uVar7,uVar8) ^ 0x6ad8a86c9057f476) * 0x60);
  uVar29 = CONCAT44(_DAT_1826715f0,_DAT_1826715f0);
  *(ulonglong *)(DAT_182671560 + -0x690) = (ulonglong)puVar19 ^ uVar30;
  uVar10 = DAT_18267187c;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xf211f571)) = *puVar19 ^ uVar29 ^ uVar35;
  lVar2 = DAT_182671560;
  uVar30 = (uVar29 ^ *(ulonglong *)(DAT_182671560 + -0x670)) >> (((byte)uVar5 ^ 0xf0) & 0x3f) ^
           CONCAT44(uVar10,uVar10);
  uVar29 = (ulonglong)DAT_18267176c;
  bVar26 = (byte)uVar10 ^ (byte)DAT_182671840;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar30;
  *(byte *)(lVar2 - (uVar17 ^ 0x624606fe)) = bVar26 ^ (byte)uVar30;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xb08) =
       *(longlong *)(DAT_182671560 - (uVar25 ^ 0x9057ffce)) +
       (CONCAT44(uVar32,uVar18) ^ 0x62d08048f211f31c) ^ uVar29;
  *(undefined8 *)(lVar2 + -0x898) = 0x6031666255c25525;
  uVar11 = DAT_182671754;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar22 ^ 0xe3d298d0)) ^ uVar29) =
       *(byte *)(lVar2 - (uVar34 ^ 0x6ad8a9e5)) ^ (byte)DAT_182671840 ^ (byte)DAT_1826717c0;
  uVar12 = DAT_18267180c;
  uVar10 = DAT_182671730;
  puVar19 = (ulonglong *)(*(longlong *)(lVar2 + -0xb98) + 0x18);
  *(ulonglong *)(lVar2 + -0x128) = (ulonglong)puVar19 ^ CONCAT44(uVar11,uVar11);
  uVar30 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x318) = *puVar19 ^ uVar30 ^ uVar35;
  lVar2 = DAT_182671560;
  uVar29 = (ulonglong)DAT_18267166c;
  *(ulonglong *)(DAT_182671560 + -0x110) =
       (uVar30 ^ *(ulonglong *)(DAT_182671560 + -0x318)) >> (((byte)uVar32 ^ 0x78) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  bVar26 = (byte)DAT_182671648 ^ (byte)DAT_1826717c0;
  *(byte *)(lVar2 + -0x691) = (byte)uVar12 ^ (byte)DAT_182671648 ^ *(byte *)(lVar2 + -0x110);
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar22 ^ 0xe3d29e88)) =
       (CONCAT44(uVar5,uVar7) ^ 0xe3d293d86ad8a872) + *(longlong *)(DAT_182671560 + -3000) ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x62460107)) =
       CONCAT44(uVar8,uVar18) ^ 0x840142b1a08802 | 0xcd7b72884c197779;
  uVar30 = CONCAT44(DAT_182671804,DAT_182671804);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x6ad8a53c)) ^ uVar29) =
       bVar26 ^ *(byte *)(lVar2 + -0x691);
  uVar10 = DAT_18267174c;
  uVar13 = DAT_182671714;
  uVar12 = DAT_182671700;
  uVar6 = DAT_182671588;
  uVar29 = (ulonglong)DAT_182671588;
  puVar19 = (ulonglong *)
            ((CONCAT44(uVar23,uVar18) ^ 0x62460777f211f301) * 0x60 + 0x18 +
            *(longlong *)(lVar2 - ((ulonglong)uVar32 ^ 0x62d08bd0)));
  *(ulonglong *)(lVar2 + -0xd60) = (ulonglong)puVar19 ^ uVar30;
  lVar3 = DAT_182671560;
  uVar33 = ~uVar6;
  bVar31 = (byte)uVar33;
  *(ulonglong *)(lVar2 + -0xbf0) = *puVar19 ^ CONCAT44(uVar12,uVar12) ^ uVar35;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x898) = 0x81264abe935b935e >> ((bVar31 ^ 0xd) & 0x3f);
  uVar20 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0xbf0)) >> ((bVar31 ^ 0x23) & 0x3f) ^
           CONCAT44(uVar10,uVar10);
  uVar30 = (ulonglong)DAT_182671718;
  bVar27 = (byte)uVar10 ^ (byte)uVar13 ^ (byte)uVar20;
  DAT_182671590 = uVar33;
  *(int *)(lVar3 + -0x274) = *(int *)(lVar3 + -0x3d4) << ((bVar31 ^ 0x13) & 0x1f);
  *(ulonglong *)(lVar3 + -0x318) = uVar20;
  bVar26 = (byte)uVar13 ^ bVar27 ^ (byte)DAT_1826717c0;
  pbVar21 = (byte *)(*(longlong *)(lVar3 + -3000) + 0x1f);
  *(byte *)(lVar3 + -0x3a9) = bVar27;
  *(ulonglong *)(lVar3 + -0x1b8) = (ulonglong)pbVar21 ^ uVar30;
  *pbVar21 = bVar26;
  uVar10 = DAT_1826716f4;
  uVar34 = CONCAT44(uVar6,uVar6) ^ 0xea5677e4ea5677e4;
  uVar30 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar3 + -0x690) = uVar34 * 0x60 + *(longlong *)(lVar3 + -0xb98) + 0x20 ^ uVar30;
  uVar11 = _DAT_18267161c;
  *(ulonglong *)(lVar3 + -0x110) =
       CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0xa88) |
       uVar37 ^ *(ulonglong *)(lVar3 + -0x628);
  lVar2 = DAT_182671560;
  uVar20 = *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xea567174)) ^ uVar30) ^
           CONCAT44(uVar11,uVar11) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x670) = uVar20;
  bVar26 = (byte)DAT_182671630;
  uVar30 = (ulonglong)_DAT_1826715dc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar33 ^ 0x15a98083)) =
       (uVar20 ^ CONCAT44(uVar11,uVar11)) >> ((bVar31 ^ 0x1b) & 0x3f) ^
       CONCAT44(DAT_182671630,DAT_182671630);
  bVar27 = (byte)DAT_1826716dc ^ (byte)DAT_1826717c0;
  *(byte *)(lVar2 + -0x5b9) = bVar26 ^ (byte)DAT_1826716dc ^ *(byte *)(lVar2 + -0x898);
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar33 ^ 0x15a98f33)) =
       (CONCAT44(uVar6,uVar8) ^ 0xea5677e49057f456) + *(longlong *)(DAT_182671560 + -3000) ^ uVar30;
  *(byte *)(*(ulonglong *)(lVar2 + -0x728) ^ uVar30) = bVar27 ^ *(byte *)(lVar2 + -0x5b9);
  uVar10 = DAT_182671880;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0x62d08160)) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar6,uVar33) ^ 0xea5677e415a9881f) + uVar34 * 0xc) * 8 ^ CONCAT44(uVar13,uVar13);
  lVar2 = DAT_182671560;
  uVar20 = CONCAT44(DAT_1826717cc,DAT_1826717cc);
  *(ulonglong *)(DAT_182671560 + -0x318) =
       *(ulonglong *)
        (*(ulonglong *)(DAT_182671560 - (uVar17 ^ 0x6246065f)) ^ CONCAT44(uVar13,uVar13)) ^ uVar20 ^
       uVar35;
  lVar3 = DAT_182671560;
  uVar30 = (ulonglong)DAT_1826716d4;
  puVar19 = (ulonglong *)(DAT_182671560 + -0x318);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (CONCAT44(uVar5,uVar6) ^ 0xbd0c50910f93238e) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar6 ^ 0xea567c14)) ^ (byte)uVar12) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x62460dff)) =
       (uVar20 ^ *puVar19) >> ((byte)uVar32 & 0x3f) ^ CONCAT44(uVar10,uVar10);
  bVar26 = *(byte *)(lVar3 - (uVar24 ^ 0xf211f989)) ^ (byte)uVar10 ^ (byte)DAT_18267165c;
  *(ulonglong *)(lVar3 + -0x420) =
       (CONCAT44(uVar33,uVar18) ^ 0x15a9881bf211f320) + *(longlong *)(lVar3 + -3000) ^ uVar30;
  *(byte *)(lVar3 + -0xc42) = bVar26;
  uVar10 = _DAT_1826715e0;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar22 ^ 0xe3d297f8)) ^ uVar30) =
       bVar26 ^ (byte)DAT_1826717c0 ^ (byte)DAT_18267165c;
  uVar12 = DAT_182671788;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) +
            ((CONCAT44(uVar33,uVar33) ^ 0x15a9881b15a9881f) +
            (CONCAT44(uVar6,uVar8) ^ 0xea5677e49057f476) * 0xc) * 8);
  uVar30 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar3 + -0xd60) = (ulonglong)puVar19 ^ CONCAT44(uVar10,uVar10);
  uVar20 = *puVar19 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x110) = uVar20 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x898) = uVar20 >> (((byte)uVar7 ^ 0x7c) & 0x3f) ^ CONCAT44(uVar12,uVar12)
  ;
  uVar30 = (ulonglong)DAT_1826717f4;
  bVar26 = (byte)uVar12 ^ *(byte *)(lVar3 + -0x898) ^ (byte)DAT_182671688;
  *(ulonglong *)(lVar3 + -0xbf0) = CONCAT44(uVar18,uVar7) ^ 0xd1e9cb0b72d9d2bd;
  *(byte *)(lVar3 + -0x581) = bVar26;
  *(ulonglong *)(lVar3 + -0x4d0) =
       (CONCAT44(uVar18,uVar6) ^ 0xf211f301ea5677c6) + *(longlong *)(lVar3 + -3000) ^ uVar30;
  puVar36 = (ulonglong *)(lVar3 - (uVar25 ^ 0x9057f25e));
  bVar26 = (byte)DAT_1826717c0 ^ (byte)DAT_182671688;
  *puVar36 = 0x142c9d4f38d45761 >> (((byte)uVar11 ^ *(byte *)(lVar3 + -0x670)) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar3 + -0x4d0) ^ uVar30) = bVar26 ^ *(byte *)(lVar3 + -0x581);
  uVar10 = DAT_1826718cc;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb98) + (CONCAT44(uVar18,uVar7) ^ 0xf211f3016ad8a868) * 8);
  *(ulonglong *)(lVar3 + -0x690) = (ulonglong)puVar19 ^ CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x318) = *puVar19 ^ uVar35 ^ uVar25;
  *(ulonglong *)(lVar3 + -0xa88) =
       (CONCAT44(uVar33,uVar7) ^ 0x5e7dc9c29f32ccd5) <<
       ((*(byte *)(lVar3 + -0x898) ^ (byte)uVar12) & 0x3f);
  uVar18 = DAT_1826715ac ^ 0x102c310;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x6ad8a97c)) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x318)) >> ((bVar31 ^ 3) & 0x3f) ^ uVar37;
  uVar9 = DAT_1826715b4;
  uVar25 = (ulonglong)_DAT_182671838;
  uVar20 = (ulonglong)DAT_1826715b4;
  *(uint *)(lVar3 - (uVar29 ^ 0xea5674cc)) = uVar18 | 0x7eed34cf;
  uVar18 = DAT_182671594;
  *(byte *)(lVar3 + -0x28a) = (byte)DAT_182671750 ^ (byte)DAT_182671604 ^ *(byte *)(lVar3 + -0x110);
  uVar16 = uVar18 ^ uVar9;
  DAT_182671568 = uVar16;
  *(ulonglong *)(lVar3 + -0x950) =
       (CONCAT44(uVar16,uVar9) ^ 0xffffffff118e122c) + *(longlong *)(lVar3 + -3000) ^ uVar25;
  uVar29 = (ulonglong)uVar18;
  uVar30 = CONCAT44(DAT_1826717b8,DAT_1826717b8);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xee71e4a0)) ^ uVar25) =
       *(byte *)(lVar3 - ((ulonglong)uVar9 ^ 0x118e1085)) ^ (byte)DAT_1826717c0 ^
       (byte)DAT_182671604;
  uVar14 = DAT_182671764;
  uVar25 = (ulonglong)DAT_182671764;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xee71ecd8)) =
       *(longlong *)(lVar3 + -0xb98) +
       ((CONCAT44(uVar9,uVar18) ^ 0x118e120fee71edf4) +
       (CONCAT44(uVar16,uVar18) ^ 0xffffffffee71edf0) * 0xc) * 8 ^ uVar30;
  uVar11 = DAT_1826718b0;
  *(ulonglong *)(lVar3 + -0xbf0) =
       (CONCAT44(uVar16,uVar9) ^ 0x5e2e583196a4bf6b) << (((byte)uVar18 ^ 0xe3) & 0x3f);
  *(ulonglong *)(lVar3 + -0x670) =
       CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(*(ulonglong *)(lVar3 + -0x128) ^ uVar30) ^ uVar35;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x118e1427)) =
       (CONCAT44(uVar16,uVar18) ^ 0x646f4fe7afd7dc72) - (CONCAT44(uVar9,uVar9) ^ 0x9bfee042ac3bd0b7)
  ;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar18 ^ 0xee71e568)) =
       *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar16 ^ 0xfffff98f)) >> 0x20 ^ uVar25 ^
       CONCAT44(uVar11,uVar11);
  bVar26 = (byte)uVar11 ^ *(byte *)(lVar2 + -0x898) ^ (byte)DAT_182671884;
  uVar25 = (ulonglong)DAT_182671744;
  *(byte *)(lVar2 + -0x789) = bVar26;
  bVar26 = bVar26 ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671884;
  *(ulonglong *)(lVar2 + -0x780) =
       (CONCAT44(uVar9,uVar18) ^ 0x118e120fee71edd4) + *(longlong *)(lVar2 + -3000) ^ uVar25;
  uVar10 = DAT_1826717c8;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0xfffff87f)) ^ uVar25) = bVar26;
  lVar3 = DAT_182671560;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0xee71e090)) =
       *(longlong *)(lVar2 - ((ulonglong)uVar18 ^ 0xee71e668)) + 0x20 +
       (CONCAT44(uVar9,uVar16) ^ 0x118e120fffffffff) * 0x60 ^ uVar25;
  lVar2 = DAT_182671560;
  uVar30 = CONCAT44(DAT_182671660,DAT_182671660);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xee71e778)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0xd60) ^ uVar25) ^ uVar35 ^ uVar30;
  uVar20 = CONCAT44(DAT_1826716c8,DAT_1826716c8);
  bVar26 = (byte)DAT_1826716c8 ^ (byte)DAT_182671608;
  uVar30 = (uVar30 ^ *(ulonglong *)(lVar2 + -0xa88)) >> (((byte)uVar16 ^ 0xd7) & 0x3f) ^ uVar20;
  uVar25 = (ulonglong)DAT_182671768;
  *(ulonglong *)(lVar2 + -0x318) = uVar30;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x118e131f)) =
       CONCAT44(uVar16,uVar16) ^ uVar30 ^ uVar20 ^ 0xd06ede361fbab172;
  *(byte *)(lVar2 - (uVar24 ^ 0xf211f4a0)) = bVar26 ^ *(byte *)(lVar2 + -0x318);
  pbVar21 = (byte *)(*(longlong *)(lVar2 - (uVar29 ^ 0xee71e648)) +
                    (CONCAT44(uVar33,uVar9) ^ 0x15a9881b118e122a));
  *(ulonglong *)(lVar2 + -0x9e0) = (ulonglong)pbVar21 ^ uVar25;
  *(ulonglong *)(lVar2 + -0xbf0) =
       CONCAT44(uVar9,uVar23) ^ CONCAT44(uVar23,uVar32) ^ 0x43007ced7caf0f37;
  *pbVar21 = *(byte *)(lVar2 + -0x7a1) ^ (byte)DAT_1826717c0 ^ (byte)DAT_182671608;
  *(ulonglong *)(lVar2 + -0x690) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar5,uVar33) ^ 0xe3d293d815a9881f) +
       (CONCAT44(uVar6,uVar5) ^ 0xea5677e4e3d293d8) * 0xc) * 8 ^ uVar20;
  uVar10 = DAT_18267168c;
  *puVar36 = (CONCAT44(uVar7,uVar32) ^ 0x8131ded245210d29) + 0x8cddeb2a192b121d;
  uVar25 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(uVar20 ^ *(ulonglong *)(lVar2 + -0x690)) ^ uVar35 ^ uVar25;
  *(undefined1 *)(lVar2 + -0x429) = **(undefined1 **)(lVar2 + -0xc80);
  uVar29 = (uVar25 ^ *(ulonglong *)(lVar2 + -0x110)) >> ((bVar31 ^ 0x2b) & 0x3f);
  *(ulonglong *)(lVar2 + -0x318) = uVar29 ^ CONCAT44(uVar10,uVar10);
  *(byte *)(lVar2 + -0x429) =
       *(byte *)(lVar2 - (uVar17 ^ 0x6246046f)) ^ (byte)uVar10 ^ (byte)DAT_182671894;
  uVar25 = *(ulonglong *)(lVar2 + -0x898);
  *(ulonglong *)(lVar2 + -0x618) =
       (CONCAT44(uVar16,uVar8) ^ 0xffffffff9057f450) + *(longlong *)(lVar2 + -3000) ^
       (ulonglong)DAT_1826716e4;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x628) = (uVar25 ^ CONCAT44(uVar11,uVar11)) - uVar29;
  return;
}



############ FUN_ 180e55180 size=1127 ############

uint FUN_180e55180(void)

{
  byte *pbVar1;
  ulonglong *puVar2;
  undefined8 *puVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  int iVar10;
  byte bVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  
  bVar11 = (byte)DAT_18267175c;
  uVar9 = DAT_18267159c;
  uVar8 = DAT_182671598;
  uVar5 = DAT_182671570;
  uVar4 = DAT_182671568;
  puVar3 = DAT_182671560;
  uVar12 = DAT_182671570 << 0x10 | DAT_182671570 >> 0x10;
  uVar14 = DAT_182671598 ^ DAT_182671568;
  uVar17 = (ulonglong)DAT_1826716f4;
  uVar16 = (ulonglong)DAT_18267159c;
  DAT_18267158c = uVar12;
  DAT_1826715b0 = uVar14;
  DAT_182671560[-0x2e] = CONCAT44(uVar12,DAT_182671570) ^ 0x17fb9fbde9a6e1d5;
  puVar3[-0x59] = uVar17 ^ puVar3[-0x174];
  uVar15 = (ulonglong)DAT_1826717e4;
  puVar3[-0x174] = CONCAT44(uVar14,uVar4) ^ 0x50775bb6696bfd0c;
  *(ulonglong *)((longlong)puVar3 - (uVar16 ^ 0xbebfc789)) = uVar15 ^ puVar3[-0x33];
  puVar3[-0x33] = 0xb6d4ea3c77edd11a;
  uVar7 = DAT_182671584;
  uVar16 = (ulonglong)DAT_182671584;
  *(byte *)((longlong)puVar3 + -0x275) =
       *(byte *)(uVar15 ^ puVar3[-0x1a8]) ^ bVar11 ^ (byte)DAT_1826717b4;
  *(uint *)((longlong)puVar3 - ((ulonglong)uVar12 ^ 0x4953500d)) = uVar8 ^ 0xdc8f7b5c;
  *(uint *)((ulonglong)DAT_18267163c ^ puVar3[-0x11c]) = uVar8 ^ 0xf6b9a0ba;
  puVar3[-0x11c] = 0xcdd379fa407927d9;
  uVar6 = DAT_182671574;
  puVar3 = DAT_182671560;
  pbVar1 = (byte *)((longlong)DAT_182671560 + -0x275);
  puVar2 = DAT_182671560 + -0x59;
  DAT_182671560[-0x1a8] = CONCAT44(DAT_182671574,uVar9) ^ 0xaceb8fdb7b78bd18;
  *(byte *)(uVar17 ^ *puVar2) = bVar11 ^ *pbVar1;
  puVar3[-0x16b] = CONCAT44(uVar5,uVar6) ^ 0x1db7869f53f704f5;
  *(undefined1 *)((longlong)puVar3 + -0x275) = 0;
  puVar3[-0x19e] = CONCAT44(uVar7,uVar4) ^ 0xa5ae3c97940e51e0;
  *(ulonglong *)((longlong)DAT_182671560 - ((ulonglong)uVar9 ^ 0xbebfc989)) =
       CONCAT44(uVar8,uVar14) ^ 0xbce55c9f93a1c3c0;
  DAT_182671560[-0x57] = CONCAT44(uVar12,uVar4) ^ 0xc48fd9bb6877a5ed;
  uVar4 = DAT_1826715b4;
  DAT_182671560[-0x120] = CONCAT44(uVar9,uVar5) ^ 0x14e7e403a80e009d;
  *(ulonglong *)((longlong)DAT_182671560 - (uVar16 ^ 0x5f77a81c)) =
       CONCAT44(uVar8,uVar5) ^ 0x5202e89ffc2e4e50;
  iVar10 = DAT_1826715a4;
  DAT_182671560[-0x19] = 0xadd1b4019649da7e;
  DAT_182671560[-0x20] = 0x4cd5670a353b3e82;
  iVar13 = uVar4 - iVar10;
  DAT_1826715a8 = iVar13;
  DAT_182671560[-0x192] = CONCAT44(uVar4,iVar13) ^ 0x4b8ef60cc6d480f5;
  DAT_182671560[-0x146] = 0xbb49053c814b2605;
  DAT_182671560[-0x178] = 0x13686287816b11bd;
  DAT_182671560[-0x18c] = CONCAT44(iVar10,uVar4) ^ 0x9097e9be078d62fa;
  DAT_182671560[-0xdd] = CONCAT44(uVar4,iVar10) ^ 0x47d4ba68da2a7624;
  DAT_182671560[-0x175] = 0x55b56f329c1e68e;
  DAT_182671560[-0x119] = CONCAT44(iVar13,iVar10) ^ 0x617a3fedb59da28d;
  DAT_182671560[-0x53] = 0xcd8a153ffbbb4525;
  DAT_182671560[-0x31] = CONCAT44(uVar4,iVar10) ^ 0xc143a0c4d41937f;
  *(undefined8 *)((longlong)DAT_182671560 - ((ulonglong)uVar12 ^ 0x49535ec9)) = 0xb1b32ba011145426;
  DAT_182671560[-0x8f] = 0x2e3f6ca9e2c87848;
  *(ulonglong *)((longlong)DAT_182671560 - ((ulonglong)uVar14 ^ 0x8922472a)) =
       CONCAT44(iVar13,iVar13) ^ 0xb831834992fe368;
  DAT_182671560[-0xd1] =
       (CONCAT44(uVar8,uVar6) ^ 0xff04176312a772cf) << (((byte)uVar5 ^ 0x53) & 0x3f);
  *(ulonglong *)((longlong)DAT_182671560 - ((ulonglong)uVar8 ^ 0x5426f0e3)) =
       CONCAT44(uVar6,uVar12) ^ 0xa0fb794054469cba;
  if ((uint *)DAT_182671560[10] != (uint *)0x0) {
    *(uint *)DAT_182671560[10] = *(uint *)(DAT_182671560 + -200) ^ DAT_182671784;
  }
  *(undefined4 *)(DAT_182671560 + -200) = 0;
  DAT_182671558 = DAT_182671560 + 1;
  DAT_182671560 = (undefined8 *)*DAT_182671560;
  return uVar4 ^ 0xaabdaabc;
}



############ FUN_ 180ec0530 size=5178 ############

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

void FUN_180ec0530(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  byte bVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte local_a8;
  byte local_58;
  
  uVar7 = DAT_182671594;
  uVar8 = DAT_182671584;
  uVar6 = DAT_182671574;
  uVar4 = DAT_182671568;
  lVar2 = DAT_182671560;
  uVar18 = (ulonglong)DAT_182671574;
  uVar23 = (ulonglong)DAT_182671594;
  uVar26 = (ulonglong)DAT_182671568;
  uVar31 = (ulonglong)DAT_182671584;
  uVar24 = DAT_182671568 ^ DAT_182671574;
  uVar22 = DAT_182671584 * DAT_182671594;
  uVar13 = *(uint *)(&DAT_182611e70 + (uVar18 ^ 0x41e8b0c4) + (longlong)DAT_182671be4) ^
           DAT_182671568;
  uVar1 = *(uint *)(&DAT_182611e70 + (uVar23 ^ 0x421da53f) + (longlong)DAT_182671be4);
  uVar16 = (ulonglong)uVar22;
  uVar19 = CONCAT44(DAT_18267187c,DAT_18267187c);
  uVar17 = (ulonglong)uVar24;
  uVar30 = CONCAT44(DAT_1826717e4,DAT_1826717e4) ^ *(ulonglong *)(DAT_182671560 + -0xc08) ^
           *(ulonglong *)(DAT_182671560 + -0x628) ^ uVar19;
  uVar37 = CONCAT44(uVar24,DAT_182671594);
  DAT_1826715a0 = uVar24;
  DAT_1826715b0 = uVar22;
  *(ulonglong *)(DAT_182671560 + -0x600) = uVar30 ^ CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar5 = _DAT_1826715e0;
  *(ulonglong *)(lVar2 + -0x898) =
       (CONCAT44(uVar8,uVar22) ^ 0x88c2b993813fa3a4) - (uVar37 ^ 0x3732dacdc9a19e);
  bVar14 = (byte)uVar8;
  uVar37 = uVar30 >> ((bVar14 ^ 0xdf) & 0x3f);
  uVar27 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  *(ulonglong *)(lVar2 + -0x510) = uVar37 ^ CONCAT44(uVar5,uVar5);
  uVar5 = DAT_1826717a0;
  uVar30 = uVar30 << ((bVar14 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar2 + -0x638) = uVar30 ^ uVar27;
  uVar11 = DAT_182671714;
  uVar27 = CONCAT44(uVar5,uVar5);
  uVar30 = uVar30 | uVar37;
  uVar28 = uVar30 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x9e8) = uVar28;
  uVar5 = DAT_1826715f4;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x80) = (*(ulonglong *)(lVar2 + -0xc08) ^ uVar19) - uVar30 ^ uVar33;
  lVar3 = DAT_182671560;
  uVar37 = CONCAT44(uVar5,uVar5);
  uVar19 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(lVar2 + -0x1f0) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0x421da0e7)) ^ uVar19 ^ uVar37 ^ uVar27 ^ uVar28;
  uVar30 = CONCAT44(DAT_182671614,DAT_182671614);
  *(ulonglong *)(lVar3 + -0x548) =
       0x5aa354185f7bcc7f >> (((byte)DAT_182671754 ^ *(byte *)(lVar2 + -0x400)) & 0x3f);
  uVar5 = DAT_182671664;
  bVar15 = (byte)uVar6;
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 + -0x1f0) ^ uVar37) >> ((bVar15 ^ 0xf6) & 0x3f) ^ uVar30;
  *(uint *)(lVar3 + -0x374) = (uVar22 ^ 0x68682371) + (uVar4 ^ 0x8b420160);
  lVar2 = DAT_182671560;
  uVar27 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(DAT_182671560 + -0x3b8) =
       (*(ulonglong *)(DAT_182671560 - (uVar23 ^ 0x421da4df)) ^ uVar37) << ((bVar14 ^ 0xf9) & 0x3f)
       ^ uVar27;
  *(int *)(lVar2 - ((ulonglong)uVar8 ^ 0x4d678b8b)) =
       *(int *)(lVar2 - ((ulonglong)uVar4 ^ 0xd6021cd4)) << ((bVar14 ^ 0xe2) & 0x1f);
  uVar12 = _DAT_182671838;
  uVar5 = DAT_182671684;
  uVar32 = CONCAT44(DAT_1826716e0,DAT_1826716e0);
  uVar37 = *(ulonglong *)(lVar2 + -0x610) ^ uVar30 | *(ulonglong *)(lVar2 + -0x3b8) ^ uVar27;
  *(ulonglong *)(lVar2 + -0x628) = uVar37 ^ uVar32;
  uVar11 = DAT_182671728;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar30 = (uVar19 ^ *(ulonglong *)(lVar2 + -0x5c8)) - uVar37 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x898) = uVar30;
  uVar12 = DAT_182671898;
  uVar37 = CONCAT44(uVar11,uVar11);
  bVar36 = (byte)uVar7;
  uVar27 = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xd6021a0c)) ^
           *(ulonglong *)(lVar2 - (uVar16 ^ 0xaac63d51)) ^ CONCAT44(uVar5,uVar5) ^ uVar37 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x600) = uVar27;
  lVar2 = DAT_182671560;
  uVar19 = (uVar27 ^ uVar37) >> ((bVar36 ^ 0x39) & 0x3f);
  local_a8 = (byte)uVar24;
  *(ulonglong *)(DAT_182671560 + -0x510) = uVar19 ^ CONCAT44(uVar12,uVar12);
  uVar37 = (uVar27 ^ uVar37) << ((local_a8 ^ 0x4a) & 0x3f);
  uVar25 = CONCAT44(_DAT_182671868,_DAT_182671868);
  *(ulonglong *)(lVar2 + -0x638) = uVar37 ^ CONCAT44(DAT_1826717f4,DAT_1826717f4);
  uVar6 = DAT_1826718a0;
  uVar11 = DAT_182671818;
  uVar19 = uVar19 | uVar37;
  uVar37 = (ulonglong)DAT_1826718a0;
  uVar27 = uVar19 ^ uVar25;
  *(ulonglong *)(lVar2 + -0xc08) = uVar27;
  uVar5 = DAT_1826716e8;
  uVar38 = CONCAT44(uVar11,uVar11);
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x9e8) = (*(ulonglong *)(lVar2 + -0x80) ^ uVar33) - uVar19 ^ uVar38;
  uVar19 = CONCAT44(uVar5,uVar5);
  uVar30 = uVar27 ^ uVar29 ^ uVar25 ^ uVar28 ^ uVar30;
  *(ulonglong *)(lVar2 + -0x400) = uVar30;
  uVar37 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0x421da12f)) >> 0x20 ^ uVar37) >> 0xe;
  *(ulonglong *)(lVar2 + -0x548) = uVar37 ^ uVar19;
  uVar5 = _DAT_1826715f0;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar37 + 0x4d84ec75ea28e0bb;
  bVar21 = (byte)uVar4;
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar4 ^ 0xd6021cbc)) =
       (uVar30 ^ uVar29) << ((bVar21 ^ 0xbe) & 0x3f) ^ uVar37;
  lVar2 = DAT_182671560;
  uVar34 = CONCAT44(DAT_182671658,DAT_182671658);
  puVar20 = (ulonglong *)(DAT_182671560 + -0x400);
  uVar37 = *(ulonglong *)(DAT_182671560 - (uVar17 ^ 0x97eaac70)) ^ uVar37 |
           uVar19 ^ *(ulonglong *)(DAT_182671560 + -0x548);
  *(ulonglong *)(DAT_182671560 + -0x3b8) = uVar37 ^ uVar34;
  uVar5 = DAT_182671638;
  *(ulonglong *)(lVar2 + -0x5c8) = *puVar20 ^ uVar29 | uVar37;
  uVar27 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0xaac63d71)) =
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar28) - uVar37 ^ uVar27;
  uVar19 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  uVar30 = *(ulonglong *)(lVar2 + -0x628) ^ uVar19 ^ uVar38 ^ uVar32 ^
           *(ulonglong *)(lVar2 + -0x9e8);
  *(ulonglong *)(lVar2 + -0x600) = uVar30;
  uVar28 = (uVar30 ^ uVar19) >> ((bVar14 ^ 0xf3) & 0x3f);
  *(ulonglong *)(lVar2 + -0x510) = (uVar30 ^ uVar19) << 0x36;
  uVar5 = DAT_182671844;
  *(ulonglong *)(lVar2 + -0x638) = uVar28 ^ uVar32;
  uVar6 = DAT_182671584;
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x80) = (uVar30 ^ uVar19) << ((bVar36 ^ 0x1b) & 0x3f) ^ uVar37;
  *(uint *)(lVar2 + -0x274) = (uVar6 ^ 0x4490aa2a) + (uVar6 ^ 0x8b19df0b);
  uVar19 = CONCAT44(DAT_182671690,DAT_182671690);
  uVar28 = *(ulonglong *)(lVar2 - (uVar17 ^ 0x97eaaae0)) ^ uVar37 | uVar28;
  uVar30 = uVar28 ^ uVar19;
  uVar33 = CONCAT44(DAT_1826717c8,DAT_1826717c8);
  *(ulonglong *)(lVar2 + -0xc08) = uVar30;
  uVar5 = DAT_1826715d4;
  uVar25 = (uVar38 ^ *(ulonglong *)(lVar2 + -0x9e8)) - uVar28 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar25;
  lVar3 = DAT_182671560;
  uVar37 = CONCAT44(uVar5,uVar5);
  uVar19 = uVar30 ^ *(ulonglong *)(lVar2 + -0xa0) ^ uVar37 ^ uVar19 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x548) = uVar19;
  puVar20 = (ulonglong *)(lVar2 - (uVar17 ^ 0x97eaaf28));
  uVar30 = (uVar37 ^ *puVar20) >> ((bVar14 ^ 0xe6) & 0x3f);
  uVar37 = (uVar37 ^ uVar19) << ((bVar15 ^ 0xeb) & 0x3f);
  *(ulonglong *)(lVar3 + -0x610) = uVar30 ^ CONCAT44(DAT_182671880,DAT_182671880);
  uVar5 = DAT_182671848;
  *(ulonglong *)(lVar3 + -0x400) =
       (CONCAT44(uVar4,uVar22) ^ 0xfd36283013b38f90) + 0xa791e2cea1bae6b0;
  uVar11 = DAT_18267170c;
  *(ulonglong *)(lVar3 + -0x5c8) = uVar37 ^ CONCAT44(uVar5,uVar5);
  uVar5 = DAT_182671688;
  uVar32 = CONCAT44(uVar11,uVar11);
  uVar30 = uVar30 | uVar37;
  *(ulonglong *)(lVar3 + -0x898) = uVar30 ^ uVar32;
  uVar11 = DAT_1826716a8;
  uVar19 = CONCAT44(uVar5,uVar5);
  uVar37 = (*(ulonglong *)(lVar3 + -0xa0) ^ uVar27) - (*(ulonglong *)(lVar3 + -0xbf0) ^ uVar19);
  *(ulonglong *)(lVar3 + -0x628) = uVar37 ^ CONCAT44(DAT_182671678,DAT_182671678);
  uVar38 = CONCAT44(uVar11,uVar11);
  uVar30 = uVar37 - uVar30 ^ uVar38;
  *(ulonglong *)(lVar3 + -0x510) = uVar30;
  uVar5 = DAT_182671668;
  uVar37 = (CONCAT44(DAT_18267167c,DAT_18267167c) ^ *(ulonglong *)(lVar3 + -0x6d0)) +
           (CONCAT44(DAT_1826716b4,DAT_1826716b4) ^ *(ulonglong *)(lVar3 + -0x2a0));
  *(ulonglong *)(lVar3 + -0x600) = uVar37 ^ CONCAT44(DAT_182671620,DAT_182671620);
  uVar28 = CONCAT44(uVar5,uVar5);
  uVar29 = CONCAT44(DAT_182671700,DAT_182671700);
  *(ulonglong *)(lVar3 + -0x638) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x421dadb7)) ^ uVar32) - uVar37 ^ uVar28;
  uVar37 = CONCAT44(_DAT_18267188c,_DAT_18267188c);
  uVar25 = uVar29 ^ uVar33 ^ uVar34 ^ *(ulonglong *)(lVar3 + -0x3b8) ^ uVar25;
  *(ulonglong *)(lVar3 + -0x80) = uVar25;
  lVar2 = DAT_182671560;
  uVar27 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0x41e8b04c)) ^ uVar29) >> ((bVar21 ^ 0x8d) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar27 ^ uVar37;
  uVar5 = _DAT_1826715dc;
  uVar37 = CONCAT44(DAT_1826717e8,DAT_1826717e8);
  *(ulonglong *)(lVar2 + -0xc08) = (uVar29 ^ uVar25) << ((bVar36 ^ 0x30) & 0x3f) ^ uVar37;
  uVar11 = DAT_182671774;
  lVar3 = DAT_182671560;
  uVar29 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x400) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0xd60216a4)) ^ uVar37 | uVar27) ^ uVar29;
  uVar12 = DAT_182671718;
  uVar5 = DAT_182671704;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar37 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  *(ulonglong *)(lVar3 + -0x548) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x41e8b13c)) ^ uVar33) -
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0xd60219b4)) ^ uVar25) ^ uVar37;
  uVar11 = DAT_182671624;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar26 = CONCAT44(DAT_182671624,DAT_182671624);
  *(ulonglong *)(lVar3 + -0x610) =
       (uVar37 ^ *puVar20) - (*(ulonglong *)(lVar3 - (uVar18 ^ 0x41e8b4cc)) ^ uVar29) ^ uVar32;
  uVar37 = (ulonglong)DAT_1826715a4;
  uVar27 = (CONCAT44(uVar8,uVar8) ^ 0xb2987300b298730e) -
           (*(ulonglong *)(lVar3 - (uVar17 ^ 0x97eaacd8)) ^ CONCAT44(uVar5,uVar5));
  *(ulonglong *)(lVar3 + -0x5c8) = uVar27 ^ uVar26;
  uVar5 = DAT_182671894;
  puVar20 = (ulonglong *)(lVar3 - (uVar37 ^ 0x4d9c8562));
  uVar37 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  uVar27 = (uVar29 ^ *puVar20) + uVar27 ^ uVar37;
  uVar26 = CONCAT44(DAT_1826715d0,DAT_1826715d0);
  *(ulonglong *)(lVar3 + -0xa0) = uVar27;
  bVar14 = (byte)DAT_182671580;
  uVar27 = uVar26 ^ uVar37 ^ uVar30 ^ uVar38 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x628) = uVar27;
  uVar29 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x898) = (uVar26 ^ uVar27) >> ((bVar14 ^ 0xc) & 0x3f) ^ uVar29;
  uVar37 = CONCAT44(DAT_182671600,DAT_182671600);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x97eaa9d8)) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x4d678ad7)) ^ uVar26) << ((bVar36 ^ 0x14) & 0x3f) ^ uVar37
  ;
  uVar5 = DAT_1826717b4;
  uVar30 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar3 + -0x80) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x3b8) | uVar29 ^ *(ulonglong *)(lVar3 + -0x898)) ^ uVar30;
  uVar9 = DAT_182671878;
  uVar37 = (ulonglong)DAT_182671878;
  uVar27 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x9e8) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0xaac638c1)) ^ uVar38) -
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x4d678c7f)) ^ uVar30) ^ uVar27;
  uVar7 = DAT_18267157c;
  uVar6 = DAT_182671578;
  uVar26 = CONCAT44(uVar9,uVar9);
  uVar29 = (ulonglong)DAT_18267157c;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x421da927)) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671578 ^ 0x3f80849a)) ^ uVar26 ^ uVar32 ^ uVar28 ^
       *(ulonglong *)(lVar3 + -0x638);
  uVar34 = CONCAT44(DAT_182671648,DAT_182671648);
  uVar17 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar3 + -0x1f0) = (*(ulonglong *)(lVar3 + -0xc08) >> 0x20 ^ uVar37) >> 5 ^ uVar34;
  uVar37 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xf4812685)) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xc08)) << ((bVar36 ^ 0x34) & 0x3f) ^ uVar37;
  uVar28 = CONCAT44(DAT_18267172c,DAT_18267172c);
  uVar17 = *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x3f80837a)) ^ uVar34 |
           uVar37 ^ *(ulonglong *)(lVar3 + -0x548);
  uVar26 = CONCAT44(DAT_182671884,DAT_182671884);
  *(ulonglong *)(lVar3 + -0x400) = uVar17 ^ uVar28;
  *(ulonglong *)(lVar3 + -0xa0) = (uVar32 ^ *(ulonglong *)(lVar3 + -0x610)) - uVar17 ^ uVar34;
  uVar10 = DAT_1826715b4;
  puVar35 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826715b4 ^ 0xf400eba9));
  uVar37 = uVar26 ^ uVar28 ^ uVar27 ^ *puVar35 ^ *(ulonglong *)(lVar3 + -0x9e8);
  *(ulonglong *)(lVar3 + -0x628) = uVar37;
  uVar17 = CONCAT44(uVar7,DAT_1826715ac);
  uVar28 = CONCAT44(DAT_18267175c,DAT_18267175c);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x421da697)) =
       (uVar37 ^ uVar26) >> (((byte)DAT_1826715ac ^ 0x4a) & 0x3f) ^ uVar28;
  uVar5 = DAT_18267174c;
  uVar6 = DAT_182671588;
  *(ulonglong *)(lVar3 + -0x898) = uVar17 ^ 0x52063a05131b6cd5;
  uVar17 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x510) = (uVar26 ^ *(ulonglong *)(lVar3 + -0x628)) << 0x29 ^ uVar17;
  uVar9 = DAT_18267158c;
  uVar26 = (ulonglong)DAT_18267158c;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x421da317)) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x4d6789ef)) ^ uVar17 |
       uVar28 ^ *(ulonglong *)(lVar3 + -0x3b8)) ^ uVar19;
  uVar17 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xe45df712)) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0x30cd70e)) ^ uVar19 |
       CONCAT44(uVar22,uVar6) ^ 0xe497434ae227fe55;
  uVar12 = DAT_18267181c;
  uVar23 = CONCAT44(DAT_182671804,DAT_182671804);
  *(ulonglong *)(lVar3 + -0x1f0) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0xfb1aedb5)) ^ uVar27) -
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x638)) ^ uVar23;
  lVar2 = DAT_182671560;
  uVar37 = *(ulonglong *)(lVar3 - (uVar31 ^ 0x4d678c5f)) ^ uVar34 ^ uVar30 ^
           *(ulonglong *)(lVar3 + -0x80);
  *(ulonglong *)(lVar3 + -0x548) = uVar37 ^ CONCAT44(uVar12,uVar12);
  uVar5 = DAT_18267156c;
  uVar37 = uVar37 >> ((local_a8 ^ 0x48) & 0x3f);
  uVar17 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 + -0x610) = uVar37 ^ uVar25;
  *(ulonglong *)(lVar2 + -0x400) =
       (CONCAT44(DAT_182671598,uVar4) ^ 0x25f71d5a65aad8f7) <<
       ((*(byte *)(lVar2 - (uVar17 ^ 0x49028115)) ^ (byte)uVar12) & 0x3f);
  uVar17 = (*(ulonglong *)(lVar2 - (uVar18 ^ 0x41e8b584)) ^ CONCAT44(uVar12,uVar12)) <<
           ((bVar15 ^ 0xd4) & 0x3f);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar17 ^ CONCAT44(DAT_182671670,DAT_182671670);
  lVar2 = DAT_182671560;
  uVar18 = *(ulonglong *)(DAT_182671560 + -0xa0);
  *(ulonglong *)(DAT_182671560 + -0x628) =
       (CONCAT44(DAT_182671578,uVar10) ^ 0x646a22a8da97f8e9) + 0x6fb8c548a9804744;
  uVar17 = uVar17 | uVar37;
  *(uint *)(lVar2 + -0x754) = (DAT_182671580 ^ 0xf9f7c2dc) + *(int *)(lVar2 + -0x328);
  uVar12 = DAT_18267163c;
  *(ulonglong *)(lVar2 + -0x510) = uVar17 ^ uVar33;
  lVar3 = DAT_182671560;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0xaac63e69)) = (uVar34 ^ uVar18) - uVar17 ^ uVar37;
  uVar12 = DAT_182671770;
  uVar18 = *(ulonglong *)(lVar3 + -0x610);
  uVar17 = uVar23 ^ *(ulonglong *)(lVar2 + -0x510) ^ uVar33 ^ *(ulonglong *)(lVar2 + -0x1f0);
  uVar32 = (ulonglong)DAT_1826715ac;
  bVar15 = (byte)DAT_1826715ac;
  *(ulonglong *)(lVar2 + -0xc08) = uVar17 ^ CONCAT44(DAT_18267177c,DAT_18267177c);
  uVar28 = CONCAT44(uVar12,uVar12);
  bVar14 = (byte)DAT_1826715a4;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar17 >> ((bVar15 ^ 0x69) & 0x3f) ^ uVar28;
  uVar12 = DAT_1826716a0;
  *(ulonglong *)(lVar3 + -0x80) = (uVar25 ^ uVar18) >> ((bVar14 ^ 0x55) & 0x3f);
  uVar27 = CONCAT44(uVar12,uVar12);
  *puVar20 = uVar17 << ((bVar21 ^ 0xa0) & 0x3f) ^ uVar27;
  lVar2 = DAT_182671560;
  puVar20 = (ulonglong *)(DAT_182671560 + -0x1f0);
  uVar18 = CONCAT44(DAT_1826717a4,DAT_1826717a4);
  uVar17 = CONCAT44(DAT_182671790,DAT_182671790);
  *(ulonglong *)(DAT_182671560 + -0x548) =
       (uVar27 ^ *puVar35 | uVar28 ^ *(ulonglong *)(DAT_182671560 + -0x9e8)) ^ uVar18;
  uVar27 = CONCAT44(DAT_182671864,DAT_182671864);
  *(ulonglong *)(lVar2 + -0x628) =
       (uVar23 ^ *puVar20) - (*(ulonglong *)(lVar2 - (uVar16 ^ 0xaac63899)) ^ uVar18) ^ uVar17;
  uVar12 = DAT_1826717d4;
  uVar4 = DAT_18267159c;
  uVar18 = uVar19 ^ *(ulonglong *)(lVar2 + -0x3b8) ^ *(ulonglong *)(lVar2 + -0x638) ^ uVar27 ^
           uVar37;
  uVar16 = (ulonglong)DAT_18267159c;
  bVar21 = (byte)DAT_18267159c;
  *(ulonglong *)(lVar2 + -0x898) = uVar18;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x4080206c)) =
       (uVar18 ^ uVar27) >> ((bVar21 ^ 0xf5) & 0x3f) ^ uVar30;
  uVar23 = CONCAT44(DAT_182671890,DAT_182671890);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671578 ^ 0x3f80879a)) =
       (*(ulonglong *)(lVar2 + -0x898) ^ uVar27) << (((byte)uVar5 ^ 0x8d) & 0x3f) ^ uVar23;
  uVar5 = DAT_1826715c0;
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 + -0x510) ^ uVar23) - (uVar28 ^ *(ulonglong *)(lVar2 + -0x9e8));
  uVar19 = CONCAT44(DAT_18267189c,DAT_18267189c);
  uVar18 = (ulonglong)DAT_1826715a8;
  *(ulonglong *)(lVar2 + -0x80) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x30cd426)) ^ uVar23 |
       *(ulonglong *)(lVar2 + -0xa0) ^ uVar30) ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xfb1ae855)) =
       (*(ulonglong *)(lVar2 + -0x3b8) ^ uVar37) -
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x30cd1b6)) ^ uVar19) ^ CONCAT44(uVar5,uVar5);
  uVar6 = DAT_182671760;
  local_58 = (byte)uVar11;
  uVar37 = (ulonglong)DAT_182671760;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xfb1ae05d)) =
       (CONCAT44(uVar7,uVar4) ^ 0xef58aae8218a63d3) <<
       ((*(byte *)(lVar2 - (uVar31 ^ 0x4d678937)) ^ local_58) & 0x3f);
  uVar27 = CONCAT44(DAT_1826716b8,DAT_1826716b8);
  uVar17 = *(ulonglong *)(lVar2 + -0x628) ^ *(ulonglong *)(lVar2 + -0x80) ^ CONCAT44(uVar6,uVar6) ^
           uVar19 ^ uVar17;
  *(ulonglong *)(lVar2 + -0x1f0) = uVar17;
  uVar5 = _DAT_182671618;
  uVar23 = (uVar37 << 0x12 | (ulonglong)(uVar6 >> 0xe)) ^
           *(ulonglong *)(lVar2 - (uVar18 ^ 0xfb1ae5ad)) >> 0xe;
  uVar37 = CONCAT44(DAT_1826717e0,DAT_1826717e0);
  uVar18 = (ulonglong)DAT_182671570;
  *(ulonglong *)(lVar2 + -0x898) =
       (uVar17 ^ CONCAT44(uVar6,uVar6)) << (((byte)DAT_182671588 ^ 0x28) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar2 + -0x638) = uVar23 ^ uVar27;
  uVar17 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar2 + -0x9e8) = (uVar18 << 0x13 | (ulonglong)(uVar8 >> 0xd)) ^ 0x20a7aca4265c7;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x416086dc)) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0x49028cc5)) ^ uVar37 | uVar23) ^ CONCAT44(uVar5,uVar5);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar1 ^ uVar24) * 4) = uVar13;
  return;
}



############ FUN_ 180e856f0 size=5745 ############

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

void FUN_180e856f0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte local_res18;
  byte local_res20;
  byte local_110;
  byte local_108;
  byte local_e8;
  byte local_d8;
  byte local_a0;
  
  uVar12 = DAT_1826717e4;
  uVar11 = DAT_182671788;
  uVar10 = DAT_1826715b0;
  uVar7 = DAT_182671594;
  uVar6 = DAT_182671590;
  uVar5 = DAT_182671584;
  uVar4 = DAT_182671578;
  uVar3 = DAT_182671570;
  lVar1 = DAT_182671560;
  uVar43 = (ulonglong)DAT_182671570;
  uVar32 = (ulonglong)DAT_182671578;
  uVar29 = (ulonglong)DAT_182671584;
  DAT_182671588 = DAT_182671584 | DAT_1826715a0;
  uVar50 = DAT_182671570 ^ DAT_182671590;
  uVar34 = DAT_1826715b0 * DAT_182671578;
  DAT_18267159c =
       (DAT_1826715a4 << 0x10 | DAT_1826715a4 & 0xff00) << 8 | DAT_1826715a4 >> 8 & 0xff00 |
       DAT_1826715a4 >> 0x18;
  uVar24 = (ulonglong)DAT_182671594;
  DAT_18267158c =
       (DAT_182671594 << 0x10 | DAT_182671594 & 0xff00) << 8 | DAT_182671594 >> 8 & 0xff00 |
       DAT_182671594 >> 0x18;
  uVar45 = (ulonglong)DAT_18267158c;
  uVar15 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_182671594 ^ 0x10b30726) + (longlong)DAT_18267191c) ^
           DAT_18267158c;
  uVar16 = *(uint *)(&DAT_182611e80 + DAT_18267191c) ^ DAT_1826715a0;
  uVar30 = (ulonglong)DAT_1826715b0;
  uVar21 = CONCAT44(DAT_182671704,DAT_182671704);
  DAT_182671580 = uVar34;
  DAT_182671598 = uVar50;
  *(ulonglong *)(DAT_182671560 + -0x600) =
       (CONCAT44(DAT_182671588,DAT_1826715b0) ^ 0x625a5a0457d7b8a3) <<
       (((byte)DAT_182671704 ^ *(byte *)(DAT_182671560 + -0x318)) & 0x3f);
  uVar13 = DAT_1826717f4;
  uVar38 = CONCAT44(uVar11,uVar11);
  uVar44 = (ulonglong)uVar34;
  uVar51 = CONCAT44(DAT_1826718cc,DAT_1826718cc);
  *(ulonglong *)(lVar1 + -0x1f0) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar1 + -0x8a8)) -
       (*(ulonglong *)(lVar1 + -0x9f8) ^ uVar38) ^ uVar51;
  lVar2 = DAT_182671560;
  uVar28 = CONCAT44(uVar13,uVar13);
  uVar52 = CONCAT44(DAT_182671748,DAT_182671748);
  *(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x2e07b658)) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x72e14b3)) ^
       *(ulonglong *)(lVar1 - (uVar44 ^ 0xf2eef2dc)) ^ uVar52 ^ uVar28 ^ uVar38;
  uVar20 = DAT_18267156c;
  uVar39 = CONCAT44(DAT_18267176c,DAT_18267176c);
  uVar36 = (ulonglong)DAT_18267156c;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x72e182b)) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x548)) >> (((byte)uVar3 ^ 0xc2) & 0x3f) ^ uVar39;
  uVar17 = DAT_182671568;
  uVar38 = (ulonglong)DAT_182671568;
  uVar19 = DAT_182671568 & uVar20;
  DAT_18267157c = uVar19 ^ 0x860d3cc0;
  uVar33 = (ulonglong)DAT_18267157c;
  uVar29 = (uVar28 ^ *(ulonglong *)(lVar2 + -0x548)) << (((byte)DAT_18267157c ^ 0xfa) & 0x3f);
  uVar46 = CONCAT44(DAT_182671768,DAT_182671768);
  *(ulonglong *)(lVar2 + -0x628) = uVar29 ^ CONCAT44(DAT_182671600,DAT_182671600);
  uVar28 = (ulonglong)uVar6;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x280045a)) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0x898) | uVar29) ^ uVar46;
  uVar13 = DAT_18267179c;
  uVar40 = CONCAT44(DAT_18267179c,DAT_18267179c);
  uVar29 = CONCAT44(DAT_1826718c8,DAT_1826718c8);
  uVar49 = (ulonglong)uVar50;
  uVar39 = (uVar52 ^ *(ulonglong *)(lVar2 + -0x400)) -
           (*(ulonglong *)(lVar2 - (uVar28 ^ 0x28002a9)) ^ uVar40);
  *(ulonglong *)(lVar2 + -0x748) = uVar39 ^ uVar29;
  uVar11 = DAT_182671654;
  *(ulonglong *)(lVar2 + -0x800) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar50 ^ 0xcf56a815)) ^ uVar29 ^ 0xd1c6338fd194597c;
  uVar14 = DAT_18267184c;
  uVar12 = DAT_18267168c;
  uVar9 = DAT_1826715a4;
  uVar53 = CONCAT44(uVar11,uVar11);
  uVar42 = (ulonglong)DAT_18267184c;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x2800802)) =
       uVar39 - (uVar46 ^ *(ulonglong *)(lVar2 + -0x6d0)) ^ uVar53;
  uVar8 = DAT_18267159c;
  uVar37 = CONCAT44(DAT_1826718bc,DAT_1826718bc);
  uVar52 = (ulonglong)DAT_18267159c;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671588 ^ 0x57bfd41b)) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x510)) +
       (CONCAT44(uVar34,uVar50) ^ 0xccee9d55e5aee794) ^ uVar37;
  uVar11 = _DAT_18267161c;
  uVar31 = CONCAT44(DAT_182671808,DAT_182671808);
  puVar22 = (ulonglong *)(DAT_182671560 - (uVar52 ^ 0xcff48aab));
  *puVar22 = (uVar46 ^ *(ulonglong *)(DAT_182671560 + -0x6d0)) -
             (uVar37 ^ *(ulonglong *)(DAT_182671560 + -0xa0)) ^ uVar31;
  lVar1 = DAT_182671560;
  uVar39 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar9 ^ 0x138cf2df)) =
       CONCAT44(uVar11,uVar11) ^ uVar39 ^ *(ulonglong *)(DAT_182671560 + -0x1f0) ^ uVar51 ^
       *(ulonglong *)(DAT_182671560 + -0x9e8);
  uVar29 = uVar39 ^ *(ulonglong *)(lVar1 + -0x610);
  *(ulonglong *)(lVar1 + -0x270) = uVar29 + 0xd5435b89ade25e4e;
  local_res18 = (byte)uVar4;
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x10b302e6)) = uVar29 >> ((local_res18 ^ 0xf4) & 0x3f) ^ uVar51;
  uVar11 = DAT_182671664;
  uVar24 = CONCAT44(DAT_182671608,DAT_182671608);
  *(ulonglong *)(lVar1 - (uVar30 ^ 0xaac63621)) =
       (uVar39 ^ *(ulonglong *)(lVar1 + -0x610)) << (((byte)uVar9 ^ 0xff) & 0x3f) ^ uVar24;
  uVar12 = DAT_18267167c;
  uVar29 = CONCAT44(DAT_182671874,DAT_182671874);
  *(ulonglong *)(lVar1 + -0x240) =
       (uVar24 ^ *(ulonglong *)(lVar1 + -0xbf0) | uVar51 ^ *(ulonglong *)(lVar1 + -0x5c8)) ^ uVar29;
  uVar24 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xcdd6aa14)) =
       (*(ulonglong *)(lVar1 + -0x1f0) ^ uVar51) -
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar1 + -0xc08)) ^ uVar24;
  uVar11 = DAT_182671644;
  puVar23 = (ulonglong *)(lVar1 - (uVar38 ^ 0x3004372d));
  uVar46 = CONCAT44(DAT_18267181c,DAT_18267181c);
  *(ulonglong *)(lVar1 + -0x2a0) =
       (uVar24 ^ *(ulonglong *)(lVar1 + -0x1d8)) - (uVar29 ^ *puVar23) ^ uVar46;
  uVar4 = DAT_1826715a0;
  lVar1 = DAT_182671560;
  uVar39 = CONCAT44(uVar11,uVar11);
  uVar47 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar3 ^ 0xcdd6adcc)) =
       -(*(ulonglong *)(DAT_182671560 - (uVar45 ^ 0x2e07b598)) ^ uVar39) - 0x10 ^ uVar47;
  puVar25 = (ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x57b9c2b9));
  *(ulonglong *)(lVar1 + -0x318) =
       (uVar47 ^ *puVar25) - (CONCAT44(uVar5,uVar20) ^ 0xdd271f7e54c10886);
  uVar51 = CONCAT44(DAT_182671710,DAT_182671710);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0xcff484bb)) =
       (*(ulonglong *)(lVar1 - (uVar38 ^ 0x3004336d)) ^ uVar47) +
       (uVar29 ^ *(ulonglong *)(lVar1 + -0x240)) ^ uVar51;
  uVar29 = (ulonglong)DAT_18267162c;
  uVar24 = *(ulonglong *)(lVar1 + -0xa88);
  uVar48 = CONCAT44(DAT_18267162c,DAT_18267162c);
  uVar41 = *(ulonglong *)(lVar1 - (uVar30 ^ 0xaac63579)) ^ uVar48 ^ uVar51 ^ uVar53 ^ uVar24;
  uVar51 = CONCAT44(DAT_18267180c,DAT_18267180c);
  *(ulonglong *)(lVar1 + -0x9f8) = uVar41;
  uVar29 = uVar41 >> 0x20 ^ uVar29;
  *(ulonglong *)(lVar1 + -0x548) = uVar29 ^ uVar51;
  uVar11 = DAT_1826716b4;
  lVar2 = DAT_182671560;
  puVar35 = (ulonglong *)(lVar1 - (uVar32 ^ 0x1afb541c));
  uVar41 = (uVar48 ^ *puVar35) << (((byte)uVar9 ^ 0xef) & 0x3f);
  uVar51 = CONCAT44(DAT_182671668,DAT_182671668);
  *(ulonglong *)(DAT_182671560 + -0x898) = uVar41 ^ CONCAT44(DAT_1826715b8,DAT_1826715b8);
  *(ulonglong *)(lVar2 + -0x628) = (uVar29 | uVar41) ^ uVar51;
  lVar1 = DAT_182671560;
  uVar48 = CONCAT44(uVar11,uVar11);
  puVar26 = (ulonglong *)(DAT_182671560 - (uVar33 ^ 0x860d38c8));
  *puVar26 = (uVar53 ^ uVar24) - (*(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xcdd6ade4)) ^ uVar51) ^
             uVar48;
  uVar24 = CONCAT44(DAT_1826715e8,DAT_1826715e8);
  *(ulonglong *)(lVar1 - (uVar28 ^ 0x2800c91)) =
       uVar46 ^ uVar31 ^ *(ulonglong *)(lVar1 + -0x2a0) ^ uVar24 ^ *(ulonglong *)(lVar1 + -0x6b8);
  uVar24 = *(ulonglong *)(lVar1 + -0x800) ^ uVar24;
  local_res20 = (byte)uVar34;
  uVar29 = CONCAT44(DAT_182671888,DAT_182671888);
  local_e8 = (byte)uVar8;
  *(ulonglong *)(lVar1 + -0x748) = uVar24 >> ((local_res20 ^ 4) & 0x3f) ^ uVar29;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0x138cf21f)) =
       uVar24 << ((local_e8 ^ 0x33) & 0x3f) ^ uVar53;
  uVar11 = DAT_182671878;
  uVar8 = DAT_1826715c0;
  uVar41 = CONCAT44(DAT_18267165c,DAT_18267165c);
  uVar24 = (ulonglong)DAT_1826715c0;
  uVar29 = uVar53 ^ *(ulonglong *)(lVar1 + -0x6d0) | *(ulonglong *)(lVar1 + -0x748) ^ uVar29;
  uVar54 = uVar29 ^ uVar41;
  *(ulonglong *)(lVar1 + -0x9e8) = uVar54;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar53 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 + -0x270) =
       (*(ulonglong *)(lVar1 - (uVar38 ^ 0x300437cd)) ^ uVar46) - uVar29 ^ uVar31;
  *(ulonglong *)(lVar1 - (uVar49 ^ 0xcf56aa95)) =
       uVar53 ^ uVar54 ^ uVar41 ^ uVar48 ^ *(ulonglong *)(lVar1 + -0x400);
  uVar11 = DAT_1826718ac;
  uVar29 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(ulonglong *)(lVar1 + -0xbf0) =
       (*(ulonglong *)(lVar1 - (uVar36 ^ 0x2800742)) >> 0x20 ^ uVar24) >> 0x1a ^ uVar29;
  uVar41 = CONCAT44(uVar11,uVar11);
  local_110 = (byte)(uVar7 >> 0x18);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x1afb5c14)) =
       (*(ulonglong *)(lVar1 + -0x5c8) ^ uVar53) << ((local_110 ^ 0x16) & 0x3f) ^ uVar41;
  lVar1 = DAT_182671560;
  uVar54 = CONCAT44(DAT_1826717c4,DAT_1826717c4);
  uVar24 = *(ulonglong *)(DAT_182671560 + -0x400);
  uVar29 = *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xcdd6a03c)) ^ uVar29 |
           *(ulonglong *)(DAT_182671560 + -0x1f0) ^ uVar41;
  puVar27 = (ulonglong *)(DAT_182671560 + -0x610);
  *(ulonglong *)(DAT_182671560 + -0x1d8) = uVar29 ^ uVar54;
  *(ulonglong *)(lVar1 + -0x318) = (*puVar27 >> 0x20 ^ uVar42) >> 0x1c;
  uVar46 = CONCAT44(DAT_182671860,DAT_182671860);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x1afb5fa4)) = (uVar48 ^ uVar24) - uVar29 ^ uVar46;
  *(uint *)(lVar1 + -0x3d4) =
       (DAT_18267159c ^ 0x507c1076) << ((byte)*(undefined4 *)(lVar1 - (uVar44 ^ 0xf2eefba8)) & 0x1f)
  ;
  uVar48 = CONCAT44(DAT_182671764,DAT_182671764);
  *(ulonglong *)(lVar1 - (uVar28 ^ 0x2800291)) =
       *(ulonglong *)(lVar1 + -0x628) ^ uVar48 ^ uVar31 ^ uVar51 ^ *(ulonglong *)(lVar1 + -0x270);
  *(ulonglong *)(lVar1 + -0x8a8) = ((ulonglong)uVar4 ^ 0x8da0e000) >> 0xd;
  uVar11 = DAT_1826717fc;
  uVar29 = CONCAT44(DAT_182671898,DAT_182671898);
  *(ulonglong *)(lVar1 + -0x9f8) =
       (*(ulonglong *)(lVar1 + -0x600) ^ uVar48) >> (((byte)uVar3 ^ 0xda) & 0x3f) ^ uVar29;
  uVar51 = CONCAT44(DAT_1826718a8,DAT_1826718a8);
  bVar18 = (byte)uVar4;
  *(ulonglong *)(lVar1 - (uVar44 ^ 0xf2eefe6c)) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar1 + -0x7b8)) ^ uVar51;
  uVar24 = (*(ulonglong *)(lVar1 + -0x600) ^ uVar48) << ((bVar18 ^ 0x93) & 0x3f);
  *(ulonglong *)(lVar1 + -0x898) = uVar24 ^ CONCAT44(DAT_18267173c,DAT_18267173c);
  *(ulonglong *)(lVar1 + -0xa88) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar30 ^ 0xaac63981)) ^ uVar51) ^ uVar51;
  uVar42 = CONCAT44(DAT_18267177c,DAT_18267177c);
  *(ulonglong *)(lVar1 + -0x6b8) = (uVar24 | *(ulonglong *)(lVar1 + -0x9f8) ^ uVar29) ^ uVar42;
  *(ulonglong *)(lVar1 - (uVar49 ^ 0xcf56a75d)) =
       CONCAT44(uVar20,uVar50) ^ 0xecb24ccb8319a5ec | *(ulonglong *)(lVar1 + -0x5c8) ^ uVar53;
  uVar29 = CONCAT44(DAT_182671690,DAT_182671690);
  *(ulonglong *)(lVar1 + -0x748) =
       (uVar31 ^ *(ulonglong *)(lVar1 + -0x270)) - (uVar42 ^ *(ulonglong *)(lVar1 + -0x6b8)) ^
       uVar29;
  *(ulonglong *)(lVar1 + -0x6d0) = *puVar22 ^ *(ulonglong *)(lVar1 + -0x240) ^ uVar42;
  uVar31 = *(ulonglong *)(lVar1 + -0x6d0) ^ uVar46;
  *(ulonglong *)(lVar1 + -0x2a0) = CONCAT44(uVar19,uVar17) ^ 0xa0d1bdcb465aad0d;
  uVar17 = DAT_182671670;
  uVar24 = uVar31 >> ((local_110 ^ 0x3e) & 0x3f);
  local_108 = (byte)uVar7;
  *(ulonglong *)(lVar1 + -0x9e8) = uVar24 ^ CONCAT44(DAT_182671604,DAT_182671604);
  lVar1 = DAT_182671560;
  uVar31 = uVar31 << ((local_108 ^ 0x3c) & 0x3f);
  uVar42 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar31 ^ uVar42;
  uVar53 = CONCAT44(DAT_1826717b4,DAT_1826717b4);
  *(ulonglong *)(lVar1 - (uVar43 ^ 0xcdd6aa3c)) = (uVar31 | uVar24) ^ uVar53;
  *(uint *)(lVar1 + -0x274) = (DAT_1826715a4 ^ 0x1a7bd21a) + *(int *)(lVar1 + -0x874);
  uVar11 = DAT_1826716a8;
  uVar24 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(lVar1 + -0x610) =
       (*(ulonglong *)(lVar1 + -0x240) ^ uVar46) - (*(ulonglong *)(lVar1 + -0x1f0) ^ uVar53) ^
       uVar24;
  uVar46 = CONCAT44(uVar11,uVar11);
  puVar27 = (ulonglong *)(lVar1 - (uVar49 ^ 0xcf56ac45));
  uVar49 = CONCAT44(DAT_1826716f4,DAT_1826716f4);
  *puVar27 = *(ulonglong *)(lVar1 - (uVar38 ^ 0x30043225)) ^ uVar46 ^ *(ulonglong *)(lVar1 + -0x1d8)
             ^ uVar29 ^ uVar54;
  *(ulonglong *)(lVar1 + -0x400) =
       (uVar46 ^ *(ulonglong *)(lVar1 + -0x318)) >> ((bVar18 ^ 0xb5) & 0x3f) ^ uVar49;
  uVar17 = DAT_182671588;
  *(ulonglong *)(lVar1 + -0x628) =
       *(ulonglong *)(CONCAT44(DAT_182671800,DAT_182671800) ^ *(ulonglong *)(lVar1 + -0x178)) ^
       uVar51;
  lVar1 = DAT_182671560;
  uVar31 = CONCAT44(DAT_182671688,DAT_182671688);
  *(ulonglong *)(DAT_182671560 - (uVar43 ^ 0xcdd6a364)) =
       (*puVar27 ^ uVar46) << (((byte)uVar17 ^ 0x8f) & 0x3f) ^ uVar31;
  uVar46 = CONCAT44(DAT_1826715ec,DAT_1826715ec);
  *(ulonglong *)(lVar1 + -0x548) =
       (uVar49 ^ *(ulonglong *)(lVar1 + -0x400) | *(ulonglong *)(lVar1 + -0x8a8) ^ uVar31) ^ uVar46;
  *(ulonglong *)(lVar1 - (uVar33 ^ 0x860d3ac8)) =
       (CONCAT44(uVar7,uVar20) ^ 0x3b3797f43d980518) >> ((bVar18 ^ 0x81) & 0x3f);
  uVar11 = DAT_1826717e8;
  uVar31 = CONCAT44(DAT_1826717d8,DAT_1826717d8);
  *(ulonglong *)(lVar1 + -0xa88) =
       (*(ulonglong *)(lVar1 - (uVar28 ^ 0x28003d9)) ^ uVar29) -
       (*(ulonglong *)(lVar1 + -0x548) ^ uVar46) ^ uVar31;
  uVar43 = CONCAT44(uVar11,uVar11);
  uVar29 = *(ulonglong *)(lVar1 + -0x610) ^ *(ulonglong *)(lVar1 + -0x548) ^ uVar43 ^ uVar46 ^
           uVar24;
  uVar46 = CONCAT44(DAT_182671694,DAT_182671694);
  *(ulonglong *)(lVar1 + -0x9f8) = uVar29;
  local_a0 = (byte)uVar5;
  *(ulonglong *)(lVar1 + -0x898) = (uVar29 ^ uVar43) >> ((local_a0 ^ 0xaa) & 0x3f) ^ uVar46;
  uVar28 = (*(ulonglong *)(lVar1 - (uVar52 ^ 0xcff485eb)) ^ uVar43) << 0x27;
  *(ulonglong *)(lVar1 + -0x5c8) = uVar28 ^ uVar39;
  *(ulonglong *)(lVar1 + -0x800) = CONCAT44(uVar4,uVar7) ^ uVar29 ^ uVar43 ^ 0xd65dfa7123b031f3;
  uVar11 = DAT_182671824;
  uVar28 = *(ulonglong *)(lVar1 - (uVar30 ^ 0xaac63549)) ^ uVar46 | uVar28;
  *(ulonglong *)(lVar1 + -0x270) = uVar28 ^ CONCAT44(DAT_182671890,DAT_182671890);
  *(ulonglong *)(lVar1 + -0x6b8) =
       CONCAT44(uVar5,uVar34) ^ *(ulonglong *)(lVar1 + -0x628) ^ 0xaf6a8421dd436585;
  uVar46 = CONCAT44(DAT_182671678,DAT_182671678);
  uVar24 = (*(ulonglong *)(lVar1 + -0x610) ^ uVar24) -
           (*(ulonglong *)(lVar1 - (uVar52 ^ 0xcff48fab)) ^ CONCAT44(uVar11,uVar11));
  uVar43 = CONCAT44(DAT_182671708,DAT_182671708);
  *(ulonglong *)(lVar1 + -0x2a0) = uVar24 ^ uVar46;
  uVar12 = DAT_182671884;
  *(ulonglong *)(lVar1 + -0x6d0) = uVar24 - uVar28 ^ uVar43;
  uVar11 = DAT_1826716ec;
  uVar30 = CONCAT44(uVar12,uVar12);
  uVar24 = (CONCAT44(uVar50,uVar3) ^ 0x2f80db9f50b68e19) + (*(ulonglong *)(lVar1 + -0x638) ^ uVar40)
  ;
  *(ulonglong *)(lVar1 + -0x9e8) = uVar24 ^ uVar30;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0xbf0) = uVar28 - uVar24 ^ uVar40;
  *puVar23 = *(ulonglong *)(lVar1 - (uVar45 ^ 0x2e07b998)) ^ *(ulonglong *)(lVar1 + -0x1f0) ^ uVar29
             ^ uVar31 ^ uVar53;
  *(ulonglong *)(lVar1 + -0x1d8) =
       (*(ulonglong *)(lVar1 + -0x2a0) ^ uVar46) + *(longlong *)(lVar1 + -0x6b8);
  uVar29 = *(ulonglong *)(lVar1 + -0x240) ^ uVar29;
  uVar28 = uVar29 >> (((byte)uVar50 ^ 0x7c) & 0x3f);
  uVar20 = DAT_18267159c ^ 0x827c0d89;
  uVar29 = uVar29 << 0x1f;
  uVar17 = DAT_182671588 ^ 0x67257e17;
  *(ulonglong *)(lVar1 + -0x318) = uVar28 ^ CONCAT44(DAT_182671844,DAT_182671844);
  *(uint *)(lVar1 + -0x910) = uVar17 + uVar20;
  uVar11 = _DAT_1826715dc;
  lVar2 = DAT_182671560;
  uVar28 = uVar29 | uVar28;
  *(ulonglong *)(lVar1 + -0x400) = uVar29 ^ uVar47;
  uVar24 = CONCAT44(DAT_18267166c,DAT_18267166c);
  *(ulonglong *)(lVar2 + -0x8a8) = uVar28 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x600) =
       (*(ulonglong *)(lVar2 + -0xa88) ^ uVar31) - (uVar37 ^ *(ulonglong *)(lVar2 + -0xa0)) ^ uVar24
  ;
  lVar1 = DAT_182671560;
  local_d8 = (byte)uVar13;
  uVar31 = CONCAT44(DAT_1826715e4,DAT_1826715e4);
  *(ulonglong *)(DAT_182671560 + -0x748) =
       (*(ulonglong *)(DAT_182671560 - (uVar33 ^ 0x860d3520)) ^ uVar30) >>
       ((*(byte *)(lVar2 - (uVar32 ^ 0x1afb5614)) ^ local_d8) & 0x3f);
  *(ulonglong *)(lVar1 + -0x548) = (*puVar25 ^ uVar24) - uVar28 ^ uVar31;
  uVar24 = (ulonglong)DAT_1826715a4;
  uVar29 = CONCAT44(DAT_182671630,DAT_182671630);
  *(ulonglong *)(lVar1 + -0x9f8) =
       (CONCAT44(uVar5,uVar50) ^ 0xf8d1ef4c30a950ac) -
       (CONCAT44(DAT_1826716d0,DAT_1826716d0) ^ *(ulonglong *)(lVar1 + -0xa60)) ^ uVar21;
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x138cfccf)) = (uVar21 ^ *puVar35) + uVar28 ^ uVar29;
  *(ulonglong *)(lVar1 - (uVar44 ^ 0xf2eef3bc)) =
       *(ulonglong *)(lVar1 + -0x800) ^ *(ulonglong *)(lVar1 + -0x6d0) ^ uVar29 ^ uVar43 ^ uVar48;
  uVar12 = DAT_1826718c4;
  *(ulonglong *)(lVar1 + -0x628) =
       CONCAT44(uVar19,uVar19) ^ 0x75dd3a711099e83e | uVar39 ^ *(ulonglong *)(lVar1 + -0x5c8);
  uVar11 = DAT_182671778;
  uVar28 = ((ulonglong)DAT_182671764 << 0x1b | (ulonglong)(DAT_182671764 >> 5)) ^
           *(ulonglong *)(lVar1 + -0x898) >> 5;
  *(ulonglong *)(lVar1 + -0x610) = uVar28 ^ CONCAT44(uVar12,uVar12);
  uVar44 = CONCAT44(uVar11,uVar11);
  uVar24 = (*(ulonglong *)(lVar1 - (uVar36 ^ 0x2800a12)) ^ uVar48) << (((byte)uVar6 ^ 0xaa) & 0x3f);
  uVar21 = uVar24 ^ uVar44;
  *(ulonglong *)(lVar1 + -0x270) = uVar21;
  uVar28 = uVar28 | uVar24;
  *(ulonglong *)(lVar1 + -0x1f0) = CONCAT44(uVar4,uVar10) ^ uVar21 ^ uVar44 ^ 0x5c3b110da0e2667;
  uVar13 = DAT_1826718a0;
  *(ulonglong *)(lVar1 + -0x1d8) = uVar28 ^ CONCAT44(DAT_182671734,DAT_182671734);
  uVar24 = (*(ulonglong *)(lVar1 - (uVar52 ^ 0xcff48ac3)) ^ uVar43) - uVar28 ^
           CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar24;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826715b4 ^ 0x12330704)) =
       (CONCAT44(uVar34,uVar6) ^ 0x406687638a157392) << (((byte)uVar24 ^ (byte)uVar13) & 0x3f);
  uVar21 = CONCAT44(DAT_182671640,DAT_182671640);
  *(ulonglong *)(lVar1 - (uVar45 ^ 0x2e07b150)) =
       *(ulonglong *)(lVar1 - (uVar38 ^ 0x30043025)) ^ uVar40 ^ uVar21 ^ uVar31 ^
       *(ulonglong *)(lVar1 + -0xbf0);
  uVar12 = DAT_182671784;
  uVar11 = DAT_18267160c;
  uVar21 = uVar21 ^ *(ulonglong *)(lVar1 + -0x240);
  uVar24 = CONCAT44(DAT_1826716dc,DAT_1826716dc);
  *(ulonglong *)(lVar1 + -0x318) = uVar21 >> ((local_e8 ^ 0x36) & 0x3f) ^ uVar24;
  uVar38 = CONCAT44(uVar11,uVar11);
  *puVar26 = uVar21 << 0x1b ^ uVar38;
  uVar38 = uVar38 ^ *(ulonglong *)(lVar1 + -0x400) | uVar24 ^ *(ulonglong *)(lVar1 + -0x318);
  uVar24 = uVar38 ^ uVar41;
  *(ulonglong *)(lVar1 + -0xa88) = uVar24;
  uVar11 = DAT_182671880;
  uVar21 = uVar24 ^ CONCAT44(uVar13,uVar13) ^ uVar42 ^ uVar41 ^ *(ulonglong *)(lVar1 + -0x6b8);
  *(ulonglong *)(lVar1 + -0x600) = uVar21;
  uVar24 = (ulonglong)DAT_182671670;
  uVar17 = DAT_182671670 >> 0x17;
  *(ulonglong *)(lVar1 + -0x748) =
       (uVar31 ^ *(ulonglong *)(lVar1 + -0x548)) - uVar38 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x1afb554c)) =
       ((ulonglong)uVar17 | uVar24 << 9) ^ uVar21 >> 0x17 ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar16 * 4) = uVar15;
  return;
}



############ FUN_ 180f01650 size=4058 ############

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

void FUN_180f01650(void)

{
  longlong *plVar1;
  uint uVar2;
  uint uVar3;
  longlong lVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint *puVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  byte *pbVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte bVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint *puVar28;
  uint uVar29;
  
  uVar11 = DAT_1826717a4;
  uVar14 = DAT_182671750;
  uVar19 = DAT_1826716ec;
  uVar2 = DAT_18267158c;
  uVar15 = DAT_182671580;
  lVar4 = DAT_182671560;
  uVar29 = DAT_182671580 | DAT_18267158c;
  uVar3 = *(uint *)(&DAT_182611e78 + DAT_1826719bc);
  uVar10 = *(uint *)(&DAT_182611e70 +
                    ((ulonglong)DAT_182671580 ^ 0x3bfe2348) + (longlong)DAT_1826719bc) ^
           DAT_18267158c;
  uVar27 = (ulonglong)DAT_18267158c;
  uVar21 = DAT_182671750 & 0xff;
  uVar18 = (ulonglong)DAT_18267170c;
  plVar1 = (longlong *)(DAT_182671560 + -0x8f0);
  uVar17 = (ulonglong)DAT_1826716ec;
  DAT_182671578 = uVar29;
  *(uint *)(DAT_182671560 + -0x274) =
       *(uint *)(DAT_182671560 + -0x964) ^ DAT_1826717a4 ^ DAT_1826718a4;
  pbVar16 = (byte *)(*plVar1 + 0x1c + (CONCAT44(uVar15,uVar29) ^ 0x3bfe23583bfeb3dd) * 0x20);
  *(ulonglong *)(lVar4 + -0xbe8) = (ulonglong)pbVar16 ^ uVar18;
  *(byte *)(lVar4 - ((ulonglong)uVar29 ^ 0x3bfebf9c)) =
       *pbVar16 ^ (byte)uVar14 ^ (byte)DAT_182671694;
  bVar13 = (byte)uVar29;
  *(byte *)(*(ulonglong *)(lVar4 + -0x160) ^ uVar17) = bVar13 ^ 0x5b;
  uVar20 = DAT_182671820;
  uVar21 = *(byte *)(lVar4 - ((ulonglong)uVar2 ^ 0x2a7cbc8c)) ^ uVar21;
  *(uint *)(lVar4 + -0x328) = uVar21 ^ DAT_182671820;
  puVar12 = (uint *)(lVar4 - (uVar27 ^ 0x2a7cb2b9));
  *(int *)(lVar4 + -0x968) =
       (int)(*(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x3bfe212c)) ^ uVar11) >>
       (((byte)uVar2 ^ 0xd7) & 0x1f);
  *(uint *)(lVar4 + -0x754) = (*puVar12 ^ uVar11) + (uVar29 ^ 0x32099508) ^ DAT_182671718;
  *(uint *)(lVar4 - ((ulonglong)uVar29 ^ 0x3bfeb611)) =
       uVar21 << (((byte)uVar15 ^ 0x49) & 0x1f) ^ DAT_182671600;
  uVar14 = DAT_1826716a0;
  uVar21 = (*(uint *)(lVar4 + -0x754) ^ DAT_182671718) -
           (*(uint *)(lVar4 - ((ulonglong)uVar2 ^ 0x2a7cb501)) ^ DAT_182671600) ^ DAT_182671644;
  *(uint *)(lVar4 + -0x374) = uVar21;
  uVar21 = uVar21 ^ DAT_182671644;
  uVar11 = DAT_1826716bc ^ *(uint *)(lVar4 + -0x344);
  *(ulonglong *)(lVar4 + -0x270) =
       (CONCAT44(uVar2,uVar29) ^ 0x4f25fe2129a6947c) >> ((bVar13 ^ 0xcb) & 0x3f);
  uVar11 = uVar21 * uVar11 ^ DAT_182671894;
  *(uint *)(lVar4 + -0x874) = uVar11;
  uVar11 = uVar11 ^ DAT_182671894;
  *(uint *)(lVar4 + -0x27c) =
       (*(uint *)(lVar4 + -0x328) ^ uVar20) * (uVar15 ^ 0x3bfe2344) ^ DAT_182671734;
  uVar11 = (*(uint *)(lVar4 - ((ulonglong)uVar2 ^ 0x2a7cb2b1)) ^ DAT_182671734) + uVar11;
  *(uint *)(lVar4 + -0x678) = uVar11 ^ uVar14;
  *(ulonglong *)(lVar4 + -0xc08) =
       (CONCAT44(uVar2,uVar15) ^ 0x5b106b154e240c5e) + *(longlong *)(lVar4 + -0x6d0);
  uVar25 = DAT_182671764;
  lVar4 = DAT_182671560;
  uVar11 = uVar11 << (((byte)uVar15 ^ 0x55) & 0x1f);
  puVar28 = (uint *)(DAT_182671560 + -0x678);
  *(uint *)(DAT_182671560 + -0x47c) = uVar11 ^ DAT_182671764;
  uVar14 = (*puVar28 ^ uVar14) >> ((bVar13 ^ 0xce) & 0x1f) ^ DAT_18267166c;
  *(uint *)(lVar4 + -0x504) = uVar14;
  *(uint *)(lVar4 + -0x844) = (uVar11 | uVar14 ^ DAT_18267166c) ^ uVar19;
  uVar14 = DAT_182671574;
  uVar26 = (ulonglong)DAT_182671574;
  uVar23 = (ulonglong)DAT_1826717b0;
  uVar18 = CONCAT44(uVar2,DAT_182671574);
  *(uint *)(lVar4 + -0x964) =
       (*(uint *)(lVar4 - ((ulonglong)uVar29 ^ 0x3bfeb099)) ^ DAT_1826716bc) +
       (*(uint *)(lVar4 + -0x3c8) ^ DAT_182671624) ^ DAT_1826716ac;
  *(uint *)(lVar4 + -0x968) =
       *(uint *)(lVar4 - ((ulonglong)uVar2 ^ 0x2a7cb9a9)) ^ DAT_1826718ac ^ DAT_1826716ac;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x3bfe23f8)) =
       *(ulonglong *)(lVar4 + -0x600) ^ CONCAT44(uVar2,uVar15) ^ 0xedd3d771f91b628c;
  uVar21 = DAT_182671658;
  *(uint *)(lVar4 + -0x274) =
       *(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x3bfe2b1c)) ^ DAT_182671630 ^ uVar19;
  uVar11 = DAT_1826715a8;
  uVar17 = (ulonglong)DAT_182671594;
  *(ulonglong *)(lVar4 + -0xbf0) =
       (CONCAT44(uVar15,uVar2) ^ 0x8fcea5717ccf7068) << ((bVar13 ^ 0xe5) & 0x3f);
  *(uint *)(lVar4 + -0x754) = uVar21 ^ DAT_1826718ac ^ *(uint *)(lVar4 + -0x968);
  *(ulonglong *)(lVar4 + -0xa60) = *(ulonglong *)(lVar4 + -0x688) ^ *(ulonglong *)(lVar4 + -0x3b8);
  *(uint *)(lVar4 + -0x5cc) =
       *(uint *)(lVar4 - (uVar17 ^ 0x2894271)) ^ DAT_182671774 ^ DAT_182671630;
  uVar8 = DAT_182671588;
  lVar4 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0xb08) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar11 ^ 0x205c28ac)) +
       (uVar18 ^ 0x2a7cb0cd966b3d23) * 0x20 + (CONCAT44(uVar29,DAT_182671588) ^ 0x3bfeb3dd318dfcca)
       ^ uVar23;
  bVar5 = (byte)DAT_1826715c8;
  uVar9 = DAT_1826715b0;
  *(longlong *)(lVar4 - (uVar27 ^ 0x2a7cb6e5)) =
       *(longlong *)(lVar4 + -0x9f8) - *(longlong *)(lVar4 - (uVar27 ^ 0x2a7cb925));
  uVar2 = DAT_18267181c;
  bVar24 = (byte)uVar14;
  *(byte *)(lVar4 + -0xa51) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671584 ^ 0xa0069b40)) ^ uVar23) ^ bVar5 ^
       (byte)DAT_182671694;
  *(byte *)(*(ulonglong *)(lVar4 + -0x9b8) ^ (ulonglong)DAT_182671668) = bVar24 ^ 0x5e;
  uVar20 = DAT_1826715a4;
  uVar22 = (uint)(bVar5 ^ *(byte *)(lVar4 + -0xa51));
  uVar19 = (*(uint *)(lVar4 + -0x5cc) ^ DAT_182671774) + (uVar15 ^ 0x3209058d) ^ DAT_1826716cc;
  *(uint *)(lVar4 + -0x328) = uVar19;
  uVar19 = uVar19 ^ DAT_1826716cc;
  *(uint *)(lVar4 + -0x374) = uVar22 ^ uVar2;
  uVar22 = uVar22 << 0x11 ^ DAT_182671794;
  *(uint *)(lVar4 + -0x874) = uVar22;
  lVar6 = DAT_182671560;
  uVar19 = uVar19 - (uVar22 ^ DAT_182671794) ^ DAT_182671860;
  *(uint *)(lVar4 + -0x27c) = uVar19;
  uVar22 = (uVar19 ^ DAT_182671860) * (*(uint *)(lVar4 + -0x754) ^ uVar21) ^ DAT_182671828;
  *(uint *)(lVar4 + -0x678) = uVar22;
  uVar22 = uVar22 ^ DAT_182671828;
  *(uint *)(lVar6 + -0x47c) =
       (*(uint *)(lVar6 - ((ulonglong)uVar20 ^ 0xe1616ba9)) ^ uVar2) * (DAT_182671590 ^ 0x80049007)
       ^ uVar25;
  uVar19 = DAT_182671634;
  lVar7 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x504) =
       (*(uint *)(lVar6 - ((ulonglong)uVar29 ^ 0x3bfeb7a1)) ^ uVar25) + uVar22 ^ DAT_182671634;
  uVar2 = DAT_182671570;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671598 ^ 0x745ea245)) =
       CONCAT44(uVar9,uVar15) ^ 0xb59ad82c6b8b572d | *(ulonglong *)(lVar7 + -0xa60);
  *(longlong *)(lVar7 + -0x240) = *(longlong *)(lVar7 + -0xa0) << 0x1c;
  uVar25 = (*(uint *)(lVar7 + -0x504) ^ uVar19) << ((bVar13 ^ 0xd0) & 0x1f) ^ DAT_1826717b4;
  bVar5 = (byte)DAT_18267156c;
  *(uint *)(lVar7 + -0x344) = uVar25;
  uVar25 = uVar25 ^ DAT_1826717b4;
  *(uint *)(lVar7 + -0x964) =
       (*(uint *)(lVar7 + -0x504) ^ uVar19) >> ((bVar5 ^ 0x95) & 0x1f) ^ DAT_1826716e4;
  uVar17 = (ulonglong)DAT_18267159c;
  *(longlong *)(lVar7 + -0x800) =
       *(longlong *)(lVar7 - ((ulonglong)uVar11 ^ 0x205c2bac)) <<
       ((byte)*(undefined8 *)(lVar7 + -0x898) & 0x3f);
  uVar18 = (ulonglong)DAT_1826715ac;
  *(uint *)(lVar7 + -0x844) =
       (*(uint *)(lVar7 - (uVar17 ^ 0x7fffe69b)) ^ DAT_1826716e4 | uVar25) ^ DAT_18267175c;
  uVar25 = DAT_1826716d0;
  *(uint *)(lVar7 - ((ulonglong)uVar2 ^ 0xad96d7e)) =
       (*(uint *)(lVar7 - (uVar18 ^ 0x53a76b18)) ^ uVar21) +
       (*(uint *)(lVar7 + -0x3c8) ^ DAT_182671624) ^ DAT_18267176c;
  *puVar12 = DAT_18267185c ^ DAT_18267176c ^ *(uint *)(lVar7 + -0x968);
  uVar21 = *(uint *)(lVar7 - ((ulonglong)uVar2 ^ 0xad96c52)) ^ DAT_182671844 ^ DAT_18267175c;
  *(uint *)(lVar7 + -0x5cc) = uVar21;
  uVar19 = DAT_182671574;
  *(uint *)(lVar7 + -0x328) = *(uint *)(lVar7 + -0x274) ^ uVar25 ^ DAT_18267185c;
  uVar22 = DAT_182671744;
  *(uint *)(lVar7 + -0x874) = uVar21 ^ DAT_182671744 ^ DAT_182671844;
  uVar17 = (ulonglong)_DAT_18267161c;
  *(uint *)(lVar7 + -0x27c) = (uVar11 ^ 0x9e44ba31) + (uVar19 ^ 0x9f9c1bf6);
  uVar21 = DAT_182671698;
  *(ulonglong *)(lVar7 + -0xd50) =
       (CONCAT44(uVar9,uVar11) ^ 0x5ff96fb7205c205c) * 0x20 +
       (CONCAT44(uVar15,uVar8) ^ 0x3bfe2358318dfcdf) + *(longlong *)(lVar7 + -0x8f0) ^ uVar17;
  bVar5 = (byte)DAT_1826717bc;
  uVar15 = DAT_182671568;
  *(uint *)(lVar7 - (uVar18 ^ 0x53a76f38)) = -0x21d3b8df - (uVar2 ^ 0xb9fa92f6);
  bVar13 = (byte)DAT_1826715b4 ^ 0xd3;
  *(byte *)(lVar7 + -0x41) =
       *(byte *)(uVar17 ^ *(ulonglong *)(lVar7 + -0xd50)) ^ bVar5 ^ (byte)DAT_182671694;
  uVar2 = uVar15 + uVar19;
  uVar18 = (ulonglong)uVar2;
  DAT_1826715b4 = uVar2;
  *(byte *)(*(ulonglong *)(lVar7 - ((ulonglong)uVar20 ^ 0xe161611d)) ^ (ulonglong)DAT_182671714) =
       bVar13;
  puVar12 = (uint *)(lVar7 - ((ulonglong)uVar2 ^ 0x966b3b5a));
  *puVar12 = (bVar5 ^ *(byte *)(lVar7 + -0x41)) ^ uVar21;
  *(uint *)(lVar7 + -0x47c) =
       (*(uint *)(lVar7 - (uVar26 ^ 0x966b3557)) ^ uVar22) + (uVar15 ^ 0xf608d92a) ^ DAT_18267172c;
  *(uint *)(lVar7 + -0x504) =
       (*(uint *)(lVar7 + -0x678) ^ uVar21) << (((byte)uVar19 ^ 0x32) & 0x1f) ^ DAT_182671644;
  *(uint *)(lVar7 + -0x344) =
       (*(uint *)(lVar7 - ((ulonglong)uVar15 ^ 0xfffffb83)) ^ DAT_18267172c) -
       (*(uint *)(lVar7 - (uVar18 ^ 0x966b3826)) ^ DAT_182671644) ^ DAT_182671628;
  *(ulonglong *)(lVar7 + -0x548) = *(ulonglong *)(lVar7 + -0xbf0) >> 7;
  *(uint *)(lVar7 + -0x964) =
       (*(uint *)(lVar7 - (uVar26 ^ 0x966b3e67)) ^ DAT_182671628) *
       (*(uint *)(lVar7 + -0x328) ^ uVar25) ^ DAT_182671850;
  uVar23 = CONCAT44(uVar2,uVar14);
  uVar19 = (*puVar12 ^ uVar21) * 0x12 ^ DAT_18267167c;
  *(uint *)(lVar7 + -0x754) = uVar19;
  uVar14 = DAT_182671854;
  uVar19 = (*(uint *)(lVar7 - ((ulonglong)uVar15 ^ 0xfffff69b)) ^ DAT_182671850) +
           (uVar19 ^ DAT_18267167c);
  *(uint *)(lVar7 + -0x968) = uVar19 ^ DAT_182671854;
  puVar28 = (uint *)(lVar7 - ((ulonglong)uVar15 ^ 0xfffff7bb));
  *puVar28 = uVar19 * 0x2000 ^ DAT_1826717f0;
  *(ulonglong *)(lVar7 + -0x5c8) = (uVar23 ^ 0x29977403cebdd923) << ((bVar24 ^ 0x20) & 0x3f);
  uVar14 = (*(uint *)(lVar7 - ((ulonglong)uVar15 ^ 0xfffff697)) ^ uVar14) >>
           (((byte)uVar15 ^ 0xec) & 0x1f) ^ DAT_182671820;
  uVar17 = (ulonglong)DAT_1826717c0;
  *(uint *)(lVar7 + -0x274) = uVar14;
  uVar14 = uVar14 ^ DAT_182671820;
  *(byte *)(lVar7 + -0x909) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x528) ^ uVar17) ^ (byte)DAT_182671694;
  *(uint *)(lVar7 + -0x5cc) = (uVar14 | *(uint *)(lVar7 + -0x844) ^ DAT_1826717f0) ^ uVar22;
  uVar21 = DAT_1826716a8;
  *(uint *)(lVar7 + -0x27c) =
       (*(uint *)(lVar7 - ((ulonglong)uVar15 ^ 0xfffffcd7)) ^ uVar25) +
       (*(uint *)(lVar7 + -0x3c8) ^ DAT_182671624) ^ DAT_182671638;
  *(uint *)(lVar7 + -0x374) =
       *(uint *)(lVar7 - (uVar26 ^ 0x966b3f5f)) ^ DAT_182671638 ^ DAT_18267181c;
  *(uint *)(lVar7 + -0x874) = *(uint *)(lVar7 - (uVar18 ^ 0x966b38ee)) ^ DAT_1826717d8 ^ uVar22;
  *(ulonglong *)(lVar7 + -0x110) =
       *(ulonglong *)(lVar7 + -0x898) >>
       ((byte)*(undefined8 *)(lVar7 - ((ulonglong)uVar15 ^ 0xfffffdbf)) & 0x3f);
  *(uint *)(lVar7 - (uVar26 ^ 0x966b395f)) =
       *(uint *)(lVar7 - ((ulonglong)uVar15 ^ 0xfffffc8b)) ^ uVar21 ^ DAT_18267181c;
  uVar17 = (ulonglong)DAT_1826716b4;
  *(uint *)(lVar7 + -0x504) = *(uint *)(lVar7 + -0x874) ^ DAT_182671754 ^ DAT_1826717d8;
  *(undefined8 *)(lVar7 + -0x80) = *(undefined8 *)(lVar7 + -0xa88);
  bVar5 = (byte)DAT_1826715d0;
  uVar14 = DAT_182671574;
  pbVar16 = (byte *)((uVar23 ^ 0x966b3d22966b3d23) * 0x20 +
                     (CONCAT44(uVar15,uVar2) ^ 0xffffffff966b3d3f) + *(longlong *)(lVar7 + -0x8f0));
  *(ulonglong *)(lVar7 + -0x1b8) = (ulonglong)pbVar16 ^ uVar17;
  *(ulonglong *)(lVar7 + -0x510) =
       (CONCAT44(uVar9,uVar15) ^ 0x415d37f07477f5) << (((byte)uVar2 ^ 0x2b) & 0x3f);
  uVar25 = DAT_1826716f0;
  *(byte *)(lVar7 - (uVar26 ^ 0x966b3162)) = *pbVar16 ^ (byte)DAT_182671694 ^ bVar5;
  *(byte *)(*(ulonglong *)(lVar7 + -0x5d8) ^ (ulonglong)DAT_18267162c) = (byte)uVar14 ^ 5;
  uVar22 = *(uint *)(lVar7 + -0x504) ^ DAT_182671754;
  *(uint *)(lVar7 + -0x344) = (*(byte *)(lVar7 - ((ulonglong)uVar2 ^ 0x966b3163)) ^ bVar5) ^ uVar25;
  uVar11 = DAT_182671594;
  uVar19 = DAT_182671590;
  uVar17 = (ulonglong)DAT_182671590;
  *puVar12 = uVar22 + (uVar20 ^ 0xe8964e08) ^ DAT_182671750;
  uVar20 = *(uint *)(lVar7 + -0x678) ^ DAT_182671750;
  *(ulonglong *)(lVar7 + -0x3f0) = (CONCAT44(uVar15,uVar2) ^ 0x5864cdcf5a66a14) << 4;
  uVar15 = (*(uint *)(lVar7 - (uVar17 ^ 0x80049344)) ^ uVar25) << (((byte)uVar11 ^ 0x14) & 0x1f);
  *(uint *)(lVar7 + -0x964) = uVar15 ^ DAT_1826716b0;
  uVar22 = uVar20 - uVar15 ^ DAT_18267179c;
  *(uint *)(lVar7 + -0x754) = uVar22;
  uVar20 = DAT_1826717a0;
  uVar11 = DAT_182671798;
  uVar15 = DAT_18267157c;
  uVar8 = DAT_18267156c;
  uVar23 = (ulonglong)DAT_18267157c;
  *(uint *)(lVar7 + -0x968) =
       (uVar21 ^ *(uint *)(lVar7 + -0x47c)) * (uVar22 ^ DAT_18267179c) ^ DAT_182671798;
  uVar14 = (uVar25 ^ *(uint *)(lVar7 + -0x344)) * (uVar14 ^ 0x966b3d3e) ^ DAT_18267164c;
  uVar17 = CONCAT44(uVar8,DAT_1826715a0);
  *(ulonglong *)(lVar7 + -0x8a8) =
       ((ulonglong)uVar2 << 0x13 | (ulonglong)(uVar2 >> 0xd)) ^ 0x6b9a5400194ca;
  *puVar28 = uVar14;
  uVar14 = DAT_182671584;
  *(ulonglong *)(lVar7 - (uVar23 ^ 0x28941de)) =
       uVar17 ^ 0xc29bb181ba5dd04e | *(ulonglong *)(lVar7 + -0x638);
  uVar11 = (uVar11 ^ *(uint *)(lVar7 + -0x968)) + (*(uint *)(lVar7 + -0x844) ^ DAT_18267164c);
  *(uint *)(lVar7 + -0x274) = uVar11 ^ uVar20;
  *(uint *)(lVar7 + -0x328) =
       (*(uint *)(lVar7 - ((ulonglong)uVar14 ^ 0xa006923c)) ^ uVar20) <<
       (((byte)uVar14 ^ 0x45) & 0x1f) ^ DAT_18267175c;
  *(uint *)(lVar7 - ((ulonglong)DAT_18267159c ^ 0x7fffed83)) = uVar11 >> 0x13 ^ DAT_1826718c0;
  *(uint *)(lVar7 + -0x5cc) =
       (*(uint *)(lVar7 + -0x27c) ^ DAT_1826718c0 | *(uint *)(lVar7 + -0x328) ^ DAT_18267175c) ^
       DAT_182671694;
  uVar14 = (*(uint *)(lVar7 - (uVar18 ^ 0x966b3eea)) ^ DAT_182671624) +
           (uVar21 ^ *(uint *)(lVar7 + -0x47c)) ^ DAT_1826718bc;
  *(uint *)(lVar7 + -0x374) = uVar14;
  uVar14 = uVar14 ^ _DAT_1826715f0 ^ DAT_1826718bc;
  *(uint *)(lVar7 + -0x874) = uVar14;
  uVar11 = uVar14 ^ _DAT_1826715f0 ^ DAT_1826717b0;
  *(uint *)(lVar7 + -0x504) = DAT_182671598 ^ 0xeeffdf8f | 0xcefd5b8b;
  uVar14 = *(uint *)(lVar7 - (uVar26 ^ 0x966b38ef)) ^ DAT_1826715c4 ^ DAT_182671694;
  *(uint *)(lVar7 + -0x678) = uVar14;
  lVar4 = *(longlong *)(lVar7 - ((ulonglong)uVar2 ^ 0x966b37aa));
  *(uint *)(lVar7 + -0x754) = uVar14 ^ DAT_182671788 ^ DAT_1826715c4;
  *(ulonglong *)(lVar7 + -0x6b8) = lVar4 - (CONCAT44(uVar19,uVar15) ^ 0x8eb41ec78dd8262c);
  uVar17 = CONCAT44(uVar29,DAT_182671598);
  *(uint *)(lVar7 + -0x964) = uVar11;
  *(ulonglong *)(lVar7 - (uVar18 ^ 0x966b3c72)) =
       (uVar17 ^ 0x3bfeb3dd745eaad5) + *(longlong *)(lVar7 + -0x8f0) ^ (ulonglong)DAT_182671760;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar10 * 4) = uVar3 ^ uVar29;
  return;
}



############ FUN_ 180eeb550 size=3977 ############

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

void FUN_180eeb550(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  undefined8 uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte bVar16;
  uint *puVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  byte *pbVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint *puVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint uVar33;
  uint *puVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  
  uVar30 = DAT_1826716e8;
  uVar10 = DAT_1826715a8;
  uVar9 = DAT_1826715a0;
  uVar22 = DAT_182671590;
  uVar33 = DAT_182671584;
  lVar6 = DAT_182671560;
  uVar36 = (ulonglong)DAT_182671584;
  uVar26 = (ulonglong)DAT_182671590;
  uVar32 = (ulonglong)DAT_1826715a0;
  uVar35 = DAT_182671590 - DAT_182671584;
  uVar18 = DAT_1826715a0 & DAT_1826715a8;
  uVar3 = *(uint *)(&DAT_182611e70 +
                   ((ulonglong)DAT_182671584 ^ 0x88042018) + (longlong)DAT_18267197c);
  uVar37 = (ulonglong)uVar18;
  uVar13 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar18 ^ 0x46ab94de) + (longlong)DAT_18267197c) ^
           DAT_182671590;
  bVar5 = (byte)DAT_1826715a0;
  uVar24 = (ulonglong)DAT_1826715a8;
  uVar19 = (DAT_182671748 ^ *(uint *)(DAT_182671560 + -0x874)) +
           (DAT_1826717d8 ^ *(uint *)(DAT_182671560 + -0x344));
  DAT_18267157c = uVar35;
  DAT_1826715b0 = uVar18;
  *(uint *)(DAT_182671560 + -0x968) = uVar19 ^ DAT_1826716e8;
  *(uint *)(lVar6 - ((ulonglong)uVar10 ^ 0xfeaff7e6)) =
       uVar19 << ((bVar5 ^ 0xd2) & 0x1f) ^ DAT_182671794;
  uVar19 = DAT_182671674;
  *(uint *)(lVar6 - (uVar36 ^ 0x8804246c)) =
       (*(uint *)(lVar6 + -0x968) ^ uVar30) >> (((byte)uVar35 ^ 0xb4) & 0x1f) ^ DAT_182671674;
  *(longlong *)(lVar6 - ((ulonglong)uVar9 ^ 0x46eb9c9f)) =
       *(longlong *)(lVar6 - ((ulonglong)uVar10 ^ 0xfeaff6be)) <<
       ((byte)*(undefined8 *)(lVar6 - (uVar26 ^ 0xe6cd8e47)) & 0x3f);
  uVar14 = (ulonglong)uVar35;
  puVar28 = (uint *)(lVar6 - (uVar14 ^ 0x5ec961db));
  *(uint *)(lVar6 - (uVar37 ^ 0x46ab9102)) =
       (*(uint *)(lVar6 - ((ulonglong)uVar33 ^ 0x88042338)) ^ DAT_182671794 | uVar19 ^ *puVar28) ^
       DAT_182671758;
  uVar19 = DAT_182671624;
  uVar30 = DAT_182671644 ^ DAT_1826718b0;
  puVar1 = (uint *)(lVar6 + -0x844);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar22 ^ 0xe6cd807f)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar22 ^ 0xe6cd860f)) | *(ulonglong *)(lVar6 + -0xa88);
  puVar2 = (uint *)(lVar6 + -0x27c);
  uVar15 = (ulonglong)DAT_182671660;
  *puVar1 = (uVar19 ^ *(uint *)(lVar6 + -0x3c8)) + (DAT_182671708 ^ *puVar2) ^ DAT_1826718b0;
  uVar29 = (ulonglong)DAT_182671628;
  *(byte *)(lVar6 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x918) ^ uVar15) ^ (byte)DAT_182671694;
  uVar21 = DAT_182671800;
  puVar34 = (uint *)(lVar6 - ((ulonglong)uVar33 ^ 0x88042854));
  uVar30 = uVar30 ^ *puVar34;
  *(uint *)(lVar6 + -0x754) = uVar30;
  uVar19 = uVar30 ^ DAT_1826717a8 ^ DAT_182671644;
  *(uint *)(lVar6 + -0x3d4) =
       *(uint *)(lVar6 - (uVar24 ^ 0xfeaff102)) ^ DAT_182671840 ^ DAT_182671758;
  *(uint *)(lVar6 - ((ulonglong)uVar9 ^ 0x46eb9dab)) = uVar19;
  *(uint *)(lVar6 + -0x910) = *(uint *)(lVar6 + -0x3d4) ^ uVar21 ^ DAT_182671840;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x46ab9656)) =
       *(longlong *)(lVar6 + -0x8f0) + 0x13 + (CONCAT44(uVar10,uVar33) ^ 0xfeaff4ce88042010) * 0x20
       ^ uVar29;
  uVar19 = DAT_18267179c & 0xff;
  bVar16 = *(byte *)(*(ulonglong *)(lVar6 + -0x298) ^ uVar29) ^ (byte)DAT_18267179c ^
           (byte)DAT_182671694;
  *(byte *)(lVar6 + -0xc41) = bVar16;
  uVar20 = _DAT_182671868;
  uVar30 = DAT_182671784;
  lVar6 = DAT_182671560;
  puVar17 = (uint *)(DAT_182671560 + -0x910);
  *(uint *)(DAT_182671560 + -0x678) = bVar16 ^ uVar19 ^ DAT_182671784;
  uVar31 = (uVar21 ^ *puVar17) + (uVar35 ^ 0x573e4372) ^ DAT_1826715f4;
  *(uint *)(lVar6 + -0x504) = uVar31;
  lVar7 = DAT_182671560;
  uVar31 = uVar31 ^ DAT_1826715f4;
  uVar19 = (*(uint *)(lVar6 - ((ulonglong)uVar9 ^ 0x46eb98a7)) ^ uVar30) << ((bVar5 ^ 0xce) & 0x1f)
           ^ DAT_182671740;
  *(uint *)(DAT_182671560 + -0x344) = uVar19;
  *(uint *)(lVar7 + -0x874) = uVar31 - (uVar19 ^ DAT_182671740) ^ uVar20;
  lVar6 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - ((ulonglong)uVar33 ^ 0x880426c0)) =
       (CONCAT44(uVar35,uVar22) ^ 0x2595c1f1dddea491) +
       (CONCAT44(uVar9,uVar18) ^ 0xf6a63bc7ff57bebd);
  uVar19 = _DAT_1826715e0;
  bVar5 = (byte)uVar22;
  uVar20 = (*(uint *)(lVar6 - (uVar24 ^ 0xfeaff7ba)) ^ DAT_1826717a8) *
           (uVar20 ^ *(uint *)(lVar6 + -0x874)) ^ DAT_1826718cc;
  *(uint *)(lVar6 + -0x968) = uVar20;
  uVar20 = uVar20 ^ DAT_1826718cc;
  uVar30 = (uVar30 ^ *(uint *)(lVar6 + -0x678)) * 0x13 ^ DAT_182671624;
  *(uint *)(lVar6 + -0x328) = uVar30;
  *puVar28 = uVar20 + (uVar30 ^ DAT_182671624) ^ uVar19;
  uVar30 = DAT_1826717c8;
  lVar7 = DAT_182671560;
  *(uint *)(DAT_182671560 - (uVar37 ^ 0x46ab96b2)) =
       (*(uint *)(lVar6 + -0x47c) ^ uVar19) << ((bVar5 ^ 0xba) & 0x1f) ^ DAT_1826717c8;
  uVar15 = (ulonglong)DAT_182671858;
  *puVar34 = (*(uint *)(lVar7 + -0x47c) ^ uVar19) >> ((bVar5 ^ 0xa4) & 0x1f) ^ DAT_18267165c;
  uVar19 = DAT_1826718d4;
  uVar31 = (*puVar1 ^ DAT_18267165c | uVar30 ^ *puVar2) ^ DAT_1826718d4;
  *(uint *)(lVar7 + -0x5cc) = uVar31;
  uVar20 = DAT_182671710;
  uVar31 = uVar31 ^ DAT_182671720;
  uVar30 = (*(uint *)(lVar7 - ((ulonglong)uVar18 ^ 0x46ab97ba)) ^ DAT_1826717a8) +
           (*(uint *)(lVar7 - (uVar24 ^ 0xfeaff706)) ^ DAT_182671624) ^ DAT_1826715fc;
  *(uint *)(lVar7 + -0x754) = uVar30;
  *(uint *)(lVar7 + -0x3d4) = uVar30 ^ DAT_182671690 ^ DAT_1826715fc;
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x46eb9bdb)) = uVar31 ^ uVar19;
  uVar25 = *(uint *)(lVar7 + -0x3d4) ^ uVar20 ^ DAT_182671690;
  uVar31 = *(uint *)(lVar7 + -0x504) ^ DAT_182671728 ^ DAT_182671720;
  *(uint *)(lVar7 + -0x344) =
       (*(uint *)(lVar7 - ((ulonglong)uVar22 ^ 0xe6cd8ca7)) ^ uVar21) >>
       (((byte)*(undefined4 *)(lVar7 + -0x5cc) ^ (byte)uVar19) & 0x1f);
  *(uint *)(lVar7 + -0x874) = uVar25;
  *(uint *)(lVar7 + -0x678) = uVar31;
  bVar16 = (byte)DAT_1826717b0;
  *(ulonglong *)(lVar7 + -0x18) =
       *(longlong *)(lVar7 - (uVar26 ^ 0xe6cd8d47)) + (CONCAT44(uVar33,uVar35) ^ 0x880420105ec965b9)
       ^ uVar15;
  uVar30 = DAT_18267184c;
  uVar22 = DAT_182671570;
  uVar27 = (uVar31 ^ DAT_182671728) + (uVar35 ^ 0x573e4372);
  bVar12 = *(byte *)(*(ulonglong *)(lVar7 - (uVar32 ^ 0x46eb9ec7)) ^ uVar15) ^ bVar16 ^
           (byte)DAT_182671694;
  *(byte *)(lVar7 + -0x41) = bVar12;
  uVar31 = (uint)(bVar12 ^ bVar16);
  *(uint *)(lVar7 + -0x968) = uVar31 ^ uVar30;
  uVar19 = uVar27 ^ DAT_182671774;
  *(ulonglong *)(lVar7 + -0x800) =
       (CONCAT44(uVar18,uVar9) ^ 0x9d6ab89caa37578f) <<
       ((byte)*(undefined8 *)(lVar7 - ((ulonglong)uVar33 ^ 0x88042a98)) & 0x3f);
  *(uint *)(lVar7 + -0x328) = uVar19;
  uVar19 = DAT_1826715b4;
  uVar38 = (ulonglong)DAT_1826715b4;
  uVar21 = (*(uint *)(lVar7 - (uVar37 ^ 0x46ab9da6)) ^ uVar30) << (((byte)uVar33 ^ 1) & 0x1f) ^
           DAT_18267167c;
  uVar15 = (ulonglong)DAT_18267158c;
  *(uint *)(lVar7 + -0x47c) = uVar21;
  uVar30 = DAT_182671648;
  uVar27 = uVar27 - (uVar21 ^ DAT_18267167c);
  *puVar2 = uVar27 ^ DAT_182671648;
  *puVar1 = 0xe33470 <<
            (((byte)*(undefined4 *)(lVar7 - (uVar15 ^ 0xbb7feeb5)) ^ (byte)uVar30) & 0x1f);
  *(uint *)(lVar7 + -0x374) = (uVar25 ^ uVar20) * uVar27 ^ _DAT_1826715d8;
  *(uint *)(lVar7 + -0x754) = uVar31 * 0x1e ^ DAT_182671848;
  uVar11 = DAT_1826718c0;
  uVar31 = DAT_182671878;
  uVar30 = DAT_1826717d8;
  uVar21 = DAT_1826715a4;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar22 ^ 0xecc9b297)) =
       *(ulonglong *)(lVar7 - (uVar14 ^ 0x5ec96f2f)) | CONCAT44(uVar18,uVar19) ^ 0x3f61a62b62d213f0;
  uVar22 = (*(uint *)(lVar7 + -0x754) ^ DAT_182671848) +
           (*(uint *)(lVar7 + -0x374) ^ _DAT_1826715d8);
  *(uint *)(lVar7 + -0x5cc) = uVar22 ^ uVar30;
  uVar22 = uVar22 << (((byte)uVar33 ^ 0x1d) & 0x1f);
  *(uint *)(lVar7 + -0x910) = uVar22 ^ uVar31;
  puVar17 = (uint *)(lVar7 - ((ulonglong)uVar19 ^ 0xfffffa33));
  uVar33 = (uVar30 ^ *puVar17) >> (((byte)uVar21 ^ 0xa8) & 0x1f) ^ DAT_1826717bc;
  *(uint *)(lVar7 + -0x344) = uVar33;
  uVar22 = (uVar33 ^ DAT_1826717bc | uVar22) ^ uVar31;
  uVar33 = (uVar20 ^ *(uint *)(lVar7 + -0x874)) + (DAT_182671624 ^ *(uint *)(lVar7 + -0x3c8)) ^
           DAT_18267160c;
  *(uint *)(lVar7 + -0x3d4) = uVar22;
  uVar22 = uVar22 ^ DAT_18267178c;
  *(uint *)(lVar7 + -0x504) = uVar33;
  uVar22 = uVar22 ^ uVar31;
  uVar33 = uVar33 ^ DAT_182671714 ^ DAT_18267160c;
  *(uint *)(lVar7 + -0x328) = uVar22;
  uVar22 = uVar22 ^ DAT_1826717cc ^ DAT_18267178c;
  *(uint *)(lVar7 + -0x678) = uVar33;
  *(longlong *)(lVar7 + -0xa60) = -0x48cc205aceba018b << ((bVar5 ^ 0xb6) & 0x3f);
  *(uint *)(lVar7 + -0x47c) = *(uint *)(lVar7 - (uVar24 ^ 0xfeaff2b6)) ^ uVar11 ^ DAT_182671714;
  *(uint *)(lVar7 - ((ulonglong)DAT_182671580 ^ 0xf68fd88a)) = uVar22;
  uVar27 = DAT_182671810;
  uVar19 = DAT_182671578;
  uVar33 = DAT_18267156c;
  uVar22 = DAT_182671568;
  uVar24 = (ulonglong)DAT_182671578;
  uVar29 = (ulonglong)DAT_18267156c;
  bVar16 = (byte)DAT_18267156c;
  uVar32 = CONCAT44(DAT_182671598,uVar9);
  uVar15 = (ulonglong)DAT_18267181c;
  *(ulonglong *)(lVar7 + -0xc08) = 0x678f501e00c65a59 >> ((bVar16 ^ 200) & 0x3f);
  bVar5 = (byte)DAT_182671830;
  pbVar23 = (byte *)((CONCAT44(DAT_182671574,uVar10) ^ 0x7a481932feaff4c7) +
                     (uVar32 ^ 0x90e664ff46eb9edf) * 0x20 + *(longlong *)(lVar7 + -0x8f0));
  *(ulonglong *)(lVar7 + -0x470) = (ulonglong)pbVar23 ^ uVar15;
  *(byte *)(lVar7 + -0xc41) = *pbVar23 ^ bVar5 ^ (byte)DAT_182671694;
  uVar4 = *(undefined8 *)(lVar7 + -0x600);
  *(ulonglong *)(lVar7 + -0x6b8) =
       *(ulonglong *)(lVar7 + -0x240) >>
       ((byte)*(undefined8 *)(lVar7 - (uVar24 ^ 0xa212de8)) & 0x3f);
  uVar30 = (uint)(bVar5 ^ *(byte *)(lVar7 + -0xc41));
  *puVar2 = uVar30 ^ uVar27;
  uVar20 = (*puVar1 ^ DAT_1826717cc) + (DAT_182671590 ^ 0xef3aa362) ^ DAT_182671874;
  *(uint *)(lVar7 + -0x968) = uVar20;
  uVar20 = uVar20 ^ DAT_182671874;
  *(longlong *)(lVar7 + -0x110) = *(longlong *)(lVar7 + -0x9f8) << ((byte)uVar4 & 0x3f);
  uVar30 = uVar30 << (((byte)uVar18 ^ 0xdf) & 0x1f) ^ DAT_182671744;
  *(uint *)(lVar7 + -0x374) = uVar30;
  *(uint *)(lVar7 + -0x754) = uVar20 - (uVar30 ^ DAT_182671744) ^ DAT_182671698;
  uVar18 = DAT_182671704;
  uVar31 = DAT_182671654;
  uVar20 = DAT_1826715ac;
  uVar30 = DAT_182671580;
  lVar6 = DAT_182671560;
  uVar37 = (ulonglong)DAT_182671580;
  *(uint *)(DAT_182671560 - ((ulonglong)uVar21 ^ 0xd9ec7a77)) =
       (*(uint *)(DAT_182671560 - (uVar38 ^ 0xfffff8ab)) ^ DAT_182671698) *
       (*(uint *)(DAT_182671560 + -0x47c) ^ uVar11) ^ DAT_182671880;
  uVar25 = DAT_182671718;
  *(uint *)(lVar6 - ((ulonglong)uVar22 ^ 0x999642de)) = (uVar27 ^ *puVar2) * 9 ^ uVar18;
  uVar22 = DAT_182671670;
  uVar18 = (*(uint *)(lVar6 - ((ulonglong)uVar20 ^ 0xfffffa33)) ^ DAT_182671880) +
           (uVar18 ^ *(uint *)(lVar6 + -0x910));
  *(longlong *)(lVar6 + -0x638) = *(longlong *)(lVar6 + -0x800) << 0x32;
  *(uint *)(lVar6 + -0x344) = uVar18 ^ uVar31;
  uVar31 = uVar18 >> (((byte)DAT_182671594 ^ 0x22) & 0x1f) ^ DAT_182671634;
  *(uint *)(lVar6 + -0x504) = uVar31;
  uVar31 = uVar31 ^ DAT_182671634;
  *(uint *)(lVar6 + -0x874) = uVar18 * 0x2000 ^ uVar22;
  *(uint *)(lVar6 - ((ulonglong)uVar33 ^ 0xbb7fef0d)) = (uVar31 | uVar18 * 0x2000) ^ uVar25;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xe6cd80a7)) =
       (CONCAT44(uVar20,uVar30) ^ 0xf5f25230fbe89b4a) + (CONCAT44(uVar9,uVar9) ^ 0x9258198ff917a264)
  ;
  uVar9 = DAT_18267186c;
  uVar22 = DAT_182671694;
  lVar7 = DAT_182671560;
  uVar31 = uVar25 ^ *(uint *)(lVar6 + -0x3d4) ^ DAT_182671694;
  uVar33 = (*(uint *)(lVar6 + -0x47c) ^ uVar11) + (DAT_182671624 ^ *(uint *)(lVar6 + -0x3c8)) ^
           DAT_18267186c;
  *(uint *)(lVar6 + -0x678) = uVar33;
  uVar33 = uVar33 ^ DAT_1826717e8;
  *puVar1 = uVar31;
  uVar33 = uVar33 ^ uVar9;
  *(uint *)(lVar6 + -0x328) = uVar33;
  uVar30 = DAT_18267182c;
  uVar8 = DAT_1826715c0;
  *(uint *)(lVar7 + -0x968) = DAT_18267182c ^ DAT_1826717e8 ^ uVar33;
  uVar31 = DAT_1826716f4 ^ uVar31;
  uVar26 = (ulonglong)DAT_182671588;
  uVar24 = (ulonglong)DAT_182671760;
  *(ulonglong *)(lVar7 + -0xa0) =
       *(ulonglong *)(CONCAT44(DAT_1826716ac,DAT_1826716ac) ^ *(ulonglong *)(lVar7 + -0x70)) ^
       CONCAT44(uVar8,uVar8);
  *(uint *)(lVar7 - (uVar36 ^ 0x88042364)) = uVar31 ^ uVar22;
  *(ulonglong *)(lVar7 - (uVar26 ^ 0x99964106)) =
       (CONCAT44(uVar19,uVar10) ^ 0xa212400feaff4ce) * 0x20 + *(longlong *)(lVar7 + -0x8f0) + 0x14 ^
       uVar24;
  uVar33 = DAT_18267179c;
  bVar5 = (byte)DAT_1826716e0;
  uVar15 = (ulonglong)DAT_18267158c;
  *(byte *)(lVar7 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar7 - (uVar29 ^ 0xbb7fe611)) ^ uVar24) ^ (byte)DAT_1826716e0 ^
       (byte)uVar22;
  *(uint *)(lVar7 + -0x754) = (*(byte *)(lVar7 - (uVar15 ^ 0xbb7fec88)) ^ bVar5) ^ uVar33;
  uVar19 = DAT_182671808;
  bVar5 = (byte)DAT_18267159c;
  *(uint *)(lVar7 - (uVar37 ^ 0xf68fd2b2)) =
       (*(uint *)(lVar7 - ((ulonglong)uVar21 ^ 0xd9ec7ccf)) ^ DAT_1826716f4) +
       (DAT_18267159c ^ 0x63cd7d47) ^ DAT_182671808;
  uVar22 = DAT_182671684;
  *puVar17 = (*(uint *)(lVar7 + -0x754) ^ uVar33) << ((bVar16 ^ 200) & 0x1f) ^ uVar9;
  uVar19 = (uVar19 ^ *puVar2) - (uVar9 ^ *(uint *)(lVar7 + -0x5cc)) ^ DAT_18267169c;
  *(uint *)(lVar7 + -0x910) = uVar19;
  *(uint *)(lVar7 + -0x344) =
       (uVar19 ^ DAT_18267169c) * (*(uint *)(lVar7 + -0x968) ^ uVar30) ^ DAT_1826716bc;
  *(uint *)(lVar7 - ((ulonglong)DAT_182671574 ^ 0x7a481146)) =
       (*(uint *)(lVar7 + -0x754) ^ uVar33) * (uVar20 ^ 0xffffffeb) ^ uVar22;
  uVar33 = DAT_182671854;
  uVar22 = (*(uint *)(lVar7 - (uVar14 ^ 0x5ec966e3)) ^ DAT_1826716bc) +
           (uVar22 ^ *(uint *)(lVar7 + -0x874));
  *(uint *)(lVar7 + -0x504) = uVar22 ^ DAT_182671854;
  *(uint *)(lVar7 - (uVar26 ^ 0x99964fb2)) = uVar22 * 0x2000 ^ DAT_182671600;
  uVar22 = DAT_18267177c;
  uVar19 = *(uint *)(lVar7 + -0x47c) ^ DAT_182671600;
  uVar33 = (*(uint *)(lVar7 + -0x504) ^ uVar33) >> ((bVar5 ^ 0x81) & 0x1f) ^ DAT_1826718ac;
  *(uint *)(lVar7 + -0x678) = uVar33;
  *(uint *)(lVar7 + -0x3d4) = (uVar33 ^ DAT_1826718ac | uVar19) ^ uVar22;
  uVar33 = DAT_1826716b8 ^ DAT_182671840;
  *(uint *)(lVar7 - (uVar14 ^ 0x5ec9668f)) =
       (*(uint *)(lVar7 - ((ulonglong)DAT_182671568 ^ 0x99964806)) ^ DAT_182671624) +
       (*(uint *)(lVar7 + -0x968) ^ uVar30) ^ DAT_1826716b8;
  uVar8 = DAT_182671598;
  uVar22 = uVar22 ^ *(uint *)(lVar7 + -0x3d4) ^ DAT_1826717a8;
  *puVar1 = uVar33 ^ *(uint *)(lVar7 + -0x328);
  *(uint *)(lVar7 + -0x374) = uVar22;
  uVar22 = DAT_1826718c4;
  *(ulonglong *)(lVar7 - (uVar36 ^ 0x880428b8)) =
       (uVar32 ^ 0xe98be0816edfa174) << (((byte)uVar8 ^ 0xcd) & 0x3f);
  *puVar2 = uVar22 ^ *puVar1 ^ DAT_182671840;
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar13 * 4) = uVar3 ^ uVar35;
  return;
}



############ FUN_ 180ea0730 size=3140 ############

void FUN_180ea0730(void)

{
  undefined8 *puVar1;
  byte *pbVar2;
  longlong *plVar3;
  byte *pbVar4;
  ulonglong *puVar5;
  byte bVar6;
  byte bVar7;
  uint uVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  longlong *plVar22;
  byte *pbVar23;
  ulonglong *puVar24;
  byte *pbVar25;
  ulonglong uVar26;
  undefined1 *puVar27;
  longlong lVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  longlong lVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  longlong *plVar42;
  ulonglong uVar43;
  uint uVar44;
  uint uVar45;
  ulonglong uVar46;
  byte local_d8;
  byte local_a8;
  byte local_88;
  
  uVar17 = DAT_1826715b4;
  uVar21 = DAT_1826715b0;
  uVar16 = DAT_1826715a8;
  uVar15 = DAT_1826715a0;
  uVar14 = DAT_18267159c;
  uVar13 = DAT_18267158c;
  uVar12 = DAT_18267157c;
  uVar11 = DAT_182671578;
  uVar10 = DAT_182671568;
  uVar29 = (ulonglong)DAT_18267159c;
  uVar31 = (ulonglong)DAT_182671568;
  uVar30 = (ulonglong)DAT_1826715b0;
  uVar33 = DAT_182671568 * DAT_182671578;
  uVar41 = (ulonglong)DAT_1826715a0;
  uVar34 = (ulonglong)DAT_18267157c;
  uVar37 = (ulonglong)DAT_1826715b4;
  uVar43 = (ulonglong)DAT_18267158c;
  uVar19 = DAT_18267159c << 0x10 | DAT_18267159c >> 0x10;
  uVar45 = DAT_18267158c ^ DAT_1826715a8;
  uVar39 = DAT_1826715b0 * DAT_18267157c;
  uVar44 = DAT_1826715a0 * DAT_1826715b4;
  uVar20 = *(uint *)(&DAT_182611e70 + ((ulonglong)uVar19 ^ 0x2ad8d981) + (longlong)DAT_182671924) ^
           DAT_18267159c;
  uVar8 = *(uint *)(&DAT_182611e80 + DAT_182671924);
  plVar22 = (longlong *)(DAT_182671560 + 0x30);
  uVar46 = (ulonglong)DAT_182671578;
  DAT_18267156c = uVar39;
  DAT_182671574 = uVar33;
  DAT_182671580 = uVar19;
  DAT_182671598 = uVar44;
  DAT_1826715ac = uVar45;
  *(longlong *)(DAT_182671560 - (uVar29 ^ 0xd98920f8)) = *plVar22 + 0x3e;
  pbVar2 = (byte *)(DAT_182671560 + -0x5e9);
  *pbVar2 = **(byte **)(DAT_182671560 + -0xa20);
  lVar28 = DAT_182671560;
  *(uint *)(DAT_182671560 + -0x374) = uVar44 ^ 0x9eb36d56 | uVar13 ^ 0x3b2a8163;
  pbVar23 = (byte *)(lVar28 - ((ulonglong)uVar16 ^ 0x96bf3a07));
  uVar26 = (ulonglong)*pbVar23;
  *(ulonglong *)(lVar28 + -0x9f8) = uVar26;
  lVar35 = uVar26 << (((byte)uVar39 ^ 0x30) & 0x3f);
  *(longlong *)(lVar28 + -0x610) = lVar35;
  *(ulonglong *)(lVar28 + -0x670) =
       (CONCAT44(uVar21,uVar15) ^ 0x1c100f9d558c6a2d) >>
       ((byte)*(undefined8 *)(lVar28 + -0x9f8) & 0x3f);
  lVar9 = DAT_182671560;
  plVar3 = (longlong *)(DAT_182671560 + -0x170);
  *(longlong *)(DAT_182671560 - ((ulonglong)uVar12 ^ 0x1c022c00)) =
       *(longlong *)(lVar28 + -0x898) + lVar35;
  *plVar3 = (CONCAT44(uVar33,uVar10) ^ 0x3396a3000126809c) + *plVar22;
  pbVar4 = (byte *)(lVar9 + -0x209);
  *pbVar4 = **(byte **)(lVar9 - ((ulonglong)uVar11 ^ 0xf1f20070));
  *(ulonglong *)(lVar9 + -0x8a8) = (ulonglong)*(byte *)(lVar9 - ((ulonglong)uVar45 ^ 0x4840c219));
  local_d8 = (byte)uVar17;
  *(longlong *)(lVar9 - ((ulonglong)uVar13 ^ 0xdefffe26)) =
       *(longlong *)(lVar9 - (uVar43 ^ 0xdefff756)) << ((local_d8 ^ 0x38) & 0x3f);
  puVar5 = (ulonglong *)(lVar9 + -0x1d8);
  uVar26 = *puVar5 + *(longlong *)(lVar9 + -0x600);
  *(ulonglong *)(lVar9 + -0x6b8) = uVar26;
  uVar18 = DAT_1826717c8;
  *(longlong *)(lVar9 + -0x240) =
       *(longlong *)(lVar9 - ((ulonglong)uVar45 ^ 0x4840c8b8)) + -0x15d424d88f73b230;
  puVar24 = (ulonglong *)(*(longlong *)(lVar9 + -0x880) + 0x38);
  uVar32 = CONCAT44(uVar18,uVar18);
  *(ulonglong **)(lVar9 + -0xab8) = puVar24;
  *puVar24 = uVar32 ^ uVar26;
  puVar27 = (undefined1 *)((CONCAT44(uVar15,uVar16) ^ 0x3d13ae0996bf3fae) + *plVar22);
  puVar1 = (undefined8 *)(lVar9 + -0x60);
  *puVar1 = puVar27;
  *(undefined1 *)(lVar9 - ((ulonglong)uVar10 ^ 0x126854a)) = *puVar27;
  bVar6 = *pbVar2;
  *(ulonglong *)(lVar9 + -0x638) = (ulonglong)bVar6;
  pbVar25 = (byte *)((CONCAT44(uVar13,uVar14) ^ 0xdefffffed9892a99) + *plVar22);
  *(byte **)(lVar9 + -0xa20) = pbVar25;
  bVar7 = *pbVar25;
  *(ulonglong *)(lVar9 + -0xa0) = (ulonglong)bVar7;
  *pbVar4 = bVar7;
  *(ulonglong *)(lVar9 + -0x6d0) =
       *(ulonglong *)(lVar9 - (uVar29 ^ 0xd9892cd8)) ^ CONCAT44(uVar45,uVar33) ^ 0xbea4e114faa40dd3;
  uVar26 = (ulonglong)bVar7 << (((byte)uVar39 ^ 8) & 0x3f);
  *(ulonglong *)(lVar9 + -0x628) = uVar26;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar39 ^ 0x1dc2aa88)) = uVar26 | bVar6;
  lVar28 = DAT_182671560;
  *plVar3 = *(longlong *)((uVar46 ^ 0xf1f20130) + lVar9) + 0x42;
  *(undefined1 *)(lVar28 - (uVar30 ^ 0x60795f9)) =
       **(undefined1 **)(lVar28 - ((ulonglong)uVar44 ^ 0x929f7b70));
  bVar6 = *pbVar2;
  *(ulonglong *)(lVar28 + -0xa60) = (ulonglong)bVar6;
  *(ulonglong *)(lVar28 + -0xc08) = (ulonglong)bVar6 << (((byte)uVar33 ^ 0x10) & 0x3f);
  *(int *)(lVar28 - (uVar37 ^ 0x1c022d74)) = *(int *)(lVar28 + -0x910) + 0x363f8a3f;
  *(ulonglong *)(lVar28 + -0x510) =
       *(ulonglong *)(lVar28 - ((ulonglong)uVar44 ^ 0x929f7088)) | *(ulonglong *)(lVar28 + -0xc08);
  *(ulonglong *)(lVar28 - (uVar37 ^ 0x1c022a60)) =
       (CONCAT44(uVar45,uVar19) ^ 0x4840c0102ad8d9ca) + *plVar22;
  *(undefined1 *)(lVar28 - ((ulonglong)uVar33 ^ 0x3396a109)) = *(undefined1 *)*puVar1;
  bVar6 = *pbVar4;
  uVar21 = DAT_18267159c ^ 0x15b0c78f;
  *(ulonglong *)(lVar28 + -0x2a0) = (ulonglong)bVar6;
  *(uint *)(lVar28 + -0x678) = uVar21 - *(int *)(lVar28 + -0x754);
  *(ulonglong *)(lVar28 - (uVar31 ^ 0x1268023)) = (ulonglong)bVar6 << ((local_d8 ^ 0x18) & 0x3f);
  uVar36 = *(ulonglong *)(lVar28 - ((ulonglong)uVar39 ^ 0x1dc2a080)) |
           *(ulonglong *)(lVar28 + -0x510);
  *(ulonglong *)(lVar28 + -0x110) = uVar36;
  *(ulonglong *)(lVar28 + -0xa20) =
       (CONCAT44(uVar11,uVar45) ^ 0xf1f201004840c054) +
       *(longlong *)((uVar34 ^ 0x1c022a30) + lVar28);
  *pbVar2 = **(byte **)(lVar28 - (uVar43 ^ 0xdefff5de));
  uVar18 = DAT_182671814;
  uVar26 = (ulonglong)*(byte *)(lVar28 - ((ulonglong)uVar19 ^ 0x2ad8dc60));
  *(ulonglong *)(lVar28 + -0x800) = uVar26;
  lVar9 = DAT_182671560;
  uVar40 = CONCAT44(uVar18,uVar18);
  uVar38 = CONCAT44(DAT_18267171c,DAT_18267171c);
  *(ulonglong *)(DAT_182671560 + -0x318) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671560 + -0xa38) ^ uVar40) ^ uVar38;
  uVar26 = uVar26 << (((byte)uVar45 ^ 0x30) & 0x3f);
  *(ulonglong *)(lVar9 + -0x688) = uVar26;
  *(ulonglong *)(lVar9 + -0xbf0) = uVar26 | uVar36;
  *plVar3 = (CONCAT44(uVar15,uVar11) ^ 0x3d13ae09f1f20145) + *plVar22;
  *(ulonglong *)(lVar9 - (uVar31 ^ 0x126895b)) =
       (CONCAT44(uVar44,uVar14) ^ 0xe7c6180bf9ed1d14) -
       (CONCAT44(uVar39,uVar12) ^ 0xb46e42d85021f4ba);
  bVar6 = *(byte *)*plVar3;
  *(ulonglong *)(lVar9 + -0x670) = (ulonglong)bVar6;
  *pbVar4 = bVar6;
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x1c022298)) = (ulonglong)bVar6 << 0x28;
  *(ulonglong *)(lVar9 + -0x610) =
       *(ulonglong *)(lVar9 - (uVar41 ^ 0x3d13a5f9)) | *(ulonglong *)(lVar9 + -0x898);
  plVar42 = (longlong *)(lVar9 - (uVar30 ^ 0x6079070));
  *plVar42 = (CONCAT44(uVar13,uVar33) ^ 0xdefffffe3396a346) + *plVar22;
  bVar6 = *(byte *)*puVar1;
  *pbVar2 = bVar6;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar16 ^ 0x96bf3e36)) = (ulonglong)bVar6;
  *(ulonglong *)(lVar9 - (uVar30 ^ 0x60798b8)) = *puVar5 << 0x30;
  lVar35 = *(longlong *)(lVar9 + -0x8a8) + *(longlong *)(lVar9 + -0x610);
  *(longlong *)(lVar9 + -0x240) = lVar35;
  *(ulonglong *)(lVar9 + -0x6d0) = *(ulonglong *)(*(ulonglong *)(lVar9 + -0xa38) ^ uVar40) ^ uVar38;
  pbVar25 = (byte *)((CONCAT44(uVar39,uVar11) ^ 0x1dc2a000f1f20147) + *plVar22);
  *(byte **)(lVar9 + -0xa20) = pbVar25;
  *pbVar4 = *pbVar25;
  uVar29 = (ulonglong)*(byte *)(lVar9 - (uVar29 ^ 0xd98928d1));
  *(ulonglong *)(lVar9 + -0x600) = uVar29;
  lVar28 = uVar29 << ((local_d8 ^ 0x38) & 0x3f);
  *(longlong *)(lVar9 + -0xa0) = lVar28;
  uVar29 = lVar28 + lVar35;
  *(ulonglong *)(lVar9 + -0x638) = uVar29;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar9 + -0x880) + (CONCAT44(uVar17,uVar44) ^ 0x1c022a00929f7a08) * 8);
  *(ulonglong **)(lVar9 + -0x220) = puVar24;
  *puVar24 = uVar29 ^ uVar32;
  pbVar25 = (byte *)((CONCAT44(uVar12,uVar45) ^ 0x1c022a004840c058) + *plVar22);
  *plVar3 = (longlong)pbVar25;
  *pbVar2 = *pbVar25;
  *(ulonglong *)(lVar9 + -0x628) = (ulonglong)*pbVar23;
  *(uint *)(lVar9 + -0x910) =
       (DAT_182671580 ^ 0x9a59ecfd) >> ((byte)*(undefined4 *)(lVar9 + -0x374) & 0x1f);
  pbVar23 = (byte *)((CONCAT44(uVar10,uVar12) ^ 0x12680a31c022a49) +
                    *(longlong *)((uVar30 ^ 0x6079020) + lVar9));
  *puVar1 = pbVar23;
  *(int *)(lVar9 + -0x774) = *(int *)(lVar9 - (uVar30 ^ 0x607926c)) + *(int *)(lVar9 + -0x754);
  *pbVar4 = *pbVar23;
  *(ulonglong *)(lVar9 + -0xa60) =
       (CONCAT44(uVar15,uVar13) ^ 0x3bd85425ae816b2f) - *(longlong *)(lVar9 + -0x638);
  puVar24 = (ulonglong *)(lVar9 - (uVar46 ^ 0xf1f20b88));
  *puVar24 = (ulonglong)*pbVar4;
  local_88 = (byte)uVar15;
  *(ulonglong *)(lVar9 - (uVar31 ^ 0x1268cab)) =
       (CONCAT44(uVar45,uVar14) ^ 0x7e9bb098e8ebed09) <<
       ((byte)*(undefined8 *)(lVar9 + -0xa0) & 0x3f);
  *(ulonglong *)(lVar9 + -0x2a0) = *puVar24 << ((local_88 ^ 1) & 0x3f);
  *(ulonglong *)(lVar9 + -0x510) =
       *(longlong *)(lVar9 + -0x638) - (CONCAT44(uVar13,uVar10) ^ 0xd1a51533496fb40c);
  *(ulonglong *)(lVar9 + -0x80) =
       *(ulonglong *)(lVar9 - ((ulonglong)uVar33 ^ 0x3396a528)) |
       *(ulonglong *)(lVar9 - (uVar37 ^ 0x1c0228a0));
  lVar28 = *plVar22;
  pbVar23 = (byte *)((CONCAT44(uVar16,uVar44) ^ 0x96bf3fee929f7a4a) + lVar28);
  *plVar3 = (longlong)pbVar23;
  bVar6 = *pbVar23;
  local_a8 = (byte)(uVar14 >> 0x10);
  *pbVar2 = bVar6;
  *(ulonglong *)(lVar9 + -0x318) = (ulonglong)bVar6;
  uVar29 = (ulonglong)bVar6 << ((local_a8 ^ 0x99) & 0x3f);
  *(ulonglong *)(lVar9 + -0x800) = uVar29;
  *(ulonglong *)(lVar9 + -0x110) =
       (CONCAT44(uVar39,uVar16) ^ 0x77cd2c83aa2be325) >> (((byte)uVar13 ^ 0xd9) & 0x3f);
  uVar10 = DAT_182671590;
  uVar26 = (ulonglong)DAT_182671590;
  *(ulonglong *)(lVar9 + -0x688) = *(ulonglong *)(lVar9 - (uVar43 ^ 0xdeffff7e)) | uVar29;
  *(ulonglong *)(lVar9 + -0x9f8) =
       0x23fe5527319cde8e - (CONCAT44(uVar45,uVar10) ^ 0x26ca32b58b83b390);
  *(ulonglong *)(lVar9 - (uVar31 ^ 0x12680c3)) =
       (CONCAT44(uVar15,uVar39) ^ 0x3d13ae091dc2a04b) + lVar28;
  bVar6 = *(byte *)*plVar42;
  *pbVar4 = bVar6;
  *(ulonglong *)(lVar9 + -0x670) = (ulonglong)bVar6;
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x1c0221f0)) =
       *(ulonglong *)(lVar9 - (uVar26 ^ 0x95bf2d4a)) | *(ulonglong *)(lVar9 + -0x318);
  *(longlong *)(lVar9 + -0x898) = *(longlong *)(lVar9 - (uVar37 ^ 0x1c022c70)) << 0x18;
  uVar29 = (ulonglong)DAT_182671588;
  *pbVar2 = **(byte **)(lVar9 + -0xa20);
  *puVar5 = *(ulonglong *)(lVar9 - (uVar29 ^ 0xfdfff761)) | *(ulonglong *)(lVar9 + -0x688);
  lVar28 = *plVar22;
  *pbVar4 = *(byte *)*plVar3;
  *puVar1 = (byte *)(lVar28 + 0x4c);
  *pbVar2 = *(byte *)(lVar28 + 0x4c);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)(uVar8 ^ uVar45) * 4) = uVar20;
  return;
}



############ FUN_ 180ee3490 size=5131 ############

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

void FUN_180ee3490(void)

{
  uint uVar1;
  longlong lVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  byte bVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  byte bVar37;
  ulonglong uVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_res20;
  byte local_d8;
  
  uVar7 = DAT_1826715b0;
  uVar8 = DAT_1826715ac;
  uVar11 = DAT_18267159c;
  uVar10 = DAT_182671598;
  uVar6 = DAT_182671570;
  lVar2 = DAT_182671560;
  uVar32 = (ulonglong)DAT_182671570;
  uVar29 = (ulonglong)DAT_182671598;
  uVar40 = (ulonglong)DAT_1826715ac;
  uVar31 = (ulonglong)DAT_1826715b0;
  uVar41 = (ulonglong)DAT_18267159c;
  uVar21 = DAT_182671598 | DAT_1826715b0;
  uVar26 = DAT_1826715ac ^ DAT_18267159c;
  uVar25 = (DAT_182671570 << 0x10 | DAT_182671570 & 0xff00) << 8 | DAT_182671570 >> 8 & 0xff00 |
           DAT_182671570 >> 0x18;
  uVar1 = *(uint *)(&DAT_182611e78 + DAT_182671960);
  uVar17 = *(uint *)(&DAT_182611e80 + DAT_182671960) ^ DAT_182671598;
  uVar19 = (ulonglong)DAT_1826715b0;
  uVar38 = (ulonglong)uVar21;
  uVar24 = (ulonglong)DAT_182671570;
  uVar18 = CONCAT44(DAT_1826715b0,uVar21);
  uVar27 = (ulonglong)uVar25;
  pbVar20 = (byte *)((uVar18 ^ 0xd094d8a7fd96f9d4) + *(longlong *)(DAT_182671560 + -0x8c8));
  DAT_182671588 = uVar25;
  DAT_1826715a4 = uVar21;
  DAT_1826715a8 = uVar26;
  *(ulonglong *)(DAT_182671560 + -0x1d0) = (ulonglong)pbVar20 ^ (ulonglong)DAT_18267179c;
  *pbVar20 = *(byte *)(lVar2 + -0x9c9) ^ (byte)DAT_182671818 ^ (byte)DAT_182671718;
  lVar2 = DAT_182671560;
  uVar33 = CONCAT44(DAT_1826716c4,DAT_1826716c4);
  *(ulonglong *)(DAT_182671560 - (uVar29 ^ 0x6d862a0d)) =
       *(longlong *)(DAT_182671560 - ((ulonglong)uVar25 ^ 0xfffff467)) +
       ((CONCAT44(uVar11,uVar8) ^ 0x4f75ca35c283efa9) +
       (CONCAT44(uVar6,uVar26) ^ 0xffffffff8df62598) * 0xc) * 8 ^ uVar33;
  uVar34 = CONCAT44(_DAT_18267161c,_DAT_18267161c);
  uVar22 = CONCAT44(DAT_1826715c0,DAT_1826715c0);
  *(ulonglong *)(lVar2 + -0x3b8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xfffff487)) ^ uVar33) ^ uVar22 ^
       uVar34;
  uVar3 = DAT_18267173c;
  lVar4 = DAT_182671560;
  uVar30 = (ulonglong)DAT_18267173c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x8df62d00)) =
       (CONCAT44(uVar21,uVar8) ^ 0x91b2073b18f47aff) >> (((byte)uVar6 ^ 0xfb) & 0x3f);
  lVar2 = DAT_182671560;
  bVar16 = (byte)uVar26;
  bVar28 = (byte)uVar3 ^ (byte)DAT_1826717b0;
  bVar37 = (byte)uVar8;
  *(ulonglong *)(DAT_182671560 - (uVar24 ^ 0xfffff9ff)) =
       (uVar34 ^ *(ulonglong *)(lVar4 + -0x3b8)) >> ((bVar16 ^ 0xb8) & 0x3f) ^ CONCAT44(uVar3,uVar3)
  ;
  *(byte *)(lVar2 + -0x28a) = bVar28 ^ *(byte *)(lVar2 + -0x600);
  uVar34 = (ulonglong)DAT_18267185c;
  *(uint *)(lVar2 + -0x678) = 0xf3d6b4ff >> ((bVar37 ^ 0xa6) & 0x1f);
  pbVar20 = (byte *)((CONCAT44(uVar10,uVar25) ^ 0x6d862175ffffffdb) + *(longlong *)(lVar2 + -0x8c8))
  ;
  *(ulonglong *)(lVar2 + -0x140) = (ulonglong)pbVar20 ^ uVar34;
  uVar42 = CONCAT44(uVar21,uVar26);
  uVar34 = CONCAT44(DAT_1826717fc,DAT_1826717fc);
  *pbVar20 = *(byte *)(lVar2 - (uVar41 ^ 0x4f75c8bf)) ^ (byte)DAT_1826717b0 ^ (byte)DAT_182671718;
  uVar9 = DAT_182671894;
  lVar2 = DAT_182671560;
  uVar24 = CONCAT44(uVar6,uVar7) ^ 0xffffffffd094d88f;
  *(ulonglong *)(DAT_182671560 + -0x220) =
       *(longlong *)(DAT_182671560 - (uVar29 ^ 0x6d862aed)) +
       ((uVar42 ^ 0xfd96f9f78df6259c) + ~CONCAT44(uVar25,uVar25) * 0xc) * 8 ^ uVar34;
  uVar35 = CONCAT44(uVar9,uVar9);
  uVar19 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0xd094da87)) ^ uVar34) ^ uVar35 ^ uVar22;
  *(ulonglong *)(lVar2 + -0xa88) = uVar19;
  uVar9 = DAT_1826717ac;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xd094dae7)) =
       CONCAT44(uVar8,uVar6) ^ uVar19 ^ uVar35 ^ 0xc9fe535c36d0b0fb;
  uVar34 = (ulonglong)DAT_1826715f8;
  *(ulonglong *)(lVar4 + -0x400) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0xa88)) >> ((byte)uVar24 & 0x3f) ^ CONCAT44(uVar9,uVar9);
  bVar28 = (byte)DAT_182671804;
  bVar36 = (byte)uVar9 ^ (byte)DAT_182671804 ^ *(byte *)(lVar4 + -0x400);
  *(byte *)(lVar4 + -0x91a) = bVar36;
  lVar2 = DAT_182671560;
  bVar28 = bVar28 ^ bVar36 ^ (byte)DAT_182671718;
  *(ulonglong *)(DAT_182671560 + -0x4f8) =
       (CONCAT44(uVar25,uVar10) ^ 0xffffffff6d862150) + *(longlong *)(DAT_182671560 + -0x8c8) ^
       uVar34;
  uVar19 = (ulonglong)DAT_1826717d8;
  uVar3 = DAT_1826717d8 >> 0x1b;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar38 ^ 0xfd96fd0f)) ^ uVar34) = bVar28;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x4f75cc0d)) =
       ((ulonglong)uVar3 | uVar19 << 5) ^ *(ulonglong *)(lVar2 + -0x6b8) >> 0x1b;
  uVar9 = DAT_182671654;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) + 0x20 +
            (CONCAT44(uVar11,uVar26) ^ 0x4f75ca358df62598) * 0x60);
  uVar35 = CONCAT44(DAT_182671654,DAT_182671654);
  *(ulonglong *)(lVar2 + -0x6f0) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671700,DAT_182671700);
  bVar28 = DAT_182671618;
  uVar19 = *puVar23 ^ uVar35 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x318) = uVar19;
  lVar2 = DAT_182671560;
  bVar39 = (byte)DAT_182671878;
  uVar19 = (uVar35 ^ uVar19) >> ((bVar37 ^ 0x9d) & 0x3f) ^ CONCAT44(DAT_182671878,DAT_182671878);
  bVar36 = bVar28 ^ (byte)DAT_182671718;
  *(ulonglong *)(DAT_182671560 + -0xbf0) = uVar19;
  uVar34 = (ulonglong)DAT_182671680;
  *(byte *)(lVar2 + -0x629) = bVar39 ^ bVar28 ^ (byte)uVar19;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar32 ^ 0xfffffd77)) =
       (CONCAT44(uVar25,uVar10) ^ 0xffffffff6d862153) + *(longlong *)(DAT_182671560 + -0x8c8) ^
       uVar34;
  *(byte *)(*(ulonglong *)(lVar2 + -0x288) ^ uVar34) = bVar36 ^ *(byte *)(lVar2 + -0x629);
  uVar15 = DAT_182671890;
  uVar13 = DAT_1826716e0;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            ((CONCAT44(uVar21,uVar11) ^ 0xfd96f9f74f75ca31) +
            (CONCAT44(uVar7,uVar26) ^ 0xd094d8a78df62598) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x880) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671734,DAT_182671734);
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x6d0) = *puVar23 ^ uVar34 ^ uVar22;
  *(undefined8 *)(CONCAT44(DAT_1826717b4,DAT_1826717b4) ^ *(ulonglong *)(lVar2 + -0x438)) =
       0x393e3b9671a7fe0f;
  *(ulonglong *)(lVar2 + -0x800) =
       (CONCAT44(uVar7,uVar6) ^ 0xe5c70a78024cf57e) >> ((bVar37 ^ 0x8e) & 0x3f);
  uVar19 = (ulonglong)DAT_182671758;
  *(ulonglong *)(lVar2 + -0x9f8) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x6d0)) >> (((byte)uVar6 ^ 199) & 0x3f) ^
       CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x1d8) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x318)) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar26 ^ 0x8df62680)) ^ (byte)uVar9) & 0x3f);
  lVar2 = DAT_182671560;
  uVar34 = (ulonglong)DAT_182671640;
  bVar28 = (byte)DAT_182671640;
  pbVar20 = (byte *)((uVar42 ^ 0xfd96f9f78df625bf) + *(longlong *)(DAT_182671560 + -0x8c8));
  bVar37 = (byte)uVar13 ^ bVar28 ^ *(byte *)(DAT_182671560 + -0x9f8);
  *(byte *)(DAT_182671560 + -0x3d5) = bVar37;
  *(uint *)(lVar2 + -0x504) = (uVar11 ^ 0xc0dd04a0) + (uVar25 ^ 0x937434af);
  *(ulonglong *)(lVar2 + -0x7b0) = (ulonglong)pbVar20 ^ uVar19;
  uVar9 = DAT_1826715ec;
  *pbVar20 = bVar28 ^ bVar37 ^ (byte)DAT_182671718;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar38 ^ 0xfd96f26f)) +
            (CONCAT44(uVar21,uVar10) ^ 0xfd96f9f76d862170) * 8);
  uVar19 = CONCAT44(DAT_182671848,DAT_182671848);
  *(ulonglong *)(lVar2 + -0x5f8) = (ulonglong)puVar23 ^ CONCAT44(DAT_1826716c8,DAT_1826716c8);
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x3f0) = *puVar23 ^ uVar19 ^ uVar22;
  lVar4 = DAT_182671560;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0x4f75c9c5)) ^ uVar19) >> ((bVar16 ^ 0x98) & 0x3f) ^ uVar35
  ;
  uVar15 = DAT_182671888;
  bVar28 = (byte)DAT_182671888;
  bVar36 = *(byte *)(lVar4 - (uVar38 ^ 0xfd96f807)) ^ (byte)uVar9 ^ bVar28;
  *(byte *)(lVar4 + -0xa71) = bVar36;
  bVar37 = (byte)DAT_182671718;
  pbVar20 = (byte *)(*(longlong *)(lVar4 - (uVar31 ^ 0xd094d06f)) + uVar24);
  *(ulonglong *)(lVar4 + -0xb60) = (ulonglong)pbVar20 ^ uVar34;
  *pbVar20 = bVar37 ^ bVar36 ^ bVar28;
  uVar13 = DAT_182671720;
  uVar19 = CONCAT44(DAT_1826715bc,DAT_1826715bc);
  local_d8 = (byte)uVar11;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x6d8626cd)) =
       *(longlong *)(lVar4 + -0xb98) +
       ((CONCAT44(uVar8,uVar6) ^ 0xc283efadfffffffa) + ~CONCAT44(uVar6,uVar25) * 0xc) * 8 ^ uVar19;
  uVar9 = DAT_1826715d4;
  uVar19 = *(ulonglong *)(*(ulonglong *)(lVar4 + -0x7b8) ^ uVar19) ^ uVar22;
  *(ulonglong *)(lVar4 + -0xa0) = uVar19 ^ CONCAT44(DAT_1826715d4,DAT_1826715d4);
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 - (uVar40 ^ 0xc283e705)) =
       uVar19 >> ((local_d8 ^ 0x3d) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  bVar37 = *(byte *)(DAT_182671560 - (uVar31 ^ 0xd094d00f)) ^ (byte)uVar13 ^ (byte)DAT_182671778;
  *(byte *)(lVar2 + -0xb0a) = bVar37;
  uVar19 = (ulonglong)DAT_1826715e8;
  *(ulonglong *)(lVar2 + -0x2a0) =
       (*(ulonglong *)(lVar2 + -0x1f0) ^ uVar35) >>
       ((*(byte *)(lVar2 - ((ulonglong)uVar26 ^ 0x8df62538)) ^ (byte)uVar9) & 0x3f);
  pbVar20 = (byte *)((uVar42 ^ 0xfd96f9f78df625b1) + *(longlong *)(lVar2 + -0x8c8));
  bVar37 = (byte)DAT_182671718 ^ bVar37 ^ (byte)DAT_182671778;
  *(ulonglong *)(lVar2 + -0x308) = (ulonglong)pbVar20 ^ uVar19;
  *pbVar20 = bVar37;
  uVar3 = DAT_18267180c;
  uVar14 = DAT_182671800;
  lVar4 = DAT_182671560;
  uVar19 = (ulonglong)DAT_18267180c;
  puVar23 = (ulonglong *)(*(longlong *)(lVar2 + -0xb98) + 0x28);
  uVar42 = (ulonglong)DAT_182671800;
  *(ulonglong *)(lVar2 + -0x368) = (ulonglong)puVar23 ^ CONCAT44(_DAT_1826715e0,_DAT_1826715e0);
  uVar34 = *puVar23 ^ uVar22;
  uVar24 = uVar34 ^ CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar2 + -0x548) = uVar24;
  *(ulonglong *)(lVar4 + -0x610) =
       ((ulonglong)(uVar3 >> 0x10) | uVar19 << 0x10) ^ uVar24 >> 0x10 ^ CONCAT44(uVar15,uVar15);
  *(byte *)(lVar4 + -0xb09) = bVar28 ^ *(byte *)(lVar4 + -0x610) ^ (byte)DAT_1826717e4;
  uVar3 = DAT_182671830;
  uVar19 = (ulonglong)DAT_182671830;
  *(ulonglong *)(lVar4 + -0x80) = uVar34 - (CONCAT44(uVar26,uVar8) ^ 0x30d5f765be529102);
  *(ulonglong *)(lVar4 + -0xa60) = CONCAT44(uVar21,uVar10) ^ 0xf597d885f4128f13;
  *(ulonglong *)(lVar4 + -0x608) = *(longlong *)(lVar4 + -0x8c8) + 0x2aU ^ uVar42;
  bVar37 = (byte)DAT_1826715ac;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x4f75c845)) =
       (*(ulonglong *)(lVar4 + -0x1f0) ^ uVar35) + 0x4a709ab0c89de6c4;
  *(byte *)(uVar42 ^ *(ulonglong *)(lVar4 + -0x608)) =
       *(byte *)(lVar4 - (uVar27 ^ 0xfffff4f6)) ^ (byte)DAT_182671718 ^ (byte)DAT_1826717e4;
  uVar34 = CONCAT44(uVar3,uVar3);
  *(int *)(lVar4 + -0x844) = -0x563e8c47 << ((bVar37 ^ 0xb6) & 0x1f);
  uVar9 = DAT_182671844;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xfffffb5f)) =
       *(longlong *)(lVar4 - (uVar32 ^ 0xfffff467)) +
       ((CONCAT44(uVar11,uVar11) ^ 0x4f75ca354f75ca30) +
       (CONCAT44(uVar21,uVar6) ^ 0xfd96f9f7ffffffff) * 0xc) * 8 ^ uVar34;
  uVar24 = CONCAT44(DAT_1826716d0,DAT_1826716d0);
  local_res20 = (byte)uVar10;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0x8df62f18)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x4a0) ^ uVar34) ^ uVar22 ^ uVar24;
  uVar3 = DAT_18267156c;
  lVar2 = DAT_182671560;
  *(ulonglong *)(DAT_182671560 + -0x670) =
       (*(ulonglong *)(DAT_182671560 + -0xa80) ^ uVar24) >> ((local_res20 ^ 0x6d) & 0x3f) ^
       CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xfd96f16f)) = CONCAT44(uVar10,uVar7) ^ 0xb4a1a2b96762ec12;
  lVar4 = DAT_182671560;
  *(byte *)(DAT_182671560 - (uVar41 ^ 0x4f75cfef)) =
       (byte)uVar9 ^ *(byte *)(DAT_182671560 + -0x670) ^ (byte)DAT_182671754;
  uVar13 = DAT_182671718;
  uVar12 = DAT_1826715b4;
  lVar5 = DAT_182671560;
  uVar42 = (ulonglong)DAT_1826715b4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0x367a1f21)) =
       *(longlong *)(lVar4 - (uVar27 ^ 0xfffff737)) + 0x2bU ^ uVar30;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x6d8622cd)) =
       CONCAT44(uVar21,uVar12) ^ 0x837d95e42b079ba3 | *(ulonglong *)(lVar4 + -0xa80) ^ uVar24;
  uVar9 = DAT_182671594;
  *(byte *)(*(ulonglong *)(lVar4 + -0x40) ^ uVar30) =
       *(byte *)(lVar4 - (uVar31 ^ 0xd094dd7d)) ^ (byte)uVar13 ^ (byte)DAT_182671754;
  lVar2 = *(longlong *)(lVar5 + -0xb98);
  *(ulonglong *)(lVar4 + -0x600) =
       *(longlong *)(lVar4 + -0xa60) - (CONCAT44(DAT_18267157c,uVar25) ^ 0x5fa6653a1d5270b3);
  uVar7 = DAT_18267158c;
  uVar31 = CONCAT44(DAT_1826717a0,DAT_1826717a0);
  *(ulonglong *)(lVar5 - (uVar32 ^ 0xfffffa8f)) =
       lVar2 + 0x28 + (CONCAT44(uVar9,DAT_18267158c) ^ 0x7d7625501f61367a) * 0x60 ^ uVar31;
  *(ulonglong *)(lVar5 - (uVar40 ^ 0xc283eded)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 + -0x570) ^ uVar31) ^ uVar22 ^ uVar34;
  *(ulonglong *)(lVar5 + -0xa88) = *(ulonglong *)(lVar5 + -0x1f0) ^ uVar35 | 0xf319812fd495df4f;
  bVar37 = (byte)uVar14 ^ DAT_1826716c0;
  uVar31 = (ulonglong)DAT_182671828;
  uVar19 = *(ulonglong *)(lVar5 + -0x240) >> 0x20 ^ CONCAT44(uVar14,uVar14) ^ uVar19;
  *(ulonglong *)(lVar5 + -0x400) = uVar19;
  bVar37 = bVar37 ^ (byte)uVar19;
  *(byte *)(lVar5 + -0x711) = bVar37;
  bVar37 = bVar37 ^ (byte)uVar13 ^ DAT_1826716c0;
  pbVar20 = (byte *)((CONCAT44(uVar10,uVar8) ^ 0x6d862175c283ef81) + *(longlong *)(lVar5 + -0x8c8));
  uVar19 = CONCAT44(uVar8,DAT_1826715a0);
  *(ulonglong *)(lVar5 + -600) = (ulonglong)pbVar20 ^ uVar31;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar19 ^ 0xf91d0f6f00257c3d | uVar18 ^ 0xb07d9ff086f5dbe3;
  uVar13 = DAT_1826716e8;
  *pbVar20 = bVar37;
  uVar8 = DAT_182671590;
  uVar18 = (ulonglong)DAT_182671590;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar5 - (uVar40 ^ 0xc283e435)) + 0x28 +
            (CONCAT44(uVar6,uVar21) ^ 0xfffffffffd96f9f7) * 0x60);
  uVar19 = CONCAT44(DAT_1826716a0,DAT_1826716a0);
  *(ulonglong *)(lVar5 + -0x70) = (ulonglong)puVar23 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x638) = *puVar23 ^ uVar22 ^ uVar19;
  uVar13 = DAT_18267167c;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0x635d7cdd)) =
       (*(ulonglong *)(lVar5 - (uVar42 ^ 0x7a366725)) ^ uVar19) >> ((bVar16 ^ 0xb0) & 0x3f) ^
       CONCAT44(DAT_18267167c,DAT_18267167c);
  uVar3 = DAT_182671578;
  uVar24 = (ulonglong)DAT_182671670;
  uVar19 = (ulonglong)DAT_182671578;
  uVar18 = CONCAT44(DAT_182671574,uVar10);
  *(byte *)(lVar5 + -0xb49) = (byte)uVar13 ^ (byte)DAT_182671898 ^ *(byte *)(lVar5 + -0xbf0);
  lVar2 = DAT_182671560;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xfffff73f)) =
       (uVar18 ^ 0xfffffffe6d862158) + *(longlong *)(lVar5 + -0x8c8) ^ uVar24;
  uVar18 = (ulonglong)DAT_182671584;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x635d7ec5)) =
       CONCAT44(uVar3,uVar10) ^ 0x144108098204005 | 0x3e3bcb59478dbfd0;
  uVar31 = CONCAT44(DAT_1826716bc,DAT_1826716bc);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar18 ^ 0xbdcabd4a)) ^ uVar24) =
       (byte)DAT_182671718 ^ (byte)DAT_182671898 ^ *(byte *)(lVar2 + -0xb49);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x6d86211d)) =
       *(longlong *)(lVar2 + -0xb98) +
       ((CONCAT44(uVar8,uVar21) ^ 0x635d772dfd96f9f2) +
       (CONCAT44(uVar9,uVar10) ^ 0x7d7625506d862175) * 0xc) * 8 ^ uVar31;
  uVar13 = DAT_182671718;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x6d862975)) =
       CONCAT44(uVar6,uVar12) ^ *(ulonglong *)(lVar2 + -0x400) ^ CONCAT44(uVar14,uVar14) ^
       0xa71e7f0e4641b51e;
  uVar9 = DAT_182671678;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x8df62348)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x68) ^ uVar31) ^ uVar22 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x318) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x1f61343a)) ^ uVar34) +
       (CONCAT44(uVar25,uVar12) ^ 0x5aa97fde8996a276);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xfffffe27)) =
       (*(ulonglong *)(lVar2 + -0x6d0) ^ CONCAT44(uVar13,uVar13)) >> (((byte)uVar7 ^ 0x4a) & 0x3f) ^
       CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xfd96f00f)) =
       (CONCAT44(uVar6,uVar25) ^ 0x2e2eeb114c7eb564) >> (((byte)DAT_18267156c ^ 0x74) & 0x3f);
  uVar18 = (ulonglong)DAT_182671870;
  bVar37 = *(byte *)(lVar2 - (uVar27 ^ 0xfffffe27)) ^ (byte)uVar9 ^ (byte)DAT_1826716e4;
  *(byte *)(lVar2 + -0x275) = bVar37;
  *(ulonglong *)(lVar2 + -0x730) =
       *(longlong *)(lVar2 - (uVar41 ^ 0x4f75c2fd)) + (CONCAT44(uVar21,uVar11) ^ 0xfd96f9f74f75ca1b)
       ^ uVar18;
  uVar3 = DAT_1826716f4;
  bVar28 = (byte)uVar13 ^ (byte)DAT_1826716e4;
  *(int *)(lVar2 + -0x374) = *(int *)(lVar2 + -0x844) << ((bVar16 ^ 0x8d) & 0x1f);
  uVar31 = CONCAT44(DAT_18267189c,DAT_18267189c);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x5a6d396d)) ^ uVar18) = bVar28 ^ bVar37;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb98) +
            (CONCAT44(DAT_182671568,uVar25) ^ 0x2110a30fffffffa) * 8);
  *(ulonglong *)(lVar2 + -0x6a0) = (ulonglong)puVar23 ^ uVar31;
  uVar9 = DAT_1826716a4;
  *(ulonglong *)(lVar2 + -0x3f0) = CONCAT44(uVar3,uVar3) ^ *puVar23 ^ uVar22;
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar40 ^ 0xc283edb5)) ^ uVar33) =
       CONCAT44(uVar11,uVar10) ^ 0x3b87e6fef79b42c3;
  *(ulonglong *)(lVar2 + -0x8a8) =
       (ulonglong)*(byte *)(lVar2 + -0x3e9) ^ (ulonglong)(uVar3 >> 0x18) ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_1826718e0 + (longlong)(int)uVar17 * 4) = uVar1 ^ uVar21;
  return;
}



############ FUN_ 1805711e0 size=147 ############

ulonglong * FUN_1805711e0(longlong *param_1,ulonglong *param_2)

{
  undefined8 *puVar1;
  longlong lVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  ulonglong *local_res8;
  
  puVar1 = (undefined8 *)*param_1;
  puVar4 = puVar1;
  if (*(char *)((longlong)puVar1[1] + 0x19) == '\0') {
    puVar3 = puVar1;
    puVar5 = (undefined8 *)puVar1[1];
    do {
      puVar4 = puVar5;
      if ((ulonglong)puVar4[4] < *param_2) {
        puVar5 = (undefined8 *)puVar4[2];
        puVar4 = puVar3;
      }
      else {
        puVar5 = (undefined8 *)*puVar4;
      }
      puVar3 = puVar4;
    } while (*(char *)((longlong)puVar5 + 0x19) == '\0');
  }
  if ((puVar4 != puVar1) && ((ulonglong)puVar4[4] <= *param_2)) {
    return puVar4 + 5;
  }
  local_res8 = param_2;
  lVar2 = FUN_180572920(param_1,param_2,&local_res8);
  FUN_180572980(param_1,&local_res8,puVar4,lVar2 + 0x20,lVar2);
  return local_res8 + 5;
}



############ FUN_ 180571280 size=145 ############

int * FUN_180571280(longlong *param_1,int *param_2)

{
  undefined8 *puVar1;
  longlong lVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  int *local_res8;
  
  puVar1 = (undefined8 *)*param_1;
  puVar4 = puVar1;
  if (*(char *)((longlong)puVar1[1] + 0x19) == '\0') {
    puVar3 = puVar1;
    puVar5 = (undefined8 *)puVar1[1];
    do {
      puVar4 = puVar5;
      if (*(int *)(puVar4 + 4) < *param_2) {
        puVar5 = (undefined8 *)puVar4[2];
        puVar4 = puVar3;
      }
      else {
        puVar5 = (undefined8 *)*puVar4;
      }
      puVar3 = puVar4;
    } while (*(char *)((longlong)puVar5 + 0x19) == '\0');
  }
  if ((puVar4 != puVar1) && (*(int *)(puVar4 + 4) <= *param_2)) {
    return (int *)(puVar4 + 5);
  }
  local_res8 = param_2;
  lVar2 = FUN_180572bb0(param_1,param_2,&local_res8);
  FUN_180572be0(param_1,&local_res8,puVar4,lVar2 + 0x20,lVar2);
  return local_res8 + 10;
}



############ FUN_ 18056fd10 size=545 ############

undefined8 *
FUN_18056fd10(longlong *param_1,undefined8 *param_2,char param_3,undefined8 *param_4,
             undefined8 param_5,longlong *param_6)

{
  char cVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  
  if (0x666666666666664 < (ulonglong)param_1[1]) {
    FUN_18056f8a0(0x666666666666665,param_6);
                    /* WARNING: Subroutine does not return */
    std::_Xlength_error("map/set<T> too long");
  }
  param_1[1] = param_1[1] + 1;
  param_6[1] = (longlong)param_4;
  if (param_4 == (undefined8 *)*param_1) {
    ((undefined8 *)*param_1)[1] = param_6;
    *(longlong **)*param_1 = param_6;
    lVar4 = *param_1;
  }
  else {
    if (param_3 != '\0') {
      *param_4 = param_6;
      if (param_4 == *(undefined8 **)*param_1) {
        *(longlong **)*param_1 = param_6;
      }
      goto LAB_18056fd94;
    }
    param_4[2] = param_6;
    lVar4 = *param_1;
    if (param_4 != *(undefined8 **)(lVar4 + 0x10)) goto LAB_18056fd94;
  }
  *(longlong **)(lVar4 + 0x10) = param_6;
LAB_18056fd94:
  cVar1 = *(char *)(param_6[1] + 0x18);
  plVar7 = param_6;
  do {
    if (cVar1 != '\0') {
      lVar4 = *param_1;
      *param_2 = plVar7;
      *(undefined1 *)(*(longlong *)(lVar4 + 8) + 0x18) = 1;
      return param_2;
    }
    plVar5 = (longlong *)param_6[1];
    plVar6 = *(longlong **)plVar5[1];
    if (plVar5 == plVar6) {
      lVar4 = ((longlong *)plVar5[1])[2];
      if (*(char *)(lVar4 + 0x18) == '\0') {
        *(undefined1 *)(plVar5 + 3) = 1;
        *(undefined1 *)(lVar4 + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        param_6 = *(longlong **)(param_6[1] + 8);
      }
      else {
        if (param_6 == (longlong *)plVar5[2]) {
          FUN_18047e230(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)*plVar5;
        *plVar5 = plVar6[2];
        if (*(char *)(plVar6[2] + 0x19) == '\0') {
          *(longlong **)(plVar6[2] + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
          plVar6[2] = (longlong)plVar5;
        }
        else {
          plVar2 = (longlong *)plVar5[1];
          if (plVar5 == (longlong *)plVar2[2]) {
            plVar2[2] = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
          else {
            *plVar2 = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
        }
LAB_18056ff09:
        plVar5[1] = (longlong)plVar6;
      }
    }
    else {
      if ((char)plVar6[3] != '\0') {
        if (param_6 == (longlong *)*plVar5) {
          FUN_18047e1d0(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)plVar5[2];
        plVar5[2] = *plVar6;
        if (*(char *)(*plVar6 + 0x19) == '\0') {
          *(longlong **)(*plVar6 + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
        }
        else {
          puVar3 = (undefined8 *)plVar5[1];
          if (plVar5 == (longlong *)*puVar3) {
            *puVar3 = plVar6;
          }
          else {
            puVar3[2] = plVar6;
          }
        }
        *plVar6 = (longlong)plVar5;
        goto LAB_18056ff09;
      }
      *(undefined1 *)(plVar5 + 3) = 1;
      *(undefined1 *)(plVar6 + 3) = 1;
      *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
      param_6 = *(longlong **)(param_6[1] + 8);
    }
    cVar1 = *(char *)(param_6[1] + 0x18);
  } while( true );
}



############ FUN_ 18056ff40 size=292 ############

undefined8 *
FUN_18056ff40(longlong *param_1,undefined8 *param_2,undefined8 param_3,int *param_4,void *param_5)

{
  char cVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  bool bVar5;
  undefined1 local_res8 [8];
  
  puVar3 = (undefined8 *)*param_1;
  bVar5 = true;
  puVar4 = puVar3;
  if (*(char *)((longlong)puVar3[1] + 0x19) == '\0') {
    puVar2 = (undefined8 *)puVar3[1];
    do {
      puVar4 = puVar2;
      bVar5 = *param_4 < *(int *)((longlong)puVar4 + 0x1c);
      if (bVar5) {
        puVar2 = (undefined8 *)*puVar4;
      }
      else {
        puVar2 = (undefined8 *)puVar4[2];
      }
    } while (*(char *)((longlong)puVar2 + 0x19) == '\0');
  }
  if (bVar5) {
    if (puVar4 == (undefined8 *)*puVar3) {
      puVar3 = (undefined8 *)FUN_18056fd10(param_1,local_res8,1);
      *param_2 = *puVar3;
      *(undefined1 *)(param_2 + 1) = 1;
      return param_2;
    }
    if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
      puVar3 = (undefined8 *)*puVar4;
      if (*(char *)((longlong)puVar3 + 0x19) == '\0') {
        cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
        puVar4 = puVar3;
        puVar3 = (undefined8 *)puVar3[2];
        while (cVar1 == '\0') {
          cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
          puVar4 = puVar3;
          puVar3 = (undefined8 *)puVar3[2];
        }
      }
      else {
        cVar1 = *(char *)((longlong)puVar4[1] + 0x19);
        puVar3 = (undefined8 *)puVar4[1];
        while ((puVar2 = puVar3, cVar1 == '\0' && (puVar4 == (undefined8 *)*puVar2))) {
          cVar1 = *(char *)((longlong)puVar2[1] + 0x19);
          puVar3 = (undefined8 *)puVar2[1];
          puVar4 = puVar2;
        }
        if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
          puVar4 = puVar2;
        }
      }
    }
    else {
      puVar4 = (undefined8 *)puVar4[2];
    }
  }
  if (*(int *)((longlong)puVar4 + 0x1c) < *param_4) {
    puVar3 = (undefined8 *)FUN_18056fd10(param_1,local_res8);
    *param_2 = *puVar3;
    *(undefined1 *)(param_2 + 1) = 1;
    return param_2;
  }
                    /* WARNING: Subroutine does not return */
  free(param_5);
}



############ FUN_ 180490cd0 size=45 ############

void FUN_180490cd0(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_180480500(0x38);
  *puVar1 = *param_1;
  puVar1[1] = *param_1;
  puVar1[2] = *param_1;
  return;
}



############ FUN_ 1804929c0 size=45 ############

void FUN_1804929c0(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_180480500(0x28);
  *puVar1 = *param_1;
  puVar1[1] = *param_1;
  puVar1[2] = *param_1;
  return;
}



############ FUN_ 180574090 size=545 ############

undefined8 *
FUN_180574090(longlong *param_1,undefined8 *param_2,char param_3,undefined8 *param_4,
             undefined8 param_5,longlong *param_6)

{
  char cVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  
  if (0x492492492492490 < (ulonglong)param_1[1]) {
    FUN_180573840(0x492492492492491,param_6);
                    /* WARNING: Subroutine does not return */
    std::_Xlength_error("map/set<T> too long");
  }
  param_1[1] = param_1[1] + 1;
  param_6[1] = (longlong)param_4;
  if (param_4 == (undefined8 *)*param_1) {
    ((undefined8 *)*param_1)[1] = param_6;
    *(longlong **)*param_1 = param_6;
    lVar4 = *param_1;
  }
  else {
    if (param_3 != '\0') {
      *param_4 = param_6;
      if (param_4 == *(undefined8 **)*param_1) {
        *(longlong **)*param_1 = param_6;
      }
      goto LAB_180574114;
    }
    param_4[2] = param_6;
    lVar4 = *param_1;
    if (param_4 != *(undefined8 **)(lVar4 + 0x10)) goto LAB_180574114;
  }
  *(longlong **)(lVar4 + 0x10) = param_6;
LAB_180574114:
  cVar1 = *(char *)(param_6[1] + 0x18);
  plVar7 = param_6;
  do {
    if (cVar1 != '\0') {
      lVar4 = *param_1;
      *param_2 = plVar7;
      *(undefined1 *)(*(longlong *)(lVar4 + 8) + 0x18) = 1;
      return param_2;
    }
    plVar5 = (longlong *)param_6[1];
    plVar6 = *(longlong **)plVar5[1];
    if (plVar5 == plVar6) {
      lVar4 = ((longlong *)plVar5[1])[2];
      if (*(char *)(lVar4 + 0x18) == '\0') {
        *(undefined1 *)(plVar5 + 3) = 1;
        *(undefined1 *)(lVar4 + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        param_6 = *(longlong **)(param_6[1] + 8);
      }
      else {
        if (param_6 == (longlong *)plVar5[2]) {
          FUN_18047e230(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)*plVar5;
        *plVar5 = plVar6[2];
        if (*(char *)(plVar6[2] + 0x19) == '\0') {
          *(longlong **)(plVar6[2] + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
          plVar6[2] = (longlong)plVar5;
        }
        else {
          plVar2 = (longlong *)plVar5[1];
          if (plVar5 == (longlong *)plVar2[2]) {
            plVar2[2] = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
          else {
            *plVar2 = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
        }
LAB_180574289:
        plVar5[1] = (longlong)plVar6;
      }
    }
    else {
      if ((char)plVar6[3] != '\0') {
        if (param_6 == (longlong *)*plVar5) {
          FUN_18047e1d0(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)plVar5[2];
        plVar5[2] = *plVar6;
        if (*(char *)(*plVar6 + 0x19) == '\0') {
          *(longlong **)(*plVar6 + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
        }
        else {
          puVar3 = (undefined8 *)plVar5[1];
          if (plVar5 == (longlong *)*puVar3) {
            *puVar3 = plVar6;
          }
          else {
            puVar3[2] = plVar6;
          }
        }
        *plVar6 = (longlong)plVar5;
        goto LAB_180574289;
      }
      *(undefined1 *)(plVar5 + 3) = 1;
      *(undefined1 *)(plVar6 + 3) = 1;
      *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
      param_6 = *(longlong **)(param_6[1] + 8);
    }
    cVar1 = *(char *)(param_6[1] + 0x18);
  } while( true );
}



############ FUN_ 1805742c0 size=340 ############

undefined8 *
FUN_1805742c0(longlong *param_1,undefined8 *param_2,undefined8 param_3,ulonglong *param_4,
             void *param_5)

{
  char cVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  bool bVar5;
  undefined1 local_res8 [8];
  
  puVar3 = (undefined8 *)*param_1;
  bVar5 = true;
  puVar4 = puVar3;
  if (*(char *)((longlong)puVar3[1] + 0x19) == '\0') {
    puVar2 = (undefined8 *)puVar3[1];
    do {
      puVar4 = puVar2;
      bVar5 = *param_4 < (ulonglong)puVar4[4];
      if (bVar5) {
        puVar2 = (undefined8 *)*puVar4;
      }
      else {
        puVar2 = (undefined8 *)puVar4[2];
      }
    } while (*(char *)((longlong)puVar2 + 0x19) == '\0');
  }
  if (bVar5) {
    if (puVar4 == (undefined8 *)*puVar3) {
      puVar3 = (undefined8 *)FUN_180574090(param_1,local_res8,1);
      *param_2 = *puVar3;
      *(undefined1 *)(param_2 + 1) = 1;
      return param_2;
    }
    if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
      puVar3 = (undefined8 *)*puVar4;
      if (*(char *)((longlong)puVar3 + 0x19) == '\0') {
        cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
        puVar4 = puVar3;
        puVar3 = (undefined8 *)puVar3[2];
        while (cVar1 == '\0') {
          cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
          puVar4 = puVar3;
          puVar3 = (undefined8 *)puVar3[2];
        }
      }
      else {
        cVar1 = *(char *)((longlong)puVar4[1] + 0x19);
        puVar3 = (undefined8 *)puVar4[1];
        while ((puVar2 = puVar3, cVar1 == '\0' && (puVar4 == (undefined8 *)*puVar2))) {
          cVar1 = *(char *)((longlong)puVar2[1] + 0x19);
          puVar3 = (undefined8 *)puVar2[1];
          puVar4 = puVar2;
        }
        if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
          puVar4 = puVar2;
        }
      }
    }
    else {
      puVar4 = (undefined8 *)puVar4[2];
    }
  }
  if ((ulonglong)puVar4[4] < *param_4) {
    puVar3 = (undefined8 *)FUN_180574090(param_1,local_res8);
    *param_2 = *puVar3;
    *(undefined1 *)(param_2 + 1) = 1;
    return param_2;
  }
  FUN_18056d800((longlong)param_5 + 0x20);
                    /* WARNING: Subroutine does not return */
  free(param_5);
}



############ FUN_ 1804a8480 size=115 ############

undefined8 * FUN_1804a8480(void)

{
  undefined8 *puVar1;
  
  puVar1 = DAT_18267aa68;
  if (DAT_18267aa68 == (undefined8 *)0x0) {
    puVar1 = (undefined8 *)FUN_1811316e0(0x50);
    FUN_1812a7230(puVar1);
    *puVar1 = juce::RenderingHelpers::
              GlyphCache<juce::RenderingHelpers::CachedGlyphEdgeTable<juce::RenderingHelpers::SoftwareRendererSavedState>,juce::RenderingHelpers::SoftwareRendererSavedState>
              ::vftable;
    puVar1[1] = 0;
    puVar1[2] = 0;
    puVar1[3] = 0;
    *(undefined4 *)(puVar1 + 4) = 0;
    InitializeCriticalSection((LPCRITICAL_SECTION)((longlong)puVar1 + 0x24));
    FUN_1804a83f0(puVar1);
  }
  DAT_18267aa68 = puVar1;
  return puVar1;
}



############ FUN_ 1804a83f0 size=132 ############

void FUN_1804a83f0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  
  uVar1 = 0xfffffffffffffffe;
  EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x24));
  FUN_180488f10(param_1 + 8);
  if (*(int *)(param_1 + 0x10) != 0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)(param_1 + 8));
  }
  *(undefined4 *)(param_1 + 0x10) = 0;
  FUN_1804ac500(param_1,0x78,param_3,param_4,uVar1);
  LOCK();
  *(undefined4 *)(param_1 + 0x1c) = 0;
  UNLOCK();
  LOCK();
  *(undefined4 *)(param_1 + 0x20) = 0;
  UNLOCK();
                    /* WARNING: Could not recover jumptable at 0x0001804a8471. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x24));
  return;
}



############ FUN_ 18122bd40 size=148 ############

undefined4 * FUN_18122bd40(undefined4 *param_1)

{
  *param_1 = 0;
  LOCK();
  *param_1 = 0;
  UNLOCK();
  *(undefined1 *)(param_1 + 2) = 0;
  _Mtx_init_in_situ(param_1 + 4,2);
  _Cnd_init_in_situ(param_1 + 0x18);
  *(undefined1 *)(param_1 + 0x2a) = 0;
  *(undefined1 *)(param_1 + 0x2c) = 0;
  _Mtx_init_in_situ(param_1 + 0x2e,2);
  _Cnd_init_in_situ(param_1 + 0x42);
  *(undefined1 *)(param_1 + 0x54) = 0;
  *(undefined8 *)(param_1 + 0x56) = 0;
  *(undefined8 *)(param_1 + 0x58) = 0;
  *(undefined8 *)(param_1 + 0x5a) = 0;
  *(undefined8 *)(param_1 + 0x5c) = 0;
  FUN_18049ba20(param_1 + 0x5a,0x20);
  return param_1;
}



############ FUN_ 1804a2290 size=317 ############

/* WARNING: Removing unreachable block (ram,0x0001804a2324) */
/* WARNING: Removing unreachable block (ram,0x0001804a2330) */

void FUN_1804a2290(longlong param_1,int param_2,undefined8 param_3,undefined8 param_4)

{
  uint *puVar1;
  uint uVar2;
  undefined8 *puVar3;
  bool bVar4;
  uint *local_res8;
  
  FUN_180493780(&local_res8,param_1 + 0x10,param_3,param_4,0xfffffffffffffffe);
  puVar3 = (undefined8 *)(param_1 + 0x188);
  FUN_1804abb60(puVar3);
  if (*(int *)(param_1 + 400) != 0) {
                    /* WARNING: Subroutine does not return */
    free((void *)*puVar3);
  }
  *(undefined4 *)(param_1 + 400) = 0;
  if (0 < param_2) {
    FUN_1804ab9f0(puVar3);
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar2 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar4 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar2;
    if (bVar4) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  if ((DAT_1821dbf88 & 0x30000000) == 0) {
    LOCK();
    uVar2 = DAT_1821dbf88 - 1;
    UNLOCK();
    bVar4 = DAT_1821dbf88 == 0;
    DAT_1821dbf88 = uVar2;
    if (bVar4) {
                    /* WARNING: Subroutine does not return */
      free(&DAT_1821dbf88);
    }
  }
  do {
    LOCK();
    uVar2 = *local_res8;
    *local_res8 = *local_res8 | 1;
    UNLOCK();
  } while ((uVar2 & 1) != 0);
  puVar1 = local_res8 + 0x57;
  *puVar1 = *puVar1 - 1;
  if (*puVar1 == 0) {
    local_res8[0x58] = 0;
    local_res8[0x59] = 0;
    FUN_181215c10(local_res8 + 2);
    FUN_181215c10(local_res8 + 0x2c);
  }
  LOCK();
  *local_res8 = 0;
  UNLOCK();
  return;
}



############ FUN_ 180493780 size=191 ############

undefined8 * FUN_180493780(undefined8 *param_1,uint *param_2,undefined8 param_3,undefined8 param_4)

{
  uint uVar1;
  DWORD DVar2;
  ulonglong uVar3;
  undefined8 uVar4;
  
  uVar4 = 0xfffffffffffffffe;
  *param_1 = param_2;
  DVar2 = GetCurrentThreadId();
  uVar3 = (ulonglong)DVar2;
  do {
    LOCK();
    uVar1 = *param_2;
    *param_2 = *param_2 | 1;
    UNLOCK();
  } while ((uVar1 & 1) != 0);
  while (((param_2[0x5d] + param_2[0x57] != 0 && (uVar3 != *(ulonglong *)(param_2 + 0x58))) &&
         ((param_2[0x5d] != 1 || (**(ulonglong **)(param_2 + 0x5a) != uVar3))))) {
    param_2[0x56] = param_2[0x56] + 1;
    LOCK();
    *param_2 = 0;
    UNLOCK();
    FUN_181215c90(param_2 + 0x2c,100,param_3,param_4,uVar4);
    do {
      LOCK();
      uVar1 = *param_2;
      *param_2 = *param_2 | 1;
      UNLOCK();
    } while ((uVar1 & 1) != 0);
    param_2[0x56] = param_2[0x56] - 1;
  }
  *(ulonglong *)(param_2 + 0x58) = uVar3;
  param_2[0x57] = param_2[0x57] + 1;
  LOCK();
  *param_2 = 0;
  UNLOCK();
  return param_1;
}



############ FUN_ 18120cae1 size=279 ############

undefined8 FUN_18120cae1(void)

{
  undefined8 in_RAX;
  
  return in_RAX;
}



############ FUN_ 18049aca0 size=136 ############

void FUN_18049aca0(longlong *param_1)

{
  uint uVar1;
  longlong *_Memory;
  uint *puVar2;
  
  if (*param_1 == 0) {
    return;
  }
  _Memory = (longlong *)*param_1;
  *param_1 = *_Memory;
  puVar2 = (uint *)(_Memory[2] + -0x10);
  if ((*puVar2 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar2;
    *puVar2 = *puVar2 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar2);
    }
  }
  puVar2 = (uint *)(_Memory[1] + -0x10);
  if ((*puVar2 & 0x30000000) == 0) {
    LOCK();
    uVar1 = *puVar2;
    *puVar2 = *puVar2 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar2);
    }
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 18122c130 size=113 ############

void FUN_18122c130(longlong param_1)

{
  uint uVar1;
  
  if (300 < *(int *)(param_1 + 0xc)) {
    uVar1 = DAT_1826737fc;
    if (DAT_1826737fc == 0) {
      uVar1 = timeGetTime();
      if (uVar1 < DAT_1826737fc) {
        if (uVar1 < DAT_1826737fc - 1000) {
          LOCK();
          UNLOCK();
          DAT_1826737fc = uVar1;
        }
      }
      else {
        LOCK();
        UNLOCK();
        DAT_1826737fc = uVar1;
      }
    }
    if (*(int *)(param_1 + 0x3c) + 30000U < uVar1) {
      FUN_18122bfb0(param_1);
      return;
    }
  }
  return;
}



############ FUN_ 180489070 size=270 ############

uint FUN_180489070(longlong *param_1,uint param_2,longlong *param_3)

{
  undefined8 *puVar1;
  uint *puVar2;
  uint uVar3;
  longlong lVar4;
  int iVar5;
  longlong *plVar6;
  ulonglong uVar7;
  undefined8 *puVar8;
  undefined8 *puVar9;
  bool bVar10;
  
  iVar5 = *(int *)((longlong)param_1 + 0xc) + 1;
  if ((int)param_1[1] < iVar5) {
    FUN_18048a300(param_1,*(int *)((longlong)param_1 + 0xc) + 9 + iVar5 / 2 & 0xfffffff8);
  }
  uVar3 = *(uint *)((longlong)param_1 + 0xc);
  if (param_2 < uVar3) {
    puVar8 = (undefined8 *)(*param_1 + (longlong)(int)uVar3 * 8);
    puVar9 = puVar8 + 1;
    if (0 < (int)(uVar3 - param_2)) {
      uVar7 = (ulonglong)(uVar3 - param_2);
      do {
        puVar1 = puVar8 + -1;
        puVar8 = puVar8 + -1;
        puVar9[-1] = *puVar1;
        puVar9 = puVar9 + -1;
        *puVar8 = &DAT_1821dbf98;
        if ((DAT_1821dbf88 & 0x30000000) == 0) {
          LOCK();
          uVar3 = DAT_1821dbf88 - 1;
          UNLOCK();
          bVar10 = DAT_1821dbf88 == 0;
          DAT_1821dbf88 = uVar3;
          if (bVar10) {
                    /* WARNING: Subroutine does not return */
            free(&DAT_1821dbf88);
          }
        }
        uVar7 = uVar7 - 1;
      } while (uVar7 != 0);
    }
    plVar6 = (longlong *)(*param_1 + (longlong)(int)param_2 * 8);
  }
  else {
    plVar6 = (longlong *)(*param_1 + (longlong)(int)uVar3 * 8);
  }
  lVar4 = *param_3;
  *plVar6 = lVar4;
  uVar3 = *(uint *)(lVar4 + -0x10);
  if ((uVar3 & 0x30000000) == 0) {
    LOCK();
    puVar2 = (uint *)(lVar4 + -0x10);
    uVar3 = *puVar2;
    *puVar2 = *puVar2 + 1;
    UNLOCK();
  }
  *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + 1;
  return uVar3;
}



############ FUN_ 18124a3a0 size=72 ############

undefined8 FUN_18124a3a0(undefined8 param_1,void *param_2,size_t param_3)

{
  void *_Dst;
  
  if (param_3 != 0) {
    _Dst = (void *)FUN_181234e40(param_1,param_3);
    if (_Dst == (void *)0x0) {
      return 0;
    }
    memcpy(_Dst,param_2,param_3);
  }
  return 1;
}



############ FUN_ 181246e90 size=586 ############

void FUN_181246e90(undefined8 param_1,longlong *param_2,undefined8 *param_3)

{
  char *pcVar1;
  code *pcVar2;
  undefined8 uVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  undefined1 local_res18 [8];
  
  pcVar1 = (char *)param_3[1];
  lVar4 = -1;
  if (*pcVar1 == '\0') {
    if (*(char *)(param_3 + 3) == '\0') goto LAB_181247000;
    (**(code **)(*param_2 + 0x20))(param_2,"<?xml version=\"1.0\" encoding=\"",0x1e);
    pcVar1 = (char *)param_3[2];
    if (*pcVar1 == '\0') {
      (**(code **)(*param_2 + 0x20))(param_2,"UTF-8",5);
    }
    else {
      uVar3 = FUN_18049d240(pcVar1);
      (**(code **)(*param_2 + 0x20))(param_2,pcVar1,uVar3);
    }
    (**(code **)(*param_2 + 0x20))(param_2,&DAT_1821db518,3);
    if (param_3[4] != 0) {
      lVar6 = -1;
      do {
        lVar6 = lVar6 + 1;
      } while (*(char *)(param_3[4] + lVar6) != '\0');
      (**(code **)(*param_2 + 0x20))(param_2);
      lVar5 = -1;
      lVar6 = *param_2;
      do {
        lVar5 = lVar5 + 1;
      } while (*(char *)(param_3[4] + lVar5) != '\0');
      goto LAB_181246ffa;
    }
  }
  else {
    uVar3 = FUN_18049d240(pcVar1);
    (**(code **)(*param_2 + 0x20))(param_2,pcVar1,uVar3);
    if (param_3[4] != 0) {
      lVar6 = -1;
      do {
        lVar6 = lVar6 + 1;
      } while (*(char *)(param_3[4] + lVar6) != '\0');
      (**(code **)(*param_2 + 0x20))(param_2);
      lVar5 = -1;
      lVar6 = *param_2;
      do {
        lVar5 = lVar5 + 1;
      } while (*(char *)(param_3[4] + lVar5) != '\0');
LAB_181246ffa:
      (**(code **)(lVar6 + 0x20))(param_2);
      goto LAB_181247000;
    }
  }
  pcVar2 = *(code **)(*param_2 + 0x28);
  if (pcVar2 == FUN_18122e9b0) {
    local_res18[0] = 0x20;
    (**(code **)(*param_2 + 0x20))(param_2,local_res18,1);
  }
  else {
    (*pcVar2)(param_2,0x20);
  }
LAB_181247000:
  pcVar1 = (char *)*param_3;
  if (*pcVar1 != '\0') {
    uVar3 = FUN_18049d240(pcVar1);
    (**(code **)(*param_2 + 0x20))(param_2,pcVar1,uVar3);
    if (param_3[4] == 0) {
      pcVar2 = *(code **)(*param_2 + 0x28);
      if (pcVar2 == FUN_18122e9b0) {
        local_res18[0] = 0x20;
        (**(code **)(*param_2 + 0x20))(param_2,local_res18,1);
      }
      else {
        (*pcVar2)(param_2,0x20);
      }
    }
    else {
      lVar6 = -1;
      do {
        lVar6 = lVar6 + 1;
      } while (*(char *)(param_3[4] + lVar6) != '\0');
      (**(code **)(*param_2 + 0x20))(param_2);
    }
  }
  FUN_181221060(param_1,param_2,(param_3[4] != 0) - 1,*(undefined4 *)((longlong)param_3 + 0x1c),
                param_3[4]);
  lVar6 = param_3[4];
  if (lVar6 != 0) {
    do {
      lVar4 = lVar4 + 1;
    } while (*(char *)(lVar6 + lVar4) != '\0');
    (**(code **)(*param_2 + 0x20))(param_2,lVar6,lVar4);
  }
  return;
}



############ FUN_ 1805273a0 size=166 ############

undefined8 * FUN_1805273a0(longlong param_1)

{
  int iVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  longlong lVar4;
  
  puVar2 = (undefined8 *)FUN_1811316e0(0x20);
  *puVar2 = 0;
  puVar2[1] = 0;
  puVar2[2] = 0;
  lVar4 = *(longlong *)(param_1 + 0x10);
  puVar2[3] = lVar4;
  if ((*(uint *)(lVar4 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar4 + -0x10) = *(int *)(lVar4 + -0x10) + 1;
    UNLOCK();
  }
  FUN_181243430(param_1 + 0x18,puVar2);
  iVar1 = *(int *)(param_1 + 0x34) + -1;
  lVar4 = (longlong)iVar1;
  if (-1 < iVar1) {
    do {
      puVar3 = (undefined8 *)
               FUN_1805273a0(*(undefined8 *)(*(longlong *)(param_1 + 0x28) + lVar4 * 8));
      if (puVar3 != (undefined8 *)0x0) {
        *puVar3 = puVar2[1];
        puVar2[1] = puVar3;
      }
      lVar4 = lVar4 + -1;
    } while (-1 < lVar4);
  }
  return puVar2;
}



############ FUN_ 180526910 size=277 ############

undefined8 *
FUN_180526910(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  int iVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  longlong lVar5;
  int iVar6;
  undefined8 *puVar7;
  
  param_1[1] = 0;
  *(undefined4 *)(param_1 + 1) = 0;
  *param_1 = juce::ValueTree::SharedObject::vftable;
  lVar5 = *(longlong *)(param_2 + 0x10);
  param_1[2] = lVar5;
  if ((*(uint *)(lVar5 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar5 + -0x10) = *(int *)(lVar5 + -0x10) + 1;
    UNLOCK();
  }
  FUN_18049b090(param_1 + 3,param_2 + 0x18,param_3,param_4,0xfffffffffffffffe);
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  puVar7 = *(undefined8 **)(param_2 + 0x28);
  puVar1 = puVar7 + *(int *)(param_2 + 0x34);
  for (; puVar7 != puVar1; puVar7 = puVar7 + 1) {
    uVar3 = *puVar7;
    uVar4 = FUN_1811316e0(0x50);
    lVar5 = FUN_180526910(uVar4,uVar3);
    *(undefined8 **)(lVar5 + 0x48) = param_1;
    iVar2 = *(int *)((longlong)param_1 + 0x34);
    iVar6 = iVar2 + 1;
    if (*(int *)(param_1 + 6) < iVar6) {
      if (iVar6 < 0) {
        iVar6 = iVar2 + 2;
      }
      FUN_18047cb30(param_1 + 5,iVar2 + 9 + (iVar6 >> 1) & 0xfffffff8);
    }
    iVar6 = *(int *)((longlong)param_1 + 0x34);
    *(int *)((longlong)param_1 + 0x34) = iVar6 + 1;
    *(longlong *)(param_1[5] + (longlong)iVar6 * 8) = lVar5;
    LOCK();
    *(int *)(lVar5 + 8) = *(int *)(lVar5 + 8) + 1;
    UNLOCK();
  }
  return param_1;
}



############ FUN_ 181352050 size=238 ############

undefined8 * FUN_181352050(longlong *param_1,undefined8 *param_2,uint param_3)

{
  uint uVar1;
  longlong lVar2;
  bool bVar3;
  bool bVar4;
  undefined1 **ppuVar5;
  uint *puVar6;
  undefined1 *local_res8;
  undefined1 *local_res10;
  
  local_res8 = (undefined1 *)((ulonglong)local_res8 & 0xffffffff00000000);
  lVar2 = *param_1;
  if (lVar2 == 0) {
    bVar4 = false;
    bVar3 = true;
    local_res10 = &DAT_1821dbf98;
    ppuVar5 = &local_res10;
  }
  else {
    bVar4 = true;
    bVar3 = false;
    if (param_3 < *(uint *)(lVar2 + 0x24)) {
      local_res8 = *(undefined1 **)(*(longlong *)(lVar2 + 0x18) + (longlong)(int)param_3 * 0x18);
      if ((*(uint *)(local_res8 + -0x10) & 0x30000000) == 0) {
        LOCK();
        *(int *)(local_res8 + -0x10) = *(int *)(local_res8 + -0x10) + 1;
        UNLOCK();
      }
    }
    else {
      local_res8 = &DAT_1821dbf98;
    }
    ppuVar5 = &local_res8;
  }
  *param_2 = *ppuVar5;
  *ppuVar5 = &DAT_1821dbf98;
  if (bVar4) {
    puVar6 = (uint *)(local_res8 + -0x10);
    if ((*puVar6 & 0x30000000) == 0) {
      LOCK();
      uVar1 = *puVar6;
      *puVar6 = *puVar6 - 1;
      UNLOCK();
      if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        free(puVar6);
      }
    }
  }
  if ((bVar3) && (puVar6 = (uint *)(local_res10 + -0x10), (*puVar6 & 0x30000000) == 0)) {
    LOCK();
    uVar1 = *puVar6;
    *puVar6 = *puVar6 - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar6);
    }
  }
  return param_2;
}



############ FUN_ 180488a80 size=150 ############

int FUN_180488a80(longlong *param_1,longlong *param_2)

{
  longlong lVar1;
  longlong lVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  
  iVar7 = *(int *)((longlong)param_1 + 0xc);
  iVar6 = 0;
  if (0 < iVar7) {
    lVar1 = *param_1;
    lVar2 = *param_2;
    do {
      if (lVar2 == *(longlong *)(lVar1 + (longlong)iVar6 * 8)) {
        return iVar6;
      }
      iVar4 = FUN_18048cbc0(lVar2);
      if (iVar4 == 0) {
        return iVar6;
      }
      iVar4 = (iVar7 + iVar6) / 2;
      if (iVar4 == iVar6) {
        return -1;
      }
      iVar5 = FUN_18048cbc0(lVar2,*(undefined8 *)(lVar1 + (longlong)iVar4 * 8));
      iVar3 = iVar4;
      if (iVar5 < 0) {
        iVar3 = iVar6;
        iVar7 = iVar4;
      }
      iVar6 = iVar3;
    } while (iVar6 < iVar7);
  }
  return -1;
}



############ FUN_ 181220ef0 size=184 ############

void FUN_181220ef0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined **local_58 [2];
  void **local_48;
  void *local_40 [2];
  void *local_30;
  void *local_20;
  
  FUN_18124a4b0(local_58,0x800,param_3,param_4,0xfffffffffffffffe);
  FUN_181246e90(param_1,local_58,param_3);
  if (local_48 != (void **)0x0) {
    if (local_20 < local_48[1]) {
      *(undefined1 *)((longlong)local_20 + (longlong)*local_48) = 0;
    }
    local_30 = *local_48;
  }
  FUN_18124a8a0(param_2,local_30,(longlong)local_20 + (longlong)local_30);
  local_58[0] = juce::MemoryOutputStream::vftable;
  if ((local_48 != local_40) && (local_48 != (void **)0x0)) {
    FUN_18124a200(local_48,local_20,0);
  }
                    /* WARNING: Subroutine does not return */
  free(local_40[0]);
}



############ FUN_ 180526c70 size=124 ############

void FUN_180526c70(longlong param_1,undefined8 param_2,undefined8 param_3)

{
  longlong *local_38;
  undefined8 uStack_30;
  longlong local_28;
  void *local_20;
  undefined8 local_18;
  
  LOCK();
  *(int *)(param_1 + 8) = *(int *)(param_1 + 8) + 1;
  UNLOCK();
  local_20 = (void *)0x0;
  local_18 = 0;
  local_38 = &local_28;
  uStack_30 = param_2;
  local_28 = param_1;
  FUN_1805282f0(local_38._0_4_,param_3,&local_38,param_3,0xfffffffffffffffe);
  if ((local_18._4_4_ != 0) && (local_28 != 0)) {
    FUN_180527d40(local_28 + 0x38,&local_28);
  }
  local_18 = local_18 & 0xffffffff;
                    /* WARNING: Subroutine does not return */
  free(local_20);
}



############ FUN_ 181243b40 size=315 ############

undefined8 FUN_181243b40(longlong *param_1,longlong *param_2)

{
  int iVar1;
  longlong *plVar2;
  longlong *plVar3;
  uint *_Memory;
  longlong *plVar4;
  int iVar5;
  longlong lVar6;
  ulonglong uVar7;
  uint uVar8;
  uint uVar9;
  
  uVar9 = *(uint *)((longlong)param_1 + 0xc);
  uVar8 = 0;
  if (0 < (int)uVar9) {
    lVar6 = 0;
    plVar3 = (longlong *)*param_1;
    do {
      if (*plVar3 == *param_2) {
        if (uVar8 < uVar9) {
          uVar9 = (uVar9 - uVar8) - 1;
          plVar3 = (longlong *)*param_1 + (longlong)(int)uVar8 * 3;
          if (0 < (int)uVar9) {
            uVar7 = (ulonglong)uVar9;
            plVar2 = plVar3;
            do {
              plVar4 = plVar2 + 3;
              lVar6 = *plVar3;
              *plVar3 = *plVar4;
              *plVar4 = lVar6;
              lVar6 = plVar3[1];
              plVar3[1] = plVar2[4];
              plVar2[4] = lVar6;
              lVar6 = plVar3[2];
              plVar3[2] = plVar2[5];
              plVar3 = plVar3 + 3;
              plVar2[5] = lVar6;
              uVar7 = uVar7 - 1;
              plVar2 = plVar4;
            } while (uVar7 != 0);
          }
          (**(code **)(*(longlong *)plVar3[1] + 0xb0))((longlong *)plVar3[1],plVar3 + 2);
          _Memory = (uint *)(*plVar3 + -0x10);
          if ((*_Memory & 0x30000000) == 0) {
            LOCK();
            uVar9 = *_Memory;
            *_Memory = *_Memory - 1;
            UNLOCK();
            if (uVar9 == 0) {
                    /* WARNING: Subroutine does not return */
              free(_Memory);
            }
          }
          *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
          iVar1 = *(int *)((longlong)param_1 + 0xc);
          iVar5 = 0;
          if (0 < iVar1 * 2) {
            iVar5 = iVar1 * 2;
          }
          if (iVar5 < (int)param_1[1]) {
            if (iVar1 < 2) {
              iVar1 = 2;
            }
            if (iVar1 < (int)param_1[1]) {
              FUN_18049b620(param_1);
            }
          }
        }
        return 1;
      }
      uVar8 = uVar8 + 1;
      lVar6 = lVar6 + 1;
      plVar3 = plVar3 + 3;
    } while (lVar6 < (int)uVar9);
  }
  return 0;
}



############ FUN_ 181247930 size=201 ############

void FUN_181247930(undefined8 param_1,undefined8 param_2,longlong param_3)

{
  undefined **local_58 [2];
  void **local_48;
  void *local_40 [2];
  void *local_30;
  void *local_20;
  
  FUN_18124a4b0(local_58,(ulonglong)(param_3 * 4) / 3 + 3,param_3,param_3 * 4,0xfffffffffffffffe);
  FUN_18122bde0(local_58,param_2,param_3);
  if (local_48 != (void **)0x0) {
    if (local_20 < local_48[1]) {
      *(undefined1 *)((longlong)*local_48 + (longlong)local_20) = 0;
    }
    local_30 = *local_48;
  }
  FUN_18122f8f0(param_1,local_30,(ulonglong)local_20 & 0xffffffff);
  local_58[0] = juce::MemoryOutputStream::vftable;
  if ((local_48 != local_40) && (local_48 != (void **)0x0)) {
    FUN_18124a200(local_48,local_20,0);
  }
                    /* WARNING: Subroutine does not return */
  free(local_40[0]);
}



############ FUN_ 180c4d000 size=12106 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x000180c4ff23) */
/* WARNING: Removing unreachable block (ram,0x000180c4ff2b) */
/* WARNING: Removing unreachable block (ram,0x000180c4f321) */
/* WARNING: Removing unreachable block (ram,0x000180c4f324) */
/* WARNING: Removing unreachable block (ram,0x000180c4f32a) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_180c4d000(longlong param_1,byte *param_2,byte *param_3,undefined8 param_4,uint param_5,
                  byte *param_6,byte *param_7,uint param_8,undefined8 param_9)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  byte *pbVar4;
  byte *pbVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  int iVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  longlong lVar32;
  byte *pbVar33;
  uint uVar34;
  byte *pbVar35;
  uint uVar36;
  ulonglong uVar37;
  uint uVar38;
  uint uVar39;
  uint uVar40;
  bool bVar41;
  byte bStackX_21;
  byte bStackX_22;
  byte bStackX_23;
  byte bStackX_24;
  byte bStackX_25;
  byte bStackX_26;
  byte bStackX_27;
  undefined1 auStack_5278 [32];
  uint local_5258;
  uint local_5254;
  uint local_5250;
  uint local_524c;
  uint local_5248;
  uint local_5244;
  uint local_5240;
  uint local_523c;
  uint local_5238;
  uint local_5234;
  uint local_5230;
  uint local_522c;
  uint local_5228;
  int local_5224;
  uint local_5220;
  uint local_521c;
  int local_5218;
  uint local_5214;
  uint local_5210;
  uint local_520c;
  uint local_5208;
  uint local_5204;
  int local_5200;
  uint local_51fc;
  uint local_51f8;
  uint local_51f4;
  uint local_51f0;
  uint local_51ec;
  uint local_51e8;
  uint local_51e4;
  uint local_51e0;
  uint local_51dc;
  uint local_51d8;
  uint local_51d4;
  uint local_51d0;
  uint local_51cc;
  uint local_51c8;
  uint local_51c4;
  uint local_51c0;
  uint local_51bc;
  uint local_51b8;
  uint local_51b4;
  uint local_51b0;
  uint local_51ac;
  uint local_51a8;
  uint local_51a4;
  uint local_51a0;
  uint local_519c;
  uint local_5198;
  uint local_5194;
  uint local_5190;
  uint local_518c;
  uint local_5188;
  uint local_5184;
  uint local_5180;
  uint local_517c;
  uint local_5178;
  uint local_5174;
  uint local_5170;
  uint local_516c;
  uint local_5168;
  uint local_5164;
  uint local_5160;
  uint local_515c;
  int local_5158;
  uint local_5154;
  uint local_5150;
  uint local_514c;
  uint local_5148;
  uint local_5144;
  uint local_5140;
  uint local_513c;
  int local_5138;
  uint local_5134;
  uint local_5130;
  uint local_512c;
  uint local_5128;
  uint local_5124;
  int local_5120;
  uint local_511c;
  uint local_5118;
  uint local_5114;
  uint local_5110;
  int local_510c;
  uint local_5108;
  uint local_5104;
  uint local_5100;
  uint local_50fc;
  uint local_50f8;
  uint local_50f4;
  uint local_50f0;
  uint local_50ec;
  uint local_50e8;
  uint local_50e4;
  uint local_50e0;
  int local_50dc;
  uint local_50d8;
  uint local_50d4;
  uint local_50d0;
  uint local_50cc;
  uint local_50c8;
  undefined4 local_50c4;
  uint local_50c0;
  uint local_50bc;
  uint local_50b8;
  uint local_50b4;
  uint local_50b0;
  byte *local_50a8;
  byte *local_50a0;
  longlong local_5098;
  undefined1 local_5088 [20480];
  longlong local_88;
  byte *local_80;
  byte *local_78;
  undefined8 local_70;
  uint local_68;
  byte *local_60;
  byte *local_58;
  uint local_50;
  undefined8 local_48;
  uint *local_40;
  ulonglong local_38;
  undefined8 uStack_30;
  
  uStack_30 = 0x180c4d027;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_5278;
  DAT_1826707a0 = 0;
  _DAT_182670790 = local_5088;
  uVar36 = 0x811c9dc5;
  if (param_1 != 0) {
    lVar32 = 0x34;
    pbVar35 = (byte *)(param_1 + 2);
    do {
      uVar36 = ((((pbVar35[-2] ^ uVar36) * 0x1000193 ^ (uint)pbVar35[-1]) * 0x1000193 ^
                (uint)*pbVar35) * 0x1000193 ^ (uint)pbVar35[1]) * 0x1000193;
      lVar32 = lVar32 + -1;
      pbVar35 = pbVar35 + 4;
    } while (lVar32 != 0);
  }
  if (param_2 != (byte *)0x0) {
    uVar36 = ((((((((((((((((((((((((((((((((uVar36 ^ *param_2) * 0x1000193 ^ (uint)param_2[1]) *
                                           0x1000193 ^ (uint)param_2[2]) * 0x1000193 ^
                                         (uint)param_2[3]) * 0x1000193 ^ (uint)param_2[4]) *
                                        0x1000193 ^ (uint)param_2[5]) * 0x1000193 ^ (uint)param_2[6]
                                      ) * 0x1000193 ^ (uint)param_2[7]) * 0x1000193 ^
                                    (uint)param_2[8]) * 0x1000193 ^ (uint)param_2[9]) * 0x1000193 ^
                                  (uint)param_2[10]) * 0x1000193 ^ (uint)param_2[0xb]) * 0x1000193 ^
                                (uint)param_2[0xc]) * 0x1000193 ^ (uint)param_2[0xd]) * 0x1000193 ^
                              (uint)param_2[0xe]) * 0x1000193 ^ (uint)param_2[0xf]) * 0x1000193 ^
                            (uint)param_2[0x10]) * 0x1000193 ^ (uint)param_2[0x11]) * 0x1000193 ^
                          (uint)param_2[0x12]) * 0x1000193 ^ (uint)param_2[0x13]) * 0x1000193 ^
                        (uint)param_2[0x14]) * 0x1000193 ^ (uint)param_2[0x15]) * 0x1000193 ^
                      (uint)param_2[0x16]) * 0x1000193 ^ (uint)param_2[0x17]) * 0x1000193 ^
                    (uint)param_2[0x18]) * 0x1000193 ^ (uint)param_2[0x19]) * 0x1000193 ^
                  (uint)param_2[0x1a]) * 0x1000193 ^ (uint)param_2[0x1b]) * 0x1000193 ^
                (uint)param_2[0x1c]) * 0x1000193 ^ (uint)param_2[0x1d]) * 0x1000193 ^
              (uint)param_2[0x1e]) * 0x1000193 ^ (uint)param_2[0x1f]) * 0x1000193;
  }
  if (param_3 != (byte *)0x0) {
    uVar36 = ((((((((((((((((((((((((((((((((uVar36 ^ *param_3) * 0x1000193 ^ (uint)param_3[1]) *
                                           0x1000193 ^ (uint)param_3[2]) * 0x1000193 ^
                                         (uint)param_3[3]) * 0x1000193 ^ (uint)param_3[4]) *
                                        0x1000193 ^ (uint)param_3[5]) * 0x1000193 ^ (uint)param_3[6]
                                      ) * 0x1000193 ^ (uint)param_3[7]) * 0x1000193 ^
                                    (uint)param_3[8]) * 0x1000193 ^ (uint)param_3[9]) * 0x1000193 ^
                                  (uint)param_3[10]) * 0x1000193 ^ (uint)param_3[0xb]) * 0x1000193 ^
                                (uint)param_3[0xc]) * 0x1000193 ^ (uint)param_3[0xd]) * 0x1000193 ^
                              (uint)param_3[0xe]) * 0x1000193 ^ (uint)param_3[0xf]) * 0x1000193 ^
                            (uint)param_3[0x10]) * 0x1000193 ^ (uint)param_3[0x11]) * 0x1000193 ^
                          (uint)param_3[0x12]) * 0x1000193 ^ (uint)param_3[0x13]) * 0x1000193 ^
                        (uint)param_3[0x14]) * 0x1000193 ^ (uint)param_3[0x15]) * 0x1000193 ^
                      (uint)param_3[0x16]) * 0x1000193 ^ (uint)param_3[0x17]) * 0x1000193 ^
                    (uint)param_3[0x18]) * 0x1000193 ^ (uint)param_3[0x19]) * 0x1000193 ^
                  (uint)param_3[0x1a]) * 0x1000193 ^ (uint)param_3[0x1b]) * 0x1000193 ^
                (uint)param_3[0x1c]) * 0x1000193 ^ (uint)param_3[0x1d]) * 0x1000193 ^
              (uint)param_3[0x1e]) * 0x1000193 ^ (uint)param_3[0x1f]) * 0x1000193;
  }
  pbVar35 = (byte *)0x2;
  bStackX_21 = (byte)((ulonglong)param_4 >> 8);
  bStackX_22 = (byte)((ulonglong)param_4 >> 0x10);
  bStackX_23 = (byte)((ulonglong)param_4 >> 0x18);
  bStackX_24 = (byte)((ulonglong)param_4 >> 0x20);
  bStackX_25 = (byte)((ulonglong)param_4 >> 0x28);
  bStackX_26 = (byte)((ulonglong)param_4 >> 0x30);
  bStackX_27 = (byte)((ulonglong)param_4 >> 0x38);
  uVar36 = ((((((((((((uVar36 ^ (uint)param_4 & 0xff) * 0x1000193 ^ (uint)bStackX_21) * 0x1000193 ^
                    (uint)bStackX_22) * 0x1000193 ^ (uint)bStackX_23) * 0x1000193 ^ (uint)bStackX_24
                  ) * 0x1000193 ^ (uint)bStackX_25) * 0x1000193 ^ (uint)bStackX_26) * 0x1000193 ^
               (uint)bStackX_27) * 0x1000193 ^ param_5 & 0xff) * 0x1000193 ^ param_5 >> 8 & 0xff) *
             0x1000193 ^ param_5 >> 0x10 & 0xff) * 0x1000193 ^ param_5 >> 0x18) * 0x1000193;
  pbVar4 = param_7;
  pbVar5 = param_7;
  if (param_6 != (byte *)0x0) {
    lVar32 = 2;
    pbVar33 = param_6;
    do {
      uVar36 = ((((((((((((((((((((((((((((((((((((((((((((((((uVar36 ^ *pbVar33) * 0x1000193 ^
                                                             (uint)pbVar33[1]) * 0x1000193 ^
                                                            (uint)pbVar33[2]) * 0x1000193 ^
                                                           (uint)pbVar33[3]) * 0x1000193 ^
                                                          (uint)pbVar33[4]) * 0x1000193 ^
                                                         (uint)pbVar33[5]) * 0x1000193 ^
                                                        (uint)pbVar33[6]) * 0x1000193 ^
                                                       (uint)pbVar33[7]) * 0x1000193 ^
                                                      (uint)pbVar33[8]) * 0x1000193 ^
                                                     (uint)pbVar33[9]) * 0x1000193 ^
                                                    (uint)pbVar33[10]) * 0x1000193 ^
                                                   (uint)pbVar33[0xb]) * 0x1000193 ^
                                                  (uint)pbVar33[0xc]) * 0x1000193 ^
                                                 (uint)pbVar33[0xd]) * 0x1000193 ^
                                                (uint)pbVar33[0xe]) * 0x1000193 ^ (uint)pbVar33[0xf]
                                               ) * 0x1000193 ^ (uint)pbVar33[0x10]) * 0x1000193 ^
                                             (uint)pbVar33[0x11]) * 0x1000193 ^ (uint)pbVar33[0x12])
                                            * 0x1000193 ^ (uint)pbVar33[0x13]) * 0x1000193 ^
                                          (uint)pbVar33[0x14]) * 0x1000193 ^ (uint)pbVar33[0x15]) *
                                         0x1000193 ^ (uint)pbVar33[0x16]) * 0x1000193 ^
                                       (uint)pbVar33[0x17]) * 0x1000193 ^ (uint)pbVar33[0x18]) *
                                      0x1000193 ^ (uint)pbVar33[0x19]) * 0x1000193 ^
                                    (uint)pbVar33[0x1a]) * 0x1000193 ^ (uint)pbVar33[0x1b]) *
                                   0x1000193 ^ (uint)pbVar33[0x1c]) * 0x1000193 ^
                                 (uint)pbVar33[0x1d]) * 0x1000193 ^ (uint)pbVar33[0x1e]) * 0x1000193
                               ^ (uint)pbVar33[0x1f]) * 0x1000193 ^ (uint)pbVar33[0x20]) * 0x1000193
                             ^ (uint)pbVar33[0x21]) * 0x1000193 ^ (uint)pbVar33[0x22]) * 0x1000193 ^
                           (uint)pbVar33[0x23]) * 0x1000193 ^ (uint)pbVar33[0x24]) * 0x1000193 ^
                         (uint)pbVar33[0x25]) * 0x1000193 ^ (uint)pbVar33[0x26]) * 0x1000193 ^
                       (uint)pbVar33[0x27]) * 0x1000193 ^ (uint)pbVar33[0x28]) * 0x1000193 ^
                     (uint)pbVar33[0x29]) * 0x1000193 ^ (uint)pbVar33[0x2a]) * 0x1000193 ^
                   (uint)pbVar33[0x2b]) * 0x1000193 ^ (uint)pbVar33[0x2c]) * 0x1000193 ^
                 (uint)pbVar33[0x2d]) * 0x1000193 ^ (uint)pbVar33[0x2e]) * 0x1000193 ^
               (uint)pbVar33[0x2f]) * 0x1000193;
      lVar32 = lVar32 + -1;
      pbVar33 = pbVar33 + 0x30;
    } while (lVar32 != 0);
  }
  while (pbVar5 != (byte *)0x0) {
    uVar36 = ((((((((((((((((((((((((((((((((((((((((((((((((uVar36 ^ *pbVar4) * 0x1000193 ^
                                                           (uint)pbVar4[1]) * 0x1000193 ^
                                                          (uint)pbVar4[2]) * 0x1000193 ^
                                                         (uint)pbVar4[3]) * 0x1000193 ^
                                                        (uint)pbVar4[4]) * 0x1000193 ^
                                                       (uint)pbVar4[5]) * 0x1000193 ^
                                                      (uint)pbVar4[6]) * 0x1000193 ^ (uint)pbVar4[7]
                                                     ) * 0x1000193 ^ (uint)pbVar4[8]) * 0x1000193 ^
                                                   (uint)pbVar4[9]) * 0x1000193 ^ (uint)pbVar4[10])
                                                  * 0x1000193 ^ (uint)pbVar4[0xb]) * 0x1000193 ^
                                                (uint)pbVar4[0xc]) * 0x1000193 ^ (uint)pbVar4[0xd])
                                               * 0x1000193 ^ (uint)pbVar4[0xe]) * 0x1000193 ^
                                             (uint)pbVar4[0xf]) * 0x1000193 ^ (uint)pbVar4[0x10]) *
                                            0x1000193 ^ (uint)pbVar4[0x11]) * 0x1000193 ^
                                          (uint)pbVar4[0x12]) * 0x1000193 ^ (uint)pbVar4[0x13]) *
                                         0x1000193 ^ (uint)pbVar4[0x14]) * 0x1000193 ^
                                       (uint)pbVar4[0x15]) * 0x1000193 ^ (uint)pbVar4[0x16]) *
                                      0x1000193 ^ (uint)pbVar4[0x17]) * 0x1000193 ^
                                    (uint)pbVar4[0x18]) * 0x1000193 ^ (uint)pbVar4[0x19]) *
                                   0x1000193 ^ (uint)pbVar4[0x1a]) * 0x1000193 ^ (uint)pbVar4[0x1b])
                                 * 0x1000193 ^ (uint)pbVar4[0x1c]) * 0x1000193 ^ (uint)pbVar4[0x1d])
                               * 0x1000193 ^ (uint)pbVar4[0x1e]) * 0x1000193 ^ (uint)pbVar4[0x1f]) *
                             0x1000193 ^ (uint)pbVar4[0x20]) * 0x1000193 ^ (uint)pbVar4[0x21]) *
                           0x1000193 ^ (uint)pbVar4[0x22]) * 0x1000193 ^ (uint)pbVar4[0x23]) *
                         0x1000193 ^ (uint)pbVar4[0x24]) * 0x1000193 ^ (uint)pbVar4[0x25]) *
                       0x1000193 ^ (uint)pbVar4[0x26]) * 0x1000193 ^ (uint)pbVar4[0x27]) * 0x1000193
                    ^ (uint)pbVar4[0x28]) * 0x1000193 ^ (uint)pbVar4[0x29]) * 0x1000193 ^
                  (uint)pbVar4[0x2a]) * 0x1000193 ^ (uint)pbVar4[0x2b]) * 0x1000193 ^
                (uint)pbVar4[0x2c]) * 0x1000193 ^ (uint)pbVar4[0x2d]) * 0x1000193 ^
              (uint)pbVar4[0x2e]) * 0x1000193 ^ (uint)pbVar4[0x2f]) * 0x1000193;
    pbVar35 = pbVar35 + -1;
    pbVar4 = pbVar4 + 0x30;
    pbVar5 = pbVar35;
  }
  DAT_1826707c8 = 0x2be7129a;
  DAT_1826707e4 = 0xf07e5c42;
  DAT_1826707bc = 0x7b69aa88;
  DAT_1826707e0 = 0xce9d1ff;
  DAT_1826707c4 = 0xa33223ac;
  DAT_1826707cc = 0x328894c4;
  DAT_1826707d0 = 0xd5aca1c6;
  DAT_1826707f4 = 0x6a6cbb69;
  DAT_1826707ec = 0x3bef7fbb;
  DAT_1826707b4 = 0x6e7fd889;
  DAT_1826707b8 = 0xe335eb6a;
  DAT_1826707dc = 0xa1120188;
  DAT_1826707ac = 0xdffdbfc7;
  DAT_1826707f0 = 0x41fcacb5;
  DAT_1826707b0 = 0xbb696a6c;
  uVar23 = (((uVar36 ^ param_8 & 0xff) * 0x1000193 ^ param_8 >> 8 & 0xff) * 0x1000193 ^
           param_8 >> 0x10 & 0xff) * 0x1000193 ^ param_8 >> 0x18;
  DAT_1826707c0 = 0xce9d1ff;
  DAT_182670818 = uVar23 * 0x1000193;
  DAT_1826707e8 = 0xd8da94d1;
  DAT_1826707d4 = 0xaa887b69;
  DAT_1826707d8 = 0x6e896cc4;
  DAT_1826707a8 = 0x23aca332;
  uVar31 = uVar23 * 0x2c365f7b;
  uVar6 = DAT_182670818 >> 0x10;
  uVar36 = DAT_182670818 + 0x17afacc6;
  uVar34 = (DAT_182670818 & 0xff0000 | uVar6) >> 8;
  uVar7 = uVar23 * 0x1930000;
  uVar24 = DAT_182670818 & 0xff00;
  uVar38 = uVar31 & 0xc0cfa88b;
  DAT_182670938 = uVar34 | (uVar24 | uVar7) << 8;
  DAT_1826709dc = DAT_182670818 | 0x8cdfdd36;
  DAT_182670848 = DAT_182670818 & 0x92c74204;
  DAT_182670a20 = DAT_182670818 | 0x1dfa8949;
  uVar30 = DAT_182670818 & 0xdfd0c434;
  DAT_182670878 = ~DAT_182670938;
  DAT_1826709f4 = DAT_1826709dc + 0x1e37b926;
  DAT_182670a9c = DAT_182670818 + 0xaf445a05;
  uVar3 = DAT_182670818 + 0x3e1526b7;
  DAT_1826708c0 = uVar3 * 0x10000 | uVar3 >> 0x10;
  uVar39 = (uVar38 ^ 0xa74c6312) & 0x48fdb9eb ^ 0x99847841;
  uVar40 = ~uVar36;
  uVar25 = DAT_182670938 * 0x10fb5c17;
  DAT_182670ab8 = DAT_182670818 & 0x85da9b4b;
  DAT_182670994 = uVar23 * 0x1930000 | DAT_182670818 >> 0x10;
  DAT_1826709ac = DAT_182670818 ^ 0x7e7c725b;
  uVar8 = DAT_182670818 | 0x69eab513;
  DAT_18267080c = (DAT_182670818 ^ 0xd5e0c5f7) * -0x15c76a6a;
  uVar9 = DAT_182670818 & 0x31559f3d;
  DAT_182670904 = DAT_182670938 * -0x10f70049 ^ 0xa2601f3a;
  uVar10 = uVar31 & 3;
  if (uVar10 < 2) {
    uVar29 = 0x917507d8;
    if (uVar10 == 0) {
      uVar29 = uVar31;
    }
  }
  else {
    uVar29 = 0xe2cfc211;
    if (uVar10 < 3) {
      uVar29 = 0x7c16181c;
    }
  }
  DAT_182670a48 = DAT_182670848 | 0x2ce9510f;
  local_51d0 = uVar34 << 0x10 | (uVar24 | uVar7 & 0xffffff) >> 8;
  uVar10 = DAT_182670994 + 0x91529af2;
  uVar37 = 0xf87935ad;
  DAT_182670804 = uVar36 | 0xf87935ad;
  uVar11 = ~uVar30;
  DAT_1826708d8 =
       (uVar40 & 0xff0000 | uVar40 >> 0x10) >> 8 | (uVar40 << 0x10 | uVar40 & 0xff00) << 8;
  uVar12 = DAT_1826709f4 & 0x5f5a99da;
  uVar13 = DAT_182670818 + 0xdccfc70d;
  uVar14 = uVar23 * -0x37c92187;
  uVar15 = DAT_182670818 + 0xc1bb35df ^ 0x7f0a3f03;
  uVar16 = DAT_182670a20 << 0x10 | DAT_182670a20 >> 0x10;
  uVar1 = DAT_182670818 + 0x278f40fb;
  DAT_182670830 = DAT_182670818 | 0xc6eaa570;
  DAT_182670974 = uVar39 * 0x7558c3ce;
  DAT_182670abc = uVar38 ^ 0xe32c061e;
  DAT_182670918 = (uVar8 & 0xff0000 | uVar8 >> 0x10) >> 8 | (uVar8 << 0x10 | uVar8 & 0xff00) << 8;
  DAT_1826707f8 = DAT_182670818 + 0x79ff3cfe;
  DAT_1826708fc = DAT_182670818 + 0xf092a3e3 & 0xe8936ab3;
  uVar17 = DAT_1826709ac + 0x6ed64bf6;
  uVar18 = uVar9 | 0xcee03765;
  DAT_1826708ac = DAT_182670904 & 0xd0978d9e;
  DAT_182670850 = uVar29 ^ 0x1afe81fa;
  DAT_1826709c4 = DAT_182670938 * -0x10f70049 ^ 0xbd93eae6;
  DAT_182670a74 = DAT_182670848 ^ 0x99198c4a;
  DAT_182670910 =
       (DAT_182670818 & 0xd70000 | (DAT_182670818 & 0x8ed796cd) >> 0x10) >> 8 |
       ((DAT_182670818 & 0x8ed796cd) << 0x10 | DAT_182670818 & 0x9600) << 8;
  uVar19 = DAT_182670a48 << 0x10 | DAT_182670a48 >> 0x10;
  uVar2 = (uVar6 & 0x700) >> 8;
  if (uVar2 < 4) {
    if (uVar2 < 2) {
      DAT_1826709f0 = 0xe5802b2c;
      if (uVar2 == 0) {
        DAT_1826709f0 = DAT_182670938;
      }
      goto LAB_180c4e10d;
    }
    DAT_1826709f0 = 0x3ce18c55;
    uVar26 = 0x6f47b982;
    bVar41 = uVar2 < 3;
  }
  else if (uVar2 < 6) {
    DAT_1826709f0 = 0xdfa2e53d;
    uVar26 = 0xecc0824;
    bVar41 = uVar2 < 5;
  }
  else {
    DAT_1826709f0 = 0x414c67d6;
    uVar26 = 0x275ae9c;
    bVar41 = uVar2 < 7;
  }
  if (bVar41) {
    DAT_1826709f0 = uVar26;
  }
LAB_180c4e10d:
  uVar20 = DAT_182670804 + 0xb596f72a;
  uVar27 = DAT_182670994 + 0x855a3bad;
  DAT_1826708e0 = DAT_182670938 + 0x9cb69213;
  DAT_18267081c = uVar10 & 0xc4cddf5e;
  DAT_182670998 = uVar11 << 0x10 | uVar11 >> 0x10;
  uVar2 = uVar12 >> 0x10;
  uVar26 = 0xc0cfa88b;
  if ((uVar7 & 0x10000) == 0) {
    uVar26 = (uVar24 << 8 | (uVar7 & 0xffffff) >> 8) >> 8 |
             (uVar34 << 0x10 | (DAT_182670818 & 0xff0000) >> 8) << 8;
  }
  uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;
  DAT_1826709cc = (DAT_1826709dc ^ 0x8df709c) + 0x7a2564b5;
  DAT_182670854 = DAT_182670818 + 0x3e1526b7 & 0xf6d5c1d;
  DAT_182670840 = uVar36 & 0x3e44ca21;
  DAT_182670808 = DAT_182670818 + 0x5e88b40a;
  DAT_1826709b8 = ~(DAT_182670878 & 0x9ff2b52b);
  DAT_1826709b0 =
       (DAT_182670a20 & 0xff0000 | DAT_182670a20 >> 0x10) >> 8 |
       (DAT_182670a20 << 0x10 | DAT_182670a20 & 0xff00) << 8;
  uVar36 = DAT_182670818 + 0x77f9a94f;
  uVar28 = uVar36 & 3;
  if (uVar28 < 2) {
    uVar21 = 0xd1a64e68;
    bVar41 = uVar28 == 0;
  }
  else {
    uVar36 = 0xa9750afa;
    bVar41 = uVar28 < 3;
    uVar21 = 0x7e7c725b;
  }
  if (bVar41) {
    uVar21 = uVar36;
  }
  DAT_1826709fc = DAT_1826709dc & 0xf11fd8c4;
  uVar36 = uVar14 & 7;
  if (uVar36 < 4) {
    if (uVar36 < 2) {
      bVar41 = uVar36 == 0;
    }
    else {
      uVar14 = 0x21e84845;
      uVar37 = 0x31559f3d;
      bVar41 = uVar36 < 3;
    }
  }
  else if (uVar36 < 6) {
    uVar14 = 0x6b0cd743;
    uVar37 = 0xd27492f8;
    bVar41 = uVar36 < 5;
  }
  else {
    uVar14 = 0x6ead650e;
    uVar37 = 0x8df709c;
    bVar41 = uVar36 < 7;
  }
  if (bVar41) {
    uVar37 = (ulonglong)uVar14;
  }
  uVar14 = DAT_182670994 + 0x39e48298;
  DAT_182670aa4 = DAT_182670818 * DAT_182670818;
  iVar22 = DAT_182670a20 * 0x524c00cc + DAT_182670974;
  uVar28 = DAT_182670abc & 3;
  uVar36 = DAT_182670818;
  if (uVar28 < 2) {
    if (uVar28 == 0) {
      uVar36 = DAT_182670abc;
    }
  }
  else if (uVar28 < 3) {
    uVar36 = (uVar1 & 0xff0000 | uVar1 >> 0x10) >> 8 | (uVar1 * 0x10000 | uVar1 & 0xff00) << 8;
  }
  DAT_182670920 = uVar38 ^ 0x214ca010;
  DAT_182670aa0 = uVar39 ^ DAT_182670a20 * -0x69b3e89c;
  uVar38 = (DAT_182670818 | 0x1ab62bc3) & DAT_182670938;
  DAT_182670a8c = DAT_18267080c + (DAT_18267080c ^ 0x16280d10);
  DAT_18267091c = uVar17 | DAT_1826707f8;
  _DAT_18267097c = DAT_182670818 + 0xc40287fa | 0xd9448adc | uVar23 * 0x730e086b;
  uVar6 = (uVar6 & 0x300) >> 8;
  if (uVar6 < 2) {
    DAT_182670a78 = DAT_182670a74;
    if (uVar6 == 0) {
      DAT_182670a78 = DAT_182670938;
    }
  }
  else {
    DAT_182670a78 = ~DAT_182670938;
    if (uVar6 < 3) {
      DAT_182670a78 = DAT_182670938;
    }
  }
  DAT_18267099c = local_51d0 ^ DAT_182670818;
  DAT_182670a70 =
       (uVar25 & 0xff0000 | uVar25 >> 0x10) >> 8 | (uVar34 * 0x5c170000 | uVar25 & 0xff00) << 8 |
       DAT_182670a9c;
  DAT_182670908 = uVar12 | DAT_1826709f4;
  uVar6 = uVar27 >> 0x10;
  DAT_1826708a8 = (uVar30 + 0xd36defeb) * DAT_182670878;
  DAT_182670ac8 =
       ((DAT_182670818 & 0x1a0000 | (DAT_182670818 & 0x801a1348) >> 0x10) >> 8) << 0x10 |
       ((DAT_182670818 & 0x48) << 0x10 | DAT_182670818 & 0x1300) >> 8;
  DAT_182670800 = uVar15 - (DAT_182670818 ^ 0x10fb5c17);
  local_50f8 = (DAT_182670818 + 0x3e1526b7) - DAT_1826709dc;
  DAT_182670af4 = DAT_1826709b8 << 0x10 | DAT_1826709b8 >> 0x10;
  DAT_182670a50 = uVar25 + (DAT_182670938 | 0x8cdfdd36);
  DAT_182670880 = DAT_182670854 ^ DAT_182670ab8;
  uVar39 = (uint)uVar37;
  DAT_1826709d4 =
       (uVar39 & 0xff0000 | (uint)(uVar37 >> 0x10)) >> 8 | (uVar39 << 0x10 | uVar39 & 0xff00) << 8;
  DAT_182670820 = (uVar3 >> 0x10) << 0x10 | uVar3 & 0xffff;
  DAT_182670a98 = iVar22 * uVar16 * (DAT_182670818 + 0xc1bb35df);
  DAT_1826708f4 =
       ((uVar18 & 0xff0000 | uVar18 >> 0x10) >> 8 | (uVar18 << 0x10 | uVar18 & 0xff00) << 8) ^
       DAT_182670904;
  DAT_182670a94 = uVar36 & DAT_182670974;
  DAT_182670b0c = DAT_18267091c | DAT_1826708c0 | 0xf8662dcd;
  DAT_182670810 = DAT_182670918 + DAT_182670818;
  DAT_182670a40 = DAT_18267080c ^ 0x16280d10 ^ uVar8;
  DAT_182670aec =
       (uVar17 & 0xff0000 | uVar17 >> 0x10) >> 8 | (uVar17 * 0x10000 | uVar17 & 0xff00) << 8;
  DAT_182670948 = (uVar31 | 0x9fea4b64) + DAT_1826708fc;
  uVar3 = DAT_182670848 >> 0x10;
  DAT_18267084c = DAT_182670848 << 0x10 | uVar3;
  uVar36 = (DAT_182670938 + 0xf1e07c95 ^ uVar29) & DAT_182670904 + DAT_182670818;
  DAT_182670870 = DAT_182670910 | uVar9;
  DAT_182670aac =
       (_DAT_18267097c & 0xff0000 | _DAT_18267097c >> 0x10) >> 8 |
       (_DAT_18267097c << 0x10 | _DAT_18267097c & 0xff00) << 8;
  uVar8 = DAT_182670a48 * (DAT_182670818 + 0xc40287fa);
  DAT_182670864 = DAT_1826709c4 * (uVar23 * 0x86b0000 | uVar23 * 0x730e086b >> 0x10);
  DAT_182670968 = DAT_182670850 ^ uVar23 * -0x52324614;
  local_50c4 = 0;
  DAT_18267092c = 0;
  DAT_1826708d0 = DAT_182670938 - uVar38;
  DAT_18267098c = uVar20 * 0x10000 | uVar20 >> 0x10;
  DAT_18267088c = ~uVar25 & DAT_182670818 ^ DAT_18267099c;
  DAT_182670868 = uVar19 - DAT_1826708d8 | uVar40 ^ 0xe850533a;
  DAT_182670a60 = DAT_1826709f4 + DAT_1826708e0;
  DAT_182670a04 = (uVar40 ^ uVar30) + DAT_182670998;
  DAT_1826708a0 = DAT_18267081c * uVar19;
  DAT_182670a28 =
       (uVar12 << 0x10 & 0xff0000 | DAT_1826709f4 & 0x99da) >> 8 |
       (uVar2 << 0x10 | uVar2 & 0xff00) << 8;
  uVar31 = uVar14 & 3;
  DAT_182670a80 = DAT_1826709f4 & 0xdfd0c434 & DAT_1826709dc;
  DAT_1826708f0 = uVar15 & uVar25;
  DAT_18267094c = DAT_182670854 | DAT_1826708c0;
  if (uVar31 < 2) {
    DAT_1826709ec = DAT_182670994 + DAT_182670aa4;
    if (uVar31 == 0) {
      DAT_1826709ec = uVar14;
    }
  }
  else {
    DAT_1826709ec = DAT_1826709d4;
    if (uVar31 < 3) {
      DAT_1826709ec = DAT_182670994;
    }
  }
  DAT_182670a3c =
       DAT_182670aa4 ^
       ((uVar14 & 0xff0000 | uVar14 >> 0x10) >> 8 | (uVar14 * 0x10000 | uVar14 & 0xff00) << 8);
  DAT_182670824 = iVar22 * DAT_182670abc;
  DAT_18267087c = DAT_182670830 - DAT_182670b0c;
  DAT_182670a1c = DAT_182670a40 + uVar23 * -0x1000193;
  DAT_1826708e4 = DAT_182670a20 * -0x69b3e89c - DAT_182670810;
  DAT_18267089c = DAT_18267091c - DAT_182670918;
  DAT_182670b00 =
       DAT_182670818 - ((DAT_1826708ac - uVar9) + (DAT_182670818 ^ 0xd5e0c5f7) * -0xc1ef96e);
  DAT_182670844 = DAT_1826708f4 | DAT_1826709ac + 0x79ff3cfe + DAT_182670818;
  DAT_1826708d4 = uVar23 * 0x2000326 + 0xf092a3e3 | DAT_182670aac;
  DAT_182670a84 =
       (DAT_182670818 + 0x79ff3cfe & 0xff0000 | DAT_182670818 + 0x79ff3cfe >> 0x10) >> 8 |
       ((DAT_182670818 + 0x79ff3cfe) * 0x10000 | DAT_182670818 + 0x79ff3cfe & 0xff00) << 8;
  DAT_182670958 = DAT_182670948 ^ DAT_1826708fc;
  DAT_1826707fc =
       (uVar36 & 0xff0000 | uVar36 >> 0x10) >> 8 | (uVar36 << 0x10 | uVar36 & 0xff00) << 8;
  DAT_182670ae8 = DAT_182670938 ^ DAT_182670910;
  DAT_182670928 =
       (DAT_182670848 << 0x10 & 0xff0000 | DAT_182670818 & 0x4204) >> 8 |
       (uVar3 << 0x10 | uVar3 & 0xff00) << 8;
  DAT_182670aa8 = DAT_182670968 + DAT_182670910;
  DAT_18267086c = uVar9 * DAT_182670848;
  DAT_182670a2c = (uVar8 & 0xff0000 | uVar8 >> 0x10) >> 8 | (uVar8 * 0x10000 | uVar8 & 0xff00) << 8;
  DAT_182670838 =
       (DAT_182670864 & 0xff0000 | DAT_182670864 >> 0x10) >> 8 |
       (DAT_182670864 * 0x10000 | DAT_182670864 & 0xff00) << 8;
  DAT_1826709d0 = uVar38 * DAT_182670a48;
  DAT_1826709d8 = DAT_1826709c4 * DAT_182670938;
  DAT_182670a44 = DAT_1826708d0 | DAT_182670a74;
  DAT_1826708dc = DAT_182670804 - (uVar27 * 0x10000 | uVar6);
  DAT_182670984 = DAT_182670a78 << 0x10 | DAT_182670a78 >> 0x10;
  DAT_18267082c = ~uVar25 & 0xea960dce ^ DAT_1826708d8;
  uVar36 = (uVar11 | uVar10) & 3;
  if (uVar36 < 2) {
    local_51d0 = uVar20;
    if (uVar36 == 0) {
      local_51d0 = uVar11 | uVar10;
    }
  }
  else if (uVar36 < 3) {
    local_51d0 = DAT_18267081c;
  }
  DAT_182670950 = DAT_1826708e0 * uVar19;
  uVar36 = DAT_182670868 & 3;
  if (uVar36 < 2) {
    DAT_1826708b4 =
         (uVar27 * 0x10000 & 0xff0000 | uVar27 & 0xffff) >> 8 |
         (uVar6 << 0x10 | uVar6 & 0xff00) << 8;
    if (uVar36 == 0) {
      DAT_1826708b4 = DAT_182670868;
    }
  }
  else {
    DAT_1826708b4 = DAT_182670818;
    if (uVar36 < 3) {
      DAT_1826708b4 = uVar19 - DAT_1826708d8;
    }
  }
  DAT_182670af0 = DAT_182670a60 - DAT_182670a04;
  DAT_182670970 = ~uVar10 | DAT_18267088c;
  DAT_182670ad0 = (uVar26 | DAT_182670998) * DAT_182670840;
  DAT_182670a14 = DAT_1826709cc ^ ~DAT_182670840;
  DAT_182670a00 = uVar30 - DAT_182670800 & DAT_1826708a0 ^ 0x610d137c;
  DAT_182670964 = (uVar12 << 0x10 | uVar2) + DAT_182670818;
  local_51ec = uVar13 & 0xb900;
  DAT_182670b14 =
       (uVar13 & 0x370000 | (uVar13 & 0x1e37b926) >> 0x10) >> 8 |
       ((uVar13 & 0x1e37b926) << 0x10 | local_51ec) << 8;
  DAT_182670a38 =
       (DAT_182670800 & 0xff0000 | DAT_182670800 >> 0x10) >> 8 |
       (DAT_182670800 * 0x10000 | DAT_182670800 & 0xff00) << 8;
  DAT_182670a90 = DAT_182670a50 * DAT_182670878;
  DAT_182670b04 = ~DAT_1826709dc;
  DAT_182670a88 = DAT_182670a70 * uVar13;
  uVar36 = (DAT_1826709f4 & 0x100) >> 8;
  if (uVar36 < 4) {
    if (uVar36 < 2) {
      DAT_182670930 = DAT_182670a70 * DAT_182670a9c;
      if (uVar36 == 0) {
        DAT_182670930 = DAT_182670a28;
      }
    }
    else {
      DAT_182670930 = DAT_182670ab8;
      if (uVar36 < 3) {
        DAT_182670930 = uVar25;
      }
    }
  }
  else if (uVar36 < 6) {
    DAT_182670930 = DAT_1826709b0 & (DAT_182670938 | 0x8cdfdd36);
    if (uVar36 < 5) {
      DAT_182670930 = DAT_182670af4;
    }
  }
  else {
    DAT_182670930 = DAT_1826708f0;
    if (uVar36 < 7) {
      DAT_182670930 = DAT_182670a9c;
    }
  }
  DAT_182670a24 = ~uVar16 - DAT_1826709b0;
  local_5258 = (uVar21 & 0xff0000) >> 8;
  DAT_182670860 = uVar21 & 0xffff | ((uVar21 >> 0x18) << 0x10 | local_5258) << 8;
  DAT_182670814 = DAT_1826709fc | DAT_1826709b8;
  DAT_182670a7c = DAT_1826709d4 | DAT_182670854;
  _DAT_182670b10 = DAT_182670aa4 * DAT_182670a3c;
  DAT_182670ac4 = local_50f8 ^ DAT_182670a98;
  DAT_1826709a0 = DAT_182670830 + DAT_182670808;
  DAT_182670940 = DAT_1826709ec | DAT_182670a94;
  local_5248 = DAT_18267094c & 0xff00;
  DAT_182670988 =
       (DAT_18267094c & 0xff0000 | DAT_18267094c >> 0x10) >> 8 |
       (DAT_18267094c << 0x10 | local_5248) << 8;
  DAT_182670ae4 = DAT_182670994 & DAT_182670a20;
  DAT_182670ab4 = DAT_182670824 * DAT_182670820;
  DAT_182670a58 = DAT_182670a8c * DAT_182670a1c;
  DAT_182670a6c = DAT_18267087c - DAT_182670b0c;
  DAT_182670a08 = DAT_182670abc & DAT_182670974;
  local_5244 = DAT_18267089c & 0xff00;
  DAT_1826708c4 =
       (DAT_18267089c & 0xff0000 | DAT_18267089c >> 0x10) >> 8 |
       (DAT_18267089c * 0x10000 | local_5244) << 8;
  DAT_182670828 = DAT_182670920 | DAT_182670aa0;
  DAT_182670a30 = DAT_1826708f4 & DAT_182670818;
  DAT_1826708a4 = DAT_182670b00 + DAT_182670aec;
  DAT_18267085c = DAT_18267091c * DAT_182670918;
  local_5250 = DAT_1826708e4 & 0xff00;
  DAT_182670ab0 =
       (DAT_1826708e4 & 0xff0000 | DAT_1826708e4 >> 0x10) >> 8 |
       (DAT_1826708e4 * 0x10000 | local_5250) << 8;
  DAT_1826709a4 = DAT_182670a40 + DAT_182670810;
  DAT_1826709e4 = ~DAT_182670904;
  _DAT_1826708c8 = DAT_182670a84 & DAT_182670948;
  DAT_1826709c8 = DAT_18267080c ^ DAT_182670aac;
  DAT_182670924 = DAT_182670aac - DAT_1826709ac;
  DAT_1826708cc = DAT_1826708d4 * DAT_182670844;
  DAT_182670990 = DAT_18267080c - DAT_1826707fc;
  _DAT_182670ad4 = DAT_1826708fc & DAT_182670818 + 0x79ff3cfe;
  DAT_182670ac0 = DAT_182670928 + DAT_182670968;
  DAT_182670884 = DAT_1826708ac ^ DAT_182670958;
  DAT_1826708e8 = DAT_18267084c | DAT_182670848;
  DAT_1826709e8 = DAT_182670910 + DAT_182670968 + DAT_182670870;
  DAT_182670934 = _DAT_18267097c | DAT_182670ae8;
  uVar36 = (uVar8 >> 0x10 & 0x300) >> 8;
  if (uVar36 < 2) {
    DAT_1826708ec = 0;
    if (uVar36 == 0) {
      DAT_1826708ec = DAT_182670a2c;
    }
  }
  else {
    DAT_1826708ec = DAT_182670a48;
    if (uVar36 < 3) {
      DAT_1826708ec = DAT_182670838;
    }
  }
  DAT_1826708b0 = DAT_1826709d0 - DAT_182670864;
  _DAT_1826708bc = DAT_182670a74 + DAT_1826708d0;
  DAT_182670ae0 = DAT_1826708dc ^ DAT_18267098c;
  DAT_182670944 = uVar34 << 0x10 | (uVar24 | uVar7 & 0xffffff) >> 8;
  uVar36 = DAT_1826709d8 & 3;
  if (uVar36 < 2) {
    DAT_182670894 = DAT_18267099c;
    if (uVar36 == 0) {
      DAT_182670894 = DAT_1826709d8;
    }
  }
  else {
    DAT_182670894 = DAT_182670850;
    if (uVar36 < 3) {
      DAT_182670894 = local_51d0;
    }
  }
  _DAT_1826708f8 = DAT_182670a78 ^ DAT_1826708d8;
  DAT_182670960 = (DAT_182670a78 >> 0x10) << 0x10 | DAT_182670a78 & 0xffff;
  DAT_1826709c0 = DAT_18267081c << 0x10 | DAT_18267081c >> 0x10;
  DAT_182670afc = DAT_182670a60 & DAT_182670950;
  DAT_182670a0c =
       (DAT_1826708b4 & 0xff0000 | DAT_1826708b4 >> 0x10) >> 8 |
       (DAT_1826708b4 << 0x10 | DAT_1826708b4 & 0xff00) << 8;
  DAT_182670a54 = DAT_1826708e0 * DAT_182670a44;
  DAT_18267095c = DAT_1826709cc ^ DAT_182670a04;
  DAT_182670980 = (uVar11 >> 0x10) << 0x10 | uVar11 & 0xffff;
  DAT_1826709a8 = DAT_182670818;
  if ((DAT_182670a14 & 1) == 0) {
    DAT_1826709a8 = DAT_182670a14;
  }
  DAT_182670898 = DAT_182670868 << 0x10 | DAT_182670868 >> 0x10;
  DAT_182670900 = DAT_182670ad0 * 0x10000 | DAT_182670ad0 >> 0x10;
  DAT_1826708b8 = DAT_1826708a0 - DAT_182670970;
  DAT_182670a64 = ~DAT_1826709f4;
  DAT_182670888 =
       (DAT_18267088c & 0xff0000 | DAT_18267088c >> 0x10) >> 8 |
       (DAT_18267088c << 0x10 | DAT_18267088c & 0xff00) << 8;
  DAT_18267090c = DAT_182670840 - DAT_182670908;
  DAT_182670834 = DAT_182670a90 ^ DAT_182670af0;
  DAT_18267096c = DAT_1826708a8 | DAT_182670b14;
  _DAT_1826709e0 = DAT_182670800 * DAT_182670a00;
  uVar36 = DAT_182670a50 & 3;
  if (uVar36 < 2) {
    DAT_18267093c = DAT_1826709f0;
    if (uVar36 == 0) {
      DAT_18267093c = DAT_182670a50;
    }
  }
  else {
    DAT_18267093c = DAT_182670964;
    if (uVar36 < 3) {
      DAT_18267093c = DAT_1826709b8;
    }
  }
  DAT_182670adc = DAT_182670a70 * DAT_182670a24;
  DAT_182670874 = DAT_182670ac8 | DAT_182670af4;
  DAT_1826709f8 = DAT_1826709dc + DAT_182670878;
  DAT_182670a68 = DAT_182670880 | DAT_182670a9c;
  DAT_182670954 = DAT_182670a88 | DAT_182670a38;
  DAT_1826709b4 = DAT_182670a80 - DAT_1826708f0;
  uVar36 = (DAT_182670a20 >> 0x10 & 0x300) >> 8;
  if (uVar36 < 2) {
    DAT_182670a4c = DAT_182670a28;
    if (uVar36 == 0) {
      DAT_182670a4c = DAT_1826709b0;
    }
  }
  else {
    DAT_182670a4c = DAT_182670814;
    if (uVar36 < 3) {
      DAT_182670a4c = DAT_182670930;
    }
  }
  DAT_182670ad8 = DAT_182670aa4 * DAT_182670854;
  DAT_182670c84 = 0xae0;
  DAT_182670a18 = DAT_1826709fc ^ DAT_1826709ec;
  DAT_182670acc = DAT_1826709d4 & DAT_182670ab8;
  DAT_182670858 = _DAT_182670b10 | DAT_1826708c0;
  DAT_18267083c = DAT_182670a8c | DAT_182670a7c;
  local_40 = &local_5100;
  local_48 = param_9;
  local_50 = param_8;
  local_58 = param_7;
  local_60 = param_6;
  local_68 = param_5;
  DAT_182670798 = &local_88;
  DAT_182670890 = DAT_18267086c;
  DAT_182670914 = local_51d0;
  DAT_182670978 = DAT_182670938;
  DAT_1826709bc = DAT_182670938;
  DAT_182670a10 = DAT_182670818;
  DAT_182670a34 = DAT_182670910;
  DAT_182670a5c = DAT_18267080c;
  DAT_182670af8 = DAT_182670aac;
  DAT_182670b08 = DAT_182670820;
  local_5254 = DAT_182670928;
  local_524c = DAT_182670838;
  local_5240 = DAT_182670a28;
  local_523c = DAT_1826708f0;
  local_5238 = DAT_182670a38;
  local_5234 = DAT_182670a84;
  local_5230 = DAT_182670a7c;
  local_522c = DAT_182670994;
  local_5228 = DAT_1826709c4;
  local_5224 = DAT_1826709d0;
  local_5220 = DAT_182670a00;
  local_521c = DAT_1826709dc;
  local_5218 = DAT_182670a24;
  local_5214 = DAT_182670868;
  local_5210 = DAT_182670a60;
  local_520c = DAT_1826709d4;
  local_5208 = DAT_18267080c;
  local_5204 = DAT_182670864;
  local_5200 = DAT_18267086c;
  local_51fc = DAT_1826708dc;
  local_51f8 = DAT_182670964;
  local_51f4 = DAT_18267084c;
  local_51f0 = DAT_1826708a0;
  local_51e8 = DAT_182670a40;
  local_51e4 = DAT_182670904;
  local_51e0 = DAT_18267080c;
  local_51dc = DAT_182670848;
  local_51d8 = DAT_1826708d8;
  local_51d4 = DAT_182670b14;
  local_51cc = DAT_1826709b8;
  local_51c8 = DAT_1826709ec;
  local_51c4 = DAT_182670ad0;
  local_51c0 = DAT_1826709f4;
  local_51bc = DAT_182670a04;
  local_51b8 = DAT_1826708d4;
  local_51b4 = DAT_182670840;
  local_51b0 = DAT_182670814;
  local_51ac = DAT_182670a14;
  local_51a8 = _DAT_182670b10;
  local_51a4 = _DAT_18267097c;
  local_51a0 = DAT_182670a48;
  local_519c = DAT_18267088c;
  local_5198 = DAT_182670908;
  local_5194 = DAT_182670800;
  local_5190 = DAT_182670878;
  local_518c = DAT_182670aa4;
  local_5188 = DAT_182670854;
  local_5184 = DAT_182670ab8;
  local_5180 = DAT_1826708c0;
  local_517c = DAT_182670af0;
  local_5178 = DAT_182670a90;
  local_5174 = DAT_182670a88;
  local_5170 = DAT_182670968;
  local_516c = DAT_1826708d0;
  local_5168 = DAT_182670af4;
  local_5164 = DAT_1826709fc;
  local_5160 = DAT_182670a8c;
  local_515c = DAT_182670a94;
  local_5158 = DAT_182670824;
  local_5154 = DAT_182670abc;
  local_5150 = DAT_1826709b0;
  local_514c = DAT_182670aa0;
  local_5148 = DAT_1826709ac;
  local_5144 = DAT_1826708fc;
  local_5140 = DAT_182670804;
  local_513c = DAT_182670970;
  local_5138 = DAT_182670a1c;
  local_5134 = DAT_18267091c;
  local_5130 = DAT_182670a20;
  local_512c = DAT_182670aac;
  local_5128 = DAT_18267081c;
  local_5124 = DAT_182670a74;
  local_5120 = DAT_1826708e0;
  local_511c = DAT_182670998;
  local_5118 = DAT_182670918;
  local_5114 = DAT_1826708a8;
  local_5110 = DAT_182670a80;
  local_510c = DAT_182670b00;
  local_5108 = DAT_182670844;
  local_5104 = DAT_182670950;
  local_5100 = DAT_182670880;
  local_50fc = DAT_1826709cc;
  local_50f4 = DAT_182670830;
  local_50f0 = DAT_182670820;
  local_50ec = DAT_182670b0c;
  local_50e8 = DAT_1826708ac;
  local_50e4 = DAT_18267099c;
  local_50e0 = DAT_182670850;
  local_50dc = DAT_18267087c;
  local_50d8 = DAT_182670aec;
  local_50d4 = DAT_1826707fc;
  local_50d0 = DAT_182670958;
  local_50cc = DAT_182670870;
  local_50c8 = DAT_182670a2c;
  local_50c0 = DAT_18267098c;
  local_50bc = DAT_1826709d8;
  local_50b8 = DAT_182670984;
  local_50b4 = DAT_182670a44;
  local_50b0 = DAT_182670a98;
  local_50a8 = param_3;
  local_50a0 = param_2;
  local_5098 = param_1;
  local_88 = param_1;
  local_80 = param_2;
  local_78 = param_3;
  local_70 = param_4;
                    /* WARNING: Could not recover jumptable at 0x000180c4f73a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)((ulonglong)UINT_180c500cc + 0x180000000))
            ((code *)((ulonglong)UINT_180c500cc + 0x180000000));
  return;
}



############ FUN_ 180534300 size=216 ############

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

longlong * FUN_180534300(longlong *param_1,double param_2,double param_3,double param_4)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  
  dVar2 = tan((param_3 * DAT_1824c4218) / param_2);
  dVar1 = DAT_1824c4140;
  dVar6 = dVar2 * dVar2;
  dVar2 = (DAT_1824c4140 / param_4) * dVar2;
  dVar5 = DAT_1824c4140 / (dVar2 + DAT_1824c4140 + dVar6);
  FUN_180534730(param_1);
  dVar4 = dVar5 * _DAT_1824c46b0;
  *(double *)*param_1 = dVar5;
  dVar3 = dVar5 * DAT_1824c41e8;
  *(double *)(*param_1 + 8) = dVar4;
  *(double *)(*param_1 + 0x10) = dVar5;
  *(undefined8 *)param_1[1] = 0x3ff0000000000000;
  *(double *)(param_1[1] + 8) = dVar3 * (dVar6 - dVar1);
  *(double *)(param_1[1] + 0x10) = ((dVar1 - dVar2) + dVar6) * dVar5;
  return param_1;
}



############ FUN_ 180534180 size=382 ############

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

longlong *
FUN_180534180(longlong *param_1,double param_2,double param_3,double param_4,float param_5)

{
  double dVar1;
  double _X;
  double dVar2;
  float fVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  double dVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  
  fVar3 = sqrtf(param_5);
  uVar8 = SUB84(DAT_1824c41e8,0);
  uVar9 = (int)((ulonglong)DAT_1824c41e8 >> 0x20);
  if (DAT_1824c41e8 <= param_3) {
    uVar8 = SUB84(param_3,0);
    uVar9 = (int)((ulonglong)param_3 >> 0x20);
  }
  if (fVar3 <= 0.0) {
    fVar3 = 0.0;
  }
  _X = (double)fVar3;
  param_2 = ((double)CONCAT44(uVar9,uVar8) * DAT_1824c4248) / param_2;
  dVar2 = _X - DAT_1824c4140;
  dVar1 = _X + DAT_1824c4140;
  dVar4 = cos(param_2);
  dVar5 = sin(param_2);
  dVar6 = sqrt(_X);
  dVar7 = dVar4 * dVar2;
  param_4 = (dVar5 * dVar6) / param_4;
  FUN_180534730(param_1);
  dVar5 = (dVar4 * dVar1 + dVar2) * _DAT_1824c46b0;
  *(double *)*param_1 = ((dVar1 - dVar7) + param_4) * _X;
  *(double *)(*param_1 + 8) = (dVar2 - dVar4 * dVar1) * _X * DAT_1824c41e8;
  *(double *)(*param_1 + 0x10) = ((dVar1 - dVar7) - param_4) * _X;
  *(double *)param_1[1] = dVar7 + dVar1 + param_4;
  *(double *)(param_1[1] + 8) = dVar5;
  *(double *)(param_1[1] + 0x10) = (dVar7 + dVar1) - param_4;
  return param_1;
}



############ FUN_ 1805343e0 size=212 ############

longlong * FUN_1805343e0(longlong *param_1,double param_2,double param_3,double param_4)

{
  double dVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  
  dVar2 = tan((param_3 * DAT_1824c4218) / param_2);
  dVar1 = DAT_1824c4140;
  dVar2 = DAT_1824c4140 / dVar2;
  dVar5 = (DAT_1824c4140 / param_4) * dVar2;
  dVar2 = dVar2 * dVar2;
  dVar4 = DAT_1824c4140 / (dVar5 + DAT_1824c4140 + dVar2);
  FUN_180534730(param_1);
  *(double *)*param_1 = dVar4;
  dVar3 = dVar4 * DAT_1824c41e8;
  *(double *)(*param_1 + 8) = dVar3;
  *(double *)(*param_1 + 0x10) = dVar4;
  *(undefined8 *)param_1[1] = 0x3ff0000000000000;
  *(double *)(param_1[1] + 8) = (dVar1 - dVar2) * dVar3;
  *(double *)(param_1[1] + 0x10) = ((dVar1 - dVar5) + dVar2) * dVar4;
  return param_1;
}



############ FUN_ 180534730 size=260 ############

undefined8 * FUN_180534730(undefined8 *param_1)

{
  undefined8 *puVar1;
  undefined8 *puVar2;
  
  puVar1 = param_1 + 3;
  *(undefined4 *)(param_1 + 2) = 3;
  *param_1 = puVar1;
  *(undefined1 *)(param_1 + 0xf) = 1;
  puVar2 = param_1 + 6;
  param_1[1] = puVar2;
  if (((ulonglong)puVar1 & 0xf) == 0) {
    *puVar1 = 0;
    param_1[4] = 0;
  }
  else {
    *puVar1 = 0;
    param_1[4] = 0;
  }
  param_1[5] = 0;
  if (((ulonglong)puVar2 & 0xf) == 0) {
    *puVar2 = 0;
    param_1[7] = 0;
  }
  else {
    *puVar2 = 0;
    param_1[7] = 0;
  }
  param_1[8] = 0;
  *puVar1 = 0x3ff0000000000000;
  puVar1 = param_1 + 9;
  *puVar2 = 0x3ff0000000000000;
  if (((ulonglong)puVar1 & 0xf) == 0) {
    *puVar1 = 0;
    param_1[10] = 0;
  }
  else {
    *puVar1 = 0;
    param_1[10] = 0;
  }
  puVar2 = param_1 + 0xc;
  param_1[0xb] = 0;
  if (((ulonglong)puVar2 & 0xf) == 0) {
    *puVar2 = 0;
    param_1[0xd] = 0;
    param_1[0xe] = 0;
    *puVar1 = 0x3ff0000000000000;
    *puVar2 = 0x3ff0000000000000;
    return param_1;
  }
  *puVar2 = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  *puVar1 = 0x3ff0000000000000;
  *puVar2 = 0x3ff0000000000000;
  return param_1;
}



############ FUN_ 180533ec0 size=290 ############

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

longlong *
FUN_180533ec0(longlong *param_1,double param_2,double param_3,double param_4,float param_5)

{
  float fVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  
  fVar1 = sqrtf(param_5);
  uVar6 = SUB84(DAT_1824c41e8,0);
  uVar7 = (int)((ulonglong)DAT_1824c41e8 >> 0x20);
  if (DAT_1824c41e8 <= param_3) {
    uVar6 = SUB84(param_3,0);
    uVar7 = (int)((ulonglong)param_3 >> 0x20);
  }
  if (fVar1 <= 0.0) {
    fVar1 = 0.0;
  }
  param_2 = ((double)CONCAT44(uVar7,uVar6) * DAT_1824c4248) / param_2;
  dVar2 = sin(param_2);
  param_4 = (dVar2 * DAT_1824c4050) / param_4;
  dVar2 = cos(param_2);
  dVar2 = dVar2 * _DAT_1824c46b0;
  dVar5 = param_4 * (double)fVar1;
  param_4 = param_4 / (double)fVar1;
  FUN_180534730(param_1);
  dVar4 = param_4 + DAT_1824c4140;
  dVar3 = DAT_1824c4140 - dVar5;
  param_4 = DAT_1824c4140 - param_4;
  *(double *)*param_1 = dVar5 + DAT_1824c4140;
  *(double *)(*param_1 + 8) = dVar2;
  *(double *)(*param_1 + 0x10) = dVar3;
  *(double *)param_1[1] = dVar4;
  *(double *)(param_1[1] + 8) = dVar2;
  *(double *)(param_1[1] + 0x10) = param_4;
  return param_1;
}



############ FUN_ 180533ff0 size=387 ############

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

longlong *
FUN_180533ff0(longlong *param_1,double param_2,double param_3,double param_4,float param_5)

{
  double _X;
  double dVar1;
  double dVar2;
  float fVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  double dVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  
  fVar3 = sqrtf(param_5);
  uVar8 = SUB84(DAT_1824c41e8,0);
  uVar9 = (int)((ulonglong)DAT_1824c41e8 >> 0x20);
  if (DAT_1824c41e8 <= param_3) {
    uVar8 = SUB84(param_3,0);
    uVar9 = (int)((ulonglong)param_3 >> 0x20);
  }
  if (fVar3 <= 0.0) {
    fVar3 = 0.0;
  }
  _X = (double)fVar3;
  param_2 = ((double)CONCAT44(uVar9,uVar8) * DAT_1824c4248) / param_2;
  dVar1 = _X - DAT_1824c4140;
  dVar2 = _X + DAT_1824c4140;
  dVar4 = cos(param_2);
  dVar5 = sin(param_2);
  dVar6 = sqrt(_X);
  dVar7 = dVar4 * dVar1;
  param_4 = (dVar5 * dVar6) / param_4;
  FUN_180534730(param_1);
  dVar5 = (dVar1 - dVar4 * dVar2) * DAT_1824c41e8;
  *(double *)*param_1 = (dVar7 + dVar2 + param_4) * _X;
  *(double *)(*param_1 + 8) = (dVar4 * dVar2 + dVar1) * _X * _DAT_1824c46b0;
  *(double *)(*param_1 + 0x10) = ((dVar7 + dVar2) - param_4) * _X;
  *(double *)param_1[1] = (dVar2 - dVar7) + param_4;
  *(double *)(param_1[1] + 8) = dVar5;
  *(double *)(param_1[1] + 0x10) = (dVar2 - dVar7) - param_4;
  return param_1;
}



############ FUN_ 180533de0 size=213 ############

void FUN_180533de0(longlong param_1,uint param_2,undefined8 param_3,undefined8 param_4)

{
  int iVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  
  uVar4 = 0xfffffffffffffffe;
  uVar2 = 0;
  uVar3 = uVar2;
  if (param_2 < *(uint *)(param_1 + 0x6c)) {
    uVar3 = *(undefined8 *)(*(longlong *)(param_1 + 0x60) + (longlong)(int)param_2 * 8);
  }
  iVar1 = *(int *)(param_1 + 0x2400a4);
  while (0 < iVar1) {
    iVar1 = iVar1 + -1;
    if ((*(int *)(param_1 + 0x2400a4) <= iVar1) &&
       (iVar1 = *(int *)(param_1 + 0x2400a4) + -1, iVar1 < 0)) break;
    FUN_180492ef8(*(undefined8 *)(*(longlong *)(param_1 + 0x240098) + (longlong)iVar1 * 8),param_2,
                  uVar3,param_4,uVar4);
  }
  if (param_2 < *(uint *)(param_1 + 0x6c)) {
    uVar2 = *(undefined8 *)(*(longlong *)(param_1 + 0x60) + (longlong)(int)param_2 * 8);
  }
  iVar1 = *(int *)(param_1 + 0x2400b4);
  while( true ) {
    if (iVar1 < 1) {
      return;
    }
    iVar1 = iVar1 + -1;
    if ((*(int *)(param_1 + 0x2400b4) <= iVar1) &&
       (iVar1 = *(int *)(param_1 + 0x2400b4) + -1, iVar1 < 0)) break;
    FUN_180492ef8(*(undefined8 *)(*(longlong *)(param_1 + 0x2400a8) + (longlong)iVar1 * 8),param_2,
                  uVar2,param_4,uVar4);
  }
  return;
}



############ FUN_ 18123d8b0 size=142 ############

undefined8 * FUN_18123d8b0(undefined8 *param_1,ulonglong param_2)

{
  undefined8 *puVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  
  uVar2 = param_1[3];
  if (uVar2 < param_2) {
    uVar3 = (param_2 + 2) * 3 >> 1;
    param_1[3] = uVar3;
    if ((void *)*param_1 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
      free((void *)0x0);
    }
    puVar1 = realloc((void *)*param_1,uVar3 * 4);
    *param_1 = puVar1;
    if (puVar1 == (undefined8 *)0x0) {
      puVar1 = param_1 + 1;
    }
    if (uVar2 < (ulonglong)param_1[3]) {
      do {
        *(undefined4 *)((longlong)puVar1 + uVar2 * 4) = 0;
        uVar2 = uVar2 + 1;
      } while (uVar2 < (ulonglong)param_1[3]);
    }
  }
  puVar1 = (undefined8 *)*param_1;
  if (puVar1 == (undefined8 *)0x0) {
    puVar1 = param_1 + 1;
  }
  return puVar1;
}



############ FUN_ 18058d180 size=173 ############

void FUN_18058d180(longlong *param_1)

{
  void *_Dst;
  longlong lVar1;
  int iVar2;
  longlong lVar3;
  longlong lVar4;
  
  iVar2 = *(int *)((longlong)param_1 + 0xc) + -1;
  if (-1 < iVar2) {
    lVar3 = (longlong)iVar2 * 8;
    lVar4 = lVar3;
    do {
      lVar1 = *(longlong *)(lVar4 + *param_1);
      _Dst = (void *)(lVar3 + *param_1);
      memmove(_Dst,(void *)((longlong)_Dst + 8),
              (longlong)((*(int *)((longlong)param_1 + 0xc) - iVar2) + -1) << 3);
      *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
      if (lVar1 != 0) {
        FUN_18056ae10(lVar1);
      }
      lVar3 = lVar3 + -8;
      lVar4 = lVar4 + -8;
      iVar2 = iVar2 + -1;
    } while (-1 < iVar2);
  }
  *(undefined4 *)((longlong)param_1 + 0xc) = 0;
                    /* WARNING: Could not recover jumptable at 0x00018058d226. Too many branches */
                    /* WARNING: Subroutine does not return */
                    /* WARNING: Treating indirect jump as call */
  free((void *)*param_1);
  return;
}



############ FUN_ 180568840 size=186 ############

void FUN_180568840(longlong *param_1)

{
  void *_Dst;
  void *_Memory;
  int iVar1;
  longlong lVar2;
  longlong lVar3;
  
  iVar1 = *(int *)((longlong)param_1 + 0xc) + -1;
  if (-1 < iVar1) {
    lVar2 = (longlong)iVar1 * 8;
    lVar3 = lVar2;
    do {
      _Memory = *(void **)(lVar3 + *param_1);
      _Dst = (void *)(lVar2 + *param_1);
      memmove(_Dst,(void *)((longlong)_Dst + 8),
              (longlong)((*(int *)((longlong)param_1 + 0xc) - iVar1) + -1) << 3);
      *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
      if (_Memory != (void *)0x0) {
        FUN_1811e6b70(_Memory);
                    /* WARNING: Subroutine does not return */
        free(_Memory);
      }
      lVar2 = lVar2 + -8;
      lVar3 = lVar3 + -8;
      iVar1 = iVar1 + -1;
    } while (-1 < iVar1);
  }
  *(undefined4 *)((longlong)param_1 + 0xc) = 0;
                    /* WARNING: Could not recover jumptable at 0x0001805688f3. Too many branches */
                    /* WARNING: Subroutine does not return */
                    /* WARNING: Treating indirect jump as call */
  free((void *)*param_1);
  return;
}



############ FUN_ 18056a070 size=88 ############

void FUN_18056a070(undefined8 param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  undefined8 uVar2;
  
  if (param_2 == (longlong *)0x0) {
    return;
  }
  uVar2 = 0xfffffffffffffffe;
  if ((longlong *)param_2[7] == (longlong *)0x0) {
                    /* WARNING: Subroutine does not return */
    std::_Xbad_function_call();
  }
  (**(code **)(*(longlong *)param_2[7] + 0x10))();
  plVar1 = (longlong *)param_2[7];
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x20))(plVar1,plVar1 != param_2,param_3,param_4,uVar2);
    param_2[7] = 0;
  }
                    /* WARNING: Subroutine does not return */
  free(param_2);
}



############ FUN_ 180485f00 size=178 ############

void FUN_180485f00(longlong *param_1)

{
  void *_Dst;
  undefined8 *puVar1;
  int iVar2;
  longlong lVar3;
  longlong lVar4;
  
  iVar2 = *(int *)((longlong)param_1 + 0xc) + -1;
  if (-1 < iVar2) {
    lVar3 = (longlong)iVar2 * 8;
    lVar4 = lVar3;
    do {
      puVar1 = *(undefined8 **)(lVar4 + *param_1);
      _Dst = (void *)(lVar3 + *param_1);
      memmove(_Dst,(void *)((longlong)_Dst + 8),
              (longlong)((*(int *)((longlong)param_1 + 0xc) - iVar2) + -1) << 3);
      *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
      if (puVar1 != (undefined8 *)0x0) {
        (**(code **)*puVar1)(puVar1,1);
      }
      lVar3 = lVar3 + -8;
      lVar4 = lVar4 + -8;
      iVar2 = iVar2 + -1;
    } while (-1 < iVar2);
  }
  *(undefined4 *)((longlong)param_1 + 0xc) = 0;
                    /* WARNING: Could not recover jumptable at 0x000180485fab. Too many branches */
                    /* WARNING: Subroutine does not return */
                    /* WARNING: Treating indirect jump as call */
  free((void *)*param_1);
  return;
}



############ FUN_ 180ff5f30 size=5720 ############

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

void FUN_180ff5f30(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_res18;
  byte local_res20;
  byte local_110;
  byte local_108;
  
  uVar6 = DAT_182671c88;
  uVar12 = DAT_182671c84;
  uVar11 = DAT_182671c80;
  uVar10 = DAT_182671c7c;
  uVar9 = DAT_182671c70;
  uVar8 = DAT_182671c6c;
  uVar17 = DAT_182671c64;
  uVar19 = DAT_182671c5c;
  uVar5 = DAT_182671c48;
  uVar23 = (ulonglong)DAT_182671c6c;
  uVar39 = (ulonglong)DAT_182671c7c;
  uVar41 = (ulonglong)DAT_182671c80;
  uVar25 = (ulonglong)DAT_182671c5c;
  DAT_182671c50 = DAT_182671c7c | DAT_182671c80;
  uVar30 = (ulonglong)DAT_182671c70;
  uVar2 = *(uint *)(&DAT_182613218 + DAT_182672084);
  uVar34 = (ulonglong)DAT_182671c88;
  uVar37 = DAT_182671c84 | DAT_182671c48;
  uVar24 = (ulonglong)uVar37;
  uVar22 = DAT_182671c70 & DAT_182671c88;
  uVar45 = DAT_182671c6c << 0x10 | DAT_182671c6c >> 0x10;
  uVar18 = DAT_182671c5c + DAT_182671c64;
  uVar16 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c64 ^ 0xb5f708fb) + (longlong)DAT_182672084) ^
           DAT_182671c6c;
  uVar40 = (ulonglong)uVar18;
  bVar21 = (byte)DAT_182671c88;
  DAT_182671c54 = uVar45;
  DAT_182671c68 = uVar22;
  DAT_182671c90 = uVar37;
  DAT_182671c94 = uVar18;
  *(byte *)(DAT_182671c40 - (uVar25 ^ 0xfe08d885)) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xb3ffdfd2)) ^ (ulonglong)DAT_182671d80) ^
       (byte)DAT_182671f14;
  uVar26 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar31 = CONCAT44(DAT_182671d14,DAT_182671d14);
  local_res20 = (byte)uVar18;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar37 ^ 0xffdbf812)) =
       (*(ulonglong *)(DAT_182671c40 + -0xd88) ^ uVar26) << ((bVar21 ^ 0xc5) & 0x3f) ^ uVar31;
  lVar3 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0xfddbf88a)) =
       (*(ulonglong *)(DAT_182671c40 + -0xd88) ^ uVar26) >> ((local_res20 ^ 0xa4) & 0x3f) ^ uVar35;
  uVar14 = DAT_182671dec;
  uVar20 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xb5f70f03)) ^ uVar31 |
           *(ulonglong *)(lVar3 + -0x760) ^ uVar35) ^ uVar20;
  *(ulonglong *)(lVar3 + -0x920) = uVar26;
  uVar13 = DAT_182671d10;
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar27 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar3 + -0x110) =
       uVar27 ^ uVar42 ^ uVar26 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0x2b0);
  uVar18 = DAT_182671c50;
  lVar4 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar28 = CONCAT44(DAT_182671e84,DAT_182671e84);
  bVar21 = (byte)uVar12;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x32420250)) =
       (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0x380)) +
       (uVar26 ^ *(ulonglong *)(lVar3 + -0x7c0)) ^ uVar28;
  uVar32 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x67258774)) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x7c0)) << ((bVar21 ^ 0x66) & 0x3f) ^ uVar32;
  lVar3 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xfe08d19f)) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x7c0)) >> (((byte)uVar8 ^ 0x4d) & 0x3f) ^ uVar31;
  puVar1 = (ulonglong *)(lVar3 + -0x228);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0x25670f85)) =
       (CONCAT44(uVar18,uVar8) ^ 0xf6ae2be0b1d02bd2) >> (((byte)uVar18 ^ 0x35) & 0x3f);
  uVar13 = DAT_182671e9c;
  uVar26 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar3 + -0xa60) =
       (uVar31 ^ *puVar1 | uVar32 ^ *(ulonglong *)(lVar3 + -0xa70)) ^ uVar26;
  uVar31 = CONCAT44(uVar13,uVar13);
  puVar33 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0xb5f703cb));
  uVar26 = *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x96c8128c)) ^ uVar31 ^ uVar26 ^ uVar28 ^
           *puVar33;
  *(ulonglong *)(lVar3 + -0x628) = uVar26;
  *(ulonglong *)(lVar3 + -0x888) = (uVar26 ^ uVar31) >> (((byte)uVar37 ^ 0xd5) & 0x3f);
  uVar32 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x2b0)) + (uVar26 ^ uVar31) ^ uVar32;
  lVar4 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  local_108 = (byte)uVar9;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xfe08d45f)) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x4903902c)) ^ uVar31) << ((local_108 ^ 0xcc) & 0x3f) ^
       uVar26;
  uVar13 = DAT_182671e40;
  *(ulonglong *)(lVar4 + -0x760) =
       (CONCAT44(uVar22,uVar5) ^ 0x950866983ad8f89f) + (CONCAT44(uVar6,uVar5) ^ 0x7d45468cf9df3a92);
  uVar38 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x49039f24)) =
       (*(ulonglong *)(lVar4 + -0x628) ^ uVar31) >> ((local_res20 ^ 0x82) & 0x3f) ^ uVar38;
  *(uint *)(lVar4 + -0x784) = *(uint *)(lVar4 + -0x5d4) ^ DAT_182671c80 ^ 0x8f7b4f5a;
  uVar29 = CONCAT44(DAT_182671d08,DAT_182671d08);
  uVar26 = (uVar38 ^ *(ulonglong *)(lVar4 + -0x920) | uVar26 ^ *(ulonglong *)(lVar4 + -0x7e8)) ^
           uVar29;
  uVar31 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar4 + -0x380) = uVar26;
  uVar13 = DAT_182671fa4;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x7c0) =
       *(ulonglong *)(lVar4 - (uVar41 ^ 0x6725808c)) ^ uVar31 ^ uVar26 ^ uVar29 ^ uVar32;
  uVar15 = DAT_182671fb4;
  uVar43 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xb08) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0xb20)) + (uVar42 ^ *(ulonglong *)(lVar4 + -0x110)) ^
       uVar43;
  uVar14 = DAT_182671f64;
  uVar7 = DAT_182671c64;
  uVar36 = (uVar42 ^ *(ulonglong *)(lVar3 + -0x110)) << (((byte)uVar18 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa70) = uVar36 ^ CONCAT44(uVar15,uVar15);
  uVar13 = DAT_182671ccc;
  uVar26 = CONCAT44(uVar14,uVar14);
  *puVar1 = (uVar42 ^ *(ulonglong *)(lVar3 + -0x110)) >> ((local_res20 ^ 0x82) & 0x3f) ^ uVar26;
  lVar4 = DAT_182671c40;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xfddbfdc2)) ^ uVar26 | uVar36) ^ uVar29;
  uVar46 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar26;
  uVar13 = DAT_182671f54;
  uVar26 = *(ulonglong *)(lVar4 - (uVar24 ^ 0xffdbf4f2)) ^ uVar46 ^ uVar29 ^ uVar43 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x888) = uVar26;
  uVar42 = CONCAT44(uVar13,uVar13);
  uVar36 = (CONCAT44(uVar37,uVar7) ^ 0x6406ffa6891ed0bd) + (uVar46 ^ uVar26);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar36 ^ uVar42;
  uVar14 = DAT_182671f44;
  *(ulonglong *)(lVar4 + -0x760) = (CONCAT44(uVar6,uVar19) ^ 0xfffffffc8266a459) << 0x1d;
  uVar13 = DAT_182671ef4;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x628) =
       (CONCAT44(uVar12,uVar11) ^ 0x4e12ade1e89e1fac) + (*(ulonglong *)(lVar4 + -0xd88) ^ uVar32) ^
       uVar26;
  uVar15 = DAT_182671f90;
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x7e8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar45 ^ 0x256702a5)) ^ uVar26) + uVar36 ^ uVar29;
  uVar14 = DAT_182671f70;
  uVar36 = (*(ulonglong *)(lVar3 - (uVar23 ^ 0x48d27d7)) ^ uVar42) << 0xe;
  uVar23 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar3 + -0x920) = uVar36 ^ CONCAT44(uVar15,uVar15);
  uVar13 = DAT_182671d38;
  lVar4 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x490394b4)) ^ uVar42) >> ((local_108 ^ 0xde) & 0x3f) ^
       uVar23;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xb20) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0xb5f70b6b)) ^ uVar23 | uVar36) ^ uVar32;
  *(longlong *)(lVar4 - ((ulonglong)uVar45 ^ 0x2567059d)) =
       0x143bf8e80f0b5f27 << (((byte)uVar15 ^ *(byte *)(lVar4 + -0x920)) & 0x3f);
  uVar13 = DAT_182671eb8;
  *(ulonglong *)(lVar4 + -0xa70) =
       uVar32 ^ uVar29 ^ uVar38 ^ *(ulonglong *)(lVar4 + -0xb20) ^ *(ulonglong *)(lVar4 + -0x7e8);
  uVar17 = DAT_182671c50;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar26 = CONCAT44(uVar22,DAT_182671c50);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xffdbfdd2)) =
       (*(ulonglong *)(lVar4 - (uVar40 ^ 0xb3ffdb62)) ^ uVar31) +
       (CONCAT44(uVar45,uVar22) ^ 0x5cf4df04679c1a14) ^ uVar23;
  uVar31 = CONCAT44(DAT_182671f68,DAT_182671f68);
  uVar26 = (uVar26 ^ 0x8bc8442b076a6819) + (*(ulonglong *)(lVar4 + -0xb08) ^ uVar43);
  uVar32 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar4 + -0x888) =
       (CONCAT44(uVar12,uVar6) ^ 0xa0f6d90067ed61bd) >>
       (((byte)uVar14 ^ *(byte *)(lVar4 + -0x380)) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa60) = uVar26 ^ uVar31;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0xffdbdc9f)) = uVar26 + (uVar23 ^ *puVar1) ^ uVar32;
  uVar26 = *puVar1;
  uVar36 = (uVar23 ^ *puVar1) << 0x10;
  *(ulonglong *)(lVar4 + -0xd88) = uVar36 ^ CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(byte *)(lVar4 + -0xa95) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar39 ^ 0x49039f94)) ^ (ulonglong)DAT_182671ee0) ^
       (byte)DAT_182671f14;
  uVar26 = (uVar23 ^ uVar26) >> (bVar21 & 0x3f);
  uVar23 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(lVar4 + -0x628) = uVar26 ^ uVar46;
  uVar26 = (uVar36 | uVar26) ^ uVar23;
  uVar39 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar26;
  uVar26 = *(ulonglong *)(lVar4 - (uVar41 ^ 0x67258a64)) ^ uVar39 ^ uVar23 ^ uVar32 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x110) = uVar26;
  uVar13 = DAT_182671f24;
  *(ulonglong *)(lVar4 + -0x920) =
       CONCAT44(uVar10,uVar11) ^ 0x8edd29236cc3c7bc | CONCAT44(uVar8,uVar45) ^ 0x2547c41537863cad;
  uVar42 = CONCAT44(uVar13,uVar13);
  uVar36 = (uVar39 ^ uVar26) + (uVar29 ^ *(ulonglong *)(lVar4 + -0x7e8)) ^ uVar42;
  uVar23 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar4 + -0xb20) = uVar36;
  uVar29 = (uVar39 ^ uVar26) << 0x34;
  uVar26 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(lVar4 + -0x7c0) = uVar29 ^ uVar23;
  uVar39 = (uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0x110)) >> (((byte)uVar17 ^ 8) & 0x3f);
  uVar23 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar39 ^ uVar26;
  uVar13 = DAT_182671e8c;
  lVar3 = DAT_182671c40;
  uVar26 = *(ulonglong *)(DAT_182671c40 + -0x760);
  uVar47 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar29 = (uVar39 | uVar29) ^ uVar47;
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar29;
  uVar46 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x888) = uVar46 ^ uVar47 ^ uVar36 ^ uVar42 ^ uVar29;
  uVar14 = DAT_182671ce4;
  uVar13 = DAT_182671cc8;
  uVar36 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0xb5f7029b)) ^ uVar38) + (uVar32 ^ uVar26) ^ uVar36;
  uVar15 = DAT_182671f74;
  local_res18 = (byte)uVar5;
  uVar23 = (uVar38 ^ *(ulonglong *)(lVar3 + -0xa70)) << ((local_res18 ^ 0xd3) & 0x3f);
  *puVar1 = uVar23 ^ CONCAT44(uVar13,uVar13);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       0x3651e0762325b6cc >> (((byte)(uVar8 >> 0x10) ^ 0xbd) & 0x3f);
  uVar29 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar26 = (*(ulonglong *)(lVar3 - (uVar24 ^ 0xffdbf58a)) ^ uVar38) >> ((local_108 ^ 0xeb) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd88) = uVar26 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x6f279db4)) = (uVar26 | uVar23) ^ uVar29;
  uVar6 = DAT_182671c60;
  uVar17 = DAT_182671c4c;
  uVar44 = (ulonglong)DAT_182671c60;
  uVar23 = (ulonglong)DAT_182671c4c;
  uVar26 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x96c811cc)) =
       (CONCAT44(uVar7,uVar19) ^ 0x8471e07c67a4b882) >>
       (((byte)uVar14 ^ *(byte *)(lVar3 + -0xa60)) & 0x3f);
  uVar19 = uVar17 - uVar6;
  uVar32 = CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar39 = uVar29 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0xa60) ^ uVar32 ^
           *(ulonglong *)(lVar3 + -0x2b0);
  uVar29 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  DAT_182671c74 = uVar19;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar39;
  uVar13 = DAT_182671eb0;
  uVar24 = (ulonglong)uVar19;
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x94f10783)) ^ uVar42) + (uVar39 ^ uVar32) ^ uVar29;
  uVar38 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x7c0) = (uVar32 ^ uVar39) << (((byte)uVar6 ^ 0xeb) & 0x3f) ^ uVar38;
  uVar42 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xf4f645af)) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0x7e8)) >> (((byte)uVar17 ^ 0x8a) & 0x3f) ^ uVar42;
  uVar13 = DAT_182671f04;
  uVar32 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar26 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0x94f107ab)) ^ uVar42 |
           *(ulonglong *)(lVar3 + -0x7c0) ^ uVar38) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x760) = uVar26;
  uVar43 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x628) =
       uVar43 ^ uVar26 ^ uVar32 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x110);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0xf4f644d7)) =
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0x9ffabe7c)) ^ uVar47) +
       (CONCAT44(uVar17,uVar6) ^ 0x7f6c42d1b220bc2d);
  uVar26 = *(ulonglong *)(lVar3 + -0x888);
  uVar42 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *puVar1 = (uVar36 ^ *(ulonglong *)(lVar3 + -0xa60)) + (uVar46 ^ *(ulonglong *)(lVar3 + -0x888)) ^
            uVar42;
  uVar32 = CONCAT44(DAT_182671f34,DAT_182671f34);
  local_110 = (byte)uVar19;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x9ffab074)) = (uVar46 ^ uVar26) << 0x28 ^ uVar32;
  uVar14 = DAT_182671d58;
  lVar4 = DAT_182671c40;
  uVar26 = (uVar46 ^ *(ulonglong *)(lVar3 + -0x888)) >> ((local_110 ^ 0xbf) & 0x3f);
  *(ulonglong *)(lVar3 + -0x920) = uVar26 ^ CONCAT44(DAT_182671d68,DAT_182671d68);
  uVar13 = DAT_182671cbc;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar32 = (*(ulonglong *)(lVar3 + -0xd88) ^ uVar32 | uVar26) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar32;
  uVar39 = CONCAT44(uVar13,uVar13);
  uVar26 = *(ulonglong *)(lVar4 - (uVar24 ^ 0xf4f64c8f));
  *(uint *)(lVar4 + -0x94c) =
       (*(uint *)(lVar4 + -0x27c) ^ DAT_182671d14) << ((byte)*(undefined4 *)(lVar4 + -0x4ac) & 0x1f)
  ;
  uVar13 = _DAT_182671cf0;
  uVar26 = uVar26 ^ uVar32 ^ uVar39 ^ uVar36 ^ uVar42;
  *(ulonglong *)(lVar4 + -0xb20) = uVar26;
  uVar14 = DAT_182671e54;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x7e8) =
       (*(ulonglong *)(lVar4 - (uVar44 ^ 0x9ffabcec)) ^ uVar29) + (uVar39 ^ uVar26) ^ uVar36;
  lVar3 = DAT_182671c40;
  uVar38 = (uVar39 ^ uVar26) << (((byte)uVar17 ^ 0xa6) & 0x3f);
  uVar26 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar38 ^ CONCAT44(uVar14,uVar14);
  uVar29 = (*(ulonglong *)(lVar3 + -0x628) ^ uVar43) << 0x25;
  uVar39 = (uVar39 ^ *(ulonglong *)(lVar3 + -0xb20)) >> (((byte)uVar6 ^ 199) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb08) = uVar39 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x760) =
       -0x42a4c86c7078be73 - (CONCAT44(uVar18,uVar6) ^ 0x94c7d7012e65c125);
  uVar13 = DAT_182671dac;
  uVar32 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar38 = (uVar38 | uVar39) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x380) = uVar38;
  uVar14 = DAT_182671dbc;
  uVar39 = CONCAT44(uVar13,uVar13);
  uVar26 = *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x32420e98));
  *(ulonglong *)(lVar3 + -0x888) = uVar29 ^ uVar35;
  *(ulonglong *)(lVar3 + -0xa70) = uVar26 ^ uVar39 ^ uVar38 ^ uVar32 ^ uVar36;
  uVar13 = DAT_182671cb4;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 + -0x628) ^ uVar43) + (*puVar1 ^ uVar42) ^ uVar38;
  uVar26 = (*(ulonglong *)(lVar3 + -0x628) ^ uVar43) >> ((local_res18 ^ 0xf1) & 0x3f);
  *(undefined8 *)(lVar3 + -0x920) = 0xb1cbdd0358640de5;
  *(ulonglong *)(lVar3 + -0xd88) = uVar26 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x96e83a5c)) = (uVar29 | uVar26) ^ uVar20;
  uVar13 = DAT_182671d1c;
  uVar32 = CONCAT44(DAT_182671d04,DAT_182671d04);
  uVar26 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x96e8328c)) ^ uVar20 ^ uVar32 ^ uVar38 ^
           *(ulonglong *)(lVar3 + -0x2b0);
  *(ulonglong *)(lVar3 + -0x110) = uVar26;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar32 = (CONCAT44(uVar37,uVar8) ^ 0xe2dba33d6cc0d27a) + (uVar26 ^ uVar32);
  uVar42 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar3 + -0xb20) = uVar32 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x760) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x7e8)) + (CONCAT44(uVar11,uVar10) ^ 0x43a28ebdd2dbfd) ^
       uVar42;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x7c0) =
       *(ulonglong *)(lVar3 + -0xa60) ^ uVar38 | CONCAT44(uVar9,uVar18) ^ 0x45ba167258e970b5;
  uVar13 = DAT_182671d24;
  uVar20 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar40 = (*(ulonglong *)(lVar4 - (uVar40 ^ 0xb3ffd782)) ^ uVar29) +
           (*(ulonglong *)(lVar4 - (uVar24 ^ 0xf4f649c7)) ^ uVar42) ^ uVar20;
  *(ulonglong *)(lVar4 + -0xb08) = uVar40;
  uVar14 = DAT_182671fa0;
  uVar32 = uVar32 << (((byte)uVar8 ^ 0x7e) & 0x3f);
  *(ulonglong *)(lVar4 + -0x380) = uVar32 ^ CONCAT44(uVar13,uVar13);
  lVar3 = DAT_182671c40;
  uVar17 = *(uint *)(DAT_182671c40 + -0x444) ^ DAT_182671df8;
  uVar26 = (*puVar33 ^ uVar29) >> (((byte)uVar10 ^ 0x23) & 0x3f);
  uVar18 = DAT_182671c50 ^ 0xf3658d1a;
  *puVar1 = uVar26 ^ CONCAT44(uVar14,uVar14);
  *(uint *)(lVar3 + -0x9dc) = uVar17 + uVar18;
  uVar13 = DAT_182671f20;
  *(ulonglong *)(lVar3 + -0x628) = (uVar26 | uVar32) ^ uVar31;
  uVar32 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar3 + -0x920) =
       *(ulonglong *)(lVar3 - (uVar41 ^ 0x67258b2c)) ^ uVar31 ^ uVar40 ^ CONCAT44(uVar13,uVar13) ^
       uVar20;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x94f1012b)) =
       (*(ulonglong *)(lVar3 + -0xa70) ^ uVar39) + (CONCAT44(uVar5,uVar19) ^ 0xdd15c76fee2cb067) ^
       uVar32;
  uVar26 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 + -0xa60) ^ uVar38) + (CONCAT44(uVar5,uVar19) ^ 0x8d1cec5fac777409) ^
       uVar26;
  *(uint *)(lVar3 + -0x61c) = (DAT_182671c64 ^ 0x880cdcb0) * *(int *)(lVar3 + -0x94c);
  uVar31 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar20 = (*(ulonglong *)(lVar3 - (uVar25 ^ 0xfe08db3f)) ^ uVar26) +
           (*(ulonglong *)(lVar3 + -0xd88) ^ uVar32) ^ uVar31;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar20;
  uVar40 = (*(ulonglong *)(lVar3 - (uVar34 ^ 0xffdbd677)) ^ uVar32) << ((bVar21 ^ 0x51) & 0x3f);
  *(ulonglong *)(lVar3 + -0x7e8) =
       0x56a10629c4930bbf >> (((byte)uVar13 ^ *(byte *)(lVar3 + -0x920)) & 0x3f);
  *(ulonglong *)(lVar3 + -0x110) = uVar40 ^ uVar27;
  uVar26 = (*(ulonglong *)(lVar3 + -0xd88) ^ uVar32) >> (((byte)uVar10 ^ 0x1b) & 0x3f);
  *(ulonglong *)(lVar3 + -0x7c0) = uVar26 ^ uVar28;
  uVar40 = (uVar40 | uVar26) ^ uVar42;
  *(ulonglong *)(lVar3 + -0x760) = uVar40;
  *(ulonglong *)(lVar3 + -0xb20) = CONCAT44(uVar22,uVar8) ^ 0xfe86bb2fc1893d27 | uVar26;
  *(ulonglong *)(lVar3 + -0x380) =
       CONCAT44(DAT_182671cd4,DAT_182671cd4) ^ uVar40 ^ uVar31 ^ uVar42 ^ uVar20;
  *puVar1 = *(ulonglong *)(lVar3 - (uVar23 ^ 0x94f10bc3)) ^ uVar42 | 0xafbafd015fe4b330;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar2 ^ uVar45;
  return;
}



############ FUN_ 180fe7e40 size=4979 ############

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

void FUN_180fe7e40(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  ulonglong *puVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  byte bVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte local_res18;
  
  uVar8 = DAT_182671e1c;
  uVar6 = DAT_182671c8c;
  uVar5 = DAT_182671c80;
  uVar14 = DAT_182671c6c;
  uVar15 = DAT_182671c4c;
  lVar1 = DAT_182671c40;
  uVar22 = DAT_182671c48 * DAT_182671c7c;
  uVar19 = (ulonglong)DAT_182671c80;
  uVar11 = DAT_182671c60 & 7;
  uVar20 = (ulonglong)DAT_182671c6c;
  if (uVar11 < 4) {
    if (uVar11 < 2) {
      uVar32 = DAT_182671c8c;
      if (uVar11 == 0) {
        uVar32 = DAT_182671c60;
      }
    }
    else {
      uVar32 = DAT_182671c4c;
      if (uVar11 < 3) {
        uVar32 = DAT_182671c50;
      }
    }
  }
  else if (uVar11 < 6) {
    uVar32 = DAT_182671c5c;
    if (uVar11 < 5) {
      uVar32 = DAT_182671c90;
    }
  }
  else {
    uVar32 = DAT_182671c6c;
    if (uVar11 < 7) {
      uVar32 = DAT_182671c80;
    }
  }
  uVar12 = *(uint *)(&DAT_182613218 + DAT_182672058) ^ DAT_182671c90;
  uVar13 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c54 ^ 0x4067314b) + (longlong)DAT_182672058) ^
           DAT_182671c5c;
  uVar23 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  bVar16 = (byte)DAT_182671c4c;
  DAT_182671c64 = uVar32;
  DAT_182671c68 = uVar22;
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (CONCAT44(DAT_182671d90,DAT_182671d90) ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) <<
       ((bVar16 ^ 0xe0) & 0x3f) ^ uVar23;
  uVar10 = DAT_182671e78;
  uVar9 = DAT_182671c9c;
  uVar3 = DAT_182671c50;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar26 = *(ulonglong *)(lVar1 - (uVar19 ^ 0xd9d94402)) ^ uVar23 |
           CONCAT44(DAT_182671d68,DAT_182671d68) ^ *(ulonglong *)(lVar1 + -0x110);
  uVar24 = CONCAT44(DAT_182671c50,uVar14);
  *(ulonglong *)(lVar1 + -0xbd8) = uVar26 ^ uVar31;
  uVar33 = CONCAT44(uVar9,uVar9);
  uVar23 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar1 + -0xda8) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar32 ^ 0x5b316bd0)) ^ CONCAT44(uVar10,uVar10)) -
       (uVar24 ^ 0x433017f0a42e8fa0) ^ uVar33;
  uVar32 = DAT_182671c7c;
  uVar11 = DAT_182671c48;
  puVar17 = (ulonglong *)(lVar1 - (uVar23 ^ 0xd9d94b82));
  uVar21 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar1 + -0xa78) = (*puVar17 ^ uVar33) - uVar26 ^ uVar21;
  uVar8 = DAT_182671eb8;
  uVar4 = DAT_182671cc4;
  uVar23 = CONCAT44(DAT_182671f14,DAT_182671f14);
  puVar36 = (ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0x1a0abd88));
  *puVar36 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar15 ^ 0xfdfd5427)) ^ uVar31) +
             (CONCAT44(uVar22,uVar32) ^ 0x17750b6efc1c87a0) ^ uVar23;
  uVar15 = DAT_182671c90;
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar31 = CONCAT44(uVar4,uVar4);
  uVar23 = *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0x103c0453)) ^ uVar27 ^ uVar31 ^ uVar23 ^
           *(ulonglong *)(lVar1 + -0x960);
  uVar26 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *(ulonglong *)(lVar1 + -0xc38) = uVar23;
  uVar28 = ((ulonglong)uVar4 << 0x1b | (ulonglong)(uVar4 >> 5)) ^ uVar23 >> 5;
  uVar25 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar1 + -0x110) = uVar28 ^ uVar26;
  uVar8 = DAT_182671ec8;
  lVar2 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar1 + -0x228) = (uVar31 ^ uVar23) << (((byte)uVar15 ^ 0x50) & 0x3f) ^ uVar25;
  uVar38 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0xd9d94aba)) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x40673373)) ^ uVar25 | uVar28) ^ uVar38;
  uVar8 = DAT_182671ef0;
  uVar11 = DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0xbd8) =
       CONCAT44(DAT_182671c4c,DAT_182671c4c) ^ 0x82e5fa7d1dd26080 |
       CONCAT44(uVar3,uVar5) ^ 0xd3bd61cb61d7d321;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xd88) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xd9d94f4a)) ^ uVar27) -
       (uVar38 ^ *(ulonglong *)(lVar2 + -0xc90)) ^ uVar28;
  uVar8 = DAT_182671d3c;
  uVar3 = DAT_182671c64;
  puVar18 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x103c0473));
  uVar19 = (ulonglong)DAT_182671cec;
  uVar26 = CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar23 = CONCAT44(DAT_182671d88,DAT_182671d88) ^ *(ulonglong *)(lVar2 + -0xa78) ^
           *(ulonglong *)(lVar2 + -0x888) ^ uVar26 ^ uVar21;
  *(ulonglong *)(lVar2 + -0xc38) = (uVar33 ^ *puVar18) << (((byte)DAT_182671c68 ^ 0x23) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = uVar23;
  uVar4 = DAT_182671c7c;
  uVar15 = DAT_182671c5c;
  uVar33 = CONCAT44(uVar8,uVar8);
  bVar37 = (byte)uVar14;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c90 ^ 0x6de3ba43)) =
       (uVar23 >> 0x20 ^ uVar19) >> 5 ^ uVar33;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar26) >> ((bVar37 ^ 0xc1) & 0x3f);
  uVar8 = DAT_182671f1c;
  uVar19 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0x2626b8c5)) ^ uVar26) <<
           (((byte)uVar15 ^ 0x1f) & 0x3f);
  *(ulonglong *)(lVar2 + -0x960) = uVar19 ^ CONCAT44(DAT_182671e20,DAT_182671e20);
  lVar1 = DAT_182671c40;
  uVar25 = CONCAT44(uVar8,uVar8);
  uVar19 = *(ulonglong *)(lVar2 + -0x228) ^ uVar33 | uVar19;
  uVar23 = uVar19 ^ uVar25;
  *(ulonglong *)(lVar2 + -0xda8) = uVar23;
  uVar9 = DAT_182671dc4;
  *(undefined1 *)(lVar2 + -0x2e9) = **(undefined1 **)(lVar2 + -0x370);
  uVar8 = DAT_182671d28;
  uVar26 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0xc38) = (*(ulonglong *)(lVar1 + -0xa78) ^ uVar21) - uVar19 ^ uVar26;
  uVar9 = DAT_182671dac;
  uVar32 = DAT_182671c60;
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar19 = uVar21 ^ *(ulonglong *)(lVar1 + -0xd88) ^ uVar23 ^ uVar25 ^ uVar28;
  *(ulonglong *)(lVar1 + -0x888) = uVar19;
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c7c ^ 0x8c58e137)) =
       (uVar19 ^ uVar21) >> (((byte)DAT_182671c64 ^ 0x57) & 0x3f) ^ uVar23;
  *(int *)(lVar1 + -0xc70) =
       *(int *)(lVar1 - ((ulonglong)uVar15 ^ 0x8002e650)) <<
       ((byte)*(undefined4 *)(lVar1 + -0x784) & 0x1f);
  uVar8 = DAT_182671de8;
  uVar19 = (*(ulonglong *)(lVar1 + -0x888) ^ uVar21) << 0x29;
  *(ulonglong *)(lVar1 + -0x110) = uVar19 ^ CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar25 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c50 ^ 0x5b316568)) =
       (uVar19 | *(ulonglong *)(lVar1 + -0xbd8) ^ uVar23) ^ uVar25;
  uVar8 = DAT_182671fb4;
  uVar34 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar1 + -0x960) =
       (*(ulonglong *)(lVar1 + -0xd88) ^ uVar28) - (*(ulonglong *)(lVar1 + -0x228) ^ uVar25) ^
       uVar34;
  uVar33 = CONCAT44(uVar8,uVar8);
  puVar29 = (ulonglong *)(lVar1 - ((ulonglong)DAT_182671c4c ^ 0xfdfd5587));
  *puVar29 = uVar33 ^ uVar26 ^ uVar38 ^ *(ulonglong *)(lVar1 + -0xc90) ^
             *(ulonglong *)(lVar1 + -0xc38);
  *(ulonglong *)(lVar1 + -0xda8) = uVar34 ^ *(ulonglong *)(lVar1 + -0x960) | 0x9bfca93f6349b9a8;
  lVar2 = DAT_182671c40;
  uVar28 = *(ulonglong *)(lVar1 + -0xa78) ^ uVar33;
  local_res18 = (byte)uVar5;
  uVar38 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar28 >> ((local_res18 ^ 2) & 0x3f) ^ uVar38;
  uVar23 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(lVar2 + -0x110) = (uVar33 ^ *puVar29) << 0x18 ^ uVar23;
  uVar19 = (ulonglong)DAT_182671c68;
  *(longlong *)(lVar2 + -0xd88) = 0x6fd21210b66df6e1 << ((byte)uVar28 & 0x3f);
  uVar8 = DAT_182671f18;
  uVar30 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  uVar23 = *(ulonglong *)(lVar2 - (uVar19 ^ 0x94da5110)) ^ uVar23 |
           *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c54 ^ 0x40673a83)) ^ uVar38;
  uVar19 = (ulonglong)DAT_182671c64;
  uVar38 = uVar23 ^ uVar30;
  *(ulonglong *)(lVar2 + -0xc90) = uVar38;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x5b316b78)) ^ uVar26) - uVar23 ^ uVar28;
  uVar19 = (ulonglong)DAT_182671f50;
  uVar39 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *puVar36 = uVar39 ^ uVar30 ^ uVar34 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0x960);
  uVar26 = (*(ulonglong *)(lVar2 + -0xd88) >> 0x20 ^ uVar19) >> 0x14;
  *(ulonglong *)(lVar2 + -0x110) = uVar26 ^ CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar8 = DAT_182671c98;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0xd88)) + (*(ulonglong *)(lVar2 + -0x888) ^ uVar21);
  uVar19 = (uVar39 ^ *(ulonglong *)(lVar2 + -0xd88)) << ((bVar37 ^ 0xd9) & 0x3f);
  uVar23 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *(ulonglong *)(lVar2 + -0xc38) = uVar19 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182671e00;
  lVar1 = DAT_182671c40;
  uVar19 = uVar19 | uVar26;
  *(ulonglong *)(lVar2 + -0xc90) = uVar19 ^ uVar23;
  uVar15 = DAT_182671e14;
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar26 = (ulonglong)DAT_182671e14;
  puVar29 = (ulonglong *)(lVar1 - ((ulonglong)DAT_182671c90 ^ 0x6de3b5c3));
  *(ulonglong *)(lVar1 + -0x888) = (uVar34 ^ *(ulonglong *)(lVar1 + -0x960)) - uVar19 ^ uVar21;
  uVar7 = DAT_182671c8c;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c8c ^ 0x103c0203)) =
       *puVar29 ^ *(ulonglong *)(lVar1 + -0x228) ^ uVar34 ^ uVar28 ^ uVar25;
  uVar19 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar1 + -0x110) =
       (CONCAT44(uVar4,DAT_182671c5c) ^ 0xcb9c761589505774) + 0x61ae5734e8a55347;
  uVar8 = DAT_182671e94;
  uVar35 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar38 = (*(ulonglong *)(lVar1 - (uVar19 ^ 0x94da5bd8)) >> 0x20 ^ uVar26) >> 0x19;
  uVar19 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar1 + -0xc38) = uVar38 ^ uVar35;
  uVar25 = CONCAT44(uVar8,uVar8);
  uVar19 = *(ulonglong *)(lVar1 - (uVar19 ^ 0x5b316c98));
  *(int *)(lVar1 + -0x9dc) = -0x2f9a7409 - *(int *)(lVar1 + -0x61c);
  uVar8 = DAT_182671e74;
  uVar26 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar1 + -0x960) = (uVar19 ^ uVar34) << (((byte)uVar7 ^ 0xdc) & 0x3f) ^ uVar25;
  uVar34 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c60 ^ 0xd9d94402)) =
       (*(ulonglong *)(lVar1 - (uVar26 ^ 0x1a0ab960)) ^ uVar25 | uVar38) ^ uVar34;
  uVar25 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar19 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar1 + -0x110) =
       (uVar28 ^ *(ulonglong *)(lVar1 + -0xda8)) -
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0x2626bbfd)) ^ uVar34) ^ uVar25;
  *(ulonglong *)(lVar1 - (uVar19 ^ 0x6de3b3b3)) =
       uVar35 ^ uVar28 ^ *(ulonglong *)(lVar1 + -0xda8) ^ *(ulonglong *)(lVar1 + -0xc38);
  uVar8 = DAT_182671e0c;
  uVar28 = CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar19 = *(ulonglong *)(lVar1 + -0x888) ^ *(ulonglong *)(lVar1 + -0x228) ^ uVar28 ^ uVar34 ^
           uVar21;
  *(ulonglong *)(lVar1 + -0x960) = uVar19;
  lVar1 = DAT_182671c40;
  uVar40 = CONCAT44(uVar8,uVar8);
  uVar26 = (uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0x960)) >> ((bVar37 ^ 0xdb) & 0x3f);
  uVar28 = (uVar28 ^ uVar19) << ((bVar16 ^ 0xcd) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar28 ^ CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar1 + -0xc38) = uVar26 ^ uVar40;
  uVar19 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar1 + -0xda8) =
       CONCAT44(uVar32,uVar14) ^ uVar39 ^ *(ulonglong *)(lVar1 + -0xd88) ^ 0x3b48f35f651f6db4;
  uVar15 = DAT_182671c7c;
  uVar14 = DAT_182671c5c;
  uVar34 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  uVar35 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar1 + -0x960) = (uVar26 | uVar28) ^ uVar34;
  uVar19 = (*(ulonglong *)(lVar1 - (uVar19 ^ 0x5b316fc8)) ^ uVar21) -
           (CONCAT44(uVar3,uVar14) ^ 0x3c5748ca74d3abfd);
  *(ulonglong *)(lVar1 + -0xd88) = uVar19 ^ CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar1 + -0xda8) =
       *(longlong *)(lVar1 + -0xbd8) - (CONCAT44(uVar5,uVar15) ^ 0xde8b5e71dedd848);
  uVar8 = _DAT_182671cf0;
  uVar15 = DAT_182671c48;
  uVar38 = CONCAT44(DAT_182671e84,DAT_182671e84);
  uVar21 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar1 + -0xc38) =
       uVar19 - (*(ulonglong *)(lVar1 - (uVar35 ^ 0x8c58e38f)) ^ uVar34) ^ uVar38;
  uVar32 = DAT_182671c68;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 + -0x228) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x8002ef64)) ^ uVar34) -
       (CONCAT44(uVar22,DAT_182671c90) ^ 0x1aeb149eecd37bfe) ^ uVar28;
  *(ulonglong *)(lVar1 + -0x888) =
       (*(ulonglong *)(lVar1 + -0xa78) ^ uVar33) - (CONCAT44(uVar11,uVar32) ^ 0x759c36fe035e81e6);
  uVar19 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *puVar18 = uVar19 ^ uVar25 ^ uVar23 ^ *(ulonglong *)(lVar1 + -0x110) ^
             *(ulonglong *)(lVar1 + -0xc90);
  uVar14 = DAT_182671c64;
  uVar33 = (*(ulonglong *)(DAT_182671c40 + -0xda8) ^ uVar19) >> (((byte)uVar15 ^ 0x10) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar33 ^ CONCAT44(DAT_182671d74,DAT_182671d74);
  lVar1 = DAT_182671c40;
  uVar19 = (*puVar17 ^ uVar19) << (((byte)uVar14 ^ 0x70) & 0x3f);
  uVar11 = DAT_182671c6c ^ 0x9a7c3008;
  uVar14 = DAT_182671c54 ^ 0x5e23746;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar19 ^ CONCAT44(DAT_182671da4,DAT_182671da4);
  *(uint *)(lVar1 + -0x94c) = uVar14 + uVar11;
  uVar33 = uVar33 | uVar19;
  uVar26 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar1 + -0x960) = uVar33 ^ CONCAT44(DAT_182671ee4,DAT_182671ee4);
  uVar25 = (uVar25 ^ *(ulonglong *)(lVar1 + -0x110)) - (uVar24 ^ 0x67e8a3c406af790e);
  uVar19 = CONCAT44(uVar5,DAT_182671c4c);
  *(ulonglong *)(lVar1 + -0x888) = uVar25 ^ uVar26;
  *(ulonglong *)(lVar1 + -0xa78) =
       uVar19 ^ 0x653fdcab9a5cacd4 | CONCAT44(uVar6,DAT_182671c50) ^ 0x4deeb0879072d192;
  uVar8 = DAT_182671fa4;
  uVar19 = CONCAT44(uVar5,DAT_182671c64);
  *(ulonglong *)(lVar1 + -0xc90) = uVar25 - uVar33 ^ uVar27;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x1a0abda8)) = (uVar19 ^ 0x6e88150be14667b) + uVar33 ^ uVar26;
  *(ulonglong *)(lVar1 + -0xbd8) = uVar38 ^ *puVar29 ^ *(ulonglong *)(lVar1 + -0xc38);
  *(ulonglong *)(lVar1 - (uVar20 ^ 0x2626b45d)) =
       ((ulonglong)DAT_182671c90 << 8 | (ulonglong)(uVar15 >> 0x18)) ^ 0x4173d1747d;
  uVar19 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c7c ^ 0x8c58ebff)) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0xbd8)) >> (((byte)DAT_182671c60 ^ 10) & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar1 + -0xa78) = uVar19 ^ *(ulonglong *)(lVar1 + -0x110) ^ 0x462162ae92287;
  uVar33 = (ulonglong)DAT_182671c68;
  bVar16 = (byte)DAT_182671c68;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c54 ^ 0x406739d3)) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0xbd8)) << ((bVar16 ^ 0x20) & 0x3f) ^ uVar31;
  uVar9 = DAT_182671e54;
  lVar2 = DAT_182671c40;
  uVar19 = *(ulonglong *)(lVar1 + -0x888) ^ uVar31 | uVar19 ^ *(ulonglong *)(lVar1 + -0x110);
  *(ulonglong *)(lVar1 + -0x960) = uVar19 ^ uVar40;
  uVar8 = DAT_182671e2c;
  uVar20 = (ulonglong)DAT_182671c5c;
  uVar26 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0x8002ea3c)) ^ uVar38) - uVar19 ^ uVar26;
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar25 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar31 = uVar21 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x228) ^ uVar27 ^
           *(ulonglong *)(lVar2 + -0xc90);
  *(ulonglong *)(lVar2 + -0xd88) = uVar31;
  uVar19 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar2 + -0xa78) = (uVar31 ^ uVar21) >> ((bVar16 ^ 0x20) & 0x3f) ^ uVar25;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x5b316c98)) = (uVar21 ^ uVar31) << 0x20 ^ uVar30;
  uVar8 = DAT_182671cb0;
  uVar28 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar19 = uVar25 ^ *(ulonglong *)(lVar1 + -0xa78) | *(ulonglong *)(lVar1 + -0xbd8) ^ uVar30;
  uVar31 = uVar19 ^ uVar28;
  *(ulonglong *)(lVar1 + -0x888) = uVar31;
  uVar9 = DAT_182671de4;
  lVar2 = DAT_182671c40;
  uVar25 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0x8002ea94)) ^ uVar27) - uVar19 ^ uVar25;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x94da5c38)) =
       *(ulonglong *)(lVar2 + -0xda8) ^ uVar19 ^ uVar28 ^ uVar26 ^ uVar31;
  uVar20 = (uVar19 ^ *(ulonglong *)(lVar2 + -0xc38)) << 6;
  uVar31 = (uVar19 ^ *(ulonglong *)(lVar2 + -0xc38)) >> (((byte)DAT_182671c54 ^ 0x61) & 0x3f);
  uVar19 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *(ulonglong *)(lVar2 + -0x228) = uVar31 ^ uVar23;
  uVar8 = DAT_182671ea0;
  *(ulonglong *)(lVar2 + -0xd88) = uVar20 ^ uVar19;
  uVar9 = DAT_182671f28;
  uVar31 = uVar31 | uVar20;
  uVar19 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar2 + -0xa78) = uVar31 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xbd8) = (uVar28 ^ *(ulonglong *)(lVar2 + -0x888)) + 0x9472f37076603137;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c50 ^ 0x5b316bd0)) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x5b316ae8)) ^ uVar26) - uVar31 ^ CONCAT44(uVar9,uVar9);
  uVar20 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  uVar19 = uVar20 ^ uVar25 ^ uVar40 ^ *(ulonglong *)(lVar2 + -0x110) ^
           *(ulonglong *)(lVar2 + -0x960);
  *(ulonglong *)(lVar2 + -0xc38) = uVar19;
  uVar23 = (uVar19 ^ uVar20) >> (((byte)uVar7 ^ 0xcd) & 0x3f);
  uVar19 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar2 + -0xd88) = uVar23 ^ uVar21;
  uVar8 = DAT_182671dd8;
  *(undefined1 *)(lVar2 + -0x6b9) = **(undefined1 **)(lVar2 - (uVar19 ^ 0xd9d9455a));
  uVar9 = DAT_182671e88;
  uVar15 = DAT_182671c90 ^ 0xf1a1aa75;
  uVar19 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0x8c58e6d7)) ^ uVar20) <<
           (((byte)DAT_182671c4c ^ 0xd5) & 0x3f);
  *(ulonglong *)(lVar2 + -0x228) = uVar19 ^ CONCAT44(uVar8,uVar8);
  *(uint *)(lVar2 + -0x644) = uVar15 + *(int *)(lVar2 + -0x27c);
  *(ulonglong *)(lVar2 + -0x888) = (uVar19 | uVar23) ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar12;
  return;
}



############ FUN_ 180fb7db0 size=4412 ############

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

void FUN_180fb7db0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  byte bVar18;
  uint uVar19;
  ulonglong uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  longlong lVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  uint uVar39;
  uint uVar40;
  uint uVar41;
  uint uVar42;
  ulonglong uVar43;
  uint uVar44;
  uint uVar45;
  ulonglong uVar46;
  
  uVar30 = DAT_182671f90;
  uVar41 = DAT_182671c8c;
  uVar12 = DAT_182671c88;
  uVar35 = DAT_182671c84;
  uVar31 = DAT_182671c78;
  uVar13 = DAT_182671c58;
  lVar4 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c58;
  uVar43 = (ulonglong)DAT_182671c84;
  uVar29 = (ulonglong)DAT_182671c78;
  uVar26 = (ulonglong)DAT_182671c8c;
  uVar37 = DAT_182671c80 | DAT_182671c8c;
  uVar27 = DAT_182671c78 + DAT_182671c88;
  uVar34 = DAT_182671c84 << 0x10 | DAT_182671c84 >> 0x10;
  uVar44 = (DAT_182671c58 << 0x10 | DAT_182671c58 & 0xff00) << 8 | DAT_182671c58 >> 8 & 0xff00 |
           DAT_182671c58 >> 0x18;
  uVar42 = (DAT_182671c50 << 0x10 | DAT_182671c50 & 0xff00) << 8 | DAT_182671c50 >> 8 & 0xff00 |
           DAT_182671c50 >> 0x18;
  uVar3 = *(uint *)(&DAT_182613220 + DAT_1826722b8);
  uVar23 = *(uint *)(&DAT_182613218 + DAT_1826722b8) ^ DAT_182671c50;
  uVar33 = *(uint *)(DAT_182671c40 + -0x670) ^ DAT_182671cb8;
  DAT_182671c48 = uVar34;
  DAT_182671c60 = uVar37;
  DAT_182671c64 = uVar44 ^ 0x7b01370c;
  DAT_182671c70 = uVar42;
  DAT_182671c74 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       *(ulonglong *)
        (CONCAT44(DAT_182671dd8,DAT_182671dd8) ^ *(ulonglong *)(DAT_182671c40 + -0x588)) ^
       CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar33 = uVar33 + (*(uint *)(lVar4 + -0xae4) ^ DAT_182671ca4);
  bVar18 = (byte)uVar12 ^ 0x46;
  uVar14 = (ulonglong)uVar27;
  *(uint *)(lVar4 + -0x9dc) = uVar33 ^ uVar30;
  lVar5 = DAT_182671c40;
  uVar33 = uVar33 << (bVar18 & 0x1f) ^ DAT_182671ee4;
  *(uint *)(lVar4 + -0x1c8) = uVar33;
  lVar32 = DAT_182671c40;
  uVar33 = uVar33 ^ DAT_182671ee4;
  uVar30 = (*(uint *)(lVar4 - ((ulonglong)uVar27 ^ 0x9e72b837)) ^ uVar30) >>
           (((byte)uVar31 ^ 0xb3) & 0x1f) ^ DAT_182671e48;
  uVar20 = (ulonglong)uVar34;
  uVar38 = *(uint *)(DAT_182671c40 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar5 + -0x634) = uVar30;
  uVar30 = uVar30 ^ DAT_182671e48;
  uVar12 = *(uint *)(lVar32 + -0x684) ^ DAT_182671de0;
  *(ulonglong *)(lVar5 + -0x5e8) =
       (CONCAT44(uVar34,uVar13) ^ 0x7d0c5702510a8985) +
       (CONCAT44(uVar44,uVar37) ^ 0xd2b89444f27749b6);
  uVar19 = DAT_182671f44;
  uVar12 = uVar38 + uVar12 ^ DAT_182671cb4;
  puVar1 = (uint *)(lVar32 + -0x94c);
  uVar28 = (ulonglong)DAT_182671f44;
  *(uint *)(lVar32 + -0x644) = uVar12;
  uVar12 = uVar12 ^ DAT_182671f1c ^ DAT_182671cb4;
  *(uint *)(lVar32 + -0x6c0) = (uVar30 | uVar33) ^ uVar19;
  uVar30 = DAT_182671c68;
  uVar16 = (ulonglong)DAT_182671c68;
  *puVar1 = uVar12;
  uVar33 = DAT_182671c94;
  uVar12 = uVar12 ^ DAT_182671f88 ^ DAT_182671f1c;
  uVar15 = (ulonglong)DAT_182671c94;
  uVar35 = *(uint *)(lVar32 - ((ulonglong)uVar35 ^ 0x172b4f8b)) ^ DAT_182671e1c ^ uVar19;
  uVar45 = uVar30 ^ DAT_182671c94;
  *(uint *)(lVar32 + -0x4ac) = uVar35;
  lVar4 = DAT_182671c40;
  uVar35 = uVar35 ^ DAT_182671de8 ^ DAT_182671e1c;
  DAT_182671c7c = uVar45;
  *(longlong *)(DAT_182671c40 + -0xa50) =
       *(longlong *)(lVar32 - (uVar15 ^ 0x7ebcd0bf)) <<
       ((byte)*(undefined8 *)(DAT_182671c40 - ((ulonglong)uVar30 ^ 0x81808cd8)) & 0x3f);
  puVar2 = (uint *)(lVar4 + -0x61c);
  *puVar2 = uVar12;
  bVar11 = (byte)DAT_182671ed4;
  *(uint *)(lVar4 - ((ulonglong)uVar45 ^ 0xff3c53db)) = uVar35;
  uVar35 = DAT_182671dc0;
  *(longlong *)(lVar4 - (uVar16 ^ 0x81808460)) =
       *(longlong *)(lVar4 + -0x3d8) + *(longlong *)(lVar4 + -0x228);
  pbVar21 = (byte *)((CONCAT44(uVar45,DAT_182671c88) ^ 0xff3c538f172b4958) +
                    *(longlong *)(lVar4 + -0x9a8));
  *(ulonglong *)(lVar4 + -0x5a0) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182671d78;
  *(byte *)(lVar4 - ((ulonglong)uVar41 ^ 0x10001c3)) = *pbVar21 ^ bVar11 ^ (byte)DAT_182671e0c;
  uVar39 = (uint)(bVar11 ^ *(byte *)(lVar4 + -0x1c3));
  *(uint *)(lVar4 + -0x94) = uVar39 ^ uVar35;
  uVar8 = DAT_182671f94;
  uVar35 = DAT_182671c74 ^ 0xd4fb7d3b;
  uVar12 = uVar39 << (((byte)DAT_182671c80 ^ 1) & 0x1f) ^ DAT_182671ee4;
  uVar38 = (*(uint *)(lVar4 + -0x54) ^ DAT_182671de8) + (uVar30 ^ 0x1dc2964e) ^ DAT_182671d7c;
  *(uint *)(lVar4 + -0x76c) = uVar38;
  uVar38 = uVar38 ^ DAT_182671d7c;
  *(uint *)(lVar4 + -0x670) = (uVar42 ^ 0xaf8044b9) - uVar35;
  *(uint *)(lVar4 + -0xae4) = uVar12;
  *(uint *)(lVar4 + -0x9dc) = uVar38 - (uVar12 ^ DAT_182671ee4) ^ DAT_182671d04;
  uVar7 = DAT_182671e60;
  uVar36 = DAT_182671d38;
  uVar38 = DAT_182671d10;
  uVar35 = DAT_182671c50;
  uVar16 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar4 + -0x1c8) =
       (*(uint *)(lVar4 - (uVar43 ^ 0x172b4097)) ^ DAT_182671d04) * (*puVar2 ^ DAT_182671f88) ^
       DAT_182671e60;
  uVar40 = uVar39 * (uVar42 ^ 0x5f97b86b) ^ DAT_182671d98;
  *(uint *)(lVar4 + -0x634) = uVar40;
  uVar39 = DAT_182671d54;
  uVar12 = DAT_182671c64;
  uVar40 = (*(uint *)(lVar4 - ((ulonglong)uVar35 ^ 0x78b89697)) ^ uVar7) + (uVar40 ^ DAT_182671d98);
  *(uint *)(lVar4 + -0x684) = uVar40 ^ uVar38;
  uVar40 = uVar40 << ((byte)uVar12 & 0x1f);
  *(uint *)(lVar4 + -0x644) = uVar40 ^ uVar8;
  uVar35 = (*(uint *)(lVar4 + -0x684) ^ uVar38) >> (((byte)uVar45 ^ 0x9c) & 0x1f);
  *(uint *)(lVar4 + -0x6c0) = uVar35 ^ uVar39;
  *puVar1 = (uVar35 | uVar40) ^ uVar36;
  uVar10 = DAT_182671f84;
  uVar12 = DAT_182671c80;
  lVar4 = DAT_182671c40;
  uVar46 = CONCAT44(uVar31,DAT_182671c88);
  lVar32 = (uVar46 ^ 0x129b6cf4d5d7e232) - (CONCAT44(uVar27,uVar31) ^ 0x9cbf1e8ce80844a7);
  uVar17 = (ulonglong)DAT_182671c80;
  uVar22 = (ulonglong)DAT_182671c80;
  *(longlong *)(DAT_182671c40 + -0xa70) = lVar32;
  lVar5 = DAT_182671c40;
  uVar38 = *(uint *)(lVar4 - (uVar22 ^ 0x100020c)) ^ DAT_182671f88;
  uVar35 = *(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4;
  *(longlong *)(lVar4 + -0xf0) = lVar32 * 0x80000;
  uVar35 = uVar38 + uVar35 ^ uVar10;
  *(uint *)(lVar4 + -0x4ac) = uVar35;
  *(uint *)(lVar4 - ((ulonglong)(uVar44 ^ 0x7b01370c) ^ 0x7b053759)) =
       uVar35 ^ DAT_182671d68 ^ uVar10;
  uVar35 = *puVar1 ^ DAT_182671d84 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x828) =
       (CONCAT44(uVar33,uVar34) ^ 0x3dfc742f6a7b80ec) <<
       ((byte)*(undefined8 *)(lVar4 - (uVar26 ^ 0x10007c0)) & 0x3f);
  *(uint *)(lVar4 + -0x670) = uVar35;
  uVar8 = DAT_182671e9c;
  uVar35 = uVar35 ^ DAT_182671e04 ^ DAT_182671d84;
  *(uint *)(lVar5 + -0x76c) = *(uint *)(lVar4 + -0x54) ^ DAT_182671e9c ^ DAT_182671d68;
  *(uint *)(lVar5 - (uVar25 ^ 0x1000ee4)) = uVar35;
  uVar9 = DAT_182671f54;
  uVar40 = DAT_182671eb8;
  uVar24 = DAT_182671eb8 & 0xff;
  *(ulonglong *)(lVar5 - (uVar16 ^ 0x78b892ff)) =
       (CONCAT44(uVar33,uVar27) ^ 0x7ebcd7df9e72b1eb) * 0x20 +
       (CONCAT44(uVar31,uVar30) ^ 0x874768a08180844e) + *(longlong *)(lVar5 + -0x9a8) ^ uVar28;
  lVar4 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x1c3) =
       *(byte *)((ulonglong)uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0x5a0)) ^ (byte)uVar40 ^
       (byte)DAT_182671e0c;
  uVar35 = DAT_182671c88;
  *(uint *)(lVar4 + -0x9dc) =
       (DAT_182671c64 ^ 0x45ff46ad) - (*(uint *)(lVar4 - (uVar20 ^ 0x494b11eb)) ^ uVar39);
  uVar38 = DAT_182671e4c;
  uVar39 = *(uint *)(lVar4 + -0xae4) ^ DAT_182671e04;
  *(uint *)(lVar4 + -0x94) = uVar24 ^ *(byte *)(lVar4 + -0x1c3) ^ DAT_182671e4c;
  uVar19 = DAT_182671c60 ^ 0x9d42160e;
  *(uint *)(lVar4 + -0x1c8) = (DAT_182671c8c ^ 0xafa839a6) << (((byte)uVar35 ^ 0x59) & 0x1f);
  *(uint *)(lVar4 + -0x634) = uVar39 + uVar19 ^ DAT_182671f2c;
  *(uint *)(lVar4 - (uVar17 ^ 0x1000294)) =
       (*(uint *)(lVar4 - (uVar14 ^ 0x9e72b17f)) ^ uVar38) << (((byte)DAT_182671c84 ^ 0x5a) & 0x1f)
       ^ uVar9;
  uVar35 = (*(uint *)(lVar4 + -0x634) ^ DAT_182671f2c) - (*(uint *)(lVar4 + -0x684) ^ uVar9) ^
           DAT_182671f60;
  *(uint *)(lVar4 + -0x644) = uVar35;
  *puVar2 = (uVar35 ^ DAT_182671f60) * (uVar8 ^ *(uint *)(lVar4 + -0x76c)) ^ DAT_182671e2c;
  *(ulonglong *)(lVar4 + -0xb20) =
       CONCAT44(uVar41,uVar12) ^ 0xa5ca54b1c9b1f05d | *(ulonglong *)(lVar4 + -0x7c0);
  uVar39 = DAT_182671ec8;
  uVar41 = DAT_182671c88;
  uVar38 = (*(uint *)(lVar4 - (uVar15 ^ 0x7ebcd74b)) ^ uVar38) * 0x1e;
  *(uint *)(lVar4 + -0x4ac) = uVar38 ^ uVar10;
  uVar38 = (*(uint *)(lVar4 - (uVar20 ^ 0x494b1137)) ^ DAT_182671e2c) + uVar38;
  *puVar1 = uVar38 ^ uVar39;
  uVar35 = DAT_182671c64;
  uVar38 = uVar38 << (bVar18 & 0x1f) ^ DAT_182671f10;
  *(ulonglong *)(lVar4 + -0x920) =
       (CONCAT44(uVar37,uVar13) ^ 0x3356a5b4bfdc660) - (CONCAT44(uVar30,uVar41) ^ 0xafad1f0d70f2d23)
  ;
  *(ulonglong *)(lVar4 + -0xa60) = *(ulonglong *)(lVar4 + -0x680) ^ *(ulonglong *)(lVar4 + -0xa70);
  *(uint *)(lVar4 + -0x54) = uVar38;
  *(uint *)(lVar4 - (uVar25 ^ 0x1000270)) =
       (*puVar1 ^ uVar39) >> (((byte)uVar35 ^ 0x1e) & 0x1f) ^ uVar7;
  *(uint *)(lVar4 + -0x6c0) =
       (*(uint *)(lVar4 - (uVar16 ^ 0x78b8970b)) ^ DAT_182671f10 | *(uint *)(lVar4 + -0x670) ^ uVar7
       ) ^ DAT_182671fa8;
  uVar35 = (*(uint *)(lVar4 - (uVar14 ^ 0x9e72b43f)) ^ DAT_182671dd4) +
           (uVar8 ^ *(uint *)(lVar4 + -0x76c)) ^ DAT_182671d18;
  *(uint *)(lVar4 + -0x9dc) = uVar35;
  *(uint *)(lVar4 + -0x1c8) = uVar35 ^ DAT_182671f40 ^ DAT_182671d18;
  uVar38 = DAT_182671f78;
  uVar28 = (ulonglong)DAT_182671c98;
  *(uint *)(lVar4 + -0xae4) =
       *(uint *)(lVar4 - (uVar29 ^ 0x87476e60)) ^ DAT_182671ca8 ^ DAT_182671fa8;
  *(ulonglong *)(lVar4 + -0x960) =
       (CONCAT44(uVar31,uVar33) ^ 0xf0e16b5a3b559c1b) >>
       ((byte)*(undefined8 *)(lVar4 + -0x680) & 0x3f);
  uVar31 = DAT_182671c88;
  uVar35 = DAT_182671c70;
  uVar22 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar4 + -0x634) = *(uint *)(lVar4 - (uVar22 ^ 0x5f97b9b0)) ^ uVar38 ^ DAT_182671f40;
  uVar41 = *(uint *)(lVar4 - ((ulonglong)uVar31 ^ 0x172b43af)) ^ DAT_182671f98 ^ DAT_182671ca8;
  *(uint *)(lVar4 + -0x684) = uVar41;
  uVar41 = uVar41 ^ DAT_182671f98;
  *(longlong *)(lVar4 + -0x4b8) =
       *(longlong *)(lVar4 + -0x760) - *(longlong *)(lVar4 - (uVar14 ^ 0x9e72bb8b));
  *(ulonglong *)(lVar4 + -0x5a0) =
       *(longlong *)(lVar4 - (uVar25 ^ 0x1000da8)) +
       (CONCAT44(uVar30,DAT_182671c64) ^ 0x818084507b05370d) * 0x20 + (uVar46 ^ 0x874768a0172b4942)
       ^ uVar28;
  uVar13 = DAT_182671c7c;
  bVar11 = *(byte *)(*(ulonglong *)(lVar4 - (uVar20 ^ 0x494b128b)) ^ uVar28) ^ (byte)uVar9 ^
           (byte)DAT_182671e0c;
  *(byte *)(lVar4 + -0x1c3) = bVar11;
  *(uint *)(lVar4 + -0x644) = (uint)bVar11 ^ uVar9 & 0xff ^ uVar36;
  uVar33 = DAT_182671e3c;
  lVar5 = DAT_182671c40;
  bVar11 = (byte)DAT_182671c58;
  *(uint *)(lVar4 - (uVar43 ^ 0x172b49df)) = uVar41 + (uVar13 ^ 0x637e4191) ^ DAT_182671e3c;
  uVar39 = (uVar36 ^ *(uint *)(lVar4 + -0x644)) << ((bVar11 ^ 0x11) & 0x1f) ^ DAT_182671f28;
  *puVar2 = uVar39;
  uVar41 = DAT_182671d6c;
  uVar13 = DAT_182671cb8;
  uVar39 = (*(uint *)(lVar4 - (uVar17 ^ 0x1000484)) ^ uVar33) - (uVar39 ^ DAT_182671f28);
  *(uint *)(lVar5 + -0x4ac) = uVar39 ^ DAT_182671cb8;
  *puVar1 = (*(uint *)(lVar5 - (uVar26 ^ 0x1000634)) ^ uVar38) * uVar39 ^ uVar41;
  lVar4 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar37 ^ 0x1000444)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar35 ^ 0x5f97b8ec)) ^ uVar33) + (DAT_182671c94 ^ 0x39d1c439)
  ;
  *(uint *)(lVar4 - (uVar20 ^ 0x494b115b)) =
       (uVar36 ^ *(uint *)(lVar4 + -0x644)) * (DAT_182671c84 ^ 0x172b4942) ^ _DAT_182671cf0;
  uVar35 = DAT_182671de8;
  uVar41 = (uVar41 ^ *puVar1) + (*(uint *)(lVar4 + -0x670) ^ _DAT_182671cf0);
  *(uint *)(lVar4 + -0x76c) = uVar41 ^ DAT_182671de8;
  *(ulonglong *)(lVar4 + -0x2b0) = *(ulonglong *)(lVar4 + -0xa50) ^ 0x9ac7166e363f4653;
  bVar11 = (byte)DAT_182671c50;
  *(uint *)(lVar4 - ((ulonglong)uVar45 ^ 0xff3c5a53)) = uVar41 * 0x2000 ^ uVar13;
  uVar33 = DAT_182671f6c;
  uVar35 = (uVar35 ^ *(uint *)(lVar4 + -0x76c)) >> ((bVar11 ^ 0x4c) & 0x1f) ^ DAT_182671fa0;
  *(longlong *)(lVar4 + -0xbd8) = *(longlong *)(lVar4 + -0xb20) - *(longlong *)(lVar4 + -0x4b8);
  *(uint *)(lVar4 + -0x6c0) = uVar35;
  uVar41 = DAT_182671d90;
  uVar36 = (uVar35 ^ DAT_182671fa0 | *(uint *)(lVar4 + -0x9dc) ^ uVar13) ^ uVar33;
  *(uint *)(lVar4 + -0x1c8) = uVar36;
  uVar35 = DAT_182671dd4;
  lVar5 = DAT_182671c40;
  uVar33 = uVar33 ^ DAT_182671dd4;
  uVar38 = (*(uint *)(lVar4 - (uVar26 ^ 0x10005d4)) ^ DAT_182671dd4) +
           (*(uint *)(lVar4 + -0x634) ^ uVar38) ^ uVar40;
  uVar13 = DAT_182671e88 ^ uVar38;
  *(uint *)(lVar4 + -0xae4) = uVar38;
  *(uint *)(lVar4 + -0x684) = uVar13 ^ uVar40;
  uVar13 = DAT_182671c64 ^ 0x9ce5f1aa;
  *(uint *)(lVar4 - (uVar29 ^ 0x87476ebc)) = uVar33 ^ uVar36;
  uVar20 = (ulonglong)DAT_182671dec;
  *(uint *)(lVar4 + -0x4ac) = uVar13 + (DAT_182671c74 ^ 0x132e12f1);
  uVar13 = DAT_182671d14 ^ *puVar2;
  *(uint *)(lVar5 + -0x94) = *(uint *)(lVar5 - (uVar15 ^ 0x7ebcd15b)) ^ uVar41 ^ DAT_182671e88;
  *(uint *)(lVar5 + -0x54) = uVar13 ^ uVar35;
  bVar11 = (byte)DAT_182671ef8;
  uVar6 = DAT_182671c4c;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x10001a0)) =
       (CONCAT44(uVar12,uVar30) ^ 0x100041081808444) + *(longlong *)(lVar5 + -0x9a8) ^ uVar20;
  uVar13 = DAT_182671dc4;
  *(ulonglong *)(lVar5 + -0x7e8) =
       CONCAT44(uVar44,uVar31) ^ 0xcdced6ce74d53786 | *(ulonglong *)(lVar5 + -0x920);
  *(byte *)(lVar5 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar43 ^ 0x172b4ceb)) ^ uVar20) ^ bVar11 ^
       (byte)DAT_182671e0c;
  uVar35 = DAT_182671da4;
  uVar12 = (uint)(*(byte *)(lVar5 - (uVar16 ^ 0x78b8969c)) ^ bVar11);
  *(uint *)(lVar5 + -0x644) = uVar12 ^ DAT_182671da4;
  uVar30 = uVar12 << (((byte)uVar6 ^ 0xa1) & 0x1f) ^ DAT_182671f80;
  uVar31 = (*(uint *)(lVar5 - (uVar22 ^ 0x5f97b82c)) ^ DAT_182671d14) + (DAT_182671c80 ^ 0x9d42160e)
           ^ DAT_182671f88;
  uVar20 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar5 + -0x380) = *(ulonglong *)(lVar5 + -0x5e8) >> 0x27;
  *puVar1 = uVar31;
  uVar31 = uVar31 ^ DAT_182671f88;
  *(uint *)(lVar5 + -0x670) = uVar30;
  uVar12 = DAT_182671ec4;
  *(uint *)(lVar5 - (uVar20 ^ 0x100076c)) = uVar31 - (uVar30 ^ DAT_182671f80) ^ DAT_182671d30;
  uVar35 = (uVar35 ^ *(uint *)(lVar5 + -0x644)) * 0x14 ^ DAT_182671e8c;
  uVar30 = (*(uint *)(lVar5 - (uVar16 ^ 0x78b89033)) ^ DAT_182671d30) *
           (*(uint *)(lVar5 + -0x94) ^ uVar41);
  *(uint *)(lVar5 + -0x6c0) = uVar35;
  uVar35 = uVar35 ^ DAT_182671e8c;
  *(uint *)(lVar5 + -0x9dc) = uVar30 ^ uVar12;
  uVar30 = uVar30 + uVar35;
  *(uint *)(lVar5 + -0x634) = uVar30 ^ uVar13;
  *(ulonglong *)(lVar5 + -0x110) =
       (CONCAT44(uVar37,uVar34) ^ 0xa2a3d6f34ba3a844) >>
       ((byte)*(undefined8 *)(lVar5 + -0xa60) & 0x3f);
  bVar11 = (byte)DAT_182671c88;
  *(uint *)(lVar5 - (uVar15 ^ 0x7ebcdd3b)) = uVar30 << (((byte)uVar6 ^ 0xbd) & 0x1f) ^ DAT_182671f08
  ;
  uVar35 = DAT_182671cf8;
  *(uint *)(lVar5 - (uVar14 ^ 0x9e72b023)) =
       (*(uint *)(lVar5 - ((ulonglong)DAT_182671c90 ^ 0x8b087765)) ^ uVar13) >>
       ((bVar11 ^ 0x58) & 0x1f) ^ DAT_182671cf8;
  *(uint *)(lVar5 - (uVar29 ^ 0x87476c0c)) =
       (*(uint *)(lVar5 + -0xae4) ^ DAT_182671f08 | uVar35 ^ *(uint *)(lVar5 + -0x1c8)) ^
       DAT_182671eec;
  uVar35 = DAT_182671cdc;
  uVar13 = (*(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar5 + -0x94) ^ uVar41) ^
           DAT_182671e90;
  *(uint *)(lVar5 + -0x684) = uVar13;
  *(uint *)(lVar5 - ((ulonglong)uVar45 ^ 0xff3c5593)) = uVar13 ^ uVar35 ^ DAT_182671e90;
  *(uint *)(lVar5 - (uVar17 ^ 0x1000444)) =
       *(uint *)(lVar5 + -0x4ac) ^ DAT_182671f5c ^ DAT_182671eec;
  *puVar1 = uVar35 ^ *puVar2 ^ DAT_182671ee4;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar3 ^ uVar42) * 4) = uVar23;
  return;
}



############ FUN_ 180fc80b0 size=5104 ############

void FUN_180fc80b0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  longlong *plVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  byte bVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  byte local_100;
  
  uVar5 = DAT_182671c8c;
  uVar14 = DAT_182671c88;
  uVar12 = DAT_182671c80;
  uVar11 = DAT_182671c7c;
  uVar9 = DAT_182671c70;
  uVar7 = DAT_182671c68;
  uVar6 = DAT_182671c60;
  lVar2 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c80;
  uVar44 = DAT_182671c80 * DAT_182671c90;
  uVar36 = (ulonglong)DAT_182671c7c;
  uVar27 = (ulonglong)DAT_182671c68;
  uVar39 = (ulonglong)DAT_182671c60;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_1826722e8);
  uVar25 = (ulonglong)DAT_182671c70;
  uVar33 = (ulonglong)DAT_182671c88;
  uVar26 = DAT_182671c7c & DAT_182671c70;
  uVar23 = (ulonglong)DAT_182671c8c;
  uVar41 = DAT_182671c68 - DAT_182671c88;
  uVar28 = DAT_182671c60 ^ DAT_182671c8c;
  uVar18 = *(uint *)(&DAT_182613220 + DAT_1826722e8) ^ DAT_182671c90;
  uVar43 = CONCAT44(DAT_182671c80,DAT_182671c8c);
  pbVar20 = (byte *)((uVar43 ^ 0x18cae17d3547abcf) + *(longlong *)(DAT_182671c40 + -0x1d0));
  DAT_182671c48 = uVar28;
  DAT_182671c50 = uVar41;
  DAT_182671c5c = uVar26;
  DAT_182671c64 = uVar44;
  *(ulonglong *)(DAT_182671c40 + -0x838) = (ulonglong)pbVar20 ^ (ulonglong)DAT_182671e08;
  *pbVar20 = *(byte *)(lVar2 + -0x72a) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671f80;
  uVar4 = DAT_182671ed0;
  lVar2 = DAT_182671c40;
  uVar32 = (ulonglong)uVar28;
  uVar37 = (ulonglong)uVar41;
  puVar24 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x7146e4ee)) +
            ((CONCAT44(uVar28,uVar41) ^ 0x44014c015d2c86c6) +
            (CONCAT44(uVar28,uVar14) ^ 0x44014c01141a613e) * 0xc) * 8);
  *(ulonglong *)(DAT_182671c40 + -0x140) =
       (ulonglong)puVar24 ^ CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar34 = CONCAT44(uVar4,uVar4);
  uVar21 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar22 = (ulonglong)DAT_182671f64;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x141a6b6e)) = *puVar24 ^ uVar21 ^ uVar34;
  *(byte *)(lVar2 - ((ulonglong)uVar9 ^ 0x200c0752)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x328) ^ uVar22) ^ (byte)DAT_182671f14;
  uVar4 = DAT_182671eb4;
  uVar29 = (ulonglong)DAT_182671d90;
  uVar22 = (ulonglong)DAT_182671e28;
  bVar40 = (byte)DAT_182671d90 ^ (byte)DAT_182671f84;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0xa50)) >> (((byte)uVar7 ^ 0xf6) & 0x3f) ^
       CONCAT44(DAT_182671d90,DAT_182671d90);
  bVar40 = bVar40 ^ *(byte *)(lVar2 + -0x4b8);
  *(ulonglong *)(lVar2 + -0x3d8) =
       *(ulonglong *)(CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar2 + -0xa0)) ^ uVar21;
  *(byte *)(lVar2 + -0xcd2) = bVar40;
  uVar4 = DAT_182671e6c;
  bVar40 = bVar40 ^ (byte)DAT_182671f84 ^ (byte)DAT_182671d18;
  pbVar20 = (byte *)(*(longlong *)(lVar2 - (uVar36 ^ 0xa5b69b5c)) +
                    (CONCAT44(uVar26,uVar12) ^ 0x2004028018cae14c));
  *(ulonglong *)(lVar2 + -0x18) = (ulonglong)pbVar20 ^ uVar22;
  *(ulonglong *)(lVar2 + -0xa70) =
       (CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar2 + -0xc90)) >> (((byte)uVar41 ^ 0xe2) & 0x3f);
  uVar4 = DAT_182671d24;
  *pbVar20 = bVar40;
  local_100 = (byte)uVar5;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x200c0e61)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xa5b69b9c)) ^ CONCAT44(uVar4,uVar4)) <<
       ((local_100 ^ 0xf8) & 0x3f);
  uVar10 = DAT_182671cb8;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + 0x30 +
            (CONCAT44(uVar26,uVar6) ^ 0x200402807146e7fe) * 0x60);
  uVar22 = (ulonglong)DAT_182671cb8;
  *(ulonglong *)(lVar2 + -0xb30) = (ulonglong)puVar24 ^ CONCAT44(DAT_182671d00,DAT_182671d00);
  uVar4 = DAT_182671d38;
  uVar35 = CONCAT44(uVar10,uVar10) ^ *puVar24 ^ uVar21;
  *(ulonglong *)(lVar2 + -0x628) = uVar35;
  bVar40 = (byte)uVar4 ^ (byte)DAT_182671d70;
  uVar36 = (ulonglong)DAT_182671f44;
  *(ulonglong *)(lVar2 + -0xc38) =
       ((ulonglong)(uVar10 >> 0x10) | uVar22 << 0x10) ^ uVar35 >> 0x10 ^ CONCAT44(uVar4,uVar4);
  *(byte *)(lVar2 + -0x551) = bVar40 ^ *(byte *)(lVar2 + -0xc38);
  uVar10 = DAT_182671c90;
  pbVar20 = (byte *)(*(longlong *)(lVar2 + -0x1d0) + 0x32);
  *(ulonglong *)(lVar2 + -0x4f0) = (ulonglong)pbVar20 ^ uVar36;
  *(ulonglong *)(lVar2 + -0x7e8) =
       (CONCAT44(uVar10,uVar12) ^ 0x9f7c12989758b048) << (((byte)uVar44 ^ 0x34) & 0x3f);
  *pbVar20 = *(byte *)(lVar2 - (uVar27 ^ 0x7146e2af)) ^ (byte)DAT_182671d70 ^ (byte)DAT_182671d18;
  uVar16 = DAT_182671e5c;
  uVar8 = DAT_182671d6c;
  lVar3 = DAT_182671c40;
  *(longlong *)(lVar2 + -0x960) =
       0x1456662f9b2cede9 << (((byte)uVar4 ^ *(byte *)(lVar2 + -0xc38)) & 0x3f);
  uVar13 = DAT_182671d44;
  uVar30 = CONCAT44(uVar16,uVar16);
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar14,uVar41) ^ 0x141a613e5d2c86c6) + (uVar43 ^ 0x18cae17d3547abff) * 0xc) *
            8);
  uVar22 = (ulonglong)DAT_182671d44;
  *(ulonglong *)(lVar3 + -0x650) = (ulonglong)puVar24 ^ uVar30;
  uVar36 = CONCAT44(uVar13,uVar13) ^ *puVar24 ^ uVar21;
  *(ulonglong *)(lVar3 + -0xa60) = uVar36;
  lVar2 = DAT_182671c40;
  bVar40 = (byte)DAT_182671f4c;
  uVar22 = ((ulonglong)(uVar13 >> 0x18) | uVar22 << 8) ^ uVar36 >> 0x18 ^
           CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(undefined8 *)(DAT_182671c40 + -0x2b0) = 0xb5e87076b5cfb9e6;
  *(ulonglong *)(lVar2 + -0xb18) = uVar22;
  uVar36 = (ulonglong)DAT_182671ddc;
  *(byte *)(lVar2 - (uVar39 ^ 0x7146eb97)) = bVar40 ^ (byte)uVar8 ^ (byte)uVar22;
  uVar4 = DAT_182671d18;
  plVar31 = (longlong *)(lVar2 - (uVar23 ^ 0x3547aa2f));
  pbVar20 = (byte *)((CONCAT44(uVar11,uVar41) ^ 0xa5b69a8c5d2c86f3) + *plVar31);
  *(ulonglong *)(lVar2 + -0x780) = (ulonglong)pbVar20 ^ uVar36;
  bVar40 = (byte)uVar9;
  *pbVar20 = *(byte *)(lVar2 + -0xc69) ^ (byte)uVar8 ^ (byte)uVar4;
  *(ulonglong *)(lVar2 + -0x888) = *(ulonglong *)(lVar2 + -0x2b0) >> ((bVar40 ^ 0x9d) & 0x3f);
  uVar16 = DAT_182671e30;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + 0x30 +
            (CONCAT44(uVar44,uVar26) ^ 0xfd5bf71320040280) * 0x60);
  *(ulonglong *)(lVar2 + -0xb88) = (ulonglong)puVar24 ^ CONCAT44(uVar4,uVar4);
  uVar13 = DAT_182671f20;
  uVar35 = CONCAT44(uVar16,uVar16);
  uVar22 = *puVar24 ^ uVar35 ^ uVar21;
  *(ulonglong *)(DAT_182671c40 + -0xf0) = uVar22;
  uVar4 = DAT_182671d18;
  lVar3 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671ef8;
  uVar22 = (uVar35 ^ uVar22) >> (((byte)uVar7 ^ 0xde) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  lVar2 = *(longlong *)(DAT_182671c40 + -0x1d0);
  *(byte *)(DAT_182671c40 + -0x7f1) = (byte)uVar13 ^ (byte)DAT_182671d74 ^ (byte)uVar22;
  *(ulonglong *)(lVar3 + -0x680) = uVar22;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xefbf968f)) = lVar2 + 0x34U ^ uVar36;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x940) ^ uVar36) =
       *(byte *)(DAT_182671c40 - (uVar32 ^ 0x44014bf0)) ^ (byte)DAT_182671d74 ^ (byte)uVar4;
  lVar2 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(DAT_182671c40 + -0x10) =
       *(longlong *)(DAT_182671c40 + -0x310) + (CONCAT44(uVar11,uVar9) ^ 0xa5b69a8c200c0697) * 8 ^
       uVar22;
  bVar38 = (byte)DAT_182671f2c;
  uVar43 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar36 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0x44014c11)) ^ uVar22) ^ uVar21;
  uVar22 = (ulonglong)DAT_182671de8;
  *(ulonglong *)(lVar2 + -0x380) = uVar36 ^ CONCAT44(uVar13,uVar13);
  uVar15 = DAT_182671f68;
  uVar42 = (ulonglong)DAT_182671f68;
  uVar36 = uVar36 >> ((bVar40 ^ 0xb9) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar2 + -0x510) = uVar36;
  lVar3 = DAT_182671c40;
  *(byte *)(lVar2 + -0x3a1) = bVar38 ^ (byte)uVar36 ^ (byte)DAT_182671ee8;
  pbVar20 = (byte *)(*(longlong *)(lVar2 + -0x1d0) + 0x35);
  *(ulonglong *)(lVar2 + -0x420) = (ulonglong)pbVar20 ^ uVar22;
  *pbVar20 = *(byte *)(lVar2 - (uVar39 ^ 0x7146e45f)) ^ (byte)uVar4 ^ (byte)DAT_182671ee8;
  uVar35 = CONCAT44(uVar10,uVar6) ^ 0xefbf9fcf7146e7fe;
  uVar45 = CONCAT44(uVar15,uVar15);
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar12,uVar12) ^ 0x18cae17d18cae17b) + uVar35 * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x678) = (ulonglong)puVar24 ^ CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar3 + -0x760) =
       CONCAT44(uVar7,uVar44) ^ 0xddabb33ff36079fe | *(ulonglong *)(lVar3 + -0x510) ^ uVar43;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x5e8) = *puVar24 ^ uVar21 ^ uVar45;
  lVar3 = DAT_182671c40;
  bVar38 = (byte)DAT_182671ed8;
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (*(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0x5d2c8328)) ^ uVar45) >>
       ((local_100 ^ 0xcf) & 0x3f) ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  bVar38 = bVar38 ^ *(byte *)(lVar3 + -0x228) ^ (byte)DAT_182671f10;
  *(byte *)(lVar3 + -0xbf1) = bVar38;
  bVar38 = bVar38 ^ (byte)DAT_182671d18 ^ (byte)DAT_182671f10;
  pbVar20 = (byte *)((CONCAT44(uVar14,uVar5) ^ 0x141a613e3547abc9) + *(longlong *)(lVar3 + -0x1d0));
  *(ulonglong *)(lVar3 + -0x850) = (ulonglong)pbVar20 ^ uVar42;
  *pbVar20 = bVar38;
  uVar4 = DAT_182671dc4;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar14,uVar6) ^ 0x141a613e7146e7f8) +
            (CONCAT44(uVar26,uVar14) ^ 0x20040280141a613e) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xa40) = (ulonglong)puVar24 ^ CONCAT44(uVar8,uVar8);
  uVar43 = CONCAT44(uVar4,uVar4);
  uVar22 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar3 + -0xd88) = *puVar24 ^ uVar21 ^ uVar43;
  uVar36 = (ulonglong)DAT_182671d14;
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar25 ^ 0x200c0fd9)) ^ uVar22) =
       CONCAT44(uVar11,uVar12) ^ 0xe486ffff29c2672;
  uVar4 = DAT_182671fb4;
  uVar43 = *(ulonglong *)(lVar2 + -0xd88) ^ uVar43;
  uVar22 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(ulonglong *)(lVar2 + -0xb20) = uVar43 >> (((byte)uVar44 ^ 0x14) & 0x3f);
  *(ulonglong *)(lVar2 + -0xb08) = uVar43 >> ((bVar40 ^ 0xa9) & 0x3f) ^ uVar22;
  *(byte *)(lVar2 + -0xd01) = (byte)uVar4 ^ (byte)DAT_182671e78 ^ *(byte *)(lVar2 + -0xb08);
  pbVar20 = (byte *)((CONCAT44(uVar7,uVar12) ^ 0x7146e7fe18cae14a) + *(longlong *)(lVar2 + -0x1d0));
  *(ulonglong *)(lVar2 + -0xc10) = (ulonglong)pbVar20 ^ uVar36;
  uVar8 = DAT_182671d18;
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 + -0x680) >> 0x20 ^ (ulonglong)uVar13) >> 0x1f;
  uVar16 = DAT_182671db4;
  *pbVar20 = *(byte *)(lVar2 - (uVar25 ^ 0x200c0b90)) ^ (byte)uVar8 ^ (byte)DAT_182671e78;
  uVar4 = DAT_182671cf4;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar6,uVar28) ^ 0x7146e7fe44014c06) * 8);
  *(ulonglong *)(lVar2 + -0x9b0) = (ulonglong)puVar24 ^ CONCAT44(uVar16,uVar16);
  uVar36 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x20040ba0)) = *puVar24 ^ uVar21 ^ uVar36;
  uVar43 = (ulonglong)DAT_182671d34;
  *(longlong *)(lVar2 + -0xa08) =
       0x3457f8b77c459055 << ((byte)*(undefined8 *)(lVar2 + -0xb20) & 0x3f);
  lVar2 = DAT_182671c40;
  bVar40 = (byte)DAT_182671d9c;
  uVar22 = (*(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x200c0fb1)) ^ uVar36) >> ((byte)uVar35 & 0x3f)
           ^ CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar22;
  bVar38 = bVar40 ^ (byte)uVar22 ^ (byte)DAT_182671d10;
  bVar40 = (byte)uVar8 ^ (byte)DAT_182671d10;
  *(ulonglong *)(lVar2 + -0x470) =
       (CONCAT44(uVar41,uVar41) ^ 0x5d2c86c05d2c86f8) + *(longlong *)(lVar2 + -0x1d0) ^ uVar43;
  *(byte *)(lVar2 + -0x71) = bVar38;
  uVar16 = DAT_182671cbc;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar27 ^ 0x7146e38e)) ^ uVar43) = bVar40 ^ bVar38;
  uVar15 = DAT_182671c94;
  uVar22 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x5d2c8f78)) =
       *(longlong *)(lVar2 + -0x310) +
       ((CONCAT44(uVar7,uVar26) ^ 0x7146e7fe20040287) +
       (CONCAT44(uVar10,uVar28) ^ 0xefbf9fcf44014c01) * 0xc) * 8 ^ uVar34;
  *(ulonglong *)(lVar2 + -0xa50) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x18cae8c5)) ^ uVar34) ^ uVar21 ^ uVar36;
  *(int *)(lVar2 + -0x5d4) = -0x6c162883 << ((byte)*(undefined4 *)(lVar2 + -0x94c) & 0x1f);
  uVar5 = DAT_182671c54;
  bVar40 = (byte)uVar16 ^ (byte)DAT_182671cd4;
  uVar19 = (ulonglong)DAT_182671f70;
  uVar25 = (ulonglong)DAT_182671c54;
  uVar22 = (*(ulonglong *)(lVar2 - (uVar22 ^ 0xa5f6f0cc)) ^ uVar36) >> ((local_100 ^ 0xf7) & 0x3f) ^
           CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0x3d8) = uVar22;
  *(byte *)(lVar2 + -0xa61) = bVar40 ^ (byte)uVar22;
  lVar3 = DAT_182671c40;
  *(uint *)(lVar2 - (uVar39 ^ 0x7146e636)) =
       *(uint *)(*(ulonglong *)(lVar2 - (uVar37 ^ 0x5d2c8210)) ^ uVar29) ^ DAT_182671f14;
  pbVar20 = (byte *)(*(longlong *)(lVar2 - (uVar32 ^ 0x44014dd1)) +
                    (CONCAT44(uVar26,uVar44) ^ 0x20040280fd5bf72a));
  bVar40 = (byte)DAT_182671d18 ^ *(byte *)(lVar2 + -0xa61) ^ (byte)DAT_182671cd4;
  *(ulonglong *)(lVar2 + -0x508) = (ulonglong)pbVar20 ^ uVar19;
  uVar10 = DAT_182671c74;
  uVar36 = (ulonglong)DAT_182671c74;
  *pbVar20 = bVar40;
  uVar32 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar3 + -0x7a0) =
       *(longlong *)(lVar3 + -0x310) +
       ((CONCAT44(uVar9,uVar5) ^ 0x200c06917b2d7b5c) +
       (CONCAT44(uVar10,uVar14) ^ 0xffef7bff141a613e) * 0xc) * 8 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x4b8) =
       (CONCAT44(uVar12,uVar28) ^ 0x1aa6577ef96edff5) -
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar3 + -0x3d8));
  uVar5 = DAT_182671c78;
  uVar22 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar3 + -0xc90) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar27 ^ 0x7146e05e)) ^ uVar32) ^ uVar21 ^ uVar45;
  uVar13 = DAT_182671c84;
  uVar37 = (ulonglong)DAT_182671c84;
  bVar40 = (byte)DAT_182671ef4;
  *(ulonglong *)(lVar3 + -0xa70) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xffef776f)) ^ uVar45) >>
       (((byte)DAT_182671c90 ^ 0xdf) & 0x3f) ^ CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar32 = (ulonglong)DAT_182671d4c;
  bVar40 = *(byte *)(lVar3 - (uVar37 ^ 0x7de1c068)) ^ bVar40 ^ (byte)DAT_182671cac;
  *(byte *)(lVar3 + -0x331) = bVar40;
  bVar40 = bVar40 ^ (byte)DAT_182671d18 ^ (byte)DAT_182671cac;
  pbVar20 = (byte *)((CONCAT44(uVar26,uVar5) ^ 0x20040280d0614112) + *plVar31);
  *(ulonglong *)(lVar3 + -0x358) = (ulonglong)pbVar20 ^ uVar32;
  uVar32 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *pbVar20 = bVar40;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 - (uVar33 ^ 0x141a622e)) +
            ((CONCAT44(uVar15,uVar11) ^ 0xa5f6fa9ca5b69a8b) +
            (CONCAT44(uVar15,uVar12) ^ 0xa5f6fa9c18cae17d) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x820) = (ulonglong)puVar24 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x110) =
       CONCAT44(uVar5,uVar6) ^ 0xaad22603e1dd4c13 | CONCAT44(uVar12,uVar13) ^ 0xc7b4cdfb766dd549;
  uVar17 = DAT_182671f00;
  uVar4 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671d5c;
  uVar37 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar32 = *(ulonglong *)(DAT_182671c40 + -0x4b8);
  *(ulonglong *)(DAT_182671c40 + -0x8f0) = *puVar24 ^ uVar21 ^ uVar37;
  uVar5 = DAT_182671ef8;
  *(ulonglong *)(lVar2 + -0x628) = CONCAT44(uVar44,uVar4) ^ uVar32 ^ 0xe971d738b68b3447;
  uVar8 = DAT_182671c6c;
  lVar3 = DAT_182671c40;
  uVar37 = (*(ulonglong *)(lVar2 - (uVar25 ^ 0x7b2d73ab)) ^ uVar37) >>
           (((byte)uVar26 ^ 0x98) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar37;
  bVar38 = (byte)uVar17 ^ (byte)uVar37 ^ (byte)uVar5;
  pbVar20 = (byte *)(*(longlong *)(lVar3 + -0x1d0) + 0x3b);
  *(byte *)(lVar3 + -0xb59) = bVar38;
  uVar37 = (ulonglong)DAT_182671fa4;
  *(ulonglong *)(lVar3 + -0xc38) =
       (CONCAT44(uVar41,uVar4) ^ 0xf82a8c251e522b84) >> ((byte)uVar32 & 0x3f);
  bVar40 = (byte)DAT_182671d18;
  *(ulonglong *)(lVar3 + -0xbc8) = (ulonglong)pbVar20 ^ uVar37;
  *pbVar20 = bVar40 ^ (byte)uVar5 ^ bVar38;
  uVar6 = DAT_182671e98;
  uVar32 = (ulonglong)DAT_182671e98;
  uVar37 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *(ulonglong *)(lVar3 + -0x918) =
       (CONCAT44(uVar15,uVar8) ^ 0xa5f6fa9c31ef3f9d) * 0x60 + *(longlong *)(lVar3 + -0x310) + 0x38 ^
       uVar37;
  *(int *)(lVar3 - (uVar22 ^ 0xd0614584)) = *(int *)(lVar3 + -0x27c) << 0x1a;
  uVar5 = DAT_182671c58;
  uVar22 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar3 + -0x960) =
       CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar3 + -0x918)) ^ uVar21;
  uVar6 = DAT_182671f64;
  *(ulonglong *)(lVar3 + -0xa60) =
       (CONCAT44(uVar7,uVar12) ^ 0xf100a37a0d542181) <<
       (((byte)uVar16 ^ *(byte *)(lVar3 + -0x3d8)) & 0x3f);
  bVar40 = (byte)DAT_182671f64 ^ (byte)DAT_182671ca4;
  *(ulonglong *)(lVar3 + -0xb18) =
       CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0x960) >> 0x20 ^ uVar32;
  *(byte *)(lVar3 - (uVar22 ^ 0xe7fe7d44)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x6f8) ^ uVar19) ^ (byte)DAT_182671f14;
  uVar32 = (ulonglong)DAT_182671f78;
  *(byte *)(lVar3 + -0x7d1) = bVar40 ^ *(byte *)(lVar3 + -0xb18);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x7b2d7dfb)) =
       *(longlong *)(lVar3 - (uVar36 ^ 0xffef7a2f)) + (CONCAT44(uVar11,uVar14) ^ 0xa5b69a8c141a6102)
       ^ uVar32;
  *(byte *)(*(ulonglong *)(lVar3 + -0x6a0) ^ uVar32) =
       (byte)DAT_182671d18 ^ (byte)DAT_182671ca4 ^ *(byte *)(lVar3 + -0x7d1);
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar9,uVar8) ^ 0x200c069131ef3f9a) +
            (CONCAT44(uVar5,uVar44) ^ 0xe7fe7146fd5bf713) * 0xc) * 8);
  bVar40 = (byte)DAT_182671c90;
  *(ulonglong *)(lVar3 + -0x40) = (ulonglong)puVar24 ^ uVar30;
  uVar4 = DAT_182671db8;
  *(int *)(lVar3 + -0x784) = *(int *)(lVar3 - (uVar23 ^ 0x3547af53)) << ((bVar40 ^ 0xd5) & 0x1f);
  *(ulonglong *)(lVar3 + -0x2b0) = CONCAT44(uVar4,uVar4) ^ *puVar24 ^ uVar21;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar1 ^ uVar44;
  return;
}



############ FUN_ 180fb3e60 size=5506 ############

void FUN_180fb3e60(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  byte local_d0;
  byte local_b0;
  byte local_a8;
  ulonglong uVar19;
  
  uVar12 = DAT_182671d5c;
  uVar18 = DAT_182671cb0;
  uVar11 = DAT_182671c8c;
  uVar10 = DAT_182671c88;
  uVar9 = DAT_182671c78;
  uVar8 = DAT_182671c70;
  uVar6 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671c58;
  uVar42 = (ulonglong)DAT_182671c88;
  uVar15 = DAT_182671c58 | DAT_182671c88;
  uVar19 = (ulonglong)uVar15;
  uVar24 = (ulonglong)DAT_182671c8c;
  uVar46 = DAT_182671c74 & DAT_182671c4c;
  uVar43 = DAT_182671c8c & DAT_182671c54;
  uVar38 = (ulonglong)DAT_182671c70;
  uVar32 = DAT_182671c78 | DAT_182671c70;
  uVar16 = *(uint *)(&DAT_182613210 + (uVar19 ^ 0xe9bbffe6) + (longlong)DAT_1826722b0) ^
           DAT_182671c88;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_1826722b0) ^ DAT_182671c58;
  uVar27 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar22 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar21 = ~uVar27 ^ uVar22 ^ *(ulonglong *)(DAT_182671c40 + -0x2b0);
  uVar31 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  DAT_182671c48 = uVar46;
  DAT_182671c50 = uVar43;
  DAT_182671c5c = uVar32;
  DAT_182671c80 = uVar15;
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar21;
  uVar21 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x510)) + (uVar21 ^ uVar27) ^ uVar31;
  uVar28 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar2 + -0x228) = uVar21;
  uVar12 = DAT_182671d40;
  lVar2 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar35 = (ulonglong)uVar9;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar32 ^ 0xdceefcd5)) ^ uVar26 ^ uVar28 ^ uVar31 ^
       uVar21;
  uVar13 = DAT_182671ddc;
  uVar28 = uVar28 ^ *(ulonglong *)(lVar2 + -0xa50);
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0xdc68f818)) ^ CONCAT44(uVar12,uVar12)) -
       (CONCAT44(uVar8,uVar6) ^ 0x83d642ed3b68bbf8);
  lVar3 = DAT_182671c40;
  uVar31 = uVar28 >> (((byte)DAT_182671c54 ^ 0x6f) & 0x3f);
  uVar20 = (ulonglong)uVar43;
  *(ulonglong *)(lVar2 + -0x828) = uVar31 ^ CONCAT44(uVar13,uVar13);
  uVar4 = DAT_182671c74;
  lVar2 = DAT_182671c40;
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0x5e8);
  uVar28 = uVar28 << (((byte)uVar43 ^ 0x7b) & 0x3f);
  uVar33 = (ulonglong)uVar46;
  *(ulonglong *)(lVar3 + -0xc90) = uVar28 ^ uVar27;
  uVar12 = DAT_182671d54;
  uVar44 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar2 + -0x3d8) = (uVar31 | uVar28) ^ uVar44;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xb20) =
       (uVar26 ^ uVar21) - (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xd868f2e0)) ^ uVar44) ^
       uVar28;
  *(uint *)(lVar2 - ((ulonglong)uVar11 ^ 0x70c0fd5c)) =
       *(uint *)(lVar2 - ((ulonglong)uVar11 ^ 0x70c0f10c)) | uVar10 ^ 0xf4765537;
  uVar37 = CONCAT44(DAT_182671e40,DAT_182671e40);
  uVar29 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar31 = CONCAT44(DAT_182671f30,DAT_182671f30) ^ uVar29 ^ uVar37 ^ *(ulonglong *)(lVar2 + -0xb18)
           ^ *(ulonglong *)(lVar2 + -0x380);
  *(ulonglong *)(lVar2 + -0xa78) = uVar31;
  uVar26 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar21 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0xe9bbf766)) =
       (uVar31 ^ uVar37) >> (((byte)uVar46 ^ 0x35) & 0x3f) ^ uVar26;
  uVar13 = DAT_182671f2c;
  lVar2 = DAT_182671c40;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       ((ulonglong)uVar18 << 0x1e | (ulonglong)(uVar18 >> 2)) ^
       *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x53c03bfb)) >> 2;
  uVar12 = DAT_182671d0c;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar37 = (uVar37 ^ *puVar1) << (((byte)uVar46 ^ 0xb) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar37 ^ uVar23;
  uVar18 = DAT_182671d60;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar31 = (ulonglong)DAT_182671d60;
  *(ulonglong *)(lVar2 + -0xda8) = (*(ulonglong *)(lVar2 + -0x888) ^ uVar26 | uVar37) ^ uVar21;
  *(ulonglong *)(lVar2 + -0xf0) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0xb18)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x60bb86e8)) ^ uVar21) ^ uVar29;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0xdceef505)) =
       *(ulonglong *)(lVar2 - (uVar35 ^ 0xdc68fc90)) ^ *(ulonglong *)(lVar2 + -0xb20) ^
       CONCAT44(uVar18,uVar18) ^ uVar21 ^ uVar28;
  uVar26 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  uVar21 = *(ulonglong *)(lVar2 - (uVar20 ^ 0x70009c78));
  *(ulonglong *)(lVar2 + -0x960) =
       uVar27 ^ *(ulonglong *)(lVar2 + -0xbd8) ^ *(ulonglong *)(lVar2 + -0xc90);
  lVar3 = DAT_182671c40;
  uVar31 = uVar21 >> 0x17 ^ ((ulonglong)(uVar18 >> 0x17) | uVar31 << 9);
  uVar21 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar2 + -0x4b8) = uVar31 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x760) =
       (*(ulonglong *)(lVar2 + -0xc38) ^ CONCAT44(uVar18,uVar18)) << 0x29 ^ uVar21;
  uVar13 = DAT_182671f08;
  uVar41 = CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar25 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *(ulonglong *)(lVar3 + -0x408) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xd8eebf4d)) ^ uVar21 | uVar31) ^ uVar41;
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 + -0xb20) ^ uVar28) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xd868f530)) ^ uVar41) ^ uVar25;
  lVar2 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xdc68f388)) =
       *(ulonglong *)(lVar3 + -0xf0) ^ *(ulonglong *)(lVar3 + -0x3d8) ^ uVar21 ^ uVar29 ^ uVar44;
  uVar12 = DAT_182671ebc;
  uVar4 = DAT_182671c4c;
  *(ulonglong *)(lVar3 + -0x510) =
       (CONCAT44(uVar11,uVar15) ^ 0x33a9833f7d6a9eea) <<
       ((*(byte *)(lVar3 + -0x408) ^ (byte)uVar13) & 0x3f);
  uVar5 = DAT_182671c90;
  uVar7 = DAT_182671c60;
  uVar27 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x2b0)) >> (((byte)uVar43 ^ 0x68) & 0x3f);
  uVar26 = (ulonglong)DAT_182671c90;
  uVar28 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0x30) = uVar27 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e28;
  uVar30 = uVar7 | uVar5;
  DAT_182671c64 = uVar30;
  *(longlong *)(lVar2 + -0x920) = 0x3ac511877c008681 << (((byte)uVar5 ^ 0xba) & 0x3f);
  uVar13 = DAT_182671e24;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar21 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0xdefbf91c)) ^ uVar21) << 0x18;
  *(ulonglong *)(lVar2 + -0xa50) = uVar21 ^ uVar37;
  uVar12 = DAT_182671ca8;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar21 = uVar21 | uVar27;
  *(ulonglong *)(lVar2 + -0x828) = uVar21 ^ uVar31;
  lVar2 = DAT_182671c40;
  uVar45 = CONCAT44(uVar12,uVar12);
  local_d0 = (byte)uVar30;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x4a53fe48)) =
       (*(ulonglong *)(DAT_182671c40 + -0xf0) ^ uVar29) - uVar21 ^ uVar45;
  uVar13 = DAT_182671f4c;
  lVar3 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar27 = CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar29 = *(ulonglong *)(lVar2 + -0xa60) ^ uVar21 ^ uVar31 ^ *(ulonglong *)(lVar2 + -0x828) ^
           uVar25;
  *(ulonglong *)(lVar2 + -0x380) = uVar29;
  uVar12 = DAT_182671d28;
  uVar31 = (uVar29 ^ uVar21) >> ((local_d0 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar2 + -0x228) = uVar31 ^ uVar27;
  uVar14 = DAT_182671f8c;
  uVar18 = DAT_182671ecc;
  uVar47 = CONCAT44(uVar12,uVar12);
  uVar29 = (uVar29 ^ uVar21) << (((byte)uVar5 ^ 0xac) & 0x3f);
  uVar27 = (ulonglong)DAT_182671ecc;
  *(ulonglong *)(lVar2 + -0xb08) = uVar29 ^ CONCAT44(uVar13,uVar13);
  uVar21 = *(ulonglong *)(lVar3 + -0x5e8);
  uVar29 = uVar29 | uVar31;
  uVar31 = *(ulonglong *)(lVar3 + -0x408);
  *(ulonglong *)(lVar2 + -0xa78) = uVar29 ^ uVar47;
  uVar13 = DAT_182671f7c;
  uVar34 = CONCAT44(uVar18,uVar18);
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar31 = uVar31 ^ uVar34 ^ uVar45 ^ uVar41 ^ uVar21;
  uVar25 = (*(ulonglong *)(lVar2 + -0xa60) ^ uVar25) - uVar29 ^ uVar44;
  *(ulonglong *)(lVar3 + -0x888) = uVar31;
  uVar12 = DAT_182671e74;
  uVar27 = (uVar31 >> 0x20 ^ uVar27) >> 0x19;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar25;
  *(ulonglong *)(lVar3 + -0xb18) = uVar27 ^ CONCAT44(uVar13,uVar13);
  uVar18 = DAT_182671c74;
  uVar31 = (*(ulonglong *)(lVar3 - (uVar38 ^ 0xd8eeb0a5)) ^ uVar34) <<
           (((byte)DAT_182671c54 ^ 0x6d) & 0x3f);
  uVar34 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar3 + -0xda8) = uVar31 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671d90;
  uVar27 = uVar27 | uVar31;
  uVar31 = uVar27 ^ uVar34;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar31;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = (uVar45 ^ uVar21) - uVar27 ^ uVar29;
  lVar2 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar27 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar25 = uVar31 ^ uVar21 ^ uVar34 ^ uVar44 ^ uVar25;
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       (uVar25 ^ uVar21) >> (((byte)uVar7 ^ 0x82) & 0x3f) ^ uVar27;
  uVar31 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar2 + -0x960) = uVar25;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0xdceefd85)) =
       (uVar21 ^ uVar25) << (((byte)uVar18 ^ 10) & 0x3f) ^ uVar31;
  uVar12 = DAT_182671ca4;
  *(ulonglong *)(lVar2 + -0x760) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0xd868f4d0)) ^ uVar45) + 0x369f2368284d3911;
  uVar13 = DAT_182671f44;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xb20) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x4b8) | *(ulonglong *)(lVar2 + -0xc38) ^ uVar27) ^ uVar34;
  uVar21 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x3d8) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0x7e8)) -
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xe9bbf266)) ^ uVar31) ^ uVar21;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x70009550)) =
       CONCAT44(uVar11,uVar7) ^ 0xf5ef026db554f9db | CONCAT44(uVar10,uVar9) ^ 0x69d4772310fcad02;
  uVar27 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar2 + -0x920) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xe9bbfc36)) ^ uVar21) -
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0xdc68fa18)) ^ uVar34) ^ uVar27;
  uVar14 = DAT_182671efc;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x60bb89f0)) =
       *(longlong *)(lVar2 + -0x510) - (CONCAT44(uVar4,uVar5) ^ 0x4d8f35de079aed0);
  lVar2 = DAT_182671c40;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xc18);
  uVar25 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar21 = *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xd8eeb30d));
  *(undefined8 *)(DAT_182671c40 + -0xf0) = 0x52fdae5ac2d2b098;
  uVar13 = DAT_182671d68;
  *(ulonglong *)(lVar2 + -0xa50) = (uVar21 ^ uVar34) - (CONCAT44(uVar14,uVar14) ^ *puVar1) ^ uVar25;
  uVar18 = DAT_182671d1c;
  uVar44 = CONCAT44(uVar13,uVar13);
  uVar31 = uVar22 ^ *(ulonglong *)(lVar2 + -0xc90) ^ uVar29 ^ uVar47 ^
           *(ulonglong *)(lVar2 + -0xa78);
  uVar21 = (ulonglong)DAT_182671d1c;
  *(ulonglong *)(lVar2 + -0x30) = uVar31;
  uVar43 = DAT_182671c74 ^ 0xa5736471;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x70009868)) =
       ((ulonglong)(uVar18 >> 0x10) | uVar21 << 0x10) ^ uVar31 >> 0x10 ^ uVar44;
  *(uint *)(lVar2 + -0x94) = (DAT_182671c54 ^ 0xb3b6defa) + uVar43;
  uVar13 = DAT_182671fb4;
  uVar21 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  local_a8 = (byte)uVar10;
  *(ulonglong *)(lVar2 + -0x380) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xe9bbffde)) ^ uVar22) << ((local_a8 ^ 0xde) & 0x3f) ^
       uVar21;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xd8eeba05)) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0x70c0fb50)) ^ uVar21 |
       uVar44 ^ *(ulonglong *)(lVar2 + -0x828)) ^ uVar34;
  uVar44 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar21 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xd4b85384)) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x50403d80)) ^ uVar29) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c4c ^ 0x53c038c3)) ^
       CONCAT44(DAT_182671ea0,DAT_182671ea0)) ^ uVar44;
  uVar13 = DAT_182671ee0;
  uVar31 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(ulonglong *)(lVar2 + -0xa60) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0xb08)) - (uVar34 ^ *(ulonglong *)(lVar2 + -0x228)) ^
       uVar31;
  uVar44 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x408) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x228)) - (uVar21 ^ *(ulonglong *)(lVar2 + -0x680)) ^
       uVar44;
  lVar2 = DAT_182671c40;
  uVar45 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar29 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0x588)) =
       uVar45 ^ *(ulonglong *)(DAT_182671c40 + -0x920) ^ uVar27;
  uVar13 = DAT_182671fa8;
  puVar1 = (ulonglong *)
           ((uVar29 ^ *(ulonglong *)(lVar2 + -0x588)) +
           (CONCAT44(uVar7,uVar46) ^ 0xd4b8588c50403111) * 8);
  uVar21 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0xd68) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671dd8,DAT_182671dd8);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x888) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar21 ^ 0x53c03483)) ^ uVar41) ^
       CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671d14;
  *puVar1 = *(ulonglong *)(lVar2 - (uVar35 ^ 0xdc68fb68)) ^ uVar45 ^ uVar25;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xe9bbf906)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x588)) + (CONCAT44(uVar5,uVar32) ^ 0x4a53fba0dceef93f) * 8
       ^ uVar27;
  uVar18 = DAT_182671c74;
  uVar21 = (ulonglong)DAT_182671c74;
  uVar25 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar38 ^ 0xd8eebec5)) ^ uVar27) =
       *(ulonglong *)(lVar2 + -0xa60) ^ uVar45 ^ uVar31;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x70c0f9e8)) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x588)) +
       (CONCAT44(uVar30,uVar18) ^ 0xdefbfbacd868f13b) * 8 ^ uVar25;
  *(ulonglong *)(lVar3 + -0xb18) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0x70009268)) ^ uVar34 |
       CONCAT44(uVar10,DAT_182671c54) ^ 0x5790f26568278e8a;
  uVar13 = DAT_182671e00;
  uVar27 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar36 ^ 0x60bb8a78)) ^ uVar25) =
       *(ulonglong *)(lVar3 - (uVar42 ^ 0x89a3f9e6)) ^ uVar45 ^ uVar44;
  uVar38 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar3 + -0x650) =
       *(longlong *)(lVar3 + -0xc40) +
       ((CONCAT44(uVar18,uVar10) ^ 0xd868f13889a3fdee) +
       (CONCAT44(uVar32,uVar6) ^ 0xdceef93d60bb8b40) * 4) * 8 ^ uVar27;
  *(ulonglong *)(lVar3 + -0xda8) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar35 ^ 0xdc68f768)) ^ uVar27) ^ uVar38 ^ uVar45;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xbd8) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x50403120)) ^ uVar22) -
       (CONCAT44(uVar32,uVar7) ^ 0xed2a2747af90ec6c);
  uVar18 = DAT_182671c54;
  bVar39 = (byte)uVar13 ^ (byte)DAT_182671e70;
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x4a53f608)) ^ uVar38) >> ((local_d0 ^ 0xac) & 0x3f) ^
       CONCAT44(uVar13,uVar13);
  lVar2 = DAT_182671c40;
  uVar21 = *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xd868f858));
  *(byte *)(DAT_182671c40 + -0xd31) = bVar39 ^ *(byte *)(DAT_182671c40 + -0x960);
  uVar5 = DAT_182671c54;
  *(ulonglong *)(lVar2 + -0x5e8) =
       uVar21 ^ CONCAT44(uVar4,uVar18) ^ CONCAT44(uVar13,uVar13) ^ 0xbab9062eccefbbcf;
  bVar39 = (byte)DAT_182671e0c;
  lVar2 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671e98;
  *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0x4a53fbc0)) =
       (CONCAT44(uVar15,uVar8) ^ 0xe9bbffeed8eeb82d) * 0x20 +
       (CONCAT44(uVar30,uVar5) ^ 0xdefbfbacf81a976a) + *(longlong *)(DAT_182671c40 + -0x9a8) ^
       uVar21;
  *(byte *)(*(ulonglong *)(lVar2 + -0x60) ^ uVar21) =
       *(byte *)(lVar2 + -0xd31) ^ bVar39 ^ (byte)DAT_182671e70;
  uVar21 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar35 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar2 + -0x610) =
       *(longlong *)(lVar2 + -0xc40) +
       ((CONCAT44(uVar10,uVar8) ^ 0x89a3fdeed8eeb82d) +
       (CONCAT44(uVar30,uVar9) ^ 0xdefbfbacdc68f138) * 4) * 8 ^ uVar21;
  *(ulonglong *)(lVar2 + -0x760) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0xe9bbf9fe)) ^ uVar21) ^ uVar35 ^ uVar45;
  local_b0 = (byte)uVar6;
  bVar40 = (byte)DAT_182671f28;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0xd4b85fec)) ^ uVar35) >> ((local_b0 ^ 0x48) & 0x3f) ^
       CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar4 = DAT_182671c4c;
  bVar40 = bVar40 ^ (byte)uVar12 ^ *(byte *)(lVar2 + -0x4b8);
  uVar21 = *(ulonglong *)(lVar2 - (uVar33 ^ 0x50403b70));
  uVar35 = (ulonglong)DAT_182671c4c;
  *(byte *)(lVar2 + -0x171) = bVar40;
  *(ulonglong *)(lVar2 + -0x7e8) =
       (CONCAT44(uVar7,uVar11) ^ 0x58cd3b5e1d5fde83) >>
       ((byte)*(undefined8 *)(lVar2 + -0xb18) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd88) = (uVar21 ^ uVar31) >> ((local_a8 ^ 0xcf) & 0x3f);
  uVar21 = (ulonglong)DAT_182671df8;
  *(ulonglong *)(lVar2 + -0xa28) =
       (CONCAT44(uVar46,uVar4) ^ 0x5040311053c039d3) * 0x20 + *(longlong *)(lVar2 + -0x9a8) + 1 ^
       uVar21;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar20 ^ 0x70009a68)) ^ uVar21) = (byte)uVar12 ^ bVar39 ^ bVar40
  ;
  uVar4 = DAT_182671c7c;
  uVar19 = (ulonglong)DAT_182671c7c;
  uVar18 = DAT_182671c7c << 0x10 | DAT_182671c7c >> 0x10;
  uVar20 = (ulonglong)DAT_182671dcc;
  uVar21 = (ulonglong)DAT_182671c7c;
  DAT_182671c94 = uVar18;
  *(ulonglong *)(lVar2 + -0x3d8) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0x408bb948)) ^
       CONCAT44(uVar18,DAT_182671c7c) ^ uVar34 ^ 0xab911f6e9dc69a1a;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x408bb0f8)) =
       (CONCAT44(uVar18,uVar18) ^ 0xbb60408bbb60408b) * 0x20 + *(longlong *)(lVar2 + -0xc40) ^
       uVar23;
  uVar21 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar31 = *(ulonglong *)(*(ulonglong *)(lVar2 + -0xb98) ^ uVar23) ^ uVar21 ^ uVar45;
  *(ulonglong *)(lVar2 + -0x510) = uVar31;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (uVar31 ^ uVar21) >> (((byte)(uVar4 >> 0x10) ^ 0x9b) & 0x3f) ^ uVar37;
  *(byte *)(lVar2 - ((ulonglong)uVar18 ^ 0xbb6042e8)) =
       (byte)DAT_182671e28 ^ (byte)DAT_182671cb4 ^ *(byte *)(lVar2 + -0x2b0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x408bb3a0)) =
       *(longlong *)(lVar2 - (uVar19 ^ 0x408bb2c8)) +
       (CONCAT44(uVar4,uVar18) ^ 0x408bbb60bb60408b) * 0x20 +
       (CONCAT44(uVar18,uVar18) ^ 0xbb60408bbb604089) ^ uVar20;
  uVar4 = DAT_182671c54;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8c0) ^ uVar20) =
       *(byte *)(lVar2 + -0x263) ^ (byte)DAT_182671cb4 ^ bVar39;
  uVar12 = DAT_182671cb8;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar2 - (uVar19 ^ 0x408bb720)) +
           ((CONCAT44(uVar4,uVar30) ^ 0xf81a976adefbfbac) +
           (CONCAT44(uVar6,uVar4) ^ 0x60bb8b40f81a976a) * 4) * 8);
  *(ulonglong *)(lVar2 + -0x10) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar21 = *puVar1;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar16;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x53c035cb)) = CONCAT44(uVar12,uVar12) ^ uVar21 ^ uVar45;
  return;
}



############ FUN_ 180f66620 size=3911 ############

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

void FUN_180f66620(void)

{
  uint *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  byte bVar8;
  uint uVar9;
  byte bVar10;
  uint uVar11;
  byte *pbVar12;
  ulonglong uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  byte *pbVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  
  uVar9 = DAT_182671eac;
  uVar14 = DAT_182671d24;
  uVar27 = DAT_182671ca4;
  uVar6 = DAT_182671c70;
  lVar4 = DAT_182671c40;
  uVar17 = (DAT_182671c70 << 0x10 | DAT_182671c70 & 0xff00) << 8 | DAT_182671c70 >> 8 & 0xff00 |
           DAT_182671c70 >> 0x18;
  uVar2 = *(uint *)(&DAT_182613218 + DAT_1826721c8);
  uVar11 = *(uint *)(&DAT_182613220 + DAT_1826721c8) ^ DAT_182671c70;
  uVar30 = (ulonglong)uVar17;
  bVar3 = (byte)DAT_182671c70;
  uVar19 = (ulonglong)DAT_182671c70;
  uVar23 = (*(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c70 ^ 0x36e70e65)) ^ DAT_182671ce0) +
           (*(uint *)(DAT_182671c40 + -0xa94) ^ DAT_182671f90);
  DAT_182671c48 = uVar17;
  *(uint *)(DAT_182671c40 + -0xae4) = uVar23 ^ DAT_182671d24;
  *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xa508e102)) =
       uVar23 << ((bVar3 ^ 0xa8) & 0x1f) ^ DAT_182671e90;
  uVar23 = *(uint *)(lVar4 + -0x634) ^ DAT_182671e90;
  uVar14 = (*(uint *)(lVar4 + -0xae4) ^ uVar14) >> 0x13 ^ DAT_182671df0;
  *(uint *)(lVar4 + -0x4ac) = uVar14;
  *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x36e70fc9)) = (uVar23 | uVar14 ^ DAT_182671df0) ^ uVar9;
  uVar14 = (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar4 + -0x54) ^ DAT_182671e94)
           ^ DAT_182671e9c;
  *(uint *)(lVar4 + -0x670) = *(uint *)(lVar4 + -0x76c) ^ DAT_182671ec8 ^ uVar9;
  *(uint *)(lVar4 + -0x94) = uVar14;
  uVar14 = uVar14 ^ _DAT_182671cf0 ^ DAT_182671e9c;
  *(uint *)(lVar4 + -0x94c) = uVar14;
  *(uint *)(lVar4 + -0x784) = uVar14 ^ uVar27 ^ _DAT_182671cf0;
  *(ulonglong *)(lVar4 + -0x110) =
       CONCAT44(uVar17,uVar17) ^ CONCAT44(uVar17,uVar6) ^ 0x958a0d0cedd05934;
  uVar14 = *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x36e70ed5)) ^ DAT_182671f24 ^ DAT_182671ec8;
  *(uint *)(lVar4 + -0x9dc) = uVar14;
  uVar16 = DAT_182671f58;
  bVar8 = (byte)DAT_182671db0;
  uVar22 = DAT_182671d28;
  lVar4 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671ea8;
  uVar25 = (uVar14 ^ DAT_182671f24) + (uVar17 ^ 0x394af528) ^ DAT_182671d94;
  pbVar12 = (byte *)((CONCAT44(uVar6,uVar17) ^ 0x36e708a5a508e726) +
                    *(longlong *)(DAT_182671c40 + -0x9a8));
  *(ulonglong *)(DAT_182671c40 + -0xc20) = (ulonglong)pbVar12 ^ uVar20;
  bVar10 = *pbVar12;
  *(uint *)(lVar4 + -0x58c) = uVar25;
  bVar10 = bVar10 ^ bVar8 ^ (byte)DAT_182671e0c;
  uVar25 = uVar25 ^ DAT_182671d94;
  uVar14 = (uint)(bVar8 ^ bVar10);
  *(byte *)(lVar4 + -0x1c3) = bVar10;
  uVar23 = DAT_182671c54;
  uVar18 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar4 + -0x684) = uVar14 ^ uVar16;
  uVar15 = uVar14 << ((bVar3 ^ 0xb4) & 0x1f) ^ DAT_182671ca0;
  *(uint *)(lVar4 + -0x61c) = uVar15;
  uVar14 = DAT_182671c64;
  uVar13 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar4 - (uVar18 ^ 0x81e28590)) = uVar25 - (uVar15 ^ DAT_182671ca0) ^ DAT_182671dc8;
  lVar4 = DAT_182671c40;
  puVar1 = (uint *)(DAT_182671c40 + -0x684);
  uVar15 = DAT_182671c7c ^ 0x3b450e82;
  *(uint *)(DAT_182671c40 + -0x644) =
       (*(uint *)(DAT_182671c40 - (uVar13 ^ 0xfca34780)) ^ DAT_182671dc8) *
       (*(uint *)(DAT_182671c40 + -0x784) ^ uVar27) ^ uVar22;
  *(uint *)(lVar4 - (uVar30 ^ 0xa508e372)) = (*puVar1 ^ uVar16) * uVar15 ^ DAT_182671f38;
  uVar21 = (*(uint *)(lVar4 + -0x444) ^ DAT_182671f38) + (uVar22 ^ *(uint *)(lVar4 + -0x644));
  *(uint *)(lVar4 + -0x6c0) = uVar21 ^ DAT_182671d8c;
  uVar15 = DAT_182671d78;
  uVar7 = DAT_182671c74;
  lVar5 = DAT_182671c40;
  uVar25 = uVar21 * 0x2000 ^ DAT_182671d68;
  *(uint *)(lVar4 + -0xa94) = uVar25;
  uVar16 = DAT_182671c94;
  uVar21 = uVar21 >> (((byte)uVar7 ^ 0x93) & 0x1f);
  *(uint *)(lVar4 + -0x634) = (uVar21 | uVar25 ^ DAT_182671d68) ^ DAT_182671ea8;
  *(uint *)(lVar4 + -0xae4) = uVar21 ^ uVar15;
  uVar25 = DAT_182671ca8;
  uVar18 = (ulonglong)DAT_182671c60;
  *(uint *)(lVar5 - ((ulonglong)uVar16 ^ 0x80a200e4)) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)uVar23 ^ 0x81e2818c)) ^ DAT_182671dd4) +
       (*(uint *)(lVar5 + -0x784) ^ uVar27) ^ DAT_182671e50;
  *(uint *)(lVar5 + -0x54) = *(uint *)(lVar5 - (uVar19 ^ 0x36e70c09)) ^ DAT_182671e50 ^ uVar9;
  uVar13 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0xa508ed66)) =
       CONCAT44(uVar14,uVar7) ^ CONCAT44(uVar17,uVar6) ^ 0xdbb529779d89c9b0;
  uVar14 = *(uint *)(lVar5 + -0x634) ^ DAT_182671cb0 ^ DAT_182671ea8;
  *(uint *)(lVar5 + -0x94) = uVar14;
  uVar21 = DAT_182671fa8;
  lVar4 = DAT_182671c40;
  uVar14 = uVar14 ^ uVar25 ^ DAT_182671cb0;
  *(uint *)(DAT_182671c40 + -0x76c) =
       *(uint *)(lVar5 - (uVar13 ^ 0xdff3f93a)) ^ DAT_182671fa8 ^ uVar9;
  *(uint *)(lVar4 - (uVar18 ^ 0x10086856)) = uVar14;
  uVar27 = DAT_182671e7c;
  uVar15 = DAT_182671c88;
  uVar14 = DAT_182671c58;
  uVar13 = (ulonglong)DAT_182671d50;
  uVar31 = (ulonglong)DAT_182671c58;
  uVar26 = DAT_182671c88 | DAT_182671c58;
  uVar19 = (ulonglong)DAT_182671c88;
  DAT_182671c8c = uVar26;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0x100864ba)) =
       (CONCAT44(uVar23,uVar23) ^ 0x81e2845881e28458) * 0x20 +
       *(longlong *)(lVar4 - ((ulonglong)uVar16 ^ 0x80a20de0)) + 0x1b ^ uVar13;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c84 ^ 0x41121518)) =
       *(ulonglong *)(lVar4 + -0x4b8) >> 0x2d;
  pbVar12 = (byte *)(lVar4 - ((ulonglong)uVar15 ^ 0x81e2859b));
  *pbVar12 = *(byte *)(*(ulonglong *)(lVar4 + -0x5a0) ^ uVar13) ^ (byte)uVar22 ^ (byte)DAT_182671e0c
  ;
  uVar16 = uVar22 & 0xff ^ (uint)*(byte *)(lVar4 + -0x1c3);
  *(uint *)(lVar4 + -0x670) = uVar16 ^ uVar27;
  uVar25 = (uVar25 ^ *(uint *)(lVar4 + -0x94c)) + (uVar14 ^ 0xe103d00e) ^ DAT_182671f20;
  *(uint *)(lVar4 + -0x9dc) = uVar25;
  uVar25 = uVar25 ^ DAT_182671f20;
  uVar16 = uVar16 << 0x11 ^ DAT_182671e98;
  *(uint *)(lVar4 + -0x58c) = uVar16;
  uVar16 = uVar16 ^ DAT_182671e98;
  uVar25 = uVar25 - uVar16 ^ DAT_182671e80;
  *(uint *)(lVar4 + -0x61c) = (uVar26 ^ 0x61a1d446) + uVar16;
  *(uint *)(lVar4 - ((ulonglong)uVar14 ^ 0x7d41c3d8)) = uVar25;
  uVar28 = (ulonglong)uVar26;
  uVar22 = (*(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x81e28590)) ^ DAT_182671e80) *
           (*(uint *)(lVar4 + -0x76c) ^ uVar21) ^ DAT_182671e8c;
  *(uint *)(lVar4 + -0x684) = uVar22;
  uVar16 = DAT_182671ccc;
  uVar22 = uVar22 ^ DAT_182671e8c;
  uVar25 = (*(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0xfde3c028)) ^ uVar27) * (uVar14 ^ 0x7d41c20b) ^
           DAT_182671de8;
  *(uint *)(lVar4 + -0x644) = uVar25;
  uVar27 = DAT_182671d34;
  uVar22 = (uVar25 ^ DAT_182671de8) + uVar22;
  *(uint *)(lVar4 + -0x444) = uVar22 ^ DAT_182671d34;
  bVar10 = (byte)uVar14;
  *(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x81e28298)) = uVar22 << ((bVar10 ^ 0x1d) & 0x1f) ^ uVar16;
  uVar27 = (*(uint *)(lVar4 + -0x444) ^ uVar27) >> ((bVar10 ^ 3) & 0x1f) ^ DAT_182671f30;
  *(uint *)(lVar4 + -0xa94) = uVar27;
  uVar16 = (uVar27 ^ DAT_182671f30 | uVar16 ^ *(uint *)(lVar4 + -0x6c0)) ^ DAT_182671e20;
  *(byte *)(lVar4 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar28 ^ 0xfde3ca78)) ^ uVar20) ^ (byte)DAT_182671e0c;
  *(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x81e28ebc)) = uVar16;
  uVar16 = (*(uint *)(lVar4 - (uVar31 ^ 0x7d41c7c4)) ^ DAT_182671dd4) +
           (*(uint *)(lVar4 + -0x76c) ^ uVar21) ^ DAT_182671d2c;
  *(uint *)(lVar4 + -0x784) = uVar16;
  uVar16 = uVar16 ^ DAT_182671e14 ^ DAT_182671d2c;
  *(uint *)(lVar4 + -0x4ac) = uVar16;
  bVar3 = (byte)DAT_182671f08;
  *(uint *)(lVar4 + -0x634) = *(uint *)(lVar4 + -0xae4) ^ DAT_182671e3c ^ DAT_182671e20;
  uVar13 = *(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0xfde3c748));
  uVar20 = (ulonglong)DAT_182671e6c;
  *(uint *)(lVar4 + -0x54) = DAT_182671ea0 ^ DAT_182671e14 ^ uVar16;
  *(ulonglong *)(lVar4 + -0x228) = uVar13 >> ((byte)*(undefined8 *)(lVar4 + -0x30) & 0x3f);
  *(uint *)(lVar4 + -0x94) =
       *(uint *)(lVar4 - (uVar28 ^ 0xfde3c06c)) ^ DAT_182671f64 ^ DAT_182671e3c;
  uVar18 = CONCAT44(uVar15,uVar26);
  pbVar24 = (byte *)((uVar18 ^ 0x81e28458fde3c658) * 0x20 + (uVar18 ^ 0x81e28458fde3c65e) +
                    *(longlong *)(lVar4 + -0x9a8));
  *(uint *)(lVar4 + -0x94c) = (uVar15 ^ 0xfec8c0ba) >> ((bVar10 ^ 0x19) & 0x1f);
  *(ulonglong *)(lVar4 + -0x170) = (ulonglong)pbVar24 ^ uVar20;
  uVar25 = DAT_182671d10;
  *(byte *)(lVar4 - ((ulonglong)uVar14 ^ 0x7d41c3d3)) = *pbVar24 ^ bVar3 ^ (byte)DAT_182671e0c;
  uVar16 = *(uint *)(lVar4 + -0x94) ^ DAT_182671f64;
  uVar20 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar4 + -0x61c) = (bVar3 ^ *pbVar12) ^ uVar25;
  uVar27 = DAT_182671c80;
  *(uint *)(lVar4 - (uVar19 ^ 0x81e28d84)) = uVar16 + (DAT_182671c80 ^ 0x9110cb10) ^ uVar21;
  uVar29 = DAT_182671fb0;
  uVar9 = DAT_182671e70;
  uVar16 = DAT_182671c6c;
  lVar5 = DAT_182671c40;
  uVar13 = (ulonglong)DAT_182671c7c;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c54 ^ 0x81e281d4)) =
       (*(uint *)(lVar4 - (uVar20 ^ 0x1008470e)) ^ uVar25) << ((bVar10 ^ 1) & 0x1f) ^ DAT_182671e40;
  *(uint *)(lVar5 - ((ulonglong)uVar16 ^ 0x71c976da)) =
       (*(uint *)(lVar5 + -0x9dc) ^ uVar21) -
       (*(uint *)(lVar5 - (uVar13 ^ 0x3b450b1e)) ^ DAT_182671e40) ^ uVar29;
  uVar22 = DAT_182671cd8;
  uVar25 = (*(uint *)(lVar5 + -0x61c) ^ uVar25) * 6 ^ DAT_182671f1c;
  *(uint *)(lVar5 + -0x670) =
       (*(uint *)(lVar5 - (uVar28 ^ 0xfde3c60c)) ^ DAT_182671ea0) *
       (uVar29 ^ *(uint *)(lVar5 + -0x1c8)) ^ DAT_182671ebc;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c84 ^ 0x4112168c)) = uVar25;
  lVar4 = DAT_182671c40;
  uVar25 = *(uint *)(DAT_182671c40 + -0x684) ^ DAT_182671f1c;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       CONCAT44(uVar26,uVar14) ^ 0xb932727b9509453a | uVar18 ^ 0xda5bb1dd8da57b1c;
  uVar25 = uVar25 + (*(uint *)(lVar4 + -0x670) ^ DAT_182671ebc);
  *(uint *)(lVar4 + -0x644) = uVar25 ^ uVar22;
  *(uint *)(lVar4 + -0x444) = uVar25 << (((byte)uVar15 ^ 0x55) & 0x1f) ^ uVar9;
  uVar25 = DAT_182671c94;
  uVar14 = DAT_182671c78;
  uVar13 = (ulonglong)DAT_182671c78;
  uVar28 = (ulonglong)DAT_182671c68;
  uVar19 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar4 + -0x6c0) =
       (uVar22 ^ *(uint *)(lVar4 + -0x644)) >> (((byte)uVar16 ^ 1) & 0x1f) ^ DAT_182671cdc;
  *(uint *)(lVar4 - (uVar13 ^ 0xfff7f56a)) =
       (*(uint *)(lVar4 - (uVar31 ^ 0x7d41c654)) ^ uVar9 |
       *(uint *)(lVar4 - (uVar28 ^ 0xfff5e958)) ^ DAT_182671cdc) ^ DAT_182671d68;
  uVar18 = (ulonglong)DAT_182671f80;
  *(ulonglong *)(lVar4 + -0x7e8) =
       (CONCAT44(uVar17,uVar14) ^ 0x6b40ca80fb6d16d0) >>
       ((byte)*(undefined8 *)(lVar4 - (uVar19 ^ 0x80a20f68)) & 0x3f);
  *(uint *)(lVar4 + -0x76c) =
       (*(uint *)(lVar4 + -0x27c) ^ DAT_182671d4c) + (uVar16 ^ 0x50771e75) ^ DAT_182671d20;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x7d41c870)) =
       (uVar20 << 0x1f | (ulonglong)(DAT_182671c64 >> 1)) ^ 0x5b29b29163946eb6;
  puVar1 = (uint *)(*(longlong *)(lVar4 + -0xa80) +
                   ((CONCAT44(uVar14,uVar26) ^ 0xfff7fffefde3c658) +
                   (CONCAT44(uVar6,uVar7) ^ 0x36e708a5a235af80) * 5) * 4);
  *(ulonglong *)(lVar4 + -0xa70) =
       *(ulonglong *)(lVar4 + -0x110) >> ((byte)*(undefined8 *)(lVar4 + -0x7e8) & 0x3f);
  uVar14 = DAT_182671d08 ^ *(uint *)(lVar4 + -0xa94);
  *(ulonglong *)(lVar4 + -0xd70) = (ulonglong)puVar1 ^ uVar18;
  uVar6 = DAT_182671c50;
  uVar19 = (ulonglong)DAT_182671c50;
  *puVar1 = uVar14 ^ DAT_182671d68;
  *(uint *)(lVar4 + -0x784) = *(uint *)(lVar4 + -0x76c) ^ DAT_182671efc ^ DAT_182671d20;
  uVar14 = DAT_182671c4c;
  uVar20 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar4 + -0x3d8) =
       (CONCAT44(uVar6,uVar25) ^ 0xe92b90fd4f96e96b) <<
       ((byte)*(undefined8 *)(lVar4 + -0xb20) & 0x3f);
  uVar6 = DAT_182671c84;
  *(uint *)(lVar4 + -0xae4) = DAT_182671dc0 ^ *(uint *)(lVar4 + -0xa94) ^ DAT_182671d68;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0xd52d376)) =
       ((ulonglong)DAT_182671c54 ^ 0xba6fd294) >> 1;
  uVar25 = DAT_182671f10 ^ DAT_182671ea8;
  *(uint *)(lVar4 + -0x4ac) = *(uint *)(lVar4 + -0x784) ^ DAT_182671f10 ^ DAT_182671efc;
  *(uint *)(lVar4 + -0x634) = *(uint *)(lVar4 + -0xae4) ^ DAT_182671d00 ^ DAT_182671dc0;
  *(longlong *)(lVar4 + -0x760) = 0x3436b029e88a37bf << (((byte)uVar14 ^ 0x60) & 0x3f);
  uVar27 = DAT_182671e34 ^ DAT_182671ea8;
  *(longlong *)(lVar4 - (uVar28 ^ 0xfff5e3a0)) =
       *(longlong *)(lVar4 - (uVar30 ^ 0xa508e056)) << 0x21;
  uVar14 = *(uint *)(lVar4 + -0x634) ^ DAT_182671f74 ^ DAT_182671d00;
  *(uint *)(lVar4 + -0x94c) = uVar25 ^ *(uint *)(lVar4 + -0x4ac);
  *(uint *)(lVar4 - (uVar13 ^ 0xfff7ff6a)) = uVar14;
  *(uint *)(lVar4 - (uVar20 ^ 0xdff3f0b2)) = uVar27 ^ *(uint *)(lVar4 + -0x94c);
  uVar22 = DAT_182671ea0;
  uVar27 = DAT_182671de4;
  uVar29 = *(uint *)(lVar4 + -0x94) ^ DAT_182671f74 ^ DAT_182671ca0;
  uVar21 = DAT_182671ea0 & 0xff;
  uVar13 = (ulonglong)DAT_182671c64;
  uVar18 = CONCAT44(uVar26,DAT_182671c90);
  *(uint *)(lVar4 + -0x58c) = uVar29;
  uVar25 = DAT_182671e5c;
  uVar29 = uVar29 ^ DAT_182671ca0;
  *(ulonglong *)(lVar4 + -0x960) =
       (uVar18 ^ 0xc80f61212bd189fc) + *(longlong *)(lVar4 - (uVar13 ^ 0xfca34c38));
  uVar14 = DAT_182671c64;
  pbVar12 = (byte *)((CONCAT44(uVar15,uVar16) ^ 0x81e2845871c97703) + *(longlong *)(lVar4 + -0x9a8))
  ;
  *(ulonglong *)(lVar4 + -0xbc0) = (ulonglong)pbVar12 ^ (ulonglong)uVar9;
  *(byte *)(lVar4 + -0x1c3) = *pbVar12 ^ (byte)uVar22 ^ (byte)DAT_182671e0c;
  *(ulonglong *)(lVar4 + -0xda8) =
       *(longlong *)(lVar4 + -0x7e8) - (CONCAT44(uVar23,uVar26) ^ 0x5e9bed5516b56b79);
  uVar21 = uVar21 ^ *(byte *)(lVar4 + -0x1c3);
  uVar23 = DAT_182671c84 ^ 0xdd500216;
  *(uint *)(lVar4 + -0x54) = uVar21 ^ uVar25;
  uVar16 = uVar29 + uVar23 ^ DAT_182671cec;
  uVar23 = uVar21 << (((byte)uVar14 ^ 0x59) & 0x1f) ^ DAT_182671d98;
  uVar14 = *(uint *)(lVar4 + -0x9dc) ^ DAT_182671e34;
  *(uint *)(lVar4 + -0x1c8) = uVar16;
  uVar16 = uVar16 ^ DAT_182671cec;
  *(uint *)(lVar4 + -0x61c) = uVar23;
  uVar23 = uVar23 ^ DAT_182671d98;
  *(ulonglong *)(lVar4 + -0xf0) =
       (CONCAT44(uVar26,uVar6) ^ 0xc132f5251511a3f9) - *(longlong *)(lVar4 + -0x7e8);
  uVar16 = uVar16 - uVar23;
  *(uint *)(lVar4 + -0x670) = uVar16 ^ uVar27;
  *(uint *)(lVar4 - (uVar19 ^ 0x2b58e88)) = uVar16 * uVar14 ^ DAT_182671e94;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0xdff3f266)) =
       *(ulonglong *)(lVar4 + -0x2b0) | 0x6f56b1004fb96e9b;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar11 * 4) = uVar2 ^ uVar17;
  return;
}



############ FUN_ 180f67570 size=4491 ############

void FUN_180f67570(void)

{
  longlong *plVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte *pbVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint *puVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  
  uVar34 = DAT_182671cbc;
  uVar20 = DAT_182671c94;
  uVar16 = DAT_182671c88;
  uVar8 = DAT_182671c60;
  uVar15 = DAT_182671c5c;
  uVar7 = DAT_182671c54;
  uVar6 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar32 = DAT_182671c58 * DAT_182671c8c;
  uVar39 = (ulonglong)DAT_182671c54;
  uVar28 = (ulonglong)DAT_182671c60;
  uVar31 = DAT_182671c54 ^ DAT_182671c78;
  uVar29 = (ulonglong)DAT_182671c84;
  uVar12 = DAT_182671c60 & 7;
  uVar21 = (ulonglong)DAT_182671c88;
  uVar38 = (ulonglong)DAT_182671c50;
  if (uVar12 < 4) {
    if (uVar12 < 2) {
      DAT_182671c64 = DAT_182671c94;
      if (uVar12 == 0) {
        DAT_182671c64 = DAT_182671c60;
      }
    }
    else {
      DAT_182671c64 = DAT_182671c70;
      if (uVar12 < 3) {
        DAT_182671c64 = DAT_182671c84;
      }
    }
  }
  else if (uVar12 < 6) {
    DAT_182671c64 = DAT_182671c5c;
    if (uVar12 < 5) {
      DAT_182671c64 = DAT_182671c50;
    }
  }
  else {
    DAT_182671c64 = DAT_182671c88;
    if (uVar12 < 7) {
      DAT_182671c64 = DAT_182671c80;
    }
  }
  uVar13 = *(uint *)(&DAT_182613210 + (uVar29 ^ 0x4847a638) + (longlong)DAT_1826721cc) ^
           DAT_182671c80;
  uVar14 = *(uint *)(&DAT_182613220 + DAT_1826721cc) ^ DAT_182671c70;
  uVar17 = (ulonglong)DAT_182671f54;
  uVar18 = (ulonglong)DAT_182671c64;
  DAT_182671c4c = uVar32;
  DAT_182671c7c = uVar31;
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xdff3f54e)) =
       (CONCAT44(DAT_182671c6c,DAT_182671c5c) ^ 0xef98fff510084112) * 0x20 +
       (CONCAT44(DAT_182671c60,DAT_182671c94) ^ 0x3c508b080a2044b) +
       *(longlong *)(DAT_182671c40 + -0x9a8) ^ uVar17;
  uVar24 = DAT_182671cc0 & 0xff;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(uVar17 ^ *(ulonglong *)(lVar3 + -0xc20)) ^ (byte)DAT_182671cc0 ^
       (byte)DAT_182671e0c;
  uVar12 = DAT_182671c58;
  uVar17 = (ulonglong)DAT_182671c58;
  uVar26 = CONCAT44(uVar16,DAT_182671c58);
  *(uint *)(lVar3 + -0x670) = *(byte *)(lVar3 - (uVar18 ^ 0x3c50973)) ^ uVar24 ^ uVar34;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x81e281b0)) =
       (uVar26 ^ 0x14d2467053c0a739) - *(longlong *)(lVar3 + -0xa70);
  uVar9 = DAT_182671c8c;
  uVar18 = (ulonglong)DAT_182671c8c;
  uVar26 = CONCAT44(DAT_182671c8c,uVar7);
  *(uint *)(lVar3 + -0x784) =
       (*(uint *)(lVar3 + -0x1c8) ^ DAT_182671d90) + (uVar32 ^ 0x23166eca) ^ DAT_182671d8c;
  uVar11 = DAT_182671f24;
  uVar37 = DAT_182671e5c;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar31 ^ 0xc6a6c562)) =
       (uVar26 ^ 0xf8295ceeff7f269f) >> ((byte)*(undefined8 *)(lVar3 + -0xd88) & 0x3f);
  uVar10 = DAT_182671dd8;
  uVar32 = DAT_182671d0c;
  uVar24 = DAT_182671c78;
  uVar26 = (ulonglong)DAT_182671c78;
  *(uint *)(lVar3 + -0x76c) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0x47444ae2)) ^ uVar34) << 0x11 ^ uVar37;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x80a20e28)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0xdff3fce6)) ^ CONCAT44(uVar10,uVar10)) ^
       CONCAT44(uVar11,uVar11);
  uVar33 = DAT_182671f08;
  uVar20 = *(uint *)(lVar4 + -0x670);
  *(uint *)(lVar3 + -0x684) =
       (*(uint *)(lVar3 + -0x784) ^ DAT_182671d8c) - (*(uint *)(lVar3 + -0x76c) ^ uVar37) ^
       DAT_182671ea8;
  uVar36 = DAT_182671d2c;
  uVar25 = (uVar20 ^ uVar34) * (DAT_182671c4c ^ 0xbf547cd7);
  *(uint *)(lVar4 + -0x644) =
       (*(uint *)(lVar3 - (uVar21 ^ 0x81e282dc)) ^ DAT_182671ea8) *
       (*(uint *)(lVar3 + -0x61c) ^ DAT_182671d94) ^ DAT_182671d2c;
  *(uint *)(lVar4 + -0x634) = uVar25 ^ uVar32;
  uVar20 = DAT_182671c80;
  uVar34 = DAT_182671c6c;
  *(uint *)(lVar4 + -0x94) = (*(uint *)(lVar4 - (uVar21 ^ 0x81e2821c)) ^ uVar36) + uVar25 ^ uVar33;
  *(ulonglong *)(lVar4 + -0xb08) = (uVar28 ^ 0xf0000000) >> 0x1b;
  *(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x1000dcc)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar34 ^ 0xef98ff61)) ^ uVar33) <<
       (((byte)DAT_182671c78 ^ 0x9f) & 0x1f) ^ DAT_182671cec;
  *(ulonglong *)(lVar4 + -0xa08) =
       CONCAT44(uVar31,uVar15) ^ 0xd7fd70e43d4a5379 | CONCAT44(uVar16,uVar20) ^ 0x685d91ae23e6be6e;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c64 ^ 0x3c50e70)) =
       (*(uint *)(lVar4 + -0x94) ^ uVar33) >> (((byte)DAT_182671c70 ^ 0xb6) & 0x1f) ^ DAT_182671d38;
  uVar20 = *(uint *)(lVar4 + -0x6c0) ^ DAT_182671d38;
  uVar31 = *(uint *)(lVar4 + -0x61c) ^ DAT_182671d94;
  uVar15 = *(uint *)(lVar4 + -0x9dc) ^ DAT_182671cec;
  *(ulonglong *)(lVar4 + -0xf0) =
       CONCAT44(uVar9,DAT_182671c94) ^ *(ulonglong *)(lVar4 + -0x5e8) ^ 0xa30b67c4148c4c5b;
  uVar16 = *(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar4 + -0x444) = (uVar20 | uVar15) ^ DAT_182671e20;
  uVar20 = DAT_182671c4c;
  uVar21 = (ulonglong)DAT_182671c4c;
  *(uint *)(lVar4 - (uVar21 ^ 0xbf547c80)) = uVar31 + uVar16 ^ DAT_182671ea4;
  uVar33 = DAT_182671f3c;
  uVar25 = *(uint *)(lVar4 + -0x444) ^ DAT_182671f80 ^ DAT_182671e20;
  uVar22 = (ulonglong)DAT_182671f50;
  *(uint *)(lVar4 + -0xae4) =
       (*(uint *)(lVar4 - (uVar29 ^ 0x4847a004)) ^ uVar32) * (DAT_182671c84 ^ 0xa6cc1b72);
  uVar31 = DAT_182671cb8;
  uVar16 = DAT_182671c48;
  DAT_182671c74 = DAT_182671c48 << 0x10 | DAT_182671c48 >> 0x10;
  uVar27 = (ulonglong)DAT_182671c74;
  uVar15 = uVar33 ^ DAT_182671cf8;
  uVar34 = *(uint *)(lVar4 - ((ulonglong)uVar34 ^ 0xef98ffa1)) ^ DAT_182671cf8 ^ DAT_182671ea4;
  *(uint *)(lVar4 + -0x94c) = uVar25;
  uVar32 = uVar25 ^ DAT_182671f4c ^ DAT_182671f80;
  *(uint *)(lVar4 + -0x1c8) = uVar15 ^ uVar34;
  *(uint *)(lVar4 + -0x58c) = uVar34;
  *(uint *)(lVar4 + -0x784) = uVar32;
  bVar2 = (byte)DAT_182671e54;
  lVar3 = DAT_182671c40;
  plVar1 = (longlong *)(DAT_182671c40 + -0xf0);
  *(ulonglong *)(DAT_182671c40 + -0x170) =
       (CONCAT44(uVar16,DAT_182671c74) ^ 0x71539b0e9b0e7153) * 0x20 +
       (CONCAT44(DAT_182671c74,DAT_182671c74) ^ 0x9b0e71539b0e715d) +
       *(longlong *)(DAT_182671c40 + -0x9a8) ^ uVar22;
  *(longlong *)(lVar3 - ((ulonglong)uVar16 ^ 0x715390d6)) = *plVar1 + -0x15adc6014426723c;
  *(byte *)(lVar3 - (uVar39 ^ 0x81e2859b)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0xdff3f81e)) ^ uVar22) ^ bVar2 ^
       (byte)DAT_182671e0c;
  uVar34 = (uint)(bVar2 ^ *(byte *)(lVar3 + -0x1c3));
  *(uint *)(lVar3 + -0x76c) = uVar34 ^ uVar31;
  uVar25 = DAT_182671fb4;
  uVar32 = DAT_182671de8;
  lVar4 = DAT_182671c40;
  uVar35 = (*(uint *)(lVar3 + -0x784) ^ DAT_182671f4c) + (DAT_182671c8c ^ 0x47db0f0c) ^
           DAT_182671eb4;
  uVar15 = *(uint *)(DAT_182671c40 + -0x1c8);
  uVar34 = uVar34 << (((byte)DAT_182671c58 ^ 0x8b) & 0x1f);
  *(uint *)(DAT_182671c40 + -0x684) = uVar35;
  uVar35 = uVar35 ^ DAT_182671eb4;
  *(uint *)(lVar4 + -0x670) = uVar34 ^ uVar37;
  uVar37 = DAT_182671f78;
  uVar35 = uVar35 - uVar34 ^ DAT_182671e04;
  *(uint *)(lVar4 + -0x644) = uVar35;
  uVar35 = uVar35 ^ DAT_182671e04;
  *(longlong *)(lVar4 + -0xa78) = *(longlong *)(lVar4 + -0x2b0) - *(longlong *)(lVar4 + -0xa50);
  uVar34 = DAT_182671c5c;
  uVar35 = uVar35 * (uVar15 ^ uVar33) ^ DAT_182671e00;
  uVar22 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar4 + -0x94) = uVar35;
  uVar35 = uVar35 ^ DAT_182671e00;
  bVar2 = (byte)DAT_182671c54;
  uVar15 = (*(uint *)(lVar4 - (uVar22 ^ 0x1008467e)) ^ uVar31) * (DAT_182671c4c ^ 0xbf547cda);
  *(uint *)(lVar4 + -0x9dc) = uVar15 ^ uVar37;
  uVar35 = uVar35 + uVar15;
  *(uint *)(lVar4 + -0x6c0) = uVar35 ^ uVar32;
  uVar15 = DAT_182671c50 ^ 0x32389b2d;
  *(uint *)(lVar4 - (uVar38 ^ 0xdff3ff72)) = uVar35 << ((bVar2 ^ 0x55) & 0x1f) ^ uVar25;
  bVar2 = (byte)DAT_182671c60;
  *(uint *)(lVar4 + -0x634) = (*(uint *)(lVar4 + -0x9dc) ^ uVar37) + uVar15;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c80 ^ 0x1000ef4)) =
       (*(uint *)(lVar4 + -0x6c0) ^ uVar32) >> ((bVar2 ^ 0xa3) & 0x1f) ^ DAT_182671f5c;
  uVar32 = DAT_182671c70;
  uVar22 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar4 + -0x54) =
       (*(uint *)(lVar4 - ((ulonglong)uVar16 ^ 0x71539d12)) ^ uVar25 |
       *(uint *)(lVar4 - (uVar28 ^ 0x3c50254)) ^ DAT_182671f5c) ^ DAT_182671e24;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0xef98fbb1)) =
       (*(uint *)(lVar4 - (uVar17 ^ 0x1a988152)) ^ uVar33) +
       (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671e18;
  uVar15 = *(uint *)(lVar4 + -0x54) ^ DAT_182671d24 ^ DAT_182671e24;
  uVar28 = (ulonglong)DAT_182671e6c;
  *(uint *)(lVar4 + -0x58c) = *(uint *)(lVar4 + -0x444) ^ DAT_182671da8 ^ DAT_182671e18;
  *(uint *)(lVar4 + -0x94c) = uVar15;
  uVar15 = uVar15 ^ DAT_182671dec ^ DAT_182671d24;
  *(uint *)(lVar4 + -0x784) = *(uint *)(lVar4 - (uVar27 ^ 0x9b0e74df)) ^ DAT_182671da8 ^ uVar36;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c94 ^ 0x80a202cc)) = uVar15;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0x36e70365)) =
       (CONCAT44(uVar32,uVar24) ^ 0x36e708a547444c8b) + *(longlong *)(lVar4 + -0x9a8) ^ uVar28;
  bVar2 = (byte)DAT_182671f70;
  lVar3 = DAT_182671c40;
  bVar19 = *(byte *)(*(ulonglong *)(lVar4 + -0xbc0) ^ uVar28) ^ (byte)DAT_182671f70 ^
           (byte)DAT_182671e0c;
  *(byte *)(DAT_182671c40 + -0x1c3) = bVar19;
  uVar37 = (uint)(bVar19 ^ bVar2);
  *(uint *)(lVar3 + -0x670) = uVar37 ^ uVar25;
  uVar31 = DAT_182671c5c;
  uVar15 = *(uint *)(lVar3 - ((ulonglong)uVar34 ^ 0x10084762));
  uVar36 = *(uint *)(lVar3 + -0x784) ^ uVar36;
  uVar34 = uVar37 << 0x11 ^ DAT_182671d3c;
  uVar24 = (*(uint *)(lVar3 + -0x684) ^ DAT_182671dec) + (DAT_182671c5c ^ 0x8c4a530c) ^
           DAT_182671d98;
  uVar33 = ~DAT_182671c5c;
  *(uint *)(lVar3 + -0x94) = uVar34;
  lVar4 = DAT_182671c40;
  uVar34 = uVar34 ^ DAT_182671d3c;
  *(uint *)(lVar3 + -0x644) = (uVar15 ^ uVar25) + 0x1a127c9d;
  *(uint *)(lVar3 + -0x76c) = uVar24;
  lVar5 = DAT_182671c40;
  uVar34 = (uVar24 ^ DAT_182671d98) - uVar34 ^ DAT_182671ee8;
  *(uint *)(lVar3 + -0x9dc) = uVar34;
  uVar15 = DAT_182671df0;
  uVar24 = (uVar34 ^ DAT_182671ee8) * uVar36;
  DAT_182671c68 = uVar33;
  *(uint *)(lVar5 + -0x634) = uVar24 ^ DAT_182671df0;
  *(ulonglong *)(lVar5 + -0x760) =
       CONCAT44(uVar33,uVar31) ^ 0xa360bae12ca395ce | CONCAT44(uVar33,uVar33) ^ 0x7604bf7223565229;
  *(uint *)(lVar4 + -0x6c0) = uVar37 * 0x19 ^ uVar15;
  uVar34 = DAT_182671eb0;
  uVar24 = uVar37 * 0x19 + uVar24;
  *(uint *)(lVar4 + -0x61c) = uVar24 ^ DAT_182671eb0;
  uVar15 = DAT_182671c88;
  *(uint *)(lVar4 + -0xae4) = uVar24 << ((byte)uVar33 & 0x1f) ^ DAT_182671c9c;
  uVar28 = CONCAT44(DAT_182671c5c,uVar33);
  *(uint *)(lVar4 + -0x1c8) =
       (uVar34 ^ *(uint *)(lVar4 + -0x61c)) >> (((byte)DAT_182671c84 ^ 0x23) & 0x1f) ^ DAT_182671f64
  ;
  *(ulonglong *)(lVar4 + -0x680) =
       (uVar28 ^ 0x290459cf01c22a50) + (CONCAT44(uVar16,uVar15) ^ 0xbb87850ffee2d09f);
  uVar34 = DAT_182671c7c;
  lVar3 = DAT_182671c40;
  uVar31 = (*(uint *)(lVar4 - (uVar39 ^ 0x81e28590)) ^ DAT_182671f64 |
           *(uint *)(lVar4 - (uVar18 ^ 0xdb9917f6)) ^ DAT_182671c9c) ^ DAT_182671cac;
  uVar28 = (ulonglong)DAT_182671c7c;
  *(int *)(lVar4 + -0x54) = -0x557d7adb << (((byte)DAT_182671c7c ^ 0xd9) & 0x1f);
  uVar37 = DAT_182671e84;
  uVar17 = (ulonglong)DAT_182671c94;
  uVar15 = (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) + uVar36 ^ DAT_182671cc0;
  *(uint *)(lVar4 + -0x444) = uVar31;
  *(uint *)(lVar4 - (uVar28 ^ 0xc6a6cd46)) = uVar15;
  *(uint *)(lVar4 - (uVar17 ^ 0x80a20d04)) =
       DAT_182671cb8 ^ DAT_182671cc0 ^ *(uint *)(lVar4 + -0x58c);
  uVar10 = DAT_182671f7c;
  *(uint *)(lVar4 + -0x644) = DAT_182671d30 ^ DAT_182671cac ^ *(uint *)(lVar4 + -0x444);
  uVar15 = DAT_182671c64;
  uVar17 = (ulonglong)DAT_182671c5c;
  uVar28 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar4 + -0x684) =
       *(uint *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0x1008485e)) ^ uVar37 ^ DAT_182671cb8;
  uVar24 = DAT_182671e14;
  puVar30 = (uint *)(lVar4 - (uVar28 ^ 0x3c50fdc));
  *puVar30 = *(uint *)(lVar3 - (uVar17 ^ 0x10084756)) ^ DAT_182671e14 ^ DAT_182671d30;
  uVar31 = DAT_182671d4c;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x4744408a)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0xc6a6c0e2)) ^ CONCAT44(uVar10,uVar10) |
       *(ulonglong *)(lVar3 + -0x380);
  bVar2 = (byte)DAT_182671d64;
  pbVar23 = (byte *)((CONCAT44(uVar15,uVar32) ^ 0x3c508b036e708a5) * 0x20 +
                     (CONCAT44(uVar16,DAT_182671c94) ^ 0x71539b0e80a2044c) +
                    *(longlong *)(lVar3 + -0x9a8));
  *(ulonglong *)(lVar3 + -0x5a0) = (ulonglong)pbVar23 ^ (ulonglong)DAT_182671e70;
  bVar19 = *pbVar23 ^ bVar2 ^ (byte)DAT_182671e0c;
  uVar34 = (uint)(bVar2 ^ bVar19);
  uVar15 = DAT_182671c88 ^ 0x1da09646;
  *(byte *)(lVar3 + -0x1c3) = bVar19;
  *(uint *)(lVar3 + -0x9dc) = (uVar24 ^ *(uint *)(lVar3 + -0x76c)) + uVar15 ^ DAT_182671dc8;
  uVar15 = DAT_182671edc;
  *(uint *)(lVar3 + -0x94) = uVar34 ^ uVar31;
  *(uint *)(lVar3 + -0x670) = uVar34 << (((byte)(uVar16 >> 0x10) ^ 0x42) & 0x1f) ^ uVar15;
  *(longlong *)(lVar3 - (uVar39 ^ 0x81e28148)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar16 ^ 0x71539fb6)) - *(longlong *)(lVar3 + -0xc38);
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 + -0x9dc) ^ DAT_182671dc8) - (uVar15 ^ *(uint *)(lVar3 + -0x670)) ^
       DAT_182671f94;
  uVar15 = (*(uint *)(lVar3 - (uVar21 ^ 0xbf547ae0)) ^ DAT_182671f94) *
           (*(uint *)(lVar3 + -0x684) ^ uVar37) ^ DAT_182671ed8;
  *(uint *)(lVar3 + -0x6c0) = uVar15;
  uVar16 = DAT_182671c80;
  uVar34 = (uVar31 ^ *(uint *)(lVar3 + -0x94)) * (uVar33 ^ 0xeff7bee9);
  uVar28 = (ulonglong)DAT_182671c80;
  uVar32 = (uVar15 ^ DAT_182671ed8) + uVar34;
  *(uint *)(lVar3 + -0x61c) = uVar34 ^ DAT_182671d60;
  uVar34 = DAT_182671ed4;
  *(uint *)(lVar3 + -0xae4) = uVar32 ^ DAT_182671ed4;
  uVar15 = DAT_182671c5c;
  *(longlong *)(lVar3 + -0x3d8) =
       *(longlong *)(lVar3 + -0x8f0) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar38 ^ 0xdff3f1e6)) & 0x3f);
  uVar31 = DAT_182671f5c;
  uVar34 = (*(uint *)(lVar3 - (uVar38 ^ 0xdff3f38a)) ^ uVar34) << (((byte)uVar15 ^ 0x1f) & 0x1f) ^
           DAT_182671cc4;
  *(uint *)(lVar3 + -0x1c8) = uVar34;
  uVar34 = uVar34 ^ DAT_182671cc4;
  *(uint *)(lVar3 + -0x54) = uVar32 >> 0x13 ^ DAT_182671f40;
  uVar15 = *(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar3 + -0x784) =
       (*(uint *)(lVar3 - (uVar28 ^ 0x1000444)) ^ DAT_182671f40 | uVar34) ^ DAT_182671ee4;
  uVar28 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar3 - (uVar29 ^ 0x4847a3bc)) =
       (*(uint *)(lVar3 + -0x684) ^ uVar37) + uVar15 ^ DAT_182671e4c;
  *(uint *)(lVar3 - (uVar28 ^ 0x3c50cf4)) =
       DAT_182671cb4 ^ DAT_182671e4c ^ *(uint *)(lVar3 + -0x58c);
  lVar3 = DAT_182671c40;
  uVar15 = *(uint *)(DAT_182671c40 + -0x784) ^ DAT_182671ee4;
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (CONCAT44(uVar33,uVar12) ^ 0x462961e653799e33) >> (((byte)uVar9 ^ 0x23) & 0x3f);
  *(uint *)(lVar3 - (uVar22 ^ 0x36e701e9)) = uVar15 ^ uVar31;
  uVar34 = DAT_182671ef4;
  uVar28 = (ulonglong)DAT_182671e10;
  *(uint *)(lVar3 + -0x644) = DAT_182671e30 ^ DAT_182671cb4 ^ *(uint *)(lVar3 + -0x444);
  *(uint *)(lVar3 + -0x76c) =
       *(uint *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0xef98f6b9)) ^ uVar34 ^ uVar31;
  bVar2 = (byte)DAT_182671f1c;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x9b0e7d73)) =
       (CONCAT44(uVar20,uVar8) ^ 0xbf547cd403c508bf) + *(longlong *)(lVar3 + -0x9a8) ^ uVar28;
  uVar15 = DAT_182671c7c;
  bVar19 = *(byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xc20)) ^ (byte)DAT_182671e0c;
  *(byte *)(lVar3 + -0x1c3) = bVar19 ^ bVar2;
  uVar29 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar3 + -0x9dc) = bVar19 ^ DAT_182671e1c;
  uVar28 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar3 + -0x670) = (uVar34 ^ *puVar30) + (uVar15 ^ 0x5ae4dad4) ^ DAT_182671d74;
  *(uint *)(lVar3 - (uVar29 ^ 0x80a2027c)) =
       (*(uint *)(lVar3 - (uVar28 ^ 0x3c5016c)) ^ DAT_182671e1c) << 0x11 ^ uVar31;
  *(ulonglong *)(lVar3 + -0xb20) =
       (CONCAT44(uVar8,uVar7) ^ 0x5e07b2fa81f4d35) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar21 ^ 0xbf5478dc)) & 0x3f);
  uVar7 = DAT_182671cdc;
  *(uint *)(lVar3 - ((ulonglong)uVar33 ^ 0xeff7be79)) =
       (*(uint *)(lVar3 - (uVar18 ^ 0xdb991b62)) ^ DAT_182671d74) -
       (*(uint *)(lVar3 - ((ulonglong)uVar16 ^ 0x1000224)) ^ uVar31) ^ DAT_182671cdc;
  uVar15 = *(uint *)(lVar3 + -0x644) ^ DAT_182671e30;
  *(ulonglong *)(lVar3 + -0x960) =
       (CONCAT44(uVar16,uVar6) ^ 0x8660aa313ad49261) >> (((byte)uVar20 ^ 0xe6) & 0x3f);
  *(uint *)(lVar3 + -0x6c0) = (uVar7 ^ *(uint *)(lVar3 + -0x94)) * uVar15 ^ DAT_182671f04;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar13;
  return;
}



############ FUN_ 180faa000 size=5571 ############

void FUN_180faa000(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  ulonglong *puVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong *puVar35;
  ulonglong *puVar36;
  byte bVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  ulonglong uVar64;
  ulonglong uVar65;
  ulonglong *puVar66;
  uint uVar67;
  ulonglong *puVar68;
  byte bVar69;
  ulonglong uVar70;
  ulonglong uVar71;
  ulonglong uVar72;
  ulonglong *puVar73;
  byte local_178;
  byte local_168;
  byte local_110;
  byte local_100;
  
  uVar14 = DAT_182671c94;
  uVar21 = DAT_182671c7c;
  uVar12 = DAT_182671c78;
  uVar11 = DAT_182671c74;
  uVar10 = DAT_182671c6c;
  uVar9 = DAT_182671c60;
  uVar8 = DAT_182671c5c;
  uVar7 = DAT_182671c58;
  uVar6 = DAT_182671c4c;
  lVar4 = DAT_182671c40;
  uVar70 = (ulonglong)DAT_182671c6c;
  uVar72 = (ulonglong)DAT_182671c78;
  uVar60 = (ulonglong)DAT_182671c60;
  DAT_182671c90 = DAT_182671c6c | DAT_182671c78;
  uVar42 = (ulonglong)DAT_182671c74;
  uVar47 = (ulonglong)DAT_182671c7c;
  uVar22 = (ulonglong)DAT_182671c5c;
  uVar57 = (ulonglong)DAT_182671c58;
  uVar67 = DAT_182671c4c ^ DAT_182671c5c;
  uVar54 = (ulonglong)DAT_182671c94;
  uVar34 = DAT_182671c60 * DAT_182671c74;
  uVar26 = DAT_182671c7c << 0x10 | DAT_182671c7c >> 0x10;
  uVar44 = DAT_182671c58 + DAT_182671c94;
  uVar3 = *(uint *)(&DAT_182613218 + DAT_182672290);
  uVar18 = *(uint *)(&DAT_182613220 + DAT_182672290) ^ DAT_182671c4c;
  uVar38 = CONCAT44(DAT_182671e90,DAT_182671e90);
  puVar19 = (ulonglong *)(DAT_182671c40 + -0x408);
  uVar33 = (ulonglong)uVar26;
  bVar20 = (byte)(DAT_182671c7c >> 0x10);
  uVar39 = CONCAT44(DAT_182671f38,DAT_182671f38);
  DAT_182671c48 = uVar26;
  DAT_182671c54 = uVar67;
  DAT_182671c68 = uVar44;
  DAT_182671c84 = uVar34;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c7c ^ 0x156ddecc)) =
       (*puVar19 ^ uVar38) >> ((bVar20 ^ 0x54) & 0x3f) ^ uVar39;
  uVar15 = DAT_182671dd4;
  uVar23 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar24 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar28 = (*puVar19 ^ uVar38) << 7 | *(ulonglong *)(lVar4 + -0xc90) ^ uVar39;
  uVar29 = uVar28 ^ uVar24;
  *(ulonglong *)(lVar4 + -0xa50) = uVar29;
  uVar16 = DAT_182671d7c;
  uVar40 = CONCAT44(uVar15,uVar15);
  puVar1 = (ulonglong *)(lVar4 + -0xb18);
  uVar48 = CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar49 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = (*puVar1 ^ uVar40) - uVar28 ^ uVar48;
  uVar41 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       *(ulonglong *)(DAT_182671c40 + -0x3d8) ^ uVar29 ^ uVar41 ^ uVar49 ^ uVar24;
  uVar15 = DAT_182671dd8;
  lVar4 = DAT_182671c40;
  uVar30 = (ulonglong)uVar34;
  puVar68 = (ulonglong *)(DAT_182671c40 - (uVar57 ^ 0xe9cef3e9));
  *puVar68 = (CONCAT44(uVar14,uVar6) ^ 0xb1227203e984b725) +
             (*(ulonglong *)(DAT_182671c40 + -0x3d8) ^ uVar41);
  uVar58 = CONCAT44(uVar15,uVar15);
  uVar61 = (ulonglong)uVar44;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar44 ^ 0xd7e060b)) =
       (uVar49 ^ *(ulonglong *)(lVar4 + -0xbd8)) >> (((byte)uVar34 ^ 0xda) & 0x3f) ^ uVar58;
  bVar69 = (byte)uVar10;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x23af1872)) = *puVar19 ^ uVar38 | 0xd2decf8435ad1bb1;
  uVar28 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *puVar19 = (uVar49 ^ *(ulonglong *)(lVar4 + -0xbd8)) << ((bVar69 ^ 0x16) & 0x3f) ^ uVar28;
  uVar13 = DAT_182671c90;
  uVar53 = (ulonglong)DAT_182671c90;
  *(int *)(lVar4 + -0xae4) = *(int *)(lVar4 + -0x644) - *(int *)(lVar4 + -0x76c);
  uVar45 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar29 = *(ulonglong *)(lVar4 - (uVar53 ^ 0xf37d3de5)) ^ uVar58 |
           *(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xb27d3599)) ^ uVar28;
  uVar62 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *puVar1 = uVar29 ^ uVar45;
  uVar28 = (*(ulonglong *)(lVar4 - (uVar47 ^ 0x156dd184)) ^ uVar41) -
           (*(ulonglong *)(lVar4 - (uVar61 ^ 0xd7e0063)) ^ uVar62);
  *puVar19 = uVar28 ^ CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar63 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar4 + -0x3d8) = uVar28 - uVar29 ^ uVar63;
  uVar15 = DAT_182671fa8;
  puVar2 = (ulonglong *)(lVar4 + -0xc18);
  uVar59 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *puVar2 = uVar28 + (*(ulonglong *)(lVar4 + -0xa50) ^ uVar58);
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar28 = (*(ulonglong *)(lVar4 - (uVar60 ^ 0xa1a7a5fe)) ^ uVar41) +
           (*(ulonglong *)(lVar4 + -0x5e8) ^ uVar59);
  *puVar2 = uVar28 ^ uVar31;
  *(ulonglong *)(lVar4 - (uVar47 ^ 0x156dd654)) = uVar29 - uVar28 ^ uVar24;
  uVar6 = DAT_182671c4c;
  uVar29 = *(ulonglong *)(lVar4 + -0xc90) ^ *(ulonglong *)(lVar4 + -0x920) ^ uVar48;
  uVar28 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar41 = (uVar29 ^ uVar59) >> (((byte)uVar67 ^ 0x5e) & 0x3f);
  *puVar1 = uVar41 ^ uVar38;
  *(ulonglong *)(lVar4 + -0xa50) = uVar29;
  *(ulonglong *)(lVar4 + -0x920) = (uVar59 ^ uVar29) << (((byte)uVar67 ^ 0x7e) & 0x3f) ^ uVar28;
  uVar64 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar41 = *(ulonglong *)(lVar4 - (uVar61 ^ 0xd7e057b)) ^ uVar28 | uVar41;
  uVar71 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar4 + -0xa50) = uVar41 ^ uVar64;
  puVar35 = (ulonglong *)(lVar4 - (uVar61 ^ 0xd7e00cb));
  uVar28 = (uVar48 ^ *puVar35) - (*(ulonglong *)(lVar4 - (uVar42 ^ 0xe414326)) ^ uVar71);
  uVar43 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *puVar1 = uVar28 ^ CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar4 - (uVar53 ^ 0xf37d3e95)) = uVar28 - uVar41 ^ uVar43;
  uVar32 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar28 = CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar67 ^ 0xc067bcde)) =
       (CONCAT44(uVar8,uVar14) ^ 0xa1a7a146dc50ec98) -
       (*(ulonglong *)(lVar4 - (uVar70 ^ 0xd32c2aac)) ^ uVar32) ^ uVar28;
  uVar10 = DAT_182671c80;
  uVar29 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar41 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 - (uVar54 ^ 0x23af1142)) =
       (*(ulonglong *)(DAT_182671c40 + -0xc90) ^ uVar28) +
       (uVar64 ^ *(ulonglong *)(DAT_182671c40 + -0xa50)) ^ uVar29;
  uVar34 = DAT_182671c88;
  uVar27 = DAT_182671c88 | uVar10;
  uVar50 = (ulonglong)uVar27;
  bVar37 = (byte)DAT_182671c88;
  DAT_182671c50 = uVar27;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar10 ^ 0xfff7f4af)) =
       (CONCAT44(uVar10,uVar27) ^ 0xe90f55a5f2f77819) >> ((bVar37 ^ 0x10) & 0x3f);
  uVar15 = DAT_182671ca4;
  lVar4 = DAT_182671c40;
  puVar25 = (ulonglong *)(DAT_182671c40 - (uVar50 ^ 0xfff7fc6f));
  uVar28 = *puVar25 ^ *(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar29 ^ uVar71 ^ uVar63;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar28;
  uVar17 = DAT_182671f58;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xc90) = (uVar28 ^ uVar71) >> (((byte)uVar6 ^ 0xd7) & 0x3f) ^ uVar29;
  uVar55 = CONCAT44(uVar17,uVar17);
  *puVar68 = (*(ulonglong *)(lVar4 - (uVar70 ^ 0xd32c2d74)) ^ uVar71) <<
             (((byte)uVar27 ^ 0x97) & 0x3f) ^ uVar55;
  uVar28 = *puVar1 ^ uVar55 | *(ulonglong *)(lVar4 + -0xc90) ^ uVar29;
  *(ulonglong *)(lVar4 + -0x228) = uVar28 ^ uVar58;
  *(ulonglong *)(lVar4 + -0xa50) = (*(ulonglong *)(lVar4 + -0x3d8) ^ uVar63) - uVar28 ^ uVar39;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xfff7f327)) =
       *(ulonglong *)(lVar4 + -0x920) ^ uVar43 ^ *puVar19 ^ uVar49 ^ uVar24;
  lVar4 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671d7c;
  *puVar1 = (CONCAT44(uVar34,uVar12) ^ 0x19e3393be9de5265) >> ((bVar20 ^ 0x6c) & 0x3f);
  uVar51 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(lVar4 + -0x3d8) = *(ulonglong *)(lVar4 + -0xc90) >> 0x20 ^ uVar51 ^ uVar28;
  puVar68 = (ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x311605df));
  *(ulonglong *)(DAT_182671c40 - (uVar60 ^ 0xa1a7a54e)) =
       (CONCAT44(uVar21,uVar67) ^ 0x25721f33174be470) << (((byte)*puVar68 ^ (byte)uVar16) & 0x3f);
  lVar4 = DAT_182671c40;
  uVar29 = (uVar49 ^ *puVar35) << ((bVar69 ^ 4) & 0x3f);
  uVar28 = *(ulonglong *)(DAT_182671c40 + -0x3d8);
  *puVar1 = uVar29 ^ uVar45;
  uVar28 = (uVar29 | uVar28 ^ uVar51) ^ uVar48;
  *puVar19 = uVar28;
  uVar15 = DAT_182671f74;
  lVar5 = DAT_182671c40;
  uVar46 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar56 = (*(ulonglong *)(lVar4 + -0x920) ^ uVar43) -
           (*(ulonglong *)(lVar4 - (uVar53 ^ 0xf37d33bd)) ^ uVar48) ^ uVar46;
  local_168 = (byte)uVar21;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar56;
  uVar65 = CONCAT44(uVar15,uVar15);
  uVar28 = uVar65 ^ *(ulonglong *)(lVar5 + -0xa50) ^ uVar28 ^ uVar48 ^ uVar39;
  uVar45 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar5 + -0xc90) = uVar28;
  uVar29 = (uVar28 ^ uVar65) >> ((local_168 ^ 0x66) & 0x3f);
  uVar52 = (uVar28 ^ uVar65) << 6;
  uVar28 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar5 + -0x3d8) = uVar29 ^ uVar45;
  *puVar1 = uVar52 ^ uVar28;
  uVar15 = DAT_182671e28;
  uVar52 = uVar52 | uVar29;
  *(ulonglong *)(lVar5 + -0x920) = uVar52 ^ uVar23;
  lVar4 = DAT_182671c40;
  uVar64 = CONCAT44(uVar15,uVar15);
  *puVar19 = (*(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar39) - uVar52 ^ uVar64;
  puVar73 = (ulonglong *)(lVar4 - (uVar50 ^ 0xfff7fd9f));
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x31160297)) =
       uVar46 ^ uVar62 ^ uVar58 ^ uVar56 ^ *puVar73;
  uVar6 = DAT_182671c8c;
  uVar28 = (ulonglong)DAT_182671c8c;
  uVar21 = DAT_182671c8c << 0x10 | DAT_182671c8c >> 0x10;
  uVar29 = (ulonglong)uVar21;
  bVar20 = (byte)DAT_182671c8c;
  uVar39 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c8c ^ 0xde7ff26f)) ^ uVar62) >>
           ((bVar20 ^ 0xe9) & 0x3f);
  DAT_182671c64 = uVar21;
  *puVar1 = uVar39 ^ CONCAT44(DAT_182671d68,DAT_182671d68);
  uVar52 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (*(ulonglong *)(DAT_182671c40 + -0xc90) ^ uVar62) << ((bVar20 ^ 0xd5) & 0x3f) ^ uVar52;
  lVar4 = DAT_182671c40;
  uVar56 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar39 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0xde7ffd27)) ^ uVar52 | uVar39;
  puVar35 = (ulonglong *)(DAT_182671c40 + -0x2e8);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar39 ^ uVar56;
  uVar15 = DAT_182671e74;
  *(ulonglong *)(lVar4 + -0x228) = *(ulonglong *)(*puVar35 ^ uVar71) ^ uVar56;
  uVar52 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xc90) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xfeffd5a7)) ^ uVar46) - uVar39 ^ uVar52;
  *(ulonglong *)(lVar4 - (uVar72 ^ 0xb27d3a89)) =
       *(ulonglong *)(lVar4 - (uVar28 ^ 0xde7ff4af)) ^ uVar56 ^ uVar64 ^ *puVar19 ^ uVar58;
  uVar15 = DAT_182671ef8;
  *(ulonglong *)(lVar4 + -0x3d8) =
       (CONCAT44(uVar21,uVar11) ^ 0xc5991268a6585164) << ((bVar37 ^ 0x22) & 0x3f);
  uVar28 = CONCAT44(uVar15,uVar15);
  bVar37 = (byte)(uVar6 >> 0x10);
  local_100 = (byte)uVar8;
  *(ulonglong *)(lVar4 - (uVar70 ^ 0xd32c250c)) =
       (*(ulonglong *)(lVar4 - (uVar61 ^ 0xd7e0743)) ^ uVar58) >> ((bVar37 ^ 0x51) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar57 ^ 0xe9cef329)) =
       (*puVar1 ^ uVar58) << ((local_100 ^ 0xab) & 0x3f) ^ uVar43;
  uVar15 = DAT_182671e34;
  *(ulonglong *)(lVar4 + -0xa50) =
       (CONCAT44(uVar26,uVar10) ^ 0x566f3cd5d74d968e) - (*puVar1 ^ uVar58);
  uVar39 = CONCAT44(uVar15,uVar15);
  uVar46 = (ulonglong)DAT_182671c4c;
  uVar28 = *(ulonglong *)(lVar4 - (uVar53 ^ 0xf37d359d)) ^ uVar28 |
           *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c4c ^ 0x9e3fe52f)) ^ uVar43;
  puVar66 = (ulonglong *)(lVar4 - (uVar30 ^ 0x2de393dc));
  *(ulonglong *)(lVar4 + -0x3d8) = uVar28 ^ uVar39;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 - (uVar46 ^ 0x9e3fe5ef)) = (uVar64 ^ *puVar66) - uVar28 ^ uVar55;
  *(ulonglong *)(lVar4 + -0xa50) =
       *(ulonglong *)(lVar4 + -0xc90) ^ *(ulonglong *)(lVar4 + -0x920) ^ uVar23;
  uVar15 = DAT_182671fa4;
  local_178 = (byte)uVar9;
  *(ulonglong *)(lVar5 + -0x228) =
       (CONCAT44(uVar6,uVar12) ^ 0x8b8f8315972c87fa) >> ((local_178 ^ 0x58) & 0x3f);
  uVar28 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0xfff7f46f)) =
       (uVar52 ^ *(ulonglong *)(lVar5 + -0xa50)) >> ((bVar37 ^ 0x73) & 0x3f) ^ uVar28;
  *puVar19 = CONCAT44(uVar34,uVar44) ^ *puVar1 ^ uVar55 ^ 0xcfb7c284d9fa45dd;
  puVar35 = (ulonglong *)(lVar5 - (uVar30 ^ 0x2de39d84));
  *(ulonglong *)(DAT_182671c40 - (uVar60 ^ 0xa1a7a866)) =
       (uVar52 ^ *puVar35) << ((bVar20 ^ 0xcb) & 0x3f) ^ uVar49;
  lVar4 = DAT_182671c40;
  uVar28 = *(ulonglong *)(DAT_182671c40 - (uVar57 ^ 0xe9cef1d1)) ^ uVar49 |
           uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar28 ^ uVar48;
  *puVar19 = CONCAT44(uVar14,uVar11) ^ 0xfd5360af6bcb1618;
  uVar23 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *puVar35 = (uVar52 ^ *(ulonglong *)(lVar4 + -0xc90)) - uVar28 ^ uVar23;
  uVar6 = DAT_182671cd0;
  lVar5 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671cd0;
  uVar43 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar48 = *(ulonglong *)(lVar4 - (uVar33 ^ 0xd25c1e75)) ^
           *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar67 ^ 0xc067b266)) ^ uVar43 ^ uVar55 ^
           uVar48;
  uVar64 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar48;
  puVar36 = (ulonglong *)(lVar5 - (uVar47 ^ 0x156ddb7c));
  local_110 = (byte)uVar14;
  *puVar36 = ((ulonglong)(uVar6 >> 0x19) | uVar28 << 7) ^ uVar48 >> 0x19 ^ uVar64;
  *puVar19 = (uVar43 ^ *(ulonglong *)(lVar5 + -0xbd8)) << ((local_110 ^ 0x4d) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar5 + -0xc90) = uVar33 << 0x22 ^ 0x8ebd238000000000;
  lVar4 = DAT_182671c40;
  uVar48 = uVar64 ^ *(ulonglong *)(lVar5 + -0x920) | uVar38 ^ *puVar66;
  *(ulonglong *)(lVar5 + -0x228) = uVar48 ^ uVar71;
  uVar15 = DAT_182671d80;
  uVar28 = (*puVar1 ^ uVar55) - (*(ulonglong *)(lVar5 + -0x2b0) ^ uVar24);
  *(ulonglong *)(lVar4 + -0xbd8) = uVar28 ^ uVar49;
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xd25c19fd)) = uVar28 - uVar48 ^ uVar43;
  uVar15 = DAT_182671f34;
  uVar28 = (*(ulonglong *)(lVar4 + -0x960) ^ uVar52) + (*(ulonglong *)(lVar4 + -0xc38) ^ uVar62);
  *(ulonglong *)(lVar4 + -0x920) = uVar28 ^ uVar32;
  lVar5 = DAT_182671c40;
  uVar48 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xfeffd567)) =
       (*(ulonglong *)(lVar4 + -0x228) ^ uVar71) - uVar28 ^ uVar48;
  *puVar73 = *(ulonglong *)(lVar5 - (uVar33 ^ 0xd25c16b5)) ^ uVar23 ^ uVar39 ^
             *(ulonglong *)(lVar5 + -0xa50) ^ uVar62;
  lVar4 = DAT_182671c40;
  puVar35 = (ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (*(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar62) >> ((bVar69 ^ 5) & 0x3f) ^ uVar51;
  uVar28 = *(ulonglong *)(lVar4 + -0x228);
  *puVar35 = (uVar49 ^ *(ulonglong *)(lVar4 + -0xbd8)) -
             (CONCAT44(uVar12,uVar7) ^ 0x9f111e6475acbaf2);
  *(ulonglong *)(lVar4 - (uVar53 ^ 0xf37d3dcd)) = (uVar28 ^ uVar62) << 0x1f ^ uVar40;
  *puVar68 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0x2de39dac)) ^ uVar40 | *puVar25 ^ uVar51) ^ uVar65;
  uVar15 = DAT_182671df0;
  *(uint *)(lVar4 + -0x9dc) = (DAT_182671c90 ^ 0x169a8561) & (DAT_182671c4c ^ 0x1c631bb1);
  lVar5 = DAT_182671c40;
  uVar53 = CONCAT44(uVar15,uVar15);
  uVar28 = (*(ulonglong *)(lVar4 - (uVar54 ^ 0x23af193a)) ^ uVar23) -
           (*(ulonglong *)(lVar4 - (uVar41 ^ 0xfff7f3af)) ^ uVar31);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar28 ^ uVar53;
  uVar28 = uVar28 - (uVar65 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8));
  *puVar35 = *(ulonglong *)(lVar5 - (uVar22 ^ 0x5e585d61)) ^ uVar51 ^ *puVar19 ^ uVar38;
  *puVar2 = uVar28 ^ uVar45;
  lVar4 = DAT_182671c40;
  puVar25 = (ulonglong *)(DAT_182671c40 + -0xb20);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar28 | uVar32 ^ *puVar36;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x3d8) =
       (CONCAT44(uVar13,uVar67) ^ 0xc82c84a3f984fbd) - (*puVar25 ^ uVar23) ^ uVar24;
  uVar28 = (*(ulonglong *)(lVar4 - (uVar42 ^ 0xe4142d6)) ^ uVar24) +
           (uVar65 ^ *(ulonglong *)(lVar5 + -0xbd8)) ^ uVar63;
  *puVar19 = uVar28;
  *(ulonglong *)(lVar5 - (uVar50 ^ 0xfff7f5cf)) =
       uVar43 ^ *(ulonglong *)(lVar5 + -0xc90) ^ uVar63 ^ uVar28 ^ uVar53;
  uVar28 = *puVar35;
  uVar33 = (uVar53 ^ uVar28) >> ((bVar20 ^ 0xfa) & 0x3f);
  *(ulonglong *)(lVar5 + -0x228) = uVar33 ^ uVar31;
  uVar28 = (uVar53 ^ uVar28) << (((byte)uVar12 ^ 0xaa) & 0x3f);
  *(ulonglong *)(lVar5 + -0xa50) = uVar28 ^ uVar59;
  uVar33 = uVar33 | uVar28;
  *(ulonglong *)(lVar5 + -0xbd8) = uVar33 ^ uVar59;
  *(ulonglong *)(lVar5 - (uVar29 ^ 0xfeffdda7)) =
       (uVar43 ^ *(ulonglong *)(lVar5 + -0xc90)) - uVar33 ^ uVar65;
  *puVar19 = (*(ulonglong *)(lVar5 - (uVar22 ^ 0x5e5854e9)) ^ uVar59) << ((local_178 ^ 0x77) & 0x3f)
  ;
  *puVar35 = *puVar1 ^ uVar45 ^ uVar32 ^ uVar48 ^ *puVar2;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar3 ^ uVar67;
  return;
}



############ FUN_ 180fa19e0 size=3891 ############

void FUN_180fa19e0(void)

{
  longlong lVar1;
  byte bVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint *puVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  uint uVar18;
  longlong *plVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  byte local_70;
  
  uVar5 = DAT_182671f70;
  uVar21 = DAT_182671f14;
  uVar16 = DAT_182671edc;
  uVar4 = DAT_182671c6c;
  uVar11 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c6c;
  uVar12 = (ulonglong)DAT_182671c64;
  uVar23 = DAT_182671c6c * DAT_182671c64;
  uVar10 = *(uint *)(&DAT_182613218 + DAT_182672278) ^ DAT_182671c64;
  uVar8 = *(uint *)(&DAT_182613220 + DAT_182672278) ^ DAT_182671c6c;
  uVar22 = (ulonglong)DAT_182671df0;
  puVar9 = (uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c6c ^ 0x7e14d1c0));
  DAT_182671c74 = uVar23;
  *(uint *)(DAT_182671c40 + -0xc70) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)uVar23 ^ 0xa52ae038)) ^ DAT_182671e08) &
       (*(uint *)(DAT_182671c40 - (uVar30 ^ 0x7e14d28c)) ^ DAT_182671f70) ^ DAT_182671edc;
  uVar13 = (ulonglong)DAT_182671d04;
  uVar14 = (*puVar9 ^ DAT_182671fa0 | *(uint *)(lVar3 - (uVar12 ^ 0xf4c9aba1)) ^ uVar16) ^
           DAT_182671e48;
  *(uint *)(lVar3 + -0x27c) = uVar14;
  *(uint *)(*(ulonglong *)(lVar3 + -0x878) ^ uVar13) = uVar14 ^ uVar21 ^ DAT_182671e48;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x7e14d94c)) =
       (CONCAT44(uVar4,uVar11) ^ 0x7e14d44cf4c9a7d0) * 0x10 + *(longlong *)(lVar3 + -0xcf0);
  lVar1 = *(longlong *)(lVar3 + -0xd00);
  *(longlong *)(lVar3 + -0xcf0) = lVar1;
  *(uint *)(lVar3 + -0x670) = (*(uint *)(lVar3 + -0xc70) ^ uVar16) - (uVar23 ^ 0xf1fa691a);
  *(longlong *)(lVar3 + -0xd00) = lVar1;
  *(ulonglong *)(lVar3 + -0x3a0) =
       (CONCAT44(uVar23,uVar23) ^ 0xa52ae60ca52ae60c) * 0x10 + lVar1 ^ uVar22;
  uVar16 = DAT_182671e78;
  uVar14 = DAT_182671c54;
  uVar12 = (ulonglong)DAT_182671c54;
  uVar24 = ~DAT_182671e7c;
  uVar13 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar3 - (uVar30 ^ 0x7e14dea8)) =
       (uVar5 ^ *(uint *)(lVar3 + -0x6c0)) + (uVar11 ^ 0x53d40fd5);
  uVar5 = DAT_182671c80;
  uVar20 = (ulonglong)DAT_182671c80;
  puVar9 = (uint *)(uVar22 ^ *(ulonglong *)(lVar3 + -0x3a0));
  uVar33 = uVar14 & DAT_182671c80;
  uVar15 = DAT_182671c80 ^ 0xd969c2e0;
  uVar11 = *puVar9;
  DAT_182671c8c = uVar33;
  *(ulonglong *)(lVar3 + -0x628) = *(ulonglong *)(lVar3 + -0x380) | *(ulonglong *)(lVar3 + -0x7c0);
  uVar18 = uVar11 ^ uVar16 ^ uVar21;
  *(uint *)(lVar3 + -0x9dc) = uVar18;
  uVar11 = (int)(uVar18 ^ uVar16) >> 0x1f ^ DAT_182671cfc;
  *(uint *)(lVar3 + -0x5d4) = uVar11;
  uVar24 = uVar24 ^ uVar11 ^ DAT_182671cfc;
  *(uint *)(lVar3 + -0x634) = uVar24;
  uVar24 = uVar24 ^ DAT_182671e7c;
  *(uint *)(lVar3 + -0x58c) = uVar15 >> (((byte)uVar33 ^ 0x1e) & 0x1f);
  uVar11 = (uVar18 ^ uVar16) - (*(uint *)(lVar3 - (uVar12 ^ 0x4a08f350)) ^ DAT_182671c9c) ^
           DAT_182671ec0;
  *(uint *)(lVar3 + -0xc70) = uVar11;
  uVar11 = (int)(uVar11 ^ DAT_182671ec0) >> (((byte)uVar14 ^ 0xb) & 0x1f) ^ DAT_182671d38;
  *(uint *)(lVar3 + -0x670) = uVar11;
  uVar11 = (uVar11 ^ DAT_182671d38) & uVar24 ^ DAT_182671e3c;
  *(uint *)(lVar3 + -0x6c0) = uVar11;
  uVar11 = (uVar18 ^ uVar16 | uVar11 ^ DAT_182671e3c) ^ DAT_182671dac;
  *(uint *)(lVar3 + -0xae4) = uVar11;
  *puVar9 = uVar11 ^ DAT_182671dac ^ uVar21;
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar14,uVar5) ^ 0x28f1a47dfdeaecba) <<
       ((byte)*(undefined8 *)(lVar3 + -0xbd8) & 0x3f);
  uVar15 = DAT_182671cc8;
  uVar28 = (ulonglong)DAT_182671f38;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar33 ^ 0x4208dde0)) = *(undefined8 *)(lVar3 + -0x148);
  *(longlong *)(lVar3 + -0xd00) = *(longlong *)(lVar3 + -0xcf0);
  puVar9 = (uint *)((CONCAT44(uVar5,uVar14) ^ 0x462ad9d94a08f714) * 0x10 +
                   *(longlong *)(lVar3 + -0xcf0));
  *(ulonglong *)(lVar3 + -0x578) = (ulonglong)puVar9 ^ uVar28;
  *(longlong *)(lVar3 + -0x888) = *(longlong *)(lVar3 + -0x380) + -0x6b41eae128d043de;
  uVar18 = DAT_182671ee0;
  *(uint *)(lVar3 - ((ulonglong)uVar33 ^ 0x4208d4c4)) = *puVar9 ^ uVar15 ^ uVar21;
  uVar11 = (int)(*(uint *)(lVar3 + -0x5d4) ^ uVar15) >> (((byte)uVar4 ^ 0x53) & 0x1f) ^
           DAT_182671e80;
  *(longlong *)(lVar3 + -0xa70) = *(longlong *)(lVar3 + -0x110) + *(longlong *)(lVar3 + -0xda8);
  *(uint *)(lVar3 + -0x58c) = uVar11;
  uVar11 = uVar11 ^ uVar18 ^ DAT_182671e80;
  *(uint *)(lVar3 + -0x444) = uVar11;
  uVar6 = DAT_182671d94;
  *(uint *)(lVar3 + -0xc70) =
       *(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0x462add9d)) ^ DAT_182671d70 ^ uVar18 ^ uVar14 ^
       0xb5f708eb;
  uVar26 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x228) = (longlong)(int)(uVar11 ^ uVar18) ^ uVar26;
  uVar6 = DAT_182671df8;
  *(undefined1 *)(lVar3 + -0xcd2) = **(undefined1 **)(lVar3 + -0x6f8);
  uVar7 = DAT_182671f34;
  uVar27 = CONCAT44(uVar6,uVar6);
  puVar17 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xd00) + 8 +
            (CONCAT44(uVar33,uVar5) ^ 0x4208d110462ad9d9) * 0x10);
  *(ulonglong *)(lVar3 + -0xd78) = (ulonglong)puVar17 ^ uVar27;
  uVar11 = DAT_182671c64;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar12 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0xa52ae1cc)) = *puVar17 ^ uVar12 ^ uVar31;
  uVar6 = DAT_182671f64;
  *(undefined1 *)(lVar3 + -0xc69) = **(undefined1 **)(lVar3 + -0x328);
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x628) =
       CONCAT44(uVar11,uVar33) ^ *(ulonglong *)(lVar3 + -0x228) ^ uVar22 ^ uVar26 ^
       0xb36582ebdf72eef;
  uVar25 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(lVar3 - (uVar13 ^ 0x4a08f494)) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0x7e14d38c)) ^ uVar31) &
       (*(ulonglong *)(lVar3 - (uVar13 ^ 0x4a08f13c)) ^ uVar22) ^ uVar25;
  uVar6 = DAT_182671d30;
  uVar13 = (*(ulonglong *)(lVar3 + -0x228) ^ uVar26) & *(ulonglong *)(lVar3 + 0x20);
  uVar22 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar3 + -0x888) = uVar13 ^ CONCAT44(DAT_182671f1c,DAT_182671f1c);
  uVar13 = *(ulonglong *)(lVar3 + -0x380) ^ uVar25 | uVar13;
  *(ulonglong *)(lVar3 + -0xda8) = uVar13 ^ uVar22;
  *(ulonglong *)(uVar27 ^ *(ulonglong *)(lVar3 + -0xd78)) = uVar13 ^ uVar12;
  uVar24 = DAT_182671f00;
  uVar21 = DAT_182671dc8;
  uVar25 = (ulonglong)DAT_182671e54;
  uVar16 = ~DAT_182671f00 ^ *(uint *)(lVar3 + -0x444) ^ uVar18;
  uVar33 = DAT_182671f00 ^ uVar16;
  *(uint *)(lVar3 + -0x634) = uVar16;
  uVar16 = DAT_182671c8c;
  uVar22 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar3 + -0x670) = (*(uint *)(lVar3 + -0x5d4) ^ uVar15) & uVar33 ^ DAT_182671e5c;
  *(uint *)(lVar3 - (uVar30 ^ 0x7e14dd90)) =
       *(uint *)(((ulonglong)uVar16 ^ 0x4208d138) + lVar3) & (*(uint *)(lVar3 + -0x444) ^ uVar18) ^
       DAT_182671e04;
  uVar16 = uVar21 ^ DAT_182671f14;
  *(uint *)(lVar3 - (uVar22 ^ 0x4208d7d0)) =
       (*(uint *)(lVar3 - (uVar30 ^ 0x7e14d23c)) ^ DAT_182671e5c |
       *(uint *)(lVar3 + -0x9dc) ^ DAT_182671e04) ^ uVar21;
  *(uint *)(*(ulonglong *)(lVar3 + -0x578) ^ uVar28) = uVar16 ^ *(uint *)(lVar3 + -0x6c0);
  *(uint *)(lVar3 + -0x58c) = (uVar21 ^ *(uint *)(lVar3 + -0x6c0)) * 0x15ec7476;
  plVar19 = (longlong *)(lVar3 - (uVar20 ^ 0x462ad4d9));
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x7e14d124)) = *plVar19 + 4U ^ uVar25;
  uVar16 = DAT_182671c64;
  uVar13 = (ulonglong)DAT_182671c64;
  uVar21 = *(uint *)(*(ulonglong *)(lVar3 + -0x568) ^ uVar25) ^ DAT_182671e00 ^ DAT_182671f14;
  uVar26 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar3 + -0x5d4) = uVar21;
  uVar21 = uVar21 ^ DAT_182671e00;
  *(ulonglong *)(lVar3 + -0xa70) =
       (CONCAT44(uVar23,uVar16) ^ 0x1274abe305d7ec39) >>
       ((*(byte *)(lVar3 - (uVar13 ^ 0xf4c9aa79)) ^ (byte)uVar6) & 0x3f);
  uVar15 = DAT_182671dec;
  uVar16 = (*(uint *)(lVar3 + -0x444) ^ uVar18) & 4 ^ DAT_182671d78;
  *(uint *)(lVar3 + -0x670) = uVar21 & (*(uint *)(lVar3 + -0x634) ^ uVar24) ^ DAT_182671fb4;
  *(uint *)(lVar3 - (uVar22 ^ 0x4208d8cc)) = uVar16;
  *(uint *)(lVar3 - (uVar20 ^ 0x462ad095)) =
       (*(uint *)(lVar3 + -0x670) ^ DAT_182671fb4 | *(uint *)(lVar3 + -0x9dc) ^ DAT_182671d78) ^
       DAT_182671d9c;
  *(uint *)(*(ulonglong *)(lVar3 + -0x568) ^ uVar25) =
       *(uint *)(lVar3 + -0x94c) ^ DAT_182671d9c ^ DAT_182671f14;
  *(longlong *)(lVar3 - (uVar20 ^ 0x462ad891)) = *(longlong *)(lVar3 + -0xd00) + 0x10;
  uVar6 = DAT_182671f24;
  uVar16 = *(uint *)(lVar3 + -0xc70) ^ DAT_182671cf4 ^ DAT_182671d70;
  *(uint *)(lVar3 + -0x634) = DAT_182671c8c ^ 0x1060004 | 0xaec8bbdb;
  *(undefined8 *)(lVar3 + -0xcf0) = *(undefined8 *)(lVar3 + -0x148);
  uVar13 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(uint *)(lVar3 + -0x58c) = uVar16;
  uVar13 = *(ulonglong *)(uVar13 ^ *(ulonglong *)(lVar3 + -0x218));
  *(uint *)(lVar3 + -0x5d4) = uVar16 ^ uVar15 ^ DAT_182671cf4;
  *(ulonglong *)(lVar3 + -0x628) = uVar13 ^ CONCAT44(uVar6,uVar6);
  uVar16 = DAT_182671c50;
  uVar22 = (ulonglong)DAT_182671e98;
  uVar34 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xf4c9a5f9)) =
       CONCAT44(uVar11,uVar4) ^ 0xb57e97e3dcef7ad0 | *(ulonglong *)(lVar3 + -0x7c0) ^ uVar31;
  *plVar19 = *(longlong *)(lVar3 + -0xcf0);
  bVar2 = (byte)DAT_182671c64;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x7e14d724)) =
       (CONCAT44(uVar11,uVar23) ^ 0xf4c9a7d1a52ae60c) * 0x10 + *(longlong *)(lVar3 + -0xd00) ^
       uVar22;
  uVar13 = (ulonglong)DAT_182671c58;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c68 ^ 0x460add9d)) =
       *(uint *)(uVar22 ^ *(ulonglong *)(lVar3 + -0x368)) ^ DAT_182671dcc ^ DAT_182671f14;
  uVar11 = DAT_182671c48;
  uVar26 = (ulonglong)DAT_182671c48;
  uVar33 = DAT_182671c48 - uVar16;
  uVar21 = (int)(*(uint *)(lVar3 - (uVar13 ^ 0x9ff39bb7)) ^ DAT_182671dcc) >>
           ((bVar2 ^ 0xce) & 0x1f) ^ DAT_182671ef4;
  DAT_182671c60 = uVar33;
  *(uint *)(lVar3 + -0x9dc) = uVar21;
  uVar4 = DAT_182671c9c;
  uVar21 = (*(uint *)(lVar3 + -0x5d4) ^ uVar15) & (uVar21 ^ DAT_182671ef4);
  uVar18 = uVar21 ^ DAT_182671c9c;
  *(uint *)(lVar3 + -0x670) = uVar18;
  *(uint *)(lVar3 + -0x784) = uVar18 ^ *(uint *)(lVar3 + -0x5d4) ^ DAT_182671ccc ^ uVar15 ^ uVar4;
  uVar6 = DAT_182671ce0;
  uVar20 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar13 = (longlong)(int)uVar21 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x380) = uVar13;
  uVar32 = CONCAT44(uVar16,uVar11);
  uVar25 = CONCAT44(uVar6,uVar6);
  puVar17 = (ulonglong *)(*(longlong *)(lVar3 + -0xd00) + 8 + (uVar32 ^ 0xfe35fe5efddbffea) * 0x10);
  *(ulonglong *)(lVar3 + -0x218) = (ulonglong)puVar17 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x888) =
       *(longlong *)(lVar3 - (uVar34 ^ 0xfe35f586)) - (uVar32 ^ 0x585dda0849a35c77);
  lVar1 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar3 + -0xa70) = *puVar17 ^ uVar28 ^ uVar12;
  uVar6 = DAT_182671e74;
  uVar27 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  puVar17 = (ulonglong *)(lVar1 - ((ulonglong)uVar16 ^ 0xfe35f876));
  uVar31 = CONCAT44(uVar33,uVar11) ^ uVar27;
  *puVar17 = uVar13 ^ uVar31 ^ uVar20 ^ 0x59fe7302240015;
  lVar1 = DAT_182671c40;
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 + -0x7c0) =
       (*(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xfddbf9c2)) ^ uVar27) &
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar33 ^ 0xffa60bfc)) ^ uVar28) ^ uVar22;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar16 ^ 0xfe35fc76)) = uVar31 ^ *puVar17 ^ 0x4918c6311b0c42d4;
  uVar6 = DAT_182671fa8;
  uVar15 = DAT_182671db4;
  uVar4 = DAT_182671c9c;
  uVar13 = (*(ulonglong *)(lVar1 + -0x380) ^ uVar20) & *(ulonglong *)(lVar1 + 0x20);
  *(ulonglong *)(lVar1 + -0xbd8) = uVar13 ^ CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar20 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 + -0x888) = (uVar22 ^ *(ulonglong *)(lVar1 + -0x7c0) | uVar13) ^ uVar20;
  *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar34 ^ 0xfe35fc46)) ^ uVar25) =
       *(ulonglong *)(lVar1 - (uVar26 ^ 0xfddbf762)) ^ uVar20 ^ uVar12;
  lVar3 = DAT_182671c40;
  puVar29 = (uint *)(lVar1 - ((ulonglong)uVar16 ^ 0xfe35f82e));
  *(uint *)(DAT_182671c40 - (uVar26 ^ 0xfddbf39a)) = *puVar29 ^ uVar15 ^ uVar33 ^ uVar4 ^ 0x59fe73;
  *(uint *)(lVar3 + -0x634) = (uVar33 ^ 0x9da4fef4) & (uVar16 ^ 0x1c0fd1b6);
  *(uint *)(lVar3 + -0x58c) =
       (*(uint *)(lVar3 - ((ulonglong)uVar33 ^ 0xffa60dfc)) ^ uVar15) &
       (*(uint *)(lVar3 - ((ulonglong)uVar16 ^ 0xfe35fa1a)) ^ DAT_182671dcc) ^ DAT_182671e24;
  uVar18 = DAT_182671f14;
  uVar21 = DAT_182671de4;
  uVar24 = (*(uint *)(lVar3 + -0x670) ^ uVar4) & *(uint *)(lVar3 + 0x28) ^ DAT_182671e1c;
  *(ulonglong *)(lVar3 + -0xa70) =
       (CONCAT44(uVar14,uVar11) ^ 0x7a2014019ae46856) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar26 ^ 0xfddbfefa)) & 0x3f);
  uVar13 = (ulonglong)DAT_182671dd8;
  *(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xa52aefd0)) = uVar24;
  uVar14 = *(uint *)(lVar3 + -0x9dc) ^ DAT_182671e1c | *(uint *)(lVar3 + -0x58c) ^ DAT_182671e24;
  *(ulonglong *)(lVar3 + -0x228) = (uVar32 ^ 0x1ce489bc2e3d3a7f) + 0x3f940fc7485a2481;
  *(uint *)(lVar3 + -0x5d4) = uVar14 ^ DAT_182671cdc;
  *(uint *)((ulonglong)DAT_182671e98 ^ *(ulonglong *)(lVar3 + -0x368)) = uVar14 ^ uVar18;
  puVar9 = (uint *)(*(longlong *)(lVar3 - ((ulonglong)uVar33 ^ 0xffa60c8c)) + 4 +
                   (CONCAT44(uVar33,uVar11) ^ 0xffa6018cfddbffea) * 0x10);
  *(ulonglong *)(lVar3 + -0x480) = (ulonglong)puVar9 ^ uVar13;
  *(uint *)(lVar3 - ((ulonglong)uVar33 ^ 0xffa607b8)) = *puVar9 ^ uVar21 ^ uVar18;
  uVar14 = (uVar21 ^ *(uint *)(lVar3 + -0x634)) & (uVar15 ^ *(uint *)(lVar3 + -0xc70)) ^
           DAT_182671f98;
  uVar11 = DAT_182671c6c ^ 0x7e14d448;
  *(uint *)(lVar3 + -0x444) = uVar14;
  uVar14 = uVar14 ^ DAT_182671f98;
  uVar11 = (*puVar29 ^ uVar4) & uVar11;
  *(uint *)(lVar3 + -0x58c) = uVar11 ^ DAT_182671dd0;
  uVar11 = (uVar14 | uVar11) ^ DAT_182671d7c;
  *(uint *)(lVar3 + -0x9dc) = uVar11;
  local_70 = (byte)uVar16;
  *(uint *)(*(ulonglong *)(lVar3 + -0x480) ^ uVar13) = uVar11 ^ DAT_182671d7c ^ uVar18;
  uVar13 = CONCAT44(DAT_182671c70,uVar5);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x7e14d55c)) =
       (CONCAT44(uVar33,uVar5) ^ 0x958d2292b25c4d5) << ((local_70 ^ 0x44) & 0x3f);
  *(ulonglong *)(lVar3 + -0x148) =
       (uVar13 ^ 0x6cab72e4462ad9d8) * 0x10 + *(longlong *)(lVar3 + -0xd00);
  uVar11 = *(uint *)(lVar3 + -0x784) ^ DAT_182671ce8 ^ DAT_182671ccc;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar8 * 4) = uVar10;
  *(uint *)(lVar3 - (uVar30 ^ 0x7e14d4d8)) = uVar11;
  return;
}



############ FUN_ 181024690 size=4182 ############

void FUN_181024690(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  byte *pbVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint *puVar34;
  uint uVar35;
  uint uVar36;
  uint *puVar37;
  ulonglong uVar38;
  uint uVar39;
  byte local_78;
  
  uVar16 = DAT_182671f8c;
  uVar19 = DAT_182671c88;
  uVar5 = DAT_182671c74;
  uVar4 = DAT_182671c6c;
  uVar28 = DAT_182671c68;
  uVar11 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671c94;
  uVar20 = (ulonglong)DAT_182671c64;
  uVar25 = DAT_182671c64 * DAT_182671c8c;
  uVar26 = DAT_182671c6c & DAT_182671c60;
  uVar18 = (ulonglong)DAT_182671c74;
  uVar31 = (ulonglong)DAT_182671c48;
  uVar27 = *(uint *)(&DAT_182613218 + DAT_182672118) ^ DAT_182671c88;
  uVar39 = DAT_182671c74 + DAT_182671c48;
  uVar32 = (DAT_182671c68 << 0x10 | DAT_182671c68 & 0xff00) << 8 | DAT_182671c68 >> 8 & 0xff00 |
           DAT_182671c68 >> 0x18;
  uVar9 = DAT_182671c88 & DAT_182671c94;
  DAT_182671c54 = uVar9 ^ 0x9c2eef7;
  uVar12 = (ulonglong)DAT_182671c54;
  uVar10 = *(uint *)(&DAT_182613210 + (uVar12 ^ 0x9c2eee7) + (longlong)DAT_182672118) ^
           DAT_182671c94;
  uVar22 = (ulonglong)DAT_182671c8c;
  DAT_182671c4c = uVar25;
  DAT_182671c70 = uVar32;
  DAT_182671c78 = uVar39;
  DAT_182671c90 = uVar26;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c64 ^ 0x74f9c6f3)) =
       (*(uint *)(DAT_182671c40 + -0x76c) ^ DAT_182671e34) + (uVar25 ^ 0x6b8609e1);
  *(uint *)(lVar2 + -0x54) = *(uint *)(lVar2 + -0x76c) ^ DAT_182671da8 ^ DAT_182671e34;
  *(uint *)(lVar2 - (uVar18 ^ 0x9b0e74df)) =
       *(uint *)(lVar2 - (uVar22 ^ 0x3c10254)) ^ uVar16 ^ DAT_182671fa0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar39 ^ 0xc620c91)) =
       0x5941685663b6cb6e >> ((byte)*(undefined8 *)(lVar2 + -0xa70) & 0x3f);
  uVar22 = (ulonglong)DAT_182671d84;
  *(uint *)(lVar2 + -0x6c0) = *(uint *)(lVar2 + -0x54) ^ DAT_182671f9c ^ DAT_182671da8;
  uVar21 = (ulonglong)uVar32;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x8b087a91)) =
       (CONCAT44(uVar32,uVar11) ^ 0x5084808171539b0e) * 0x20 +
       (CONCAT44(uVar28,uVar4) ^ 0x81808450ef98fff8) + *(longlong *)(lVar2 + -0x9a8) ^ uVar22;
  uVar32 = DAT_182671e74;
  bVar1 = (byte)DAT_182671e4c;
  bVar13 = *(byte *)(*(ulonglong *)(lVar2 + -0xbc0) ^ uVar22) ^ (byte)DAT_182671e4c ^
           (byte)DAT_182671e0c;
  uVar22 = (ulonglong)DAT_182671c60;
  *(byte *)(lVar2 + -0x1c3) = bVar13;
  *(uint *)(lVar2 - (uVar22 ^ 0x9b0e77d7)) = (bVar13 ^ bVar1) ^ uVar32;
  *(uint *)(lVar2 - (uVar31 ^ 0x71539fa2)) =
       (*(uint *)(lVar2 + -0x6c0) ^ DAT_182671f9c) + (uVar19 ^ 0xe25f69b9) ^ DAT_182671f80;
  *(uint *)(lVar2 + -0x94) = (*(uint *)(lVar2 + -0x684) ^ uVar32) << 0x11 ^ DAT_182671dd0;
  *(int *)(lVar2 + -0x1c8) = 0x219f7e84 << (((byte)uVar28 ^ 0x53) & 0x1f);
  uVar19 = *(uint *)(lVar2 + -0x4ac) ^ DAT_182671f80;
  *(longlong *)(lVar2 + -0x7c0) = *(longlong *)(lVar2 + -0x760) << (((byte)uVar26 ^ 0x70) & 0x3f);
  *(uint *)(lVar2 - (uVar12 ^ 0x9c2e8eb)) =
       uVar19 - (*(uint *)(lVar2 - ((ulonglong)uVar4 ^ 0xef98ff61)) ^ DAT_182671dd0) ^ DAT_182671cd0
  ;
  uVar19 = *(uint *)(lVar2 + -0x61c) ^ DAT_182671cd0;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (CONCAT44(uVar25,uVar39) ^ 0x6793c547ac358022) + 0x44b58b2d0cba4c70;
  uVar29 = uVar19 * (*(uint *)(lVar2 + -0x58c) ^ uVar16) ^ DAT_182671e58;
  *(uint *)(lVar2 + -0x9dc) = uVar29;
  uVar29 = uVar29 ^ DAT_182671e58;
  *(uint *)(lVar2 + -0x784) =
       (*(uint *)(lVar2 - (uVar31 ^ 0x71539d8a)) ^ uVar32) * 0xd ^ DAT_182671fb4;
  uVar19 = DAT_182671dc8;
  uVar6 = DAT_182671c7c;
  uVar29 = (*(uint *)(lVar2 - ((ulonglong)DAT_182671c8c ^ 0x3c10f34)) ^ DAT_182671fb4) + uVar29;
  *(uint *)(lVar2 + -0x644) = uVar29 ^ DAT_182671dc8;
  *(uint *)(lVar2 + -0x634) = uVar29 << (((byte)uVar28 ^ 0x5d) & 0x1f) ^ DAT_182671f78;
  uVar32 = (*(uint *)(lVar2 + -0x644) ^ uVar19) >> (((byte)uVar39 ^ 0x72) & 0x1f) ^ DAT_182671e20;
  *(uint *)(lVar2 + -0x94c) = uVar32;
  uVar19 = DAT_182671c84;
  uVar35 = uVar6 - DAT_182671c84;
  uVar22 = (ulonglong)DAT_182671c84;
  *(uint *)(lVar2 + -0x76c) =
       (*(uint *)(lVar2 - (uVar38 ^ 0x80a2027c)) ^ DAT_182671f78 | uVar32 ^ DAT_182671e20) ^
       DAT_182671cc4;
  puVar34 = (uint *)(lVar2 - ((ulonglong)uVar35 ^ 0x4604ce66));
  DAT_182671c5c = uVar35;
  *puVar34 = (*(uint *)(lVar2 - (uVar22 ^ 0x80a201c4)) ^ uVar16) +
             (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671d0c;
  uVar32 = *(uint *)(lVar2 + -0xae4) ^ DAT_182671de8 ^ DAT_182671d0c;
  *(ulonglong *)(lVar2 + -0x828) =
       (CONCAT44(uVar6,uVar19) ^ 0x4a8fccbd83f60719) - (CONCAT44(uVar6,uVar35) ^ 0xf987028f5b29f8cd)
  ;
  *(uint *)(lVar2 + -0x54) = uVar32;
  uVar30 = DAT_182671f48;
  uVar29 = DAT_182671cc8;
  uVar16 = DAT_182671c80;
  uVar32 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar24 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x9b0e7b33)) =
       *(longlong *)(lVar2 - ((ulonglong)uVar6 ^ 0xc6a6c042)) -
       (CONCAT44(uVar35,uVar19) ^ 0x1c664fc122eb92ce);
  uVar19 = *(uint *)(lVar2 + -0x76c) ^ DAT_182671df8 ^ DAT_182671cc4;
  *(uint *)(lVar2 + -0x6c0) = uVar19;
  uVar36 = uVar16 & uVar32;
  uVar19 = uVar19 ^ DAT_182671cd4 ^ DAT_182671df8;
  uVar22 = (ulonglong)DAT_182671d64;
  DAT_182671c58 = uVar36;
  *(uint *)(lVar3 + -0x1c8) =
       *(uint *)(lVar3 - ((ulonglong)uVar36 ^ 0x1000454)) ^ uVar30 ^ DAT_182671de8;
  pbVar17 = (byte *)(*(longlong *)(lVar3 + -0x9a8) + 0x18);
  *(uint *)(lVar3 + -0x4ac) = uVar19;
  bVar1 = (byte)DAT_182671e40;
  *(ulonglong *)(lVar3 + -0xc20) = (ulonglong)pbVar17 ^ uVar22;
  *(byte *)(lVar3 + -0x1c3) = *pbVar17 ^ bVar1 ^ (byte)DAT_182671e0c;
  lVar2 = DAT_182671c40;
  uVar33 = (uint)(*(byte *)(lVar3 - ((ulonglong)uVar16 ^ 0x10005d3)) ^ bVar1);
  *(uint *)(lVar3 + -0x94) = uVar33 ^ uVar29;
  *(uint *)(lVar2 + -0x61c) =
       (*(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0xb9583922)) ^ DAT_182671cd4) + (uVar36 ^ 0x9d42161e)
       ^ DAT_182671e84;
  lVar2 = DAT_182671c40;
  uVar19 = uVar33 << (((byte)uVar32 ^ 0x9f) & 0x1f) ^ DAT_182671fb0;
  *(uint *)(DAT_182671c40 + -0x684) = uVar19;
  uVar19 = uVar19 ^ DAT_182671fb0;
  uVar33 = uVar33 * (uVar32 ^ 0xb9583d96) ^ DAT_182671ee4;
  *(uint *)(lVar2 + -0x9dc) = (uVar36 ^ 0x9d42161e) + uVar19;
  *(uint *)(lVar2 + -0x784) =
       (*(uint *)(lVar2 - (uVar24 ^ 0x100020c)) ^ DAT_182671e84) - uVar19 ^ DAT_182671f90;
  uVar29 = *(uint *)(lVar2 - (uVar20 ^ 0x74f9c83b)) ^ DAT_182671f90;
  uVar19 = *(uint *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x9b0e709b));
  *(ulonglong *)(lVar2 + -0x960) = CONCAT44(uVar11,uVar36) ^ 0x969fe6d0b4119dc4;
  *(uint *)(lVar2 + -0x644) = uVar29 * (uVar19 ^ uVar30) ^ DAT_182671ebc;
  uVar18 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(uint *)(lVar2 - ((ulonglong)uVar25 ^ 0x163bcd64)) = uVar33;
  uVar29 = DAT_182671f70;
  uVar7 = DAT_182671f24;
  uVar33 = (*(uint *)(lVar2 + -0x634) ^ DAT_182671ee4) + (*(uint *)(lVar2 + -0x644) ^ DAT_182671ebc)
  ;
  *(uint *)(lVar2 + -0x94c) = uVar33 ^ DAT_182671f70;
  uVar23 = CONCAT44(uVar7,uVar7);
  uVar22 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0x920) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar21 ^ 0x50848691)) ^ uVar18) ^ uVar23;
  uVar19 = DAT_182671c88;
  bVar14 = (byte)uVar36 ^ 0xd;
  uVar18 = (ulonglong)DAT_182671c88;
  puVar37 = (uint *)(lVar2 - (uVar22 ^ 0x3c10d3c));
  uVar22 = (ulonglong)DAT_182671d24;
  *puVar37 = uVar33 << (bVar14 & 0x1f) ^ DAT_182671d88;
  uVar15 = *(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4;
  uVar33 = *(uint *)(lVar2 + -0x58c) ^ DAT_182671d88;
  uVar29 = (*(uint *)(lVar2 - (uVar12 ^ 0x9c2e7bb)) ^ uVar29) >> 0x13 ^ DAT_182671ea8;
  *(uint *)(lVar2 + -0xae4) = uVar29;
  uVar33 = (uVar29 ^ DAT_182671ea8 | uVar33) ^ DAT_182671d30;
  *(uint *)(lVar2 + -0x76c) = uVar33;
  uVar29 = uVar15 + (*(uint *)(lVar2 + -0x1c8) ^ uVar30) ^ DAT_182671f1c;
  uVar30 = uVar33 ^ DAT_182671e60 ^ DAT_182671d30;
  *(uint *)(lVar2 + -0x54) = uVar29;
  *(uint *)(lVar2 + -0x6c0) = uVar29 ^ DAT_182671d60 ^ DAT_182671f1c;
  *(uint *)(lVar2 + -0x4ac) = uVar30;
  *(uint *)(lVar2 - ((ulonglong)uVar39 ^ 0xc6205bd)) =
       *(uint *)(lVar2 - ((ulonglong)uVar16 ^ 0x10002d0)) ^ DAT_182671df4 ^ DAT_182671d60;
  *(uint *)(lVar2 + -0x61c) = DAT_182671f08 ^ *(uint *)(lVar2 + -0x4ac) ^ DAT_182671e60;
  *(ulonglong *)(lVar2 + -0x5a0) =
       *(longlong *)(lVar2 - ((ulonglong)uVar6 ^ 0xc6a6c162)) +
       (CONCAT44(uVar19,uVar19) ^ 0x7e1d7ba77e1d7ba4) +
       (CONCAT44(uVar32,uVar5) ^ 0xb9583d8e9b0e7153) * 0x20 ^ uVar22;
  bVar1 = (byte)DAT_182671d3c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x8b087a71)) =
       *(ulonglong *)(lVar2 + -0x5e8) | *(ulonglong *)(lVar2 + -0x380);
  uVar19 = DAT_182671ee8;
  uVar16 = DAT_182671e0c;
  lVar3 = DAT_182671c40;
  bVar8 = (byte)DAT_182671e0c;
  bVar13 = *(byte *)(uVar22 ^ *(ulonglong *)(lVar2 + -0x5a0)) ^ bVar1 ^ bVar8;
  *(byte *)(lVar2 + -0x1c3) = bVar13;
  uVar30 = DAT_182671e8c;
  uVar29 = DAT_182671df4;
  *(uint *)(lVar3 - (uVar24 ^ 0x1000294)) = (bVar13 ^ bVar1) ^ DAT_182671e8c;
  bVar1 = (byte)DAT_182671c60;
  uVar28 = (*(uint *)(DAT_182671c40 - ((ulonglong)uVar28 ^ 0x8180824c)) ^ DAT_182671f08) +
           (uVar35 ^ 0xda46d69c);
  uVar22 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(uint *)(lVar3 + -0x784) = uVar28 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x3d8) = *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar3 + -0xb98)) ^ uVar23;
  uVar19 = (*(uint *)(lVar3 + -0x684) ^ uVar30) << ((bVar1 ^ 0x42) & 0x1f) ^ DAT_182671db8;
  *(uint *)(lVar3 + -0x94) = uVar19;
  uVar28 = uVar28 - (uVar19 ^ DAT_182671db8) ^ DAT_182671f38;
  *(uint *)(lVar3 + -0x644) = uVar28;
  uVar19 = DAT_182671c7c;
  uVar28 = uVar28 ^ DAT_182671f38;
  *(ulonglong *)(lVar3 + -0x110) = *(ulonglong *)(lVar3 - (uVar20 ^ 0x74f9cc67)) ^ 0xce54aceedcb3d21
  ;
  uVar15 = uVar28 * (*(uint *)(lVar3 + -0x9dc) ^ uVar29) ^ DAT_182671d08;
  *(uint *)(lVar3 + -0x634) = uVar15;
  uVar28 = (*(uint *)(lVar3 + -0x684) ^ uVar30) * 3 ^ DAT_182671d4c;
  uVar15 = uVar15 ^ DAT_182671d08;
  *(uint *)(lVar3 + -0x94c) = uVar28;
  uVar33 = DAT_182671fa8;
  uVar15 = (uVar28 ^ DAT_182671d4c) + uVar15;
  *(uint *)(lVar3 + -0x58c) = uVar15 ^ DAT_182671fa8;
  uVar30 = DAT_182671efc;
  uVar28 = DAT_182671d04;
  *(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0x163bc1b4)) =
       uVar15 << (((byte)uVar19 ^ 199) & 0x1f) ^ uVar16;
  uVar33 = (uVar33 ^ *(uint *)(lVar3 + -0x58c)) >> 0x13 ^ DAT_182671e1c;
  *(uint *)(lVar3 + -0x1c8) = uVar33;
  uVar19 = DAT_182671c8c;
  lVar2 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c84;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x80a2041c)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0xb958376a)) ^ uVar16 | uVar33 ^ DAT_182671e1c) ^
       DAT_182671d70;
  uVar32 = *(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4;
  *(ulonglong *)(lVar3 + -0x30) =
       CONCAT44(uVar9,uVar19) ^ 0xbbf10565540fbef5 | *(ulonglong *)(lVar3 + -0x8f0);
  uVar19 = uVar28 ^ DAT_182671cbc;
  uVar32 = uVar32 + (*(uint *)(lVar3 + -0x9dc) ^ uVar29) ^ DAT_182671cc0;
  *(uint *)(lVar3 + -0x76c) = uVar32;
  uVar9 = uVar32 ^ DAT_182671cbc ^ DAT_182671cc0;
  *(uint *)(lVar3 + -0x6c0) = uVar9;
  uVar32 = DAT_182671d68;
  uVar33 = *(uint *)(lVar3 + -0x54) ^ DAT_182671d68 ^ DAT_182671d70;
  uVar16 = uVar30 ^ DAT_182671d68;
  uVar22 = (ulonglong)DAT_182671e88;
  *(uint *)(lVar2 + -0x61c) = uVar19 ^ uVar9;
  *(uint *)(lVar2 + -0x4ac) = uVar33;
  *(uint *)(lVar2 - (uVar38 ^ 0x80a203cc)) = uVar16 ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x508481f1)) =
       *(longlong *)(lVar2 + -0x9a8) + 0xe +
       (CONCAT44(uVar39,DAT_182671c60) ^ 0xc620c619b0e7153) * 0x20 ^ uVar22;
  uVar16 = DAT_182671da4;
  local_78 = (byte)uVar4;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (CONCAT44(uVar4,uVar11) ^ 0x8c89f344ab5e2b67) - (CONCAT44(uVar26,uVar5) ^ 0x797eb285652a0043)
  ;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x170) ^ uVar22) ^ (byte)uVar32 ^ bVar8;
  uVar19 = DAT_182671c80;
  *(ulonglong *)(lVar2 + -0x2b0) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar35 ^ 0x4604c4b2)) | 0x1cb35ee43ff57e69;
  uVar11 = DAT_182671c8c ^ 0x9f831aae;
  *(uint *)(lVar2 + -0x94) = uVar32 & 0xff ^ (uint)*(byte *)(lVar2 + -0x1c3) ^ uVar16;
  uVar11 = (uVar30 ^ *(uint *)(lVar2 + -0x784)) + uVar11 ^ DAT_182671fac;
  *(uint *)(lVar2 + -0x644) = uVar11;
  uVar11 = uVar11 ^ DAT_182671fac;
  *(uint *)(lVar2 + -0x684) =
       (*(uint *)(lVar2 - (uVar18 ^ 0x7e1d7b33)) ^ uVar16) << (((byte)uVar19 ^ 1) & 0x1f) ^
       DAT_182671e50;
  *(ulonglong *)(lVar2 + -0x680) =
       (CONCAT44(uVar6,uVar25) ^ 0x8c5937996da7c798) + *(longlong *)(lVar2 + -0x888);
  uVar19 = uVar11 - (*(uint *)(lVar2 - (uVar21 ^ 0x50848605)) ^ DAT_182671e50) ^ DAT_182671db0;
  *(uint *)(lVar2 + -0x634) = uVar19;
  *(uint *)(lVar2 + -0x94c) =
       (*(uint *)(lVar2 - (uVar20 ^ 0x74f9c9a3)) ^ uVar28) * (uVar19 ^ DAT_182671db0) ^
       DAT_182671f10;
  uVar11 = DAT_182671d90;
  *(ulonglong *)(lVar2 + -0x228) = *(ulonglong *)(lVar2 + -0x30) >> ((local_78 ^ 0xf4) & 0x3f);
  uVar19 = DAT_182671d54;
  *puVar37 = (*(uint *)(lVar2 - (uVar31 ^ 0x71539b9a)) ^ uVar16) * 0xe ^ DAT_182671d54;
  uVar32 = (uVar19 ^ *(uint *)(lVar2 + -0x58c)) + (*(uint *)(lVar2 + -0x94c) ^ DAT_182671f10);
  *(ulonglong *)(lVar2 + -0x7e8) = *(ulonglong *)(lVar2 + -0xa08) | *(ulonglong *)(lVar2 + -0x8f0);
  *(uint *)(lVar2 + -0xae4) = uVar32 ^ uVar11;
  uVar32 = uVar32 << (bVar14 & 0x1f);
  *(uint *)(lVar2 + -0x1c8) = uVar32 ^ DAT_182671e94;
  uVar19 = (*puVar34 ^ uVar11) >> (((byte)uVar36 ^ 0x13) & 0x1f) ^ DAT_182671cac;
  *(uint *)(lVar2 + -0x9dc) = uVar19;
  bVar1 = (byte)DAT_182671ed0;
  *(uint *)(lVar2 - (uVar12 ^ 0x9c2e99b)) = (uVar32 | uVar19 ^ DAT_182671cac) ^ DAT_182671f68;
  uVar12 = (ulonglong)DAT_182671c60;
  uVar19 = (*(uint *)(lVar2 - (uVar23 ^ 0x80a2019c)) ^ DAT_182671dd4) +
           (uVar28 ^ *(uint *)(lVar2 + -0x61c)) ^ DAT_182671df8;
  *(uint *)(lVar2 + -0x54) = uVar19;
  *(uint *)(lVar2 - (uVar12 ^ 0x9b0e7793)) = uVar19 ^ DAT_182671dc4 ^ DAT_182671df8;
  uVar11 = *(uint *)(lVar2 + -0x76c) ^ DAT_182671f68 ^ uVar29;
  *(uint *)(lVar2 + -0x784) = *(uint *)(lVar2 + -0x6c0) ^ DAT_182671cf4 ^ DAT_182671dc4;
  uVar19 = DAT_182671e2c;
  *(uint *)(lVar2 + -0x4ac) = uVar11;
  pbVar17 = (byte *)(*(longlong *)(lVar2 + -0x9a8) + 0x19);
  *(uint *)(lVar2 + -0x644) = uVar19 ^ uVar29 ^ uVar11;
  *(ulonglong *)(lVar2 + -0xbc0) = (ulonglong)pbVar17 ^ (ulonglong)DAT_182671dbc;
  bVar8 = *pbVar17 ^ bVar1 ^ bVar8;
  *(byte *)(lVar2 + -0x1c3) = bVar8;
  uVar12 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar2 + -0x684) = (bVar1 ^ bVar8) ^ DAT_182671ce8;
  uVar19 = (*(uint *)(lVar2 - (uVar12 ^ 0x3c10ef4)) ^ DAT_182671e2c) + (DAT_182671c84 ^ 0x1ce01656)
           ^ DAT_182671d8c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar10 * 4) = uVar27;
  *(uint *)(lVar2 - (uVar21 ^ 0x508486b5)) = uVar19;
  return;
}



############ FUN_ 180fdefd0 size=5685 ############

void FUN_180fdefd0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  byte bVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong *puVar44;
  byte bVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  byte local_f8;
  
  uVar14 = DAT_182671c94;
  uVar13 = DAT_182671c84;
  uVar11 = DAT_182671c78;
  uVar8 = DAT_182671c4c;
  uVar7 = DAT_182671c48;
  lVar5 = DAT_182671c40;
  uVar46 = (ulonglong)DAT_182671c84;
  uVar52 = (ulonglong)DAT_182671c78;
  uVar24 = DAT_182671c84 << 0x10 | DAT_182671c84 >> 0x10;
  uVar35 = (ulonglong)uVar24;
  uVar27 = DAT_182671c78 ^ DAT_182671c48;
  uVar23 = (DAT_182671c94 << 0x10 | DAT_182671c94 & 0xff00) << 8 | DAT_182671c94 >> 8 & 0xff00 |
           DAT_182671c94 >> 0x18;
  uVar37 = DAT_182671c4c << 0x10 | DAT_182671c4c >> 0x10;
  uVar4 = *(uint *)(&DAT_182613218 + DAT_18267203c);
  uVar18 = *(uint *)(&DAT_182613220 + DAT_18267203c) ^ DAT_182671c84;
  uVar40 = CONCAT44(DAT_182671f10,DAT_182671f10);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xb20);
  uVar53 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar48 = (CONCAT44(DAT_182671dc0,DAT_182671dc0) ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) +
           (uVar40 ^ *puVar3);
  uVar49 = uVar48 ^ uVar53;
  uVar22 = (ulonglong)DAT_182671c94;
  uVar19 = CONCAT44(uVar23,DAT_182671c94);
  DAT_182671c60 = uVar23;
  DAT_182671c68 = uVar24;
  DAT_182671c70 = uVar27;
  DAT_182671c88 = uVar37;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar49;
  *(ulonglong *)(lVar5 + -0x888) = -0x1c08ee3b255f1373 - (uVar19 ^ 0x13b960dc06ff372a);
  uVar25 = (ulonglong)uVar8;
  uVar34 = (ulonglong)uVar37;
  uVar38 = (uVar40 ^ *puVar3) << (((byte)uVar8 ^ 0xb5) & 0x3f);
  uVar21 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar5 + -0xa60) = uVar38 ^ CONCAT44(DAT_182671ca0,DAT_182671ca0);
  lVar5 = DAT_182671c40;
  uVar28 = (ulonglong)uVar27;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (uVar21 ^ *(ulonglong *)(DAT_182671c40 + -0x7c0)) +
       (CONCAT44(uVar11,uVar27) ^ 0xf3da2c3f6b8e9fec);
  uVar36 = (ulonglong)uVar7;
  uVar30 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  local_f8 = (byte)uVar14;
  uVar40 = (*(ulonglong *)(lVar5 - (uVar36 ^ 0x7e66050d)) ^ uVar40) >> ((local_f8 ^ 0x88) & 0x3f);
  uVar41 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *(ulonglong *)(lVar5 + -0x380) = uVar40 ^ uVar30;
  puVar1 = (ulonglong *)(lVar5 + -0xb08);
  uVar40 = (uVar40 | uVar38) ^ uVar30;
  *(ulonglong *)(lVar5 + -0x2b0) = uVar40;
  uVar40 = uVar41 ^ uVar30 ^ uVar49 ^ uVar53 ^ uVar40;
  puVar2 = (ulonglong *)(lVar5 + -0x110);
  *puVar1 = uVar40;
  uVar9 = DAT_182671cac;
  puVar31 = (ulonglong *)(lVar5 - (uVar28 ^ 0xc9b504fb));
  uVar53 = CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar30 = (uVar41 ^ uVar40) << 0x20;
  uVar49 = (CONCAT44(DAT_182671d88,DAT_182671d88) ^ *puVar31) + (uVar41 ^ uVar40) ^ uVar53;
  *puVar2 = uVar49;
  uVar29 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(ulonglong *)(lVar5 + -0x628) = uVar30 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671d94;
  *(ulonglong *)(lVar5 + -0x7e8) =
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0x94f107ab)) ^ uVar41) >> (((byte)uVar11 ^ 0xde) & 0x3f) ^
       uVar29;
  uVar41 = CONCAT44(uVar9,uVar9);
  uVar38 = (*(ulonglong *)(lVar5 - (uVar34 ^ 0xca39319)) ^ uVar29 | uVar30) ^ uVar41;
  uVar40 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar5 + -0x888) = uVar38;
  uVar9 = DAT_182671cb0;
  *(ulonglong *)(lVar5 + -0x7c0) =
       uVar40 ^ *(ulonglong *)(lVar5 + -0xa70) | CONCAT44(uVar27,uVar7) ^ 0x8243f6cfcc5c6a0d;
  uVar30 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0xd88) = uVar30 ^ uVar41 ^ uVar53 ^ uVar38 ^ uVar49;
  uVar38 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar41 = CONCAT44(DAT_182671d08,DAT_182671d08);
  bVar45 = (byte)uVar13;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x9f046407)) =
       (uVar38 ^ *(ulonglong *)(lVar5 + -0x920)) + uVar48 ^ uVar41;
  uVar9 = DAT_182671e84;
  uVar40 = (uVar38 ^ *(ulonglong *)(lVar5 + -0x920)) << ((bVar45 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar5 + -0xa60) = uVar40 ^ uVar29;
  uVar10 = DAT_182671f80;
  uVar29 = (uVar38 ^ *(ulonglong *)(lVar5 + -0x920)) >> ((bVar45 ^ 0x24) & 0x3f);
  uVar42 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(ulonglong *)(lVar5 + -0x380) = uVar29 ^ CONCAT44(uVar9,uVar9);
  uVar48 = CONCAT44(uVar10,uVar10);
  uVar40 = (uVar29 | uVar40) ^ uVar42;
  *(ulonglong *)(lVar5 + -0x2b0) = uVar40;
  uVar40 = *(ulonglong *)(lVar5 - (uVar34 ^ 0xca39fd1)) ^ uVar48 ^ uVar42 ^ uVar41 ^ uVar40;
  *(ulonglong *)(lVar5 + -0x228) = uVar40;
  uVar38 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar49 = (uVar48 ^ uVar40) + (CONCAT44(uVar14,uVar7) ^ 0x1df570f9470a837e);
  *puVar1 = uVar49 ^ uVar38;
  uVar40 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(lVar5 + -0x628) =
       (CONCAT44(uVar8,uVar27) ^ 0xcd4b7f6ef0ad3feb) + (uVar53 ^ *puVar2) ^ uVar40;
  uVar54 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(lVar5 + -0x7e8) =
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0x94f10a8b)) ^ uVar40) + uVar49 ^ uVar54;
  uVar9 = DAT_182671d7c;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0xa70) = uVar29 - (CONCAT44(uVar37,uVar23) ^ 0xa84b861a7aeb1544);
  uVar49 = CONCAT44(uVar9,uVar9);
  puVar43 = (ulonglong *)(lVar5 - (uVar52 ^ 0xb7d30f3e));
  *puVar43 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0x9f04642f)) ^ uVar38) << 0xe ^ uVar49;
  *(ulonglong *)(lVar6 + -0x888) = CONCAT44(uVar24,uVar8) ^ 0xf8e36f3c35cd9d30;
  uVar40 = (*(ulonglong *)(lVar6 - (uVar36 ^ 0x7e660525)) ^ uVar38) >> ((local_f8 ^ 0x90) & 0x3f);
  *(ulonglong *)(lVar6 + -0x760) = uVar40 ^ CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       CONCAT44(uVar11,uVar24) ^ 0x88e752f17641578 | CONCAT44(uVar13,uVar7) ^ 0xb9ea5da625f91134;
  lVar5 = DAT_182671c40;
  uVar53 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar38 = (uVar49 ^ *puVar43 | uVar40) ^ uVar53;
  uVar47 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar38;
  uVar9 = DAT_182671e20;
  uVar40 = *(ulonglong *)(lVar5 + -0x228);
  *(ulonglong *)(lVar5 + -0x2b0) =
       *(ulonglong *)(lVar5 - (uVar28 ^ 0xc9b5013b)) ^ uVar47 ^ uVar38 ^ uVar53 ^ uVar54;
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar38 = (uVar30 ^ *(ulonglong *)(lVar5 + -0xd88)) + (uVar19 ^ 0xde8c5b223c444e14);
  *puVar2 = uVar38 ^ uVar32;
  *(ulonglong *)(lVar5 + -0x628) = *(ulonglong *)(lVar5 + -0xa70) >> 3;
  uVar9 = DAT_182671cb4;
  uVar19 = (uVar41 ^ *puVar3) + (CONCAT44(uVar14,uVar7) ^ 0x57ebfddd3476b28f);
  *(ulonglong *)(lVar5 + -0x380) = uVar19 ^ uVar41;
  *(ulonglong *)(lVar5 + -0x888) = (uVar48 ^ uVar40) - (CONCAT44(uVar24,uVar8) ^ 0x89db1657b8a73cbb)
  ;
  uVar10 = DAT_182671e98;
  uVar50 = CONCAT44(uVar9,uVar9);
  *puVar1 = uVar38 + uVar19 ^ uVar50;
  uVar9 = DAT_182671e0c;
  uVar38 = CONCAT44(uVar10,uVar10);
  bVar26 = (byte)(uVar14 >> 0x18);
  *(ulonglong *)(lVar5 + -0x920) =
       (*(ulonglong *)(lVar5 - (uVar52 ^ 0xb7d309ee)) ^ uVar32) << ((bVar26 ^ 0xa3) & 0x3f) ^ uVar38
  ;
  uVar40 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x9f0468e7)) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0xca395e1)) ^ uVar32) >> (((byte)uVar7 ^ 0x1d) & 0x3f) ^
       uVar40;
  uVar9 = DAT_182671ea8;
  uVar19 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar40 = (*(ulonglong *)(lVar5 - (uVar25 ^ 0x94f10b63)) ^ uVar40 |
           uVar38 ^ *(ulonglong *)(lVar5 + -0x920)) ^ uVar19;
  *(ulonglong *)(lVar5 + -0x760) = uVar40;
  uVar7 = DAT_182671f60;
  lVar5 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar40 = uVar50 ^ uVar38 ^ uVar40 ^ uVar19 ^ *puVar1;
  uVar53 = CONCAT44(uVar9,uVar9);
  puVar43 = (ulonglong *)(DAT_182671c40 + -0x7e8);
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar40;
  bVar20 = (byte)uVar27;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0xc9b50b5b)) = (uVar54 ^ *puVar43) + (uVar40 ^ uVar38) ^ uVar53;
  *(undefined8 *)(lVar5 - ((ulonglong)uVar23 ^ 0xa2dcf5c3)) = 0x402937fdd4ca628e;
  lVar6 = DAT_182671c40;
  uVar19 = (*(ulonglong *)(lVar5 + -0xa60) ^ uVar38) << ((bVar20 ^ 0xe7) & 0x3f);
  uVar55 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar19 ^ CONCAT44(DAT_182671d90,DAT_182671d90);
  *puVar3 = ((ulonglong)uVar7 << 0x14 | (ulonglong)(uVar7 >> 0xc)) ^
            *(ulonglong *)(lVar6 - (uVar22 ^ 0xb3ffd6c2)) >> 0xc ^ uVar55;
  uVar15 = DAT_182671da8;
  uVar40 = *(ulonglong *)(lVar6 + -0xd88);
  uVar29 = (ulonglong)DAT_182671da8;
  uVar38 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  uVar41 = CONCAT44(DAT_182671da8,DAT_182671da8);
  uVar19 = (*(ulonglong *)(lVar6 - (uVar25 ^ 0x94f10783)) ^ uVar55 | uVar19) ^ uVar38;
  *(ulonglong *)(lVar6 + -0x228) = uVar19;
  *(ulonglong *)(lVar6 + -0x888) = uVar40 ^ uVar41 ^ uVar19 ^ uVar38 ^ uVar53;
  uVar9 = DAT_182671d70;
  uVar48 = CONCAT44(DAT_182671d68,DAT_182671d68);
  uVar51 = (uVar50 ^ *puVar1) + (uVar47 ^ *(ulonglong *)(lVar6 + -0x2b0)) ^ uVar48;
  *(ulonglong *)(lVar6 + -0x380) = uVar51;
  uVar7 = DAT_182671cbc;
  uVar50 = CONCAT44(uVar9,uVar9);
  uVar19 = (uVar47 ^ *(ulonglong *)(DAT_182671c40 + -0x2b0)) << ((bVar20 ^ 0xea) & 0x3f);
  uVar39 = (ulonglong)DAT_182671cbc;
  *puVar2 = uVar19 ^ uVar50;
  uVar54 = CONCAT44(uVar7,uVar7);
  uVar47 = (uVar47 ^ *(ulonglong *)(DAT_182671c40 + -0x2b0)) >> ((bVar20 ^ 0xd4) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar47 ^ CONCAT44(DAT_182671e74,DAT_182671e74);
  lVar5 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar19 = (uVar19 | uVar47) ^ uVar38;
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar19;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0x760) = uVar19 ^ uVar51 ^ uVar54 ^ uVar38 ^ uVar48;
  *(ulonglong *)(lVar6 - (uVar52 ^ 0xb7d30f16)) =
       (*(ulonglong *)(lVar5 - (uVar36 ^ 0x7e66094d)) ^ uVar54) + (uVar40 ^ uVar53) ^ uVar42;
  *(ulonglong *)(lVar6 + -0xa70) =
       (CONCAT44(uVar27,uVar14) ^ 0xc34704c807248089) + 0x59daa4ae80fc1e86;
  *(ulonglong *)(lVar6 + -0xa60) =
       (*(ulonglong *)(lVar6 - (uVar46 ^ 0x6f279864)) ^ uVar54) << ((bVar45 ^ 0x13) & 0x3f) ^ uVar32
  ;
  *(ulonglong *)(lVar6 - (uVar28 ^ 0xc9b500fb)) =
       (*(ulonglong *)(lVar6 + -0x760) ^ uVar54) + (CONCAT44(uVar11,uVar27) ^ 0xe60e171279559a2b);
  uVar40 = *(ulonglong *)(lVar6 + -0xa60);
  uVar19 = (*(ulonglong *)(lVar6 + -0x760) >> 0x20 ^ uVar39) >> 9;
  *puVar3 = uVar19 ^ CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar6 - (uVar52 ^ 0xb7d30ad6)) = (uVar32 ^ uVar40 | uVar19) ^ uVar21;
  uVar7 = DAT_182671c64;
  lVar5 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671f40,DAT_182671f40);
  puVar33 = (ulonglong *)(lVar6 - (uVar25 ^ 0x94f10b4b));
  puVar44 = (ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xca396d9));
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xb3ffd7aa)) =
       uVar42 ^ uVar21 ^ *puVar44 ^ uVar40 ^ *puVar33;
  uVar52 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xa5ca885)) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0xca39c79)) ^ uVar41) +
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0x94f10f23)) ^ uVar48) ^ uVar52;
  *(int *)(lVar5 - ((ulonglong)uVar23 ^ 0xa2dcfbf7)) =
       *(int *)(lVar5 + -0x76c) << ((byte)*(undefined4 *)(lVar5 + -0x61c) & 0x1f);
  uVar21 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *puVar2 = (*(ulonglong *)(DAT_182671c40 + -0x888) ^ uVar41) << ((bVar26 ^ 0x9b) & 0x3f) ^ uVar21;
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x94f10583)) =
       (CONCAT44(uVar37,uVar13) ^ 0x4eb130728e183ba3) + (uVar40 ^ *puVar1);
  lVar5 = DAT_182671c40;
  uVar34 = ((ulonglong)(uVar15 >> 0x18) | uVar29 << 8) ^
           *(ulonglong *)(DAT_182671c40 + -0x888) >> 0x18;
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar34 ^ CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar5 + -0xd88) =
       CONCAT44(uVar11,uVar37) ^ CONCAT44(uVar11,uVar23) ^ 0x3add7198c547cb0f;
  uVar9 = DAT_182671dac;
  lVar5 = DAT_182671c40;
  uVar19 = CONCAT44(DAT_182671f54,DAT_182671f54);
  uVar34 = (uVar34 | *puVar2 ^ uVar21) ^ uVar19;
  puVar43 = (ulonglong *)(DAT_182671c40 + -0x2b0);
  uVar25 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(DAT_182671c40 + -0xa70) = uVar34;
  uVar10 = DAT_182671c90;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar34 = *puVar43 ^ uVar25 ^ uVar34 ^ uVar19 ^ uVar52;
  *(ulonglong *)(lVar5 + -0x628) = uVar34;
  uVar19 = CONCAT44(DAT_182671c74,uVar14);
  *(ulonglong *)(lVar5 + -0x760) =
       (*(ulonglong *)(lVar5 - (uVar46 ^ 0x6f2798ec)) ^ uVar42) + (uVar34 ^ uVar25) ^ uVar21;
  uVar9 = DAT_182671d58;
  *(ulonglong *)(lVar5 + -0xa60) =
       (CONCAT44(uVar11,uVar10) ^ 0x568c0c905f3c6f65) + (uVar19 ^ 0x2dd85fe9e57a723e);
  lVar5 = DAT_182671c40;
  uVar53 = CONCAT44(uVar9,uVar9);
  *puVar3 = (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x7e660805)) ^ uVar25) <<
            (((byte)(uVar13 >> 0x10) ^ 0x22) & 0x3f) ^ uVar53;
  uVar9 = DAT_182671c54;
  *puVar44 = (uVar25 ^ *(ulonglong *)(lVar5 + -0x628)) >> (((byte)uVar10 ^ 0x91) & 0x3f) ^ uVar55;
  uVar35 = *(ulonglong *)(lVar5 - (uVar35 ^ 0x9f046d0f)) ^ uVar55 | uVar53 ^ *puVar3;
  *(ulonglong *)(lVar5 + -0x380) = uVar35 ^ uVar49;
  *(ulonglong *)(lVar5 + -0x920) =
       (CONCAT44(uVar9,uVar24) ^ 0xb5217d3cf409d326) -
       (CONCAT44(uVar11,uVar23) ^ 0x48aef60ec3f307a3);
  uVar29 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar5 + -0x888) =
       *(ulonglong *)(lVar5 - (uVar46 ^ 0x6f279c84)) ^ uVar49 ^ uVar29 ^ uVar21 ^
       *(ulonglong *)(lVar5 + -0x760);
  uVar13 = DAT_182671c80;
  *(uint *)(lVar5 + -0x6c0) = (DAT_182671c80 ^ 0x7229bc40) - *(int *)(lVar5 + -0x27c);
  uVar41 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar34 = (*(ulonglong *)(lVar5 + -0x2b0) ^ uVar52) + (uVar40 ^ *puVar1) ^ uVar41;
  *(ulonglong *)(lVar5 + -0xd88) = uVar34;
  uVar10 = DAT_182671c58;
  uVar7 = DAT_182671c50;
  *puVar2 = (CONCAT44(uVar27,uVar13) ^ 0xd5bfb3946013fd16) + 0xb337ca44e5bfa794;
  uVar14 = DAT_182671c8c;
  bVar20 = (byte)uVar7;
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = (uVar40 ^ *puVar1) << ((bVar20 ^ 0x21) & 0x3f) ^ uVar38;
  uVar40 = (uVar40 ^ *puVar1) >> (((byte)uVar14 ^ 0xa0) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa70) = uVar40 ^ CONCAT44(DAT_182671ed0,DAT_182671ed0);
  uVar17 = DAT_182671f38;
  uVar12 = DAT_182671c7c;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = (uVar53 ^ *puVar3) + uVar35;
  uVar16 = DAT_182671e60;
  uVar49 = CONCAT44(uVar17,uVar17);
  uVar40 = (*(ulonglong *)(lVar5 - (uVar36 ^ 0x7e6609ed)) ^ uVar38 | uVar40) ^ uVar49;
  *(ulonglong *)(lVar5 + -0xa60) = uVar40;
  lVar5 = DAT_182671c40;
  uVar36 = CONCAT44(uVar16,uVar16);
  uVar38 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar34 = uVar36 ^ uVar40 ^ uVar49 ^ uVar41 ^ uVar34;
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar34;
  *(ulonglong *)(lVar5 + -0x228) =
       (CONCAT44(uVar8,uVar9) ^ 0x70e52ddcbfcb834d) + (uVar34 ^ uVar36) ^ uVar38;
  uVar8 = DAT_182671c64;
  uVar40 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar36 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x6f279624)) =
       (CONCAT44(uVar10,uVar12) ^ 0x5cb4d38914cd1839) + (uVar21 ^ *(ulonglong *)(lVar5 + -0x760)) ^
       uVar40;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0x2b0) =
       *(ulonglong *)(lVar5 - (uVar46 ^ 0x6f279624)) ^ CONCAT44(uVar37,uVar24) ^ uVar40 ^
       0xfef708f6c651146d;
  uVar21 = CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar34 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *puVar2 = (uVar40 ^ *(ulonglong *)(lVar5 + -0x920)) + (uVar38 ^ *(ulonglong *)(lVar5 + -0x228)) ^
            uVar21;
  *puVar1 = (uVar38 ^ *(ulonglong *)(lVar6 + -0x228)) << 0x19 ^ uVar34;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xb3ffd782)) =
       (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0x228)) >> ((bVar20 ^ 0x23) & 0x3f) ^ uVar25;
  uVar40 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar5 + -0x380) = (*puVar3 ^ uVar25) + 0x761f3a1841bef9b4;
  *puVar33 = (*(ulonglong *)(lVar5 - (uVar40 ^ 0x23258708)) ^ uVar34 | *puVar3 ^ uVar25) ^ uVar50;
  uVar22 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar40 = *puVar2;
  *(uint *)(lVar5 + -0x5d4) = *(uint *)(lVar5 + -0xa94) ^ DAT_182671d40 | *(uint *)(lVar5 + -0x784);
  uVar9 = DAT_182671d44;
  *(ulonglong *)(lVar5 + -0x7c0) =
       uVar22 ^ uVar21 ^ uVar40 ^ uVar50 ^ *(ulonglong *)(lVar5 + -0x7e8);
  uVar16 = DAT_182671e34;
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar40 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar5 + -0xa70) =
       (uVar29 ^ *(ulonglong *)(lVar5 + -0x888)) + (uVar19 ^ 0xcd5325d6472e92aa) ^ uVar34;
  uVar22 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - (uVar40 ^ 0xaa35003c)) =
       (CONCAT44(uVar24,uVar8) ^ 0xec87b39bfcb46055) + (uVar41 ^ *(ulonglong *)(lVar5 + -0xd88)) ^
       uVar22;
  uVar25 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *(ulonglong *)(lVar5 - (uVar36 ^ 0xa5cac1d)) =
       (*(ulonglong *)(lVar5 - (uVar28 ^ 0xc9b50cb3)) ^ uVar22) +
       (uVar34 ^ *(ulonglong *)(lVar5 + -0xa70)) ^ uVar25;
  uVar9 = DAT_182671e70;
  uVar40 = (uVar34 ^ *(ulonglong *)(lVar5 + -0xa70)) << (((byte)uVar10 ^ 0x21) & 0x3f);
  *(ulonglong *)(lVar5 + -0x760) = uVar40 ^ CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *(ulonglong *)(lVar5 + -0x2b0) =
       (uVar34 ^ *(ulonglong *)(lVar5 + -0xa70)) >> (((byte)uVar13 ^ 0x1f) & 0x3f) ^ uVar30;
  uVar10 = DAT_182671f28;
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar40 = (*(ulonglong *)(lVar5 - (uVar46 ^ 0x6f279db4)) ^ uVar30 | uVar40) ^ uVar19;
  *(ulonglong *)(lVar5 + -0x920) = uVar40;
  uVar7 = DAT_182671c8c;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar22 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar5 + -0x228) =
       uVar34 ^ uVar40 ^ uVar19 ^ uVar25 ^ *(ulonglong *)(lVar5 + -0x628);
  uVar10 = DAT_182671ec0;
  *(ulonglong *)(lVar5 + -0x380) =
       CONCAT44(uVar7,uVar12) ^ CONCAT44(uVar11,uVar37) ^ 0x5993024c910786a9;
  uVar9 = DAT_182671db4;
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar22 ^ 0x5e2e3793)) ^ uVar34) + (uVar21 ^ *puVar2) ^
            CONCAT44(uVar10,uVar10);
  *puVar3 = (*puVar31 ^ uVar34) << 0x2e ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar4 ^ uVar24;
  return;
}



############ FUN_ 181017320 size=5695 ############

void FUN_181017320(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  ulonglong uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte bVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  byte local_120;
  byte local_118;
  
  uVar10 = DAT_182671c90;
  uVar6 = DAT_182671c84;
  uVar8 = DAT_182671c80;
  uVar5 = DAT_182671c64;
  uVar4 = DAT_182671c5c;
  lVar2 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671c80;
  uVar49 = DAT_182671c80 * DAT_182671c90;
  uVar23 = DAT_182671c84 | DAT_182671c64;
  uVar16 = (DAT_182671c5c << 0x10 | DAT_182671c5c & 0xff00) << 8 | DAT_182671c5c >> 8 & 0xff00 |
           DAT_182671c5c >> 0x18;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826720f0);
  uVar15 = *(uint *)(&DAT_182613218 + DAT_1826720f0) ^ DAT_182671c80;
  uVar38 = (ulonglong)DAT_182671c90;
  uVar34 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar31 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar39 = CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar20 = (ulonglong)uVar16;
  uVar13 = (ulonglong)DAT_182671c5c;
  DAT_182671c58 = uVar49;
  DAT_182671c7c = uVar23;
  DAT_182671c8c = uVar16;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x3a97e356)) ^ uVar34) +
       (uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0x30)) ^ uVar39;
  uVar30 = (ulonglong)uVar5;
  *(int *)(lVar2 - ((ulonglong)uVar6 ^ 0x38e01f3d)) =
       *(int *)(lVar2 - (uVar13 ^ 0x4db1f94c)) <<
       ((byte)*(undefined4 *)(lVar2 - (uVar20 ^ 0x98fcb499)) & 0x1f);
  uVar9 = DAT_182671e48;
  uVar7 = DAT_182671dbc;
  uVar21 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar18 = (ulonglong)DAT_182671e48;
  *(ulonglong *)(lVar2 + -0x920) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0xf6706214)) ^ CONCAT44(DAT_182671e98,DAT_182671e98)) -
       (uVar39 ^ *(ulonglong *)(lVar2 + -0xbd8)) ^ uVar21;
  uVar11 = DAT_182671f38;
  uVar19 = CONCAT44(uVar7,uVar7);
  uVar17 = *(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xfef07765)) ^
           CONCAT44(DAT_182671e84,DAT_182671e84) ^ uVar19 ^ CONCAT44(uVar9,uVar9) ^
           *(ulonglong *)(lVar2 + -0x408);
  *(ulonglong *)(lVar2 + -0xa50) = uVar17;
  lVar2 = DAT_182671c40;
  uVar35 = CONCAT44(uVar11,uVar11);
  puVar32 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0x98fcb365));
  bVar46 = (byte)uVar4;
  *puVar32 = ((ulonglong)(uVar9 >> 0x10) | uVar18 << 0x10) ^ uVar17 >> 0x10 ^ uVar35;
  uVar40 = (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0xa50)) << ((bVar46 ^ 0xa8) & 0x3f);
  uVar18 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(lVar2 + -0xa78) = uVar40 ^ uVar18;
  *(uint *)(lVar2 + -0xae4) = (uVar10 ^ 0x2816c555) * -0x6a936a70;
  uVar11 = DAT_182671e28;
  lVar2 = DAT_182671c40;
  uVar17 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar4 ^ 0x4db1f780)) =
       (uVar40 | uVar35 ^ *puVar32) ^ uVar17;
  uVar7 = DAT_182671e18;
  puVar27 = (ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x4db1f080));
  uVar47 = CONCAT44(DAT_182671d70,DAT_182671d70);
  puVar41 = (ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xfef07b4d));
  *puVar41 = (uVar19 ^ *puVar27) - (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar2 + -0xc90)) ^
             uVar47;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x960) =
       (uVar47 ^ *(ulonglong *)(lVar2 + -0x30)) - (uVar17 ^ *(ulonglong *)(lVar2 + -0xb18)) ^ uVar24
  ;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xb3d72347)) =
       (CONCAT44(uVar6,uVar5) ^ 0xae6b80f722fede29) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar49 ^ 0x10b881e2)) ^ uVar24);
  lVar2 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       -(CONCAT44(DAT_182671fb4,DAT_182671fb4) ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) - 6 ^
       uVar33;
  uVar9 = DAT_182671f5c;
  uVar44 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  puVar32 = (ulonglong *)(DAT_182671c40 + -0x228);
  uVar19 = (ulonglong)DAT_182671f5c;
  uVar17 = (*(ulonglong *)(lVar2 - (uVar22 ^ 0xb3d72d1f)) ^ uVar33) +
           (uVar17 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) ^ uVar44;
  *puVar32 = uVar17;
  lVar2 = DAT_182671c40;
  uVar35 = CONCAT44(uVar9,uVar9);
  uVar36 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar45 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar17 = uVar36 ^ uVar35 ^ uVar17 ^ uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0x3d8);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar17;
  *puVar27 = uVar17 >> 0x20 ^ uVar45 ^ uVar19;
  puVar29 = (ulonglong *)(lVar2 - (uVar20 ^ 0x98fcbb35));
  uVar17 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (uVar35 ^ *puVar29) << (((byte)DAT_182671c84 ^ 0x59) & 0x3f) ^ uVar17;
  lVar2 = DAT_182671c40;
  *puVar41 = CONCAT44(uVar6,uVar49) ^ CONCAT44(uVar5,uVar10) ^ 0xb1722103674bc933;
  uVar40 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(lVar2 + -0x408) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x4db1f008)) ^ uVar17 |
       uVar45 ^ *(ulonglong *)(lVar2 + -0xc18)) ^ uVar40;
  puVar42 = (ulonglong *)(lVar2 - (uVar22 ^ 0xb3d72497));
  uVar35 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar2 + -0xb18) =
       (uVar36 ^ *puVar42) - (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x4db1f890)) ^ uVar40) ^
       uVar35;
  uVar11 = DAT_182671d28;
  uVar17 = uVar45 ^ uVar24 ^ uVar21 ^ *(ulonglong *)(lVar2 + -0x960) ^
           *(ulonglong *)(lVar2 + -0x920);
  *(ulonglong *)(lVar2 + -0xa50) = uVar17;
  uVar7 = DAT_182671ca4;
  uVar36 = (uVar45 ^ uVar17) >> (((byte)uVar10 ^ 0xfe) & 0x3f);
  uVar21 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *puVar32 = uVar36 ^ CONCAT44(uVar11,uVar11);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xa78) = (uVar45 ^ uVar17) << 0x20 ^ uVar21;
  uVar17 = *(ulonglong *)(lVar3 + -0x960);
  *(longlong *)(lVar2 + -0x30) =
       -0x21d1ff4b7bbc39d2 << ((*(byte *)(lVar2 - (uVar30 ^ 0xf670610c)) ^ (byte)uVar7) & 0x3f);
  puVar41 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0xfef07105));
  uVar19 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(lVar2 + -0xc90) = (*puVar41 ^ uVar21 | uVar36) ^ uVar19;
  uVar36 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x3a97e2c6)) =
       (uVar24 ^ uVar17) - (*(ulonglong *)(lVar3 - (uVar20 ^ 0x98fcbddd)) ^ uVar19) ^ uVar36;
  lVar2 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar17 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x38e015e9)) ^
           *(ulonglong *)(lVar3 + -0xb18) ^ uVar25 ^ uVar19 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x3d8) = uVar17;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       uVar17 ^ uVar25 | CONCAT44(uVar49,uVar5) ^ 0xe9e8c13b4ee5cd75;
  local_120 = (byte)uVar8;
  *(ulonglong *)(lVar3 + -0xa50) = (*puVar42 ^ uVar25) >> ((local_120 ^ 0x75) & 0x3f) ^ uVar47;
  uVar21 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  local_118 = (byte)(uVar4 >> 0x18);
  puVar37 = (ulonglong *)(lVar2 - (uVar38 ^ 0x3a97eeee));
  uVar26 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *puVar37 = (uVar17 ^ uVar25) << ((local_118 ^ 0x4b) & 0x3f) ^ uVar21;
  lVar2 = DAT_182671c40;
  *puVar29 = (uVar47 ^ *(ulonglong *)(DAT_182671c40 + -0xa50) |
             *(ulonglong *)(DAT_182671c40 + -0x30) ^ uVar21) ^ uVar26;
  uVar17 = *(ulonglong *)(lVar2 + -0x408);
  uVar38 = *(ulonglong *)(lVar2 + -0xc18);
  uVar43 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *puVar32 = (*(ulonglong *)(lVar2 + -0xb18) ^ uVar35) - (*(ulonglong *)(lVar2 + -0xa78) ^ uVar26) ^
             uVar43;
  uVar7 = DAT_182671cec;
  uVar47 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar40 = uVar17 ^ uVar38 ^ uVar47 ^ uVar36 ^ uVar40;
  *(ulonglong *)(lVar2 + -0x960) = uVar40;
  bVar14 = (byte)uVar5;
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xb3d72bdf)) =
       (uVar40 ^ uVar47) >> ((bVar14 ^ 0x62) & 0x3f) ^ uVar38;
  *(int *)(lVar2 + -0x5d4) = *(int *)(lVar2 + -0x9dc) << ((bVar46 ^ 0x92) & 0x1f);
  uVar7 = DAT_182671cc0;
  uVar17 = (*(ulonglong *)(lVar2 + -0x960) ^ uVar47) << ((bVar14 ^ 0x5e) & 0x3f);
  *(ulonglong *)(lVar2 + -0x920) = uVar17 ^ CONCAT44(DAT_182671e14,DAT_182671e14);
  uVar11 = DAT_182671e30;
  uVar48 = CONCAT44(uVar7,uVar7);
  uVar17 = *(ulonglong *)(lVar2 + -0xc90) ^ uVar38 | uVar17;
  *(ulonglong *)(lVar2 + -0x3d8) =
       CONCAT44(DAT_182671e58,DAT_182671e58) ^
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x2e8) ^ uVar48);
  uVar7 = DAT_182671ccc;
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar38 = uVar17 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x30) = uVar38;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar19 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *(ulonglong *)(lVar2 + -0xa50) = (*(ulonglong *)(lVar2 + -0xc18) ^ uVar36) - uVar17 ^ uVar28;
  uVar7 = DAT_182671f98;
  uVar17 = uVar38 ^ uVar19 ^ uVar22 ^ uVar43 ^ *puVar32;
  *(ulonglong *)(lVar2 + -0xb18) = uVar17;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x98fcb545)) =
       (uVar17 ^ uVar19) >> ((local_120 ^ 0x61) & 0x3f) ^ uVar24;
  puVar42 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0xfef078a5));
  *(ulonglong *)(lVar2 - (uVar13 ^ 0x4db1f5f8)) =
       (CONCAT44(uVar16,uVar49) ^ 0x1677f1b6c99b70df) - *puVar42;
  uVar17 = *puVar32;
  uVar19 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar49 ^ 0x10b8839a)) ^ uVar19) << 0x12;
  uVar50 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar2 + -0xc90) = uVar19 ^ CONCAT44(DAT_182671d14,DAT_182671d14);
  uVar11 = DAT_182671f78;
  uVar7 = DAT_182671c78;
  uVar19 = *(ulonglong *)(lVar2 + -0x408) ^ uVar24 | uVar19;
  *(ulonglong *)(lVar2 + -0x920) = uVar19 ^ uVar50;
  uVar20 = CONCAT44(uVar11,uVar11);
  uVar38 = CONCAT44(uVar7,DAT_182671c50);
  *(ulonglong *)(lVar2 + -0xc18) = (uVar43 ^ uVar17) - uVar19 ^ uVar20;
  *puVar37 = (uVar38 ^ 0x93d4d8203006e488) + 0x7fe4bbc443c1cc82;
  *puVar42 = uVar31 ^ *(ulonglong *)(lVar2 + -0xa78) ^ *(ulonglong *)(lVar2 + -0xa50) ^ uVar28 ^
             uVar26;
  uVar4 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  uVar43 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar2 + -0x960) =
       ((ulonglong)DAT_182671c98 << 0x14 | (ulonglong)(DAT_182671c98 >> 0xc)) ^
       *(ulonglong *)(lVar2 + -0x3d8) >> 0xc ^ uVar43;
  uVar17 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x38e01261)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c58 ^ 0x10b88b5a)) ^ uVar31) <<
       (((byte)uVar4 ^ 0x33) & 0x3f) ^ uVar45;
  uVar11 = DAT_182671ea4;
  uVar4 = DAT_182671c48;
  uVar38 = CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar40 = *(ulonglong *)(lVar3 - (uVar17 ^ 0x4b358585)) ^ uVar43 |
           uVar45 ^ *(ulonglong *)(lVar3 + -0xb18);
  *(ulonglong *)(lVar3 + -0x408) = uVar40 ^ uVar38;
  uVar19 = CONCAT44(uVar11,uVar11);
  uVar17 = (ulonglong)DAT_182671c7c;
  uVar40 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x22af183a)) ^ uVar28) - uVar40;
  uVar36 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar26 = uVar40 ^ uVar19;
  *(ulonglong *)(lVar3 + -0xc90) = uVar26;
  uVar5 = DAT_182671c74;
  uVar17 = *(ulonglong *)(lVar3 - (uVar17 ^ 0xfef07f75)) ^ uVar36 ^ uVar38 ^
           *(ulonglong *)(lVar3 + -0xc18) ^ uVar20;
  *puVar32 = uVar17;
  uVar6 = DAT_182671c68;
  uVar38 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar3 + -0x30) = (uVar17 ^ uVar36) >> ((bVar14 ^ 0x6d) & 0x3f) ^ uVar43;
  *(uint *)(lVar3 + -0xae4) = (uVar6 ^ 0xdafb2573) * *(int *)(lVar3 + -0x644);
  uVar11 = DAT_182671f44;
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xeede38bf)) ^ uVar36) << 0x27 ^ uVar34;
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(uVar11,uVar11);
  uVar34 = *(ulonglong *)(lVar3 - (uVar13 ^ 0x4db1fca8)) ^ uVar43 |
           *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0xef5997a6)) ^ uVar34;
  uVar17 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = uVar34 ^ uVar36;
  uVar31 = (*puVar27 ^ uVar20) - (uVar17 ^ *(ulonglong *)(lVar2 + -0x5e8));
  uVar17 = (ulonglong)DAT_182671c54;
  uVar20 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *(ulonglong *)(lVar2 + -0x960) = uVar31 ^ uVar48;
  uVar11 = DAT_182671e78;
  uVar5 = DAT_182671c60;
  uVar31 = uVar31 - (*(ulonglong *)(lVar2 - (uVar17 ^ 0x8a715f30)) ^ uVar36);
  uVar28 = CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(lVar2 + -0xb18) = uVar31 ^ uVar20;
  uVar17 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x17ae753e)) ^ CONCAT44(uVar11,uVar11)) +
           (*(ulonglong *)(lVar2 + -0xb20) ^ uVar18);
  *(ulonglong *)(lVar2 + -0xa50) = uVar17 ^ uVar28;
  uVar11 = DAT_182671d64;
  *(ulonglong *)(lVar2 + -0x408) = uVar31 | uVar40;
  uVar43 = CONCAT44(uVar11,uVar11);
  *puVar32 = uVar34 - uVar17 ^ uVar43;
  uVar12 = DAT_182671dfc;
  uVar11 = DAT_182671d1c;
  uVar17 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar18 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar50 = *(ulonglong *)(lVar2 + -0x920) ^ uVar17 ^ uVar19 ^ uVar26 ^ uVar50;
  *(ulonglong *)(lVar2 + -0xa78) = uVar50;
  uVar26 = (uVar50 ^ uVar17) >> (((byte)uVar10 ^ 0xff) & 0x3f);
  *(ulonglong *)(lVar2 + -0x30) = uVar26 ^ uVar18;
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 + -0xa78) ^ uVar17) >> (((byte)*puVar29 ^ (byte)uVar11) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar17 = (*puVar29 ^ uVar17) << 0x1f;
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar17 ^ uVar28;
  uVar5 = DAT_182671c7c;
  uVar19 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar2 + -0x4b8) = (uVar26 | uVar17) ^ uVar33;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0x4b3588ed)) =
       uVar40 - (*(ulonglong *)(lVar2 - (uVar19 ^ 0xfef070a5)) ^ uVar39) ^ uVar24;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar2 + -0x4b8);
  *(uint *)(lVar2 + -0x5d4) = (DAT_182671c80 ^ 0xfd3e82e3) & *(uint *)(lVar2 + 0x28);
  uVar19 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *(ulonglong *)(lVar2 + -0x3d8) = (*(ulonglong *)(lVar2 + -0x408) ^ uVar24) - uVar33 ^ uVar19;
  uVar11 = DAT_182671d80;
  uVar18 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar17 = (CONCAT44(uVar4,DAT_182671c94) ^ 0xdd50ed95dc50ec91) -
           (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar47);
  *(ulonglong *)(lVar2 + -0x920) = uVar17 ^ uVar18;
  uVar17 = uVar17 + uVar33 ^ uVar22;
  *(ulonglong *)(lVar2 + -0xc18) = uVar17;
  uVar26 = CONCAT44(uVar11,uVar11);
  *puVar41 = uVar17 ^ uVar26 ^ uVar20 ^ *(ulonglong *)(lVar2 + -0xb18) ^ uVar22;
  uVar9 = DAT_182671c84;
  uVar31 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c48 ^ 0x22af125a)) =
       (*(ulonglong *)(lVar2 + -0xa78) ^ uVar26) >> (((byte)uVar5 ^ 0x78) & 0x3f) ^ uVar31;
  uVar4 = DAT_182671c4c;
  uVar17 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar2 + -0xc90) =
       (*(ulonglong *)(lVar2 + -0xa78) ^ uVar26) << (((byte)uVar9 ^ 0x42) & 0x3f) ^ uVar17;
  uVar11 = DAT_182671ca0;
  uVar5 = DAT_182671c50;
  uVar34 = (ulonglong)DAT_182671c54;
  uVar22 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0xbd8) =
       CONCAT44(uVar10,uVar6) ^ 0xbecb4a93d2607bb3 | *(ulonglong *)(lVar2 + -0x920) ^ uVar18;
  uVar6 = DAT_182671edc;
  uVar18 = CONCAT44(uVar11,uVar11);
  uVar47 = (ulonglong)DAT_182671edc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x9e3feaff)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c6c ^ 0x15310a9f)) ^ uVar17 |
       *(ulonglong *)(lVar2 - (uVar30 ^ 0xf6706b44)) ^ uVar31) ^ uVar18;
  uVar11 = DAT_182671eb4;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (CONCAT44(uVar49,uVar5) ^ 0xe69a8ab65dfb688a) >> (((byte)DAT_182671c78 ^ 0xf5) & 0x3f);
  uVar40 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 - (uVar34 ^ 0x8a7157f0)) ^ uVar20) -
       (*(ulonglong *)(lVar2 + -0x408) ^ uVar18) ^ uVar40;
  uVar33 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0xa78) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x17ae78e6)) ^ uVar28) >>
       ((local_118 ^ 0x43) & 0x3f);
  uVar5 = DAT_182671c74;
  *(ulonglong *)(lVar2 + -0x920) =
       uVar33 ^ *(ulonglong *)(lVar2 + -0x3d8) ^ uVar19 ^ uVar43 ^ *puVar32;
  uVar17 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xef599606)) =
       (CONCAT44(uVar7,uVar4) ^ 0x58b3484c69f67118) -
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0xa6f5f549)) ^ uVar33);
  uVar6 = DAT_182671c84;
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  uVar22 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (*(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0x22af1b4a)) >> 0x20 ^ uVar47) >> 5 ^ uVar28;
  lVar3 = DAT_182671c40;
  uVar17 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x38e01059));
  *(uint *)(DAT_182671c40 + -0x9dc) = (DAT_182671c7c ^ 0xdd89ba0b) << (((byte)uVar6 ^ 0x72) & 0x1f);
  uVar7 = DAT_182671f34;
  *(ulonglong *)(lVar3 + -0x30) = (uVar17 ^ uVar33) << (((byte)uVar5 ^ 0xc5) & 0x3f) ^ uVar22;
  uVar5 = DAT_182671c88;
  lVar2 = DAT_182671c40;
  uVar17 = CONCAT44(uVar7,uVar7);
  uVar47 = (ulonglong)DAT_182671c88;
  bVar14 = (byte)DAT_182671c88;
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xeede3e2f)) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0xf67067e4)) ^ uVar28 |
       *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x31160e37)) ^ uVar22) ^ uVar17;
  uVar38 = uVar17 ^ uVar40 ^ *(ulonglong *)(lVar2 + -0x4b8) ^ *(ulonglong *)(lVar2 + -0xc18);
  *(ulonglong *)(lVar2 + -0xb18) =
       (*(ulonglong *)(lVar2 + -0x3d8) ^ uVar19) - (uVar17 ^ *(ulonglong *)(lVar2 + -0x4b8)) ^
       uVar20;
  *(ulonglong *)(lVar2 + -0xa78) = uVar38 ^ uVar35;
  *(ulonglong *)(lVar2 + -0x960) =
       CONCAT44(uVar8,uVar5) ^ 0x6de8bea583b8b812 | *(ulonglong *)(lVar2 + -0x408) ^ uVar18;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xf670695c)) = uVar38 >> ((bVar14 ^ 0x10) & 0x3f) ^ uVar21;
  uVar38 = (*(ulonglong *)(lVar2 + -0xa78) ^ uVar35) << ((bVar46 ^ 0xb1) & 0x3f);
  uVar17 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar38 ^ uVar44;
  uVar38 = *(ulonglong *)(lVar2 - (uVar17 ^ 0x15310427)) ^ uVar21 | uVar38;
  *(ulonglong *)(lVar2 + -0x920) = uVar38 ^ uVar24;
  uVar30 = *(ulonglong *)(lVar2 + -0x408) ^ uVar18 ^ uVar20 ^ *(ulonglong *)(lVar2 + -0xb18);
  *(ulonglong *)(lVar2 + -0x30) = (uVar40 ^ *(ulonglong *)(lVar2 + -0xc18)) - uVar38 ^ uVar26;
  *(ulonglong *)(lVar2 + -0xc90) = uVar30 ^ uVar25;
  uVar7 = DAT_182671ee0;
  *(uint *)(lVar2 + -0x644) = *(uint *)(lVar2 - (uVar34 ^ 0x8a715a28)) & *(uint *)(lVar2 + 0x28);
  bVar14 = (byte)DAT_182671c70;
  uVar19 = CONCAT44(uVar7,uVar7);
  *(uint *)(lVar2 + -0xae4) = (DAT_182671c58 ^ 0x578820d1) + (uVar4 ^ 0xc1146881);
  uVar7 = DAT_182671f28;
  *(ulonglong *)(lVar2 + -0x3d8) = uVar30 >> ((bVar14 ^ 0xcd) & 0x3f) ^ uVar19;
  uVar38 = (ulonglong)DAT_182671c60;
  uVar17 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar47 ^ 0x31160abf)) = uVar30 << 0x18 ^ uVar17;
  uVar11 = DAT_182671fa8;
  uVar17 = uVar19 ^ *(ulonglong *)(lVar2 + -0x3d8) | *(ulonglong *)(lVar2 + -0x4b8) ^ uVar17;
  uVar30 = uVar17 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x960) = uVar30;
  uVar7 = DAT_182671cbc;
  *(ulonglong *)(lVar2 + -0xa78) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xb18)) - uVar17 ^ CONCAT44(uVar11,uVar11);
  uVar17 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x17ae7a5e)) = uVar30 ^ uVar17 ^ uVar31 ^ uVar26 ^ *puVar37;
  *puVar32 = (*(ulonglong *)(lVar2 - (uVar13 ^ 0x4db1f740)) ^ uVar17) >> ((local_120 ^ 0x7b) & 0x3f)
             ^ uVar36;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar49) * 4) = uVar15;
  return;
}



############ FUN_ 180f92ec0 size=5451 ############

void FUN_180f92ec0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  ulonglong *puVar18;
  byte bVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar56;
  uint uVar57;
  ulonglong uVar58;
  uint uVar59;
  ulonglong *puVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  ulonglong uVar64;
  byte local_res18;
  byte local_158;
  byte local_140;
  byte local_130;
  
  uVar13 = DAT_182671c90;
  uVar12 = DAT_182671c7c;
  uVar11 = DAT_182671c74;
  uVar10 = DAT_182671c64;
  uVar9 = DAT_182671c60;
  uVar8 = DAT_182671c5c;
  uVar7 = DAT_182671c54;
  uVar6 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar62 = (ulonglong)DAT_182671c4c;
  uVar43 = (ulonglong)DAT_182671c90;
  DAT_182671c48 = DAT_182671c94 & DAT_182671c64;
  uVar44 = (ulonglong)DAT_182671c68;
  uVar63 = (ulonglong)DAT_182671c5c;
  uVar31 = (ulonglong)DAT_182671c74;
  uVar21 = (ulonglong)DAT_182671c60;
  uVar59 = DAT_182671c5c ^ DAT_182671c7c;
  uVar55 = DAT_182671c54 - DAT_182671c74;
  uVar25 = DAT_182671c68 + DAT_182671c90 ^ 0x2fb52cef;
  uVar57 = DAT_182671c4c - DAT_182671c60;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_18267224c);
  uVar34 = *(uint *)(&DAT_182613218 + DAT_18267224c) ^ DAT_182671c4c;
  uVar35 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  bVar19 = (byte)DAT_182671c68;
  uVar45 = CONCAT44(DAT_182671de4,DAT_182671de4);
  DAT_182671c58 = uVar25;
  DAT_182671c70 = uVar59;
  DAT_182671c78 = uVar57;
  DAT_182671c8c = uVar55;
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (*(ulonglong *)(DAT_182671c40 + -0xa78) ^ uVar35) >> ((bVar19 ^ 0x7e) & 0x3f) ^ uVar45;
  puVar36 = (ulonglong *)(lVar2 - (uVar43 ^ 0xf37d3dcd));
  uVar43 = (ulonglong)uVar25;
  uVar27 = CONCAT44(DAT_182671e14,DAT_182671e14);
  bVar20 = (byte)uVar13;
  uVar38 = (uVar35 ^ *puVar36) << ((bVar20 ^ 0xae) & 0x3f);
  uVar22 = (ulonglong)uVar7;
  uVar50 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  puVar18 = (ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xc067b266));
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar38 ^ uVar27;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar55 ^ 0xb2266510)) =
       (*puVar18 ^ uVar45 | uVar38) ^ uVar50;
  lVar3 = DAT_182671c40;
  uVar51 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar56 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xa1a7a54e)) =
       (uVar51 ^ *(ulonglong *)(lVar2 + -0xc18)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xfeffd42f)) ^ uVar50) ^ uVar56;
  uVar14 = DAT_182671eec;
  uVar5 = DAT_182671c48;
  lVar4 = DAT_182671c40;
  uVar46 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar29 = CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar38 = (ulonglong)DAT_182671c48;
  uVar39 = *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xe4142d6)) ^ uVar29 ^ uVar46 ^ uVar50 ^
           *(ulonglong *)(DAT_182671c40 + -0xa50);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar39;
  uVar16 = DAT_182671f34;
  uVar25 = DAT_182671c94;
  uVar33 = CONCAT44(uVar14,uVar14);
  local_res18 = (byte)uVar5;
  uVar37 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x156dd944)) ^ uVar46) >>
       ((local_res18 ^ 0x7d) & 0x3f) ^ uVar33;
  uVar15 = DAT_182671cd8;
  uVar45 = CONCAT44(uVar16,uVar16);
  uVar23 = (ulonglong)uVar59;
  *(ulonglong *)(lVar3 + -0x228) = (uVar46 ^ uVar39) << (((byte)uVar8 ^ 0x90) & 0x3f) ^ uVar45;
  *(uint *)(lVar3 + -0x5d4) = uVar6 ^ 0xfeb9f7db | 0xca98f75b;
  uVar40 = CONCAT44(uVar15,uVar15);
  uVar49 = (ulonglong)uVar57;
  uVar45 = *(ulonglong *)(lVar3 - (uVar23 ^ 0x4b358ecd)) ^ uVar45 | uVar33 ^ *puVar36;
  *(ulonglong *)(lVar3 + -0xc90) = uVar45 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar5,uVar57) ^ 0xc3f3657c2ef7c894) + 0x1a70426d225fc0c3;
  uVar14 = DAT_182671d44;
  uVar64 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar45 = (uVar29 ^ *(ulonglong *)(lVar3 + -0x3d8)) - uVar45;
  uVar46 = uVar45 ^ uVar64;
  *(ulonglong *)(lVar3 + -0xa50) = uVar46;
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar29 = CONCAT44(DAT_182671db0,DAT_182671db0);
  uVar41 = uVar29 ^ uVar30 ^ uVar56 ^ *(ulonglong *)(lVar3 + -0xbd8) ^
           *(ulonglong *)(lVar3 + -0x408);
  local_140 = (byte)uVar12;
  *(ulonglong *)(lVar3 + -0xb18) = uVar41;
  uVar17 = DAT_182671fa4;
  uVar39 = (*(ulonglong *)(lVar3 - (uVar43 ^ 0x2f4e63e7)) ^ uVar30) >> ((local_140 ^ 0x74) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa78) = uVar39 ^ uVar51;
  lVar2 = DAT_182671c40;
  uVar51 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar39 = (uVar41 ^ uVar30) << (((byte)uVar57 ^ 0xa9) & 0x3f) | uVar39;
  uVar41 = uVar39 ^ uVar51;
  uVar52 = CONCAT44(DAT_182671e10,DAT_182671e10);
  puVar18 = (ulonglong *)(DAT_182671c40 + -0x408);
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar41;
  *(ulonglong *)(lVar2 + -0x3d8) = (uVar56 ^ *puVar18) - uVar39 ^ uVar52;
  uVar46 = uVar51 ^ uVar64 ^ uVar50 ^ uVar41 ^ uVar46;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar46;
  lVar2 = DAT_182671c40;
  uVar41 = (uVar50 ^ uVar46) >> (((byte)uVar55 ^ 0x74) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar41 ^ uVar27;
  uVar39 = (uVar50 ^ uVar46) << ((local_res18 ^ 0x66) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa78) = uVar39 ^ uVar33;
  uVar14 = DAT_182671e78;
  *(ulonglong *)(lVar2 + -0x228) =
       CONCAT44(uVar55,uVar6) ^ 0xc836b18819d9acfc | CONCAT44(uVar9,uVar6) ^ 0xedf4cdc2e9d2a1c2;
  lVar2 = DAT_182671c40;
  uVar47 = CONCAT44(uVar14,uVar14);
  uVar39 = uVar39 | uVar41;
  uVar61 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar39 ^ uVar47;
  puVar28 = (ulonglong *)(lVar2 - (uVar44 ^ 0xd7e0043));
  *puVar28 = uVar45 - uVar39 ^ uVar61;
  uVar16 = DAT_182671f38;
  uVar46 = *(ulonglong *)(lVar2 - (uVar31 ^ 0xe414d9e)) ^ uVar52 ^ uVar30 ^ uVar40 ^
           *(ulonglong *)(lVar2 + -0x3d8);
  *(ulonglong *)(lVar2 + -0x228) = uVar46;
  uVar14 = DAT_182671dd8;
  uVar45 = (uVar46 ^ uVar30) >> (((byte)uVar25 ^ 0x53) & 0x3f);
  uVar48 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar45 ^ uVar48;
  uVar39 = CONCAT44(uVar14,uVar14);
  local_158 = (byte)uVar10;
  uVar30 = (uVar30 ^ uVar46) << ((local_158 ^ 0x78) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar30 ^ uVar39;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       (CONCAT44(uVar59,uVar10) ^ 0x14aa09f6ce83ac05) >> ((local_140 ^ 0x45) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar46 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar45 = uVar45 | uVar30;
  puVar42 = (ulonglong *)(DAT_182671c40 - (uVar62 ^ 0x9e3fed2f));
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar45 ^ uVar46;
  uVar56 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar2 - (uVar49 ^ 0xfc984f99)) = (uVar52 ^ *puVar42) - uVar45 ^ uVar56;
  uVar51 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar2 + -0xa50) =
       uVar51 ^ uVar46 ^ uVar61 ^ *(ulonglong *)(lVar2 + -0xc90) ^ *(ulonglong *)(lVar2 + -0xc18);
  *(ulonglong *)(lVar2 - (uVar49 ^ 0xfc9847c9)) =
       *(ulonglong *)(lVar2 - (uVar22 ^ 0xc067bb96)) ^ uVar50 | 0xe7471e3a325bc08f;
  uVar16 = DAT_182671db4;
  uVar58 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  *(ulonglong *)(lVar2 + -0xb18) =
       (uVar51 ^ *(ulonglong *)(lVar2 + -0xa50)) >> ((bVar20 ^ 0xbb) & 0x3f) ^ uVar58;
  uVar14 = DAT_182671c98;
  uVar46 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0x3d8) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x22af183a)) ^ uVar51) << 0x32 ^ uVar46;
  uVar16 = DAT_182671d0c;
  lVar2 = DAT_182671c40;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar30 = *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xe414a16)) ^ uVar58 |
           *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0xfc984e69)) ^ uVar46;
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar30 ^ uVar41;
  bVar20 = (byte)DAT_182671c94;
  uVar53 = CONCAT44(uVar16,uVar16);
  uVar45 = (uVar61 ^ *(ulonglong *)(lVar2 + -0xc18)) - (*(ulonglong *)(lVar2 + -0xd88) ^ uVar35);
  uVar25 = DAT_182671c90 ^ 0x41ee0720;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar45 ^ uVar53;
  *(uint *)(lVar2 + -0x76c) = uVar25 >> ((bVar20 ^ 0x71) & 0x1f);
  *(ulonglong *)(lVar2 + -0xa78) = uVar45 - uVar30 ^ uVar58;
  uVar14 = DAT_182671d80;
  uVar45 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0x4b358e55)) ^ CONCAT44(DAT_182671e64,DAT_182671e64)) +
           (*(ulonglong *)(lVar2 + -0x30) ^ uVar41);
  *(ulonglong *)(lVar2 + -0xa50) = uVar45 ^ CONCAT44(uVar17,uVar17);
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xb18) = uVar30 - uVar45 ^ uVar31;
  uVar45 = (ulonglong)DAT_182671d7c;
  uVar52 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar25 = DAT_182671d7c >> 0x10;
  uVar30 = uVar52 ^ uVar56 ^ uVar47 ^ *(ulonglong *)(lVar2 + -0x408) ^
           *(ulonglong *)(lVar2 + -0x228);
  *(ulonglong *)(lVar2 + -0x3d8) = uVar30;
  *(ulonglong *)(lVar2 + -0xc18) = ((ulonglong)uVar25 | uVar45 << 0x10) ^ uVar30 >> 0x10 ^ uVar39;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xa1a7aa9e)) = (uVar52 ^ uVar30) << 0x30 ^ uVar27;
  uVar52 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x23af1ffa)) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0xc18) | uVar27 ^ *(ulonglong *)(lVar2 + -0xbd8)) ^ uVar52;
  puVar60 = (ulonglong *)(lVar2 - (uVar44 ^ 0xd7e0e73));
  puVar24 = (ulonglong *)(lVar2 - (uVar44 ^ 0xd7e057b));
  uVar37 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar45 = (uVar56 ^ *puVar60) - (uVar35 ^ *puVar24);
  *(ulonglong *)(lVar2 + -0x408) = uVar45 ^ uVar37;
  uVar14 = DAT_182671cd0;
  *(ulonglong *)(lVar2 + -0x3d8) = uVar45 + 0x5d77c764665d6d47;
  uVar54 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0xc067b446)) ^ uVar37) -
       (*(ulonglong *)(lVar2 - (uVar63 ^ 0x5e585229)) ^ uVar52) ^ uVar54;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x22af19b2)) =
       (CONCAT44(uVar55,uVar55) ^ 0x4dd990bf4dd990b4) -
       (*(ulonglong *)(lVar2 - (uVar62 ^ 0x9e3feb1f)) ^ uVar29) ^ uVar51;
  uVar14 = DAT_182671ca4;
  uVar25 = DAT_182671c80;
  uVar27 = (*(ulonglong *)(lVar2 + -0xc90) ^ uVar52) + (uVar51 ^ *(ulonglong *)(lVar2 + -0xbd8)) ^
           uVar58 ^ uVar47 ^ *(ulonglong *)(lVar2 + -0xa78);
  uVar49 = (ulonglong)DAT_182671c80;
  uVar30 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar45 = (uVar47 ^ uVar27) << ((local_140 ^ 0x7c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x408) = uVar45 ^ uVar30;
  uVar62 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x2f4e646f)) =
       (uVar45 | (uVar47 ^ uVar27) >> ((local_res18 ^ 0x4a) & 0x3f)) ^ uVar62;
  *(ulonglong *)(lVar2 + -0xbd8) = *(ulonglong *)(lVar2 + -0x408) ^ uVar30;
  uVar14 = DAT_182671f58;
  *(ulonglong *)(lVar2 + -0x920) =
       (uVar58 ^ *(ulonglong *)(lVar2 + -0xa78)) - (*(ulonglong *)(lVar2 + -0xc90) ^ uVar62) ^
       uVar58;
  uVar59 = DAT_182671c84;
  uVar26 = uVar25 - DAT_182671c84;
  uVar56 = CONCAT44(uVar14,uVar14);
  uVar27 = (ulonglong)DAT_182671c84;
  uVar45 = uVar31 ^ *(ulonglong *)(lVar2 + -0xc18) ^ uVar56 ^ uVar54 ^
           *(ulonglong *)(lVar2 + -0xb18);
  DAT_182671c50 = uVar26;
  *(ulonglong *)(lVar2 + -0x228) = uVar45;
  *(ulonglong *)(lVar2 + -0x3d8) = (uVar45 ^ uVar56) >> (((byte)uVar25 ^ 0x97) & 0x3f) ^ uVar50;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x2de39c0c)) =
       (uVar45 ^ uVar56) << (((byte)uVar59 ^ 0xf4) & 0x3f) ^ uVar48;
  uVar45 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar2 + -0x408) =
       (uVar50 ^ *(ulonglong *)(DAT_182671c40 + -0x3d8) | uVar48 ^ *(ulonglong *)(lVar2 + -0xbd8)) ^
       uVar45;
  puVar32 = (ulonglong *)(lVar2 - (uVar49 ^ 0xfff7fbbf));
  uVar31 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar2 + -0xa78) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0xd2146bfb)) ^ uVar54) - (uVar45 ^ *puVar32) ^
       uVar31;
  *(ulonglong *)(lVar2 - (uVar49 ^ 0xfff7f4af)) =
       (CONCAT44(uVar26,uVar59) ^ 0x2b1f0af51e66fb92) >> (((byte)uVar6 ^ 0xfb) & 0x3f);
  lVar2 = DAT_182671c40;
  puVar18 = (ulonglong *)(DAT_182671c40 + -0x920);
  puVar36 = (ulonglong *)(DAT_182671c40 + -0x408);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       0x12e6ef60634d8898 - (CONCAT44(uVar26,uVar25) ^ 0x62327cf64f1c6ea4);
  uVar14 = DAT_182671dd4;
  uVar45 = uVar58 ^ uVar61 ^ *puVar18 ^ *puVar36 ^ uVar45;
  *(ulonglong *)(lVar2 + -0x228) = uVar45;
  lVar3 = DAT_182671c40;
  uVar27 = (uVar61 ^ *(ulonglong *)(lVar2 + -0x228)) >> (((byte)uVar57 ^ 0x8b) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar27 ^ CONCAT44(uVar14,uVar14);
  uVar45 = (uVar61 ^ uVar45) << ((local_158 ^ 0x79) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc18) = uVar45 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x408) = uVar27 << 0x2c;
  *(ulonglong *)(lVar3 + -0xb18) = (uVar27 | uVar45) ^ uVar29;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x3d8) =
       (uVar58 ^ *(ulonglong *)(lVar3 + -0x920)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0xd2146cfb)) ^ uVar29) ^ uVar53;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x2f4e6ad7)) =
       *(ulonglong *)(lVar3 + -0xa78) ^ uVar33 ^ *(ulonglong *)(lVar3 + -0xc90) ^ uVar31 ^ uVar62;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x4b3580fd)) =
       CONCAT44(uVar7,uVar59) ^ 0x2659cc638fa41e2a | uVar29 ^ *(ulonglong *)(lVar3 + -0xb18);
  uVar14 = DAT_182671e34;
  uVar43 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar27 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *puVar32 = (*(ulonglong *)(lVar2 - (uVar21 ^ 0xa1a7a36e)) ^ uVar33) >>
             ((local_res18 ^ 0x7c) & 0x3f) ^ uVar43;
  local_130 = (byte)uVar11;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar55 ^ 0xb2266d68)) ^ uVar33) <<
       ((local_130 ^ 0x24) & 0x3f) ^ uVar27;
  lVar3 = DAT_182671c40;
  *(undefined8 *)(lVar2 - (uVar63 ^ 0x5e585799)) = 0;
  uVar43 = *(ulonglong *)(lVar2 - (uVar23 ^ 0x4b3588ed)) ^ uVar43 |
           *(ulonglong *)(lVar2 + -0xbd8) ^ uVar27;
  *(ulonglong *)(lVar3 + -0xc90) = uVar43 ^ uVar46;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xc067bc56)) =
       (*(ulonglong *)(lVar3 + -0xa78) ^ uVar31) - uVar43 ^ uVar47;
  uVar45 = *(ulonglong *)(lVar2 - (uVar49 ^ 0xfff7f327)) ^ uVar53 ^ uVar46 ^ uVar48 ^ *puVar42;
  *(ulonglong *)(lVar2 + -0x228) = uVar45;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x920) =
       (CONCAT44(uVar13,uVar7) ^ 0x487ed071ac3a48e) >>
       ((*(byte *)(lVar2 + -0xbd8) ^ (byte)uVar14) & 0x3f);
  uVar43 = (uVar48 ^ uVar45) >> ((bVar19 ^ 0x75) & 0x3f);
  *(ulonglong *)(lVar3 + -0x408) = uVar43 ^ uVar29;
  uVar45 = (uVar48 ^ uVar45) << (((byte)uVar8 ^ 0xab) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar45 ^ CONCAT44(DAT_182671d68,DAT_182671d68);
  lVar2 = DAT_182671c40;
  uVar45 = uVar45 | uVar43;
  puVar36 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0x156dd984));
  puVar18 = (ulonglong *)(DAT_182671c40 + -0x3d8);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar45 ^ uVar62;
  *puVar36 = (uVar53 ^ *puVar18) - uVar45 ^ uVar37;
  uVar25 = DAT_182671c48 - DAT_182671c68;
  DAT_182671c6c = uVar25;
  *(ulonglong *)(lVar2 + -0x920) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x15310d17)) ^ uVar47 ^ uVar29 ^ *puVar28 ^
       uVar62;
  lVar3 = DAT_182671c40;
  *puVar60 = (*(ulonglong *)(lVar2 - (uVar38 ^ 0x22af1b4a)) ^ uVar62) >>
             ((local_res18 ^ 0x66) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xd7e0853)) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar37) << (((byte)uVar25 ^ 0xc) & 0x3f);
  puVar36 = (ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x15310c77));
  *(ulonglong *)(lVar3 + -0xa78) = (uVar62 ^ *puVar24) << 0x34 ^ uVar27;
  uVar43 = uVar40 ^ *(ulonglong *)(lVar3 + -0x228) | uVar27 ^ *puVar36;
  uVar45 = uVar43 ^ uVar51;
  *(ulonglong *)(lVar3 + -0x3d8) = uVar45;
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x22af1e72)) ^ uVar47) - uVar43 ^ uVar64;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       (uVar47 ^ *(ulonglong *)(DAT_182671c40 + -0xc18)) + 0x1fe2a8ee7cd540ee;
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x15310dd7)) ^ uVar51 ^ uVar39 ^ uVar37 ^ uVar45;
  lVar2 = DAT_182671c40;
  puVar18 = (ulonglong *)(DAT_182671c40 + -0x920);
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (CONCAT44(uVar5,uVar25) ^ 0x5b88ba1424685455) >>
       (((byte)uVar15 ^ *(byte *)(DAT_182671c40 + -0x228)) & 0x3f);
  uVar43 = (uVar39 ^ *puVar18) >> ((bVar19 ^ 0x42) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc18) = uVar43 ^ uVar46;
  uVar15 = DAT_182671e24;
  *(ulonglong *)(lVar2 + -0x228) =
       ((*(ulonglong *)(lVar2 - (uVar21 ^ 0xa1a7a866)) ^ uVar39) << ((bVar19 ^ 0x7c) & 0x3f) |
       uVar43) ^ uVar35;
  *puVar36 = *(ulonglong *)(lVar2 + -0x408) >> ((local_res18 ^ 0x5a) & 0x3f);
  uVar14 = DAT_182671e04;
  uVar45 = (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar37) -
           (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar2 + -0xb20));
  *(ulonglong *)(lVar2 + -0x920) = uVar45 ^ uVar54;
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x3d8) = uVar45 - (uVar35 ^ *(ulonglong *)(lVar2 + -0x228)) ^ uVar43;
  uVar25 = ~DAT_182671c80;
  *(ulonglong *)(lVar2 + -0xc18) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0x22af11b2)) ^ uVar43 |
       CONCAT44(uVar9,uVar10) ^ 0x93a95a666199106;
  DAT_182671c68 = uVar25 ^ 0xeed63adf;
  uVar43 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0xeede3e2f)) ^ uVar47) +
           (*(ulonglong *)(lVar2 + -0xd88) ^ uVar35);
  *(ulonglong *)(lVar2 + -0x408) = uVar43 ^ uVar41;
  *(ulonglong *)(lVar2 - (uVar49 ^ 0xfff7f5cf)) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x228)) - uVar43 ^ uVar52;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar57) * 4) = uVar34;
  return;
}



############ FUN_ 180fa79e0 size=4436 ############

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

void FUN_180fa79e0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  uint *puVar21;
  uint uVar22;
  ulonglong uVar23;
  uint *puVar24;
  uint *puVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  byte *pbVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  uint uVar38;
  uint uVar39;
  
  uVar18 = DAT_182671d2c;
  uVar35 = DAT_182671c90;
  uVar12 = DAT_182671c8c;
  uVar34 = DAT_182671c64;
  uVar26 = DAT_182671c60;
  lVar6 = DAT_182671c40;
  uVar9 = DAT_182671c74 & 7;
  uVar22 = ~DAT_182671c80;
  if (uVar9 < 4) {
    if (uVar9 < 2) {
      uVar29 = DAT_182671c68;
      if (uVar9 == 0) {
        uVar29 = DAT_182671c74;
      }
    }
    else {
      uVar29 = DAT_182671c6c;
      if (uVar9 < 3) {
        uVar29 = DAT_182671c48;
      }
    }
  }
  else if (uVar9 < 6) {
    uVar29 = DAT_182671c94;
    if (uVar9 < 5) {
      uVar29 = DAT_182671c58;
    }
  }
  else {
    uVar29 = DAT_182671c90;
    if (uVar9 < 7) {
      uVar29 = DAT_182671c7c;
    }
  }
  uVar39 = DAT_182671c8c | DAT_182671c88;
  uVar9 = DAT_182671c60 & 3;
  uVar20 = (ulonglong)DAT_182671c64;
  uVar32 = ~DAT_182671c50;
  if (uVar9 < 2) {
    uVar28 = DAT_182671c64;
    if (uVar9 == 0) {
      uVar28 = DAT_182671c60;
    }
  }
  else {
    uVar28 = DAT_182671c68;
    if (uVar9 < 3) {
      uVar28 = uVar22;
    }
  }
  uVar9 = *(uint *)(&DAT_182613218 + DAT_18267228c);
  uVar10 = *(uint *)(&DAT_182613220 + DAT_18267228c) ^ DAT_182671c68;
  puVar1 = (uint *)(DAT_182671c40 + -0x684);
  DAT_182671c54 = uVar29;
  DAT_182671c5c = uVar28;
  DAT_182671c70 = uVar22;
  DAT_182671c78 = uVar32;
  DAT_182671c84 = uVar39;
  *puVar1 = *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c60 ^ 0x100061c)) ^ DAT_182671d2c ^
            DAT_182671ef8;
  *(ulonglong *)(lVar6 + -0x30) =
       (CONCAT44(uVar28,uVar35) ^ 0xc74a668355cb19bd) -
       (CONCAT44(uVar34,DAT_182671c50) ^ 0x75d04566c09b5612);
  uVar37 = DAT_182671e0c;
  uVar14 = (ulonglong)DAT_182671ea0;
  *(uint *)(lVar6 - ((ulonglong)uVar32 ^ 0x87476e60)) =
       *(uint *)(lVar6 + -0x4ac) ^ DAT_182671e0c ^ DAT_182671ef8;
  bVar5 = (byte)DAT_182671ce8;
  pbVar30 = (byte *)((CONCAT44(uVar26,uVar22) ^ 0x1000000fefffbef) * 0x20 +
                     (CONCAT44(uVar12,uVar39) ^ 0x1000000172b4957) + *(longlong *)(lVar6 + -0x9a8));
  uVar11 = (ulonglong)uVar29;
  uVar13 = CONCAT44(uVar29,DAT_182671c88);
  *(ulonglong *)(lVar6 + -0x5a0) = (ulonglong)pbVar30 ^ uVar14;
  *(ulonglong *)(lVar6 + -0xa70) = *(longlong *)(lVar6 + -0x30) - (uVar13 ^ 0xfc54fba7bdede9a9);
  uVar27 = DAT_182671c58;
  bVar8 = *pbVar30 ^ bVar5 ^ (byte)uVar37;
  uVar13 = (ulonglong)DAT_182671c58;
  uVar39 = (bVar5 ^ bVar8) ^ DAT_182671efc;
  *(byte *)(lVar6 + -0x1c3) = bVar8;
  uVar19 = DAT_182671d24;
  lVar7 = DAT_182671c40;
  bVar5 = (byte)DAT_182671c94;
  *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0x1000ee4)) = uVar39;
  puVar2 = (uint *)(lVar6 + -0xae4);
  uVar33 = *puVar2 ^ DAT_182671efc;
  uVar37 = (uVar37 ^ *(uint *)(lVar6 + -0x6c0)) + (DAT_182671c6c ^ 0x63bdede1) ^ DAT_182671f5c;
  puVar3 = (uint *)(lVar6 + -0x670);
  uVar39 = uVar33 << ((bVar5 ^ 0xce) & 0x1f) ^ DAT_182671d90;
  *puVar3 = uVar39;
  uVar39 = uVar39 ^ DAT_182671d90;
  *(uint *)(lVar6 + -0x54) = uVar37;
  uVar38 = (uVar37 ^ DAT_182671f5c) - uVar39 ^ DAT_182671d18;
  uVar17 = DAT_182671c7c ^ 0xc6a6c8d6;
  *(uint *)(lVar6 + -0x634) = uVar38;
  uVar37 = DAT_182671c80;
  uVar39 = DAT_182671c4c;
  uVar36 = (ulonglong)DAT_182671c4c;
  uVar17 = uVar17 * uVar33 ^ DAT_182671d58;
  uVar14 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar7 + -0x9dc) =
       (*(uint *)(lVar7 - (uVar36 ^ 0x7f7f7934)) ^ uVar18) * (uVar38 ^ DAT_182671d18) ^ uVar19;
  *(uint *)(lVar7 - ((ulonglong)DAT_182671c48 ^ 0x71539c62)) = uVar17;
  uVar17 = DAT_182671f54;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar35 ^ 0x8b0871a1)) =
       -0x4a667835ff5565b4 - (CONCAT44(uVar34,DAT_182671c74) ^ 0x7e4c16a5f151335f);
  puVar4 = (uint *)(lVar7 + -0x76c);
  uVar34 = (*puVar4 ^ DAT_182671d58) + (uVar19 ^ *(uint *)(lVar7 + -0x9dc));
  *(uint *)(lVar7 + -0x1c8) = uVar34 ^ uVar17;
  uVar35 = uVar34 << (((byte)uVar32 ^ 0xad) & 0x1f) ^ DAT_182671f6c;
  *(uint *)(lVar7 + -0x644) = uVar35;
  uVar19 = DAT_182671dd4;
  uVar35 = uVar35 ^ DAT_182671f6c;
  puVar25 = (uint *)(lVar7 - (uVar14 ^ 0x10005d8));
  uVar14 = CONCAT44(DAT_182671c50,uVar37);
  *(uint *)(lVar7 + -0x94c) =
       (*puVar25 ^ uVar17) >> (((byte)DAT_182671c68 ^ 0x43) & 0x1f) ^ DAT_182671d74;
  uVar34 = DAT_182671c7c;
  *(ulonglong *)(lVar7 + -0x920) =
       (uVar14 ^ 0x6a6426125630e135) + (CONCAT44(DAT_182671c84,uVar27) ^ 0xbb26b9d8830e80a7);
  *(uint *)(lVar7 + -0x94) =
       (*(uint *)(lVar7 - ((ulonglong)uVar34 ^ 0xc6a6c186)) ^ DAT_182671d74 | uVar35) ^
       DAT_182671ea4;
  uVar35 = DAT_182671d40;
  uVar23 = (ulonglong)DAT_182671d40;
  uVar18 = (*(uint *)(lVar7 - ((ulonglong)DAT_182671c48 ^ 0x71539d8a)) ^ uVar18) +
           (*(uint *)(lVar7 + -0x5d4) ^ uVar19) ^ DAT_182671eb0;
  *(uint *)(lVar7 + -0x61c) = uVar18;
  *(uint *)(lVar7 - ((ulonglong)uVar34 ^ 0xc6a6cc66)) = uVar18 ^ uVar35 ^ DAT_182671eb0;
  uVar15 = CONCAT44(uVar39,DAT_182671c5c);
  uVar18 = *(uint *)(lVar7 + -0x94) ^ uVar19 ^ DAT_182671ea4;
  *(uint *)(lVar7 + -0x6c0) = uVar18;
  uVar16 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar7 + -0xb20) = *(ulonglong *)(lVar7 + -0x828) ^ uVar15 ^ 0xd57e8d07f0e61b91;
  uVar34 = DAT_182671c94;
  uVar14 = (ulonglong)DAT_182671c94;
  *(longlong *)(lVar7 + -0xa60) = *(longlong *)(lVar7 - (uVar16 ^ 0x1000920)) << 0x36;
  bVar5 = (byte)DAT_182671f64;
  uVar37 = DAT_182671eec;
  lVar6 = DAT_182671c40;
  uVar18 = uVar18 ^ DAT_182671ef4;
  uVar33 = DAT_182671c74 ^ 0x74c634d;
  *(uint *)(DAT_182671c40 + -0x54) =
       *(uint *)(lVar7 - ((ulonglong)uVar34 ^ 0x7ebcd373)) ^ DAT_182671eec ^ uVar35;
  uVar16 = (ulonglong)DAT_182671c88;
  *puVar3 = uVar18 ^ uVar19;
  uVar34 = DAT_182671c80;
  uVar31 = (ulonglong)DAT_182671cfc;
  *(ulonglong *)(lVar6 - (uVar16 ^ 0x172b483b)) =
       (CONCAT44(uVar12,uVar26) ^ 0x100000001000007) + *(longlong *)(lVar6 + -0x9a8) ^ uVar31;
  uVar12 = DAT_182671e80;
  uVar18 = DAT_182671c7c;
  uVar35 = DAT_182671c6c;
  uVar16 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar6 + -0x960) =
       CONCAT44(DAT_182671c7c,uVar34) ^ 0x4bffc22bf0fa0709 | *(ulonglong *)(lVar6 + -0x4b8);
  bVar8 = *(byte *)(*(ulonglong *)(lVar6 - (uVar16 ^ 0xfefffa9f)) ^ uVar31) ^ bVar5 ^
          (byte)DAT_182671e0c;
  *(byte *)(lVar6 + -0x1c3) = bVar8;
  *(uint *)(lVar6 - (uVar11 ^ 0xfffff9cb)) = (bVar8 ^ bVar5) ^ uVar12;
  *(longlong *)(lVar6 + -0x2b0) = *(longlong *)(lVar6 + -0x3d8) << 0x17;
  uVar19 = (uVar12 ^ *(uint *)(lVar6 + -0x634)) << (((byte)DAT_182671c68 ^ 0x41) & 0x1f) ^
           DAT_182671cd4;
  uVar17 = (*(uint *)(lVar6 - ((ulonglong)uVar35 ^ 0xfffff98f)) ^ DAT_182671ef4) + uVar33 ^
           DAT_182671da8;
  *(uint *)(lVar6 + -0x9dc) = uVar19;
  uVar19 = uVar19 ^ DAT_182671cd4;
  *puVar2 = uVar17;
  uVar39 = DAT_182671e14;
  uVar34 = *(uint *)(lVar6 + -0x634);
  uVar16 = (ulonglong)DAT_182671c8c;
  *puVar4 = (uVar17 ^ DAT_182671da8) - uVar19 ^ DAT_182671f50;
  lVar7 = DAT_182671c40;
  uVar19 = *(uint *)(lVar6 - (uVar16 ^ 0x100076c)) ^ DAT_182671f50;
  uVar17 = (uVar12 ^ uVar34) * 7 ^ DAT_182671f0c;
  *(uint *)(lVar6 + -0x644) = uVar17;
  uVar17 = uVar17 ^ DAT_182671f0c;
  *(uint *)(lVar6 + -0x1c8) = uVar19 * (*(uint *)(lVar6 + -0x54) ^ uVar37) ^ DAT_182671da0;
  uVar12 = DAT_182671c64;
  uVar34 = DAT_182671c48;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c90 ^ 0x8b087a89)) >>
       (((byte)DAT_182671c90 ^ 0x75) & 0x3f);
  uVar19 = DAT_182671f38;
  uVar17 = uVar17 + (*puVar25 ^ DAT_182671da0);
  *(uint *)(lVar7 + -0x94c) = uVar17 ^ DAT_182671f38;
  uVar17 = uVar17 << (((byte)uVar12 ^ 0xb2) & 0x1f);
  uVar16 = (ulonglong)DAT_182671c90;
  *puVar1 = uVar17 ^ uVar39;
  uVar12 = (*(uint *)(lVar7 - (uVar16 ^ 0x8b08781d)) ^ uVar19) >> 0x13 ^ DAT_182671e60;
  *(uint *)(lVar7 + -0x61c) = uVar12;
  *(uint *)(lVar7 - ((ulonglong)uVar34 ^ 0x71539b9a)) =
       (uVar17 | uVar12 ^ DAT_182671e60) ^ DAT_182671f88;
  uVar34 = (*(uint *)(lVar7 - (uVar36 ^ 0x7f7f7a64)) ^ DAT_182671dd4) +
           (*(uint *)(lVar7 + -0x54) ^ uVar37) ^ DAT_182671d60;
  *(uint *)(lVar7 + -0x4ac) = uVar34;
  uVar17 = DAT_182671eb4;
  uVar19 = DAT_182671e0c;
  uVar39 = DAT_182671cf8;
  uVar12 = *(uint *)(lVar7 + -0x94) ^ DAT_182671ecc ^ DAT_182671f88;
  uVar31 = (ulonglong)DAT_182671eb4;
  *(uint *)(lVar7 + -0x6c0) = uVar34 ^ DAT_182671f98 ^ DAT_182671d60;
  *(uint *)(lVar7 - ((ulonglong)DAT_182671c70 ^ 0xfefffd9f)) = uVar12;
  uVar34 = DAT_182671c50;
  lVar6 = DAT_182671c40;
  uVar16 = (ulonglong)DAT_182671c50;
  *(byte *)(lVar7 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar7 - ((ulonglong)uVar35 ^ 0xfffff3df)) ^ uVar31) ^ (byte)uVar19;
  uVar37 = DAT_182671d44;
  *puVar2 = *(uint *)(lVar7 - (uVar16 ^ 0x78b8919f)) ^ DAT_182671d44 ^ DAT_182671f98;
  *(uint *)(lVar6 + -0x9dc) =
       *(uint *)(lVar6 - ((ulonglong)DAT_182671c88 ^ 0x172b4f3b)) ^ DAT_182671f4c ^ DAT_182671ecc;
  bVar5 = (byte)DAT_182671d5c;
  lVar6 = DAT_182671c40;
  pbVar30 = (byte *)((CONCAT44(uVar28,uVar32) ^ 0x1000000874768a0) * 0x20 +
                     (CONCAT44(uVar29,uVar27) ^ 0xffffffff01000412) +
                    *(longlong *)(DAT_182671c40 + -0x9a8));
  *(ulonglong *)(DAT_182671c40 + -0xbc0) = (ulonglong)pbVar30 ^ (ulonglong)DAT_182671f48;
  uVar12 = DAT_182671c68;
  uVar31 = (ulonglong)DAT_182671c68;
  uVar16 = (ulonglong)DAT_182671c84;
  *(byte *)(lVar6 - ((ulonglong)uVar34 ^ 0x78b8969c)) = *pbVar30 ^ bVar5 ^ (byte)uVar19;
  *puVar4 = (bVar5 ^ *(byte *)(lVar6 + -0x1c3)) ^ uVar39;
  uVar27 = DAT_182671f74;
  uVar34 = DAT_182671ca4;
  *(uint *)(lVar6 - (uVar31 ^ 0x81808264)) =
       (*(uint *)(lVar6 - (uVar16 ^ 0x172b4097)) ^ DAT_182671f4c) + (DAT_182671c64 ^ 0xe8bbdda1) ^
       DAT_182671f74;
  uVar35 = DAT_182671ea8;
  uVar28 = DAT_182671de0;
  uVar16 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar6 + -0x1c8) = (*puVar4 ^ uVar39) << (((byte)uVar29 ^ 0xee) & 0x1f) ^ uVar34;
  uVar29 = (uVar27 ^ *(uint *)(lVar6 + -0x634)) -
           (*(uint *)(lVar6 - (uVar16 ^ 0x8b087099)) ^ uVar34);
  *(uint *)(lVar6 + -0x644) = uVar29 ^ uVar28;
  *(uint *)(lVar6 - ((ulonglong)DAT_182671c8c ^ 0x100094c)) =
       (*(uint *)(lVar6 - (uVar11 ^ 0xfffff51b)) ^ uVar37) * uVar29 ^ DAT_182671f3c;
  *(longlong *)(lVar6 + -0x380) =
       *(longlong *)(lVar6 - ((ulonglong)DAT_182671c7c ^ 0xc6a6cfaa)) -
       *(longlong *)(lVar6 - ((ulonglong)DAT_182671c80 ^ 0x10007c8));
  uVar29 = *(uint *)(lVar6 + -0x94c) ^ DAT_182671f3c;
  uVar39 = (*(uint *)(lVar6 - (uVar20 ^ 0x74f9c8d3)) ^ uVar39) * (DAT_182671c60 ^ 0x1000012) ^
           DAT_182671fa0;
  *puVar1 = uVar39;
  uVar29 = (uVar39 ^ DAT_182671fa0) + uVar29;
  *(uint *)(lVar6 + -0x61c) = uVar29 ^ uVar35;
  uVar35 = _DAT_182671cf0;
  uVar31 = CONCAT44(uVar26,DAT_182671c7c);
  uVar39 = _DAT_182671cf0 ^ DAT_182671e7c;
  *(uint *)(lVar6 + -0x54) = uVar29 * 0x2000 ^ DAT_182671ec0;
  uVar26 = uVar29 >> 0x13 ^ DAT_182671ef0;
  *(uint *)(lVar6 + -0x4ac) = (DAT_182671c94 ^ 0x7c36c13d) + 0x74740a08;
  uVar36 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar6 - ((ulonglong)DAT_182671c70 ^ 0xfefffb7b)) = uVar26;
  *(uint *)(lVar6 - (uVar14 ^ 0x7ebcd11f)) =
       (*(uint *)(lVar6 + -0x94) ^ DAT_182671ef0 | *(uint *)(lVar6 + -0x54) ^ DAT_182671ec0) ^
       DAT_182671f14;
  lVar7 = DAT_182671c40;
  uVar29 = DAT_182671fac ^ DAT_182671f14;
  uVar26 = *(uint *)(lVar6 + -0x6c0);
  uVar27 = (*(uint *)(lVar6 + -0x5d4) ^ DAT_182671dd4) + (*puVar2 ^ uVar37) ^ DAT_182671e34;
  *puVar3 = uVar27;
  uVar27 = uVar27 ^ DAT_182671e7c ^ DAT_182671e34;
  uVar16 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar6 + -0x634) = uVar29 ^ uVar26;
  *(uint *)(lVar6 + -0x9dc) = uVar27;
  *(uint *)(lVar6 - (uVar16 ^ 0x78b89697)) = uVar39 ^ uVar27;
  *(ulonglong *)(lVar6 + -0x7c0) =
       *(ulonglong *)(lVar6 + -0x7e8) >> ((byte)*(ulonglong *)(lVar6 + -0x7e8) & 0x3f);
  puVar21 = (uint *)(lVar6 - ((ulonglong)uVar32 ^ 0x87476e94));
  *(uint *)(lVar7 + -0x644) = DAT_182671ed8 ^ DAT_182671fac ^ *puVar21;
  pbVar30 = (byte *)((uVar31 ^ 0x1000000c6a6c8d7) + (uVar15 ^ 0x7f7f7fb001000000) * 0x20 +
                    *(longlong *)(lVar7 + -0x9a8));
  *(longlong *)(lVar7 + -0x110) = *(longlong *)(lVar7 + -0x380) - *(longlong *)(lVar7 + -0x760);
  *(ulonglong *)(lVar7 + -0x5a0) = (ulonglong)pbVar30 ^ uVar23;
  uVar26 = DAT_182671e00;
  bVar5 = (byte)DAT_182671d4c;
  lVar6 = DAT_182671c40;
  *(byte *)(lVar7 - (uVar11 ^ 0xfffffe3c)) = *pbVar30 ^ (byte)DAT_182671d4c ^ (byte)DAT_182671e0c;
  uVar29 = DAT_182671da4;
  uVar11 = (ulonglong)DAT_182671c74;
  puVar24 = (uint *)(lVar7 - (uVar36 ^ 0xfefffc83));
  uVar16 = (ulonglong)DAT_182671c88;
  *puVar24 = (bVar5 ^ *(byte *)(lVar7 + -0x1c3)) ^ DAT_182671da4;
  uVar31 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar6 + -0x94c) = (*(uint *)(lVar6 + -0x644) ^ DAT_182671ed8) + uVar33 ^ DAT_182671f68;
  *(uint *)(lVar6 - (uVar31 ^ 0x1000294)) =
       (*(uint *)(lVar6 - (uVar11 ^ 0x9b0e763f)) ^ uVar29) << 0x11 ^ uVar26;
  uVar32 = DAT_182671f08;
  lVar7 = DAT_182671c40;
  uVar39 = (*(uint *)(lVar6 + -0x94c) ^ DAT_182671f68) - (uVar26 ^ *puVar1) ^ DAT_182671f30;
  *(uint *)(DAT_182671c40 + -0x4ac) = uVar39;
  uVar26 = DAT_182671c58;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c84 ^ 0x172b4f57)) =
       (*(uint *)(lVar7 - (uVar16 ^ 0x172b4883)) ^ uVar35) * (uVar39 ^ DAT_182671f30) ^ uVar32;
  lVar6 = DAT_182671c40;
  puVar25 = (uint *)(DAT_182671c40 + -0x61c);
  uVar39 = (*puVar4 ^ uVar29) * 0x1d ^ DAT_182671d08;
  *(uint *)(DAT_182671c40 + -0x54) = uVar39;
  uVar29 = DAT_182671df0;
  uVar32 = (uVar39 ^ DAT_182671d08) + (uVar32 ^ *puVar25);
  *(uint *)(lVar6 + -0x94) = uVar32 ^ DAT_182671df0;
  uVar11 = (ulonglong)DAT_182671c48;
  *puVar2 = uVar32 << (((byte)uVar26 ^ 0xd) & 0x1f) ^ DAT_182671d94;
  uVar15 = (ulonglong)DAT_182671f40;
  uVar26 = DAT_182671c74 ^ 0xa2f117b9;
  uVar29 = (*(uint *)(lVar6 + -0x94) ^ uVar29) >> 0x13 ^ DAT_182671e74;
  *puVar3 = uVar29;
  *(uint *)(lVar6 + -0x6c0) =
       (*(uint *)(lVar6 - (uVar11 ^ 0x715391ea)) ^ DAT_182671d94 | uVar29 ^ DAT_182671e74) ^
       DAT_182671cb4;
  uVar11 = (ulonglong)DAT_182671c6c;
  *(uint *)(lVar6 - (uVar20 ^ 0x74f9c663)) = uVar26 >> (((byte)DAT_182671c58 ^ 9) & 0x1f);
  uVar26 = DAT_182671db8;
  *puVar21 = (*(uint *)(lVar6 - (uVar11 ^ 0xfffffa2b)) ^ DAT_182671dd4) +
             (*(uint *)(lVar6 - ((ulonglong)DAT_182671c84 ^ 0x172b4883)) ^ uVar35) ^ DAT_182671db8;
  *(uint *)(lVar6 + -0x644) = uVar26 ^ uVar17 ^ *(uint *)(lVar6 + -0x634);
  uVar26 = *(uint *)(lVar6 - (uVar16 ^ 0x172b4f8b)) ^ DAT_182671cb4 ^ DAT_182671d18;
  *(uint *)(lVar6 + -0x94c) = uVar26;
  uVar35 = uVar26 ^ DAT_182671d00 ^ DAT_182671d18;
  *(ulonglong *)(lVar6 + -0xa08) =
       *(ulonglong *)(lVar6 - (uVar20 ^ 0x74f9c737)) ^ *(ulonglong *)(lVar6 + -0x3d8);
  uVar26 = *(uint *)(lVar6 - (uVar14 ^ 0x7ebcd19b));
  *(uint *)(lVar6 + -0x4ac) = uVar35;
  *puVar1 = uVar26 ^ uVar28 ^ uVar17;
  uVar29 = DAT_182671f20;
  uVar35 = DAT_182671e24;
  bVar5 = (byte)DAT_182671ddc;
  pbVar30 = (byte *)(*(longlong *)(lVar6 - ((ulonglong)DAT_182671c90 ^ 0x8b0878f9)) +
                     (CONCAT44(uVar12,DAT_182671c8c) ^ 0x8180845001000008) +
                    (CONCAT44(uVar18,DAT_182671c5c) ^ 0xc6a6c8ca01000000) * 0x20);
  *(ulonglong *)(lVar6 + -0x5a0) = (ulonglong)pbVar30 ^ uVar15;
  uVar26 = DAT_182671c48;
  bVar8 = *pbVar30 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar6 + -0x1c3) = bVar8 ^ bVar5;
  *puVar4 = bVar8 ^ uVar35;
  bVar5 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x1000238)) =
       (CONCAT44(uVar18,uVar26) ^ 0x5d6bc154e2ca4da6) <<
       ((byte)*(undefined8 *)(lVar6 + -0xc38) & 0x3f);
  uVar26 = DAT_182671d48;
  uVar18 = (*(uint *)(lVar6 + -0x4ac) ^ DAT_182671d00) + (DAT_182671c58 ^ 0x9d42161e);
  *(uint *)(lVar6 + -0x61c) = uVar18 ^ uVar29;
  uVar12 = (uVar35 ^ *puVar24) << ((bVar5 ^ 0x11) & 0x1f);
  *(uint *)(lVar6 + -0x54) = uVar12 ^ uVar26;
  *(uint *)(lVar6 - (uVar13 ^ 0x1000494)) = uVar18 - uVar12 ^ DAT_182671d80;
  *puVar2 = (*(uint *)(lVar6 - ((ulonglong)DAT_182671c50 ^ 0x78b897cb)) ^ DAT_182671d80) *
            (uVar28 ^ *puVar1) ^ uVar34;
  *puVar3 = (*puVar4 ^ uVar35) * (DAT_182671c60 ^ 0x1000008) ^ DAT_182671cb8;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar10 * 4) = uVar9 ^ uVar22;
  return;
}



############ FUN_ 180f6e780 size=5396 ############

void FUN_180f6e780(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  ulonglong uVar20;
  longlong *plVar21;
  byte *pbVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  longlong lVar25;
  byte *pbVar26;
  byte bVar27;
  byte bVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong *puVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  byte bVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  
  uVar10 = DAT_182671ee0;
  uVar6 = DAT_182671ea8;
  uVar9 = DAT_182671c84;
  uVar8 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671c84;
  uVar31 = (ulonglong)DAT_182671c58;
  uVar20 = (ulonglong)DAT_182671c84;
  uVar43 = DAT_182671c84 | DAT_182671c58;
  uVar19 = *(uint *)(&DAT_182613210 + (uVar36 ^ 0x462ad9d1) + (longlong)DAT_1826721e4) ^
           DAT_182671c58;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826721e4);
  uVar23 = (ulonglong)DAT_182671ee0;
  DAT_182671c54 = uVar43;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x860) ^ (ulonglong)DAT_182671ef4) =
       *(byte *)(DAT_182671c40 + -0x53a) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671e54;
  plVar21 = (longlong *)(lVar2 - (uVar20 ^ 0x462adac9));
  puVar32 = (ulonglong *)(*plVar21 + 0x18 + (CONCAT44(uVar8,uVar8) ^ 0x7dffb9fb7dffb9fb) * 0x60);
  uVar45 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar2 + -0x610) = (ulonglong)puVar32 ^ CONCAT44(DAT_182671f64,DAT_182671f64);
  bVar27 = (byte)uVar9;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x462ad471)) =
       CONCAT44(uVar10,uVar10) ^ *puVar32 ^ uVar45;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 + -0xda8) >> 0x20 ^ uVar23) >> 8 ^ CONCAT44(uVar6,uVar6);
  lVar2 = DAT_182671c40;
  uVar29 = (ulonglong)uVar43;
  puVar33 = (ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x462adff1));
  *puVar33 = -0x40590dc81f353137 << ((bVar27 ^ 0xe4) & 0x3f);
  uVar13 = DAT_182671f00;
  bVar39 = (byte)uVar6;
  uVar20 = (ulonglong)DAT_182671de0;
  *(byte *)(lVar2 + -0x651) = bVar39 ^ (byte)DAT_182671f4c ^ *(byte *)(lVar2 + -0x110);
  pbVar22 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar43 ^ 0x7ffff18b)) +
                    (CONCAT44(uVar8,uVar9) ^ 0x7dffb9fb462ad9c4));
  *(ulonglong *)(lVar2 + -0x488) = (ulonglong)pbVar22 ^ uVar20;
  uVar5 = DAT_182671d10;
  *pbVar22 = *(byte *)(lVar2 - (uVar29 ^ 0x7fffffaa)) ^ (byte)DAT_182671f4c ^ (byte)DAT_182671f14;
  uVar7 = DAT_182671f38;
  uVar23 = CONCAT44(uVar5,uVar5);
  puVar34 = (ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x462adb31));
  *puVar34 = (CONCAT44(uVar8,uVar43) ^ 0x7dffb9fb7ffff9fb) * 0x60 +
             *(longlong *)(lVar2 + -0x310) + 0x18 ^ uVar23;
  uVar20 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xd88) =
       *(ulonglong *)(uVar23 ^ *(ulonglong *)(lVar2 + -0x2e8)) ^ uVar45 ^ uVar20;
  *(int *)(lVar2 + -0x6c0) = *(int *)(lVar2 + -0x94) * 0x7d5ebeba;
  *(ulonglong *)(lVar2 + -0x228) =
       (*(ulonglong *)(lVar2 + -0xd88) ^ uVar20) >> (((byte)uVar43 ^ 0xcb) & 0x3f) ^
       CONCAT44(uVar13,uVar13);
  uVar10 = DAT_182671c6c;
  uVar24 = (ulonglong)DAT_182671c6c;
  bVar37 = (byte)uVar13;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x7dffb223)) =
       CONCAT44(uVar8,uVar43) ^ 0xffdffc9ffbffefdb | 0xbe1f1494d1eccf11;
  bVar38 = *(byte *)(lVar2 - ((ulonglong)uVar43 ^ 0x7ffffbd3)) ^ bVar37 ^ (byte)DAT_182671eb0;
  uVar20 = (ulonglong)DAT_182671f28;
  *(byte *)(lVar2 + -0x2c9) = bVar38;
  pbVar22 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar8 ^ 0x7dffb18b)) +
                    (CONCAT44(uVar9,uVar43) ^ 0x462ad9d97ffff9e5));
  *(ulonglong *)(lVar2 + -0x340) = (ulonglong)pbVar22 ^ uVar20;
  uVar12 = DAT_182671c78;
  bVar38 = (byte)DAT_182671f14 ^ bVar38 ^ (byte)DAT_182671eb0;
  uVar20 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar2 + -0xda8) =
       (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0x110)) >>
       ((*(byte *)(lVar2 - (uVar36 ^ 0x462adbf1)) ^ bVar37) & 0x3f);
  *pbVar22 = bVar38;
  uVar30 = uVar10 - uVar12;
  uVar40 = (ulonglong)uVar30;
  uVar23 = CONCAT44(uVar12,uVar10);
  lVar25 = (uVar23 ^ 0xb7d308fe2626b9d5) * 0xc;
  uVar35 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  DAT_182671c8c = uVar30;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x2626bfc5)) =
       *(longlong *)(lVar2 + -0x310) + ((CONCAT44(uVar30,uVar30) ^ 0x6e53b0d76e53b0d4) + lVar25) * 8
       ^ uVar35;
  uVar41 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(lVar2 + -0x628) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x610) ^ uVar35) ^ uVar45 ^ uVar41;
  *(ulonglong *)(lVar2 + -0xd88) = uVar23 ^ 0x500009d8f800040 | 0x70cd31207063ccbf;
  uVar5 = DAT_182671d18;
  lVar2 = DAT_182671c40;
  bVar28 = (byte)uVar12;
  bVar38 = (byte)DAT_182671d44;
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x6e53bb0f)) =
       (*(ulonglong *)(DAT_182671c40 + -0x628) ^ uVar41) >> ((bVar28 ^ 0xc6) & 0x3f) ^
       CONCAT44(DAT_182671d44,DAT_182671d44);
  bVar42 = bVar38 ^ *(byte *)(lVar2 + -0xbd8) ^ (byte)DAT_182671f74;
  *(byte *)(lVar2 + -0x262) = bVar42;
  pbVar22 = (byte *)((uVar23 ^ 0xb7d308fe2626b9ca) + *(longlong *)(lVar2 + -0x870));
  bVar38 = (byte)DAT_182671f14 ^ (byte)DAT_182671f74;
  *(ulonglong *)(lVar2 + -0x1f0) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671f60;
  *(ulonglong *)(lVar2 + -0x110) =
       (CONCAT44(uVar30,uVar12) ^ 0x214462343b2ed2bd) >>
       (((byte)uVar5 ^ *(byte *)(lVar2 + -0x888)) & 0x3f);
  *pbVar22 = bVar38 ^ bVar42;
  uVar23 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar2 + -0x2e8) =
       *(longlong *)(lVar2 + -0x310) +
       ((CONCAT44(uVar10,uVar12) ^ 0x2626b9d5b7d308fa) +
       (CONCAT44(uVar10,uVar10) ^ 0x2626b9d52626b9d5) * 0xc) * 8 ^ uVar23;
  uVar5 = DAT_182671d40;
  *(uint *)(lVar2 - (uVar24 ^ 0x2626bc59)) = (uVar30 ^ 0x6c617e1) - (uVar30 ^ 0x7ff463d5);
  uVar35 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar20 ^ 0xb7d30a16)) ^ uVar23) ^ uVar45;
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar35 ^ CONCAT44(DAT_182671e74,DAT_182671e74);
  lVar2 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671e90;
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x6e53bd7f)) =
       uVar35 >> ((bVar28 ^ 0xfe) & 0x3f) ^ CONCAT44(uVar5,uVar5);
  lVar3 = DAT_182671c40;
  *(byte *)(DAT_182671c40 - (uVar40 ^ 0x6e53b036)) =
       *(byte *)(lVar2 - (uVar24 ^ 0x2626b47d)) ^ (byte)uVar5 ^ (byte)DAT_182671d60;
  *(ulonglong *)(DAT_182671c40 + -0xd58) =
       (CONCAT44(uVar8,uVar10) ^ 0x7dffb9fb2626b9f5) + *(longlong *)(DAT_182671c40 + -0x870) ^
       uVar23;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x6e53bd5f)) =
       (CONCAT44(uVar12,uVar9) ^ 0x4ceac30dabe2652f) + (CONCAT44(uVar12,uVar8) ^ 0x189f566efdec7636)
  ;
  uVar7 = DAT_182671f7c;
  uVar6 = DAT_182671cc4;
  *(byte *)(uVar23 ^ *(ulonglong *)(lVar3 + -0xd58)) =
       *(byte *)(lVar3 - (uVar24 ^ 0x2626b934)) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671d60;
  uVar5 = DAT_182671c48;
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar10,uVar8) ^ 0x2626b9d57dffb9ff) +
            (CONCAT44(DAT_182671c48,uVar12) ^ 0x6fe9bfc8b7d308fe) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar32 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x628) = uVar24 << 0x21 ^ 0x3a54055200000000;
  *(ulonglong *)(lVar3 + -0xbd8) = *puVar32 ^ uVar45 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x888) =
       -0x2b1d4aa52dca1f2c - (CONCAT44(uVar30,uVar12) ^ 0xc8f44eb486db7a1f);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x462ad8c9)) =
       ((ulonglong)uVar13 << 0x18 | (ulonglong)(uVar13 >> 8)) ^ *(ulonglong *)(lVar3 + -0xbd8) >> 8
       ^ CONCAT44(uVar7,uVar7);
  uVar23 = (ulonglong)DAT_182671ca0;
  *(byte *)(lVar3 - (uVar29 ^ 0x7ffffb42)) =
       *(byte *)(lVar3 - (uVar24 ^ 0x2626b8c5)) ^ (byte)uVar7 ^ bVar39;
  uVar17 = DAT_182671e7c;
  pbVar22 = (byte *)((CONCAT44(uVar10,uVar9) ^ 0x2626b9d5462ad9f8) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0x288) = (ulonglong)pbVar22 ^ uVar23;
  *pbVar22 = *(byte *)(lVar3 + -0x2b9) ^ bVar39 ^ (byte)DAT_182671f14;
  uVar46 = CONCAT44(uVar10,uVar43) ^ 0x2626b9d57ffff9ff;
  bVar38 = (byte)DAT_182671ea0;
  uVar35 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  puVar32 = (ulonglong *)(*(longlong *)(lVar3 + -0x310) + uVar46 * 8);
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)puVar32 ^ CONCAT44(DAT_182671d30,DAT_182671d30);
  lVar2 = DAT_182671c40;
  uVar44 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671c40 + -0x228) = *puVar32 ^ uVar45 ^ uVar44;
  lVar3 = DAT_182671c40;
  puVar32 = (ulonglong *)(lVar2 - (uVar40 ^ 0x6e53b2ff));
  uVar23 = ((ulonglong)(uVar17 >> 0x10) | (ulonglong)uVar17 << 0x10) ^ *puVar32 >> 0x10;
  uVar35 = uVar23 ^ uVar35;
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar35;
  lVar4 = DAT_182671c40;
  bVar39 = bVar38 ^ (byte)uVar35 ^ (byte)DAT_182671e30;
  *(ulonglong *)(lVar3 + -0xd88) = uVar23 >> (((byte)uVar43 ^ 0xca) & 0x3f);
  bVar42 = (byte)DAT_182671f14 ^ (byte)DAT_182671e30;
  lVar2 = *(longlong *)(lVar4 + -0x870);
  *(byte *)(lVar3 + -0x21) = bVar39;
  uVar23 = (ulonglong)DAT_182671e00;
  *(ulonglong *)(lVar4 + -0x2c8) = lVar2 + 0x22U ^ uVar23;
  lVar2 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x462adb11)) ^ uVar23) = bVar42 ^ bVar39;
  uVar6 = DAT_182671e84;
  uVar23 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar2 + -0x610) =
       *(longlong *)(lVar2 + -0x310) +
       ((CONCAT44(uVar9,DAT_182671c68) ^ 0x462ad9d994da5004) + lVar25) * 8 ^ uVar23;
  uVar11 = DAT_182671ea4;
  uVar36 = (ulonglong)DAT_182671c64;
  uVar35 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x2d0bb8fa)) ^ uVar23)
           ^ uVar45;
  *(ulonglong *)(lVar2 + -0x628) = uVar35 ^ CONCAT44(uVar6,uVar6);
  lVar3 = DAT_182671c40;
  pbVar22 = (byte *)(DAT_182671c40 - (uVar36 ^ 0x5b316ae8));
  uVar35 = uVar35 >> (((byte)uVar8 ^ 0xe3) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  lVar2 = *(longlong *)(DAT_182671c40 + -0x870);
  *(byte *)(DAT_182671c40 + -0x669) = (byte)uVar11 ^ (byte)DAT_182671e94 ^ (byte)uVar35;
  uVar36 = (ulonglong)DAT_182671f18;
  *(ulonglong *)(lVar3 + -0x888) = uVar35;
  *(ulonglong *)(lVar3 + -0x4c8) = (CONCAT44(uVar30,uVar43) ^ 0x6e53b0d77ffff9d8) + lVar2 ^ uVar36;
  uVar9 = DAT_182671c60;
  uVar41 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x2d0bbffa)) = 0xc9b255f8e06eece5 >> ((bVar38 ^ *pbVar22) & 0x3f)
  ;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar20 ^ 0xb7d30c36)) ^ uVar36) =
       *(byte *)(lVar3 - (uVar24 ^ 0x2626bfbc)) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671e94;
  uVar15 = DAT_182671fac;
  uVar6 = DAT_182671c94;
  uVar13 = DAT_182671c80;
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(lVar3 + -0x2e8) =
       *(longlong *)(lVar3 + -0x310) +
       (uVar46 + (CONCAT44(uVar8,DAT_182671c70) ^ 0x7dffb9fbd1da57aa) * 0xc) * 8 ^ uVar36;
  uVar14 = DAT_182671c88;
  uVar7 = DAT_182671c50;
  lVar4 = DAT_182671c40;
  uVar35 = CONCAT44(uVar15,uVar15);
  *puVar32 = *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x2d0bbc02)) ^ uVar36) ^
             uVar45 ^ uVar35;
  uVar16 = DAT_182671e24;
  *(ulonglong *)(lVar4 + -0xd88) =
       (CONCAT44(uVar14,uVar10) ^ 0x4b51ffdd0ccf6e4d) + *(longlong *)(lVar4 + -0x110);
  uVar36 = (ulonglong)DAT_182671c64;
  *puVar33 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x6bb8e145)) ^ uVar35) >>
             (((byte)uVar8 ^ 0xdb) & 0x3f) ^ uVar44;
  bVar42 = (byte)uVar17 ^ *(byte *)(lVar2 + -0x628) ^ (byte)uVar16;
  *(byte *)(lVar2 + -0xb21) = bVar42;
  uVar15 = DAT_182671c90;
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x5b316fc8)) ^ CONCAT44(uVar11,uVar11)) +
       (CONCAT44(uVar6,uVar14) ^ 0x611852c5739d4ff1);
  uVar11 = DAT_182671c74;
  pbVar26 = (byte *)((CONCAT44(uVar15,uVar43) ^ 0x6de3b86b7ffff9df) + *(longlong *)(lVar2 + -0x870))
  ;
  bVar38 = (byte)DAT_182671f14 ^ (byte)uVar16;
  *(ulonglong *)(lVar2 + -0xaf8) = (ulonglong)pbVar26 ^ (ulonglong)DAT_182671f8c;
  *pbVar26 = bVar38 ^ bVar42;
  uVar10 = DAT_182671e70;
  uVar36 = (ulonglong)DAT_182671e70;
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar43,uVar8) ^ 0x7ffff9fb7dffb9ff) +
            (CONCAT44(uVar13,uVar30) ^ 0x6bb8e36d6e53b0d7) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar32 ^ CONCAT44(DAT_182671f90,DAT_182671f90);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0x628)) >> ((*(byte *)(lVar2 + -0xbd8) ^ bVar37) & 0x3f);
  uVar18 = DAT_182671eb4;
  *(ulonglong *)(lVar2 + -0xd88) = CONCAT44(uVar10,uVar10) ^ *puVar32 ^ uVar45;
  bVar38 = (byte)uVar18 ^ (byte)DAT_182671ce4;
  uVar36 = (*(ulonglong *)(lVar2 - (uVar41 ^ 0x2d0bb362)) >> 0x20 ^ uVar36) >> 8 ^
           CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar2 + -0x228) = uVar36;
  *(byte *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x94da57c1)) = bVar38 ^ (byte)uVar36;
  uVar8 = DAT_182671c5c;
  uVar44 = (ulonglong)DAT_182671c5c;
  uVar36 = (ulonglong)DAT_182671da8;
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x7ffff173)) =
       (CONCAT44(uVar7,uVar11) ^ 0x72b69a8408ed1798) << (((byte)uVar9 ^ 0xe7) & 0x3f);
  uVar10 = DAT_182671c64;
  lVar2 = DAT_182671c40;
  pbVar26 = (byte *)((CONCAT44(DAT_182671c64,uVar6) ^ 0x5b31674011ea3025) +
                    *(longlong *)(DAT_182671c40 + -0x870));
  bVar38 = *(byte *)(DAT_182671c40 + -0x7c1) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671ce4;
  *(ulonglong *)(DAT_182671c40 + -0xb68) = (ulonglong)pbVar26 ^ uVar36;
  uVar36 = CONCAT44(DAT_182671c70,uVar9);
  *pbVar26 = bVar38;
  uVar35 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *puVar34 = *(longlong *)(lVar2 + -0x310) +
             ((uVar36 ^ 0xd1da57aa2d0bbeee) +
             (CONCAT44(uVar8,DAT_182671c90) ^ 0x4067315b6de3b86b) * 0xc) * 8 ^ uVar35;
  uVar6 = DAT_182671c4c;
  uVar41 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x7ffff453)) =
       *(ulonglong *)(uVar35 ^ *(ulonglong *)(lVar2 + -0x2e8)) ^ uVar45 ^ uVar41;
  uVar18 = DAT_182671e9c;
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x7dffb8eb)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x7dffb453)) ^ uVar41) +
       (CONCAT44(uVar8,uVar6) ^ 0x410fc08f57ecd270);
  lVar2 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671ee4;
  bVar38 = (byte)uVar18 ^ (byte)DAT_182671e98;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x6bb8eec5)) ^ uVar41) >>
       ((bVar27 ^ 0xe9) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  *(byte *)(lVar2 + -0x72c) = bVar38 ^ *(byte *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 + -0x318) =
       *(longlong *)(lVar2 - ((ulonglong)uVar8 ^ 0x4067392b)) + 0x26U ^ uVar36;
  bVar38 = (byte)DAT_182671f14 ^ (byte)DAT_182671e98;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x94da5bd8)) =
       (CONCAT44(uVar13,uVar8) ^ 0xd951c82ed08162cf) >> ((bVar27 ^ 0xf9) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar2 + -0x318) ^ uVar36) = bVar38 ^ *(byte *)(lVar2 + -0x72c);
  uVar36 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar35 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar2 + -0x2e8) =
       *(longlong *)(lVar2 + -0x310) +
       ((CONCAT44(uVar15,uVar6) ^ 0x6de3b86b5b316744) +
       (CONCAT44(uVar11,uVar12) ^ 0xe78a522fb7d308fe) * 0xc) * 8 ^ uVar36;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0xd1da5a22)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar35 ^ 0x27841e98)) ^ uVar23) ^ uVar45;
  uVar6 = DAT_182671dcc;
  lVar3 = DAT_182671c40;
  puVar32 = (ulonglong *)(lVar2 - (uVar24 ^ 0x2626bb3d));
  uVar23 = (ulonglong)DAT_182671e08;
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       *(ulonglong *)(uVar36 ^ *puVar32) ^ uVar45 ^ CONCAT44(uVar16,uVar16);
  bVar38 = (byte)DAT_182671f14;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0xb7d30ad6)) ^ CONCAT44(uVar16,uVar16)) >>
       ((bVar28 ^ 0xc6) & 0x3f) ^ CONCAT44(uVar6,uVar6);
  uVar20 = (ulonglong)DAT_182671c88;
  uVar36 = CONCAT44(uVar5,DAT_182671c88);
  bVar42 = *(byte *)(lVar2 - (uVar35 ^ 0x27841000)) ^ (byte)uVar6 ^ (byte)DAT_182671f0c;
  *(byte *)(lVar2 + -0xa81) = bVar42;
  bVar42 = bVar38 ^ bVar42 ^ (byte)DAT_182671f0c;
  *(ulonglong *)(lVar2 + -0x660) =
       (uVar36 ^ 0x6fe9bfc885306027) + *(longlong *)(lVar2 + -0x870) ^ uVar23;
  uVar6 = DAT_182671d34;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar31 ^ 0x7dffbf9b)) ^ uVar23) = bVar42;
  uVar15 = DAT_182671f9c;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x610) =
       (CONCAT44(uVar7,uVar12) ^ 0x5b316740b7d308fe) * 0x60 + *plVar21 + 0x28 ^ uVar36;
  uVar7 = DAT_182671c9c;
  bVar38 = bVar38 ^ (byte)DAT_182671ee8;
  uVar23 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar40 ^ 0x6e53b6c7)) ^ uVar36) ^ uVar45;
  *(ulonglong *)(lVar2 + -0x110) = uVar23 ^ CONCAT44(uVar15,uVar15);
  uVar6 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671d48;
  bVar42 = (byte)uVar7 ^ (byte)DAT_182671ee8;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       uVar23 >> ((bVar27 ^ 0xd9) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  uVar35 = CONCAT44(DAT_182671c68,uVar8);
  uVar23 = CONCAT44(uVar11,DAT_182671c94);
  *(byte *)(lVar2 + -0x359) = bVar42 ^ *pbVar22;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x85306818)) =
       (uVar23 ^ 0xe78a522f11ea3028) + *(longlong *)(lVar2 + -0x870) ^ uVar36;
  *(ulonglong *)(lVar2 + -0x628) =
       uVar35 ^ 0x441de61e1b800388 | CONCAT44(uVar13,uVar6) ^ 0x84c234c2760aa777;
  *(byte *)(*(ulonglong *)(lVar2 + -0x818) ^ uVar36) = bVar38 ^ *(byte *)(lVar2 + -0x359);
  uVar6 = DAT_182671cc8;
  uVar36 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *puVar32 = *(longlong *)(lVar2 - (uVar44 ^ 0x4067324b)) +
             ((CONCAT44(uVar5,uVar11) ^ 0x6fe9bfc8e78a522a) +
             (CONCAT44(uVar10,DAT_182671c80) ^ 0x5b3167406bb8e36d) * 0xc) * 8 ^ uVar36;
  uVar5 = DAT_182671f08;
  uVar45 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0xd1da5542)) ^ uVar36)
           ^ uVar45;
  bVar38 = (byte)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar45 ^ CONCAT44(uVar6,uVar6);
  uVar36 = uVar45 >> ((bVar38 ^ 99) & 0x3f) ^ CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0xd88) = uVar36;
  *(byte *)(lVar2 + -0x529) = (byte)uVar5 ^ (byte)uVar36 ^ (byte)DAT_182671f58;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar43) * 4) = uVar19;
  return;
}



############ FUN_ 180fd8dc0 size=5550 ############

void FUN_180fd8dc0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  byte bVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_f0;
  
  uVar12 = DAT_182671c80;
  uVar10 = DAT_182671c74;
  uVar35 = DAT_182671c60;
  uVar8 = DAT_182671c5c;
  lVar5 = DAT_182671c40;
  uVar45 = (ulonglong)DAT_182671c80;
  uVar16 = DAT_182671c80 | DAT_182671c5c;
  uVar25 = (ulonglong)uVar16;
  uVar41 = (ulonglong)DAT_182671c60;
  uVar32 = (ulonglong)DAT_182671c74;
  uVar27 = DAT_182671c60 | DAT_182671c74;
  uVar34 = *(uint *)(&DAT_182613218 + DAT_18267202c) ^ DAT_182671c80;
  uVar17 = *(uint *)(&DAT_182613210 + (uVar25 ^ 0xf5db3fff) + (longlong)DAT_18267202c) ^
           DAT_182671c5c;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x380);
  puVar49 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c60 ^ 0xcd99d8ff));
  uVar42 = CONCAT44(DAT_182671f14,DAT_182671f14);
  uVar36 = ((ulonglong)DAT_182671d5c << 0x14 | (ulonglong)(DAT_182671d5c >> 0xc)) ^ *puVar49 >> 0xc;
  uVar22 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x7e8);
  DAT_182671c54 = uVar16;
  DAT_182671c88 = uVar27;
  *puVar2 = uVar36 ^ uVar42;
  uVar40 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar26 = (ulonglong)uVar27;
  puVar3 = (ulonglong *)(lVar5 + -0x7c0);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0xefbdd257)) = (uVar22 ^ *puVar1 | uVar36) ^ uVar40;
  uVar48 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar22 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  puVar4 = (ulonglong *)(lVar5 + -0xa60);
  *puVar3 = uVar22 ^ uVar48 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0x888) ^
            *(ulonglong *)(lVar5 + -0x760);
  uVar36 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar51 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0xaa350b4c)) =
       (CONCAT44(DAT_182671d8c,DAT_182671d8c) ^ *puVar4) + (uVar36 ^ *(ulonglong *)(lVar5 + -0xb08))
       ^ uVar51;
  uVar40 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  puVar21 = (ulonglong *)(lVar5 - ((ulonglong)uVar35 ^ 0xcd99d0a7));
  *puVar21 = (uVar36 ^ *(ulonglong *)(lVar5 + -0xb08)) << 0x39 ^ uVar40;
  uVar7 = DAT_182671d54;
  uVar23 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar36 = (*(ulonglong *)(lVar5 - (uVar45 ^ 0xf41b34ef)) ^ uVar36) >>
           (((byte)uVar10 ^ 0x5b) & 0x3f);
  *(ulonglong *)(lVar5 + -0xd88) = uVar36 ^ uVar23;
  uVar47 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xf5db34cf)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xefbdd8f7)) ^ uVar40 | uVar36) ^ uVar47;
  lVar5 = DAT_182671c40;
  uVar24 = (ulonglong)uVar8;
  uVar40 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar31 = CONCAT44(DAT_182671e28,DAT_182671e28);
  uVar36 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xb5d309fb)) ^ uVar40 ^ uVar47 ^
           uVar51 ^ *(ulonglong *)(DAT_182671c40 + -0xb20);
  puVar37 = (ulonglong *)(DAT_182671c40 + -0x760);
  puVar18 = (ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xb5d30ec3));
  uVar44 = *(uint *)(DAT_182671c40 + -0x684);
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar36;
  *(ulonglong *)(lVar5 + -0x2b0) = (*puVar18 ^ uVar40) + (uVar22 ^ *puVar37) ^ uVar31;
  *(uint *)(lVar5 + -0x27c) = uVar10 ^ 0x75773ab0 | uVar44;
  uVar43 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  puVar18 = (ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xb5d301cb));
  uVar22 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *puVar18 = (uVar40 ^ uVar36) << (((byte)uVar16 ^ 0xf8) & 0x3f) ^ uVar43;
  uVar7 = DAT_182671f08;
  *puVar49 = (uVar40 ^ *(ulonglong *)(lVar5 + -0x628)) >> (((byte)uVar12 ^ 0xce) & 0x3f) ^ uVar22;
  uVar36 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0xcd99d10f)) =
       (*(ulonglong *)(lVar5 + -0xa70) ^ uVar22 | *(ulonglong *)(lVar5 + -0x920) ^ uVar43) ^ uVar36;
  uVar14 = DAT_182671d90;
  uVar44 = DAT_182671c70;
  uVar22 = (ulonglong)DAT_182671c70;
  uVar52 = (ulonglong)DAT_182671d90;
  *puVar2 = (CONCAT44(uVar10,uVar10) ^ 0x9f13e9e07d340e4a) >> (((byte)uVar8 ^ 0xc6) & 0x3f);
  lVar5 = DAT_182671c40;
  puVar37 = (ulonglong *)(DAT_182671c40 + -0x110);
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       CONCAT44(uVar14,uVar14) ^ uVar36 ^ uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0x2b0) ^ *puVar1;
  uVar46 = CONCAT44(DAT_182671f04,DAT_182671f04);
  *puVar4 = (uVar51 ^ *puVar37) + (uVar48 ^ *puVar3) ^ uVar46;
  uVar20 = (uVar44 << 0x10 | uVar44 & 0xff00) << 8 | uVar44 >> 8 & 0xff00 | DAT_182671c70 >> 0x18;
  uVar28 = (ulonglong)uVar20;
  puVar37 = (ulonglong *)(lVar5 - (uVar28 ^ 0xec38ef56));
  bVar19 = (byte)uVar44;
  DAT_182671c48 = uVar20;
  *(ulonglong *)(lVar5 + -0xb08) =
       (uVar48 ^ *puVar37) << (((byte)(DAT_182671c70 >> 0x18) ^ 0xbe) & 0x3f) ^ uVar47;
  uVar9 = DAT_182671f00;
  uVar36 = (uVar48 ^ *puVar37) >> ((bVar19 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar5 + -0x228) = uVar36 ^ CONCAT44(DAT_182671d50,DAT_182671d50);
  uVar7 = DAT_182671e68;
  uVar40 = CONCAT44(uVar9,uVar9);
  puVar49 = (ulonglong *)(lVar5 - ((ulonglong)uVar44 ^ 0x96e83564));
  *puVar49 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0xec38e39e)) ^ uVar47 | uVar36) ^ uVar40;
  uVar15 = DAT_182671f18;
  lVar5 = DAT_182671c40;
  uVar36 = CONCAT44(uVar7,uVar7);
  uVar40 = uVar36 ^ uVar40 ^ uVar46 ^ *puVar4 ^ *(ulonglong *)(DAT_182671c40 + -0xd88);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar40;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar44 ^ 0x96e83f8c)) =
       (uVar40 ^ uVar36) + (uVar31 ^ *(ulonglong *)(lVar5 + -0x2b0)) ^ uVar29;
  lVar6 = DAT_182671c40;
  uVar48 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  uVar38 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar44 ^ 0x96e833cc)) ^ uVar36) <<
           (((byte)uVar8 ^ 0xee) & 0x3f);
  uVar30 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar38 ^ uVar48;
  lVar5 = DAT_182671c40;
  local_f0 = (byte)uVar35;
  uVar43 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0xaa35017c)) ^ uVar36) >> ((local_f0 ^ 0xb4) & 0x3f);
  uVar40 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar43 ^ uVar30;
  uVar44 = DAT_182671f7c;
  puVar37 = (ulonglong *)(lVar5 - (uVar26 ^ 0xefbdd0af));
  bVar33 = (byte)uVar27;
  uVar39 = (ulonglong)DAT_182671f7c;
  *puVar37 = (uVar38 | uVar43) ^ uVar40;
  uVar43 = CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar5 + -0x888);
  uVar38 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *puVar2 = uVar38 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0xa70) ^ uVar29 ^
            *(ulonglong *)(lVar5 + -0x760);
  uVar50 = CONCAT44(uVar44,uVar44);
  *puVar1 = (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xb5d3028b)) ^ uVar46) + uVar43 ^ uVar50;
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (*(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xefbdd1ff)) ^ uVar36) -
       (uVar47 ^ *(ulonglong *)(DAT_182671c40 + -0xb08));
  uVar46 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *puVar3 = uVar43 << ((bVar33 ^ 0xfa) & 0x3f) ^ uVar46;
  *puVar21 = (*(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0xf41b3c67)) >> 0x20 ^ uVar39) >> 0xd;
  uVar9 = DAT_182671da4;
  lVar5 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *puVar49 = ((ulonglong)(uVar14 >> 0x1b) | uVar52 << 5) ^
             *(ulonglong *)(DAT_182671c40 + -0x888) >> 0x1b ^ uVar39;
  uVar7 = DAT_182671c9c;
  uVar43 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x2b0) =
       (uVar39 ^ *(ulonglong *)(lVar5 + -0xd88) | uVar46 ^ *puVar3) ^ uVar43;
  uVar39 = CONCAT44(uVar7,uVar7);
  *puVar18 = *(ulonglong *)(lVar5 - (uVar32 ^ 0xaa3508ec)) ^ uVar39 ^ uVar43 ^ uVar50 ^ *puVar1;
  uVar47 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *(ulonglong *)(lVar5 + -0x628) =
       (uVar39 ^ *(ulonglong *)(lVar5 + -0x920)) + (CONCAT44(uVar16,uVar8) ^ 0xc902fb6b955ac830) ^
       uVar47;
  *puVar37 = (CONCAT44(uVar8,uVar20) ^ 0xec697b26d520d1ae) +
             (uVar29 ^ *(ulonglong *)(lVar5 + -0x760)) ^ uVar42;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0xaa35003c)) =
       *(ulonglong *)(lVar5 + -0x228) | 0x58dba9784ea29902;
  uVar7 = DAT_182671f88;
  uVar39 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar5 + -0xb08) =
       (*(ulonglong *)(lVar5 - (uVar45 ^ 0xf41b39cf)) ^ uVar47) +
       (*(ulonglong *)(lVar5 + -0xa70) ^ uVar42) ^ uVar39;
  uVar29 = (uVar47 ^ *(ulonglong *)(lVar5 + -0x628)) << ((bVar19 ^ 0xf5) & 0x3f);
  uVar43 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar5 + -0xb20) = uVar29 ^ CONCAT44(uVar7,uVar7);
  uVar42 = (uVar47 ^ *(ulonglong *)(DAT_182671c40 + -0x628)) >> ((bVar33 ^ 0xf8) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar42 ^ uVar43;
  uVar43 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *(ulonglong *)(DAT_182671c40 + -0x888) = (uVar29 | uVar42) ^ uVar43;
  lVar5 = DAT_182671c40;
  *puVar49 = CONCAT44(DAT_182671c84,uVar27) ^ 0x387437bfb5320279 |
             CONCAT44(uVar20,uVar12) ^ 0x77fbb7fa30b5a78d;
  uVar47 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar5 + -0x2b0) =
       *(ulonglong *)(lVar5 - (uVar22 ^ 0x96e83064)) ^ uVar43 ^ uVar39 ^ uVar23 ^
       *(ulonglong *)(lVar5 + -0xb08);
  uVar38 = (CONCAT44(uVar35,uVar16) ^ 0xb1c9761e7a60ad5e) + (uVar38 ^ *puVar2);
  uVar22 = uVar38 ^ uVar47;
  *(ulonglong *)(lVar5 + -0x920) = uVar22;
  uVar43 = CONCAT44(DAT_182671e08,DAT_182671e08);
  *(ulonglong *)(lVar5 + -0x760) =
       *(ulonglong *)(lVar5 - (uVar32 ^ 0xaa350d9c)) ^ uVar22 ^ uVar47 ^ uVar46;
  uVar32 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  uVar22 = (CONCAT44(DAT_182671c7c,uVar20) ^ 0x5102e6b46e30dee3) + (uVar50 ^ *puVar1);
  *(ulonglong *)(lVar5 + -0x228) = uVar22 ^ uVar43;
  lVar6 = DAT_182671c40;
  uVar42 = (*(ulonglong *)(lVar5 - (uVar41 ^ 0xcd99dbaf)) ^ uVar47) + uVar22 ^ uVar32;
  uVar29 = CONCAT44(DAT_182671f80,DAT_182671f80);
  *puVar4 = uVar42;
  uVar43 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar6 + -0xa70) = uVar38 << ((bVar19 ^ 0xcd) & 0x3f) ^ uVar29;
  uVar22 = (*(ulonglong *)(lVar6 - (uVar45 ^ 0xf41b36c7)) ^ uVar47) >>
           (((byte)uVar12 ^ 0xf8) & 0x3f);
  uVar38 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(lVar6 + -0x628) = uVar22 ^ uVar43;
  uVar8 = DAT_182671c64;
  uVar46 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar6 + -0xb20) =
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0xb5d3029b)) ^ uVar29 | uVar22) ^ uVar38;
  uVar44 = DAT_182671c60;
  uVar22 = (ulonglong)DAT_182671c68;
  uVar43 = (ulonglong)DAT_182671f18;
  uVar35 = DAT_182671c60 << 0x10 | DAT_182671c60 >> 0x10;
  DAT_182671c68 = uVar35;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xb5f709fb)) =
       *(ulonglong *)(lVar6 - (uVar22 ^ 0x96e833cc)) ^ uVar46 ^ uVar38 ^ uVar32 ^ uVar42;
  *(uint *)(lVar6 + -0x444) = *(uint *)(*(ulonglong *)(lVar6 + -0xd70) ^ uVar43) ^ DAT_182671f14;
  *(ulonglong *)(lVar6 + -0xd88) =
       (uVar46 ^ *(ulonglong *)(lVar6 + -0x110)) + (uVar39 ^ *(ulonglong *)(lVar6 + -0xb08)) ^
       uVar30;
  uVar39 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xcd99da07)) =
       (uVar46 ^ *(ulonglong *)(lVar6 + -0x110)) << 0x2e ^ uVar39;
  *(uint *)(lVar6 + -0x94c) = (uVar35 ^ 0xe7adae74) & *(uint *)(lVar6 + -0x54);
  bVar19 = (byte)(uVar44 >> 0x10);
  uVar22 = (*(ulonglong *)(lVar6 - (uVar41 ^ 0xcd99d39f)) ^ uVar46) >> ((bVar19 ^ 0x8b) & 0x3f);
  *puVar2 = uVar22 ^ CONCAT44(DAT_182671e74,DAT_182671e74);
  lVar5 = DAT_182671c40;
  uVar43 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xcd99d54f)) =
       (*(ulonglong *)(lVar6 + -0x888) ^ uVar39 | uVar22) ^ uVar43;
  uVar39 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar35 ^ 0xd28fcaf9)) =
       uVar30 ^ *puVar3 ^ uVar39 ^ uVar43 ^ *(ulonglong *)(lVar5 + -0xd88);
  uVar38 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *puVar1 = (uVar32 ^ *puVar4) + (uVar23 ^ *(ulonglong *)(lVar5 + -0x2b0)) ^ uVar38;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar35 ^ 0xd28fcfb1)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar35 ^ 0xd28fcf29)) ^ uVar23) <<
       ((local_f0 ^ 0x83) & 0x3f) ^ uVar51;
  uVar7 = DAT_182671f2c;
  uVar22 = (*(ulonglong *)(lVar5 - (uVar41 ^ 0xcd99d03f)) ^ uVar23) >> ((bVar19 ^ 0xad) & 0x3f);
  *(ulonglong *)(lVar5 + -0x920) = uVar22 ^ uVar31;
  uVar9 = DAT_182671c6c;
  uVar43 = CONCAT44(uVar7,uVar7);
  uVar32 = (uVar22 | uVar51 ^ *(ulonglong *)(lVar5 + -0x228)) ^ uVar43;
  uVar22 = CONCAT44(DAT_182671c6c,uVar12);
  *(ulonglong *)(lVar5 + -0xa70) = uVar32;
  uVar43 = uVar40 ^ uVar32 ^ uVar43 ^ uVar38 ^ *puVar1;
  *(ulonglong *)(lVar5 + -0x628) = uVar43;
  uVar11 = DAT_182671c78;
  uVar43 = (uVar40 ^ uVar43) + (uVar30 ^ *(ulonglong *)(lVar5 + -0xd88));
  *(ulonglong *)(lVar5 + -0xb20) = (uVar22 ^ 0x665a07403f4f6ca3) + 0xf169e9bceb98c07b;
  uVar7 = DAT_182671c58;
  uVar32 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0xcd99d987)) = uVar43 ^ uVar32;
  uVar13 = DAT_182671d04;
  *(ulonglong *)(lVar5 + -0x110) = (CONCAT44(uVar7,DAT_182671c94) ^ 0xf2f7dcb8f2ac910c) + uVar43;
  uVar7 = DAT_182671d34;
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x888) =
       (uVar40 ^ *(ulonglong *)(lVar5 + -0x628)) << ((local_f0 ^ 0xb5) & 0x3f) ^ uVar41;
  uVar44 = DAT_182671c54;
  uVar43 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c50 ^ 0x6f2798ec)) =
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0xefbddcf7)) ^ uVar40) >> (((byte)uVar11 ^ 0xf8) & 0x3f) ^
       uVar43;
  uVar44 = uVar44 & DAT_182671c88;
  DAT_182671c7c = uVar44;
  *puVar3 = 0xffe05b777c6307fe;
  lVar6 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *puVar4 = (*puVar2 ^ uVar43 | *(ulonglong *)(lVar5 + -0x888) ^ uVar41) ^ uVar22;
  uVar43 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(lVar5 + -0x2b0) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar44 ^ 0xe59910af)) ^ *(ulonglong *)(lVar5 + -0xb08) ^
       uVar43 ^ uVar22 ^ uVar32;
  uVar40 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *(ulonglong *)(lVar6 + -0x228) =
       (*(ulonglong *)(lVar6 + -0x760) ^ uVar39) + (uVar38 ^ *puVar1) ^ uVar40;
  puVar37 = (ulonglong *)(lVar6 - (uVar26 ^ 0xefbdddbf));
  uVar30 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar6 + -0x920) = (*puVar37 ^ uVar39) << ((bVar33 ^ 0xc9) & 0x3f) ^ uVar30;
  uVar7 = DAT_182671e88;
  uVar22 = (*puVar37 ^ uVar39) >> (((byte)uVar44 ^ 0xe5) & 0x3f);
  *(ulonglong *)(lVar6 + -0xa70) = uVar22 ^ CONCAT44(DAT_182671f34,DAT_182671f34);
  lVar5 = DAT_182671c40;
  uVar41 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671c40 + -0xb20) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar44 ^ 0xe59913ef)) ^ uVar30 | uVar22) ^ uVar41
  ;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar44 ^ 0xe5991747)) =
       0x66c10fa47dd04e8d - (CONCAT44(uVar27,uVar16) ^ 0xe5ed90d9699014);
  uVar22 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  puVar37 = (ulonglong *)(lVar5 - (uVar25 ^ 0xf5db3dc7));
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar44 ^ 0xe5991bdf)) =
       *puVar37 ^ uVar22 ^ uVar41 ^ uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0xb20);
  uVar7 = DAT_182671d4c;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (*(ulonglong *)(DAT_182671c40 + -0x110) ^ uVar22) +
       (*(ulonglong *)(DAT_182671c40 + -0xb08) ^ uVar32) ^ uVar36;
  uVar41 = CONCAT44(uVar7,uVar7);
  *puVar3 = (*(ulonglong *)(lVar5 - (uVar25 ^ 0xf5db3eff)) ^ uVar22) << 0x20 ^ uVar41;
  *(ulonglong *)(lVar5 + -0x888) =
       CONCAT44(uVar27,uVar27) ^ CONCAT44(uVar16,uVar44) ^ 0xf8792591d006e6e4;
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xf5db3807)) =
       (*(ulonglong *)(lVar5 + -0x110) ^ uVar22) >> ((bVar33 ^ 0xff) & 0x3f) ^ uVar23;
  uVar22 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar25 = (*puVar3 ^ uVar41 | uVar23 ^ *puVar2) ^ uVar22;
  *puVar4 = uVar25;
  uVar7 = DAT_182671eb8;
  *puVar1 = CONCAT44(uVar27,uVar9) ^ uVar25 ^ uVar22 ^ 0xfbdd71220f14a658;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c84 ^ 0x6f279864)) =
       CONCAT44(uVar7,uVar7) ^ uVar36 ^ uVar25 ^ uVar22 ^ *(ulonglong *)(DAT_182671c40 + -0x628);
  uVar43 = *(ulonglong *)(lVar5 + -0x2b0) ^ uVar43;
  uVar41 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar5 + -0x920) = (*puVar37 ^ uVar40) + uVar43 ^ uVar41;
  uVar22 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar5 + -0xa70) = uVar43 << (((byte)uVar16 ^ 0xcf) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0xefbdd757)) = uVar43 >> (((byte)uVar10 ^ 0x7c) & 0x3f) ^ uVar48;
  uVar7 = DAT_182671ce8;
  uVar25 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar5 + -0xb20) =
       (uVar48 ^ *(ulonglong *)(lVar5 + -0xd88) | *(ulonglong *)(lVar5 + -0xa70) ^ uVar22) ^ uVar25;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c4c ^ 0x94f107ab)) =
       *(ulonglong *)(lVar5 - (uVar24 ^ 0xb5d303cb)) ^ *(ulonglong *)(lVar5 + -0x920) ^ uVar22 ^
       uVar25 ^ uVar41;
  uVar40 = CONCAT44(DAT_182671e98,DAT_182671e98);
  uVar26 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0xefbdd1d7)) ^ uVar22) +
           (CONCAT44(uVar44,uVar27) ^ 0xfd986a7f6db5ecaa);
  uVar25 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar5 + -0x888) = uVar26 ^ uVar40;
  uVar22 = (CONCAT44(uVar44,uVar11) ^ 0x9c0ac14646870a08) +
           (uVar36 ^ *(ulonglong *)(lVar5 + -0x628));
  *(ulonglong *)(lVar5 + -0x110) = uVar22 ^ uVar25;
  uVar7 = DAT_182671d74;
  *puVar3 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0xec38e01e)) ^ uVar40) + uVar22 ^ uVar29;
  *puVar2 = CONCAT44(DAT_182671f54,DAT_182671f54) ^ uVar26 * 0x4000;
  *puVar1 = 0x58540a6f965a1f2f;
  *puVar4 = uVar26 >> (((byte)DAT_182671c8c ^ 0x89) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar34;
  return;
}



############ FUN_ 180ff1170 size=4464 ############

void FUN_180ff1170(void)

{
  uint *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  byte *pbVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  uint *puVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte local_res18;
  
  uVar8 = DAT_182671f00;
  uVar6 = DAT_182671ce0;
  uVar25 = DAT_182671c8c;
  uVar34 = DAT_182671c88;
  uVar35 = DAT_182671c7c;
  uVar23 = DAT_182671c74;
  uVar14 = DAT_182671c70;
  uVar24 = DAT_182671c6c;
  uVar20 = DAT_182671c68;
  uVar26 = DAT_182671c5c;
  uVar31 = DAT_182671c54;
  lVar4 = DAT_182671c40;
  uVar39 = (ulonglong)DAT_182671c8c;
  uVar11 = DAT_182671c4c & 3;
  if (uVar11 < 2) {
    uVar2 = DAT_182671c74;
    if (uVar11 == 0) {
      uVar2 = DAT_182671c4c;
    }
    uVar30 = (ulonglong)uVar2;
  }
  else {
    uVar30 = (ulonglong)DAT_182671c94;
    if (uVar11 < 3) {
      uVar30 = uVar39;
    }
  }
  uVar38 = (ulonglong)DAT_182671c5c;
  uVar11 = DAT_182671c68 & 7;
  uVar19 = (ulonglong)DAT_182671c88;
  uVar28 = (ulonglong)DAT_182671c54;
  uVar36 = (ulonglong)DAT_182671c7c;
  DAT_182671c50 = (uint)uVar30;
  if (uVar11 < 4) {
    if (uVar11 < 2) {
      uVar16 = uVar38;
      if (uVar11 == 0) {
        uVar16 = (ulonglong)DAT_182671c68;
      }
    }
    else {
      uVar2 = DAT_182671c90;
      if (uVar11 < 3) {
        uVar2 = DAT_182671c88;
      }
      uVar16 = (ulonglong)uVar2;
    }
  }
  else if (uVar11 < 6) {
    uVar16 = uVar36;
    if (uVar11 < 5) {
      uVar16 = (ulonglong)DAT_182671c54;
    }
  }
  else {
    uVar16 = (ulonglong)DAT_182671c58;
    if (uVar11 < 7) {
      uVar16 = (ulonglong)DAT_182671c70;
    }
  }
  DAT_182671c64 = (uint)uVar16;
  uVar12 = *(uint *)(&DAT_182613218 + DAT_182672074) ^ DAT_182671c58;
  uVar13 = *(uint *)(&DAT_182613210 + (uVar28 ^ 0x81e28448) + (longlong)DAT_182672074) ^
           DAT_182671c6c;
  uVar15 = (ulonglong)DAT_182671c70;
  *(uint *)(DAT_182671c40 - (uVar36 ^ 0xc6a6ced6)) =
       (*(uint *)(DAT_182671c40 - (uVar19 ^ 0x81e28228)) ^ DAT_182671d74) <<
       (((byte)DAT_182671c90 ^ 0x15) & 0x1f);
  *(uint *)(lVar4 - (uVar16 ^ 0xc6a6c22e)) =
       (*(uint *)(lVar4 - (uVar15 ^ 0x36e70179)) ^ DAT_182671e1c) * (uVar20 ^ 0xeff7bee2) ^
       DAT_182671da0;
  uVar20 = DAT_182671c4c;
  uVar11 = (*(uint *)(lVar4 - (uVar38 ^ 0x100847d2)) ^ DAT_182671f04) +
           (*(uint *)(lVar4 + -0xae4) ^ DAT_182671da0);
  uVar15 = CONCAT44(DAT_182671c4c,uVar25);
  *(uint *)(lVar4 + -0x1c8) = uVar11 ^ uVar6;
  *(ulonglong *)(lVar4 + -0x7c0) = (uVar15 ^ 0xe83de62430e5e002) - *(longlong *)(lVar4 + -0xc18);
  uVar15 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar4 - (uVar30 ^ 0xbf547c80)) = uVar11 << (((byte)uVar23 ^ 0x5e) & 0x1f) ^ uVar8;
  uVar9 = DAT_182671e10;
  uVar23 = *(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4;
  *(ulonglong *)(lVar4 + -0x920) =
       (uVar15 << 0x20 | uVar16) ^ CONCAT44(uVar14,DAT_182671c80) ^ 0x91fa4601abd71997;
  puVar1 = (uint *)(lVar4 + -0x54);
  *(uint *)(lVar4 + -0x684) = (*(uint *)(lVar4 + -0x1c8) ^ uVar6) >> 0x13 ^ DAT_182671e78;
  uVar16 = (ulonglong)uVar24;
  uVar23 = uVar23 + (*(uint *)(lVar4 + -0x644) ^ DAT_182671e30) ^ DAT_182671e68;
  *(uint *)(lVar4 + -0x58c) =
       (*(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0xef98f971)) ^ DAT_182671e78 | *puVar1 ^ uVar8) ^
       DAT_182671d70;
  uVar33 = DAT_182671e14;
  *(uint *)(lVar4 - (uVar38 ^ 0x10084696)) = uVar23;
  uVar6 = DAT_182671c58;
  uVar15 = (ulonglong)DAT_182671c58;
  *(byte *)(lVar4 + -0x1c3) =
       *(byte *)((ulonglong)uVar9 ^ *(ulonglong *)(lVar4 + -0xc20)) ^ (byte)DAT_182671e0c;
  uVar23 = *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x1a98871e)) ^ DAT_182671dcc ^ DAT_182671e68;
  *(uint *)(lVar4 + -0x444) = uVar23;
  uVar11 = DAT_182671c68;
  uVar23 = uVar23 ^ uVar33 ^ DAT_182671dcc;
  uVar32 = *(uint *)(lVar4 - (uVar30 ^ 0xbf547958)) ^ DAT_182671cbc ^ DAT_182671d70;
  uVar17 = (ulonglong)DAT_182671c68;
  uVar18 = CONCAT44(uVar34,DAT_182671c68);
  *(uint *)(lVar4 + -0x94c) = uVar32;
  uVar32 = uVar32 ^ DAT_182671cbc;
  *(undefined8 *)(lVar4 + -0xa70) = 0x1b;
  *(ulonglong *)(lVar4 + -0xd88) = (uVar18 ^ 0xab126b6d24f98c5d) + 0xcc67a25d6c40468f;
  *(uint *)(lVar4 + -0x634) = uVar32 ^ DAT_182671e30;
  *(uint *)(lVar4 + -0x76c) = uVar23;
  uVar7 = DAT_182671c98;
  uVar2 = DAT_182671c90;
  uVar37 = (ulonglong)DAT_182671c90;
  uVar18 = (ulonglong)DAT_182671e18;
  uVar21 = CONCAT44(uVar25,DAT_182671c94);
  *(uint *)(DAT_182671c40 + -0x94) =
       uVar32 - (*(uint *)(DAT_182671c40 - (uVar37 ^ 0x140037c)) ^ uVar33);
  bVar3 = (byte)DAT_182671d7c;
  uVar25 = DAT_182671d78;
  lVar4 = DAT_182671c40;
  pbVar22 = (byte *)((uVar21 ^ 0xdb991d1280a20452) + *(longlong *)(DAT_182671c40 + -0x9a8));
  *(ulonglong *)(DAT_182671c40 + -0x170) = (ulonglong)pbVar22 ^ uVar18;
  *(byte *)(lVar4 + -0x1c3) = *pbVar22 ^ bVar3 ^ (byte)DAT_182671e0c;
  *(longlong *)(lVar4 + -0xda8) = *(longlong *)(lVar4 + -0x30) - *(longlong *)(lVar4 + -0x888);
  uVar32 = (uint)(bVar3 ^ *(byte *)(lVar4 + -0x1c3));
  *(uint *)(lVar4 + -0x670) = uVar32 ^ uVar7;
  *(uint *)(lVar4 + -0x61c) =
       (*(uint *)(lVar4 - (uVar36 ^ 0xc6a6cefe)) ^ DAT_182671e30) + (DAT_182671c50 ^ 0x23166eca) ^
       DAT_182671d18;
  uVar23 = DAT_182671c4c;
  bVar3 = (byte)DAT_182671c54;
  *(longlong *)(lVar4 + -0xa60) =
       *(longlong *)(lVar4 - (uVar19 ^ 0x81e289d0)) - *(longlong *)(lVar4 + -0xc18);
  *(uint *)(lVar4 + -0x9dc) = uVar32 << ((bVar3 ^ 0x49) & 0x1f) ^ uVar25;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c70 ^ 0x36e703ad)) =
       *(ulonglong *)(lVar4 - (uVar15 ^ 0x1a98818a)) | CONCAT44(uVar24,uVar23) ^ 0x3c7b2ec8cef9c6ab;
  lVar5 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c64 ^ 0xc6a6ce0a)) =
       (*(uint *)(lVar4 + -0x61c) ^ DAT_182671d18) - (uVar25 ^ *(uint *)(DAT_182671c40 + -0x9dc)) ^
       DAT_182671e98;
  uVar32 = DAT_182671f58;
  uVar23 = DAT_182671c74;
  uVar33 = *(uint *)(lVar5 + -0x76c) ^ uVar33;
  uVar19 = (ulonglong)DAT_182671c74;
  *(uint *)(lVar5 + -0xae4) = (*(uint *)(lVar5 + -0x6c0) ^ DAT_182671e98) * uVar33 ^ DAT_182671f50;
  uVar25 = DAT_182671c94;
  uVar24 = (*(uint *)(lVar5 - (uVar19 ^ 0x9b0e7723)) ^ uVar7) * 0x1a;
  *(uint *)(lVar5 + -0x1c8) = uVar24 ^ uVar8;
  uVar8 = DAT_182671ed0;
  uVar18 = (ulonglong)DAT_182671ed0;
  *(uint *)(lVar5 + -0x684) =
       (*(uint *)(lVar5 - (uVar30 ^ 0xbf547630)) ^ DAT_182671f50) + uVar24 ^ uVar32;
  uVar24 = DAT_182671c5c;
  *puVar1 = (*(uint *)(lVar5 - ((ulonglong)uVar25 ^ 0x80a202cc)) ^ uVar32) <<
            (((byte)DAT_182671c58 ^ 0x97) & 0x1f) ^ DAT_182671e08;
  uVar24 = (*(uint *)(lVar5 + -0x684) ^ uVar32) >> (((byte)uVar24 ^ 1) & 0x1f);
  uVar19 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar5 + -0x644) = uVar24 ^ uVar8;
  *(uint *)(lVar5 + -0x784) =
       (*(uint *)(lVar5 - (uVar19 ^ 0x1000444)) ^ DAT_182671e08 | uVar24) ^ DAT_182671d44;
  uVar24 = (*(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4) + uVar33 ^ DAT_182671d84;
  *(ulonglong *)(lVar5 + -0xa08) =
       (CONCAT44(uVar31,uVar11) ^ 0xf4196e8451be741e) -
       ((uVar39 << 0x20 | uVar30) ^ 0xbd2a2aaa768f5847);
  uVar8 = DAT_182671d60;
  *(uint *)(lVar5 - ((ulonglong)uVar25 ^ 0x80a201c4)) = uVar24;
  uVar24 = *(uint *)(lVar5 + -0x784) ^ DAT_182671fb4 ^ DAT_182671d44;
  uVar21 = (ulonglong)DAT_182671f34;
  *(uint *)(lVar5 + -0x444) = *(uint *)(lVar5 + -0x58c) ^ DAT_182671d84 ^ uVar9;
  *(uint *)(lVar5 - (uVar28 ^ 0x81e284cc)) = uVar24;
  *(ulonglong *)(lVar5 + -0x5e8) =
       CONCAT44(uVar2,uVar35) ^ CONCAT44(uVar34,uVar26) ^ 0x9d23f6015b90ccbc;
  *(uint *)(lVar5 - (uVar28 ^ 0x81e28d14)) = *(uint *)(lVar5 + -0x444) ^ uVar8 ^ uVar9;
  uVar19 = (ulonglong)DAT_182671c64;
  *(longlong *)(lVar5 + -0xf0) = *(longlong *)(lVar5 + -0xa50) << (((byte)uVar25 ^ 0x6f) & 0x3f);
  *(uint *)(lVar5 - (uVar37 ^ 0x1400224)) =
       *(uint *)(lVar5 - (uVar19 ^ 0xc6a6c85e)) ^ DAT_182671e38 ^ DAT_182671fb4;
  uVar2 = DAT_182671e90;
  uVar24 = DAT_182671c4c;
  puVar27 = (ulonglong *)(lVar5 - ((ulonglong)uVar25 ^ 0x80a20f88));
  *puVar27 = (CONCAT44(uVar14,uVar23) ^ 0x36e708a59b0e7153) * 0x20 +
             (CONCAT44(uVar34,uVar6) ^ 0x81e284581a98809f) + *(longlong *)(lVar5 + -0x9a8) ^ uVar21;
  bVar3 = (byte)DAT_182671ea0;
  uVar34 = *(uint *)(lVar5 + -0x634) ^ DAT_182671e38;
  *(ulonglong *)(lVar5 + -0xbd8) = *(ulonglong *)(lVar5 + -0xd88) ^ 0x7178da4abc17568d;
  bVar10 = *(byte *)(uVar21 ^ *puVar27) ^ bVar3 ^ (byte)DAT_182671e0c;
  uVar14 = DAT_182671c8c ^ 0x47db0f0c;
  *(byte *)(lVar5 + -0x1c3) = bVar10;
  uVar23 = (uint)(bVar10 ^ bVar3);
  uVar14 = uVar34 + uVar14 ^ DAT_182671fac;
  *(uint *)(lVar5 + -0x9dc) = uVar14;
  uVar14 = uVar14 ^ DAT_182671fac;
  *(uint *)(lVar5 + -0x61c) = uVar23 ^ uVar2;
  *(uint *)(lVar5 + -0x6c0) =
       (*(uint *)(lVar5 - ((ulonglong)uVar24 ^ 0xbf547ac8)) ^ uVar2) <<
       (((byte)DAT_182671c74 ^ 0x42) & 0x1f) ^ DAT_182671e30;
  *(ulonglong *)(lVar5 + -0x2b0) =
       (CONCAT44(uVar26,uVar35) ^ 0xb62cc2592d89da6b) -
       ((uVar30 << 0x20 | uVar37) ^ 0xce9be04c7185f04);
  uVar35 = uVar14 - (*(uint *)(lVar5 - (uVar39 ^ 0xdb991bd2)) ^ DAT_182671e30) ^ DAT_182671dc4;
  uVar14 = DAT_182671c58 ^ 0x1a98809f;
  *(uint *)(lVar5 + -0x670) = uVar35;
  uVar35 = uVar35 ^ DAT_182671dc4;
  uVar14 = uVar23 * uVar14 ^ DAT_182671ecc;
  *(uint *)(lVar5 + -0x1c8) = uVar14;
  *(uint *)(lVar5 + -0xae4) = (*(uint *)(lVar5 + -0x94c) ^ uVar8) * uVar35 ^ DAT_182671dfc;
  uVar23 = DAT_182671de8;
  uVar24 = (*(uint *)(lVar5 - ((ulonglong)uVar24 ^ 0xbf547630)) ^ DAT_182671dfc) +
           (uVar14 ^ DAT_182671ecc);
  *(uint *)(lVar5 + -0x684) = uVar24 ^ DAT_182671de8;
  *puVar1 = uVar24 * 0x2000 ^ DAT_182671e28;
  uVar14 = DAT_182671c74;
  uVar24 = DAT_182671c7c ^ 0x4778866a;
  puVar29 = (uint *)(lVar5 - ((ulonglong)DAT_182671c74 ^ 0x9b0e77d7));
  *(uint *)(lVar5 + -0x644) =
       (*puVar29 ^ uVar23) >> (((byte)DAT_182671c6c ^ 0xe6) & 0x1f) ^ DAT_182671f20;
  *(uint *)(lVar5 - (uVar16 ^ 0xef98f899)) = uVar24 * (DAT_182671c88 ^ 0x40b0c453);
  uVar19 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar5 + -0x58c) =
       (*(uint *)(lVar5 - (uVar17 ^ 0xeff7beb9)) ^ DAT_182671e28 |
       *(uint *)(lVar5 + -0x644) ^ DAT_182671f20) ^ DAT_182671cb4;
  *(ulonglong *)(lVar5 + -0xa78) =
       0x6727a32bc17c5b4e >> ((byte)*(undefined8 *)(lVar5 - (uVar19 ^ 0xc6a6cee2)) & 0x3f);
  *(uint *)(lVar5 + -0x784) =
       (*(uint *)(lVar5 - (uVar15 ^ 0x1a9889d6)) ^ uVar8) +
       (*(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671ec8;
  uVar34 = DAT_182671f30;
  uVar24 = DAT_182671c70;
  local_res18 = (byte)uVar31;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c80 ^ 0x1000054)) =
       *(uint *)(lVar5 - (uVar39 ^ 0xdb991a96)) ^ DAT_182671d20 ^ DAT_182671ec8;
  *(ulonglong *)(lVar5 + -0x760) = *(ulonglong *)(lVar5 + -0xd88) >> ((local_res18 ^ 0x58) & 0x3f);
  uVar35 = DAT_182671d10;
  uVar23 = *(uint *)(lVar5 - (uVar15 ^ 0x1a988516)) ^ DAT_182671f3c ^ DAT_182671cb4;
  *(uint *)(lVar5 + -0x94) = uVar23;
  uVar25 = uVar23 ^ DAT_182671f3c ^ DAT_182671cbc;
  *(uint *)(lVar5 + -0x634) = *(uint *)(lVar5 + -0x444) ^ uVar34 ^ DAT_182671d20;
  uVar23 = DAT_182671c94;
  *(ulonglong *)(lVar5 + -0x680) =
       *(longlong *)(lVar5 + -0x7e8) - (CONCAT44(uVar20,uVar24) ^ 0x1a6e50cf30fc1e28);
  *(uint *)(lVar5 - (uVar15 ^ 0x1a988946)) = uVar25;
  bVar3 = (byte)DAT_182671d6c;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c64 ^ 0xc6a6cd6a)) =
       *(longlong *)(lVar5 - ((ulonglong)DAT_182671c80 ^ 0x1000db8)) +
       (CONCAT44(uVar11,uVar31) ^ 0xeff7beed81e28458) * 0x20 +
       (CONCAT44(uVar26,uVar23) ^ 0x1008411280a20458) ^ uVar18;
  *(byte *)(lVar5 - (uVar16 ^ 0xef98fe36)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x5a0) ^ uVar18) ^ bVar3 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar5 + -0x6c0) = (bVar3 ^ *(byte *)(lVar5 + -0x1c3)) ^ uVar35;
  uVar17 = (ulonglong)DAT_182671c78;
  bVar3 = (byte)DAT_182671c70;
  *(uint *)(lVar5 - (uVar17 ^ 0x47444ae2)) =
       (*(uint *)(lVar5 - (uVar38 ^ 0x100848ce)) ^ DAT_182671cbc) + (DAT_182671c88 ^ 0x1da09646) ^
       DAT_182671e70;
  uVar31 = DAT_182671d30;
  uVar26 = (*(uint *)(lVar5 + -0x6c0) ^ uVar35) << ((bVar3 ^ 0xb4) & 0x1f);
  *(uint *)(lVar5 + -0x61c) = uVar26 ^ uVar8;
  uVar26 = (*(uint *)(lVar5 - (uVar28 ^ 0x81e28228)) ^ DAT_182671e70) - uVar26;
  *(uint *)(lVar5 + -0xae4) = uVar26 ^ DAT_182671f9c;
  uVar20 = DAT_182671c64 ^ 0xc6a6c8da;
  *(uint *)(lVar5 - (uVar16 ^ 0xef98fe3d)) = (uVar34 ^ *(uint *)(lVar5 + -0x634)) * uVar26 ^ uVar31;
  uVar19 = (ulonglong)DAT_182671c94;
  *(undefined8 *)(lVar5 + -0x828) = 0;
  *(uint *)(lVar5 + -0x684) = (*(uint *)(lVar5 + -0x6c0) ^ uVar35) * uVar20 ^ DAT_182671e34;
  uVar24 = DAT_182671f10;
  uVar31 = (uVar31 ^ *(uint *)(lVar5 + -0x1c8)) + (*puVar29 ^ DAT_182671e34);
  *(uint *)(lVar5 + -0x76c) = uVar31 ^ DAT_182671f10;
  *(longlong *)(lVar5 + -0x380) = *(longlong *)(lVar5 + -0x680) + -0x13cfc4784643db4e;
  *(uint *)(lVar5 - (uVar19 ^ 0x80a2041c)) = uVar31 * 0x2000 ^ DAT_182671ca8;
  bVar3 = (byte)DAT_182671de0;
  uVar20 = DAT_182671dbc;
  uVar26 = DAT_182671cec;
  *(uint *)(lVar5 + -0x644) =
       (uVar24 ^ *(uint *)(lVar5 + -0x76c)) >> (((byte)DAT_182671c90 ^ 3) & 0x1f) ^ DAT_182671d48;
  uVar31 = *(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar5 + -0x94c) =
       (*(uint *)(lVar5 - (uVar39 ^ 0xdb991b56)) ^ DAT_182671d48 | *puVar1 ^ DAT_182671ca8) ^
       DAT_182671e20;
  uVar24 = (uVar34 ^ *(uint *)(lVar5 + -0x634)) + uVar31 ^ uVar26;
  uVar26 = uVar26 ^ DAT_182671ed0;
  *(uint *)(lVar5 + -0x784) = uVar24;
  uVar31 = DAT_182671c48;
  uVar26 = uVar26 ^ uVar24;
  uVar16 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar5 + -0x58c) = uVar26;
  uVar26 = DAT_182671e80 ^ uVar26;
  *(uint *)(lVar5 + -0x444) =
       *(uint *)(lVar5 - (uVar38 ^ 0x1008485e)) ^ DAT_182671d98 ^ DAT_182671e20;
  uVar28 = (ulonglong)DAT_182671cdc;
  *(uint *)(lVar5 + -0x94) = uVar26 ^ DAT_182671ed0;
  *(ulonglong *)(lVar5 + -0xc38) =
       *(ulonglong *)(lVar5 + -0x760) >> ((byte)*(undefined8 *)(lVar5 + -0x380) & 0x3f);
  *(uint *)(lVar5 + -0x9dc) = *(uint *)(lVar5 - (uVar39 ^ 0xdb991956)) ^ uVar20 ^ DAT_182671d98;
  uVar19 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar5 + -0xc20) =
       (CONCAT44(uVar14,uVar31) ^ 0x9b0e715371539b15) +
       (CONCAT44(uVar11,uVar31) ^ 0xeff7beed71539b0e) * 0x20 + *(longlong *)(lVar5 + -0x9a8) ^
       uVar28;
  uVar31 = DAT_182671d40;
  *(byte *)(lVar5 - (uVar36 ^ 0xc6a6c909)) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar19 ^ 0xbf5470f4)) ^ uVar28) ^ (byte)DAT_182671e0c ^
       bVar3;
  uVar26 = DAT_182671f48;
  *(uint *)(lVar5 + -0x670) = (*(byte *)(lVar5 + -0x1c3) ^ bVar3) ^ uVar31;
  *(uint *)(lVar5 + -0x61c) =
       (uVar20 ^ *(uint *)(lVar5 + -0x9dc)) + (DAT_182671c58 ^ 0x86da9284) ^ DAT_182671ee0;
  *(uint *)(lVar5 - (uVar15 ^ 0x1a988a7e)) =
       (*(uint *)(lVar5 - (uVar30 ^ 0xbf547aa4)) ^ uVar31) << 0x11 ^ DAT_182671eec;
  uVar20 = DAT_182671c90 ^ 0x7638f925;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c84 ^ 0x4847a0f0)) =
       (*(uint *)(lVar5 - ((ulonglong)DAT_182671c80 ^ 0x100020c)) ^ DAT_182671ee0) -
       (*(uint *)(lVar5 - (uVar16 ^ 0x715391ea)) ^ DAT_182671eec) ^ DAT_182671ec4;
  uVar24 = *(uint *)(lVar5 + -0x6c0) ^ DAT_182671ec4;
  *(uint *)(lVar5 + -0x1c8) = (DAT_182671c74 ^ 0x54c0617e) + uVar20;
  uVar31 = (uVar31 ^ *(uint *)(lVar5 + -0x670)) * (DAT_182671c88 ^ 0x81e28443);
  *(uint *)(lVar5 + -0x684) = uVar24 * (*(uint *)(lVar5 + -0x94) ^ DAT_182671e80) ^ DAT_182671e24;
  *(uint *)(lVar5 + -0x76c) = uVar31 ^ uVar26;
  *(ulonglong *)(lVar5 + -0x4b8) =
       ((uVar30 << 0x20 | uVar39) ^ 0xea480a9247de3a3e) <<
       ((byte)*(undefined8 *)(lVar5 + -0xb08) & 0x3f);
  *puVar1 = (*(uint *)(lVar5 - (uVar17 ^ 0x47444a16)) ^ DAT_182671e24) + uVar31 ^ DAT_182671e7c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar12;
  return;
}



############ FUN_ 180f42d20 size=3277 ############

void FUN_180f42d20(void)

{
  uint uVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  ulonglong uVar20;
  byte bVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  byte bVar34;
  uint uVar35;
  ulonglong uVar36;
  
  uVar9 = DAT_182671c78;
  uVar8 = DAT_182671c74;
  uVar7 = DAT_182671c70;
  uVar6 = DAT_182671c60;
  uVar4 = DAT_182671c54;
  uVar3 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c54;
  uVar27 = (ulonglong)DAT_182671c50;
  uVar28 = (ulonglong)DAT_182671c74;
  uVar30 = DAT_182671c54 - DAT_182671c74;
  uVar23 = *(uint *)(&DAT_182613218 + DAT_182672158) ^ DAT_182671c80;
  uVar25 = ~DAT_182671c70;
  uVar35 = DAT_182671c50 & DAT_182671c60;
  uVar36 = (ulonglong)uVar35;
  uVar18 = (ulonglong)DAT_182671c78;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182672158);
  uVar26 = DAT_182671c80 & DAT_182671c78;
  uVar17 = (ulonglong)DAT_182671f94;
  DAT_182671c48 = uVar25;
  DAT_182671c58 = uVar30;
  DAT_182671c68 = uVar26;
  DAT_182671c88 = uVar35;
  *(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0x87476200)) =
       *(ulonglong *)(DAT_182671c40 + -0x7a8) ^ uVar17;
  pbVar19 = (byte *)(*(ulonglong *)(lVar2 + -0xaa0) ^ uVar17);
  bVar21 = (byte)DAT_182671ea8 ^ (byte)DAT_182671d18;
  *(byte **)(lVar2 + -0x170) = pbVar19 + 1;
  uVar22 = (ulonglong)DAT_182671ca8;
  *(byte *)(lVar2 - ((ulonglong)uVar3 ^ 0x5bc59b31)) = bVar21 ^ *pbVar19;
  *(byte *)(*(ulonglong *)(lVar2 + -0x3b0) ^ (ulonglong)DAT_182671e1c) = (byte)uVar35 ^ 0xe0;
  uVar20 = (ulonglong)uVar30;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xefb7ffe7)) =
       (CONCAT44(uVar6,uVar8) ^ 0x592ae0a1fbf97f9e) + (*(ulonglong *)(lVar2 + -0x550) ^ uVar22);
  bVar21 = *(byte *)(lVar2 + -0xd31) ^ (byte)DAT_182671ea8;
  *(ulonglong *)(lVar2 + -0x828) =
       *(ulonglong *)(lVar2 + -0xc18) >> ((byte)*(undefined8 *)(lVar2 + -0xa08) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar2 + -0x550) ^ uVar22) = bVar21;
  uVar10 = DAT_182671c80;
  lVar2 = DAT_182671c40;
  uVar16 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       CONCAT44(uVar7,DAT_182671c80) ^ 0x9c844d4e7c8dceaa |
       CONCAT44(uVar4,uVar25) ^ 0x856f8db9d5a848ef;
  *(undefined8 *)(lVar2 + -0x4e8) = *(undefined8 *)(lVar2 - ((ulonglong)uVar26 ^ 0x4426d38));
  uVar24 = (ulonglong)DAT_182671efc;
  *(undefined8 *)(lVar2 + -0xd20) = *(undefined8 *)(lVar2 + -0x170);
  uVar15 = DAT_182671e0c;
  *(byte *)(lVar2 + -0x151) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xa20) ^ (ulonglong)DAT_182671db0) ^ (byte)DAT_182671d18;
  uVar11 = DAT_182671c90;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xecfff617)) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0xebb17676)) ^ uVar24;
  uVar5 = DAT_182671c5c;
  uVar22 = (ulonglong)DAT_182671f38;
  uVar32 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar2 + -0x60) = *(ulonglong *)(lVar2 + -0xd20) ^ uVar22;
  uVar31 = uVar5 | uVar11;
  DAT_182671c7c = uVar31;
  *(ulonglong *)(lVar2 + -0x270) = *(ulonglong *)(lVar2 + -0xd20) + 1;
  *(byte *)(lVar2 + -0x5b9) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x608d4e74)) ^ uVar22) ^ (byte)uVar15 ^
       (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0xfc8dce7d)) ^ uVar17) = (byte)uVar11 ^ 0xf7
  ;
  pbVar19 = (byte *)(*(ulonglong *)(lVar2 + -0x9e8) ^ uVar24);
  *(byte **)(lVar2 + -0x440) = pbVar19 + (CONCAT44(uVar35,uVar11) ^ 0x59008000dc8c8488);
  *pbVar19 = (byte)uVar15 ^ *(byte *)(lVar2 + -0x5b9);
  *(undefined8 *)(lVar2 + -0x2a8) = *(undefined8 *)(lVar2 + -0x440);
  *(undefined8 *)(lVar2 + -0xc98) = *(undefined8 *)(lVar2 + -0x270);
  uVar22 = (ulonglong)DAT_182671e28;
  uVar17 = (ulonglong)DAT_182671f0c;
  *(ulonglong *)(lVar2 + -0xf0) =
       CONCAT44(uVar5,uVar6) ^ *(ulonglong *)(lVar2 + -0xc38) ^ 0x759d867662b30ffc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0xfc8dc4b5)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x130002a8)) ^ uVar17;
  *(ulonglong *)(lVar2 + -0xbd8) =
       CONCAT44(uVar9,uVar31) ^ *(ulonglong *)(lVar2 + -0xc90) ^ 0xaa9ddb0e27f6005c;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xefb7f7df)) = *(ulonglong *)(lVar2 + -0xc98) ^ uVar22;
  bVar21 = (byte)DAT_182671e3c;
  *(ulonglong *)(lVar2 + -0x698) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x592ae581)) ^ uVar22) +
       (CONCAT44(uVar3,uVar26) ^ 0x5bc5960004426021);
  *(byte *)(lVar2 + -0x719) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar27 ^ 0x5bc59320)) ^ uVar22) ^ bVar21 ^
       (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar20 ^ 0xefb7f607)) ^ (ulonglong)DAT_182671d60) =
       (byte)uVar31 ^ 0xba;
  *(ulonglong *)(lVar2 + -0xa60) = CONCAT44(uVar26,uVar25) ^ 0x28214008d800000 | 0x3d7d63fe7005774f;
  uVar13 = DAT_182671db8;
  uVar29 = (ulonglong)DAT_182671db8;
  uVar24 = (ulonglong)DAT_182671f14;
  *(ulonglong *)(lVar2 + -0x278) = (*(ulonglong *)(lVar2 - (uVar36 ^ 0x59008a28)) ^ uVar17) + 1;
  *(byte *)(*(ulonglong *)(lVar2 + -0xa28) ^ uVar17) = bVar21 ^ *(byte *)(lVar2 + -0x719);
  *(ulonglong *)(lVar2 + -0x5e8) = *(ulonglong *)(lVar2 - (uVar16 ^ 0x64d27a56)) >> 0x31;
  *(ulonglong *)(lVar2 + -0x3c8) = *(ulonglong *)(lVar2 + -0x278);
  *(ulonglong *)(lVar2 + -0xce8) = uVar29 ^ *(ulonglong *)(lVar2 + -0x278);
  *(ulonglong *)(lVar2 + -0xbe8) = *(ulonglong *)(lVar2 + -0x698);
  *(ulonglong *)(lVar2 + -0x8c0) = uVar24 ^ *(ulonglong *)(lVar2 + -0x698);
  uVar15 = DAT_182671d6c;
  uVar22 = (ulonglong)DAT_182671d6c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xdc8c89e9)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x608d46d4)) ^ uVar24) +
       (CONCAT44(uVar4,uVar26) ^ 0xebb1729e04426021);
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x5ba) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x8c0) ^ uVar24) ^ (byte)uVar15 ^
       (byte)DAT_182671d18;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0xa8) ^ uVar22) = 0xc;
  *(ulonglong *)(lVar2 + -0x528) =
       (CONCAT44(uVar9,uVar4) ^ 0x874768a0ebb1729f) +
       ((ulonglong)uVar13 ^ *(ulonglong *)(lVar2 + -0xce8));
  *(byte *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0xfbf97377)) ^ uVar29) =
       *(byte *)(lVar2 + -0x5ba) ^ (byte)uVar15;
  *(undefined8 *)(lVar2 + -0xb50) = *(undefined8 *)(lVar2 + -0x528);
  *(undefined8 *)(lVar2 + -0x778) = *(undefined8 *)(lVar2 + -0xd60);
  uVar22 = (ulonglong)DAT_182671cac;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x13000680)) =
       *(ulonglong *)(lVar2 + -0x5e8) | 0xae2a88539a12c8f0;
  *(ulonglong *)(lVar2 + -0x120) = *(ulonglong *)(lVar2 - (uVar32 ^ 0x608d4544)) ^ uVar22;
  pbVar19 = *(byte **)(lVar2 + -0x778);
  *(ulonglong *)(lVar2 + -0xd88) = (CONCAT44(uVar31,uVar35) ^ 0x171b6040b11e610) << 6;
  *(ulonglong *)(lVar2 + -0x1e0) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182671ec4;
  bVar21 = (byte)DAT_182671c60;
  *(byte **)(lVar2 + -0x8a8) = pbVar19 + (CONCAT44(uVar3,uVar10) ^ 0x5bc5960064d27337);
  *(byte *)(lVar2 + -0x3b2) = (byte)DAT_182671ea8 ^ (byte)DAT_182671d18 ^ *pbVar19;
  *(byte *)(*(ulonglong *)(lVar2 + -0x840) ^ (ulonglong)DAT_182671e88) = bVar21 ^ 10;
  *(ulonglong *)(lVar2 + -0x660) =
       (CONCAT44(uVar5,uVar30) ^ 0x608d4e14efb7f2fe) + (uVar22 ^ *(ulonglong *)(lVar2 + -0x120));
  *(byte *)(*(ulonglong *)(lVar2 - (uVar36 ^ 0x59008120)) ^ uVar22) =
       *(byte *)(lVar2 - (uVar18 ^ 0x87476b12)) ^ (byte)DAT_182671ea8;
  uVar22 = *(ulonglong *)(lVar2 + -0x8a8);
  *(ulonglong *)(lVar2 + -0xa78) =
       CONCAT44(uVar26,uVar8) ^ *(ulonglong *)(lVar2 + -0x828) ^ 0xc20df829e6707b6c;
  *(ulonglong *)(lVar2 + -0x8e0) = *(ulonglong *)(lVar2 + -0x660);
  *(ulonglong *)(lVar2 + -0x978) = uVar22;
  uVar9 = DAT_182671e0c;
  bVar21 = (byte)DAT_182671d18;
  uVar32 = (ulonglong)DAT_182671e0c;
  uVar29 = (ulonglong)DAT_182671cc8;
  *(ulonglong *)(lVar2 + -0xda8) =
       (CONCAT44(uVar35,uVar5) ^ 0x6e1232aece5e8d58) << (((byte)uVar7 ^ 0x22) & 0x3f);
  iVar12 = DAT_182671c94;
  *(ulonglong *)(lVar2 + -0x428) = uVar29 ^ *(ulonglong *)(lVar2 + -0x660);
  uVar4 = DAT_182671c64;
  uVar15 = iVar12 - DAT_182671c64;
  *(ulonglong *)(lVar2 + -0x6b0) = uVar22 ^ uVar32;
  uVar24 = (ulonglong)uVar15;
  uVar17 = (ulonglong)DAT_182671efc;
  DAT_182671c84 = uVar15;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x4787abf8)) = uVar22 + 1;
  *(longlong *)(lVar2 + -0x4b8) = *(longlong *)(lVar2 + -0xda8) << (((byte)iVar12 ^ 0xe4) & 0x3f);
  *(byte *)(lVar2 + -0xc51) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x4787a6d8)) ^ uVar32) ^ (byte)DAT_182671fa0 ^
       bVar21;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb10) ^ uVar17) = (byte)uVar4 ^ 0x59;
  pbVar19 = (byte *)(*(ulonglong *)(lVar2 + -0x428) ^ uVar29);
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar15,iVar12) ^ 0x40ef6c013b89a256) - *(longlong *)(lVar2 + -0xc38);
  *(byte **)(lVar2 + -600) = pbVar19 + 1;
  bVar14 = *(byte *)(lVar2 + -0xc51) ^ (byte)DAT_182671fa0;
  *(ulonglong *)(lVar2 + -0x7e8) =
       (CONCAT44(uVar4,iVar12) ^ 0x829116ff0b61d890) <<
       ((byte)*(undefined8 *)(lVar2 + -0xda8) & 0x3f);
  *pbVar19 = bVar14;
  uVar22 = *(ulonglong *)(lVar2 - (uVar24 ^ 0x4787a230));
  uVar17 = (ulonglong)DAT_182671f6c;
  *(ulonglong *)(lVar2 + -0xc50) = uVar22;
  *(ulonglong *)(lVar2 + -0xf8) = *(ulonglong *)(lVar2 + -0xb90);
  uVar10 = DAT_182671e9c;
  uVar7 = DAT_182671e80;
  uVar32 = (ulonglong)DAT_182671e9c;
  uVar29 = (ulonglong)DAT_182671e80;
  *(byte *)(lVar2 + -0xc9b) = *(byte *)(*(ulonglong *)(lVar2 + -0x690) ^ uVar17) ^ (byte)uVar9;
  *(ulonglong *)(lVar2 + -0x6a8) = uVar32 ^ uVar22;
  uVar22 = uVar29 ^ *(ulonglong *)(lVar2 + -0xb90);
  *(longlong *)(lVar2 + -0x888) = *(longlong *)(lVar2 + -0x8f0) << 0x31;
  *(ulonglong *)(lVar2 + -0x1b0) = uVar22;
  *(ulonglong *)(lVar2 + -0x260) = (CONCAT44(iVar12,uVar25) ^ 0xffffffffecfffffe) + (uVar7 ^ uVar22)
  ;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x5bc59630)) =
       *(ulonglong *)(lVar2 - (uVar36 ^ 0x590087e8)) ^ *(ulonglong *)(lVar2 + -0xc18);
  bVar14 = (byte)DAT_182671c80;
  uVar22 = (ulonglong)DAT_182671f60;
  bVar34 = (byte)uVar13;
  *(byte *)(lVar2 + -0x729) = *(byte *)(*(ulonglong *)(lVar2 + -0x1b0) ^ uVar29) ^ bVar34 ^ bVar21;
  *(byte *)(*(ulonglong *)(lVar2 + -0xcb8) ^ uVar22) = bVar14 ^ 0xf4;
  *(uint *)(lVar2 + -0x94c) = (uVar4 ^ 0x243a4d89) + *(int *)(lVar2 + -0x684);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x4787ab98)) =
       ((ulonglong)uVar10 ^ *(ulonglong *)(lVar2 + -0x6a8)) + 1;
  *(byte *)(uVar32 ^ *(ulonglong *)(lVar2 + -0x6a8)) =
       *(byte *)(lVar2 - ((ulonglong)uVar15 ^ 0x4787a741)) ^ bVar34;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (CONCAT44(uVar31,iVar12) ^ 0x8bfac0d147882ab5) + 0xca0fdc5a187d3c74;
  *(ulonglong *)(lVar2 + -0xa48) = *(ulonglong *)(lVar2 + -0xbf0);
  *(undefined8 *)(lVar2 + -0x290) = *(undefined8 *)(lVar2 - (uVar16 ^ 0x64d27156));
  *(ulonglong *)(lVar2 + -0xb18) = *(ulonglong *)(lVar2 + -0xd88) | *(ulonglong *)(lVar2 + -0x888);
  uVar7 = DAT_182671f28;
  uVar16 = (ulonglong)DAT_182671d88;
  uVar17 = (ulonglong)DAT_182671f28;
  *(ulonglong *)(lVar2 + -0xa10) = uVar17 ^ *(ulonglong *)(lVar2 + -0xbf0);
  *(ulonglong *)(lVar2 + -0x3d8) =
       CONCAT44(iVar12,uVar3) ^ *(ulonglong *)(lVar2 + -0xf0) ^ 0x453ada50275f0cea;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xefb7f277)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xb8785d07)) ^ uVar16;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xecfff52f)) =
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0xfbf97f17)) ^ uVar16) +
       (CONCAT44(uVar5,uVar8) ^ 0x608d4e14fbf97f9e);
  uVar22 = (ulonglong)DAT_182671cfc;
  *(byte *)(lVar2 + -0x72d) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x88) ^ uVar16) ^ (byte)DAT_182671dec ^ bVar21;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x958) ^ uVar22) = 0xa6;
  *(ulonglong *)(lVar2 + -0x1d0) = ((ulonglong)uVar7 ^ *(ulonglong *)(lVar2 + -0xa10)) + 1;
  *(longlong *)(lVar2 - (uVar24 ^ 0x4787a708)) =
       -0x278e5c299bc92443 - *(longlong *)(lVar2 - ((ulonglong)uVar6 ^ 0x592ae211));
  *(byte *)(*(ulonglong *)(lVar2 - (uVar33 ^ 0xebb1788e)) ^ uVar17) =
       *(byte *)(lVar2 - (uVar18 ^ 0x87476f8d)) ^ (byte)DAT_182671dec;
  *(undefined8 *)(lVar2 + -0x430) = *(undefined8 *)(lVar2 + -0x1d0);
  *(ulonglong *)(lVar2 + -0xa70) =
       (CONCAT44(uVar11,uVar11) ^ 0xc749341cc32da2d9) + 0x8edba53aea987af6;
  *(undefined8 *)(lVar2 + -0x108) = *(undefined8 *)(lVar2 + -0xad0);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar26) * 4) = uVar23;
  return;
}



############ FUN_ 180fc4ba0 size=4918 ############

void FUN_180fc4ba0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_res18;
  
  uVar10 = DAT_182671cd4;
  uVar8 = DAT_182671c78;
  uVar7 = DAT_182671c6c;
  uVar6 = DAT_182671c60;
  uVar4 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c6c;
  uVar25 = (ulonglong)DAT_182671c60;
  uVar32 = (ulonglong)DAT_182671c78;
  uVar21 = (ulonglong)DAT_182671c54;
  uVar33 = DAT_182671c60 + DAT_182671c6c;
  uVar19 = DAT_182671c78 | DAT_182671c54;
  uVar13 = *(uint *)(&DAT_182613210 + (uVar20 ^ 0x44354e26) + (longlong)DAT_182672010) ^
           DAT_182671c60;
  uVar35 = (ulonglong)uVar19;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar35 ^ 0x7df95fcf) + (longlong)DAT_182672010);
  uVar34 = (ulonglong)DAT_182671c54;
  uVar36 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar41 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  DAT_182671c70 = uVar19;
  DAT_182671c94 = uVar33;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (CONCAT44(DAT_182671d78,DAT_182671d78) ^ *(ulonglong *)(DAT_182671c40 + -0xa78)) -
       (*(ulonglong *)(DAT_182671c40 + -0x110) ^ uVar36) ^ uVar41;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x7178598e)) =
       CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar2 + -0x960) |
       *(ulonglong *)(lVar2 + -0x110) ^ uVar36;
  uVar10 = DAT_182671dbc;
  uVar24 = CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar21 = *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x7db94331)) ^
           CONCAT44(DAT_182671d04,DAT_182671d04) ^ *(ulonglong *)(lVar2 + -0x510) ^ uVar24;
  *(ulonglong *)(lVar2 + -0xc38) = uVar21 ^ CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar11 = DAT_182671e98;
  uVar31 = CONCAT44(uVar10,uVar10);
  uVar26 = uVar21 >> (((byte)uVar4 ^ 0x2e) & 0x3f);
  *(ulonglong *)(lVar2 + -0xda8) = uVar26 ^ uVar31;
  uVar22 = (ulonglong)uVar33;
  bVar14 = (byte)uVar6;
  uVar21 = uVar21 << ((bVar14 ^ 4) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar21 ^ CONCAT44(uVar11,uVar11);
  lVar2 = DAT_182671c40;
  uVar21 = uVar21 | uVar26;
  uVar27 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x7db94a49)) ^ uVar27 |
       CONCAT44(uVar19,uVar7) ^ 0x4a569f493cf3d9dc;
  uVar28 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(lVar2 + -0xa08) = uVar21 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 + -0xda8) ^ uVar31) >> (((byte)uVar33 ^ 0x5a) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x71785576)) =
       (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar24) - uVar21 ^ uVar23;
  uVar26 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar21 = *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xefc3fdfc)) ^ *(ulonglong *)(lVar3 + -0xa08)
           ^ uVar26 ^ uVar28 ^ uVar41;
  *(ulonglong *)(lVar3 + -0x960) = uVar21;
  uVar10 = DAT_182671f40;
  bVar16 = (byte)uVar8;
  uVar31 = CONCAT44(DAT_182671d88,DAT_182671d88);
  *(ulonglong *)(lVar3 + -0x680) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0x4435474e)) ^ uVar26) >> ((bVar16 ^ 0xe3) & 0x3f) ^ uVar31
  ;
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x71785a1e)) =
       (uVar26 ^ uVar21) << ((bVar16 ^ 0xdf) & 0x3f) ^ uVar24;
  lVar2 = DAT_182671c40;
  puVar18 = (ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x7db94059));
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       CONCAT44(uVar4,uVar8) ^ *puVar18 ^ uVar31 ^ 0x8a287e1f99ab4943;
  uVar40 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar24 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xefc3f0a4)) ^ uVar31 |
           *(ulonglong *)(lVar2 + -0x510) ^ uVar24;
  uVar26 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar2 + -0xc90) = uVar24 ^ uVar40;
  uVar31 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar24 = (uVar21 ^ uVar41) - uVar24 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x228) = uVar24;
  uVar10 = DAT_182671e04;
  uVar21 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar42 = CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar36 = *(ulonglong *)(lVar2 - (uVar20 ^ 0x44354456)) ^ *(ulonglong *)(lVar2 + -0x110) ^ uVar31 ^
           uVar23 ^ uVar36;
  *(ulonglong *)(lVar2 + -0xd88) = uVar36;
  lVar3 = DAT_182671c40;
  uVar34 = (uVar36 ^ uVar31) >> ((bVar16 ^ 0xcf) & 0x3f);
  *(ulonglong *)(lVar2 + -0xda8) = uVar34 ^ uVar21;
  uVar21 = (uVar36 ^ uVar31) << ((bVar14 ^ 0xe) & 0x3f);
  *(ulonglong *)(lVar2 + -0x888) = uVar21 ^ uVar42;
  uVar36 = CONCAT44(uVar10,uVar10);
  uVar34 = uVar34 | uVar21;
  uVar41 = uVar34 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x5e8) = uVar41;
  uVar10 = DAT_182671f18;
  *(ulonglong *)(lVar3 + -0xa08) =
       (CONCAT44(uVar19,uVar4) ^ 0x615ebb4059d36096) - (CONCAT44(uVar8,uVar19) ^ 0x6010de59f262ccb5)
  ;
  uVar31 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x960) = (*(ulonglong *)(lVar3 + -0xa78) ^ uVar23) - uVar34 ^ uVar31;
  uVar21 = (ulonglong)DAT_182671f98;
  uVar34 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar3 + -0xc38) = uVar41 ^ uVar34 ^ uVar36 ^ uVar26 ^ uVar24;
  uVar10 = DAT_182671d48;
  uVar17 = DAT_182671c90;
  puVar29 = (ulonglong *)(lVar3 - (uVar22 ^ 0x33f94142));
  *puVar29 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c90 ^ 0x81807e8c)) ^ uVar42) >>
             ((bVar14 ^ 0x3c) & 0x3f);
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar24 = (*(ulonglong *)(lVar3 + -0xc38) >> 0x20 ^ uVar21) >> 0xe;
  uVar41 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *(ulonglong *)(lVar3 + -0x680) = uVar24 ^ uVar23;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0x7db94ae1)) ^ uVar34) <<
           (((byte)uVar17 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar21 ^ uVar41;
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar19,uVar19) ^ 0xd52b366a51f3b51) + 0x6e6e99b4687294d8;
  uVar38 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x33f949da)) = (uVar21 | uVar24) ^ uVar38;
  uVar36 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar37 = (uVar26 ^ *(ulonglong *)(lVar3 + -0x228)) - (*(ulonglong *)(lVar3 + -0xd88) ^ uVar38) ^
           uVar36;
  uVar26 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *(ulonglong *)(lVar3 + -0xda8) = uVar37;
  uVar10 = DAT_182671c84;
  *(ulonglong *)(lVar3 + -0xa08) =
       uVar26 ^ *(ulonglong *)(lVar3 + -0xc90) ^ uVar31 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x960);
  *(ulonglong *)(lVar3 + -0xa78) = CONCAT44(uVar4,uVar7) ^ 0xffbbc3e4eee8b9ff | 0xfe29c3442ee8a1db;
  bVar14 = (byte)uVar10;
  uVar24 = (*(ulonglong *)(lVar3 + -0xa08) ^ uVar26) >> ((bVar14 ^ 0x8c) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar24 ^ CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar11 = DAT_182671d50;
  *(ulonglong *)(lVar3 + -0x888) =
       (CONCAT44(uVar7,uVar4) ^ 0xeece7dfdc1888dac) >> (((byte)uVar33 ^ 0x69) & 0x3f);
  uVar12 = DAT_182671e90;
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar21 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x7db94cd1)) ^ uVar26) << ((bVar14 ^ 0xb4) & 0x3f) ^ uVar34
  ;
  uVar11 = DAT_182671f74;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar24 = *(ulonglong *)(lVar3 - (uVar21 ^ 0xfff9fecf)) ^ uVar34 | uVar24;
  uVar21 = uVar24 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xc38) = uVar21;
  uVar43 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x110) = (uVar31 ^ *(ulonglong *)(lVar3 + -0x960)) - uVar24 ^ uVar43;
  uVar11 = DAT_182671f1c;
  *(undefined1 *)(lVar3 + -0x2e9) = **(undefined1 **)(lVar3 + -0x990);
  bVar14 = (byte)DAT_182671c84;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x680) = uVar37 ^ uVar21 ^ uVar24 ^ uVar26 ^ uVar36;
  uVar11 = DAT_182671df0;
  *(ulonglong *)(lVar3 + -0xbd8) =
       (CONCAT44(uVar10,uVar33) ^ 0xbce3127a0b74464d) + 0xbcb126ba20822ccb;
  uVar17 = DAT_182671c50;
  uVar34 = (ulonglong)DAT_182671c50;
  uVar21 = CONCAT44(uVar11,uVar11);
  bVar15 = (byte)DAT_182671c74;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x44354c06)) =
       (*puVar18 ^ uVar24) >> ((bVar14 ^ 0x99) & 0x3f) ^ uVar21;
  uVar10 = DAT_182671ca0;
  uVar24 = (uVar24 ^ *(ulonglong *)(lVar3 + -0x680)) << ((bVar15 ^ 200) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc90) = uVar24 ^ CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0x7df95df7)) ^ uVar21 | uVar24) ^ uVar26;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xefc3feac)) =
       (*(ulonglong *)(lVar3 + -0xda8) ^ uVar36) - (CONCAT44(uVar6,uVar17) ^ 0x88a5d9ae0f0eb200) ^
       uVar38;
  uVar11 = DAT_182671f10;
  uVar10 = DAT_182671c8c;
  uVar9 = DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0xa08) =
       CONCAT44(uVar4,DAT_182671c90) ^ 0x39094e0475b0f742 | *(ulonglong *)(lVar3 + -0x110) ^ uVar43;
  lVar2 = DAT_182671c40;
  uVar40 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x5e8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xbd9e7df3)) ^ uVar38) -
       (*(ulonglong *)(lVar3 + -0xa78) ^ uVar26) ^ uVar40;
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 + -0xda8) ^ uVar36) >> (((byte)DAT_182671c80 ^ 0x2f) & 0x3f);
  uVar25 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar21 = *(ulonglong *)(lVar2 + -0xd88);
  uVar24 = *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar3 + -0x960) =
       (*(ulonglong *)(lVar3 + -0xa78) ^ uVar26) - (CONCAT44(uVar10,uVar10) ^ 0x8d0257fc7daa8cf4) ^
       uVar25;
  uVar5 = DAT_182671c5c;
  uVar37 = (ulonglong)DAT_182671c5c;
  uVar26 = (ulonglong)DAT_182671d14;
  uVar32 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  uVar36 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar2 + -0xc38) =
       (CONCAT44(uVar17,uVar19) ^ 0x6fa73bddf5402f8f) << (((byte)DAT_182671c5c ^ 0x20) & 0x3f);
  uVar38 = uVar21 ^ uVar24 ^ uVar36 ^ uVar43 ^ uVar38;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar38;
  *(ulonglong *)(lVar2 + -0x680) = (uVar38 >> 0x20 ^ uVar26) >> 1 ^ uVar32;
  uVar10 = DAT_182671d6c;
  uVar39 = (ulonglong)DAT_182671c68;
  uVar24 = CONCAT44(DAT_182671e88,DAT_182671e88);
  puVar18 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671c4c ^ 0x103c0bf3));
  uVar21 = CONCAT44(DAT_182671c48,uVar8);
  *puVar18 = (uVar38 ^ uVar36) << (((byte)uVar9 ^ 100) & 0x3f) ^ uVar24;
  uVar11 = DAT_182671e50;
  uVar4 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0x228) |
       uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x680)) ^ uVar26;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xa08) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar43) - (uVar21 ^ 0xec6b26df44d5cb8a) ^ uVar24;
  uVar10 = DAT_182671e84;
  puVar30 = (ulonglong *)(lVar2 - (uVar37 ^ 0xdceef335));
  *(ulonglong *)(lVar2 + -0x888) =
       (uVar24 ^ *puVar30) - (*(ulonglong *)(lVar2 - (uVar34 ^ 0xfbdff369)) ^ uVar26) ^ uVar28;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar21 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xf3bf14a5)) ^ uVar26) +
           (CONCAT44(uVar17,uVar4) ^ 0x24ee3883169a1903) ^ uVar24;
  *(ulonglong *)(lVar2 + -0xda8) = uVar21;
  *(uint *)(lVar2 + -0x5d4) = *(uint *)(lVar2 + -0x9dc) | 0x8db477a7;
  uVar10 = DAT_182671d70;
  uVar9 = DAT_182671c90;
  uVar26 = CONCAT44(DAT_182671e28,DAT_182671e28);
  local_res18 = (byte)uVar7;
  uVar24 = uVar26 ^ uVar24 ^ uVar21 ^ uVar40 ^ *(ulonglong *)(lVar2 + -0x5e8);
  *(ulonglong *)(lVar2 + -0x510) = uVar24;
  *(ulonglong *)(lVar2 + -0xa78) = (uVar24 ^ uVar26) >> ((local_res18 ^ 0x2b) & 0x3f) ^ uVar41;
  uVar21 = CONCAT44(uVar10,uVar10);
  bVar14 = (byte)DAT_182671c64;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x81807a3c)) = (uVar24 ^ uVar26) << 0x3b ^ uVar21;
  uVar38 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar24 = uVar21 ^ *(ulonglong *)(lVar2 + -0xc38) | *(ulonglong *)(lVar2 + -0xa78) ^ uVar41;
  uVar21 = CONCAT44(uVar19,DAT_182671c74);
  *(ulonglong *)(lVar2 + -0xd88) = uVar24 ^ uVar38;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xbd8) = (uVar21 ^ 0x30bfc88a0d3e40db) >> ((bVar14 ^ 0xdc) & 0x3f);
  uVar36 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar21 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x443548ae)) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0x5e8)) - uVar24 ^ uVar36;
  uVar11 = DAT_182671ef4;
  uVar10 = DAT_182671c8c;
  *(ulonglong *)(lVar3 + -0x228) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xbbdff270)) ^ uVar41) >>
       (((byte)DAT_182671c8c ^ 0x39) & 0x3f);
  uVar7 = DAT_182671c88;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar21 = *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xf3bf10bd)) ^ uVar24 ^ uVar25 ^ uVar28 ^
           *(ulonglong *)(DAT_182671c40 + -0x960);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar21;
  uVar11 = DAT_182671cfc;
  lVar2 = DAT_182671c40;
  uVar26 = (uVar24 ^ uVar21) << 0x1b;
  uVar24 = (uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0x110)) >> (((byte)uVar9 ^ 0x21) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       (CONCAT44(uVar6,uVar10) ^ 0x59de06643e18056d) >> (((byte)uVar4 ^ 0x1f) & 0x3f);
  uVar41 = CONCAT44(uVar11,uVar11);
  uVar21 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar2 + -0xc90) = uVar24 ^ uVar41;
  uVar10 = DAT_182671d3c;
  *(ulonglong *)(lVar2 + -0xda8) = uVar26 ^ uVar21;
  uVar11 = DAT_182671eac;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x510) = (uVar26 | uVar24) ^ uVar25;
  uVar26 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xc38) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0xc3a0686d)) ^ uVar28) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xc3a065f5)) ^ uVar25) ^ uVar26;
  uVar4 = DAT_182671e18;
  uVar10 = DAT_182671c84;
  uVar21 = (ulonglong)DAT_182671e18;
  uVar28 = (ulonglong)DAT_182671c90;
  uVar34 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar25 = *(ulonglong *)(lVar2 - (uVar28 ^ 0x81807314)) ^ uVar34 ^ uVar25 ^ uVar36 ^
           *(ulonglong *)(lVar2 + -0x680);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar25;
  uVar24 = ((ulonglong)(uVar4 >> 0x17) | uVar21 << 9) ^ uVar25 >> 0x17;
  uVar21 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar24 ^ uVar41;
  uVar34 = (uVar25 ^ uVar34) << (((byte)uVar10 ^ 0xa9) & 0x3f);
  uVar25 = CONCAT44(DAT_182671f20,DAT_182671f20);
  *(ulonglong *)(lVar2 + -0xa78) = uVar34 ^ uVar21;
  *puVar18 = (uVar34 | uVar24) ^ uVar25;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x33f94d32)) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0x680)) -
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0x8180742c)) ^ uVar25) ^ uVar23;
  uVar22 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar2 + -0xa08) =
       (CONCAT44(uVar5,DAT_182671c48) ^ 0x1cb45a33c6d64c21) +
       (CONCAT44(uVar17,uVar8) ^ 0x1bcb65f66a1d13b6);
  uVar36 = CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar24 = uVar36 ^ uVar26 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0xd88) ^
           *(ulonglong *)(lVar2 + -0xc38);
  *(ulonglong *)(lVar2 + -0xda8) = (uVar20 ^ 0x733b0fc0) >> 6;
  uVar10 = DAT_182671ce8;
  *(ulonglong *)(lVar2 + -0x110) = uVar24;
  uVar21 = (uVar24 ^ uVar36) >> ((bVar16 ^ 0xf1) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc90) = uVar21 ^ uVar27;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x888) = (uVar36 ^ uVar24) << (((byte)uVar7 ^ 0xfd) & 0x3f) ^ uVar31;
  uVar10 = DAT_182671cc4;
  uVar21 = *(ulonglong *)(lVar2 - (uVar35 ^ 0x7df95757)) ^ uVar31 | uVar21;
  *(ulonglong *)(lVar2 + -0x510) = uVar21 ^ uVar20;
  uVar11 = DAT_182671edc;
  uVar35 = CONCAT44(uVar10,uVar10);
  bVar16 = (byte)DAT_182671c74;
  *(ulonglong *)(lVar2 + -0xbd8) = (uVar26 ^ *(ulonglong *)(lVar2 + -0xc38)) - uVar21 ^ uVar35;
  uVar12 = DAT_182671ee4;
  uVar21 = *puVar29 ^ uVar20 ^ uVar23 ^ uVar42 ^ *(ulonglong *)(lVar2 + -0x960);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar21;
  uVar24 = (uVar21 ^ uVar42) >> ((bVar16 ^ 0xdb) & 0x3f);
  uVar20 = (uVar21 ^ uVar42) << 0xc;
  *(ulonglong *)(lVar2 + -0xa78) = uVar24 ^ CONCAT44(uVar11,uVar11);
  uVar10 = DAT_182671d64;
  *(ulonglong *)(lVar2 + -0x680) = uVar20 ^ CONCAT44(uVar12,uVar12);
  uVar11 = DAT_182671e30;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x4261808c)) = (uVar24 | uVar20) ^ uVar21;
  uVar10 = DAT_182671ee0;
  *(ulonglong *)(lVar2 + -0xd88) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0x960)) - (uVar21 ^ *puVar30) ^ CONCAT44(uVar11,uVar11);
  uVar20 = CONCAT44(uVar10,uVar10);
  uVar21 = *(ulonglong *)(lVar2 + -0xbd8) ^ uVar20 ^ uVar35 ^ uVar25 ^
           *(ulonglong *)(lVar2 + -0x228);
  *(ulonglong *)(lVar2 + -0xda8) = uVar21;
  uVar11 = DAT_182671eb0;
  uVar10 = DAT_182671d18;
  *(undefined1 *)(lVar2 + -0x6b9) = **(undefined1 **)(lVar2 + -0x6a8);
  uVar24 = (uVar20 ^ uVar21) >> ((local_res18 ^ 0x17) & 0x3f);
  uVar17 = DAT_182671c4c ^ 0xb4d3153;
  uVar21 = (uVar20 ^ uVar21) << 7;
  *(ulonglong *)(lVar2 + -0x110) = uVar24 ^ CONCAT44(uVar11,uVar11);
  *(uint *)(lVar2 + -0x54) = 0x763256c6 - uVar17;
  *(ulonglong *)(lVar2 + -0xc90) = uVar21 ^ CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar33) * 4) = uVar13;
  *(ulonglong *)(lVar2 + -0x888) = (uVar24 | uVar21) ^ CONCAT44(uVar10,uVar10);
  return;
}



############ FUN_ 180f8e260 size=4070 ############

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

void FUN_180f8e260(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  byte bVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong *puVar13;
  byte *pbVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint *puVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint *puVar33;
  ulonglong uVar34;
  
  uVar18 = DAT_182671ed0;
  uVar28 = DAT_182671e5c;
  uVar17 = DAT_182671d04;
  uVar22 = DAT_182671cd4;
  uVar6 = DAT_182671c94;
  uVar5 = DAT_182671c8c;
  uVar26 = DAT_182671c54;
  uVar27 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c94;
  uVar21 = (ulonglong)DAT_182671c54;
  uVar11 = (ulonglong)DAT_182671c8c;
  uVar19 = DAT_182671c94 | DAT_182671c48;
  uVar32 = DAT_182671c54 ^ DAT_182671c8c;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182672000);
  uVar10 = *(uint *)(&DAT_182613220 + DAT_182672000) ^ DAT_182671c94;
  uVar12 = (ulonglong)DAT_182671c48;
  puVar33 = (uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0xfde3c01c));
  uVar31 = (ulonglong)DAT_182671c54;
  DAT_182671c60 = uVar32;
  DAT_182671c78 = uVar19;
  *puVar33 = (*(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0xa508e762)) ^ DAT_182671e5c) *
             (uVar32 ^ 0x7c014211) ^ DAT_182671fac;
  uVar16 = *(uint *)(lVar3 + -0x684) ^ DAT_182671e94;
  *(longlong *)(lVar3 + -0x8f0) = -0x712b34ed5cf4f72 - *(longlong *)(lVar3 - (uVar31 ^ 0x81e284a8));
  *(uint *)(lVar3 - (uVar21 ^ 0x81e2801c)) =
       uVar16 + (*(uint *)(lVar3 + -0x644) ^ DAT_182671fac) ^ uVar22;
  uVar31 = (ulonglong)uVar19;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x7c014180)) =
       CONCAT44(uVar19,uVar27) ^ 0xd1e6c01683eac383 | *(ulonglong *)(lVar3 + -0x408);
  *(uint *)(lVar3 + -0x6c0) = (*(uint *)(lVar3 + -0x444) ^ uVar22) << 0xd ^ uVar17;
  *(uint *)(lVar3 - (uVar12 ^ 0xa508e05a)) =
       (*(uint *)(lVar3 + -0x444) ^ uVar22) >> (((byte)uVar26 ^ 0x4b) & 0x1f) ^ uVar18;
  lVar4 = DAT_182671c40;
  uVar27 = (uVar18 ^ *(uint *)(lVar3 + -0x76c) | uVar17 ^ *(uint *)(lVar3 + -0x6c0)) ^ DAT_182671e18
  ;
  *(uint *)(lVar3 + -0xae4) =
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar3 + -0x9dc) ^ DAT_182671e34) ^
       DAT_182671ca8;
  *(uint *)(lVar3 + -0x784) = uVar27;
  uVar27 = uVar27 ^ DAT_182671f78 ^ DAT_182671e18;
  *(uint *)(lVar4 + -0x634) =
       *(uint *)(lVar4 - (uVar30 ^ 0x80a20eac)) ^ DAT_182671e0c ^ DAT_182671ca8;
  *(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0x81e28d14)) = uVar27;
  uVar18 = DAT_182671e00;
  uVar12 = (ulonglong)DAT_182671c48;
  uVar15 = (ulonglong)DAT_182671f9c;
  *(uint *)(lVar4 - (uVar11 ^ 0xfde3c6cc)) =
       *(uint *)(lVar4 + -0x634) ^ DAT_182671e00 ^ DAT_182671e0c;
  *(ulonglong *)(lVar4 - (uVar12 ^ 0xa508ed3e)) =
       CONCAT44(uVar26,uVar6) ^ *(ulonglong *)(lVar4 + -0xbd8) ^ 0x5ad25155c3d09695;
  *(uint *)(lVar4 + -0x58c) =
       *(uint *)(lVar4 - (uVar11 ^ 0xfde3cf14)) ^ DAT_182671d08 ^ DAT_182671f78;
  uVar16 = DAT_182671de4;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x81e281f8)) =
       *(longlong *)(lVar4 - (uVar31 ^ 0xa5aaeed6)) +
       (CONCAT44(uVar32,uVar5) ^ 0x7c014200fde3c658) * 0x20 +
       (CONCAT44(uVar6,uVar6) ^ 0x80a2044880a20454) ^ uVar15;
  bVar2 = (byte)DAT_182671fb0;
  bVar9 = *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0x7c0147a0)) ^ uVar15) ^
          (byte)DAT_182671fb0 ^ (byte)DAT_182671e0c;
  uVar27 = DAT_182671d08 ^ *(uint *)(lVar4 + -0x58c);
  *(byte *)(lVar4 + -0x1c3) = bVar9;
  uVar22 = (uint)(bVar9 ^ bVar2);
  uVar27 = uVar27 + (uVar19 ^ 0x39e8f560) ^ DAT_182671f3c;
  *(uint *)(lVar4 + -0x1c8) = uVar22 ^ uVar16;
  *(uint *)(lVar4 + -0x61c) = uVar27;
  uVar27 = DAT_182671c48;
  *(uint *)(lVar4 + -0x670) = (uVar26 ^ 0x57b96a8d) * -0x1567383b;
  *(uint *)(lVar4 - (uVar31 ^ 0xa5aae72a)) =
       uVar22 << (((byte)uVar27 ^ 0x27) & 0x1f) ^ DAT_182671d34;
  uVar25 = DAT_182671e0c;
  puVar24 = (uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x80a202cc));
  *puVar24 = (uVar19 ^ 0x56c2cf15) -
             (*(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x80a2027c)) ^ DAT_182671e0c);
  *(uint *)(lVar4 + -0x644) =
       (*(uint *)(lVar4 + -0x61c) ^ DAT_182671f3c) - (*(uint *)(lVar4 + -0x54) ^ DAT_182671d34) ^
       DAT_182671d70;
  uVar22 = DAT_182671c48;
  uVar12 = CONCAT44(DAT_182671c48,uVar5);
  *(ulonglong *)(lVar4 + -0x7c0) = *(ulonglong *)(lVar4 + -0x8f0) ^ uVar12 ^ 0x45a4145391d571e5;
  uVar27 = DAT_182671cf4;
  uVar23 = (*puVar33 ^ DAT_182671d70) * (*(uint *)(lVar4 + -0x94) ^ uVar18) ^ DAT_182671d88;
  *(uint *)(lVar4 + -0x444) = uVar23;
  uVar23 = uVar23 ^ DAT_182671d88;
  uVar17 = (*(uint *)(lVar4 + -0x1c8) ^ uVar16) * (uVar22 ^ 0xa508e72a) ^ DAT_182671c9c;
  *(uint *)(lVar4 + -0x6c0) = uVar17;
  *(uint *)(lVar4 - (uVar11 ^ 0xfde3c134)) = (uVar17 ^ DAT_182671c9c) + uVar23 ^ uVar27;
  uVar27 = uVar27 ^ *(uint *)(lVar4 + -0x76c);
  uVar17 = uVar27 >> 0x13 ^ DAT_182671d38;
  *(uint *)(lVar4 + -0x9dc) = uVar27 << (((byte)uVar32 ^ 0xd) & 0x1f) ^ uVar28;
  *(uint *)(lVar4 + -0xae4) = uVar17;
  uVar17 = uVar17 ^ DAT_182671d38;
  *(ulonglong *)(lVar4 + -0xd88) =
       (CONCAT44(uVar6,uVar5) ^ 0x415c8e1b522292e8) >>
       ((byte)*(undefined8 *)(lVar4 + -0x3d8) & 0x3f);
  *(uint *)(lVar4 - (uVar21 ^ 0x81e283dc)) =
       (*(uint *)(lVar4 - (uVar31 ^ 0xa5aaeea2)) ^ uVar28 | uVar17) ^ DAT_182671da0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0x7c014480)) =
       (CONCAT44(uVar19,uVar19) ^ 0xb9b1a5475e7ca767) >> (((byte)uVar26 ^ 0x6d) & 0x3f);
  uVar28 = DAT_182671d14;
  uVar17 = DAT_182671c5c;
  uVar18 = (*(uint *)(lVar4 + -0x94) ^ uVar18) + (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) ^
           DAT_182671e38;
  uVar20 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar4 + -0x670) = DAT_182671ebc ^ DAT_182671da0 ^ *(uint *)(lVar4 + -0x784);
  uVar27 = DAT_182671c48 ^ 0x724882;
  *(uint *)(lVar4 + -0x94c) = uVar18;
  uVar18 = uVar18 ^ DAT_182671f88 ^ DAT_182671e38;
  *(uint *)(lVar4 + -0x634) = uVar27 & 0x23776e83;
  uVar27 = uVar28 ^ DAT_182671f88;
  *(uint *)(lVar4 + -0x58c) = uVar18;
  *(uint *)(lVar4 + -0x684) = uVar27 ^ uVar18;
  uVar29 = uVar17 << 0x10 | uVar17 >> 0x10;
  uVar15 = (ulonglong)DAT_182671ddc;
  DAT_182671c74 = uVar29;
  *(longlong *)(lVar4 - ((ulonglong)uVar17 ^ 0x100845aa)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar29 ^ 0x41121a78)) <<
       ((byte)*(undefined8 *)(lVar4 + -0x5e8) & 0x3f);
  *(uint *)(lVar4 + -0x61c) = *(uint *)(lVar4 + -0x670) ^ DAT_182671dc4 ^ DAT_182671ebc;
  bVar2 = (byte)DAT_182671d78;
  *(ulonglong *)(lVar4 + -0xc20) =
       (CONCAT44(uVar29,uVar17) ^ 0x4112100810084115) +
       (CONCAT44(uVar17,uVar29) ^ 0x1008411241121008) * 0x20 + *(longlong *)(lVar4 + -0x9a8) ^
       uVar15;
  *(byte *)(lVar4 - ((ulonglong)uVar29 ^ 0x411211cb)) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0x10084d32)) ^ uVar15) ^ bVar2 ^
       (byte)uVar25;
  uVar18 = DAT_182671db8;
  lVar3 = DAT_182671c40;
  uVar25 = (uint)(*(byte *)(lVar4 + -0x1c3) ^ bVar2);
  uVar27 = *(uint *)(DAT_182671c40 + -0x684);
  uVar23 = (*(uint *)(DAT_182671c40 + -0x61c) ^ DAT_182671dc4) + (uVar17 ^ 0x8c4a530c) ^
           DAT_182671e28;
  *(uint *)(DAT_182671c40 + -0x54) = uVar25 ^ DAT_182671db8;
  *(uint *)(lVar3 + -0x644) = uVar23;
  uVar23 = uVar23 ^ DAT_182671e28;
  *(uint *)(lVar3 + -0x1c8) = uVar25 << (((byte)uVar17 ^ 3) & 0x1f) ^ uVar16;
  uVar25 = DAT_182671e24;
  uVar23 = uVar23 - (*(uint *)(lVar3 - ((ulonglong)uVar17 ^ 0x100840da)) ^ uVar16);
  *(uint *)(lVar3 + -0x444) = uVar23 ^ DAT_182671f98;
  uVar16 = DAT_182671e98;
  *(uint *)(lVar3 - ((ulonglong)uVar29 ^ 0x411216c8)) = (uVar27 ^ uVar28) * uVar23 ^ DAT_182671e98;
  *(uint *)(lVar3 - (uVar30 ^ 0x80a20324)) =
       (*(uint *)(lVar3 + -0x54) ^ uVar18) * (uVar17 ^ 0x10084115) ^ uVar25;
  uVar27 = DAT_182671d44;
  uVar18 = (uVar25 ^ *(uint *)(lVar3 + -0x76c)) + (uVar16 ^ *(uint *)(lVar3 + -0x6c0));
  *(ulonglong *)(lVar3 + -0x510) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x100846d2)) >>
       ((byte)*(undefined8 *)(lVar3 + -0xa08) & 0x3f);
  *(uint *)(lVar3 + -0x9dc) = uVar18 ^ DAT_182671d60;
  uVar25 = uVar18 >> (((byte)uVar17 ^ 1) & 0x1f) ^ DAT_182671f94;
  *(uint *)(lVar3 + -0xae4) = uVar18 << (((byte)(uVar17 >> 0x10) ^ 5) & 0x1f) ^ uVar27;
  uVar7 = DAT_182671ec4;
  uVar16 = DAT_182671d0c;
  uVar18 = DAT_182671c70;
  uVar34 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar3 - (uVar21 ^ 0x81e284cc)) = uVar25;
  uVar8 = DAT_182671f24;
  *(uint *)(lVar3 + -0x94c) =
       (*(uint *)(lVar3 + -0x94) ^ DAT_182671f94 | uVar27 ^ *(uint *)(lVar3 + -0xae4)) ^
       DAT_182671cf8;
  lVar4 = DAT_182671c40;
  uVar28 = (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + (*puVar24 ^ uVar28) ^ DAT_182671cd0;
  puVar13 = (ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x100847fa));
  *(uint *)(DAT_182671c40 + -0x784) = uVar28;
  uVar27 = DAT_182671dbc ^ DAT_182671cd0;
  *(ulonglong *)(lVar4 + -0xa60) =
       *(ulonglong *)(*puVar13 ^ CONCAT44(uVar7,uVar7)) ^ CONCAT44(uVar8,uVar8);
  *(uint *)(lVar4 - ((ulonglong)uVar29 ^ 0x4112163c)) = uVar27 ^ uVar28;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0x41121b28)) =
       uVar12 ^ 0xe2cee6bcd0c4a7fa | *(ulonglong *)(lVar4 + -0xa08);
  *(uint *)(lVar4 + -0x58c) = *(uint *)(lVar4 + -0x94c) ^ DAT_182671eac ^ DAT_182671cf8;
  uVar27 = *(uint *)(lVar4 + -0x634) ^ uVar16 ^ DAT_182671dbc;
  *(ulonglong *)(lVar4 + -0xa78) =
       CONCAT44(uVar26,uVar29) ^ CONCAT44(uVar19,uVar29) ^ 0xc7689a3b7ee5fcb5;
  *(uint *)(lVar4 - (uVar30 ^ 0x80a20238)) = uVar27;
  uVar28 = DAT_182671e78;
  uVar26 = DAT_182671d54;
  uVar12 = (ulonglong)DAT_182671e78;
  uVar27 = DAT_182671c60 ^ 0xd23a3e5f;
  *(uint *)(lVar4 - (uVar34 ^ 0x36e70eb9)) =
       DAT_182671e50 ^ DAT_182671eac ^ *(uint *)(lVar4 + -0x58c);
  *(uint *)(lVar4 + -0x644) = uVar27 + (DAT_182671c94 ^ 0x1ce01656);
  bVar2 = (byte)DAT_182671f68;
  pbVar14 = (byte *)((CONCAT44(uVar17,uVar6) ^ 0x1008411280a2045a) + *(longlong *)(lVar4 + -0x9a8));
  *(ulonglong *)(lVar4 + -0x170) = (ulonglong)pbVar14 ^ uVar12;
  bVar9 = *pbVar14 ^ bVar2 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar4 + -0x1c3) = bVar9;
  uVar12 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar4 + -0x760) =
       CONCAT44(uVar17,uVar5) ^ 0x236daab60cbd3e3c | *(ulonglong *)(lVar4 + -0x380);
  uVar5 = DAT_182671e60;
  *(uint *)(lVar4 + -0x1c8) = (bVar2 ^ bVar9) ^ uVar26;
  uVar15 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar4 - (uVar12 ^ 0x2b58c48)) =
       (*(uint *)(lVar4 + -0x61c) ^ DAT_182671e50) + (uVar17 ^ 0x8c4a530c) ^ uVar5;
  uVar27 = (*(uint *)(lVar4 + -0x1c8) ^ uVar26) << 0x11 ^ DAT_182671da8;
  *(uint *)(lVar4 + -0x54) = uVar27;
  *(uint *)(lVar4 + -0x6c0) =
       (*(uint *)(lVar4 - (uVar15 ^ 0xa508e372)) ^ uVar5) - (uVar27 ^ DAT_182671da8) ^ DAT_182671da4
  ;
  *(ulonglong *)(lVar4 + -0xc38) =
       (CONCAT44(uVar19,uVar32) ^ 0xc847d2b87a03924d) - *(longlong *)(lVar4 + -0x4b8);
  uVar27 = DAT_182671c68;
  lVar3 = DAT_182671c40;
  uVar25 = uVar18 - DAT_182671c68;
  uVar17 = DAT_182671c7c ^ 0xa7071c8c;
  *(uint *)(lVar4 + -0x76c) =
       (*(uint *)(lVar4 - (uVar11 ^ 0xfde3c098)) ^ DAT_182671da4) *
       (*(uint *)(lVar4 - (uVar31 ^ 0xa5aae10e)) ^ uVar16) ^ DAT_182671ef8;
  *(uint *)(lVar4 + -0x9dc) = uVar17 + 0xe5c9121e;
  uVar26 = (*(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0x36f118c5)) ^ uVar26) * (uVar18 ^ 0x36e708b7) ^
           DAT_182671ce8;
  DAT_182671c6c = uVar25;
  *(uint *)(lVar3 + -0xae4) = uVar26;
  *(uint *)(lVar3 + -0x94) =
       (*(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0xfff5e8f4)) ^ DAT_182671ef8) +
       (uVar26 ^ DAT_182671ce8) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x960) =
       CONCAT44(uVar25,uVar18) ^ *(ulonglong *)(lVar3 + -0xa08) ^ 0x8abbb3becea26d63;
  lVar4 = DAT_182671c40;
  puVar24 = (uint *)(lVar3 - ((ulonglong)uVar27 ^ 0xfff5ef0c));
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar25 ^ 0x36f11f89)) =
       (*puVar24 ^ uVar28) << 0xd ^ DAT_182671ce4;
  uVar26 = (*puVar24 ^ uVar28) >> (((byte)uVar18 ^ 0xb6) & 0x1f) ^ DAT_182671fa4;
  *(uint *)(lVar4 + -0x784) = uVar26;
  *(uint *)(lVar4 + -0x94c) =
       (*(uint *)(lVar4 - (uVar34 ^ 0x36e70e21)) ^ DAT_182671ce4 | uVar26 ^ DAT_182671fa4) ^
       DAT_182671d40;
  uVar6 = DAT_182671ec0;
  uVar17 = DAT_182671d64;
  uVar26 = DAT_182671d4c;
  *(ulonglong *)(lVar4 + -0xda8) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0xfff5e4b8)) ^ CONCAT44(uVar25,uVar27) ^
       0xe2dd8cac00b6bca9;
  uVar16 = (*(uint *)(lVar4 - ((ulonglong)uVar27 ^ 0xfff5ea4c)) ^ DAT_182671dd4) +
           (*(uint *)(lVar4 + -0x670) ^ uVar16) ^ DAT_182671f14;
  *(uint *)(lVar4 + -0x634) = uVar16;
  *(uint *)(lVar4 - ((ulonglong)uVar25 ^ 0x36f11c81)) = uVar16 ^ uVar26 ^ DAT_182671f14;
  uVar16 = *(uint *)(lVar4 - (uVar34 ^ 0x36e701e9)) ^ DAT_182671d40 ^ DAT_182671db8;
  *(uint *)(lVar4 + -0x644) = uVar16;
  *(uint *)(lVar4 + -0x61c) = uVar26 ^ uVar5 ^ *(uint *)(lVar4 + -0x58c);
  *(uint *)(lVar4 - ((ulonglong)uVar27 ^ 0xfff5ebdc)) = DAT_182671eb4 ^ uVar16 ^ DAT_182671db8;
  uVar31 = (ulonglong)DAT_182671cbc;
  uVar26 = (*(uint *)(lVar4 + -0x444) ^ DAT_182671eb4) + (uVar25 ^ 0xaab30b13);
  pbVar14 = (byte *)((CONCAT44(uVar18,uVar27) ^ 0x36e708a5fff5ef98) * 0x20 +
                    *(longlong *)(lVar4 + -0x9a8) + 0x1d);
  *(ulonglong *)(lVar4 + -0x7e8) =
       CONCAT44(uVar25,uVar18) ^ *(ulonglong *)(lVar4 + -0x960) ^ 0xd67c7c4031f7a990;
  bVar2 = (byte)DAT_182671ed8;
  *(ulonglong *)(lVar4 + -0xbc0) = (ulonglong)pbVar14 ^ uVar31;
  bVar9 = *pbVar14 ^ bVar2 ^ (byte)DAT_182671e0c;
  uVar18 = (uint)(bVar2 ^ bVar9);
  *(byte *)(lVar4 + -0x1c3) = bVar9;
  *(uint *)(lVar4 + -0x54) = uVar18 ^ uVar6;
  *(uint *)(lVar4 + -0x6c0) = uVar26 ^ uVar17;
  bVar2 = (byte)DAT_182671c4c;
  uVar31 = (CONCAT44(uVar22,DAT_182671c80) ^ 0x34a0ca88df82506a) +
           *(longlong *)(lVar4 - (uVar21 ^ 0x81e28e08));
  *(ulonglong *)(lVar4 + -0xb08) = uVar31;
  uVar27 = DAT_182671db0;
  uVar22 = (*(uint *)(lVar4 - (uVar34 ^ 0x36e708f1)) ^ uVar6) << ((bVar2 ^ 0x7f) & 0x1f) ^
           DAT_182671e88;
  *(uint *)(lVar4 + -0x9dc) = uVar22;
  uVar26 = uVar26 - (uVar22 ^ DAT_182671e88);
  *(ulonglong *)(lVar4 + -0xf0) = uVar31 | *(ulonglong *)(lVar4 + -0xa08);
  uVar22 = DAT_182671c48 ^ 0xa508e72b;
  *(uint *)(lVar4 + -0x1c8) = uVar26 ^ uVar27;
  uVar27 = DAT_182671edc;
  uVar18 = uVar18 * uVar22;
  uVar26 = uVar26 * (*(uint *)(lVar4 + -0x61c) ^ uVar5);
  *(uint *)(lVar4 + -0xae4) = uVar18 ^ _DAT_182671cf0;
  *(uint *)(lVar4 + -0x76c) = uVar26 ^ uVar27;
  uVar27 = uVar18 + uVar26 ^ DAT_182671fb4;
  *(uint *)(lVar4 + -0x94) = uVar27;
  uVar27 = uVar27 ^ DAT_182671fb4;
  *(uint *)(lVar4 + -0x684) = uVar27 << 0xd ^ DAT_182671de0;
  *(uint *)(lVar4 + -0x784) = uVar27 >> (((byte)DAT_182671c58 ^ 3) & 0x1f) ^ DAT_182671d08;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar10 * 4) = uVar1 ^ uVar19;
  return;
}



############ FUN_ 180f89cf0 size=5790 ############

void FUN_180f89cf0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  ulonglong *puVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  byte bVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  byte bVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte local_100;
  
  uVar10 = DAT_182671f30;
  uVar7 = DAT_182671c94;
  uVar9 = DAT_182671c90;
  uVar8 = DAT_182671c80;
  uVar16 = DAT_182671c7c;
  uVar5 = DAT_182671c70;
  lVar2 = DAT_182671c40;
  uVar45 = (ulonglong)DAT_182671c94;
  uVar26 = (ulonglong)DAT_182671c80;
  uVar38 = (ulonglong)DAT_182671c70;
  uVar42 = (ulonglong)DAT_182671c90;
  DAT_182671c4c = DAT_182671c80 * DAT_182671c70;
  uVar21 = DAT_182671c94 & DAT_182671c90;
  uVar22 = DAT_182671c7c << 0x10 | DAT_182671c7c >> 0x10;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182672234);
  uVar15 = *(uint *)(&DAT_182613218 + DAT_182672234) ^ DAT_182671c94;
  uVar32 = *(ulonglong *)(DAT_182671c40 + -0x408);
  uVar18 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  DAT_182671c48 = uVar22;
  DAT_182671c5c = uVar21;
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       CONCAT44(DAT_182671d78,DAT_182671d78) ^ uVar32 ^ uVar18 ^
       *(ulonglong *)(DAT_182671c40 + -0x30);
  uVar6 = DAT_182671d34;
  lVar3 = DAT_182671c40;
  uVar41 = CONCAT44(uVar10,uVar10);
  uVar49 = CONCAT44(DAT_182671f54,DAT_182671f54);
  bVar37 = (byte)uVar5;
  *(ulonglong *)(lVar2 + -0xa60) =
       (CONCAT44(DAT_182671d64,DAT_182671d64) ^ *(ulonglong *)(lVar2 + -0x7e8)) -
       (uVar41 ^ *(ulonglong *)(lVar2 + -0xbd8)) ^ uVar49;
  uVar28 = CONCAT44(uVar6,uVar6);
  uVar32 = CONCAT44(DAT_182671cb8,DAT_182671cb8) ^ uVar28 ^ uVar32 ^ uVar18 ^
           *(ulonglong *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar32;
  uVar33 = (uVar32 ^ uVar28) >> ((bVar37 ^ 0x14) & 0x3f);
  uVar39 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar3 + -0xc90) = uVar33 ^ CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar6 = DAT_182671e7c;
  uVar32 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xf8fff387)) ^ uVar28) << 7;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar32 ^ uVar39;
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar32 = uVar32 | uVar33;
  uVar20 = CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar33 = (ulonglong)uVar16;
  puVar13 = (ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x6a9d1ef7));
  *(ulonglong *)(lVar3 + -0x920) = uVar32 ^ uVar29;
  uVar4 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c4c ^ 0x53c032f3)) =
       (*puVar13 ^ uVar18) - uVar32 ^ uVar20;
  uVar6 = DAT_182671d6c;
  uVar28 = (ulonglong)uVar22;
  bVar44 = (byte)uVar7;
  *(ulonglong *)(lVar2 + -0x380) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0x4b8)) + (CONCAT44(uVar22,uVar8) ^ 0xacd079fc4f6df0e);
  uVar10 = DAT_182671f78;
  lVar3 = DAT_182671c40;
  uVar39 = CONCAT44(uVar6,uVar6);
  uVar30 = (ulonglong)uVar21;
  uVar32 = uVar39 ^ uVar29 ^ uVar49 ^ *(ulonglong *)(lVar2 + -0x920) ^
           *(ulonglong *)(lVar2 + -0xa60);
  *(ulonglong *)(lVar2 + -0x828) = uVar32;
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xd8eeb27d)) =
       (uVar32 ^ uVar39) >> ((bVar44 ^ 0x51) & 0x3f) ^ uVar29;
  bVar27 = (byte)uVar21;
  uVar39 = (uVar39 ^ *(ulonglong *)(lVar3 + -0x828)) << ((bVar27 ^ 0x32) & 0x3f);
  uVar32 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar3 + -0xb18) = uVar39 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xf0) = (uVar29 ^ *(ulonglong *)(lVar3 + -0xa50) | uVar39) ^ uVar32;
  uVar6 = DAT_182671d1c;
  *(ulonglong *)(lVar3 + -0xda8) =
       (CONCAT44(uVar16,uVar7) ^ 0x7baa4be55a844bd1) + (CONCAT44(uVar9,uVar9) ^ 0x25af1259eed3acc7);
  uVar39 = CONCAT44(uVar6,uVar6);
  uVar29 = (uVar49 ^ *(ulonglong *)(lVar3 + -0xa60)) - (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar39);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar29 ^ CONCAT44(DAT_182671f80,DAT_182671f80);
  puVar13 = (ulonglong *)(lVar3 - (uVar26 ^ 0xf8fff90f));
  uVar46 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar29 - (uVar32 ^ *puVar13) ^ uVar46;
  lVar2 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar23 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar49 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (uVar32 ^ *puVar13) - (uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) ^ uVar23;
  lVar3 = DAT_182671c40;
  puVar17 = (ulonglong *)(lVar2 - (uVar28 ^ 0x1aff61bd));
  uVar31 = CONCAT44(DAT_182671e84,DAT_182671e84);
  bVar24 = (byte)uVar8;
  uVar32 = uVar49 ^ uVar20 ^ uVar41 ^ *puVar17 ^ *(ulonglong *)(lVar2 + -0xbd8);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar32;
  uVar6 = DAT_182671db4;
  puVar34 = (ulonglong *)(lVar2 - (uVar33 ^ 0x6a9d18d7));
  *puVar34 = (uVar32 ^ uVar49) >> ((bVar24 ^ 0xef) & 0x3f) ^ uVar31;
  uVar10 = DAT_182671f8c;
  uVar50 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x53c033ab)) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x9562e2e8)) ^ uVar49) << ((bVar37 ^ 0x1d) & 0x3f) ^ uVar50
  ;
  uVar11 = DAT_182671d90;
  uVar32 = uVar50 ^ *(ulonglong *)(lVar3 + -0xa78) | uVar31 ^ *(ulonglong *)(lVar3 + -0x228);
  uVar49 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar3 + -0xc90) = uVar32 ^ uVar49;
  puVar25 = (ulonglong *)(lVar3 - (uVar42 ^ 0x9562e108));
  *(ulonglong *)(lVar3 + -0x408) =
       (uVar20 ^ *(ulonglong *)(lVar3 + -0xb20)) -
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0x760)) ^ CONCAT44(uVar11,uVar11);
  uVar10 = DAT_182671e94;
  uVar6 = DAT_182671cc0;
  uVar20 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *(ulonglong *)(lVar3 + -0x4b8) = (CONCAT44(uVar11,uVar11) ^ *puVar25) - uVar32 ^ uVar20;
  uVar32 = CONCAT44(uVar10,uVar10);
  puVar43 = (ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x53c03a53));
  *puVar43 = (CONCAT44(uVar9,uVar21) ^ 0x6a9d1aff6adffbfc) -
             (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0x3d8)) ^ uVar32;
  uVar10 = DAT_182671e38;
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar3 + -0x920) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x1aff660d)) ^ uVar49) +
       (*(ulonglong *)(lVar3 + -0x380) ^ uVar32) ^ uVar31;
  uVar6 = DAT_182671dc8;
  uVar32 = CONCAT44(uVar10,uVar10);
  puVar19 = (ulonglong *)(lVar2 - (uVar45 ^ 0xb5ac0d7f));
  *(ulonglong *)(lVar2 + -0x828) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0xd8eeb81d)) ^ uVar46 ^ *puVar19 ^ uVar32 ^ uVar31;
  uVar35 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x9562ef50)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c4c ^ 0x53c031fb)) ^ uVar32) >>
       ((bVar27 ^ 0x20) & 0x3f) ^ uVar35;
  lVar2 = DAT_182671c40;
  uVar32 = (*(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0xb5ac0c77)) ^ uVar32) <<
           ((bVar27 ^ 0x20) & 0x3f);
  puVar13 = (ulonglong *)(DAT_182671c40 + -0xa50);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar32 ^ CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x952009a8)) = (uVar32 | uVar35 ^ *puVar13) ^ uVar31;
  uVar6 = DAT_182671d28;
  uVar49 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(lVar2 + -0xa60) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x6a9d1acf)) ^ uVar46) -
       (*(ulonglong *)(lVar2 + -0xda8) ^ uVar31) ^ uVar49;
  uVar10 = DAT_182671d38;
  uVar41 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x5e8) =
       *(ulonglong *)(lVar2 - (uVar45 ^ 0xb5ac00e7)) ^ uVar23 ^ uVar41 ^ uVar20 ^
       *(ulonglong *)(lVar2 + -0x510);
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(uVar5,uVar9) ^ 0x7debeac0ea5ea344) <<
       (((byte)uVar11 ^ *(byte *)(lVar2 + -0x408)) & 0x3f);
  lVar2 = DAT_182671c40;
  bVar14 = (byte)(uVar16 >> 0x10);
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar32 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar41) >> ((bVar27 ^ 0x20) & 0x3f) ^ uVar23;
  uVar32 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0x53c03c3b)) ^ uVar41) << ((bVar14 ^ 0xbd) & 0x3f);
  uVar46 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar32 ^ CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar5 = DAT_182671c6c;
  lVar3 = DAT_182671c40;
  puVar36 = (ulonglong *)(lVar2 - (uVar38 ^ 0xd8eeba05));
  uVar47 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *puVar36 = (*(ulonglong *)(lVar2 - (uVar42 ^ 0x9562eed8)) ^ uVar23 | uVar32) ^ uVar46;
  uVar6 = DAT_182671e6c;
  puVar13 = (ulonglong *)(lVar3 - (uVar45 ^ 0xb5ac0e27));
  *puVar13 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x52c2e656)) ^ uVar20) -
             (*puVar34 ^ uVar46) ^ uVar47;
  uVar32 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x760) =
       *(ulonglong *)(lVar3 + -0xa60) ^ uVar32 ^ uVar46 ^ uVar49 ^ *(ulonglong *)(lVar3 + -0x228);
  uVar7 = DAT_182671c60;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x95200f20)) =
       *(ulonglong *)
        (*(ulonglong *)(lVar3 - (uVar26 ^ 0xf8fff4af)) ^ CONCAT44(DAT_182671f08,DAT_182671f08)) ^
       CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar6 = DAT_182671f64;
  lVar2 = DAT_182671c40;
  uVar32 = *(ulonglong *)(lVar3 + -0x760) ^ uVar32;
  uVar23 = uVar32 >> (((byte)DAT_182671c4c ^ 0xe9) & 0x3f);
  uVar20 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar32 << (((byte)DAT_182671c4c ^ 0xd5) & 0x3f) ^ uVar20;
  *(ulonglong *)(lVar2 + -0xc90) = uVar23 ^ uVar50;
  lVar2 = DAT_182671c40;
  uVar50 = CONCAT44(uVar6,uVar6);
  uVar32 = *(ulonglong *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0x920) = (*puVar43 ^ uVar20 | uVar23) ^ uVar50;
  uVar41 = CONCAT44(DAT_182671d20,DAT_182671d20);
  local_100 = (byte)uVar16;
  *(ulonglong *)(lVar2 + -0x828) =
       (*(ulonglong *)(lVar2 + -0xa60) ^ uVar49) -
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0x1aff63bd)) ^ uVar50) ^ uVar41;
  *(ulonglong *)(lVar2 + -0xa50) = (uVar46 ^ uVar32) << ((local_100 ^ 0xda) & 0x3f);
  uVar5 = DAT_182671c54;
  uVar46 = CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar23 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar31 = *(ulonglong *)(lVar2 + -0xda8) ^ uVar46 ^ uVar47 ^ uVar31 ^
           *(ulonglong *)(lVar2 + -0xa78);
  *(ulonglong *)(lVar2 + -0xb18) = uVar31;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x30) = (uVar31 ^ uVar46) >> ((bVar44 ^ 0x49) & 0x3f) ^ uVar23;
  uVar20 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar32 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xf81a927a)) =
       (uVar31 ^ uVar46) << ((bVar37 ^ 7) & 0x3f) ^ uVar20;
  *(uint *)(lVar3 + -0x94) = (DAT_182671c90 ^ 0x5c6bf569) + *(int *)(lVar3 + -0x58c);
  uVar31 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar32 = *(ulonglong *)(lVar3 - (uVar32 ^ 0xd4b858bc)) ^ uVar23 |
           uVar20 ^ *(ulonglong *)(lVar3 + -0x510);
  uVar40 = uVar32 ^ uVar31;
  *(ulonglong *)(lVar3 + -0x408) = uVar40;
  uVar20 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar3 + -0xf0) =
       (CONCAT44(uVar9,uVar22) ^ 0x65a2a18fe0bcacbe) >> ((bVar24 ^ 0xdd) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5e8) = (*puVar13 ^ uVar47) - uVar32 ^ uVar20;
  uVar6 = DAT_182671ec8;
  uVar47 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar46 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  uVar31 = uVar40 ^ uVar47 ^ uVar31 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x828);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar31;
  uVar32 = (uVar31 ^ uVar47) >> (((byte)uVar5 ^ 0x44) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar32 ^ uVar46;
  uVar40 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar31 = (uVar47 ^ uVar31) << ((bVar14 ^ 0x8f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x4b8) = uVar31 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x9562ee20)) = (uVar31 | uVar32) ^ uVar40;
  uVar46 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar31 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar3 + -0x760) =
       (uVar41 ^ *(ulonglong *)(lVar3 + -0x828)) - (*(ulonglong *)(lVar3 + -0xb20) ^ uVar40) ^
       uVar46;
  uVar47 = CONCAT44(DAT_182671da8,DAT_182671da8);
  uVar50 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c4c ^ 0x53c030f3)) ^
           *(ulonglong *)(lVar3 + -0x5e8) ^ uVar31 ^ uVar20 ^ uVar50;
  *(ulonglong *)(lVar3 + -0xc90) = uVar50;
  *(ulonglong *)(lVar3 + -0x380) = (uVar50 ^ uVar31) >> ((bVar24 ^ 0xf3) & 0x3f) ^ uVar47;
  uVar6 = DAT_182671dcc;
  *(ulonglong *)(lVar3 + -0xa60) = uVar23 ^ *(ulonglong *)(lVar3 + -0x30) | 0x47facaf990318f07;
  uVar32 = CONCAT44(uVar6,uVar6);
  *puVar34 = (uVar50 ^ uVar31) << ((bVar44 ^ 0x6b) & 0x3f) ^ uVar32;
  uVar6 = DAT_182671ca4;
  *(undefined8 *)(lVar3 + -0xa50) = **(undefined8 **)(lVar3 + -0xb88);
  uVar16 = DAT_182671f94;
  uVar10 = DAT_182671dbc;
  lVar2 = DAT_182671c40;
  uVar41 = CONCAT44(uVar6,uVar6);
  uVar23 = *(ulonglong *)(lVar3 - (uVar38 ^ 0xd8eebbad)) ^ uVar47 |
           uVar32 ^ *(ulonglong *)(lVar3 + -0x228);
  uVar31 = (ulonglong)DAT_182671f94;
  uVar47 = uVar23 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xda8) = uVar47;
  uVar48 = CONCAT44(uVar10,uVar10);
  uVar50 = CONCAT44(uVar16,uVar16);
  uVar32 = *(ulonglong *)(lVar2 + -0x760);
  uVar23 = (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar20) - uVar23 ^ uVar48;
  *(ulonglong *)(lVar2 + -0x510) = (uVar26 ^ 0x23000000) >> 0x18;
  uVar6 = DAT_182671f18;
  *(ulonglong *)(lVar2 + -0xb18) = uVar23;
  uVar20 = uVar32 ^ uVar47 ^ uVar50 ^ uVar41 ^ uVar46;
  uVar47 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0xf0) = uVar20;
  uVar26 = ((ulonglong)(uVar16 >> 0x19) | uVar31 << 7) ^ uVar20 >> 0x19;
  uVar20 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0xa78) = uVar26 ^ uVar47;
  uVar10 = DAT_182671e14;
  uVar16 = DAT_182671c6c;
  lVar3 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0x408) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0x52c2e21e)) ^ uVar50) << ((bVar44 ^ 0x78) & 0x3f) ^ uVar35
  ;
  uVar6 = DAT_182671c98;
  uVar20 = CONCAT44(uVar10,uVar10);
  uVar26 = uVar26 | *puVar25 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar26 ^ uVar20;
  uVar10 = DAT_182671e60;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (uVar32 ^ uVar46) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xf81a91ea)) ^ CONCAT44(uVar6,uVar6)) ^ uVar18;
  uVar11 = DAT_182671eb8;
  lVar3 = DAT_182671c40;
  uVar35 = CONCAT44(uVar10,uVar10);
  uVar46 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0xf81a9cb2)) ^ uVar18) -
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0x52c2e506)) ^ uVar20) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x828) =
       uVar26 - (CONCAT44(DAT_182671f68,DAT_182671f68) ^ *(ulonglong *)(lVar3 + -0xb08)) ^ uVar46;
  *puVar19 = *(ulonglong *)(lVar3 + -0xb20) ^ uVar23 ^ uVar48 ^ uVar41 ^ uVar40;
  uVar6 = DAT_182671d70;
  uVar20 = (ulonglong)DAT_182671c60;
  uVar26 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar3 + -0x30) = 0x8fc43e34c8fe3339 >> (((byte)DAT_182671c4c ^ 0xff) & 0x3f);
  uVar31 = (*(ulonglong *)(lVar3 + -0x920) ^ uVar41) >> ((bVar37 ^ 0xc) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc90) =
       (uVar18 ^ *(ulonglong *)(lVar3 + -0xbd8)) <<
       (((byte)uVar11 ^ *(byte *)(lVar3 + -0x828)) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa60) = uVar31 ^ uVar26;
  uVar32 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x380) = (*(ulonglong *)(lVar3 + -0x920) ^ uVar41) << 0x1f ^ uVar32;
  *(ulonglong *)(lVar3 + -0x228) = CONCAT44(uVar4,uVar16) ^ 0xefff7fdfff77cd3d | 0xaad97b5f79670d39;
  uVar18 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x952001e8)) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0xd4b85b0c)) ^ uVar32 | uVar31) ^ uVar18;
  uVar6 = DAT_182671cd0;
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x6a9d109f)) ^ uVar26) + 0xb32a1f529b2072f5;
  uVar4 = DAT_182671c54;
  uVar32 = CONCAT44(uVar6,uVar6);
  uVar31 = CONCAT44(uVar5,DAT_182671c54);
  *(ulonglong *)(lVar3 + -0xda8) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x9562ee18)) ^ uVar48) -
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x6a9d16c7)) ^ uVar29) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xd8eebc25)) =
       (uVar31 ^ 0x24a6227422781b46) - (*(ulonglong *)(lVar3 - (uVar45 ^ 0xb5ac04af)) ^ uVar50);
  uVar29 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0xd4b85524)) ^ uVar32) -
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar18) ^ uVar29;
  uVar10 = DAT_182671e9c;
  *(ulonglong *)(lVar3 + -0x760) =
       *(ulonglong *)(lVar3 - (uVar45 ^ 0xb5ac0e3f)) ^ uVar26 |
       CONCAT44(uVar9,DAT_182671c4c) ^ 0x671e2cc4ce1a2444;
  uVar6 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (CONCAT44(DAT_182671c58,uVar4) ^ 0x9f4474bf07e56897) -
       (CONCAT44(DAT_182671ddc,DAT_182671ddc) ^ *(ulonglong *)(DAT_182671c40 + -0x888)) ^ uVar20;
  uVar4 = DAT_182671c74;
  *puVar17 = CONCAT44(uVar8,uVar8) ^ 0x21edef8d019d91c | *(ulonglong *)(lVar2 + -0xa50);
  uVar32 = CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar20 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x7e8)) + (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar18) ^
           uVar32;
  *(ulonglong *)(lVar2 + -0x30) = uVar20;
  uVar5 = DAT_182671c88;
  uVar16 = DAT_182671c4c ^ 0x14c9ed5d;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xd868fae0)) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0x1aff6e25)) ^ uVar20 ^ uVar32 ^ uVar35 ^ uVar47;
  uVar10 = DAT_182671de8;
  lVar2 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x94c) = uVar16 | uVar5 ^ 0x8ae2708e;
  uVar12 = DAT_182671ee0;
  uVar33 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0x6a9d1127)) ^ uVar47) >>
           (((byte)DAT_182671c84 ^ 0xdd) & 0x3f);
  bVar14 = (byte)DAT_182671c64;
  *(ulonglong *)(lVar2 + -0xc90) = uVar33 ^ CONCAT44(uVar10,uVar10);
  uVar11 = DAT_182671d2c;
  lVar2 = DAT_182671c40;
  uVar20 = (uVar47 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) << ((bVar14 ^ 0xed) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar20 ^ CONCAT44(uVar12,uVar12);
  uVar10 = DAT_182671ce4;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x228) = (uVar20 | uVar33) ^ uVar32;
  lVar2 = DAT_182671c40;
  uVar33 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (*(ulonglong *)(DAT_182671c40 + -0x4b8) ^ uVar35) - (uVar32 ^ *puVar36) ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar45 ^ 0xb5ac014f)) =
       (CONCAT44(uVar7,uVar8) ^ 0xe2192624de4cabe9) >> ((bVar24 ^ 0xd8) & 0x3f);
  uVar32 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar18 = uVar32 ^ uVar29 ^ uVar46 ^ *(ulonglong *)(lVar2 + -0xa78) ^
           *(ulonglong *)(lVar2 + -0x828);
  *(ulonglong *)(lVar2 + -0xc38) = uVar18;
  uVar20 = (*(ulonglong *)(lVar2 - (uVar28 ^ 0x1aff66a5)) ^ uVar32) >> (((byte)uVar4 ^ 0x1d) & 0x3f)
  ;
  uVar28 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(lVar2 + -0xb18) = uVar20 ^ uVar49;
  uVar10 = DAT_182671d14;
  uVar18 = (uVar18 ^ uVar32) << (((byte)uVar6 ^ 0x5b) & 0x3f);
  uVar32 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar2 + -0x408) = uVar18 ^ uVar28;
  uVar6 = DAT_182671dc0;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar18 = uVar18 | uVar20;
  uVar20 = uVar18 ^ uVar28;
  *(ulonglong *)(lVar2 + -0xf0) = uVar20;
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xf8f9f380)) ^ uVar29) - uVar18 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xd8eeb24d)) =
       uVar39 ^ uVar20 ^ uVar28 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0x380);
  uVar32 = *(ulonglong *)(lVar2 + -0xb18);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar21) * 4) = uVar15;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x9562e260)) = uVar32 ^ uVar49 | 0x418cecf36d67fbb2;
  return;
}



############ FUN_ 180f89210 size=2774 ############

void FUN_180f89210(void)

{
  uint uVar1;
  undefined8 uVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  undefined8 *puVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  undefined4 uVar21;
  byte bVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  longlong *plVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  longlong *plVar30;
  longlong *plVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  
  uVar13 = DAT_182671c68;
  uVar11 = DAT_182671c60;
  lVar6 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c60;
  uVar32 = DAT_182671c60 << 0x10 | DAT_182671c60 >> 0x10;
  uVar24 = (DAT_182671c68 << 0x10 | DAT_182671c68 & 0xff00) << 8 | DAT_182671c68 >> 8 & 0xff00 |
           DAT_182671c68 >> 0x18;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182672230);
  uVar29 = *(uint *)(&DAT_182613218 + DAT_182672230) ^ DAT_182671c60;
  uVar25 = (ulonglong)DAT_182671c68;
  uVar33 = CONCAT44(DAT_182671c60,DAT_182671c68);
  DAT_182671c4c = uVar32;
  DAT_182671c54 = uVar24;
  *(ulonglong *)(DAT_182671c40 + -0x910) =
       *(longlong *)(DAT_182671c40 + -0xac0) +
       (CONCAT44(DAT_182671c68,uVar24) ^ 0xc1622a31312a62c5) * 8;
  plVar26 = (longlong *)(lVar6 - (uVar25 ^ 0xc1622c49));
  *plVar26 = *(longlong *)(lVar6 + -0x418) + 0x20;
  *(undefined8 *)(lVar6 + -0xb88) = *(undefined8 *)(lVar6 + -0x910);
  *(undefined8 *)(lVar6 + -0x2e8) = *(undefined8 *)(lVar6 + -0x678);
  uVar2 = *(undefined8 *)(lVar6 - ((ulonglong)uVar11 ^ 0x17ae7a0e));
  *(undefined8 *)(lVar6 + -0x668) = uVar2;
  *(undefined8 *)(lVar6 + -0x910) = uVar2;
  *(undefined8 *)(lVar6 + -0xac0) = *(undefined8 *)(lVar6 + -0x678);
  *(ulonglong *)(lVar6 + -0xa78) =
       (CONCAT44(uVar32,uVar13) ^ 0xb091deb3bf78d33f) - (uVar33 ^ 0x827daef879610fd6);
  *(undefined8 *)(lVar6 + -0x418) = *(undefined8 *)(lVar6 + -0x10);
  *(ulonglong *)(lVar6 - (uVar28 ^ 0x17ae78a6)) =
       (CONCAT44(uVar32,uVar24) ^ 0x7962910d8ceafb89) <<
       (((byte)DAT_182671db8 ^ *(byte *)(lVar6 + -0xb18)) & 0x3f);
  plVar31 = (longlong *)(lVar6 - ((ulonglong)uVar32 ^ 0x718613b6));
  uVar23 = CONCAT44(DAT_182671e58,DAT_182671e58);
  puVar3 = (ulonglong *)*plVar31;
  *(ulonglong **)(lVar6 + -0x678) = puVar3;
  uVar8 = DAT_182671c78;
  uVar34 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar6 + -0x228) = uVar23 ^ **(ulonglong **)(lVar6 + -0x140);
  puVar4 = *(ulonglong **)(lVar6 + -0x910);
  *(ulonglong **)(lVar6 + -0xb88) = puVar4;
  *(ulonglong **)(lVar6 + -0x2e8) = puVar4 + (uVar33 ^ 0x17ae7186c1622a30);
  uVar23 = *puVar4;
  *(ulonglong *)(lVar6 + -0xf0) = uVar23;
  uVar9 = DAT_182671e84;
  *(ulonglong *)(lVar6 + -0x418) = *plVar26 + (CONCAT44(uVar24,uVar24) ^ 0x312a62c1312a62c0) * 8;
  uVar27 = CONCAT44(uVar9,uVar9);
  *puVar3 = uVar23 ^ uVar27;
  plVar30 = (longlong *)(lVar6 - ((ulonglong)uVar32 ^ 0x718616ee));
  *plVar30 = *(longlong *)(lVar6 + -0x418);
  puVar3 = *(ulonglong **)(lVar6 + -0x2e8);
  puVar4 = *(ulonglong **)(lVar6 + -0x140);
  *(ulonglong **)(lVar6 + -0x910) = puVar3;
  *(ulonglong **)(lVar6 + -0x418) = puVar3;
  *(ulonglong **)(lVar6 + -0xb88) = puVar4;
  *(longlong *)(lVar6 + -0x2e8) = *plVar31 + 8;
  uVar23 = *puVar3;
  *(ulonglong *)(lVar6 + -0x30) = uVar23;
  *(ulonglong **)(lVar6 + -0x140) = puVar4 + 1;
  *puVar4 = uVar23 ^ uVar27;
  puVar3 = *(ulonglong **)(lVar6 - ((ulonglong)uVar13 ^ 0xc1622b71));
  *(ulonglong **)(lVar6 + -0x910) = puVar3;
  puVar5 = *(undefined8 **)(lVar6 - ((ulonglong)uVar24 ^ 0x312a6029));
  *(undefined8 **)(lVar6 + -0x418) = puVar5;
  *(undefined8 **)(lVar6 + -0x2e8) = puVar5;
  *(ulonglong **)(lVar6 + -0x140) = puVar3;
  *(undefined8 **)(lVar6 + -0x910) = puVar5 + 1;
  *(undefined8 *)(lVar6 + -0x408) = *puVar5;
  *(ulonglong *)(lVar6 + -0x418) = *plVar30 + (CONCAT44(uVar11,uVar8) ^ 0x17ae7186efff9fff) * 8;
  *puVar3 = *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xefff9bf6)) ^ uVar27;
  *(undefined8 *)(lVar6 + -0x2e8) = *(undefined8 *)(lVar6 + -0x418);
  uVar19 = DAT_182671c90;
  uVar15 = DAT_182671c70;
  uVar14 = DAT_182671c6c;
  uVar35 = (ulonglong)DAT_182671c70;
  plVar31 = (longlong *)(lVar6 - (uVar25 ^ 0xc1622e29));
  *plVar31 = *(longlong *)(lVar6 - ((ulonglong)uVar24 ^ 0x312a6bd1));
  plVar30 = (longlong *)(lVar6 - (uVar35 ^ 0x71861ebe));
  *plVar30 = *(longlong *)(lVar6 + -0x2e8);
  *(undefined8 *)(lVar6 - (uVar28 ^ 0x17ae736e)) = *(undefined8 *)(lVar6 + -0x418);
  uVar20 = DAT_182671c94;
  uVar23 = (ulonglong)DAT_182671c94;
  *(undefined8 *)(lVar6 - ((ulonglong)DAT_182671c84 ^ 0x38e01561)) =
       **(undefined8 **)(lVar6 + -0x2e8);
  **(ulonglong **)(lVar6 + -0x910) = uVar27 ^ *(ulonglong *)(lVar6 + -0xc18);
  bVar22 = (byte)DAT_182671c80;
  *(undefined8 *)(lVar6 + -0x418) = *(undefined8 *)(lVar6 + -0x650);
  *(undefined8 *)(lVar6 + -0x2e8) = *(undefined8 *)(lVar6 + -0x10);
  uVar8 = DAT_182671c48;
  uVar33 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar6 + -0x888) =
       (CONCAT44(uVar14,uVar32) ^ 0x40fea1068015a3ae) >> ((bVar22 ^ 0x71) & 0x3f);
  *(undefined8 *)(lVar6 + -0x10) = *(undefined8 *)(lVar6 - (uVar28 ^ 0x17ae759e));
  *(undefined8 *)(lVar6 + -0x418) = *(undefined8 *)(lVar6 - (uVar23 ^ 0x23af1182));
  *(longlong *)(lVar6 + -0x2b0) = *(longlong *)(lVar6 + -0x228) - *(longlong *)(lVar6 + -0xc18);
  lVar7 = DAT_182671c40;
  *(ulonglong *)(lVar6 + -0x2e8) = *plVar31 + (CONCAT44(uVar19,uVar8) ^ 0xabaf13fa408011a9) * 8;
  uVar17 = DAT_182671c7c;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0x312a6f69)) =
       **(ulonglong **)(lVar6 - ((ulonglong)uVar15 ^ 0x718613b6)) ^ uVar27;
  **(ulonglong **)(lVar6 + -0x678) = CONCAT44(uVar20,uVar13) ^ 0xc55224e1ee1378e0;
  uVar10 = DAT_182671c5c;
  *(ulonglong *)(lVar7 + -0xbd8) =
       *(ulonglong *)(lVar7 - (uVar28 ^ 0x17ae7176)) ^ CONCAT44(uVar8,uVar11) ^ 0xe2b5365bd858613b;
  uVar12 = DAT_182671c64;
  uVar23 = (ulonglong)DAT_182671c64;
  *(ulonglong **)(lVar7 + -0x418) =
       *(ulonglong **)(lVar7 + -0x10) + (CONCAT44(DAT_182671c64,uVar10) ^ 0x408011a852eb482d);
  uVar25 = CONCAT44(DAT_182671e28,DAT_182671e28);
  **(ulonglong **)(lVar7 + -0x10) = *(ulonglong *)(lVar7 - (uVar23 ^ 0x40801c00)) ^ uVar25;
  uVar9 = DAT_182671c8c;
  *(undefined8 *)(lVar7 - ((ulonglong)uVar14 ^ 0xb6f65a13)) = *(undefined8 *)(lVar7 + -0x418);
  puVar3 = *(ulonglong **)(lVar7 + -0x2e8);
  *(undefined8 *)(lVar7 + -0x2e8) = *(undefined8 *)(lVar7 + -0x678);
  *(ulonglong **)(lVar7 + -0x678) = puVar3;
  uVar8 = DAT_182671c88;
  uVar28 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar7 + -0xc90) =
       CONCAT44(uVar17,uVar9) ^ *(ulonglong *)(lVar7 + -0xc18) ^ 0x58657f6a7eed42b4;
  *(ulonglong **)(lVar7 + -0x418) = puVar3 + (CONCAT44(uVar8,uVar9) ^ 0x31160e074f27d7b2);
  *(ulonglong *)(lVar7 + -0x3d8) = *puVar3 ^ uVar27;
  uVar16 = DAT_182671c74;
  lVar6 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c84;
  **(ulonglong **)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0xabaf1872)) =
       CONCAT44(DAT_182671c74,uVar20) ^ 0x72958aa46090d847;
  *(longlong *)(lVar6 + -0xb88) = *(longlong *)(lVar6 - (uVar23 ^ 0x38e01b91)) + 8;
  **(ulonglong **)(lVar6 + -0x2e8) =
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c5c ^ 0x52eb4bf4)) ^ uVar25;
  *(undefined8 *)(lVar6 + -0x678) = *(undefined8 *)(lVar6 + -0xb88);
  uVar18 = DAT_182671c80;
  uVar36 = (ulonglong)DAT_182671c80;
  *(undefined8 *)(lVar6 - (uVar35 ^ 0x71861c26)) = *(undefined8 *)(lVar6 + -0x418);
  *(undefined8 *)(lVar6 - (uVar34 ^ 0xefff9be6)) = *(undefined8 *)(lVar6 + -0x678);
  *(undefined8 *)(lVar6 + -0x678) = *(undefined8 *)(lVar6 + -0xb88);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x3116058f)) =
       *(longlong *)(lVar6 - ((ulonglong)uVar16 ^ 0xb3d72137)) +
       (CONCAT44(uVar20,uVar15) ^ 0x23af136a718617af) * 8;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0x312a6729)) =
       **(ulonglong **)(lVar6 + -0x678) ^ uVar27;
  lVar6 = DAT_182671c40;
  **(ulonglong **)(DAT_182671c40 + -0x140) = CONCAT44(uVar18,uVar14) ^ 0x2abc33346316b9b8;
  uVar10 = DAT_182671c5c;
  uVar8 = DAT_182671c58;
  uVar9 = DAT_182671c50;
  uVar23 = (ulonglong)DAT_182671c5c;
  *(longlong *)(lVar6 + -0x140) = *(longlong *)(lVar6 - ((ulonglong)DAT_182671c58 ^ 0x715a1d34)) + 8
  ;
  **(ulonglong **)(lVar6 + -0x418) = *(ulonglong *)(lVar6 - (uVar23 ^ 0x52eb4dc4)) ^ uVar25;
  *(undefined8 *)(lVar6 + -0x678) = *(undefined8 *)(lVar6 + -0x140);
  *(undefined8 *)(lVar6 - (uVar33 ^ 0x408010e8)) = *(undefined8 *)(lVar6 + -0xb88);
  uVar14 = DAT_182671c94;
  *(longlong *)(lVar6 - (uVar33 ^ 0x40801a20)) = *plVar26;
  *(ulonglong **)(lVar6 + -0x678) = *(ulonglong **)(lVar6 + -0x140);
  *(ulonglong *)(lVar6 + -0x960) = **(ulonglong **)(lVar6 + -0x140) ^ uVar27;
  **(ulonglong **)(lVar6 + -0x910) = CONCAT44(uVar12,uVar16) ^ 0x64583bf42a29e389;
  *(ulonglong *)(lVar6 + -0xa50) =
       (CONCAT44(uVar32,uVar9) ^ 0xdd7fbdf0b90a6b6e) -
       (CONCAT44(uVar13,uVar14) ^ 0xd3a48269ccd8ea51);
  **(ulonglong **)(lVar6 + -0xb88) = uVar25 ^ *(ulonglong *)(lVar6 + -0x960);
  *(ulonglong *)(lVar6 + -0x140) =
       *(longlong *)(lVar6 + -0x668) + (CONCAT44(uVar12,uVar13) ^ 0x408011a8c1622a35) * 8;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xf9823530)) =
       *(longlong *)(lVar6 + -0xac0) + (CONCAT44(uVar19,uVar24) ^ 0xabaf13fa312a62c5) * 8;
  *(undefined8 *)(lVar7 + -0x910) = *(undefined8 *)(lVar7 + -0x140);
  *(ulonglong *)(lVar7 + -0x668) = *(ulonglong *)(lVar7 + -0x678);
  uVar12 = DAT_182671c84;
  puVar3 = (ulonglong *)*plVar30;
  *(ulonglong **)(lVar7 + -0xac0) = puVar3;
  uVar21 = DAT_182671d04;
  *(ulonglong *)(lVar7 + -0x4b8) =
       (CONCAT44(uVar12,uVar14) ^ 0x5dd7ad8dcf24856b) >> (((byte)uVar11 ^ 0x87) & 0x3f);
  uVar25 = CONCAT44(uVar19,DAT_182671c8c);
  uVar23 = CONCAT44(DAT_182671c8c,uVar17);
  *(ulonglong *)(lVar7 + -0x140) = CONCAT44(uVar21,uVar21) ^ *(ulonglong *)(lVar7 + -0x678);
  *(ulonglong *)(lVar7 + -0x110) =
       (uVar23 ^ 0xc492581e2459ea44) >>
       ((byte)*(undefined8 *)(lVar7 - (uVar28 ^ 0x31160767)) & 0x3f);
  uVar23 = CONCAT44(uVar8,DAT_182671c90);
  *(ulonglong *)(lVar7 + -0xd88) = CONCAT44(DAT_182671da0,DAT_182671da0) ^ *puVar3;
  *(ulonglong **)(lVar7 + -0x678) = puVar3 + (CONCAT44(uVar18,uVar17) ^ 0xf9823348cee9f1f9);
  *(ulonglong *)(lVar7 + -0xc38) =
       (CONCAT44(uVar24,uVar11) ^ 0xb9bf382062b95013) - (uVar23 ^ 0x5e48dbc562290417);
  *(ulonglong *)(lVar7 + -0xb20) =
       CONCAT44(DAT_182671e64,DAT_182671e64) ^ puVar3[CONCAT44(uVar18,uVar17) ^ 0xf9823348cee9f1f9];
  *(ulonglong *)(lVar7 + -0xa78) =
       (CONCAT44(uVar10,uVar9) ^ 0xbf81bc971e31d737) + (uVar25 ^ 0xc37d966776efcc0d);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar32) * 4) = uVar29;
  return;
}



############ FUN_ 180fcfaf0 size=5019 ############

void FUN_180fcfaf0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  uint uVar6;
  byte bVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  uint uVar46;
  uint uVar47;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  uint uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  ulonglong uVar64;
  ulonglong uVar65;
  ulonglong *puVar66;
  ulonglong uVar67;
  ulonglong uVar68;
  byte local_1a0;
  byte local_198;
  byte local_188;
  byte local_178;
  byte local_140;
  ulonglong uVar48;
  
  uVar14 = DAT_182671fa4;
  uVar13 = DAT_182671c64;
  uVar12 = DAT_182671c5c;
  uVar47 = DAT_182671c54;
  uVar11 = DAT_182671c4c;
  uVar10 = DAT_182671c48;
  lVar8 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c54;
  uVar37 = (ulonglong)DAT_182671c48;
  uVar46 = DAT_182671c54 - DAT_182671c48;
  uVar48 = (ulonglong)uVar46;
  uVar40 = (ulonglong)DAT_182671c64;
  uVar29 = (ulonglong)DAT_182671c5c;
  uVar57 = DAT_182671c4c | DAT_182671c5c;
  uVar25 = DAT_182671c64 << 0x10 | DAT_182671c64 >> 0x10;
  uVar18 = *(uint *)(&DAT_182613210 + (uVar28 ^ 0xfa928066) + (longlong)DAT_182672304) ^
           DAT_182671c48;
  uVar6 = *(uint *)(&DAT_182613220 + DAT_182672304);
  uVar65 = CONCAT44(DAT_182671d68,DAT_182671d68);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x408);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x920);
  uVar20 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  uVar31 = CONCAT44(DAT_182671db0,DAT_182671db0);
  DAT_182671c58 = uVar25;
  DAT_182671c70 = uVar46;
  DAT_182671c8c = uVar57;
  *puVar2 = (uVar20 ^ *puVar1 | *(ulonglong *)(DAT_182671c40 + -0xbd8) ^ uVar65) ^ uVar31;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar64 = CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar32 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *puVar1 = (*(ulonglong *)(lVar8 + -0x228) ^ uVar34) - (*(ulonglong *)(lVar8 + -0xf0) ^ uVar64) ^
            uVar32;
  puVar3 = (ulonglong *)(lVar8 + -0xc90);
  uVar67 = (ulonglong)uVar25;
  *(ulonglong *)(DAT_182671c40 - (uVar67 ^ 0xe9cef329)) = uVar34 ^ *puVar3 ^ 0xce18a57190bc5c5f;
  lVar8 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xf8f1ebe6)) =
       (uVar32 ^ *puVar1) - (*puVar2 ^ uVar31) ^ uVar35;
  uVar16 = DAT_182671fb4;
  uVar19 = (ulonglong)uVar11;
  *(ulonglong *)(lVar8 + -0xbd8) =
       CONCAT44(uVar46,uVar13) ^ CONCAT44(uVar11,uVar25) ^ 0x31cb4ba055fedec1;
  uVar14 = DAT_182671e28;
  lVar9 = DAT_182671c40;
  uVar21 = (ulonglong)uVar57;
  uVar68 = CONCAT44(uVar16,uVar16);
  uVar41 = -(*(ulonglong *)(lVar8 + -0xc38) ^ uVar68) - 0x10;
  *puVar3 = uVar41 ^ uVar65;
  uVar54 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar12 ^ 0x5e585ab1)) =
       (*(ulonglong *)(lVar9 - (uVar21 ^ 0xde7ff7df)) ^ uVar31) + uVar41 ^ uVar54;
  uVar15 = DAT_182671e84;
  uVar26 = (ulonglong)DAT_182671e84;
  *(ulonglong *)(lVar9 + -0xbd8) = (uVar54 ^ *puVar1) << 0x3e;
  uVar60 = CONCAT44(uVar15,uVar15);
  uVar58 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar41 = *(ulonglong *)(lVar9 - (uVar19 ^ 0x9e3fe4a7)) ^ uVar58 ^ uVar60 ^ uVar54 ^ *puVar1;
  *puVar2 = uVar41;
  puVar30 = (ulonglong *)(lVar9 - (uVar37 ^ 0xca808948));
  uVar42 = CONCAT44(DAT_182671de4,DAT_182671de4);
  bVar7 = (byte)uVar12;
  *puVar3 = *puVar30 >> 0x20 ^ uVar42 ^ uVar26;
  lVar8 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar41 = (uVar60 ^ uVar41) << ((bVar7 ^ 0x99) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar41 ^ uVar33;
  *puVar1 = (CONCAT44(uVar46,uVar46) ^ 0xc5b6d01e42) << 0x15;
  lVar9 = DAT_182671c40;
  puVar22 = (ulonglong *)(lVar8 - (uVar28 ^ 0xfa928cfe));
  uVar49 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *(ulonglong *)(DAT_182671c40 - (uVar48 ^ 0x30120926)) = (uVar41 | uVar42 ^ *puVar22) ^ uVar49;
  puVar4 = (ulonglong *)(lVar9 + -0xa50);
  *(ulonglong *)(lVar9 - (uVar21 ^ 0xde7ffaf7)) =
       CONCAT44(uVar11,uVar12) ^ 0x59965b37a44d565f | CONCAT44(uVar13,uVar10) ^ 0x25b840f392e0f809;
  uVar55 = (uVar58 ^ *puVar4) - (uVar49 ^ *puVar2) ^ uVar35;
  *puVar3 = uVar55;
  uVar16 = DAT_182671e2c;
  uVar61 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  puVar5 = (ulonglong *)(lVar9 + -0xb18);
  uVar43 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar26 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  uVar50 = *(ulonglong *)(DAT_182671c40 + -0x3d8) ^ *(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar26
           ^ uVar43 ^ uVar35;
  uVar38 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar41 = uVar50 >> 0x20 ^ (ulonglong)DAT_182671e64;
  *puVar4 = uVar41 ^ uVar61;
  local_188 = (byte)uVar57;
  uVar51 = (uVar50 ^ uVar43) << ((local_188 ^ 0xdf) & 0x3f);
  *puVar5 = uVar51 ^ uVar38;
  uVar14 = DAT_182671f74;
  lVar8 = DAT_182671c40;
  puVar23 = (ulonglong *)(DAT_182671c40 + -0x228);
  uVar39 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar51 = uVar51 | uVar41;
  uVar41 = uVar51 ^ uVar39;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar41;
  uVar15 = DAT_182671e04;
  uVar50 = CONCAT44(uVar14,uVar14);
  uVar44 = (ulonglong)DAT_182671e04;
  *(ulonglong *)(lVar8 + -0x3d8) = (*puVar23 ^ uVar35) - uVar51 ^ uVar50;
  uVar62 = CONCAT44(uVar15,uVar15);
  uVar55 = uVar62 ^ uVar39 ^ uVar35 ^ uVar41 ^ uVar55;
  *puVar1 = uVar55;
  local_178 = (byte)(uVar13 >> 0x10);
  uVar41 = *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xf8f1edc6));
  *puVar4 = (uVar55 ^ uVar62) << ((local_178 ^ 0xf7) & 0x3f) ^ uVar65;
  lVar8 = DAT_182671c40;
  uVar41 = (uVar41 >> 0x20 ^ uVar44) >> 0x1a;
  *puVar5 = uVar41 ^ uVar58;
  uVar14 = DAT_182671eec;
  uVar41 = *(ulonglong *)(lVar8 - (uVar37 ^ 0xca808a38)) ^ uVar65 | uVar41;
  puVar27 = (ulonglong *)(lVar8 - (uVar40 ^ 0xf8f1e55e));
  *(ulonglong *)(lVar8 + -0x228) = uVar41 ^ uVar60;
  uVar59 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 + -0xbd8) = (*puVar27 ^ uVar35) - uVar41 ^ uVar59;
  puVar23 = (ulonglong *)(lVar8 - (uVar40 ^ 0xf8f1ea16));
  uVar41 = uVar50 ^ uVar43 ^ uVar49 ^ *puVar2 ^ *puVar23;
  local_1a0 = (byte)uVar11;
  *puVar1 = uVar41;
  uVar44 = (uVar41 ^ uVar43) >> ((local_1a0 ^ 0xe1) & 0x3f);
  uVar56 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *puVar5 = uVar44 ^ uVar56;
  lVar8 = DAT_182671c40;
  uVar41 = (uVar43 ^ uVar41) << ((local_1a0 ^ 0xdd) & 0x3f);
  uVar58 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *puVar4 = uVar41 ^ uVar34;
  *(ulonglong *)(lVar8 - (uVar21 ^ 0xde7ff26f)) = (uVar41 | uVar44) ^ uVar58;
  *puVar2 = (*(ulonglong *)(lVar8 + -0x3d8) ^ uVar50) - (uVar58 ^ *puVar3) ^ uVar68;
  uVar51 = CONCAT44(DAT_182671c98,DAT_182671c98);
  puVar24 = (ulonglong *)(lVar8 - (uVar48 ^ 0x30120bde));
  *puVar1 = uVar51 ^ uVar58 ^ uVar59 ^ *puVar24 ^ *puVar3;
  puVar45 = (ulonglong *)(lVar8 - (uVar67 ^ 0xe9cefcf9));
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xfa928b76)) =
       (uVar51 ^ *puVar45) >> ((local_178 ^ 0xdf) & 0x3f) ^ uVar50;
  uVar14 = DAT_182671cd0;
  uVar41 = (uVar51 ^ *puVar1) << 0x12;
  *puVar4 = uVar41 ^ uVar33;
  lVar8 = DAT_182671c40;
  uVar63 = CONCAT44(uVar14,uVar14);
  uVar41 = uVar50 ^ *puVar5 | uVar41;
  *puVar3 = uVar41 ^ uVar63;
  uVar14 = DAT_182671db4;
  *puVar1 = CONCAT44(uVar13,uVar10) ^ 0xcf9f74ff9def7bfb | 0x4f85706e0c6f5be1;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar52 = (uVar59 ^ *(ulonglong *)(lVar8 + -0xbd8)) - uVar41 ^ uVar44;
  *puVar5 = uVar52;
  uVar41 = *puVar30 ^ *(ulonglong *)(lVar8 + -0x228) ^ uVar60 ^ uVar68;
  *puVar4 = uVar41 ^ uVar64;
  uVar55 = (*(ulonglong *)(lVar8 - (uVar48 ^ 0x30120a56)) ^ uVar64) >> ((local_1a0 ^ 0xfb) & 0x3f);
  *puVar1 = uVar55 ^ uVar33;
  lVar8 = DAT_182671c40;
  uVar41 = uVar41 << (((byte)uVar47 ^ 0x5a) & 0x3f);
  uVar35 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar41 ^ uVar35;
  uVar64 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar41 = (uVar41 | uVar55) ^ uVar64;
  *(ulonglong *)(lVar8 + -0x228) = uVar41;
  local_140 = (byte)uVar13;
  *puVar4 = (CONCAT44(uVar12,uVar12) ^ 0xa9343f24b8f04c08) -
            (*(ulonglong *)(lVar8 - (uVar37 ^ 0xca8083b0)) ^ uVar50);
  uVar14 = DAT_182671d0c;
  uVar33 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar52 = uVar64 ^ uVar44 ^ uVar41 ^ uVar62 ^ uVar52;
  *(ulonglong *)(lVar8 + -0xbd8) =
       (uVar68 ^ *puVar2) - (*(ulonglong *)(lVar8 - (uVar48 ^ 0x3012022e)) ^ uVar64) ^ uVar33;
  uVar17 = DAT_182671f58;
  *puVar1 = uVar52;
  uVar55 = (uVar52 ^ uVar62) >> ((local_140 ^ 0xd7) & 0x3f);
  *(ulonglong *)(lVar8 + -0x3d8) = uVar55 ^ CONCAT44(uVar14,uVar14);
  uVar12 = DAT_182671c80;
  uVar52 = (ulonglong)DAT_182671c80;
  uVar41 = (*(ulonglong *)(lVar8 - (uVar19 ^ 0x9e3feaff)) ^ uVar62) << ((bVar7 ^ 0x9e) & 0x3f);
  *puVar4 = uVar41 ^ CONCAT44(uVar17,uVar17);
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar67 ^ 0xe9cef1d1)) = (uVar41 | uVar55) ^ uVar54;
  *(ulonglong *)(lVar8 + -0x228) =
       (CONCAT44(uVar11,uVar10) ^ 0x613ab444e15f63ec) -
       (CONCAT44(uVar25,uVar47) ^ 0x8a7fe571b5705266);
  uVar11 = DAT_182671c88;
  uVar47 = uVar12 * DAT_182671c88;
  uVar44 = (uVar44 ^ *puVar5) - (*(ulonglong *)(lVar8 + -0x5e8) ^ uVar31);
  *puVar1 = uVar44 ^ uVar42;
  DAT_182671c50 = uVar47;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar47 ^ 0x907e0bd9)) ^ uVar33) +
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0x31160a0f)) ^ uVar42);
  uVar41 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *puVar4 = uVar44 - (uVar54 ^ *puVar2) ^ uVar65;
  uVar17 = DAT_182671eb4;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0xfff7f497)) ^ uVar64) +
       (*(ulonglong *)(DAT_182671c40 + -0x30) ^ uVar51) ^ uVar41;
  uVar14 = DAT_182671e34;
  uVar51 = CONCAT44(uVar17,uVar17);
  *puVar5 = (uVar54 ^ *puVar2) - (*(ulonglong *)(lVar8 - ((ulonglong)uVar12 ^ 0xfff7fd9f)) ^ uVar41)
            ^ uVar51;
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar47 ^ 0x907e03d9)) =
       uVar42 ^ uVar33 ^ uVar63 ^ *(ulonglong *)(lVar8 + -0xbd8) ^ *puVar3;
  lVar8 = DAT_182671c40;
  uVar44 = (uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0x3d8)) >> (((byte)uVar11 ^ 0x26) & 0x3f);
  *puVar1 = uVar44 ^ uVar26;
  *(uint *)(lVar8 + -0x644) = uVar12 ^ uVar47 ^ 0xc3c8d17a;
  *puVar2 = (uVar42 ^ *(ulonglong *)(lVar8 + -0x3d8)) << (((byte)uVar12 ^ 0xa8) & 0x3f) ^ uVar34;
  lVar9 = DAT_182671c40;
  uVar55 = CONCAT44(DAT_182671e14,DAT_182671e14);
  uVar44 = *(ulonglong *)(lVar8 - (uVar52 ^ 0xfff7f697)) ^ uVar34 | uVar44;
  *puVar3 = uVar44 ^ uVar55;
  uVar14 = DAT_182671d1c;
  uVar41 = (uVar33 ^ *(ulonglong *)(lVar9 + -0xbd8)) - (*(ulonglong *)(lVar9 + -0x888) ^ uVar39);
  *(ulonglong *)(lVar9 + -0x3d8) = uVar41 ^ uVar55;
  uVar34 = CONCAT44(uVar14,uVar14);
  puVar66 = (ulonglong *)(lVar9 - ((ulonglong)uVar47 ^ 0x907e0409));
  *puVar66 = uVar41 - uVar44 ^ uVar34;
  *puVar2 = CONCAT44(uVar11,uVar47) ^ 0x432db450440d30e4 |
            CONCAT44(uVar47,uVar47) ^ 0x18b4c0532f5a0e85;
  uVar41 = ((CONCAT44(uVar12,uVar12) ^ 0x8004800080046) -
           (*(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x31160cb7)) ^ uVar43)) + (uVar55 ^ *puVar3)
           ^ uVar62 ^ *puVar4 ^ uVar65;
  *puVar2 = uVar41;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar48 ^ 0x30120c96)) =
       (uVar62 ^ uVar41) >> (((byte)uVar47 ^ 4) & 0x3f) ^ uVar34;
  uVar14 = DAT_182671dc4;
  uVar41 = (uVar62 ^ *puVar2) << ((local_1a0 ^ 0xcc) & 0x3f);
  *(ulonglong *)(lVar8 + -0xbd8) = uVar41 ^ CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 + -0x3d8) = (uVar34 ^ *puVar3 | uVar41) ^ uVar44;
  puVar36 = (ulonglong *)(lVar8 - (uVar52 ^ 0xfff7fc6f));
  *puVar2 = (*(ulonglong *)(lVar8 - (uVar28 ^ 0xfa928a3e)) ^ uVar65) - (*puVar36 ^ uVar44) ^ uVar38;
  lVar8 = DAT_182671c40;
  uVar41 = uVar34 ^ uVar51 ^ uVar61 ^ *puVar1 ^ *puVar5;
  *puVar3 = uVar41;
  *(ulonglong *)(lVar8 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xf8f1e0ee)) ^ uVar38) <<
       (((byte)uVar41 ^ (byte)uVar16) & 0x3f);
  uVar28 = (uVar61 ^ *puVar3) >> ((bVar7 ^ 0x9c) & 0x3f);
  *puVar4 = uVar28 ^ uVar60;
  uVar41 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0x31160297)) ^ uVar61) << 0x1b;
  *puVar5 = uVar41 ^ uVar20;
  puVar53 = (ulonglong *)(lVar8 - (uVar29 ^ 0x5e585561));
  *puVar53 = (uVar41 | uVar28) ^ uVar63;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar47 ^ 0x907e0c91)) =
       (uVar34 ^ *puVar45) - (uVar63 ^ *(ulonglong *)(lVar8 + -0xbd8)) ^ uVar50;
  local_198 = (byte)uVar46;
  uVar41 = *(ulonglong *)(lVar8 - (uVar52 ^ 0xfff7f46f)) ^ uVar63 ^ uVar56 ^ uVar38 ^ *puVar2;
  *puVar4 = uVar41;
  *puVar5 = (uVar56 ^ uVar41) >> ((local_198 ^ 0x11) & 0x3f) ^ uVar59;
  uVar41 = (uVar56 ^ uVar41) << ((local_188 ^ 0xd6) & 0x3f);
  *puVar1 = uVar41 ^ uVar26;
  *puVar53 = uVar41 << (((byte)uVar11 ^ 0x2b) & 0x3f);
  lVar8 = DAT_182671c40;
  uVar41 = uVar59 ^ *puVar5 | uVar26 ^ *puVar1;
  *puVar4 = uVar41 ^ uVar50;
  *(ulonglong *)(lVar8 - (uVar21 ^ 0xde7ff527)) = (uVar38 ^ *puVar2) - uVar41 ^ uVar32;
  uVar44 = uVar42 ^ *(ulonglong *)(lVar8 + -0x3d8) ^ uVar50 ^ *puVar22 ^ uVar44;
  *puVar5 = uVar44;
  *puVar1 = (uVar42 ^ uVar44) >> ((byte)uVar10 & 0x3f) ^ uVar49;
  uVar41 = (uVar42 ^ uVar44) << ((local_178 ^ 0xe9) & 0x3f);
  *puVar2 = uVar41 ^ uVar58;
  lVar8 = DAT_182671c40;
  uVar41 = uVar41 | uVar49 ^ *puVar66;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = uVar41 ^ uVar55;
  *puVar5 = (*(ulonglong *)(lVar8 - (uVar37 ^ 0xca808cf8)) ^ uVar50) - uVar41 ^ uVar33;
  uVar41 = (ulonglong)DAT_182671db0;
  *puVar30 = uVar55 ^ uVar32 ^ uVar31 ^ *puVar24 ^ *puVar23;
  lVar8 = DAT_182671c40;
  *puVar1 = (*puVar2 >> 0x20 ^ uVar41) >> 0x14 ^ uVar64;
  *puVar27 = (*(ulonglong *)(lVar8 - (uVar19 ^ 0x9e3fe7d7)) ^ uVar31) << ((bVar7 ^ 0xb5) & 0x3f) ^
             uVar20;
  *(ulonglong *)(lVar8 + -0x3d8) = (uVar50 ^ *puVar4) >> (((byte)uVar12 ^ 0xb1) & 0x3f);
  uVar41 = *(ulonglong *)(lVar8 - (uVar48 ^ 0x3012040e)) ^ uVar64 | uVar20 ^ *puVar3;
  *puVar2 = uVar41 ^ uVar31;
  *puVar36 = (uVar32 ^ *puVar24) - uVar41 ^ uVar49;
  *puVar1 = uVar33 ^ uVar35 ^ uVar50 ^ *puVar4 ^ *puVar5;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar6 ^ uVar46) * 4) = uVar18;
  return;
}



############ FUN_ 180fd2390 size=5405 ############

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

void FUN_180fd2390(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  byte local_res18;
  byte local_res20;
  byte local_148;
  byte local_110;
  byte local_100;
  byte local_c8;
  
  uVar12 = DAT_182671c88;
  uVar11 = DAT_182671c84;
  uVar10 = DAT_182671c7c;
  uVar9 = DAT_182671c70;
  uVar8 = DAT_182671c68;
  uVar7 = DAT_182671c58;
  uVar6 = DAT_182671c50;
  lVar4 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c58;
  uVar44 = (ulonglong)DAT_182671c68;
  uVar28 = (ulonglong)DAT_182671c84;
  uVar49 = DAT_182671c58 - DAT_182671c70;
  uVar22 = (ulonglong)DAT_182671c88;
  uVar3 = *(uint *)(&DAT_182613218 + DAT_182672308);
  uVar35 = (ulonglong)DAT_182671c7c;
  uVar23 = DAT_182671c68 & DAT_182671c50;
  uVar39 = DAT_182671c84 | DAT_182671c7c;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_182672308) ^ DAT_182671c70;
  uVar26 = ~DAT_182671c88;
  uVar36 = CONCAT44(DAT_182671c84,DAT_182671c7c);
  uVar29 = CONCAT44(DAT_182671e08,DAT_182671e08);
  bVar33 = (byte)DAT_182671c7c;
  uVar20 = (ulonglong)uVar23;
  uVar37 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  DAT_182671c54 = uVar23;
  DAT_182671c60 = uVar39;
  DAT_182671c78 = uVar49;
  DAT_182671c94 = uVar26;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c58 ^ 0x25270a28)) ^
       CONCAT44(DAT_182671f28,DAT_182671f28)) >> ((bVar33 ^ 0xdd) & 0x3f) ^ uVar29;
  uVar13 = DAT_182671ca8;
  uVar29 = (*(ulonglong *)(lVar4 - (uVar20 ^ 0xf0408ec)) ^ uVar29 |
           CONCAT44(DAT_182671db4,DAT_182671db4) ^ *(ulonglong *)(lVar4 + -0xb20)) ^ uVar37;
  puVar2 = (ulonglong *)(lVar4 + -0x888);
  *puVar2 = uVar29;
  uVar45 = CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar24 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(lVar4 + -0xd88) =
       *(ulonglong *)(lVar4 + -0xb08) ^ uVar24 ^ uVar45 ^ uVar29 ^ uVar37;
  uVar14 = DAT_182671f14;
  uVar37 = (ulonglong)uVar39;
  puVar30 = (ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x6f279564));
  *puVar30 = (CONCAT44(uVar39,uVar12) ^ 0x9948d7d96de97a8c) -
             (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar4 + -0x760));
  uVar16 = DAT_182671fb0;
  uVar32 = (ulonglong)uVar26;
  uVar31 = CONCAT44(DAT_182671cd8,DAT_182671cd8) ^ *(ulonglong *)(lVar4 + -0x7c0);
  puVar1 = (ulonglong *)(lVar4 + -0xa70);
  uVar43 = CONCAT44(DAT_182671e30,DAT_182671e30);
  local_res20 = (byte)uVar7;
  uVar40 = (*(ulonglong *)(lVar4 - (uVar32 ^ 0xf35c6d26)) ^ CONCAT44(uVar14,uVar14)) + uVar31 ^
           uVar43;
  *puVar1 = uVar40;
  uVar13 = DAT_182671fb4;
  uVar18 = DAT_182671e04;
  uVar38 = uVar31 << ((local_res20 ^ 0xc) & 0x3f);
  uVar29 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar42 = (ulonglong)uVar9;
  *(ulonglong *)(lVar4 + -0x920) = uVar31 >> (((byte)uVar6 ^ 0x30) & 0x3f) ^ uVar29;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar38 ^ CONCAT44(uVar16,uVar16);
  uVar29 = (*(ulonglong *)(lVar4 - (uVar42 ^ 0xc9b50ff3)) ^ uVar29 | uVar38) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x380) = uVar29;
  uVar41 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x6f279e14)) = uVar41 ^ uVar31 ^ uVar43 ^ uVar29 ^ uVar40;
  lVar5 = DAT_182671c40;
  puVar47 = (ulonglong *)(lVar4 - (uVar35 ^ 0xe5991bdf));
  uVar38 = ((ulonglong)uVar18 << 0x1a | (ulonglong)(uVar18 >> 6)) ^
           *(ulonglong *)(lVar4 + -0x110) >> 6;
  uVar31 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar25 = (ulonglong)uVar49;
  *(ulonglong *)(lVar4 + -0x228) =
       (*puVar47 ^ uVar41) + (*(ulonglong *)(lVar4 + -0xb08) ^ uVar24) ^ uVar31;
  uVar13 = DAT_182671eac;
  uVar24 = (*(ulonglong *)(lVar4 + -0x110) ^ uVar41) << (((byte)uVar9 ^ 0xe9) & 0x3f);
  *(ulonglong *)(lVar5 + -0xb20) = uVar24 ^ CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar14 = DAT_182671f5c;
  *(ulonglong *)(lVar5 + -0x7e8) = uVar38 ^ CONCAT44(uVar13,uVar13);
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar20 ^ 0xf04078c)) = (uVar38 | uVar24) ^ uVar29;
  uVar24 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar45 = uVar45 ^ *(ulonglong *)(lVar5 + -0xd88);
  *(ulonglong *)(lVar5 + -0x760) =
       uVar24 ^ uVar29 ^ uVar31 ^ *puVar2 ^ *(ulonglong *)(lVar5 + -0x228);
  uVar13 = DAT_182671cc8;
  uVar29 = *puVar1;
  *(ulonglong *)(lVar5 + -0xa60) = CONCAT44(uVar26,uVar11) ^ 0x2b3d86700a66a0ae | uVar43 ^ *puVar1;
  uVar14 = DAT_182671d74;
  uVar50 = CONCAT44(uVar13,uVar13);
  uVar40 = (uVar43 ^ uVar29) + uVar45 ^ uVar50;
  *(ulonglong *)(lVar5 + -0x628) = uVar40;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar41 = uVar45 >> (((byte)uVar9 ^ 0xf9) & 0x3f);
  *(ulonglong *)(lVar5 + -0x7c0) = uVar45 << 0x16 ^ uVar29;
  local_res18 = (byte)uVar39;
  *(ulonglong *)(lVar5 + -0x2b0) = uVar41 ^ CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar13 = DAT_182671d30;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0x920) =
       (CONCAT44(uVar6,uVar8) ^ 0x95cb0f5bbf6a12af) << ((local_res18 ^ 0xca) & 0x3f);
  uVar14 = DAT_182671e3c;
  uVar38 = CONCAT44(uVar13,uVar13);
  uVar29 = (*(ulonglong *)(lVar5 - (uVar19 ^ 0x25270fc0)) ^ uVar29 | uVar41) ^ uVar38;
  *(ulonglong *)(lVar5 + -0x380) = uVar29;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar29 = uVar41 ^ uVar38 ^ uVar40 ^ uVar50 ^ uVar29;
  *(ulonglong *)(lVar4 + -0xb08) = uVar29;
  *puVar47 = uVar41 ^ uVar29 ^ 0x3de74c74cc66dd4;
  uVar40 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  bVar34 = (byte)DAT_182671c70;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xf35c602e)) =
       (*(ulonglong *)(lVar4 - (uVar20 ^ 0xf040d2c)) ^ uVar31) +
       (*(ulonglong *)(lVar4 + -0xb08) ^ uVar41) ^ uVar40;
  *(uint *)(lVar4 + -0xc70) = *(uint *)(lVar4 + -0x634) >> ((bVar34 ^ 0xca) & 0x1f);
  uVar14 = DAT_182671eb8;
  puVar21 = (ulonglong *)(lVar4 - (uVar22 ^ 0xca39ff9));
  uVar31 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar4 + -0x7e8) = (uVar41 ^ *puVar21) << (((byte)uVar23 ^ 0x24) & 0x3f) ^ uVar31;
  lVar4 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671d78,DAT_182671d78);
  bVar34 = *(byte *)(DAT_182671c40 + -0x7e8);
  *puVar2 = (*(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x9f04642f)) ^ uVar41) >>
            ((bVar33 ^ 0xef) & 0x3f) ^ uVar29;
  uVar13 = DAT_182671e90;
  *(ulonglong *)(lVar4 + -0xa60) =
       (CONCAT44(uVar23,uVar10) ^ 0xd657c10581f5ceb1) >> (((byte)uVar14 ^ bVar34) & 0x3f);
  lVar5 = DAT_182671c40;
  uVar29 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x6f27978c)) ^ uVar29 |
           *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x5b7206c5)) ^ uVar31;
  *puVar1 = uVar29 ^ CONCAT44(uVar13,uVar13);
  uVar18 = DAT_182671c54 ^ 0x5d9c1d1c;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0xc9b50b5b)) =
       uVar29 ^ uVar40 ^ uVar50 ^ *(ulonglong *)(lVar5 + -0xb20);
  *(uint *)(lVar5 + -0x4ac) = (*(uint *)(lVar5 + -0x58c) ^ DAT_182671f1c) - uVar18;
  uVar38 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x5b72080d)) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0xefbf99e7)) ^ uVar50) +
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x6f279864)) ^ uVar24) ^ uVar38;
  uVar41 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar5 + -0x2b0) =
       (*(ulonglong *)(lVar5 + -0x760) ^ uVar24) << ((bVar33 ^ 0xef) & 0x3f) ^ uVar41;
  uVar31 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *(ulonglong *)(lVar5 - (uVar44 ^ 0x9f0468e7)) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0xca39391)) ^ uVar24) >> ((local_res20 ^ 0x20) & 0x3f) ^
       uVar31;
  uVar15 = DAT_182671e44;
  uVar24 = CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar29 = *(ulonglong *)(lVar5 - (uVar42 ^ 0xc9b50463));
  *(undefined8 *)(lVar5 + -0x110) = 0xebf18fbffff5acd9;
  uVar13 = DAT_182671f44;
  uVar29 = (uVar29 ^ uVar41 | uVar31 ^ *(ulonglong *)(lVar5 + -0x7c0)) ^ uVar24;
  *(ulonglong *)(lVar5 + -0x380) = uVar29;
  uVar26 = DAT_182671c6c;
  uVar18 = DAT_182671c4c;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar31 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar29 = uVar41 ^ uVar24 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0x920) ^ uVar29;
  uVar24 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar5 + -0x228) = uVar29;
  uVar14 = DAT_182671e00;
  uVar43 = (CONCAT44(uVar11,uVar9) ^ 0x1ca443b83f5dccb3) + (uVar29 ^ uVar41);
  uVar27 = uVar18 + uVar26;
  DAT_182671c64 = uVar27;
  *(ulonglong *)(lVar5 + -0xb08) = uVar43 ^ uVar31;
  uVar13 = DAT_182671dc0;
  uVar29 = (CONCAT44(uVar18,uVar26) ^ 0xb43f342639ff72bd) +
           (uVar40 ^ *(ulonglong *)(lVar5 + -0xb20));
  *(ulonglong *)(lVar5 + -0xa60) = uVar29 ^ CONCAT44(uVar14,uVar14);
  uVar41 = (ulonglong)uVar27;
  uVar48 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0xb8169f4b)) = uVar43 + uVar29 ^ uVar48;
  *(longlong *)(lVar5 - ((ulonglong)uVar18 ^ 0x94f1042b)) =
       -0x320fc7482f7a34f4 <<
       ((*(byte *)(lVar5 - ((ulonglong)uVar26 ^ 0x23258f80)) ^ (byte)uVar15) & 0x3f);
  uVar29 = *(ulonglong *)(lVar5 + -0xb08);
  bVar34 = (byte)uVar27;
  uVar40 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0xb81693ab)) ^ uVar31) <<
           ((bVar34 ^ 0xad) & 0x3f);
  uVar43 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *puVar1 = uVar40 ^ CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar29 = (uVar29 ^ uVar31) >> (((byte)uVar18 ^ 0x91) & 0x3f);
  *(ulonglong *)(lVar5 + -0x628) = uVar29 ^ uVar43;
  *(ulonglong *)(lVar5 + -0x760) =
       CONCAT44(uVar26,uVar27) ^ 0x3a09c2f2a1939f7d | CONCAT44(uVar26,uVar27) ^ 0x20d34780c1ae65c6;
  uVar51 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar29 = (uVar29 | uVar40) ^ uVar51;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar29;
  lVar4 = DAT_182671c40;
  uVar46 = CONCAT44(DAT_182671d60,DAT_182671d60);
  puVar47 = (ulonglong *)(DAT_182671c40 + -0xd88);
  *(ulonglong *)(DAT_182671c40 + -0x7c0) =
       uVar46 ^ uVar29 ^ uVar51 ^ uVar48 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0x23258d10)) =
       (uVar50 ^ *puVar47) + (CONCAT44(uVar18,uVar18) ^ 0xcd4b7f6eade935eb) ^ uVar51;
  uVar13 = DAT_182671d08;
  uVar29 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar4 + -0x228) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x920)) + (CONCAT44(uVar18,uVar18) ^ 0xf2c0cffa818d4f5) ^
       uVar29;
  uVar31 = *(ulonglong *)(lVar4 + -0x110) ^ uVar51;
  uVar40 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xb20) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0x6f279d2c)) ^ uVar29) + uVar31 ^ uVar40;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0xb81692c3)) =
       uVar31 - (CONCAT44(uVar7,uVar10) ^ 0x3ac098a197a1799c);
  puVar47 = (ulonglong *)(lVar4 - (uVar24 ^ 0x94f10db3));
  uVar45 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar4 + -0x380) = (uVar51 ^ *puVar47) << (((byte)uVar26 ^ 0x10) & 0x3f) ^ uVar45;
  uVar13 = DAT_182671e48;
  uVar10 = DAT_182671d48;
  uVar29 = *(ulonglong *)(lVar4 + -0x7e8);
  *(uint *)(lVar4 + -0x684) =
       (*(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0x23258dc8)) ^ DAT_182671d34) -
       (*(uint *)(lVar4 + -0x1c8) ^ DAT_182671d34);
  uVar38 = CONCAT44(uVar13,uVar13);
  uVar43 = (*(ulonglong *)(lVar4 + -0x110) ^ uVar51) >> ((bVar34 ^ 0x93) & 0x3f);
  *puVar2 = uVar43 ^ uVar38;
  uVar31 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar4 + -0xb08) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x5b7202ad)) ^ uVar45 | uVar43) ^ uVar31;
  uVar43 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x760) =
       uVar43 ^ uVar31 ^ uVar40 ^ *puVar21 ^ *(ulonglong *)(lVar4 + -0xb20);
  lVar5 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xf35c617e)) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0xefbf98af)) ^ uVar43) + (uVar48 ^ uVar29) ^ uVar25;
  uVar29 = *(ulonglong *)(lVar4 + -0x760);
  uVar45 = (uVar43 ^ uVar29) << 0x34;
  uVar32 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar5 + -0x628) = uVar45 ^ CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar27 = DAT_182671fa4;
  uVar48 = (ulonglong)DAT_182671fa4;
  uVar29 = ((ulonglong)uVar10 << 0x14 | (ulonglong)(uVar10 >> 0xc)) ^ uVar29 >> 0xc;
  *(ulonglong *)(lVar5 + -0x2b0) = uVar29 ^ uVar32;
  *(ulonglong *)(lVar5 + -0xd88) = CONCAT44(uVar23,uVar23) ^ uVar36 ^ 0x4a5abe71d59c3822;
  uVar31 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar32 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar5 + -0x920) = (uVar29 | uVar45) ^ uVar31;
  *(ulonglong *)(lVar5 + -0x228) = *(ulonglong *)(uVar32 ^ *(ulonglong *)(lVar5 + -0x418)) ^ uVar38;
  uVar32 = CONCAT44(uVar27,uVar27);
  *puVar30 = *(ulonglong *)(lVar5 - (uVar37 ^ 0xefbf96ef)) ^ uVar32 ^ uVar31 ^ uVar25 ^ *puVar1;
  uVar13 = DAT_182671db8;
  uVar36 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *puVar47 = (*(ulonglong *)(lVar5 - (uVar41 ^ 0xb8169f63)) ^ uVar46) +
             (uVar40 ^ *(ulonglong *)(lVar5 + -0xb20)) ^ uVar36;
  uVar31 = CONCAT44(uVar13,uVar13);
  local_100 = (byte)uVar49;
  uVar37 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *(ulonglong *)(lVar5 + -0x380) =
       (uVar46 ^ *(ulonglong *)(lVar5 + -0x7c0)) << ((local_100 ^ 0x14) & 0x3f) ^ uVar31;
  uVar13 = DAT_182671f24;
  *(ulonglong *)(lVar5 - (uVar44 ^ 0x9f0467af)) =
       ((ulonglong)DAT_182671d60 << 0x19 | (ulonglong)(DAT_182671d60 >> 7)) ^
       *(ulonglong *)(lVar5 + -0x7c0) >> 7 ^ uVar37;
  *(ulonglong *)(lVar5 + -0xb08) =
       *(ulonglong *)
        (*(ulonglong *)(lVar5 - (uVar41 ^ 0xb8169eb3)) ^ CONCAT44(DAT_182671f80,DAT_182671f80)) ^
       CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671ccc;
  uVar29 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  puVar47 = (ulonglong *)(lVar5 - (uVar22 ^ 0xca39319));
  *puVar47 = (*(ulonglong *)(lVar5 - (uVar19 ^ 0x25270088)) ^ uVar37 |
             uVar31 ^ *(ulonglong *)(lVar5 + -0x380)) ^ uVar29;
  uVar29 = uVar29 ^ uVar36 ^ *(ulonglong *)(lVar5 + -0x110) ^ uVar51 ^
           *(ulonglong *)(lVar5 + -0x7e8);
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x760) = uVar29;
  uVar29 = uVar29 ^ uVar51;
  uVar38 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(lVar5 + -0xd88) = (uVar25 ^ *puVar1) + uVar29 ^ uVar31;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x6f27992c)) =
       uVar29 << ((bVar34 ^ 0xb4) & 0x3f) ^ uVar38;
  uVar37 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0xe5991daf)) ^ uVar51) >> ((local_res18 ^ 0xe6) & 0x3f)
  ;
  uVar29 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar5 + -0x2b0) = uVar37 ^ CONCAT44(uVar16,uVar16);
  uVar13 = DAT_182671eb0;
  uVar37 = (uVar38 ^ *(ulonglong *)(lVar5 + -0x628) | uVar37) ^ uVar29;
  *(ulonglong *)(lVar5 + -0x228) = uVar37;
  uVar44 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x920) =
       uVar44 ^ uVar29 ^ uVar31 ^ uVar37 ^ *(ulonglong *)(lVar5 + -0xd88);
  uVar38 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar5 + -0xb20) =
       (uVar36 ^ *(ulonglong *)(lVar5 + -0x110)) + (uVar32 ^ *(ulonglong *)(lVar5 + -0xa60)) ^
       uVar38;
  lVar4 = DAT_182671c40;
  local_c8 = (byte)uVar16;
  local_148 = (byte)uVar12;
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0xc9b50113)) =
       (CONCAT44(uVar7,uVar9) ^ 0xc9b157bbff01910d) <<
       ((*(byte *)(DAT_182671c40 - (uVar24 ^ 0x94f10e13)) ^ local_c8) & 0x3f);
  uVar37 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x94f107ab)) =
       (*(ulonglong *)(lVar4 - (uVar42 ^ 0xc9b50cb3)) ^ uVar32) << ((local_148 ^ 0xd9) & 0x3f) ^
       uVar37;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xb816902b)) =
       ((ulonglong)(uVar27 >> 0x18) | uVar48 << 8) ^ *(ulonglong *)(lVar4 + -0xa60) >> 0x18 ^ uVar43
  ;
  uVar29 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xe599194f)) =
       (*(ulonglong *)(lVar4 + -0xb08) ^ uVar37 | uVar43 ^ *puVar2) ^ uVar29;
  lVar5 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar37 = uVar38 ^ uVar32 ^ uVar29 ^ *(ulonglong *)(lVar4 + -0xb20) ^
           *(ulonglong *)(lVar4 + -0x380);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar37;
  uVar37 = uVar37 ^ uVar32;
  uVar29 = *(ulonglong *)(lVar5 + -0xd88);
  *puVar1 = CONCAT44(uVar11,uVar39) ^ CONCAT44(uVar8,uVar23) ^ 0x917b12bfd014a284;
  uVar42 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar24 = uVar37 << ((local_res20 ^ 5) & 0x3f);
  uVar37 = (uVar31 ^ uVar29) + uVar37 ^ uVar42;
  uVar29 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(lVar5 + -0x760) = uVar37;
  *(ulonglong *)(lVar5 + -0x628) = uVar24 ^ uVar29;
  uVar13 = DAT_182671cf8;
  *(ulonglong *)(lVar5 + -0x228) =
       (CONCAT44(uVar7,uVar9) ^ 0x47781f253f164c9f) << (((byte)uVar26 ^ 0x27) & 0x3f);
  uVar14 = DAT_182671d68;
  lVar4 = DAT_182671c40;
  local_110 = (byte)uVar8;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (*puVar47 ^ uVar32) >> (((byte)uVar6 ^ 0x3f) & 0x3f) ^ uVar29;
  uVar13 = DAT_182671de8;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar29 = (*(ulonglong *)(lVar4 - (uVar19 ^ 0x25270910)) ^ uVar29 | uVar24) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar29;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xca39331)) =
       CONCAT44(uVar13,uVar13) ^ uVar37 ^ uVar29 ^ uVar32 ^ uVar42;
  uVar24 = uVar44 ^ *(ulonglong *)(lVar4 + -0x920);
  *(ulonglong *)(lVar4 + -0xa60) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0x6f279624)) ^ uVar44) +
       (uVar38 ^ *(ulonglong *)(lVar4 + -0xb20)) ^ CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar37 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(lVar4 + -0xb08) =
       (CONCAT44(uVar49,uVar18) ^ 0x562704191ee8666) << ((bVar33 ^ 0xde) & 0x3f);
  *puVar2 = uVar24 << ((local_110 ^ 2) & 0x3f) ^ uVar37;
  uVar13 = DAT_182671d70;
  uVar29 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0xf040c84)) = uVar24 >> ((bVar34 ^ 0xb8) & 0x3f) ^ uVar29;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0xca39771)) ^ uVar29 | *puVar2 ^ uVar37) ^
            CONCAT44(uVar13,uVar13);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar3 ^ uVar49;
  return;
}



############ FUN_ 180f63da0 size=4793 ############

void FUN_180f63da0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  longlong *plVar33;
  uint uVar34;
  uint uVar35;
  byte bVar36;
  uint uVar37;
  byte *pbVar38;
  ulonglong uVar39;
  byte bVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  uint uVar45;
  ulonglong uVar46;
  byte bVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  uint uVar51;
  ulonglong uVar52;
  
  uVar14 = DAT_182671c90;
  uVar13 = DAT_182671c8c;
  uVar12 = DAT_182671c88;
  uVar11 = DAT_182671c80;
  uVar10 = DAT_182671c7c;
  uVar8 = DAT_182671c64;
  uVar7 = DAT_182671c54;
  uVar5 = DAT_182671c50;
  uVar4 = DAT_182671c4c;
  uVar35 = DAT_182671c7c * DAT_182671c50;
  uVar52 = (ulonglong)DAT_182671c80;
  uVar50 = (ulonglong)DAT_182671c90;
  uVar32 = (ulonglong)DAT_182671c64;
  uVar27 = (ulonglong)DAT_182671c54;
  uVar41 = *(uint *)(&DAT_182613218 + DAT_1826721c4) ^ DAT_182671c7c;
  uVar26 = (ulonglong)DAT_182671c8c;
  uVar49 = (ulonglong)DAT_182671c88;
  uVar45 = DAT_182671c64 & DAT_182671c8c;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826721c4);
  uVar37 = DAT_182671c54 & DAT_182671c88;
  uVar34 = DAT_182671c80 * DAT_182671c90;
  uVar51 = ~DAT_182671c4c;
  DAT_182671c48 = uVar34;
  DAT_182671c58 = uVar45;
  DAT_182671c60 = uVar37;
  DAT_182671c68 = uVar51;
  DAT_182671c84 = uVar35;
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       CONCAT44(DAT_182671c50,DAT_182671c54) ^ *(ulonglong *)(DAT_182671c40 + -0x7c0) ^
       0xe9471bda8023aea4;
  uVar42 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar28 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       *(ulonglong *)
        (CONCAT44(DAT_182671e8c,DAT_182671e8c) ^ *(ulonglong *)(DAT_182671c40 + -0x918)) ^ uVar28 ^
       uVar42;
  lVar2 = DAT_182671c40;
  uVar22 = (ulonglong)uVar37;
  *(ulonglong *)(DAT_182671c40 + -0x918) = CONCAT44(uVar12,uVar37) ^ 0xe5f0f9bbf7ed4c0a;
  lVar3 = DAT_182671c40;
  uVar23 = (ulonglong)uVar45;
  *(ulonglong *)(lVar2 + -0xa08) = CONCAT44(uVar45,uVar4) ^ 0xa19523b22c9403cb;
  uVar48 = CONCAT44(DAT_182671efc,DAT_182671efc);
  bVar40 = (byte)DAT_182671efc;
  *(ulonglong *)(lVar3 + -0x228) =
       (*(ulonglong *)(lVar3 + -0xda8) ^ uVar42) >> (((byte)uVar13 ^ 0x38) & 0x3f) ^ uVar48;
  uVar24 = (ulonglong)uVar34;
  *(byte *)(lVar3 - ((ulonglong)uVar34 ^ 0x549816f6)) =
       bVar40 ^ *(byte *)(lVar3 + -0x228) ^ (byte)DAT_182671df4;
  pbVar38 = (byte *)(*(longlong *)(lVar3 + -0x1d0) + 0x54);
  *(ulonglong *)(lVar3 + -0x8d0) = (ulonglong)pbVar38 ^ (ulonglong)DAT_182671ca4;
  uVar15 = DAT_182671f90;
  *pbVar38 = *(byte *)(lVar3 - ((ulonglong)uVar35 ^ 0xccee5435)) ^ (byte)DAT_182671d18 ^
             (byte)DAT_182671df4;
  uVar9 = DAT_182671e94;
  puVar29 = (ulonglong *)(*(longlong *)(lVar3 + -0x310) + 0x50);
  *(ulonglong *)(lVar3 + -0x40) = (ulonglong)puVar29 ^ CONCAT44(uVar15,uVar15);
  uVar20 = DAT_182671f70;
  uVar31 = (ulonglong)DAT_182671f70;
  uVar46 = CONCAT44(uVar9,uVar9);
  uVar42 = CONCAT44(DAT_182671f70,DAT_182671f70);
  bVar47 = (byte)DAT_182671f70;
  *(ulonglong *)(lVar3 + -0x628) = *puVar29 ^ uVar46 ^ uVar28;
  *(undefined8 *)(lVar3 - (uVar22 ^ 0x1008615a)) = 0x4c19d3bd68df5858;
  uVar9 = DAT_182671e5c;
  *(ulonglong *)(lVar3 + -0x8f0) =
       CONCAT44(uVar51,uVar12) ^ uVar48 ^ *(ulonglong *)(lVar3 + -0x228) ^ 0xf8d09c4516f25793;
  uVar42 = (*(ulonglong *)(lVar3 + -0x628) ^ uVar46) >> (((byte)uVar11 ^ 0x55) & 0x3f) ^ uVar42;
  bVar40 = (byte)uVar42;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar42;
  *(byte *)(lVar3 + -0xa81) = bVar47 ^ bVar40 ^ (byte)uVar9;
  uVar46 = (ulonglong)uVar10;
  *(longlong *)(lVar3 + -0xb18) = 0x4b9c42d237399ee7 << ((bVar40 ^ bVar47) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671f78;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar35 ^ 0xccee5b81)) =
       *(longlong *)(DAT_182671c40 - (uVar46 ^ 0xdd4ff151)) +
       (CONCAT44(uVar14,uVar37) ^ 0xce10c0621008614f) ^ uVar42;
  *(ulonglong *)(lVar2 + -0xa60) =
       CONCAT44(uVar11,uVar7) ^ 0x7f2a77bece06a3fb | CONCAT44(uVar35,uVar14) ^ 0x9efbd4ccf9a1a03b;
  *(byte *)(*(ulonglong *)(lVar2 + -0x898) ^ uVar42) =
       (byte)uVar9 ^ (byte)DAT_182671d18 ^ *(byte *)(lVar2 + -0xa81);
  uVar43 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x7de1cc70)) =
       *(longlong *)(lVar2 - (uVar50 ^ 0xce10c372)) +
       ((CONCAT44(uVar8,uVar37) ^ 0xfd5bf71310086110) +
       (CONCAT44(uVar12,uVar13) ^ 0x141a613e7de1ca18) * 0xc) * 8 ^ uVar43;
  uVar6 = DAT_182671c50;
  uVar39 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar42 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0x3d8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x668) ^ uVar43) ^ uVar39 ^ uVar28;
  uVar9 = DAT_182671da0;
  puVar30 = (ulonglong *)(lVar2 - (uVar42 ^ 0xd33c9a09));
  *puVar30 = 0x9449a6844ba4138b;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar51 ^ 0x200c0aa9)) =
       (*(ulonglong *)(DAT_182671c40 + -0x3d8) ^ uVar39) >> (((byte)uVar14 ^ 0x52) & 0x3f) ^
       CONCAT44(uVar9,uVar9);
  bVar40 = (byte)DAT_182671d38;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x7d41cb70)) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0x7d41c038)) ^ uVar48) + 0xa0b1558102796c5f;
  pbVar38 = (byte *)((CONCAT44(uVar35,uVar4) ^ 0xccee5319dff3f938) + *(longlong *)(lVar2 + -0x1d0));
  bVar47 = (byte)uVar9 ^ *(byte *)(lVar2 + -0xc38) ^ bVar40;
  bVar40 = bVar40 ^ (byte)DAT_182671d18;
  uVar42 = (ulonglong)DAT_182671ee0;
  *(ulonglong *)(lVar2 + -0x618) = (ulonglong)pbVar38 ^ (ulonglong)DAT_182671d20;
  *(byte *)(lVar2 + -0x87a) = bVar47;
  uVar15 = DAT_182671e84;
  *(byte *)(lVar2 + -0xc41) =
       *(byte *)(uVar42 ^ *(ulonglong *)(lVar2 + -0x990)) ^ (byte)DAT_182671f14;
  *pbVar38 = bVar40 ^ bVar47;
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x828) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x549819fa)) ^ uVar43) ^ uVar28;
  uVar18 = DAT_182671f08;
  lVar3 = DAT_182671c40;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar26 ^ 0x7de1c908)) +
            (CONCAT44(uVar10,uVar6) ^ 0xdd4ff081d33c9693) * 8);
  puVar25 = (ulonglong *)(DAT_182671c40 - (uVar52 ^ 0x18caecf5));
  *(ulonglong *)(lVar2 + -0xab0) = (ulonglong)puVar29 ^ CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar21 = DAT_182671df0 >> 0x18;
  *puVar25 = CONCAT44(DAT_182671df0,DAT_182671df0) ^ *puVar29 ^ uVar28;
  uVar19 = DAT_182671f18;
  bVar40 = (byte)DAT_182671e30;
  uVar26 = CONCAT44(uVar7,uVar6);
  *(ulonglong *)(CONCAT44(DAT_182671f18,DAT_182671f18) ^ *(ulonglong *)(lVar3 + -0x418)) =
       uVar26 ^ 0xad15778dbd9f9f9d;
  *(ulonglong *)(lVar3 + -0x418) = CONCAT44(uVar12,uVar4) ^ 0xd2c27d840be5feb1;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (ulonglong)*(byte *)(lVar3 + -0xd81) ^ (ulonglong)uVar21 ^ CONCAT44(uVar18,uVar18);
  bVar47 = *(byte *)(lVar3 - ((ulonglong)uVar35 ^ 0xccee51a9)) ^ bVar40 ^ (byte)uVar18;
  *(byte *)(DAT_182671c40 + -0x6d9) = bVar47;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (CONCAT44(uVar5,uVar37) ^ 0x4fc6c722eb68aa67) << (((byte)uVar10 ^ 0xb8) & 0x3f);
  uVar15 = DAT_182671e00;
  uVar21 = DAT_182671d54;
  bVar40 = bVar40 ^ (byte)DAT_182671d18;
  uVar42 = (ulonglong)DAT_182671e0c;
  uVar39 = (ulonglong)DAT_182671d54;
  pbVar38 = (byte *)((CONCAT44(uVar4,uVar7) ^ 0xdff3f96e7b2d7b0c) + *(longlong *)(lVar2 + -0x1d0));
  *(undefined8 *)(lVar2 + -0x110) = 0xfffcbffd77ecffff;
  *(ulonglong *)(lVar2 + -0x990) = (ulonglong)pbVar38 ^ uVar42;
  *pbVar38 = bVar40 ^ bVar47;
  uVar16 = DAT_182671e58;
  bVar40 = (byte)uVar51;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar8,uVar51) ^ 0xfd5bf713200c069a) +
            (CONCAT44(uVar14,uVar12) ^ 0xce10c062141a613e) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x910) = (ulonglong)puVar29 ^ CONCAT44(uVar21,uVar21);
  uVar42 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x10086b4a)) = *puVar29 ^ uVar42 ^ uVar28;
  *(undefined8 *)(lVar2 + -0x910) = 0x2c4dbcab5675fe9c;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x7b2d7c3b)) =
       (*(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar42) >> ((bVar40 ^ 0x91) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x5e8) = *(ulonglong *)(uVar43 ^ *(ulonglong *)(lVar2 + -0x820)) ^ uVar28;
  bVar47 = (byte)DAT_182671f8c;
  bVar44 = (byte)uVar15 ^ (byte)DAT_182671f8c;
  *(ulonglong *)(lVar2 + -0x820) = CONCAT44(uVar8,uVar7) ^ 0x6beca9b5d74e6b41;
  bVar44 = bVar44 ^ *(byte *)(lVar2 + -0x760);
  *(byte *)(lVar2 + -0x431) = bVar44;
  uVar17 = DAT_182671e64;
  bVar47 = bVar47 ^ bVar44 ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0x511) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar50 ^ 0xce10c34a)) ^ (ulonglong)DAT_182671f64) ^
       (byte)DAT_182671f14;
  pbVar38 = (byte *)((CONCAT44(uVar45,uVar34) ^ 0x7d41c21054981182) + *(longlong *)(lVar2 + -0x1d0))
  ;
  *(ulonglong *)(lVar2 + -0x328) = (ulonglong)pbVar38 ^ (ulonglong)DAT_182671dc4;
  uVar16 = DAT_182671e34;
  *pbVar38 = bVar47;
  uVar42 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0xb98) =
       (CONCAT44(uVar11,uVar13) ^ 0x18cae17d7de1ca18) * 0x60 + *(longlong *)(lVar2 + -0x310) + 0x58
       ^ uVar42;
  *(ulonglong *)(lVar2 + -0xc18) =
       *(ulonglong *)(lVar2 - (uVar46 ^ 0xdd4ff2a9)) ^ uVar48 |
       CONCAT44(uVar12,uVar51) ^ 0xd99cb70b73623619;
  bVar47 = (byte)DAT_182671e90;
  uVar42 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0x7d41c988)) ^ uVar42);
  *(ulonglong *)(lVar2 + -0x380) = uVar42;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (uVar42 ^ uVar28) >> ((bVar40 ^ 0x99) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  bVar44 = (byte)uVar17 ^ bVar47 ^ *(byte *)(lVar2 + -0x510);
  bVar47 = bVar47 ^ bVar44 ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0xa51) = bVar44;
  uVar16 = DAT_182671fb0;
  *(ulonglong *)(lVar2 + -0xb08) =
       CONCAT44(uVar11,uVar14) ^ 0xb18c3b1a487e1b9 | CONCAT44(uVar4,uVar35) ^ 0xdd0370a1ceed19aa;
  pbVar38 = (byte *)((CONCAT44(uVar13,uVar34) ^ 0x7de1ca1854981183) + *(longlong *)(lVar2 + -0x1d0))
  ;
  *(ulonglong *)(lVar2 + -0x600) = (ulonglong)pbVar38 ^ (ulonglong)DAT_182671d40;
  *(ulonglong *)(lVar2 + -0xbd8) =
       CONCAT44(uVar45,uVar35) ^ CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar2 + -0x760) ^
       0xe713c84c9ac37e30;
  *pbVar38 = bVar47;
  uVar15 = DAT_182671e24;
  *(ulonglong *)(lVar2 + -0xf0) =
       (uVar31 << 0x1e | (ulonglong)(uVar20 >> 2)) ^ *(ulonglong *)(lVar2 + -0x4b8) >> 2;
  uVar42 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 - (uVar49 ^ 0x141a6c6e)) =
       *(longlong *)(lVar2 + -0x310) + (uVar26 ^ 0x7b2d7b5bd33c9692) * 8 ^ uVar42;
  uVar49 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x7d41c860)) =
       *(ulonglong *)(uVar42 ^ *(ulonglong *)(lVar2 + -0xd50)) ^ uVar49 ^ uVar28;
  *(undefined8 *)(lVar2 + -0xd50) = 0x53ddebc7d45c097a;
  uVar21 = DAT_182671d98;
  lVar2 = DAT_182671c40;
  uVar42 = CONCAT44(uVar51,DAT_182671c50);
  uVar27 = (ulonglong)DAT_182671d98;
  bVar47 = (byte)uVar19 ^ (byte)DAT_182671d18;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (*(ulonglong *)(DAT_182671c40 + -0xa70) ^ uVar49) >> (((byte)DAT_182671c50 ^ 0x89) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  *(byte *)(lVar2 + -0x27d) = (byte)uVar16 ^ (byte)uVar19 ^ *(byte *)(lVar2 + -0x680);
  *(int *)(lVar2 - (uVar32 ^ 0xfd5bf747)) = *(int *)(lVar2 - (uVar22 ^ 0x1008672e)) + 0x3f348259;
  pbVar38 = (byte *)((CONCAT44(uVar11,uVar11) ^ 0x18cae17d18cae127) + *(longlong *)(lVar2 + -0x1d0))
  ;
  *(ulonglong *)(lVar2 + -8) = (ulonglong)pbVar38 ^ uVar39;
  *pbVar38 = bVar47 ^ *(byte *)(lVar2 + -0x27d);
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar24 ^ 0x549812ca)) + (uVar42 ^ 0x200c0691d33c9692) * 8);
  *(ulonglong *)(lVar2 + -0xb20) =
       (CONCAT44(uVar11,uVar34) ^ 0x9e5ea52dd1224532) >>
       ((byte)*(undefined8 *)(lVar2 + -0xbd8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x610) = (ulonglong)puVar29 ^ CONCAT44(uVar9,uVar9);
  bVar47 = (byte)DAT_182671d2c;
  *(ulonglong *)(lVar2 + -0x920) = CONCAT44(uVar21,uVar21) ^ *puVar29 ^ uVar28;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0xfd5bf1eb)) ^ (ulonglong)DAT_182671d5c) ^
       (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 + -0x7e8) =
       ((ulonglong)(uVar21 >> 0x18) | uVar27 << 8) ^ *(ulonglong *)(lVar2 + -0x920) >> 0x18 ^
       CONCAT44(uVar18,uVar18);
  bVar44 = (byte)DAT_182671d18;
  uVar22 = (ulonglong)DAT_182671ea8;
  bVar36 = *(byte *)(lVar2 - (uVar46 ^ 0xdd4ff769)) ^ bVar47 ^ (byte)uVar18;
  plVar33 = (longlong *)(lVar2 - ((ulonglong)uVar4 ^ 0xdff3f8be));
  *(byte *)(lVar2 + -0xc02) = bVar36;
  pbVar38 = (byte *)((uVar26 ^ 0x7b2d7b5bd33c96c2) + *plVar33);
  uVar42 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar2 + -0x6f8) = (ulonglong)pbVar38 ^ uVar22;
  *(ulonglong *)(lVar2 + -0xa78) = *(ulonglong *)(uVar42 ^ *(ulonglong *)(lVar2 + -0x7a0)) ^ uVar28;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x7a0) = CONCAT44(uVar12,uVar14) ^ 0xad77d1d93efe295e;
  *pbVar38 = bVar47 ^ bVar44 ^ bVar36;
  *(uint *)(lVar2 + -0x684) = *(uint *)(lVar2 + -0x58c) & 0xdbc88744;
  uVar15 = DAT_182671df8;
  uVar9 = DAT_182671ca8;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar35,uVar11) ^ 0xccee531918cae176) +
            (CONCAT44(uVar4,uVar14) ^ 0xdff3f96ece10c062) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar29 ^ CONCAT44(DAT_182671ed4,DAT_182671ed4);
  uVar46 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 - (uVar50 ^ 0xce10c7a2)) = *puVar29 ^ uVar46 ^ uVar28;
  bVar47 = (byte)DAT_182671c9c;
  lVar2 = DAT_182671c40;
  uVar42 = (uVar46 ^ *(ulonglong *)(DAT_182671c40 + -0x7c0)) >> ((bVar40 ^ 0xb1) & 0x3f) ^
           CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar42;
  bVar40 = (byte)uVar9 ^ bVar47 ^ (byte)uVar42;
  *(byte *)(lVar2 + -0x2ba) = bVar40;
  uVar21 = DAT_182671ef0;
  uVar42 = (ulonglong)DAT_182671ef0;
  pbVar38 = (byte *)((CONCAT44(uVar45,uVar35) ^ 0x7d41c210ccee5345) + *(longlong *)(lVar2 + -0x1d0))
  ;
  *(ulonglong *)(lVar2 + -0x100) = (ulonglong)pbVar38 ^ (ulonglong)DAT_182671ed8;
  *pbVar38 = bVar47 ^ bVar40 ^ bVar44;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x54981c72)) =
       (CONCAT44(uVar11,uVar45) ^ 0xce8dd3ba24850dbe) << (((byte)DAT_182671c74 ^ 0x9f) & 0x3f);
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 - ((ulonglong)DAT_182671c78 ^ 0x652b2875)) +
            (CONCAT44(uVar37,uVar7) ^ 0x1008611a7b2d7b50) * 8);
  *(ulonglong *)(lVar2 + -0xd68) = (ulonglong)puVar29 ^ CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar15 = DAT_182671f60;
  *(ulonglong *)(lVar2 + -0x8f0) = CONCAT44(uVar21,uVar21) ^ *puVar29 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar12,uVar10) ^ 0x83b3d12a5fb141bb) >>
       (((byte)uVar9 ^ *(byte *)(lVar2 + -0xa08)) & 0x3f);
  uVar22 = (ulonglong)DAT_182671fa0;
  uVar42 = (*(ulonglong *)(lVar2 + -0x8f0) >> 0x20 ^ uVar42) >> 8 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0xb18) = uVar42;
  bVar40 = (byte)uVar15 ^ (byte)uVar42 ^ (byte)DAT_182671da4;
  *(byte *)(lVar2 + -0x9e9) = bVar40;
  bVar40 = bVar40 ^ bVar44 ^ (byte)DAT_182671da4;
  *(ulonglong *)(lVar2 + -0x5c8) = *plVar33 + 0x5dU ^ uVar22;
  uVar9 = DAT_182671c6c;
  uVar42 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0x7d41c7d8)) ^ uVar22) = bVar40;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar8,DAT_182671c5c) ^ 0xfd5bf7132004028b) +
            (CONCAT44(uVar9,uVar37) ^ 0xaebd1a821008611a) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x6e8) = (ulonglong)puVar29 ^ uVar42;
  uVar15 = DAT_182671f48;
  uVar9 = DAT_182671e5c;
  *(ulonglong *)(lVar2 + -0xa60) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar35 ^ 0xccee54d9)) ^ uVar46 ^ CONCAT44(uVar11,uVar34) ^
       0x193d333badecb59e;
  uVar42 = CONCAT44(uVar15,uVar15);
  *puVar30 = *puVar29 ^ uVar28 ^ uVar42;
  uVar21 = DAT_182671c50 ^ 0x998189c3;
  *(ulonglong *)(lVar2 + -0x3d8) =
       (*(ulonglong *)(lVar2 + -0xc90) ^ uVar42) >> (((byte)uVar13 ^ 0x28) & 0x3f) ^
       CONCAT44(uVar9,uVar9);
  *(uint *)(lVar2 + -0x61c) = uVar21 + 0xa08eadc4;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar35) * 4) = uVar41;
  return;
}



############ FUN_ 180fbcbb0 size=4429 ############

void FUN_180fbcbb0(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint *puVar27;
  uint *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte *pbVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  
  uVar33 = DAT_182671c90;
  uVar13 = DAT_182671c84;
  uVar12 = DAT_182671c7c;
  lVar3 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c84;
  uVar22 = (ulonglong)DAT_182671c7c;
  uVar19 = DAT_182671c84 | DAT_182671c7c;
  uVar15 = (DAT_182671c90 << 0x10 | DAT_182671c90 & 0xff00) << 8 | DAT_182671c90 >> 8 & 0xff00 |
           DAT_182671c90 >> 0x18;
  uVar10 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar15 ^ 0x2b58804) + (longlong)DAT_1826722c8) ^
           DAT_182671c90;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826722c8);
  uVar20 = (ulonglong)DAT_182671c84;
  uVar14 = (ulonglong)DAT_182671c7c;
  uVar34 = (ulonglong)uVar19;
  uVar23 = (ulonglong)DAT_182671c90;
  uVar31 = CONCAT44(uVar15,DAT_182671c90);
  DAT_182671c50 = uVar15;
  DAT_182671c78 = uVar19;
  *(uint *)(DAT_182671c40 - (uVar30 ^ 0x36ef6dfb)) =
       *(uint *)(DAT_182671c40 - (uVar22 ^ 0x3b4508d6)) ^ DAT_182671d30 ^ DAT_182671e10;
  uVar16 = *(uint *)(lVar3 + -0x1c8) ^ DAT_182671d7c ^ DAT_182671eb8;
  *(uint *)(lVar3 + -0x94c) = uVar16;
  uVar16 = uVar16 ^ DAT_182671eac ^ DAT_182671d7c;
  puVar27 = (uint *)(lVar3 - ((ulonglong)uVar19 ^ 0x3fef6bfb));
  *(uint *)(lVar3 + -0x61c) = *puVar27 ^ DAT_182671d34 ^ DAT_182671d30;
  puVar28 = (uint *)(lVar3 - (uVar14 ^ 0x3b450916));
  *puVar28 = uVar16;
  bVar2 = (byte)DAT_182671f98;
  pbVar32 = (byte *)((uVar31 ^ 0x2b5880c0c88b502) * 0x20 +
                     (CONCAT44(uVar19,uVar12) ^ 0x3fef6fbf3b450e93) + *(longlong *)(lVar3 + -0x9a8))
  ;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x36ef659f)) = (ulonglong)pbVar32 ^ (ulonglong)DAT_182671ebc;
  uVar16 = DAT_182671d0c;
  *(byte *)(lVar3 - ((ulonglong)uVar13 ^ 0x36ef687c)) = *pbVar32 ^ bVar2 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar3 + -0x6c0) = (bVar2 ^ *(byte *)(lVar3 + -0x1c3)) ^ uVar16;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x3b450ea2)) =
       CONCAT44(uVar19,uVar15) << 0x3c ^ 0xc000000000000000;
  *(uint *)(lVar3 - (uVar20 ^ 0x36ef6f8b)) =
       (*(uint *)(lVar3 - (uVar23 ^ 0xc88b286)) ^ DAT_182671eac) + (uVar19 ^ 0xa3ad7da1) ^
       DAT_182671f10;
  *(uint *)(lVar3 - ((ulonglong)uVar13 ^ 0x36ef6ed3)) =
       (uVar16 ^ *(uint *)(lVar3 + -0x6c0)) << (((byte)uVar19 ^ 0xae) & 0x1f) ^ DAT_182671d98;
  uVar11 = *(uint *)(lVar3 + -0x76c) ^ DAT_182671d98;
  *(ulonglong *)(lVar3 + -0x408) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c5c ^ 0x100849e2)) ^
       CONCAT44(DAT_182671ef0,DAT_182671ef0)) + 0x1794bbc1e09a993d;
  *(uint *)(lVar3 + -0xa94) = (*(uint *)(lVar3 + -0x634) ^ DAT_182671f10) - uVar11 ^ DAT_182671f7c;
  uVar24 = (*(uint *)(lVar3 - ((ulonglong)uVar13 ^ 0x36ef632b)) ^ DAT_182671f7c) *
           (*(uint *)(lVar3 + -0x61c) ^ DAT_182671d34) ^ DAT_182671d74;
  *(uint *)(lVar3 + -0x4ac) = uVar24;
  uVar11 = DAT_182671d60;
  uVar16 = *(uint *)(lVar3 - (uVar34 ^ 0x3fef697f)) ^ DAT_182671d8c ^ uVar16;
  uVar24 = DAT_182671d74 ^ uVar24;
  *(uint *)(lVar3 + -0xae4) = uVar16;
  *(uint *)(lVar3 + -0x94) = (uVar16 ^ DAT_182671d8c) + uVar24 ^ uVar11;
  uVar6 = DAT_182671c94;
  uVar25 = DAT_182671c80;
  uVar16 = DAT_182671c60;
  uVar5 = DAT_182671c48;
  lVar4 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c60;
  uVar23 = (ulonglong)DAT_182671c80;
  bVar2 = (byte)DAT_182671c48;
  uVar31 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0x2b58d80)) =
       (*(uint *)(lVar3 - (uVar14 ^ 0x3b450e06)) ^ uVar11) << 0xd ^ DAT_182671df4;
  *(uint *)(lVar4 - (uVar20 ^ 0x1008614e)) =
       (uVar11 ^ *(uint *)(lVar4 + -0x94)) >> ((bVar2 ^ 0x93) & 0x1f) ^ DAT_182671e78;
  uVar18 = DAT_182671cec;
  uVar11 = DAT_182671c54;
  uVar29 = DAT_182671d18 ^ DAT_182671e00;
  *(uint *)(lVar4 - ((ulonglong)uVar19 ^ 0x3fef69cf)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0xa5f6fac8)) ^ DAT_182671e78 |
       *(uint *)(lVar4 + -0x58c) ^ DAT_182671df4) ^ DAT_182671e00;
  *(ulonglong *)(lVar4 + -0xa60) = CONCAT44(uVar11,DAT_182671c68) << 0x27 ^ 0x3d5cfb8000000000;
  uVar24 = DAT_182671c6c;
  uVar17 = (*(uint *)(lVar4 - (uVar23 ^ 0x36e70eb9)) ^ DAT_182671d34) +
           (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671ca4;
  *(uint *)(lVar4 + -0x684) = uVar17;
  *(uint *)(lVar4 - ((ulonglong)uVar33 ^ 0xc88bcde)) = uVar17 ^ DAT_182671df0 ^ DAT_182671ca4;
  uVar29 = uVar29 ^ *(uint *)(lVar4 + -0x670);
  *(uint *)(lVar4 + -0x644) = uVar29;
  *(uint *)(lVar4 + -0x1c8) = *(uint *)(lVar4 + -0x9dc) ^ uVar18 ^ DAT_182671df0;
  uVar17 = DAT_182671c74;
  uVar33 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671c74;
  *(uint *)(lVar4 + -0x444) = uVar29 ^ DAT_182671f6c ^ DAT_182671d18;
  uVar26 = DAT_182671c8c;
  uVar14 = (ulonglong)DAT_182671e24;
  uVar20 = (ulonglong)DAT_182671c8c;
  uVar23 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar4 + -0x3d8) =
       (CONCAT44(uVar24,uVar16) ^ 0xa32f7ba176733097) +
       (CONCAT44(uVar6,uVar33) ^ 0x4738d04956b2c976);
  uVar8 = DAT_182671f38;
  bVar2 = (byte)DAT_182671e08;
  lVar4 = DAT_182671c40;
  pbVar32 = (byte *)(*(longlong *)(DAT_182671c40 - (uVar23 ^ 0xc88bcaa)) +
                     (CONCAT44(uVar17,uVar13) ^ 0xa235af8036ef69b3) +
                    (CONCAT44(uVar26,uVar25) ^ 0x7de1ca1836e708a5) * 0x20);
  *(ulonglong *)(DAT_182671c40 + -0x5a0) = (ulonglong)pbVar32 ^ uVar14;
  uVar24 = DAT_182671e58;
  uVar29 = DAT_182671c88;
  uVar33 = DAT_182671c58;
  bVar9 = *pbVar32 ^ bVar2 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar4 + -0x94c) = (bVar2 ^ bVar9) ^ uVar8;
  *(byte *)(lVar4 + -0x1c3) = bVar9;
  *(ulonglong *)(lVar4 + -0x4b8) =
       (CONCAT44(uVar16,uVar5) ^ 0xb53ce8ab0a382926) + *(longlong *)(lVar4 + -0x7c0);
  *(uint *)(lVar3 - ((ulonglong)uVar29 ^ 0x81e283dc)) =
       (*puVar27 ^ DAT_182671f6c) + (uVar33 ^ 0xe103d00e) ^ uVar24;
  uVar16 = DAT_182671c4c;
  lVar4 = DAT_182671c40;
  uVar14 = (ulonglong)DAT_182671c4c;
  *(uint *)(lVar3 - (uVar22 ^ 0x3b4508a6)) =
       (*(uint *)(lVar3 + -0x94c) ^ uVar8) << (((byte)uVar29 ^ 0x49) & 0x1f) ^ DAT_182671e34;
  uVar23 = (ulonglong)DAT_182671c90;
  uVar24 = (uVar24 ^ *(uint *)(lVar4 + -0x784)) -
           (*(uint *)(DAT_182671c40 - (uVar14 ^ 0xdff3ff5a)) ^ DAT_182671e34) ^ DAT_182671e60;
  *(uint *)(lVar4 + -0x76c) = uVar24;
  uVar7 = DAT_182671dac;
  *(uint *)(lVar4 - (uVar23 ^ 0xc88bf96)) =
       (*(uint *)(lVar4 + -0x1c8) ^ uVar18) * (uVar24 ^ DAT_182671e60) ^ DAT_182671d20;
  uVar24 = DAT_182671de8;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x6c0) = (*(uint *)(lVar4 + -0x94c) ^ uVar8) * 0xc ^ DAT_182671de8;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c60 ^ 0x100865b6)) =
       (uVar26 ^ 0x8ab46ab4) * (uVar6 ^ 0x69274c76);
  uVar25 = DAT_182671c70;
  uVar17 = DAT_182671c6c;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0x36e70241)) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x36e70231)) ^ DAT_182671d20) +
       (uVar24 ^ *(uint *)(lVar3 + -0x6c0)) ^ uVar7;
  uVar24 = DAT_182671c5c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x2b5825c)) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c5c ^ 0x10084792)) ^ CONCAT44(uVar5,uVar17) ^
       0xaeb50ddf8f293501;
  uVar23 = (ulonglong)DAT_182671d68;
  uVar17 = (uVar7 ^ *(uint *)(lVar3 + -0xae4)) << (((byte)uVar16 ^ 99) & 0x1f);
  *(uint *)(lVar3 + -0x94) = uVar17 ^ DAT_182671cf4;
  uVar22 = (ulonglong)DAT_182671c54;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x170) ^ uVar23) ^ (byte)DAT_182671e0c;
  uVar16 = (*(uint *)(lVar3 - (uVar22 ^ 0x81e28ebc)) ^ uVar7) >> 0x13 ^ DAT_182671d54;
  *(uint *)(lVar3 + -0x58c) = uVar16;
  uVar23 = CONCAT44(uVar26,DAT_182671c64);
  *(uint *)(lVar3 + -0x54) = (uVar17 | uVar16 ^ DAT_182671d54) ^ DAT_182671d70;
  uVar17 = DAT_182671dd4;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x228) = CONCAT44(uVar12,uVar24) ^ uVar23 ^ 0xe29768799b6948c7;
  uVar24 = DAT_182671c58;
  uVar35 = (ulonglong)DAT_182671c58;
  *(uint *)(lVar3 - (uVar21 ^ 0xa235a99c)) =
       (*(uint *)(lVar3 - (uVar30 ^ 0x36ef6877)) ^ uVar18) + (*(uint *)(lVar3 + -0x5d4) ^ uVar17) ^
       DAT_182671f84;
  uVar16 = DAT_182671c68;
  *(uint *)(lVar3 - (uVar35 ^ 0x7d41c494)) =
       *(uint *)(lVar3 + -0x61c) ^ DAT_182671fac ^ DAT_182671f84;
  uVar18 = *(uint *)(lVar3 + -0x54) ^ DAT_182671d40 ^ DAT_182671d70;
  *(uint *)(lVar3 + -0x670) = (uVar16 ^ 0x88e96ff5) + (uVar16 ^ 0xbc4e148f);
  uVar26 = DAT_182671e80;
  *(uint *)(lVar3 - (uVar14 ^ 0xdff3f0b2)) = uVar18;
  uVar16 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671d80;
  uVar18 = *(uint *)(DAT_182671c40 + -0x9dc) ^ DAT_182671d40;
  *(uint *)(DAT_182671c40 + -0x644) = uVar26 ^ DAT_182671fac ^ *(uint *)(DAT_182671c40 + -0x684);
  uVar23 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar3 + -0x444) = uVar18 ^ uVar17;
  bVar2 = DAT_182671cf0;
  lVar4 = DAT_182671c40;
  uVar33 = uVar18 + (uVar33 ^ 0xe103d00e) ^ DAT_182671d74;
  pbVar32 = (byte *)(*(longlong *)(lVar3 - (uVar23 ^ 0x36e7010d)) +
                     (CONCAT44(uVar16,uVar5) ^ 0xb5ff5bb6b8d08680) * 0x20 +
                    (CONCAT44(uVar16,uVar29) ^ 0xb5ff5bb681e2844f));
  *(ulonglong *)(DAT_182671c40 + -0xbc0) = (ulonglong)pbVar32 ^ uVar22;
  uVar18 = DAT_182671f30;
  bVar9 = *pbVar32 ^ bVar2 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar4 + -0x1c3) = bVar9;
  *(uint *)(lVar4 + -0x784) = (bVar2 ^ bVar9) ^ uVar18;
  *(uint *)(lVar4 - ((ulonglong)uVar29 ^ 0x81e2826c)) = uVar33;
  bVar2 = (byte)DAT_182671c48;
  *(uint *)(lVar4 - (uVar31 ^ 0xa5f6fdf0)) =
       (uVar18 ^ *(uint *)(lVar4 + -0x784)) << ((bVar2 ^ 0x91) & 0x1f) ^ DAT_182671e28;
  *(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x2b58140)) =
       (*(uint *)(lVar4 + -0x634) ^ DAT_182671d74) - (*(uint *)(lVar4 + -0x76c) ^ DAT_182671e28) ^
       DAT_182671f10;
  uVar16 = DAT_182671e54;
  uVar33 = DAT_182671c6c;
  uVar29 = (*(uint *)(lVar4 - (uVar34 ^ 0x3fef69fb)) ^ uVar26) *
           (*(uint *)(lVar4 - ((ulonglong)DAT_182671c68 ^ 0x200c0fdd)) ^ DAT_182671f10);
  *(uint *)(lVar4 + -0x4ac) = uVar29 ^ DAT_182671f8c;
  uVar25 = (uVar18 ^ *puVar28) * (uVar25 ^ 0x36e708b2) ^ DAT_182671cb8;
  *(uint *)(lVar4 + -0xa94) = uVar25;
  uVar29 = (uVar25 ^ DAT_182671cb8) + uVar29;
  *(ulonglong *)(lVar4 + -0xd88) =
       CONCAT44(uVar24,uVar12) ^ 0x53bc21e363816a4a | *(ulonglong *)(lVar4 + -0x408);
  *(uint *)(lVar4 + -0x6c0) = uVar29 ^ uVar16;
  bVar9 = (byte)DAT_182671c5c;
  *(uint *)(lVar4 + -0xae4) =
       (*(uint *)(lVar4 - (uVar20 ^ 0x7de1ccd8)) ^ uVar16) << ((bVar2 ^ 0x8d) & 0x1f) ^
       DAT_182671f0c;
  uVar23 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar4 + -0x94) = uVar29 >> ((bVar9 ^ 1) & 0x1f) ^ DAT_182671d30;
  *(uint *)(lVar4 + -0x58c) =
       (*(uint *)(lVar4 - (uVar23 ^ 0xc88b596)) ^ DAT_182671d30 |
       *(uint *)(lVar4 - (uVar30 ^ 0x36ef635b)) ^ DAT_182671f0c) ^ DAT_182671f34;
  uVar16 = (*(uint *)(lVar4 + -0x5d4) ^ uVar17) + (uVar26 ^ *(uint *)(lVar4 + -0x644)) ^
           DAT_182671fa8;
  *(uint *)(lVar4 + -0x1c8) = uVar16;
  *(uint *)(lVar4 + -0x61c) = uVar16 ^ DAT_182671ea4 ^ DAT_182671fa8;
  uVar23 = (ulonglong)DAT_182671c54;
  uVar26 = *(uint *)(lVar4 - ((ulonglong)uVar33 ^ 0x71da46ca)) ^ DAT_182671fa0 ^ DAT_182671f34;
  *(uint *)(lVar4 + -0x670) = uVar26;
  uVar29 = DAT_182671e7c;
  uVar17 = DAT_182671dc8;
  uVar25 = DAT_182671d44;
  uVar16 = DAT_182671c60;
  uVar22 = CONCAT44(uVar12,DAT_182671c60);
  uVar26 = DAT_182671dc8 ^ DAT_182671fa0 ^ uVar26;
  uVar12 = *(uint *)(lVar4 - (uVar23 ^ 0x81e28244)) ^ DAT_182671e7c;
  *(uint *)(lVar4 + -0x684) = uVar26;
  *(uint *)(lVar4 + -0x54) = uVar12 ^ DAT_182671ea4;
  bVar2 = (byte)DAT_182671f74;
  lVar3 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671e94;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (CONCAT44(uVar6,uVar16) ^ 0xf6f4da6b9a24e5ea) - (CONCAT44(uVar6,uVar13) ^ 0x203287c93134c180)
  ;
  pbVar32 = (byte *)((uVar22 ^ 0x3b450e9210086118) + *(longlong *)(lVar3 + -0x9a8));
  *(ulonglong *)(lVar3 + -0xc20) = (ulonglong)pbVar32 ^ uVar23;
  bVar9 = *pbVar32 ^ bVar2 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar3 + -0x1c3) = bVar9;
  uVar16 = (uint)(bVar2 ^ bVar9);
  *(uint *)(lVar3 + -0x9dc) = uVar16 ^ uVar25;
  uVar12 = uVar16 << 0x11 ^ DAT_182671ee8;
  *(ulonglong *)(lVar3 + -0x7e8) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0xb5ff51c6)) | 0x7d1f50fc640fc23b;
  lVar4 = DAT_182671c40;
  *(uint *)(lVar3 + -0x444) = (uVar17 ^ uVar26) + (DAT_182671c88 ^ 0x1da09646) ^ DAT_182671e68;
  uVar16 = DAT_182671f24;
  *(ulonglong *)(lVar3 + -0x2b0) = *(ulonglong *)(lVar3 - (uVar20 ^ 0x7de1c078)) >> 0x33;
  *(uint *)(lVar3 - (uVar35 ^ 0x7d41c424)) = uVar12;
  uVar12 = DAT_182671dc0;
  uVar17 = DAT_182671c90;
  uVar13 = *(uint *)(lVar4 + -0x444) ^ DAT_182671e68;
  *(ulonglong *)(lVar4 + -0x960) =
       *(ulonglong *)(CONCAT44(DAT_182671ec4,DAT_182671ec4) ^ *(ulonglong *)(lVar4 + -0x6e8)) ^
       CONCAT44(uVar16,uVar16);
  *(uint *)(lVar4 + -0x76c) = uVar13 - (*(uint *)(lVar4 + -0x634) ^ DAT_182671ee8) ^ uVar16;
  uVar13 = (*(uint *)(lVar4 - (uVar14 ^ 0xdff3fe02)) ^ uVar16) * (*(uint *)(lVar4 + -0x54) ^ uVar29)
           ^ DAT_182671ec0;
  *(uint *)(lVar4 + -0x94c) = uVar13;
  uVar13 = uVar13 ^ DAT_182671ec0;
  *(uint *)(lVar4 + -0x784) =
       (*(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0x7d41cbcc)) ^ uVar25) * (uVar33 ^ 0x71da4344) ^
       DAT_182671f68;
  uVar16 = DAT_182671c54;
  uVar14 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar4 + -0xa78) =
       CONCAT44(uVar6,DAT_182671c54) ^ 0x2281420405613542 | 0x5d4ab9e8ea94caad;
  uVar33 = DAT_182671c58;
  *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xc88b1ae)) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_182671c64 ^ 0xb5ff5c32)) ^ DAT_182671f68) + uVar13 ^
       uVar12;
  uVar17 = (*(uint *)(lVar4 - (uVar34 ^ 0x3fef6b13)) ^ uVar12) << (((byte)uVar17 ^ 0xf) & 0x1f);
  uVar25 = (uVar12 ^ *(uint *)(lVar4 + -0x4ac)) >> 0x13;
  uVar12 = uVar25 ^ DAT_182671f94;
  *(uint *)(lVar4 + -0xa94) = uVar17 ^ DAT_182671cfc;
  uVar33 = uVar33 ^ uVar16;
  *(uint *)(lVar4 + -0x6c0) = uVar12;
  DAT_182671c64 = uVar33;
  *(undefined8 *)(lVar4 + -0x380) = 0xf887662b99b44af;
  uVar12 = DAT_182671f1c ^ DAT_182671ca0;
  *(uint *)(lVar4 - ((ulonglong)uVar33 ^ 0xfca34cac)) = (uVar17 | uVar25) ^ DAT_182671d48;
  uVar23 = (ulonglong)DAT_182671ef4;
  *(uint *)(lVar4 - (uVar14 ^ 0x81e284cc)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0x7d41c244)) ^ uVar29) +
       (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671ca0;
  uVar12 = uVar12 ^ *(uint *)(lVar4 + -0x94);
  uVar17 = DAT_182671f88 ^ DAT_182671f1c;
  *(longlong *)(lVar4 + -0x510) = *(longlong *)(lVar4 + -0x30) + -0x5625570e44b1ab1a;
  *(uint *)(lVar4 + -0x1c8) = DAT_182671f60 ^ DAT_182671d48 ^ *(uint *)(lVar4 + -0xae4);
  *(uint *)(lVar4 + -0x644) = uVar12;
  *(uint *)(lVar4 - (uVar14 ^ 0x81e281d4)) = uVar17 ^ uVar12;
  *(uint *)(lVar4 + -0x61c) = (uVar33 ^ 0xd388dddb) << (((byte)uVar16 ^ 0x5c) & 0x1f);
  *(uint *)(lVar4 + -0x670) =
       *(uint *)(lVar4 - ((ulonglong)uVar33 ^ 0xfca34780)) ^ DAT_182671f60 ^ DAT_182671d34;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0xfca343e8)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar24 ^ 0x7d41cbb8)) +
       (CONCAT44(uVar33,uVar24) ^ 0xfca346487d41c210) * 0x20 +
       (CONCAT44(uVar11,uVar24) ^ 0x81e284587d41c21d) ^ uVar23;
  *(longlong *)(lVar4 + -0xb20) = *(longlong *)(lVar4 + -0x510) + 0x7f50a2f11a01cf63;
  *(byte *)(lVar4 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x5a0) ^ uVar23) ^ (byte)DAT_182671f18 ^
       (byte)DAT_182671e0c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar19) * 4) = uVar10;
  return;
}



############ FUN_ 181013a90 size=3199 ############

void FUN_181013a90(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  ulonglong *puVar11;
  byte bVar12;
  byte bVar13;
  byte bVar14;
  byte bVar15;
  byte bVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  
  uVar6 = DAT_182671c80;
  uVar5 = DAT_182671c78;
  uVar4 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar24 = (ulonglong)DAT_182671c80;
  uVar26 = DAT_182671c4c | DAT_182671c80;
  DAT_182671c60 = DAT_182671c58 | DAT_182671c78;
  uVar1 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c80 ^ 0x1000418) + (longlong)DAT_1826720e4);
  uVar9 = *(uint *)(&DAT_182613220 + DAT_1826720e4) ^ DAT_182671c4c;
  bVar14 = (byte)DAT_182671c78;
  uVar20 = (ulonglong)DAT_182671d50;
  uVar17 = (ulonglong)DAT_182671c4c;
  uVar25 = (ulonglong)DAT_182671ef4;
  bVar12 = (byte)DAT_182671c60;
  DAT_182671c88 = uVar26;
  *(undefined1 *)(*(ulonglong *)(DAT_182671c40 + -0x9e8) ^ (ulonglong)DAT_182671f68) = 0x1c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x698) ^ uVar20) = bVar12 ^ 0xa2;
  uVar10 = (ulonglong)DAT_182671d10;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0x87476ce0)) ^
           (ulonglong)DAT_182671dd0) = bVar14 ^ 0x47;
  bVar13 = (byte)uVar6;
  uVar22 = (ulonglong)DAT_182671dec;
  *(byte *)(*(ulonglong *)(lVar2 + -0xc98) ^ uVar10) = bVar13 ^ 10;
  bVar16 = (byte)DAT_182671c58;
  uVar10 = (ulonglong)DAT_182671dc4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x520) ^ uVar22) = bVar16 ^ 0xa5;
  *(byte *)(*(ulonglong *)(lVar2 + -0x308) ^ uVar10) = bVar14 ^ 0xa1;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x10003f0)) ^ (ulonglong)DAT_182671eac) = 0xe0;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x1000860)) ^ uVar25) = bVar16 ^ 0xca;
  uVar10 = (ulonglong)DAT_182671f28;
  *(byte *)(*(ulonglong *)(lVar2 + -0x488) ^ (ulonglong)DAT_182671de0) = bVar14 ^ 0x5b;
  *(byte *)(*(ulonglong *)(lVar2 + -0x340) ^ uVar10) = (byte)uVar4 ^ 0x41;
  *(byte *)(*(ulonglong *)(lVar2 + -0x1f0) ^ (ulonglong)DAT_182671f60) = bVar12 ^ 0x4e;
  bVar15 = (byte)uVar26;
  uVar10 = (ulonglong)DAT_182671ca0;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x1000948)) ^ (ulonglong)DAT_182671e90) =
       bVar15 ^ 0x99;
  lVar3 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671e00;
  *(byte *)(*(ulonglong *)(lVar2 + -0x288) ^ uVar10) = bVar13 ^ 0x11;
  *(byte *)(*(ulonglong *)(lVar3 + -0x2c8) ^ uVar19) = bVar15 ^ 0x3b;
  lVar2 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671f8c;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x87476c68)) ^
           (ulonglong)DAT_182671f18) = bVar14 ^ 0xef;
  uVar10 = (ulonglong)DAT_182671da8;
  *(byte *)(*(ulonglong *)(lVar2 + -0xaf8) ^ uVar27) = bVar15 ^ 0x70;
  uVar21 = (ulonglong)DAT_182671d48;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0xb68) ^ uVar10) = (byte)DAT_182671c78 ^ 0x6e;
  uVar10 = (ulonglong)DAT_182671e08;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c58 ^ 0x87476bb8)) ^
           (ulonglong)DAT_182671ee4) = bVar12 ^ 0x58;
  lVar2 = DAT_182671c40;
  *(undefined1 *)(*(ulonglong *)(DAT_182671c40 + -0x660) ^ uVar10) = 0x68;
  uVar10 = (ulonglong)DAT_182671f14;
  *(undefined1 *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0x874760b8)) ^ uVar21) = 0x52;
  puVar11 = (ulonglong *)(DAT_182671c40 - (uVar17 ^ 0x10009f8));
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0xbb0) ^ uVar10) = bVar16 ^ 0x5c;
  lVar2 = DAT_182671c40;
  uVar10 = (ulonglong)DAT_182671db4;
  *(undefined1 *)(*puVar11 ^ uVar20) = 0xd1;
  uVar22 = (ulonglong)DAT_182671e58;
  *(byte *)(*(ulonglong *)(lVar2 + -0x300) ^ uVar10) = bVar13 ^ 0x8c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x3c0) ^ uVar22) = (byte)DAT_182671c78 ^ 0x2c;
  uVar10 = (ulonglong)DAT_182671f84;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0x87476f08)) ^
           (ulonglong)DAT_182671e6c) = bVar12 ^ 0x8e;
  lVar3 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671fb0;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8f8) ^ uVar10) = bVar13 ^ 0x57;
  bVar13 = (byte)DAT_182671c4c;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc00) ^ uVar20) = bVar13 ^ 0xce;
  uVar10 = (ulonglong)DAT_182671e64;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x580) ^ (ulonglong)DAT_182671f24) = bVar15 ^ 0xf4;
  bVar14 = (byte)DAT_182671c78;
  *(undefined1 *)(*(ulonglong *)(DAT_182671c40 + -0x80) ^ uVar10) = 0x1c;
  uVar10 = (ulonglong)DAT_182671f98;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0x87476090)) ^
           (ulonglong)DAT_182671de8) = bVar14 ^ 0xf7;
  bVar14 = (byte)DAT_182671c54;
  uVar22 = (ulonglong)DAT_182671d14;
  *(byte *)(*(ulonglong *)(lVar2 + -0x208) ^ uVar10) = bVar13 ^ 0x24;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0xd40) ^ uVar22) = bVar14 ^ 0x13;
  uVar10 = (ulonglong)DAT_182671ec0;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0xca8) ^ (ulonglong)DAT_182671ebc) = bVar16 ^ 0xfc;
  uVar22 = (ulonglong)DAT_182671f6c;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x2d8) ^ uVar10) = bVar15 ^ 0xf;
  uVar10 = (ulonglong)DAT_182671e84;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x928) ^ uVar22) = bVar16 ^ 0x12;
  uVar22 = (ulonglong)DAT_182671f88;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0xcb0) ^ uVar10) = bVar16 ^ 0x8e;
  uVar6 = DAT_182671c94;
  uVar10 = (ulonglong)DAT_182671ec4;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x5e0) ^ uVar22) = (byte)DAT_182671c94 ^ 0x48;
  lVar2 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671f30;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x130) ^ uVar10) = bVar13 ^ 6;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x4a0) ^ uVar22) = 0xf;
  uVar22 = (ulonglong)DAT_182671f00;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0xae0) ^ uVar21) = 0xd1;
  uVar4 = DAT_182671c4c;
  uVar10 = (ulonglong)DAT_182671e78;
  uVar21 = (ulonglong)DAT_182671e10;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x874768e8)) ^ uVar22) = bVar15 ^ 0xc2;
  uVar22 = (ulonglong)DAT_182671d6c;
  *(byte *)(*(ulonglong *)(lVar2 + -0xd80) ^ uVar10) = bVar12 ^ 0x5b;
  bVar16 = (byte)DAT_182671c84 ^ 0xc0;
  *(byte *)(*(ulonglong *)(lVar2 + -0x710) ^ uVar22) = bVar15 ^ 0x71;
  bVar13 = (byte)uVar4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x2b8) ^ uVar21) = bVar13 ^ 0x58;
  *(byte *)(*(ulonglong *)(lVar2 + -0x220) ^ (ulonglong)DAT_182671d00) = bVar16;
  uVar17 = (ulonglong)DAT_182671f48;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x1000680)) ^ (ulonglong)DAT_182671fa8) = 0xdb;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x1000e58)) ^ uVar20) = bVar13 ^ 0xc5;
  *(byte *)(*(ulonglong *)(lVar2 + -0x88) ^ uVar17) = (byte)DAT_182671c7c ^ 0xa7;
  uVar10 = (ulonglong)DAT_182671d70;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x81808060)) ^ (ulonglong)DAT_182671e44) =
       0x7d;
  uVar22 = (ulonglong)DAT_182671cf8;
  *(byte *)(*(ulonglong *)(lVar2 + -0x108) ^ uVar10) = bVar12 ^ 0xca;
  uVar4 = DAT_182671c70;
  uVar20 = (ulonglong)DAT_182671c70;
  *(byte *)(*(ulonglong *)(lVar2 + -0x400) ^ uVar22) = bVar13 ^ 0x45;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0x87476b90)) ^ (ulonglong)DAT_182671f10) =
       0xb2;
  uVar23 = (uVar4 << 0x10 | uVar4 & 0xff00) << 8 | uVar4 >> 8 & 0xff00 | DAT_182671c70 >> 0x18;
  bVar13 = (byte)(DAT_182671c70 >> 0x18);
  DAT_182671c64 = uVar23;
  *(byte *)(*(ulonglong *)(lVar2 + -0xdb0) ^ (ulonglong)DAT_182671e70) = bVar13 ^ 0x98;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x5f97b320)) ^ uVar25) = bVar13 ^ 0x8c;
  uVar8 = DAT_182671e74;
  uVar22 = (ulonglong)DAT_182671e74;
  bVar12 = (byte)uVar4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x740) ^ uVar19) = bVar12 ^ 0x96;
  *(byte *)(*(ulonglong *)(lVar2 + -0x450) ^ (ulonglong)DAT_182671eec) = bVar12 ^ 0xca;
  *(byte *)(*(ulonglong *)(lVar2 + -0xc28) ^ (ulonglong)DAT_182671d64) = bVar12 ^ 0x9a;
  uVar5 = DAT_182671c7c;
  *(byte *)(*(ulonglong *)(lVar2 + -0xcd0) ^ uVar21) = bVar12 ^ 0x32;
  *(byte *)(*(ulonglong *)(lVar2 + -0xda0) ^ (ulonglong)DAT_182671dc8) = bVar13 ^ 0xce;
  uVar10 = (ulonglong)DAT_182671f74;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0x78b89337)) ^ (ulonglong)DAT_182671f78) =
       bVar13 ^ 0x18;
  *(byte *)(*(ulonglong *)(lVar2 + -0x798) ^ uVar10) = bVar13 ^ 0x6d;
  uVar19 = (ulonglong)DAT_182671d84;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x9c0) ^ uVar27) = 100;
  *(byte *)(*(ulonglong *)(lVar2 + -0x128) ^ (ulonglong)DAT_182671eb8) = bVar13 ^ 0x65;
  bVar15 = (byte)DAT_182671c78;
  *(byte *)(*(ulonglong *)(lVar2 + -0x7b0) ^ uVar22) = bVar12 ^ 0x30;
  uVar10 = (ulonglong)DAT_182671e14;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x5f97bc18)) ^ (ulonglong)DAT_182671de0) = 0x78;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar20 ^ 0x5f97bbb0)) ^ uVar10) = bVar15 ^ 0x21;
  lVar2 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0xff3c5f67)) ^ uVar19) =
       bVar13 ^ 0x24;
  *(byte *)(*(ulonglong *)(lVar2 + -0xd60) ^ (ulonglong)DAT_182671f28) = bVar13 ^ 7;
  uVar10 = (ulonglong)DAT_182671cf4;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfffff4af)) ^ (ulonglong)DAT_182671da8) =
       bVar12 ^ 0x11;
  uVar22 = (ulonglong)DAT_182671f40;
  *(byte *)(*(ulonglong *)(lVar2 + -0x120) ^ uVar10) = bVar13 ^ 0xbd;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8a8) ^ uVar22) = bVar14 ^ 5;
  uVar4 = DAT_182671c48;
  bVar14 = (byte)DAT_182671c48;
  uVar18 = DAT_182671c48 & uVar5;
  DAT_182671c58 = uVar18;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xff3c5557)) ^ (ulonglong)DAT_182671f00) =
       bVar14 ^ 0x51;
  uVar22 = (ulonglong)DAT_182671f20;
  *(byte *)(*(ulonglong *)(lVar2 + -0xaf0) ^ uVar17) = (byte)uVar18 ^ 0x8b;
  uVar10 = (ulonglong)DAT_182671ce8;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xff3c50f7)) ^ uVar22) = (byte)uVar18 ^ 0xcc;
  *(byte *)(*(ulonglong *)(lVar2 + -0x3f8) ^ uVar10) = bVar14 ^ 0x19;
  uVar10 = (ulonglong)DAT_182671ee4;
  *(undefined4 *)(uVar17 ^ *(ulonglong *)(lVar2 + -0xa30)) = 0x49fb8e66;
  *(undefined4 *)(*(ulonglong *)(lVar2 + -0x1d8) ^ uVar10) = 0xd5833710;
  *(uint *)((ulonglong)DAT_182671db8 ^ *(ulonglong *)(lVar2 + -0x200)) = uVar18 ^ 0xafeed6ea;
  *(uint *)(*(ulonglong *)(lVar2 + -0x790) ^ uVar22) = uVar18 ^ 0x36429eca;
  uVar10 = (ulonglong)DAT_182671df0;
  *(undefined4 *)(*(ulonglong *)(lVar2 + -0x878) ^ (ulonglong)DAT_182671d04) = 0x65c879c7;
  uVar7 = DAT_182671df8;
  *(uint *)(*(ulonglong *)(lVar2 + -0x3a0) ^ uVar10) = uVar5 ^ 0x816e720d;
  *(undefined8 *)(CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0xd78)) = 0xaf4651c71574890d;
  uVar10 = (ulonglong)DAT_182671e54;
  *(uint *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xfffffa87)) ^ (ulonglong)DAT_182671f38) =
       uVar18 ^ 0x3e8a9d5a;
  uVar22 = CONCAT44(uVar5,uVar4);
  *(undefined4 *)(*(ulonglong *)(lVar2 + -0x568) ^ uVar10) = 0x2c2e705a;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(CONCAT44(DAT_182671ce0,DAT_182671ce0) ^ *(ulonglong *)(DAT_182671c40 + -0x218)) =
       uVar22 ^ 0x8bbfd67d377803d4;
  uVar10 = (ulonglong)DAT_182671dd8;
  *(undefined4 *)(*(ulonglong *)(lVar3 + -0x368) ^ (ulonglong)DAT_182671e98) = 0xc7912088;
  *(uint *)(*(ulonglong *)(DAT_182671c40 + -0x480) ^ uVar10) = uVar5 ^ 0x788de2a2;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(CONCAT44(DAT_182671ed0,DAT_182671ed0) ^ *(ulonglong *)(DAT_182671c40 + -0x7b8)) =
       CONCAT44(uVar18,uVar18) ^ 0xa533513426b41ac8;
  uVar10 = (ulonglong)DAT_182671d90;
  *(uint *)(*(ulonglong *)(lVar3 + -0x4a8) ^ (ulonglong)DAT_182671d58) = uVar4 ^ 0x41063382;
  lVar3 = DAT_182671c40;
  *(undefined4 *)(*(ulonglong *)(DAT_182671c40 + -0x4d0) ^ uVar10) = 0x1c1ff14b;
  *(ulonglong *)(CONCAT44(DAT_182671e8c,DAT_182671e8c) ^ *(ulonglong *)(lVar3 + -0xad8)) =
       CONCAT44(uVar5,uVar18) ^ 0xf78c96d06e9cc3fb;
  *(undefined4 *)
   (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xff3c5ab7)) ^ (ulonglong)DAT_182671d8c) = 0xc866970f
  ;
  *(uint *)(*(ulonglong *)(lVar3 + -0x538) ^ uVar19) = uVar18 ^ 0x5e6d24c8;
  *(undefined8 *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar3 + -0x118)) = 0x369c1682263fbc96;
  *(uint *)(*(ulonglong *)(lVar3 + -0x9a0) ^ (ulonglong)DAT_182671d64) = uVar4 ^ 0x3f791f6e;
  *(uint *)(*(ulonglong *)(lVar3 + -0x9d0) ^ (ulonglong)DAT_182671e60) = uVar18 ^ 0x78243b5d;
  uVar7 = DAT_182671c90;
  *(ulonglong *)(lVar3 + -0xa30) = uVar22 ^ 0xdb15d215df3dff1b;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xff3c5257)) = uVar22 ^ 0xd05fe60340726da;
  *(ulonglong *)(lVar2 + -0x200) = CONCAT44(uVar7,uVar6) ^ 0xb1a1078e4ce18d37;
  *(ulonglong *)(lVar2 + -0x790) = CONCAT44(uVar23,uVar4) ^ 0x3deaa0ed43abfcfa;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar1 ^ uVar26;
  return;
}



############ FUN_ 180f9c690 size=6086 ############

void FUN_180f9c690(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte bVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  uint uVar49;
  ulonglong *puVar50;
  byte local_res18;
  byte local_res20;
  byte local_120;
  byte local_f0;
  byte local_e8;
  byte local_a8;
  
  uVar14 = DAT_182671c7c;
  uVar13 = DAT_182671c74;
  uVar11 = DAT_182671c68;
  uVar8 = DAT_182671c58;
  uVar7 = DAT_182671c54;
  lVar4 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c7c;
  uVar27 = (ulonglong)DAT_182671c58;
  uVar41 = (ulonglong)DAT_182671c68;
  uVar25 = (ulonglong)DAT_182671c54;
  uVar24 = (ulonglong)DAT_182671c74;
  uVar44 = DAT_182671c54 & DAT_182671c64;
  uVar28 = DAT_182671c74 | DAT_182671c60;
  DAT_182671c78 = DAT_182671c58 * DAT_182671c68;
  uVar49 = DAT_182671c6c * DAT_182671c7c;
  uVar18 = *(uint *)(&DAT_182613218 + DAT_182672268) ^ DAT_182671c7c;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_182672268) ^ DAT_182671c6c;
  uVar47 = CONCAT44(DAT_182671f38,DAT_182671f38);
  DAT_182671c48 = uVar44;
  DAT_182671c80 = uVar49;
  DAT_182671c90 = uVar28;
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (uVar47 ^ *(ulonglong *)(DAT_182671c40 + -0x228)) >>
       ((byte)*(undefined8 *)(DAT_182671c40 + -0xbd8) & 0x3f);
  uVar19 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar22 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar23 = (uVar22 ^ *(ulonglong *)(lVar4 + -0x510)) - (uVar19 ^ *(ulonglong *)(lVar4 + -0x888));
  *(ulonglong *)(lVar4 + -0x5e8) = uVar23 ^ CONCAT44(DAT_182671d90,DAT_182671d90);
  *(uint *)(lVar4 + -0x784) =
       (uVar49 ^ 0x285c5383) << ((byte)*(undefined4 *)(lVar4 + -0x444) & 0x1f);
  uVar6 = DAT_182671cc0;
  uVar35 = CONCAT44(DAT_182671f54,DAT_182671f54);
  uVar20 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  *(ulonglong *)(lVar4 + -0xc18) = uVar23 - (uVar35 ^ *(ulonglong *)(lVar4 + -0xb18)) ^ uVar20;
  uVar9 = DAT_182671c60;
  uVar33 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x42a00302)) =
       (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar4 + -0x3d8)) +
       (CONCAT44(uVar8,uVar11) ^ 0x3d956ab1287d48c9) ^ uVar33;
  uVar10 = DAT_182671c64;
  uVar42 = (ulonglong)uVar28;
  uVar29 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar4 + -0x58c) =
       *(uint *)(lVar4 - ((ulonglong)uVar9 ^ 0xae62c2d4)) | DAT_182671c78 ^ 0x8c49430d;
  uVar23 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xeee2cb72)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0xb18)) - (uVar33 ^ *(ulonglong *)(lVar4 + -0x110)) ^
       uVar23;
  uVar36 = CONCAT44(DAT_182671edc,DAT_182671edc);
  uVar38 = CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar35 = (ulonglong)uVar44;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar44 ^ 0xdc68fc90)) =
       uVar47 ^ *(ulonglong *)(lVar4 + -0x380) ^ *(ulonglong *)(lVar4 + -0x228) ^ uVar38 ^ uVar36;
  puVar1 = (ulonglong *)(lVar4 + -0xa60);
  uVar34 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *puVar1 = (*(ulonglong *)(lVar4 + -0xda8) ^ uVar36) >> (((byte)uVar9 ^ 0x50) & 0x3f) ^ uVar34;
  *(uint *)(lVar4 - (uVar27 ^ 0x3950a84)) =
       *(int *)(lVar4 - ((ulonglong)uVar7 ^ 0xdff9fc74)) * (uVar10 ^ 0xb60c8e5d);
  local_res18 = (byte)uVar11;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xdff9f3a8)) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0x71c6f17c)) ^ uVar36) << ((local_res18 ^ 0x30) & 0x3f) ^
       uVar47;
  puVar2 = (ulonglong *)(lVar4 + -0xa50);
  uVar37 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar4 + -0x408) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xdff9f398)) ^ uVar34 | uVar47 ^ *puVar2) ^
       uVar37;
  uVar6 = DAT_182671e50;
  uVar9 = DAT_182671c60;
  *(uint *)(lVar4 - ((ulonglong)uVar49 ^ 0xfda6874c)) =
       *(int *)(lVar4 + -0x444) - (uVar44 ^ 0x2e797ae8);
  uVar34 = (*(ulonglong *)(lVar4 + -0x380) ^ uVar38) -
           (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar4 + -0x960));
  puVar3 = (ulonglong *)(lVar4 + -0xc90);
  *puVar3 = uVar34 ^ CONCAT44(DAT_182671e08,DAT_182671e08);
  uVar6 = DAT_182671d1c;
  uVar27 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar4 + -0x7e8) =
       uVar34 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xae62c648)) ^ uVar37) ^ uVar27;
  uVar17 = DAT_182671c78;
  uVar12 = DAT_182671c6c;
  uVar46 = (ulonglong)DAT_182671c6c;
  uVar45 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xeee2c2a2)) =
       (CONCAT44(uVar49,DAT_182671c6c) ^ 0x2597d6738c0cb3e) -
       (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar4 + -0x2b0)) ^ uVar45;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar49 ^ 0xfda689b8)) =
       (CONCAT44(uVar17,uVar11) ^ 0xcd403fe56702a36) - (CONCAT44(uVar10,uVar8) ^ 0x7f7cc406aaa81328)
  ;
  uVar6 = DAT_182671eb0;
  uVar36 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar34 = (*(ulonglong *)(lVar4 + -0x408) ^ uVar37) + (*(ulonglong *)(lVar4 + -0xf0) ^ uVar45) ^
           uVar36;
  *(ulonglong *)(lVar4 + -0x828) = uVar34;
  lVar4 = DAT_182671c40;
  uVar30 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x42a00222)) =
       uVar20 ^ *(ulonglong *)(DAT_182671c40 + -0xc18) ^ uVar30 ^ uVar34 ^ uVar36;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xae62c6f8)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xc73f30c6)) ^ *(ulonglong *)(lVar4 + -0x30) ^
       uVar30 ^ uVar37;
  uVar36 = *(ulonglong *)(lVar4 + -0x30) ^ uVar30;
  uVar38 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar36 >> ((local_res18 ^ 0x20) & 0x3f) ^ uVar38;
  lVar4 = DAT_182671c40;
  local_120 = (byte)uVar14;
  uVar34 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xdc68fae0)) =
       uVar36 << ((local_120 ^ 0xf4) & 0x3f) ^ uVar34;
  uVar6 = DAT_182671e14;
  puVar50 = (ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xc73f3f16));
  uVar37 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar4 + -0xa78) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xdff9fe98)) ^ uVar38 | uVar34 ^ *puVar50) ^ uVar37;
  uVar15 = DAT_182671f7c;
  uVar38 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 + -0x510) =
       (uVar20 ^ *(ulonglong *)(lVar4 + -0xc18)) -
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xdff9f380)) ^ uVar37) ^ uVar38;
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar36 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar23 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c60 ^ 0xae62cb60)) ^
           *(ulonglong *)(lVar4 + -0x7e8) ^ uVar34 ^ uVar27 ^ uVar23;
  *(ulonglong *)(lVar4 + -0x5e8) = uVar23;
  *(ulonglong *)(lVar4 + -0xb18) = (uVar23 ^ uVar34) >> (((byte)uVar49 ^ 0xb8) & 0x3f) ^ uVar36;
  uVar6 = DAT_182671d18;
  uVar20 = CONCAT44(DAT_182671e94,DAT_182671e94);
  *(ulonglong *)(lVar4 + -0x228) = (uVar23 ^ uVar34) << (((byte)uVar17 ^ 0x20) & 0x3f) ^ uVar20;
  uVar9 = DAT_182671c84;
  uVar23 = CONCAT44(uVar6,uVar6);
  uVar17 = DAT_182671c60 ^ 0x47e1dc7a;
  uVar34 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar4 + -0xda8) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x2850b18)) ^ uVar36 |
       *(ulonglong *)(lVar4 - (uVar35 ^ 0xdc68f310)) ^ uVar20) ^ uVar23;
  *(uint *)(lVar4 + -0x9dc) = uVar17 + *(int *)(lVar4 + -0x444);
  uVar17 = DAT_182671c84;
  uVar21 = (uVar9 << 0x10 | uVar9 & 0xff00) << 8 | uVar9 >> 8 & 0xff00 | DAT_182671c84 >> 0x18;
  uVar36 = CONCAT44(DAT_182671e68,DAT_182671e68);
  DAT_182671c70 = uVar21;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0xd8eeb24d)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0xd8eebfc5)) ^ uVar27) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x2db8e370)) ^ uVar23) ^ uVar36;
  uVar6 = DAT_182671d3c;
  uVar20 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar27 = *(ulonglong *)(lVar4 + -0xda8) ^ uVar20 ^ uVar23 ^ *(ulonglong *)(lVar4 + -0x510) ^
           uVar38;
  *puVar2 = uVar27;
  uVar27 = uVar27 ^ uVar20;
  bVar40 = (byte)(uVar17 >> 0x18);
  uVar23 = CONCAT44(DAT_182671d20,DAT_182671d20);
  uVar20 = uVar27 >> ((bVar40 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar4 + -0x380) = uVar20 ^ CONCAT44(uVar6,uVar6);
  uVar27 = uVar27 << ((bVar40 ^ 0x2b) & 0x3f);
  *puVar3 = uVar27 ^ uVar23;
  uVar27 = uVar27 | uVar20;
  uVar47 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar4 + -0xb20) = uVar27 ^ uVar47;
  uVar6 = DAT_182671dc8;
  *(ulonglong *)(lVar4 + -0xf0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0xd8eebd3d)) ^ uVar38) - uVar27 ^ uVar45;
  lVar5 = DAT_182671c40;
  uVar27 = CONCAT44(uVar6,uVar6);
  uVar23 = *puVar1 ^ uVar27 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0xa78) ^ uVar37;
  uVar38 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar4 + -0x828) = uVar23;
  local_f0 = (byte)uVar9;
  puVar48 = (ulonglong *)(lVar4 - (uVar42 ^ 0xeee2c6ea));
  uVar20 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *puVar48 = (uVar23 ^ uVar27) >> ((local_f0 ^ 0xce) & 0x3f) ^ uVar38;
  uVar23 = (*(ulonglong *)(lVar5 + -0x828) ^ uVar27) << 0x2a;
  *(ulonglong *)(lVar5 + -0x408) = uVar23 ^ uVar20;
  *(ulonglong *)(lVar5 + -0x30) = CONCAT44(uVar9,uVar21) ^ 0x42bc7e92c02767f2;
  uVar23 = *(ulonglong *)(lVar5 - (uVar41 ^ 0x28504b8)) ^ uVar38 | uVar23;
  uVar31 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *(ulonglong *)(lVar5 + -0x760) = uVar23 ^ uVar45;
  uVar6 = DAT_182671ee4;
  *puVar50 = (*puVar1 ^ uVar36) - uVar23 ^ uVar31;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 + -0xc18) =
       *(ulonglong *)(lVar5 + -0xf0) ^ *(ulonglong *)(lVar5 + -0x760) ^ uVar36;
  bVar32 = (byte)uVar8;
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x42a00b32)) =
       (CONCAT44(uVar14,uVar8) ^ 0x3ddca247bbf5f299) >> (((byte)uVar7 ^ 0xfc) & 0x3f);
  uVar23 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(ulonglong *)(lVar5 - (uVar25 ^ 0xdff9fc10)) =
       (uVar36 ^ *(ulonglong *)(lVar5 + -0xc18)) >> ((bVar32 ^ 0xee) & 0x3f) ^ uVar23;
  uVar6 = DAT_182671d64;
  uVar20 = CONCAT44(DAT_182671df4,DAT_182671df4);
  puVar50 = (ulonglong *)(lVar5 - ((ulonglong)uVar49 ^ 0xfda68980));
  *puVar50 = (uVar36 ^ *(ulonglong *)(lVar5 + -0xc18)) << ((bVar40 ^ 0x3f) & 0x3f) ^ uVar20;
  lVar4 = DAT_182671c40;
  uVar38 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0xeee2c07a)) =
       (*(ulonglong *)(DAT_182671c40 + -0xb18) ^ uVar20 |
       *(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar23) ^ uVar38;
  uVar6 = DAT_182671e24;
  uVar27 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *(ulonglong *)(lVar4 + -0x7e8) =
       (*(ulonglong *)(lVar4 + -0xf0) ^ uVar45) - (uVar38 ^ *(ulonglong *)(lVar4 + -0x228)) ^ uVar27
  ;
  uVar15 = DAT_182671fac;
  uVar20 = CONCAT44(uVar6,uVar6);
  uVar23 = uVar20 ^ uVar31 ^ uVar47 ^ *(ulonglong *)(lVar4 + -0xbd8) ^
           *(ulonglong *)(lVar4 + -0xb20);
  *(ulonglong *)(lVar4 + -0xda8) = uVar23;
  uVar23 = uVar23 ^ uVar20;
  local_res20 = (byte)uVar44;
  uVar43 = CONCAT44(uVar15,uVar15);
  *puVar2 = uVar23 >> ((local_res20 ^ 0x34) & 0x3f) ^ uVar43;
  lVar5 = DAT_182671c40;
  local_e8 = (byte)uVar10;
  uVar36 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x2db8ed58)) = uVar23 << ((local_e8 ^ 0xb) & 0x3f) ^ uVar36;
  uVar6 = DAT_182671ec8;
  uVar20 = *(ulonglong *)(lVar5 + -0xbd8);
  uVar39 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar23 = *(ulonglong *)(lVar5 + -0x7e8);
  uVar47 = *(ulonglong *)(DAT_182671c40 + -0x380) ^ uVar36 | *puVar2 ^ uVar43;
  uVar45 = uVar47 ^ uVar39;
  *puVar3 = uVar45;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 + -0x510) = (uVar31 ^ uVar20) - uVar47 ^ uVar36;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c78 ^ 0x1fc00a78)) =
       uVar23 ^ uVar39 ^ uVar27 ^ uVar38 ^ uVar45;
  uVar6 = DAT_182671cb8;
  *(ulonglong *)(lVar5 + -0x828) =
       CONCAT44(uVar7,uVar11) ^ CONCAT44(uVar49,DAT_182671c60) ^ 0xfb266dccd9312379;
  uVar23 = CONCAT44(uVar6,uVar6);
  uVar20 = *puVar3;
  local_a8 = (byte)uVar12;
  *(ulonglong *)(lVar5 + -0x30) =
       (uVar38 ^ *(ulonglong *)(lVar5 + -0xa78)) >> ((local_a8 ^ 0xd7) & 0x3f) ^ uVar23;
  uVar6 = DAT_182671d70;
  *puVar48 = uVar39 ^ uVar20 | CONCAT44(uVar44,uVar12) ^ 0xbe1c8c24ec612f2e;
  lVar4 = DAT_182671c40;
  uVar20 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xdc68f530)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0x71c6f6ac)) ^ uVar38) << ((bVar32 ^ 0xe7) & 0x3f)
       ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x42a00872)) =
       (*(ulonglong *)(lVar4 + -0x408) ^ uVar20 | *(ulonglong *)(lVar4 + -0x30) ^ uVar23) ^ uVar37;
  uVar6 = DAT_182671d34;
  uVar20 = (*(ulonglong *)(lVar4 + -0x7e8) ^ uVar27) - (*(ulonglong *)(lVar4 + -0xd88) ^ uVar43);
  *(ulonglong *)(lVar4 + -0x760) = uVar20 ^ CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar39 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar49 ^ 0xfda68bb8)) =
       uVar20 - (*puVar1 ^ uVar37) ^ uVar39;
  lVar4 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar45 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       (CONCAT44(uVar9,uVar28) ^ 0xcd6e9a1a7382e787) +
       (uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0x888)) ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xeee2c94a)) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0xfc6af8e7)) ^ uVar31 ^ 0x7671929512e4f18d;
  uVar19 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar4 + -0x5e8) =
       (*puVar1 ^ uVar37) - (*(ulonglong *)(lVar4 - (uVar46 ^ 0xc73f38d6)) ^ uVar20) ^ uVar19;
  uVar6 = DAT_182671e48;
  uVar20 = CONCAT44(DAT_182671eec,DAT_182671eec);
  uVar47 = CONCAT44(DAT_182671f88,DAT_182671f88);
  uVar37 = uVar20 ^ uVar36 ^ uVar38 ^ *(ulonglong *)(lVar4 + -0x510) ^
           *(ulonglong *)(lVar4 + -0x228);
  *(ulonglong *)(lVar4 + -0xf0) = uVar37;
  lVar4 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c88;
  uVar37 = uVar37 ^ uVar20;
  uVar27 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar37 >> ((bVar40 ^ 0xc) & 0x3f) ^ uVar47;
  uVar23 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 - (uVar45 ^ 0xfff9f250)) = uVar37 << 0x1f ^ uVar27;
  uVar20 = *(ulonglong *)(lVar4 + -0xb20);
  *puVar2 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0x1fc00920)) ^ uVar39) >>
            (((byte)DAT_182671c5c ^ 0xf1) & 0x3f);
  uVar37 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xdc68f2b8)) =
       (*(ulonglong *)(lVar4 + -0xda8) ^ uVar27 | uVar47 ^ uVar20) ^ uVar37;
  uVar15 = DAT_182671dec;
  uVar20 = (uVar36 ^ *(ulonglong *)(lVar4 + -0x510)) - (uVar33 ^ *(ulonglong *)(lVar4 + -0x110));
  *(ulonglong *)(lVar4 + -0x828) = uVar20 ^ CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar6 = DAT_182671c98;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x71c6f044)) =
       uVar20 - (uVar37 ^ *(ulonglong *)(lVar4 + -0x380)) ^ uVar36;
  uVar15 = DAT_182671cec;
  uVar23 = (CONCAT44(uVar44,uVar13) ^ 0x23970ec7bd5ffde3) -
           (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar4 + -0x680));
  *(ulonglong *)(lVar4 + -0x4b8) = uVar23 ^ CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar20 = CONCAT44(uVar15,uVar15);
  uVar23 = uVar23 + (uVar37 ^ *(ulonglong *)(lVar4 + -0x380)) ^ uVar20;
  uVar27 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar4 + -0xa78) = uVar23;
  uVar7 = DAT_182671c94;
  uVar6 = DAT_182671c4c;
  lVar5 = DAT_182671c40;
  bVar40 = (byte)DAT_182671c94;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x2db8eee8)) =
       uVar27 ^ uVar20 ^ uVar39 ^ *(ulonglong *)(lVar4 + -0x920) ^ uVar23;
  uVar15 = DAT_182671dcc;
  uVar23 = CONCAT44(DAT_182671f64,DAT_182671f64);
  *(ulonglong *)(lVar5 + -0x408) =
       (uVar27 ^ *(ulonglong *)(lVar5 + -0x30)) >> ((bVar40 ^ 0xd1) & 0x3f) ^ uVar23;
  uVar20 = CONCAT44(uVar15,uVar15);
  uVar47 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(lVar5 + -0x7e8) =
       (*(ulonglong *)(lVar5 - (uVar45 ^ 0xfff9ffc8)) ^ uVar27) << (((byte)uVar6 ^ 0x1c) & 0x3f) ^
       uVar20;
  uVar15 = DAT_182671fa8;
  uVar20 = *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xffe6fadc)) ^ uVar23 |
           *(ulonglong *)(lVar5 - (uVar41 ^ 0x28507e8)) ^ uVar20;
  *(ulonglong *)(lVar5 + -0x760) = uVar20 ^ uVar47;
  uVar27 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x71c6f70c)) =
       (uVar39 ^ *(ulonglong *)(lVar5 + -0x920)) - uVar20 ^ uVar27;
  uVar15 = DAT_182671e28;
  uVar37 = CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar38 = (ulonglong)DAT_182671c8c;
  uVar23 = *(ulonglong *)(lVar5 - (uVar46 ^ 0xc73f385e)) ^ uVar37 ^ uVar36 ^ uVar19 ^
           *(ulonglong *)(lVar5 + -0x5e8);
  *(ulonglong *)(lVar5 + -0xb18) = uVar23;
  uVar20 = (uVar23 ^ uVar37) >> (((byte)uVar6 ^ 2) & 0x3f);
  *puVar1 = uVar20 ^ CONCAT44(uVar15,uVar15);
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x228) = (uVar37 ^ uVar23) << 0x1b ^ uVar30;
  uVar19 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar4 - (uVar43 ^ 0x89a3fd1e)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x2db8ecf0)) ^ uVar30 | uVar20) ^ uVar19;
  uVar20 = *(ulonglong *)(lVar4 + -0xf0);
  *puVar2 = CONCAT44(uVar10,uVar7) ^ 0x1130809401c040f2 | 0xcace764b383f3e0c;
  uVar23 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar37 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar4 + -0xda8) = (uVar36 ^ *puVar3) - (uVar19 ^ uVar20) ^ uVar23;
  uVar7 = DAT_182671c60;
  uVar36 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xdff9f2d8)) =
       uVar37 ^ uVar19 ^ uVar27 ^ *(ulonglong *)(lVar4 + -0xbd8) ^ uVar20;
  uVar6 = DAT_182671d94;
  uVar9 = DAT_182671c78;
  lVar5 = DAT_182671c40;
  uVar20 = *(ulonglong *)(DAT_182671c40 + -0xb20);
  *(ulonglong *)(lVar4 + -0x510) =
       CONCAT44(uVar7,uVar8) ^ 0x55f1ac191e64f456 | uVar47 ^ *(ulonglong *)(lVar4 + -0x760);
  uVar19 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 - (uVar36 ^ 0xae62ca68)) =
       (uVar37 ^ uVar20) >> (((byte)uVar9 ^ 0x17) & 0x3f) ^ uVar19;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       CONCAT44(uVar21,DAT_182671c5c) ^ 0xd36a1f2010b6aa55 |
       CONCAT44(uVar44,uVar12) ^ 0xdcf1c739d70b233d;
  lVar5 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671da8,DAT_182671da8);
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xceb200de)) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xfc6af81f)) ^ uVar37) << ((local_120 ^ 0xfd) & 0x3f) ^
       uVar20;
  uVar36 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(ulonglong *)(lVar5 + -0xa78) =
       (uVar20 ^ *(ulonglong *)(lVar5 + -0x4b8) | uVar19 ^ *(ulonglong *)(lVar5 + -0x828)) ^ uVar31;
  uVar6 = DAT_182671f20;
  *(ulonglong *)(lVar5 + -0x30) =
       (uVar27 ^ *(ulonglong *)(lVar5 + -0xbd8)) -
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0x2db8e4a0)) ^ uVar31) ^ uVar36;
  uVar19 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x42a005fa)) =
       uVar19 ^ *(ulonglong *)(lVar5 + -0xda8) ^ uVar23 ^ uVar47 ^ *(ulonglong *)(lVar5 + -0x760);
  uVar6 = DAT_182671df0;
  uVar19 = uVar19 ^ *(ulonglong *)(lVar5 + -0x7e8);
  uVar20 = uVar19 >> ((local_res18 ^ 0x28) & 0x3f);
  *(ulonglong *)(lVar5 + -0x408) = uVar20 ^ CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar15 = DAT_182671f08;
  uVar19 = uVar19 << ((bVar40 ^ 0xcc) & 0x3f);
  *(ulonglong *)(lVar5 + -0x920) = uVar19 ^ CONCAT44(uVar6,uVar6);
  uVar19 = uVar19 | uVar20;
  *(ulonglong *)(lVar5 + -0x5e8) = uVar19 ^ uVar22;
  *puVar50 = (*(ulonglong *)(lVar5 + -0xda8) ^ uVar23) - uVar19 ^ CONCAT44(uVar15,uVar15);
  uVar19 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar5 - (uVar25 ^ 0xdff9fbd0)) =
       *(ulonglong *)(lVar5 - (uVar35 ^ 0xdc68f4d0)) ^ *(ulonglong *)(lVar5 - (uVar29 ^ 0xfc6af30f))
       ^ uVar22 ^ uVar19 ^ uVar36;
  uVar23 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  uVar20 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *puVar1 = (uVar19 ^ *(ulonglong *)(lVar5 + -0x228)) >> (((byte)uVar9 ^ 0x34) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0xeee2c802)) =
       (*(ulonglong *)(lVar5 - (uVar29 ^ 0xfc6af117)) ^ uVar19) << ((bVar32 ^ 0xcc) & 0x3f) ^ uVar20
  ;
  *puVar3 = (uVar20 ^ *puVar2 | uVar23 ^ *puVar1) ^ CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar18;
  return;
}



############ FUN_ 180ff35d0 size=5389 ############

void FUN_180ff35d0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  uint uVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  
  uVar15 = DAT_182671e7c;
  uVar20 = DAT_182671c84;
  uVar34 = DAT_182671c54;
  lVar9 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c54;
  uVar23 = (ulonglong)DAT_182671c54;
  uVar25 = DAT_182671c84 - DAT_182671c54;
  uVar8 = *(uint *)(&DAT_182613218 + DAT_18267207c);
  uVar16 = *(uint *)(&DAT_182613210 + (uVar30 ^ 0xddeffc14) + (longlong)DAT_18267207c) ^
           DAT_182671c84;
  uVar37 = (ulonglong)DAT_182671c84;
  uVar42 = (ulonglong)uVar25;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x888);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x960);
  uVar24 = CONCAT44(DAT_182671c54,DAT_182671c84);
  DAT_182671c48 = uVar25;
  *puVar1 = CONCAT44(DAT_182671e28,DAT_182671e28) ^ *(ulonglong *)(DAT_182671c40 + -0x5e8) |
            uVar24 ^ 0x72fb12a0eacf2129;
  uVar13 = DAT_182671de4;
  uVar21 = CONCAT44(uVar15,uVar15);
  uVar31 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar28 = CONCAT44(DAT_182671ea0,DAT_182671ea0) ^ *puVar2 | *(ulonglong *)(lVar9 + -0xb18) ^ uVar21
  ;
  uVar18 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar9 + -0x680) = uVar28 ^ uVar31;
  uVar26 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar9 + -0xd88) =
       (uVar18 ^ *(ulonglong *)(lVar9 + -0xbd8)) - (CONCAT44(uVar34,uVar25) ^ 0x53deb89a03f04ca9) ^
       uVar26;
  bVar38 = (byte)uVar20;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar20 ^ 0x60b086e8)) = uVar28 << ((bVar38 ^ 0x75) & 0x3f);
  uVar28 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar9 + -0xc38) =
       (*(ulonglong *)(lVar9 + -0xd88) ^ uVar26) -
       (*(ulonglong *)(lVar9 - (uVar42 ^ 0x82c089bc)) ^ uVar31) ^ uVar28;
  uVar26 = CONCAT44(DAT_182671d64,DAT_182671d64);
  puVar3 = (ulonglong *)(lVar9 + -0x110);
  uVar18 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar34 ^ 0xddeffa84)) ^ uVar31) +
           (CONCAT44(uVar20,uVar34) ^ 0xe6dcaf36d3440107) ^ uVar26;
  *puVar3 = uVar18;
  uVar31 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar32 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  puVar29 = (ulonglong *)(lVar9 - ((ulonglong)uVar25 ^ 0x82c0856c));
  *puVar29 = uVar32 ^ uVar31 ^ uVar18 ^ uVar26 ^ *(ulonglong *)(lVar9 + -0xf0);
  uVar18 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  bVar22 = (byte)uVar25;
  *(ulonglong *)(lVar9 - (uVar23 ^ 0xddeff01c)) =
       (*(ulonglong *)(lVar9 + -0xa50) ^ uVar31) >> ((bVar38 ^ 0x45) & 0x3f) ^ uVar18;
  lVar9 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (*(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar31) << 0x3b ^ uVar39;
  *(ulonglong *)(lVar9 - (uVar42 ^ 0x82c08d14)) = 0xddf81a7cdbfdd566 >> ((bVar22 ^ 4) & 0x3f);
  uVar13 = DAT_182671d38;
  uVar23 = CONCAT44(DAT_182671f10,DAT_182671f10);
  uVar18 = uVar18 ^ *(ulonglong *)(lVar9 + -0xc18) | uVar39 ^ *(ulonglong *)(lVar9 + -0xa78);
  *(ulonglong *)(lVar9 + -0xa08) = uVar18 ^ uVar23;
  uVar15 = DAT_182671e10;
  uVar40 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar9 - (uVar37 ^ 0x60b087d0)) =
       (uVar32 ^ *(ulonglong *)(lVar9 + -0xf0)) - uVar18 ^ uVar40;
  uVar18 = CONCAT44(DAT_182671f78,DAT_182671f78);
  puVar27 = (ulonglong *)(lVar9 - (uVar30 ^ 0xddeff03c));
  puVar4 = (ulonglong *)(DAT_182671c40 + -0x510);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0x60b08ea8)) =
       CONCAT44(uVar15,uVar15) ^ uVar18 ^ uVar28 ^ *puVar27 ^ *puVar4;
  uVar11 = DAT_182671c4c;
  uVar31 = (ulonglong)DAT_182671c4c;
  *puVar1 = (uVar24 ^ 0x9a838e86fb77d238) + (CONCAT44(uVar34,uVar25) ^ 0xfd0f09bce6a595ac);
  uVar13 = DAT_182671e1c;
  lVar9 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *puVar2 = (uVar18 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) >> (((byte)uVar34 ^ 0x21) & 0x3f) ^
            uVar26;
  uVar12 = DAT_182671c70;
  uVar32 = (ulonglong)DAT_182671c70;
  uVar18 = (*(ulonglong *)(lVar9 - (uVar31 ^ 0x5275de8)) ^ uVar18) << ((bVar22 ^ 0x27) & 0x3f);
  puVar19 = (ulonglong *)(lVar9 - ((ulonglong)uVar25 ^ 0x82c08424));
  uVar31 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *puVar19 = uVar18 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar20 ^ 0x60b08098)) = (uVar18 | uVar26 ^ *puVar2) ^ uVar31;
  lVar9 = DAT_182671c40;
  puVar5 = (ulonglong *)(DAT_182671c40 + -0xc90);
  uVar24 = CONCAT44(DAT_182671f80,DAT_182671f80);
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x1010f6f)) =
       (*(ulonglong *)(DAT_182671c40 + -0xc38) ^ uVar28) -
       (*(ulonglong *)(DAT_182671c40 + -0xbd8) ^ uVar31) ^ uVar24;
  uVar14 = DAT_182671d94;
  uVar26 = (ulonglong)DAT_182671d94;
  uVar33 = CONCAT44(DAT_182671d94,DAT_182671d94);
  uVar18 = *(ulonglong *)(lVar9 - (uVar42 ^ 0x82c084e4)) ^ uVar33 ^ uVar31 ^ uVar40 ^ *puVar5;
  uVar28 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(ulonglong *)(lVar9 + -0xd88) = uVar18;
  *(ulonglong *)(lVar9 + -0x680) =
       ((ulonglong)(uVar14 >> 0x17) | uVar26 << 9) ^ uVar18 >> 0x17 ^ uVar28;
  lVar9 = DAT_182671c40;
  bVar17 = (byte)DAT_182671c7c;
  *(ulonglong *)(DAT_182671c40 - (uVar30 ^ 0xddeffd14)) =
       (CONCAT44(DAT_182671c7c,uVar20) ^ 0xfb9dc82cf959aba3) >> (((byte)uVar11 ^ 0x1c) & 0x3f);
  uVar13 = DAT_182671cb8;
  uVar26 = (*(ulonglong *)(lVar9 + -0xd88) ^ uVar33) << ((bVar17 ^ 0x29) & 0x3f);
  uVar18 = *puVar5;
  *(ulonglong *)(lVar9 + -0xa50) = uVar26 ^ CONCAT44(DAT_182671e50,DAT_182671e50);
  uVar26 = uVar26 | uVar28 ^ *(ulonglong *)(lVar9 + -0x680);
  uVar41 = CONCAT44(uVar13,uVar13);
  puVar6 = (ulonglong *)(lVar9 + -0x228);
  *puVar6 = uVar26 ^ uVar41;
  *(uint *)(lVar9 + -0x61c) = (DAT_182671c6c ^ 0x6f3745b8) * *(int *)(lVar9 + -0x54);
  uVar13 = DAT_182671efc;
  uVar31 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar9 + -0xc18) = (uVar40 ^ uVar18) - uVar26 ^ uVar31;
  lVar10 = DAT_182671c40;
  uVar32 = CONCAT44(uVar13,uVar13);
  puVar7 = (ulonglong *)(lVar9 + -0xda8);
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x82c08544)) =
       *puVar7 ^ *(ulonglong *)(lVar9 + -0xa08) ^ uVar32 ^ uVar24 ^ uVar23;
  uVar13 = DAT_182671ef8;
  uVar32 = uVar32 ^ *(ulonglong *)(lVar10 + -0xa78);
  uVar28 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar23 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar10 + -0xf0) = uVar32 >> ((bVar22 ^ 0x14) & 0x3f) ^ uVar28;
  uVar26 = CONCAT44(uVar13,uVar13);
  uVar18 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar10 - ((ulonglong)uVar12 ^ 0x10107d7)) = uVar32 << 0x18 ^ uVar26;
  lVar9 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar18 = *(ulonglong *)(lVar10 - (uVar18 ^ 0x2dabc71)) ^ uVar28 |
           *(ulonglong *)(lVar10 - (uVar23 ^ 0x430ad97)) ^ uVar26;
  uVar28 = uVar18 ^ uVar32;
  *puVar1 = uVar28;
  uVar26 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar35 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar9 + -0x5e8) = (*puVar7 ^ uVar24) - uVar18 ^ uVar26;
  *puVar2 = uVar35 ^ uVar32 ^ uVar31 ^ uVar28 ^ *(ulonglong *)(lVar9 + -0xc18);
  *(ulonglong *)(lVar9 + -0xb18) =
       CONCAT44(uVar20,DAT_182671c74) ^ uVar32 ^ uVar28 ^ 0x36597711a7e9c955;
  uVar13 = DAT_182671d40;
  uVar11 = DAT_182671c5c;
  uVar32 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar24 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar9 + -0xc38) = (uVar35 ^ *puVar2) >> ((bVar22 ^ 8) & 0x3f) ^ uVar32;
  lVar9 = DAT_182671c40;
  uVar18 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0xdceef2e5)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xff3df09f)) ^ uVar35) << ((bVar38 ^ 0x4c) & 0x3f)
       ^ uVar18;
  uVar18 = uVar32 ^ *(ulonglong *)(lVar9 + -0xc38) | uVar18 ^ *(ulonglong *)(lVar9 + -0xbd8);
  uVar28 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *puVar3 = uVar18 ^ uVar28;
  uVar15 = DAT_182671df8;
  uVar36 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar9 + -0xd88) =
       (*(ulonglong *)(lVar9 - (uVar23 ^ 0x430a49f)) ^ uVar31) - uVar18 ^ uVar36;
  uVar13 = DAT_182671d00;
  uVar18 = CONCAT44(uVar15,uVar15);
  uVar23 = uVar18 ^ uVar26 ^ uVar41 ^ *puVar6 ^ *(ulonglong *)(lVar9 + -0x5e8);
  *(ulonglong *)(lVar9 + -0x680) = uVar23;
  uVar23 = uVar23 ^ uVar18;
  uVar18 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar9 + -0xa50) = uVar23 >> (((byte)DAT_182671c60 ^ 0x41) & 0x3f) ^ uVar18;
  uVar23 = uVar23 << (((byte)DAT_182671c90 ^ 0x3a) & 0x3f);
  *puVar5 = uVar23 ^ CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar20 = DAT_182671c64;
  uVar11 = DAT_182671c50;
  uVar35 = (ulonglong)DAT_182671c64;
  bVar17 = (byte)DAT_182671c64;
  uVar24 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar9 + -0xa08) =
       (*(ulonglong *)(lVar9 - (uVar37 ^ 0x60b08110)) ^ uVar18 | uVar23) ^ uVar24;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x5375088)) =
       (CONCAT44(uVar34,uVar12) ^ 0xc2d8c9c7a6df6328) >> ((bVar17 ^ 0x5b) & 0x3f);
  uVar11 = DAT_182671e8c;
  *(ulonglong *)(lVar9 + -0xf0) =
       (*(ulonglong *)(lVar9 - (uVar42 ^ 0x82c08ad4)) ^ uVar26) -
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar20 ^ 0xe1b0f54c)) ^ uVar24) ^ uVar21;
  uVar18 = *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c7c ^ 0x5275588)) ^ CONCAT44(uVar11,uVar11)
           ^ uVar24 ^ uVar36 ^ *(ulonglong *)(lVar9 + -0xa08);
  uVar34 = uVar25 - uVar20;
  *puVar4 = uVar18;
  uVar26 = CONCAT44(DAT_182671f38,DAT_182671f38);
  DAT_182671c74 = uVar34;
  *puVar7 = ((ulonglong)uVar11 << 0x12 | (ulonglong)(uVar11 >> 0xe)) ^ uVar18 >> 0xe ^ uVar26;
  bVar17 = (byte)uVar34;
  uVar24 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *puVar1 = (CONCAT44(uVar11,uVar11) ^ uVar18) << ((bVar17 ^ 0xca) & 0x3f) ^ uVar24;
  lVar10 = DAT_182671c40;
  *puVar19 = 0xf7bfffd5ffff1eff;
  uVar31 = CONCAT44(DAT_182671f54,DAT_182671f54);
  uVar23 = CONCAT44(uVar25,uVar34);
  *puVar2 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar34 ^ 0xa10f8250)) ^ uVar26 | uVar24 ^ *puVar1) ^
            uVar31;
  uVar26 = CONCAT44(DAT_182671f14,DAT_182671f14);
  puVar19 = (ulonglong *)(lVar9 - ((ulonglong)uVar20 ^ 0xe1b0f49c));
  *puVar19 = (*(ulonglong *)(lVar10 - ((ulonglong)uVar20 ^ 0xe1b0f2cc)) ^ uVar36) -
             (uVar23 ^ 0xa20eb7b9bbd57145) ^ uVar26;
  *(ulonglong *)(lVar10 + -0xc38) = uVar23 ^ CONCAT44(uVar20,uVar34) ^ 0xec5afc8b811a0cb0;
  uVar13 = DAT_182671f04;
  uVar37 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar18 = *puVar2;
  *(ulonglong *)(lVar10 + -0xc18) =
       (uVar26 ^ *(ulonglong *)(lVar10 + -0xbd8)) - (uVar31 ^ *puVar2) ^ uVar37;
  uVar41 = CONCAT44(uVar13,uVar13);
  *puVar6 = (uVar31 ^ uVar18) - (CONCAT44(uVar20,uVar25) ^ 0xde2672cf3c31dfb1) ^ uVar41;
  uVar13 = DAT_182671ee8;
  *(ulonglong *)(lVar10 + -0x680) = CONCAT44(uVar25,uVar25) ^ 0x863560288ab3080 | 0xc50ca1f97710ce5e
  ;
  lVar9 = DAT_182671c40;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar10 - (uVar35 ^ 0xe1b0f514)) =
       *(ulonglong *)(lVar10 - ((ulonglong)uVar34 ^ 0xa10f8ee8)) ^ uVar31 ^ uVar28 ^ uVar21 ^
       *(ulonglong *)(lVar10 + -0xf0);
  uVar18 = *(ulonglong *)(lVar9 + -0xa50);
  uVar28 = (uVar31 ^ *(ulonglong *)(lVar9 + -0xa50)) << 0x30;
  uVar26 = *(ulonglong *)(*(ulonglong *)(lVar10 + -0x610) ^ uVar39);
  *(ulonglong *)(lVar9 + -0xa08) = uVar28 ^ uVar36;
  *puVar5 = uVar26 ^ uVar32;
  uVar13 = DAT_182671e0c;
  uVar18 = (uVar31 ^ uVar18) >> ((bVar17 ^ 0xe8) & 0x3f);
  *(ulonglong *)(lVar9 + -0x5e8) = uVar18 ^ CONCAT44(DAT_182671dcc,DAT_182671dcc);
  lVar9 = DAT_182671c40;
  uVar18 = uVar18 | uVar28;
  uVar28 = CONCAT44(uVar13,uVar13);
  *puVar4 = uVar18 ^ uVar28;
  uVar13 = DAT_182671f20;
  uVar26 = (uVar21 ^ *(ulonglong *)(lVar9 + -0xf0)) - (CONCAT44(uVar20,uVar20) ^ 0xbf2998f2ba4e7af5)
  ;
  *(ulonglong *)(lVar9 + -0xb18) = uVar26 ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar31 = CONCAT44(uVar13,uVar13);
  *puVar7 = uVar26 - (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar34 ^ 0xa10f8ae8)) ^ uVar28) ^
            uVar31;
  lVar9 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar34 ^ 0xa10f8770)) =
       (CONCAT44(uVar34,uVar25) ^ 0x74a03ca442749fe) + uVar18 ^ uVar24;
  uVar13 = DAT_182671d08;
  *(ulonglong *)(lVar9 + -0xd88) = uVar23 ^ *puVar5 ^ 0x9da7e8e7a2b96ba3;
  lVar9 = DAT_182671c40;
  uVar26 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xe1b0f37c)) =
       uVar26 ^ uVar37 ^ uVar24 ^ *puVar1 ^ *(ulonglong *)(DAT_182671c40 + -0xc18);
  *(uint *)(lVar9 + -0x784) = *(uint *)(lVar9 + -0x670) >> ((bVar17 ^ 0xe6) & 0x1f);
  uVar13 = DAT_182671e48;
  uVar21 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *puVar19 = (uVar26 ^ *(ulonglong *)(lVar9 + -0xc38)) >> ((bVar22 ^ 0x1c) & 0x3f) ^ uVar21;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar34 ^ 0xa10f8698)) =
       **(ulonglong **)(lVar9 + -0xd68) ^ uVar23;
  uVar18 = *(ulonglong *)(lVar9 + -0xbd8);
  uVar28 = (uVar26 ^ *(ulonglong *)(lVar9 + -0xc38)) << (((byte)DAT_182671c7c ^ 0x20) & 0x3f);
  uVar26 = CONCAT44(DAT_182671c50,DAT_182671c60);
  *(ulonglong *)(lVar9 + -0x680) = uVar28 ^ CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar11 = DAT_182671f60;
  uVar24 = (ulonglong)DAT_182671f60;
  *puVar3 = uVar26 ^ 0x97b808b3b4e06b08 | *(ulonglong *)(lVar9 + -0xa78);
  uVar36 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar26 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar9 + -0x5e8) = CONCAT44(uVar20,uVar20) ^ 0x261ad5276f9250e3;
  uVar13 = DAT_182671e78;
  *(ulonglong *)(lVar9 + -0xa50) = (uVar21 ^ uVar18 | uVar28) ^ uVar36;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar28 = (*(ulonglong *)(lVar9 - (uVar35 ^ 0xe1b0f35c)) ^ uVar37) - (*puVar29 ^ uVar36) ^ uVar32;
  *(ulonglong *)(lVar9 + -0xa08) = uVar28;
  uVar18 = *puVar7;
  uVar21 = *(ulonglong *)(lVar9 - (uVar26 ^ 0x430aaaf)) ^ uVar31 ^ uVar41 ^ uVar18;
  uVar26 = uVar21 ^ CONCAT44(uVar11,uVar11);
  uVar35 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar9 + -0xf0) = uVar26;
  uVar21 = uVar21 << 0x20;
  uVar24 = uVar26 >> 0x20 ^ uVar35 ^ uVar24;
  *puVar4 = uVar21 ^ uVar40;
  uVar13 = DAT_182671d10;
  *(ulonglong *)(lVar9 + -0xb18) = uVar24;
  lVar9 = DAT_182671c40;
  uVar21 = uVar21 | uVar24 ^ uVar35;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar26 = uVar21 ^ uVar35;
  *puVar5 = uVar26;
  uVar13 = DAT_182671f98;
  uVar24 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar9 + -0xd88) = (uVar31 ^ uVar18) - uVar21 ^ uVar24;
  uVar21 = CONCAT44(uVar13,uVar13);
  bVar17 = (byte)DAT_182671c5c;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c50 ^ 0x5375278)) =
       uVar28 ^ uVar26 ^ uVar21 ^ uVar35 ^ uVar32;
  uVar26 = (*puVar1 ^ uVar21) >> ((bVar17 ^ 7) & 0x3f);
  *puVar2 = uVar26 ^ CONCAT44(DAT_182671ed0,DAT_182671ed0);
  uVar34 = DAT_182671c7c;
  lVar9 = DAT_182671c40;
  uVar18 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = (*puVar1 ^ uVar21) << ((bVar22 ^ 0x3a) & 0x3f) ^ uVar18;
  uVar20 = DAT_182671c7c | DAT_182671c54;
  DAT_182671c8c = uVar20;
  *(int *)(lVar9 + -0x54) = *(int *)(lVar9 - (uVar42 ^ 0x82c086e0)) - *(int *)(lVar9 + -0x6c0);
  uVar13 = DAT_182671dac;
  lVar10 = DAT_182671c40;
  DAT_182671c50 = DAT_182671c60 | DAT_182671c80;
  uVar21 = (ulonglong)DAT_182671c50;
  puVar19 = (ulonglong *)(lVar9 - ((ulonglong)DAT_182671c50 ^ 0xfbdff581));
  *puVar19 = (*(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c80 ^ 0x2dab0b9)) ^ uVar18 | uVar26) ^
             uVar23;
  uVar28 = CONCAT44(uVar13,uVar13);
  *puVar3 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar34 ^ 0x5275208)) ^ uVar32) -
            (*(ulonglong *)(lVar9 + -0xa78) ^ uVar23) ^ uVar28;
  uVar13 = DAT_182671ccc;
  uVar26 = CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar36 = *(ulonglong *)(lVar10 - (uVar30 ^ 0xddeff18c)) ^
           *(ulonglong *)(lVar10 - ((ulonglong)uVar20 ^ 0xddeff654)) ^ uVar26 ^ uVar24 ^ uVar36;
  *(ulonglong *)(lVar10 + -0xbd8) = uVar36;
  uVar11 = DAT_182671c60;
  lVar9 = DAT_182671c40;
  uVar31 = CONCAT44(uVar13,uVar13);
  bVar17 = (byte)DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0xddeffa84)) =
       (uVar36 ^ uVar26) >> (((byte)uVar34 ^ 0x16) & 0x3f) ^ uVar31;
  uVar18 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar9 - (uVar30 ^ 0xddeff9ec)) =
       (*(ulonglong *)(lVar9 + -0xbd8) ^ uVar26) << ((bVar17 ^ 0xab) & 0x3f) ^ uVar18;
  uVar13 = DAT_182671ea8;
  lVar10 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar18 = *(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0xfbcf5290)) ^ uVar18 |
           *(ulonglong *)(lVar9 + -0x680) ^ uVar31;
  uVar26 = uVar18 ^ uVar30;
  *(ulonglong *)(lVar9 + -0xc18) = uVar26;
  uVar34 = DAT_182671c80;
  uVar31 = CONCAT44(uVar13,uVar13);
  *puVar6 = (*(ulonglong *)(lVar10 + -0xd88) ^ uVar24) - uVar18 ^ uVar31;
  *(undefined8 *)(lVar10 + -0xf0) = 0x807d640efb42bb;
  uVar13 = DAT_182671d4c;
  uVar18 = uVar33 ^ uVar30 ^ uVar28 ^ uVar26 ^ *puVar3;
  *(ulonglong *)(lVar10 + -0xb18) = uVar18;
  uVar15 = DAT_182671eac;
  uVar30 = CONCAT44(uVar13,uVar13);
  *puVar4 = (uVar33 ^ uVar18) >> (((byte)uVar11 ^ 0x56) & 0x3f) ^ uVar30;
  uVar18 = CONCAT44(uVar15,uVar15);
  uVar26 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar34 ^ 0x2dab129)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xfbdff4e1)) ^ uVar33) <<
       (((byte)uVar20 ^ 0x16) & 0x3f) ^ uVar18;
  uVar13 = DAT_182671f84;
  uVar18 = *puVar4 ^ uVar30 | *puVar7 ^ uVar18;
  *puVar5 = uVar18 ^ uVar26;
  *puVar1 = (uVar28 ^ *puVar3) - uVar18 ^ CONCAT44(uVar13,uVar13);
  uVar18 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar23 = *puVar19 ^ *puVar6 ^ uVar18 ^ uVar31 ^ uVar23;
  *puVar2 = uVar23;
  *puVar27 = (uVar23 ^ uVar18) >> (((byte)uVar34 ^ 0x8d) & 0x3f) ^ uVar35;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar8 ^ uVar25;
  return;
}



############ FUN_ 180f4a650 size=4744 ############

void FUN_180f4a650(void)

{
  undefined8 uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  byte *pbVar25;
  byte bVar26;
  ulonglong uVar27;
  longlong *plVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  byte bVar33;
  uint uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_res20;
  byte local_b8;
  
  uVar12 = DAT_182671f34;
  uVar4 = DAT_182671c90;
  uVar14 = DAT_182671c84;
  uVar10 = DAT_182671c68;
  uVar7 = DAT_182671c64;
  uVar5 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar21 = DAT_182671c88 & 3;
  if (uVar21 < 2) {
    uVar34 = DAT_182671c68;
    if (uVar21 == 0) {
      uVar34 = DAT_182671c88;
    }
  }
  else {
    uVar34 = DAT_182671c90;
    if (uVar21 < 3) {
      uVar34 = DAT_182671c84;
    }
  }
  uVar30 = (ulonglong)DAT_182671c64;
  uVar31 = (ulonglong)DAT_182671c4c;
  uVar32 = DAT_182671c4c + DAT_182671c64;
  uVar21 = *(uint *)(&DAT_182613218 + DAT_182672174);
  uVar22 = *(uint *)(&DAT_182613210 + (uVar30 ^ 0xfd5bf703) + (longlong)DAT_182672174) ^
           DAT_182671c4c;
  uVar36 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar27 = CONCAT44(DAT_182671f24,DAT_182671f24);
  DAT_182671c7c = uVar32;
  DAT_182671c8c = uVar34;
  *(ulonglong *)(DAT_182671c40 + -0xb20) =
       *(ulonglong *)
        (CONCAT44(DAT_182671e04,DAT_182671e04) ^ *(ulonglong *)(DAT_182671c40 + -0xb30)) ^ uVar27 ^
       uVar36;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x141a6a0e)) =
       CONCAT44(uVar14,uVar4) ^ 0x6344cec8cb592ee6;
  *(ulonglong *)(lVar2 + -0xa08) =
       (*(ulonglong *)(lVar2 + -0xb20) ^ uVar36) >> ((byte)uVar10 & 0x3f) ^ CONCAT44(uVar12,uVar12);
  bVar35 = *(byte *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0x200c0c99)) ^ (byte)uVar12 ^
           (byte)DAT_182671dec;
  *(byte *)(lVar2 + -0x899) = bVar35;
  uVar8 = DAT_182671c5c;
  uVar24 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar2 + -0x920) =
       (CONCAT44(uVar10,uVar14) ^ 0xc12c0d264f66c914) << (((byte)uVar34 ^ 9) & 0x3f);
  uVar9 = DAT_182671c60;
  uVar38 = (ulonglong)DAT_182671c60;
  uVar23 = uVar8 - DAT_182671c60;
  bVar35 = bVar35 ^ (byte)DAT_182671d18 ^ (byte)DAT_182671dec;
  pbVar25 = (byte *)((CONCAT44(uVar23,uVar8) ^ 0xaebd1a82200402c9) + *(longlong *)(lVar2 + -0x1d0));
  uVar37 = (ulonglong)DAT_182671c60;
  DAT_182671c6c = uVar23;
  *(ulonglong *)(lVar2 + -0x808) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182671dd8;
  uVar13 = DAT_182671cc4;
  *pbVar25 = bVar35;
  uVar17 = DAT_182671e18;
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x650) =
       *(longlong *)(DAT_182671c40 - (uVar37 ^ 0x7146e4ee)) +
       ((CONCAT44(uVar8,uVar7) ^ 0x20040280fd5bf71a) +
       (CONCAT44(uVar9,uVar5) ^ 0x7146e7fedff3f96e) * 0xc) * 8 ^ uVar36;
  uVar37 = CONCAT44(uVar17,uVar17);
  uVar36 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xaebd1cd2)) ^ uVar36) ^
           uVar37 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x650) = CONCAT44(uVar32,uVar9) ^ 0x901ff5b8a2afb309;
  uVar11 = DAT_182671c70;
  *(ulonglong *)(lVar2 + -0xa78) = uVar36;
  *(ulonglong *)(lVar2 + -0x7e8) = CONCAT44(uVar11,uVar5) ^ 0x296e44168ed3e71e | uVar37 ^ uVar36;
  lVar2 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671e50,DAT_182671e50);
  bVar26 = (byte)DAT_182671e50;
  bVar35 = *(byte *)(DAT_182671c40 + -0xa08);
  uVar36 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0xce10ca1a)) ^ uVar37) >>
           (((byte)uVar8 ^ 0x90) & 0x3f) ^ uVar39;
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar36;
  bVar33 = (byte)uVar36 ^ (byte)DAT_182671f14 ^ bVar26;
  *(byte *)(lVar2 + -0x1e1) = bVar33;
  *(ulonglong *)(lVar2 + -0x110) =
       (CONCAT44(uVar10,uVar8) ^ 0x4ddb53bc3d01f21c) << (((byte)uVar12 ^ bVar35) & 0x3f);
  plVar28 = (longlong *)(lVar2 - ((ulonglong)uVar32 ^ 0xdd4ff151));
  bVar35 = (byte)DAT_182671f14 ^ (byte)DAT_182671d18;
  pbVar25 = (byte *)(*plVar28 + 0x4a);
  *(ulonglong *)(lVar2 + -0x248) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182671ec8;
  *pbVar25 = bVar35 ^ bVar33;
  uVar12 = DAT_182671db8;
  *(ulonglong *)(lVar2 + -0x628) =
       ((ulonglong)(DAT_182671e60 >> 0x14) | (ulonglong)DAT_182671e60 << 0xc) ^
       *(ulonglong *)(lVar2 + -0x228) >> 0x14;
  uVar13 = DAT_182671e58;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar7,uVar32) ^ 0xfd5bf713dd4ff088) * 8);
  *(ulonglong *)(lVar2 + -0xb88) = (ulonglong)puVar29 ^ CONCAT44(uVar12,uVar12);
  uVar19 = DAT_182671f38;
  uVar15 = DAT_182671c88;
  lVar2 = DAT_182671c40;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar36 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 + -0xc90) = *puVar29 ^ uVar41 ^ uVar27;
  uVar37 = (ulonglong)DAT_182671d10;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x7de1c190)) = CONCAT44(uVar14,uVar4) ^ 0xe91c6b026163d522;
  lVar3 = DAT_182671c40;
  uVar36 = CONCAT44(uVar15,DAT_182671c68);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0xd33c9ce9)) =
       (*(ulonglong *)(lVar2 + -0xc90) ^ uVar41) >> (((byte)DAT_182671c68 ^ 0x10) & 0x3f) ^
       CONCAT44(uVar19,uVar19);
  *(byte *)(lVar3 + -0x359) =
       *(byte *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x200c0ce1)) ^ (byte)uVar19 ^
       (byte)DAT_182671d04;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x7146e726)) =
       (uVar36 ^ 0x141a613e611a1043) + *(longlong *)(lVar3 + -0x1d0) ^ uVar37;
  *(byte *)(*(ulonglong *)(lVar3 + -0xd8) ^ uVar37) =
       *(byte *)(lVar3 - (uVar24 ^ 0x200401d9)) ^ (byte)DAT_182671d04 ^ (byte)DAT_182671d18;
  uVar4 = DAT_182671f54;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar3 - ((ulonglong)uVar32 ^ 0xdd4ff391)) +
            (CONCAT44(uVar14,uVar8) ^ 0x7de1ca1820040289) * 8);
  uVar36 = (ulonglong)DAT_182671f54;
  *(ulonglong *)(lVar3 + -0x10) = (ulonglong)puVar29 ^ CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar17 = DAT_182671e80;
  bVar35 = (byte)DAT_182671da8;
  uVar16 = DAT_182671c90;
  *(ulonglong *)(lVar3 + -0x8f0) = CONCAT44(uVar4,uVar4) ^ *puVar29 ^ uVar27;
  uVar4 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x10) = CONCAT44(uVar16,DAT_182671c48) ^ 0xe44aa699b33ff74c;
  uVar36 = *(ulonglong *)(lVar2 + -0x8f0) >> 0x20 ^ uVar39 ^ uVar36;
  *(ulonglong *)(lVar2 + -0x4b8) = uVar36;
  uVar34 = DAT_182671c70;
  uVar38 = (ulonglong)DAT_182671f48;
  bVar26 = (byte)uVar36 ^ bVar35 ^ bVar26;
  uVar36 = CONCAT44(uVar9,DAT_182671c70);
  *(byte *)(lVar2 + -0x529) = bVar26;
  pbVar25 = (byte *)((uVar36 ^ 0x7146e7fe200c06dd) + *(longlong *)(lVar2 + -0x1d0));
  bVar35 = bVar35 ^ bVar26 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 + -0x3d0) = (ulonglong)pbVar25 ^ uVar38;
  uVar13 = DAT_182671dc8;
  *pbVar25 = bVar35;
  uVar12 = DAT_182671d3c;
  uVar36 = CONCAT44(uVar13,uVar13);
  puVar29 = (ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xaebd1cfa));
  *puVar29 = *(longlong *)(lVar2 - (uVar31 ^ 0xdff3fa7e)) +
             (CONCAT44(uVar32,DAT_182671c68) ^ 0xdd4ff081611a1001) * 8 ^ uVar36;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xb18) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x678) ^ uVar36) ^ uVar37 ^ uVar27;
  uVar36 = (ulonglong)DAT_182671c58;
  *puVar29 = 0x5ccd16383af3dd4a;
  uVar38 = (ulonglong)DAT_182671f1c;
  uVar39 = (ulonglong)DAT_182671c90;
  uVar40 = CONCAT44(uVar8,DAT_182671c90);
  uVar36 = (*(ulonglong *)(lVar2 - (uVar36 ^ 0x173de982)) ^ uVar37) >>
           (((byte)DAT_182671c8c ^ 0x30) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar2 + -0xd88) = uVar36;
  uVar6 = DAT_182671c50;
  *(byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0xd33c9bab)) =
       (byte)uVar17 ^ (byte)uVar36 ^ (byte)DAT_182671cdc;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xc88) =
       (CONCAT44(uVar16,uVar8) ^ 0xce10c062200402cd) + *(longlong *)(DAT_182671c40 + -0x1d0) ^
       uVar38;
  bVar35 = *(byte *)(lVar2 + -0xd32) ^ (byte)DAT_182671cdc ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 + -0xa60) =
       (CONCAT44(uVar4,uVar32) ^ 0x41b3ea1bc24c8b31) >> (((byte)uVar34 ^ 0x91) & 0x3f);
  uVar36 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x44014089)) ^ uVar38) = bVar35;
  uVar13 = DAT_182671e54;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar6,uVar23) ^ 0xd33c9699aebd1a8b) + (uVar40 ^ 0x20040280ce10c062) * 0xc) *
            8);
  *(ulonglong *)(lVar2 + -0x948) = (ulonglong)puVar29 ^ uVar36;
  uVar12 = DAT_182671d4c;
  lVar2 = DAT_182671c40;
  uVar38 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = *puVar29 ^ uVar38 ^ uVar27;
  uVar36 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0xce10c92a)) = CONCAT44(uVar9,DAT_182671c68) ^ 0xa0aa33498f041ddb
  ;
  uVar36 = (*(ulonglong *)(lVar2 - (uVar36 ^ 0x141a62e6)) ^ uVar38) >>
           (((byte)DAT_182671c58 ^ 0xaa) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  bVar35 = (byte)uVar12 ^ (byte)uVar36;
  *(ulonglong *)(lVar2 + -0x960) = uVar36;
  uVar36 = (ulonglong)DAT_182671eec;
  *(ulonglong *)(lVar2 + -0xc38) = *(ulonglong *)(lVar2 + -0xc90) ^ uVar41 ^ 0xeba35b53a1d7dbf0;
  *(byte *)(lVar2 + -0x61d) = bVar35 ^ (byte)DAT_182671db8;
  bVar35 = bVar35 ^ (byte)DAT_182671d18;
  pbVar25 = (byte *)((CONCAT44(uVar10,uVar9) ^ 0x611a10087146e7b0) + *(longlong *)(lVar2 + -0x1d0));
  *(ulonglong *)(lVar2 + -0x968) = (ulonglong)pbVar25 ^ uVar36;
  *pbVar25 = bVar35;
  uVar8 = DAT_182671f2c;
  uVar13 = DAT_182671c80;
  uVar34 = DAT_182671c48;
  uVar36 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  uVar37 = (ulonglong)DAT_182671f2c;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xfd5bfd53)) =
       *(longlong *)(lVar2 - ((ulonglong)DAT_182671c84 ^ 0x7de1c908)) +
       ((CONCAT44(uVar7,DAT_182671c50) ^ 0xfd5bf713d33c9690) +
       (CONCAT44(uVar23,DAT_182671c8c) ^ 0xaebd1a827de1ca18) * 0xc) * 8 ^ uVar36;
  uVar12 = DAT_182671f7c;
  uVar18 = DAT_182671d68;
  uVar38 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar2 + -0x2b0) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0xa40) ^ uVar36) ^ uVar38 ^ uVar27;
  *(undefined8 *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x138)) = 0x31026631bf3b1742;
  *(undefined8 *)(lVar2 + -0x138) = 0x3969e522a1f32876;
  *(ulonglong *)(lVar2 + -0xa40) = CONCAT44(uVar11,uVar34) ^ 0xd850dd6e1a0f96db;
  uVar20 = DAT_182671f98;
  *(ulonglong *)(lVar2 + -0xa50) =
       *(ulonglong *)(lVar2 + -0xd88) ^ CONCAT44(uVar17,uVar17) | 0xd4b86a95e7f3ca7e;
  uVar7 = DAT_182671c54;
  uVar39 = (ulonglong)DAT_182671c54;
  uVar36 = (ulonglong)DAT_182671c88;
  uVar38 = (uVar38 ^ *(ulonglong *)(lVar2 + -0x2b0)) >> (((byte)uVar23 ^ 0xba) & 0x3f) ^
           CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar2 + -0x380) = uVar38;
  *(byte *)(lVar2 + -0x861) = (byte)uVar18 ^ (byte)uVar20 ^ (byte)uVar38;
  bVar35 = (byte)uVar20 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x141a6656)) =
       (CONCAT44(uVar6,uVar7) ^ 0xd33c96997b2d7b14) + *(longlong *)(lVar2 + -0x1d0) ^ uVar37;
  *(byte *)(*(ulonglong *)(lVar2 + -0x768) ^ uVar37) = bVar35 ^ *(byte *)(lVar2 + -0x861);
  uVar12 = DAT_182671d5c;
  uVar38 = CONCAT44(uVar9,DAT_182671c8c);
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((uVar38 ^ 0x7146e7fe7de1ca12) +
            (CONCAT44(uVar10,DAT_182671c90) ^ 0x611a1008ce10c062) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x9b0) = (ulonglong)puVar29 ^ CONCAT44(DAT_182671fb0,DAT_182671fb0);
  lVar2 = DAT_182671c40;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar36 = *puVar29 ^ uVar37 ^ uVar27;
  puVar29 = (ulonglong *)(DAT_182671c40 - (uVar30 ^ 0xfd5bf463));
  uVar30 = (ulonglong)DAT_182671d80;
  *(ulonglong *)(DAT_182671c40 + -0x9b0) = uVar38 ^ 0xd69ab30e9864d51e;
  *(ulonglong *)(lVar2 + -0x888) = uVar36;
  uVar17 = DAT_182671d50;
  uVar38 = (ulonglong)DAT_182671e10;
  *(byte *)(lVar2 + -0x9e9) = *(byte *)(*puVar29 ^ uVar30) ^ (byte)DAT_182671f14;
  lVar3 = DAT_182671c40;
  uVar1 = *(undefined8 *)(DAT_182671c40 + -0xa50);
  *(ulonglong *)(lVar2 + -0x510) = uVar37 ^ uVar36 ^ CONCAT44(uVar17,uVar17);
  bVar35 = (byte)DAT_182671f28;
  bVar26 = (byte)uVar17 ^ (byte)DAT_182671f28 ^ *(byte *)(lVar2 + -0x510);
  *(byte *)(lVar2 + -0x539) = bVar26;
  lVar2 = DAT_182671c40;
  bVar35 = bVar35 ^ bVar26 ^ (byte)DAT_182671d18;
  pbVar25 = (byte *)(*plVar28 + 0x50);
  *(ulonglong *)(lVar3 + -0x370) = (ulonglong)pbVar25 ^ uVar38;
  *(longlong *)(DAT_182671c40 + -0x760) = *(longlong *)(lVar3 + -0x110) << ((byte)uVar1 & 0x3f);
  uVar12 = DAT_182671d90;
  *pbVar25 = bVar35;
  uVar6 = DAT_182671c94;
  uVar7 = DAT_182671c58;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar10,uVar14) ^ 0x611a10087de1ca12) +
            (CONCAT44(uVar4,uVar23) ^ 0x44014c01aebd1a82) * 0xc) * 8);
  uVar42 = (ulonglong)DAT_182671c58;
  uVar38 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 + -0x9b8) = (ulonglong)puVar29 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671f40;
  uVar10 = DAT_182671c90;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x173de772)) = CONCAT44(uVar8,uVar8) ^ *puVar29 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x9b8) = CONCAT44(uVar11,uVar10) ^ 0xd0f07a927b1904ae;
  lVar2 = DAT_182671c40;
  bVar35 = (byte)uVar12 ^ (byte)DAT_182671db4;
  uVar36 = ((ulonglong)uVar8 << 0x18 | (ulonglong)(uVar8 >> 8)) ^
           *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x20040768)) >> 8 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar36;
  uVar10 = DAT_182671c8c;
  uVar30 = (ulonglong)DAT_182671d64;
  *(byte *)(lVar2 - (uVar38 ^ 0xa5f6fe45)) = bVar35 ^ (byte)uVar36;
  bVar35 = *(byte *)(lVar2 + -0x4d9) ^ (byte)DAT_182671db4 ^ (byte)DAT_182671d18;
  pbVar25 = (byte *)((CONCAT44(uVar15,uVar32) ^ 0x141a613edd4ff0d0) + *(longlong *)(lVar2 + -0x1d0))
  ;
  *(ulonglong *)(lVar2 + -400) = (ulonglong)pbVar25 ^ uVar30;
  uVar30 = (ulonglong)DAT_182671c70;
  *pbVar25 = bVar35;
  *(ulonglong *)(lVar2 + -0x7c0) =
       *(ulonglong *)(lVar2 - (uVar30 ^ 0x200c0511)) ^ CONCAT44(uVar18,uVar18) ^ 0x9b8167494296afcf;
  uVar4 = DAT_182671d10;
  lVar3 = DAT_182671c40;
  puVar29 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar7,uVar10) ^ 0x173de29a7de1ca12) +
            (CONCAT44(uVar9,uVar34) ^ 0x7146e7fe44014c01) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x7a0) = (ulonglong)puVar29 ^ CONCAT44(uVar20,uVar20);
  uVar12 = DAT_182671c74;
  uVar37 = (ulonglong)DAT_182671c78;
  uVar36 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0xb08) =
       0x56d61cc5fc108c2 >> (((byte)uVar17 ^ *(byte *)(lVar2 + -0x510)) & 0x3f);
  uVar41 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0xbd8) = *puVar29 ^ uVar41 ^ uVar27;
  uVar30 = *(ulonglong *)(lVar3 + -0xbd8);
  *(int *)(lVar2 + -0x444) = *(int *)(lVar2 - (uVar36 ^ 0xce10c1aa)) + 0x74a399f6;
  local_res20 = (byte)uVar32;
  uVar36 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  bVar26 = (byte)DAT_182671eb8;
  uVar40 = (ulonglong)DAT_182671e74;
  uVar38 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar3 + -0x250) =
       (CONCAT44(uVar14,uVar12) ^ 0x7de1ca18a235afd2) + *(longlong *)(lVar3 + -0x1d0) ^ uVar40;
  *(ulonglong *)(lVar3 + -0xf0) = (uVar41 ^ uVar30) >> ((local_res20 ^ 0x91) & 0x3f) ^ uVar36;
  uVar17 = DAT_182671ec0;
  bVar35 = (byte)DAT_182671ec0;
  bVar26 = bVar26 ^ bVar35 ^ *(byte *)(lVar3 + -0xf0);
  *(byte *)(lVar3 + -0xb21) = bVar26;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0x141a636e)) ^ uVar40) =
       bVar35 ^ bVar26 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar3 + -0x680) =
       (*(ulonglong *)(lVar3 + -0xa70) ^ CONCAT44(uVar19,uVar19)) << 0x14;
  uVar18 = DAT_182671f80;
  uVar30 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(lVar3 + -0x820) =
       (CONCAT44(uVar5,uVar12) ^ 0xdff3f96ea235af80) * 0x60 + *(longlong *)(lVar3 + -0x310) + 0x50 ^
       uVar30;
  uVar36 = CONCAT44(uVar17,uVar17);
  local_b8 = (byte)uVar9;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x7b2d707b)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar37 ^ 0x652b2345)) ^ uVar30) ^ uVar36 ^ uVar27;
  uVar12 = DAT_182671db8;
  uVar30 = (ulonglong)DAT_182671de0;
  uVar36 = (uVar36 ^ *(ulonglong *)(lVar3 + -0xb20)) >> ((local_b8 ^ 0xe6) & 0x3f) ^
           CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar3 + -0x920) = uVar36;
  *(byte *)(lVar3 - (uVar24 ^ 0x20040541)) = (byte)uVar18 ^ (byte)uVar36 ^ (byte)uVar12;
  uVar17 = DAT_182671e8c;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xdff3febe)) =
       (CONCAT44(uVar11,DAT_182671c68) ^ 0x200c0691611a105b) + *(longlong *)(lVar3 + -0x1d0) ^
       uVar30;
  *(byte *)(*(ulonglong *)(lVar3 + -2000) ^ uVar30) =
       *(byte *)(lVar3 + -0x7c1) ^ (byte)uVar12 ^ (byte)DAT_182671d18;
  uVar5 = DAT_182671c50;
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(uVar23,DAT_182671c84) ^ 0x53e9a904f3f273b6) -
       (CONCAT44(uVar13,DAT_182671c50) ^ 0x69b266c2b77615eb);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x173deb82)) =
       *(longlong *)(lVar3 + -0x310) +
       ((CONCAT44(uVar16,uVar5) ^ 0xce10c062d33c9693) +
       (CONCAT44(uVar9,uVar6) ^ 0x7146e7fea5f6fa9c) * 0xc) * 8 ^ CONCAT44(uVar17,uVar17);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar22 * 4) = uVar21 ^ uVar32;
  return;
}



############ FUN_ 180f52b60 size=5054 ############

void FUN_180f52b60(void)

{
  uint uVar1;
  undefined4 uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  byte *pbVar18;
  longlong *plVar19;
  uint uVar20;
  ulonglong *puVar21;
  longlong *plVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  uint uVar27;
  uint uVar28;
  byte bVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  
  uVar15 = DAT_182671f50;
  bVar29 = (byte)DAT_182671f14;
  uVar5 = DAT_182671d80;
  uVar9 = DAT_182671c94;
  uVar27 = DAT_182671c7c;
  lVar3 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c94;
  uVar33 = (ulonglong)DAT_182671c7c;
  uVar20 = DAT_182671c7c + DAT_182671c94;
  uVar1 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c7c ^ 0x8c58eae7) + (longlong)DAT_18267218c);
  uVar13 = *(uint *)(&DAT_182613220 + DAT_18267218c) ^ DAT_182671c94;
  uVar16 = (ulonglong)DAT_182671c94;
  uVar25 = (ulonglong)DAT_182671d80;
  uVar35 = (ulonglong)DAT_182671f50;
  DAT_182671c74 = uVar20;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0xc50) ^ (ulonglong)DAT_182671c98) =
       *(byte *)(DAT_182671c40 + -0xb69) ^ (byte)DAT_182671d8c ^ (byte)DAT_182671f14;
  uVar7 = DAT_182671f24;
  uVar31 = CONCAT44(uVar9,uVar27) ^ 0x5b3167408c58eaef;
  puVar21 = (ulonglong *)(*(longlong *)(lVar3 + -0x310) + uVar31 * 8);
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)puVar21 ^ CONCAT44(uVar15,uVar15);
  uVar2 = DAT_182671cc8;
  uVar23 = CONCAT44(uVar7,uVar7);
  uVar24 = CONCAT44(uVar5,uVar5) ^ *puVar21 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x110) = uVar24;
  bVar17 = (byte)uVar2 ^ (byte)DAT_182671fa4;
  uVar25 = uVar24 >> 0x20 ^ CONCAT44(uVar2,uVar2) ^ uVar25;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar25;
  uVar24 = (ulonglong)DAT_182671d68;
  *(byte *)(lVar3 - (uVar16 ^ 0x5b316b29)) = bVar17 ^ (byte)uVar25;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0xe78a5487)) =
       *(longlong *)(lVar3 + -0x870) + 4U ^ uVar24;
  *(byte *)(*(ulonglong *)(lVar3 + -0x6a8) ^ uVar24) =
       *(byte *)(lVar3 + -0xc69) ^ (byte)DAT_182671fa4 ^ bVar29;
  uVar24 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x8c58ecff)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar9 ^ 0x5b316450)) +
       ((CONCAT44(uVar20,uVar9) ^ 0xe78a522f5b316740) + uVar31 * 0xc) * 8 ^ uVar24;
  uVar7 = DAT_182671ecc;
  *(ulonglong *)(lVar3 + -0xd88) =
       -0x2cd358b3153fb49a - (CONCAT44(uVar2,uVar2) ^ *(ulonglong *)(lVar3 + -0xbd8));
  lVar4 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0xe78a533f)) =
       *(ulonglong *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x610)) ^ uVar31 ^ uVar23;
  *(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0x8c58e00b)) =
       *(uint *)(lVar3 - (uVar16 ^ 0x5b316174)) & 0x498e066a;
  puVar21 = (ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0x8c58e137));
  uVar16 = (ulonglong)DAT_182671d94;
  bVar17 = (byte)DAT_182671e40;
  *puVar21 = (uVar31 ^ *(ulonglong *)(lVar4 + -0x110)) >> (((byte)uVar20 ^ 7) & 0x3f) ^
             CONCAT44(uVar7,uVar7);
  *(byte *)(lVar4 + -0x87a) = (byte)uVar7 ^ bVar17 ^ *(byte *)(lVar4 + -0xbd8);
  pbVar18 = (byte *)((CONCAT44(uVar27,uVar9) ^ 0x8c58eaef5b316745) + *(longlong *)(lVar4 + -0x870));
  *(ulonglong *)(lVar4 + -0x690) = (ulonglong)pbVar18 ^ uVar16;
  uVar2 = DAT_182671e3c;
  *pbVar18 = *(byte *)(lVar4 - ((ulonglong)uVar20 ^ 0xe78a5a55)) ^ bVar17 ^ bVar29;
  uVar24 = CONCAT44(uVar2,uVar2);
  uVar16 = (ulonglong)DAT_182671c50;
  puVar34 = (ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0xe78a50c7));
  *puVar34 = (CONCAT44(uVar27,uVar9) ^ 0x8c58eaef5b316740) * 0x60 + *(longlong *)(lVar4 + -0x310) ^
             uVar24;
  uVar25 = CONCAT44(DAT_182671e04,DAT_182671e04);
  bVar29 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar4 + -0xd88) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar16 ^ 0x5b3165a8)) ^ uVar24) ^ uVar25 ^ uVar23;
  uVar2 = DAT_182671e18;
  uVar5 = DAT_182671c58;
  uVar16 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x5b316650)) =
       *(ulonglong *)(lVar4 + -0xda8) >> ((bVar29 ^ 0xc3) & 0x3f);
  lVar3 = DAT_182671c40;
  bVar29 = (byte)uVar2 ^ (byte)DAT_182671d88;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0x40673cd3)) ^ uVar25) >>
       (((byte)uVar5 ^ 0xcb) & 0x3f) ^ CONCAT44(uVar2,uVar2);
  *(byte *)(lVar3 + -0x652) = bVar29 ^ (byte)*puVar21;
  uVar11 = DAT_182671e24;
  uVar6 = DAT_182671c70;
  uVar7 = DAT_182671c6c;
  uVar15 = DAT_182671c54;
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c70;
  pbVar26 = (byte *)((CONCAT44(DAT_182671c48,uVar27) ^ 0x6fe9bfc88c58eae9) +
                    *(longlong *)(DAT_182671c40 + -0x870));
  pbVar18 = (byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0x40673709));
  *(ulonglong *)(DAT_182671c40 + -0xb0) = (ulonglong)pbVar26 ^ (ulonglong)DAT_182671fb4;
  uVar2 = DAT_182671c68;
  *pbVar26 = *pbVar18 ^ (byte)DAT_182671d88 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar3 + -0x610) =
       (CONCAT44(uVar7,uVar2) ^ 0x2626b9d594da5000) * 0x60 + *(longlong *)(lVar3 + -0x310) ^ uVar24;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0xb7d30556)) =
       ((ulonglong)(uVar20 >> 0x13) | (ulonglong)uVar20 << 0xd) ^ 0x409963dc5cf;
  uVar10 = DAT_182671c90;
  uVar25 = CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar16 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x101009ca)) =
       *(ulonglong *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x610)) ^ uVar25 ^ uVar23;
  lVar3 = DAT_182671c40;
  uVar24 = (*(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0x6de3b97b)) ^ uVar25) >>
           (((byte)uVar15 ^ 99) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar24;
  uVar27 = DAT_182671c5c;
  bVar29 = (byte)DAT_182671d04;
  uVar16 = (ulonglong)DAT_182671c64;
  *(longlong *)(lVar3 + -0xbd8) = -0x542f3d4bbcb7ca89 << (((byte)uVar24 ^ (byte)uVar11) & 0x3f);
  *(byte *)(lVar3 + -0x741) = (byte)uVar11 ^ bVar29 ^ *(byte *)(lVar3 + -0xd88);
  uVar24 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x5b3167d0)) =
       *(longlong *)(lVar3 - (uVar32 ^ 0x5b316f30)) + (CONCAT44(uVar27,uVar20) ^ 0x40212140e78a5228)
       ^ uVar35;
  uVar11 = DAT_182671cb0;
  uVar14 = DAT_182671c98;
  uVar2 = DAT_182671c80;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0x462ad949)) ^ uVar35) =
       bVar29 ^ (byte)DAT_182671f14 ^ *(byte *)(lVar3 + -0x741);
  uVar12 = DAT_182671ea4;
  uVar24 = CONCAT44(uVar11,uVar11);
  *puVar34 = *(longlong *)(lVar3 + -0x310) + (CONCAT44(uVar2,uVar2) ^ 0x1f13642f1f13642e) * 8 ^
             uVar24;
  uVar15 = DAT_182671c58;
  uVar25 = (ulonglong)DAT_182671c58;
  uVar16 = CONCAT44(uVar12,uVar12);
  uVar24 = *(ulonglong *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x2e8)) ^ uVar16 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xda8) = uVar24;
  uVar8 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  pbVar26 = (byte *)(DAT_182671c40 - (uVar25 ^ 0x7dffb8eb));
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (uVar24 ^ uVar16) >> (((byte)uVar7 ^ 0xd5) & 0x3f) ^ uVar31;
  uVar11 = DAT_182671dbc;
  *(byte *)(lVar3 - (uVar32 ^ 0x5b3164e1)) = (byte)DAT_182671ef0 ^ (byte)uVar14 ^ *pbVar26;
  uVar24 = (ulonglong)DAT_182671d08;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x85306bd8)) =
       (CONCAT44(DAT_182671d0c,DAT_182671d0c) ^ *(ulonglong *)(lVar3 + -0x888)) <<
       (((byte)uVar11 ^ *(byte *)(lVar3 + -0x228)) & 0x3f);
  pbVar18 = (byte *)((CONCAT44(uVar10,uVar9) ^ 0x6de3b86b5b316748) + *(longlong *)(lVar3 + -0x870));
  bVar29 = *(byte *)(lVar3 + -0x3a1) ^ (byte)uVar14 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar3 + -0x5f8) = (ulonglong)pbVar18 ^ uVar24;
  *pbVar18 = bVar29;
  uVar11 = DAT_182671d2c;
  uVar24 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar27 ^ 0x40212750)) =
       *(longlong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0x4067324b)) +
       (CONCAT44(DAT_182671c4c,DAT_182671c68) ^ 0x4bc501be94da5001) * 8 ^ uVar24;
  uVar31 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x5b316ac8)) =
       *(ulonglong *)(uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0x610)) ^ uVar31 ^ uVar23;
  lVar3 = DAT_182671c40;
  bVar17 = (byte)DAT_182671c48;
  uVar25 = (ulonglong)DAT_182671e2c;
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0xd88)) >> (((byte)DAT_182671c60 ^ 0xe2) & 0x3f) ^
       CONCAT44(uVar11,uVar11);
  bVar29 = (byte)DAT_182671d20;
  lVar4 = DAT_182671c40;
  bVar30 = (byte)uVar11 ^ (byte)DAT_182671d20;
  *(longlong *)(lVar3 - (uVar32 ^ 0x5b316568)) = -0x414dec2bfe29af29 << ((bVar17 ^ 0xdb) & 0x3f);
  *(byte *)(lVar4 + -0xd01) = bVar30 ^ *pbVar26;
  *(ulonglong *)(lVar4 + -0x888) =
       -0x46991016bfa6a3d1 - (CONCAT44(uVar2,uVar27) ^ 0x2e00875e4a0c5d70);
  uVar8 = DAT_182671c84;
  uVar24 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c7c ^ 0x8c58e367)) =
       *(longlong *)(lVar4 - ((ulonglong)DAT_182671c54 ^ 0x4067392b)) +
       (CONCAT44(uVar7,uVar15) ^ 0x2626b9d57dffb9f2) ^ uVar25;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0x462ad051)) ^ uVar25) =
       bVar29 ^ *(byte *)(lVar3 + -0xd01) ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0xb7d30326)) =
       (CONCAT44(uVar20,uVar2) ^ 0xb89693317eab375e) -
       (CONCAT44(DAT_182671c78,DAT_182671c7c) ^ 0x7b14a5287a7c0b65);
  lVar4 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  puVar21 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) + 8 + (CONCAT44(uVar9,uVar6) ^ 0x5b316740101008da) * 0x60
            );
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)puVar21 ^ CONCAT44(DAT_182671e50,DAT_182671e50);
  uVar2 = DAT_182671e78;
  uVar32 = (ulonglong)DAT_182671f98;
  uVar24 = *puVar21 ^ uVar25 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xd88) = uVar24;
  uVar31 = (uVar25 ^ uVar24) >> (((byte)DAT_182671c4c ^ 0xae) & 0x3f) ^ CONCAT44(uVar2,uVar2);
  uVar25 = CONCAT44(DAT_182671c50,DAT_182671c68);
  uVar24 = (ulonglong)DAT_182671c64;
  *(byte *)(lVar3 + -0xa61) = (byte)uVar2 ^ (byte)DAT_182671cf4 ^ (byte)uVar31;
  uVar15 = DAT_182671c48;
  pbVar18 = (byte *)((uVar25 ^ 0x5b31674094da500a) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0x180) = (ulonglong)pbVar18 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x228) = uVar31;
  *(uint *)(lVar3 + -0x76c) =
       (DAT_182671c7c ^ 0x1f13a281) >> ((byte)*(undefined4 *)(lVar3 + -0xae4) & 0x1f);
  uVar14 = DAT_182671c84 * DAT_182671c48;
  *pbVar18 = *(byte *)(lVar3 - (uVar24 ^ 0x5b316d21)) ^ (byte)DAT_182671cf4 ^ (byte)DAT_182671f14;
  uVar2 = DAT_182671d9c;
  uVar25 = (ulonglong)uVar14;
  uVar35 = CONCAT44(uVar5,uVar8) ^ 0x6fe9bfc8462ad9d8;
  plVar19 = (longlong *)(lVar4 - ((ulonglong)uVar15 ^ 0x6fe9bcd8));
  uVar24 = CONCAT44(DAT_182671edc,DAT_182671edc);
  DAT_182671c7c = uVar14;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x6fe9b9d8)) =
       *plVar19 + (uVar35 + (CONCAT44(uVar14,uVar8) ^ 0x27841888462ad9d9) * 0xc) * 8 ^ uVar24;
  uVar32 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar4 + -0x110) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x610) ^ uVar24) ^ uVar23 ^ uVar32;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x888) =
       (CONCAT44(uVar14,uVar14) ^ 0xa47a50b6ddb2a512) << (((byte)uVar8 ^ 0xd7) & 0x3f);
  puVar21 = (ulonglong *)(lVar4 - (uVar25 ^ 0x27841350));
  bVar29 = (byte)uVar2 ^ (byte)DAT_182671f18;
  *puVar21 = (*(ulonglong *)(lVar3 + -0x110) ^ uVar32) >> (((byte)uVar8 ^ 0xc1) & 0x3f) ^
             CONCAT44(uVar2,uVar2);
  uVar15 = DAT_182671c54;
  uVar27 = DAT_182671c54 << 0x10;
  *(byte *)(lVar3 - ((ulonglong)uVar14 ^ 0x278413d1)) = bVar29 ^ *(byte *)(lVar3 + -0xbd8);
  uVar6 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar28 = (uVar27 | uVar15 & 0xff00) << 8 | uVar15 >> 8 & 0xff00 | DAT_182671c54 >> 0x18;
  uVar33 = (ulonglong)uVar28;
  uVar24 = (ulonglong)DAT_182671e60;
  uVar32 = CONCAT44(DAT_182671c54,DAT_182671c54);
  DAT_182671c4c = uVar28;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(DAT_182671c54,uVar28) ^ 0x314b95851814aea4) <<
       (((byte)(DAT_182671c54 >> 0x18) ^ 0x7a) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c48 ^ 0x6fe9b250)) =
       (uVar32 ^ 0x4067315b40673150) + *(longlong *)(lVar3 + -0x870) ^ uVar24;
  lVar3 = DAT_182671c40;
  bVar29 = *(byte *)(DAT_182671c40 + -0xb59) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671f18;
  *(undefined8 *)(DAT_182671c40 + -0x228) = 0xb3aa52525f8fe9f6;
  *(byte *)(*(ulonglong *)(lVar3 + -0xd98) ^ uVar24) = bVar29;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x462ade5d)) = (uVar28 ^ 0x77f62b2d) + 0xf199a069;
  lVar4 = DAT_182671c40;
  uVar24 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x406733b3)) =
       *(longlong *)(lVar3 + -0x310) + 8U ^ uVar24;
  uVar31 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x27841998)) =
       *(ulonglong *)(uVar24 ^ *(ulonglong *)(lVar4 + -0x2e8)) ^ uVar23 ^ uVar31;
  uVar2 = DAT_182671de8;
  *puVar21 = *(longlong *)(lVar4 - (uVar33 ^ 0x5b316fc8)) + 0x62f13bc6093ae30;
  lVar3 = DAT_182671c40;
  uVar24 = (*(ulonglong *)(DAT_182671c40 + -0x110) ^ uVar31) >>
           (((byte)DAT_182671c48 ^ 0xe8) & 0x3f) ^ CONCAT44(uVar2,uVar2);
  uVar31 = (ulonglong)DAT_182671d94;
  bVar29 = (byte)uVar2 ^ (byte)uVar24 ^ (byte)DAT_182671e84;
  uVar15 = DAT_182671c7c ^ 0xbbc60a96;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar24;
  *(uint *)(lVar3 + -0x9dc) = uVar15 + 0xb9d19802;
  *(byte *)(lVar3 + -0x7d1) = bVar29;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x278419d8)) =
       (uVar32 ^ 0x4067315b40673157) + *(longlong *)(lVar3 + -0x870) ^ uVar31;
  uVar9 = DAT_182671c84;
  bVar29 = (byte)DAT_182671f14 ^ (byte)DAT_182671e84;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x462adbf1)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x5b316ae8)) ^ uVar16) >> ((byte)uVar35 & 0x3f);
  *(byte *)(*(ulonglong *)(lVar3 + -0x150) ^ uVar31) = bVar29 ^ *(byte *)(lVar3 + -0x7d1);
  uVar16 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x5b316150)) =
       *(longlong *)(lVar3 - (uVar33 ^ 0x5b316450)) + 8U ^ uVar16;
  uVar2 = DAT_182671d3c;
  uVar11 = DAT_182671cf8;
  uVar24 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x610) ^ uVar16) ^ uVar23;
  uVar16 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar24 ^ CONCAT44(DAT_182671cf8,DAT_182671cf8);
  lVar3 = DAT_182671c40;
  uVar16 = uVar24 >> (((byte)uVar9 ^ 0xf1) & 0x3f) ^ uVar16;
  uVar24 = (ulonglong)DAT_182671e44;
  *(byte *)(DAT_182671c40 + -0xd89) = (byte)uVar2 ^ (byte)DAT_182671d7c ^ (byte)uVar16;
  uVar15 = DAT_182671c48;
  *(ulonglong *)(lVar3 + -0x888) = uVar16;
  lVar4 = DAT_182671c40;
  plVar22 = (longlong *)(lVar3 - ((ulonglong)uVar15 ^ 0x6fe9b7b8));
  pbVar18 = (byte *)((CONCAT44(uVar6,uVar14) ^ 0x4067315b27841885) + *plVar22);
  *(ulonglong *)(lVar3 + -0x4d8) = (ulonglong)pbVar18 ^ uVar24;
  uVar27 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar24 = (ulonglong)DAT_182671c48;
  *pbVar18 = *(byte *)(lVar4 - ((ulonglong)DAT_182671c54 ^ 0x40673cd2)) ^ (byte)DAT_182671f14 ^
             (byte)DAT_182671d7c;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c54 ^ 0x4067304b)) =
       (CONCAT44(uVar6,uVar15) ^ 0x1c63083f09476e90) << (((byte)uVar27 ^ 0xe4) & 0x3f);
  uVar15 = DAT_182671ce8;
  lVar3 = DAT_182671c40;
  puVar21 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 + -0x310) +
            ((CONCAT44(uVar28,uVar9) ^ 0x5b316740462ad9d8) +
            (CONCAT44(uVar14,uVar14) ^ 0x2784188827841888) * 0xc) * 8);
  uVar16 = (ulonglong)DAT_182671ce8;
  uVar2 = *(undefined4 *)(DAT_182671c40 + -0x784);
  *(ulonglong *)(DAT_182671c40 + -0x2e8) =
       (ulonglong)puVar21 ^ CONCAT44(DAT_182671ea8,DAT_182671ea8);
  uVar7 = DAT_182671dac;
  uVar32 = CONCAT44(uVar15,uVar15) ^ *puVar21 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xd88) = uVar32;
  uVar16 = (uVar32 >> 0x20 ^ uVar16) >> 0x10 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0xda8) = uVar16;
  bVar29 = (byte)uVar7 ^ (byte)uVar16 ^ (byte)DAT_182671df0;
  *(byte *)(lVar3 + -0xb32) = bVar29;
  uVar12 = DAT_182671d04;
  lVar4 = DAT_182671c40;
  bVar29 = bVar29 ^ (byte)DAT_182671f14 ^ (byte)DAT_182671df0;
  *(int *)(lVar3 + -0x94) = *(int *)(lVar3 + -0x9dc) << ((byte)uVar2 & 0x1f);
  uVar25 = (ulonglong)DAT_182671c54;
  pbVar18 = (byte *)((CONCAT44(uVar14,DAT_182671c54) ^ 0x2784188840673155) +
                    *(longlong *)(DAT_182671c40 + -0x870));
  *(ulonglong *)(DAT_182671c40 + -0x490) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182671e40;
  uVar2 = DAT_182671cc0;
  *pbVar18 = bVar29;
  uVar7 = DAT_182671cd4;
  puVar21 = (ulonglong *)(*(longlong *)(lVar4 + -0x310) + 8);
  *(ulonglong *)(lVar4 + -0x610) = (ulonglong)puVar21 ^ CONCAT44(uVar2,uVar2);
  uVar16 = (ulonglong)DAT_182671dd4;
  uVar32 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x228) = *puVar21 ^ uVar23 ^ uVar32;
  *(uint *)(lVar4 + -0x94c) = *(uint *)(lVar4 + -0x5d4) | 0x504916c8;
  bVar29 = (byte)uVar12 ^ (byte)DAT_182671ce0;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c88 ^ 0x85306888)) =
       (*(ulonglong *)(lVar4 + -0x228) ^ uVar32) >> (((byte)uVar27 ^ 0xf0) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  *(byte *)(lVar4 - ((ulonglong)uVar28 ^ 0x5b316dd5)) = bVar29 ^ *(byte *)(lVar4 + -0x888);
  *(int *)(lVar4 + -0x444) =
       *(int *)(lVar4 - (uVar33 ^ 0x5b316180)) << ((byte)*(undefined4 *)(lVar4 + -0x58c) & 0x1f);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x6fe9ba50)) =
       (CONCAT44(uVar28,uVar14) ^ 0x5b31674027841887) + *plVar22 ^ uVar16;
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar5,uVar8) ^ 0xd0eb38a0182dde42) >>
       (((byte)uVar11 ^ *(byte *)(lVar4 + -0xbd8)) & 0x3f);
  uVar2 = DAT_182671f84;
  *(byte *)(*(ulonglong *)(lVar4 + -0x598) ^ uVar16) =
       *(byte *)(lVar4 - (uVar25 ^ 0x40673bce)) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671ce0;
  uVar16 = CONCAT44(DAT_182671c64,DAT_182671c84);
  *(ulonglong *)(lVar4 + -0x2e8) =
       *plVar19 + (CONCAT44(uVar10,uVar14) ^ 0x6de3b86b2784188a) * 8 ^ CONCAT44(uVar2,uVar2);
  *(ulonglong *)(lVar4 + -0xda8) =
       uVar16 ^ 0x2ea6ad4c3a473481 | *(ulonglong *)(lVar4 + -0x228) ^ uVar32;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar20;
  return;
}



############ FUN_ 180f77430 size=5327 ############

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

void FUN_180f77430(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  
  uVar19 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar21 = DAT_182671db4 & 3;
  DAT_182671c80 = DAT_182671c84 | DAT_182671c74;
  DAT_182671c60 = DAT_182671c50 | DAT_182671c64;
  DAT_182671c8c = DAT_182671c7c << 0x10 | DAT_182671c7c >> 0x10;
  if (uVar21 < 2) {
    uVar17 = DAT_182671e6c;
    if (uVar21 == 0) {
      uVar17 = DAT_182671db4;
    }
  }
  else {
    uVar17 = DAT_182671f68;
    if (uVar21 < 3) {
      uVar17 = DAT_182671fa4;
    }
  }
  uVar32 = DAT_182671d0c ^ _DAT_182671cf0;
  uVar39 = DAT_182671d4c - DAT_182671d08;
  uVar14 = *(uint *)(&DAT_182613218 + DAT_1826721fc) ^ DAT_182671c8c;
  uVar15 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c64 ^ 0x412d413d) + (longlong)DAT_1826721fc) ^
           DAT_182671c7c;
  uVar21 = DAT_182671d08 & 0xff;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xa50);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x7e8);
  DAT_182671d08 = ((DAT_182671d08 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar51 = (ulonglong)DAT_182671d08;
  uVar30 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar29 = CONCAT44(DAT_182671d08,DAT_182671d08);
  uVar34 = CONCAT44(DAT_182671efc,DAT_182671efc) ^ *puVar2 | *puVar1 ^ uVar30;
  uVar21 = uVar39 & 0xff;
  DAT_182671cc4 = ((uVar39 * 0x100 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar41 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  uVar21 = DAT_182671d4c & 0xff;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (CONCAT44(DAT_182671d38,DAT_182671d38) ^ *(ulonglong *)(DAT_182671c40 + -0x680)) - uVar34 ^
       uVar41;
  DAT_182671d4c = ((DAT_182671d4c << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar52 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  uVar21 = _DAT_182671cf0 & 0xff;
  uVar34 = uVar52 ^ uVar34 ^ uVar29 ^ uVar29 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0xa60);
  _DAT_182671cf0 = ((_DAT_182671cf0 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  *(ulonglong *)(lVar3 + -0xb08) = uVar34;
  uVar10 = DAT_182671c84;
  uVar9 = DAT_182671c80;
  uVar21 = DAT_182671c60;
  uVar39 = DAT_182671c50;
  uVar38 = (ulonglong)DAT_182671c80;
  uVar35 = CONCAT44(DAT_182671c60,DAT_182671c84);
  uVar48 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  bVar13 = (byte)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xfff7f4af)) =
       (uVar52 ^ uVar34) >> ((bVar13 ^ 0x8a) & 0x3f) ^ uVar48;
  uVar16 = DAT_182671d0c & 0xff;
  DAT_182671d0c = ((DAT_182671d0c << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar42 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar34 = (uVar52 ^ *(ulonglong *)(DAT_182671c40 + -0xb08)) << 0x27;
  *puVar2 = uVar34 ^ uVar42;
  uVar6 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c74;
  uVar16 = uVar32 & 0xff;
  DAT_182671ef0 = ((uVar32 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar24 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar34 = uVar34 | uVar48 ^ *(ulonglong *)(DAT_182671c40 + -0xb18);
  *puVar1 = uVar34 ^ uVar24;
  uVar16 = uVar17 & 0xff;
  DAT_182671d8c = ((uVar17 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar25 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar30 = (uVar30 ^ *(ulonglong *)(lVar3 + -0xa60)) - (CONCAT44(uVar39,uVar6) ^ 0x82d47e7ee586d42d)
  ;
  uVar17 = DAT_182671db4 & 0xff;
  *(ulonglong *)(lVar3 + -0x680) = uVar30 ^ uVar25;
  DAT_182671db4 = ((DAT_182671db4 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar44 = CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar18 = DAT_182671f68 & 0xff;
  uVar22 = DAT_182671f68 << 8;
  *(ulonglong *)(lVar3 + -0x828) = uVar30 - uVar34 ^ uVar44;
  lVar3 = DAT_182671c40;
  uVar23 = ((uVar22 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar45 = CONCAT44(uVar23,uVar23);
  DAT_182671f68 = uVar23;
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar19 ^ 0x412d4b7d)) ^ uVar24) -
       (CONCAT44(uVar10,uVar39) ^ 0x29788ad0b4c42af1) ^ uVar45;
  uVar5 = DAT_182671dfc;
  *puVar2 = (uVar35 ^ 0x207171e8f4bba6e2) + 0x4f5bcaec5f4edea0;
  uVar11 = DAT_182671f7c;
  uVar17 = DAT_182671c8c;
  uVar19 = DAT_182671fa4 & 0xff;
  DAT_182671fa4 = ((DAT_182671fa4 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar26 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar3 + -0xb18) =
       CONCAT44(uVar5,uVar5) ^ uVar26 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x760) ^
       *(ulonglong *)(lVar3 + -0x5e8);
  *(uint *)(lVar3 - ((ulonglong)uVar39 ^ 0x843fe90b)) =
       *(int *)(lVar3 + -0x784) - (DAT_182671c7c ^ 0xcab468ab);
  uVar19 = DAT_182671f7c + DAT_182671d00;
  uVar16 = DAT_182671d00 & 0xff;
  DAT_182671d00 = ((DAT_182671d00 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar50 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar3 + -0xa60) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xb18)) >> (((byte)uVar17 ^ 0x31) & 0x3f) ^ uVar50;
  uVar8 = DAT_182671c7c;
  lVar3 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671c7c;
  bVar12 = (byte)uVar21;
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x8104ed2)) =
       (CONCAT44(uVar21,uVar9) ^ 0xccdc3fd18ba3f2f) >> ((bVar12 ^ 0x55) & 0x3f);
  uVar7 = DAT_182671c78;
  uVar16 = DAT_182671c64;
  uVar21 = uVar19 & 0xff;
  DAT_182671e44 = ((uVar19 * 0x100 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar36 = CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar30 = (ulonglong)DAT_182671c78;
  *puVar1 = (uVar26 ^ *(ulonglong *)(lVar3 + -0xb18)) << (((byte)DAT_182671c50 ^ 0x78) & 0x3f) ^
            uVar36;
  uVar34 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x156d87fc)) = CONCAT44(uVar16,uVar6) ^ 0x225589ad8eea7779;
  uVar19 = DAT_182671f7c & 0xff;
  DAT_182671f7c = ((DAT_182671f7c << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar27 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  puVar33 = (ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x412d44c5));
  *puVar33 = (*(ulonglong *)(lVar3 - (uVar34 ^ 0x48520240)) ^ uVar36 |
             uVar50 ^ *(ulonglong *)(lVar3 + -0xa60)) ^ uVar27;
  uVar19 = DAT_182671e6c & 0xff;
  *(ulonglong *)(lVar3 + -0x680) =
       (CONCAT44(uVar39,uVar6) ^ 0x9b20f513baf85d68) << ((bVar13 ^ 0x82) & 0x3f);
  DAT_182671e6c = ((DAT_182671e6c << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar37 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  uVar34 = (uVar41 ^ *(ulonglong *)(lVar3 + -0x760)) - (CONCAT44(uVar6,uVar7) ^ 0x505de49cc64b1ad8);
  uVar19 = DAT_182671d04 & 0xff;
  *(ulonglong *)(lVar3 + -0xb18) = uVar34 ^ uVar37;
  lVar3 = DAT_182671c40;
  DAT_182671d04 = ((DAT_182671d04 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar46 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *puVar2 = uVar34 - (uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) ^ uVar46;
  uVar19 = DAT_182671c48;
  uVar34 = (CONCAT44(uVar8,uVar10) ^ 0xd1942451b13c8d7a) + (uVar27 ^ *puVar33) ^ uVar27;
  *(ulonglong *)(lVar3 + -0xa60) = uVar34;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0x56ddc8ff)) =
       uVar34 ^ *(ulonglong *)(lVar3 + -0x828) ^ uVar27 ^ uVar50 ^ uVar44;
  uVar30 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xfff7f5e7)) ^ uVar50) >>
           (((byte)DAT_182671c60 ^ 0x6a) & 0x3f);
  bVar13 = (byte)DAT_182671c64;
  *(ulonglong *)(lVar3 + -0x680) = uVar30 ^ uVar50;
  uVar34 = (*puVar1 ^ uVar50) << ((bVar13 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar3 + -0x760) = uVar34 ^ uVar27;
  uVar32 = DAT_182671c6c;
  lVar4 = DAT_182671c40;
  uVar21 = DAT_182671c7c ^ 0x98d277c;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x810434a)) = (uVar34 | uVar30) ^ uVar29;
  uVar34 = *(ulonglong *)(lVar4 + -0x828);
  *(uint *)(lVar3 + -0x76c) = *(int *)(lVar3 + -0x6c0) - uVar21;
  uVar21 = DAT_182671c4c;
  puVar28 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671c4c ^ 0x56ddc747));
  *puVar28 = (uVar34 ^ uVar44) - (uVar29 ^ *(ulonglong *)(lVar4 + -0xb18)) ^ uVar42;
  uVar34 = uVar46 ^ uVar36 ^ uVar45 ^ *puVar2 ^ *(ulonglong *)(lVar4 + -0xb08);
  *(ulonglong *)(lVar4 + -0xa60) = uVar34;
  uVar17 = DAT_182671c50;
  uVar35 = (uVar34 ^ uVar36) >> (((byte)uVar32 ^ 0x72) & 0x3f);
  *puVar1 = uVar35 ^ uVar41;
  lVar3 = DAT_182671c40;
  uVar34 = (uVar36 ^ uVar34) << (((byte)uVar17 ^ 0x7c) & 0x3f);
  uVar30 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar34 ^ uVar46;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x2f37e3f3)) = (uVar35 | uVar34) ^ uVar44;
  uVar40 = DAT_182671d10 | DAT_182671cac;
  *(ulonglong *)(DAT_182671c40 + -0x828) =
       (uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0x760)) << (((byte)uVar7 ^ 3) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar17 = DAT_182671cac & 0xff;
  DAT_182671cac = ((DAT_182671cac << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar49 = (ulonglong)DAT_182671cac;
  uVar35 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar34 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       (uVar46 ^ *puVar2) - (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xfff7f8d7)) ^ uVar44) ^
       uVar35;
  uVar17 = uVar40 & 0xff;
  DAT_182671e1c = ((uVar40 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar53 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  bVar13 = (byte)DAT_182671c8c;
  uVar17 = DAT_182671d10 & 0xff;
  uVar34 = *(ulonglong *)(lVar3 - (uVar34 ^ 0xc53fea87)) ^ uVar53 ^ uVar44 ^ uVar42 ^
           *(ulonglong *)(lVar3 + -0x760);
  *(ulonglong *)(lVar3 + -0xa60) = uVar34;
  lVar3 = DAT_182671c40;
  DAT_182671d10 = ((DAT_182671d10 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar38 = (ulonglong)DAT_182671d10;
  uVar55 = CONCAT44(DAT_182671d10,DAT_182671d10);
  *puVar1 = (uVar34 ^ uVar53) >> ((bVar13 ^ 7) & 0x3f) ^ uVar55;
  puVar47 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x2f37e213));
  *puVar47 = CONCAT44(uVar6,uVar21) ^ 0x7a7918d10f12ce16;
  uVar56 = CONCAT44(uVar9,DAT_182671c50);
  uVar34 = (uVar53 ^ *(ulonglong *)(lVar3 + -0xa60)) << (((byte)DAT_182671c50 ^ 0x4e) & 0x3f);
  *(ulonglong *)(lVar3 + -0x828) = uVar34 ^ uVar53;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xddf1384c)) = (uVar34 | uVar55 ^ *puVar1) ^ uVar55;
  uVar30 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 + -0x760) = (uVar42 ^ *puVar33) - (uVar55 ^ *puVar2) ^ uVar53;
  lVar3 = DAT_182671c40;
  uVar34 = uVar55 ^ uVar35 ^ uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0xb18) ^
           *(ulonglong *)(DAT_182671c40 + -0xb08);
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar34;
  lVar4 = DAT_182671c40;
  puVar33 = (ulonglong *)(lVar3 - (uVar30 ^ 0x2f37eef3));
  *puVar33 = (uVar34 >> 0x20 ^ uVar38) >> 8 ^ uVar53;
  uVar34 = (uVar55 ^ *(ulonglong *)(lVar4 + -0x680)) << (((byte)uVar19 ^ 0xb7) & 0x3f);
  *puVar1 = uVar34 ^ uVar26;
  uVar19 = DAT_182671c60;
  lVar3 = DAT_182671c40;
  uVar34 = uVar53 ^ *(ulonglong *)(DAT_182671c40 + -0xa60) | uVar34;
  uVar30 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar34 ^ uVar25;
  lVar4 = DAT_182671c40;
  puVar54 = (ulonglong *)(lVar3 - (uVar30 ^ 0xc53fe467));
  *(ulonglong *)(DAT_182671c40 + -0xb18) = (uVar35 ^ *puVar54) - uVar34 ^ uVar52;
  lVar3 = DAT_182671c40;
  uVar34 = *(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0x788fabf)) ^ uVar53 ^ uVar25 ^
           *(ulonglong *)(DAT_182671c40 + -0x760) ^ uVar29;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar34;
  *puVar1 = (uVar34 >> 0x20 ^ uVar51) >> 0x14 ^ uVar42;
  uVar17 = DAT_182671c88;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0x7dfff58f)) =
       uVar53 ^ *(ulonglong *)(lVar3 + -0x828) ^ 0x542329c13e49a3e0;
  lVar3 = DAT_182671c40;
  uVar34 = (uVar29 ^ *puVar47) << 0xc;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar34 ^ uVar53;
  lVar4 = DAT_182671c40;
  *puVar28 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0xc53fe53f)) ^ uVar42 | uVar34) ^ uVar25;
  uVar5 = DAT_182671c70;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x810407a)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x8104f32)) ^ uVar53) -
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0x8104dba)) ^ uVar25) ^ uVar26;
  uVar19 = DAT_182671c60;
  uVar30 = uVar55 ^ uVar35 ^ uVar52 ^ *puVar2 ^ *(ulonglong *)(lVar3 + -0xb18);
  uVar34 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar3 + -0xa60) = uVar30;
  *(ulonglong *)(lVar3 + -0x680) = (uVar30 >> 0x20 ^ uVar49) >> 0x19 ^ uVar37;
  uVar32 = DAT_182671c68;
  uVar51 = (ulonglong)DAT_182671c68;
  *puVar1 = *(ulonglong *)(lVar3 - (uVar34 ^ 0x843feb8f)) ^ CONCAT44(uVar5,uVar19) ^ uVar25 ^
            0x78d1fd1ea417ea48;
  uVar19 = DAT_182671c48;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0x412d4a25)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x56ddc8cf)) ^ uVar35) << ((byte)uVar32 & 0x3f)
       ^ uVar42;
  puVar28 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x48520e90));
  uVar34 = uVar37 ^ *puVar28 | uVar42 ^ *(ulonglong *)(lVar4 + -0xb08);
  uVar30 = uVar34 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x760) = uVar30;
  uVar30 = *(ulonglong *)(lVar4 + -0x828) ^ uVar36 ^ uVar26 ^ uVar44 ^ uVar30;
  *puVar2 = (uVar52 ^ *(ulonglong *)(lVar4 + -0xb18)) - uVar34 ^ uVar50;
  bVar13 = (byte)DAT_182671c4c;
  *puVar1 = uVar30;
  lVar3 = DAT_182671c40;
  uVar34 = (uVar44 ^ uVar30) >> ((bVar13 ^ 0xa1) & 0x3f);
  uVar30 = (uVar30 ^ uVar44) << 0x32;
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar34 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x680) = uVar30 ^ uVar35;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = (uVar30 | uVar34) ^ uVar55;
  puVar47 = (ulonglong *)(lVar3 - (uVar43 ^ 0xddf134bc));
  *puVar47 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c90 ^ 0x48267d56)) ^ uVar26) -
             (CONCAT44(uVar9,uVar17) ^ 0x289b0758bec9fa97) ^ uVar44;
  uVar17 = DAT_182671c5c;
  uVar24 = (ulonglong)DAT_182671c5c;
  uVar34 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar3 + -0x760) =
       (uVar56 ^ 0x7302c9b313421fdc) >> (((byte)DAT_182671c5c ^ 0xb2) & 0x3f);
  *puVar1 = (uVar44 ^ *(ulonglong *)(lVar3 + -0xb18)) -
            (*(ulonglong *)(lVar3 - (uVar34 ^ 0x788f45f)) ^ uVar55) ^ uVar48;
  *puVar28 = **(ulonglong **)(lVar3 + 0x10);
  *puVar33 = (uVar55 ^ *(ulonglong *)(lVar3 + -0xb08)) -
             (CONCAT44(uVar10,uVar32) ^ 0xac82a01bdc0ce88d) ^ uVar25;
  *(ulonglong *)(lVar3 + -0x828) =
       CONCAT44(uVar7,uVar6) ^ uVar55 ^ *(ulonglong *)(lVar3 + -0xb08) ^ 0xef6b021faf516283;
  uVar34 = *(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x311609ef)) ^ uVar50 ^ uVar45 ^ uVar25 ^
           *(ulonglong *)(lVar3 + -0x5e8);
  *(ulonglong *)(lVar3 + -0x760) = uVar34;
  uVar21 = DAT_182671c48;
  uVar30 = ((ulonglong)(uVar22 & 0xffff | uVar18) | (ulonglong)uVar23 << 0x10) ^ uVar34 >> 0x10;
  *(ulonglong *)(lVar3 + -0xb18) = uVar30 ^ uVar50;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (uVar45 ^ uVar34) << (((byte)uVar21 ^ 0x9f) & 0x3f) ^ uVar29;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       CONCAT44(uVar10,uVar8) ^ 0x9234bbdad8aa9f5a | CONCAT44(uVar39,uVar17) ^ 0xeda7e795aee01c8;
  uVar30 = *(ulonglong *)(lVar3 - (uVar51 ^ 0x31160887)) ^ uVar29 | uVar30;
  *(ulonglong *)(lVar3 + -0x828) = uVar30 ^ uVar46;
  uVar34 = (uVar50 ^ *puVar2) - (CONCAT44(uVar5,uVar6) ^ 0xec70424ded0afb32);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar34 ^ uVar42;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar34 - uVar30 ^ uVar27;
  *puVar54 = (CONCAT44(uVar16,uVar8) ^ 0x4071270ce2e0d5b8) + uVar30 ^ uVar44;
  lVar3 = DAT_182671c40;
  uVar34 = *puVar1 ^ uVar44 ^ uVar48 ^ uVar52 ^ *(ulonglong *)(DAT_182671c40 + -0xb08);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar34;
  uVar30 = (uVar52 ^ *(ulonglong *)(lVar3 + -0xb18)) >> (((byte)DAT_182671c90 ^ 0x5e) & 0x3f);
  bVar20 = (byte)DAT_182671c6c;
  *puVar2 = uVar30 ^ uVar44;
  bVar13 = (byte)DAT_182671c50;
  uVar51 = (uVar52 ^ uVar34) << ((bVar20 ^ 0x77) & 0x3f);
  puVar28 = (ulonglong *)(DAT_182671c40 + -0x5e8);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar51 ^ uVar48;
  lVar3 = DAT_182671c40;
  uVar51 = uVar51 | uVar30;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = (uVar42 ^ *puVar28) << ((bVar13 ^ 0x77) & 0x3f);
  *(ulonglong *)(lVar3 + -0x680) = uVar51 ^ uVar36;
  uVar34 = *(ulonglong *)(lVar3 - (uVar31 ^ 0x8104202));
  *(undefined8 *)(lVar3 + -0x5e8) = 0x74d8e77b22fa3;
  *(ulonglong *)(lVar3 + -0xb18) = (uVar34 ^ uVar48) - uVar51 ^ uVar41;
  uVar30 = *puVar33 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x760);
  *(ulonglong *)(lVar3 + -0xb08) = uVar30;
  uVar51 = (uVar25 ^ uVar30) >> (((byte)DAT_182671c90 ^ 0x5e) & 0x3f);
  uVar34 = *(ulonglong *)(lVar3 + -0x760);
  *puVar2 = uVar51 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x828) =
       (CONCAT44(uVar19,DAT_182671c8c) ^ 0xd81d28c62eaa2c7a) -
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x5e5855a1)) ^ uVar41);
  uVar19 = DAT_182671c74;
  uVar30 = (uVar25 ^ uVar30) << ((bVar12 ^ 0x4f) & 0x3f);
  uVar21 = DAT_182671c74 << 0x10 | DAT_182671c74 >> 0x10;
  uVar51 = uVar51 | uVar30;
  DAT_182671c90 = uVar21;
  *puVar1 = uVar30 ^ uVar53;
  uVar34 = (uVar27 ^ uVar34) - uVar51;
  *(ulonglong *)(lVar3 + -0x5e8) = uVar51 ^ uVar27;
  *(ulonglong *)(lVar3 + -0xa60) = uVar34 ^ uVar53;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x3fa4d5d9)) =
       uVar34 << ((*(byte *)(lVar3 - (uVar43 ^ 0xddf13a4c)) ^ (byte)uVar11) & 0x3f);
  uVar34 = uVar27 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x5e8) ^ uVar29 ^ *puVar47;
  *(ulonglong *)(lVar3 + -0xb08) = uVar34;
  *puVar2 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x3fa4d6f9)) ^ uVar29) >>
            (((byte)(uVar19 >> 0x10) ^ 0xcb) & 0x3f) ^ uVar46;
  *puVar1 = (uVar29 ^ uVar34) << 6 ^ uVar35;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar14;
  return;
}



############ FUN_ 180f4cef0 size=3936 ############

void FUN_180f4cef0(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  byte bVar7;
  ulonglong uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint *puVar12;
  ulonglong uVar13;
  uint uVar14;
  uint uVar15;
  byte *pbVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  
  uVar21 = DAT_182671ef8;
  uVar10 = DAT_182671df8;
  uVar24 = DAT_182671c60;
  uVar11 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c60;
  uVar18 = ~DAT_182671c60;
  uVar1 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c60 ^ 0x10086112) + (longlong)DAT_182672178);
  uVar2 = *(uint *)(&DAT_182613220 + DAT_182672178);
  uVar8 = (ulonglong)DAT_182671c60;
  uVar27 = (ulonglong)DAT_182671c54;
  uVar22 = *(uint *)(DAT_182671c40 + -0x670) ^ DAT_182671d34;
  DAT_182671c94 = uVar18;
  *(undefined8 *)(DAT_182671c40 + -0x760) = 0x9b3d17f77cf7e7f7;
  uVar23 = uVar22 + (uVar18 ^ 0x73b58cfb) ^ DAT_182671d1c;
  bVar9 = (byte)uVar18 ^ 0xf6;
  uVar22 = (uint)(*(byte *)(lVar3 - (uVar8 ^ 0x100860d9)) ^ (byte)DAT_182671f18);
  *(uint *)(lVar3 + -0x444) = uVar23;
  uVar23 = uVar23 ^ DAT_182671d1c;
  *(uint *)(lVar3 + -0x684) = uVar22 ^ uVar10;
  uVar22 = uVar22 << (((byte)uVar24 ^ 0xb) & 0x1f) ^ DAT_182671db4;
  *(uint *)(lVar3 + -0x634) = uVar22;
  *(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x10086676)) =
       uVar23 - (uVar22 ^ DAT_182671db4) ^ DAT_182671db8;
  *(uint *)(lVar3 - (uVar26 ^ 0x100868c6)) =
       (*(uint *)(lVar3 - (uVar27 ^ 0x81e281d4)) ^ DAT_182671f88) *
       (*(uint *)(lVar3 + -0x76c) ^ DAT_182671db8) ^ DAT_182671dfc;
  uVar22 = *(uint *)(lVar3 + -0x9dc) ^ DAT_182671dfc;
  uVar10 = (uVar10 ^ *(uint *)(lVar3 + -0x684)) * 0xd ^ DAT_182671cd4;
  *(uint *)(lVar3 + -0x94c) = uVar10;
  uVar22 = uVar22 + (uVar10 ^ DAT_182671cd4);
  *(uint *)(lVar3 + -0x784) = uVar22 ^ uVar21;
  *(uint *)(lVar3 + -0x4ac) = uVar22 * 0x2000 ^ DAT_182671cac;
  *(uint *)(lVar3 + -0xa94) =
       (*(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x1008669e)) ^ uVar21) >> (bVar9 & 0x1f) ^
       DAT_182671cc8;
  uVar21 = DAT_182671c58;
  *(undefined8 *)(lVar3 + -0xf0) = 0x9dbb200000000000;
  bVar7 = (byte)DAT_182671ec4;
  uVar15 = DAT_182671e30;
  uVar23 = DAT_182671c64;
  uVar13 = (ulonglong)DAT_182671e60;
  uVar8 = (ulonglong)uVar18;
  *(uint *)(lVar3 + -0x6c0) =
       (*(uint *)(lVar3 - ((ulonglong)uVar11 ^ 0x81e28ecc)) ^ DAT_182671cc8 |
       *(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x100865b6)) ^ DAT_182671cac) ^ DAT_182671e38;
  uVar10 = (*(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0xeff79b69)) ^ DAT_182671f88) +
           (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671f04;
  *(uint *)(lVar3 + -0x54) = uVar10;
  *(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x7d41c284)) = uVar10 ^ DAT_182671f48 ^ DAT_182671f04;
  uVar10 = *(uint *)(lVar3 + -0x6c0) ^ DAT_182671d14 ^ DAT_182671e38;
  *(uint *)(lVar3 + -0xae4) = uVar10;
  uVar10 = uVar10 ^ DAT_182671e40 ^ DAT_182671d14;
  *(uint *)(lVar3 + -0x644) = *(uint *)(lVar3 + -0x94) ^ uVar15 ^ DAT_182671f48;
  *(uint *)(lVar3 + -0x61c) = uVar10;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x7d41c360)) =
       (CONCAT44(uVar21,uVar11) ^ 0x7d41c21081e28458) * 0x20 +
       (CONCAT44(uVar24,uVar11) ^ 0x1008611a81e28440) + *(longlong *)(lVar3 + -0x9a8) ^ uVar13;
  uVar6 = DAT_182671ee0;
  uVar10 = DAT_182671d58;
  lVar3 = DAT_182671c40;
  uVar17 = (ulonglong)DAT_182671d58;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar23 ^ 0xfca3478b)) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x170) ^ uVar13) ^ bVar7 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar3 + -0x1c8) = *(uint *)(*(ulonglong *)(lVar3 + -0x4a8) ^ uVar17) ^ DAT_182671f14;
  *(uint *)(lVar3 + -0x670) = (*(byte *)(lVar3 + -0x1c3) ^ bVar7) ^ uVar6;
  uVar22 = DAT_182671c58;
  puVar12 = (uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xfca34054));
  uVar13 = (ulonglong)DAT_182671c58;
  *(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xfca3420c)) =
       (*puVar12 ^ DAT_182671e40) + (uVar18 ^ 0x73b58cfb) ^ DAT_182671cbc;
  uVar14 = *(uint *)(lVar3 + -0x444) ^ DAT_182671cbc;
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 - (uVar13 ^ 0x7d41c460)) ^ uVar6) << (((byte)uVar11 ^ 0x49) & 0x1f) ^
       DAT_182671dbc;
  uVar14 = uVar14 - (*(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xfca3407c)) ^ DAT_182671dbc);
  *(uint *)(lVar3 + -0x76c) = uVar14 ^ uVar10;
  *(ulonglong *)(lVar3 + -0xc38) = *(ulonglong *)(lVar3 - (uVar8 ^ 0xeff79a5d)) >> 0x20;
  uVar20 = (*(uint *)(lVar3 + -0x644) ^ uVar15) * uVar14 ^ DAT_182671df4;
  uVar25 = (*(uint *)(lVar3 + -0x670) ^ uVar6) * (uVar23 ^ 0xfca34650) ^ DAT_182671eec;
  *(uint *)(lVar3 + -0x684) = uVar20;
  uVar14 = DAT_182671edc;
  uVar10 = DAT_182671e88;
  uVar6 = DAT_182671c74;
  uVar20 = uVar20 ^ DAT_182671df4;
  uVar19 = (ulonglong)DAT_182671c74;
  *(uint *)(lVar3 + -0x9dc) = uVar25;
  uVar20 = (uVar25 ^ DAT_182671eec) + uVar20;
  *(uint *)(lVar3 + -0x94c) = uVar20 ^ uVar10;
  uVar10 = uVar20 << (((byte)uVar11 ^ 0x55) & 0x1f) ^ DAT_182671d5c;
  uVar20 = uVar20 >> (bVar9 & 0x1f) ^ DAT_182671f3c;
  uVar13 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar3 + -0x4ac) = uVar20;
  uVar20 = uVar20 ^ DAT_182671f3c;
  *(uint *)(lVar3 + -0x784) = uVar10;
  *(uint *)(lVar3 - (uVar13 ^ 0xc88bf96)) = (uVar20 | uVar10 ^ DAT_182671d5c) ^ DAT_182671c9c;
  uVar5 = DAT_182671da0;
  uVar10 = DAT_182671c4c;
  *(uint *)(lVar3 + -0x58c) =
       (*(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0xa235a9c4)) ^ uVar15) +
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671ddc;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xdff3f4c6)) =
       *(ulonglong *)(CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar3 + -0x610)) ^
       CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar15 = *(uint *)(lVar3 + -0xa94) ^ DAT_182671d9c ^ DAT_182671c9c;
  *(uint *)(lVar3 + -0x54) = *(uint *)(lVar3 + -0x58c) ^ uVar14 ^ DAT_182671ddc;
  *(uint *)(lVar3 + -0x6c0) = uVar15;
  uVar10 = *(uint *)(lVar3 - (uVar26 ^ 0x1008614e)) ^ uVar14 ^ DAT_182671e0c;
  *(uint *)(lVar3 + -0xae4) = uVar15 ^ DAT_182671ce0 ^ DAT_182671d9c;
  *(uint *)(lVar3 + -0x94) = uVar10;
  uVar15 = DAT_182671e0c;
  bVar7 = (byte)DAT_182671d3c;
  uVar17 = (ulonglong)DAT_182671c8c;
  pbVar16 = (byte *)((CONCAT44(uVar23,uVar11) ^ 0xfca3464881e2845b) +
                     (CONCAT44(uVar24,DAT_182671c8c) ^ 0x1008611a7de1ca18) * 0x20 +
                    *(longlong *)(lVar3 + -0x9a8));
  *(ulonglong *)(lVar3 + -0xbc0) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671d4c;
  uVar10 = DAT_182671f70;
  uVar24 = DAT_182671c7c;
  uVar13 = (ulonglong)DAT_182671c7c;
  *(byte *)(lVar3 - ((ulonglong)uVar22 ^ 0x7d41c3d3)) = *pbVar16 ^ bVar7 ^ (byte)uVar15;
  lVar4 = DAT_182671c40;
  pbVar16 = (byte *)(lVar3 - (uVar13 ^ 0x3b450f51));
  *(uint *)(DAT_182671c40 - (uVar17 ^ 0x7de1cbd0)) = (*pbVar16 ^ bVar7) ^ uVar10;
  *(longlong *)(lVar4 + -0xb08) = *(longlong *)(lVar4 + -0x4b8) - *(longlong *)(lVar4 + -0xf0);
  *(uint *)(lVar4 + -0x61c) =
       (*(uint *)(lVar4 - (uVar27 ^ 0x81e28ebc)) ^ DAT_182671ce0) + (DAT_182671c60 ^ 0x8c4a7304) ^
       DAT_182671e70;
  uVar13 = (ulonglong)DAT_182671c88;
  *(uint *)(lVar4 - (uVar26 ^ 0x1008655e)) =
       (*(uint *)(lVar4 + -0x1c8) ^ uVar10) << 0x11 ^ DAT_182671efc;
  lVar3 = DAT_182671c40;
  *(uint *)(lVar4 + -0x634) =
       (*(uint *)(lVar4 - (uVar13 ^ 0x81e28244)) ^ DAT_182671e70) -
       (*(uint *)(lVar4 - (uVar19 ^ 0xa235abc4)) ^ DAT_182671efc) ^ DAT_182671cac;
  *(uint *)(lVar3 - (uVar8 ^ 0xeff79989)) =
       (*(uint *)(lVar4 - (uVar26 ^ 0x1008672e)) ^ DAT_182671cac) *
       (*(uint *)(lVar4 + -0x94) ^ uVar15) ^ DAT_182671dd8;
  uVar22 = DAT_182671ce4;
  uVar13 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar10 = (*(uint *)(lVar3 + -0x1c8) ^ uVar10) * (uVar6 ^ 0xa235af83) ^ DAT_182671db4;
  *(uint *)(lVar3 + -0x670) = uVar10;
  uVar5 = DAT_182671c80;
  uVar10 = uVar10 ^ DAT_182671db4;
  *(ulonglong *)(lVar3 + -0x888) =
       *(ulonglong *)(lVar3 - (uVar8 ^ 0xeff796cd)) ^ uVar13 | *(ulonglong *)(lVar3 + -0x30);
  uVar10 = (*(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0xa235a8ec)) ^ DAT_182671dd8) + uVar10;
  *(uint *)(lVar3 + -0x684) = uVar10 ^ uVar14;
  *(uint *)(lVar3 + -0x9dc) = uVar10 << (((byte)uVar5 ^ 0xa8) & 0x1f) ^ DAT_182671d94;
  *(uint *)(lVar3 + -0x94c) = (uVar14 ^ *(uint *)(lVar3 + -0x684)) >> 0x13 ^ uVar22;
  uVar10 = DAT_182671c48;
  uVar13 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar3 - (uVar8 ^ 0xeff79961)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xfca34f94)) ^ DAT_182671d94 |
       *(uint *)(lVar3 - (uVar26 ^ 0x10086856)) ^ uVar22) ^ DAT_182671e04;
  uVar23 = DAT_182671f50;
  uVar11 = DAT_182671c50;
  uVar17 = (ulonglong)DAT_182671cc4;
  uVar14 = DAT_182671f40 ^ DAT_182671db0;
  *(uint *)(lVar3 + -0x4ac) =
       (DAT_182671c50 ^ 0xec001d36) >>
       (((byte)*(undefined4 *)(lVar3 - (uVar13 ^ 0xc88bc4e)) ^ (byte)uVar22) & 0x1f);
  uVar22 = (*(uint *)(lVar3 + -0x94) ^ uVar15) + (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) ^
           DAT_182671db0;
  *(longlong *)(lVar3 + -0xa08) =
       *(longlong *)(lVar3 + -0x2b0) << ((byte)*(undefined8 *)(lVar3 + -0x380) & 0x3f);
  *(uint *)(lVar3 + -0x644) = uVar22;
  *(uint *)(lVar3 - ((ulonglong)uVar10 ^ 0xb8d0830c)) = uVar14 ^ uVar22;
  bVar7 = (byte)DAT_182671f00;
  uVar22 = *(uint *)(lVar3 + -0x784) ^ DAT_182671e04 ^ DAT_182671d9c;
  *(uint *)(lVar3 + -0x54) = *(uint *)(lVar3 + -0x58c) ^ uVar23 ^ DAT_182671f40;
  uVar13 = CONCAT44(uVar21,DAT_182671c84);
  *(uint *)(lVar3 + -0xa94) = uVar22;
  *(uint *)(lVar3 + -0x6c0) = uVar22 ^ DAT_182671e74 ^ DAT_182671d9c;
  *(ulonglong *)(lVar3 + -0xc20) =
       (uVar13 ^ 0x7d41c21036ef69b1) + *(longlong *)(lVar3 + -0x9a8) ^ uVar17;
  *(ulonglong *)(lVar3 + -0xc18) =
       0xb1ed2b3f32982f59 >> ((byte)*(undefined8 *)(lVar3 + -0x30) & 0x3f);
  *pbVar16 = *(byte *)(*(ulonglong *)(lVar3 - (uVar27 ^ 0x81e28878)) ^ uVar17) ^ bVar7 ^
             (byte)DAT_182671e0c;
  uVar22 = DAT_182671ee4;
  uVar21 = DAT_182671c70;
  lVar4 = DAT_182671c40;
  uVar17 = (ulonglong)DAT_182671c78;
  uVar27 = (ulonglong)DAT_182671c70;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c4c ^ 0xdff3f38a)) =
       (*(byte *)(lVar3 - (uVar19 ^ 0xa235ae43)) ^ bVar7) ^ DAT_182671ee4;
  uVar15 = DAT_182671f9c;
  uVar20 = *(uint *)(lVar4 + -0x6c0) ^ DAT_182671e74;
  uVar14 = (uVar22 ^ *(uint *)(lVar4 + -0xae4)) << (((byte)uVar10 ^ 0x91) & 0x1f) ^ DAT_182671da4;
  *(uint *)(lVar4 + -0x444) = uVar14;
  uVar14 = uVar14 ^ DAT_182671da4;
  *(ulonglong *)(lVar4 + -0x3d8) =
       (CONCAT44(uVar24,uVar11) ^ 0xafe5b79d2731d913) -
       (CONCAT44(uVar21,uVar21) ^ 0x80ae7b82efd195d4);
  uVar10 = DAT_182671c68;
  uVar24 = uVar20 + (DAT_182671c68 ^ 0xbc4e148f) ^ DAT_182671d90;
  *(uint *)(lVar4 + -0x61c) = uVar24;
  uVar14 = (uVar24 ^ DAT_182671d90) - uVar14;
  *(uint *)(lVar4 + -0x634) = uVar14 ^ uVar15;
  *(uint *)(lVar4 + -0x1c8) = uVar14 * (uVar23 ^ *(uint *)(lVar4 + -0x54)) ^ DAT_182671cb0;
  uVar21 = (*(uint *)(lVar4 - (uVar17 ^ 0x3fef655b)) ^ uVar22) * (uVar21 ^ 0x36e708ab) ^
           DAT_182671e58;
  *(uint *)(lVar4 + -0x76c) = uVar21;
  uVar24 = DAT_182671e60;
  lVar3 = DAT_182671c40;
  uVar14 = (*(uint *)(lVar4 - (uVar26 ^ 0x100860d2)) ^ DAT_182671cb0) + (uVar21 ^ DAT_182671e58);
  *(uint *)(DAT_182671c40 + -0x670) = uVar14 ^ DAT_182671e60;
  *(longlong *)(lVar3 + -0x7c0) = 0x4c3f486b9be52977 << (((byte)uVar5 ^ 0x90) & 0x3f);
  uVar15 = DAT_182671f64;
  uVar22 = DAT_182671d60;
  uVar21 = DAT_182671c6c;
  uVar5 = DAT_182671c5c;
  uVar13 = (ulonglong)DAT_182671c6c;
  *(uint *)(lVar3 + -0x684) = uVar14 << (((byte)DAT_182671c5c ^ 0x1f) & 0x1f) ^ DAT_182671d60;
  *(uint *)(lVar3 - (uVar13 ^ 0x71da4a9a)) =
       (*(uint *)(lVar3 - (uVar17 ^ 0x3fef69cf)) ^ uVar24) >> 0x13 ^ uVar15;
  uVar24 = (uVar22 ^ *(uint *)(lVar3 + -0x684) | *(uint *)(lVar3 + -0x9dc) ^ uVar15) ^ uVar15;
  uVar22 = (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + (uVar23 ^ *(uint *)(lVar3 + -0x54)) ^
           DAT_182671d88;
  *(uint *)(lVar3 + -0x644) = DAT_182671c98 ^ uVar15 ^ uVar24;
  *(uint *)(lVar3 + -0x94c) = uVar22;
  *(uint *)(lVar3 + -0x94) = uVar22 ^ DAT_182671eb8 ^ DAT_182671d88;
  *(uint *)(lVar3 + -0x4ac) = uVar24;
  uVar22 = DAT_182671d30;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x71da45c6)) =
       (CONCAT44(uVar6,uVar11) ^ 0x3c56754327f65655) +
       *(longlong *)(lVar3 - ((ulonglong)uVar10 ^ 0x200c0549));
  uVar24 = DAT_182671e64;
  *(uint *)(lVar3 + -0x784) = *(uint *)(lVar3 + -0x94) ^ DAT_182671eb8 ^ DAT_182671d9c;
  pbVar16 = (byte *)(*(longlong *)(lVar3 + -0x9a8) + 0x19);
  uVar23 = *(uint *)(lVar3 - (uVar26 ^ 0x1008675e)) ^ DAT_182671c98 ^ DAT_182671f7c;
  *(ulonglong *)(lVar3 + -0x170) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671fa4;
  *(uint *)(lVar3 + -0x58c) = uVar23;
  bVar7 = *pbVar16 ^ (byte)uVar24 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar3 + -0x1c3) = bVar7;
  uVar11 = DAT_182671e4c;
  uVar10 = uVar24 & 0xff ^ (uint)bVar7;
  uVar23 = uVar23 ^ DAT_182671f7c;
  bVar7 = (byte)DAT_182671c58;
  *(uint *)(lVar3 + -0xa94) = uVar10 ^ uVar22;
  uVar21 = uVar23 + (uVar21 ^ 0xed985158) ^ DAT_182671dec;
  *(uint *)(lVar3 + -0x6c0) = uVar21;
  uVar21 = uVar21 ^ DAT_182671dec;
  *(uint *)(lVar3 + -0x61c) = uVar10 << ((bVar7 ^ 1) & 0x1f) ^ uVar24;
  uVar13 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 + -0xa50) =
       *(ulonglong *)(lVar3 - (uVar8 ^ 0xeff79ff5)) ^ CONCAT44(uVar5,DAT_182671c84) ^
       0xf0238b318f26fb41;
  uVar10 = DAT_182671cf8;
  *(uint *)(lVar3 - (uVar27 ^ 0x36e70ce1)) = uVar21 - (*puVar12 ^ uVar24) ^ DAT_182671cf8;
  uVar21 = (*(uint *)(lVar3 - (uVar13 ^ 0x36ef6e3b)) ^ DAT_182671d9c) *
           (uVar10 ^ *(uint *)(lVar3 + -0x444));
  uVar13 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar3 + -0x634) = uVar21 ^ uVar11;
  uVar10 = DAT_182671f6c;
  *(longlong *)(lVar3 + -0x228) =
       *(longlong *)(lVar3 - (uVar13 ^ 0xc88b91a)) - *(longlong *)(lVar3 + -0x510);
  uVar11 = (*(uint *)(lVar3 + -0xa94) ^ uVar22) * 0x19 ^ DAT_182671f0c;
  *(uint *)(lVar3 + -0xae4) = uVar11;
  *(uint *)(lVar3 - (uVar8 ^ 0xeff79f2d)) = (uVar11 ^ DAT_182671f0c) + uVar21 ^ uVar10;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c58 ^ 0x7d41c57c)) =
       (uVar10 ^ *(uint *)(lVar3 + -0x1c8)) << 0xd ^ DAT_182671e10;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c4c ^ 0xdff3ff1e)) =
       (uVar10 ^ *(uint *)(lVar3 + -0x1c8)) >> (((byte)DAT_182671c7c ^ 0x81) & 0x1f) ^ DAT_182671de4
  ;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar18) * 4) = uVar1 ^ uVar18;
  return;
}



############ FUN_ 180f4b8e0 size=5645 ############

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

void FUN_180f4b8e0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  uint uVar24;
  longlong *plVar25;
  byte *pbVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  int iVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  byte bVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  
  uVar10 = DAT_182671d48;
  uVar7 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c58;
  uVar35 = (DAT_182671c58 << 0x10 | DAT_182671c58 & 0xff00) << 8 | DAT_182671c58 >> 8 & 0xff00 |
           DAT_182671c58 >> 0x18;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182671fec);
  uVar24 = *(uint *)(&DAT_182613218 + DAT_182671fec) ^ DAT_182671c58;
  DAT_182671c84 = uVar35;
  *(longlong *)(DAT_182671c40 + -0xb20) =
       *(longlong *)(DAT_182671c40 + -0xd88) <<
       (((byte)DAT_182671ee0 ^ *(byte *)(DAT_182671c40 + -0x408)) & 0x3f);
  uVar43 = (ulonglong)uVar35;
  uVar33 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  uVar34 = CONCAT44(uVar7,uVar35);
  bVar41 = (byte)(uVar7 >> 0x18);
  bVar40 = (byte)uVar10 ^ (byte)DAT_182671f90;
  uVar29 = (uVar33 ^ *(ulonglong *)(lVar2 + -0xc18)) >> ((bVar41 ^ 0x78) & 0x3f) ^
           CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x60bb8138)) = uVar29;
  *(byte *)(lVar2 + -0x1c1) = bVar40 ^ (byte)uVar29;
  *(ulonglong *)(lVar2 + -0xf0) = (uVar33 ^ *(ulonglong *)(lVar2 + -0xc18)) + 0xc2844028890d9e0a;
  uVar29 = (ulonglong)DAT_182671da0;
  plVar25 = (longlong *)(lVar2 - ((ulonglong)uVar35 ^ 0x408bb2c8));
  bVar40 = (byte)DAT_182671e0c ^ (byte)DAT_182671f90;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x60bb8aa0)) =
       (CONCAT44(uVar35,uVar35) ^ 0x408bbb60408bbb60) * 0x20 + (uVar34 ^ 0x60bb8b40408bbb63) +
       *plVar25 ^ uVar29;
  *(byte *)(*(ulonglong *)(lVar2 + -0x1e0) ^ uVar29) = bVar40 ^ *(byte *)(lVar2 + -0x1c1);
  uVar10 = DAT_182671e78;
  uVar20 = DAT_182671c94;
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar35,DAT_182671c74);
  uVar31 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *(ulonglong *)(lVar2 + -0x828) = (uVar31 ^ *(ulonglong *)(lVar2 + -0x510)) << 0x28;
  uVar14 = DAT_182671e98;
  uVar37 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar2 + -0x418) =
       *(longlong *)(lVar2 + -0xc40) +
       ((uVar29 ^ 0x408bbb60d868f138) + (uVar34 ^ 0x60bb8b40408bbb60) * 4) * 8 ^ uVar37;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar38 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0xbb60430b)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x60bb8f58)) ^ uVar37) ^ uVar38 ^
       uVar32;
  *(ulonglong *)(lVar3 + -0xc90) =
       (uVar34 ^ 0xb9c285b688e00db0) >> (((byte)uVar10 ^ *(byte *)(lVar3 + -0x510)) & 0x3f);
  uVar10 = DAT_182671f0c;
  uVar6 = DAT_182671c88;
  lVar2 = DAT_182671c40;
  pbVar26 = (byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0x50403000));
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0x89a3fe6e)) ^ uVar32) >>
       (bVar41 & 0x3f) ^ CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar4 = DAT_182671c5c;
  uVar29 = (ulonglong)DAT_182671ca0;
  *(byte *)(lVar2 + -0x151) = *pbVar26 ^ (byte)uVar10 ^ (byte)DAT_182671f24;
  bVar40 = (byte)DAT_182671e0c;
  uVar12 = DAT_182671c70;
  uVar5 = DAT_182671c50;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x408bbdd0)) =
       (CONCAT44(uVar20,uVar4) ^ 0xbb60408bdceef93d) * 0x20 +
       (CONCAT44(uVar7,uVar6) ^ 0x60bb8b4089a3fdea) + *(longlong *)(lVar2 + -0x9a8) ^ uVar29;
  uVar10 = DAT_182671fa4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x6b0) ^ uVar29) =
       bVar40 ^ *(byte *)(lVar2 + -0x151) ^ (byte)DAT_182671f24;
  uVar16 = DAT_182671c7c;
  *(ulonglong *)(lVar2 + -0xb08) =
       (CONCAT44(uVar5,uVar35) ^ 0xefa60977d196b83d) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x60bb8778)) ^ CONCAT44(uVar10,uVar10));
  uVar14 = DAT_182671c78;
  lVar2 = DAT_182671c40;
  puVar30 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 + -0xc40) +
            ((CONCAT44(uVar7,DAT_182671c78) ^ 0x60bb8b40dc68f138) +
            (CONCAT44(uVar16,uVar4) ^ 0x408bbb60dceef93d) * 4) * 8);
  uVar34 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(DAT_182671c40 + -0x678) = (ulonglong)puVar30 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x680) = *puVar30 ^ uVar34 ^ uVar38;
  uVar10 = DAT_182671f6c;
  uVar18 = DAT_182671c8c;
  uVar9 = DAT_182671c60;
  bVar40 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xdceef1b5)) =
       (CONCAT44(uVar12,uVar16) ^ 0x1fc7486c9d90af60) +
       (CONCAT44(uVar12,DAT_182671c60) ^ 0xbc8d9a42c1a23db5);
  uVar4 = DAT_182671c64;
  uVar31 = (ulonglong)DAT_182671d90;
  uVar29 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar2 + -0x30) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x680)) >> ((bVar40 ^ 0x42) & 0x3f) ^
       CONCAT44(uVar10,uVar10);
  puVar27 = (ulonglong *)(lVar2 - (uVar29 ^ 0xdefbfb9c));
  *(byte *)(lVar2 + -0xc9b) = (byte)uVar10 ^ (byte)*puVar27 ^ (byte)DAT_182671e68;
  pbVar26 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)DAT_182671c48 ^ 0x504038b8)) +
                     (CONCAT44(uVar12,uVar4) ^ 0xd8eeb82ddefbfbac) * 0x20 +
                    (CONCAT44(uVar14,DAT_182671c48) ^ 0xdc68f13850403115));
  *(undefined8 *)(lVar2 + -0xbd8) = 0xde76feef5affdff5;
  *(ulonglong *)(lVar2 + -0x1b0) = (ulonglong)pbVar26 ^ uVar31;
  uVar15 = DAT_182671d7c;
  *pbVar26 = *(byte *)(lVar2 - ((ulonglong)uVar9 ^ 0xd4b85417)) ^ (byte)DAT_182671e0c ^
             (byte)DAT_182671e68;
  uVar6 = DAT_182671d88;
  uVar10 = DAT_182671d60;
  uVar17 = DAT_182671c80;
  uVar4 = DAT_182671c4c;
  uVar34 = (ulonglong)DAT_182671c80;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar29 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x70009950)) =
       (CONCAT44(uVar35,DAT_182671c88) ^ 0x408bbb6089a3fdee) * 0x20 + *(longlong *)(lVar2 + -0xc40)
       ^ uVar31;
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x53c0347b)) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xe9bbf6fe)) ^ uVar31) ^
       CONCAT44(uVar6,uVar6) ^ uVar38;
  lVar2 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c7c;
  uVar31 = (ulonglong)_DAT_182671cf0;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (ulonglong)*(ushort *)((DAT_182671c40 - (uVar28 ^ 0x60bb86e8)) + 6) ^
       (ulonglong)(uVar6 >> 0x10) ^ CONCAT44(uVar10,uVar10);
  lVar3 = DAT_182671c40;
  *(byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0x70009a22)) =
       *(byte *)(lVar2 - (uVar29 ^ 0x408bbe88)) ^ (byte)uVar10 ^ (byte)DAT_182671da8;
  uVar19 = DAT_182671c90;
  uVar29 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c94 ^ 0xbb604a9b)) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_182671c74 ^ 0xd868f890)) + 6 +
       (CONCAT44(uVar14,uVar35) ^ 0xdc68f138408bbb60) * 0x20 ^ uVar31;
  uVar10 = DAT_182671f38;
  *(ulonglong *)(lVar3 + -0x960) =
       *(ulonglong *)(lVar3 - (uVar29 ^ 0x4a53f7b8)) ^ uVar33 | 0x2a5c30fc890776d5;
  *(byte *)(*(ulonglong *)(lVar3 + -0xa10) ^ uVar31) =
       *(byte *)(lVar3 + -0xa62) ^ (byte)DAT_182671e0c ^ (byte)DAT_182671da8;
  puVar30 = (ulonglong *)
            ((CONCAT44(uVar18,uVar19) ^ 0x70c0f8d04a53fba0) * 0x20 + *(longlong *)(lVar3 + -0xc40));
  uVar31 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar3 + -0xac0) = (ulonglong)puVar30 ^ CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c54 ^ 0xf81a900a)) = *puVar30 ^ uVar31 ^ uVar38;
  *(undefined8 *)(CONCAT44(DAT_182671db4,DAT_182671db4) ^ *(ulonglong *)(lVar3 + -0x588)) =
       0xc060e36ced8478c0;
  lVar2 = DAT_182671c40;
  bVar41 = (byte)uVar10 ^ (byte)DAT_182671dfc;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0x700094f8)) =
       (*(ulonglong *)(DAT_182671c40 + -0x760) ^ uVar31) >> (((byte)DAT_182671c88 ^ 0xd6) & 0x3f) ^
       CONCAT44(uVar10,uVar10);
  bVar41 = bVar41 ^ *(byte *)(lVar2 + -0x4b8);
  *(byte *)(lVar2 + -0x341) = bVar41;
  uVar6 = DAT_182671c74;
  pbVar26 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x89a3f446)) +
                     (CONCAT44(DAT_182671c88,DAT_182671c54) ^ 0x89a3fdeef81a976a) * 0x20 +
                    (CONCAT44(uVar9,uVar19) ^ 0xd4b8588c4a53fba7));
  bVar40 = (byte)DAT_182671e0c ^ (byte)DAT_182671dfc;
  *(ulonglong *)(lVar2 + -0x800) = (ulonglong)pbVar26 ^ (ulonglong)DAT_182671e18;
  *pbVar26 = bVar40 ^ bVar41;
  uVar8 = DAT_182671c5c;
  iVar36 = *(int *)(lVar2 + -0x784) + (uVar17 ^ 0xd185207b);
  uVar37 = (ulonglong)DAT_182671c5c;
  uVar29 = CONCAT44(uVar12,DAT_182671c5c);
  *(int *)(lVar2 + -0x94c) = iVar36;
  *(ulonglong *)(lVar2 + -0x2e8) =
       *(longlong *)(lVar2 + -0xc40) +
       ((uVar29 ^ 0xd8eeb82ddceef93c) + (CONCAT44(uVar7,uVar7) ^ 0x60bb8b4060bb8b40) * 4) * 8 ^
       uVar38;
  uVar10 = DAT_182671ce4;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xb18) =
       (CONCAT44(uVar18,uVar6) ^ 0x4e79ad3ab3cc7ee1) -
       (CONCAT44(uVar4,DAT_182671c94) ^ 0x5d1e4b91daec2182);
  uVar33 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x7e8) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0xdefbf944)) ^ uVar38) ^
       uVar33 ^ uVar38;
  uVar10 = DAT_182671ea0;
  uVar29 = (ulonglong)DAT_182671c88;
  *(uint *)(lVar3 + -0x76c) = (uVar4 ^ 0xcf822bcd) + iVar36;
  uVar21 = DAT_182671c94;
  lVar2 = DAT_182671c40;
  pbVar26 = (byte *)(DAT_182671c40 - (uVar29 ^ 0x89a3ffc6));
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) >> (((byte)uVar19 ^ 0xa0) & 0x3f) ^
       CONCAT44(uVar10,uVar10);
  bVar41 = (byte)DAT_182671cac;
  uVar29 = (ulonglong)DAT_182671e28;
  uVar44 = CONCAT44(uVar17,uVar8);
  *(byte *)(lVar2 - ((ulonglong)uVar21 ^ 0xbb60410a)) = *pbVar26 ^ (byte)uVar10 ^ bVar41;
  bVar40 = *(byte *)(lVar2 + -0x181) ^ (byte)DAT_182671e0c;
  pbVar26 = (byte *)((CONCAT44(uVar17,uVar6) ^ 0xe9bbffeed868f138) * 0x20 +
                     (CONCAT44(uVar16,DAT_182671c8c) ^ 0x408bbb6070c0f8d8) +
                    *(longlong *)(lVar2 + -0x9a8));
  *(ulonglong *)(lVar2 + -0x198) = (ulonglong)pbVar26 ^ uVar29;
  *pbVar26 = bVar40 ^ bVar41;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar37 ^ 0xdceef57d)) +
            ((CONCAT44(uVar35,DAT_182671c54) ^ 0x408bbb60f81a976b) +
            (uVar44 ^ 0xe9bbffeedceef93d) * 4) * 8);
  uVar33 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar2 + -0x140) = (ulonglong)puVar30 ^ CONCAT44(DAT_182671d40,DAT_182671d40);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x3d8) = *puVar30 ^ uVar33 ^ uVar38;
  uVar15 = DAT_182671ed0;
  uVar11 = DAT_182671c6c;
  uVar29 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x52c2e58e)) ^ uVar31) -
       (CONCAT44(uVar35,DAT_182671c48) ^ 0x4b5a2977a0385f9e);
  uVar13 = DAT_182671c74;
  bVar39 = (byte)uVar15 ^ (byte)DAT_182671de0;
  uVar31 = (ulonglong)DAT_182671f4c;
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x3d8)) >> (((byte)uVar4 ^ 0xdb) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  bVar39 = bVar39 ^ *(byte *)(lVar3 + -0xd88);
  bVar40 = *(byte *)(lVar3 - ((ulonglong)uVar21 ^ 0xbb6042a3));
  *(byte *)(lVar3 + -0x969) = bVar39;
  uVar6 = DAT_182671c50;
  bVar41 = (byte)DAT_182671e0c ^ (byte)DAT_182671de0;
  *(ulonglong *)(lVar3 + -0xb20) =
       (CONCAT44(uVar9,uVar7) ^ 0xbaa4546c22f0a588) >> ((bVar40 ^ (byte)uVar10) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa20) = (CONCAT44(uVar13,uVar6) ^ 0xd868f13870009049) + *plVar25 ^ uVar31
  ;
  *(ulonglong *)(lVar3 + -0xa78) =
       *(ulonglong *)(lVar3 - (uVar29 ^ 0x50403290)) ^ uVar32 |
       CONCAT44(uVar9,uVar19) ^ 0xff439b8ef582913d;
  uVar23 = DAT_182671f54;
  uVar19 = DAT_182671c8c;
  uVar6 = DAT_182671c88;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xdceef31d)) ^ uVar31) = bVar41 ^ bVar39;
  uVar42 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x408bbb20)) =
       *(longlong *)(lVar3 + -0xc40) +
       ((CONCAT44(uVar12,DAT_182671c78) ^ 0xd8eeb82ddc68f139) +
       (CONCAT44(uVar11,uVar6) ^ 0x52c2e2ee89a3fdee) * 4) * 8 ^ uVar42;
  lVar2 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar37 = CONCAT44(DAT_182671de8,DAT_182671de8);
  bVar40 = (byte)DAT_182671de8;
  uVar33 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x40) ^ uVar42) ^ uVar29 ^ uVar38;
  *(ulonglong *)(lVar3 + -0xf0) = uVar33;
  uVar10 = DAT_182671c68;
  uVar32 = (ulonglong)DAT_182671c90;
  uVar31 = CONCAT44(DAT_182671c68,uVar11);
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xe9bbf7c6)) =
       (uVar33 ^ uVar29) >> ((byte)uVar19 & 0x3f) ^ uVar37;
  *(byte *)(lVar2 + -0xcd1) = bVar40 ^ *(byte *)(lVar2 + -0x828) ^ (byte)DAT_182671d64;
  uVar6 = DAT_182671c54;
  uVar29 = (ulonglong)DAT_182671c8c;
  uVar34 = (ulonglong)DAT_182671f50;
  *(ulonglong *)(lVar2 + -0x510) =
       (uVar31 ^ 0x771177ffa5f9d62d) - (*(ulonglong *)(lVar2 + -0x828) ^ uVar37);
  lVar3 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(DAT_182671c40 + -0xd18) =
       *(longlong *)(lVar2 - (uVar29 ^ 0x70c0f178)) +
       (CONCAT44(DAT_182671c48,uVar17) ^ 0x50403110e9bbffee) * 0x20 +
       (CONCAT44(uVar6,DAT_182671c94) ^ 0xf81a976abb604081) ^ uVar34;
  uVar29 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar32 ^ 0x4a53f6b8)) ^ uVar34) =
       *(byte *)(lVar3 - (uVar31 ^ 0xd8eeb4fc)) ^ (byte)DAT_182671e0c ^ (byte)DAT_182671d64;
  uVar8 = DAT_182671d00;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xc40) +
            ((CONCAT44(uVar7,uVar6) ^ 0x60bb8b40f81a976b) +
            (CONCAT44(uVar4,uVar10) ^ 0x53c039d3f8f9f9f8) * 4) * 8);
  uVar31 = CONCAT44(DAT_182671d00,DAT_182671d00);
  bVar40 = (byte)DAT_182671c8c;
  uVar33 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar3 + -0x668) = (ulonglong)puVar30 ^ uVar29;
  lVar2 = DAT_182671c40;
  uVar34 = CONCAT44(uVar13,DAT_182671c78);
  uVar32 = *puVar30 ^ uVar33 ^ uVar38;
  *(ulonglong *)(lVar3 + -0xc90) = uVar32;
  uVar29 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar2 + -0x110) = (uVar33 ^ uVar32) >> ((bVar40 ^ 200) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xdefbf794)) = (uVar34 ^ 0xfffffffd46e1e911) << 0x1d;
  uVar29 = (ulonglong)DAT_182671d84;
  bVar41 = (byte)uVar8 ^ (byte)DAT_182671d04 ^ *(byte *)(lVar2 + -0x110);
  uVar34 = CONCAT44(uVar18,DAT_182671c5c);
  *(byte *)(lVar2 + -0x5ba) = bVar41;
  uVar11 = DAT_182671eb8;
  pbVar26 = (byte *)((uVar34 ^ 0x70c0f8d0dceef936) + *(longlong *)(lVar2 + -0x9a8));
  uVar34 = (ulonglong)DAT_182671eb8;
  *(ulonglong *)(lVar2 + -0xb08) =
       (CONCAT44(uVar16,DAT_182671c60) ^ 0xb92f539a3b89749d) + *(longlong *)(lVar2 + -0xc38);
  bVar40 = (byte)DAT_182671e0c ^ (byte)DAT_182671d04;
  *(ulonglong *)(lVar2 + -0x270) = (ulonglong)pbVar26 ^ uVar29;
  *pbVar26 = bVar40 ^ bVar41;
  uVar15 = DAT_182671c78;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0x408bb720)) +
            (uVar44 ^ 0xe9bbffeedceef93c) * 8);
  *(ulonglong *)(lVar2 + -0xb88) = (ulonglong)puVar30 ^ CONCAT44(DAT_182671e20,DAT_182671e20);
  uVar22 = DAT_182671e34;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x408bb3e8)) = CONCAT44(uVar11,uVar11) ^ *puVar30 ^ uVar38;
  bVar40 = (byte)uVar22 ^ (byte)DAT_182671fac;
  *(ulonglong *)(lVar2 + -0x680) =
       *(ulonglong *)(lVar2 + -0x888) >> 0x20 ^ CONCAT44(uVar22,uVar22) ^ uVar34;
  *puVar27 = CONCAT44(uVar17,uVar7) ^ CONCAT44(uVar4,DAT_182671c64) ^ 0xf2870365dc037a57;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x8a9) = bVar40 ^ *(byte *)(DAT_182671c40 + -0x680);
  uVar29 = (ulonglong)DAT_182671e80;
  bVar40 = (byte)DAT_182671c70;
  *(longlong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0x408bb0b8)) =
       *(longlong *)(lVar2 + -0x30) << (((byte)uVar15 ^ 8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x278) =
       *(longlong *)(lVar2 + -0x9a8) + 0xc +
       (CONCAT44(uVar6,DAT_182671c74) ^ 0xf81a976ad868f138) * 0x20 ^ uVar29;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c50 ^ 0x70009014)) =
       *(uint *)(lVar2 + -0x61c) >> ((bVar40 ^ 0x27) & 0x1f);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0x60bb8938)) ^ uVar29) =
       (byte)DAT_182671e0c ^ *(byte *)(lVar2 + -0x8a9) ^ (byte)DAT_182671fac;
  *(uint *)(lVar2 + -0x634) = *(uint *)(lVar2 + -0x644) & *(uint *)(lVar2 + -0x54);
  lVar2 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c6c;
  uVar32 = CONCAT44(DAT_182671e84,DAT_182671e84);
  uVar29 = CONCAT44(uVar20,DAT_182671c6c);
  plVar25 = (longlong *)(DAT_182671c40 + -0xc40);
  *(undefined8 *)(DAT_182671c40 + -0xda8) = 0x7d1f9eb91f06fa;
  *(ulonglong *)(lVar2 + -0xd50) =
       *plVar25 +
       ((CONCAT44(uVar35,uVar4) ^ 0x408bbb6053c039d2) + (uVar29 ^ 0xbb60408b52c2e2ee) * 4) * 8 ^
       uVar32;
  uVar7 = DAT_182671c64;
  uVar34 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0x60bb8610)) ^ uVar32) ^ uVar31 ^ uVar38;
  uVar22 = DAT_182671ec8;
  uVar6 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  puVar30 = (ulonglong *)(DAT_182671c40 + -0x5e8);
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       (CONCAT44(uVar7,uVar4) ^ 0x30d2a44f761e7e5b) + (CONCAT44(uVar14,uVar15) ^ 0x7e3270b15f124b72)
  ;
  bVar40 = (byte)DAT_182671e0c;
  uVar29 = (*puVar30 >> 0x20 ^ (ulonglong)uVar8) >> 8 ^ CONCAT44(uVar22,uVar22);
  uVar31 = (ulonglong)DAT_182671d38;
  bVar39 = (byte)uVar22 ^ (byte)DAT_182671efc ^ (byte)uVar29;
  *(ulonglong *)(lVar2 + -0x960) = uVar29;
  *(byte *)(lVar2 + -0x3b1) = bVar39;
  bVar41 = bVar40 ^ (byte)DAT_182671efc;
  *(ulonglong *)(lVar2 + -0x528) =
       (CONCAT44(uVar9,uVar6) ^ 0xd4b8588cf81a976a) * 0x20 +
       (CONCAT44(uVar10,uVar15) ^ 0xf8f9f9f8dc68f135) + *(longlong *)(lVar2 + -0x9a8) ^ uVar31;
  uVar4 = DAT_182671c88;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c94 ^ 0xbb6045a3)) ^ uVar31) =
       bVar41 ^ bVar39;
  *(uint *)(lVar2 - (uVar33 ^ 0x52c2eb32)) = (uVar4 ^ 0x2ab66ebb) & *(uint *)(lVar2 + -0x54);
  uVar10 = DAT_182671d44;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xc40) +
            ((CONCAT44(uVar17,DAT_182671c8c) ^ 0xe9bbffee70c0f8d1) +
            (CONCAT44(uVar5,uVar7) ^ 0x70009040defbfbac) * 4) * 8);
  *(ulonglong *)(lVar2 + -0x650) = (ulonglong)puVar30 ^ CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar31 = CONCAT44(uVar10,uVar10);
  uVar29 = *puVar30 ^ uVar31 ^ uVar38;
  *(ulonglong *)(lVar2 + -0x920) = uVar29;
  uVar28 = (ulonglong)DAT_182671c48;
  bVar40 = bVar40 ^ (byte)DAT_182671d9c;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xdefbff14)) =
       (uVar31 ^ uVar29) >> (((byte)uVar4 ^ 0xde) & 0x3f) ^ uVar42;
  *(byte *)(lVar2 + -0x451) = (byte)uVar23 ^ (byte)DAT_182671d9c ^ *(byte *)(lVar2 + -0x4b8);
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0xd8eebda1)) =
       *(uint *)(lVar2 - (uVar28 ^ 0x5040367c)) | uVar4 ^ 0x89f87ff0;
  pbVar26 = (byte *)(*(longlong *)(lVar2 + -0x9a8) + 0xe);
  *(ulonglong *)(lVar2 + -0x8e0) = (ulonglong)pbVar26 ^ (ulonglong)DAT_182671fb0;
  uVar10 = DAT_182671cd4;
  *pbVar26 = bVar40 ^ *(byte *)(lVar2 + -0x451);
  uVar14 = DAT_182671d6c;
  puVar30 = (ulonglong *)(*(longlong *)(lVar2 + -0xc40) + 8);
  *(ulonglong *)(lVar2 + -0x610) = (ulonglong)puVar30 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671dd8;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x50403a08)) = CONCAT44(uVar14,uVar14) ^ *puVar30 ^ uVar38;
  *(undefined8 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0x408bb608)) ^ CONCAT44(uVar10,uVar10)) =
       0xcec514fae525691b;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar35) * 4) = uVar24;
  return;
}



############ FUN_ 181020b80 size=5354 ############

void FUN_181020b80(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  ulonglong uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  ulonglong *puVar34;
  ulonglong *puVar35;
  
  uVar9 = DAT_182671d08;
  uVar4 = DAT_182671c78;
  uVar8 = DAT_182671c74;
  uVar7 = DAT_182671c68;
  lVar2 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c78;
  uVar22 = (ulonglong)DAT_182671c74;
  uVar16 = (DAT_182671c78 << 0x10 | DAT_182671c78 & 0xff00) << 8 | DAT_182671c78 >> 8 & 0xff00 |
           DAT_182671c78 >> 0x18;
  uVar15 = (ulonglong)DAT_182671c68;
  uVar29 = DAT_182671c74 - DAT_182671c68;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar15 ^ 0x96c818e4) + (longlong)DAT_18267210c);
  uVar13 = *(uint *)(&DAT_182613220 + DAT_18267210c) ^ DAT_182671c74;
  uVar32 = (ulonglong)uVar16;
  uVar24 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar27 = (ulonglong)uVar29;
  uVar17 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  puVar18 = (ulonglong *)(DAT_182671c40 + -0x380);
  DAT_182671c58 = uVar16;
  DAT_182671c8c = uVar29;
  *(ulonglong *)(DAT_182671c40 + -0xa70) =
       (*(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xfe08d037)) ^ uVar24) +
       (CONCAT44(DAT_182671de0,DAT_182671de0) ^ *(ulonglong *)(DAT_182671c40 + -0xb08)) ^ uVar17;
  uVar10 = DAT_182671f68;
  uVar23 = CONCAT44(uVar9,uVar9);
  bVar33 = (byte)uVar7;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0xfe08d9d7)) =
       (uVar24 ^ *puVar18) << ((bVar33 ^ 0xc2) & 0x3f) ^ uVar23;
  uVar9 = DAT_182671f30;
  *(ulonglong *)(lVar2 + -0x888) =
       (CONCAT44(DAT_182671ed0,DAT_182671ed0) ^ *(ulonglong *)(lVar2 + -0x760)) <<
       (((byte)uVar10 ^ *(byte *)(lVar2 + -0x628)) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar20 = CONCAT44(uVar9,uVar9);
  bVar28 = (byte)uVar4;
  uVar24 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xf4f64d27)) ^ uVar24) >>
           ((bVar28 ^ 0xec) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar24 ^ uVar20;
  *(ulonglong *)(lVar2 + -0xd88) = (*(ulonglong *)(lVar2 + -0xa60) ^ uVar23 | uVar24) ^ uVar20;
  *(byte *)(lVar2 - ((ulonglong)uVar7 ^ 0x96c812fd)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x990) ^ (ulonglong)DAT_182671ee0) ^ (byte)DAT_182671f14;
  uVar9 = DAT_182671cd0;
  uVar31 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xb7d309ee)) =
       *(ulonglong *)(lVar3 + -0xd88) ^ *(ulonglong *)(lVar3 + -0xa70) ^ uVar31 ^ uVar20 ^ uVar17;
  uVar24 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar20 = CONCAT44(DAT_182671e94,DAT_182671e94);
  puVar18 = (ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xf4f64787));
  *(ulonglong *)(lVar3 + -0xb20) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0x2b0)) +
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x920)) ^ uVar20;
  uVar25 = CONCAT44(DAT_182671e28,DAT_182671e28);
  puVar34 = (ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xfe08d477));
  *puVar34 = (*puVar18 ^ uVar24) << 0xc ^ uVar25;
  uVar30 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (*(ulonglong *)(DAT_182671c40 - (uVar15 ^ 0x96c811cc)) ^ uVar24) >>
       (((byte)uVar29 ^ 0x8f) & 0x3f) ^ uVar30;
  uVar5 = DAT_182671e08;
  lVar2 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar24 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xf4f64967)) ^ uVar25 |
           *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x5e2e3793)) ^ uVar30) ^ uVar23;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar24;
  uVar26 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x96c81ec4)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xf4f64587)) ^ uVar26 ^ uVar24 ^ uVar23 ^ uVar20;
  uVar25 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0xfe08d4d7)) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar26) + (*(ulonglong *)(lVar2 + -0xa70) ^ uVar17) ^
       uVar25;
  uVar6 = DAT_182671eb4;
  uVar23 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar21 = (ulonglong)DAT_182671eb4;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xb7d30076)) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar26) << 0x3a ^ uVar23;
  uVar17 = ((ulonglong)uVar5 << 0x1a | (ulonglong)(uVar5 >> 6)) ^
           *(ulonglong *)(lVar2 + -0x628) >> 6;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xb7d30b7e)) = uVar17 ^ CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar24 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar17 = (uVar23 ^ *(ulonglong *)(lVar2 + -0x888) | uVar17) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x7e8) = uVar17;
  uVar26 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0xa60) =
       uVar26 ^ uVar24 ^ uVar25 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0x760);
  uVar23 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x96c81564)) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar31) + (uVar20 ^ *(ulonglong *)(lVar2 + -0xb20)) ^
       uVar23;
  uVar17 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar2 + -0x2b0) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar31) << ((bVar33 ^ 0xfa) & 0x3f) ^ uVar17;
  uVar24 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar20 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *puVar18 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0xfe08d2a7)) ^ uVar31) >> ((bVar28 ^ 0xd4) & 0x3f) ^
             uVar24;
  lVar2 = DAT_182671c40;
  *puVar34 = (*(ulonglong *)(DAT_182671c40 - (uVar15 ^ 0x96c81a5c)) ^ uVar17 |
             uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0x920)) ^ uVar20;
  uVar9 = DAT_182671f10;
  *(ulonglong *)(lVar2 + -0xb08) =
       (CONCAT44(uVar29,uVar4) ^ 0x7e3103d7c013bb20) - (CONCAT44(uVar8,uVar4) ^ 0x13635ac13e09df00);
  uVar31 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xf4f644d7)) =
       *(ulonglong *)(lVar2 - (uVar19 ^ 0xb7d30f3e)) ^ *(ulonglong *)(lVar2 + -0xd88) ^ uVar31 ^
       uVar20 ^ uVar23;
  uVar17 = CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar15 = (*(ulonglong *)(lVar2 + -0xa70) ^ uVar31) + (uVar25 ^ *(ulonglong *)(lVar2 + -0x760));
  puVar18 = (ulonglong *)(lVar2 - (uVar27 ^ 0x5e2e3d33));
  *(ulonglong *)(lVar2 + -0x628) = uVar15 ^ uVar17;
  uVar9 = DAT_182671df8;
  *puVar18 = uVar15 - (CONCAT44(uVar8,uVar7) ^ 0xfb439221de35b6af);
  uVar20 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x380) =
       (*(ulonglong *)(lVar2 + -0xa70) ^ uVar31) << ((bVar28 ^ 0xde) & 0x3f) ^ uVar20;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x5e2e3253)) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x228)) - (CONCAT44(uVar29,uVar16) ^ 0x8959cc0f14b6d481);
  puVar34 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0xffdbd18f));
  uVar24 = (uVar31 ^ *puVar34) >> (((byte)DAT_182671c90 ^ 0xda) & 0x3f);
  uVar15 = CONCAT44(DAT_182671c4c,uVar16);
  *(ulonglong *)(lVar2 + -0xb20) = uVar24 ^ CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar2 + -0x110) = uVar15 ^ *(ulonglong *)(lVar2 + -0xb08) ^ 0x74411a6384f9c57f;
  uVar9 = DAT_182671e88;
  uVar30 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar15 = (uVar24 | uVar20 ^ *(ulonglong *)(lVar2 + -0x380)) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar15;
  uVar25 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xb7d301de)) =
       *(ulonglong *)(lVar2 + -0x628) ^ uVar25 ^ uVar15 ^ uVar30 ^ uVar17;
  uVar4 = DAT_182671c48;
  uVar26 = *(ulonglong *)(lVar2 + -0xa60) ^ uVar26;
  uVar24 = (ulonglong)DAT_182671c48;
  uVar20 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  uVar16 = DAT_182671c48 & DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0x7c0) = (*(ulonglong *)(lVar2 + -0xd88) ^ uVar23) + uVar26 ^ uVar20;
  DAT_182671c90 = uVar16;
  *(ulonglong *)(lVar2 + -0x760) =
       *(ulonglong *)(lVar2 + -0x2b0) ^ uVar30 | *(ulonglong *)(lVar2 + -0xa70) ^ uVar31;
  uVar10 = DAT_182671dd0;
  bVar14 = (byte)uVar16;
  uVar23 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *puVar18 = uVar26 << ((bVar14 ^ 0x8a) & 0x3f) ^ uVar23;
  uVar9 = DAT_182671d18;
  lVar3 = DAT_182671c40;
  uVar15 = CONCAT44(uVar10,uVar10);
  uVar21 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xfddbf58a)) >> 0x20 ^ uVar15 ^ uVar21;
  *(ulonglong *)(lVar2 + -0x228) = uVar21;
  uVar30 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xfddbf802)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x5c0a3d22)) ^ uVar23 | uVar21 ^ uVar15) ^
       uVar30;
  uVar15 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar3 + -0xb08) =
       uVar15 ^ uVar30 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0x7e8) ^ *(ulonglong *)(lVar3 + -0x7c0);
  uVar9 = DAT_182671d94;
  lVar2 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x5c0a3ea2)) ^ uVar15) +
       (CONCAT44(uVar29,uVar29) ^ 0x2ee9260e06af0f15) ^ uVar21;
  uVar10 = DAT_182671e14;
  uVar15 = (CONCAT44(uVar16,uVar4) ^ 0x5b04667c4c3c6d2) + (*(ulonglong *)(lVar2 + -0x628) ^ uVar17);
  *(ulonglong *)(lVar2 + -0x380) = uVar15 ^ CONCAT44(uVar9,uVar9);
  lVar3 = DAT_182671c40;
  uVar17 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x5e2e3e9b)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x5c0a34ba)) ^ uVar21) + uVar15 ^ uVar17;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xfddbf262)) =
       *(ulonglong *)(lVar3 - (uVar27 ^ 0x5e2e34ab)) ^ uVar21 | 0xf0ba45add1d5951a;
  uVar26 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(ulonglong *)(lVar2 + -0xa70) = (*(ulonglong *)(lVar2 + -0x110) ^ uVar21) << 0xe ^ uVar26;
  uVar10 = DAT_182671f5c;
  lVar3 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  puVar35 = (ulonglong *)(lVar2 - (uVar24 ^ 0xfddbfd5a));
  *puVar35 = (*(ulonglong *)(lVar2 + -0x110) ^ uVar21) >> ((bVar14 ^ 0x98) & 0x3f) ^ uVar23;
  uVar9 = DAT_182671e98;
  uVar6 = DAT_182671da8;
  uVar15 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x760) =
       (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar23 | *(ulonglong *)(lVar3 + -0xa70) ^ uVar26) ^ uVar15;
  uVar26 = CONCAT44(uVar9,uVar9);
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0xa60) =
       *(ulonglong *)(lVar3 - (uVar27 ^ 0x5e2e32db)) ^ uVar26 ^ uVar15 ^ uVar17 ^
       *(ulonglong *)(lVar3 + -0xb20);
  uVar15 = CONCAT44(uVar7,DAT_182671c54);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xfddbf762)) =
       (CONCAT44(uVar16,uVar29) ^ 0x205a913bd195a717) + (uVar25 ^ *(ulonglong *)(lVar3 + -0x920)) ^
       uVar23;
  uVar24 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(undefined8 *)(lVar3 + -0x228) = 0x6f048;
  uVar15 = (uVar15 ^ 0xc38d11ba47948d97) + (uVar20 ^ *(ulonglong *)(lVar3 + -0x7c0));
  uVar31 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar3 + -0xb08) = uVar15 ^ uVar24;
  uVar24 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0x628) = (uVar23 ^ *puVar18) + uVar15 ^ uVar31;
  uVar5 = DAT_182671c70;
  uVar20 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar3 - (uVar24 ^ 0x49039030)) = (uVar16 ^ 0xe4d143fe) + *(int *)(lVar3 + -0x9dc);
  lVar2 = DAT_182671c40;
  uVar21 = (*(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xfe08db3f)) ^ uVar23) <<
           (((byte)uVar8 ^ 0xb7) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar21 ^ CONCAT44(DAT_182671dc8,DAT_182671dc8);
  uVar15 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0xd88) = uVar21 << (((byte)uVar5 ^ 0xf2) & 0x3f);
  uVar23 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar2 + -0x110) =
       (ulonglong)*(ushort *)(lVar2 + -0x882) ^ (ulonglong)(uVar6 >> 0x10) ^ uVar23;
  uVar25 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar24 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x5e2e3fcb)) =
       (*(ulonglong *)(lVar2 - (uVar15 ^ 0x6f279e14)) ^ uVar23 | uVar21) ^ uVar25;
  uVar23 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  puVar18 = (ulonglong *)(lVar2 - (uVar22 ^ 0xf4f64c17));
  *puVar18 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xfe08d9c7)) ^ uVar23 ^ uVar25 ^ uVar31 ^
             *(ulonglong *)(lVar2 + -0x628);
  uVar9 = DAT_182671c80;
  uVar22 = (ulonglong)DAT_182671c84;
  uVar15 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar2 + -0x760) =
       CONCAT44(DAT_182671c80,DAT_182671c84) ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x7e8) ^
       0x922efd97b1c25be5;
  uVar21 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xb5f701cb)) =
       (uVar23 ^ *puVar18) + (uVar17 ^ *(ulonglong *)(lVar2 + -0xb20)) ^ uVar21;
  lVar3 = DAT_182671c40;
  *(uint *)(lVar2 + -0x76c) = (DAT_182671c74 ^ 0x93293d1d) * *(int *)(lVar2 + -0x4ac);
  uVar10 = DAT_182671d1c;
  uVar6 = DAT_182671c94;
  uVar25 = (ulonglong)DAT_182671c94;
  uVar24 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar27 = (*(ulonglong *)(lVar3 - (uVar25 ^ 0xb3ffde12)) ^ uVar23) << 0x34;
  *(ulonglong *)(lVar3 + -0x228) = uVar27 ^ CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar17 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x7c0) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x2b0)) >> (((byte)uVar29 ^ 0xb7) & 0x3f) ^ uVar24;
  lVar2 = DAT_182671c40;
  uVar15 = *(ulonglong *)(DAT_182671c40 + -0x920);
  uVar23 = CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar24 = (*(ulonglong *)(lVar3 - (uVar20 ^ 0x96e83f2c)) ^ uVar24 | uVar27) ^ uVar17;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar24;
  *(ulonglong *)(lVar2 + -0xd88) = uVar23 ^ uVar24 ^ uVar17 ^ uVar21 ^ uVar15;
  uVar24 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar2 + -0x888) = (uVar21 ^ uVar15) + 0x63bf1ff7476e001;
  uVar5 = DAT_182671c54;
  uVar17 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x9ffabe7c)) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x628)) + (*(ulonglong *)(lVar2 + -0xa60) ^ uVar26) ^
       uVar17;
  uVar11 = DAT_182671fa8;
  uVar26 = *(ulonglong *)(lVar2 + -0xa60) ^ uVar26;
  uVar30 = (ulonglong)DAT_182671c6c;
  uVar15 = uVar26 << (((byte)uVar6 ^ 0x9b) & 0x3f);
  uVar26 = uVar26 >> (((byte)DAT_182671c64 ^ 0xec) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = uVar15 ^ CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar10 = DAT_182671d7c;
  *(ulonglong *)(lVar2 + -0xa70) = uVar26 ^ CONCAT44(uVar11,uVar11);
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x25670365)) = (uVar26 | uVar15) ^ uVar24;
  uVar20 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar15 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x32420af0)) ^
           *(ulonglong *)(lVar2 - (uVar30 ^ 0x48d228f)) ^ uVar20 ^ uVar24 ^ uVar17;
  uVar27 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar2 + -0x760) = uVar15;
  uVar22 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar2 + -0xb20) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x920)) + (uVar15 ^ uVar20) ^ uVar27;
  uVar6 = DAT_182671c5c;
  *puVar35 = (uVar20 ^ uVar15) << ((bVar33 ^ 0xfb) & 0x3f) ^ uVar22;
  uVar24 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0x4903942c)) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x760)) >> ((bVar14 ^ 0x83) & 0x3f) ^ uVar24;
  uVar10 = DAT_182671e78;
  uVar15 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar24 = (uVar24 ^ *(ulonglong *)(lVar2 + -0x228) | uVar22 ^ *(ulonglong *)(lVar2 + -0x2b0)) ^
           uVar15;
  *(ulonglong *)(lVar2 + -0x7c0) = uVar24;
  lVar3 = DAT_182671c40;
  uVar22 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xb08) =
       uVar22 ^ uVar24 ^ uVar15 ^ uVar27 ^ *(ulonglong *)(lVar2 + -0xb20);
  lVar2 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x25670c05)) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0x380)) + (uVar23 ^ *(ulonglong *)(lVar3 + -0xd88)) ^
       uVar20;
  uVar23 = uVar23 ^ *(ulonglong *)(lVar2 + -0xd88);
  uVar17 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar2 + -0x628) = uVar23 << (((byte)uVar6 ^ 0x9f) & 0x3f) ^ uVar17;
  uVar15 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  puVar18 = (ulonglong *)(lVar2 - (uVar25 ^ 0xb3ffd6c2));
  uVar24 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *puVar18 = uVar23 >> (((byte)uVar8 ^ 0xbf) & 0x3f) ^ uVar15;
  uVar10 = DAT_182671eec;
  uVar15 = (*(ulonglong *)(lVar2 + -0xa60) ^ uVar15 | *(ulonglong *)(lVar2 + -0x628) ^ uVar17) ^
           uVar24;
  *(ulonglong *)(lVar2 + -0x110) = uVar15;
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xfe08d9c7)) =
       uVar20 ^ uVar23 ^ uVar15 ^ uVar24 ^ *(ulonglong *)(lVar2 + -0x888);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xb7d30f16)) =
       (CONCAT44(uVar29,uVar7) ^ 0xfef8e90dc01f7623) + 0x2dd7e55c37cfa9e7;
  uVar10 = DAT_182671df4;
  uVar17 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar3 + -0x920) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0xb20)) + (*(ulonglong *)(lVar3 + -0xa70) ^ uVar23) ^
       uVar17;
  lVar2 = DAT_182671c40;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 - (uVar30 ^ 0x48d2207)) =
       (*puVar34 ^ uVar23) << (((byte)uVar6 ^ 0xb2) & 0x3f) ^ uVar25;
  uVar23 = *(ulonglong *)(lVar2 + -0xa70) ^ uVar23;
  bVar14 = (byte)DAT_182671c64;
  *(byte *)(lVar2 + -0x2ba) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x1a8) ^ (ulonglong)DAT_182671d20) ^ (byte)DAT_182671f14;
  uVar10 = DAT_182671e4c;
  uVar27 = uVar23 >> ((bVar14 ^ 0xd0) & 0x3f);
  uVar15 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar2 + -0xd88) = uVar23 << 0x27;
  uVar11 = DAT_182671e68;
  *(ulonglong *)(lVar2 + -0x228) = uVar27 ^ uVar15;
  uVar12 = DAT_182671f70;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar23 = (uVar27 | uVar25 ^ *(ulonglong *)(lVar2 + -0x760)) ^ uVar24;
  uVar15 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar2 + -0x2b0) = uVar23;
  *(ulonglong *)(lVar2 + -0x7c0) =
       (CONCAT44(uVar9,uVar4) ^ 0x1262992bae941e22) <<
       (((byte)uVar10 ^ *(byte *)(lVar2 + -0x228)) & 0x3f);
  *(ulonglong *)(lVar2 + -0x380) =
       uVar15 ^ uVar23 ^ uVar24 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0x920);
  *puVar18 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x888)) + (uVar22 ^ *(ulonglong *)(lVar2 + -0xb08)) ^
             CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0xb08)) << ((bVar28 ^ 0xdb) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  uVar15 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar2 + -0x7e8) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0xb08)) >> ((bVar33 ^ 0xf7) & 0x3f) ^
       CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x9ffab6dc)) =
       *(ulonglong *)(lVar2 - (uVar15 ^ 0x2567034d)) | 0x43129384cb6d1ded;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar29;
  return;
}



############ FUN_ 180ff7590 size=4322 ############

void FUN_180ff7590(void)

{
  byte *pbVar1;
  longlong lVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  uint uVar19;
  byte *pbVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  byte local_res20;
  
  uVar11 = DAT_182671f3c;
  uVar30 = DAT_182671c94;
  uVar31 = DAT_182671c6c;
  uVar12 = DAT_182671c68;
  uVar6 = DAT_182671c58;
  uVar33 = DAT_182671c54;
  uVar28 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar17 = (ulonglong)DAT_182671c6c;
  uVar34 = (ulonglong)DAT_182671c94;
  uVar16 = (ulonglong)DAT_182671c54;
  uVar36 = DAT_182671c60 & DAT_182671c68;
  uVar22 = DAT_182671c58 & DAT_182671c54;
  uVar15 = (ulonglong)DAT_182671c50;
  uVar18 = DAT_182671c94;
  if ((DAT_182671c6c & 1) == 0) {
    uVar18 = DAT_182671c6c;
  }
  uVar8 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar18 ^ 0x80a20440) + (longlong)DAT_182671fd4) ^
          DAT_182671c94;
  uVar9 = *(uint *)(&DAT_182613220 + DAT_182671fd4) ^ DAT_182671c50;
  uVar19 = DAT_182671e90 ^ DAT_182671e14 ^ *(uint *)(DAT_182671c40 + -0x4ac);
  uVar10 = *(uint *)(DAT_182671c40 + -0x58c) ^ DAT_182671f3c;
  DAT_182671c84 = uVar18;
  DAT_182671c88 = uVar36;
  DAT_182671c90 = uVar22;
  *(uint *)(DAT_182671c40 + -0x94c) = uVar19;
  uVar19 = uVar19 ^ DAT_182671e3c ^ DAT_182671e90;
  *(uint *)(lVar2 + -0x684) = uVar10 ^ DAT_182671d58;
  *(uint *)(lVar2 + -0x644) = uVar19;
  uVar19 = DAT_182671fa8;
  bVar3 = (byte)DAT_182671eec;
  uVar13 = (ulonglong)uVar12;
  uVar14 = (ulonglong)DAT_182671dec;
  uVar32 = (ulonglong)uVar22;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x1200168)) =
       (CONCAT44(uVar31,uVar6) ^ 0xef98fff55129181b) * 0x20 +
       (CONCAT44(uVar33,uVar12) ^ 0x81e28458c7e6ccd0) + *(longlong *)(lVar2 + -0x9a8) ^ uVar14;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(uVar14 ^ *(ulonglong *)(lVar2 + -0x170)) ^ bVar3 ^ (byte)DAT_182671e0c;
  uVar14 = (ulonglong)uVar36;
  *(ulonglong *)(lVar2 + -0xa70) = CONCAT44(uVar36,DAT_182671c60) ^ 0x3e6713ea09648a05;
  pbVar20 = (byte *)(lVar2 - (uVar17 ^ 0xef98fe36));
  uVar10 = *(uint *)(lVar2 + -0x644) ^ DAT_182671e3c;
  *(uint *)(lVar2 + -0x94) = (bVar3 ^ *pbVar20) ^ uVar19;
  bVar3 = (byte)DAT_182671c60;
  *(uint *)(lVar2 - (uVar17 ^ 0xef98f511)) = uVar10 + (uVar6 ^ 0xcd6b0a05) ^ DAT_182671d10;
  uVar19 = uVar19 ^ *(uint *)(lVar2 + -0x94);
  uVar10 = *(uint *)(lVar2 + -0xae4) ^ DAT_182671d10;
  *(uint *)(lVar2 + -0x61c) = uVar19 << ((bVar3 ^ 0x42) & 0x1f) ^ DAT_182671d5c;
  uVar23 = uVar10 - (*(uint *)(lVar2 - ((ulonglong)uVar18 ^ 0x80a20254)) ^ DAT_182671d5c) ^
           DAT_182671cac;
  *(uint *)(lVar2 + -0x76c) = uVar23;
  uVar10 = DAT_182671da0;
  uVar23 = (*(uint *)(lVar2 - (uVar34 ^ 0x80a202cc)) ^ uVar11) * (uVar23 ^ DAT_182671cac) ^
           DAT_182671ca0;
  *(uint *)(lVar2 + -0x9dc) = (DAT_182671c84 ^ 0x80a20442) * uVar19 ^ DAT_182671ee8;
  uVar21 = (ulonglong)DAT_182671d20;
  *(uint *)(lVar2 + -0x6c0) = uVar23;
  *(byte *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x9b0e7090)) =
       *(byte *)(uVar21 ^ *(ulonglong *)(lVar2 + -0x5a0)) ^ (byte)DAT_182671e0c;
  uVar19 = (*(uint *)(lVar2 - ((ulonglong)uVar28 ^ 0xb9583b4e)) ^ DAT_182671ca0) +
           (*(uint *)(lVar2 + -0x9dc) ^ DAT_182671ee8);
  *(uint *)(lVar2 + -0x54) = uVar19 ^ uVar10;
  uVar10 = (uVar10 ^ *(uint *)(lVar2 + -0x54)) >> (((byte)uVar22 ^ 0xb) & 0x1f) ^ DAT_182671e64;
  *(uint *)(lVar2 + -0x634) = uVar19 << (((byte)uVar22 ^ 0x15) & 0x1f) ^ DAT_182671cc4;
  *(uint *)(lVar2 - (uVar15 ^ 0xb9583c46)) = uVar10;
  uVar29 = DAT_182671f94;
  uVar15 = (ulonglong)DAT_182671e6c;
  uVar10 = (*(uint *)(lVar2 - (uVar13 ^ 0xc7e6cd12)) ^ DAT_182671e64 |
           *(uint *)(lVar2 + -0x634) ^ DAT_182671cc4) ^ DAT_182671d34;
  *(uint *)(lVar2 + -0x58c) =
       (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) + (uVar11 ^ *(uint *)(lVar2 + -0x684)) ^
       DAT_182671f94;
  *(uint *)(lVar2 + -0x784) = uVar10;
  uVar19 = *(uint *)(lVar2 - (uVar16 ^ 0x81e281d4)) ^ DAT_182671eac ^ uVar29;
  uVar11 = DAT_182671d38 ^ DAT_182671d34;
  *(ulonglong *)(lVar2 + -0xa08) =
       CONCAT44(uVar36,uVar6) ^ 0x15523db468d7832f | *(ulonglong *)(lVar2 + -0xa50);
  *(uint *)(lVar2 + -0x644) = uVar11 ^ uVar10;
  *(uint *)(lVar2 + -0x94c) = uVar19;
  uVar24 = DAT_182671f84;
  uVar10 = DAT_182671c60;
  uVar11 = uVar19 ^ DAT_182671f84 ^ DAT_182671eac;
  *(ulonglong *)(lVar2 + -0xf0) =
       CONCAT44(uVar12,uVar22) ^ 0xa48e219909fab43f | CONCAT44(uVar33,uVar18) ^ 0xbb1e6dbc91097242;
  *(uint *)(lVar2 + -0xae4) = uVar11;
  uVar11 = DAT_182671c84 ^ 0x8f3d7c81;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x51291d0b)) =
       (CONCAT44(uVar10,uVar28) ^ 0x71d2f9daa8ee4203) + 0x676d2f6528ea8998;
  *(uint *)(lVar2 + -0x61c) = *(uint *)(lVar2 + -0x644) ^ DAT_182671f8c ^ DAT_182671d38;
  *(uint *)(lVar2 + -0x76c) = uVar11 + (uVar28 ^ 0x251a2f90);
  uVar19 = DAT_182671e60;
  uVar11 = DAT_182671e28;
  lVar4 = DAT_182671c40;
  uVar27 = DAT_182671e28 & 0xff;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x81e28878)) =
       (CONCAT44(uVar31,uVar36) ^ 0xef98fff583064052) * 0x20 +
       (CONCAT44(uVar30,uVar30) ^ 0x80a2044880a2045d) + *(longlong *)(lVar2 + -0x9a8) ^ uVar15;
  uVar18 = DAT_182671d98;
  uVar23 = DAT_182671cb0;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xc20) ^ uVar15) ^ (byte)uVar11 ^ (byte)DAT_182671e0c;
  uVar27 = uVar27 ^ *pbVar20;
  uVar11 = *(uint *)(lVar2 + -0x61c) ^ DAT_182671f8c;
  *(uint *)(lVar2 + -0x94) = uVar27 ^ uVar23;
  *(uint *)(lVar2 + -0x6c0) = uVar11 + (uVar36 ^ 0x1f44524c) ^ uVar19;
  *(uint *)(lVar4 + -0x9dc) =
       (*(uint *)(DAT_182671c40 - (uVar13 ^ 0xc7e6c876)) ^ DAT_182671e14) +
       (*(uint *)(lVar4 + -0x58c) ^ uVar29);
  uVar11 = DAT_182671c48;
  *(uint *)(lVar4 + -0x54) = uVar27 << (((byte)uVar6 ^ 10) & 0x1f) ^ uVar18;
  uVar15 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar4 - (uVar14 ^ 0x83064062)) =
       CONCAT44(uVar11,uVar10) ^ 0x18664bb058bbfa18 | *(ulonglong *)(lVar4 + -0xda8);
  *(uint *)(lVar4 - (uVar15 ^ 0x4804a4b4)) =
       (uVar19 ^ *(uint *)(lVar4 + -0x6c0)) - (uVar18 ^ *(uint *)(lVar4 + -0x54)) ^ DAT_182671d50;
  uVar29 = DAT_182671d40;
  uVar36 = DAT_182671c74;
  uVar18 = DAT_182671c5c;
  uVar11 = DAT_182671c4c;
  uVar19 = DAT_182671c5c ^ 0xc7cd5ae1;
  *(uint *)(lVar4 + -0x1c8) =
       (*(uint *)(lVar4 + -0xae4) ^ uVar24) * (*(uint *)(lVar4 + -0x634) ^ DAT_182671d50) ^
       DAT_182671efc;
  *(uint *)(lVar4 - (uVar16 ^ 0x81e282dc)) = (uVar28 ^ 0x7f86987d) + uVar19;
  uVar19 = DAT_182671c80;
  uVar35 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar4 - (uVar32 ^ 0x120079c)) =
       (*(uint *)(lVar4 - (uVar17 ^ 0xef98ff61)) ^ uVar23) * 0x15 ^ uVar29;
  uVar23 = DAT_182671d4c;
  uVar29 = (*(uint *)(lVar4 + -0x1c8) ^ DAT_182671efc) + (uVar29 ^ *(uint *)(lVar4 + -0x784));
  *(uint *)(lVar4 + -0x94c) = uVar29 ^ DAT_182671d4c;
  uVar7 = DAT_182671f98;
  uVar15 = CONCAT44(uVar30,DAT_182671c8c);
  uVar30 = uVar29 >> 0x13 ^ DAT_182671f98;
  *(uint *)(lVar4 + -0x644) =
       (*(uint *)(lVar4 - ((ulonglong)uVar36 ^ 0x9b0e781f)) ^ uVar23) <<
       (((byte)uVar28 ^ 0x83) & 0x1f) ^ DAT_182671d68;
  *(ulonglong *)(lVar4 + -0xd88) =
       (uVar15 ^ 0x3535ac7fcc71149a) << ((byte)*(undefined8 *)(lVar4 + -0x8f0) & 0x3f);
  *(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0x81e28334)) = uVar30;
  uVar29 = DAT_182671f4c;
  uVar27 = DAT_182671eb8;
  uVar30 = DAT_182671c64;
  lVar2 = DAT_182671c40;
  uVar15 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar4 - (uVar35 ^ 0x100020c)) =
       (*(uint *)(lVar4 + -0x644) ^ DAT_182671d68 | uVar7 ^ *(uint *)(lVar4 + -0x76c)) ^
       DAT_182671ecc;
  local_res20 = (byte)uVar12;
  uVar12 = *(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4;
  *(ulonglong *)(lVar2 + -0x380) =
       (CONCAT44(uVar22,uVar30) ^ 0x6e7ab33f7adecd14) >> ((local_res20 ^ 0xe0) & 0x3f);
  uVar22 = DAT_182671d94;
  *(uint *)(lVar2 + -0x4ac) = (*(uint *)(lVar2 + -0xae4) ^ uVar24) + uVar12 ^ uVar27;
  uVar23 = DAT_182671dcc;
  uVar12 = *(uint *)(lVar2 - (uVar16 ^ 0x81e280f4)) ^ uVar22 ^ uVar27;
  *(uint *)(lVar2 + -0x58c) = uVar12;
  *(uint *)(lVar2 + -0x9dc) =
       *(uint *)(lVar2 - ((ulonglong)uVar18 ^ 0x1008470e)) ^ DAT_182671df0 ^ DAT_182671ecc;
  *(uint *)(lVar2 - (uVar15 ^ 0x74f9c97f)) = uVar12 ^ uVar23 ^ uVar22;
  uVar15 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar2 + -0x628) =
       *(longlong *)(lVar2 - (uVar16 ^ 0x81e284a8)) -
       (CONCAT44(uVar18,DAT_182671c84) ^ 0x49ac23c3823f7254);
  *(uint *)(lVar2 + -0x54) = *(uint *)(lVar2 + -0x9dc) ^ uVar29 ^ DAT_182671df0;
  bVar3 = (byte)DAT_182671f88;
  uVar25 = CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar21 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar26 = (ulonglong)DAT_182671c78;
  uVar16 = (ulonglong)DAT_182671e28;
  *(ulonglong *)(lVar2 + -0x5e8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar15 ^ 0x71539666)) ^ uVar25) ^ uVar21;
  pbVar1 = *(byte **)(lVar2 - (uVar26 ^ 0x80a289e0));
  *(ulonglong *)(lVar2 + -0xbc0) = (ulonglong)pbVar1 ^ uVar16;
  *(byte *)(lVar2 + -0x1c3) = *pbVar1 ^ bVar3 ^ (byte)DAT_182671e0c;
  uVar18 = DAT_182671e98;
  lVar4 = DAT_182671c40;
  *(longlong *)(lVar2 + -0x760) =
       *(longlong *)(lVar2 - (uVar26 ^ 0x80a283c8)) << (((byte)uVar36 ^ 0x72) & 0x3f);
  uVar36 = DAT_182671dd0;
  uVar16 = (ulonglong)DAT_182671c60;
  *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x51291e2f)) =
       (bVar3 ^ *(byte *)(lVar2 + -0x1c3)) ^ DAT_182671dd0;
  bVar3 = (byte)DAT_182671c84;
  *(uint *)(lVar4 - (uVar16 ^ 0x9b0e77d7)) =
       (uVar29 ^ *(uint *)(lVar4 + -0x54)) + (DAT_182671c54 ^ 0x1da09646) ^ uVar18;
  uVar12 = DAT_182671da4;
  uVar29 = (*(uint *)(lVar4 + -0x634) ^ uVar36) << ((bVar3 ^ 0x59) & 0x1f) ^ DAT_182671d44;
  *(uint *)(lVar4 + -0x94) = uVar29;
  uVar24 = (uVar18 ^ *(uint *)(lVar4 + -0x684)) - (uVar29 ^ DAT_182671d44);
  *(uint *)(lVar4 + -0x1c8) = uVar24 ^ uVar12;
  uVar29 = DAT_182671eb0;
  uVar18 = DAT_182671c70;
  uVar26 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar4 - (uVar14 ^ 0x830647d6)) =
       (*(uint *)(lVar4 - (uVar13 ^ 0xc7e6ca1a)) ^ uVar23) * uVar24 ^ uVar27;
  uVar12 = DAT_182671c6c;
  uVar36 = (*(uint *)(lVar4 + -0x634) ^ uVar36) * (DAT_182671c6c ^ 0xef98fff5) ^ DAT_182671ca8;
  *(uint *)(lVar4 + -0x94c) = uVar36;
  uVar27 = (uVar36 ^ DAT_182671ca8) + (uVar27 ^ *(uint *)(lVar4 + -0x784));
  *(uint *)(lVar4 + -0x644) = uVar27 ^ uVar29;
  uVar36 = (*(uint *)(lVar4 - ((ulonglong)uVar19 ^ 0x1000254)) ^ uVar29) <<
           (((byte)uVar11 ^ 0x55) & 0x1f);
  uVar27 = uVar27 >> 0x13;
  *(uint *)(lVar4 + -0x76c) = uVar36 ^ DAT_182671ed4;
  uVar19 = uVar27 ^ DAT_182671e2c;
  *(ulonglong *)(lVar4 + -0x2b0) =
       CONCAT44(uVar30,uVar11) ^ *(ulonglong *)(lVar4 + -0xf0) ^ 0x18eacaa69ea5351f;
  *(uint *)(lVar4 + -0xae4) = uVar19;
  *(uint *)(lVar4 - (uVar35 ^ 0x10000bc)) = (uVar27 | uVar36) ^ DAT_182671d8c;
  *(uint *)(lVar4 - (uVar32 ^ 0x1200604)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x51291dcf)) ^ DAT_182671dd4) +
       (uVar23 ^ *(uint *)(lVar4 + -0x6c0)) ^ DAT_182671cfc;
  uVar19 = *(uint *)(lVar4 + -0x61c) ^ DAT_182671cfc;
  *(ulonglong *)(lVar4 + -0x680) = *(ulonglong *)(lVar4 + -0x760) | 0x853429f926ede132;
  uVar19 = uVar19 ^ uVar22;
  *(uint *)(lVar4 + -0x58c) = uVar19;
  *(ulonglong *)(lVar4 + -0x7e8) =
       (CONCAT44(uVar18,uVar28) ^ 0x6144aff8bb01a4d6) - *(longlong *)(lVar4 + -0xa50);
  uVar11 = DAT_182671d74;
  uVar30 = DAT_182671d14;
  uVar28 = DAT_182671c70;
  lVar2 = DAT_182671c40;
  uVar19 = uVar19 ^ DAT_182671d74;
  uVar15 = (ulonglong)DAT_182671ef4;
  *(uint *)(lVar4 + -0x9dc) = DAT_182671e58 ^ DAT_182671d8c ^ *(uint *)(lVar4 + -0x4ac);
  uVar36 = DAT_182671e24;
  lVar5 = DAT_182671c40;
  uVar12 = uVar28 + uVar12;
  *(uint *)(lVar4 + -0x54) = uVar19 ^ uVar22;
  uVar16 = (ulonglong)DAT_182671c7c;
  DAT_182671c54 = uVar12;
  *(ulonglong *)(lVar4 + -0x888) =
       CONCAT44(uVar33,uVar33) ^ 0x3ab755de579ae074 | *(ulonglong *)(lVar4 + -0xf0);
  *(uint *)(lVar4 + -0x684) = *(uint *)(lVar4 - (uVar16 ^ 0xc6a6c116)) ^ uVar30 ^ DAT_182671e58;
  *(ulonglong *)(lVar2 + -0x170) =
       (CONCAT44(uVar31,uVar12) ^ 0xef98fff5379da27e) +
       (CONCAT44(uVar12,uVar18) ^ 0x379da2754804a280) * 0x20 + *(longlong *)(lVar2 + -0x9a8) ^
       uVar15;
  bVar3 = (byte)DAT_182671f54;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0xef98f835)) =
       *(ulonglong *)(lVar2 - (uVar26 ^ 0x4804a270)) ^ 0xbaf9e5371ef991ad;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0x379da3b6)) =
       *(byte *)(uVar15 ^ *(ulonglong *)(DAT_182671c40 + -0x170)) ^ (byte)DAT_182671e0c ^ bVar3;
  *(ulonglong *)(lVar5 + -0xbd8) =
       (CONCAT44(uVar31,uVar18) ^ 0xc9caa8b0dc1f0f56) << (((byte)uVar12 ^ 0x44) & 0x3f);
  uVar33 = DAT_182671ce8;
  *(uint *)(lVar5 + -0x94) = (*pbVar20 ^ bVar3) ^ uVar36;
  uVar31 = DAT_182671f14;
  *(uint *)(lVar5 - (uVar17 ^ 0xef98fe3d)) =
       (uVar30 ^ *(uint *)(lVar5 + -0x684)) + (uVar28 ^ 0xd446b09e) ^ DAT_182671f7c;
  uVar30 = (uVar36 ^ *(uint *)(lVar5 + -0x94)) << (((byte)uVar12 ^ 100) & 0x1f);
  *(uint *)(lVar5 + -0x634) = uVar30 ^ uVar31;
  uVar30 = (*(uint *)(lVar5 + -0x1c8) ^ DAT_182671f7c) - uVar30;
  *(ulonglong *)(lVar5 + -0x4b8) =
       *(ulonglong *)(lVar5 - (uVar17 ^ 0xef98f7dd)) ^ CONCAT44(uVar12,uVar18) ^ 0x6dd47ca0eb4fa817;
  *(uint *)(lVar5 + -0x784) = uVar30 ^ DAT_182671d00;
  uVar12 = DAT_182671d18;
  uVar30 = uVar30 * (uVar11 ^ *(uint *)(lVar5 + -0x54));
  uVar31 = (uVar36 ^ *(uint *)(lVar5 + -0x94)) * (DAT_182671c84 ^ 0x80a20443);
  *(uint *)(lVar5 + -0x94c) = uVar30 ^ uVar33;
  *(uint *)(lVar5 + -0x644) = uVar31 ^ uVar12;
  uVar33 = DAT_182671f40;
  uVar30 = uVar30 + uVar31;
  *(uint *)(lVar5 + -0x76c) = uVar30 ^ DAT_182671f40;
  *(uint *)(lVar5 + -0x6c0) =
       (uVar33 ^ *(uint *)(lVar5 + -0x76c)) >> (((byte)uVar28 ^ 0x93) & 0x1f) ^ DAT_182671ea4;
  uVar28 = uVar30 * 0x2000 ^ DAT_182671f44;
  *(uint *)(lVar5 + -0xae4) = uVar28;
  uVar33 = (*(uint *)(lVar5 - (uVar14 ^ 0x83064692)) ^ DAT_182671ea4 | uVar28 ^ DAT_182671f44) ^
           DAT_182671f04;
  *(uint *)(lVar5 + -0x61c) = uVar33;
  uVar28 = (*(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4) + (uVar11 ^ *(uint *)(lVar5 + -0x54)) ^
           DAT_182671e98;
  uVar31 = uVar33 ^ DAT_182671d7c ^ DAT_182671f04;
  uVar12 = DAT_182671f00 ^ DAT_182671e98 ^ uVar28;
  uVar17 = (ulonglong)DAT_182671c48;
  uVar33 = DAT_182671c60 ^ 0x2f560f6d;
  *(uint *)(lVar5 + -0x4ac) = uVar28;
  *(uint *)(lVar5 + -0x58c) = uVar12;
  uVar28 = uVar12 ^ DAT_182671ee4 ^ DAT_182671f00;
  *(ulonglong *)(lVar5 + -0x920) = *(ulonglong *)(*(ulonglong *)(lVar5 + -0xd68) ^ uVar25) ^ uVar21;
  *(uint *)(lVar5 + -0x9dc) = uVar31;
  *(uint *)(lVar5 + -0x684) = uVar28;
  *(uint *)(lVar5 - (uVar17 ^ 0x71539ac6)) =
       *(uint *)(lVar5 - (uVar34 ^ 0x80a20d94)) ^ DAT_182671cd0 ^ DAT_182671d7c;
  uVar17 = (ulonglong)DAT_182671d4c;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x4804a720)) =
       (CONCAT44(uVar10,uVar6) ^ 0x9b0e71535129180d) + *(longlong *)(lVar5 + -0x9a8) ^ uVar17;
  *(uint *)(lVar5 - (uVar32 ^ 0x120062c)) = uVar33 + 0xdb37c23b;
  *(byte *)(lVar5 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x5a0) ^ uVar17) ^ (byte)DAT_182671e80 ^
       (byte)DAT_182671e0c;
  lVar2 = *(longlong *)(lVar5 + -0xa60);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar8;
  *(longlong *)(lVar5 - (uVar14 ^ 0x83064b72)) = lVar2 + 0x66ee2c66721b6a6c;
  return;
}



############ FUN_ 180f4f120 size=5759 ############

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

void FUN_180f4f120(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  ulonglong *puVar9;
  uint uVar10;
  uint uVar11;
  longlong lVar12;
  longlong lVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  uint uVar24;
  ulonglong uVar25;
  byte bVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  byte local_res18;
  byte local_120;
  byte local_f0;
  byte local_78;
  
  uVar21 = DAT_182671c94;
  uVar20 = DAT_182671c84;
  uVar19 = DAT_182671c78;
  uVar18 = DAT_182671c74;
  uVar17 = DAT_182671c68;
  uVar16 = DAT_182671c5c;
  uVar14 = DAT_182671c4c;
  lVar12 = DAT_182671c40;
  uVar40 = (ulonglong)DAT_182671c74;
  uVar28 = (ulonglong)DAT_182671c84;
  uVar35 = DAT_182671c74 ^ DAT_182671c64;
  uVar42 = (ulonglong)DAT_182671c68;
  uVar47 = (ulonglong)DAT_182671c4c;
  uVar34 = (ulonglong)DAT_182671c5c;
  uVar50 = (ulonglong)DAT_182671c94;
  uVar33 = DAT_182671c5c - DAT_182671c6c;
  uVar36 = DAT_182671c84 & DAT_182671c94;
  uVar30 = DAT_182671c68 * DAT_182671c78;
  uVar46 = DAT_182671c4c << 0x10 | DAT_182671c4c >> 0x10;
  uVar10 = *(uint *)(&DAT_182613210 + (uVar40 ^ 0xa10f8ff0) + (longlong)DAT_182672180);
  uVar24 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c84 ^ 0x60b08b50) + (longlong)DAT_182672180) ^
           DAT_182671c64;
  uVar37 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  bVar26 = (byte)DAT_182671c94;
  uVar41 = (ulonglong)DAT_182671c78;
  uVar25 = CONCAT44(DAT_182671c68,DAT_182671c78);
  DAT_182671c48 = uVar36;
  DAT_182671c58 = uVar35;
  DAT_182671c70 = uVar30;
  DAT_182671c88 = uVar46;
  DAT_182671c90 = uVar33;
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       (CONCAT44(DAT_182671fb4,DAT_182671fb4) ^ *(ulonglong *)(DAT_182671c40 + -0x960)) <<
       ((bVar26 ^ 0xcb) & 0x3f) ^ uVar37;
  lVar13 = DAT_182671c40;
  puVar1 = (ulonglong *)(lVar12 + -0xa50);
  *puVar1 = uVar25 ^ 0xcffd77befffbb7ff | 0x4dd8738cfdf097aa;
  uVar43 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  puVar2 = (ulonglong *)(lVar13 + -0x228);
  uVar37 = *(ulonglong *)(lVar13 - ((ulonglong)uVar21 ^ 0xff3df5c7)) ^
           CONCAT44(DAT_182671d10,DAT_182671d10) |
           *(ulonglong *)(lVar13 - ((ulonglong)uVar30 ^ 0x3518b5fb)) ^ uVar37;
  uVar29 = uVar37 ^ uVar43;
  uVar38 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  uVar25 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar13 + -0xbd8) = uVar29;
  uVar37 = (uVar25 ^ *puVar2) - uVar37;
  uVar48 = uVar37 ^ uVar38;
  *(ulonglong *)(lVar13 + -0x680) = uVar48;
  uVar11 = DAT_182671c6c;
  puVar3 = (ulonglong *)(lVar13 + -0x5e8);
  uVar51 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar45 = CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar25 = (ulonglong)uVar35;
  puVar31 = (ulonglong *)(lVar13 + -0xd88);
  uVar29 = *(ulonglong *)(lVar13 - ((ulonglong)uVar35 ^ 0x40bf7834)) ^ uVar45 ^ uVar51 ^ uVar43 ^
           uVar29;
  uVar44 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *puVar3 = uVar29;
  lVar12 = DAT_182671c40;
  uVar39 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar36 ^ 0x60308ca8)) ^ uVar51) >>
           (((byte)uVar11 ^ 0x37) & 0x3f);
  uVar43 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *puVar31 = uVar39 ^ uVar44;
  uVar32 = CONCAT44(DAT_182671f98,DAT_182671f98);
  puVar4 = (ulonglong *)(lVar12 + -0xc18);
  uVar52 = (uVar51 ^ uVar29) << (((byte)uVar33 ^ 0x28) & 0x3f);
  *(ulonglong *)(lVar12 + -0xf0) = uVar52 ^ uVar43;
  uVar39 = uVar39 | uVar52;
  *puVar4 = uVar39 ^ uVar32;
  uVar15 = DAT_182671eec;
  puVar5 = (ulonglong *)(lVar12 + -0xda8);
  *(ulonglong *)(lVar12 + -0xb18) = (CONCAT44(uVar46,uVar14) ^ 0x178b26ed1cc7c59b) + uVar37;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar12 + -0x510) =
       (*(ulonglong *)(lVar12 + -0x888) ^ uVar45) - (CONCAT44(uVar20,uVar17) ^ 0x192350c9f564aa71) ^
       uVar37;
  uVar15 = DAT_182671cc0;
  uVar51 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *puVar5 = (*(ulonglong *)(lVar12 - ((ulonglong)uVar14 ^ 0x5275d10)) ^ uVar37) - uVar39 ^ uVar51;
  lVar12 = DAT_182671c40;
  uVar45 = CONCAT44(uVar15,uVar15);
  puVar6 = (ulonglong *)(DAT_182671c40 + -0xc90);
  uVar43 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  puVar7 = (ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar14 ^ 0x5275418)) ^ uVar32) -
       (CONCAT44(uVar18,uVar33) ^ 0xf44a86aefa4a2215) ^ uVar45;
  uVar37 = (ulonglong)DAT_182671e5c;
  uVar29 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar32 = uVar43 ^ uVar29 ^ uVar48 ^ uVar38 ^ *puVar6;
  *puVar7 = uVar32;
  uVar11 = DAT_182671c64;
  uVar43 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar12 + -0x960) = (uVar32 >> 0x20 ^ uVar37) >> 1 ^ uVar43;
  *puVar1 = uVar39 - uVar52;
  uVar48 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(ulonglong *)(lVar12 - (uVar34 ^ 0xdceef335)) = (uVar32 ^ uVar29) << 0x1f ^ uVar48;
  uVar29 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(lVar12 - (uVar34 ^ 0xdceef505)) =
       (*(ulonglong *)(lVar12 - (uVar50 ^ 0xff3df09f)) ^ uVar43 |
       uVar48 ^ *(ulonglong *)(lVar12 + -0xa08)) ^ uVar29;
  uVar15 = DAT_182671e98;
  uVar37 = (uVar38 ^ *(ulonglong *)(lVar12 + -0x680)) -
           (CONCAT44(uVar11,uVar19) ^ 0xde2672cff0df14b8);
  puVar8 = (ulonglong *)(lVar12 + -0xc38);
  uVar29 = uVar29 ^ *puVar8;
  *puVar2 = uVar37 ^ CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar38 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar37 - uVar29 ^ uVar38;
  lVar12 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x60b08ea8)) =
       (CONCAT44(uVar11,uVar17) ^ 0x79292f310f1e1a85) + uVar29 ^ uVar37;
  uVar32 = (ulonglong)DAT_182671f94;
  uVar43 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar11 = DAT_182671f94 >> 5;
  uVar29 = *(ulonglong *)(lVar12 - ((ulonglong)uVar30 ^ 0x3518ba1b)) ^ uVar43 ^ uVar37 ^ uVar51 ^
           *puVar5;
  *puVar31 = uVar29;
  uVar37 = (uVar43 ^ uVar29) << (((byte)uVar30 ^ 200) & 0x3f);
  uVar39 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar29 = (uVar32 << 0x1b | (ulonglong)uVar11) ^ uVar29 >> 5;
  *(uint *)(lVar12 + -0x61c) = DAT_182671c6c ^ 0xa3d43df1 | *(uint *)(lVar12 + -0x5d4);
  uVar15 = DAT_182671d0c;
  *(ulonglong *)(lVar12 + -0xb18) = uVar29 ^ uVar39;
  uVar11 = DAT_182671c6c;
  *(ulonglong *)(lVar12 + -0x888) = uVar37 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671de8;
  uVar37 = uVar37 | uVar29;
  *(ulonglong *)(lVar12 + -0x510) = (CONCAT44(uVar11,uVar30) ^ 0xdb6bd35771f8bbf9) + uVar29;
  uVar52 = CONCAT44(uVar15,uVar15);
  *puVar6 = uVar37 ^ uVar52;
  lVar12 = DAT_182671c40;
  uVar49 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x40bf704c)) = (uVar51 ^ *puVar5) - uVar37 ^ uVar49;
  uVar32 = uVar38 ^ uVar45 ^ uVar44 ^ *(ulonglong *)(lVar12 + -0xbd8) ^
           *(ulonglong *)(lVar12 + -0x110);
  *puVar4 = uVar32;
  *puVar1 = CONCAT44(uVar19,uVar18) ^ uVar32 ^ uVar44 ^ 0xf989500afefb3e5c;
  local_f0 = (byte)uVar36;
  uVar37 = (uVar44 ^ uVar32) >> ((local_f0 ^ 0x65) & 0x3f);
  *puVar7 = uVar37 ^ CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar15 = DAT_182671f7c;
  uVar29 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar12 + -0x960) = (uVar44 ^ uVar32) << (((byte)uVar17 ^ 0x9c) & 0x3f) ^ uVar29;
  lVar12 = DAT_182671c40;
  uVar39 = CONCAT44(uVar15,uVar15);
  uVar37 = *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x430a1e7)) ^ uVar29 | uVar37;
  uVar29 = uVar37 ^ uVar39;
  uVar45 = CONCAT44(DAT_182671d78,DAT_182671d78);
  puVar9 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar29;
  *(ulonglong *)(lVar12 + -0x680) = (uVar38 ^ *puVar9) - uVar37 ^ uVar45;
  *puVar2 = CONCAT44(uVar21,uVar46) ^ 0x71ebf3e08811d45 |
            CONCAT44(uVar33,uVar35) ^ 0xe3a0937ba0299383;
  uVar37 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *puVar8 = uVar49 ^ uVar37 ^ uVar39 ^ uVar29 ^ *(ulonglong *)(lVar12 + -0xf0);
  *puVar3 = CONCAT44(uVar11,uVar20) ^ 0x57713a11b8a7856b | uVar44 ^ uVar32;
  uVar29 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  local_res18 = (byte)uVar18;
  *puVar31 = (*puVar8 ^ uVar37) >> (((byte)uVar20 ^ 0x57) & 0x3f) ^ uVar29;
  local_120 = (byte)uVar19;
  *(ulonglong *)(lVar12 - (uVar28 ^ 0x60b08e50)) =
       (CONCAT44(uVar16,uVar30) ^ 0x51cb573f981d8e86) >> ((local_res18 ^ 0xff) & 0x3f);
  lVar12 = DAT_182671c40;
  uVar37 = (*puVar8 ^ uVar37) << ((local_120 ^ 0x1c) & 0x3f);
  uVar44 = CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar53 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar37 ^ uVar44;
  *(ulonglong *)(lVar12 + -0x888) = (*puVar31 ^ uVar29 | uVar37) ^ uVar53;
  uVar29 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar12 - (uVar25 ^ 0x40bf7d14)) =
       (uVar49 ^ *(ulonglong *)(lVar12 + -0xf0)) -
       (*(ulonglong *)(lVar12 - ((ulonglong)DAT_182671c64 ^ 0xe1b0f7cc)) ^ uVar53) ^ uVar29;
  uVar15 = DAT_182671ce0;
  uVar32 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar38 = uVar52 ^ *puVar6 ^ *(ulonglong *)(lVar12 + -0x680) ^ uVar32 ^ uVar45;
  *(ulonglong *)(lVar12 + -0x110) = uVar38;
  lVar12 = DAT_182671c40;
  uVar37 = (uVar38 ^ uVar32) >> (((byte)uVar17 ^ 0xaf) & 0x3f);
  bVar27 = (byte)DAT_182671c6c;
  *puVar1 = uVar37 ^ CONCAT44(uVar15,uVar15);
  uVar38 = (uVar38 ^ uVar32) << ((bVar27 ^ 0x36) & 0x3f);
  *puVar7 = uVar38 ^ CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar15 = DAT_182671e64;
  uVar11 = DAT_182671c7c;
  uVar38 = uVar38 | uVar37;
  uVar37 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar12 + -0x960) = uVar38 ^ uVar37;
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar11 ^ 0x52753d8)) =
       (*(ulonglong *)(lVar12 - (uVar25 ^ 0x40bf763c)) ^ uVar45) - uVar38 ^ uVar32;
  uVar25 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *puVar2 = *(ulonglong *)(lVar12 + -0x960) ^ *puVar5 ^ uVar25 ^ uVar37 ^ uVar29;
  uVar15 = DAT_182671f80;
  *(ulonglong *)(lVar12 + -0xa08) =
       (*(ulonglong *)(lVar12 - (uVar47 ^ 0x5275a28)) ^ uVar25) >> ((local_f0 ^ 0x74) & 0x3f) ^
       uVar51;
  uVar37 = (*(ulonglong *)(lVar12 - (uVar50 ^ 0xff3dfbd7)) ^ uVar25) <<
           ((local_res18 ^ 0xf4) & 0x3f);
  *puVar4 = uVar37 ^ CONCAT44(uVar15,uVar15);
  uVar11 = DAT_182671c54;
  uVar52 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar25 = CONCAT44(uVar46,DAT_182671c64);
  uVar37 = *(ulonglong *)(lVar12 - (uVar50 ^ 0xff3df3f7)) ^ uVar51 | uVar37;
  uVar39 = (ulonglong)DAT_182671c54;
  *puVar3 = uVar37 ^ uVar52;
  uVar15 = DAT_182671cb0;
  *(ulonglong *)(lVar12 + -0x510) =
       uVar25 ^ 0xaa97d3b5366b65af | CONCAT44(uVar11,uVar33) ^ 0x63038b243af6d574;
  uVar21 = DAT_182671c8c;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar45 = (ulonglong)DAT_182671c8c;
  *puVar8 = (*puVar5 ^ uVar29) - uVar37 ^ uVar38;
  uVar30 = uVar21 + uVar11;
  bVar27 = (byte)uVar11;
  uVar29 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  DAT_182671c80 = uVar30;
  *(ulonglong *)(lVar12 - (uVar39 ^ 0xddeff18c)) =
       *(ulonglong *)(lVar12 - ((ulonglong)uVar30 ^ 0xbbdff080)) ^ *(ulonglong *)(lVar12 + -0xbd8) ^
       uVar29 ^ uVar32 ^ uVar53;
  uVar37 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar12 + -0xb18) = (*puVar31 ^ uVar29) >> ((bVar27 ^ 0x3d) & 0x3f) ^ uVar37;
  uVar15 = DAT_182671dd0;
  *(ulonglong *)(lVar12 + -0xf0) =
       (*(ulonglong *)(lVar12 - (uVar45 ^ 0xddeff71c)) ^ uVar37) -
       (CONCAT44(uVar11,uVar30) ^ 0x1149af04f6cc2993);
  uVar17 = DAT_182671c60;
  uVar25 = CONCAT44(uVar15,uVar15);
  uVar39 = (ulonglong)DAT_182671c60;
  *puVar6 = (*(ulonglong *)(lVar12 - ((ulonglong)uVar21 ^ 0xddeff18c)) ^ uVar29) <<
            ((bVar27 ^ 3) & 0x3f) ^ uVar25;
  lVar12 = DAT_182671c40;
  uVar25 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar30 ^ 0xbbdff310)) ^ uVar37 |
           *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0xfbcf5be8)) ^ uVar25;
  puVar9 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar50 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar37 = uVar25 ^ uVar44;
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar37;
  *puVar1 = (*puVar9 ^ uVar32) - uVar25 ^ uVar50;
  uVar39 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar25 = *puVar8;
  uVar37 = uVar25 ^ uVar39 ^ uVar38 ^ uVar44 ^ uVar37;
  *puVar7 = uVar37;
  uVar15 = DAT_182671f04;
  uVar29 = (uVar37 ^ uVar39) >> (((byte)uVar20 ^ 0x4e) & 0x3f);
  uVar32 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  *(ulonglong *)(lVar12 + -0x680) = uVar29 ^ uVar32;
  uVar39 = (uVar37 ^ uVar39) << ((bVar27 ^ 0x36) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar39 ^ CONCAT44(uVar15,uVar15);
  uVar39 = uVar39 | uVar29;
  *puVar2 = uVar39 ^ CONCAT44(DAT_182671f1c,DAT_182671f1c);
  uVar20 = DAT_182671c7c;
  lVar12 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       (uVar25 ^ uVar38) - (CONCAT44(uVar21,uVar18) ^ 0x84558fc99817b6c0) ^ uVar37;
  *(undefined4 *)(lVar12 + -0x670) = 0xf09ea000;
  *puVar4 = (*(ulonglong *)(lVar12 - ((ulonglong)uVar33 ^ 0x98b9a107)) ^ uVar37) - uVar39 ^ uVar44;
  lVar12 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       uVar39 - (CONCAT44(uVar19,uVar30) ^ 0x3ee95780e35ec2a6) ^ uVar29;
  *puVar5 = (CONCAT44(uVar36,uVar21) ^ 0x6d2956c54e0eba2e) + 0x2a3a0fad2f12afda;
  uVar25 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar12 + -0x888) =
       *(ulonglong *)(lVar12 - (uVar42 ^ 0x430a2d7)) ^ *puVar3 ^ uVar25 ^ uVar50 ^ uVar52;
  uVar15 = DAT_182671c50;
  uVar38 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar20 ^ 0x52758f0)) =
       (*(ulonglong *)(lVar12 - (uVar34 ^ 0xdceef1b5)) ^ uVar25) >> (((byte)uVar17 ^ 0x68) & 0x3f) ^
       uVar38;
  uVar25 = (*(ulonglong *)(lVar12 + -0x888) ^ uVar25) << 0x30;
  *puVar31 = (uVar37 ^ *(ulonglong *)(lVar12 + -0xa08)) + 0x5d20a24f642adb22;
  uVar23 = DAT_182671e78;
  *(ulonglong *)(lVar12 + -0xb18) = uVar25 ^ CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar22 = DAT_182671e14;
  uVar37 = CONCAT44(uVar23,uVar23);
  *puVar6 = (*(ulonglong *)(lVar12 - (uVar34 ^ 0xdceef9cd)) ^ uVar38 | uVar25) ^ uVar37;
  uVar25 = (ulonglong)DAT_182671c6c;
  uVar38 = (uVar50 ^ *puVar1) - (CONCAT44(uVar15,uVar19) ^ 0xae9af6af2cddcd2f);
  *(ulonglong *)(lVar12 + -0xbd8) = uVar38 ^ CONCAT44(uVar22,uVar22);
  *(ulonglong *)(lVar12 - (uVar40 ^ 0xa10f8ee8)) =
       uVar38 - (*(ulonglong *)(lVar12 - (uVar25 ^ 0x443542be)) ^ uVar37) ^ uVar48;
  uVar25 = *(ulonglong *)(lVar12 + -0x110);
  uVar37 = (CONCAT44(uVar11,uVar14) ^ 0x5e40a76a75633554) + (*puVar6 ^ uVar37) ^ uVar32;
  *puVar7 = uVar37;
  *(ulonglong *)(lVar12 + -0x680) = uVar48 ^ uVar25 | *puVar4 ^ uVar44;
  uVar38 = CONCAT44(DAT_182671db4,DAT_182671db4);
  local_78 = (byte)(uVar14 >> 0x10);
  uVar25 = uVar43 ^ *puVar4 ^ uVar37 ^ uVar32 ^ uVar44;
  *(ulonglong *)(lVar12 + -0x960) = uVar25;
  *puVar8 = (*(ulonglong *)(lVar12 - ((ulonglong)uVar33 ^ 0x98b9a26f)) ^ uVar43) >>
            (((byte)uVar20 ^ 0x20) & 0x3f) ^ uVar38;
  uVar22 = DAT_182671d48;
  *(undefined1 *)(lVar12 + -0x2e9) = **(undefined1 **)(lVar12 + -0x758);
  uVar25 = (uVar43 ^ uVar25) << ((bVar26 ^ 0xdf) & 0x3f);
  *puVar2 = uVar25 ^ CONCAT44(uVar22,uVar22);
  uVar37 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar25 = *(ulonglong *)(lVar12 - (uVar42 ^ 0x430a4bf)) ^ uVar38 | uVar25;
  *puVar5 = uVar25 ^ uVar37;
  uVar43 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *puVar3 = (*puVar4 ^ uVar44) - uVar25 ^ uVar43;
  uVar22 = DAT_182671f30;
  *puVar31 = -0x5266d502fd11e755 << ((local_78 ^ 0x30) & 0x3f);
  uVar32 = CONCAT44(uVar22,uVar22);
  uVar25 = uVar48 ^ *(ulonglong *)(lVar12 + -0x510) ^ uVar32 ^ uVar29 ^
           *(ulonglong *)(lVar12 + -0x110);
  uVar29 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(lVar12 + -0xa08) = uVar25;
  *(ulonglong *)(lVar12 - (uVar40 ^ 0xa10f8770)) =
       (uVar25 ^ uVar32) >> (((byte)uVar15 ^ 0xd9) & 0x3f) ^ uVar29;
  uVar25 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar12 + -0xf0) = (uVar32 ^ *(ulonglong *)(lVar12 + -0xa08)) << 0x20 ^ uVar25;
  uVar22 = DAT_182671f9c;
  *(undefined1 *)(lVar12 + -0x6b9) = **(undefined1 **)(lVar12 + -0x370);
  uVar15 = DAT_182671f34;
  uVar32 = CONCAT44(uVar22,uVar22);
  uVar40 = *(ulonglong *)(lVar12 - (uVar41 ^ 0x4e2e44c5)) ^ uVar25 |
           *(ulonglong *)(lVar12 + -0x888) ^ uVar29;
  *(ulonglong *)(lVar12 + -0xb18) = uVar40 ^ uVar32;
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar12 - (uVar34 ^ 0xdceef36d)) =
       (*(ulonglong *)(lVar12 - (uVar45 ^ 0xddeffd14)) ^ uVar48) - uVar40 ^ uVar25;
  uVar15 = DAT_182671ce4;
  uVar38 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar40 = *puVar3 ^ uVar38 ^ uVar32 ^ uVar43 ^ *(ulonglong *)(lVar12 + -0xb18);
  *(ulonglong *)(lVar12 + -0xbd8) = uVar40;
  uVar29 = CONCAT44(uVar15,uVar15);
  *puVar6 = (uVar40 ^ uVar38) >> (((byte)uVar21 ^ 0x3e) & 0x3f) ^ uVar29;
  uVar15 = DAT_182671ca8;
  lVar12 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x680) = 0xd7359e38f2d2fd20 >> (((byte)uVar16 ^ 0xb) & 0x3f);
  uVar22 = DAT_182671f8c;
  uVar41 = CONCAT44(uVar15,uVar15);
  *puVar7 = (uVar38 ^ uVar40) << ((bVar27 ^ 2) & 0x3f) ^ uVar41;
  *(ulonglong *)(lVar12 - (uVar28 ^ 0x60b08220)) =
       CONCAT44(uVar14,uVar18) ^ uVar38 ^ uVar40 ^ 0x495db73c983eab4;
  uVar15 = DAT_182671cc4;
  uVar40 = *puVar7 ^ uVar41 | *puVar6 ^ uVar29;
  *puVar2 = uVar40 ^ CONCAT44(uVar22,uVar22);
  *puVar8 = (*puVar3 ^ uVar43) - uVar40 ^ CONCAT44(uVar15,uVar15);
  *puVar4 = CONCAT44(DAT_182671ef0,DAT_182671ef0) ^ uVar25 ^ uVar37 ^ *puVar5 ^ *puVar1;
  *puVar31 = (CONCAT44(uVar35,DAT_182671c64) ^ 0x579b25b90494cfa8) >>
             (((byte)DAT_182671c6c ^ 0x34) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar24 * 4) = uVar10 ^ uVar35;
  return;
}



############ FUN_ 18102d790 size=3261 ############

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

void FUN_18102d790(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong *puVar13;
  ulonglong uVar14;
  byte bVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  ulonglong uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte local_res18;
  byte local_a8;
  
  uVar9 = DAT_182671c84;
  uVar8 = DAT_182671c7c;
  uVar6 = DAT_182671c78;
  uVar5 = DAT_182671c64;
  uVar4 = DAT_182671c60;
  uVar22 = DAT_182671c5c;
  uVar23 = (ulonglong)DAT_182671c7c;
  uVar16 = (ulonglong)DAT_182671c60;
  uVar29 = (ulonglong)DAT_182671c5c;
  uVar25 = DAT_182671c60 | DAT_182671c7c;
  uVar31 = (ulonglong)DAT_182671c78;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182672134);
  uVar24 = DAT_182671c64 + DAT_182671c78;
  uVar32 = DAT_182671c88 << 0x10 | DAT_182671c88 >> 0x10;
  uVar26 = ~DAT_182671c84;
  uVar27 = DAT_182671c5c << 0x10 | DAT_182671c5c >> 0x10;
  uVar11 = *(uint *)(&DAT_182613220 + DAT_182672134) ^ DAT_182671c7c;
  uVar20 = (ulonglong)DAT_182671e38;
  uVar34 = (ulonglong)DAT_182671e30;
  uVar33 = CONCAT44(DAT_182671c78,DAT_182671c64);
  DAT_182671c4c = uVar24;
  DAT_182671c6c = uVar27;
  DAT_182671c80 = uVar32;
  DAT_182671c8c = uVar26;
  DAT_182671c94 = uVar25;
  *(byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c60 ^ 0x592ae310)) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x488) ^ (ulonglong)DAT_182671f34) ^
       (byte)DAT_182671ef0 ^ (byte)DAT_182671d18;
  uVar14 = (ulonglong)DAT_182671f70;
  *(undefined1 *)(*(ulonglong *)(DAT_182671c40 + -0x4c0) ^ uVar34) = 0x67;
  lVar2 = DAT_182671c40;
  uVar12 = (ulonglong)uVar27;
  uVar28 = CONCAT44(uVar22,uVar24) ^ 0x608d4e143fbfc836;
  *(ulonglong *)(DAT_182671c40 + -0x1f0) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar27 ^ 0x4e1468ed)) ^ uVar14) + uVar28;
  bVar15 = *(byte *)(lVar2 + -0x3b1) ^ (byte)DAT_182671ef0;
  *(ulonglong *)(lVar2 + -0x888) = (uVar33 ^ 0x6b17888352456a3) + 0x46788defde68232e;
  *(byte *)(*(ulonglong *)(lVar2 + -0x860) ^ uVar14) = bVar15;
  uVar17 = (ulonglong)uVar32;
  uVar30 = (ulonglong)DAT_182671de8;
  uVar14 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x73366522));
  *(ulonglong *)(lVar2 + -0x6d8) = uVar14;
  *(undefined8 *)(lVar2 + -0xaf0) = *(undefined8 *)(lVar2 - (uVar17 ^ 0x64d27076));
  *(ulonglong *)(lVar2 + -0x378) = uVar14 ^ uVar30;
  lVar3 = DAT_182671c40;
  pbVar19 = *(byte **)(lVar2 - ((ulonglong)uVar8 ^ 0xa6d515ae));
  uVar18 = (ulonglong)uVar26;
  puVar13 = (ulonglong *)(DAT_182671c40 - (uVar18 ^ 0x783810f7));
  *(ulonglong *)(DAT_182671c40 + -0x3f8) = (ulonglong)pbVar19 ^ uVar20;
  *(ulonglong *)(lVar3 + -0xd58) =
       (*puVar13 ^ uVar20) + (CONCAT44(uVar9,uVar27) ^ 0x87c7ecf04e14608c);
  lVar2 = DAT_182671c40;
  local_res18 = (byte)uVar22;
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (CONCAT44(uVar25,uVar8) ^ 0xd1e300c088814a9c) >> ((local_res18 ^ 0x12) & 0x3f);
  *(byte *)(lVar2 - (uVar29 ^ 0x608d4d55)) = *pbVar19 ^ (byte)DAT_182671e9c ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 + -1000) ^ (ulonglong)_DAT_182671cf0) = (byte)uVar24 ^ 0x80;
  pbVar19 = (byte *)(*(ulonglong *)(lVar2 + -0x378) ^ uVar30);
  *(byte **)(lVar2 + -0x288) = pbVar19 + (CONCAT44(uVar26,uVar6) ^ 0x7838130f874768a1);
  *pbVar19 = *(byte *)(lVar2 + -0x341) ^ (byte)DAT_182671e9c;
  *(undefined8 *)(lVar2 + -0x2c8) = *(undefined8 *)(lVar2 + -0x288);
  uVar20 = (ulonglong)DAT_182671d30;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar25 ^ 0xfffffb37)) = *(undefined8 *)(lVar2 + -0xd58);
  *(ulonglong *)(lVar2 + -0xaf8) = *(ulonglong *)(lVar2 + -0x2c8) ^ uVar20;
  *(ulonglong *)(lVar2 + -0xb68) = *(ulonglong *)(lVar2 + -0x4c8) ^ uVar34;
  uVar10 = DAT_182671de4;
  uVar14 = (ulonglong)DAT_182671de4;
  *(ulonglong *)(lVar2 + -0x318) = *(ulonglong *)(lVar2 + -0x4c8) + 1;
  *(ulonglong *)(lVar2 + -0xc90) = *(ulonglong *)(lVar2 + -0x2b0) | 0xe1716b1bc0da6318;
  *(byte *)(lVar2 - ((ulonglong)uVar9 ^ 0x87c7eb32)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar17 ^ 0x64d2785e)) ^ uVar34) ^ (byte)DAT_182671f28 ^
       (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 + -0x980) ^ uVar14) = (byte)DAT_182671c88 ^ 0x9e;
  pbVar19 = (byte *)(uVar20 ^ *(ulonglong *)(lVar2 + -0xaf8));
  *(uint *)(lVar2 + -0x634) = (uVar5 ^ 0xe51f801f) + 0xbb87ab2d;
  lVar3 = DAT_182671c40;
  *(byte **)(lVar2 + -0x8f8) = pbVar19 + 1;
  *pbVar19 = *(byte *)(lVar2 - (uVar12 ^ 0x4e14674f)) ^ (byte)DAT_182671f28;
  uVar30 = (ulonglong)DAT_182671cd0;
  *(undefined8 *)(lVar2 - (uVar16 ^ 0x592aeca1)) = *(undefined8 *)(lVar2 + -0x8f8);
  *(ulonglong *)(lVar2 + -0x580) = *(ulonglong *)(lVar2 + -0x318);
  uVar7 = DAT_182671d60;
  uVar14 = (ulonglong)DAT_182671d60;
  *(ulonglong *)(lVar2 + -0x80) = *(ulonglong *)(lVar2 - (uVar29 ^ 0x608d4214)) ^ uVar30;
  uVar20 = (ulonglong)uVar7 ^ *(ulonglong *)(lVar2 + -0x318);
  *(ulonglong *)(lVar2 + -0x830) = uVar20;
  pbVar19 = (byte *)(uVar20 ^ uVar14);
  *(byte **)(lVar3 + -0x208) = pbVar19 + (CONCAT44(uVar8,uVar24) ^ 0xa6d51f5e3fbfc836);
  *(byte *)(lVar3 + -0xcd1) = (byte)DAT_182671ee8 ^ *pbVar19 ^ (byte)DAT_182671d18;
  lVar2 = DAT_182671c40;
  uVar14 = (ulonglong)DAT_182671d8c;
  *(byte *)(*(ulonglong *)(lVar3 + -0xa90) ^ (ulonglong)DAT_182671f64) = (byte)uVar9 ^ 0x47;
  pbVar19 = (byte *)(uVar30 ^ *(ulonglong *)(lVar3 + -0x80));
  *(byte **)(lVar3 + -0xd40) = pbVar19 + 1;
  *pbVar19 = *(byte *)(lVar3 - (uVar18 ^ 0x78381fde)) ^ (byte)DAT_182671ee8;
  *(undefined8 *)(lVar3 + -0xca8) = *(undefined8 *)(lVar3 + -0xd40);
  uVar20 = (ulonglong)DAT_182671f10;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x874763b8)) =
       *(ulonglong *)(lVar3 - (uVar17 ^ 0x64d27fa6)) ^ 0x1274fdb9385edd8c;
  *(undefined8 *)(lVar3 - (uVar12 ^ 0x4e146255)) = *(undefined8 *)(lVar3 + -0x208);
  *(ulonglong *)(lVar3 + -0x928) = *(ulonglong *)(lVar3 + -0xca8) ^ uVar20;
  uVar34 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x733663b2)) =
       (uVar33 ^ 0x8332a4dc75f549d8) + *(longlong *)(lVar3 + -0x3d8);
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xa6d513ee)) = *(ulonglong *)(lVar2 + -0x2d8) ^ uVar14;
  pbVar19 = (byte *)(*(ulonglong *)(lVar2 + -0xcb0) ^ uVar14);
  *(byte **)(lVar2 + -0x5e0) = pbVar19 + uVar28;
  *(byte *)(lVar2 + -0x1c1) = (byte)DAT_182671cb4 ^ *pbVar19 ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 + -0x5a8) ^ (ulonglong)DAT_182671f04) = (byte)uVar9 ^ 0x40;
  *(ulonglong *)(lVar2 + -0x130) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0x608d473c)) ^ uVar20) +
       (CONCAT44(uVar5,uVar4) ^ 0xb8785f97592ae0a0);
  lVar3 = DAT_182671c40;
  *(byte *)(uVar20 ^ *(ulonglong *)(lVar2 + -0x928)) =
       *(byte *)(lVar2 - (uVar12 ^ 0x4e14614c)) ^ (byte)DAT_182671cb4;
  uVar30 = (ulonglong)DAT_182671d58;
  *(undefined8 *)(lVar2 - (uVar17 ^ 0x64d27796)) = *(undefined8 *)(lVar2 + -0x130);
  *(undefined8 *)(lVar2 + -0xae0) = *(undefined8 *)(lVar2 + -0x5e0);
  *(ulonglong *)(lVar2 + -0x110) =
       (CONCAT44(uVar25,uVar26) ^ 0xd44ea39dbb64c2bf) -
       (CONCAT44(uVar32,uVar24) ^ 0x388752d8127cad54);
  uVar14 = (ulonglong)DAT_182671ea4;
  uVar20 = (ulonglong)DAT_182671f8c;
  *(ulonglong *)(lVar3 - (uVar12 ^ 0x4e1460c5)) =
       *(ulonglong *)(lVar3 - (uVar16 ^ 0x592ae401)) ^ uVar14;
  pbVar19 = *(byte **)(lVar3 + -0xae0);
  *(ulonglong *)(lVar3 + -0xd80) = (ulonglong)pbVar19 ^ uVar30;
  *(byte **)(lVar3 + -0x710) = pbVar19 + (CONCAT44(uVar8,uVar25) ^ 0xa6d51f5efffffffe);
  uVar7 = DAT_182671c78;
  *(byte *)(lVar3 + -0xa13) = (byte)uVar10 ^ *pbVar19 ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc68) ^ uVar20) = (byte)uVar7 ^ 0x86;
  lVar2 = DAT_182671c40;
  pbVar19 = (byte *)(*(ulonglong *)(lVar3 + -0x48) ^ uVar14);
  local_a8 = (byte)uVar6;
  *(byte **)(DAT_182671c40 + -0x2b8) = pbVar19 + (CONCAT44(uVar4,uVar9) ^ 0x592ae0a187c7ecf1);
  *(ulonglong *)(lVar2 + -0xa70) = *(ulonglong *)(lVar2 + -0x110) >> (local_a8 & 0x3f);
  *pbVar19 = *(byte *)(lVar2 + -0xa13) ^ (byte)uVar10;
  *(undefined8 *)(lVar2 + -0x220) = *(undefined8 *)(lVar2 + -0x2b8);
  *(ulonglong *)(lVar2 + -0x7c0) =
       (CONCAT44(uVar32,uVar24) ^ 0xaf1dd70fabe61fdf) <<
       ((byte)*(undefined8 *)(lVar2 + -0x110) & 0x3f);
  uVar16 = (ulonglong)DAT_182671d10;
  *(undefined8 *)(lVar2 - (uVar17 ^ 0x64d27e7e)) = *(undefined8 *)(lVar2 - (uVar29 ^ 0x608d4904));
  uVar31 = (ulonglong)DAT_182671ce4;
  *(byte *)(lVar2 + -0xc29) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x87c7e170)) ^ uVar30) ^
       (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 + -0xc20) = *(ulonglong *)(lVar2 + -0x220) ^ uVar31;
  uVar14 = *(ulonglong *)(lVar2 - (uVar18 ^ 0x78381e47));
  *(ulonglong *)(lVar2 + -0x38) = uVar14 ^ uVar16;
  *(ulonglong *)(lVar2 + -0xbc0) = (CONCAT44(uVar5,uVar24) ^ 0xb8785f973fbfc836) + uVar14;
  bVar15 = (byte)DAT_182671d28;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x451) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xa6d51f66)) ^ uVar16) ^
       (byte)DAT_182671d28 ^ (byte)DAT_182671d18;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0xc0) ^ (ulonglong)DAT_182671eb8) = 0x10;
  lVar2 = DAT_182671c40;
  puVar13 = (ulonglong *)(DAT_182671c40 + -0xc20);
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       (CONCAT44(uVar6,uVar27) ^ 0xb82e3189efd498b0) >> (((byte)uVar25 ^ 0xf7) & 0x3f);
  pbVar19 = (byte *)(*puVar13 ^ uVar31);
  uVar16 = (ulonglong)DAT_182671d08;
  *(byte **)(lVar2 + -0x800) = pbVar19 + 1;
  *pbVar19 = bVar15 ^ *(byte *)(lVar2 + -0x451);
  *(undefined8 *)(lVar2 + -0x5a0) = *(undefined8 *)(lVar2 + -0x800);
  *(undefined8 *)(lVar2 + -0xbe0) = *(undefined8 *)(lVar2 + -0xbc0);
  *(undefined8 *)(lVar2 - (uVar34 ^ 0x73366df2)) = 0xffdfbbb9eb7fbfff;
  *(ulonglong *)(lVar2 + -0x7f0) = uVar16 ^ *(ulonglong *)(lVar2 + -0x5a0);
  *(ulonglong *)(lVar2 + -0xa50) = 0xcaf10648b11a14ce >> (((byte)uVar8 ^ 0x41) & 0x3f);
  uVar14 = (ulonglong)DAT_182671d3c;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x73366cca)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x87c7e710)) ^ uVar14;
  bVar15 = (byte)DAT_182671fb0;
  *(ulonglong *)(lVar2 - (uVar12 ^ 0x4e146115)) =
       (*(ulonglong *)(lVar2 + -0x818) ^ uVar14) + (CONCAT44(uVar5,uVar22) ^ 0xb8785f97608d4e15);
  bVar21 = (byte)DAT_182671c88;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar18 ^ 0x78381b17)) ^ uVar14) ^ bVar15 ^
       (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 + -0x640) ^ (ulonglong)DAT_182671d88) = bVar21 ^ 0x5c;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xa6d51a4e)) =
       (CONCAT44(uVar9,uVar6) ^ 0xb9089dc852818475) - (CONCAT44(uVar5,uVar4) ^ 0x6ed4b5743984467);
  *(ulonglong *)(lVar2 + -0xbb0) = (*(ulonglong *)(lVar2 - (uVar17 ^ 0x64d274c6)) ^ uVar16) + 1;
  *(byte *)(uVar16 ^ *(ulonglong *)(lVar2 + -0x7f0)) = bVar15 ^ *(byte *)(lVar2 + -0x1c3);
  uVar14 = (ulonglong)DAT_182671db0;
  *(undefined8 *)(lVar2 + -0x68) = *(undefined8 *)(lVar2 + -0xbb0);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar25 ^ 0xfffff607)) = *(undefined8 *)(lVar2 + -0x198);
  *(ulonglong *)(lVar2 + -0xa20) = *(ulonglong *)(lVar2 + -0x9f8) ^ uVar14;
  *(ulonglong *)(lVar2 + -800) = *(ulonglong *)(lVar2 + -0x68) ^ uVar20;
  *(ulonglong *)(lVar2 + -0xc18) =
       (CONCAT44(uVar9,uVar4) ^ 0x5d5189b7d7c5d298) << (((byte)uVar26 ^ 0x3f) & 0x3f);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x3fbfcbf7)) = *(ulonglong *)(lVar2 + -0x9f8) + uVar28
  ;
  bVar15 = (byte)DAT_182671dd4;
  *(byte *)(lVar2 + -0xc9c) =
       *(byte *)(uVar14 ^ *(ulonglong *)(lVar2 + -0xa20)) ^ (byte)DAT_182671dd4 ^
       (byte)DAT_182671d18;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x500) ^ (ulonglong)DAT_182671fac) = 0x93;
  pbVar19 = (byte *)(uVar20 ^ *(ulonglong *)(lVar2 + -800));
  *(byte **)(lVar2 + -0x300) = pbVar19 + 1;
  *pbVar19 = bVar15 ^ *(byte *)(lVar2 + -0xc9c);
  *(undefined8 *)(lVar2 + -0x738) = *(undefined8 *)(lVar2 + -0x300);
  *(undefined8 *)(lVar2 - (uVar29 ^ 0x608d49bc)) = *(undefined8 *)(lVar2 + -0x3c0);
  uVar22 = *(uint *)(lVar2 + -0x27c) ^ DAT_182671ee0;
  *(ulonglong *)(lVar2 + -0x550) = (ulonglong)DAT_182671ca8 ^ *(ulonglong *)(lVar2 + -0x738);
  *(uint *)(lVar2 + -0x684) = uVar22 * (*(uint *)(lVar2 + -0x1c8) ^ DAT_182671d7c);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar11 * 4) = uVar1 ^ uVar25;
  return;
}



############ FUN_ 180f582c0 size=5502 ############

void FUN_180f582c0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  int iVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  byte bVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong *puVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_150;
  byte local_140;
  byte local_138;
  
  iVar14 = DAT_182671e44;
  uVar19 = DAT_182671c8c;
  uVar11 = DAT_182671c80;
  uVar10 = DAT_182671c6c;
  uVar8 = DAT_182671c5c;
  lVar6 = DAT_182671c40;
  uVar44 = (ulonglong)DAT_182671c80;
  uVar49 = (ulonglong)DAT_182671c5c;
  uVar42 = (ulonglong)DAT_182671c8c;
  uVar41 = (ulonglong)DAT_182671c6c;
  uVar33 = ~DAT_182671c5c;
  uVar16 = DAT_182671c8c * DAT_182671c6c;
  uVar47 = DAT_182671f6c * DAT_182671e54;
  uVar31 = DAT_182671e44 + DAT_182671cb4;
  uVar36 = (DAT_182671c80 << 0x10 | DAT_182671c80 & 0xff00) << 8 | DAT_182671c80 >> 8 & 0xff00 |
           DAT_182671c80 >> 0x18;
  uVar5 = *(uint *)(&DAT_182613220 + DAT_182671ff0);
  uVar23 = *(uint *)(&DAT_182613218 + DAT_182671ff0) ^ DAT_182671c5c;
  uVar17 = DAT_182671e54 & 0xff;
  DAT_182671e54 = ((DAT_182671e54 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar40 = (ulonglong)uVar36;
  uVar37 = CONCAT44(DAT_182671e54,DAT_182671e54);
  bVar21 = (byte)DAT_182671c8c;
  uVar43 = (ulonglong)uVar16;
  DAT_182671c60 = uVar33;
  DAT_182671c74 = uVar16;
  DAT_182671c90 = uVar36;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0xfff7f85f)) =
       (CONCAT44(DAT_182671f48,DAT_182671f48) ^ *(ulonglong *)(DAT_182671c40 + -0xa50)) <<
       ((bVar21 ^ 0xf) & 0x3f) ^ uVar37;
  uVar17 = uVar47 & 0xff;
  uVar47 = uVar47 * 0x100;
  DAT_182671cd4 = ((uVar47 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar34 = (ulonglong)DAT_182671cd4;
  uVar24 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  puVar1 = (ulonglong *)(lVar6 + -0x828);
  uVar50 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x268a678)) =
       (uVar24 ^ *puVar1 | uVar37 ^ *(ulonglong *)(lVar6 + -0x7e8)) ^ uVar50;
  uVar25 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  puVar2 = (ulonglong *)(lVar6 + -0x680);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xb18);
  *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x788f837)) = (uVar25 ^ *puVar2) + 0x172f0ceb43a90355;
  lVar6 = DAT_182671c40;
  uVar18 = DAT_182671f6c & 0xff;
  DAT_182671f6c = ((DAT_182671f6c << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar26 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar20 = (ulonglong)uVar33;
  uVar38 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  uVar35 = CONCAT44(iVar14,iVar14);
  uVar27 = (uVar26 ^ *puVar3) - (CONCAT44(uVar33,uVar36) ^ 0x53c32e55a83ad232);
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar27 ^ uVar38;
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x268a720)) =
       uVar27 - (*(ulonglong *)(lVar6 - (uVar42 ^ 0x48520318)) ^ uVar50) ^ uVar35;
  puVar4 = (ulonglong *)(lVar6 + -0xb08);
  uVar18 = uVar31 & 0xff;
  DAT_182671f5c = ((uVar31 * 0x100 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar32 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar27 = (CONCAT44(uVar11,uVar10) ^ 0x267393b4998396a4) + (uVar50 ^ *puVar4) ^ uVar32;
  *puVar1 = uVar27;
  uVar18 = DAT_182671cb4 & 0xff;
  DAT_182671cb4 = ((DAT_182671cb4 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar30 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar52 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar27 = uVar52 ^ uVar30 ^ uVar27 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x2b0);
  *(ulonglong *)(lVar6 + -0x7e8) = uVar27;
  lVar6 = DAT_182671c40;
  *puVar2 = (CONCAT44(uVar8,uVar11) ^ 0xebc8e252eea6e095) + 0x3e79f9946c365c80;
  local_140 = (byte)(uVar11 >> 0x18);
  *(ulonglong *)(lVar6 + -0x760) = (uVar52 ^ uVar27) >> ((local_140 ^ 0xfa) & 0x3f) ^ uVar35;
  lVar7 = DAT_182671c40;
  puVar45 = (ulonglong *)(lVar6 - (uVar20 ^ 0xa1a7aa5e));
  *puVar45 = (uVar52 ^ uVar27) << (((byte)uVar33 ^ 0x7d) & 0x3f) ^ uVar52;
  puVar39 = (ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x5e5859d9));
  *(ulonglong *)(lVar7 + -0xa60) = (uVar52 ^ *puVar3 | *puVar39 ^ uVar35) ^ uVar50;
  *puVar4 = (uVar30 ^ *(ulonglong *)(lVar7 + -0x2b0)) -
            (*(ulonglong *)(lVar7 - (uVar43 ^ 0x268a710)) ^ uVar50) ^ uVar32;
  *puVar1 = *puVar2 | 0xde35e3cb0c8fb8f0;
  uVar27 = CONCAT44(DAT_182671f08,DAT_182671f08) ^ *(ulonglong *)(lVar7 + -0x5e8) ^
           *(ulonglong *)(lVar7 + -0xa50);
  *(ulonglong *)(lVar7 + -0x7e8) = uVar27;
  *puVar3 = (uVar27 ^ uVar35) >> ((bVar21 ^ 0x35) & 0x3f) ^ uVar52;
  *(ulonglong *)(lVar7 + -0x760) =
       (CONCAT44(uVar33,uVar10) ^ 0x84e8654b53413b8a) +
       (CONCAT44(uVar11,uVar11) ^ 0xcf1d07142086b56f);
  *(ulonglong *)(lVar7 + -0x2b0) =
       (*(ulonglong *)(lVar7 - (uVar41 ^ 0x788f8bf)) ^ uVar35) << 0x1b ^ uVar32;
  *(ulonglong *)(lVar7 - (uVar40 ^ 0xb7ffffd7)) =
       CONCAT44(uVar36,uVar8) ^ 0xcddfd5fef5ee7fef | 0x8c15c5c4e1ee576f;
  uVar28 = *(ulonglong *)(lVar7 - (uVar43 ^ 0x268a668)) ^ uVar52 |
           uVar32 ^ *(ulonglong *)(lVar7 + -0x2b0);
  uVar29 = uVar28 ^ uVar35;
  uVar27 = *(ulonglong *)(lVar7 + -0xa50);
  *puVar2 = uVar29;
  *(ulonglong *)(lVar7 + -0x5e8) = (uVar35 ^ uVar27) - uVar28 ^ uVar37;
  uVar29 = uVar32 ^ uVar35 ^ uVar50 ^ *puVar4 ^ uVar29;
  *(ulonglong *)(lVar7 + -0x760) = uVar29;
  lVar6 = DAT_182671c40;
  uVar27 = (uVar50 ^ uVar29) << ((bVar21 ^ 0x39) & 0x3f);
  uVar29 = ((ulonglong)((uVar47 & 0xffff | uVar17) >> 7) | uVar34 << 9) ^ *puVar39 >> 0x17;
  *puVar1 = uVar27 ^ uVar38;
  uVar17 = DAT_182671c50;
  *(ulonglong *)(lVar6 + -0x7e8) = uVar29 ^ uVar37;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x5e5855a1)) = (uVar29 | uVar27) ^ uVar35;
  *(ulonglong *)(lVar6 + -0x2b0) =
       (uVar32 ^ *puVar4) - (*(ulonglong *)(lVar6 - (uVar44 ^ 0xfff7f4af)) ^ uVar35) ^ uVar38;
  *(ulonglong *)(lVar6 - (uVar40 ^ 0xb7fffdaf)) =
       uVar35 ^ uVar37 ^ *(ulonglong *)(lVar6 + -0x7e8) ^ *puVar45;
  uVar18 = DAT_182671c84;
  uVar29 = (ulonglong)DAT_182671c84;
  uVar31 = uVar17 - DAT_182671c84;
  uVar28 = (ulonglong)DAT_182671c84;
  uVar27 = *(ulonglong *)(lVar6 + -0x5e8) ^ uVar32 ^ uVar50 ^ uVar37 ^
           *(ulonglong *)(lVar6 + -0xa60);
  DAT_182671c78 = uVar31;
  *puVar2 = uVar27;
  lVar6 = DAT_182671c40;
  uVar51 = (ulonglong)uVar31;
  bVar15 = (byte)uVar31;
  *(ulonglong *)(DAT_182671c40 + -0x760) = (uVar27 ^ uVar32) >> ((bVar15 ^ 0x69) & 0x3f) ^ uVar52;
  *(uint *)(lVar6 - (uVar51 ^ 0x410e0ed5)) = (uVar17 ^ 0xe79ed200) - *(int *)(lVar6 + -0x9dc);
  lVar6 = DAT_182671c40;
  uVar27 = (uVar32 ^ *puVar2) << (((byte)uVar17 ^ 0x21) & 0x3f);
  *puVar1 = uVar27 ^ uVar52;
  puVar39 = (ulonglong *)(lVar6 - ((ulonglong)uVar31 ^ 0x410e0921));
  *(ulonglong *)(lVar6 - (uVar28 ^ 0xcee9faf0)) = (uVar52 ^ *puVar39 | uVar27) ^ uVar50;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(lVar6 + -0x7e8) =
       (*(ulonglong *)(lVar6 + -0x5e8) ^ uVar37) - (uVar50 ^ *puVar4) ^ uVar37;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar17 ^ 0xff80a69)) =
       CONCAT44(uVar18,uVar18) ^ 0x5bd85f534860c90f | CONCAT44(uVar31,uVar17) ^ 0xcabefae4edc08bd6;
  puVar46 = (ulonglong *)(lVar7 - ((ulonglong)uVar31 ^ 0x410e0421));
  *puVar46 = uVar38 ^ *puVar4 ^ *(ulonglong *)(lVar7 + -0x2b0);
  bVar22 = (byte)uVar8;
  uVar28 = (uVar50 ^ *(ulonglong *)(lVar7 + -0xa60)) >> (((byte)uVar18 ^ 0xcc) & 0x3f);
  *puVar2 = uVar28 ^ uVar32;
  lVar6 = DAT_182671c40;
  uVar27 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar17 ^ 0xff80a59)) ^ uVar50) <<
           ((bVar22 ^ 0xb5) & 0x3f);
  *(ulonglong *)(lVar7 + -0x760) = uVar27 ^ uVar26;
  uVar28 = uVar28 | uVar27;
  uVar27 = *(ulonglong *)(lVar6 + -0x2b0);
  *puVar1 = uVar28 ^ uVar35;
  uVar34 = (ulonglong)DAT_182671d28;
  uVar48 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar6 - (uVar29 ^ 0xcee9f410)) = (uVar38 ^ uVar27) - uVar28 ^ uVar38;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x788f44f)) ^ uVar48 ^ uVar35 ^ uVar37 ^
       *(ulonglong *)(DAT_182671c40 + -0x7e8);
  local_150 = (byte)uVar16;
  *puVar4 = (CONCAT44(uVar10,uVar31) ^ 0x26417bf6213032db) >> (((byte)uVar17 ^ 0x31) & 0x3f);
  *puVar46 = (*(ulonglong *)(DAT_182671c40 + -0xa50) >> 0x20 ^ uVar34) >> 0x19 ^ uVar32;
  lVar6 = DAT_182671c40;
  uVar27 = (uVar48 ^ *(ulonglong *)(DAT_182671c40 + -0xa50)) << ((local_150 ^ 0x77) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar27 ^ uVar32;
  *puVar2 = CONCAT44(uVar19,uVar17) ^ 0x61464804581000 | 0x379a80b54b23aedc;
  uVar50 = (uVar27 | uVar32 ^ *(ulonglong *)(lVar6 + -0xa60)) ^ uVar52;
  *(ulonglong *)(lVar6 + -0x2b0) = uVar50;
  uVar27 = *(ulonglong *)(lVar6 + -0x5e8);
  puVar45 = (ulonglong *)(lVar6 - (uVar49 ^ 0x5e585c09));
  *puVar3 = (uVar37 ^ *(ulonglong *)(lVar6 + -0x7e8)) - (uVar52 ^ *puVar45) ^ uVar32;
  uVar34 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar50 = uVar34 ^ uVar27 ^ uVar52 ^ uVar38 ^ uVar50;
  *puVar4 = uVar50;
  uVar50 = uVar50 ^ uVar34;
  uVar28 = uVar50 >> ((bVar15 ^ 0x4f) & 0x3f);
  local_138 = (byte)uVar11;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar28 ^ uVar48;
  uVar48 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *puVar2 = uVar50 << ((local_138 ^ 0x85) & 0x3f) ^ uVar48;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (*(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x5e585839)) ^ uVar48 | uVar28) ^ uVar38;
  uVar27 = (uVar27 ^ uVar38) - (CONCAT44(uVar18,uVar17) ^ 0x19850917ccce0541);
  *(ulonglong *)(lVar6 + -0xa60) = uVar27 ^ uVar32;
  uVar12 = DAT_182671f0c;
  *(ulonglong *)(lVar6 + -0x7e8) = uVar27 - (uVar38 ^ *puVar39) ^ uVar52;
  puVar39 = (ulonglong *)(lVar6 - (uVar40 ^ 0xb7fff54f));
  uVar19 = DAT_182671c74 ^ 0x174b2f19;
  *puVar39 = (*(ulonglong *)(lVar6 - (uVar29 ^ 0xcee9f698)) ^ uVar38) -
             (CONCAT44(uVar8,uVar10) ^ 0xcbac8fcaf107db1c) ^ CONCAT44(uVar12,uVar12);
  *(uint *)(lVar6 + -0xae4) = uVar19 & *(uint *)(lVar6 + -0x76c);
  uVar50 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *puVar4 = uVar50 ^ uVar32 ^ uVar35 ^ *puVar1 ^ *puVar3;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x5e5854e9)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0x268abf0)) ^ uVar48) + 0x311daa9e19d82f40;
  uVar27 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar6 + -0x5e8) = (uVar50 ^ *puVar4) >> ((bVar22 ^ 0xa9) & 0x3f) ^ uVar27;
  uVar9 = DAT_182671d14;
  *(ulonglong *)(lVar6 + -0xa60) =
       (CONCAT44(uVar11,uVar16) ^ 0x3712948b20ebe8ac) >>
       (((byte)uVar12 ^ *(byte *)(lVar6 + -0x2b0)) & 0x3f);
  lVar7 = DAT_182671c40;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar35 = (uVar50 ^ *puVar4) << ((bVar21 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar6 + -0x760) = uVar35 ^ uVar28;
  uVar9 = DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar17 ^ 0xff80811)) =
       (*(ulonglong *)(lVar7 - (uVar51 ^ 0x410e0ba9)) ^ uVar27 | uVar35) ^ uVar37;
  lVar6 = DAT_182671c40;
  uVar27 = (*(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xcee9fae0)) ^ uVar32) -
           (CONCAT44(uVar9,uVar36) ^ 0xbe4e237a6d170c2b);
  uVar35 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar27 ^ CONCAT44(DAT_182671d64,DAT_182671d64);
  *puVar2 = uVar27 - (uVar37 ^ *puVar1) ^ uVar35;
  uVar27 = (CONCAT44(uVar11,uVar8) ^ 0xfeab9996b4a8c34d) + (uVar37 ^ *puVar1) ^ uVar48;
  uVar50 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(lVar6 + -0xa60) = uVar27;
  uVar27 = uVar48 ^ uVar52 ^ *(ulonglong *)(lVar6 + -0x7e8) ^ uVar50 ^ uVar27;
  *puVar4 = uVar27;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0xff805d1)) =
       (uVar27 ^ uVar50) >> ((local_150 ^ 0x50) & 0x3f) ^ uVar25;
  uVar27 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar7 + -0x760) = (*puVar4 ^ uVar50) << ((bVar22 ^ 0x99) & 0x3f) ^ uVar27;
  uVar27 = *(ulonglong *)(lVar7 - (uVar40 ^ 0xb7fff09f)) ^ uVar27 |
           *(ulonglong *)(lVar7 + -0x5e8) ^ uVar25;
  *puVar3 = uVar27 ^ uVar37;
  *(ulonglong *)(lVar7 - (uVar42 ^ 0x48520240)) =
       (uVar52 ^ *(ulonglong *)(lVar7 + -0x7e8)) - uVar27 ^ uVar34;
  uVar27 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar7 - (uVar51 ^ 0x410e0669)) =
       CONCAT44(uVar12,uVar12) ^ *puVar2 ^ *(ulonglong *)(lVar7 + -0x2b0) ^ uVar27 ^ uVar35;
  uVar10 = DAT_182671c7c;
  uVar17 = DAT_182671c48;
  lVar6 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671f10,DAT_182671f10);
  uVar25 = (ulonglong)DAT_182671c48;
  bVar22 = (byte)DAT_182671c7c;
  *(ulonglong *)(lVar7 - (uVar20 ^ 0xa1a7ab26)) =
       (*puVar1 ^ uVar27) >> ((bVar21 ^ 0x30) & 0x3f) ^ uVar29;
  *(ulonglong *)(lVar6 - (uVar20 ^ 0xa1a7aa4e)) =
       (*puVar1 ^ uVar27) << ((bVar22 ^ 0x7c) & 0x3f) ^ uVar28;
  uVar40 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar6 - (uVar42 ^ 0x48520f70)) =
       (*(ulonglong *)(lVar6 + -0xa60) ^ uVar29 | *puVar4 ^ uVar28) ^ uVar40;
  uVar27 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar6 + -0x5e8) = (uVar34 ^ *(ulonglong *)(lVar6 + -0xa50)) + 0xf42b53a935fda936;
  uVar32 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar28 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar6 + -0x7e8) =
       (*(ulonglong *)(lVar6 - (uVar25 ^ 0x70e10b1)) ^ uVar35) -
       (*(ulonglong *)(lVar6 - (uVar27 ^ 0x157ef21e)) ^ uVar40) ^ uVar32;
  *puVar39 = uVar34 ^ *(ulonglong *)(lVar6 + -0xa50) ^ uVar28 ^ uVar40 ^
             *(ulonglong *)(lVar6 + -0x760);
  uVar35 = (ulonglong)DAT_182671c54;
  *puVar1 = (*puVar45 ^ uVar28) >> ((local_138 ^ 0x8d) & 0x3f) ^ uVar38;
  uVar40 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xfa928a0e)) =
       (*(ulonglong *)(lVar6 - (uVar43 ^ 0x268afc0)) ^ uVar28) << 6 ^ uVar40;
  uVar12 = DAT_182671c88;
  uVar8 = DAT_182671c70;
  lVar7 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c70;
  uVar27 = *(ulonglong *)(DAT_182671c40 + -0xa50);
  *puVar4 = (*(ulonglong *)(lVar6 + -0xa60) ^ uVar40 | uVar38 ^ *puVar1) ^ uVar52;
  uVar25 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar7 - (uVar29 ^ 0x100857a0)) =
       (uVar34 ^ uVar27) - (*(ulonglong *)(lVar7 - (uVar41 ^ 0x788f45f)) ^ uVar52) ^ uVar25;
  *(ulonglong *)(lVar7 - (uVar44 ^ 0xfff7f937)) =
       uVar52 ^ uVar37 ^ *(ulonglong *)(lVar7 + -0x7e8) ^ uVar32 ^ *puVar3;
  *(ulonglong *)(lVar7 + -0x760) = ((ulonglong)uVar8 ^ 0x94000000) >> 0x1a;
  uVar13 = DAT_182671dec;
  uVar40 = (uVar52 ^ *puVar2) >> (((byte)uVar12 ^ 0x11) & 0x3f);
  *(ulonglong *)(lVar7 + -0x2b0) = uVar40 ^ uVar28;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar34 = (ulonglong)DAT_182671c4c;
  *puVar1 = (uVar52 ^ *puVar2) << ((bVar15 ^ 0x6b) & 0x3f) ^ uVar27;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x5e5854d9)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x9e3fe6df)) ^ uVar27 | uVar40) ^ uVar24;
  lVar7 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar6 + -0xa50) =
       (*(ulonglong *)(lVar6 + -0x7e8) ^ uVar32) -
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0x788f537)) ^ uVar24) ^ uVar40;
  uVar41 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *puVar3 = *(ulonglong *)(lVar7 + -0x5e8) ^ uVar24 ^ *(ulonglong *)(lVar7 + -0xa60) ^ uVar41 ^
            uVar25;
  lVar6 = DAT_182671c40;
  uVar27 = *puVar3;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       *(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0xfff7fd07)) ^ uVar28 |
       CONCAT44(uVar17,uVar18) ^ 0xa87d16b8fd04fb66;
  *(ulonglong *)(lVar6 - (uVar42 ^ 0x48520e90)) =
       (uVar41 ^ uVar27) >> ((local_140 ^ 0xd1) & 0x3f) ^ uVar26;
  *(ulonglong *)(lVar6 - (uVar29 ^ 0x10085a60)) = (uVar41 ^ *puVar3) << 0x12 ^ uVar48;
  uVar27 = CONCAT44(uVar11,DAT_182671c94);
  *(ulonglong *)(lVar6 + -0x7e8) = (uVar48 ^ *puVar1 | uVar26 ^ *puVar2) ^ uVar30;
  *puVar46 = (uVar27 ^ 0x7b29342627745509) - (CONCAT44(uVar31,uVar16) ^ 0x33b0f122719202db);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0xa1a7a3f6)) =
       (*(ulonglong *)(lVar6 - (uVar35 ^ 0xfa928586)) ^ uVar25) -
       (uVar30 ^ *(ulonglong *)(lVar6 + -0x7e8)) ^ uVar30;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x156dd53c)) =
       -0x46f8ab1f4cdd46dc - (CONCAT44(uVar9,uVar33) ^ 0x9193ba7b828cfe09);
  uVar40 = *(ulonglong *)(lVar6 - (uVar34 ^ 0x9e3fe4a7)) ^ uVar52 ^ *puVar4 ^ uVar40;
  *puVar3 = uVar40 ^ uVar50;
  bVar15 = (byte)DAT_182671c58;
  *puVar2 = -0x455a41c255a4d159 << ((bVar22 ^ 0x5b) & 0x3f);
  *puVar1 = uVar40 >> ((bVar15 ^ 0x4e) & 0x3f) ^ CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar5 ^ uVar33) * 4) = uVar23;
  return;
}



############ FUN_ 18100e360 size=5511 ############

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

void FUN_18100e360(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  byte local_128;
  byte local_120;
  byte local_110;
  byte local_108;
  byte local_f0;
  ulonglong uVar20;
  
  uVar6 = DAT_182671ef4;
  uVar8 = DAT_182671c88;
  uVar7 = DAT_182671c7c;
  uVar14 = DAT_182671c5c;
  uVar10 = DAT_182671c58;
  uVar11 = DAT_182671c50;
  uVar5 = DAT_182671c48;
  uVar15 = (ulonglong)DAT_182671c5c;
  DAT_182671c6c = DAT_182671c84 & DAT_182671c88 ^ 0x4405c62e;
  uVar22 = (ulonglong)DAT_182671c90;
  uVar27 = (ulonglong)DAT_182671c48;
  uVar49 = DAT_182671c70 + DAT_182671c5c;
  uVar19 = DAT_182671c50 - DAT_182671c7c;
  uVar20 = (ulonglong)uVar19;
  uVar30 = DAT_182671c58 << 0x10 | DAT_182671c58 >> 0x10;
  uVar43 = DAT_182671c90 + DAT_182671c48;
  uVar2 = *(uint *)(&DAT_182613220 + DAT_1826720d4);
  uVar34 = *(uint *)(&DAT_182613218 + DAT_1826720d4) ^ DAT_182671c70;
  puVar25 = (ulonglong *)(DAT_182671c40 - (uVar15 ^ 0xdceef505));
  uVar33 = (ulonglong)DAT_182671c7c;
  uVar46 = CONCAT44(DAT_182671c7c,uVar19);
  uVar35 = CONCAT44(DAT_182671da4,DAT_182671da4);
  DAT_182671c4c = uVar30;
  DAT_182671c54 = uVar49;
  DAT_182671c78 = uVar43;
  DAT_182671c80 = uVar19;
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       (CONCAT44(DAT_182671c98,DAT_182671c98) ^ *puVar25) << (((byte)uVar19 ^ 0x87) & 0x3f) ^ uVar35
  ;
  lVar3 = DAT_182671c40;
  uVar42 = (ulonglong)uVar30;
  uVar16 = (ulonglong)uVar10;
  uVar40 = (ulonglong)uVar43;
  *(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0x81419a9f)) =
       CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(DAT_182671c40 + -0xa78) ^ CONCAT44(uVar11,uVar30) ^
       0xe595402d7730dbd3;
  uVar9 = DAT_182671fb0;
  uVar31 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xb93c2eec)) =
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0x99d5c9a3)) ^ CONCAT44(DAT_182671ca4,DAT_182671ca4) |
       *(ulonglong *)(lVar3 + -0xa08) ^ uVar35) ^ uVar31;
  uVar6 = DAT_182671de4;
  puVar21 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x10107d7));
  uVar47 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar44 = (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0xbd8)) - (uVar31 ^ *puVar21);
  uVar35 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  local_128 = (byte)uVar14;
  uVar36 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *(ulonglong *)(lVar3 + -0x110) = uVar44 ^ uVar47;
  uVar9 = DAT_182671ec0;
  uVar23 = CONCAT44(uVar6,uVar6);
  uVar35 = uVar35 ^ uVar23 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0xda8) ^
           *(ulonglong *)(lVar3 + -0x888);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar35;
  uVar14 = DAT_182671c6c;
  uVar41 = CONCAT44(uVar9,uVar9);
  uVar17 = (ulonglong)uVar8;
  bVar12 = (byte)uVar8;
  *(ulonglong *)(lVar3 + -0x228) = (uVar35 ^ uVar36) >> ((local_128 ^ 0x2b) & 0x3f) ^ uVar41;
  uVar32 = CONCAT44(DAT_182671d40,DAT_182671d40);
  bVar13 = (byte)DAT_182671e5c;
  *(ulonglong *)(lVar3 + -0xa50) = (uVar35 ^ uVar36) << ((bVar12 ^ 0xad) & 0x3f) ^ uVar32;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x44354ede)) =
       uVar44 << ((bVar13 ^ *(byte *)(lVar3 + -0xb18)) & 0x3f);
  puVar24 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x60b08968));
  uVar37 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  uVar36 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar3 - (uVar15 ^ 0xdceef5ad)) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0xa50) | *puVar24 ^ uVar41) ^ uVar37;
  uVar35 = *(ulonglong *)(lVar3 + -0xc90);
  uVar44 = (ulonglong)DAT_182671d70;
  uVar45 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar41 = CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar28 = (uVar23 ^ *(ulonglong *)(lVar4 + -0xda8)) - (uVar35 ^ uVar37) ^ uVar45;
  *(ulonglong *)(lVar4 + -0xd88) = uVar28;
  uVar32 = (ulonglong)uVar49;
  uVar35 = *(ulonglong *)(lVar4 - (uVar36 ^ 0x10103d7)) ^ uVar41 ^ uVar35 ^ uVar37 ^ uVar47;
  puVar18 = (ulonglong *)(lVar4 - (uVar32 ^ 0xddeffa84));
  *(ulonglong *)(lVar4 + -0x680) = uVar35;
  uVar6 = DAT_182671f68;
  lVar3 = DAT_182671c40;
  uVar37 = (*puVar18 >> 0x20 ^ uVar44) >> 0xe;
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar37 ^ CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x960) = (uVar41 ^ uVar35) << ((bVar12 ^ 0x95) & 0x3f) ^ uVar36;
  uVar44 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar35 = *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x5375390));
  *(uint *)(lVar3 + -0x94c) = uVar7 ^ 0x8e394cf3 | *(uint *)(lVar3 + -0x54);
  uVar37 = uVar35 ^ uVar36 | uVar37;
  uVar35 = CONCAT44(uVar5,DAT_182671c84);
  *(ulonglong *)(lVar3 + -0xa78) = uVar37 ^ uVar44;
  uVar9 = DAT_182671d34;
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar8,uVar49) ^ 0x6583f21f93d90a87) - (uVar35 ^ 0xee5b05dda9adcd1a);
  uVar6 = DAT_182671c9c;
  uVar41 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xa08) = (uVar47 ^ *(ulonglong *)(lVar3 + -0x110)) - uVar37 ^ uVar41;
  uVar36 = CONCAT44(uVar6,uVar6);
  puVar1 = (ulonglong *)(lVar3 + -0x510);
  uVar35 = uVar36 ^ uVar28 ^ uVar45 ^ uVar31 ^ *puVar1;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar35;
  uVar6 = DAT_182671cb8;
  *(undefined1 *)(lVar3 + -0x2e9) = **(undefined1 **)(lVar3 + -0x758);
  uVar28 = CONCAT44(uVar6,uVar6);
  local_f0 = (byte)uVar11;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x2dab409)) =
       (uVar36 ^ uVar35) >> ((bVar12 ^ 0x8b) & 0x3f) ^ uVar28;
  uVar14 = DAT_182671f6c;
  uVar37 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar35 = (ulonglong)DAT_182671f6c;
  uVar47 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x430ad6f)) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar36) << ((local_f0 ^ 0xc4) & 0x3f) ^ uVar37;
  uVar6 = DAT_182671d38;
  uVar28 = uVar37 ^ *(ulonglong *)(lVar3 + -0x5e8) | uVar28 ^ *(ulonglong *)(lVar3 + -0x888);
  uVar36 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar37 = uVar28 ^ uVar36;
  *(ulonglong *)(lVar3 + -0xb18) = uVar37;
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0xf0) = (*(ulonglong *)(lVar3 + -0xd88) ^ uVar45) - uVar28 ^ uVar29;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x814191d7)) =
       *(ulonglong *)(lVar3 - (uVar15 ^ 0xdceef335)) ^ uVar47 ^ uVar37 ^ uVar36 ^ uVar41;
  uVar37 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar28 = ((ulonglong)(uVar14 >> 0x19) | uVar35 << 7) ^ *(ulonglong *)(lVar3 + -0x228) >> 0x19 ^
           uVar37;
  uVar35 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar3 + -0xa50) = uVar28;
  uVar14 = DAT_182671c6c;
  uVar36 = (*puVar24 ^ uVar47) << ((local_128 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar3 + -0xda8) = uVar36 ^ uVar35;
  lVar3 = DAT_182671c40;
  uVar35 = *(ulonglong *)(DAT_182671c40 + -0xa08);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       CONCAT44(DAT_182671c90,uVar14) ^ uVar28 ^ uVar37 ^ 0xddeee05b122a86e;
  uVar6 = DAT_182671dc8;
  uVar38 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar3 + -0x680) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x93ff8b11)) ^ uVar37 | uVar36) ^ uVar38;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x1010eff)) =
       (uVar35 ^ uVar41) - (CONCAT44(uVar8,uVar5) ^ 0x6356870d1448d446) ^ uVar36;
  uVar38 = uVar38 ^ *(ulonglong *)(lVar3 + -0x680);
  uVar35 = *(ulonglong *)(lVar3 + -0xf0);
  uVar26 = CONCAT44(DAT_182671d48,DAT_182671d48);
  uVar28 = (uVar36 ^ *(ulonglong *)(lVar3 + -0xc38)) - uVar38 ^ uVar26;
  uVar37 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar3 + -0x960) = uVar28;
  uVar6 = DAT_182671eec;
  *(ulonglong *)(lVar3 + -0xc18) = uVar38 - (CONCAT44(uVar7,uVar43) ^ 0x52b135973990b54b) ^ uVar37;
  uVar38 = CONCAT44(uVar6,uVar6);
  uVar44 = *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x44354456)) ^ uVar35 ^ uVar38 ^ uVar29 ^
           uVar44;
  *(ulonglong *)(lVar3 + -0x110) = uVar44;
  lVar3 = DAT_182671c40;
  uVar39 = (uVar38 ^ uVar44) << 0x1f;
  uVar36 = *(ulonglong *)(DAT_182671c40 + -0x110);
  *puVar1 = (uVar44 ^ uVar38) + 0xc4d6b0db3821487f;
  local_120 = (byte)uVar7;
  uVar48 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar44 = (uVar38 ^ uVar36) >> ((local_120 ^ 0x4e) & 0x3f);
  uVar36 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar44 ^ uVar48;
  uVar9 = DAT_182671f64;
  *(ulonglong *)(lVar3 + -0x888) = uVar39 ^ uVar36;
  uVar6 = DAT_182671f28;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar38 = CONCAT44(uVar49,DAT_182671c6c);
  uVar44 = uVar44 | uVar39;
  *(ulonglong *)(lVar3 + -0x5e8) = uVar44 ^ uVar36;
  uVar39 = CONCAT44(uVar6,uVar6);
  uVar35 = (uVar35 ^ uVar29) - (uVar38 ^ 0x73e5505f7d59c37d);
  *(ulonglong *)(lVar3 + -0xb18) = uVar35 ^ uVar39;
  *(ulonglong *)(lVar3 + -0x228) = uVar35 | 0x5868a6f30d5ce04f;
  uVar14 = DAT_182671c84;
  lVar4 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 + -0xc90) = uVar35 - uVar44 ^ uVar48;
  uVar6 = DAT_182671f98;
  uVar35 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar4 + -0xa50) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0xb93c2e14)) ^ uVar36) +
       (CONCAT44(uVar14,uVar8) ^ 0xbf814c3ae115a9b1) ^ uVar35;
  uVar44 = CONCAT44(uVar6,uVar6);
  bVar13 = (byte)DAT_182671c70;
  *(ulonglong *)(lVar4 - (uVar16 ^ 0x81419e57)) =
       *(ulonglong *)(lVar4 - (uVar20 ^ 0x2dab6d1)) ^ uVar44 ^ uVar35 ^ uVar28 ^ uVar26;
  uVar36 = (uVar44 ^ *(ulonglong *)(lVar4 + -0xda8)) >> ((bVar13 ^ 0xc2) & 0x3f);
  uVar35 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar4 + -0xa08) = uVar36 ^ CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar6 = DAT_182671d28;
  *(ulonglong *)(lVar4 + -0xc38) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x443543a6)) ^ uVar45) + 0x5244313be004bbf0;
  uVar35 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 + -0x680) =
       (*(ulonglong *)(lVar4 - (uVar15 ^ 0xdceef495)) ^ uVar44) << 0x3b ^ uVar35;
  *(ulonglong *)(lVar4 + -0xa78) =
       CONCAT44(DAT_182671c90,DAT_182671c90) ^ 0x493eae21adea77d |
       CONCAT44(uVar30,uVar7) ^ 0x72530c52d74479fa;
  uVar44 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *puVar21 = (*(ulonglong *)(lVar4 - (uVar16 ^ 0x8141957f)) ^ uVar35 | uVar36) ^ uVar44;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0x93ff8051)) =
       *(ulonglong *)(lVar4 - (uVar42 ^ 0x93ff8a59)) ^ uVar39 ^ *(ulonglong *)(lVar4 + -0xc38);
  *(ulonglong *)(lVar4 + -0xbd8) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x960)) - (uVar44 ^ *puVar1) ^ uVar31;
  uVar6 = DAT_182671ef8;
  lVar3 = DAT_182671c40;
  *(undefined1 *)(lVar4 + -0x6b9) = **(undefined1 **)(lVar4 + -0x758);
  uVar28 = CONCAT44(uVar6,uVar6);
  uVar36 = *(ulonglong *)(lVar4 - (uVar27 ^ 0xe099952f)) ^ uVar28 ^ uVar48 ^ uVar37 ^
           *(ulonglong *)(lVar3 + -0xc18);
  uVar42 = CONCAT44(DAT_182671efc,DAT_182671efc);
  *(ulonglong *)(lVar3 + -0x888) = uVar36;
  uVar6 = DAT_182671e78;
  uVar35 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar37 = (uVar28 ^ uVar36) << ((local_f0 ^ 0xeb) & 0x3f);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xddeff48c)) ^ uVar28) >> ((bVar12 ^ 0xa2) & 0x3f) ^ uVar42
  ;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x228) = uVar37 ^ uVar35;
  uVar14 = DAT_182671c70;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x25c9b87)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x1010237)) ^ uVar42 | uVar37) ^ uVar36;
  uVar42 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(lVar3 + -0xa50) =
       (uVar48 ^ *(ulonglong *)(lVar3 + -0xc90)) - (uVar36 ^ *(ulonglong *)(lVar3 + -0x5e8)) ^
       uVar42;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x60b086c8)) =
       *(ulonglong *)(lVar3 - (uVar17 ^ 0x430a35f)) ^ uVar36 ^ uVar39 ^ uVar31 ^
       *(ulonglong *)(lVar3 + -0x5e8);
  uVar7 = DAT_182671c84;
  puVar24 = (ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x1010f4f));
  uVar36 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar3 + -0xda8) = (uVar39 ^ *puVar24) >> (((byte)uVar19 ^ 0x96) & 0x3f) ^ uVar36;
  *(uint *)(lVar3 + -0x670) = (DAT_182671c6c ^ 0x9ba8dd5d) - (uVar7 ^ 0xdc4735);
  uVar6 = DAT_182671ea0;
  lVar4 = DAT_182671c40;
  uVar35 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0x81419e77)) ^ uVar39) <<
           (((byte)uVar10 ^ 0xd6) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar35 ^ CONCAT44(DAT_182671e60,DAT_182671e60);
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x25c9467)) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0xe0999417)) ^ uVar36 | uVar35) ^ uVar28;
  uVar36 = (ulonglong)DAT_182671f60;
  uVar33 = CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar37 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar3 + -0x680) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar31) - (uVar28 ^ *(ulonglong *)(lVar3 + -0xa08)) ^
       uVar37;
  uVar6 = _DAT_182671cf0;
  uVar35 = uVar33 ^ uVar42 ^ uVar44 ^ *(ulonglong *)(lVar3 + -0xa50) ^ *puVar1;
  *(ulonglong *)(lVar3 + -0xb18) = uVar35;
  uVar44 = CONCAT44(uVar6,uVar6);
  *puVar25 = (uVar35 >> 0x20 ^ uVar36) >> 8 ^ uVar44;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0x430a997)) =
       (uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) << ((bVar12 ^ 0x9f) & 0x3f) ^ uVar23;
  *(undefined4 *)(lVar3 - (uVar16 ^ 0x81419a23)) = 0x40e9304f;
  uVar6 = DAT_182671d74;
  uVar33 = uVar44 ^ *(ulonglong *)(lVar3 + -0xc38) | uVar23 ^ *(ulonglong *)(lVar3 + -0x110);
  uVar35 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(lVar3 + -0x960) = uVar33 ^ uVar35;
  uVar36 = CONCAT44(uVar6,uVar6);
  local_108 = (byte)(uVar10 >> 0x10);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xe09995a7)) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0xa50)) - uVar33 ^ uVar36;
  uVar10 = DAT_182671c70 ^ 0x85901240;
  *(ulonglong *)(lVar3 + -0x888) =
       uVar35 ^ uVar37 ^ uVar42 ^ *(ulonglong *)(lVar3 + -0x960) ^ *(ulonglong *)(lVar3 + -0x680);
  *(uint *)(lVar3 + -0x634) = uVar10 + 0x52252f33;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xf0) = (uVar46 ^ 0x336b7079245aa35e) << ((local_108 ^ 0x69) & 0x3f);
  uVar6 = DAT_182671e38;
  uVar35 = (uVar42 ^ *(ulonglong *)(lVar3 + -0x888)) >> (((byte)uVar49 ^ 0x30) & 0x3f);
  *(ulonglong *)(lVar3 + -0x228) = uVar35 ^ CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar26 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 + -0xc90) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0xe0999137)) ^ uVar42) << 0xc ^ uVar26;
  uVar6 = DAT_182671cd0;
  *(ulonglong *)(lVar4 + -0x5e8) =
       (*(ulonglong *)(lVar4 - (uVar16 ^ 0x81419fe7)) ^ uVar36) -
       (uVar36 ^ *(ulonglong *)(lVar4 + -0xc18));
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(uVar6,uVar6);
  uVar14 = DAT_182671c50 ^ 0x46bc354a;
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x99d5c833)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0x443542be)) ^ uVar26 | uVar35) ^ uVar33;
  uVar6 = DAT_182671e30;
  uVar42 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  uVar10 = DAT_182671c80 ^ 0x24740b0e;
  *(ulonglong *)(lVar3 + -0xda8) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x680)) - (uVar33 ^ *(ulonglong *)(lVar3 + -0xd88)) ^
       uVar42;
  uVar9 = DAT_182671f84;
  uVar44 = CONCAT44(uVar6,uVar6);
  *(uint *)(lVar3 + -0x94) = uVar14 * uVar10;
  uVar6 = DAT_182671d30;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar35 = uVar44 ^ uVar36 ^ uVar28 ^ *(ulonglong *)(lVar3 + -0xa08) ^
           *(ulonglong *)(lVar3 + -0xc18);
  *(ulonglong *)(lVar3 + -0xa78) = uVar35;
  *(ulonglong *)(lVar3 + -0xbd8) = (uVar35 ^ uVar44) >> (((byte)uVar49 ^ 0x3d) & 0x3f) ^ uVar23;
  lVar3 = DAT_182671c40;
  uVar35 = (*(ulonglong *)(DAT_182671c40 - (uVar15 ^ 0xdceef345)) ^ uVar44) <<
           ((local_120 ^ 0x68) & 0x3f);
  *puVar1 = uVar35 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182671ee4;
  *(undefined1 *)(lVar3 + -0x2e9) = **(undefined1 **)(lVar3 + -0x428);
  lVar3 = DAT_182671c40;
  uVar44 = CONCAT44(uVar6,uVar6);
  local_110 = (byte)uVar5;
  puVar21 = (ulonglong *)(DAT_182671c40 + -0xc90);
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c70 ^ 0x101091f)) ^ uVar23 | uVar35) ^
       uVar44;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x430a4bf)) =
       uVar26 ^ *puVar21 ^ CONCAT44(uVar11,uVar30) ^ 0x8b6bfa34d0619c98;
  uVar23 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x2dabd91)) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0xc18)) - (uVar44 ^ *(ulonglong *)(lVar3 + -0xb18)) ^
       uVar23;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xb93c21ac)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x5375758)) ^ uVar44 ^ uVar42 ^
       *(ulonglong *)(lVar3 + -0xb18) ^ uVar41;
  lVar3 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar35 = *(ulonglong *)(DAT_182671c40 + -0xa50);
  uVar11 = DAT_182671c6c ^ 0xe1b0f468;
  uVar10 = DAT_182671c84 ^ 0x2bc3cbe7;
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (*(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x99d5cfeb)) ^ uVar41) >>
       ((local_110 ^ 0xb1) & 0x3f) ^ uVar36;
  uVar6 = DAT_182671fb4;
  *(uint *)(lVar3 + -0x644) = uVar10 | uVar11;
  uVar9 = DAT_182671e64;
  uVar40 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0xf0) = (uVar41 ^ uVar35) << 0x32 ^ uVar40;
  uVar6 = DAT_182671c68;
  uVar41 = CONCAT44(uVar9,uVar9);
  uVar35 = CONCAT44(DAT_182671c90,DAT_182671c68);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x81419b77)) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xddeff564)) ^ uVar36 |
       *(ulonglong *)(lVar3 - (uVar17 ^ 0x430a877)) ^ uVar40) ^ uVar41;
  uVar9 = DAT_182671ddc;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xddeff9ec)) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0xf0)) >> ((local_108 ^ 0x5e) & 0x3f);
  uVar35 = (uVar42 ^ *(ulonglong *)(lVar3 + -0xda8)) - (uVar35 ^ 0xc56c8f6dac2c9c6f);
  *(ulonglong *)(lVar3 + -0x228) = uVar35 ^ CONCAT44(DAT_182671e94,DAT_182671e94);
  *puVar18 = uVar35 - (*(ulonglong *)(lVar3 + -0x888) ^ uVar41) ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xa08) = CONCAT44(uVar8,uVar5) ^ 0x8abb33391f938c10;
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 + -0x888) ^ uVar41) - (CONCAT44(uVar19,uVar43) ^ 0x2876a404bdd2ce65) ^
       uVar47;
  uVar9 = DAT_182671f88;
  *(ulonglong *)(lVar3 + -0xbd8) =
       uVar23 ^ uVar33 ^ *puVar24 ^ CONCAT44(DAT_182671f88,DAT_182671f88) ^
       *(ulonglong *)(lVar3 + -0x110);
  DAT_182671c90 = DAT_182671c70 << 0x10 | DAT_182671c70 >> 0x10;
  *puVar1 = (CONCAT44(uVar6,uVar43) ^ 0xb2eff586543539d3) >>
            ((*(byte *)(lVar3 - (uVar15 ^ 0xdceef2e5)) ^ (byte)uVar9) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar49) * 4) = uVar34;
  return;
}



############ FUN_ 180fc94a0 size=4143 ############

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

void FUN_180fc94a0(void)

{
  ulonglong *puVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  byte bVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  uint uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint *puVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  byte *pbVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  byte local_a0;
  
  uVar19 = DAT_182671d8c;
  uVar20 = DAT_182671c90;
  uVar14 = DAT_182671c7c;
  uVar21 = DAT_182671c6c;
  uVar6 = DAT_182671c68;
  uVar5 = DAT_182671c58;
  uVar18 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c7c;
  uVar38 = (ulonglong)DAT_182671c68;
  DAT_182671c78 = DAT_182671c48 | DAT_182671c6c;
  uVar37 = DAT_182671c7c ^ DAT_182671c90;
  uVar36 = (ulonglong)DAT_182671c58;
  uVar22 = DAT_182671c5c + DAT_182671c50;
  uVar24 = DAT_182671c68 - DAT_182671c58;
  uVar30 = (DAT_182671c80 << 0x10 | DAT_182671c80 & 0xff00) << 8 | DAT_182671c80 >> 8 & 0xff00 |
           DAT_182671c80 >> 0x18;
  uVar26 = *(uint *)(&DAT_182613218 + DAT_1826722ec) ^ DAT_182671c48;
  uVar10 = (ulonglong)DAT_182671c6c;
  uVar9 = *(uint *)(&DAT_182613210 + (uVar10 ^ 0xef98ffe5) + (longlong)DAT_1826722ec) ^
          DAT_182671c78;
  uVar11 = (ulonglong)DAT_182671c58;
  uVar16 = *(uint *)(DAT_182671c40 + -0x54) ^ DAT_182671e7c;
  DAT_182671c4c = uVar22;
  DAT_182671c64 = uVar24;
  DAT_182671c84 = uVar30;
  DAT_182671c88 = uVar37;
  *(undefined8 *)(DAT_182671c40 + -0x510) = 0xfe7f7fb7ffeffef0;
  lVar4 = DAT_182671c40;
  uVar17 = uVar16 >> (((byte)uVar6 ^ 0xfe) & 0x1f) ^ DAT_182671f84;
  uVar27 = *(uint *)(lVar3 - (uVar11 ^ 0x1a9880ce)) ^ DAT_182671e7c;
  *(uint *)(lVar3 + -0x634) = uVar17;
  uVar16 = DAT_182671c48;
  uVar17 = uVar17 ^ DAT_182671f84;
  uVar27 = uVar27 << 0xd;
  uVar11 = (ulonglong)uVar18;
  *(uint *)(lVar3 + -0x644) = uVar27 ^ uVar19;
  uVar28 = DAT_182671f6c;
  uVar31 = DAT_182671c80;
  *(uint *)(lVar4 + -0x784) = (uVar27 | uVar17) ^ DAT_182671f6c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x8f0) =
       (CONCAT44(uVar31,uVar30) ^ 0x6a12ef7e0132d54a) -
       (CONCAT44(uVar24,uVar18) ^ 0x6371e526a07035cd);
  uVar12 = (ulonglong)uVar22;
  *(uint *)(lVar3 + -0x94c) =
       (*(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0x1000484)) ^ DAT_182671e80) +
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671d30;
  *(uint *)(lVar3 - ((ulonglong)uVar16 ^ 0x71539e82)) =
       *(uint *)(lVar3 - ((ulonglong)uVar22 ^ 0xcf5cb4aa)) ^ DAT_182671db8 ^ DAT_182671d30;
  uVar17 = DAT_182671fa0;
  uVar16 = *(uint *)(lVar3 - ((ulonglong)uVar14 ^ 0xc6a6cf4e)) ^ DAT_182671e8c ^ uVar28;
  *(uint *)(lVar3 + -0x9dc) = DAT_182671f20 ^ DAT_182671db8 ^ *(uint *)(lVar3 + -0x58c);
  uVar13 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar3 + -0x444) = uVar16;
  uVar16 = uVar16 ^ DAT_182671e8c;
  uVar15 = (ulonglong)uVar20;
  *(ulonglong *)(lVar3 + -0x3d8) =
       *(ulonglong *)(lVar3 - (uVar13 ^ 0x10084402)) | *(ulonglong *)(lVar3 + -0x680);
  *(uint *)(lVar3 + -0x61c) = uVar16 ^ uVar28;
  bVar2 = (byte)DAT_182671fa4;
  uVar25 = (ulonglong)DAT_182671fb4;
  uVar13 = (ulonglong)uVar37;
  *(ulonglong *)(lVar3 - (uVar15 ^ 0x1400560)) =
       (CONCAT44(uVar37,uVar5) ^ 0xc7e6ccda1a98809c) + *(longlong *)(lVar3 + -0x9a8) ^ uVar25;
  *(byte *)(lVar3 - (uVar10 ^ 0xef98fe36)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x170) ^ uVar25) ^ bVar2 ^ (byte)DAT_182671e0c;
  uVar16 = DAT_182671c78 ^ 0xd1bd2a01;
  *(uint *)(lVar3 + -0xae4) = (*(byte *)(lVar3 + -0x1c3) ^ bVar2) ^ uVar17;
  *(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0xd55f3f9b)) = uVar16 + 0x3ba28847;
  uVar16 = DAT_182671c48;
  uVar25 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar3 + -0x6c0) =
       (*(uint *)(lVar3 + -0x61c) ^ uVar28) + (uVar24 ^ 0x491d2c4d) ^ DAT_182671d9c;
  *(uint *)(lVar3 + -0x670) =
       (*(uint *)(lVar3 - (uVar25 ^ 0x71539d4a)) ^ uVar19) - (uVar37 ^ 0xa77ffe47);
  uVar27 = DAT_182671d6c;
  uVar19 = DAT_182671c78;
  uVar25 = (ulonglong)DAT_182671c78;
  uVar31 = *(uint *)(lVar3 + -0xae4) ^ uVar17;
  *(uint *)(lVar3 + -0x684) = uVar31 << (((byte)DAT_182671c80 ^ 1) & 0x1f) ^ DAT_182671cb8;
  *(uint *)(lVar3 - (uVar25 ^ 0xffdbf893)) = (uVar6 ^ 0xe059c142) + uVar31;
  uVar28 = (*(uint *)(lVar3 + -0x6c0) ^ DAT_182671d9c) - (*(uint *)(lVar3 + -0x684) ^ DAT_182671cb8)
           ^ DAT_182671f90;
  *(uint *)(lVar3 + -0x54) = uVar28;
  uVar31 = DAT_182671e9c;
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 - (uVar11 ^ 0xbf547508)) ^ DAT_182671f20) * (uVar28 ^ DAT_182671f90) ^
       DAT_182671e9c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x1400638)) =
       *(ulonglong *)(lVar3 - (uVar34 ^ 0xc6a6c2b2)) | *(ulonglong *)(lVar3 + -0xda8);
  uVar17 = (*(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0xeff7b409)) ^ uVar17) * (uVar20 ^ 0x1400416) ^
           DAT_182671e34;
  *(uint *)(lVar3 + -0x94) = uVar17;
  uVar28 = DAT_182671cf4;
  *(uint *)(lVar3 + -0x94c) =
       (uVar17 ^ DAT_182671e34) + (uVar31 ^ *(uint *)(lVar3 + -0x634)) ^ DAT_182671cf4;
  uVar37 = DAT_182671e40;
  uVar31 = DAT_182671c5c;
  *(uint *)(lVar3 - (uVar13 ^ 0xc7e6cb5e)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar30 ^ 0x1004094d)) ^ uVar28) <<
       (((byte)uVar22 ^ 0xeb) & 0x1f) ^ uVar27;
  uVar17 = DAT_182671d08;
  uVar25 = (ulonglong)DAT_182671d1c;
  uVar23 = (*(uint *)(lVar3 + -0x94c) ^ uVar28) >> (((byte)uVar5 ^ 0x89) & 0x1f) ^ DAT_182671f88;
  uVar28 = *(uint *)(lVar3 + -0x27c) ^ DAT_182671d4c;
  *(ulonglong *)(lVar3 + -0xb20) = CONCAT44(uVar14,uVar16) ^ 0xdcb2b7fffd25bfd7 | 0x14b2a77ba1012757
  ;
  uVar16 = *(uint *)(lVar3 + -0x4ac) ^ DAT_182671f10;
  *(uint *)(lVar3 + -0x58c) = uVar23;
  uVar23 = uVar23 ^ DAT_182671f88;
  *(uint *)(lVar3 + -0x1c8) = uVar28 + uVar16 ^ DAT_182671f98;
  uVar16 = (uVar23 | uVar27 ^ *(uint *)(lVar3 + -0x784)) ^ uVar37;
  *(uint *)(lVar3 + -0x444) = uVar16;
  puVar29 = (uint *)(*(longlong *)(lVar3 - ((ulonglong)uVar31 ^ 0x10084b92)) +
                    ((CONCAT44(uVar19,uVar19) ^ 0xffdbffffffdbffff) * 5 +
                    (CONCAT44(uVar31,uVar24) ^ 0x10084112d55f3e52)) * 4);
  *(ulonglong *)(lVar3 + -0x3f0) = (ulonglong)puVar29 ^ uVar25;
  *puVar29 = uVar17 ^ uVar37 ^ uVar16;
  *(uint *)(lVar3 - (uVar11 ^ 0xbf547ac8)) =
       *(uint *)(lVar3 + -0x1c8) ^ DAT_182671d04 ^ DAT_182671f98;
  uVar8 = DAT_182671f84;
  lVar4 = DAT_182671c40;
  *(uint *)(lVar3 - (uVar10 ^ 0xef98f9b1)) =
       *(uint *)(lVar3 - (uVar13 ^ 0xc7e6c89e)) ^ DAT_182671db0 ^ uVar37;
  uVar28 = *(uint *)(lVar3 + -0x644) ^ DAT_182671f58 ^ DAT_182671db0;
  uVar16 = *(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0xeff7b8f1)) ^ DAT_182671de0 ^ DAT_182671d04;
  *(undefined8 *)(lVar3 + -0x408) = 0x8651c0eb2682e6c3;
  *(uint *)(lVar3 + -0x670) = uVar16;
  uVar10 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar3 - (uVar12 ^ 0xcf5cba8a)) = uVar28;
  uVar16 = DAT_182671c80;
  uVar33 = *(uint *)(lVar3 + -0x670) ^ DAT_182671d5c ^ DAT_182671de0;
  *(uint *)(lVar3 + -0x684) = *(uint *)(lVar3 + -0x76c) ^ DAT_182671f9c ^ DAT_182671f58;
  *(uint *)(lVar3 + -0x6c0) = uVar33;
  uVar33 = uVar33 ^ DAT_182671d5c;
  *(uint *)(lVar3 + -0x9dc) = uVar33 ^ uVar8;
  uVar28 = *(uint *)(lVar3 - (uVar10 ^ 0x71539d8a)) ^ DAT_182671f9c;
  *(uint *)(lVar3 + -0x54) = uVar28 ^ uVar8;
  bVar2 = (byte)DAT_182671e44;
  uVar27 = DAT_182671df0;
  uVar10 = (ulonglong)DAT_182671df0;
  *(ulonglong *)(lVar4 + -0xbc0) =
       (CONCAT44(uVar20,uVar16) ^ 0x140041001000401) + *(longlong *)(lVar4 + -0x9a8) ^ uVar10;
  *(byte *)(lVar4 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar15 ^ 0x1400fd0)) ^ uVar10) ^ bVar2 ^
       (byte)DAT_182671e0c;
  uVar16 = (uint)(*(byte *)(lVar4 - (uVar15 ^ 0x14005d3)) ^ bVar2);
  *(uint *)(lVar4 + -0xae4) = uVar16 ^ uVar17;
  uVar23 = DAT_182671f24;
  uVar6 = DAT_182671cac;
  uVar32 = uVar28 + (uVar31 ^ 0x8c4a530c) ^ DAT_182671ea4;
  *(uint *)(lVar4 + -0x634) = uVar32;
  uVar32 = uVar32 ^ DAT_182671ea4;
  *(uint *)(lVar4 + -0x94) = uVar16 * 0x20000 ^ uVar23;
  uVar28 = DAT_182671e78;
  uVar32 = uVar32 + uVar16 * -0x20000;
  *(uint *)(lVar4 + -0x94c) = uVar32 ^ uVar6;
  uVar37 = DAT_182671f80;
  *(ulonglong *)(lVar4 + -0x960) =
       -0x6007456920c2eb7f - (CONCAT44(uVar30,uVar19) ^ 0x7614cea214e71304);
  uVar15 = (ulonglong)DAT_182671c80;
  local_a0 = (byte)uVar14;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c80 ^ 0x1000394)) = uVar32 * uVar33 ^ uVar28;
  *(ulonglong *)(lVar4 + -0x7c0) = *(ulonglong *)(lVar4 + -0xb20) >> ((local_a0 ^ 0xfb) & 0x3f);
  uVar14 = (*(uint *)(lVar4 + -0xae4) ^ uVar17) * 0x11 ^ DAT_182671e48;
  *(uint *)(lVar4 + -0x58c) = uVar14;
  uVar16 = DAT_182671cf8;
  uVar14 = (uVar14 ^ DAT_182671e48) + (uVar28 ^ *(uint *)(lVar4 + -0x784));
  *(uint *)(lVar4 + -0x4ac) = uVar14 ^ uVar37;
  uVar17 = uVar14 << (((byte)DAT_182671c6c ^ 0xf8) & 0x1f);
  *(uint *)(lVar4 + -0x1c8) = uVar17 ^ uVar16;
  *(ulonglong *)(lVar4 + -0x920) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar24 ^ 0xd55f3573)) >> (((byte)uVar24 ^ 0x56) & 0x3f);
  uVar28 = DAT_182671d20;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x61c) = uVar14 >> (((byte)uVar22 ^ 0xf5) & 0x1f) ^ DAT_182671d20;
  uVar37 = DAT_182671f0c;
  *(uint *)(lVar3 + -0x644) =
       (*(uint *)(lVar3 - (uVar13 ^ 0xc7e6cac6)) ^ uVar28 | uVar17) ^ DAT_182671dd8;
  uVar17 = DAT_182671d40;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x1a988aea)) =
       (CONCAT44(uVar30,uVar18) ^ 0x11dda7bbc7949744) + 0x9654044d8b733322;
  uVar14 = DAT_182671d00;
  *(uint *)(lVar3 + -0x76c) =
       (*(uint *)(lVar3 - (uVar38 ^ 0xeff7bb39)) ^ DAT_182671dd4) +
       (*(uint *)(lVar3 + -0x9dc) ^ uVar8) ^ DAT_182671d00;
  uVar16 = DAT_182671c5c;
  uVar10 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c48 ^ 0x71539dce)) =
       (*(uint *)(lVar3 + -0x61c) ^ uVar28) >> (((byte)DAT_182671c48 ^ 7) & 0x1f);
  uVar18 = DAT_182671c78 ^ 0x782c6c23;
  *(uint *)(lVar3 - ((ulonglong)uVar16 ^ 0x10084796)) =
       *(uint *)(lVar3 - (uVar10 ^ 0x1008467e)) ^ uVar17 ^ uVar14;
  *(uint *)(lVar3 + -0x54) = *(uint *)(lVar3 + -0x684) ^ uVar17 | uVar18;
  *(uint *)(lVar3 + -0x634) = *(uint *)(lVar3 + -0x644) ^ DAT_182671dac ^ DAT_182671dd8;
  *(uint *)(lVar3 + -0x94) = *(uint *)(lVar3 + -0x684) ^ uVar37 ^ uVar17;
  uVar28 = DAT_182671ea0;
  bVar7 = (byte)DAT_182671d48;
  uVar10 = (ulonglong)DAT_182671e1c;
  *(uint *)(lVar3 + -0x94c) =
       *(uint *)(lVar3 - (uVar11 ^ 0xbf547ae0)) ^ DAT_182671d80 ^ DAT_182671dac;
  *(ulonglong *)(lVar3 + -0x5a0) =
       (CONCAT44(uVar24,uVar24) ^ 0xd55f3e53d55f3e53) * 0x20 + *(longlong *)(lVar3 + -0x9a8) + 0x1c
       ^ uVar10;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar15 ^ 0x10001b0)) ^ uVar10) ^ bVar7 ^
       (byte)DAT_182671e0c;
  *(ulonglong *)(lVar3 + -0x30) =
       (CONCAT44(uVar5,uVar19) ^ 0xc8cfd5c2cfe04ae5) <<
       ((byte)*(undefined8 *)(lVar3 + -0x8f0) & 0x3f);
  bVar2 = (byte)DAT_182671c6c;
  *(uint *)(lVar3 - (uVar36 ^ 0x1a988a7e)) = (bVar7 ^ *(byte *)(lVar3 + -0x1c3)) ^ uVar28;
  uVar18 = DAT_182671c80;
  uVar19 = uVar28 ^ *(uint *)(lVar3 + -0xae4);
  *(uint *)(lVar3 + -0x784) = uVar19 << ((bVar2 ^ 0xf5) & 0x1f);
  uVar17 = DAT_182671f30;
  uVar16 = uVar19 << (((byte)uVar16 ^ 3) & 0x1f) ^ DAT_182671f30;
  *(uint *)(lVar3 + -0x58c) =
       (*(uint *)(lVar3 + -0x94c) ^ DAT_182671d80) + (uVar18 ^ 0x9d42160e) ^ uVar14;
  uVar19 = DAT_182671ec0;
  *(uint *)(lVar3 - (uVar34 ^ 0xc6a6cc66)) = uVar16;
  uVar16 = (uVar14 ^ *(uint *)(lVar3 + -0x58c)) - (uVar17 ^ *(uint *)(lVar3 + -0x4ac)) ^
           _DAT_182671cf0;
  *(uint *)(lVar3 + -0x1c8) = uVar16;
  *(uint *)(lVar3 + -0x9dc) =
       (uVar16 ^ _DAT_182671cf0) * (*(uint *)(lVar3 + -0x94) ^ uVar37) ^ uVar19;
  uVar18 = DAT_182671c94;
  uVar10 = (ulonglong)DAT_182671c94;
  uVar17 = DAT_182671c94 << 0x10;
  *(ulonglong *)(lVar3 - (uVar12 ^ 0xcf5cb56e)) =
       (CONCAT44(uVar21,uVar20) ^ 0x108abe7143f8809c) + 0x90a73a8aba0d6653;
  uVar21 = DAT_182671e38;
  uVar16 = DAT_182671c94;
  lVar4 = DAT_182671c40;
  uVar20 = (uVar28 ^ *(uint *)(lVar3 + -0xae4)) * 0x1c ^ DAT_182671dd4;
  uVar28 = (uVar17 | uVar18 & 0xff00) << 8 | uVar18 >> 8 & 0xff00 | DAT_182671c94 >> 0x18;
  *(uint *)(lVar3 + -0x61c) = uVar20;
  DAT_182671c70 = uVar28;
  *(uint *)(lVar4 - (uVar10 ^ 0x80a20288)) =
       (uVar19 ^ *(uint *)(lVar4 + -0x9dc)) + (uVar20 ^ DAT_182671dd4) ^ uVar21;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar28 ^ 0x4804a5ec)) =
       (uVar21 ^ *(uint *)(DAT_182671c40 + -0x6c0)) << (((byte)(uVar16 >> 0x18) ^ 0x8d) & 0x1f) ^
       DAT_182671f88;
  uVar16 = (uVar21 ^ *(uint *)(lVar3 + -0x6c0)) >> 0x13 ^ DAT_182671dd4;
  *(uint *)(lVar3 + -0x54) = uVar16;
  lVar3 = DAT_182671c40;
  uVar16 = uVar16 ^ DAT_182671dd4;
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       (CONCAT44(uVar28,uVar18) ^ 0xe45c47bb3fac90dc) <<
       ((byte)*(undefined8 *)(DAT_182671c40 + -0x30) & 0x3f);
  *(uint *)(lVar3 + -0x644) = (uVar16 | *(uint *)(lVar3 + -0x76c) ^ DAT_182671f88) ^ DAT_182671f74;
  uVar16 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x4b8);
  uVar21 = (*(uint *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0x80a2019c)) ^ DAT_182671dd4) +
           (*(uint *)(DAT_182671c40 + -0x94) ^ uVar37);
  *(uint *)(DAT_182671c40 + -0x684) = uVar21 ^ DAT_182671db4;
  *(ulonglong *)(lVar3 + -0x110) = CONCAT44(uVar28,uVar28) ^ *puVar1 ^ 0x445444cdd82a5a01;
  puVar29 = (uint *)(lVar3 - ((ulonglong)uVar18 ^ 0x80a2027c));
  *puVar29 = uVar21 ^ uVar27;
  uVar21 = *(uint *)(lVar3 - ((ulonglong)uVar30 ^ 0x10040645)) ^ DAT_182671f04 ^ DAT_182671f74;
  *(undefined8 *)(lVar3 + -0xa08) = 0xca639ace;
  uVar27 = DAT_182671f4c ^ uVar27;
  *(uint *)(lVar3 + -0x784) = uVar21;
  *(uint *)(lVar3 + -0x94c) = uVar27 ^ *puVar29;
  *(uint *)(lVar3 + -0x58c) = DAT_182671f44 ^ DAT_182671f04 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x5e8) = CONCAT44(uVar24,uVar28) ^ 0xe70beffcfff7dcef | 0xc60ae8cc95f7ccae
  ;
  pbVar35 = (byte *)((CONCAT44(uVar31,uVar28) ^ 0x100841124804a280) * 0x20 +
                     (CONCAT44(uVar31,uVar16) ^ 0x1008411271539b09) + *(longlong *)(lVar3 + -0x9a8))
  ;
  *(ulonglong *)(lVar3 + -0xc20) = (ulonglong)pbVar35 ^ (ulonglong)DAT_182671db8;
  *(ulonglong *)(lVar3 + -0xa50) =
       (CONCAT44(uVar5,uVar22) ^ 0xc874f22a1dc584c6) + *(longlong *)(lVar3 + -0xa70);
  *(byte *)(lVar3 - (uVar38 ^ 0xeff7bf2e)) = *pbVar35 ^ (byte)uVar6 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar3 - (uVar36 ^ 0x1a988436)) =
       uVar6 & 0xff ^ (uint)*(byte *)(lVar3 + -0x1c3) ^ DAT_182671cd4;
  *(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0x80a20580)) =
       (*(uint *)(lVar3 - (uVar12 ^ 0xcf5cb86a)) ^ DAT_182671f44) + (uVar28 ^ 0xd446b09e) ^ uVar14;
  uVar10 = *(ulonglong *)(CONCAT44(DAT_182671ec4,DAT_182671ec4) ^ *(ulonglong *)(lVar3 + -0x6e8));
  *(undefined8 *)(lVar3 + -0x6e8) = 0x473bc7710e774337;
  *(ulonglong *)(lVar3 + -0xf0) = uVar10 ^ CONCAT44(uVar23,uVar23);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar26;
  return;
}



############ FUN_ 181002b30 size=5784 ############

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

void FUN_181002b30(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  uint uVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  uint uVar54;
  ulonglong uVar55;
  byte local_res20;
  byte local_148;
  byte local_138;
  byte local_130;
  byte local_110;
  byte local_108;
  byte local_68;
  
  uVar14 = DAT_182671fb4;
  uVar13 = DAT_182671c8c;
  uVar12 = DAT_182671c78;
  uVar10 = DAT_182671c70;
  uVar9 = DAT_182671c6c;
  uVar8 = DAT_182671c68;
  uVar6 = DAT_182671c48;
  lVar4 = DAT_182671c40;
  uVar49 = (ulonglong)DAT_182671c48;
  uVar19 = (ulonglong)DAT_182671c68;
  uVar30 = (ulonglong)DAT_182671c6c;
  uVar44 = (ulonglong)DAT_182671c8c;
  uVar54 = DAT_182671c6c - DAT_182671c60;
  uVar3 = *(uint *)(&DAT_182613218 + DAT_182671fd8);
  uVar33 = (ulonglong)DAT_182671c70;
  uVar28 = (ulonglong)DAT_182671c78;
  uVar38 = DAT_182671c70 | DAT_182671c74;
  uVar27 = DAT_182671c8c - DAT_182671c78;
  uVar51 = DAT_182671c48 * DAT_182671c68;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_182671fd8) ^ DAT_182671c48;
  uVar31 = CONCAT44(DAT_182671eac,DAT_182671eac);
  DAT_182671c4c = uVar38;
  DAT_182671c54 = uVar51;
  DAT_182671c5c = uVar54;
  DAT_182671c90 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (CONCAT44(DAT_182671d3c,DAT_182671d3c) ^ *(ulonglong *)(DAT_182671c40 + -0x960)) -
       (CONCAT44(DAT_182671c68,DAT_182671c70) ^ 0x40d43c4c41108789) ^ uVar31;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar45 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  puVar1 = (ulonglong *)(lVar4 + -0xc90);
  uVar35 = CONCAT44(DAT_182671fb0,DAT_182671fb0) ^ uVar45 ^ uVar32 ^ *puVar1 ^
           *(ulonglong *)(lVar4 + -0x228);
  *(ulonglong *)(lVar4 + -0xd88) = uVar35;
  lVar4 = DAT_182671c40;
  uVar22 = (ulonglong)uVar38;
  uVar23 = (uVar35 ^ uVar32) >> (((byte)DAT_182671c74 ^ 0x6c) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar23 ^ CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar4 + -0xda8) = uVar35 ^ uVar32 ^ 0xb884d9903a076f26;
  uVar14 = DAT_182671edc;
  bVar29 = (byte)uVar9;
  uVar25 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar32 = (uVar35 ^ uVar32) << ((bVar29 ^ 0xc9) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar32 ^ uVar25;
  lVar4 = DAT_182671c40;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar23 = uVar23 | uVar32;
  uVar34 = (ulonglong)uVar27;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  *puVar2 = uVar23 ^ uVar35;
  uVar11 = DAT_182671c74;
  uVar32 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar4 + -0x110) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x923ca94b)) ^ uVar45) -
       (CONCAT44(uVar12,DAT_182671c74) ^ 0x60ff38c79cc9fc61) ^ uVar32;
  puVar46 = (ulonglong *)(lVar4 - (uVar28 ^ 0x7dff6fd8));
  uVar45 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *(ulonglong *)(lVar4 + -0xa08) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x7dff6510)) ^ uVar32) - (uVar35 ^ *puVar46) ^
       uVar45;
  uVar32 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar4 + -0xc38) = uVar23 + (CONCAT44(uVar9,uVar54) ^ 0x7db3db8f02b7f4dd) ^ uVar32;
  uVar7 = DAT_182671c60;
  lVar5 = DAT_182671c40;
  uVar55 = (ulonglong)DAT_182671c60;
  uVar23 = CONCAT44(DAT_182671d00,DAT_182671d00);
  uVar43 = (ulonglong)uVar51;
  uVar39 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *(ulonglong *)(lVar4 + -0xa78) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c60 ^ 0xefc3fa1c)) ^ uVar39 ^ uVar23 ^ uVar32 ^
       *(ulonglong *)(lVar4 + -0x888);
  *(ulonglong *)(lVar5 - (uVar55 ^ 0xefc3ff44)) =
       (CONCAT44(uVar6,uVar51) ^ 0xdbddd39733dfea1e) << (((byte)uVar13 ^ 0xd5) & 0x3f);
  local_148 = (byte)uVar54;
  uVar26 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar5 + -0x228) =
       (uVar23 ^ *(ulonglong *)(lVar5 + -0xa78)) >> (((byte)uVar27 ^ 0xfb) & 0x3f) ^ uVar26;
  *(ulonglong *)(lVar5 - (uVar44 ^ 0x103c0473)) =
       (uVar23 ^ *(ulonglong *)(lVar5 + -0xa78)) << ((local_148 ^ 0xf5) & 0x3f) ^ uVar32;
  puVar50 = (ulonglong *)(lVar5 - ((ulonglong)DAT_182671c74 ^ 0xf48406d4));
  uVar23 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(lVar5 + -0xd88) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0x228) | uVar32 ^ *puVar50) ^ uVar23;
  *(ulonglong *)(lVar5 - (uVar55 ^ 0xefc3f0a4)) =
       -0x77f26f7da599c959 - (*(ulonglong *)(lVar5 - (uVar22 ^ 0xfdfd5aef)) ^ uVar25);
  lVar4 = DAT_182671c40;
  uVar52 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *puVar1 = (uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0x888)) -
            (uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0xd88)) ^ uVar52;
  uVar32 = CONCAT44(DAT_182671f84,DAT_182671f84);
  puVar20 = (ulonglong *)(lVar4 - (uVar43 ^ 0x51eb0110));
  *puVar20 = uVar32 ^ uVar45 ^ *(ulonglong *)(lVar4 + -0xa08) ^ *(ulonglong *)(lVar4 + -0x5e8) ^
             uVar31;
  local_130 = (byte)uVar12;
  uVar40 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *puVar46 = (uVar32 ^ *(ulonglong *)(lVar4 + -0x110)) >> ((local_130 ^ 0x20) & 0x3f) ^ uVar40;
  lVar4 = DAT_182671c40;
  uVar39 = (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x110)) << ((local_148 ^ 0xf5) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar39 ^ CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar4 + -0x960) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x228)) >> (((byte)uVar27 ^ 0xf6) & 0x3f);
  uVar14 = DAT_182671dac;
  uVar31 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar39 = uVar39 | uVar40 ^ *puVar2;
  *(ulonglong *)(lVar4 + -0xa78) = uVar39 ^ uVar31;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xfbdff251)) =
       (uVar45 ^ *(ulonglong *)(lVar4 + -0xa08)) - uVar39 ^ uVar32;
  lVar5 = DAT_182671c40;
  uVar41 = CONCAT44(DAT_182671e84,DAT_182671e84);
  local_110 = (byte)uVar10;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x1a0ab510)) =
       *(ulonglong *)(lVar4 - (uVar22 ^ 0xfdfd5587)) ^ uVar41 ^ uVar31 ^ uVar52 ^ *puVar1;
  uVar31 = (uVar41 ^ *(ulonglong *)(lVar5 + -0x510)) >> ((local_110 ^ 0xe5) & 0x3f);
  uVar47 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  local_res20 = (byte)uVar7;
  uVar45 = (uVar41 ^ *(ulonglong *)(lVar5 + -0x510)) << ((local_res20 ^ 0x22) & 0x3f);
  *(ulonglong *)(lVar5 + -0x888) = uVar45 ^ CONCAT44(DAT_182671da8,DAT_182671da8);
  *(ulonglong *)(lVar5 + -0x680) = uVar31 ^ uVar47;
  lVar4 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x7dff61e8)) = (uVar45 | uVar31) ^ uVar39;
  uVar10 = DAT_182671c74;
  *(ulonglong *)(lVar5 + -0x110) =
       CONCAT44(DAT_182671c74,uVar54) ^ 0xdc4cddeab9ef37ac | uVar41 ^ *(ulonglong *)(lVar5 + -0x510)
  ;
  uVar14 = DAT_182671d24;
  lVar5 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  puVar24 = (ulonglong *)(lVar4 - (uVar22 ^ 0xfdfd5dd7));
  *puVar24 = (uVar52 ^ *puVar1) - (uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) ^ uVar31;
  uVar45 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x51eb0960)) =
       uVar45 ^ uVar32 ^ uVar23 ^ *(ulonglong *)(lVar5 + -0xda8) ^ *(ulonglong *)(lVar5 + -0xd88);
  uVar41 = CONCAT44(DAT_182671d10,DAT_182671d10);
  *(ulonglong *)(lVar5 - (uVar30 ^ 0xfbdff421)) =
       (*(ulonglong *)(lVar5 - (uVar19 ^ 0xdb093570)) ^ uVar45) >> (((byte)uVar10 ^ 0x6a) & 0x3f) ^
       uVar41;
  uVar14 = DAT_182671cac;
  puVar21 = (ulonglong *)(lVar5 - (uVar33 ^ 0x7df953e7));
  *puVar21 = (CONCAT44(uVar6,uVar27) ^ 0x7ec119b0472e66e0) -
             (CONCAT44(uVar38,uVar54) ^ 0xf490f89ca66840ff);
  uVar23 = (*(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x103c00bb)) ^ uVar45) <<
           ((local_130 ^ 0x2a) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar23 ^ CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x7dff6e78)) = (uVar41 ^ *puVar2 | uVar23) ^ uVar36;
  lVar4 = DAT_182671c40;
  uVar48 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar33 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) -
       (uVar36 ^ *(ulonglong *)(DAT_182671c40 + -0xa78)) ^ uVar48;
  *(ulonglong *)(lVar4 - (uVar49 ^ 0x1a0ab888)) =
       *(ulonglong *)(lVar4 - (uVar44 ^ 0x103c03a3)) ^ uVar31 ^ uVar33 ^ uVar36 ^
       *(ulonglong *)(lVar4 + -0x228);
  uVar14 = DAT_182671e40;
  lVar5 = DAT_182671c40;
  uVar41 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar54 ^ 0xc1c0cc5)) =
       (*(ulonglong *)(lVar4 - (uVar19 ^ 0xdb093498)) ^ uVar33) >> ((bVar29 ^ 0xd7) & 0x3f) ^ uVar41
  ;
  uVar15 = DAT_182671e88;
  *(ulonglong *)(lVar5 + -0x110) =
       CONCAT44(uVar51,uVar7) ^ CONCAT44(uVar9,uVar13) ^ 0x3b3806c62b4a8d39;
  lVar4 = DAT_182671c40;
  bVar37 = (byte)uVar8;
  uVar45 = CONCAT44(uVar15,uVar15);
  uVar32 = (ulonglong)DAT_182671c74;
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0x228);
  *puVar1 = (uVar33 ^ *(ulonglong *)(lVar5 + -0x888)) << ((bVar37 ^ 2) & 0x3f) ^ uVar45;
  uVar15 = DAT_182671ee8;
  uVar33 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar32 = *(ulonglong *)(lVar4 - (uVar32 ^ 0xf48407ec)) ^ uVar45 |
           *(ulonglong *)(lVar4 + -0x510) ^ uVar41;
  *(ulonglong *)(lVar4 + -0xd88) = uVar32 ^ uVar33;
  uVar16 = DAT_182671f74;
  uVar32 = (uVar31 ^ uVar23) - uVar32;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xc38) = uVar32 ^ uVar31;
  uVar41 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x960) = uVar32 >> ((*(byte *)(lVar4 + -0x510) ^ (byte)uVar14) & 0x3f);
  puVar53 = (ulonglong *)(lVar4 - ((ulonglong)uVar54 ^ 0xc1c0f55));
  *(ulonglong *)(lVar4 - (uVar55 ^ 0xefc3fdfc)) =
       uVar39 ^ *puVar53 ^ *(ulonglong *)(lVar4 + -0x5e8) ^ uVar41 ^ uVar48;
  uVar14 = DAT_182671d80;
  uVar23 = *puVar2;
  uVar45 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar4 + -0xa08) = *(ulonglong *)(*(ulonglong *)(lVar4 + -0x610) ^ uVar45) ^ uVar26;
  uVar42 = CONCAT44(uVar14,uVar14);
  bVar18 = (byte)DAT_182671c74;
  *puVar50 = (uVar23 ^ uVar41) >> ((local_148 ^ 0xd9) & 0x3f) ^ uVar52;
  lVar4 = DAT_182671c40;
  puVar50 = (ulonglong *)(DAT_182671c40 - (uVar43 ^ 0x51eb0a78));
  puVar46 = (ulonglong *)(DAT_182671c40 + -0xda8);
  uVar26 = (*puVar2 ^ uVar41) << ((bVar18 ^ 0x48) & 0x3f) ^ uVar42;
  uVar32 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar26;
  uVar14 = DAT_182671f34;
  uVar23 = (uVar52 ^ *puVar46 | *puVar50 ^ uVar42) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x110) = uVar23;
  uVar39 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x888) =
       (*(ulonglong *)(lVar4 + -0x680) ^ uVar48) -
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0xfdfd5eef)) ^ uVar32) ^ uVar39;
  uVar48 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *puVar1 = uVar23 ^ uVar48 ^ uVar32 ^ uVar31 ^ *(ulonglong *)(lVar4 + -0xc38);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x1a0ab228)) =
       *(ulonglong *)(lVar4 - (uVar30 ^ 0xfbdffee9)) ^ uVar32 ^ uVar42 ^ uVar26;
  uVar41 = (uVar48 ^ *puVar1) >> ((bVar37 ^ 9) & 0x3f);
  uVar26 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar5 + -0x510) = uVar41 ^ uVar40;
  lVar4 = DAT_182671c40;
  local_138 = (byte)uVar38;
  uVar32 = (uVar48 ^ *puVar1) << ((local_138 ^ 0xd8) & 0x3f);
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar32 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x5e8) = (uVar32 | uVar41) ^ uVar48;
  uVar32 = CONCAT44(DAT_182671d90,DAT_182671d90);
  *(ulonglong *)(lVar4 - (uVar43 ^ 0x51eb0a08)) =
       (uVar31 ^ uVar23) - (CONCAT44(uVar51,uVar13) ^ 0x712538850ae6f766) ^ uVar32;
  uVar40 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x923cae03)) =
       (*(ulonglong *)(lVar4 + -0xa08) ^ uVar32) - (*(ulonglong *)(lVar4 + -0x5e8) ^ uVar48) ^
       uVar40;
  uVar41 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar4 + -0xda8) =
       (*(ulonglong *)(lVar4 + -0x5e8) ^ uVar48) - (CONCAT44(uVar7,uVar9) ^ 0x9c402a980d373599) ^
       uVar41;
  uVar32 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar23 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x7dff6988)) ^ uVar32 ^ uVar39 ^ uVar33 ^
           *(ulonglong *)(lVar4 + -0x888);
  *(ulonglong *)(lVar4 + -0x680) = uVar23;
  local_108 = (byte)uVar6;
  *(ulonglong *)(lVar4 - (uVar55 ^ 0xefc3fc5c)) =
       (uVar23 ^ uVar32) >> ((local_110 ^ 0xfe) & 0x3f) ^ uVar36;
  *(uint *)(lVar4 + -0xc70) = (DAT_182671c74 ^ 0x58c16727) + *(int *)(lVar4 + -0x670);
  lVar4 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar23 = (*(ulonglong *)(DAT_182671c40 + -0x680) ^ uVar32) << ((local_108 ^ 0x1f) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar23 ^ uVar31;
  uVar14 = DAT_182671f68;
  lVar5 = DAT_182671c40;
  puVar46 = (ulonglong *)(lVar4 - (uVar19 ^ 0xdb093e38));
  *puVar46 = (uVar23 | uVar36 ^ *(ulonglong *)(lVar4 + -0xa78)) ^ uVar25;
  uVar26 = (uVar39 ^ *(ulonglong *)(lVar5 + -0x888)) -
           (CONCAT44(uVar38,uVar27) ^ 0x66205fa3aed57d8d);
  *puVar1 = uVar26 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671e1c;
  *(ulonglong *)(lVar5 + -0x960) =
       *(ulonglong *)(lVar5 - (uVar44 ^ 0x103c08cb)) ^ uVar31 ^ 0xea8c1906e88cd494;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar23 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *(ulonglong *)(lVar5 + -0x510) =
       uVar26 - (*(ulonglong *)(lVar5 - (uVar30 ^ 0xfbdffdd1)) ^ uVar25) ^ uVar32;
  *puVar21 = (uVar25 ^ *(ulonglong *)(lVar5 + -0x228)) +
             (CONCAT44(uVar6,uVar51) ^ 0xbc4f3c32970cc6c7) ^ uVar23;
  uVar14 = DAT_182671ef0;
  lVar4 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar31 = uVar25 ^ uVar23 ^ *puVar2 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0xc38);
  *(ulonglong *)(lVar5 + -0xa08) = uVar31;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar23 = (uVar31 ^ uVar25) >> ((local_110 ^ 0xda) & 0x3f) ^ uVar39;
  *(ulonglong *)(lVar4 + -0x5e8) = uVar23;
  uVar14 = DAT_182671ec8;
  *(ulonglong *)(lVar4 + -0xd88) = CONCAT44(uVar9,uVar54) ^ uVar23 ^ uVar39 ^ 0x86221fcc9dc43363;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar26 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar4 + -0x680) = (uVar31 ^ uVar25) << ((local_130 ^ 0x3b) & 0x3f) ^ uVar23;
  uVar15 = DAT_182671f14;
  *puVar50 = (*(ulonglong *)(lVar4 - (uVar55 ^ 0xefc3f3cc)) ^ uVar39 | *puVar53 ^ uVar23) ^ uVar26;
  uVar14 = DAT_182671d58;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x888) =
       (*puVar2 ^ uVar40) - (uVar26 ^ *(ulonglong *)(lVar4 + -0xa78)) ^ uVar31;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar41 = *(ulonglong *)(lVar4 - (uVar43 ^ 0x51eb0da8)) ^ *(ulonglong *)(lVar4 + -0x510) ^ uVar39 ^
           uVar32 ^ uVar41;
  uVar43 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar4 + -0x110) = uVar41;
  uVar25 = (uVar41 ^ uVar39) >> ((bVar37 ^ 0x35) & 0x3f);
  uVar23 = CONCAT44(DAT_182671e94,DAT_182671e94);
  *(ulonglong *)(lVar4 + -0x960) = uVar25 ^ uVar43;
  *puVar1 = (uVar41 ^ uVar39) << ((local_148 ^ 0xce) & 0x3f) ^ uVar23;
  uVar14 = DAT_182671cd4;
  *puVar46 = (*(ulonglong *)(lVar4 - (uVar55 ^ 0xefc3fab4)) ^ uVar23 | uVar25) ^ uVar47;
  uVar7 = DAT_182671db0;
  uVar25 = CONCAT44(uVar14,uVar14);
  uVar43 = (ulonglong)DAT_182671db0;
  *(ulonglong *)(lVar4 + -0xc38) =
       (*(ulonglong *)(lVar4 + -0x510) ^ uVar32) - (uVar47 ^ *(ulonglong *)(lVar4 + -0x228)) ^
       uVar25;
  uVar23 = *(ulonglong *)(lVar4 - (uVar34 ^ 0x923ca7f3)) ^ uVar47 ^ CONCAT44(uVar7,uVar7) ^ uVar31 ^
           *(ulonglong *)(lVar4 + -0x888);
  uVar39 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar4 + -0xd88) = uVar23;
  *(ulonglong *)(lVar4 - (uVar49 ^ 0x1a0aba08)) =
       ((ulonglong)(uVar7 >> 0x17) | uVar43 << 9) ^ uVar23 >> 0x17 ^ uVar39;
  *(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x103c0c33)) =
       (CONCAT44(uVar13,uVar6) ^ 0xe4a3073e3c44b3f9) - (CONCAT44(uVar9,uVar6) ^ 0x92136b3b29d465bc);
  lVar4 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671e48,DAT_182671e48);
  local_68 = (byte)uVar11;
  uVar32 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (*(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xfdfd5277)) ^ CONCAT44(uVar7,uVar7)) <<
       ((local_68 ^ 0x55) & 0x3f) ^ uVar23;
  uVar22 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x7dff6280)) ^ uVar23 |
           *(ulonglong *)(lVar4 + -0xa08) ^ uVar39;
  uVar23 = *(ulonglong *)(lVar4 + -0x888);
  *puVar2 = uVar22 ^ uVar32;
  uVar22 = (uVar31 ^ uVar23) - uVar22;
  uVar31 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(lVar4 + -0xda8) = uVar22 ^ uVar31;
  *puVar20 = uVar22 + 0x687dd135a477fbc2;
  uVar44 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar22 = uVar44 ^ uVar25 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0xc38) ^
           *(ulonglong *)(lVar4 + -0xa78);
  *puVar1 = uVar22;
  lVar4 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(DAT_182671c40 + -0x960) = (uVar22 ^ uVar44) >> ((bVar29 ^ 0xd1) & 0x3f) ^ uVar26;
  uVar23 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x7dff6110)) =
       (uVar44 ^ uVar22) << (((byte)uVar13 ^ 0xc3) & 0x3f) ^ uVar23;
  uVar22 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *puVar24 = (*(ulonglong *)(lVar4 - (uVar34 ^ 0x923cacbb)) ^ uVar26 |
             *(ulonglong *)(lVar4 + -0x510) ^ uVar23) ^ uVar22;
  uVar44 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(lVar4 + -0x5e8) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0xc38)) - (uVar22 ^ *(ulonglong *)(lVar4 + -0x228)) ^
       uVar44;
  uVar6 = DAT_182671c74;
  uVar26 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar4 - (uVar55 ^ 0xefc3fbac)) =
       *(ulonglong *)(lVar4 - (uVar55 ^ 0xefc3f40c)) ^ *(ulonglong *)(lVar4 + -0xda8) ^ uVar26 ^
       uVar22 ^ uVar31;
  uVar14 = DAT_182671f3c;
  uVar23 = CONCAT44(uVar8,DAT_182671c7c);
  uVar34 = (uVar26 ^ *(ulonglong *)(lVar4 + -0xd88)) >> (((byte)uVar6 ^ 0x48) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa08) = uVar34 ^ uVar45;
  *(ulonglong *)(lVar4 + -0x680) = CONCAT44(uVar54,uVar12) ^ uVar23 ^ 0xebff58fa7df0a28f;
  uVar23 = (*(ulonglong *)(lVar4 - (uVar19 ^ 0xdb093198)) ^ uVar26) << 0xc;
  *(ulonglong *)(lVar4 + -0x888) = uVar23 ^ CONCAT44(uVar14,uVar14);
  uVar34 = uVar34 | uVar23;
  uVar23 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(lVar4 + -0x110) = uVar34 ^ uVar35;
  uVar22 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar4 + -0xa78) = (*(ulonglong *)(lVar4 + -0xda8) ^ uVar31) - uVar34 ^ uVar23;
  *puVar1 = *(ulonglong *)(lVar4 - (uVar22 ^ 0xefea5d64)) ^ CONCAT44(DAT_182671e74,DAT_182671e74) ^
            uVar44 ^ uVar32 ^ *puVar2;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar3 ^ uVar51;
  return;
}



############ FUN_ 180f68700 size=5718 ############

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

void FUN_180f68700(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  uint uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_e8;
  byte local_88;
  byte local_58;
  
  uVar11 = DAT_182671f10;
  uVar12 = DAT_182671e48;
  uVar9 = DAT_182671c84;
  uVar8 = DAT_182671c74;
  uVar7 = DAT_182671c70;
  uVar6 = DAT_182671c64;
  uVar5 = DAT_182671c58;
  uVar4 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671c64;
  uVar24 = (ulonglong)DAT_182671c84;
  uVar36 = (ulonglong)DAT_182671c58;
  uVar20 = DAT_182671c64 + DAT_182671c84;
  uVar23 = DAT_182671c74 + DAT_182671c58;
  uVar27 = DAT_182671c70 - DAT_182671c54;
  uVar17 = *(uint *)(&DAT_182613218 + DAT_1826721d0) ^ DAT_182671c64;
  uVar14 = *(uint *)(&DAT_182613220 + DAT_1826721d0) ^ DAT_182671c84;
  uVar30 = CONCAT44(DAT_182671e48,DAT_182671e48);
  DAT_182671c48 = uVar20;
  DAT_182671c60 = uVar23;
  DAT_182671c88 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0xa78) = **(ulonglong **)(DAT_182671c40 + -0x7a0) ^ uVar30;
  uVar19 = (ulonglong)uVar20;
  uVar31 = CONCAT44(uVar11,uVar11);
  puVar28 = (ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xc3a06cdd));
  bVar35 = (byte)uVar5;
  uVar44 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *puVar28 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0x42618c04)) ^ CONCAT44(DAT_182671ec4,DAT_182671ec4))
             << ((bVar35 ^ 0x2a) & 0x3f) ^ uVar31;
  uVar37 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar25 = (ulonglong)uVar4;
  puVar21 = (ulonglong *)(lVar2 - (uVar25 ^ 0x717852a6));
  *puVar21 = (*(ulonglong *)(lVar2 + -0xc38) ^ uVar31 | uVar44 ^ *(ulonglong *)(lVar2 + -0x228)) ^
             uVar37;
  uVar45 = (ulonglong)uVar23;
  puVar43 = (ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xefc3fbac));
  uVar39 = (ulonglong)uVar9;
  uVar32 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x60b08e50)) =
       (CONCAT44(DAT_182671dc8,DAT_182671dc8) ^ *puVar43) -
       (CONCAT44(uVar8,uVar23) ^ 0xe1048128878e0139) ^ uVar32;
  uVar42 = CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar31 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0xfc04d637)) =
       (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x510)) -
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0xc3a06d4d)) ^ uVar37) ^ uVar42;
  uVar15 = DAT_182671fb0;
  lVar2 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xc3a06c75)) =
       (CONCAT44(uVar20,uVar9) ^ 0xc40daef26e1b77b9) +
       (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) ^ uVar32;
  uVar27 = DAT_182671c70;
  *(ulonglong *)(lVar2 + -0x888) = CONCAT44(uVar7,DAT_182671c70) ^ 0xc1c7d2dccc07598a;
  uVar24 = CONCAT44(DAT_182671da8,DAT_182671da8);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0xf3bf1155)) =
       uVar24 ^ CONCAT44(uVar15,uVar15) ^ uVar32 ^ *(ulonglong *)(lVar2 + -0xc90) ^
       *(ulonglong *)(lVar2 + -0xa08);
  lVar2 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0x42618b94)) =
       ((ulonglong)uVar15 << 0x1b | (ulonglong)(uVar15 >> 5)) ^
       *(ulonglong *)(DAT_182671c40 + -0x960) >> 5 ^ uVar37;
  puVar1 = (ulonglong *)(lVar2 + -0x680);
  bVar16 = (byte)uVar6;
  uVar32 = (*(ulonglong *)(lVar2 + -0x960) ^ CONCAT44(uVar15,uVar15)) << ((bVar16 ^ 0x7f) & 0x3f);
  uVar31 = (ulonglong)DAT_182671c74;
  uVar15 = DAT_182671c88 ^ 0x806fc6af;
  *(ulonglong *)(lVar2 + -0xa78) = uVar32 ^ CONCAT44(DAT_182671f34,DAT_182671f34);
  *(uint *)(lVar2 + -0x54) = uVar15 * *(int *)(lVar2 + -0x9dc);
  uVar47 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar32 = *(ulonglong *)(lVar2 - (uVar31 ^ 0xfc04dcff)) ^ uVar37 | uVar32;
  *puVar1 = uVar32 ^ uVar47;
  uVar11 = DAT_182671e20;
  lVar2 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x5d4) =
       (uVar4 ^ 0x25b96135) + *(int *)(DAT_182671c40 - (uVar19 ^ 0x42618c98));
  uVar37 = CONCAT44(uVar11,uVar11);
  uVar29 = (ulonglong)DAT_182671e00;
  uVar34 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar2 - (uVar45 ^ 0xefc3f40c)) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x4261808c)) ^ uVar24) - uVar32 ^ uVar37;
  uVar11 = DAT_182671cec;
  *puVar28 = *(ulonglong *)(lVar2 - (uVar38 ^ 0xe1b0f54c)) ^ CONCAT44(uVar9,uVar23) ^ uVar24 ^
             0xc9a85007b0859a03;
  uVar10 = DAT_182671c88;
  uVar15 = DAT_182671c74;
  uVar31 = CONCAT44(DAT_182671c88,uVar5);
  *(ulonglong *)(lVar2 + -0xd88) =
       CONCAT44(uVar11,uVar11) ^ uVar34 ^ uVar42 ^ *(ulonglong *)(lVar2 + -0xbd8) ^
       *(ulonglong *)(lVar2 + -0x5e8);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xfc04d8ff)) =
       (CONCAT44(uVar20,uVar6) ^ 0x6ff5b60ed0e42072) + (uVar31 ^ 0xa7f719230b0b6534);
  lVar2 = DAT_182671c40;
  uVar31 = *(ulonglong *)(lVar3 + -0xd88);
  uVar24 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar3 + -0xda8) = (uVar31 >> 0x20 ^ uVar29) >> 5 ^ uVar24;
  uVar32 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xe1b0f7cc)) =
       (uVar31 ^ uVar34) << (((byte)uVar9 ^ 0x5b) & 0x3f) ^ uVar32;
  uVar31 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar32 = (uVar24 ^ *(ulonglong *)(lVar2 + -0xda8) | uVar32 ^ *(ulonglong *)(lVar2 + -0x888)) ^
           uVar31;
  puVar33 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0x3518b42b));
  *(ulonglong *)(lVar2 + -0xc90) = uVar32;
  lVar3 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar34 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar2 + -0x960) =
       (uVar42 ^ *puVar33) - (*(ulonglong *)(lVar2 - (uVar19 ^ 0x42618614)) ^ uVar31) ^ uVar40;
  uVar32 = uVar34 ^ uVar32 ^ uVar31 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x228);
  uVar24 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar3 + -0x110) = uVar32;
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0x71785e1e)) ^ uVar34) >> (((byte)uVar27 ^ 0xe4) & 0x3f) ^
       uVar24;
  bVar26 = (byte)uVar15;
  *(ulonglong *)(lVar3 + -0xa08) = (uVar34 ^ uVar32) >> ((bVar26 ^ 0xc9) & 0x3f);
  uVar31 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x71785336)) =
       (uVar34 ^ uVar32) << ((bVar26 ^ 0xc6) & 0x3f) ^ uVar31;
  lVar2 = DAT_182671c40;
  uVar46 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar29 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0xa78) |
       uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) ^ uVar46;
  uVar27 = DAT_182671e08;
  uVar31 = (ulonglong)DAT_182671e08;
  uVar24 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0x426188ac)) ^ uVar37) -
           (*(ulonglong *)(lVar2 - (uVar25 ^ 0x71785ae6)) ^ uVar46) ^ uVar29;
  *(ulonglong *)(lVar2 + -0x510) = uVar24;
  puVar22 = (ulonglong *)(lVar2 - (uVar39 ^ 0x60b08dc0));
  uVar37 = CONCAT44(uVar27,uVar27);
  *(ulonglong *)(lVar2 + -0xd88) =
       uVar37 ^ uVar40 ^ *(ulonglong *)(lVar2 + -0x960) ^ uVar47 ^ *puVar22;
  uVar42 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar32 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar2 + -0xda8) = (*puVar43 >> 0x20 ^ uVar31) >> 8 ^ uVar42;
  uVar13 = DAT_182671e54;
  local_e8 = (byte)uVar4;
  uVar31 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0xc3a06d6d)) ^ uVar37) << ((local_e8 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar2 + -0x888) = uVar31 ^ CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar47 = CONCAT44(uVar13,uVar13);
  uVar37 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0xfc04d047)) ^ uVar42 | uVar31) ^
           uVar47;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar37;
  uVar27 = DAT_182671c70;
  uVar31 = CONCAT44(uVar9,DAT_182671c70);
  *(ulonglong *)(lVar2 + -0xc90) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x960)) -
       (*(ulonglong *)(lVar2 - (uVar45 ^ 0xefc3fdfc)) ^ uVar47) ^ uVar30;
  uVar15 = DAT_182671d40;
  uVar32 = (ulonglong)DAT_182671d40;
  *(ulonglong *)(lVar2 + -0xa08) = (uVar31 ^ 0x98462a36a87aa28f) << (((byte)uVar23 ^ 0xb) & 0x3f);
  uVar11 = DAT_182671fa8;
  uVar42 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0xc38) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x110)) >>
       (((byte)uVar12 ^ *(byte *)(lVar2 + -0xc90)) & 0x3f);
  uVar24 = uVar42 ^ uVar47 ^ uVar29 ^ uVar37 ^ uVar24;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xa78) = uVar24;
  uVar15 = DAT_182671c74;
  uVar37 = (ulonglong)DAT_182671c74;
  uVar34 = (uVar24 ^ uVar42) << 0xc;
  *(ulonglong *)(lVar2 + -0x228) = (uVar24 >> 0x20 ^ uVar32) >> 0x14 ^ uVar31;
  *puVar1 = uVar34 ^ CONCAT44(DAT_182671f1c,DAT_182671f1c);
  uVar48 = CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar40 = CONCAT44(uVar10,uVar15);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x4261870c)) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0xfc04dfc7)) ^ uVar31 | uVar34) ^ uVar48;
  lVar2 = DAT_182671c40;
  uVar34 = uVar46 ^ uVar30 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8) ^
           *(ulonglong *)(DAT_182671c40 + -0xc90);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = CONCAT44(uVar9,uVar15) ^ uVar40 ^ 0xb3e1ad9c3bfec11c;
  uVar12 = DAT_182671de4;
  uVar37 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar29 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0x42618f94)) ^ uVar29) -
           (uVar48 ^ *(ulonglong *)(lVar2 + -0xd88)) ^ uVar37;
  *(ulonglong *)(lVar2 + -0x888) = uVar29;
  uVar11 = DAT_182671db4;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x960) = uVar34 ^ uVar32;
  uVar31 = uVar34 >> ((bVar35 ^ 0xc) & 0x3f);
  local_88 = (byte)uVar13;
  *(ulonglong *)(lVar2 + -0xa08) = uVar31 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671d88;
  *(ulonglong *)(lVar2 + -0xc38) =
       (CONCAT44(uVar4,uVar6) ^ 0xd8153225d4050fcd) <<
       ((local_88 ^ *(byte *)(lVar2 + -0xbd8)) & 0x3f);
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0x60b08220)) ^ uVar32) << ((bVar35 ^ 0x32) & 0x3f) ^ uVar24
  ;
  lVar3 = DAT_182671c40;
  puVar43 = (ulonglong *)(lVar2 - (uVar39 ^ 0x60b08a50));
  uVar32 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar31 = *puVar43 ^ uVar24 | uVar31;
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar31 ^ uVar32;
  uVar13 = DAT_182671f94;
  uVar11 = _DAT_182671cf0;
  *(ulonglong *)(lVar3 + -0x228) = uVar34 | CONCAT44(uVar5,uVar6) ^ 0xaaf8b5d56e74d9d7;
  uVar24 = CONCAT44(uVar11,uVar11);
  *puVar1 = (uVar30 ^ *(ulonglong *)(lVar3 + -0xc90)) - uVar31 ^ uVar24;
  uVar15 = DAT_182671c70;
  puVar41 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x3518b58b));
  uVar18 = DAT_182671c58 ^ 0x90297c13;
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xe1b0f2ec)) =
       *puVar41 ^ uVar29 ^ CONCAT44(uVar13,uVar13) ^ uVar32 ^ uVar37;
  uVar11 = DAT_182671eb4;
  lVar2 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x634) = uVar18 | DAT_182671c60 ^ 0x4946f98;
  uVar12 = DAT_182671f4c;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x510) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x3518b25b)) >> 0xe ^
       ((ulonglong)uVar13 << 0x12 | (ulonglong)(uVar13 >> 0xe)) ^ uVar32;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0xfc04d807)) =
       (*(ulonglong *)(lVar2 + -0xda8) ^ CONCAT44(uVar13,uVar13)) << (((byte)uVar9 ^ 0x72) & 0x3f) ^
       uVar31;
  uVar11 = DAT_182671e0c;
  lVar2 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671d20,DAT_182671d20);
  puVar28 = (ulonglong *)(DAT_182671c40 + -0x888);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xf3bf1ddd)) ^ uVar31 |
       *(ulonglong *)(DAT_182671c40 + -0x510) ^ uVar32) ^ uVar38;
  uVar32 = (*puVar28 ^ uVar37) - (CONCAT44(uVar6,uVar20) ^ 0xc17ec7c158bb7439);
  uVar37 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar2 + -0xc38) = uVar32 ^ CONCAT44(uVar11,uVar11);
  uVar31 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0xf3bf123d)) = uVar32 - (*puVar33 ^ uVar38) ^ uVar37;
  uVar11 = DAT_182671f44;
  uVar42 = CONCAT44(DAT_182671f64,DAT_182671f64);
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xc3a06b3d)) ^ uVar38) -
       (CONCAT44(uVar4,uVar9) ^ 0x2fb83b296584120) ^ uVar42;
  uVar32 = CONCAT44(uVar11,uVar11);
  uVar29 = uVar48 ^ *(ulonglong *)(lVar2 + -0xd88) ^ uVar32 ^ uVar24 ^ *puVar22;
  *(ulonglong *)(lVar2 + -0x960) = uVar29;
  *(ulonglong *)(lVar2 + -0x228) = (*(ulonglong *)(lVar2 + -0xa08) ^ uVar37) << 0x26;
  uVar11 = DAT_182671d2c;
  *(ulonglong *)(lVar2 + -0xc90) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0x7178566e)) ^ uVar32) >> (((byte)uVar23 ^ 0x34) & 0x3f) ^
       uVar37;
  uVar12 = DAT_182671f30;
  uVar31 = CONCAT44(uVar11,uVar11);
  *puVar41 = (uVar29 ^ uVar32) << ((bVar16 ^ 0x74) & 0x3f) ^ uVar31;
  lVar2 = DAT_182671c40;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0x4261872c)) =
       (*(ulonglong *)(DAT_182671c40 + -0xa78) ^ uVar31 |
       *(ulonglong *)(DAT_182671c40 + -0xc90) ^ uVar37) ^ uVar29;
  uVar15 = DAT_182671c88;
  *(ulonglong *)(lVar2 - (uVar45 ^ 0xefc3f334)) =
       CONCAT44(uVar8,DAT_182671c88) ^ 0x87f1b47d24a80f3c | *puVar43 ^ uVar42;
  uVar31 = (uVar24 ^ *puVar1) - (CONCAT44(uVar7,uVar15) ^ 0xaec5bfafff49b8b3);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar31 ^ CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar11 = DAT_182671e8c;
  uVar7 = DAT_182671c74;
  uVar34 = CONCAT44(uVar4,DAT_182671c74);
  *(ulonglong *)(lVar2 + -0x888) = (uVar40 ^ 0x33d00a24c4f442d1) << ((local_e8 ^ 10) & 0x3f);
  uVar4 = DAT_182671dd8;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar31 = uVar31 - (*puVar21 ^ uVar29) ^ uVar24;
  uVar25 = (ulonglong)DAT_182671dd8;
  *(ulonglong *)(lVar2 + -0xc38) = uVar31;
  *(ulonglong *)(lVar2 + -0xbd8) = CONCAT44(uVar20,uVar7) ^ uVar31 ^ uVar24 ^ 0xd44851a131ed490b;
  uVar7 = DAT_182671c70;
  uVar32 = CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar31 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar2 + -0xd88) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0xf3bf159d)) ^ uVar29) + (uVar34 ^ 0xd73dd33c3ae31b57) ^
       uVar32;
  puVar28 = (ulonglong *)(lVar2 - (uVar31 ^ 0x3518b27b));
  uVar31 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x228) =
       *puVar28 ^ *(ulonglong *)(lVar2 + -0xa08) ^ uVar31 ^ uVar32 ^ uVar37;
  uVar4 = DAT_182671c60;
  uVar32 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *(ulonglong *)(lVar2 + -0x960) =
       *(ulonglong *)(lVar2 - (uVar39 ^ 0x60b08968)) >> 0x20 ^ uVar32 ^ uVar25;
  *(uint *)(lVar2 - (uVar19 ^ 0x42618c44)) =
       (uVar4 ^ 0x14d4beb2) <<
       ((byte)*(undefined4 *)(lVar2 - ((ulonglong)uVar7 ^ 0x3518ba27)) & 0x1f);
  uVar11 = DAT_182671fac;
  lVar3 = DAT_182671c40;
  uVar34 = (*(ulonglong *)(lVar2 + -0x228) ^ uVar31) << ((bVar16 ^ 100) & 0x3f);
  uVar31 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar25 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar30 = uVar34 ^ uVar25;
  *(ulonglong *)(lVar2 + -0xc90) = uVar30;
  *(ulonglong *)(lVar2 + -0xa78) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar31;
  uVar29 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(lVar3 + -0x510) = (uVar34 | *(ulonglong *)(lVar3 + -0x960) ^ uVar32) ^ uVar29;
  *puVar1 = (CONCAT44(uVar10,uVar9) ^ 0xd27af78b2f173c17) -
            (CONCAT44(uVar5,uVar6) ^ 0x18e7611559176982);
  uVar40 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 + -0xa08) ^ uVar37) -
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0xf3bf1d25)) ^ uVar29) ^ uVar40;
  *(uint *)(lVar3 + -0x54) = *(uint *)(lVar3 + -0x94) | 0x4b17c1e8;
  uVar32 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar3 + -0x5e8) =
       *(ulonglong *)(lVar3 + -0xc38) ^ *(ulonglong *)(lVar3 + -0x110) ^ uVar32 ^ uVar24 ^ uVar42;
  uVar4 = DAT_182671c74;
  uVar34 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x60b08098)) =
       CONCAT44(uVar10,uVar23) ^ uVar30 ^ uVar25 ^ 0x2aea61d060a6652d;
  uVar11 = DAT_182671c9c;
  uVar25 = (*(ulonglong *)(lVar3 - (uVar19 ^ 0x42618f6c)) ^ uVar32) >>
           (((byte)DAT_182671c70 ^ 0xd3) & 0x3f);
  *(ulonglong *)(lVar3 + -0xda8) = uVar25 ^ CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xd88) = (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar32) << 0x20 ^ uVar31;
  uVar39 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0xc3a062cd)) =
       (*puVar28 ^ uVar31 | uVar25) ^ uVar39;
  uVar11 = DAT_182671eb0;
  uVar32 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 + -0xc38) ^ uVar24) - (*(ulonglong *)(lVar3 + -0x228) ^ uVar39) ^
       uVar32;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar37 = *(ulonglong *)(lVar3 + -0x888) ^ *(ulonglong *)(lVar3 + -0x228) ^ uVar31 ^ uVar39 ^
           uVar40;
  uVar24 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar3 + -0x960) = uVar37;
  uVar25 = (uVar37 ^ uVar31) >> (((byte)uVar4 ^ 0xd5) & 0x3f);
  local_58 = (byte)uVar27;
  uVar39 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *puVar1 = uVar25 ^ uVar24;
  uVar11 = DAT_182671ce4;
  *(ulonglong *)(lVar3 + -0xa08) = uVar25 >> ((local_58 ^ 0xec) & 0x3f);
  uVar24 = (uVar37 ^ uVar31) << ((bVar16 ^ 0x42) & 0x3f);
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x110) = uVar24 ^ uVar39;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xfc04d17f)) = (uVar25 | uVar24) ^ uVar31;
  lVar2 = DAT_182671c40;
  uVar24 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar25 = (*(ulonglong *)(lVar3 + -0x888) ^ uVar40) - (uVar31 ^ *(ulonglong *)(lVar3 + -0xc90)) ^
           uVar24;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar25;
  uVar11 = DAT_182671e5c;
  uVar7 = DAT_182671c8c;
  uVar29 = *(ulonglong *)(lVar2 - (uVar34 ^ 0xfc04d797)) ^ *(ulonglong *)(lVar2 + -0x510) ^ uVar32 ^
           uVar29;
  *(ulonglong *)(lVar2 + -0x5e8) = uVar29 ^ uVar38;
  uVar37 = uVar29 >> ((local_e8 ^ 0x18) & 0x3f);
  bVar16 = (byte)DAT_182671c7c;
  uVar31 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar2 + -0xda8) = uVar37 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xd88) = uVar29 << ((bVar16 ^ 0x2a) & 0x3f) ^ uVar31;
  DAT_182671c68 = DAT_182671c88;
  uVar6 = DAT_182671c80;
  uVar5 = DAT_182671c74;
  uVar29 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar37 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c80 ^ 0xbbdff580)) ^ uVar31 | uVar37;
  uVar31 = uVar37 ^ uVar29;
  *(ulonglong *)(lVar2 + -0xc38) = uVar31;
  *(ulonglong *)(lVar2 + -0x228) =
       *(ulonglong *)(lVar2 - (uVar19 ^ 0x426186bc)) ^ uVar29 |
       *(ulonglong *)(lVar2 + -0x110) ^ uVar39;
  *(ulonglong *)(lVar2 + -0xa08) = (*(ulonglong *)(lVar2 + -0xa78) ^ uVar32) - uVar37 ^ uVar44;
  uVar27 = DAT_182671c94;
  uVar4 = DAT_182671c70;
  *(uint *)(lVar2 + -0x61c) = (uVar5 ^ 0xb4b8c79e) * (DAT_182671c68 ^ 0x86f7d99f);
  *(ulonglong *)(lVar2 + -0x960) = uVar47 ^ uVar31 ^ uVar25 ^ uVar29 ^ uVar24;
  *(undefined1 *)(lVar2 + -0x6b9) = **(undefined1 **)(lVar2 - ((ulonglong)uVar27 ^ 0xe23ffa0b));
  uVar15 = uVar5 & 7;
  *puVar1 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x3518b693)) >> 0x20 ^
            (ulonglong)DAT_182671e54) >> 0xe ^ uVar44;
  if (uVar15 < 4) {
    if (uVar15 < 2) {
      DAT_182671c68 = DAT_182671c5c;
      if (uVar15 == 0) {
        DAT_182671c68 = uVar5;
      }
    }
    else {
      DAT_182671c68 = uVar4;
      if (uVar15 < 3) {
        DAT_182671c68 = uVar27;
      }
    }
  }
  else if (uVar15 < 6) {
    DAT_182671c68 = DAT_182671c90;
    if (uVar15 < 5) {
      DAT_182671c68 = uVar6;
    }
  }
  else if (uVar15 < 7) {
    DAT_182671c68 = uVar7;
  }
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar17;
  return;
}



############ FUN_ 180fe2b70 size=5277 ############

void FUN_180fe2b70(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint *puVar4;
  longlong lVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_res18;
  byte local_res20;
  
  uVar14 = DAT_182671f20;
  uVar11 = DAT_182671ce4;
  uVar12 = DAT_182671c88;
  uVar10 = DAT_182671c68;
  uVar9 = DAT_182671c5c;
  uVar8 = DAT_182671c50;
  lVar5 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c50;
  uVar35 = (ulonglong)DAT_182671c88;
  uVar15 = DAT_182671c50 & DAT_182671c88;
  uVar29 = (ulonglong)uVar15;
  uVar22 = (ulonglong)DAT_182671c68;
  uVar30 = (ulonglong)DAT_182671c5c;
  uVar25 = DAT_182671c68 - DAT_182671c5c;
  uVar16 = *(uint *)(&DAT_182613210 + (uVar29 ^ 0x58000529) + (longlong)DAT_182672048) ^
           DAT_182671c50;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_182672048) ^ DAT_182671c88;
  uVar32 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  uVar44 = CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar38 = (ulonglong)uVar25;
  uVar26 = CONCAT44(DAT_182671ca4,DAT_182671ca4) ^ *(ulonglong *)(DAT_182671c40 + -0xbd8) |
           uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x110);
  DAT_182671c4c = uVar15;
  DAT_182671c90 = uVar25;
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar26 ^ uVar44;
  uVar13 = DAT_182671e2c;
  uVar42 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x5f0e7cf0)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xdceef36d)) ^ CONCAT44(uVar14,uVar14)) - uVar26
       ^ uVar42;
  uVar11 = DAT_182671e58;
  uVar33 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar23 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  puVar27 = (ulonglong *)(lVar5 - ((ulonglong)uVar25 ^ 0x821f7593));
  puVar1 = (ulonglong *)(lVar5 + -0xc90);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x580000cf)) =
       CONCAT44(uVar13,uVar13) ^ uVar23 ^ uVar33 ^ *puVar27 ^ *puVar1;
  uVar13 = DAT_182671fa4;
  uVar26 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar5 + -0xf0) =
       (*(ulonglong *)(lVar5 + -0x5e8) ^ uVar33) >>
       (((byte)DAT_182671e30 ^ *(byte *)(lVar5 + -0xc38)) & 0x3f);
  uVar31 = CONCAT44(uVar13,uVar13);
  bVar19 = (byte)uVar25;
  *(ulonglong *)(lVar5 + -0x888) =
       (*(ulonglong *)(lVar5 + -0x5e8) ^ uVar33) >> ((bVar19 ^ 0x1b) & 0x3f) ^ uVar31;
  *(longlong *)(lVar5 - ((ulonglong)uVar12 ^ 0x5800093f)) =
       0x26a7123afa239fc7 << ((*(byte *)(lVar5 + -0x5e8) ^ (byte)uVar11) & 0x3f);
  lVar5 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x821f7323)) =
       (*(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar33) << (((byte)uVar8 ^ 0xd9) & 0x3f) ^ uVar28;
  uVar31 = *(ulonglong *)(lVar5 + -0x888) ^ uVar31 | uVar28 ^ *(ulonglong *)(lVar5 + -0xb18);
  uVar34 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  uVar33 = uVar31 ^ uVar34;
  uVar28 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar5 + -0x228) = uVar33;
  *(ulonglong *)(lVar5 + -0xa78) = -0x65665932470be4da - (uVar28 ^ *(ulonglong *)(lVar5 + -0x510));
  lVar5 = DAT_182671c40;
  uVar24 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xd88);
  uVar28 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0xdceef5ad)) ^ uVar23) - uVar31 ^ uVar24;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar25 ^ 0x821f7233)) =
       *puVar2 ^ uVar28 ^ uVar33 ^ uVar34 ^ uVar42;
  uVar33 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *(ulonglong *)(lVar5 + -0x110) =
       (*(ulonglong *)(lVar5 + -0xa08) ^ uVar28) >> (((byte)uVar12 ^ 0x1d) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x58000ef9)) =
       CONCAT44(uVar9,uVar15) ^ 0x257ce54f4e5463dd | CONCAT44(uVar8,uVar10) ^ 0x50bf51016f2e34f0;
  uVar28 = (*(ulonglong *)(lVar5 + -0xa08) ^ uVar28) << ((bVar19 ^ 0x3d) & 0x3f);
  uVar34 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(lVar5 + -0xa50) = uVar28 ^ CONCAT44(DAT_182671f24,DAT_182671f24);
  puVar2 = (ulonglong *)(lVar5 + -0xc18);
  uVar28 = uVar28 | uVar33 ^ *(ulonglong *)(lVar5 + -0x110);
  puVar3 = (ulonglong *)(lVar5 + -0xda8);
  *puVar3 = uVar28 ^ uVar34;
  uVar23 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(lVar5 + -0xc38) = (*(ulonglong *)(lVar5 + -0xd88) ^ uVar42) - uVar28 ^ uVar23;
  lVar6 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671ddc;
  uVar42 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar20 = DAT_182671ddc >> 0x16;
  *(ulonglong *)(lVar5 + -0xf0) =
       *(ulonglong *)(lVar5 + -0x680) ^ uVar42 ^ uVar24 ^ uVar44 ^ *(ulonglong *)(lVar5 + -0x960);
  puVar21 = (ulonglong *)(lVar5 - (uVar22 ^ 0x5f0e7188));
  uVar28 = ((ulonglong)uVar20 | uVar28 << 10) ^ *puVar21 >> 0x16;
  uVar31 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *puVar2 = uVar28 ^ CONCAT44(DAT_182671f6c,DAT_182671f6c);
  uVar11 = DAT_182671ee4;
  uVar44 = (uVar42 ^ *puVar21) << (((byte)uVar9 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar6 + -0x5e8) = uVar44 ^ uVar31;
  uVar44 = uVar44 | uVar28;
  uVar42 = CONCAT44(uVar11,uVar11);
  uVar28 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar6 + -0x888) = uVar44 ^ uVar42;
  uVar11 = DAT_182671eb4;
  puVar21 = (ulonglong *)(lVar6 - (uVar35 ^ 0x58000e3f));
  *puVar21 = (*(ulonglong *)(lVar6 - (uVar37 ^ 0xfbdff979)) ^ uVar24) - uVar44 ^ uVar28;
  lVar5 = DAT_182671c40;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0x58000037)) =
       *(ulonglong *)(lVar6 + -0xc38) ^ *(ulonglong *)(lVar6 + -0x888) ^ uVar24 ^ uVar42 ^ uVar23;
  *(ulonglong *)(lVar5 + -0xa78) =
       (uVar24 ^ *(ulonglong *)(lVar5 + -0x510)) >> (((byte)uVar9 ^ 0x13) & 0x3f) ^ uVar33;
  local_res18 = (byte)uVar15;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x5f0e7de8)) =
       CONCAT44(uVar9,uVar8) ^ CONCAT44(uVar25,uVar10) ^ 0x374ba466caa808d;
  lVar5 = DAT_182671c40;
  uVar20 = DAT_182671c5c ^ 0xc83335d7;
  uVar44 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0x510)) << ((local_res18 ^ 0x33) & 0x3f) ^ uVar44;
  *(uint *)(lVar5 - (uVar29 ^ 0x58000575)) = uVar20 & *(uint *)(lVar5 + -0x6c0);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x5f0e7aa0)) =
       (uVar33 ^ *(ulonglong *)(lVar5 + -0xa78) | *(ulonglong *)(lVar5 + -0x228) ^ uVar44) ^ uVar32;
  uVar33 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar5 + -0xa08) =
       (*(ulonglong *)(lVar5 - (uVar29 ^ 0x58000919)) ^ uVar23) -
       (uVar32 ^ *(ulonglong *)(lVar5 + -0xbd8)) ^ uVar33;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x5f0e7068)) =
       uVar28 ^ uVar34 ^ uVar26 ^ *puVar3 ^ *(ulonglong *)(lVar5 + -0xb18);
  uVar24 = CONCAT44(DAT_182671d08,DAT_182671d08);
  local_res20 = (byte)uVar10;
  *(ulonglong *)(lVar5 + -0xa50) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0x58000437)) ^ uVar26) >> ((local_res20 ^ 0x74) & 0x3f) ^
       uVar24;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0xfbdff271)) =
       (CONCAT44(uVar12,uVar9) ^ 0x83b54ef90d3207f0) >> ((bVar19 ^ 0x30) & 0x3f);
  uVar11 = DAT_182671ec8;
  uVar34 = (uVar26 ^ *(ulonglong *)(lVar5 + -0x110)) << (((byte)uVar8 ^ 0xcd) & 0x3f);
  *(ulonglong *)(lVar5 + -0x960) = uVar34 ^ CONCAT44(DAT_182671f40,DAT_182671f40);
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar34 = uVar34 | *(ulonglong *)(lVar5 + -0xa50) ^ uVar24;
  uVar26 = uVar34 ^ uVar35;
  uVar43 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar5 + -0xf0) = uVar26;
  uVar24 = CONCAT44(DAT_182671f90,DAT_182671f90);
  *puVar2 = (uVar28 ^ *(ulonglong *)(lVar5 + -0xb18)) - uVar34 ^ uVar43;
  uVar11 = DAT_182671fb4;
  uVar26 = uVar24 ^ uVar35 ^ uVar33 ^ *(ulonglong *)(lVar5 + -0xa08) ^ uVar26;
  *(ulonglong *)(lVar5 + -0x5e8) = uVar26;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x580003a1)) =
       (uVar24 ^ uVar26) >> (((byte)uVar12 ^ 0x3e) & 0x3f) ^ uVar28;
  uVar26 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar5 + -0x888) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0xfbdffa11)) ^ uVar24) << 0x27 ^ uVar26;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0xfbdff369)) =
       (*(ulonglong *)(lVar5 - (uVar30 ^ 0xdceef9cd)) ^ uVar35) <<
       (((byte)DAT_182671c94 ^ 0xc5) & 0x3f);
  uVar35 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar5 + -0x510) =
       (*(ulonglong *)(lVar5 + -0x888) ^ uVar26 | *(ulonglong *)(lVar5 + -0x680) ^ uVar28) ^ uVar35;
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x58000f59)) = CONCAT44(uVar8,uVar25) ^ 0x578f2ebfeeeefc43;
  uVar11 = DAT_182671e70;
  lVar6 = DAT_182671c40;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar5 + -0x510);
  uVar26 = *puVar2;
  uVar34 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar33 = (uVar33 ^ *(ulonglong *)(lVar5 + -0xa08)) -
           (CONCAT44(uVar25,uVar10) ^ 0xa2d140be45d48fc5) ^ uVar34;
  *(ulonglong *)(lVar5 + -0x228) = uVar33;
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar28 = CONCAT44(DAT_182671c94,DAT_182671c58);
  uVar24 = (*(ulonglong *)(lVar6 - (uVar29 ^ 0x58000709)) ^ uVar34) - uVar35 ^ uVar40;
  uVar39 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *(ulonglong *)(lVar6 + -0xc38) = uVar24;
  *puVar3 = uVar35 - (uVar28 ^ 0x8cbe25430557d255) ^ uVar39;
  uVar11 = DAT_182671f68;
  uVar42 = CONCAT44(DAT_182671e20,DAT_182671e20);
  uVar36 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar28 = uVar42 ^ uVar43 ^ uVar26 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0xbd8);
  *(ulonglong *)(lVar6 + -0xd88) = uVar28;
  uVar13 = DAT_182671d18;
  lVar6 = DAT_182671c40;
  uVar35 = (uVar28 ^ uVar42) << 0x1f;
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar28 ^ uVar42 ^ uVar33 ^ uVar34;
  *(ulonglong *)(lVar6 + -0x110) = (uVar28 ^ uVar42) >> ((bVar19 ^ 0x1a) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar6 + -0xa50) = uVar35 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671c70;
  uVar42 = CONCAT44(uVar13,uVar13);
  uVar33 = *(ulonglong *)(lVar6 - (uVar37 ^ 0xfbdffee9)) ^ uVar36 | uVar35;
  uVar28 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *(ulonglong *)(lVar6 + -0xb18) = uVar33 ^ uVar42;
  uVar34 = (uVar43 ^ uVar26) - (CONCAT44(uVar11,uVar11) ^ 0xaec5bfaf09f167a5);
  uVar26 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar6 + -0x5e8) = uVar34 ^ uVar28;
  uVar20 = DAT_182671e3c;
  *(ulonglong *)(lVar6 + -0xf0) = uVar34 - uVar33 ^ uVar26;
  uVar8 = DAT_182671ea4;
  uVar33 = (ulonglong)DAT_182671ea4;
  *puVar1 = CONCAT44(uVar11,uVar15) ^ 0x27721a29e6ab0e30 | uVar35;
  uVar34 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 + -0x888) =
       (CONCAT44(uVar10,uVar12) ^ 0xf94bfd4a9ee7c3e0) + (uVar42 ^ *puVar21) ^ uVar34;
  uVar29 = *(ulonglong *)(lVar6 - (uVar29 ^ 0x58000da9)) ^ CONCAT44(uVar20,uVar20) ^ uVar34 ^ uVar24
           ^ uVar40;
  uVar24 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar6 + -0x680) = uVar29;
  uVar8 = DAT_182671c48;
  uVar28 = (ulonglong)DAT_182671c48;
  uVar41 = DAT_182671c48 | DAT_182671c90;
  uVar35 = (CONCAT44(uVar20,uVar20) ^ uVar29) << 0x3b;
  uVar30 = ((ulonglong)uVar20 << 0x1b | (ulonglong)(uVar20 >> 5)) ^
           *(ulonglong *)(lVar6 - (uVar30 ^ 0xdceeffbd)) >> 5;
  uVar29 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  DAT_182671c94 = uVar41;
  *(ulonglong *)(lVar6 + -0xa78) = uVar30 ^ uVar24;
  uVar11 = DAT_182671ef8;
  *(ulonglong *)(lVar6 + -0xa08) = uVar35 ^ uVar29;
  lVar7 = DAT_182671c40;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 - (uVar28 ^ 0x60308c50)) = (uVar35 | uVar30) ^ uVar36;
  uVar24 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar32 = (ulonglong)uVar41;
  uVar37 = (*(ulonglong *)(lVar7 + -0xc38) ^ uVar40) - (uVar36 ^ *(ulonglong *)(lVar7 + -0x510)) ^
           uVar24;
  *(ulonglong *)(lVar7 + -0xbd8) = uVar37;
  uVar11 = DAT_182671e40;
  uVar29 = uVar34 ^ uVar26 ^ uVar39 ^ *puVar3 ^ *(ulonglong *)(lVar7 + -0xf0);
  *(ulonglong *)(lVar7 + -0x228) = uVar29;
  uVar42 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0xd88) = (uVar29 >> 0x20 ^ uVar33) >> 5 ^ uVar42;
  uVar11 = DAT_182671dfc;
  uVar30 = (uVar34 ^ uVar29) << ((bVar19 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar7 + -0x960) = uVar30 ^ CONCAT44(DAT_182671f00,DAT_182671f00);
  lVar6 = DAT_182671c40;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar30 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0x603084c8)) ^ uVar42 | uVar30;
  uVar33 = uVar30 ^ uVar35;
  uVar34 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar33;
  uVar20 = DAT_182671f44;
  uVar29 = (ulonglong)DAT_182671f44;
  uVar42 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *puVar2 = (*(ulonglong *)(lVar6 - (uVar38 ^ 0x821f78cb)) ^ uVar26) - uVar30 ^ uVar34;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar42 ^ uVar35 ^ uVar37 ^ uVar24 ^ uVar33;
  uVar30 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar18 = DAT_182671c90 ^ 0x5fc0cf07;
  *(ulonglong *)(lVar6 + -0xa50) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar41 ^ 0xe23ffc93)) >> 0x17 ^
       ((ulonglong)(uVar20 >> 0x17) | uVar29 << 9) ^ uVar30;
  *(uint *)(lVar6 - (uVar38 ^ 0x821f7e27)) = uVar18 * 0x3b4019e4;
  lVar6 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671e28,DAT_182671e28);
  puVar4 = (uint *)(DAT_182671c40 + -0x94c);
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x603085d0)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x60308ca8)) ^ uVar42) <<
       (((byte)uVar41 ^ 0x52) & 0x3f) ^ uVar29;
  uVar20 = *puVar4;
  *(int *)(lVar6 + -0x670) = *(int *)(lVar6 + -0x5d4) + -0x209fe8e7;
  *(ulonglong *)(lVar6 + -0xb18) =
       (uVar29 ^ *puVar1 | uVar30 ^ *(ulonglong *)(lVar6 + -0xa50)) ^ uVar26;
  *(uint *)(lVar6 - (uVar38 ^ 0x821f7fbf)) = uVar41 ^ 0x4acfa46a | uVar20;
  uVar30 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar35 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(lVar6 + -0x888) =
       (uVar24 ^ *(ulonglong *)(lVar6 + -0xbd8)) - (uVar26 ^ *(ulonglong *)(lVar6 + -0xb18)) ^
       uVar30;
  uVar11 = DAT_182671dbc;
  lVar7 = DAT_182671c40;
  uVar33 = *(ulonglong *)(lVar6 - (uVar28 ^ 0x60308558)) ^ uVar35 ^ uVar34 ^ uVar36 ^
           *(ulonglong *)(lVar6 + -0x510);
  *(ulonglong *)(lVar6 + -0x680) = uVar33;
  uVar13 = DAT_182671e74;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0xa78) = (uVar33 ^ uVar35) >> (((byte)uVar8 ^ 0x68) & 0x3f) ^ uVar24;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 - (uVar32 ^ 0xe23ff373)) =
       (uVar35 ^ uVar33) << ((bVar19 ^ 0x23) & 0x3f) ^ uVar29;
  *(ulonglong *)(lVar7 - (uVar28 ^ 0x60308578)) =
       (CONCAT44(uVar25,uVar8) ^ 0x3b2b03633871f682) << ((bVar19 ^ 5) & 0x3f);
  uVar11 = DAT_182671db8;
  uVar29 = uVar29 ^ *(ulonglong *)(lVar7 + -0xa08) | uVar24 ^ *(ulonglong *)(lVar7 + -0xa78);
  *puVar3 = uVar29 ^ uVar44;
  uVar13 = DAT_182671dc8;
  uVar18 = DAT_182671c58;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0x228) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar41 ^ 0xe23ff563)) ^ uVar34) - uVar29 ^ uVar33;
  uVar24 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 - (uVar38 ^ 0x821f75b3)) =
       uVar30 ^ *(ulonglong *)(lVar7 + -0x888) ^ uVar44 ^ uVar24 ^ *puVar27;
  uVar24 = *(ulonglong *)(lVar7 + -0xd88) ^ uVar24;
  uVar34 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar29 = uVar24 >> (((byte)uVar18 ^ 1) & 0x3f);
  *(ulonglong *)(lVar7 + -0x960) = uVar29 ^ uVar34;
  uVar11 = DAT_182671cc8;
  *(ulonglong *)(lVar7 + -0xf0) = uVar29 + 0xa7069f95fa81b4f9;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 - (uVar28 ^ 0x60308850)) = uVar24 << ((bVar19 ^ 0x37) & 0x3f) ^ uVar29;
  uVar29 = *(ulonglong *)(lVar7 + -0x960) ^ uVar34 | uVar29 ^ *(ulonglong *)(lVar7 + -0x110);
  *(ulonglong *)(lVar7 + -0x5e8) = uVar29 ^ CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar11 = DAT_182671f30;
  *(ulonglong *)(lVar7 + -0xa50) =
       (CONCAT44(uVar9,uVar10) ^ 0xf15d56d1084cfc69) - (CONCAT44(uVar8,uVar12) ^ 0x60a99415beb1b084)
  ;
  lVar6 = DAT_182671c40;
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar24 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *puVar1 = (*(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xe23ff1f3)) ^ uVar30) - uVar29 ^ uVar34;
  uVar29 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar6 + -0xbd8) =
       uVar26 ^ *(ulonglong *)(lVar6 + -0x228) ^ uVar24 ^ uVar33 ^ *(ulonglong *)(lVar6 + -0xb18);
  *(uint *)(lVar6 - (uVar29 ^ 0xfbcf5ea4)) = *(int *)(lVar6 + -0x634) - (DAT_182671c68 ^ 0xff8ed5f2)
  ;
  uVar30 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0x5f0e7468)) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0x60308298)) ^ uVar24) >>
       (((byte)DAT_182671c54 ^ 0x3d) & 0x3f) ^ uVar30;
  lVar6 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (*(ulonglong *)(DAT_182671c40 + -0xbd8) ^ uVar24) << (((byte)DAT_182671c7c ^ 7) & 0x3f) ^
       uVar29;
  uVar26 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0xe23ff543)) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0x60308fc0)) ^ uVar29 |
       *(ulonglong *)(lVar6 - ((ulonglong)uVar41 ^ 0xe23ffc6b)) ^ uVar30) ^ uVar31;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xe1b0f53c)) =
       CONCAT44(DAT_182671c84,uVar15) ^ CONCAT44(uVar15,DAT_182671c80) ^ 0xe52589173923c04f;
  uVar11 = DAT_182671cac;
  *(ulonglong *)(lVar6 - (uVar28 ^ 0x60308348)) =
       (*(ulonglong *)(lVar6 + -0x228) ^ uVar33) - (*(ulonglong *)(lVar6 + -0xc38) ^ uVar31) ^
       uVar23;
  uVar20 = *puVar4;
  uVar29 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *puVar2 = *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c6c ^ 0x44354216)) ^ uVar31 ^ uVar29 ^
            uVar34 ^ *puVar1;
  uVar26 = *puVar2;
  *(uint *)(lVar5 + -0x6c0) = uVar18 ^ uVar20 ^ 0x3e91e414;
  *puVar3 = (uVar29 ^ uVar26) >> ((bVar19 ^ 0x35) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar16;
  return;
}



############ FUN_ 180ffc060 size=3310 ############

void FUN_180ffc060(void)

{
  ulonglong *puVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint uVar35;
  byte local_res20;
  ulonglong uVar28;
  
  uVar13 = DAT_182671c90;
  uVar12 = DAT_182671c8c;
  uVar11 = DAT_182671c78;
  uVar8 = DAT_182671c6c;
  uVar9 = DAT_182671c60;
  uVar2 = DAT_182671c50;
  uVar7 = DAT_182671c4c;
  lVar5 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c8c;
  uVar33 = DAT_182671c8c - DAT_182671c50;
  uVar34 = (ulonglong)DAT_182671c90;
  uVar20 = (ulonglong)DAT_182671c60;
  uVar21 = (ulonglong)DAT_182671c4c;
  uVar30 = (ulonglong)DAT_182671c78;
  uVar24 = DAT_182671c90 - DAT_182671c4c;
  uVar35 = DAT_182671c6c - DAT_182671c78;
  uVar26 = DAT_182671c60 & DAT_182671c94;
  uVar28 = (ulonglong)uVar26;
  uVar3 = *(uint *)(&DAT_182613210 + (uVar23 ^ 0xd0080408) + (longlong)DAT_182672094);
  uVar16 = *(uint *)(&DAT_182613220 + DAT_182672094) ^ DAT_182671c50;
  uVar18 = (ulonglong)DAT_182671c94;
  uVar25 = (ulonglong)DAT_182671d94;
  uVar22 = (ulonglong)DAT_182671c6c;
  DAT_182671c5c = uVar24;
  DAT_182671c74 = uVar33;
  DAT_182671c7c = uVar26;
  DAT_182671c88 = uVar35;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar26 ^ 0x39132c8)) =
       0xdeaa4ead07c3be73 >> (((byte)DAT_182671c94 ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x7fbfda0f)) =
       (CONCAT44(uVar35,uVar24) ^ 0x82dfdb80e9626026) + (*(ulonglong *)(lVar5 + -0x420) ^ uVar25);
  *(byte *)(lVar5 + -0xa62) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x420) ^ uVar25) ^ (byte)DAT_182671e04 ^
       (byte)DAT_182671d18;
  *(byte *)(lVar5 - ((ulonglong)uVar11 ^ 0xfcdffce6)) = (byte)uVar33 ^ 0x2c;
  uVar22 = (ulonglong)DAT_182671e64;
  *(byte *)(*(ulonglong *)(lVar5 + -0xd8) ^ (ulonglong)DAT_182671d10) = (byte)uVar2 ^ 0x7e;
  pbVar19 = (byte *)(*(ulonglong *)(lVar5 + -0xcb0) ^ uVar22);
  *(byte **)(lVar5 + -0xae0) = pbVar19 + (CONCAT44(uVar13,uVar12) ^ 0xdc8c8489d0080401);
  *pbVar19 = *(byte *)(lVar5 + -0xa62) ^ (byte)DAT_182671e04;
  *(undefined8 *)(lVar5 + -0x4a0) = *(undefined8 *)(lVar5 + -0xae0);
  *(undefined1 *)(lVar5 + -0xa62) = 0x94;
  *(undefined8 *)(lVar5 - (uVar21 ^ 0xf32a2d6a)) =
       *(undefined8 *)(lVar5 - ((ulonglong)uVar7 ^ 0xf32a2552));
  uVar17 = DAT_182671c84;
  uVar4 = DAT_182671c54;
  uVar25 = (ulonglong)DAT_182671c54;
  uVar29 = (ulonglong)DAT_182671db8;
  uVar27 = DAT_182671c84 | DAT_182671c54;
  uVar31 = (ulonglong)DAT_182671d98;
  uVar22 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar5 + -0x2b8) = uVar31 ^ *(ulonglong *)(lVar5 + -0x4a0);
  DAT_182671c64 = uVar27;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar4 ^ 0x40001b58)) =
       *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0x30488f0d)) ^ uVar29;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xd48) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar27 ^ 0x70489f5d)) ^ uVar29) +
       (CONCAT44(uVar27,uVar8) ^ 0x7048970d7fbfdb3e);
  *(ulonglong *)(lVar5 + -0x628) =
       CONCAT44(uVar4,uVar33) ^ CONCAT44(uVar4,uVar11) ^ 0x4bf24b602ec07c31;
  *(byte *)(lVar5 + -0xb69) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar28 ^ 0x3913940)) ^ uVar29) ^ (byte)DAT_182671f78 ^
       (byte)DAT_182671d18;
  *(byte *)(lVar5 + -0x529) = (byte)DAT_182671c90 ^ 0x3a;
  bVar15 = (byte)uVar17;
  *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar24 ^ 0xe96263f7)) ^ (ulonglong)DAT_182671f48) =
       bVar15 ^ 0xf7;
  uVar22 = (ulonglong)DAT_182671dac;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xd3913330)) =
       (CONCAT44(uVar26,uVar33) ^ 0x391311074426e01) + (*(ulonglong *)(lVar5 + -0x2b8) ^ uVar31);
  uVar2 = DAT_182671c50;
  uVar32 = (ulonglong)DAT_182671c50;
  *(byte *)(*(ulonglong *)(lVar5 + -0x2b8) ^ uVar31) =
       *(byte *)(lVar5 + -0xb69) ^ (byte)DAT_182671f78;
  *(byte *)(lVar5 - (uVar20 ^ 0xfdff4d6)) = (byte)uVar35 ^ 0xba;
  *(undefined8 *)(lVar5 + -0xb68) = *(undefined8 *)(lVar5 - (uVar32 ^ 0x5bc59420));
  uVar29 = (ulonglong)DAT_182671e94;
  *(undefined8 *)(lVar5 - (uVar34 ^ 0xdc8c85e1)) =
       *(undefined8 *)(lVar5 - ((ulonglong)uVar27 ^ 0x70489a45));
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x168);
  *(ulonglong *)(DAT_182671c40 + -0xc10) = uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0xb68);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar24 ^ 0xe9626be7)) = *puVar1 ^ uVar22;
  lVar5 = DAT_182671c40;
  pbVar19 = (byte *)(*(ulonglong *)(DAT_182671c40 + -0xbc0) ^ uVar22);
  *(byte **)(DAT_182671c40 + -0x5a0) = pbVar19 + (CONCAT44(uVar12,uVar12) ^ 0xd0080400d0080401);
  *(byte *)(lVar5 + -0xa12) = *pbVar19 ^ (byte)DAT_182671f10 ^ (byte)DAT_182671d18;
  uVar22 = (ulonglong)DAT_182671f1c;
  *(byte *)(lVar5 + -0xd32) = (byte)uVar35 ^ 0xd1;
  *(byte *)(*(ulonglong *)(lVar5 + -0xc88) ^ uVar22) = bVar15 ^ 0xfd;
  pbVar19 = (byte *)(*(ulonglong *)(lVar5 + -0xc10) ^ uVar29);
  uVar29 = (ulonglong)DAT_182671f54;
  *(byte **)(lVar5 + -0x800) = pbVar19 + (CONCAT44(uVar26,uVar9) ^ 0x39131100fdfffbe);
  *pbVar19 = *(byte *)(lVar5 - ((ulonglong)uVar4 ^ 0x4000191a)) ^ (byte)DAT_182671f10;
  *(undefined1 *)(lVar5 + -0xa12) = 0xbd;
  *(undefined8 *)(lVar5 - ((ulonglong)uVar33 ^ 0x744265e0)) = *(undefined8 *)(lVar5 + -0x800);
  local_res20 = (byte)uVar12;
  *(undefined8 *)(lVar5 + -0x6c8) = *(undefined8 *)(lVar5 + -0x5a0);
  *(ulonglong *)(lVar5 + -0xc18) =
       (CONCAT44(uVar27,uVar8) ^ 0x7520254094f5f73b) << (local_res20 & 0x3f);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0xf32a2012)) = *(ulonglong *)(lVar5 + -0xbe0) ^ uVar29;
  uVar21 = (ulonglong)DAT_182671e34;
  uVar22 = *(ulonglong *)(lVar5 - (uVar18 ^ 0xd39137d8));
  *(ulonglong *)(lVar5 + -0x198) = uVar22 ^ uVar21;
  bVar14 = (byte)DAT_182671fac;
  *(ulonglong *)(lVar5 + -0x710) = (CONCAT44(uVar2,uVar11) ^ 0x5bc59600fcdfffbe) + uVar22;
  bVar15 = *(byte *)(*(ulonglong *)(lVar5 - (uVar20 ^ 0xfdffe27)) ^ uVar21);
  *(undefined1 *)(lVar5 + -0x61d) = 0xa4;
  *(byte *)(lVar5 + -0xab1) = bVar15 ^ bVar14 ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar23 ^ 0xd0080d68)) ^ (ulonglong)DAT_182671eec) =
       (byte)uVar4 ^ 0xa6;
  *(undefined1 *)(lVar5 + -0x229) = 0xd2;
  uVar10 = DAT_182671c70;
  uVar31 = (ulonglong)DAT_182671e40;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x40001360)) =
       (CONCAT44(uVar27,uVar26) ^ 0x7048970d03913111) + (*(ulonglong *)(lVar5 + -0x470) ^ uVar29);
  lVar6 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(lVar5 + -0x470) ^ uVar29) = bVar14 ^ *(byte *)(lVar5 + -0xab1);
  uVar8 = DAT_182671c58;
  uVar21 = (ulonglong)DAT_182671e68;
  uVar2 = DAT_182671c58 + uVar10;
  DAT_182671c80 = uVar2;
  *(byte *)(lVar6 - ((ulonglong)DAT_182671c58 ^ 0xdefb2049)) = (byte)uVar2 ^ 0x4b;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar2 ^ 0xee9b0157)) =
       (CONCAT44(uVar10,uVar2) ^ 0xfe3f7bdcbf0100) >> ((byte)*(undefined8 *)(lVar6 + -0x3d8) & 0x3f)
  ;
  *(undefined8 *)(lVar6 - ((ulonglong)uVar8 ^ 0xdefb2148)) = *(undefined8 *)(lVar6 + -0x68);
  *(undefined8 *)(lVar6 - ((ulonglong)uVar10 ^ 0xf9fd2c7)) = *(undefined8 *)(lVar6 + -0x710);
  *(longlong *)(lVar6 + -0xb20) = *(longlong *)(lVar6 + -0x5e8) - *(longlong *)(lVar6 + -0x380);
  *(ulonglong *)(lVar6 + -0x3f8) = *(ulonglong *)(lVar6 + -0xbb0) ^ uVar31;
  uVar22 = *(ulonglong *)(lVar6 - ((ulonglong)uVar2 ^ 0xee9b0fcf));
  *(ulonglong *)(lVar6 + -0x508) = uVar22 ^ uVar21;
  *(ulonglong *)(lVar6 + -0x300) = (CONCAT44(uVar8,uVar2) ^ 0xdefb2af8ee9b0636) + uVar22;
  *(int *)(lVar6 + -0x61c) = *(int *)(lVar6 + -0x670) + *(int *)(lVar6 + -0x54);
  bVar14 = (byte)DAT_182671f50;
  *(undefined4 *)(lVar6 - (uVar23 ^ 0xd0080454)) = 0x513d0d20;
  bVar15 = *(byte *)(*(ulonglong *)(lVar6 + -0x508) ^ uVar21);
  *(undefined1 *)(lVar6 + -0x861) = 0x1f;
  *(byte *)(lVar6 + -0xb1) = bVar15 ^ bVar14 ^ (byte)DAT_182671d18;
  uVar26 = DAT_182671f2c;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x768) ^ (ulonglong)DAT_182671f2c) = (byte)uVar2 ^ 0x38;
  lVar5 = DAT_182671c40;
  bVar15 = *(byte *)(DAT_182671c40 + -0xb1);
  *(ulonglong *)(DAT_182671c40 + -0x738) = (*(ulonglong *)(DAT_182671c40 + -0x3f8) ^ uVar31) + 1;
  *(longlong *)(lVar5 + -0xd88) = *(longlong *)(lVar5 + -0xbd8) << (((byte)uVar8 ^ 0xe7) & 0x3f);
  uVar29 = (ulonglong)DAT_182671d4c;
  *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar17 ^ 0x304885fd)) ^ uVar31) = bVar14 ^ bVar15;
  *(byte *)(lVar5 - (uVar28 ^ 0x39131a1)) = (byte)uVar10 ^ 0xd4;
  *(ulonglong *)(lVar5 + -0x488) = *(ulonglong *)(lVar5 + -0x738);
  *(ulonglong *)(lVar5 + -0x3c0) = *(ulonglong *)(lVar5 + -0x300);
  *(ulonglong *)(lVar5 + -0xa78) =
       (CONCAT44(uVar33,uVar9) ^ 0x6d89a05052a1cf7d) <<
       ((byte)*(undefined8 *)(lVar5 + -0xc38) & 0x3f);
  uVar9 = DAT_182671f08;
  uVar4 = *(uint *)(lVar5 - ((ulonglong)uVar35 ^ 0x82dfdcec));
  uVar21 = (ulonglong)DAT_182671f08;
  uVar17 = DAT_182671c94 ^ 0xe6e699ae;
  *(uint *)(lVar5 + -0x76c) = DAT_182671c4c ^ 0x69d704b0;
  uVar22 = uVar21 ^ *(ulonglong *)(lVar5 + -0x300);
  *(uint *)(lVar5 + -0x94c) = (uVar4 ^ uVar26) * uVar17;
  *(ulonglong *)(lVar5 + -0x7a8) = uVar29 ^ *(ulonglong *)(lVar5 + -0x738);
  *(undefined8 *)(lVar5 + -0xb08) = *(undefined8 *)(lVar5 + -0x920);
  *(ulonglong *)(lVar5 + -0x358) = uVar22;
  lVar5 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671c6c,uVar10);
  bVar15 = (byte)DAT_182671c6c;
  *(ulonglong *)(DAT_182671c40 + -0xc80) =
       (CONCAT44(uVar24,uVar13) ^ 0xe9626027dc8c8488) + (uVar9 ^ uVar22);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xdefb2d38)) =
       (uVar23 ^ 0x61fdd86e1c1f008c) << (((byte)uVar11 ^ 0x8f) & 0x3f);
  *(byte *)(lVar5 - ((ulonglong)uVar2 ^ 0xee9b0065)) =
       *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar24 ^ 0xe962637f)) ^ uVar21) ^
       (byte)DAT_182671db0 ^ (byte)DAT_182671d18;
  *(byte *)(lVar5 + -0x539) = (byte)DAT_182671c50 ^ 8;
  *(byte *)(*(ulonglong *)(lVar5 + -0x370) ^ (ulonglong)DAT_182671e10) = bVar15 ^ 0xdb;
  pbVar19 = (byte *)(uVar29 ^ *(ulonglong *)(lVar5 + -0x7a8));
  bVar15 = *(byte *)(lVar5 + -0x652) ^ (byte)DAT_182671db0;
  *(byte **)(lVar5 + -0x170) = pbVar19 + (CONCAT44(uVar12,uVar27) ^ 0xd00804007048970c);
  *pbVar19 = bVar15;
  *(undefined1 *)(lVar5 - (uVar25 ^ 0x4000155a)) = 0x84;
  *(undefined8 *)(lVar5 + -0xa20) = *(undefined8 *)(lVar5 + -0x170);
  *(undefined8 *)(lVar5 - (uVar30 ^ 0xfcdff2a7)) = *(undefined8 *)(lVar5 + -0xc80);
  uVar23 = (ulonglong)DAT_182671d7c;
  uVar22 = (ulonglong)DAT_182671f40;
  *(ulonglong *)(lVar5 - (uVar20 ^ 0xfdff857)) = *(ulonglong *)(lVar5 + -0x7c0) >> 0x2d;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar35 ^ 0x82dfdf68)) = uVar23 ^ *(ulonglong *)(lVar5 + -0xa20)
  ;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0x5bc59dc8)) = *(ulonglong *)(lVar5 + -0xd18) ^ uVar22;
  uVar4 = DAT_182671db8;
  uVar2 = DAT_182671c90;
  pbVar19 = (byte *)(*(ulonglong *)(lVar5 + -0xbc8) ^ uVar22);
  *(byte **)(lVar5 + -0x270) = pbVar19 + (CONCAT44(uVar10,uVar7) ^ 0xf9fdb3ff32a2463);
  *(byte *)(lVar5 + -0x8a9) = (byte)uVar4 ^ *pbVar19 ^ (byte)DAT_182671d18;
  *(byte *)(lVar5 + -0x4d9) = (byte)uVar24 ^ 0x6e;
  *(byte *)(*(ulonglong *)(lVar5 + -400) ^ (ulonglong)DAT_182671d64) = (byte)uVar2 ^ 0x17;
  *(ulonglong *)(lVar5 + -0x60) =
       (CONCAT44(uVar7,uVar8) ^ 0xf32a2462defb2af9) + (*(ulonglong *)(lVar5 + -0x4e8) ^ uVar23);
  *(byte *)(*(ulonglong *)(lVar5 - (uVar18 ^ 0xd39135f8)) ^ uVar23) =
       (byte)uVar4 ^ *(byte *)(lVar5 + -0x8a9);
  *(byte *)(lVar5 - (uVar32 ^ 0x5bc59ea9)) = (byte)uVar2 ^ 99;
  uVar22 = *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0x7048976d));
  *(undefined8 *)(lVar5 + -0x2a8) = *(undefined8 *)(lVar5 + -0x270);
  uVar23 = (ulonglong)DAT_182671e98;
  *(ulonglong *)(lVar5 + -0x440) = uVar22;
  *(ulonglong *)(lVar5 + -0x6a0) = uVar23 ^ uVar22;
  uVar22 = (ulonglong)DAT_182671f58;
  *(ulonglong *)(lVar5 - (uVar20 ^ 0xfdff627)) =
       *(ulonglong *)(lVar5 - (uVar25 ^ 0x400011a0)) ^ uVar22;
  *(ulonglong *)(lVar5 + -0x698) =
       (CONCAT44(uVar33,uVar12) ^ 0x74426e00d0080401) + (*(ulonglong *)(lVar5 + -0x998) ^ uVar22);
  *(byte *)(lVar5 + -0x9dd) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar28 ^ 0x3913888)) ^ uVar22) ^ (byte)DAT_182671e84 ^
       (byte)DAT_182671d18;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar3 ^ uVar33;
  return;
}



############ FUN_ 1810128b0 size=4571 ############

void FUN_1810128b0(void)

{
  uint *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  uint *puVar15;
  byte bVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte *pbVar21;
  byte bVar22;
  uint uVar23;
  uint *puVar24;
  uint *puVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint *puVar29;
  uint uVar30;
  uint *puVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  
  uVar32 = DAT_182671f34;
  uVar5 = DAT_182671e14;
  uVar33 = DAT_182671c94;
  uVar19 = DAT_182671c80;
  uVar7 = DAT_182671c7c;
  uVar37 = DAT_182671c70;
  uVar6 = DAT_182671c6c;
  uVar30 = DAT_182671c60;
  lVar3 = DAT_182671c40;
  uVar39 = (ulonglong)DAT_182671c7c;
  uVar9 = DAT_182671c7c & 7;
  uVar12 = (ulonglong)DAT_182671c78;
  uVar40 = (ulonglong)DAT_182671c6c;
  if (uVar9 < 4) {
    if (uVar9 < 2) {
      uVar27 = DAT_182671c8c;
      if (uVar9 == 0) {
        uVar27 = DAT_182671c7c;
      }
    }
    else {
      uVar27 = DAT_182671c94;
      if (uVar9 < 3) {
        uVar27 = DAT_182671c60;
      }
    }
  }
  else if (uVar9 < 6) {
    uVar27 = DAT_182671c6c;
    if (uVar9 < 5) {
      uVar27 = DAT_182671c54;
    }
  }
  else {
    uVar27 = DAT_182671c80;
    if (uVar9 < 7) {
      uVar27 = DAT_182671c78;
    }
  }
  uVar42 = DAT_182671c70 << 0x10 | DAT_182671c70 >> 0x10;
  uVar9 = *(uint *)(&DAT_182613220 + DAT_1826720e0);
  uVar18 = *(uint *)(&DAT_182613218 + DAT_1826720e0) ^ DAT_182671c70;
  uVar10 = *(uint *)(DAT_182671c40 + -0x94) ^ DAT_182671dcc;
  uVar23 = (*(uint *)(DAT_182671c40 + -0x1c8) ^ DAT_182671cc0) << (((byte)DAT_182671c8c ^ 1) & 0x1f)
           ^ DAT_182671ec0;
  DAT_182671c50 = uVar27;
  DAT_182671c64 = uVar42;
  *(uint *)(DAT_182671c40 + -0x27c) = uVar23;
  *(uint *)(lVar3 + -0x4ac) = uVar10 - (uVar23 ^ DAT_182671ec0) ^ DAT_182671f88;
  uVar10 = *(uint *)(lVar3 + -0x1c8) ^ DAT_182671cc0;
  *(uint *)(lVar3 + -0x54) =
       (*(uint *)(lVar3 - (uVar40 ^ 0x9f72b72b)) ^ uVar5) *
       (*(uint *)(lVar3 - (uVar39 ^ 0xff3c5723)) ^ DAT_182671f88) ^ uVar32;
  puVar24 = (uint *)(lVar3 - (uVar12 ^ 0x87476e24));
  *puVar24 = uVar10 * (uVar30 ^ 0x9f72b1e3) ^ DAT_182671ecc;
  uVar30 = DAT_182671de4;
  uVar10 = DAT_182671c84;
  uVar32 = (*(uint *)(lVar3 + -0x684) ^ DAT_182671ecc) + (uVar32 ^ *(uint *)(lVar3 + -0x54));
  uVar28 = (ulonglong)DAT_182671c84;
  *(uint *)(lVar3 + -0x670) = uVar32 ^ DAT_182671de4;
  uVar8 = DAT_182671f98;
  uVar30 = (*(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0x618d4864)) ^ uVar30) <<
           (((byte)uVar33 ^ 0xf2) & 0x1f);
  uVar32 = uVar32 >> (((byte)uVar10 ^ 0xe3) & 0x1f);
  uVar33 = uVar32 ^ DAT_182671f98;
  *(uint *)(lVar3 + -0x58c) = uVar30 ^ DAT_182671d24;
  *(uint *)(lVar3 + -0x9dc) = uVar33;
  *(uint *)(lVar3 + -0x634) = (uVar32 | uVar30) ^ DAT_182671cb0;
  uVar34 = DAT_182671e0c;
  puVar31 = (uint *)(lVar3 - ((ulonglong)uVar10 ^ 0x87c7e614));
  uVar11 = (ulonglong)uVar42;
  *puVar31 = (uVar19 ^ 0xdf3f6efb) * (DAT_182671c54 ^ 0x40684049);
  uVar30 = DAT_182671db8;
  uVar14 = (ulonglong)DAT_182671f14;
  uVar19 = (DAT_182671dd4 ^ *(uint *)(lVar3 + -0x5d4)) + (uVar5 ^ *(uint *)(lVar3 + -0x6c0)) ^
           DAT_182671dc4;
  *(uint *)(lVar3 + -0x76c) = uVar19;
  *(uint *)(lVar3 + -0x94c) = uVar19 ^ uVar34 ^ DAT_182671dc4;
  *(ulonglong *)(lVar3 + -0x960) =
       0x457d93ca3359f206 - (CONCAT44(uVar37,uVar42) ^ 0x7ae6140d9fd3acc2);
  uVar23 = DAT_182671c8c;
  *(uint *)(lVar3 - (uVar12 ^ 0x87476ebc)) =
       *(uint *)(lVar3 - (uVar28 ^ 0x87c7eac4)) ^ DAT_182671f44 ^ DAT_182671cb0;
  puVar25 = (uint *)(lVar3 - ((ulonglong)uVar27 ^ 0x618d4c68));
  uVar19 = DAT_182671d88 ^ DAT_182671f44;
  *puVar25 = *(uint *)(lVar3 - ((ulonglong)uVar37 ^ 0x5f97b134)) ^ uVar30 ^ uVar34;
  *(uint *)(lVar3 + -0x94) = uVar19 ^ *(uint *)(lVar3 + -0x61c);
  bVar22 = (byte)DAT_182671dbc;
  uVar32 = DAT_182671c80;
  uVar5 = DAT_182671c60;
  uVar12 = (ulonglong)DAT_182671c80;
  bVar16 = (byte)(uVar37 >> 0x10) ^ 0x86;
  uVar13 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0x9f8) =
       (CONCAT44(uVar7,uVar23) ^ 0xff3c538f78381310) * 0x20 +
       (CONCAT44(DAT_182671c80,uVar10) ^ 0x618d4e1487c7ece3) + *(longlong *)(lVar3 + -0x9a8) ^
       uVar14;
  uVar33 = DAT_182671c54;
  uVar20 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar3 - (uVar11 ^ 0xb87855c7)) =
       CONCAT44(DAT_182671c54,uVar5) ^ 0xf690a48b84081afb | *(ulonglong *)(lVar3 + -0x380);
  bVar17 = (byte)DAT_182671c7c;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(uVar14 ^ *(ulonglong *)(lVar3 + -0x9f8)) ^ bVar22 ^ (byte)uVar34;
  uVar19 = DAT_182671f24;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c94 ^ 0xffffff97)) ^
           (ulonglong)DAT_182671d1c) = bVar17 ^ 0xae;
  uVar34 = *(uint *)(lVar3 + -0x94) ^ DAT_182671d88;
  uVar26 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar3 + -0x888) =
       *(ulonglong *)(CONCAT44(DAT_182671e34,DAT_182671e34) ^ *(ulonglong *)(lVar3 + -0xb98)) ^
       uVar26;
  uVar38 = (bVar22 ^ *(byte *)(lVar3 + -0x1c3)) ^ DAT_182671f08;
  uVar19 = DAT_182671c80 ^ 0xfdcf5c0a;
  *(uint *)(lVar3 + -0x4ac) = uVar38;
  uVar38 = uVar38 ^ DAT_182671f08;
  uVar35 = uVar34 + uVar19 ^ DAT_182671da0;
  uVar19 = uVar38 << (bVar16 & 0x1f) ^ DAT_182671de0;
  *(uint *)(lVar3 + -0x1c8) = uVar35;
  *(uint *)(lVar3 + -0x54) = uVar19;
  uVar36 = DAT_182671eec;
  uVar35 = uVar35 ^ DAT_182671da0;
  *(ulonglong *)(lVar3 + -0x7c0) =
       *(ulonglong *)(lVar3 - (uVar39 ^ 0xff3c550f)) | CONCAT44(uVar6,uVar33) ^ 0xb52618e23fa9132a;
  uVar34 = DAT_182671eb8;
  *(uint *)(lVar3 + -0x684) =
       uVar35 - (*(uint *)(lVar3 - ((ulonglong)uVar37 ^ 0x5f97b82c)) ^ DAT_182671de0) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x3d8) =
       CONCAT44(uVar23,uVar32) ^ *(ulonglong *)(lVar3 + -0x680) ^ 0xc70f77df28ac9b0;
  *(uint *)(lVar3 + -0x670) =
       (*(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0x618d4890)) ^ uVar36) *
       (*(uint *)(lVar3 + -0x27c) ^ uVar30) ^ uVar36;
  puVar29 = (uint *)(lVar3 - (uVar11 ^ 0xb8785a1b));
  *puVar29 = (uVar10 ^ 0x87c7ece3) * uVar38 ^ uVar34;
  uVar19 = DAT_182671dd4;
  uVar36 = (*(uint *)(lVar3 + -0x670) ^ uVar36) + (uVar34 ^ *(uint *)(lVar3 + -0x58c)) ^
           DAT_182671f04;
  *(uint *)(lVar3 + -0x9dc) = uVar36;
  uVar36 = uVar36 ^ DAT_182671f04;
  uVar34 = uVar36 << (((byte)uVar10 ^ 0xfd) & 0x1f) ^ DAT_182671ee4;
  bVar17 = (byte)DAT_182671c6c;
  *(uint *)(lVar3 + -0xae4) = uVar34;
  uVar34 = uVar34 ^ DAT_182671ee4;
  uVar36 = uVar36 >> ((bVar17 ^ 0xf8) & 0x1f);
  *(uint *)(lVar3 + -0x6c0) = uVar36 ^ uVar19;
  uVar34 = (uVar34 | uVar36) ^ DAT_182671ec4;
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 + -0x27c) ^ uVar30) + (uVar19 ^ *(uint *)(lVar3 + -0x5d4)) ^ DAT_182671e4c;
  *(uint *)(lVar3 + -0x76c) = uVar34;
  uVar36 = DAT_182671f38;
  uVar34 = DAT_182671ed0;
  uVar19 = DAT_182671c78;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0x874764b8)) =
       *(ulonglong *)(lVar3 + -0x828) >> ((byte)*(undefined8 *)(lVar3 + -0x628) & 0x3f);
  uVar35 = *(uint *)(lVar3 + -0x76c) ^ DAT_182671cd8 ^ DAT_182671ec4;
  uVar30 = *(uint *)(lVar3 - (uVar39 ^ 0xff3c55bb));
  *(uint *)(lVar3 + -0x61c) = uVar35;
  uVar30 = uVar30 ^ uVar34 ^ DAT_182671e4c;
  uVar35 = uVar35 ^ DAT_182671d74 ^ DAT_182671cd8;
  *(uint *)(lVar3 + -0x94) = uVar36 ^ uVar34 ^ uVar30;
  *(uint *)(lVar3 + -0x1c8) = uVar35;
  lVar4 = DAT_182671c40;
  *(uint *)(lVar3 + -0x94c) = uVar30;
  bVar17 = (byte)DAT_182671d44;
  uVar41 = (ulonglong)DAT_182671c9c;
  bVar22 = (byte)DAT_182671c94;
  pbVar21 = (byte *)((CONCAT44(DAT_182671c94,uVar7) ^ 0xffffffffff3c538f) * 0x20 +
                     (CONCAT44(uVar42,uVar27) ^ 0xb8785f97618d4e0a) + *(longlong *)(lVar4 + -0x9a8))
  ;
  *(ulonglong *)(lVar4 + -0x300) = (ulonglong)pbVar21 ^ uVar41;
  uVar14 = (ulonglong)DAT_182671e2c;
  *(byte *)(lVar4 + -0xc51) = *pbVar21 ^ bVar17 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar4 + -800) ^ uVar14) = bVar22 ^ 0x5b;
  uVar27 = DAT_182671cb4;
  *(uint *)(lVar4 + -0x54) =
       (*(byte *)(lVar4 - ((ulonglong)uVar19 ^ 0x874764f1)) ^ bVar17) ^ DAT_182671cb4;
  *(ulonglong *)(lVar4 + -0x30) =
       CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar4 + -0xc18) ^ 0x703301257d249021;
  uVar19 = DAT_182671c94;
  uVar30 = DAT_182671c70;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c70 ^ 0x5f97befc)) =
       (*(uint *)(lVar4 - (uVar40 ^ 0x9f72b023)) ^ DAT_182671d74) + (DAT_182671c6c ^ 0x330a3f5) ^
       uVar8;
  bVar17 = (byte)DAT_182671c78;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x87476db0)) =
       (CONCAT44(uVar23,uVar19) ^ 0x6b4716493bd9b9ba) <<
       ((byte)*(undefined8 *)(lVar4 + -0xc18) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar19 = (uVar27 ^ *(uint *)(DAT_182671c40 + -0x54)) << ((bVar17 ^ 0xb1) & 0x1f) ^ DAT_182671e24;
  puVar15 = (uint *)(DAT_182671c40 - ((ulonglong)uVar30 ^ 0x5f97be08));
  *(uint *)(DAT_182671c40 + -0x4ac) = uVar19;
  uVar30 = DAT_182671e04;
  *puVar15 = (*(uint *)(lVar3 + -0x684) ^ uVar8) - (uVar19 ^ DAT_182671e24) ^ DAT_182671e04;
  lVar3 = DAT_182671c40;
  puVar15 = (uint *)(DAT_182671c40 + -0x94c);
  puVar1 = (uint *)(DAT_182671c40 + -0x670);
  *(uint *)(DAT_182671c40 + -0x58c) =
       (*(uint *)(DAT_182671c40 - (uVar11 ^ 0xb87859e7)) ^ uVar30) *
       (*(uint *)(DAT_182671c40 + -0x94) ^ uVar36) ^ DAT_182671e80;
  *(uint *)(lVar3 - (uVar40 ^ 0x9f72b837)) = (uVar34 ^ *puVar15) - (*puVar1 ^ uVar30);
  uVar19 = (uVar27 ^ *(uint *)(lVar3 + -0x54)) * (DAT_182671c70 ^ 0x5f97b866) ^ DAT_182671e94;
  *(uint *)(lVar3 + -0xae4) = uVar19;
  uVar30 = DAT_182671f90;
  lVar4 = DAT_182671c40;
  bVar17 = (byte)DAT_182671c7c;
  *(uint *)(DAT_182671c40 + -0x6c0) =
       (*(uint *)(lVar3 - (uVar12 ^ 0x618d4b98)) ^ DAT_182671e80) + (uVar19 ^ DAT_182671e94) ^
       DAT_182671f90;
  bVar22 = (byte)DAT_182671c50;
  *(uint *)(lVar4 - (uVar39 ^ 0xff3c51f3)) =
       (*(uint *)(lVar4 - (uVar28 ^ 0x87c7ea30)) ^ uVar30) << ((bVar17 ^ 0x82) & 0x1f) ^
       DAT_182671e20;
  bVar17 = (byte)DAT_182671c8c;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c78 ^ 0x87476e94)) =
       (uVar30 ^ *(uint *)(lVar4 + -0x6c0)) >> ((bVar22 ^ 7) & 0x1f) ^ DAT_182671df4;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c94 ^ 0xfffffd4f)) =
       (CONCAT44(uVar23,uVar33) ^ 0xece9bc00226b9e77) << ((bVar17 ^ 0x3b) & 0x3f);
  uVar30 = DAT_182671dd4;
  *(uint *)(lVar4 + -0x76c) =
       (*(uint *)(lVar4 + -0x27c) ^ DAT_182671e20 | *(uint *)(lVar4 + -0x634) ^ DAT_182671df4) ^
       DAT_182671e74;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c70 ^ 0x5f97be64)) =
       (*(uint *)(lVar4 + -0x94) ^ uVar36) + (uVar30 ^ *(uint *)(lVar4 + -0x5d4)) ^ DAT_182671d24;
  uVar30 = DAT_182671f8c;
  uVar27 = DAT_182671d08;
  uVar19 = *(uint *)(lVar4 - (uVar11 ^ 0xb878598b)) ^ DAT_182671f1c ^ DAT_182671d24;
  uVar14 = (ulonglong)DAT_182671dfc;
  *(uint *)(lVar4 + -0x1c8) = uVar19;
  uVar34 = uVar19 ^ uVar27 ^ DAT_182671f1c;
  uVar19 = *(uint *)(lVar4 - (uVar20 ^ 0x87476fcc)) ^ DAT_182671d98 ^ DAT_182671e74;
  *(uint *)(lVar4 + -0x684) = uVar19;
  uVar19 = uVar30 ^ uVar19 ^ DAT_182671d98;
  *(uint *)(lVar4 + -0x4ac) = uVar34;
  uVar30 = DAT_182671c80 ^ 0xf1059259;
  *(uint *)(lVar4 - (uVar39 ^ 0xff3c5ac3)) = uVar19;
  uVar19 = DAT_182671c50;
  *(uint *)(lVar4 + -0x670) = uVar30 + (DAT_182671c60 ^ 0xc4c5ba1);
  bVar17 = (byte)DAT_182671f0c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x9f72b22b)) =
       (CONCAT44(uVar19,uVar6) ^ 0x618d4e149f72b1eb) * 0x20 +
       (CONCAT44(uVar37,DAT_182671c78) ^ 0x5f97b878874768a9) + *(longlong *)(DAT_182671c40 + -0x9a8)
       ^ uVar14;
  uVar36 = DAT_182671f24;
  bVar22 = (byte)DAT_182671c54;
  *(byte *)(lVar3 - ((ulonglong)uVar19 ^ 0x618d45a5)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x3c0) ^ uVar14) ^ (byte)DAT_182671e0c ^ bVar17;
  *(byte *)(*(ulonglong *)(lVar3 + -0xa20) ^ (ulonglong)DAT_182671f4c) = bVar22 ^ 0x40;
  *(uint *)(lVar3 - (uVar28 ^ 0x87c7e52c)) = (*(byte *)(lVar3 + -0xbb1) ^ bVar17) ^ uVar36;
  uVar35 = DAT_182671fac;
  uVar8 = DAT_182671ef0;
  uVar30 = DAT_182671cb8;
  lVar4 = DAT_182671c40;
  uVar14 = (ulonglong)DAT_182671c78;
  *(uint *)(DAT_182671c40 + -0x54) =
       (*(uint *)(lVar3 - (uVar28 ^ 0x87c7e5bc)) ^ DAT_182671f8c) + (DAT_182671c94 ^ 0x63bdede1) ^
       DAT_182671ef0;
  uVar20 = (ulonglong)DAT_182671c8c;
  *puVar29 = (*(uint *)(lVar4 - (uVar14 ^ 0x8747617c)) ^ uVar36) << (bVar16 & 0x1f) ^ uVar30;
  uVar37 = DAT_182671f18;
  uVar34 = DAT_182671ddc;
  *(uint *)(lVar4 + -0xae4) =
       (*(uint *)(lVar4 - (uVar20 ^ 0x78381344)) ^ uVar8) - (uVar30 ^ *(uint *)(lVar4 + -0x58c)) ^
       uVar35;
  uVar38 = (uVar27 ^ *(uint *)(lVar4 + -0x4ac)) * (*puVar31 ^ uVar35);
  uVar30 = (*(uint *)(lVar4 + -0x9dc) ^ uVar36) * 9;
  *(uint *)(lVar4 + -0x6c0) = uVar38 ^ uVar37;
  *(uint *)(lVar4 + -0x27c) = uVar30 ^ uVar34;
  uVar37 = DAT_182671ee0;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x634) = uVar30 + uVar38 ^ DAT_182671ee0;
  *(ulonglong *)(lVar3 - (uVar11 ^ 0xb8785b2f)) =
       CONCAT44(uVar6,uVar33) ^ 0x206427bade3dbea5 | *(ulonglong *)(lVar3 + -0x628);
  *(uint *)(DAT_182671c40 - (uVar13 ^ 0x9f72b17f)) =
       (*(uint *)(lVar3 + -0x634) ^ uVar37) << 0xd ^ DAT_182671e70;
  lVar3 = DAT_182671c40;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x300);
  uVar30 = (*(uint *)(DAT_182671c40 + -0x634) ^ uVar37) >> (((byte)DAT_182671c60 ^ 0xf8) & 0x1f) ^
           DAT_182671d88;
  uVar14 = (ulonglong)DAT_182671c70;
  *(uint *)(DAT_182671c40 + -0x61c) = uVar30;
  uVar30 = uVar30 ^ DAT_182671d88;
  *(byte *)(lVar3 + -0xa12) = *(byte *)(uVar41 ^ *puVar2) ^ (byte)DAT_182671e0c;
  lVar4 = DAT_182671c40;
  *(uint *)(lVar3 + -0x76c) = (*(uint *)(lVar3 + -0x94) ^ DAT_182671e70 | uVar30) ^ DAT_182671f28;
  uVar36 = DAT_182671eb4;
  uVar30 = DAT_182671c94;
  uVar13 = (ulonglong)DAT_182671c94;
  uVar38 = (*(uint *)(lVar3 - (uVar14 ^ 0x5f97bcd4)) ^ uVar27) +
           (DAT_182671dd4 ^ *(uint *)(lVar3 + -0x5d4)) ^ DAT_182671eb4;
  *(uint *)(lVar3 + -0x1c8) = uVar38;
  uVar37 = DAT_182671d50;
  uVar38 = uVar38 ^ DAT_182671d50;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       *(ulonglong *)
        (*(ulonglong *)(lVar4 - (uVar13 ^ 0xfffff9ef)) ^ CONCAT44(DAT_182671da0,DAT_182671da0)) ^
       uVar26;
  uVar27 = DAT_182671da0;
  *puVar24 = uVar38 ^ uVar36;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - (uVar40 ^ 0x9f72b79b)) =
       *(uint *)(DAT_182671c40 + -0x76c) ^ DAT_182671f28 ^ DAT_182671f24;
  *(uint *)(lVar3 + -0x54) = uVar36 ^ *(uint *)(lVar3 + -0x670) ^ DAT_182671f24;
  *(uint *)(lVar3 + -0x94c) = uVar37 ^ *(uint *)(lVar3 + -0x684) ^ uVar27;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       *(ulonglong *)(lVar3 + -0x628) >> (((byte)uVar30 ^ 0xda) & 0x3f);
  bVar17 = (byte)DAT_182671cd4;
  lVar3 = DAT_182671c40;
  bVar22 = (byte)DAT_182671c70;
  pbVar21 = (byte *)((CONCAT44(uVar10,uVar32) ^ 0x87c7ecf0618d4e14) * 0x20 +
                     (CONCAT44(uVar19,uVar5) ^ 0x618d4e149f72b1ff) +
                    *(longlong *)(DAT_182671c40 + -0x9a8));
  *(ulonglong *)(DAT_182671c40 + -0x7a8) = (ulonglong)pbVar21 ^ (ulonglong)uVar35;
  *(byte *)(lVar3 + -0xac1) = *pbVar21 ^ (byte)DAT_182671e0c ^ bVar17;
  *(byte *)(*(ulonglong *)(lVar3 + -0x738) ^ (ulonglong)DAT_182671e38) = bVar22 ^ 0x5e;
  uVar19 = DAT_182671eb0;
  *(uint *)(lVar3 + -0x58c) = (*(byte *)(lVar3 + -0xac1) ^ bVar17) ^ DAT_182671eb0;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xff3c5aaf)) =
       CONCAT44(uVar23,uVar6) ^ 0x5012e1411cd10661 | *(ulonglong *)(lVar3 + -0xd88);
  uVar37 = DAT_182671da8;
  *puVar31 = (uVar36 ^ *(uint *)(lVar3 + -0x54)) + (DAT_182671c50 ^ 0xfdcf5c0a) ^ DAT_182671da8;
  uVar32 = uVar19 ^ *(uint *)(lVar3 + -0x58c);
  uVar30 = uVar32 * 0x20000 ^ DAT_182671edc;
  *(ulonglong *)(lVar3 + -0xa70) =
       (CONCAT44(uVar23,uVar7) ^ 0x482af7519e09d660) << (((byte)uVar33 ^ 0xae) & 0x3f);
  *(uint *)(lVar3 + -0x9dc) = uVar30;
  uVar30 = DAT_182671d54;
  *(uint *)(lVar3 + -0x6c0) =
       (uVar37 ^ *(uint *)(lVar3 + -0xae4)) + uVar32 * -0x20000 ^ DAT_182671d54;
  *puVar25 = (uVar27 ^ *(uint *)(lVar3 + -0x94c)) * (DAT_182671c6c ^ 0x92e27b9c);
  *(uint *)(lVar3 + -0x634) =
       (uVar30 ^ *(uint *)(lVar3 + -0x6c0)) * (uVar27 ^ *(uint *)(lVar3 + -0x94c)) ^ DAT_182671e54;
  uVar37 = DAT_182671fa8;
  uVar30 = DAT_182671ee8;
  uVar19 = (uVar19 ^ *(uint *)(lVar3 + -0x58c)) * (DAT_182671c94 ^ 0xffffffeb);
  *(uint *)(lVar3 + -0x94) = uVar19 ^ uVar34;
  *(uint *)(lVar3 - (uVar12 ^ 0x618d4808)) =
       (*(uint *)(lVar3 - (uVar11 ^ 0xb87859a3)) ^ DAT_182671e54) + uVar19 ^ uVar37;
  uVar37 = uVar37 ^ *(uint *)(lVar3 + -0x61c);
  uVar19 = uVar37 << 0xd;
  bVar17 = (byte)DAT_182671c78;
  *(uint *)(lVar3 + -0x4ac) = uVar19 ^ uVar30;
  uVar37 = uVar37 >> ((bVar17 ^ 0xb3) & 0x1f);
  uVar30 = uVar37 ^ DAT_182671e28;
  *(ulonglong *)(lVar3 + -0x8f0) =
       (CONCAT44(uVar5,uVar33) ^ 0x4ad481363d2a9884) + (CONCAT44(uVar7,uVar6) ^ 0x5767900a19598da4);
  *(uint *)(lVar3 + -0x1c8) = uVar30;
  *(uint *)(lVar3 - (uVar40 ^ 0x9f72b687)) = (uVar37 | uVar19) ^ uVar8;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar9 ^ uVar42) * 4) = uVar18;
  return;
}



############ FUN_ 180fea310 size=5112 ############

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

void FUN_180fea310(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong *puVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte local_res18;
  byte local_60;
  
  uVar10 = DAT_182671c78;
  lVar2 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c78;
  uVar20 = (DAT_182671c78 << 0x10 | DAT_182671c78 & 0xff00) << 8 | DAT_182671c78 >> 8 & 0xff00 |
           DAT_182671c78 >> 0x18;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182671fd0);
  uVar15 = *(uint *)(&DAT_182613220 + DAT_182671fd0) ^ DAT_182671c78;
  uVar31 = (ulonglong)DAT_182671c78;
  DAT_182671c90 = uVar20;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       CONCAT44(DAT_182671c78,uVar20) ^ 0x4c080c08362000ac | 0x3011c3e7c0c5f713;
  uVar24 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar21 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar27 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  uVar18 = CONCAT44(DAT_182671d70,DAT_182671d70) ^ uVar21 ^ uVar24 ^ *(ulonglong *)(lVar2 + -0xa70)
           ^ *(ulonglong *)(lVar2 + -0xa60);
  *(ulonglong *)(lVar2 + -0x228) = uVar18;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x2d0175b3)) =
       (CONCAT44(uVar10,uVar10) ^ 0xc0af0171679bd97b) + (uVar18 ^ uVar24) ^ uVar27;
  uVar13 = DAT_182671fa4;
  uVar25 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar18 = (CONCAT44(uVar20,uVar10) ^ 0x5151d6cad4c99385) +
           (uVar25 ^ *(ulonglong *)(lVar2 + -0x760));
  *(ulonglong *)(lVar2 + -0x628) = uVar18 ^ CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar8 = DAT_182671e8c;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x110) = uVar18 + (uVar27 ^ *(ulonglong *)(lVar2 + -0x7e8)) ^ uVar34;
  uVar5 = DAT_182671c68;
  uVar26 = CONCAT44(DAT_182671f14,DAT_182671f14);
  bVar17 = (byte)DAT_182671c60;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x2d0170eb)) =
       *(ulonglong *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0xad8)) ^ uVar26;
  uVar13 = DAT_182671e84;
  uVar28 = (uVar27 ^ *(ulonglong *)(lVar2 + -0x7e8)) >> ((bVar17 ^ 0xe8) & 0x3f);
  uVar18 = (uVar27 ^ *(ulonglong *)(lVar2 + -0x7e8)) << 0x19;
  *(ulonglong *)(lVar2 + -0xb20) = uVar18 ^ CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar8 = DAT_182671dc4;
  uVar24 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xb08) = uVar28 ^ uVar24;
  uVar13 = DAT_182671ec0;
  uVar27 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x920) = (uVar28 | uVar18) ^ uVar27;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x2d0171db)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x2d01734b)) ^
       *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x2d017b7b)) ^ uVar29 ^ uVar27 ^ uVar34;
  uVar9 = DAT_182671c6c;
  uVar4 = DAT_182671c4c;
  uVar27 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar32 = CONCAT44(DAT_182671f98,DAT_182671f98);
  uVar30 = (CONCAT44(uVar5,uVar10) ^ 0xe697b4aeaa26022a) +
           (uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0x7c0));
  puVar16 = (ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x5b720b4d));
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar30 ^ uVar32;
  uVar7 = DAT_182671c7c;
  lVar2 = DAT_182671c40;
  uVar28 = (*puVar16 ^ uVar21) + (CONCAT44(uVar10,uVar4) ^ 0x46725deafcbcfbbe);
  uVar18 = CONCAT44(uVar20,DAT_182671c88);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar28 ^ uVar27;
  uVar13 = DAT_182671ee8;
  local_res18 = (byte)(uVar10 >> 0x18);
  *(ulonglong *)(lVar2 + -0xa70) = (uVar18 ^ 0x36895889758ca8ec) >> ((bVar17 ^ 0xc6) & 0x3f);
  uVar8 = DAT_182671c64;
  lVar2 = DAT_182671c40;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar18 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar30 + uVar28 ^ uVar27;
  uVar13 = DAT_182671e7c;
  uVar28 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar2 + -0x760) = uVar30 << ((local_res18 ^ 0x7a) & 0x3f) ^ uVar28;
  lVar3 = DAT_182671c40;
  uVar31 = CONCAT44(uVar13,uVar13);
  bVar17 = (byte)uVar5;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0xe5991ce7)) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x94f1042b)) ^ uVar32) >> ((bVar17 ^ 0x38) & 0x3f) ^ uVar31
  ;
  uVar5 = DAT_182671c54;
  uVar18 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x5b72039d)) =
       CONCAT44(DAT_182671c54,uVar10) ^ *(ulonglong *)(lVar3 + -0x628) ^ uVar31 ^ 0x2144be5cb564145d
  ;
  uVar4 = DAT_182671c84;
  uVar32 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x25270fe8)) =
       (*(ulonglong *)(lVar3 + -0x628) ^ uVar31 | *(ulonglong *)(lVar3 + -0x760) ^ uVar28) ^ uVar32;
  uVar13 = DAT_182671d04;
  *(ulonglong *)(lVar3 + -0xb20) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x23258708)) ^ uVar24 |
       *(ulonglong *)(lVar3 + -0x628) ^ uVar31;
  uVar33 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x6f279624)) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c94 ^ 0xf35c6ce6)) ^
       *(ulonglong *)(lVar3 + -0x228) ^ uVar33 ^ uVar32 ^ uVar27;
  uVar18 = CONCAT44(DAT_182671f30,DAT_182671f30);
  uVar34 = (uVar34 ^ *(ulonglong *)(lVar3 + -0x110)) + (*(ulonglong *)(lVar3 + -0x920) ^ uVar33) ^
           uVar18;
  uVar24 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar3 + -0x7c0) = uVar34;
  uVar30 = (*(ulonglong *)(lVar3 + -0x920) ^ uVar33) << (((byte)DAT_182671c60 ^ 0xe1) & 0x3f);
  uVar28 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar19 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar3 + -0xa60) = uVar30 ^ uVar24;
  uVar13 = DAT_182671f6c;
  uVar6 = DAT_182671c58;
  *(ulonglong *)(lVar3 + -0xa70) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0xc9b50ff3)) ^ uVar33) >> ((bVar17 ^ 0x35) & 0x3f) ^ uVar28
  ;
  uVar24 = CONCAT44(uVar13,uVar13);
  uVar19 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x2d01782b)) ^ uVar28 | uVar30) ^ uVar24;
  *(ulonglong *)(lVar3 + -0xd88) = uVar19;
  lVar2 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671d00;
  uVar28 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar19 ^ uVar28 ^ uVar24 ^ uVar34 ^ uVar18;
  uVar19 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar2 + -0x76c) = 0xabec56e4 >> ((byte)*(undefined4 *)(lVar2 + -0x54) & 0x1f);
  uVar4 = DAT_182671c70;
  uVar34 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar33 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0xf040c84)) ^ uVar29) +
           (*(ulonglong *)(lVar2 + -0x228) ^ uVar27) ^ uVar34;
  uVar19 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar2 + -0x2b0) = uVar33;
  uVar13 = DAT_182671f94;
  uVar30 = (uVar29 ^ *(ulonglong *)(lVar2 + -0x380)) << (((byte)uVar4 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar2 + -0x760) = uVar30 ^ uVar19;
  lVar2 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671d64;
  uVar27 = (uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0x380)) >> (((byte)uVar6 ^ 0x34) & 0x3f);
  puVar16 = (ulonglong *)(DAT_182671c40 + -0x9a0);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar27 ^ CONCAT44(uVar13,uVar13);
  *(uint *)(lVar2 + -0x61c) = *(uint *)(*puVar16 ^ uVar19) ^ DAT_182671f14;
  uVar13 = DAT_182671f48;
  uVar19 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  uVar27 = (uVar27 | uVar30) ^ uVar19;
  *(ulonglong *)(lVar2 + -0x628) = uVar27;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c94 ^ 0xf35c602e)) =
       uVar27 ^ uVar33 ^ uVar30 ^ uVar19 ^ uVar34;
  lVar2 = DAT_182671c40;
  puVar16 = (ulonglong *)(DAT_182671c40 + -0xb20);
  puVar22 = (ulonglong *)(DAT_182671c40 + -0x7c0);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       CONCAT44(uVar7,uVar4) ^ 0xa35402740203ca8 | 0x258ab2c8bb574217;
  uVar27 = (uVar30 ^ *puVar16) << 0x3a;
  uVar35 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0xb20)) + (uVar18 ^ *puVar22) ^ uVar35;
  uVar13 = DAT_182671d4c;
  *(ulonglong *)(lVar2 + -0x920) = uVar27 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar14 = DAT_182671f4c;
  uVar7 = DAT_182671c60;
  uVar18 = (uVar30 ^ *(ulonglong *)(lVar2 + -0xb20)) >> (((byte)uVar9 ^ 6) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa60) = uVar18 ^ CONCAT44(uVar13,uVar13);
  uVar19 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x9f046557)) = (uVar18 | uVar27) ^ uVar19;
  uVar13 = DAT_182671ed4;
  *(undefined8 *)(lVar2 + -0xd88) = 0x2f914c1;
  uVar4 = DAT_182671c50;
  uVar36 = CONCAT44(uVar13,uVar13);
  puVar22 = (ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xefbf95bf));
  uVar18 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0x228) =
       *puVar22 ^ uVar36 ^ uVar19 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x110);
  uVar27 = CONCAT44(DAT_182671e00,DAT_182671e00);
  uVar30 = (*(ulonglong *)(lVar2 + -0x888) ^ uVar28) << (((byte)uVar10 ^ 0x3b) & 0x3f);
  uVar19 = *(ulonglong *)(lVar2 - (uVar18 ^ 0x6f279db4));
  *(ulonglong *)(lVar2 + -0x760) = uVar30 ^ uVar26;
  uVar29 = (uVar19 ^ uVar34) + (*(ulonglong *)(lVar2 + -0x888) ^ uVar28) ^ uVar27;
  uVar19 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar2 + -0x380) = uVar29;
  uVar18 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x6f27978c)) >> 0x20 ^ uVar37) >> 10;
  *(ulonglong *)(lVar2 + -0xb08) = uVar18 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x628) = CONCAT44(uVar8,uVar10) ^ 0x186815fef0d9ab1d;
  uVar14 = DAT_182671f8c;
  uVar9 = DAT_182671c74;
  lVar2 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c74;
  uVar23 = DAT_182671c74 - DAT_182671c60;
  uVar19 = CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar30 = (uVar30 | uVar18) ^ uVar19;
  DAT_182671c68 = uVar23;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar30;
  uVar18 = CONCAT44(uVar14,uVar14);
  uVar26 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar29 = uVar30 ^ uVar18 ^ uVar19 ^ uVar27 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x7c0) = uVar29;
  uVar33 = (ulonglong)uVar23;
  *(ulonglong *)(lVar2 + -0xb20) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xefbf9edf)) ^ uVar35) + (uVar29 ^ uVar18) ^
       uVar26;
  uVar4 = DAT_182671c60;
  lVar2 = DAT_182671c40;
  bVar17 = (byte)uVar9 ^ 0x7c;
  uVar30 = CONCAT44(DAT_182671e68,DAT_182671e68);
  puVar16 = (ulonglong *)(DAT_182671c40 + -0x7c0);
  *(ulonglong *)(DAT_182671c40 + -0x920) = (uVar18 ^ uVar29) << (bVar17 & 0x3f) ^ uVar30;
  uVar19 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xba7560ed)) =
       (uVar18 ^ *puVar16) >> (((byte)uVar4 ^ 0xef) & 0x3f) ^ uVar19;
  uVar8 = DAT_182671cd0;
  uVar19 = (uVar30 ^ *(ulonglong *)(lVar2 + -0x920) | *(ulonglong *)(lVar2 + -0xa60) ^ uVar19) ^
           uVar21;
  *(ulonglong *)(lVar2 + -0xd88) = uVar19;
  lVar2 = DAT_182671c40;
  uVar30 = CONCAT44(uVar8,uVar8);
  *puVar22 = *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xaa35017c)) ^ uVar21 ^ uVar30 ^ uVar19 ^
             uVar26;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (*(ulonglong *)(lVar2 + -0x228) ^ uVar36) + (uVar27 ^ *(ulonglong *)(lVar2 + -0x380)) ^
       uVar35;
  uVar18 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar2 + -0x888) =
       ((ulonglong)DAT_182671f0c << 0x1c | (ulonglong)(DAT_182671f0c >> 4)) ^
       *(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xba756705)) >> 4;
  *(ulonglong *)(lVar2 + -0x628) =
       (*(ulonglong *)(lVar2 + -0x228) ^ uVar36) << (bVar17 & 0x3f) ^ uVar18;
  uVar19 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xaa350d3c)) =
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0xaa350874)) ^ uVar36) >> (((byte)uVar23 ^ 0xad) & 0x3f) ^
       uVar19;
  lVar2 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  puVar16 = (ulonglong *)(DAT_182671c40 + -0x2b0);
  uVar18 = (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xaa350c74)) ^ uVar18 |
           *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0xba756ded)) ^ uVar19) ^ uVar27;
  uVar21 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar18;
  uVar19 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xba756d65)) = *puVar16 ^ uVar21 ^ uVar18 ^ uVar27 ^ uVar35;
  uVar8 = DAT_182671f24;
  uVar27 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar19 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0xefbf94ef)) ^ uVar26) +
           (CONCAT44(uVar23,uVar9) ^ 0xdd1345075ee447a5) ^ uVar27;
  *(ulonglong *)(lVar2 + -0x920) = uVar19;
  lVar2 = DAT_182671c40;
  uVar18 = CONCAT44(uVar8,uVar8);
  uVar26 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0xd50)) = uVar18 ^ uVar19 ^ uVar27;
  uVar21 = (CONCAT44(uVar23,uVar23) ^ 0xa775364ad2389d90) +
           (uVar21 ^ *(ulonglong *)(lVar2 + -0x7e8)) ^ uVar31;
  *(ulonglong *)(lVar2 + -0xa60) = uVar21;
  *(ulonglong *)(lVar2 + -0x380) =
       (CONCAT44(uVar4,uVar9) ^ 0x697fba0888f04d6e) + (uVar35 ^ *(ulonglong *)(lVar2 + -0x110));
  uVar8 = DAT_182671d6c;
  uVar4 = DAT_182671c60;
  lVar3 = DAT_182671c40;
  uVar27 = CONCAT44(uVar9,DAT_182671c60);
  puVar16 = (ulonglong *)
            ((uVar26 ^ *(ulonglong *)(lVar2 + -0xd50)) + (uVar27 ^ 0xaa350a5cefbf9fce) * 8);
  *(ulonglong *)(DAT_182671c40 + -0x678) =
       (ulonglong)puVar16 ^ CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar12 = DAT_182671c88;
  uVar19 = (ulonglong)DAT_182671c88;
  *puVar16 = uVar21 ^ uVar18 ^ uVar31;
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar35) + (CONCAT44(uVar23,uVar9) ^ 0xcab27938f2b430f2) ^
       uVar21;
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0xca39de1)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xaa35070c)) ^ uVar26) +
       (CONCAT44(uVar23,uVar4) ^ 0xba756a8defbf9fcd) * 8 ^ uVar25;
  *(ulonglong *)(*(ulonglong *)(DAT_182671c40 + -0x910) ^ uVar25) =
       uVar21 ^ uVar18 ^ *(ulonglong *)(DAT_182671c40 + -0xd88);
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (uVar27 ^ 0x6ade7fd371686b0a) << (((byte)uVar4 ^ 0xef) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar21 = (CONCAT44(uVar23,DAT_182671c94) ^ 0x9abb5208e98695c1) +
           (*(ulonglong *)(DAT_182671c40 + -0xa70) ^ uVar30);
  uVar19 = (ulonglong)DAT_182671ee0;
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar21 ^ CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar4 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  *(byte *)(lVar2 + -0x53a) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x990) ^ uVar19) ^ (byte)DAT_182671f14;
  uVar11 = DAT_182671c84;
  uVar7 = DAT_182671c7c;
  puVar16 = (ulonglong *)
            ((*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c54 ^ 0xf040254)) ^ uVar26) +
            (CONCAT44(uVar4,uVar12) ^ 0x6f279f040ca394f2) * 8);
  *(ulonglong *)(DAT_182671c40 + -0x650) =
       (ulonglong)puVar16 ^ CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *puVar16 = uVar21 ^ uVar18;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x6f27992c)) =
       (CONCAT44(uVar11,uVar23) ^ 0xf8e3c2b52ae67a14) >> (((byte)uVar7 ^ 0xcb) & 0x3f);
  uVar21 = CONCAT44(DAT_182671e20,DAT_182671e20);
  puVar16 = (ulonglong *)
            ((CONCAT44(uVar20,uVar20) ^ 0x2d01725b2d01725b) * 0x60 + 0x20 +
            *(longlong *)(lVar3 - (uVar28 ^ 0xaa35018c)));
  *(uint *)(lVar3 + -0x444) = (DAT_182671c74 ^ 0x2724265c) - (DAT_182671c48 ^ 0x2997b77d);
  uVar19 = CONCAT44(uVar23,DAT_182671c5c);
  *(ulonglong *)(lVar3 + -0x588) = (ulonglong)puVar16 ^ uVar21;
  uVar13 = DAT_182671d5c;
  uVar7 = DAT_182671c70;
  *(ulonglong *)(lVar3 + -0x918) =
       *(longlong *)(lVar3 + -0x310) +
       ((uVar19 ^ 0xba756a8db5d308ef) + (uVar27 ^ 0xaa350a5cefbf9fcf) * 0xc) * 8 ^ uVar24;
  uVar8 = DAT_182671cd8;
  uVar19 = CONCAT44(uVar9,DAT_182671c88);
  uVar18 = CONCAT44(uVar13,uVar13);
  uVar27 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar3 + -0x760) = *puVar16 ^ uVar27 ^ uVar18;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(undefined8 *)(*(ulonglong *)(lVar3 + -0xb98) ^ uVar28) = 0x1269f5b2cd3b7b3b;
  puVar16 = (ulonglong *)
            ((uVar21 ^ *(ulonglong *)(lVar3 + -0x588)) + (uVar19 ^ 0xaa350a5c0ca394f0) * 8);
  uVar19 = CONCAT44(uVar5,DAT_182671c4c);
  *(ulonglong *)(lVar3 + -0xb88) = (ulonglong)puVar16 ^ CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar8 = DAT_182671e64;
  *(ulonglong *)(lVar3 + -0xb08) = *puVar16 ^ uVar28 ^ uVar27;
  *(ulonglong *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar3 + -0xac0)) =
       uVar19 ^ 0x43fa85300b7f9cf4;
  puVar16 = (ulonglong *)
            ((uVar21 ^ *(ulonglong *)(lVar3 + -0x588)) +
            (CONCAT44(uVar7,uVar10) ^ 0xc9b506d35b72012f) * 8);
  uVar19 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(lVar3 + -0x418) = (ulonglong)puVar16 ^ uVar35;
  uVar24 = CONCAT44(uVar7,DAT_182671c64);
  *(ulonglong *)(lVar3 + -0xb20) = uVar19 ^ *puVar16 ^ uVar27;
  *(ulonglong *)(CONCAT44(DAT_182671e60,DAT_182671e60) ^ *(ulonglong *)(lVar3 + -0x6e8)) =
       uVar24 ^ 0xbf697ad5198b2b11;
  puVar16 = (ulonglong *)((uVar21 ^ *(ulonglong *)(lVar3 + -0x588)) + 0x18);
  uVar24 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar19 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *(ulonglong *)(lVar3 + -0x138) = (ulonglong)puVar16 ^ uVar24;
  uVar8 = DAT_182671f34;
  uVar21 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x6f279554)) = uVar19 ^ *puVar16 ^ uVar27;
  *(ulonglong *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar3 + -0x140)) =
       CONCAT44(uVar6,uVar20) ^ 0xc43bbf2e2ddd2e6d;
  *(ulonglong *)(lVar3 + -0x7e8) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x6f27940c)) ^ uVar28) +
       (CONCAT44(DAT_182671c94,uVar23) ^ 0x17484a71f065d62f) ^ uVar34;
  local_60 = (byte)uVar14;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c58 ^ 0x25270910)) =
       (CONCAT44(uVar10,uVar9) ^ 0x737002b54b498835) >>
       ((local_60 ^ *(byte *)(lVar3 + -0x7c0)) & 0x3f);
  uVar19 = (CONCAT44(uVar11,uVar4) ^ 0x16b4448d9e739df2) + (*(ulonglong *)(lVar3 + -0x760) ^ uVar18)
  ;
  *(ulonglong *)(lVar3 + -0x380) = uVar19 ^ uVar32;
  uVar8 = DAT_182671fa0;
  *(int *)(lVar3 + -0x27c) = *(int *)(lVar3 + -0x6c0) << 4;
  *(ulonglong *)(lVar3 + -0xb18) = uVar19 + (*(ulonglong *)(lVar3 + -0x7e8) ^ uVar34) ^ uVar24;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (*(ulonglong *)(lVar3 + -0x7e8) ^ uVar34) << (((byte)uVar9 ^ 0x52) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar20;
  return;
}



############ FUN_ 180f748c0 size=5715 ############

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

void FUN_180f748c0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong lVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  uint uVar31;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_res18;
  byte local_f8;
  byte local_e8;
  ulonglong uVar32;
  ulonglong uVar41;
  
  uVar13 = DAT_182671c8c;
  uVar12 = DAT_182671c84;
  uVar11 = DAT_182671c68;
  uVar10 = DAT_182671c60;
  uVar9 = DAT_182671c54;
  lVar5 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c54;
  uVar33 = (ulonglong)DAT_182671c8c;
  uVar24 = (ulonglong)DAT_182671c68;
  uVar46 = (ulonglong)DAT_182671c84;
  uVar40 = DAT_182671c68 * DAT_182671c60;
  uVar41 = (ulonglong)uVar40;
  uVar22 = *(uint *)(&DAT_182613218 + DAT_1826721f4) ^ DAT_182671c8c;
  uVar20 = DAT_182671c54 * DAT_182671c8c;
  uVar35 = (ulonglong)uVar20;
  uVar31 = DAT_182671c84 << 0x10 | DAT_182671c84 >> 0x10;
  uVar32 = (ulonglong)uVar31;
  uVar19 = *(uint *)(&DAT_182613220 + DAT_1826721f4) ^ DAT_182671c54;
  uVar36 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar45 = CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar27 = (ulonglong)DAT_182671c60;
  DAT_182671c48 = uVar31;
  DAT_182671c78 = uVar20;
  DAT_182671c80 = uVar40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar31 ^ 0xdaebfb3e)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0xa0af9a2d)) ^
       CONCAT44(DAT_182671e7c,DAT_182671e7c)) + (uVar36 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) ^
       uVar45;
  uVar15 = DAT_182671cdc;
  uVar28 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar5 + -0x680) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x2b784c92)) ^ uVar36) << 0x25 ^ uVar28;
  uVar23 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x5c67ebf7)) =
       (uVar36 ^ *(ulonglong *)(lVar5 + -0xb18)) >> (((byte)uVar40 ^ 0x5d) & 0x3f) ^ uVar23;
  puVar1 = (ulonglong *)(lVar5 + -0x2b0);
  *(uint *)(lVar5 + -0x9dc) =
       (uVar12 ^ 0xd512de2e) << ((byte)*(undefined4 *)(lVar5 - (uVar35 ^ 0xa0af9889)) & 0x1f);
  uVar36 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  uVar23 = (*puVar1 ^ uVar23 | uVar28 ^ *(ulonglong *)(lVar5 + -0x680)) ^ uVar36;
  *(ulonglong *)(lVar5 + -0x110) = uVar23;
  uVar15 = DAT_182671ce8;
  lVar5 = DAT_182671c40;
  bVar18 = (byte)(uVar12 >> 0x10);
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       (CONCAT44(uVar12,uVar10) ^ 0x3cf21037223a6ec8) << ((bVar18 ^ 0xa1) & 0x3f);
  uVar8 = DAT_182671f28;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar25 = (ulonglong)DAT_182671f28;
  *(ulonglong *)(lVar5 + -0x8f0) =
       *(ulonglong *)(lVar5 + -0x380) ^ uVar37 ^ uVar23 ^ uVar36 ^ uVar45;
  uVar42 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x7b2d7b6b)) =
       (CONCAT44(uVar11,uVar12) ^ 0x8114834bb25d03c6) -
       (CONCAT44(uVar40,uVar20) ^ 0xff07ffde97539e07);
  uVar14 = DAT_182671c90;
  uVar8 = DAT_182671c58;
  uVar36 = (ulonglong)DAT_182671c58;
  uVar39 = (ulonglong)DAT_182671c90;
  uVar21 = DAT_182671c90 + DAT_182671c58;
  uVar34 = (ulonglong)uVar21;
  DAT_182671c7c = uVar21;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       (CONCAT44(DAT_182671c58,uVar21) ^ 0xc63adfa0b2ac17d1) +
       (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0x8f0)) ^ uVar42;
  uVar15 = DAT_182671ca4;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x8670a5df)) =
       (CONCAT44(uVar21,uVar14) ^ 0xd0131c864795d8f5) +
       (CONCAT44(uVar14,uVar8) ^ 0xb1acda9314896962);
  uVar16 = DAT_182671ddc;
  uVar23 = CONCAT44(DAT_182671f04,DAT_182671f04);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xc18);
  *puVar2 = (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(DAT_182671c40 + -0x888)) +
            (CONCAT44(uVar8,uVar40) ^ 0xe4f31c876845e3ee) ^ uVar23;
  lVar5 = DAT_182671c40;
  uVar29 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x5c67eeaf)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0xf8bed6f3)) ^ uVar23) +
       (*(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x2b784dda)) ^ uVar42) ^ uVar29;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x2b784fa2)) =
       (uVar28 ^ *(ulonglong *)(lVar5 + -0x680)) << (((byte)uVar40 ^ 0x6d) & 0x3f);
  uVar44 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  puVar3 = (ulonglong *)(lVar5 + -0x5e8);
  uVar37 = (uVar42 ^ *(ulonglong *)(lVar5 + -0xa50)) << ((bVar18 ^ 0xa7) & 0x3f);
  *puVar3 = uVar37 ^ uVar44;
  uVar15 = DAT_182671e90;
  uVar23 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0xa0af94c5)) >> 0x20 ^ uVar25) >> 7;
  *(ulonglong *)(lVar5 + -0xa08) = uVar23 ^ CONCAT44(DAT_182671d40,DAT_182671d40);
  lVar5 = DAT_182671c40;
  uVar28 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = (uVar23 | uVar37) ^ uVar28;
  uVar15 = DAT_182671fac;
  puVar4 = (ulonglong *)(lVar5 + -0x628);
  *puVar4 = *(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0x8670a727)) ^ uVar29 ^ 0xd1ee68e94dc8c24a;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar38 = CONCAT44(DAT_182671efc,DAT_182671efc);
  *(ulonglong *)(lVar5 + -0xb08) =
       *(ulonglong *)(lVar5 - (uVar36 ^ 0x98a3bbce)) ^ uVar37 ^ uVar28 ^ uVar29 ^
       *(ulonglong *)(lVar5 + -0x7e8);
  uVar16 = DAT_182671ee0;
  *(ulonglong *)(lVar5 + -0xa70) =
       (CONCAT44(DAT_182671d18,DAT_182671d18) ^ *(ulonglong *)(lVar5 + -0xda8)) +
       (CONCAT44(uVar10,uVar10) ^ 0x52eb9c03da2c4577) ^ uVar38;
  uVar15 = DAT_182671d34;
  uVar23 = CONCAT44(uVar16,uVar16);
  puVar30 = (ulonglong *)(lVar5 - (uVar39 ^ 0x50aedd2a));
  *puVar30 = (*(ulonglong *)(lVar5 + -0x380) ^ uVar45) +
             (CONCAT44(uVar10,uVar8) ^ 0xa549031419937b83) ^ uVar23;
  uVar16 = DAT_182671ef8;
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x4b8) =
       (uVar23 ^ *(ulonglong *)(lVar5 + -0x760)) + (uVar38 ^ *(ulonglong *)(lVar5 + -0xa70)) ^
       uVar25;
  uVar42 = CONCAT44(uVar16,uVar16);
  uVar23 = *(ulonglong *)(lVar5 - (uVar41 ^ 0xe7fe7b36));
  *(int *)(lVar5 + -0x4ac) = *(int *)(lVar5 + -0x634) << (((byte)uVar12 ^ 0xe3) & 0x1f);
  uVar28 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *(ulonglong *)(lVar5 + -0xb18) = (uVar23 ^ uVar38) << 0x21 ^ uVar42;
  local_f8 = (byte)uVar9;
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar34 ^ 0xe9529810)) ^ uVar38) >> ((local_f8 ^ 0x44) & 0x3f) ^
            uVar28;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xa0af9a9d)) =
       *(ulonglong *)(lVar5 - (uVar41 ^ 0xe7fe73f6)) ^ uVar28 |
       CONCAT44(uVar14,uVar31) ^ 0xf6eaefb7d9e760b8;
  uVar15 = DAT_182671cd8;
  uVar23 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar28 = (uVar28 ^ *puVar1 | uVar42 ^ *(ulonglong *)(lVar5 + -0xb18)) ^ uVar23;
  *(ulonglong *)(lVar5 + -0x110) = uVar28;
  lVar6 = DAT_182671c40;
  uVar42 = CONCAT44(uVar15,uVar15);
  uVar23 = uVar42 ^ uVar28 ^ uVar23 ^ uVar25 ^ *(ulonglong *)(DAT_182671c40 + -0x4b8);
  puVar26 = (ulonglong *)(DAT_182671c40 + -0x7e8);
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar23;
  uVar29 = (uVar29 ^ *puVar26) + (uVar42 ^ uVar23) ^ uVar44;
  *(ulonglong *)(lVar6 + -0x8f0) = uVar29;
  *(ulonglong *)(lVar6 + -0x510) = CONCAT44(uVar20,uVar10) ^ uVar42 ^ uVar23 ^ 0x49fd7338eabd0047;
  uVar15 = DAT_182671d14;
  lVar7 = DAT_182671c40;
  uVar23 = (*(ulonglong *)(lVar6 - (uVar24 ^ 0x5c67e977)) ^ uVar42) <<
           (((byte)uVar21 ^ 0x4e) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar23 ^ CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar28 = (*(ulonglong *)(lVar7 - (uVar46 ^ 0xf8bedadb)) ^ uVar42) >> ((local_f8 ^ 0x49) & 0x3f);
  uVar45 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *puVar2 = uVar28 ^ CONCAT44(uVar15,uVar15);
  uVar23 = (uVar28 | uVar23) ^ uVar45;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar23;
  *(ulonglong *)(DAT_182671c40 + -0x828) =
       (CONCAT44(uVar12,uVar13) ^ 0x58d523af1e118515) << ((local_f8 ^ 0x7a) & 0x3f);
  lVar6 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  puVar26 = (ulonglong *)(DAT_182671c40 + -0x370);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar28 ^ uVar45 ^ uVar44 ^ uVar29 ^ uVar23;
  *(byte *)(lVar6 + -0xb21) = *(byte *)(*puVar26 ^ (ulonglong)DAT_182671d80) ^ (byte)DAT_182671f14;
  uVar29 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *puVar3 = (*(ulonglong *)(lVar6 - (uVar34 ^ 0xe9529968)) ^ uVar37) +
            (*(ulonglong *)(lVar6 - (uVar43 ^ 0x7b2d7fe3)) ^ uVar25) ^ uVar29;
  uVar16 = DAT_182671e94;
  *(ulonglong *)(lVar6 + -0xa08) =
       (CONCAT44(uVar40,uVar31) ^ 0x498a01f62d1bbabf) +
       (CONCAT44(uVar40,uVar8) ^ 0x1f6d2901bc5d9710);
  uVar15 = DAT_182671e04;
  local_res18 = (byte)uVar20;
  uVar42 = CONCAT44(uVar16,uVar16);
  uVar23 = (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0xb08)) << ((local_res18 ^ 0x99) & 0x3f);
  *puVar4 = uVar23 ^ uVar42;
  lVar6 = DAT_182671c40;
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0xb08)) >> (((byte)uVar13 ^ 0xfb) & 0x3f) ^ uVar25;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(lVar6 - (uVar33 ^ 0x8670ad67)) =
       (CONCAT44(uVar8,uVar31) ^ 0x3e841b355e3d25fe) - uVar23;
  uVar17 = DAT_182671f10;
  lVar6 = DAT_182671c40;
  uVar25 = uVar25 ^ *(ulonglong *)(lVar7 + -0x3d8);
  uVar23 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  *(ulonglong *)(lVar7 + -0x380) = (uVar42 ^ *puVar4 | uVar25) ^ uVar23;
  uVar37 = CONCAT44(uVar17,uVar17);
  bVar18 = (byte)uVar11;
  *puVar30 = uVar25 << ((bVar18 ^ 0x5f) & 0x3f);
  *(ulonglong *)(lVar6 - (uVar24 ^ 0x5c67e337)) =
       uVar29 ^ *(ulonglong *)(lVar6 + -0x380) ^ *puVar3 ^ uVar37 ^ uVar23;
  uVar15 = DAT_182671e84;
  *(ulonglong *)(lVar6 + -0x408) =
       (CONCAT44(uVar9,uVar21) ^ 0xf06c02ac2c5a6559) +
       (CONCAT44(uVar12,uVar12) ^ 0x4bec6529c3154711);
  uVar42 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xe7fe7a5e)) =
       (*(ulonglong *)(lVar6 + -0xa70) ^ uVar37) + (uVar44 ^ *(ulonglong *)(lVar6 + -0x8f0)) ^
       uVar42;
  uVar38 = (*(ulonglong *)(lVar6 + -0xa70) ^ uVar37) << 0x3a;
  *puVar1 = uVar38 ^ CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar15 = DAT_182671e88;
  uVar23 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *(ulonglong *)(lVar6 + -0x110) =
       *(ulonglong *)(lVar6 - (uVar39 ^ 0x50aed03a)) >> 6 ^
       ((ulonglong)uVar17 << 0x1a | (ulonglong)(uVar17 >> 6)) ^ uVar23;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar25 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar6 + -0x7e8) =
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0x5c67e857)) ^ uVar23 | uVar38) ^ uVar37;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x2b78429a)) =
       *(ulonglong *)(lVar6 - (uVar35 ^ 0xa0af997d)) ^ *(ulonglong *)(lVar6 + -0xb18) ^ uVar25 ^
       uVar37 ^ uVar42;
  uVar37 = uVar28 ^ *(ulonglong *)(lVar6 + -0xa50);
  uVar44 = CONCAT44(DAT_182671d00,DAT_182671d00);
  uVar38 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar6 + -0x30) = (uVar29 ^ *puVar3) + uVar37 ^ uVar44;
  uVar15 = _DAT_182671cf0;
  local_e8 = (byte)uVar8;
  *puVar2 = (*(ulonglong *)(lVar6 - (uVar33 ^ 0x8670aa9f)) ^ uVar28) << ((bVar18 ^ 0x51) & 0x3f) ^
            uVar38;
  lVar6 = DAT_182671c40;
  uVar23 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x50aed2c2)) =
       uVar37 >> ((local_e8 ^ 0x3c) & 0x3f) ^ uVar23;
  lVar7 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xdaebf096)) =
       (*(ulonglong *)(lVar6 + -0x888) ^ uVar23 | *puVar2 ^ uVar38) ^ uVar37;
  uVar29 = CONCAT44(DAT_182671de4,DAT_182671de4);
  *(ulonglong *)(lVar7 - (uVar35 ^ 0xa0af9815)) =
       *(ulonglong *)(lVar7 + -0x828) ^ *(ulonglong *)(lVar7 + -0x30) ^ uVar29 ^ uVar37 ^ uVar44;
  uVar37 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  puVar26 = (ulonglong *)(lVar7 - (uVar33 ^ 0x8670a477));
  uVar38 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *puVar26 = (*(ulonglong *)(lVar7 + -0x680) ^ uVar29) + (*(ulonglong *)(lVar7 + -0xb18) ^ uVar42) ^
             uVar37;
  lVar6 = DAT_182671c40;
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0x680);
  *(ulonglong *)(lVar7 + -0xa08) =
       (*(ulonglong *)(lVar7 + -0x680) ^ uVar29) << (((byte)uVar13 ^ 0xef) & 0x3f) ^ uVar38;
  uVar42 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar6 - (uVar32 ^ 0xdaebf3b6)) =
       (uVar23 ^ uVar29) >> ((local_e8 ^ 0x36) & 0x3f) ^ uVar42;
  uVar15 = DAT_182671d38;
  uVar33 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar23 = (*(ulonglong *)(lVar6 + -0xb08) ^ uVar42 | *(ulonglong *)(lVar6 + -0xa08) ^ uVar38) ^
           uVar33;
  *(ulonglong *)(lVar6 + -0xda8) = uVar23;
  uVar38 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x7b2d7d73)) =
       *(ulonglong *)(lVar6 + -0x4b8) ^ uVar38 ^ uVar23 ^ uVar33 ^ uVar37;
  uVar15 = DAT_182671eb8;
  *(ulonglong *)(lVar6 + -0x3d8) =
       *(ulonglong *)(lVar6 - (uVar27 ^ 0x2b784c82)) ^ uVar42 |
       CONCAT44(uVar9,uVar12) ^ 0xb28e96d71694ec6c;
  uVar33 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xe7fe7626)) =
       (*(ulonglong *)(lVar6 + -0x30) ^ uVar44) + (uVar25 ^ *(ulonglong *)(lVar6 + -0x510)) ^ uVar33
  ;
  uVar43 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xe7fe72c6)) =
       (uVar25 ^ *(ulonglong *)(lVar6 + -0x510)) << 0x20 ^ uVar43;
  uVar15 = DAT_182671cac;
  uVar23 = (*(ulonglong *)(lVar6 - (uVar39 ^ 0x50aedf5a)) ^ uVar25) >> ((local_res18 ^ 0xb5) & 0x3f)
  ;
  *(ulonglong *)(lVar6 + -0x408) = uVar23 ^ CONCAT44(DAT_182671d10,DAT_182671d10);
  lVar6 = DAT_182671c40;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar23 = (*(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0xf8bed96b)) ^ uVar43 | uVar23) ^ uVar29;
  uVar25 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(DAT_182671c40 + -0x8f0) = uVar23;
  uVar23 = *(ulonglong *)(lVar6 - (uVar24 ^ 0x5c67ee27)) ^ uVar23 ^ uVar25 ^ uVar29 ^ uVar33;
  uVar29 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar6 + -0xa70) = uVar23;
  uVar42 = (CONCAT44(uVar31,uVar21) ^ 0x54dabc20686251f5) + (uVar23 ^ uVar25);
  uVar23 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *puVar1 = uVar42 ^ uVar29;
  uVar37 = (uVar37 ^ *puVar26) + (CONCAT44(uVar40,uVar8) ^ 0x80985ecc6c72f5ef);
  *(ulonglong *)(lVar6 + -0x110) = uVar37 ^ uVar23;
  uVar15 = DAT_182671ea0;
  uVar23 = *puVar1;
  uVar25 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar6 + -0x7e8) = uVar37 + uVar42 ^ uVar25;
  lVar6 = DAT_182671c40;
  uVar43 = CONCAT44(uVar15,uVar15);
  *puVar3 = uVar42 << (((byte)uVar14 ^ 0x44) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar6 + -0xa50) = (uVar34 ^ 0x6ddc3280) >> 5;
  uVar34 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xa0af928d)) =
       (uVar23 ^ uVar29) >> ((local_e8 ^ 0x24) & 0x3f) ^ uVar34;
  uVar15 = DAT_182671dc8;
  uVar8 = DAT_182671c4c;
  uVar37 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar42 = (ulonglong)DAT_182671c4c;
  uVar23 = (*puVar2 ^ uVar34 | *puVar3 ^ uVar43) ^ uVar37;
  *(ulonglong *)(lVar6 + -0x888) = uVar23;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar42 ^ 0xe427a1dd)) =
       *(ulonglong *)(lVar6 + -0x7e8) ^ uVar29 ^ uVar23 ^ uVar37 ^ uVar25;
  uVar43 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar42 = (CONCAT44(uVar12,uVar21) ^ 0xd870e26ef3886ca5) + (*puVar4 ^ uVar38);
  *(ulonglong *)(lVar6 + -0xb18) = uVar42 ^ uVar43;
  uVar15 = DAT_182671db8;
  uVar34 = (ulonglong)DAT_182671c70;
  uVar23 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0xdaebffde)) ^ uVar33) +
           (CONCAT44(uVar20,uVar13) ^ 0x9c765a11a6f96014);
  *(ulonglong *)(lVar6 + -0x680) = uVar23 ^ uVar45;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar39 ^ 0x50aed042)) = uVar42 + uVar23 ^ uVar37;
  uVar39 = (uVar43 ^ *(ulonglong *)(lVar6 + -0xb18)) >> (((byte)uVar12 ^ 0xdb) & 0x3f);
  uVar23 = (*(ulonglong *)(lVar6 - (uVar34 ^ 0x3b1c3af3)) ^ uVar43) << 0x10;
  *(ulonglong *)(lVar6 + -0xb08) = uVar39 ^ CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar6 + -0xda8) = uVar23 ^ uVar28;
  *(ulonglong *)(lVar6 + -0x3d8) =
       CONCAT44(uVar10,uVar9) ^ *(ulonglong *)(lVar6 + -0xa08) ^ uVar37 ^ 0xf4738c3ade628f6d;
  uVar34 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *(ulonglong *)(DAT_182671c40 + -0x30) = (uVar23 | uVar39) ^ uVar34;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       CONCAT44(uVar13,DAT_182671c50) ^ 0x3b6042e328ed3f87 |
       CONCAT44(uVar14,uVar8) ^ 0xb8aadcedd6e32b39;
  uVar15 = DAT_182671ebc;
  uVar39 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar23 = *(ulonglong *)(lVar6 - (uVar32 ^ 0xdaebf88e)) ^ *(ulonglong *)(lVar6 + -0xa08) ^ uVar39 ^
           uVar34 ^ uVar37;
  *(ulonglong *)(lVar6 + -0x380) = uVar23;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xe7fe754e)) =
       (uVar23 ^ uVar39) + (*(ulonglong *)(lVar6 + -0x7e8) ^ uVar25) ^ uVar34;
  uVar15 = DAT_182671f94;
  uVar28 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar6 + -0x8f0) =
       (*(ulonglong *)(lVar6 - (uVar36 ^ 0x98a3bb96)) ^ uVar39) << 0x34 ^ uVar28;
  uVar16 = DAT_182671f98;
  uVar8 = DAT_182671c88;
  uVar23 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0xa70) =
       (*(ulonglong *)(lVar6 + -0x380) ^ uVar39) >> ((bVar18 ^ 0x4b) & 0x3f) ^ uVar23;
  uVar36 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0x4b8) =
       (*(ulonglong *)(lVar6 - (uVar27 ^ 0x2b784f7a)) ^ uVar28 |
       *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x4b202a72)) ^ uVar23) ^ uVar36;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c94 ^ 0x130749d)) =
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c74 ^ 0x749220cc)) ^
       *(ulonglong *)(lVar6 - (uVar46 ^ 0xf8bedee3)) ^ CONCAT44(DAT_182671fb4,DAT_182671fb4) ^
       uVar36 ^ uVar34;
  uVar29 = *(ulonglong *)(lVar6 + -0x828) ^ uVar29;
  *(ulonglong *)(lVar6 + -0xa50) = CONCAT44(uVar11,uVar9) ^ 0xfc4ac0e2e7647f79;
  uVar27 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *puVar1 = (*(ulonglong *)(lVar6 + -0xa08) ^ uVar37) + uVar29 ^ uVar27;
  uVar36 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *puVar3 = uVar29 << ((bVar18 ^ 0x7e) & 0x3f) ^ uVar36;
  uVar23 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar6 - (uVar24 ^ 0x5c67e55f)) = uVar29 >> (((byte)uVar8 ^ 5) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xa0af961d)) =
       (*puVar3 ^ uVar36) >> ((byte)*(undefined8 *)(lVar6 + -0xa50) & 0x3f);
  uVar34 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar35 = (*puVar2 ^ uVar23 | *puVar3 ^ uVar36) ^ uVar34;
  uVar36 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar23 = *puVar1;
  *puVar4 = uVar35;
  *(ulonglong *)(lVar5 + -0x760) = uVar36 ^ uVar23 ^ uVar35 ^ uVar34 ^ uVar27;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar22;
  return;
}



############ FUN_ 180fe0610 size=3962 ############

void FUN_180fe0610(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  byte bVar6;
  byte bVar7;
  uint uVar8;
  uint uVar9;
  uint *puVar10;
  ulonglong uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte *pbVar19;
  uint uVar20;
  uint *puVar21;
  uint uVar22;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint uVar33;
  byte local_68;
  ulonglong uVar23;
  
  uVar30 = DAT_182671c90;
  uVar20 = DAT_182671c8c;
  uVar14 = DAT_182671c54;
  uVar9 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar15 = (ulonglong)DAT_182671c8c;
  uVar33 = DAT_182671c8c - DAT_182671c90;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182672040);
  uVar22 = DAT_182671c54 << 0x10 | DAT_182671c54 >> 0x10;
  uVar23 = (ulonglong)uVar22;
  uVar8 = *(uint *)(&DAT_182613220 + DAT_182672040) ^ DAT_182671c90;
  uVar24 = DAT_182671c48 + DAT_182671c60;
  uVar16 = DAT_182671ce8 ^ *(uint *)(DAT_182671c40 + -0x684);
  bVar2 = (byte)DAT_182671c54;
  DAT_182671c50 = uVar33;
  DAT_182671c6c = uVar24;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       *(ulonglong *)(DAT_182671c40 + -0x4b8) >>
       ((byte)*(undefined8 *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0x3c10e98)) & 0x3f);
  uVar17 = uVar16 << ((bVar2 ^ 0xe6) & 0x1f) ^ DAT_182671f60;
  *(uint *)(lVar3 + -0x94) = uVar17;
  uVar16 = DAT_182671e54;
  uVar17 = (*(uint *)(lVar3 - ((ulonglong)uVar9 ^ 0x71539d3a)) ^ DAT_182671d8c) -
           (uVar17 ^ DAT_182671f60) ^ DAT_182671f3c;
  uVar9 = *(uint *)(lVar3 + -0x784) ^ DAT_182671cf4;
  *(uint *)(lVar3 + -0x94c) = uVar17;
  *(uint *)(lVar3 + -0x58c) = (uVar17 ^ DAT_182671f3c) * uVar9 ^ DAT_182671df8;
  uVar9 = (*(uint *)(lVar3 - ((ulonglong)uVar22 ^ 0xeef70f46)) ^ DAT_182671ce8) *
          (uVar24 ^ 0xc620c78) ^ DAT_182671eac;
  bVar2 = (byte)DAT_182671c48;
  *(uint *)(lVar3 + -0xae4) = uVar9;
  uVar9 = (*(uint *)(lVar3 - ((ulonglong)DAT_182671c60 ^ 0x9b0e74df)) ^ DAT_182671df8) +
          (uVar9 ^ DAT_182671eac);
  *(uint *)(lVar3 + -0x1c8) = uVar9 ^ uVar16;
  uVar27 = uVar9 << ((bVar2 ^ 3) & 0x1f) ^ DAT_182671e30;
  bVar2 = (byte)DAT_182671c48;
  *(uint *)(lVar3 + -0x9dc) = uVar27;
  uVar17 = DAT_182671f0c;
  *(uint *)(lVar3 + -0x61c) =
       (uVar16 ^ *(uint *)(lVar3 + -0x1c8)) >> ((bVar2 ^ 0x1d) & 0x1f) ^ DAT_182671f0c;
  uVar28 = DAT_182671f88;
  uVar18 = DAT_182671f20;
  uVar9 = *(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4;
  uVar27 = uVar27 ^ DAT_182671e30;
  *(ulonglong *)(lVar3 + -0xa70) =
       (CONCAT44(uVar20,uVar33) ^ 0x1d94e4e1bf674d95) >>
       ((byte)*(undefined8 *)(lVar3 + -0x30) & 0x3f);
  uVar16 = (*(uint *)(lVar3 - (uVar23 ^ 0xeef70fde)) ^ uVar17 | uVar27) ^ DAT_182671e9c;
  uVar9 = uVar9 + (*(uint *)(lVar3 + -0x784) ^ DAT_182671cf4) ^ DAT_182671f24;
  *(uint *)(lVar3 + -0x76c) = uVar9;
  lVar4 = DAT_182671c40;
  uVar9 = uVar9 ^ DAT_182671d20 ^ DAT_182671f24;
  uVar11 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar3 + -0x54) = uVar16;
  uVar16 = uVar16 ^ DAT_182671e48 ^ DAT_182671e9c;
  *(uint *)(lVar3 + -0x6c0) = uVar9;
  uVar9 = uVar9 ^ uVar28 ^ DAT_182671d20;
  *(uint *)(lVar3 + -0x4ac) = uVar16;
  uVar16 = uVar16 ^ DAT_182671ec4 ^ DAT_182671e48;
  *(uint *)(lVar3 + -0x644) = uVar9;
  uVar25 = (ulonglong)DAT_182671cd0;
  *(uint *)(lVar3 + -0x634) = uVar16;
  *(ulonglong *)(lVar4 - (uVar11 ^ 0x7153972e)) =
       (CONCAT44(DAT_182671c60,uVar24) ^ 0x9b0e71530c620c61) * 0x20 +
       (CONCAT44(uVar20,uVar14) ^ 0x3c108b009c2eef3) + *(longlong *)(lVar4 + -0x9a8) ^ uVar25;
  uVar9 = *(uint *)(lVar4 + -0x634) ^ DAT_182671ec4;
  uVar16 = DAT_182671dd4 & 0xff;
  *(byte *)(lVar4 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xc20) ^ uVar25) ^ (byte)DAT_182671e0c ^
       (byte)DAT_182671dd4;
  uVar16 = *(byte *)(lVar4 - ((ulonglong)uVar24 ^ 0xc620da2)) ^ uVar16;
  *(uint *)(lVar4 + -0x94) = uVar16 ^ uVar18;
  uVar26 = uVar9 + (uVar22 ^ 0x72b51bdc) ^ DAT_182671e5c;
  *(uint *)(lVar4 + -0x94c) = uVar26;
  uVar9 = DAT_182671e10;
  uVar26 = uVar26 ^ DAT_182671e5c;
  bVar12 = (byte)uVar30;
  uVar27 = uVar16 << (bVar12 & 0x1f) ^ DAT_182671dac;
  *(undefined8 *)(lVar4 + -0xf0) = 0x354640236559;
  *(uint *)(lVar4 + -0x684) = uVar27;
  uVar16 = DAT_182671e28;
  puVar21 = (uint *)(lVar4 - ((ulonglong)uVar24 ^ 0xc6209ed));
  *(uint *)(lVar4 - ((ulonglong)uVar14 ^ 0x9c2eb7b)) =
       uVar26 - (uVar27 ^ DAT_182671dac) ^ DAT_182671db4;
  uVar27 = (*puVar21 ^ DAT_182671db4) * (*(uint *)(lVar4 + -0x644) ^ uVar28);
  puVar10 = (uint *)(DAT_182671c40 - ((ulonglong)uVar30 ^ 0x8b0871c5));
  *(uint *)(lVar4 + -0xae4) = uVar27 ^ uVar16;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x1c8) =
       (*puVar10 ^ uVar18) * (DAT_182671c6c ^ 0xc620c65) ^ DAT_182671d50;
  uVar24 = DAT_182671de4;
  uVar27 = (*(uint *)(lVar3 - ((ulonglong)DAT_182671c60 ^ 0x9b0e709b)) ^ DAT_182671d50) + uVar27;
  *(uint *)(lVar3 + -0x9dc) = uVar27 ^ DAT_182671de4;
  uVar27 = uVar27 << (((byte)uVar33 ^ 0x52) & 0x1f);
  uVar11 = (ulonglong)DAT_182671d24;
  *(uint *)(lVar3 + -0x61c) = uVar27 ^ uVar9;
  bVar6 = (byte)DAT_182671e0c;
  uVar24 = (*(uint *)(lVar3 + -0x9dc) ^ uVar24) >> ((bVar12 ^ 0x42) & 0x1f) ^ DAT_182671e04;
  *(uint *)(lVar3 + -0x784) = uVar24;
  *(uint *)(lVar3 + -0x76c) = (uVar24 ^ DAT_182671e04 | uVar27) ^ DAT_182671d94;
  uVar16 = DAT_182671cb8;
  *(byte *)(lVar3 - ((ulonglong)DAT_182671c48 ^ 0x71539acd)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x5a0) ^ uVar11) ^ bVar6;
  uVar18 = DAT_182671e24 ^ DAT_182671f60;
  uVar9 = (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar3 + -0x644) ^ uVar28) ^
          DAT_182671f18;
  uVar24 = *(uint *)(lVar3 + -0x76c) ^ DAT_182671d94 ^ DAT_182671f60;
  *(uint *)(lVar3 + -0x4ac) = uVar24;
  *(uint *)(lVar3 + -0x54) = uVar9;
  uVar9 = uVar9 ^ DAT_182671cbc ^ DAT_182671f18;
  *(uint *)(lVar3 + -0x6c0) = uVar9;
  *(uint *)(lVar3 + -0x634) = uVar9 ^ uVar16 ^ DAT_182671cbc;
  uVar11 = (ulonglong)DAT_182671f94;
  *(uint *)(lVar3 - ((ulonglong)uVar30 ^ 0x8b08781d)) = uVar18 ^ uVar24;
  lVar4 = DAT_182671c40;
  pbVar19 = (byte *)((CONCAT44(uVar14,uVar33) ^ 0x9c2eef778b8975f) * 0x20 +
                     (CONCAT44(uVar22,uVar20) ^ 0xeef709c203c108bf) + *(longlong *)(lVar3 + -0x9a8))
  ;
  *(ulonglong *)(lVar3 + -0x170) = (ulonglong)pbVar19 ^ uVar11;
  bVar2 = (byte)DAT_182671cf8;
  bVar7 = *pbVar19 ^ (byte)DAT_182671cf8 ^ bVar6;
  *(byte *)(lVar3 + -0x1c3) = bVar7;
  uVar20 = DAT_182671dd8;
  uVar28 = (uint)(bVar7 ^ bVar2);
  *(uint *)(lVar4 + -0x684) = uVar28 ^ DAT_182671dd8;
  uVar24 = DAT_182671c48;
  *(byte *)(lVar4 + -0x1c3) = *pbVar19 ^ bVar6;
  *(uint *)(lVar4 + -0x58c) =
       (*(uint *)(lVar4 - (uVar23 ^ 0xeef7008e)) ^ DAT_182671e24) + (DAT_182671c6c ^ 0x90201e7f) ^
       DAT_182671d2c;
  uVar30 = DAT_182671e8c;
  uVar9 = DAT_182671c68;
  uVar25 = (ulonglong)DAT_182671c68;
  uVar18 = (*(uint *)(lVar4 - ((ulonglong)uVar33 ^ 0x78b891db)) ^ uVar20) <<
           (((byte)uVar24 ^ 0x1f) & 0x1f);
  *(uint *)(lVar4 + -0x94) = uVar18 ^ uVar17;
  uVar20 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  uVar18 = (*puVar21 ^ DAT_182671d2c) - uVar18;
  *(uint *)(DAT_182671c40 + -0xae4) = uVar18 ^ uVar30;
  uVar30 = DAT_182671d48;
  bVar2 = (byte)uVar20;
  bVar13 = bVar2 ^ 0x5e;
  uVar18 = (*(uint *)(lVar3 - ((ulonglong)DAT_182671c60 ^ 0x9b0e7767)) ^ uVar16) * uVar18;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar33,uVar24) ^ 0xc9171d204d8761fe) >> ((bVar12 ^ 0x51) & 0x3f);
  *(uint *)(lVar3 + -0x1c8) = uVar18 ^ uVar30;
  uVar24 = DAT_182671f7c;
  uVar30 = uVar28 * (uVar22 ^ 0xeef709cd) ^ DAT_182671ef0;
  *(uint *)(lVar3 + -0x9dc) = uVar30;
  uVar18 = (uVar30 ^ DAT_182671ef0) + uVar18;
  *(uint *)(lVar3 + -0x61c) = uVar18 ^ uVar24;
  uVar5 = DAT_182671c78;
  *(uint *)(lVar3 - ((ulonglong)uVar14 ^ 0x9c2e973)) = uVar18 << (bVar13 & 0x1f) ^ DAT_182671cd8;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x80a2020c)) =
       (uVar24 ^ *(uint *)(lVar3 + -0x61c)) >> (((byte)uVar5 ^ 0x72) & 0x1f) ^ DAT_182671e80;
  *(uint *)(lVar3 - (uVar15 ^ 0x3c108e4)) =
       (*(uint *)(lVar3 + -0x644) ^ DAT_182671e80 | *(uint *)(lVar3 + -0x784) ^ DAT_182671cd8) ^
       DAT_182671c9c;
  uVar17 = DAT_182671dc0;
  uVar24 = DAT_182671c58;
  lVar4 = DAT_182671c40;
  uVar15 = (ulonglong)DAT_182671c58;
  puVar10 = (uint *)(lVar3 - (uVar25 ^ 0x81808184));
  uVar14 = (*(uint *)(lVar3 - (uVar23 ^ 0xeef70ff6)) ^ uVar16) + (DAT_182671dd4 ^ *puVar10) ^
           DAT_182671ca0;
  uVar28 = DAT_182671c58 - uVar9;
  uVar30 = DAT_182671edc ^ DAT_182671ca0 ^ uVar14;
  *(uint *)(lVar3 + -0x76c) = uVar14;
  DAT_182671c4c = uVar28;
  *(uint *)(lVar3 + -0x6c0) = uVar30;
  uVar14 = DAT_182671efc;
  uVar22 = *(uint *)(lVar3 - ((ulonglong)uVar28 ^ 0x7f7f7fe4)) ^ uVar17 ^ DAT_182671c9c;
  *(uint *)(lVar3 + -0x4ac) = uVar22;
  uVar18 = DAT_182671e70;
  uVar22 = uVar14 ^ uVar17 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x7c0) = CONCAT44(uVar24,uVar9) ^ 0x84b918c0c8c48 | 0xf2f4946271b153b6;
  uVar11 = (ulonglong)DAT_182671dac;
  *(uint *)(lVar4 + -0x94c) = uVar30 ^ uVar18 ^ DAT_182671edc;
  uVar16 = DAT_182671fb4;
  bVar6 = (byte)DAT_182671ce4;
  pbVar19 = (byte *)((CONCAT44(uVar28,uVar9) ^ 0x7f7f7fb08180844a) + *(longlong *)(lVar4 + -0x9a8));
  uVar20 = DAT_182671c64 + uVar20;
  *(ulonglong *)(lVar4 + -0xbc0) = (ulonglong)pbVar19 ^ uVar11;
  *(uint *)(lVar4 + -0x58c) = uVar22;
  bVar7 = *pbVar19 ^ bVar6 ^ (byte)DAT_182671e0c;
  uVar9 = (uint)(bVar6 ^ bVar7);
  DAT_182671c84 = uVar20;
  *(byte *)(lVar4 + -0x1c3) = bVar7;
  uVar22 = uVar22 ^ DAT_182671efc;
  *(uint *)(lVar4 + -0x94) = uVar9 ^ uVar16;
  uVar22 = uVar22 + (uVar20 ^ 0x8c4a530c);
  *(uint *)(lVar4 + -0xae4) = uVar22 ^ DAT_182671d0c;
  uVar14 = DAT_182671c70;
  uVar9 = uVar9 << ((bVar2 ^ 0x42) & 0x1f);
  uVar30 = uVar9 ^ DAT_182671f6c;
  *(ulonglong *)(lVar4 + -0xbd8) = *(ulonglong *)(lVar4 + -0x920) | 0xc2888a943925c920;
  *(uint *)(lVar4 + -0x684) = uVar30;
  uVar30 = DAT_182671c7c;
  uVar32 = (ulonglong)DAT_182671c7c;
  DAT_182671c88 = DAT_182671c7c + uVar14;
  *(uint *)(DAT_182671c40 + -0x1c8) = uVar22 - uVar9 ^ DAT_182671d24;
  lVar3 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c88;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar14 ^ 0x5084895d)) =
       (*(uint *)(DAT_182671c40 - (uVar32 ^ 0xc6a6c186)) ^ uVar18) *
       (*(uint *)(DAT_182671c40 - (uVar23 ^ 0x172b4883)) ^ DAT_182671d24) ^ uVar17;
  lVar4 = DAT_182671c40;
  uVar22 = (*(uint *)(lVar3 + -0x94) ^ uVar16) * (uVar20 ^ 0x10084108) ^ DAT_182671d30;
  *(uint *)(lVar3 + -0x61c) = uVar22;
  uVar16 = DAT_182671e54;
  uVar9 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar11 = (ulonglong)DAT_182671c64;
  local_68 = (byte)uVar30;
  uVar30 = (*(uint *)(lVar4 - (uVar11 ^ 0x74f9c663)) ^ uVar17) + (uVar22 ^ DAT_182671d30);
  *(uint *)(DAT_182671c40 + -0x784) = uVar30 ^ DAT_182671e54;
  *(longlong *)(lVar3 + -0x828) = -0x75cb4c296982a824 << ((local_68 ^ 0xe0) & 0x3f);
  *(uint *)(lVar3 + -0x644) = uVar30 << (bVar13 & 0x1f) ^ DAT_182671ce0;
  uVar30 = DAT_182671cb0;
  *(uint *)(lVar3 - (uVar23 ^ 0x172b4f7f)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar9 ^ 0x74f9c83b)) ^ uVar16) >>
       (((byte)uVar14 ^ 0x92) & 0x1f) ^ DAT_182671f5c;
  *(ulonglong *)(lVar3 + -0xa60) =
       *(ulonglong *)(lVar3 - (uVar15 ^ 0x1000f20)) ^ CONCAT44(uVar14,uVar28) ^ 0x241b5a17aabb379a;
  *(uint *)(lVar3 - (uVar11 ^ 0x74f9c8d3)) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_182671c74 ^ 0x9b0e7717)) ^ DAT_182671ce0 |
       *(uint *)(lVar3 + -0x634) ^ DAT_182671f5c) ^ DAT_182671dd0;
  uVar16 = DAT_182671ddc;
  uVar9 = DAT_182671c80;
  uVar31 = DAT_182671c80 & DAT_182671c48;
  DAT_182671c60 = uVar31;
  *(uint *)(lVar3 - ((ulonglong)uVar14 ^ 0x508480d5)) =
       (*(uint *)(lVar3 - (uVar15 ^ 0x1000d4c)) ^ uVar18) + (DAT_182671dd4 ^ *puVar10) ^
       DAT_182671ddc;
  uVar16 = uVar16 ^ *(uint *)(lVar3 + -0x54) ^ DAT_182671cbc;
  uVar22 = *(uint *)(lVar3 + -0x76c) ^ DAT_182671ccc ^ DAT_182671dd0;
  *(uint *)(lVar3 + -0x6c0) = uVar16;
  uVar27 = uVar16 ^ uVar30 ^ DAT_182671cbc;
  *(ulonglong *)(lVar3 + -0x960) =
       (CONCAT44(uVar24,uVar20) ^ 0x267441edf3c40907) + *(longlong *)(lVar3 + -0xa78);
  *(uint *)(lVar3 + -0x4ac) = uVar22;
  uVar16 = DAT_182671dfc;
  uVar24 = DAT_182671c48;
  uVar11 = (ulonglong)DAT_182671f34;
  uVar29 = (ulonglong)DAT_182671c48;
  uVar22 = DAT_182671dfc ^ DAT_182671ccc ^ uVar22;
  *(uint *)(lVar3 + -0xae4) = uVar22;
  *(uint *)(lVar3 + -0x58c) = uVar27;
  *(ulonglong *)(lVar3 + -0xc20) =
       (CONCAT44(uVar24,uVar31) ^ 0x71539b0e01000005) + *(longlong *)(lVar3 + -0x9a8) ^ uVar11;
  bVar2 = (byte)DAT_182671cf8;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x1000830)) ^ uVar11) ^
       (byte)DAT_182671cf8 ^ (byte)DAT_182671e0c;
  uVar17 = DAT_182671f14;
  uVar26 = (uint)(*(byte *)(lVar3 + -0x1c3) ^ bVar2);
  uVar18 = DAT_182671c48 ^ 0xed118910;
  *(ulonglong *)(lVar3 + -0x380) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x1000370)) ^
       *(ulonglong *)(lVar3 - (uVar29 ^ 0x715399be));
  uVar24 = DAT_182671d44;
  lVar3 = DAT_182671c40;
  uVar18 = (uVar16 ^ uVar22) + uVar18;
  uVar16 = uVar26 ^ DAT_182671e6c;
  *(uint *)(DAT_182671c40 + -0x1c8) = uVar18 ^ uVar17;
  *(uint *)(lVar3 + -0x684) = uVar16;
  lVar3 = DAT_182671c40;
  uVar16 = uVar26 << (((byte)uVar31 ^ 0x11) & 0x1f) ^ DAT_182671f04;
  *(uint *)(DAT_182671c40 + -0x94) = uVar16;
  uVar18 = uVar18 - (uVar16 ^ DAT_182671f04);
  *(uint *)(lVar3 + -0x9dc) = uVar18 ^ uVar24;
  uVar18 = (uVar30 ^ uVar27) * uVar18;
  uVar24 = DAT_182671c7c ^ 0xc6a6c8cf;
  *(uint *)(lVar3 + -0x61c) = uVar18 ^ DAT_182671fa4;
  uVar24 = uVar26 * uVar24 ^ DAT_182671cd8;
  *(uint *)(lVar3 + -0x784) = uVar24;
  uVar16 = DAT_182671efc;
  uVar24 = uVar18 + (uVar24 ^ DAT_182671cd8) ^ DAT_182671efc;
  *(ulonglong *)(lVar3 + -0x5e8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x7f7f7870)) >> (((byte)uVar14 ^ 0xbf) & 0x3f);
  *(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0x1000644)) = uVar24;
  uVar24 = DAT_182671c74;
  uVar14 = (*(uint *)(lVar3 - (uVar23 ^ 0x172b4f0f)) ^ uVar16) <<
           (((byte)DAT_182671c64 ^ 0xb2) & 0x1f) ^ DAT_182671da8;
  *(uint *)(lVar3 + -0x634) = uVar14;
  uVar14 = uVar14 ^ DAT_182671da8;
  uVar24 = (uVar16 ^ *(uint *)(lVar3 + -0x644)) >> ((byte)uVar24 & 0x1f) ^ DAT_182671cbc;
  *(uint *)(lVar3 + -0x94c) = uVar24;
  *(uint *)(lVar3 - ((ulonglong)uVar20 ^ 0x10084146)) =
       (uVar14 | uVar24 ^ DAT_182671cbc) ^ DAT_182671ec8;
  uVar24 = DAT_182671d9c ^ DAT_182671ec8;
  *(uint *)(lVar3 - (uVar32 ^ 0xc6a6cfa6)) =
       (*(uint *)(lVar3 - (uVar25 ^ 0x818081dc)) ^ uVar30) +
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671ce8;
  *(uint *)(lVar3 + -0x6c0) =
       *(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0x100076c)) ^ DAT_182671db4 ^ DAT_182671ce8;
  *(uint *)(lVar3 - (uVar15 ^ 0x10000ac)) = uVar24 ^ *(uint *)(lVar3 + -0x54);
  uVar24 = DAT_182671c48 ^ 0x7c271953;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar8 * 4) = uVar1 ^ uVar33;
  *(uint *)(lVar3 - (uVar15 ^ 0x1000ee4)) = (uVar9 ^ 0xc40a25bc) - uVar24;
  return;
}



############ FUN_ 18100bb20 size=4979 ############

void FUN_18100bb20(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  byte bVar20;
  ulonglong uVar21;
  byte bVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_f8;
  byte local_f0;
  byte local_e0;
  
  uVar14 = DAT_182671ee4;
  uVar13 = DAT_182671c8c;
  uVar11 = DAT_182671c88;
  uVar12 = DAT_182671c84;
  uVar10 = DAT_182671c7c;
  uVar9 = DAT_182671c70;
  uVar7 = DAT_182671c5c;
  lVar5 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c88;
  uVar31 = (ulonglong)DAT_182671c70;
  uVar42 = (ulonglong)DAT_182671c7c;
  uVar4 = *(uint *)(&DAT_182613218 + DAT_1826720cc);
  uVar26 = DAT_182671c70 + DAT_182671c88;
  uVar41 = (ulonglong)DAT_182671c8c;
  uVar32 = DAT_182671c5c ^ DAT_182671c8c;
  uVar36 = DAT_182671c84 << 0x10 | DAT_182671c84 >> 0x10;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_1826720cc) ^ DAT_182671c88;
  uVar29 = ~DAT_182671c7c;
  DAT_182671c58 = uVar29;
  DAT_182671c68 = uVar26;
  DAT_182671c80 = uVar32;
  DAT_182671c90 = uVar36;
  *(uint *)(DAT_182671c40 + -0x61c) =
       *(uint *)(DAT_182671c40 - (uVar31 ^ 0x7df95a0b)) ^ *(uint *)(DAT_182671c40 + -0x6c0);
  puVar38 = (ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0x103c08cb));
  uVar47 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar45 = CONCAT44(DAT_182671d34,DAT_182671d34);
  uVar28 = (ulonglong)uVar32;
  *(ulonglong *)(lVar5 + -0xa78) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar5 + -0x888)) - (uVar47 ^ *puVar38) ^ uVar45;
  lVar6 = DAT_182671c40;
  *(undefined1 *)(lVar5 - (uVar28 ^ 0x1c2002e7)) = **(undefined1 **)(lVar5 + -0xb90);
  lVar5 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar21 = (ulonglong)uVar7;
  uVar24 = CONCAT44(DAT_182671f08,DAT_182671f08);
  puVar1 = (ulonglong *)(lVar6 + -0xc38);
  uVar33 = CONCAT44(DAT_182671dc8,DAT_182671dc8) ^ uVar39 ^ uVar24 ^ *(ulonglong *)(lVar6 + -0xd88)
           ^ *puVar1;
  uVar17 = (ulonglong)uVar12;
  *(ulonglong *)(lVar6 + -0x228) = uVar33;
  puVar2 = (ulonglong *)(lVar5 + -0xda8);
  bVar22 = (byte)(uVar12 >> 0x10);
  uVar37 = (ulonglong)uVar29;
  uVar34 = (*(ulonglong *)(lVar5 - (uVar21 ^ 0xc1c0bfd)) ^ uVar39) >> ((bVar22 ^ 0x16) & 0x3f);
  *puVar2 = uVar34 ^ CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar14 = DAT_182671e20;
  lVar5 = DAT_182671c40;
  uVar18 = CONCAT44(uVar9,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       CONCAT44(uVar10,uVar29) ^ 0x95771f515ce9f985 | uVar18 ^ 0xce2d8a708c5b3cff;
  local_f0 = (byte)uVar13;
  uVar39 = (uVar39 ^ uVar33) << ((local_f0 ^ 0xf1) & 0x3f);
  puVar3 = (ulonglong *)(lVar5 + -0xc90);
  *puVar3 = uVar39 ^ CONCAT44(uVar14,uVar14);
  uVar8 = DAT_182671f8c;
  uVar39 = uVar39 | uVar34;
  uVar33 = (ulonglong)DAT_182671f8c;
  uVar34 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar5 + -0xbd8) = uVar39 ^ uVar34;
  *(uint *)(lVar5 + -0x670) = (uVar26 ^ 0x7bdabaac) + *(int *)(lVar5 + -0x9dc);
  uVar27 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar40 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar36 ^ 0x1a0ab888)) = (uVar24 ^ *puVar1) - uVar39 ^ uVar27;
  uVar14 = DAT_182671f40;
  puVar35 = (ulonglong *)(lVar5 - (uVar17 ^ 0xb0001782));
  *puVar35 = *(ulonglong *)(lVar5 - (uVar28 ^ 0x1c200a76)) ^ uVar45 ^ uVar40 ^ uVar34 ^
             *(ulonglong *)(lVar5 + -0xbd8);
  uVar24 = CONCAT44(uVar14,uVar14);
  local_e0 = (byte)uVar7;
  puVar44 = (ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0xefea51ec));
  *puVar44 = (*(ulonglong *)(lVar5 + -0xd88) >> 0x20 ^ uVar33) >> 0xe ^ uVar24;
  uVar15 = DAT_182671f48;
  uVar14 = DAT_182671d84;
  lVar6 = DAT_182671c40;
  uVar39 = (uVar40 ^ *(ulonglong *)(lVar5 + -0xd88)) << ((local_e0 ^ 199) & 0x3f);
  *(ulonglong *)(lVar5 + -0x228) = uVar39 ^ CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar33 = *(ulonglong *)(lVar6 + -0x110);
  uVar39 = *(ulonglong *)(lVar5 + -0x960) ^ uVar24 | uVar39;
  uVar24 = *(ulonglong *)(lVar6 + -0x888);
  uVar43 = CONCAT44(uVar14,uVar14);
  uVar34 = *(ulonglong *)(lVar6 + -0xa78);
  *puVar2 = uVar39 ^ uVar43;
  uVar14 = DAT_182671e3c;
  uVar30 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  local_f8 = (byte)uVar10;
  *puVar3 = (uVar45 ^ uVar34) - uVar39 ^ uVar30;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar33 = uVar47 ^ uVar33 ^ uVar24 ^ uVar34 ^ uVar27;
  *puVar1 = uVar33;
  uVar36 = DAT_182671c90;
  uVar8 = DAT_182671c68;
  uVar24 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x7df95407)) =
       (uVar33 ^ uVar34) >> ((local_f8 ^ 0xe3) & 0x3f) ^ uVar24;
  lVar5 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671e90,DAT_182671e90);
  pbVar19 = (byte *)(DAT_182671c40 - (uVar31 ^ 0x7df95df7));
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (uVar34 ^ *puVar1) << (((byte)uVar32 ^ 0x3a) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x6de3b213)) =
       (uVar40 ^ *(ulonglong *)(lVar5 + -0xd88)) << ((*pbVar19 ^ (byte)uVar15) & 0x3f);
  uVar34 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar39 = *(ulonglong *)(lVar5 + -0x960) ^ uVar33 | uVar24 ^ *(ulonglong *)(lVar5 + -0xbd8);
  uVar45 = uVar39 ^ uVar34;
  *(ulonglong *)(lVar5 + -0x110) = uVar45;
  uVar14 = DAT_182671fb0;
  *(undefined1 *)(lVar5 + -0x6b9) = **(undefined1 **)(lVar5 + -0x990);
  uVar46 = CONCAT44(uVar14,uVar14);
  uVar33 = *puVar3;
  uVar24 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *puVar1 = (*(ulonglong *)(lVar5 + -0x888) ^ uVar27) - uVar39 ^ uVar46;
  uVar39 = uVar45 ^ uVar33 ^ uVar24 ^ uVar34 ^ uVar30;
  uVar34 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar5 + -0xd88) = uVar39;
  *(ulonglong *)(lVar5 + -0x228) = (uVar39 ^ uVar24) >> ((local_f8 ^ 0xf6) & 0x3f) ^ uVar34;
  uVar33 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(lVar5 - (uVar17 ^ 0xb0001072)) = (uVar39 ^ uVar24) << 0x27 ^ uVar33;
  lVar6 = DAT_182671c40;
  uVar45 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x6de3b3b3)) =
       (*(ulonglong *)(lVar5 + -0xa78) ^ uVar33 | uVar34 ^ *(ulonglong *)(lVar5 + -0x228)) ^ uVar45;
  uVar15 = DAT_182671ea4;
  uVar47 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar33 = (*puVar3 ^ uVar30) - (uVar18 ^ 0x46a8456e1680b2d);
  *(ulonglong *)(lVar5 + -0x960) = uVar33 ^ uVar47;
  uVar14 = DAT_182671e58;
  uVar18 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x888) = uVar33 - (uVar45 ^ *(ulonglong *)(lVar5 + -0xbd8)) ^ uVar18;
  uVar8 = DAT_182671c90;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x110) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xc1c020d)) ^ uVar45) -
       (CONCAT44(uVar13,DAT_182671c90) ^ 0xf42828a4501a0ca2) ^ uVar24;
  *(undefined1 *)(lVar6 + -0x2e9) = **(undefined1 **)(lVar6 + -0xc50);
  lVar5 = DAT_182671c40;
  uVar39 = (ulonglong)DAT_182671d38;
  uVar30 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0x1a0abd88)) =
       *puVar2 ^ uVar30 ^ uVar46 ^ uVar43 ^ *puVar1;
  uVar33 = *(ulonglong *)(lVar5 + -0x228);
  *(ulonglong *)(lVar5 + -0xa78) = (*(ulonglong *)(lVar5 + -0xd88) >> 0x20 ^ uVar39) >> 1 ^ uVar47;
  uVar14 = DAT_182671cd0;
  uVar27 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *puVar3 = (uVar30 ^ *(ulonglong *)(lVar5 + -0xd88)) << (((byte)uVar29 ^ 0xf) & 0x3f) ^ uVar27;
  *puVar44 = (uVar34 ^ uVar33) >> ((local_e0 ^ 0xd2) & 0x3f);
  uVar8 = DAT_182671c68;
  uVar33 = (ulonglong)DAT_182671c68;
  uVar43 = CONCAT44(uVar32,DAT_182671c68);
  uVar39 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xbd8) =
       (*(ulonglong *)(lVar5 + -0xa78) ^ uVar47 | uVar27 ^ *puVar3) ^ uVar39;
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x7df95277)) =
       (uVar33 << 6 | (ulonglong)(uVar12 >> 0x1a)) ^ 0x279d76b42d;
  uVar34 = (uVar46 ^ *puVar1) - (CONCAT44(uVar32,uVar7) ^ 0x6fa3dcb2faf4c3b5);
  *(ulonglong *)(lVar5 + -0xd88) = uVar34 ^ uVar40;
  uVar14 = DAT_182671e00;
  *(ulonglong *)(lVar5 + -0x228) =
       (*(ulonglong *)(lVar5 - (uVar41 ^ 0x103c054b)) ^ uVar27) - (uVar43 ^ 0x129c25c86c25efa8);
  uVar27 = CONCAT44(uVar14,uVar14);
  uVar33 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar5 + -0x960) =
       uVar34 - (*(ulonglong *)(lVar5 - (uVar25 ^ 0xefea5354)) ^ uVar39) ^ uVar27;
  bVar23 = (byte)uVar11;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0x8c58e097)) =
       (CONCAT44(uVar10,uVar13) ^ 0x14c13a9a1b12b823) + (uVar39 ^ *(ulonglong *)(lVar5 + -0xbd8)) ^
       uVar33;
  uVar34 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar47 = *(ulonglong *)(lVar5 + -0xa78) ^ uVar34 ^ uVar33 ^ *(ulonglong *)(lVar5 + -0x888) ^
           uVar18;
  *puVar2 = uVar47;
  uVar11 = DAT_182671c90;
  uVar30 = (uVar47 ^ uVar34) >> ((bVar23 ^ 0x89) & 0x3f);
  uVar33 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *puVar1 = uVar30 ^ CONCAT44(DAT_182671d98,DAT_182671d98);
  bVar20 = (byte)uVar11;
  uVar34 = (uVar47 ^ uVar34) << ((bVar20 ^ 0x3b) & 0x3f);
  *puVar3 = uVar34 ^ uVar33;
  lVar5 = DAT_182671c40;
  uVar47 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar30 = uVar30 | uVar34;
  uVar34 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar30 ^ uVar47;
  *(ulonglong *)(lVar5 + -0xd88) = (*(ulonglong *)(lVar5 + -0x888) ^ uVar18) - uVar30 ^ uVar34;
  uVar24 = *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x1a0ab960)) ^ *(ulonglong *)(lVar5 + -0x110)
           ^ uVar27 ^ uVar39 ^ uVar24;
  *(ulonglong *)(lVar5 + -0xbd8) = uVar24;
  *(ulonglong *)(lVar5 + -0xa78) = (uVar24 ^ uVar39) >> ((bVar20 ^ 0x25) & 0x3f) ^ uVar45;
  *(undefined1 *)(lVar5 - (uVar28 ^ 0x1c2006b7)) = **(undefined1 **)(lVar5 - (uVar42 ^ 0x8c58edb7));
  uVar11 = DAT_182671c7c;
  uVar33 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *puVar2 = (uVar39 ^ *(ulonglong *)(lVar5 + -0xbd8)) << ((local_e0 ^ 0xce) & 0x3f) ^ uVar33;
  uVar30 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar33 = *(ulonglong *)(lVar5 - (uVar37 ^ 0x73a718b8)) ^ uVar33 |
           *(ulonglong *)(lVar5 + -0xa78) ^ uVar45;
  *puVar1 = uVar33 ^ uVar30;
  lVar6 = DAT_182671c40;
  *(int *)(lVar5 + -0x9dc) = -0x56efbbd9 << (((byte)uVar11 ^ 0xf5) & 0x1f);
  uVar18 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x73a71980)) =
       (uVar27 ^ *(ulonglong *)(lVar5 + -0x960)) - uVar33 ^ uVar18;
  uVar14 = DAT_182671d00;
  uVar24 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar33 = uVar24 ^ uVar30 ^ uVar34 ^ *(ulonglong *)(lVar5 + -0xd88) ^ *puVar1;
  *(ulonglong *)(lVar5 + -0x888) = uVar33;
  uVar39 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671c40 + -0x110) = (uVar33 ^ uVar24) >> ((bVar23 ^ 0x9b) & 0x3f) ^ uVar39;
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x103c0203)) =
       **(ulonglong **)(lVar6 - (uVar28 ^ 0x1c200a4e)) ^ CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar33 = CONCAT44(DAT_182671f90,DAT_182671f90);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c68 ^ 0x6de3b5c3)) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xc1c015d)) ^ uVar24) << 0x29 ^ uVar33;
  lVar5 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x7df956bf)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x103c0473)) ^ uVar33 |
       *(ulonglong *)(DAT_182671c40 + -0x110) ^ uVar39) ^ uVar40;
  uVar31 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *puVar1 = (uVar34 ^ *puVar35) - (uVar40 ^ *(ulonglong *)(lVar5 + -0x960)) ^ uVar31;
  uVar24 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  uVar33 = uVar24 ^ uVar18 ^ uVar47 ^ *puVar3 ^ *(ulonglong *)(lVar5 + -0x228);
  *(ulonglong *)(lVar5 + -0xbd8) = uVar33;
  uVar15 = DAT_182671f74;
  *(ulonglong *)(lVar5 + -0x888) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0x73a71f68)) ^ uVar45) >> ((bVar22 ^ 0x21) & 0x3f);
  uVar14 = DAT_182671dcc;
  uVar34 = (uVar24 ^ uVar33) >> ((local_f8 ^ 199) & 0x3f);
  *(ulonglong *)(lVar5 + -0x110) = uVar34 ^ CONCAT44(uVar15,uVar15);
  lVar5 = DAT_182671c40;
  uVar33 = (uVar24 ^ uVar33) << ((bVar23 ^ 0x94) & 0x3f);
  *puVar2 = uVar33 ^ CONCAT44(uVar14,uVar14);
  uVar15 = DAT_182671df8;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(uVar7,uVar10) ^ 0xfceff21d83ca48b2) - *(longlong *)(lVar5 - (uVar37 ^ 0x73a71d98));
  uVar39 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - (uVar37 ^ 0x73a71738)) = (uVar34 | uVar33) ^ uVar39;
  uVar14 = DAT_182671ce8;
  uVar34 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar6 + -0xa78) =
       (uVar18 ^ *puVar3) - (uVar39 ^ *(ulonglong *)(lVar6 + -0x228)) ^ uVar34;
  lVar5 = DAT_182671c40;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(longlong *)(DAT_182671c40 + -0x888) =
       0x295fdb2d8aa33ba << (((byte)uVar15 ^ *(byte *)(DAT_182671c40 + -0x228)) & 0x3f);
  uVar18 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar5 + -0xd88) =
       *(ulonglong *)(lVar5 - (uVar28 ^ 0x1c200c36)) ^ uVar37 ^ uVar39 ^ uVar31 ^
       *(ulonglong *)(lVar5 + -0x228);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c90 ^ 0x1a0ab110)) =
       (*(ulonglong *)(lVar5 - (uVar41 ^ 0x103c0453)) ^ uVar37) >>
       (((byte)DAT_182671c90 ^ 0x34) & 0x3f) ^ uVar18;
  uVar33 = *(ulonglong *)(lVar5 + -0xd88);
  *puVar2 = uVar24 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0x960) ^ *(ulonglong *)(lVar5 + -0xbd8);
  uVar14 = DAT_182671e70;
  uVar24 = (uVar37 ^ uVar33) << 0xc;
  *puVar3 = uVar24 ^ CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar24 = *(ulonglong *)(lVar5 + -0x110) ^ uVar18 | uVar24;
  uVar27 = CONCAT44(uVar14,uVar14);
  uVar33 = CONCAT44(uVar12,DAT_182671c68);
  *(ulonglong *)(lVar5 + -0x888) = uVar24 ^ uVar27;
  *(ulonglong *)(lVar5 + -0x228) =
       uVar33 ^ uVar37 ^ *(ulonglong *)(lVar5 + -0xd88) ^ 0x1f776b36d52c878b;
  uVar28 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = (uVar31 ^ *puVar1) - uVar24 ^ uVar28;
  lVar5 = DAT_182671c40;
  uVar24 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x8c58e747)) =
       uVar24 ^ uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0xa78) ^ uVar40 ^
       *(ulonglong *)(DAT_182671c40 + -0x960);
  uVar33 = (uVar24 ^ *puVar2) >> ((bVar23 ^ 0xb5) & 0x3f);
  uVar18 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar5 + -0x110) = uVar33 ^ uVar18;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0xefea541c)) = uVar33 | uVar28 ^ *(ulonglong *)(lVar5 + -0xbd8);
  uVar14 = DAT_182671ee0;
  uVar39 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar33 = (uVar24 ^ *puVar2) << (((byte)uVar29 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar5 + -0xd88) = uVar33 ^ uVar39;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0x103c0bf3)) =
       (*(ulonglong *)(lVar5 + -0x110) ^ uVar18 | uVar33) ^ uVar31;
  *(uint *)(lVar5 + -0x9dc) =
       (DAT_182671c90 ^ 0x45802fe8) << ((byte)*(undefined4 *)(lVar5 + -0x670) & 0x1f);
  uVar7 = DAT_182671c68;
  uVar41 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar18 = (ulonglong)DAT_182671c68;
  *puVar1 = (uVar34 ^ *(ulonglong *)(lVar5 + -0xa78)) -
            (*(ulonglong *)(lVar5 - (uVar25 ^ 0xefea5aa4)) ^ uVar31) ^ uVar41;
  lVar5 = DAT_182671c40;
  puVar35 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  puVar44 = (ulonglong *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0x960) = CONCAT44(uVar36,uVar7) ^ uVar43 ^ 0xc04abb3af05f1aa9;
  *puVar3 = uVar31 ^ uVar28 ^ uVar27 ^ *puVar35 ^ *puVar44;
  *(uint *)(lVar5 - (uVar42 ^ 0x8c58ec9f)) =
       *(uint *)(lVar5 - (uVar21 ^ 0xc1c0fc9)) | DAT_182671c84 ^ 0x938c0b82;
  uVar33 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *puVar2 = (uVar27 ^ *puVar3) >> ((bVar23 ^ 0x82) & 0x3f) ^ uVar33;
  *(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xb0001b1a)) =
       (uVar27 ^ *puVar3) << (((byte)uVar8 ^ 0x59) & 0x3f) ^ uVar39;
  lVar5 = DAT_182671c40;
  uVar34 = *(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xb00017a2)) ^ uVar33 | *puVar38 ^ uVar39;
  uVar33 = *(ulonglong *)(DAT_182671c40 + -0xbd8);
  *(int *)(DAT_182671c40 + -0x9dc) =
       *(int *)(DAT_182671c40 + -0x644) + *(int *)(DAT_182671c40 + -0x54);
  uVar14 = DAT_182671d74;
  *(ulonglong *)(lVar5 + -0xd88) = uVar34 ^ uVar24;
  uVar15 = DAT_182671d60;
  uVar33 = (uVar28 ^ uVar33) - (CONCAT44(uVar10,uVar9) ^ 0xd5e2992244e166e7);
  *(ulonglong *)(lVar5 + -0xa78) = uVar33 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671d3c;
  *(ulonglong *)(lVar5 + -0x960) = uVar33 - uVar34 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671d44;
  *(ulonglong *)(lVar5 + -0x228) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x6de3b5e3)) ^ uVar24) -
       (CONCAT44(uVar10,uVar12) ^ 0x225246b4896c9759) ^ CONCAT44(uVar14,uVar14);
  uVar33 = *(ulonglong *)(lVar5 - (uVar18 ^ 0x6de3b0e3)) ^ uVar41 ^ uVar27 ^ uVar30 ^ *puVar1;
  *puVar3 = uVar33;
  *puVar2 = (uVar33 ^ uVar30) >> ((local_e0 ^ 0xc5) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar4 ^ uVar26;
  return;
}



############ FUN_ 18101f500 size=5747 ############

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

void FUN_18101f500(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong *plVar5;
  uint uVar6;
  byte bVar7;
  longlong lVar8;
  longlong lVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  
  uVar18 = DAT_182671eb8;
  uVar12 = DAT_182671c8c;
  uVar17 = DAT_182671c7c;
  lVar8 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671c8c;
  uVar37 = (ulonglong)DAT_182671c7c;
  uVar22 = DAT_182671c7c & DAT_182671c8c;
  uVar45 = (ulonglong)uVar22;
  uVar20 = *(uint *)(&DAT_182613210 + (uVar35 ^ 0x8670a0c7) + (longlong)DAT_182672108) ^
           DAT_182671c7c;
  uVar6 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar22 ^ 0x25080d5) + (longlong)DAT_182672108);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x4b8);
  DAT_182671c4c = uVar22;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       CONCAT44(DAT_182671e74,DAT_182671e74) ^ *(ulonglong *)(DAT_182671c40 + -0x408) ^
       0xe0abdcd810dc8a30;
  uVar10 = DAT_182671de4;
  uVar39 = CONCAT44(uVar18,uVar18);
  uVar32 = CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar23 = (CONCAT44(DAT_182671e84,DAT_182671e84) ^ *(ulonglong *)(lVar8 + -0xda8) |
           uVar39 ^ *puVar1) ^ uVar32;
  *(ulonglong *)(lVar8 + -0x2b0) = uVar23;
  uVar49 = CONCAT44(uVar10,uVar10);
  uVar30 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar29 = CONCAT44(DAT_182671f80,DAT_182671f80);
  *(ulonglong *)(lVar8 + -0x510) =
       *(ulonglong *)(lVar8 - (uVar37 ^ 0x4b56dadd)) ^ uVar30 ^ uVar49 ^ uVar23 ^ uVar32;
  uVar18 = DAT_182671e34;
  uVar10 = DAT_182671dd4;
  puVar2 = (ulonglong *)(lVar8 + -0x3d8);
  uVar40 = (CONCAT44(DAT_182671d3c,DAT_182671d3c) ^ *puVar2) +
           (CONCAT44(uVar12,uVar22) ^ 0xe1168f45f681cecd);
  *(ulonglong *)(lVar8 + -0x8f0) = uVar40 ^ uVar29;
  uVar19 = DAT_182671f8c;
  uVar16 = DAT_182671c78;
  uVar11 = DAT_182671c50;
  puVar3 = (ulonglong *)(lVar8 + -0x7e8);
  uVar38 = (ulonglong)DAT_182671c50;
  uVar23 = (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar8 + -0x5e8)) +
           (CONCAT44(uVar12,uVar12) ^ 0xf5f37c7370986aaf);
  *(ulonglong *)(lVar8 + -0x888) = uVar23 ^ CONCAT44(uVar18,uVar18);
  uVar26 = uVar16 & uVar11;
  uVar42 = CONCAT44(uVar19,uVar19);
  uVar51 = (ulonglong)uVar26;
  DAT_182671c70 = uVar26;
  *puVar3 = uVar23 + uVar40 ^ uVar42;
  uVar18 = DAT_182671e3c;
  lVar9 = DAT_182671c40;
  bVar7 = (byte)uVar26;
  uVar27 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar32 = (ulonglong)uVar16;
  puVar24 = (ulonglong *)(lVar8 - (uVar32 ^ 0xa0af949d));
  uVar33 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *puVar24 = uVar40 << ((bVar7 ^ 0xb0) & 0x3f) ^ uVar27;
  bVar36 = (byte)uVar11;
  uVar23 = (uVar29 ^ *(ulonglong *)(lVar9 + -0x8f0)) >> ((bVar36 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar9 + -0xb08) = uVar23 ^ uVar33;
  uVar14 = DAT_182671d20;
  lVar8 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (uVar23 | uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0xa08)) ^ uVar33;
  uVar13 = DAT_182671cac;
  uVar28 = (ulonglong)DAT_182671cac;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar23 = *(ulonglong *)(lVar8 - ((ulonglong)uVar26 ^ 0x200c06a1)) ^ uVar40 ^ uVar33 ^ uVar42 ^
           *puVar3;
  uVar52 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(ulonglong *)(lVar8 + -0x680) = uVar23;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar8 - (uVar38 ^ 0x771c26c9)) =
       (uVar23 ^ uVar40) + (uVar30 ^ *(ulonglong *)(lVar8 + -0x828)) ^ uVar52;
  uVar10 = DAT_182671f70;
  puVar25 = (ulonglong *)(lVar8 - (uVar32 ^ 0xa0af9815));
  uVar23 = (uVar40 ^ *puVar25) << (((byte)uVar22 ^ 0xeb) & 0x3f);
  *(ulonglong *)(lVar8 + -0xc18) = uVar23 ^ CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar40 = (uVar40 ^ *(ulonglong *)(lVar8 + -0x680)) >> ((bVar7 ^ 0x83) & 0x3f);
  uVar33 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar8 + -0x760) = uVar40 ^ CONCAT44(uVar10,uVar10);
  uVar23 = (uVar23 | uVar40) ^ uVar33;
  *(ulonglong *)(lVar8 + -0xa70) = uVar23;
  uVar19 = DAT_182671f1c;
  lVar9 = DAT_182671c40;
  uVar34 = uVar52 ^ uVar23 ^ *(ulonglong *)(lVar8 + -0x110) ^ uVar31 ^ uVar33;
  uVar23 = uVar49 ^ *(ulonglong *)(lVar8 + -0x510);
  *(ulonglong *)(lVar8 + -0x380) = uVar34;
  uVar10 = DAT_182671e88;
  puVar4 = (ulonglong *)(lVar9 + -0x628);
  uVar40 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar9 + -0xb18) = (uVar42 ^ *puVar3) + uVar23 ^ uVar40;
  uVar19 = DAT_182671ef8;
  uVar43 = CONCAT44(uVar10,uVar10);
  *puVar4 = uVar23 << ((bVar7 ^ 0x9d) & 0x3f) ^ uVar43;
  bVar21 = (byte)uVar16;
  uVar23 = (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x8670a5df)) ^ uVar49) >>
           ((bVar21 ^ 0xa1) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar23 ^ CONCAT44(uVar19,uVar19);
  uVar10 = DAT_182671e68;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       uVar34 ^ uVar31 | CONCAT44(uVar22,uVar11) ^ 0xb636867852ca3cfb;
  uVar42 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar8 - (uVar37 ^ 0x4b56d64d)) =
       (*(ulonglong *)(lVar8 - (uVar32 ^ 0xa0af98bd)) ^ uVar43 | uVar23) ^ uVar42;
  uVar19 = DAT_182671e6c;
  uVar13 = DAT_182671dfc;
  uVar23 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar34 = (ulonglong)DAT_182671dfc;
  uVar43 = *(ulonglong *)(lVar8 + -0xb18) ^ *puVar1 ^ uVar23 ^ uVar42 ^ uVar40;
  *(ulonglong *)(lVar8 + -0xda8) = uVar43;
  uVar10 = DAT_182671cb0;
  uVar46 = CONCAT44(uVar19,uVar19);
  uVar42 = (uVar43 ^ uVar23) << 0x3a;
  uVar41 = (uVar52 ^ *(ulonglong *)(lVar8 + -0x110)) + (uVar43 ^ uVar23) ^ uVar46;
  *(ulonglong *)(lVar8 + -0x2b0) = uVar41;
  uVar19 = DAT_182671e40;
  bVar7 = (byte)uVar17;
  uVar44 = CONCAT44(uVar10,uVar10);
  uVar49 = (uVar43 ^ uVar23) >> ((bVar7 ^ 0xf3) & 0x3f);
  *puVar2 = uVar42 ^ uVar44;
  lVar8 = DAT_182671c40;
  uVar47 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar49 ^ uVar47;
  uVar23 = CONCAT44(DAT_182671da8,DAT_182671da8);
  uVar43 = CONCAT44(uVar13,uVar13);
  puVar50 = (ulonglong *)(lVar8 - (uVar45 ^ 0x2508835));
  *(ulonglong *)(lVar8 + -0x888) = (uVar49 | uVar42) ^ uVar23;
  uVar10 = DAT_182671cfc;
  *puVar50 = *(ulonglong *)(lVar8 - (uVar35 ^ 0x8670a847)) ^ uVar41 ^ uVar43 ^ uVar23 ^ uVar46;
  lVar9 = DAT_182671c40;
  uVar41 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar8 + -0xa08) =
       (*(ulonglong *)(lVar8 - (uVar38 ^ 0x771c2cc1)) ^ uVar40) +
       (*(ulonglong *)(lVar8 + -0x380) ^ uVar31) ^ uVar41;
  *(ulonglong *)(lVar8 - (uVar37 ^ 0x4b56d9fd)) =
       *(ulonglong *)(lVar8 + -0xa50) ^ uVar47 ^ *(ulonglong *)(lVar8 + -0x5e8);
  uVar48 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  uVar40 = (*(ulonglong *)(lVar8 + -0x380) ^ uVar31) << ((bVar21 ^ 0x83) & 0x3f);
  uVar23 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *(ulonglong *)(lVar8 + -0x30) = uVar40 ^ uVar48;
  uVar31 = (*(ulonglong *)(lVar8 + -0x380) >> 0x20 ^ uVar28) >> 10;
  uVar28 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar8 + -0x828) = uVar31 ^ uVar23;
  uVar13 = DAT_182671d88;
  uVar49 = (ulonglong)DAT_182671d88;
  *(ulonglong *)(lVar8 - (uVar38 ^ 0x771c2159)) = (uVar31 | uVar40) ^ uVar28;
  uVar40 = CONCAT44(uVar13,uVar13);
  uVar31 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar23 = *(ulonglong *)(lVar9 - (uVar45 ^ 0x2508645)) ^ *(ulonglong *)(lVar9 + -0xa08) ^ uVar40 ^
           uVar28 ^ uVar41;
  *(ulonglong *)(lVar9 + -0xc18) = uVar23;
  *(ulonglong *)(lVar9 - (uVar35 ^ 0x8670a7af)) =
       (uVar23 ^ uVar40) + (uVar46 ^ *(ulonglong *)(lVar9 + -0x2b0)) ^ uVar31;
  uVar42 = CONCAT44(DAT_182671f54,DAT_182671f54);
  *(ulonglong *)(lVar9 - (uVar37 ^ 0x4b56d885)) =
       (*(ulonglong *)(lVar9 + -0xc18) ^ uVar40) << ((bVar7 ^ 0xd5) & 0x3f) ^ uVar42;
  lVar8 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *puVar3 = *(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x2508cdd)) >> 0x20 ^ uVar40 ^ uVar49;
  uVar23 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar8 - (uVar37 ^ 0x4b56d7e5)) =
       (*(ulonglong *)(lVar8 - (uVar51 ^ 0x200c0ce1)) ^ uVar42 |
       *(ulonglong *)(lVar8 - (uVar32 ^ 0xa0af997d)) ^ uVar40) ^ uVar23;
  *(ulonglong *)(lVar8 - (uVar35 ^ 0x8670a6e7)) =
       *(ulonglong *)(lVar8 + -0x510) ^ *(ulonglong *)(lVar8 + -0x760) ^ uVar23 ^ uVar31 ^ uVar44;
  *(ulonglong *)(lVar8 + -0x408) =
       CONCAT44(uVar26,uVar22) ^ 0x86354823adf9a8cb | *(ulonglong *)(lVar8 + -0x680) ^ uVar28;
  *puVar1 = (*(ulonglong *)(lVar8 + -0x8f0) ^ uVar43) + (*puVar24 ^ uVar41) ^ uVar46;
  *(ulonglong *)(lVar8 - (uVar51 ^ 0x200c0781)) =
       (CONCAT44(uVar12,uVar11) ^ 0xbd987bcd2252799d) +
       (CONCAT44(uVar17,uVar22) ^ 0x9a59efddb030f96b);
  uVar28 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar8 + -0xda8) = (*puVar50 ^ uVar43) << ((bVar21 ^ 0xb5) & 0x3f) ^ uVar28;
  uVar34 = *(ulonglong *)(lVar8 + -0x8f0) >> 0x20 ^ uVar30 ^ uVar34;
  *(ulonglong *)(lVar8 - (uVar51 ^ 0x200c0549)) = uVar34;
  uVar40 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar23 = *(ulonglong *)(lVar8 + -0x408);
  *(ulonglong *)(lVar8 + -0x888) =
       (uVar30 ^ uVar34 | uVar28 ^ *(ulonglong *)(lVar8 + -0xda8)) ^ uVar40;
  *(ulonglong *)(lVar8 + -0xb18) = uVar23 + 0x11d7f98c59ec5bb2;
  *(ulonglong *)(lVar8 + -0xa50) =
       *(ulonglong *)(lVar8 - (uVar45 ^ 0x250884d)) ^ *puVar1 ^ uVar40 ^ uVar41 ^ uVar46;
  uVar10 = DAT_182671df0;
  uVar28 = CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar42 = (*(ulonglong *)(lVar8 - (uVar38 ^ 0x771c2d89)) ^ uVar41) +
           (CONCAT44(uVar12,uVar17) ^ 0xf5f37c73bdbe1895);
  *(ulonglong *)(lVar8 + -0x5e8) = uVar42 ^ uVar28;
  uVar40 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar8 + -0xb08) =
       (*(ulonglong *)(lVar8 + -0x760) ^ uVar31) + (CONCAT44(uVar11,uVar17) ^ 0x57d21f5c518c2c48) ^
       uVar40;
  uVar10 = DAT_182671dec;
  lVar9 = DAT_182671c40;
  uVar34 = (*(ulonglong *)(lVar8 - (uVar38 ^ 0x771c2cd1)) ^ uVar40) + uVar42 ^ uVar27;
  *(ulonglong *)(lVar8 + -0x380) = uVar34;
  uVar49 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar9 + -0x30) = uVar42 << (((byte)uVar22 ^ 0xcb) & 0x3f) ^ uVar49;
  uVar10 = _DAT_182671cf0;
  *(ulonglong *)(lVar9 + -0x828) =
       uVar23 >> ((*(byte *)(lVar9 - (uVar38 ^ 0x771c2459)) ^ (byte)uVar18) & 0x3f);
  uVar40 = (uVar28 ^ *(ulonglong *)(lVar9 + -0x5e8)) >> ((bVar7 ^ 199) & 0x3f);
  *(ulonglong *)(lVar9 + -0x2b0) = uVar40 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar9 + -0xc18) =
       CONCAT44(uVar12,uVar12) ^ uVar28 ^ uVar42 ^ uVar28 ^ 0xe887248673ee2b2f;
  uVar23 = (ulonglong)DAT_182671d20;
  uVar40 = (*(ulonglong *)(lVar9 - (uVar37 ^ 0x4b56d2c5)) ^ uVar49 | uVar40) ^ uVar48;
  *(ulonglong *)(lVar9 + -0xa70) = uVar40;
  *(byte *)(lVar9 + -0xa81) =
       *(byte *)(*(ulonglong *)(lVar9 + -0x1a8) ^ uVar23) ^ (byte)DAT_182671f14;
  uVar11 = DAT_182671c90;
  uVar13 = DAT_182671c64;
  uVar23 = (ulonglong)DAT_182671c64;
  *puVar3 = uVar52 ^ uVar27 ^ uVar34 ^ uVar48 ^ uVar40;
  uVar10 = DAT_182671d54;
  uVar34 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(lVar9 + -0x510) =
       (*(ulonglong *)(lVar9 - (uVar23 ^ 0x247472ba)) ^ uVar44) +
       (CONCAT44(uVar26,uVar11) ^ 0x79b6755cd6a7a687) ^ uVar34;
  uVar23 = CONCAT44(uVar10,uVar10);
  *puVar25 = (*puVar1 ^ uVar46) + (CONCAT44(uVar22,uVar16) ^ 0x998d80999c4646c3) ^ uVar23;
  uVar18 = DAT_182671e28;
  *(ulonglong *)(lVar9 + -0xa08) = uVar30 ^ *puVar2 | 0x62e96740640f1dab;
  uVar10 = DAT_182671cf4;
  uVar11 = DAT_182671c54;
  uVar28 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar9 + -0x110) =
       (*(ulonglong *)(lVar9 + -0x680) ^ uVar23) + (*(ulonglong *)(lVar9 + -0x510) ^ uVar34) ^
       uVar28;
  uVar40 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar9 - (uVar35 ^ 0x8670a83f)) =
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x7b2d7e4b)) ^ uVar34) << 0x10 ^ uVar40;
  *(uint *)(lVar9 + -0x634) = (DAT_182671c70 ^ 0xc1a0805) & *(uint *)(lVar9 + -0x1c8);
  *(ulonglong *)(lVar9 - (uVar51 ^ 0x200c0b39)) =
       (*(ulonglong *)(lVar9 + -0x510) ^ uVar34) >> (((byte)DAT_182671c88 ^ 0xcf) & 0x3f) ^ uVar47;
  uVar18 = DAT_182671d90;
  uVar23 = *(ulonglong *)(lVar9 + -0x110);
  uVar40 = *(ulonglong *)(lVar9 + -0x8f0) ^ uVar40 | uVar47 ^ *(ulonglong *)(lVar9 + -0xda8);
  *(ulonglong *)(lVar9 + -0xb18) = uVar40 ^ CONCAT44(DAT_182671ee8,DAT_182671ee8);
  uVar34 = CONCAT44(uVar18,uVar18);
  uVar40 = uVar40 ^ uVar28 ^ uVar31 ^ uVar23;
  *(ulonglong *)(lVar9 + -0x888) = uVar40;
  uVar30 = (uVar27 ^ *(ulonglong *)(lVar9 + -0x380)) + (uVar40 ^ uVar31) ^ uVar34;
  *(ulonglong *)(lVar9 + -0xa50) = uVar30;
  uVar27 = (*(ulonglong *)(lVar9 - (uVar38 ^ 0x771c2f51)) ^ uVar31) << ((bVar21 ^ 0xa1) & 0x3f);
  uVar40 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar9 + -0x760) = uVar27 ^ uVar29;
  uVar10 = DAT_182671ce0;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(lVar9 + -0xb08) =
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar13 ^ 0x24747c1a)) ^ uVar31) >>
       ((bVar36 ^ 0xd5) & 0x3f) ^ uVar40;
  uVar12 = DAT_182671c5c;
  uVar31 = CONCAT44(uVar10,uVar10);
  uVar42 = (ulonglong)DAT_182671c5c;
  uVar40 = (*(ulonglong *)(lVar8 - (uVar32 ^ 0xa0af959d)) ^ uVar40 | uVar27) ^ uVar31;
  *(ulonglong *)(lVar8 + -0x408) = uVar40;
  uVar10 = DAT_182671d28;
  *(ulonglong *)(lVar8 + -0x828) =
       (CONCAT44(uVar22,uVar12) ^ 0x3d2b898bb5ed31de) << (((byte)uVar30 ^ (byte)uVar18) & 0x3f);
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar8 + -0x5e8) = uVar30 ^ uVar40 ^ uVar29 ^ uVar31 ^ uVar34;
  uVar15 = DAT_182671c74;
  uVar14 = DAT_182671c68;
  uVar40 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar8 - (uVar32 ^ 0xa0af928d)) =
       (*(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c74 ^ 0x7492239c)) ^ uVar52) +
       (uVar28 ^ uVar23) ^ uVar43;
  lVar8 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671fac,DAT_182671fac);
  puVar24 = (ulonglong *)(DAT_182671c40 + -0x408);
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (*(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x7146e016)) ^ uVar52) << ((bVar36 ^ 0xe0) & 0x3f)
       ^ uVar32;
  uVar19 = DAT_182671e94;
  *(ulonglong *)(lVar8 + -0x2b0) = *puVar24 ^ uVar31 | uVar29 ^ *(ulonglong *)(lVar8 + -0x5e8);
  uVar18 = DAT_182671c80;
  uVar10 = DAT_182671c48;
  lVar9 = DAT_182671c40;
  uVar23 = CONCAT44(uVar19,uVar19);
  uVar28 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(DAT_182671c40 + -0xa70) =
       (*(ulonglong *)(lVar8 - (uVar45 ^ 0x250872d)) ^ uVar52) >> ((bVar7 ^ 0xf2) & 0x3f) ^ uVar23;
  uVar32 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x7b2d7b6b)) ^ uVar32 |
           *(ulonglong *)(lVar9 - ((ulonglong)uVar15 ^ 0x74922e04)) ^ uVar23) ^ uVar28;
  *puVar4 = uVar32;
  uVar31 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar23 = *(ulonglong *)(lVar9 + -0xa50);
  uVar27 = *(ulonglong *)(lVar9 - (uVar37 ^ 0x4b56deed)) ^ uVar31 ^ uVar32 ^ uVar28 ^ uVar43;
  *puVar1 = uVar27;
  uVar30 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar9 + -0xa08) = (uVar23 ^ uVar34) + (uVar27 ^ uVar31) ^ uVar30;
  uVar40 = (ulonglong)DAT_182671c84;
  *puVar2 = CONCAT44(uVar17,uVar10) ^ uVar32 ^ uVar28 ^ 0xc9d777f44b9aa656;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0xd029511a)) =
       (uVar27 ^ uVar31) << (((byte)uVar18 ^ 0x51) & 0x3f) ^ uVar39;
  uVar11 = DAT_182671c6c;
  lVar8 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0xefbf9adf)) =
       (*puVar1 ^ uVar31) >> (((byte)uVar14 ^ 0xd7) & 0x3f) ^ uVar33;
  uVar19 = DAT_182671d48;
  uVar32 = CONCAT44(DAT_182671d00,DAT_182671d00);
  uVar23 = (ulonglong)DAT_182671c54;
  uVar33 = (uVar39 ^ *(ulonglong *)(lVar8 + -0x680) | *(ulonglong *)(lVar8 + -0x510) ^ uVar33) ^
           uVar32;
  *(ulonglong *)(lVar8 + -0x8f0) = uVar33;
  *(ulonglong *)(lVar8 + -0xda8) =
       *(ulonglong *)(lVar8 - (uVar23 ^ 0x7b2d7153)) ^ CONCAT44(uVar19,uVar19) ^ uVar33 ^ uVar32 ^
       uVar30;
  *(ulonglong *)(lVar8 - (uVar42 ^ 0xd0295c82)) =
       (CONCAT44(DAT_182671c88,uVar26) ^ 0x6efc174ebb7fd901) +
       (CONCAT44(uVar26,uVar11) ^ 0xc5efa198f78268aa);
  uVar27 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar8 + -0x380) =
       (*(ulonglong *)(lVar8 + -0xc18) ^ uVar43) + (uVar29 ^ *(ulonglong *)(lVar8 + -0x5e8)) ^
       uVar27;
  *(ulonglong *)(lVar8 - (uVar51 ^ 0x200c0e19)) =
       (*(ulonglong *)(lVar8 - (uVar34 ^ 0x31eb389c)) ^ uVar27) +
       (CONCAT44(uVar16,uVar12) ^ 0xa6dfe5eae7303180);
  lVar8 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671f20,DAT_182671f20);
  plVar5 = (longlong *)(DAT_182671c40 + -0x888);
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) << (((byte)uVar14 ^ 0xd6) & 0x3f) ^ uVar33;
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x8670abc7)) =
       *plVar5 - (CONCAT44(uVar18,uVar16) ^ 0xc1581b177c38cd6d);
  uVar32 = (ulonglong)DAT_182671c58;
  uVar35 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar8 - (uVar51 ^ 0x200c0eb9)) =
       (uVar29 ^ *(ulonglong *)(lVar8 + -0x5e8)) >> (((byte)uVar15 ^ 0x6c) & 0x3f) ^ uVar35;
  uVar23 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(int *)(lVar8 + -0x670) = *(int *)(lVar8 - (uVar37 ^ 0x4b56d779)) * *(int *)(lVar8 + -0xc70);
  *(ulonglong *)(lVar8 - (uVar40 ^ 0xf8bedbfb)) =
       (*(ulonglong *)(lVar8 - (uVar32 ^ 0x98a3b03e)) ^ uVar35 |
       uVar33 ^ *(ulonglong *)(lVar8 + -0x760)) ^ uVar23;
  uVar35 = CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar33 = uVar33 ^ *(ulonglong *)(lVar8 + -0x760);
  *(ulonglong *)(lVar8 + -0x408) =
       uVar35 ^ uVar23 ^ uVar27 ^ *(ulonglong *)(lVar8 + -0x380) ^ *(ulonglong *)(lVar8 + -0x110);
  uVar23 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar8 - (uVar38 ^ 0x771c2569)) = uVar33 >> ((byte)uVar33 & 0x3f);
  uVar18 = DAT_182671dc4;
  uVar40 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *puVar3 = (*(ulonglong *)(lVar8 + -0xa08) ^ uVar30) + (*(ulonglong *)(lVar8 + -0x408) ^ uVar35) ^
            uVar40;
  uVar33 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar8 - (uVar23 ^ 0x3bff3bcf)) =
       (*(ulonglong *)(lVar8 - (uVar32 ^ 0x98a3bc1e)) ^ uVar35) << 5 ^ uVar33;
  uVar38 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar23 = (*(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c94 ^ 0xf5a923ec)) ^ uVar35) >>
           (((byte)uVar10 ^ 0x85) & 0x3f);
  uVar32 = CONCAT44(DAT_182671efc,DAT_182671efc);
  *(ulonglong *)(lVar8 + -0xa70) = uVar23 ^ uVar38;
  uVar35 = (ulonglong)DAT_182671c54;
  uVar33 = (uVar33 ^ *(ulonglong *)(lVar8 + -0x30) | uVar23) ^ uVar32;
  *(ulonglong *)(lVar8 + -0xa50) = uVar33;
  uVar23 = *puVar3;
  *puVar4 = *(ulonglong *)(lVar8 - (uVar35 ^ 0x7b2d712b)) ^ uVar38 |
            CONCAT44(uVar13,uVar16) ^ 0xfaa8931dacb27869;
  uVar35 = CONCAT44(DAT_182671e50,DAT_182671e50);
  uVar40 = uVar33 ^ uVar23 ^ uVar35 ^ uVar32 ^ uVar40;
  *puVar2 = uVar40;
  *puVar1 = uVar40 ^ uVar35;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar6 ^ uVar22) * 4) = uVar20;
  return;
}



############ FUN_ 181004e00 size=5551 ############

void FUN_181004e00(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong *puVar32;
  uint uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte *pbVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte bVar45;
  uint uVar46;
  longlong *plVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  byte local_128;
  byte local_108;
  
  uVar2 = DAT_182671e10;
  uVar18 = DAT_182671c84;
  uVar17 = DAT_182671c80;
  uVar15 = DAT_182671c78;
  uVar14 = DAT_182671c74;
  uVar13 = DAT_182671c70;
  uVar12 = DAT_182671c68;
  uVar10 = DAT_182671c5c;
  uVar9 = DAT_182671c58;
  uVar36 = (ulonglong)DAT_182671c70;
  uVar28 = (ulonglong)DAT_182671c78;
  uVar50 = (ulonglong)DAT_182671c68;
  uVar51 = (ulonglong)DAT_182671c58;
  uVar42 = (ulonglong)DAT_182671c74;
  uVar52 = (ulonglong)DAT_182671c5c;
  uVar43 = (ulonglong)DAT_182671c84;
  uVar33 = DAT_182671c58 ^ DAT_182671c5c;
  uVar31 = DAT_182671c74 - DAT_182671c84;
  uVar30 = DAT_182671c80 << 0x10 | DAT_182671c80 >> 0x10;
  uVar23 = DAT_182671c78 | DAT_182671c68;
  uVar46 = (DAT_182671c70 << 0x10 | DAT_182671c70 & 0xff00) << 8 | DAT_182671c70 >> 8 & 0xff00 |
           DAT_182671c70 >> 0x18;
  uVar49 = *(uint *)(&DAT_182613218 + DAT_1826720b4) ^ DAT_182671c78;
  uVar22 = *(uint *)(&DAT_182613220 + DAT_1826720b4) ^ DAT_182671c68;
  uVar27 = (ulonglong)uVar23;
  uVar37 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  uVar29 = (ulonglong)uVar30;
  uVar48 = (ulonglong)uVar46;
  DAT_182671c50 = uVar31;
  DAT_182671c6c = uVar46;
  DAT_182671c88 = uVar23;
  DAT_182671c8c = uVar30;
  DAT_182671c94 = uVar33;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0x6cab74f4)) =
       *(longlong *)(DAT_182671c40 + -0x310) +
       ((CONCAT44(DAT_182671c80,DAT_182671c70) ^ 0x462ad9d9d1da57ac) +
       (CONCAT44(uVar23,uVar30) ^ 0xffdbdbffd9d9462a) * 0xc) * 8 ^ uVar37;
  lVar3 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0x462adff1)) =
       CONCAT44(uVar2,uVar2) ^ *(ulonglong *)(*(ulonglong *)(DAT_182671c40 + -0x610) ^ uVar37) ^
       uVar26;
  uVar5 = DAT_182671e38;
  puVar24 = (ulonglong *)(lVar3 - ((ulonglong)uVar46 ^ 0xaa57dcf9));
  uVar37 = (ulonglong)uVar33;
  *(ulonglong *)(lVar3 + -0x110) =
       (ulonglong)*(ushort *)((longlong)puVar24 + 6) ^ (ulonglong)(DAT_182671e10 >> 0x10) ^
       CONCAT44(DAT_182671e38,DAT_182671e38);
  lVar4 = DAT_182671c40;
  puVar25 = (ulonglong *)(lVar3 - (uVar37 ^ 0x3f94cc18));
  uVar34 = (ulonglong)uVar31;
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xb7d30576)) =
       CONCAT44(uVar31,uVar46) ^ *puVar25 ^ 0xf400225bda55708b;
  *(byte *)(lVar4 + -0x182) = (byte)uVar5 ^ *(byte *)(lVar4 + -0x110) ^ (byte)DAT_182671fac;
  *(int *)(lVar4 - (uVar37 ^ 0x3f94cc4c)) =
       *(int *)(lVar4 + -0x784) << (((byte)(uVar17 >> 0x10) ^ 0x36) & 0x1f);
  pbVar38 = (byte *)(*(longlong *)(lVar4 + -0x870) + 0x36);
  *(ulonglong *)(lVar4 + -0x2d8) = (ulonglong)pbVar38 ^ (ulonglong)DAT_182671ec0;
  uVar6 = DAT_182671e70;
  *pbVar38 = *(byte *)(lVar4 - ((ulonglong)uVar9 ^ 0x7ff3fee9)) ^ (byte)DAT_182671f14 ^
             (byte)DAT_182671fac;
  uVar5 = DAT_182671d2c;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x310) +
           ((CONCAT44(uVar13,uVar31) ^ 0xd1da57aa2680990d) +
           (CONCAT44(uVar10,uVar31) ^ 0x4067315b2680990b) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0x2e8) = (ulonglong)puVar1 ^ CONCAT44(uVar6,uVar6);
  uVar40 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar4 + -0x628) = *puVar1 ^ uVar40 ^ uVar26;
  uVar8 = DAT_182671f6c;
  lVar3 = DAT_182671c40;
  uVar41 = (ulonglong)DAT_182671f6c;
  local_108 = (byte)uVar17;
  puVar53 = (ulonglong *)(lVar4 - (uVar29 ^ 0xd9d94002));
  uVar44 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar40 = (*puVar53 ^ uVar40) >> ((local_108 ^ 0xe1) & 0x3f) ^ uVar44;
  bVar35 = (byte)DAT_182671f44 ^ (byte)uVar40 ^ (byte)DAT_182671ca4;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar40;
  *(byte *)(lVar3 - ((ulonglong)uVar15 ^ 0xb7d305df)) = bVar35;
  *(ulonglong *)(lVar3 - (uVar52 ^ 0x40673873)) =
       (CONCAT44(uVar31,uVar18) ^ 0x2680990b462ad9ee) + *(longlong *)(lVar3 + -0x870) ^ uVar41;
  *(byte *)(*(ulonglong *)(lVar3 + -0x928) ^ uVar41) =
       *(byte *)(lVar3 + -0xd21) ^ (byte)DAT_182671ca4 ^ (byte)DAT_182671f14;
  uVar40 = CONCAT44(DAT_182671d88,DAT_182671d88);
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar50 ^ 0xfe08de3f)) ^ uVar44) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar48 ^ 0xaa57d8f9)) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xd9d9403a)) =
       *(longlong *)(lVar3 + -0x310) + 0x38 + (CONCAT44(uVar13,uVar9) ^ 0xd1da57aa7ff3ff6b) * 0x60 ^
       uVar40;
  uVar44 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar3 - (uVar37 ^ 0x3f94c818)) =
       *(ulonglong *)(lVar3 - (uVar43 ^ 0x462ad471)) ^ uVar44 |
       CONCAT44(uVar10,uVar17) ^ 0x75baf9c3ab2072a4;
  uVar5 = DAT_182671f90;
  uVar41 = CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar40 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x610) ^ uVar40) ^ uVar41 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x228) = uVar40;
  *(ulonglong *)(lVar3 + -0xd88) = CONCAT44(uVar17,uVar23) ^ 0xc8ffccfd3efffbf7 | 0x48fb80b53e5bf9d4
  ;
  bVar35 = (byte)DAT_182671de4;
  puVar32 = (ulonglong *)(lVar3 - (uVar42 ^ 0x6cab73f4));
  *puVar32 = uVar40 ^ CONCAT44(uVar5,uVar5) ^ uVar41;
  uVar40 = (ulonglong)DAT_182671e84;
  *(byte *)(lVar3 + -0xc9d) = (byte)uVar5 ^ *(byte *)(lVar3 + -0x110) ^ bVar35;
  *(ulonglong *)(DAT_182671c40 - (uVar51 ^ 0x7ff3f3db)) =
       (CONCAT44(uVar12,uVar31) ^ 0xfe08d3b726809933) + *(longlong *)(DAT_182671c40 + -0x870) ^
       uVar40;
  uVar6 = DAT_182671edc;
  lVar3 = DAT_182671c40;
  bVar35 = bVar35 ^ (byte)DAT_182671f14;
  *(ulonglong *)(DAT_182671c40 - (uVar48 ^ 0xaa57d779)) =
       (*(ulonglong *)(DAT_182671c40 + -0x110) ^ CONCAT44(uVar5,uVar5)) <<
       ((byte)*(undefined8 *)(DAT_182671c40 - (uVar27 ^ 0xffdbddd7)) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar3 + -0xcb0) ^ uVar40) = bVar35 ^ *(byte *)(lVar3 + -0xc9d);
  uVar5 = DAT_182671d60;
  uVar40 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar3 + -0x2e8) =
       (CONCAT44(uVar13,uVar18) ^ 0xd1da57aa462ad9d9) * 0x60 + *(longlong *)(lVar3 + -0x310) + 0x38
       ^ uVar40;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x6cab7f6c)) =
       (CONCAT44(uVar10,uVar9) ^ 0x4f27b8d8e7fda655) -
       (CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar3 + -0xbd8));
  lVar3 = DAT_182671c40;
  uVar41 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *puVar25 = *(ulonglong *)(*(ulonglong *)(DAT_182671c40 + -0x2e8) ^ uVar40) ^ uVar41 ^ uVar26;
  lVar4 = DAT_182671c40;
  *puVar53 = (*(ulonglong *)(lVar3 + -0x228) ^ uVar41) >> ((local_108 ^ 0xd1) & 0x3f) ^
             CONCAT44(uVar6,uVar6);
  *(byte *)(lVar4 + -0x889) = (byte)uVar6 ^ (byte)uVar8 ^ (byte)*puVar24;
  uVar2 = DAT_182671d4c;
  uVar40 = (ulonglong)DAT_182671f88;
  uVar41 = (ulonglong)DAT_182671d4c;
  *(ulonglong *)(lVar4 - (uVar43 ^ 0x462adc39)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar12 ^ 0xfe08dbc7)) +
       (CONCAT44(uVar17,uVar9) ^ 0x462ad9d97ff3ff52) ^ uVar40;
  *(byte *)(*(ulonglong *)(lVar4 + -0x5e0) ^ uVar40) =
       (byte)uVar8 ^ *(byte *)(lVar4 + -0x889) ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar4 + -0x110) =
       *(ulonglong *)(lVar4 - (uVar34 ^ 0x26809183)) >>
       (((byte)uVar5 ^ *(byte *)(lVar4 + -0xbd8)) & 0x3f);
  plVar47 = (longlong *)(lVar4 - (uVar36 ^ 0xd1da54ba));
  puVar1 = (ulonglong *)(*plVar47 + (CONCAT44(uVar10,uVar30) ^ 0x4067315bd9d9462d) * 8);
  *(ulonglong *)(lVar4 + -0x610) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar5 = DAT_182671ecc;
  lVar3 = DAT_182671c40;
  puVar25 = (ulonglong *)(lVar4 - (uVar27 ^ 0xffdbd657));
  *puVar25 = *puVar1 ^ CONCAT44(uVar2,uVar2) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x228) =
       ((ulonglong)(uVar2 >> 0x10) | uVar41 << 0x10) ^ *(ulonglong *)(lVar3 + -0xda8) >> 0x10 ^
       CONCAT44(uVar5,uVar5);
  uVar40 = (ulonglong)DAT_182671ec4;
  *puVar53 = *(ulonglong *)(lVar3 - (uVar37 ^ 0x3f94cf20)) |
             CONCAT44(uVar14,uVar31) ^ 0x8317aa8a15f7b110;
  *(byte *)(lVar3 - (uVar48 ^ 0xaa57d690)) =
       (byte)uVar5 ^ *(byte *)(lVar3 + -0x228) ^ (byte)DAT_182671d30;
  uVar5 = DAT_182671cfc;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xffdbdacf)) = *(longlong *)(lVar3 + -0x870) + 0x3aU ^ uVar40;
  uVar6 = DAT_182671f14;
  *(byte *)(*(ulonglong *)(lVar3 + -0x130) ^ uVar40) =
       *(byte *)(lVar3 + -0xc41) ^ (byte)DAT_182671d30 ^ (byte)DAT_182671f14;
  puVar1 = (ulonglong *)(*plVar47 + (CONCAT44(uVar17,uVar15) ^ 0x462ad9d9b7d308f9) * 8);
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)puVar1 ^ CONCAT44(uVar6,uVar6);
  local_128 = (byte)uVar9;
  *(ulonglong *)(lVar3 + -0x888) =
       (CONCAT44(uVar15,uVar14) ^ 0x45f4b0037eeaa123) + 0x11edf0f0adea9e9c;
  uVar40 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar41 = *puVar1 ^ uVar40 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar41;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar41 ^ uVar40) >> ((local_128 ^ 0x73) & 0x3f) ^ CONCAT44(uVar5,uVar5);
  lVar3 = DAT_182671c40;
  uVar40 = (ulonglong)DAT_182671f30;
  bVar35 = (byte)uVar5 ^ (byte)DAT_182671cb4;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (CONCAT44(uVar33,uVar17) ^ 0x8b5e01212ec10694) + *(longlong *)(DAT_182671c40 + -0xd88);
  uVar5 = DAT_182671c64;
  bVar35 = bVar35 ^ (byte)*puVar32;
  pbVar38 = (byte *)((CONCAT44(uVar13,uVar10) ^ 0xd1da57aa40673160) + *(longlong *)(lVar3 + -0x870))
  ;
  *(ulonglong *)(lVar3 + -0x4a0) = (ulonglong)pbVar38 ^ uVar40;
  *(byte *)(lVar3 + -0x27e) = bVar35;
  uVar6 = DAT_182671ef0;
  uVar16 = DAT_182671c7c;
  uVar11 = DAT_182671c60;
  bVar35 = bVar35 ^ (byte)DAT_182671cb4 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar3 + -0x228) =
       CONCAT44(uVar5,uVar18) ^ CONCAT44(uVar12,uVar15) ^ 0x90667858fc4ccef3;
  *pbVar38 = bVar35;
  lVar4 = DAT_182671c40;
  uVar40 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x26809f1b)) =
       *(longlong *)(lVar3 + -0x310) +
       ((CONCAT44(uVar16,uVar13) ^ 0x27841888d1da57ad) +
       (CONCAT44(uVar11,uVar30) ^ 0x2d0bbeead9d9462a) * 0xc) * 8 ^ uVar40;
  uVar6 = DAT_182671f80;
  *(ulonglong *)(lVar3 + -0x888) =
       0x161ccdddadf695a8 >> ((*(byte *)(lVar3 + -0xda8) ^ (byte)uVar2) & 0x3f);
  uVar41 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - (uVar52 ^ 0x40673a83)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x610) ^ uVar40) ^ uVar41 ^ uVar26;
  uVar6 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  bVar39 = (byte)DAT_182671e90;
  uVar48 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xd9d94ba2)) =
       0x11d23892c1f1af3d - (CONCAT44(uVar46,uVar5) ^ 0x6377b4027861441a);
  bVar35 = (byte)DAT_182671cd4;
  uVar40 = (ulonglong)DAT_182671d48;
  uVar41 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x2d0bb532)) ^ uVar41) >>
           (((byte)uVar12 ^ 0x97) & 0x3f) ^ uVar48;
  bVar39 = bVar39 ^ (byte)DAT_182671cd4;
  *(ulonglong *)(lVar3 + -0x628) = uVar41;
  bVar39 = bVar39 ^ (byte)uVar41;
  *(byte *)(lVar3 + -0x6e9) = bVar39;
  pbVar38 = (byte *)((CONCAT44(uVar33,uVar46) ^ 0x3f94ce30aa57daed) + *(longlong *)(lVar3 + -0x870))
  ;
  bVar45 = (byte)DAT_182671f14;
  *(ulonglong *)(lVar3 + -0xae0) = (ulonglong)pbVar38 ^ uVar40;
  *pbVar38 = bVar35 ^ bVar39 ^ bVar45;
  uVar8 = DAT_182671c54;
  uVar5 = DAT_182671c48;
  uVar41 = CONCAT44(DAT_182671c48,uVar13);
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 + -0x310) +
           ((uVar41 ^ 0xfddbffead1da57ad) + (CONCAT44(uVar15,uVar46) ^ 0xb7d308feaa57dad1) * 0xc) *
           8);
  uVar40 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar19 = DAT_182671c90;
  lVar4 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c90;
  uVar42 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0x300017c2)) ^ uVar48) >> (((byte)uVar6 ^ 0x58) & 0x3f);
  uVar20 = DAT_182671e18;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x6de3ba43)) = *puVar1 ^ uVar42 ^ uVar26;
  *puVar25 = (*(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x26809b23)) ^ uVar42) >>
             (((byte)uVar18 ^ 0xf1) & 0x3f) ^ CONCAT44(uVar20,uVar20);
  uVar34 = (ulonglong)DAT_182671d00;
  bVar35 = (byte)DAT_182671d00;
  *(byte *)(lVar4 + -0x183) = (byte)uVar20 ^ *(byte *)(lVar4 + -0xda8) ^ bVar35;
  uVar7 = DAT_182671c4c;
  *(ulonglong *)(lVar4 + -0x888) =
       CONCAT44(uVar6,uVar5) ^ CONCAT44(uVar8,uVar31) ^ 0xaf767ee86aa90e80;
  uVar40 = (ulonglong)DAT_182671f00;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xd1da5a22)) =
       (CONCAT44(uVar6,uVar14) ^ 0x60790ec7bbe4fb51) - (CONCAT44(uVar9,uVar7) ^ 0x799566443bef1c34);
  uVar7 = DAT_182671dd0;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xffdbdbb7)) =
       (uVar41 ^ 0xfddbffead1da5797) + *(longlong *)(lVar4 + -0x870) ^ uVar40;
  *(byte *)(*(ulonglong *)(lVar4 + -0x48) ^ uVar40) =
       *(byte *)(lVar4 - (uVar28 ^ 0xb7d3097d)) ^ bVar35 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xd9d94df2)) =
       *(longlong *)(lVar4 + -0xd88) - (CONCAT44(uVar9,uVar14) ^ 0x7952a2a0b4b47aba);
  uVar21 = DAT_182671f5c;
  uVar2 = DAT_182671c60;
  uVar6 = DAT_182671c4c;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x310) +
           ((CONCAT44(uVar16,uVar17) ^ 0x27841888462ad9de) +
           (CONCAT44(uVar33,uVar17) ^ 0x3f94ce30462ad9d9) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0x610) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671dac,DAT_182671dac);
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar21,uVar21);
  uVar40 = *puVar1 ^ uVar29 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x628) = uVar40;
  uVar27 = (ulonglong)DAT_182671e78;
  pbVar38 = (byte *)((CONCAT44(uVar12,uVar6) ^ 0xfe08d3b75b31677e) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar29 ^ uVar40) >> (((byte)uVar2 ^ 0xda) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  bVar35 = (byte)uVar7 ^ *(byte *)(lVar3 + -0x110);
  bVar45 = bVar35 ^ (byte)DAT_182671d7c;
  *(ulonglong *)(lVar3 + -0xd80) = (ulonglong)pbVar38 ^ uVar27;
  *(byte *)(lVar3 + -0x261) = bVar45;
  uVar7 = DAT_182671cec;
  bVar39 = (byte)DAT_182671f14;
  *pbVar38 = bVar35 ^ bVar39;
  uVar27 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x2e8) =
       (CONCAT44(uVar9,uVar14) ^ 0x7ff3ff6b6cab72e4) * 0x60 +
       *(longlong *)(lVar3 - (uVar50 ^ 0xfe08d0a7)) + 0x38 ^ uVar27;
  uVar2 = DAT_182671ea0 >> 0x18;
  *(ulonglong *)(lVar3 + -0x888) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar28 ^ 0xb7d30a16)) ^ uVar27) ^
       CONCAT44(DAT_182671ea0,DAT_182671ea0) ^ uVar26;
  *(ulonglong *)(lVar3 + -0xd88) =
       (CONCAT44(uVar10,uVar33) ^ 0x487cd9f3bd4621a) -
       (*(ulonglong *)(lVar3 + -0xda8) ^ CONCAT44(uVar20,uVar20));
  bVar35 = (byte)DAT_182671ed8;
  uVar27 = (ulonglong)*(byte *)(lVar3 + -0x881) ^ (ulonglong)uVar2;
  uVar40 = uVar27 ^ CONCAT44(DAT_182671e54,DAT_182671e54);
  bVar45 = (byte)DAT_182671e54 ^ (byte)DAT_182671ed8 ^ (byte)uVar40;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar40;
  uVar40 = (ulonglong)DAT_182671d6c;
  *(byte *)(lVar3 + -0xc1) = bVar45;
  *(ulonglong *)(lVar3 + -0xda8) = (uVar29 ^ *(ulonglong *)(lVar3 + -0x628)) - uVar27;
  pbVar38 = (byte *)((CONCAT44(uVar13,uVar19) ^ 0xd1da57aa6de3b854) + *(longlong *)(lVar3 + -0x870))
  ;
  *(ulonglong *)(lVar3 + -0x710) = (ulonglong)pbVar38 ^ uVar40;
  uVar20 = DAT_182671ec8;
  *pbVar38 = bVar35 ^ bVar45 ^ bVar39;
  uVar7 = DAT_182671e68;
  uVar2 = DAT_182671c60;
  uVar29 = (ulonglong)DAT_182671c60;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 + -0x310) +
           ((CONCAT44(uVar16,uVar46) ^ 0x27841888aa57dad9) +
           (CONCAT44(uVar8,uVar31) ^ 0x300011ea2680990b) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar1 ^ CONCAT44(uVar20,uVar20);
  uVar20 = DAT_182671f7c;
  uVar40 = CONCAT44(uVar7,uVar7);
  uVar27 = *puVar1 ^ uVar40 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xd88) = uVar27;
  bVar35 = (byte)DAT_182671e28;
  uVar27 = CONCAT44(uVar20,uVar20) ^ uVar40 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x628) = uVar27;
  *(byte *)(lVar3 + -0x9c1) = (byte)uVar20 ^ bVar35 ^ (byte)uVar27;
  uVar27 = (ulonglong)DAT_182671e10;
  *(ulonglong *)(lVar3 - (uVar51 ^ 0x7ff3fdd3)) =
       *(longlong *)(lVar3 - (uVar52 ^ 0x4067392b)) + 0x40U ^ uVar27;
  uVar7 = DAT_182671d80;
  *(byte *)(*(ulonglong *)(lVar3 + -0x2b8) ^ uVar27) = bVar35 ^ *(byte *)(lVar3 + -0x9c1) ^ bVar39;
  lVar3 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x2d0bbc02)) =
       *(longlong *)(DAT_182671c40 + -0x310) +
       ((CONCAT44(uVar12,uVar31) ^ 0xfe08d3b726809903) +
       (CONCAT44(uVar30,DAT_182671c64) ^ 0xd9d9462a5b316740) * 0xc) * 8 ^ uVar27;
  bVar35 = (byte)DAT_182671f68;
  lVar4 = DAT_182671c40;
  bVar45 = (byte)uVar7 ^ (byte)DAT_182671f68;
  *puVar24 = (*(ulonglong *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x2e8)) ^ uVar26) >>
             (((byte)uVar23 ^ 0xf7) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *(byte *)(lVar4 + -0x1c3) = bVar45 ^ *(byte *)(lVar4 + -0x628);
  uVar41 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar4 + -0xbd8) =
       CONCAT44(uVar15,uVar19) ^ uVar40 ^ *(ulonglong *)(lVar4 + -0xd88) ^ 0xbcbe7cf5d02e95c9;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x27841aa8)) =
       (CONCAT44(uVar31,uVar9) ^ 0x2680990b7ff3ff2a) + *(longlong *)(lVar4 + -0x870) ^ uVar34;
  bVar35 = bVar35 ^ *(byte *)(lVar4 + -0x1c3) ^ (byte)DAT_182671f14;
  *(undefined8 *)(lVar4 + -0x628) = 0x488c1b6a889ca5e0;
  *(byte *)(*(ulonglong *)(lVar4 + -0x220) ^ uVar34) = bVar35;
  uVar7 = DAT_182671f18;
  uVar29 = CONCAT44(DAT_182671e20,DAT_182671e20);
  uVar27 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar4 + -0x610) =
       *(longlong *)(lVar4 + -0x310) +
       ((CONCAT44(uVar11,uVar18) ^ 0x2d0bbeea462ad9d1) +
       (CONCAT44(uVar46,uVar6) ^ 0xaa57dad15b316740) * 0xc) * 8 ^ uVar29;
  uVar40 = CONCAT44(uVar7,uVar7);
  uVar26 = *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar27 ^ 0x300017fa)) ^ uVar29) ^ uVar40 ^ uVar26;
  *(ulonglong *)(lVar4 + -0xd88) = uVar26;
  bVar35 = (byte)DAT_182671ccc ^ (byte)DAT_182671e08;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x3f94c5e8)) =
       (uVar26 ^ uVar40) >> ((local_108 ^ 0xc9) & 0x3f) ^ uVar44;
  *(byte *)(lVar4 - (uVar41 ^ 0x27841d9a)) = bVar35 ^ *(byte *)(lVar4 + -0xbd8);
  *(ulonglong *)(lVar4 + -0x290) =
       (CONCAT44(uVar5,uVar2) ^ 0xfddbffea2d0bbea8) + *(longlong *)(lVar4 + -0x870) ^
       (ulonglong)DAT_182671fa8;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar22 * 4) = uVar49;
  return;
}



############ FUN_ 180f75f20 size=5388 ############

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

void FUN_180f75f20(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  longlong lVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong *puVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  longlong lVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_f0;
  
  uVar8 = DAT_182671cfc;
  uVar10 = DAT_182671c84;
  uVar9 = DAT_182671c80;
  uVar15 = DAT_182671c60;
  uVar7 = DAT_182671c48;
  lVar6 = DAT_182671c40;
  uVar40 = (ulonglong)DAT_182671c80;
  uVar21 = DAT_182671c80 & DAT_182671c48;
  uVar30 = (ulonglong)DAT_182671c60;
  uVar36 = DAT_182671c60 - DAT_182671c84;
  uVar18 = *(uint *)(&DAT_182613218 + DAT_1826721f8) ^ DAT_182671c80;
  uVar14 = *(uint *)(&DAT_182613220 + DAT_1826721f8) ^ DAT_182671c48;
  uVar42 = CONCAT44(DAT_182671f58,DAT_182671f58);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x3d8);
  uVar27 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar23 = CONCAT44(DAT_182671df8,DAT_182671df8);
  DAT_182671c70 = uVar36;
  DAT_182671c88 = uVar21;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       CONCAT44(DAT_182671e88,DAT_182671e88) ^ *(ulonglong *)(DAT_182671c40 + -0xda8) ^
       *(ulonglong *)(DAT_182671c40 + -0x8f0) ^ uVar27 ^ uVar42;
  uVar11 = DAT_182671dd8;
  uVar34 = (ulonglong)uVar21;
  uVar43 = CONCAT44(uVar8,uVar8);
  *puVar1 = (*(ulonglong *)(lVar6 - (uVar34 ^ 0x4b202382)) ^ uVar23) +
            (CONCAT44(DAT_182671d14,DAT_182671d14) ^ *(ulonglong *)(lVar6 + -0x828)) ^ uVar43;
  lVar25 = DAT_182671c40;
  uVar19 = (ulonglong)uVar10;
  bVar17 = (byte)uVar10;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar31 = (ulonglong)uVar36;
  bVar39 = (byte)uVar9;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar36 ^ 0x32b96caf)) =
       (uVar23 ^ *(ulonglong *)(lVar6 + -0x380)) << ((bVar17 ^ 0xe7) & 0x3f) ^ uVar26;
  uVar8 = DAT_182671f5c;
  uVar23 = (uVar23 ^ *(ulonglong *)(lVar25 + -0x380)) >> ((bVar39 ^ 0xb2) & 0x3f);
  uVar28 = (ulonglong)uVar7;
  bVar35 = (byte)uVar21;
  *(ulonglong *)(lVar25 + -0xa08) = uVar23 ^ CONCAT44(DAT_182671d38,DAT_182671d38);
  uVar32 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar25 + -0x7e8) =
       (CONCAT44(uVar21,uVar7) ^ 0xcbb6ff425142501a) << ((bVar35 ^ 0x19) & 0x3f);
  *(ulonglong *)(lVar25 - ((ulonglong)uVar9 ^ 0xcfa0780e)) =
       (*(ulonglong *)(lVar25 - (uVar19 ^ 0xf8bedadb)) ^ uVar26 | uVar23) ^ uVar32;
  uVar37 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  puVar2 = (ulonglong *)(lVar25 + -0xb08);
  uVar41 = *(ulonglong *)(lVar25 + -0x888) ^ *puVar1 ^ uVar37 ^ uVar32 ^ uVar43;
  *puVar2 = uVar41;
  uVar32 = CONCAT44(DAT_182671f20,DAT_182671f20);
  puVar3 = (ulonglong *)(lVar25 + -0x680);
  *(ulonglong *)(lVar25 + -0x510) =
       (*(ulonglong *)(lVar25 + -0x8f0) ^ uVar27) + (uVar41 ^ uVar37) ^ uVar32;
  uVar8 = DAT_182671ea8;
  uVar33 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *puVar3 = (uVar41 ^ uVar37) << (((byte)uVar15 ^ 0xb0) & 0x3f) ^ uVar33;
  uVar23 = CONCAT44(uVar8,uVar8);
  bVar29 = (byte)uVar36;
  puVar4 = (ulonglong *)(lVar25 + -0x2b0);
  *(ulonglong *)(lVar25 - (uVar31 ^ 0x32b96e2f)) =
       (uVar41 ^ uVar37) >> ((bVar29 ^ 0x99) & 0x3f) ^ uVar23;
  uVar38 = *(ulonglong *)(lVar25 + -0x760) ^ uVar42;
  uVar27 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar25 + -0xa50) = (*puVar4 ^ uVar23 | uVar33 ^ *puVar3) ^ uVar27;
  uVar8 = DAT_182671cf4;
  uVar46 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(lVar25 + -0xb18) =
       *(ulonglong *)(lVar25 - (uVar40 ^ 0xcfa07596)) ^
       *(ulonglong *)(lVar25 - (uVar34 ^ 0x4b202a52)) ^ uVar46 ^ uVar27 ^ uVar32;
  lVar6 = DAT_182671c40;
  uVar33 = CONCAT44(uVar8,uVar8);
  uVar27 = (*(ulonglong *)(lVar25 - ((ulonglong)uVar15 ^ 0x2b784452)) ^ uVar43) + uVar38 ^ uVar33;
  uVar38 = uVar38 << ((bVar35 ^ 0x14) & 0x3f);
  uVar23 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar27;
  uVar8 = DAT_182671e24;
  *(ulonglong *)(lVar6 + -0x4b8) = uVar38 ^ uVar23;
  uVar12 = DAT_182671d70;
  uVar23 = CONCAT44(uVar8,uVar8);
  uVar41 = (ulonglong)DAT_182671d70;
  *(ulonglong *)(lVar6 + -0x628) =
       (*(ulonglong *)(lVar6 + -0x760) ^ uVar42) >> ((bVar39 ^ 0xac) & 0x3f) ^ uVar23;
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar37 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar23 = (*(ulonglong *)(lVar6 - (uVar31 ^ 0x32b96ab7)) ^ uVar23 | uVar38) ^ uVar37;
  puVar24 = (ulonglong *)(lVar6 - (uVar28 ^ 0x5b7b2893));
  *(ulonglong *)(lVar6 + -0xa70) = uVar23;
  *puVar24 = uVar27 ^ uVar42 ^ uVar37 ^ uVar33 ^ uVar23;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x32b96d8f)) =
       (uVar42 ^ *(ulonglong *)(lVar6 + -0x5e8)) >> ((bVar17 ^ 0xcf) & 0x3f);
  uVar27 = CONCAT44(DAT_182671d94,DAT_182671d94);
  puVar5 = (ulonglong *)(lVar6 + -0xc18);
  uVar37 = (uVar42 ^ *(ulonglong *)(lVar6 + -0x5e8)) + (*(ulonglong *)(lVar6 + -0x510) ^ uVar32) ^
           uVar27;
  *puVar5 = uVar37;
  uVar32 = (*(ulonglong *)(lVar6 - (uVar34 ^ 0x4b2025ea)) ^ uVar42) << ((bVar29 ^ 0xbf) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar32 ^ CONCAT44(DAT_182671ed4,DAT_182671ed4);
  lVar6 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671f80,DAT_182671f80);
  *(ulonglong *)(DAT_182671c40 + -0x828) = *puVar24 >> 0x20 ^ uVar38 ^ uVar41;
  puVar20 = (ulonglong *)(lVar6 - (uVar19 ^ 0xf8bed2c3));
  uVar23 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  uVar41 = (uVar38 ^ *puVar20 | uVar32) ^ uVar23;
  *(ulonglong *)(lVar6 + -0x380) = uVar41;
  uVar8 = DAT_182671d40;
  *(ulonglong *)(lVar6 + -0x7e8) =
       (CONCAT44(uVar21,uVar10) ^ 0x5c0d26d3ee55dc45) -
       (CONCAT44(uVar15,uVar15) ^ 0x37e7801ce9fe5d95);
  uVar32 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 + -0x30) = uVar32 ^ uVar23 ^ uVar37 ^ uVar27 ^ uVar41;
  *(ulonglong *)(lVar6 + -0xa08) =
       (*(ulonglong *)(lVar6 + -0x408) ^ uVar33) + (uVar46 ^ *(ulonglong *)(lVar6 + -0xb18)) ^
       uVar33;
  uVar8 = DAT_182671d64;
  *(longlong *)(lVar6 + -0x888) = *(longlong *)(lVar6 - (uVar40 ^ 0xcfa0776e)) << 0x18;
  uVar11 = DAT_182671d74;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 + -0x8f0) =
       (*(ulonglong *)(lVar6 - (uVar40 ^ 0xcfa07b9e)) ^ uVar46) << 0x20 ^ uVar23;
  lVar6 = DAT_182671c40;
  uVar37 = CONCAT44(uVar11,uVar11);
  *puVar2 = (uVar46 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) >> ((bVar39 ^ 0xa6) & 0x3f) ^ uVar37;
  lVar25 = DAT_182671c40;
  uVar46 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x4b202682)) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0x2b784c82)) ^ uVar37 |
       *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xcfa07876)) ^ uVar23) ^ uVar46;
  uVar23 = *(ulonglong *)(lVar25 + -0x828);
  uVar41 = CONCAT44(DAT_182671f30,DAT_182671f30);
  puVar24 = (ulonglong *)(lVar25 - (uVar30 ^ 0x2b78410a));
  *puVar4 = *(ulonglong *)(lVar25 - (uVar31 ^ 0x32b96697)) ^ uVar41 ^ uVar46 ^ uVar33 ^ *puVar24;
  *(ulonglong *)(lVar25 + -0xa50) = (uVar46 ^ *puVar3) - (uVar38 ^ uVar23);
  uVar23 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x32b96f47)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x4b2022b2)) ^ uVar41) +
       (CONCAT44(uVar36,uVar7) ^ 0x427e7f2a03fa17d5) ^ uVar23;
  uVar11 = DAT_182671f78;
  lVar6 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar41 = (*puVar5 ^ uVar27) + (CONCAT44(uVar36,uVar10) ^ 0x6b031f52c1a6e3d3) ^ uVar38;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar41;
  uVar8 = DAT_182671dac;
  uVar38 = (*(ulonglong *)(lVar6 - (uVar19 ^ 0xf8bedd8b)) ^ uVar38) +
           (*(ulonglong *)(lVar6 - (uVar28 ^ 0x5b7b2ea3)) ^ uVar23);
  uVar42 = uVar38 ^ uVar26;
  *(ulonglong *)(lVar6 + -0x628) = uVar42;
  uVar43 = (*(ulonglong *)(lVar6 - (uVar40 ^ 0xcfa0735e)) ^ uVar23) << ((bVar17 ^ 0xe5) & 0x3f);
  *(ulonglong *)(lVar6 + -0x4b8) = uVar43 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182671f6c;
  lVar25 = (CONCAT44(uVar21,uVar9) ^ 0x42c158805a980bf1) +
           (CONCAT44(uVar7,uVar10) ^ 0x3325bed2168ac5a7);
  *(longlong *)(lVar6 + -0xa70) = lVar25;
  lVar6 = DAT_182671c40;
  puVar16 = (ulonglong *)(DAT_182671c40 + -0x110);
  uVar23 = (uVar23 ^ *puVar1) >> ((bVar35 ^ 0x30) & 0x3f);
  *puVar16 = uVar23 ^ CONCAT44(uVar8,uVar8);
  uVar13 = DAT_182671fa8;
  *(longlong *)(lVar6 + -0x510) = lVar25 << (((byte)uVar41 ^ (byte)uVar11) & 0x3f);
  uVar8 = DAT_182671c54;
  uVar47 = CONCAT44(uVar13,uVar13);
  uVar41 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar23 = (uVar23 | uVar43) ^ uVar47;
  *(ulonglong *)(lVar6 + -0x5e8) = uVar23;
  *(ulonglong *)(lVar6 + -0xda8) = uVar42 ^ uVar41 ^ uVar47 ^ uVar26 ^ uVar23;
  uVar26 = (CONCAT44(uVar10,uVar8) ^ 0x84ee7e7af496e9f7) + (uVar32 ^ *(ulonglong *)(lVar6 + -0x30));
  *(ulonglong *)(lVar6 + -0x380) = uVar26 ^ CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(lVar6 + -0x408) =
       *(ulonglong *)(lVar6 - (uVar30 ^ 0x2b784262)) ^ CONCAT44(uVar9,uVar10) ^ uVar47 ^
       0x80f2dde4dfba704f;
  uVar23 = (uVar33 ^ *(ulonglong *)(lVar6 + -0xa08)) + (CONCAT44(uVar8,uVar36) ^ 0x2e68720d504ae585)
  ;
  uVar15 = *(uint *)(lVar6 + -0xae4) ^ DAT_182671ebc;
  *(ulonglong *)(lVar6 + -0x7e8) = uVar23 ^ CONCAT44(DAT_182671e38,DAT_182671e38);
  uVar9 = DAT_182671c5c;
  local_f0 = (byte)uVar7;
  *(uint *)(lVar6 + -0x76c) = uVar15 * *(int *)(lVar6 + -0x54);
  uVar44 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar33 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar6 + -0x888) = uVar23 + uVar26 ^ uVar44;
  uVar10 = DAT_182671c64;
  lVar25 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c64;
  uVar42 = uVar26 << ((local_f0 ^ 0x6b) & 0x3f);
  uVar23 = CONCAT44(DAT_182671de4,DAT_182671de4);
  *(ulonglong *)(lVar6 + -0xb18) = uVar42 ^ uVar33;
  bVar17 = (byte)DAT_182671c8c;
  uVar33 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar25 + -0x8f0) = uVar26 >> ((bVar17 ^ 0xff) & 0x3f) ^ uVar23;
  *puVar2 = (*(ulonglong *)(lVar25 - (uVar43 ^ 0xb8169053)) ^ uVar23 | uVar42) ^ uVar33;
  uVar42 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar23 = *(ulonglong *)(lVar25 - ((ulonglong)DAT_182671c4c ^ 0x87e03859)) ^
           *(ulonglong *)(lVar25 - (uVar34 ^ 0x4b202b0a)) ^ uVar42 ^ uVar33 ^ uVar44;
  *puVar3 = uVar23;
  uVar8 = DAT_182671e14;
  uVar26 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar23 = uVar42 ^ uVar23;
  uVar38 = uVar38 + (uVar42 ^ *puVar24) ^ uVar26;
  uVar33 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar42 = uVar23 << ((bVar17 ^ 0xfb) & 0x3f);
  *(ulonglong *)(lVar25 + -0x828) = uVar38;
  *(ulonglong *)(lVar25 + -0xa50) = uVar42 ^ uVar33;
  uVar12 = DAT_182671c90;
  uVar23 = uVar23 >> ((bVar17 ^ 0xc3) & 0x3f);
  *puVar4 = uVar23 ^ CONCAT44(uVar8,uVar8);
  uVar33 = CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar23 = (uVar23 | uVar42) ^ uVar33;
  *puVar5 = uVar23;
  uVar8 = DAT_182671c50;
  uVar45 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar25 - ((ulonglong)uVar12 ^ 0x50aed992)) =
       uVar45 ^ uVar33 ^ uVar26 ^ uVar23 ^ uVar38;
  uVar38 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(ulonglong *)(lVar25 - ((ulonglong)uVar12 ^ 0x50aedd2a)) =
       (uVar44 ^ *(ulonglong *)(lVar25 + -0x888)) + (uVar41 ^ *(ulonglong *)(lVar25 + -0xda8)) ^
       uVar38;
  uVar41 = uVar41 ^ *(ulonglong *)(lVar25 + -0xda8);
  uVar33 = (uVar38 ^ *(ulonglong *)(lVar25 + -0x760)) >>
           (((byte)uVar13 ^ *(byte *)(lVar25 + -0x5e8)) & 0x3f);
  uVar22 = *(uint *)(lVar25 + -0x634) | 0xc88dccef;
  *(ulonglong *)(lVar25 + -0xa70) = uVar33;
  uVar15 = DAT_182671c48;
  uVar23 = uVar41 << ((bVar39 ^ 0xbf) & 0x3f);
  uVar41 = uVar41 >> (((byte)uVar12 ^ 0x4d) & 0x3f);
  *(ulonglong *)(lVar25 + -0x4b8) = uVar41 ^ CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar25 + -0x510) = uVar23 ^ uVar27;
  *(uint *)(lVar25 + -0x1c8) = uVar22;
  *(uint *)(lVar25 + -0x670) = (uVar15 ^ 0xc4bac2c8) << ((byte)uVar22 & 0x1f);
  uVar27 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar23 = (uVar41 | uVar23) ^ uVar27;
  *puVar16 = uVar23;
  lVar6 = DAT_182671c40;
  puVar24 = (ulonglong *)(DAT_182671c40 + -0x760);
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (CONCAT44(uVar7,uVar7) ^ 0xfb31bfa30a895340) << ((byte)uVar33 & 0x3f);
  uVar13 = DAT_182671d3c;
  uVar23 = uVar27 ^ uVar38 ^ uVar47 ^ *puVar24 ^ uVar23;
  *(ulonglong *)(lVar6 + -0x408) = uVar23;
  uVar11 = DAT_182671c7c;
  uVar41 = CONCAT44(uVar13,uVar13);
  bVar17 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar6 - (uVar28 ^ 0x5b7b2773)) =
       (*(ulonglong *)(lVar6 - (uVar34 ^ 0x4b20282a)) ^ uVar26) + (uVar47 ^ uVar23) ^ uVar41;
  uVar23 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar6 - (uVar30 ^ 0x2b784062)) =
       (uVar47 ^ *(ulonglong *)(lVar6 + -0x408)) << ((bVar17 ^ 0x4c) & 0x3f) ^ uVar23;
  uVar33 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(lVar6 + -0x380) =
       (uVar47 ^ *(ulonglong *)(lVar6 + -0x408)) >> (((byte)uVar11 ^ 0x5d) & 0x3f) ^ uVar32;
  uVar15 = DAT_182671c6c;
  uVar23 = (*(ulonglong *)(lVar6 - (uVar31 ^ 0x32b96f1f)) ^ uVar32 |
           uVar23 ^ *(ulonglong *)(lVar6 + -0x7e8)) ^ uVar33;
  uVar26 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar6 + -0xb18) = uVar23;
  uVar7 = DAT_182671c68;
  uVar28 = (ulonglong)DAT_182671c68;
  uVar27 = CONCAT44(DAT_182671c68,uVar36);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c5c ^ 0xf3931482)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0xb81692ab)) ^ uVar41 ^ uVar46 ^ uVar23 ^ uVar33;
  uVar23 = *puVar1;
  *puVar2 = (uVar27 ^ 0x5721e73da4a484f) + (uVar41 ^ *(ulonglong *)(lVar6 + -0xa08));
  uVar32 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar7 ^ 0x5c67ef6f)) =
       (uVar45 ^ uVar23) + (uVar38 ^ *(ulonglong *)(lVar6 + -0x760)) ^ uVar32;
  *puVar3 = (uVar45 ^ *puVar1) << ((bVar29 ^ 0xb7) & 0x3f) ^ uVar44;
  bVar17 = (byte)DAT_182671c94;
  *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xee1cda69)) =
       CONCAT44(uVar10,uVar36) ^ 0x14c7060140800861 | 0x8320398ab35cf78e;
  uVar23 = CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar42 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xb8169a13)) =
       (uVar45 ^ *puVar1) >> ((bVar17 ^ 0x95) & 0x3f) ^ uVar23;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xcfa07c9e)) =
       CONCAT44(uVar9,uVar8) ^ 0xfffffdf1f9ffb74e | 0xfaeaf5f059df3306;
  uVar11 = DAT_182671e0c;
  uVar7 = DAT_182671c58;
  uVar33 = (ulonglong)DAT_182671c58;
  uVar27 = CONCAT44(DAT_182671d34,DAT_182671d34);
  uVar23 = (*puVar4 ^ uVar23 | uVar44 ^ *puVar3) ^ uVar27;
  *(ulonglong *)(lVar6 + -0x888) = uVar23;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar23 = *(ulonglong *)(lVar6 + -0x628) ^ uVar26 ^ uVar23 ^ uVar27 ^ uVar32;
  *(ulonglong *)(lVar6 + -0x5e8) = uVar23;
  uVar11 = DAT_182671cc4;
  *(ulonglong *)(lVar6 + -0xda8) =
       *(ulonglong *)(lVar6 - (uVar42 ^ 0x87e037b1)) ^ uVar38 |
       uVar41 ^ *(ulonglong *)(lVar6 + -0xa08);
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0x1b96e27f)) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0xa08)) + (uVar23 ^ uVar26) ^ uVar38;
  uVar11 = DAT_182671c78;
  *(byte *)(lVar6 + -0x861) =
       *(byte *)(*(ulonglong *)(lVar6 - (uVar19 ^ 0xf8bed37b)) ^ (ulonglong)DAT_182671ee0) ^
       (byte)DAT_182671f14;
  uVar13 = DAT_182671d7c;
  uVar10 = DAT_182671c90;
  uVar41 = (ulonglong)DAT_182671c90;
  uVar27 = (*(ulonglong *)(lVar6 + -0x5e8) ^ uVar26) << (((byte)uVar11 ^ 0x13) & 0x3f);
  *(ulonglong *)(lVar6 + -0x510) = uVar27 ^ CONCAT44(DAT_182671f68,DAT_182671f68);
  uVar11 = DAT_182671e4c;
  lVar6 = DAT_182671c40;
  uVar26 = (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x5c67ecaf)) ^ uVar26) >>
           (((byte)uVar7 ^ 0xfc) & 0x3f);
  uVar23 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(DAT_182671c40 + -0xa70) = uVar26 ^ CONCAT44(uVar13,uVar13);
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar27 = (uVar26 | uVar27) ^ uVar23;
  *(ulonglong *)(lVar6 + -0x30) = uVar27;
  *(ulonglong *)(lVar6 - (uVar19 ^ 0xf8bedbfb)) =
       uVar27 ^ *(ulonglong *)(lVar6 + -0x4b8) ^ uVar28 ^ uVar23 ^ uVar38;
  lVar25 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *puVar20 = (*(ulonglong *)(lVar6 - (uVar34 ^ 0x4b2028f2)) ^ uVar46) +
             (*(ulonglong *)(lVar6 + -0x628) ^ uVar32) ^ uVar27;
  uVar11 = DAT_182671ccc;
  uVar32 = (*(ulonglong *)(lVar25 + -0x8f0) ^ uVar46) << (((byte)uVar10 ^ 0x6f) & 0x3f);
  *(ulonglong *)(lVar25 + -0x408) = uVar32 ^ CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar34 = (*(ulonglong *)(lVar25 - (uVar19 ^ 0xf8bed21b)) ^ uVar46) >> ((local_f0 ^ 0x60) & 0x3f);
  uVar23 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar25 + -0x7e8) = uVar34 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar25 - (uVar33 ^ 0x1b96e547)) = (uVar34 | uVar32) ^ uVar23;
  uVar11 = DAT_182671e60;
  uVar7 = DAT_182671c5c;
  uVar19 = (ulonglong)DAT_182671c5c;
  uVar34 = *(ulonglong *)(lVar25 - (uVar41 ^ 0x50aed262)) ^ uVar37 ^ uVar23 ^ uVar27 ^
           *(ulonglong *)(lVar25 + -0x380);
  *(ulonglong *)(lVar25 + -0xb18) = uVar34;
  uVar32 = CONCAT44(uVar11,uVar11);
  uVar23 = *(ulonglong *)(lVar25 + -0x828);
  *puVar2 = (CONCAT44(uVar15,uVar21) ^ 0xbb59d96f29d3a918) + (uVar37 ^ uVar34) ^ uVar32;
  uVar11 = DAT_182671f18;
  *(ulonglong *)(lVar25 + -0xa50) =
       (CONCAT44(uVar9,uVar36) ^ 0x35bfd782db92e8b3) - (uVar23 ^ uVar27);
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar25 - (uVar19 ^ 0xf3931faa)) =
       (CONCAT44(uVar8,uVar7) ^ 0x1221302802c71e84) + (*(ulonglong *)(lVar25 + -0x4b8) ^ uVar38) ^
       uVar34;
  uVar23 = *puVar2;
  *puVar5 = (*puVar1 ^ uVar34) + (uVar32 ^ *puVar2) ^ CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar8 = DAT_182671d00;
  *puVar3 = *puVar16 ^ uVar28 ^ 0x601a436bfea1308b;
  *puVar4 = (uVar32 ^ uVar23) << (((byte)DAT_182671c54 ^ 0x42) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar18;
  return;
}



############ FUN_ 180fdd880 size=5966 ############

void FUN_180fdd880(void)

{
  ulonglong *puVar1;
  undefined4 *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  byte bVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  byte bVar57;
  uint uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  byte local_158;
  byte local_140;
  
  uVar8 = DAT_182671edc;
  uVar10 = DAT_182671d9c;
  uVar7 = DAT_182671d40;
  uVar5 = DAT_182671c80;
  uVar6 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c80;
  uVar18 = DAT_182671c80 + DAT_182671c74;
  uVar29 = (ulonglong)uVar18;
  uVar58 = DAT_182671d14 | DAT_182671d64;
  uVar34 = DAT_182671da4 & DAT_182671fb0;
  uVar16 = DAT_182671ee0 >> 0x18;
  uVar11 = DAT_182671d40 | DAT_182671edc;
  uVar21 = *(uint *)(&DAT_182613218 + DAT_182672038) ^ DAT_182671c74;
  uVar12 = *(uint *)(&DAT_182613220 + DAT_182672038) ^ DAT_182671c80;
  uVar49 = CONCAT44(DAT_182671d98,DAT_182671d98);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x680);
  uVar28 = (ulonglong)DAT_182671c74;
  puVar36 = (ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x1000076a));
  DAT_182671c50 = uVar18;
  *puVar36 = *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xff80289)) ^ uVar49 |
             CONCAT44(DAT_182671f70,DAT_182671f70) ^ *puVar1;
  uVar13 = DAT_182671da4 & 0xff;
  DAT_182671da4 = ((DAT_182671da4 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  puVar20 = (ulonglong *)(lVar3 - (uVar28 ^ 0x10000232));
  uVar37 = CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar49 = *(ulonglong *)(lVar3 - (uVar29 ^ 0xff80b31)) ^ CONCAT44(uVar10,uVar10) |
           uVar49 ^ *puVar20;
  uVar45 = uVar49 ^ uVar37;
  *puVar1 = uVar45;
  uVar13 = DAT_182671fb0 & 0xff;
  DAT_182671fb0 = ((DAT_182671fb0 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  puVar50 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xfff7f5d7));
  uVar55 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(DAT_182671f84,DAT_182671f84) ^ *puVar50) - uVar49 ^ uVar55;
  *(ulonglong *)(lVar3 + -0xb08) =
       CONCAT44(uVar18,uVar5) ^ 0x9730171defbf4567 | *(ulonglong *)(lVar3 + -0x760);
  uVar13 = uVar34 & 0xff;
  DAT_182671d58 = ((uVar34 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar49 = (ulonglong)DAT_182671d58;
  uVar51 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  uVar13 = DAT_182671f0c + DAT_182671e88 & 0xff;
  uVar22 = CONCAT44(DAT_182671d58,DAT_182671d58);
  DAT_182671f9c = (((DAT_182671f0c + DAT_182671e88) * 0x100 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar45 = uVar22 ^ uVar51 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x828) ^ uVar45;
  uVar46 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar23 = (uVar22 ^ uVar45) << 0xc;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar45;
  *(ulonglong *)(lVar3 + -0xa60) = (*puVar20 >> 0x20 ^ uVar49) >> 0x14 ^ uVar46;
  uVar13 = DAT_182671e88 & 0xff;
  DAT_182671e88 = ((DAT_182671e88 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar49 = CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar13 = DAT_182671f0c & 0xff;
  *(ulonglong *)(lVar3 + -0x760) = uVar23 ^ uVar49;
  DAT_182671f0c = ((DAT_182671f0c << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  puVar38 = (ulonglong *)(lVar3 - (uVar29 ^ 0xff80a59));
  uVar45 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x10000b8a)) = (uVar23 | uVar46 ^ *puVar38) ^ uVar45;
  uVar10 = DAT_182671cec;
  uVar13 = DAT_182671d64 & 0xff;
  DAT_182671d64 = ((DAT_182671d64 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar23 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *puVar1 = (uVar51 ^ *(ulonglong *)(lVar3 + -0x828)) - (uVar45 ^ *(ulonglong *)(lVar3 + -0xb08)) ^
            uVar23;
  uVar13 = uVar58 & 0xff;
  DAT_182671ef4 = ((uVar58 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar51 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  bVar57 = (byte)uVar18;
  *(ulonglong *)(lVar3 + -0x2b0) =
       CONCAT44(uVar10,uVar10) ^ uVar51 ^ uVar55 ^ *puVar36 ^ *(ulonglong *)(lVar3 + -0xa50);
  *(ulonglong *)(lVar3 + -0xa60) = (uVar51 ^ *puVar20) >> (bVar57 & 0x3f) ^ uVar45;
  uVar13 = DAT_182671d90 & 3;
  if (uVar13 < 2) {
    uVar34 = DAT_182671de0;
    if (uVar13 == 0) {
      uVar34 = DAT_182671d90;
    }
  }
  else {
    uVar34 = DAT_182671dec;
    if (uVar13 < 3) {
      uVar34 = DAT_182671f10;
    }
  }
  uVar13 = DAT_182671d90 & 0xff;
  DAT_182671d90 = ((DAT_182671d90 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar32 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar24 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xfff7fd07)) ^ uVar51) << (((byte)uVar5 ^ 0xb0) & 0x3f)
  ;
  puVar39 = (ulonglong *)(lVar3 - (uVar27 ^ 0xfff7f4af));
  *(ulonglong *)(lVar3 + -0x760) = uVar24 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x828) =
       (CONCAT44(uVar18,uVar18) ^ 0x66dda7c04fbb1cd4) <<
       (((byte)DAT_182671d38 ^ (byte)*puVar39) & 0x3f);
  uVar14 = uVar34 & 0xff;
  uVar44 = ((uVar34 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar56 = CONCAT44(uVar44,uVar44);
  DAT_182671d70 = uVar44;
  *(ulonglong *)(lVar3 + -0xa50) = (uVar24 | uVar45 ^ *(ulonglong *)(lVar3 + -0xa60)) ^ uVar56;
  puVar25 = (ulonglong *)(lVar3 - (uVar29 ^ 0xff805d1));
  *puVar20 = CONCAT44(DAT_182671d7c,DAT_182671d7c) ^ *puVar25 |
             CONCAT44(uVar6,uVar18) ^ 0xf6ac5efe381ace28;
  uVar15 = DAT_182671de0 & 0xff;
  uVar15 = ((DAT_182671de0 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar62 = CONCAT44(uVar15,uVar15);
  DAT_182671de0 = uVar15;
  *(ulonglong *)(lVar3 + -0xb18) =
       (uVar55 ^ *puVar36) - (*(ulonglong *)(lVar3 - (uVar28 ^ 0x10000ad2)) ^ uVar56) ^ uVar62;
  uVar13 = DAT_182671dec & 0xff;
  uVar19 = DAT_182671dec << 8;
  DAT_182671dec = ((uVar19 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar26 = (ulonglong)DAT_182671dec;
  uVar33 = CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar24 = uVar23 ^ uVar33 ^ uVar56 ^ *(ulonglong *)(lVar3 + -0xa50) ^ *puVar1;
  uVar58 = DAT_182671ca0 & 0xff;
  *(ulonglong *)(lVar3 + -0x828) = uVar24;
  DAT_182671ca0 = ((DAT_182671ca0 << 8 | uVar58) << 8 | uVar58) << 8 | uVar58;
  uVar30 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *puVar38 = (uVar26 << 0x12 | (ulonglong)(((uVar19 & 0xffff | uVar13) << 8 | uVar13) >> 6)) ^
             uVar24 >> 0xe ^ uVar30;
  uVar13 = DAT_182671f10 & 0xff;
  DAT_182671f10 = ((DAT_182671f10 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar40 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xfff7f8d7)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x100008aa)) ^ uVar33) << ((bVar57 ^ 0xb) & 0x3f) ^ uVar40;
  *(longlong *)(lVar3 + -0x5e8) = *(longlong *)(lVar3 + -0x2b0) << (((byte)uVar5 ^ 0xb9) & 0x3f);
  uVar58 = DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0x7e8) =
       (*puVar38 ^ uVar30 | *(ulonglong *)(lVar3 + -0x760) ^ uVar40) ^ uVar56;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xff80a69)) =
       (uVar23 ^ *puVar1) - (CONCAT44(uVar6,uVar18) ^ 0x367b937e6e0c9633) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x828) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0xa50)) - (uVar56 ^ *(ulonglong *)(lVar3 + -0x7e8)) ^
       uVar32;
  lVar4 = DAT_182671c40;
  uVar13 = DAT_182671d14 & 0xff;
  DAT_182671d14 = ((DAT_182671d14 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar59 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c54 ^ 0xfa9282de)) =
       (uVar56 ^ *(ulonglong *)(lVar3 + -0x7e8)) - (CONCAT44(uVar58,uVar6) ^ 0xd636ad4f67d900fb) ^
       uVar59;
  uVar13 = DAT_182671c48;
  DAT_182671d88 = ((uVar16 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar47 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar35 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x1000056a)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar58 ^ 0x82000b08)) ^ uVar45 ^
       *(ulonglong *)(lVar3 + -0xb08) ^ uVar47 ^ uVar62;
  uVar16 = DAT_182671d40 & 0xff;
  DAT_182671d40 = ((DAT_182671d40 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar52 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar4 + -0x760) =
       (*(ulonglong *)(lVar4 + -0x5e8) ^ uVar47) >> (((byte)uVar13 ^ 0xbf) & 0x3f) ^ uVar52;
  puVar36 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671c94 ^ 0x57ddf97f));
  *(ulonglong *)(lVar4 + -0xa60) =
       (*(ulonglong *)(lVar4 + -0x5e8) ^ uVar47) << ((bVar57 ^ 0x2e) & 0x3f);
  uVar58 = DAT_182671c88;
  uVar61 = (ulonglong)DAT_182671c88;
  *puVar36 = (*(ulonglong *)(lVar4 + -0x5e8) ^ uVar47) << (((byte)DAT_182671c4c ^ 199) & 0x3f) ^
             uVar30;
  uVar16 = DAT_182671c60;
  uVar19 = DAT_182671ee0 & 0xff;
  DAT_182671ee0 = ((DAT_182671ee0 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar48 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar31 = (ulonglong)DAT_182671c60;
  uVar24 = *(ulonglong *)(lVar4 - (uVar27 ^ 0xfff7f937)) ^ uVar30 |
           *(ulonglong *)(lVar4 + -0x760) ^ uVar52;
  *(ulonglong *)(lVar4 + -0xa50) = uVar24 ^ uVar48;
  uVar26 = (*(ulonglong *)(lVar4 + -0xb18) ^ uVar62) - (CONCAT44(uVar58,uVar6) ^ 0xcbba8b49532dafce)
  ;
  uVar19 = uVar11 & 0xff;
  *(ulonglong *)(lVar4 + -0x7e8) = uVar26 ^ uVar33;
  DAT_182671f60 = ((uVar11 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar41 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar58 ^ 0x3116050f)) = uVar26 - uVar24 ^ uVar41;
  uVar11 = DAT_182671edc & 0xff;
  DAT_182671edc = ((DAT_182671edc << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar42 = CONCAT44(DAT_182671edc,DAT_182671edc);
  uVar24 = (CONCAT44(uVar16,uVar5) ^ 0xf9f1ebe4264e0090) + (uVar48 ^ *(ulonglong *)(lVar4 + -0xa50))
           ^ uVar42;
  *(ulonglong *)(lVar4 + -0xa60) = uVar24;
  uVar58 = DAT_182671f08 ^ DAT_182671e00;
  *(ulonglong *)(lVar4 + -0x5e8) =
       *(ulonglong *)(lVar4 - (uVar27 ^ 0xfff7f79f)) ^ uVar32 ^ uVar24 ^ uVar42 ^ uVar59;
  uVar11 = DAT_182671f08 & 0xff;
  *(undefined8 *)(lVar4 + -0x760) = **(undefined8 **)(lVar4 + -0x610);
  uVar5 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  bVar54 = (byte)DAT_182671c64;
  DAT_182671f08 = ((DAT_182671f08 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar63 = CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar24 = (*(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar59) >> ((bVar54 ^ 0x5e) & 0x3f);
  *puVar1 = uVar24 ^ uVar63;
  lVar4 = DAT_182671c40;
  uVar11 = uVar58 & 0xff;
  DAT_182671f48 = ((uVar58 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar60 = CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x148068fd)) ^ uVar59) <<
           ((bVar57 ^ 0x19) & 0x3f);
  puVar2 = (undefined4 *)(DAT_182671c40 + -0x94);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar26 ^ uVar60;
  *(int *)(lVar4 + -0x5d4) = *(int *)(lVar4 + -0x784) << ((byte)*puVar2 & 0x1f);
  uVar19 = DAT_182671c84;
  uVar16 = DAT_182671c4c;
  uVar24 = uVar24 | uVar26;
  uVar11 = DAT_182671e00 & 0xff;
  DAT_182671e00 = ((DAT_182671e00 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar43 = CONCAT44(DAT_182671e00,DAT_182671e00);
  uVar53 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar4 + -0x7e8) = uVar24 ^ uVar43;
  *(ulonglong *)(lVar4 + -0xa50) = (uVar32 ^ *(ulonglong *)(lVar4 + -0x828)) - uVar24 ^ uVar60;
  *(undefined8 *)(lVar4 - (uVar35 ^ 0x56ddc8cf)) =
       **(undefined8 **)(lVar4 - ((ulonglong)uVar16 ^ 0x9e3fe8e7));
  bVar17 = (byte)DAT_182671c94;
  uVar24 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x14806fa5)) ^ uVar43 ^ *(ulonglong *)(lVar4 + -0xb08) ^
           uVar41 ^ uVar59;
  *(ulonglong *)(lVar4 + -0x760) = uVar24;
  *(ulonglong *)(lVar4 + -0x5e8) = (uVar24 ^ uVar43) >> ((bVar17 ^ 0xdf) & 0x3f) ^ uVar47;
  bVar17 = (byte)DAT_182671c58;
  *(uint *)(lVar4 - ((ulonglong)uVar16 ^ 0x9e3fe973)) =
       (uVar5 ^ 0xe53f40bf) << ((byte)*(undefined4 *)(lVar4 + -0x9dc) & 0x1f);
  puVar38 = (ulonglong *)(lVar4 - (uVar53 ^ 0x3fa4db71));
  *puVar38 = (uVar43 ^ *(ulonglong *)(lVar4 + -0x760)) << ((bVar17 ^ 0xc) & 0x3f) ^ uVar41;
  uVar11 = DAT_182671c6c;
  lVar3 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c6c;
  uVar24 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c68 ^ 0x3116051f)) =
       (*(ulonglong *)(lVar4 + -0x5e8) ^ uVar47 | uVar41 ^ *puVar1) ^ uVar37;
  uVar5 = DAT_182671c5c;
  uVar31 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x788f77f)) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0xfa928b66)) ^ uVar41) -
       (uVar37 ^ *(ulonglong *)(lVar4 + -0xb18)) ^ uVar41;
  uVar58 = DAT_182671c70;
  uVar24 = uVar45 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0xb18) ^ uVar60 ^
           *(ulonglong *)(lVar4 + -0xa50);
  *(ulonglong *)(lVar4 + -0xa60) = uVar24;
  local_158 = (byte)uVar6;
  *(ulonglong *)(lVar3 - (uVar61 ^ 0x31160967)) =
       (uVar45 ^ uVar24) >> (((byte)uVar5 ^ 0x83) & 0x3f) ^ uVar40;
  uVar9 = DAT_182671c8c;
  uVar24 = (uVar45 ^ *(ulonglong *)(lVar3 + -0xa60)) << ((local_158 ^ 0x84) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar24 ^ uVar52;
  uVar24 = uVar24 | *(ulonglong *)(lVar3 + -0x760) ^ uVar40;
  *(ulonglong *)(lVar3 + -0xb08) = uVar24 ^ uVar22;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (uVar60 ^ *(ulonglong *)(DAT_182671c40 + -0xa50)) - uVar24 ^ uVar63;
  lVar4 = DAT_182671c40;
  local_140 = (byte)uVar7;
  *(longlong *)(DAT_182671c40 + -0x2b0) =
       -0x56cbed88cc01804d << ((*(byte *)(lVar3 + -0x5e8) ^ local_140) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar26 = *(ulonglong *)(lVar4 + -0x828) ^ uVar43 ^ uVar41 ^ uVar56 ^
           *(ulonglong *)(lVar4 + -0x7e8);
  *(ulonglong *)(lVar4 + -0xa60) = uVar26;
  *puVar1 = ((ulonglong)((uVar34 << 8 & 0xffff | uVar14) >> 6) | (ulonglong)uVar44 << 10) ^
            uVar26 >> 0x16 ^ uVar60;
  lVar4 = DAT_182671c40;
  uVar24 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (uVar26 ^ uVar56) << (((byte)uVar11 ^ 0x7d) & 0x3f) ^ uVar62;
  uVar26 = (ulonglong)DAT_182671c58;
  *(int *)(DAT_182671c40 - (uVar61 ^ 0x31160e93)) =
       -0x56d7e471 << ((byte)*(undefined4 *)(lVar4 - (uVar24 ^ 0x156d8790)) & 0x1f);
  uVar24 = *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0x86b785ac)) ^ uVar60 |
           *(ulonglong *)(lVar3 + -0x760) ^ uVar62;
  *(ulonglong *)(lVar3 + -0xa50) = uVar24 ^ uVar55;
  *puVar20 = (*(ulonglong *)(lVar3 + -0x828) ^ uVar41) - uVar24 ^ uVar46;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xfff7fa5f)) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0x10000b9a)) ^ uVar23 ^ uVar55 ^ uVar63 ^
       *(ulonglong *)(lVar3 + -0xa50);
  uVar27 = (uVar23 ^ *puVar25) >> ((byte)DAT_182671c54 & 0x3f) ^ uVar42;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar27;
  uVar28 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0xa60) = 0xe79aa1df8f4d8d85 >> (((byte)uVar27 ^ (byte)uVar8) & 0x3f);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0x820005f8)) ^ uVar23) << ((bVar54 ^ 0x6c) & 0x3f) ^
            uVar32;
  lVar4 = DAT_182671c40;
  uVar24 = *(ulonglong *)(lVar3 - ((ulonglong)uVar58 ^ 0x100855a0)) ^ uVar42 | uVar32 ^ *puVar38;
  puVar20 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0x48520308));
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar24 ^ uVar33;
  lVar3 = DAT_182671c40;
  uVar26 = (*puVar20 ^ uVar63) - (*(ulonglong *)(lVar4 - (uVar53 ^ 0x3fa4da91)) ^ uVar33) ^ uVar43;
  *(ulonglong *)(lVar4 + -0x828) = uVar26;
  uVar8 = DAT_182671c84;
  uVar27 = (ulonglong)DAT_182671c94;
  uVar28 = *(ulonglong *)(lVar3 - (uVar27 ^ 0x57ddfd4f)) ^ uVar46 ^ uVar22 ^
           *(ulonglong *)(DAT_182671c40 + -0xb08);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar28 ^ uVar59;
  uVar7 = DAT_182671c7c;
  uVar16 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar28 >> (((byte)uVar8 ^ 0x19) & 0x3f) ^ uVar63;
  *(ulonglong *)(lVar3 + -0x5e8) = uVar24 << (((byte)uVar7 ^ 0x3a) & 0x3f);
  lVar3 = DAT_182671c40;
  *puVar1 = uVar28 << ((bVar57 ^ 0xd) & 0x3f) ^ uVar40;
  uVar28 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar58 ^ 0x10085828)) ^ uVar63 |
           *puVar36 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xb18) = uVar28 ^ uVar51;
  *(ulonglong *)(lVar3 + -0xb08) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0x2b0)) -
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0xff80b21)) ^ uVar51) ^ uVar60;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x57ddfa17)) = uVar28 ^ uVar26 ^ uVar43 ^ uVar60;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x5e5854e9)) =
       (uVar60 ^ *(ulonglong *)(lVar3 + -0x5e8)) >> (((byte)DAT_182671c78 ^ 0xd) & 0x3f) ^ uVar49;
  *puVar50 = (uVar60 ^ *(ulonglong *)(lVar3 + -0x5e8)) << 0x27 ^ uVar41;
  lVar3 = DAT_182671c40;
  uVar27 = uVar49 ^ *(ulonglong *)(DAT_182671c40 + -0xa50) |
           *(ulonglong *)(DAT_182671c40 + -0xa60) ^ uVar41;
  *puVar1 = uVar27 ^ uVar30;
  lVar4 = DAT_182671c40;
  uVar28 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c68 ^ 0x3116062f)) ^ uVar43) -
           (CONCAT44(uVar19,DAT_182671c68) ^ 0x6823f4cb24196c0d);
  uVar29 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       uVar49 ^ uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0xa50) ^
       *(ulonglong *)(DAT_182671c40 + -0x7e8);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar28 ^ uVar23;
  *(ulonglong *)(lVar4 + -0x5e8) =
       uVar28 - (*(ulonglong *)(lVar4 - (uVar29 ^ 0x82000690)) ^ uVar30) ^ uVar22;
  *(uint *)(lVar4 + -0x5d4) = uVar11 ^ 0x65ad5b36 | DAT_182671c78 ^ 0xac06b3e2;
  uVar5 = DAT_182671c58;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x5e5854d9)) =
       uVar27 - (CONCAT44(uVar16,uVar9) ^ 0x4f1655396859c6dc) ^ uVar23;
  uVar28 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 + -0x828) =
       (CONCAT44(uVar5,uVar18) ^ 0x73d8834002083d26) + (uVar30 ^ *puVar1);
  uVar33 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x156d8774)) ^ uVar60 ^ *(ulonglong *)(lVar4 + -0xb08) ^
           uVar33;
  *(ulonglong *)(lVar4 + -0xb18) = uVar33 ^ uVar62;
  *(uint *)(lVar4 + -0x94) = (uVar58 ^ 0x8c4a4056) + (DAT_182671c68 ^ 0xebd56587);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar33 >> (((byte)uVar58 ^ 0x69) & 0x3f) ^ uVar55;
  puVar20 = (ulonglong *)(lVar4 - (uVar29 ^ 0x82000a40));
  *puVar20 = uVar33 << ((local_158 ^ 0x9d) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (uVar55 ^ *(ulonglong *)(lVar4 + -0x7e8) | uVar37 ^ *(ulonglong *)(lVar4 + -0xa50)) ^ uVar52;
  uVar16 = DAT_182671c4c;
  *puVar36 = (uVar60 ^ *(ulonglong *)(lVar4 + -0xb08)) -
             (CONCAT44(uVar13,uVar5) ^ 0x2eb6ff0f16e8355) ^ uVar48;
  uVar52 = *(ulonglong *)(lVar4 + -0x2b0) ^ uVar52;
  *(ulonglong *)(lVar4 + -0x828) = (uVar48 ^ *puVar1) - uVar52 ^ uVar40;
  uVar28 = (CONCAT44(uVar6,uVar16) ^ 0xe9146f6459b7fa85) + uVar52 ^ uVar46;
  *(ulonglong *)(lVar4 + -0x760) = uVar28;
  *puVar39 = uVar46 ^ uVar22 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0x5e8) ^ uVar62;
  *puVar20 = ((ulonglong)uVar15 << 0x1b | (ulonglong)(uVar15 >> 5)) ^
             *(ulonglong *)(lVar4 + -0xb18) >> 5 ^ uVar41;
  uVar29 = (*(ulonglong *)(lVar4 + -0xb18) ^ uVar62) << 0x3b;
  *(ulonglong *)(lVar4 + -0x7e8) = uVar29 ^ uVar45;
  *(ulonglong *)(lVar4 + -0xb08) =
       CONCAT44(uVar16,uVar11) ^ uVar23 ^ *(ulonglong *)(lVar4 + -0xa60) ^ 0x9936c3f00bb7afa4;
  uVar28 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c84 ^ 0x96806745));
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar12 * 4) = uVar21;
  *puVar1 = (uVar28 ^ uVar41 | uVar29) ^ uVar47;
  return;
}



############ FUN_ 180f98060 size=4228 ############

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

void FUN_180f98060(void)

{
  uint *puVar1;
  uint *puVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  uint uVar36;
  uint uVar37;
  uint *puVar38;
  uint uVar39;
  uint uVar40;
  uint uVar41;
  uint uVar42;
  uint *puVar43;
  ulonglong uVar44;
  uint uVar45;
  byte local_e8;
  
  uVar9 = DAT_182671c8c;
  uVar19 = DAT_182671c80;
  uVar8 = DAT_182671c78;
  uVar40 = DAT_182671c6c;
  uVar7 = DAT_182671c68;
  uVar18 = DAT_182671c48;
  lVar4 = DAT_182671c40;
  uVar15 = DAT_182671c74 ^ DAT_182671c5c;
  uVar44 = (ulonglong)DAT_182671c8c;
  uVar45 = (DAT_182671c50 << 0x10 | DAT_182671c50 & 0xff00) << 8 | DAT_182671c50 >> 8 & 0xff00 |
           DAT_182671c50 >> 0x18;
  uVar16 = DAT_182671c90 & 3;
  if (uVar16 < 2) {
    uVar32 = DAT_182671c54;
    if (uVar16 == 0) {
      uVar32 = DAT_182671c90;
    }
  }
  else {
    uVar32 = DAT_182671c60;
    if (uVar16 < 3) {
      uVar32 = DAT_182671c8c;
    }
  }
  uVar30 = (ulonglong)DAT_182671c48;
  uVar23 = (ulonglong)DAT_182671c6c;
  uVar28 = DAT_182671c68 * DAT_182671c78;
  DAT_182671c94 = DAT_182671c48 | DAT_182671c6c;
  uVar41 = *(uint *)(&DAT_182613218 + DAT_18267225c) ^ DAT_182671c48;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_18267225c) ^ DAT_182671c94;
  uVar31 = (ulonglong)DAT_182671c68;
  uVar20 = (ulonglong)DAT_182671c78;
  DAT_182671c58 = uVar32;
  DAT_182671c64 = uVar15;
  DAT_182671c70 = uVar45;
  DAT_182671c88 = uVar28;
  *(longlong *)(DAT_182671c40 + -0x680) =
       *(longlong *)(DAT_182671c40 + -0xa60) - *(longlong *)(DAT_182671c40 - (uVar23 ^ 0xfffff83f));
  uVar24 = (ulonglong)uVar28;
  puVar43 = (uint *)(lVar4 - (uVar20 ^ 0x87476244));
  uVar27 = (ulonglong)uVar19;
  *puVar43 = (*(uint *)(lVar4 - (uVar24 ^ 0x84337d4)) ^ DAT_182671dd4) +
             (*(uint *)(lVar4 + -0x634) ^ DAT_182671dd0) ^ DAT_182671cf4;
  uVar42 = DAT_182671d9c;
  uVar21 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x10004b8)) =
       *(longlong *)(lVar4 + -0x8f0) - (CONCAT44(uVar7,uVar19) ^ 0x7100d9a4e25f99af);
  puVar1 = (uint *)(lVar4 + -0x94c);
  uVar16 = *(uint *)(lVar4 + -0xae4) ^ uVar42 ^ DAT_182671cf4;
  *(uint *)(lVar4 + -0x644) = *puVar1 ^ DAT_182671e28 ^ DAT_182671d2c;
  *(uint *)(lVar4 + -0x76c) = uVar16;
  uVar10 = DAT_182671d94;
  uVar16 = uVar16 ^ DAT_182671d94;
  *(longlong *)(lVar4 + -0x920) = *(longlong *)(lVar4 - (uVar21 ^ 0x8b0872d1)) + -0x6da5613674a09976
  ;
  uVar11 = DAT_182671dec;
  uVar21 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar4 - ((ulonglong)uVar32 ^ 0x87476ebc)) = uVar16 ^ uVar42;
  uVar6 = DAT_182671c5c;
  uVar35 = (ulonglong)DAT_182671ebc;
  *(uint *)(lVar4 - (uVar21 ^ 0x87476c0c)) = *(uint *)(lVar4 + -0x644) ^ uVar11 ^ DAT_182671e28;
  uVar16 = DAT_182671d0c;
  uVar34 = DAT_182671c60;
  uVar21 = (ulonglong)DAT_182671c60;
  uVar29 = DAT_182671d0c & 0xff;
  *(ulonglong *)(lVar4 + -0x170) =
       (CONCAT44(uVar40,uVar45) ^ 0xffffffff5f97b878) * 0x20 +
       *(longlong *)(lVar4 - (uVar21 ^ 0x1000db8)) + 2 ^ uVar35;
  uVar37 = DAT_182671e78;
  uVar25 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar4 + -0x684) = 0x50f3a836 - (uVar19 ^ 0xf2b438c5);
  bVar14 = *(byte *)(*(ulonglong *)(lVar4 - (uVar25 ^ 0x78b8962f)) ^ uVar35) ^ (byte)uVar16 ^
           (byte)DAT_182671e0c;
  *(byte *)(lVar4 + -0x1c3) = bVar14;
  uVar29 = bVar14 ^ uVar29;
  *(uint *)(lVar4 + -0x54) = uVar29 ^ uVar37;
  *(uint *)(lVar4 + -0x9dc) =
       (*(uint *)(lVar4 - (uVar31 ^ 0x81808598)) ^ DAT_182671f2c) +
       (*(uint *)(lVar4 + -0x76c) ^ uVar42);
  uVar16 = DAT_182671c74;
  lVar5 = DAT_182671c40;
  puVar2 = (uint *)(lVar4 + -0x4ac);
  uVar36 = (uVar11 ^ *puVar2) + (uVar6 ^ 0x9d42121e) ^ DAT_182671e6c;
  *(uint *)(lVar4 + -0x670) = uVar36;
  uVar42 = DAT_182671cac;
  *(uint *)(lVar5 + -0x94) = uVar29 << (((byte)uVar15 ^ 0xfa) & 0x1f) ^ DAT_182671cac;
  lVar4 = DAT_182671c40;
  uVar36 = uVar36 ^ DAT_182671e6c;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       CONCAT44(uVar6,uVar9) ^ CONCAT44(uVar18,uVar16) ^ 0x31f15a3097bad978;
  uVar16 = DAT_182671c90;
  *(uint *)(lVar4 + -0x6c0) =
       uVar36 - (*(uint *)(lVar4 - ((ulonglong)uVar7 ^ 0x818084c4)) ^ uVar42) ^ DAT_182671fac;
  uVar29 = DAT_182671c94;
  lVar4 = DAT_182671c40;
  local_e8 = (byte)uVar28;
  uVar25 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (CONCAT44(DAT_182671c94,uVar16) ^ 0xd568bf0efa81dce9) >> ((local_e8 ^ 0xc) & 0x3f);
  *(uint *)(lVar4 + -0x634) =
       (*(uint *)(lVar4 - (uVar25 ^ 0x78b8919f)) ^ DAT_182671fac) *
       (uVar10 ^ *(uint *)(lVar4 + -0x61c)) ^ DAT_182671f7c;
  uVar13 = DAT_182671f24;
  *puVar43 = (*(uint *)(lVar4 - ((ulonglong)uVar45 ^ 0x5f97b82c)) ^ uVar37) * 2 ^ DAT_182671f24;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (CONCAT44(uVar40,uVar15) ^ 0x968d7d20f3c067dc) + *(longlong *)(lVar4 + -0xa70);
  uVar16 = (*(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x494b111f)) ^ DAT_182671f7c) +
           (*(uint *)(lVar4 + -0xae4) ^ uVar13) ^ DAT_182671ed8;
  *puVar1 = uVar16;
  uVar16 = uVar16 ^ DAT_182671ed8;
  *(longlong *)(lVar4 + -0xa08) = -0x6dfdbad943b0af90 - *(longlong *)(lVar4 + -0x960);
  uVar37 = uVar16 >> (((byte)uVar15 ^ 0xf8) & 0x1f) ^ _DAT_182671cf0;
  uVar25 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar4 + -0x644) = uVar16 << 0xd ^ DAT_182671e84;
  *(uint *)(lVar4 + -0x684) = uVar37;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x78b8903f)) =
       *(ulonglong *)(lVar4 + -0x7e8) | 0x892e74af0f473bca;
  *(uint *)(lVar4 + -0x1c8) =
       (*(uint *)(lVar4 - (uVar24 ^ 0x8433484)) ^ _DAT_182671cf0 |
       *(uint *)(lVar4 - (uVar21 ^ 0x1000254)) ^ DAT_182671e84) ^ DAT_182671fa8;
  puVar38 = (uint *)(lVar4 - (uVar31 ^ 0x81808d8c));
  uVar16 = (*(uint *)(lVar4 - (uVar21 ^ 0x100020c)) ^ uVar10) +
           (*(uint *)(lVar4 - (uVar27 ^ 0x10001c4)) ^ DAT_182671dd4) ^ DAT_182671d28;
  *(uint *)(lVar4 + -0x76c) = uVar16;
  *puVar38 = uVar16 ^ DAT_182671e10 ^ DAT_182671d28;
  uVar16 = *(uint *)(lVar4 + -0x1c8) ^ DAT_182671ea4 ^ DAT_182671fa8;
  uVar21 = (ulonglong)DAT_182671fa0;
  *puVar2 = uVar16;
  uVar16 = uVar16 ^ DAT_182671e90 ^ DAT_182671ea4;
  *(uint *)(lVar4 + -0x670) =
       *(uint *)(lVar4 - ((ulonglong)uVar32 ^ 0x8747617c)) ^ DAT_182671e10 ^ uVar42;
  *(uint *)(lVar4 + -0x94) = uVar16;
  bVar14 = (byte)DAT_182671e68;
  uVar10 = DAT_182671e40;
  uVar16 = DAT_182671dd0;
  pbVar26 = (byte *)((CONCAT44(uVar32,DAT_182671c74) ^ 0x874768a09e72b1eb) * 0x20 +
                    *(longlong *)(lVar4 - (uVar31 ^ 0x81808df8)) + 0xd);
  *(ulonglong *)(lVar4 + -0x5a0) = (ulonglong)pbVar26 ^ uVar21;
  *(byte *)(lVar4 + -0x1c3) = *pbVar26 ^ bVar14 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar4 - (uVar30 ^ 0x494b11eb)) =
       (*(byte *)(lVar4 - (uVar20 ^ 0x87476963)) ^ bVar14) ^ uVar16;
  uVar37 = DAT_182671e94;
  puVar43 = (uint *)(lVar4 - ((ulonglong)DAT_182671c54 ^ 0x87476834));
  uVar33 = *(uint *)(lVar4 + -0x670) ^ uVar42;
  uVar39 = (*puVar43 ^ DAT_182671e90) + (DAT_182671c68 ^ 0x1dc2964e) ^ DAT_182671f0c;
  bVar14 = (byte)DAT_182671c60;
  uVar36 = DAT_182671c8c ^ 0x840925e9;
  *(uint *)(lVar4 + -0x54) = uVar39;
  uVar39 = uVar39 ^ DAT_182671f0c;
  *(uint *)(lVar4 + -0xae4) = uVar36 + uVar33;
  uVar36 = (uVar16 ^ *(uint *)(lVar4 + -0x6c0)) << ((bVar14 ^ 1) & 0x1f);
  *(uint *)(lVar4 + -0x634) = uVar36 ^ uVar11;
  uVar39 = uVar39 - uVar36;
  uVar33 = uVar39 * uVar33;
  *puVar1 = uVar39 ^ uVar10;
  *(uint *)(lVar4 + -0x644) = uVar33 ^ uVar37;
  uVar11 = DAT_182671ed0;
  uVar39 = DAT_182671ddc;
  uVar37 = DAT_182671d40;
  uVar10 = DAT_182671c90;
  uVar36 = (*(uint *)(lVar4 - ((ulonglong)uVar29 ^ 0xfffff93f)) ^ uVar16) * (uVar15 ^ 0x9f72b1e6) ^
           DAT_182671d7c;
  *(uint *)(lVar4 + -0x684) = uVar36;
  uVar16 = DAT_182671c70;
  uVar33 = (uVar36 ^ DAT_182671d7c) + uVar33;
  *(uint *)(lVar4 + -0x61c) = uVar33 ^ uVar11;
  bVar22 = (byte)uVar16 ^ 0x75;
  *(uint *)(lVar4 + -0x76c) = uVar33 << (bVar22 & 0x1f) ^ uVar39;
  uVar16 = DAT_182671c58 ^ 0x83e743ce;
  bVar14 = (byte)DAT_182671c48;
  *(ulonglong *)(lVar4 + -0x5e8) =
       (CONCAT44(uVar40,uVar6) ^ 0xa9f8141cc9b6b24a) << (((byte)uVar8 ^ 0xa9) & 0x3f);
  *(uint *)(lVar4 + -0x1c8) =
       (uVar11 ^ *(uint *)(lVar4 + -0x61c)) >> ((bVar14 ^ 0x38) & 0x1f) ^ DAT_182671dc8;
  *(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x9f72b837)) = DAT_182671c80 ^ 0xe2a622ff | uVar16;
  uVar33 = (*(uint *)(lVar4 - (uVar24 ^ 0x84333c8)) ^ DAT_182671dc8 |
           *(uint *)(lVar4 + -0x76c) ^ uVar39) ^ DAT_182671cd0;
  *puVar2 = uVar33;
  uVar16 = DAT_182671c50;
  lVar5 = DAT_182671c40;
  uVar42 = (*(uint *)(lVar4 - (uVar44 ^ 0x10005d4)) ^ DAT_182671dd4) +
           (*(uint *)(lVar4 + -0x670) ^ uVar42) ^ DAT_182671e14;
  *(uint *)(lVar4 + -0x94) = uVar42;
  *(ulonglong *)(lVar4 + -0xc38) = CONCAT44(uVar9,uVar16) ^ 0x64c84819d614c221;
  uVar36 = DAT_182671d50;
  uVar42 = uVar42 ^ DAT_182671d50 ^ DAT_182671e14;
  *(uint *)(lVar5 + -0xae4) = uVar42;
  bVar14 = (byte)DAT_182671f80;
  uVar11 = DAT_182671d34;
  uVar33 = uVar37 ^ DAT_182671cd0 ^ uVar33;
  *(uint *)(lVar5 + -0x634) = uVar33;
  uVar33 = uVar33 ^ DAT_182671d40;
  *(int *)(lVar5 + -0x54) = 0x5bb23a95 << (((byte)uVar42 ^ (byte)uVar36) & 0x1f);
  uVar12 = DAT_182671ed4;
  *puVar1 = uVar42 ^ uVar11 ^ uVar36;
  *(uint *)(lVar5 + -0x6c0) = uVar33 ^ uVar36;
  uVar42 = DAT_182671c74;
  uVar25 = (ulonglong)DAT_182671c74;
  uVar21 = (ulonglong)DAT_182671f48;
  *(ulonglong *)(lVar5 + -0xc20) =
       (CONCAT44(uVar29,uVar16) ^ 0xffffffff78b8975f) * 0x20 +
       (CONCAT44(uVar10,DAT_182671c74) ^ 0x8b0871519e72b1f3) + *(longlong *)(lVar5 + -0x9a8) ^
       uVar21;
  uVar16 = DAT_182671c54;
  *(ulonglong *)(lVar5 + -0xda8) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar24 ^ 0x84330e8)) ^ CONCAT44(uVar12,uVar12)) ^
       CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar20 ^ 0x87476a48)) = CONCAT44(uVar16,uVar29) ^ 0x1e04f3225c34a97f;
  uVar29 = DAT_182671d60;
  *(byte *)(lVar5 + -0x1c3) =
       *(byte *)(uVar21 ^ *(ulonglong *)(lVar5 + -0xc20)) ^ bVar14 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar5 - (uVar27 ^ 0x1000254)) =
       (*(byte *)(lVar5 - (uVar25 ^ 0x9e72b028)) ^ bVar14) ^ uVar29;
  uVar10 = DAT_182671d30;
  lVar4 = DAT_182671c40;
  bVar14 = (byte)DAT_182671c5c;
  *(uint *)(lVar5 + -0x684) =
       (uVar36 ^ *(uint *)(lVar5 + -0x6c0)) + (DAT_182671c70 ^ 0xc3d5aa66) ^ DAT_182671d30;
  uVar37 = DAT_182671dd4;
  uVar16 = DAT_182671d0c;
  *(uint *)(lVar4 + -0x61c) =
       (*(uint *)(lVar5 + -0x644) ^ uVar29) << ((bVar14 ^ 0x11) & 0x1f) ^ DAT_182671d0c;
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x10003d8)) =
       (CONCAT44(uVar8,uVar15) ^ 0x92b1b5b8ae1727d0) + 0x6a2f27d9fef2f97f;
  *(uint *)(lVar4 - (uVar23 ^ 0xfffff623)) =
       (uVar10 ^ *(uint *)(lVar4 + -0x684)) - (uVar16 ^ *(uint *)(lVar4 + -0x61c)) ^ DAT_182671e60;
  uVar16 = DAT_182671d98;
  *(uint *)(lVar4 + -0x76c) =
       (*puVar1 ^ uVar11) * (*(uint *)(lVar4 + -0x9dc) ^ DAT_182671e60) ^ uVar37;
  *(uint *)(lVar4 + -0x1c8) = (*(uint *)(lVar4 + -0x644) ^ uVar29) * 0x18 ^ DAT_182671ef4;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x1000500)) =
       (CONCAT44(uVar40,uVar8) ^ 0x1d3f396b75173f98) >>
       ((byte)*(undefined8 *)(lVar4 + -0x628) & 0x3f);
  uVar40 = (*(uint *)(lVar4 - (uVar27 ^ 0x100037c)) ^ uVar37) +
           (*(uint *)(lVar4 + -0x1c8) ^ DAT_182671ef4);
  *(uint *)(lVar4 + -0x670) = uVar40 ^ uVar16;
  uVar10 = DAT_182671f9c;
  uVar40 = uVar40 << ((byte)(uVar15 ^ 0x9f72b1e6) & 0x1f) ^ DAT_182671ec0;
  *(ulonglong *)(lVar4 + -0xf0) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar42 ^ 0x9e72b403)) |
       CONCAT44(uVar18,uVar34) ^ 0x8e728da724c00ab6;
  *(uint *)(lVar4 + -0x94) = uVar40;
  *(uint *)(lVar4 - ((ulonglong)uVar32 ^ 0x87476c0c)) =
       (*(uint *)(lVar4 - (uVar24 ^ 0x8433470)) ^ uVar16) >> 0x13 ^ uVar10;
  uVar40 = *puVar2;
  *(ulonglong *)(lVar4 + -0xa50) = *(ulonglong *)(lVar4 + -0x228) | *(ulonglong *)(lVar4 + -0xc38);
  uVar15 = DAT_182671c50;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0x78b8970b)) =
       (uVar10 ^ uVar40 | *(uint *)(lVar4 + -0x94) ^ DAT_182671ec0) ^ DAT_182671cbc;
  lVar4 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - (uVar25 ^ 0x9e72bb0f)) =
       (*(uint *)(DAT_182671c40 - (uVar44 ^ 0x100094c)) ^ uVar11) +
       (*(uint *)(DAT_182671c40 + -0x5d4) ^ uVar37) ^ DAT_182671d20;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x87476088)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar45 ^ 0x5f97b460)) >>
       ((byte)*(undefined8 *)(lVar4 + -0xb20) & 0x3f);
  uVar34 = *(uint *)(lVar4 + -0xae4) ^ DAT_182671de0 ^ DAT_182671d20;
  uVar45 = DAT_182671ccc ^ DAT_182671cbc ^ *(uint *)(lVar4 + -0x54);
  *(uint *)(lVar4 + -0x6c0) = uVar45;
  *(uint *)(lVar4 + -0x634) = uVar34;
  uVar16 = DAT_182671e7c;
  uVar40 = DAT_182671cc8;
  uVar20 = (ulonglong)DAT_182671f78;
  uVar21 = (ulonglong)DAT_182671c90;
  uVar27 = CONCAT44(uVar7,DAT_182671c90);
  uVar34 = uVar34 ^ DAT_182671e7c ^ DAT_182671de0;
  *(uint *)(lVar4 + -0x61c) = uVar45 ^ DAT_182671ccc ^ DAT_182671fa8;
  *(uint *)(lVar4 + -0x684) = uVar34;
  pbVar26 = (byte *)((uVar27 ^ 0x818084508b087151) * 0x20 +
                     (CONCAT44(uVar18,uVar8) ^ 0x494b172b874768a3) + *(longlong *)(lVar4 + -0x9a8));
  *(ulonglong *)(lVar4 + -0xbc0) = (ulonglong)pbVar26 ^ uVar20;
  bVar14 = *pbVar26 ^ (byte)DAT_182671e98 ^ (byte)DAT_182671e0c;
  bVar3 = (byte)DAT_182671e98 ^ bVar14;
  *(byte *)(lVar4 + -0x1c3) = bVar14;
  bVar14 = (byte)DAT_182671c54;
  *(uint *)(lVar4 + -0x9dc) = bVar3 ^ uVar40;
  *(uint *)(lVar4 + -0x644) =
       (*(uint *)(lVar4 - (uVar25 ^ 0x9e72b7f7)) ^ DAT_182671fa8) + (uVar6 ^ 0x9d42121e) ^
       DAT_182671e9c;
  *(uint *)(lVar4 - (uVar21 ^ 0x8b08763d)) =
       (uVar40 ^ *puVar38) << ((bVar14 ^ 0xb1) & 0x1f) ^ DAT_182671d68;
  uVar45 = *(uint *)(lVar4 + -0x644) ^ DAT_182671e9c;
  uVar18 = *(uint *)(lVar4 + -0x76c) ^ DAT_182671d68;
  *(ulonglong *)(lVar4 + -0x888) =
       (CONCAT44(uVar28,uVar19) ^ 0xff5ff63de299db16) +
       (CONCAT44(uVar32,uVar15) ^ 0x4f2d0acabfd120d7);
  *(uint *)(lVar4 - (uVar23 ^ 0xfffffe37)) = uVar45 - uVar18 ^ DAT_182671ed8;
  uVar18 = DAT_182671f70;
  uVar19 = *(uint *)(lVar4 + -0x1c8) ^ DAT_182671ed8;
  uVar15 = DAT_182671c94 ^ 0xfffffffc;
  *(ulonglong *)(lVar4 + -0x30) =
       (CONCAT44(uVar7,uVar9) ^ 0x2bbfc5c0e35e7d97) >> (((byte)uVar8 ^ 0x87) & 0x3f);
  *(uint *)(lVar4 + -0x670) = (uVar16 ^ *(uint *)(lVar4 + -0x684)) * uVar19 ^ DAT_182671e64;
  *puVar43 = (*(uint *)(lVar4 + -0x9dc) ^ uVar40) * uVar15 ^ uVar39;
  *(uint *)(lVar4 - (uVar44 ^ 0x10004ac)) =
       (*(uint *)(lVar4 + -0x94) ^ uVar39) + (*(uint *)(lVar4 + -0x670) ^ DAT_182671e64) ^ uVar18;
  *puVar1 = (uVar18 ^ *puVar2) << (bVar22 & 0x1f) ^ DAT_182671d48;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar41;
  return;
}



############ FUN_ 180fa2920 size=5698 ############

void FUN_180fa2920(void)

{
  ulonglong *puVar1;
  uint uVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  byte local_100;
  byte local_d0;
  
  uVar14 = DAT_182671e40;
  uVar15 = DAT_182671c90;
  uVar12 = DAT_182671c84;
  uVar9 = DAT_182671c74;
  uVar6 = DAT_182671c58;
  uVar3 = DAT_182671c4c;
  lVar4 = DAT_182671c40;
  uVar47 = (ulonglong)DAT_182671c74;
  uVar37 = (ulonglong)DAT_182671c58;
  uVar30 = (ulonglong)DAT_182671c4c;
  uVar29 = (ulonglong)DAT_182671c84;
  uVar34 = (ulonglong)DAT_182671c90;
  DAT_182671c60 = DAT_182671c4c * DAT_182671c84;
  uVar32 = ~DAT_182671c90;
  uVar40 = (DAT_182671c58 << 0x10 | DAT_182671c58 & 0xff00) << 8 | DAT_182671c58 >> 8 & 0xff00 |
           DAT_182671c58 >> 0x18;
  uVar50 = (DAT_182671c74 << 0x10 | DAT_182671c74 & 0xff00) << 8 | DAT_182671c74 >> 8 & 0xff00 |
           DAT_182671c74 >> 0x18;
  uVar2 = *(uint *)(&DAT_182613220 + DAT_18267227c);
  uVar21 = *(uint *)(&DAT_182613218 + DAT_18267227c) ^ DAT_182671c74;
  uVar26 = (ulonglong)uVar40;
  uVar41 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  bVar19 = (byte)(DAT_182671c58 >> 0x18);
  uVar45 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  uVar22 = (CONCAT44(DAT_182671d00,DAT_182671d00) ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) <<
           ((bVar19 ^ 0xfe) & 0x3f);
  DAT_182671c54 = uVar50;
  DAT_182671c68 = uVar40;
  DAT_182671c7c = uVar32;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar22 ^ uVar41;
  uVar13 = DAT_182671cb8;
  uVar35 = (ulonglong)uVar32;
  *(ulonglong *)(lVar4 + -0x228) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar4 + -0x30) | uVar22) ^ uVar45;
  uVar14 = DAT_182671d34;
  uVar48 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar31 = (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar4 + -0x408)) -
           (*(ulonglong *)(lVar4 - (uVar35 ^ 0x6a9d18d7)) ^ uVar45) ^ uVar48;
  uVar23 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar42 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(lVar4 + -0xb20) = uVar31;
  uVar22 = *(ulonglong *)(lVar4 + -0x380);
  uVar27 = CONCAT44(uVar14,uVar14);
  uVar43 = uVar42 ^ uVar22 ^ uVar27 ^ uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0xf0);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar43;
  lVar4 = DAT_182671c40;
  uVar43 = uVar43 ^ uVar23;
  uVar33 = CONCAT44(DAT_182671d48,DAT_182671d48);
  uVar42 = uVar43 >> (((byte)uVar12 ^ 0xce) & 0x3f);
  *(undefined4 *)(DAT_182671c40 + -0x94) = 0xda17b744;
  puVar1 = (ulonglong *)(lVar4 + -0x510);
  *puVar1 = uVar42 ^ uVar33;
  lVar5 = DAT_182671c40;
  local_d0 = (byte)uVar15;
  uVar43 = uVar43 << ((local_d0 ^ 0x2a) & 0x3f);
  uVar38 = CONCAT44(DAT_182671e08,DAT_182671e08);
  *(ulonglong *)(lVar4 + -0xc90) = uVar43 ^ CONCAT44(DAT_182671d4c,DAT_182671d4c);
  uVar13 = DAT_182671ec4;
  uVar7 = DAT_182671c60;
  uVar44 = (ulonglong)DAT_182671c60;
  uVar43 = uVar43 | uVar42;
  uVar36 = uVar43 ^ uVar38;
  *(ulonglong *)(lVar4 + -0x920) = uVar36;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar36 = uVar38 ^ uVar31 ^ uVar36;
  *(uint *)(lVar5 + -0x54) = (uVar7 ^ 0x3d68114e) + *(int *)(lVar5 + -0x5d4);
  uVar13 = DAT_182671d24;
  *(ulonglong *)(lVar5 + -0x828) = (uVar22 ^ uVar27) - uVar43 ^ uVar33;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0xa78) = uVar36;
  uVar42 = (ulonglong)uVar50;
  puVar24 = (ulonglong *)(lVar5 - (uVar42 ^ 0xf81a9cb2));
  *puVar24 = (uVar48 ^ uVar36) >> ((bVar19 ^ 0xd6) & 0x3f) ^ uVar27;
  local_100 = (byte)uVar3;
  uVar22 = (uVar48 ^ *(ulonglong *)(lVar5 + -0xa78)) << ((local_100 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar5 + -0x5e8) = uVar22 ^ CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(lVar5 + -0xa60) = (uVar22 | uVar27 ^ *(ulonglong *)(lVar5 + -0xbd8)) ^ uVar41;
  uVar51 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x6a971d10)) =
       (uVar48 ^ *(ulonglong *)(lVar5 + -0xb20)) -
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0xf8f9f398)) ^ uVar41) ^ uVar51;
  uVar38 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  uVar22 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar27 = uVar38 ^ uVar33 ^ *(ulonglong *)(lVar5 + -0x228) ^ uVar45 ^
           *(ulonglong *)(lVar5 + -0x828);
  *(ulonglong *)(lVar5 + -0x4b8) = uVar27;
  uVar27 = uVar27 ^ uVar38;
  *(ulonglong *)(lVar5 + -0xb18) = uVar27 >> (((byte)uVar7 ^ 0x5c) & 0x3f) ^ uVar22;
  uVar13 = DAT_182671f3c;
  uVar43 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  puVar28 = (ulonglong *)(lVar5 - (uVar34 ^ 0x9562e530));
  *puVar28 = uVar27 << 0x34 ^ uVar43;
  lVar4 = DAT_182671c40;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x6a9d11e7)) ^ uVar22 |
       uVar43 ^ *(ulonglong *)(DAT_182671c40 + -0x30)) ^ uVar31;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xf8f9fdf0)) =
       (CONCAT44(uVar50,uVar7) ^ 0xcd53ee685763a0e) - (CONCAT44(uVar40,uVar12) ^ 0xdb30a9175887c605)
  ;
  uVar13 = DAT_182671d74;
  uVar45 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar4 + -0xf0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x6a9712d0)) ^ uVar33) -
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x6a9d1d9f)) ^ uVar31) ^ uVar45;
  uVar22 = (ulonglong)DAT_182671f88;
  uVar3 = DAT_182671f88 >> 0x19;
  uVar27 = CONCAT44(DAT_182671f88,DAT_182671f88);
  uVar33 = uVar27 ^ uVar31 ^ uVar51 ^ *(ulonglong *)(lVar4 + -0x760) ^
           *(ulonglong *)(lVar4 + -0x7e8);
  *(ulonglong *)(lVar4 + -0xda8) = uVar33;
  uVar36 = CONCAT44(uVar13,uVar13);
  *puVar1 = ((ulonglong)uVar3 | uVar22 << 7) ^ uVar33 >> 0x19 ^ uVar36;
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (CONCAT44(uVar40,uVar9) ^ 0x5a566819915be93e) >> ((local_100 ^ 0x78) & 0x3f);
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x6a9d197f)) =
       (uVar33 ^ uVar27) << (((byte)uVar32 ^ 0xd8) & 0x3f) ^ uVar45;
  *(ulonglong *)(lVar4 + -0x920) =
       (CONCAT44(uVar12,uVar6) ^ 0xfd19c1f89f303320) + 0xc47eb9d08876747f;
  uVar48 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xa12a0928)) =
       (uVar36 ^ *puVar1 | uVar45 ^ *(ulonglong *)(lVar4 + -0x380)) ^ uVar48;
  lVar4 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar22 = (uVar51 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) -
           (*(ulonglong *)(DAT_182671c40 + -0x3d8) ^ uVar33);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar22 ^ CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar13 = DAT_182671f74;
  *(ulonglong *)(lVar4 + -0x5e8) =
       (CONCAT44(uVar50,uVar15) ^ 0x762bd7c6c94200) + (CONCAT44(uVar12,uVar15) ^ 0xd2cd46789879b69f)
  ;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xb20) =
       uVar22 - (*(ulonglong *)(lVar4 - (uVar30 ^ 0xaeabf426)) ^ uVar48) ^ uVar36;
  uVar13 = DAT_182671ed0;
  uVar3 = DAT_182671c9c;
  uVar27 = (ulonglong)DAT_182671c9c;
  uVar22 = (CONCAT44(DAT_182671c98,DAT_182671c98) ^ *(ulonglong *)(lVar4 + -0x680)) +
           (CONCAT44(uVar40,uVar6) ^ 0xc6f99f89d201b131);
  *(ulonglong *)(lVar4 + -0x228) = uVar22 ^ uVar38;
  uVar38 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x4b8) = (uVar43 ^ *puVar28) - uVar22;
  *(ulonglong *)(lVar4 + -0xb18) = (uVar48 ^ *(ulonglong *)(lVar4 + -0xa78)) - uVar22 ^ uVar38;
  *(ulonglong *)(lVar4 - (uVar47 ^ 0x6a971ef0)) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x760)) + 0x5864e4ab5a6ed8bc;
  lVar4 = DAT_182671c40;
  puVar46 = (ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x6a9d1a0f));
  uVar43 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar22 = uVar45 ^ uVar41 ^ *puVar46 ^ *(ulonglong *)(DAT_182671c40 + -0xa60);
  puVar28 = (ulonglong *)(DAT_182671c40 - (uVar42 ^ 0xf81a9f42));
  bVar39 = (byte)uVar9;
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar22 ^ CONCAT44(uVar3,uVar3);
  uVar22 = uVar22 << ((bVar39 ^ 0xe7) & 0x3f);
  uVar27 = (*puVar28 >> 0x20 ^ uVar27) >> 1;
  uVar31 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(lVar4 + -0xc90) = uVar27 ^ uVar43;
  uVar14 = DAT_182671d64;
  *(ulonglong *)(lVar4 + -0xda8) = uVar22 ^ uVar31;
  uVar17 = DAT_182671df0;
  uVar13 = DAT_182671c8c;
  uVar27 = uVar27 | uVar22;
  uVar43 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar4 + -0x920) = uVar27 ^ CONCAT44(uVar14,uVar14);
  uVar18 = DAT_182671fac;
  uVar22 = (uVar45 ^ *(ulonglong *)(lVar4 + -0xf0)) -
           (*(ulonglong *)(lVar4 - (uVar29 ^ 0x2db8e488)) ^ CONCAT44(uVar17,uVar17));
  *puVar1 = uVar22 ^ uVar43;
  uVar17 = DAT_182671e50;
  lVar5 = DAT_182671c40;
  uVar49 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(lVar4 + -0x380) = uVar22 - uVar27 ^ uVar49;
  uVar14 = DAT_182671ca8;
  uVar43 = CONCAT44(uVar17,uVar17);
  uVar22 = (CONCAT44(uVar13,uVar7) ^ 0x8f3f072f5ed5fca9) -
           (CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar5 + -0xd88));
  *(ulonglong *)(lVar5 + -0x7e8) = uVar22 ^ uVar43;
  uVar8 = DAT_182671c70;
  uVar41 = CONCAT44(uVar14,uVar14);
  puVar25 = (ulonglong *)(lVar5 - (uVar26 ^ 0xf8f9fc10));
  *puVar25 = uVar22 + uVar27 ^ uVar41;
  uVar14 = DAT_182671f64;
  uVar16 = DAT_182671c94;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (CONCAT44(uVar7,uVar50) ^ 0x9240fef1d0486a34) << (((byte)uVar13 ^ 0xc6) & 0x3f);
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xaeabfe6e)) =
       *(ulonglong *)(lVar4 + -0xb20) ^ *(ulonglong *)(lVar4 + -0x5e8) ^ uVar22 ^ uVar41 ^ uVar36;
  uVar40 = DAT_182671c84;
  lVar5 = DAT_182671c40;
  uVar27 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0xb5ac046f)) ^ uVar22) >>
           ((bVar39 ^ 0xfd) & 0x3f);
  uVar20 = DAT_182671c68 ^ 0x5743d1f9;
  *(ulonglong *)(DAT_182671c40 + -0x4b8) = uVar27 ^ CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar3 = DAT_182671c48;
  *(uint *)(lVar5 + -0x644) = uVar20 - (uVar40 ^ 0xd70dc754);
  uVar14 = DAT_182671f68;
  lVar4 = DAT_182671c40;
  uVar22 = (*(ulonglong *)(lVar5 + -0x30) ^ uVar22) << (((byte)uVar7 ^ 0x6b) & 0x3f);
  uVar30 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  puVar28 = (ulonglong *)(DAT_182671c40 + -0xda8);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar22 ^ CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar27 = uVar27 | uVar22;
  *(ulonglong *)(lVar4 + -0x408) = uVar22 - (uVar31 ^ *puVar28);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x760) = uVar27 ^ uVar30;
  uVar40 = DAT_182671c50;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xa60) = (*(ulonglong *)(lVar5 + -0xb20) ^ uVar36) - uVar27 ^ uVar31;
  uVar14 = DAT_182671e7c;
  uVar22 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar5 + -0x828) =
       (CONCAT44(uVar16,uVar40) ^ 0xf470dba86059e2aa) << ((byte)uVar6 & 0x3f);
  uVar27 = (ulonglong)DAT_182671de0;
  uVar51 = CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar38 = *(ulonglong *)(lVar5 + -0xb18) ^ uVar36 ^ uVar49 ^ uVar38 ^
           *(ulonglong *)(lVar5 + -0x380);
  *(ulonglong *)(lVar5 + -0xc90) = uVar38;
  uVar14 = DAT_182671da4;
  *(ulonglong *)(lVar5 + -0xa50) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0x89a3f17e)) >> 0x20 ^ uVar27) >> 5 ^ uVar51;
  uVar22 = CONCAT44(uVar14,uVar14);
  *puVar46 = (uVar38 ^ uVar36) << 0x1b ^ uVar22;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xf8f9fce8)) =
       CONCAT44(uVar15,uVar6) ^ 0x759ef22cc4c2d057 | uVar43 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)
  ;
  uVar14 = DAT_182671dec;
  uVar43 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar4 + -0x920) =
       (*(ulonglong *)(lVar4 - (uVar47 ^ 0x6a9710a8)) ^ uVar51 |
       uVar22 ^ *(ulonglong *)(lVar4 + -0xf0)) ^ uVar43;
  uVar20 = DAT_182671c5c;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar38 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x9562eed8)) =
       (uVar49 ^ *(ulonglong *)(lVar4 + -0x380)) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar40 ^ 0xfff9f6d8)) ^ uVar43) ^ uVar36;
  *(undefined8 *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0x52c2e706)) =
       **(undefined8 **)(lVar4 + -0xb88);
  uVar14 = DAT_182671fa4;
  uVar22 = *(ulonglong *)(lVar4 + -0xa60);
  uVar27 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  uVar34 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar51 = uVar27 ^ uVar43 ^ uVar31 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0x920);
  *(ulonglong *)(lVar4 + -0x30) = uVar51;
  uVar51 = uVar51 ^ uVar27;
  uVar49 = CONCAT44(uVar14,uVar14);
  uVar27 = (ulonglong)DAT_182671c64;
  uVar43 = uVar51 >> (((byte)uVar32 ^ 0xe8) & 0x3f);
  *(ulonglong *)(lVar4 + -0x4b8) = uVar43 ^ uVar34;
  lVar5 = DAT_182671c40;
  uVar51 = uVar51 << (((byte)uVar40 ^ 0xd1) & 0x3f);
  puVar28 = (ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x68a0f63e));
  *(ulonglong *)(lVar4 + -0xa78) = uVar51 ^ uVar33;
  uVar51 = uVar51 | uVar43;
  *(ulonglong *)(lVar4 + -0xda8) = uVar51 ^ uVar49;
  uVar14 = DAT_182671f14;
  uVar10 = DAT_182671c78;
  uVar47 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar5 + -0x408) = *puVar28 ^ CONCAT44(DAT_182671c78,uVar20) ^ 0x7da3a2ab1f28d6c7;
  uVar11 = DAT_182671c80;
  uVar43 = CONCAT44(uVar14,uVar14);
  uVar34 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar51 = (uVar31 ^ uVar22) - uVar51 ^ uVar43;
  uVar22 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar5 + -0xb20) = uVar51;
  uVar27 = (ulonglong)DAT_182671c88;
  uVar30 = *(ulonglong *)(lVar5 - (uVar22 ^ 0xd8eeb3f5)) ^
           *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0xf8fffe9f)) ^ uVar34 ^ uVar36 ^ uVar30;
  uVar31 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(lVar5 + -0x828) = uVar30;
  uVar27 = (*(ulonglong *)(lVar5 - (uVar27 ^ 0x89a3f5c6)) ^ uVar34) >>
           (((byte)uVar12 ^ 0xf0) & 0x3f);
  uVar22 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar5 + -0xb18) = uVar27 ^ uVar31;
  uVar30 = (uVar34 ^ uVar30) << ((bVar39 ^ 0xe0) & 0x3f);
  uVar31 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar5 + -0xc90) = uVar30 ^ uVar22;
  uVar27 = uVar27 | uVar30;
  *(ulonglong *)(lVar5 + -0x7e8) = uVar27 ^ uVar31;
  *puVar1 = (uVar36 ^ *(ulonglong *)(lVar5 + -0xbd8)) - uVar27 ^ uVar45;
  *(ulonglong *)(lVar5 + -0xf0) = CONCAT44(uVar15,uVar50) ^ 0x56a648d80f875054 | uVar27;
  uVar14 = DAT_182671efc;
  uVar22 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar5 + -0xa50) =
       *(ulonglong *)(lVar5 - (uVar44 ^ 0xa12a04b8)) ^ uVar51 ^ uVar22 ^ uVar31 ^ uVar43;
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x78e10192)) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0xf8f9f3a8)) ^ uVar22) >> ((local_100 ^ 0x6a) & 0x3f) ^
       uVar27;
  uVar40 = DAT_182671c50;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0x920) =
       (CONCAT44(uVar20,uVar10) ^ 0x42ace608a8532d96) >>
       ((byte)*(undefined8 *)(lVar5 + -0xf0) & 0x3f);
  uVar14 = DAT_182671c8c;
  uVar20 = DAT_182671c64;
  uVar36 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0xf8fff9cf)) =
       (*(ulonglong *)(lVar5 + -0xa50) ^ uVar22) << (((byte)uVar40 ^ 0xf4) & 0x3f) ^ uVar36;
  uVar17 = DAT_182671d3c;
  *(ulonglong *)(lVar5 + -0x4b8) =
       (CONCAT44(uVar3,uVar7) ^ 0x79da2cfd15fc50c3) - (CONCAT44(uVar20,uVar14) ^ 0x8ae9134d1878976d)
  ;
  uVar31 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x2db8e4a0)) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0xf8f9f9c8)) ^ uVar36 |
       uVar27 ^ *(ulonglong *)(lVar4 + -0x380)) ^ uVar31;
  uVar40 = DAT_182671c80;
  puVar28 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0x52c2e896));
  uVar27 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *puVar25 = (*(ulonglong *)(lVar4 + -0xb20) ^ uVar43) - (uVar31 ^ *puVar28) ^ uVar27;
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x6a9d1ef7)) =
       uVar45 ^ *puVar1 ^ uVar22 ^ uVar49 ^ *(ulonglong *)(DAT_182671c40 + -0xda8);
  uVar22 = *(ulonglong *)(lVar4 + -0x408) ^ uVar22;
  uVar35 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar4 + -0xa60) = uVar22 >> (((byte)(uVar9 >> 0x18) ^ 0x53) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar4 + -0x760) =
       (CONCAT44(uVar16,uVar40) ^ 0xa9a5811e75d66b37) + (*(ulonglong *)(lVar4 + -0x30) ^ uVar36);
  uVar3 = DAT_182671c6c;
  uVar43 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xf8f9f1d0)) = uVar22 << 7 ^ uVar41;
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar30 = CONCAT44(uVar8,DAT_182671c48);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0xdc68fda8)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0x52c2e88e)) ^ uVar35 |
       uVar41 ^ *(ulonglong *)(DAT_182671c40 + -0x828)) ^ uVar22;
  lVar5 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar4 + -0xb18) =
       (uVar45 ^ *puVar1) - (*(ulonglong *)(lVar4 - (uVar42 ^ 0xf81a9bfa)) ^ uVar22) ^ uVar36;
  uVar37 = CONCAT44(DAT_182671e98,DAT_182671e98);
  bVar19 = (byte)DAT_182671c8c;
  uVar35 = *(ulonglong *)(lVar4 - (uVar47 ^ 0xdc68fda8)) ^ *(ulonglong *)(lVar5 + -0x5e8) ^ uVar37 ^
           uVar22 ^ uVar27;
  *(ulonglong *)(lVar5 + -0xbd8) = uVar35;
  uVar22 = *puVar24;
  *(undefined8 *)(lVar5 + -0xf0) = 0x7d768a77a8afb7;
  uVar14 = DAT_182671cac;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0x7e8) = (uVar22 ^ uVar37) >> ((bVar19 ^ 0xde) & 0x3f) ^ uVar48;
  uVar43 = (ulonglong)DAT_182671c88;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x920) = (uVar37 ^ uVar35) << ((bVar39 ^ 0xca) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xf8f9f3a8)) =
       (uVar30 ^ 0x6ce168b1bb2f51ee) - (CONCAT44(uVar13,uVar32) ^ 0xc880de6b1b9dfb89);
  uVar13 = DAT_182671cb0;
  uVar35 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar4 + -0x4b8) =
       (*(ulonglong *)(lVar4 - (uVar42 ^ 0xf81a9e4a)) ^ uVar22 |
       uVar48 ^ *(ulonglong *)(lVar4 + -0x7e8)) ^ uVar35;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar43 ^ 0x89a3fe6e)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0x78e107fa)) ^ uVar27) -
       (CONCAT44(DAT_182671ddc,DAT_182671ddc) ^ *(ulonglong *)(lVar4 + -0x888)) ^ uVar22;
  uVar13 = DAT_182671ea4;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x2db8e5f8)) =
       (uVar22 ^ *(ulonglong *)(lVar4 + -0x380)) - (*(ulonglong *)(lVar4 + -0x4b8) ^ uVar35) ^
       CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar42 = (CONCAT44(uVar6,uVar50) ^ 0x182f8d3a657ab2bf) + (*(ulonglong *)(lVar4 + -0x3d8) ^ uVar33)
  ;
  *(ulonglong *)(lVar4 + -0xda8) = uVar42 ^ uVar23;
  uVar6 = DAT_182671dd4;
  uVar22 = (ulonglong)DAT_182671dd4;
  *(ulonglong *)(lVar4 + -0x30) =
       (*(ulonglong *)(lVar4 + -0x4b8) ^ uVar35) - uVar42 ^ CONCAT44(uVar13,uVar13);
  uVar42 = CONCAT44(uVar6,uVar6) ^ uVar36 ^ uVar31 ^ *puVar28 ^ *(ulonglong *)(lVar4 + -0xb18);
  *(ulonglong *)(lVar4 + -0x760) = uVar42;
  *(ulonglong *)(lVar4 + -0x408) =
       (CONCAT44(uVar32,uVar40) ^ 0x145717d3dae01237) -
       (CONCAT44(uVar20,uVar3) ^ 0x746b20cb6da13bb3);
  uVar35 = ((ulonglong)(uVar6 >> 0x10) | uVar22 << 0x10) ^ uVar42 >> 0x10;
  uVar27 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(lVar4 + -0xa60) = uVar35 ^ CONCAT44(DAT_182671f40,DAT_182671f40);
  uVar22 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar4 + -0x828) =
       (uVar42 ^ CONCAT44(uVar6,uVar6)) << (((byte)DAT_182671c94 ^ 0x6f) & 0x3f) ^ uVar27;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0x68a0fbfe)) ^ uVar27 | uVar35) ^
            CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar50) * 4) = uVar21;
  return;
}



############ FUN_ 180f9b980 size=3344 ############

void FUN_180f9b980(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  
  bVar13 = (byte)DAT_182671ec8;
  uVar10 = DAT_182671c78;
  uVar9 = DAT_182671c6c;
  uVar6 = DAT_182671c58;
  uVar7 = DAT_182671c50;
  uVar5 = DAT_182671c4c;
  uVar4 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c48;
  uVar16 = (ulonglong)DAT_182671c78;
  uVar30 = (ulonglong)DAT_182671c6c;
  uVar31 = (ulonglong)DAT_182671c50;
  uVar25 = DAT_182671c4c - DAT_182671c48;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182672004);
  uVar29 = (ulonglong)DAT_182671c58;
  uVar26 = DAT_182671c6c ^ DAT_182671c58;
  uVar24 = DAT_182671c78 * DAT_182671c50;
  uVar14 = *(uint *)(&DAT_182613220 + DAT_182672004) ^ DAT_182671c48;
  uVar22 = (ulonglong)DAT_182671c78;
  uVar21 = (ulonglong)DAT_182671dbc;
  uVar17 = CONCAT44(DAT_182671c4c,DAT_182671c78) ^ 0xf32a2462fcdfffbe;
  uVar15 = (ulonglong)uVar24;
  uVar18 = CONCAT44(DAT_182671f24,DAT_182671f24);
  DAT_182671c74 = uVar25;
  DAT_182671c88 = uVar26;
  DAT_182671c94 = uVar24;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar24 ^ 0xf2d4eb50)) =
       (*(ulonglong *)(DAT_182671c40 + -0xcd0) ^ uVar21) + uVar17;
  *(ulonglong *)(lVar2 + -0xd88) =
       *(ulonglong *)(CONCAT44(DAT_182671da0,DAT_182671da0) ^ *(ulonglong *)(lVar2 + -0x610)) ^
       uVar18;
  uVar18 = (ulonglong)DAT_182671f68;
  *(byte *)(lVar2 + -0x451) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x7fbfd7ef)) ^ uVar21) ^ bVar13 ^
       (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0x841) = (byte)uVar7 ^ 0x73;
  *(byte *)(*(ulonglong *)(lVar2 + -0x728) ^ (ulonglong)DAT_182671ebc) = (byte)uVar26 ^ 0xdf;
  *(ulonglong *)(lVar2 + -0x920) = *(ulonglong *)(lVar2 + -0xa78) >> 0x3d;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xfcdffb67)) =
       (*(ulonglong *)(DAT_182671c40 + -0x858) ^ uVar18) +
       (CONCAT44(uVar6,uVar24) ^ 0xefb7f2fff2d4ea01);
  lVar2 = DAT_182671c40;
  uVar21 = (ulonglong)uVar26;
  pbVar19 = (byte *)(DAT_182671c40 + -0x451);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (CONCAT44(uVar24,uVar26) ^ 0xa5094480d0e2e858) <<
       ((byte)*(undefined8 *)(DAT_182671c40 + -0x408) & 0x3f);
  lVar3 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x90082198)) ^ uVar18) = bVar13 ^ *pbVar19;
  uVar28 = (ulonglong)DAT_182671e1c;
  *(ulonglong *)(lVar3 + -0x490) = *(ulonglong *)(lVar3 + -0x4d8);
  *(byte *)(lVar3 + -0x451) = (byte)uVar9 ^ 0xfe;
  uVar18 = *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x5bc59750));
  *(ulonglong *)(lVar3 + -0x598) = uVar18;
  uVar22 = (ulonglong)DAT_182671da8;
  *(ulonglong *)(lVar3 + -0x2f8) = uVar28 ^ *(ulonglong *)(lVar3 + -0x4d8);
  *(ulonglong *)(lVar3 + -0x5b8) = uVar18 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x238) = (CONCAT44(uVar10,uVar5) ^ 0xfcdfffbff32a2463) + uVar18;
  *(byte *)(lVar3 + -0x3a2) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x62a21db)) ^ uVar22) ^
       (byte)DAT_182671de4 ^ (byte)DAT_182671d18;
  bVar20 = (byte)uVar24;
  *(undefined1 *)(lVar3 - (uVar16 ^ 0xfcdff67e)) = 0x2c;
  *(byte *)(*(ulonglong *)(lVar3 + -0x548) ^ (ulonglong)DAT_182671df4) = bVar20 ^ 0x10;
  pbVar19 = (byte *)(*(ulonglong *)(lVar3 + -0x2f8) ^ uVar28);
  *(byte **)(lVar3 + -0xda0) = pbVar19 + (CONCAT44(uVar6,uVar10) ^ 0xefb7f2fffcdfffbe);
  *pbVar19 = *(byte *)(lVar3 + -0x3a2) ^ (byte)DAT_182671de4;
  uVar22 = (ulonglong)DAT_182671fb0;
  *(byte *)(lVar3 + -0x3a2) = (byte)uVar4 ^ 0x79;
  uVar18 = (ulonglong)DAT_182671e4c;
  *(undefined8 *)(lVar3 - (uVar15 ^ 0xf2d4ee68)) =
       *(undefined8 *)(lVar3 - ((ulonglong)uVar5 ^ 0xf32a29c2));
  *(undefined8 *)(lVar3 + -0x798) = *(undefined8 *)(lVar3 + -0x238);
  *(ulonglong *)(lVar3 + -0x240) = *(ulonglong *)(lVar3 + -0x468) ^ uVar22;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x460) = *(ulonglong *)(lVar3 - (uVar23 ^ 0xecfff867)) ^ uVar18;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x308) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0x7fbfdf5f)) ^ uVar18) +
       (CONCAT44(uVar7,uVar5) ^ 0x5bc59600f32a2463);
  *(byte *)(DAT_182671c40 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0x90082da0)) ^ uVar18) ^ (byte)DAT_182671cdc ^
       (byte)DAT_182671d18;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 - (uVar16 ^ 0xfcdff895)) = bVar20 ^ 0x70;
  lVar3 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(lVar2 + -0x838) ^ (ulonglong)DAT_182671e08) = (byte)uVar26 ^ 0xc4;
  bVar11 = (byte)DAT_182671e7c;
  uVar8 = DAT_182671c64;
  *(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0x62a227f)) =
       *(uint *)(lVar3 + -0x684) | *(uint *)(lVar3 + -0x27c);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x7fbfdc8f)) = (*(ulonglong *)(lVar3 + -0x240) ^ uVar22) + 1;
  uVar28 = (ulonglong)DAT_182671cd8;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar29 ^ 0xefb7f0bf)) ^ uVar22) =
       *(byte *)(lVar3 + -0x1c3) ^ (byte)DAT_182671cdc;
  *(byte *)(lVar3 - (uVar31 ^ 0x5bc597c3)) = (byte)uVar5 ^ 0xc0;
  uVar18 = (ulonglong)DAT_182671e64;
  *(undefined8 *)(lVar3 + -0x128) = *(undefined8 *)(lVar3 + -0x308);
  *(ulonglong *)(lVar3 + -0x7e0) = *(ulonglong *)(lVar3 + -0x7b0);
  *(ulonglong *)(lVar3 + -0x160) = uVar28 ^ *(ulonglong *)(lVar3 + -0x7b0);
  pbVar19 = *(byte **)(lVar3 - (uVar15 ^ 0xf2d4eb28));
  *(ulonglong *)(lVar3 + -0x340) = (ulonglong)pbVar19 ^ uVar18;
  *(uint *)(lVar3 + -0x670) = (uVar25 ^ 0x1dae73e4) * -0x57a45422;
  *(byte **)(lVar3 + -0x1f0) = pbVar19 + 1;
  bVar13 = *pbVar19;
  *(byte *)(lVar3 + -0xcd2) = bVar20 ^ 0xf3;
  *(byte *)(lVar3 + -0xc99) = bVar13 ^ bVar11 ^ (byte)DAT_182671d18;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x18) ^ (ulonglong)DAT_182671e28) = 0xd9;
  uVar24 = DAT_182671c60;
  uVar27 = DAT_182671c60 - uVar8;
  *(ulonglong *)(lVar3 + -0x628) =
       *(ulonglong *)(lVar3 - (uVar16 ^ 0xfcdff237)) ^ CONCAT44(uVar26,uVar5) ^ 0xbb42a98fea32db36;
  lVar2 = DAT_182671c40;
  pbVar19 = (byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0x160));
  uVar28 = (ulonglong)DAT_182671d90;
  DAT_182671c80 = uVar27;
  *(byte **)(lVar3 + -0x6d8) = pbVar19 + 1;
  bVar12 = (byte)uVar24;
  *pbVar19 = bVar11 ^ *(byte *)(lVar3 + -0xc99);
  *(byte *)(lVar3 + -0xc99) = bVar12 ^ 0x53;
  *(undefined8 *)(lVar3 + -0xaf0) = *(undefined8 *)(lVar3 + -0x6d8);
  uVar18 = (ulonglong)DAT_182671fb4;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar8 ^ 0xb87858c7)) =
       *(undefined8 *)(lVar2 - ((ulonglong)uVar27 ^ 0x608007f5));
  *(ulonglong *)(lVar2 + -0xd58) = *(ulonglong *)(lVar2 + -0xaf0) ^ uVar28;
  *(uint *)(lVar2 + -0x5d4) = (uVar27 ^ 0xfcc2141b) + (uVar24 ^ 0x583fb758);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xb8785d1f)) = *(ulonglong *)(lVar2 + -0x750) ^ uVar18;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0x608004cd)) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0x288)) + 1;
  *(byte *)(lVar2 + -0xc9c) =
       *(byte *)(uVar18 ^ *(ulonglong *)(lVar2 + -0x288)) ^ (byte)DAT_182671f48 ^
       (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0x551) = bVar12 ^ 0xf8;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x18f8616c)) ^ (ulonglong)DAT_182671f44) = 0x30;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0x60800165)) =
       CONCAT44(uVar7,uVar6) ^ 0x1468ec85d15f768c | CONCAT44(uVar26,uVar4) ^ 0x87e98d703f3a6712;
  uVar6 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671ee4;
  pbVar19 = (byte *)(*(ulonglong *)(DAT_182671c40 + -0xd58) ^ uVar28);
  *(byte **)(DAT_182671c40 + -0x4c8) = pbVar19 + (CONCAT44(uVar8,uVar4) ^ 0xb8785f97ecfffffe);
  *pbVar19 = *(byte *)(lVar2 + -0xc9c) ^ (byte)DAT_182671f48;
  *(byte *)(lVar2 + -0xc9c) = (byte)uVar6 ^ 0x29;
  *(ulonglong *)(lVar2 + -0xa70) =
       CONCAT44(uVar26,uVar10) ^ 0x76bc5029a980aaee | *(ulonglong *)(lVar2 + -0x920);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar8 ^ 0xb87854ef)) = *(undefined8 *)(lVar2 + -0x4c8);
  *(undefined8 *)(lVar2 + -0x318) = *(undefined8 *)(lVar2 - (uVar16 ^ 0xfcdffd77));
  *(longlong *)(lVar2 + -0xb20) = -0x7506d11a5d423f34 - *(longlong *)(lVar2 + -0xd88);
  uVar18 = (ulonglong)DAT_182671dac;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xf2d4e2f8)) = *(ulonglong *)(lVar2 + -0xb78) ^ uVar22;
  *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xecfff3ff)) =
       *(ulonglong *)(DAT_182671c40 + -0x318) ^ uVar18;
  lVar2 = DAT_182671c40;
  pbVar19 = (byte *)(*(ulonglong *)(DAT_182671c40 + -0xc00) ^ uVar18);
  *(byte **)(DAT_182671c40 + -0x580) = pbVar19 + 1;
  *(byte *)(lVar2 + -0x19a) = (byte)DAT_182671d08 ^ (byte)DAT_182671d18 ^ *pbVar19;
  *(byte *)(lVar2 - (uVar30 ^ 0x7fbfd756)) = (byte)uVar27 ^ 0xc6;
  lVar2 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x780) ^ (ulonglong)DAT_182671ddc) = bVar12 ^ 0x93;
  *(ulonglong *)(lVar2 + -0xb0) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0xefb7fa07)) ^ uVar22) +
       (CONCAT44(uVar10,uVar9) ^ 0xfcdfffbf7fbfdb3e);
  uVar4 = DAT_182671ec4;
  uVar28 = (ulonglong)DAT_182671ec4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8f8) ^ uVar22) =
       *(byte *)(lVar2 - (uVar15 ^ 0xf2d4eb9a)) ^ (byte)DAT_182671d08;
  uVar18 = uVar28 ^ *(ulonglong *)(lVar2 + -0x580);
  bVar13 = (byte)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0x830) = *(ulonglong *)(lVar2 + -0x580);
  *(byte *)(lVar2 + -0x19a) = bVar13 ^ 0xa6;
  *(undefined8 *)(lVar2 + -0xba8) = *(undefined8 *)(lVar2 + -0xb0);
  lVar3 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671f24;
  *(ulonglong *)(DAT_182671c40 + -0x208) = *(ulonglong *)(lVar2 - (uVar21 ^ 0x90082268)) ^ uVar22;
  *(ulonglong *)(lVar3 + -0xd40) = uVar18;
  *(longlong *)(DAT_182671c40 + -0xb08) = 0x692fafc8d925f157 << ((bVar20 ^ 0x33) & 0x3f);
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0xfcdff317)) =
       (CONCAT44(uVar25,uVar9) ^ 0x62a24637fbfdb3e) + (uVar4 ^ uVar18);
  *(ulonglong *)(lVar2 + -0x4b8) = *(ulonglong *)(lVar2 + -0x380) >> (((byte)uVar7 ^ 0x1a) & 0x3f);
  *(byte *)(lVar2 + -0xd31) =
       *(byte *)(uVar28 ^ *(ulonglong *)(lVar2 + -0xd40)) ^ (byte)DAT_182671d20 ^
       (byte)DAT_182671d18;
  uVar18 = (ulonglong)DAT_182671ef8;
  *(byte *)(lVar2 + -0x7f1) = (byte)uVar6 ^ 0x55;
  uVar28 = (ulonglong)DAT_182671d24;
  *(byte *)(*(ulonglong *)(lVar2 + -0x940) ^ uVar18) = (byte)uVar8 ^ 0xc3;
  *(ulonglong *)(lVar2 + -0x3d8) =
       (CONCAT44(uVar8,uVar27) ^ 0x77c45ab27aea6f87) << (((byte)uVar10 ^ 0xac) & 0x3f);
  *(ulonglong *)(lVar2 + -0x2d8) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0x90082bc8)) ^ uVar22) +
       (CONCAT44(uVar24,uVar5) ^ 0x18f8659cf32a2463);
  *(byte *)(*(ulonglong *)(lVar2 + -0x208) ^ uVar22) =
       *(byte *)(lVar2 - (uVar23 ^ 0xecfff2ce)) ^ (byte)DAT_182671d20;
  *(undefined1 *)(lVar2 + -0xd31) = 0x4b;
  *(undefined8 *)(lVar2 + -0xd30) = *(undefined8 *)(lVar2 - ((ulonglong)uVar27 ^ 0x608004dd));
  *(undefined8 *)(lVar2 - (uVar16 ^ 0xfcdff30f)) = *(undefined8 *)(lVar2 + -0xca8);
  *(ulonglong *)(lVar2 + -0xbd8) =
       *(ulonglong *)(lVar2 + -0x7e8) >> ((byte)*(undefined8 *)(lVar2 + -0x5e8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x5e0) = *(ulonglong *)(lVar2 - (uVar15 ^ 0xf2d4e730)) ^ uVar28;
  *(ulonglong *)(lVar2 + -0xb18) = *(ulonglong *)(lVar2 + -0x4b8) >> (((byte)uVar25 ^ 0x75) & 0x3f);
  uVar18 = (ulonglong)DAT_182671cbc;
  *(ulonglong *)(lVar2 + -0x130) = (ulonglong)*(byte **)(lVar2 + -0xcb0) ^ uVar18;
  bVar11 = (byte)DAT_182671d2c;
  *(ulonglong *)(lVar2 + -0x4a0) = (*(ulonglong *)(lVar2 - (uVar23 ^ 0xecfffecf)) ^ uVar18) + 1;
  bVar13 = **(byte **)(lVar2 + -0xcb0);
  *(undefined1 *)(lVar2 + -0x3a1) = 0x28;
  *(byte *)(lVar2 + -0x151) = bVar13 ^ bVar11 ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar30 ^ 0x7fbfdf1f)) ^ (ulonglong)DAT_182671de8) =
       bVar12 ^ 0x12;
  pbVar19 = (byte *)(*(ulonglong *)(lVar2 + -0x5e0) ^ uVar28);
  *(byte **)(lVar2 + -0xae0) = pbVar19 + uVar17;
  *(ulonglong *)(lVar2 + -0x960) = CONCAT44(uVar7,uVar26) ^ 0xab9bd94e0ca69937;
  *pbVar19 = bVar11 ^ *(byte *)(lVar2 + -0x151);
  *(byte *)(lVar2 + -0x151) = (byte)DAT_182671c90 ^ 0x6b;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar1 ^ uVar25;
  return;
}



############ FUN_ 180fd7e30 size=3979 ############

void FUN_180fd7e30(void)

{
  uint uVar1;
  undefined1 *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte *pbVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  longlong *plVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte local_res20;
  byte local_90;
  
  uVar7 = DAT_182671c88;
  uVar8 = DAT_182671c80;
  uVar6 = DAT_182671c6c;
  uVar5 = DAT_182671c5c;
  lVar3 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c88;
  uVar28 = (ulonglong)DAT_182671c5c;
  uVar25 = (ulonglong)DAT_182671c80;
  uVar21 = (DAT_182671c88 << 0x10 | DAT_182671c88 & 0xff00) << 8 | DAT_182671c88 >> 8 & 0xff00 |
           DAT_182671c88 >> 0x18;
  uVar15 = (DAT_182671c5c << 0x10 | DAT_182671c5c & 0xff00) << 8 | DAT_182671c5c >> 8 & 0xff00 |
           DAT_182671c5c >> 0x18;
  uVar24 = (ulonglong)DAT_182671c6c;
  uVar31 = DAT_182671c80 - DAT_182671c6c;
  uVar34 = (ulonglong)DAT_182671c6c;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar24 ^ 0x38f168d4) + (longlong)DAT_182672028);
  uVar12 = *(uint *)(&DAT_182613220 + DAT_182672028) ^ DAT_182671c80;
  uVar14 = CONCAT44(uVar15,DAT_182671c5c);
  bVar13 = (byte)DAT_182671c5c;
  uVar35 = CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar20 = CONCAT44(DAT_182671e08,DAT_182671e08);
  bVar26 = (byte)DAT_182671e08 ^ (byte)DAT_182671e10;
  uVar32 = (ulonglong)DAT_182671d5c;
  uVar23 = (ulonglong)DAT_182671c88;
  uVar17 = (*(ulonglong *)(DAT_182671c40 + -0x680) ^ uVar35) >> ((bVar13 ^ 0x25) & 0x3f) ^ uVar20;
  DAT_182671c7c = uVar15;
  DAT_182671c84 = uVar31;
  DAT_182671c90 = uVar21;
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar17;
  uVar23 = *(ulonglong *)(lVar3 - (uVar23 ^ 0xeeffb2c9));
  *(byte *)(lVar3 + -0xaa1) = bVar26 ^ (byte)uVar17;
  *(ulonglong *)(lVar3 + -0xa78) = uVar23 ^ uVar17 ^ uVar20;
  lVar3 = DAT_182671c40;
  uVar22 = (ulonglong)uVar31;
  *(ulonglong *)(DAT_182671c40 + -0xbf0) =
       (CONCAT44(uVar21,uVar31) ^ 0xe9bbffeeb0ca9709) + *(longlong *)(DAT_182671c40 + -0x9a8) ^
       uVar32;
  local_90 = (byte)(uVar5 >> 0x18);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xe9bbf436)) =
       (CONCAT44(uVar5,uVar31) ^ 0xfefaecb0f8cd96b4) << ((local_90 ^ 0xd0) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar3 + -0xbf0) ^ uVar32) =
       *(byte *)(lVar3 - (uVar22 ^ 0xb0ca9db3)) ^ (byte)DAT_182671e0c ^ (byte)DAT_182671e10;
  uVar17 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar31 ^ 0xb0ca9142)) =
       *(longlong *)(lVar3 + -0xc40) + 0x18 + (CONCAT44(uVar5,uVar6) ^ 0xdceef93d38f168dc) * 0x20 ^
       uVar17;
  uVar16 = DAT_182671d80;
  uVar27 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar23 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar32 = (ulonglong)DAT_182671d80;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x38f16574)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x650) ^ uVar17) ^ uVar23 ^ uVar27;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xeeffb7f1)) =
       0x463c78e601e16591 >> (((byte)uVar7 ^ 0xd5) & 0x3f);
  local_res20 = (byte)(uVar7 >> 0x18);
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (*(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xe9bbf246)) ^ uVar27) >>
       ((local_res20 ^ 0xce) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  lVar3 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  uVar17 = (ulonglong)DAT_182671d98;
  bVar26 = (byte)DAT_182671f0c ^ (byte)DAT_182671e0c;
  bVar29 = (byte)uVar16 ^ (byte)DAT_182671f0c ^ *(byte *)(DAT_182671c40 + -0x960);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0xb08)) -
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x38f168ec)) ^ uVar20);
  *(byte *)(lVar3 + -0xbb1) = bVar29;
  uVar9 = DAT_182671f80;
  pbVar18 = (byte *)(*(longlong *)(lVar3 - (uVar28 ^ 0xdceef095)) +
                    (CONCAT44(uVar7,uVar31) ^ 0xeeffbbe9b0ca970e));
  *(ulonglong *)(lVar3 + -0x38) = (ulonglong)pbVar18 ^ uVar17;
  uVar17 = CONCAT44(uVar9,uVar9);
  *pbVar18 = bVar26 ^ bVar29;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xd68) =
       *(longlong *)(DAT_182671c40 + -0xc40) +
       ((CONCAT44(uVar8,uVar6) ^ 0xe9bbffee38f168df) + (uVar14 ^ 0x3df9eedcdceef93d) * 4) * 8 ^
       uVar17;
  uVar10 = DAT_182671f58;
  uVar17 = *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0x38f165b4)) ^ uVar17) ^ uVar23 ^
           CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0x4b8) = uVar17;
  uVar17 = (uVar17 >> 0x20 ^ uVar32) >> 8 ^ CONCAT44(uVar10,uVar10);
  *(byte *)(lVar3 + -0xa12) = (byte)uVar10 ^ (byte)DAT_182671cc0 ^ (byte)uVar17;
  *(ulonglong *)(lVar3 + -0xb18) = uVar17;
  uVar9 = DAT_182671d24;
  uVar17 = CONCAT44(uVar7,uVar21);
  uVar20 = (ulonglong)DAT_182671ee4;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xe9bbf88e)) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0xeeffbd69)) ^ uVar35) >>
       ((byte)*(undefined8 *)(lVar3 + -0xa78) & 0x3f);
  pbVar18 = (byte *)((uVar17 ^ 0xeeffbbe9e9bbffee) * 0x20 +
                     (CONCAT44(uVar5,uVar8) ^ 0xdceef93de9bbfff3) + *(longlong *)(lVar3 + -0x9a8));
  *(ulonglong *)(lVar3 + -0x7f0) = (ulonglong)pbVar18 ^ uVar20;
  uVar11 = DAT_182671fac;
  *pbVar18 = *(byte *)(lVar3 - (uVar22 ^ 0xb0ca9d00)) ^ (byte)DAT_182671cc0 ^ (byte)DAT_182671e0c;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xc40) + 0x18 +
            (CONCAT44(uVar21,uVar8) ^ 0xe9bbffeee9bbffee) * 0x20);
  uVar32 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar19 ^ CONCAT44(uVar11,uVar11);
  uVar20 = *puVar19 ^ uVar32 ^ uVar23;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x38f16dcc)) = uVar20;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (uVar32 ^ uVar20) >> ((local_90 ^ 0xec) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(byte *)(lVar3 + -0x5b9) =
       *(byte *)(lVar3 - ((ulonglong)uVar15 ^ 0x3df9ed04)) ^ (byte)uVar9 ^ (byte)DAT_182671d20;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xeeffb959)) =
       0xea07c377f4d8dda8 >> ((*(byte *)(lVar3 - (uVar28 ^ 0xdceef225)) ^ (byte)uVar10) & 0x3f);
  pbVar18 = (byte *)((CONCAT44(uVar5,uVar15) ^ 0xdceef93d3df9eedc) * 0x20 +
                     (CONCAT44(uVar21,uVar21) ^ 0xe9bbffeee9bbfff0) + *(longlong *)(lVar4 + -0x9a8))
  ;
  *(ulonglong *)(lVar4 + -800) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182671e2c;
  *(ulonglong *)(lVar4 + -0xa50) =
       (CONCAT44(uVar31,uVar6) ^ 0x35745ce631199993) + 0xa35cd1efc5a5c5c2;
  *pbVar18 = *(byte *)(DAT_182671c40 - (uVar30 ^ 0xeeffbe50)) ^ (byte)DAT_182671d20 ^
             (byte)DAT_182671e0c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x2e8) =
       *(longlong *)(DAT_182671c40 + -0xc40) +
       ((CONCAT44(uVar6,uVar7) ^ 0x38f168dceeffbbea) +
       (CONCAT44(uVar8,uVar21) ^ 0xe9bbffeee9bbffee) * 4) * 8 ^ uVar27;
  uVar9 = DAT_182671d74;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x38f1649c)) = CONCAT44(uVar31,uVar31) ^ 0xc5d2a8732a5c0bbe;
  uVar10 = DAT_182671ef4;
  uVar32 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(lVar3 + -0xb20) =
       *(ulonglong *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x2e8)) ^ uVar32 ^ uVar23;
  *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0x138)) =
       CONCAT44(uVar8,uVar31) ^ 0x31507a76b1a65a4d;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xe9bbf58e)) =
       (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0xb20)) >> (((byte)uVar7 ^ 0xd1) & 0x3f) ^
       CONCAT44(uVar10,uVar10);
  uVar23 = (ulonglong)DAT_182671f18;
  bVar26 = *(byte *)(DAT_182671c40 - (uVar28 ^ 0xdceef35d)) ^ (byte)uVar10;
  *(byte *)(lVar3 + -0x3d9) = bVar26 ^ (byte)DAT_182671c9c;
  bVar26 = bVar26 ^ (byte)DAT_182671e0c;
  pbVar18 = (byte *)((CONCAT44(uVar5,uVar7) ^ 0xdceef93deeffbbf6) +
                     (CONCAT44(uVar6,uVar15) ^ 0x38f168dc3df9eedc) * 0x20 +
                    *(longlong *)(lVar3 + -0x9a8));
  *(ulonglong *)(lVar3 + -0x550) = (ulonglong)pbVar18 ^ uVar23;
  *pbVar18 = bVar26;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar21 ^ 0xe9bbfc7e)) = *(undefined8 *)(lVar3 + 0x48);
  *(ulonglong *)(lVar3 + -0xd88) =
       (CONCAT44(uVar8,uVar6) ^ 0xbd2d6c4bf53040ec) - *(longlong *)(lVar3 + -0x5e8);
  uVar7 = DAT_182671c74;
  *(undefined8 *)(lVar3 - (uVar22 ^ 0xb0ca96c2)) = *(undefined8 *)(lVar3 - (uVar25 ^ 0xe9bbf4ae));
  uVar9 = DAT_182671f2c;
  uVar23 = (ulonglong)DAT_182671f50;
  *(ulonglong *)(lVar3 + -0xb40) = CONCAT44(uVar5,uVar8) ^ 0x41bd0ced7bca4f90;
  uVar27 = (ulonglong)uVar7;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xb0ca9702)) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xa00)) + 0x20 + (uVar17 ^ 0xeeffbbe9e9bbffed) * 8 ^ uVar24
  ;
  uVar10 = DAT_182671f84;
  uVar9 = DAT_182671d58;
  *(ulonglong *)(lVar3 + -0xa00) = uVar17 ^ 0x648ff3b2cbf74d53;
  uVar5 = DAT_182671c68;
  uVar20 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar3 + -0x380) =
       CONCAT44(DAT_182671d7c,DAT_182671d7c) ^
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x10) ^ uVar24) ^ CONCAT44(uVar9,uVar9);
  uVar16 = uVar7 - uVar5;
  uVar17 = (ulonglong)uVar16;
  DAT_182671c48 = uVar16;
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar30 ^ 0xeeffbc49)) ^ CONCAT44(uVar10,uVar10)) =
       CONCAT44(uVar6,uVar15) ^ 0x60cd036ca1994f5d;
  *(ulonglong *)(lVar3 + -0x870) = *(ulonglong *)(lVar3 + -0xd0) ^ (ulonglong)DAT_182671cf4;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x418) =
       *(longlong *)(lVar3 - (uVar17 ^ 0xdf6efc90)) +
       ((uVar24 ^ 0xd868f138d868f138) + (CONCAT44(uVar7,uVar5) ^ 0xd868f138f8f9f9f8) * 0xc) * 8;
  puVar2 = *(undefined1 **)(((ulonglong)uVar5 ^ 0xf8f9f9c8) + lVar3);
  *(undefined1 **)(lVar3 + -0x428) = puVar2;
  *(undefined1 *)(lVar3 + -0x2e9) = *puVar2;
  *(uint *)(lVar3 + -0x644) = (uVar5 ^ 0x498618bb) + *(int *)(lVar3 + -0xae4);
  *(ulonglong *)(lVar3 + -0x7e8) = (ulonglong)*(byte *)(lVar3 + -0x2e9);
  uVar28 = CONCAT44(uVar16,uVar5);
  *(ulonglong *)(lVar3 + -0xf0) =
       (CONCAT44(uVar7,uVar16) ^ 0xd591e92849d419be) <<
       (((byte)uVar9 ^ *(byte *)(lVar3 + -0x380)) & 0x3f);
  plVar33 = (longlong *)(lVar3 - ((ulonglong)uVar16 ^ 0xdf6ef368));
  *plVar33 = (uVar28 ^ 0xdf6ef740f8f9f9f9) + *(longlong *)(lVar3 + 0x30);
  *(ulonglong *)(lVar3 + -0x828) =
       uVar24 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0xb20) ^ 0xe2e4c63854a7e9b7;
  bVar26 = **(byte **)(lVar3 + -0x428);
  *(byte *)(lVar3 + -0x2e9) = bVar26;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xdf6ef568)) = (ulonglong)bVar26;
  *(int *)(lVar3 + -0x634) =
       (int)(uVar7 ^ 0xbab9e0dc) >> ((byte)*(undefined4 *)(lVar3 + -0x6c0) & 0x1f);
  *(longlong *)(lVar3 + -0xc90) = *(longlong *)(lVar3 + -0x228) << (((byte)uVar5 ^ 0xf0) & 0x3f);
  uVar25 = *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xdf6ef0a8)) |
           *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xdf6efbd0));
  pbVar18 = (byte *)((CONCAT44(uVar5,uVar7) ^ 0xf8f9f9f8d868f13a) + *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x428) = pbVar18;
  *(ulonglong *)(lVar3 + -0x110) = uVar25;
  bVar26 = *pbVar18;
  *(byte *)(lVar3 + -0x2e9) = bVar26;
  *(ulonglong *)(lVar3 + -0xc38) = (ulonglong)bVar26;
  *(longlong *)(lVar3 + -0x888) = *(longlong *)(lVar3 - (uVar20 ^ 0xf8f9f568)) + 0xa21c1a06eb3328c;
  uVar23 = *(longlong *)(lVar3 - (uVar17 ^ 0xdf6efb78)) << 0x10;
  *(ulonglong *)(lVar3 + -0x920) = uVar23;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0xf8f9f220)) = uVar23 | uVar25;
  *(ulonglong *)(lVar3 + -0xc18) = (uVar24 ^ 0x437ff63c6aa47023) + *(longlong *)(lVar3 + -0x7e8);
  *(ulonglong *)(lVar3 + -0x428) =
       (uVar28 ^ 0xdf6ef740f8f9f9fb) + *(longlong *)(((ulonglong)uVar5 ^ 0xf8f9f9c8) + lVar3);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xd868fc90)) =
       *(ulonglong *)(lVar3 + -0x2b0) ^ CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0x380);
  bVar26 = **(byte **)(lVar3 - ((ulonglong)uVar7 ^ 0xd868f510));
  *(byte *)(lVar3 + -0x2e9) = bVar26;
  *(ulonglong *)(lVar3 + -0xb08) = (ulonglong)bVar26;
  *(uint *)(lVar3 + -0x9dc) = *(uint *)(lVar3 + -0x94) >> 10;
  uVar23 = (ulonglong)bVar26 << ((bVar13 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar3 + -0x30) = uVar23;
  *(ulonglong *)(lVar3 + -0x960) = *(ulonglong *)(lVar3 + -0xbd8) | uVar23;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xdf6ef3f8)) = uVar28 ^ 0x109a008c7085003 | 0xfa765b771867a0b8;
  pbVar18 = (byte *)((CONCAT44(uVar7,uVar16) ^ 0xd868f138df6ef744) + *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x428) = pbVar18;
  bVar26 = *pbVar18;
  *(byte *)(lVar3 + -0x2e9) = bVar26;
  *(ulonglong *)(lVar3 + -0x680) = (ulonglong)bVar26;
  uVar23 = *(longlong *)(lVar3 - (uVar20 ^ 0xf8f9ff78)) << (((byte)uVar7 ^ 0x18) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa78) = uVar23;
  *(ulonglong *)(lVar3 + -0x760) =
       *(ulonglong *)(lVar3 - (uVar27 ^ 0xd868fb40)) | *(ulonglong *)(lVar3 + -0x960);
  *(longlong *)(lVar3 + -0x428) = *(longlong *)(lVar3 + 0x30) + 5;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xd868f428)) = uVar23 ^ *(ulonglong *)(lVar3 + -0x4b8);
  bVar26 = **(byte **)(lVar3 + -0x428);
  *(byte *)(lVar3 + -0x2e9) = bVar26;
  *(ulonglong *)(lVar3 + -0xb18) = (ulonglong)bVar26 << 0x28;
  *(ulonglong *)(lVar3 + -0x3d8) = (ulonglong)bVar26;
  *(ulonglong *)(lVar3 + -0xa50) = *(ulonglong *)(lVar3 + -0x760) | 0x6b5526cdbaa49e47;
  *(ulonglong *)(lVar3 + -0x408) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0xf8f9f2e0)) | *(ulonglong *)(lVar3 + -0x760);
  pbVar18 = (byte *)((CONCAT44(uVar5,uVar8) ^ 0xf8f9f9f8e9bbffe8) + *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x428) = pbVar18;
  bVar26 = *pbVar18;
  *(byte *)(lVar3 + -0x2e9) = bVar26;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xdf6efd20)) = (ulonglong)bVar26;
  *(longlong *)(lVar3 - ((ulonglong)uVar21 ^ 0xe9bbfa06)) =
       *(longlong *)(lVar3 + -0xa60) << (((byte)uVar31 ^ 0x22) & 0x3f);
  *(longlong *)(lVar3 - ((ulonglong)uVar15 ^ 0x3df9e354)) =
       *(longlong *)(lVar3 - (uVar22 ^ 0xb0ca931a)) + *(longlong *)(lVar3 + -0x5e8);
  *plVar33 = (uVar14 ^ 0x3df9eedcdceef93a) + *(longlong *)(lVar3 + 0x30);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar12 * 4) = uVar1 ^ uVar31;
  return;
}



############ FUN_ 181030870 size=5414 ############

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

void FUN_181030870(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  uint uVar22;
  ulonglong *puVar23;
  uint *puVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte bVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong *puVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte local_f0;
  
  uVar13 = DAT_182671e98;
  uVar12 = DAT_182671c8c;
  uVar11 = DAT_182671c74;
  uVar10 = DAT_182671c6c;
  uVar8 = DAT_182671c54;
  uVar7 = DAT_182671c50;
  lVar5 = DAT_182671c40;
  uVar53 = (ulonglong)DAT_182671c50;
  uVar47 = (ulonglong)DAT_182671c8c;
  uVar41 = (ulonglong)DAT_182671c6c;
  uVar42 = (ulonglong)DAT_182671c74;
  uVar26 = DAT_182671c6c + DAT_182671c74;
  uVar32 = (DAT_182671c50 << 0x10 | DAT_182671c50 & 0xff00) << 8 | DAT_182671c50 >> 8 & 0xff00 |
           DAT_182671c50 >> 0x18;
  uVar17 = DAT_182671c8c + DAT_182671c54;
  uVar35 = (ulonglong)uVar17;
  uVar18 = *(uint *)(&DAT_182613210 + (uVar35 ^ 0xaeabfe56) + (longlong)DAT_182672140) ^
           DAT_182671c8c;
  uVar19 = *(uint *)(&DAT_182613220 + DAT_182672140) ^ DAT_182671c54;
  uVar30 = (ulonglong)DAT_182671eb8;
  uVar49 = (ulonglong)uVar26;
  uVar29 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar33 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  DAT_182671c4c = uVar17;
  DAT_182671c80 = uVar32;
  DAT_182671c90 = uVar26;
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (*(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar29) + 0x16da179ba0000896;
  puVar36 = (ulonglong *)(lVar5 - (uVar49 ^ 0x9562ef50));
  uVar27 = CONCAT44(uVar13,uVar13) ^ *puVar36 ^ *(ulonglong *)(lVar5 + -0x7e8) ^ uVar33 ^ uVar29;
  uVar37 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar5 + -0xa78) = uVar27;
  bVar31 = (byte)(uVar7 >> 0x18);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0x52c2e9ce)) = (uVar27 >> 0x20 ^ uVar30) >> 8 ^ uVar37;
  uVar34 = (ulonglong)uVar32;
  puVar28 = (ulonglong *)(lVar5 - (uVar42 ^ 0x42a0086a));
  uVar43 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar40 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar27 = (*puVar28 ^ uVar33) << ((bVar31 ^ 0xe7) & 0x3f);
  *(ulonglong *)(lVar5 + -0x5e8) = uVar27 ^ uVar43;
  lVar6 = DAT_182671c40;
  puVar2 = (ulonglong *)(lVar5 + -0xc90);
  uVar27 = *(ulonglong *)(lVar5 - ((ulonglong)uVar32 ^ 0xf8fff2df)) ^ uVar37 | uVar27;
  uVar37 = uVar27 ^ uVar40;
  *puVar2 = uVar37;
  uVar30 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar6 + -0x380) = (*(ulonglong *)(lVar6 + -0xa50) ^ uVar29) - uVar27 ^ uVar30;
  uVar13 = DAT_182671e44;
  *(ulonglong *)(lVar6 + -0x828) =
       CONCAT44(uVar26,uVar8) ^ 0xa8a08fb7c523b550 | *(ulonglong *)(lVar6 + -0xa78) ^ uVar33;
  lVar5 = DAT_182671c40;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar27 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0xceb209ce)) ^ uVar37 ^ uVar27 ^ uVar29 ^ uVar40;
  uVar13 = DAT_182671ea4;
  puVar51 = (ulonglong *)(lVar5 - (uVar42 ^ 0x42a0090a));
  bVar4 = (byte)uVar12;
  *puVar51 = (CONCAT44(uVar8,uVar8) ^ 0x10fceea2fcdb76ce) +
             (CONCAT44(uVar11,uVar17) ^ 0xbd72fbba07720e22);
  uVar33 = (uVar29 ^ *(ulonglong *)(lVar5 + -0x408)) >> ((bVar4 ^ 0x52) & 0x3f);
  *(ulonglong *)(lVar5 + -0xa60) = uVar33 ^ CONCAT44(uVar13,uVar13);
  lVar6 = DAT_182671c40;
  puVar23 = (ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xfff9fbf0));
  bVar46 = (byte)uVar10;
  uVar29 = (*puVar23 ^ uVar29) << ((bVar46 ^ 0xe2) & 0x3f);
  uVar44 = CONCAT44(DAT_182671de4,DAT_182671de4);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x30);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar29 ^ CONCAT44(DAT_182671d04,DAT_182671d04);
  puVar3 = (ulonglong *)(lVar6 + -0xf0);
  uVar29 = uVar29 | uVar33;
  *puVar1 = uVar29 ^ uVar44;
  uVar13 = DAT_182671dfc;
  uVar33 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *puVar3 = (*(ulonglong *)(lVar6 - (uVar42 ^ 0x42a00fba)) ^ uVar27) - uVar29 ^ uVar33;
  uVar40 = CONCAT44(uVar13,uVar13);
  uVar27 = *(ulonglong *)(lVar6 - (uVar34 ^ 0xf8fffa7f)) ^ CONCAT44(DAT_182671f30,DAT_182671f30) ^
           uVar40 ^ uVar30 ^ *(ulonglong *)(lVar6 + -0x228);
  *(ulonglong *)(lVar6 + -0x510) = uVar27;
  uVar38 = CONCAT44(DAT_182671d88,DAT_182671d88);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (uVar27 ^ uVar40) >> (((byte)uVar11 ^ 0x2b) & 0x3f) ^ uVar38;
  lVar5 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (CONCAT44(uVar8,uVar10) ^ 0x3b876c7f0661dce7) << ((bVar4 ^ 0x7f) & 0x3f);
  puVar50 = (ulonglong *)(lVar5 - (uVar53 ^ 0xfff9f810));
  puVar24 = (uint *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0xfff9f6b4));
  *puVar50 = (*(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x9562e010)) ^ uVar40) <<
             (((byte)uVar17 ^ 0x59) & 0x3f) ^ uVar27;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xdff9f9ac)) = *puVar24 & (uVar7 ^ 0xf7e14570);
  uVar13 = DAT_182671e40;
  lVar5 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar27 = (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8) |
           *(ulonglong *)(DAT_182671c40 + -0x7e8) ^ uVar27) ^ uVar29;
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar27;
  uVar14 = DAT_182671fb4;
  uVar54 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x42a00192)) ^ uVar30) -
       (*(ulonglong *)(lVar5 - (uVar47 ^ 0xceb20f46)) ^ uVar29) ^ uVar54;
  lVar5 = DAT_182671c40;
  uVar27 = CONCAT44(uVar14,uVar14) ^ uVar27 ^ uVar29 ^ *puVar3 ^ uVar33;
  pbVar21 = (byte *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0xfff9f5a8));
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar27;
  uVar27 = CONCAT44(uVar14,uVar14) ^ uVar27;
  *(ulonglong *)(lVar5 + -0xa78) =
       (CONCAT44(uVar26,uVar10) ^ 0x3f7e472d3571b818) << ((*pbVar21 ^ (byte)uVar14) & 0x3f);
  uVar29 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *(ulonglong *)(lVar5 + -0x828) = uVar27 >> ((bVar31 ^ 0xf1) & 0x3f) ^ uVar29;
  uVar27 = uVar27 << ((bVar46 ^ 0xdc) & 0x3f);
  *puVar2 = uVar27 ^ CONCAT44(DAT_182671e90,DAT_182671e90);
  puVar25 = (ulonglong *)(lVar5 - (uVar35 ^ 0xaeabf676));
  uVar45 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *puVar51 = (uVar29 ^ *puVar25 | uVar27) ^ uVar45;
  *(undefined8 *)(lVar5 + -0x408) = 0xfe836c8285278000;
  uVar20 = DAT_182671c5c;
  uVar29 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar30 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar27 = (*puVar3 ^ uVar33) -
           (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c5c ^ 0xfdfafc27)) ^ uVar29);
  *(uint *)(lVar5 + -0x94) = (DAT_182671c8c ^ 0x3e36df2f) >> (bVar31 & 0x1f);
  uVar13 = DAT_182671f48;
  *(ulonglong *)(lVar5 + -0xa60) = uVar27 ^ uVar30;
  uVar48 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar42 ^ 0x42a00572)) =
       uVar27 - (uVar45 ^ *(ulonglong *)(lVar5 + -0xb18)) ^ uVar48;
  *(uint *)(lVar5 + -0x644) = (DAT_182671c54 ^ 0xd0b4ee79) + *(int *)(lVar5 - (uVar34 ^ 0xf8fffc73))
  ;
  uVar22 = DAT_182671c60;
  lVar5 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar27 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c60 ^ 0xae62c4c0)) ^ uVar37) +
           (CONCAT44(uVar12,uVar7) ^ 0x2e6470a46299da2d);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar27 ^ CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar13 = DAT_182671f04;
  uVar15 = DAT_182671e04;
  uVar9 = DAT_182671c58;
  uVar30 = (ulonglong)DAT_182671e04;
  uVar39 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar5 + -0x228) = ((ulonglong)(uVar10 >> 0x18) | uVar41 << 8) ^ 0x46a9cf6a44;
  uVar33 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x4b8) = (uVar45 ^ *(ulonglong *)(lVar5 + -0xb18)) - uVar27 ^ uVar33;
  uVar27 = *(ulonglong *)(lVar5 - (uVar34 ^ 0xf8fff9cf)) ^ uVar39 ^ uVar54 ^ uVar44 ^
           *(ulonglong *)(lVar5 + -0x5e8);
  puVar51 = (ulonglong *)(lVar5 - (uVar49 ^ 0x9562eed8));
  *(ulonglong *)(lVar5 + -0x510) = uVar27;
  *puVar51 = CONCAT44(uVar9,uVar8) ^ uVar27 ^ uVar39 ^ 0xb194039bebf09cad;
  uVar13 = DAT_182671d60;
  uVar27 = CONCAT44(DAT_182671f60,DAT_182671f60);
  puVar52 = (ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0xfdfaf817));
  *puVar52 = ((ulonglong)(uVar15 >> 0x10) | uVar30 << 0x10) ^ *(ulonglong *)(lVar5 + -0x510) >> 0x10
             ^ uVar27;
  uVar16 = DAT_182671fa0;
  uVar30 = (uVar39 ^ *(ulonglong *)(lVar5 + -0x510)) << (((byte)uVar22 ^ 0x70) & 0x3f);
  *(ulonglong *)(lVar5 + -0x380) = uVar30 ^ CONCAT44(uVar13,uVar13);
  uVar14 = DAT_182671d8c;
  uVar13 = DAT_182671cc8;
  uVar39 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0xb20) = (uVar27 ^ *puVar50 | uVar30) ^ uVar39;
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xf8fff387)) =
       (uVar54 ^ *(ulonglong *)(lVar5 + -0x5e8)) -
       (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar5 + -0x920)) ^ uVar27;
  uVar13 = DAT_182671db0;
  uVar45 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(lVar5 + -0xa50) =
       (*(ulonglong *)(lVar5 + -0xa78) ^ uVar27) - (uVar39 ^ *(ulonglong *)(lVar5 + -0xb20)) ^
       uVar45;
  uVar14 = DAT_182671f68;
  uVar27 = CONCAT44(uVar13,uVar13);
  puVar50 = (ulonglong *)(lVar5 - (uVar42 ^ 0x42a00a3a));
  *puVar50 = (CONCAT44(uVar26,uVar10) ^ 0x6a9d1affad3d1d1a) -
             (CONCAT44(DAT_182671fac,DAT_182671fac) ^ *(ulonglong *)(lVar5 + -0xd88)) ^ uVar27;
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar39 = (uVar27 ^ *puVar25) + (uVar39 ^ *(ulonglong *)(lVar5 + -0xb20)) ^ uVar30;
  *puVar2 = uVar39;
  uVar20 = DAT_182671f80;
  uVar27 = (ulonglong)DAT_182671f80;
  *(ulonglong *)(lVar5 + -0x408) =
       (CONCAT44(uVar17,uVar12) ^ 0x5d6202e922fd7082) -
       (CONCAT44(uVar26,uVar17) ^ 0x5cfcc962f3aacf29);
  uVar44 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 - (uVar53 ^ 0xfff9ff08)) =
       uVar39 ^ uVar44 ^ uVar30 ^ uVar48 ^ *(ulonglong *)(lVar5 + -0x760);
  uVar13 = DAT_182671f0c;
  uVar30 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar39 = (uVar44 ^ *puVar3) << 0x20;
  uVar22 = DAT_182671c90 ^ 0x28c195ca;
  uVar27 = *puVar3 >> 0x20 ^ uVar30 ^ uVar27;
  *(ulonglong *)(lVar5 + -0xa60) = uVar27;
  uVar20 = DAT_182671c8c ^ 0xf1c57c80;
  *(ulonglong *)(lVar5 + -0x228) = uVar39 ^ CONCAT44(uVar13,uVar13);
  uVar14 = DAT_182671d44;
  *(uint *)(lVar5 + -0x76c) = uVar22 + uVar20;
  uVar13 = DAT_182671ce8;
  lVar6 = DAT_182671c40;
  uVar39 = uVar39 | uVar27 ^ uVar30;
  uVar54 = CONCAT44(uVar14,uVar14);
  uVar27 = *(ulonglong *)(DAT_182671c40 + -0x760);
  *(ulonglong *)(lVar5 + -0xb18) = uVar39 ^ uVar54;
  uVar30 = CONCAT44(uVar13,uVar13);
  *puVar1 = (uVar48 ^ uVar27) - uVar39 ^ uVar30;
  uVar20 = DAT_182671c58;
  uVar27 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *puVar51 = uVar27 ^ *puVar36 ^ *(ulonglong *)(lVar6 + -0x4b8) ^ uVar45 ^ uVar33;
  lVar5 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671e30,DAT_182671e30);
  puVar36 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0xac62c750));
  *puVar36 = (uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) >> (((byte)uVar20 ^ 0x60) & 0x3f) ^
             uVar33;
  uVar39 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *puVar52 = (uVar27 ^ *(ulonglong *)(lVar5 + -0xbd8)) << ((bVar31 ^ 0xdf) & 0x3f) ^ uVar43;
  uVar43 = *(ulonglong *)(lVar5 + -0x7e8) ^ uVar43;
  *(ulonglong *)(lVar5 + -0x380) = (uVar33 ^ *(ulonglong *)(lVar5 + -0x510) | uVar43) ^ uVar39;
  *(ulonglong *)(lVar5 - (uVar53 ^ 0xfff9f6d8)) =
       uVar43 - (CONCAT44(uVar32,uVar10) ^ 0x5c883ca9b095a1fb);
  uVar48 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar5 - (uVar47 ^ 0xceb2018e)) =
       (uVar45 ^ *(ulonglong *)(lVar5 + -0xa50)) -
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0xaeabfdde)) ^ uVar39) ^ uVar48;
  uVar22 = DAT_182671c60;
  uVar44 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  puVar51 = (ulonglong *)(lVar5 - ((ulonglong)DAT_182671c5c ^ 0xfdfaffcf));
  *puVar28 = uVar44 ^ uVar39 ^ uVar30 ^ *puVar51 ^ *(ulonglong *)(lVar5 + -0x380);
  *puVar50 = (uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0xa78)) >> (((byte)uVar7 ^ 0xc2) & 0x3f) ^
             uVar37;
  lVar5 = DAT_182671c40;
  *(int *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0xae62c474)) =
       *(int *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0xac62cb9c)) <<
       (((byte)DAT_182671c60 ^ 0x49) & 0x1f);
  uVar13 = DAT_182671ee4;
  uVar27 = (uVar44 ^ *(ulonglong *)(lVar5 + -0xa78)) << 6;
  *(ulonglong *)(lVar5 + -0xb20) = uVar27 ^ CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar43 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar47 ^ 0xceb2006e)) = (uVar37 ^ *puVar25 | uVar27) ^ uVar43;
  uVar33 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *puVar2 = (uVar30 ^ *puVar51) - (uVar43 ^ *(ulonglong *)(lVar5 + -0x408)) ^ uVar33;
  uVar30 = (ulonglong)DAT_182671c60;
  uVar37 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar27 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *puVar3 = *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xdff9fc10)) ^ uVar37 ^ uVar48 ^ uVar54 ^
            *(ulonglong *)(lVar5 + -0xb18);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0x52c2e88e)) =
       (*(ulonglong *)(lVar5 - (uVar30 ^ 0xae62c2b0)) ^ uVar37) >> ((bVar31 ^ 0xe9) & 0x3f) ^ uVar27
  ;
  uVar41 = (uVar37 ^ *puVar3) << 0x2a;
  *(ulonglong *)(lVar5 + -0x228) = uVar41 ^ CONCAT44(DAT_182671d94,DAT_182671d94);
  uVar13 = DAT_182671c9c;
  lVar6 = DAT_182671c40;
  uVar41 = uVar41 | uVar27 ^ *(ulonglong *)(lVar5 + -0xa60);
  *(ulonglong *)(lVar5 + -0x760) =
       *(ulonglong *)(lVar5 - (uVar35 ^ 0xaeabf426)) ^ uVar44 | 0xc02af2e81916c148;
  uVar22 = DAT_182671f6c;
  uVar27 = (ulonglong)DAT_182671f6c;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar37 = uVar41 ^ uVar35;
  *(ulonglong *)(lVar5 + -0x4b8) = uVar37;
  uVar41 = (uVar48 ^ *(ulonglong *)(lVar5 + -0x5e8)) - uVar41;
  *(ulonglong *)(lVar5 + -0xbd8) = uVar41 ^ uVar40;
  uVar13 = DAT_182671d2c;
  uVar37 = CONCAT44(uVar22,uVar22) ^ uVar35 ^ uVar33 ^ *puVar2 ^ uVar37;
  *(ulonglong *)(lVar6 + -0x510) = uVar37;
  uVar39 = (*puVar36 >> 0x20 ^ uVar27) >> 0xe;
  *(ulonglong *)(lVar6 + -0x7e8) = uVar39 ^ CONCAT44(uVar13,uVar13);
  local_f0 = (byte)uVar26;
  *(ulonglong *)(lVar6 + -0x920) =
       (CONCAT44(uVar10,uVar12) ^ 0x59f914ae5bad9d88) + 0xc60921bb2fe091d6;
  uVar35 = (CONCAT44(uVar22,uVar22) ^ uVar37) << ((local_f0 ^ 0x12) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar35 ^ CONCAT44(DAT_182671dac,DAT_182671dac);
  lVar5 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(DAT_182671c40 + -0x380) = (uVar35 | uVar39) ^ uVar27;
  uVar13 = _DAT_182671cf0;
  *(ulonglong *)(lVar5 + -0x828) = uVar35 + 0x76ca19357cd34fc3;
  uVar8 = DAT_182671c58;
  uVar44 = CONCAT44(uVar13,uVar13);
  uVar37 = (ulonglong)DAT_182671c58;
  uVar39 = CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar35 = (*(ulonglong *)(lVar5 - (uVar42 ^ 0x42a00e82)) ^ uVar33) -
           (*(ulonglong *)(lVar5 - (uVar30 ^ 0xae62c1c0)) ^ uVar27) ^ uVar44;
  *(ulonglong *)(lVar5 + -0xb20) = uVar35;
  uVar20 = DAT_182671c5c;
  *puVar1 = uVar39 ^ uVar43 ^ uVar41 ^ uVar40 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0x408);
  uVar27 = *puVar1;
  *(ulonglong *)(lVar5 + -0xb18) = uVar41 | 0x2a2363d5462869d2;
  uVar43 = (uVar39 ^ uVar27) >> ((bVar46 ^ 0xe2) & 0x3f);
  *puVar3 = uVar43 ^ uVar54;
  uVar13 = DAT_182671cb4;
  *(ulonglong *)(lVar5 + -0xa78) =
       (CONCAT44(uVar20,uVar20) ^ 0xb6ab1e114183c17a) +
       (CONCAT44(uVar32,uVar8) ^ 0xd30807e2b29d4389);
  uVar14 = DAT_182671dd4;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x760) =
       (*(ulonglong *)(lVar5 - (uVar53 ^ 0xfff9ffc8)) ^ uVar39) << ((bVar4 ^ 0x52) & 0x3f) ^ uVar30;
  lVar5 = DAT_182671c40;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar27 = CONCAT44(uVar9,DAT_182671c48);
  uVar43 = *(ulonglong *)(DAT_182671c40 - (uVar53 ^ 0xfff9f898)) ^ uVar30 | uVar43;
  uVar30 = uVar43 ^ uVar33;
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar30;
  *(ulonglong *)(lVar5 + -0x228) =
       uVar27 ^ 0x700e509f6e5802cd | CONCAT44(uVar11,uVar7) ^ 0x4a41e9f79367d5f6;
  uVar13 = DAT_182671f84;
  uVar8 = DAT_182671f14;
  uVar27 = (ulonglong)DAT_182671f14;
  *(ulonglong *)(lVar5 + -0x4b8) =
       0x635420a52d35c457 >> (((byte)uVar22 ^ *(byte *)(lVar5 + -0x510)) & 0x3f);
  *(ulonglong *)(lVar5 + -0x5e8) = uVar41 - uVar43 ^ uVar38;
  uVar35 = uVar33 ^ uVar44 ^ uVar30 ^ CONCAT44(uVar8,uVar8) ^ uVar35;
  uVar30 = ((ulonglong)(uVar8 >> 0x19) | uVar27 << 7) ^ uVar35 >> 0x19;
  *(ulonglong *)(lVar5 + -0x920) = uVar35;
  uVar33 = (uVar35 ^ CONCAT44(uVar8,uVar8)) << 0x27;
  uVar35 = CONCAT44(DAT_182671d98,DAT_182671d98);
  uVar27 = CONCAT44(uVar10,DAT_182671c78);
  *(ulonglong *)(lVar5 + -0x7e8) = uVar30 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x828) = uVar33 ^ uVar35;
  uVar13 = DAT_182671dd0;
  *(ulonglong *)(lVar5 + -0xa50) =
       (CONCAT44(uVar26,uVar11) ^ 0xd432f028e5ab4505) - (uVar27 ^ 0xe6f2204399d9fbb9);
  uVar27 = CONCAT44(DAT_182671c84,uVar7);
  uVar43 = CONCAT44(uVar13,uVar13);
  *puVar2 = (uVar30 | uVar33) ^ uVar43;
  uVar13 = DAT_182671ddc;
  *puVar23 = (uVar27 ^ 0x67898cbbf859152d) << ((bVar31 ^ 0xf7) & 0x3f);
  uVar14 = DAT_182671f88;
  uVar27 = (ulonglong)DAT_182671c68;
  uVar35 = (*(ulonglong *)(lVar5 - (uVar37 ^ 0xac62c960)) ^ uVar44) -
           (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar5 + -0x888));
  *(ulonglong *)(lVar5 + -0xb18) = uVar35 ^ CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar13 = DAT_182671e24;
  *(ulonglong *)(lVar5 + -0xa78) =
       uVar35 - (*(ulonglong *)(lVar5 - (uVar27 ^ 0x2850c90)) ^ uVar43) ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671edc;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar49 ^ 0x9562e530)) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0xf8fffa27)) ^ uVar29) +
       (CONCAT44(uVar10,uVar20) ^ 0x8c14f05d4a6292e3) ^ uVar27;
  *puVar3 = (*puVar2 ^ uVar43) - (uVar27 ^ *puVar1) ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar18;
  return;
}



############ FUN_ 180fe1590 size=5590 ############

void FUN_180fe1590(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  undefined4 uVar19;
  uint uVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  byte bVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte bVar53;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  byte local_120;
  byte local_110;
  byte local_f8;
  byte local_f0;
  
  uVar6 = DAT_182671d14;
  uVar13 = DAT_182671c88;
  uVar12 = DAT_182671c84;
  uVar10 = DAT_182671c74;
  uVar9 = DAT_182671c6c;
  uVar8 = DAT_182671c64;
  uVar5 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar24 = (ulonglong)DAT_182671c84;
  uVar37 = (ulonglong)DAT_182671c88;
  DAT_182671c7c = DAT_182671c90 & DAT_182671c88 ^ 0x65e32cfa;
  uVar55 = *(uint *)(&DAT_182613218 + DAT_182672044) ^ DAT_182671c7c;
  uVar54 = (ulonglong)DAT_182671c54;
  uVar28 = DAT_182671c74 - DAT_182671c4c;
  uVar42 = (ulonglong)DAT_182671c64;
  uVar43 = DAT_182671c84 * DAT_182671c6c;
  uVar20 = *(uint *)(&DAT_182613220 + DAT_182672044) ^ DAT_182671c90;
  uVar30 = DAT_182671c54 + DAT_182671c64;
  uVar39 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  uVar29 = (ulonglong)DAT_182671c74;
  DAT_182671c50 = uVar43;
  DAT_182671c5c = uVar30;
  DAT_182671c78 = uVar28;
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xf69ddd04)) =
       (uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0xa60)) -
       (CONCAT44(DAT_182671c88,DAT_182671c84) ^ 0x7601d4f6c017b421);
  uVar14 = DAT_182671f2c;
  uVar51 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar45 = (ulonglong)uVar9;
  puVar49 = (ulonglong *)(lVar3 - (uVar45 ^ 0xb6f651e3));
  puVar1 = (ulonglong *)(lVar3 + -0x760);
  *puVar49 = (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0x380) |
             uVar39 ^ *(ulonglong *)(lVar3 + -0xa60)) ^ uVar51;
  uVar6 = DAT_182671fa4;
  uVar56 = CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar33 = (ulonglong)uVar43;
  puVar34 = (ulonglong *)(lVar3 - (uVar33 ^ 0xa5b172c8));
  *puVar34 = (CONCAT44(uVar14,uVar14) ^ *puVar1) - (uVar51 ^ *(ulonglong *)(lVar3 + -0xd88)) ^
             uVar56;
  uVar23 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(uVar6,uVar6);
  uVar46 = CONCAT44(DAT_182671e60,DAT_182671e60);
  uVar25 = CONCAT44(DAT_182671db8,DAT_182671db8) ^ *(ulonglong *)(DAT_182671c40 + -0xb20) ^
           *(ulonglong *)(DAT_182671c40 + -0x30) ^ uVar46;
  uVar39 = CONCAT44(DAT_182671c4c,uVar28);
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar25 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar25 - (uVar39 ^ 0xd5ee59d577e6186c);
  uVar15 = DAT_182671c90;
  lVar3 = DAT_182671c40;
  bVar53 = (byte)uVar5;
  uVar40 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0x8a201da5)) =
       uVar25 >> ((bVar53 ^ 0x24) & 0x3f) ^ uVar40;
  uVar6 = DAT_182671e1c;
  uVar39 = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar32) << 0x20;
  *(ulonglong *)(lVar3 + -0xb18) = uVar39 ^ CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar44 = CONCAT44(uVar6,uVar6);
  puVar2 = (ulonglong *)(lVar3 + -0x920);
  uVar39 = *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x72f80ac2)) ^ uVar40 | uVar39;
  uVar25 = uVar39 ^ uVar44;
  *puVar2 = uVar25;
  uVar6 = DAT_182671e44;
  puVar26 = (ulonglong *)(lVar3 - (uVar54 ^ 0x168c5b24));
  uVar40 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar3 + -0xa60) = (uVar46 ^ *puVar26) - uVar39 ^ uVar40;
  uVar46 = CONCAT44(uVar6,uVar6);
  puVar27 = (ulonglong *)(lVar3 - (uVar37 ^ 0x31160d87));
  *puVar27 = uVar46 ^ uVar44 ^ uVar56 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x680);
  uVar39 = *(ulonglong *)(lVar3 + -0x680);
  uVar47 = (uVar46 ^ *(ulonglong *)(lVar3 + -0x380)) << 6;
  *puVar1 = uVar46 ^ *(ulonglong *)(lVar3 + -0x380) | *(ulonglong *)(lVar3 + -0xc18) ^ uVar32;
  uVar44 = (uVar46 ^ *puVar27) >> (((byte)DAT_182671c4c ^ 0xac) & 0x3f);
  *(ulonglong *)(lVar3 + -0x30) = uVar44 ^ CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar3 + -0x4b8) =
       (CONCAT44(uVar23,uVar30) ^ 0x1bd78f4325144298) + 0x61e1d092a4288513;
  uVar6 = DAT_182671ed4;
  *(ulonglong *)(lVar3 + -0xc38) = uVar47 ^ CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar32 = CONCAT44(uVar6,uVar6);
  uVar25 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar3 + -0xb18) = (uVar47 | uVar44) ^ uVar32;
  uVar6 = DAT_182671d08;
  uVar46 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar3 + -0xb20) =
       (uVar56 ^ uVar39) - (*(ulonglong *)(lVar3 - (uVar33 ^ 0xa5b17f50)) ^ uVar32) ^ uVar25;
  uVar39 = uVar46 ^ uVar40 ^ uVar51 ^ *puVar49 ^ *(ulonglong *)(lVar3 + -0xa60);
  bVar38 = (byte)uVar12;
  *puVar2 = uVar39;
  uVar14 = DAT_182671dc8;
  uVar56 = (uVar39 ^ uVar46) >> ((bVar38 ^ 0xce) & 0x3f);
  uVar44 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar3 + -0xc18) = uVar56 ^ uVar44;
  uVar47 = CONCAT44(uVar14,uVar14);
  *puVar1 = (uVar46 ^ uVar39) << 0x2a ^ uVar47;
  uVar7 = DAT_182671c60;
  uVar51 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0x4b8) =
       0xf21bc8f04153329a >> ((*(byte *)(lVar3 - (uVar24 ^ 0x2db8e7f8)) ^ (byte)uVar6) & 0x3f);
  uVar16 = DAT_182671c94;
  uVar35 = (ulonglong)DAT_182671c94;
  uVar22 = DAT_182671c94 & uVar7;
  uVar39 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar56 = *(ulonglong *)(lVar3 - (uVar35 ^ 0x23af140a)) ^ uVar47 | uVar56;
  DAT_182671c48 = uVar22;
  *(ulonglong *)(lVar3 + -0x380) = uVar56 ^ uVar39;
  uVar6 = DAT_182671ea0;
  *(ulonglong *)(lVar3 + -0x30) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x17ae7d9e)) ^ CONCAT44(uVar22,uVar16) ^ uVar44 ^
       0x85b39a9863598805;
  uVar47 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xf69dd81c)) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0xa60)) - uVar56 ^ uVar47;
  uVar14 = DAT_182671f38;
  uVar46 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  local_f8 = (byte)uVar8;
  uVar39 = *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x17ae7aa6)) ^ uVar46 ^ uVar39 ^ uVar25 ^
           *(ulonglong *)(lVar3 + -0x380);
  *(ulonglong *)(lVar3 + -0x680) = uVar39;
  uVar6 = DAT_182671de8;
  uVar44 = CONCAT44(uVar14,uVar14);
  puVar27 = (ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x17ae7c0e));
  *puVar27 = (uVar39 ^ uVar46) >> ((local_f8 ^ 0xd8) & 0x3f) ^ uVar44;
  uVar40 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x23af17d2)) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0x680)) << 0x12 ^ uVar40;
  lVar3 = DAT_182671c40;
  uVar57 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar39 = *(ulonglong *)(DAT_182671c40 + -0xb20);
  *puVar2 = (uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0xd88) |
            uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0x4b8)) ^ uVar57;
  uVar44 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  local_f0 = (byte)uVar15;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0x31160967)) =
       (uVar25 ^ uVar39) - (*(ulonglong *)(lVar3 - (uVar54 ^ 0x168c5924)) ^ uVar57) ^ uVar44;
  uVar56 = CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar39 = *(ulonglong *)(lVar3 - (uVar35 ^ 0x23af1872)) ^ uVar56 ^ uVar47 ^ uVar32 ^
           *(ulonglong *)(lVar3 + -0xc38);
  uVar32 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar3 + -0x30) = uVar39;
  bVar21 = (byte)uVar28;
  *(ulonglong *)(lVar3 - (uVar45 ^ 0xb6f65073)) =
       (uVar39 ^ uVar56) >> ((local_f0 ^ 0x91) & 0x3f) ^ uVar32;
  uVar6 = DAT_182671dac;
  uVar35 = (uVar56 ^ *(ulonglong *)(lVar3 + -0x30)) << ((bVar21 ^ 0xba) & 0x3f);
  uVar39 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0xa60) = uVar35 ^ CONCAT44(DAT_182671e68,DAT_182671e68);
  uVar14 = DAT_182671e2c;
  uVar41 = CONCAT44(uVar6,uVar6);
  uVar35 = uVar35 | uVar32 ^ *(ulonglong *)(lVar3 + -0xc18);
  *(ulonglong *)(lVar3 + -0x380) = uVar35 ^ uVar41;
  uVar46 = CONCAT44(uVar14,uVar14);
  uVar32 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar3 + -0x680) = (uVar47 ^ *(ulonglong *)(lVar3 + -0xc38)) - uVar35 ^ uVar46;
  uVar6 = DAT_182671e0c;
  lVar4 = DAT_182671c40;
  puVar49 = (ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x3ae1282));
  uVar47 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x65e32b9f)) ^ uVar32 ^ uVar41 ^ uVar44 ^ *puVar49;
  uVar35 = (uVar32 ^ *puVar27) >> ((bVar53 ^ 0x1d) & 0x3f);
  *(ulonglong *)(lVar4 + -0x4b8) = uVar35 ^ uVar47;
  uVar17 = DAT_182671fb0;
  uVar39 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0x3116038f)) ^ uVar32) << ((local_f8 ^ 0xd1) & 0x3f);
  *(ulonglong *)(lVar4 + -0xb20) = uVar39 ^ CONCAT44(uVar6,uVar6);
  uVar14 = DAT_182671f18;
  uVar48 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x9d93db96)) = (uVar35 | uVar39) ^ uVar48;
  uVar6 = DAT_182671e5c;
  uVar39 = CONCAT44(DAT_182671cac,DAT_182671cac);
  puVar36 = (ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x23af135a));
  *puVar36 = (uVar44 ^ *puVar1) - (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar4 + -0xf0)) ^ uVar39
  ;
  uVar14 = DAT_182671e14;
  uVar52 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x2db8eee8)) ^ uVar39) -
       (*(ulonglong *)(lVar4 + -0xb18) ^ uVar48) ^ uVar52;
  uVar18 = DAT_182671e4c;
  uVar6 = DAT_182671d0c;
  uVar11 = DAT_182671c90;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar32 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar41 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar44 = (ulonglong)DAT_182671e4c;
  *(ulonglong *)(lVar4 + -0xa60) =
       (*(ulonglong *)(lVar4 - (uVar42 ^ 0x5c6bbd2e)) ^ uVar35) +
       (*(ulonglong *)(lVar4 + -0x408) ^ uVar32) ^ uVar41;
  uVar39 = CONCAT44(uVar18,uVar18);
  *(uint *)(lVar4 + -0x9dc) = (uVar11 ^ 0xc8dfb89a) - (DAT_182671c4c ^ 0x98c8a15e);
  uVar50 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *(ulonglong *)(lVar4 + -0xc38) =
       (*(ulonglong *)(lVar4 - (uVar45 ^ 0xb6f65773)) ^ uVar48) -
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xf69dde44)) ^ uVar41) ^ uVar50;
  puVar27 = (ulonglong *)(lVar4 - (uVar54 ^ 0x168c5384));
  *puVar27 = *(ulonglong *)(lVar4 - (uVar29 ^ 0xf69dd2a4)) ^ uVar46 ^ uVar57 ^ *puVar2 ^ uVar39;
  uVar14 = DAT_182671d70;
  uVar11 = DAT_182671c7c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar30 ^ 0x72f80242)) ^ uVar47) >>
       ((*(byte *)(lVar4 + -0xa60) ^ (byte)uVar6) & 0x3f);
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar44 = (*puVar49 >> 0x20 ^ uVar44) >> 1;
  uVar47 = uVar44 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xb20) = uVar47;
  *puVar1 = (CONCAT44(uVar5,uVar13) ^ 0x1c1a065862320e20) >> ((bVar38 ^ 0xf9) & 0x3f);
  uVar6 = DAT_182671de4;
  uVar39 = (*(ulonglong *)(lVar3 + -0x380) ^ uVar39) << (((byte)uVar11 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar3 + -0x30) = uVar39 ^ CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar14 = DAT_182671e40;
  uVar48 = CONCAT44(uVar6,uVar6);
  uVar44 = uVar44 | uVar39;
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar44 ^ uVar48;
  lVar3 = DAT_182671c40;
  *puVar2 = CONCAT44(uVar16,uVar22) ^ uVar47 ^ uVar41 ^ 0xbcd59f6d978702f8;
  uVar19 = DAT_182671f7c;
  uVar17 = DAT_182671ec8;
  uVar39 = (*(ulonglong *)(lVar3 - (uVar51 ^ 0x17ae7706)) ^ uVar46) -
           (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar3 + -0x510));
  *(ulonglong *)(lVar3 + -0x4b8) = uVar39 ^ CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar6 = DAT_182671d7c;
  uVar46 = CONCAT44(uVar19,uVar19);
  uVar41 = uVar39 - uVar44 ^ uVar46;
  *(ulonglong *)(lVar3 + -0xd88) = uVar41;
  uVar39 = -(CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0x228)) - 0xd;
  *puVar1 = uVar39 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182671d98;
  *(ulonglong *)(lVar3 + -0x380) =
       (CONCAT44(uVar23,uVar43) ^ 0xb40a4097b7660aba) -
       (CONCAT44(uVar10,uVar11) ^ 0x2c4a6a5c520a51a0);
  uVar44 = CONCAT44(uVar6,uVar6);
  uVar39 = (*(ulonglong *)(lVar3 - (uVar42 ^ 0x5c6bbdee)) ^ uVar48) + uVar39 ^ uVar44;
  uVar42 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(lVar3 + -0x30) = uVar39;
  *(ulonglong *)(lVar3 + -0xb20) =
       *(ulonglong *)(lVar3 + -0xc18) ^ uVar39 ^ uVar42 ^ uVar44 ^ uVar52;
  lVar4 = DAT_182671c40;
  puVar49 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c4c ^ 0x590a08b6));
  uVar23 = DAT_182671c6c ^ 0x2117620b;
  uVar44 = (*puVar49 ^ uVar42) >> ((bVar21 ^ 0x8b) & 0x3f);
  bVar31 = (byte)DAT_182671c90;
  *puVar2 = uVar44 ^ CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(uint *)(lVar4 + -0x444) = uVar23 << ((bVar31 ^ 0x8d) & 0x1f);
  uVar6 = DAT_182671ce0;
  lVar3 = DAT_182671c40;
  local_120 = (byte)uVar43;
  uVar39 = (*(ulonglong *)(lVar4 - (uVar29 ^ 0xf69ddf04)) ^ uVar42) << ((local_120 ^ 0x73) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar39 ^ uVar40;
  uVar44 = uVar44 | uVar39;
  uVar40 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x680) = uVar44 ^ uVar40;
  uVar6 = DAT_182671c98;
  uVar44 = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar52) - uVar44;
  *(ulonglong *)(lVar3 + -0x4b8) =
       (CONCAT44(uVar30,uVar15) ^ 0xa39f8959cfa5eebc) +
       (CONCAT44(uVar7,uVar10) ^ 0x46501c1905aef23e);
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar47 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar3 + -0x380) = uVar44 ^ uVar29;
  *puVar1 = *(ulonglong *)(lVar3 - (uVar54 ^ 0x168c5c3c)) ^ uVar47 ^ uVar46 ^ uVar50 ^ uVar41;
  lVar4 = DAT_182671c40;
  bVar31 = (byte)uVar13;
  *(ulonglong *)(lVar3 + -0x30) = (CONCAT44(uVar8,uVar9) ^ 0x324ae63d8fcfde3c) + uVar44;
  uVar42 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *puVar49 = (*puVar1 ^ uVar47) >> ((bVar31 ^ 0x22) & 0x3f) ^ uVar42;
  lVar3 = DAT_182671c40;
  uVar39 = *puVar1;
  *puVar2 = (*(ulonglong *)(lVar4 + -0xb18) ^ uVar48) -
            (CONCAT44(uVar43,uVar10) ^ 0x8c8f8194ce5354f1);
  uVar44 = (uVar39 ^ uVar47) << ((bVar31 ^ 0x1c) & 0x3f);
  uVar39 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0x510) = uVar44 ^ CONCAT44(DAT_182671d3c,DAT_182671d3c);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x65e32847)) = (uVar44 | uVar42 ^ *puVar26) ^ uVar32;
  uVar41 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar44 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(lVar3 + -0xc18) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x3ae1c8a)) ^ uVar46) -
       (*(ulonglong *)(lVar3 + -0x4b8) ^ uVar32) ^ uVar41;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x9d93dcb6)) =
       *(ulonglong *)(lVar3 + -0x380) ^ uVar44 ^ *(ulonglong *)(lVar3 + -0x4b8) ^ uVar29 ^ uVar32;
  uVar32 = (uVar44 ^ *(ulonglong *)(lVar3 + -0xc38)) >> ((bVar53 ^ 0x13) & 0x3f);
  uVar39 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar3 + -0x30) = uVar32 ^ CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar6 = DAT_182671ec4;
  uVar47 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  uVar46 = (uVar44 ^ *(ulonglong *)(lVar3 + -0xc38)) << ((bVar21 ^ 0xa7) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb18) = uVar46 ^ uVar39;
  uVar23 = DAT_182671cfc;
  uVar39 = (ulonglong)DAT_182671c4c;
  uVar46 = uVar46 | uVar32;
  uVar32 = (ulonglong)DAT_182671cfc;
  *puVar2 = uVar46 ^ uVar47;
  uVar48 = CONCAT44(uVar6,uVar6);
  uVar42 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x590a04f6)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x72f8057a)) ^ uVar29) - uVar46 ^ uVar48;
  uVar14 = DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar45 ^ 0xb6f6574b)) =
       *(ulonglong *)(lVar3 + -0xc18) ^ uVar42 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x680) ^ uVar40;
  uVar29 = (*(ulonglong *)(lVar3 + -0xb20) >> 0x20 ^ uVar32) >> 8;
  *(ulonglong *)(lVar3 + -0x510) = uVar29 ^ CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar6 = DAT_182671c58;
  lVar4 = DAT_182671c40;
  uVar39 = *(ulonglong *)(DAT_182671c40 + -0xb20);
  *(ulonglong *)(lVar3 + -0xd88) =
       -0x4f9a0a16b301e0c2 - (CONCAT44(uVar5,uVar14) ^ 0xc3e66d9c20854f0d);
  uVar14 = DAT_182671f48;
  uVar45 = (ulonglong)DAT_182671c70;
  uVar40 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  local_110 = (byte)uVar9;
  *(ulonglong *)(lVar4 + -0x4b8) = (uVar39 ^ uVar42) << ((local_110 ^ 0x73) & 0x3f) ^ uVar40;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x30) =
       (uVar44 ^ *(ulonglong *)(lVar4 + -0xc38)) << ((bVar53 ^ 0x25) & 0x3f);
  uVar17 = DAT_182671eec;
  uVar29 = *(ulonglong *)(lVar4 - (uVar33 ^ 0xa5b170f0)) ^ uVar40 | uVar29;
  uVar39 = uVar29 ^ uVar32;
  *(ulonglong *)(lVar4 + -0xb18) = uVar39;
  uVar14 = DAT_182671ca8;
  uVar33 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x380) = (*(ulonglong *)(lVar4 + -0xc18) ^ uVar41) - uVar29 ^ uVar33;
  uVar17 = DAT_182671d54;
  lVar3 = DAT_182671c40;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar39 = *puVar1 ^ uVar39 ^ uVar44 ^ uVar32 ^ uVar48;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar39;
  uVar19 = DAT_182671ea4;
  uVar40 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0xd88) = (uVar39 ^ uVar44) >> (((byte)uVar6 ^ 0xd4) & 0x3f) ^ uVar40;
  uVar14 = DAT_182671e58;
  lVar4 = DAT_182671c40;
  uVar29 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar3 + -0xb20) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x2db8e858)) ^ uVar44) << 0xc ^ uVar29;
  *puVar36 = CONCAT44(uVar14,uVar14) ^ **(ulonglong **)(lVar3 + -0x138);
  uVar39 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x3116023f)) =
       (*puVar49 ^ uVar29 | uVar40 ^ *(ulonglong *)(lVar4 + -0xd88)) ^ uVar39;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x31160b17)) =
       (*puVar1 ^ uVar48) - (uVar39 ^ *(ulonglong *)(lVar4 + -0xc38)) ^ uVar56;
  uVar14 = DAT_182671fa8;
  uVar29 = CONCAT44(DAT_182671d68,DAT_182671d68);
  uVar37 = *puVar27 ^ uVar33 ^ uVar47 ^ *puVar2;
  *(ulonglong *)(lVar4 + -0x4b8) = uVar37 ^ uVar35;
  uVar39 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xc18) = uVar37 >> (((byte)uVar6 ^ 0xd9) & 0x3f) ^ uVar29;
  *(ulonglong *)(lVar4 - (uVar45 ^ 0xcee9fae0)) = uVar37 << 7 ^ uVar39;
  uVar45 = CONCAT44(DAT_182671e70,DAT_182671e70);
  uVar39 = *(ulonglong *)(lVar4 + -0xc18) ^ uVar29 | *(ulonglong *)(lVar4 + -0xb18) ^ uVar39;
  *(ulonglong *)(lVar4 + -0x680) = uVar39 ^ uVar45;
  uVar14 = DAT_182671d44;
  *(ulonglong *)(lVar4 + -0x30) =
       (CONCAT44(uVar12,uVar7) ^ 0xf4c671e3cf0f9714) >> ((bVar38 ^ 0xf1) & 0x3f);
  uVar6 = DAT_182671cdc;
  *(ulonglong *)(lVar4 + -0xb20) =
       (*(ulonglong *)(lVar4 + -0x380) ^ uVar33) - uVar39 ^ CONCAT44(uVar14,uVar14);
  uVar33 = CONCAT44(uVar6,uVar6);
  uVar39 = (ulonglong)DAT_182671c7c;
  uVar45 = *(ulonglong *)(lVar4 - (uVar51 ^ 0x17ae7496)) ^ uVar56 ^ *puVar34 ^ uVar33 ^ uVar45;
  *(ulonglong *)(lVar4 + -0xd88) = uVar45;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar39 ^ 0x65e32177)) ^ uVar33) >>
            (((byte)uVar30 ^ 0xf4) & 0x3f) ^ uVar25;
  *puVar2 = (uVar33 ^ uVar45) << 0x32 ^ CONCAT44(DAT_182671f80,DAT_182671f80);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar20 * 4) = uVar55;
  return;
}



############ FUN_ 181019a80 size=3763 ############

void FUN_181019a80(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint uVar4;
  longlong lVar5;
  byte bVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint *puVar25;
  uint *puVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  byte *pbVar36;
  byte local_78;
  
  uVar8 = DAT_182671c94;
  uVar9 = DAT_182671c84;
  lVar5 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671c94;
  uVar17 = (ulonglong)DAT_182671c84;
  uVar22 = DAT_182671c84 * DAT_182671c94;
  uVar4 = *(uint *)(&DAT_182613220 + DAT_1826720f8);
  uVar27 = *(uint *)(&DAT_182613218 + DAT_1826720f8) ^ DAT_182671c94;
  uVar24 = (ulonglong)DAT_182671c94;
  uVar16 = (ulonglong)DAT_182671c84;
  uVar35 = CONCAT44(DAT_182671c84,DAT_182671c94);
  uVar31 = CONCAT44(DAT_182671c94,DAT_182671c84);
  uVar29 = CONCAT44(DAT_182671c94,DAT_182671c94);
  DAT_182671c8c = uVar22;
  *(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0x87c7e488)) = uVar35 ^ 0x69dd7af7944dbbbd;
  *(ulonglong *)(lVar5 + -0x3a0) = CONCAT44(uVar22,uVar22) ^ 0xe6bec6587d31425e;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0x78381668)) = uVar31 ^ 0x93deee5e081f39a9;
  *(ulonglong *)(lVar5 + -0xd78) = CONCAT44(uVar22,uVar9) ^ 0xa316d7bf98d62acb;
  *(undefined8 *)(lVar5 - ((ulonglong)uVar8 ^ 0xfffffa97)) = 0x4926e5af0edee131;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x87c7ef98)) = uVar29 ^ 0x629a05d63c263dc;
  uVar15 = DAT_182671c48;
  *(ulonglong *)(lVar5 + -0x218) = CONCAT44(uVar22,uVar9) ^ 0xc92b5ee6a00b80b5;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0x783817b8)) =
       CONCAT44(uVar22,uVar8) ^ 0xc69d4c1cb9057985;
  uVar19 = DAT_182671df8;
  uVar23 = DAT_182671c4c;
  uVar29 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar5 - (uVar24 ^ 0xfffff847)) = CONCAT44(uVar15,uVar9) ^ 0x9f6ac08b2fec24f6;
  *(ulonglong *)(lVar5 + -0x4d0) = uVar31 ^ 0x9fe3029ce118f8df;
  *(ulonglong *)(lVar5 + -0x938) = uVar35 ^ 0x3508cc5d7e8b9253;
  uVar33 = DAT_182671f80;
  *(undefined8 *)(lVar5 + -0xad8) = 0x8eeae557265b9283;
  uVar32 = DAT_182671cc0;
  *(ulonglong *)(lVar5 + -0x9a0) = CONCAT44(uVar22,uVar15) ^ 0x73ac4c5948de65ed;
  *(undefined8 *)(lVar5 + -0x118) = 0x141d89f7fd12390;
  *(undefined8 *)(lVar5 - ((ulonglong)DAT_182671c60 ^ 0x87476170)) = 0x87bbf3bfbe9c4ae;
  *(uint *)(lVar5 - (uVar16 ^ 0x87c7eac4)) =
       (uint)*(byte *)(lVar5 - ((ulonglong)uVar22 ^ 0x783812d3)) ^ DAT_182671eec & 0xff ^ uVar32;
  uVar30 = DAT_182671cd0;
  puVar25 = (uint *)(lVar5 - (uVar29 ^ 0x1000634));
  uVar33 = (uVar33 ^ *(uint *)(lVar5 + -0x54)) + (uVar22 ^ 0xe47a010e) ^ DAT_182671e24;
  *(uint *)(lVar5 + -0xae4) = uVar33;
  uVar33 = uVar33 ^ DAT_182671e24;
  uVar15 = (*puVar25 ^ uVar32) << (((byte)DAT_182671c60 ^ 0xb1) & 0x1f);
  puVar1 = (uint *)(lVar5 + -0x76c);
  *(uint *)(lVar5 + -0x644) = uVar15 ^ uVar19;
  uVar15 = uVar33 - uVar15 ^ DAT_182671e20;
  *puVar1 = uVar15;
  uVar15 = uVar15 ^ DAT_182671e20;
  puVar2 = (uint *)(lVar5 + -0x94c);
  *(ulonglong *)(lVar5 + -0x960) = *(ulonglong *)(lVar5 + -0xc38) >> (((byte)uVar8 ^ 0xd2) & 0x3f);
  uVar33 = DAT_182671e3c;
  uVar8 = DAT_182671c6c;
  uVar34 = uVar15 * (uVar30 ^ *(uint *)(lVar5 + -0x4ac)) ^ DAT_182671d88;
  *puVar2 = uVar34;
  lVar7 = DAT_182671c40;
  *(uint *)(lVar5 + -0x6c0) = (uVar32 ^ *(uint *)(lVar5 + -0x634)) * 0x1b ^ DAT_182671f54;
  uVar15 = DAT_182671c50;
  uVar24 = (ulonglong)DAT_182671c50;
  uVar32 = uVar8;
  if ((DAT_182671c50 & 1) == 0) {
    uVar32 = DAT_182671c50;
  }
  uVar34 = (*(uint *)(lVar7 - ((ulonglong)DAT_182671c50 ^ 0x78b8919f)) ^ DAT_182671f54) +
           (uVar34 ^ DAT_182671d88);
  DAT_182671c60 = uVar32;
  *(uint *)(lVar7 + -0x670) = uVar34 ^ uVar33;
  *(uint *)(lVar7 - ((ulonglong)uVar23 ^ 0x100061c)) =
       uVar34 << (((byte)uVar32 ^ 0xe6) & 0x1f) ^ DAT_182671de8;
  uVar33 = (uVar33 ^ *(uint *)(lVar7 + -0x670)) >> (((byte)uVar8 ^ 0xf8) & 0x1f) ^ DAT_182671d54;
  puVar3 = (uint *)(lVar7 + -0x684);
  *(uint *)(lVar7 + -0x94) = uVar33;
  uVar16 = (ulonglong)uVar32;
  uVar33 = (*(uint *)(lVar7 - ((ulonglong)uVar8 ^ 0x9f72b7f7)) ^ DAT_182671de8 |
           uVar33 ^ DAT_182671d54) ^ DAT_182671ee8;
  *(uint *)(lVar7 + -0x9dc) = uVar33;
  uVar30 = (*(uint *)(lVar7 - ((ulonglong)uVar32 ^ 0x9f72b43f)) ^ DAT_182671dd4) +
           (uVar30 ^ *(uint *)(lVar7 + -0x4ac)) ^ DAT_182671d74;
  *puVar3 = uVar30;
  uVar34 = uVar33 ^ DAT_182671d80 ^ DAT_182671ee8;
  uVar30 = uVar30 ^ DAT_182671f8c ^ DAT_182671d74;
  uVar31 = (ulonglong)DAT_182671e2c;
  *(ulonglong *)(lVar7 + -0x680) =
       *(ulonglong *)(lVar7 - (uVar29 ^ 0x1000380)) ^
       *(ulonglong *)(lVar7 - ((ulonglong)uVar15 ^ 0x78b89d57));
  uVar33 = DAT_182671ef4;
  lVar5 = DAT_182671c40;
  *(uint *)(lVar7 + -0x54) = uVar30;
  *(uint *)(lVar7 - ((ulonglong)uVar8 ^ 0x9f72b7af)) = uVar34;
  uVar30 = DAT_182671eb8;
  *(uint *)(lVar7 + -0xae4) = DAT_182671eb8 ^ DAT_182671f8c ^ *(uint *)(lVar7 + -0x54);
  *puVar1 = *(uint *)(lVar7 + -0x644) ^ DAT_182671e64 ^ DAT_182671d80;
  bVar6 = (byte)DAT_182671c98;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x170) =
       (CONCAT44(uVar15,uVar32) ^ 0x78b8975f9f72b1eb) * 0x20 +
       *(longlong *)(lVar5 - ((ulonglong)uVar23 ^ 0x10009a8)) + 6 ^ uVar31;
  lVar5 = DAT_182671c40;
  bVar14 = *(byte *)(*(ulonglong *)(lVar7 - ((ulonglong)uVar15 ^ 0x78b8962f)) ^ uVar31) ^ bVar6 ^
           (byte)DAT_182671e0c;
  *(byte *)(DAT_182671c40 + -0x1c3) = bVar14;
  *puVar25 = (bVar14 ^ bVar6) ^ uVar33;
  puVar25 = (uint *)(lVar5 - (uVar16 ^ 0x9f72b8a7));
  *puVar25 = (*(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x9f72b687)) ^ DAT_182671e64) +
             (uVar32 ^ 0x330a3f5) ^ DAT_182671e14;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0x628) =
       CONCAT44(uVar8,uVar23) ^ 0x4cca96123e295d66 | CONCAT44(uVar8,uVar15) ^ 0x14febef06235cce9;
  *(uint *)(lVar5 - (uVar16 ^ 0x9f72b72b)) =
       (uVar33 ^ *(uint *)(lVar5 + -0x634)) << 0x11 ^ DAT_182671cac;
  uVar34 = DAT_182671f7c;
  puVar26 = (uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x9f72b79b));
  *puVar26 = (*puVar2 ^ DAT_182671e14) - (*(uint *)(lVar5 + -0x6c0) ^ DAT_182671cac) ^ DAT_182671f7c
  ;
  *(uint *)(lVar7 - (uVar16 ^ 0x9f72b7f7)) =
       (*(uint *)(lVar7 + -0xae4) ^ uVar30) + (uVar15 ^ 0xaef8c997);
  uVar11 = DAT_182671f5c;
  *(uint *)(lVar7 - (uVar18 ^ 0xffffff6b)) =
       (*(uint *)(lVar7 + -0xae4) ^ uVar30) * (uVar34 ^ *(uint *)(lVar7 + -0x670)) ^ DAT_182671e58;
  local_78 = (byte)uVar22;
  uVar33 = (uVar33 ^ *(uint *)(lVar7 + -0x634)) * (uVar8 ^ 0x9f72b1ed) ^ DAT_182671f48;
  uVar30 = *(uint *)(lVar7 + -0x94) ^ DAT_182671e58;
  *(uint *)(lVar7 + -0x4ac) = uVar33;
  uVar30 = (uVar33 ^ DAT_182671f48) + uVar30;
  *(ulonglong *)(lVar7 + -0xf0) =
       (CONCAT44(uVar15,uVar32) ^ 0xfc55efbe32e46f14) >> ((local_78 ^ 7) & 0x3f);
  *puVar3 = uVar30 ^ uVar11;
  uVar34 = DAT_182671e38;
  uVar33 = uVar30 << (((byte)uVar15 ^ 0x52) & 0x1f) ^ DAT_182671e08;
  *(uint *)(lVar7 + -0x9dc) = uVar33;
  uVar33 = uVar33 ^ DAT_182671e08;
  uVar30 = (*(uint *)(lVar7 - ((ulonglong)uVar23 ^ 0x1000684)) ^ uVar11) >>
           (((byte)uVar23 ^ 0x13) & 0x1f) ^ DAT_182671d94;
  *(uint *)(lVar7 + -0x54) = uVar30;
  uVar15 = DAT_182671f58;
  *(uint *)(lVar7 - (uVar24 ^ 0x78b8911b)) = (uVar30 ^ DAT_182671d94 | uVar33) ^ DAT_182671f58;
  uVar13 = DAT_182671f60;
  uVar29 = (ulonglong)DAT_182671f60;
  *puVar1 = (*(uint *)(lVar7 - ((ulonglong)uVar23 ^ 0x100027c)) ^ DAT_182671d4c) +
            (uVar19 ^ *(uint *)(lVar7 + -0x58c)) ^ DAT_182671da4;
  *(ulonglong *)(lVar7 + -0x480) =
       *(longlong *)(lVar7 + -0xa80) + (CONCAT44(uVar8,uVar32) ^ 0x9f72b1eb9f72b1e8) * 4 ^ uVar29;
  *(uint *)(*(ulonglong *)(lVar7 - (uVar17 ^ 0x87c7e870)) ^ uVar29) =
       *(uint *)(lVar7 - (uVar16 ^ 0x9f72b7af)) ^ DAT_182671d08 ^ uVar15;
  uVar17 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar7 + -0x228) = *(ulonglong *)(lVar7 + -0xa60) | 0x8255e93aac8497a5;
  *puVar2 = *(uint *)(lVar7 - (uVar17 ^ 0x87476fcc)) ^ uVar34 ^ DAT_182671da4;
  *(uint *)(lVar7 + -0x6c0) = *(uint *)(lVar7 + -0x644) ^ DAT_182671f08 ^ uVar15;
  uVar19 = DAT_182671e44;
  uVar29 = (ulonglong)DAT_182671d9c;
  uVar33 = DAT_182671e34 ^ DAT_182671e44;
  *(uint *)(lVar7 - (uVar24 ^ 0x78b89143)) = *puVar25 ^ DAT_182671d8c ^ uVar34;
  *(uint *)(lVar7 + -0x670) = *(uint *)(lVar7 + -0x6c0) ^ uVar19 ^ DAT_182671f08;
  uVar30 = DAT_182671c64;
  *(uint *)(lVar7 + -0xae4) =
       *(uint *)(lVar7 - ((ulonglong)uVar22 ^ 0x7838150c)) ^ DAT_182671e70 ^ DAT_182671d8c;
  uVar11 = DAT_182671ea4;
  uVar15 = DAT_182671c58;
  uVar24 = (ulonglong)DAT_182671c58;
  *(uint *)(lVar7 - ((ulonglong)uVar8 ^ 0x9f72b7df)) =
       DAT_182671d34 ^ *(uint *)(lVar7 + -0x1c8) | uVar19 ^ *puVar26;
  uVar33 = uVar33 ^ *(uint *)(lVar7 + -0x670);
  *(uint *)(lVar7 + -0x4ac) = *(uint *)(lVar7 + -0xae4) ^ uVar11 ^ DAT_182671e70;
  *(uint *)(lVar7 + -0x94) = uVar33;
  lVar5 = *(longlong *)(lVar7 + -0x9a8);
  *puVar3 = uVar33 ^ DAT_182671e1c ^ DAT_182671e34;
  uVar33 = DAT_182671de8;
  uVar8 = DAT_182671d04;
  uVar19 = DAT_182671d04 & 0xff;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar23 ^ 0x1000c20)) =
       (CONCAT44(uVar30,uVar15) ^ 0x78b8975fff3c538f) * 0x20 + lVar5 + 0x11 ^ uVar29;
  uVar17 = (ulonglong)DAT_182671ec4;
  *(byte *)(lVar7 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar7 + -0xc20) ^ uVar29) ^ (byte)uVar8 ^ (byte)DAT_182671e0c;
  *(undefined1 *)(*(ulonglong *)(lVar7 + -0xd48) ^ uVar17) = 0x2e;
  *(uint *)(lVar7 - ((ulonglong)DAT_182671c70 ^ 0x5f97b1a4)) =
       uVar19 ^ *(byte *)(lVar7 + -0x1c3) ^ uVar33;
  uVar15 = DAT_182671c88;
  uVar28 = (*puVar3 ^ DAT_182671e1c) + (DAT_182671c7c ^ 0x637e4191);
  uVar20 = (*(uint *)(lVar7 + -0x9dc) ^ uVar33) << (((byte)DAT_182671c5c ^ 0x10) & 0x1f) ^
           DAT_182671e5c;
  uVar19 = uVar28 ^ DAT_182671f68;
  *(uint *)(lVar7 + -0x27c) = uVar20;
  uVar20 = uVar20 ^ DAT_182671e5c;
  *(uint *)(lVar7 + -0x54) = uVar19;
  uVar19 = DAT_182671d5c;
  *(uint *)(lVar7 - ((ulonglong)uVar15 ^ 0x100019c)) = uVar28 - uVar20 ^ DAT_182671d5c;
  uVar29 = (ulonglong)DAT_182671c74;
  puVar25 = (uint *)(DAT_182671c40 - (uVar29 ^ 0x9e72b837));
  *puVar1 = (uVar19 ^ *(uint *)(lVar7 + -0x58c)) * (uVar11 ^ *(uint *)(lVar7 + -0x4ac)) ^ uVar34;
  lVar5 = DAT_182671c40;
  uVar17 = *(ulonglong *)(DAT_182671c40 + -0x760);
  *puVar2 = (*puVar25 ^ uVar33) * (uVar30 ^ 0x78b8974e) ^ uVar13;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xfffffa17)) = uVar17 >> ((byte)uVar17 & 0x3f);
  uVar30 = DAT_182671f94;
  uVar19 = (*(uint *)(lVar5 - ((ulonglong)DAT_182671c80 ^ 0x1000d5c)) ^ uVar13) + (*puVar1 ^ uVar34)
  ;
  *(uint *)(lVar5 + -0x6c0) = uVar19 ^ DAT_182671f94;
  *(uint *)(lVar5 + -0x61c) = uVar19 * 0x2000 ^ DAT_182671f84;
  bVar6 = (byte)uVar15;
  uVar19 = DAT_182671fa8 ^ DAT_182671e68;
  *(uint *)(lVar5 + -0x1c8) =
       (*(uint *)(lVar5 - (uVar24 ^ 0xff3c554f)) ^ uVar30) >> ((bVar6 ^ 3) & 0x1f) ^ uVar8;
  uVar17 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar5 - (uVar16 ^ 0x9f72bbbb)) =
       (CONCAT44(uVar23,uVar9) ^ 0x4b79828b7f0df646) << (((byte)uVar9 ^ 0xdf) & 0x3f);
  uVar12 = DAT_182671f24;
  uVar15 = (*(uint *)(lVar5 - (uVar18 ^ 0xfffff9e3)) ^ DAT_182671f84 |
           uVar8 ^ *(uint *)(lVar5 + -0x1c8)) ^ DAT_182671e68;
  uVar19 = uVar19 ^ uVar15;
  *(uint *)(lVar5 + -0x634) = uVar15;
  uVar15 = (*(uint *)(lVar5 - (uVar17 ^ 0x87476d74)) ^ DAT_182671dd4) +
           (uVar11 ^ *(uint *)(lVar5 + -0x4ac)) ^ DAT_182671d20;
  *(uint *)(lVar5 + -0x670) = uVar15;
  *(uint *)(lVar5 + -0xae4) = uVar15 ^ DAT_182671f64 ^ DAT_182671d20;
  uVar8 = DAT_182671d0c;
  uVar18 = (ulonglong)DAT_182671c48;
  *(longlong *)(lVar5 + -0xda8) = *(longlong *)(lVar5 + -0x960) << ((bVar6 ^ 0x34) & 0x3f);
  *(uint *)(lVar5 + -0x94) = uVar19;
  uVar10 = DAT_182671da0;
  *puVar3 = *(uint *)(lVar5 - (uVar18 ^ 0xfffff51b)) ^ DAT_182671f64 ^ DAT_182671e64;
  *(ulonglong *)(lVar5 + -0xb20) =
       *(ulonglong *)(CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar5 + -0x610)) ^
       CONCAT44(uVar12,uVar12);
  uVar9 = DAT_182671fa4;
  uVar23 = DAT_182671c7c;
  uVar15 = DAT_182671c74;
  *(uint *)(lVar5 + -0x54) = uVar8 ^ DAT_182671fa8 ^ uVar19;
  uVar30 = ~uVar15;
  uVar18 = (ulonglong)DAT_182671eec;
  *(longlong *)(lVar5 + -0x3d8) = *(longlong *)(lVar5 + -0x760) << (((byte)uVar23 ^ 0xb9) & 0x3f);
  pbVar36 = (byte *)((CONCAT44(uVar32,DAT_182671c68) ^ 0x9f72b1eb8180844c) +
                    *(longlong *)(lVar5 + -0x9a8));
  pbVar21 = (byte *)(lVar5 - (uVar29 ^ 0x9e72bb2a));
  DAT_182671c80 = uVar30;
  *(ulonglong *)(lVar5 + -0xbc0) = (ulonglong)pbVar36 ^ uVar18;
  uVar32 = DAT_182671ee8 & 0xff;
  *pbVar21 = *pbVar36 ^ (byte)DAT_182671ee8 ^ (byte)DAT_182671e0c;
  *(undefined1 *)(*(ulonglong *)(lVar5 + -0x38) ^ (ulonglong)DAT_182671d98) = 0x89;
  *(ulonglong *)(lVar5 + -0x888) =
       (CONCAT44(uVar30,uVar30) ^ 0xc6d625369c46fbc7) + *(longlong *)(lVar5 + -0xa50);
  uVar23 = (uVar8 ^ *(uint *)(lVar5 + -0x54)) + (uVar30 ^ 0xfdcf5c0a);
  uVar32 = uVar32 ^ *pbVar21;
  *(uint *)(lVar5 + -0x58c) = uVar23 ^ DAT_182671d58;
  *(uint *)(lVar5 + -0x27c) = uVar32 ^ uVar9;
  uVar15 = uVar32 << (((byte)uVar15 ^ 0xfa) & 0x1f) ^ DAT_182671de0;
  *(uint *)(lVar5 + -0x9dc) = uVar15;
  *(uint *)(lVar5 - ((ulonglong)uVar30 ^ 0x618d4978)) =
       uVar23 - (uVar15 ^ DAT_182671de0) ^ DAT_182671f9c;
  *puVar2 = (*puVar3 ^ DAT_182671e64) * (*puVar1 ^ DAT_182671f9c) ^ DAT_182671f2c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar4 ^ uVar22) * 4) = uVar27;
  return;
}



############ FUN_ 180f9f580 size=4980 ############

void FUN_180f9f580(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  byte bVar19;
  byte bVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  byte *pbVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_d0;
  byte local_c8;
  byte local_b8;
  
  uVar15 = DAT_182671f14;
  uVar10 = DAT_182671d48;
  uVar13 = DAT_182671c88;
  uVar11 = DAT_182671c80;
  uVar9 = DAT_182671c78;
  uVar6 = DAT_182671c54;
  uVar5 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c88;
  uVar44 = (ulonglong)DAT_182671c54;
  uVar41 = (ulonglong)DAT_182671c78;
  uVar33 = (ulonglong)DAT_182671c80;
  uVar46 = (ulonglong)DAT_182671c48;
  uVar40 = DAT_182671c78 & DAT_182671c48;
  DAT_182671c60 = DAT_182671c58 * DAT_182671c88;
  uVar27 = DAT_182671c54 * DAT_182671c80;
  uVar28 = *(uint *)(&DAT_182613218 + DAT_182672270) ^ DAT_182671c60;
  uVar22 = *(uint *)(&DAT_182613220 + DAT_182672270) ^ DAT_182671c58;
  DAT_182671c6c = uVar40;
  DAT_182671c70 = uVar27;
  *(byte *)(DAT_182671c40 + -0x511) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x6f8) ^ (ulonglong)DAT_182671d3c) ^
       (byte)DAT_182671f14;
  uVar39 = CONCAT44(uVar10,uVar10);
  uVar26 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar34 = (CONCAT44(DAT_182671d18,DAT_182671d18) ^ *(ulonglong *)(lVar2 + -0x8f0)) << 0x20;
  uVar35 = uVar34 ^ uVar39;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar35;
  uVar10 = DAT_182671f68;
  *(ulonglong *)(lVar2 + -0xa70) =
       *(ulonglong *)(uVar26 ^ *(ulonglong *)(lVar2 + -0x218)) ^ CONCAT44(uVar15,uVar15);
  bVar21 = (byte)DAT_182671fa0;
  uVar26 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar34 = CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar2 + -0x628) | uVar34;
  pbVar24 = (byte *)((CONCAT44(uVar13,uVar11) ^ 0xffdbdbfffffbdbf2) + *(longlong *)(lVar2 + -0x870))
  ;
  *(ulonglong *)(lVar2 + -0x758) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182671ed0;
  *(ulonglong *)(lVar2 + -0x8f0) = uVar34 ^ uVar26;
  *(byte *)(lVar2 + -0xb31) = *pbVar24 ^ bVar21 ^ (byte)DAT_182671f14;
  uVar26 = (ulonglong)uVar27;
  *(ulonglong *)(lVar2 + -0xa70) = CONCAT44(uVar27,uVar6) ^ uVar39 ^ uVar35 ^ 0x8afe976834ee082;
  uVar10 = DAT_182671f78;
  uVar16 = DAT_182671da8;
  uVar7 = DAT_182671c58;
  uVar39 = (ulonglong)DAT_182671da8;
  uVar31 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar2 + -0x628) = (bVar21 ^ *(byte *)(lVar2 + -0xb31)) ^ uVar31;
  lVar2 = DAT_182671c40;
  uVar35 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar40 ^ 0xb5d30ec2)) ^ uVar31) <<
           (((byte)uVar9 ^ 0xd6) & 0x3f);
  uVar36 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar35 ^ CONCAT44(uVar10,uVar10);
  bVar21 = (byte)DAT_182671cf8;
  *(ulonglong *)(lVar2 + -0xa70) = (uVar34 | uVar35) ^ uVar36;
  uVar10 = DAT_182671f14;
  pbVar24 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar7 ^ 0x9225ca9b)) + 0xe);
  *(ulonglong *)(lVar2 + -0x370) = (ulonglong)pbVar24 ^ uVar39;
  bVar19 = (byte)uVar10;
  *(byte *)(lVar2 + -0x72b) = *pbVar24 ^ bVar21 ^ bVar19;
  uVar10 = DAT_182671ca8;
  uVar35 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar2 + -0x628) =
       (*(byte *)(lVar2 - ((ulonglong)uVar40 ^ 0xb5d30fc1)) ^ bVar21) ^ uVar35;
  uVar8 = DAT_182671c60;
  uVar39 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xb7d3000e)) =
       (*(ulonglong *)(lVar2 - (uVar44 ^ 0x4a08f13c)) ^ uVar35) << 0x30 ^ uVar39;
  *(byte *)(lVar2 + -0x512) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar30 ^ 0xffdbdd07)) ^ (ulonglong)DAT_182671d3c) ^ bVar19;
  bVar21 = (byte)DAT_182671ee4;
  uVar34 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  pbVar24 = (byte *)((CONCAT44(uVar7,uVar11) ^ 0x9225c2ebfffbdbf0) + *(longlong *)(lVar2 + -0x870));
  uVar35 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x9225ca1b)) ^ uVar39) +
           (uVar36 ^ *(ulonglong *)(lVar2 + -0xa70));
  *(ulonglong *)(lVar2 + -0x708) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182671e2c;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar35 ^ uVar34;
  *(byte *)(lVar2 + -0x27d) = *pbVar24 ^ bVar21 ^ bVar19;
  uVar17 = DAT_182671f3c;
  *(ulonglong *)(lVar2 + -0x628) =
       CONCAT44(DAT_182671e44,DAT_182671e44) ^ *(ulonglong *)(lVar2 + -0xd88) | uVar35;
  *(ulonglong *)(lVar2 + -0xa70) =
       (ulonglong)(bVar21 ^ *(byte *)(lVar2 + -0x27d)) ^ CONCAT44(uVar17,uVar17);
  uVar14 = DAT_182671cb4;
  lVar3 = DAT_182671c40;
  puVar25 = (ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xb5653b65));
  uVar39 = (ulonglong)DAT_182671cb4;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xfffbd30f)) =
       (*puVar25 ^ CONCAT44(uVar17,uVar17)) << (((byte)uVar6 ^ 0x2c) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar10 = DAT_182671ebc;
  uVar12 = DAT_182671c84;
  uVar35 = (ulonglong)DAT_182671c84;
  uVar36 = (ulonglong)DAT_182671c84;
  uVar23 = DAT_182671c84 << 0x10 | DAT_182671c84 >> 0x10;
  uVar42 = (ulonglong)uVar23;
  uVar32 = CONCAT44(DAT_182671c84,uVar23);
  DAT_182671c90 = uVar23;
  *(ulonglong *)(lVar3 + -0xda8) =
       (uVar32 ^ 0x9377b04230c53823) >> (((byte)DAT_182671cc0 ^ *(byte *)(lVar3 + -0xb20)) & 0x3f);
  uVar37 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 + -0x8f0) ^ CONCAT44(uVar16,uVar16)) +
       (uVar34 ^ *(ulonglong *)(lVar3 + -0xbd8)) ^ uVar37;
  uVar29 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar3 + -0x678) =
       *(longlong *)(lVar3 - (uVar36 ^ 0xb5f70cf3)) + (uVar32 ^ 0xb5f708eb08ebb5f6) * 8 ^ uVar29;
  *(byte *)(lVar3 - (uVar42 ^ 0x8ebbc36)) =
       *(byte *)(uVar39 ^ *(ulonglong *)(lVar3 + -0x328)) ^ (byte)DAT_182671f14;
  uVar34 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x678) ^ uVar29) =
       uVar34 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0xd88);
  bVar21 = (byte)DAT_182671f70;
  lVar4 = DAT_182671c40;
  local_c8 = (byte)uVar40;
  uVar38 = (ulonglong)DAT_182671e54;
  *(ulonglong *)(lVar3 + -0x628) =
       CONCAT44(uVar5,uVar12) ^ 0x4f39497548053e8 | CONCAT44(uVar13,uVar8) ^ 0xd6b0206fca99e74d;
  uVar10 = DAT_182671f14;
  lVar2 = *(longlong *)(lVar4 + -0x870);
  uVar29 = CONCAT44(uVar9,uVar6) ^ 0xb7d308fe4a08f704;
  pbVar24 = (byte *)(uVar29 + lVar2);
  *(ulonglong *)(lVar4 + -0x990) = (ulonglong)pbVar24 ^ uVar38;
  *(byte *)(lVar4 + -0x1c3) = *pbVar24 ^ bVar21 ^ (byte)uVar10;
  *(ulonglong *)(DAT_182671c40 + -0xb20) =
       (CONCAT44(uVar8,uVar12) ^ 0xef4d6d8bbaf0264d) << ((local_c8 ^ 0xe4) & 0x3f);
  uVar15 = DAT_182671f14;
  lVar3 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671d68,DAT_182671d68);
  uVar39 = (ulonglong)DAT_182671f0c;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (*(byte *)(DAT_182671c40 - (uVar30 ^ 0xffdbda3c)) ^ bVar21) ^ uVar37;
  bVar21 = (byte)DAT_182671f40;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xffdbdca7)) =
       (CONCAT44(uVar5,uVar23) ^ 0xfddbffea08ebb5e6) + lVar2 ^ uVar39;
  uVar10 = DAT_182671da0;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0xcd2) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x758) ^ uVar39) ^ bVar21 ^ (byte)uVar15;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(uVar10,uVar10);
  uVar39 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xb5f70333)) =
       (*(byte *)(lVar2 - ((ulonglong)uVar8 ^ 0xb5653dc7)) ^ bVar21) ^ uVar32;
  local_d0 = (byte)uVar27;
  *(byte *)(lVar3 - (uVar39 ^ 0x9225ce82)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x990) ^ uVar38) ^ (byte)uVar15;
  uVar10 = DAT_182671e20;
  uVar36 = (uVar32 ^ *(ulonglong *)(lVar3 + -0xbd8)) << ((local_d0 ^ 0xe4) & 0x3f);
  uVar45 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar3 + -0x2b0) = uVar36 ^ uVar45;
  uVar23 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar37 = *(ulonglong *)(lVar3 + -0xda8) ^ uVar37;
  uVar38 = CONCAT44(uVar10,uVar10);
  uVar39 = CONCAT44(uVar6,DAT_182671c58);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0x628) = (uVar36 | uVar37) ^ uVar38;
  *(ulonglong *)(lVar2 + -0xb20) = (uVar32 ^ *puVar1) << 0x3e;
  bVar19 = (byte)DAT_182671e84;
  pbVar24 = (byte *)((uVar39 ^ 0x4a08f7149225c2f9) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0x370) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182671df4;
  *(byte *)(lVar2 + -0x3a1) = *pbVar24 ^ bVar19 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xffdbd94f)) =
       uVar37 << (((byte)uVar17 ^ *(byte *)(lVar2 + -0xa70)) & 0x3f);
  uVar15 = DAT_182671ef4;
  bVar21 = (byte)DAT_182671e08;
  uVar39 = (ulonglong)(bVar19 ^ *(byte *)(DAT_182671c40 + -0x3a1));
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar39 ^ CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar10 = DAT_182671e94;
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 + -0xa70) = uVar39 << ((byte)uVar29 & 0x3f) ^ uVar36;
  uVar29 = (ulonglong)DAT_182671d78;
  uVar43 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 - (uVar44 ^ 0x4a08fd64)) ^ uVar36 |
       *(ulonglong *)(lVar2 - (uVar33 ^ 0xfffbddd7)) ^ uVar38) ^ uVar43;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xb56537ed)) =
       (CONCAT44(uVar5,uVar23) ^ 0xfddbffea9225c2f8) + *(longlong *)(lVar2 + -0x870) ^ uVar29;
  uVar39 = uVar36 ^ *(ulonglong *)(lVar2 + -0xa70);
  *(byte *)(lVar2 + -0xd01) =
       *(byte *)(uVar29 ^ *(ulonglong *)(lVar2 + -0x6f8)) ^ bVar21 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xb5f70a5b)) = uVar39 >> ((byte)uVar39 & 0x3f);
  uVar18 = DAT_182671f28;
  bVar19 = (byte)DAT_182671e14;
  uVar37 = (ulonglong)DAT_182671f28;
  uVar39 = (ulonglong)(*(byte *)(lVar2 - ((ulonglong)uVar23 ^ 0x9225cfea)) ^ bVar21);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar39 ^ CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x628) = uVar39 << 0x18 ^ uVar29;
  uVar23 = DAT_182671eb0;
  lVar2 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (*(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0xfddbf9c2)) ^ uVar29 |
       *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x8ebb85f)) ^ uVar43) ^ uVar32;
  pbVar24 = (byte *)((CONCAT44(uVar40,uVar40) ^ 0xb5d308eab5d308fe) + *(longlong *)(lVar2 + -0x870))
  ;
  *(ulonglong *)(lVar2 + -0x708) = (ulonglong)pbVar24 ^ uVar37;
  *(byte *)(lVar2 - (uVar33 ^ 0xfffbd19e)) = *pbVar24 ^ bVar19 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (CONCAT44(uVar9,uVar27) ^ 0xefcfccd926fa7552) - *(longlong *)(lVar2 - (uVar44 ^ 0x4a08fc34));
  uVar39 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0xfddbf242)) =
       (*(byte *)(DAT_182671c40 + -0xa61) ^ bVar19) ^ uVar39;
  lVar2 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (*(ulonglong *)(DAT_182671c40 + -0xda8) ^ uVar39) << (((byte)uVar12 ^ 0xcb) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar2 + -0xb20) =
       CONCAT44(uVar11,uVar6) ^ uVar36 ^ *(ulonglong *)(lVar2 + -0xa70) ^ 0x20a11a9aa3c9f6e9;
  uVar29 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar37 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x96e83a5c)) ^ uVar32 |
       *(ulonglong *)(lVar2 - (uVar37 ^ 0xb565373d)) ^ uVar33) ^ uVar29;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xda8) =
       0xd9cf5d7600e93733 >> ((*(byte *)(lVar2 - (uVar42 ^ 0x8ebbd07)) ^ (byte)uVar16) & 0x3f);
  uVar39 = (ulonglong)DAT_182671e8c;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xb7d30bd6)) =
       (CONCAT44(uVar7,uVar13) ^ 0x9225c2ebffdbdbea) + *(longlong *)(lVar3 + -0x870) ^ uVar39;
  bVar21 = (byte)DAT_182671e9c;
  bVar19 = *(byte *)(uVar39 ^ *(ulonglong *)(lVar3 + -0x328)) ^ (byte)DAT_182671e9c ^
           (byte)DAT_182671f14;
  *(byte *)(lVar3 + -0xb59) = bVar19;
  uVar38 = (ulonglong)DAT_182671d90;
  uVar39 = CONCAT44(DAT_182671d90,DAT_182671d90);
  *puVar25 = (bVar19 ^ bVar21) ^ uVar39;
  uVar10 = DAT_182671e30;
  lVar2 = DAT_182671c40;
  uVar39 = (uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0xa70)) << (((byte)uVar5 ^ 0xc2) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar39 ^ CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar36 = (ulonglong)DAT_182671cb8;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xb56533a5)) =
       (*(ulonglong *)(lVar2 - (uVar44 ^ 0x4a08fccc)) ^ uVar29 | uVar39) ^ uVar33;
  pbVar24 = (byte *)((CONCAT44(uVar27,uVar11) ^ 0x96e838ecfffbdbe9) + *(longlong *)(lVar2 + -0x870))
  ;
  *(uint *)(lVar2 + -0x4ac) =
       (*(uint *)(lVar2 + -0x58c) ^ DAT_182671f1c) >>
       (((byte)*(undefined4 *)(lVar2 + -0xa94) ^ (byte)DAT_182671d40) & 0x1f);
  bVar21 = (byte)DAT_182671dc8;
  *(ulonglong *)(lVar2 + -0x758) = (ulonglong)pbVar24 ^ uVar36;
  bVar20 = (byte)DAT_182671f14;
  bVar19 = *pbVar24 ^ bVar21 ^ bVar20;
  *(byte *)(lVar2 + -0x7d1) = bVar19;
  *(ulonglong *)(lVar2 + -0x628) = (bVar21 ^ bVar19) ^ uVar45;
  *(uint *)(lVar2 - (uVar42 ^ 0x8ebbcbb)) =
       (*(uint *)(lVar2 + -0x27c) ^ DAT_182671d14) - (*(uint *)(lVar2 + -0xc70) ^ uVar23);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar40 ^ 0xb5d3001a)) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0x8ebb3df)) ^ uVar45) << 0x30 ^ uVar31;
  bVar21 = (byte)DAT_182671ec0;
  uVar10 = DAT_182671c7c;
  uVar32 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 + -0x8f0) ^ uVar31) + (uVar33 ^ *(ulonglong *)(lVar2 + -0x2b0)) ^
       uVar32;
  pbVar24 = (byte *)((CONCAT44(uVar10,uVar13) ^ 0x460ad9d9ffdbdbe8) + *(longlong *)(lVar2 + -0x870))
  ;
  *(ulonglong *)(lVar2 + -0x990) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182671ef8;
  uVar17 = DAT_182671de0;
  bVar20 = *pbVar24 ^ bVar21 ^ bVar20;
  uVar36 = (ulonglong)(bVar21 ^ bVar20);
  *(byte *)(lVar2 + -0xd89) = bVar20;
  uVar15 = DAT_182671cbc;
  *(ulonglong *)(lVar2 + -0xa70) = uVar36 ^ CONCAT44(uVar17,uVar17);
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar39 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar36 << ((local_d0 ^ 0xd4) & 0x3f) ^ uVar29;
  lVar2 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c4c;
  uVar36 = CONCAT44(uVar11,DAT_182671c74);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x9225c9cb)) =
       CONCAT44(uVar8,DAT_182671c4c) ^ 0xeffd07efffef6f9c | 0xa635030b7ee1248c;
  uVar15 = DAT_182671f2c;
  uVar39 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0xbd8)) + (*(ulonglong *)(lVar3 + -0xda8) ^ uVar32) ^
       uVar39;
  puVar1 = (ulonglong *)(*(longlong *)(lVar2 + -0x418) + (uVar36 ^ 0xfffbdbffa52ae60e) * 8);
  *(ulonglong *)(lVar2 + -0x910) = (ulonglong)puVar1 ^ CONCAT44(uVar15,uVar15);
  uVar17 = DAT_182671f14;
  bVar19 = (byte)DAT_182671dfc;
  bVar21 = (byte)DAT_182671d2c;
  uVar5 = DAT_182671c94;
  uVar29 = (ulonglong)DAT_182671dc0;
  uVar36 = (ulonglong)DAT_182671c94;
  *puVar1 = *(ulonglong *)(lVar2 - (uVar26 ^ 0x96e83ec4)) ^ uVar39 ^ uVar34;
  uVar39 = (ulonglong)DAT_182671d84;
  pbVar24 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x460ad1a9)) + 0x18);
  *(ulonglong *)(lVar2 + -0x370) = (ulonglong)pbVar24 ^ uVar29;
  uVar15 = DAT_182671d20;
  bVar20 = *pbVar24 ^ bVar21 ^ (byte)uVar17;
  uVar32 = (ulonglong)(bVar21 ^ bVar20);
  *(byte *)(lVar2 + -0xb32) = bVar20;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar32 ^ CONCAT44(uVar15,uVar15);
  uVar34 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar2 + -0x6f8) =
       (CONCAT44(uVar8,uVar5) ^ 0xb5653115b4d869ff) + *(longlong *)(lVar2 + -0x870) ^ uVar39;
  uVar15 = DAT_182671e40;
  bVar21 = *(byte *)(*(ulonglong *)(lVar2 - (uVar34 ^ 0x9225c413)) ^ uVar39) ^ bVar19 ^ (byte)uVar17
  ;
  *(byte *)(lVar2 + -0xa95) = bVar21;
  uVar34 = (ulonglong)(bVar21 ^ bVar19);
  *(ulonglong *)(lVar2 + -0x8f0) = uVar34 ^ CONCAT44(uVar15,uVar15);
  uVar17 = DAT_182671f8c;
  uVar39 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar2 + -0xa70) = uVar34 << (((byte)uVar6 ^ 0x1c) & 0x3f) ^ uVar39;
  uVar15 = DAT_182671f14;
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(uVar17,uVar17);
  local_b8 = (byte)(uVar12 >> 0x10);
  *(ulonglong *)(DAT_182671c40 + -0xb20) =
       (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xb5f7029b)) ^ uVar39 | uVar32) ^ uVar31;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x4a08f01c)) =
       *(longlong *)(lVar2 - (uVar35 ^ 0xb5f7009b)) + (CONCAT44(uVar9,uVar11) ^ 0xb7d308fefffbdbe5)
       ^ uVar38;
  bVar21 = (byte)DAT_182671dd4;
  bVar19 = (byte)uVar15;
  *(byte *)(lVar3 - ((ulonglong)uVar40 ^ 0xb5d302fb)) =
       *(byte *)(uVar29 ^ *(ulonglong *)(lVar3 + -0x370)) ^ bVar19;
  *(byte *)(lVar3 - (uVar36 ^ 0xb4d86b5c)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x708) ^ uVar38) ^ bVar21 ^ bVar19;
  uVar39 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xb5f70543)) =
       (*(byte *)(lVar3 - (uVar30 ^ 0xffdbd945)) ^ bVar21) ^ uVar39;
  uVar35 = uVar39 ^ *(ulonglong *)(lVar3 + -0xda8);
  *(ulonglong *)(lVar3 + -0xbd8) = 0x4605bcfa9985ed4 >> ((byte)uVar35 & 0x3f);
  *(ulonglong *)(lVar3 + -0xb08) = uVar35 << ((local_b8 ^ 0xe7) & 0x3f) ^ uVar43;
  bVar21 = (byte)DAT_182671d64;
  uVar35 = (ulonglong)DAT_182671cf4;
  uVar34 = CONCAT44(uVar10,DAT_182671c8c);
  *(ulonglong *)(lVar3 + -0x8f0) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x9d5c1012)) ^ uVar43 |
       *(ulonglong *)(lVar3 - (uVar26 ^ 0x96e833cc)) ^ uVar31) ^ uVar39;
  uVar10 = DAT_182671db4;
  pbVar24 = (byte *)((uVar34 ^ 0x460ad9d945b0db7e) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0x328) = (ulonglong)pbVar24 ^ uVar35;
  bVar19 = *pbVar24 ^ bVar21 ^ bVar19;
  *(byte *)(lVar3 + -0x5e9) = bVar19;
  uVar35 = CONCAT44(DAT_182671c64,uVar13);
  uVar26 = CONCAT44(DAT_182671c5c,uVar9);
  *(ulonglong *)(lVar3 + -0x2b0) = (ulonglong)(bVar21 ^ bVar19) ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xa70) = uVar35 ^ uVar26 ^ 0x600dc179f4bdd7ec;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar22 * 4) = uVar28;
  return;
}



############ FUN_ 180fcb400 size=5129 ############

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

void FUN_180fcb400(void)

{
  undefined8 *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res18;
  
  uVar9 = DAT_182671df8;
  uVar15 = DAT_182671c88;
  uVar14 = DAT_182671c80;
  uVar12 = DAT_182671c74;
  uVar6 = DAT_182671c4c;
  lVar4 = DAT_182671c40;
  uVar41 = (ulonglong)DAT_182671c80;
  uVar27 = DAT_182671c80 - DAT_182671c4c;
  uVar3 = *(uint *)(&DAT_182613220 + DAT_1826722f4);
  uVar22 = *(uint *)(&DAT_182613218 + DAT_1826722f4) ^ DAT_182671c4c;
  uVar34 = (ulonglong)DAT_182671c80;
  uVar24 = (ulonglong)DAT_182671c88;
  puVar1 = (undefined8 *)(DAT_182671c40 + -0x2e8);
  DAT_182671c68 = uVar27;
  *(ulonglong **)(DAT_182671c40 + -0x610) = (ulonglong *)*puVar1;
  uVar32 = uVar15 * uVar12;
  uVar38 = CONCAT44(uVar9,uVar9);
  uVar43 = (ulonglong)uVar32;
  uVar29 = CONCAT44(DAT_182671e28,DAT_182671e28);
  DAT_182671c60 = uVar32;
  *(ulonglong *)(lVar4 + -0xf0) = *(ulonglong *)*puVar1 ^ uVar29 ^ uVar38;
  **(ulonglong **)(lVar4 + -0xb88) = CONCAT44(uVar15,uVar32) ^ 0x2be60aab0c31a667;
  uVar33 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  uVar44 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar28 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar4 + -0x380) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x650) ^ uVar28) ^ uVar44 ^ uVar33;
  uVar23 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar4 - (uVar41 ^ 0x4ea7b247)) = (uVar12 ^ 0xac90b708) - *(int *)(lVar4 + -0x9dc);
  uVar9 = DAT_182671da0;
  uVar11 = DAT_182671c84;
  uVar30 = CONCAT44(DAT_182671da8,DAT_182671da8);
  puVar25 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671c50 ^ 0xa5b170f0));
  puVar2 = (ulonglong *)(lVar4 + -0x4b8);
  *puVar25 = *(ulonglong *)(lVar4 - (uVar23 ^ 0x88099910)) ^ uVar30 ^ uVar33 ^ uVar38 ^
             *(ulonglong *)(lVar4 + -0xf0);
  uVar10 = DAT_182671db4;
  *(ulonglong *)(lVar4 + -0x7e8) =
       CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar4 + -0xa50) | *puVar2 ^ uVar30;
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x650) ^ uVar28) = *puVar2 ^ uVar30 ^ uVar44;
  lVar4 = DAT_182671c40;
  uVar38 = (ulonglong)uVar12;
  *(ulonglong *)(DAT_182671c40 + -0x6e8) =
       (*(ulonglong *)(DAT_182671c40 + -0xa00) ^ (ulonglong)DAT_182671f50) +
       ((CONCAT44(uVar27,uVar12) ^ 0x7c60a0ecd8eeb82d) +
       (CONCAT44(uVar11,uVar15) ^ 0x2db8eed83caaf340) * 0x10) * 8 + 0x60;
  *(ulonglong *)(lVar4 + -0xda8) = *puVar25 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x7e8);
  uVar16 = DAT_182671c8c;
  lVar5 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671c8c,uVar14);
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x4ea7b79b)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar11 ^ 0x2db8e298)) +
       ((CONCAT44(uVar6,DAT_182671c8c) ^ 0xd247112788099a90) +
       (CONCAT44(uVar32,uVar15) ^ 0xae62c2403caaf340) * 4) * 8 ^ CONCAT44(uVar10,uVar10);
  uVar9 = DAT_182671dd0;
  uVar39 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar5 + -0x10) =
       *(longlong *)(lVar5 + -0x6e8) + (uVar23 ^ 0x88099a904ea7b213) * 8 ^ uVar39;
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xd8eeba05)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c50 ^ 0xa5b17458)) ^ uVar39) ^
       uVar23 ^ uVar44;
  uVar9 = DAT_182671fa8;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar5 - (uVar43 ^ 0xae62ca98)) + 8 +
            (CONCAT44(uVar11,uVar27) ^ 0x2db8eed87c60a0ec) * 8);
  *(ulonglong *)(lVar5 + -0xb98) = (ulonglong)puVar25 ^ uVar33;
  uVar31 = CONCAT44(uVar9,uVar9);
  *puVar25 = *(ulonglong *)(lVar5 + -0x228) ^ uVar31 ^ uVar23;
  uVar9 = DAT_182671db0;
  uVar23 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar5 + -0xc90) =
       *(ulonglong *)(uVar39 ^ *(ulonglong *)(lVar5 + -0x10)) ^ uVar23 ^ uVar44;
  *(undefined8 *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar5 + -0xd50)) = 0xfa81853e62d00b53;
  uVar7 = DAT_182671c50;
  uVar34 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c84 ^ 0x2db8e5f8)) =
       CONCAT44(DAT_182671c50,uVar6) ^ uVar34 ^ uVar23 ^ *(ulonglong *)(lVar5 + -0xc90) ^
       0xbe606f927bbb0b05;
  uVar23 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar5 + -0x920) = uVar23 ^ uVar34 ^ *(ulonglong *)(lVar5 + -0xb20);
  uVar8 = DAT_182671c8c;
  uVar35 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(lVar5 + -0x888) = *(ulonglong *)(lVar5 - (uVar38 ^ 0xd8eeb10d)) ^ uVar35 ^ uVar23;
  puVar25 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 + -0x6e8) +
            (CONCAT44(uVar14,uVar8) ^ 0x4ea7b21388099a91) * 8);
  *(ulonglong *)(DAT_182671c40 + -0x910) = (ulonglong)puVar25 ^ uVar39;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       CONCAT44(uVar27,uVar6) ^ 0x26743067cafd5dc1 | CONCAT44(uVar27,uVar14) ^ 0xe4dc15c51d3aee80;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa60) = *puVar25 ^ uVar28 ^ uVar44;
  uVar8 = DAT_182671c84;
  uVar36 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0x88099e88)) =
       *(longlong *)(lVar4 + -0x8d8) + 8 +
       ((CONCAT44(uVar6,uVar12) ^ 0xd2471127d8eeb82d) * 0x15 +
       (CONCAT44(uVar14,uVar32) ^ 0x4ea7b213ae62c241)) * 8 ^ uVar36;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(*(ulonglong *)(DAT_182671c40 + -0x418) ^ uVar36) =
       *(ulonglong *)(DAT_182671c40 + -0xa60) ^ uVar31 ^ uVar28;
  uVar9 = DAT_182671f60;
  *(ulonglong *)(lVar4 + -0x110) =
       (*(ulonglong *)(lVar4 - (uVar43 ^ 0xae62c6f8)) ^ uVar30) >> (((byte)uVar8 ^ 0xcc) & 0x3f);
  lVar5 = DAT_182671c40;
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xd8eebbf5)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x910) ^ uVar39) ^ uVar34 ^ uVar44;
  *(undefined8 *)(CONCAT44(DAT_182671cbc,DAT_182671cbc) ^ *(ulonglong *)(lVar4 + -0x668)) =
       0x3250268adc433c3f;
  uVar30 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xd8eebead)) =
       *(ulonglong *)(DAT_182671c40 + -0x888) ^ uVar30 ^ uVar34 ^ uVar35 ^
       *(ulonglong *)(DAT_182671c40 + -0x3d8);
  uVar23 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar35 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0x7c60a25c)) =
       *(ulonglong *)(lVar5 + -0x680) ^ uVar23 ^ uVar30;
  *(ulonglong *)(lVar5 + -0xb18) = uVar35 ^ uVar23 ^ *(ulonglong *)(lVar5 + -0x2b0);
  uVar10 = DAT_182671eb4;
  uVar30 = CONCAT44(DAT_182671eec,DAT_182671eec);
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar5 + -0x6e8) +
            (CONCAT44(uVar16,DAT_182671c50) ^ 0x88099a90a5b1744a) * 8);
  *(ulonglong *)(lVar5 + -0xd68) = (ulonglong)puVar25 ^ uVar30;
  lVar4 = DAT_182671c40;
  local_res18 = (byte)uVar12;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x2db8e6f0)) =
       *puVar25 ^ CONCAT44(uVar10,uVar10) ^ uVar44;
  uVar40 = CONCAT44(DAT_182671efc,DAT_182671efc);
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x8d8) + 8 + (CONCAT44(uVar14,uVar14) ^ 0x4ea7b2134ea7b211) * 8)
  ;
  *(ulonglong *)(lVar4 + -0x678) = (ulonglong)puVar25 ^ uVar40;
  *puVar25 = CONCAT44(uVar10,uVar10) ^ uVar31 ^ *(ulonglong *)(lVar4 + -0x828);
  *(ulonglong *)(lVar4 + -0xc18) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0xb18)) << ((local_res18 ^ 0x24) & 0x3f);
  uVar9 = DAT_182671df4;
  uVar23 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar4 + -0x5e8) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0xd68) ^ uVar30) ^ uVar23 ^ uVar44;
  *(ulonglong *)(CONCAT44(DAT_182671e54,DAT_182671e54) ^ *(ulonglong *)(lVar4 + -0x140)) =
       CONCAT44(uVar6,uVar14) ^ 0xd15cd72d1f9aaa03;
  uVar30 = CONCAT44(DAT_182671d34,DAT_182671d34);
  uVar39 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar23 = uVar30 ^ uVar23 ^ uVar35 ^ *(ulonglong *)(lVar4 + -0xb18) ^
           *(ulonglong *)(lVar4 + -0x5e8);
  *(ulonglong *)(lVar4 + -0xc38) = uVar23;
  lVar5 = DAT_182671c40;
  puVar25 = (ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x3caaf650)) = uVar39 ^ uVar23 ^ uVar30;
  uVar23 = *(ulonglong *)(lVar5 + -0x510);
  uVar35 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *puVar25 = uVar23 ^ uVar35 ^ uVar39;
  uVar13 = DAT_182671ef0;
  uVar30 = CONCAT44(uVar15,DAT_182671c50);
  *(longlong *)(lVar5 + -0x30) =
       -0x2bd8bf5821bae4c3 << (((byte)uVar10 ^ *(byte *)(lVar5 + -0x828)) & 0x3f);
  lVar4 = DAT_182671c40;
  uVar42 = CONCAT44(uVar13,uVar13);
  puVar26 = (ulonglong *)(*(longlong *)(lVar5 + -0x6e8) + (uVar30 ^ 0x3caaf340a5b1744b) * 8);
  *(ulonglong *)(lVar5 + -0x138) = (ulonglong)puVar26 ^ uVar42;
  uVar8 = DAT_182671c50;
  uVar30 = *puVar26 ^ uVar34 ^ uVar44;
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar23 ^ uVar39) << (((byte)uVar9 ^ *(byte *)(lVar4 + -0x5e8)) & 0x3f);
  *(ulonglong *)(lVar4 + -0x960) = uVar30;
  uVar9 = DAT_182671cf4;
  uVar17 = DAT_182671c8c;
  uVar39 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x8d8) + 0x20 +
            (CONCAT44(uVar32,uVar8) ^ 0xae62c240a5b17448) * 0xa8);
  uVar23 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar4 + -0xac0) = (ulonglong)puVar26 ^ uVar39;
  uVar37 = CONCAT44(uVar9,uVar9);
  *puVar26 = uVar34 ^ uVar31 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x380) =
       *(ulonglong *)(uVar42 ^ *(ulonglong *)(lVar4 + -0x138)) ^ uVar37 ^ uVar44;
  uVar30 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xd2471777)) ^ uVar28) =
       CONCAT44(uVar11,uVar27) ^ 0xa161b2deeb10f499;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x3caaf910)) =
       *puVar25 ^ uVar30 ^ uVar37 ^ uVar35 ^ *(ulonglong *)(lVar4 + -0x380);
  uVar28 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x4ea7b9cb)) = *(ulonglong *)(lVar4 + -0xa50) ^ uVar28 ^ uVar30;
  uVar9 = DAT_182671ce4;
  *(ulonglong *)(lVar4 + -0x7e8) =
       CONCAT44(uVar14,uVar8) ^ CONCAT44(uVar7,uVar17) ^ 0x7bc06574277c6077;
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(lVar4 + -0xbd8) ^ uVar30 ^ uVar28;
  uVar37 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *(ulonglong *)(lVar4 + -0xda8) = uVar28;
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x8d8) + 0x28 +
            (CONCAT44(uVar27,uVar17) ^ 0x7c60a0ec88099a90) * 0xa8);
  bVar21 = (byte)DAT_182671c84;
  *(ulonglong *)(lVar4 + -0x2e8) = (ulonglong)puVar26 ^ uVar37;
  uVar10 = DAT_182671c5c;
  *puVar26 = uVar28 ^ uVar30 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x408) =
       (CONCAT44(uVar11,uVar15) ^ 0x897d8df511206e71) >> ((bVar21 ^ 0xee) & 0x3f);
  uVar30 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x4ea7be83)) = **(ulonglong **)(lVar4 + 0x18) ^ uVar30;
  *(ulonglong *)(lVar4 + -0xb20) =
       *(longlong *)(lVar4 - (uVar41 ^ 0x4ea7b61b)) - (CONCAT44(uVar27,uVar15) ^ 0xbe6d4c83f22b1598)
  ;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x88099118)) =
       *(longlong *)(lVar4 + 0x18) + (CONCAT44(uVar11,uVar32) ^ 0x2db8eed8ae62c241) * 8;
  uVar13 = DAT_182671c7c;
  uVar44 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar4 + -0x920) = **(ulonglong **)(lVar4 + -0xb88) ^ uVar44;
  uVar19 = DAT_182671e84;
  puVar26 = (ulonglong *)
            (*(longlong *)((uVar41 ^ 0x4ea7b20b) + lVar4) +
            (CONCAT44(uVar13,uVar10) ^ 0x71c6fcd4fdfafffd) * 8);
  *(ulonglong **)(lVar4 + -0x610) = puVar26;
  uVar9 = DAT_182671c78;
  uVar28 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar4 + -0x760) = uVar28 ^ *puVar26;
  uVar18 = DAT_182671c90;
  puVar1 = (undefined8 *)
           (*(longlong *)(lVar4 + 0x18) + (CONCAT44(uVar12,uVar9) ^ 0xd8eeb82d06c887a9) * 8);
  *(undefined8 **)(lVar4 + -0x40) = puVar1;
  *(uint *)(lVar4 + -0x644) =
       *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0xd24716a3)) | *(uint *)(lVar4 + -0x58c);
  uVar8 = DAT_182671c64;
  *(undefined8 *)(lVar4 - (uVar43 ^ 0xae62c350)) = *puVar1;
  uVar11 = DAT_182671c70;
  uVar23 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar41 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0xbd5ffdfd)) =
       *(longlong *)(lVar4 + -0x8d8) + 8 +
       ((CONCAT44(uVar12,uVar17) ^ 0xd8eeb82d88099a90) * 0x15 +
       (CONCAT44(uVar16,uVar8) ^ 0x88099a90fc6af33f)) * 8 ^ uVar23;
  uVar19 = DAT_182671c94;
  uVar35 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar4 + -0xd88) =
       *(ulonglong *)(uVar23 ^ *(ulonglong *)(lVar4 + -0x10)) ^ uVar35 ^ uVar31;
  uVar9 = DAT_182671c54;
  uVar45 = CONCAT44(uVar11,uVar6);
  *(ulonglong *)(*(ulonglong *)(DAT_182671c40 + -0xb98) ^ uVar33) = uVar45 ^ 0xb28717d2f292a006;
  uVar20 = DAT_182671ddc;
  lVar4 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671c48;
  puVar26 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 + -0x8d8) + 8 +
            ((CONCAT44(uVar19,uVar12) ^ 0x13b2a74ed8eeb82c) +
            (CONCAT44(uVar27,uVar9) ^ 0x7c60a0ecdff9f9f8) * 0x15) * 8);
  *(ulonglong *)(DAT_182671c40 + -0xd50) =
       (ulonglong)puVar26 ^ CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar34 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar4 - (uVar42 ^ 0x48020a9a)) = *puVar26 ^ uVar34 ^ uVar31;
  uVar20 = DAT_182671cc0;
  *(undefined8 *)(*(ulonglong *)(lVar4 + -0x418) ^ uVar36) = 0xe1b761ca1f9df932;
  uVar33 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x1747bd1e)) =
       *(longlong *)(lVar4 + -0x8d8) + 8 + (CONCAT44(uVar10,uVar27) ^ 0xfdfaffff7c60a0ee) * 8 ^
       uVar33;
  uVar23 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar4 + -0x3d8) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar24 ^ 0x3caafa50)) ^ uVar33) ^
       CONCAT44(uVar20,uVar20) ^ uVar31;
  uVar10 = DAT_182671c6c;
  uVar33 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(*(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xa5b17230)) ^ uVar40) =
       CONCAT44(DAT_182671c6c,uVar19) ^ 0x60744c12918c9f05;
  uVar8 = DAT_182671c84;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x668) =
       *(longlong *)(DAT_182671c40 - (uVar24 ^ 0x3caafb98)) +
       ((CONCAT44(DAT_182671c58,uVar15) ^ 0x3950cc03caaf343) + 1) * 8 ^ uVar33;
  uVar41 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xae62c428)) ^ uVar33) ^ uVar41 ^
       uVar31;
  *(ulonglong *)(uVar39 ^ *(ulonglong *)(lVar4 + -0xac0)) =
       CONCAT44(uVar6,uVar32) ^ 0x7cbb4eb4966e0832;
  lVar5 = DAT_182671c40;
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x8d8) + 8 +
            ((CONCAT44(uVar13,uVar12) ^ 0x71c6fcd4d8eeb82d) * 0x15 +
            (CONCAT44(uVar7,uVar8) ^ 0xa5b174482db8eedc)) * 8);
  uVar23 = CONCAT44(uVar16,DAT_182671c84);
  *(ulonglong *)(DAT_182671c40 + -0x140) =
       (ulonglong)puVar26 ^ CONCAT44(DAT_182671d80,DAT_182671d80);
  *(ulonglong *)(lVar5 + -0x8d8) = uVar23 ^ 0xebae0d74c8a215ec;
  uVar33 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *(ulonglong *)(lVar5 + -0x2b0) = *puVar26 ^ uVar33 ^ uVar31;
  *(undefined8 *)(uVar37 ^ *(ulonglong *)(lVar5 + -0x2e8)) = 0xd8ecfa57fb7ae097;
  *(ulonglong *)(lVar5 + -0xc18) =
       (uVar30 ^ *(ulonglong *)(lVar5 + -0xc90)) -
       (*(ulonglong *)(lVar5 - (uVar42 ^ 0x48020492)) ^ uVar41) ^ uVar29;
  uVar23 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(lVar5 + -0xb08) =
       (CONCAT44(uVar9,uVar14) ^ 0x3f2f8d3ad3c797c6) + (uVar33 ^ *(ulonglong *)(lVar5 + -0x2b0)) ^
       uVar23;
  uVar20 = DAT_182671e88;
  lVar4 = DAT_182671c40;
  puVar26 = (ulonglong *)(DAT_182671c40 + -0xd88);
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0x920)) -
       (*(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xae62c948)) ^ uVar23) ^
       CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar9 = DAT_182671e58;
  uVar23 = (CONCAT44(uVar13,uVar14) ^ 0x4fc69aa5645ffada) + (uVar35 ^ *puVar26);
  *(ulonglong *)(lVar4 + -0xc38) = uVar23 ^ CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c8c ^ 0x88099aa0)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x760)) - uVar23 ^ CONCAT44(uVar9,uVar9);
  *(int *)(lVar4 - ((ulonglong)DAT_182671c50 ^ 0xa5b17324)) =
       *(int *)(lVar4 + -0x9dc) - *(int *)(lVar4 - (uVar24 ^ 0x3caaf694));
  uVar6 = DAT_182671d48;
  uVar28 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar30 = (ulonglong)DAT_182671d48;
  uVar23 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c90 ^ 0xbd5ff805)) =
       (uVar45 ^ 0xe8b84bf12db8eec9) + *(longlong *)(lVar4 + -0x110) ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xfc6af62f)) =
       (CONCAT44(uVar11,uVar19) ^ 0x49c5f259f819015c) +
       (CONCAT44(uVar15,uVar10) ^ 0x52447f0ba423f282);
  uVar9 = DAT_182671f6c;
  uVar23 = CONCAT44(DAT_182671f98,DAT_182671f98);
  uVar28 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x5e8)) -
           (*(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0x7c60a864)) ^ uVar34) ^ uVar23;
  *(ulonglong *)(lVar4 + -0xf0) = uVar28;
  uVar29 = *(ulonglong *)(lVar4 - (uVar38 ^ 0xd8eeb435)) ^ CONCAT44(uVar6,uVar6) ^ uVar28 ^ uVar23 ^
           uVar29;
  *puVar2 = uVar29;
  *puVar25 = CONCAT44(uVar9,uVar9) ^ uVar29 >> 0x20 ^ uVar30;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar3 ^ uVar27) * 4) = uVar22;
  return;
}



############ FUN_ 180f84390 size=4321 ############

void FUN_180f84390(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint *puVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte *pbVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint *puVar37;
  ulonglong uVar38;
  uint uVar39;
  
  uVar15 = DAT_182671e38;
  uVar8 = DAT_182671c88;
  uVar7 = DAT_182671c74;
  uVar6 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c88;
  uVar26 = (ulonglong)DAT_182671c74;
  uVar31 = DAT_182671c74 * DAT_182671c64;
  uVar35 = DAT_182671c78 & DAT_182671c88;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar30 ^ 0x141a6136) + (longlong)DAT_182672220);
  uVar13 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar31 ^ 0xb8d08690) + (longlong)DAT_182672220) ^
           DAT_182671c78;
  uVar21 = DAT_182671eec ^ *(uint *)(DAT_182671c40 + -0x94);
  pbVar29 = (byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0xa235ae43));
  uVar24 = (uint)(*pbVar29 ^ (byte)DAT_182671f4c);
  uVar14 = DAT_182671c64 ^ 0x6119e50d;
  DAT_182671c48 = uVar31;
  DAT_182671c6c = uVar35;
  *(uint *)(DAT_182671c40 + -0x94c) = uVar24 ^ DAT_182671e38;
  *(uint *)(lVar3 + -0x1c8) = uVar21 + uVar14 ^ DAT_182671cac;
  uVar9 = DAT_182671d7c;
  *(uint *)(lVar3 - (uVar30 ^ 0x141a6592)) = uVar24 << 0x11 ^ DAT_182671d18;
  uVar24 = DAT_182671c80;
  uVar14 = DAT_182671c60;
  uVar16 = (ulonglong)DAT_182671c60;
  uVar22 = (ulonglong)DAT_182671c80;
  uVar39 = DAT_182671c80 | DAT_182671c60;
  *(int *)(lVar3 + -0x58c) =
       -0x6204c552 << (((byte)uVar9 ^ (byte)*(undefined4 *)(lVar3 + -0x644)) & 0x1f);
  uVar25 = DAT_182671dc8;
  lVar4 = DAT_182671c40;
  uVar17 = (ulonglong)uVar6;
  uVar33 = (*(uint *)(lVar3 - (uVar22 ^ 0x36e7096d)) ^ DAT_182671cac) -
           (*(uint *)(lVar3 - ((ulonglong)uVar14 ^ 0x100865b6)) ^ DAT_182671d18) ^ DAT_182671f1c;
  DAT_182671c84 = uVar39;
  *(uint *)(lVar3 + -0x444) = uVar33;
  uVar33 = uVar33 ^ DAT_182671f1c;
  *(longlong *)(lVar4 + -0x380) = *(longlong *)(lVar4 + -0x7c0) << (((byte)uVar6 ^ 1) & 0x3f);
  uVar21 = DAT_182671c78;
  lVar5 = DAT_182671c40;
  *(uint *)(lVar3 - (uVar16 ^ 0x1008669e)) =
       (*(uint *)(lVar4 - (uVar22 ^ 0x36e70231)) ^ uVar25) * uVar33 ^ DAT_182671dfc;
  uVar18 = CONCAT44(uVar6,uVar39);
  *(ulonglong *)(lVar3 + -0x628) =
       (CONCAT44(uVar31,uVar24) ^ 0xe352d6f681cd2448) + (uVar18 ^ 0x4a9ffb958df9db19);
  uVar33 = DAT_182671dd8;
  uVar28 = (ulonglong)uVar21;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0x141a68e2)) =
       (*(uint *)(lVar3 + -0x94c) ^ uVar15) * (uVar21 ^ 0x652b2b7b) ^ DAT_182671dd8;
  uVar10 = DAT_182671fa4;
  uVar15 = DAT_182671d60;
  lVar3 = DAT_182671c40;
  puVar37 = (uint *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0xa235a940));
  *puVar37 = (*(uint *)(DAT_182671c40 - ((ulonglong)uVar21 ^ 0x652b2ce1)) ^ DAT_182671dfc) +
             (uVar33 ^ *(uint *)(DAT_182671c40 + -0x9dc)) ^ DAT_182671d60;
  *(uint *)(lVar5 - (uVar17 ^ 0xfd5bf127)) =
       (*(uint *)(lVar3 + -0x6c0) ^ uVar15) << (((byte)uVar35 ^ 0x29) & 0x1f) ^ uVar10;
  uVar33 = (*(uint *)(lVar5 + -0x6c0) ^ uVar15) >> (((byte)uVar8 ^ 0x2d) & 0x1f) ^ DAT_182671f2c;
  *(uint *)(lVar5 + -0x54) = uVar33;
  *(uint *)(lVar5 + -0xae4) =
       (uVar33 ^ DAT_182671f2c | uVar10 ^ *(uint *)(lVar5 + -0x634)) ^ DAT_182671e64;
  uVar27 = DAT_182671e1c;
  *(ulonglong *)(lVar5 + -0x510) =
       *(ulonglong *)(lVar5 - (uVar16 ^ 0x10086992)) | *(ulonglong *)(lVar5 + -0x5e8);
  *(uint *)(lVar5 + -0x684) =
       (DAT_182671dd4 ^ *(uint *)(lVar5 + -0x5d4)) + (uVar25 ^ *(uint *)(lVar5 + -0xa94)) ^
       DAT_182671db8;
  *(longlong *)(lVar5 - (uVar22 ^ 0x36e703ad)) =
       *(longlong *)(lVar5 + -0x628) << (((byte)uVar8 ^ 0x21) & 0x3f);
  uVar25 = *(uint *)(lVar5 + -0x684) ^ DAT_182671db8 ^ uVar15;
  *(uint *)(lVar5 + -0x76c) = uVar25;
  uVar11 = DAT_182671ea8;
  uVar33 = *(uint *)(lVar5 - ((ulonglong)uVar35 ^ 0x40a2bc0)) ^ DAT_182671cc0 ^ DAT_182671e64;
  uVar23 = (ulonglong)DAT_182671ea8;
  *(uint *)(lVar5 + -0x670) = uVar25 ^ uVar27 ^ uVar15;
  *(uint *)(lVar5 + -0x61c) = uVar33;
  *(ulonglong *)(lVar5 + -0x228) = CONCAT44(uVar39,uVar24) ^ 0xd87fbff9fdff4f3f | 0x9873b4d9edc90b2f
  ;
  uVar15 = DAT_182671cc8;
  *(uint *)(lVar5 + -0x94) = DAT_182671cc8 ^ DAT_182671cc0 ^ uVar33;
  *pbVar29 = *(byte *)(*(ulonglong *)(lVar5 + -0xc20) ^ (ulonglong)DAT_182671dac) ^
             (byte)DAT_182671e0c;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x652b20a5)) =
       (CONCAT44(uVar35,uVar35) ^ 0x40a2124040a2124) * 0x20 +
       (CONCAT44(uVar31,uVar7) ^ 0xb8d08680a235af89) + *(longlong *)(lVar5 + -0x9a8) ^ uVar23;
  uVar32 = DAT_182671f34;
  bVar2 = (byte)DAT_182671d94;
  bVar12 = *(byte *)(uVar23 ^ *(ulonglong *)(lVar5 + -0xbc0)) ^ (byte)DAT_182671d94 ^
           (byte)DAT_182671e0c;
  *(byte *)(lVar5 + -0x1c3) = bVar12;
  *(uint *)(lVar5 + -0x644) = (bVar12 ^ bVar2) ^ uVar32;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0x36e70fc5)) =
       (CONCAT44(uVar8,uVar14) ^ 0x94c14c1599ecf622) - (uVar18 ^ 0x80318d10e54cc7ba);
  lVar3 = DAT_182671c40;
  puVar19 = (uint *)(DAT_182671c40 - (uVar16 ^ 0x1008675e));
  *(uint *)(DAT_182671c40 + -0x58c) =
       (uVar15 ^ *(uint *)(DAT_182671c40 + -0x94)) + (DAT_182671c48 ^ 0x2492949e) ^ DAT_182671e20;
  *(uint *)(lVar3 + -0x1c8) = (*puVar19 ^ uVar32) << 0x11 ^ DAT_182671ce0;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar35 ^ 0x40a21d4)) =
       (CONCAT44(uVar24,uVar21) ^ 0xd91c8adc4d101388) << (((byte)uVar14 ^ 0x1a) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0x110);
  uVar25 = (*(uint *)(DAT_182671c40 - (uVar26 ^ 0xa235aa0c)) ^ DAT_182671e20) -
           (*(uint *)(DAT_182671c40 + -0x1c8) ^ DAT_182671ce0) ^ DAT_182671f9c;
  puVar19 = (uint *)(DAT_182671c40 - (uVar16 ^ 0x1008676a));
  *(uint *)(DAT_182671c40 + -0x4ac) = uVar25;
  uVar15 = DAT_182671ef0;
  uVar34 = (*puVar19 ^ uVar27) * (uVar25 ^ DAT_182671f9c) ^ DAT_182671df8;
  *(uint *)(lVar3 + -0x444) = uVar34;
  uVar10 = DAT_182671de0;
  uVar33 = DAT_182671d24;
  uVar25 = DAT_182671d14;
  uVar34 = uVar34 ^ DAT_182671df8;
  *(ulonglong *)(lVar3 + -0xbd8) = CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar3 + -0x8f0) ^ uVar23
  ;
  uVar15 = (*(uint *)(lVar3 - (uVar17 ^ 0xfd5bf157)) ^ uVar32) * 9;
  *(uint *)(lVar3 + -0x94c) = uVar15 ^ uVar25;
  uVar34 = uVar34 + uVar15;
  bVar20 = (byte)DAT_182671c48 ^ 0x8d;
  *(uint *)(lVar3 + -0x784) = uVar34 ^ uVar33;
  uVar32 = DAT_182671e3c;
  uVar34 = uVar34 << (bVar20 & 0x1f);
  uVar36 = (ulonglong)DAT_182671e3c;
  *(uint *)(lVar3 + -0x9dc) = uVar34 ^ uVar10;
  uVar15 = DAT_182671da8;
  *(uint *)(lVar3 + -0x6c0) =
       (*(uint *)(lVar3 - ((ulonglong)uVar39 ^ 0x36ef6e3b)) ^ uVar33) >> 0x13 ^ DAT_182671dc0;
  *(uint *)(lVar3 + -0x634) = (uVar34 | *puVar37 ^ DAT_182671dc0) ^ uVar32;
  *(uint *)(lVar3 + -0x54) =
       (*(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0x40a2754)) ^ uVar27) +
       (*(uint *)(lVar3 - (uVar30 ^ 0x141a64ea)) ^ DAT_182671dd4) ^ DAT_182671d64;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xa235a4a0)) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0x652b2b95)) ^ uVar23;
  *(uint *)(lVar3 + -0xa94) = *(uint *)(lVar3 + -0x54) ^ DAT_182671e08 ^ DAT_182671d64;
  uVar27 = DAT_182671f44;
  lVar4 = DAT_182671c40;
  uVar33 = uVar15 ^ uVar32 ^ *(uint *)(lVar3 + -0x634);
  *(uint *)(lVar3 + -0x684) = uVar33;
  uVar9 = DAT_182671cdc;
  uVar33 = uVar33 ^ DAT_182671da8;
  *(uint *)(lVar4 + -0xae4) = *(uint *)(lVar4 - (uVar16 ^ 0x10086b8e)) ^ uVar27 ^ DAT_182671e08;
  *(uint *)(lVar4 + -0x76c) = uVar33 ^ uVar25;
  lVar3 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671f68;
  *(ulonglong *)(lVar4 + -0x920) =
       (*(ulonglong *)(lVar4 + -0xc38) ^ CONCAT44(uVar9,uVar9)) -
       (CONCAT44(uVar7,uVar6) ^ 0x409838b3226ee205);
  bVar2 = (byte)DAT_182671f94;
  pbVar29 = (byte *)((CONCAT44(uVar24,uVar24) ^ 0x36e708a536e708a5) * 0x20 +
                     (CONCAT44(uVar14,uVar6) ^ 0x1008611afd5bf707) + *(longlong *)(lVar4 + -0x9a8));
  *(ulonglong *)(lVar4 + -0xbc0) = (ulonglong)pbVar29 ^ uVar23;
  bVar12 = *pbVar29 ^ (byte)DAT_182671e0c;
  uVar15 = DAT_182671c88 ^ 0x88587320;
  *(byte *)(lVar4 + -0x1c3) = bVar12 ^ bVar2;
  *(uint *)(lVar4 + -0x61c) = bVar12 ^ uVar11;
  uVar32 = DAT_182671f58;
  *(uint *)(lVar3 + -0x94) = uVar33 + uVar15 ^ DAT_182671f58;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x141a67be)) =
       (CONCAT44(uVar6,uVar35) ^ 0x72468e7cca303655) >>
       ((byte)*(undefined8 *)(lVar3 + -0xb20) & 0x3f);
  uVar33 = DAT_182671efc;
  uVar10 = DAT_182671ecc;
  uVar25 = DAT_182671c84;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x36ef6c33)) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x36ef6fa3)) ^ uVar11) <<
       (((byte)DAT_182671c74 ^ 0x91) & 0x1f) ^ DAT_182671e8c;
  uVar34 = DAT_182671f98;
  uVar15 = DAT_182671c48;
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(uVar31,uVar25) ^ 0xe1f4f20bb1c572b8) >>
       ((*(byte *)(lVar3 - (uVar28 ^ 0x652b275d)) ^ (byte)uVar9) & 0x3f);
  uVar32 = (uVar32 ^ *(uint *)(lVar3 + -0x94)) - (*(uint *)(lVar3 + -0x58c) ^ DAT_182671e8c);
  *(uint *)(lVar3 + -0x1c8) = uVar32 ^ uVar34;
  uVar25 = DAT_182671cf4;
  *(ulonglong *)(lVar3 + -0xda8) =
       CONCAT44(uVar6,uVar15) ^ CONCAT44(uVar14,uVar24) ^ 0xa4824c60af66feca;
  *(uint *)(lVar3 + -0x4ac) = uVar32 * (uVar27 ^ *(uint *)(lVar3 + -0xae4)) ^ uVar25;
  *(uint *)(lVar3 - (uVar26 ^ 0xa235a9c4)) = (uVar11 ^ *(uint *)(lVar3 + -0x61c)) * 0x14 ^ uVar33;
  uVar15 = (uVar33 ^ *(uint *)(lVar3 + -0x644)) + (uVar25 ^ *(uint *)(lVar3 + -0x4ac));
  uVar25 = uVar15 ^ DAT_182671e50;
  *(ulonglong *)(lVar3 + -0xa08) =
       0xaecd955259abe669 >> ((byte)*(undefined8 *)(lVar3 + -0xc18) & 0x3f);
  *(uint *)(lVar3 + -0x444) = uVar25;
  *(uint *)(lVar3 + -0x94c) = uVar15 * 0x2000 ^ DAT_182671d3c;
  puVar19 = (uint *)(lVar3 - (uVar22 ^ 0x36e70f21));
  *puVar19 = uVar15 >> (((byte)uVar35 ^ 0x37) & 0x1f) ^ uVar10;
  uVar32 = DAT_182671fb0;
  uVar33 = DAT_182671e90;
  lVar4 = DAT_182671c40;
  uVar25 = DAT_182671f18 ^ DAT_182671df0;
  uVar38 = (ulonglong)DAT_182671c7c;
  *(uint *)(lVar3 + -0x9dc) =
       (*(uint *)(lVar3 + -0x94c) ^ DAT_182671d3c | *(uint *)(lVar3 + -0x784) ^ uVar10) ^
       DAT_182671e20;
  uVar15 = (*(uint *)(lVar3 - (uVar26 ^ 0xa235a564)) ^ uVar27) +
           (DAT_182671dd4 ^ *(uint *)(lVar3 + -0x5d4)) ^ DAT_182671df0;
  *(uint *)(lVar3 + -0x6c0) = uVar15;
  uVar25 = uVar25 ^ uVar15;
  uVar15 = uVar33 ^ uVar25 ^ DAT_182671f18;
  *(uint *)(lVar3 + -0x670) = uVar25;
  *(uint *)(lVar3 + -0x54) =
       *(uint *)(lVar3 - (uVar28 ^ 0x652b22b9)) ^ DAT_182671dbc ^ DAT_182671e20;
  *(uint *)(lVar3 - (uVar38 ^ 0x3e611c20)) = uVar15;
  uVar15 = DAT_182671ddc;
  *(uint *)(lVar4 + -0xa94) = *(uint *)(lVar3 + -0x54) ^ DAT_182671ddc ^ DAT_182671dbc;
  bVar2 = (byte)DAT_182671e9c;
  pbVar29 = (byte *)((CONCAT44(uVar39,uVar7) ^ 0x36ef69bfa235af9f) +
                     (CONCAT44(uVar35,uVar8) ^ 0x40a2124141a613e) * 0x20 +
                    *(longlong *)(lVar4 + -0x9a8));
  *(ulonglong *)(lVar4 + -0x5a0) = (ulonglong)pbVar29 ^ uVar36;
  bVar12 = (byte)DAT_182671e0c;
  *(byte *)(lVar4 + -0x1c3) = *pbVar29 ^ (byte)DAT_182671e0c ^ bVar2;
  uVar25 = DAT_182671e68;
  *(uint *)(lVar4 - (uVar26 ^ 0xa235a904)) =
       (*(byte *)(lVar4 - (uVar16 ^ 0x100860d9)) ^ bVar2) ^ uVar32;
  uVar27 = (uVar15 ^ *(uint *)(lVar4 + -0xa94)) + (DAT_182671c78 ^ 0xf969397b);
  bVar2 = (byte)DAT_182671c48;
  *(uint *)(lVar4 + -0x76c) = uVar27 ^ DAT_182671d00;
  *(ulonglong *)(lVar4 + -0xa70) =
       (CONCAT44(uVar35,uVar24) ^ 0x871d0075b83d238d) - *(longlong *)(lVar4 + -0x628);
  uVar15 = (*(uint *)(lVar4 + -0x684) ^ uVar32) << ((bVar2 ^ 0x91) & 0x1f);
  uVar23 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar4 + -0x94) = uVar15 ^ uVar25;
  uVar27 = uVar27 - uVar15;
  uVar23 = *(ulonglong *)(lVar4 - (uVar23 ^ 0xa5f6faac));
  *(uint *)(lVar4 + -0x58c) = uVar27 ^ uVar10;
  uVar15 = DAT_182671c48;
  *(ulonglong *)(lVar4 + -0x408) = uVar23 | 0x51e7ec44f4ffbab4;
  *(uint *)(lVar4 + -0x1c8) = uVar27 * (uVar33 ^ *(uint *)(lVar4 + -0x634)) ^ DAT_182671e2c;
  uVar26 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar4 + -0x61c) =
       (*(uint *)(lVar4 + -0x684) ^ uVar32) * (uVar15 ^ 0xb8d0869f) ^ DAT_182671c9c;
  lVar3 = DAT_182671c40;
  uVar24 = (*(uint *)(lVar4 - (uVar30 ^ 0x141a6722)) ^ DAT_182671c9c) +
           (*(uint *)(lVar4 - (uVar26 ^ 0x81e28590)) ^ DAT_182671e2c);
  uVar25 = uVar24 ^ DAT_182671d70;
  *(uint *)(DAT_182671c40 + -0x644) = uVar24 << (bVar20 & 0x1f) ^ DAT_182671d14;
  *(uint *)(lVar3 + -0x4ac) = uVar25;
  uVar25 = uVar24 >> 0x13 ^ DAT_182671d78;
  *(uint *)(lVar3 + -0x444) = uVar25;
  uVar25 = uVar25 ^ DAT_182671d78;
  *(byte *)(lVar3 + -0x1c3) = *(byte *)(*(ulonglong *)(lVar3 + -0x5a0) ^ uVar36) ^ bVar12;
  uVar24 = DAT_182671dd0;
  *(uint *)(lVar3 - (uVar30 ^ 0x141a6872)) =
       (*(uint *)(lVar3 - (uVar30 ^ 0x141a677a)) ^ DAT_182671d14 | uVar25) ^ DAT_182671d68;
  *(longlong *)(lVar3 + -0xa60) = *(longlong *)(lVar3 + -0xbd8) << (((byte)uVar6 ^ 0x22) & 0x3f);
  *puVar19 = (uVar33 ^ *(uint *)(lVar3 + -0x634)) + (DAT_182671dd4 ^ *(uint *)(lVar3 + -0x5d4)) ^
             DAT_182671ee8;
  *(uint *)(lVar3 + -0xae4) = *(uint *)(lVar3 + -0x784) ^ DAT_182671ee8 ^ DAT_182671ef0;
  uVar23 = (ulonglong)DAT_182671c4c;
  *(longlong *)(lVar3 - (uVar38 ^ 0x3e6119cc)) = -0x1d2c8c3ec93639e4 << (((byte)uVar14 ^ 2) & 0x3f);
  *(uint *)(lVar3 - (uVar23 ^ 0xdff3ffae)) =
       *(uint *)(lVar3 + -0x94c) ^ DAT_182671cb0 ^ DAT_182671d68;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x36e702f5)) =
       (CONCAT44(uVar35,uVar8) ^ 0x44140d1d33b16b76) + *(longlong *)(lVar3 + -0x4b8);
  *(uint *)(lVar3 + -0x9dc) = DAT_182671f08 ^ DAT_182671ef0 ^ *(uint *)(lVar3 + -0xae4);
  *(uint *)(lVar3 + -0x670) = uVar24 ^ DAT_182671cb0 ^ *(uint *)(lVar3 + -0x6c0);
  uVar23 = (ulonglong)DAT_182671ec8;
  *(ulonglong *)(lVar3 + -0xd88) =
       *(longlong *)(lVar3 - (uVar17 ^ 0xfd5bf53b)) -
       (CONCAT44(DAT_182671c58,uVar21) ^ 0xfd45f0836381472);
  uVar14 = DAT_182671c50;
  uVar16 = (ulonglong)DAT_182671c50;
  pbVar29 = (byte *)(*(longlong *)(lVar3 - (uVar17 ^ 0xfd5bfebb)) +
                     (CONCAT44(uVar7,uVar21) ^ 0xa235af80652b2b65) * 0x20 +
                    (uVar18 ^ 0xfd5bf71336ef69b5));
  *(ulonglong *)(lVar3 + -0x5a0) = (ulonglong)pbVar29 ^ uVar23;
  bVar2 = (byte)DAT_182671f4c;
  *(uint *)(lVar3 + -0x54) = (uVar15 ^ 0x6aa12654) * 0x4e4b52e7;
  *(byte *)(lVar3 - (uVar30 ^ 0x141a60fd)) = *pbVar29 ^ bVar12 ^ bVar2;
  *(ulonglong *)(lVar3 + -0x2b0) =
       *(ulonglong *)(lVar3 + -0x5e8) >> ((byte)*(undefined8 *)(lVar3 + -0x7e8) & 0x3f);
  *(uint *)(lVar3 - (uVar26 ^ 0x81e28ecc)) =
       (*(byte *)(lVar3 - (uVar16 ^ 0xd74ac6b7)) ^ bVar2) ^ DAT_182671df4;
  uVar23 = CONCAT44(DAT_182671c70,uVar14);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xd74ace14)) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x7de1c1c0)) -
       (CONCAT44(uVar31,DAT_182671c5c) ^ 0xdd80c1457e823268);
  *(uint *)(lVar3 + -0x76c) =
       (uVar24 ^ *(uint *)(lVar3 + -0x670)) + (DAT_182671c84 ^ 0xaaad7ba1) ^ DAT_182671f10;
  *(ulonglong *)(lVar3 + -0xa78) = (uVar23 ^ 0x92c231dcf30a0273) - *(longlong *)(lVar3 + -0x920);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar35;
  return;
}



############ FUN_ 180fd38b0 size=5417 ############

void FUN_180fd38b0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  byte bVar16;
  uint uVar17;
  byte *pbVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong *puVar57;
  uint uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong *puVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  byte local_170;
  byte local_160;
  byte local_140;
  byte local_108;
  
  uVar10 = DAT_182671c80;
  uVar9 = DAT_182671c74;
  uVar8 = DAT_182671c70;
  uVar7 = DAT_182671c6c;
  uVar6 = DAT_182671c68;
  uVar5 = DAT_182671c5c;
  uVar4 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar62 = (ulonglong)DAT_182671c80;
  uVar22 = (ulonglong)DAT_182671c5c;
  uVar27 = (ulonglong)DAT_182671c68;
  uVar49 = (ulonglong)DAT_182671c74;
  uVar38 = (ulonglong)DAT_182671c6c;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182672018);
  uVar45 = (ulonglong)DAT_182671c70;
  uVar25 = (ulonglong)DAT_182671c48;
  uVar58 = DAT_182671c80 | DAT_182671c70;
  uVar39 = DAT_182671c5c * DAT_182671c6c;
  uVar46 = DAT_182671c74 | DAT_182671c48;
  uVar30 = DAT_182671c68 << 0x10 | DAT_182671c68 >> 0x10;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_182672018) ^ DAT_182671c80;
  uVar53 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar32 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  bVar34 = (byte)DAT_182671c5c;
  uVar19 = (ulonglong)uVar46;
  DAT_182671c54 = uVar39;
  DAT_182671c78 = uVar46;
  DAT_182671c8c = uVar58;
  DAT_182671c90 = uVar30;
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       (*(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x4b358f3d)) ^ uVar53) >> ((bVar34 ^ 0xb8) & 0x3f)
       ^ uVar32;
  *(ulonglong *)(lVar2 + -0x408) = CONCAT44(uVar39,uVar46) ^ 0xa2d1e7853b618b3e;
  lVar2 = DAT_182671c40;
  bVar24 = (byte)uVar4;
  uVar35 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       (uVar53 ^ *(ulonglong *)(DAT_182671c40 + -0x3d8)) << ((bVar24 ^ 0x4a) & 0x3f) ^ uVar35;
  uVar26 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x3a97ecf6)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x3a97e48e)) ^ uVar35 |
       *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xeede368f)) ^ uVar32) ^ uVar26;
  uVar35 = (ulonglong)DAT_182671e30;
  puVar50 = (ulonglong *)(lVar2 - (uVar38 ^ 0x15310f2f));
  uVar42 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar33 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar32 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar2 + -0xb18) =
       (CONCAT44(DAT_182671d40,DAT_182671d40) ^ *puVar50) -
       (uVar26 ^ *(ulonglong *)(lVar2 + -0x228)) ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x4b3588ed)) =
       uVar32 ^ uVar42 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0x228) ^ *(ulonglong *)(lVar2 + -0xa78);
  puVar20 = (ulonglong *)(lVar2 - ((ulonglong)uVar58 ^ 0xfbf7abe7));
  uVar47 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar2 + -0x3d8) = (*puVar20 >> 0x20 ^ uVar35) >> 0x1a ^ uVar47;
  bVar16 = (byte)uVar10;
  uVar21 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar42 ^ *(ulonglong *)(lVar2 + -0x408)) << ((bVar16 ^ 0x49) & 0x3f) ^ uVar26;
  uVar36 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xefff95ae)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar25 ^ 0x22af15ca)) ^ uVar21) ^ uVar36;
  uVar12 = DAT_182671f6c;
  uVar28 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar2 + -0x920) =
       (uVar47 ^ *(ulonglong *)(lVar2 + -0x3d8) | uVar26 ^ *(ulonglong *)(lVar2 + -0xc18)) ^ uVar28;
  uVar11 = DAT_182671edc;
  uVar54 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x228) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0xa78)) - (*puVar50 ^ uVar28) ^ uVar54;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar47 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar35 = CONCAT44(DAT_182671f98,DAT_182671f98) ^ *(ulonglong *)(lVar2 + -0xb18) ^ uVar26 ^ uVar33
           ^ *(ulonglong *)(lVar2 + -0xc90);
  *(ulonglong *)(lVar2 + -0x408) = uVar35;
  *(ulonglong *)(lVar2 + -0xa50) = (uVar35 ^ uVar26) >> ((bVar16 ^ 0x59) & 0x3f) ^ uVar47;
  uVar43 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x3a97e2c6)) =
       (uVar35 ^ uVar26) << (((byte)uVar9 ^ 0xf4) & 0x3f) ^ uVar43;
  uVar4 = DAT_182671e34;
  uVar11 = DAT_182671d70;
  uVar42 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar51 = uVar47 ^ *(ulonglong *)(lVar2 + -0xa50) | uVar43 ^ *(ulonglong *)(lVar2 + -0xc18);
  uVar26 = (ulonglong)DAT_182671e34;
  uVar52 = uVar51 ^ uVar42;
  *(ulonglong *)(lVar2 + -0x3d8) = uVar52;
  uVar12 = DAT_182671f48;
  uVar47 = CONCAT44(uVar4,uVar4);
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xa78) = (*(ulonglong *)(lVar2 + -0xb18) ^ uVar33) - uVar51 ^ uVar35;
  uVar42 = uVar47 ^ uVar52 ^ uVar42 ^ uVar54 ^ *(ulonglong *)(lVar2 + -0x228);
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xc90) = uVar42;
  uVar11 = DAT_182671dd4;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x408) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xefff936e)) >> 0x20 ^ uVar26) >> 0xe ^ uVar33;
  local_108 = (byte)uVar58;
  uVar59 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar49 ^ 0xef5991c6)) =
       (uVar47 ^ uVar42) << ((local_108 ^ 0xfd) & 0x3f) ^ uVar59;
  uVar63 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar3 + -0xa50) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0xefff93e6)) ^ uVar59 |
       uVar33 ^ *(ulonglong *)(lVar3 + -0x408)) ^ uVar63;
  uVar46 = DAT_182671c7c;
  lVar2 = DAT_182671c40;
  puVar50 = (ulonglong *)(lVar3 - (uVar22 ^ 0x4db1f6c8));
  uVar33 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar37 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 - (uVar45 ^ 0x4b3587fd)) =
       (uVar54 ^ *(ulonglong *)(lVar3 + -0x228)) - (uVar63 ^ *puVar50) ^ uVar33;
  uVar11 = DAT_182671e2c;
  uVar42 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  uVar47 = uVar42 ^ uVar35 ^ uVar28 ^ *(ulonglong *)(lVar3 + -0xa78) ^
           *(ulonglong *)(lVar3 + -0x920);
  *(ulonglong *)(lVar3 + -0x3d8) = uVar47;
  uVar52 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xc90) = (uVar47 ^ uVar42) >> (((byte)uVar8 ^ 0xe9) & 0x3f) ^ uVar52;
  uVar11 = DAT_182671d44;
  uVar4 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671c88;
  uVar40 = uVar46 - DAT_182671c88;
  DAT_182671c64 = uVar40;
  *(ulonglong *)(lVar2 + -0x408) =
       (CONCAT44(uVar40,uVar46) ^ 0xee73d8ce52b53b6) + (uVar59 ^ *(ulonglong *)(lVar2 + -0xc18));
  uVar26 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x228) = (uVar47 ^ uVar42) << ((byte)uVar40 & 0x3f) ^ uVar26;
  *(uint *)(lVar3 + -0x9dc) = (uVar40 ^ 0xfb2aa98f) + (uVar46 ^ 0x27d469c7);
  puVar44 = (ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x31160c2f));
  uVar42 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  uVar26 = *(ulonglong *)(lVar3 - ((ulonglong)uVar46 ^ 0x278675eb)) ^ uVar52 | uVar26 ^ *puVar44;
  *(ulonglong *)(lVar3 + -0x920) = uVar26 ^ uVar42;
  puVar23 = (ulonglong *)(lVar3 - (uVar19 ^ 0xefff9586));
  uVar29 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar3 + -0x408) = (*puVar23 ^ uVar35) - uVar26 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x3d8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar40 ^ 0xf6706254)) ^ uVar42 |
       *(ulonglong *)(lVar3 - ((ulonglong)uVar46 ^ 0x27867563)) ^ uVar59;
  uVar12 = DAT_182671eec;
  local_170 = (byte)uVar7;
  uVar35 = *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x31160727)) ^ uVar42 ^ uVar33 ^
           *(ulonglong *)(lVar3 + -0xb18);
  *(ulonglong *)(lVar3 + -0xc90) = uVar35 ^ uVar63;
  uVar11 = DAT_182671ecc;
  uVar4 = DAT_182671c58;
  uVar47 = CONCAT44(uVar12,uVar12);
  uVar26 = (ulonglong)DAT_182671c58;
  *puVar44 = uVar35 >> ((local_170 ^ 0x16) & 0x3f) ^ uVar47;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar35 = (uVar63 ^ *(ulonglong *)(lVar3 + -0xc90)) << 0x27;
  *(ulonglong *)(lVar3 + -0xa78) = uVar35 ^ uVar31;
  uVar7 = DAT_182671c84;
  uVar42 = (ulonglong)DAT_182671c84;
  uVar41 = uVar4 ^ DAT_182671c84;
  uVar51 = CONCAT44(DAT_182671c98,DAT_182671c98);
  puVar44 = (ulonglong *)(lVar3 - (uVar26 ^ 0x2f4e6b27));
  DAT_182671c60 = uVar41;
  *puVar44 = (uVar47 ^ *(ulonglong *)(lVar3 + -0x228) | uVar35) ^ uVar51;
  uVar12 = DAT_182671e54;
  uVar35 = (uVar33 ^ *(ulonglong *)(lVar3 + -0xb18)) -
           (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x38e014f1)) ^ uVar52);
  *(ulonglong *)(lVar3 + -0xc18) = uVar35 ^ CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar13 = DAT_182671e74;
  uVar11 = DAT_182671e28;
  uVar55 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x920) = uVar35 - (uVar51 ^ *(ulonglong *)(lVar3 + -0x3d8)) ^ uVar55;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xc90) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar41 ^ 0x17ae78e6)) ^ CONCAT44(uVar13,uVar13)) +
       (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar53) ^ uVar33;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x2f4e6287)) =
       (CONCAT44(uVar4,uVar41) ^ 0x5f3de3a4fe0c127b) <<
       (((byte)uVar12 ^ *(byte *)(lVar3 + -0x920)) & 0x3f);
  uVar14 = DAT_182671dd8;
  uVar60 = CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar35 = (ulonglong)DAT_182671dd8;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0x38e01b51)) =
       (uVar51 ^ *(ulonglong *)(DAT_182671c40 + -0x3d8)) -
       (uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0xc90)) ^ uVar60;
  uVar12 = DAT_182671f9c;
  uVar11 = DAT_182671d7c;
  lVar2 = DAT_182671c40;
  uVar51 = CONCAT44(uVar14,uVar14);
  uVar48 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar33 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar53 = uVar51 ^ uVar29 ^ uVar63 ^ *(ulonglong *)(DAT_182671c40 + -0xa50) ^
           *(ulonglong *)(DAT_182671c40 + -0x408);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar53;
  uVar63 = (uVar53 >> 0x20 ^ uVar35) >> 1;
  *(ulonglong *)(lVar2 + -0xc18) = uVar63 ^ uVar48;
  uVar35 = (uVar51 ^ uVar53) << (((byte)uVar4 ^ 0xe0) & 0x3f);
  uVar53 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x960) = uVar35 ^ uVar33;
  uVar13 = DAT_182671e04;
  uVar12 = DAT_182671cb4;
  uVar35 = uVar35 | uVar63;
  *(ulonglong *)(lVar2 + -0xa78) = uVar35 ^ uVar53;
  *(ulonglong *)(lVar2 + -0x3d8) = uVar63 >> (((byte)uVar11 ^ *(byte *)(lVar2 + -0x960)) & 0x3f);
  uVar11 = DAT_182671ca0;
  uVar33 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar40 ^ 0xf6706f7c)) ^ uVar29) -
           (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0xbd8));
  *(ulonglong *)(lVar2 + -0xa50) = uVar33 ^ CONCAT44(uVar13,uVar13);
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x2f4e63e7)) = uVar33 - uVar35 ^ uVar29;
  uVar12 = DAT_182671e14;
  uVar35 = CONCAT44(DAT_182671db0,DAT_182671db0);
  uVar33 = -(*(ulonglong *)(lVar2 + -0x5e8) ^ uVar35) - 7;
  *(ulonglong *)(lVar2 + -0xc18) = uVar33 ^ uVar21;
  uVar11 = DAT_182671df0;
  uVar51 = CONCAT44(uVar12,uVar12);
  uVar33 = (uVar53 ^ *(ulonglong *)(lVar2 + -0xa78)) + uVar33 ^ uVar51;
  *(ulonglong *)(lVar2 + -0x960) = uVar33;
  lVar3 = DAT_182671c40;
  uVar48 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar41 ^ 0x17ae725e)) =
       uVar48 ^ uVar51 ^ uVar55 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0x920);
  uVar11 = DAT_182671dec;
  uVar13 = DAT_182671d90;
  uVar51 = CONCAT44(DAT_182671d90,DAT_182671d90);
  *(ulonglong *)(lVar3 + -0xbd8) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x31160ddf)) ^ uVar48) >> ((bVar34 ^ 0x9d) & 0x3f) ^ uVar51
  ;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x408) =
       (uVar48 ^ *(ulonglong *)(lVar3 + -0x3d8)) << (((byte)uVar41 ^ 0xbd) & 0x3f) ^ uVar33;
  *puVar50 = (CONCAT44(uVar46,uVar40) ^ 0x7c6d8af683f36cf4) + 0x17310d300fd3d72e;
  uVar11 = DAT_182671cc0;
  puVar57 = (ulonglong *)(lVar3 - (uVar26 ^ 0x2f4e6327));
  uVar53 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar33 = *puVar57 ^ uVar51 | uVar33 ^ *(ulonglong *)(lVar3 + -0x408);
  uVar63 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar3 + -0xc18) = uVar33 ^ uVar53;
  uVar56 = (uVar55 ^ *(ulonglong *)(lVar3 + -0x920)) - uVar33 ^ uVar63;
  *(ulonglong *)(lVar3 + -0xa78) = uVar56;
  uVar33 = *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x3a97e5c6)) ^ uVar29 ^ uVar60 ^
           *(ulonglong *)(lVar3 + -0x228);
  uVar51 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar3 + -0x960) = uVar33 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x3d8) = uVar33 >> ((bVar24 ^ 0x4f) & 0x3f) ^ uVar51;
  uVar15 = DAT_182671f28;
  uVar12 = DAT_182671d64;
  uVar33 = uVar33 << (((byte)uVar8 ^ 0xfe) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa50) = uVar33 ^ CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar11 = DAT_182671ca4;
  lVar2 = DAT_182671c40;
  uVar60 = CONCAT44(uVar15,uVar15);
  uVar33 = *(ulonglong *)(lVar3 - (uVar62 ^ 0xb3d72497)) ^ uVar51 | uVar33;
  puVar61 = (ulonglong *)(DAT_182671c40 - (uVar37 ^ 0x27867263));
  pbVar18 = (byte *)(DAT_182671c40 + -0xa50);
  puVar50 = (ulonglong *)(DAT_182671c40 + -0x3d8);
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar33 ^ uVar60;
  *(ulonglong *)(lVar2 + -0x920) = (*puVar50 ^ uVar51) >> (((byte)uVar12 ^ *pbVar18) & 0x3f);
  uVar12 = DAT_182671ce0;
  uVar51 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 + -0x228) = (uVar29 ^ *puVar61) - uVar33 ^ uVar51;
  lVar2 = DAT_182671c40;
  uVar55 = CONCAT44(uVar12,uVar12);
  local_140 = (byte)uVar6;
  *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0xef5994be)) =
       *puVar20 ^ uVar56 ^ uVar55 ^ uVar60 ^ uVar63;
  uVar29 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(ulonglong *)(lVar2 + -0x3d8) =
       (*(ulonglong *)(lVar2 + -0x960) ^ uVar55) >> (local_140 & 0x3f) ^ uVar29;
  uVar11 = DAT_182671ef4;
  uVar33 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  puVar50 = (ulonglong *)(lVar2 - (uVar42 ^ 0x38e01329));
  *puVar50 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0xefff969e)) ^ uVar55) << ((local_170 ^ 0x26) & 0x3f)
             ^ uVar33;
  uVar12 = DAT_182671f08;
  lVar3 = DAT_182671c40;
  uVar42 = CONCAT44(uVar11,uVar11);
  uVar33 = *(ulonglong *)(lVar2 + -0x3d8) ^ uVar29 | uVar33 ^ *(ulonglong *)(lVar2 + -0xa50);
  *(ulonglong *)(lVar2 + -0x920) = uVar33 ^ uVar42;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xb18) = (*(ulonglong *)(lVar2 + -0xa78) ^ uVar63) - uVar33 ^ uVar29;
  uVar11 = DAT_182671d18;
  *(ulonglong *)(lVar2 + -0x408) = *(ulonglong *)(*(ulonglong *)(lVar2 + -0x7a0) ^ uVar21) ^ uVar36;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x960) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar41 ^ 0x17ae7d9e)) ^ *(ulonglong *)(lVar3 + -0x228) ^
       uVar33 ^ uVar51 ^ uVar53;
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x153105d7)) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x2f4e619f)) ^ uVar33) >> ((bVar24 ^ 0x42) & 0x3f) ^ uVar59
  ;
  lVar2 = DAT_182671c40;
  uVar26 = (*(ulonglong *)(DAT_182671c40 + -0x960) ^ uVar33) << (bVar34 & 0x3f);
  pbVar18 = (byte *)(DAT_182671c40 - (uVar37 ^ 0x278672a3));
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar26 ^ uVar43;
  *(ulonglong *)(lVar2 + -0xa78) =
       (*(ulonglong *)(lVar2 + -0xb18) ^ uVar29) << ((*pbVar18 ^ (byte)uVar13) & 0x3f);
  uVar38 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar39 ^ 0x8a7158e0)) =
       (uVar59 ^ *(ulonglong *)(DAT_182671c40 + -0x3d8) | uVar26) ^ uVar38;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0x3116021f)) =
       (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0x408)) - *puVar23;
  *(ulonglong *)(lVar2 + -0x960) =
       (*(ulonglong *)(lVar2 + -0x228) ^ uVar51) - (uVar38 ^ *(ulonglong *)(lVar2 + -0x408)) ^
       uVar54;
  uVar26 = (ulonglong)DAT_182671cd0;
  uVar33 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *(ulonglong *)(lVar2 + -0xbd8) =
       *(ulonglong *)(lVar2 + -0xb18) ^ uVar33 ^ uVar38 ^ uVar29 ^ *(ulonglong *)(lVar2 + -0x408);
  *(ulonglong *)(lVar2 + -0xa50) =
       CONCAT44(uVar40,uVar9) ^ CONCAT44(uVar39,uVar10) ^ 0xc33120b813ee0a1f;
  uVar38 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *puVar44 = (*(ulonglong *)(lVar2 + -0xbd8) >> 0x20 ^ uVar26) >> 0x14 ^ uVar38;
  *(ulonglong *)(lVar2 + -0xa78) = *puVar50 | 0x9d244f55e95e0c2a;
  local_160 = (byte)(uVar6 >> 0x10);
  *(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x4b3580fd)) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xefff9426)) ^ uVar33) << ((local_160 ^ 0xd2) & 0x3f) ^
       uVar48;
  uVar11 = DAT_182671e84;
  lVar2 = DAT_182671c40;
  puVar50 = (ulonglong *)(DAT_182671c40 + -0xc18);
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (*(ulonglong *)(DAT_182671c40 + -0x3d8) ^ uVar38) << ((bVar16 ^ 0x49) & 0x3f);
  uVar19 = *(ulonglong *)(lVar2 + -0x3d8) ^ uVar38 | uVar48 ^ *puVar50;
  *(ulonglong *)(lVar2 + -0x408) = uVar19 ^ CONCAT44(uVar11,uVar11);
  uVar26 = (ulonglong)DAT_182671d68;
  uVar21 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x22af1812)) = (*puVar61 ^ uVar29) - uVar19 ^ uVar35;
  uVar42 = uVar54 ^ *(ulonglong *)(lVar2 + -0x960) ^ *(ulonglong *)(lVar2 + -0x920) ^ uVar21 ^
           uVar42;
  uVar38 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar2 + -0xa50) = uVar42;
  uVar11 = DAT_182671dbc;
  uVar19 = (uVar42 >> 0x20 ^ uVar26) >> 0x19;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar19 ^ uVar38;
  *(ulonglong *)(lVar2 + -0x228) = (uVar21 ^ uVar42) << (((byte)uVar41 ^ 0x81) & 0x3f) ^ uVar28;
  uVar19 = *(ulonglong *)(lVar2 - (uVar25 ^ 0x22af1042)) ^ uVar28 | uVar19;
  *(ulonglong *)(lVar2 + -0x3d8) = uVar19 ^ uVar47;
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar54 ^ *(ulonglong *)(lVar2 + -0x960)) - uVar19 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xb18) = CONCAT44(uVar4,uVar58) ^ 0x9ad4cfe7a2b36e1e | uVar19;
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x4b3585c5)) =
       uVar35 ^ uVar31 ^ uVar47 ^ uVar19 ^ uVar47 ^ *(ulonglong *)(lVar2 + -0xa78);
  uVar45 = CONCAT44(DAT_182671db8,DAT_182671db8);
  bVar16 = (byte)DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0xa50) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0xeede33b7)) ^ uVar31) >> (((byte)uVar39 ^ 0xe6) & 0x3f) ^
       uVar45;
  uVar11 = DAT_182671d88;
  *puVar57 = (CONCAT44(uVar30,uVar5) ^ 0x4ddc47193a449adc) >> ((bVar16 ^ 0xf2) & 0x3f);
  uVar19 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x920)) << 0x32;
  *(ulonglong *)(lVar2 + -0x228) = uVar19 ^ uVar33;
  uVar19 = *(ulonglong *)(lVar2 - (uVar37 ^ 0x2786732b)) ^ uVar45 | uVar19;
  uVar45 = (uVar35 ^ *(ulonglong *)(lVar2 + -0xa78)) -
           (CONCAT44(DAT_182671e24,DAT_182671e24) ^ *(ulonglong *)(lVar2 + -0xb20));
  *(ulonglong *)(lVar2 + -0x960) = uVar19 ^ uVar32;
  *(ulonglong *)(lVar2 + -0xb18) = uVar45 ^ uVar52;
  *(ulonglong *)(lVar2 + -0x3d8) = uVar45 - uVar19 ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar1 ^ uVar58;
  return;
}



############ FUN_ 180ff4ae0 size=5188 ############

void FUN_180ff4ae0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  uint *puVar21;
  byte bVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_res20;
  byte local_f8;
  byte local_f0;
  byte local_e8;
  byte local_a8;
  
  uVar15 = DAT_182671c90;
  uVar13 = DAT_182671c80;
  uVar11 = DAT_182671c74;
  uVar9 = DAT_182671c5c;
  uVar8 = DAT_182671c58;
  lVar4 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671c74;
  uVar37 = (ulonglong)DAT_182671c58;
  uVar47 = (ulonglong)DAT_182671c5c;
  uVar3 = *(uint *)(&DAT_182613218 + DAT_182672080);
  uVar44 = DAT_182671c54 + DAT_182671c5c;
  uVar25 = (ulonglong)DAT_182671c90;
  uVar27 = DAT_182671c58 ^ DAT_182671c90;
  uVar40 = DAT_182671c74 << 0x10 | DAT_182671c74 >> 0x10;
  uVar32 = DAT_182671c80 << 0x10 | DAT_182671c80 >> 0x10;
  uVar20 = *(uint *)(&DAT_182613220 + DAT_182672080) ^ DAT_182671c74;
  uVar29 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  uVar42 = CONCAT44(DAT_182671e94,DAT_182671e94);
  DAT_182671c50 = uVar27;
  DAT_182671c64 = uVar40;
  DAT_182671c68 = uVar32;
  DAT_182671c7c = uVar44;
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (CONCAT44(DAT_182671d94,DAT_182671d94) ^ *(ulonglong *)(DAT_182671c40 + -0x828)) +
       (uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0x680)) ^ uVar42;
  lVar5 = DAT_182671c40;
  uVar41 = (ulonglong)uVar13;
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0x680);
  uVar34 = (uVar29 ^ *(ulonglong *)(lVar4 + -0x680)) << (((byte)uVar13 ^ 0x66) & 0x3f);
  bVar22 = (byte)uVar15;
  puVar1 = (ulonglong *)(lVar4 + -0xa08);
  *puVar1 = uVar34 ^ CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar16 = DAT_182671db4;
  uVar30 = (uVar29 ^ uVar30) >> ((bVar22 ^ 0xef) & 0x3f);
  uVar35 = (ulonglong)uVar27;
  *(ulonglong *)(lVar5 + -0xa70) = uVar30 ^ CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar29 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x98a3bdfe)) = (uVar30 | uVar34) ^ uVar29;
  uVar7 = DAT_182671c54;
  uVar30 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar39 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar5 + -0xa50) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0x771c26c9)) ^ *(ulonglong *)(lVar5 + -0x5e8) ^
       uVar30 ^ uVar29 ^ uVar42;
  uVar31 = (ulonglong)DAT_182671e9c;
  uVar29 = (ulonglong)uVar44;
  uVar33 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *(ulonglong *)(lVar5 - (uVar39 ^ 0x7b2d73ab)) =
       (*(ulonglong *)(lVar5 - (uVar38 ^ 0x74922e24)) ^ uVar30) +
       (CONCAT44(uVar44,uVar9) ^ 0x61faca70f42e5c44) ^ uVar33;
  *(undefined8 *)(lVar5 - ((ulonglong)uVar9 ^ 0xd0295392)) = 0x980f7881c000000;
  uVar16 = DAT_182671e04;
  lVar4 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar30 = (CONCAT44(DAT_182671ef4,DAT_182671ef4) ^ *(ulonglong *)(lVar5 + -0xb08)) +
           (CONCAT44(uVar27,uVar15) ^ 0xb4c834860040d67);
  *(ulonglong *)(lVar5 + -0x4b8) = uVar30 ^ uVar26;
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x4b56d595)) =
       uVar30 + (uVar33 ^ *(ulonglong *)(lVar4 + -0x8f0)) ^ uVar28;
  uVar36 = CONCAT44(DAT_182671da4,DAT_182671da4);
  local_res20 = (byte)uVar11;
  uVar34 = (ulonglong)uVar40;
  *(ulonglong *)(lVar4 + -0x510) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xefbf973f)) ^ uVar33) << ((local_res20 ^ 0x7a) & 0x3f) ^
       uVar36;
  uVar16 = DAT_182671f90;
  *(ulonglong *)(lVar4 + -0x628) =
       CONCAT44(uVar9,uVar8) ^ 0x4b7a704021810e00 | CONCAT44(uVar9,uVar40) ^ 0x27dd45b0e6468b7d;
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xe7fe7176)) =
       (*(ulonglong *)(lVar4 + -0x8f0) >> 0x20 ^ uVar31) >> 0x12 ^ uVar33;
  uVar16 = DAT_182671e58;
  uVar24 = DAT_182671e34;
  uVar30 = CONCAT44(DAT_182671f04,DAT_182671f04);
  *(ulonglong *)(lVar4 + -0x888) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x30) | *(ulonglong *)(lVar4 + -0x510) ^ uVar36) ^ uVar30;
  lVar4 = DAT_182671c40;
  uVar45 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xefbf93d7)) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0x7b2d73d3)) ^
       *(ulonglong *)(DAT_182671c40 + -0x760) ^ uVar45 ^ uVar30 ^ uVar28;
  uVar6 = DAT_182671c60;
  uVar30 = (CONCAT44(DAT_182671ecc,DAT_182671ecc) ^ *(ulonglong *)(lVar4 + -0x380)) +
           (CONCAT44(uVar8,uVar11) ^ 0xe130639f85c62776);
  *(ulonglong *)(lVar4 + -0x3d8) = uVar30 ^ CONCAT44(uVar24,uVar24);
  uVar33 = (*(ulonglong *)(lVar4 + -0x110) ^ uVar42) + (CONCAT44(uVar44,uVar9) ^ 0x1bbb790d706c276a)
  ;
  uVar31 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar4 + -0xda8) = uVar33 ^ uVar26;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0x7146ece6)) = uVar33 + uVar30 ^ uVar31;
  lVar5 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xd8bf0d7e)) =
       (CONCAT44(uVar24,uVar24) ^ *(ulonglong *)(lVar4 + -0x3d8)) << 0x10 ^ uVar26;
  *(uint *)(lVar4 - (uVar35 ^ 0x771c2d3d)) =
       (uVar7 ^ 0x3329b045) - *(int *)(lVar4 - (uVar34 ^ 0x247472e2));
  puVar2 = (ulonglong *)(lVar5 + -0x2b0);
  uVar30 = (ulonglong)*(ushort *)((lVar5 - ((ulonglong)uVar32 ^ 0x7146e426)) + 6) ^
           (ulonglong)(uVar24 >> 0x10);
  *puVar2 = uVar30 ^ CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar33 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar30 = (*(ulonglong *)(lVar5 - (uVar29 ^ 0x4b56d51d)) ^ uVar26 | uVar30) ^ uVar33;
  uVar42 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar5 + -0x828) = uVar30;
  uVar16 = DAT_182671d70;
  uVar30 = *(ulonglong *)(lVar5 - (uVar34 ^ 0x24747f8a)) ^ uVar42 ^ uVar33 ^ uVar31 ^ uVar30;
  *(ulonglong *)(lVar5 + -0x680) = uVar30;
  uVar36 = CONCAT44(uVar16,uVar16);
  *puVar1 = (uVar42 ^ uVar30) + (*(ulonglong *)(lVar5 + -0x760) ^ uVar28) ^ uVar36;
  uVar16 = DAT_182671e64;
  *(ulonglong *)(lVar5 + -0xa70) =
       (CONCAT44(uVar44,uVar7) ^ 0x3f29e6ddf4ff27ec) +
       (CONCAT44(uVar11,uVar13) ^ 0xf98f0ccd55c2cfde);
  uVar33 = (uVar42 ^ uVar30) << 0x34;
  uVar28 = (uVar42 ^ *(ulonglong *)(lVar5 + -0x680)) >> (((byte)uVar6 ^ 0x9a) & 0x3f);
  uVar30 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar5 + -0x5e8) = uVar33 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0xa50) = uVar28 ^ uVar30;
  *(ulonglong *)(lVar5 + -0x408) = CONCAT44(uVar27,uVar9) ^ 0xebd2cbd7047e60f0 | uVar28;
  uVar19 = DAT_182671fb0;
  uVar6 = DAT_182671c48;
  puVar23 = (ulonglong *)(lVar5 - (uVar29 ^ 0x4b56d9fd));
  uVar43 = (ulonglong)DAT_182671fb0;
  uVar30 = (ulonglong)DAT_182671c48;
  *puVar23 = (uVar28 | uVar33) ^ uVar26;
  uVar24 = DAT_182671de0;
  uVar48 = CONCAT44(uVar19,uVar19);
  uVar33 = (ulonglong)DAT_182671c78;
  uVar28 = (ulonglong)DAT_182671de0;
  *(ulonglong *)(lVar5 + -0x4b8) =
       *(ulonglong *)(lVar5 - (uVar30 ^ 0xdaebf2b6)) ^ *(ulonglong *)(lVar5 + -0xb08) ^ uVar48 ^
       uVar36 ^ uVar26;
  uVar26 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar5 - (uVar33 ^ 0xa0af98bd)) =
       (*(ulonglong *)(lVar5 + -0xb18) ^ uVar31) + (*(ulonglong *)(lVar5 + -0xc18) ^ uVar45) ^
       uVar26;
  uVar17 = DAT_182671f38;
  uVar45 = *(ulonglong *)(lVar5 + -0xc18) ^ uVar45;
  uVar30 = uVar45 << ((local_res20 ^ 0x4d) & 0x3f);
  uVar31 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar45 = uVar45 >> (((byte)DAT_182671c70 ^ 0xec) & 0x3f);
  *(ulonglong *)(lVar5 + -0x8f0) = uVar30 ^ uVar31;
  uVar16 = DAT_182671d68;
  uVar46 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 + -0x510) = uVar45 ^ uVar46;
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - (uVar25 ^ 0xefbf9fff)) = (uVar45 | uVar30) ^ uVar33;
  uVar42 = uVar31 ^ *(ulonglong *)(lVar5 + -0x8f0) | *(ulonglong *)(lVar5 + -0x4b8) ^ uVar48;
  *(ulonglong *)(lVar5 + -0x888) = uVar42;
  uVar17 = DAT_182671eec;
  uVar14 = DAT_182671c88;
  uVar30 = CONCAT44(DAT_182671c88,uVar8);
  uVar45 = CONCAT44(uVar24,uVar24);
  uVar33 = *(ulonglong *)(lVar5 + -0x628) ^ uVar45 ^ uVar33 ^ uVar26 ^ *(ulonglong *)(lVar5 + -0x30)
  ;
  *(ulonglong *)(lVar5 + -0x380) = uVar33;
  *(ulonglong *)(lVar5 + -0x110) =
       uVar30 ^ 0x25beed28a152f0a7 | CONCAT44(uVar32,uVar13) ^ 0xf7bb08a33885124c;
  uVar16 = DAT_182671dc8;
  uVar31 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 + -0xda8) = (uVar36 ^ *puVar1) + (uVar33 ^ uVar45) ^ uVar31;
  lVar4 = DAT_182671c40;
  uVar36 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0x98a3bb96)) ^ uVar45) << ((bVar22 ^ 0xd8) & 0x3f)
       ^ uVar36;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x749226c4)) = uVar42 + 0xd3124d1c553304b1;
  uVar33 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xefbf9827)) =
       (*(ulonglong *)(lVar4 + -0x380) >> 0x20 ^ uVar28) >> 9 ^ uVar33;
  uVar16 = DAT_182671d28;
  uVar12 = DAT_182671c78;
  uVar28 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar30 = (ulonglong)DAT_182671c78;
  uVar33 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xdaebfb66)) ^ uVar36 |
           uVar33 ^ *(ulonglong *)(lVar4 + -0x7e8)) ^ uVar28;
  uVar42 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar4 + -0x828) = uVar33;
  uVar6 = DAT_182671c6c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0x31eb3c7c)) =
       *(ulonglong *)(lVar4 - (uVar30 ^ 0xa0af933d)) ^ uVar42 ^ uVar33 ^ uVar28 ^ uVar31;
  uVar30 = (ulonglong)DAT_182671c70;
  *(longlong *)(lVar4 - (uVar35 ^ 0x771c2da9)) =
       0x7bbdadf6b46b5ab0 << (((byte)uVar16 ^ *(byte *)(lVar4 + -0x760)) & 0x3f);
  uVar24 = DAT_182671c54 ^ 0x7a270ea8;
  uVar45 = CONCAT44(DAT_182671da8,DAT_182671da8);
  *(ulonglong *)(lVar4 + -0x680) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x3b1c3553)) ^ uVar48) +
       (*(ulonglong *)(lVar4 + -0x628) ^ uVar26) ^ uVar45;
  *(uint *)(lVar4 - ((ulonglong)uVar12 ^ 0xa0af9ec1)) =
       uVar24 + *(int *)(lVar4 - (uVar29 ^ 0x4b56d659));
  uVar26 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar4 + -0x408) =
       (uVar48 ^ *(ulonglong *)(lVar4 + -0x4b8)) << (((byte)uVar6 ^ 0x34) & 0x3f) ^ uVar46;
  uVar10 = DAT_182671c70;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xe7fe74ae)) =
       ((ulonglong)(uVar19 >> 0x18) | uVar43 << 8) ^ *(ulonglong *)(lVar4 + -0x4b8) >> 0x18 ^ uVar26
  ;
  uVar16 = DAT_182671dec;
  uVar33 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0xda8);
  uVar26 = (uVar46 ^ *(ulonglong *)(lVar4 + -0x408) | *(ulonglong *)(lVar4 + -0x5e8) ^ uVar26) ^
           uVar33;
  *(ulonglong *)(lVar4 + -0xa50) = uVar26;
  uVar6 = DAT_182671c60;
  lVar5 = DAT_182671c40;
  uVar36 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0xb08) =
       uVar36 ^ uVar26 ^ uVar33 ^ uVar45 ^ *(ulonglong *)(lVar4 + -0x680);
  uVar24 = DAT_182671c6c;
  uVar28 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c48 ^ 0xdaebf3a6)) =
       (uVar30 ^ uVar31) + (uVar36 ^ *puVar23) ^ uVar28;
  uVar36 = uVar36 ^ *(ulonglong *)(lVar5 + -0xb08);
  uVar30 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(lVar5 + -0xc18) = uVar36 << (((byte)uVar24 ^ 0x19) & 0x3f) ^ uVar30;
  uVar16 = DAT_182671e88;
  *(ulonglong *)(lVar5 + -0x510) =
       CONCAT44(uVar14,uVar13) ^ 0xcb797c2914141fd | *(ulonglong *)(lVar5 + -0xa50) ^ uVar33;
  local_f8 = (byte)uVar8;
  uVar36 = uVar36 >> ((local_f8 ^ 0x2d) & 0x3f);
  *(ulonglong *)(lVar5 + -0x8f0) = uVar36 ^ CONCAT44(uVar16,uVar16);
  uVar17 = DAT_182671e74;
  *(ulonglong *)(lVar5 + -0x30) = ((ulonglong)(uVar12 >> 0x17) | uVar41 << 9) ^ 0x7e3e27acd1;
  uVar16 = DAT_182671d40;
  uVar26 = CONCAT44(uVar17,uVar17);
  uVar33 = (*(ulonglong *)(lVar5 - (uVar47 ^ 0xd0295b82)) ^ uVar30 | uVar36) ^ uVar26;
  *(ulonglong *)(lVar5 + -0x110) = uVar33;
  lVar4 = DAT_182671c40;
  uVar36 = CONCAT44(uVar16,uVar16);
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0x760);
  uVar41 = *(ulonglong *)(DAT_182671c40 + -0x680);
  *puVar1 = uVar36 ^ uVar26 ^ uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0xb18) ^ uVar33;
  uVar31 = (uVar42 ^ uVar30) << 0x25;
  uVar33 = CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar30 = (uVar45 ^ uVar41) + (uVar42 ^ *(ulonglong *)(lVar4 + -0x760)) ^ uVar33;
  uVar41 = (uVar42 ^ *(ulonglong *)(lVar4 + -0x760)) >> (((byte)uVar13 ^ 0x5d) & 0x3f);
  *puVar2 = uVar30;
  uVar16 = DAT_182671cec;
  *(ulonglong *)(lVar4 + -0x888) = uVar31 ^ CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar17 = DAT_182671f10;
  *(ulonglong *)(lVar4 + -0x380) = uVar41 ^ CONCAT44(uVar16,uVar16);
  lVar4 = DAT_182671c40;
  uVar26 = CONCAT44(uVar17,uVar17);
  puVar21 = (uint *)(DAT_182671c40 - (uVar39 ^ 0x7b2d7cdf));
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = (uVar41 | uVar31) ^ uVar26;
  uVar17 = DAT_182671f84;
  *(uint *)(lVar4 + -0x61c) = *puVar21 | 0x6ea349f8;
  uVar16 = DAT_182671e90;
  uVar41 = CONCAT44(uVar17,uVar17);
  uVar30 = *(ulonglong *)(lVar4 - (uVar39 ^ 0x7b2d7883)) ^ uVar41 ^ uVar26 ^ uVar33 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x7e8) = uVar30;
  uVar39 = CONCAT44(uVar16,uVar16);
  uVar30 = (CONCAT44(uVar14,uVar6) ^ 0x6b12900778fa7a66) + (uVar30 ^ uVar41);
  *(ulonglong *)(lVar4 + -0x828) = uVar30 ^ uVar39;
  *(ulonglong *)(lVar4 + -0xa70) = CONCAT44(uVar27,uVar8) ^ 0xb7c57ba43223476f;
  uVar17 = DAT_182671e0c;
  uVar6 = DAT_182671c60;
  uVar26 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *(ulonglong *)(lVar4 + -0x628) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0x98a3b30e)) ^ uVar28) +
       (CONCAT44(uVar15,DAT_182671c60) ^ 0x88d9b0452c6e476f) ^ uVar26;
  uVar16 = DAT_182671e08;
  uVar31 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x4b8) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0x4b56d4dd)) ^ uVar26) +
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x771c2ff1)) ^ uVar39) ^ uVar31;
  uVar41 = CONCAT44(uVar16,uVar16);
  local_a8 = (byte)(uVar13 >> 0x10);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c48 ^ 0xdaebfd56)) =
       uVar30 << ((bVar22 ^ 0xd6) & 0x3f) ^ uVar41;
  uVar28 = CONCAT44(DAT_182671e68,DAT_182671e68);
  uVar39 = (uVar39 ^ *(ulonglong *)(lVar4 + -0x828)) >> ((local_a8 ^ 0xd9) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar4 + -0xda8) =
       (CONCAT44(uVar32,uVar13) ^ 0x132c780b50fc37c8) << (((byte)DAT_182671c6c ^ 0xd) & 0x3f);
  *(ulonglong *)(lVar4 + -0x408) = uVar39;
  uVar30 = (*(ulonglong *)(lVar4 - (uVar34 ^ 0x2474709a)) ^ uVar28 |
           uVar41 ^ *(ulonglong *)(lVar4 + -0x5e8)) ^ uVar26;
  uVar29 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar4 + -0xa50) = uVar30;
  *(ulonglong *)(lVar4 + -0x510) =
       uVar29 ^ uVar30 ^ uVar31 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x4b8);
  lVar5 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar37 = (CONCAT44(uVar11,uVar9) ^ 0x545c1cf1caf3a950) + (uVar36 ^ *puVar1);
  uVar41 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar4 + -0xb08) = uVar37 ^ uVar26;
  uVar16 = DAT_182671e5c;
  uVar36 = (ulonglong)DAT_182671c70;
  uVar30 = (CONCAT44(uVar8,DAT_182671c70) ^ 0x36a9144d0270bcb8) + (uVar33 ^ *puVar2);
  *(ulonglong *)(lVar5 + -0x30) = uVar30 ^ uVar41;
  uVar34 = CONCAT44(uVar16,uVar16);
  local_f0 = (byte)uVar44;
  *(ulonglong *)(lVar5 + -0x8f0) = uVar37 + uVar30 ^ uVar34;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c88 ^ 0x3bff37e7)) =
       CONCAT44(uVar40,uVar6) ^ uVar28 ^ uVar39 ^ 0xef89418a5538835f;
  uVar41 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar30 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c78 ^ 0xa0af9f85)) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0xb08)) << ((local_f0 ^ 0xd4) & 0x3f) ^ uVar41;
  uVar16 = DAT_182671ccc;
  uVar33 = (*(ulonglong *)(lVar5 - (uVar30 ^ 0x8670abc7)) ^ uVar26) >> (((byte)uVar6 ^ 0x89) & 0x3f)
  ;
  *(ulonglong *)(lVar5 + -0x680) = uVar33 ^ CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar33 = uVar33 | uVar41 ^ *(ulonglong *)(lVar5 + -0x110);
  uVar30 = CONCAT44(uVar16,uVar16);
  uVar26 = uVar33 ^ uVar30;
  uVar41 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar5 + -0x760) = uVar26;
  *(ulonglong *)(lVar5 + -0x888) =
       uVar41 ^ uVar30 ^ uVar34 ^ uVar26 ^ *(ulonglong *)(lVar5 + -0x8f0);
  uVar16 = DAT_182671d14;
  local_e8 = (byte)(uVar11 >> 0x10);
  *(ulonglong *)(lVar5 + -0x380) = uVar33 << (((byte)DAT_182671c6c ^ 0x16) & 0x3f);
  lVar4 = DAT_182671c40;
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c94 ^ 0xf5a9243c)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xefbf9747)) ^ uVar41) +
       (uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0x4b8)) ^ uVar28;
  lVar5 = DAT_182671c40;
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0x888);
  uVar26 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar33 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0x3b1c3963)) ^ uVar41) << 0x2e;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar33 ^ CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar5 + -0xa70) = uVar33 >> ((local_e8 ^ 0x96) & 0x3f);
  uVar41 = (uVar41 ^ uVar30) >> ((local_a8 ^ 0xec) & 0x3f);
  *(ulonglong *)(lVar5 + -0xb18) = uVar41 ^ uVar26;
  uVar26 = (uVar33 | uVar41) ^ uVar31;
  uVar30 = *(ulonglong *)(lVar5 - (uVar38 ^ 0x749227ac));
  *(ulonglong *)(lVar5 + -0x828) = uVar26;
  uVar17 = DAT_182671d6c;
  *(ulonglong *)(lVar5 + -0x628) = uVar30 ^ uVar28 ^ 0xbbe8e8c127c98db9;
  uVar18 = DAT_182671eb0;
  uVar16 = DAT_182671cf8;
  uVar33 = uVar29 ^ *(ulonglong *)(lVar5 + -0x510);
  *(ulonglong *)(lVar5 + -0xda8) =
       CONCAT44(uVar17,uVar17) ^ uVar26 ^ uVar28 ^ uVar31 ^ *(ulonglong *)(lVar5 + -0x3d8);
  *(ulonglong *)(lVar5 + -0x5e8) =
       (CONCAT44(uVar10,uVar15) ^ 0x4222244a6a50a748) >> ((byte)uVar41 & 0x3f);
  uVar30 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar5 + -0xa50) =
       CONCAT44(uVar16,uVar16) ^ (uVar34 ^ *(ulonglong *)(lVar5 + -0x8f0)) + uVar33;
  bVar22 = (byte)DAT_182671c84;
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar30 ^ 0xdaebfdae)) ^ uVar29) <<
            (((byte)uVar7 ^ 0x57) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  *puVar2 = uVar33 >> ((bVar22 ^ 0xdf) & 0x3f) ^ uVar45;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar20 * 4) = uVar3 ^ uVar40;
  return;
}



############ FUN_ 180f47b80 size=5323 ############

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

void FUN_180f47b80(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  longlong *plVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong *puVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  byte local_c0;
  
  uVar12 = DAT_182671e54;
  uVar10 = DAT_182671c8c;
  uVar9 = DAT_182671c88;
  uVar14 = DAT_182671c78;
  uVar7 = DAT_182671c74;
  uVar15 = DAT_182671c68;
  uVar5 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  uVar18 = DAT_182671c5c & 7;
  DAT_182671c84 = DAT_182671c74 * DAT_182671c60;
  if (uVar18 < 4) {
    if (uVar18 < 2) {
      DAT_182671c58 = DAT_182671c70;
      if (uVar18 == 0) {
        DAT_182671c58 = DAT_182671c5c;
      }
    }
    else {
      DAT_182671c58 = DAT_182671c64;
      if (uVar18 < 3) {
        DAT_182671c58 = DAT_182671c6c;
      }
    }
  }
  else if (uVar18 < 6) {
    DAT_182671c58 = DAT_182671c50;
    if (uVar18 < 5) {
      DAT_182671c58 = DAT_182671c80;
    }
  }
  else {
    DAT_182671c58 = DAT_182671c7c;
    if (uVar18 < 7) {
      DAT_182671c58 = DAT_182671c78;
    }
  }
  uVar28 = (ulonglong)DAT_182671c88;
  uVar31 = (ulonglong)DAT_182671c4c;
  uVar24 = (ulonglong)DAT_182671c68;
  uVar40 = DAT_182671c74 & DAT_182671c60;
  uVar30 = DAT_182671c88 + DAT_182671c4c;
  uVar19 = DAT_182671c68 + DAT_182671c8c;
  uVar18 = *(uint *)(&DAT_182613220 + DAT_18267216c);
  uVar35 = *(uint *)(&DAT_182613218 + DAT_18267216c) ^ DAT_182671c60;
  uVar43 = (ulonglong)uVar19;
  DAT_182671c48 = uVar19;
  DAT_182671c54 = uVar40;
  DAT_182671c90 = uVar30;
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       CONCAT44(DAT_182671c74,uVar19) << 0x32 ^ 0x50e8000000000000;
  uVar48 = CONCAT44(DAT_182671f98,DAT_182671f98);
  uVar27 = CONCAT44(DAT_182671d90,DAT_182671d90);
  *(ulonglong *)(lVar3 + -0xb20) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x4fa7dca3)) ^ CONCAT44(uVar12,uVar12)) -
       (*(ulonglong *)(lVar3 + -0x4b8) ^ uVar48) ^ uVar27;
  uVar12 = DAT_182671d2c;
  *(uint *)(lVar3 + -0x634) = uVar14 ^ 0x4029002a | uVar10 ^ 0xcdfc741a;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar25 = CONCAT44(DAT_182671f68,DAT_182671f68);
  puVar1 = (ulonglong *)(lVar3 + -0xa60);
  uVar21 = CONCAT44(DAT_182671d40,DAT_182671d40) ^ uVar25 ^ uVar36 ^ *puVar1 ^
           *(ulonglong *)(lVar3 + -0x30);
  puVar45 = (ulonglong *)(lVar3 + -0x380);
  *(int *)(DAT_182671c40 + -0x644) =
       *(int *)(DAT_182671c40 + -0x9dc) + *(int *)(DAT_182671c40 + -0x784);
  uVar12 = DAT_182671d74;
  *puVar45 = uVar21;
  uVar14 = DAT_182671c50;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar30 ^ 0x8a201da5)) =
       (uVar21 ^ uVar36) >> (((byte)uVar15 ^ 0xb7) & 0x3f) ^ uVar32;
  uVar6 = DAT_182671c70;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0xf69dd344)) =
       (CONCAT44(uVar9,DAT_182671c5c) ^ 0xa904539dc5301951) << (((byte)uVar40 ^ 0x14) & 0x3f);
  uVar12 = DAT_182671d10;
  uVar11 = DAT_182671c94;
  uVar37 = (uVar36 ^ *puVar45) << (((byte)uVar14 ^ 0x5d) & 0x3f);
  uVar21 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar3 + -0x110) = uVar37 ^ CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar8 = DAT_182671c7c;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x23af15ea)) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0xc38) | uVar37) ^ uVar36;
  uVar12 = DAT_182671d18;
  uVar32 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar3 + -0xc18) =
       CONCAT44(uVar19,uVar30) ^ CONCAT44(uVar8,DAT_182671c58) ^ 0xf1b5d3454f0e5a45;
  uVar14 = DAT_182671c64;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar44 = (ulonglong)DAT_182671c84;
  uVar21 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *(ulonglong *)(lVar3 + -0x510) =
       (uVar25 ^ *puVar1) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0x4ea7b493)) ^ uVar36) ^ uVar29;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar14 ^ 0x5c6bbb7e)) =
       *(ulonglong *)(lVar3 - (uVar44 ^ 0x2db8e5f8)) ^ *(ulonglong *)(DAT_182671c40 + -0x680) ^
       uVar21 ^ uVar36 ^ uVar27;
  uVar26 = CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar37 = (*(ulonglong *)(lVar4 + -0xd88) ^ uVar21) << 0x27;
  uVar25 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 + -0x920) =
       (*(ulonglong *)(lVar4 + -0xd88) ^ uVar21) >> (((byte)uVar14 ^ 0xef) & 0x3f) ^ uVar26;
  puVar2 = (ulonglong *)(lVar4 + -0xb18);
  *puVar2 = uVar37 ^ CONCAT44(DAT_182671f90,DAT_182671f90);
  lVar3 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar37 = *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xefff96de)) ^ uVar26 | uVar37;
  uVar21 = CONCAT44(uVar6,DAT_182671c7c);
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar37 ^ uVar38;
  uVar12 = DAT_182671d60;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar10,uVar30) ^ 0xf535031238277b22) + (uVar21 ^ 0xb14189c5e68038bd);
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar21 = (*(ulonglong *)(lVar3 + -0xb20) ^ uVar27) - (uVar36 ^ *(ulonglong *)(lVar3 + -0x888));
  uVar27 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *puVar45 = uVar21 ^ CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar13 = DAT_182671da8;
  uVar12 = DAT_182671d5c;
  *(ulonglong *)(lVar3 + -0xc38) = uVar21 - uVar37 ^ uVar27;
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x590a0286)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0x19793470)) ^
       CONCAT44(uVar13,uVar13)) +
       (CONCAT44(DAT_182671ec8,DAT_182671ec8) ^ *(ulonglong *)(DAT_182671c40 + -0x228)) ^ uVar33;
  uVar12 = DAT_182671f28;
  uVar37 = CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar21 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar3 + -0xc18) =
       (uVar38 ^ *(ulonglong *)(lVar3 + -0x30)) -
       (*(ulonglong *)(lVar3 - (uVar43 ^ 0x533e31d5)) ^ uVar33) ^ uVar37;
  uVar20 = DAT_182671c60;
  uVar38 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x396536a)) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0x4ea7b6ab)) ^ uVar38 ^ *(ulonglong *)(lVar3 + -0x510) ^
       uVar29 ^ uVar48;
  *(ulonglong *)(lVar3 + -0x680) = (uVar38 ^ *puVar1) - (CONCAT44(uVar8,uVar9) ^ 0x22fadfb2d5d8e9af)
  ;
  uVar21 = (uVar38 ^ *puVar1) >> (((byte)uVar40 ^ 0x25) & 0x3f);
  uVar38 = (uVar38 ^ *puVar1) << (((byte)uVar20 ^ 0x99) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar21 ^ CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar13 = DAT_182671eb4;
  *puVar2 = uVar38 ^ CONCAT44(DAT_182671e7c,DAT_182671e7c);
  uVar12 = DAT_182671d84;
  lVar3 = DAT_182671c40;
  uVar41 = CONCAT44(uVar13,uVar13);
  puVar22 = (ulonglong *)(DAT_182671c40 + -0x920);
  plVar16 = (longlong *)(DAT_182671c40 - (uVar32 ^ 0x197933c0));
  *(ulonglong *)(DAT_182671c40 + -0x760) = (uVar38 | uVar21) ^ uVar41;
  *plVar16 = (uVar26 ^ *puVar22) << 0x26;
  uVar13 = DAT_182671ea4;
  lVar4 = DAT_182671c40;
  uVar21 = (*(ulonglong *)(lVar3 + -0x510) ^ uVar29) -
           (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0xb08));
  *puVar45 = uVar21 ^ CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar14 = DAT_182671c50;
  uVar48 = CONCAT44(uVar13,uVar13);
  uVar26 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar4 + -0x30) =
       uVar21 - (*(ulonglong *)(lVar4 - (uVar43 ^ 0x533e37a5)) ^ uVar41) ^ uVar48;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xefff9b46)) =
       (CONCAT44(uVar6,uVar20) ^ 0x31160e07e8518e77) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x23af139a)) ^
       CONCAT44(DAT_182671f18,DAT_182671f18)) ^ uVar26;
  uVar20 = DAT_182671e84;
  puVar49 = (ulonglong *)(lVar4 - ((ulonglong)uVar30 ^ 0x8a201525));
  uVar21 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar42 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x4fa7d13b)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c64 ^ 0x5c6bb196)) ^ uVar41) +
       (*puVar49 ^ uVar26) ^ uVar21;
  puVar46 = (ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xa6f5fae9));
  puVar22 = (ulonglong *)(lVar4 - (uVar42 ^ 0x23af190a));
  *puVar22 = CONCAT44(uVar20,uVar20) ^ uVar21 ^ uVar27 ^ *puVar46 ^ *(ulonglong *)(lVar4 + -0xc38);
  uVar26 = CONCAT44(DAT_182671efc,DAT_182671efc);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x4ea7bf9b)) =
       ((ulonglong)uVar20 << 0x1b | (ulonglong)(uVar20 >> 5)) ^ *puVar1 >> 5 ^ uVar26;
  lVar3 = DAT_182671c40;
  uVar21 = (CONCAT44(uVar20,uVar20) ^ *puVar1) << (((byte)uVar19 ^ 0xfe) & 0x3f);
  *puVar2 = uVar21 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar12 = DAT_182671e58;
  uVar39 = CONCAT44(DAT_182671e28,DAT_182671e28);
  uVar21 = *(ulonglong *)(lVar3 - ((ulonglong)uVar40 ^ 0x168c5d8c)) ^ uVar26 | uVar21;
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xa6f5f051));
  *(ulonglong *)(lVar3 + -0x920) = uVar21 ^ uVar39;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar20 = DAT_182671c78 ^ 0x40365a18;
  uVar38 = (uVar27 ^ *puVar23) - uVar21 ^ uVar29;
  uVar14 = DAT_182671c58 ^ 0x9a6e41a2;
  *(ulonglong *)(lVar3 + -0xb20) = uVar38;
  *(uint *)(lVar3 + -0x634) = uVar14 * uVar20;
  uVar12 = DAT_182671edc;
  uVar27 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar21 = uVar27 ^ uVar48 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x30) ^ *(ulonglong *)(lVar3 + -0xc18)
  ;
  *(ulonglong *)(lVar3 + -0x510) = uVar21;
  uVar41 = CONCAT44(uVar12,uVar12);
  local_c0 = (byte)uVar10;
  *puVar45 = (uVar21 ^ uVar27) >> ((local_c0 ^ 0x2f) & 0x3f) ^ uVar41;
  uVar13 = DAT_182671f14;
  lVar3 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0x30);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c6c ^ 0xb6f6597b)) ^ uVar27) <<
       (((byte)DAT_182671c6c ^ 0x70) & 0x3f) ^ uVar26;
  uVar12 = DAT_182671ed0;
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar26 = *(ulonglong *)(lVar3 - (uVar31 ^ 0x590a0016)) ^ uVar41 |
           *(ulonglong *)(lVar3 - (uVar44 ^ 0x2db8ea60)) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x760) = uVar26 ^ uVar34;
  uVar14 = _DAT_182671cf0;
  uVar41 = CONCAT44(uVar12,uVar12);
  uVar27 = (ulonglong)_DAT_182671cf0;
  *(ulonglong *)(lVar3 + -0x680) = (uVar48 ^ uVar21) - uVar26 ^ uVar41;
  *puVar1 = *(ulonglong *)(lVar3 - (uVar32 ^ 0x19793f80)) ^ CONCAT44(uVar14,uVar14) ^ uVar34 ^
            uVar38 ^ uVar29;
  uVar12 = DAT_182671dac;
  uVar32 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  puVar47 = (ulonglong *)(lVar3 - (uVar42 ^ 0x23af1ee2));
  *puVar2 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c5c ^ 0x19793280)) >> 0x17 ^
            ((ulonglong)(uVar14 >> 0x17) | uVar27 << 9) ^ uVar32;
  uVar13 = DAT_182671f50;
  lVar3 = DAT_182671c40;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *puVar47 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c7c ^ 0xcee9fb98)) ^
             CONCAT44(uVar14,uVar14)) << (((byte)uVar15 ^ 0x92) & 0x3f) ^ uVar21;
  uVar48 = CONCAT44(uVar13,uVar13);
  uVar21 = uVar21 ^ *(ulonglong *)(lVar3 + -0xd88) | uVar32 ^ *puVar2;
  *(ulonglong *)(lVar3 + -0xc38) = uVar21 ^ uVar27;
  lVar4 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671cac;
  uVar38 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar14 = DAT_182671c4c ^ 0xece717bb;
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x4fa7dba3)) =
       (*(ulonglong *)(lVar3 + -0xb20) ^ uVar29) - uVar21 ^ uVar48;
  *(uint *)(lVar4 + -0x784) = uVar14 - (DAT_182671c88 ^ 0x803eacee);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c60 ^ 0x17ae7496)) =
       uVar38 ^ uVar41 ^ *(ulonglong *)(lVar4 + -0x680) ^ uVar39 ^ *(ulonglong *)(lVar4 + -0x920);
  uVar24 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar21 = *(ulonglong *)(lVar4 + -0x510);
  bVar17 = (byte)DAT_182671c5c;
  *puVar45 = (*(ulonglong *)(lVar4 + -0x510) >> 0x20 ^ uVar32) >> 8 ^ uVar24;
  uVar32 = (ulonglong)DAT_182671c6c;
  uVar26 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *puVar49 = (uVar38 ^ uVar21) << ((bVar17 ^ 0xf8) & 0x3f) ^ uVar26;
  uVar13 = DAT_182671d80;
  uVar21 = uVar26 ^ *(ulonglong *)(lVar4 + -0x4b8) | uVar24 ^ *puVar45;
  *(int *)(lVar4 + -0x9dc) = *(int *)(lVar4 - (uVar32 ^ 0xb6f65b07)) + -0x645d0668;
  uVar12 = DAT_182671d0c;
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar32 = uVar21 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x30) = uVar32;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x760) = (uVar41 ^ *(ulonglong *)(lVar4 + -0x680)) - uVar21 ^ uVar26;
  uVar20 = DAT_182671c7c;
  uVar14 = DAT_182671c64;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c7c ^ 0xcee9fae0)) =
       uVar34 ^ uVar48 ^ uVar37 ^ uVar32 ^ *(ulonglong *)(lVar4 + -0xc18);
  uVar32 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0x197931c0)) =
       (*puVar2 ^ uVar37) >> (((byte)uVar19 ^ 0xf1) & 0x3f) ^ uVar32;
  lVar3 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar37 = (*puVar2 ^ uVar37) << (((byte)uVar20 ^ 0xf4) & 0x3f);
  uVar24 = CONCAT44(DAT_182671d14,DAT_182671d14);
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0xc18);
  uVar32 = uVar37 | uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x920);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar37 ^ uVar38;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar32 ^ uVar24;
  uVar12 = DAT_182671df4;
  uVar20 = DAT_182671d04;
  uVar37 = (ulonglong)DAT_182671d04;
  *puVar46 = (uVar48 ^ uVar21) - uVar32 ^ uVar34;
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar20,uVar20);
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar21 = uVar29 ^ uVar26 ^ uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0xc38) ^
           *(ulonglong *)(DAT_182671c40 + -0x760);
  *puVar1 = uVar21;
  *(ulonglong *)(lVar3 + -0xb20) = (uVar21 >> 0x20 ^ uVar37) >> 0x19 ^ uVar32;
  uVar12 = DAT_182671e34;
  uVar37 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *puVar47 = (uVar29 ^ uVar21) << 7 ^ uVar37;
  uVar32 = uVar37 ^ *(ulonglong *)(lVar3 + -0xd88) | uVar32 ^ *(ulonglong *)(lVar3 + -0xb20);
  uVar21 = uVar32 ^ CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar3 + -0x30) = uVar21;
  *(ulonglong *)(lVar3 + -0x920) =
       (uVar38 ^ *(ulonglong *)(lVar3 + -0x510)) >> (((byte)uVar12 ^ (byte)uVar21) & 0x3f);
  *puVar45 = (uVar26 ^ *(ulonglong *)(lVar3 + -0x760)) - uVar32 ^ uVar27;
  uVar6 = DAT_182671c80;
  lVar4 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c80;
  uVar32 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar21 = uVar32 ^ CONCAT44(uVar12,uVar12) ^ uVar34 ^ *(ulonglong *)(lVar3 + -0x680) ^ uVar21;
  uVar38 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(lVar3 + -0xc18) = uVar21;
  uVar26 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar4 + -0xc38) =
       (uVar21 ^ uVar32) >> (((byte)DAT_182671c64 ^ 0xf8) & 0x3f) ^ uVar38;
  uVar29 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *puVar22 = (uVar32 ^ uVar21) << 0x32 ^ uVar29;
  uVar20 = DAT_182671c7c;
  uVar21 = *(ulonglong *)(lVar4 + -0xc38);
  uVar32 = *puVar1;
  uVar41 = (ulonglong)DAT_182671c7c;
  *puVar2 = (CONCAT44(uVar7,uVar6) ^ 0xd6730b91265d8fa0) + 0xca5082f1b24ff7a8;
  uVar12 = DAT_182671e14;
  uVar48 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xcee9fad8)) = (uVar29 ^ uVar32 | uVar38 ^ uVar21) ^ uVar48;
  uVar13 = DAT_182671f2c;
  uVar48 = uVar48 ^ *(ulonglong *)(lVar4 + -0xb20);
  uVar21 = (uVar34 ^ *(ulonglong *)(lVar4 + -0x680)) -
           (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0xbd8));
  *(ulonglong *)(lVar4 + -0xd88) = uVar21 ^ CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar12 = DAT_182671d50;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x760) = uVar21 - uVar48 ^ uVar29;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671e40,DAT_182671e40);
  uVar21 = *(ulonglong *)(lVar4 - ((ulonglong)uVar40 ^ 0x168c5a54));
  *(ulonglong *)(lVar4 + -0x920) = uVar37 << 0x3f;
  *(ulonglong *)(lVar4 + -0x510) =
       (uVar21 ^ CONCAT44(uVar12,uVar12)) + (uVar36 ^ *(ulonglong *)(lVar4 + -0x888)) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x30) =
       uVar48 - (*(ulonglong *)(lVar4 - (uVar28 ^ 0x31160b17)) ^ uVar32) ^
       CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar12 = DAT_182671f20;
  *(ulonglong *)(lVar4 + -0xc18) =
       (CONCAT44(uVar15,uVar10) ^ 0x743ec41202597dd3) -
       (CONCAT44(uVar40,DAT_182671c60) ^ 0x36838119583f7680);
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x533e3bdd)) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0x5c6bb24e)) ^ uVar27 ^ uVar24 ^ *puVar45 ^ uVar21;
  uVar32 = (ulonglong)DAT_182671c6c;
  uVar36 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *(ulonglong *)(lVar3 + -0xc38) =
       (*puVar2 ^ uVar21) >> (((byte)DAT_182671c6c ^ 0x7b) & 0x3f) ^ uVar36;
  lVar3 = DAT_182671c40;
  uVar21 = (*puVar2 ^ uVar21) << (((byte)uVar5 ^ 0xa6) & 0x3f);
  *puVar1 = uVar21 ^ uVar39;
  uVar12 = DAT_182671ef4;
  uVar37 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar21 = uVar21 | *puVar23 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x680) = uVar21 ^ uVar37;
  uVar32 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0xb6f65feb)) ^ uVar27) -
           (*(ulonglong *)(lVar3 + -0x110) ^ uVar33);
  *(ulonglong *)(lVar3 + -0xd88) = uVar32 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e60;
  uVar5 = DAT_182671c5c;
  uVar36 = CONCAT44(uVar14,DAT_182671c5c);
  *(ulonglong *)(lVar3 + -0x920) = CONCAT44(uVar30,uVar20) ^ 0x810a0311a303180 | 0xc3ef4ec8808fce38;
  uVar15 = DAT_182671c6c ^ 0x201ebb14;
  *(ulonglong *)(lVar3 + -0xb20) = uVar32 - uVar21 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e8c;
  *(uint *)(lVar3 + -0x76c) = uVar15 << ((byte)*(undefined4 *)(lVar3 + -0x644) & 0x1f);
  uVar21 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x590a0f8e)) =
       (uVar36 ^ 0xa3944909e686c712) - (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x2b0)) ^
       uVar21;
  uVar13 = DAT_182671ecc;
  uVar12 = DAT_182671e10;
  uVar32 = CONCAT44(DAT_182671d00,DAT_182671d00);
  uVar21 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x8a201d85)) ^ uVar21) +
           (*(ulonglong *)(lVar3 + -0x680) ^ uVar37) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar21;
  uVar36 = CONCAT44(uVar12,uVar12);
  *puVar2 = *(ulonglong *)(lVar3 + -0x760) ^ uVar36 ^ uVar21 ^ uVar32 ^ uVar29;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xefff93c6)) =
       CONCAT44(uVar7,DAT_182671c74) ^ CONCAT44(uVar9,DAT_182671c50) ^ 0x596fa226ffdd2b7c;
  uVar21 = *puVar2;
  *puVar1 = (*puVar2 ^ uVar36) >> ((byte)uVar5 & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *puVar45 = (uVar21 ^ uVar36) << 0x20 ^ uVar24;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar18 ^ uVar40) * 4) = uVar35;
  return;
}



############ FUN_ 181010c10 size=4055 ############

void FUN_181010c10(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  byte bVar5;
  undefined4 uVar6;
  uint uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint *puVar13;
  ulonglong uVar14;
  uint *puVar15;
  ulonglong uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte *pbVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint *puVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  uint *puVar36;
  ulonglong uVar37;
  uint uVar38;
  
  uVar19 = DAT_182671de4;
  uVar4 = DAT_182671c90;
  uVar12 = DAT_182671c7c;
  uVar33 = DAT_182671c60;
  uVar28 = DAT_182671c5c;
  uVar34 = DAT_182671c58;
  uVar3 = DAT_182671c4c;
  lVar1 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c90;
  uVar35 = (ulonglong)DAT_182671c58;
  uVar11 = DAT_182671c90 ^ DAT_182671c58;
  uVar30 = (ulonglong)DAT_182671c4c;
  uVar38 = DAT_182671c60 - DAT_182671c50;
  uVar21 = (ulonglong)DAT_182671c7c;
  uVar17 = *(uint *)(&DAT_182613218 + DAT_1826720d8) ^ DAT_182671c58;
  uVar23 = DAT_182671c4c | DAT_182671c7c;
  uVar24 = DAT_182671c5c << 0x10 | DAT_182671c5c >> 0x10;
  uVar9 = *(uint *)(&DAT_182613220 + DAT_1826720d8) ^ DAT_182671c90;
  uVar10 = DAT_182671d9c ^ *(uint *)(DAT_182671c40 + -0x784);
  DAT_182671c6c = uVar11;
  DAT_182671c78 = uVar23;
  DAT_182671c80 = uVar38;
  DAT_182671c84 = uVar24;
  *(uint *)(DAT_182671c40 + -0x9dc) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0x71c9707e)) ^ DAT_182671e10 |
       DAT_182671de4 ^ *(uint *)(DAT_182671c40 + -0x670)) ^ DAT_182671f34;
  *(uint *)(lVar1 + -0x684) = (DAT_182671dd4 ^ *(uint *)(lVar1 + -0x5d4)) + uVar10 ^ DAT_182671ef8;
  puVar13 = (uint *)(lVar1 - ((ulonglong)uVar28 ^ 0x10084796));
  *(uint *)(lVar1 + -0x54) = *puVar13 ^ DAT_182671e38 ^ DAT_182671ef8;
  lVar2 = DAT_182671c40;
  uVar25 = (ulonglong)uVar23;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(uVar24,uVar12) ^ 0x25c825124a1fcd25) -
       (CONCAT44(uVar33,uVar3) ^ 0x32afd01c91234066);
  uVar33 = DAT_182671c50;
  uVar14 = (ulonglong)uVar38;
  uVar22 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar1 - ((ulonglong)uVar23 ^ 0xfff7f6b2)) =
       *(uint *)(lVar2 - ((ulonglong)uVar23 ^ 0xfff7f622)) ^ DAT_182671d3c ^ DAT_182671f34;
  *(ulonglong *)(lVar1 + -0x5e8) =
       CONCAT44(uVar33,uVar12) ^ CONCAT44(uVar38,uVar34) ^ 0xe6f2794355ce1901;
  uVar32 = DAT_182671e24;
  uVar10 = *(uint *)(lVar1 + -0x94c) ^ DAT_182671cbc ^ DAT_182671d3c;
  *(uint *)(lVar1 + -0x4ac) =
       *(uint *)(lVar1 - ((ulonglong)uVar23 ^ 0xfff7ffaa)) ^ DAT_182671e24 ^ DAT_182671e38;
  bVar5 = (byte)DAT_182671ccc;
  uVar16 = (ulonglong)DAT_182671e60;
  *(uint *)(lVar1 - ((ulonglong)uVar3 ^ 0xdff3f9fa)) = uVar10;
  uVar10 = DAT_182671c5c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar24 ^ 0x41121bc8)) =
       (CONCAT44(DAT_182671c5c,uVar4) ^ 0x100841120c88b506) + *(longlong *)(DAT_182671c40 + -0x9a8)
       ^ uVar16;
  lVar1 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x1c3) =
       *(byte *)(uVar16 ^ *(ulonglong *)(DAT_182671c40 + -0xbc0)) ^ bVar5 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar1 - (uVar30 ^ 0xdff3ff2a)) =
       (*(byte *)(lVar1 - ((ulonglong)uVar11 ^ 0x71c976d1)) ^ bVar5) ^ uVar19;
  uVar18 = *(uint *)(lVar1 + -0x94) ^ DAT_182671cbc;
  *(ulonglong *)(lVar1 + -0x7e8) =
       ((ulonglong)uVar33 << 8 | (ulonglong)((uVar28 & 0xffff) >> 8)) ^ 0x1445938f0e;
  *(uint *)(lVar1 - ((ulonglong)DAT_182671c60 ^ 0x10086496)) =
       uVar18 + (uVar4 ^ 0x90caa71c) ^ DAT_182671f28;
  *(uint *)(lVar1 + -0x6c0) = (*(uint *)(lVar1 + -0x1c8) ^ DAT_182671f6c) + (uVar12 ^ 0xa7071c8c);
  *(uint *)(lVar1 + -0x61c) =
       (*(uint *)(lVar1 + -0x644) ^ uVar19) << (((byte)uVar23 ^ 0xef) & 0x1f) ^ DAT_182671d20;
  *(undefined8 *)(lVar1 - (uVar22 ^ 0x2b5826c)) = 0x1e;
  uVar18 = DAT_182671c5c;
  *(uint *)(lVar1 + -0x444) =
       (*(uint *)(lVar1 + -0x58c) ^ DAT_182671f28) - (*(uint *)(lVar1 + -0x61c) ^ DAT_182671d20) ^
       DAT_182671ea4;
  uVar27 = *(uint *)(lVar1 - ((ulonglong)uVar18 ^ 0x10084556)) ^ DAT_182671ea4;
  uVar28 = *(uint *)(lVar1 - (uVar14 ^ 0xd52dda2));
  *(uint *)(lVar1 + -0x634) = (*(uint *)(lVar1 + -0x644) ^ uVar19) << 2 ^ DAT_182671f84;
  uVar28 = uVar27 * (uVar28 ^ uVar32) ^ DAT_182671f4c;
  *(uint *)(lVar1 + -0xa94) = uVar28;
  uVar19 = DAT_182671d78;
  *(uint *)(lVar1 + -0xae4) =
       (*(uint *)(lVar1 - (uVar14 ^ 0xd52df3a)) ^ DAT_182671f84) + (uVar28 ^ DAT_182671f4c) ^
       DAT_182671d78;
  *(ulonglong *)(lVar1 + -0x960) =
       CONCAT44(uVar34,uVar34) ^ 0x5e137f6c9cc4b7bb | *(ulonglong *)(lVar1 + -0x30);
  uVar28 = DAT_182671c60;
  *(uint *)(lVar1 + -0x76c) =
       (*(uint *)(lVar1 - ((ulonglong)DAT_182671c60 ^ 0x10086bfe)) ^ uVar19) <<
       (((byte)uVar38 ^ 3) & 0x1f) ^ DAT_182671e2c;
  uVar19 = (*(uint *)(lVar1 - (uVar21 ^ 0x3b450476)) ^ uVar19) >> (((byte)uVar4 ^ 0x11) & 0x1f) ^
           DAT_182671d48;
  *(uint *)(lVar1 + -0x670) = uVar19;
  *(uint *)(lVar1 + -0x784) =
       (*(uint *)(lVar1 - (uVar25 ^ 0xfff7f892)) ^ DAT_182671e2c | uVar19 ^ DAT_182671d48) ^
       DAT_182671e28;
  *(uint *)(lVar1 - ((ulonglong)uVar11 ^ 0x71c97196)) =
       (*(uint *)(lVar1 - ((ulonglong)uVar18 ^ 0x100845be)) ^ uVar32) +
       (DAT_182671dd4 ^ *(uint *)(lVar1 + -0x5d4)) ^ DAT_182671ce4;
  bVar5 = (byte)DAT_182671d1c;
  *(uint *)(lVar1 + -0x9dc) = *(uint *)(lVar1 + -0x684) ^ DAT_182671cc8 ^ DAT_182671ce4;
  uVar7 = DAT_182671fa8;
  *(longlong *)(lVar1 - ((ulonglong)uVar24 ^ 0x41121a70)) =
       *(longlong *)(lVar1 - ((ulonglong)uVar11 ^ 0x71c97d62)) + *(longlong *)(lVar1 + -0x3d8);
  *(uint *)(lVar1 + -0x54) =
       *(uint *)(lVar1 - (uVar35 ^ 0x7d41c594)) ^ DAT_182671e68 ^ DAT_182671e28;
  *(longlong *)(lVar1 + -0xb20) =
       *(longlong *)(lVar1 + -0x960) - *(longlong *)(lVar1 - (uVar30 ^ 0xdff3f00e));
  *(longlong *)(lVar1 + -0x760) = *(longlong *)(lVar1 + -0x960) << 0x3a;
  uVar16 = (ulonglong)DAT_182671df8;
  *(uint *)(lVar1 + -0x94c) = *(uint *)(lVar1 + -0x9dc) ^ uVar7 ^ DAT_182671cc8;
  uVar24 = DAT_182671e6c;
  puVar15 = (uint *)(lVar1 - ((ulonglong)uVar28 ^ 0x1008614e));
  *(uint *)(lVar1 + -0x94) = *puVar15 ^ DAT_182671e6c ^ DAT_182671e68;
  *(ulonglong *)(lVar1 + -0xc20) = *(longlong *)(lVar1 + -0x9a8) + 0xfU ^ uVar16;
  uVar19 = DAT_182671e54;
  uVar18 = DAT_182671c74;
  bVar8 = *(byte *)(*(ulonglong *)(lVar1 - (uVar37 ^ 0xc88b922)) ^ uVar16) ^ bVar5 ^
          (byte)DAT_182671e0c;
  *(byte *)(lVar1 + -0x1c3) = bVar8;
  uVar32 = (uint)(bVar8 ^ bVar5);
  *(uint *)(lVar1 + -0x1c8) = uVar32 ^ uVar19;
  uVar28 = *(uint *)(lVar1 - (uVar25 ^ 0xfff7ff6a));
  *(undefined4 *)(lVar1 + -0x58c) = 0xe9a64f9d;
  uVar27 = (uVar28 ^ uVar24) + (uVar11 ^ 0xed8b650c) ^ DAT_182671e8c;
  *(uint *)(lVar1 + -0x6c0) = uVar27;
  uVar28 = DAT_182671c8c;
  uVar27 = uVar27 ^ DAT_182671e8c;
  uVar22 = (ulonglong)DAT_182671c8c;
  uVar29 = DAT_182671c8c | uVar18;
  uVar16 = (ulonglong)uVar29;
  *(uint *)(lVar1 + -0x61c) = uVar32 << (((byte)DAT_182671c8c ^ 9) & 0x1f) ^ DAT_182671f98;
  lVar2 = DAT_182671c40;
  puVar36 = (uint *)(lVar1 - (uVar16 ^ 0xfff5e984));
  DAT_182671c68 = uVar29;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0xa235abc4)) =
       uVar27 - (*puVar36 ^ DAT_182671f98) ^ DAT_182671e04;
  puVar26 = (uint *)(lVar2 - (uVar22 ^ 0x7de1c354));
  *(uint *)(lVar2 - ((ulonglong)uVar18 ^ 0xa235a9c4)) =
       (uVar7 ^ *puVar26) * (*(uint *)(lVar2 + -0x444) ^ DAT_182671e04) ^ uVar24;
  uVar27 = DAT_182671ecc;
  uVar32 = DAT_182671e0c;
  uVar19 = (*(uint *)(lVar2 + -0x1c8) ^ uVar19) * (DAT_182671c68 ^ 0xfff5ef97) ^ DAT_182671cc0;
  *(uint *)(lVar2 + -0xa94) = uVar19;
  uVar19 = (uVar19 ^ DAT_182671cc0) + (*(uint *)(lVar2 + -0x644) ^ uVar24);
  *(ulonglong *)(lVar2 + -0xc38) =
       (CONCAT44(uVar29,uVar18) ^ 0xfca35a1e8eb64820) >> (((byte)uVar18 ^ 0xa9) & 0x3f);
  *(uint *)(lVar2 + -0x634) = uVar19 ^ uVar27;
  uVar24 = DAT_182671e14;
  *(uint *)(lVar2 + -0x76c) = uVar19 * 0x2000 ^ DAT_182671cb8;
  *(uint *)(lVar2 + -0xae4) = (uVar28 ^ 0x1cc70c25) * 0x5dee0bf0;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x5a0) ^ (ulonglong)DAT_182671ef4) ^ (byte)uVar32;
  uVar19 = DAT_182671d48;
  *(uint *)(lVar2 - (uVar16 ^ 0xfff5e9e8)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar18 ^ 0xa235a9b4)) ^ uVar27) >>
       (((byte)uVar18 ^ 0x93) & 0x1f) ^ DAT_182671d48;
  *(uint *)(lVar2 + -0x4ac) = (DAT_182671c50 ^ 0x4f7b4241) * -0x34353bef;
  uVar27 = DAT_182671dd4 ^ *(uint *)(lVar2 + -0x5d4);
  *(uint *)(lVar2 + -0x684) =
       (uVar19 ^ *(uint *)(lVar2 + -0x670) | *(uint *)(lVar2 + -0x76c) ^ DAT_182671cb8) ^ uVar24;
  *(uint *)(lVar2 + -0x784) = (uVar7 ^ *puVar26) + uVar27 ^ uVar32;
  uVar27 = DAT_182671f44;
  uVar31 = (ulonglong)DAT_182671f00;
  *(uint *)(lVar2 - (uVar14 ^ 0xd52d0d2)) =
       *(uint *)(lVar2 - (uVar21 ^ 0x3b450916)) ^ uVar32 ^ DAT_182671d9c;
  uVar19 = *(uint *)(lVar2 + -0x684) ^ DAT_182671f04;
  *(longlong *)(lVar2 + -0xda8) = *(longlong *)(lVar2 - (uVar16 ^ 0xfff5e6f8)) + 0x639b0a6445169af5;
  uVar16 = (ulonglong)DAT_182671c60;
  *(uint *)(lVar2 + -0x54) = uVar19 ^ uVar24;
  *(uint *)(lVar2 + -0x94) = *(uint *)(lVar2 - (uVar16 ^ 0x100868c6)) ^ uVar27 ^ DAT_182671d9c;
  uVar19 = DAT_182671c84;
  *(uint *)(lVar2 + -0x58c) =
       *(uint *)(lVar2 - ((ulonglong)uVar18 ^ 0xa235afd4)) ^ DAT_182671eb0 ^ DAT_182671f04;
  pbVar20 = (byte *)(*(longlong *)(lVar2 + -0x9a8) + 0x1a +
                    (CONCAT44(uVar4,uVar34) ^ 0xc88b5027d41c210) * 0x20);
  *(ulonglong *)(lVar2 + -0x170) = (ulonglong)pbVar20 ^ uVar31;
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (CONCAT44(uVar28,uVar19) ^ 0x1c30df603b4b4557) -
       (CONCAT44(uVar38,uVar34) ^ 0xdf1198b57ddebc26);
  bVar5 = (byte)DAT_182671ec4;
  uVar34 = DAT_182671e08;
  uVar28 = DAT_182671c5c;
  lVar1 = DAT_182671c40;
  bVar8 = *pbVar20 ^ (byte)DAT_182671ec4 ^ (byte)uVar32;
  *(byte *)(DAT_182671c40 + -0x1c3) = bVar8;
  uVar18 = (uint)(bVar8 ^ bVar5);
  *(uint *)(lVar1 + -0x6c0) = uVar18 ^ uVar34;
  *(uint *)(DAT_182671c40 + -0x61c) =
       (*(uint *)(lVar1 - ((ulonglong)uVar28 ^ 0x1008449e)) ^ DAT_182671eb0) + (uVar19 ^ 0xdd500216)
       ^ DAT_182671d68;
  uVar6 = DAT_182671f24;
  lVar1 = DAT_182671c40;
  uVar28 = uVar18 << (((byte)uVar28 ^ 3) & 0x1f) ^ DAT_182671cd8;
  *(uint *)(DAT_182671c40 + -0x444) = (*puVar13 ^ uVar24) + (uVar19 ^ 0xd45629d3);
  *(uint *)(lVar1 - (uVar37 ^ 0xc88b4ca)) = uVar28;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0xfff7ff0e)) =
       (CONCAT44(uVar33,uVar23) ^ 0x630790240dc45ec2) >>
       ((byte)*(undefined8 *)(lVar1 + -0x30) & 0x3f);
  uVar28 = DAT_182671f84;
  uVar18 = DAT_182671ef0;
  uVar32 = (*puVar36 ^ DAT_182671d68) - (*(uint *)(lVar1 + -0x1c8) ^ DAT_182671cd8) ^ DAT_182671ed4;
  *(uint *)(lVar1 + -0x644) = uVar32;
  uVar33 = DAT_182671d80;
  uVar32 = uVar32 ^ DAT_182671ed4;
  *(ulonglong *)(lVar1 + -0xb08) =
       *(ulonglong *)(CONCAT44(uVar28,uVar28) ^ *(ulonglong *)(lVar1 + -0xd68)) ^
       CONCAT44(uVar6,uVar6);
  uVar19 = DAT_182671fb0;
  *(uint *)(lVar1 + -0xa94) =
       (*(uint *)(lVar1 - (uVar22 ^ 0x7de1ca8c)) ^ uVar27) * uVar32 ^ DAT_182671fb0;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (CONCAT44(uVar10,uVar12) ^ 0x7416d860e32b4c63) + *(longlong *)(lVar1 + -0x888);
  *(uint *)(lVar1 - (uVar22 ^ 0x7de1c0fc)) =
       (*(uint *)(lVar1 + -0x6c0) ^ uVar34) * (DAT_182671c50 ^ 0x2b58816) ^ uVar33;
  *(ulonglong *)(lVar1 - (uVar22 ^ 0x7de1c998)) =
       (CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar1 + -0x8f0)) >> (((byte)uVar4 ^ 0xb) & 0x3f);
  uVar34 = DAT_182671d8c;
  uVar28 = DAT_182671c60;
  uVar10 = (uVar19 ^ *(uint *)(lVar1 + -0xa94)) + (uVar33 ^ *(uint *)(lVar1 + -0xae4));
  *(uint *)(lVar1 + -0x634) = uVar10 ^ DAT_182671d8c;
  uVar33 = (*(uint *)(lVar1 - ((ulonglong)uVar28 ^ 0x1008672e)) ^ uVar34) <<
           (((byte)uVar28 ^ 0x17) & 0x1f);
  uVar28 = uVar33 ^ DAT_182671f88;
  *(uint *)(lVar1 + -0x76c) = uVar10 >> (((byte)uVar11 ^ 1) & 0x1f) ^ DAT_182671dc8;
  *(uint *)(lVar1 + -0x4ac) = uVar28;
  uVar28 = DAT_182671c54;
  uVar34 = (*(uint *)(lVar1 - (uVar35 ^ 0x7d41c57c)) ^ DAT_182671dc8 | uVar33) ^ DAT_182671ee4;
  *(uint *)(lVar1 + -0x670) = uVar34;
  *(uint *)(lVar1 + -0x94c) =
       (*(uint *)(lVar1 - (uVar14 ^ 0xd52d99a)) ^ uVar27) +
       (DAT_182671dd4 ^ *(uint *)(lVar1 + -0x5d4)) ^ uVar18;
  uVar18 = *(uint *)(lVar1 - (uVar30 ^ 0xdff3f022)) ^ DAT_182671d84 ^ uVar18;
  uVar33 = DAT_182671d5c ^ DAT_182671ee4;
  *(uint *)(lVar1 + -0x784) = uVar18;
  *(uint *)(lVar1 + -0x9dc) = uVar33 ^ uVar34;
  uVar33 = DAT_182671c64;
  *puVar15 = DAT_182671e94 ^ DAT_182671d84 ^ uVar18;
  uVar10 = DAT_182671dcc;
  uVar34 = DAT_182671d38;
  uVar12 = uVar28 & uVar33;
  uVar14 = (ulonglong)DAT_182671f10;
  DAT_182671c94 = uVar12;
  *(uint *)(lVar1 + -0x58c) = *(uint *)(lVar1 + -0x9dc) ^ DAT_182671d38 ^ DAT_182671d5c;
  *(ulonglong *)(lVar1 + -0xbc0) =
       (CONCAT44(uVar33,uVar12) ^ 0xfca3464880a2044d) +
       (CONCAT44(uVar12,uVar28) ^ 0x80a2044881e28458) * 0x20 + *(longlong *)(lVar1 + -0x9a8) ^
       uVar14;
  uVar18 = DAT_182671e0c;
  *(uint *)(lVar1 - ((ulonglong)uVar28 ^ 0x81e282dc)) = (uVar33 ^ 0x69f0053) + 0x836b0fad;
  bVar5 = (byte)DAT_182671f54;
  uVar34 = (uVar34 ^ *(uint *)(lVar1 + -0x58c)) + (uVar28 ^ 0x1da09646) ^ DAT_182671cd0;
  *(byte *)(lVar1 + -0x1c3) =
       *(byte *)(uVar14 ^ *(ulonglong *)(lVar1 + -0xbc0)) ^ (byte)DAT_182671f54 ^ (byte)uVar18;
  *(uint *)(lVar1 + -0x444) = (*(byte *)(lVar1 - ((ulonglong)uVar33 ^ 0xfca3478b)) ^ bVar5) ^ uVar10
  ;
  *(uint *)(lVar1 - ((ulonglong)uVar12 ^ 0x80a20254)) = uVar34;
  *(ulonglong *)(lVar1 + -0xa08) = *(ulonglong *)(lVar1 + -0x380) | 0x8fc0189b2198be29;
  *(uint *)(lVar1 - ((ulonglong)uVar28 ^ 0x81e28590)) =
       (*(uint *)(lVar1 + -0x444) ^ uVar10) << (((byte)uVar33 ^ 0x59) & 0x1f) ^ DAT_182671e28;
  *(ulonglong *)(lVar1 + -0x7c0) = *(ulonglong *)(lVar1 + -0x2b0) ^ 0x72aa93d29a991b85;
  *(uint *)(lVar1 - ((ulonglong)uVar33 ^ 0xfca3400c)) =
       (*(uint *)(lVar1 - ((ulonglong)uVar28 ^ 0x81e28244)) ^ DAT_182671cd0) -
       (*(uint *)(lVar1 - ((ulonglong)uVar12 ^ 0x80a20580)) ^ DAT_182671e28) ^ DAT_182671f40;
  uVar28 = DAT_182671c68 ^ 0xfff5ef9d;
  *(uint *)(lVar1 + -0x6c0) =
       (*(uint *)(lVar1 + -0x644) ^ DAT_182671f40) * (*(uint *)(lVar1 + -0x54) ^ DAT_182671e94) ^
       DAT_182671ce0;
  *(uint *)(lVar1 + -0xa94) = (*(uint *)(lVar1 + -0x444) ^ uVar10) * uVar28 ^ DAT_182671f90;
  *(ulonglong *)(lVar1 + -0x680) = *(ulonglong *)(lVar1 + -0xd88) >> (((byte)uVar3 ^ 0x5f) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar17;
  return;
}



############ FUN_ 180fd4de0 size=4632 ############

void FUN_180fd4de0(void)

{
  uint *puVar1;
  uint *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  byte bVar22;
  uint uVar23;
  ulonglong uVar24;
  uint *puVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint *puVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  ulonglong uVar41;
  uint *puVar42;
  
  uVar23 = DAT_182671c94;
  uVar33 = DAT_182671c84;
  uVar13 = DAT_182671c7c;
  uVar37 = DAT_182671c74;
  uVar10 = DAT_182671c68;
  uVar9 = DAT_182671c60;
  lVar6 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c74;
  uVar35 = (ulonglong)DAT_182671c94;
  uVar24 = (ulonglong)DAT_182671c60;
  uVar38 = (ulonglong)DAT_182671c7c;
  uVar30 = DAT_182671c68 | DAT_182671c84;
  uVar39 = DAT_182671c5c | DAT_182671c7c;
  uVar26 = DAT_182671c94 * DAT_182671c60;
  uVar28 = (DAT_182671c74 << 0x10 | DAT_182671c74 & 0xff00) << 8 | DAT_182671c74 >> 8 & 0xff00 |
           DAT_182671c74 >> 0x18;
  uVar40 = *(uint *)(&DAT_182613218 + DAT_18267201c) ^ DAT_182671c5c;
  uVar4 = *(uint *)(&DAT_182613220 + DAT_18267201c);
  uVar41 = (ulonglong)uVar26;
  DAT_182671c4c = uVar39;
  DAT_182671c54 = uVar28;
  DAT_182671c70 = uVar30;
  DAT_182671c88 = uVar26;
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0x9e72b233)) =
       CONCAT44(DAT_182671c94,DAT_182671c60) ^ CONCAT44(DAT_182671c7c,uVar26) ^ 0x79e43af0581afdc6;
  puVar2 = (uint *)(lVar6 + -0x94c);
  uVar15 = (ulonglong)uVar39;
  puVar42 = (uint *)(lVar6 - (uVar15 ^ 0xffbd59ef));
  *puVar2 = (*puVar42 ^ DAT_182671f10 | *(uint *)(lVar6 + -0x6c0) ^ DAT_182671e3c) ^ DAT_182671dd4;
  *(uint *)(lVar6 - ((ulonglong)uVar30 ^ 0x87c7e52c)) =
       (*(uint *)(lVar6 + -0x4ac) ^ DAT_182671e04) + (*(uint *)(lVar6 + -0x5d4) ^ DAT_182671dd4) ^
       DAT_182671e20;
  *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xebb17712)) =
       *(uint *)(lVar6 + -0x9dc) ^ DAT_182671cf4 ^ DAT_182671e20;
  uVar16 = (ulonglong)uVar10;
  puVar29 = (uint *)(lVar6 - (uVar16 ^ 0x100094c));
  *(uint *)(lVar6 + -0x76c) = *puVar29 ^ DAT_182671ef8 ^ DAT_182671dd4;
  uVar14 = DAT_182671db0;
  uVar27 = (ulonglong)DAT_182671d94;
  uVar20 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar6 - (uVar35 ^ 0xfffff9e3)) = (uVar33 ^ 0x936853af) >> (((byte)uVar13 ^ 0x88) & 0x1f)
  ;
  *(uint *)(lVar6 - ((ulonglong)uVar13 ^ 0xff3c550b)) =
       *(uint *)(lVar6 - (uVar20 ^ 0x608d4b98)) ^ uVar14 ^ DAT_182671cf4;
  *(uint *)(lVar6 - (uVar15 ^ 0xffbd5fcb)) =
       *(uint *)(lVar6 + -0x76c) ^ DAT_182671f20 ^ DAT_182671ef8;
  *(ulonglong *)(lVar6 + -0xce8) =
       (CONCAT44(uVar26,uVar9) ^ 0xa6d51f5f592ae0a1) * 0x20 +
       *(longlong *)(lVar6 - (uVar16 ^ 0x10009a8)) + 0x17 ^ uVar27;
  uVar32 = DAT_182671d78;
  uVar20 = (ulonglong)uVar33;
  uVar36 = (ulonglong)DAT_182671d78;
  uVar21 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x87c7e690)) =
       (CONCAT44(uVar37,uVar10) ^ 0xd13f4304eed46d52) +
       (CONCAT44(uVar28,uVar39) ^ 0x1043adfb4a8392ec);
  bVar5 = (byte)DAT_182671ebc;
  lVar6 = DAT_182671c40;
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xbe8);
  *(byte *)(DAT_182671c40 + -0x3d9) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x608d42fc)) ^ uVar27) ^
       (byte)DAT_182671ebc ^ (byte)DAT_182671e0c;
  *(undefined1 *)(*puVar3 ^ uVar36) = 0xba;
  uVar34 = DAT_182671f54;
  lVar7 = DAT_182671c40;
  puVar1 = (uint *)(lVar6 + -0x54);
  uVar18 = *(uint *)(lVar6 + -0x54) ^ DAT_182671f20;
  bVar17 = (byte)uVar39 ^ 0x8e;
  *(uint *)(lVar6 + -0x1c8) = (bVar5 ^ *(byte *)(lVar6 + -0x3d9)) ^ DAT_182671f54;
  uVar31 = DAT_182671ef0;
  *(uint *)(lVar7 + -0x634) = uVar18 + (uVar26 ^ 0x3a970d41) ^ DAT_182671ef0;
  *(ulonglong *)(lVar7 - (uVar41 ^ 0xa6d51777)) =
       CONCAT44(uVar13,uVar30) ^ 0xfbdb7adf7fbbbe7a | 0xba5358db4d333c2a;
  uVar18 = (*(uint *)(lVar7 + -0x1c8) ^ uVar34) << (bVar17 & 0x1f);
  uVar21 = (ulonglong)DAT_182671c5c;
  puVar25 = (uint *)(lVar7 - (uVar35 ^ 0xffffff6b));
  *(uint *)(lVar7 + -0x27c) = uVar18 ^ uVar32;
  uVar32 = DAT_182671d04;
  *puVar25 = (uVar31 ^ *(uint *)(lVar7 + -0x634)) - uVar18 ^ DAT_182671d04;
  *(uint *)(lVar7 - (uVar21 ^ 0x608d44f0)) =
       (uVar32 ^ *(uint *)(lVar7 + -0x94)) * (uVar14 ^ *(uint *)(lVar7 + -0x684)) ^ DAT_182671e34;
  *(ulonglong *)(lVar7 + -0xd88) =
       (CONCAT44(uVar10,uVar37) ^ 0x32dce74a49e042f0) +
       (CONCAT44(uVar28,uVar23) ^ 0x17162a7b5f359846);
  *(uint *)(lVar7 + -0x6c0) =
       (*(uint *)(lVar7 - (uVar20 ^ 0x87c7ed38)) ^ uVar34) * (uVar26 ^ 0xa6d51f48) ^ DAT_182671df0;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0x608d49d4)) =
       CONCAT44(uVar30,uVar9) ^ *(ulonglong *)(DAT_182671c40 + -0xc38) ^ 0x12968e2626086c57;
  uVar37 = DAT_182671d64;
  *(uint *)(lVar6 - (uVar38 ^ 0xff3c55ff)) =
       (*(uint *)(lVar6 + -0x6c0) ^ DAT_182671df0) + (*(uint *)(lVar6 + -0xae4) ^ DAT_182671e34) ^
       DAT_182671d64;
  lVar7 = DAT_182671c40;
  bVar5 = (byte)uVar30;
  uVar34 = (*(uint *)(lVar6 - (uVar24 ^ 0x592ae6d1)) ^ uVar37) << ((bVar5 ^ 0xfd) & 0x1f) ^
           DAT_182671de0;
  *(uint *)(lVar6 + -0x4ac) = uVar34;
  uVar32 = DAT_182671c60;
  uVar34 = uVar34 ^ DAT_182671de0;
  uVar31 = (*puVar42 ^ uVar37) >> (((byte)DAT_182671c60 ^ 0xb2) & 0x1f) ^ DAT_182671e4c;
  *(uint *)(lVar7 + -0x9dc) = uVar31;
  uVar37 = DAT_182671c5c;
  lVar6 = DAT_182671c40;
  uVar31 = (uVar31 ^ DAT_182671e4c | uVar34) ^ DAT_182671e74;
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       CONCAT44(uVar23,DAT_182671c5c) ^ *(ulonglong *)(DAT_182671c40 + -0xa78) ^ 0x834eac89a0685dab;
  *puVar29 = uVar31;
  uVar23 = (*(uint *)(lVar6 + -0x5d4) ^ DAT_182671dd4) + (uVar14 ^ *(uint *)(lVar6 + -0x684)) ^
           DAT_182671fa8;
  *(uint *)(lVar6 + -0x61c) = uVar23;
  *(uint *)(lVar6 - (uVar16 ^ 0x100058c)) = uVar23 ^ DAT_182671f24 ^ DAT_182671fa8;
  *(uint *)(lVar6 + -0x76c) =
       *(uint *)(lVar6 - (uVar35 ^ 0xfffff6b3)) ^ DAT_182671d74 ^ DAT_182671e74;
  uVar23 = DAT_182671f44;
  uVar34 = DAT_182671dd0;
  bVar11 = (byte)DAT_182671d98;
  uVar14 = DAT_182671c7c;
  uVar21 = (ulonglong)DAT_182671dd0;
  bVar22 = (byte)DAT_182671c7c;
  *puVar1 = *(uint *)(lVar6 - (uVar20 ^ 0x87c7e97c)) ^ DAT_182671dd0 ^ DAT_182671f24;
  uVar31 = DAT_182671f64;
  *(uint *)(lVar6 + -0x634) =
       *(uint *)(lVar6 - ((ulonglong)uVar30 ^ 0x87c7eb9c)) ^ DAT_182671f64 ^ DAT_182671d74;
  *(ulonglong *)(lVar6 - (uVar20 ^ 0x87c7e190)) =
       (CONCAT44(uVar28,uVar37) ^ 0xebb1729e608d4e14) * 0x20 +
       (CONCAT44(uVar13,uVar13) ^ 0xff3c538fff3c538d) + *(longlong *)(lVar6 + -0x9a8) ^ uVar21;
  *(byte *)(lVar6 + -0x181) =
       *(byte *)(*(ulonglong *)(lVar6 + -0xd60) ^ uVar21) ^ bVar11 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar6 - (uVar19 ^ 0x9e72b92b)) ^ (ulonglong)DAT_182671dcc) =
       bVar22 ^ 0x6b;
  uVar37 = (uVar31 ^ *(uint *)(lVar6 + -0x634)) + (uVar14 ^ 0x637e4191) ^ DAT_182671d3c;
  *(uint *)(lVar6 + -0x27c) = (bVar11 ^ *(byte *)(lVar6 + -0x181)) ^ uVar23;
  *puVar25 = uVar37;
  *(uint *)(lVar6 + -0x1c8) =
       (*(uint *)(lVar6 + -0x27c) ^ uVar23) << (bVar17 & 0x1f) ^ DAT_182671d70;
  uVar37 = DAT_182671c9c;
  *(uint *)(lVar6 - (uVar20 ^ 0x87c7e614)) = uVar32 ^ 0xc5dfaa40 | uVar32 ^ 0x95ca97c3;
  uVar31 = (*(uint *)(lVar6 - (uVar41 ^ 0xa6d51fcb)) ^ DAT_182671d3c) -
           (*(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xebb17356)) ^ DAT_182671d70) ^ DAT_182671f04;
  *(uint *)(lVar6 + -0x6c0) = uVar31;
  uVar31 = uVar31 ^ DAT_182671f04;
  *(ulonglong *)(lVar6 + -0x2b0) =
       0xb1a243ba5c29da23 >> ((byte)*(undefined8 *)(lVar6 - (uVar15 ^ 0xffbd55e7)) & 0x3f);
  *(uint *)(lVar6 + -0x670) = (*puVar1 ^ uVar34) * uVar31 ^ DAT_182671cb0;
  uVar23 = (*(uint *)(lVar6 + -0x27c) ^ uVar23) * (DAT_182671c68 ^ 0x1000002) ^ DAT_182671e20;
  *(uint *)(lVar6 + -0x4ac) = uVar23;
  uVar23 = (*(uint *)(lVar6 - (uVar41 ^ 0xa6d5192f)) ^ DAT_182671cb0) + (uVar23 ^ DAT_182671e20);
  *(uint *)(lVar6 + -0x9dc) = uVar23 ^ uVar37;
  *(uint *)(lVar6 - (uVar20 ^ 0x87c7ea74)) = uVar23 << ((bVar22 ^ 0x82) & 0x1f) ^ DAT_182671d64;
  uVar23 = DAT_182671c6c;
  uVar8 = DAT_182671c58;
  uVar27 = (ulonglong)DAT_182671c6c;
  uVar15 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar6 - (uVar19 ^ 0x9e72b7f7)) =
       (*(uint *)(lVar6 + -0x9dc) ^ uVar37) >> ((bVar5 ^ 0xe3) & 0x1f) ^ DAT_182671f9c;
  uVar31 = DAT_182671c8c;
  uVar36 = (ulonglong)DAT_182671c8c;
  uVar21 = CONCAT44(DAT_182671c64,uVar8);
  *(uint *)(lVar6 - (uVar41 ^ 0xa6d51613)) =
       (*(uint *)(lVar6 - (uVar15 ^ 0x608d4890)) ^ DAT_182671d64 |
       *(uint *)(lVar6 + -0x61c) ^ DAT_182671f9c) ^ DAT_182671e7c;
  *(ulonglong *)(lVar6 + -0x510) =
       (uVar21 ^ 0x1c26eb95b77b12b9) - (CONCAT44(uVar33,uVar30) ^ 0xd144a4da4a87289b);
  uVar37 = DAT_182671c50;
  uVar15 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar6 - (uVar19 ^ 0x9e72b467)) =
       (*(uint *)(lVar6 - (uVar38 ^ 0xff3c53db)) ^ uVar34) +
       (*(uint *)(lVar6 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671cc4;
  *(uint *)(lVar6 - (uVar27 ^ 0x73cd766c)) =
       *(uint *)(lVar6 + -0x58c) ^ DAT_182671f58 ^ DAT_182671cc4;
  *(ulonglong *)(lVar6 - (uVar16 ^ 0x1000da8)) =
       (CONCAT44(uVar31,uVar37) ^ 0xd1afff1155f9feba) << (((byte)uVar8 ^ 0x2c) & 0x3f);
  uVar18 = DAT_182671d18;
  uVar34 = DAT_182671cb8;
  uVar21 = (ulonglong)DAT_182671e04;
  *(uint *)(lVar6 + -0x634) = *puVar2 ^ DAT_182671db4 ^ DAT_182671e7c;
  *(uint *)(lVar6 + -0xae4) = *(uint *)(lVar6 + -0x76c) ^ uVar18 ^ DAT_182671f58;
  uVar12 = DAT_182671d90;
  *(uint *)(lVar6 + -0x1c8) =
       *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xebb174aa)) ^ DAT_182671d90 ^ DAT_182671db4;
  *(ulonglong *)(lVar6 + -0xb50) =
       (CONCAT44(uVar33,uVar23) ^ 0x87c7ecf073cd7100) * 0x20 +
       (CONCAT44(uVar26,uVar39) ^ 0xa6d51f5fffbd5f92) + *(longlong *)(lVar6 + -0x9a8) ^ uVar21;
  uVar37 = DAT_182671c80;
  uVar27 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x68a08e67)) =
       CONCAT44(uVar39,uVar10) ^ 0x5888205a00044082 | 0x2637df21ecf08e79;
  bVar11 = (byte)DAT_182671d10;
  *(byte *)(lVar6 + -0x341) =
       *(byte *)(*(ulonglong *)(lVar6 + -0xb50) ^ uVar21) ^ (byte)DAT_182671e0c ^
       (byte)DAT_182671d10;
  *(byte *)(*(ulonglong *)(lVar6 - (uVar15 ^ 0x4787a540)) ^ (ulonglong)DAT_182671d38) = bVar5 ^ 0xc5
  ;
  *(uint *)(lVar6 + -0x94) = (bVar11 ^ *(byte *)(lVar6 + -0x341)) ^ uVar34;
  *(uint *)(lVar6 - ((ulonglong)DAT_182671c78 ^ 0x87476e60)) =
       (*(uint *)(lVar6 + -0x1c8) ^ uVar12) + (uVar32 ^ 0xc568f2bf) ^ DAT_182671dc8;
  uVar10 = DAT_182671c90;
  uVar15 = (ulonglong)DAT_182671c90;
  uVar32 = (*(uint *)(lVar6 - ((ulonglong)uVar31 ^ 0x78381384)) ^ uVar34) <<
           (((byte)DAT_182671c94 ^ 0xee) & 0x1f);
  *(uint *)(lVar6 + -0x27c) = uVar32 ^ DAT_182671eb4;
  uVar26 = DAT_182671f94;
  *(uint *)(lVar6 + -0x4ac) =
       (*(uint *)(lVar6 - (uVar24 ^ 0x592ae661)) ^ DAT_182671dc8) - uVar32 ^ DAT_182671efc;
  *(ulonglong *)(lVar6 - (uVar38 ^ 0xff3c5737)) =
       *(ulonglong *)(lVar6 - (uVar15 ^ 0xdc8c8da9)) >> (((byte)uVar23 ^ 0x10) & 0x3f);
  uVar32 = DAT_182671c54 ^ 0xebb17293;
  *(uint *)(lVar6 + -0x670) =
       (*(uint *)(lVar6 + -0x4ac) ^ DAT_182671efc) * (*(uint *)(lVar6 + -0xae4) ^ uVar18) ^
       DAT_182671d7c;
  *(uint *)(lVar6 - (uVar19 ^ 0x9e72b837)) =
       (uVar34 ^ *(uint *)(lVar6 + -0x94)) * uVar32 ^ DAT_182671ed4;
  uVar32 = DAT_182671c48;
  uVar15 = (ulonglong)DAT_182671c5c;
  uVar24 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar6 + -0x684) =
       (*(uint *)(lVar6 - ((ulonglong)DAT_182671c5c ^ 0x608d4864)) ^ DAT_182671d7c) +
       (*(uint *)(lVar6 - (uVar36 ^ 0x78381acc)) ^ DAT_182671ed4) ^ uVar26;
  uVar34 = DAT_182671edc;
  *(ulonglong *)(lVar6 + -0xa70) =
       *(longlong *)(lVar6 + -0x628) - (CONCAT44(uVar30,uVar32) ^ 0xcf64d0a07a308c3e);
  puVar25 = (uint *)(lVar6 - (uVar15 ^ 0x608d4808));
  bVar5 = (byte)DAT_182671c64;
  *(uint *)(lVar6 + -0x61c) =
       (*(uint *)(lVar6 - ((ulonglong)uVar37 ^ 0x68a081c3)) ^ uVar26) <<
       (((byte)uVar32 ^ 0xf2) & 0x1f) ^ uVar34;
  uVar33 = DAT_182671e2c;
  *(uint *)(lVar6 - (uVar27 ^ 0x68a08713)) =
       (uVar26 ^ *(uint *)(lVar6 + -0x684)) >> ((bVar5 ^ 0x84) & 0x1f) ^ DAT_182671e2c;
  uVar23 = DAT_182671dfc;
  *(ulonglong *)(lVar6 + -0x8f0) =
       CONCAT44(DAT_182671f48,DAT_182671f48) ^ CONCAT44(uVar37,uVar31) ^
       *(ulonglong *)(lVar6 + -0xc90) ^ 0xb646e00c93bfcc09;
  *(uint *)(lVar6 + -0x58c) = (uVar33 ^ *puVar1 | uVar34 ^ *puVar25) ^ DAT_182671ca4;
  uVar37 = (*(uint *)(lVar6 - (uVar16 ^ 0x1000ae4)) ^ uVar18) +
           (*(uint *)(lVar6 + -0x5d4) ^ DAT_182671dd4);
  uVar33 = uVar37 ^ DAT_182671cb0;
  *puVar2 = uVar37 ^ uVar23;
  *(longlong *)(lVar6 + -0xb18) = *(longlong *)(lVar6 + -0x2b0) << (((byte)uVar39 ^ 0x89) & 0x3f);
  *(uint *)(lVar6 - (uVar20 ^ 0x87c7eb9c)) = uVar33;
  lVar7 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c6c;
  *(uint *)(lVar6 - (uVar35 ^ 0xfffff9cb)) =
       *(uint *)(lVar6 + -0x58c) ^ DAT_182671e78 ^ DAT_182671ca4;
  uVar23 = DAT_182671e50;
  uVar21 = (ulonglong)DAT_182671f78;
  *(ulonglong *)(lVar6 + -0xa08) =
       *(ulonglong *)(lVar6 - (uVar16 ^ 0x1000030)) ^ *(ulonglong *)(lVar6 + -0xb18);
  *(uint *)(lVar6 + -0x1c8) = *(uint *)(lVar6 + -0x76c) ^ DAT_182671ee0 ^ DAT_182671cb0;
  *(uint *)(lVar6 + -0x6c0) = *(uint *)(lVar6 - (uVar41 ^ 0xa6d5196b)) ^ DAT_182671e78 ^ uVar12;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x73cd7020)) =
       (CONCAT44(uVar32,uVar28) ^ 0xffffffffebb17286) + *(longlong *)(lVar7 + -0x9a8) ^ uVar21;
  bVar5 = (byte)DAT_182671cd8;
  uVar15 = (ulonglong)DAT_182671e9c;
  *(byte *)(lVar7 + -0xcd1) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x120) ^ uVar21) ^ (byte)DAT_182671e0c ^
       (byte)DAT_182671cd8;
  *(undefined1 *)(*(ulonglong *)(lVar7 + -0x778) ^ uVar15) = 0xb9;
  uVar37 = (*(uint *)(lVar7 + -0x6c0) ^ uVar12) + (uVar14 ^ 0x637e4191) ^ DAT_182671d54;
  *(ulonglong *)(lVar7 + -0x760) =
       (CONCAT44(uVar39,uVar9) ^ 0xb5f129558a585afd) +
       (CONCAT44(uVar13,uVar31) ^ 0x5071904d37271ece);
  *(uint *)(lVar7 + -0x27c) = (*(byte *)(lVar7 - (uVar35 ^ 0xfffff32e)) ^ bVar5) ^ uVar23;
  *(uint *)(lVar7 - (uVar20 ^ 0x87c7e85c)) = uVar37;
  uVar15 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar7 - ((ulonglong)DAT_182671c50 ^ 0x4787a0fc)) =
       (*(uint *)(lVar7 - (uVar19 ^ 0x9e72b397)) ^ uVar23) << (((byte)DAT_182671c64 ^ 0x86) & 0x1f)
       ^ DAT_182671e08;
  uVar37 = DAT_182671d68;
  uVar9 = DAT_182671d28;
  bVar5 = (byte)DAT_182671c5c;
  *(uint *)(lVar7 - (uVar27 ^ 0x73cd7770)) =
       (*(uint *)(lVar7 + -0x4ac) ^ DAT_182671d54) -
       (*(uint *)(lVar7 - (uVar15 ^ 0xb8785f03)) ^ DAT_182671e08) ^ DAT_182671d68;
  uVar13 = *(uint *)(lVar7 + -0x1c8) ^ DAT_182671ee0;
  uVar14 = (uVar23 ^ *(uint *)(lVar7 + -0x27c)) * 0x18;
  *(uint *)(lVar7 + -0x684) = uVar14 ^ DAT_182671dc4;
  uVar37 = (uVar37 ^ *(uint *)(lVar7 + -0x670)) * uVar13 ^ DAT_182671fa0;
  *(uint *)(lVar7 + -0x9dc) = uVar37;
  uVar23 = DAT_182671ee4;
  *puVar25 = uVar14 + (uVar37 ^ DAT_182671fa0) ^ uVar9;
  uVar8 = DAT_182671c58;
  uVar37 = *(uint *)(lVar7 + -0x61c);
  *puVar1 = (*(uint *)(lVar7 + -0x61c) ^ uVar9) << ((bVar5 ^ 0x19) & 0x1f) ^ uVar23;
  *(uint *)(lVar7 - (uVar41 ^ 0xa6d515bb)) =
       (uVar37 ^ uVar9) >> ((byte)uVar8 & 0x1f) ^ DAT_182671e44;
  *(ulonglong *)(lVar7 - (uVar35 ^ 0xffffff0f)) =
       (CONCAT44(uVar32,uVar10) ^ 0x863ad36a1a9bdfd2) <<
       ((byte)*(undefined8 *)(lVar7 + -0x8f0) & 0x3f);
  *puVar2 = (*(uint *)(lVar7 - (uVar24 ^ 0xfffff51b)) ^ DAT_182671e44 | uVar23 ^ *puVar1) ^
            DAT_182671dbc;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar4 ^ uVar39) * 4) = uVar40;
  return;
}



############ FUN_ 180ffcd50 size=5236 ############

void FUN_180ffcd50(void)

{
  longlong *plVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  byte bVar20;
  byte bVar21;
  byte bVar22;
  uint uVar23;
  uint uVar24;
  byte *pbVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  byte *pbVar31;
  ulonglong *puVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_res20;
  
  uVar17 = DAT_182671dc4;
  uVar15 = DAT_182671c80;
  uVar10 = DAT_182671c68;
  uVar8 = DAT_182671c58;
  lVar3 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c80;
  uVar26 = (ulonglong)DAT_182671c58;
  uVar40 = (ulonglong)DAT_182671c68;
  uVar24 = DAT_182671c58 * DAT_182671c68;
  uVar41 = (DAT_182671c80 << 0x10 | DAT_182671c80 & 0xff00) << 8 | DAT_182671c80 >> 8 & 0xff00 |
           DAT_182671c80 >> 0x18;
  uVar2 = *(uint *)(&DAT_182613218 + DAT_182672098);
  uVar23 = *(uint *)(&DAT_182613220 + DAT_182672098) ^ DAT_182671c80;
  uVar44 = (ulonglong)uVar24;
  uVar27 = CONCAT44(uVar24,DAT_182671c58);
  DAT_182671c6c = uVar41;
  DAT_182671c90 = uVar24;
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       CONCAT44(DAT_182671ef8,DAT_182671ef8) ^ *(ulonglong *)(DAT_182671c40 + -0x888) |
       uVar27 ^ 0x16a105e89a8a4f8;
  uVar30 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x460ad8c9)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x460ad129)) ^ CONCAT44(uVar17,uVar17)) << 0x20
       ^ uVar30;
  uVar5 = DAT_182671dd4;
  uVar38 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar29 = DAT_182671dd4 & 0xff;
  uVar28 = (ulonglong)DAT_182671e58;
  *(ulonglong *)(lVar3 + -0x7c0) =
       (CONCAT44(DAT_182671ee4,DAT_182671ee4) ^ *(ulonglong *)(lVar3 + -0xb20) |
       *(ulonglong *)(lVar3 + -0x110) ^ uVar30) ^ uVar38;
  pbVar25 = (byte *)((CONCAT44(uVar8,uVar8) ^ 0xf1d9d127f1d9d172) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0x370) = (ulonglong)pbVar25 ^ uVar28;
  bVar21 = (byte)DAT_182671f14;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xf1d9da16)) =
       *pbVar25 ^ (byte)uVar5 ^ (byte)DAT_182671f14;
  uVar19 = DAT_182671fa8;
  uVar5 = DAT_182671ec0;
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar45 = (ulonglong)uVar41;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0x67258764)) =
       (ulonglong)*(byte *)(DAT_182671c40 - (uVar44 ^ 0x7972523e)) ^ (ulonglong)uVar29 ^ uVar28;
  uVar30 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar3 + -0xda8) =
       (*(ulonglong *)(lVar3 + -0xa60) ^ uVar28) << (((byte)(uVar15 >> 0x18) ^ 0x4f) & 0x3f) ^
       uVar30;
  *(byte *)(lVar3 - (uVar44 ^ 0x79725e24)) =
       *(byte *)((ulonglong)uVar5 ^ *(ulonglong *)(lVar3 + -0x708)) ^ bVar21;
  uVar28 = (ulonglong)DAT_182671d34;
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 + -0xda8) ^ uVar30 | uVar38 ^ *(ulonglong *)(lVar3 + -0x7c0)) ^
       CONCAT44(uVar5,uVar5);
  bVar22 = (byte)DAT_182671d6c;
  uVar36 = (ulonglong)(byte)DAT_182671d6c;
  pbVar25 = (byte *)((CONCAT44(uVar10,uVar41) ^ 0x460ad9d9048d2531) + *(longlong *)(lVar3 + -0x870))
  ;
  *(ulonglong *)(lVar3 + -0x758) = (ulonglong)pbVar25 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x380) =
       (CONCAT44(uVar10,uVar41) ^ 0xbd4de4270644eb23) - (uVar27 ^ 0x7afefdfa46235801);
  *(byte *)(lVar3 + -0x512) = *pbVar25 ^ bVar22 ^ bVar21;
  uVar47 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar3 + -0x2b0) = (*(byte *)(lVar3 - (uVar26 ^ 0xf1d9d435)) ^ bVar22) ^ uVar47;
  bVar21 = (byte)DAT_182671c64;
  *(int *)(lVar3 - (uVar34 ^ 0x67258b18)) =
       *(int *)(lVar3 + -0x684) << ((byte)*(undefined4 *)(lVar3 + -0x5d4) & 0x1f);
  uVar28 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar47) << ((bVar21 ^ 0xdb) & 0x3f) ^ uVar28;
  uVar39 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  puVar46 = (ulonglong *)(lVar3 - (uVar45 ^ 0x48d2c47));
  uVar30 = (ulonglong)DAT_182671d00;
  *puVar46 = (*(ulonglong *)(lVar3 - (uVar44 ^ 0x79725187)) ^ uVar28) +
             (CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar3 + -0xb08)) ^ uVar39;
  pbVar25 = (byte *)((CONCAT44(uVar15,uVar10) ^ 0x67258d04460ad98e) + *(longlong *)(lVar3 + -0x870))
  ;
  uVar28 = CONCAT44(DAT_182671c8c,uVar10);
  *(ulonglong *)(lVar3 + -0x990) = (ulonglong)pbVar25 ^ uVar30;
  bVar21 = (byte)DAT_182671f00;
  *(ulonglong *)(lVar3 + -0xb20) =
       uVar28 ^ uVar39 ^ *(ulonglong *)(lVar3 + -0x920) ^ 0x5048ee61c45285db;
  uVar18 = DAT_182671eec;
  bVar20 = *pbVar25 ^ bVar21 ^ (byte)DAT_182671f14;
  *(byte *)(lVar3 + -0x27d) = bVar20;
  uVar5 = DAT_182671c70;
  uVar42 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c70 ^ 0x96e839fc)) =
       (bVar20 ^ bVar21) ^ uVar42;
  lVar3 = DAT_182671c40;
  uVar30 = (*(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x7972581f)) ^ uVar42) <<
           (((byte)uVar5 ^ 0xd4) & 0x3f);
  uVar28 = (ulonglong)DAT_182671c64;
  puVar32 = (ulonglong *)(DAT_182671c40 + -0x920);
  uVar35 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar30 ^ CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar5 = DAT_182671c50;
  uVar38 = CONCAT44(uVar8,DAT_182671c48);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xb5f70543)) = (uVar39 ^ *puVar32) + uVar30 ^ uVar35;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x67258e84)) =
       (uVar38 ^ 0x29804b0898e12ce9) << ((*(byte *)(lVar3 + -0xa60) ^ (byte)uVar19) & 0x3f);
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x418) +
            (CONCAT44(uVar5,DAT_182671c88) ^ 0x1b1a9d5cffdbdbf5) * 8);
  uVar30 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar3 + -0xa0) = (ulonglong)puVar32 ^ CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar37 = (ulonglong)DAT_182671f64;
  *puVar32 = *(ulonglong *)(lVar3 + -0xda8) ^ uVar30 ^ uVar35;
  lVar3 = DAT_182671c40;
  pbVar25 = (byte *)(DAT_182671c40 - (uVar44 ^ 0x797251ff));
  pbVar31 = (byte *)((CONCAT44(uVar15,uVar15) ^ 0x67258d0467258d5c) +
                    *(longlong *)(DAT_182671c40 + -0x870));
  uVar28 = *(ulonglong *)(DAT_182671c40 + -0xda8);
  *(ulonglong *)(DAT_182671c40 + -0x328) = (ulonglong)pbVar31 ^ uVar37;
  bVar21 = (byte)DAT_182671f14;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xb08) = (uVar35 ^ uVar28) >> ((*pbVar25 ^ (byte)uVar17) & 0x3f);
  uVar39 = (ulonglong)DAT_182671e8c;
  *(byte *)(lVar3 + -0x9c1) = *pbVar31 ^ bVar22 ^ bVar21;
  uVar29 = DAT_182671c5c;
  uVar38 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0xfe08db3f)) =
       uVar35 ^ uVar28 ^ 0x10295595ce031d79;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xb7d303de)) =
       *(byte *)(lVar4 + -0x9c1) ^ uVar42 ^ uVar36;
  bVar22 = (byte)DAT_182671ea8;
  pbVar25 = (byte *)(*(longlong *)(lVar3 + -0x870) + 0x59);
  uVar28 = CONCAT44(uVar41,DAT_182671c74);
  *(ulonglong *)(lVar3 + -0x110) = uVar28 ^ 0xeb8c6a7f94bb8824;
  *(ulonglong *)(lVar3 + -0x370) = (ulonglong)pbVar25 ^ uVar39;
  uVar17 = DAT_182671e38;
  bVar20 = *pbVar25 ^ bVar22 ^ bVar21;
  uVar38 = (ulonglong)(bVar22 ^ bVar20);
  *(byte *)(lVar3 + -0x1c3) = bVar20;
  uVar36 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar3 + -0x920) = uVar38 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar29 ^ 0xfe08d477)) = uVar38 << 8 ^ uVar36;
  uVar7 = DAT_182671c54;
  uVar39 = CONCAT44(DAT_182671f10,DAT_182671f10);
  uVar38 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c60 ^ 0xe60ca6aa)) =
       (*(ulonglong *)(lVar3 + -0xb20) ^ uVar42 | uVar36 ^ *(ulonglong *)(lVar3 + -0x7c0)) ^ uVar39;
  lVar4 = DAT_182671c40;
  *(byte *)(lVar3 + -0xcd2) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0x4a08f43c)) ^ uVar37) ^ bVar21;
  bVar22 = (byte)DAT_182671d84;
  uVar11 = DAT_182671c70;
  pbVar25 = (byte *)((CONCAT44(DAT_182671c70,uVar41) ^ 0x96e838ec048d253d) +
                    *(longlong *)(lVar4 + -0x870));
  *(ulonglong *)(lVar4 + -0x708) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182671f50;
  uVar29 = DAT_182671c4c;
  uVar38 = (ulonglong)DAT_182671c4c;
  *(byte *)(lVar4 + -0xc69) = *pbVar25 ^ bVar22 ^ bVar21;
  uVar17 = DAT_182671ed4;
  uVar37 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  uVar38 = (ulonglong)(*(byte *)(lVar4 - (uVar38 ^ 0x94f100ca)) ^ bVar22);
  *(ulonglong *)(lVar4 + -0xa60) = uVar38 ^ uVar37;
  uVar6 = DAT_182671c84;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       uVar38 << (((byte)DAT_182671c84 ^ 0xfb) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x8f0) =
       (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar47) >> (((byte)uVar5 ^ 0x6d) & 0x3f);
  uVar16 = DAT_182671c94;
  uVar14 = DAT_182671c7c;
  uVar38 = (ulonglong)DAT_182671c94;
  uVar36 = (ulonglong)DAT_182671e44;
  uVar48 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0xffdbdc17)) ^ CONCAT44(uVar17,uVar17) |
       uVar39 ^ *(ulonglong *)(lVar3 + -0x380)) ^ uVar48;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c74 ^ 0xa52aee84)) =
       (uVar27 ^ 0x9002086a102dba42) >> ((*(byte *)(lVar3 + -0x7e8) ^ (byte)uVar17) & 0x3f);
  bVar22 = (byte)DAT_182671e94;
  *(ulonglong *)(lVar3 + -0x758) =
       *(longlong *)(lVar3 - (uVar38 ^ 0xb4d86196)) +
       (CONCAT44(DAT_182671c64,DAT_182671c70) ^ 0xb5f708eb96e838b7) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x110) =
       CONCAT44(uVar11,uVar6) ^ uVar48 ^ *(ulonglong *)(lVar3 + -0xb08) ^ 0xfc9d8cd576ca49db;
  uVar17 = DAT_182671dac;
  bVar21 = *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x4903915c)) ^ uVar36) ^ bVar22 ^
           (byte)DAT_182671f14;
  *(byte *)(lVar3 + -0x3a1) = bVar21;
  lVar4 = DAT_182671c40;
  uVar39 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x920) = (bVar21 ^ bVar22) ^ uVar39;
  uVar9 = DAT_182671df4;
  uVar13 = DAT_182671c78;
  uVar6 = DAT_182671c74;
  uVar43 = (ulonglong)DAT_182671c78;
  uVar33 = DAT_182671df4 & 0xff;
  bVar22 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0x94f10783)) =
       (CONCAT44(uVar14,DAT_182671c78) ^ 0xaf417a61ca368224) +
       (*(ulonglong *)(lVar4 + -0xa60) ^ uVar37);
  uVar17 = DAT_182671ce8;
  uVar5 = DAT_182671c48;
  uVar27 = (uVar39 ^ *puVar46) << ((bVar22 ^ 0x44) & 0x3f);
  *(ulonglong *)(lVar4 + -0x7c0) = uVar27 ^ CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar38 = (ulonglong)DAT_182671dd4;
  uVar27 = uVar48 ^ *(ulonglong *)(lVar4 + -0xb08) | uVar27;
  uVar36 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar27 ^ uVar36;
  pbVar25 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar6 ^ 0xa52aee7c)) +
                    (CONCAT44(uVar15,uVar29) ^ 0x67258d0494f10cff));
  *(ulonglong *)(lVar4 + -0x990) = (ulonglong)pbVar25 ^ uVar38;
  uVar17 = DAT_182671de0;
  bVar22 = *pbVar25 ^ (byte)uVar9 ^ (byte)DAT_182671f14;
  uVar38 = (ulonglong)uVar33 ^ (ulonglong)bVar22;
  *(byte *)(lVar4 + -0xd01) = bVar22;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x8f0) = uVar38 ^ CONCAT44(uVar17,uVar17);
  local_res20 = (byte)uVar15;
  *(ulonglong *)(lVar3 + -0x380) = uVar38 << ((local_res20 ^ 0x24) & 0x3f) ^ uVar30;
  uVar37 = (ulonglong)DAT_182671d80;
  uVar38 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0xa52ae1e4)) =
       uVar27 - (CONCAT44(uVar29,uVar8) ^ 0xef668aaf8965a1);
  uVar9 = DAT_182671c5c;
  lVar3 = DAT_182671c40;
  uVar47 = (ulonglong)DAT_182671c5c;
  uVar27 = CONCAT44(DAT_182671c5c,uVar10);
  plVar1 = (longlong *)(DAT_182671c40 + -0x870);
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xb5f70a5b)) ^ uVar36 |
       uVar30 ^ *(ulonglong *)(DAT_182671c40 + -0x380)) ^ uVar39;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xf1d9d257)) = (uVar27 ^ 0xfe08d3b7460ad984) + *plVar1 ^ uVar37;
  bVar22 = (byte)DAT_182671d0c;
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar5,DAT_182671c64) ^ 0xaed6116ac8abcab8) +
       (*(ulonglong *)(lVar3 + -0x888) ^ uVar39);
  uVar17 = DAT_182671e0c;
  bVar21 = *(byte *)(*(ulonglong *)(lVar3 - (uVar43 ^ 0xb7d30b8e)) ^ uVar37) ^ bVar22 ^
           (byte)DAT_182671f14;
  *(byte *)(lVar3 + -0xa61) = bVar21;
  uVar18 = DAT_182671f40;
  uVar38 = (ulonglong)(bVar21 ^ bVar22);
  *(ulonglong *)(lVar3 + -0xa60) = uVar38 ^ CONCAT44(uVar17,uVar17);
  uVar26 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c4c ^ 0x94f10583)) = uVar38 << 0x28 ^ uVar26;
  lVar4 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar38 = (ulonglong)DAT_182671ee0;
  *(ulonglong *)(lVar3 + -0x7c0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xfddbf6ca)) ^ uVar26 |
       *(ulonglong *)(lVar3 + -0x888) ^ uVar39) ^ uVar36;
  pbVar31 = (byte *)(*(longlong *)(lVar4 - (uVar45 ^ 0x48d2d17)) +
                    (CONCAT44(uVar14,uVar16) ^ 0x49039604b4d869b8));
  pbVar25 = (byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0x1b1a9605));
  *(ulonglong *)(lVar4 + -0x990) = (ulonglong)pbVar31 ^ uVar38;
  uVar26 = (ulonglong)(byte)DAT_182671f00;
  *pbVar25 = *pbVar31 ^ (byte)DAT_182671f00 ^ (byte)DAT_182671f14;
  uVar17 = DAT_182671f84;
  uVar38 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *(ulonglong *)(DAT_182671c40 + -0x8f0) =
       *(byte *)(DAT_182671c40 - (uVar40 ^ 0x460ad280)) ^ uVar38 ^ uVar26;
  lVar3 = DAT_182671c40;
  uVar26 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x48d228f)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0xfe08db47)) ^ uVar38) << 0x30 ^ uVar26;
  uVar38 = (ulonglong)DAT_182671c84;
  *(undefined8 *)(lVar3 + -0x2b0) = 0x2cb0000000000000;
  bVar22 = (byte)DAT_182671d28;
  uVar12 = DAT_182671c70;
  uVar33 = DAT_182671c60;
  uVar40 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar39 = (ulonglong)DAT_182671c60;
  uVar27 = (ulonglong)DAT_182671d20;
  *(ulonglong *)(lVar3 + -0x380) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xb5f70f03)) ^ uVar26) +
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x7c0)) ^ uVar40;
  *(ulonglong *)(lVar3 + -0x1a8) =
       *(longlong *)(lVar3 - (uVar39 ^ 0xe60cad5a)) +
       (CONCAT44(uVar13,DAT_182671c64) ^ 0xb7d308feb5f708b4) ^ uVar27;
  *(byte *)(lVar3 + -0x7d1) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar34 ^ 0x67258cac)) ^ uVar27) ^ bVar22 ^
       (byte)DAT_182671f14;
  uVar38 = CONCAT44(uVar33,DAT_182671c8c);
  *(ulonglong *)(lVar3 + -0x110) = (*(byte *)(lVar3 - (uVar44 ^ 0x79725ede)) ^ bVar22) ^ uVar48;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x96e8328c)) =
       (uVar38 ^ 0x4420d6679be027d7) << (((byte)DAT_182671c88 ^ 0xc3) & 0x3f);
  uVar26 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  uVar38 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 + -0x110) ^ uVar48) << (((byte)uVar33 ^ 0x12) & 0x3f) ^ uVar26;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xe60cac0a)) =
       (uVar38 << 0x1b | (ulonglong)(uVar15 >> 5)) ^ 0x3349c9077c8ce05;
  uVar13 = DAT_182671c7c;
  uVar6 = DAT_182671c50;
  uVar5 = DAT_182671c48;
  uVar27 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar38 = CONCAT44(uVar16,DAT_182671c48);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x96e8301c)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c54 ^ 0x4a08ff9c)) ^ uVar26) +
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c7c ^ 0x49039584)) ^ uVar40) ^ uVar27;
  uVar12 = DAT_182671c84;
  puVar46 = (ulonglong *)(*(longlong *)(lVar3 + -0x418) + (uVar38 ^ 0xb4d869e6fddbffe1) * 8);
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)puVar46 ^ CONCAT44(DAT_182671ecc,DAT_182671ecc);
  lVar3 = DAT_182671c40;
  puVar32 = (ulonglong *)(DAT_182671c40 + -0x8f0);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       CONCAT44(uVar12,uVar6) ^ 0x49bd1b06a418d30e | uVar28 ^ 0x28dacdca61216510;
  uVar17 = DAT_182671dc8;
  *puVar46 = uVar27 ^ uVar30 ^ *puVar32;
  uVar26 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c74 ^ 0xa52aed84)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar12 ^ 0xb5f7033b)) +
       (CONCAT44(uVar7,uVar5) ^ 0x4a08f714fddbffea) * 0x60 ^ uVar26;
  uVar28 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar3 + -0x7c0) =
       (CONCAT44(uVar24,uVar10) ^ 0x7aec209bd885b96e) >> (((byte)uVar8 ^ 4) & 0x3f);
  uVar38 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c4c ^ 0x94f101f3)) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0xffdbd8ef)) ^ CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar18 = DAT_182671f2c;
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 - (uVar38 ^ 0x96e83278)) ^ DAT_182671d40) &
       (*(uint *)(lVar3 + -0x94) ^ DAT_182671e4c);
  uVar17 = DAT_182671fac;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x13120fb4)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar44 ^ 0x79725287)) ^ uVar26) ^ uVar30 ^
       CONCAT44(uVar18,uVar18);
  *(ulonglong *)(CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0x918)) =
       CONCAT44(uVar15,uVar10) ^ 0x3337f2faa60a138d;
  lVar3 = DAT_182671c40;
  pbVar25 = (byte *)(DAT_182671c40 + -0x7e8);
  puVar32 = (ulonglong *)((uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0xb88)) + 8);
  *(ulonglong *)(DAT_182671c40 + -0x418) =
       (ulonglong)puVar32 ^ CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar3 + -0xa60) = 0xdff6e282089fd300 >> ((*pbVar25 ^ (byte)uVar18) & 0x3f);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x920) = *puVar32 ^ uVar30 ^ uVar35;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x678) ^ uVar42) =
       CONCAT44(uVar14,uVar8) ^ 0xbc0a177f0be442c;
  uVar17 = DAT_182671e10;
  *(ulonglong *)(lVar3 + -0x380) =
       CONCAT44(uVar14,DAT_182671c54) ^ CONCAT44(uVar11,DAT_182671c74) ^ 0x26c638adbdf91bfa;
  puVar32 = (ulonglong *)
            ((uVar26 ^ *(ulonglong *)(lVar3 + -0xb88)) +
            (CONCAT44(uVar29,uVar12) ^ 0x94f10ca3b5f708e9) * 8);
  uVar28 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *(ulonglong *)(lVar3 + -0x650) = (ulonglong)puVar32 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x888) = uVar28 ^ *puVar32 ^ uVar30;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x910) ^ CONCAT44(uVar18,uVar18)) =
       CONCAT44(uVar33,uVar8) ^ 0x8b9da8aadb4b9e;
  *(ulonglong *)(lVar3 + -0x2b0) = (uVar48 ^ *(ulonglong *)(lVar3 + -0xb08)) << 0x22;
  uVar28 = (ulonglong)DAT_182671c64;
  puVar32 = (ulonglong *)
            ((*(ulonglong *)(lVar3 - (uVar34 ^ 0x6725868c)) ^ uVar26) +
            (CONCAT44(uVar9,uVar24) ^ 0xfe08d3b77972590c) * 8);
  *(ulonglong *)(lVar3 + -0x918) = (ulonglong)puVar32 ^ CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar5 = DAT_182671df4;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar12,uVar13) ^ 0xa1e2b87acf4e80f) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar28 ^ 0xb5f703cb)) & 0x3f);
  *(ulonglong *)(lVar3 + -0x7c0) = CONCAT44(uVar5,uVar5) ^ *puVar32 ^ uVar30;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar23 * 4) = uVar2 ^ uVar41;
  return;
}



############ FUN_ 180fff5e0 size=3153 ############

void FUN_180fff5e0(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  undefined4 uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  byte local_88;
  
  uVar14 = DAT_182671f24;
  uVar12 = DAT_182671da0;
  uVar13 = DAT_182671c88;
  uVar8 = DAT_182671c6c;
  uVar7 = DAT_182671c60;
  uVar6 = DAT_182671c58;
  uVar4 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c6c;
  uVar33 = (ulonglong)DAT_182671c58;
  uVar24 = (ulonglong)DAT_182671c48;
  uVar34 = DAT_182671c6c & DAT_182671c60;
  uVar29 = DAT_182671c58 * DAT_182671c48;
  uVar27 = (DAT_182671c88 << 0x10 | DAT_182671c88 & 0xff00) << 8 | DAT_182671c88 >> 8 & 0xff00 |
           DAT_182671c88 >> 0x18;
  uVar26 = (ulonglong)uVar34;
  uVar16 = *(uint *)(&DAT_182613218 + DAT_1826720a0) ^ DAT_182671c6c;
  uVar17 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar34 ^ 0xf9fdb2f) + (longlong)DAT_1826720a0) ^
           DAT_182671c60;
  uVar22 = (ulonglong)DAT_182671f10;
  uVar25 = CONCAT44(DAT_182671c58,DAT_182671c48) ^ 0xdefb2af864f4db1f;
  uVar18 = (ulonglong)uVar29;
  uVar20 = (ulonglong)uVar27;
  DAT_182671c70 = uVar34;
  DAT_182671c80 = uVar27;
  DAT_182671c94 = uVar29;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar29 ^ 0xd39135c8)) =
       (uVar22 ^ *(ulonglong *)(DAT_182671c40 + -0x450)) + uVar25;
  lVar3 = DAT_182671c40;
  uVar19 = (ulonglong)uVar13;
  puVar30 = (ulonglong *)(lVar2 - (uVar19 ^ 0x900829f0));
  *puVar30 = *(ulonglong *)
              (*(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0xc0290e80)) ^ CONCAT44(uVar12,uVar12)) ^
             CONCAT44(uVar14,uVar14);
  *(byte *)(uVar22 ^ *(ulonglong *)(lVar3 + -0x450)) =
       *(byte *)(lVar3 - (uVar20 ^ 0xc02901f9)) ^ (byte)DAT_182671f18;
  *(undefined1 *)(lVar3 + -0x969) = 0x4f;
  *(undefined8 *)(lVar3 - (uVar26 ^ 0xf9fda6f)) = *(undefined8 *)(lVar3 + -0x4d8);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar13 ^ 0x90082d50)) = *(undefined8 *)(lVar3 + -0xcd0);
  uVar28 = (ulonglong)DAT_182671cb4;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar4 ^ 0x64f4d78e)) = 0x25d8;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x598) = *(ulonglong *)(lVar3 - (uVar20 ^ 0xc02909c0)) ^ uVar28;
  local_88 = (byte)uVar29;
  *(longlong *)(lVar2 - (uVar32 ^ 0x7fbfd697)) =
       *(longlong *)(lVar3 + -0x960) << ((local_88 ^ 0x23) & 0x3f);
  pbVar21 = *(byte **)(lVar2 + -0x490);
  *(ulonglong *)(lVar2 + -0x548) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182671f8c;
  *(byte **)(lVar2 + -0x5b8) = pbVar21 + (CONCAT44(uVar7,uVar13) ^ 0xfdfffbf900829c1);
  *(byte *)(lVar2 + -0x741) = *pbVar21 ^ (byte)DAT_182671d18 ^ (byte)uVar12;
  uVar22 = (ulonglong)DAT_182671edc;
  *(undefined1 *)(lVar2 + -0x2c9) = 0x84;
  *(byte *)(*(ulonglong *)(lVar2 + -0xba0) ^ uVar22) = (byte)uVar8 ^ 0x3e;
  pbVar21 = (byte *)(*(ulonglong *)(lVar2 + -0x598) ^ uVar28);
  *(byte **)(lVar2 + -0xda0) = pbVar21 + (CONCAT44(uVar27,uVar4) ^ 0xc029089064f4db1f);
  *pbVar21 = (byte)uVar12 ^ *(byte *)(lVar2 + -0x741);
  *(byte *)(lVar2 - (uVar18 ^ 0xd3913651)) = (byte)uVar6 ^ 0x17;
  *(undefined8 *)(lVar2 - (uVar33 ^ 0xdefb28c0)) = *(undefined8 *)(lVar2 + -0xda0);
  pbVar21 = *(byte **)(lVar2 - (uVar20 ^ 0xc0290d28));
  *(longlong *)(lVar2 + -0x228) =
       *(longlong *)(lVar2 + -0x828) << ((byte)*(undefined8 *)(lVar2 + -0xb18) & 0x3f);
  uVar22 = (ulonglong)DAT_182671ca0;
  *(byte **)(lVar2 + -0x468) = pbVar21;
  uVar28 = (ulonglong)DAT_182671f74;
  *(ulonglong *)(lVar2 + -0x838) = (ulonglong)pbVar21 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x798) = *(ulonglong *)(lVar2 + -0x238) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x510) = *(ulonglong *)(lVar2 + -0x30) ^ *puVar30;
  bVar1 = (byte)DAT_182671d18;
  uVar31 = (ulonglong)DAT_182671d1c;
  *(byte **)(lVar2 + -0x460) = pbVar21 + (CONCAT44(uVar27,uVar6) ^ 0xc0290890defb2af9);
  *(byte *)(lVar2 + -0xaa1) = *pbVar21 ^ (byte)DAT_182671f9c ^ bVar1;
  uVar22 = (ulonglong)DAT_182671fb4;
  *(undefined1 *)(lVar2 + -0x262) = 0x59;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x9d8) ^ uVar22) = 0x4c;
  *(ulonglong *)(lVar2 + -0x7b0) = (uVar28 ^ *(ulonglong *)(lVar2 + -0x798)) + 1;
  *(byte *)(lVar2 + -0x2e9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x728) ^ (ulonglong)DAT_182671e18) ^ bVar1;
  *(byte *)(lVar2 - ((ulonglong)uVar6 ^ 0xdefb2811)) = (byte)uVar34 ^ 0x73;
  bVar15 = (byte)uVar7;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar18 ^ 0xd3913688)) ^ uVar28) =
       *(byte *)(lVar2 - (uVar20 ^ 0xc0290231)) ^ (byte)DAT_182671f9c;
  *(byte *)(lVar2 + -0xaa1) = bVar15 ^ 0xbb;
  *(undefined8 *)(lVar2 + -0x308) = *(undefined8 *)(lVar2 + -0x7b0);
  *(undefined8 *)(lVar2 + -0x7e0) = *(undefined8 *)(lVar2 + -0x460);
  puVar30 = (ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xfdffe97));
  uVar28 = (ulonglong)DAT_182671d9c;
  *puVar30 = *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xfdffcb7)) ^ uVar31;
  *(ulonglong *)(lVar2 + -0x18) = uVar28 ^ *(ulonglong *)(lVar2 + -0x7e0);
  uVar22 = *(ulonglong *)(lVar2 - (uVar18 ^ 0xd3913108));
  *(uint *)(lVar2 + -0x94) = (uVar13 ^ 0x8c249c77) * *(int *)(lVar2 + -0x684);
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x340) = (uVar22 ^ uVar28) + uVar25;
  bVar23 = (byte)DAT_182671fac;
  *(uint *)(lVar2 - (uVar20 ^ 0xc0290804)) = uVar5 ^ 0x5a907f76;
  lVar2 = DAT_182671c40;
  *(byte *)(lVar3 - (uVar26 ^ 0xf9fda4e)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x18) ^ uVar28) ^ bVar23 ^ bVar1;
  bVar1 = (byte)DAT_182671c6c;
  *(byte *)(lVar3 + -0xc01) = bVar15 ^ 0x61;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc60) ^ (ulonglong)DAT_182671fa0) = bVar1 ^ 0xd7;
  uVar12 = DAT_182671c84;
  uVar22 = CONCAT44(DAT_182671c84,uVar27);
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0x90082f40)) =
       (CONCAT44(uVar4,uVar29) ^ 0x3a2a82e21fdc0f52) - (CONCAT44(uVar8,uVar27) ^ 0xb036756cfdad8dfe)
  ;
  uVar9 = DAT_182671c74;
  *(ulonglong *)(lVar2 + -0x6d8) = (uVar22 ^ 0x30488605c0290891) + (*puVar30 ^ uVar31);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xdefb2bd0)) ^ uVar31) =
       bVar23 ^ *(byte *)(lVar2 + -0x171);
  uVar28 = (ulonglong)DAT_182671d14;
  *(undefined8 *)(lVar2 + -0x1f0) = *(undefined8 *)(lVar2 + -0x6d8);
  *(longlong *)(lVar2 + -0xa50) =
       *(longlong *)(lVar2 + -0x5e8) << ((byte)*(undefined8 *)(lVar2 + -0xda8) & 0x3f);
  *(ulonglong *)(lVar2 + -0xaf0) = *(ulonglong *)(lVar2 + -0x340);
  *(byte *)(lVar2 + -0x171) = (byte)uVar6 ^ 0x26;
  uVar29 = DAT_182671f2c;
  uVar22 = (ulonglong)DAT_182671f2c;
  *(ulonglong *)(lVar2 + -0x750) = *(ulonglong *)(lVar2 - (uVar26 ^ 0xf9fdacf)) ^ uVar28;
  uVar25 = (ulonglong)uVar29 ^ *(ulonglong *)(lVar2 + -0x340);
  *(ulonglong *)(lVar2 + -0x4f0) = uVar25;
  pbVar21 = (byte *)(uVar25 ^ uVar22);
  *(byte **)(lVar2 + -0x288) = pbVar21 + 1;
  *(byte *)(lVar2 + -0x6b9) = *pbVar21 ^ (byte)DAT_182671f00 ^ (byte)DAT_182671d18;
  uVar22 = (ulonglong)DAT_182671cb8;
  *(byte *)(lVar2 + -0x8c1) = bVar15 ^ 0xf0;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x810) ^ uVar22) = 0xf9;
  *(ulonglong *)(lVar2 + -0x4c8) =
       (CONCAT44(uVar4,uVar6) ^ 0x64f4db1edefb2af9) + (uVar28 ^ *(ulonglong *)(lVar2 + -0x750));
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xd3913000)) =
       (CONCAT44(uVar9,uVar8) ^ 0xdb08491b84ce58e9) - (CONCAT44(uVar34,uVar27) ^ 0xaf105940c4d3502a)
  ;
  *(byte *)(uVar28 ^ *(ulonglong *)(lVar2 + -0x750)) =
       *(byte *)(lVar2 - (uVar32 ^ 0x7fbfdd86)) ^ (byte)DAT_182671f00;
  *(undefined8 *)(lVar2 + -0x2c8) = *(undefined8 *)(lVar2 + -0x4c8);
  *(undefined1 *)(lVar2 + -0x6b9) = 0x76;
  *(undefined8 *)(lVar2 + -0xb78) = *(undefined8 *)(lVar2 + -0x288);
  uVar11 = DAT_182671c7c;
  uVar10 = DAT_182671c78;
  uVar29 = DAT_182671c64;
  uVar25 = (ulonglong)DAT_182671c7c;
  uVar26 = (ulonglong)DAT_182671c78;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c64 ^ 0x10080b7c)) =
       (uVar5 ^ 0xc54c67a) << (((byte)uVar34 ^ 0x27) & 0x1f);
  *(undefined4 *)(lVar2 - (uVar18 ^ 0xd391336c)) = 0xda67c55c;
  *(ulonglong *)(lVar2 + -0x318) = uVar31 ^ *(ulonglong *)(lVar2 + -0x2c8);
  uVar22 = (ulonglong)DAT_182671e00;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x90082e40)) = *(ulonglong *)(lVar2 + -0xb78) ^ uVar22;
  lVar3 = DAT_182671c40;
  bVar23 = (byte)DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0xc00) =
       (CONCAT44(uVar11,uVar6) ^ 0xfc8dce9ddefb2af9) + (*(ulonglong *)(lVar2 + -0x780) ^ uVar22);
  bVar1 = (byte)DAT_182671ea8;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0xbb1) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0x64f4dc9e)) ^ uVar22) ^ (byte)DAT_182671ea8 ^
       (byte)DAT_182671d18;
  *(byte *)(lVar2 - (uVar26 ^ 0xfcdff726)) = bVar23 ^ 0x73;
  *(byte *)(*(ulonglong *)(lVar2 + -0x808) ^ (ulonglong)DAT_182671dd8) = local_88 ^ 0xca;
  uVar6 = DAT_182671c90;
  uVar22 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0xb0) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0x64f4d806)) ^ uVar31) +
       (CONCAT44(uVar27,uVar13) ^ 0xc0290890900829c1);
  lVar3 = DAT_182671c40;
  pbVar21 = (byte *)(DAT_182671c40 + -0xbb1);
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       *(ulonglong *)(lVar2 - (uVar22 ^ 0xdc8c8031)) >> (((byte)uVar8 ^ 0x2f) & 0x3f);
  uVar22 = (ulonglong)DAT_182671c8c;
  uVar24 = (ulonglong)DAT_182671d48;
  *(byte *)(*(ulonglong *)(lVar3 + -0x318) ^ uVar31) = bVar1 ^ *pbVar21;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 - (uVar22 ^ 0xd0080fb1)) = (byte)uVar9 ^ 0xf5;
  uVar5 = DAT_182671c4c;
  uVar19 = (ulonglong)DAT_182671c4c;
  *(undefined8 *)(lVar2 + -0x580) = *(undefined8 *)(lVar2 - (uVar33 ^ 0xdefb2a48));
  *(longlong *)(lVar2 + -0x408) = *(longlong *)(lVar2 + -0x4b8) + 0x56640ce455d6e229;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar6 ^ 0xdc8c8f21)) = *(undefined8 *)(lVar2 + -0xc00);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xf32a2c52)) = uVar24 ^ *(ulonglong *)(lVar2 + -0x580);
  uVar22 = (ulonglong)DAT_182671ed0;
  *(ulonglong *)(lVar2 + -0xa08) =
       (CONCAT44(uVar13,DAT_182671c54) ^ 0xada894a868ed8bea) -
       (CONCAT44(uVar7,uVar12) ^ 0x408cea7aa0ab10cb);
  *(ulonglong *)(lVar2 + -0x940) = *(ulonglong *)(lVar2 + -0xba8) ^ uVar22;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xfc8dc3dd)) =
       (CONCAT44(uVar4,uVar27) ^ 0x64f4db1ec0290891) + *(ulonglong *)(lVar2 + -0xba8);
  *(ulonglong *)(lVar2 + -0x2b0) =
       (CONCAT44(uVar27,uVar13) ^ 0x4b10ace438da225b) -
       (CONCAT44(uVar13,uVar10) ^ 0x6f5cab98d7763857);
  *(byte *)(lVar2 + -0xcb9) =
       *(byte *)(uVar22 ^ *(ulonglong *)(lVar2 + -0x940)) ^ (byte)DAT_182671eb4 ^
       (byte)DAT_182671d18;
  uVar25 = (ulonglong)DAT_182671c5c;
  *(byte *)(lVar2 - (uVar18 ^ 0xd39130f1)) = (byte)uVar29 ^ 0xf7;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar25 ^ 0xdc8c95c1)) ^ (ulonglong)DAT_182671ec8) =
       (byte)uVar5 ^ 0xf8;
  *(ulonglong *)(lVar2 + -0x2d8) = (*(ulonglong *)(lVar2 - (uVar20 ^ 0xc02900a0)) ^ uVar24) + 1;
  uVar22 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0xa70) = 0x690d27bcb8dcaf93 >> ((bVar15 ^ 0xb1) & 0x3f);
  uVar18 = (ulonglong)DAT_182671e64;
  *(byte *)(*(ulonglong *)(lVar2 + -0x830) ^ uVar24) =
       *(byte *)(lVar2 - (uVar22 ^ 0x5bc59ab9)) ^ (byte)DAT_182671eb4;
  *(undefined1 *)(lVar2 - (uVar19 ^ 0xf32a28db)) = 0x8e;
  uVar22 = *(ulonglong *)(lVar2 - (uVar26 ^ 0xfcdffd67));
  *(ulonglong *)(lVar2 + -0xca8) = uVar22;
  *(undefined8 *)(lVar2 + -0xd30) = *(undefined8 *)(lVar2 + -0xd40);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xdc8c9b39)) = uVar18 ^ uVar22;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x50000020)) =
       (ulonglong)DAT_182671d94 ^ *(ulonglong *)(lVar2 + -0xd30);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar16;
  return;
}



############ FUN_ 180faefc0 size=5248 ############

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

void FUN_180faefc0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  undefined1 *puVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  byte bVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_100;
  byte local_f8;
  byte local_f0;
  
  uVar18 = DAT_182671f6c;
  uVar17 = DAT_182671ecc;
  uVar13 = DAT_182671c90;
  uVar9 = DAT_182671c6c;
  uVar12 = DAT_182671c64;
  uVar11 = DAT_182671c60;
  uVar10 = DAT_182671c5c;
  lVar7 = DAT_182671c40;
  DAT_182671c80 = DAT_182671c74 + DAT_182671c78;
  uVar25 = DAT_182671c90 ^ DAT_182671c6c;
  uVar30 = DAT_182671c84 - DAT_182671c7c;
  uVar20 = DAT_182671c8c & 3;
  if (uVar20 < 2) {
    DAT_182671c94 = DAT_182671c58;
    if (uVar20 == 0) {
      DAT_182671c94 = DAT_182671c8c;
    }
  }
  else {
    DAT_182671c94 = DAT_182671c64;
    if (uVar20 < 3) {
      DAT_182671c94 = DAT_182671c88;
    }
  }
  uVar38 = (ulonglong)DAT_182671c60;
  uVar49 = (ulonglong)DAT_182671c5c;
  uVar29 = DAT_182671c5c | DAT_182671c60;
  uVar21 = *(uint *)(&DAT_182613210 + (uVar38 ^ 0x6fe8be80) + (longlong)DAT_1826722a0) ^
           DAT_182671c5c;
  uVar20 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c68 ^ 0x94da5010) + (longlong)DAT_1826722a0);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x888);
  DAT_182671c48 = uVar29;
  DAT_182671c4c = uVar25;
  DAT_182671c70 = uVar30;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(DAT_182671c64,DAT_182671c58) ^ 0xf8b1956d5a96e2ca) +
       (CONCAT44(DAT_182671c88,DAT_182671c94) ^ 0xb61b1a38e92a0829);
  uVar39 = CONCAT44(uVar18,uVar18);
  uVar32 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar23 = (ulonglong)uVar25;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x2626b47d)) =
       (*(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c8c ^ 0x103c0203)) ^ CONCAT44(uVar17,uVar17) |
       *puVar1 ^ uVar39) ^ uVar32;
  uVar26 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0x5b316b78)) =
       (*(ulonglong *)(lVar7 - (uVar23 ^ 0x4bc500ae)) ^ CONCAT44(DAT_182671fa8,DAT_182671fa8)) -
       (uVar32 ^ *(ulonglong *)(lVar7 + -0xda8)) ^ uVar26;
  *(uint *)(lVar7 + -0x76c) = (uVar13 ^ 0xb761f264) << (((byte)uVar10 ^ 0x55) & 0x1f);
  uVar9 = DAT_182671d80;
  uVar14 = DAT_182671c78;
  uVar31 = (ulonglong)DAT_182671d80;
  uVar46 = (ulonglong)DAT_182671c78;
  uVar33 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar47 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  puVar2 = (ulonglong *)(lVar7 + -0xa78);
  uVar40 = *(ulonglong *)(lVar7 + -0xc90) ^ uVar47 ^ uVar33 ^ uVar32 ^
           *(ulonglong *)(lVar7 + -0xda8);
  *puVar2 = uVar40;
  uVar17 = DAT_182671cd4;
  *(undefined1 *)(lVar7 + -0x6b9) = **(undefined1 **)(lVar7 + -0x990);
  uVar19 = DAT_182671e48;
  uVar18 = DAT_182671df0;
  uVar32 = ((ulonglong)(uVar9 >> 0x17) | uVar31 << 9) ^
           *(ulonglong *)(lVar7 - ((ulonglong)uVar30 ^ 0xb9d1e492)) >> 0x17;
  uVar31 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar7 + -0x960) = uVar32 ^ CONCAT44(uVar17,uVar17);
  uVar40 = (uVar40 ^ uVar33) << (((byte)uVar14 ^ 0xd7) & 0x3f);
  *(ulonglong *)(lVar7 + -0xd88) = uVar40 ^ uVar31;
  uVar17 = DAT_182671d20;
  uVar33 = CONCAT44(uVar19,uVar19);
  uVar32 = uVar32 | uVar40;
  *puVar1 = uVar32 ^ uVar33;
  uVar41 = CONCAT44(uVar17,uVar17);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar34 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *puVar3 = (*(ulonglong *)(DAT_182671c40 + -0xc90) ^ uVar47) - uVar32 ^ uVar41;
  uVar13 = DAT_182671c74;
  lVar7 = DAT_182671c40;
  uVar48 = (ulonglong)DAT_182671c74;
  puVar4 = (ulonglong *)(DAT_182671c40 + -0x110);
  uVar31 = CONCAT44(DAT_182671dbc,DAT_182671dbc) ^ uVar34 ^ uVar26 ^
           *(ulonglong *)(DAT_182671c40 + -0xc38) ^ *(ulonglong *)(DAT_182671c40 + -0x228);
  *puVar4 = uVar31;
  lVar8 = DAT_182671c40;
  uVar44 = CONCAT44(DAT_182671f70,DAT_182671f70);
  bVar28 = (byte)uVar29;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (*(ulonglong *)(lVar7 - (uVar48 ^ 0x67405a21)) ^ uVar34) >>
       (((byte)DAT_182671c7c ^ 199) & 0x3f) ^ uVar44;
  uVar32 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c6c ^ 0x2626b3ad)) =
       (uVar31 ^ uVar34) << ((bVar28 ^ 0xd0) & 0x3f) ^ uVar32;
  puVar35 = (ulonglong *)(lVar8 - ((ulonglong)DAT_182671c8c ^ 0x103c0473));
  uVar40 = CONCAT44(DAT_182671e00,DAT_182671e00);
  uVar31 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar8 + -0x960) = (*puVar2 ^ uVar32 | *puVar35 ^ uVar44) ^ uVar40;
  *(undefined8 *)(lVar8 - (uVar31 ^ 0x5b316bd0)) = 0xc1295e6da4;
  uVar45 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  uVar31 = (ulonglong)DAT_182671c80;
  uVar36 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar8 + -0x228) =
       (uVar26 ^ *(ulonglong *)(lVar8 + -0xc38)) - (uVar40 ^ *(ulonglong *)(lVar8 + -0x960)) ^
       uVar45;
  uVar19 = DAT_182671ea0;
  uVar9 = DAT_182671c58;
  bVar22 = (byte)DAT_182671c58;
  uVar31 = *(ulonglong *)(lVar8 - (uVar31 ^ 0x1f136ff7)) ^ uVar36 ^ uVar40 ^ uVar41 ^
           *(ulonglong *)(lVar8 + -0x960);
  uVar32 = CONCAT44(DAT_182671d60,DAT_182671d60);
  puVar27 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0x103c03a3));
  *puVar4 = uVar31;
  local_100 = (byte)uVar11;
  *puVar27 = (uVar31 ^ uVar36) >> ((bVar22 ^ 0xcf) & 0x3f) ^ uVar32;
  uVar17 = DAT_182671e8c;
  uVar15 = DAT_182671c7c;
  lVar7 = DAT_182671c40;
  uVar31 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (uVar36 ^ *puVar4) << ((local_100 ^ 0x84) & 0x3f) ^ uVar31;
  lVar8 = DAT_182671c40;
  uVar26 = CONCAT44(uVar17,uVar17);
  puVar37 = (ulonglong *)(lVar7 - (uVar48 ^ 0x674057a1));
  *puVar37 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0x8c58e747)) ^ uVar31 |
             *puVar2 ^ uVar32) ^ uVar26;
  uVar16 = DAT_182671c88;
  uVar31 = *puVar1;
  *(ulonglong *)(lVar8 + -0xc38) =
       (*puVar1 ^ uVar33) <<
       ((*(byte *)(lVar8 - ((ulonglong)uVar15 ^ 0x8c58e767)) ^ (byte)uVar18) & 0x3f);
  uVar17 = DAT_182671d34;
  uVar32 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar8 + -0x960) =
       (uVar41 ^ *puVar3) - (*(ulonglong *)(lVar8 + -0xc90) ^ uVar26) ^ uVar32;
  uVar42 = CONCAT44(uVar17,uVar17);
  uVar31 = uVar31 ^ uVar42 ^ uVar45 ^ uVar33 ^ *(ulonglong *)(lVar8 + -0x228);
  uVar33 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *puVar4 = uVar31;
  local_f0 = (byte)uVar30;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar12 ^ 0x5b316d38)) =
       (uVar31 ^ uVar42) >> (((byte)uVar16 ^ 0x39) & 0x3f) ^ uVar33;
  uVar31 = (uVar42 ^ *puVar4) << ((local_f0 ^ 0xed) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar31 ^ CONCAT44(DAT_182671cc4,DAT_182671cc4);
  uVar17 = DAT_182671e80;
  lVar7 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar40 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = (uVar31 | uVar33 ^ *puVar2) ^ uVar36;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c90 ^ 0x6de3b453)) =
       (uVar45 ^ *(ulonglong *)(lVar7 + -0x228)) -
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar30 ^ 0xb9d1e362)) ^ uVar36) ^ uVar40;
  *puVar3 = CONCAT44(DAT_182671c68,uVar25) ^ 0x5bb27135036431d;
  uVar45 = CONCAT44(DAT_182671dac,DAT_182671dac);
  puVar24 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671c6c ^ 0x2626b15d));
  *puVar24 = *(ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0x5b316e20)) ^ uVar45 ^ uVar36 ^ uVar32 ^
             *(ulonglong *)(lVar7 + -0xd88);
  *puVar4 = 0xd1d5217c3828b27d - (CONCAT44(uVar11,uVar9) ^ 0x671d6d5cd1527df9);
  uVar12 = DAT_182671c94;
  uVar31 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0x85306a78)) =
       (uVar45 ^ *puVar1) >> ((bVar28 ^ 0xc6) & 0x3f) ^ uVar31;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (CONCAT44(uVar14,uVar12) ^ 0x347051536a0c0bf9) <<
       (((byte)uVar17 ^ *(byte *)(DAT_182671c40 + -0xd88)) & 0x3f);
  uVar36 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c80 ^ 0x1f136607)) =
       (uVar45 ^ *puVar1) << 0x32 ^ uVar36;
  lVar7 = DAT_182671c40;
  uVar43 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar41 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x67405149)) ^ uVar31 |
           uVar36 ^ *(ulonglong *)(DAT_182671c40 + -0x228);
  *puVar3 = uVar41 ^ uVar43;
  uVar31 = (ulonglong)DAT_182671c68;
  uVar32 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x7dffb09b)) ^ uVar32) -
           (CONCAT44(uVar10,DAT_182671c88) ^ 0x3c7185d10a8bf2a8);
  *puVar4 = uVar32 ^ CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar12 = DAT_182671c6c;
  lVar7 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671d90,DAT_182671d90);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       uVar32 - (*(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x94da5bd8)) ^ uVar43) ^ uVar34;
  uVar17 = DAT_182671e28;
  *(ulonglong *)(lVar7 + -0xda8) =
       uVar41 - (CONCAT44(DAT_182671c94,uVar12) ^ 0xc0ec671c1acf6183) ^ uVar33;
  uVar41 = CONCAT44(uVar17,uVar17);
  uVar31 = uVar41 ^ uVar40 ^ *(ulonglong *)(lVar7 + -0xc90) ^ uVar26 ^
           *(ulonglong *)(lVar7 + -0xc38);
  *puVar1 = uVar31;
  uVar32 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0xb7d30286)) =
       (uVar31 ^ uVar41) >> ((bVar28 ^ 0xd8) & 0x3f) ^ uVar32;
  uVar12 = DAT_182671c64;
  lVar7 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0x4bc508de)) =
       ((uVar41 ^ *puVar1) << 0x30 | uVar32 ^ *puVar2) ^ uVar31;
  uVar41 = CONCAT44(DAT_182671d10,DAT_182671d10);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c84 ^ 0x462ad549)) =
       ((uVar40 ^ *(ulonglong *)(lVar7 + -0xc38)) - (CONCAT44(uVar10,uVar12) ^ 0x5d217d87337c905d))
       - (uVar31 ^ *(ulonglong *)(lVar7 + -0x960)) ^ uVar41;
  uVar26 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar31 = (CONCAT44(uVar11,uVar11) ^ 0xe9849afe61434380) +
           (uVar31 ^ *(ulonglong *)(lVar7 + -0x960));
  uVar32 = uVar31 ^ uVar26;
  bVar22 = (byte)DAT_182671c7c;
  *puVar1 = uVar32;
  *puVar2 = uVar31 << ((bVar22 ^ 0xe2) & 0x3f);
  uVar17 = DAT_182671c9c;
  uVar31 = (ulonglong)DAT_182671e98;
  uVar46 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar7 + -0xc38) =
       (uVar48 << 0x19 | (ulonglong)(DAT_182671c68 >> 7)) ^ 0x16325cd014ba0d3;
  uVar40 = uVar46 ^ uVar26 ^ uVar32 ^ uVar34 ^ *(ulonglong *)(lVar7 + -0xd88);
  uVar43 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar7 + -0x228) = uVar40;
  uVar31 = uVar40 >> 0x20 ^ uVar43 ^ uVar31;
  uVar32 = (ulonglong)DAT_182671c58;
  *puVar3 = uVar31;
  uVar18 = DAT_182671f38;
  uVar26 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *puVar4 = (uVar46 ^ uVar40) << 0x20 ^ uVar26;
  uVar17 = DAT_182671ea8;
  lVar7 = DAT_182671c40;
  uVar40 = CONCAT44(uVar18,uVar18);
  puVar5 = (ulonglong *)(DAT_182671c40 + -0xd88);
  uVar26 = *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x7dffb8eb)) ^ uVar26 | uVar43 ^ uVar31;
  uVar43 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar26 ^ uVar40;
  uVar31 = *(ulonglong *)(lVar7 + -0xc90);
  uVar46 = CONCAT44(uVar17,uVar17);
  uVar32 = *(ulonglong *)(lVar7 + -0xda8);
  *puVar2 = (uVar34 ^ *puVar5) - uVar26 ^ uVar46;
  *(ulonglong *)(lVar7 - (uVar43 ^ 0x85306888)) = uVar41 ^ uVar33 ^ uVar31 ^ uVar44 ^ uVar32;
  uVar11 = DAT_182671c68;
  uVar33 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar31 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c7c ^ 0x8c58e6d7)) =
       (*puVar1 ^ uVar44) >> ((bVar28 ^ 0xe8) & 0x3f) ^ uVar33;
  uVar17 = DAT_182671e04;
  uVar32 = (*(ulonglong *)(lVar7 - (uVar31 ^ 0x94da5888)) ^ uVar44) <<
           (((byte)DAT_182671c6c ^ 0xf5) & 0x3f);
  *(ulonglong *)(lVar7 + -0x228) = uVar32 ^ uVar45;
  uVar26 = CONCAT44(uVar17,uVar17);
  uVar32 = uVar33 ^ *(ulonglong *)(lVar7 + -0xc38) | uVar32;
  uVar33 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *puVar3 = uVar32 ^ uVar26;
  uVar31 = (ulonglong)DAT_182671c80;
  *puVar4 = (uVar41 ^ *(ulonglong *)(DAT_182671c40 + -0xc90)) - uVar32 ^ uVar33;
  lVar7 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - (uVar31 ^ 0x1f1363ab)) = 0xdac9d147 >> ((local_f0 ^ 0xf6) & 0x1f);
  uVar41 = CONCAT44(DAT_182671f50,DAT_182671f50);
  uVar31 = uVar46 ^ *puVar2 ^ uVar41 ^ uVar26 ^ *puVar3;
  *(ulonglong *)(lVar7 + -0xd88) = uVar31;
  uVar32 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(lVar7 - (uVar38 ^ 0x6fe8b320)) =
       (uVar31 ^ uVar41) >> (((byte)DAT_182671c90 ^ 0x51) & 0x3f) ^ uVar32;
  uVar31 = (*(ulonglong *)(lVar7 + -0xd88) ^ uVar41) << (((byte)uVar11 ^ 6) & 0x3f);
  *puVar1 = uVar31 ^ uVar47;
  uVar17 = DAT_182671e54;
  uVar26 = CONCAT44(DAT_182671d08,DAT_182671d08);
  uVar31 = *puVar35 ^ uVar32 | uVar31;
  *(ulonglong *)(lVar7 + -0xc38) = uVar31 ^ uVar26;
  uVar18 = DAT_182671e10;
  uVar41 = CONCAT44(uVar17,uVar17);
  uVar44 = (uVar46 ^ *puVar2) - uVar31 ^ uVar41;
  *(ulonglong *)(lVar7 + -0x228) = uVar44;
  uVar17 = DAT_182671ce0;
  uVar31 = CONCAT44(uVar18,uVar18);
  uVar40 = *(ulonglong *)(lVar7 - (uVar43 ^ 0x85306960)) ^ uVar40 ^ *puVar4 ^ uVar31 ^ uVar33;
  bVar22 = (byte)DAT_182671c90;
  *(ulonglong *)(lVar7 + -0xc90) = uVar40;
  uVar18 = DAT_182671fa0;
  uVar32 = (uVar40 ^ uVar31) >> ((bVar22 ^ 0x7d) & 0x3f);
  *(ulonglong *)(lVar7 + -0xd88) = uVar32 ^ CONCAT44(uVar17,uVar17);
  lVar7 = DAT_182671c40;
  local_f8 = (byte)uVar25;
  uVar34 = (uVar40 ^ uVar31) << ((local_f8 ^ 0x94) & 0x3f);
  uVar31 = *puVar4;
  *puVar1 = uVar34 ^ CONCAT44(uVar18,uVar18);
  uVar18 = DAT_182671f00;
  uVar34 = uVar34 | uVar32;
  uVar32 = CONCAT44(DAT_182671e70,DAT_182671e70);
  uVar45 = uVar34 ^ uVar32;
  *(ulonglong *)(lVar7 + -0x960) = uVar45;
  uVar17 = DAT_182671db4;
  uVar40 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 + -0xda8) = (uVar31 ^ uVar33) - uVar34 ^ uVar40;
  bVar22 = (byte)DAT_182671c54;
  uVar31 = CONCAT44(uVar17,uVar17);
  uVar33 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar32 = uVar45 ^ uVar44 ^ uVar31 ^ uVar32 ^ uVar41;
  *puVar3 = uVar32;
  *(ulonglong *)(lVar7 - (uVar49 ^ 0x40212dd0)) =
       (uVar32 ^ uVar31) >> ((bVar22 ^ 0x75) & 0x3f) ^ uVar33;
  uVar32 = (uVar31 ^ *puVar3) << ((local_f0 ^ 0xf8) & 0x3f);
  uVar31 = *(ulonglong *)(lVar7 + -0xc90);
  uVar45 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  *puVar2 = uVar32 ^ uVar45;
  uVar32 = uVar31 ^ uVar33 | uVar32;
  uVar43 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar33 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar7 + -0xd88) = uVar32 ^ uVar43;
  uVar11 = DAT_182671cd8;
  lVar8 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *puVar24 = (*(ulonglong *)(lVar7 + -0x228) ^ uVar41) - uVar32 ^ uVar33;
  uVar26 = *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c50 ^ 0x5b316b78)) ^
           *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c68 ^ 0x94da5da8)) ^ uVar34 ^ uVar40 ^
           uVar26;
  uVar32 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *puVar4 = uVar26;
  uVar41 = CONCAT44(uVar25,DAT_182671c94);
  uVar31 = *puVar2;
  *(ulonglong *)(lVar8 + -0x960) =
       ((ulonglong)uVar11 << 0x14 | (ulonglong)(uVar11 >> 0xc)) ^ uVar26 >> 0xc ^ uVar32;
  bVar22 = (byte)DAT_182671c7c;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar29 ^ 0x6fe9b410)) =
       uVar41 ^ uVar31 ^ uVar45 ^ 0xc343d8a64de93d0f;
  uVar31 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *puVar37 = (*puVar4 ^ uVar34) << ((bVar22 ^ 0xdb) & 0x3f) ^ uVar31;
  uVar26 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c8c ^ 0x103c0bf3)) =
       (*(ulonglong *)(lVar8 + -0x960) ^ uVar32 | *(ulonglong *)(lVar8 + -0xc90) ^ uVar31) ^ uVar26;
  uVar11 = DAT_182671cec;
  uVar31 = (ulonglong)DAT_182671cec;
  *(ulonglong *)(lVar8 + -0xc38) =
       (*(ulonglong *)(lVar8 + -0xda8) ^ uVar40) - (*(ulonglong *)(lVar8 + -0x228) ^ uVar26) ^
       uVar42;
  *puVar27 = *puVar1 ^ *(ulonglong *)(lVar8 + -0x228) ^ CONCAT44(uVar11,uVar11) ^ uVar26 ^ uVar33;
  uVar32 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *puVar3 = ((ulonglong)(uVar11 >> 0x19) | uVar31 << 7) ^ *puVar2 >> 0x19 ^ uVar32;
  *(ulonglong *)(lVar8 - (uVar38 ^ 0x6fe8bf98)) =
       (*puVar2 ^ CONCAT44(uVar11,uVar11)) << 0x27 ^ uVar39;
  uVar11 = DAT_182671c68;
  uVar26 = uVar39 ^ *puVar4 | uVar32 ^ *puVar3;
  uVar31 = *puVar1;
  uVar32 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(lVar8 + -0xc90) = uVar26 ^ uVar36;
  uVar17 = DAT_182671d84;
  uVar31 = (uVar31 ^ uVar33) - (CONCAT44(uVar10,uVar11) ^ 0x60ef19c58e00aebd);
  *(ulonglong *)(lVar8 + -0x960) = uVar31 ^ uVar32;
  uVar18 = DAT_182671da0;
  *(ulonglong *)(lVar8 + -0xda8) = uVar31 - uVar26 ^ CONCAT44(uVar17,uVar17);
  uVar32 = (ulonglong)DAT_182671fb0;
  uVar38 = (ulonglong)DAT_182671c94;
  uVar33 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  uVar31 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c84 ^ 0x462adbf1)) =
       uVar26 - (CONCAT44(uVar29,uVar30) ^ 0x1c6a63744f39248a) ^ CONCAT44(uVar18,uVar18);
  puVar6 = *(undefined1 **)(lVar8 + -0x990);
  *puVar2 = *(ulonglong *)(lVar8 - (uVar31 ^ 0x1f136817)) ^ uVar42 ^ *(ulonglong *)(lVar8 + -0xd88)
            ^ uVar33 ^ uVar43;
  *(undefined1 *)(lVar8 - (uVar38 ^ 0x5b3165a9)) = *puVar6;
  uVar17 = DAT_182671da4;
  uVar38 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar8 - (uVar23 ^ 0x4bc50a66)) = (*puVar2 >> 0x20 ^ uVar32) >> 1 ^ uVar38;
  uVar31 = *puVar3;
  uVar32 = (*puVar2 ^ uVar33) << 0x1f;
  *puVar4 = uVar32 ^ CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *puVar1 = (uVar32 | uVar38 ^ uVar31) ^ CONCAT44(uVar17,uVar17);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar20 ^ uVar29) * 4) = uVar21;
  return;
}



############ FUN_ 180fab5d0 size=4998 ############

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

void FUN_180fab5d0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  byte *pbVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  uint uVar32;
  ulonglong uVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  byte local_res20;
  
  uVar14 = DAT_182671d0c;
  uVar13 = DAT_182671c94;
  uVar10 = DAT_182671c88;
  uVar7 = DAT_182671c6c;
  uVar6 = DAT_182671c64;
  iVar5 = DAT_182671c60;
  uVar24 = DAT_182671c5c;
  lVar2 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c94;
  uVar37 = (ulonglong)DAT_182671c88;
  uVar35 = (ulonglong)DAT_182671c5c;
  DAT_182671c58 = DAT_182671c94 + DAT_182671c60;
  uVar45 = ~DAT_182671c6c;
  DAT_182671c8c = DAT_182671c54 & DAT_182671c88;
  uVar32 = DAT_182671c64 * DAT_182671c5c;
  uVar29 = (DAT_182671c50 << 0x10 | DAT_182671c50 & 0xff00) << 8 | DAT_182671c50 >> 8 & 0xff00 |
           DAT_182671c50 >> 0x18;
  uVar20 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar29 ^ 0xc0862c55) + (longlong)DAT_182672294) ^
           DAT_182671c50;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182672294);
  uVar42 = (ulonglong)DAT_182671c64;
  uVar36 = *(ulonglong *)(DAT_182671c40 + -0x2b0);
  uVar39 = CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar25 = (ulonglong)DAT_182671c6c;
  DAT_182671c74 = uVar32;
  DAT_182671c7c = uVar29;
  DAT_182671c90 = uVar45;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       CONCAT44(DAT_182671c50,DAT_182671c6c) ^ uVar36 ^ uVar39 ^ 0x3767d01a70b3b07f;
  uVar11 = DAT_182671c8c;
  bVar41 = (byte)uVar14 ^ (byte)DAT_182671d74;
  pbVar27 = (byte *)(*(longlong *)(lVar2 + -0x1d0) + 0x3d);
  uVar30 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0x498) = (ulonglong)pbVar27 ^ (ulonglong)DAT_182671e4c;
  uVar36 = (uVar36 ^ uVar39) >> (((byte)uVar32 ^ 0xa8) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xf0) = uVar36;
  uVar16 = DAT_182671f38;
  uVar9 = DAT_182671c80;
  bVar41 = bVar41 ^ (byte)uVar36;
  *(byte *)(lVar2 + -0xd89) = bVar41;
  *pbVar27 = bVar41 ^ (byte)DAT_182671d18 ^ (byte)DAT_182671d74;
  uVar15 = DAT_182671d8c;
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(DAT_182671c50,uVar11) ^ 0x5d2c86c01008611d) +
            (CONCAT44(uVar10,uVar24) ^ 0x141a613e20040280) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x668) = (ulonglong)puVar31 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_182671ed0;
  lVar2 = DAT_182671c40;
  uVar26 = DAT_182671c84 ^ uVar9;
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar33 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar39 = (ulonglong)DAT_182671c84;
  bVar41 = (byte)DAT_182671c84;
  DAT_182671c78 = uVar26;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar26 ^ 0x652b28e5)) = *puVar31 ^ uVar33 ^ uVar36;
  *(undefined8 *)(lVar2 + -0x760) = 0x7ad2c8;
  uVar4 = DAT_182671c54;
  *(ulonglong *)(lVar2 + -0x510) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0x380)) >> ((bVar41 ^ 0x28) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar21 = uVar13 + iVar5;
  pbVar27 = (byte *)((CONCAT44(uVar9,iVar5) ^ 0x18cae17d7146e7c0) + *(longlong *)(lVar2 + -0x1d0));
  bVar41 = *(byte *)(lVar2 - (uVar39 ^ 0x7de1cf08)) ^ (byte)uVar16 ^ (byte)DAT_182671eac;
  uVar36 = (ulonglong)DAT_182671fa8;
  *(byte *)(lVar2 + -0xb32) = bVar41;
  bVar41 = bVar41 ^ (byte)DAT_182671eac ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 + -0x5b0) = (ulonglong)pbVar27 ^ uVar36;
  uVar18 = DAT_182671f78;
  *(ulonglong *)(lVar2 + -0x5e8) =
       CONCAT44(uVar4,uVar13) ^ CONCAT44(uVar21,DAT_182671c50) ^ 0xa46976c273767600;
  *pbVar27 = bVar41;
  uVar17 = DAT_182671ea4;
  uVar16 = DAT_182671d80;
  uVar15 = DAT_182671d30;
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + 0x38 +
            (CONCAT44(uVar26,uVar6) ^ 0x652b2b65fd5bf713) * 0x60);
  *(ulonglong *)(lVar2 + -0x910) = (ulonglong)puVar31 ^ CONCAT44(uVar18,uVar18);
  bVar41 = (byte)DAT_182671ce0;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x228) = *puVar31 ^ uVar36 ^ uVar33;
  *(ulonglong *)(CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar2 + -0xab0)) =
       CONCAT44(uVar11,uVar4) ^ 0xeca8f7222b577920;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (uVar36 ^ *(ulonglong *)(DAT_182671c40 + -0x228)) >> (((byte)uVar7 ^ 0xa5) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  lVar2 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671e2c;
  bVar28 = *(byte *)(DAT_182671c40 - (uVar39 ^ 0x7de1c1c0)) ^ (byte)uVar17 ^ bVar41;
  pbVar27 = (byte *)(*(longlong *)(DAT_182671c40 + -0x1d0) + 0x3f);
  bVar41 = bVar41 ^ (byte)DAT_182671d18;
  *(byte *)(DAT_182671c40 + -0xa95) = bVar28;
  *(ulonglong *)(lVar2 + -0x718) = (ulonglong)pbVar27 ^ uVar36;
  uVar36 = CONCAT44(DAT_182671d88,DAT_182671d88);
  *pbVar27 = bVar41 ^ bVar28;
  uVar16 = DAT_182671ef4;
  uVar15 = DAT_182671dec;
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar29,uVar13) ^ 0xc0862c5da5f6fa94) +
            (CONCAT44(uVar7,uVar26) ^ 0x31ef3f9d652b2b65) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0xb98) = (ulonglong)puVar31 ^ uVar36;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0xfd5bfc1b)) = *puVar31 ^ uVar36 ^ uVar33;
  lVar2 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671ca8;
  uVar36 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar45 ^ 0xce10cb6a)) ^ uVar36) >>
           ((byte)uVar32 & 0x3f) ^ CONCAT44(uVar16,uVar16);
  bVar28 = (byte)uVar16 ^ (byte)DAT_182671dc0 ^ (byte)uVar36;
  bVar41 = (byte)DAT_182671dc0 ^ bVar28 ^ (byte)DAT_182671d18;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar36;
  *(byte *)(lVar2 + -0xa11) = bVar28;
  *(ulonglong *)(lVar2 + -0x398) =
       *(longlong *)(lVar2 - ((ulonglong)uVar21 ^ 0x173de34a)) +
       (CONCAT44(uVar32,uVar9) ^ 0xa235af8018cae13d) ^ uVar42;
  uVar36 = (ulonglong)DAT_182671d5c;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c50 ^ 0x5d2c8558)) ^ uVar42) = bVar41;
  *(byte *)(lVar2 + -0x2ba) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x6f8) ^ uVar36) ^ (byte)DAT_182671f14;
  uVar18 = DAT_182671f64;
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar11,uVar24) ^ 0x1008611a20040288) * 8);
  *(ulonglong *)(lVar2 + -0xd50) = (ulonglong)puVar31 ^ CONCAT44(DAT_182671dcc,DAT_182671dcc);
  uVar19 = DAT_182671f7c;
  uVar15 = DAT_182671ef0;
  *(ulonglong *)(lVar2 + -0x680) =
       (CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar2 + -0xbd8)) >>
       ((*(byte *)(lVar2 + -0xb18) ^ (byte)uVar18) & 0x3f);
  uVar40 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x652b26cd)) =
       *puVar31 ^ CONCAT44(uVar15,uVar15) ^ uVar33;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xb20) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0x141a61ce)) ^ CONCAT44(uVar14,uVar14)) -
       (CONCAT44(uVar9,iVar5) ^ 0x92a27a1490686438);
  bVar41 = (byte)DAT_182671efc;
  uVar8 = DAT_182671c70;
  uVar37 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x7de1c010)) =
       (*(ulonglong *)(lVar2 + -0xda8) ^ CONCAT44(uVar15,uVar15)) >> (((byte)uVar4 ^ 0x53) & 0x3f) ^
       uVar40;
  pbVar27 = (byte *)((CONCAT44(uVar7,uVar9) ^ 0x31ef3f9d18cae13c) + *(longlong *)(lVar3 + -0x1d0));
  uVar36 = (ulonglong)DAT_182671ee0;
  bVar28 = *(byte *)(lVar3 + -0xa08) ^ bVar41 ^ (byte)uVar19;
  *(byte *)(lVar3 + -0x5e9) = bVar28;
  *(ulonglong *)(lVar3 + -0xd10) = (ulonglong)pbVar27 ^ uVar36;
  uVar22 = ~uVar8;
  DAT_182671c4c = uVar22;
  *pbVar27 = bVar41 ^ bVar28 ^ (byte)DAT_182671d18;
  uVar17 = DAT_182671f3c;
  uVar14 = _DAT_182671cf0;
  uVar44 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar3 + -0x2e8) =
       *(longlong *)(lVar3 + -0x310) +
       ((CONCAT44(uVar22,uVar8) ^ 0xdff3f96e200c0699) +
       (CONCAT44(uVar22,uVar8) ^ 0xdff3f96e200c0691) * 0xc) * 8 ^ uVar44;
  uVar36 = (ulonglong)DAT_182671d44;
  uVar42 = CONCAT44(uVar14,uVar14);
  bVar41 = (byte)uVar17 ^ (byte)DAT_182671d70;
  local_res20 = (byte)(DAT_182671c50 >> 0x18);
  uVar39 = *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xdff3fb86)) ^ uVar44) ^
           uVar42 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x920) = uVar39;
  uVar39 = (uVar39 ^ uVar42) >> ((local_res20 ^ 0x4d) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0xa78) = uVar39;
  pbVar27 = (byte *)((CONCAT44(uVar7,uVar45) ^ 0x31ef3f9dce10c020) + *(longlong *)(lVar3 + -0x1d0));
  *(byte *)(lVar3 + -0x71a) = bVar41 ^ (byte)uVar39;
  *(ulonglong *)(lVar3 + -0x560) = (ulonglong)pbVar27 ^ uVar36;
  *pbVar27 = *(byte *)(lVar3 - (uVar43 ^ 0xa5f6fd86)) ^ (byte)DAT_182671d70 ^ (byte)DAT_182671d18;
  uVar14 = DAT_182671cd0;
  uVar4 = DAT_182671c48;
  uVar39 = (ulonglong)DAT_182671c48;
  uVar23 = DAT_182671c48 << 0x10 | DAT_182671c48 >> 0x10;
  bVar38 = (byte)DAT_182671c48;
  *(ulonglong *)(lVar3 + -0xa50) = 0xf79311727e78ce0f >> ((bVar38 ^ 0x2e) & 0x3f);
  uVar36 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x4c014211)) =
       *(longlong *)(lVar3 + -0x310) + (CONCAT44(uVar4,uVar4) ^ 0x44014c0144014c09) * 8 ^ uVar36;
  uVar14 = DAT_182671f00;
  uVar42 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(lVar3 + -0xa70) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x610) ^ uVar36) ^ uVar42 ^ uVar33;
  uVar42 = uVar42 ^ *(ulonglong *)(lVar3 + -0xa70);
  uVar36 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  bVar41 = (byte)DAT_182671cb0;
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar3 + -0x7e8)) <<
       ((*(byte *)(lVar3 - ((ulonglong)uVar4 ^ 0x440141a9)) ^ (byte)uVar15) & 0x3f);
  lVar2 = DAT_182671c40;
  *(int *)(lVar3 + -0x670) = *(int *)(lVar3 + -0x4ac) - *(int *)(lVar3 + -0x9dc);
  *(ulonglong *)(lVar3 + -0x628) = uVar42 >> ((bVar38 ^ 0x19) & 0x3f) ^ uVar36;
  lVar3 = DAT_182671c40;
  bVar41 = *(byte *)(lVar2 - ((ulonglong)uVar23 ^ 0x4c014229)) ^ bVar41;
  *(byte *)(DAT_182671c40 + -0x53a) = bVar41 ^ (byte)DAT_182671f94;
  uVar14 = DAT_182671dc4;
  bVar41 = bVar41 ^ (byte)DAT_182671d18;
  uVar36 = (ulonglong)DAT_182671d04;
  *(ulonglong *)(lVar3 + -0x8f0) =
       uVar42 >> (((byte)DAT_182671f68 ^ *(byte *)(lVar3 + -0xc90)) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb00) =
       (CONCAT44(uVar13,uVar23) ^ 0xa5f6fa9c4c014442) + *(longlong *)(lVar3 + -0x1d0) ^ uVar36;
  uVar42 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar39 ^ 0x44014701)) ^ uVar36) = bVar41;
  uVar12 = DAT_182671c8c;
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar3 - (uVar37 ^ 0x200c0581)) +
            ((CONCAT44(uVar7,uVar23) ^ 0x31ef3f9d4c014409) +
            (CONCAT44(uVar45,DAT_182671c50) ^ 0xce10c0625d2c86c0) * 0xc) * 8);
  uVar23 = DAT_182671c8c << 0x10 | DAT_182671c8c >> 0x10;
  *(ulonglong *)(lVar3 + -0xd68) = (ulonglong)puVar31 ^ uVar42;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x4b8) = *(ulonglong *)(uVar44 ^ *(ulonglong *)(lVar3 + -0x2e8)) ^ uVar33;
  uVar43 = CONCAT44(DAT_182671fac,DAT_182671fac);
  DAT_182671c68 = uVar23;
  *(ulonglong *)(lVar3 + -0xc38) = *puVar31 ^ uVar43 ^ uVar33;
  bVar41 = (byte)DAT_182671e94;
  bVar34 = (byte)(uVar12 >> 0x10);
  *(ulonglong *)(lVar2 + -0x3d8) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0x10086d22)) ^ uVar43) >> ((bVar34 ^ 0x28) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x10086b7a)) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar2 + -0xd88)) -
       (*(ulonglong *)(lVar2 + -0xb18) ^ CONCAT44(uVar18,uVar18));
  uVar36 = (ulonglong)DAT_182671d14;
  bVar28 = *(byte *)(lVar2 - ((ulonglong)uVar23 ^ 0x611a13d0)) ^ (byte)uVar14;
  *(byte *)(lVar2 + -0x651) = bVar28 ^ bVar41;
  bVar28 = bVar28 ^ (byte)DAT_182671d18;
  pbVar27 = (byte *)(*(longlong *)(lVar2 + -0x1d0) + 0x44);
  *(ulonglong *)(lVar2 + -0x6d0) = (ulonglong)pbVar27 ^ uVar36;
  uVar42 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *pbVar27 = bVar28;
  uVar15 = DAT_182671f6c;
  uVar7 = DAT_182671e48;
  uVar36 = (ulonglong)DAT_182671e48;
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar6,uVar9) ^ 0xfd5bf71318cae175) +
            (CONCAT44(uVar11,uVar11) ^ 0x1008611a1008611a) * 0xc) * 8);
  *(uint *)(lVar2 + -0xa94) = *(uint *)(lVar2 + -0x6c0) | 0x151ce6ec;
  *(ulonglong *)(lVar2 + -0x6e8) = (ulonglong)puVar31 ^ uVar42;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x960) = CONCAT44(uVar7,uVar7) ^ *puVar31 ^ uVar33;
  *(uint *)(lVar2 + -0x76c) = (DAT_182671c54 ^ 0xffffffe1) << 0x18;
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 + -0x960) >> 0x20 ^ uVar36) >> 8 ^ CONCAT44(uVar15,uVar15);
  uVar36 = (ulonglong)DAT_182671edc;
  *(byte *)(lVar3 + -0x2c9) =
       *(byte *)(lVar3 - ((ulonglong)uVar32 ^ 0xa235a708)) ^ (byte)uVar15 ^ (byte)DAT_182671cf4;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x31ef343d)) = *(longlong *)(lVar3 + -0x1d0) + 0x45U ^ uVar36;
  bVar41 = *(byte *)(lVar3 + -0x2c9) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671cf4;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar43 ^ *(ulonglong *)(lVar3 + -0xc38) | 0xb41456e54b7ba7a1;
  *(byte *)(*(ulonglong *)(lVar3 + -0xba0) ^ uVar36) = bVar41;
  uVar36 = CONCAT44(DAT_182671de4,DAT_182671de4);
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) + 0x40 +
            (CONCAT44(uVar8,uVar11) ^ 0x200c06911008611a) * 0x60);
  *(ulonglong *)(lVar3 + -0x380) =
       CONCAT44(uVar26,uVar10) ^ *(ulonglong *)(lVar3 + -0xa50) ^ 0x101a896ae26d5092;
  uVar14 = DAT_182671f50;
  *(ulonglong *)(lVar3 + -0x588) = (ulonglong)puVar31 ^ uVar36;
  lVar2 = DAT_182671c40;
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar36 = *puVar31 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x760) = uVar36 ^ uVar42;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar29 ^ 0xc086294d)) =
       CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar3 + -0x888) | uVar36;
  uVar14 = DAT_182671e60;
  lVar3 = DAT_182671c40;
  bVar41 = (byte)DAT_182671cb4;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (*(ulonglong *)(lVar2 + -0x760) ^ uVar42) >> (((byte)uVar24 ^ 0xb0) & 0x3f) ^
       CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar36 = (ulonglong)DAT_182671fb4;
  bVar28 = *(byte *)(lVar3 - (uVar35 ^ 0x20040768)) ^ bVar41 ^ (byte)DAT_182671e44;
  *(byte *)(lVar3 + -0x262) = bVar28;
  pbVar27 = (byte *)(*(longlong *)(lVar3 - (uVar30 ^ 0x100860ca)) + 0x46);
  bVar41 = (byte)DAT_182671d18 ^ (byte)DAT_182671e44;
  *(ulonglong *)(lVar3 + -0x9d8) = (ulonglong)pbVar27 ^ uVar36;
  *pbVar27 = bVar41 ^ bVar28;
  uVar24 = DAT_182671fa8;
  puVar31 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) + (CONCAT44(uVar9,uVar23) ^ 0x18cae17d611a1000) * 8);
  *(ulonglong *)(lVar3 + -0x140) = (ulonglong)puVar31 ^ CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar36 = CONCAT44(uVar24,uVar24);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xdff3feae)) = *puVar31 ^ uVar33 ^ uVar36;
  *(ulonglong *)(CONCAT44(DAT_182671f74,DAT_182671f74) ^ *(ulonglong *)(lVar3 + -0xac0)) =
       CONCAT44(uVar29,uVar21) ^ 0x322a0fcd0cdfe392;
  *(ulonglong *)(lVar3 + -0xac0) = CONCAT44(uVar23,uVar45) ^ 0x77303c73fef55107;
  *(ulonglong *)(lVar3 + -0x140) = CONCAT44(uVar8,uVar10) ^ 0x4e1b5cae1a6d2f67;
  lVar2 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671fa0;
  uVar36 = (*(ulonglong *)(DAT_182671c40 + -0x7c0) ^ uVar36) >> ((bVar34 ^ 0x30) & 0x3f) ^
           CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar36;
  *(byte *)(lVar2 + -0xc01) = (byte)uVar14 ^ (byte)uVar36 ^ (byte)DAT_182671db0;
  bVar41 = (byte)DAT_182671d18 ^ (byte)DAT_182671db0;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x44014061)) =
       *(longlong *)(lVar2 - (uVar37 ^ 0x200c0741)) + (CONCAT44(uVar45,uVar21) ^ 0xce10c062173de2dd)
       ^ uVar30;
  *(byte *)(*(ulonglong *)(lVar2 + -0xc60) ^ uVar30) = bVar41 ^ *(byte *)(lVar2 + -0xc01);
  uVar36 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *(ulonglong *)(lVar2 + -0xa0) =
       (CONCAT44(uVar6,uVar29) ^ 0xfd5bf713c0862c5d) * 0x60 + *(longlong *)(lVar2 + -0x310) + 0x48 ^
       uVar36;
  *(ulonglong *)(lVar2 + -0xb08) =
       (CONCAT44(DAT_182671c50,DAT_182671c50) ^ 0x4652dcf94350900f) >> ((bVar38 ^ 3) & 0x3f);
  uVar37 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar2 + -0xbd8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar25 ^ 0x31ef3f3d)) ^ uVar36) ^ uVar33 ^ uVar37;
  *(ulonglong *)(lVar2 + -0xa0) = CONCAT44(iVar5,uVar13) ^ 0x63f54a231a152da8;
  uVar14 = DAT_182671d80;
  uVar24 = DAT_182671c58 - DAT_182671c48;
  uVar36 = (ulonglong)DAT_182671cb8;
  DAT_182671c50 = uVar24;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x44014a81)) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0xbd8)) >> (((byte)uVar24 ^ 0x99) & 0x3f) ^ uVar40;
  *(byte *)(lVar2 + -0x8c1) = (byte)uVar19 ^ *(byte *)(lVar2 + -0x680) ^ (byte)uVar14;
  pbVar27 = (byte *)((CONCAT44(uVar24,uVar4) ^ 0xd33c969944014c49) + *(longlong *)(lVar2 + -0x1d0));
  *(ulonglong *)(lVar2 + -0x810) = (ulonglong)pbVar27 ^ uVar36;
  *pbVar27 = *(byte *)(lVar2 - ((ulonglong)uVar21 ^ 0x173dea5b)) ^ (byte)DAT_182671d18 ^
             (byte)uVar14;
  uVar14 = DAT_182671e04;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x44014cf1)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0xd33c9019)) ^ uVar40 | 0x4042bc0d148c8f0e;
  *(ulonglong *)(lVar2 + -0xb30) =
       *(longlong *)(lVar2 + -0x310) + 0x48 + (CONCAT44(uVar21,uVar21) ^ 0x173de29a173de29a) * 0x60
       ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar45) * 4) = uVar20;
  return;
}



############ FUN_ 181009010 size=5620 ############

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

void FUN_181009010(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong *puVar58;
  uint uVar59;
  ulonglong uVar60;
  ulonglong *puVar61;
  byte local_130;
  byte local_100;
  byte local_c0;
  
  uVar10 = DAT_182671c8c;
  uVar9 = DAT_182671c88;
  uVar8 = DAT_182671c80;
  uVar6 = DAT_182671c64;
  uVar5 = DAT_182671c5c;
  uVar4 = DAT_182671c54;
  uVar3 = DAT_182671c4c;
  lVar1 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c54;
  uVar35 = (ulonglong)DAT_182671c64;
  uVar42 = (ulonglong)DAT_182671c4c;
  uVar31 = (ulonglong)DAT_182671c8c;
  uVar25 = (ulonglong)DAT_182671c88;
  uVar53 = (ulonglong)DAT_182671c5c;
  uVar45 = DAT_182671c54 & DAT_182671c64;
  uVar20 = DAT_182671c4c * DAT_182671c8c;
  uVar49 = DAT_182671c88 + DAT_182671c5c;
  uVar32 = (DAT_182671c80 << 0x10 | DAT_182671c80 & 0xff00) << 8 | DAT_182671c80 >> 8 & 0xff00 |
           DAT_182671c80 >> 0x18;
  uVar59 = *(uint *)(&DAT_182613218 + DAT_1826720c4) ^ DAT_182671c54;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_1826720c4) ^ DAT_182671c64;
  uVar57 = (ulonglong)uVar20;
  uVar19 = (ulonglong)uVar45;
  bVar16 = (byte)DAT_182671c8c;
  DAT_182671c48 = uVar49;
  DAT_182671c6c = uVar20;
  DAT_182671c74 = uVar45;
  DAT_182671c94 = uVar32;
  *(ulonglong *)(DAT_182671c40 + -0x380) = 0xa63dfa2cf32d6e32 >> ((bVar16 ^ 0xd5) & 0x3f);
  uVar13 = DAT_182671f6c;
  uVar46 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar54 = CONCAT44(DAT_182671f90,DAT_182671f90);
  bVar34 = (byte)uVar6;
  *(ulonglong *)(lVar1 + -0x760) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0xbaebdb9c)) ^ uVar46) >>
       ((bVar34 ^ 0xfa) & 0x3f) ^ uVar54;
  bVar24 = (byte)uVar9;
  uVar60 = (ulonglong)uVar32;
  *(ulonglong *)(lVar1 - (uVar53 ^ 0x72f806ca)) =
       (*(ulonglong *)(lVar1 + -0xd88) ^ uVar46) << ((bVar24 ^ 0x33) & 0x3f) ^
       CONCAT44(uVar13,uVar13);
  uVar12 = DAT_182671d00;
  lVar1 = DAT_182671c40;
  puVar22 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar32 ^ 0x13b2a02e));
  uVar43 = CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar36 = *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x31160e37)) ^ CONCAT44(uVar13,uVar13) |
           uVar54 ^ *puVar22;
  uVar46 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  puVar30 = (ulonglong *)(DAT_182671c40 + -0xb20);
  bVar41 = *(byte *)(DAT_182671c40 + -0x30);
  uVar37 = uVar36 ^ uVar43;
  *(ulonglong *)(DAT_182671c40 + -0x4b8) = uVar37;
  uVar55 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0xb18) = (uVar46 ^ *puVar30) - uVar36 ^ uVar55;
  uVar12 = DAT_182671d7c;
  *(ulonglong *)(lVar1 + -0xc38) =
       (CONCAT44(uVar8,uVar4) ^ 0x96d289b2f7fed6d9) >> ((bVar41 ^ (byte)uVar13) & 0x3f);
  uVar47 = CONCAT44(uVar12,uVar12);
  uVar50 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar1 + -0xa60) =
       *(ulonglong *)(lVar1 - (uVar35 ^ 0x5c6bb3e6)) ^ uVar50 ^ uVar47 ^ uVar43 ^ uVar37;
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x590a0ab6)) =
       CONCAT44(uVar32,uVar45) ^ CONCAT44(uVar6,uVar20) ^ 0xe81ec5887b0e359;
  uVar13 = DAT_182671f38;
  lVar1 = DAT_182671c40;
  puVar23 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x72f80c9a));
  uVar26 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  uVar36 = (uVar47 ^ *puVar23) >> ((bVar16 ^ 199) & 0x3f);
  puVar30 = (ulonglong *)(DAT_182671c40 + -0xa60);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar36 ^ uVar26;
  uVar12 = DAT_182671f24;
  lVar2 = DAT_182671c40;
  uVar46 = CONCAT44(uVar13,uVar13);
  puVar61 = (ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0x4ea7bf9b));
  *(ulonglong *)(lVar1 + -0xd88) = (uVar47 ^ *puVar30) << ((bVar16 ^ 0xf9) & 0x3f) ^ uVar46;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xdff9fe98)) = (*puVar61 ^ uVar46 | uVar36) ^ uVar37;
  *(ulonglong *)(lVar2 + -0xb20) =
       (CONCAT44(uVar6,uVar3) ^ 0x73f3c5c26b4df156) << ((bVar24 ^ 0x1b) & 0x3f);
  uVar38 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar46 = (*(ulonglong *)(lVar2 - (uVar57 ^ 0xbaebd304)) ^ uVar50) -
           (*(ulonglong *)(lVar2 - (uVar60 ^ 0x13b2a5fe)) ^ uVar38);
  uVar50 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *(ulonglong *)(lVar2 + -0x30) = uVar46 ^ CONCAT44(DAT_182671d94,DAT_182671d94);
  *(ulonglong *)(lVar2 + -0xc38) =
       uVar46 - (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x4ea7b573)) ^ uVar37) ^ uVar50;
  uVar12 = DAT_182671f04;
  *(uint *)(lVar2 - (uVar25 ^ 0x31160b8b)) = (uVar5 ^ 0x9e4aec80) + (uVar8 ^ 0xd938843);
  uVar44 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar39 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar2 - (uVar53 ^ 0x72f80242)) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x408)) +
       (*(ulonglong *)(lVar2 + -0xf0) ^ uVar44) ^ uVar39;
  *(undefined8 *)(lVar2 - (uVar31 ^ 0xfdbb7efe)) = 0x495b3457a0000000;
  uVar18 = DAT_182671ee8;
  uVar12 = DAT_182671ea0;
  uVar29 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar46 = (ulonglong)DAT_182671ee8;
  *(ulonglong *)(lVar2 + -0xa60) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x760)) - (uVar39 ^ *(ulonglong *)(lVar2 + -0x4b8)) ^
       uVar29;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar33 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x5c6bb576)) =
       uVar27 ^ uVar33 ^ uVar55 ^ *(ulonglong *)(lVar2 + -0xb18) ^ *(ulonglong *)(lVar2 + -0x680);
  uVar36 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xfdbb7a56)) =
       (*(ulonglong *)(lVar2 + -0x380) >> 0x20 ^ uVar46) >> 1 ^ uVar36;
  uVar13 = DAT_182671e00;
  uVar46 = CONCAT44(DAT_182671d84,DAT_182671d84);
  puVar58 = (ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x4ea7b933));
  *(ulonglong *)(lVar2 + -0xb20) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x4ea7b193)) ^ uVar33) << 0x1f ^ uVar46;
  uVar14 = DAT_182671ec4;
  uVar12 = DAT_182671d78;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x510) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x5c69bd78)) ^ uVar36 | uVar46 ^ *puVar58) ^ uVar37;
  uVar7 = DAT_182671c70;
  uVar46 = CONCAT44(uVar14,uVar14);
  uVar43 = (ulonglong)DAT_182671c70;
  uVar18 = ~DAT_182671c70;
  DAT_182671c78 = uVar18 ^ 0x672dfcd;
  *(ulonglong *)(lVar2 + -0x30) =
       (uVar55 ^ *(ulonglong *)(lVar2 + -0xb18)) -
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0x590a0f8e)) ^ CONCAT44(uVar12,uVar12)) ^ uVar46;
  lVar1 = DAT_182671c40;
  uVar56 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xff45a390)) =
       CONCAT44(uVar18,uVar7) ^ 0x6dadf8894a60412 | 0xfd571cba68513b81;
  uVar12 = DAT_182671d60;
  uVar55 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar7 ^ 0xff45aeb8)) =
       (*(ulonglong *)(lVar1 + -0x30) ^ uVar46) - (*(ulonglong *)(lVar1 + -0x510) ^ uVar37) ^ uVar55
  ;
  uVar46 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar1 + -0x760) =
       (CONCAT44(uVar18,uVar7) ^ 0xff45a79800ba5861) -
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar1 + -0x888)) ^ uVar46;
  *(ulonglong *)(lVar1 + -0x680) =
       (CONCAT44(uVar7,uVar18) ^ 0x2da8b5f71d2723d8) - (CONCAT44(uVar7,uVar49) ^ 0x74c087a8c9a537d);
  uVar36 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar46 = (*(ulonglong *)(lVar1 - (uVar42 ^ 0x590a04f6)) ^ uVar46) +
           (*(ulonglong *)(lVar1 + -0x510) ^ uVar37) ^ uVar36;
  *(ulonglong *)(lVar1 + -0x380) = uVar46;
  uVar40 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *puVar61 = *(ulonglong *)(lVar1 - (uVar19 ^ 0x5c69bcc8)) ^ uVar46 ^ uVar36 ^ uVar27 ^ uVar50;
  uVar18 = DAT_182671c68;
  uVar47 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar1 + -0xb20) =
       (*(ulonglong *)(lVar1 + -0xd88) ^ uVar27) >> ((bVar34 ^ 0xf3) & 0x3f) ^ uVar40;
  uVar11 = DAT_182671c90;
  uVar36 = (ulonglong)DAT_182671c90;
  uVar21 = uVar18 | DAT_182671c90;
  DAT_182671c60 = uVar21;
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       0x3db9356b182fe94f - (CONCAT44(DAT_182671c90,uVar18) ^ 0xb7cedd4b4e26a1ef);
  uVar37 = (ulonglong)uVar21;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0x42a0090a)) =
       (*(ulonglong *)(DAT_182671c40 + -0xd88) ^ uVar27) << (((byte)uVar11 ^ 0xa6) & 0x3f) ^ uVar33;
  lVar1 = DAT_182671c40;
  uVar51 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0xcaa01797)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0xcaa018bf)) ^ uVar40 |
       uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) ^ uVar51;
  uVar33 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar40 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(lVar1 + -0x30) =
       (uVar50 ^ *(ulonglong *)(lVar1 + -0xc38)) - (uVar51 ^ *(ulonglong *)(lVar1 + -0x408)) ^
       uVar33;
  uVar12 = DAT_182671fa0;
  uVar46 = uVar40 ^ uVar55 ^ uVar29 ^ *(ulonglong *)(lVar1 + -0xa60) ^
           *(ulonglong *)(lVar1 + -0x920);
  bVar41 = (byte)uVar18;
  *(ulonglong *)(lVar1 + -0x680) = uVar46;
  uVar27 = (uVar46 ^ uVar40) >> ((bVar41 ^ 0x37) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar27 ^ CONCAT44(uVar12,uVar12);
  uVar15 = DAT_182671e90;
  lVar1 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671e90;
  uVar48 = (uVar46 ^ uVar40) << ((bVar41 ^ 9) & 0x3f);
  uVar52 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar46 = *(ulonglong *)(DAT_182671c40 + -0x920);
  *(ulonglong *)(DAT_182671c40 + -0x380) = CONCAT44(uVar11,uVar21) ^ 0xeb22a6d63d60278c;
  uVar12 = DAT_182671eb8;
  *(ulonglong *)(lVar1 + -0x760) = uVar48 ^ uVar52;
  uVar52 = CONCAT44(uVar12,uVar12);
  uVar27 = (uVar48 | uVar27) ^ uVar52;
  *(ulonglong *)(lVar1 + -0xc18) = uVar27;
  lVar2 = DAT_182671c40;
  puVar30 = (ulonglong *)(lVar1 - (uVar25 ^ 0x3116021f));
  uVar48 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar1 + -0xd88) = (uVar55 ^ uVar46) - (uVar52 ^ *puVar30) ^ uVar48;
  lVar1 = DAT_182671c40;
  uVar27 = *(ulonglong *)(lVar2 - (uVar60 ^ 0x13b2a77e)) ^ CONCAT44(uVar15,uVar15) ^ uVar52 ^ uVar33
           ^ uVar27;
  uVar46 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar27;
  *(ulonglong *)(lVar1 + -0xb18) =
       ((ulonglong)(uVar15 >> 0x17) | uVar29 << 9) ^ uVar27 >> 0x17 ^ uVar46;
  *(int *)(lVar1 + -0x61c) = *(int *)(lVar1 + -0xae4) + -0x7526822c;
  lVar2 = DAT_182671c40;
  local_c0 = (byte)uVar7;
  *(ulonglong *)(lVar1 - (uVar56 ^ 0x6c88b92)) =
       (CONCAT44(uVar15,uVar15) ^ uVar27) << ((local_c0 ^ 0xb1) & 0x3f) ^ uVar50;
  uVar27 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *puVar23 = (uVar46 ^ *(ulonglong *)(lVar1 + -0xb18) | uVar50 ^ *(ulonglong *)(lVar1 + -0xc38)) ^
             uVar27;
  uVar12 = DAT_182671cfc;
  lVar1 = DAT_182671c40;
  uVar55 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (*(ulonglong *)(lVar2 + -0x30) ^ uVar33) - (uVar27 ^ *(ulonglong *)(lVar2 + -0xa60)) ^ uVar55
  ;
  uVar13 = DAT_182671d54;
  uVar50 = CONCAT44(uVar12,uVar12);
  uVar46 = uVar50 ^ uVar48 ^ *(ulonglong *)(lVar1 + -0xd88) ^ uVar51 ^
           *(ulonglong *)(lVar1 + -0x408);
  local_100 = (byte)uVar4;
  *(ulonglong *)(lVar1 + -0x380) = uVar46;
  uVar46 = (uVar46 ^ uVar50) >> ((local_100 ^ 0xd0) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x760) = uVar46;
  uVar12 = DAT_182671fac;
  *(ulonglong *)(lVar1 + -0x510) =
       (CONCAT44(uVar21,uVar6) ^ 0xf7a9cefbfbbb2c59) >> (((byte)uVar13 ^ (byte)uVar46) & 0x3f);
  uVar14 = DAT_182671da8;
  uVar46 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar18 ^ 0x42a00192)) ^ uVar50) << 0x18;
  *(ulonglong *)(lVar1 + -0x920) = uVar46 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671d5c;
  uVar52 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0xc18) = (CONCAT44(uVar13,uVar13) ^ *puVar22 | uVar46) ^ uVar52;
  *puVar58 = (CONCAT44(uVar11,uVar49) ^ 0xed76a80fab62b41d) << ((bVar16 ^ 0xda) & 0x3f);
  lVar1 = DAT_182671c40;
  uVar50 = CONCAT44(uVar12,uVar12);
  uVar29 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xdff9f470)) ^ uVar48) -
       (*(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x42a00e0a)) ^ uVar52) ^ uVar50;
  uVar46 = *(ulonglong *)(lVar1 - (uVar43 ^ 0xff45a118)) ^ uVar29 ^ uVar52 ^ uVar55 ^ *puVar30;
  uVar33 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar1 + -0xb18) = uVar46;
  *(ulonglong *)(lVar1 + -0x30) = (uVar46 ^ uVar29) >> ((local_c0 ^ 0xac) & 0x3f) ^ uVar33;
  uVar47 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *(ulonglong *)(lVar1 + -0x408) = (uVar29 ^ uVar46) << 0xc ^ uVar47;
  local_130 = (byte)uVar45;
  *(int *)(lVar1 - (uVar56 ^ 0x6c8819e)) = *(int *)(lVar1 + -0x9dc) + *(int *)(lVar1 + -0x784);
  uVar29 = CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar46 = *(ulonglong *)(lVar1 - (uVar57 ^ 0xbaebd624)) ^ uVar33 |
           uVar47 ^ *(ulonglong *)(lVar1 + -0x408);
  uVar33 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar1 + -0x510) = uVar46 ^ uVar29;
  uVar12 = DAT_182671f1c;
  *(ulonglong *)(lVar1 + -0x380) = (uVar55 ^ *(ulonglong *)(lVar1 + -0x680)) - uVar46 ^ uVar26;
  uVar46 = uVar33 ^ uVar50 ^ uVar27 ^ *(ulonglong *)(lVar1 + -0xc38) ^
           *(ulonglong *)(lVar1 + -0xa60);
  *(ulonglong *)(lVar1 + -0x760) = uVar46;
  uVar47 = (uVar46 ^ uVar33) >> ((local_130 ^ 0xc9) & 0x3f);
  uVar27 = (uVar33 ^ uVar46) << 7;
  uVar46 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(lVar1 + -0x920) = uVar47 ^ CONCAT44(uVar12,uVar12);
  uVar13 = DAT_182671e40;
  *(ulonglong *)(lVar1 + -0xb20) = uVar27 ^ uVar46;
  uVar12 = DAT_182671c98;
  lVar2 = DAT_182671c40;
  uVar46 = CONCAT44(uVar13,uVar13);
  uVar47 = (uVar47 | uVar27) ^ uVar46;
  *(ulonglong *)(lVar1 + -0xd88) = uVar47;
  uVar27 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar50 ^ *(ulonglong *)(lVar1 + -0xc38)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar49 ^ 0xa40e1889)) ^ uVar46) ^ uVar27;
  uVar12 = DAT_182671dbc;
  lVar1 = DAT_182671c40;
  uVar46 = *(ulonglong *)(lVar2 - (uVar37 ^ 0xcaa0101f)) ^ uVar46 ^ uVar47 ^ uVar40 ^ uVar26;
  *(ulonglong *)(lVar2 + -0xb18) = uVar46;
  uVar47 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0x408) = (uVar46 ^ uVar40) >> ((bVar41 ^ 0x1c) & 0x3f) ^ uVar47;
  *(uint *)(lVar1 - (uVar57 ^ 0xbaebd398)) =
       *(uint *)(lVar1 - (uVar53 ^ 0x72f800be)) & (DAT_182671c74 ^ 0xaf47ae0a);
  uVar12 = DAT_182671f44;
  uVar46 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar1 + -0x30) =
       (uVar40 ^ *(ulonglong *)(lVar1 + -0xb18)) << (((byte)uVar3 ^ 0xa4) & 0x3f) ^ uVar46;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 - (uVar60 ^ 0x13b2a1ce)) =
       (*(ulonglong *)(lVar1 - (uVar43 ^ 0xff45a7a8)) ^ uVar46 |
       uVar47 ^ *(ulonglong *)(lVar1 + -0x408)) ^ uVar33;
  puVar30 = (ulonglong *)(lVar1 + -0xc90);
  uVar43 = (uVar26 ^ *(ulonglong *)(lVar1 + -0x380)) -
           (*(ulonglong *)(lVar1 - (uVar60 ^ 0x13b2a566)) ^ CONCAT44(DAT_182671ec8,DAT_182671ec8));
  *(ulonglong *)(lVar1 + -0xa60) = uVar43 ^ CONCAT44(DAT_182671ce8,DAT_182671ce8);
  uVar13 = DAT_182671f14;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar1 + -0x760) =
       (CONCAT44(uVar5,uVar9) ^ 0x143fbdf15ade05f7) + (CONCAT44(uVar3,uVar20) ^ 0x45d95b39cce4f181);
  uVar12 = DAT_182671cac;
  uVar46 = (*(ulonglong *)(lVar1 + -0x2b0) ^ uVar38) + (uVar52 ^ *puVar30);
  uVar50 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x920) = uVar43 - (*(ulonglong *)(lVar1 + -0x680) ^ uVar33) ^ uVar50;
  uVar13 = DAT_182671d38;
  uVar47 = CONCAT44(uVar12,uVar12);
  uVar53 = uVar27 ^ uVar29 ^ *(ulonglong *)(lVar2 + -0x510) ^ *(ulonglong *)(lVar2 + -0xc18);
  *(ulonglong *)(lVar1 + -0xb20) = uVar46 ^ uVar47;
  uVar43 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xc38) = (*(ulonglong *)(lVar2 + -0x680) ^ uVar33) - uVar46 ^ uVar43;
  uVar46 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar26 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar2 + -0xd88) = uVar53 ^ uVar46;
  *(ulonglong *)(lVar2 + -0xb18) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0x3116038f)) ^ uVar46) >> (((byte)uVar11 ^ 0x8d) & 0x3f) ^
       uVar26;
  uVar12 = DAT_182671e6c;
  lVar1 = DAT_182671c40;
  uVar53 = uVar53 << (((byte)uVar21 ^ 0xaf) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar53 ^ CONCAT44(DAT_182671d40,DAT_182671d40);
  lVar2 = DAT_182671c40;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xfdbb77ee)) =
       (*(ulonglong *)(lVar1 - (uVar28 ^ 0xdff9f2e0)) ^ uVar26 | uVar53) ^ uVar29;
  uVar12 = DAT_182671e1c;
  uVar46 = (uVar27 ^ *(ulonglong *)(lVar2 + -0xc18)) - (uVar39 ^ *(ulonglong *)(lVar2 + -0x4b8));
  *(ulonglong *)(lVar2 + -0x380) = uVar46 ^ uVar51;
  uVar27 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar56 ^ 0x6c880ca)) =
       uVar46 - (*(ulonglong *)(lVar2 + -0x30) ^ uVar29) ^ uVar27;
  uVar12 = DAT_182671e14;
  *(ulonglong *)(lVar2 + -0xa60) =
       (*(ulonglong *)(lVar2 + -0xb20) ^ uVar47) - (CONCAT44(uVar3,uVar10) ^ 0xa7d4c5225698fc5e);
  uVar31 = (CONCAT44(uVar20,uVar32) ^ 0x451429ebec4d58b4) -
           (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0xbd8));
  *puVar30 = uVar31 ^ CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar12 = DAT_182671d70;
  *(ulonglong *)(lVar2 + -0x680) =
       (CONCAT44(uVar18,uVar49) ^ 0x889d9f3b061e243a) >> (((byte)uVar3 ^ 0x90) & 0x3f);
  uVar46 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xcaa0168f)) =
       (*(ulonglong *)(lVar2 + -0x30) ^ uVar29) + uVar31 ^ uVar46;
  uVar37 = CONCAT44(DAT_182671f54,DAT_182671f54);
  *(undefined8 *)(lVar2 + -0x408) = 3;
  uVar12 = DAT_182671cf4;
  uVar31 = *(ulonglong *)(lVar2 + -0x510) ^ uVar37 ^ uVar46 ^ uVar50 ^
           *(ulonglong *)(lVar2 + -0x920);
  *(ulonglong *)(lVar2 + -0xd88) = uVar31;
  uVar13 = DAT_182671e74;
  uVar47 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xb18) = (uVar31 ^ uVar37) >> ((bVar34 ^ 0xd6) & 0x3f) ^ uVar47;
  uVar46 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x590a072e)) =
       (uVar31 ^ uVar37) << ((local_130 ^ 0xd0) & 0x3f) ^ uVar46;
  uVar13 = DAT_182671f84;
  uVar37 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x5c6bbaee)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x4ea7b6ab)) ^ uVar46 |
       *(ulonglong *)(lVar2 + -0xb18) ^ uVar47) ^ uVar37;
  uVar12 = DAT_182671e58;
  *(ulonglong *)(lVar2 + -0x380) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x8a2018bd)) ^ uVar50) -
       (*(ulonglong *)(lVar2 + -0xc18) ^ uVar37) ^ CONCAT44(uVar13,uVar13);
  uVar43 = uVar44 ^ *(ulonglong *)(lVar2 + -0xc38) ^ *(ulonglong *)(lVar2 + -0x760) ^ uVar27 ^
           uVar43;
  uVar46 = **(ulonglong **)(lVar2 - (uVar25 ^ 0x31160f3f));
  *(ulonglong *)(lVar2 + -0x680) = uVar43;
  *(ulonglong *)(lVar2 + -0xa60) = uVar46 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x5c69b0c0)) = uVar43 >> 0x20 ^ (ulonglong)DAT_182671f18 ^ uVar54
  ;
  *puVar30 = CONCAT44(uVar49,uVar45) ^ 0x396b0d477e96aabf;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar59;
  return;
}



############ FUN_ 180ffe1d0 size=5121 ############

void FUN_180ffe1d0(void)

{
  ulonglong *puVar1;
  undefined8 *puVar2;
  ulonglong *puVar3;
  undefined8 uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  longlong lVar27;
  ulonglong *puVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  longlong *plVar41;
  uint uVar42;
  uint uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  uint uVar54;
  longlong *plVar55;
  ulonglong uVar56;
  uint uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  byte local_140;
  byte local_128;
  byte local_d0;
  byte local_c0;
  
  uVar14 = DAT_182671c88;
  uVar13 = DAT_182671c84;
  uVar12 = DAT_182671c80;
  uVar11 = DAT_182671c7c;
  uVar10 = DAT_182671c74;
  uVar24 = DAT_182671c68;
  uVar8 = DAT_182671c58;
  lVar6 = DAT_182671c40;
  uVar60 = (ulonglong)DAT_182671c74;
  uVar39 = (ulonglong)DAT_182671c80;
  uVar48 = (ulonglong)DAT_182671c88;
  uVar59 = (ulonglong)DAT_182671c68;
  uVar38 = (ulonglong)DAT_182671c58;
  uVar43 = DAT_182671c74 + DAT_182671c7c;
  uVar54 = DAT_182671c80 - DAT_182671c68;
  uVar57 = DAT_182671c88 ^ DAT_182671c58;
  uVar40 = (DAT_182671c84 << 0x10 | DAT_182671c84 & 0xff00) << 8 | DAT_182671c84 >> 8 & 0xff00 |
           DAT_182671c84 >> 0x18;
  uVar29 = DAT_182671fa4 + DAT_182671cd0;
  DAT_182671db8 =
       (DAT_182671d7c << 0x10 | DAT_182671d7c & 0xff00) << 8 | DAT_182671d7c >> 8 & 0xff00 |
       DAT_182671d7c >> 0x18;
  uVar19 = DAT_182671cdc * DAT_182671ce0;
  uVar25 = DAT_182671f58 >> 0x10;
  uVar30 = *(uint *)(&DAT_182613218 + DAT_18267209c) ^ DAT_182671c7c;
  uVar20 = *(uint *)(&DAT_182613220 + DAT_18267209c) ^ DAT_182671c74;
  uVar36 = (ulonglong)uVar43;
  uVar26 = CONCAT44(uVar43,DAT_182671c88);
  uVar56 = (ulonglong)uVar57;
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xa50);
  DAT_182671c64 = uVar40;
  DAT_182671c70 = uVar54;
  DAT_182671c78 = uVar57;
  DAT_182671c94 = uVar43;
  *(ulonglong *)(DAT_182671c40 - (uVar56 ^ 0xb27d3379)) =
       *(longlong *)(DAT_182671c40 + -0x7a0) + (uVar26 ^ 0x23af136a31160e06) * 8;
  *(ulonglong *)(lVar6 + -0x110) = *(ulonglong *)(lVar6 + -0x5e8) | *puVar3;
  lVar27 = *(longlong *)(lVar6 + -0x418) + 8;
  *(longlong *)(lVar6 + -0x418) = lVar27;
  *(longlong *)(lVar6 + -0x7a0) = lVar27;
  *(undefined8 *)(lVar6 - (uVar38 ^ 0x836b3836)) = *(undefined8 *)(lVar6 + -0x2e8);
  puVar50 = *(ulonglong **)(lVar6 + -0x418);
  *(undefined8 *)(lVar6 + -0x418) = *(undefined8 *)(lVar6 + -0x7a0);
  *(ulonglong **)(lVar6 + -0x2e8) = puVar50;
  plVar55 = (longlong *)(lVar6 - ((ulonglong)uVar54 ^ 0xc9b9b541));
  uVar46 = *(ulonglong *)*plVar55;
  uVar31 = DAT_182671e84 ^ (uint)uVar46;
  *(ulonglong *)(lVar6 + -0x5e8) = uVar46;
  uVar21 = uVar31 & 0xff;
  DAT_182671e84 = ((uVar31 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar32 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *puVar50 = uVar32 ^ uVar46;
  uVar4 = *(undefined8 *)(lVar6 - (uVar36 ^ 0x23af153a));
  *(undefined8 *)(lVar6 + -0x418) = *(undefined8 *)(lVar6 + -0x10);
  uVar9 = DAT_182671c60;
  uVar51 = (ulonglong)uVar40;
  *(undefined8 *)(lVar6 - (uVar39 ^ 0xfff7f43f)) = uVar4;
  *(undefined8 *)(lVar6 + -0x7a0) = *(undefined8 *)(lVar6 + -0x418);
  *(int *)(lVar6 - ((ulonglong)uVar40 ^ 0xf8f1e95a)) = -0x47ef1ee8 << (((byte)uVar24 ^ 0x4a) & 0x1f)
  ;
  uVar34 = DAT_182671c90;
  uVar21 = DAT_182671c6c;
  uVar47 = (ulonglong)uVar13;
  lVar27 = *(longlong *)(lVar6 - (uVar47 ^ 0xcee9f658)) +
           (CONCAT44(uVar12,DAT_182671c90) ^ 0xfff7ffb7d32c2725) * 8;
  *(longlong *)(lVar6 + -0x418) = lVar27;
  *(ulonglong *)(lVar6 + -0x7a0) =
       *(longlong *)(lVar6 + -0xb88) + (CONCAT44(uVar11,uVar21) ^ 0x156dd25cd32c2725) * 8;
  uVar16 = DAT_182671e58;
  uVar15 = DAT_182671c8c;
  uVar53 = (ulonglong)DAT_182671c8c;
  uVar31 = DAT_182671de4 >> 0x18;
  plVar41 = (longlong *)(lVar6 - ((ulonglong)uVar40 ^ 0xf8f1ee6e));
  lVar5 = *plVar41;
  *(uint *)(lVar6 + -0x784) = (DAT_182671c8c ^ 0x22fb886c) + (uVar9 ^ 0x4863b1f9);
  *(longlong *)(lVar6 + -0x7a0) = lVar27;
  uVar37 = CONCAT44(uVar16,uVar16);
  *(longlong *)(lVar6 + -0x418) = lVar5;
  *(longlong *)(lVar6 + -0xb88) = lVar27;
  uVar7 = DAT_182671c54;
  lVar6 = DAT_182671c40;
  uVar58 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) -
       (CONCAT44(DAT_182671c54,uVar34) ^ 0x98bd893a321f77e6);
  *(longlong *)(lVar6 + -0x7a0) = lVar27 + 8;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar15 ^ 0xbeb991fa)) =
       lVar5 + (CONCAT44(uVar14,DAT_182671c4c) ^ 0x31160e079e3feef6) * 8;
  *puVar3 = (CONCAT44(DAT_182671cd8,DAT_182671cd8) ^ *(ulonglong *)(lVar6 + -0xa08)) >>
            (((byte)uVar8 ^ 0x85) & 0x3f);
  uVar4 = *(undefined8 *)(lVar6 + -0x7a0);
  *(undefined8 *)(lVar6 + -0x418) = *(undefined8 *)(lVar6 + -0xb88);
  *(undefined8 *)(lVar6 + -0xb88) = uVar4;
  *(undefined8 *)(lVar6 + -0x7a0) = *(undefined8 *)(lVar6 - (uVar36 ^ 0x23af1772));
  *(undefined8 *)(lVar6 - ((ulonglong)uVar7 ^ 0xfa928476)) = uVar4;
  *(ulonglong *)(lVar6 + -0xb88) =
       *(longlong *)(lVar6 + -0x418) + (CONCAT44(uVar10,uVar40) ^ 0xe41410ef8f1e9cf) * 8;
  uVar16 = DAT_182671dd8;
  lVar27 = *(longlong *)(lVar6 - (uVar60 ^ 0xe4146ae)) +
           (CONCAT44(uVar9,uVar8) ^ 0xa1a7a146836b3f97) * 8;
  *(longlong *)(lVar6 + -0x418) = lVar27;
  uVar22 = DAT_182671e2c ^ DAT_182671e90;
  uVar46 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar6 + -0xb18) =
       0x4a108c7c0bbc1d4e >> (((byte)uVar16 ^ *(byte *)(lVar6 + -0x920)) & 0x3f);
  *(longlong *)(lVar6 - (uVar46 ^ 0xd32c2084)) = lVar27;
  puVar50 = *(ulonglong **)(lVar6 - (uVar47 ^ 0xcee9fa70));
  *(ulonglong **)(lVar6 + -0x418) = puVar50;
  *(undefined8 *)(lVar6 + -0xb88) = *(undefined8 *)(lVar6 + -0x7a0);
  *(ulonglong **)(lVar6 + -0x7a0) = puVar50;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c90 ^ 0xd32c2634)) = *puVar50 ^ uVar32;
  uVar34 = DAT_182671e28 ^ *(uint *)(lVar6 - (uVar56 ^ 0xb27d3081));
  **(undefined8 **)(lVar6 + -0x2e8) = 0xb11ba60c8f97fe4a;
  uVar21 = uVar34 & 0xff;
  DAT_182671e28 = ((uVar34 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  **(ulonglong **)(lVar6 + -0xb88) =
       CONCAT44(DAT_182671e28,DAT_182671e28) ^ *(ulonglong *)(lVar6 + -0x110);
  *plVar55 = *(longlong *)(lVar6 - (uVar38 ^ 0x836b3686)) +
             (CONCAT44(uVar57,uVar11) ^ 0xb27d3191156dd258) * 8;
  puVar50 = *(ulonglong **)(lVar6 + -0x418);
  lVar27 = *(longlong *)(lVar6 - (uVar36 ^ 0x23af19aa));
  *(ulonglong **)(lVar6 + -0xac0) = puVar50;
  *(ulonglong **)(lVar6 + -0x7a0) = puVar50;
  uVar17 = DAT_182671df0;
  lVar27 = lVar27 + (CONCAT44(uVar15,uVar9) ^ 0xbeb99a72a1a7a142) * 8;
  *(longlong *)(lVar6 + -0x418) = lVar27;
  *(longlong *)(lVar6 + -0x2e8) = lVar27;
  *(longlong *)(lVar6 + -0x910) = lVar27;
  uVar18 = DAT_182671f74;
  uVar42 = DAT_182671f74 | uVar17;
  *(ulonglong *)(lVar6 + -0xa08) = CONCAT44(uVar17,uVar17) ^ *puVar50;
  lVar27 = DAT_182671c40;
  uVar34 = DAT_182671dd4 ^ *(uint *)(DAT_182671c40 + -0xa08);
  *(ulonglong **)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0x156dd0b4)) =
       puVar50 + (CONCAT44(uVar12,uVar8) ^ 0xfff7ffb7836b3f97);
  uVar21 = uVar34 & 0xff;
  DAT_182671dd4 = ((uVar34 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar33 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *(ulonglong *)(lVar27 - (uVar60 ^ 0xe414b5e)) = **(ulonglong **)(lVar27 + -0x2e8) ^ uVar33;
  uVar21 = *(uint *)puVar3;
  uVar23 = (DAT_182671e64 ^ uVar21) & 0xff;
  *plVar41 = *(longlong *)(lVar27 + -0xac0) + (CONCAT44(uVar24,uVar43) ^ 0x363e4e5e23af1368) * 8;
  uVar34 = DAT_182671c4c;
  DAT_182671e64 = (((DAT_182671e64 ^ uVar21) << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar46 = (ulonglong)DAT_182671c4c;
  puVar52 = (ulonglong *)(lVar27 - ((ulonglong)DAT_182671c90 ^ 0xd32c2084));
  uVar35 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(lVar27 + -0x920) = *(ulonglong *)*puVar52 ^ uVar35;
  uVar44 = DAT_182671db0 ^ *(uint *)(lVar27 - (uVar48 ^ 0x31160727));
  puVar2 = (undefined8 *)
           (*(longlong *)(lVar27 - (uVar46 ^ 0x9e3fe437)) +
           (CONCAT44(uVar13,uVar7) ^ 0xcee9f1f8fa92806d) * 8);
  *(undefined8 **)(lVar27 + -0x910) = puVar2;
  uVar4 = *puVar2;
  uVar23 = DAT_182671cc0 ^ (uint)uVar4;
  *(undefined8 *)(lVar27 + -0xb18) = uVar4;
  lVar27 = DAT_182671c40;
  uVar21 = uVar23 & 0xff;
  DAT_182671cc0 = ((uVar23 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar49 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar21 = uVar44 & 0xff;
  *(ulonglong *)(DAT_182671c40 + -0x2e8) =
       *(longlong *)(DAT_182671c40 - (uVar58 ^ 0xfa928a56)) + 8 +
       ((CONCAT44(uVar24,uVar9) ^ 0x363e4e5ea1a7a146) * 0x15 +
       (CONCAT44(uVar15,uVar40) ^ 0xbeb99a72f8f1e9ce)) * 8 ^ uVar49;
  DAT_182671db0 = ((uVar44 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar36 = (ulonglong)DAT_182671db0;
  uVar45 = CONCAT44(DAT_182671db0,DAT_182671db0);
  uVar46 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar27 - (uVar56 ^ 0xb27d3479)) =
       *(ulonglong *)(*(ulonglong *)(lVar27 - (uVar38 ^ 0x836b3d7e)) ^ uVar49) ^ uVar45 ^ uVar37;
  puVar50 = (ulonglong *)(lVar27 - (uVar58 ^ 0xfa928b4e));
  *puVar50 = uVar33 ^ *puVar3 ^ 0x98bb1e2d9e61a49a;
  uVar21 = uVar42 & 0xff;
  DAT_182671e24 = ((uVar42 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  *puVar52 = *(longlong *)(lVar27 - ((ulonglong)DAT_182671c90 ^ 0xd32c2d1c)) + 8 +
             ((CONCAT44(uVar34,uVar11) ^ 0x9e3feef7156dd25c) * 0x15 +
             (CONCAT44(uVar54,uVar10) ^ 0xc9b9b1590e41410f)) * 8 ^ uVar46;
  uVar38 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *puVar50 = *(ulonglong *)(uVar46 ^ *(ulonglong *)(lVar27 + -0x7a0)) ^ uVar38 ^ uVar37;
  uVar21 = DAT_182671c4c;
  uVar24 = DAT_182671e90 & 0xff;
  DAT_182671e90 = ((DAT_182671e90 << 8 | uVar24) << 8 | uVar24) << 8 | uVar24;
  uVar46 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar58 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar27 + -0x910) =
       *(longlong *)(lVar27 - (uVar56 ^ 0xb27d3ba9)) + 0x18 +
       (CONCAT44(uVar10,uVar54) ^ 0xe41410ec9b9b159) * 0xa8 ^ uVar46;
  *(uint *)(lVar27 - (uVar39 ^ 0xfff7f9f3)) =
       (DAT_182671c6c ^ 0x5f62c774) + *(int *)(lVar27 + -0x5d4);
  uVar16 = DAT_182671cbc;
  uVar24 = DAT_182671e2c & 0xff;
  DAT_182671e2c = ((DAT_182671e2c << 8 | uVar24) << 8 | uVar24) << 8 | uVar24;
  *(ulonglong *)(lVar27 + -0xd88) =
       CONCAT44(DAT_182671e2c,DAT_182671e2c) ^
       *(ulonglong *)(uVar46 ^ *(ulonglong *)(lVar27 + -0x910)) ^ uVar37;
  *(ulonglong *)(lVar27 - (uVar58 ^ 0x9e3fe35f)) =
       *(ulonglong *)(lVar27 - (uVar59 ^ 0x363e4cee)) ^ CONCAT44(uVar16,uVar16) |
       CONCAT44(uVar14,DAT_182671c6c) ^ 0xedfa0fbc6c5081ba;
  uVar24 = uVar22 & 0xff;
  DAT_182671f38 = ((uVar22 << 8 | uVar24) << 8 | uVar24) << 8 | uVar24;
  puVar50 = (ulonglong *)
            (*(longlong *)(lVar27 + -0xa38) +
            ((CONCAT44(uVar11,uVar9) ^ 0x156dd25ca1a7a146) * 0x15 +
            (uVar26 ^ 0x23af136a31160e04) + 1) * 8);
  *(ulonglong *)(lVar27 + -0x7a0) = (ulonglong)puVar50 ^ CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar24 = DAT_182671c78 ^ 0x709f801e;
  *(ulonglong *)(lVar27 + -0x2b0) = *puVar50 ^ uVar35 ^ uVar37;
  *(uint *)(lVar27 + -0x76c) = *(int *)(lVar27 - ((ulonglong)DAT_182671c90 ^ 0xd32c2dc0)) - uVar24;
  uVar46 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(ulonglong *)(lVar27 + -0x910) =
       *(longlong *)(lVar27 + -0xa38) +
       ((CONCAT44(uVar8,uVar15) ^ 0x836b3f96beb99a72) * 0x15 +
       (CONCAT44(uVar7,uVar14) ^ 0xfa92806e31160e03) + 1) * 8 ^ uVar46;
  *(ulonglong *)(lVar27 - (uVar51 ^ 0xf8f1e5f6)) =
       (CONCAT44(uVar7,uVar15) ^ 0x177a929cd9fe3766) - *(longlong *)(lVar27 - (uVar51 ^ 0xf8f1e466))
  ;
  lVar5 = DAT_182671c40;
  uVar24 = uVar25 & 0xff;
  DAT_182671fb4 = ((uVar25 << 8 | uVar24) << 8 | uVar24) << 8 | uVar24;
  uVar56 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  lVar27 = *(longlong *)(DAT_182671c40 + -0xa38);
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       *(ulonglong *)(uVar46 ^ *(ulonglong *)(DAT_182671c40 + -0x910)) ^ uVar56 ^ uVar37;
  puVar50 = (ulonglong *)(lVar27 + 0x90 + (CONCAT44(uVar34,uVar13) ^ 0x9e3feef7cee9f1f8) * 0xa8);
  *(ulonglong **)(lVar5 + -0x668) = puVar50;
  *(ulonglong *)(lVar5 + -0x30) =
       CONCAT44(uVar8,uVar11) ^ 0xbd85348091177127 | *(ulonglong *)(lVar5 + -0x110);
  DAT_182671c98 = ((uVar31 << 8 | uVar31) << 8 | uVar31) << 8 | uVar31;
  uVar26 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar46 = uVar26 ^ *puVar50 ^ uVar37;
  uVar31 = DAT_182671e74 ^ (uint)uVar46;
  *(ulonglong *)(lVar5 + -0x30) = uVar46;
  uVar25 = uVar31 & 0xff;
  puVar50 = (ulonglong *)
            (lVar27 + ((CONCAT44(uVar12,uVar10) ^ 0xfff7ffb70e41410e) * 0x15 +
                      (CONCAT44(uVar57,uVar21) ^ 0xb27d31919e3feef6)) * 8 + 0x90);
  DAT_182671e74 = ((uVar31 << 8 | uVar25) << 8 | uVar25) << 8 | uVar25;
  *(ulonglong **)(lVar5 + -0x668) = puVar50;
  uVar39 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar5 - (uVar51 ^ 0xf8f1e0ae)) = uVar39 ^ uVar37 ^ *puVar50;
  uVar31 = DAT_182671e78 ^ *(uint *)(lVar5 + -0x960);
  uVar46 = *(ulonglong *)(lVar5 + -0x960);
  puVar50 = (ulonglong *)(lVar5 + -0x408);
  *(ulonglong *)(lVar5 + -0x4b8) = CONCAT44(uVar14,uVar43) ^ uVar46 ^ uVar39 ^ 0x1ae7ca7c2209ba8c;
  puVar52 = (ulonglong *)
            (*(longlong *)(lVar5 + -0xa38) + 0xa0 +
            (CONCAT44(uVar7,uVar8) ^ 0xfa92806e836b3f96) * 0xa8);
  *(ulonglong **)(lVar5 + -0x140) = puVar52;
  uVar25 = uVar31 & 0xff;
  DAT_182671e78 = ((uVar31 << 8 | uVar25) << 8 | uVar25) << 8 | uVar25;
  *(ulonglong *)(lVar5 + -0x4b8) = CONCAT44(DAT_182671e78,DAT_182671e78) ^ uVar37 ^ *puVar52;
  uVar25 = DAT_182671de4;
  uVar34 = DAT_182671d68 ^ *(uint *)(lVar5 + -0x4b8);
  uVar31 = uVar34 & 0xff;
  DAT_182671d68 = ((uVar34 << 8 | uVar31) << 8 | uVar31) << 8 | uVar31;
  uVar37 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *puVar50 = (*(ulonglong *)(lVar5 - (uVar60 ^ 0xe414b06)) ^ CONCAT44(uVar17,uVar17)) -
             (uVar35 ^ *(ulonglong *)(lVar5 + -0x2b0)) ^ uVar37;
  uVar26 = (*(ulonglong *)(lVar5 - (uVar58 ^ 0x9e3feec7)) ^ uVar26) +
           (uVar56 ^ *(ulonglong *)(lVar5 + -0xc38));
  uVar31 = uVar29 & 0xff;
  *(ulonglong *)(lVar5 + -0xa08) = uVar26 ^ CONCAT44(uVar25,uVar25);
  DAT_182671d80 = ((uVar29 * 0x100 | uVar31) << 8 | uVar31) << 8 | uVar31;
  puVar52 = (ulonglong *)(lVar5 + -0xbd8);
  uVar51 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *puVar52 = (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c6c ^ 0xd32c2d74)) ^ uVar33) - uVar26 ^
             uVar51;
  *puVar3 = *(longlong *)(lVar5 + -0xda8) - (CONCAT44(uVar54,uVar15) ^ 0x778aeb9b9b4efb19);
  lVar27 = DAT_182671c40;
  uVar25 = uVar19 & 0xff;
  DAT_182671eb4 = ((uVar19 * 0x100 | uVar25) << 8 | uVar25) << 8 | uVar25;
  uVar26 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar46 = (*(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0xcee9f410)) ^ uVar45) + (uVar46 ^ uVar39);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x920);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar46 ^ uVar26;
  uVar31 = DAT_182671dfc - DAT_182671f94;
  *(ulonglong *)(lVar27 - ((ulonglong)DAT_182671c90 ^ 0xd32c2d74)) =
       (*puVar1 ^ uVar35) - uVar46 ^ uVar33;
  uVar47 = (CONCAT44(uVar40,uVar9) ^ 0x70e16315e585ea8) + *(longlong *)(lVar27 + -0xb18);
  uVar56 = uVar47 ^ uVar56;
  uVar31 = uVar31 ^ (uint)uVar56;
  *(ulonglong *)(lVar27 + -0x920) = uVar56;
  uVar25 = uVar31 & 0xff;
  DAT_182671e14 = ((uVar31 << 8 | uVar25) << 8 | uVar25) << 8 | uVar25;
  uVar46 = CONCAT44(DAT_182671e14,DAT_182671e14);
  uVar47 = uVar47 - (*(ulonglong *)(lVar27 + -0xb20) ^ uVar38) ^ uVar46;
  *(ulonglong *)(lVar27 + -0xb18) = uVar47;
  lVar5 = DAT_182671c40;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 - (uVar59 ^ 0x363e477e)) =
       *(ulonglong *)(lVar27 - (uVar53 ^ 0xbeb99e7a)) ^ uVar49 ^ uVar47 ^ uVar46 ^ uVar37;
  local_c0 = (byte)uVar12;
  uVar47 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar5 + -0xb18) =
       (*(ulonglong *)(lVar5 + -0x920) ^ uVar49) >> ((local_c0 ^ 0x97) & 0x3f) ^ uVar47;
  local_d0 = (byte)uVar21;
  *(undefined8 *)(lVar5 - (uVar60 ^ 0xe414326)) = 0x948;
  lVar27 = DAT_182671c40;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x156ddb7c)) =
       ((*(ulonglong *)(lVar5 + -0x920) ^ uVar49) << ((local_d0 ^ 0xd7) & 0x3f) |
       *(ulonglong *)(lVar5 + -0xb18) ^ uVar47) ^ uVar47;
  uVar46 = *puVar52;
  uVar37 = (*puVar50 ^ uVar37) - (*(ulonglong *)(lVar27 + -0x920) ^ uVar47) ^ uVar32;
  *(ulonglong *)(lVar27 + -0xb18) = uVar37;
  uVar47 = uVar45 ^ uVar33 ^ uVar46 ^ uVar51 ^ *puVar3;
  uVar36 = uVar47 >> 0x20 ^ uVar36;
  uVar53 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *puVar1 = uVar47;
  *puVar52 = uVar36 ^ uVar53;
  local_128 = (byte)uVar57;
  uVar46 = (ulonglong)DAT_182671c6c;
  *puVar50 = (uVar47 ^ uVar45) << ((local_128 ^ 0xb1) & 0x3f) ^ uVar39;
  lVar27 = DAT_182671c40;
  puVar28 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0xd32c250c));
  uVar36 = (*(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0xd32c232c)) ^ uVar39 | uVar36) ^ uVar53;
  *puVar1 = uVar36;
  *puVar52 = (*(ulonglong *)(lVar27 - (uVar48 ^ 0x31160457)) ^ uVar33) - (*puVar28 ^ uVar53) ^
             uVar33;
  uVar46 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar53 = uVar36 ^ uVar32 ^ uVar37 ^ uVar46 ^ uVar53;
  *puVar50 = uVar53;
  local_140 = (byte)(uVar13 >> 0x18);
  *puVar3 = (uVar53 ^ uVar46) >> ((local_c0 ^ 0x8d) & 0x3f) ^ uVar35;
  *puVar1 = (uVar53 ^ uVar46) << ((local_140 ^ 200) & 0x3f) ^ uVar26;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar20 * 4) = uVar30;
  return;
}



############ FUN_ 180ff8680 size=5225 ############

void FUN_180ff8680(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  undefined1 *puVar6;
  longlong lVar7;
  longlong lVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  
  uVar9 = DAT_182671d44;
  uVar26 = DAT_182671c6c;
  lVar7 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c6c;
  uVar29 = ~DAT_182671c6c;
  uVar23 = (ulonglong)DAT_182671c6c;
  uVar5 = *(uint *)(&DAT_182613218 + DAT_182672088);
  uVar15 = *(uint *)(&DAT_182613210 + (uVar30 ^ 0x2626b9c5) + (longlong)DAT_182672088) ^
           DAT_182671c6c;
  uVar40 = (ulonglong)uVar29;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xa78);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0x110);
  puVar4 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar33 = CONCAT44(uVar29,DAT_182671c6c);
  uVar31 = CONCAT44(DAT_182671f04,DAT_182671f04);
  bVar17 = (byte)DAT_182671c6c;
  uVar21 = (CONCAT44(DAT_182671d2c,DAT_182671d2c) ^ *(ulonglong *)(DAT_182671c40 + -0xc90)) <<
           ((bVar17 ^ 0xe5) & 0x3f);
  uVar25 = CONCAT44(DAT_182671c6c,DAT_182671c6c);
  DAT_182671c60 = uVar29;
  *puVar4 = uVar21 ^ CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar13 = DAT_182671f24;
  *puVar2 = (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar7 + -0xda8) | uVar21) ^ uVar31;
  uVar21 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar7 - (uVar23 ^ 0x2626b45d)) =
       (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar7 + -0xc38)) -
       (CONCAT44(uVar29,uVar29) ^ 0x3dcd675593c9fa88) ^ uVar21;
  uVar9 = DAT_182671e84;
  uVar42 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar7 + -0x888) =
       (*(ulonglong *)(lVar7 + -0xd88) ^ uVar21) - (uVar31 ^ *puVar2) ^ uVar42;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar21 = (ulonglong)DAT_182671cc8;
  uVar35 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar25 = (uVar31 ^ *puVar2) + (uVar25 ^ 0xa589e2bb5662d49f) ^ uVar23;
  *puVar3 = uVar25;
  *(ulonglong *)(lVar7 + -0xc90) = (uVar33 ^ 0x8c993cc52f314f5) + (uVar33 ^ 0xdafbd80cef34d326);
  uVar31 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar33 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar25 = uVar31 ^ uVar35 ^ uVar25 ^ uVar23 ^ *(ulonglong *)(lVar7 + -0x960);
  *(ulonglong *)(lVar7 + -0xda8) = uVar25;
  puVar6 = *(undefined1 **)(lVar7 + -0xc50);
  *puVar4 = *(ulonglong *)(lVar7 - ((ulonglong)uVar26 ^ 0x2626b47d)) >> 0x20 ^ uVar33 ^ uVar21;
  uVar9 = DAT_182671cdc;
  *(undefined1 *)(lVar7 + -0x2e9) = *puVar6;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar7 - (uVar40 ^ 0xd9d94a12)) = (uVar35 ^ uVar25) << 0x20 ^ uVar21;
  uVar9 = DAT_182671d04;
  lVar8 = DAT_182671c40;
  puVar39 = (ulonglong *)(lVar7 - ((ulonglong)uVar29 ^ 0xd9d9473a));
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       uVar35 ^ *(ulonglong *)(DAT_182671c40 + -0xda8) | *puVar39 ^ uVar23;
  uVar16 = DAT_182671c78;
  uVar41 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar8 - (uVar40 ^ 0xd9d94c52)) = (uVar21 ^ *puVar1 | uVar33 ^ *puVar4) ^ uVar41;
  puVar1 = (ulonglong *)(lVar8 + -0x228);
  uVar21 = (ulonglong)DAT_182671c70;
  *(longlong *)(lVar8 + -0xc90) = *(longlong *)(lVar8 + -0xd88) << ((bVar17 ^ 0xe5) & 0x3f);
  uVar9 = DAT_182671d3c;
  uVar25 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  *puVar3 = (uVar31 ^ *(ulonglong *)(lVar8 + -0x960)) -
            (*(ulonglong *)(lVar8 - (uVar21 ^ 0x7df955a7)) ^ uVar41) ^ uVar25;
  uVar13 = DAT_182671f3c;
  uVar19 = DAT_182671c88;
  uVar12 = DAT_182671c80;
  uVar11 = DAT_182671c7c;
  uVar23 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  puVar32 = (ulonglong *)(lVar8 - ((ulonglong)uVar29 ^ 0xd9d94ea2));
  uVar21 = CONCAT44(uVar9,uVar9) ^ uVar23 ^ uVar42 ^ *puVar32 ^ *puVar1;
  *(ulonglong *)(lVar8 + -0xda8) = uVar21;
  uVar31 = CONCAT44(uVar13,uVar13);
  *puVar4 = (uVar21 ^ uVar23) >> (((byte)uVar16 ^ 0x20) & 0x3f) ^ uVar31;
  bVar18 = (byte)uVar29;
  *(ulonglong *)(lVar8 + -0xc38) = 0x2dd4ba60b48f8c8 >> ((bVar18 ^ 0x1c) & 0x3f);
  uVar21 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar19 ^ 0xefea5504)) =
       (*(ulonglong *)(lVar8 - (uVar40 ^ 0xd9d94b82)) ^ uVar23) << 0x20 ^ uVar21;
  uVar14 = DAT_182671f68;
  uVar9 = DAT_182671d54;
  uVar23 = CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar21 = uVar21 ^ *(ulonglong *)(lVar8 + -0xd88) | uVar31 ^ *puVar4;
  uVar31 = uVar21 ^ uVar23;
  *(ulonglong *)(lVar8 + -0xc90) = uVar31;
  *(ulonglong *)(lVar8 + -0x960) =
       *(ulonglong *)(lVar8 + -0xc38) >> (((byte)uVar31 ^ (byte)uVar9) & 0x3f);
  uVar13 = DAT_182671f20;
  lVar7 = DAT_182671c40;
  uVar33 = CONCAT44(uVar14,uVar14);
  *puVar1 = (uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0x888)) - uVar21 ^ uVar33;
  uVar9 = DAT_182671e00;
  uVar16 = DAT_182671c54;
  uVar21 = (ulonglong)DAT_182671c84;
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar36 = (ulonglong)DAT_182671c50;
  uVar35 = uVar34 ^ uVar31 ^ uVar23 ^ uVar25 ^ *puVar3;
  *(ulonglong *)(lVar7 + -0xda8) = uVar35;
  uVar31 = CONCAT44(uVar9,uVar9);
  *puVar4 = (*(ulonglong *)(lVar7 - (uVar21 ^ 0xb00017a2)) ^ uVar34) >>
            (((byte)uVar16 ^ 0x61) & 0x3f) ^ uVar31;
  lVar7 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  uVar21 = (ulonglong)DAT_182671c58;
  uVar43 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = (uVar34 ^ uVar35) << ((bVar18 ^ 0x2c) & 0x3f) ^ uVar23;
  uVar16 = DAT_182671c70;
  uVar35 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar7 + -0xc38) =
       (*(ulonglong *)(lVar7 - (uVar21 ^ 0x73a71898)) ^ uVar23 |
       *(ulonglong *)(lVar7 - (uVar30 ^ 0x2626b20d)) ^ uVar31) ^ uVar43;
  uVar9 = DAT_182671dc0;
  *(ulonglong *)(lVar7 + -0x960) =
       (uVar25 ^ *puVar3) - (*(ulonglong *)(lVar7 - (uVar36 ^ 0x34cac60c)) ^ uVar43) ^ uVar35;
  uVar10 = DAT_182671c74;
  uVar19 = DAT_182671c5c;
  uVar31 = (ulonglong)DAT_182671c74;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0x8c58e267)) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar16 ^ 0x7df95df7)) ^ uVar21 ^ uVar33 ^ uVar41 ^ *puVar2
  ;
  *(ulonglong *)(lVar7 + -0xc90) =
       (uVar21 ^ *(ulonglong *)(lVar7 + -0x888)) >> (((byte)uVar16 ^ 0xc9) & 0x3f) ^ uVar33;
  uVar25 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar19 ^ 0xc1c047d)) =
       (uVar21 ^ *(ulonglong *)(lVar7 + -0x888)) << 0x2a ^ uVar25;
  uVar37 = (ulonglong)DAT_182671c84;
  *puVar4 = (uVar23 ^ *(ulonglong *)(lVar7 + -0xd88)) -
            (CONCAT44(uVar29,DAT_182671c68) ^ 0x4e56e888657c166a);
  uVar21 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c90 ^ 0x1a0ab110)) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar19 ^ 0xc1c0545)) ^ uVar33 |
       uVar25 ^ *(ulonglong *)(lVar7 + -0xda8)) ^ uVar21;
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xb0001072)) =
       (uVar25 ^ *(ulonglong *)(lVar7 + -0xda8)) << (((byte)DAT_182671c90 ^ 0x2d) & 0x3f);
  uVar9 = DAT_182671e90;
  uVar23 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(lVar7 + -0x888) = (uVar33 ^ *puVar1) - (uVar21 ^ *puVar3) ^ uVar23;
  lVar7 = DAT_182671c40;
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar21 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0x7df956bf)) ^ uVar34 ^ uVar21 ^
           uVar35 ^ *puVar39;
  uVar25 = CONCAT44(DAT_182671f38,DAT_182671f38);
  bVar17 = (byte)DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar21;
  uVar33 = (uVar21 ^ uVar34) >> ((bVar17 ^ 0xf5) & 0x3f);
  *puVar4 = uVar33 ^ uVar25;
  uVar27 = DAT_182671f18;
  uVar25 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar7 + -0xc90) = (uVar34 ^ uVar21) << ((bVar18 ^ 0x38) & 0x3f) ^ uVar25;
  uVar16 = DAT_182671c48;
  uVar36 = (ulonglong)DAT_182671c48;
  puVar20 = (ulonglong *)(lVar7 - (uVar30 ^ 0x2626b545));
  uVar34 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar21 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0x31f949fa)) = (uVar25 ^ *puVar20 | uVar33) ^ uVar34;
  uVar25 = CONCAT44(DAT_182671f54,DAT_182671f54);
  *puVar2 = (*(ulonglong *)(lVar7 - (uVar21 ^ 0x1c20096e)) ^ uVar35) -
            (*(ulonglong *)(lVar7 - (uVar36 ^ 0x1a0abda8)) ^ uVar34) ^ uVar25;
  puVar22 = (ulonglong *)(lVar7 - ((ulonglong)uVar16 ^ 0x1a0ab888));
  uVar21 = CONCAT44(uVar27,uVar27) ^ uVar23 ^ uVar43 ^ *(ulonglong *)(lVar7 + -0xc38) ^ *puVar22;
  *puVar1 = uVar21;
  uVar33 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0x4067304b)) =
       ((ulonglong)uVar27 << 0x14 | (ulonglong)(uVar27 >> 0xc)) ^ uVar21 >> 0xc ^ uVar33;
  lVar7 = DAT_182671c40;
  uVar41 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(uVar16,uVar26) ^ 0x5d1253c01052d98) +
       (CONCAT44(uVar19,DAT_182671c90) ^ 0xf3e8f849aab8830f);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c7c ^ 0x8c58e67f)) =
       (*(ulonglong *)(lVar7 - (uVar31 ^ 0x31f9467a)) ^ CONCAT44(uVar27,uVar27)) <<
       (((byte)DAT_182671c58 ^ 0x24) & 0x3f) ^ uVar41;
  uVar21 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c64 ^ 0x613c5aeb)) =
       (*(ulonglong *)(lVar7 + -0xc90) ^ uVar41 | uVar33 ^ *puVar3) ^ uVar21;
  uVar31 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(lVar7 + -0x960) =
       (*(ulonglong *)(lVar7 - (uVar30 ^ 0x2626b15d)) ^ uVar23) - (*puVar4 ^ uVar21) ^ uVar31;
  uVar9 = DAT_182671ca8;
  uVar19 = DAT_182671c48;
  uVar26 = DAT_182671c48 << 0x10;
  uVar21 = uVar25 ^ uVar42 ^ *puVar4 ^ *puVar2 ^ uVar21;
  *(ulonglong *)(lVar7 + -0xc38) = uVar21;
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xb0001782)) =
       ((ulonglong)(DAT_182671e98 >> 0x19) | (ulonglong)DAT_182671e98 << 7) ^ uVar21 >> 0x19 ^
       uVar35;
  uVar21 = *(ulonglong *)(lVar7 + -0xd88);
  uVar27 = (uVar26 | uVar19 & 0xff00) << 8 | uVar19 >> 8 & 0xff00 | DAT_182671c48 >> 0x18;
  uVar28 = uVar27 ^ 0x43d0489a;
  bVar17 = (byte)(DAT_182671c48 >> 0x18);
  uVar33 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar30 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar28 ^ 0x43604eb8)) ^ uVar42) <<
           ((bVar17 ^ 0x3d) & 0x3f);
  DAT_182671c90 = uVar28;
  *puVar1 = uVar30 ^ uVar33;
  uVar36 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar19 ^ 0x1a0ab110)) = (uVar21 ^ uVar35 | uVar30) ^ uVar36;
  lVar8 = DAT_182671c40;
  puVar24 = (ulonglong *)(lVar7 - ((ulonglong)uVar19 ^ 0x1a0aba78));
  uVar30 = CONCAT44(DAT_182671e08,DAT_182671e08);
  puVar39 = (ulonglong *)(DAT_182671c40 + -0xc38);
  uVar21 = *puVar1;
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (uVar25 ^ *puVar24) - (CONCAT44(uVar27,uVar27) ^ 0x67d62590f46147e3) ^ uVar30;
  *puVar22 = uVar42 ^ *puVar39 | uVar21 ^ uVar33;
  uVar25 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar42 = (*(ulonglong *)(lVar8 + -0xc90) ^ uVar30) - (*puVar3 ^ uVar36);
  *puVar4 = uVar42 ^ uVar25;
  uVar21 = *puVar3;
  *(int *)(lVar8 + -0x61c) = *(int *)(lVar8 + -0x58c) << (((byte)uVar28 ^ 0x93) & 0x1f);
  uVar26 = DAT_182671f58;
  uVar33 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  uVar30 = (ulonglong)DAT_182671f58;
  *(ulonglong *)(lVar8 + -0xd88) =
       (uVar21 ^ uVar36) - (CONCAT44(uVar16,uVar19) ^ 0x4ae71bf8ba4fc0f0) ^ uVar33;
  uVar35 = CONCAT44(uVar26,uVar26);
  *puVar2 = uVar34 ^ *(ulonglong *)(lVar8 + -0xda8) ^ *(ulonglong *)(lVar8 + -0x960) ^ uVar35 ^
            uVar31;
  uVar36 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar28 ^ 0x436048f8)) >> 0x20 ^ uVar30) >> 1;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar36 ^ CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar26 = DAT_182671e4c;
  lVar7 = DAT_182671c40;
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0x960);
  *(uint *)(DAT_182671c40 + -0x670) = (uVar19 ^ 0x1e7cb789) + (uVar19 ^ 0x8648a21e);
  uVar30 = (uVar35 ^ *puVar24) << ((bVar17 ^ 5) & 0x3f);
  *(ulonglong *)(lVar7 + -0xc38) = uVar30 ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar36 = uVar36 | uVar30;
  *puVar1 = uVar36 ^ uVar41;
  uVar9 = DAT_182671e30;
  uVar30 = (ulonglong)DAT_182671c48;
  uVar21 = (uVar21 ^ uVar31) - (CONCAT44(uVar16,uVar27) ^ 0xb4001c5b39dc8749);
  *(ulonglong *)(lVar7 + -0xc90) = uVar21 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar37 = (ulonglong)DAT_182671c48;
  uVar41 = uVar21 - (*(ulonglong *)(lVar7 - (uVar30 ^ 0x1a0ab228)) ^ uVar41) ^ uVar34;
  *puVar3 = uVar41;
  uVar21 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar30 = uVar36 + (CONCAT44(uVar16,uVar19) ^ 0xc53b777aff2fb136) ^ uVar21;
  *(ulonglong *)(lVar7 + -0xda8) = uVar30;
  uVar25 = *(ulonglong *)(lVar7 - (uVar37 ^ 0x1a0abbd8)) ^ CONCAT44(uVar26,uVar26) ^ uVar30 ^ uVar21
           ^ uVar25;
  *puVar2 = uVar25;
  uVar30 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar7 + -0x888) =
       ((ulonglong)uVar26 << 0x1b | (ulonglong)(uVar26 >> 5)) ^ uVar25 >> 5 ^ uVar30;
  uVar21 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar7 + -0xc38) = uVar42 - (CONCAT44(uVar12,uVar27) ^ 0x502530f3da6be865);
  uVar9 = DAT_182671cd8;
  uVar21 = (*(ulonglong *)(lVar7 - (uVar21 ^ 0x103c03a3)) ^ CONCAT44(uVar26,uVar26)) <<
           ((bVar17 ^ 0x21) & 0x3f);
  bVar18 = (byte)DAT_182671c4c;
  *(ulonglong *)(lVar7 + -0x960) = uVar21 ^ CONCAT44(DAT_182671d20,DAT_182671d20);
  lVar7 = DAT_182671c40;
  uVar35 = CONCAT44(uVar9,uVar9);
  uVar21 = uVar21 | uVar30 ^ *puVar22;
  uVar36 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar21 ^ uVar35;
  *puVar1 = uVar42 - uVar21 ^ uVar36;
  uVar30 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar7 + -0xda8) =
       (CONCAT44(uVar16,uVar27) ^ 0xe63869d9f6d46426) << ((bVar18 ^ 0xec) & 0x3f);
  uVar9 = DAT_182671c68;
  bVar38 = (byte)DAT_182671c68;
  uVar21 = *(ulonglong *)(lVar7 - (uVar37 ^ 0x1a0abd88)) ^ uVar41 ^ uVar30 ^ uVar34 ^ uVar33;
  uVar25 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar7 + -0xc38) = uVar21;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c5c ^ 0xc1c03ad)) =
       (uVar21 ^ uVar30) >> ((bVar38 ^ 0x4e) & 0x3f) ^ uVar25;
  uVar21 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar7 + -0x888) = (*(ulonglong *)(lVar7 + -0xc38) ^ uVar30) << 0x1b ^ uVar21;
  uVar19 = DAT_182671c60 ^ 0x459b5434;
  uVar30 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  uVar21 = *puVar32 ^ uVar21 | *puVar2 ^ uVar25;
  uVar16 = DAT_182671c90 ^ 0xbc38bca6;
  uVar41 = uVar21 ^ uVar30;
  *(ulonglong *)(lVar7 + -0x960) = uVar41;
  *(uint *)(lVar7 + -0x54) = uVar16 + uVar19;
  lVar7 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671c98,DAT_182671c98);
  bVar18 = (byte)DAT_182671c54;
  uVar37 = uVar41 ^ *puVar1 ^ uVar30 ^ uVar36;
  uVar41 = (*puVar3 ^ uVar34) - uVar21 ^ uVar25;
  *puVar4 = uVar41;
  *(ulonglong *)(lVar7 + -0xda8) = uVar37 ^ uVar33;
  uVar21 = uVar37 >> ((bVar18 ^ 0x4c) & 0x3f);
  uVar37 = uVar37 << ((bVar18 ^ 0x72) & 0x3f);
  *(ulonglong *)(lVar7 + -0xd88) = *puVar20 ^ *puVar1 ^ uVar36 ^ uVar35;
  uVar14 = DAT_182671ea0;
  *(ulonglong *)(lVar7 + -0xc38) = uVar21 ^ CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar13 = DAT_182671ce8;
  uVar30 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *puVar2 = uVar37 ^ CONCAT44(uVar14,uVar14);
  lVar7 = DAT_182671c40;
  uVar37 = uVar37 | uVar21;
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar21 = *puVar1;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar37 ^ uVar30;
  *puVar3 = (uVar21 ^ uVar36) - uVar37 ^ uVar34;
  uVar21 = (ulonglong)DAT_182671c64;
  uVar30 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar7 + -0x960) =
       *(ulonglong *)(lVar7 + -0xc90) ^ uVar30 ^ uVar25 ^ uVar41 ^ uVar35;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c80 ^ 0x1c200d86)) =
       (*(ulonglong *)(lVar7 - (uVar21 ^ 0x613c5853)) ^ uVar30) >>
       (((byte)DAT_182671c94 ^ 0xa4) & 0x3f) ^ uVar31;
  uVar14 = DAT_182671f2c;
  *(ulonglong *)(lVar7 + -0xc38) =
       (*(ulonglong *)(lVar7 + -0xda8) ^ uVar33) + (*(ulonglong *)(lVar7 + -0x960) ^ uVar30);
  uVar13 = DAT_182671f00;
  uVar21 = *puVar4;
  uVar30 = (*(ulonglong *)(lVar7 + -0x960) ^ uVar30) << ((bVar17 ^ 2) & 0x3f);
  *puVar2 = uVar30 ^ CONCAT44(uVar14,uVar14);
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar30 = uVar30 | *(ulonglong *)(lVar7 + -0xd88) ^ uVar31;
  *puVar1 = uVar30 ^ uVar33;
  uVar13 = DAT_182671f40;
  *(ulonglong *)(lVar7 + -0xc90) = (uVar25 ^ uVar21) - uVar30 ^ uVar23;
  uVar16 = DAT_182671c88;
  uVar25 = CONCAT44(uVar13,uVar13);
  uVar21 = *(ulonglong *)(lVar7 - ((ulonglong)uVar28 ^ 0x43604390)) ^
           *(ulonglong *)(lVar7 - (uVar40 ^ 0xd9d94402)) ^ uVar25 ^ uVar33 ^ uVar34;
  uVar30 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar7 + -0xda8) = uVar21;
  uVar23 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar7 + -0xc38) = (uVar21 ^ uVar25) >> (((byte)uVar16 ^ 0xb8) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c78 ^ 0x7dff6d60)) =
       (uVar21 ^ uVar25) << ((bVar38 ^ 0x67) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar7 + -0xd88) =
       (*(ulonglong *)(lVar7 + -0xc38) ^ uVar30) - (CONCAT44(uVar10,uVar27) ^ 0x685f3e842ebc5abd);
  uVar21 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c58 ^ 0x73a71f68)) =
       (*(ulonglong *)(lVar7 + -0x960) ^ uVar23 | *(ulonglong *)(lVar7 + -0xc38) ^ uVar30) ^ uVar21;
  uVar23 = CONCAT44(uVar11,DAT_182671c70);
  uVar30 = CONCAT44(uVar9,DAT_182671c8c);
  *puVar4 = (uVar34 ^ *puVar3) - (uVar21 ^ *puVar2) ^ CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *puVar1 = (uVar30 ^ 0xab37ad38c3697919) + (uVar23 ^ 0x7abce30776b8b6c0);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar5 ^ uVar29;
  return;
}



############ FUN_ 180f51e20 size=3387 ############

void FUN_180f51e20(void)

{
  char cVar1;
  char cVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  uint uVar21;
  byte *pbVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  uint uVar34;
  ulonglong uVar35;
  
  uVar7 = DAT_182671c88;
  uVar10 = DAT_182671c74;
  uVar6 = DAT_182671c54;
  uVar16 = DAT_182671c50;
  uVar5 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  DAT_182671c60 = DAT_182671c70 + DAT_182671c78;
  uVar26 = (ulonglong)DAT_182671c4c;
  uVar28 = (ulonglong)DAT_182671c50;
  uVar27 = DAT_182671c4c & DAT_182671c5c;
  uVar25 = DAT_182671c64 ^ DAT_182671c90;
  uVar18 = (ulonglong)DAT_182671c88;
  DAT_182671c68 = DAT_182671c84 + DAT_182671c7c;
  uVar13 = DAT_182671c50 & 3;
  if (uVar13 < 2) {
    uVar23 = DAT_182671c88;
    if (uVar13 == 0) {
      uVar23 = DAT_182671c50;
    }
  }
  else {
    uVar23 = DAT_182671c58;
    if (uVar13 < 3) {
      uVar23 = DAT_182671c54;
    }
  }
  uVar21 = *(uint *)(&DAT_182613218 + DAT_182672188) ^ DAT_182671c58;
  uVar31 = (ulonglong)DAT_182671c74;
  uVar14 = *(uint *)(&DAT_182613220 + DAT_182672188) ^ DAT_182671c74;
  uVar24 = (ulonglong)DAT_182671e58;
  DAT_182671c48 = uVar25;
  DAT_182671c80 = uVar23;
  DAT_182671c8c = uVar27;
  *(undefined8 *)(DAT_182671c40 - (uVar28 ^ 0x5bc59f08)) = *(undefined8 *)(DAT_182671c40 + -0xae0);
  *(ulonglong *)(lVar3 + -0xc90) =
       *(ulonglong *)(lVar3 + -0x30) >> ((byte)*(undefined8 *)(lVar3 + -0xc38) & 0x3f);
  uVar17 = (ulonglong)uVar23;
  *(undefined8 *)(lVar3 - (uVar17 ^ 0x5bc594b8)) = *(undefined8 *)(lVar3 + -0x4a0);
  *(ulonglong *)(lVar3 + -0x228) =
       (CONCAT44(uVar6,uVar7) ^ 0x2a5de63a820b23ce) <<
       ((byte)*(undefined8 *)(lVar3 + -0xda8) & 0x3f);
  uVar8 = DAT_182671c6c;
  uVar30 = (ulonglong)DAT_182671c6c;
  uVar19 = (ulonglong)DAT_182671d44;
  uVar13 = DAT_182671c6c << 0x10;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0xd0080980)) = *(ulonglong *)(lVar3 + -0x908) ^ uVar24
  ;
  pbVar22 = *(byte **)(lVar3 + -0x2b8);
  *(ulonglong *)(lVar3 + -0x710) = (ulonglong)pbVar22 ^ uVar19;
  uVar7 = DAT_182671c6c;
  uVar34 = (uVar13 | uVar8 & 0xff00) << 8 | uVar8 >> 8 & 0xff00 | DAT_182671c6c >> 0x18;
  *(ulonglong *)(lVar3 + -0x680) = *(ulonglong *)(lVar3 + -0x510) ^ 0x927479d082f9603d;
  DAT_182671c94 = uVar34;
  *(byte **)(lVar3 + -0x220) = pbVar22 + (CONCAT44(uVar34,uVar8) ^ 0x3fdbbf7f7fbfdb3e);
  *(ulonglong *)(lVar3 + -0xa08) = 0x46a4181fd81a127f - (CONCAT44(uVar5,uVar8) ^ 0xa97f279aa525653d)
  ;
  *(byte *)(lVar3 + -0xc9a) = (byte)DAT_182671ecc ^ (byte)DAT_182671d18 ^ *pbVar22;
  bVar20 = (byte)DAT_182671c5c;
  *(byte *)(lVar3 + -0xbf1) = (char)DAT_182671c84 + (char)DAT_182671c7c ^ 0xea;
  uVar11 = DAT_182671c7c;
  *(byte *)(*(ulonglong *)(lVar3 + -0x850) ^ (ulonglong)DAT_182671f68) = bVar20 ^ 0x49;
  uVar13 = DAT_182671c90;
  uVar27 = DAT_182671c64;
  uVar19 = (ulonglong)DAT_182671c90;
  uVar29 = (ulonglong)DAT_182671db4;
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x90082488)) =
       (CONCAT44(uVar11,uVar16) ^ 0xfc8dce9d5bc59601) + (*(ulonglong *)(lVar3 + -0xd80) ^ uVar24);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x62a29e3)) ^ uVar24) =
       *(byte *)(lVar3 + -0xc9a) ^ (byte)DAT_182671ecc;
  uVar18 = (ulonglong)DAT_182671c78;
  *(int *)(lVar3 + -0x1c8) = *(int *)(lVar3 + -0x94c) + *(int *)(lVar3 + -0x5d4);
  *(ulonglong *)(lVar3 + -0xb68) = *(ulonglong *)(lVar3 + -0xd48);
  *(undefined1 *)(lVar3 + -0xc9a) = 0xa2;
  pbVar22 = *(byte **)(lVar3 - (uVar18 ^ 0xfcdffd9f));
  uVar18 = CONCAT44(DAT_182671c84,DAT_182671c60);
  *(byte **)(lVar3 + -0x168) = pbVar22;
  *(ulonglong *)(lVar3 + -0xa50) = uVar18 ^ 0x8025a1f77bcdf39b | *(ulonglong *)(lVar3 + -0x680);
  uVar18 = (ulonglong)DAT_182671f4c;
  *(ulonglong *)(lVar3 + -0x38) = uVar29 ^ *(ulonglong *)(lVar3 + -0xd48);
  *(ulonglong *)(lVar3 + -0xbc0) = (ulonglong)pbVar22 ^ uVar18;
  *(ulonglong *)(lVar3 + -0x110) = CONCAT44(uVar27,uVar13) ^ 0x30396f5b5b9c989f;
  uVar9 = DAT_182671c70;
  uVar13 = DAT_182671c5c;
  uVar35 = (ulonglong)DAT_182671c70;
  bVar20 = (byte)DAT_182671c58;
  *(ulonglong *)(DAT_182671c40 + -0x800) =
       (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x13000bc0)) ^ uVar18) +
       (CONCAT44(uVar25,DAT_182671c70) ^ 0x64f4db1e13000001);
  bVar12 = (byte)DAT_182671ddc;
  lVar3 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x5b9) = *pbVar22 ^ (byte)DAT_182671ddc ^ (byte)DAT_182671d18;
  *(byte *)(lVar3 - ((ulonglong)uVar27 ^ 0xb8785296)) = bVar20 ^ 0xe1;
  *(undefined1 *)
   (*(ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0x3fdbb36f)) ^ (ulonglong)DAT_182671d14) = 0xaa;
  *(ulonglong *)(lVar3 + -0x828) =
       (CONCAT44(uVar13,uVar6) ^ 0x76579b4b8b2f0505) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar28 ^ 0x5bc59c60)) & 0x3f);
  pbVar22 = (byte *)(*(ulonglong *)(lVar3 + -0x38) ^ uVar29);
  *(byte **)(lVar3 + -0x5a0) = pbVar22 + (CONCAT44(uVar23,uVar9) ^ 0x5bc5960013000001);
  *(ulonglong *)(lVar3 + -0x408) = CONCAT44(uVar25,uVar27) << 0x3f ^ 0x8000000000000000;
  cVar1 = (char)DAT_182671c84;
  cVar2 = (char)DAT_182671c7c;
  *pbVar22 = bVar12 ^ *(byte *)(lVar3 + -0x5b9);
  uVar9 = DAT_182671f60;
  pbVar22 = *(byte **)(lVar3 + -0x800);
  uVar29 = (ulonglong)DAT_182671f60;
  *(byte *)(lVar3 + -0x5b9) = cVar1 + cVar2 ^ 0xd7;
  *(ulonglong *)(lVar3 + -0xbe0) = *(ulonglong *)(lVar3 + -0x5a0);
  uVar18 = (ulonglong)DAT_182671c9c;
  *(ulonglong *)(lVar3 + -0x818) = uVar29 ^ *(ulonglong *)(lVar3 + -0x5a0);
  *(byte **)(lVar3 + -0x6c8) = pbVar22;
  *(ulonglong *)(lVar3 + -0x198) = uVar18 ^ (ulonglong)pbVar22;
  bVar33 = (byte)(uVar7 >> 0x18);
  uVar32 = (ulonglong)DAT_182671d30;
  *(byte **)(lVar3 + -0xbb0) = pbVar22 + 1;
  *(byte *)(lVar3 + -0x471) = (byte)DAT_182671d08 ^ (byte)DAT_182671d18 ^ *pbVar22;
  *(byte *)(lVar3 + -0x71) = (byte)DAT_182671c4c ^ 0x68;
  uVar7 = DAT_182671c7c;
  *(byte *)(*(ulonglong *)(lVar3 + -0x470) ^ (ulonglong)DAT_182671d34) = bVar33 ^ 0xd1;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0x900829a8)) =
       (CONCAT44(uVar16,uVar7) ^ 0x5bc59600fc8dce9c) +
       ((ulonglong)uVar9 ^ *(ulonglong *)(lVar3 + -0x818));
  uVar7 = DAT_182671c58;
  uVar24 = (ulonglong)DAT_182671c58;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar19 ^ 0xdc8c8c91)) ^ uVar29) =
       *(byte *)(lVar3 - (uVar17 ^ 0x5bc59271)) ^ (byte)DAT_182671d08;
  *(undefined1 *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0xfcdffbce)) = 0x45;
  *(undefined1 *)(lVar3 + -0x719) = 0x2e;
  uVar18 = *(ulonglong *)(lVar3 - (uVar31 ^ 0x62a240b));
  *(undefined8 *)(lVar3 + -0x3f8) = *(undefined8 *)(lVar3 + -0xbb0);
  uVar19 = CONCAT44(DAT_182671c8c,uVar34);
  *(ulonglong *)(lVar3 + -0x9f8) = uVar18;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar19 ^ 0x611fecad61b40374 | *(ulonglong *)(lVar3 + -0xa08);
  uVar19 = (ulonglong)DAT_182671e14;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x7fbfdeef)) = uVar18 ^ uVar32;
  uVar18 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x30488505)) =
       *(ulonglong *)(lVar3 - (uVar24 ^ 0xefb7f107)) ^ uVar19;
  bVar20 = (byte)DAT_182671c70;
  *(ulonglong *)(lVar3 + -0x488) = (*(ulonglong *)(lVar3 - (uVar18 ^ 0xdc8c8789)) ^ uVar19) + 1;
  *(byte *)(lVar3 + -0x8e1) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xdc8c9489)) ^ uVar19) ^
       (byte)DAT_182671da8 ^ (byte)DAT_182671d18;
  *(byte *)(lVar3 + -0xa61) = (byte)DAT_182671c54 ^ 9;
  *(byte *)(*(ulonglong *)(lVar3 + -0x508) ^ (ulonglong)DAT_182671f70) = bVar20 ^ 0x32;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xf32a224a)) =
       *(ulonglong *)(lVar3 + -0xa70) ^ *(ulonglong *)(lVar3 + -0x3d8);
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x5bc59138)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c60 ^ 0xfdffa6f)) ^ uVar32) +
       (CONCAT44(DAT_182671c60,uVar27) ^ 0xfdfffbfb8785f96);
  uVar15 = DAT_182671c84 + DAT_182671c7c;
  *(ulonglong *)(lVar4 + -0x760) =
       (CONCAT44(uVar34,uVar27) ^ 0xccfa09af8c87780c) <<
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)uVar15 ^ 0x2cd658ba)) & 0x3f);
  uVar19 = (ulonglong)DAT_182671c88;
  uVar24 = (ulonglong)DAT_182671da4;
  uVar30 = (ulonglong)DAT_182671da4;
  uVar29 = (ulonglong)DAT_182671f84;
  bVar20 = (byte)DAT_182671c74;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c88 ^ 0x90082c10)) ^ uVar32) =
       *(byte *)(lVar4 + -0x8e1) ^ (byte)DAT_182671da8;
  *(byte *)(lVar4 + -0x8e1) = bVar20 ^ 0x5b;
  *(undefined8 *)(lVar4 + -0x3c0) = *(undefined8 *)(lVar4 + -0x738);
  uVar18 = *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xefb7f677));
  *(ulonglong *)(lVar4 + -0x7a8) = uVar18;
  uVar30 = uVar30 ^ uVar18;
  uVar27 = DAT_182671c6c & 0x8ce70201;
  *(ulonglong *)(lVar4 + -0x3b0) = *(ulonglong *)(lVar4 - (uVar26 ^ 0xf32a27a2)) ^ uVar29;
  *(ulonglong *)(lVar4 + -0xc80) = uVar30;
  *(uint *)(lVar4 + -0x634) = uVar27 ^ 0x8cc00001;
  uVar9 = DAT_182671c90;
  bVar20 = (byte)DAT_182671c54;
  uVar18 = (ulonglong)DAT_182671c90;
  uVar32 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar4 + -0xa20) =
       (*(ulonglong *)(lVar4 - (uVar19 ^ 0x90082540)) ^ uVar24) +
       (CONCAT44(uVar25,DAT_182671c8c) ^ 0x64f4db1ed0080401);
  bVar12 = (byte)DAT_182671d18;
  lVar3 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x5ba) =
       *(byte *)(uVar30 ^ uVar24) ^ (byte)DAT_182671f8c ^ (byte)DAT_182671d18;
  *(undefined1 *)(lVar3 - (uVar18 ^ 0xdc8c87b8)) = 0xd8;
  *(byte *)(*(ulonglong *)(lVar3 + -0x358) ^ (ulonglong)DAT_182671d4c) = bVar20 ^ 0x6f;
  pbVar22 = (byte *)(uVar29 ^ *(ulonglong *)(lVar3 + -0x3b0));
  *(byte **)(lVar3 + -0x170) = pbVar22 + 1;
  uVar27 = DAT_182671c7c;
  uVar26 = (ulonglong)DAT_182671c48;
  uVar18 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0x920) =
       (CONCAT44(uVar11,uVar6) ^ 0xae7e9a65e12e7de3) +
       (CONCAT44(uVar16,DAT_182671c48) ^ 0x2717933deccd6b9c);
  *pbVar22 = *(byte *)(lVar3 - (uVar18 ^ 0xfc8dcb27)) ^ (byte)DAT_182671f8c;
  *(undefined1 *)(lVar3 - (uVar35 ^ 0x130005ba)) = 0x99;
  *(undefined8 *)(lVar3 + -0xd18) = *(undefined8 *)(lVar3 + -0x170);
  uVar19 = (ulonglong)DAT_182671e48;
  uVar24 = (ulonglong)DAT_182671de8;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar9 ^ 0xdc8c8061)) = *(undefined8 *)(lVar3 + -0xa20);
  uVar25 = DAT_182671c78;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x2cd65982)) = uVar24 ^ *(ulonglong *)(lVar3 + -0xd18)
  ;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x64f4d03e)) =
       CONCAT44(uVar7,uVar6) ^ CONCAT44(uVar9,uVar27) ^ 0x3b025ecb8be1c564;
  uVar18 = CONCAT44(uVar25,DAT_182671c84);
  *(ulonglong *)(lVar3 + -0x350) = *(ulonglong *)(lVar3 + -0x4e8) ^ uVar19;
  *(ulonglong *)(lVar3 + -0xd88) = uVar18 ^ CONCAT44(uVar5,uVar13) ^ 0xf0083d29af951084;
  bVar20 = (byte)DAT_182671ce0;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x5bc59660)) =
       (CONCAT44(uVar5,uVar23) ^ 0xf32a24625bc59601) + *(ulonglong *)(lVar3 + -0x4e8);
  *(byte *)(lVar3 + -0x95) = *(byte *)(uVar19 ^ *(ulonglong *)(lVar3 + -0x350)) ^ bVar20 ^ bVar12;
  cVar1 = (char)DAT_182671c84;
  cVar2 = (char)DAT_182671c7c;
  *(byte *)(lVar3 + -0xb59) = (byte)uVar23 ^ 0x35;
  uVar16 = DAT_182671c50 ^ 0x330f1bdd;
  *(byte *)(*(ulonglong *)(lVar3 + -0xbc8) ^ (ulonglong)DAT_182671fa4) = cVar1 + cVar2 ^ 0x8d;
  *(uint *)(lVar3 + -0x9dc) = uVar16 * (DAT_182671c88 ^ 0x3028f1a);
  uVar19 = (ulonglong)DAT_182671df8;
  *(ulonglong *)(lVar3 + -0x270) = (*(ulonglong *)(lVar3 - (uVar31 ^ 0x62a2943)) ^ uVar24) + 1;
  *(byte *)(*(ulonglong *)(lVar3 + -0xd20) ^ uVar24) = bVar20 ^ *(byte *)(lVar3 + -0x95);
  uVar16 = DAT_182671c60;
  *(byte *)(lVar3 - ((ulonglong)DAT_182671c60 ^ 0xfdfff2a)) = (byte)DAT_182671c64 ^ 0xc1;
  pbVar22 = *(byte **)(lVar3 + -0x60);
  *(undefined8 *)(lVar3 + -0x440) = *(undefined8 *)(lVar3 + -0x270);
  *(ulonglong *)(lVar3 + -0xb08) =
       0x6ab4d09c7e2406ab >> ((byte)*(undefined8 *)(lVar3 + -0xa78) & 0x3f);
  *(byte **)(lVar3 + -0x2a8) = pbVar22;
  *(ulonglong *)(lVar3 + -0xc98) = *(ulonglong *)(lVar3 - (uVar26 ^ 0x64f4df5e)) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x998) = (ulonglong)DAT_182671e30 ^ (ulonglong)pbVar22;
  *(byte **)(lVar3 + -0x520) = pbVar22 + (CONCAT44(uVar5,uVar8) ^ 0xf32a24627fbfdb3e);
  *(byte *)(lVar3 + -0x3b2) = *pbVar22 ^ (byte)DAT_182671df4 ^ bVar12;
  uVar18 = (ulonglong)DAT_182671f78;
  *(undefined1 *)(lVar3 + -0x7d1) = 0x97;
  *(byte *)(*(ulonglong *)(lVar3 + -0x6a0) ^ uVar18) = bVar33 ^ 0x56;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x5bc59580)) =
       *(ulonglong *)(lVar3 - (uVar32 ^ 0xd0080d20)) ^ CONCAT44(uVar8,uVar25) ^ 0x7aaf1969cc22dfc5;
  *(ulonglong *)(lVar3 + -0x698) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x62a28fb)) ^ uVar19) +
       (CONCAT44(uVar10,uVar16) ^ 0x62a24630fdfffbe);
  bVar20 = *(byte *)(lVar3 - (uVar28 ^ 0x5bc595b2)) ^ (byte)DAT_182671df4;
  uVar18 = *(ulonglong *)(lVar3 + -0xc98);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar21;
  *(byte *)(uVar19 ^ uVar18) = bVar20;
  return;
}



############ FUN_ 180fbf0c0 size=3982 ############

void FUN_180fbf0c0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  byte bVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  byte bVar15;
  byte *pbVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint *puVar32;
  
  uVar28 = DAT_182671ed0;
  uVar20 = DAT_182671eb4;
  uVar29 = DAT_182671c80;
  uVar12 = DAT_182671c60;
  lVar1 = DAT_182671c40;
  uVar13 = (ulonglong)DAT_182671c60;
  uVar22 = DAT_182671c80 ^ DAT_182671c60;
  uVar9 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar22 ^ 0x71539b06) + (longlong)DAT_1826722d0) ^
          DAT_182671c80;
  uVar10 = *(uint *)(&DAT_182613220 + DAT_1826722d0) ^ DAT_182671c60;
  pbVar16 = (byte *)(DAT_182671c40 + -0x1c3);
  uVar14 = (ulonglong)DAT_182671c80;
  DAT_182671c48 = uVar22;
  *(uint *)(DAT_182671c40 + -0x9dc) = (DAT_182671c60 ^ 0xa28e2433) << (((byte)uVar22 ^ 2) & 0x1f);
  uVar17 = (uint)((byte)DAT_182671db0 ^ *pbVar16);
  *(uint *)(lVar1 + -0x1c8) = uVar17 ^ uVar20;
  uVar18 = uVar17 << 0x11 ^ DAT_182671f64;
  uVar17 = *(uint *)(lVar1 - (uVar14 ^ 0xd52d95a)) ^ DAT_182671d60;
  *(uint *)(lVar1 + -0x6c0) = uVar18;
  uVar18 = uVar18 ^ DAT_182671f64;
  uVar17 = uVar17 + (uVar22 ^ 0xed118910) ^ DAT_182671e74;
  *(uint *)(lVar1 + -0x76c) = uVar17;
  uVar19 = *(uint *)(lVar1 + -0x670) ^ DAT_182671f1c;
  uVar17 = (uVar17 ^ DAT_182671e74) - uVar18 ^ DAT_182671d24;
  *(uint *)(lVar1 + -0x94) = uVar17;
  *(uint *)(lVar1 - ((ulonglong)uVar12 ^ 0x7c014484)) =
       uVar19 * (uVar17 ^ DAT_182671d24) ^ DAT_182671e5c;
  uVar17 = *(uint *)(lVar1 + -0x684) ^ DAT_182671e5c;
  uVar20 = (*(uint *)(lVar1 - ((ulonglong)uVar29 ^ 0xd52d8c6)) ^ uVar20) * (uVar12 ^ 0x7c014214) ^
           DAT_182671f2c;
  *(uint *)(lVar1 + -0x784) = uVar20;
  uVar17 = (uVar20 ^ DAT_182671f2c) + uVar17;
  *(uint *)(lVar1 + -0x94c) = uVar17 ^ uVar28;
  *(uint *)(lVar1 - ((ulonglong)uVar22 ^ 0x715391ea)) =
       uVar17 << (((byte)uVar12 ^ 0xd) & 0x1f) ^ DAT_182671f60;
  uVar14 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar1 + -0x444) =
       (*(uint *)(lVar1 + -0x94c) ^ uVar28) >> (((byte)uVar29 ^ 0x1d) & 0x1f) ^ DAT_182671f44;
  uVar3 = DAT_182671e14;
  uVar17 = DAT_182671c6c;
  uVar28 = DAT_182671c68;
  uVar26 = (ulonglong)DAT_182671c6c;
  puVar32 = (uint *)(lVar1 - (uVar14 ^ 0x1d12dfdd));
  uVar20 = (*(uint *)(lVar1 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar1 + -0x670) ^ DAT_182671f1c)
           ^ DAT_182671d18;
  *(uint *)(lVar1 + -0x634) =
       (*(uint *)(lVar1 - ((ulonglong)uVar29 ^ 0xd52d3ea)) ^ DAT_182671f60 |
       *puVar32 ^ DAT_182671f44) ^ DAT_182671f78;
  *(uint *)(lVar1 + -0x644) = uVar20;
  lVar2 = DAT_182671c40;
  uVar20 = uVar20 ^ DAT_182671f50 ^ DAT_182671d18;
  *(uint *)(lVar1 + -0x58c) = uVar20;
  uVar4 = DAT_182671c8c;
  uVar18 = *(uint *)(lVar1 - (uVar26 ^ 0xef98f9c1)) ^ DAT_182671d10 ^ DAT_182671f78;
  uVar24 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar2 + -0x76c) = (uVar28 ^ 0x1cc37afd) + (uVar22 ^ 0x855939f8);
  *(uint *)(lVar1 + -0x61c) = uVar18;
  uVar27 = DAT_182671ca4;
  uVar19 = uVar18 ^ DAT_182671e38 ^ DAT_182671d10;
  *(uint *)(lVar2 + -0x9dc) = uVar20 ^ DAT_182671ca4 ^ DAT_182671f50;
  uVar14 = (ulonglong)DAT_182671e2c;
  *(uint *)(lVar2 + -0x54) = uVar19;
  uVar20 = DAT_182671ecc;
  lVar1 = DAT_182671c40;
  uVar18 = DAT_182671ecc & 0xff;
  pbVar16 = (byte *)((CONCAT44(uVar4,uVar22) ^ 0xdb991d1271539b0e) * 0x20 +
                     (CONCAT44(uVar29,uVar17) ^ 0xd52d90eef98ffea) +
                    *(longlong *)(DAT_182671c40 + -0x9a8));
  *(ulonglong *)(DAT_182671c40 + -0x5a0) = (ulonglong)pbVar16 ^ uVar14;
  bVar7 = *pbVar16 ^ (byte)uVar20 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar1 + -0x1c3) = bVar7;
  uVar19 = uVar19 ^ DAT_182671e38;
  uVar14 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar1 + -0x6c0) = uVar18 ^ bVar7 ^ uVar3;
  uVar23 = uVar4 ^ DAT_182671c80;
  *(uint *)(lVar1 - (uVar14 ^ 0x1d12db0d)) = uVar19 + (uVar28 ^ 0x63b7fd86) ^ DAT_182671f54;
  uVar30 = DAT_182671e8c;
  lVar2 = DAT_182671c40;
  uVar20 = (*(uint *)(lVar1 + -0x6c0) ^ uVar3) << (((byte)uVar4 ^ 3) & 0x1f) ^ DAT_182671cc8;
  uVar19 = *(uint *)(DAT_182671c40 + -0x94) ^ DAT_182671f54;
  *(uint *)(lVar1 + -0x1c8) = uVar20;
  uVar18 = DAT_182671c74;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0x3c50e34)) =
       uVar19 - (uVar20 ^ DAT_182671cc8) ^ DAT_182671f0c;
  *(uint *)(lVar2 + -0x784) =
       (*(uint *)(lVar2 + -0x684) ^ DAT_182671f0c) * (uVar27 ^ *(uint *)(lVar2 + -0x9dc)) ^
       DAT_182671f20;
  uVar19 = DAT_182671c7c;
  uVar31 = (ulonglong)DAT_182671c7c;
  *(longlong *)(lVar2 - ((ulonglong)uVar17 ^ 0xef98f585)) =
       *(longlong *)(lVar2 + -0x960) << (((byte)DAT_182671c64 ^ 0xa2) & 0x3f);
  uVar6 = DAT_182671f24;
  uVar20 = *(uint *)(lVar2 - (uVar13 ^ 0x7c0144c0));
  uVar11 = *(uint *)(lVar2 + -0x784) ^ DAT_182671f20;
  *(uint *)(lVar2 + -0xae4) = uVar23 ^ 0xf04e672c;
  uVar20 = (uVar20 ^ uVar3) * 0x1f ^ DAT_182671e0c;
  *(uint *)(lVar2 + -0x94c) = uVar20;
  uVar5 = DAT_182671e6c;
  *(uint *)(lVar2 + -0x444) = (uVar20 ^ DAT_182671e0c) + uVar11 ^ uVar30;
  uVar20 = DAT_182671c50;
  uVar14 = (ulonglong)DAT_182671c58;
  uVar25 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x3b450662)) =
       *(ulonglong *)(CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar2 + -0x668)) ^
       CONCAT44(uVar6,uVar6);
  uVar11 = DAT_182671c78 ^ 0x30a4d417;
  *(ulonglong *)(lVar2 + -0x668) = CONCAT44(uVar28,uVar20) ^ 0x192c067b0422c0d4;
  uVar3 = DAT_182671c84;
  *(uint *)(lVar2 + -0x670) = (*puVar32 ^ uVar30) << (((byte)uVar17 ^ 0xf8) & 0x1f) ^ DAT_182671d9c;
  *(uint *)(lVar2 - (uVar14 ^ 0x1a9886de)) = uVar11 + (uVar3 ^ 0xdd500216);
  uVar20 = (uVar30 ^ *(uint *)(lVar2 + -0x444)) >> 0x13 ^ DAT_182671e84;
  *(uint *)(lVar2 + -0x634) = uVar20;
  uVar20 = uVar20 ^ DAT_182671e84;
  *(ulonglong *)(lVar2 + -0x7c0) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x3c50b30)) | 0xcb66036b497794f6;
  *(uint *)(lVar2 + -0x58c) = (uVar20 | *(uint *)(lVar2 + -0x670) ^ DAT_182671d9c) ^ DAT_182671d68;
  *(uint *)(lVar2 - (uVar14 ^ 0x1a988686)) =
       (*(uint *)(lVar2 - (uVar24 ^ 0xdb9914ce)) ^ uVar27) +
       (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671f68;
  uVar14 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar2 + -0x5e8) =
       (CONCAT44(DAT_182671c64,DAT_182671c88) ^ 0x36775a21e2c78ca9) - *(longlong *)(lVar2 + -0xa50);
  *(uint *)(lVar2 + -0x76c) = *(uint *)(lVar2 + -0x61c) ^ DAT_182671ca8 ^ DAT_182671f68;
  bVar7 = (byte)DAT_182671f38;
  uVar27 = DAT_182671f30;
  uVar5 = DAT_182671c90;
  uVar13 = (ulonglong)DAT_182671c94;
  uVar20 = *(uint *)(lVar2 - (uVar14 ^ 0x1008449e)) ^ DAT_182671d80 ^ DAT_182671d68;
  uVar14 = (ulonglong)DAT_182671ccc;
  uVar21 = CONCAT44(DAT_182671c70,uVar19);
  *(uint *)(lVar2 + -0x54) = uVar20;
  uVar17 = uVar20 ^ DAT_182671d1c ^ DAT_182671d80;
  uVar30 = *(uint *)(lVar2 - (uVar13 ^ 0x80a20324)) ^ uVar27 ^ DAT_182671ca8;
  *(uint *)(lVar2 + -0x1c8) = uVar17;
  uVar17 = uVar17 ^ DAT_182671d1c;
  *(uint *)(lVar2 + -0x94) = uVar30;
  uVar20 = DAT_182671f74;
  pbVar16 = (byte *)((uVar21 ^ 0x36e708a53b450e98) +
                     (CONCAT44(uVar29,uVar12) ^ 0xd52d90e7c014200) * 0x20 +
                    *(longlong *)(lVar2 + -0x9a8));
  *(ulonglong *)(lVar2 + -0xa60) = *(ulonglong *)(lVar2 + -0xda8) ^ *(ulonglong *)(lVar2 + -0xf0);
  *(ulonglong *)(lVar2 + -0xbc0) = (ulonglong)pbVar16 ^ uVar14;
  bVar8 = *pbVar16 ^ bVar7 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar2 + -0x1c3) = bVar8;
  uVar29 = (uint)(bVar7 ^ bVar8);
  *(ulonglong *)(lVar2 + -0xc38) =
       CONCAT44(uVar18,uVar19) ^ *(ulonglong *)(lVar2 + -0x380) ^ 0x3166f34262c77d81;
  lVar1 = DAT_182671c40;
  *(uint *)(lVar2 + -0x684) = uVar29 ^ uVar20;
  uVar14 = (ulonglong)uVar3;
  uVar11 = DAT_182671c4c ^ 0x43b1eb70;
  uVar18 = uVar17 + uVar11 ^ DAT_182671f44;
  *(uint *)(lVar1 + -0x6c0) = uVar18;
  *(ulonglong *)(lVar1 + -0xb08) =
       *(ulonglong *)(lVar1 - (uVar14 ^ 0x41121c30)) ^ CONCAT44(uVar22,uVar5) ^ 0x2f080af25214d447;
  lVar1 = DAT_182671c40;
  uVar17 = uVar29 << (((byte)DAT_182671c80 ^ 0x1f) & 0x1f) ^ DAT_182671f88;
  uVar18 = uVar18 ^ DAT_182671f44;
  *(uint *)(DAT_182671c40 + -0xae4) = uVar17;
  uVar20 = DAT_182671cb8;
  puVar32 = (uint *)(lVar1 - (uVar25 ^ 0xdff3feea));
  *(uint *)(lVar1 + -0x784) = uVar18 - (uVar17 ^ DAT_182671f88) ^ DAT_182671e9c;
  uVar17 = DAT_182671d34;
  bVar15 = (byte)uVar3 ^ 5;
  *(uint *)(lVar1 + -0x94c) = (*puVar32 ^ DAT_182671e9c) * (uVar30 ^ uVar27) ^ DAT_182671e80;
  *(uint *)(lVar1 - (uVar26 ^ 0xef98f9b1)) = uVar29 * (DAT_182671c94 ^ 0x80a20442) ^ DAT_182671ebc;
  uVar18 = (*(uint *)(lVar1 + -0x644) ^ DAT_182671ebc) + (*(uint *)(lVar1 + -0x94c) ^ DAT_182671e80)
  ;
  uVar21 = CONCAT44(uVar5,DAT_182671c70);
  uVar13 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar1 + -0x444) = uVar18 ^ uVar20;
  *(ulonglong *)(lVar1 + -0x760) = uVar13 << 0x35 ^ 0x4420000000000000;
  uVar13 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar1 + -0x670) = uVar18 << (bVar15 & 0x1f) ^ DAT_182671ef4;
  *(uint *)(lVar1 + -0x634) = (*(uint *)(lVar1 - (uVar13 ^ 0x81e2801c)) ^ uVar20) >> 0x13 ^ uVar17;
  *(ulonglong *)(lVar1 - (uVar13 ^ 0x81e280e0)) =
       (CONCAT44(uVar12,uVar28) ^ 0x7b4a20166dee23e2) + (uVar21 ^ 0x57bee24f5d73f1a8);
  uVar12 = DAT_182671ddc;
  uVar18 = DAT_182671d04 ^ DAT_182671cb0;
  uVar30 = DAT_182671c84 | uVar19;
  *(uint *)(lVar1 + -0x9dc) =
       (DAT_182671ef4 ^ *(uint *)(lVar1 + -0x670) | *(uint *)(lVar1 + -0x634) ^ uVar17) ^
       DAT_182671d48;
  uVar20 = (*(uint *)(lVar1 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar1 + -0x94) ^ uVar27) ^
           DAT_182671cb0;
  *(uint *)(lVar1 + -0x61c) = uVar20;
  DAT_182671c80 = uVar30;
  *(uint *)(lVar1 - (uVar14 ^ 0x41121584)) = uVar18 ^ uVar20;
  *(ulonglong *)(lVar1 + -0xbd8) =
       *(longlong *)(lVar1 - (uVar31 ^ 0x3b45028a)) - (CONCAT44(uVar30,uVar19) ^ 0xcd34dc53b36920d2)
  ;
  uVar20 = uVar12 ^ DAT_182671d04;
  *(uint *)(lVar1 + -0x76c) =
       *(uint *)(lVar1 - ((ulonglong)uVar30 ^ 0x7b571746)) ^ DAT_182671d48 ^ DAT_182671ecc;
  *(uint *)(lVar1 + -0x54) = uVar20 ^ *(uint *)(lVar1 + -0x58c);
  *(ulonglong *)(lVar1 + -0xa78) =
       (CONCAT44(uVar3,uVar3) ^ 0x239fd595df1e575e) >> (((byte)uVar3 ^ 0x1f) & 0x3f);
  *(uint *)(lVar1 + -0x1c8) =
       *(uint *)(lVar1 - (uVar31 ^ 0x3b4509fe)) ^ DAT_182671e3c ^ DAT_182671ecc;
  *(uint *)(lVar1 - (uVar31 ^ 0x3b450852)) = (uVar30 ^ 0xc7555c2a) + 0x88a5a92b;
  bVar7 = (byte)DAT_182671da4;
  uVar20 = DAT_182671d3c;
  pbVar16 = (byte *)((CONCAT44(uVar3,uVar19) ^ 0x411210083b450e92) * 0x20 +
                     (CONCAT44(uVar30,uVar3) ^ 0x7b571e9a4112101d) + *(longlong *)(lVar1 + -0x9a8));
  *(ulonglong *)(lVar1 + -0xc20) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671fac;
  uVar18 = DAT_182671e28;
  bVar8 = *pbVar16 ^ bVar7 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar1 - (uVar31 ^ 0x3b450f51)) = bVar8;
  *(uint *)(lVar1 - ((ulonglong)uVar30 ^ 0x7b57147e)) = (bVar7 ^ bVar8) ^ uVar20;
  uVar29 = (*(uint *)(lVar1 + -0xae4) ^ uVar20) << (((byte)DAT_182671c84 ^ 0x19) & 0x1f) ^
           DAT_182671d50;
  uVar27 = *(uint *)(lVar1 - ((ulonglong)uVar30 ^ 0x7b571f52)) ^ DAT_182671e3c;
  *(uint *)(lVar1 + -0x684) = uVar29;
  uVar27 = uVar27 + (uVar30 ^ 0xe7150c84);
  uVar29 = uVar29 ^ DAT_182671d50;
  *(uint *)(lVar1 + -0x784) = uVar27 ^ uVar18;
  uVar29 = uVar27 - uVar29 ^ DAT_182671f60;
  *(uint *)(lVar1 + -0x94c) = uVar29;
  uVar18 = (uVar12 ^ *(uint *)(lVar1 + -0x54)) * (uVar29 ^ DAT_182671f60) ^ DAT_182671f48;
  *(uint *)(lVar1 + -0x644) = uVar18;
  lVar2 = DAT_182671c40;
  uVar18 = uVar18 ^ DAT_182671f48;
  uVar27 = (*(uint *)(lVar1 + -0xae4) ^ uVar20) * (uVar30 ^ 0x7b571e8f) ^ DAT_182671e74;
  *(uint *)(DAT_182671c40 + -0x444) = uVar27;
  uVar20 = DAT_182671e7c;
  uVar27 = (uVar27 ^ DAT_182671e74) + uVar18 ^ DAT_182671f2c;
  *(uint *)(lVar2 + -0x670) = uVar27;
  uVar27 = uVar27 ^ DAT_182671f2c;
  uVar18 = uVar27 << (bVar15 & 0x1f);
  *(uint *)(lVar2 + -0x634) = uVar18 ^ uVar20;
  uVar29 = uVar29 ^ DAT_182671f60;
  uVar27 = uVar27 >> 0x13;
  uVar20 = uVar27 ^ DAT_182671e0c;
  bVar7 = (byte)DAT_182671e0c;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar14 ^ 0x411215a8)) ^ (ulonglong)DAT_182671e2c) ^ bVar7;
  uVar14 = (ulonglong)DAT_182671e78;
  *(uint *)(lVar2 + -0x94) = uVar20;
  *(uint *)(lVar2 + -0x61c) = uVar29 + uVar11;
  uVar20 = DAT_182671df8;
  uVar27 = uVar27 | uVar18;
  *(uint *)(lVar2 + -0x9dc) = uVar27 ^ DAT_182671df8;
  *(byte *)(lVar2 + -0x1c3) = *(byte *)(*(ulonglong *)(lVar2 + -0x170) ^ uVar14) ^ bVar7;
  uVar18 = (uVar12 ^ *(uint *)(lVar2 + -0x54)) + (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4);
  *(uint *)(lVar2 + -0x58c) = uVar18 ^ uVar17;
  uVar17 = *(uint *)(lVar2 - ((ulonglong)uVar28 ^ 0xfff5ea14)) ^ DAT_182671e40 ^ uVar17;
  *(uint *)(lVar2 + -0x76c) = uVar17;
  uVar12 = DAT_182671d58 ^ DAT_182671e40;
  *(uint *)(lVar2 + -0x6c0) = *(uint *)(lVar2 - (uVar31 ^ 0x3b45074e)) ^ DAT_182671d7c ^ uVar20;
  uVar20 = DAT_182671c78;
  uVar13 = (ulonglong)DAT_182671c78;
  *(uint *)(lVar2 + -0x1c8) = uVar12 ^ uVar17;
  *puVar32 = uVar18 * uVar27;
  *(uint *)(lVar2 + -0x684) = *(uint *)(lVar2 + -0x6c0) ^ DAT_182671eb8 ^ DAT_182671d7c;
  uVar14 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar2 - (uVar13 ^ 0x474447b2)) =
       *(longlong *)(lVar2 + -0x760) - (CONCAT44(uVar19,DAT_182671c70) ^ 0xa1865c504d564841);
  uVar12 = DAT_182671e20;
  uVar28 = DAT_182671e20 & 0xff;
  pbVar16 = (byte *)(*(longlong *)(lVar2 - (uVar14 ^ 0x81e28df0)) +
                    (CONCAT44(uVar4,uVar20) ^ 0xdb991d1247444c92) * 0x20);
  *(ulonglong *)(lVar2 + -0xbc0) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671ee0;
  uVar14 = (ulonglong)DAT_182671c4c;
  bVar7 = *pbVar16 ^ (byte)uVar12 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar2 + -0x1c3) = bVar7;
  uVar20 = uVar28 ^ bVar7 ^ DAT_182671dbc;
  bVar7 = (byte)DAT_182671c94;
  *(uint *)(lVar2 + -0xae4) = uVar20;
  uVar20 = (uVar20 ^ DAT_182671dbc) << ((bVar7 ^ 0x59) & 0x1f) ^ DAT_182671d10;
  *(uint *)(lVar2 + -0x644) =
       (*(uint *)(lVar2 - (uVar14 ^ 0xdff3ffea)) ^ DAT_182671eb8) + (DAT_182671c50 ^ 0x43b1eb70) ^
       uVar12;
  uVar21 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar2 - ((ulonglong)uVar30 ^ 0x7b571ade)) = uVar20;
  *(uint *)(lVar2 + -0x670) =
       (*(uint *)(lVar2 + -0x644) ^ uVar12) -
       (*(uint *)(lVar2 - (uVar24 ^ 0xdb991956)) ^ DAT_182671d10) ^ DAT_182671efc;
  uVar14 = CONCAT44(DAT_182671c94,uVar3);
  uVar13 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar2 + -0x94c) =
       (*(uint *)(lVar2 - (uVar21 ^ 0x1d12dde9)) ^ DAT_182671efc) *
       (*(uint *)(lVar2 + -0x1c8) ^ DAT_182671d58) ^ DAT_182671ef4;
  *(ulonglong *)(lVar2 - (uVar13 ^ 0x10084402)) = -0x20c7691138cb329 - (uVar14 ^ 0x35afcc128189fa4c)
  ;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar10 * 4) = uVar9;
  return;
}



############ FUN_ 180fdb900 size=4796 ############

void FUN_180fdb900(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  byte *pbVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  longlong *plVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_res18;
  byte local_b0;
  byte local_80;
  
  uVar9 = DAT_182671c94;
  uVar26 = DAT_182671c88;
  uVar8 = DAT_182671c84;
  uVar7 = DAT_182671c80;
  uVar6 = DAT_182671c70;
  uVar5 = DAT_182671c68;
  uVar4 = DAT_182671c54;
  lVar1 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671c94;
  uVar38 = (ulonglong)DAT_182671c68;
  uVar39 = DAT_182671c94 - DAT_182671c68;
  uVar20 = (ulonglong)DAT_182671c84;
  uVar40 = (ulonglong)DAT_182671c88;
  uVar31 = (ulonglong)DAT_182671c80;
  uVar18 = *(uint *)(&DAT_182613218 + DAT_182672034) ^ DAT_182671c94;
  uVar36 = (ulonglong)DAT_182671c54;
  uVar33 = DAT_182671c64 - DAT_182671c70;
  uVar22 = DAT_182671c88 - DAT_182671c54;
  uVar28 = DAT_182671c84 * DAT_182671c80;
  uVar15 = *(uint *)(&DAT_182613220 + DAT_182672034) ^ DAT_182671c68;
  uVar23 = (ulonglong)uVar39;
  bVar17 = (byte)DAT_182671c84;
  uVar25 = CONCAT44(DAT_182671f98,DAT_182671f98);
  uVar21 = (CONCAT44(DAT_182671db4,DAT_182671db4) ^ *(ulonglong *)(DAT_182671c40 + -0x2b0)) <<
           ((bVar17 ^ 0xf3) & 0x3f);
  DAT_182671c58 = uVar28;
  DAT_182671c6c = uVar33;
  DAT_182671c8c = uVar22;
  DAT_182671c90 = uVar39;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar21 ^ uVar25;
  uVar10 = DAT_182671ec4;
  *(byte *)(lVar1 + -0x71a) =
       *(byte *)((ulonglong)DAT_182671cf4 ^ *(ulonglong *)(lVar1 + -0x328)) ^ (byte)DAT_182671f14;
  lVar1 = DAT_182671c40;
  uVar27 = CONCAT44(uVar10,uVar10);
  uVar29 = (ulonglong)DAT_182671d60;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (CONCAT44(DAT_182671ca4,DAT_182671ca4) ^ *(ulonglong *)(DAT_182671c40 + -0x8f0) | uVar21) ^
       uVar27;
  *(ulonglong *)(lVar1 + -0x758) = *(longlong *)(lVar1 + -0x870) + 0x1cU ^ uVar29;
  bVar14 = (byte)DAT_182671ec8;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb20) =
       CONCAT44(uVar7,uVar33) ^ CONCAT44(uVar28,uVar26) ^ 0xd577d25ea678d6e4;
  uVar10 = DAT_182671e84;
  bVar13 = *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x4a08f04c)) ^ uVar29) ^ bVar14 ^
           (byte)DAT_182671f14;
  *(byte *)(lVar1 + -0x53a) = bVar13;
  uVar3 = DAT_182671c64;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar22 ^ 0xb5d2efe3)) = (bVar13 ^ bVar14) ^ uVar21;
  uVar10 = DAT_182671f94;
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar1 + -0xb08)) << 0x20;
  *(ulonglong *)(lVar1 + -0xa70) = uVar21 ^ CONCAT44(DAT_182671f04,DAT_182671f04);
  bVar14 = (byte)DAT_182671ea8;
  lVar1 = DAT_182671c40;
  uVar37 = CONCAT44(uVar10,uVar10);
  uVar29 = (ulonglong)DAT_182671de8;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar3 ^ 0xf4c9a561)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x4a08fabc)) ^ uVar27 | uVar21) ^ uVar37;
  uVar21 = (ulonglong)uVar6;
  *(ulonglong *)(lVar1 + -0x990) =
       (CONCAT44(uVar26,uVar6) ^ 0xffdbdbff96e838f1) + *(longlong *)(lVar1 + -0x870) ^ uVar29;
  *(byte *)(lVar1 + -0x651) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar22 ^ 0xb5d2ed7b)) ^ uVar29) ^
       (byte)DAT_182671f14 ^ bVar14;
  uVar10 = DAT_182671f6c;
  *(ulonglong *)(lVar1 + -0x8f0) =
       (uVar25 ^ *(ulonglong *)(lVar1 + -0xbd8)) + (CONCAT44(uVar26,uVar33) ^ 0xf0530340ce99dc0e);
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0xb20) = (*(byte *)(lVar1 + -0x651) ^ bVar14) ^ uVar25;
  local_b0 = (byte)uVar39;
  puVar35 = (ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0x691be6bd));
  uVar29 = CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar24 = CONCAT44(DAT_182671c64,uVar22);
  *(ulonglong *)(lVar1 + -0xb08) = (uVar27 ^ *puVar35) << ((local_b0 ^ 0x28) & 0x3f);
  *(ulonglong *)(lVar1 + -0xa70) =
       (*(ulonglong *)(lVar1 - (uVar31 ^ 0xfffbd0df)) ^ uVar25) << (((byte)uVar5 ^ 0xf1) & 0x3f) ^
       uVar29;
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x96e83334)) =
       CONCAT44(uVar9,uVar33) ^ uVar24 ^ 0x62af246bcbe98f83;
  uVar32 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar1 + -0x8f0) =
       (*(ulonglong *)(lVar1 + -0xa70) ^ uVar29 | *(ulonglong *)(lVar1 + -0x2b0) ^ uVar37) ^ uVar32;
  uVar25 = (ulonglong)DAT_182671e18;
  *(uint *)(lVar1 - (uVar23 ^ 0x6ecd9761)) =
       (*(uint *)(lVar1 - (uVar36 ^ 0x4a08f780)) ^ DAT_182671e4c) - *(int *)(lVar1 + -0x61c);
  uVar29 = CONCAT44(uVar8,uVar4);
  pbVar16 = (byte *)((uVar29 ^ 0xb5f708eb4a08f70a) + *(longlong *)(lVar1 + -0x870));
  *(ulonglong *)(lVar1 + -0x6f8) = (ulonglong)pbVar16 ^ uVar25;
  uVar10 = DAT_182671d10;
  bVar14 = *pbVar16 ^ (byte)DAT_182671f14;
  *(byte *)(lVar1 + -0x2c9) = bVar14 ^ (byte)DAT_182671ef0;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar26 ^ 0xffdbd657)) =
       (ulonglong)bVar14 ^ CONCAT44(uVar10,uVar10);
  uVar27 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar1 - (uVar23 ^ 0x6ecd9b05)) =
       (*puVar35 ^ CONCAT44(uVar10,uVar10)) << (((byte)uVar9 ^ 0xd6) & 0x3f) ^ uVar27;
  bVar14 = (byte)DAT_182671dbc;
  pbVar16 = (byte *)((CONCAT44(uVar4,uVar6) ^ 0x4a08f71496e838f3) + *(longlong *)(lVar1 + -0x870));
  uVar25 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar32 = (*(ulonglong *)(lVar1 + -0xb08) ^ uVar27) + (*(ulonglong *)(lVar1 + -0x8f0) ^ uVar32);
  *(ulonglong *)(lVar1 + -0x370) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671d5c;
  *(ulonglong *)(lVar1 + -0xb20) = uVar32 ^ uVar25;
  *(byte *)(lVar1 + -0x262) = *pbVar16 ^ (byte)DAT_182671f14 ^ bVar14;
  uVar25 = (ulonglong)(*(byte *)(lVar1 - ((ulonglong)uVar33 ^ 0x5de16c87)) ^ bVar14);
  *(ulonglong *)(lVar1 + -0xbd8) = uVar25 ^ CONCAT44(DAT_182671df4,DAT_182671df4);
  *(uint *)(lVar1 + -0x6c0) = (uVar39 ^ 0xf28f8213) + (uVar26 ^ 0xc182a1da);
  uVar12 = DAT_182671fa4;
  uVar26 = DAT_182671f14;
  uVar11 = DAT_182671eec;
  lVar1 = DAT_182671c40;
  uVar25 = uVar25 << ((bVar17 ^ 0xd3) & 0x3f);
  uVar43 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar25 ^ uVar43;
  *(ulonglong *)(lVar1 + -0xa70) = uVar25 + uVar32 ^ CONCAT44(uVar12,uVar12);
  puVar35 = (ulonglong *)
            (*(longlong *)(lVar1 - (uVar31 ^ 0xfffbdfe7)) +
            (CONCAT44(uVar4,uVar28) ^ 0x4a08f714691beb16) * 8);
  uVar32 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar1 + -0x588) = (ulonglong)puVar35 ^ uVar27;
  bVar14 = (byte)DAT_182671e74;
  *puVar35 = *(ulonglong *)(lVar1 - (uVar40 ^ 0xffdbd18f)) ^ uVar32 ^ CONCAT44(uVar12,uVar12);
  uVar25 = (ulonglong)DAT_182671d30;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x460ad129)) =
       0x89fe53f6db4bcaea >> ((*(byte *)(lVar1 + -0xa70) ^ (byte)uVar12) & 0x3f);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x96e83fe4)) =
       *(longlong *)(lVar1 - (uVar36 ^ 0x4a08ff64)) + (uVar24 ^ 0xf4c9a7d1b5d2e4cb) ^ uVar25;
  bVar13 = (byte)DAT_182671f20;
  *(byte *)(lVar1 + -0xc01) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x708) ^ uVar25) ^ (byte)uVar26 ^ bVar14;
  uVar12 = DAT_182671f08;
  *(ulonglong *)(lVar1 + -0xb08) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0x691be9a5)) ^ uVar43) >>
       ((*(byte *)(lVar1 - (uVar38 ^ 0x460ad471)) ^ (byte)uVar10) & 0x3f);
  uVar3 = DAT_182671c74;
  pbVar16 = (byte *)(*(longlong *)(lVar1 + -0x870) + 0x21);
  uVar25 = (ulonglong)DAT_182671c74;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar34 = DAT_182671c74 << 0x10 | DAT_182671c74 >> 0x10;
  *(ulonglong *)(lVar1 + -0x888) = (*(byte *)(lVar1 + -0xc01) ^ bVar14) ^ uVar37;
  *(ulonglong *)(lVar1 + -0x328) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671c9c;
  DAT_182671c60 = uVar34;
  *(byte *)(lVar1 - (uVar25 ^ 0xa52aeecd)) = *pbVar16 ^ (byte)uVar26 ^ bVar13;
  uVar24 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar34 ^ 0xe60caef2)) =
       (*(byte *)(lVar1 + -0x8c1) ^ bVar13) ^ uVar24;
  plVar30 = (longlong *)(lVar1 - ((ulonglong)uVar3 ^ 0xa52aed2c));
  uVar27 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *plVar30 = (*(ulonglong *)(lVar1 + -0xbd8) ^ uVar24) <<
             ((*(byte *)(lVar1 + -0x2b0) ^ (byte)uVar11) & 0x3f);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar34 ^ 0xe60ca192)) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xa52aedd4)) ^ uVar24) << (((byte)uVar3 ^ 4) & 0x3f) ^
       uVar27;
  uVar25 = (ulonglong)DAT_182671e58;
  *(ulonglong *)(lVar1 + -0x8f0) =
       *(ulonglong *)(lVar1 + -0x4b8) ^ uVar27 ^ uVar37 ^ *(ulonglong *)(lVar1 + -0x888);
  uVar9 = DAT_182671f14;
  lVar2 = DAT_182671c40;
  uVar24 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  uVar19 = *(uint *)(lVar1 + -0x784) ^ DAT_182671e78;
  uVar27 = *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xa52ae2b4)) ^ uVar27 |
           uVar37 ^ *(ulonglong *)(lVar1 + -0x888);
  *(ulonglong *)(lVar1 + -0xda8) = uVar27 ^ uVar24;
  uVar26 = DAT_182671d14;
  *(uint *)(lVar2 + -0x5d4) = uVar19 | *(uint *)(lVar1 + -0x27c) ^ DAT_182671d14;
  *(ulonglong *)(lVar2 + -0x758) =
       (CONCAT44(uVar34,uVar34) ^ 0xe60ca52ae60ca508) + *(longlong *)(lVar2 + -0x870) ^ uVar25;
  bVar14 = (byte)DAT_182671f9c;
  puVar41 = (ulonglong *)(lVar2 - (uVar42 ^ 0xb4d86b56));
  *(ulonglong *)(lVar2 + -0xb08) = *puVar41 ^ uVar43 | uVar27;
  *(byte *)(lVar2 + -0x899) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xa52ae154)) ^ uVar25) ^ (byte)uVar9 ^
       bVar14;
  uVar27 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar33 ^ 0x5de165c5)) =
       (*(byte *)(lVar2 - (uVar42 ^ 0xb4d8617f)) ^ bVar14) ^ uVar27;
  uVar10 = DAT_182671e6c;
  uVar25 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0xe60cae0a)) ^ uVar27) <<
       (((byte)DAT_182671c64 ^ 0xc1) & 0x3f) ^ uVar25;
  lVar1 = DAT_182671c40;
  uVar38 = CONCAT44(uVar10,uVar10);
  uVar27 = (ulonglong)DAT_182671ca0;
  *(ulonglong *)(DAT_182671c40 + -0x8f0) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar3 ^ 0xa52aeba4)) ^ uVar24 |
       *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0x6ecd9bd5)) ^ uVar25) ^ uVar38;
  *(ulonglong *)(lVar1 - (uVar40 ^ 0xffdbd26f)) = *(longlong *)(lVar1 + -0x870) + 0x23U ^ uVar27;
  bVar14 = (byte)DAT_182671e04;
  *(byte *)(lVar1 + -0x1e1) =
       *(byte *)(*(ulonglong *)(lVar1 - (uVar42 ^ 0xb4d86076)) ^ uVar27) ^ (byte)uVar9 ^
       (byte)DAT_182671e04;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar22 ^ 0xb5d2ec63)) = 0xefa5000000000000;
  uVar19 = DAT_182671f48;
  uVar25 = (ulonglong)(*(byte *)(lVar1 + -0x1e1) ^ bVar14);
  uVar24 = (ulonglong)DAT_182671f48;
  *(ulonglong *)(lVar1 + -0x4b8) = uVar25 ^ CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar23 = (ulonglong)DAT_182671e00;
  local_80 = (byte)uVar33;
  *(ulonglong *)(lVar1 + -0x2b0) =
       -0xcb9605ad1a0c5b1 - (*(ulonglong *)(lVar1 - (uVar20 ^ 0xb5f7001b)) ^ uVar38);
  uVar9 = DAT_182671de8;
  uVar25 = uVar25 << ((local_80 ^ 0xfd) & 0x3f);
  *(ulonglong *)(lVar1 + -0xb08) = uVar25 ^ CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0xb20) = (uVar38 ^ *(ulonglong *)(lVar1 + -0x8f0) | uVar25) ^ uVar37;
  *(ulonglong *)(lVar1 + -0x6f8) =
       (CONCAT44(uVar5,uVar34) ^ 0x460ad9d9e60ca50e) + *(longlong *)(lVar1 + -0x870) ^ uVar23;
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x96e83544)) =
       CONCAT44(uVar39,DAT_182671c64) ^ CONCAT44(uVar8,uVar3) ^ 0x2d305f41807e8f95;
  uVar10 = DAT_182671d00;
  bVar14 = *(byte *)(uVar23 ^ *(ulonglong *)(lVar1 + -0x6f8)) ^ (byte)DAT_182671f14 ^ (byte)uVar19;
  *(byte *)(lVar1 + -0x359) = bVar14;
  uVar11 = DAT_182671e1c;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0xbd8) = (ulonglong)bVar14 ^ uVar24 & 0xff ^ uVar21;
  uVar3 = DAT_182671ee0;
  lVar1 = DAT_182671c40;
  uVar23 = CONCAT44(uVar11,uVar11);
  local_res18 = (byte)uVar4;
  uVar24 = (ulonglong)DAT_182671ee0;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (*(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0xb4d8623e)) ^ uVar21) <<
       ((local_res18 ^ 0x34) & 0x3f) ^ uVar23;
  uVar25 = CONCAT44(uVar3,uVar3);
  uVar27 = CONCAT44(uVar26,uVar26);
  puVar35 = (ulonglong *)(lVar1 - (uVar20 ^ 0xb5f70063));
  *puVar41 = (*puVar35 ^ uVar23 | *(ulonglong *)(lVar1 + -0xb20) ^ uVar37) ^ uVar25;
  uVar8 = DAT_182671f14;
  uVar20 = (ulonglong)DAT_182671f14;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0xfffbdf47)) =
       (*(ulonglong *)(lVar1 + -0x2b0) ^ uVar25) >> ((local_80 ^ 0xeb) & 0x3f);
  pbVar16 = (byte *)((uVar29 ^ 0xb5f708eb4a08f731) + *(longlong *)(lVar1 + -0x870));
  *(ulonglong *)(lVar1 + -0x370) = (ulonglong)pbVar16 ^ uVar20;
  *(byte *)(lVar1 + -0x529) = *pbVar16 ^ (byte)uVar8 ^ (byte)uVar3;
  *(uint *)(lVar1 + -0x4ac) = DAT_182671c64 ^ 0xa2dfbe64 | *(uint *)(lVar1 + -0x76c);
  uVar29 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *(ulonglong *)(lVar1 + -0x8f0) =
       (ulonglong)*(byte *)(lVar1 - (uVar42 ^ 0xb4d86ccf)) ^ uVar24 & 0xff ^ uVar29;
  *(ulonglong *)(lVar1 + -0xb08) =
       CONCAT44(uVar28,uVar34) ^ CONCAT44(uVar22,uVar28) ^ 0x1c2f9a15c85b535;
  bVar14 = (byte)DAT_182671cdc;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar1 + -0xda8) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar34 ^ 0xe60cadda)) ^ uVar29) <<
       ((local_80 ^ 0xcd) & 0x3f) ^ uVar27;
  *plVar30 = (*puVar35 ^ uVar23) << 6;
  lVar1 = *(longlong *)(lVar2 + -0x870);
  uVar23 = *(ulonglong *)(lVar2 + -0x2b0) ^ uVar25 | uVar27 ^ *(ulonglong *)(lVar2 + -0xda8);
  *(ulonglong *)(lVar2 + -0x4b8) = uVar23 ^ CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar3 = DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0xb08) =
       CONCAT44(uVar39,uVar6) ^ 0x104a5e44985846cb | *(ulonglong *)(lVar2 + -0xbd8) ^ uVar21;
  uVar26 = uVar3 << 0x10 | uVar3 >> 0x10;
  pbVar16 = (byte *)((CONCAT44(uVar26,uVar3) ^ 0x1b1a9d5c9d5c1b3c) + lVar1);
  DAT_182671c50 = uVar26;
  *(ulonglong *)(lVar2 + -0x708) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671d08;
  uVar5 = DAT_182671dd4;
  uVar10 = DAT_182671dcc;
  bVar13 = *pbVar16 ^ (byte)uVar8;
  uVar20 = (ulonglong)DAT_182671dd4;
  *(byte *)(lVar2 + -0xd32) = bVar13 ^ bVar14;
  *(ulonglong *)(lVar2 + -0x8f0) = (ulonglong)bVar13 ^ CONCAT44(uVar5,uVar5);
  lVar2 = DAT_182671c40;
  uVar25 = (ulonglong)bVar13 << (((byte)uVar3 ^ 0x2a) & 0x3f);
  uVar21 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar25 ^ CONCAT44(uVar10,uVar10);
  uVar6 = DAT_182671f14;
  uVar29 = (ulonglong)DAT_182671eb0;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar23 + uVar25 ^ uVar21;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       *(ulonglong *)(DAT_182671c40 + -0xb20) ^ 0x139fb22aac73d756;
  *(ulonglong *)(lVar2 + -0x328) = lVar1 + 0x27U ^ uVar29;
  *(uint *)(lVar2 - ((ulonglong)uVar26 ^ 0x1b1a912c)) =
       (uVar26 ^ 0x2bac3276) + (uVar26 ^ 0x87588f42);
  uVar10 = DAT_182671f80;
  uVar23 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  bVar13 = (byte)uVar6;
  bVar14 = *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0x9d5c1832)) ^ uVar29) ^ bVar13;
  *(byte *)(lVar2 + -0x61d) = bVar14 ^ (byte)DAT_182671cb0;
  *(ulonglong *)(lVar2 + -0xbd8) = bVar14 ^ uVar23;
  bVar17 = (byte)(uVar3 >> 0x10);
  uVar23 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0x9d5c10c2)) ^ uVar23) <<
           ((bVar17 ^ 100) & 0x3f);
  uVar29 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar2 + -0x8f0) = uVar23 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0x9d5c1fa2)) =
       uVar23 + (uVar21 ^ *(ulonglong *)(lVar2 + -0x2b0)) ^ uVar29;
  uVar21 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(lVar2 + -0xb98) = *(longlong *)(lVar2 + -0x418) + 0x20U ^ uVar21;
  uVar23 = (ulonglong)DAT_182671e7c;
  *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x1b1a96c4)) ^ uVar21) =
       uVar29 ^ *(ulonglong *)(lVar2 + -0x4b8) ^ uVar32;
  pbVar16 = (byte *)((CONCAT44(uVar7,uVar4) ^ 0xfffbdbff4a08f73c) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0x758) = (ulonglong)pbVar16 ^ uVar23;
  *(byte *)(lVar2 - ((ulonglong)uVar3 ^ 0x9d5c137b)) = *pbVar16 ^ bVar13 ^ (byte)uVar5;
  bVar14 = (byte)DAT_182671d38;
  uVar29 = (ulonglong)*(byte *)(lVar2 + -0x861) ^ uVar20 & 0xff;
  pbVar16 = (byte *)(*(longlong *)(lVar2 + -0x870) + 0x29);
  *(ulonglong *)(lVar2 + -0x990) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671f64;
  *(ulonglong *)(lVar2 + -0x888) = uVar29 ^ CONCAT44(uVar19,uVar19);
  *(byte *)(lVar2 + -0x9e9) = *pbVar16 ^ bVar13 ^ bVar14;
  uVar23 = (ulonglong)(*(byte *)(lVar2 - (uVar40 ^ 0xffdbd216)) ^ bVar14);
  uVar21 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar2 + -0xb20) = uVar23 ^ CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar10 = DAT_182671f2c;
  uVar23 = uVar23 << ((bVar17 ^ 0x54) & 0x3f);
  *(ulonglong *)(lVar2 + -0xda8) = uVar23 ^ uVar21;
  *(ulonglong *)(lVar2 + -0xbd8) = (uVar23 | uVar29) ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x4a08f1ec)) =
       *(longlong *)(lVar2 - ((ulonglong)DAT_182671c64 ^ 0xf4c9afa1)) +
       (CONCAT44(uVar22,uVar28) ^ 0xb5d2e4eb691beb3f) ^ (ulonglong)DAT_182671e94;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar18;
  return;
}



############ FUN_ 180fa0900 size=4305 ############

void FUN_180fa0900(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  byte bVar11;
  uint uVar12;
  ulonglong uVar13;
  uint uVar14;
  byte *pbVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint *puVar32;
  
  uVar19 = DAT_182671c84;
  uVar30 = DAT_182671c7c;
  lVar2 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c84;
  uVar23 = (ulonglong)DAT_182671c7c;
  uVar28 = DAT_182671c7c - DAT_182671c84;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182672274);
  uVar12 = *(uint *)(&DAT_182613218 + DAT_182672274) ^ DAT_182671c84;
  uVar17 = (ulonglong)uVar28;
  uVar24 = (ulonglong)DAT_182671c84;
  uVar20 = (*(uint *)(DAT_182671c40 + -0x4ac) ^ DAT_182671f70) >>
           (((byte)DAT_182671c7c ^ 0x9c) & 0x1f) ^ DAT_182671dc8;
  uVar10 = (ulonglong)DAT_182671c7c;
  DAT_182671c4c = uVar28;
  *(uint *)(DAT_182671c40 + -0xae4) = uVar20;
  uVar13 = (ulonglong)DAT_182671ed0;
  *(uint *)(lVar2 + -0x54) =
       (*(uint *)(lVar2 - (uVar10 ^ 0xff3c5ac3)) ^ DAT_182671d48 | uVar20 ^ DAT_182671dc8) ^
       DAT_182671ecc;
  bVar25 = (byte)uVar28;
  *(uint *)(lVar2 - ((ulonglong)uVar28 ^ 0x1000634)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0xfe3c565b)) ^ DAT_182671dd4) +
       (*(uint *)(lVar2 + -0x684) ^ DAT_182671e7c) ^ DAT_182671ce4;
  uVar20 = DAT_182671ea0;
  uVar8 = *(uint *)(lVar2 + -0x54) ^ DAT_182671f14 ^ DAT_182671ecc;
  *(ulonglong *)(lVar2 + -0x7c0) =
       (CONCAT44(uVar19,uVar30) ^ 0x7de7a8a0cedc3896) << ((bVar25 ^ 0x19) & 0x3f);
  uVar14 = *(uint *)(lVar2 + -0x634) ^ DAT_182671cd8 ^ DAT_182671ce4;
  *(uint *)(lVar2 + -0x61c) = uVar8;
  *(uint *)(lVar2 + -0x6c0) = uVar14;
  puVar32 = (uint *)(lVar2 - ((ulonglong)uVar19 ^ 0xfe3c54e3));
  *(uint *)(lVar2 + -0x644) = uVar14 ^ DAT_182671dcc ^ DAT_182671cd8;
  *puVar32 = 0x13758;
  *(uint *)(lVar2 + -0x1c8) = *(uint *)(lVar2 + -0x61c) ^ uVar20 ^ DAT_182671f14;
  uVar16 = DAT_182671f3c;
  bVar11 = (byte)DAT_182671cfc;
  uVar8 = DAT_182671c6c;
  uVar31 = (ulonglong)DAT_182671c6c;
  uVar18 = (ulonglong)DAT_182671f3c;
  pbVar15 = (byte *)(*(longlong *)(lVar2 - (uVar24 ^ 0xfe3c5a27)) +
                     (CONCAT44(uVar19,uVar19) ^ 0xfe3c538ffe3c5381) +
                    (CONCAT44(uVar30,uVar28) ^ 0xff3c538f01000000) * 0x20);
  *(ulonglong *)(lVar2 + -0xa60) =
       (CONCAT44(uVar30,uVar30) ^ 0x2c7e4eeaaf628d7) + *(longlong *)(lVar2 + -0xd88);
  *(ulonglong *)(lVar2 + -0x5a0) = (ulonglong)pbVar15 ^ uVar13;
  uVar14 = DAT_182671c50;
  uVar10 = (ulonglong)DAT_182671c50;
  *(byte *)(lVar2 - (uVar31 ^ 0xfffffe3c)) = *pbVar15 ^ bVar11 ^ (byte)DAT_182671e0c;
  uVar26 = (bVar11 ^ *(byte *)(lVar2 + -0x1c3)) ^ DAT_182671cec;
  uVar9 = DAT_182671c58 ^ 0x1b057abe;
  *(uint *)(lVar2 + -0x9dc) = uVar26;
  uVar9 = (uVar20 ^ *(uint *)(lVar2 + -0x1c8)) + uVar9 ^ DAT_182671cbc;
  uVar26 = uVar26 ^ DAT_182671cec;
  *(uint *)(lVar2 + -0x670) = uVar9;
  uVar9 = uVar9 ^ DAT_182671cbc;
  uVar20 = uVar26 << ((bVar25 ^ 0x11) & 0x1f) ^ DAT_182671eac;
  *(uint *)(lVar2 + -0x94) = uVar20;
  *(uint *)(lVar2 + -0x4ac) = uVar9 - (uVar20 ^ DAT_182671eac) ^ uVar16;
  uVar21 = (*(uint *)(lVar2 - (uVar10 ^ 0x78b8911b)) ^ DAT_182671dcc) *
           (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0xfe3c5723)) ^ uVar16) ^ DAT_182671dec;
  *(uint *)(lVar2 + -0x94c) = uVar21;
  *(longlong *)(lVar2 + -0x680) = *(longlong *)(lVar2 + -0x3d8) + -0x4b94b21ff127d736;
  uVar20 = DAT_182671db0;
  uVar4 = DAT_182671c68;
  uVar9 = DAT_182671c60;
  uVar21 = uVar21 ^ DAT_182671dec;
  uVar26 = (DAT_182671c8c ^ 0x100000e) * uVar26 ^ DAT_182671f80;
  *(uint *)(lVar2 + -0xae4) = uVar26;
  uVar21 = uVar21 + (uVar26 ^ DAT_182671f80);
  *(uint *)(lVar2 + -0x684) = uVar21 ^ uVar20;
  *(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x1000224)) =
       uVar21 << ((bVar25 ^ 0xd) & 0x1f) ^ DAT_182671f60;
  uVar10 = (ulonglong)DAT_182671ebc;
  uVar20 = (*(uint *)(lVar2 + -0x684) ^ uVar20) >> 0x13 ^ DAT_182671f08;
  *(uint *)(lVar2 + -0x54) = uVar20;
  uVar20 = uVar20 ^ DAT_182671f08;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x170) ^ uVar10) ^ (byte)DAT_182671e0c;
  uVar20 = (uVar20 | *(uint *)(lVar2 + -0x634) ^ DAT_182671f60) ^ DAT_182671d40;
  uVar10 = CONCAT44(uVar9,DAT_182671c5c);
  *(uint *)(lVar2 + -0x6c0) = uVar20;
  uVar21 = DAT_182671d94;
  uVar26 = uVar20 ^ DAT_182671e38 ^ DAT_182671d40;
  uVar20 = DAT_182671dcc ^ *(uint *)(lVar2 + -0x644);
  *(ulonglong *)(lVar2 + -0x8f0) =
       CONCAT44(uVar19,uVar4) ^ 0x547bb196e47f2e2 | uVar10 ^ 0x9312446269e60971;
  *(uint *)(lVar2 + -0x76c) = (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) + uVar20 ^ DAT_182671e48;
  *(uint *)(lVar2 + -0x61c) =
       *(uint *)(lVar2 - ((ulonglong)DAT_182671c80 ^ 0x100037c)) ^ DAT_182671d84 ^ DAT_182671e48;
  uVar10 = (ulonglong)DAT_182671c78;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0x9e72b023)) = uVar26;
  uVar20 = DAT_182671c64;
  *(uint *)(lVar2 - (uVar10 ^ 0x87476ed0)) = *(uint *)(lVar2 + -0x61c) ^ uVar21 ^ DAT_182671d84;
  *(uint *)(lVar2 + -0x94) = DAT_182671e4c ^ DAT_182671e38 ^ *(uint *)(lVar2 + -0x1c8);
  uVar5 = DAT_182671c88;
  uVar10 = (ulonglong)DAT_182671dbc;
  *(ulonglong *)(lVar2 + -0x4b8) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0xff3c5b7f)) ^ 0xead3edb08f214389;
  uVar26 = DAT_182671c94;
  uVar13 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 + -0xc20) =
       (CONCAT44(uVar5,uVar8) ^ 0x8433200ffffffff) * 0x20 + *(longlong *)(lVar2 + -0x9a8) + 0x19 ^
       uVar10;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0x9f72b028)) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar13 ^ 0xfffff3df)) ^ uVar10) ^ (byte)uVar16 ^
       (byte)DAT_182671e0c;
  uVar6 = DAT_182671c90;
  lVar2 = DAT_182671c40;
  uVar16 = uVar16 & 0xff ^ (uint)*(byte *)(DAT_182671c40 + -0x1c3) ^ DAT_182671e6c;
  uVar29 = (*(uint *)(DAT_182671c40 + -0x94) ^ DAT_182671e4c) + (uVar14 ^ 0xe4fa8541) ^
           DAT_182671dc4;
  *(uint *)(DAT_182671c40 + -0x4ac) = uVar16;
  uVar16 = uVar16 ^ DAT_182671e6c;
  *(uint *)(lVar2 + -0x9dc) = uVar29;
  uVar22 = uVar16 << (((byte)uVar4 ^ 0x41) & 0x1f) ^ DAT_182671e74;
  *(uint *)(lVar2 + -0x94c) = uVar22;
  uVar8 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar29 = uVar29 ^ DAT_182671dc4;
  uVar22 = uVar22 ^ DAT_182671e74;
  uVar20 = *(uint *)(DAT_182671c40 + -0x670);
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0xff3c5057)) |
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x8b087161));
  uVar22 = uVar29 - uVar22 ^ DAT_182671f38;
  *(uint *)(lVar3 + -0xae4) = uVar22;
  uVar29 = (uVar20 ^ uVar21) * (uVar22 ^ DAT_182671f38) ^ DAT_182671cf4;
  *(uint *)(lVar3 + -0x684) = uVar29;
  uVar29 = uVar29 ^ DAT_182671cf4;
  *(ulonglong *)(lVar3 + -0x920) = *(ulonglong *)(lVar3 + -0x760) | 0x50d8d4e6b770c8d8;
  uVar20 = DAT_182671c54;
  uVar22 = uVar16 * 0x19 ^ DAT_182671db4;
  *(uint *)(lVar3 + -0x634) = uVar22;
  uVar16 = DAT_182671e78;
  *(uint *)(lVar3 - ((ulonglong)uVar8 ^ 0x494b177f)) =
       (uVar22 ^ DAT_182671db4) + uVar29 ^ DAT_182671e78;
  *(uint *)(lVar3 - ((ulonglong)uVar8 ^ 0x494b116f)) =
       (*(uint *)(lVar3 + -0x54) ^ uVar16) << 0xd ^ DAT_182671d70;
  *(ulonglong *)(lVar3 + -0xa70) =
       *(ulonglong *)(lVar3 - (uVar23 ^ 0xff3c5aaf)) | CONCAT44(uVar6,uVar26) ^ 0x12bb6b09c9a4027c;
  *puVar32 = (*(uint *)(lVar3 - ((ulonglong)uVar4 ^ 0x81808404)) ^ uVar16) >> 0x13 ^ DAT_182671f90;
  uVar8 = *(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar3 + -0x6c0) =
       (DAT_182671d70 ^ *(uint *)(lVar3 + -0x644) | *(uint *)(lVar3 + -0x76c) ^ DAT_182671f90) ^
       DAT_182671e28;
  *(uint *)(lVar3 + -0x61c) = (*(uint *)(lVar3 + -0x670) ^ uVar21) + uVar8 ^ DAT_182671d58;
  uVar7 = DAT_182671fb4;
  uVar22 = DAT_182671e04;
  uVar16 = DAT_182671dd8;
  uVar21 = DAT_182671c8c;
  uVar26 = DAT_182671c74;
  uVar31 = (ulonglong)DAT_182671c8c;
  uVar10 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x87476378)) =
       *(ulonglong *)(lVar3 + -0x2b0) ^ 0xea06f69bf36bf0e1;
  *(uint *)(lVar3 - ((ulonglong)uVar20 ^ 0x87476968)) =
       *(uint *)(lVar3 + -0x61c) ^ DAT_182671de4 ^ DAT_182671d58;
  *(ulonglong *)(lVar3 + -0x960) =
       *(ulonglong *)(uVar10 ^ *(ulonglong *)(lVar3 + -0x588)) ^
       CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar8 = DAT_182671c5c;
  *(ulonglong *)(lVar3 + -0x588) = CONCAT44(DAT_182671c5c,uVar28) ^ 0x166ceaab952ca69e;
  *(uint *)(lVar3 + -0x94) = *(uint *)(lVar3 + -0x6c0) ^ DAT_182671d2c ^ DAT_182671e28;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x874762a8)) =
       (CONCAT44(uVar26,DAT_182671c78) ^ 0x12b33fdc6425a66e) -
       (CONCAT44(uVar21,uVar30) ^ 0x3b3e558540127e78);
  uVar10 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0x8b08788d)) =
       uVar7 ^ DAT_182671de4 ^ *(uint *)(lVar3 + -0x1c8);
  uVar20 = DAT_182671c70;
  *(uint *)(lVar3 + -0x94c) = *(uint *)(lVar3 - (uVar10 ^ 0x1000484)) ^ uVar22 ^ DAT_182671d2c;
  uVar29 = DAT_182671f9c;
  bVar11 = (byte)DAT_182671f00;
  uVar6 = DAT_182671c94;
  uVar4 = DAT_182671c64;
  *(ulonglong *)(lVar3 + -0xda8) =
       CONCAT44(uVar20,uVar21) ^ 0xf41af3bd53ad43ea |
       CONCAT44(uVar8,DAT_182671c60) ^ 0x5d529b50e7de6607;
  uVar20 = DAT_182671c58;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x1000bc0)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar4 ^ 0x9f72b843)) +
       ~CONCAT44(DAT_182671c6c,uVar6) * 0x20 + (CONCAT44(uVar19,uVar4) ^ 0xfe3c538f9f72b1ef) ^
       uVar18;
  lVar2 = DAT_182671c40;
  uVar10 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 + -0x110) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0x9e72bbe3)) ^ 0x340216c466017030;
  *(byte *)(lVar3 - (uVar10 ^ 0x494b16e8)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xbc0) ^ uVar18) ^ bVar11 ^ (byte)DAT_182671e0c;
  uVar10 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x87476e88)) =
       *(ulonglong *)(lVar2 + -0xda8) | *(ulonglong *)(lVar2 + -0x680);
  uVar19 = (uint)(bVar11 ^ *(byte *)(lVar2 + -0x1c3));
  uVar8 = DAT_182671c5c ^ 0x9d42121e;
  *(uint *)(lVar2 + -0xae4) = uVar19 ^ uVar29;
  uVar8 = (*(uint *)(lVar2 + -0x94c) ^ uVar22) + uVar8 ^ DAT_182671d14;
  *(uint *)(lVar2 + -0x4ac) = uVar8;
  uVar26 = DAT_182671e88;
  uVar4 = DAT_182671c94;
  uVar8 = uVar8 ^ DAT_182671d14;
  uVar13 = CONCAT44(uVar30,DAT_182671c88);
  *(uint *)(lVar2 + -0x684) =
       (*(uint *)(lVar2 - (uVar10 ^ 0x87476244)) ^ uVar29) << (((byte)uVar20 ^ 0xb1) & 0x1f) ^
       DAT_182671ca4;
  *(ulonglong *)(lVar2 + -0x5e8) =
       (uVar13 ^ 0xcb2103ab1099f7b4) - (CONCAT44(uVar20,uVar14) ^ 0x9c45db85f9f9225c);
  uVar10 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar2 + -0x634) =
       uVar8 - (*(uint *)(lVar2 - (uVar17 ^ 0x1000684)) ^ DAT_182671ca4) ^ DAT_182671f18;
  uVar8 = DAT_182671c60 ^ 0x1000414;
  uVar30 = (*(uint *)(lVar2 - (uVar10 ^ 0x1000224)) ^ DAT_182671f18) *
           (*(uint *)(lVar2 + -0x9dc) ^ uVar7) ^ DAT_182671fb0;
  bVar11 = (byte)DAT_182671c90;
  *(uint *)(lVar2 + -0x54) = uVar30;
  uVar30 = uVar30 ^ DAT_182671fb0;
  *(uint *)(lVar2 + -0x644) = uVar19 * uVar8 ^ DAT_182671da8;
  uVar8 = DAT_182671c80;
  uVar13 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(uVar4,uVar28) ^ 0xecdcaea9146f2c5d) << ((bVar11 ^ 0x54) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar30 = (*(uint *)(lVar2 - (uVar13 ^ 0x1000254)) ^ DAT_182671da8) + uVar30;
  puVar32 = (uint *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0x1000d5c));
  *(uint *)(DAT_182671c40 + -0x76c) = uVar30 ^ uVar26;
  uVar14 = DAT_182671c90;
  lVar2 = DAT_182671c40;
  uVar10 = (ulonglong)DAT_182671c90;
  bVar11 = (byte)DAT_182671c84;
  *(uint *)(lVar3 + -0x670) = (*puVar32 ^ uVar22) + (DAT_182671c94 ^ 0x63bdede1);
  *(uint *)(lVar3 + -0x61c) = uVar30 << ((bVar11 ^ 0x82) & 0x1f) ^ DAT_182671d34;
  uVar24 = (ulonglong)DAT_182671c74;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar10 ^ 0x8b087a91)) ^ uVar18) ^ (byte)DAT_182671e0c;
  *(uint *)(lVar3 + -0x6c0) =
       (*(uint *)(lVar3 - (uVar17 ^ 0x100076c)) ^ uVar26) >> (((byte)DAT_182671c68 ^ 0x43) & 0x1f) ^
       DAT_182671d10;
  *(uint *)(lVar3 - (uVar27 ^ 0xfe3c5247)) =
       (*(uint *)(lVar3 - (uVar13 ^ 0x100020c)) ^ DAT_182671d34 |
       *(uint *)(lVar3 - (uVar24 ^ 0x9e72b72b)) ^ DAT_182671d10) ^ DAT_182671f70;
  uVar10 = (ulonglong)DAT_182671c78;
  uVar8 = (*(uint *)(lVar3 + -0x9dc) ^ uVar7) + (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) ^
          DAT_182671d94;
  *(uint *)(lVar3 + -0x94) = uVar8;
  *(uint *)(lVar3 + -0x4ac) = uVar8 ^ DAT_182671de8 ^ DAT_182671d94;
  *(uint *)(lVar3 - (uVar24 ^ 0x9e72b76f)) =
       DAT_182671e10 ^ DAT_182671f70 ^ *(uint *)(lVar3 + -0x1c8);
  uVar30 = DAT_182671e5c;
  *(uint *)(lVar2 - (uVar10 ^ 0x87476e94)) =
       *(uint *)(lVar3 + -0x4ac) ^ DAT_182671e5c ^ DAT_182671de8;
  uVar19 = DAT_182671f4c;
  uVar8 = DAT_182671c6c;
  uVar10 = (ulonglong)DAT_182671cec;
  uVar13 = CONCAT44(uVar20,DAT_182671c6c);
  *(uint *)(lVar2 + -0xae4) = *(uint *)(lVar2 + -0x684) ^ DAT_182671f4c ^ DAT_182671e10;
  pbVar15 = (byte *)((uVar13 ^ 0x874768a0ffffffff) * 0x20 +
                    *(longlong *)(lVar2 - (uVar31 ^ 0x10009a8)) + 0xf);
  *(ulonglong *)(lVar2 + -0x5a0) = (ulonglong)pbVar15 ^ uVar10;
  uVar10 = (ulonglong)DAT_182671c5c;
  *(byte *)(lVar2 - (uVar27 ^ 0xfe3c524c)) = *pbVar15 ^ (byte)uVar16 ^ (byte)DAT_182671e0c;
  uVar20 = DAT_182671d70;
  *(uint *)(lVar2 + -0x644) = uVar16 & 0xff ^ (uint)*(byte *)(lVar2 + -0x1c3) ^ DAT_182671d70;
  uVar26 = DAT_182671dcc;
  uVar5 = DAT_182671c88;
  *(uint *)(lVar2 + -0x54) = (*(uint *)(lVar2 + -0xae4) ^ uVar19) + (uVar8 ^ 0x63bdede1) ^ uVar19;
  uVar8 = (*(uint *)(lVar2 - (uVar10 ^ 0x1000644)) ^ uVar20) << (((byte)uVar5 ^ 0x11) & 0x1f);
  uVar10 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar2 + -0x94c) = uVar8 ^ uVar26;
  *(uint *)(lVar2 + -0x670) =
       (*(uint *)(lVar2 - (uVar10 ^ 0x9f72b1bf)) ^ uVar19) - uVar8 ^ DAT_182671fa0;
  *(uint *)(lVar2 + -0x76c) =
       (*(uint *)(lVar2 - (uVar23 ^ 0xff3c55ff)) ^ DAT_182671fa0) *
       (uVar30 ^ *(uint *)(lVar2 + -0x634)) ^ DAT_182671df0;
  uVar17 = (ulonglong)DAT_182671c94;
  uVar10 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar2 + -0x228) =
       (CONCAT44(uVar9,DAT_182671c60) ^ 0xc0319d52d774b1) +
       (CONCAT44(uVar4,uVar14) ^ 0xf15553060902ac81);
  uVar8 = DAT_182671dac;
  uVar13 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar2 - (uVar17 ^ 0xfffff9e3)) =
       (*(uint *)(lVar2 - (uVar10 ^ 0x87476ee4)) ^ uVar20) * 0xf ^ DAT_182671ef8;
  uVar14 = (*(uint *)(lVar2 + -0x61c) ^ DAT_182671ef8) + (*(uint *)(lVar2 + -0x76c) ^ DAT_182671df0)
  ;
  *(uint *)(lVar2 + -0x6c0) = uVar14 ^ uVar8;
  bVar11 = (byte)DAT_182671c8c;
  *(uint *)(lVar2 + -0x9dc) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x494b11eb)) ^ uVar8) << (((byte)uVar5 ^ 0xd) & 0x1f) ^
       DAT_182671f50;
  uVar20 = DAT_182671d78;
  *(uint *)(lVar2 - (uVar23 ^ 0xff3c531b)) = uVar14 >> ((bVar11 ^ 0x13) & 0x1f) ^ DAT_182671d78;
  *(uint *)(lVar2 + -0x1c8) =
       (uVar20 ^ *(uint *)(lVar2 + -0x94) | *(uint *)(lVar2 + -0x9dc) ^ DAT_182671f50) ^
       DAT_182671ed4;
  *(uint *)(lVar2 + -0x4ac) =
       (*(uint *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0x5f97be4c)) ^ uVar30) +
       (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671f68;
  *(longlong *)(lVar2 + -0xa50) = *(longlong *)(lVar2 + -0xbd8) + *(longlong *)(lVar2 + -0x5e8);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar28) * 4) = uVar12;
  return;
}



############ FUN_ 180f6d620 size=4445 ############

void FUN_180f6d620(void)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  byte bVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  byte *pbVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint *puVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  byte local_78;
  
  uVar35 = DAT_182671c90;
  uVar4 = DAT_182671c84;
  uVar31 = DAT_182671c80;
  uVar9 = DAT_182671c68;
  uVar15 = DAT_182671c48;
  lVar1 = DAT_182671c40;
  uVar12 = DAT_182671c4c & 7;
  DAT_182671c64 = DAT_182671c94 + DAT_182671c60;
  if (uVar12 < 4) {
    if (uVar12 < 2) {
      DAT_182671c88 = DAT_182671c74;
      if (uVar12 == 0) {
        DAT_182671c88 = DAT_182671c4c;
      }
    }
    else {
      DAT_182671c88 = DAT_182671c50;
      if (uVar12 < 3) {
        DAT_182671c88 = DAT_182671c7c;
      }
    }
  }
  else if (uVar12 < 6) {
    DAT_182671c88 = DAT_182671c8c;
    if (uVar12 < 5) {
      DAT_182671c88 = DAT_182671c90;
    }
  }
  else {
    DAT_182671c88 = DAT_182671c58;
    if (uVar12 < 7) {
      DAT_182671c88 = DAT_182671c54;
    }
  }
  uVar21 = (ulonglong)DAT_182671c84;
  DAT_182671c5c = DAT_182671c60 & DAT_182671c64;
  uVar22 = (ulonglong)DAT_182671c68;
  uVar36 = (ulonglong)DAT_182671c48;
  DAT_182671c70 = DAT_182671c84 & DAT_182671c80;
  uVar24 = DAT_182671c68 ^ DAT_182671c48;
  uVar7 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c60 ^ 0x10086112) + (longlong)DAT_1826721e0) ^
          DAT_182671c5c;
  uVar8 = *(uint *)(&DAT_182613220 + DAT_1826721e0) ^ DAT_182671c64;
  uVar33 = DAT_182671c70 ^ 0x36e708af;
  uVar32 = DAT_182671df4 ^ *(uint *)(DAT_182671c40 + -0xa94);
  uVar12 = *(uint *)(DAT_182671c40 + -0x76c) ^ DAT_182671f10;
  uVar29 = *(uint *)(DAT_182671c40 + -0x9dc) ^ DAT_182671f08;
  uVar14 = uVar32 << ((byte)DAT_182671c68 & 0x1f) ^ DAT_182671e5c;
  *(uint *)(DAT_182671c40 + -0x94) = uVar14;
  uVar12 = uVar12 - (uVar14 ^ DAT_182671e5c) ^ DAT_182671f5c;
  *(uint *)(lVar1 + -0x58c) = uVar12;
  uVar14 = uVar33 * uVar32 ^ DAT_182671e98;
  uVar16 = (ulonglong)uVar24;
  uVar12 = uVar29 * (uVar12 ^ DAT_182671f5c) ^ DAT_182671ca4;
  *(uint *)(lVar1 + -0x684) = uVar12;
  lVar1 = DAT_182671c40;
  uVar12 = uVar12 ^ DAT_182671ca4;
  uVar27 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar19 = *(ulonglong *)(DAT_182671c40 + -0xab0);
  *(uint *)(DAT_182671c40 + -0x1c8) = uVar14;
  uVar14 = uVar14 ^ DAT_182671e98;
  *(ulonglong *)(lVar1 + -0x7c0) =
       (CONCAT44(uVar24,uVar15) ^ 0x1b6808a44f128a51) >> (((byte)uVar24 ^ 0x2c) & 0x3f);
  uVar5 = DAT_182671f24;
  uVar14 = uVar14 + uVar12 ^ DAT_182671db0;
  *(uint *)(lVar1 + -0x61c) = uVar14;
  uVar14 = uVar14 ^ DAT_182671db0;
  *(ulonglong *)(lVar1 + -0x380) = *(ulonglong *)(uVar27 ^ uVar19) ^ CONCAT44(uVar5,uVar5);
  uVar12 = DAT_182671c58;
  *(ulonglong *)(lVar1 + -0xab0) = CONCAT44(uVar35,DAT_182671c7c) ^ 0x7ff704e2296bfb1d;
  *(uint *)(lVar1 + -0x4ac) = uVar14 << (((byte)uVar12 ^ 0x1d) & 0x1f) ^ DAT_182671d80;
  uVar32 = DAT_182671cf4;
  uVar35 = DAT_182671c4c;
  uVar24 = uVar9 & uVar24;
  DAT_182671c7c = uVar24 ^ 0x3b490e83;
  uVar19 = (ulonglong)DAT_182671c7c;
  uVar33 = DAT_182671e48 ^ DAT_182671ca0;
  uVar23 = (ulonglong)DAT_182671c4c;
  *(uint *)(lVar1 - ((ulonglong)DAT_182671c7c ^ 0x3b4508d6)) = uVar14 >> 0x13 ^ DAT_182671cf4;
  *(uint *)(lVar1 + -0x444) =
       (*(uint *)(lVar1 - ((ulonglong)uVar9 ^ 0x200c023d)) ^ DAT_182671d80 |
       *(uint *)(lVar1 - (uVar16 ^ 0x98dc8655)) ^ uVar32) ^ DAT_182671f54;
  bVar11 = (byte)DAT_182671c8c;
  *(uint *)(lVar1 - (uVar23 ^ 0xdff3ff5a)) =
       (*(uint *)(lVar1 - ((ulonglong)uVar4 ^ 0x36ef6063)) ^ DAT_182671f08) +
       (*(uint *)(lVar1 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671ca0;
  uVar33 = uVar33 ^ *(uint *)(lVar1 + -0x634);
  uVar29 = *(uint *)(lVar1 + -0x444) ^ DAT_182671f70 ^ DAT_182671f54;
  uVar27 = (ulonglong)DAT_182671dac;
  *(uint *)(lVar1 + -0x784) = (DAT_182671c78 ^ 0xbfba2252) << ((bVar11 ^ 1) & 0x1f);
  uVar14 = DAT_182671c74;
  *(uint *)(lVar1 + -0x94c) = uVar33;
  uVar12 = DAT_182671c54;
  uVar10 = (ulonglong)DAT_182671c54;
  bVar11 = *(byte *)(uVar27 ^ *(ulonglong *)(lVar1 + -0xc20)) ^ (byte)DAT_182671e0c;
  uVar33 = uVar33 ^ DAT_182671f3c ^ DAT_182671e48;
  uVar17 = CONCAT44(DAT_182671c54,uVar14);
  *(uint *)(lVar1 + -0xae4) = uVar29;
  uVar20 = uVar29 ^ DAT_182671e6c ^ DAT_182671f70;
  *(byte *)(lVar1 + -0x1c3) = bVar11;
  uVar27 = (ulonglong)DAT_182671d6c;
  *(uint *)(lVar1 + -0x6c0) = uVar33;
  *(uint *)(lVar1 + -0x54) = uVar20;
  uVar26 = DAT_182671ebc;
  bVar11 = (byte)DAT_182671dec;
  uVar29 = DAT_182671c88;
  lVar1 = DAT_182671c40;
  uVar20 = uVar20 ^ DAT_182671e6c;
  pbVar18 = (byte *)((uVar17 ^ 0x81e28458a235af80) * 0x20 +
                     (CONCAT44(DAT_182671c88,DAT_182671c50) ^ 0x81e28458d74ac761) +
                    *(longlong *)(DAT_182671c40 + -0x9a8));
  *(ulonglong *)(DAT_182671c40 + -0x5a0) = (ulonglong)pbVar18 ^ uVar27;
  lVar2 = DAT_182671c40;
  bVar6 = *pbVar18 ^ bVar11 ^ (byte)DAT_182671e0c;
  uVar25 = (uint)(bVar11 ^ bVar6);
  *(byte *)(lVar1 + -0x1c3) = bVar6;
  uVar13 = DAT_182671f78;
  uVar14 = DAT_182671c74;
  *(uint *)(lVar2 + -0x670) = uVar25 ^ DAT_182671f78;
  uVar20 = uVar20 + (DAT_182671c80 ^ 0xaaa51abb);
  uVar27 = CONCAT44(DAT_182671c94,uVar14);
  *(uint *)(lVar1 + -0x76c) = uVar20 ^ uVar32;
  uVar14 = DAT_182671c5c;
  *(ulonglong *)(lVar1 + -0x888) = uVar27 ^ 0x411fcc9a0d6be412;
  uVar32 = DAT_182671c64 ^ 0x832287fe;
  uVar33 = DAT_182671c60 ^ 0x94ea57e8;
  *(uint *)(lVar1 + -0x94) = uVar25 << (((byte)uVar14 ^ 3) & 0x1f) ^ DAT_182671d08;
  *(uint *)(lVar1 + -0x58c) = uVar33 * uVar32;
  *(uint *)(lVar1 - ((ulonglong)uVar35 ^ 0xdff3f3fa)) =
       uVar20 - (*(uint *)(lVar1 - (uVar22 ^ 0x200c0605)) ^ DAT_182671d08) ^ uVar26;
  uVar32 = DAT_182671c8c;
  uVar25 = *(uint *)(lVar1 + -0x6c0) ^ DAT_182671f3c;
  *(byte *)(lVar1 + -0x1c3) =
       *(byte *)((ulonglong)DAT_182671f68 ^ *(ulonglong *)(lVar1 + -0xbc0)) ^ (byte)DAT_182671e0c;
  uVar14 = DAT_182671c88;
  uVar30 = (uVar26 ^ *(uint *)(lVar1 + -0xa94)) * uVar25 ^ DAT_182671f04;
  *(uint *)(lVar1 + -0x684) = uVar30;
  uVar33 = DAT_182671db4;
  uVar30 = uVar30 ^ DAT_182671f04;
  uVar20 = DAT_182671c58 ^ 0x7d41c205;
  *(ulonglong *)(lVar1 + -0x510) =
       (CONCAT44(uVar24,uVar32) ^ 0xa021795aa0d6c543) << (((byte)uVar14 ^ 0x7c) & 0x3f);
  uVar14 = DAT_182671d28;
  uVar13 = (*(uint *)(lVar1 + -0x670) ^ uVar13) * uVar20 ^ DAT_182671ea0;
  *(uint *)(lVar1 + -0x1c8) = uVar13;
  *(uint *)(lVar1 + -0x61c) = (uVar13 ^ DAT_182671ea0) + uVar30 ^ uVar14;
  lVar2 = DAT_182671c40;
  *(uint *)(lVar1 + -0x4ac) = (*(uint *)(lVar1 - (uVar16 ^ 0x98dc860d)) ^ uVar14) << 0xd ^ uVar33;
  uVar14 = (*(uint *)(lVar1 - ((ulonglong)uVar31 ^ 0x36e70eb9)) ^ uVar14) >>
           (((byte)uVar15 ^ 0x93) & 0x1f) ^ DAT_182671cd0;
  uVar17 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar1 + -0x644) = uVar14;
  uVar31 = DAT_182671c74;
  uVar27 = (ulonglong)DAT_182671c94;
  uVar14 = (*(uint *)(lVar1 - (uVar17 ^ 0xd74ac3d8)) ^ uVar33 | uVar14 ^ DAT_182671cd0) ^
           DAT_182671f5c;
  *(uint *)(lVar1 + -0x9dc) = uVar14;
  uVar20 = DAT_182671f74;
  uVar33 = (*(uint *)(lVar1 + -0x5d4) ^ DAT_182671dd4) + uVar25 ^ DAT_182671d64;
  uVar14 = uVar14 ^ DAT_182671fac ^ DAT_182671f5c;
  *(uint *)(lVar2 + -0x784) = uVar33;
  uVar33 = uVar33 ^ DAT_182671e1c ^ DAT_182671d64;
  *(uint *)(lVar2 + -0x634) = uVar33;
  lVar1 = *(longlong *)(lVar2 - (uVar27 ^ 0xa5f6f144));
  *(uint *)(lVar2 + -0x444) = uVar14;
  local_78 = (byte)uVar4;
  *(ulonglong *)(lVar2 + -0xb08) = lVar1 - (CONCAT44(uVar31,uVar35) ^ 0xf50197d83050c3d4);
  *(ulonglong *)(lVar2 + -0x760) = *(ulonglong *)(lVar2 + -0xb20) >> ((local_78 ^ 0xa5) & 0x3f);
  bVar11 = (byte)DAT_182671eec;
  uVar27 = (ulonglong)DAT_182671c88;
  uVar34 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar2 + -0x94c) = uVar33 ^ uVar20 ^ DAT_182671e1c;
  uVar14 = DAT_182671c70;
  lVar1 = DAT_182671c40;
  uVar35 = DAT_182671c70 ^ 0xaaa51abb;
  uVar17 = (ulonglong)DAT_182671d84;
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x81e28f50)) |
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c70 ^ 0x36e70f65));
  uVar27 = CONCAT44(DAT_182671c64,uVar32);
  *(uint *)(lVar1 + -0xae4) =
       *(uint *)(lVar1 - (uVar34 ^ 0xc88b146)) ^ DAT_182671fa0 ^ DAT_182671fac;
  *(ulonglong *)(lVar1 + -0xc20) =
       (uVar27 ^ 0xb5ff5bb67de1ca18) + *(longlong *)(lVar1 + -0x9a8) ^ uVar17;
  uVar27 = (ulonglong)DAT_182671c94;
  *(byte *)(lVar1 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar1 - (uVar16 ^ 0x98dc8c31)) ^ uVar17) ^ bVar11 ^
       (byte)DAT_182671e0c;
  uVar13 = DAT_182671f18;
  lVar2 = DAT_182671c40;
  uVar25 = (uint)(*(byte *)(lVar1 - (uVar27 ^ 0xa5f6fb5f)) ^ bVar11);
  uVar31 = uVar25 ^ DAT_182671f18;
  *(uint *)(DAT_182671c40 + -0x58c) = DAT_182671c4c ^ 0x1fc6dafd;
  *(uint *)(lVar2 + -0x54) = uVar31;
  uVar27 = CONCAT44(DAT_182671c78,uVar12);
  *(uint *)(lVar2 + -0x76c) =
       (*(uint *)(lVar2 - (uVar36 ^ 0xb8d08c64)) ^ DAT_182671fa0) + uVar35 ^ DAT_182671d10;
  uVar33 = DAT_182671eb4;
  uVar35 = DAT_182671c5c;
  uVar31 = DAT_182671c58;
  uVar36 = (ulonglong)DAT_182671c5c;
  uVar17 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar2 + -0x680) = uVar27 ^ CONCAT44(uVar29,uVar9) ^ 0x408c7f837498f200;
  puVar28 = (uint *)(lVar2 - ((ulonglong)uVar35 ^ 0x10084186));
  *puVar28 = uVar25 << (((byte)DAT_182671c80 ^ 0xb4) & 0x1f) ^ DAT_182671e44;
  *(uint *)(lVar2 - (uVar19 ^ 0x3b450406)) =
       (*(uint *)(lVar2 + -0x76c) ^ DAT_182671d10) - (*(uint *)(lVar2 + -0x94) ^ DAT_182671e44) ^
       uVar33;
  uVar9 = DAT_182671c94;
  *(uint *)(lVar2 + -0x670) =
       (*(uint *)(lVar2 + -0x94c) ^ uVar20) * (uVar33 ^ *(uint *)(lVar2 + -0xa94)) ^ DAT_182671e00;
  *(ulonglong *)(lVar2 + -0xc38) =
       (CONCAT44(uVar14,uVar15) ^ 0x88fab78e0edfff44) +
       (CONCAT44(uVar35,uVar9) ^ 0x1a81cb10ccc898aa);
  *(uint *)(lVar2 + -0x684) =
       (*(uint *)(lVar2 - (uVar17 ^ 0x7d41c244)) ^ uVar13) * (DAT_182671c8c ^ 0x7de1ca18) ^ uVar26;
  uVar29 = DAT_182671d04;
  uVar15 = (*(uint *)(lVar2 - (uVar34 ^ 0xc88b372)) ^ DAT_182671e00) +
           (*(uint *)(lVar2 - (uVar10 ^ 0x81e282dc)) ^ uVar26);
  *(uint *)(lVar2 + -0x1c8) = uVar15 ^ DAT_182671d04;
  uVar9 = DAT_182671ca8;
  uVar27 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar2 + -0x61c) = uVar15 * 0x2000 ^ DAT_182671cac;
  uVar15 = (*(uint *)(lVar2 - (uVar27 ^ 0xd74ac6bc)) ^ uVar29) >> (((byte)DAT_182671c60 ^ 9) & 0x1f)
           ^ DAT_182671ed8;
  uVar27 = (ulonglong)DAT_182671c74;
  *(uint *)(lVar2 + -0x644) = uVar15;
  *(uint *)(lVar2 - (uVar22 ^ 0x200c0051)) =
       (*(uint *)(lVar2 - (uVar23 ^ 0xdff3ff72)) ^ DAT_182671cac | uVar15 ^ DAT_182671ed8) ^
       DAT_182671f4c;
  uVar33 = DAT_182671de8;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x81e283dc)) =
       (*(uint *)(lVar2 - (uVar27 ^ 0xa235a6cc)) ^ uVar20) +
       (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671f7c;
  uVar26 = *(uint *)(lVar2 + -0x784) ^ DAT_182671f80 ^ DAT_182671f7c;
  uVar15 = *(uint *)(lVar2 + -0x6c0) ^ DAT_182671cd8 ^ DAT_182671f4c;
  *(uint *)(lVar2 + -0x9dc) = uVar26;
  uVar26 = uVar26 ^ uVar9 ^ DAT_182671f80;
  *(uint *)(lVar2 + -0x634) = uVar15;
  uVar15 = uVar15 ^ uVar33 ^ DAT_182671cd8;
  *(uint *)(lVar2 + -0x444) = uVar26;
  *(uint *)(lVar2 - (uVar21 ^ 0x36ef6d13)) = uVar15;
  lVar1 = *(longlong *)(lVar2 + -0xb08);
  pbVar18 = (byte *)((CONCAT44(uVar32,uVar24) ^ 0x7de1ca18000c001a) +
                     (CONCAT44(uVar35,uVar31) ^ 0x100841127d41c210) * 0x20 +
                    *(longlong *)(lVar2 + -0x9a8));
  *(longlong *)(lVar2 + -0xda8) = lVar1 * 8;
  uVar26 = DAT_182671f0c;
  uVar31 = DAT_182671dac;
  uVar15 = DAT_182671d2c;
  lVar3 = DAT_182671c40;
  uVar20 = DAT_182671dac & 0xff;
  *(ulonglong *)(lVar2 + -0x5a0) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182671dbc;
  uVar32 = DAT_182671d90;
  bVar11 = *pbVar18 ^ (byte)uVar31 ^ (byte)DAT_182671e0c;
  uVar20 = uVar20 ^ bVar11;
  *(byte *)(lVar2 + -0x1c3) = bVar11;
  uVar31 = DAT_182671c78 ^ 0xf969397b;
  *(uint *)(lVar2 + -0x58c) = uVar20 ^ uVar15;
  uVar15 = DAT_182671c54;
  uVar13 = uVar20 << (((byte)DAT_182671c54 ^ 0x49) & 0x1f) ^ DAT_182671d50;
  *(uint *)(lVar2 + -0xae4) = (*(uint *)(lVar2 + -0x4ac) ^ uVar33) + uVar31 ^ DAT_182671d9c;
  *(uint *)(lVar2 + -0x76c) = uVar13;
  *(uint *)(lVar2 + -0x94) =
       (*(uint *)(lVar2 - (uVar16 ^ 0x98dc8af5)) ^ DAT_182671d9c) - (uVar13 ^ DAT_182671d50) ^
       uVar32;
  uVar13 = uVar9 ^ *(uint *)(lVar2 + -0x444);
  *(uint *)(lVar2 + -0xa94) =
       (*(uint *)(lVar2 - ((ulonglong)DAT_182671c94 ^ 0xa5f6fed8)) ^ uVar9) -
       (*(uint *)(lVar2 + -0x4ac) ^ uVar33);
  uVar31 = (*(uint *)(lVar2 - ((ulonglong)DAT_182671c64 ^ 0xb5ff5b22)) ^ uVar32) * uVar13;
  *(uint *)(lVar2 + -0x54) = uVar31 ^ uVar29;
  uVar33 = DAT_182671e10;
  uVar9 = DAT_182671c5c;
  uVar15 = uVar15 - DAT_182671c5c;
  *(uint *)(lVar3 + -0x670) = uVar20 * 0xb ^ DAT_182671e10;
  uVar31 = uVar20 * 0xb + uVar31 ^ DAT_182671e4c;
  *(uint *)(lVar3 + -0x684) = uVar31;
  uVar31 = uVar31 ^ DAT_182671e4c;
  uVar20 = uVar31 << 0xd;
  uVar29 = (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + uVar13 ^ DAT_182671e78;
  DAT_182671c6c = uVar15;
  *(uint *)(lVar3 + -0x644) = uVar31 >> (((byte)uVar9 ^ 1) & 0x1f) ^ DAT_182671f2c;
  uVar31 = DAT_182671cf8;
  *(uint *)(lVar3 + -0x1c8) = uVar20 ^ uVar26;
  *(uint *)(lVar3 + -0x61c) =
       (*(uint *)(lVar3 - (uVar10 ^ 0x81e2821c)) ^ DAT_182671f2c | uVar20) ^ DAT_182671cfc;
  *(ulonglong *)(lVar3 + -0xc18) = lVar1 - (CONCAT44(uVar15,uVar35) ^ 0x1f74b4f0967630a8);
  *(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0x1008485e)) = uVar29;
  *(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0x71da44c2)) =
       DAT_182671dc4 ^ DAT_182671e78 ^ *(uint *)(lVar3 + -0x94c);
  *(uint *)(lVar3 + -0x6c0) = DAT_182671d5c ^ DAT_182671cfc ^ *(uint *)(lVar3 + -0x61c);
  uVar29 = DAT_182671dd8;
  *(uint *)(lVar3 + -0x9dc) = *(uint *)(lVar3 + -0x784) ^ DAT_182671dd8 ^ DAT_182671dc4;
  *(uint *)(lVar3 + -0x634) = *(uint *)(lVar3 - (uVar10 ^ 0x81e28298)) ^ uVar31 ^ DAT_182671d5c;
  uVar27 = (ulonglong)DAT_182671e14;
  *(ulonglong *)(lVar3 + -0xa08) =
       *(longlong *)(lVar3 - ((ulonglong)uVar35 ^ 0x1008499a)) -
       (CONCAT44(uVar12,uVar15) ^ 0xbcea00a8b72dc333);
  bVar11 = (byte)DAT_182671f90;
  uVar35 = DAT_182671e04;
  uVar9 = DAT_182671c5c;
  pbVar18 = (byte *)((CONCAT44(uVar15,uVar12) ^ 0x71da434681e28458) * 0x20 +
                    *(longlong *)(lVar3 + -0x9a8) + 0x16);
  *(ulonglong *)(lVar3 + -0xbc0) = (ulonglong)pbVar18 ^ uVar27;
  *(byte *)(lVar3 - (uVar36 ^ 0x100840d1)) = *pbVar18 ^ bVar11 ^ (byte)DAT_182671e0c;
  *(uint *)(lVar3 + -0xae4) = (bVar11 ^ *(byte *)(lVar3 + -0x1c3)) ^ uVar35;
  uVar12 = (uVar31 ^ *(uint *)(lVar3 + -0x634)) + (uVar9 ^ 0x8c4a530c);
  *(uint *)(lVar3 + -0x76c) = uVar12 ^ DAT_182671e30;
  *(uint *)(lVar3 + -0xa94) =
       (*(uint *)(lVar3 - (uVar19 ^ 0x3b450476)) ^ uVar35) << 0x11 ^ DAT_182671cdc;
  uVar12 = uVar12 - (*(uint *)(lVar3 - (uVar10 ^ 0x81e28ecc)) ^ DAT_182671cdc);
  *(uint *)(lVar3 + -0x4ac) = uVar12 ^ DAT_182671eb0;
  uVar31 = DAT_182671d24;
  *puVar28 = uVar12 * (*(uint *)(lVar3 + -0x9dc) ^ uVar29) ^ uVar32;
  uVar12 = DAT_182671f60;
  bVar11 = (byte)DAT_182671c50;
  uVar9 = (*(uint *)(lVar3 + -0xae4) ^ uVar35) * (uVar9 ^ 0x10084104);
  *(uint *)(lVar3 + -0x58c) = uVar9 ^ uVar31;
  *(uint *)(lVar3 - (uVar10 ^ 0x81e2840c)) = uVar9 + (*(uint *)(lVar3 + -0x94) ^ uVar32) ^ uVar12;
  uVar31 = uVar12 ^ *(uint *)(lVar3 + -0x54);
  *(uint *)(lVar3 + -0x670) = uVar31 << ((bVar11 ^ 0x79) & 0x1f) ^ DAT_182671eac;
  uVar9 = DAT_182671c94;
  uVar27 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c74 ^ 0xa235a904)) =
       uVar31 >> (((byte)uVar15 ^ 0x55) & 0x1f) ^ DAT_182671f14;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x3b4508ba)) =
       (CONCAT44(uVar14,uVar9) ^ 0x120656f571b65845) -
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0xb18));
  uVar19 = CONCAT44(uVar4,DAT_182671c88);
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0xb5ff5a7e)) =
       (*(uint *)(lVar3 - (uVar27 ^ 0xa5f6fcec)) ^ DAT_182671eac |
       *(uint *)(lVar3 + -0x684) ^ DAT_182671f14) ^ DAT_182671eb8;
  *(ulonglong *)(lVar3 + -0xa70) =
       (uVar19 ^ 0x8195bd0ce933ae9a) >>
       ((byte)*(undefined8 *)(lVar3 - (uVar10 ^ 0x81e28840)) & 0x3f);
  *(uint *)(lVar3 + -0x644) =
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar3 + -0x9dc) ^ uVar29) ^ uVar33;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar8 * 4) = uVar7;
  return;
}



############ FUN_ 180f8ca80 size=6105 ############

void FUN_180f8ca80(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  byte local_res20;
  byte local_108;
  byte local_f8;
  byte local_e8;
  byte local_e0;
  byte local_d8;
  byte local_98;
  ulonglong uVar29;
  
  uVar11 = DAT_182671c84;
  uVar9 = DAT_182671c78;
  uVar7 = DAT_182671c68;
  uVar5 = DAT_182671c5c;
  uVar3 = DAT_182671c4c;
  lVar1 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671c5c;
  uVar27 = (ulonglong)DAT_182671c68;
  uVar32 = (ulonglong)DAT_182671c4c;
  uVar22 = DAT_182671c5c * DAT_182671c58;
  uVar36 = DAT_182671c4c & DAT_182671c80;
  uVar28 = (DAT_182671c78 << 0x10 | DAT_182671c78 & 0xff00) << 8 | DAT_182671c78 >> 8 & 0xff00 |
           DAT_182671c78 >> 0x18;
  uVar29 = (ulonglong)uVar28;
  DAT_182671c90 = ~DAT_182671c68;
  uVar47 = (DAT_182671c84 << 0x10 | DAT_182671c84 & 0xff00) << 8 | DAT_182671c84 >> 8 & 0xff00 |
           DAT_182671c84 >> 0x18;
  uVar42 = *(uint *)(&DAT_182613218 + DAT_18267223c) ^ DAT_182671c5c;
  uVar19 = *(uint *)(&DAT_182613220 + DAT_18267223c) ^ DAT_182671c58;
  uVar40 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar43 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar49 = CONCAT44(DAT_182671e18,DAT_182671e18);
  DAT_182671c48 = uVar36;
  DAT_182671c74 = uVar47;
  DAT_182671c88 = uVar22;
  DAT_182671c8c = uVar28;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c84 ^ 0x2db8e350)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0x3caaf7f8)) ^ uVar40) -
       (*(ulonglong *)(DAT_182671c40 + -0x380) ^ uVar43) ^ uVar49;
  uVar51 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar41 = CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar25 = (ulonglong)uVar47;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x590a079e)) =
       *(ulonglong *)(lVar1 - (uVar25 ^ 0xd8eeb415)) ^ CONCAT44(DAT_182671d90,DAT_182671d90) ^
       *(ulonglong *)(lVar1 + -0xb20) ^ uVar41 ^ uVar51;
  uVar10 = DAT_182671c80;
  uVar44 = *(ulonglong *)(lVar1 + -0x408) ^ uVar51;
  uVar26 = uVar44 >> (((byte)uVar7 ^ 0x2b) & 0x3f);
  uVar24 = (ulonglong)DAT_182671c80;
  uVar23 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar1 + -0xa60) = uVar26 ^ CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar44 = uVar44 << 7;
  uVar37 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *(ulonglong *)(lVar1 + -0x680) = uVar44 ^ uVar23;
  uVar44 = uVar44 | uVar26;
  uVar26 = uVar44 ^ uVar37;
  uVar33 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar1 + -0x7e8) = uVar26;
  uVar15 = DAT_182671dfc;
  uVar12 = DAT_182671c90;
  uVar45 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar1 + -0xb18) =
       (*(ulonglong *)(lVar1 - (uVar24 ^ 0x4ea7be2b)) ^ uVar41) - uVar44 ^ uVar33;
  uVar44 = CONCAT44(uVar15,uVar15);
  uVar26 = *(ulonglong *)(lVar1 + -0xd88) ^ uVar26 ^ uVar44 ^ uVar37 ^ uVar49;
  uVar41 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar1 + -0xc18) = uVar26;
  *(ulonglong *)(lVar1 + -0xc90) = (uVar26 ^ uVar44) >> (((byte)uVar12 ^ 0xe3) & 0x3f) ^ uVar41;
  uVar26 = (ulonglong)uVar9;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar28 ^ 0xaa87cd16)) =
       *(ulonglong *)(lVar1 - (uVar32 ^ 0x590a088e)) ^ uVar33 | 0xc611ced9f234caef;
  local_e8 = (byte)uVar36;
  uVar37 = (*(ulonglong *)(lVar1 - (uVar26 ^ 0x6c88bb2)) ^ uVar44) << ((local_e8 ^ 0x20) & 0x3f);
  uVar44 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(lVar1 + -0x920) = uVar37 ^ CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar13 = DAT_182671c94;
  *(ulonglong *)(lVar1 + -0x30) =
       (*(ulonglong *)(lVar1 - (uVar45 ^ 0xbd5ff17d)) ^ uVar41 | uVar37) ^ uVar44;
  uVar20 = uVar13 & 7;
  *(ulonglong *)(lVar1 + -0xa50) =
       CONCAT44(uVar5,uVar11) ^ CONCAT44(uVar36,uVar47) ^ 0x888fbba5005712bf;
  uVar15 = DAT_182671d3c;
  uVar14 = DAT_182671c94;
  uVar8 = DAT_182671c70;
  uVar6 = DAT_182671c64;
  uVar4 = DAT_182671c54;
  if (uVar20 < 4) {
    if (uVar20 < 2) {
      uVar47 = DAT_182671c70;
      if (uVar20 == 0) {
        uVar47 = uVar13;
      }
      uVar37 = (ulonglong)uVar47;
    }
    else {
      uVar47 = DAT_182671c64;
      if (uVar20 < 3) {
        uVar47 = DAT_182671c50;
      }
      uVar37 = (ulonglong)uVar47;
    }
  }
  else if (uVar20 < 6) {
    if (uVar20 < 5) {
      uVar47 = DAT_182671c54;
    }
    uVar37 = (ulonglong)uVar47;
  }
  else {
    uVar37 = (ulonglong)uVar12;
    if (uVar20 < 7) {
      uVar37 = (ulonglong)uVar10;
    }
  }
  puVar34 = (ulonglong *)(lVar1 - ((ulonglong)DAT_182671c50 ^ 0xa5b176f8));
  uVar38 = (ulonglong)DAT_182671c94;
  uVar41 = (*(ulonglong *)(lVar1 + -0xd88) ^ uVar49) - (*puVar34 ^ uVar40);
  DAT_182671c60 = (undefined4)uVar37;
  *(ulonglong *)(lVar1 + -0x760) = uVar41 ^ CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar50 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 + -0x4b8) = uVar41 - (*(ulonglong *)(lVar1 + -0x30) ^ uVar44) ^ uVar50;
  *(ulonglong *)(lVar1 + -0xb20) =
       (CONCAT44(uVar10,uVar8) ^ 0x987b6e1e4d8ee6a4) >> (((byte)uVar4 ^ 0xfa) & 0x3f);
  uVar35 = CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar30 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xfc6af95f)) =
       (*(ulonglong *)(lVar1 - (uVar37 ^ 0x4ea7b223)) ^ uVar44) -
       (uVar35 ^ *(ulonglong *)(lVar1 + -0x828)) ^ uVar30;
  uVar44 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(ulonglong *)(lVar1 - (uVar38 ^ 0x13b2a1ce)) =
       *(ulonglong *)(lVar1 + -0x380) ^ uVar44 ^ uVar33 ^ uVar43 ^ *(ulonglong *)(lVar1 + -0xb18);
  uVar40 = (*(ulonglong *)(DAT_182671c40 + -0x680) ^ uVar44) >>
           (((byte)DAT_182671c6c ^ 0xde) & 0x3f);
  uVar41 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar40 ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  lVar1 = DAT_182671c40;
  uVar41 = (*(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0xc73f324e)) ^ uVar44) <<
           (((byte)uVar6 ^ 0xf) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar41 ^ CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar15 = DAT_182671d58;
  uVar43 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x13b2a25e)) = (uVar41 | uVar40) ^ uVar43;
  uVar17 = DAT_182671da0;
  *(ulonglong *)(lVar1 + -0xc18) =
       (CONCAT44(uVar8,uVar12) ^ 0x308c6a455fa1e412) + (*(ulonglong *)(lVar1 + -0x408) ^ uVar51);
  uVar18 = DAT_182671e24;
  uVar16 = DAT_182671d60;
  uVar33 = (*(ulonglong *)(lVar1 - (uVar24 ^ 0x4ea7b90b)) ^ uVar33) -
           (*(ulonglong *)(lVar1 - (uVar29 ^ 0xaa87c27e)) ^ CONCAT44(uVar15,uVar15));
  *(ulonglong *)(lVar1 + -0xc90) = uVar33 ^ CONCAT44(uVar17,uVar17);
  uVar15 = DAT_182671ea0;
  uVar44 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar1 + -0x920) = uVar33 - (*(ulonglong *)(lVar1 + -0x510) ^ uVar43) ^ uVar44;
  uVar41 = (CONCAT44(uVar14,DAT_182671c50) ^ 0xec4d58b15a4e8bb6) -
           (*(ulonglong *)(lVar1 - (uVar29 ^ 0xaa87c08e)) ^ CONCAT44(uVar16,uVar16));
  *(ulonglong *)(lVar1 + -0xa50) = uVar41 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671f3c;
  *(uint *)(lVar1 + -0x634) = *(uint *)(lVar1 - ((ulonglong)uVar36 ^ 0x4802040e)) | 0x6e34a69a;
  uVar33 = CONCAT44(uVar15,uVar15);
  local_res20 = (byte)uVar3;
  *(ulonglong *)(lVar1 - (uVar26 ^ 0x6c8851a)) =
       uVar41 + (*(ulonglong *)(lVar1 + -0x510) ^ uVar43) ^ uVar33;
  uVar40 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar33 = *(ulonglong *)(DAT_182671c40 + -0x2b0) ^ *(ulonglong *)(DAT_182671c40 + -0x4b8) ^ uVar40
           ^ uVar33 ^ uVar50;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar33;
  uVar6 = DAT_182671c7c;
  lVar1 = DAT_182671c40;
  uVar38 = (uVar33 ^ uVar40) >> ((local_res20 ^ 0xb6) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar38 ^ CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar15 = DAT_182671e50;
  uVar41 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar1 + -0xb20) = (uVar33 ^ uVar40) << (((byte)uVar8 ^ 0x60) & 0x3f) ^ uVar41;
  uVar47 = DAT_182671c50;
  uVar43 = CONCAT44(uVar15,uVar15);
  uVar33 = CONCAT44(uVar22,DAT_182671c6c);
  uVar38 = *(ulonglong *)(lVar1 - (uVar25 ^ 0xd8eeb30d)) ^ uVar41 | uVar38;
  *(ulonglong *)(lVar1 + -0x30) = uVar38 ^ uVar43;
  uVar8 = DAT_182671ecc;
  uVar15 = DAT_182671cbc;
  uVar40 = (ulonglong)DAT_182671ecc;
  *(ulonglong *)(lVar1 + -0x380) =
       uVar33 ^ 0xf89cae72242f30a2 | CONCAT44(uVar6,uVar47) ^ 0x25ed02b5248c5bda;
  uVar47 = DAT_182671c58;
  uVar51 = CONCAT44(uVar15,uVar15);
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar33 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar1 + -0x680) = (*(ulonglong *)(lVar1 + -0x4b8) ^ uVar50) - uVar38 ^ uVar51;
  uVar41 = CONCAT44(uVar10,DAT_182671c94);
  uVar30 = *(ulonglong *)(lVar1 - (uVar33 ^ 0x39506a0)) ^ *(ulonglong *)(lVar1 + -0x920) ^ uVar39 ^
           uVar44 ^ uVar30;
  *(ulonglong *)(lVar1 + -0xc38) = uVar30;
  uVar15 = DAT_182671dd8;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar1 + -0x7e8) = CONCAT44(uVar7,uVar28) ^ uVar41 ^ 0xdebcfb7fd25a7b5a;
  uVar50 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0xc18) = *(ulonglong *)(lVar2 + -0xc38) >> 0x20 ^ uVar50 ^ uVar40;
  uVar46 = CONCAT44(DAT_182671eac,DAT_182671eac);
  puVar48 = (ulonglong *)(lVar2 - (uVar31 ^ 0xfdfafbf7));
  *puVar48 = (uVar39 ^ uVar30) << (((byte)uVar37 ^ 0x33) & 0x3f) ^ uVar46;
  uVar46 = uVar46 ^ *(ulonglong *)(lVar2 + -0x408);
  *(ulonglong *)(lVar2 + -0xa78) =
       (CONCAT44(uVar47,uVar28) ^ 0xd5526b33bc03784d) +
       (CONCAT44(uVar36,uVar3) ^ 0x60af9d28b930bc13);
  uVar33 = *(ulonglong *)(lVar2 - (uVar27 ^ 0x42a00e0a)) ^ uVar50 | uVar46;
  *(uint *)(lVar2 + -0x644) = *(uint *)(lVar2 + -0xae4) | *(uint *)(lVar2 + -0x784);
  uVar15 = DAT_182671f44;
  uVar41 = uVar33 ^ uVar23;
  *(ulonglong *)(lVar2 + -0xb18) = uVar41;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar40 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar2 + -0xc90) = (*(ulonglong *)(lVar2 + -0x920) ^ uVar44) - uVar33 ^ uVar38;
  *(ulonglong *)(lVar2 + -0x510) =
       uVar40 ^ *(ulonglong *)(lVar2 + -0x680) ^ uVar51 ^ uVar41 ^ uVar23;
  local_f8 = (byte)uVar10;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c64 ^ 0xfc6af96f)) =
       uVar46 - (CONCAT44(uVar12,DAT_182671c7c) ^ 0xcb43a89d4ae87d3b);
  uVar33 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *puVar34 = (uVar40 ^ *(ulonglong *)(lVar2 + -0x510)) >> ((local_f8 ^ 0x29) & 0x3f) ^ uVar33;
  uVar15 = DAT_182671f18;
  lVar1 = DAT_182671c40;
  uVar23 = (*(ulonglong *)(lVar2 - (uVar45 ^ 0xbd5ff8fd)) ^ uVar40) <<
           (((byte)uVar22 ^ 0x46) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd88) = uVar23 ^ CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar47 = DAT_182671c54;
  uVar39 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 + -0xb20) = (*(ulonglong *)(lVar1 + -0x2b0) ^ uVar33 | uVar23) ^ uVar39;
  *(ulonglong *)(lVar1 + -0x760) =
       (CONCAT44(uVar3,uVar47) ^ 0xcf9c0dda56fae22f) + (CONCAT44(uVar3,uVar3) ^ 0xd65ada96ba313ae4);
  uVar15 = DAT_182671ccc;
  uVar30 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c64 ^ 0xfc6af0bf)) =
       (*(ulonglong *)(lVar1 + -0x680) ^ uVar51) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar36 ^ 0x48020932)) ^ uVar39) ^ uVar30;
  uVar16 = DAT_182671cd8;
  uVar44 = CONCAT44(DAT_182671f88,DAT_182671f88);
  local_108 = (byte)uVar5;
  uVar23 = *(ulonglong *)(lVar1 - ((ulonglong)uVar47 ^ 0xdff9f9c8)) ^ uVar44 ^ uVar38 ^ uVar43 ^
           *(ulonglong *)(lVar1 + -0xc90);
  *(ulonglong *)(lVar1 + -0x4b8) = uVar23;
  uVar40 = CONCAT44(uVar16,uVar16);
  bVar21 = (byte)DAT_182671c70;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xaa87c266)) =
       (uVar23 ^ uVar44) >> ((local_108 ^ 0xe9) & 0x3f) ^ uVar40;
  uVar33 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  uVar23 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x4ea7b5fb)) =
       (uVar44 ^ *(ulonglong *)(lVar1 + -0x4b8)) << ((bVar21 ^ 0x6a) & 0x3f) ^ uVar33;
  uVar41 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar23 = *(ulonglong *)(lVar1 - (uVar23 ^ 0xa5b17e28)) ^ uVar40 |
           uVar33 ^ *(ulonglong *)(lVar1 + -0x7e8);
  uVar24 = uVar23 ^ uVar41;
  uVar40 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(lVar1 + -0xc38) = uVar24;
  *(ulonglong *)(lVar1 + -0xa78) = (uVar38 ^ *(ulonglong *)(lVar1 + -0xc90)) - uVar23 ^ uVar40;
  *(ulonglong *)(lVar1 + -0xc18) =
       uVar44 ^ CONCAT44(uVar9,uVar22) ^ *(ulonglong *)(lVar1 + -0x4b8) ^ 0xa7912b125ac510e1;
  uVar33 = CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar44 = CONCAT44(DAT_182671e60,DAT_182671e60);
  uVar24 = *(ulonglong *)(lVar1 + -0x380) ^ uVar33 ^ uVar41 ^ uVar30 ^ uVar24;
  local_e0 = (byte)uVar11;
  *(ulonglong *)(lVar1 + -0x920) = uVar24;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c7c ^ 0xa73925de)) =
       (uVar24 ^ uVar33) >> ((local_e0 ^ 0xf6) & 0x3f) ^ uVar44;
  uVar23 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *puVar48 = (*(ulonglong *)(lVar1 + -0x920) ^ uVar33) << 0x12 ^ uVar23;
  uVar47 = DAT_182671c58;
  uVar46 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c58 ^ 0x3950690)) =
       (uVar44 ^ *(ulonglong *)(lVar1 + -0xb18) | uVar23 ^ *(ulonglong *)(lVar1 + -0x408)) ^ uVar46;
  uVar16 = DAT_182671e44;
  lVar1 = DAT_182671c40;
  uVar41 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0xa78);
  uVar44 = (*(ulonglong *)(DAT_182671c40 + -0x380) ^ uVar30) -
           (uVar46 ^ *(ulonglong *)(DAT_182671c40 + -0xa50)) ^ uVar41;
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar44;
  uVar33 = CONCAT44(uVar16,uVar16);
  uVar38 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar24 = uVar23 ^ uVar33 ^ uVar40 ^ uVar39 ^ *(ulonglong *)(lVar1 + -0xb20);
  *(ulonglong *)(lVar1 + -0xd88) = uVar24;
  uVar3 = DAT_182671c6c;
  uVar51 = (uVar24 ^ uVar33) >> ((local_108 ^ 0xf3) & 0x3f);
  uVar24 = (ulonglong)DAT_182671c64;
  uVar43 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar1 + -0x2b0) = uVar51 ^ uVar38;
  uVar17 = DAT_182671e6c;
  uVar33 = (*(ulonglong *)(lVar1 - (uVar24 ^ 0xfc6afeb7)) ^ uVar33) <<
           (((byte)DAT_182671c70 ^ 0x74) & 0x3f);
  uVar24 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar1 + -0x760) = uVar33 ^ uVar43;
  uVar5 = DAT_182671fa8;
  uVar16 = DAT_182671df0;
  uVar51 = uVar51 | uVar33;
  uVar33 = (ulonglong)DAT_182671fa8;
  uVar43 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar1 + -0x680) = uVar51 ^ uVar43;
  uVar38 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 + -0x30) = (uVar23 ^ uVar40) - uVar51 ^ uVar38;
  uVar40 = *(ulonglong *)(lVar1 - (uVar24 ^ 0xa7392846)) ^ CONCAT44(uVar5,uVar5) ^ uVar43 ^ uVar44 ^
           uVar41;
  uVar44 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar1 + -0xa60) = uVar40;
  uVar16 = DAT_182671f70;
  *(ulonglong *)(lVar1 + -0x7e8) =
       ((ulonglong)(uVar5 >> 0x19) | uVar33 << 7) ^ uVar40 >> 0x19 ^ uVar44;
  uVar24 = CONCAT44(uVar16,uVar16);
  uVar23 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar1 - (uVar27 ^ 0x42a00e82)) = (uVar40 ^ CONCAT44(uVar5,uVar5)) << 0x27 ^ uVar24;
  uVar16 = DAT_182671e58;
  uVar33 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar1 + -0x4b8) =
       (*(ulonglong *)(lVar1 - (uVar23 ^ 0xa5b173a0)) ^ uVar44 |
       uVar24 ^ *(ulonglong *)(lVar1 + -0xc90)) ^ uVar33;
  uVar17 = DAT_182671ec8;
  uVar27 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 + -0xc18) = **(ulonglong **)(lVar1 - (uVar45 ^ 0xbd5ff72d)) ^ uVar27;
  *(ulonglong *)(lVar1 + -0xc38) =
       (uVar41 ^ *(ulonglong *)(lVar1 + -0x510)) -
       (CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar1 + -0x228)) ^ uVar49;
  uVar44 = CONCAT44(uVar36,DAT_182671c94);
  *(ulonglong *)(lVar1 - (uVar25 ^ 0xd8eeb10d)) =
       (*(ulonglong *)(lVar1 - (uVar26 ^ 0x6c88b92)) ^ uVar49) - (uVar44 ^ 0xd6966dd951542ca5);
  uVar16 = DAT_182671d84;
  uVar24 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar40 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar1 + -0xb18) =
       (uVar49 ^ *(ulonglong *)(lVar1 + -0xc38)) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar47 ^ 0x3950878)) ^ uVar33) ^ uVar24;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0xd8eebc25)) =
       (uVar33 ^ *(ulonglong *)(lVar1 + -0x4b8)) -
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar1 + -0xb08)) ^ uVar40;
  uVar33 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c6c ^ 0xc73f3fee)) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar22 ^ 0x3caaf910)) ^ uVar33 ^ uVar38 ^ uVar46 ^
       *(ulonglong *)(lVar1 + -0x30);
  puVar34 = (ulonglong *)(lVar1 - (uVar31 ^ 0xfdfaf4df));
  uVar23 = CONCAT44(uVar4,DAT_182671c64);
  uVar26 = (uVar33 ^ *puVar34) >> (((byte)uVar37 ^ 0x32) & 0x3f);
  local_98 = (byte)uVar15;
  *(ulonglong *)(lVar1 + -0xd88) = uVar26 ^ CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar16 = DAT_182671da4;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (uVar23 ^ 0xdca94c9747cced0c) << ((*(byte *)(lVar1 + -0x380) ^ local_98) & 0x3f);
  uVar15 = DAT_182671d64;
  uVar23 = (*(ulonglong *)(lVar1 - (uVar29 ^ 0xaa87c326)) ^ uVar33) << ((local_res20 ^ 0x89) & 0x3f)
  ;
  *(ulonglong *)(lVar1 + -0x760) = uVar23 ^ CONCAT44(uVar16,uVar16);
  uVar33 = CONCAT44(uVar15,uVar15);
  uVar23 = uVar23 | uVar26;
  *(ulonglong *)(lVar1 + -0xa78) = uVar23 ^ uVar33;
  uVar16 = DAT_182671e14;
  uVar15 = DAT_182671ce0;
  uVar26 = (uVar38 ^ *(ulonglong *)(lVar1 + -0x30)) - (uVar35 ^ *(ulonglong *)(lVar1 + -0x828));
  *(ulonglong *)(lVar1 + -0x680) = uVar26 ^ CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar47 = DAT_182671c7c;
  lVar1 = DAT_182671c40;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xd8eeb24d)) = uVar26 - uVar23 ^ uVar37;
  uVar15 = DAT_182671ee4;
  uVar25 = (ulonglong)DAT_182671c54;
  uVar23 = *(ulonglong *)(lVar1 - ((ulonglong)uVar47 ^ 0xa739251e)) ^ CONCAT44(uVar16,uVar16) ^
           CONCAT44(uVar3,uVar36) ^ uVar50 ^ 0x38c0cb31b7fdfded;
  *(ulonglong *)(lVar1 + -0x7e8) = uVar23;
  lVar2 = DAT_182671c40;
  uVar26 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 + -0xc90) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xdff9f380)) ^ uVar33) + (uVar23 ^ uVar50) ^ uVar26;
  uVar3 = DAT_182671eb0;
  uVar15 = DAT_182671e08;
  uVar23 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  uVar25 = *(ulonglong *)(lVar2 - (uVar31 ^ 0xfdfaf36f)) ^ uVar23 ^ uVar26 ^ uVar24 ^
           *(ulonglong *)(lVar2 + -0xb18);
  *(ulonglong *)(lVar2 + -0xc18) = uVar25;
  lVar1 = DAT_182671c40;
  uVar26 = CONCAT44(uVar15,uVar15);
  uVar41 = (ulonglong)DAT_182671c70;
  bVar21 = (byte)DAT_182671c70;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar47 ^ 0xa7392cee)) =
       ((ulonglong)uVar3 << 0x1b | (ulonglong)(uVar3 >> 5)) ^ uVar25 >> 5 ^ uVar26;
  uVar23 = (uVar23 ^ *(ulonglong *)(lVar1 + -0xc18)) << ((bVar21 ^ 0x7b) & 0x3f);
  uVar31 = CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar25 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar1 + -0x510) = uVar23 ^ uVar31;
  *(ulonglong *)(lVar1 + -0x920) = *(ulonglong *)(uVar25 ^ *(ulonglong *)(lVar1 + -0x668)) ^ uVar27;
  uVar15 = DAT_182671ec4;
  uVar23 = uVar23 | uVar26 ^ *(ulonglong *)(lVar1 + -0x228);
  *(ulonglong *)(lVar1 + -0xc38) = uVar23 ^ CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar25 = (ulonglong)DAT_182671c6c;
  uVar26 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 + -0x4b8) = (uVar24 ^ *(ulonglong *)(lVar1 + -0xb18)) - uVar23 ^ uVar26;
  uVar23 = (ulonglong)DAT_182671c94;
  bVar21 = (byte)DAT_182671c94;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0xc73f3e9e)) =
       uVar44 ^ uVar50 ^ *(ulonglong *)(lVar1 + -0x7e8) ^ 0x97e2e0ef4b928717;
  uVar27 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar33 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar25 = uVar27 ^ uVar37 ^ uVar40 ^ *(ulonglong *)(lVar1 + -0xa60) ^
           *(ulonglong *)(lVar1 + -0x408);
  *(ulonglong *)(lVar1 + -0x380) = uVar25;
  *(ulonglong *)(lVar1 - (uVar41 ^ 0x42132f0)) =
       (uVar25 ^ uVar27) >> ((bVar21 ^ 0x6b) & 0x3f) ^ uVar33;
  uVar16 = DAT_182671f64;
  uVar15 = DAT_182671e5c;
  uVar24 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar1 + -0xb20) =
       (uVar27 ^ *(ulonglong *)(lVar1 + -0x380)) << ((local_e0 ^ 0xc3) & 0x3f) ^ uVar24;
  uVar27 = CONCAT44(uVar15,uVar15);
  uVar25 = *puVar34 ^ uVar24 | uVar33 ^ *(ulonglong *)(lVar1 + -0x2b0);
  *(ulonglong *)(lVar1 + -0xd88) = uVar25 ^ uVar27;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xaa87cf66)) =
       (uVar37 ^ *(ulonglong *)(lVar1 + -0xa60)) - uVar25 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 - (uVar23 ^ 0x13b2af66)) =
       uVar33 ^ *(ulonglong *)(lVar1 + -0x2b0) | *(ulonglong *)(lVar1 + -0xb20) ^ uVar24;
  uVar16 = DAT_182671fb0;
  uVar25 = uVar26 ^ *(ulonglong *)(lVar1 + -0xd88) ^ *(ulonglong *)(lVar1 + -0x4b8) ^
           CONCAT44(DAT_182671de8,DAT_182671de8) ^ uVar27;
  uVar26 = uVar25 ^ CONCAT44(DAT_182671de8,DAT_182671de8);
  *(ulonglong *)(lVar1 + -0x30) = uVar25;
  uVar15 = DAT_182671ce4;
  uVar37 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 + -0xbd8) = uVar26 >> (((byte)DAT_182671c7c ^ 0xd1) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar1 + -0x680) =
       uVar31 ^ *(ulonglong *)(lVar1 + -0x510) | *(ulonglong *)(lVar1 + -0xb20) ^ uVar24;
  uVar25 = (ulonglong)DAT_182671c50;
  uVar23 = CONCAT44(uVar15,uVar15);
  local_d8 = (byte)uVar9;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c58 ^ 0x39506b8)) =
       uVar26 << ((local_d8 ^ 0x83) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x590a0f06)) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xa5b17e30)) ^ uVar23 |
       *(ulonglong *)(lVar1 + -0xbd8) ^ uVar37) ^ uVar27;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar42;
  return;
}



############ FUN_ 180f3ee60 size=5539 ############

void FUN_180f3ee60(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte bVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte local_128;
  byte local_110;
  
  uVar10 = DAT_182671c84;
  uVar9 = DAT_182671c64;
  uVar8 = DAT_182671c5c;
  uVar7 = DAT_182671c58;
  lVar5 = DAT_182671c40;
  uVar39 = (ulonglong)DAT_182671c64;
  uVar25 = (ulonglong)DAT_182671c5c;
  uVar47 = (ulonglong)DAT_182671c84;
  uVar27 = (ulonglong)DAT_182671c58;
  uVar29 = DAT_182671c84 ^ DAT_182671c58;
  uVar33 = DAT_182671c78 | DAT_182671c4c;
  uVar41 = DAT_182671c5c << 0x10 | DAT_182671c5c >> 0x10;
  uVar37 = (DAT_182671c64 << 0x10 | DAT_182671c64 & 0xff00) << 8 | DAT_182671c64 >> 8 & 0xff00 |
           DAT_182671c64 >> 0x18;
  uVar16 = *(uint *)(&DAT_182613218 + DAT_182671fe8) ^ DAT_182671c5c;
  uVar17 = (ulonglong)uVar37;
  uVar4 = *(uint *)(&DAT_182613210 + (uVar17 ^ 0xa39816a8) + (longlong)DAT_182671fe8);
  uVar21 = (ulonglong)DAT_182671c4c;
  bVar19 = (byte)DAT_182671c4c;
  uVar38 = CONCAT44(DAT_182671e38,DAT_182671e38);
  uVar23 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  puVar30 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c78 ^ 0xb6e628ce));
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  DAT_182671c50 = uVar33;
  DAT_182671c74 = uVar41;
  DAT_182671c80 = uVar29;
  DAT_182671c94 = uVar37;
  *puVar30 = (*(ulonglong *)(DAT_182671c40 + -0x7c0) ^ uVar38) >> ((bVar19 ^ 0x91) & 0x3f) ^ uVar23;
  uVar12 = DAT_182671edc;
  uVar11 = DAT_182671d94;
  uVar24 = (ulonglong)DAT_182671edc;
  uVar31 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar22 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  uVar23 = (uVar23 ^ *puVar1 | uVar31 ^ *(ulonglong *)(lVar5 + -0x888)) ^ uVar22;
  *(ulonglong *)(lVar5 + -0xb20) = uVar23;
  uVar44 = CONCAT44(uVar11,uVar11);
  uVar26 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar5 + -0xb08) =
       uVar26 ^ uVar44 ^ uVar23 ^ uVar22 ^ *(ulonglong *)(lVar5 + -0x628);
  uVar36 = (ulonglong)uVar33;
  puVar34 = (ulonglong *)(lVar5 - (uVar36 ^ 0xb7fe3306));
  uVar49 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  bVar28 = (byte)uVar29;
  *(ulonglong *)(lVar5 + -0x760) =
       (CONCAT44(DAT_182671f34,DAT_182671f34) ^ *(ulonglong *)(lVar5 + -0xa50)) +
       (CONCAT44(uVar12,uVar12) ^ *puVar34) ^ uVar49;
  uVar18 = (ulonglong)uVar41;
  uVar45 = (ulonglong)uVar29;
  uVar22 = (*(ulonglong *)(DAT_182671c40 + -0x4b8) ^ CONCAT44(uVar12,uVar12)) <<
           ((bVar28 ^ 0xeb) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar22 ^ CONCAT44(DAT_182671e34,DAT_182671e34);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (CONCAT44(uVar9,uVar10) ^ 0x66b387ffc9048657) >> (((byte)uVar8 ^ 0xd3) & 0x3f);
  uVar11 = DAT_182671d30;
  uVar32 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar5 + -0xc18) =
       ((ulonglong)(uVar12 >> 0x18) | uVar24 << 8) ^ *(ulonglong *)(lVar5 + -0x4b8) >> 0x18 ^ uVar32
  ;
  uVar13 = DAT_182671f38;
  uVar42 = CONCAT44(uVar11,uVar11);
  puVar46 = (ulonglong *)(lVar5 - (uVar45 ^ 0x74b173b3));
  puVar2 = (ulonglong *)(lVar5 + -0xf0);
  *puVar46 = (*(ulonglong *)(lVar5 - (uVar36 ^ 0xb7fe3ba6)) ^ uVar32 | uVar22) ^ uVar42;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar22 = *(ulonglong *)(lVar5 - (uVar39 ^ 0xb8169fc3)) ^ uVar35 ^ uVar42 ^ uVar49 ^
           *(ulonglong *)(lVar5 + -0xa70);
  *puVar2 = uVar22;
  uVar11 = DAT_182671d80;
  *(ulonglong *)(lVar5 + -0x408) =
       (CONCAT44(uVar37,uVar29) ^ 0xcf0c3860690a5656) >> (((byte)DAT_182671c78 ^ 0x1a) & 0x3f);
  uVar24 = CONCAT44(uVar11,uVar11);
  puVar3 = (ulonglong *)(lVar5 + -0xb18);
  *puVar3 = (*(ulonglong *)(lVar5 - (uVar36 ^ 0xb7fe374e)) ^ uVar35) +
            (uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0x628)) ^ uVar24;
  bVar20 = (byte)(uVar9 >> 0x18);
  uVar26 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *(ulonglong *)(DAT_182671c40 + -0x380) = (uVar35 ^ uVar22) << ((bVar20 ^ 0xbd) & 0x3f) ^ uVar26;
  lVar5 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  local_128 = (byte)uVar7;
  uVar22 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xa3981408)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0xb8169853)) ^ uVar35) >>
       ((local_128 ^ 0xfc) & 0x3f) ^ uVar23;
  uVar11 = DAT_182671e2c;
  *(ulonglong *)(lVar5 + -0x110) =
       uVar42 ^ *(ulonglong *)(lVar5 + -0xa70) | *(ulonglong *)(lVar5 + -0x2b0) ^ uVar23;
  uVar14 = DAT_182671f14;
  uVar42 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xb6e624d6)) =
       (*(ulonglong *)(lVar5 + -0x380) ^ uVar26 | *(ulonglong *)(lVar5 + -0x2b0) ^ uVar23) ^ uVar42;
  puVar48 = (ulonglong *)(lVar5 - (uVar39 ^ 0xb816902b));
  uVar35 = CONCAT44(uVar14,uVar14);
  *puVar48 = CONCAT44(uVar7,uVar41) ^ 0x36e7497b1b5ea307;
  uVar22 = *(ulonglong *)(lVar5 + -0x760);
  uVar26 = CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar23 = uVar44 ^ *(ulonglong *)(lVar5 + -0xb08);
  *puVar1 = *(ulonglong *)(lVar5 - (uVar45 ^ 0x74b17e03)) ^ *puVar3 ^ uVar26 ^ uVar42 ^ uVar24;
  uVar11 = DAT_182671ef0;
  local_110 = (byte)uVar10;
  *(ulonglong *)(lVar5 + -0xb20) = (uVar49 ^ uVar22) + uVar23 ^ uVar35;
  lVar5 = DAT_182671c40;
  uVar42 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar23 << ((local_110 ^ 0x21) & 0x3f) ^ uVar42;
  uVar49 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x1b96e12f)) =
       (*(ulonglong *)(lVar5 - (uVar17 ^ 0xa3981db0)) ^ uVar44) >> ((bVar28 ^ 0xd8) & 0x3f) ^ uVar49
  ;
  uVar11 = DAT_182671e84;
  uVar22 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(lVar5 + -0x4b8) =
       (*(ulonglong *)(lVar5 + -0x7e8) ^ uVar49 | *(ulonglong *)(lVar5 + -0xa50) ^ uVar42) ^ uVar22;
  uVar13 = DAT_182671ebc;
  uVar50 = CONCAT44(uVar11,uVar11);
  uVar22 = uVar50 ^ uVar22 ^ uVar35 ^ *puVar34 ^ *(ulonglong *)(lVar5 + -0xb20);
  *(ulonglong *)(lVar5 + -0x828) = uVar22;
  uVar44 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x6f27931c)) =
       (CONCAT44(uVar8,uVar33) ^ 0xeb4a6f5dec00b20f) + (uVar50 ^ uVar22) ^ uVar44;
  *(uint *)(lVar5 + -0x6c0) = *(uint *)(lVar5 - (uVar17 ^ 0xa39811d4)) | DAT_182671c94 ^ 0xea7a33a3;
  uVar11 = DAT_182671e40;
  uVar22 = (*(ulonglong *)(lVar5 - (uVar21 ^ 0xa3981da0)) ^ uVar24) +
           (CONCAT44(uVar10,uVar8) ^ 0x13773b953a689a43);
  *(ulonglong *)(lVar5 + -0x408) = uVar22 ^ CONCAT44(DAT_182671eb0,DAT_182671eb0);
  uVar13 = DAT_182671efc;
  lVar6 = DAT_182671c40;
  uVar23 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x628) = uVar22 + (uVar44 ^ *(ulonglong *)(lVar5 + -0xc18)) ^ uVar23;
  uVar42 = CONCAT44(uVar13,uVar13);
  uVar22 = *(ulonglong *)(lVar6 + -0xc18);
  *puVar2 = (uVar44 ^ *(ulonglong *)(lVar6 + -0xc18)) << (((byte)DAT_182671c78 ^ 0xf) & 0x3f) ^
            uVar42;
  uVar11 = DAT_182671db0;
  uVar24 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *puVar46 = (uVar44 ^ uVar22) >> ((bVar28 ^ 0xe4) & 0x3f) ^ uVar24;
  uVar22 = *puVar2;
  *(ulonglong *)(lVar6 + -0x110) =
       uVar50 ^ CONCAT44(uVar9,uVar10) ^ *(ulonglong *)(lVar6 + -0x828) ^ 0x1b2d5a92e9ee65ec;
  *(ulonglong *)(lVar6 - (uVar36 ^ 0xb7fe343e)) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xa3981cc8)) ^ uVar24 | uVar42 ^ uVar22) ^ uVar49;
  uVar42 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(lVar6 + -0x2b0) =
       *(ulonglong *)(lVar6 + -0x380) ^ uVar42 ^ uVar23 ^ uVar49 ^ *(ulonglong *)(lVar6 + -0x628);
  *(byte *)(lVar6 + -0x899) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x990) ^ (ulonglong)DAT_182671ee0) ^ (byte)uVar14;
  uVar43 = CONCAT44(DAT_182671e14,DAT_182671e14);
  uVar49 = (CONCAT44(uVar37,uVar7) ^ 0xda0bcd31eac2e43a) + (uVar26 ^ *puVar1);
  uVar22 = CONCAT44(uVar37,DAT_182671c78);
  uVar44 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar6 + -0x888) = uVar49 ^ uVar43;
  uVar13 = DAT_182671e94;
  uVar22 = (uVar22 ^ 0x2da9522637d6e083) + (uVar35 ^ *(ulonglong *)(lVar6 + -0xb20));
  *(ulonglong *)(lVar6 + -0x7c0) = uVar22 ^ uVar44;
  *(ulonglong *)(lVar6 + -0x760) = uVar49 >> (((byte)uVar11 ^ *(byte *)(lVar6 + -0xa70)) & 0x3f);
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xb08) = uVar49 + uVar22 ^ uVar35;
  uVar11 = DAT_182671db4;
  *(ulonglong *)(lVar6 + -0xa50) = uVar49 << 0x21 ^ uVar38;
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar44 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *(ulonglong *)(lVar6 + -0x7e8) = (uVar43 ^ *puVar48) >> ((bVar28 ^ 0xdc) & 0x3f) ^ uVar22;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar6 - (uVar17 ^ 0xa3981200)) =
       CONCAT44(DAT_182671e48,DAT_182671e48) ^
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0x588) ^ uVar44);
  uVar12 = DAT_182671d08;
  uVar22 = *(ulonglong *)(lVar6 + -0x7e8) ^ uVar22;
  uVar49 = (ulonglong)DAT_182671d08;
  uVar43 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *puVar3 = (*(ulonglong *)(lVar6 - (uVar47 ^ 0x6f279554)) ^ uVar38 | uVar22) ^ uVar44;
  *(ulonglong *)(lVar6 - (uVar18 ^ 0x8ebb1db)) =
       (uVar50 ^ *(ulonglong *)(lVar6 + -0x828)) << ((byte)uVar22 & 0x3f);
  uVar22 = *puVar3 ^ uVar43 ^ uVar44 ^ uVar35 ^ *(ulonglong *)(lVar6 + -0xb08);
  *(ulonglong *)(lVar6 + -0xc18) = uVar22;
  uVar38 = (*(ulonglong *)(lVar5 - (uVar25 ^ 0xb5d30ec3)) ^ uVar23) + (uVar22 ^ uVar43) ^ uVar50;
  uVar22 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar5 + -0x110) = uVar38;
  uVar23 = (*(ulonglong *)(lVar5 - (uVar18 ^ 0x8ebb9cb)) ^ uVar43) << ((bVar19 ^ 0x96) & 0x3f);
  uVar44 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *puVar2 = uVar23 ^ uVar22;
  uVar22 = *(ulonglong *)(lVar5 - (uVar17 ^ 0xa3981aa0)) >> 0x12 ^
           ((ulonglong)(uVar12 >> 0x12) | uVar49 << 0xe);
  *(ulonglong *)(lVar5 + -0x380) = uVar22 ^ uVar44;
  uVar49 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *puVar1 = (uVar23 | uVar22) ^ uVar49;
  uVar43 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x6f279424)) =
       *(ulonglong *)(lVar5 - (uVar36 ^ 0xb7fe3c66)) ^ uVar38 ^ uVar43 ^ uVar49 ^ uVar50;
  uVar7 = DAT_182671c78;
  bVar40 = (byte)uVar9;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c78 ^ 0xb6e62966)) =
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0xb5d303e3)) ^ uVar35) +
       (uVar42 ^ *(ulonglong *)(lVar5 + -0x2b0)) ^ uVar24;
  uVar23 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar5 - (uVar17 ^ 0xa39811d8)) =
       (uVar42 ^ *(ulonglong *)(lVar5 + -0x2b0)) << ((bVar40 ^ 0xaf) & 0x3f) ^ uVar23;
  uVar22 = (uVar42 ^ *(ulonglong *)(lVar5 + -0x2b0)) >> ((bVar40 ^ 0x97) & 0x3f);
  *(ulonglong *)(lVar5 + -0x7c0) = uVar22 ^ CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar15 = DAT_182671f64;
  *(ulonglong *)(lVar5 + -0x888) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xb6e62476)) ^ uVar23 | uVar22) ^ uVar32;
  uVar11 = DAT_182671df0;
  uVar23 = CONCAT44(uVar15,uVar15);
  uVar22 = *(ulonglong *)(lVar5 - (uVar18 ^ 0x8ebbfa3)) ^
           *(ulonglong *)(lVar5 - (uVar17 ^ 0xa3981e30)) ^ uVar23 ^ uVar24 ^ uVar32;
  *(ulonglong *)(lVar5 + -0x4b8) = uVar22;
  uVar7 = DAT_182671c78;
  uVar35 = CONCAT44(uVar11,uVar11);
  puVar46 = (ulonglong *)(lVar5 - (uVar36 ^ 0xb7fe3dee));
  *puVar46 = (*(ulonglong *)(lVar5 + -0x110) ^ uVar50) + (uVar22 ^ uVar23) ^ uVar35;
  lVar5 = DAT_182671c40;
  uVar42 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0x8ebbdfb)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x1b96e27f)) ^ uVar23) << ((bVar19 ^ 0x82) & 0x3f)
       ^ uVar42;
  uVar23 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar5 + -0x7e8) =
       (uVar32 ^ *(ulonglong *)(lVar5 + -0x888)) >> ((bVar40 ^ 0x97) & 0x3f);
  uVar11 = DAT_182671d04;
  uVar22 = ((ulonglong)uVar15 << 0x1a | (ulonglong)(uVar15 >> 6)) ^
           *(ulonglong *)(lVar5 + -0x4b8) >> 6;
  *(ulonglong *)(lVar5 + -0x408) = uVar22 ^ uVar23;
  uVar23 = CONCAT44(uVar11,uVar11);
  *puVar3 = (uVar42 ^ *(ulonglong *)(lVar5 + -0x828) | uVar22) ^ uVar23;
  uVar11 = DAT_182671e9c;
  *(ulonglong *)(lVar5 + -0x628) =
       (CONCAT44(uVar7,uVar29) ^ 0x62b96cabd9b1c99c) + (*(ulonglong *)(lVar5 + -0x380) ^ uVar44);
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar25 ^ 0xb5d3081b)) =
       *(ulonglong *)(lVar5 - (uVar18 ^ 0x8ebbecb)) ^ uVar32 ^ uVar23 ^ uVar35 ^
       *(ulonglong *)(lVar5 + -0xa50);
  *puVar30 = (uVar24 ^ *(ulonglong *)(lVar5 + -0xa70)) >>
             (((byte)uVar12 ^ *(byte *)(lVar5 + -0xc18)) & 0x3f);
  uVar13 = DAT_182671d34;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0xb08) =
       (*(ulonglong *)(lVar5 - (uVar39 ^ 0xb81692d3)) ^ uVar24) +
       (uVar43 ^ *(ulonglong *)(lVar5 + -0xb20)) ^ uVar31;
  uVar11 = DAT_182671d18;
  uVar23 = (uVar43 ^ *(ulonglong *)(lVar6 + -0xb20)) << ((bVar40 ^ 0xb5) & 0x3f);
  *(ulonglong *)(lVar6 + -0x2b0) = uVar23 ^ CONCAT44(uVar13,uVar13);
  uVar44 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 + -0x760) =
       (uVar43 ^ *(ulonglong *)(lVar6 + -0xb20)) >> ((local_128 ^ 0xed) & 0x3f) ^ uVar44;
  *(ulonglong *)(lVar6 + -0x7c0) =
       CONCAT44(uVar33,uVar37) ^ 0x66f964dc10eb9e96 | CONCAT44(uVar33,uVar37) ^ 0xc870951d64305b13;
  uVar22 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar6 - (uVar21 ^ 0xa39817a8)) =
       (*(ulonglong *)(lVar6 - (uVar27 ^ 0x1b96e1a7)) ^ uVar44 | uVar23) ^ uVar22;
  uVar11 = DAT_182671d3c;
  lVar5 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  uVar22 = *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x1b96edcf)) ^ uVar25 ^ uVar22 ^
           *(ulonglong *)(DAT_182671c40 + -0x110) ^ uVar31;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar22;
  uVar42 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x7e8) = (uVar35 ^ *puVar46) + (uVar22 ^ uVar25) ^ uVar42;
  *puVar34 = (uVar25 ^ uVar22) << (((byte)uVar8 ^ 0xcb) & 0x3f) ^ uVar44;
  lVar5 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar22 = (uVar25 ^ *(ulonglong *)(DAT_182671c40 + -0x888)) >> ((bVar28 ^ 0xe3) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar22 ^ CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar24 = CONCAT44(DAT_182671d98,DAT_182671d98);
  uVar22 = (*(ulonglong *)(lVar5 - (uVar47 ^ 0x6f279bbc)) ^ uVar44 | uVar22) ^ uVar23;
  *(ulonglong *)(lVar5 + -0x408) = uVar22;
  uVar13 = DAT_182671f6c;
  *(ulonglong *)(lVar5 + -0x380) =
       *(ulonglong *)(lVar5 - (uVar45 ^ 0x74b17e2b)) ^ uVar24 ^ uVar23 ^ uVar42 ^ uVar22;
  uVar11 = DAT_182671ec0;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar22 = *puVar2;
  uVar23 = *puVar2;
  *(ulonglong *)(lVar5 + -0x628) =
       (uVar31 ^ *(ulonglong *)(lVar5 + -0xb08)) + (uVar32 ^ *puVar2) ^ uVar35;
  uVar23 = (uVar32 ^ uVar23) << ((bVar19 ^ 0x98) & 0x3f);
  *puVar3 = uVar23 ^ CONCAT44(uVar11,uVar11);
  uVar22 = (uVar32 ^ uVar22) >> ((bVar19 ^ 0x98) & 0x3f);
  *puVar1 = uVar22 ^ CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar44 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *(ulonglong *)(DAT_182671c40 + -0xc18) = (uVar22 | uVar23) ^ uVar44;
  uVar7 = DAT_182671c78;
  lVar5 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(DAT_182671c40 + -0xa70) =
       CONCAT44(uVar8,DAT_182671c78) ^ uVar25 ^ *(ulonglong *)(DAT_182671c40 + -0x888) ^
       0x13ad2c901e077368;
  uVar22 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x1b96ede7)) =
       *(ulonglong *)(lVar5 - (uVar23 ^ 0xb6e6253e)) ^ *(ulonglong *)(lVar5 - (uVar39 ^ 0xb81694bb))
       ^ uVar22 ^ uVar44 ^ uVar35;
  uVar39 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar23 = (CONCAT44(uVar33,uVar9) ^ 0x39cf732039265b36) + (uVar22 ^ *(ulonglong *)(lVar5 + -0xb20))
  ;
  uVar22 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar5 + -0x7c0) = uVar23 ^ uVar39;
  *(ulonglong *)(lVar5 + -0x2b0) =
       (CONCAT44(uVar8,uVar37) ^ 0xd2b5276157495b41) + (uVar42 ^ *(ulonglong *)(lVar5 + -0x7e8)) ^
       uVar22;
  uVar25 = CONCAT44(DAT_182671de4,DAT_182671de4);
  *(ulonglong *)(lVar5 - (uVar36 ^ 0xb7fe30de)) =
       (*(ulonglong *)(lVar5 - (uVar45 ^ 0x74b17b73)) ^ uVar22) + uVar23 ^ uVar25;
  uVar36 = CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar23 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar5 + -0x110) =
       (*(ulonglong *)(lVar5 + -0x7c0) ^ uVar39) << ((local_110 ^ 10) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar5 + -0xa50) =
       (*(ulonglong *)(lVar5 + -0x7c0) ^ uVar39) >> ((bVar20 ^ 0x8a) & 0x3f) ^ uVar23;
  *(uint *)(lVar5 - (uVar18 ^ 0x8ebb7af)) =
       (uVar7 ^ 0x31f6d402) << ((byte)*(undefined4 *)(lVar5 + -0x1c8) & 0x1f);
  uVar22 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0xa3981200)) =
       (*(ulonglong *)(lVar5 + -0xa50) ^ uVar23 | *(ulonglong *)(lVar5 + -0x110) ^ uVar36) ^ uVar22;
  uVar36 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *(ulonglong *)(lVar5 + -0x828) =
       CONCAT44(DAT_182671f8c,DAT_182671f8c) ^ *(ulonglong *)(lVar5 + -0x4b8) ^ uVar22 ^ uVar25 ^
       *(ulonglong *)(lVar5 + -0x760);
  uVar23 = (uVar24 ^ *(ulonglong *)(lVar5 + -0x380)) +
           (CONCAT44(uVar29,uVar29) ^ 0x547f41466e6b8706);
  *(ulonglong *)(lVar5 + -0x408) = uVar23 ^ uVar36;
  *(ulonglong *)(lVar5 + -0xb08) = CONCAT44(uVar10,uVar41) ^ 0x8010a11044c1240 | 0x73e661eef880c5a9;
  uVar22 = (*(ulonglong *)(lVar5 - (uVar17 ^ 0xa3981090)) ^ uVar35) +
           (CONCAT44(uVar33,uVar29) ^ 0x8b27f33a5438b918);
  *puVar2 = uVar22 ^ uVar26;
  *puVar3 = uVar22 + uVar23 ^ CONCAT44(DAT_182671e8c,DAT_182671e8c);
  *puVar1 = uVar23 << (((byte)(uVar8 >> 0x10) ^ 0xc3) & 0x3f) ^
            CONCAT44(DAT_182671e90,DAT_182671e90);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar4 ^ uVar41) * 4) = uVar16;
  return;
}



############ FUN_ 180f47020 size=2900 ############

void FUN_180f47020(void)

{
  ulonglong *puVar1;
  byte bVar2;
  undefined1 uVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  undefined1 *puVar16;
  ulonglong uVar17;
  byte *pbVar18;
  uint uVar19;
  uint uVar20;
  longlong lVar21;
  longlong *plVar22;
  longlong lVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  undefined1 *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  
  uVar9 = DAT_182671c74;
  uVar8 = DAT_182671c68;
  uVar7 = DAT_182671c5c;
  uVar4 = DAT_182671c48;
  lVar23 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c5c;
  uVar28 = (ulonglong)DAT_182671c68;
  uVar15 = DAT_182671c5c - DAT_182671c68;
  uVar19 = *(uint *)(&DAT_182613218 + DAT_182672168) ^ DAT_182671c68;
  uVar13 = *(uint *)(&DAT_182613220 + DAT_182672168) ^ DAT_182671c5c;
  uVar32 = (ulonglong)DAT_182671c68;
  uVar17 = (ulonglong)DAT_182671c48;
  uVar25 = (ulonglong)uVar15;
  puVar31 = (undefined1 *)(DAT_182671c40 - (uVar25 ^ 0xe3f4fdac));
  DAT_182671c54 = uVar15;
  *puVar31 = **(undefined1 **)(DAT_182671c40 + -0x428);
  uVar27 = *(ulonglong *)(lVar23 + -0xc90);
  *(ulonglong *)(lVar23 + -0x888) = (ulonglong)*(byte *)(lVar23 + -0x2e9);
  bVar24 = (byte)uVar7;
  uVar26 = *(longlong *)(lVar23 - ((ulonglong)uVar15 ^ 0xe3f4f7cd)) << ((bVar24 ^ 0x15) & 0x3f);
  *(longlong *)(lVar23 + -0x110) = 0x68f0b0fb4e0c8bd8 << ((byte)uVar27 & 0x3f);
  *(ulonglong *)(lVar23 + -0xa08) = uVar26;
  puVar16 = (undefined1 *)
            ((CONCAT44(uVar8,uVar15) ^ 0xf8f9f9f8e3f4ff53) + *(longlong *)(lVar23 + 0x30));
  *(undefined1 **)(lVar23 + -0x428) = puVar16;
  *(ulonglong *)(lVar23 + -0xda8) = uVar26 | uVar27;
  *(undefined1 *)(lVar23 + -0x2e9) = *puVar16;
  *(ulonglong *)(lVar23 - ((ulonglong)uVar7 ^ 0xdceefed5)) =
       (CONCAT44(uVar8,uVar7) ^ 0xf8cfb7dc00764862) + uVar27;
  *(ulonglong *)(lVar23 + -0xc38) = (ulonglong)*(byte *)(lVar23 + -0x2e9);
  *(ulonglong *)(lVar23 + -0xd88) = (ulonglong)*(byte *)(lVar23 + -0x2e9) << 0x30;
  *(longlong *)(lVar23 + -0xc18) =
       *(longlong *)(lVar23 - (uVar17 ^ 0xdf6efac8)) + *(longlong *)(lVar23 + -0xda8);
  lVar23 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0x2091088f)) =
       (CONCAT44(uVar15,uVar9) ^ 0xe6969982249db9e4) + (CONCAT44(uVar8,uVar4) ^ 0xfae90f4246fc583d);
  puVar16 = (undefined1 *)
            ((CONCAT44(uVar8,uVar7) ^ 0xf8f9f9f8dceef92a) +
            *(longlong *)(((ulonglong)uVar15 ^ 0xe3f4ff75) + lVar23));
  *(undefined1 **)(lVar23 + -0x428) = puVar16;
  *(ulonglong *)(lVar23 + -0x680) =
       (CONCAT44(uVar9,uVar15) ^ 0x6b804aac8205ed9f) >>
       ((byte)*(undefined8 *)(lVar23 + -0x110) & 0x3f);
  *puVar31 = *puVar16;
  uVar20 = DAT_182671c48;
  uVar29 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar23 + -0x960) = (ulonglong)*(byte *)(lVar23 + -0x2e9);
  lVar21 = (ulonglong)*(byte *)(lVar23 + -0x2e9) << ((bVar24 ^ 5) & 0x3f);
  *(longlong *)(lVar23 + -0x228) = lVar21;
  *(longlong *)(lVar23 - (uVar25 ^ 0xe3f4f53d)) =
       *(longlong *)(lVar23 + -0xda8) << ((byte)lVar21 & 0x3f);
  uVar27 = *(longlong *)(lVar23 + -0x228) + *(longlong *)(lVar23 + -0xc18);
  plVar22 = (longlong *)(DAT_182671c40 - (uVar32 ^ 0xf8f9fde0));
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar27;
  puVar1 = (ulonglong *)(*plVar22 + (CONCAT44(uVar9,uVar20) ^ 0x209108bfdf6ef742) * 8);
  *(ulonglong **)(DAT_182671c40 + -0x588) = puVar1;
  uVar17 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *puVar1 = uVar17 ^ uVar27;
  lVar23 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0xdceefd15)) =
       (CONCAT44(uVar7,uVar8) ^ 0xdceef93df8f9f9e0) +
       *(longlong *)(((ulonglong)uVar20 ^ 0xdf6ef770) + DAT_182671c40);
  bVar2 = **(byte **)(lVar23 - (uVar32 ^ 0xf8f9fdd0));
  *(byte *)(lVar23 + -0x2e9) = bVar2;
  *(ulonglong *)(lVar23 + -0x828) =
       (CONCAT44(uVar20,uVar7) ^ 0xd256e20d4b0bfd07) + *(longlong *)(lVar23 + -0xb08);
  uVar6 = DAT_182671c50;
  *(ulonglong *)(lVar23 - (uVar25 ^ 0xe3f4fbfd)) = (ulonglong)bVar2;
  *(ulonglong *)(lVar23 + -0xbd8) =
       *(ulonglong *)(lVar23 - ((ulonglong)uVar9 ^ 0x20910c07)) ^ *(ulonglong *)(lVar23 + -0x510);
  pbVar18 = (byte *)(*(longlong *)(lVar23 + 0x30) + 0x19);
  *(byte **)(lVar23 + -0x428) = pbVar18;
  uVar5 = DAT_182671c4c;
  bVar2 = *pbVar18;
  uVar34 = (ulonglong)DAT_182671c4c;
  *(byte *)(lVar23 + -0x2e9) = bVar2;
  *(ulonglong *)(lVar23 + -0xa50) = (ulonglong)bVar2;
  *(uint *)(lVar23 + -0x634) = (uVar7 ^ 0x1c236fb) >> (((byte)DAT_182671c54 ^ 0x54) & 0x1f);
  uVar27 = (ulonglong)bVar2 << ((bVar24 ^ 0x35) & 0x3f);
  *(ulonglong *)(lVar23 + -0x760) = uVar27;
  uVar27 = uVar27 | *(ulonglong *)(lVar23 + -0x4b8);
  puVar16 = (undefined1 *)
            ((CONCAT44(uVar15,uVar7) ^ 0xe3f4ff45dceef927) + *(longlong *)(lVar23 + 0x30));
  *(undefined1 **)(lVar23 + -0x428) = puVar16;
  *(ulonglong *)(lVar23 + -0xb18) = uVar27;
  *(undefined1 *)(lVar23 + -0x2e9) = *puVar16;
  *(ulonglong *)(lVar23 + -0x3d8) = (ulonglong)*(byte *)(lVar23 - (uVar30 ^ 0xdceefbd4));
  uVar10 = DAT_182671c7c;
  uVar33 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar23 + -0xa60) =
       CONCAT44(uVar9,uVar6) ^ 0x75f5fd2daef4849e | CONCAT44(uVar5,uVar8) ^ 0xf30f6d9bb8175334;
  lVar21 = *(longlong *)(lVar23 - (uVar29 ^ 0xdf6ef498)) << (((byte)uVar10 ^ 0xcc) & 0x3f);
  *(longlong *)(lVar23 + -0x5e8) = lVar21;
  *(ulonglong *)(lVar23 + -0x408) =
       *(ulonglong *)(lVar23 - ((ulonglong)uVar20 ^ 0xdf6ef2a8)) | uVar27;
  uVar11 = DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 + -0x428) =
       (CONCAT44(DAT_182671c8c,uVar7) ^ 0x408bbb60dceef926) +
       *(longlong *)((uVar28 ^ 0xf8f9f9c8) + DAT_182671c40);
  uVar5 = DAT_182671c58;
  lVar23 = DAT_182671c40;
  bVar14 = (byte)DAT_182671c58;
  *(longlong *)(DAT_182671c40 - (uVar25 ^ 0xe3f4ffb5)) = lVar21 << (((byte)uVar4 ^ 0x43) & 0x3f);
  bVar2 = **(byte **)(lVar23 + -0x428);
  lVar21 = (ulonglong)bVar2 << ((bVar14 ^ 0x58) & 0x3f);
  *(longlong *)(lVar23 + -0x888) = lVar21;
  *(byte *)(lVar23 + -0x2e9) = bVar2;
  *(ulonglong *)(lVar23 + -0x920) = (ulonglong)bVar2;
  *(uint *)(lVar23 + -0x58c) = (uVar9 ^ 0x6eddacdb) >> (((byte)uVar6 ^ 0x45) & 0x1f);
  *(ulonglong *)(lVar23 - ((ulonglong)DAT_182671c70 ^ 0xd8eeb225)) =
       lVar21 - (CONCAT44(uVar10,uVar20) ^ 0x55bca09fdedba2ef);
  uVar27 = *(ulonglong *)(lVar23 + -0x888) | *(ulonglong *)(lVar23 + -0x408);
  *(ulonglong *)(lVar23 + -0xc90) = uVar27;
  uVar12 = DAT_182671c94;
  *(ulonglong *)(lVar23 - (uVar28 ^ 0xf8f9fe10)) = *(ulonglong *)(lVar23 + -0xa08) | uVar27;
  pbVar18 = (byte *)((CONCAT44(uVar12,uVar15) ^ 0x40b80800e3f4ff59) + *(longlong *)(lVar23 + 0x30));
  *(byte **)(lVar23 + -0x428) = pbVar18;
  bVar2 = *pbVar18;
  *(byte *)(lVar23 + -0x2e9) = bVar2;
  *(ulonglong *)(lVar23 + -0xc38) = (ulonglong)bVar2;
  lVar21 = DAT_182671c40;
  uVar27 = (ulonglong)bVar2 << ((bVar24 ^ 0x1d) & 0x3f);
  *(ulonglong *)(lVar23 + -0xd88) = uVar27;
  uVar4 = DAT_182671c60;
  uVar26 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar21 + -0x30) = 0xadefd7f1cb1bc7f7 >> (((byte)uVar15 ^ 0x5a) & 0x3f);
  uVar12 = DAT_182671ce8;
  uVar10 = DAT_182671c78;
  lVar23 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(DAT_182671c40 + -0x110) = *(ulonglong *)(lVar21 - (uVar29 ^ 0xdf6efbd0)) | uVar27;
  uVar29 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar23 - ((ulonglong)DAT_182671c6c ^ 0x38f16e5c)) =
       *(ulonglong *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar23 + -0x2e8)) ^ uVar29;
  lVar21 = DAT_182671c40;
  lVar23 = *(longlong *)(lVar23 + 0x30);
  puVar16 = (undefined1 *)((CONCAT44(uVar10,uVar11) ^ 0xdc68f138408bbb7d) + lVar23);
  *(undefined1 **)(DAT_182671c40 + -0x6f8) = puVar16;
  *(undefined1 *)(lVar21 + -0x2e9) = *puVar16;
  uVar27 = (ulonglong)*(byte *)(lVar21 - ((ulonglong)uVar5 ^ 0x60bb89a9));
  *(ulonglong *)(lVar21 + -0x960) = uVar27;
  uVar27 = uVar27 << ((bVar14 ^ 0x68) & 0x3f);
  *(ulonglong *)(lVar21 + -0xda8) = uVar27;
  *(ulonglong *)(lVar21 + -0x6f8) = (CONCAT44(uVar8,DAT_182671c64) ^ 0xf8f9f9f8d4b85892) + lVar23;
  *(ulonglong *)(lVar21 + -0xa78) = uVar27 | *(ulonglong *)(lVar21 + -0x110);
  uVar11 = DAT_182671fac;
  bVar2 = **(byte **)(lVar21 - ((ulonglong)DAT_182671c64 ^ 0xd4b85e74));
  *(byte *)(lVar21 + -0x2e9) = bVar2;
  *(ulonglong *)(lVar21 + -0xc18) = (ulonglong)bVar2;
  *(ulonglong *)(lVar21 - (uVar34 ^ 0xb82ddac6)) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar21 + -0x610)) ^ uVar29;
  lVar23 = *(longlong *)(lVar21 + -0xc18) << (((byte)uVar8 ^ 200) & 0x3f);
  *(longlong *)(lVar21 + -0x828) = lVar23;
  *(longlong *)(lVar21 + -0x510) = *(longlong *)(lVar21 - (uVar28 ^ 0xf8f9f380)) + lVar23;
  *(ulonglong *)(lVar21 + -0x370) =
       (CONCAT44(uVar20,DAT_182671c64) ^ 0xdf6ef740d4b85893) +
       *(longlong *)((uVar32 ^ 0xdc68f108) + lVar21);
  bVar2 = **(byte **)(lVar21 - ((ulonglong)uVar4 ^ 0xd4b85bfc));
  *(byte *)(lVar21 + -0x2e9) = bVar2;
  *(ulonglong *)(lVar21 - ((ulonglong)DAT_182671c64 ^ 0xd4b85354)) = (ulonglong)bVar2;
  *(ulonglong *)(lVar21 + -0xa50) =
       (CONCAT44(uVar9,uVar7) ^ 0x5d864a5bc265c265) - *(longlong *)(lVar21 + -0xbd8);
  *(longlong *)(lVar21 + -0x760) = *(longlong *)(lVar21 + -0xbd8) << (((byte)uVar15 ^ 0x7d) & 0x3f);
  uVar4 = DAT_182671c90;
  uVar27 = *(longlong *)(lVar21 - (uVar30 ^ 0xdceefe5d)) + *(longlong *)(lVar21 + -0x510);
  uVar30 = CONCAT44(DAT_182671c90,uVar15);
  *(ulonglong *)(lVar21 + -0x4b8) = uVar27;
  *(longlong *)(lVar21 + -0xb98) = *(longlong *)(lVar21 + -0x418) + 0x18;
  **(ulonglong **)(lVar21 - (uVar26 ^ 0xd4b85314)) = uVar17 ^ uVar27;
  uVar20 = uVar4 & DAT_182671c54;
  DAT_182671c64 = uVar20;
  *(ulonglong *)(lVar21 + -0xa60) =
       CONCAT44(DAT_182671c88,uVar15) ^ *(ulonglong *)(lVar21 + -0xbd8) ^ 0x3f734640af94a885;
  puVar16 = (undefined1 *)
            ((CONCAT44(uVar6,uVar8) ^ 0x9e6f025cf8f9f9d8) +
            *(longlong *)((uVar33 ^ 0x3df9eeec) + lVar21));
  *(undefined1 **)(lVar21 + -0x370) = puVar16;
  *(undefined1 *)(lVar21 + -0x2e9) = *puVar16;
  uVar3 = **(undefined1 **)(lVar21 + -0x6f8);
  *(ulonglong *)(lVar21 + -0x3d8) = (ulonglong)*(byte *)(lVar21 + -0x2e9);
  *(undefined1 *)(lVar21 + -0x6b9) = uVar3;
  *(ulonglong *)(lVar21 + -0x370) =
       (CONCAT44(uVar15,uVar20) ^ 0xe3f4ff45e1b0ff65) + *(longlong *)(lVar21 + 0x30);
  *(undefined1 *)(lVar21 - ((ulonglong)uVar4 ^ 0xe9bbf957)) = **(undefined1 **)(lVar21 + -0x428);
  *(undefined1 *)(lVar21 + -0x2e9) = **(undefined1 **)(lVar21 + -0x370);
  plVar22 = (longlong *)(lVar21 - (uVar25 ^ 0xe3f4f45d));
  *plVar22 = (uVar30 ^ 0x3a041e0a22aeed68) - *(longlong *)(lVar21 + -0xa50);
  bVar2 = *(byte *)(lVar21 + -0x2e9);
  *(ulonglong *)(lVar21 - ((ulonglong)uVar20 ^ 0xe1b0faac)) = (ulonglong)bVar2;
  uVar27 = (ulonglong)bVar2 << (((byte)uVar20 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar21 + -0xf0) = uVar27;
  *(longlong *)(lVar21 + -0x920) = *plVar22 + 0x2323c4731ee6bec8;
  *(ulonglong *)(lVar21 + -0x408) = uVar27 | *(ulonglong *)(lVar21 + -0x3d8);
  *(ulonglong *)(lVar21 - (uVar25 ^ 0xe3f4f9bd)) =
       (uVar30 ^ 0xe9bbffeee3f4ff67) + *(longlong *)(lVar21 + 0x30);
  *(undefined1 *)(lVar21 + -0x6b9) = **(undefined1 **)(lVar21 + -0x6f8);
  *(ulonglong *)(lVar21 + -0x888) =
       (CONCAT44(uVar20,uVar4) ^ 0x6dd7e1b2af5b6f39) - *(longlong *)(lVar21 + -0xf0);
  uVar27 = (ulonglong)*(byte *)(lVar21 - ((ulonglong)uVar20 ^ 0xe1b0f9fd));
  *(ulonglong *)(lVar21 + -0xa08) = uVar27;
  uVar27 = uVar27 << 0x10;
  *(ulonglong *)(lVar21 + -0x7e8) = uVar27;
  *(ulonglong *)(lVar21 + -0xc38) = uVar27 | *(ulonglong *)(lVar21 + -0x408);
  lVar23 = *(longlong *)(lVar21 + 0x30);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar19;
  *(longlong *)(lVar21 + -0x428) = lVar23 + 0x23;
  return;
}



############ FUN_ 18100a610 size=5388 ############

void FUN_18100a610(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong *puVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  byte local_res18;
  
  uVar7 = DAT_182671c94;
  uVar3 = DAT_182671c64;
  lVar1 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c88;
  uVar23 = (ulonglong)DAT_182671c94;
  uVar26 = DAT_182671c88 & DAT_182671c94;
  DAT_182671c78 = uVar26 ^ 0xb6e62316;
  uVar15 = (DAT_182671c64 << 0x10 | DAT_182671c64 & 0xff00) << 8 | DAT_182671c64 >> 8 & 0xff00 |
           DAT_182671c64 >> 0x18;
  uVar32 = (ulonglong)uVar15;
  uVar10 = *(uint *)(&DAT_182613210 + (uVar32 ^ 0xa39816b0) + (longlong)DAT_1826720c8) ^
           DAT_182671c64;
  uVar11 = *(uint *)(&DAT_182613210 + (uVar20 ^ 0xca394e1) + (longlong)DAT_1826720c8) ^
           DAT_182671c78;
  uVar25 = (ulonglong)DAT_182671c78;
  bVar13 = (byte)DAT_182671c78;
  uVar16 = CONCAT44(DAT_182671d9c,DAT_182671d9c) ^ *(ulonglong *)(DAT_182671c40 + -0x2b0);
  uVar35 = (ulonglong)DAT_182671c64;
  uVar29 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar17 = CONCAT44(DAT_182671c64,uVar26);
  DAT_182671c4c = uVar15;
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar16 << 0x16 ^ uVar29;
  uVar12 = DAT_182671d10;
  uVar27 = CONCAT44(DAT_182671d10,DAT_182671d10);
  *(ulonglong *)(lVar1 + -0x7c0) = uVar16 >> ((bVar13 ^ 0x3c) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0xf35c6d26)) =
       (CONCAT44(DAT_182671c88,uVar3) ^ 0xaf24de83ad16ffc8) << (((byte)uVar26 ^ 0x1c) & 0x3f);
  uVar8 = DAT_182671d18;
  uVar24 = CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar29 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar15 ^ 0xa3981178)) ^ uVar27 |
           *(ulonglong *)(lVar1 + -0xb20) ^ uVar29) ^ uVar24;
  *(ulonglong *)(lVar1 + -0xb08) = uVar29;
  uVar9 = DAT_182671eb8;
  uVar4 = DAT_182671dd4;
  lVar1 = DAT_182671c40;
  uVar34 = CONCAT44(uVar7,uVar15);
  uVar28 = (ulonglong)DAT_182671dd4;
  puVar14 = (ulonglong *)(DAT_182671c40 + -0x760);
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xb816908b)) ^ CONCAT44(uVar8,uVar8) |
       uVar34 ^ 0x6bf4216e5a07448f;
  uVar8 = DAT_182671e20;
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar16 = CONCAT44(uVar4,uVar4);
  uVar21 = CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar24 = *puVar14 ^ uVar29 ^ uVar19 ^ uVar16 ^ uVar24;
  *(ulonglong *)(lVar1 + -0xa50) = uVar24;
  uVar9 = DAT_182671f58;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 + -0x4b8) =
       (uVar24 ^ uVar16) + (*(ulonglong *)(lVar1 + -0x110) ^ uVar21) ^ uVar29;
  local_res18 = (byte)uVar7;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0xc18) = (uVar24 ^ uVar16) << ((local_res18 ^ 0x2e) & 0x3f) ^ uVar22;
  uVar18 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *(ulonglong *)(lVar1 + -0x7e8) = uVar24 >> 0x20 ^ uVar18 ^ uVar28;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0xb6e623e6)) =
       (*(ulonglong *)(lVar1 + -0x760) ^ uVar19) >> (((byte)uVar3 ^ 0xa1) & 0x3f);
  uVar8 = DAT_182671f20;
  uVar4 = DAT_182671f18;
  lVar2 = DAT_182671c40;
  uVar24 = uVar18 ^ *(ulonglong *)(lVar1 + -0x7e8) | uVar22 ^ *(ulonglong *)(lVar1 + -0xc18);
  uVar30 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar28 = (ulonglong)DAT_182671f18;
  *(ulonglong *)(lVar1 + -0x408) = uVar24 ^ uVar30;
  uVar33 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xb18) =
       *(ulonglong *)(lVar2 - (uVar20 ^ 0xca390f9)) ^ *(ulonglong *)(lVar2 + -0x4b8) ^ uVar33 ^
       uVar30 ^ uVar29;
  lVar1 = DAT_182671c40;
  uVar16 = CONCAT44(uVar4,uVar4);
  uVar22 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(DAT_182671c40 + -0xa70) =
       (*(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xb6e628ce)) ^ uVar16) +
       (*(ulonglong *)(DAT_182671c40 + -0x760) ^ uVar19) ^ uVar22;
  uVar8 = DAT_182671cd0;
  *(ulonglong *)(lVar1 + -0x888) = uVar24 | uVar34 ^ 0xb67e4479acfccded;
  uVar19 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 + -0x2b0) =
       (*(ulonglong *)(lVar1 + -0xbd8) ^ uVar16) << (((byte)uVar3 ^ 0x83) & 0x3f) ^ uVar19;
  uVar16 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar1 + -0x628) = *(ulonglong *)(lVar1 + -0xbd8) >> 0x20 ^ uVar16 ^ uVar28;
  uVar28 = CONCAT44(DAT_182671f80,DAT_182671f80);
  puVar31 = (ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xb8169383));
  uVar24 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *puVar31 = (*(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xa3981090)) ^ uVar16 |
             *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xb8169a13)) ^ uVar19) ^ uVar28;
  lVar1 = DAT_182671c40;
  puVar36 = (ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xb6e624d6));
  *puVar36 = *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xa3981d98)) ^
             *(ulonglong *)(DAT_182671c40 + -0xa70) ^ uVar24 ^ uVar28 ^ uVar22;
  *(ulonglong *)(lVar1 + -0x380) = *(ulonglong *)(lVar1 + -0x888) | 0xf782de71a9480cc8;
  uVar19 = (uVar24 ^ *(ulonglong *)(lVar1 + -0x7c0)) + (uVar34 ^ 0x68816b529f71ceee);
  uVar24 = uVar19 ^ uVar27;
  *(ulonglong *)(lVar1 + -0xb08) = CONCAT44(uVar7,DAT_182671c88) ^ 0xf973edb9b8514cac;
  uVar9 = DAT_182671e90;
  *(ulonglong *)(lVar1 + -0x828) = uVar24;
  uVar8 = DAT_182671e50;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x110) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0xca39049)) ^ uVar29) + (uVar17 ^ 0xc4463c328fbb92a8) ^
       uVar16;
  uVar34 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 + -0xa50) =
       (uVar18 ^ *(ulonglong *)(lVar1 + -0x7e8)) >> (((byte)uVar24 ^ (byte)uVar12) & 0x3f);
  uVar12 = DAT_182671c64;
  bVar13 = (byte)(uVar3 >> 0x18);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c64 ^ 0xb8169853)) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0xca395e1)) ^ uVar16) + uVar19 ^ uVar34;
  lVar1 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xf35c6716)) =
       (*(ulonglong *)(DAT_182671c40 + -0x828) ^ uVar27) << ((bVar13 ^ 0xb6) & 0x3f) ^ uVar29;
  uVar16 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar1 - (uVar25 ^ 0xb6e62476)) =
       (*(ulonglong *)(lVar1 + -0x828) >> 0x20 ^ (ulonglong)DAT_182671d10) >> 0x12 ^ uVar16;
  uVar17 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar1 + -0x408) =
       (*(ulonglong *)(lVar1 + -0x760) ^ uVar16 | uVar29 ^ *(ulonglong *)(lVar1 + -0xc18)) ^ uVar17;
  uVar27 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar1 + -0xbd8) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar12 ^ 0xb8169cab)) ^ *(ulonglong *)(lVar1 + -0xf0) ^
       uVar27 ^ uVar17 ^ uVar34;
  uVar9 = DAT_182671f94;
  lVar1 = DAT_182671c40;
  uVar16 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (CONCAT44(DAT_182671c88,uVar26) ^ 0x75304f78f15402f8) +
       (*(ulonglong *)(DAT_182671c40 + -0xb18) ^ uVar33) ^ uVar16;
  uVar8 = DAT_182671efc;
  uVar17 = (CONCAT44(uVar26,uVar15) ^ 0x1d005cc7cbd5e1a5) +
           (*(ulonglong *)(lVar1 + -0xa70) ^ uVar22);
  *(ulonglong *)(lVar1 + -0x628) = uVar17 ^ CONCAT44(uVar9,uVar9);
  uVar29 = CONCAT44(uVar8,uVar8);
  *puVar31 = (*(ulonglong *)(lVar1 - (uVar20 ^ 0xca39641)) ^ uVar16) + uVar17 ^ uVar29;
  uVar17 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *(ulonglong *)(lVar1 - (uVar20 ^ 0xca39771)) =
       (uVar16 ^ *(ulonglong *)(lVar1 + -0x2b0)) << ((local_res18 ^ 0x1e) & 0x3f) ^ uVar17;
  uVar18 = (uVar16 ^ *(ulonglong *)(lVar1 + -0x2b0)) >> (((byte)uVar12 ^ 0x93) & 0x3f);
  puVar14 = (ulonglong *)(lVar1 - ((ulonglong)DAT_182671c8c ^ 0x5e2e363b));
  *(ulonglong *)(lVar1 + -0x888) = uVar18 ^ CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar9 = DAT_182671f44;
  uVar6 = DAT_182671c7c;
  lVar2 = DAT_182671c40;
  uVar16 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar1 + -0x7c0) = (uVar18 | uVar17 ^ *puVar14) ^ uVar16;
  uVar18 = uVar16 ^ uVar29 ^ uVar21 ^ *(ulonglong *)(lVar1 + -0xb20) ^ *puVar36;
  *(ulonglong *)(lVar1 + -0xb08) = uVar18;
  uVar8 = DAT_182671d98;
  uVar17 = *(ulonglong *)(lVar2 + -0xb08);
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x4b8) =
       (*(ulonglong *)(lVar1 + -0xf0) ^ uVar34) + (uVar18 ^ uVar21) ^ uVar16;
  uVar12 = DAT_182671c58;
  uVar34 = (ulonglong)DAT_182671c90;
  uVar24 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 + -0x7e8) =
       (uVar18 ^ uVar21) << (((byte)DAT_182671c88 ^ 0xc5) & 0x3f) ^ uVar24;
  uVar5 = DAT_182671c70;
  uVar3 = DAT_182671c48;
  *(ulonglong *)(lVar2 + -0xa50) =
       CONCAT44(DAT_182671c48,uVar12) ^ 0xe4c4c24619e70f44 |
       CONCAT44(uVar15,uVar15) ^ 0x4f56856bcbe510e0;
  uVar19 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xf35c6a1e)) =
       (uVar17 ^ uVar21) >> (((byte)uVar6 ^ 0xc3) & 0x3f) ^ uVar19;
  uVar17 = (ulonglong)DAT_182671c5c;
  *(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0xe599105b)) =
       (uVar5 ^ 0xf196d13e) + (DAT_182671c64 ^ 0xde66e68c);
  uVar18 = CONCAT44(DAT_182671d04,DAT_182671d04);
  uVar17 = (*(ulonglong *)(lVar2 - (uVar17 ^ 0xb5d30f03)) ^ uVar24 |
           uVar19 ^ *(ulonglong *)(lVar2 + -0x110)) ^ uVar18;
  uVar33 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar2 + -0x828) = uVar17;
  uVar24 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0xaa350644)) =
       *(ulonglong *)(lVar2 + -0x4b8) ^ uVar33 ^ uVar17 ^ uVar18 ^ uVar16;
  uVar12 = DAT_182671f14;
  uVar18 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  uVar17 = (ulonglong)DAT_182671d58;
  *(ulonglong *)(lVar2 + -0x760) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0x52287183)) ^ uVar27) +
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0xeb08d895)) ^ uVar29) ^ uVar18;
  *(uint *)(lVar2 + -0x784) = *(uint *)(*(ulonglong *)(lVar2 + -0x4a8) ^ uVar17) ^ uVar12;
  uVar21 = CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar29 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar2 + -0x408) =
       (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar27) << ((bVar13 ^ 0x81) & 0x3f) ^ uVar21;
  uVar8 = DAT_182671e08;
  uVar17 = ((ulonglong)DAT_182671f4c << 0x19 | (ulonglong)(DAT_182671f4c >> 7)) ^
           *(ulonglong *)(lVar2 + -0xbd8) >> 7;
  *(ulonglong *)(lVar2 + -0xb18) = uVar17 ^ uVar29;
  uVar19 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xa70) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0xeb08d7bd)) ^ uVar21 | uVar17) ^ uVar19;
  *(byte *)(lVar2 - (uVar23 ^ 0xf35c696c)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x990) ^ (ulonglong)DAT_182671ee0) ^ (byte)uVar12;
  uVar29 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar17 = *(ulonglong *)(lVar2 - (uVar32 ^ 0xa39811d8)) ^ uVar29 ^ uVar19 ^ uVar18 ^
           *(ulonglong *)(lVar2 + -0xa70);
  uVar19 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar2 + -0x628) = uVar17;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (*(ulonglong *)(lVar2 + -0x4b8) ^ uVar16) + (uVar17 ^ uVar29) ^ uVar19;
  uVar8 = DAT_182671cfc;
  *(ulonglong *)(lVar2 + -0x380) =
       CONCAT44(DAT_182671f24,DAT_182671f24) ^
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x610) ^ uVar28);
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x35bb5806)) ^ uVar29) << 0x17 ^ uVar21;
  bVar13 = (byte)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0x7c0) =
       (*(ulonglong *)(lVar2 + -0x760) ^ uVar18) >> (((byte)uVar5 ^ 0xef) & 0x3f);
  uVar27 = CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar16 = (*(ulonglong *)(lVar2 - (uVar34 ^ 0x2d017473)) ^ uVar29) >> ((bVar13 ^ 0x71) & 0x3f);
  uVar29 = CONCAT44(DAT_182671f04,DAT_182671f04);
  *(ulonglong *)(lVar2 + -0xf0) = uVar16 ^ uVar27;
  uVar8 = DAT_182671e10;
  uVar15 = DAT_182671c84;
  uVar3 = DAT_182671c50;
  uVar17 = (ulonglong)DAT_182671c50;
  uVar24 = (ulonglong)DAT_182671c84;
  uVar16 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0xa3981e30)) ^ uVar21 | uVar16) ^ uVar29;
  *(ulonglong *)(lVar2 + -0xa50) = uVar16;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x6f27940c)) =
       *(ulonglong *)(lVar2 - (uVar17 ^ 0x6f279db4)) ^ uVar28 ^ uVar29 ^ uVar19 ^ uVar16;
  uVar4 = DAT_182671c68;
  uVar17 = (ulonglong)DAT_182671c68;
  uVar29 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xb6e624fe)) =
       (*(ulonglong *)(lVar2 + -0x760) ^ uVar18) + (uVar33 ^ *(ulonglong *)(lVar2 + -0xc18)) ^
       uVar29;
  uVar12 = DAT_182671c8c;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xb6e62206)) =
       -0x2fc2aeaf63eaf364 - (*(ulonglong *)(lVar2 - (uVar17 ^ 0x35bb59c6)) ^ uVar29);
  uVar33 = uVar33 ^ *(ulonglong *)(lVar2 + -0xc18);
  uVar17 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar2 + -0x828) = uVar33 << 0x28 ^ uVar17;
  uVar16 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xb6e62836)) = uVar33 >> (((byte)uVar12 ^ 0xa3) & 0x3f) ^ uVar16;
  uVar8 = DAT_182671e6c;
  uVar25 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar17 = (uVar16 ^ *(ulonglong *)(lVar2 + -0xb20) | uVar17 ^ *(ulonglong *)(lVar2 + -0x828)) ^
           uVar25;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar17;
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x35bb5a26)) =
       uVar21 ^ uVar17 ^ uVar25 ^ uVar29 ^ *(ulonglong *)(lVar2 + -0x7e8);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0xe59911d7)) =
       CONCAT44(uVar26,uVar4) ^ 0x1d6ad1c97b5cb7de | uVar27 ^ *(ulonglong *)(lVar2 + -0xf0);
  uVar27 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar2 + -0xa70) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x2b0)) + (uVar21 ^ *(ulonglong *)(lVar2 + -0x408)) ^
       uVar27;
  uVar12 = DAT_182671c58;
  lVar1 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671c58;
  uVar17 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (CONCAT44(uVar7,DAT_182671c5c) ^ 0xde50fc939965746b) -
       (uVar25 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8));
  uVar16 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *puVar14 = (*(ulonglong *)(lVar1 - (uVar17 ^ 0x52287e53)) ^ uVar21) << ((bVar13 ^ 0x5d) & 0x3f) ^
             uVar16;
  uVar19 = (uVar21 ^ *(ulonglong *)(lVar1 + -0x408)) >> (((byte)uVar12 ^ 0x3b) & 0x3f);
  *(ulonglong *)(lVar1 + -0x7c0) = uVar19 ^ CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar8 = DAT_182671e40;
  *(ulonglong *)(lVar1 + -0x628) =
       (CONCAT44(uVar5,uVar7) ^ 0x54c844e464d976a8) << (((byte)DAT_182671c88 ^ 0xf1) & 0x3f);
  uVar9 = DAT_182671f50;
  uVar17 = CONCAT44(uVar8,uVar8);
  uVar16 = (uVar19 | uVar16 ^ *(ulonglong *)(lVar1 + -0x380)) ^ uVar17;
  *(ulonglong *)(lVar1 + -0x888) = uVar16;
  uVar25 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0xa50) =
       uVar25 ^ uVar17 ^ uVar27 ^ *(ulonglong *)(lVar1 + -0xa70) ^ uVar16;
  uVar17 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar1 + -0x760) =
       CONCAT44(uVar6,DAT_182671c74) ^ *(ulonglong *)(lVar1 + -0xb18) ^ 0xc3219d891cbbc81f;
  lVar1 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar16 = CONCAT44(uVar4,DAT_182671c8c);
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (*(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xefbf94c7)) ^ uVar28) +
       (uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) ^ uVar21;
  *(ulonglong *)(lVar1 + -0xc18) = (uVar16 ^ 0xd43403f47c584fc6) + uVar19;
  uVar12 = DAT_182671c5c;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0x25270028)) =
       (uVar28 ^ *(ulonglong *)(lVar1 + -0xb08)) << (((byte)DAT_182671c5c ^ 0xce) & 0x3f) ^ uVar22;
  *puVar31 = (uVar21 ^ *(ulonglong *)(lVar1 + -0x110)) + 0x20902c7c932c1f6b;
  uVar16 = (uVar28 ^ *(ulonglong *)(lVar1 + -0xb08)) >> (((byte)uVar3 ^ 0x1f) & 0x3f);
  uVar17 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(lVar1 + -0xf0) = uVar16 ^ CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar8 = DAT_182671e2c;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0xf35c69be)) =
       (uVar22 ^ *(ulonglong *)(lVar1 + -0x828) | uVar16) ^ uVar17;
  uVar9 = DAT_182671e48;
  uVar29 = CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar17 = uVar29 ^ uVar17 ^ uVar21 ^ *(ulonglong *)(lVar1 + -0x110) ^
           *(ulonglong *)(lVar1 + -0x2b0);
  *(ulonglong *)(lVar1 + -0x4b8) = uVar17;
  uVar5 = DAT_182671ee0;
  uVar4 = DAT_182671c8c;
  uVar3 = DAT_182671c84;
  uVar18 = (ulonglong)DAT_182671ee0;
  *(ulonglong *)(lVar1 + -0xbd8) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar20 ^ 0xca39f79)) ^ CONCAT44(uVar8,uVar8)) ^
       CONCAT44(uVar9,uVar9);
  uVar16 = CONCAT44(uVar5,uVar5);
  uVar17 = (CONCAT44(uVar26,uVar12) ^ 0x1d005cc7dd9efff6) + (uVar17 ^ uVar29);
  *(ulonglong *)(lVar1 + -0x408) = uVar17 ^ uVar16;
  *(ulonglong *)(lVar1 - (uVar20 ^ 0xca392d9)) = uVar17 + 0xdadfab489fdec62;
  uVar12 = uVar3 | DAT_182671c8c;
  uVar17 = (CONCAT44(uVar12,uVar4) ^ 0x18499035aaff7842) + (uVar27 ^ *(ulonglong *)(lVar1 + -0xa70))
  ;
  uVar29 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  DAT_182671c88 = uVar12;
  *(ulonglong *)(lVar1 + -0x380) = uVar17 ^ CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x6f27978c)) =
       uVar17 + (uVar16 ^ *(ulonglong *)(lVar1 + -0x408)) ^ uVar29;
  lVar1 = DAT_182671c40;
  uVar17 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar16 = (uVar16 ^ *(ulonglong *)(DAT_182671c40 + -0x408)) << (((byte)uVar4 ^ 0xa2) & 0x3f);
  *(uint *)(DAT_182671c40 + -0x634) = (uVar3 ^ 0xf3658d1a) + *(int *)(DAT_182671c40 + -0x444);
  *(ulonglong *)(lVar1 + -0xb18) = uVar16 ^ uVar17;
  uVar8 = DAT_182671d94;
  lVar2 = DAT_182671c40;
  uVar17 = (*(ulonglong *)(lVar1 + -0x408) >> 0x20 ^ uVar18) >> 7;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar17 ^ CONCAT44(DAT_182671f40,DAT_182671f40);
  uVar17 = (uVar17 | uVar16) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x7e8) = uVar17;
  uVar18 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar16 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0x7c0) =
       CONCAT44(uVar8,uVar8) ^ uVar29 ^ uVar30 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0x888);
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0x5e2e3feb)) ^ uVar25) +
       (CONCAT44(uVar12,uVar15) ^ 0x5fe1873a75fd61c4) ^ uVar18;
  uVar17 = (ulonglong)DAT_182671d80;
  *(uint *)(lVar2 - (uVar24 ^ 0x6f279374)) = (uVar3 ^ 0x6f0760) << 5;
  uVar8 = DAT_182671e88;
  uVar16 = (*(ulonglong *)(lVar2 - (uVar16 ^ 0x5e2e34ab)) ^ uVar21) +
           (CONCAT44(uVar15,uVar12) ^ 0x1fe08cb127ae8511);
  *(ulonglong *)(lVar2 + -0xb20) = uVar16 ^ CONCAT44(DAT_182671d68,DAT_182671d68);
  *(byte *)(lVar2 + -0xc01) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x370) ^ uVar17) ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 + -0xb08) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0xc18)) + uVar16 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x828) = uVar29 ^ *(ulonglong *)(lVar2 + -0x888) ^ 0x26754f0f2f9429e8;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar11 * 4) = uVar10;
  return;
}



############ FUN_ 18101a940 size=3939 ############

void FUN_18101a940(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  uint uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint *puVar23;
  uint uVar24;
  byte *pbVar25;
  uint uVar26;
  uint *puVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte local_80;
  
  uVar29 = DAT_182671ea8;
  uVar28 = DAT_182671c90;
  uVar10 = DAT_182671c74;
  uVar6 = DAT_182671c64;
  uVar11 = DAT_182671c60;
  uVar20 = DAT_182671c58;
  uVar5 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar12 = (ulonglong)DAT_182671c74;
  uVar30 = (ulonglong)DAT_182671c5c;
  uVar33 = (ulonglong)DAT_182671c58;
  uVar31 = DAT_182671c64 | DAT_182671c74;
  uVar24 = DAT_182671c5c | DAT_182671c50;
  uVar17 = *(uint *)(&DAT_182613218 + DAT_1826720fc) ^ DAT_182671c64;
  uVar32 = DAT_182671c58 & DAT_182671c60;
  uVar26 = DAT_182671c90 << 0x10 | DAT_182671c90 >> 0x10;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar12 ^ 0x9b0e7143) + (longlong)DAT_1826720fc);
  uVar15 = (ulonglong)DAT_182671c50;
  DAT_182671c6c = uVar31;
  DAT_182671c78 = uVar26;
  DAT_182671c8c = uVar32;
  DAT_182671c94 = uVar24;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar24 ^ 0x7ebcd617)) =
       DAT_182671ea8 ^ DAT_182671db4 ^ *(uint *)(DAT_182671c40 + -0x6c0);
  *(uint *)(lVar3 + -0x94) = *(uint *)(lVar3 + -0x4ac) ^ DAT_182671e38 ^ DAT_182671d9c;
  bVar2 = (byte)DAT_182671ee0;
  lVar3 = DAT_182671c40;
  uVar13 = (ulonglong)uVar32;
  uVar21 = (ulonglong)DAT_182671d0c;
  *(ulonglong *)(DAT_182671c40 + -0x5a0) =
       (CONCAT44(uVar20,uVar5) ^ 0x100040078b8975f) * 0x20 +
       (CONCAT44(uVar32,uVar11) ^ 0x100000001000010) + *(longlong *)(DAT_182671c40 + -0x9a8) ^
       uVar21;
  uVar14 = DAT_182671d74;
  bVar8 = *(byte *)(*(ulonglong *)(lVar3 - (uVar30 ^ 0x4604c122)) ^ uVar21) ^ bVar2 ^
          (byte)DAT_182671e0c;
  *(byte *)(lVar3 + -0x1c3) = bVar8;
  uVar7 = DAT_182671c90;
  lVar3 = DAT_182671c40;
  uVar36 = (ulonglong)uVar31;
  puVar27 = (uint *)(DAT_182671c40 - ((ulonglong)uVar31 ^ 0xfffff623));
  uVar9 = DAT_182671c90 ^ 0x174a634f;
  *puVar27 = (bVar8 ^ bVar2) ^ uVar14;
  *(uint *)(lVar3 + -0x684) = (*(uint *)(lVar3 + -0x94) ^ DAT_182671e38) + uVar9 ^ DAT_182671cdc;
  uVar28 = (*(uint *)(lVar3 + -0x9dc) ^ uVar14) << (((byte)(uVar28 >> 0x10) ^ 0x19) & 0x1f) ^
           DAT_182671e20;
  *(uint *)(lVar3 + -0x61c) = uVar28;
  lVar4 = DAT_182671c40;
  *(uint *)(lVar3 + -0x784) =
       (*(uint *)(lVar3 - (uVar12 ^ 0x9b0e77d7)) ^ DAT_182671cdc) - (uVar28 ^ DAT_182671e20) ^
       DAT_182671e30;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0x4604c75a)) =
       CONCAT44(uVar32,uVar26) ^ CONCAT44(uVar20,uVar7) ^ 0xc5a1dfbe53e79494;
  uVar28 = DAT_182671c8c ^ 0x1000010;
  *(uint *)(lVar4 + -0x644) =
       (*(uint *)(lVar4 + -0x1c8) ^ uVar29) * (DAT_182671e30 ^ *(uint *)(lVar4 + -0x784)) ^
       DAT_182671d60;
  *(uint *)(lVar4 + -0x634) = (*(uint *)(lVar4 + -0x9dc) ^ uVar14) * uVar28 ^ DAT_182671dec;
  local_80 = (byte)uVar24;
  *(longlong *)(lVar4 - (uVar15 ^ 0x78b8964f)) =
       *(longlong *)(lVar4 + -0x5e8) << ((local_80 ^ 0xcb) & 0x3f);
  uVar28 = DAT_182671d1c;
  uVar14 = (*(uint *)(lVar4 - (uVar12 ^ 0x9b0e7767)) ^ DAT_182671dec) +
           (*(uint *)(lVar4 + -0x644) ^ DAT_182671d60);
  *(uint *)(lVar4 + -0x94c) = uVar14 ^ DAT_182671d1c;
  *(uint *)(lVar4 + -0x58c) = uVar14 * 0x2000 ^ DAT_182671e68;
  uVar28 = (*(uint *)(lVar4 + -0x94c) ^ uVar28) >> (((byte)uVar20 ^ 0x13) & 0x1f) ^ DAT_182671e18;
  *(uint *)(lVar4 + -0x76c) = uVar28;
  uVar9 = DAT_182671f70;
  uVar14 = DAT_182671da8;
  uVar22 = (*(uint *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0x4604c10e)) ^ DAT_182671e68 |
           uVar28 ^ DAT_182671e18) ^ DAT_182671e08;
  *(uint *)(lVar4 + -0x54) = uVar22;
  *(uint *)(lVar4 + -0xae4) =
       (*(uint *)(lVar4 - ((ulonglong)uVar7 ^ 0x8b087099)) ^ uVar29) +
       (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) ^ uVar14;
  uVar29 = *(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0x1000ae4)) ^ uVar9 ^ uVar14;
  *(uint *)(lVar4 + -0x6c0) = uVar29;
  uVar28 = *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x74f9c55b));
  *(uint *)(lVar4 + -0x94) = DAT_182671efc ^ DAT_182671e08 ^ uVar22;
  *(uint *)(lVar4 + -0x4ac) = (uVar28 ^ uVar14) * (uVar29 ^ uVar9);
  uVar22 = DAT_182671f28;
  uVar21 = (ulonglong)DAT_182671d6c;
  *(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0x71518d8c)) = DAT_182671f28 ^ uVar9 ^ uVar29;
  bVar2 = (byte)DAT_182671e3c;
  *(uint *)(lVar4 + -0x61c) = *(uint *)(lVar4 + -0x94) ^ DAT_182671e40 ^ DAT_182671efc;
  *(uint *)(lVar4 + -0x784) = uVar24 ^ 0xdbff9f6a | 0x59db1f6a;
  pbVar16 = (byte *)((CONCAT44(uVar31,uVar32) ^ 0xffffffff0100001b) + *(longlong *)(lVar4 + -0x9a8))
  ;
  *(ulonglong *)(lVar4 + -0x170) = (ulonglong)pbVar16 ^ uVar21;
  pbVar25 = (byte *)(lVar4 - (uVar15 ^ 0x78b8969c));
  *pbVar25 = *pbVar16 ^ bVar2 ^ (byte)DAT_182671e0c;
  uVar9 = DAT_182671e58;
  uVar28 = DAT_182671d7c;
  uVar29 = DAT_182671d4c;
  uVar14 = DAT_182671c8c;
  lVar3 = DAT_182671c40;
  uVar18 = (uint)(bVar2 ^ *(byte *)(lVar4 + -0x1c3));
  *(uint *)(DAT_182671c40 + -0x9dc) = uVar18 ^ DAT_182671d4c;
  *(uint *)(lVar3 + -0x644) =
       (*(uint *)(lVar3 + -0x61c) ^ DAT_182671e40) + (uVar14 ^ 0x9d42121e) ^ uVar28;
  puVar23 = (uint *)(lVar3 - ((ulonglong)uVar11 ^ 0x1000634));
  puVar34 = (uint *)(lVar3 - (uVar12 ^ 0x9b0e7717));
  *puVar23 = uVar18 << 0x11 ^ uVar9;
  uVar18 = DAT_182671f50;
  uVar28 = (uVar28 ^ *puVar34) - (uVar9 ^ *(uint *)(lVar3 + -0x634)) ^ DAT_182671cf4;
  *(uint *)(lVar3 + -0x94c) = uVar28;
  *(uint *)(lVar3 - (uVar36 ^ 0xfffffa73)) =
       (uVar28 ^ DAT_182671cf4) * (uVar22 ^ *(uint *)(lVar3 + -0x684)) ^ uVar18;
  uVar28 = (*(uint *)(lVar3 + -0x9dc) ^ uVar29) * (DAT_182671c90 ^ 0x8b08714a) ^ DAT_182671e6c;
  *(uint *)(lVar3 + -0x76c) = uVar28;
  uVar18 = (uVar28 ^ DAT_182671e6c) + (uVar18 ^ *(uint *)(lVar3 + -0x58c));
  *(uint *)(lVar3 + -0x1c8) = uVar18 ^ DAT_182671eb4;
  uVar28 = DAT_182671c64;
  *(uint *)(lVar3 + -0xae4) = uVar18 * 0x2000 ^ DAT_182671ea4;
  uVar28 = uVar18 >> (((byte)uVar28 ^ 0xac) & 0x1f) ^ DAT_182671edc;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(uVar21 ^ *(ulonglong *)(lVar3 + -0x170)) ^ (byte)DAT_182671e0c;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x71518fa4)) = uVar28;
  uVar28 = DAT_182671f24;
  *(uint *)(lVar3 + -0x54) =
       (*(uint *)(lVar3 - (uVar30 ^ 0x4604ce66)) ^ DAT_182671ea4 |
       *(uint *)(lVar3 + -0x4ac) ^ DAT_182671edc) ^ DAT_182671f24;
  uVar18 = DAT_182671f48;
  uVar22 = (*(uint *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x50848555)) ^ DAT_182671dd4) +
           (uVar22 ^ *(uint *)(lVar3 + -0x684)) ^ DAT_182671f5c;
  *(uint *)(lVar3 + -0x6c0) = uVar22;
  uVar19 = uVar22 ^ uVar18 ^ DAT_182671f5c;
  *(uint *)(lVar3 + -0x94) = uVar19;
  uVar19 = uVar19 ^ DAT_182671e00;
  uVar22 = *(uint *)(lVar3 - (uVar36 ^ 0xffffffab)) ^ DAT_182671f04 ^ uVar28;
  *(uint *)(lVar3 + -0x784) = uVar22;
  *(uint *)(lVar3 + -0x61c) = uVar19 ^ uVar18;
  *puVar34 = DAT_182671ef8 ^ DAT_182671f04 ^ uVar22;
  bVar2 = (byte)DAT_182671e78;
  uVar21 = (ulonglong)DAT_182671dc0;
  *(ulonglong *)(lVar3 + -0x888) =
       *(ulonglong *)(CONCAT44(DAT_182671ed4,DAT_182671ed4) ^ *(ulonglong *)(lVar3 + -0x2e8)) ^
       CONCAT44(uVar28,uVar28);
  uVar28 = DAT_182671c58 ^ 0x60d6875a;
  *(ulonglong *)(lVar3 + -0xbc0) =
       (CONCAT44(uVar10,uVar26) ^ 0x9b0e715371518b0e) + *(longlong *)(lVar3 + -0x9a8) ^ uVar21;
  *puVar23 = (DAT_182671c74 ^ 0xa3cddaa9) + uVar28;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar15 ^ 0x78b89c9f)) ^ uVar21) ^ bVar2 ^
       (byte)DAT_182671e0c;
  *(ulonglong *)(lVar3 + -0x680) =
       (CONCAT44(uVar31,DAT_182671c4c) ^ 0x3f74eacc29dd74af) + 0x83d29c5d450f554a;
  uVar28 = DAT_182671f18;
  *(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x7ebcde93)) =
       (bVar2 ^ *(byte *)(lVar3 + -0x1c3)) ^ DAT_182671f18;
  *(uint *)(lVar3 + -0x9dc) =
       (*(uint *)(lVar3 + -0x644) ^ DAT_182671ef8) + (uVar14 ^ 0x9d42121e) ^ DAT_182671e90;
  *pbVar25 = *(byte *)(uVar21 ^ *(ulonglong *)(lVar3 + -0xbc0)) ^ (byte)DAT_182671e0c;
  uVar10 = *(uint *)(lVar3 + -0x9dc) ^ DAT_182671e90;
  uVar22 = (*(uint *)(lVar3 + -0x94c) ^ uVar28) << (((byte)DAT_182671c50 ^ 0x4e) & 0x1f) ^
           DAT_182671f9c;
  uVar14 = DAT_182671c64 ^ 0x257aa16;
  *(uint *)(lVar3 + -0x58c) = uVar22;
  *(uint *)(lVar3 + -0x76c) = uVar10 - (uVar22 ^ DAT_182671f9c) ^ DAT_182671ce0;
  *(uint *)(lVar3 + -0x1c8) = (*(uint *)(lVar3 + -0x94) ^ uVar18) - uVar14;
  uVar10 = (*(uint *)(lVar3 - (uVar13 ^ 0x100076c)) ^ DAT_182671ce0) *
           (*(uint *)(lVar3 + -0x61c) ^ DAT_182671e00) ^ DAT_182671f60;
  *(uint *)(lVar3 + -0xae4) = uVar10;
  uVar10 = uVar10 ^ DAT_182671f60;
  uVar28 = (*(uint *)(lVar3 + -0x94c) ^ uVar28) * 6 ^ DAT_182671e88;
  *(uint *)(lVar3 + -0x4ac) = uVar28;
  *(uint *)(lVar3 + -0x684) = uVar10 + (uVar28 ^ DAT_182671e88) ^ uVar9;
  *(longlong *)(lVar3 - (uVar13 ^ 0x1000228)) =
       *(longlong *)(lVar3 + -0x888) << (((byte)uVar6 ^ 0x95) & 0x3f);
  uVar22 = DAT_182671f7c;
  uVar14 = DAT_182671ee8;
  uVar10 = DAT_182671c88;
  uVar6 = DAT_182671c80;
  uVar28 = DAT_182671c48;
  uVar35 = (ulonglong)DAT_182671c88;
  uVar37 = (ulonglong)DAT_182671c48;
  bVar2 = (byte)DAT_182671c90;
  *(uint *)(lVar3 + -0x6c0) =
       (*(uint *)(lVar3 - (uVar36 ^ 0xfffff97b)) ^ uVar9) << (((byte)DAT_182671c80 ^ 0x1d) & 0x1f) ^
       DAT_182671cec;
  uVar21 = (ulonglong)DAT_182671fb0;
  *(uint *)(lVar3 - (uVar30 ^ 0x4604c4d6)) =
       (uVar9 ^ *(uint *)(lVar3 + -0x684)) >> ((bVar2 ^ 0x42) & 0x1f) ^ DAT_182671f08;
  uVar18 = (*(uint *)(lVar3 - (uVar12 ^ 0x9b0e7107)) ^ DAT_182671f08 |
           *(uint *)(lVar3 - (uVar37 ^ 0x71539dce)) ^ DAT_182671cec) ^ uVar14;
  *(uint *)(lVar3 + -0x784) = uVar18;
  uVar9 = uVar22 ^ DAT_182671d0c;
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 - ((ulonglong)uVar10 ^ 0x172b4b37)) ^ uVar29) +
       (*(uint *)(lVar3 + -0x670) ^ DAT_182671de0) ^ uVar22;
  puVar23 = (uint *)(*(longlong *)(lVar3 - (uVar30 ^ 0x4604ce02)) +
                    (CONCAT44(uVar11,uVar32) ^ 0x100000001000002) * 4);
  uVar11 = DAT_182671d08 ^ uVar14;
  *(ulonglong *)(lVar3 + -0x210) = (ulonglong)puVar23 ^ uVar21;
  *puVar23 = uVar11 ^ uVar18;
  *puVar34 = uVar9 ^ *(uint *)(lVar3 + -0x634);
  uVar11 = DAT_182671c70;
  uVar29 = *(uint *)(lVar3 + -0x644) ^ DAT_182671df8 ^ DAT_182671d0c;
  *(uint *)(lVar3 + -0x9dc) = DAT_182671e5c ^ uVar14 ^ *(uint *)(lVar3 + -0x784);
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x71518e84)) = uVar29;
  uVar9 = uVar10 ^ DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar12 ^ 0x9b0e7b5b)) =
       (CONCAT44(uVar31,uVar28) ^ 0x88d83be57ee4eaa0) -
       (CONCAT44(uVar11,uVar5) ^ 0xf7120c25b7fefc57);
  uVar28 = *(uint *)(lVar3 + -0x9dc) ^ DAT_182671d44 ^ DAT_182671e5c;
  *(uint *)(lVar3 + -0x94) = uVar28;
  uVar14 = uVar28 ^ DAT_182671d44 ^ DAT_182671d9c;
  uVar12 = (ulonglong)DAT_182671eb4;
  uVar28 = *(uint *)(lVar3 - (uVar33 ^ 0x100018c)) ^ DAT_182671d18 ^ DAT_182671df8;
  DAT_182671c5c = uVar9;
  *(uint *)(lVar3 + -0x1c8) = uVar28;
  *(ulonglong *)(lVar3 + -0x7e8) = CONCAT44(uVar10,uVar20) ^ 0x46782e64a280154 | 0xb3901c11b515f609;
  *(uint *)(lVar3 + -0x61c) = uVar14;
  uVar5 = DAT_182671c9c;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x76c) = DAT_182671c9c ^ DAT_182671d18 ^ uVar28;
  *(uint *)(lVar3 + -0x94c) = DAT_182671f1c ^ uVar14 ^ DAT_182671d9c;
  uVar28 = DAT_182671d84;
  pbVar16 = (byte *)((CONCAT44(uVar10,uVar10) ^ 0x172b494b172b495a) +
                     (CONCAT44(uVar9,uVar32) ^ 0x162b494b01000000) * 0x20 +
                    *(longlong *)(lVar3 + -0x9a8));
  *(ulonglong *)(lVar3 + -0xc20) = (ulonglong)pbVar16 ^ uVar12;
  uVar20 = DAT_182671f04 & 0xff;
  *(byte *)(DAT_182671c40 + -0x1c3) = *pbVar16 ^ (byte)DAT_182671f04 ^ (byte)DAT_182671e0c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       CONCAT44(uVar32,uVar32) ^ CONCAT44(uVar9,uVar32) ^ 0xefde4e8fd94a253d;
  *(uint *)(lVar3 - (uVar13 ^ 0x1000ae4)) = uVar20 ^ *(byte *)(lVar3 + -0x1c3) ^ DAT_182671e30;
  lVar4 = DAT_182671c40;
  uVar29 = (*(uint *)(lVar3 + -0x94c) ^ DAT_182671f1c) + (uVar10 ^ 0x8b695b55);
  uVar22 = *(uint *)(DAT_182671c40 + -0xae4) ^ DAT_182671e30;
  *(uint *)(DAT_182671c40 + -0x4ac) = uVar29 ^ uVar28;
  uVar28 = DAT_182671f38;
  uVar14 = DAT_182671ec8;
  uVar20 = uVar22 << (((byte)uVar9 ^ 0x5a) & 0x1f) ^ DAT_182671fa4;
  *(uint *)(lVar4 + -0x684) = uVar20;
  uVar29 = uVar29 - (uVar20 ^ DAT_182671fa4);
  *(uint *)(lVar4 + -0x6c0) = uVar29 ^ uVar28;
  uVar20 = DAT_182671de8;
  uVar22 = uVar22 * 0x11 ^ DAT_182671f8c;
  *(byte *)(lVar4 + -0x1c3) =
       *(byte *)((ulonglong)DAT_182671dc0 ^ *(ulonglong *)(lVar4 + -0xbc0)) ^ (byte)DAT_182671e0c;
  uVar28 = *(uint *)(lVar4 - (uVar35 ^ 0x172b4e27));
  *(uint *)(lVar4 + -0x670) = uVar22;
  uVar22 = uVar22 ^ DAT_182671f8c;
  uVar29 = (uVar28 ^ uVar5) * uVar29;
  *(uint *)(lVar4 + -0x54) = uVar29 ^ DAT_182671f78;
  uVar22 = uVar22 + uVar29;
  *(uint *)(lVar4 + -0x634) = uVar22 ^ uVar14;
  uVar14 = (*(uint *)(lVar4 - ((ulonglong)uVar9 ^ 0x162b4f7f)) ^ uVar14) <<
           (((byte)uVar10 ^ 0x46) & 0x1f);
  *(uint *)(lVar4 + -0x644) = uVar14 ^ uVar20;
  bVar2 = (byte)DAT_182671c7c;
  *(ulonglong *)(lVar4 + -0x4b8) =
       *(ulonglong *)(lVar4 - (uVar15 ^ 0x78b89577)) >>
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)uVar24 ^ 0x7ebcda57)) & 0x3f);
  uVar28 = DAT_182671d00;
  *(uint *)(lVar4 + -0x9dc) = uVar22 >> ((bVar2 ^ 0xd9) & 0x1f) ^ DAT_182671d00;
  *(uint *)(lVar4 + -0x94) = (uVar28 ^ *puVar27 | uVar14) ^ DAT_182671ce0;
  *(uint *)(lVar4 + -0x1c8) =
       (*(uint *)(lVar4 - ((ulonglong)uVar9 ^ 0x162b4c9f)) ^ DAT_182671dd4) +
       (uVar5 ^ *(uint *)(lVar4 + -0x76c)) ^ DAT_182671f98;
  *(uint *)(lVar4 + -0x61c) =
       *(uint *)(lVar4 - (uVar37 ^ 0x71539ac6)) ^ DAT_182671f98 ^ DAT_182671ef8;
  *(uint *)(lVar4 + -0x94c) =
       (*(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x1000254)) ^ uVar20) + (uVar10 ^ 0xd7687096);
  *(uint *)(lVar4 + -0x4ac) =
       *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x1000484)) ^ DAT_182671ce0 ^ DAT_182671ef8;
  *(ulonglong *)(lVar4 + -0xa50) =
       CONCAT44(uVar11,uVar7) ^ *(ulonglong *)(lVar4 + -0x5e8) ^ 0x5bce0f7131e9df76;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar31) * 4) = uVar17;
  return;
}



############ FUN_ 180f62940 size=5206 ############

void FUN_180f62940(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  byte *pbVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  byte bVar37;
  byte bVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  uint uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  byte local_res20;
  byte local_e0;
  byte local_c0;
  byte local_a8;
  
  uVar14 = DAT_182671c84;
  uVar13 = DAT_182671c80;
  uVar12 = DAT_182671c78;
  uVar11 = DAT_182671c6c;
  uVar10 = DAT_182671c68;
  uVar8 = DAT_182671c60;
  uVar4 = DAT_182671c54;
  uVar46 = (ulonglong)DAT_182671c78;
  uVar41 = (ulonglong)DAT_182671c80;
  uVar26 = (ulonglong)DAT_182671c54;
  uVar24 = (ulonglong)DAT_182671c6c;
  uVar45 = DAT_182671c80 & DAT_182671c84;
  uVar44 = (ulonglong)DAT_182671c60;
  uVar29 = *(uint *)(&DAT_182613218 + DAT_1826721c0) ^ DAT_182671c78;
  uVar34 = (ulonglong)DAT_182671c68;
  uVar39 = DAT_182671c54 | DAT_182671c60;
  uVar43 = DAT_182671c78 & DAT_182671c68;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826721c0);
  uVar27 = ~DAT_182671c5c;
  uVar31 = DAT_182671c6c << 0x10 | DAT_182671c6c >> 0x10;
  uVar28 = CONCAT44(DAT_182671f24,DAT_182671f24);
  DAT_182671c48 = uVar43;
  DAT_182671c50 = uVar31;
  DAT_182671c74 = uVar39;
  DAT_182671c7c = uVar27;
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x31ef3e8d)) =
       *(ulonglong *)
        (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c68 ^ 0x7146ec76)) ^
        CONCAT44(DAT_182671d84,DAT_182671d84)) ^ uVar28;
  lVar2 = DAT_182671c40;
  uVar19 = (ulonglong)uVar31;
  uVar32 = (ulonglong)uVar39;
  uVar30 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xffef7bef)) =
       *(longlong *)(DAT_182671c40 + -0x310) +
       ((CONCAT44(uVar8,uVar4) ^ 0xdce240ad7b2d7b5a) +
       (CONCAT44(uVar31,uVar10) ^ 0x3f9d31ef7146e7fe) * 0xc) * 8 ^ uVar30;
  uVar36 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xe7fe73f6)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x10) ^ uVar30) ^ uVar28 ^ uVar36;
  uVar30 = (ulonglong)DAT_182671e1c;
  *(ulonglong *)(lVar2 + -0xa50) =
       CONCAT44(DAT_182671e90,DAT_182671e90) ^ *(ulonglong *)(lVar2 + -0x7e8) |
       *(ulonglong *)(lVar2 + -0x2b0) ^ uVar36;
  uVar6 = DAT_182671c5c;
  lVar2 = DAT_182671c40;
  uVar21 = (ulonglong)uVar14;
  bVar37 = (byte)DAT_182671d58 ^ (byte)DAT_182671e9c;
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       (*(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x9b39835c)) ^ uVar36) >>
       (((byte)uVar13 ^ 0x76) & 0x3f) ^ CONCAT44(DAT_182671d58,DAT_182671d58);
  *(byte *)(lVar2 + -0x19a) = bVar37 ^ *(byte *)(lVar2 + -0x920);
  *(ulonglong *)(lVar2 + -0xda8) =
       CONCAT44(uVar6,uVar45) ^ 0x231b2e0d8cc7471c | CONCAT44(uVar31,uVar13) ^ 0x6eaaed5c5c1d8942;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar45 ^ 0x833802f4)) =
       (CONCAT44(uVar8,uVar12) ^ 0xdce240adf7f9a7eb) + *(longlong *)(lVar2 + -0x1d0) ^ uVar30;
  *(byte *)(*(ulonglong *)(lVar2 + -0x3b0) ^ uVar30) =
       *(byte *)(lVar2 - ((ulonglong)uVar27 ^ 0x741248e)) ^ (byte)DAT_182671d18 ^
       (byte)DAT_182671e9c;
  uVar9 = DAT_182671de0;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar10,uVar8) ^ 0x7146e7fedce240ac) * 8);
  uVar33 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar2 + -0xa40) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar15 = DAT_182671e5c;
  uVar5 = DAT_182671d5c;
  *(ulonglong *)(lVar2 + -0xa08) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xffef7827)) ^ uVar33) + 0xe4043b9b38a3b39e;
  uVar30 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x8f0) = *puVar25 ^ uVar30 ^ uVar28;
  *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0x741236c)) ^ CONCAT44(uVar15,uVar15))
       = CONCAT44(uVar6,uVar43) ^ 0xc758953f5307ba8d;
  *(ulonglong *)(lVar2 + -0x628) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x8f0)) >> (((byte)uVar10 ^ 0xc6) & 0x3f) ^
       CONCAT44(uVar9,uVar9);
  bVar37 = (byte)DAT_182671e20;
  bVar38 = (byte)uVar9 ^ (byte)DAT_182671e20;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c5c ^ 0xf8bed1f3)) =
       0xbccfcbe55e9410e0 >> (((byte)uVar45 ^ 0x60) & 0x3f);
  uVar5 = DAT_182671d4c;
  bVar38 = bVar38 ^ *(byte *)(lVar2 + -0x628);
  *(byte *)(lVar2 + -0xc9a) = bVar38;
  uVar17 = DAT_182671f2c;
  bVar37 = bVar37 ^ (byte)DAT_182671d18;
  uVar30 = (ulonglong)DAT_182671f94;
  *(ulonglong *)(lVar2 + -0x888) =
       *(ulonglong *)(lVar2 - (uVar24 ^ 0x31ef36fd)) ^ CONCAT44(uVar5,uVar5) ^
       CONCAT44(uVar14,uVar8) ^ 0x40850715f468704d;
  pbVar22 = (byte *)((CONCAT44(uVar39,uVar45) ^ 0xffef7bff8338014b) + *(longlong *)(lVar2 + -0x1d0))
  ;
  *(ulonglong *)(lVar2 + -0xe0) = (ulonglong)pbVar22 ^ uVar30;
  uVar5 = DAT_182671e50;
  *pbVar22 = bVar37 ^ bVar38;
  uVar9 = DAT_182671ea4;
  uVar30 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x9b0) =
       (CONCAT44(uVar27,uVar31) ^ 0x74125143f9d31ef) * 0x60 + *(longlong *)(lVar2 + -0x310) + 0x10 ^
       uVar30;
  uVar36 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x4b8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar26 ^ 0x7b2d72eb)) ^ uVar30) ^ uVar36 ^ uVar28;
  local_res20 = (byte)(uVar11 >> 0x10);
  *(ulonglong *)(lVar2 + -0xb08) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xffef7f47)) ^ uVar36) >> ((local_res20 ^ 0xef) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  uVar5 = DAT_182671cdc;
  bVar38 = (byte)uVar17 ^ (byte)DAT_182671e78;
  bVar37 = (byte)DAT_182671e78 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 + -0xc38) =
       CONCAT44(uVar14,uVar43) ^ 0xb51c126e8d35d2da | CONCAT44(uVar4,uVar10) ^ 0x3180529863d3e8b8;
  uVar7 = DAT_182671c5c;
  *(byte *)(lVar2 + -0x471) = bVar38 ^ *(byte *)(lVar2 + -0xb08);
  *(uint *)(lVar2 - (uVar46 ^ 0xf7f9ab95)) = (uVar8 ^ 0xa56420e8) - *(int *)(lVar2 + -0x4ac);
  pbVar22 = (byte *)((CONCAT44(uVar13,uVar43) ^ 0xe7fe71467140a7f4) + *(longlong *)(lVar2 + -0x1d0))
  ;
  *(ulonglong *)(lVar2 + -0x4f8) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671d60;
  uVar9 = DAT_182671d98;
  *pbVar22 = bVar37 ^ *(byte *)(lVar2 + -0x471);
  uVar30 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x9b8) =
       *(longlong *)(lVar2 + -0x310) +
       ((CONCAT44(uVar14,uVar39) ^ 0x9b3981ecffef7bfd) +
       (CONCAT44(uVar39,uVar4) ^ 0xffef7bff7b2d7b5b) * 0xc) * 8 ^ uVar30;
  uVar30 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xf8bed353)) ^ uVar30);
  local_e0 = (byte)uVar27;
  *(ulonglong *)(lVar2 + -0xa70) = uVar30;
  uVar36 = (ulonglong)DAT_182671d6c;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x3f9d368f)) =
       (uVar30 ^ uVar28) >> ((local_e0 ^ 0x1c) & 0x3f) ^ CONCAT44(uVar5,uVar5);
  bVar37 = (byte)DAT_182671dac;
  bVar38 = (byte)uVar5 ^ (byte)DAT_182671dac ^ *(byte *)(lVar2 + -0x760);
  *(ulonglong *)(lVar2 + -0xa8) =
       (CONCAT44(uVar13,uVar4) ^ 0xe7fe71467b2d7b4a) + *(longlong *)(lVar2 + -0x1d0) ^ uVar36;
  bVar37 = bVar37 ^ bVar38 ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0x8e1) = bVar38;
  lVar2 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0xf8beda43)) ^ uVar36) = bVar37;
  uVar30 = *(ulonglong *)(lVar2 + -0x760) ^ CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x680) = CONCAT44(uVar12,uVar14) ^ 0x3f94ddf73eb12083 | uVar30;
  uVar36 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(lVar2 + -0x7a0) =
       (CONCAT44(uVar8,uVar45) ^ 0xdce240ad83380144) * 0x60 +
       *(longlong *)(lVar2 - (uVar24 ^ 0x31ef3c8d)) + 0x10 ^ uVar36;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x3f9d3b97)) =
       uVar30 << ((byte)*(undefined8 *)(lVar2 + -0xc38) & 0x3f);
  uVar16 = DAT_182671e10;
  uVar26 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar2 + -0x510) =
       *(ulonglong *)(uVar36 ^ *(ulonglong *)(lVar2 + -0x7a0)) ^ uVar28 ^ uVar26;
  uVar7 = DAT_182671c5c;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0xe7fe74ae)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x31ef3a8d)) ^ uVar26) >> ((local_e0 ^ 4) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar30 = (ulonglong)DAT_182671e88;
  *(byte *)(lVar2 - ((ulonglong)uVar45 ^ 0x833801d1)) =
       (byte)uVar16 ^ *(byte *)(lVar2 + -0x5e8) ^ (byte)DAT_182671d48;
  lVar2 = DAT_182671c40;
  pbVar22 = (byte *)((CONCAT44(uVar43,uVar7) ^ 0x7140a7e4f8bedaf9) +
                    *(longlong *)(DAT_182671c40 + -0x1d0));
  *(ulonglong *)(DAT_182671c40 + -0x840) = (ulonglong)pbVar22 ^ uVar30;
  bVar37 = *(byte *)(lVar2 + -0x95) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671d48;
  *(ulonglong *)(lVar2 + -0xc90) =
       CONCAT44(uVar8,uVar11) ^ 0x360f2717d5aa8727 | CONCAT44(uVar10,uVar12) ^ 0x7f52d4938f8278b5;
  local_a8 = (byte)uVar4;
  *pbVar22 = bVar37;
  uVar5 = DAT_182671d7c;
  *(ulonglong *)(lVar2 + -0x380) =
       (CONCAT44(uVar12,uVar45) ^ 0x3e4d0db4ba72020b) >> ((local_a8 ^ 0x79) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671ee0;
  puVar25 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 + -0x310) + 0x10 +
            (CONCAT44(uVar13,uVar45) ^ 0xe7fe714683380144) * 0x60);
  *(ulonglong *)(DAT_182671c40 + -0x820) = (ulonglong)puVar25 ^ CONCAT44(uVar5,uVar5);
  uVar7 = DAT_182671f8c;
  uVar5 = DAT_182671f54;
  uVar36 = (ulonglong)DAT_182671f8c;
  uVar40 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *(byte *)(lVar2 + -0x6d9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x990) ^ uVar30) ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x7146e6ee)) = *puVar25 ^ uVar28 ^ uVar40;
  bVar37 = (byte)uVar5 ^ (byte)DAT_182671e9c;
  *(ulonglong *)(lVar2 + -0x7e8) =
       ((ulonglong)(uVar7 >> 0x18) | uVar36 << 8) ^ *(ulonglong *)(lVar2 + -0x110) >> 0x18 ^
       CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0xa50) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0x510)) << (((byte)DAT_182671c5c ^ 0xdb) & 0x3f);
  uVar30 = (ulonglong)DAT_182671efc;
  *(byte *)(lVar2 - (uVar46 ^ 0xf7f9ac9f)) = bVar37 ^ *(byte *)(lVar2 + -0x7e8);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x3f9d3aff)) =
       (CONCAT44(uVar11,uVar13) ^ 0x31ef3f9de7fe7155) + *(longlong *)(lVar2 + -0x1d0) ^ uVar30;
  bVar37 = *(byte *)(lVar2 + -0xb7a) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671e9c;
  *(ulonglong *)(lVar2 + -0x2b0) =
       *(longlong *)(lVar2 + -0xc90) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar45 ^ 0x83380454)) ^ uVar26);
  *(byte *)(*(ulonglong *)(lVar2 + -0xb10) ^ uVar30) = bVar37;
  uVar9 = DAT_182671da4;
  uVar7 = DAT_182671c70;
  lVar3 = DAT_182671c40;
  uVar45 = ~DAT_182671c70;
  uVar41 = (ulonglong)DAT_182671c70;
  bVar38 = (byte)DAT_182671c70;
  uVar30 = CONCAT44(DAT_182671c70,DAT_182671c70);
  DAT_182671c8c = uVar45;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x200c0b39)) =
       CONCAT44(DAT_182671c70,uVar45) ^ *(ulonglong *)(lVar2 + -0x110) ^ uVar40 ^ 0xd46d4e3b19d0e0b;
  uVar5 = DAT_182671d04;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar3 - ((ulonglong)uVar45 ^ 0xdff3fa7e)) +
            ((uVar30 ^ 0x200c0691200c0693) + (CONCAT44(uVar45,uVar45) ^ 0xdff3f96edff3f96e) * 0xc) *
            8);
  *(ulonglong *)(lVar3 + -0x40) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671e28,DAT_182671e28);
  uVar30 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x200c0fb1)) = *puVar25 ^ uVar28 ^ uVar30;
  uVar36 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0xdff3f04e)) ^ uVar30) >>
           ((bVar38 ^ 0xb1) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x3d8) = uVar36;
  uVar15 = DAT_182671c88;
  *(ulonglong *)(lVar3 + -0xa08) =
       (CONCAT44(DAT_182671c88,uVar45) ^ 0xab4f9ec17d22a5da) >>
       ((byte)*(undefined8 *)(lVar3 + -0xa50) & 0x3f);
  uVar30 = (ulonglong)DAT_182671c5c;
  uVar23 = DAT_182671c5c ^ 0x8c56cac0;
  *(byte *)(lVar3 + -0x879) = (byte)uVar9 ^ (byte)DAT_182671ddc ^ (byte)uVar36;
  *(uint *)(lVar3 - ((ulonglong)uVar45 ^ 0xdff3ff1e)) = uVar23 + *(int *)(lVar3 + -0x784);
  pbVar22 = (byte *)((CONCAT44(uVar6,uVar13) ^ 0xf8bedaebe7fe7152) + *(longlong *)(lVar3 + -0x1d0));
  *(ulonglong *)(lVar3 + -0xcb8) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182671f60;
  uVar5 = DAT_182671d28;
  *pbVar22 = *(byte *)(lVar3 - (uVar30 ^ 0xf8bed292)) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671ddc;
  uVar6 = DAT_182671f4c;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar45,uVar12) ^ 0xdff3f96ef7f9a7e7) +
            (CONCAT44(uVar43,uVar7) ^ 0x7140a7e4200c0691) * 0xc) * 8);
  uVar30 = (ulonglong)DAT_182671f4c;
  *(ulonglong *)(lVar3 + -0x668) = (ulonglong)puVar25 ^ CONCAT44(uVar5,uVar5);
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xa60) = (CONCAT44(uVar27,uVar12) ^ 0x1c2b59cac5eb1275) << (bVar38 & 0x3f)
  ;
  uVar36 = CONCAT44(uVar6,uVar6) ^ *puVar25 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x8f0) = uVar36;
  uVar5 = DAT_182671ebc;
  *(ulonglong *)(lVar2 + -0xb18) =
       (uVar36 >> 0x20 ^ uVar30) >> 8 ^ CONCAT44(DAT_182671ebc,DAT_182671ebc);
  bVar42 = (byte)uVar5;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar14,uVar39) ^ 0x59055450fc31277c) << ((local_a8 ^ 0x72) & 0x3f);
  uVar30 = CONCAT44(DAT_182671c90,uVar11);
  uVar36 = (ulonglong)DAT_182671cfc;
  *(undefined1 *)(lVar2 + -0x6f9) = *(undefined1 *)(lVar2 - (uVar34 ^ 0x7146ece6));
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x200c0fc9)) = *(longlong *)(lVar2 + -0x1d0) + 0x15U ^ uVar36;
  bVar37 = (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x3f9d388f)) =
       uVar30 ^ 0x482cda0ee4bcb011 | CONCAT44(uVar39,uVar12) ^ 0x758d181485e65f19;
  *(byte *)(*(ulonglong *)(lVar2 + -0x958) ^ uVar36) = bVar37 ^ *(byte *)(lVar2 + -0x6f9) ^ bVar42;
  uVar9 = DAT_182671c64;
  local_c0 = (byte)uVar8;
  uVar30 = CONCAT44(uVar27,DAT_182671c64);
  *(longlong *)(lVar2 + -0x888) = 0x5f4bf4c0724d2069 << ((local_c0 ^ 0x90) & 0x3f);
  lVar2 = DAT_182671c40;
  puVar25 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 - (uVar32 ^ 0xffef78ef)) + (uVar30 ^ 0x74125145d2646a4) * 8
            );
  puVar20 = (ulonglong *)(DAT_182671c40 - (uVar46 ^ 0xf7f9a20d));
  pbVar22 = (byte *)(DAT_182671c40 + -0xb08);
  *(ulonglong *)(DAT_182671c40 + -0xa0) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671d30,DAT_182671d30)
  ;
  uVar18 = DAT_182671f84;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (*puVar20 ^ CONCAT44(uVar16,uVar16)) >> (((byte)uVar17 ^ *pbVar22) & 0x3f);
  uVar16 = DAT_182671ce4;
  uVar5 = DAT_182671c58;
  uVar36 = (ulonglong)DAT_182671ed8;
  uVar34 = *puVar25 ^ uVar28;
  uVar41 = CONCAT44(uVar18,uVar18);
  uVar30 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  bVar35 = (byte)DAT_182671eb8;
  *(ulonglong *)(lVar2 + -0xa70) = uVar34 ^ uVar41;
  bVar37 = (byte)uVar16;
  uVar30 = uVar34 >> ((local_e0 ^ 0x24) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x680) = uVar30;
  lVar3 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c5c;
  *(byte *)(lVar2 - (uVar21 ^ 0x9b398485)) = bVar35 ^ bVar37 ^ (byte)uVar30;
  pbVar22 = (byte *)(*(longlong *)(lVar2 + -0x1d0) + 0x16);
  *(ulonglong *)(lVar2 + -0x2a0) = (ulonglong)pbVar22 ^ uVar36;
  *pbVar22 = *(byte *)(lVar2 - (uVar34 ^ 0xf8bedf82)) ^ (byte)DAT_182671d18 ^ bVar37;
  uVar6 = DAT_182671c94;
  uVar32 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 - (uVar44 ^ 0xdce24c95)) =
       *(ulonglong *)(lVar2 + -0xa70) ^ uVar41 ^ *(ulonglong *)(lVar2 + -0x4b8);
  puVar25 = (ulonglong *)(*(longlong *)(lVar2 + -0x310) + 0x10);
  *(ulonglong *)(lVar2 + -0xb98) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar18 = DAT_182671f58;
  uVar36 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(ulonglong *)(lVar3 + -0x760) = *puVar25 ^ uVar28 ^ uVar36;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x910) ^ uVar33) =
       CONCAT44(uVar7,uVar6) ^ 0xe95e4a2f45779bbc;
  uVar17 = DAT_182671d18;
  uVar34 = CONCAT44(uVar5,DAT_182671c4c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0xdff3f316)) = uVar34 << 0x37 ^ 0x5f00000000000000;
  lVar2 = DAT_182671c40;
  uVar36 = *(ulonglong *)(lVar3 + -0x760) ^ uVar36;
  uVar41 = (ulonglong)DAT_182671d08;
  uVar30 = uVar36 >> ((bVar38 ^ 0xa9) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar30;
  *(ulonglong *)(lVar2 + -0x7e8) = uVar36 + 0x140d5ba91826a3d9;
  *(byte *)(lVar2 + -0x741) = bVar37 ^ (byte)uVar18 ^ (byte)uVar30;
  *(ulonglong *)(lVar2 + -0xcf8) =
       (CONCAT44(uVar13,uVar15) ^ 0xe7fe71463bff3be8) + *(longlong *)(lVar2 + -0x1d0) ^ uVar41;
  *(longlong *)(lVar2 - (uVar19 ^ 0x3f9d34ff)) =
       0x5c39013546bb3f99 << ((byte)*(undefined8 *)(lVar2 - (uVar32 ^ 0xf5a9200c)) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar2 + -0xcf8) ^ uVar41) =
       *(byte *)(lVar2 + -0x741) ^ (byte)uVar17 ^ (byte)uVar18;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar9,uVar11) ^ 0x5d2646a631ef3f9e) +
            (CONCAT44(uVar10,uVar12) ^ 0x7146e7fef7f9a7e5) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0xd50) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar2 + -0xc90) = *puVar25 ^ uVar28 ^ uVar26;
  bVar37 = (byte)DAT_182671f3c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar43 ^ 0x7140a554)) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0x31ef330d)) ^ uVar26) >> ((local_a8 ^ 0x5b) & 0x3f) ^
       CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(byte *)(lVar2 + -0x2e9) = bVar37 ^ bVar42 ^ *(byte *)(lVar2 + -0x2b0);
  uVar30 = (ulonglong)DAT_182671d24;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x9b3980fc)) =
       (CONCAT44(uVar4,uVar39) ^ 0xdb767f4d4785d2c) + (uVar34 ^ 0xec5a272aa5bf646d);
  pbVar22 = (byte *)((CONCAT44(uVar8,uVar31) ^ 0xdce240ad3f9d31f7) + *(longlong *)(lVar2 + -0x1d0));
  *(ulonglong *)(lVar2 + -0x858) = (ulonglong)pbVar22 ^ uVar30;
  *pbVar22 = (byte)uVar17 ^ bVar42 ^ *(byte *)(lVar2 + -0x2e9);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar43) * 4) = uVar29;
  return;
}



############ FUN_ 180fca4d0 size=3877 ############

void FUN_180fca4d0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  byte bVar8;
  uint uVar9;
  ulonglong uVar10;
  uint uVar11;
  uint uVar12;
  uint *puVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte *pbVar33;
  
  uVar5 = DAT_182671c94;
  uVar20 = DAT_182671c7c;
  uVar24 = DAT_182671c74;
  uVar21 = DAT_182671c68;
  uVar4 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c68;
  uVar22 = (ulonglong)DAT_182671c74;
  uVar23 = (ulonglong)DAT_182671c54;
  uVar19 = DAT_182671c68 | DAT_182671c54;
  uVar15 = DAT_182671c74 ^ DAT_182671c8c;
  uVar11 = (DAT_182671c94 << 0x10 | DAT_182671c94 & 0xff00) << 8 | DAT_182671c94 >> 8 & 0xff00 |
           DAT_182671c94 >> 0x18;
  uVar18 = DAT_182671c90 & DAT_182671c7c;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_1826722f0);
  uVar9 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c7c ^ 0xff3c539f) + (longlong)DAT_1826722f0) ^
          DAT_182671c90;
  puVar13 = (uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0x10004ac));
  DAT_182671c48 = uVar11;
  DAT_182671c5c = uVar18;
  DAT_182671c6c = uVar15;
  DAT_182671c84 = uVar19;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0x9e72b76f)) =
       DAT_182671ca0 ^ DAT_182671f68 ^ *puVar13;
  *(uint *)(lVar2 + -0xae4) = *(uint *)(lVar2 + -0x1c8) ^ DAT_182671f04 ^ DAT_182671ed4;
  uVar6 = DAT_182671e28;
  *(longlong *)(lVar2 - ((ulonglong)uVar4 ^ 0x874764b8)) =
       0x6da1b3b16823fa1b <<
       ((byte)*(undefined8 *)(lVar2 - ((ulonglong)uVar15 ^ 0x9f72b603)) & 0x3f);
  *(uint *)(lVar2 - ((ulonglong)uVar21 ^ 0x81808404)) =
       uVar6 ^ DAT_182671ca0 ^ *(uint *)(lVar2 + -0x684);
  uVar10 = (ulonglong)DAT_182671ec8;
  uVar26 = *(uint *)(lVar2 + -0xae4) ^ DAT_182671ed0 ^ DAT_182671f04;
  *(uint *)(lVar2 + -0x94c) = uVar26;
  bVar14 = (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 + -0x170) =
       (CONCAT44(uVar19,uVar24) ^ 0x87c7ecf09e72b1eb) * 0x20 + *(longlong *)(lVar2 + -0x9a8) + 0x1a
       ^ uVar10;
  uVar30 = DAT_182671e0c;
  lVar2 = DAT_182671c40;
  bVar8 = *(byte *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0xfffffe8f)) ^ uVar10) ^
          bVar14 ^ (byte)DAT_182671e0c;
  *(byte *)(DAT_182671c40 + -0x1c3) = bVar8;
  uVar29 = DAT_182671dfc;
  uVar27 = DAT_182671ce8;
  lVar3 = DAT_182671c40;
  uVar26 = uVar26 ^ DAT_182671ed0;
  *(uint *)(lVar2 + -0x670) = (bVar14 ^ bVar8) ^ DAT_182671dfc;
  uVar10 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar3 - (uVar23 ^ 0x87476ee4)) = uVar26 + (uVar11 ^ 0x63bdede1) ^ DAT_182671eb0;
  uVar26 = (*(uint *)(lVar3 + -0x670) ^ uVar29) << 0x11 ^ DAT_182671e50;
  *(uint *)(lVar3 + -0x76c) = uVar26;
  uVar12 = (*(uint *)(lVar3 - (uVar10 ^ 0x8b087715)) ^ DAT_182671eb0) - (uVar26 ^ DAT_182671e50) ^
           DAT_182671e90;
  *(uint *)(lVar3 + -0x61c) = uVar12;
  uVar26 = DAT_182671ef0;
  uVar12 = (*(uint *)(lVar3 + -0x54) ^ uVar6) * (uVar12 ^ DAT_182671e90);
  *(uint *)(lVar3 + -0x6c0) = uVar12 ^ uVar27;
  *(uint *)(lVar3 + -0x9dc) =
       (*(uint *)(lVar3 + -0x670) ^ uVar29) * (uVar18 ^ 0x8b08511b) ^ DAT_182671e70;
  *(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0xffffff6b)) =
       (*(uint *)(lVar3 - (uVar32 ^ 0x81808d8c)) ^ DAT_182671e70) + uVar12 ^ uVar26;
  uVar27 = (*(uint *)(lVar3 + -0x94) ^ uVar26) >> (((byte)uVar19 ^ 0xe3) & 0x1f) ^ DAT_182671d3c;
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 - ((ulonglong)uVar20 ^ 0xff3c531b)) ^ uVar26) <<
       (((byte)DAT_182671c8c ^ 0xd) & 0x1f) ^ DAT_182671e48;
  uVar7 = DAT_182671f84;
  *(uint *)(lVar3 + -0x4ac) = uVar27;
  *(uint *)(lVar3 - (uVar22 ^ 0x9e72b023)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0x9f72b7df)) ^ DAT_182671e48 | uVar27 ^ DAT_182671d3c
       ) ^ DAT_182671d4c;
  *(ulonglong *)(lVar3 + -0xb20) = *(ulonglong *)(lVar3 + -0xda8) ^ *(ulonglong *)(lVar3 + -0x110);
  uVar20 = (*(uint *)(lVar3 + -0x54) ^ uVar6) + (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) ^
           DAT_182671cb8;
  *(uint *)(lVar3 + -0x684) = uVar20;
  lVar2 = DAT_182671c40;
  uVar27 = uVar20 ^ DAT_182671c98 ^ DAT_182671cb8;
  uVar31 = (ulonglong)uVar11;
  uVar29 = *(uint *)(DAT_182671c40 + -0x1c8) ^ DAT_182671d4c;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (CONCAT44(uVar4,uVar21) ^ 0x7c2d15941ce0f72b) >>
       ((byte)*(undefined8 *)(DAT_182671c40 - (uVar31 ^ 0xfffffc27)) & 0x3f);
  uVar20 = DAT_182671c90;
  uVar29 = uVar29 ^ uVar30;
  uVar10 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar2 + -0xae4) = uVar27;
  uVar21 = uVar27 ^ DAT_182671d0c ^ DAT_182671c98;
  *(uint *)(lVar2 + -0x94c) = uVar29;
  uVar29 = uVar29 ^ DAT_182671f58;
  *(uint *)(lVar2 + -0x644) = uVar21;
  *(ulonglong *)(lVar2 + -0x7c0) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar10 ^ 0x8b087c39)) ^ CONCAT44(uVar7,uVar7)) ^
       CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar21 = DAT_182671c68;
  uVar29 = uVar29 ^ uVar30;
  *(uint *)(lVar2 + -0x76c) = uVar29;
  bVar14 = (byte)DAT_182671d1c;
  lVar2 = DAT_182671c40;
  uVar29 = uVar29 ^ DAT_182671f58;
  uVar32 = (ulonglong)DAT_182671f14;
  uVar10 = *(ulonglong *)(DAT_182671c40 + -0xa08);
  *(ulonglong *)(DAT_182671c40 + -0xc20) =
       (CONCAT44(uVar24,uVar18) ^ 0x9e72b1eb8b085101) * 0x20 +
       (CONCAT44(uVar21,uVar19) ^ 0x8180845087c7ecf5) + *(longlong *)(DAT_182671c40 + -0x9a8) ^
       uVar32;
  *(ulonglong *)(lVar2 + -0xd88) = CONCAT44(uVar20,uVar21) ^ uVar10 ^ 0x37d80e8589c6b29d;
  uVar26 = DAT_182671ed8;
  bVar8 = *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x9f72bdcb)) ^ uVar32) ^ bVar14 ^
          (byte)DAT_182671e0c;
  uVar20 = (uint)(bVar14 ^ bVar8);
  *(byte *)(lVar2 + -0x1c3) = bVar8;
  uVar30 = uVar29 + (uVar18 ^ 0x174a431f) ^ DAT_182671f8c;
  *(uint *)(lVar2 + -0x670) = uVar30;
  uVar30 = uVar30 ^ DAT_182671f8c;
  *(uint *)(lVar2 + -0x61c) = uVar20 ^ uVar26;
  uVar6 = DAT_182671ecc;
  uVar29 = uVar20 << 0x11 ^ DAT_182671f30;
  *(uint *)(lVar2 + -0x6c0) = uVar29;
  uVar20 = DAT_182671c8c;
  uVar29 = uVar29 ^ DAT_182671f30;
  uVar32 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0xa60) =
       (CONCAT44(uVar11,uVar4) ^ 0x332873f2ee7a10e3) << ((byte)uVar10 & 0x3f);
  uVar27 = DAT_182671c7c;
  *(uint *)(lVar2 - ((ulonglong)uVar5 ^ 0xfffff623)) = uVar30 - uVar29 ^ uVar6;
  uVar29 = DAT_182671c94;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x8f0) =
       CONCAT44(DAT_182671c94,uVar20) ^ 0x940ab80d044c31c0 |
       CONCAT44(uVar27,uVar27) ^ 0x13e3087fc235b34f;
  uVar30 = DAT_182671f4c;
  uVar28 = *(uint *)(lVar2 + -0x644) ^ DAT_182671d0c;
  uVar12 = (*(uint *)(lVar3 - (uVar32 ^ 0x10009dc)) ^ uVar6) * uVar28 ^ DAT_182671d08;
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 + -0x61c) ^ uVar26) * (uVar15 ^ 0x9f72b1ee) ^ DAT_182671fa4;
  uVar20 = DAT_182671c68;
  *(uint *)(lVar3 + -0x94) = uVar12;
  *(uint *)(lVar3 + -0x4ac) =
       (*(uint *)(lVar3 - ((ulonglong)uVar29 ^ 0xfffff9cb)) ^ DAT_182671fa4) +
       (uVar12 ^ DAT_182671d08) ^ uVar30;
  uVar12 = (uVar30 ^ *puVar13) << (((byte)uVar20 ^ 0x5d) & 0x1f) ^ DAT_182671f7c;
  uVar29 = (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + uVar28 ^ DAT_182671d64;
  uVar30 = (uVar30 ^ *(uint *)(lVar3 + -0x4ac)) >> 0x13 ^ DAT_182671dd8;
  *(uint *)(lVar3 + -0xae4) = uVar29;
  uVar29 = uVar29 ^ DAT_182671d64;
  *(uint *)(lVar3 + -0x684) = uVar30;
  uVar30 = uVar30 ^ DAT_182671dd8;
  *(uint *)(lVar3 + -0x54) = uVar12;
  uVar12 = uVar12 ^ DAT_182671f7c;
  *(uint *)(lVar3 + -0x94c) = uVar29 ^ uVar7;
  uVar29 = (uVar12 | uVar30) ^ DAT_182671ec4;
  uVar10 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar3 + -0x76c) = uVar11 ^ 0x89521c1 | 0x776a9808;
  *(uint *)(lVar3 + -0x1c8) = uVar29;
  uVar12 = DAT_182671f14;
  uVar30 = DAT_182671ebc;
  uVar29 = DAT_182671c94;
  uVar32 = (ulonglong)DAT_182671c94;
  uVar16 = (ulonglong)DAT_182671dbc;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0x81808220)) =
       *(uint *)(lVar3 - (uVar10 ^ 0x8b087099)) ^ DAT_182671ec4 ^ DAT_182671f14;
  lVar2 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x6c0) = uVar30 ^ uVar7 ^ *(uint *)(DAT_182671c40 + -0x94c);
  *(uint *)(lVar2 - (uVar31 ^ 0xfffff623)) = *(uint *)(lVar2 + -0x670) ^ DAT_182671f34 ^ uVar12;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (CONCAT44(uVar19,DAT_182671c7c) ^ 0xa364657c1f14cc21) + *(longlong *)(lVar2 + -0xc18);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x8b085ac1)) =
       *(longlong *)(lVar2 - (uVar32 ^ 0xfffff657)) +
       (CONCAT44(uVar11,uVar24) ^ 0xffffffff9e72b1eb) * 0x20 +
       (CONCAT44(uVar21,uVar18) ^ 0x818084508b085111) ^ uVar16;
  bVar14 = (byte)DAT_182671eac;
  *(ulonglong *)(lVar2 + -0x30) =
       (CONCAT44(uVar4,uVar29) ^ 0x43ffbae8649a2e0b) - *(longlong *)(lVar2 + -0xc38);
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x9f72ba2b)) ^ uVar16) ^ bVar14 ^
       (byte)DAT_182671e0c;
  uVar24 = DAT_182671f6c;
  uVar20 = DAT_182671e88;
  uVar16 = (ulonglong)DAT_182671e88;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x818084c4)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0xfffff98f)) ^ uVar12) *
       (*(uint *)(lVar2 + -0x61c) ^ uVar26);
  *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x87c7eac4)) =
       (bVar14 ^ *(byte *)(lVar2 + -0x1c3)) ^ uVar20;
  uVar21 = DAT_182671c90;
  *(uint *)(lVar2 - (uVar22 ^ 0x9e72b547)) =
       (*(uint *)(lVar2 + -0x9dc) ^ DAT_182671f34) + (DAT_182671c8c ^ 0x9d42121e) ^ uVar24;
  uVar20 = *(uint *)(lVar2 + -0x634) ^ uVar20;
  uVar29 = uVar20 << 4 ^ DAT_182671e14;
  uVar21 = uVar20 << ((byte)uVar21 & 0x1f) ^ DAT_182671d4c;
  *(uint *)(lVar2 + -0x54) = uVar21;
  uVar21 = uVar21 ^ DAT_182671d4c;
  *(uint *)(lVar2 + -0xae4) = uVar29;
  uVar21 = (uVar24 ^ *(uint *)(lVar2 + -0x4ac)) - uVar21 ^ DAT_182671fac;
  uVar29 = uVar29 ^ DAT_182671e14;
  *(uint *)(lVar2 + -0x684) = uVar21;
  uVar21 = (uVar21 ^ DAT_182671fac) * (uVar30 ^ *(uint *)(lVar2 + -0x6c0));
  *(uint *)(lVar2 + -0x644) = uVar21 ^ uVar6;
  uVar10 = *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x9f72b4fb));
  uVar29 = uVar29 + uVar21;
  *(uint *)(lVar2 + -0x76c) = uVar29 ^ uVar24;
  bVar14 = (byte)(uVar5 >> 0x18);
  uVar21 = uVar29 << ((bVar14 ^ 0xf2) & 0x1f) ^ DAT_182671d34;
  bVar8 = (byte)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0x380) = uVar10 | *(ulonglong *)(lVar2 + -0xbd8);
  *(uint *)(lVar2 + -0x1c8) = uVar21;
  uVar20 = DAT_182671dd4;
  uVar21 = DAT_182671c8c;
  uVar17 = (ulonglong)DAT_182671dd4;
  *(uint *)(lVar2 - ((ulonglong)uVar18 ^ 0x8b08584d)) =
       (*(uint *)(lVar2 + -0x76c) ^ uVar24) >> ((bVar8 ^ 0x42) & 0x1f) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x760) = *(ulonglong *)(lVar2 + -0x2b0) | *(ulonglong *)(lVar2 + -0xd88);
  *(uint *)(lVar2 + -0x61c) =
       (*(uint *)(lVar2 - (uVar31 ^ 0xfffff6b3)) ^ uVar30 |
       *(uint *)(lVar2 + -0x1c8) ^ DAT_182671d34) ^ DAT_182671d40;
  uVar20 = (uVar30 ^ *(uint *)(lVar2 + -0x6c0)) + (*(uint *)(lVar2 + -0x5d4) ^ uVar20) ^
           DAT_182671d00;
  *(uint *)(lVar2 + -0x670) = uVar20;
  uVar20 = uVar20 ^ DAT_182671e5c ^ DAT_182671d00;
  *(uint *)(lVar2 + -0x94) = uVar20;
  uVar24 = *(uint *)(lVar2 - ((ulonglong)uVar21 ^ 0x100061c)) ^ DAT_182671ea8 ^ DAT_182671d40;
  *(uint *)(lVar2 + -0x4ac) = DAT_182671cd0 ^ DAT_182671e5c ^ uVar20;
  *(uint *)(lVar2 + -0x9dc) = uVar24;
  uVar32 = CONCAT44(uVar27,DAT_182671c68);
  uVar20 = DAT_182671f80 ^ DAT_182671ea8;
  *(ulonglong *)(lVar2 + -0x920) =
       (CONCAT44(uVar4,uVar21) ^ 0x65d463dba07aef85) +
       *(longlong *)(lVar2 - ((ulonglong)uVar19 ^ 0x87c7ef70));
  *(uint *)(lVar2 - (uVar23 ^ 0x874768f4)) = uVar20 ^ uVar24;
  uVar10 = (ulonglong)DAT_182671f1c;
  *(ulonglong *)(lVar2 + -0xa70) = *(ulonglong *)(lVar2 + -0x110) | 0xae9e01367cb959c;
  pbVar33 = (byte *)((uVar32 ^ 0xff3c538f81808450) * 0x20 +
                     (CONCAT44(uVar11,uVar19) ^ 0xffffffff87c7eceb) + *(longlong *)(lVar2 + -0x9a8))
  ;
  *(ulonglong *)(lVar2 + -0x5a0) = (ulonglong)pbVar33 ^ uVar10;
  uVar4 = DAT_182671c7c;
  uVar25 = (ulonglong)DAT_182671e60;
  uVar23 = (ulonglong)DAT_182671d94;
  bVar8 = (byte)DAT_182671c74;
  *(byte *)(lVar2 + -0x1c3) = *pbVar33 ^ (byte)DAT_182671eec ^ (byte)DAT_182671e0c;
  *(uint *)(lVar2 + -0x684) = *(uint *)(*(ulonglong *)(lVar2 + -0x9d0) ^ uVar25) ^ DAT_182671f14;
  uVar10 = (ulonglong)DAT_182671ed0;
  *(byte *)(*(ulonglong *)(lVar2 + -0xad0) ^ (ulonglong)DAT_182671ca0) = bVar8 ^ 0xb0;
  uVar20 = DAT_182671c94;
  uVar32 = (ulonglong)DAT_182671cfc;
  *(byte *)(*(ulonglong *)(lVar2 + -0x428) ^ uVar10) = bVar14 ^ 0x79;
  uVar10 = (ulonglong)DAT_182671c98;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb90) ^ uVar32) = (byte)uVar20 ^ 0x8a;
  uVar32 = (ulonglong)DAT_182671d68;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar31 ^ 0xfffff3af)) ^ uVar10) = (byte)uVar15 ^ 0x28;
  *(byte *)(*(ulonglong *)(lVar2 + -0x6a8) ^ uVar32) = (byte)uVar4 ^ 0xeb;
  *(byte *)(*(ulonglong *)(lVar2 + -0x690) ^ uVar23) = (byte)uVar4 ^ 0xc;
  bVar14 = (byte)DAT_182671c90;
  uVar10 = (ulonglong)DAT_182671c90;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x9f72b15b)) ^ (ulonglong)DAT_182671fb4) =
       (byte)uVar21 ^ 0x4f;
  uVar32 = (ulonglong)DAT_182671d08;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar10 ^ 0x8b0871c1)) ^ (ulonglong)DAT_182671f50) =
       bVar14 ^ 0x2c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x5f8) ^ uVar32) = bVar14 ^ 0x53;
  uVar4 = DAT_182671c68;
  uVar10 = (ulonglong)DAT_182671f98;
  *(byte *)(*(ulonglong *)(lVar2 + -0x988) ^ (ulonglong)DAT_182671e2c) = (byte)uVar20 ^ 0x58;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x180) ^ uVar10) = 0xf7;
  *(byte *)(*(ulonglong *)(lVar2 + -0xd98) ^ uVar25) = (byte)uVar4 ^ 0xa2;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x150) ^ uVar23) = 0x19;
  *(byte *)(*(ulonglong *)(lVar2 + -0x4d8) ^ (ulonglong)DAT_182671e44) = (byte)uVar15 ^ 0x46;
  uVar10 = (ulonglong)DAT_182671dcc;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar22 ^ 0x9e72b57b)) ^ (ulonglong)DAT_182671e40) = bVar8 ^ 0xaf
  ;
  *(byte *)(*(ulonglong *)(lVar2 + -0x598) ^ uVar17) = (byte)uVar18 ^ 0x6e;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x1f8) ^ uVar16) = 0x67;
  uVar32 = (ulonglong)DAT_182671d78;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x5b8) ^ uVar10) = 0x13;
  *(byte *)(*(ulonglong *)(lVar2 + -0x238) ^ uVar32) = (byte)uVar4 ^ 0x74;
  uVar10 = (ulonglong)DAT_182671ee0;
  *(byte *)(*(ulonglong *)(lVar2 + -0xaa0) ^ (ulonglong)DAT_182671d70) = bVar14 ^ 0x49;
  *(byte *)(*(ulonglong *)(lVar2 + -0x4e8) ^ uVar10) = (byte)uVar18 ^ 0x26;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar1 ^ uVar18;
  return;
}



############ FUN_ 180fcdea0 size=4179 ############

void FUN_180fcdea0(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  ulonglong uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte *pbVar19;
  uint *puVar20;
  uint uVar21;
  uint *puVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint *puVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  bVar1 = (byte)DAT_182671f44;
  uVar25 = DAT_182671f30;
  uVar18 = DAT_182671e48;
  uVar11 = DAT_182671c9c;
  uVar14 = DAT_182671c64;
  uVar4 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c58;
  uVar21 = DAT_182671c64 & DAT_182671c58;
  uVar10 = *(uint *)(&DAT_182613218 + DAT_1826722fc) ^ DAT_182671c58;
  uVar7 = *(uint *)(&DAT_182613220 + DAT_1826722fc) ^ DAT_182671c64;
  uVar16 = *(uint *)(DAT_182671c40 + -0x94c) ^ DAT_182671fb4 ^ DAT_182671dbc;
  uVar24 = (DAT_182671dd4 ^ *(uint *)(DAT_182671c40 + -0x5d4)) +
           (DAT_182671ee0 ^ *(uint *)(DAT_182671c40 + -0x1c8)) ^ DAT_182671d50;
  DAT_182671c48 = uVar21;
  *(uint *)(DAT_182671c40 + -0x634) = uVar16;
  *(uint *)(lVar2 + -0x4ac) = uVar16 ^ uVar11 ^ DAT_182671fb4;
  *(uint *)(lVar2 + -0x58c) = uVar24;
  uVar16 = uVar24 ^ DAT_182671cdc ^ DAT_182671d50;
  *(uint *)(lVar2 + -0x76c) = uVar16;
  *(uint *)(lVar2 + -0x6c0) = uVar16 ^ uVar25 ^ DAT_182671cdc;
  pbVar19 = (byte *)(*(longlong *)(lVar2 + -0x9a8) + 3 +
                    (CONCAT44(uVar21,uVar14) ^ 0x20084e13b8785f97) * 0x20);
  *(ulonglong *)(lVar2 + -0x8a8) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182671d98;
  *(byte *)(lVar2 + -0xa13) = *pbVar19 ^ bVar1 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x1e0) ^ (ulonglong)DAT_182671da0) = (byte)uVar4 ^ 0x2f;
  *(uint *)(lVar2 - (uVar32 ^ 0x608d4e87)) = (bVar1 ^ *(byte *)(lVar2 + -0xa13)) ^ uVar18;
  uVar16 = DAT_182671cec;
  puVar22 = (uint *)(lVar2 - ((ulonglong)uVar21 ^ 0x20084863));
  *puVar22 = (uVar11 ^ *(uint *)(lVar2 + -0x4ac)) + (uVar4 ^ 0xfccf5c0d) ^ DAT_182671cec;
  uVar28 = DAT_182671f08;
  uVar11 = DAT_182671d60;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar4 ^ 0x608d4443)) =
       *(ulonglong *)(DAT_182671c40 + -0x7c0) >> (((byte)uVar14 ^ 0xb2) & 0x3f);
  uVar24 = (*(uint *)(lVar2 + -0x94) ^ uVar18) << (((byte)uVar4 ^ 2) & 0x1f);
  *(uint *)(lVar2 + -0x27c) = uVar24 ^ uVar11;
  *(uint *)(lVar2 - ((ulonglong)uVar21 ^ 0x200847cf)) =
       (*(uint *)(lVar2 + -0x670) ^ uVar16) - uVar24 ^ DAT_182671cf8;
  *(byte *)(lVar2 + -0xc29) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x20084873)) ^ (ulonglong)DAT_182671f20
                ) ^ (byte)DAT_182671e0c;
  *(uint *)(lVar2 - ((ulonglong)uVar14 ^ 0xb8785913)) =
       (*(uint *)(lVar2 + -0x6c0) ^ uVar25) * (*(uint *)(lVar2 + -0x9dc) ^ DAT_182671cf8) ^ uVar28;
  uVar8 = DAT_182671d1c;
  puVar20 = (uint *)(lVar2 - ((ulonglong)uVar4 ^ 0x608d480f));
  *puVar20 = (*(uint *)(lVar2 + -0x94) ^ uVar18) * (uVar14 ^ 0xb8785f94) ^ uVar11;
  uVar17 = DAT_182671f40;
  uVar11 = (*(uint *)(lVar2 + -0x684) ^ uVar28) + (*(uint *)(lVar2 + -0x61c) ^ uVar11);
  *(uint *)(lVar2 + -0x54) = uVar11 ^ DAT_182671f40;
  puVar26 = (uint *)(lVar2 - ((ulonglong)uVar4 ^ 0x608d44f7));
  *puVar26 = uVar11 * 0x2000 ^ uVar8;
  uVar18 = DAT_182671cfc;
  uVar24 = DAT_182671c80;
  uVar11 = DAT_182671c4c;
  *(uint *)(lVar2 - ((ulonglong)uVar14 ^ 0xb8785e5f)) =
       (uVar17 ^ *(uint *)(lVar2 + -0x54)) >> ((byte)uVar21 & 0x1f) ^ DAT_182671cfc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x608d4c3b)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x608d4a1b)) ^ CONCAT44(uVar24,uVar21) ^
       0xece530feda9a30c2;
  *(uint *)(lVar2 + -0x58c) =
       (*(uint *)(lVar2 + -0xae4) ^ uVar8 | uVar18 ^ *(uint *)(lVar2 + -0x1c8)) ^ DAT_182671e1c;
  uVar18 = DAT_182671c70;
  uVar23 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar2 + -0x94c) = (uVar4 ^ 0xf1feddd6) - (*puVar22 ^ uVar16);
  *(uint *)(lVar2 - ((ulonglong)uVar14 ^ 0xb87858fb)) =
       (*(uint *)(lVar2 + -0x6c0) ^ uVar25) + (DAT_182671dd4 ^ *(uint *)(lVar2 + -0x5d4)) ^
       DAT_182671cc4;
  *(uint *)(lVar2 + -0x634) = *(uint *)(lVar2 + -0x76c) ^ DAT_182671e18 ^ DAT_182671cc4;
  uVar25 = DAT_182671df4;
  uVar17 = *(uint *)(lVar2 + -0x58c) ^ DAT_182671df4;
  *(ulonglong *)(lVar2 + -0xc18) =
       *(longlong *)(lVar2 - ((ulonglong)uVar11 ^ 0xffbd55cf)) -
       (CONCAT44(uVar4,uVar21) ^ 0xfdd3c7531b8dee94);
  uVar16 = DAT_182671c64;
  *(uint *)(lVar2 - (uVar23 ^ 0x87c7e85c)) = uVar17 ^ DAT_182671e1c;
  *(uint *)(lVar2 + -0x27c) = (uVar25 ^ *(uint *)(lVar2 + -0x4ac)) + (uVar16 ^ 0xb5e700c8);
  uVar12 = DAT_182671cd4;
  *(uint *)(lVar2 + -0x9dc) = *(uint *)(lVar2 + -0x634) ^ DAT_182671cd4 ^ DAT_182671e18;
  uVar4 = DAT_182671c60;
  uVar9 = (ulonglong)DAT_182671c88;
  *(longlong *)(lVar2 - (uVar32 ^ 0x608d4d93)) =
       *(longlong *)(lVar2 - ((ulonglong)uVar14 ^ 0xb87855f7)) - *(longlong *)(lVar2 + -0x680);
  *(uint *)(lVar2 - (uVar9 ^ 0xa6d51fcb)) = DAT_182671f68 ^ uVar25 ^ *(uint *)(lVar2 + -0x4ac);
  pbVar19 = (byte *)(*(longlong *)(lVar2 + -0x9a8) + 0xe);
  *(ulonglong *)(lVar2 + -0xad0) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182671f4c;
  bVar1 = (byte)DAT_182671d24;
  uVar17 = DAT_182671ccc;
  *(ulonglong *)(lVar2 + -0x960) =
       (CONCAT44(uVar4,uVar24) ^ 0x6f65ba7963f97702) +
       *(longlong *)(lVar2 - ((ulonglong)uVar21 ^ 0x2008422b));
  *(byte *)(lVar2 - ((ulonglong)uVar14 ^ 0xb8785e54)) = *pbVar19 ^ bVar1 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8e0) ^ (ulonglong)DAT_182671fb0) = (byte)uVar18 ^ 199;
  *(uint *)(lVar2 - (uVar32 ^ 0x608d4897)) = (*(byte *)(lVar2 + -0x1c3) ^ bVar1) ^ uVar17;
  uVar18 = DAT_182671c78;
  uVar4 = DAT_182671c54;
  uVar15 = (ulonglong)DAT_182671c78;
  uVar25 = *(uint *)(lVar2 + -0x684) ^ uVar17;
  uVar27 = (*(uint *)(lVar2 + -0x94) ^ DAT_182671f68) + (DAT_182671c78 ^ 0x1b057abe) ^ DAT_182671e9c
  ;
  uVar9 = CONCAT44(DAT_182671c78,DAT_182671c78);
  *(uint *)(lVar2 + -0x61c) = uVar27;
  uVar27 = uVar27 ^ DAT_182671e9c;
  *(uint *)(lVar2 + -0x54) = uVar25 * 0x20000 ^ uVar28;
  uVar6 = DAT_182671f24;
  lVar3 = DAT_182671c40;
  uVar28 = uVar27 + uVar25 * -0x20000 ^ DAT_182671f88;
  *(ulonglong *)(lVar2 + -0x888) =
       (uVar9 ^ 0xfdc1f562cc688fa) << ((byte)*(undefined8 *)(lVar2 + -0x228) & 0x3f);
  uVar25 = DAT_182671c6c;
  uVar33 = (ulonglong)DAT_182671c6c;
  uVar9 = CONCAT44(DAT_182671c84,uVar16);
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x73cd7be4)) = uVar28;
  uVar5 = DAT_182671e34;
  uVar28 = (*(uint *)(lVar3 + -0x9dc) ^ uVar12) * (*(uint *)(lVar3 + -0xae4) ^ DAT_182671f88) ^
           DAT_182671ee8;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar9 ^ 0xe89b419743728bad) - (CONCAT44(uVar24,uVar4) ^ 0xf207443f2cb50cfd);
  *(uint *)(lVar3 + -0x1c8) = uVar28;
  uVar28 = uVar28 ^ DAT_182671ee8;
  *(uint *)(lVar3 + -0x670) = (*(uint *)(lVar3 + -0x684) ^ uVar17) * 0xe ^ DAT_182671d3c;
  *(uint *)(lVar3 + -0x94c) =
       (*(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0x87476ed0)) ^ DAT_182671d3c) + uVar28 ^ uVar8;
  uVar28 = DAT_182671dac;
  uVar4 = DAT_182671c50;
  uVar29 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar3 + -0x5e8) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar32 ^ 0x608d458b)) ^ CONCAT44(uVar5,uVar5)) ^
       CONCAT44(uVar6,uVar6);
  uVar17 = DAT_182671c8c;
  uVar18 = DAT_182671c5c;
  uVar31 = (ulonglong)DAT_182671c8c;
  uVar30 = (ulonglong)DAT_182671c5c;
  uVar9 = (ulonglong)DAT_182671c68;
  uVar16 = (*(uint *)(lVar3 + -0x94c) ^ uVar8) >> (((byte)uVar16 ^ 0x84) & 0x1f) ^ DAT_182671fa4;
  *(uint *)(lVar3 + -0x6c0) =
       (*(uint *)(lVar3 - ((ulonglong)uVar11 ^ 0xffbd56d3)) ^ uVar8) <<
       (((byte)DAT_182671c58 ^ 0x1e) & 0x1f) ^ DAT_182671e30;
  *(uint *)(lVar3 - (uVar9 ^ 0x100076c)) = uVar16;
  uVar16 = DAT_182671c7c;
  uVar8 = DAT_182671dd4 ^ *(uint *)(lVar3 + -0x5d4);
  uVar9 = (ulonglong)DAT_182671c7c;
  *(uint *)(lVar3 + -0x58c) =
       (*(uint *)(lVar3 + -0x76c) ^ DAT_182671fa4 | *(uint *)(lVar3 + -0x6c0) ^ DAT_182671e30) ^
       DAT_182671e20;
  uVar12 = (*(uint *)(lVar3 + -0x9dc) ^ uVar12) + uVar8 ^ DAT_182671d8c;
  *(uint *)(lVar3 + -0x27c) = uVar12;
  *(uint *)(lVar3 + -0x634) = uVar12 ^ DAT_182671ce0 ^ DAT_182671d8c;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x4787a780)) =
       *(ulonglong *)(lVar3 + -0xc38) ^ 0xd89310f4c1825627;
  *(uint *)(lVar3 + -0x4ac) = *(uint *)(lVar3 + -0x58c) ^ uVar28 ^ DAT_182671e20;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x20084dcb)) =
       CONCAT44(uVar16,uVar17) ^ CONCAT44(uVar18,uVar4) ^ 0xd23838e397d0d5e3;
  uVar27 = DAT_182671f78;
  uVar12 = DAT_182671f54;
  lVar2 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671ef4;
  *(uint *)(lVar3 + -0x94) = *(uint *)(lVar3 - (uVar9 ^ 0xff3c55bb)) ^ DAT_182671f78 ^ DAT_182671ce0
  ;
  uVar16 = DAT_182671c90;
  uVar4 = DAT_182671c74;
  uVar9 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x592ae6bd)) =
       (*(uint *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0x9e72b547)) ^ uVar28) - (uVar25 ^ 0xfa568535)
  ;
  uVar6 = DAT_182671f14;
  *(uint *)(lVar2 + -0x54) = *(uint *)(lVar2 - ((ulonglong)uVar11 ^ 0xffbd5b33)) ^ uVar12 ^ uVar28;
  pbVar19 = (byte *)(*(longlong *)(lVar2 - (uVar9 ^ 0xdc8c8d21)) +
                     (CONCAT44(DAT_182671c54,uVar21) ^ 0xebb1729e20084e13) * 0x20 +
                    (CONCAT44(uVar14,DAT_182671c68) ^ 0xb8785f9701000019));
  *(ulonglong *)(lVar2 + -0x428) = (ulonglong)pbVar19 ^ uVar29;
  bVar1 = (byte)DAT_182671ed4;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0xd31) = *pbVar19 ^ (byte)DAT_182671ed4 ^ (byte)DAT_182671e0c;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0xa6d51627)) ^ (ulonglong)DAT_182671f84) =
       0xf3;
  *puVar26 = (bVar1 ^ *(byte *)(lVar2 + -0xd31)) ^ uVar6;
  uVar8 = DAT_182671dcc;
  uVar5 = DAT_182671c94;
  uVar9 = CONCAT44(uVar18,DAT_182671c84);
  *(uint *)(lVar2 - ((ulonglong)uVar18 ^ 0x608d4890)) =
       (uVar12 ^ *(uint *)(lVar2 + -0x54)) + (DAT_182671c70 ^ 0x1b85feee) ^ DAT_182671e6c;
  uVar28 = DAT_182671e50;
  *(ulonglong *)(lVar2 + -0x828) =
       (uVar9 ^ 0xb5e13183b3e6094b) >> ((byte)*(undefined8 *)(lVar2 + -0xbd8) & 0x3f);
  uVar14 = DAT_182671d48;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - (uVar33 ^ 0x73cd70c8)) =
       (*(uint *)(lVar2 - (uVar31 ^ 0x783819f4)) ^ uVar6) << (((byte)uVar5 ^ 0xee) & 0x1f) ^ uVar28;
  uVar13 = (*(uint *)(lVar3 + -0x684) ^ DAT_182671e6c) - (uVar28 ^ *(uint *)(lVar3 + -0x1c8));
  *(uint *)(lVar3 + -0x670) = uVar13 ^ uVar14;
  uVar11 = DAT_182671c80;
  uVar13 = (*(uint *)(lVar3 + -0x94) ^ uVar27) * uVar13;
  *(longlong *)(lVar3 + -0xd88) = 0x6a4ede864f58083f - *(longlong *)(lVar3 + -0x5e8);
  uVar12 = DAT_182671d88;
  *(uint *)(lVar3 + -0x94c) = uVar13 ^ uVar8;
  uVar11 = (*(uint *)(lVar3 + -0xae4) ^ uVar6) * (uVar11 ^ 0x68a0875e) ^ DAT_182671cf8;
  *(uint *)(lVar3 + -0x6c0) = uVar11;
  uVar29 = (ulonglong)DAT_182671c84;
  uVar9 = CONCAT44(DAT_182671c88,DAT_182671c4c);
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c84 ^ 0x87c7eb9c)) =
       uVar13 + (uVar11 ^ DAT_182671cf8) ^ uVar12;
  lVar2 = DAT_182671c40;
  bVar1 = (byte)uVar25;
  puVar22 = (uint *)(DAT_182671c40 + -0x76c);
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (uVar9 ^ 0xb6c93bbf8299c892) << (((byte)uVar5 ^ 0xd1) & 0x3f);
  uVar25 = (*puVar22 ^ uVar12) << ((bVar1 ^ 0xd) & 0x1f) ^ DAT_182671d98;
  *(uint *)(lVar2 + -0x9dc) = uVar25;
  lVar3 = DAT_182671c40;
  uVar25 = uVar25 ^ DAT_182671d98;
  *(ulonglong *)(lVar2 + -0xda8) =
       CONCAT44(uVar17,uVar18) ^ 0x26c14a7b5081c05c | *(ulonglong *)(lVar2 + -0xd88);
  uVar11 = (*(uint *)(lVar2 + -0x76c) ^ uVar12) >> ((bVar1 ^ 0x13) & 0x1f) ^ DAT_182671e74;
  *(uint *)(lVar3 + -0x27c) = uVar11;
  *(uint *)(lVar3 + -0x58c) = (uVar25 | uVar11 ^ DAT_182671e74) ^ DAT_182671e54;
  *(uint *)(lVar3 - (uVar30 ^ 0x608d4820)) = (uVar28 ^ *(uint *)(lVar3 + -0x1c8)) * -0x5b3faf60;
  *puVar20 = (*(uint *)(lVar3 + -0x94) ^ uVar27) + (DAT_182671dd4 ^ *(uint *)(lVar3 + -0x5d4)) ^
             DAT_182671d84;
  *(uint *)(lVar3 - (uVar32 ^ 0x608d4abf)) =
       *(uint *)(lVar3 + -0x61c) ^ DAT_182671f3c ^ DAT_182671d84;
  *(uint *)(lVar3 - ((ulonglong)uVar4 ^ 0x9e72b1bf)) =
       *(uint *)(lVar3 - (uVar23 ^ 0x87c7e97c)) ^ DAT_182671e54 ^ uVar14;
  uVar9 = *(ulonglong *)(lVar3 + -0x8f0) >> (((byte)uVar16 ^ 0x92) & 0x3f);
  *(ulonglong *)(lVar3 + -0x920) = uVar9;
  uVar30 = CONCAT44(uVar24,DAT_182671c68);
  *(uint *)(lVar3 + -0x684) =
       *(uint *)(lVar3 - ((ulonglong)uVar16 ^ 0xdc8c8025)) ^ DAT_182671f3c ^ DAT_182671fb0;
  uVar25 = DAT_182671f38;
  uVar11 = DAT_182671f24;
  uVar18 = DAT_182671f24 & 0xff;
  *(ulonglong *)(lVar3 + -0x4b8) =
       (CONCAT44(uVar4,uVar16) ^ 0x3940646811fa2669) >> ((byte)uVar9 & 0x3f);
  uVar16 = DAT_182671e14;
  *(uint *)(lVar3 - (uVar29 ^ 0x87c7ea80)) =
       *(uint *)(lVar3 - (uVar32 ^ 0x608d4e47)) ^ uVar25 ^ uVar14;
  uVar9 = (ulonglong)DAT_182671e38;
  pbVar19 = (byte *)((uVar30 ^ 0x68a0874701000000) * 0x20 +
                     (CONCAT44(uVar21,uVar17) ^ 0x20084e1378381314) + *(longlong *)(lVar3 + -0x9a8))
  ;
  uVar30 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar3 + -0xae4) = *(uint *)(lVar3 + -0x670) ^ uVar25 | uVar14 ^ *(uint *)(lVar3 + -0x54)
  ;
  *(ulonglong *)(lVar3 + -0xb90) = (ulonglong)pbVar19 ^ uVar9;
  *(byte *)(lVar3 + -0x5b9) = *pbVar19 ^ (byte)uVar11 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar3 + -0x6b0) ^ (ulonglong)DAT_182671ca0) = (byte)uVar4 ^ 0x27;
  *(uint *)(lVar3 + -0x94c) = uVar18 ^ *(byte *)(lVar3 + -0x5b9) ^ uVar16;
  uVar11 = DAT_182671c7c ^ 0x637e4191;
  *(longlong *)(lVar3 - ((ulonglong)DAT_182671c60 ^ 0x592ae689)) =
       *(longlong *)(lVar3 + -0x920) + 0x5e6ccfd9eab14247;
  uVar18 = DAT_182671c78;
  *(uint *)(lVar3 + -0x6c0) = (*(uint *)(lVar3 + -0x670) ^ uVar25) + uVar11 ^ DAT_182671f5c;
  uVar11 = DAT_182671c50;
  uVar9 = (ulonglong)DAT_182671c50;
  uVar25 = (*(uint *)(lVar3 - (uVar30 ^ 0xebb17bd2)) ^ uVar16) << (((byte)uVar18 ^ 0xb1) & 0x1f) ^
           DAT_182671f10;
  uVar14 = *(uint *)(lVar3 + -0x684) ^ DAT_182671fb0;
  *(uint *)(lVar3 + -0x76c) = uVar25;
  uVar18 = DAT_182671cd8;
  uVar25 = (*(uint *)(lVar3 - (uVar30 ^ 0xebb1745e)) ^ DAT_182671f5c) - (uVar25 ^ DAT_182671f10) ^
           DAT_182671eb4;
  *(uint *)(lVar3 + -0x9dc) = uVar25;
  *(uint *)(lVar3 - (uVar15 ^ 0x87476adc)) = uVar14 * (uVar25 ^ DAT_182671eb4) ^ uVar18;
  uVar14 = DAT_182671df4;
  bVar1 = (byte)DAT_182671c5c;
  uVar16 = (*(uint *)(lVar3 - (uVar9 ^ 0x4787a924)) ^ uVar16) * (DAT_182671c84 ^ 0x87c7ecf4) ^
           DAT_182671cbc;
  *(uint *)(lVar3 + -0x1c8) = uVar16;
  *(uint *)(lVar3 - ((ulonglong)uVar11 ^ 0x4787a65c)) =
       (uVar18 ^ *(uint *)(lVar3 + -0x27c)) + (uVar16 ^ DAT_182671cbc) ^ uVar14;
  *(uint *)(lVar3 - (uVar9 ^ 0x4787a0fc)) =
       (*(uint *)(lVar3 + -0x634) ^ uVar14) << ((bVar1 ^ 0x19) & 0x1f) ^ DAT_182671e28;
  uVar11 = *(uint *)(lVar3 + -0x94) ^ DAT_182671e28;
  uVar18 = (*(uint *)(lVar3 + -0x634) ^ uVar14) >> 0x13 ^ DAT_182671da8;
  *(uint *)(lVar3 + -0x61c) = uVar18;
  *(uint *)(lVar3 - ((ulonglong)uVar4 ^ 0x9e72b467)) =
       (uVar18 ^ DAT_182671da8 | uVar11) ^ DAT_182671db4;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar7 * 4) = uVar10;
  return;
}



############ FUN_ 180fe4010 size=5459 ############

void FUN_180fe4010(void)

{
  undefined8 *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  byte bVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong *puVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  uint uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  byte local_138;
  byte local_108;
  byte local_100;
  byte local_d8;
  
  uVar23 = DAT_182671c70;
  uVar7 = DAT_182671c68;
  uVar16 = DAT_182671c50;
  uVar15 = DAT_182671c4c;
  uVar47 = (ulonglong)DAT_182671c68;
  uVar38 = (ulonglong)DAT_182671c70;
  DAT_182671c58 = DAT_182671c50 - DAT_182671c4c;
  DAT_182671c84 = ~DAT_182671c68;
  uVar45 = DAT_182671c70 | DAT_182671c78;
  uVar35 = DAT_182671c64 | DAT_182671c54;
  uVar52 = DAT_182671df4 | DAT_182671d18;
  uVar19 = DAT_182671f78 | DAT_182671ccc;
  uVar20 = DAT_182671cfc ^ DAT_182671f44;
  uVar49 = *(uint *)(&DAT_182613218 + DAT_18267204c) ^ DAT_182671c68;
  uVar13 = *(uint *)(&DAT_182613220 + DAT_18267204c) ^ DAT_182671c84;
  uVar14 = uVar20 & 0xff;
  DAT_182671d6c = ((uVar20 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar42 = (ulonglong)DAT_182671c50;
  puVar54 = (ulonglong *)(DAT_182671c40 - (uVar42 ^ 0xff805d1));
  uVar30 = CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar31 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar18 = (ulonglong)DAT_182671d6c;
  uVar24 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar14 = DAT_182671f44 & 0xff;
  DAT_182671c7c = uVar45;
  DAT_182671c94 = uVar35;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (uVar30 ^ *puVar54) - (uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0x680)) ^ uVar24;
  DAT_182671f44 = ((DAT_182671f44 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar32 = CONCAT44(DAT_182671f10,DAT_182671f10);
  uVar25 = CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar26 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar48 = (ulonglong)uVar15;
  puVar27 = (ulonglong *)(DAT_182671c40 - (uVar48 ^ 0x9e3fe497));
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x828);
  uVar14 = DAT_182671cfc & 0xff;
  uVar28 = *puVar27 ^ *puVar2 ^ uVar26 ^ uVar25 ^ uVar32;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar28;
  uVar8 = DAT_182671c78;
  uVar6 = DAT_182671c58;
  DAT_182671cfc = ((DAT_182671cfc << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar34 = (ulonglong)DAT_182671c58;
  uVar50 = (ulonglong)DAT_182671c78;
  puVar43 = (ulonglong *)(DAT_182671c40 + -0xb18);
  uVar39 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *puVar43 = (uVar28 ^ uVar26) >> (((byte)uVar45 ^ 0x79) & 0x3f) ^ uVar39;
  uVar14 = DAT_182671df4 & 0xff;
  DAT_182671df4 = ((DAT_182671df4 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar17 = (ulonglong)uVar35;
  uVar36 = CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar29 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x3116050f)) =
       (uVar28 ^ uVar26) << (((byte)uVar23 ^ 0x53) & 0x3f) ^ uVar36;
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xa50);
  local_138 = (byte)uVar20;
  uVar14 = uVar52 & 0xff;
  *puVar3 = (*(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x157ef21e)) ^ uVar26) >>
            ((local_138 ^ *(byte *)(DAT_182671c40 + -0x2b0)) & 0x3f);
  DAT_182671dbc = ((uVar52 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar28 = (ulonglong)DAT_182671dbc;
  uVar53 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar29 = *(ulonglong *)(DAT_182671c40 - (uVar50 ^ 0x156d8b1c)) ^ uVar36 | uVar39 ^ *puVar43;
  uVar20 = DAT_182671d18 & 0xff;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar29 ^ uVar53;
  uVar14 = DAT_182671c54;
  lVar4 = DAT_182671c40;
  DAT_182671d18 = ((DAT_182671d18 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar40 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *puVar54 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0xfa928846)) ^ uVar32) -
             uVar29 ^ uVar40;
  uVar20 = DAT_182671ccc & 0xff;
  DAT_182671ccc = ((DAT_182671ccc << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar32 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  puVar51 = (ulonglong *)(lVar4 - ((ulonglong)uVar45 ^ 0x156dd5b4));
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x10085828)) =
       uVar32 ^ uVar53 ^ uVar24 ^ *puVar51 ^ *(ulonglong *)(lVar4 + -0x2b0);
  uVar20 = uVar19 & 0xff;
  DAT_182671e7c = ((uVar19 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar46 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  bVar12 = (byte)uVar15;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x71b81622)) =
       (*puVar27 ^ uVar32) >> ((bVar12 ^ 0xe0) & 0x3f) ^ uVar46;
  uVar52 = DAT_182671f78 & 0xff;
  uVar21 = DAT_182671f78 << 8;
  DAT_182671f78 = ((uVar21 | uVar52) << 8 | uVar52) << 8 | uVar52;
  bVar11 = (byte)uVar16;
  uVar55 = (ulonglong)DAT_182671f78;
  uVar41 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *puVar3 = (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0xa60)) << ((bVar11 ^ 0x10) & 0x3f) ^ uVar41;
  lVar4 = DAT_182671c40;
  uVar29 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar14 ^ 0xfa928a3e)) ^ uVar41 |
           uVar46 ^ *(ulonglong *)(DAT_182671c40 + -0x760);
  *puVar43 = uVar29 ^ uVar36;
  *(ulonglong *)(lVar4 + -0xb08) = CONCAT44(uVar7,uVar15) ^ 0x54810002e54013d0 | 0xa7ee7e91aaee80b;
  *puVar2 = (*(ulonglong *)(lVar4 - (uVar50 ^ 0x156d82a4)) ^ uVar24) - uVar29 ^ uVar40;
  puVar37 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671c84 ^ 0xcee9f410));
  uVar29 = uVar40 ^ uVar53 ^ uVar31 ^ *puVar37 ^ *(ulonglong *)(lVar4 + -0x680);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar29;
  *(ulonglong *)(lVar4 + -0x760) = (uVar29 >> 0x20 ^ uVar28) >> 8 ^ uVar32;
  local_100 = (byte)uVar35;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c64 ^ 0x157eff2e)) =
       (uVar53 ^ uVar29) << ((local_100 ^ 0x66) & 0x3f) ^ uVar46;
  uVar20 = DAT_182671c88;
  uVar33 = (ulonglong)DAT_182671c88;
  uVar29 = uVar46 ^ *puVar3 | *(ulonglong *)(lVar4 + -0x760) ^ uVar32;
  *(ulonglong *)(lVar4 + -0xb08) = uVar29 ^ uVar26;
  *(ulonglong *)(lVar4 - (uVar48 ^ 0x9e3fec47)) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x5e8)) - uVar29 ^ uVar36;
  uVar29 = *puVar2;
  *(ulonglong *)(lVar4 + -0x680) = uVar29 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0xb08);
  uVar19 = DAT_182671c88;
  lVar5 = DAT_182671c40;
  uVar22 = (uVar20 << 0x10 | uVar20 & 0xff00) << 8 | uVar20 >> 8 & 0xff00 | DAT_182671c88 >> 0x18;
  DAT_182671c48 = uVar22;
  *(ulonglong *)(lVar4 + -0xa60) =
       (CONCAT44(uVar20,uVar22) ^ 0xa6bc37aa9cb6dfc3) -
       (CONCAT44(uVar22,uVar20) ^ 0x89e433de932909ac);
  uVar31 = (uVar40 ^ *(ulonglong *)(lVar5 + -0x680)) >> (((byte)uVar20 ^ 0x33) & 0x3f);
  *(ulonglong *)(lVar5 + -0x7e8) = uVar31 ^ uVar39;
  uVar28 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0x70e10b1)) ^ uVar40) <<
           (((byte)uVar20 ^ 0xb) & 0x3f);
  *(ulonglong *)(lVar5 + -0x760) = uVar28 ^ uVar26;
  uVar31 = uVar31 | uVar28;
  *puVar3 = uVar31 ^ uVar53;
  lVar4 = DAT_182671c40;
  uVar14 = DAT_182671c58 ^ 0xedfa035c;
  uVar28 = *(ulonglong *)(DAT_182671c40 + -0x2b0);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = (uVar40 ^ uVar29) - uVar31 ^ uVar41;
  *(uint *)(lVar4 + -0x5d4) = (DAT_182671c64 ^ 0xe6ba1a71) + uVar14;
  uVar29 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xff80a59)) = uVar24 ^ uVar28 ^ *puVar43;
  uVar28 = (*(ulonglong *)(lVar4 + -0xa60) >> 0x20 ^ uVar18) >> 0x19;
  *(ulonglong *)(lVar4 + -0x680) = uVar28 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x7e8) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xfa928586)) ^ uVar40) + 0x4a13774153929ba3;
  uVar29 = (uVar24 ^ *(ulonglong *)(lVar4 + -0xa60)) << (((byte)DAT_182671c84 ^ 0xff) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar29 ^ uVar32;
  *puVar2 = uVar29 ^ 0x7380813263d011df;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0xfa928b76)) =
       (uVar29 | uVar28) ^ uVar46;
  uVar29 = *puVar43;
  *(ulonglong *)(lVar4 + -0x5e8) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x2b0)) - (uVar46 ^ uVar29) ^ uVar53;
  *(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xfffef296)) =
       uVar46 ^ uVar29 ^ *(ulonglong *)(lVar4 + -0xb08);
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       (uVar55 << 0x12 | (ulonglong)(((uVar21 & 0xffff | uVar52) << 8 | uVar52) >> 6)) ^
       *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x311609ef)) >> 0xe ^ uVar40;
  puVar54 = (ulonglong *)(lVar4 - (uVar34 ^ 0x71b8196a));
  *puVar54 = CONCAT44(uVar22,uVar23) ^ 0xc65276cc48e343dd | *puVar27 ^ uVar40;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (*(ulonglong *)(DAT_182671c40 - (uVar50 ^ 0x156d87fc)) ^ uVar41) << 0x32 ^ uVar39;
  puVar44 = (ulonglong *)(lVar4 - ((ulonglong)uVar45 ^ 0x156dd53c));
  *puVar44 = (*(ulonglong *)(lVar4 - (uVar47 ^ 0x31160467)) ^ uVar40 |
             *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c64 ^ 0x157ef3fe)) ^ uVar39) ^
             uVar24;
  lVar4 = DAT_182671c40;
  uVar28 = (uVar41 ^ *(ulonglong *)(DAT_182671c40 + -0xb08)) -
           (CONCAT44(uVar6,uVar23) ^ 0x6336684c364e529b);
  puVar27 = (ulonglong *)(DAT_182671c40 + -0x760);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar28 ^ uVar32;
  uVar29 = *(ulonglong *)(lVar4 + -0x5e8);
  *puVar43 = uVar28 - (*puVar27 ^ uVar24) ^ uVar46;
  uVar18 = CONCAT44(uVar7,uVar16);
  *(uint *)(lVar4 + -0x94) = (uVar20 ^ 0xad541c19) + (DAT_182671c50 ^ 0x1a1abebb);
  uVar16 = DAT_182671c54;
  *puVar2 = (*(ulonglong *)(lVar4 + -0x760) ^ uVar24) - (uVar18 ^ 0xc3728114103d25f4) ^ uVar36;
  uVar29 = uVar26 ^ uVar29 ^ *puVar3;
  local_108 = (byte)uVar6;
  uVar31 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar29;
  *(ulonglong *)(lVar4 + -0x680) = (uVar29 ^ uVar26) >> ((bVar12 ^ 0xe7) & 0x3f) ^ uVar31;
  uVar9 = DAT_182671e00;
  uVar29 = (uVar26 ^ uVar29) << ((local_108 ^ 0x72) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa60) = uVar29 ^ uVar25;
  uVar10 = DAT_182671fb0;
  lVar5 = DAT_182671c40;
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar29 = *(ulonglong *)(lVar4 - (uVar17 ^ 0xfffef3fe)) ^ uVar31 | uVar29;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar29 ^ uVar39;
  uVar28 = (uVar53 ^ *puVar37) - (CONCAT44(uVar22,uVar7) ^ 0xb28ac366111dc0cb);
  *(ulonglong *)(lVar5 + -0x2b0) = uVar28 ^ CONCAT44(uVar10,uVar10);
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0xfa9286ee)) ^ uVar31 | uVar29;
  *puVar3 = uVar28 - (*(ulonglong *)(lVar4 - (uVar34 ^ 0x71b81a4a)) ^ uVar39) ^ uVar32;
  uVar28 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *puVar51 = uVar29 + (CONCAT44(uVar6,uVar23) ^ 0x592b16522cc1a8cc) ^ uVar28;
  uVar29 = *puVar43;
  uVar28 = uVar46 ^ uVar29 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x7e8) ^ uVar28;
  *(ulonglong *)(lVar4 + -0xa60) = uVar28;
  uVar9 = DAT_182671e88;
  *(ulonglong *)(lVar4 + -0x5e8) = (uVar36 ^ uVar28) >> ((bVar12 ^ 0xd7) & 0x3f) ^ uVar36;
  uVar28 = (uVar36 ^ uVar28) << 0x20;
  *(ulonglong *)(lVar4 + -0x680) = uVar28 ^ uVar26;
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(lVar4 - ((ulonglong)uVar45 ^ 0x156dd7b4)) ^ uVar36 | uVar28;
  *(ulonglong *)(lVar4 + -0x760) = uVar28 ^ uVar34;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xff80289)) = (uVar46 ^ uVar29) - uVar28 ^ uVar31;
  uVar28 = *(ulonglong *)(lVar4 - (uVar47 ^ 0x31160457)) ^ *puVar2 ^ uVar32 ^ uVar36;
  bVar12 = (byte)DAT_182671c64;
  *(ulonglong *)(lVar4 + -0xb08) = uVar28 ^ CONCAT44(DAT_182671d14,DAT_182671d14);
  uVar9 = DAT_182671de0;
  uVar29 = CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar26 = uVar28 >> ((bVar12 ^ 0x5e) & 0x3f);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar26 ^ uVar40;
  uVar28 = uVar28 << ((local_100 ^ 0x5e) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa60) = uVar28 ^ uVar29;
  lVar4 = DAT_182671c40;
  uVar26 = uVar26 | uVar28;
  uVar55 = CONCAT44(uVar9,uVar9);
  uVar47 = uVar26 ^ uVar55;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar47;
  uVar16 = DAT_182671c54;
  uVar29 = *(ulonglong *)(lVar4 + -0x5e8);
  uVar28 = *(ulonglong *)(lVar4 - (uVar50 ^ 0x156d8a44));
  uVar47 = uVar31 ^ uVar53 ^ *(ulonglong *)(lVar4 + -0x2b0) ^ uVar55 ^ uVar47;
  *(ulonglong *)(lVar4 + -0xb08) = uVar47;
  uVar14 = DAT_182671c64;
  *puVar43 = (uVar28 ^ uVar32) - uVar26 ^ uVar41;
  *puVar2 = (CONCAT44(uVar15,DAT_182671c84) ^ 0x7bb4049ccb8f7c5d) + (uVar36 ^ uVar29);
  bVar12 = (byte)(uVar19 >> 0x18);
  *(ulonglong *)(lVar4 + -0x7e8) = (uVar53 ^ uVar47) >> ((local_108 ^ 0x78) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x157eff1e)) =
       (uVar53 ^ uVar47) << ((bVar12 ^ 0x37) & 0x3f) ^ uVar40;
  uVar39 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *puVar3 = (uVar31 ^ *(ulonglong *)(lVar4 + -0x7e8) | uVar40 ^ *(ulonglong *)(lVar4 + -0xa60)) ^
            uVar39;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x157efd56)) =
       CONCAT44(uVar20,uVar16) ^ 0xffff3f4bff4bfffa | 0xaef73f0bfd49f2fa;
  uVar9 = DAT_182671ee0;
  uVar32 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar4 + -0x5e8) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x2b0)) - (uVar39 ^ *puVar3) ^ uVar32;
  lVar5 = DAT_182671c40;
  uVar46 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar50 ^ 0x156d8694)) =
       uVar41 ^ *(ulonglong *)(lVar4 + -0x760) ^ uVar46 ^ uVar34 ^ *puVar43;
  lVar4 = DAT_182671c40;
  uVar20 = DAT_182671d28 | DAT_182671f28;
  uVar14 = DAT_182671d28 & 0xff;
  uVar23 = DAT_182671d28 << 8;
  DAT_182671d28 = ((uVar23 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar47 = (ulonglong)DAT_182671d28;
  uVar26 = CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar31 = (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x100854c8)) ^ uVar46) >>
           (((byte)uVar16 ^ 0x78) & 0x3f);
  puVar1 = (undefined8 *)(DAT_182671c40 + 0x10);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar31 ^ uVar26;
  uVar15 = DAT_182671f28 & 0xff;
  *(undefined8 *)(lVar4 + -0x7e8) = *(undefined8 *)*puVar1;
  DAT_182671f28 = ((DAT_182671f28 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar34 = CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar29 = (uVar46 ^ *(ulonglong *)(lVar5 + -0x680)) << (((byte)uVar8 ^ 0x3e) & 0x3f);
  uVar16 = uVar20 & 0xff;
  *(ulonglong *)(lVar5 + -0xa60) = uVar29 ^ uVar34;
  uVar15 = DAT_182671c84;
  DAT_182671f98 = ((uVar20 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar36 = (ulonglong)DAT_182671c84;
  uVar28 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *puVar54 = (uVar31 | uVar29) ^ uVar28;
  lVar4 = DAT_182671c40;
  puVar54 = (ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x311609ef));
  *(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xfffef7ce)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xcee9fae0)) ^ uVar41) - (*puVar2 ^ uVar28) ^
       uVar34;
  local_d8 = (byte)uVar7;
  uVar29 = *puVar2 ^ *(ulonglong *)(lVar4 + -0x5e8) ^ uVar28 ^ uVar26 ^ uVar32;
  *(ulonglong *)(lVar4 + -0x760) = uVar29;
  *puVar54 = (uVar29 >> 0x20 ^ uVar47) >> 0xe ^ uVar28;
  uVar29 = (*(ulonglong *)(lVar4 + -0x760) ^ uVar26) << (((byte)uVar15 ^ 0xea) & 0x3f);
  *(ulonglong *)(lVar4 + -0xb08) = uVar29 ^ uVar34;
  uVar29 = *(ulonglong *)(lVar4 + -0x7e8) ^ uVar28 | uVar29;
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar29 ^ uVar34;
  *puVar43 = 0x2f2fb5417fd03942 >> ((local_d8 ^ 6) & 0x3f);
  *puVar2 = (*(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar32) - uVar29 ^ uVar28;
  lVar4 = DAT_182671c40;
  uVar29 = *(ulonglong *)(DAT_182671c40 + -0x2b0) ^ uVar34 ^ uVar26 ^ uVar39 ^ *puVar3;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar29;
  lVar5 = DAT_182671c40;
  puVar27 = (ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xcee9f610));
  *(ulonglong *)(lVar4 + -0x760) =
       (uVar47 << 0x14 | (ulonglong)(((uVar23 & 0xffff | uVar14) << 8 | uVar14) >> 4)) ^
       *(ulonglong *)(lVar4 - (uVar48 ^ 0x9e3fe877)) >> 0xc ^ uVar34;
  *puVar27 = (uVar26 ^ uVar29) << ((bVar12 ^ 5) & 0x3f) ^ uVar30;
  uVar9 = DAT_182671d90;
  uVar29 = uVar30 ^ *(ulonglong *)(lVar5 + -0x7e8) | *puVar44 ^ uVar34;
  *(ulonglong *)(lVar5 + -0xb08) = uVar29 ^ uVar25;
  uVar48 = CONCAT44(uVar9,uVar9);
  *puVar43 = (*(ulonglong *)(lVar5 + -0x2b0) ^ uVar34) - uVar29 ^ uVar48;
  uVar29 = *(ulonglong *)(lVar5 - (uVar38 ^ 0x10085940)) ^
           *(ulonglong *)(lVar5 - (uVar42 ^ 0xff80811)) ^ uVar25 ^ uVar28;
  bVar12 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar5 + -0x5e8) = uVar29 ^ uVar55;
  *(int *)(lVar5 + -0x94) = *(int *)(lVar5 + -0x9dc) * *(int *)(lVar5 + -0x5d4);
  uVar9 = DAT_182671ca0;
  uVar42 = uVar29 >> ((bVar12 ^ 0x77) & 0x3f);
  *puVar3 = uVar42 ^ uVar26;
  lVar4 = DAT_182671c40;
  uVar29 = uVar29 << ((local_108 ^ 0x65) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar29 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x760) = (uVar29 | uVar42) ^ uVar40;
  *(ulonglong *)(lVar4 + -0x7e8) =
       (*puVar2 ^ uVar28) - (CONCAT44(uVar35,uVar6) ^ 0xf915656749cffacb) ^ uVar34;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c64 ^ 0x157ef7ce)) =
       (*puVar54 ^ uVar34) - (*(ulonglong *)(lVar4 - (uVar50 ^ 0x156d8774)) ^ uVar40) ^ uVar46;
  *(undefined8 *)(lVar4 + -0xb08) = **(undefined8 **)(lVar4 + -0x650);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x100857a0)) =
       (*(ulonglong *)(lVar4 + -0x760) ^ uVar40) - (uVar18 ^ 0xbe4e237ad510fbed) ^
       CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar29 = *(ulonglong *)(lVar4 - (uVar17 ^ 0xfffeff1e)) ^ uVar48 ^ uVar34 ^ uVar39 ^ *puVar43;
  *puVar3 = uVar29;
  *puVar2 = (uVar29 ^ uVar39) >> ((bVar11 ^ 0x18) & 0x3f) ^ uVar24;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar49;
  return;
}



############ FUN_ 180f990f0 size=5100 ############

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

void FUN_180f990f0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  longlong *plVar28;
  byte *pbVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  byte bVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  uint uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_e0;
  
  uVar7 = DAT_182671f14;
  uVar11 = DAT_182671dcc;
  uVar10 = DAT_182671c94;
  uVar9 = DAT_182671c90;
  uVar21 = DAT_182671c7c;
  uVar5 = DAT_182671c78;
  uVar6 = DAT_182671c70;
  uVar4 = DAT_182671c5c;
  lVar2 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671c94;
  uVar25 = (ulonglong)DAT_182671c5c;
  uVar44 = (ulonglong)DAT_182671c7c;
  DAT_182671c74 = DAT_182671c94 & DAT_182671c8c ^ 0x6ce942e4;
  uVar19 = (ulonglong)DAT_182671c90;
  uVar15 = DAT_182671c5c & 7;
  if (uVar15 < 4) {
    if (uVar15 < 2) {
      uVar41 = DAT_182671c50;
      if (uVar15 == 0) {
        uVar41 = DAT_182671c5c;
      }
    }
    else {
      uVar41 = DAT_182671c84;
      if (uVar15 < 3) {
        uVar41 = DAT_182671c64;
      }
    }
  }
  else if (uVar15 < 6) {
    uVar41 = DAT_182671c90;
    if (uVar15 < 5) {
      uVar41 = DAT_182671c88;
    }
  }
  else {
    uVar41 = DAT_182671c7c;
    if (uVar15 < 7) {
      uVar41 = DAT_182671c6c;
    }
  }
  uVar27 = (ulonglong)DAT_182671c78;
  uVar38 = (ulonglong)DAT_182671c60;
  uVar34 = (ulonglong)DAT_182671c70;
  DAT_182671c58 = DAT_182671c4c | DAT_182671c90;
  uVar20 = DAT_182671c60 | DAT_182671c70;
  uVar43 = (DAT_182671c78 << 0x10 | DAT_182671c78 & 0xff00) << 8 | DAT_182671c78 >> 8 & 0xff00 |
           DAT_182671c78 >> 0x18;
  uVar26 = *(uint *)(&DAT_182613218 + DAT_182672260) ^ DAT_182671c58;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_182672260) ^ DAT_182671c4c;
  bVar36 = (byte)DAT_182671c60;
  pbVar29 = (byte *)((CONCAT44(DAT_182671c90,DAT_182671c70) ^ 0x6de3b86bd1da5783) +
                    *(longlong *)(DAT_182671c40 + -0x870));
  DAT_182671c48 = uVar20;
  DAT_182671c68 = uVar43;
  DAT_182671c80 = uVar41;
  *(ulonglong *)(DAT_182671c40 + -0xbb0) = (ulonglong)pbVar29 ^ (ulonglong)DAT_182671f14;
  uVar15 = DAT_182671c50;
  bVar14 = *(byte *)(lVar2 + -0x529) ^ (byte)uVar7 ^ (byte)DAT_182671f58;
  *(ulonglong *)(lVar2 + -0x228) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar2 + -0x888)) << ((bVar36 ^ 0xf6) & 0x3f);
  *pbVar29 = bVar14;
  uVar30 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar41 ^ 0x462adfc9)) =
       *(longlong *)(lVar2 + -0x310) +
       ((CONCAT44(uVar15,uVar21) ^ 0x5b3167402784188d) +
       (CONCAT44(uVar5,uVar43) ^ 0xb7d308fefe08d3b7) * 0xc) * 8 ^ uVar30;
  uVar18 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar30 = *(ulonglong *)(*(ulonglong *)(lVar2 + -0x610) ^ uVar30) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x110) = uVar30 ^ CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar11 = DAT_182671f08;
  bVar14 = (byte)DAT_182671d9c;
  uVar8 = DAT_182671c84;
  uVar15 = DAT_182671c58;
  uVar45 = (ulonglong)DAT_182671c58;
  uVar31 = CONCAT44(DAT_182671df4,DAT_182671df4);
  local_e0 = (byte)uVar20;
  bVar40 = (byte)DAT_182671df4;
  uVar39 = uVar30 >> ((local_e0 ^ 0xfa) & 0x3f) ^ uVar31;
  uVar30 = CONCAT44(DAT_182671c58,DAT_182671c84);
  *(ulonglong *)(lVar2 + -0xda8) = uVar39;
  uVar24 = DAT_182671c8c;
  bVar40 = bVar40 ^ (byte)uVar39 ^ bVar14;
  *(ulonglong *)(lVar2 + -0x628) = uVar30 ^ uVar31 ^ uVar39 ^ 0x83e1df67951d8817;
  pbVar29 = (byte *)(*(longlong *)(lVar2 + -0x870) + 0x2a);
  uVar30 = (ulonglong)DAT_182671d50;
  *(byte *)(lVar2 + -0xd32) = bVar40;
  *(ulonglong *)(lVar2 + -0x9f8) = (ulonglong)pbVar29 ^ uVar30;
  uVar1 = DAT_182671c6c;
  uVar17 = DAT_182671c64;
  *pbVar29 = bVar14 ^ (byte)uVar7 ^ bVar40;
  uVar32 = CONCAT44(uVar1,uVar24);
  uVar30 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(lVar2 + -0xbd8) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x85306d88)) ^ CONCAT44(uVar11,uVar11) |
       uVar32 ^ 0xd687edb606ab02b1;
  uVar12 = DAT_182671ce0;
  uVar11 = DAT_182671cbc;
  lVar3 = DAT_182671c40;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar17,DAT_182671c54) ^ 0x5b3167407ffff9fe) +
            (CONCAT44(uVar21,uVar10) ^ 0x2784188811ea3000) * 0xc) * 8);
  uVar31 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar22 ^ uVar30;
  uVar33 = (ulonglong)DAT_182671db4;
  uVar39 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x228) = *puVar22 ^ uVar39 ^ uVar18;
  uVar7 = DAT_182671c74;
  lVar2 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x6cab70cc)) ^ uVar39) >> (((byte)uVar6 ^ 0xb2) & 0x3f) ^
       CONCAT44(uVar11,uVar11);
  lVar3 = DAT_182671c40;
  bVar14 = (byte)DAT_182671d4c ^ (byte)DAT_182671f14;
  *(byte *)(DAT_182671c40 + -0x61d) =
       *(byte *)(lVar2 - (uVar30 ^ 0x85306888)) ^ (byte)uVar11 ^ (byte)DAT_182671d4c;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x6e53b3d7)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar43 ^ 0xfe08dbc7)) +
       (CONCAT44(uVar41,DAT_182671c64) ^ 0x462ad9d95b31676b) ^ uVar33;
  *(byte *)(*(ulonglong *)(lVar3 + -0x300) ^ uVar33) = bVar14 ^ *(byte *)(lVar3 + -0x61d);
  uVar11 = DAT_182671f40;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar43,uVar10) ^ 0xfe08d3b711ea3005) +
            (CONCAT44(uVar7,uVar20) ^ 0x6cab72e4fddbffea) * 0xc) * 8);
  uVar30 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar22 ^ CONCAT44(DAT_182671cd0,DAT_182671cd0);
  bVar14 = (byte)DAT_182671e50;
  *(ulonglong *)(lVar3 + -0x110) = *puVar22 ^ uVar30 ^ uVar18;
  uVar7 = DAT_182671e68;
  lVar2 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671e68;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x2d0bbffa)) ^ uVar30) >>
       (((byte)DAT_182671c74 ^ 0xc4) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  pbVar29 = (byte *)((CONCAT44(uVar17,uVar5) ^ 0x5b316740b7d308d2) + *(longlong *)(lVar2 + -0x870));
  bVar40 = *(byte *)(lVar2 - (uVar38 ^ 0x2d0bb342)) ^ (byte)uVar11 ^ bVar14;
  bVar14 = bVar14 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 + -0x3c0) = (ulonglong)pbVar29 ^ (ulonglong)DAT_182671e58;
  *(byte *)(lVar2 + -0x861) = bVar40;
  uVar11 = DAT_182671d80;
  *pbVar29 = bVar14 ^ bVar40;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x2e8) =
       *(longlong *)(lVar2 + -0x310) +
       ((CONCAT44(DAT_182671c54,DAT_182671c50) ^ 0x7ffff9fb5b316745) +
       (CONCAT44(uVar4,uVar15) ^ 0x4067315b7ff3ff6b) * 0xc) * 8 ^ uVar31;
  uVar13 = DAT_182671e00;
  uVar4 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  uVar42 = CONCAT44(uVar7,uVar7);
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0x228);
  uVar31 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c4c ^ 0x5b3165a8)) ^ uVar31)
           ^ uVar42 ^ uVar18;
  *(ulonglong *)(lVar2 + -0x628) = uVar31;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xd88) = (uVar31 >> 0x20 ^ uVar33) >> 8 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xd1da5c72)) = (uVar39 ^ uVar30) << 0x10;
  uVar7 = DAT_182671f14;
  uVar30 = (ulonglong)DAT_182671e6c;
  *(byte *)(lVar2 - (uVar34 ^ 0xd1da5e43)) =
       (byte)uVar13 ^ *(byte *)(lVar2 + -0xd88) ^ (byte)DAT_182671d90;
  pbVar29 = (byte *)((CONCAT44(uVar8,uVar5) ^ 0x462ad9d9b7d308d3) + *(longlong *)(lVar2 + -0x870));
  uVar17 = DAT_182671c6c ^ 0x6f756fd8;
  bVar14 = *(byte *)(lVar2 + -0x9e9) ^ (byte)DAT_182671d90;
  *(ulonglong *)(lVar2 + -0x7a8) = (ulonglong)pbVar29 ^ uVar30;
  bVar40 = (byte)uVar7;
  *(uint *)(lVar2 + -0x444) = (uVar43 ^ 0xda6ceb0b) * uVar17;
  *pbVar29 = bVar14 ^ bVar40;
  uVar30 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar42) >> (((byte)uVar21 ^ 0x86) & 0x3f);
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + 0x28 +
            (CONCAT44(uVar8,uVar21) ^ 0x462ad9d927841888) * 0x60);
  uVar34 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar2 + -0x610) = (ulonglong)puVar22 ^ uVar30;
  bVar14 = (byte)DAT_182671ddc;
  uVar11 = DAT_182671cb8;
  uVar30 = *puVar22 ^ uVar34 ^ uVar18;
  *(ulonglong *)(lVar2 + -0x110) = uVar30;
  uVar30 = (uVar34 ^ uVar30) >> (((byte)DAT_182671c54 ^ 0xcb) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  bVar37 = (byte)uVar11 ^ bVar14 ^ (byte)uVar30;
  *(ulonglong *)(lVar2 + -0xda8) = uVar30;
  uVar30 = (ulonglong)DAT_182671f84;
  *(byte *)(lVar2 + -0x539) = bVar37;
  uVar12 = DAT_182671d18;
  uVar21 = DAT_182671c88;
  pbVar29 = (byte *)(*(longlong *)(lVar2 - (uVar25 ^ 0x4067392b)) +
                    (CONCAT44(uVar10,uVar15) ^ 0x11ea30007ff3ff45));
  *(ulonglong *)(lVar2 + -0x8f8) = (ulonglong)pbVar29 ^ uVar30;
  *pbVar29 = bVar14 ^ bVar37 ^ bVar40;
  *(longlong *)(lVar2 + -0x228) =
       -0x17be32185b42635c << (((byte)uVar13 ^ *(byte *)(lVar2 + -0xd88)) & 0x3f);
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar9,DAT_182671c50) ^ 0x6de3b86b5b316745) +
            (CONCAT44(uVar21,uVar41) ^ 0x85306000462ad9d9) * 0xc) * 8);
  uVar34 = CONCAT44(DAT_182671de4,DAT_182671de4);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar22 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e04;
  uVar7 = DAT_182671c8c;
  uVar31 = (ulonglong)DAT_182671c8c;
  uVar30 = *puVar22 ^ uVar34 ^ uVar18;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar30;
  *(ulonglong *)(lVar2 + -0x628) =
       (uVar34 ^ uVar30) >> (((byte)DAT_182671c50 ^ 0x78) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  uVar30 = (ulonglong)DAT_182671fb0;
  bVar14 = *(byte *)(lVar2 - ((ulonglong)uVar20 ^ 0xfddbf9c2)) ^ (byte)uVar12;
  uVar34 = CONCAT44(uVar5,DAT_182671c64);
  *(byte *)(lVar2 + -0x4d9) = bVar14 ^ (byte)DAT_182671f70;
  pbVar29 = (byte *)((uVar34 ^ 0xb7d308fe5b31676f) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0xc00) = (ulonglong)pbVar29 ^ uVar30;
  uVar13 = DAT_182671dc8;
  *pbVar29 = bVar14 ^ bVar40;
  uVar12 = DAT_182671cfc;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x610) =
       *(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar7,uVar5) ^ 0x6e53b0d7b7d308f8) * 8 ^ uVar30;
  uVar39 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x7ff3f7e3)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x85306610)) ^ uVar30) ^ uVar39 ^
       uVar18;
  uVar12 = DAT_182671cc8;
  uVar5 = DAT_182671c64;
  bVar14 = (byte)DAT_182671e80;
  bVar37 = (byte)DAT_182671f1c;
  uVar34 = CONCAT44(DAT_182671c54,DAT_182671c64);
  *(ulonglong *)(lVar2 + -0x110) =
       CONCAT44(DAT_182671e80,DAT_182671e80) ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x888);
  uVar30 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0x6cab7f4c));
  *(byte *)(lVar2 + -0xb5a) = bVar14 ^ bVar37 ^ *(byte *)(lVar2 + -0x110);
  uVar21 = DAT_182671c94;
  uVar17 = DAT_182671c94 ^ 0x8da8221e;
  *(ulonglong *)(lVar2 + -0xd88) =
       (uVar34 ^ 0x17768260f91785f3) - (uVar30 ^ CONCAT44(uVar11,uVar11));
  uVar24 = uVar21 << 0x10 | uVar21 >> 0x10;
  uVar34 = (ulonglong)uVar24;
  DAT_182671c54 = uVar24;
  *(uint *)(lVar2 - (uVar35 ^ 0x11ea3634)) = (uVar24 ^ 0x5501b31) + uVar17;
  uVar30 = (ulonglong)DAT_182671f24;
  pbVar29 = (byte *)((CONCAT44(uVar24,uVar24) ^ 0x300011ea300011da) + *(longlong *)(lVar2 + -0x870))
  ;
  *(ulonglong *)(lVar2 + -0x228) = uVar32 ^ 0x29a6f44058de3c73;
  *(ulonglong *)(lVar2 + -0x580) = (ulonglong)pbVar29 ^ uVar30;
  *pbVar29 = bVar37 ^ bVar40 ^ *(byte *)(lVar2 + -0xb5a);
  uVar39 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(lVar2 - (uVar44 ^ 0x27841a60)) =
       *(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar10,uVar1) ^ 0x11ea30002626b9d3) * 8 ^ uVar39;
  uVar30 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar32 = *(ulonglong *)(uVar39 ^ *(ulonglong *)(lVar2 + -0x2e8)) ^ uVar30 ^ uVar18;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar32;
  bVar14 = (byte)DAT_182671efc;
  puVar22 = (ulonglong *)(lVar2 - (uVar27 ^ 0xb7d30ed6));
  *puVar22 = (uVar32 ^ uVar30) >> (((byte)DAT_182671c50 ^ 0x48) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  *(byte *)(lVar2 - (uVar38 ^ 0x2d0bbbfb)) =
       *(byte *)(lVar2 - (uVar19 ^ 0x6de3be43)) ^ (byte)uVar12 ^ bVar14;
  uVar30 = (ulonglong)DAT_182671c78;
  uVar17 = DAT_182671c78 & 3;
  if (uVar17 < 2) {
    uVar1 = uVar24;
    if (uVar17 == 0) {
      uVar1 = DAT_182671c78;
    }
    uVar32 = (ulonglong)uVar1;
  }
  else {
    uVar32 = (ulonglong)DAT_182671c90;
    if (uVar17 < 3) {
      uVar32 = (ulonglong)DAT_182671c8c;
    }
  }
  uVar33 = (ulonglong)DAT_182671e64;
  DAT_182671c50 = (uint)uVar32;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x6e53b057)) =
       (CONCAT44(uVar9,DAT_182671c78) ^ 0x6de3b86bb7d308cf) + *(longlong *)(lVar2 + -0x870) ^ uVar33
  ;
  uVar31 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0x6e53b057)) ^ uVar33) =
       *(byte *)(lVar2 + -0x511) ^ bVar14 ^ bVar40;
  uVar11 = DAT_182671df0;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x300017fa)) =
       *(longlong *)(lVar2 + -0x310) +
       ((CONCAT44(uVar7,uVar9) ^ 0x6e53b0d76de3b86d) +
       (CONCAT44(uVar24,uVar10) ^ 0x300011ea11ea3000) * 0xc) * 8 ^ uVar31;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x6e53b85f)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar30 ^ 0xb7d30a16)) ^ uVar39) ^ uVar18;
  uVar30 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar2 + -0xda8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x6de3be7b)) ^ uVar31) ^ uVar18 ^ uVar30;
  uVar30 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0x6de3b5c3)) ^ uVar30) >>
           (((byte)(uVar21 >> 0x10) ^ 0xfa) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  bVar14 = (byte)uVar11 ^ (byte)uVar30 ^ (byte)DAT_182671fa0;
  *(ulonglong *)(lVar2 + -0xd88) = uVar30;
  uVar30 = (ulonglong)DAT_182671de8;
  uVar21 = DAT_182671c4c ^ 0x32543235;
  *(byte *)(lVar2 - (uVar34 ^ 0x30001adb)) = bVar14;
  plVar28 = (longlong *)(lVar2 - (uVar35 ^ 0x11ea3870));
  bVar14 = *(byte *)(lVar2 + -0xb31) ^ bVar40 ^ (byte)DAT_182671fa0;
  pbVar29 = (byte *)((CONCAT44(uVar7,uVar24) ^ 0x6e53b0d7300011d8) + *plVar28);
  *(ulonglong *)(lVar2 + -0x830) = (ulonglong)pbVar29 ^ uVar30;
  *pbVar29 = bVar14;
  uVar7 = DAT_182671c8c;
  uVar35 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar2 - (uVar27 ^ 0xb7d3048e)) =
       uVar21 << ((byte)*(undefined4 *)(lVar2 + -0x61c) & 0x1f);
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar35 ^ 0x6e53b3c7)) + 0x30 +
            (CONCAT44(uVar10,uVar43) ^ 0x11ea3000fe08d3b7) * 0x60);
  uVar35 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar11 = DAT_182671da4;
  uVar30 = *puVar23 ^ uVar18;
  *(ulonglong *)(lVar2 + -0x110) = uVar30 ^ uVar35;
  uVar12 = DAT_182671e1c;
  uVar35 = (ulonglong)DAT_182671f98;
  uVar30 = uVar30 >> ((bVar36 ^ 0xf2) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  bVar14 = (byte)uVar11 ^ (byte)uVar30 ^ (byte)DAT_182671fac;
  *(ulonglong *)(lVar2 + -0x228) = uVar30;
  pbVar29 = (byte *)((CONCAT44(uVar6,uVar9) ^ 0xd1da57aa6de3b858) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0x208) = (ulonglong)pbVar29 ^ uVar35;
  *(byte *)(lVar2 + -0x72b) = bVar14;
  uVar11 = DAT_182671f68;
  bVar14 = bVar14 ^ bVar40 ^ (byte)DAT_182671fac;
  *(undefined1 *)(lVar2 + -0x1c2) = **(undefined1 **)(lVar2 + -0x990);
  *pbVar29 = bVar14;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + 0x30 +
            ((uVar32 | uVar19 << 0x20) ^ 0x6de3b86b6e53b0d7) * 0x60);
  uVar19 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(lVar2 + -0x610) = (ulonglong)puVar23 ^ CONCAT44(uVar11,uVar11);
  uVar21 = DAT_182671c78;
  *(ulonglong *)(lVar2 + -0xbd8) = *puVar23 ^ uVar18 ^ uVar19;
  *(uint *)(lVar2 - (uVar25 ^ 0x406736df)) = (uVar21 ^ 0x9bbea2c) + (DAT_182671c58 ^ 0xe3b1ed75);
  *puVar22 = (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar19) >> ((local_e0 ^ 0xca) & 0x3f) ^
             CONCAT44(uVar12,uVar12);
  uVar35 = (ulonglong)DAT_182671d14;
  *(byte *)(lVar2 - (uVar32 ^ 0x6e53b115)) =
       (byte)uVar12 ^ *(byte *)(lVar2 + -0x628) ^ (byte)DAT_182671e34;
  uVar12 = _DAT_182671cf0;
  bVar14 = bVar40 ^ *(byte *)(lVar2 + -0x1c2) ^ (byte)DAT_182671e34;
  uVar19 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar2 + -0xd40) =
       (CONCAT44(uVar4,uVar9) ^ 0x5b3167406de3b85f) + *(longlong *)(lVar2 + -0x870) ^ uVar35;
  uVar25 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x6cab7fa4)) ^ uVar35) = bVar14;
  uVar11 = DAT_182671ccc;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar6,uVar7) ^ 0xd1da57aa6e53b0d1) +
            (CONCAT44(uVar10,uVar41) ^ 0x11ea3000462ad9d9) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar22 ^ uVar25;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x30001c42)) = *puVar22 ^ uVar18 ^ uVar19;
  *(ulonglong *)(lVar2 + -0xd88) =
       (*(ulonglong *)(lVar2 + -0xda8) ^ uVar19) >> (((byte)DAT_182671c88 ^ 0x28) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar43 ^ 0xfe08d2a7)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x2e8) ^ uVar25) ^ uVar18;
  uVar19 = (ulonglong)DAT_182671ebc;
  bVar40 = bVar40 ^ (byte)DAT_182671f34;
  *(byte *)(lVar2 + -0x291) = (byte)uVar12 ^ *(byte *)(lVar2 + -0xd88) ^ (byte)DAT_182671f34;
  *(ulonglong *)(lVar2 - (uVar44 ^ 0x27841420)) =
       (CONCAT44(uVar15,uVar5) ^ 0x7ff3ff6b5b316775) + *plVar28 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x228) =
       ((ulonglong)uVar24 << 0x20 | uVar32) ^ 0x40852b4bd093a0da |
       CONCAT44(uVar8,uVar20) ^ 0x7afaa9f605af688c;
  *(byte *)(*(ulonglong *)(lVar2 + -0xca8) ^ uVar19) = bVar40 ^ *(byte *)(lVar2 + -0x291);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar26;
  return;
}



############ FUN_ 180feb710 size=3320 ############

void FUN_180feb710(void)

{
  uint *puVar1;
  byte bVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined1 *puVar14;
  ulonglong *puVar15;
  ulonglong uVar16;
  undefined8 *puVar17;
  ulonglong uVar18;
  longlong lVar19;
  ulonglong uVar20;
  longlong lVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  longlong *plVar27;
  ulonglong uVar28;
  longlong *plVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte *pbVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte bVar41;
  ulonglong uVar42;
  undefined8 *puVar43;
  byte local_68;
  byte local_50;
  
  uVar11 = DAT_182671c90;
  uVar10 = DAT_182671c84;
  uVar9 = DAT_182671c74;
  uVar8 = DAT_182671c70;
  uVar13 = DAT_182671c6c;
  uVar7 = DAT_182671c5c;
  uVar6 = DAT_182671c54;
  lVar4 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671c6c;
  uVar37 = (ulonglong)DAT_182671c84;
  uVar39 = (ulonglong)DAT_182671c5c;
  uVar30 = (ulonglong)DAT_182671c74;
  uVar18 = (ulonglong)DAT_182671c54;
  uVar40 = (ulonglong)DAT_182671c90;
  uVar28 = (ulonglong)DAT_182671c70;
  uVar25 = *(uint *)(&DAT_182613218 + DAT_182672060) ^ DAT_182671c5c;
  uVar26 = DAT_182671c90 + DAT_182671c70;
  uVar33 = DAT_182671c54 << 0x10 | DAT_182671c54 >> 0x10;
  uVar23 = (DAT_182671c6c << 0x10 | DAT_182671c6c & 0xff00) << 8 | DAT_182671c6c >> 8 & 0xff00 |
           DAT_182671c6c >> 0x18;
  uVar36 = (DAT_182671c84 << 0x10 | DAT_182671c84 & 0xff00) << 8 | DAT_182671c84 >> 8 & 0xff00 |
           DAT_182671c84 >> 0x18;
  DAT_182671c88 = DAT_182671c74 + DAT_182671c5c;
  uVar12 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c88 ^ 0xfd8001ec) + (longlong)DAT_182672060) ^
           DAT_182671c74;
  puVar1 = (uint *)(DAT_182671c40 + -0xae4);
  uVar22 = (ulonglong)DAT_182671c74;
  uVar38 = (ulonglong)DAT_182671c74;
  DAT_182671c4c = uVar33;
  DAT_182671c50 = uVar23;
  DAT_182671c68 = uVar36;
  DAT_182671c94 = uVar26;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (ulonglong)*(byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0xe3f4fdac));
  lVar5 = DAT_182671c40;
  uVar31 = (ulonglong)uVar33;
  uVar35 = (ulonglong)uVar23;
  *(uint *)(lVar4 - (uVar22 ^ 0x20910ea3)) = *puVar1 | 0x87f40db6;
  lVar19 = *(longlong *)(lVar4 - ((ulonglong)uVar33 ^ 0xff45e574)) << 0x38;
  *(longlong *)(lVar4 + -0xda8) = lVar19;
  lVar21 = DAT_182671c40;
  uVar22 = (ulonglong)uVar36;
  *(longlong *)(lVar4 + -0x3d8) = *(longlong *)(lVar4 - ((ulonglong)uVar36 ^ 0x408bba30)) + lVar19;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar23 ^ 0xdc68f178)) =
       *(longlong *)(lVar21 + -0x418) + (CONCAT44(uVar10,uVar7) ^ 0x60b08b40dceef93a) * 8;
  uVar16 = CONCAT44(DAT_182671e48,DAT_182671e48);
  **(ulonglong **)(lVar5 + -0x40) = uVar16 ^ *(ulonglong *)(lVar5 + -0x3d8);
  uVar34 = DAT_182671c88;
  uVar24 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xe3f4f49d)) =
       (CONCAT44(uVar8,DAT_182671c88) ^ 0xf73c2e05b8c04be7) << (((byte)uVar26 ^ 0x39) & 0x3f);
  lVar4 = *(longlong *)(lVar5 + 0x30);
  puVar14 = (undefined1 *)((CONCAT44(uVar11,uVar7) ^ 0xe9bbffeedceef97d) + lVar4);
  *(undefined1 **)(lVar5 + -0x428) = puVar14;
  *(undefined1 *)(lVar5 + -0x6b9) = *puVar14;
  lVar21 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0xc38) =
       0x564b29042bbec53c >> ((byte)*(undefined8 *)(lVar5 + -0x7e8) & 0x3f);
  bVar2 = *(byte *)(lVar5 + -0x6b9);
  *(ulonglong *)(lVar21 + -0xb18) = (ulonglong)bVar2;
  pbVar32 = (byte *)((CONCAT44(uVar33,uVar10) ^ 0xff45e3f460b08b01) + lVar4);
  *(byte **)(lVar21 + -0x6f8) = pbVar32;
  lVar4 = DAT_182671c40;
  *(longlong *)(DAT_182671c40 + -0x920) =
       *(longlong *)(lVar21 - (uVar18 ^ 0xe3f4f2ed)) << (((byte)uVar9 ^ 0x82) & 0x3f);
  bVar3 = *pbVar32;
  *(byte *)(lVar4 + -0x2e9) = bVar3;
  *(ulonglong *)(lVar4 + -0x5e8) = (ulonglong)bVar3;
  *(ulonglong *)(lVar4 + -0x888) =
       CONCAT44(uVar33,uVar11) ^ 0xd9eeb819a089a6a2 | CONCAT44(uVar26,uVar23) ^ 0xf8726e34aa4eb9ac;
  bVar41 = (byte)uVar13;
  *(ulonglong *)(lVar4 + -0xd88) = (ulonglong)bVar3 << ((bVar41 ^ 0xd4) & 0x3f);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xdc68f858)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xe9bbf266)) | (ulonglong)bVar2;
  *(ulonglong *)(lVar4 + -0x370) =
       (CONCAT44(uVar6,uVar36) ^ 0xe3f4ff45408bb022) + *(longlong *)(lVar4 + 0x30);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x408bba68)) =
       *(longlong *)(lVar4 + -0xb18) - (CONCAT44(uVar7,uVar9) ^ 0x8f9177ae58d5ffad);
  puVar17 = (undefined8 *)(lVar4 - (uVar24 ^ 0xfd80028c));
  *(undefined1 *)(lVar4 + -0x6b9) = *(undefined1 *)*puVar17;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0xc2aab403)) =
       (CONCAT44(uVar34,uVar8) ^ 0x450726db2ac205ae) + (CONCAT44(uVar6,uVar26) ^ 0x30b2b8e1a55b4a93)
  ;
  uVar20 = (ulonglong)*(byte *)(lVar4 - (uVar31 ^ 0xff45e54d));
  *(ulonglong *)(lVar4 + -0x228) = uVar20;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x2091084f)) = uVar20 << (((byte)uVar34 ^ 0xec) & 0x3f);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x38f162a4)) =
       *(ulonglong *)(lVar4 - (uVar22 ^ 0x408bb900)) | *(ulonglong *)(lVar4 + -0xf0);
  *(longlong *)(lVar4 + -0x428) = *(longlong *)(lVar4 + 0x30) + 0x43;
  *(int *)(lVar4 - (uVar28 ^ 0xd8eebe5d)) =
       *(int *)(lVar4 - ((ulonglong)uVar26 ^ 0xc2aab1c7)) * *(int *)(lVar4 + -0x61c);
  puVar43 = (undefined8 *)(lVar4 - (uVar40 ^ 0xe9bbfbc6));
  *(undefined1 *)(lVar4 + -0x2e9) = *(undefined1 *)*puVar43;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xe9bbf58e)) =
       (ulonglong)*(byte *)(lVar4 - (uVar35 ^ 0xdc68f3d1));
  uVar20 = *(longlong *)(lVar4 + -0xa60) << 0x18;
  *(ulonglong *)(lVar4 + -0x110) = uVar20;
  *(ulonglong *)(lVar4 + -0xc90) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0xc2aaba33)) ^ CONCAT44(uVar10,uVar34) ^
       0x5c4d0603ca63eae0;
  *(ulonglong *)(lVar4 + -0x510) = *(ulonglong *)(lVar4 + -0xa78) | uVar20;
  *(ulonglong *)(lVar4 + -0x760) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xdceefb15)) >> ((byte)uVar26 & 0x3f);
  plVar27 = (longlong *)((uVar18 ^ 0xe3f4ff75) + lVar4);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xe9bbfc9e)) =
       (CONCAT44(uVar8,uVar10) ^ 0xd8eeb82d60b08b04) + *plVar27;
  bVar2 = **(byte **)(lVar4 - (uVar31 ^ 0xff45e084));
  *(byte *)(lVar4 + -0x6b9) = bVar2;
  uVar6 = DAT_182671c60;
  uVar20 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar4 + -0x680) = (ulonglong)bVar2;
  *(ulonglong *)(lVar4 + -0xa50) = (ulonglong)bVar2 << ((bVar41 ^ 0xfc) & 0x3f);
  *(uint *)(lVar4 + -0x76c) = (uVar7 ^ 0x40aceb23) + *(int *)(lVar4 + -0x634);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xfd800a24)) =
       *(ulonglong *)(lVar4 - (uVar35 ^ 0xdc68fb68)) | *(ulonglong *)(lVar4 + -0x510);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x60b08f68)) =
       (CONCAT44(uVar8,uVar11) ^ 0xd8eeb82de9bbffab) + *(longlong *)(lVar4 + 0x30);
  bVar2 = **(byte **)(lVar4 - (uVar39 ^ 0xdceefd15));
  *(byte *)(lVar4 + -0x2e9) = bVar2;
  *(ulonglong *)(lVar4 + -0x7e8) = (ulonglong)bVar2;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xe9bbf3d6)) = (ulonglong)bVar2 << 0x28;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0xda8) = *(ulonglong *)(lVar4 + -0xbd8) | *(ulonglong *)(lVar4 + -0xc38);
  plVar29 = (longlong *)(lVar4 - (uVar30 ^ 0x20910bcf));
  uVar34 = uVar6 << 0x10 | uVar6 >> 0x10;
  *plVar29 = *(longlong *)(lVar4 + 0x30) + 0x46;
  bVar2 = **(byte **)(lVar4 + -0x370);
  DAT_182671c78 = uVar34;
  *(byte *)(lVar4 + -0x6b9) = bVar2;
  *(ulonglong *)(lVar4 + -0x920) = (ulonglong)bVar2;
  lVar4 = DAT_182671c40;
  *(longlong *)(DAT_182671c40 + -0x888) =
       *(longlong *)(lVar5 - (uVar20 ^ 0xd4b851ac)) << (((byte)uVar6 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar4 + -0x5e8) =
       CONCAT44(uVar6,uVar34) ^ *(ulonglong *)(lVar4 + -0xc38) ^ 0xe02fbab5bec76adb;
  *(longlong *)(lVar4 + -0xd88) =
       *(longlong *)(lVar4 - ((ulonglong)uVar34 ^ 0x588cdc30)) + *(longlong *)(lVar4 + -0xda8);
  *(ulonglong *)(lVar4 + -0xb18) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x588cd238)) ^ CONCAT44(uVar34,uVar6) ^
       0xbc94ed3bd89d46b6;
  lVar5 = DAT_182671c40;
  puVar14 = (undefined1 *)
            (*(longlong *)(lVar4 + 0x30) + (CONCAT44(uVar7,uVar6) ^ 0xdceef93dd4b858cb));
  *(undefined8 *)(DAT_182671c40 + -0xa08) = 0xffa3ec0000000000;
  *(undefined1 **)(lVar5 + -0x428) = puVar14;
  lVar4 = DAT_182671c40;
  *(undefined1 *)(lVar5 - (uVar30 ^ 0x20910a56)) = *puVar14;
  *(ulonglong *)(lVar4 + -0xc18) = *(ulonglong *)(lVar4 + -0x888) ^ *(ulonglong *)(lVar4 + -0x5e8);
  uVar20 = (ulonglong)*(byte *)(lVar4 - ((ulonglong)uVar34 ^ 0x588cd651));
  uVar13 = DAT_182671c6c ^ 0x11ed01a9;
  *(ulonglong *)(lVar4 + -0x960) = uVar20;
  *(uint *)(lVar4 + -0x644) = uVar13 - (uVar34 ^ 0x933e9c40);
  *(ulonglong *)(lVar4 + -0xf0) = uVar20 << (((byte)uVar6 ^ 0xb4) & 0x3f);
  *(longlong *)(lVar4 - (uVar35 ^ 0xdc68fb58)) =
       *(longlong *)(lVar4 - (uVar42 ^ 0x38f1682c)) + *(longlong *)(lVar4 + -0xd88);
  puVar15 = (ulonglong *)(*(longlong *)(lVar4 + -0x418) + 0x40);
  *(ulonglong **)(lVar4 + -0x668) = puVar15;
  *puVar15 = uVar16 ^ *(ulonglong *)(lVar4 + -0xa60);
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xd8eebb5d)) =
       (CONCAT44(uVar11,uVar23) ^ 0xe9bbffeedc68f170) + *plVar27;
  lVar4 = DAT_182671c40;
  *(undefined1 *)(DAT_182671c40 + -0x6b9) =
       **(undefined1 **)(DAT_182671c40 - ((ulonglong)uVar34 ^ 0x588cd7c8));
  *(ulonglong *)(lVar4 + -0xc90) = (ulonglong)*(byte *)(lVar4 - (uVar22 ^ 0x408bb6d9));
  *(uint *)(lVar4 + -0x9dc) = DAT_182671c88 ^ 0x26844abf | uVar6 ^ 0x58d2f48;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x428) =
       (CONCAT44(uVar6,uVar10) ^ 0xd4b8588c60b08b09) + *(longlong *)(lVar4 + 0x30);
  lVar21 = *(longlong *)(lVar4 + -0x960) << ((byte)*(undefined8 *)(lVar4 + -0xf0) & 0x3f);
  *(longlong *)(lVar5 + -0xa78) = lVar21;
  lVar4 = DAT_182671c40;
  bVar2 = *(byte *)*puVar43;
  plVar27 = (longlong *)(DAT_182671c40 + -0xa60);
  *(byte *)(DAT_182671c40 + -0x2e9) = bVar2;
  *(longlong *)(lVar4 + -0x110) = *plVar27 - lVar21;
  *(ulonglong *)(lVar4 + -0x228) = (ulonglong)bVar2;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xd4b85fec)) =
       (ulonglong)bVar2 << ((bVar41 ^ 0xd4) & 0x3f);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x588cd1a8)) =
       *(ulonglong *)(lVar4 + -0x760) | *(ulonglong *)(lVar4 + -0xc90);
  *(ulonglong *)(lVar4 - (uVar18 ^ 0xe3f4f515)) =
       CONCAT44(uVar26,uVar23) ^ 0xb7c1b53667a687dd | *(ulonglong *)(lVar4 + -0xa78);
  *plVar29 = *(longlong *)(lVar4 + 0x30) + 0x4a;
  *(undefined8 *)(lVar4 + -0x7e8) = 0x7a566ab595e;
  bVar2 = **(byte **)(lVar4 + -0x370);
  *(byte *)(lVar4 + -0x6b9) = bVar2;
  *(ulonglong *)(lVar4 + -0xbd8) = (ulonglong)bVar2;
  local_68 = (byte)uVar10;
  uVar22 = (ulonglong)bVar2 << ((local_68 ^ 0x50) & 0x3f);
  *(ulonglong *)(lVar4 + -0x920) = uVar22;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0x38f164e4)) = uVar22 | *(ulonglong *)(lVar4 + -0x510);
  *(longlong *)(lVar4 + -0x370) = *(longlong *)(lVar4 + 0x30) + 0x4b;
  *(undefined1 *)(lVar4 + -0x2e9) = *(undefined1 *)*puVar17;
  *(ulonglong *)(lVar4 + -0x680) = (ulonglong)*(byte *)(lVar4 + -0x2e9);
  *(ulonglong *)(lVar4 + -0xda8) =
       (CONCAT44(uVar36,uVar26) ^ 0x19cd08d59bdd6794) - (CONCAT44(uVar9,uVar8) ^ 0x9f54ce8385efc747)
  ;
  *(undefined1 *)(lVar4 + -0x6b9) = **(undefined1 **)(lVar4 + -0x6f8);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xdc68fa20)) =
       (ulonglong)*(byte *)(lVar4 + -0x2e9) << (((byte)(uVar10 >> 0x18) ^ 0x78) & 0x3f);
  uVar22 = CONCAT44(DAT_182671c48,uVar7);
  *(ulonglong *)(lVar4 + -0xa08) =
       *(ulonglong *)(lVar4 - (uVar31 ^ 0xff45e8ec)) | *(ulonglong *)(lVar4 + -0xc38);
  puVar14 = (undefined1 *)((uVar22 ^ 0xe09999bfdceef971) + *(longlong *)(lVar4 + 0x30));
  *(longlong *)(lVar4 + -0x888) =
       *(longlong *)(lVar4 + -0xb18) << ((byte)*(undefined8 *)(lVar4 + -0xda8) & 0x3f);
  *(undefined1 **)(lVar4 + -0x370) = puVar14;
  local_50 = (byte)uVar11;
  *(undefined1 *)(lVar4 - ((ulonglong)uVar26 ^ 0xc2aabaf2)) = *puVar14;
  *(ulonglong *)(lVar4 + -0x5e8) = (ulonglong)*(byte *)(lVar4 + -0x2e9);
  uVar22 = (ulonglong)*(byte *)(lVar4 + -0x2e9) << ((local_50 ^ 0xce) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc18) = uVar22;
  *(ulonglong *)(lVar4 + -0xd88) = uVar22 | *(ulonglong *)(lVar4 + -0xa08);
  uVar22 = *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xd4b85524));
  *(longlong *)(lVar4 + -0x6f8) = *(longlong *)(lVar4 + 0x30) + 0x4d;
  *(ulonglong *)(lVar4 + -0x960) = uVar22 >> ((local_68 ^ 0x4c) & 0x3f);
  *(undefined1 *)(lVar4 - (uVar39 ^ 0xdceeff84)) = **(undefined1 **)(lVar4 - (uVar18 ^ 0xe3f4f9bd));
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar12 * 4) = uVar25;
  return;
}



############ FUN_ 180f59840 size=4332 ############

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

void FUN_180f59840(void)

{
  uint uVar1;
  longlong lVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  ulonglong uVar13;
  byte bVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  byte *pbVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint *puVar34;
  ulonglong uVar35;
  
  uVar29 = DAT_182671f30;
  uVar30 = DAT_182671f08;
  uVar7 = DAT_182671ee4;
  uVar31 = DAT_182671c98;
  uVar28 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar13 = (ulonglong)DAT_182671c4c;
  uVar24 = (ulonglong)DAT_182671c4c;
  uVar27 = ~DAT_182671c4c;
  uVar20 = *(uint *)(&DAT_182613218 + DAT_1826721a0) ^ DAT_182671c4c;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar13 ^ 0x81e28448) + (longlong)DAT_1826721a0);
  uVar26 = (ulonglong)DAT_182671f08;
  uVar18 = (ulonglong)DAT_182671c64;
  DAT_182671c88 = uVar27;
  *(uint *)(DAT_182671c40 + -0x784) =
       (*(byte *)(DAT_182671c40 - ((ulonglong)uVar27 ^ 0x7e1d7a64)) ^ (byte)DAT_182671e80) ^
       DAT_182671f08;
  puVar34 = (uint *)(lVar2 - ((ulonglong)uVar27 ^ 0x7e1d72eb));
  *(uint *)(lVar2 + -0x94) =
       (*(uint *)(lVar2 + -0x1c8) ^ DAT_182671cd0) + (uVar27 ^ 0xe25f69b9) ^ uVar31;
  *puVar34 = (*(uint *)(lVar2 - (uVar24 ^ 0x81e283dc)) ^ uVar30) << (((byte)uVar27 ^ 0xb6) & 0x1f) ^
             DAT_182671e1c;
  uVar21 = (*(uint *)(lVar2 + -0x94) ^ uVar31) - (*(uint *)(lVar2 + -0x94c) ^ DAT_182671e1c);
  *(uint *)(lVar2 + -0x644) = uVar21 ^ uVar29;
  *(uint *)(lVar2 - ((ulonglong)uVar27 ^ 0x7e1d7ccb)) =
       uVar21 * (uVar7 ^ *(uint *)(lVar2 + -0x684)) ^ DAT_182671f28;
  *(ulonglong *)(lVar2 + -0x960) = CONCAT44(uVar28,uVar28) ^ 0x4b39c9f237120a04;
  *(uint *)(lVar2 - (uVar24 ^ 0x81e28ebc)) =
       (*(uint *)(lVar2 + -0x784) ^ uVar30) * (uVar27 ^ 0x7e1d7bb1) ^ DAT_182671dcc;
  uVar21 = DAT_182671e00;
  *(uint *)(lVar2 - ((ulonglong)uVar28 ^ 0x81e28298)) =
       (*(uint *)(lVar2 - (uVar18 ^ 0x74f9c55b)) ^ DAT_182671dcc) +
       (*(uint *)(lVar2 + -0x76c) ^ DAT_182671f28) ^ DAT_182671e00;
  bVar14 = (byte)uVar27 ^ 0xb4;
  uVar22 = (*(uint *)(lVar2 + -0x6c0) ^ uVar21) >> (bVar14 & 0x1f) ^ DAT_182671ec0;
  *(uint *)(lVar2 + -0x4ac) = uVar22;
  uVar22 = uVar22 ^ DAT_182671ec0;
  *(undefined8 *)(lVar2 + -0x228) = 0x7f77fcbfec1fde7f;
  uVar17 = (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) + (uVar7 ^ *(uint *)(lVar2 + -0x684)) ^
           DAT_182671ed8;
  *(uint *)(lVar2 + -0x58c) = uVar17;
  uVar7 = DAT_182671c54;
  uVar17 = uVar17 ^ DAT_182671fa8 ^ DAT_182671ed8;
  uVar32 = (ulonglong)DAT_182671c54;
  uVar21 = (*(uint *)(lVar2 + -0x6c0) ^ uVar21) << 0xd ^ DAT_182671eec;
  *(uint *)(lVar2 + -0x54) = uVar21;
  *(uint *)(lVar2 + -0x61c) = (uVar22 | uVar21 ^ DAT_182671eec) ^ DAT_182671cb4;
  *(uint *)(lVar2 - (uVar18 ^ 0x74f9c663)) = uVar17;
  uVar24 = (ulonglong)DAT_182671c7c;
  *(longlong *)(lVar2 - ((ulonglong)uVar27 ^ 0x7e1d787f)) =
       *(longlong *)(lVar2 + -0xb20) + *(longlong *)(lVar2 + -0x920);
  uVar21 = *(uint *)(lVar2 + -0x9dc) ^ DAT_182671fa8;
  uVar17 = DAT_182671ebc ^ DAT_182671cb4 ^ *(uint *)(lVar2 + -0x61c);
  *(uint *)(lVar2 + -0x634) = uVar17;
  uVar17 = uVar17 ^ DAT_182671e50 ^ DAT_182671ebc;
  *(uint *)(lVar2 + -0x1c8) = uVar21 ^ uVar29;
  uVar18 = (ulonglong)DAT_182671c84;
  *(uint *)(lVar2 - (uVar24 ^ 0xc6a6c85e)) = uVar17;
  uVar10 = DAT_182671ee0;
  uVar21 = DAT_182671c78;
  uVar8 = DAT_182671c5c;
  uVar17 = DAT_182671c58;
  lVar4 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x80a20868)) =
       (CONCAT44(DAT_182671c74,uVar7) ^ 0x9b0e7153379da275) * 0x20 +
       (CONCAT44(DAT_182671c8c,uVar7) ^ 0x3c108b0379da274) + *(longlong *)(lVar2 + -0x9a8) ^ uVar26;
  *(byte *)(lVar2 - (uVar19 ^ 0x10005d3)) =
       *(byte *)((ulonglong)uVar30 ^ *(ulonglong *)(lVar2 + -0xc20)) ^ (byte)DAT_182671e0c ^
       (byte)uVar31;
  uVar22 = DAT_182671d90;
  uVar24 = CONCAT44(DAT_182671c70,uVar8);
  *puVar34 = (uVar7 ^ 0xcef03a90) * 0x399c07f3;
  uVar30 = DAT_182671c6c;
  uVar18 = (ulonglong)DAT_182671c6c;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0xef98f9b1)) =
       uVar31 & 0xff ^ (uint)*(byte *)(lVar4 + -0x1c3) ^ uVar22;
  *(uint *)(lVar4 + -0x784) =
       (*(uint *)(lVar4 - (uVar13 ^ 0x81e284cc)) ^ DAT_182671e50) + (uVar17 ^ 0xcd6b0a05) ^
       DAT_182671dfc;
  uVar6 = DAT_182671c50;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x80a28158)) =
       (uVar24 ^ 0xc35b0c7212018964) - (CONCAT44(DAT_182671c50,uVar8) ^ 0x85c8308afe84ab2b);
  uVar31 = DAT_182671d3c;
  lVar2 = DAT_182671c40;
  uVar23 = (*(uint *)(lVar4 + -0x644) ^ uVar22) << (((byte)DAT_182671c68 ^ 0xcb) & 0x1f);
  uVar12 = *(uint *)(lVar4 + -0x784) ^ DAT_182671dfc;
  uVar24 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar4 + -0x76c) = uVar23 ^ uVar10;
  uVar9 = DAT_182671e70;
  *(uint *)(lVar2 + -0xae4) = uVar12 - uVar23 ^ DAT_182671e70;
  uVar12 = DAT_182671e94;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c8c ^ 0x3c10e70)) =
       (*(uint *)(lVar2 - (uVar24 ^ 0x1200afc)) ^ uVar9) * (*(uint *)(lVar2 + -0x1c8) ^ uVar29) ^
       DAT_182671d84;
  lVar4 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar21 ^ 0x80a2801c)) =
       (*(uint *)(lVar2 + -0x644) ^ uVar22) * (DAT_182671c64 ^ 0x74f9cfbe) ^ DAT_182671ed0;
  uVar22 = (*(uint *)(lVar4 + -0x54) ^ DAT_182671ed0) + (*(uint *)(lVar4 + -0x6c0) ^ DAT_182671d84);
  bVar15 = (byte)DAT_182671c80 ^ 0x1d;
  *(uint *)(lVar4 + -0x4ac) = uVar22 ^ uVar31;
  uVar21 = DAT_182671c48;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c90 ^ 0x120069c)) = uVar22 << (bVar15 & 0x1f) ^ uVar12;
  *(ulonglong *)(lVar4 + -0xa70) =
       (CONCAT44(uVar17,DAT_182671c7c) ^ 0x83e4dcf8a55d1b5a) >> (((byte)uVar21 ^ 0x1f) & 0x3f);
  uVar21 = (*(uint *)(lVar4 - (uVar13 ^ 0x81e280f4)) ^ uVar31) >> (((byte)uVar8 ^ 1) & 0x1f) ^
           DAT_182671d50;
  uVar24 = (ulonglong)DAT_182671e14;
  *(uint *)(lVar4 + -0x58c) = uVar21;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c68 ^ 0xc7e6cac6)) =
       (uVar12 ^ *(uint *)(lVar4 + -0x684) | uVar21 ^ DAT_182671d50) ^ DAT_182671e44;
  *(longlong *)(lVar4 + -0xa08) = -0x1cfa68fb31d4777e << (((byte)uVar28 ^ 0x7d) & 0x3f);
  uVar12 = uVar30 & DAT_182671c4c;
  uVar33 = (ulonglong)uVar12;
  DAT_182671c68 = uVar12;
  *(uint *)(lVar4 - ((ulonglong)uVar30 ^ 0xef98f629)) =
       (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar4 + -0x1c8) ^ uVar29) ^
       DAT_182671ddc;
  uVar17 = *(uint *)(lVar4 + -0x9dc) ^ DAT_182671d38 ^ DAT_182671ddc;
  *(uint *)(lVar4 + -0x634) = uVar17;
  uVar17 = uVar17 ^ DAT_182671d38;
  uVar21 = *(uint *)(lVar4 - (uVar13 ^ 0x81e28244)) ^ DAT_182671d64 ^ DAT_182671e44;
  *(uint *)(lVar4 + -0x94c) = uVar21;
  uVar21 = uVar21 ^ DAT_182671d64;
  *(uint *)(lVar4 + -0x94) = uVar17 ^ uVar9;
  *(uint *)(lVar4 + -0x784) = uVar21 ^ uVar10;
  *(ulonglong *)(lVar4 + -0xda8) =
       (CONCAT44(uVar30,uVar12) ^ 0x70f7882991abcc7f) + *(longlong *)(lVar4 + -0x510);
  bVar3 = (byte)DAT_182671ea0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar30 ^ 0xef98fe85)) =
       (CONCAT44(uVar28,uVar12) ^ 0x81e284588180845c) + *(longlong *)(lVar4 + -0x9a8) ^ uVar24;
  uVar31 = DAT_182671fa4;
  uVar17 = DAT_182671f74;
  lVar5 = DAT_182671c40;
  bVar11 = *(byte *)(uVar24 ^ *(ulonglong *)(lVar4 + -0x170)) ^ bVar3 ^ (byte)DAT_182671e0c;
  bVar16 = (byte)uVar30 ^ 0xe4;
  *(byte *)(lVar4 + -0x1c3) = bVar11;
  uVar29 = (uint)(bVar11 ^ bVar3);
  *(uint *)(lVar4 + -0x76c) = uVar29 ^ uVar17;
  uVar21 = DAT_182671c4c;
  *(uint *)(lVar4 + -0xae4) =
       (*(uint *)(lVar4 + -0x784) ^ uVar10) + (DAT_182671c4c ^ 0x1da09646) ^ DAT_182671cd8;
  uVar22 = uVar29 << (bVar16 & 0x1f) ^ DAT_182671db8;
  *(uint *)(lVar4 + -0x644) = uVar22;
  uVar22 = (*(uint *)(lVar4 - (uVar33 ^ 0x81808eb4)) ^ DAT_182671cd8) - (uVar22 ^ DAT_182671db8) ^
           DAT_182671e08;
  *(uint *)(lVar4 + -0x6c0) = uVar22;
  lVar2 = *(longlong *)(lVar5 + -0x4b8);
  *(uint *)(lVar4 + -0x54) =
       (uVar22 ^ DAT_182671e08) * (*(uint *)(lVar4 + -0x94) ^ uVar9) ^ DAT_182671fb0;
  *(longlong *)(lVar5 + -0x30) = lVar2 << (((byte)uVar30 ^ 0xca) & 0x3f);
  *(uint *)(lVar5 + -0x4ac) = uVar29 * (DAT_182671c68 ^ 0x8180845c) ^ DAT_182671d1c;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x81808ca0)) =
       -0x76950c9fd5965fdb - (CONCAT44(uVar30,uVar28) ^ 0x143bf368d4c970f0);
  *(uint *)(lVar5 + -0x58c) =
       (*(uint *)(lVar5 + -0x4ac) ^ DAT_182671d1c) + (*(uint *)(lVar5 + -0x54) ^ DAT_182671fb0) ^
       uVar31;
  lVar2 = DAT_182671c40;
  bVar11 = (byte)uVar21 ^ 0x4b;
  uVar22 = (*(uint *)(lVar5 - ((ulonglong)uVar30 ^ 0xef98fa79)) ^ uVar31) <<
           (((byte)uVar21 ^ 0x55) & 0x1f);
  uVar21 = uVar22 ^ DAT_182671f18;
  *(uint *)(lVar5 + -0x1c8) =
       (uVar31 ^ *(uint *)(lVar5 + -0x58c)) >> (bVar11 & 0x1f) ^ DAT_182671d98;
  *(uint *)(lVar5 + -0x684) = uVar21;
  uVar21 = DAT_182671cec;
  bVar3 = (byte)DAT_182671c4c;
  uVar31 = (*(uint *)(lVar5 - (uVar18 ^ 0xef98fe3d)) ^ DAT_182671d98 | uVar22) ^ DAT_182671cec;
  *(uint *)(lVar5 + -0x9dc) = uVar31;
  uVar22 = uVar31 ^ DAT_182671e3c ^ uVar21;
  uVar31 = *(uint *)(lVar5 - (uVar18 ^ 0xef98fa21)) ^ DAT_182671dd4;
  *(uint *)(lVar5 + -0x94c) = uVar22;
  uVar31 = uVar31 + (*(uint *)(lVar5 + -0x94) ^ uVar9) ^ uVar21;
  *(uint *)(lVar2 + -0x644) = uVar22 ^ _DAT_182671cf0 ^ DAT_182671e3c;
  *(uint *)(lVar5 + -0x61c) = uVar31;
  uVar21 = uVar31 ^ DAT_182671e84 ^ uVar21;
  *(uint *)(lVar5 + -0x634) = uVar21;
  uVar9 = DAT_182671d28;
  uVar24 = (ulonglong)DAT_182671d10;
  *(uint *)(lVar2 + -0x784) = DAT_182671d28 ^ DAT_182671e84 ^ uVar21;
  *(uint *)(lVar2 + -0xae4) = (*(uint *)(lVar2 + -0x76c) ^ uVar17) >> ((bVar3 ^ 0x5e) & 0x1f);
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar33 ^ 0x81808f90)) ^ (ulonglong)DAT_182671e28) ^
       (byte)DAT_182671e0c;
  uVar10 = DAT_182671dbc;
  lVar2 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c7c;
  uVar31 = DAT_182671dbc & 0xff;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0x81808870)) =
       (CONCAT44(uVar12,DAT_182671c84) ^ 0x8180845080a20448) * 0x20 +
       (CONCAT44(uVar28,uVar30) ^ 0x81e28458ef98ffe2) + *(longlong *)(DAT_182671c40 + -0x9a8) ^
       uVar24;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar6,DAT_182671c90) ^ 0x51ac9c2b2d37f949) + *(longlong *)(lVar2 + -0x510);
  *(byte *)(lVar2 - (uVar26 ^ 0xc6a6c909)) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar2 + -0xc20)) ^ (byte)uVar10 ^ (byte)DAT_182671e0c;
  uVar28 = DAT_182671d60;
  uVar31 = *(byte *)(lVar2 - (uVar13 ^ 0x81e2859b)) ^ uVar31;
  *(uint *)(lVar2 + -0x54) =
       (*(uint *)(lVar2 + -0x644) ^ _DAT_182671cf0) + (DAT_182671c6c ^ 0x73daedeb) ^ DAT_182671cc0;
  *(uint *)(lVar2 + -0x6c0) = uVar31 ^ uVar9;
  uVar17 = uVar31 << (bVar16 & 0x1f) ^ DAT_182671cf4;
  *(uint *)(lVar2 + -0x4ac) = uVar17;
  uVar21 = DAT_182671ca4;
  uVar17 = (*(uint *)(lVar2 - ((ulonglong)uVar12 ^ 0x81808404)) ^ DAT_182671cc0) -
           (uVar17 ^ DAT_182671cf4) ^ DAT_182671dcc;
  *(uint *)(lVar2 + -0x58c) = uVar17;
  *(uint *)(lVar2 + -0x684) =
       (*(uint *)(lVar2 + -0x784) ^ uVar9) * (uVar17 ^ DAT_182671dcc) ^ uVar28;
  *(uint *)(lVar2 + -0x1c8) = uVar31 * (DAT_182671c88 ^ 0x7e1d7bb0) ^ uVar21;
  uVar29 = DAT_182671ebc;
  uVar12 = DAT_182671d80;
  uVar35 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x379da0c5)) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0x818080e8)) | 0xba7c85e0b4b1f4f6;
  uVar22 = DAT_182671c94;
  uVar31 = DAT_182671c8c;
  uVar18 = (ulonglong)DAT_182671c94;
  uVar21 = (uVar21 ^ *(uint *)(lVar2 + -0x1c8)) + (uVar28 ^ *(uint *)(lVar2 + -0x684));
  uVar33 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar2 + -0x94) = uVar21 ^ uVar12;
  uVar17 = DAT_182671c70;
  uVar24 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar2 - (uVar35 ^ 0x80a20254)) = uVar21 << (bVar15 & 0x1f) ^ uVar29;
  uVar23 = DAT_182671e54 ^ uVar12;
  *(uint *)(lVar2 - (uVar18 ^ 0x80a20d94)) =
       (uVar12 ^ *(uint *)(lVar2 + -0x94)) >> (bVar11 & 0x1f) ^ DAT_182671dc4;
  lVar4 = DAT_182671c40;
  *(uint *)(lVar2 - (uVar33 ^ 0x3c10e84)) =
       (*(uint *)(lVar2 + -0x9dc) ^ DAT_182671dc4 | uVar29 ^ *(uint *)(lVar2 + -0x61c)) ^ uVar12;
  uVar29 = DAT_182671ee8;
  uVar12 = DAT_182671d88;
  uVar28 = (*(uint *)(lVar2 - (uVar24 ^ 0x4804a754)) ^ DAT_182671dd4) +
           (*(uint *)(lVar2 + -0x784) ^ uVar9) ^ DAT_182671d88;
  *(uint *)(lVar4 - (uVar26 ^ 0xc6a6cfa6)) = uVar28;
  uVar23 = uVar23 ^ *(uint *)(lVar4 + -0x634);
  uVar28 = uVar28 ^ DAT_182671f24;
  *(longlong *)(lVar4 + -0x760) = *(longlong *)(lVar4 + -0x2b0) + 0x37faffc34b7b20ad;
  uVar28 = uVar28 ^ uVar12;
  *(uint *)(lVar4 + -0xae4) = uVar28;
  uVar21 = uVar29 ^ DAT_182671f24;
  *(uint *)(lVar4 + -0x94c) = uVar23;
  *(uint *)(lVar4 + -0x644) = uVar21 ^ uVar28;
  uVar9 = DAT_182671dc8;
  uVar28 = DAT_182671c60;
  uVar21 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c60;
  uVar33 = (ulonglong)DAT_182671c74;
  uVar23 = uVar23 ^ DAT_182671dc8 ^ DAT_182671e54;
  uVar24 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       CONCAT44(DAT_182671c60,uVar17) ^ 0x51e72d29219738b7 |
       CONCAT44(uVar30,DAT_182671c74) ^ 0xc36053ae7d3c545d;
  *(uint *)(lVar2 - (uVar24 ^ 0x71539b5a)) = uVar23;
  pbVar25 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar27 ^ 0x7e1d720f)) +
                     (CONCAT44(uVar22,uVar31) ^ 0x80a2044803c108b0) * 0x20 +
                    (CONCAT44(uVar7,uVar7) ^ 0x379da275379da277));
  uVar24 = (ulonglong)DAT_182671d4c;
  *(ulonglong *)(lVar2 + -0x170) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182671e44;
  uVar18 = (ulonglong)DAT_182671c78;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x5a0) ^ uVar24) ^ (byte)DAT_182671e0c;
  bVar3 = (byte)DAT_182671edc;
  uVar7 = DAT_182671d78;
  *(byte *)(lVar2 + -0x1c3) = *pbVar25 ^ (byte)DAT_182671edc ^ (byte)DAT_182671e0c;
  *(longlong *)(lVar2 + -0xa50) =
       -0x76bd76720c52d31b << ((byte)*(undefined8 *)(lVar2 - (uVar35 ^ 0x80a20660)) & 0x3f);
  uVar17 = DAT_182671ecc;
  *(uint *)(lVar2 - (uVar18 ^ 0x80a284e4)) =
       (*(byte *)(lVar2 - (uVar33 ^ 0x9b0e7090)) ^ bVar3) ^ uVar7;
  uVar30 = (uVar9 ^ *(uint *)(lVar2 + -0x54)) + (DAT_182671c68 ^ 0x1dc2964e);
  uVar24 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar2 + -0x6c0) =
       (*(uint *)(lVar2 + -0x4ac) ^ uVar7) << (((byte)DAT_182671c48 ^ 0x1f) & 0x1f) ^ DAT_182671f68;
  *(uint *)(lVar2 + -0x58c) = uVar30 ^ uVar17;
  *(uint *)(lVar2 + -0x684) =
       uVar30 - (*(uint *)(lVar2 - (uVar33 ^ 0x9b0e7793)) ^ DAT_182671f68) ^ DAT_182671e64;
  uVar17 = DAT_182671f2c;
  *(ulonglong *)(lVar2 + -0x7e8) =
       (CONCAT44(uVar21,uVar8) ^ 0xb5112aae5e9c1142) <<
       ((byte)*(undefined8 *)(lVar2 - ((ulonglong)uVar28 ^ 0x9b0e79a3)) & 0x3f);
  uVar21 = DAT_182671c54 ^ 0x379da277;
  *(uint *)(lVar2 + -0x1c8) =
       (*(uint *)(lVar2 - (uVar19 ^ 0x1000294)) ^ DAT_182671e64) *
       (*(uint *)(lVar2 + -0x644) ^ uVar29) ^ uVar12;
  *(uint *)(lVar2 - (uVar24 ^ 0x120008c)) = (*(uint *)(lVar2 + -0x4ac) ^ uVar7) * uVar21 ^ uVar17;
  bVar3 = (byte)DAT_182671c64;
  *(uint *)(lVar2 - (uVar32 ^ 0x379da469)) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x81e28590)) ^ uVar12) + (uVar17 ^ *(uint *)(lVar2 + -0x94)) ^
       uVar10;
  uVar21 = (uVar10 ^ *(uint *)(lVar2 + -0x61c)) << ((bVar3 ^ 0xb2) & 0x1f) ^ DAT_182671ccc;
  *(uint *)(lVar2 + -0x9dc) = uVar21;
  uVar21 = uVar21 ^ DAT_182671ccc;
  uVar28 = (uVar10 ^ *(uint *)(lVar2 + -0x61c)) >> (bVar14 & 0x1f);
  *(ulonglong *)(lVar2 + -0x888) =
       *(ulonglong *)(lVar2 - (uVar26 ^ 0x9b0e7b03)) ^ *(ulonglong *)(lVar2 + -0x7e8);
  *(uint *)(lVar2 + -0x784) = uVar28 ^ DAT_182671efc;
  *(uint *)(lVar2 + -0x76c) = (uVar21 | uVar28) ^ DAT_182671e34;
  uVar28 = (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar2 + -0x644) ^ uVar29) ^
           DAT_182671d5c;
  uVar21 = DAT_182671fa0 ^ DAT_182671d5c;
  *(uint *)(lVar2 + -0x634) = uVar28;
  *(uint *)(lVar2 + -0xae4) = uVar21 ^ uVar28;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar27) * 4) = uVar20;
  return;
}



############ FUN_ 180f65060 size=5566 ############

void FUN_180f65060(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  byte *pbVar8;
  ulonglong *puVar9;
  longlong lVar10;
  longlong lVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  byte bVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_res20;
  byte local_108;
  
  uVar13 = DAT_182671d44;
  uVar18 = DAT_182671c68;
  uVar17 = DAT_182671c64;
  uVar12 = DAT_182671c48;
  lVar10 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c68;
  uVar35 = (ulonglong)DAT_182671c48;
  uVar27 = (ulonglong)DAT_182671c64;
  uVar23 = DAT_182671c68 << 0x10 | DAT_182671c68 >> 0x10;
  uVar36 = DAT_182671c48 ^ DAT_182671c64;
  uVar47 = (ulonglong)uVar23;
  uVar24 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar23 ^ 0x71785f06) + (longlong)DAT_182671ff4) ^
           DAT_182671c68;
  uVar25 = *(uint *)(&DAT_182613220 + DAT_182671ff4) ^ DAT_182671c48;
  uVar31 = (ulonglong)DAT_182671c64;
  uVar34 = (ulonglong)uVar36;
  DAT_182671c54 = uVar23;
  DAT_182671c90 = uVar36;
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       0x1d6bdf11941c1732 - (CONCAT44(DAT_182671c64,uVar36) ^ 0x4d5f1ac6f23e6f63);
  uVar37 = CONCAT44(DAT_182671d04,DAT_182671d04);
  puVar45 = (ulonglong *)(lVar10 - ((ulonglong)uVar12 ^ 0x603084c8));
  puVar1 = (ulonglong *)(lVar10 + -0xd88);
  uVar39 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *puVar45 = (*(ulonglong *)(lVar10 - (uVar34 ^ 0x81807a1c)) ^ CONCAT44(uVar13,uVar13)) <<
             (((byte)uVar17 ^ 0x76) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar10 - ((ulonglong)uVar18 ^ 0x5f0e7818)) =
       (*(ulonglong *)(lVar10 - (uVar47 ^ 0x717852a6)) ^ CONCAT44(DAT_182671cac,DAT_182671cac) |
       *puVar1 ^ uVar37) ^ uVar39;
  puVar2 = (ulonglong *)(lVar10 + -0x960);
  uVar37 = (*(ulonglong *)(lVar10 - ((ulonglong)uVar36 ^ 0x81807a94)) ^
           CONCAT44(DAT_182671f30,DAT_182671f30)) - (CONCAT44(uVar23,uVar12) ^ 0x8eb848791648bb6);
  puVar3 = (ulonglong *)(lVar10 + -0x110);
  *puVar3 = uVar37 ^ CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar30 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar10 + -0xa50) = uVar37 - (*puVar2 ^ uVar39) ^ uVar30;
  uVar20 = DAT_182671d84;
  lVar11 = DAT_182671c40;
  puVar4 = (ulonglong *)(lVar10 + -0x888);
  *puVar4 = (CONCAT44(uVar12,uVar17) ^ 0x99fe8e3a410c62b0) +
            (CONCAT44(uVar36,uVar12) ^ 0x71b80a557bb43aa2);
  uVar21 = DAT_182671d94;
  uVar13 = DAT_182671cd0;
  puVar5 = (ulonglong *)(lVar11 + -0xa08);
  uVar49 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar11 + -0xb18) =
       (*puVar2 ^ uVar39) - (CONCAT44(uVar23,uVar18) ^ 0x956c7e71151ecdda) ^ uVar49;
  uVar40 = CONCAT44(uVar21,uVar21);
  uVar39 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  local_res20 = (byte)uVar18;
  *(ulonglong *)(lVar11 - (uVar31 ^ 0xe1b0f49c)) =
       *(ulonglong *)(lVar11 - (uVar34 ^ 0x818073ec)) ^ CONCAT44(uVar13,uVar13) ^ *puVar5 ^ uVar39 ^
       uVar40;
  lVar10 = DAT_182671c40;
  uVar40 = *(ulonglong *)(lVar11 + -0xbd8) ^ uVar40;
  uVar41 = uVar40 >> ((local_res20 ^ 0x68) & 0x3f);
  puVar26 = (ulonglong *)(DAT_182671c40 + -0x680);
  *puVar26 = uVar41 ^ CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar13 = DAT_182671d28;
  uVar37 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar10 + -0xa78) = uVar40 << (((byte)uVar36 ^ 0x34) & 0x3f) ^ uVar37;
  puVar6 = (ulonglong *)(lVar10 + -0x228);
  uVar40 = CONCAT44(uVar13,uVar13);
  uVar31 = CONCAT44(uVar12,uVar18);
  uVar41 = *(ulonglong *)(lVar10 - (uVar43 ^ 0x5f0e7b00)) ^ uVar37 | uVar41;
  uVar37 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *puVar6 = uVar41 ^ uVar40;
  lVar10 = DAT_182671c40;
  uVar38 = (*puVar5 ^ uVar39) - (uVar31 ^ 0x13b355fca9e6bb18);
  uVar51 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar38 ^ uVar37;
  uVar13 = DAT_182671f64;
  *(ulonglong *)(lVar10 + -0xf0) = uVar38 - uVar41 ^ uVar51;
  uVar39 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar10 + -0xc18) = uVar41 - (CONCAT44(uVar17,uVar23) ^ 0x86d6d0ce85a912f7) ^ uVar39
  ;
  *(ulonglong *)(lVar10 + -0xda8) =
       (CONCAT44(uVar17,uVar12) ^ 0x44cdfc4c518293ab) >> ((byte)uVar38 & 0x3f);
  uVar41 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar38 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(uVar38 ^ *(ulonglong *)(lVar10 + -0x138)) =
       uVar41 ^ uVar30 ^ *(ulonglong *)(lVar10 + -0xa50);
  uVar37 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar10 + -0xd68) =
       (uVar38 ^ *(ulonglong *)(lVar10 + -0x138)) +
       (CONCAT44(uVar23,uVar18) ^ 0x71785f0e5f0e7179) * 8 ^ uVar37;
  lVar11 = DAT_182671c40;
  *(ulonglong *)(lVar10 - (uVar27 ^ 0xe1b0f2cc)) =
       (CONCAT44(uVar12,uVar36) ^ 0xad1c2016d2ab7a0e) + 0xd615165d187569e1;
  *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar10 + -0xd68)) =
       uVar41 ^ *(ulonglong *)(lVar10 + -0xb18) ^ uVar49;
  puVar7 = (ulonglong *)(lVar11 + -0xc90);
  puVar9 = (ulonglong *)
           ((uVar38 ^ *(ulonglong *)(lVar11 + -0x138)) +
           (CONCAT44(uVar18,uVar17) ^ 0x5f0e7178e1b0ff46) * 8);
  *(ulonglong *)(lVar11 + -0x948) = (ulonglong)puVar9 ^ CONCAT44(DAT_182671d0c,DAT_182671d0c);
  lVar10 = DAT_182671c40;
  *puVar7 = (*(ulonglong *)(lVar11 - (uVar34 ^ 0x8180742c)) ^ uVar40) >> ((byte)*puVar45 & 0x3f);
  uVar14 = DAT_182671c7c;
  uVar50 = (ulonglong)DAT_182671c7c;
  *puVar9 = uVar41 ^ uVar51 ^ *(ulonglong *)(lVar10 + -0xf0);
  uVar37 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar10 - (uVar27 ^ 0xe1b0f5f4)) =
       (*(ulonglong *)(lVar10 - (uVar47 ^ 0x71785e36)) ^ uVar38) + (uVar31 ^ 0x603089405f0e717b) * 8
       ^ uVar37;
  uVar20 = DAT_182671d80;
  *(ulonglong *)(*(ulonglong *)(lVar10 + -0xab0) ^ uVar37) =
       uVar41 ^ uVar39 ^ *(ulonglong *)(lVar10 + -0xc18);
  *puVar3 = CONCAT44(uVar17,uVar23) ^ 0x772ffb57db4e668b;
  *(ulonglong *)(lVar10 - (uVar27 ^ 0xe1b0f764)) =
       (CONCAT44(uVar12,uVar23) ^ 0x6030894071785f0e) * 0x60 + 0x20 +
       *(longlong *)(lVar10 - (uVar47 ^ 0x717854de));
  uVar19 = DAT_182671c88;
  uVar13 = DAT_182671c50;
  lVar11 = DAT_182671c40;
  *(ulonglong *)(lVar10 - (uVar43 ^ 0x5f0e7108)) =
       *(longlong *)(lVar10 + -0x310) +
       ((CONCAT44(uVar36,uVar14) ^ 0x8180760405275804) +
       (CONCAT44(DAT_182671c50,uVar12) ^ 0xfbdffff960308940) * 0xc) * 8 ^ CONCAT44(uVar20,uVar20);
  puVar45 = *(ulonglong **)(lVar10 + -0x820);
  puVar9 = (ulonglong *)(lVar11 + -0x5e8);
  *puVar4 = CONCAT44(DAT_182671d5c,DAT_182671d5c) ^ *(ulonglong *)(lVar10 + -0x510) ^
            CONCAT44(uVar18,uVar17) ^ 0xa3b51eed439800fc;
  uVar41 = CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar44 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *puVar2 = *puVar45 ^ uVar44 ^ uVar41;
  uVar20 = DAT_182671f0c;
  *(ulonglong **)(lVar10 + -0x9b0) = puVar45 + (CONCAT44(uVar36,uVar12) ^ 0x8180760460308941);
  uVar16 = DAT_182671c60;
  uVar38 = CONCAT44(uVar20,uVar20);
  *puVar9 = uVar38 ^ uVar44 ^ puVar45[CONCAT44(uVar36,uVar12) ^ 0x8180760460308941];
  uVar15 = DAT_182671c5c;
  uVar27 = CONCAT44(uVar16,DAT_182671c8c);
  *(ulonglong **)(lVar11 + -0x9b8) = puVar45 + (uVar27 ^ 0xfbcf5778ddeffc06);
  uVar20 = DAT_182671dd8;
  uVar14 = DAT_182671c58;
  puVar32 = (ulonglong *)(lVar11 - (uVar34 ^ 0x81807ddc));
  *puVar32 = (CONCAT44(uVar15,uVar18) ^ 0xf91fac22447f0dab) -
             (CONCAT44(uVar19,uVar23) ^ 0x8eba293687a9631d);
  lVar10 = DAT_182671c40;
  uVar40 = CONCAT44(uVar20,uVar20);
  uVar37 = *(ulonglong *)(DAT_182671c40 + -0xf0);
  *puVar26 = **(ulonglong **)(DAT_182671c40 - ((ulonglong)uVar14 ^ 0xf3bf118d)) ^ uVar40 ^ uVar44;
  lVar11 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x71785576)) =
       *(ulonglong *)(lVar10 - (uVar47 ^ 0x71785286)) | uVar51 ^ uVar37;
  *(longlong *)(lVar11 + -0xb30) = *(longlong *)(lVar11 + -0x820) + 0x18;
  puVar33 = (ulonglong *)(lVar11 - (uVar34 ^ 0x81807c0c));
  *puVar33 = **(ulonglong **)(lVar11 + -0x9b8) ^ uVar44;
  uVar20 = DAT_182671f40;
  uVar37 = CONCAT44(DAT_182671c74,uVar19);
  uVar34 = **(ulonglong **)(lVar11 + -0xb30) ^ uVar44;
  *(ulonglong *)(lVar11 + -0xc38) = uVar34;
  uVar15 = DAT_182671c70;
  uVar49 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar11 + -0xda8) = (uVar41 ^ *puVar2) - (uVar37 ^ 0x9b62f265acd148de) ^ uVar49;
  uVar19 = DAT_182671c78;
  uVar51 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *puVar6 = (uVar38 ^ *puVar9) - (CONCAT44(uVar18,uVar15) ^ 0x420e2dbf5d5548ee) ^ uVar51;
  uVar38 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  uVar37 = (ulonglong)DAT_182671c94;
  *puVar7 = (uVar40 ^ *puVar26) - (CONCAT44(uVar19,uVar23) ^ 0x3ee9578029f965a0) ^ uVar38;
  uVar42 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0xe23ff86b)) = uVar34 - 0x12 ^ uVar42;
  uVar15 = DAT_182671c6c;
  uVar34 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x71785a1e)) =
       (*puVar3 ^ uVar42) - (CONCAT44(uVar36,uVar14) ^ 0xa14e4e81e965e688) ^ uVar34;
  lVar10 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671ed8;
  uVar40 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *puVar4 = (CONCAT44(uVar17,uVar15) ^ 0xf8c5a9bbd698bfd1) + (uVar31 ^ 0xcac40eb83711b206);
  puVar45 = (ulonglong *)(lVar10 - (uVar35 ^ 0x60308298));
  *puVar45 = uVar40 ^ uVar34 ^ *(ulonglong *)(lVar10 + -0x510) ^ uVar49 ^
             *(ulonglong *)(lVar10 + -0xda8);
  uVar34 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar31 = (uVar40 ^ *(ulonglong *)(lVar10 + -0xbd8)) << 0x20;
  *puVar1 = *(ulonglong *)(lVar10 + -0xbd8) >> 0x20 ^ uVar34 ^ uVar37;
  uVar40 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar10 + -0xa78) = uVar31 ^ uVar40;
  lVar11 = DAT_182671c40;
  uVar37 = *(ulonglong *)(DAT_182671c40 + -0xda8);
  *puVar5 = (CONCAT44(uVar15,uVar17) ^ 0x4ddf1491a859b4e4) + 0x27d691deb8d2634;
  uVar35 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  uVar31 = *(ulonglong *)(lVar10 - ((ulonglong)DAT_182671c4c ^ 0x580008a9)) ^ uVar34 | uVar31;
  *puVar2 = uVar31 ^ uVar35;
  uVar46 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *puVar9 = (uVar49 ^ uVar37) - uVar31 ^ uVar46;
  uVar47 = (ulonglong)DAT_182671c80;
  uVar49 = CONCAT44(DAT_182671d74,DAT_182671d74);
  uVar37 = (ulonglong)DAT_182671c84;
  uVar34 = *(ulonglong *)(lVar11 - (uVar47 ^ 0xbbdffa20)) ^ uVar49 ^ uVar38 ^ uVar51 ^ *puVar7;
  *puVar26 = uVar34;
  uVar20 = DAT_182671d38;
  puVar48 = (ulonglong *)(DAT_182671c40 - (uVar50 ^ 0x5275910));
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       (*(ulonglong *)(lVar11 - (uVar37 ^ 0x60b08dc0)) ^ uVar49) >>
       (((byte)DAT_182671c60 ^ 0x58) & 0x3f) ^ uVar41;
  uVar31 = CONCAT44(uVar20,uVar20);
  local_108 = (byte)uVar12;
  uVar51 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *puVar48 = (uVar49 ^ uVar34) << ((local_108 ^ 0x60) & 0x3f) ^ uVar31;
  uVar15 = DAT_182671c8c;
  uVar37 = *puVar7;
  uVar31 = *puVar3 ^ uVar31 | *(ulonglong *)(DAT_182671c40 + -0xc38) ^ uVar41;
  *puVar4 = uVar31 ^ uVar51;
  lVar10 = DAT_182671c40;
  uVar49 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar34 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar19 ^ 0x4e2e4125)) =
       (uVar38 ^ uVar37) - uVar31 ^ uVar49;
  uVar20 = DAT_182671f04;
  uVar41 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar10 + -0xbd8) =
       *(ulonglong *)(lVar10 - (uVar34 ^ 0xfc04d567)) ^ uVar41 ^ uVar51 ^ uVar46 ^ *puVar9;
  uVar22 = DAT_182671e40;
  uVar31 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar10 - ((ulonglong)uVar15 ^ 0xddeff60c)) =
       (*(ulonglong *)(lVar10 - ((ulonglong)DAT_182671c88 ^ 0x58000eff)) ^ uVar41) >>
       (((byte)DAT_182671c5c ^ 7) & 0x3f) ^ uVar31;
  uVar12 = DAT_182671c70;
  uVar37 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(lVar10 - ((ulonglong)uVar15 ^ 0xddeff18c)) =
       (uVar41 ^ *(ulonglong *)(lVar10 + -0xbd8)) << (((byte)uVar14 ^ 0x33) & 0x3f) ^ uVar37;
  uVar50 = CONCAT44(DAT_182671d98,DAT_182671d98);
  uVar37 = *(ulonglong *)(lVar10 - (uVar47 ^ 0xbbdff200)) ^ uVar31 | uVar37 ^ *puVar1;
  *(ulonglong *)(lVar10 + -0xa78) = uVar37 ^ uVar50;
  uVar52 = CONCAT44(uVar22,uVar22);
  uVar47 = (uVar46 ^ *puVar9) - uVar37 ^ uVar52;
  uVar34 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar37 = *(ulonglong *)(DAT_182671c40 + -0x510);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar47;
  uVar31 = uVar34 ^ uVar49 ^ uVar35 ^ uVar37 ^ *puVar2;
  uVar35 = (uVar31 ^ uVar34) >> (((byte)DAT_182671c4c ^ 0x37) & 0x3f);
  *puVar6 = uVar31;
  uVar31 = (uVar34 ^ uVar31) << 0x2a;
  *puVar26 = uVar35 ^ uVar30;
  *(undefined8 *)(DAT_182671c40 + -0xc38) = 0xc1344db3de;
  *puVar3 = uVar31 ^ CONCAT44(DAT_182671f9c,DAT_182671f9c);
  lVar10 = DAT_182671c40;
  uVar35 = uVar35 | uVar31;
  uVar31 = (ulonglong)DAT_182671c60;
  uVar38 = CONCAT44(DAT_182671f88,DAT_182671f88);
  uVar51 = uVar35 ^ uVar38;
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0xbd8);
  *puVar7 = uVar51;
  uVar34 = (ulonglong)DAT_182671c88;
  *puVar4 = (uVar41 ^ uVar30) >> ((*(byte *)(lVar10 - (uVar31 ^ 0xfbcf5ad0)) ^ (byte)uVar22) & 0x3f)
  ;
  lVar10 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *puVar5 = (uVar49 ^ uVar37) - uVar35 ^ uVar31;
  uVar41 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar37 = (ulonglong)DAT_182671c6c;
  *puVar1 = uVar41 ^ uVar38 ^ uVar52 ^ uVar51 ^ uVar47;
  *(ulonglong *)(lVar10 - (uVar37 ^ 0x44354bc6)) =
       *(ulonglong *)(lVar10 - (uVar34 ^ 0x58000f5f)) ^ CONCAT44(uVar12,uVar18) ^ uVar50 ^
       0x7c247ec8868fd728;
  uVar19 = DAT_182671c94;
  uVar38 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  uVar30 = (ulonglong)DAT_182671c94;
  *puVar2 = (uVar41 ^ *puVar1) >> (((byte)DAT_182671c50 ^ 0xd7) & 0x3f) ^ uVar38;
  uVar15 = DAT_182671c84;
  uVar12 = DAT_182671c70;
  uVar35 = (ulonglong)DAT_182671c84;
  uVar34 = CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar37 = CONCAT44(uVar13,DAT_182671c8c);
  *(ulonglong *)(lVar10 + -0xc38) =
       (*(ulonglong *)(lVar10 - (uVar30 ^ 0xe23ff4f3)) ^ uVar41) << (((byte)uVar17 ^ 0x56) & 0x3f) ^
       uVar34;
  uVar30 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar10 - (uVar35 ^ 0x60b08968)) =
       CONCAT44(uVar16,DAT_182671c74) ^ uVar37 ^ 0x2c02fc6c4989d49b;
  *puVar48 = (*(ulonglong *)(lVar10 - (uVar30 ^ 0xdceef05d)) ^ uVar38 |
             uVar34 ^ *(ulonglong *)(lVar10 + -0xc38)) ^ uVar42;
  *puVar26 = CONCAT44(uVar36,uVar23) ^ 0x314190d025705881 | 0x861e492e9205856e;
  uVar21 = DAT_182671da8;
  uVar34 = CONCAT44(DAT_182671da8,DAT_182671da8);
  uVar37 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar10 - ((ulonglong)uVar15 ^ 0x60b08098)) =
       (*(ulonglong *)(lVar10 - ((ulonglong)uVar12 ^ 0x3518b25b)) ^ uVar52) - (*puVar3 ^ uVar42) ^
       uVar34;
  uVar37 = *(ulonglong *)(lVar10 - (uVar37 ^ 0x4e2e4e4d)) ^ uVar31 ^ uVar52 ^ uVar50 ^ *puVar33;
  *puVar4 = uVar37;
  uVar20 = DAT_182671ce8;
  lVar11 = DAT_182671c40;
  *(ulonglong *)(lVar10 + -0x510) =
       ((ulonglong)uVar22 << 0x14 | (ulonglong)(uVar22 >> 0xc)) ^ uVar37 >> 0xc ^ uVar40;
  uVar14 = DAT_182671c74;
  uVar30 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar10 - ((ulonglong)DAT_182671c74 ^ 0xfc04d17f)) =
       (uVar52 ^ uVar37) << (((byte)uVar12 ^ 199) & 0x3f) ^ uVar30;
  uVar20 = DAT_182671dc8;
  uVar40 = uVar30 ^ *puVar7 | uVar40 ^ *(ulonglong *)(lVar10 + -0x510);
  *puVar9 = uVar40 ^ CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar30 = CONCAT44(uVar20,uVar20);
  uVar37 = (ulonglong)DAT_182671c5c;
  *puVar1 = (uVar31 ^ *puVar33) - uVar40 ^ uVar30;
  *(ulonglong *)(lVar11 - (uVar37 ^ 0xdceefb15)) = uVar40 ^ uVar34 ^ *puVar45 ^ uVar39;
  uVar37 = *puVar6;
  *puVar2 = (uVar27 ^ 0xaf61e02c4b3432d5) + (CONCAT44(uVar19,uVar17) ^ 0x20c8b045d843bf03);
  uVar27 = (uVar39 ^ uVar37) >> (((byte)DAT_182671c50 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar11 + -0xc38) = uVar27 ^ CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar12 = DAT_182671c4c;
  *puVar26 = (CONCAT44(DAT_182671c4c,uVar36) ^ 0x5f1b0466d6b6c843) + 0xd6a159385f1a97a5;
  bVar28 = (byte)DAT_182671c94;
  uVar37 = (*(ulonglong *)(lVar11 - (uVar43 ^ 0x5f0e7350)) ^ uVar39) << ((bVar28 ^ 0x5c) & 0x3f);
  pbVar8 = (byte *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar37 ^ CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (CONCAT44(uVar23,uVar14) ^ 0x635840c5941d05e0) >> (((byte)uVar21 ^ *pbVar8) & 0x3f);
  uVar39 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *puVar4 = (uVar27 | uVar37) ^ uVar39;
  uVar20 = DAT_182671df8;
  lVar10 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x510) = **(ulonglong **)(DAT_182671c40 + -0x820) ^ uVar44;
  uVar37 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar10 - (uVar43 ^ 0x5f0e7de8)) =
       (uVar34 ^ *puVar32) - (CONCAT44(uVar18,uVar23) ^ 0x235ed5e9fec3cda6) ^ uVar37;
  *puVar5 = (uVar37 ^ *puVar7) - (uVar39 ^ *puVar4) ^ uVar34;
  uVar37 = CONCAT44(uVar13,DAT_182671c60);
  uVar27 = (uVar39 ^ *puVar4) - (CONCAT44(uVar12,uVar15) ^ 0xc3dd057d5c595316) ^
           CONCAT44(DAT_182671cec,DAT_182671cec);
  bVar29 = (byte)DAT_182671cec;
  *puVar9 = uVar27;
  *puVar2 = (uVar37 ^ 0xaa96bc06112748c2) << ((bVar29 ^ (byte)uVar27) & 0x3f);
  uVar13 = DAT_182671dd4;
  uVar37 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar42 = uVar37 ^ uVar30 ^ *puVar3 ^ *puVar1 ^ uVar42;
  *puVar26 = uVar42;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar25 * 4) = uVar24;
  *puVar6 = (uVar42 ^ uVar37) >> ((bVar28 ^ 0x5a) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  return;
}



############ FUN_ 180fefc50 size=5393 ############

void FUN_180fefc50(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte bVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  byte local_f8;
  byte local_f0;
  byte local_e8;
  byte local_e0;
  
  uVar14 = DAT_182671f34;
  uVar12 = DAT_182671cd0;
  uVar11 = DAT_182671c90;
  uVar10 = DAT_182671c7c;
  uVar9 = DAT_182671c6c;
  uVar8 = DAT_182671c68;
  uVar31 = DAT_182671c60;
  uVar20 = DAT_182671c50;
  lVar6 = DAT_182671c40;
  uVar40 = (ulonglong)DAT_182671c60;
  uVar36 = (ulonglong)DAT_182671c90;
  uVar49 = DAT_182671c90 ^ DAT_182671c60;
  uVar35 = (ulonglong)DAT_182671c7c;
  uVar51 = (ulonglong)DAT_182671c68;
  uVar23 = (ulonglong)DAT_182671c50;
  uVar5 = *(uint *)(&DAT_182613218 + DAT_182672070);
  uVar30 = DAT_182671c7c << 0x10 | DAT_182671c7c >> 0x10;
  uVar26 = DAT_182671c6c << 0x10 | DAT_182671c6c >> 0x10;
  uVar28 = DAT_182671c68 + DAT_182671c50;
  uVar15 = *(uint *)(&DAT_182613210 + (uVar40 ^ 0x17ae7196) + (longlong)DAT_182672070) ^
           DAT_182671c90;
  uVar41 = (ulonglong)uVar30;
  bVar19 = (byte)(DAT_182671c7c >> 0x10);
  uVar21 = (CONCAT44(DAT_182671e24,DAT_182671e24) ^ *(ulonglong *)(DAT_182671c40 + -0xb20)) <<
           ((bVar19 ^ 0xf6) & 0x3f);
  DAT_182671c48 = uVar30;
  DAT_182671c64 = uVar26;
  DAT_182671c74 = uVar28;
  DAT_182671c80 = uVar49;
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar21 ^ CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar13 = DAT_182671f28;
  uVar42 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x380) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0x920) | uVar21) ^ uVar42;
  uVar18 = (ulonglong)uVar26;
  puVar32 = (ulonglong *)(lVar6 - (uVar51 ^ 0x4fa7d2ab));
  uVar21 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x5909c3a5)) =
       CONCAT44(uVar13,uVar13) ^ CONCAT44(uVar26,uVar9) ^ *puVar32 ^ 0xf4324fc3f2315c9a;
  uVar13 = DAT_182671f60;
  uVar17 = DAT_182671c4c;
  uVar37 = CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar6 + -0x680)) - (*(ulonglong *)(lVar6 + -0xa78) ^ uVar37);
  uVar42 = uVar42 ^ *(ulonglong *)(lVar6 + -0x380);
  uVar39 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar6 + -0x760) = uVar21 ^ CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar12 = DAT_182671df0;
  uVar47 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xb08) = uVar21 - uVar42 ^ uVar47;
  uVar13 = DAT_182671e8c;
  uVar22 = uVar17 << 0x10 | uVar17 >> 0x10;
  uVar21 = -(*(ulonglong *)(lVar6 - (uVar23 ^ 0xa6f5f4e1)) ^ CONCAT44(DAT_182671d60,DAT_182671d60))
           - 0x11;
  DAT_182671c8c = uVar22;
  *(ulonglong *)(lVar6 + -0x110) = uVar21 ^ CONCAT44(uVar12,uVar12);
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar21 = uVar21 + uVar42 ^ uVar33;
  puVar1 = (ulonglong *)(lVar6 + -0xc18);
  *puVar1 = uVar21;
  uVar12 = DAT_182671d1c;
  *(uint *)(lVar6 + -0x634) = uVar22 ^ 0x2fd6e0fc | uVar17 ^ 0x2245e5fd;
  puVar2 = (ulonglong *)(lVar6 + -0x4b8);
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar43 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *puVar2 = uVar43 ^ uVar42 ^ uVar33 ^ uVar21 ^ *(ulonglong *)(lVar6 + -0xc38);
  lVar7 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671f64,DAT_182671f64);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xb6f651e3)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar22 ^ 0x3965db2)) ^ uVar42) >>
       (((byte)uVar28 ^ 0x21) & 0x3f) ^ uVar21;
  puVar46 = (ulonglong *)(lVar6 - ((ulonglong)uVar49 ^ 0x4ea7b6ab));
  uVar38 = (uVar42 ^ *puVar46) << ((bVar19 ^ 0xd2) & 0x3f);
  uVar42 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar7 + -0xb20) = uVar38 ^ CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar13 = DAT_182671f40;
  uVar12 = DAT_182671c9c;
  puVar3 = (ulonglong *)(lVar7 + -0xd88);
  uVar38 = uVar21 ^ *puVar3 | uVar38;
  uVar29 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar7 + -0x920) = uVar38 ^ uVar42;
  uVar14 = DAT_182671f80;
  *(ulonglong *)(lVar7 + -0xa60) = (uVar43 ^ *(ulonglong *)(lVar7 + -0xc38)) - uVar38 ^ uVar29;
  uVar38 = CONCAT44(uVar14,uVar14);
  puVar34 = (ulonglong *)(lVar7 - (uVar23 ^ 0xa6f5f771));
  puVar24 = (ulonglong *)(lVar7 + -0x510);
  *(ulonglong *)(lVar7 - (uVar36 ^ 0x5909c685)) =
       *(ulonglong *)(lVar7 - (uVar40 ^ 0x17ae7a8e)) ^ CONCAT44(uVar12,uVar12) ^ uVar38 ^ uVar47 ^
       *puVar34;
  lVar6 = DAT_182671c40;
  local_e0 = (byte)uVar49;
  uVar21 = (uVar38 ^ *puVar24) >> ((local_e0 ^ 0x36) & 0x3f);
  uVar38 = (uVar38 ^ *puVar24) << (((byte)DAT_182671c6c ^ 0x70) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar21 ^ CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar44 = CONCAT44(DAT_182671f54,DAT_182671f54);
  uVar43 = uVar38 ^ uVar44;
  uVar27 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(lVar6 + -0x680) = uVar43;
  uVar38 = uVar38 | uVar21;
  *(ulonglong *)(lVar6 + -0x760) = uVar38 ^ uVar44;
  uVar38 = (uVar47 ^ *(ulonglong *)(lVar6 + -0xb08)) - uVar38 ^ uVar27;
  *(ulonglong *)(lVar6 + -0x380) =
       0x4fa308b552b2d69e >> (((byte)uVar13 ^ *(byte *)(lVar6 + -0xa60)) & 0x3f);
  uVar9 = DAT_182671db0;
  uVar21 = (ulonglong)DAT_182671db0;
  *(ulonglong *)(lVar6 + -0x110) = uVar38;
  *puVar1 = uVar27 ^ uVar43 ^ uVar44 ^ uVar38;
  uVar38 = *(ulonglong *)(lVar6 - (uVar18 ^ 0x5c6bb196)) ^ CONCAT44(uVar9,uVar9) ^ uVar44 ^ uVar29 ^
           *(ulonglong *)(lVar6 + -0xa60);
  *puVar2 = uVar38;
  uVar12 = DAT_182671d18;
  *puVar3 = ((ulonglong)(uVar9 >> 0x17) | uVar21 << 9) ^ uVar38 >> 0x17 ^ uVar44;
  local_f0 = (byte)uVar8;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar22 ^ 0x396522a)) =
       (CONCAT44(uVar9,uVar9) ^ uVar38) << ((local_f0 ^ 0x92) & 0x3f) ^ uVar21;
  lVar7 = DAT_182671c40;
  puVar25 = (ulonglong *)(lVar6 - (uVar40 ^ 0x17ae7aa6));
  uVar38 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar21 = uVar44 ^ *puVar3 | uVar21 ^ *puVar25;
  uVar48 = CONCAT44(DAT_182671d24,DAT_182671d24);
  puVar4 = (ulonglong *)(DAT_182671c40 + -0xa60);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar21 ^ uVar38;
  *(ulonglong *)(lVar7 + -0xb18) = (uVar29 ^ *puVar4) - uVar21 ^ uVar48;
  uVar12 = DAT_182671e70;
  *puVar24 = CONCAT44(uVar17,uVar28) ^ 0xc15ccde07eb0d53e |
             CONCAT44(uVar11,uVar22) ^ 0x434cbb4fd26ef74c;
  lVar6 = DAT_182671c40;
  uVar21 = CONCAT44(uVar12,uVar12);
  bVar45 = (byte)uVar20;
  *(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0x5c6bb6c6)) =
       uVar21 ^ uVar27 ^ uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0x920) ^
       *(ulonglong *)(DAT_182671c40 + -0x110);
  uVar29 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x5909c015)) =
       (uVar21 ^ *(ulonglong *)(lVar6 + -0x30)) >> ((bVar45 ^ 0x41) & 0x3f) ^ uVar29;
  uVar12 = DAT_182671f5c;
  uVar9 = DAT_182671d4c;
  uVar47 = (ulonglong)DAT_182671d4c;
  uVar42 = (*(ulonglong *)(lVar6 - (uVar41 ^ 0xf1f8ced9)) ^ uVar21) << ((bVar19 ^ 0xf1) & 0x3f);
  *(ulonglong *)(lVar6 + -0xb08) = uVar42 ^ CONCAT44(DAT_182671d54,DAT_182671d54);
  lVar6 = DAT_182671c40;
  uVar50 = CONCAT44(uVar12,uVar12);
  uVar29 = uVar42 | uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0x380);
  uVar43 = uVar29 ^ uVar50;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar43;
  uVar21 = *(ulonglong *)(lVar6 + -0x110);
  *puVar1 = (CONCAT44(uVar28,uVar49) ^ 0xff8cb115bd6c54c) - uVar42;
  uVar42 = *(ulonglong *)(lVar6 + -0xb18);
  uVar44 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *(ulonglong *)(lVar6 + -0x760) = (uVar27 ^ uVar21) - uVar29 ^ uVar44;
  uVar29 = CONCAT44(uVar9,uVar9);
  *puVar2 = CONCAT44(uVar20,uVar28) ^ CONCAT44(uVar11,uVar49) ^ 0x4e43dc7c02ddcccf;
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xf1f8c361)) = uVar50 ^ uVar48 ^ uVar42 ^ uVar29 ^ uVar43;
  lVar7 = DAT_182671c40;
  *(uint *)(lVar6 + -0x644) = *(uint *)(lVar6 - (uVar40 ^ 0x17ae7452)) >> ((bVar19 ^ 0xe1) & 0x1f);
  uVar40 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *puVar25 = (*(ulonglong *)(lVar7 - (uVar39 ^ 0x590a0e1e)) >> 0x20 ^ uVar47) >> 0x14 ^ uVar40;
  *(ulonglong *)(lVar7 - (uVar51 ^ 0x4fa7dddb)) =
       (*(ulonglong *)(lVar7 + -0x760) ^ uVar44) - (CONCAT44(uVar10,uVar11) ^ 0x7bce1552fc5044af);
  uVar21 = *(ulonglong *)(lVar7 + -0xb20);
  uVar42 = (*puVar3 ^ uVar29) << ((bVar45 ^ 0x65) & 0x3f);
  *puVar24 = uVar42 ^ CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar42 = uVar21 ^ uVar40 | uVar42;
  uVar51 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar29 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(lVar7 + -0x920) = uVar42 ^ uVar51;
  uVar9 = DAT_182671c8c;
  uVar42 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar28 ^ 0xf69ddf3c)) ^ uVar48) - uVar42 ^ uVar29;
  *(ulonglong *)(lVar7 + -0x30) = uVar42;
  uVar12 = DAT_182671ed8;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar7 + -0x380) =
       CONCAT44(uVar28,uVar26) ^ 0xe68c2e0fc008ac66 | CONCAT44(uVar9,uVar8) ^ 0x52c64cbd2b7af583;
  uVar21 = (ulonglong)DAT_182671dd4;
  uVar43 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar40 = uVar38 ^ *(ulonglong *)(lVar7 + -0xc38) ^ *(ulonglong *)(lVar7 + -0x760) ^ uVar43 ^
           uVar44;
  *(ulonglong *)(lVar7 + -0xb08) = uVar40;
  uVar27 = (uVar40 >> 0x20 ^ uVar21) >> 0x19;
  local_f8 = (byte)uVar11;
  *puVar1 = uVar27 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e20;
  uVar40 = (uVar43 ^ uVar40) << ((local_f8 ^ 0x92) & 0x3f);
  uVar21 = *(ulonglong *)(lVar6 + -0x760);
  *(ulonglong *)(lVar6 + -0x110) = uVar40 ^ CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar43 = CONCAT44(uVar12,uVar12);
  uVar27 = (uVar27 | uVar40) ^ uVar43;
  *puVar2 = uVar27;
  uVar12 = DAT_182671dbc;
  uVar40 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar6 + -0x680) = (uVar21 ^ uVar44) - (*puVar46 ^ uVar43) ^ uVar40;
  uVar44 = CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar21 = (ulonglong)DAT_182671fac;
  uVar42 = uVar27 ^ uVar44 ^ uVar43 ^ uVar29 ^ uVar42;
  uVar20 = DAT_182671fac >> 0xe;
  *(ulonglong *)(lVar6 + -0xa60) = uVar42;
  uVar43 = (uVar21 << 0x12 | (ulonglong)uVar20) ^ uVar42 >> 0xe;
  *puVar3 = uVar43 ^ CONCAT44(uVar12,uVar12);
  uVar13 = DAT_182671f6c;
  uVar21 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *(ulonglong *)(lVar6 + -0xb20) = (uVar42 ^ uVar44) << (((byte)uVar9 ^ 0x38) & 0x3f) ^ uVar21;
  uVar44 = CONCAT44(uVar13,uVar13);
  *puVar32 = (*(ulonglong *)(lVar6 - (uVar36 ^ 0x5909c8b5)) ^ uVar21 | uVar43) ^ uVar44;
  uVar14 = DAT_182671f04;
  uVar12 = DAT_182671cbc;
  bVar19 = *(byte *)puVar24;
  uVar21 = (uVar29 ^ *(ulonglong *)(lVar6 + -0x30)) -
           (CONCAT44(DAT_182671ec8,DAT_182671ec8) ^ *(ulonglong *)(lVar6 + -0x228));
  *(ulonglong *)(lVar6 + -0xb18) = uVar21 ^ CONCAT44(DAT_182671f20,DAT_182671f20);
  *(ulonglong *)(lVar6 + -0x380) = 0x3ea5ac39255a6f6a >> (((byte)uVar13 ^ bVar19) & 0x3f);
  uVar13 = DAT_182671d84;
  uVar47 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0xc38) = uVar21 - (uVar44 ^ *puVar24) ^ uVar47;
  uVar9 = DAT_182671c6c;
  uVar20 = DAT_182671c64;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar42 = (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0x408)) +
           (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c6c ^ 0xb6f65edb)) ^ uVar33);
  uVar21 = *puVar24;
  uVar16 = DAT_182671c64 ^ 0xfefe18bd;
  *(ulonglong *)(lVar6 + -0xb08) = uVar42 ^ uVar29;
  *(uint *)(lVar6 + -0x634) = uVar16 + (uVar20 ^ 0x282eafad);
  uVar43 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar20 = DAT_182671c80 ^ 0xd2e5a00d;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xb6f65073)) = (uVar44 ^ uVar21) - uVar42 ^ uVar43;
  *(uint *)(lVar6 + -0x644) = uVar20 + (DAT_182671c60 ^ 0xb8a16009);
  puVar32 = (ulonglong *)(lVar6 - (uVar35 ^ 0xcee9f0e8));
  *puVar32 = uVar38 ^ uVar40 ^ uVar51 ^ *(ulonglong *)(lVar6 + -0x920) ^
             *(ulonglong *)(lVar6 + -0x680);
  *(int *)(lVar6 - (uVar39 ^ 0x590a05a2)) = *(int *)(lVar6 - (uVar41 ^ 0xf1f8c829)) + 0x1970885;
  uVar12 = DAT_182671d00;
  uVar21 = (uVar38 ^ *(ulonglong *)(lVar6 + -0x110)) >> ((local_e0 ^ 3) & 0x3f);
  bVar19 = (byte)DAT_182671c88;
  *(ulonglong *)(lVar6 + -0x760) = uVar21 ^ CONCAT44(DAT_182671dc4,DAT_182671dc4);
  puVar25 = (ulonglong *)(lVar6 - (uVar36 ^ 0x5909c285));
  uVar38 = (uVar38 ^ *puVar25) << ((bVar19 ^ 0x37) & 0x3f);
  *puVar2 = uVar38 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e48;
  lVar6 = DAT_182671c40;
  uVar44 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  uVar38 = uVar38 | uVar21;
  puVar4 = (ulonglong *)(DAT_182671c40 + -0x680);
  uVar33 = CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0xb08);
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar38 ^ uVar44;
  uVar42 = (uVar40 ^ *puVar4) - (*(ulonglong *)(lVar6 + -0x828) ^ uVar33);
  *puVar3 = uVar42 ^ CONCAT44(uVar12,uVar12);
  uVar13 = DAT_182671d88;
  uVar12 = DAT_182671cc0;
  uVar51 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar42 = uVar42 - uVar38 ^ uVar51;
  *(ulonglong *)(lVar6 + -0xb20) = uVar42;
  uVar14 = DAT_182671e14;
  *(ulonglong *)(lVar6 + -0x30) = 0x4c3624400280f1dd >> (((byte)uVar42 ^ (byte)uVar12) & 0x3f);
  uVar38 = (CONCAT44(uVar31,uVar8) ^ 0xe8518e79b058284b) -
           (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0xbd8));
  *(ulonglong *)(lVar6 + -0x380) = uVar38 ^ CONCAT44(uVar13,uVar13);
  uVar12 = DAT_182671dc0;
  uVar42 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar6 + -0xb18) =
       (uVar29 ^ uVar21) - (CONCAT44(uVar28,uVar30) ^ 0x3ac1760e0c87ae58);
  uVar20 = DAT_182671c70;
  lVar6 = DAT_182671c40;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar36 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x590a0686)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0xb6f6560b)) ^ uVar44) + uVar38 ^ uVar21;
  uVar27 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xcee9f8d8)) =
       uVar27 ^ uVar21 ^ *(ulonglong *)(lVar6 + -0xc38) ^ uVar47 ^ *puVar24;
  *puVar25 = (uVar27 ^ *(ulonglong *)(lVar6 + -0x920)) >> (((byte)uVar20 ^ 0xd8) & 0x3f) ^ uVar33;
  uVar12 = DAT_182671da4;
  uVar21 = (uVar27 ^ *(ulonglong *)(lVar6 + -0x920)) << ((local_e0 ^ 0x33) & 0x3f);
  *(ulonglong *)(lVar6 + -0x760) = uVar21 ^ CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar21 = uVar21 | *puVar32 ^ uVar33;
  *puVar2 = uVar21 ^ uVar29;
  uVar38 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(lVar6 + -0x680) = (*(ulonglong *)(lVar6 + -0xc38) ^ uVar47) - uVar21 ^ uVar38;
  uVar43 = *(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0xf69ddf04)) ^ uVar37 ^ *puVar1 ^ uVar51 ^
           uVar43;
  *puVar3 = uVar43;
  uVar12 = DAT_182671ca8;
  lVar6 = DAT_182671c40;
  uVar44 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (uVar37 ^ uVar43) >> (((byte)uVar17 ^ 0xb6) & 0x3f) ^ uVar44;
  uVar42 = CONCAT44(uVar12,uVar12);
  *puVar34 = (uVar37 ^ uVar43) << 0x20 ^ uVar42;
  uVar20 = DAT_182671c84;
  uVar33 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar6 + -0xa60) =
       (*(ulonglong *)(lVar6 + -0xb20) ^ uVar51) >> (((byte)DAT_182671c84 ^ 0x4f) & 0x3f);
  uVar37 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar21 = CONCAT44(DAT_182671c78,uVar20);
  uVar42 = *(ulonglong *)(lVar6 - (uVar35 ^ 0xcee9f1c8)) ^ uVar44 |
           uVar42 ^ *(ulonglong *)(lVar6 + -0xb18);
  *(ulonglong *)(lVar6 + -0x380) = uVar42 ^ uVar37;
  *(ulonglong *)(lVar6 + -0xc38) = (uVar27 ^ *(ulonglong *)(lVar6 + -0x920)) - uVar42;
  *puVar24 = 0x4c06ade2f87a25af - (uVar21 ^ 0xf122d21e69e162d8);
  uVar21 = (ulonglong)DAT_182671dac;
  uVar43 = CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar44 = CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar35 = uVar42 ^ uVar37 ^ uVar44 ^ uVar37 ^ uVar38 ^ *(ulonglong *)(lVar6 + -0x680);
  *(ulonglong *)(lVar6 + -0x760) = (*(ulonglong *)(lVar6 + -0xb20) ^ uVar51) - uVar42 ^ uVar43;
  uVar12 = DAT_182671d48;
  *(ulonglong *)(lVar6 + -0x110) = uVar35;
  uVar20 = DAT_182671c54;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar42 = (ulonglong)DAT_182671c54;
  *puVar1 = (uVar35 >> 0x20 ^ uVar21) >> 0x1a ^ uVar27;
  uVar35 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  local_e8 = (byte)uVar31;
  uVar21 = (ulonglong)DAT_182671c58;
  *puVar3 = (*(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x88d82b74)) ^ uVar44) << (local_e8 & 0x3f) ^
            uVar35;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x715a134c)) =
       CONCAT44(uVar26,uVar10) ^ CONCAT44(uVar11,uVar22) ^ 0xb33b334a40456732;
  lVar6 = DAT_182671c40;
  uVar31 = DAT_182671c6c ^ 0x990feda1;
  uVar21 = CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar17 = DAT_182671c8c ^ 0x1fa80af1;
  *(ulonglong *)(DAT_182671c40 + -0x30) = (*puVar3 ^ uVar35 | *puVar1 ^ uVar27) ^ uVar21;
  *(uint *)(lVar6 - ((ulonglong)DAT_182671c94 ^ 0x23af152e)) = uVar31 | uVar17;
  uVar31 = DAT_182671f10;
  uVar42 = (ulonglong)DAT_182671f10;
  *(ulonglong *)(lVar6 - (uVar33 ^ 0x38e01261)) =
       (uVar38 ^ *(ulonglong *)(lVar6 + -0x680)) - (uVar21 ^ *(ulonglong *)(lVar6 + -0x30)) ^ uVar37
  ;
  *puVar24 = 0xcf0b8cc493f1121;
  uVar35 = CONCAT44(uVar31,uVar31);
  uVar21 = *puVar2 ^ uVar35 ^ uVar43 ^ uVar29 ^ *(ulonglong *)(lVar6 + -0x760);
  *(ulonglong *)(lVar6 + -0xb20) = uVar21;
  uVar17 = DAT_182671c5c;
  uVar44 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar6 - (uVar36 ^ 0xcee9f8d8)) = uVar21 ^ uVar35 | 0x9dc0c5bc977a514b;
  uVar42 = ((ulonglong)(uVar31 >> 0x16) | uVar42 << 10) ^ *(ulonglong *)(lVar6 + -0xb20) >> 0x16;
  uVar38 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar6 + -0x380) = uVar42 ^ CONCAT44(DAT_182671edc,DAT_182671edc);
  uVar12 = DAT_182671f68;
  uVar21 = (*(ulonglong *)(lVar6 - (uVar23 ^ 0xa6f5f749)) ^ uVar35) <<
           (((byte)uVar17 ^ 0xca) & 0x3f);
  *(ulonglong *)(lVar6 + -0xc38) = uVar21 ^ uVar38;
  uVar42 = uVar42 | uVar21;
  uVar21 = uVar42 ^ uVar50;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x110) = uVar21;
  uVar38 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar6 + -0xa60) = (uVar43 ^ *(ulonglong *)(lVar6 + -0x760)) - uVar42 ^ uVar29;
  *(ulonglong *)(lVar6 - (uVar44 ^ 0x197934f8)) =
       uVar50 ^ uVar38 ^ uVar37 ^ *(ulonglong *)(lVar6 + -0xb18) ^ uVar21;
  uVar42 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  uVar21 = (*puVar1 ^ uVar38) >> (((byte)uVar20 ^ 0x4a) & 0x3f) ^ uVar42;
  *puVar3 = uVar21;
  uVar12 = DAT_182671da0;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar49 ^ 0x4ea7b493)) =
       *(ulonglong *)(lVar6 - (uVar18 ^ 0x5c6bbc96)) ^ uVar21 ^ uVar42 ^ uVar29;
  uVar21 = (*puVar1 ^ uVar38) << 0x12;
  *puVar24 = uVar21 ^ CONCAT44(uVar12,uVar12);
  *puVar2 = (uVar21 | *puVar3 ^ uVar42) ^ uVar40;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar5 ^ uVar49;
  return;
}



############ FUN_ 180f81a40 size=5292 ############

void FUN_180f81a40(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  ulonglong uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  uint uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  byte bVar44;
  byte *pbVar45;
  byte local_res20;
  
  uVar9 = DAT_182671c80;
  uVar8 = DAT_182671c70;
  uVar6 = DAT_182671c50;
  uVar4 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c48;
  uVar22 = (ulonglong)DAT_182671c80;
  uVar26 = (ulonglong)DAT_182671c70;
  uVar38 = (ulonglong)DAT_182671c50;
  uVar19 = DAT_182671c80 | DAT_182671c48;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182672218);
  uVar32 = DAT_182671c70 - DAT_182671c50;
  uVar13 = *(uint *)(&DAT_182613220 + DAT_182672218) ^ DAT_182671c48;
  DAT_182671c54 = uVar19;
  DAT_182671c58 = uVar32;
  *(uint *)(DAT_182671c40 + -0x4ac) = DAT_182671c80 & 0x9e9d82c3 ^ 0x980c82c3;
  uVar5 = DAT_182671eac;
  uVar29 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar39 = CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar14 = (ulonglong)uVar32;
  uVar16 = CONCAT44(DAT_182671d6c,DAT_182671d6c) ^ *(ulonglong *)(lVar2 + -0xa70) ^
           *(ulonglong *)(lVar2 + -0x7c0) ^ uVar39;
  *(ulonglong *)(lVar2 + -0x7e8) = uVar16 ^ uVar29;
  uVar33 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x8abe81c3)) =
       (CONCAT44(uVar32,uVar6) ^ 0x4ed3ef910dd4161e) + uVar16 ^ uVar33;
  uVar17 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar16 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  puVar24 = (ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x52287c73));
  *puVar24 = (uVar17 ^ *(ulonglong *)(lVar2 + -0x760)) +
             (CONCAT44(uVar19,uVar9) ^ 0x2bea0d2ca5969ae) ^ uVar16;
  *(ulonglong *)(lVar2 + -0x888) = (*(ulonglong *)(lVar2 + -0x7e8) ^ uVar29) << 0x3c;
  lVar2 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0x3b0d6f50)) ^ uVar33) +
       (uVar16 ^ *(ulonglong *)(DAT_182671c40 + -0x628)) ^ uVar21;
  uVar5 = DAT_182671e10;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x8abe8223)) ^ uVar29) + 0x4babb8a88c1b0236;
  uVar25 = CONCAT44(uVar5,uVar5);
  puVar43 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x6f279554));
  bVar44 = (byte)uVar32;
  *puVar43 = (uVar33 ^ *(ulonglong *)(lVar2 + -0x408)) << (((byte)uVar19 ^ 0x42) & 0x3f) ^ uVar25;
  uVar29 = (uVar33 ^ *(ulonglong *)(lVar2 + -0x408)) >> ((bVar44 ^ 0xe0) & 0x3f);
  uVar16 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(ulonglong *)(lVar2 + -0xb18) = uVar29 ^ uVar16;
  *(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0x52287643)) =
       CONCAT44(uVar4,uVar8) ^ 0x28161ce4e0a3cb64 | uVar29;
  lVar2 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671e64,DAT_182671e64);
  puVar18 = (ulonglong *)(DAT_182671c40 - (uVar14 ^ 0x1b96edcf));
  *puVar18 = (*(ulonglong *)(DAT_182671c40 + -0xb18) ^ uVar16 |
             uVar25 ^ *(ulonglong *)(DAT_182671c40 + -0xa50)) ^ uVar34;
  uVar12 = DAT_182671d88;
  lVar3 = DAT_182671c40;
  pbVar45 = (byte *)(lVar2 - (uVar37 ^ 0x52287aab));
  uVar27 = CONCAT44(DAT_182671d88,DAT_182671d88);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (CONCAT44(uVar9,uVar19) ^ 0x487d2937bd206d1d) << (((byte)DAT_182671f10 ^ *pbVar45) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x8abe8de3)) =
       *(ulonglong *)(lVar3 + -0x380) ^ uVar27 ^ uVar34 ^ uVar21 ^ *(ulonglong *)(lVar3 + -0xb08);
  uVar5 = DAT_182671ee0;
  uVar10 = DAT_182671da4;
  uVar31 = (ulonglong)DAT_182671da4;
  *(ulonglong *)(lVar3 + -0x4b8) =
       (CONCAT44(uVar4,uVar9) ^ 0x48da5037f6ac9b46) <<
       (((byte)uVar12 ^ *(byte *)(lVar3 + -0x828)) & 0x3f);
  uVar32 = DAT_182671cc8;
  puVar35 = (ulonglong *)(lVar3 - (uVar38 ^ 0x6f279424));
  uVar33 = CONCAT44(uVar10,uVar10);
  *puVar35 = (CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) +
             (CONCAT44(uVar6,uVar4) ^ 0x841b08ea6f937a5) ^ uVar33;
  lVar2 = DAT_182671c40;
  uVar42 = CONCAT44(uVar32,uVar32);
  uVar16 = (CONCAT44(uVar8,uVar19) ^ 0xb5280840c5dc2bd6) +
           (*(ulonglong *)(DAT_182671c40 + -0xa70) ^ uVar39);
  uVar29 = ((ulonglong)(uVar6 >> 0xd) | uVar14 << 0x13) ^ 0x38778039652f3;
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar16 ^ uVar42;
  uVar7 = DAT_182671d0c;
  *(ulonglong *)(lVar2 + -0x760) = uVar29;
  uVar5 = DAT_182671ca0;
  uVar39 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x888) = uVar16 + (uVar33 ^ *puVar35) ^ uVar39;
  uVar7 = DAT_182671e18;
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(uVar5,uVar5);
  puVar23 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar19 ^ 0x7b2d707b));
  puVar28 = (ulonglong *)(DAT_182671c40 + -0xb20);
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar29 >> (((byte)uVar9 ^ 0x5d) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = (uVar33 ^ *puVar28) << 0x21 ^ uVar36;
  uVar5 = DAT_182671da0;
  uVar16 = CONCAT44(uVar7,uVar7);
  puVar28 = (ulonglong *)(lVar2 - (uVar22 ^ 0x3b0d6cb0));
  *puVar28 = ((ulonglong)(uVar10 >> 0x1f) | uVar31 * 2) ^ *puVar23 >> 0x1f ^ uVar16;
  uVar29 = CONCAT44(uVar5,uVar5);
  uVar16 = (*(ulonglong *)(lVar2 + -0x7e8) ^ uVar16 | *(ulonglong *)(lVar2 + -0x110) ^ uVar36) ^
           uVar29;
  *(ulonglong *)(lVar2 + -0x408) = uVar16;
  uVar32 = DAT_182671e3c;
  lVar3 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671e3c;
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x8abe8ec3)) ^ uVar34) >>
       ((*(byte *)(lVar2 - ((ulonglong)uVar19 ^ 0x7b2d7373)) ^ (byte)uVar12) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar33 = CONCAT44(uVar32,uVar32);
  *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0x8abe8f9b)) =
       *(ulonglong *)(lVar3 - (uVar14 ^ 0x1b96ee4f)) ^ uVar33 ^ uVar16 ^ uVar29 ^ uVar39;
  uVar7 = DAT_182671ef0;
  uVar29 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar2 + -0xb18) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xa50)) + (*(ulonglong *)(lVar2 + -0x380) ^ uVar21) ^
       uVar29;
  uVar5 = DAT_182671e50;
  uVar21 = (uVar33 ^ *puVar43) << ((bVar44 ^ 0xe9) & 0x3f);
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xf0) = uVar21 ^ uVar33;
  lVar3 = DAT_182671c40;
  uVar16 = ((ulonglong)(uVar32 >> 0x12) | uVar31 << 0xe) ^ *(ulonglong *)(lVar2 + -0xa50) >> 0x12;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar16 ^ CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x4b8) = (CONCAT44(uVar4,uVar6) ^ 0x5c63125859a42ce9) + 0xe7e6ffa044cb69bd
  ;
  uVar30 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar3 + -0xbd8) = (uVar16 | uVar21) ^ uVar30;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x3b0d6128)) = uVar21 | 0x66ec0c5972d76c94;
  uVar41 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *(ulonglong *)(lVar3 + -0x7c0) =
       uVar41 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0xb18) ^ uVar29 ^ *(ulonglong *)(lVar3 + -0xbd8);
  uVar5 = DAT_182671d8c;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar9,uVar8) ^ 0xcf6fe878eb22a57a) >> (((byte)uVar7 ^ *pbVar45) & 0x3f);
  uVar7 = DAT_182671f9c;
  uVar40 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x828)) + (*(ulonglong *)(lVar3 + -0x888) ^ uVar39) ^
       uVar40;
  uVar5 = DAT_182671ec4;
  uVar39 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0xb20) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x828)) << ((bVar44 ^ 0xcb) & 0x3f) ^ uVar39;
  uVar16 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x828)) >> (((byte)uVar9 ^ 0x6c) & 0x3f);
  uVar21 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar3 + -0x110) = uVar16 ^ CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x7e8) = (uVar39 ^ *puVar23 | uVar16) ^ uVar21;
  uVar10 = DAT_182671c84;
  uVar32 = DAT_182671c48 ^ 0x6a7ac61;
  uVar16 = *(ulonglong *)(lVar3 - (uVar37 ^ 0x52287db3)) ^
           *(ulonglong *)(lVar3 - (uVar26 ^ 0x8abe83e3)) ^ uVar21 ^ uVar40;
  uVar39 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar3 + -0xc18) = uVar16 ^ uVar42;
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x8abe89d3)) ^ uVar42) +
       (*(ulonglong *)(lVar3 + -0xb18) ^ uVar29) ^ uVar39;
  *(uint *)(lVar3 + -0x1c8) = *(int *)(lVar3 - (uVar38 ^ 0x6f279868)) * uVar32;
  uVar31 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar15 = DAT_182671c58 ^ 0x40c93b5d;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x6f279b0c)) =
       uVar16 << (((byte)uVar8 ^ 0xf1) & 0x3f) ^ uVar31;
  uVar32 = DAT_182671cc8;
  uVar29 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar16 = (ulonglong)DAT_182671cc8;
  *(uint *)(lVar3 + -0x684) = uVar15 * (DAT_182671c80 ^ 0x1aa80f9d);
  uVar21 = (uVar16 << 0x1a | (ulonglong)(uVar32 >> 6)) ^ *(ulonglong *)(lVar3 + -0xc18) >> 6;
  *(ulonglong *)(lVar3 + -0x380) = uVar21 ^ uVar29;
  uVar16 = (*(ulonglong *)(lVar3 - (uVar22 ^ 0x3b0d68d8)) ^ uVar29 |
           uVar31 ^ *(ulonglong *)(lVar3 + -0x408)) ^ uVar33;
  *(ulonglong *)(lVar3 + -0xa50) = uVar16;
  uVar11 = DAT_182671dbc;
  uVar32 = DAT_182671c7c;
  uVar29 = (ulonglong)DAT_182671dbc;
  *(ulonglong *)(lVar3 + -0x4b8) = CONCAT44(uVar4,DAT_182671c7c) ^ 0x3eeb46d09f7674de | uVar21;
  uVar15 = DAT_182671c8c;
  uVar42 = CONCAT44(uVar11,uVar11);
  bVar20 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x1b96e477)) =
       uVar42 ^ uVar39 ^ uVar33 ^ uVar16 ^ *(ulonglong *)(lVar3 + -0xb08);
  uVar11 = DAT_182671c94;
  uVar16 = uVar41 ^ *(ulonglong *)(lVar3 + -0x7c0);
  *(ulonglong *)(lVar3 + -0xa70) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0x628)) + (uVar41 ^ *(ulonglong *)(lVar3 + -0x7c0)) ^
       uVar25;
  uVar5 = DAT_182671e5c;
  uVar7 = DAT_182671c5c;
  *(ulonglong *)(lVar3 + -0xbd8) =
       (CONCAT44(uVar11,uVar15) ^ 0x75dc876b89d76351) << ((bVar20 ^ 0x89) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(DAT_182671c40 + -0xf0) = uVar16 << (((byte)uVar32 ^ 0xd9) & 0x3f) ^ uVar31;
  uVar21 = CONCAT44(DAT_182671f48,DAT_182671f48);
  bVar20 = (byte)DAT_182671f48;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x52287d3b)) = uVar16 >> (((byte)uVar10 ^ 0x2e) & 0x3f) ^ uVar21;
  uVar33 = uVar25 ^ *(ulonglong *)(lVar2 + -0xa70);
  uVar31 = uVar31 ^ *(ulonglong *)(lVar2 + -0xf0);
  *(ulonglong *)(lVar2 + -0x888) = uVar33 << ((bVar20 ^ *(byte *)(lVar2 + -0x760)) & 0x3f);
  uVar16 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar2 + -0x760) | uVar31) ^ uVar16;
  uVar37 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar2 + -0x828) = uVar21;
  uVar16 = uVar37 ^ uVar21 ^ uVar16 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0xa70);
  *(ulonglong *)(lVar2 + -0xb20) = uVar16;
  uVar5 = DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar37 ^ *puVar35) + (uVar39 ^ *(ulonglong *)(lVar2 + -0xb08)) ^ uVar36;
  local_res20 = (byte)uVar6;
  uVar39 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar21 = (uVar37 ^ uVar16) << ((local_res20 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar21 ^ uVar39;
  uVar37 = (uVar37 ^ uVar16) >> (((byte)uVar7 ^ 0xcb) & 0x3f);
  uVar16 = CONCAT44(uVar15,DAT_182671c90);
  *(ulonglong *)(lVar2 + -0xb18) = uVar37 ^ uVar27;
  uVar12 = DAT_182671d58;
  *(ulonglong *)(lVar2 + -0xc18) = uVar16 ^ 0x661e3c29e633843 | uVar21;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar39 = (uVar37 | uVar39 ^ *puVar28) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x408) = uVar39;
  uVar27 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar2 + -0x380) = uVar31 << (((byte)uVar4 ^ 0x72) & 0x3f);
  uVar6 = DAT_182671c64;
  uVar16 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c64 ^ 0xb81699b3));
  *(uint *)(lVar2 + -0x61c) = (DAT_182671c54 ^ 0x48e47d6a) + *(int *)(lVar2 + -0x5d4);
  uVar12 = DAT_182671f08;
  *(ulonglong *)(lVar2 + -0x4b8) = uVar16 ^ uVar27 ^ uVar21 ^ uVar36 ^ uVar39;
  uVar39 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xa50) = (uVar42 ^ *(ulonglong *)(lVar2 + -0x2b0)) + uVar33 ^ uVar39;
  uVar37 = CONCAT44(DAT_182671f90,DAT_182671f90);
  *puVar24 = (uVar42 ^ *(ulonglong *)(lVar2 + -0x2b0)) << ((bVar44 ^ 0xe7) & 0x3f) ^ uVar37;
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar29 = *(ulonglong *)(lVar2 + -0x2b0) >> 0x20 ^ uVar33 ^ uVar29;
  uVar16 = CONCAT44(uVar6,DAT_182671c88);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar29;
  uVar21 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar2 + -0x7c0) = uVar16 ^ uVar29 ^ uVar33 ^ 0xeffdbd320b07bd88;
  uVar16 = CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar25 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0xaa350184)) ^ uVar33 |
       uVar37 ^ *(ulonglong *)(lVar2 + -0x628)) ^ uVar16;
  uVar32 = DAT_182671c6c;
  uVar6 = DAT_182671c68;
  uVar29 = (ulonglong)DAT_182671d24;
  uVar33 = (ulonglong)DAT_182671c68;
  uVar21 = CONCAT44(DAT_182671d24,DAT_182671d24);
  uVar16 = *(ulonglong *)(lVar3 - (uVar14 ^ 0x1b96ec97)) ^
           *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x725b2589)) ^ uVar39 ^ uVar25 ^
           uVar16;
  *(ulonglong *)(lVar3 + -0x760) = uVar16;
  *(ulonglong *)(lVar3 + -0x828) =
       (CONCAT44(uVar7,uVar5) ^ 0x8a4585601d694635) + (uVar16 ^ uVar25) ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x6f27940c)) =
       (CONCAT44(uVar11,DAT_182671c94) ^ 0x96281b93ac3cddab) +
       (*(ulonglong *)(lVar3 + -0x110) ^ uVar36) ^ uVar17;
  uVar16 = (*(ulonglong *)(lVar3 + -0x828) ^ uVar21) << (((byte)uVar8 ^ 0xc5) & 0x3f);
  uVar25 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar29 = (*(ulonglong *)(lVar3 + -0x828) >> 0x20 ^ uVar29) >> 0x12;
  uVar21 = (*puVar18 ^ uVar17) + (*(ulonglong *)(lVar3 + -0x828) ^ uVar21) ^ uVar25;
  uVar17 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar3 + -0xb20) = uVar21;
  uVar7 = DAT_182671e7c;
  *(ulonglong *)(lVar3 + -0xc18) = uVar16 ^ uVar17;
  uVar5 = DAT_182671cb8;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar29 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671c9c;
  uVar38 = CONCAT44(uVar5,uVar5);
  uVar17 = (uVar29 | uVar16) ^ uVar38;
  *(ulonglong *)(lVar3 + -0xb18) = uVar17;
  uVar5 = DAT_182671c88;
  uVar36 = CONCAT44(uVar7,uVar7);
  uVar29 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x4b8)) + (CONCAT44(uVar9,uVar8) ^ 0x62b71895b3a6bcf5);
  uVar16 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *(ulonglong *)(lVar3 + -0xf0) = uVar17 ^ uVar36 ^ uVar38 ^ uVar25 ^ uVar21;
  uVar17 = CONCAT44(uVar5,DAT_182671c4c);
  *(ulonglong *)(lVar3 + -0x380) = uVar29 ^ uVar30;
  uVar17 = (uVar17 ^ 0x21b6d809f8669309) + (uVar39 ^ *(ulonglong *)(lVar3 + -0xa50));
  uVar21 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar3 + -0x408) = uVar17 ^ uVar16;
  *(ulonglong *)(lVar3 + -0xa70) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x2fc61264)) ^ uVar30) + uVar17 ^ uVar21;
  uVar9 = DAT_182671c8c;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x5e2e370b)) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0x8abe8ed3)) ^ uVar38 | uVar29;
  uVar30 = uVar30 ^ *(ulonglong *)(lVar3 + -0x380);
  uVar17 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *(ulonglong *)(lVar3 + -0x7c0) = uVar30 << (((byte)uVar4 ^ 0x4b) & 0x3f) ^ uVar17;
  uVar5 = DAT_182671d70;
  uVar4 = DAT_182671c60;
  uVar33 = (ulonglong)DAT_182671c60;
  uVar30 = uVar30 >> (((byte)uVar32 ^ 0x31) & 0x3f);
  uVar16 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar3 + -0x628) = uVar30 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar10 = DAT_182671e70;
  uVar8 = DAT_182671c78;
  uVar29 = CONCAT44(uVar5,uVar5);
  uVar38 = (ulonglong)DAT_182671c78;
  uVar17 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0xb6e624d6)) ^ uVar17 | uVar30) ^ uVar29;
  *(ulonglong *)(lVar3 + -0x888) = CONCAT44(uVar6,uVar4) ^ 0x90929c1f3923612a;
  uVar5 = DAT_182671de0;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar17;
  lVar2 = DAT_182671c40;
  uVar37 = CONCAT44(uVar10,uVar10);
  uVar16 = *(ulonglong *)(DAT_182671c40 + -0xb20);
  uVar17 = *(ulonglong *)(lVar3 + -0xa70) ^ uVar17 ^ uVar37 ^ uVar29 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x760) = uVar17;
  uVar29 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x110) = (uVar17 ^ uVar37) + (uVar25 ^ uVar16) ^ uVar29;
  uVar5 = DAT_182671ce8;
  *(ulonglong *)(lVar2 + -0xb08) =
       (CONCAT44(uVar11,uVar32) ^ 0xb39f52e58059fcbb) -
       (CONCAT44(uVar15,uVar8) ^ 0xd3219b610e323bdc);
  uVar31 = (ulonglong)DAT_182671c94;
  uVar39 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xb6e62b3e)) =
       (uVar37 ^ uVar17) << (((byte)uVar9 ^ 0x8f) & 0x3f) ^ uVar39;
  uVar16 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar25 = (ulonglong)DAT_182671c7c;
  *puVar28 = ((ulonglong)uVar10 << 0x14 | (ulonglong)(uVar10 >> 0xc)) ^
             *(ulonglong *)(lVar2 + -0x760) >> 0xc ^ uVar16;
  uVar5 = DAT_182671edc;
  uVar17 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar37 = uVar36 ^ *(ulonglong *)(lVar2 + -0xf0);
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0xe5991d27)) ^ uVar16 |
       *(ulonglong *)(lVar2 + -0x828) ^ uVar39) ^ uVar17;
  uVar6 = DAT_182671c74;
  uVar16 = (ulonglong)DAT_182671c74;
  uVar39 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar2 + -0x4b8) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0xb6e62f0e)) ^ CONCAT44(uVar5,uVar5) ^
       *(ulonglong *)(lVar2 + -0x110) ^ uVar17 ^ uVar29;
  bVar20 = (byte)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0xa50) = (*(ulonglong *)(lVar2 + -0xa70) ^ uVar21) + uVar37 ^ uVar39;
  uVar5 = DAT_182671d1c;
  lVar3 = DAT_182671c40;
  uVar16 = (*(ulonglong *)(lVar2 - (uVar16 ^ 0xaa350aac)) ^ uVar36) << ((local_res20 ^ 0x3d) & 0x3f)
  ;
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar16 ^ CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar37 = uVar37 >> ((bVar20 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb18) = uVar37 ^ CONCAT44(uVar5,uVar5);
  uVar4 = DAT_182671c64;
  uVar17 = (uVar16 | uVar37) ^ uVar34;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar17;
  uVar5 = DAT_182671e38;
  *(ulonglong *)(lVar3 + -0x380) = (CONCAT44(uVar6,uVar4) ^ 0xef612e26c5d0241d) + 0xc20553e4cc107b9c
  ;
  uVar16 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x1b96e107)) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0x3b0d6108)) ^ uVar34 ^ uVar17 ^ uVar16 ^ uVar39;
  uVar5 = DAT_182671fa8;
  uVar16 = *(ulonglong *)(lVar3 + -0x7c0) ^ uVar16;
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xefbf9edf)) ^ uVar29) + uVar16 ^
       CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xb6e62b9e)) =
       uVar16 << (((byte)uVar4 ^ 0xb4) & 0x3f) ^ CONCAT44(uVar5,uVar5);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar19;
  return;
}



############ FUN_ 18101c980 size=5382 ############

void FUN_18101c980(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  uVar4 = DAT_182671f28;
  uVar5 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar16 = ~DAT_182671c50;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182672100);
  uVar13 = *(uint *)(&DAT_182613220 + DAT_182672100) ^ DAT_182671c50;
  uVar24 = (ulonglong)DAT_182671c50;
  uVar32 = CONCAT44(DAT_182671c50,uVar16);
  uVar29 = CONCAT44(DAT_182671c50,DAT_182671c50);
  uVar23 = (ulonglong)DAT_182671f28;
  DAT_182671c68 = uVar16;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar32 ^ 0xdff9d23b19e8c37;
  uVar22 = CONCAT44(uVar4,uVar4);
  uVar26 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *(ulonglong *)(lVar2 + -0x110) = (*(ulonglong *)(lVar2 + -0xda8) >> 0x20 ^ uVar23) >> 1 ^ uVar26;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xdc68f1c8)) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0xda8)) + (uVar29 ^ 0xb29b1bd6205ad663);
  uVar10 = DAT_182671d60;
  uVar17 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar2 + -0x680) = (uVar22 ^ *(ulonglong *)(lVar2 + -0xda8)) << 0x1f ^ uVar17;
  uVar18 = CONCAT44(uVar10,uVar10);
  uVar26 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xdc68f7b8)) ^ uVar17 |
           uVar26 ^ *(ulonglong *)(lVar2 + -0x110);
  uVar22 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar2 + -0x228) = uVar26 ^ uVar18;
  uVar11 = DAT_182671ec4;
  *(ulonglong *)(lVar2 + -0xa50) = uVar22 ^ *(ulonglong *)(lVar2 + -0xd88) ^ 0x86e0583906d46352;
  uVar10 = DAT_182671ea8;
  uVar4 = DAT_182671e04;
  puVar19 = (ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x239704cf));
  uVar23 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar2 + -0xc90) =
       (CONCAT44(uVar11,uVar11) ^ *puVar19) - (CONCAT44(uVar16,uVar16) ^ 0x3e9752004bdaf9da) ^
       uVar23;
  uVar11 = DAT_182671f24;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x23970257)) ^ uVar23) - uVar26 ^ uVar20;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar26 = uVar26 + (uVar32 ^ 0x5a04d54e2d3cf23e) ^ uVar24;
  *(ulonglong *)(lVar2 + -0xc18) = uVar26;
  *(undefined1 *)(lVar2 + -0x6b9) = **(undefined1 **)(lVar2 + -0xb90);
  uVar23 = CONCAT44(uVar4,uVar4);
  uVar27 = CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar26 = uVar27 ^ uVar23 ^ uVar26 ^ uVar24 ^ *(ulonglong *)(lVar2 + -0x960);
  *(ulonglong *)(lVar2 + -0xa78) = uVar26;
  *(ulonglong *)(lVar2 + -0xc38) = (uVar29 ^ 0x121f59b094c339d6) + (uVar29 ^ 0x1cdf18eccf9667ae);
  uVar25 = DAT_182671d88;
  uVar29 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar31 = (ulonglong)DAT_182671d88;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x239705df)) =
       ((ulonglong)uVar4 << 0x1b | (ulonglong)(uVar4 >> 5)) ^ uVar26 >> 5 ^ uVar29;
  uVar26 = (uVar23 ^ *(ulonglong *)(lVar2 + -0xa78)) << (((byte)uVar16 ^ 0xfc) & 0x3f);
  *(longlong *)(lVar2 + -0x5e8) =
       *(longlong *)(lVar2 + -0xc38) << ((byte)*(undefined8 *)(lVar2 + -0xf0) & 0x3f);
  uVar30 = CONCAT44(uVar25,uVar25);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xdc68f9b0)) = uVar26 ^ uVar18;
  *(ulonglong *)(lVar2 + -0xda8) = (uVar29 ^ *(ulonglong *)(lVar2 + -0xb18)) + uVar26;
  uVar4 = DAT_182671c50;
  uVar26 = uVar29 ^ *(ulonglong *)(lVar2 + -0xb18) | uVar18 ^ *(ulonglong *)(lVar2 + -0x888);
  uVar24 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0x110) = uVar26 ^ uVar30;
  *(ulonglong *)(lVar2 + -0x680) =
       CONCAT44(uVar16,uVar4) ^ uVar29 ^ *(ulonglong *)(lVar2 + -0xb18) ^ 0xa4e5c4f3a6b40554;
  uVar10 = DAT_182671d0c;
  uVar18 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar2 + -0xd88) = (uVar27 ^ *(ulonglong *)(lVar2 + -0x960)) - uVar26 ^ uVar18;
  uVar7 = DAT_182671c74;
  uVar32 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar26 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar2 + -0xa50) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x2397051f)) ^ CONCAT44(uVar10,uVar10) ^ uVar32 ^
       uVar20 ^ *(ulonglong *)(lVar2 + -0x510);
  *(int *)(lVar2 - (uVar26 ^ 0x25c97b3)) = *(int *)(lVar2 + -0x5d4) - *(int *)(lVar2 + -0x94c);
  uVar28 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0xd4b85284)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x23970497)) ^ uVar32) >>
       (((byte)DAT_182671c5c ^ 0x18) & 0x3f) ^ uVar28;
  uVar10 = DAT_182671e90;
  uVar26 = (ulonglong)DAT_182671c84;
  uVar29 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *(ulonglong *)(lVar2 + -0xc90) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0xa50)) << (((byte)uVar4 ^ 0x23) & 0x3f) ^ uVar29;
  uVar8 = DAT_182671c80;
  uVar4 = DAT_182671c48;
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0xd8eeba05)) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x60b087d0)) ^ uVar29 |
       uVar28 ^ *(ulonglong *)(lVar2 + -0xa08)) ^ uVar32;
  uVar10 = DAT_182671fa8;
  *(ulonglong *)(lVar2 + -0xc18) = uVar28 ^ *puVar19 | CONCAT44(uVar8,uVar4) ^ 0x5d5df3e43cafa0c9;
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xf0) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xbd8)) - (*(ulonglong *)(lVar2 + -0x228) ^ uVar32) ^
       uVar29;
  uVar26 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xdc68fd00)) =
       uVar18 ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x228) ^ *(ulonglong *)(lVar2 + -0xd88) ^ uVar32;
  uVar10 = DAT_182671e68;
  uVar6 = DAT_182671c6c;
  uVar24 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar2 + -0x5e8) =
       *(ulonglong *)(lVar2 - (uVar26 ^ 0x856ad89)) >> 0x17 ^
       ((ulonglong)(uVar25 >> 0x17) | uVar31 << 9) ^ uVar24;
  uVar26 = CONCAT44(uVar10,uVar10);
  uVar14 = uVar6 & 7;
  *(ulonglong *)(lVar2 + -0xa78) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0xc38)) << (((byte)uVar16 ^ 0xee) & 0x3f) ^ uVar26;
  uVar9 = DAT_182671c90;
  uVar25 = DAT_182671c6c;
  if (uVar14 < 4) {
    if (uVar14 < 2) {
      uVar21 = uVar8;
      if (uVar14 == 0) {
        uVar21 = uVar6;
      }
    }
    else {
      uVar21 = DAT_182671c50;
      if (uVar14 < 3) {
        uVar21 = DAT_182671c7c;
      }
    }
  }
  else if (uVar14 < 6) {
    uVar21 = DAT_182671c64;
    if (uVar14 < 5) {
      uVar21 = DAT_182671c48;
    }
  }
  else {
    uVar21 = DAT_182671c74;
    if (uVar14 < 7) {
      uVar21 = DAT_182671c78;
    }
  }
  uVar20 = (ulonglong)DAT_182671c74;
  DAT_182671c94 = uVar21;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xe0999417)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0x25c9b87)) ^ uVar24 |
       CONCAT44(uVar8,uVar4) ^ 0x5e87ce3a1622350c;
  uVar10 = DAT_182671f74;
  uVar32 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar26 = *(ulonglong *)(lVar2 - (uVar20 ^ 0x20910d57)) ^ uVar24 |
           uVar26 ^ *(ulonglong *)(lVar2 + -0xa78);
  *(ulonglong *)(lVar2 + -0x888) = uVar26 ^ uVar32;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xb18) = (uVar18 ^ *(ulonglong *)(lVar2 + -0xd88)) - uVar26 ^ uVar20;
  uVar6 = DAT_182671c78;
  uVar4 = DAT_182671c64;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c78 ^ 0x588cd238)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x38f169cc)) ^ uVar30 ^ uVar23 ^ uVar29 ^
       *(ulonglong *)(lVar2 + -0xf0);
  uVar10 = DAT_182671e84;
  uVar26 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(lVar2 + -0x960) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xb93c2d7c)) ^ uVar23) >>
       (((byte)uVar4 ^ 0x6c) & 0x3f) ^ uVar26;
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0xe0999caf)) =
       (uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0x680)) << 0x18 ^ uVar31;
  uVar11 = DAT_182671e58;
  uVar18 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar26 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x588cddd8)) ^ uVar26 |
           uVar31 ^ *(ulonglong *)(lVar2 + -0x510);
  *(ulonglong *)(lVar2 + -0xa50) = uVar26 ^ uVar18;
  uVar10 = DAT_182671e14;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xc90) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe1b0ffb4)) ^ uVar29) - uVar26 ^ uVar24;
  uVar6 = DAT_182671c74;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x38f162d4)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xb93c21ac)) ^
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c50 ^ 0xdc68fa20)) ^ uVar26 ^ uVar18 ^ uVar20;
  puVar19 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x209102b7));
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe1b0f35c)) =
       (*puVar19 ^ uVar26) >> (((byte)uVar6 ^ 0x8b) & 0x3f) ^ uVar22;
  uVar29 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar18 = CONCAT44(uVar25,DAT_182671c48);
  *(ulonglong *)(lVar2 + -0xbd8) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0xa08)) << (((byte)uVar21 ^ 0xb3) & 0x3f) ^ uVar29;
  uVar26 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xe0999b97)) =
       uVar18 ^ 0x7b096047565ead8b | CONCAT44(DAT_182671c7c,uVar8) ^ 0x8f9d2e109eceff71;
  uVar6 = DAT_182671c78;
  uVar26 = *(ulonglong *)(lVar2 - (uVar26 ^ 0xdc68fae0)) ^ uVar29 |
           uVar22 ^ *(ulonglong *)(lVar2 + -0xc18);
  uVar22 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar2 + -0xc38) = uVar26 ^ uVar27;
  uVar10 = DAT_182671f20;
  *(ulonglong *)(lVar2 + -0xda8) =
       *(ulonglong *)(lVar2 - (uVar22 ^ 0x588cd828)) ^ uVar24 ^ 0xd9fabb1d50566127;
  uVar12 = DAT_182671f38;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x5e8) = (uVar20 ^ *(ulonglong *)(lVar2 + -0xb18)) - uVar26 ^ uVar18;
  uVar11 = DAT_182671e88;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar22 = *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xb93c276c)) ^ uVar26 ^ uVar24 ^ uVar32 ^
           *(ulonglong *)(lVar2 + -0x888);
  *(ulonglong *)(lVar2 + -0xa78) = uVar22;
  uVar20 = (uVar22 ^ uVar26) >> (((byte)uVar6 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = (uVar26 ^ uVar22) << 7 ^ uVar23;
  uVar10 = DAT_182671e5c;
  *(ulonglong *)(lVar2 + -0xd88) = uVar20 ^ CONCAT44(uVar11,uVar11);
  uVar29 = CONCAT44(uVar10,uVar10);
  uVar22 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xc00897a4)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe1b0fe54)) ^ uVar23 | uVar20) ^ uVar29;
  uVar4 = DAT_182671f48;
  uVar32 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  uVar20 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar2 + -0x960) =
       (*(ulonglong *)(lVar2 + -0xc90) ^ uVar24) - (*(ulonglong *)(lVar2 + -0x680) ^ uVar29) ^
       uVar32;
  uVar23 = uVar20 ^ *(ulonglong *)(lVar2 + -0x680) ^ *(ulonglong *)(lVar2 + -0x5e8) ^ uVar29 ^
           uVar18;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x20910daf)) = uVar23;
  uVar22 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar2 + -0xf0) =
       ((ulonglong)uVar4 << 0x12 | (ulonglong)(uVar4 >> 0xe)) ^ uVar23 >> 0xe ^ uVar22;
  uVar24 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x510)) << (((byte)uVar9 ^ 0xce) & 0x3f);
  uVar23 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar2 + -0xa50) = uVar24 ^ CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar4 = DAT_182671c64;
  uVar24 = *(ulonglong *)(lVar2 - (uVar23 ^ 0x25c9e9f)) ^ uVar22 | uVar24;
  uVar23 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar2 + -0xa08) = uVar24 ^ uVar26;
  uVar6 = DAT_182671c6c;
  uVar22 = (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar18) -
           (CONCAT44(DAT_182671c94,uVar4) ^ 0xc057a13afb6a01f9);
  *(ulonglong *)(lVar2 + -0x228) = uVar22 ^ uVar23;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x38f164c4)) = uVar22 - uVar24 ^ uVar31;
  uVar33 = CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar22 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar2 + -0xbd8) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0xa08)) -
       (CONCAT44(uVar5,DAT_182671c48) ^ 0xafeb2d84167153df) ^ uVar33;
  uVar11 = DAT_182671dd0;
  uVar5 = DAT_182671c84;
  uVar4 = DAT_182671c4c;
  uVar25 = DAT_182671c4c | DAT_182671c84;
  uVar30 = (ulonglong)DAT_182671c4c;
  uVar23 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x38f164e4)) ^ uVar27 ^ uVar22 ^ uVar32 ^
           *(ulonglong *)(lVar2 + -0x960);
  uVar20 = CONCAT44(DAT_182671c4c,DAT_182671c84);
  DAT_182671c54 = uVar25;
  *(ulonglong *)(lVar2 + -0xda8) = uVar23;
  uVar10 = DAT_182671d00;
  uVar24 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  uVar26 = (uVar23 ^ uVar22) >> (((byte)uVar5 ^ 0x50) & 0x3f);
  *(ulonglong *)(lVar2 + -0xb18) = uVar26 ^ CONCAT44(uVar11,uVar11);
  lVar3 = DAT_182671c40;
  uVar23 = (uVar22 ^ uVar23) << 0x30;
  uVar22 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar2 + -0x888) = uVar23 ^ uVar24;
  uVar26 = uVar26 | uVar23;
  *(ulonglong *)(lVar2 + -0xa78) = uVar26 ^ CONCAT44(uVar10,uVar10);
  uVar18 = (ulonglong)uVar25;
  uVar23 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xfff5e294)) ^ uVar32) -
           (CONCAT44(uVar25,DAT_182671c84) ^ 0x6428eba85c595316);
  *(ulonglong *)(lVar3 + -0xd88) = uVar23 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x110) = uVar20 ^ 0xf557fa9a69ebfe6f | 0x44119a9a48eb7669;
  uVar32 = CONCAT44(DAT_182671f14,DAT_182671f14);
  uVar22 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar3 + -0xc90) = uVar23 - uVar26 ^ uVar32;
  uVar20 = uVar26 + (uVar20 ^ 0x59006fc6a6574df8) ^ uVar22;
  *(ulonglong *)(lVar3 + -0x680) = uVar20;
  uVar5 = DAT_182671c78;
  uVar23 = (ulonglong)DAT_182671d18;
  uVar26 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar3 + -0x510) =
       uVar26 ^ uVar20 ^ uVar22 ^ *(ulonglong *)(lVar3 + -0xc18) ^ uVar31;
  *(ulonglong *)(lVar3 - (uVar18 ^ 0xfff5eb04)) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0xff45e6e4)) >> 0x20 ^ uVar23 ^ uVar29;
  uVar22 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar23 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 + -0xa50) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xfff5eee4)) ^ uVar26) <<
       (((byte)uVar5 ^ 0x98) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x60b08ea8)) =
       (CONCAT44(uVar7,uVar4) ^ 0xe6b9bebd91eac2c) + (uVar24 ^ *(ulonglong *)(lVar3 + -0x888));
  uVar28 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar23 = *(ulonglong *)(lVar3 - (uVar18 ^ 0xfff5e1a4)) ^ uVar22 |
           uVar29 ^ *(ulonglong *)(lVar3 + -0xf0);
  uVar20 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar3 + -0x228) = uVar23 ^ uVar28;
  *(ulonglong *)(lVar3 + -0xa08) = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar31) - uVar23 ^ uVar20;
  uVar23 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar3 + -0xc38) =
       *(ulonglong *)(lVar3 + -0xc90) ^ uVar23 ^ uVar32 ^ uVar33 ^ *(ulonglong *)(lVar3 + -0xbd8);
  uVar26 = CONCAT44(DAT_182671e28,DAT_182671e28);
  uVar22 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xc0089d1c)) ^ uVar23) >>
           (((byte)DAT_182671c50 ^ 0x18) & 0x3f);
  *(int *)(lVar3 + -0x76c) = *(int *)(lVar3 + -0x444) + 0x663ce981;
  uVar10 = DAT_182671f30;
  *(ulonglong *)(lVar3 + -0xda8) = uVar22 ^ uVar26;
  uVar6 = DAT_182671c84;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0xfff5e7cc)) ^ uVar23) << (((byte)uVar5 ^ 0x98) & 0x3f)
  ;
  uVar24 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar3 + -0xb18) = uVar23 ^ CONCAT44(uVar10,uVar10);
  uVar25 = DAT_182671d04;
  uVar26 = (ulonglong)DAT_182671d04;
  *(ulonglong *)(lVar3 + -0x960) = (uVar22 | uVar23) ^ uVar24;
  uVar5 = DAT_182671c6c;
  uVar18 = CONCAT44(uVar25,uVar25);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xff45e2e4)) =
       ((ulonglong)uVar6 << 0x11 | (ulonglong)(DAT_182671c6c >> 0xf)) ^ 0x1d5b3f6b51da;
  uVar29 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 + -0xc90) ^ uVar32) - (*(ulonglong *)(lVar3 + -0x960) ^ uVar24) ^
       uVar29;
  lVar2 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x38f162a4)) =
       *(ulonglong *)(lVar3 + -0x960) ^ uVar18 ^ uVar24 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0xa08);
  *(int *)(lVar3 + -0x634) = *(int *)(lVar3 + -0x9dc) - *(int *)(lVar3 + -0x670);
  uVar11 = DAT_182671df8;
  uVar24 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar22 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x25c98ef)) =
       (*(ulonglong *)(lVar3 + -0xa78) >> 0x20 ^ uVar26) >> 0x1a ^ uVar24;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xe0999caf)) =
       (uVar18 ^ *(ulonglong *)(lVar3 + -0xa78)) << 6 ^ uVar27;
  uVar4 = DAT_182671c64;
  uVar32 = CONCAT44(DAT_182671e50,DAT_182671e50);
  uVar22 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c64 ^ 0xe1b0f7cc)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x38f16e5c)) ^ uVar24 |
       uVar27 ^ *(ulonglong *)(lVar2 + -0x510)) ^ uVar32;
  uVar23 = *(ulonglong *)(lVar2 + -0xd88);
  uVar31 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar20 = (uVar20 ^ *(ulonglong *)(lVar2 + -0xa08)) - (uVar32 ^ *(ulonglong *)(lVar2 + -0x888)) ^
           uVar31;
  uVar27 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar20;
  uVar28 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x588cd690)) ^ uVar23 ^ uVar27 ^ uVar29 ^ uVar28;
  *(ulonglong *)(lVar2 + -0xf0) = uVar28;
  lVar2 = DAT_182671c40;
  uVar18 = (uVar28 ^ uVar27) >> (((byte)uVar4 ^ 0x52) & 0x3f);
  bVar15 = (byte)DAT_182671c84;
  uVar22 = *(ulonglong *)(DAT_182671c40 + -0x888);
  uVar26 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar18 ^ CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar10 = DAT_182671d14;
  uVar24 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar2 + -0xc18) = (uVar27 ^ uVar28) << ((bVar15 ^ 0x6a) & 0x3f) ^ uVar24;
  uVar27 = CONCAT44(uVar10,uVar10);
  uVar18 = *(ulonglong *)(lVar2 - (uVar26 ^ 0xdc68fd20)) ^ uVar24 | uVar18;
  uVar26 = CONCAT44(DAT_182671f54,DAT_182671f54);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar18 ^ uVar27;
  *(ulonglong *)(lVar2 + -0xc38) = (uVar23 ^ uVar29) - uVar18 ^ uVar26;
  uVar18 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar2 + -0xda8) =
       *(ulonglong *)(lVar2 - (uVar30 ^ 0xff45efcc)) ^ uVar26 | uVar32 ^ uVar22;
  uVar23 = (ulonglong)DAT_182671f08;
  uVar22 = CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar20 = *(ulonglong *)(lVar2 - (uVar18 ^ 0x25c95b7)) ^ uVar22 ^ uVar27 ^ uVar31 ^ uVar20;
  uVar18 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar2 + -0xb18) = uVar20;
  uVar4 = DAT_182671c6c;
  uVar26 = (uVar20 >> 0x20 ^ uVar23) >> 0xe;
  uVar24 = (ulonglong)DAT_182671c48;
  uVar23 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0x110) = uVar26 ^ uVar18;
  uVar12 = DAT_182671e48;
  *(ulonglong *)(lVar2 + -0xc90) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0xe0999267)) ^ uVar27) <<
       (((byte)uVar11 ^ *(byte *)(lVar2 + -0x680)) & 0x3f);
  *(ulonglong *)(lVar2 + -0x960) = (uVar22 ^ uVar20) << (((byte)uVar4 ^ 0xce) & 0x3f) ^ uVar17;
  uVar11 = DAT_182671d5c;
  uVar10 = DAT_182671ca0;
  *(ulonglong *)(lVar2 + -0x510) = CONCAT44(uVar12,uVar12) ^ **(ulonglong **)(lVar2 + -0x10);
  uVar26 = *(ulonglong *)(lVar2 - (uVar23 ^ 0x38f161bc)) ^ uVar17 | uVar26;
  *(ulonglong *)(lVar2 + -0xa08) = uVar26 ^ CONCAT44(uVar10,uVar10);
  uVar23 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar2 + -0x228) = (uVar22 ^ uVar20) << (((byte)*puVar19 ^ (byte)uVar10) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xe099994f)) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0x588cd150)) ^ uVar31) - uVar26 ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar16;
  return;
}



############ FUN_ 180f41470 size=6310 ############

void FUN_180f41470(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  byte bVar31;
  byte bVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  uint uVar52;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong *puVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong *puVar59;
  byte local_res18;
  byte local_res20;
  byte local_160;
  byte local_78;
  byte local_60;
  ulonglong uVar53;
  
  uVar14 = DAT_182671c8c;
  uVar11 = DAT_182671c74;
  uVar10 = DAT_182671c64;
  uVar9 = DAT_182671c54;
  uVar8 = DAT_182671c50;
  uVar7 = DAT_182671c4c;
  lVar5 = DAT_182671c40;
  uVar57 = (ulonglong)DAT_182671c54;
  uVar35 = (ulonglong)DAT_182671c74;
  uVar24 = (ulonglong)DAT_182671c4c;
  uVar28 = (ulonglong)DAT_182671c64;
  uVar33 = DAT_182671c64 - DAT_182671c78;
  uVar52 = DAT_182671c4c + DAT_182671c50;
  uVar53 = (ulonglong)uVar52;
  uVar49 = (DAT_182671c54 << 0x10 | DAT_182671c54 & 0xff00) << 8 | DAT_182671c54 >> 8 & 0xff00 |
           DAT_182671c54 >> 0x18;
  uVar30 = (DAT_182671c74 << 0x10 | DAT_182671c74 & 0xff00) << 8 | DAT_182671c74 >> 8 & 0xff00 |
           DAT_182671c74 >> 0x18;
  uVar36 = (DAT_182671c8c << 0x10 | DAT_182671c8c & 0xff00) << 8 | DAT_182671c8c >> 8 & 0xff00 |
           DAT_182671c8c >> 0x18;
  uVar4 = *(uint *)(&DAT_182613220 + DAT_182672154);
  uVar20 = *(uint *)(&DAT_182613218 + DAT_182672154) ^ DAT_182671c50;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xc18);
  uVar45 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar40 = *(ulonglong *)(DAT_182671c40 + -0x8f0) ^ uVar45;
  uVar46 = CONCAT44(DAT_182671f90,DAT_182671f90);
  DAT_182671c48 = uVar49;
  DAT_182671c5c = uVar52;
  DAT_182671c7c = uVar30;
  DAT_182671c80 = uVar36;
  DAT_182671c94 = uVar33;
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       (CONCAT44(DAT_182671ec8,DAT_182671ec8) ^ *puVar1) + uVar40 ^ uVar46;
  puVar25 = (ulonglong *)(lVar5 - (uVar24 ^ 0x87e03821));
  uVar27 = (ulonglong)uVar14;
  uVar18 = (ulonglong)uVar36;
  bVar19 = (byte)uVar14;
  uVar43 = (*puVar25 ^ uVar45) << ((bVar19 ^ 0xf5) & 0x3f);
  uVar26 = (ulonglong)uVar33;
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar43 ^ CONCAT44(DAT_182671eb0,DAT_182671eb0);
  uVar15 = DAT_182671ef0;
  lVar5 = DAT_182671c40;
  bVar31 = (byte)uVar33;
  uVar37 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar39 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = uVar40 >> ((bVar31 ^ 0x8b) & 0x3f) ^ uVar37;
  lVar6 = DAT_182671c40;
  uVar40 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x8670a727)) =
       (*(ulonglong *)(lVar5 - (uVar39 ^ 0xb6e620ce)) ^ uVar37 | uVar43) ^ uVar40;
  uVar12 = DAT_182671c78;
  uVar29 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar39 = (ulonglong)uVar30;
  *(ulonglong *)(lVar6 + -0x5e8) =
       *(ulonglong *)(lVar6 - (uVar39 ^ 0x7424959c)) ^ *(ulonglong *)(lVar6 + -0x408) ^ uVar29 ^
       uVar40 ^ uVar46;
  uVar37 = CONCAT44(DAT_182671d64,DAT_182671d64) ^ *(ulonglong *)(lVar6 + -0xa70);
  *(ulonglong *)(lVar6 + -0x760) =
       (CONCAT44(uVar11,uVar12) ^ 0x952ce150298869c6) >> ((byte)uVar37 & 0x3f);
  uVar43 = CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar40 = *(ulonglong *)(lVar6 + -0x30) ^ uVar43;
  uVar47 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  local_160 = (byte)uVar7;
  *(ulonglong *)(lVar6 + -0x680) = uVar40 + uVar37 ^ uVar47;
  uVar38 = (ulonglong)uVar49;
  uVar44 = CONCAT44(DAT_182671e50,DAT_182671e50);
  local_res18 = (byte)uVar10;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar49 ^ 0x5b7b2c6b)) =
       uVar40 << ((local_160 ^ 199) & 0x3f) ^ uVar44;
  lVar5 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(DAT_182671c40 - (uVar53 ^ 0xf3931622)) =
       (*(ulonglong *)(DAT_182671c40 + -0x30) ^ uVar43) >> ((local_res18 ^ 0x89) & 0x3f) ^ uVar37;
  uVar41 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x110);
  uVar40 = (ulonglong)DAT_182671de0;
  uVar43 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x8670abc7)) =
       (*(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar37 | *puVar2 ^ uVar44) ^ uVar41;
  lVar6 = DAT_182671c40;
  uVar37 = (ulonglong)uVar8;
  puVar21 = (ulonglong *)(DAT_182671c40 - (uVar37 ^ 0x6bb2e911));
  puVar3 = (ulonglong *)(lVar5 + -0xda8);
  *puVar21 = *(ulonglong *)(DAT_182671c40 + -0xb08) ^ *(ulonglong *)(DAT_182671c40 + -0x680) ^
             uVar43 ^ uVar41 ^ uVar47;
  uVar51 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x1307135)) =
       (*(ulonglong *)(lVar6 + -0x408) ^ uVar46) + (*(ulonglong *)(lVar5 + -0x2b0) ^ uVar43) ^
       uVar51;
  *puVar3 = (CONCAT44(uVar11,uVar11) ^ 0xc8e7df0e0ab6d743) -
            (CONCAT44(uVar30,uVar36) ^ 0x2bddd031560285ca);
  uVar41 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  puVar22 = (ulonglong *)(lVar5 - ((ulonglong)DAT_182671c78 ^ 0xb6e6253e));
  *puVar22 = (*(ulonglong *)(lVar5 + -0x2b0) ^ uVar43) << 0x20 ^ uVar41;
  uVar43 = CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar40 = *(ulonglong *)(lVar5 + -0x2b0) >> 0x20 ^ uVar43 ^ uVar40;
  uVar44 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar5 + -0x380) = uVar40;
  uVar15 = DAT_182671e0c;
  uVar40 = (*(ulonglong *)(lVar5 + -0x628) ^ uVar41 | uVar40 ^ uVar43) ^ uVar44;
  *(ulonglong *)(lVar5 + -0x828) = uVar40;
  lVar5 = DAT_182671c40;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       *(ulonglong *)(DAT_182671c40 + -0x4b8) ^ uVar34 ^ uVar44 ^ uVar51 ^ uVar40;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x5b7b286b)) =
       *(ulonglong *)(lVar5 - (uVar24 ^ 0x87e038f9)) ^ uVar44 |
       CONCAT44(uVar9,uVar52) ^ 0x97b5b0b1b82b1cbd;
  uVar12 = DAT_182671c78;
  uVar29 = *(ulonglong *)(lVar5 + -0x5e8) ^ uVar29;
  uVar41 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(lVar5 + -0x888) = (*(ulonglong *)(lVar5 + -0x680) ^ uVar47) + uVar29 ^ uVar41;
  lVar5 = DAT_182671c40;
  *puVar1 = (CONCAT44(uVar7,uVar49) ^ 0x36d969e2abce427f) << ((bVar19 ^ 0xd9) & 0x3f);
  uVar47 = CONCAT44(DAT_182671d98,DAT_182671d98);
  local_res20 = (byte)(uVar11 >> 0x18);
  *(ulonglong *)(lVar5 + -0x8f0) = uVar29 << (((byte)uVar8 ^ 0x81) & 0x3f) ^ uVar47;
  uVar40 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xcfa07a8e)) = uVar29 >> ((local_res20 ^ 0x54) & 0x3f) ^ uVar40;
  uVar29 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  puVar23 = (ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x7b2d7883));
  uVar43 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *puVar23 = (uVar47 ^ *(ulonglong *)(lVar5 + -0x8f0) | uVar40 ^ *(ulonglong *)(lVar5 + -0xa08)) ^
             uVar29;
  puVar42 = (ulonglong *)(lVar5 - (uVar26 ^ 0x1307655));
  uVar40 = *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x7b2d73d3)) ^ uVar43 ^ *puVar42 ^ uVar29 ^
           uVar41;
  *(ulonglong *)(lVar5 + -0x7e8) = uVar40;
  lVar5 = DAT_182671c40;
  uVar47 = (ulonglong)DAT_182671e54;
  uVar29 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (CONCAT44(uVar52,uVar33) ^ 0x684e1c2e3dd9addb) + (uVar40 ^ uVar43) ^ uVar29;
  uVar40 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x74922e04)) =
       (CONCAT44(uVar8,uVar14) ^ 0x17e24f3009cb3267) + (*(ulonglong *)(lVar5 + -0x4b8) ^ uVar51) ^
       uVar40;
  uVar40 = uVar40 ^ *(ulonglong *)(lVar5 + -0xa70);
  uVar29 = uVar29 ^ *(ulonglong *)(lVar5 + -0x760);
  *(ulonglong *)(lVar5 + -0x30) =
       (CONCAT44(uVar12,uVar7) ^ 0x1436ad26fe4e227f) << ((byte)uVar40 & 0x3f);
  uVar48 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *puVar2 = uVar29 + uVar40 ^ uVar48;
  lVar5 = DAT_182671c40;
  uVar54 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x74249824)) =
       uVar29 << (((byte)uVar11 ^ 0x7a) & 0x3f) ^ uVar54;
  uVar40 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0x74922314)) >> 0x20 ^ uVar47) >> 0x12;
  uVar43 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(lVar5 + -0xb08) = uVar40 ^ CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar5 + -0x408) = (uVar40 | uVar54 ^ *(ulonglong *)(lVar5 + -0xa50)) ^ uVar43;
  uVar40 = (ulonglong)DAT_182671c78;
  *(byte *)(lVar5 - (uVar57 ^ 0x7b2d7d46)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x990) ^ (ulonglong)DAT_182671ee0) ^ (byte)DAT_182671f14;
  uVar58 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *puVar3 = *(ulonglong *)(lVar5 - (uVar40 ^ 0xb6e62206)) ^ uVar58 ^ uVar43 ^ uVar48 ^
            *(ulonglong *)(lVar5 + -0x408);
  uVar15 = DAT_182671d28;
  uVar47 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0xb8169a13)) =
       (*(ulonglong *)(lVar5 - (uVar28 ^ 0xb81693bb)) ^ uVar34) +
       (CONCAT44(uVar7,uVar36) ^ 0xfe73eb583ef4727e) ^ uVar47;
  uVar16 = DAT_182671e20;
  uVar29 = uVar47 ^ *(ulonglong *)(lVar5 + -0x2b0);
  uVar40 = (CONCAT44(uVar49,uVar49) ^ 0x467b71bc3336da66) +
           (*(ulonglong *)(lVar5 + -0x888) ^ uVar41);
  *(ulonglong *)(lVar5 + -0x628) = uVar40 ^ uVar44;
  uVar17 = DAT_182671e48;
  uVar50 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x380) = uVar40 + uVar29 ^ uVar50;
  uVar16 = DAT_182671e1c;
  uVar13 = DAT_182671c78;
  lVar5 = DAT_182671c40;
  uVar43 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671c40 + -0x828) =
       *(ulonglong *)
        (*(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0xcfa0766e)) ^ CONCAT44(uVar15,uVar15)) ^ uVar43;
  uVar15 = DAT_182671cec;
  bVar32 = (byte)(uVar9 >> 0x18);
  uVar55 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x510) = uVar29 << ((bVar32 ^ 0x6b) & 0x3f) ^ uVar55;
  uVar44 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x130730d)) =
       (*puVar21 ^ uVar47) >> (((byte)uVar13 ^ 0x26) & 0x3f) ^ uVar44;
  *(ulonglong *)(lVar5 - (uVar57 ^ 0x7b2d7743)) =
       (uVar55 ^ *(ulonglong *)(lVar5 + -0x510) | *(ulonglong *)(lVar5 + -0x680) ^ uVar44) ^ uVar46;
  uVar29 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar40 = *(ulonglong *)(lVar5 - (uVar27 ^ 0x8670acd7)) ^ uVar29 ^ uVar50 ^ uVar46 ^
           *(ulonglong *)(lVar5 + -0x380);
  uVar41 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar5 + -0x5e8) = uVar40;
  uVar47 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar5 + -0x8f0) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x8670a527)) ^ uVar29) + (uVar48 ^ *puVar2) ^ uVar41;
  *(ulonglong *)(lVar5 + -0xa08) = (uVar40 ^ uVar29) << ((local_res18 ^ 0x97) & 0x3f) ^ uVar47;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xcfa0735e)) =
       (CONCAT44(uVar30,uVar30) ^ 0xf009809dc79eefae) + (CONCAT44(uVar7,uVar7) ^ 0x2adbd4265d18ece0)
  ;
  uVar40 = (*(ulonglong *)(lVar6 + -0x5e8) ^ uVar29) >> (((byte)uVar52 ^ 0x7e) & 0x3f);
  *(ulonglong *)(lVar6 + -0x7e8) = uVar40 ^ uVar45;
  *(ulonglong *)(lVar6 + -0x4b8) =
       CONCAT44(uVar11,uVar9) ^ uVar47 ^ *(ulonglong *)(lVar6 + -0xa08) ^ 0x41fb30c2967d4eed;
  uVar34 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(lVar6 + -0x30) = (uVar47 ^ *(ulonglong *)(lVar6 + -0xa08) | uVar40) ^ uVar34;
  *(uint *)(lVar6 + -0x61c) =
       (DAT_182671c78 ^ 0x5d194069) << ((byte)*(undefined4 *)(lVar6 + -0x27c) & 0x1f);
  uVar29 = CONCAT44(DAT_182671da8,DAT_182671da8);
  *(ulonglong *)(lVar6 + -0xa70) =
       *(ulonglong *)(lVar6 - (uVar53 ^ 0xf3931c42)) ^ uVar29 ^ uVar34 ^ uVar41 ^
       *(ulonglong *)(lVar6 + -0x8f0);
  uVar58 = uVar58 ^ *puVar3;
  uVar46 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar40 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar6 + -0x760) =
       (*(ulonglong *)(lVar6 - (uVar18 ^ 0xcfa07306)) ^ uVar50) + uVar58 ^ uVar46;
  uVar15 = DAT_182671e2c;
  *(ulonglong *)(lVar6 + -0xa50) = uVar58 << 0x39 ^ uVar40;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar6 + -0xb08) =
       *(ulonglong *)(CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0xb88)) ^ uVar43;
  uVar40 = uVar58 >> ((local_res18 ^ 0xa4) & 0x3f);
  *(ulonglong *)(lVar6 + -0x408) = uVar40 ^ CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar6 + -0xb18) =
       (*(ulonglong *)(lVar6 + -0x680) ^ uVar44) >> ((byte)*(undefined8 *)(lVar6 + -0x828) & 0x3f);
  *(ulonglong *)(lVar6 - (uVar37 ^ 0x6bb2e329)) = (uVar40 | uVar58 << 0x39) ^ uVar55;
  uVar34 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(lVar5 + -0x628) =
       uVar34 ^ uVar46 ^ *(ulonglong *)(lVar5 + -0x888) ^ uVar55 ^ *(ulonglong *)(lVar5 + -0x760);
  uVar13 = DAT_182671c78;
  *puVar21 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0x7492225c)) ^ uVar34) +
             (uVar41 ^ *(ulonglong *)(lVar5 + -0x8f0)) ^ uVar44;
  uVar34 = uVar34 ^ *(ulonglong *)(lVar5 + -0x628);
  uVar40 = uVar34 << (((byte)uVar13 ^ 1) & 0x3f);
  *(ulonglong *)(lVar5 + -0x510) = uVar40 ^ CONCAT44(DAT_182671d04,DAT_182671d04);
  uVar34 = uVar34 >> ((local_res18 ^ 0x8a) & 0x3f);
  *puVar1 = uVar34 ^ uVar50;
  lVar5 = DAT_182671c40;
  *puVar2 = (CONCAT44(uVar33,uVar7) ^ 0xfff319559485a83f) << (((byte)uVar8 ^ 0x90) & 0x3f);
  uVar43 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *puVar23 = (uVar40 | uVar34) ^ uVar43;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x5b7b2893)) =
       *(ulonglong *)(lVar5 - (uVar38 ^ 0x5b7b2ea3)) ^ *(ulonglong *)(lVar5 - (uVar26 ^ 0x130773d))
       ^ uVar43 ^ uVar44 ^ uVar45;
  uVar40 = uVar29 ^ *(ulonglong *)(lVar5 + -0xa70);
  uVar43 = CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar41 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar5 + -0x4b8) = (uVar46 ^ *(ulonglong *)(lVar5 + -0x760)) + uVar40 ^ uVar43;
  uVar15 = DAT_182671dac;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0xa08) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0xb6e62966)) ^ uVar29) << 0x28 ^ uVar41;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar40 = uVar40 >> ((local_160 ^ 0xc9) & 0x3f);
  *(ulonglong *)(lVar5 + -0x7e8) = uVar40 ^ uVar29;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x6bb2eb91)) =
       uVar40 | CONCAT44(uVar11,uVar11) ^ 0x95d2f018b36cf4e7;
  uVar7 = DAT_182671f84;
  uVar46 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar34 = (ulonglong)DAT_182671f84;
  uVar40 = (*(ulonglong *)(lVar6 - (uVar35 ^ 0x74922e7c)) ^ uVar41 |
           uVar29 ^ *(ulonglong *)(lVar6 + -0x7e8)) ^ uVar46;
  *(ulonglong *)(lVar6 + -0x380) = uVar40;
  uVar41 = CONCAT44(uVar7,uVar7);
  uVar29 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *(ulonglong *)(lVar6 + -0xb08) =
       *(ulonglong *)(lVar6 - (uVar28 ^ 0xb8169c1b)) ^ uVar41 ^ uVar40 ^ uVar46 ^ uVar43;
  *(ulonglong *)(lVar6 - (uVar39 ^ 0x74249fdc)) =
       (*(ulonglong *)(lVar6 - (uVar53 ^ 0xf393177a)) ^ uVar41) +
       (uVar44 ^ *(ulonglong *)(lVar6 + -0x2b0)) ^ uVar29;
  uVar48 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar6 - (uVar39 ^ 0x74249a5c)) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0xb08)) << ((bVar32 ^ 0x7e) & 0x3f) ^ uVar48;
  uVar41 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0xb6e62596)) =
       (*(ulonglong *)(lVar6 + -0xb08) >> 0x20 ^ uVar34) >> 0x1b ^ uVar41;
  uVar15 = DAT_182671eb8;
  uVar40 = CONCAT44(DAT_182671f80,DAT_182671f80);
  *(ulonglong *)(lVar6 + -0xb18) =
       (*(ulonglong *)(lVar6 - (uVar57 ^ 0x7b2d7373)) ^ uVar48 |
       uVar41 ^ *(ulonglong *)(lVar6 + -0x680)) ^ uVar40;
  uVar55 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0xa50) =
       *(ulonglong *)(lVar6 - (uVar57 ^ 0x7b2d7043)) ^ uVar55 ^ uVar40 ^ uVar29 ^ *puVar3;
  *(ulonglong *)(lVar6 + -0x408) =
       CONCAT44(uVar36,uVar49) ^ CONCAT44(uVar14,uVar9) ^ 0x5115182b1298cfc7;
  uVar41 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(ulonglong *)(lVar6 - (uVar53 ^ 0xf39314fa)) =
       (uVar43 ^ *(ulonglong *)(lVar6 + -0x4b8)) + (*(ulonglong *)(lVar6 + -0x5e8) ^ uVar45) ^
       uVar41;
  lVar5 = DAT_182671c40;
  uVar44 = CONCAT44(DAT_182671d94,DAT_182671d94);
  puVar23 = (ulonglong *)(lVar6 - (uVar28 ^ 0xb8169053));
  puVar56 = (ulonglong *)(lVar6 - (uVar35 ^ 0x74922f6c));
  *puVar23 = (*(ulonglong *)(lVar6 + -0x5e8) ^ uVar45) << ((bVar31 ^ 0xa8) & 0x3f) ^ uVar44;
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x87e036f9)) = uVar40 ^ *puVar56 ^ 0x8fd95b1849244ec3;
  uVar7 = DAT_182671d4c;
  puVar59 = (ulonglong *)(lVar5 - (uVar39 ^ 0x7424979c));
  uVar40 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar50 = (ulonglong)DAT_182671d4c;
  *(ulonglong *)(DAT_182671c40 - (uVar53 ^ 0xf3931d62)) =
       (*puVar59 ^ uVar45) >> ((bVar31 ^ 0x96) & 0x3f) ^ uVar40;
  lVar5 = DAT_182671c40;
  uVar43 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar40 = uVar40 ^ *puVar2 | uVar44 ^ *puVar25;
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar40 ^ uVar43;
  *puVar1 = uVar40 ^ uVar41 ^ uVar48 ^ *(ulonglong *)(lVar5 + -0x888);
  uVar16 = DAT_182671e94;
  uVar44 = CONCAT44(uVar7,uVar7);
  uVar40 = (*(ulonglong *)(lVar5 - (uVar18 ^ 0xcfa07c9e)) ^ uVar48) +
           (CONCAT44(uVar8,uVar10) ^ 0x76b2b766d05b6fbe);
  *(ulonglong *)(lVar5 + -0x3d8) = uVar40 ^ uVar44;
  uVar15 = DAT_182671da0;
  uVar29 = (uVar29 ^ *puVar3) + (CONCAT44(uVar12,uVar14) ^ 0xd1800c9c72a1ed36);
  *(ulonglong *)(lVar5 + -0x760) = uVar29 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_182671dc4;
  uVar35 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0xa70) = uVar29 + uVar40 ^ uVar35;
  uVar34 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0xb8169893)) =
       (*puVar42 ^ uVar44) << ((local_res20 ^ 0x6d) & 0x3f) ^ uVar34;
  uVar29 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar40 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar5 + -0xa08) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x8670a317)) >> 0x20 ^ uVar50) >> 7 ^ uVar29;
  uVar27 = (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c78 ^ 0xb6e62326)) ^ uVar34 |
           *(ulonglong *)(lVar5 - (uVar38 ^ 0x5b7b2773)) ^ uVar29) ^ uVar40;
  *(ulonglong *)(lVar5 + -0x7e8) = uVar27;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x6bb2e821)) =
       uVar46 ^ uVar27 ^ uVar40 ^ uVar35 ^ *(ulonglong *)(lVar5 + -0xa70);
  uVar15 = DAT_182671f7c;
  lVar5 = DAT_182671c40;
  puVar21 = (ulonglong *)(DAT_182671c40 + -0x888);
  uVar37 = (CONCAT44(uVar8,uVar49) ^ 0x4b7cd32441a1d3bb) +
           (uVar55 ^ *(ulonglong *)(DAT_182671c40 + -0xa50));
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar37 ^ uVar54;
  uVar27 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0xb08) =
       (CONCAT44(uVar36,uVar30) ^ 0xbf6763332ca5a8da) + (uVar41 ^ *puVar21) ^ uVar27;
  uVar40 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar5 + -0x828) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c88 ^ 0x7bbff4d7)) ^ uVar27) +
       (*(ulonglong *)(lVar5 - (uVar18 ^ 0xcfa07236)) ^ uVar54) ^ uVar40;
  uVar15 = DAT_182671e78;
  *(ulonglong *)(lVar5 + -0x680) =
       *(ulonglong *)(lVar5 - (uVar39 ^ 0x74249764)) ^ uVar43 |
       CONCAT44(uVar33,uVar52) ^ 0x1ec2d0a6c10adc1;
  local_78 = (byte)uVar9;
  uVar27 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x5b7b2973)) = uVar37 << ((local_78 ^ 0x7a) & 0x3f) ^ uVar27;
  uVar39 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar18 = CONCAT44(uVar11,DAT_182671c84);
  *(ulonglong *)(lVar5 + -0x4b8) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c68 ^ 0x5c67ebf7)) ^ uVar54) >>
       ((bVar19 ^ 0xd0) & 0x3f) ^ uVar39;
  *puVar56 = (uVar18 ^ 0xee77cdede8a37780) + (uVar55 ^ *(ulonglong *)(lVar5 + -0xa50));
  uVar18 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar5 + -0x628) =
       (*(ulonglong *)(lVar5 + -0x4b8) ^ uVar39 | *(ulonglong *)(lVar5 + -0x408) ^ uVar27) ^ uVar18;
  uVar15 = DAT_182671dfc;
  *(ulonglong *)(lVar5 + -0x5e8) =
       *(ulonglong *)(lVar5 - (uVar28 ^ 0xb816908b)) ^ uVar47 ^ uVar18 ^ uVar40 ^ *puVar22;
  uVar16 = DAT_182671f14;
  *puVar23 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0x1307ffd)) ^ uVar35) + (uVar47 ^ *puVar59) ^
             CONCAT44(uVar15,uVar15);
  local_60 = (byte)(uVar14 >> 0x18);
  uVar18 = CONCAT44(uVar16,uVar16);
  *puVar2 = (uVar47 ^ *puVar59) << ((local_60 ^ 0xa8) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x87e03cc9)) =
       (*(ulonglong *)(lVar5 + -0x5e8) ^ uVar47) >> ((local_160 ^ 0xc3) & 0x3f) ^ uVar51;
  *puVar3 = (*puVar2 ^ uVar18 | *puVar1 ^ uVar51) ^ CONCAT44(DAT_182671e88,DAT_182671e88);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar4 ^ uVar52) * 4) = uVar20;
  return;
}



############ FUN_ 1810041d0 size=3120 ############

void FUN_1810041d0(void)

{
  int *piVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  undefined1 *puVar18;
  ulonglong uVar19;
  uint uVar20;
  byte *pbVar21;
  longlong *plVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  longlong lVar26;
  ulonglong uVar27;
  byte *pbVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  uint uVar37;
  byte local_res18;
  
  uVar12 = DAT_182671c8c;
  uVar11 = DAT_182671c88;
  uVar9 = DAT_182671c7c;
  uVar7 = DAT_182671c64;
  uVar6 = DAT_182671c60;
  uVar5 = DAT_182671c58;
  lVar26 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c7c;
  uVar23 = (ulonglong)DAT_182671c88;
  uVar30 = (ulonglong)DAT_182671c60;
  uVar14 = DAT_182671c7c + DAT_182671c88;
  uVar35 = (ulonglong)uVar14;
  uVar37 = DAT_182671c8c | DAT_182671c60;
  uVar15 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar14 ^ 0xf15c5a50) + (longlong)DAT_1826720b0) ^
           DAT_182671c7c;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_1826720b0) ^ DAT_182671c88;
  uVar24 = (ulonglong)DAT_182671c64;
  bVar2 = **(byte **)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0xeeffb899));
  uVar17 = (ulonglong)DAT_182671c58;
  DAT_182671c4c = uVar37;
  DAT_182671c78 = uVar14;
  *(byte *)(DAT_182671c40 + -0x6b9) = bVar2;
  *(ulonglong *)(lVar26 + -0xc90) = (ulonglong)bVar2;
  lVar3 = DAT_182671c40;
  uVar20 = uVar5 & uVar7;
  uVar27 = (ulonglong)uVar12;
  DAT_182671c84 = uVar20;
  *(ulonglong *)(lVar26 - ((ulonglong)uVar7 ^ 0xe1b0f54c)) =
       CONCAT44(uVar5,uVar20) ^ 0xa98923db4856038 | *(ulonglong *)(lVar26 + -0xf0);
  uVar31 = *(longlong *)(lVar3 - (uVar30 ^ 0xd4b8541c)) << (((byte)uVar12 ^ 0x68) & 0x3f);
  *(ulonglong *)(lVar3 + -0x228) = *(ulonglong *)(lVar3 + -0x960) | uVar31;
  pbVar21 = (byte *)(*(longlong *)(lVar3 + 0x30) + 0x32);
  *(byte **)(lVar3 + -0x428) = pbVar21;
  *(ulonglong *)(lVar3 + -0x680) = uVar31;
  uVar32 = (ulonglong)uVar37;
  *(ulonglong *)(lVar3 + -0xda8) =
       (CONCAT44(uVar37,uVar6) ^ 0x40a1502c285909da) + *(ulonglong *)(lVar3 + -0x960);
  bVar2 = *pbVar21;
  *(byte *)(lVar3 + -0x2e9) = bVar2;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x60bb8138)) = (ulonglong)bVar2;
  uVar31 = (ulonglong)bVar2 << (((byte)uVar37 ^ 0xfc) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc18) = uVar31;
  *(undefined1 *)(lVar3 + -0x6b9) = **(undefined1 **)(lVar3 + -0x6f8);
  *(ulonglong *)(lVar3 + -0x7e8) = *(ulonglong *)(lVar3 + -0x228) | uVar31;
  lVar4 = DAT_182671c40;
  lVar26 = *(longlong *)(lVar3 + 0x30);
  puVar18 = (undefined1 *)((CONCAT44(uVar9,uVar9) ^ 0x25c9e6f025c9e5c) + lVar26);
  *(undefined1 **)(DAT_182671c40 + -0x370) = puVar18;
  *(undefined1 *)(lVar4 + -0x2e9) = *puVar18;
  uVar10 = DAT_182671c80;
  uVar8 = DAT_182671c74;
  uVar19 = (ulonglong)DAT_182671c74;
  uVar31 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar4 + -0x828) =
       *(ulonglong *)(lVar4 - (uVar35 ^ 0xf15c5020)) >>
       ((byte)*(undefined8 *)(lVar4 - (uVar27 ^ 0x408bbde0)) & 0x3f);
  uVar29 = uVar10 | uVar8;
  *(ulonglong *)(lVar4 + -0xa60) = (ulonglong)*(byte *)(lVar4 + -0x2e9);
  *(ulonglong *)(lVar4 + -0x760) = (ulonglong)*(byte *)(lVar4 + -0x2e9) << 0x18;
  lVar3 = DAT_182671c40;
  DAT_182671c48 = uVar29;
  *(ulonglong *)(lVar4 + -0xa50) =
       *(ulonglong *)(lVar4 - (uVar19 ^ 0x20910fdf)) | *(ulonglong *)(lVar4 - (uVar31 ^ 0xc00896cc))
  ;
  uVar34 = (ulonglong)uVar29;
  *(longlong *)(lVar3 - ((ulonglong)uVar29 ^ 0xe0999d97)) = lVar26 + 0x34;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar10 ^ 0xc008979d)) = **(undefined1 **)(lVar3 + -0x428);
  uVar25 = (ulonglong)*(byte *)(lVar3 - ((ulonglong)uVar29 ^ 0xe0999f06));
  *(ulonglong *)(lVar3 + -0xb18) = uVar25;
  *(ulonglong *)(lVar3 + -0x510) =
       CONCAT44(uVar8,uVar20) ^ 0x99139041a93d8f8c | *(ulonglong *)(lVar3 + -0x7e8);
  uVar25 = uVar25 << (((byte)uVar7 ^ 100) & 0x3f);
  puVar36 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x60bb83c8));
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar25;
  lVar26 = DAT_182671c40;
  *puVar36 = *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xe09993ef)) | uVar25;
  pbVar21 = (byte *)((CONCAT44(uVar8,uVar9) ^ 0x209108bf025c9e5a) + *(longlong *)(lVar26 + 0x30));
  *(byte **)(lVar26 + -0x6f8) = pbVar21;
  bVar2 = *pbVar21;
  *(byte *)(lVar26 + -0x2e9) = bVar2;
  lVar26 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = (ulonglong)bVar2;
  *(ulonglong *)(lVar26 - (uVar30 ^ 0xd4b85d64)) = (ulonglong)bVar2 << 0x28;
  lVar26 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xf15c57f0)) ^ CONCAT44(uVar7,uVar29) ^
       0x329fedf72c18e536;
  *(ulonglong *)(lVar26 + -0xd88) =
       *(ulonglong *)(lVar26 + -0x888) | *(ulonglong *)(lVar26 + -0x5e8);
  *(ulonglong *)(lVar26 - (uVar19 ^ 0x20910bcf)) =
       (CONCAT44(uVar5,uVar11) ^ 0x60bb8b40eeffbbdf) + *(longlong *)(lVar26 + 0x30);
  *(undefined1 *)(lVar26 + -0x6b9) = **(undefined1 **)(lVar26 - (uVar35 ^ 0xf15c5928));
  lVar3 = DAT_182671c40;
  uVar25 = (ulonglong)*(byte *)(lVar26 - (uVar27 ^ 0x408bbdd9));
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar25;
  *(ulonglong *)(lVar3 + -0xf0) = uVar25 << (((byte)uVar6 ^ 0xbc) & 0x3f);
  lVar26 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar20,uVar11) ^ 0x1df5f753de3a530) + 0x1d63c503c3937ea7;
  *(longlong *)(lVar26 + -0xa08) =
       *(longlong *)(lVar26 - ((ulonglong)uVar29 ^ 0xe099994f)) + *(longlong *)(lVar26 + -0xd88);
  lVar3 = DAT_182671c40;
  puVar18 = (undefined1 *)
            (*(longlong *)((uVar31 ^ 0xc0089114) + lVar26) +
            (CONCAT44(uVar8,uVar7) ^ 0x209108bfe1b0ff73));
  *(undefined1 **)(DAT_182671c40 + -0x428) = puVar18;
  *(undefined1 *)(lVar3 + -0x2e9) = *puVar18;
  lVar26 = DAT_182671c40;
  piVar1 = (int *)(DAT_182671c40 + -0x61c);
  bVar2 = *(byte *)(DAT_182671c40 + -0x2e9);
  uVar31 = *(ulonglong *)(DAT_182671c40 + -0xa08);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = (ulonglong)bVar2;
  *(int *)(lVar26 + -0x670) = *piVar1 << (((byte)uVar37 ^ 0xfa) & 0x1f);
  *(ulonglong *)(lVar26 + -0x960) = uVar31 >> (((byte)uVar5 ^ 0x77) & 0x3f);
  uVar13 = DAT_182671f00;
  *(ulonglong *)(lVar26 - (uVar32 ^ 0xd4bbf9c4)) = (ulonglong)bVar2 << (((byte)uVar6 ^ 0xb4) & 0x3f)
  ;
  uVar31 = *(ulonglong *)(CONCAT44(DAT_182671ce8,DAT_182671ce8) ^ *(ulonglong *)(lVar26 + -0x2e8));
  uVar25 = *(longlong *)(lVar26 + -0xa08) + *(longlong *)(lVar26 + -0x228);
  *(ulonglong *)(lVar26 + -0x828) = uVar25;
  *(ulonglong *)(lVar26 + -0xc18) = uVar31 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar26 + -0x140) =
       *(longlong *)(lVar26 + -0x418) + (CONCAT44(uVar20,uVar12) ^ 0x60b08b40408bbb66) * 8;
  *(ulonglong *)(lVar26 + -0xa78) =
       CONCAT44(uVar10,uVar10) ^ 0x38f6dfb10561db77 | *(ulonglong *)(lVar26 + -0x110);
  **(ulonglong **)(lVar26 - (uVar35 ^ 0xf15c5b18)) = CONCAT44(DAT_182671e48,DAT_182671e48) ^ uVar25;
  *(ulonglong *)(lVar26 - (uVar34 ^ 0xe0999f47)) =
       (CONCAT44(uVar37,uVar8) ^ 0xd4bbfbec20910887) + *(longlong *)((uVar24 ^ 0xe1b0ff74) + lVar26)
  ;
  bVar2 = **(byte **)(lVar26 + -0x6f8);
  *(ulonglong *)(lVar26 + -0x680) = (ulonglong)bVar2;
  *(byte *)(lVar26 + -0x6b9) = bVar2;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x25c940f)) =
       *(ulonglong *)(lVar26 - ((ulonglong)uVar20 ^ 0x60b08368)) ^ CONCAT44(uVar29,uVar5) ^
       0x8bb3e92fdd7b461a;
  pbVar21 = (byte *)((CONCAT44(uVar10,uVar29) ^ 0xc0089124e0999986) + *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x370) = pbVar21;
  *(ulonglong *)(lVar3 + -0x760) =
       *(ulonglong *)(lVar3 + -0x680) ^ CONCAT44(uVar37,uVar8) ^ 0xb7586f6ed2eb1c6c;
  pbVar28 = (byte *)(lVar3 - (uVar27 ^ 0x408bb989));
  *pbVar28 = *pbVar21;
  *(ulonglong *)(lVar3 + -0x7e8) = (ulonglong)*(byte *)(lVar3 + -0x2e9);
  *(ulonglong *)(lVar3 + -0x510) =
       CONCAT44(uVar29,uVar7) ^ 0x62622d210668ea20 | *(ulonglong *)(lVar3 + -0xc90);
  *(longlong *)(lVar3 + -0xb18) = *(longlong *)(lVar3 - (uVar32 ^ 0xd4bbfc04)) << 8;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xeeffb1b9)) =
       (CONCAT44(uVar6,uVar20) ^ 0x9b4d8d14c8fb0270) >>
       ((byte)*(undefined8 *)(lVar3 + -0x760) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x20910367)) =
       *(ulonglong *)(lVar3 + -0x680) | *(ulonglong *)(lVar3 + -0xb18);
  pbVar21 = (byte *)((CONCAT44(uVar37,uVar14) ^ 0xd4bbfbecf15c5a62) + *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x428) = pbVar21;
  bVar2 = *pbVar21;
  *(byte *)(lVar3 + -0x6b9) = bVar2;
  uVar13 = DAT_182671d7c;
  lVar26 = DAT_182671c40;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x408bb8b8)) = (ulonglong)bVar2;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       *(ulonglong *)
        (*(ulonglong *)(lVar26 - (uVar30 ^ 0xd4b8589c)) ^ CONCAT44(DAT_182671f2c,DAT_182671f2c)) ^
       CONCAT44(uVar13,uVar13);
  uVar31 = *(longlong *)(lVar3 + -0x3d8) << (((byte)uVar9 ^ 0x7f) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc38) = uVar31;
  *(ulonglong *)(lVar3 + -0x888) = uVar31 | *(ulonglong *)(lVar3 + -0xbd8);
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x25c9897)) =
       (CONCAT44(uVar7,uVar11) ^ 0xe1b0ff44eeffbbd2) + *(longlong *)(lVar3 + 0x30);
  *(undefined1 *)(lVar3 + -0x2e9) = **(undefined1 **)(lVar3 + -0x6f8);
  bVar2 = *pbVar28;
  *(ulonglong *)(lVar3 + -0x920) =
       *(ulonglong *)(lVar3 + -0xb18) ^ CONCAT44(uVar10,uVar7) ^ 0x6b88e5e0e1428332;
  *(ulonglong *)(lVar3 + -0x5e8) = (ulonglong)bVar2;
  *(ulonglong *)(lVar3 + -0xd88) = (ulonglong)bVar2 << (((byte)uVar7 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x60bb8bb0)) =
       *(ulonglong *)(lVar3 - (uVar34 ^ 0xe0999437)) | *puVar36;
  puVar18 = (undefined1 *)
            ((CONCAT44(uVar14,uVar5) ^ 0xf15c5a5860bb8b7c) + *(longlong *)(lVar3 + 0x30));
  *(undefined1 **)(lVar3 + -0x370) = puVar18;
  *(undefined1 *)(lVar3 + -0x6b9) = *puVar18;
  *(ulonglong *)(lVar3 + -0x960) = CONCAT44(uVar37,uVar11) ^ 0x515eceff91f26398;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xd4bbf7f4)) = (ulonglong)*(byte *)(lVar3 + -0x6b9);
  *(ulonglong *)(lVar3 + -0xa08) =
       CONCAT44(uVar11,uVar20) ^ *(ulonglong *)(lVar3 + -0xf0) ^ 0xa616057f95b16035;
  uVar31 = *(longlong *)(lVar3 + -0xc18) << (((byte)uVar10 ^ 4) & 0x3f);
  *(ulonglong *)(lVar3 + -0x228) = uVar31;
  local_res18 = (byte)uVar14;
  *(ulonglong *)(lVar3 + -0x110) = *(ulonglong *)(lVar3 - (uVar24 ^ 0xe1b0ffb4)) | uVar31;
  lVar4 = DAT_182671c40;
  lVar26 = *(longlong *)(lVar3 + 0x30);
  plVar22 = (longlong *)(DAT_182671c40 - (uVar33 ^ 0x25c9e9f));
  *(ulonglong *)(DAT_182671c40 + -0x428) = (CONCAT44(uVar6,uVar5) ^ 0xd4b8588c60bb8b7d) + lVar26;
  *(longlong *)(lVar4 + -0xa78) = 0x6bc8981c3fb137e0 - *plVar22;
  *(undefined1 *)(lVar4 + -0x2e9) = **(undefined1 **)(lVar4 - (uVar32 ^ 0xd4bbffc4));
  *(ulonglong *)(lVar4 + -0xa60) = (ulonglong)*pbVar28;
  *(int *)(lVar4 + -0x58c) =
       *(int *)(lVar4 + -0x644) << ((byte)*(undefined4 *)(lVar4 + -0x76c) & 0x1f);
  uVar31 = *(longlong *)(lVar4 - (uVar17 ^ 0x60bb8120)) << (((byte)uVar10 ^ 0xc) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc90) = uVar31;
  uVar31 = *(ulonglong *)(lVar4 - (uVar23 ^ 0xeeffbaf9)) | uVar31;
  *(ulonglong *)(lVar4 + -0x510) = uVar31;
  *(ulonglong *)(lVar4 + -0x6f8) = (CONCAT44(uVar14,uVar7) ^ 0xf15c5a58e1b0ff7a) + lVar26;
  bVar2 = **(byte **)(lVar4 - (uVar19 ^ 0x20910e47));
  *(byte *)(lVar4 + -0x6b9) = bVar2;
  *(ulonglong *)(lVar4 + -0x7e8) = (ulonglong)bVar2;
  lVar26 = (ulonglong)bVar2 << ((local_res18 ^ 0x68) & 0x3f);
  *(longlong *)(lVar4 + -0x760) = lVar26;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0x60b08110)) = lVar26 + uVar31;
  puVar18 = (undefined1 *)(*(longlong *)((uVar32 ^ 0xd4bbfbdc) + lVar4) + 0x3f);
  *(undefined1 **)(lVar4 + -0x370) = puVar18;
  *(undefined1 *)(lVar4 + -0x2e9) = *puVar18;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar15;
  return;
}



############ FUN_ 180fcc810 size=5772 ############

void FUN_180fcc810(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  byte bVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res18;
  byte local_res20;
  byte local_f8;
  byte local_c8;
  byte local_b0;
  
  uVar16 = DAT_182671e28;
  uVar15 = DAT_182671dd4;
  uVar10 = DAT_182671c60;
  uVar8 = DAT_182671c58;
  uVar7 = DAT_182671c54;
  uVar6 = DAT_182671c50;
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c58;
  uVar26 = (ulonglong)DAT_182671c48;
  uVar37 = (ulonglong)DAT_182671c54;
  uVar35 = ~DAT_182671c48;
  uVar30 = (ulonglong)DAT_182671c60;
  uVar27 = DAT_182671c54 - DAT_182671c58;
  uVar20 = *(uint *)(&DAT_182613218 + DAT_1826722f8) ^ DAT_182671c48;
  uVar42 = DAT_182671c50 << 0x10 | DAT_182671c50 >> 0x10;
  uVar33 = ~DAT_182671c60;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar34 ^ 0xf3bf1825) + (longlong)DAT_1826722f8);
  uVar21 = (CONCAT44(DAT_182671e54,DAT_182671e54) ^ *(ulonglong *)(DAT_182671c40 + -0x960)) << 0x12;
  uVar23 = (ulonglong)uVar27;
  DAT_182671c4c = uVar33;
  DAT_182671c64 = uVar42;
  DAT_182671c78 = uVar27;
  DAT_182671c7c = uVar35;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar21 ^ CONCAT44(DAT_182671e28,DAT_182671e28);
  uVar17 = DAT_182671f54;
  uVar14 = DAT_182671c98;
  uVar25 = CONCAT44(uVar15,uVar15);
  uVar28 = CONCAT44(DAT_182671efc,DAT_182671efc);
  puVar31 = (ulonglong *)(lVar3 - (uVar37 ^ 0x71785a1e));
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x7db94059)) ^ uVar25 | uVar21) ^ uVar28;
  lVar3 = DAT_182671c40;
  uVar40 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar33 ^ 0x103c0203)) ^ CONCAT44(uVar14,uVar14))
       - (uVar28 ^ *puVar31) ^ uVar40;
  uVar14 = DAT_182671ce4;
  uVar21 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar3 + -0x110) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xefc3fb8c)) ^
       CONCAT44(DAT_182671e5c,DAT_182671e5c) | CONCAT44(uVar8,uVar35) ^ 0xa62ac0fc79dbabd4;
  uVar9 = DAT_182671c70;
  lVar3 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  uVar32 = (ulonglong)DAT_182671cdc;
  uVar2 = DAT_182671cdc >> 0xc;
  uVar22 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0x71785d26)) =
       *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xddeff094)) ^
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0xfbdff5f1)) ^ CONCAT44(uVar14,uVar14) ^
       uVar36 ^ uVar25;
  uVar24 = CONCAT44(DAT_182671da0,DAT_182671da0);
  uVar21 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x44354456)) =
       (uVar32 << 0x14 | (ulonglong)uVar2) ^ *(ulonglong *)(lVar3 + -0x228) >> 0xc ^ uVar24;
  uVar22 = (*(ulonglong *)(lVar3 - (uVar21 ^ 0xc3a062cd)) ^ uVar36) << (((byte)uVar9 ^ 199) & 0x3f);
  uVar21 = (ulonglong)DAT_182671c80;
  uVar32 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar3 + -0xc38) = uVar22 ^ CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar11 = DAT_182671c74;
  uVar43 = (ulonglong)DAT_182671c74;
  uVar29 = (ulonglong)uVar42;
  *(ulonglong *)(lVar3 + -0x960) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xbbdff270)) ^ uVar24 | uVar22) ^ uVar32;
  uVar13 = DAT_182671c94;
  uVar2 = DAT_182671c5c;
  uVar22 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar42 ^ 0xfff9fd5f)) =
       CONCAT44(uVar11,uVar5) ^ CONCAT44(DAT_182671d20,DAT_182671d20) ^
       *(ulonglong *)(lVar3 + -0x5e8) ^ 0xa700139b47bc3c7a;
  uVar12 = DAT_182671c8c;
  lVar4 = DAT_182671c40;
  uVar21 = *(ulonglong *)(lVar3 + -0x960);
  uVar44 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xdceef335)) ^ uVar25) - (uVar32 ^ uVar21) ^ uVar44
  ;
  *(longlong *)(lVar4 + -0x110) = 0x6295f4be609fca9f << (((byte)DAT_182671c90 ^ 0x35) & 0x3f);
  uVar25 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar21 = *(ulonglong *)(lVar4 - (uVar29 ^ 0xfff9f657)) ^ uVar25 ^ uVar32 ^ uVar40 ^ uVar21;
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar21;
  uVar9 = DAT_182671c80;
  uVar32 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar22 = (uVar21 ^ uVar25) >> (((byte)uVar12 ^ 0x1d) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar22 ^ uVar32;
  lVar3 = DAT_182671c40;
  uVar21 = (uVar25 ^ uVar21) << (((byte)uVar9 ^ 0x2f) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar21 ^ uVar24;
  uVar14 = DAT_182671e14;
  uVar9 = DAT_182671c88;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar35 ^ 0xbd9e79eb)) ^ uVar32) >>
       ((*(byte *)(lVar3 - (uVar37 ^ 0x71785786)) ^ (byte)uVar16) & 0x3f);
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xddeff03c)) = (uVar22 | uVar21) ^ uVar38;
  uVar21 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(uint *)(lVar4 + -0x634) = (uVar11 ^ 0xbfea3cbe) & *(uint *)(lVar4 + -0x94);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar2 ^ 0xdceefcd5)) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0xd88)) - (CONCAT44(uVar10,uVar9) ^ 0x96502dad32f46213) ^
       uVar21;
  uVar14 = DAT_182671e68;
  uVar2 = DAT_182671c6c;
  uVar25 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *(ulonglong *)(lVar4 + -0x680) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0x5e8)) - (uVar38 ^ *(ulonglong *)(lVar4 + -0xc38)) ^
       uVar25;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar21 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar4 + -0xa08) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0xc38)) - (CONCAT44(uVar5,uVar2) ^ 0xa675abfb0e25f28c) ^
       uVar36;
  uVar15 = DAT_182671ed0;
  uVar24 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  local_res20 = (byte)uVar27;
  uVar21 = *(ulonglong *)(lVar4 - (uVar21 ^ 0xc3a06b3d)) ^ uVar24 ^ uVar44 ^ uVar28 ^
           *(ulonglong *)(lVar4 + -0x510);
  *(ulonglong *)(lVar4 + -0x110) = uVar21;
  uVar14 = DAT_182671e38;
  uVar22 = (uVar21 ^ uVar24) >> ((local_res20 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar4 + -0x960) = uVar22 ^ CONCAT44(uVar15,uVar15);
  lVar3 = DAT_182671c40;
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar28 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar35 ^ 0xbd9e746b)) ^ uVar24) << 0x1f;
  uVar40 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar28 ^ CONCAT44(uVar14,uVar14);
  uVar28 = uVar28 | uVar22;
  uVar32 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *(ulonglong *)(lVar3 + -0x888) = uVar28 ^ uVar40;
  uVar2 = DAT_182671c8c;
  uVar21 = (uVar44 ^ uVar21) - (CONCAT44(uVar8,uVar7) ^ 0x803cc4898790956e);
  *(ulonglong *)(lVar3 + -0xa78) = uVar21 ^ uVar32;
  lVar3 = DAT_182671c40;
  uVar44 = CONCAT44(DAT_182671f20,DAT_182671f20);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       CONCAT44(uVar13,uVar2) ^ 0xe5c4d1a9f43026fe | CONCAT44(uVar10,uVar42) ^ 0x9b8515bcc2445b01;
  uVar2 = DAT_182671c90;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x3518bddb)) = uVar21 - uVar28 ^ uVar44;
  uVar9 = DAT_182671c5c;
  uVar22 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x110)) >> (((byte)uVar2 ^ 0x36) & 0x3f);
  uVar2 = DAT_182671ea4;
  uVar21 = (CONCAT44(uVar5,uVar7) ^ 0xdaf85af17a56eef6) + (uVar40 ^ *(ulonglong *)(lVar3 + -0x888))
           ^ uVar22;
  *(ulonglong *)(lVar3 + -0x5e8) = uVar21;
  uVar24 = CONCAT44(uVar2,uVar2) ^ uVar21 ^ uVar22 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x680);
  uVar28 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(lVar3 + -0xc38) = uVar24;
  uVar22 = ((ulonglong)uVar2 << 0x1b | (ulonglong)(uVar2 >> 5)) ^ uVar24 >> 5;
  uVar21 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar3 + -0x510) = uVar22 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x960) =
       (CONCAT44(uVar2,uVar2) ^ uVar24) << ((local_res20 ^ 0xe2) & 0x3f) ^ uVar21;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0xddeff1ac)) =
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0xf3bf1155)) ^ uVar21 | uVar22) ^ uVar38;
  uVar14 = DAT_182671eac;
  uVar24 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar4 + -0xbd8) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x680)) - (uVar38 ^ *(ulonglong *)(lVar4 + -0xda8)) ^
       uVar24;
  uVar15 = DAT_182671e64;
  uVar42 = DAT_182671c94;
  lVar3 = DAT_182671c40;
  uVar25 = CONCAT44(uVar14,uVar14);
  bVar18 = (byte)DAT_182671c68;
  uVar22 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0xc3a06aed)) ^ uVar25 ^ uVar44
           ^ uVar36 ^ *(ulonglong *)(DAT_182671c40 + -0x228);
  uVar36 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar21 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar22;
  local_c8 = (byte)uVar6;
  *(ulonglong *)(lVar3 + -0xa78) = (uVar22 ^ uVar25) >> (bVar18 & 0x3f) ^ uVar36;
  local_res18 = (byte)(uVar6 >> 0x10);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xe23ff86b)) = (uVar25 ^ uVar22) << ((local_c8 ^ 0xc4) & 0x3f);
  uVar2 = DAT_182671c70;
  uVar22 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xfc04d067)) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0xc90)) << ((local_res18 ^ 0xc4) & 0x3f) ^ uVar22;
  uVar12 = DAT_182671ec0;
  puVar19 = (ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0x3518b27b));
  uVar21 = CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar25 = (uVar22 ^ *puVar19 | uVar36 ^ *(ulonglong *)(lVar3 + -0xa78)) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x888) = uVar25;
  uVar40 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x5e8) =
       (uVar44 ^ *(ulonglong *)(lVar3 + -0x228)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0x3518b77b)) ^ uVar21) ^ uVar40;
  uVar12 = DAT_182671f28;
  uVar36 = CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar22 = (ulonglong)DAT_182671f28;
  *(ulonglong *)(lVar3 + -0xc38) = **(ulonglong **)(lVar3 - (uVar43 ^ 0xfc04d5cf)) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x960) =
       (uVar44 ^ *(ulonglong *)(lVar3 + -0x228)) >>
       (((byte)uVar15 ^ *(byte *)(lVar3 + -0xa78)) & 0x3f);
  *(ulonglong *)(lVar3 + -0x510) =
       CONCAT44(uVar12,uVar12) ^ uVar21 ^ uVar24 ^ *(ulonglong *)(lVar3 + -0xbd8) ^ uVar25;
  uVar2 = DAT_182671c6c;
  uVar44 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x103c0f5b)) =
       ((ulonglong)(uVar12 >> 0x17) | uVar22 << 9) ^ *(ulonglong *)(lVar3 + -0x510) >> 0x17 ^ uVar44
  ;
  *(ulonglong *)(lVar3 + -0xa08) = CONCAT44(uVar9,uVar42) ^ 0x6446a1ddd2b094ab;
  uVar28 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x510)) << 0x29;
  uVar21 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar45 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar3 + -0x110) = uVar28 ^ uVar21;
  uVar14 = DAT_182671e34;
  uVar28 = uVar44 ^ *(ulonglong *)(lVar3 + -0x680) | uVar28;
  *(ulonglong *)(lVar3 + -0xc90) = uVar28 ^ uVar45;
  lVar4 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar3 + -0xd88) =
       (CONCAT44(uVar2,uVar7) ^ 0xb9a72a917ee27f5f) <<
       (((byte)uVar15 ^ *(byte *)(lVar3 + -0xa78)) & 0x3f);
  uVar15 = DAT_182671f8c;
  uVar12 = DAT_182671c80;
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xc38) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0xddeff7dc)) ^ uVar24) - uVar28 ^ uVar25;
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x888) =
       uVar40 ^ uVar38 ^ *(ulonglong *)(lVar4 + -0x5e8) ^ uVar22 ^ *(ulonglong *)(lVar4 + -0xda8);
  uVar14 = DAT_182671dc0;
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar4 + -0x228) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xbbdff080)) ^ uVar22) >>
       ((local_res20 ^ 0xf1) & 0x3f) ^ uVar28;
  uVar27 = DAT_182671c90;
  uVar2 = DAT_182671c5c;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x960) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xefc3feac)) ^ uVar22) << (((byte)uVar11 ^ 0xf7) & 0x3f) ^
       uVar24;
  *(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xfc04d7e7)) =
       (CONCAT44(uVar27,uVar12) ^ 0xb861e174c5f1ddfb) << (((byte)uVar2 ^ 2) & 0x3f);
  lVar4 = DAT_182671c40;
  puVar41 = (ulonglong *)(lVar3 - (uVar26 ^ 0x426183e4));
  uVar30 = CONCAT44(DAT_182671eec,DAT_182671eec);
  uVar22 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar33 ^ 0x103c0ccb)) =
       (*puVar41 ^ uVar24 | uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0x228)) ^ uVar30;
  uVar26 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0xf3bf1925)) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0xddeff9ec)) ^ uVar40) -
       (*(ulonglong *)(lVar4 + -0x510) ^ uVar30) ^ uVar26;
  uVar14 = DAT_182671ca0;
  *(ulonglong *)(lVar4 + -0xa78) =
       (CONCAT44(uVar9,uVar42) ^ 0xb3399e5366ccf184) >> (((byte)uVar10 ^ 0x2b) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(uVar14,uVar14);
  puVar39 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0xc3a06cdd));
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c70 ^ 0x3518bae3)) ^ *puVar39 ^ uVar28 ^
       uVar30 ^ uVar25;
  uVar14 = DAT_182671f60;
  *(undefined1 *)(lVar3 + -0x2e9) = **(undefined1 **)(lVar3 + -0x370);
  local_b0 = (byte)uVar5;
  uVar24 = CONCAT44(uVar14,uVar14);
  bVar18 = (byte)DAT_182671c68;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xfc04d637)) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0xd88)) >> ((local_b0 ^ 0xb0) & 0x3f) ^ uVar24;
  uVar14 = DAT_182671f08;
  *(ulonglong *)(lVar3 + -0xda8) = 0xe9ba3207feddaeed >> ((bVar18 ^ 0xd8) & 0x3f);
  bVar18 = (byte)DAT_182671c90;
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar22 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar3 + -0x888) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0xd88)) << (((byte)uVar33 ^ 0xd7) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xbbdff200)) =
       (uVar44 ^ *(ulonglong *)(lVar3 + -0x680)) >> ((bVar18 ^ 0x26) & 0x3f);
  uVar14 = DAT_182671e50;
  lVar4 = DAT_182671c40;
  uVar43 = CONCAT44(DAT_182671f88,DAT_182671f88);
  uVar22 = *(ulonglong *)(lVar3 - (uVar23 ^ 0x7db94e51)) ^ uVar30 |
           *(ulonglong *)(lVar3 + -0xbd8) ^ uVar24;
  *(ulonglong *)(lVar3 + -0x228) = uVar22 ^ uVar43;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xfff9f2bf)) =
       (*(ulonglong *)(lVar4 + -0xc38) ^ uVar25) - uVar22 ^ uVar24;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x71785ae6)) =
       uVar43 ^ *(ulonglong *)(lVar4 + -0x228) | CONCAT44(uVar35,uVar2) ^ 0xc107bc913311e590;
  uVar30 = (ulonglong)DAT_182671d34;
  uVar22 = (ulonglong)DAT_182671c90;
  uVar25 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0xf3bf124d)) =
       uVar45 ^ uVar25 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0xc90) ^ *(ulonglong *)(lVar4 + -0x110);
  lVar3 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *puVar31 = (*(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0x81807c7c)) >> 0x20 ^ uVar30) >> 0x19 ^
             uVar34;
  uVar22 = (*(ulonglong *)(lVar3 + -0xa78) ^ uVar25) << (((byte)DAT_182671c94 ^ 0x7c) & 0x3f);
  uVar37 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar3 + -0xda8) = uVar22 ^ CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar22 = *(ulonglong *)(lVar3 + -0x510) ^ uVar34 | uVar22;
  uVar25 = uVar22 ^ uVar37;
  uVar30 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  uVar34 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar3 + -0xd88) = uVar25;
  *(ulonglong *)(lVar3 + -0xa08) = *(ulonglong *)(uVar30 ^ *(ulonglong *)(lVar3 + -0x2e8)) ^ uVar34;
  uVar14 = DAT_182671d30;
  uVar30 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(lVar3 + -0x680) = (uVar26 ^ *(ulonglong *)(lVar3 + -0x110)) - uVar22 ^ uVar30;
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar34 = (ulonglong)DAT_182671ec0;
  uVar22 = uVar40 ^ *(ulonglong *)(lVar3 + -0x960) ^ uVar25 ^ uVar37 ^ uVar24;
  uVar2 = DAT_182671ec0 >> 0xe;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar22;
  uVar14 = DAT_182671dc4;
  *(ulonglong *)(lVar3 + -0x888) = (uVar34 << 0x12 | (ulonglong)uVar2) ^ uVar22 >> 0xe ^ uVar28;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0xc38) = (uVar40 ^ uVar22) << (((byte)uVar7 ^ 0x3c) & 0x3f) ^ uVar34;
  *(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0xfbdff939)) =
       (DAT_182671c88 ^ 0xfeec0434) + *(int *)(lVar3 + -0x784);
  uVar14 = DAT_182671d24;
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar26 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar3 + -0x5e8) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0xfff9f357)) ^ uVar28 |
       *(ulonglong *)(lVar3 + -0xc38) ^ uVar34) ^ uVar22;
  lVar3 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c68;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xdceef5ad)) =
       (*(ulonglong *)(lVar4 + -0x960) ^ uVar24) -
       (CONCAT44(uVar10,DAT_182671c68) ^ 0xb67985e9fab859dd) ^ uVar34;
  uVar14 = DAT_182671d04;
  uVar26 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar3 + -0xa78) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0xc90)) - (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar22) ^
       uVar26;
  uVar5 = DAT_182671c8c;
  uVar2 = DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0xbbdffd18)) =
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar22) - (CONCAT44(uVar13,uVar35) ^ 0x4c35552084f2f828) ^
       CONCAT44(uVar14,uVar14);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (CONCAT44(uVar33,uVar6) ^ 0x2c41d965465f770b) -
       (CONCAT44(uVar5,DAT_182671c90) ^ 0x52de84cc92d9e23);
  *(ulonglong *)(lVar3 + -0xa08) =
       uVar36 ^ *(ulonglong *)(lVar3 + -0x680) ^ uVar30 ^ uVar43 ^ *(ulonglong *)(lVar3 + -0x228);
  *(undefined1 *)(lVar3 - (uVar23 ^ 0x7db94060)) = **(undefined1 **)(lVar3 + -0x758);
  *(ulonglong *)(lVar3 + -0x110) =
       ((ulonglong)(DAT_182671e48 >> 0x10) | (ulonglong)DAT_182671e48 << 0x10) ^
       *(ulonglong *)(lVar3 + -0xa08) >> 0x10 ^ uVar40;
  local_f8 = (byte)uVar8;
  *puVar19 = 0x46ea42fedbf548f << ((local_f8 ^ 0x14) & 0x3f);
  uVar23 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar3 + -0xbd8) = (uVar36 ^ *(ulonglong *)(lVar3 + -0xa08)) << 0x30 ^ uVar23;
  uVar14 = DAT_182671d40;
  uVar34 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar3 + -0x888) =
       CONCAT44(uVar9,DAT_182671c6c) ^ 0xc908578141903056 |
       CONCAT44(uVar9,uVar2) ^ 0xdce651fd4732ce77;
  uVar24 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *puVar39 = (*(ulonglong *)(lVar3 - (uVar34 ^ 0x3518b42b)) ^ uVar23 |
             uVar40 ^ *(ulonglong *)(lVar3 + -0x110)) ^ uVar32;
  uVar2 = DAT_182671c90;
  uVar22 = (ulonglong)DAT_182671c90;
  *puVar41 = (*(ulonglong *)(lVar3 + -0x680) ^ uVar30) -
             (CONCAT44(uVar13,uVar10) ^ 0x62bd804a5d34a86) ^ uVar24;
  uVar15 = DAT_182671dcc;
  *(ulonglong *)(lVar3 + -0x5e8) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x81807f64)) ^ uVar24) -
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xc3a06cdd)) ^ uVar32) ^ CONCAT44(uVar14,uVar14);
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar23 = (CONCAT44(uVar13,uVar11) ^ 0x6190a2158c40b0a5) +
           (uVar32 ^ *(ulonglong *)(lVar3 + -0xc38)) ^ uVar34;
  uVar30 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar3 + -0xda8) = uVar23;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xfff9f9f7)) =
       *(ulonglong *)(lVar3 + -0xa78) ^ uVar30 ^ uVar23 ^ uVar34 ^ uVar26;
  uVar5 = DAT_182671c90;
  DAT_182671c84 = DAT_182671c90 << 0x10 | DAT_182671c90 >> 0x10;
  *(ulonglong *)(lVar3 + -0xd88) =
       (CONCAT44(uVar27,uVar2) ^ 0xf88c708fab0e5ecc) +
       (CONCAT44(uVar27,DAT_182671c84) ^ 0xfd743f4827f162a9);
  bVar18 = (byte)(uVar5 >> 0x10) ^ 0xa0;
  uVar32 = (uVar30 ^ *(ulonglong *)(lVar3 + -0x228)) >> (bVar18 & 0x3f);
  uVar23 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar3 + -0xa08) = uVar32 ^ CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar34 = (*(ulonglong *)(lVar3 - (uVar22 ^ 0x8180742c)) ^ uVar30) << (bVar18 & 0x3f);
  *(ulonglong *)(lVar3 + -0x888) = uVar34 ^ uVar23;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar35) * 4) = uVar20;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x81807714)) = (uVar32 | uVar34) ^ uVar21;
  return;
}



############ FUN_ 180f56fd0 size=4847 ############

void FUN_180f56fd0(void)

{
  ulonglong *puVar1;
  undefined8 *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  uint uVar9;
  longlong lVar10;
  longlong lVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  
  uVar17 = DAT_182671db8;
  uVar13 = DAT_182671c88;
  uVar14 = DAT_182671c64;
  lVar10 = DAT_182671c40;
  uVar31 = DAT_182671c64 << 0x10 | DAT_182671c64 >> 0x10;
  uVar9 = *(uint *)(&DAT_182613218 + DAT_18267219c);
  uVar18 = *(uint *)(&DAT_182613220 + DAT_18267219c) ^ DAT_182671c64;
  puVar3 = (ulonglong *)(DAT_182671c40 + -0x228);
  uVar34 = CONCAT44(DAT_182671f08,DAT_182671f08);
  puVar36 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c64 ^ 0x5b316c98));
  uVar33 = (ulonglong)uVar31;
  puVar4 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  DAT_182671c74 = uVar31;
  *puVar36 = (CONCAT44(DAT_182671e6c,DAT_182671e6c) ^ *puVar3) +
             (CONCAT44(uVar31,DAT_182671c88) ^ 0xc105d70343d7a6c2) ^ uVar34;
  uVar15 = DAT_182671cb4;
  uVar29 = CONCAT44(uVar17,uVar17);
  puVar23 = (ulonglong *)(lVar10 - ((ulonglong)uVar13 ^ 0x85306888));
  *puVar23 = *(ulonglong *)(lVar10 - ((ulonglong)uVar31 ^ 0x674056b9)) ^ uVar29 | uVar34 ^ *puVar4;
  uVar12 = DAT_182671c48;
  puVar5 = (ulonglong *)(lVar10 + -0xd88);
  uVar28 = CONCAT44(uVar15,uVar15);
  puVar6 = (ulonglong *)(lVar10 + -0x960);
  puVar7 = (ulonglong *)(lVar10 + -0xda8);
  uVar40 = *(ulonglong *)(lVar10 - ((ulonglong)uVar31 ^ 0x674050e9)) ^ uVar34 ^ *puVar5 ^ uVar28 ^
           uVar29;
  *puVar6 = uVar40;
  uVar15 = DAT_182671cd8;
  uVar22 = DAT_182671c68;
  uVar34 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *(uint *)(lVar10 + -0x54) = uVar31 ^ 0xe6a9fa37 | *(uint *)(lVar10 + -0xae4);
  uVar37 = (uVar40 ^ uVar28) >> (((byte)uVar12 ^ 0x20) & 0x3f);
  *puVar7 = uVar37 ^ uVar34;
  puVar8 = (ulonglong *)(lVar10 + -0xa78);
  uVar24 = (uVar40 ^ uVar28) << (((byte)uVar12 ^ 0x20) & 0x3f);
  uVar34 = *puVar5;
  *puVar8 = uVar24 ^ CONCAT44(uVar15,uVar15);
  uVar12 = DAT_182671c48;
  uVar41 = (ulonglong)DAT_182671c48;
  uVar37 = uVar37 | uVar24;
  uVar32 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar10 + -0x110) = uVar37 ^ uVar32;
  *puVar3 = uVar40 ^ uVar28 ^ 0xd2ead5039990fb82;
  lVar10 = DAT_182671c40;
  uVar42 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x888);
  *puVar1 = (uVar34 ^ uVar29) - uVar37 ^ uVar42;
  puVar21 = (ulonglong *)(lVar10 - (uVar41 ^ 0x1a0abbd8));
  *puVar21 = CONCAT44(uVar14,uVar13) ^ 0xfeeeff6e3c6df179 | 0xf88e7b002061b049;
  uVar16 = DAT_182671c88;
  uVar38 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar44 = CONCAT44(DAT_182671f48,DAT_182671f48);
  puVar35 = (ulonglong *)(lVar10 - ((ulonglong)uVar14 ^ 0x5b316bd0));
  puVar25 = (ulonglong *)(lVar10 - (uVar33 ^ 0x67405699));
  *puVar25 = CONCAT44(DAT_182671e94,DAT_182671e94) ^ uVar44 ^ uVar38 ^ *puVar35 ^
             *(ulonglong *)(lVar10 + -0xc38);
  uVar34 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  puVar43 = (ulonglong *)(lVar10 - ((ulonglong)uVar22 ^ 0x94da5a78));
  *puVar43 = (*puVar7 ^ uVar38) >> (((byte)uVar14 ^ 0x60) & 0x3f) ^ uVar34;
  uVar41 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *puVar6 = (*puVar7 ^ uVar38) << (((byte)uVar22 ^ 0x20) & 0x3f) ^ uVar41;
  lVar10 = DAT_182671c40;
  puVar30 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0x85306228));
  *puVar30 = CONCAT44(uVar12,uVar31) ^ 0x7ab185e8ab546884;
  uVar12 = DAT_182671f84;
  uVar29 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar37 = *(ulonglong *)(lVar10 - (uVar33 ^ 0x67405149)) ^ uVar34 | *puVar6 ^ uVar41;
  puVar26 = (ulonglong *)(lVar10 + -0xc90);
  uVar39 = uVar37 ^ uVar29;
  uVar34 = *puVar26;
  uVar24 = (ulonglong)DAT_182671f84;
  *puVar5 = uVar39;
  uVar40 = CONCAT44(uVar12,uVar12);
  uVar28 = CONCAT44(DAT_182671f98,DAT_182671f98);
  uVar45 = (uVar44 ^ uVar34) - uVar37 ^ uVar28;
  *puVar4 = uVar45;
  uVar34 = *puVar1;
  uVar29 = uVar39 ^ uVar34 ^ uVar40 ^ uVar29 ^ uVar42;
  uVar44 = CONCAT44(DAT_182671e48,DAT_182671e48);
  puVar2 = (undefined8 *)(DAT_182671c40 + -0x2e8);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar29;
  uVar15 = DAT_182671cf4;
  lVar10 = DAT_182671c40;
  *puVar7 = *(ulonglong *)*puVar2 ^ uVar44;
  uVar37 = CONCAT44(uVar15,uVar15);
  *puVar3 = (*(ulonglong *)(lVar10 - ((ulonglong)uVar16 ^ 0x85306c38)) >> 0x20 ^ uVar24) >> 0x1a ^
            uVar37;
  uVar24 = (uVar40 ^ uVar29) << (((byte)uVar13 ^ 6) & 0x3f);
  *puVar8 = uVar24 ^ CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar47 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar24 = *puVar30 ^ uVar37 | uVar24;
  *puVar6 = uVar24 ^ uVar47;
  uVar16 = DAT_182671c88;
  uVar40 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar29 = (ulonglong)DAT_182671c88;
  *puVar26 = (uVar34 ^ uVar42) - uVar24 ^ uVar40;
  uVar34 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(lVar10 - (uVar29 ^ 0x85306d88)) =
       uVar34 ^ uVar28 ^ uVar32 ^ uVar45 ^ *(ulonglong *)(lVar10 + -0x110);
  uVar13 = DAT_182671c64;
  uVar29 = CONCAT44(DAT_182671e98,DAT_182671e98);
  uVar39 = (ulonglong)DAT_182671c64;
  *puVar7 = (*puVar5 ^ uVar34) >> (((byte)DAT_182671c64 ^ 0x56) & 0x3f) ^ uVar29;
  puVar27 = (ulonglong *)(lVar10 - ((ulonglong)DAT_182671c68 ^ 0x94da5d88));
  uVar34 = (*puVar27 ^ uVar34) << (((byte)uVar16 ^ 0x2a) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar34 ^ CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar15 = DAT_182671d48;
  uVar24 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *puVar30 = (uVar34 | *puVar25 ^ uVar29) ^ uVar24;
  lVar10 = DAT_182671c40;
  uVar32 = CONCAT44(uVar15,uVar15);
  *puVar43 = (uVar28 ^ *puVar4) - (*(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x67405919)) ^ uVar24) ^
             uVar32;
  uVar12 = DAT_182671c48;
  bVar20 = (byte)DAT_182671c48;
  uVar29 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *puVar1 = *(ulonglong *)(lVar10 - ((ulonglong)DAT_182671c48 ^ 0x1a0ab228)) ^ uVar29 ^ uVar24 ^
            uVar40 ^ *puVar26;
  puVar25 = (ulonglong *)(lVar10 - (uVar39 ^ 0x5b316fc8));
  uVar34 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0x85306110)) =
       (uVar29 ^ *puVar25) >> ((bVar20 ^ 0x2e) & 0x3f) ^ uVar34;
  *puVar5 = (uVar29 ^ *puVar1) << 0x12 ^ uVar37;
  lVar10 = DAT_182671c40;
  uVar42 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0x1a0abda8)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x5b316650)) ^ uVar34 |
       *puVar27 ^ uVar37) ^ uVar42;
  uVar29 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar24 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(lVar10 + -0xc38) = (uVar40 ^ *puVar26) - (*puVar7 ^ uVar42) ^ uVar29;
  *(ulonglong *)(lVar10 - ((ulonglong)DAT_182671c90 ^ 0x6de3b3b3)) =
       *puVar6 ^ uVar24 ^ uVar32 ^ *puVar8 ^ uVar47;
  uVar34 = (uVar24 ^ *puVar4) >> (((byte)uVar22 ^ 0xc) & 0x3f);
  *puVar3 = uVar34 ^ CONCAT44(DAT_182671dec,DAT_182671dec);
  *puVar1 = (CONCAT44(uVar14,uVar13) ^ 0xa98d7a33a77d1d66) + 0xaf2addd6da870cc5;
  uVar15 = DAT_182671dcc;
  puVar30 = (ulonglong *)(lVar10 - ((ulonglong)DAT_182671c88 ^ 0x85306bd8));
  uVar40 = (uVar24 ^ *puVar30) << 0x34;
  *(ulonglong *)(lVar10 + -0x110) = uVar40 ^ CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar19 = DAT_182671e40;
  uVar24 = (ulonglong)DAT_182671e40;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar45 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *puVar27 = (uVar40 | uVar34) ^ uVar37;
  uVar39 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar34 = *puVar5;
  *puVar26 = (uVar32 ^ *puVar8) - (*puVar5 ^ uVar37) ^ uVar39;
  lVar10 = DAT_182671c40;
  uVar34 = uVar34 ^ uVar45 ^ uVar37 ^ uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0xc38);
  uVar32 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *puVar6 = uVar34;
  bVar20 = (byte)DAT_182671c88;
  *puVar25 = ((ulonglong)(uVar19 >> 0x19) | uVar24 << 7) ^ uVar34 >> 0x19 ^ uVar32;
  *(int *)(lVar10 + -0x784) = *(int *)(lVar10 + -0x76c) + 0x5e5c9f99;
  uVar24 = CONCAT44(DAT_182671f04,DAT_182671f04);
  *puVar21 = (*puVar6 ^ uVar45) << ((bVar20 ^ 0x27) & 0x3f) ^ uVar24;
  lVar10 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar34 = (uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) -
           (CONCAT44(uVar22,uVar13) ^ 0xed498b89aa6565b6);
  uVar24 = uVar24 ^ *puVar30 | uVar32 ^ *puVar1;
  *puVar3 = uVar24 ^ uVar37;
  *(ulonglong *)(lVar10 + -0x110) = uVar34 ^ CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar15 = DAT_182671f44;
  *puVar8 = uVar24 | CONCAT44(uVar22,uVar31) ^ 0x517b844a12af4129;
  uVar46 = CONCAT44(uVar15,uVar15);
  *puVar5 = uVar34 - uVar24 ^ uVar46;
  *puVar4 = **(ulonglong **)(lVar10 + -0x610) ^ uVar44;
  uVar32 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *puVar23 = uVar24 - (CONCAT44(uVar22,uVar31) ^ 0xc19f595605b3d22b) ^ uVar32;
  *(int *)(lVar10 + -0xc70) = *(int *)(lVar10 + -0x94) * *(int *)(lVar10 + -0x94);
  uVar13 = DAT_182671c54;
  uVar24 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar42 = *(ulonglong *)(lVar10 - ((ulonglong)DAT_182671c48 ^ 0x1a0abc90)) ^ *puVar7 ^ uVar24 ^
           uVar39 ^ uVar42;
  uVar29 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar10 + -0xc38) = uVar42;
  uVar12 = DAT_182671c58;
  *puVar8 = (uVar42 ^ uVar24) >> (((byte)uVar13 ^ 0x7a) & 0x3f) ^ uVar29;
  uVar22 = DAT_182671c5c;
  lVar10 = DAT_182671c40;
  uVar40 = (ulonglong)DAT_182671c5c;
  uVar34 = CONCAT44(DAT_182671d88,DAT_182671d88);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0x7dffb8eb)) =
       (uVar24 ^ uVar42) << (((byte)DAT_182671c7c ^ 0xf0) & 0x3f) ^ uVar34;
  uVar45 = uVar29 ^ *puVar8 | uVar34 ^ *(ulonglong *)(lVar10 + -0x110);
  uVar42 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *puVar4 = uVar45 ^ uVar42;
  uVar12 = DAT_182671c88;
  lVar11 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar34 = (*(ulonglong *)(lVar10 - (uVar33 ^ 0x674057a1)) ^ uVar39) -
           (CONCAT44(uVar22,DAT_182671c88) ^ 0xbf946b8f3bc1308d);
  uVar24 = uVar34 ^ uVar29;
  *puVar7 = uVar24;
  *(ulonglong *)(lVar11 + -0xc38) = *puVar3 ^ uVar24 ^ uVar29 ^ uVar37;
  uVar37 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *puVar8 = uVar34 - (*puVar36 ^ uVar42) ^ uVar37;
  uVar16 = DAT_182671d80;
  uVar24 = (CONCAT44(DAT_182671c4c,uVar12) ^ 0x65648f8a8e1ed202) + uVar45 ^ uVar41;
  uVar34 = *puVar5;
  uVar29 = (ulonglong)DAT_182671d80;
  *(ulonglong *)(lVar11 + -0x110) = uVar24;
  uVar41 = uVar34 ^ CONCAT44(uVar16,uVar16) ^ uVar24 ^ uVar46 ^ uVar41;
  *puVar26 = uVar41;
  uVar39 = (CONCAT44(uVar16,uVar16) ^ uVar41) << (((byte)uVar22 ^ 0x3f) & 0x3f);
  uVar24 = CONCAT44(DAT_182671d14,DAT_182671d14);
  uVar29 = (uVar29 << 0x1b | (ulonglong)(uVar16 >> 5)) ^ uVar41 >> 5;
  *puVar3 = uVar29 ^ uVar24;
  uVar15 = DAT_182671c6c;
  uVar45 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar39 ^ uVar45;
  lVar10 = DAT_182671c40;
  *puVar7 = (CONCAT44(uVar14,uVar15) ^ 0xc980b025f92bf8fc) <<
            ((*(byte *)puVar6 ^ (byte)uVar19) & 0x3f);
  uVar12 = DAT_182671c90;
  uVar47 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  uVar34 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar10 - ((ulonglong)DAT_182671c90 ^ 0x6de3b97b)) = (uVar39 | uVar29) ^ uVar47;
  uVar22 = DAT_182671c64 ^ 0x350fa910;
  *puVar26 = (*(ulonglong *)(lVar10 - (uVar34 ^ 0x7dffb473)) ^ uVar46) -
             (uVar47 ^ *(ulonglong *)(lVar10 + -0x110)) ^ uVar28;
  *puVar6 = (CONCAT44(uVar12,uVar15) ^ 0xdbb3efaba005e981) - (uVar42 ^ *puVar4);
  bVar20 = (byte)DAT_182671c94;
  *puVar7 = uVar45 ^ uVar37 ^ uVar32 ^ *puVar8 ^ *puVar1;
  uVar15 = DAT_182671e90;
  uVar12 = DAT_182671c48;
  *(uint *)(lVar10 + -0x9dc) = uVar22 >> ((bVar20 ^ 0x99) & 0x1f);
  uVar16 = DAT_182671c8c;
  uVar22 = DAT_182671c60;
  lVar10 = DAT_182671c40;
  uVar41 = CONCAT44(uVar15,uVar15);
  uVar19 = DAT_182671c8c ^ 0xf095306a;
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       (*puVar7 ^ uVar45) >> (((byte)uVar12 ^ 0x25) & 0x3f) ^ uVar41;
  uVar12 = DAT_182671c50;
  *(uint *)(lVar10 - (uVar40 ^ 0x8002e018)) = (uVar13 ^ 0x7a49e63b) & uVar19;
  lVar10 = DAT_182671c40;
  uVar39 = (ulonglong)DAT_182671c70;
  uVar29 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *puVar27 = (*puVar7 ^ uVar45) << (((byte)DAT_182671c80 ^ 0x31) & 0x3f) ^ uVar29;
  uVar34 = *(ulonglong *)(lVar10 + -0xc38);
  *puVar4 = (*puVar3 ^ uVar24) << 0x20;
  uVar24 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar10 - (uVar33 ^ 0x674053b9)) = (uVar29 ^ *puVar5 | uVar41 ^ uVar34) ^ uVar24;
  uVar33 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *puVar7 = (*(ulonglong *)(lVar10 - ((ulonglong)uVar13 ^ 0x40673b23)) ^ uVar37) -
            (*(ulonglong *)(lVar10 - (uVar39 ^ 0x84c4a004)) ^ uVar24) ^ uVar33;
  uVar13 = DAT_182671c7c;
  uVar32 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar45 = (ulonglong)DAT_182671c7c;
  uVar24 = *(ulonglong *)(lVar10 - ((ulonglong)DAT_182671c90 ^ 0x6de3b0e3)) ^ uVar32 ^ uVar24 ^
           uVar28 ^ *puVar26;
  *puVar3 = uVar24;
  uVar29 = (*(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x8c58e8c7)) ^ uVar32) >>
           (((byte)uVar13 ^ 0xf8) & 0x3f);
  bVar20 = (byte)DAT_182671c4c;
  *puVar4 = uVar29 ^ uVar38;
  uVar34 = (ulonglong)DAT_182671c78;
  uVar41 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *puVar5 = (uVar32 ^ uVar24) << ((bVar20 ^ 0xd6) & 0x3f) ^ uVar41;
  lVar10 = DAT_182671c40;
  uVar29 = *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xb7d30576)) ^ uVar41 | uVar29;
  uVar40 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar29 ^ CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar10 - (uVar39 ^ 0x84c4a2f4)) =
       (*(ulonglong *)(lVar10 - (uVar45 ^ 0x8c58e67f)) ^ uVar28) - uVar29 ^ uVar40;
  uVar24 = (ulonglong)DAT_182671e2c;
  uVar34 = *puVar7;
  uVar32 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(uint *)(lVar10 + -0x27c) = (uVar22 ^ 0xe4f5ae65) + (uVar12 ^ 0xc773755e);
  *puVar1 = uVar34 ^ uVar32 ^ uVar33 ^ uVar47 ^ *(ulonglong *)(lVar10 + -0x110);
  uVar34 = *puVar1;
  *puVar3 = CONCAT44(uVar16,uVar12) ^ 0xea57e28585450671;
  uVar41 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *puVar4 = (*puVar1 >> 0x20 ^ uVar24) >> 8 ^ uVar41;
  *puVar5 = (uVar40 ^ *puVar8) >> ((byte)*puVar6 & 0x3f);
  uVar29 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *puVar35 = (uVar32 ^ uVar34) << 0x18 ^ uVar29;
  lVar10 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c58;
  uVar41 = uVar29 ^ *puVar26 | uVar41 ^ *puVar4;
  uVar24 = uVar41 ^ uVar42;
  uVar32 = uVar40 ^ uVar42 ^ *puVar8 ^ uVar28 ^ uVar24;
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar24;
  uVar34 = *(ulonglong *)(lVar10 - (uVar34 ^ 0x7dffb56b));
  *puVar5 = uVar32;
  uVar24 = *puVar7;
  *puVar3 = uVar34 ^ uVar29 ^ 0x99c8f892a3fd9288;
  uVar17 = DAT_182671d40;
  uVar29 = (uVar32 >> 0x20 ^ (ulonglong)DAT_182671f98) >> 0x14;
  *puVar6 = (uVar24 ^ uVar33) - uVar41 ^ uVar44;
  *puVar1 = uVar29 ^ uVar37;
  uVar15 = DAT_182671ca8;
  uVar34 = (*puVar27 ^ uVar28) << (((byte)(uVar14 >> 0x10) ^ 0x3d) & 0x3f);
  *puVar4 = uVar34 ^ CONCAT44(uVar17,uVar17);
  *puVar26 = (uVar29 | uVar34) ^ CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar9 ^ uVar31;
  return;
}



############ FUN_ 18102b110 size=4446 ############

void FUN_18102b110(void)

{
  longlong *plVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  undefined8 uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  longlong *plVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  longlong *plVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  uint uVar51;
  ulonglong uVar52;
  byte local_78;
  
  uVar14 = DAT_182671c88;
  uVar13 = DAT_182671c84;
  uVar10 = DAT_182671c64;
  uVar8 = DAT_182671c54;
  lVar4 = DAT_182671c40;
  uVar48 = (ulonglong)DAT_182671c64;
  uVar20 = (ulonglong)DAT_182671c88;
  uVar44 = (ulonglong)DAT_182671c54;
  uVar45 = (ulonglong)DAT_182671c84;
  uVar31 = DAT_182671c54 & DAT_182671c84;
  uVar51 = DAT_182671e18 & DAT_182671cd8;
  DAT_182671c8c = DAT_182671c88 * DAT_182671c64;
  uVar27 = *(uint *)(&DAT_182613218 + DAT_18267212c) ^ DAT_182671c64;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_18267212c) ^ DAT_182671c8c;
  uVar18 = (ulonglong)DAT_182671c88;
  uVar52 = (ulonglong)uVar31;
  uVar19 = (ulonglong)DAT_182671c54;
  DAT_182671c48 = uVar31;
  *(longlong *)(DAT_182671c40 + -0xa38) = DAT_182671c38 + -0xa8;
  *(longlong *)(lVar4 + -0x20) = DAT_182671c38 + -200;
  DAT_182671c38 = DAT_182671c38 + -0xe8;
  *(longlong *)(lVar4 + -0x6b8) = DAT_182671c38;
  *(ulonglong *)(lVar4 + -0x760) =
       (CONCAT44(uVar14,uVar31) ^ 0xe94eb26e0ef29488) + *(longlong *)(lVar4 + -0x2b0);
  uVar5 = **(undefined8 **)(lVar4 + -0xd50);
  uVar32 = DAT_182671e58 ^ (uint)uVar5;
  *(undefined8 *)(lVar4 + -0xb08) = 0xf767fcd3d7efcfdf;
  *(undefined8 *)(lVar4 + -0xa60) = uVar5;
  *(ulonglong *)(lVar4 - (uVar52 ^ 0xca8085e0)) =
       *(longlong *)(lVar4 + -0xa38) + 0x90 + (CONCAT44(uVar13,uVar8) ^ 0xcee9f1f8fa92806e) * 8;
  uVar21 = CONCAT44(DAT_182671e40,DAT_182671e40);
  uVar17 = uVar32 & 0xff;
  *(ulonglong *)(lVar4 + -0x828) =
       uVar21 ^ *(ulonglong *)(lVar4 + -0xb18) | uVar21 ^ *(ulonglong *)(lVar4 + -0x680);
  DAT_182671e58 = ((uVar32 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar33 = CONCAT44(DAT_182671e58,DAT_182671e58);
  **(ulonglong **)(lVar4 + -0x588) = uVar33 ^ *(ulonglong *)(lVar4 + -0xa60);
  uVar15 = DAT_182671c8c;
  puVar3 = (undefined8 *)
           (*(longlong *)(lVar4 - (uVar18 ^ 0x31160357)) +
           (CONCAT44(uVar10,uVar8) ^ 0x157ef57efa92806f) * 8);
  uVar18 = CONCAT44(DAT_182671c8c,uVar8);
  *(undefined8 **)(lVar4 + -0xb98) = puVar3;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar18 ^ CONCAT44(uVar13,uVar14) ^ 0xdf7b7207f3a1d885;
  *(undefined8 *)(lVar4 + -0x760) = *puVar3;
  uVar28 = DAT_182671e10 ^ *(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0xbeb99d12));
  *(longlong *)(lVar4 - (uVar19 ^ 0xfa928686)) = *(longlong *)(lVar4 + -0xa38) + 0x98;
  uVar32 = DAT_182671c74;
  uVar22 = (ulonglong)DAT_182671c74;
  uVar18 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar4 + -0xb08) =
       (CONCAT44(uVar13,uVar31) ^ 0x5ff83fdb9779547d) <<
       ((byte)*(undefined8 *)(lVar4 + -0x828) & 0x3f);
  uVar11 = DAT_182671c68;
  uVar34 = (ulonglong)DAT_182671c68;
  uVar46 = DAT_182671c68 * uVar32;
  **(ulonglong **)(lVar4 + -0x6e8) = *(ulonglong *)(lVar4 + -0x760) ^ uVar33;
  uVar5 = **(undefined8 **)(lVar4 + -0xd50);
  DAT_182671c6c = uVar46;
  *(undefined8 *)(lVar4 + -0x680) = uVar5;
  uVar39 = DAT_182671ca4 ^ (uint)uVar5;
  *(undefined8 *)(lVar4 - (uVar18 ^ 0xe4143be)) = **(undefined8 **)(lVar4 + -0xb98);
  lVar6 = DAT_182671c40;
  uVar43 = DAT_182671dc4 ^ *(uint *)(lVar4 + -0x2b0);
  puVar35 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0x363e48de));
  *(ulonglong *)(DAT_182671c40 + -0xb08) = *(ulonglong *)(DAT_182671c40 + -0x2b0) ^ *puVar35;
  lVar4 = DAT_182671c40;
  uVar47 = DAT_182671ef8 ^ *(uint *)(lVar6 - ((ulonglong)uVar46 ^ 0xd32c2c2c));
  uVar49 = CONCAT44(uVar32,uVar46) ^ 0xe41410ed32c2726;
  puVar25 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 + -0xa38) + 0x90 +
            ((CONCAT44(uVar46,uVar32) ^ 0xd32c27240e41410e) * 0x15 + uVar49) * 8);
  *(ulonglong **)(DAT_182671c40 + -0xd50) = puVar25;
  *puVar25 = *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x363e4556)) ^ uVar33;
  *(undefined8 *)(lVar4 + -0x828) = 0xbdf6dff33fee77f4;
  uVar17 = uVar39 & 0xff;
  DAT_182671ca4 = ((uVar39 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar23 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar40 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar17 = uVar43 & 0xff;
  uVar18 = uVar40 ^ uVar23 ^ *(ulonglong *)(lVar4 + -0x40);
  *(ulonglong *)(lVar4 + -0xb98) = uVar18;
  DAT_182671dc4 = ((uVar43 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar24 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar50 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *puVar35 = *(ulonglong *)(uVar18 ^ uVar40) ^ uVar50 ^ uVar24;
  lVar6 = DAT_182671c40;
  uVar17 = uVar28 & 0xff;
  DAT_182671e10 = ((uVar28 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  lVar4 = (CONCAT44(uVar32,uVar13) ^ 0xe41410ecee9f1f8) * 8;
  uVar36 = CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(DAT_182671c40 - (uVar48 ^ 0x157ef816)) =
       *(longlong *)(DAT_182671c40 + -0xa38) + 8 + lVar4 ^ uVar36;
  uVar17 = uVar47 & 0xff;
  *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar22 ^ 0xe414c66)) ^ uVar36) =
       uVar50 ^ uVar33 ^ *(ulonglong *)(lVar6 + -0x680);
  DAT_182671ef8 = ((uVar47 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar37 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  *(ulonglong *)(lVar6 + -0x2b0) =
       *(ulonglong *)(uVar40 ^ *(ulonglong *)(lVar6 + -0xb98)) ^ uVar37 ^ uVar24;
  uVar28 = DAT_182671cd8 & 0xff;
  *(ulonglong *)(*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c6c ^ 0xd32c2764)) ^ uVar23) =
       CONCAT44(uVar14,uVar32) ^ 0xbeb4a991c1b79610;
  uVar17 = DAT_182671c6c;
  DAT_182671cd8 = ((DAT_182671cd8 << 8 | uVar28) << 8 | uVar28) << 8 | uVar28;
  uVar19 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar28 = DAT_182671e18 & 0xff;
  DAT_182671e18 = ((DAT_182671e18 << 8 | uVar28) << 8 | uVar28) << 8 | uVar28;
  uVar41 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar18 = *(ulonglong *)(lVar6 + -0x2b0) ^ uVar41 ^ uVar37 ^ 0x1bd11bdaa9fc1a22;
  *(ulonglong *)(lVar6 + -0x7e8) = uVar18;
  uVar28 = uVar51 & 0xff;
  DAT_182671cbc = ((uVar51 << 8 | uVar28) << 8 | uVar28) << 8 | uVar28;
  uVar30 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar18 = uVar18 ^ uVar30 ^ uVar41;
  *(ulonglong *)(lVar6 + -0x2b0) = uVar18;
  lVar6 = DAT_182671c40;
  uVar29 = CONCAT44(uVar10,DAT_182671c8c);
  *(ulonglong *)(DAT_182671c40 + -0x828) =
       (uVar29 ^ 0xcbf69dcd8853d85a) >> (((byte)uVar18 ^ (byte)uVar51) & 0x3f);
  puVar25 = (ulonglong *)((uVar23 ^ *(ulonglong *)(lVar6 + -0x40)) + 8);
  *(ulonglong *)(lVar6 + -0xb98) = (ulonglong)puVar25 ^ uVar50;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (CONCAT44(uVar11,uVar17) ^ 0x954395de93474176) -
       (CONCAT44(uVar32,uVar32) ^ 0x7bf232309cef9d37);
  *(ulonglong *)(lVar6 + -0x828) = *puVar25 ^ uVar24 ^ uVar40;
  uVar17 = DAT_182671c6c;
  uVar28 = DAT_182671f34 >> 0x10 & 0xff;
  DAT_182671dd8 = (((DAT_182671f34 >> 0x10) << 8 | uVar28) << 8 | uVar28) << 8 | uVar28;
  uVar38 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar6 - (uVar44 ^ 0xfa928a56)) +
            ((CONCAT44(uVar15,uVar14) ^ 0xbeb99a7231160e06) + 1) * 8);
  *(ulonglong *)(lVar6 + -0x138) = (ulonglong)puVar25 ^ uVar38;
  *puVar25 = *(ulonglong *)(lVar6 - (uVar45 ^ 0xcee9f9d0)) ^ uVar40 ^ uVar33;
  uVar9 = DAT_182671d40;
  uVar28 = DAT_182671f34 & 0xff;
  DAT_182671f34 = ((DAT_182671f34 << 8 | uVar28) << 8 | uVar28) << 8 | uVar28;
  uVar45 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0xe4146e6)) =
       *(ulonglong *)(uVar50 ^ *(ulonglong *)(lVar6 + -0xb98)) ^ uVar45 ^ uVar24;
  *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar6 + -0x610)) =
       CONCAT44(uVar31,uVar17) ^ 0xb310b0137d454ecc;
  lVar7 = DAT_182671c40;
  uVar18 = *(ulonglong *)(lVar6 - (uVar34 ^ 0x363e4cee)) ^ *(ulonglong *)(lVar6 + -0x7e8) ^ uVar45 ^
           uVar30 ^ uVar33;
  *(ulonglong *)(lVar6 + -0xb18) = uVar18;
  uVar18 = uVar41 ^ uVar33 ^ uVar18;
  *(ulonglong *)(lVar7 + -0x7e8) = uVar18;
  *(ulonglong *)(lVar7 + -0x510) = uVar18 ^ uVar41 ^ uVar50;
  lVar6 = DAT_182671c40;
  puVar25 = (ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x363e477e));
  *(ulonglong *)(DAT_182671c40 + -0x610) =
       (uVar23 ^ *(ulonglong *)(lVar7 + -0x40)) + uVar49 * 8 ^ uVar41;
  *(ulonglong *)(lVar6 + -0x7e8) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c8c ^ 0xbeb9916a)) ^ uVar33) <<
       (((byte)DAT_182671c6c ^ 0x3c) & 0x3f);
  local_78 = (byte)uVar8;
  *(ulonglong *)(lVar6 + -0x7e8) =
       *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar20 ^ 0x31160817)) ^ uVar41) ^ uVar19 ^ uVar24;
  *puVar25 = (CONCAT44(uVar32,uVar32) ^ 0x897ebfba56f82e4) >> ((local_78 ^ 0x42) & 0x3f);
  plVar42 = (longlong *)(lVar6 - (uVar52 ^ 0xca808a50));
  *(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x3116059f)) =
       *plVar42 + 8 +
       ((uVar29 ^ 0x157ef57ebeb99a72) * 0x15 + (CONCAT44(uVar14,uVar8) ^ 0x31160e07fa92806c)) * 8 ^
       uVar41;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(uVar41 ^ *(ulonglong *)(DAT_182671c40 + -0xb98)) =
       *(ulonglong *)(DAT_182671c40 + -0x7e8) ^ uVar19 ^ uVar33;
  *puVar25 = 0xafd8cae13;
  *(ulonglong *)(lVar6 + -0x920) =
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0x610) ^ uVar41) ^ uVar30 ^ uVar24;
  uVar17 = DAT_182671c7c;
  uVar22 = (ulonglong)DAT_182671c7c;
  uVar18 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c94 ^ 0xfffef56e)) ^ uVar21) =
       CONCAT44(uVar31,uVar32) ^ 0x38ea2fe5931c3055;
  puVar25 = (ulonglong *)(lVar6 - (uVar18 ^ 0xbeb99352));
  *(ulonglong *)(lVar6 + -0x5e8) = (uVar30 ^ *puVar25) + (uVar29 ^ 0x98a785f17421b4ec);
  uVar32 = DAT_182671c60;
  uVar21 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar6 + -0xa08) =
       uVar30 ^ uVar19 ^ uVar50 ^ *(ulonglong *)(lVar6 + -0x920) ^ *(ulonglong *)(lVar6 + -0x510);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0x31160b17)) =
       *(ulonglong *)(lVar6 - (uVar44 ^ 0xfa928a66)) ^ uVar45 ^ uVar19;
  uVar18 = CONCAT44(uVar46,DAT_182671c50);
  *(ulonglong *)(lVar6 + -0x920) = *(ulonglong *)(lVar6 - (uVar21 ^ 0xa1a7a456)) ^ uVar45 ^ uVar36;
  *(ulonglong *)(lVar6 - (uVar52 ^ 0xca808078)) =
       (uVar23 ^ *(ulonglong *)(lVar6 + -0x40)) + (uVar18 ^ 0xd32c27244683e060) * 8 ^ uVar37;
  *(ulonglong *)(lVar6 + -0x510) =
       -0x19184c7c0b53174e - (CONCAT44(uVar13,uVar17) ^ 0xf43363d1900cc04d);
  uVar18 = *(ulonglong *)(*(ulonglong *)(lVar6 + -0x10) ^ uVar37) ^ uVar24 ^ uVar40;
  *(ulonglong *)(lVar6 + -0x510) = uVar18;
  uVar28 = DAT_182671c70;
  uVar9 = DAT_182671c58;
  uVar17 = DAT_182671c4c;
  lVar6 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671c70;
  uVar29 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 + -0x610) =
       *plVar42 + 8 +
       ((CONCAT44(uVar13,DAT_182671c70) ^ 0xcee9f1f8ff570788) * 0x15 +
       (CONCAT44(uVar14,DAT_182671c4c) ^ 0x31160e079e3feef4)) * 8 ^ uVar37;
  *(ulonglong *)(*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c6c ^ 0xd32c2134)) ^ uVar37) =
       uVar40 ^ uVar33 ^ uVar18;
  *(ulonglong *)(lVar6 + -0x380) =
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0x10) ^ uVar37) ^ uVar24 ^ uVar33;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(CONCAT44(DAT_182671e44,DAT_182671e44) ^ *(ulonglong *)(DAT_182671c40 + -0x650)) =
       CONCAT44(DAT_182671c90,uVar9) ^ 0xcdc7804baee269c8;
  *(ulonglong *)(lVar6 + -0xa50) =
       *(ulonglong *)(lVar6 + -0x380) ^ uVar19 ^ uVar36 ^ *(ulonglong *)(lVar6 + -0x920) ^ uVar33;
  uVar12 = DAT_182671c78;
  *puVar25 = *(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0xff570dd8)) ^ uVar38 ^ uVar19;
  uVar19 = uVar38 ^ uVar41 ^ *(ulonglong *)(lVar6 + -0x920);
  uVar18 = CONCAT44(uVar31,DAT_182671c8c);
  *(ulonglong *)(lVar6 + -0x380) = uVar19;
  *(ulonglong *)(lVar6 + -0xa50) = (uVar18 ^ 0x117d9fddac3d227b) + 0x3f98fffde5559981;
  uVar31 = DAT_182671c80;
  uVar23 = (ulonglong)DAT_182671c80;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar6 - (uVar48 ^ 0x157eff46)) + 8 +
            ((CONCAT44(uVar11,uVar12) ^ 0x363e4e5e410e0e41) * 0x15 +
            (CONCAT44(uVar14,uVar8) ^ 0x31160e07fa92806a)) * 8);
  *(ulonglong *)(lVar6 + -0x40) = (ulonglong)puVar25 ^ uVar40;
  *puVar25 = uVar19 ^ uVar41 ^ uVar33;
  *(ulonglong *)(lVar6 + -0x650) =
       *(longlong *)(lVar6 + -0x20) +
       ((CONCAT44(uVar8,uVar17) ^ 0xfa92806e9e3feef7) +
       (CONCAT44(uVar31,uVar12) ^ 0xfff7ffb7410e0e41) * 4) * 8;
  uVar18 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar6 + -0x20) = CONCAT44(uVar28,DAT_182671c90) ^ 0xce18b22668fa69f6;
  *(longlong *)(lVar6 + -0x10) = lVar4 + *(longlong *)(lVar6 - (uVar18 ^ 0x5e585801));
  uVar8 = DAT_182671c6c;
  uVar18 = (ulonglong)DAT_182671c6c;
  uVar24 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar6 + -0x6b8) = CONCAT44(DAT_182671c90,uVar14) ^ 0xb44f5c2da90535f7;
  plVar42 = (longlong *)(lVar6 + -0x418);
  *(longlong *)(lVar6 - (uVar18 ^ 0xd32c2de4)) = *plVar42;
  *plVar42 = *(longlong *)(lVar6 - (uVar21 ^ 0xff570e98));
  *(undefined8 *)(lVar6 + -0x910) = *(undefined8 *)(lVar6 + -0xac0);
  lVar7 = DAT_182671c40;
  *(undefined8 *)(DAT_182671c40 - (uVar22 ^ 0x156dd89c)) =
       *(undefined8 *)(lVar6 - ((ulonglong)uVar17 ^ 0x9e3feaef));
  *plVar42 = *(longlong *)(lVar7 + -0x10);
  lVar6 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671c8c;
  uVar19 = (ulonglong)DAT_182671c94;
  *(undefined8 *)(lVar7 - ((ulonglong)DAT_182671c8c ^ 0xbeb99dd2)) = *(undefined8 *)(lVar7 + -0x910)
  ;
  lVar4 = *plVar42;
  *(int *)(lVar7 + -0x76c) = *(int *)(lVar7 - (uVar29 ^ 0x9e3fe8b3)) + 0x49974284;
  plVar1 = (longlong *)(lVar7 + -0x2e8);
  *plVar1 = lVar4;
  plVar2 = (longlong *)(lVar7 + -0x7a0);
  plVar26 = (longlong *)(lVar7 - (uVar19 ^ 0xfffef166));
  *plVar26 = *plVar2;
  *plVar2 = *(longlong *)(DAT_182671c40 - ((ulonglong)uVar32 ^ 0xa1a7a55e)) +
            (CONCAT44(uVar31,DAT_182671c90) ^ 0xfff7ffb79e37eeb6) * 8;
  *(longlong *)(lVar6 - (uVar20 ^ 0x31160a1f)) = *plVar1 + 8;
  *plVar1 = *plVar42;
  lVar4 = *plVar2;
  *plVar42 = lVar4;
  *plVar2 = *(longlong *)(lVar6 - (uVar44 ^ 0xfa928286));
  *plVar1 = lVar4;
  *(ulonglong *)(lVar6 - (uVar23 ^ 0xfff7f5e7)) =
       (CONCAT44(uVar15,uVar9) ^ 0xb334414e0f161112) >> (((byte)uVar8 ^ 7) & 0x3f);
  DAT_182671e34 = DAT_182671ea4 * DAT_182671fa8;
  *plVar26 = *plVar1 + (CONCAT44(uVar28,uVar32) ^ 0xff570788a1a7a147) * 8;
  lVar4 = *plVar2 + (CONCAT44(DAT_182671c50,uVar13) ^ 0x4683e063cee9f1f9) * 8;
  *(longlong *)(lVar6 - (uVar18 ^ 0xbeb9989a)) = lVar4;
  *(longlong *)(lVar6 - (uVar24 ^ 0xd32c2084)) = lVar4;
  uVar8 = DAT_182671c60;
  *plVar1 = *plVar42;
  *(ulonglong *)(lVar6 + -0x110) =
       (CONCAT44(uVar17,uVar10) ^ 0xb5ca225894011d48) + 0x62104d5feb2bc657;
  *plVar42 = *(longlong *)(lVar6 - (uVar19 ^ 0xfffef2de));
  uVar17 = uVar8 & 3;
  if (uVar17 < 2) {
    DAT_182671c90 = DAT_182671c4c;
    if (uVar17 == 0) {
      DAT_182671c90 = uVar8;
    }
  }
  else {
    DAT_182671c90 = DAT_182671c8c;
    if (uVar17 < 3) {
      DAT_182671c90 = DAT_182671c6c;
    }
  }
  *plVar2 = *plVar1;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar27;
  return;
}



############ FUN_ 180fa3f70 size=3967 ############

void FUN_180fa3f70(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  ulonglong uVar9;
  uint *puVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint *puVar28;
  uint uVar29;
  uint uVar30;
  
  uVar24 = DAT_182671f18;
  uVar16 = DAT_182671f08;
  bVar14 = (byte)DAT_182671ecc;
  uVar17 = DAT_182671c88;
  uVar3 = DAT_182671c5c;
  uVar18 = DAT_182671c4c;
  uVar11 = DAT_182671c48;
  lVar1 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c5c;
  uVar21 = (ulonglong)DAT_182671c88;
  uVar30 = DAT_182671c4c & DAT_182671c88;
  uVar22 = (ulonglong)DAT_182671c48;
  uVar26 = (ulonglong)uVar30;
  uVar29 = DAT_182671c5c + DAT_182671c48;
  uVar6 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar30 ^ 0x1000008) + (longlong)DAT_182672280) ^
          DAT_182671c4c;
  uVar7 = *(uint *)(&DAT_182613210 + (uVar19 ^ 0x608d4e04) + (longlong)DAT_182672280) ^
          DAT_182671c88;
  uVar27 = (ulonglong)DAT_182671f18;
  uVar9 = (ulonglong)uVar29;
  uVar12 = (ulonglong)DAT_182671c4c;
  uVar13 = CONCAT44(uVar30,DAT_182671c4c);
  uVar23 = (*(uint *)(DAT_182671c40 - ((ulonglong)uVar29 ^ 0x608d4bc7)) ^ DAT_182671dd4) +
           (DAT_182671da0 ^ *(uint *)(DAT_182671c40 + -0x94c)) ^ DAT_182671de0;
  DAT_182671c58 = uVar29;
  DAT_182671c68 = uVar30;
  *(uint *)(DAT_182671c40 + -0x54) =
       *(uint *)(DAT_182671c40 + -0x76c) ^ DAT_182671ec0 ^ DAT_182671ef0;
  puVar28 = (uint *)(lVar1 - (uVar22 ^ 0xfffff51b));
  *(uint *)(lVar1 + -0x684) = uVar23;
  uVar23 = uVar23 ^ DAT_182671f04 ^ DAT_182671de0;
  *(uint *)(lVar1 + -0x670) = uVar23;
  *puVar28 = uVar23 ^ DAT_182671f40 ^ DAT_182671f04;
  uVar25 = (ulonglong)DAT_182671f84;
  *(uint *)(lVar1 + -0x9dc) = *(uint *)(lVar1 + -0x54) ^ DAT_182671cd0 ^ DAT_182671ec0;
  pbVar20 = (byte *)((uVar13 ^ 0x100000001000000) * 0x20 + 0x1f +
                    *(longlong *)(lVar1 - ((ulonglong)uVar30 ^ 0x10009a8)));
  *(ulonglong *)(lVar1 + -0xaa0) = (ulonglong)pbVar20 ^ uVar25;
  *(byte *)(lVar1 + -0x181) = *pbVar20 ^ bVar14 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar1 + -0x550) ^ uVar27) = (byte)uVar11 ^ 0xf0;
  *(uint *)(lVar1 + -0x27c) = (bVar14 ^ *(byte *)(lVar1 + -0x181)) ^ uVar16;
  lVar1 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x6c0) =
       (*(uint *)(DAT_182671c40 + -0x9dc) ^ DAT_182671cd0) + (uVar29 ^ 0xfccf5c0d) ^ DAT_182671d88;
  uVar23 = DAT_182671e2c;
  uVar13 = CONCAT44(DAT_182671f60,DAT_182671f60) ^ *(ulonglong *)(lVar1 + -0xb18);
  uVar25 = (ulonglong)DAT_182671e2c;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0xfffff3c7)) = uVar13 << ((byte)uVar13 & 0x3f);
  uVar15 = *(uint *)(lVar1 + -0x6c0) ^ DAT_182671d88;
  uVar8 = (*(uint *)(lVar1 + -0x27c) ^ uVar16) << 0x11 ^ DAT_182671eac;
  *(uint *)(lVar1 + -0x58c) = uVar8;
  *(uint *)(lVar1 - (uVar12 ^ 0x1000634)) = uVar15 - (uVar8 ^ DAT_182671eac) ^ uVar23;
  puVar10 = (uint *)(DAT_182671c40 - (uVar21 ^ 0x100066c));
  uVar8 = (*(uint *)(lVar1 - (uVar19 ^ 0x608d44f0)) ^ DAT_182671f40) *
          (*(uint *)(DAT_182671c40 + -0x634) ^ uVar23) ^ DAT_182671e08;
  *(uint *)(DAT_182671c40 + -0x94) = uVar8;
  lVar1 = DAT_182671c40;
  uVar8 = uVar8 ^ DAT_182671e08;
  uVar13 = *(ulonglong *)(DAT_182671c40 + -0x170);
  uVar16 = (*puVar10 ^ uVar16) * 0x1f ^ DAT_182671dc0;
  *(uint *)(DAT_182671c40 + -0x61c) = uVar16;
  uVar23 = DAT_182671f58;
  *(uint *)(lVar1 + -0x4ac) = (uVar16 ^ DAT_182671dc0) + uVar8 ^ DAT_182671f58;
  *(byte *)(lVar1 + -0x341) = *(byte *)(uVar13 ^ uVar25) ^ (byte)DAT_182671e0c;
  lVar2 = DAT_182671c40;
  uVar15 = (*(uint *)(lVar1 - (uVar22 ^ 0xfffffb53)) ^ uVar23) << (((byte)uVar17 ^ 0x1d) & 0x1f) ^
           DAT_182671d78;
  *(uint *)(DAT_182671c40 + -0x1c8) = uVar15;
  uVar4 = DAT_182671f24;
  uVar16 = (*(uint *)(lVar2 - (uVar9 ^ 0x608d4abf)) ^ uVar23) >> (((byte)DAT_182671c5c ^ 7) & 0x1f);
  uVar8 = uVar16 ^ DAT_182671ed4;
  uVar23 = *(uint *)(lVar2 + -0xae4) ^ DAT_182671f40;
  uVar15 = (uVar15 ^ DAT_182671d78 | uVar16) ^ DAT_182671f1c;
  *(ulonglong *)(lVar2 + -0xa78) =
       CONCAT44(uVar30,uVar30) ^ 0x634966f749a31a24 | *(ulonglong *)(lVar2 + -0x760);
  uVar25 = (ulonglong)DAT_182671fb0;
  uVar23 = uVar23 + (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671ca4;
  *(uint *)(lVar2 + -0x76c) = uVar23;
  *(uint *)(lVar2 + -0x94c) = uVar8;
  uVar16 = DAT_182671d38 ^ DAT_182671ca4;
  *(uint *)(lVar2 + -0x684) = uVar15;
  *(uint *)(lVar2 - (uVar12 ^ 0x1000670)) = uVar16 ^ uVar23;
  *(uint *)(lVar2 + -0x54) = *(uint *)(lVar2 + -0x684) ^ DAT_182671e18 ^ DAT_182671f1c;
  *(uint *)(lVar2 + -0x9dc) = *(uint *)(lVar2 + -0x670) ^ DAT_182671d38 ^ uVar24;
  *(longlong *)(lVar2 - ((ulonglong)uVar11 ^ 0xfffff5f7)) =
       *(longlong *)(lVar2 - (uVar12 ^ 0x1000628)) << 0x3f;
  uVar23 = DAT_182671e34;
  *(uint *)(lVar2 + -0x6c0) =
       *(uint *)(lVar2 - (uVar12 ^ 0x1000054)) ^ DAT_182671f00 ^ DAT_182671e18;
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar21 ^ 0x1000f88)) ^ CONCAT44(uVar23,uVar23)) ^
       CONCAT44(uVar4,uVar4);
  bVar14 = (byte)DAT_182671e60;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x10000f8)) =
       *(longlong *)(DAT_182671c40 - (uVar9 ^ 0x608d47bb)) +
       (CONCAT44(uVar30,uVar11) ^ 0x1000000ffffffff) * 0x20 +
       (CONCAT44(uVar3,uVar18) ^ 0x608d4e140100000a) ^ uVar25;
  lVar1 = DAT_182671c40;
  uVar13 = (ulonglong)DAT_182671f50;
  *(byte *)(DAT_182671c40 + -0xa13) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x4e8) ^ uVar25) ^ bVar14 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar1 + -0xd18) ^ uVar13) = (byte)uVar29 ^ 0xb7;
  uVar18 = DAT_182671d8c;
  *(ulonglong *)(lVar1 + -0xf0) = (CONCAT44(uVar3,uVar17) ^ 0xff9901760dc8d73b) << 8;
  uVar16 = (uint)(*(byte *)(lVar1 - (uVar12 ^ 0x1000a13)) ^ bVar14);
  uVar13 = *(ulonglong *)(lVar1 + -0xc18) ^ *(ulonglong *)(lVar1 + -0xa50);
  *(uint *)(lVar1 + -0x58c) = uVar16 ^ uVar18;
  uVar23 = (*(uint *)(lVar1 - (uVar9 ^ 0x608d48d3)) ^ DAT_182671f00) + (uVar29 ^ 0xfccf5c0d) ^
           DAT_182671e80;
  *(uint *)(lVar1 + -0x27c) = uVar16 << (((byte)uVar11 ^ 0xee) & 0x1f) ^ DAT_182671ca0;
  *(ulonglong *)(lVar1 + -0x228) = uVar13;
  *(uint *)(lVar1 + -0x634) = uVar23;
  *(ulonglong *)(lVar1 - (uVar9 ^ 0x608d4473)) = uVar13 ^ 0xfe959b11e16193f5;
  uVar11 = (*(uint *)(lVar1 + -0x634) ^ DAT_182671e80) - (*(uint *)(lVar1 + -0x27c) ^ DAT_182671ca0)
           ^ DAT_182671e84;
  *(uint *)(lVar1 + -0x94) = uVar11;
  *(uint *)(lVar1 + -0x61c) =
       (uVar11 ^ DAT_182671e84) * (*(uint *)(lVar1 + -0x9dc) ^ uVar24) ^ DAT_182671e10;
  *(ulonglong *)(lVar1 - (uVar9 ^ 0x608d4bfb)) =
       *(ulonglong *)(lVar1 - (uVar21 ^ 0x1000238)) >> (((byte)uVar3 ^ 4) & 0x3f);
  *(uint *)(lVar1 - (uVar19 ^ 0x608d4ab8)) =
       (*(uint *)(lVar1 - (uVar21 ^ 0x100019c)) ^ uVar18) * (uVar29 ^ 0x608d4e19) ^ DAT_182671ce0;
  *(ulonglong *)(lVar1 + -0x960) =
       (CONCAT44(uVar30,uVar17) ^ 0x3df54ddfec86e4fb) >>
       ((byte)*(undefined8 *)(lVar1 - (uVar22 ^ 0xfffff59f)) & 0x3f);
  *(uint *)(lVar1 + -0x1c8) =
       (*(uint *)(lVar1 - (uVar19 ^ 0x608d4808)) ^ DAT_182671e10) +
       (*(uint *)(lVar1 + -0x4ac) ^ DAT_182671ce0) ^ uVar24;
  *(longlong *)(lVar1 - (uVar12 ^ 0x1000380)) =
       *(longlong *)(lVar1 + -0xa78) << ((byte)*(longlong *)(lVar1 + -0xa78) & 0x3f);
  *(uint *)(lVar1 - (uVar9 ^ 0x608d475f)) =
       (*(uint *)(lVar1 + -0x1c8) ^ uVar24) << (((byte)uVar30 ^ 0xd) & 0x1f) ^ DAT_182671f4c;
  uVar23 = DAT_182671c9c;
  uVar16 = DAT_182671c84;
  uVar18 = DAT_182671c60;
  uVar11 = DAT_182671c50;
  uVar13 = (ulonglong)DAT_182671c84;
  *(uint *)(lVar1 + -0xae4) =
       (*(uint *)(lVar1 - (uVar12 ^ 0x10001c8)) ^ uVar24) >> (((byte)DAT_182671c60 ^ 0xf8) & 0x1f) ^
       DAT_182671c9c;
  uVar17 = DAT_182671c80;
  uVar4 = DAT_182671c70;
  uVar25 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar1 - ((ulonglong)uVar11 ^ 0x618d4978)) =
       (*(uint *)(lVar1 - (uVar13 ^ 0x87c7e5bc)) ^ DAT_182671f4c | uVar23 ^ *puVar28) ^
       DAT_182671edc;
  *(ulonglong *)(lVar1 + -0x888) =
       CONCAT44(uVar17,uVar29) ^ 0xcfcda0dbaaabce42 | *(ulonglong *)(lVar1 + -0xd88);
  *(uint *)(lVar1 + -0x684) =
       (*(uint *)(lVar1 - (uVar12 ^ 0x10005d4)) ^ DAT_182671dd4) +
       (*(uint *)(lVar1 + -0x9dc) ^ uVar24) ^ DAT_182671e94;
  *(longlong *)(lVar1 - (uVar21 ^ 0x10003d0)) =
       *(longlong *)(lVar1 + -0x5e8) << (((byte)uVar3 ^ 0x1f) & 0x3f);
  *(uint *)(lVar1 - (uVar26 ^ 0x1000670)) =
       *(uint *)(lVar1 + -0x684) ^ DAT_182671ea8 ^ DAT_182671e94;
  *(ulonglong *)(lVar1 + -0x680) = 0x52be4d2d190dbee6 >> (((byte)uVar4 ^ 0x69) & 0x3f);
  bVar14 = (byte)DAT_182671ea0;
  uVar11 = DAT_182671e8c;
  uVar15 = DAT_182671dbc;
  uVar23 = DAT_182671c7c;
  uVar3 = DAT_182671c6c;
  *(uint *)(lVar1 + -0x54) = *(uint *)(lVar1 + -0x76c) ^ DAT_182671e6c ^ DAT_182671edc;
  *(uint *)(lVar1 + -0x6c0) = *(uint *)(lVar1 + -0x670) ^ uVar15 ^ DAT_182671ea8;
  uVar24 = DAT_182671c94;
  *(uint *)(lVar1 - (uVar26 ^ 0x1000634)) =
       *(uint *)(lVar1 - (uVar25 ^ 0x618d4e40)) ^ DAT_182671cdc ^ DAT_182671e6c;
  *(longlong *)(lVar1 + -0x3d8) =
       0x12ce7ece8af86d1c << ((byte)*(undefined8 *)(lVar1 + -0xa78) & 0x3f);
  pbVar20 = (byte *)((CONCAT44(uVar4,uVar23) ^ 0x5f97b878ff3c539a) + *(longlong *)(lVar1 + -0x9a8));
  *(ulonglong *)(lVar1 + -0x9e8) = (ulonglong)pbVar20 ^ (ulonglong)DAT_182671e38;
  *(byte *)(lVar1 - (uVar21 ^ 0x10005d3)) = *pbVar20 ^ bVar14 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar1 + -0xd20) ^ (ulonglong)DAT_182671e20) = (byte)uVar24 ^ 0x5e;
  uVar17 = (*(uint *)(lVar1 + -0x634) ^ DAT_182671cdc) + (uVar3 ^ 0x330a3f5) ^ DAT_182671eac;
  *(uint *)(lVar1 + -0x27c) =
       (*(byte *)(lVar1 - ((ulonglong)DAT_182671c54 ^ 0x87476963)) ^ bVar14) ^ uVar11;
  *(uint *)(lVar1 - (uVar12 ^ 0x1000094)) = uVar17;
  *(ulonglong *)(lVar1 + -0x828) = *(ulonglong *)(lVar1 + -0xa60) ^ 0xe2f04c2c978bf704;
  uVar8 = DAT_182671d9c;
  uVar16 = (*(uint *)(lVar1 + -0x27c) ^ uVar11) << (((byte)uVar16 ^ 0xe1) & 0x1f) ^ DAT_182671e58;
  uVar17 = *(uint *)(lVar1 + -0x94) ^ DAT_182671eac;
  *(uint *)(lVar1 + -0x58c) = uVar16;
  *(uint *)(lVar1 + -0x61c) = uVar17 - (uVar16 ^ DAT_182671e58) ^ DAT_182671e34;
  uVar5 = DAT_182671c8c;
  bVar14 = (byte)DAT_182671c8c;
  *(uint *)(lVar1 + -0x4ac) =
       (*(uint *)(lVar1 - (uVar22 ^ 0xfffff9e3)) ^ DAT_182671e34) *
       (*(uint *)(lVar1 - (uVar21 ^ 0x10002d0)) ^ uVar15) ^ DAT_182671d6c;
  *(uint *)(lVar1 + -0x1c8) = (*(uint *)(lVar1 + -0x27c) ^ uVar11) * (uVar24 ^ 0xffffffea) ^ uVar8;
  uVar17 = DAT_182671c78;
  uVar13 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar1 - (uVar19 ^ 0x608d4e24)) =
       *(ulonglong *)(lVar1 + -0xb20) >> ((bVar14 ^ 0x28) & 0x3f);
  uVar16 = DAT_182671e64;
  lVar2 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x94c) =
       (*(uint *)(lVar1 - (uVar26 ^ 0x10001c8)) ^ uVar8) +
       (*(uint *)(lVar1 + -0x4ac) ^ DAT_182671d6c) ^ DAT_182671e64;
  lVar1 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - (uVar12 ^ 0x1000ae4)) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x874761ec)) ^ uVar16) << ((bVar14 ^ 0x1d) & 0x1f) ^
       DAT_182671d84;
  *(longlong *)(lVar1 + -0x510) = -0x78fa81e49f25a96f - *(longlong *)(lVar1 + -0xd88);
  uVar11 = DAT_182671c64;
  lVar2 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0x9f72b837)) =
       (*(uint *)(lVar1 - ((ulonglong)uVar24 ^ 0xfffff6b3)) ^ uVar16) >>
       (((byte)DAT_182671c64 ^ 0x84) & 0x1f) ^ DAT_182671f00;
  uVar18 = (*(uint *)(lVar2 + -0x6c0) ^ uVar15) + (*(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4) ^
           DAT_182671f60;
  *(uint *)(lVar2 + -0x684) =
       (*(uint *)(lVar2 + -0xae4) ^ DAT_182671d84 | *(uint *)(lVar2 + -0x9dc) ^ DAT_182671f00) ^
       DAT_182671ed0;
  *(uint *)(lVar2 - (uVar9 ^ 0x608d497f)) = uVar18;
  *(uint *)(lVar2 - ((ulonglong)uVar23 ^ 0xff3c55ff)) =
       *(uint *)(lVar2 - (uVar21 ^ 0x100037c)) ^ DAT_182671d10 ^ DAT_182671f60;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xfffffd4f)) =
       *(ulonglong *)(lVar2 + -0x7c0) >>
       ((byte)*(undefined8 *)(lVar2 - (uVar9 ^ 0x608d4e23)) & 0x3f);
  uVar16 = *(uint *)(lVar2 + -0x684) ^ DAT_182671dc4 ^ DAT_182671ed0;
  *(longlong *)(lVar2 + -0x4b8) = 0x5ed1bf1f100eacfb - *(longlong *)(lVar2 + -0x510);
  *(uint *)(lVar2 + -0x634) = *(uint *)(lVar2 + -0x670) ^ DAT_182671d04 ^ DAT_182671d10;
  *(uint *)(lVar2 + -0x54) = uVar16;
  uVar16 = uVar16 ^ DAT_182671dc4;
  *(ulonglong *)(lVar2 + -0xda8) = ((ulonglong)uVar11 ^ 0x96948000) >> 0xd;
  uVar18 = DAT_182671f40;
  uVar11 = DAT_182671c50;
  uVar9 = (ulonglong)DAT_182671c50;
  uVar24 = DAT_182671f40 & 0xff;
  *(uint *)(lVar2 + -0x94) = uVar16 ^ uVar8;
  uVar13 = (ulonglong)DAT_182671d80;
  *(ulonglong *)(lVar2 + -0x698) =
       *(longlong *)(lVar2 - (uVar12 ^ 0x10009a8)) +
       (CONCAT44(uVar23,uVar11) ^ 0xff3c538f618d4e14) * 0x20 +
       (CONCAT44(uVar5,uVar29) ^ 0x78381310608d4e13) ^ uVar13;
  bVar14 = (byte)DAT_182671c90 ^ 0x72;
  *(byte *)(lVar2 + -0x5b9) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0x9e72b773)) ^ uVar13) ^
       (byte)uVar18 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x60) ^ (ulonglong)DAT_182671e98) = bVar14;
  bVar14 = (byte)DAT_182671c80;
  *(uint *)(lVar2 - (uVar22 ^ 0xfffffa73)) = uVar24 ^ *(byte *)(lVar2 + -0x5b9) ^ DAT_182671e9c;
  uVar18 = (uVar8 ^ *(uint *)(lVar2 + -0x94)) + (DAT_182671c84 ^ 0x1b85feee) ^ DAT_182671cf4;
  uVar23 = (*(uint *)(lVar2 + -0x58c) ^ DAT_182671e9c) << ((bVar14 ^ 5) & 0x1f) ^ DAT_182671d4c;
  uVar11 = DAT_182671c5c ^ 0x988067ad;
  *(uint *)(lVar2 + -0x61c) = uVar18;
  uVar18 = uVar18 ^ DAT_182671cf4;
  *(uint *)(lVar2 + -0x27c) = uVar23;
  uVar23 = uVar23 ^ DAT_182671d4c;
  *(uint *)(lVar2 + -0x4ac) = (uVar3 ^ 0x11f08381) * uVar11;
  uVar18 = uVar18 - uVar23 ^ DAT_182671f5c;
  *(uint *)(lVar2 + -0x1c8) = uVar18;
  *(ulonglong *)(lVar2 + -0x920) =
       (CONCAT44(uVar4,uVar17) ^ 0xe39105a88dac2da0) + *(longlong *)(lVar2 + -0xda8);
  uVar11 = *(uint *)(lVar2 - (uVar19 ^ 0x608d4820)) ^ DAT_182671d04;
  uVar18 = uVar18 ^ DAT_182671f5c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar7 * 4) = uVar6;
  *(uint *)(lVar2 - (uVar9 ^ 0x618d4758)) = uVar11 * uVar18 ^ DAT_182671df8;
  return;
}



############ FUN_ 180fba170 size=5759 ############

void FUN_180fba170(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  byte local_res18;
  byte local_108;
  byte local_d8;
  ulonglong uVar21;
  
  uVar8 = DAT_182671c94;
  uVar7 = DAT_182671c90;
  uVar6 = DAT_182671c80;
  uVar5 = DAT_182671c7c;
  uVar14 = DAT_182671c5c;
  uVar4 = DAT_182671c50;
  uVar33 = (ulonglong)DAT_182671c94;
  uVar32 = (ulonglong)DAT_182671c5c;
  uVar44 = DAT_182671c5c | DAT_182671c94;
  uVar40 = (ulonglong)DAT_182671c7c;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_1826722c0);
  uVar36 = DAT_182671c50 & DAT_182671c80;
  uVar47 = (ulonglong)uVar36;
  uVar18 = DAT_182671c84 - DAT_182671c90;
  uVar12 = *(uint *)(&DAT_182613220 + DAT_1826722c0) ^ DAT_182671c94;
  uVar20 = ~DAT_182671c7c;
  uVar21 = (ulonglong)uVar20;
  uVar30 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar22 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar28 = (ulonglong)uVar18;
  uVar16 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0xfdfafc7f)) ^
           CONCAT44(DAT_182671d70,DAT_182671d70) ^ *(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar22;
  DAT_182671c58 = uVar36;
  DAT_182671c60 = uVar44;
  DAT_182671c64 = uVar20;
  DAT_182671c74 = uVar18;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar16 ^ uVar30;
  uVar9 = DAT_182671de8;
  uVar19 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar29 = (ulonglong)uVar7;
  puVar26 = (ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x9562e728));
  *puVar26 = uVar16 >> (((byte)uVar18 ^ 0xf9) & 0x3f) ^ uVar19;
  lVar2 = DAT_182671c40;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0xf8fff227)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xfdfaf89f)) ^ uVar30) <<
       (((byte)uVar8 ^ 0x20) & 0x3f) ^ uVar16;
  uVar30 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar34 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar2 + -0x510) =
       (CONCAT44(uVar4,uVar5) ^ 0xcd927708dc28c2f7) >>
       ((*(byte *)(lVar2 + -0x30) ^ (byte)DAT_182671e24) & 0x3f);
  uVar9 = DAT_182671f2c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0x8e390793)) =
       (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar16 | *(ulonglong *)(lVar2 + -0x228) ^ uVar19) ^ uVar34;
  uVar16 = (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar22) -
           (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0xda8));
  *(ulonglong *)(lVar3 + -0xa60) = uVar16 ^ CONCAT44(DAT_182671ea0,DAT_182671ea0);
  lVar2 = DAT_182671c40;
  uVar19 = (ulonglong)uVar44;
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       (CONCAT44(uVar4,uVar5) ^ 0x5356030d38fcfe35) - (CONCAT44(uVar14,uVar44) ^ 0xf48ed2558c14d64e)
  ;
  uVar23 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar2 + -0xa50) = uVar16 - (uVar34 ^ *(ulonglong *)(lVar2 + -0x4b8)) ^ uVar23;
  *(uint *)(lVar2 - (uVar28 ^ 0x9856098c)) = (DAT_182671c80 ^ 0x47f45e7d) + 0xa0926cf7;
  lVar2 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0xf8f9f1d0)) =
       (CONCAT44(uVar20,uVar44) ^ 0x71c6fcd40205000a) -
       (*(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x9562e7b0)) ^
       CONCAT44(DAT_182671d1c,DAT_182671d1c)) ^ uVar22;
  uVar9 = DAT_182671e14;
  uVar16 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar22 = (uVar22 ^ *(ulonglong *)(lVar2 + -0x828)) + (uVar34 ^ *(ulonglong *)(lVar2 + -0x4b8)) ^
           uVar16;
  *(ulonglong *)(lVar2 + -0x7e8) = uVar22;
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar37 = CONCAT44(DAT_182671f88,DAT_182671f88);
  uVar16 = uVar37 ^ uVar34 ^ uVar22 ^ uVar16 ^ *(ulonglong *)(lVar2 + -0xa78);
  uVar22 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar2 + -0x408) = uVar16;
  bVar25 = (byte)uVar5;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x985602f8)) =
       (uVar34 ^ uVar16) >> ((bVar25 ^ 0xd1) & 0x3f) ^ uVar22;
  uVar9 = DAT_182671da4;
  uVar6 = DAT_182671c84;
  lVar2 = DAT_182671c40;
  bVar17 = (byte)uVar44;
  uVar34 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c84 ^ 0x2db8ead0)) ^ uVar34) <<
           ((bVar17 ^ 0xc4) & 0x3f);
  uVar24 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  puVar27 = (ulonglong *)(DAT_182671c40 + -0xb20);
  uVar16 = *(ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar34 ^ CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar34 = uVar34 | uVar22 ^ *puVar27;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xc90) = uVar34 ^ uVar24;
  uVar9 = DAT_182671e70;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x380) = (uVar37 ^ uVar16) - uVar34 ^ uVar22;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar16 = CONCAT44(DAT_182671eec,DAT_182671eec);
  uVar34 = CONCAT44(DAT_182671edc,DAT_182671edc) ^ uVar37 ^ uVar23 ^ *(ulonglong *)(lVar2 + -0xa50)
           ^ *(ulonglong *)(lVar2 + -0xf0);
  *(ulonglong *)(lVar2 + -0x760) = uVar34;
  uVar34 = (uVar34 ^ uVar37) >> (((byte)uVar18 ^ 0xfd) & 0x3f);
  puVar45 = (ulonglong *)(lVar3 - (uVar21 ^ 0x8e39044b));
  *(ulonglong *)(lVar3 + -0x510) = uVar34 ^ uVar16;
  uVar37 = (uVar37 ^ *puVar45) << 0x1b;
  *(ulonglong *)(lVar3 + -0x228) = uVar37 ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(uint *)(lVar3 + -0x94) = (uVar4 ^ 0x21613688) * *(int *)(lVar3 + -0x5d4);
  uVar11 = DAT_182671e80;
  uVar13 = DAT_182671e40;
  uVar16 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar31 = (ulonglong)DAT_182671e40;
  puVar38 = (ulonglong *)(lVar3 - (uVar29 ^ 0x9562eed8));
  *puVar38 = (uVar37 | uVar34) ^ uVar16;
  uVar39 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xda8) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xa50)) - (uVar16 ^ *(ulonglong *)(lVar3 + -0xbd8)) ^
       uVar39;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xfdfafa17)) =
       uVar34 ^ uVar16 ^ uVar22 ^ *(ulonglong *)(lVar3 + -0xbd8) ^ *(ulonglong *)(lVar3 + -0x380);
  uVar10 = DAT_182671e4c;
  uVar37 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar3 + -0x920) =
       ((ulonglong)(uVar13 >> 0x17) | uVar31 << 9) ^ *(ulonglong *)(lVar3 + -0x5e8) >> 0x17 ^ uVar37
  ;
  uVar9 = DAT_182671cfc;
  uVar16 = CONCAT44(uVar10,uVar10);
  local_108 = (byte)uVar20;
  puVar35 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x2db8e4b8));
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 - (uVar47 ^ 0xf8f9fc10)) ^ uVar34) << ((local_108 ^ 2) & 0x3f) ^ uVar16
  ;
  lVar2 = DAT_182671c40;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar16 = *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x71c6f5f4)) ^ uVar37 | uVar16 ^ *puVar35;
  uVar42 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar16 ^ uVar23;
  uVar6 = DAT_182671d28;
  uVar37 = (ulonglong)DAT_182671d28;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xfdfafc7f)) ^ uVar22) - uVar16 ^ uVar42;
  uVar16 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xfc6af4d7)) =
       uVar16 ^ uVar39 ^ uVar24 ^ *(ulonglong *)(lVar2 + -0xda8) ^ *(ulonglong *)(lVar2 + -0xc90);
  uVar22 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x98560dd0)) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xfdfaf817)) >> 0x20 ^ uVar37) >> 8 ^ uVar22;
  uVar9 = DAT_182671ef8;
  uVar24 = (uVar16 ^ *(ulonglong *)(lVar2 + -0x7e8)) << 0x18;
  *(ulonglong *)(lVar2 + -0xb20) = uVar24 ^ CONCAT44(DAT_182671f20,DAT_182671f20);
  lVar3 = DAT_182671c40;
  uVar16 = CONCAT44(uVar9,uVar9);
  local_d8 = (byte)uVar4;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xfdfaf4e7)) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0x408) | uVar24) ^ uVar16;
  uVar9 = DAT_182671db0;
  *(ulonglong *)(lVar2 + -0xa78) =
       CONCAT44(uVar36,uVar5) ^ 0x883577f5b4eb57cc |
       CONCAT44(uVar7,DAT_182671c84) ^ 0x5bfcc1488a2d593f;
  uVar10 = DAT_182671f7c;
  uVar22 = CONCAT44(uVar9,uVar9);
  puVar27 = (ulonglong *)(lVar3 - (uVar28 ^ 0x98560928));
  *puVar27 = (uVar39 ^ *(ulonglong *)(lVar3 + -0xda8)) - (*(ulonglong *)(lVar3 + -0xb18) ^ uVar16) ^
             uVar22;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar24 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *puVar45 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0xf8fff2e7)) ^ uVar42 ^
             *(ulonglong *)(lVar3 + -0x4b8) ^ uVar28 ^ uVar16;
  puVar41 = (ulonglong *)(lVar3 - (uVar40 ^ 0x71c6f9c4));
  uVar39 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *puVar41 = (*(ulonglong *)(lVar3 - (uVar47 ^ 0xf8f9fe98)) ^ uVar28) >> ((bVar17 ^ 0xcb) & 0x3f) ^
             uVar24;
  uVar16 = (*(ulonglong *)(lVar3 + -0x760) ^ uVar28) << ((local_d8 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar3 + -0x228) = uVar16 ^ uVar39;
  *(ulonglong *)(lVar3 - (uVar47 ^ 0xf8f9f3a8)) =
       uVar16 >> (((byte)uVar11 ^ *(byte *)(lVar3 + -0xda8)) & 0x3f);
  uVar46 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xfdfaf427)) =
       (*(ulonglong *)(lVar3 + -0x228) ^ uVar39 | *(ulonglong *)(lVar3 + -0x510) ^ uVar24) ^ uVar46;
  uVar10 = DAT_182671d80;
  uVar37 = CONCAT44(DAT_182671e94,DAT_182671e94);
  *(ulonglong *)(lVar3 + -0x5e8) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0x4b8)) - (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar46) ^
       uVar37;
  uVar9 = DAT_182671c98;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar28 = uVar23 ^ uVar24 ^ uVar22 ^ *(ulonglong *)(lVar3 + -0x828) ^ *(ulonglong *)(lVar3 + -0xf0)
  ;
  *(ulonglong *)(lVar3 + -0x920) = uVar28;
  uVar6 = DAT_182671c80;
  uVar23 = (uVar28 ^ uVar24) >> (((byte)uVar7 ^ 0x39) & 0x3f);
  uVar43 = CONCAT44(uVar9,uVar9);
  uVar16 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *(ulonglong *)(lVar3 + -0xa60) = uVar23 ^ uVar43;
  uVar9 = DAT_182671eb0;
  uVar28 = (uVar28 ^ uVar24) << (((byte)uVar6 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar3 + -0x380) = uVar28 ^ uVar16;
  uVar13 = DAT_182671ed4;
  lVar2 = DAT_182671c40;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar15 = DAT_182671c74 ^ 0xa4d0d4e;
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x71c6f044)) = (uVar23 | uVar28) ^ uVar16;
  *(uint *)(lVar2 + -0x644) = (DAT_182671c50 ^ 0xc657313b) * uVar15;
  uVar24 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(lVar2 + -0x7e8) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0xf0)) -
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0x9562e990)) ^ uVar16) ^ uVar24;
  uVar9 = DAT_182671e64;
  uVar16 = *(ulonglong *)(lVar2 + -0x5e8) ^ *(ulonglong *)(lVar2 + -0xc90) ^ CONCAT44(uVar13,uVar13)
           ^ uVar16 ^ uVar37;
  *(ulonglong *)(lVar2 + -0xb20) = uVar16;
  uVar10 = DAT_182671ea8;
  lVar2 = DAT_182671c40;
  uVar16 = (uVar16 ^ CONCAT44(uVar13,uVar13)) << 0x32;
  uVar28 = *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x71c6f7f4)) >> 0xe ^
           ((ulonglong)uVar13 << 0x12 | (ulonglong)(uVar13 >> 0xe));
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar28 ^ CONCAT44(uVar9,uVar9);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xa78) = uVar16 ^ CONCAT44(uVar10,uVar10);
  *(undefined8 *)(lVar3 + -0xb18) = 0xbe2b3e1597847755;
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x71c6fbb4)) = (uVar28 | uVar16) ^ uVar31;
  uVar28 = CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar16 = (*(ulonglong *)(lVar2 - (uVar21 ^ 0x8e3906c3)) ^ uVar37) -
           (*(ulonglong *)(lVar2 - (uVar32 ^ 0xfdfaf277)) ^ uVar28);
  *(ulonglong *)(lVar2 + -0xda8) = uVar16 ^ CONCAT44(DAT_182671e68,DAT_182671e68);
  uVar9 = DAT_182671db8;
  puVar48 = (ulonglong *)(lVar2 - (uVar19 ^ 0xfdfaf5af));
  *puVar48 = uVar16 - (*(ulonglong *)(lVar2 + -0x760) ^ uVar31) ^ uVar42;
  uVar10 = DAT_182671e1c;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x228) =
       (CONCAT44(DAT_182671ddc,DAT_182671ddc) ^ *(ulonglong *)(lVar2 + -0x888)) +
       (CONCAT44(uVar18,DAT_182671c84) ^ 0xa6566fa90740a611) ^ uVar16;
  uVar15 = DAT_182671c50 ^ 0x344c4c58;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar13 = DAT_182671c5c ^ 0xd5fecbf;
  *puVar41 = (*(ulonglong *)(lVar2 + -0x760) ^ uVar31) - (*puVar26 ^ uVar16) ^ uVar23;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c80 ^ 0xf8fff023)) = uVar15 + uVar13;
  uVar31 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  puVar26 = (ulonglong *)(lVar2 - (uVar29 ^ 0x9562e1b8));
  uVar46 = *(ulonglong *)(lVar2 + -0xbd8) ^ *(ulonglong *)(lVar2 + -0x7e8) ^ uVar31 ^ uVar24 ^
           uVar46;
  uVar37 = CONCAT44(DAT_182671f54,DAT_182671f54);
  *(ulonglong *)(lVar2 + -0x4b8) = uVar46;
  uVar16 = (*puVar26 ^ uVar31) >> (((byte)uVar6 ^ 0xef) & 0x3f);
  *(ulonglong *)(lVar2 + -0x828) = uVar16 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x920) =
       (CONCAT44(uVar20,uVar8) ^ 0xaa1ec1c41996472b) - (CONCAT44(uVar36,uVar4) ^ 0x1fab214d795325fb)
  ;
  uVar31 = (uVar46 ^ uVar31) << (((byte)uVar36 ^ 200) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa60) = uVar31 ^ CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar10 = DAT_182671ebc;
  uVar31 = uVar31 | uVar16;
  uVar37 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar2 + -0x380) = uVar31 ^ uVar37;
  uVar9 = DAT_182671d04;
  uVar16 = (*(ulonglong *)(lVar2 + -0x7e8) ^ uVar24) -
           (*(ulonglong *)(lVar2 - (uVar33 ^ 0xfc6af30f)) ^ uVar30);
  *(ulonglong *)(lVar2 + -0xf0) = uVar16 ^ CONCAT44(uVar10,uVar10);
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xc90) = uVar16 - uVar31 ^ uVar24;
  uVar9 = DAT_182671e8c;
  lVar3 = DAT_182671c40;
  uVar16 = (CONCAT44(uVar5,uVar20) ^ 0x8e39032b71c6fcdd) - (*(ulonglong *)(lVar2 + -0x680) ^ uVar43)
  ;
  *(ulonglong *)(lVar2 + -0xb20) = uVar16 ^ uVar28;
  uVar6 = DAT_182671c84;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar30 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar3 + -0xb18) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x2db8ed58)) ^ uVar37) + uVar16 ^ uVar28;
  uVar9 = DAT_182671e38;
  uVar5 = DAT_182671c80;
  uVar28 = *(ulonglong *)(lVar3 - (uVar47 ^ 0xf8f9f2e0)) ^ uVar42 ^ *(ulonglong *)(lVar3 + -0xa50) ^
           uVar30 ^ uVar28;
  uVar47 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar3 + -0x408) = uVar28;
  *(ulonglong *)(lVar3 + -0xa78) = (uVar28 ^ uVar30) >> (((byte)uVar5 ^ 0xdf) & 0x3f) ^ uVar47;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x2db8eb30)) =
       (uVar30 ^ uVar28) << ((bVar25 ^ 0xf4) & 0x3f) ^ uVar16;
  uVar9 = DAT_182671f40;
  lVar2 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671e84,DAT_182671e84);
  uVar16 = *(ulonglong *)(lVar3 + -0x5e8) ^ uVar16 | *(ulonglong *)(lVar3 + -0xa78) ^ uVar47;
  *(ulonglong *)(lVar3 + -0xda8) = uVar16 ^ uVar30;
  uVar28 = CONCAT44(uVar9,uVar9);
  *puVar45 = (uVar42 ^ *puVar48) - uVar16 ^ uVar28;
  uVar16 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *puVar38 = *(ulonglong *)(lVar3 - (uVar19 ^ 0xfdfaf36f)) ^ uVar16 ^ uVar24 ^
             *(ulonglong *)(lVar3 + -0x510) ^ uVar23;
  local_res18 = (byte)uVar14;
  uVar37 = (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar16) >> ((local_res18 ^ 0xdf) & 0x3f);
  uVar23 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *(ulonglong *)(lVar2 + -0x920) = uVar37 ^ CONCAT44(DAT_182671cf4,DAT_182671cf4);
  lVar3 = DAT_182671c40;
  uVar16 = (*(ulonglong *)(lVar2 - (uVar40 ^ 0x71c6f70c)) ^ uVar16) <<
           (((byte)uVar36 ^ 0xd8) & 0x3f);
  uVar31 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) = uVar16 ^ uVar23;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x71c6f6b4)) = (uVar37 | uVar16) ^ uVar31;
  uVar9 = DAT_182671e08;
  uVar40 = CONCAT44(DAT_182671e08,DAT_182671e08);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xfdfaf7d7)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xfff9f368)) ^ uVar24) - (uVar31 ^ *puVar35) ^
       uVar40;
  uVar16 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  uVar24 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(lVar2 + -0x30) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xfff9f898)) ^ uVar16 ^ uVar31 ^ uVar28 ^
       *(ulonglong *)(lVar2 + -0xa60);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x9562e2e8)) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xfdfaffcf)) ^ uVar16) >> ((local_d8 ^ 0xc2) & 0x3f) ^
       uVar24;
  uVar10 = DAT_182671f98;
  uVar23 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar2 + -0xf0) =
       (*(ulonglong *)(lVar2 + -0x30) ^ uVar16) << ((bVar25 ^ 0xd2) & 0x3f) ^ uVar23;
  uVar16 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xb20) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x7e8) | *puVar27 ^ uVar23) ^ uVar16;
  *(ulonglong *)(lVar2 + -0x380) =
       (*(ulonglong *)(lVar2 + -0x760) ^ uVar28) -
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xfdfaf4df)) ^ uVar16) ^ uVar39;
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xfdfaf4e7)) =
       *(ulonglong *)(lVar2 - (uVar32 ^ 0xfdfaf257)) ^
       *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x8e390b03)) ^ uVar34 ^ uVar40 ^ uVar30;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0xfc6af737)) =
       (*(ulonglong *)(DAT_182671c40 + -0xa78) ^ uVar47) <<
       ((*(byte *)(DAT_182671c40 - (uVar29 ^ 0x9562ed28)) ^ (byte)uVar9) & 0x3f);
  uVar28 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *(ulonglong *)(lVar2 + -0x5e8) =
       ((ulonglong)(DAT_182671e40 >> 0x16) | (ulonglong)DAT_182671e40 << 10) ^
       *(ulonglong *)(lVar2 + -0xb18) >> 0x16 ^ uVar28;
  uVar5 = DAT_182671c84;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c84 ^ 0x2db8e488)) =
       (CONCAT44(uVar7,uVar14) ^ 0xd4ce58f1661af1cb) +
       (CONCAT44(uVar20,uVar14) ^ 0x853a8dc53c566565);
  uVar9 = DAT_182671d38;
  uVar16 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xfdfafaef)) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0xb18)) << ((local_108 ^ 1) & 0x3f) ^ uVar16;
  uVar29 = CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar16 = uVar16 ^ *(ulonglong *)(lVar2 + -0x510) | *(ulonglong *)(lVar2 + -0x5e8) ^ uVar28;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar16 ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xfdfaf6df)) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x828)) - uVar16 ^ CONCAT44(uVar9,uVar9);
  uVar32 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *puVar26 = *(ulonglong *)(lVar2 - (uVar21 ^ 0x8e3900ab)) ^ *(ulonglong *)(lVar2 + -0xbd8) ^ uVar32
             ^ uVar29 ^ uVar39;
  uVar16 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x4b8)) >> ((bVar17 ^ 0xd1) & 0x3f);
  uVar29 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar28 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x4b8)) << (((byte)DAT_182671c8c ^ 0x74) & 0x3f);
  uVar14 = DAT_182671c80 ^ 0xfda4d0c6;
  *(ulonglong *)(lVar2 + -0xa60) = uVar28 ^ uVar22;
  *(ulonglong *)(lVar2 + -0xc90) = uVar16 ^ uVar29;
  *(uint *)(lVar2 + -0x634) = uVar14 * (uVar5 ^ 0xa2aa8454);
  uVar32 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(lVar2 + -0x30) = (uVar16 | uVar28) ^ uVar32;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x8e3903db)) = CONCAT44(uVar4,uVar7) ^ 0x1413f8b48aa54721;
  uVar16 = *(ulonglong *)(lVar2 + -0x380);
  uVar29 = *(ulonglong *)(lVar2 + -0x30);
  uVar28 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar30 = (ulonglong)DAT_182671c68;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar12 * 4) = uVar1 ^ uVar44;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x28507e8)) = (uVar39 ^ uVar16) - (uVar29 ^ uVar32) ^ uVar28;
  return;
}



############ FUN_ 180fda370 size=5520 ############

void FUN_180fda370(void)

{
  longlong *plVar1;
  undefined8 *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_res18;
  byte local_d8;
  byte local_d0;
  
  uVar9 = DAT_182671c94;
  uVar6 = DAT_182671c88;
  uVar8 = DAT_182671c84;
  uVar5 = DAT_182671c6c;
  uVar39 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  DAT_182671c68 = DAT_182671c48 | DAT_182671c8c;
  uVar22 = DAT_182671c80 ^ DAT_182671c58;
  uVar35 = DAT_182671c6c ^ DAT_182671c78;
  uVar13 = DAT_182671c7c & 3;
  if (uVar13 < 2) {
    DAT_182671c70 = DAT_182671c60;
    if (uVar13 == 0) {
      DAT_182671c70 = DAT_182671c7c;
    }
  }
  else {
    DAT_182671c70 = DAT_182671c88;
    if (uVar13 < 3) {
      DAT_182671c70 = DAT_182671c64;
    }
  }
  uVar30 = (ulonglong)DAT_182671c84;
  uVar14 = DAT_182671c84 << 0x10 | DAT_182671c84 >> 0x10;
  uVar29 = (ulonglong)uVar14;
  uVar15 = *(uint *)(&DAT_182613210 + (uVar29 ^ 0x197938e8) + (longlong)DAT_182672030) ^
           DAT_182671c84;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_182672030) ^ DAT_182671c60;
  uVar25 = CONCAT44(DAT_182671c80,DAT_182671c84);
  uVar33 = (ulonglong)DAT_182671c94;
  DAT_182671c54 = uVar22;
  DAT_182671c5c = uVar14;
  DAT_182671c90 = uVar35;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c64 ^ 0x408018b8)) =
       *(longlong *)(DAT_182671c40 + -0xac0) +
       (CONCAT44(DAT_182671c70,DAT_182671c88) ^ 0xcee9f1f831160e05) * 8;
  uVar7 = DAT_182671c7c;
  *(uint *)(lVar3 + -0x76c) = (uVar9 ^ 0xaee3c27c) + 0x9a1b47df;
  uVar40 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar3 + -0xb18) = **(ulonglong **)(lVar3 + -0x910) ^ uVar40;
  puVar2 = (undefined8 *)
           (*(longlong *)(lVar3 + -0xac0) + (CONCAT44(uVar7,uVar7) ^ 0xcee9f1f8cee9f1fb) * 8);
  *(undefined8 **)(lVar3 + -0x668) = puVar2;
  *(undefined8 *)(lVar3 + -0x920) = *puVar2;
  uVar17 = DAT_182671c78;
  uVar31 = CONCAT44(uVar35,uVar5);
  uVar21 = CONCAT44(DAT_182671f10,DAT_182671f10);
  uVar19 = (ulonglong)DAT_182671c78;
  uVar42 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(lVar3 + -0x678) =
       *(longlong *)(lVar3 + -0xa38) + 8 +
       ((uVar25 ^ 0xf982334838e01979) * 0x15 + (uVar31 ^ 0x5909c395b6f65c6b)) * 8 ^ uVar21;
  uVar10 = DAT_182671e10;
  uVar35 = DAT_182671c68;
  uVar13 = DAT_182671c58;
  uVar24 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x3116068f)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar19 ^ 0xefff9986)) ^ uVar21) ^ uVar24 ^ uVar42;
  *(undefined8 *)
   (*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x88d8270c)) ^ CONCAT44(uVar10,uVar10)) =
       0x15e3b9ef66a19797;
  uVar11 = DAT_182671ec8;
  lVar4 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar3 + -0xac0) =
       *(longlong *)(lVar3 + -0xa38) + 8 + (CONCAT44(uVar13,DAT_182671c8c) ^ 0x715a192c4f27d7b2) * 8
       ^ uVar21;
  uVar10 = DAT_182671dd8;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x228) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar30 ^ 0x38e013b9)) ^ uVar21) ^ uVar38 ^ uVar24;
  uVar5 = DAT_182671c60;
  *(ulonglong *)(CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar4 + -0x138)) =
       CONCAT44(DAT_182671c48,uVar22) ^ 0x20b967be5cb76dc2;
  lVar3 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0x88d82c0c)) =
       *(longlong *)(DAT_182671c40 - ((ulonglong)uVar35 ^ 0x4fa7dd83)) + 8 +
       ((CONCAT44(uVar5,uVar17) ^ 0x17ae7186efff9ffe) * 0x15 +
       (CONCAT44(uVar39,DAT_182671c6c) ^ 0x408011a8b6f65c69)) * 8 ^ uVar21;
  *(uint *)(lVar3 + -0x76c) = (DAT_182671c64 ^ 0x848c15a1) * *(int *)(lVar3 + -0x644);
  uVar5 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar32 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar35 ^ 0x4fa7d50b)) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x19793e88)) ^ uVar21) ^ uVar36 ^
       uVar24;
  *(undefined8 *)(CONCAT44(DAT_182671e18,DAT_182671e18) ^ *(ulonglong *)(lVar3 + -0xb98)) =
       0x42134019ba98de4b;
  uVar17 = ~uVar5;
  uVar27 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  DAT_182671c4c = uVar17;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c7c ^ 0xcee9fc90)) =
       *(longlong *)(DAT_182671c40 + -0xa38) + 8 +
       (CONCAT44(uVar17,uVar17) ^ 0x590a0396590a0395) * 8 ^ uVar27;
  lVar3 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar19 = CONCAT44(uVar22,DAT_182671c90);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x715a19dc)) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671c40 + -0xd68) ^ uVar27) ^ uVar21 ^ uVar24;
  uVar35 = DAT_182671c8c;
  uVar27 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x610) ^ uVar27) = uVar19 ^ 0x6f63b80c78aa060a;
  uVar10 = DAT_182671e14;
  uVar19 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  puVar20 = (ulonglong *)(*(longlong *)(lVar3 - ((ulonglong)uVar5 ^ 0xa6f5f651)) + 0x28);
  *(ulonglong *)(lVar3 + -0x678) = (ulonglong)puVar20 ^ uVar19;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xbd8) = *puVar20 ^ uVar26 ^ uVar24;
  uVar6 = DAT_182671c70;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x40) ^ uVar19) =
       CONCAT44(uVar5,uVar9) ^ 0xcb8c2c21f385a198;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0xb6f656ab)) =
       *(longlong *)(lVar3 + -0xa38) + 0x90 + (CONCAT44(uVar35,uVar6) ^ 0x4f27d7b3cee9f1f8) * 8;
  uVar6 = DAT_182671c7c;
  *(int *)(lVar3 + -0x644) = *(int *)(lVar3 + -0x94) + -0x7ffaace6;
  uVar23 = CONCAT44(DAT_182671da8,DAT_182671da8);
  *(ulonglong *)(lVar3 + -0xc90) = **(ulonglong **)(lVar3 - (uVar33 ^ 0x23af19aa)) ^ uVar23 ^ uVar24
  ;
  **(ulonglong **)(lVar3 + -0x588) = uVar25 ^ 0xda7ffb59478d763e;
  uVar13 = DAT_182671c88;
  *(ulonglong *)(lVar3 + -0x30) =
       CONCAT44(uVar22,DAT_182671c60) ^ 0xdabc4fb7ab5e42b3 | uVar36 ^ *(ulonglong *)(lVar3 + -0x2b0)
  ;
  uVar25 = (ulonglong)DAT_182671c78;
  uVar37 = CONCAT44(uVar17,DAT_182671c78);
  uVar19 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x197939d8)) =
       *(longlong *)(lVar3 + -0xa38) + 0x90 +
       ((CONCAT44(uVar35,uVar5) ^ 0x4f27d7b3a6f5fc69) * 0x15 +
       (CONCAT44(uVar13,uVar6) ^ 0x31160e07cee9f1f9)) * 8;
  uVar34 = CONCAT44(DAT_182671f04,DAT_182671f04);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xefff9bf6)) =
       **(ulonglong **)(DAT_182671c40 - (uVar19 ^ 0x40801090)) ^ uVar34 ^ uVar24;
  **(ulonglong **)(DAT_182671c40 + -0x6e8) = uVar37 ^ 0x968ec4e00c5a5fcc;
  lVar3 = DAT_182671c40;
  plVar1 = (longlong *)(DAT_182671c40 + -0xa38);
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       (uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) +
       (uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0xc90));
  *(longlong *)(lVar3 + -0xb98) = *plVar1 + 0xa0;
  uVar29 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0xa38) = CONCAT44(uVar39,DAT_182671c68) ^ 0x2a6a77bcc502af74;
  uVar39 = DAT_182671c70;
  uVar28 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0xb6f6563b)) =
       **(ulonglong **)(lVar3 - (uVar29 ^ 0x17ae7a1e)) ^ uVar28 ^ uVar24;
  uVar10 = DAT_182671da0;
  **(undefined8 **)(lVar3 + -0xd50) = 0x9dfef61b857da18d;
  uVar22 = DAT_182671c90;
  uVar41 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar3 + -0x4b8) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0x38e014f1)) ^ CONCAT44(uVar10,uVar10)) -
       (uVar21 ^ *(ulonglong *)(lVar3 + -0xf0)) ^ uVar41;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x5909c285)) =
       CONCAT44(uVar9,uVar39) ^ 0x7719e4c2c01d191a | CONCAT44(uVar13,uVar9) ^ 0xfa1871c6b6ac38b1;
  uVar6 = DAT_182671c80;
  uVar37 = CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar24 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar29 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0x5909c9ed)) =
       (uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) +
       (uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0xc90)) ^ uVar37;
  lVar3 = DAT_182671c40;
  puVar20 = (ulonglong *)(DAT_182671c40 + -0xb20);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (uVar21 ^ *(ulonglong *)(DAT_182671c40 + -0xf0)) - *(longlong *)(DAT_182671c40 + -0xc38);
  uVar25 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  uVar19 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xf9823b60)) =
       (uVar24 ^ *puVar20) - (uVar37 ^ *(ulonglong *)(lVar3 + -0xa78)) ^ uVar25;
  uVar29 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x88d82d8c)) =
       (*(ulonglong *)(lVar3 + -0x408) ^ uVar34) + (*(ulonglong *)(lVar3 + -0x888) ^ uVar42) ^
       uVar29;
  uVar34 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 + -0xb18) ^ uVar40) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x311609ef)) ^ uVar29) ^ uVar34;
  uVar23 = CONCAT44(DAT_182671d80,DAT_182671d80);
  puVar20 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0xcee9f278));
  *puVar20 = (CONCAT44(uVar14,uVar14) ^ 0xe686c71fe686c70e) + *(longlong *)(lVar3 + -0x920) ^ uVar23
  ;
  uVar10 = DAT_182671e2c;
  uVar39 = DAT_182671c78;
  uVar19 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar29 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xf98230c8)) ^ uVar23) -
           (uVar38 ^ *(ulonglong *)(lVar3 + -0x228)) ^ uVar19;
  *(ulonglong *)(lVar3 + -0xa60) = uVar29;
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c48 ^ 0x40801198)) =
       *(ulonglong *)(lVar3 + -0x4b8) ^ uVar24 ^ uVar29 ^ uVar19 ^ uVar41;
  uVar24 = *(ulonglong *)(lVar3 + -0x30) ^ uVar24;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar39,uVar17) ^ 0x8912962b6f4f7da8) - (uVar37 ^ *(ulonglong *)(lVar3 + -0xa78));
  uVar37 = CONCAT44(DAT_182671e08,DAT_182671e08);
  uVar29 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar3 + -0xc18) = uVar24 >> (((byte)uVar17 ^ 0xb6) & 0x3f) ^ uVar37;
  uVar26 = CONCAT44(DAT_182671e98,DAT_182671e98);
  uVar19 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar3 + -0xb08) = uVar24 << 0x20 ^ uVar26;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x5909ce1d)) =
       *(ulonglong *)(lVar3 - (uVar29 ^ 0x4f27dcbb)) ^ uVar26 |
       *(ulonglong *)(lVar3 + -0x380) ^ uVar23;
  uVar10 = DAT_182671d94;
  uVar23 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar29 = *(ulonglong *)(lVar3 + -0xc18) ^ uVar37 | uVar26 ^ *(ulonglong *)(lVar3 + -0xb08);
  *(ulonglong *)(lVar3 + -0x110) = uVar29 ^ uVar23;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar19 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0xc38) = (*(ulonglong *)(lVar3 + -0x4b8) ^ uVar41) - uVar29 ^ uVar24;
  uVar37 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  bVar18 = (byte)DAT_182671c7c;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x17ae7706)) =
       *(ulonglong *)(lVar3 + -0x828) ^ uVar37 ^ uVar34 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x510);
  uVar29 = (*(ulonglong *)(lVar3 + -0x680) ^ uVar37) >> ((bVar18 ^ 0xd8) & 0x3f);
  *(uint *)(lVar3 + -0x76c) = (DAT_182671c64 ^ 0x87661e5c) * 0x123535ec;
  uVar10 = DAT_182671f74;
  *(ulonglong *)(lVar3 + -0xb20) = uVar29 ^ CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar11 = DAT_182671e60;
  uVar26 = (ulonglong)DAT_182671c54;
  local_d0 = (byte)uVar5;
  uVar25 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c54 ^ 0x88d82ce4)) ^ uVar37) <<
           ((local_d0 ^ 0x49) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb18) = uVar25 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671cbc;
  lVar4 = DAT_182671c40;
  uVar19 = CONCAT44(uVar11,uVar11);
  uVar25 = uVar25 | uVar29;
  uVar38 = uVar25 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x920) = uVar38;
  uVar37 = CONCAT44(uVar10,uVar10);
  uVar29 = *(ulonglong *)(lVar4 - (uVar33 ^ 0x23af167a));
  *(undefined8 *)(lVar4 + -0x30) = 0;
  uVar10 = DAT_182671d5c;
  *(ulonglong *)(lVar4 + -0xa60) = (uVar29 ^ uVar34) - uVar25 ^ uVar37;
  uVar39 = DAT_182671c80;
  uVar25 = CONCAT44(uVar10,uVar10);
  uVar29 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar4 + -0x760) =
       *(ulonglong *)(lVar4 + -0xc38) ^ uVar38 ^ uVar25 ^ uVar19 ^ uVar24;
  uVar10 = DAT_182671d70;
  uVar34 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar4 + -0x380) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xf9823428)) ^ uVar25) >>
       (((byte)DAT_182671c6c ^ 0x51) & 0x3f) ^ uVar34;
  uVar5 = DAT_182671c68;
  lVar3 = DAT_182671c40;
  uVar19 = (*(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0x88d82d04)) ^ uVar25) <<
           (((byte)DAT_182671c88 ^ 1) & 0x3f);
  uVar25 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar29 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar19 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xc18) = (uVar19 | uVar34 ^ *puVar20) ^ uVar25;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar39 ^ 0xf9823840)) =
       *(ulonglong *)(lVar3 - (uVar29 ^ 0x4fa7db83)) ^ CONCAT44(uVar5,uVar5) ^ uVar24 ^
       0x30244fe2ced8b1bf;
  uVar10 = DAT_182671e44;
  uVar40 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar3 + -0x4b8) =
       (*(ulonglong *)(lVar3 + -0xc38) ^ uVar24) - (uVar25 ^ *(ulonglong *)(lVar3 + -0xc18)) ^
       uVar40;
  uVar11 = DAT_182671ea4;
  uVar6 = DAT_182671c78;
  bVar18 = (byte)DAT_182671c90;
  uVar41 = (ulonglong)DAT_182671c78;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar23 = *(ulonglong *)(lVar3 - (uVar26 ^ 0x88d82b74)) ^ *(ulonglong *)(lVar3 + -0xa60) ^ uVar34 ^
           uVar37 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x828) = uVar23;
  uVar10 = DAT_182671f6c;
  uVar29 = (ulonglong)DAT_182671c60;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x680) = (uVar23 ^ uVar34) >> ((bVar18 ^ 0x83) & 0x3f) ^ uVar38;
  uVar19 = CONCAT44(uVar10,uVar10);
  local_res18 = (byte)(uVar8 >> 0x10);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xefff94e6)) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x17ae79ae)) ^ uVar34) << ((local_res18 ^ 0xca) & 0x3f) ^
       uVar19;
  uVar10 = DAT_182671f28;
  uVar26 = CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar29 = *(ulonglong *)(lVar3 + -0xb18) ^ uVar19 | *(ulonglong *)(lVar3 + -0x680) ^ uVar38;
  *(ulonglong *)(lVar3 + -0xb20) = uVar29 ^ uVar26;
  uVar29 = (*(ulonglong *)(lVar3 + -0xa60) ^ uVar37) - uVar29;
  uVar23 = CONCAT44(uVar10,uVar10);
  local_d8 = (byte)uVar8;
  *(ulonglong *)(lVar3 + -0x510) = uVar29 ^ uVar23;
  uVar10 = DAT_182671dc8;
  uVar19 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar3 + -0x920) = uVar29 << ((local_d8 ^ 0x48) & 0x3f);
  uVar34 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c7c ^ 0xcee9f1c8)) =
       *(ulonglong *)(lVar3 - (uVar19 ^ 0x40801a88)) ^ uVar34 ^ uVar26 ^ uVar40 ^
       *(ulonglong *)(lVar3 + -0x4b8);
  uVar10 = DAT_182671d98;
  uVar19 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar39 = DAT_182671c84 ^ 0xfb1f14dd | 0x3a0d14dd;
  uVar29 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x590a03a6)) ^ uVar34) >>
           (((byte)uVar9 ^ 0x44) & 0x3f);
  uVar34 = (uVar34 ^ *(ulonglong *)(lVar3 + -0x30)) << 0x12;
  *(ulonglong *)(lVar3 + -0x380) = uVar34 ^ CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar3 + -0x760) = uVar29 ^ uVar19;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(uint *)(lVar3 + -0x94) = uVar39;
  uVar10 = DAT_182671cf4;
  uVar29 = uVar29 | uVar34;
  *(ulonglong *)(lVar3 + -0xd88) = uVar29 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xb08) = (uVar40 ^ *(ulonglong *)(lVar3 + -0x4b8)) - uVar29 ^ uVar24;
  uVar38 = CONCAT44(uVar10,uVar10);
  uVar29 = CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar25 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0xcee9f4e8)) ^
           *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x590a0f8e)) ^ uVar38 ^ uVar23 ^ uVar25;
  bVar18 = (byte)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0xc38) = uVar25;
  uVar34 = (uVar25 ^ uVar38) >> ((bVar18 ^ 0xf4) & 0x3f);
  uVar19 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar3 + -0x110) = uVar34 ^ uVar29;
  uVar8 = DAT_182671c8c;
  uVar37 = (ulonglong)DAT_182671c8c;
  bVar18 = (byte)DAT_182671c90;
  *(uint *)(lVar3 + -0x94c) = uVar39 + 0x8879456b;
  uVar29 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar3 + -0x828) = (uVar25 ^ uVar38) << ((bVar18 ^ 0xa1) & 0x3f) ^ uVar19;
  uVar25 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0x4f27dcab)) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x715a1104)) ^ uVar19 | uVar34) ^ uVar27;
  uVar34 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar29 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar3 + -0x680) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x510)) -
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0x40801ab0)) ^ uVar27) ^ uVar34;
  uVar39 = DAT_182671c64;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0x40801bc8)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xefff94f6)) ^ uVar27 ^
       *(ulonglong *)(lVar3 + -0xb18) ^ uVar29 ^ uVar24;
  uVar10 = DAT_182671f48;
  *(ulonglong *)(lVar3 + -0xb20) =
       (CONCAT44(uVar7,uVar8) ^ 0x8fcb285505e6940e) <<
       ((byte)*(undefined8 *)(lVar3 + -0x920) & 0x3f);
  uVar8 = DAT_182671c80;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(uint *)(lVar3 + -0x634) =
       (DAT_182671c90 ^ 0x1eec9689) << ((byte)*(undefined4 *)(lVar3 + -0xae4) & 0x1f);
  uVar11 = DAT_182671d74;
  *(ulonglong *)(lVar3 + -0x30) =
       (*(ulonglong *)(lVar3 + -0xa60) ^ uVar29) >> (((byte)uVar5 ^ 0xa2) & 0x3f) ^ uVar19;
  uVar29 = (*(ulonglong *)(lVar3 + -0xa60) ^ uVar29) << (((byte)uVar8 ^ 0x6f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x380) = (uVar31 ^ 0xeb2b983b4e0fe00) << 3;
  uVar10 = DAT_182671d08;
  *(ulonglong *)(lVar3 + -0x760) = uVar29 ^ CONCAT44(uVar11,uVar11);
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar29 = *(ulonglong *)(lVar3 - (uVar41 ^ 0xefff9fce)) ^ uVar19 | uVar29;
  uVar27 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(lVar3 + -0x4b8) = uVar29 ^ uVar23;
  uVar10 = DAT_182671f0c;
  uVar24 = (uVar24 ^ *(ulonglong *)(lVar3 + -0xb08)) - (uVar36 ^ *(ulonglong *)(lVar3 + -0x2b0));
  *(ulonglong *)(lVar3 + -0xc18) = uVar24 ^ uVar27;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x40801d90)) = uVar24 - uVar29 ^ uVar19;
  uVar11 = DAT_182671cec;
  uVar10 = DAT_182671c9c;
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xa6f5f071)) ^ uVar27) -
       (*(ulonglong *)(lVar3 + -0xc38) ^ uVar19);
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x23af1b42)) =
       (*(ulonglong *)(lVar3 + -0xa50) ^ uVar28) + (uVar21 ^ *(ulonglong *)(lVar3 + -0xf0)) ^ uVar29
  ;
  uVar12 = DAT_182671f34;
  uVar11 = DAT_182671e24;
  uVar19 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0xb18) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x4b8)) -
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0x38e01151)) ^ uVar29) ^ CONCAT44(uVar10,uVar10);
  uVar21 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xb20) =
       *(ulonglong *)(lVar3 + -0x680) ^ uVar21 ^ uVar34 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0xd88);
  uVar29 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0x920) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0x17ae7aa6)) ^ uVar21) >> ((local_res18 ^ 0xc1) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  *(uint *)(lVar3 - (uVar29 ^ 0xcee9fb1c)) = (uVar39 ^ 0xa1ee7fa) * *(int *)(lVar3 + -0x644);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar15;
  return;
}



############ FUN_ 180fc74c0 size=3042 ############

void FUN_180fc74c0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  ulonglong uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  
  uVar4 = DAT_182671c94;
  uVar11 = DAT_182671c7c;
  uVar5 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c50;
  uVar14 = (ulonglong)DAT_182671c7c;
  uVar16 = DAT_182671c7c ^ DAT_182671c50;
  uVar13 = *(uint *)(&DAT_182613218 + DAT_1826722e4) ^ DAT_182671c7c;
  uVar1 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c50 ^ 0x5bc59610) + (longlong)DAT_1826722e4);
  uVar19 = (ulonglong)DAT_182671f70;
  uVar23 = (ulonglong)DAT_182671c94;
  uVar21 = (ulonglong)DAT_182671dd4;
  uVar25 = (ulonglong)uVar16;
  uVar24 = CONCAT44(DAT_182671c50,DAT_182671c94);
  DAT_182671c8c = uVar16;
  *(undefined8 *)(DAT_182671c40 + -0xb0) = *(undefined8 *)(DAT_182671c40 - (uVar26 ^ 0x5bc59c80));
  *(undefined8 *)(lVar2 + -0xa80) = 0xf6b5fbf11399a938;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar16 ^ 0x5854ab10)) = *(undefined8 *)(lVar2 + -0x390);
  *(ulonglong *)(lVar2 + -0x390) = CONCAT44(uVar11,uVar16) ^ 0xda995996932944ea;
  *(undefined8 *)(lVar2 + -0x580) = *(undefined8 *)(lVar2 + -0xb0);
  *(ulonglong *)(lVar2 + -0xb0) = CONCAT44(uVar5,uVar5) ^ 0x4d642afad3c3702;
  *(ulonglong *)(lVar2 + -0xc18) = CONCAT44(uVar11,uVar16) ^ 0x4a276782b92d3957;
  puVar17 = (ulonglong *)(lVar2 - (uVar25 ^ 0x5854acb8));
  *puVar17 = *(ulonglong *)(lVar2 + -0xc00) ^ uVar19;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar5 ^ 0x5bc59a00)) = 0xd29f4c9034905fb1;
  *(ulonglong *)(lVar2 - (uVar14 ^ 0x3913358)) =
       *(ulonglong *)(lVar2 - (uVar14 ^ 0x3913490)) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x580) = uVar24 ^ 0x294af3a5644baa28;
  bVar12 = (byte)DAT_182671dc0;
  uVar10 = DAT_182671c74;
  uVar18 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x3110dad1)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x5bc59448)) ^ uVar21) +
       (CONCAT44(uVar16,uVar11) ^ 0x5854a71003913111);
  *(byte *)(lVar2 + -0x3b1) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xd3913358)) ^ uVar21) ^ bVar12 ^
       (byte)DAT_182671d08;
  *(ulonglong *)(lVar2 + -0x248) = CONCAT44(uVar10,uVar11) ^ 0xdb764be49b919f77;
  *(ulonglong *)(lVar2 - (uVar14 ^ 0x39133c8)) =
       (*(ulonglong *)(lVar2 + -0xba8) ^ uVar19) + (uVar24 ^ 0x5bc59600d3913111);
  lVar2 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671cec;
  pbVar20 = (byte *)(DAT_182671c40 + -0x3b1);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (CONCAT44(uVar16,uVar16) ^ 0x3090dd23dc6198bd) -
       *(longlong *)(DAT_182671c40 - (uVar14 ^ 0x3913738));
  *(byte *)(uVar19 ^ *puVar17) = bVar12 ^ *pbVar20;
  *(byte *)(lVar2 - (uVar26 ^ 0x5bc595b1)) = (byte)uVar5 ^ 0xe0;
  uVar19 = *(ulonglong *)(lVar2 + -0x2d8);
  *(ulonglong *)(lVar2 + -0x2d8) = CONCAT44(uVar4,uVar5) ^ 0xd42c7d0e4e816dbc;
  *(undefined8 *)(lVar2 + -0xca8) = *(undefined8 *)(lVar2 + -0x940);
  *(ulonglong *)(lVar2 + -0x940) = CONCAT44(uVar16,uVar10) ^ 0x6a530baf3dbbf34;
  uVar8 = DAT_182671c6c;
  uVar27 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x3110dea1)) = uVar19 ^ uVar21;
  uVar14 = (ulonglong)DAT_182671ec4;
  uVar19 = *(ulonglong *)(lVar2 + -0xca8);
  *(ulonglong *)(lVar2 + -0xca8) = CONCAT44(uVar11,uVar5) ^ 0x843d126441996904;
  *(ulonglong *)(lVar2 + -0xd8) = uVar19 ^ uVar14;
  *(ulonglong *)(lVar2 + -0xd40) = CONCAT44(uVar16,uVar11) ^ 0x2840f19576a8c84b;
  *(ulonglong *)(lVar2 + -0x420) = uVar19 + 1;
  *(byte *)(lVar2 - (uVar26 ^ 0x5bc59461)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar18 ^ 0x3110d349)) ^ uVar14) ^ (byte)DAT_182671f28 ^
       (byte)DAT_182671d08;
  *(ulonglong *)(lVar2 + -0xd8) = uVar24 ^ 0x82eb6bd6c3d28d1f;
  *(ulonglong *)(lVar2 + -0xae0) =
       (*(ulonglong *)(lVar2 + -0xd30) ^ uVar21) + (CONCAT44(uVar16,uVar16) ^ 0x5854a7105854a711);
  *(undefined8 *)(lVar2 + -0x760) = 0x57b4f6bf561fb017;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0xd3913c20)) ^ uVar21) =
       *(byte *)(lVar2 - (uVar25 ^ 0x5854a571)) ^ (byte)DAT_182671f28;
  *(byte *)(lVar2 + -0x261) = (byte)DAT_182671c94 ^ 0x73;
  *(undefined8 *)(lVar2 - (uVar26 ^ 0x5bc59730)) = *(undefined8 *)(lVar2 + -0xae0);
  *(undefined8 *)(lVar2 - (uVar25 ^ 0x5854adf0)) = 0x7adb5b76175e2ab5;
  *(undefined8 *)(lVar2 + -0x4a0) = *(undefined8 *)(lVar2 + -0x420);
  uVar6 = DAT_182671e60;
  bVar12 = (byte)DAT_182671d40;
  uVar4 = DAT_182671c48;
  uVar15 = DAT_182671c48 ^ uVar8;
  uVar14 = (ulonglong)DAT_182671e60;
  uVar21 = (ulonglong)DAT_182671cd0;
  uVar19 = CONCAT44(DAT_182671c48,uVar8);
  uVar25 = CONCAT44(DAT_182671c48,uVar15);
  DAT_182671c64 = uVar15;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x5fffdf1a)) = uVar19 ^ 0xefbf04b2146ea415;
  *(ulonglong *)(lVar2 + -0x908) = *(ulonglong *)(lVar2 + -0x130) ^ uVar21;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x7fbfda0f)) = uVar25 ^ 0xa856e550988898c1;
  *(ulonglong *)(lVar2 + -0x3d0) = uVar14 ^ *(ulonglong *)(lVar2 + -0x4a0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x204004a5)) = uVar19 ^ 0xaa66cd3f4e590a03;
  *(ulonglong *)(lVar2 + -0xb20) = CONCAT44(uVar8,uVar15) ^ 0xe120287c68e5f1f6;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x7fbfd36f)) =
       (CONCAT44(uVar15,uVar8) ^ 0x5fffdb3a7fbfdb3e) +
       ((ulonglong)uVar6 ^ *(ulonglong *)(lVar2 + -0x3d0));
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x5fffd0e2)) =
       *(ulonglong *)(lVar2 + -0x828) >> ((byte)*(undefined8 *)(lVar2 + -0xc90) & 0x3f);
  *(undefined8 *)(lVar2 + -0xc90) = 0x404ae90881621d69;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar25 ^ 0xb9a5088f5757ac5c;
  uVar7 = DAT_182671c58;
  uVar6 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671c54;
  *(byte *)(lVar2 + -0x669) =
       *(byte *)(uVar14 ^ *(ulonglong *)(lVar2 + -0x3d0)) ^ bVar12 ^ (byte)DAT_182671d08;
  uVar22 = uVar6 & uVar7;
  uVar19 = (ulonglong)uVar22;
  DAT_182671c94 = uVar22;
  *(ulonglong *)(lVar3 + -0x3d0) = CONCAT44(uVar22,uVar7) ^ 0x4533328b19500ec4;
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x40001128)) = (uVar21 ^ *(ulonglong *)(lVar3 + -0x908)) + 1;
  *(byte *)(uVar21 ^ *(ulonglong *)(lVar3 + -0x908)) = bVar12 ^ *(byte *)(lVar3 + -0x669);
  *(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0xdefb2c91)) = (byte)uVar6 ^ 0x2b;
  uVar14 = (ulonglong)DAT_182671e08;
  *(ulonglong *)(lVar3 + -0xd88) = CONCAT44(uVar6,uVar22) ^ 0x2b101057586360db;
  *(undefined8 *)(lVar3 - (uVar18 ^ 0x40001e40)) = *(undefined8 *)(lVar3 + -0x220);
  pbVar20 = *(byte **)(lVar3 + -0x850);
  *(uint *)(lVar3 + -0x634) = uVar22 ^ 0xc7f924fb;
  uVar21 = (ulonglong)DAT_182671f68;
  *(ulonglong *)(lVar3 + -0x220) = CONCAT44(uVar7,uVar7) ^ 0x21c6b2b87bd72570;
  *(byte **)(lVar3 + -0xb68) = pbVar20;
  *(ulonglong *)(lVar3 + -0x850) = CONCAT44(uVar8,uVar7) ^ 0x6d3b8b2e9766b214;
  *(ulonglong *)(lVar3 + -0x168) = *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x7fbfd677)) ^ uVar21;
  *(ulonglong *)(lVar3 + -0xd48) = CONCAT44(uVar6,uVar7) ^ 0x6379046366efff32;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xc88) = uVar14 ^ (ulonglong)pbVar20;
  *(ulonglong *)(lVar2 + -0xb68) = uVar25 ^ 0x79569fcd8646890a;
  *(ulonglong *)(lVar2 + -0x800) = (*(ulonglong *)(lVar2 - (uVar19 ^ 0x40000e80)) ^ uVar14) + 1;
  *(byte *)(lVar2 + -0x341) = *pbVar20 ^ (byte)DAT_182671f84 ^ (byte)DAT_182671d08;
  uVar14 = (ulonglong)DAT_182671f80;
  *(uint *)(lVar2 + -0xa94) = uVar8 ^ 0x48c5135c;
  *(undefined4 *)(uVar14 ^ *(ulonglong *)(lVar2 + -0xd70)) = 0x63a6bf61;
  *(undefined8 *)(lVar2 + -0xd70) = 0xc1f1a6dca0ac81d3;
  *(ulonglong *)(lVar2 + -0xc88) = CONCAT44(uVar4,uVar4) ^ 0x376b3c3bf9542b33;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x7fbfde9f)) = (uVar21 ^ *(ulonglong *)(lVar2 + -0x168)) + 1;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar27 ^ 0x7fbfda57)) ^ uVar21) =
       *(byte *)(DAT_182671c40 - (uVar18 ^ 0x40001049)) ^ (byte)DAT_182671f84;
  *(undefined8 *)(lVar2 + -0xbe0) = *(undefined8 *)(lVar2 + -0x5a0);
  *(byte *)(lVar2 + -0x341) = (byte)uVar7 ^ 0x99;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x400016a8)) = CONCAT44(uVar7,uVar6) ^ 0xa0b644f210330a53;
  *(ulonglong *)(lVar2 + -0xc38) =
       (CONCAT44(uVar6,uVar22) ^ 0x11d279d35884c83a) + *(longlong *)(lVar2 + -0x828);
  uVar9 = DAT_182671c70;
  uVar18 = (ulonglong)DAT_182671d4c;
  uVar21 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x7fbfd317)) = CONCAT44(uVar15,uVar4) ^ 0xbbdda75926b858df;
  *(undefined8 *)(lVar2 + -0x6c8) = *(undefined8 *)(lVar2 - (uVar19 ^ 0x40000a08));
  *(ulonglong *)(lVar2 + -0x800) = CONCAT44(uVar4,uVar4) ^ 0x541f2ffcfa722989;
  uVar14 = (ulonglong)DAT_182671d38;
  *(ulonglong *)(lVar2 + -0xc38) = CONCAT44(uVar6,uVar7) ^ 0x30d9167713afa9a8;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa78) = CONCAT44(uVar22,uVar9) ^ 0xb65f92e6bf76a3d6;
  puVar17 = (ulonglong *)(lVar2 - (uVar19 ^ 0x400009e8));
  *(ulonglong *)(lVar2 + -0x968) = uVar18 ^ *puVar17;
  uVar19 = CONCAT44(uVar5,DAT_182671c4c);
  *puVar17 = CONCAT44(uVar10,uVar11) ^ 0x180378efa6741461;
  *(ulonglong *)(lVar2 + -0x198) = uVar14 ^ *(ulonglong *)(lVar2 + -0x6c8);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x7fbfddf7)) = uVar19 ^ 0x4e342c932ae8c3fe;
  bVar12 = (byte)DAT_182671cc8;
  pbVar20 = (byte *)(uVar14 ^ *(ulonglong *)(lVar2 + -0x198));
  *(byte **)(lVar2 + -0x18) = pbVar20 + (CONCAT44(uVar22,uVar9) ^ 0x400002080f9fdb3e);
  *(byte *)(lVar2 - ((ulonglong)uVar7 ^ 0xdefb2821)) = bVar12 ^ (byte)DAT_182671d08 ^ *pbVar20;
  pbVar20 = (byte *)(uVar18 ^ *(ulonglong *)(lVar2 + -0x968));
  *(ulonglong *)(lVar2 + -0x198) = CONCAT44(uVar15,uVar15) ^ 0xb145d818469ba20c;
  *(byte **)(lVar2 + -0x68) = pbVar20 + (CONCAT44(uVar22,uVar8) ^ 0x400002087fbfdb3e);
  *(ulonglong *)(lVar2 + -0x920) = CONCAT44(DAT_182671c5c,uVar22) ^ 0xbb38862c4683e6f4;
  *pbVar20 = bVar12 ^ *(byte *)(lVar2 + -0x2d9);
  *(undefined1 *)(lVar2 + -0x2d9) = 0xe;
  *(undefined8 *)(lVar2 + -0x710) = *(undefined8 *)(lVar2 - ((ulonglong)uVar15 ^ 0x5fffdb52));
  *(ulonglong *)(lVar2 + -0x68) = CONCAT44(DAT_182671c84,uVar4) ^ 0xd66252af302c0618;
  *(undefined8 *)(lVar2 - (uVar21 ^ 0xf9fd08f)) = *(undefined8 *)(lVar2 + -0x18);
  *(ulonglong *)(lVar2 + -0x18) = CONCAT44(DAT_182671c68,uVar11) ^ 0xf77a9f4130dcb5c4;
  *(longlong *)(lVar2 - (uVar27 ^ 0x7fbfdcff)) =
       -0x5cad8634113fb0dc << (((byte)uVar6 ^ 0x13) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar16) * 4) = uVar13;
  return;
}



############ FUN_ 181011bf0 size=3263 ############

void FUN_181011bf0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte *pbVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte local_58;
  
  uVar11 = DAT_182671c94;
  uVar9 = DAT_182671c7c;
  uVar17 = DAT_182671c64;
  uVar7 = DAT_182671c58;
  lVar3 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c7c;
  uVar21 = DAT_182671c58 - DAT_182671c7c;
  uVar28 = (ulonglong)DAT_182671c64;
  uVar18 = (ulonglong)DAT_182671c94;
  uVar23 = (ulonglong)DAT_182671c58;
  uVar26 = DAT_182671c64 - DAT_182671c94;
  uVar2 = *(uint *)(&DAT_182613218 + DAT_1826720dc);
  uVar16 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c58 ^ 0xefb7f2ef) + (longlong)DAT_1826720dc) ^
           DAT_182671c7c;
  uVar30 = (ulonglong)DAT_182671c94;
  uVar27 = (ulonglong)DAT_182671e98;
  uVar20 = *(ulonglong *)(DAT_182671c40 + -0x440);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x2a8);
  DAT_182671c4c = uVar21;
  DAT_182671c60 = uVar26;
  *(ulonglong *)(DAT_182671c40 + -0xc98) = uVar20;
  *(ulonglong *)(lVar3 + -0x4f8) = *puVar1 ^ uVar27;
  bVar14 = (byte)DAT_182671d18;
  uVar31 = (ulonglong)uVar26;
  *(ulonglong *)(lVar3 + -0xbd8) =
       (CONCAT44(uVar17,uVar21) ^ 0xf5f4c97450fa09d8) +
       (CONCAT44(uVar26,uVar11) ^ 0xfbf33b7a989078e9);
  uVar25 = (ulonglong)DAT_182671e88;
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0xfc8dcbbd)) = uVar25 ^ uVar20;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar26 ^ 0x18f867e4)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xb8785ab7)) ^ uVar25) +
       (CONCAT44(uVar7,uVar9) ^ 0xefb7f2fffc8dce9c);
  lVar3 = DAT_182671c40;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x520);
  *(uint *)(DAT_182671c40 + -0x684) =
       *(uint *)(DAT_182671c40 - (uVar30 ^ 0x9f7ff027)) ^ DAT_182671ca4 | uVar26 ^ 0x63ee5e9d;
  *(byte *)(lVar3 + -0xc1) = *(byte *)(*puVar1 ^ uVar25) ^ (byte)DAT_182671cc0 ^ bVar14;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xf32a2dfa)) ^ (ulonglong)DAT_182671d3c) =
       (byte)uVar17 ^ 0xa6;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x698) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xefb7f607)) ^ uVar27) + 1;
  *(byte *)(*(ulonglong *)(lVar3 + -0x4f8) ^ uVar27) =
       *(byte *)(lVar3 + -0xc1) ^ (byte)DAT_182671cc0;
  *(undefined8 *)(lVar3 + -0xbe8) = *(undefined8 *)(lVar3 + -0x278);
  *(ulonglong *)(lVar3 + -0x3c8) = *(ulonglong *)(lVar3 + -0x698);
  *(ulonglong *)(lVar3 + -0xa60) =
       (CONCAT44(uVar9,uVar11) ^ 0xfd98f1ec6d7b6609) <<
       ((byte)*(undefined8 *)(lVar3 - ((ulonglong)uVar11 ^ 0x9f7ff173)) & 0x3f);
  uVar25 = (ulonglong)DAT_182671f80;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xefb7f257)) = uVar25 ^ *(ulonglong *)(lVar3 + -0x698);
  bVar13 = (byte)DAT_182671ddc;
  uVar19 = (ulonglong)DAT_182671d38;
  uVar20 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x18f86e74));
  *(ulonglong *)(lVar4 + -0x8c0) = uVar20 ^ uVar19;
  *(ulonglong *)(lVar4 + -0x528) = (CONCAT44(uVar9,uVar21) ^ 0xfc8dce9df32a2463) + uVar20;
  *(byte *)(lVar4 + -0x7c2) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar28 ^ 0xb8785757)) ^ uVar19) ^ bVar13 ^ bVar14;
  *(byte *)(*(ulonglong *)(lVar4 + -0x630) ^ (ulonglong)DAT_182671e80) = (byte)uVar21 ^ 0x50;
  uVar8 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c88;
  pbVar24 = (byte *)(DAT_182671c40 + -0x7c2);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xa8);
  *(ulonglong *)(DAT_182671c40 + -0xd60) =
       (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xb8785f3f)) ^ uVar25) +
       (CONCAT44(uVar21,uVar9) ^ 0xf32a2462fc8dce9c);
  uVar27 = (ulonglong)DAT_182671d64;
  *(byte *)(*puVar1 ^ uVar25) = bVar13 ^ *pbVar24;
  uVar19 = (ulonglong)DAT_182671eb8;
  uVar20 = *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xf32a2902));
  *(undefined8 *)(lVar3 + -0x778) = *(undefined8 *)(lVar3 + -0x528);
  *(ulonglong *)(lVar3 + -0xb50) = uVar20;
  *(ulonglong *)(lVar3 + -0x840) = uVar20 ^ uVar27;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x9f7ff81b)) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0xb87858ef)) ^ uVar19;
  bVar13 = (byte)DAT_182671d00;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xefb7f49f)) =
       (CONCAT44(uVar8,uVar17) ^ 0x90cdd36b8785f96) + (*(ulonglong *)(lVar3 + -0x1e0) ^ uVar19);
  uVar20 = (ulonglong)DAT_182671f0c;
  *(byte *)(lVar3 + -0x1c2) = *(byte *)(*(ulonglong *)(lVar3 + -0x1e0) ^ uVar19) ^ bVar13 ^ bVar14;
  *(undefined1 *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0xefb7fe37)) ^ uVar20) = 0x62;
  uVar10 = DAT_182671c90;
  uVar8 = DAT_182671c74;
  lVar4 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c90;
  uVar30 = (ulonglong)DAT_182671d90;
  uVar20 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x18f86d34)) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x840)) + (CONCAT44(uVar21,uVar11) ^ 0xf32a24629f7ff9fa);
  *(byte *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x840)) = bVar13 ^ *(byte *)(lVar3 + -0x1c2);
  bVar13 = (byte)DAT_182671f44;
  uVar20 = *(ulonglong *)(lVar3 - (uVar20 ^ 0x30488ead));
  uVar19 = (ulonglong)DAT_182671f5c;
  uVar17 = DAT_182671c48 ^ 0xfac65392;
  *(undefined8 *)(lVar3 + -0x978) = *(undefined8 *)(lVar3 + -0x660);
  *(ulonglong *)(lVar3 + -0x8e0) = uVar20;
  *(ulonglong *)(lVar3 + -0xb18) = *(ulonglong *)(lVar3 + -0x228) ^ 0xdf18d9f8b3e50df3;
  *(uint *)(lVar3 + -0x94c) = (uVar9 ^ 0x15477381) + uVar17;
  uVar17 = DAT_182671c54;
  uVar22 = uVar10 | DAT_182671c54;
  uVar32 = (ulonglong)DAT_182671c54;
  DAT_182671c5c = uVar22;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c54 ^ 0x40001818)) = uVar20 ^ uVar19;
  pbVar24 = *(byte **)(lVar4 + -0x978);
  *(ulonglong *)(lVar4 + -0x6b0) = uVar30 ^ (ulonglong)pbVar24;
  *(uint *)(lVar4 + -0x6c0) = (uVar8 ^ 0x56d600d8) * -0x6d1247e6;
  *(byte **)(lVar4 + -600) = pbVar24 + (CONCAT44(uVar26,DAT_182671c78) ^ 0x18f8659cfcdfffbe);
  *(byte *)(lVar4 + -0xcd1) = bVar13 ^ *pbVar24 ^ (byte)DAT_182671d18;
  lVar3 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(lVar4 + -0x1a8) ^ (ulonglong)DAT_182671d68) = (byte)uVar22 ^ 0x31;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xdc8c8f19)) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0xb10)) + 1;
  uVar12 = DAT_182671cd8;
  uVar20 = (ulonglong)DAT_182671cd8;
  *(byte *)(uVar19 ^ *(ulonglong *)(lVar3 + -0xb10)) = bVar13 ^ *(byte *)(lVar3 + -0xcd1);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar10 ^ 0xdc8c8219)) =
       *(undefined8 *)(lVar3 - ((ulonglong)uVar17 ^ 0x40001898));
  *(longlong *)(lVar3 + -0x960) =
       *(longlong *)(lVar3 + -0xc38) << ((byte)*(undefined8 *)(lVar3 + -0x380) & 0x3f);
  uVar19 = (ulonglong)DAT_182671ed0;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar17 ^ 0x40001f58)) = *(undefined8 *)(lVar3 + -600);
  *(ulonglong *)(lVar3 + -0xf8) = *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xdc8c9119)) ^ uVar19;
  uVar27 = (ulonglong)DAT_182671f30;
  *(uint *)(lVar3 - ((ulonglong)uVar10 ^ 0xdc8c841d)) =
       *(uint *)(lVar3 - ((ulonglong)uVar10 ^ 0xdc8c86f5)) | uVar17 ^ 0x3df89f5c;
  *(ulonglong *)(lVar3 + -0xcb8) = *(ulonglong *)(lVar3 + -0xc50) ^ uVar27;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x400012b8)) = *(ulonglong *)(lVar3 + -0xc50) + 1;
  *(byte *)(lVar3 + -0x291) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x40001fb0)) ^ uVar27) ^
       (byte)DAT_182671e8c ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar3 + -0x608) ^ uVar20) = (byte)uVar17 ^ 0x31;
  lVar4 = DAT_182671c40;
  uVar25 = CONCAT44(uVar22,uVar17) ^ 0xdc8c978940001309;
  pbVar24 = (byte *)(uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0xf8));
  *(byte **)(DAT_182671c40 + -0xbf0) = pbVar24 + uVar25;
  *pbVar24 = *(byte *)(lVar4 + -0x291) ^ (byte)DAT_182671e8c;
  uVar20 = *(ulonglong *)(lVar4 + -0xc90) >> ((byte)*(undefined8 *)(lVar4 + -0xa60) & 0x3f);
  *(ulonglong *)(lVar4 + -0x5e8) = uVar20;
  *(ulonglong *)(lVar4 + -0x260) = *(ulonglong *)(lVar4 + -0xbf0);
  *(undefined8 *)(lVar4 + -0xa48) = *(undefined8 *)(lVar4 - ((ulonglong)uVar22 ^ 0xdc8c9639));
  lVar3 = *(longlong *)(lVar4 - (uVar23 ^ 0xdc8c86a1));
  *(ulonglong *)(lVar4 + -0x290) = *(ulonglong *)(lVar4 + -0xbf0) ^ uVar27;
  uVar19 = (ulonglong)DAT_182671ee4;
  *(ulonglong *)(lVar4 + -0x30) = lVar3 - uVar20;
  pbVar24 = *(byte **)(lVar4 - (uVar23 ^ 0xdc8c8ec1));
  *(ulonglong *)(lVar4 + -0x958) = (ulonglong)pbVar24 ^ uVar19;
  lVar3 = DAT_182671c40;
  *(byte **)(lVar4 + -0x88) = pbVar24 + uVar25;
  lVar5 = DAT_182671c40;
  *(byte *)(lVar4 + -0x1c1) = *pbVar24 ^ (byte)DAT_182671ea4 ^ (byte)DAT_182671d18;
  uVar15 = DAT_182671ea0;
  *(byte *)(*(ulonglong *)(lVar5 + -0x388) ^ (ulonglong)DAT_182671ea0) = (byte)uVar22 ^ 0x61;
  uVar6 = DAT_182671c50;
  uVar20 = CONCAT44(uVar22,DAT_182671c50);
  *(byte *)(lVar3 + -0x182) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xdc8c8dd1)) ^ uVar19) ^
       (byte)DAT_182671d18;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xdc8c9659)) =
       (uVar20 ^ 0xdc8c97895bc59601) + (*(ulonglong *)(lVar3 + -0x290) ^ uVar27);
  uVar20 = (ulonglong)DAT_182671e58;
  *(byte *)(*(ulonglong *)(lVar3 + -0x290) ^ uVar27) =
       *(byte *)(lVar3 + -0x1c1) ^ (byte)DAT_182671ea4;
  *(undefined8 *)(lVar3 + -0xad0) = *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671c68 ^ 0xffbffd0f))
  ;
  *(undefined8 *)(lVar3 - (uVar29 ^ 0x90cd906)) = *(undefined8 *)(lVar3 + -0x88);
  uVar19 = (ulonglong)DAT_182671eac;
  *(ulonglong *)(lVar3 + -0x108) = uVar19 ^ *(ulonglong *)(lVar3 + -0xad0);
  lVar4 = DAT_182671c40;
  pbVar24 = *(byte **)(lVar3 - ((ulonglong)uVar17 ^ 0x40001738));
  *(ulonglong *)(lVar3 + -0x680) =
       (CONCAT44(uVar22,uVar26) ^ 0x841f952ce50523ac) <<
       ((byte)*(undefined8 *)(lVar3 + -0x30) & 0x3f);
  *(ulonglong *)(lVar3 + -0x2a0) = (ulonglong)pbVar24 ^ uVar20;
  uVar17 = DAT_182671c64;
  *(byte **)(lVar3 + -0x90) = pbVar24 + 1;
  bVar13 = (byte)DAT_182671d18;
  *(byte *)(lVar4 + -0xa13) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x6b0) ^ uVar30) ^ (byte)DAT_182671d18;
  lVar3 = DAT_182671c40;
  *(byte *)(lVar4 + -0xc29) = (byte)uVar12 ^ *pbVar24 ^ bVar13;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar32 ^ 0x400012c8)) ^ (ulonglong)DAT_182671cbc) =
       (byte)uVar17 ^ 0xbe;
  pbVar24 = (byte *)(uVar19 ^ *(ulonglong *)(lVar3 + -0x108));
  local_58 = (byte)uVar11;
  *(byte **)(lVar3 + -0x5f8) = pbVar24 + (CONCAT44(uVar11,uVar9) ^ 0x9f7ff9fbfc8dce9c);
  *pbVar24 = (byte)uVar12 ^ *(byte *)(lVar3 + -0xc29);
  *(longlong *)(lVar3 + -0xa78) = *(longlong *)(lVar3 + -0xa08) << ((local_58 ^ 0xc1) & 0x3f);
  uVar19 = (ulonglong)DAT_182671c78;
  uVar20 = CONCAT44(uVar7,DAT_182671c78);
  *(undefined8 *)(lVar3 - (uVar18 ^ 0x9f7ff073)) = *(undefined8 *)(lVar3 + -0x5f8);
  *(ulonglong *)(lVar3 + -0xa50) =
       CONCAT44(DAT_182671c80,uVar22) ^ 0xa2574f9246e8ab53 | *(ulonglong *)(lVar3 + -0xa60);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar22 ^ 0xdc8c9609)) = *(undefined8 *)(lVar3 + -0x90);
  pbVar24 = *(byte **)(lVar3 + -0x180);
  *(ulonglong *)(lVar3 + -0x110) = (uVar20 ^ 0x312a67863101c041) >> (((byte)uVar8 ^ 0x9a) & 0x3f);
  uVar18 = (ulonglong)DAT_182671f00;
  *(ulonglong *)(lVar3 + -0xcf8) = *(ulonglong *)(lVar3 + -0x988) ^ uVar18;
  *(ulonglong *)(lVar3 + -0x330) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182671ec0;
  *(byte **)(lVar3 + -0xdb0) = pbVar24 + 1;
  *(byte *)(lVar3 + -0xd21) = (byte)uVar15 ^ *pbVar24 ^ bVar13;
  uVar20 = (ulonglong)DAT_182671d08;
  *(undefined1 *)(lVar3 + -0x409) = 0x3e;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x930) ^ uVar20) = 0xa4;
  *(ulonglong *)(lVar3 + -0xb58) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x7fbfd7c7)) ^ uVar18) +
       (CONCAT44(uVar8,DAT_182671c84) ^ 0xfbf97f9f30488604);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0x18f86964)) ^ uVar18) =
       (byte)uVar15 ^ *(byte *)(lVar3 + -0xd21);
  uVar20 = CONCAT44(uVar7,uVar6) ^ *(ulonglong *)(lVar3 + -0xa60) ^ 0x461cf99ed48a8fd6;
  *(ulonglong *)(lVar3 + -0x828) = uVar20;
  *(ulonglong *)(lVar3 + -0xda8) = uVar20 << ((byte)*(undefined8 *)(lVar3 + -0xa78) & 0x3f);
  *(undefined1 *)(lVar3 + -0xd21) = 0xcd;
  *(undefined8 *)(lVar3 + -0x740) = *(undefined8 *)(lVar3 + -0xb58);
  *(undefined8 *)(lVar3 - (uVar19 ^ 0xfcdffbef)) =
       *(undefined8 *)(lVar3 - ((ulonglong)uVar21 ^ 0xf32a29d2));
  *(ulonglong *)(lVar3 + -0x858) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c48 ^ 0xecfff8bf)) ^ (ulonglong)DAT_182671f68;
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(uVar11,uVar10) ^ 0xefd95596c638c81e) <<
       ((byte)*(undefined8 *)(lVar3 + -0xa78) & 0x3f);
  *(ulonglong *)(lVar3 + -0xcd0) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0xb8785bc7)) ^ (ulonglong)DAT_182671dbc;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar2 ^ uVar21;
  return;
}



############ FUN_ 18102e450 size=5737 ############

void FUN_18102e450(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte bVar48;
  ulonglong uVar49;
  byte bVar50;
  uint uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte local_res18;
  byte local_128;
  byte local_90;
  
  uVar10 = DAT_182671c94;
  uVar9 = DAT_182671c8c;
  uVar8 = DAT_182671c7c;
  uVar6 = DAT_182671c70;
  uVar5 = DAT_182671c58;
  uVar4 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  uVar49 = (ulonglong)DAT_182671c8c;
  uVar35 = (ulonglong)DAT_182671c54;
  uVar47 = (ulonglong)DAT_182671c94;
  uVar24 = (ulonglong)DAT_182671c7c;
  uVar36 = (ulonglong)DAT_182671c70;
  uVar51 = DAT_182671c7c & DAT_182671c70;
  uVar26 = (DAT_182671c8c << 0x10 | DAT_182671c8c & 0xff00) << 8 | DAT_182671c8c >> 8 & 0xff00 |
           DAT_182671c8c >> 0x18;
  uVar32 = (DAT_182671c54 << 0x10 | DAT_182671c54 & 0xff00) << 8 | DAT_182671c54 >> 8 & 0xff00 |
           DAT_182671c54 >> 0x18;
  uVar14 = (ulonglong)DAT_182671c58;
  uVar44 = DAT_182671c58 + DAT_182671c94;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar14 ^ 0x71785b06) + (longlong)DAT_182672138);
  uVar13 = *(uint *)(&DAT_182613220 + DAT_182672138) ^ DAT_182671c94;
  uVar15 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar28 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar38 = (ulonglong)DAT_182671c54;
  uVar39 = CONCAT44(DAT_182671f64,DAT_182671f64) ^ uVar28 ^ uVar15 ^
           *(ulonglong *)(DAT_182671c40 + -0xd88) ^ *(ulonglong *)(DAT_182671c40 + -0xc38);
  DAT_182671c4c = uVar44;
  DAT_182671c50 = uVar32;
  DAT_182671c68 = uVar26;
  DAT_182671c80 = uVar51;
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar39;
  uVar11 = DAT_182671f70;
  uVar19 = (ulonglong)uVar32;
  bVar18 = (byte)(uVar4 >> 0x18);
  uVar33 = (*(ulonglong *)(lVar2 - (uVar38 ^ 0x71785576)) ^ uVar15) >> ((bVar18 ^ 0x51) & 0x3f);
  uVar38 = (ulonglong)uVar44;
  *(ulonglong *)(lVar2 + -0x110) = uVar33 ^ CONCAT44(DAT_182671ce8,DAT_182671ce8);
  uVar7 = DAT_182671dc8;
  lVar3 = DAT_182671c40;
  uVar20 = CONCAT44(uVar11,uVar11);
  uVar43 = (ulonglong)uVar51;
  bVar23 = (byte)uVar8;
  puVar16 = (ulonglong *)(lVar2 - (uVar43 ^ 0x3d9859cb));
  *(ulonglong *)(lVar2 + -0xc90) = (uVar39 ^ uVar15) << ((bVar23 ^ 0x5b) & 0x3f) ^ uVar20;
  uVar53 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0xda8) = (*puVar16 ^ uVar20 | uVar33) ^ uVar53;
  uVar52 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar29 = (ulonglong)uVar26;
  uVar40 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 - (uVar14 ^ 0x71785686)) ^ uVar28) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xbd9e78d3)) ^ uVar53) ^ uVar52;
  uVar28 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar20 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x103c0c33)) =
       uVar20 ^ uVar28 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x960) ^ *(ulonglong *)(lVar3 + -0x510);
  uVar7 = DAT_182671ea8;
  puVar34 = (ulonglong *)(lVar3 - (uVar38 ^ 0xa5719568));
  *puVar34 = (CONCAT44(uVar32,uVar26) ^ 0xd8c54e9b0f9bc7a5) +
             (CONCAT44(uVar32,uVar5) ^ 0xe22230739904177c);
  local_res18 = (byte)uVar4;
  uVar39 = (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar40) >> ((local_res18 ^ 0x2e) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar39 ^ CONCAT44(uVar7,uVar7);
  uVar33 = (*(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar40) << (((byte)uVar10 ^ 0x72) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar33 ^ CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar7 = DAT_182671d44;
  lVar2 = DAT_182671c40;
  uVar33 = uVar33 | uVar39;
  uVar39 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar33 ^ uVar39;
  uVar30 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xa5719358)) =
       (*(ulonglong *)(lVar2 - (uVar14 ^ 0x71785e1e)) ^ uVar28) - uVar33 ^ uVar30;
  uVar28 = CONCAT44(DAT_182671d24,DAT_182671d24);
  uVar33 = *(ulonglong *)(lVar2 + -0x888) ^ uVar28 ^ uVar39 ^ uVar52 ^
           *(ulonglong *)(lVar2 + -0x680);
  uVar41 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar2 + -0xa78) = uVar33;
  uVar33 = (uVar33 ^ uVar28) << 6;
  uVar37 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x7df955a7)) ^ uVar28) >>
           ((bVar23 ^ 0x41) & 0x3f);
  uVar28 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(lVar2 + -0x110) = uVar37 ^ uVar41;
  uVar7 = DAT_182671ea4;
  *(ulonglong *)(lVar2 + -0xc90) = uVar33 ^ uVar28;
  uVar39 = CONCAT44(uVar7,uVar7);
  uVar37 = uVar37 | uVar33;
  *(ulonglong *)(lVar2 + -0xd88) = uVar37 ^ uVar39;
  puVar25 = (ulonglong *)(lVar2 - (uVar49 ^ 0x103c0153));
  uVar28 = CONCAT44(DAT_182671d38,DAT_182671d38);
  uVar42 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar2 + -0x960) = (uVar52 ^ *puVar25) - uVar37 ^ uVar28;
  puVar27 = (ulonglong *)(lVar2 - (uVar14 ^ 0x71785106));
  *puVar27 = *(ulonglong *)(lVar2 + -0xc38) ^ *(ulonglong *)(lVar2 + -0xda8) ^ uVar42 ^ uVar30 ^
             uVar53;
  puVar21 = (ulonglong *)(lVar2 - (uVar35 ^ 0x71785506));
  uVar37 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *(ulonglong *)(lVar2 + -0x5e8) = (*puVar21 ^ uVar42) >> (((byte)uVar51 ^ 0x4d) & 0x3f) ^ uVar37;
  uVar33 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xe5f7a59)) =
       (*(ulonglong *)(lVar2 + -0xa08) ^ uVar42) << 0x2a ^ uVar33;
  lVar3 = DAT_182671c40;
  uVar42 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar33 = *(ulonglong *)(lVar2 - (uVar38 ^ 0xa5719d48)) ^ uVar33 |
           *(ulonglong *)(lVar2 + -0x5e8) ^ uVar37;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar33 ^ uVar42;
  uVar7 = DAT_182671e90;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (CONCAT44(uVar5,uVar6) ^ 0x2a84766bd574efa8) + (CONCAT44(uVar51,uVar26) ^ 0xa2e608d50cd67fec)
  ;
  uVar45 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x680) = (*(ulonglong *)(lVar2 + -0xc38) ^ uVar30) - uVar33 ^ uVar45;
  uVar7 = DAT_182671f40;
  *(undefined1 *)(lVar2 + -0x2e9) = **(undefined1 **)(lVar2 - (uVar29 ^ 0xdb093b48));
  uVar37 = CONCAT44(uVar7,uVar7);
  puVar31 = (ulonglong *)(lVar2 - (uVar49 ^ 0x103c0203));
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xa5719518)) =
       uVar37 ^ uVar42 ^ uVar28 ^ *puVar31 ^ *(ulonglong *)(lVar2 + -0x960);
  uVar30 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  bVar50 = (byte)uVar6;
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 + -0xa78) ^ uVar37) >> ((bVar23 ^ 0x55) & 0x3f) ^ uVar30;
  uVar33 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *puVar16 = (*(ulonglong *)(lVar3 + -0xa78) ^ uVar37) << ((bVar50 ^ 0xcd) & 0x3f) ^ uVar33;
  lVar2 = DAT_182671c40;
  uVar54 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *puVar25 = (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x71785e1e)) ^ uVar30 |
             *(ulonglong *)(DAT_182671c40 + -0xc90) ^ uVar33) ^ uVar54;
  puVar17 = (ulonglong *)(lVar2 - (uVar47 ^ 0x33f94d32));
  uVar30 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar2 + -0xda8) =
       (*puVar17 ^ uVar28) - (*(ulonglong *)(lVar2 + -0x888) ^ uVar54) ^ uVar30;
  uVar51 = DAT_182671c98;
  puVar22 = (ulonglong *)(lVar2 - (uVar24 ^ 0xbd9e7f73));
  uVar53 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *puVar22 = *(ulonglong *)(lVar2 + -0xd88) ^ uVar53 ^ uVar45 ^ uVar39 ^
             *(ulonglong *)(lVar2 + -0x680);
  uVar7 = DAT_182671d3c;
  puVar25 = (ulonglong *)(DAT_182671c40 + -0xa08);
  uVar33 = ((ulonglong)uVar51 << 0x14 | (ulonglong)(uVar51 >> 0xc)) ^ *puVar34 >> 0xc;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar33 ^ CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar11 = DAT_182671e7c;
  lVar2 = DAT_182671c40;
  bVar48 = (byte)uVar5;
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar42 = (*puVar25 ^ uVar53) << ((bVar48 ^ 0x3a) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar42 ^ uVar37;
  uVar51 = DAT_182671e9c;
  uVar7 = DAT_182671e08;
  uVar39 = (ulonglong)DAT_182671e9c;
  uVar52 = CONCAT44(uVar11,uVar11);
  uVar33 = (uVar42 | uVar33) ^ uVar52;
  *(ulonglong *)(lVar2 + -0x510) = uVar33;
  uVar42 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xc38) =
       (uVar45 ^ *(ulonglong *)(lVar2 + -0x680)) -
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0x3d98504b)) ^ uVar52) ^ uVar42;
  uVar46 = CONCAT44(uVar51,uVar51);
  uVar45 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar2 + -0xbd8) =
       *(ulonglong *)(lVar2 - (uVar35 ^ 0x717852a6)) ^ uVar33 ^ uVar46 ^ uVar52 ^ uVar30;
  uVar7 = DAT_182671f18;
  *(ulonglong *)(lVar2 + -0xa78) =
       *(ulonglong *)(lVar2 - (uVar29 ^ 0xdb0937c8)) >> 0x19 ^
       ((ulonglong)(uVar51 >> 0x19) | uVar39 << 7) ^ uVar45;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x110) = (uVar46 ^ *puVar31) << ((bVar18 ^ 0x56) & 0x3f) ^ uVar33;
  puVar25 = (ulonglong *)(lVar2 - (uVar49 ^ 0x103c054b));
  *puVar25 = *puVar27 ^ CONCAT44(uVar6,uVar8) ^ uVar53 ^ 0x766c5994daa597c5;
  lVar2 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x7df956bf)) =
       (uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0x110) |
       *(ulonglong *)(DAT_182671c40 + -0xa78) ^ uVar45) ^ uVar39;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xa57192e8)) =
       (CONCAT44(uVar26,uVar5) ^ 0xcea2e14a98f2c87f) << ((bVar48 ^ 0x1b) & 0x3f);
  uVar7 = DAT_182671cc4;
  uVar39 = uVar39 ^ *(ulonglong *)(lVar2 + -0x960);
  uVar33 = (*(ulonglong *)(lVar2 + -0xda8) ^ uVar30) - (CONCAT44(uVar32,uVar9) ^ 0x693957fbe4ed4422)
  ;
  *(ulonglong *)(lVar2 + -0x228) = uVar33 ^ CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar30 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar33 - uVar39 ^ uVar30;
  *(ulonglong *)(lVar2 + -0x680) = 0xa9228eeb9d7af1e7 >> ((local_res18 ^ 0x29) & 0x3f);
  uVar7 = DAT_182671e3c;
  *(ulonglong *)(lVar2 + -0x510) = uVar39 - (CONCAT44(uVar10,uVar26) ^ 0x2ef91895b344cb0d) ^ uVar41;
  uVar39 = CONCAT44(uVar7,uVar7);
  uVar54 = *(ulonglong *)(lVar2 + -0xc38) ^ *(ulonglong *)(DAT_182671c40 + -0x888) ^ uVar39 ^ uVar42
           ^ uVar54;
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar54;
  uVar7 = DAT_182671eac;
  lVar2 = DAT_182671c40;
  uVar52 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x7df9534f)) ^ uVar39) >> ((bVar50 ^ 0xfe) & 0x3f)
       ^ uVar52;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar47 ^ 0x33f94542)) = (uVar54 ^ uVar39) << 0x1f ^ uVar33;
  uVar7 = DAT_182671d7c;
  uVar39 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *(ulonglong *)(lVar2 + -0xa78) =
       (*(ulonglong *)(lVar2 - (uVar49 ^ 0x103c08cb)) ^ uVar33 |
       *(ulonglong *)(lVar2 + -0xa08) ^ uVar52) ^ uVar39;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x3d9858d3)) =
       (*(ulonglong *)(lVar2 + -0xc38) ^ uVar42) - (CONCAT44(uVar4,uVar44) ^ 0x1bf4cbbfdf0a5ce) ^
       uVar33;
  uVar42 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  puVar27 = (ulonglong *)(lVar2 - (uVar19 ^ 0xe5f7209));
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 + -0xd88) ^ uVar33) - (*(ulonglong *)(lVar2 + -0xa78) ^ uVar39) ^
       uVar42;
  uVar7 = DAT_182671e18;
  uVar33 = (CONCAT44(uVar8,uVar5) ^ 0x62afb201945d5a4e) + (uVar39 ^ *puVar27) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x228) = uVar33;
  uVar11 = DAT_182671eec;
  lVar3 = DAT_182671c40;
  uVar39 = CONCAT44(uVar7,uVar7);
  uVar20 = *(ulonglong *)(lVar2 + -0x5e8) ^ uVar39 ^ uVar33 ^ uVar30 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x680) = uVar20;
  uVar7 = DAT_182671ca4;
  uVar45 = (uVar39 ^ uVar20) >> ((local_res18 ^ 0xb) & 0x3f);
  local_90 = (byte)uVar51;
  *(ulonglong *)(lVar3 + -0x960) = uVar45 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 + -0xa08) ^ uVar52) << ((local_90 ^ *(byte *)(lVar3 + -0xbd8)) & 0x3f);
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar52 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar3 + -0xc90) = (uVar39 ^ uVar20) << (bVar23 & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xa5719e70)) = (*puVar25 ^ uVar33 | uVar45) ^ uVar52;
  uVar45 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar3 + -0xc38) =
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar30) - (uVar52 ^ *(ulonglong *)(lVar3 + -0x110)) ^
       uVar45;
  *(ulonglong *)(lVar3 + -0xd88) =
       CONCAT44(uVar9,uVar5) ^ CONCAT44(uVar32,uVar44) ^ 0x8e44d496ca13702e;
  uVar7 = DAT_182671f00;
  lVar2 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671db0,DAT_182671db0);
  uVar41 = *(ulonglong *)(lVar3 - (uVar47 ^ 0x33f94142)) ^
           *(ulonglong *)(lVar3 - (uVar29 ^ 0xdb0931b8)) ^ uVar38 ^ uVar42 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xa78) = uVar41;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar14 ^ 0x71785926)) =
       (uVar41 ^ uVar38) >> ((bVar50 ^ 0xfa) & 0x3f) ^ uVar33;
  uVar7 = DAT_182671dc0;
  uVar38 = (*(ulonglong *)(lVar2 + -0xa78) ^ uVar38) << 0x1b;
  *(ulonglong *)(lVar2 + -0xa08) = uVar38 ^ uVar28;
  uVar11 = DAT_182671f08;
  uVar39 = CONCAT44(uVar7,uVar7);
  uVar38 = *(ulonglong *)(lVar2 - (uVar47 ^ 0x33f9467a)) ^ uVar33 | uVar38;
  uVar28 = uVar38 ^ uVar39;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar28;
  uVar20 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x888) = (*(ulonglong *)(lVar2 + -0xda8) ^ uVar42) - uVar38 ^ uVar20;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x7df9595f)) =
       *(ulonglong *)(lVar2 + -0xc38) ^ uVar39 ^ uVar45 ^ uVar53 ^ uVar28;
  uVar7 = DAT_182671e98;
  *(undefined1 *)(lVar2 + -0x6b9) = **(undefined1 **)(lVar2 + -0x370);
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x960) =
       ((ulonglong)(DAT_182671c98 >> 0x17) | (ulonglong)DAT_182671c98 << 9) ^
       *(ulonglong *)(lVar2 - (uVar35 ^ 0x7178598e)) >> 0x17 ^ uVar38;
  *puVar25 = CONCAT44(uVar5,uVar10) ^ *(ulonglong *)(lVar2 + -0x888) ^ uVar20 ^ 0x8e244aeb7fe11480;
  uVar7 = DAT_182671ee0;
  uVar28 = (uVar53 ^ *(ulonglong *)(lVar2 + -0x680)) << 0x29;
  *(ulonglong *)(lVar2 + -0x5e8) = uVar28 ^ uVar40;
  uVar11 = DAT_182671f04;
  uVar28 = uVar28 | uVar38 ^ *(ulonglong *)(lVar2 + -0x960);
  uVar39 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xd88) = uVar28 ^ uVar39;
  uVar12 = DAT_182671f60;
  lVar2 = DAT_182671c40;
  uVar47 = CONCAT44(uVar11,uVar11);
  puVar25 = (ulonglong *)(DAT_182671c40 + -0x888);
  uVar42 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (*(ulonglong *)(DAT_182671c40 + -0xc38) ^ uVar45) - uVar28 ^ uVar47;
  uVar38 = *puVar25 ^ uVar42 ^ uVar20 ^ uVar52 ^ *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0xa78) = uVar38;
  uVar7 = DAT_182671dec;
  uVar28 = CONCAT44(uVar12,uVar12);
  *puVar21 = (uVar38 ^ uVar42) >> ((bVar48 ^ 0x26) & 0x3f) ^ uVar28;
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x3d9858f3)) =
       (*(ulonglong *)(lVar2 + -0xa78) ^ uVar42) << ((bVar23 ^ 99) & 0x3f) ^ uVar38;
  uVar7 = DAT_182671f5c;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 + -0x228) ^ uVar33) >> ((bVar50 ^ 0xdc) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar30 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x7178539e)) =
       (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0xda8) | uVar28 ^ *puVar22) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x680) =
       *(ulonglong *)(CONCAT44(DAT_182671fac,DAT_182671fac) ^ *(ulonglong *)(lVar2 + -0x610)) ^
       uVar33;
  *puVar17 = (*(ulonglong *)(lVar2 + -0x888) ^ uVar20) - (*(ulonglong *)(lVar2 + -0xc90) ^ uVar30) ^
             uVar42;
  uVar38 = (ulonglong)DAT_182671efc;
  uVar28 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar35 = *(ulonglong *)(lVar2 + -0xc90) ^ uVar28 ^ uVar30 ^ uVar47 ^
           *(ulonglong *)(lVar2 + -0x510);
  uVar30 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(ulonglong *)(lVar2 + -0xc38) = uVar35;
  *(ulonglong *)(lVar2 + -0x110) = (uVar35 >> 0x20 ^ uVar38) >> 0x14 ^ uVar30;
  uVar20 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar33 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *puVar27 = (uVar35 ^ uVar28) << 0xc ^ uVar20;
  uVar51 = DAT_182671f28;
  uVar38 = *(ulonglong *)(lVar2 + -0x960);
  uVar28 = (ulonglong)DAT_182671f28;
  *(ulonglong *)(lVar2 + -0x228) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x110) | *(ulonglong *)(lVar2 + -0xa78) ^ uVar20) ^ uVar33;
  uVar7 = DAT_182671ecc;
  uVar8 = DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x7df95acf)) ^ uVar47) -
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0xdb093e38)) ^ uVar33) ^ uVar33;
  lVar3 = DAT_182671c40;
  uVar39 = *(ulonglong *)(lVar2 + -0xd88) ^ CONCAT44(uVar51,uVar51) ^ uVar42 ^ uVar39 ^ uVar38;
  puVar25 = (ulonglong *)(DAT_182671c40 - (uVar19 ^ 0xe5f7279));
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar39;
  uVar20 = *puVar25;
  *(uint *)(lVar3 + -0x76c) = (DAT_182671c80 ^ 0x39cd34d) << (((byte)uVar8 ^ 0xd7) & 0x1f);
  uVar35 = (uVar20 >> 0x20 ^ uVar28) >> 0x19;
  uVar28 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar3 + -0xda8) = uVar35 ^ CONCAT44(uVar7,uVar7);
  lVar2 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671d04,DAT_182671d04);
  uVar20 = (CONCAT44(uVar51,uVar51) ^ uVar39) << ((bVar23 ^ 0x7c) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar20 ^ uVar28;
  uVar35 = uVar35 | uVar20;
  *(ulonglong *)(lVar2 + -0x888) = uVar35 ^ uVar30;
  local_128 = (byte)uVar9;
  *puVar16 = (uVar42 ^ uVar38) - uVar35 ^ CONCAT44(DAT_182671ccc,DAT_182671ccc);
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671d88,DAT_182671d88);
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       (CONCAT44(uVar4,uVar26) ^ 0xa64a18b60ac0324a) >> (((byte)uVar51 ^ (byte)*puVar21) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x3d98544b)) =
       uVar28 ^ *(ulonglong *)(lVar2 + -0x888) ^ uVar30 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0xbd8);
  uVar20 = uVar28 ^ *(ulonglong *)(lVar2 + -0x110);
  *(ulonglong *)(lVar2 + -0xa78) = uVar20 >> ((byte)uVar20 & 0x3f);
  uVar43 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar2 + -0x510) = uVar20 >> (((byte)uVar10 ^ 0x5c) & 0x3f) ^ uVar43;
  uVar7 = DAT_182671c74;
  *(ulonglong *)(lVar2 + -0xd88) =
       (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar40) - (CONCAT44(uVar4,uVar4) ^ 0xec28482d27b7aaa1);
  uVar38 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar2 + -0xda8) = uVar20 << ((bVar18 ^ 0x43) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xe5f7ef1)) =
       (CONCAT44(uVar7,uVar5) ^ 0x5b15d23c7a3bbed9) >> ((local_128 ^ 0xdb) & 0x3f);
  uVar20 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xbd9e706b)) ^ uVar43 |
           uVar38 ^ *(ulonglong *)(lVar2 + -0xda8);
  *(ulonglong *)(lVar2 + -0x960) = uVar20 ^ uVar37;
  *(ulonglong *)(lVar2 + -0xa08) =
       (*(ulonglong *)(lVar2 - (uVar14 ^ 0x717850d6)) ^ uVar33) -
       (CONCAT44(uVar32,uVar6) ^ 0x720fdce0f242cd77) ^ uVar15;
  uVar38 = (CONCAT44(DAT_182671c78,uVar44) ^ 0x67f173177e06ed8c) +
           (uVar28 ^ *(ulonglong *)(lVar2 + -0x110));
  *(ulonglong *)(lVar2 + -0xc38) = uVar38;
  *(ulonglong *)(lVar2 + -0x888) = (uVar15 ^ *puVar34) - uVar20 ^ uVar46;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar44;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xdb093668)) = uVar38 ^ 0xbbfb64bea2433073;
  return;
}



############ FUN_ 180fd0e90 size=5368 ############

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

void FUN_180fd0e90(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  uint uVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  byte bVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  byte local_78;
  
  uVar11 = DAT_182671ee4;
  uVar10 = DAT_182671c8c;
  uVar31 = DAT_182671c88;
  uVar18 = DAT_182671c78;
  uVar17 = DAT_182671c4c;
  lVar8 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c8c;
  uVar44 = (ulonglong)DAT_182671c88;
  uVar25 = DAT_182671c4c * DAT_182671c78;
  uVar27 = DAT_182671c8c ^ DAT_182671c88;
  uVar7 = *(uint *)(&DAT_182613220 + DAT_182672014);
  uVar16 = *(uint *)(&DAT_182613218 + DAT_182672014) ^ DAT_182671c8c;
  uVar37 = (ulonglong)DAT_182671c88;
  DAT_182671c7c = uVar25;
  DAT_182671c90 = uVar27;
  *(byte *)(DAT_182671c40 + -0x1e1) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x990) ^ (ulonglong)DAT_182671ee0) ^
       (byte)DAT_182671f14;
  uVar12 = DAT_182671fa4;
  uVar40 = CONCAT44(uVar11,uVar11);
  puVar4 = (ulonglong *)(lVar8 + -0x380);
  uVar32 = ((ulonglong)DAT_182671ef0 << 0x1a | (ulonglong)(DAT_182671ef0 >> 6)) ^ *puVar4 >> 6;
  uVar29 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar8 + -0x110) = uVar32 ^ uVar40;
  uVar11 = DAT_182671ecc;
  uVar26 = (ulonglong)uVar17;
  *(ulonglong *)(lVar8 + -0x7e8) =
       (CONCAT44(uVar31,uVar27) ^ 0x8b59116b7f834250) <<
       (((byte)uVar12 ^ *(byte *)(lVar8 + -0x628)) & 0x3f);
  uVar19 = CONCAT44(uVar11,uVar11);
  puVar5 = (ulonglong *)(lVar8 + -0xb08);
  uVar29 = (*(ulonglong *)(lVar8 - (uVar26 ^ 0xa3981090)) ^ uVar29 | uVar32) ^ uVar19;
  *puVar5 = uVar29;
  uVar24 = CONCAT44(DAT_182671d24,DAT_182671d24);
  uVar28 = CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar32 = (ulonglong)uVar18;
  puVar38 = (ulonglong *)(lVar8 - (uVar32 ^ 0xb6e62b9e));
  *puVar38 = *(ulonglong *)(lVar8 + -0xa70) ^ uVar28 ^ uVar24 ^ uVar19 ^ uVar29;
  uVar19 = (ulonglong)DAT_182671e08;
  puVar6 = (ulonglong *)(lVar8 + -0xc18);
  uVar29 = CONCAT44(DAT_182671e08,DAT_182671e08);
  puVar33 = (ulonglong *)(lVar8 - (uVar37 ^ 0x88382ec2));
  uVar36 = (ulonglong)uVar25;
  *puVar33 = (CONCAT44(DAT_182671e6c,DAT_182671e6c) ^ *puVar6) +
             (uVar29 ^ *(ulonglong *)(lVar8 + -0x4b8)) ^ uVar40;
  lVar8 = DAT_182671c40;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x408);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar25 ^ 0x137d13f8)) =
       CONCAT44(uVar25,uVar31) << 0x35 ^ 0x47a0000000000000;
  uVar34 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar8 - (uVar32 ^ 0xb6e621a6)) =
       (uVar29 ^ *(ulonglong *)(lVar8 + -0x4b8)) << (((byte)uVar25 ^ 0xc6) & 0x3f) ^ uVar34;
  uVar19 = (*(ulonglong *)(lVar8 + -0x4b8) >> 0x20 ^ uVar19) >> 10;
  puVar2 = (ulonglong *)(lVar8 + -0x2b0);
  uVar30 = CONCAT44(DAT_182671de4,DAT_182671de4);
  *(ulonglong *)(lVar8 + -0xa50) = uVar19 ^ CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar29 = *puVar2;
  *puVar1 = (uVar34 ^ *puVar2 | uVar19) ^ uVar30;
  uVar14 = DAT_182671e28;
  uVar35 = (ulonglong)DAT_182671e28;
  *(ulonglong *)(lVar8 - (uVar26 ^ 0xa3981178)) =
       (uVar34 ^ uVar29) >> ((byte)(uVar34 ^ uVar29) & 0x3f);
  lVar8 = DAT_182671c40;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar29 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar27 ^ 0x50aed152)) ^ uVar34 ^ uVar30 ^
           uVar40 ^ *puVar1;
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  *puVar3 = uVar29;
  uVar30 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar8 + -0xb20) =
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar31 ^ 0x88382faa)) ^ uVar28) + (uVar29 ^ uVar34) ^
       uVar30;
  bVar21 = (byte)uVar10;
  puVar45 = (ulonglong *)(lVar8 - (uVar37 ^ 0x88382e02));
  uVar28 = CONCAT44(DAT_182671f44,DAT_182671f44);
  puVar20 = (ulonglong *)(lVar8 - ((ulonglong)uVar27 ^ 0x50aedaba));
  uVar19 = CONCAT44(DAT_182671f54,DAT_182671f54);
  *puVar20 = (uVar34 ^ *puVar45) << ((bVar21 ^ 0xb0) & 0x3f) ^ uVar28;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x760) = *puVar3 >> 0x20 ^ uVar19 ^ uVar35;
  lVar9 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar29 = *(ulonglong *)(DAT_182671c40 + -0xb18);
  uVar19 = (*(ulonglong *)(lVar8 - (uVar36 ^ 0x137d1b20)) ^ uVar28 |
           *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x137d1cb0)) ^ uVar19) ^ uVar34;
  *puVar4 = uVar19;
  uVar13 = DAT_182671e00;
  uVar28 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar9 + -0x7e8) =
       uVar28 ^ uVar19 ^ uVar34 ^ uVar30 ^ *(ulonglong *)(lVar9 + -0xb20);
  uVar12 = DAT_182671da8;
  uVar11 = DAT_182671d98;
  uVar37 = CONCAT44(DAT_182671da8,DAT_182671da8);
  *(ulonglong *)(lVar9 + -0x628) = (uVar29 ^ uVar40) + (uVar24 ^ *puVar38) ^ uVar37;
  local_78 = (byte)uVar31;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar9 - (uVar26 ^ 0xa39817a8)) =
       (uVar24 ^ *(ulonglong *)(lVar9 + -0x888)) << ((local_78 ^ 0xfa) & 0x3f) ^ uVar34;
  uVar29 = *(ulonglong *)(lVar9 + -0x110);
  uVar24 = (uVar24 ^ *(ulonglong *)(lVar9 + -0x888)) >> ((bVar21 ^ 0xb0) & 0x3f);
  *puVar5 = uVar24 ^ CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *puVar6 = 0x6231d955362a949c;
  uVar19 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *(ulonglong *)(lVar9 - (uVar32 ^ 0xb6e62b3e)) = (uVar24 | uVar34 ^ uVar29) ^ uVar19;
  uVar29 = *(ulonglong *)(lVar9 + -0x628);
  uVar24 = (ulonglong)DAT_182671f5c;
  uVar34 = CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar35 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar9 + -0x4b8) =
       *(ulonglong *)(lVar9 + -0x828) ^ uVar34 ^ uVar19 ^ uVar37 ^ uVar29;
  *(ulonglong *)(lVar9 + -0xa50) =
       (*(ulonglong *)(lVar9 - (uVar44 ^ 0x88382162)) ^ uVar34) +
       (CONCAT44(uVar17,uVar27) ^ 0x89340e3d74a9d194) ^ uVar35;
  puVar41 = (ulonglong *)(lVar9 - (uVar26 ^ 0xa3981d98));
  uVar19 = (CONCAT44(uVar18,uVar27) ^ 0xcab68787df1548e2) + (*puVar41 ^ uVar30);
  *puVar2 = uVar19 ^ CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar11 = DAT_182671ea4;
  uVar30 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar9 + -0x7c0) =
       (*(ulonglong *)(lVar9 - (uVar23 ^ 0xd896f5c0)) ^ uVar35) + uVar19 ^ uVar30;
  uVar34 = CONCAT44(uVar11,uVar11);
  *puVar1 = (*(ulonglong *)(lVar9 - (uVar36 ^ 0x137d1180)) ^ uVar35) << 0xe ^ uVar34;
  *(longlong *)(lVar9 + -0xa70) =
       *(longlong *)(lVar9 - (uVar32 ^ 0xb6e62f0e)) << (((byte)uVar12 ^ (byte)uVar29) & 0x3f);
  uVar19 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *puVar3 = (*(ulonglong *)(lVar9 + -0xa50) >> 0x20 ^ uVar24) >> 0x12 ^ uVar19;
  *(byte *)(lVar9 + -0x359) =
       *(byte *)(*(ulonglong *)(lVar9 + -0x708) ^ (ulonglong)DAT_182671f50) ^ (byte)DAT_182671f14;
  lVar8 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar9 - (uVar26 ^ 0xa3981648)) =
       (*(ulonglong *)(lVar9 - (uVar44 ^ 0x883821d2)) ^ uVar34 | uVar19 ^ *puVar45) ^ uVar29;
  uVar40 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(ulonglong *)(lVar8 - (uVar23 ^ 0xd896f8f0)) =
       uVar40 ^ uVar29 ^ uVar30 ^ *(ulonglong *)(lVar8 + -0x7c0) ^ *(ulonglong *)(lVar8 + -0xf0);
  *puVar4 = (CONCAT44(uVar27,uVar25) ^ 0xa0812a613cf0cf44) <<
            ((*(byte *)(lVar8 - (uVar44 ^ 0x88382232)) ^ (byte)uVar13) & 0x3f);
  uVar11 = DAT_182671d64;
  uVar24 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(lVar8 + -0xb18) =
       (CONCAT44(uVar25,uVar25) ^ 0x6aeec059e22918d2) + (*(ulonglong *)(lVar8 + -0x7e8) ^ uVar28) ^
       uVar24;
  lVar8 = DAT_182671c40;
  uVar46 = CONCAT44(uVar11,uVar11);
  *puVar38 = (CONCAT44(uVar10,uVar17) ^ 0x887b546803dd6648) +
             (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0x628)) ^ uVar46;
  uVar28 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar8 - (uVar36 ^ 0x137d1ac0)) =
       (uVar46 ^ *(ulonglong *)(lVar8 + -0x888)) + (*(ulonglong *)(lVar8 + -0xb18) ^ uVar24) ^
       uVar28;
  *puVar5 = uVar46 ^ *(ulonglong *)(lVar8 + -0x888) ^ 0x7a1e99aa37912de9;
  bVar22 = (byte)uVar27;
  uVar34 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar8 + -0x828) =
       (*(ulonglong *)(lVar8 + -0xb18) ^ uVar24) << ((bVar22 ^ 0x5a) & 0x3f) ^ uVar34;
  uVar37 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar19 = (*puVar33 ^ uVar24) >> ((local_78 ^ 0xea) & 0x3f);
  uVar29 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar8 + -0x4b8) = uVar19 ^ uVar37;
  uVar11 = DAT_182671d50;
  *puVar41 = (*(ulonglong *)(lVar8 - (uVar23 ^ 0xd896f7b8)) ^ uVar34 | uVar19) ^ uVar29;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar19 = uVar35 ^ uVar29 ^ uVar28 ^ *(ulonglong *)(lVar8 + -0xb20) ^
           *(ulonglong *)(lVar8 + -0x110);
  uVar29 = *(ulonglong *)(lVar8 + -0x7c0);
  *puVar2 = uVar19;
  uVar42 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar34 = (uVar35 ^ uVar19) << (((byte)uVar25 ^ 0xe4) & 0x3f);
  bVar39 = (byte)DAT_182671cd8;
  *puVar6 = (uVar19 ^ uVar35) + (uVar30 ^ uVar29) ^ uVar42;
  bVar15 = *(byte *)puVar6;
  *(ulonglong *)(lVar8 + -0xa70) = uVar34 ^ CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(lVar8 + -0xa50) = uVar34 >> ((bVar39 ^ bVar15) & 0x3f);
  uVar43 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar29 = (uVar35 ^ *puVar2) >> ((bVar21 ^ 0x9c) & 0x3f);
  *puVar1 = uVar29 ^ uVar43;
  lVar8 = DAT_182671c40;
  *puVar3 = (CONCAT44(uVar18,uVar25) ^ 0x61da5b5d2ae09f73) +
            (CONCAT44(uVar17,uVar18) ^ 0x46c377a7739d1e5a);
  *(ulonglong *)(lVar8 + -0xf0) = (uVar34 | uVar29) ^ uVar24;
  *(ulonglong *)(lVar8 - (uVar26 ^ 0xa3981538)) = uVar44 << 0x28 ^ 0x178b070000000000;
  uVar10 = DAT_182671c90;
  uVar30 = uVar40 ^ *(ulonglong *)(lVar8 + -0x760);
  uVar34 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar8 + -0x7e8) =
       uVar34 ^ uVar42 ^ uVar24 ^ *puVar6 ^ *(ulonglong *)(lVar8 + -0xf0);
  uVar11 = DAT_182671eb0;
  uVar24 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(lVar8 + -0x628) =
       (*(ulonglong *)(lVar8 - (uVar23 ^ 0xd896fe80)) ^ uVar28) + uVar30 ^ uVar24;
  *(uint *)(lVar8 + -0x4ac) = (uVar10 ^ 0x720f42d9) << (((byte)DAT_182671c7c ^ 0xc6) & 0x1f);
  uVar30 = uVar30 << (((byte)uVar18 ^ 0x2f) & 0x3f);
  *puVar5 = uVar30 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar8 + -0xb18) =
       (CONCAT44(uVar31,uVar25) ^ 0xb3fd79c230404523) -
       (CONCAT44(uVar25,uVar31) ^ 0xe856d433562d6dd8);
  uVar11 = DAT_182671dbc;
  uVar31 = DAT_182671c64;
  puVar33 = (ulonglong *)(lVar8 - (uVar32 ^ 0xb6e62476));
  uVar28 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar44 = (ulonglong)DAT_182671c64;
  uVar29 = (*puVar33 ^ uVar40) >> (((byte)uVar18 ^ 0x11) & 0x3f);
  *(ulonglong *)(lVar8 + -0x828) = uVar29 ^ uVar28;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x137d1f68)) = (uVar30 | uVar29) ^ uVar19;
  lVar8 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xb6e62836)) =
       uVar30 ^ uVar19 ^ uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0x628) ^
       *(ulonglong *)(DAT_182671c40 + -0x4b8);
  uVar30 = uVar30 ^ *(ulonglong *)(lVar8 + -0xb20);
  *(ulonglong *)(lVar8 + -0x7c0) =
       uVar19 ^ *(ulonglong *)(lVar8 + -0x4b8) | uVar46 ^ *(ulonglong *)(lVar8 + -0x888);
  uVar19 = (uVar42 ^ *puVar6) + uVar30 ^ uVar37;
  uVar29 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(lVar8 + -0xa50) = uVar19;
  *puVar2 = uVar30 << 0x17 ^ uVar29;
  uVar30 = uVar30 >> ((local_78 ^ 0xf3) & 0x3f);
  *puVar3 = uVar30 ^ uVar28;
  uVar11 = DAT_182671f64;
  uVar32 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar29 = (*(ulonglong *)(lVar8 - (uVar44 ^ 0xb8169a13)) ^ uVar29 | uVar30) ^ uVar32;
  *(ulonglong *)(lVar8 + -0xa70) = uVar29;
  uVar30 = CONCAT44(uVar11,uVar11);
  *puVar1 = uVar30 ^ uVar32 ^ uVar37 ^ uVar29 ^ uVar19;
  uVar12 = DAT_182671e48;
  uVar11 = DAT_182671e20;
  uVar28 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *puVar4 = (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x137d1c38)) ^ uVar34) +
            (uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0x628)) ^ uVar28;
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(DAT_182671c40 + -0x588)) ^
       CONCAT44(uVar12,uVar12);
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) << ((local_78 ^ 0xf2) & 0x3f) ^ uVar43;
  bVar15 = (byte)DAT_182671c84;
  *(uint *)(lVar8 - (uVar36 ^ 0x137d1d54)) = (DAT_182671c90 ^ 0xe03a632) + 0x4f999462;
  uVar12 = DAT_182671d54;
  uVar40 = (uVar34 ^ *(ulonglong *)(lVar8 + -0x7e8)) >> ((bVar15 ^ 0x1c) & 0x3f);
  *(ulonglong *)(lVar8 + -0xb18) = uVar40 ^ CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar11 = DAT_182671ca0;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar29 = *(ulonglong *)(lVar8 + -0xa50);
  *(ulonglong *)(lVar8 + -0x760) = (uVar43 ^ *(ulonglong *)(lVar8 + -0x110) | uVar40) ^ uVar32;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar32 = uVar35 ^ uVar32 ^ uVar28 ^ *puVar33 ^ *puVar4;
  *puVar5 = uVar32;
  uVar34 = (uVar35 ^ uVar32) << ((bVar21 ^ 0x95) & 0x3f);
  uVar36 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar19 = (uVar32 ^ uVar35) + (uVar37 ^ uVar29) ^ uVar24;
  uVar29 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar8 + -0x828) = uVar19;
  *(ulonglong *)(lVar8 + -0x888) = uVar34 ^ uVar36;
  uVar32 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar31 ^ 0xb81693ab)) ^ uVar35) >>
           ((bVar22 ^ 0x71) & 0x3f);
  uVar31 = DAT_182671c7c ^ 0x268ee889;
  *(ulonglong *)(lVar8 + -0x4b8) = uVar32 ^ uVar29;
  *(uint *)(lVar8 + -0x5d4) = *(uint *)(lVar8 - (uVar23 ^ 0xd896f950)) | uVar31;
  uVar11 = DAT_182671edc;
  uVar29 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar32 = (uVar32 | uVar34) ^ uVar29;
  *(ulonglong *)(lVar8 + -0x7c0) = uVar32;
  uVar35 = CONCAT44(uVar11,uVar11);
  *puVar6 = uVar35 ^ uVar32 ^ uVar29 ^ uVar24 ^ uVar19;
  uVar10 = DAT_182671c80;
  uVar37 = (ulonglong)DAT_182671c80;
  uVar29 = *puVar1;
  uVar34 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = (uVar28 ^ *puVar4) + (uVar30 ^ uVar29) ^ uVar34;
  lVar8 = DAT_182671c40;
  *puVar2 = (CONCAT44(DAT_182671c5c,uVar25) ^ 0x5de4995beb7689a1) + uVar40;
  uVar11 = _DAT_182671cf0;
  uVar28 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *puVar3 = (uVar30 ^ uVar29) << ((bVar22 ^ 0x6f) & 0x3f) ^ uVar28;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar8 - (uVar44 ^ 0xb81692d3)) =
       (*(ulonglong *)(lVar8 - (uVar23 ^ 0xd896fb98)) ^ uVar30) >>
       (((byte)DAT_182671c74 ^ 0x6f) & 0x3f) ^ uVar19;
  uVar32 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar29 = CONCAT44(DAT_182671c68,uVar18);
  *(ulonglong *)(lVar8 + -0x628) =
       (*(ulonglong *)(lVar8 - (uVar26 ^ 0xa3981cc8)) ^ uVar19 | *puVar3 ^ uVar28) ^ uVar32;
  uVar31 = DAT_182671c58;
  uVar19 = CONCAT44(uVar10,DAT_182671c58);
  *puVar20 = uVar29 ^ 0x57fd4bce503955a6 | CONCAT44(uVar18,uVar17) ^ 0x4dd57450855ccb31;
  uVar17 = uVar31 & uVar10;
  uVar29 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  DAT_182671c70 = uVar17;
  *(ulonglong *)(lVar8 + -0x7e8) =
       uVar34 ^ *(ulonglong *)(lVar8 + -0xb20) ^ *(ulonglong *)(lVar8 + -0x628) ^ uVar29 ^ uVar32;
  *(uint *)(lVar8 - ((ulonglong)uVar17 ^ 0x109066df)) =
       *(uint *)(*(ulonglong *)(lVar8 + -0x878) ^ (ulonglong)DAT_182671d04) ^ DAT_182671f14;
  uVar26 = CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar44 = (uVar19 ^ 0x245cd23bbbd39637) + (*(ulonglong *)(lVar8 + -0x7e8) ^ uVar29);
  *(ulonglong *)(lVar8 + -0x110) = uVar44 ^ uVar26;
  uVar11 = DAT_182671cb8;
  *(ulonglong *)(lVar8 + -0x760) =
       CONCAT44(uVar17,uVar31) ^ 0xe4facdab7ea3cb6f | CONCAT44(uVar31,uVar10) ^ 0x8408182a722538eb;
  uVar29 = (*(ulonglong *)(lVar8 - (uVar37 ^ 0x74b171eb)) ^ uVar24) +
           (CONCAT44(uVar17,uVar10) ^ 0x77f64f498060343a);
  uVar32 = CONCAT44(DAT_182671f04,DAT_182671f04);
  *(ulonglong *)(lVar8 + -0xa50) = uVar29 ^ CONCAT44(uVar11,uVar11);
  lVar8 = DAT_182671c40;
  *puVar5 = uVar29 + uVar44 ^ uVar32;
  uVar19 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar17 ^ 0x1090684b)) =
       uVar44 << (((byte)uVar17 ^ 0xda) & 0x3f) ^ uVar19;
  uVar11 = DAT_182671e10;
  uVar17 = DAT_182671c54;
  uVar44 = (uVar26 ^ *(ulonglong *)(lVar8 + -0x110)) >> (((byte)uVar10 ^ 0xe4) & 0x3f);
  uVar23 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar8 + -0x76c) = (uVar31 ^ 0x87d4f4d9) + *(int *)(lVar8 - (uVar37 ^ 0x74b1708f));
  uVar31 = DAT_182671c6c;
  uVar18 = uVar17 * DAT_182671c6c;
  uVar29 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar8 + -0x4b8) = uVar44 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671d44;
  DAT_182671c5c = uVar18;
  *(ulonglong *)(lVar8 + -0x7c0) =
       (*(ulonglong *)(lVar8 - (uVar29 ^ 0x74922564)) ^ uVar26) +
       (CONCAT44(uVar17,uVar18) ^ 0xb5fb3e750d996674);
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0xcbdab2bc)) =
       (uVar44 | uVar19 ^ *(ulonglong *)(lVar8 + -0x888)) ^ uVar29;
  *(ulonglong *)(lVar8 + -0xb18) =
       CONCAT44(uVar18,uVar31) ^ uVar34 ^ *(ulonglong *)(lVar8 + -0xb20) ^ 0xef0c00e44f1f202b;
  *puVar2 = *(ulonglong *)(lVar8 - (uVar23 ^ 0x7b2d7053)) ^ CONCAT44(DAT_182671ee0,DAT_182671ee0) ^
            *puVar4 ^ uVar29 ^ uVar32;
  uVar29 = *puVar5;
  uVar26 = (CONCAT44(uVar18,uVar18) ^ 0xeb1489b9d1004ff6) + (uVar35 ^ *puVar6);
  *puVar1 = uVar26 ^ uVar42;
  *puVar3 = (uVar29 ^ uVar32) - uVar26;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar7 ^ uVar27) * 4) = uVar16;
  return;
}



############ FUN_ 181022070 size=4291 ############

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

void FUN_181022070(void)

{
  uint uVar1;
  byte bVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint *puVar11;
  ulonglong uVar12;
  byte *pbVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  uint *puVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint *puVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  ulonglong uVar41;
  
  uVar20 = DAT_182671c8c;
  uVar36 = DAT_182671c88;
  uVar7 = DAT_182671c7c;
  uVar6 = DAT_182671c74;
  lVar4 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c88;
  uVar34 = (ulonglong)DAT_182671c7c;
  uVar23 = (ulonglong)DAT_182671c74;
  uVar29 = ~DAT_182671c64;
  uVar40 = DAT_182671c8c * DAT_182671c88;
  uVar26 = ~DAT_182671c7c;
  uVar27 = uVar26 ^ 0x59e94cd1;
  uVar9 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c8c ^ 0x78381318) + (longlong)DAT_182672110) ^
          DAT_182671c88;
  uVar28 = ~DAT_182671c74;
  uVar1 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar29 ^ 0x4787a078) + (longlong)DAT_182672110);
  puVar11 = (uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0x78381a5c));
  uVar17 = (ulonglong)uVar28;
  uVar30 = (DAT_182671e9c ^ *(uint *)(DAT_182671c40 + -0x58c)) * (DAT_182671c64 ^ 0xb8785f97) ^
           DAT_182671f8c;
  DAT_182671c4c = uVar28;
  DAT_182671c50 = uVar29;
  DAT_182671c60 = uVar27;
  DAT_182671c6c = uVar40;
  *(uint *)(DAT_182671c40 + -0xae4) = uVar30;
  uVar30 = (*puVar11 ^ DAT_182671df8) + (uVar30 ^ DAT_182671f8c) ^ DAT_182671d14;
  *(uint *)(lVar4 + -0x9dc) = uVar30;
  uVar30 = uVar30 ^ DAT_182671d14;
  *(ulonglong *)(lVar4 + -0xa70) =
       (CONCAT44(uVar28,uVar29) ^ 0x35b974033978ec4) - (CONCAT44(uVar7,uVar6) ^ 0xf1966e1a332e18b1);
  *(uint *)(lVar4 + -0x6c0) = uVar30 << (((byte)uVar28 ^ 0x19) & 0x1f) ^ DAT_182671e70;
  puVar11 = (uint *)(lVar4 - ((ulonglong)uVar27 ^ 0x592ae7cd));
  *puVar11 = uVar30 >> 0x13 ^ DAT_182671cfc;
  *(uint *)(lVar4 + -0x684) =
       (*(uint *)(lVar4 + -0x76c) ^ DAT_182671cfc | *(uint *)(lVar4 + -0x6c0) ^ DAT_182671e70) ^
       DAT_182671e90;
  *(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x78381560)) =
       (*(uint *)(lVar4 - (uVar37 ^ 0x10001c4)) ^ DAT_182671dd4) +
       (*(uint *)(lVar4 + -0x634) ^ DAT_182671d04) ^ DAT_182671e44;
  uVar21 = DAT_182671d6c;
  uVar30 = DAT_182671c48;
  lVar5 = DAT_182671c40;
  uVar14 = *(uint *)(lVar4 - ((ulonglong)uVar36 ^ 0x1000260)) ^ DAT_182671f84 ^ DAT_182671e44;
  uVar22 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar4 + -0x94) = *(uint *)(lVar4 + -0x684) ^ DAT_182671d6c ^ DAT_182671e90;
  *(uint *)(lVar4 + -0x54) = uVar14;
  uVar33 = DAT_182671f94;
  uVar35 = uVar30 << 0x10 | uVar30 >> 0x10;
  uVar32 = (ulonglong)DAT_182671cec;
  DAT_182671c94 = uVar35;
  *(uint *)(lVar5 + -0x4ac) =
       *(uint *)(lVar4 - ((ulonglong)uVar35 ^ 0xffffffab)) ^ DAT_182671f94 ^ DAT_182671f84;
  *(uint *)(lVar5 + -0x61c) =
       *(uint *)(lVar5 - ((ulonglong)uVar30 ^ 0xffffff6b)) ^ _DAT_182671cf0 ^ uVar21;
  bVar2 = (byte)DAT_182671d7c;
  uVar16 = DAT_182671c64;
  uVar12 = (ulonglong)DAT_182671c64;
  uVar24 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar5 + -0x440) =
       *(longlong *)(lVar5 - (uVar34 ^ 0xff3c5a27)) +
       (CONCAT44(uVar30,uVar7) ^ 0xffffffffff3c538f) * 0x20 +
       (CONCAT44(uVar28,uVar6) ^ 0x618d4e149e72b1e0) ^ uVar32;
  uVar10 = DAT_182671ec8;
  bVar19 = (byte)(uVar30 >> 0x10);
  *(byte *)(lVar5 + -0xc51) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar24 ^ 0xb8785bd7)) ^ uVar32) ^ bVar2 ^
       (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar5 + -0x270) ^ (ulonglong)DAT_182671d84) = bVar19 ^ 0x8b;
  uVar14 = DAT_182671c58;
  uVar32 = (ulonglong)DAT_182671c58;
  *(uint *)(lVar5 - (uVar17 ^ 0x618d4c68)) = (*(byte *)(lVar5 + -0xc51) ^ bVar2) ^ uVar10;
  lVar4 = DAT_182671c40;
  uVar31 = (*(uint *)(lVar5 + -0x61c) ^ _DAT_182671cf0) + (uVar40 ^ 0xef8f631e) ^ DAT_182671e30;
  puVar18 = (uint *)(lVar5 - ((ulonglong)uVar20 ^ 0x7838116c));
  *(uint *)(lVar5 + -0x1c8) = uVar31;
  uVar31 = uVar31 ^ DAT_182671e30;
  uVar20 = (*puVar18 ^ uVar10) << ((bVar19 ^ 0xee) & 0x1f) ^ DAT_182671e78;
  *(uint *)(lVar5 + -0x58c) = uVar20;
  uVar20 = uVar31 - (uVar20 ^ DAT_182671e78) ^ DAT_182671f44;
  *(uint *)(lVar5 + -0x94c) = uVar20;
  *(uint *)(lVar5 - ((ulonglong)uVar29 ^ 0x4787aa8c)) =
       (uVar20 ^ DAT_182671f44) * (uVar33 ^ *(uint *)(lVar5 + -0x4ac)) ^ DAT_182671cf4;
  uVar29 = DAT_182671c5c;
  uVar31 = DAT_182671c5c ^ uVar14 ^ 0xdc8c848e;
  uVar41 = (ulonglong)uVar31;
  DAT_182671c90 = uVar31;
  *(ulonglong *)(lVar5 + -0x8f0) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c5c ^ 0x608d4aac)) ^
       *(ulonglong *)(lVar5 - ((ulonglong)uVar31 ^ 0xdc8c8ef9));
  uVar8 = DAT_182671e34;
  *(uint *)(lVar5 + -0x9dc) =
       (*(uint *)(lVar5 + -0x27c) ^ uVar10) * (uVar14 ^ 0x608d4e18) ^ DAT_182671da4;
  uVar24 = CONCAT44(uVar8,uVar8);
  uVar38 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar4 + -0xb18) = *(ulonglong *)(uVar24 ^ *(ulonglong *)(lVar4 + -0xb98)) ^ uVar38;
  uVar20 = DAT_182671fac;
  lVar5 = DAT_182671c40;
  *(uint *)(lVar4 + -0x6c0) =
       (*(uint *)(lVar4 - (uVar41 ^ 0xdc8c8e6d)) ^ DAT_182671cf4) +
       (*(uint *)(lVar4 - ((ulonglong)uVar29 ^ 0x608d47c8)) ^ DAT_182671da4) ^ DAT_182671fac;
  *(ulonglong *)(lVar5 - (uVar41 ^ 0xdc8c83e9)) =
       (uVar32 << 0xd | (ulonglong)(uVar31 >> 0x13)) ^ 0x1a8183af3038;
  bVar2 = (byte)DAT_182671c64;
  *(uint *)(lVar5 - ((ulonglong)uVar29 ^ 0x608d4978)) =
       (*(uint *)(lVar5 + -0x6c0) ^ uVar20) << (((byte)uVar14 ^ 0x1e) & 0x1f) ^ DAT_182671d9c;
  uVar10 = *(uint *)(lVar5 + -0x76c) ^ DAT_182671d9c;
  uVar20 = (*(uint *)(lVar5 + -0x6c0) ^ uVar20) >> ((bVar2 ^ 0x84) & 0x1f) ^ DAT_182671f30;
  *(uint *)(lVar5 + -0x634) = uVar20;
  uVar20 = (uVar20 ^ DAT_182671f30 | uVar10) ^ DAT_182671f50;
  *(uint *)(lVar5 + -0x670) = uVar20;
  uVar10 = DAT_182671eb8;
  uVar31 = uVar20 ^ DAT_182671e04 ^ DAT_182671f50;
  uVar20 = (*(uint *)(lVar5 - (uVar22 ^ 0xfffffb53)) ^ uVar33) +
           (*(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671cbc;
  *(uint *)(lVar5 + -0x684) = uVar20;
  *(uint *)(lVar5 + -0x54) = uVar20 ^ DAT_182671c98 ^ DAT_182671cbc;
  *(uint *)(lVar5 + -0x94) = uVar31;
  uVar20 = DAT_182671c50;
  *(uint *)(lVar5 + -0x61c) =
       *(uint *)(lVar5 - ((ulonglong)uVar27 ^ 0x592ae0f5)) ^ uVar10 ^ DAT_182671c98;
  uVar33 = DAT_182671f74;
  *(ulonglong *)(lVar5 + -0xa08) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0x4787ac50)) ^ 0x7123c0fafcca65b6;
  *(uint *)(lVar5 + -0x1c8) =
       *(uint *)(lVar5 - ((ulonglong)uVar35 ^ 0xffffff6b)) ^ DAT_182671ce8 ^ DAT_182671e04;
  *(ulonglong *)(lVar5 + -0xc98) =
       (CONCAT44(uVar6,uVar14) ^ 0x9e72b1eb608d4e13) * 0x20 +
       (CONCAT44(uVar36,uVar28) ^ 0x1000410618d4e02) + *(longlong *)(lVar5 + -0x9a8) ^
       (ulonglong)uVar21;
  bVar2 = (byte)DAT_182671ed8;
  *(byte *)(lVar5 + -0x969) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar17 ^ 0x618d428c)) ^ (ulonglong)uVar21) ^
       (byte)DAT_182671ed8 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar5 + -0x2a8) ^ (ulonglong)DAT_182671f10) = (byte)uVar40 ^ 0xd0;
  *(uint *)(lVar5 - ((ulonglong)uVar14 ^ 0x608d4b9f)) = (bVar2 ^ *(byte *)(lVar5 + -0x969)) ^ uVar33
  ;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xfffffeef)) =
       *(ulonglong *)(uVar24 ^ *(ulonglong *)(lVar5 + -0xb98)) ^ uVar38;
  uVar21 = DAT_182671c78;
  *(uint *)(lVar5 + -0x94c) =
       (*(uint *)(lVar5 + -0x1c8) ^ DAT_182671ce8) + (uVar20 ^ 0xdbc5b276) ^ DAT_182671e68;
  uVar39 = uVar21 << 0x10 | uVar21 >> 0x10;
  DAT_182671c80 = uVar39;
  *(uint *)(lVar5 + -0x27c) =
       (uVar33 ^ *(uint *)(lVar5 + -0x58c)) << (((byte)uVar40 ^ 0x11) & 0x1f) ^ DAT_182671ee8;
  uVar20 = DAT_182671d80;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xff3c537f)) =
       (CONCAT44(uVar7,uVar14) ^ 0xc072eea1e0656965) >>
       ((byte)*(undefined8 *)(lVar5 - ((ulonglong)uVar29 ^ 0x608d4974)) & 0x3f);
  uVar31 = (*(uint *)(lVar5 + -0x94c) ^ DAT_182671e68) - (*(uint *)(lVar5 + -0x27c) ^ DAT_182671ee8)
  ;
  *(uint *)(lVar5 + -0xae4) = uVar31 ^ uVar20;
  uVar7 = DAT_182671f7c;
  uVar31 = (*(uint *)(lVar5 + -0x61c) ^ uVar10) * uVar31;
  bVar2 = (byte)(uVar21 >> 0x10);
  uVar33 = (uVar33 ^ *(uint *)(lVar5 + -0x58c)) * (uVar21 ^ 0x874768b6) ^ DAT_182671fa0;
  *(uint *)(lVar5 + -0x9dc) = uVar31 ^ uVar20;
  *(uint *)(lVar5 + -0x6c0) = uVar33;
  uVar31 = uVar31 + (uVar33 ^ DAT_182671fa0);
  *(uint *)(lVar5 + -0x76c) = uVar31 ^ uVar7;
  uVar20 = DAT_182671e5c;
  uVar31 = uVar31 * 0x2000;
  *(uint *)(lVar5 + -0x634) = uVar31 ^ DAT_182671e5c;
  *(uint *)(lVar5 + -0x4ac) = uVar31 + 0x608921a4;
  puVar25 = (uint *)(lVar5 - ((ulonglong)uVar21 ^ 0x87476e94));
  *(uint *)(lVar5 + -0x684) =
       (*(uint *)(lVar5 + -0x76c) ^ uVar7) >> ((bVar2 ^ 0x54) & 0x1f) ^ DAT_182671ca8;
  uVar28 = DAT_182671f88;
  uVar31 = DAT_182671f14;
  *(uint *)(lVar5 + -0x670) =
       (*(uint *)(lVar5 - ((ulonglong)uVar39 ^ 0x68a081c3)) ^ DAT_182671ca8 | uVar20 ^ *puVar25) ^
       DAT_182671f88;
  *(undefined8 *)(lVar5 - ((ulonglong)uVar39 ^ 0x68a08d17)) = 0x57ae2fecfe7a7f00;
  uVar33 = DAT_182671e14;
  uVar7 = DAT_182671d94;
  *(uint *)(lVar5 + -0x54) =
       (*(uint *)(lVar5 - ((ulonglong)uVar21 ^ 0x87476d74)) ^ DAT_182671dd4) +
       (*(uint *)(lVar5 + -0x61c) ^ uVar10) ^ DAT_182671f2c;
  *(longlong *)(lVar5 + -0xc18) = *(longlong *)(lVar5 + -0x228) << ((bVar2 ^ 0x6f) & 0x3f);
  uVar20 = DAT_182671c8c;
  uVar15 = *(uint *)(lVar5 - ((ulonglong)DAT_182671c8c ^ 0x78381344)) ^ uVar33 ^ DAT_182671f2c;
  *(int *)(lVar5 + -0x1c8) = (int)(uVar26 ^ 0x9776b32e) >> 0x15;
  uVar10 = *(uint *)(lVar5 + -0x670) ^ DAT_182671de0;
  *(uint *)(lVar5 + -0x94) = uVar15;
  *(uint *)(lVar5 + -0x94c) = uVar10 ^ uVar28;
  *puVar18 = uVar7 ^ uVar33 ^ uVar15;
  *(uint *)(lVar5 + -0xae4) = *(uint *)(lVar5 - (uVar41 ^ 0xdc8c8dc5)) ^ uVar31 ^ DAT_182671de0;
  uVar10 = DAT_182671dcc;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xff3c5aef)) =
       (CONCAT44(uVar21,uVar16) ^ 0x53bb5835dabdb7d2) + *(longlong *)(lVar5 - (uVar23 ^ 0x9e72b26b))
  ;
  bVar3 = (byte)DAT_182671fb4;
  uVar24 = (ulonglong)DAT_182671c50;
  pbVar13 = (byte *)(*(longlong *)(lVar5 - (uVar12 ^ 0xb878563f)) +
                    (CONCAT44(uVar20,uVar29) ^ 0x78381310608d4e15));
  *(ulonglong *)(lVar5 + -0x520) = (ulonglong)pbVar13 ^ (ulonglong)DAT_182671cd0;
  *(byte *)(lVar5 - (uVar24 ^ 0x4787abd9)) = *pbVar13 ^ bVar3 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar5 + -0xa28) ^ (ulonglong)DAT_182671df8) = bVar19 ^ 0xa1;
  uVar16 = (uint)(*(byte *)(lVar5 + -0xbb1) ^ bVar3);
  uVar21 = DAT_182671c4c ^ 0xfdcf5c0a;
  *(uint *)(lVar5 + -0x58c) = uVar16 ^ uVar10;
  uVar20 = DAT_182671c90;
  *(uint *)(lVar5 + -0x9dc) = (*(uint *)(lVar5 + -0xae4) ^ uVar31) + uVar21 ^ DAT_182671d64;
  bVar3 = (byte)DAT_182671c74;
  *(uint *)(lVar5 + -0x6c0) = uVar16 + (uVar20 ^ 0x40ce9697);
  uVar16 = uVar16 << ((bVar3 ^ 0xfa) & 0x1f);
  *(uint *)(lVar5 + -0x4ac) = uVar16 ^ DAT_182671e44;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (CONCAT44(uVar29,uVar14) ^ 0x4947aa48e96364e2) +
       (CONCAT44(uVar36,uVar26) ^ 0x36372bf6f8181067);
  uVar32 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar4 - (uVar34 ^ 0xff3c54e3)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar27 ^ 0x592ae97d)) ^ DAT_182671d64) - uVar16 ^ uVar33;
  uVar14 = DAT_182671ec4;
  *(ulonglong *)(lVar4 + -0x5e8) = *(ulonglong *)(lVar4 + -0x110) | *(ulonglong *)(lVar4 + -0x888);
  uVar36 = DAT_182671ee4;
  lVar5 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671d80;
  uVar24 = (ulonglong)DAT_182671d80;
  *puVar25 = (*(uint *)(lVar4 - ((ulonglong)uVar40 ^ 0x73cd737c)) ^ uVar7) * (*puVar11 ^ uVar33) ^
             uVar14;
  uVar20 = DAT_182671e40;
  bVar3 = (byte)DAT_182671e0c;
  *(byte *)(lVar5 - (uVar32 ^ 0x4787aa7a)) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar5 + -0x698)) ^ (byte)DAT_182671e0c;
  *(uint *)(lVar5 + -0x684) =
       (uVar10 ^ *(uint *)(lVar5 + -0x58c)) * (DAT_182671c8c ^ 0x78381311) ^ uVar36;
  *(uint *)(lVar5 + -0x61c) =
       (*(uint *)(lVar5 - (uVar37 ^ 0x1000294)) ^ uVar36) + (uVar14 ^ *(uint *)(lVar5 + -0x634)) ^
       uVar20;
  *(byte *)(lVar5 + -0x229) = *(byte *)(uVar23 ^ *(ulonglong *)(lVar5 + -0x698)) ^ bVar3;
  uVar14 = DAT_182671c78;
  lVar4 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar39 ^ 0x68a08713)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar40 ^ 0x73cd771c)) ^ uVar20) <<
       (((byte)DAT_182671c78 ^ 0xad) & 0x1f) ^ uVar28;
  uVar20 = (uVar20 ^ *(uint *)(lVar4 + -0x61c)) >> 0x13 ^ DAT_182671e30;
  *(uint *)(lVar4 + -0x1c8) = uVar20;
  uVar21 = DAT_182671e04;
  uVar16 = DAT_182671d0c;
  uVar20 = (uVar28 ^ *(uint *)(lVar4 + -0x54) | uVar20 ^ DAT_182671e30) ^ DAT_182671edc;
  uVar33 = DAT_182671c64 ^ 0xbb12c6e1;
  *(uint *)(lVar4 + -0x94) =
       (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar4 + -0x27c) ^ uVar7) ^
       DAT_182671f30;
  *(uint *)(lVar4 + -0x670) = uVar20;
  uVar28 = uVar20 ^ DAT_182671edc ^ uVar36;
  uVar10 = *(uint *)(lVar4 - (uVar37 ^ 0x1000484)) ^ uVar16 ^ DAT_182671f30;
  *(uint *)(lVar4 + -0x94c) = uVar10;
  uVar20 = DAT_182671c50;
  *(uint *)(lVar4 + -0x6c0) =
       uVar33 << (((byte)*(undefined4 *)(lVar4 + -0xae4) ^ (byte)uVar31) & 0x1f);
  uVar7 = DAT_182671fa4;
  *(uint *)(lVar4 + -0x9dc) = uVar28;
  *(uint *)(lVar4 + -0x58c) = (uVar20 ^ 0x4f5c02e) >> (((byte)uVar27 ^ 0xab) & 0x1f);
  uVar24 = (ulonglong)DAT_182671f50;
  *(uint *)(lVar4 + -0x76c) = uVar28 ^ uVar7 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x3c8) = *(longlong *)(lVar4 + -0x9a8) + 0xcU ^ uVar24;
  *(uint *)(lVar4 + -0x4ac) = uVar16 ^ uVar10 ^ uVar21;
  bVar19 = (byte)DAT_182671ef4;
  uVar20 = DAT_182671cac;
  *(byte *)(lVar4 - (uVar34 ^ 0xff3c594e)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar17 ^ 0x618d4ddc)) ^ uVar24) ^ (byte)DAT_182671ef4 ^
       bVar3;
  *(byte *)(*(ulonglong *)(lVar4 + -0x278) ^ (ulonglong)DAT_182671e80) = bVar2 ^ 0xb4;
  uVar36 = (uint)(*(byte *)(lVar4 + -0xac1) ^ bVar19);
  uVar16 = (uVar7 ^ *(uint *)(lVar4 + -0x76c)) + (uVar35 ^ 0x63bdede1) ^ DAT_182671ca0;
  *(uint *)(lVar4 + -0x634) = uVar36 ^ uVar20;
  uVar20 = uVar36 * 0x20000 ^ DAT_182671e00;
  *(uint *)(lVar4 + -0x684) = uVar16;
  *(uint *)(lVar4 + -0x54) = uVar20;
  uVar20 = DAT_182671cc4;
  *(uint *)(lVar4 + -0x61c) = 0x4f759c4d >> (((byte)uVar27 ^ 0xb9) & 0x1f);
  *(ulonglong *)(lVar4 + -0x680) =
       (CONCAT44(uVar29,uVar30) ^ 0x2c88d7318a98e675) - *(longlong *)(lVar4 - (uVar12 ^ 0xb878587f))
  ;
  uVar30 = (*(uint *)(lVar4 - (uVar22 ^ 0xfffff97b)) ^ DAT_182671ca0) + uVar36 * -0x20000;
  *(uint *)(lVar4 + -0x1c8) = uVar30 ^ uVar20;
  uVar20 = uVar30 * (uVar21 ^ *(uint *)(lVar4 + -0x4ac)) ^ DAT_182671e90;
  uVar30 = uVar36 * (uVar14 ^ 0x874768ac) ^ DAT_182671d30;
  *(uint *)(lVar4 + -0x27c) = uVar20;
  uVar20 = uVar20 ^ DAT_182671e90;
  *(ulonglong *)(lVar4 + -0xa78) =
       (CONCAT44(uVar35,uVar6) ^ 0x6e7e92a0c494f75c) +
       *(longlong *)(lVar4 - ((ulonglong)uVar14 ^ 0x87476e20));
  *(uint *)(lVar4 + -0x94) = uVar30;
  uVar30 = DAT_182671f34;
  *(uint *)(lVar4 - (uVar17 ^ 0x618d44f0)) =
       (*(uint *)(lVar4 - (uVar41 ^ 0xdc8c841d)) ^ DAT_182671d30) + uVar20 ^ DAT_182671f34;
  *(uint *)(lVar4 + -0x6c0) = (*(uint *)(lVar4 + -0xae4) ^ uVar30) << 0xd ^ DAT_182671e3c;
  *(uint *)(lVar4 - ((ulonglong)uVar40 ^ 0x73cd7770)) =
       (*(uint *)(lVar4 - (uVar12 ^ 0xb8785573)) ^ uVar30) >> 0x13 ^ DAT_182671f10;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar40) * 4) = uVar9;
  return;
}



############ FUN_ 180f5e820 size=3316 ############

void FUN_180f5e820(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  
  uVar15 = DAT_182671c94;
  uVar12 = DAT_182671c88;
  uVar11 = DAT_182671c84;
  uVar10 = DAT_182671c80;
  uVar8 = DAT_182671c78;
  uVar6 = DAT_182671c5c;
  uVar5 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c80;
  uVar28 = (ulonglong)DAT_182671c94;
  uVar17 = (ulonglong)DAT_182671c84;
  uVar18 = (ulonglong)DAT_182671c58;
  uVar19 = DAT_182671c80 | DAT_182671c58;
  uVar21 = (ulonglong)DAT_182671c88;
  uVar26 = *(uint *)(&DAT_182613218 + DAT_1826721b0) ^ DAT_182671c5c;
  uVar24 = DAT_182671c94 - DAT_182671c88;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826721b0);
  uVar20 = DAT_182671c84 & DAT_182671c5c;
  uVar23 = ~DAT_182671c78;
  uVar27 = CONCAT44(DAT_182671c84,DAT_182671c78);
  DAT_182671c48 = uVar20;
  DAT_182671c4c = uVar24;
  DAT_182671c68 = uVar19;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar23 ^ 0x3200440)) = uVar27 ^ 0x47bffcb2135d2575;
  *(ulonglong *)(lVar2 + -0xd98) = CONCAT44(uVar10,uVar24) ^ 0x6732641e2860a52a;
  *(ulonglong *)(lVar2 + -0xc28) = CONCAT44(uVar12,uVar15) ^ 0x240cda1002ceb5e2;
  uVar22 = (ulonglong)uVar20;
  *(ulonglong *)(lVar2 + -0x1f8) = CONCAT44(uVar12,uVar24) ^ 0x83c0527d72df89a1;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x9c0) = CONCAT44(uVar19,uVar5) ^ 0x41d2ad48dc45de2b;
  *(undefined8 *)(lVar2 + -0x860) = 0xdf07b793cc76d562;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x2040037d)) =
       CONCAT44(uVar15,uVar8) ^ 0xba13ee12546c8aa0;
  *(undefined8 *)(lVar2 + -0xaf8) = 0x276b629c5f7b5310;
  *(ulonglong *)(lVar2 + -0x80) = CONCAT44(uVar5,uVar23) ^ 0xbea5ad8064ce244b;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x928) = CONCAT44(uVar15,uVar8) ^ 0x993414344b504f1d;
  *(ulonglong *)(lVar2 + -0x48) = CONCAT44(uVar5,uVar11) ^ 0xb4d08ecba71a1901;
  *(ulonglong *)(DAT_182671c40 + -0xc20) = CONCAT44(uVar10,uVar15) ^ 0x93f497e6d7242b91;
  *(ulonglong *)(lVar3 + -0x7f0) = CONCAT44(uVar6,uVar20) ^ 0xbb05661676c087a1;
  *(undefined8 *)(lVar3 + -800) = 0xeb29d4e9e4553da5;
  *(ulonglong *)(lVar3 + -0x550) = CONCAT44(uVar23,uVar19) ^ 0x8119b37cbfbdc6fa;
  *(ulonglong *)(lVar3 + -0x9e8) = uVar27 ^ 0x749afc875c0ec306;
  *(ulonglong *)(lVar3 + -0xa28) = CONCAT44(uVar24,uVar15) ^ 0x6577ea3e92c3c50d;
  *(ulonglong *)(lVar3 + -0xce8) = CONCAT44(uVar5,uVar6) ^ 0x136190ebcf970d08;
  *(ulonglong *)(lVar3 + -0x120) = CONCAT44(uVar12,uVar8) ^ 0xb3f1d7f0118fdbed;
  *(undefined8 *)(lVar3 + -0x428) = 0x61c0508b685adfd9;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0xfefb2857)) =
       CONCAT44(uVar11,uVar5) ^ 0xd0636cea444bcfb9;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x20400a15)) = CONCAT44(uVar23,uVar10) ^ 0x2049a44b3cd0060b;
  *(ulonglong *)(lVar3 + -0x870) = CONCAT44(uVar11,uVar10) ^ 0x83debf8f23e14ddb;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x758) = CONCAT44(uVar15,uVar12) ^ 0x638c0b98a85279bb;
  *(ulonglong *)(lVar2 + -0x708) = CONCAT44(uVar5,uVar23) ^ 0x4cea42e04ed92886;
  *(ulonglong *)(lVar2 + -0x50) = CONCAT44(uVar11,uVar20) ^ 0xf1f57bd1a4ff55e0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xe962689f)) =
       CONCAT44(uVar24,uVar12) ^ 0x50193c99c27e3c77;
  *(ulonglong *)(lVar2 + -0x4c0) = CONCAT44(uVar19,uVar23) ^ 0x2b048379f77c8632;
  *(ulonglong *)(lVar2 + -1000) = CONCAT44(uVar12,uVar15) ^ 0x9fce37ee486668f3;
  *(ulonglong *)(lVar2 + -0x980) = CONCAT44(uVar19,uVar5) ^ 0xa4190353ebae4de;
  *(ulonglong *)(lVar2 + -0xa90) = CONCAT44(uVar19,uVar20) ^ 0x7011fb0a5e4d39e8;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x5a8) = CONCAT44(uVar24,uVar10) ^ 0xd4e5416912273dec;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x82dfd7e8)) = CONCAT44(uVar8,uVar11) ^ 0xefe1985888c7bc20;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xee9b06f7)) = CONCAT44(uVar23,uVar8) ^ 0x2df586d546f39038;
  *(ulonglong *)(lVar3 + -0x640) = CONCAT44(uVar24,uVar6) ^ 0xca90572356023874;
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xd3913410)) =
       CONCAT44(uVar23,uVar24) ^ 0x6d5fc3c551725ad8;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xaa0) = CONCAT44(uVar8,uVar20) ^ 0xfa9b11b8eec386cf;
  *(ulonglong *)(lVar2 + -0xe0) = CONCAT44(uVar8,uVar23) ^ 0xfeeee78969a2a713;
  *(ulonglong *)(lVar2 + -0x4f8) = CONCAT44(uVar19,uVar10) ^ 0xeb4927119a9cf452;
  *(undefined8 *)(lVar2 + -0xa8) = 0x3fca888f6e90839d;
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xee9b0e77)) =
       CONCAT44(uVar11,uVar6) ^ 0x5404013baa327985;
  *(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0xdefb21e8)) =
       CONCAT44(uVar24,uVar11) ^ 0x9b6acec54513509d;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x290) = CONCAT44(uVar6,uVar5) ^ 0xd5d141f93983f721;
  *(ulonglong *)(lVar2 + -0xf8) = CONCAT44(uVar10,uVar15) ^ 0xe669c650b44c7e4c;
  *(ulonglong *)(lVar2 + -0x108) = CONCAT44(uVar23,uVar15) ^ 0x464124ecaf9d979d;
  *(ulonglong *)(lVar2 + -0xcf8) = CONCAT44(uVar20,uVar5) ^ 0x708bcbc72d05b673;
  *(ulonglong *)(lVar2 + -0x858) = CONCAT44(uVar6,uVar10) ^ 0x5d39d2f448f095d2;
  *(undefined8 *)(lVar2 + -0x2f8) = 0x56ab5d951859c460;
  *(ulonglong *)(lVar2 + -0x240) = CONCAT44(uVar20,uVar11) ^ 0x2a00cade46a7ca46;
  *(undefined8 *)(lVar2 + -0x160) = 0xee7ad69fd818d33c;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xee9b0b6f)) = CONCAT44(uVar24,uVar15) ^ 0x30752237e53e8f41;
  uVar4 = DAT_182671c54;
  uVar18 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x204008fd)) = CONCAT44(uVar8,uVar24) ^ 0xf22219b1ca8e4db3;
  *(undefined8 *)(lVar2 + -0x208) = 0xf9eeec3e66933874;
  *(ulonglong *)(lVar2 + -0x5e0) = CONCAT44(uVar15,uVar12) ^ 0x5503dcd22b8ddced;
  *(ulonglong *)(lVar2 + -0xd80) = CONCAT44(uVar5,uVar12) ^ 0xd6538dc6e84b2893;
  *(undefined8 *)(lVar2 + -0x38) = 0x351b67169ce8fe98;
  *(ulonglong *)(lVar2 + -0x818) = CONCAT44(uVar19,uVar6) ^ 0xfede9dfabb66ea9b;
  *(ulonglong *)(lVar2 + -0x5d0) = CONCAT44(uVar19,uVar23) ^ 0xf2b0ff103a268962;
  uVar13 = DAT_182671c8c;
  uVar9 = DAT_182671c7c;
  uVar21 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x50b15620)) =
       CONCAT44(uVar20,uVar15) ^ 0x9c5a24eb475fa627;
  *(ulonglong *)(lVar2 + -0xd20) = CONCAT44(uVar13,uVar23) ^ 0x68b8671f54523afd;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x40001f90)) = CONCAT44(uVar9,uVar23) ^ 0x7fdce741d1a32f34;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x30488ded)) = CONCAT44(uVar15,uVar11) ^ 0x3b2b6b4c7b1e48c1;
  uVar16 = DAT_182671c50;
  uVar27 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0x778) = CONCAT44(DAT_182671c50,uVar13) ^ 0x4a29295d349ddde4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0xfefb2787)) =
       CONCAT44(uVar24,uVar23) ^ 0x99f6200b8ed228aa;
  *(undefined8 *)(lVar2 + -0x608) = 0x132fd570374f9270;
  uVar18 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar2 + -0x388) = CONCAT44(uVar8,uVar4) ^ 0x6b1b601c1893aae2;
  *(undefined8 *)(lVar2 + -0x6b0) = 0x53ecdc0e51d94c63;
  *(undefined8 *)(lVar2 + -0x180) = 0x4e0c0e5618e3074d;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xf9fdf6f)) = CONCAT44(uVar12,uVar16) ^ 0x322513a5f6c9a0cf;
  uVar14 = DAT_182671c90;
  *(undefined8 *)(lVar2 + -0x598) = 0x6a8565dd9c0e3c54;
  *(ulonglong *)(DAT_182671c40 + -0x798) = CONCAT44(uVar9,uVar5) ^ 0x39e96ea4e068d007;
  lVar2 = DAT_182671c40;
  *(undefined8 *)(DAT_182671c40 - (uVar25 ^ 0xee9b071f)) = 0xc746692059a3a096;
  *(ulonglong *)(lVar2 + -0x750) = CONCAT44(DAT_182671c60,uVar19) ^ 0x3a05f7ab6b31a292;
  *(ulonglong *)(lVar2 + -0x318) = CONCAT44(uVar12,uVar14) ^ 0xee8ef48b1843a5d6;
  *(undefined8 *)(lVar2 + -0xcb0) = 0x68a4464554c602f4;
  *(ulonglong *)(lVar2 + -0x830) = CONCAT44(uVar8,uVar15) ^ 0xccf720ffc8412bc4;
  *(ulonglong *)(lVar2 + -0x2b8) = CONCAT44(uVar5,uVar6) ^ 0x57dbcd0a35d21a13;
  *(ulonglong *)(lVar2 + -0xc10) = CONCAT44(uVar15,uVar24) ^ 0x3bf50eb8951843c2;
  *(ulonglong *)(lVar2 + -0x470) = CONCAT44(uVar5,uVar5) ^ 0xdd9c0f3e8896cb91;
  *(ulonglong *)(lVar2 + -0x3f8) = CONCAT44(uVar20,uVar11) ^ 0xdeddc0c1cd9d63ff;
  uVar7 = DAT_182671c6c;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x204007ad)) = CONCAT44(uVar23,uVar24) ^ 0x270d2ecd236c0d94;
  *(undefined8 *)(lVar2 + -0x6a0) = 0x21bbe7d3791fc0a0;
  *(ulonglong *)(lVar2 + -0x4e8) = CONCAT44(uVar11,uVar9) ^ 0x971a3f628900e682;
  *(ulonglong *)(lVar2 + -0x498) = CONCAT44(uVar13,uVar8) ^ 0xd16941e04c7dff94;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x304883b5)) = CONCAT44(uVar7,uVar15) ^ 0x1ccc80926d70bca2;
  *(ulonglong *)(lVar2 + -0x718) = CONCAT44(uVar14,uVar10) ^ 0xab8021dd3b7c8a4d;
  uVar17 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x50b15608)) =
       CONCAT44(DAT_182671c64,uVar7) ^ 0x4aa9d5072dd2a472;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x70489a1d)) = CONCAT44(uVar4,uVar10) ^ 0xd237b0f4ffcb1a6a;
  *(ulonglong *)(lVar2 + -0x350) = CONCAT44(uVar12,uVar5) ^ 0x6cd1ff9868f6337d;
  *(undefined8 *)(lVar2 - (uVar21 ^ 0x61d4d355)) = 0x6681ca196251126d;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x5bc59140)) = CONCAT44(uVar4,uVar23) ^ 0xdb42aadab99fdcfe;
  uVar16 = DAT_182671c94 << 0x10 | DAT_182671c94 >> 0x10;
  DAT_182671c74 = uVar16;
  *(ulonglong *)(lVar2 + -0xba0) = CONCAT44(uVar15,uVar16) ^ 0x6980bcaf7d7e13bd;
  *(ulonglong *)(lVar2 + -0x9d8) = CONCAT44(uVar15,uVar15) ^ 0xda0db0ca78a423f4;
  *(ulonglong *)(lVar2 + -0x7e0) = CONCAT44(uVar16,uVar15) ^ 0x271fb14fa84f2740;
  *(ulonglong *)(lVar2 + -0x810) = CONCAT44(uVar16,uVar15) ^ 0xe52a8c765714c10a;
  *(ulonglong *)(lVar2 + -0x808) = CONCAT44(uVar16,uVar16) ^ 0x8fd7c92837ffad91;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar20) * 4) = uVar26;
  return;
}



############ FUN_ 181015da0 size=5490 ############

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

void FUN_181015da0(void)

{
  ulonglong *puVar1;
  int *piVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  byte local_res18;
  byte local_140;
  byte local_130;
  byte local_120;
  byte local_118;
  byte local_100;
  byte local_f0;
  byte local_d8;
  
  uVar13 = DAT_182671c90;
  uVar11 = DAT_182671c80;
  uVar10 = DAT_182671c74;
  uVar9 = DAT_182671c6c;
  uVar8 = DAT_182671c64;
  uVar6 = DAT_182671c4c;
  uVar20 = DAT_182671c4c | DAT_182671c50;
  uVar37 = (ulonglong)DAT_182671c64;
  uVar53 = (ulonglong)DAT_182671c90;
  uVar39 = (ulonglong)DAT_182671c6c;
  uVar49 = DAT_182671c90 ^ DAT_182671c84;
  uVar43 = *(uint *)(&DAT_182613218 + DAT_1826720ec) ^ DAT_182671c4c;
  uVar29 = DAT_182671c58 | DAT_182671c74;
  uVar38 = (ulonglong)DAT_182671c80;
  uVar31 = DAT_182671c5c & DAT_182671c80;
  uVar35 = DAT_182671c64 * DAT_182671c6c;
  uVar18 = *(uint *)(&DAT_182613220 + DAT_1826720ec) ^ DAT_182671c50;
  uVar44 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  uVar27 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar46 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  DAT_182671c54 = uVar29;
  DAT_182671c68 = uVar31;
  DAT_182671c78 = uVar49;
  DAT_182671c7c = uVar35;
  DAT_182671c8c = uVar20;
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (*(ulonglong *)(DAT_182671c40 + -0x510) ^ uVar27) -
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0xfdbb7bc6)) ^ uVar44) ^ uVar46;
  uVar21 = CONCAT44(DAT_182671e84,DAT_182671e84);
  uVar28 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  uVar23 = DAT_182671c5c ^ 0x75723520;
  piVar2 = (int *)(DAT_182671c40 + -0x644);
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       uVar28 ^ uVar21 ^ uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0xc18) ^
       *(ulonglong *)(DAT_182671c40 + -0xb20);
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0x4ea7bbcf)) = uVar23 + *piVar2;
  uVar24 = (ulonglong)uVar35;
  uVar36 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0xb6f651e3)) =
       (uVar21 ^ *(ulonglong *)(DAT_182671c40 + -0x30)) >> (((byte)uVar35 ^ 0xe6) & 0x3f) ^ uVar36;
  lVar4 = DAT_182671c40;
  uVar26 = *(ulonglong *)(DAT_182671c40 + -0xb20);
  uVar32 = (uVar21 ^ *(ulonglong *)(DAT_182671c40 + -0x30)) << (((byte)DAT_182671c58 ^ 0xec) & 0x3f)
  ;
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar32 ^ CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar4 + -0x760) =
       CONCAT44(uVar11,uVar10) ^ uVar21 ^ *(ulonglong *)(lVar4 + -0x30) ^ 0x688f1df2b6d6371;
  uVar14 = DAT_182671ec8;
  uVar22 = CONCAT44(DAT_182671f68,DAT_182671f68);
  puVar3 = (ulonglong *)(lVar4 + -0xc38);
  uVar32 = uVar32 | uVar36 ^ *(ulonglong *)(lVar4 + -0xd88);
  *(ulonglong *)(lVar4 + -0x680) = uVar32 ^ uVar22;
  uVar15 = DAT_182671f38;
  uVar45 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xb18) = (uVar28 ^ uVar26) - uVar32 ^ uVar45;
  uVar40 = CONCAT44(uVar15,uVar15);
  uVar25 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar28 = *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0xdff9fa78)) ^ uVar25 ^ uVar40 ^ uVar46 ^
           *puVar3;
  uVar32 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar4 + -0xa60) = uVar28;
  uVar12 = DAT_182671c84;
  uVar23 = DAT_182671c50;
  uVar50 = (ulonglong)DAT_182671c84;
  bVar19 = (byte)uVar6;
  uVar26 = (uVar28 ^ uVar40) >> ((bVar19 ^ 0xaf) & 0x3f);
  uVar30 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *(ulonglong *)(lVar4 + -0x510) = uVar26 ^ uVar32;
  uVar32 = CONCAT44(DAT_182671e74,DAT_182671e74);
  local_d8 = (byte)uVar11;
  uVar28 = (uVar40 ^ uVar28) << ((local_d8 ^ 0x14) & 0x3f);
  *(ulonglong *)(lVar4 + -0x30) = uVar28 ^ uVar30;
  *(ulonglong *)(lVar4 - (uVar50 ^ 0x2db8e9b8)) = (uVar28 | uVar26) ^ uVar32;
  uVar14 = DAT_182671f84;
  uVar15 = DAT_182671db4;
  uVar26 = *(ulonglong *)(lVar4 + -0xb18);
  uVar54 = CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar46 = (uVar46 ^ *(ulonglong *)(lVar4 + -0x380)) - (uVar32 ^ *(ulonglong *)(lVar4 + -0x760));
  *(ulonglong *)(lVar4 + -0xd88) = uVar46 ^ uVar54;
  lVar5 = DAT_182671c40;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar28 = uVar26 ^ uVar40 ^ uVar32 ^ uVar45 ^ *(ulonglong *)(lVar4 + -0x760);
  *(ulonglong *)(lVar4 + -0xb20) = uVar44 ^ *(ulonglong *)(lVar4 + -0xc18) | uVar46;
  uVar14 = DAT_182671f50;
  *(ulonglong *)(lVar4 + -0x920) = uVar28;
  uVar44 = (uVar40 ^ *(ulonglong *)(lVar5 + -0x920)) >> (((byte)uVar35 ^ 0xdc) & 0x3f);
  *puVar3 = uVar44 ^ CONCAT44(uVar14,uVar14);
  uVar28 = (uVar40 ^ uVar28) << (((byte)uVar12 ^ 0xea) & 0x3f);
  uVar46 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(lVar5 + -0xa60) = uVar28 ^ CONCAT44(DAT_182671ec0,DAT_182671ec0);
  uVar44 = uVar44 | uVar28;
  uVar28 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(lVar5 + -0x510) = uVar44 ^ uVar46;
  uVar14 = DAT_182671f30;
  uVar32 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *(ulonglong *)(lVar5 + -0x380) =
       (uVar26 ^ uVar45) - (uVar28 ^ *(ulonglong *)(lVar5 + -0x888)) ^ uVar32;
  lVar4 = DAT_182671c40;
  uVar47 = CONCAT44(uVar14,uVar14);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x30);
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xb29e352)) ^ uVar32) - uVar44 ^ uVar47;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c58 ^ 0x197933c0)) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0xb29e9f2)) ^ uVar40) - (uVar30 ^ *puVar1);
  uVar33 = CONCAT44(DAT_182671f54,DAT_182671f54);
  uVar26 = *(ulonglong *)(lVar4 + -0x510);
  uVar32 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xd790cd10)) ^
           CONCAT44(DAT_182671f04,DAT_182671f04)) + (*(ulonglong *)(lVar4 + -0x228) ^ uVar45);
  *puVar3 = uVar32 ^ uVar33;
  uVar14 = DAT_182671f28;
  uVar16 = DAT_182671eb8;
  uVar45 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar4 + -0xa60) = (uVar46 ^ uVar26) - uVar32 ^ uVar45;
  uVar26 = CONCAT44(uVar14,uVar14);
  local_f0 = (byte)uVar8;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x2db8e5c0)) =
       uVar26 ^ uVar54 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0xd88) ^ *(ulonglong *)(lVar4 + -0x680);
  uVar14 = DAT_182671d50;
  uVar26 = uVar26 ^ *(ulonglong *)(lVar4 + -0xb18);
  uVar32 = uVar26 >> ((local_f0 ^ 0xe6) & 0x3f);
  uVar41 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  local_140 = (byte)uVar49;
  *(ulonglong *)(lVar4 + -0x30) = uVar32 ^ uVar41;
  uVar26 = uVar26 << ((local_140 ^ 0x75) & 0x3f);
  *(ulonglong *)(lVar4 + -0x920) = uVar26 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671e14;
  uVar7 = DAT_182671c58;
  lVar5 = DAT_182671c40;
  uVar32 = uVar32 | uVar26;
  *(ulonglong *)(lVar4 + -0xb20) =
       (CONCAT44(uVar9,uVar6) ^ 0x74b3a8cc8fd8c292) <<
       (((byte)uVar16 ^ *(byte *)(lVar4 + -0xa60)) & 0x3f);
  uVar40 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x510) = uVar32 ^ uVar40;
  uVar14 = DAT_182671cb8;
  puVar1 = (ulonglong *)(lVar5 + -0x4b8);
  *(ulonglong *)(lVar5 + -0x680) =
       CONCAT44(uVar7,uVar29) ^ CONCAT44(uVar23,uVar20) ^ 0xae106658773b186b;
  uVar17 = DAT_182671f58;
  uVar26 = (uVar54 ^ *(ulonglong *)(lVar5 + -0xd88)) - (CONCAT44(uVar14,uVar14) ^ *puVar1);
  *(ulonglong *)(lVar5 + -0x760) = uVar26 ^ CONCAT44(DAT_182671d48,DAT_182671d48);
  uVar16 = DAT_182671dec;
  uVar51 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar5 + -0x380) = uVar26 - uVar32 ^ uVar51;
  uVar14 = DAT_182671da0;
  uVar26 = (CONCAT44(uVar11,uVar9) ^ 0xb1584dec4909a39d) -
           (CONCAT44(DAT_182671f18,DAT_182671f18) ^ *(ulonglong *)(lVar5 + -0xf0));
  *(ulonglong *)(lVar5 + -0xb18) = uVar26 ^ CONCAT44(uVar16,uVar16);
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar22 = CONCAT44(uVar13,uVar35);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x590a08b6)) = uVar32 + uVar26 ^ uVar30;
  uVar26 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar5 + -0x30) =
       (uVar22 ^ 0x84c04e48d169f537) >> (((byte)uVar15 ^ *(byte *)(lVar5 + -0xd88)) & 0x3f);
  *(ulonglong *)(lVar5 + -0x920) =
       uVar47 ^ *(ulonglong *)(lVar5 + -0xc18) ^ *(ulonglong *)(lVar5 + -0xb20) ^ uVar26 ^ uVar30;
  local_res18 = (byte)uVar20;
  uVar44 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x197931c0)) ^ uVar26) >>
           ((local_res18 ^ 0xfe) & 0x3f);
  *puVar1 = uVar44 ^ CONCAT44(DAT_182671eb4,DAT_182671eb4);
  puVar34 = (ulonglong *)(lVar5 - (uVar53 ^ 0x8a2018bd));
  uVar26 = (*puVar34 ^ uVar26) << ((local_140 ^ 0x65) & 0x3f);
  local_130 = (byte)uVar29;
  *(ulonglong *)(lVar5 + -0x760) = uVar26 ^ CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar23 = DAT_182671ccc;
  uVar32 = (ulonglong)DAT_182671ccc;
  uVar26 = uVar26 | uVar44;
  *(longlong *)(lVar5 + -0xb18) = 0x5488063dc7a9c494 << ((local_130 ^ 0xd8) & 0x3f);
  uVar14 = DAT_182671e78;
  uVar54 = CONCAT44(uVar23,uVar23);
  uVar46 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(lVar5 + -0x510) = uVar26 ^ uVar46;
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xd88) =
       (*(ulonglong *)(lVar5 - (uVar50 ^ 0x2db8e2c0)) ^ uVar47) - uVar26 ^ uVar44;
  local_120 = (byte)uVar10;
  *(longlong *)(lVar5 + -0x30) = *(longlong *)(lVar5 + -0x680) << ((local_120 ^ 0x38) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0xb29ebf2)) =
       uVar45 ^ *(ulonglong *)(lVar5 + -0xa60) ^ uVar54 ^ uVar51 ^ *(ulonglong *)(lVar5 + -0x380);
  uVar26 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar5 + -0x76c) =
       (DAT_182671c58 ^ 0xb6ca9ef8) << ((byte)*(undefined4 *)(lVar5 + -0x444) & 0x1f);
  uVar42 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar5 + -0x920) = *(ulonglong *)(lVar5 + -0xb20) >> 0x20 ^ uVar42 ^ uVar32;
  uVar32 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0xa5b17f50)) =
       (*(ulonglong *)(lVar5 + -0xb20) ^ uVar54) << 0x20 ^ uVar32;
  uVar23 = DAT_182671f78;
  uVar54 = (ulonglong)DAT_182671f78;
  uVar26 = *(ulonglong *)(lVar5 - (uVar37 ^ 0x5c6bbfd6)) ^ uVar42 |
           *(ulonglong *)(lVar5 + -0xb18) ^ uVar32;
  uVar32 = uVar26 ^ uVar30;
  *puVar1 = uVar32;
  *(uint *)(lVar5 + -0x61c) = DAT_182671c84 ^ 0xcfa1c1df | *(uint *)(lVar5 + -0x94c);
  uVar45 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar5 + -0x760) = (uVar51 ^ *(ulonglong *)(lVar5 + -0x380)) - uVar26 ^ uVar45;
  uVar52 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar5 - (uVar39 ^ 0xb6f65073)) =
       *(ulonglong *)(lVar5 + -0xd88) ^ uVar52 ^ uVar44 ^ uVar30 ^ uVar32;
  uVar23 = DAT_182671c5c;
  uVar37 = CONCAT44(DAT_182671e00,DAT_182671e00);
  uVar30 = (*(ulonglong *)(lVar5 + -0xc18) ^ uVar52) << ((bVar19 ^ 0x90) & 0x3f);
  uVar32 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar26 = (ulonglong)DAT_182671c5c;
  uVar51 = (*(ulonglong *)(lVar5 + -0xc18) >> 0x20 ^ uVar54) >> 0x1a;
  *(ulonglong *)(lVar5 + -0x680) = uVar30 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x30) = uVar51 ^ uVar37;
  uVar7 = DAT_182671ca0;
  uVar51 = uVar51 | uVar30;
  uVar54 = (ulonglong)DAT_182671ca0;
  *(ulonglong *)(lVar5 + -0xa60) = uVar51 ^ uVar32;
  lVar4 = DAT_182671c40;
  puVar55 = (ulonglong *)(lVar5 - (uVar26 ^ 0x72f80b72));
  uVar30 = CONCAT44(DAT_182671d90,DAT_182671d90);
  *(ulonglong *)(DAT_182671c40 - (uVar53 ^ 0x8a201abd)) = (*puVar55 ^ uVar44) - uVar51 ^ uVar30;
  *(ulonglong *)(lVar4 + -0xb18) =
       (CONCAT44(uVar29,uVar49) ^ 0x3f6d8493934f3bae) - (*(ulonglong *)(lVar4 + -0x920) ^ uVar42);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x72f8057a)) =
       *(ulonglong *)(lVar4 + -0x760) ^ *(ulonglong *)(lVar4 + -0x510) ^ CONCAT44(uVar7,uVar7) ^
       uVar45 ^ uVar46;
  uVar14 = DAT_182671cf8;
  uVar25 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  puVar48 = (ulonglong *)(lVar4 - (uVar38 ^ 0x4ea7b6ab));
  local_118 = (byte)uVar9;
  *puVar48 = ((ulonglong)(uVar7 >> 0x16) | uVar54 << 10) ^
             *(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0xfdbb745e)) >> 0x16 ^ uVar25;
  uVar38 = (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar4 + -0x380)) << 0x2a;
  *(ulonglong *)(lVar4 + -0xc18) = uVar38 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671f9c;
  *(ulonglong *)(lVar4 + -0x30) = (CONCAT44(uVar11,uVar49) ^ 0xdc11d8c4491f338a) + uVar38;
  uVar54 = CONCAT44(uVar14,uVar14);
  uVar38 = *puVar1 ^ uVar25 | uVar38;
  uVar26 = uVar38 ^ uVar54;
  uVar46 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar4 + -0x680) = uVar26;
  uVar14 = DAT_182671d74;
  *(ulonglong *)(lVar4 + -0xd88) = (*(ulonglong *)(lVar4 + -0x760) ^ uVar45) - uVar38 ^ uVar46;
  uVar38 = CONCAT44(uVar14,uVar14);
  uVar44 = CONCAT44(DAT_182671edc,DAT_182671edc);
  uVar26 = *(ulonglong *)(lVar4 + -0xb20) ^ uVar38 ^ uVar54 ^ uVar30 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x920) = uVar26;
  *(ulonglong *)(lVar4 + -0xb18) = (uVar26 ^ uVar38) >> ((bVar19 ^ 0xb8) & 0x3f) ^ uVar44;
  uVar15 = DAT_182671f94;
  uVar38 = (*(ulonglong *)(lVar4 - (uVar50 ^ 0x2db8e7f8)) ^ uVar38) << ((local_118 ^ 0x79) & 0x3f);
  uVar26 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar4 + -0x510) = uVar38 ^ uVar36;
  uVar14 = DAT_182671cdc;
  lVar5 = DAT_182671c40;
  uVar45 = CONCAT44(uVar15,uVar15);
  uVar38 = *(ulonglong *)(lVar4 - (uVar26 ^ 0x197933f8)) ^ uVar44 | uVar38;
  *(ulonglong *)(lVar4 + -0x380) = uVar38 ^ uVar45;
  uVar23 = DAT_182671f40;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x30) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar31 ^ 0x42a00932)) ^ uVar30) - uVar38 ^ uVar26;
  *puVar48 = *(ulonglong *)(lVar5 - ((ulonglong)uVar49 ^ 0xa798f2cd)) ^
             *(ulonglong *)(lVar5 + -0xa60) ^ CONCAT44(uVar23,uVar23) ^ uVar46 ^ uVar32;
  uVar15 = DAT_182671e08;
  uVar30 = ((ulonglong)uVar23 << 0x14 | (ulonglong)(uVar23 >> 0xc)) ^ *puVar1 >> 0xc;
  uVar44 = (CONCAT44(uVar23,uVar23) ^ *puVar1) << 0x34;
  *(ulonglong *)(lVar5 + -0xc18) = uVar30 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x760) = uVar44 ^ uVar47;
  uVar14 = DAT_182671d58;
  lVar4 = DAT_182671c40;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar30 = uVar30 | uVar44;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar30 ^ uVar38;
  uVar23 = DAT_182671c50;
  uVar25 = CONCAT44(uVar14,uVar14);
  uVar36 = (ulonglong)DAT_182671c50;
  *puVar34 = (uVar46 ^ *puVar55) - uVar30 ^ uVar25;
  uVar30 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xb29e5c2)) =
       *(ulonglong *)(lVar4 - (uVar36 ^ 0xa5b172c8)) ^ *(ulonglong *)(lVar4 + -0x30) ^ uVar30 ^
       uVar38 ^ uVar26;
  uVar38 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar4 + -0xb18) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0xa5b17158)) ^ uVar30) >>
       ((local_130 ^ 0xe1) & 0x3f) ^ uVar54;
  *(ulonglong *)(lVar4 + -0xb20) =
       (*(ulonglong *)(lVar4 + -0x510) ^ uVar30) << ((bVar19 ^ 0xb1) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xb29eab2)) =
       CONCAT44(uVar12,uVar31) ^ 0x85446bbdd7f9ee75 | *(ulonglong *)(lVar4 + -0x510) ^ uVar30;
  uVar14 = DAT_182671df4;
  uVar44 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *puVar1 = (*(ulonglong *)(lVar4 + -0xb18) ^ uVar54 | *(ulonglong *)(lVar4 + -0xb20) ^ uVar38) ^
            uVar44;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 + -0x30) ^ uVar26) - (*(ulonglong *)(lVar4 + -0xbd8) ^ uVar40) ^ uVar30
  ;
  lVar4 = DAT_182671c40;
  uVar24 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x72f8019a)) =
       (uVar22 ^ 0x9a03d57e158f8418) + 0x5dc6ad5c2177fc43;
  uVar15 = DAT_182671efc;
  uVar14 = DAT_182671da8;
  uVar38 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar26 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0xa5b17850)) ^ uVar30) - (*puVar1 ^ uVar44);
  *(ulonglong *)(lVar4 + -0xd88) = uVar26 ^ uVar38;
  uVar30 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x680) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar4 + -0xc90)) +
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x888)) ^ uVar30;
  *(ulonglong *)(lVar4 + -0xa60) = CONCAT44(uVar29,uVar20) ^ 0xbf5a4c8330be3cb3 | uVar26;
  uVar22 = CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar26 = (*puVar48 ^ uVar44) -
           (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c58 ^ 0x19793e60)) ^ uVar30) ^ uVar22;
  *(ulonglong *)(lVar4 + -0x510) = uVar26;
  uVar28 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(lVar4 + -0xb20) = CONCAT44(uVar9,uVar6) ^ uVar26 ^ uVar22 ^ 0xdddc1ceb79604cfa;
  *(ulonglong *)(lVar4 + -0xb18) =
       *(ulonglong *)(lVar4 + -0x920) ^ uVar28 ^ uVar25 ^ uVar45 ^ *(ulonglong *)(lVar4 + -0x380);
  *(uint *)(lVar4 + -0x58c) = (DAT_182671c84 ^ 0xf15c414) * *(int *)(lVar4 + -0x61c);
  uVar22 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *(ulonglong *)(lVar4 + -0x30) =
       (*(ulonglong *)(lVar4 + -0xb18) ^ uVar28) >> ((local_140 ^ 100) & 0x3f) ^ uVar22;
  lVar5 = DAT_182671c40;
  puVar34 = (ulonglong *)(lVar4 - (uVar39 ^ 0xb6f65b0b));
  *puVar34 = CONCAT44(uVar8,uVar31) ^ 0xc949cad8945bd1dc |
             CONCAT44(uVar29,uVar10) ^ 0x68cb057099ad9598;
  local_100 = (byte)uVar13;
  uVar26 = (*(ulonglong *)(lVar4 + -0xb18) ^ uVar28) << ((local_100 ^ 0x82) & 0x3f);
  *(ulonglong *)(lVar5 + -0xc18) = uVar26 ^ uVar21;
  lVar4 = DAT_182671c40;
  uVar28 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(DAT_182671c40 - (uVar50 ^ 0x2db8e4b8)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar49 ^ 0xa798ff75)) ^ uVar22 | uVar26) ^ uVar28
  ;
  uVar21 = CONCAT44(uVar20,uVar8) ^ 0x8cefff77eddfdfbb | 0xc2fcf438c0d5f32;
  uVar26 = *(ulonglong *)(lVar4 + -0x920);
  *puVar1 = uVar21;
  uVar14 = DAT_182671de8;
  lVar5 = DAT_182671c40;
  uVar26 = (uVar26 ^ uVar25) - (*(ulonglong *)(lVar4 - ((ulonglong)uVar31 ^ 0x42a00e2a)) ^ uVar33);
  *(longlong *)(DAT_182671c40 + -0x380) = 0x10f7c1b6128fe298 << ((byte)uVar21 & 0x3f);
  *(ulonglong *)(lVar5 + -0xb20) = uVar26 ^ uVar32;
  uVar15 = DAT_182671e30;
  *puVar34 = uVar26 - (*(ulonglong *)(lVar5 + -0xa60) ^ uVar28) ^ CONCAT44(uVar14,uVar14);
  uVar26 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0xb18) =
       -(*(ulonglong *)(lVar5 - (uVar24 ^ 0x72f8044a)) ^ uVar41) - 9 ^ uVar26;
  *(ulonglong *)(lVar5 + -0x30) =
       CONCAT44(uVar35,uVar35) ^ CONCAT44(uVar29,uVar10) ^ 0x5ad003c57a55f2e2;
  uVar21 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar26 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x590a088e)) ^ uVar26) +
           (*(ulonglong *)(lVar5 - (uVar36 ^ 0xa5b17e28)) ^ uVar28) ^ uVar21;
  *(ulonglong *)(lVar5 + -0xc18) = uVar26;
  uVar14 = DAT_182671f20;
  uVar26 = uVar27 ^ uVar26 ^ uVar21 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0xd88);
  *puVar3 = uVar26;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar29 ^ 0xdff9f0d8)) =
       (uVar26 ^ uVar27) >> (local_140 & 0x3f) ^ uVar52;
  uVar26 = *puVar3;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar43;
  *puVar1 = (uVar27 ^ uVar26) << ((local_d8 ^ 0x28) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  return;
}



############ FUN_ 180f7b2b0 size=5085 ############

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

void FUN_180f7b2b0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  byte bVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_res18;
  byte local_res20;
  byte local_100;
  byte local_f8;
  byte local_c0;
  ulonglong uVar31;
  
  uVar10 = DAT_182671c94;
  uVar9 = DAT_182671c84;
  uVar8 = DAT_182671c74;
  uVar7 = DAT_182671c64;
  uVar6 = DAT_182671c58;
  uVar5 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c74;
  uVar18 = (ulonglong)DAT_182671c50;
  uVar21 = (ulonglong)DAT_182671c58;
  uVar44 = DAT_182671c50 & DAT_182671c74;
  uVar34 = (ulonglong)DAT_182671c64;
  uVar19 = (ulonglong)DAT_182671c94;
  uVar23 = (ulonglong)DAT_182671c84;
  uVar24 = DAT_182671c58 | DAT_182671c94;
  uVar30 = DAT_182671c64 | DAT_182671c84;
  uVar31 = (ulonglong)uVar30;
  uVar15 = *(uint *)(&DAT_182613210 + (uVar28 ^ 0x5c69b0f8) + (longlong)DAT_182672208) ^
           DAT_182671c50;
  uVar2 = *(uint *)(&DAT_182613220 + DAT_182672208);
  uVar29 = (ulonglong)uVar24;
  bVar35 = (byte)DAT_182671c64;
  uVar25 = CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar32 = CONCAT44(DAT_182671d60,DAT_182671d60);
  DAT_182671c5c = uVar30;
  DAT_182671c60 = uVar24;
  DAT_182671c70 = uVar44;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar30 ^ 0xfdfaf59f)) =
       (CONCAT44(DAT_182671fb4,DAT_182671fb4) ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) <<
       ((bVar35 ^ 0xf) & 0x3f) ^ uVar25;
  uVar12 = DAT_182671ef8;
  uVar11 = DAT_182671d48;
  uVar37 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  uVar36 = *(ulonglong *)(lVar3 + -0xc90) ^ CONCAT44(DAT_182671d48,DAT_182671d48) |
           *(ulonglong *)(lVar3 + -0xa60) ^ uVar25;
  uVar25 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar3 + -0x760) = uVar36 ^ uVar37;
  uVar14 = DAT_182671f88;
  lVar4 = DAT_182671c40;
  uVar33 = (uVar32 ^ *(ulonglong *)(lVar3 + -0xd88)) -
           (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x30));
  *(ulonglong *)(lVar3 + -0xc18) = uVar33 ^ uVar25;
  uVar13 = DAT_182671e8c;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x4b8) =
       uVar33 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x2db8e9b8)) ^ uVar37) ^ uVar32;
  uVar12 = DAT_182671d8c;
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar25 = (CONCAT44(uVar6,uVar10) ^ 0xfc6af33fec4d58b2) -
           (*(ulonglong *)(DAT_182671c40 + -0x2b0) ^ uVar33);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar25 ^ CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar37 = CONCAT44(uVar12,uVar12);
  puVar26 = (ulonglong *)(lVar3 - (uVar18 ^ 0xa5b17f50));
  uVar38 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *puVar26 = uVar25 + uVar36 ^ uVar37;
  uVar25 = (ulonglong)DAT_182671fb0;
  puVar17 = (ulonglong *)(lVar3 - (uVar29 ^ 0x13b7a4ee));
  uVar36 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *puVar17 = *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x13b2ac56)) ^
             *(ulonglong *)(lVar3 + -0x680) ^ uVar38 ^ uVar36 ^ uVar37;
  uVar37 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x13b7ac4e)) =
       *(ulonglong *)(lVar3 + -0xb20) >> 0x20 ^ uVar37 ^ uVar25;
  local_100 = (byte)uVar30;
  uVar25 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar41 = (ulonglong)uVar44;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar44 ^ 0x4213a10)) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0xb20)) << ((local_100 ^ 0xdf) & 0x3f) ^ uVar25;
  uVar13 = DAT_182671f7c;
  uVar45 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *(ulonglong *)(lVar3 + -0x408) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x3950f40)) ^ uVar37 |
       uVar25 ^ *(ulonglong *)(lVar3 + -0xa50)) ^ uVar45;
  uVar12 = DAT_182671d74;
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xc38) =
       (*(ulonglong *)(lVar3 + -0x680) ^ uVar38) -
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0xfc6af737)) ^ uVar45) ^ uVar22;
  uVar36 = CONCAT44(DAT_182671f10,DAT_182671f10);
  bVar42 = (byte)uVar9;
  puVar27 = (ulonglong *)(lVar3 - (uVar19 ^ 0x13b2ae6e));
  uVar37 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar25 = CONCAT44(uVar12,uVar12) ^ *puVar27 ^ uVar36 ^ uVar32 ^ *(ulonglong *)(lVar4 + -0x4b8);
  *(ulonglong *)(lVar4 + -0xa60) = uVar25;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x5c69bd78)) =
       (uVar25 ^ uVar36) >> ((bVar42 ^ 0xf8) & 0x3f) ^ uVar37;
  uVar12 = DAT_182671f34;
  lVar3 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  local_f8 = (byte)uVar24;
  uVar25 = (*(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x39506a0)) ^ uVar36) <<
           ((local_f8 ^ 0xee) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar25 ^ uVar39;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar25 = (*(ulonglong *)(lVar3 - (uVar31 ^ 0xfdfaf277)) ^ uVar37 | uVar25) ^ uVar36;
  *(ulonglong *)(lVar3 + -0xc18) = uVar25;
  *(ulonglong *)(lVar3 + -0x760) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0x4b8)) >>
       ((*(byte *)(lVar3 - ((ulonglong)uVar5 ^ 0xa5b178d8)) ^ (byte)uVar11) & 0x3f);
  uVar12 = DAT_182671e10;
  lVar3 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (*(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xfdfafb47)) ^ uVar32) -
       (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x5c69bce8)) ^ uVar36) ^ uVar20;
  uVar11 = DAT_182671df4;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar25 = uVar37 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0xc38) ^ uVar22 ^ uVar25;
  *(ulonglong *)(lVar3 + -0xb18) = uVar25;
  uVar32 = CONCAT44(uVar11,uVar11);
  bVar40 = (byte)uVar44;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x13b2ac6e)) =
       (uVar25 ^ uVar37) >> (((byte)uVar8 ^ 0xca) & 0x3f) ^ uVar32;
  uVar25 = (uVar37 ^ *(ulonglong *)(lVar3 + -0xb18)) << ((bVar40 ^ 0x46) & 0x3f);
  puVar1 = (ulonglong *)(lVar3 + -0x380);
  *puVar1 = uVar25 ^ CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(lVar3 + -0xa50) = (CONCAT44(uVar30,uVar5) ^ 0x2b09f9d681fd86bf) - uVar25;
  uVar36 = CONCAT44(DAT_182671f64,DAT_182671f64);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xfdfaf97f)) =
       (uVar25 | uVar32 ^ *(ulonglong *)(lVar3 + -0xb20)) ^ uVar36;
  lVar3 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       (*(ulonglong *)(DAT_182671c40 + -0xc38) ^ uVar22) -
       (*(ulonglong *)(DAT_182671c40 + -0x680) ^ uVar36) ^ uVar37;
  uVar11 = DAT_182671d2c;
  *(ulonglong *)(lVar3 + -0xa60) =
       CONCAT44(uVar24,uVar30) ^ 0xfcdb9303e38e308a | CONCAT44(uVar9,uVar9) ^ 0x92bd8b39aed2cc68;
  uVar12 = DAT_182671e1c;
  uVar43 = CONCAT44(uVar11,uVar11);
  uVar25 = *(ulonglong *)(lVar3 + -0x510) ^ uVar43 ^ uVar20 ^ uVar45 ^
           *(ulonglong *)(lVar3 + -0x408);
  *(ulonglong *)(lVar3 + -0x30) = uVar25;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x3950148)) =
       (uVar25 ^ uVar43) >> ((bVar35 ^ 0x29) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x13b2a02e)) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0x4213070)) ^ uVar43) << ((local_f8 ^ 0xe4) & 0x3f) ^
       uVar38;
  uVar12 = DAT_182671f28;
  lVar4 = DAT_182671c40;
  uVar32 = uVar38 ^ *(ulonglong *)(lVar3 + -0x760) | uVar32 ^ *(ulonglong *)(lVar3 + -0xd88);
  uVar46 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  uVar38 = uVar32 ^ uVar46;
  uVar25 = *(ulonglong *)(DAT_182671c40 + -0x920);
  *(ulonglong *)(lVar3 + -0xc90) = uVar38;
  uVar11 = DAT_182671d4c;
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x4b8) = (*(ulonglong *)(lVar3 + -0x510) ^ uVar20) - uVar32 ^ uVar22;
  uVar12 = DAT_182671f68;
  uVar32 = (ulonglong)DAT_182671d94;
  uVar20 = CONCAT44(DAT_182671d94,DAT_182671d94);
  uVar45 = uVar38 ^ uVar25 ^ uVar20 ^ uVar46 ^ uVar37;
  *(ulonglong *)(lVar4 + -0xc18) = uVar45;
  uVar32 = (uVar45 >> 0x20 ^ uVar32) >> 0xe;
  *(ulonglong *)(lVar4 + -0xb18) = uVar32 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671dec;
  local_res18 = (byte)uVar10;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar45 = (uVar20 ^ uVar45) << ((local_res18 ^ 0x5c) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar4 + -0xa50) = uVar45;
  uVar12 = DAT_182671e78;
  uVar47 = CONCAT44(uVar11,uVar11);
  uVar32 = *(ulonglong *)(lVar4 - (uVar34 ^ 0xfc6af96f)) ^ uVar38 | uVar32;
  *(ulonglong *)(lVar4 + -0xb20) = uVar32 ^ uVar47;
  uVar20 = CONCAT44(uVar12,uVar12);
  *puVar1 = (uVar25 ^ uVar37) - uVar32 ^ uVar20;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x5c69bcc8)) =
       CONCAT44(uVar7,uVar9) ^ uVar38 ^ uVar45 ^ 0x483794c811d99168;
  lVar4 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar37 = CONCAT44(DAT_182671d50,DAT_182671d50);
  uVar34 = *(ulonglong *)(lVar3 + -0x680) ^ uVar25 ^ uVar22 ^ uVar36 ^
           *(ulonglong *)(DAT_182671c40 + -0x4b8);
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar34;
  uVar32 = (uVar34 ^ uVar25) >> ((bVar42 ^ 0xd4) & 0x3f);
  *(ulonglong *)(lVar4 + -0x408) = uVar32 ^ uVar37;
  uVar12 = DAT_182671f04;
  *(ulonglong *)(lVar4 + -0x30) = (uVar22 ^ *(ulonglong *)(lVar4 + -0x4b8)) - uVar32;
  uVar11 = DAT_182671dcc;
  uVar25 = (uVar34 ^ uVar25) << 0x34;
  *(ulonglong *)(lVar4 + -0xd88) = uVar25 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671de4;
  lVar3 = DAT_182671c40;
  uVar32 = uVar32 | uVar25;
  uVar36 = CONCAT44(uVar11,uVar11);
  uVar34 = uVar32 ^ uVar36;
  uVar25 = *(ulonglong *)(DAT_182671c40 + -0x4b8);
  *(ulonglong *)(lVar4 + -0x760) = uVar34;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x510) = (uVar22 ^ uVar25) - uVar32 ^ uVar37;
  uVar11 = DAT_182671f08;
  uVar8 = DAT_182671ed4;
  lVar3 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671ed4;
  uVar22 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  uVar34 = uVar22 ^ *puVar1 ^ uVar36 ^ uVar20 ^ uVar34;
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar34;
  uVar32 = ((ulonglong)(uVar8 >> 0x19) | uVar25 << 7) ^ uVar34 >> 0x19;
  puVar16 = (ulonglong *)(lVar3 - (uVar28 ^ 0x5c69bc60));
  *(ulonglong *)(lVar3 + -0xb18) = uVar32 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671e84;
  uVar25 = *puVar16;
  *(ulonglong *)(lVar3 + -0xc38) = (uVar22 ^ uVar34) << ((bVar42 ^ 0xff) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar3 + -0x920) = uVar46 ^ uVar25 ^ 0xdb79aa404449e50d;
  uVar13 = DAT_182671f18;
  uVar34 = CONCAT44(uVar11,uVar11);
  local_res20 = (byte)uVar6;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x13b2ad1e)) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0x4213c78)) ^ uVar43 | uVar32) ^ uVar34;
  uVar12 = DAT_182671ef4;
  uVar34 = uVar34 ^ *(ulonglong *)(lVar3 + -0xa50);
  uVar25 = (*puVar1 ^ uVar20) - (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0xf0));
  *(ulonglong *)(lVar3 + -0x680) = uVar25 ^ CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar11 = DAT_182671ed0;
  uVar43 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x30) = uVar25 - uVar34 ^ uVar43;
  uVar12 = DAT_182671f30;
  uVar20 = CONCAT44(uVar11,uVar11);
  local_c0 = (byte)uVar5;
  *(ulonglong *)(lVar3 + -0xa60) =
       uVar34 - (CONCAT44(DAT_182671d58,DAT_182671d58) ^ *(ulonglong *)(lVar3 + -0xa78)) ^ uVar20;
  uVar11 = DAT_182671cc8;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar34 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar25 = uVar36 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x510) ^ uVar47 ^
           *(ulonglong *)(lVar3 + -0xb20);
  *(ulonglong *)(lVar3 + -0x408) = uVar25;
  uVar12 = DAT_182671e60;
  uVar32 = (uVar25 ^ uVar36) >> ((local_c0 ^ 0x69) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd88) = uVar32 ^ uVar34;
  uVar34 = (uVar36 ^ uVar25) << ((local_res20 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar3 + -0x4b8) = uVar34 ^ CONCAT44(uVar11,uVar11);
  uVar13 = DAT_182671ec8;
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar25 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xfdfaf89f)) = (uVar34 | uVar32) ^ uVar22;
  uVar32 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar3 + -0xc90) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x510)) - (uVar25 ^ *(ulonglong *)(lVar3 + -0x7e8)) ^
       uVar32;
  uVar45 = CONCAT44(DAT_182671d24,DAT_182671d24);
  uVar34 = (*(ulonglong *)(lVar3 - (uVar41 ^ 0x4213cd0)) ^ uVar32) -
           (uVar22 ^ *(ulonglong *)(lVar3 + -0x760));
  *(undefined8 *)(lVar3 + -0xc18) = 0;
  uVar11 = DAT_182671db0;
  *(ulonglong *)(lVar3 + -0x920) = uVar34 ^ uVar45;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xb18) =
       -(CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0x228)) - 3 ^ uVar36;
  uVar11 = DAT_182671cb4;
  uVar32 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar25 = *(ulonglong *)(lVar3 + -0x760);
  uVar36 = (uVar36 ^ *puVar26) + (uVar22 ^ *(ulonglong *)(lVar3 + -0x760)) ^ uVar32;
  *(ulonglong *)(lVar3 + -0xc38) = uVar36;
  uVar38 = CONCAT44(uVar11,uVar11);
  *puVar1 = uVar38 ^ uVar36 ^ uVar32 ^ uVar43 ^ *(ulonglong *)(lVar3 + -0x30);
  uVar11 = DAT_182671e88;
  *(ulonglong *)(lVar3 + -0x680) = uVar22 ^ uVar25 ^ 0xe6ba4082abeff46d;
  uVar36 = (uVar38 ^ *puVar1) >> ((local_c0 ^ 0x4d) & 0x3f);
  uVar32 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar3 + -0xa50) = uVar36 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671d20;
  lVar4 = DAT_182671c40;
  uVar25 = (*(ulonglong *)(lVar3 - (uVar41 ^ 0x42133c0)) ^ uVar38) << ((bVar40 ^ 0x7b) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb20) = uVar25 ^ uVar32;
  uVar12 = DAT_182671f84;
  uVar46 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x408) = (uVar36 | uVar25) ^ uVar46;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar32 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0x5c69b0c0)) ^ uVar43) -
           (*(ulonglong *)(lVar4 - (uVar21 ^ 0x39508c8)) ^ uVar46) ^ uVar36;
  *(ulonglong *)(lVar4 + -0xd88) = uVar32;
  uVar11 = DAT_182671e74;
  *(ulonglong *)(lVar4 + -0x4b8) =
       *(ulonglong *)(lVar4 - (uVar18 ^ 0xa5b179c0)) ^ CONCAT44(uVar10,uVar24) ^ uVar36 ^
       0xc68bcc3cd7c179cc;
  uVar38 = CONCAT44(uVar11,uVar11);
  uVar25 = *(ulonglong *)(lVar4 - (uVar23 ^ 0x2db8e7f8)) ^ uVar38 ^ uVar45 ^ uVar20 ^
           *(ulonglong *)(lVar4 + -0xa60);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar25;
  lVar3 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (*(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xfdfaf817)) ^ uVar38) >>
       ((local_res18 ^ 0x6b) & 0x3f) ^ uVar22;
  uVar11 = DAT_182671fa0;
  *(int *)(lVar3 + -0x61c) = *(int *)(lVar3 - (uVar21 ^ 0x3950a00)) + *(int *)(lVar3 + -0x76c);
  uVar25 = (uVar38 ^ uVar25) << ((local_100 ^ 0xe4) & 0x3f);
  uVar20 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  puVar26 = (ulonglong *)(DAT_182671c40 - (uVar23 ^ 0x2db8ebc8));
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar25 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671d10;
  lVar3 = DAT_182671c40;
  uVar25 = *puVar26 ^ uVar22 | uVar25;
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar25 ^ uVar20;
  uVar23 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xb18) = uVar34 - uVar25 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xc38) = CONCAT44(uVar24,uVar44) ^ 0xfff71feffaf5fb7f | 0x1fb30cccc2f53b25
  ;
  lVar4 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x3950a40)) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0x39500d8)) ^ uVar36 ^ uVar32 ^ uVar34 ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0xa5b17328)) =
       (*(ulonglong *)(lVar4 + -0x680) ^ uVar34) >> ((bVar42 ^ 0xcf) & 0x3f) ^ uVar39;
  uVar32 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x13b2a4ce)) =
       (*(ulonglong *)(lVar4 + -0x680) ^ uVar34) << 0x29 ^ uVar32;
  uVar25 = CONCAT44(DAT_182671d90,DAT_182671d90);
  *(ulonglong *)(lVar4 + -0xa50) =
       (uVar43 ^ *(ulonglong *)(lVar4 + -0x30)) >> ((bVar42 ^ 0xf7) & 0x3f);
  *(ulonglong *)(lVar4 + -0xb20) =
       (*puVar1 ^ uVar32 | uVar39 ^ *(ulonglong *)(lVar4 + -0x760)) ^ uVar25;
  uVar11 = DAT_182671f60;
  *(ulonglong *)(lVar4 + -0x4b8) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0xd88)) - (uVar25 ^ *puVar17) ^ uVar33;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(uVar11,uVar11);
  puVar26 = (ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x5c69ba90));
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       uVar46 ^ uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0x408) ^ uVar23 ^
       *(ulonglong *)(DAT_182671c40 + -0xb18);
  uVar11 = DAT_182671e64;
  *(ulonglong *)(lVar3 + -0x7e8) = (*puVar26 ^ uVar37) >> ((bVar35 ^ 0x17) & 0x3f) ^ uVar32;
  uVar25 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar3 + -0xc90) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0x4213a20)) ^ uVar37) << ((bVar40 ^ 0x58) & 0x3f) ^
       CONCAT44(uVar11,uVar11);
  puVar26 = (ulonglong *)(lVar3 - (uVar25 ^ 0x8a20148d));
  *puVar26 = CONCAT44(uVar6,uVar7) ^ 0x295fad658aa1d090 | *(ulonglong *)(lVar3 + -0x680) ^ uVar34;
  uVar12 = DAT_182671e94;
  uVar28 = *(ulonglong *)(lVar3 - (uVar21 ^ 0x3950b28)) ^ uVar32 |
           *puVar16 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x920) = uVar28 ^ uVar37;
  uVar5 = DAT_182671c54;
  *(ulonglong *)(lVar3 + -0xc38) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xb18)) - (uVar37 ^ *puVar27) ^ CONCAT44(uVar12,uVar12);
  uVar6 = DAT_182671dac;
  uVar25 = (ulonglong)DAT_182671dac;
  *(ulonglong *)(lVar3 + -0xc18) = *puVar26 << ((*(byte *)(lVar3 + -0xc90) ^ (byte)uVar11) & 0x3f);
  uVar34 = CONCAT44(uVar6,uVar6);
  uVar32 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar28 = uVar28 ^ uVar33 ^ uVar34 ^ *(ulonglong *)(lVar3 + -0x4b8);
  *(ulonglong *)(lVar3 + -0x30) = uVar28;
  uVar6 = DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0xa50) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x13b7affe)) >> 0x20 ^ uVar25) >> 0x14 ^ uVar32;
  DAT_182671c6c = uVar6 - uVar5;
  uVar25 = (ulonglong)DAT_182671c6c;
  *(uint *)(lVar3 + -0x784) = (uVar6 ^ 0x2b045231) + *(int *)(lVar3 + -0x6c0);
  uVar29 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar3 + -0x760) = (uVar34 ^ uVar28) << 0xc ^ uVar29;
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar25 ^ 0xc73f33ae)) ^ uVar29 |
            *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xdff9f3a8)) ^ uVar32) ^ uVar43;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar44) * 4) = uVar15;
  return;
}



############ FUN_ 180f8b390 size=5864 ############

void FUN_180f8b390(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte bVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_118;
  byte local_110;
  byte local_d8;
  byte local_d0;
  byte local_c8;
  byte local_c0;
  
  uVar10 = DAT_182671c90;
  uVar9 = DAT_182671c80;
  uVar8 = DAT_182671c7c;
  uVar7 = DAT_182671c60;
  uVar6 = DAT_182671c58;
  uVar5 = DAT_182671c54;
  uVar4 = DAT_182671c4c;
  uVar30 = (ulonglong)DAT_182671c54;
  uVar51 = (ulonglong)DAT_182671c58;
  uVar28 = (ulonglong)DAT_182671c80;
  uVar47 = (ulonglong)DAT_182671c7c;
  uVar41 = DAT_182671c58 & DAT_182671c80;
  uVar24 = DAT_182671c60 | DAT_182671c7c;
  uVar36 = (ulonglong)uVar24;
  uVar33 = *(uint *)(&DAT_182613218 + DAT_182672238) ^ DAT_182671c54;
  uVar37 = (ulonglong)DAT_182671c4c;
  uVar21 = ~DAT_182671c90;
  uVar42 = DAT_182671c64 + DAT_182671c4c;
  uVar18 = DAT_182671c84 | DAT_182671c54;
  uVar15 = *(uint *)(&DAT_182613220 + DAT_182672238) ^ DAT_182671c84;
  uVar34 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar17 = (ulonglong)uVar18;
  uVar39 = (ulonglong)uVar42;
  DAT_182671c50 = uVar18;
  DAT_182671c68 = uVar41;
  DAT_182671c74 = uVar21;
  DAT_182671c8c = uVar42;
  DAT_182671c94 = uVar24;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0xfff9fc78)) =
       (CONCAT44(DAT_182671d48,DAT_182671d48) ^ *(ulonglong *)(DAT_182671c40 + -0x4b8)) << 0x20 ^
       uVar34;
  lVar2 = DAT_182671c40;
  uVar43 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c64 ^ 0xfc6af96f)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0xceb20e1e)) ^
        CONCAT44(DAT_182671f6c,DAT_182671f6c) |
       *(ulonglong *)(DAT_182671c40 - (uVar30 ^ 0xdff9fa78)) ^ uVar34) ^ uVar43;
  uVar31 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar2 + -0x7e8) =
       (CONCAT44(DAT_182671e28,DAT_182671e28) ^ *(ulonglong *)(lVar2 + -0xc18)) -
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0xd2471b77)) ^ uVar43) ^ uVar31;
  uVar34 = CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar44 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar27 = (ulonglong)uVar10;
  uVar40 = (ulonglong)uVar41;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xbd5ff635)) =
       CONCAT44(DAT_182671f00,DAT_182671f00) ^ uVar44 ^ uVar34 ^ *(ulonglong *)(lVar2 + -0xb18) ^
       *(ulonglong *)(lVar2 + -0x30);
  uVar11 = DAT_182671d68;
  uVar22 = (ulonglong)uVar7;
  *(ulonglong *)(lVar2 + -0xb20) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x42a009ca)) ^ uVar34 | 0x5db7a82a1eef07f2;
  lVar2 = DAT_182671c40;
  uVar38 = CONCAT44(uVar11,uVar11);
  bVar25 = (byte)uVar7;
  *(ulonglong *)(DAT_182671c40 - (uVar30 ^ 0xdff9fdf0)) =
       (*(ulonglong *)(DAT_182671c40 + -0xbd8) ^ uVar34) >> ((bVar25 ^ 0x60) & 0x3f) ^ uVar38;
  uVar11 = DAT_182671ed8;
  *(ulonglong *)(lVar2 + -0x228) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0xffe6fadc)) ^ uVar38 |
       CONCAT44(uVar6,uVar8) ^ 0x1ea8391224d8c5dc;
  uVar19 = CONCAT44(uVar11,uVar11);
  puVar35 = (ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xd2471b47));
  *puVar35 = (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar34) << (((byte)uVar41 ^ 0x20) & 0x3f) ^ uVar19;
  uVar11 = DAT_182671ec4;
  uVar34 = *(ulonglong *)(lVar2 + -0x7e8);
  uVar32 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar19 = (uVar19 ^ *(ulonglong *)(lVar2 + -0xa60) | uVar38 ^ *(ulonglong *)(lVar2 + -0x408)) ^
           uVar32;
  *(ulonglong *)(lVar2 + -0x828) = uVar19;
  uVar48 = CONCAT44(uVar11,uVar11);
  uVar44 = (uVar44 ^ *(ulonglong *)(lVar2 + -0x30)) -
           (*(ulonglong *)(lVar2 - (uVar39 ^ 0xceb20c4e)) ^ uVar32);
  uVar45 = uVar44 ^ uVar48;
  *(ulonglong *)(lVar2 + -0x960) = uVar45;
  uVar11 = DAT_182671cc0;
  *(ulonglong *)(lVar2 + -0xda8) = CONCAT44(uVar8,uVar41) ^ 0x942c65fc8ac0ab9f | uVar44;
  uVar12 = DAT_182671d60;
  uVar23 = CONCAT44(uVar11,uVar11);
  uVar19 = uVar34 ^ uVar19 ^ uVar32 ^ uVar38 ^ uVar31;
  *(ulonglong *)(lVar2 + -0xc90) = uVar19;
  uVar44 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x920) = (uVar38 ^ uVar19) >> ((bVar25 ^ 0x7a) & 0x3f) ^ uVar23;
  lVar2 = DAT_182671c40;
  bVar50 = (byte)uVar8;
  uVar52 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x3950050)) ^ uVar38) <<
       ((bVar50 ^ 0xd2) & 0x3f) ^ uVar44;
  uVar16 = DAT_182671d0c;
  uVar11 = DAT_182671d04;
  uVar38 = *(ulonglong *)(lVar2 - (uVar36 ^ 0xffe6f9b4)) ^ uVar44 |
           *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x42a00b32)) ^ uVar23;
  uVar44 = (ulonglong)DAT_182671d0c;
  *(ulonglong *)(lVar2 + -0x110) = uVar38 ^ uVar52;
  uVar4 = DAT_182671c48;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar19 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar2 + -0x510) = (uVar34 ^ uVar31) - uVar38 ^ uVar26;
  uVar11 = DAT_182671e10;
  uVar7 = DAT_182671c5c;
  uVar31 = (ulonglong)DAT_182671c5c;
  uVar29 = DAT_182671c5c * uVar4;
  uVar45 = CONCAT44(uVar16,uVar16) ^ uVar48 ^ uVar43 ^ *(ulonglong *)(lVar2 + -0xa50) ^ uVar45;
  *(ulonglong *)(lVar2 + -0x5e8) = uVar45;
  uVar38 = CONCAT44(uVar11,uVar11);
  DAT_182671c88 = uVar29;
  *(ulonglong *)(lVar2 + -0xf0) =
       ((ulonglong)(uVar16 >> 0x16) | uVar44 << 10) ^
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x480207fa)) >> 0x16 ^ uVar38;
  lVar2 = DAT_182671c40;
  bVar1 = (byte)uVar7;
  uVar34 = (CONCAT44(uVar16,uVar16) ^ uVar45) << ((bVar1 ^ 0xd5) & 0x3f);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar4 ^ 0x480206aa)) =
       uVar34 ^ CONCAT44(DAT_182671e7c,DAT_182671e7c);
  uVar11 = DAT_182671d9c;
  uVar44 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar2 + -0xa78) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xfdfaff0f)) ^ uVar38 | uVar34) ^ uVar44;
  uVar46 = CONCAT44(uVar11,uVar11);
  uVar38 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  *(ulonglong *)(lVar2 + -0x380) =
       (uVar48 ^ *(ulonglong *)(lVar2 + -0x960)) -
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x4802086a)) ^ uVar44) ^ uVar46;
  uVar11 = DAT_182671dfc;
  lVar3 = DAT_182671c40;
  puVar20 = (ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0x89a3f796));
  uVar34 = *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xfdfafaef)) ^ uVar38 ^ uVar44 ^ uVar26 ^
           *puVar20;
  *(ulonglong *)(lVar2 + -0xc18) = uVar34;
  uVar44 = (uVar34 ^ uVar38) >> ((bVar1 ^ 0xd1) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb18) = uVar44 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671f04;
  uVar38 = (uVar38 ^ uVar34) << ((byte)uVar4 & 0x3f);
  uVar34 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar3 + -0xb20) = uVar38 ^ CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar49 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xfc6af117)) = (uVar44 | uVar38) ^ uVar49;
  uVar44 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar3 + -0xbd8) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0x510)) -
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0xceb2064e)) ^ uVar49) ^ uVar44;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xbd5ff9e5)) =
       uVar23 ^ *(ulonglong *)(lVar3 + -0x920) ^ 0xb8fe0cd63161145e;
  uVar34 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar3 + -0xa60) =
       uVar46 ^ uVar52 ^ *(ulonglong *)(lVar3 + -0x380) ^ *(ulonglong *)(lVar3 + -0x110) ^ uVar34;
  uVar39 = CONCAT44(DAT_182671de8,DAT_182671de8);
  local_110 = (byte)uVar5;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xbd5ffddd)) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0xffe6f4b4)) ^ uVar34) >> ((local_110 ^ 0xf4) & 0x3f) ^
       uVar39;
  uVar11 = DAT_182671d58;
  uVar34 = (*(ulonglong *)(lVar3 + -0xa60) ^ uVar34) << ((bVar50 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar3 + -0xda8) = uVar34 ^ CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar12 = DAT_182671e0c;
  uVar34 = *(ulonglong *)(lVar3 + -0x30) ^ uVar39 | uVar34;
  uVar39 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x828) = uVar34 ^ uVar39;
  uVar38 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x4ea7be83)) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0x380)) - uVar34 ^ uVar38;
  uVar7 = DAT_182671c6c;
  uVar34 = CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar45 = (ulonglong)DAT_182671c6c;
  uVar26 = CONCAT44(DAT_182671d74,DAT_182671d74);
  uVar39 = *(ulonglong *)(lVar3 + -0xbd8) ^ *(ulonglong *)(lVar3 + -0x828) ^ uVar34 ^ uVar39 ^
           uVar44;
  *(ulonglong *)(lVar3 + -0x760) = uVar39;
  uVar39 = uVar39 ^ uVar34;
  local_d8 = (byte)uVar6;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar39 >> ((local_d8 ^ 0xd9) & 0x3f) ^ uVar26;
  uVar34 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x42a00842)) =
       uVar39 << ((bVar25 ^ 0x67) & 0x3f) ^ uVar34;
  uVar6 = DAT_182671c78;
  uVar39 = (ulonglong)DAT_182671c78;
  uVar16 = uVar7 | DAT_182671c78;
  uVar48 = CONCAT44(DAT_182671d50,DAT_182671d50);
  uVar43 = (ulonglong)DAT_182671c78;
  DAT_182671c70 = uVar16;
  *(ulonglong *)(lVar3 + -0x5e8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xc7ffbdbe)) ^ uVar34 |
       *(ulonglong *)(lVar3 + -0x7e8) ^ uVar26) ^ uVar48;
  *(int *)(lVar3 - (uVar43 ^ 0x6c8819e)) =
       *(int *)(lVar3 + -0xae4) << ((byte)*(undefined4 *)(lVar3 + -0x94c) & 0x1f);
  uVar34 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xc73f343e)) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar44) - (*(ulonglong *)(lVar3 + -0x3d8) ^ uVar23) ^
       uVar34;
  uVar13 = DAT_182671e50;
  uVar11 = DAT_182671c98;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x4b8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x6c8875a)) ^ uVar34) -
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar48) ^ uVar46;
  uVar12 = DAT_182671ee0;
  uVar52 = CONCAT44(uVar13,uVar13);
  uVar34 = *(ulonglong *)(lVar2 + -0xc90);
  uVar44 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xc73f324e)) ^ CONCAT44(uVar11,uVar11)) +
           (CONCAT44(uVar7,uVar6) ^ 0x19e9267db150eab6);
  *(ulonglong *)(lVar2 + -0x960) = uVar44 ^ uVar52;
  uVar11 = DAT_182671ecc;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xa78) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0x6c88242)) ^ uVar48) - uVar44 ^ uVar23;
  uVar12 = DAT_182671cf4;
  uVar44 = CONCAT44(uVar11,uVar11);
  uVar43 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar26 = uVar34 ^ uVar44 ^ uVar38 ^ uVar49 ^ *(ulonglong *)(lVar2 + -0x228);
  *(ulonglong *)(lVar2 + -0xc18) = uVar26;
  uVar26 = (uVar26 ^ uVar44) >> (((byte)uVar16 ^ 0xcf) & 0x3f);
  *(ulonglong *)(lVar2 + -0xb18) = uVar26 ^ uVar32;
  uVar11 = DAT_182671f40;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xb20) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xfdfaf3e7)) ^ uVar44) << 0x1f ^ uVar43;
  uVar14 = DAT_182671f68;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x6c88c8a)) ^ uVar43 | uVar26) ^ uVar32;
  *(longlong *)(lVar3 + -0x920) =
       0x71a03eda356a3a70 << (((byte)uVar13 ^ *(byte *)(lVar3 + -0x960)) & 0x3f);
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xfff9fbf0)) =
       (uVar34 ^ uVar38) - (*(ulonglong *)(lVar3 + -0xb08) ^ uVar44) ^ uVar44;
  uVar11 = DAT_182671ccc;
  uVar43 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 + -0x408) ^ uVar44) - (*(ulonglong *)(lVar3 + -0x510) ^ uVar32) ^
       uVar43;
  uVar34 = CONCAT44(uVar11,uVar11);
  *puVar35 = (CONCAT44(uVar7,uVar4) ^ 0x38c0cb31b7fdfdfd) -
             (CONCAT44(DAT_182671fac,DAT_182671fac) ^ *(ulonglong *)(lVar3 + -0xd88)) ^ uVar34;
  puVar35 = (ulonglong *)(lVar3 - (uVar51 ^ 0x39506a0));
  uVar44 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xdff9f9c8)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0xfc6af62f)) ^ uVar32) +
       (*puVar35 ^ uVar34) ^ uVar44;
  uVar11 = DAT_182671e90;
  *(undefined8 *)(lVar3 + -0xda8) = **(undefined8 **)(lVar3 + -0x40);
  uVar5 = DAT_182671f0c;
  uVar34 = (ulonglong)DAT_182671f0c;
  uVar38 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar44 = uVar46 ^ *(ulonglong *)(lVar3 + -0x4b8) ^ *(ulonglong *)(lVar3 + -0x30) ^ uVar38 ^ uVar44
  ;
  *(ulonglong *)(lVar3 + -0x380) = uVar44;
  uVar13 = DAT_182671f80;
  uVar34 = (uVar34 << 0x1b | (ulonglong)(uVar5 >> 5)) ^ uVar44 >> 5;
  *(ulonglong *)(lVar3 + -0x828) = uVar34 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671f10;
  uVar38 = (uVar44 ^ uVar38) << ((bVar50 ^ 0xef) & 0x3f);
  *(ulonglong *)(lVar3 + -0x760) = uVar38 ^ CONCAT44(uVar13,uVar13);
  uVar5 = DAT_182671d3c;
  uVar44 = (ulonglong)DAT_182671d3c;
  uVar48 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xbd5ffa05)) = (uVar38 | uVar34) ^ uVar48;
  uVar26 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(lVar3 - (uVar47 ^ 0x71c6f684)) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0x4b8)) - (uVar48 ^ *(ulonglong *)(lVar3 + -0x7e8)) ^
       uVar26;
  uVar38 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x2850bd8)) =
       uVar38 ^ *(ulonglong *)(lVar3 + -0xa78) ^ *(ulonglong *)(lVar3 + -0x110) ^ uVar43 ^ uVar23;
  uVar23 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar3 + -0xf0) = (*(ulonglong *)(lVar3 + -0xbd8) >> 0x20 ^ uVar44) >> 5 ^ uVar23;
  uVar44 = CONCAT44(DAT_182671e04,DAT_182671e04);
  local_118 = (byte)uVar7;
  uVar34 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0xfc6af6d7)) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar38) << 0x1b ^ uVar44;
  uVar32 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  local_c8 = (byte)uVar9;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xffe6fcfc)) =
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0x2db8eb30)) ^ uVar44 |
       uVar23 ^ *(ulonglong *)(lVar3 + -0xf0)) ^ uVar32;
  *(longlong *)(lVar3 - (uVar36 ^ 0xffe6f2cc)) = -0x15b483e2f9424d33 << ((local_c8 ^ 0x38) & 0x3f);
  uVar11 = DAT_182671e70;
  uVar23 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar3 + -0xb18) =
       (*(ulonglong *)(lVar3 + -0x110) ^ uVar43) - (uVar32 ^ *(ulonglong *)(lVar3 + -0x228)) ^
       uVar23;
  uVar5 = DAT_182671c8c;
  lVar2 = DAT_182671c40;
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar44 = *(ulonglong *)(lVar3 + -0xa50) ^ uVar34 ^ uVar32 ^ uVar26 ^
           *(ulonglong *)(lVar3 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar44;
  uVar13 = DAT_182671dd8;
  uVar44 = uVar44 ^ uVar34;
  uVar36 = uVar44 >> ((local_118 ^ 0xd9) & 0x3f);
  bVar1 = (byte)DAT_182671c64;
  *(ulonglong *)(lVar2 + -0xc90) = uVar36 ^ CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(uint *)(lVar2 + -0x54) = (uVar5 ^ 0xe66693f8) << ((bVar1 ^ 0x2f) & 0x1f);
  uVar11 = DAT_182671cc8;
  uVar34 = (*(ulonglong *)(lVar2 - (uVar40 ^ 0x2850920)) ^ uVar34) << (((byte)uVar21 ^ 0x3b) & 0x3f)
  ;
  *(ulonglong *)(lVar2 + -0x408) = uVar34 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x510) = uVar44 << ((local_118 ^ 0xd6) & 0x3f);
  uVar13 = DAT_182671d2c;
  lVar2 = DAT_182671c40;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 + -0xa60) = (uVar36 | uVar34) ^ uVar32;
  uVar11 = DAT_182671ef4;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 - (uVar40 ^ 0x2850a50)) ^ uVar26) - (*puVar35 ^ uVar32) ^ uVar36;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x30) =
       *(ulonglong *)(lVar2 - (uVar22 ^ 0xae62c5a8)) ^ *(ulonglong *)(lVar2 - (uVar45 ^ 0xc73f3fd6))
       ^ uVar34 ^ uVar23 ^ uVar48;
  local_c0 = (byte)uVar12;
  *(ulonglong *)(lVar2 + -0x380) =
       (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar38) <<
       ((*(byte *)(lVar2 - (uVar22 ^ 0xae62c960)) ^ local_c0) & 0x3f);
  uVar44 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x6c88f82)) =
       (*(ulonglong *)(lVar2 + -0x30) ^ uVar34) >> ((local_110 ^ 0xd0) & 0x3f) ^ uVar44;
  uVar11 = DAT_182671cd8;
  uVar34 = (*(ulonglong *)(lVar2 + -0x30) ^ uVar34) << 0x18;
  *(ulonglong *)(lVar2 + -0x760) = uVar34 ^ CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar39 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar2 + -0x4b8) = CONCAT44(uVar10,uVar24) ^ 0xdb7e51c767e63f14;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x2db8e4a0)) =
       (*(ulonglong *)(lVar2 + -0x828) ^ uVar44 | uVar34) ^ uVar38;
  uVar5 = DAT_182671c64;
  uVar44 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xbd5ffd1d)) =
       (*(ulonglong *)(lVar2 - (uVar47 ^ 0x71c6f7cc)) ^ uVar23) -
       (uVar38 ^ *(ulonglong *)(lVar2 + -0xa78)) ^ uVar44;
  uVar39 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar34 = *puVar20 ^ uVar39 ^ uVar38 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0xda8);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar34;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xdff9f5e0)) =
       (uVar34 ^ uVar39) >> (((byte)uVar5 ^ 0xb) & 0x3f) ^ uVar52;
  lVar2 = DAT_182671c40;
  uVar34 = (*(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0xc73f3126)) ^ uVar39) <<
           (((byte)uVar16 ^ 0xe2) & 0x3f);
  uVar39 = CONCAT44(DAT_182671f38,DAT_182671f38);
  puVar20 = (ulonglong *)(DAT_182671c40 + -0xc18);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar34 ^ CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar2 + -0x228) = (uVar34 | uVar52 ^ *puVar20) ^ uVar39;
  lVar2 = DAT_182671c40;
  puVar20 = (ulonglong *)(DAT_182671c40 + -0xda8);
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       CONCAT44(uVar9,uVar21) ^ 0xff557fef8f6dfb7d | 0xe94532420869ab3d;
  uVar23 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar34 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar2 + -0x510) =
       (uVar36 ^ *puVar20) - (*(ulonglong *)(lVar2 - (uVar19 ^ 0x4802003a)) ^ uVar39) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x408) =
       uVar34 ^ *(ulonglong *)(lVar2 + -0xa60) ^ uVar44 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0xf0);
  lVar3 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xfdfafbf7)) ^ uVar34) >> (((byte)uVar41 ^ 0x39) & 0x3f) ^
       uVar38;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xae62c810)) =
       (CONCAT44(uVar18,uVar8) ^ 0xe56dc465e2ec9f83) + 0x74d078bbcc7b010e;
  uVar11 = DAT_182671dac;
  lVar2 = DAT_182671c40;
  uVar19 = CONCAT44(DAT_182671eac,DAT_182671eac);
  local_d0 = (byte)uVar42;
  puVar20 = (ulonglong *)(DAT_182671c40 + -0xc90);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar51 ^ 0x39508c8)) ^ uVar34) << ((local_d0 ^ 0x61) & 0x3f)
       ^ uVar19;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xd2471a07)) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0xfff9f810)) ^ uVar19 | uVar38 ^ *puVar20) ^ uVar34;
  uVar11 = DAT_182671db4;
  *(ulonglong *)(lVar2 + -0xbd8) =
       CONCAT44(uVar21,uVar7) ^ CONCAT44(uVar4,uVar21) ^ 0x2014d03fc5ec96ff;
  *(ulonglong *)(lVar2 + -0x380) =
       (uVar44 ^ *(ulonglong *)(lVar2 + -0xf0)) - (uVar34 ^ *(ulonglong *)(lVar2 + -0xb20)) ^
       CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671d14;
  *(ulonglong *)(lVar2 + -0x30) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0x4ea7b703)) ^ uVar34 ^ uVar23 ^ uVar39 ^
       *(ulonglong *)(lVar2 + -0xb20);
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xbd5ff955)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0x89a3fdde)) ^ uVar39) >>
       (((byte)uVar29 ^ 0xe0) & 0x3f) ^ uVar19;
  uVar11 = DAT_182671df8;
  uVar34 = *(ulonglong *)(lVar2 + -0x4b8);
  *(ulonglong *)(lVar2 + -0x828) =
       (CONCAT44(DAT_182671c64,uVar6) ^ 0x7f5825c8d3dca4ef) << ((bVar25 ^ 99) & 0x3f);
  uVar12 = DAT_182671f54;
  uVar27 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x30)) << ((bVar50 ^ 0xe6) & 0x3f);
  *(ulonglong *)(lVar2 + -0x760) = uVar27 ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar33;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0xfff9f4e0)) =
       (uVar27 | uVar19 ^ uVar34) ^ CONCAT44(uVar12,uVar12);
  return;
}



############ FUN_ 180fdcbc0 size=3253 ############

void FUN_180fdcbc0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong uVar25;
  byte *pbVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  byte local_78;
  
  uVar16 = DAT_182671c8c;
  uVar12 = DAT_182671c78;
  uVar7 = DAT_182671c50;
  uVar5 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c48;
  uVar28 = (ulonglong)DAT_182671c78;
  uVar22 = DAT_182671c50 * DAT_182671c48;
  uVar32 = DAT_182671c8c ^ DAT_182671c78;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182671fcc);
  uVar19 = *(uint *)(&DAT_182613218 + DAT_182671fcc) ^ DAT_182671c48;
  uVar20 = (ulonglong)DAT_182671c50;
  DAT_182671c5c = uVar32;
  DAT_182671c90 = uVar22;
  *(undefined8 *)(DAT_182671c40 + -0x380) = 0x3f2bb5b4145f2073;
  uVar30 = CONCAT44(uVar7,uVar16);
  *(ulonglong *)(lVar2 + -0x30) = uVar30 ^ 0x36911379b38c169e;
  uVar17 = (ulonglong)uVar32;
  uVar25 = (ulonglong)DAT_182671e0c;
  *(ulonglong *)(lVar2 + -0x510) = CONCAT44(uVar32,uVar12) ^ 0x7551b43b672e91d9;
  *(ulonglong *)(lVar2 + -0x8d0) = *(ulonglong *)(lVar2 - (uVar20 ^ 0x5bc59328)) ^ uVar25;
  uVar27 = (ulonglong)uVar22;
  *(ulonglong *)(DAT_182671c40 + -0x528) = CONCAT44(uVar22,uVar12) ^ 0xcde37d56457661d5;
  local_78 = (byte)uVar32;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0x5854a190)) =
       0xad5e361c69236c3d >> ((local_78 ^ 0x9b) & 0x3f);
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x680) = CONCAT44(uVar12,uVar22) ^ 0x64c65f0eb28b8f4c;
  *(ulonglong *)(lVar2 + -0xcc8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x204008d5)) ^ uVar25) +
       (CONCAT44(uVar16,uVar7) ^ 0x5854a7105bc59601);
  bVar21 = (byte)DAT_182671dec;
  lVar2 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671d54;
  bVar24 = *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xa48b507f)) ^ uVar25) ^
           (byte)DAT_182671dec ^ (byte)DAT_182671d08;
  *(ulonglong *)(DAT_182671c40 + -0x8d0) = CONCAT44(uVar22,uVar7) ^ 0x27e1cf1b9e328d94;
  *(byte *)(lVar2 + -0xb31) = bVar24;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x1e0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0xfcdff4ef)) ^ uVar18) +
       (CONCAT44(uVar12,uVar5) ^ 0xfcdfffbf20400004);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar27 ^ 0x4adbe550)) ^ uVar18) = bVar21 ^ bVar24;
  *(byte *)(lVar3 + -0xb31) = (byte)uVar12 ^ 199;
  uVar25 = (ulonglong)DAT_182671d04;
  *(undefined8 *)(lVar3 - (uVar17 ^ 0xa48b5007)) = *(undefined8 *)(lVar3 + -0x1e0);
  *(undefined8 *)(lVar3 + -0x1e0) = 0xbf7e9686a34f766f;
  *(uint *)(lVar3 + -0x4ac) = uVar16 ^ 0x6efcec75;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar7 ^ 0x5bc59060)) = *(undefined8 *)(lVar3 + -0xcc8);
  *(undefined8 *)(lVar3 + -0xcc8) = 0x8e7595fc2d0f9d8b;
  *(ulonglong *)(lVar3 + -0x8e0) = uVar25 ^ *(ulonglong *)(lVar3 + -0x8a8);
  *(ulonglong *)(lVar3 + -0x8a8) = CONCAT44(uVar32,uVar22) ^ 0x30cc3a9ed646b864;
  *(ulonglong *)(lVar3 + -0xda8) = CONCAT44(uVar32,uVar7) ^ 0x8f85173f645e323;
  uVar18 = (ulonglong)DAT_182671f44;
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xfcdff727)) =
       *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x4adbe860)) ^ uVar18;
  lVar2 = DAT_182671c40;
  pbVar26 = (byte *)(uVar18 ^ *(ulonglong *)(DAT_182671c40 + -0x898));
  *(ulonglong *)(DAT_182671c40 + -0x660) = CONCAT44(uVar7,uVar32) ^ 0xd3c43b9b74af8d37;
  bVar21 = (byte)DAT_182671f0c ^ (byte)DAT_182671d08;
  *(byte **)(lVar2 + -0x1a8) = pbVar26 + (CONCAT44(uVar5,uVar22) ^ 0x204000054adbee01);
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 - (uVar27 ^ 0x4adbe2d1)) = bVar21 ^ *pbVar26;
  *(uint *)(lVar2 - ((ulonglong)uVar16 ^ 0x5854a094)) = uVar7 ^ 0xa7adbb86;
  *(uint *)((ulonglong)DAT_182671fb0 ^ *(ulonglong *)(lVar2 + -0x210)) = uVar32 ^ 0xd852e994;
  *(ulonglong *)(lVar2 + -0x210) = CONCAT44(uVar32,uVar5) ^ 0x4a81f25a5b489b18;
  *(undefined8 *)(lVar2 + -0x898) = 0xafff43255438e83c;
  *(ulonglong *)(lVar2 + -0xb18) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0xfcdff857)) ^ 0x56e4100c433bdc6b;
  pbVar26 = (byte *)(*(ulonglong *)(lVar2 + -0x8e0) ^ uVar25);
  *(ulonglong *)(lVar2 + -0x7e8) = CONCAT44(uVar32,uVar22) ^ 0x6ef34d48ac1f47c6;
  *(byte **)(lVar2 + -0xb90) = pbVar26 + (CONCAT44(uVar16,uVar12) ^ 0x5854a710fcdfffbe);
  *pbVar26 = *(byte *)(lVar2 + -0xcd1) ^ (byte)DAT_182671f0c;
  *(byte *)(lVar2 + -0xcd1) = local_78 ^ 0x7a;
  uVar10 = DAT_182671c68;
  uVar8 = DAT_182671c58;
  uVar31 = (ulonglong)DAT_182671c58;
  uVar25 = (ulonglong)DAT_182671d48;
  uVar29 = (ulonglong)DAT_182671c68;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar7 ^ 0x5bc59458)) = *(undefined8 *)(lVar2 + -0xb90);
  *(ulonglong *)(lVar2 + -0xb90) = CONCAT44(uVar5,uVar16) ^ 0xfadd4760023c2320;
  *(undefined8 *)(lVar2 + -0x690) = *(undefined8 *)(lVar2 + -0x1a8);
  *(undefined8 *)(lVar2 - (uVar28 ^ 0xfcdffe17)) = 0x71b65235d85f87e7;
  uVar15 = DAT_182671c88;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x20400c55)) =
       *(ulonglong *)(lVar2 - (uVar27 ^ 0x4adbec58)) ^ uVar25;
  *(uint *)(lVar2 + -0x6c0) = uVar5 ^ 0xd9e9a994 | uVar7 ^ 0xf29a730f;
  *(ulonglong *)(lVar2 + -600) = CONCAT44(uVar32,uVar8) ^ 0x82638ead525c2022;
  uVar18 = (ulonglong)DAT_182671d50;
  *(uint *)(lVar2 - (uVar29 ^ 0xfefb283f)) = uVar32 ^ 0x1c0e3c5f;
  *(ulonglong *)(lVar2 + -0x618) = *(ulonglong *)(lVar2 + -0x690) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x690) = CONCAT44(uVar12,uVar16) ^ 0xb868b0cb2e1bc47e;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x82dfda90)) =
       (CONCAT44(uVar8,uVar22) ^ 0x3b28a03ed76df981) + 0xc23f880525f45d62;
  bVar21 = (byte)DAT_182671ee0;
  pbVar26 = (byte *)(uVar18 ^ *(ulonglong *)(lVar2 + -0x618));
  *(ulonglong *)(lVar2 + -0x110) = uVar30 ^ 0x596bfa99df1e18a1;
  *(byte **)(lVar2 + -0xcb8) = pbVar26 + (CONCAT44(uVar5,uVar16) ^ 0x204000055854a711);
  uVar14 = DAT_182671c80;
  uVar13 = DAT_182671c7c;
  uVar33 = (ulonglong)DAT_182671c7c;
  *(byte *)(lVar2 - (uVar20 ^ 0x5bc5912b)) = bVar21 ^ (byte)DAT_182671d08 ^ *pbVar26;
  *(ulonglong *)(lVar2 + -0x618) = uVar30 ^ 0xa85621cbf08f0ae8;
  uVar11 = DAT_182671c6c;
  uVar9 = DAT_182671c64;
  uVar6 = DAT_182671c4c;
  uVar29 = (ulonglong)DAT_182671c64;
  uVar18 = CONCAT44(DAT_182671c60,uVar22);
  *(ulonglong *)(lVar2 + -0xa50) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x5efb02c9)) ^ CONCAT44(uVar13,uVar16) ^
       0x6a82d3eaf45b96d0;
  *(ulonglong *)(lVar2 + -0x8f0) = uVar18 ^ 0x14f00712b758aa6a;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x5bc59c50)) = CONCAT44(uVar32,uVar10) ^ 0xb95946d96a3967fc;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x4adbe5f0)) =
       (CONCAT44(DAT_182671c74,uVar11) ^ 0x3110d3917fbfdb3e) +
       (*(ulonglong *)(lVar2 + -0xc50) ^ uVar25);
  *(byte *)(*(ulonglong *)(lVar2 + -0xc50) ^ uVar25) =
       *(byte *)(lVar2 - ((ulonglong)uVar15 ^ 0x82dfdcab)) ^ (byte)DAT_182671ee0;
  *(byte *)(lVar2 + -0x72b) = (byte)uVar22 ^ 0x42;
  uVar10 = DAT_182671c84;
  pbVar26 = *(byte **)(lVar2 + -0xbf0);
  uVar20 = (ulonglong)DAT_182671efc;
  *(byte **)(lVar2 + -0x1b0) = pbVar26;
  *(undefined8 *)(lVar2 + -0xbf0) = 0x616d5442cbd152e4;
  uVar18 = *(ulonglong *)(lVar2 + -0xcb8);
  *(ulonglong *)(lVar2 + -0x260) = uVar18;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (CONCAT44(uVar14,uVar9) ^ 0xb12cbe709188e006) >> (((byte)uVar6 ^ 0x9c) & 0x3f);
  *(ulonglong *)(lVar2 + -0xcb8) = CONCAT44(uVar32,uVar10) ^ 0xba59391ba10d2400;
  *(ulonglong *)(lVar2 + -0xa48) = uVar20 ^ (ulonglong)pbVar26;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x1b0) = CONCAT44(uVar7,uVar12) ^ 0xc51b599e181ff35d;
  uVar32 = DAT_182671e50;
  uVar20 = (ulonglong)DAT_182671e50;
  uVar18 = uVar20 ^ uVar18;
  *(ulonglong *)(lVar2 + -0x260) = CONCAT44(DAT_182671c94,uVar9) ^ 0x9b5d3d02c85fc87c;
  uVar9 = DAT_182671c68;
  *(ulonglong *)(lVar2 + -0x990) = uVar18;
  uVar15 = DAT_182671c88;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x958) =
       (CONCAT44(DAT_182671c88,uVar9) ^ 0x82dfdb80fefb2efe) + (uVar32 ^ uVar18);
  lVar4 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x291) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xad68a315)) ^ uVar20) ^
       (byte)DAT_182671e4c ^ (byte)DAT_182671d08;
  *(undefined8 *)(lVar4 + -0x990) = 0x68920a74b2c43791;
  *(byte **)(lVar3 + -0x358) = pbVar26 + (CONCAT44(uVar12,DAT_182671c54) ^ 0xfcdfffbf40001309);
  *pbVar26 = *(byte *)(lVar3 - (uVar31 ^ 0xad68a814)) ^ (byte)DAT_182671e4c;
  *(byte *)(lVar3 + -0x291) = (byte)uVar13 ^ 0x24;
  uVar9 = DAT_182671c74;
  uVar8 = DAT_182671c70;
  uVar25 = (ulonglong)DAT_182671c70;
  uVar18 = CONCAT44(uVar16,DAT_182671c74);
  *(ulonglong *)(lVar3 + -0x408) =
       *(longlong *)(lVar3 - (uVar29 ^ 0x5fffd3b2)) - (CONCAT44(uVar6,uVar22) ^ 0xb96c348e60426667);
  *(undefined8 *)(lVar3 + -0x888) = 0x4128833abe62cf6c;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xfcdffbb7)) = uVar18 ^ 0xb2fe7f8687e943d2;
  *(undefined8 *)(lVar3 + -0x1d0) = *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671c68 ^ 0xfefb2da7))
  ;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xceef2f36)) = CONCAT44(uVar7,uVar7) ^ 0x9b597cbbac401da3;
  *(undefined8 *)(lVar3 + -0x88) = *(undefined8 *)(lVar3 + -0x958);
  *(ulonglong *)(lVar3 + -0x958) = CONCAT44(uVar16,uVar12) ^ 0xb0114fa2a9ac4051;
  *(uint *)(lVar3 + -0x684) = *(uint *)(lVar3 - (uVar23 ^ 0x20400619)) | *(uint *)(lVar3 + -0x94c);
  *(undefined4 *)(lVar3 - (uVar17 ^ 0xa48b5eb3)) = 0x5d35d7f5;
  *(uint *)(lVar3 - ((ulonglong)uVar9 ^ 0x3110dadd)) = uVar13 ^ 0x3ffea94b;
  uVar23 = (ulonglong)DAT_182671e70;
  *(uint *)(lVar3 - (uVar17 ^ 0xa48b5e2b)) = uVar10 ^ 0xc46f4dd4;
  *(ulonglong *)(lVar3 + -0xad0) = uVar23 ^ *(ulonglong *)(lVar3 + -0x1d0);
  *(ulonglong *)(lVar3 + -0x1d0) = CONCAT44(uVar14,uVar9) ^ 0x26beeb82ec4eb957;
  *(longlong *)(lVar3 + -0xa08) = *(longlong *)(lVar3 + -0x7c0) << ((byte)uVar9 & 0x3f);
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x55905771)) = CONCAT44(uVar16,uVar11) ^ 0xb1488a1ecf2537fd;
  uVar7 = DAT_182671f38;
  uVar20 = (ulonglong)DAT_182671f38;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xa48b52a7)) = CONCAT44(uVar10,uVar8) ^ 0xb738b83f03075bca;
  uVar18 = uVar20 ^ *(ulonglong *)(lVar3 + -0x88);
  *(undefined8 *)(lVar3 + -0x88) = 0xa77b102d9a918cf2;
  *(ulonglong *)(lVar3 + -0x430) = uVar18;
  *(ulonglong *)(lVar3 + -0x328) = (CONCAT44(uVar6,uVar5) ^ 0x50b1559020400004) + (uVar7 ^ uVar18);
  *(byte *)(lVar3 - (uVar33 ^ 0x5590525b)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar25 ^ 0xceef285e)) ^ uVar20) ^ (byte)DAT_182671df0 ^
       (byte)DAT_182671d08;
  pbVar26 = (byte *)(uVar23 ^ *(ulonglong *)(lVar3 + -0xad0));
  *(ulonglong *)(lVar3 + -0x430) = CONCAT44(uVar15,DAT_182671c80) ^ 0x28db61523c289a4;
  *(ulonglong *)(lVar3 + -0x2b0) = *(ulonglong *)(lVar3 + -0xb18) | *(ulonglong *)(lVar3 + -0x5e8);
  *(byte **)(lVar3 + -0x560) = pbVar26 + 1;
  bVar21 = *(byte *)(lVar3 + -0x2ea) ^ (byte)DAT_182671df0;
  *(undefined8 *)(lVar3 + -0x5e8) = 0x4e422c553ed078d2;
  *pbVar26 = bVar21;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar22) * 4) = uVar19;
  return;
}



############ FUN_ 180ff9af0 size=3721 ############

void FUN_180ff9af0(void)

{
  ulonglong *puVar1;
  uint *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte bVar19;
  ulonglong uVar20;
  byte *pbVar21;
  uint uVar22;
  uint uVar23;
  longlong lVar24;
  ulonglong uVar25;
  longlong *plVar26;
  undefined1 *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  byte local_res20;
  byte local_98;
  
  uVar11 = DAT_182671c80;
  uVar10 = DAT_182671c7c;
  uVar9 = DAT_182671c78;
  uVar8 = DAT_182671c74;
  uVar7 = DAT_182671c64;
  uVar23 = DAT_182671c60;
  uVar6 = DAT_182671c4c;
  uVar5 = DAT_182671c48;
  uVar15 = DAT_182671c60 ^ DAT_182671c5c;
  uVar34 = (ulonglong)uVar15;
  uVar29 = (ulonglong)DAT_182671c80;
  uVar28 = (ulonglong)DAT_182671c78;
  uVar25 = (ulonglong)DAT_182671c4c;
  uVar36 = (ulonglong)DAT_182671c7c;
  uVar42 = (ulonglong)DAT_182671c64;
  uVar39 = DAT_182671c84 + DAT_182671c74;
  uVar35 = DAT_182671c4c + DAT_182671c7c;
  uVar30 = DAT_182671c78 ^ DAT_182671c64;
  uVar41 = DAT_182671c80 << 0x10 | DAT_182671c80 >> 0x10;
  uVar16 = *(uint *)(&DAT_182613210 + (uVar34 ^ 0x856a1b9) + (longlong)DAT_18267208c) ^
           DAT_182671c60;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_18267208c) ^ DAT_182671c5c;
  uVar38 = (ulonglong)DAT_182671c48;
  uVar22 = DAT_182671c48 - DAT_182671c50;
  uVar32 = (ulonglong)*(byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0xe0999f06));
  DAT_182671c54 = uVar41;
  DAT_182671c58 = uVar39;
  DAT_182671c68 = uVar35;
  DAT_182671c88 = uVar22;
  DAT_182671c8c = uVar15;
  DAT_182671c90 = uVar30;
  *(ulonglong *)(DAT_182671c40 + -0xf0) = uVar32;
  lVar3 = DAT_182671c40;
  uVar32 = uVar32 << (((byte)DAT_182671c50 ^ 0x10) & 0x3f);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xd88);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar32;
  uVar37 = (ulonglong)uVar41;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar35 ^ 0x1a2804b)) = *puVar1 | uVar32;
  uVar33 = CONCAT44(uVar6,uVar10);
  *(ulonglong *)(DAT_182671c40 + -0x370) =
       (uVar33 ^ 0xff45e3f4025c9e21) + *(longlong *)(DAT_182671c40 + 0x30);
  lVar3 = DAT_182671c40;
  bVar19 = **(byte **)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0x588cd7c8));
  *(byte *)(DAT_182671c40 + -0x2e9) = bVar19;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xff45ef64)) = (ulonglong)bVar19;
  lVar24 = *(longlong *)(lVar3 + -0xc90) << 0x30;
  uVar32 = (ulonglong)uVar30;
  *(longlong *)(lVar3 + -0x760) = lVar24;
  uVar18 = (ulonglong)uVar23;
  *(longlong *)(lVar3 + -0xa78) = *(longlong *)(lVar3 - ((ulonglong)uVar30 ^ 0xb93c29d4)) + lVar24;
  uVar12 = DAT_182671c84;
  lVar24 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar41 ^ 0x9124c6f0)) =
       (CONCAT44(uVar23,uVar11) ^ 0xd4b8588cc008916b) + *(longlong *)(lVar3 + 0x30);
  *(undefined1 *)(lVar3 + -0x6b9) = **(undefined1 **)(lVar3 + -0x6f8);
  *(ulonglong *)(lVar24 + -0xa50) =
       (CONCAT44(uVar7,uVar12) ^ 0x68bc76ff5423a1bc) + 0xf7e3522772ba65e;
  *(ulonglong *)(lVar24 - (uVar32 ^ 0xb93c2c14)) =
       (ulonglong)*(byte *)(lVar24 - ((ulonglong)uVar11 ^ 0xc008979d));
  *(ulonglong *)(lVar24 - ((ulonglong)uVar8 ^ 0x20910367)) =
       *(ulonglong *)(lVar24 - ((ulonglong)uVar39 ^ 0x8141930f)) | *(ulonglong *)(lVar24 + -0x5e8);
  *(longlong *)(lVar24 + -0x510) = *(longlong *)(lVar24 + -0x7e8) << (((byte)uVar35 ^ 0x5b) & 0x3f);
  *(longlong *)(lVar24 - ((ulonglong)uVar22 ^ 0x430a1a7)) =
       *(longlong *)(lVar24 - (uVar32 ^ 0xb93c2eec)) + *(longlong *)(lVar24 + -0xa78);
  uVar13 = DAT_182671e48;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar24 + -0x418) + (CONCAT44(uVar15,uVar35) ^ 0x856a1b101a2826a) * 8);
  *(ulonglong **)(lVar24 + -0xb88) = puVar1;
  uVar40 = CONCAT44(uVar13,uVar13);
  *puVar1 = uVar40 ^ *(ulonglong *)(lVar24 + -0x920);
  uVar30 = DAT_182671c5c;
  uVar20 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar24 + -0x680) = uVar33 ^ 0x16b2b3a1c2f81c26 | *(ulonglong *)(lVar24 + -0x920);
  *(ulonglong *)(lVar24 + -0x370) =
       (CONCAT44(uVar15,uVar39) ^ 0x856a1b1814193af) + *(longlong *)(lVar24 + 0x30);
  *(undefined1 *)(lVar24 + -0x2e9) = **(undefined1 **)(lVar24 - (uVar36 ^ 0x25c9d1f));
  *(ulonglong *)(lVar24 + -0xc38) =
       *(ulonglong *)(lVar24 - (uVar20 ^ 0xdceef4b5)) | *(ulonglong *)(lVar24 + -0x760);
  uVar20 = CONCAT44(DAT_182671c50,uVar6);
  *(ulonglong *)(lVar24 - (uVar18 ^ 0xd4b85394)) = (ulonglong)*(byte *)(lVar24 + -0x2e9);
  pbVar21 = (byte *)((uVar20 ^ 0xdc68f138ff45e3a5) + *(longlong *)((uVar38 ^ 0xe099998f) + lVar24));
  *(byte **)(lVar24 + -0x6f8) = pbVar21;
  bVar19 = *pbVar21;
  *(byte *)(lVar24 + -0x6b9) = bVar19;
  *(ulonglong *)(lVar24 + -0x888) = (ulonglong)bVar19;
  *(ulonglong *)(lVar24 + -0xa08) = (ulonglong)bVar19 << (((byte)uVar22 ^ 0x8f) & 0x3f);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar24 - ((ulonglong)uVar8 ^ 0x209104a7)) =
       *(ulonglong *)(lVar24 - (uVar32 ^ 0xb93c21f4)) |
       *(ulonglong *)(lVar24 - (uVar25 ^ 0xff45e8ec));
  *(ulonglong *)(lVar24 + -0xc50) =
       (CONCAT44(uVar35,uVar9) ^ 0x1a28263588cd4ea) + *(longlong *)(lVar24 + 0x30);
  *(undefined1 *)(lVar3 - (uVar36 ^ 0x25c9c86)) = **(undefined1 **)(lVar3 - (uVar29 ^ 0xc0089d74));
  *(int *)(lVar3 + -0x9dc) = *(int *)(lVar3 + -0x61c) + -0x6e80aba6;
  *(ulonglong *)(lVar3 + -0xda8) = (ulonglong)*(byte *)(lVar3 + -0x2e9);
  lVar24 = DAT_182671c40;
  uVar25 = (ulonglong)*(byte *)(lVar3 + -0x2e9) << (((byte)uVar9 ^ 0xa8) & 0x3f);
  *(ulonglong *)(lVar3 + -0x110) = *(ulonglong *)(lVar3 + -0xc18) | uVar25;
  uVar20 = CONCAT44(uVar12,DAT_182671c50);
  *(ulonglong *)(lVar3 + -0x960) = uVar25;
  lVar4 = DAT_182671c40;
  lVar3 = *(longlong *)(DAT_182671c40 + 0x30);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       uVar20 ^ 0x1bb1debe83e33eb2 | CONCAT44(uVar8,uVar30) ^ 0x9c5f43569aa9606d;
  *(ulonglong *)(lVar4 + -0xc50) = (CONCAT44(uVar22,uVar12) ^ 0x430a88760b08b13) + lVar3;
  bVar19 = **(byte **)(lVar4 - (uVar32 ^ 0xb93c27ac));
  *(byte *)(lVar4 + -0x6b9) = bVar19;
  *(ulonglong *)(DAT_182671c40 + -0x228) = (ulonglong)bVar19;
  *(ulonglong *)(lVar24 + -0xa50) = (ulonglong)bVar19 << (((byte)uVar39 ^ 0xe7) & 0x3f);
  *(ulonglong *)(lVar24 + -0x5e8) =
       *(ulonglong *)(lVar24 - (uVar42 ^ 0xe1b0fe54)) |
       *(ulonglong *)(lVar24 - ((ulonglong)uVar35 ^ 0x1a28833));
  *(ulonglong *)(lVar24 + -0x6a8) = (CONCAT44(uVar5,DAT_182671c50) ^ 0xe09999bfdc68f16c) + lVar3;
  *(ulonglong *)(lVar24 + -0xf0) =
       (CONCAT44(uVar15,uVar6) ^ 0x9d0dcdf292c21bb7) >>
       ((byte)*(undefined8 *)(lVar24 - ((ulonglong)uVar39 ^ 0x814192ef)) & 0x3f);
  lVar3 = DAT_182671c40;
  *(undefined1 *)(DAT_182671c40 - (uVar29 ^ 0xc00893cd)) =
       **(undefined1 **)(lVar24 - ((ulonglong)uVar41 ^ 0x9124c6a0));
  *(ulonglong *)(lVar3 + -0xbd8) = (ulonglong)*(byte *)(lVar3 - (uVar32 ^ 0xb93c2915));
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(uVar8,uVar23) ^ 0xa5590b5ab3822617) + 0x7bc7d017bb0dea74;
  lVar24 = DAT_182671c40;
  uVar30 = DAT_182671c50 ^ 0xb747900;
  puVar2 = (uint *)(DAT_182671c40 + -0xae4);
  *(longlong *)(DAT_182671c40 + -0xa78) =
       *(longlong *)(lVar3 - (uVar18 ^ 0xd4b85354)) << (((byte)uVar35 ^ 0x43) & 0x3f);
  *(uint *)(lVar24 - ((ulonglong)uVar12 ^ 0x60b08d5c)) = uVar30 | *puVar2;
  uVar20 = *(ulonglong *)(lVar24 - ((ulonglong)uVar39 ^ 0x81419617)) |
           *(ulonglong *)(lVar24 - (uVar32 ^ 0xb93c2184));
  *(ulonglong *)(lVar24 + -0x510) = uVar20;
  lVar4 = DAT_182671c40;
  lVar3 = *(longlong *)(lVar24 + 0x30);
  pbVar21 = (byte *)((CONCAT44(uVar7,uVar5) ^ 0xe1b0ff44e09999ea) + lVar3);
  bVar19 = (byte)DAT_182671c50;
  plVar26 = (longlong *)(DAT_182671c40 - (uVar38 ^ 0xe09993c7));
  *(byte **)(DAT_182671c40 + -0x6a8) = pbVar21;
  *(longlong *)(lVar4 + -0x680) = *plVar26 << ((bVar19 ^ 0x12) & 0x3f);
  bVar19 = *pbVar21;
  *(byte *)(lVar4 + -0x6b9) = bVar19;
  *(ulonglong *)(lVar4 + -0xc38) = (ulonglong)bVar19;
  local_res20 = (byte)uVar10;
  *(ulonglong *)(lVar4 + -0xd88) = uVar33 ^ 0xecced696fbe7dffb | 0xac4cd21273665b63;
  *(ulonglong *)(lVar4 + -0x760) = (ulonglong)bVar19 << ((local_res20 ^ 0x47) & 0x3f);
  *(undefined1 *)(lVar4 + -0x2e9) = **(undefined1 **)(lVar4 + -0x428);
  *(ulonglong *)(lVar4 + -0x888) = *(ulonglong *)(lVar4 - (uVar37 ^ 0x9124c768)) | uVar20;
  *(longlong *)(lVar4 - (uVar32 ^ 0xb93c206c)) = lVar3 + 0x56;
  uVar13 = DAT_182671fac;
  *(undefined1 *)(lVar4 + -0x6b9) = **(undefined1 **)(lVar4 + -0xb90);
  uVar20 = CONCAT44(uVar13,uVar13);
  uVar25 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar4 + -0xb18) = *(ulonglong *)(uVar20 ^ *(ulonglong *)(lVar4 + -0x610)) ^ uVar25;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar35 ^ 0x1a2886b)) = (ulonglong)*(byte *)(lVar4 + -0x6b9);
  local_98 = (byte)uVar11;
  *(longlong *)(lVar4 - (uVar29 ^ 0xc0089c8c)) =
       *(longlong *)(lVar4 + -0xa08) << ((local_98 ^ 0x14) & 0x3f);
  uVar38 = CONCAT44(uVar10,DAT_182671c50);
  *(longlong *)(lVar4 + -0x960) = *(longlong *)(lVar4 + -0x888) + *(longlong *)(lVar4 + -0xda8);
  *(ulonglong *)(lVar4 + -0xc18) = uVar38 ^ *(ulonglong *)(lVar4 + -0x510) ^ 0xe0a941b28074b07b;
  uVar30 = DAT_182671c5c;
  uVar38 = CONCAT44(uVar12,DAT_182671c5c);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0xdceefb15)) =
       (CONCAT44(uVar12,uVar15) ^ 0xd88d5ff8df3fa1cf) - *(longlong *)(lVar4 + -0xb18);
  pbVar21 = (byte *)((uVar38 ^ 0x60b08b40dceef96a) +
                    *(longlong *)(((ulonglong)uVar8 ^ 0x2091088f) + lVar4));
  *(byte **)(lVar4 + -0x328) = pbVar21;
  bVar19 = *pbVar21;
  *(byte *)(lVar4 + -0x2e9) = bVar19;
  *(ulonglong *)(lVar4 + -0xa50) = (ulonglong)bVar19;
  *(ulonglong *)(lVar4 + -0xf0) =
       (CONCAT44(uVar9,uVar7) ^ 0x9deafcb37667f60b) >>
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)uVar30 ^ 0xdceefe5d)) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x110) = (ulonglong)bVar19 << (((byte)uVar6 ^ 0xcc) & 0x3f);
  lVar3 = DAT_182671c40;
  *(longlong *)(DAT_182671c40 + -0x7e8) =
       *(longlong *)(DAT_182671c40 - (uVar28 ^ 0x588cd5a8)) + *(longlong *)(DAT_182671c40 + -0x960);
  lVar24 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xbd8) = *(ulonglong *)(uVar20 ^ *(ulonglong *)(lVar3 + -0x610)) ^ uVar25;
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xb93c26ac)) =
       *(longlong *)(lVar3 - (uVar34 ^ 0x856a5a9)) +
       (CONCAT44(uVar11,uVar22) ^ 0xc00891240430a88d) * 8;
  **(ulonglong **)(DAT_182671c40 + -0xd50) = uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8);
  bVar19 = (byte)DAT_182671c50;
  lVar3 = *(longlong *)((uVar37 ^ 0x9124c038) + lVar24);
  *(longlong *)(lVar24 + -0x5e8) = *(longlong *)(lVar24 + -0x680) << 0xc;
  *(ulonglong *)(lVar24 + -0x328) = (CONCAT44(uVar35,uVar6) ^ 0x1a28263ff45e3ac) + lVar3;
  *(undefined1 *)(lVar24 + -0x6b9) = **(undefined1 **)(lVar24 - (uVar37 ^ 0x9124c320));
  *(undefined1 *)(lVar24 + -0x2e9) = **(undefined1 **)(lVar24 + -0xb90);
  uVar23 = DAT_182671c84 ^ 0xfc52b08f;
  *(ulonglong *)(lVar24 - (uVar34 ^ 0x856abc9)) = (ulonglong)*(byte *)(lVar24 + -0x6b9);
  *(uint *)(lVar24 + -0x9dc) = uVar23 << ((bVar19 ^ 0x2f) & 0x1f);
  *(ulonglong *)(lVar24 + -0x328) =
       (CONCAT44(uVar8,uVar5) ^ 0x209108bfe09999e6) + *(longlong *)(lVar24 + 0x30);
  *(undefined1 *)(lVar24 - ((ulonglong)uVar30 ^ 0xdceefbd4)) =
       **(undefined1 **)(lVar24 - (uVar31 ^ 0x60b08868));
  *(ulonglong *)(lVar24 + -0xd88) = (ulonglong)*(byte *)(lVar24 + -0x2e9);
  lVar3 = DAT_182671c40;
  uVar34 = *(longlong *)(DAT_182671c40 - (uVar28 ^ 0x588cd930)) << (((byte)uVar12 ^ 0x48) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar34;
  uVar38 = uVar34 | *(ulonglong *)(lVar3 + -0xa78);
  *(ulonglong *)(lVar3 + -0xa08) = (CONCAT44(uVar39,uVar15) ^ 0xc6ac21d191882609) + uVar34;
  *(ulonglong *)(lVar3 + -0x510) = uVar38;
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar22,uVar6) ^ 0xa0272a6d0d7005a) >> (((byte)uVar39 ^ 0xcb) & 0x3f);
  pbVar21 = (byte *)(*(longlong *)(lVar3 + (uVar32 ^ 0xb93c2bcc)) + 0x5a);
  *(byte **)(lVar3 + -0xb90) = pbVar21;
  uVar14 = DAT_182671f2c;
  bVar19 = *pbVar21;
  *(byte *)(lVar3 + -0x6b9) = bVar19;
  *(ulonglong *)(lVar3 + -0x888) = (ulonglong)bVar19;
  uVar34 = (ulonglong)bVar19 << (((byte)uVar5 ^ 0xaf) & 0x3f);
  *(ulonglong *)(lVar3 + -0xda8) = uVar34;
  uVar13 = DAT_182671d7c;
  *(ulonglong *)(lVar3 + -0xb18) = uVar38 | uVar34;
  *(ulonglong *)(lVar3 + -0x228) =
       *(ulonglong *)(CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar3 + -0x10)) ^
       CONCAT44(uVar13,uVar13);
  uVar34 = (ulonglong)DAT_182671c50;
  puVar27 = (undefined1 *)
            (*(longlong *)((uVar42 ^ 0xe1b0ff74) + lVar3) +
            (CONCAT44(uVar15,uVar7) ^ 0x856a1b1e1b0ff1f));
  *(undefined1 **)(lVar3 + -0x990) = puVar27;
  *(undefined1 *)(lVar3 - (uVar34 ^ 0xdc68f3d1)) = *puVar27;
  *(ulonglong *)(lVar3 + -0x760) = (ulonglong)*(byte *)(lVar3 + -0x2e9);
  uVar34 = *(longlong *)(lVar3 - (uVar18 ^ 0xd4b85fec)) << (((byte)uVar30 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa50) = *(ulonglong *)(lVar3 + -0xb18) | uVar34;
  *(ulonglong *)(lVar3 + -0xf0) = uVar34;
  *(longlong *)(lVar3 + -0xad0) = *(longlong *)(lVar3 + 0x30) + 0x5c;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x588cddd8)) =
       CONCAT44(uVar12,uVar5) ^ 0x3538828012866018 | 0x82c10873a8788fa3;
  *(undefined1 *)(lVar3 + -0x6b9) = **(undefined1 **)(lVar3 + -0xad0);
  uVar34 = *(ulonglong *)(uVar20 ^ *(ulonglong *)(lVar3 + -0x610));
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar16;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x25c9f7f)) = uVar34 ^ uVar25;
  return;
}



############ FUN_ 180f69d60 size=4023 ############

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

void FUN_180f69d60(void)

{
  uint *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint *puVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  uint *puVar16;
  byte bVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  byte *pbVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  
  uVar30 = DAT_182671fa4;
  uVar36 = DAT_182671f84;
  uVar35 = DAT_182671c90;
  uVar34 = DAT_182671c88;
  uVar11 = DAT_182671c6c;
  uVar25 = DAT_182671c5c;
  lVar2 = DAT_182671c40;
  DAT_182671c64 =
       (DAT_182671c48 << 0x10 | DAT_182671c48 & 0xff00) << 8 | DAT_182671c48 >> 8 & 0xff00 |
       DAT_182671c48 >> 0x18;
  uVar8 = DAT_182671c50 & 3;
  if (uVar8 < 2) {
    uVar38 = DAT_182671c70;
    if (uVar8 == 0) {
      uVar38 = DAT_182671c50;
    }
  }
  else {
    uVar38 = DAT_182671c68;
    if (uVar8 < 3) {
      uVar38 = DAT_182671c74;
    }
  }
  uVar40 = (ulonglong)DAT_182671c6c;
  uVar27 = (ulonglong)DAT_182671c5c;
  uVar28 = (ulonglong)DAT_182671c90;
  uVar32 = DAT_182671c88 * DAT_182671c5c;
  DAT_182671c80 = DAT_182671c6c & DAT_182671c90;
  uVar23 = *(uint *)(&DAT_182613218 + DAT_1826721d4) ^ DAT_182671c6c;
  uVar9 = *(uint *)(&DAT_182613220 + DAT_1826721d4) ^ DAT_182671c80;
  puVar12 = (uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0x14002d0));
  uVar14 = (ulonglong)DAT_182671e38;
  uVar8 = *(uint *)(DAT_182671c40 + -0x9dc) ^ DAT_182671fa4 ^ DAT_182671ec8;
  DAT_182671c60 = uVar38;
  DAT_182671c84 = uVar32;
  *(uint *)(DAT_182671c40 + -0x58c) = uVar8;
  *(uint *)(lVar2 + -0x634) = *puVar12 ^ DAT_182671e18 ^ DAT_182671d08;
  *(uint *)(lVar2 - ((ulonglong)uVar25 ^ 0x10084756)) = uVar8 ^ uVar36 ^ uVar30;
  uVar20 = DAT_182671c94;
  *(ulonglong *)(lVar2 + -0xbd8) =
       0x84634a548b70a2b6 >> ((byte)*(undefined8 *)(lVar2 + -0x4b8) & 0x3f);
  uVar21 = DAT_182671c68;
  uVar8 = DAT_182671c48;
  uVar33 = (ulonglong)DAT_182671c48;
  uVar13 = (ulonglong)uVar34;
  uVar37 = *(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0x4847a004)) ^ DAT_182671f60 ^ DAT_182671e18;
  *(uint *)(lVar2 + -0x94c) = uVar37;
  uVar24 = DAT_182671c74;
  uVar39 = (ulonglong)DAT_182671c74;
  pbVar31 = (byte *)((CONCAT44(uVar20,DAT_182671c74) ^ 0x80a2044803c508a7) +
                     (CONCAT44(uVar38,uVar34) ^ 0x3c508b081e28458) * 0x20 +
                    *(longlong *)(DAT_182671c40 + -0x9a8));
  *(ulonglong *)(DAT_182671c40 + -0xc20) = (ulonglong)pbVar31 ^ uVar14;
  bVar19 = (byte)DAT_182671d28;
  uVar4 = DAT_182671c70;
  uVar20 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar14 = (ulonglong)DAT_182671c50;
  uVar15 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (CONCAT44(uVar21,uVar8) ^ 0xde386623331e8e1e) -
       (CONCAT44(DAT_182671c50,DAT_182671c70) ^ 0x78c22215a6bc9f3a);
  uVar6 = DAT_182671cd8;
  uVar5 = DAT_182671c80;
  uVar8 = DAT_182671c64;
  uVar26 = (ulonglong)DAT_182671c64;
  uVar37 = uVar37 ^ DAT_182671f60;
  uVar41 = (ulonglong)DAT_182671c80;
  *(byte *)(lVar2 + -0x1c3) = *pbVar31 ^ bVar19 ^ (byte)DAT_182671e0c;
  *(undefined8 *)(lVar2 + -0xb20) = 0;
  uVar34 = DAT_182671c68;
  *(ulonglong *)(lVar2 + -0x760) =
       (CONCAT44(uVar8,uVar20) ^ 0xbc51a9c10aab87d5) + 0x5dc0654b26b7a9bd;
  uVar29 = (uint)(*(byte *)(lVar2 + -0x1c3) ^ bVar19);
  puVar12 = (uint *)(lVar2 + -0x61c);
  *(uint *)(lVar2 + -0x670) = uVar29 ^ uVar6;
  uVar10 = DAT_182671d00;
  *puVar12 = uVar37 + (uVar8 ^ 0x92d9416f) ^ DAT_182671d00;
  uVar29 = uVar29 << 0x11 ^ DAT_182671e88;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (CONCAT44(uVar5,uVar35) ^ 0xed2f06e45a5448e0) -
       (CONCAT44(uVar24,uVar34) ^ 0xfef5054fa99e90b7);
  *(uint *)(DAT_182671c40 - (uVar13 ^ 0x81e284cc)) = uVar29;
  lVar2 = DAT_182671c40;
  uVar34 = *(uint *)(DAT_182671c40 + -0x670);
  uVar29 = (uVar10 ^ *puVar12) - (*(uint *)(DAT_182671c40 + -0x94) ^ DAT_182671e88) ^ DAT_182671d1c;
  *(uint *)(DAT_182671c40 + -0x444) = uVar29;
  uVar24 = DAT_182671d44;
  uVar10 = DAT_182671c60 ^ 0x3c508a7;
  *(uint *)(lVar2 + -0x54) =
       (*(uint *)(lVar2 - (uVar40 ^ 0xef98f9b1)) ^ uVar36) * (uVar29 ^ DAT_182671d1c) ^
       DAT_182671f20;
  *(uint *)(lVar2 - (uVar28 ^ 0x14005d8)) = (uVar34 ^ uVar6) * uVar10 ^ uVar24;
  puVar1 = (uint *)(lVar2 + -0x1c8);
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c94 ^ 0x80a203cc)) =
       (*(uint *)(lVar2 - (uVar15 ^ 0x36e708f1)) ^ DAT_182671f20) + (uVar24 ^ *puVar1) ^
       DAT_182671f6c;
  uVar6 = DAT_182671f80;
  uVar24 = DAT_182671f18;
  bVar17 = (byte)uVar25 ^ 0x1f;
  uVar34 = *(uint *)(lVar2 + -0x784) ^ DAT_182671f6c;
  uVar10 = uVar34 << (bVar17 & 0x1f) ^ DAT_182671e90;
  uVar35 = uVar34 >> (((byte)uVar35 ^ 3) & 0x1f) ^ DAT_182671e4c;
  *(uint *)(lVar2 + -0x76c) = uVar10;
  uVar10 = uVar10 ^ DAT_182671e90;
  *(ulonglong *)(lVar2 + -0x510) = *(ulonglong *)(lVar2 + -0xc18) ^ 0x8c9f869d442f177a;
  *(uint *)(lVar2 + -0x684) = uVar35;
  uVar34 = DAT_182671c68;
  uVar10 = (uVar35 ^ DAT_182671e4c | uVar10) ^ DAT_182671fa0;
  uVar35 = *(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar2 + -0xae4) = uVar10;
  uVar35 = uVar35 + (*(uint *)(lVar2 + -0x644) ^ uVar36) ^ DAT_182671eb8;
  uVar36 = uVar10 ^ DAT_182671ccc ^ DAT_182671fa0;
  *(uint *)(lVar2 + -0x9dc) = uVar35;
  *(ulonglong *)(lVar2 + -0x3d8) =
       -0x16891fd69d5485bd - (CONCAT44(uVar21,uVar25) ^ 0xa89c614475a96b4);
  uVar35 = uVar35 ^ uVar24 ^ DAT_182671eb8;
  *(uint *)(lVar2 + -0x6c0) = uVar35;
  *(uint *)(lVar2 + -0x58c) = uVar36;
  *(uint *)(lVar2 + -0x634) = uVar35 ^ uVar6 ^ uVar24;
  uVar22 = (ulonglong)DAT_182671e40;
  *(uint *)(lVar2 + -0x94c) =
       *(uint *)(lVar2 - ((ulonglong)uVar34 ^ 0xfff5ea14)) ^ DAT_182671cf4 ^ DAT_182671ccc;
  *(ulonglong *)(lVar2 - (uVar14 ^ 0xdff3f81e)) =
       (CONCAT44(uVar32,uVar32) ^ 0x4847a6304847a632) + *(longlong *)(lVar2 + -0x9a8) ^ uVar22;
  bVar19 = (byte)DAT_182671f98;
  lVar3 = DAT_182671c40;
  bVar18 = *(byte *)(*(ulonglong *)(lVar2 + -0x170) ^ uVar22) ^ (byte)DAT_182671f98 ^
           (byte)DAT_182671e0c;
  *(byte *)(lVar2 + -0x1c3) = bVar18;
  uVar36 = DAT_182671e8c;
  *(uint *)(lVar3 - (uVar33 ^ 0x71539d12)) = (bVar18 ^ bVar19) ^ DAT_182671e8c;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x71539686)) =
       0x5d4712bef3d2c9b9 >> ((byte)*(undefined8 *)(DAT_182671c40 + -0x228) & 0x3f);
  uVar10 = (*(uint *)(lVar2 + -0x94c) ^ DAT_182671cf4) + (DAT_182671c70 ^ 0xaaa51abb) ^
           DAT_182671dd0;
  *(ulonglong *)(lVar2 + -0x960) = *(ulonglong *)(lVar2 + -0xb20) ^ 0xaca8a0b4ac9f8c2e;
  *(uint *)(lVar2 + -0x94) = uVar10;
  uVar10 = uVar10 ^ DAT_182671dd0;
  uVar35 = (*(uint *)(lVar2 - (uVar26 ^ 0xe9b556d)) ^ uVar36) << 0x11 ^ DAT_182671d30;
  *(uint *)(DAT_182671c40 + -0x444) = uVar35;
  lVar2 = DAT_182671c40;
  uVar35 = uVar10 - (uVar35 ^ DAT_182671d30) ^ _DAT_182671cf0;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       CONCAT44(uVar5,uVar20) ^ CONCAT44(uVar38,uVar11) ^ 0x531811f038c93dd9;
  *(uint *)(lVar2 + -0x670) = uVar35;
  *(undefined4 *)(lVar2 + -0x54) = 0x32bf52;
  uVar38 = DAT_182671ed8;
  uVar35 = DAT_182671c94;
  uVar20 = DAT_182671c74 ^ 0xc3ff9790;
  uVar10 = (*(uint *)(lVar2 - ((ulonglong)uVar34 ^ 0xfff5e9e8)) ^ _DAT_182671cf0) *
           (*(uint *)(lVar2 + -0x634) ^ uVar6);
  *puVar1 = uVar10 ^ DAT_182671eac;
  uVar34 = DAT_182671c48 ^ 0x49ef8e37;
  *(uint *)(lVar2 + -0x784) = (uVar36 ^ *puVar12) * (DAT_182671c70 ^ 0x36e708a7) ^ DAT_182671e48;
  *(uint *)(lVar2 + -0x76c) = uVar20 * uVar34;
  uVar34 = DAT_182671d58;
  uVar10 = (*(uint *)(lVar2 - (uVar28 ^ 0x1400394)) ^ DAT_182671e48) + uVar10;
  *(uint *)(lVar2 + -0x684) = uVar10 ^ DAT_182671d58;
  *(uint *)(lVar2 + -0x644) = uVar10 * 0x2000 ^ DAT_182671d18;
  *(uint *)(lVar2 - (uVar26 ^ 0xe9b5aad)) =
       (*(uint *)(lVar2 - (uVar13 ^ 0x81e282dc)) ^ uVar34) >> (((byte)uVar35 ^ 0x5b) & 0x1f) ^
       uVar38;
  *(uint *)(lVar2 + -0xae4) =
       (*(uint *)(lVar2 + -0x9dc) ^ uVar38 | *(uint *)(lVar2 + -0x644) ^ DAT_182671d18) ^ uVar24;
  uVar34 = (*(uint *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x3c50d64)) ^ DAT_182671dd4) +
           (*(uint *)(lVar2 + -0x634) ^ uVar6) ^ uVar30;
  *(uint *)(lVar2 + -0x6c0) = uVar34;
  *(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0x4847a3bc)) = uVar34 ^ DAT_182671d70 ^ uVar30;
  uVar20 = DAT_182671eec;
  bVar19 = (byte)DAT_182671eb4;
  uVar36 = DAT_182671e20;
  uVar34 = DAT_182671cd8;
  uVar30 = *(uint *)(lVar2 + -0xae4) ^ DAT_182671e58 ^ uVar24;
  *(uint *)(lVar2 + -0x94) = *(uint *)(lVar2 + -0x58c) ^ DAT_182671d70 ^ DAT_182671cd8;
  *(uint *)(lVar2 + -0x94c) = uVar30;
  *(uint *)(lVar2 + -0x444) = uVar30 ^ DAT_182671ee4 ^ DAT_182671e58;
  uVar22 = (ulonglong)DAT_182671ce8;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x1000fd0)) =
       (CONCAT44(uVar4,uVar35) ^ 0x36e708a580a20448) * 0x20 + *(longlong *)(lVar2 + -0x9a8) + 0xd ^
       uVar22;
  *(int *)(lVar2 + -0x54) = 0x68c612f << (((byte)uVar11 ^ 0xe3) & 0x1f);
  bVar18 = *(byte *)(*(ulonglong *)(lVar2 + -0xbc0) ^ uVar22) ^ bVar19 ^ (byte)DAT_182671e0c;
  uVar11 = DAT_182671c48 ^ 0xed118910;
  uVar30 = *(uint *)(lVar2 + -0x444) ^ DAT_182671ee4;
  *(byte *)(lVar2 + -0x1c3) = bVar18;
  uVar7 = DAT_182671dd8;
  uVar11 = uVar30 + uVar11 ^ DAT_182671f44;
  uVar30 = (uint)(bVar18 ^ bVar19);
  *(uint *)(lVar2 + -0x670) = uVar30 ^ uVar20;
  *puVar12 = uVar11;
  *(uint *)(lVar2 - (uVar39 ^ 0x3c50fdc)) = uVar30 << (((byte)DAT_182671c5c ^ 3) & 0x1f) ^ uVar36;
  uVar11 = DAT_182671dcc;
  uVar22 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar2 + -0x8f0) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar40 ^ 0xef98fa7d)) ^ CONCAT44(uVar7,uVar7)) ^
       CONCAT44(DAT_182671f24,DAT_182671f24);
  *puVar1 = (*(uint *)(lVar2 - (uVar22 ^ 0xfff5e984)) ^ DAT_182671f44) -
            (uVar36 ^ *(uint *)(lVar2 + -0x76c)) ^ uVar24;
  uVar30 = DAT_182671dd4;
  uVar36 = (*(uint *)(lVar2 - (uVar13 ^ 0x81e28590)) ^ uVar24) * (*(uint *)(lVar2 + -0x94) ^ uVar34)
           ^ DAT_182671f30;
  *(uint *)(lVar2 + -0x784) = uVar36;
  lVar3 = DAT_182671c40;
  uVar36 = uVar36 ^ DAT_182671f30;
  bVar19 = (byte)DAT_182671c74;
  uVar35 = (*(uint *)(lVar2 - (uVar28 ^ 0x1400260)) ^ uVar20) * (uVar35 ^ 0x80a20445);
  puVar16 = (uint *)(DAT_182671c40 - (uVar28 ^ 0x1400254));
  *(uint *)(DAT_182671c40 + -0x684) = uVar35 ^ uVar38;
  uVar35 = uVar35 + uVar36;
  *(uint *)(lVar3 + -0x644) = uVar35 ^ uVar11;
  bVar18 = (byte)DAT_182671c48;
  *(uint *)(lVar3 + -0x9dc) = uVar35 << ((bVar19 ^ 0xbd) & 0x1f) ^ uVar30;
  *(uint *)(lVar3 - (uVar27 ^ 0x10084726)) =
       (*puVar16 ^ uVar11) >> ((bVar18 ^ 0x1d) & 0x1f) ^ DAT_182671db8;
  uVar38 = DAT_182671e04;
  uVar11 = DAT_182671c60;
  uVar22 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar3 - (uVar15 ^ 0x36e70e65)) =
       (*(uint *)(lVar3 - (uVar13 ^ 0x81e2826c)) ^ DAT_182671db8 |
       *(uint *)(lVar3 + -0x9dc) ^ uVar30) ^ DAT_182671efc;
  uVar36 = DAT_182671d90;
  uVar20 = DAT_182671c80 ^ 0x9359fc1b;
  uVar35 = (*(uint *)(lVar3 - (uVar22 ^ 0x80a2019c)) ^ uVar30) + (*(uint *)(lVar3 + -0x94) ^ uVar34)
           ^ DAT_182671dac;
  *(uint *)(lVar3 + -0x94c) = DAT_182671d90 ^ DAT_182671efc ^ *(uint *)(lVar3 + -0x6c0);
  uVar34 = DAT_182671c50 ^ 0x5f15d6e9;
  *(uint *)(lVar3 + -0xae4) = uVar35;
  *(uint *)(lVar3 + -0x58c) = uVar35 ^ DAT_182671de4 ^ DAT_182671dac;
  *(uint *)(lVar3 - ((ulonglong)uVar11 ^ 0x3c508e4)) = uVar20 * uVar34;
  uVar35 = DAT_182671d80;
  *(uint *)(lVar3 + -0x444) = *(uint *)(lVar3 + -0x58c) ^ uVar38 ^ DAT_182671de4;
  *puVar12 = *(uint *)(lVar3 + -0x94c) ^ uVar35 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x7c0) =
       *(longlong *)(lVar3 + -0x960) - (CONCAT44(uVar25,uVar8) ^ 0x46ad02086acc86d);
  uVar20 = DAT_182671f74;
  uVar25 = DAT_182671f60;
  lVar2 = DAT_182671c40;
  uVar15 = (ulonglong)DAT_182671f74;
  uVar24 = DAT_182671f60 & 0xff;
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x71539eae)) =
       (CONCAT44(uVar21,uVar32) ^ 0xfff5ef984847a630) * 0x20 +
       (CONCAT44(uVar5,uVar4) ^ 0x100041036e708bd) + *(longlong *)(DAT_182671c40 + -0x9a8) ^ uVar15;
  bVar19 = *(byte *)(*(ulonglong *)(lVar2 + -0x5a0) ^ uVar15) ^ (byte)uVar25 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar2 + -0x1c3) = bVar19;
  uVar24 = bVar19 ^ uVar24;
  *(uint *)(lVar2 + -0x76c) = uVar24 ^ DAT_182671e50;
  uVar34 = DAT_182671cac;
  uVar25 = DAT_182671c68;
  uVar21 = uVar24 << 0x11 ^ DAT_182671f1c;
  uVar11 = (uVar35 ^ *puVar12) + (uVar11 ^ 0x9f871aae) ^ DAT_182671fac;
  uVar15 = (ulonglong)DAT_182671c68;
  *(uint *)(lVar2 + -0x670) = uVar21;
  uVar21 = uVar21 ^ DAT_182671f1c;
  *puVar1 = uVar11;
  *(uint *)(lVar2 + -0x784) = (uVar11 ^ DAT_182671fac) - uVar21 ^ DAT_182671f70;
  uVar35 = (*(uint *)(lVar2 - (uVar15 ^ 0xfff5e81c)) ^ DAT_182671f70) *
           (*(uint *)(lVar2 + -0x444) ^ uVar38);
  uVar11 = DAT_182671c50 ^ 0xdff3f976;
  *(uint *)(lVar2 + -0x684) = uVar35 ^ DAT_182671d9c;
  uVar11 = uVar24 * uVar11 ^ DAT_182671fb0;
  *(uint *)(lVar2 + -0x644) = uVar11;
  uVar35 = uVar35 + (uVar11 ^ DAT_182671fb0);
  *(uint *)(lVar2 + -0x9dc) = uVar35 ^ uVar34;
  bVar19 = (byte)DAT_182671c74;
  *(ulonglong *)(lVar2 + -0xa50) =
       (CONCAT44(uVar8,uVar25) ^ 0x3aa9d34b921ff9e9) >>
       ((byte)*(undefined8 *)(lVar2 - (uVar27 ^ 0x10084832)) & 0x3f);
  *(uint *)(lVar2 - (uVar40 ^ 0xef98f9c1)) = uVar35 << (bVar17 & 0x1f) ^ uVar20;
  uVar25 = (uVar34 ^ *(uint *)(lVar2 + -0x9dc)) >> ((bVar19 ^ 0xa3) & 0x1f) ^ DAT_182671dc0;
  *(uint *)(lVar2 + -0x94) = uVar25;
  *(uint *)(lVar2 + -0xae4) =
       (*(uint *)(lVar2 + -0x634) ^ uVar20 | uVar25 ^ DAT_182671dc0) ^ DAT_182671f20;
  uVar11 = DAT_182671d94;
  uVar25 = DAT_182671c94;
  uVar15 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar2 - (uVar13 ^ 0x81e28298)) = (uVar34 ^ *(uint *)(lVar2 + -0x9dc)) << 2;
  *(uint *)(lVar2 + -0x54) =
       (*(uint *)(lVar2 - (uVar15 ^ 0x80a2000c)) ^ uVar38) + (*(uint *)(lVar2 + -0x5d4) ^ uVar30) ^
       uVar11;
  *(uint *)(lVar2 + -0x58c) = *(uint *)(lVar2 - (uVar14 ^ 0xdff3f93a)) ^ DAT_182671cdc ^ uVar11;
  uVar34 = *(uint *)(lVar2 - (uVar26 ^ 0xe9b5995)) ^ DAT_182671f38 ^ DAT_182671f20;
  *(uint *)(lVar2 + -0x94c) = uVar34;
  uVar34 = uVar34 ^ DAT_182671f38;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (CONCAT44(uVar32,uVar25) ^ 0xbc6b0390940d7166) >>
       ((byte)*(undefined8 *)(lVar2 + -0x8f0) & 0x3f);
  *puVar12 = *(uint *)(lVar2 - (uVar26 ^ 0xe9b56fd)) ^ DAT_182671cdc ^ uVar11;
  *puVar1 = uVar34 ^ uVar36;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar23;
  return;
}



############ FUN_ 180f4de50 size=4809 ############

void FUN_180f4de50(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  byte bVar31;
  ulonglong uVar32;
  byte bVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong *puVar39;
  byte local_78;
  
  uVar4 = DAT_182671c8c;
  uVar11 = DAT_182671c84;
  uVar9 = DAT_182671c7c;
  uVar8 = DAT_182671c68;
  uVar7 = DAT_182671c58;
  uVar6 = DAT_182671c50;
  uVar5 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c58;
  uVar21 = (ulonglong)DAT_182671c84;
  uVar26 = DAT_182671c68 - DAT_182671c58;
  uVar36 = (ulonglong)DAT_182671c7c;
  uVar27 = (ulonglong)DAT_182671c4c;
  uVar37 = (ulonglong)DAT_182671c50;
  uVar24 = DAT_182671c8c << 0x10 | DAT_182671c8c >> 0x10;
  uVar34 = DAT_182671c7c + DAT_182671c4c;
  uVar30 = DAT_182671c50 + DAT_182671c84;
  uVar16 = *(uint *)(&DAT_182613210 + (uVar28 ^ 0x7ff3ff63) + (longlong)DAT_18267217c) ^
           DAT_182671c68;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar21 ^ 0x462ad9c9) + (longlong)DAT_18267217c);
  uVar29 = (ulonglong)DAT_182671c8c;
  puVar38 = (ulonglong *)(DAT_182671c40 - (uVar37 ^ 0x268094a3));
  DAT_182671c5c = uVar24;
  DAT_182671c60 = uVar34;
  DAT_182671c6c = uVar26;
  DAT_182671c70 = uVar30;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar34 ^ 0x82b579e0)) =
       CONCAT44(uVar30,DAT_182671c8c) ^ 0x7a1c6e1d3ee13a46 | *puVar38;
  *(byte *)(*(ulonglong *)(lVar2 + -0x290) ^ (ulonglong)DAT_182671fa8) =
       *(byte *)(lVar2 - ((ulonglong)uVar24 ^ 0x462adccb)) ^ (byte)DAT_182671f14 ^
       (byte)DAT_182671e08;
  uVar12 = DAT_182671f98;
  *(int *)(lVar2 + -0x76c) =
       *(int *)(lVar2 + -0x54) - *(int *)(lVar2 - ((ulonglong)uVar9 ^ 0x2784126c));
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar5,uVar34) ^ 0x5b31674082b57fc0) +
            (CONCAT44(uVar24,uVar8) ^ 0x462ad9d9fe08d3b7) * 0xc) * 8);
  uVar32 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar23 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671f18;
  lVar3 = DAT_182671c40;
  uVar18 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x27841350)) = *puVar23 ^ uVar18 ^ uVar32;
  *(ulonglong *)(lVar2 + -0xda8) =
       0x355329747959340b >> (((byte)uVar12 ^ *(byte *)(lVar2 + -0xd88)) & 0x3f);
  bVar33 = (byte)DAT_182671d5c;
  uVar22 = (ulonglong)DAT_182671fb0;
  *(ulonglong *)(lVar3 + -0x628) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x6cab793c)) ^ uVar32) >>
       (((byte)uVar26 ^ 0x54) & 0x3f) ^ CONCAT44(DAT_182671d5c,DAT_182671d5c);
  bVar20 = (byte)DAT_182671e64;
  pbVar19 = (byte *)((CONCAT44(uVar34,uVar4) ^ 0x82b57fc8d9d94669) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0xa48) = (ulonglong)pbVar19 ^ uVar22;
  uVar12 = DAT_182671f50;
  bVar33 = bVar33 ^ *(byte *)(lVar3 + -0x628) ^ bVar20;
  bVar20 = bVar20 ^ (byte)DAT_182671f14;
  *(byte *)(lVar3 + -0x27d) = bVar33;
  *pbVar19 = bVar20 ^ bVar33;
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x610) = *(longlong *)(lVar3 + -0x310) + 0x40U ^ uVar22;
  uVar32 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *(ulonglong *)(lVar3 + -0xd88) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x6cab74f4)) ^ uVar22) ^ uVar32 ^
       uVar18;
  uVar14 = DAT_182671e60;
  bVar20 = (byte)DAT_182671dd8 ^ (byte)DAT_182671e38;
  *puVar38 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0x27841500)) ^ uVar32) >>
             (((byte)uVar6 ^ 0x2b) & 0x3f) ^ CONCAT44(DAT_182671dd8,DAT_182671dd8);
  puVar38 = (ulonglong *)(lVar3 - (uVar28 ^ 0x7ff3f2c3));
  pbVar19 = (byte *)(*(longlong *)(lVar3 + -0x870) + 0x44);
  bVar20 = bVar20 ^ (byte)*puVar38;
  *(ulonglong *)(lVar3 + -0x88) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182671f48;
  uVar12 = DAT_182671c98;
  *(byte *)(lVar3 + -0xb7a) = bVar20;
  *pbVar19 = bVar20 ^ (byte)DAT_182671e38 ^ (byte)DAT_182671f14;
  uVar13 = DAT_182671fb4;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x462adb31)) =
       *(longlong *)(lVar3 + -0x310) + (CONCAT44(uVar11,uVar5) ^ 0x462ad9d95b316748) * 8 ^ uVar28;
  uVar22 = CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar28 = *(ulonglong *)(uVar28 ^ *(ulonglong *)(lVar3 + -0x2e8)) ^ uVar22 ^ uVar18;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar28;
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar28 ^ uVar22) >> (((byte)uVar26 ^ 100) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  puVar39 = (ulonglong *)(lVar3 - (uVar29 ^ 0xd9d94002));
  bVar31 = (byte)uVar14;
  uVar28 = (ulonglong)DAT_182671e44;
  *(byte *)(lVar3 + -0x879) = (byte)uVar13 ^ bVar31 ^ (byte)*puVar39;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0x7e14d07c)) =
       (CONCAT44(uVar26,uVar11) ^ 0x7e14d44c462ad99c) + *(longlong *)(lVar3 + -0x870) ^ uVar28;
  *(byte *)(*(ulonglong *)(lVar3 + -0x430) ^ uVar28) =
       *(byte *)(lVar3 - (uVar29 ^ 0xd9d94e53)) ^ bVar31 ^ (byte)DAT_182671f14;
  uVar4 = DAT_182671c48;
  uVar28 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x5b316ae8)) =
       CONCAT44(DAT_182671ea0,DAT_182671ea0) ^ *(ulonglong *)(lVar3 + -0x888) |
       uVar32 ^ *(ulonglong *)(lVar3 + -0xd88);
  uVar12 = DAT_182671d3c;
  uVar17 = DAT_182671c78;
  uVar22 = (ulonglong)DAT_182671c78;
  uVar25 = DAT_182671c78 ^ uVar4;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar3 - ((ulonglong)uVar25 ^ 0x4a08f404)) +
            ((CONCAT44(DAT_182671c78,uVar4) ^ 0xb7d308fefddbffe2) +
            (CONCAT44(DAT_182671c78,uVar4) ^ 0xb7d308fefddbffea) * 0xc) * 8);
  DAT_182671c54 = uVar25;
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar29 = *puVar23 ^ uVar36 ^ uVar18;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar29;
  lVar2 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671d70;
  bVar20 = (byte)DAT_182671d08 ^ (byte)DAT_182671cf4;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xb7d30ed6)) =
       (uVar36 ^ uVar29) >> (((byte)uVar4 ^ 0xda) & 0x3f) ^ CONCAT44(DAT_182671d08,DAT_182671d08);
  *(byte *)(lVar2 + -0x6f9) = bVar20 ^ *(byte *)(lVar2 + -0x628);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x4a08f61c)) =
       (CONCAT44(uVar8,uVar11) ^ 0xfe08d3b7462ad99f) + *(longlong *)(lVar2 + -0x870) ^ uVar32;
  bVar20 = (byte)DAT_182671cf4 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 + -0x888) =
       (CONCAT44(uVar17,uVar6) ^ 0x13eac585de26fced) + 0x2a863629574ae5bd;
  *(byte *)(*(ulonglong *)(lVar2 + -0x108) ^ uVar32) = bVar20 ^ *(byte *)(lVar2 + -0x6f9);
  uVar13 = DAT_182671e94;
  *(uint *)(lVar2 + -0x5d4) = (uVar25 ^ 0x79797d48) + (DAT_182671c7c ^ 0x9f471716);
  uVar12 = DAT_182671cfc;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 - ((ulonglong)uVar30 ^ 0x6cab71f4)) + 0x40 +
            (CONCAT44(uVar25,uVar8) ^ 0x4a08f714fe08d3b7) * 0x60);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar23 ^ CONCAT44(uVar13,uVar13);
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xd88) = *puVar23 ^ uVar18 ^ uVar29;
  local_78 = (byte)uVar5;
  bVar20 = (byte)DAT_182671eb4;
  *puVar38 = (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xfddbf262)) ^ uVar29) >>
             ((local_78 ^ 0x78) & 0x3f) ^ CONCAT44(DAT_182671eb4,DAT_182671eb4);
  bVar33 = bVar20 ^ (byte)DAT_182671d7c ^ *(byte *)(lVar3 + -0xda8);
  bVar20 = (byte)DAT_182671d7c ^ bVar33 ^ (byte)DAT_182671f14;
  *(byte *)(lVar3 + -0x569) = bVar33;
  *(ulonglong *)(lVar3 + -0xbd8) =
       -0x769aa57a4abb2288 - (CONCAT44(uVar4,uVar24) ^ 0x4315a51170ad3ef9);
  pbVar19 = (byte *)((CONCAT44(uVar7,uVar9) ^ 0x7ff3ff6b278418cf) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0x400) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182671cf8;
  *pbVar19 = bVar20;
  uVar12 = DAT_182671d78;
  *(undefined1 *)(lVar3 + -0x3a2) = **(undefined1 **)(lVar3 + -0x990);
  uVar13 = DAT_182671dec;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) + (CONCAT44(uVar8,uVar11) ^ 0xfe08d3b7462ad9d0) * 8);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar23 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671d04;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x628) = *puVar23 ^ uVar22 ^ uVar18;
  uVar15 = DAT_182671f04;
  uVar10 = DAT_182671c80;
  lVar2 = DAT_182671c40;
  uVar22 = CONCAT44(uVar12,uVar12) ^ uVar22 ^ *puVar39;
  bVar20 = (byte)uVar12 ^ (byte)DAT_182671f54;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar22;
  *(byte *)(lVar2 + -0x3a2) = bVar20 ^ (byte)uVar22;
  uVar22 = (ulonglong)DAT_182671f10;
  *(ulonglong *)(lVar2 + -0xd88) =
       CONCAT44(uVar8,uVar34) ^ 0xc47f02991708d87d | CONCAT44(uVar5,uVar4) ^ 0xb80867481ada45de;
  uVar12 = DAT_182671d0c;
  pbVar19 = (byte *)(*(longlong *)(lVar2 - (uVar37 ^ 0x2680917b)) +
                    (CONCAT44(uVar25,uVar25) ^ 0x4a08f7144a08f75c));
  bVar20 = (byte)DAT_182671f2c;
  *(ulonglong *)(lVar2 + -0x330) = (ulonglong)pbVar19 ^ uVar22;
  *(ulonglong *)(lVar2 + -0xda8) =
       (CONCAT44(uVar26,uVar17) ^ 0xc99987505dfca487) >>
       ((bVar20 ^ *(byte *)(lVar2 + -0x228)) & 0x3f);
  uVar5 = DAT_182671c64;
  uVar35 = DAT_182671c64 ^ uVar10;
  DAT_182671c90 = uVar35;
  *pbVar19 = *(byte *)(lVar2 - (uVar28 ^ 0xfddbfc48)) ^ (byte)DAT_182671f54 ^ (byte)DAT_182671f14;
  *(undefined8 *)(lVar2 + -0xbd8) = 0xfddf16302d3ddaff;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar30,uVar6) ^ 0x6cab72e426809902) * 8);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar23 ^ CONCAT44(uVar12,uVar12);
  uVar28 = *puVar23 ^ CONCAT44(uVar15,uVar15) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x628) = uVar28;
  uVar22 = (ulonglong)DAT_182671e70;
  uVar28 = ((ulonglong)uVar15 << 0x18 | (ulonglong)(uVar15 >> 8)) ^ uVar28 >> 8 ^
           CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x888) = uVar28;
  bVar33 = bVar31 ^ (byte)uVar12 ^ (byte)uVar28;
  *(byte *)(lVar2 + -0xc99) = bVar33;
  bVar20 = (byte)DAT_182671f14;
  lVar2 = DAT_182671c40;
  bVar33 = (byte)uVar12 ^ bVar33 ^ (byte)DAT_182671f14;
  pbVar19 = (byte *)(DAT_182671c40 + -0x888);
  *(ulonglong *)(DAT_182671c40 + -0xdb0) =
       (CONCAT44(uVar10,uVar35) ^ 0x462ad9d91d1bbed0) + *(longlong *)(DAT_182671c40 + -0x870) ^
       uVar22;
  *(ulonglong *)(lVar2 + -0xd88) = 0xef2f9df6ac056434 >> ((*pbVar19 ^ bVar31) & 0x3f);
  uVar28 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x5b316af0)) ^ uVar22) = bVar33;
  uVar12 = DAT_182671ca0;
  lVar2 = DAT_182671c40;
  puVar23 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 - ((ulonglong)uVar35 ^ 0x1d1bbd89)) +
            ((CONCAT44(uVar5,uVar5) ^ 0x5b3167405b316749) +
            (CONCAT44(uVar35,uVar10) ^ 0x1d1bbe99462ad9d9) * 0xc) * 8);
  *(ulonglong *)(DAT_182671c40 + -0x610) = (ulonglong)puVar23 ^ uVar28;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar28 = *puVar23 ^ uVar18;
  *(ulonglong *)(lVar2 + -0xda8) = uVar28 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x228) = uVar28 >> (((byte)uVar5 ^ 0x50) & 0x3f) ^ uVar29;
  *(byte *)(lVar2 - ((ulonglong)uVar35 ^ 0x1d1bbf03)) =
       *(byte *)(lVar2 - ((ulonglong)uVar5 ^ 0x5b316568)) ^ (byte)DAT_182671cfc ^
       (byte)DAT_182671f68;
  pbVar19 = (byte *)((CONCAT44(uVar35,uVar5) ^ 0x1d1bbe995b31670a) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0xb58) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182671ef4;
  *pbVar19 = *(byte *)(lVar2 + -0x19a) ^ bVar20 ^ (byte)DAT_182671f68;
  uVar12 = DAT_182671ce8;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 - ((ulonglong)uVar10 ^ 0x462adac9)) + 0x48 +
            (CONCAT44(uVar10,uVar10) ^ 0x462ad9d9462ad9d9) * 0x60);
  uVar22 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar2 + -0x2e8) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar28 = *puVar23 ^ uVar18 ^ uVar22;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar28;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar35 ^ 0x1d1bb611)) =
       (CONCAT44(uVar35,uVar5) ^ 0x1e6a10b9d9a58879) << (((byte)uVar28 ^ (byte)uVar12) & 0x3f);
  uVar8 = DAT_182671c88;
  uVar36 = CONCAT44(DAT_182671e40,DAT_182671e40);
  bVar31 = (byte)DAT_182671e40;
  uVar29 = (ulonglong)DAT_182671c88;
  uVar28 = (ulonglong)DAT_182671e00;
  *(ulonglong *)(lVar2 + -0xd88) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x462ad201)) ^ uVar22) >>
       (((byte)uVar6 ^ 0x13) & 0x3f) ^ uVar36;
  bVar33 = bVar31 ^ *(byte *)(lVar2 + -0xd88) ^ (byte)DAT_182671f34;
  *(ulonglong *)(lVar2 + -0x228) =
       (CONCAT44(uVar17,uVar26) ^ 0xbee7a043c8acd72c) <<
       (((byte)uVar15 ^ *(byte *)(lVar2 + -0x628)) & 0x3f);
  uVar6 = DAT_182671c74;
  uVar32 = (ulonglong)DAT_182671c74;
  uVar17 = DAT_182671c74 ^ uVar8;
  *(byte *)(lVar2 - ((ulonglong)uVar34 ^ 0x82b57352)) = bVar33;
  pbVar19 = (byte *)((CONCAT44(uVar30,uVar11) ^ 0x6cab72e4462ad992) + *(longlong *)(lVar2 + -0x870))
  ;
  DAT_182671c94 = uVar17;
  *(ulonglong *)(lVar2 + -0x740) = (ulonglong)pbVar19 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 + -0xd88) ^ uVar36) - (CONCAT44(uVar9,uVar35) ^ 0xcfbe6c356a30ea1a);
  lVar3 = DAT_182671c40;
  *pbVar19 = *(byte *)(lVar2 + -0xc9a) ^ bVar20 ^ (byte)DAT_182671f34;
  *(ulonglong *)(lVar2 + -0xbd8) = 0x8d5d9d91a52613f2 >> (((byte)uVar6 ^ 0xd9) & 0x3f);
  uVar13 = DAT_182671e34;
  uVar22 = CONCAT44(uVar8,uVar17);
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((uVar22 ^ 0xffdbdbff9370a912) + (uVar22 ^ 0xffdbdbff9370a91b) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671d84,DAT_182671d84);
  lVar2 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671cac;
  *(ulonglong *)(DAT_182671c40 + -0x628) = CONCAT44(DAT_182671cac,DAT_182671cac) ^ *puVar23 ^ uVar18
  ;
  puVar23 = (ulonglong *)(lVar2 - (uVar29 ^ 0xffdbdaef));
  *(ulonglong *)(lVar2 + -0x228) =
       *(ulonglong *)(lVar2 - (uVar32 ^ 0x6cab74cc)) >> 0x20 ^ uVar28 ^ CONCAT44(uVar13,uVar13);
  bVar33 = (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x6cab7a6c)) =
       CONCAT44(DAT_182671dd0,DAT_182671dd0) ^ *(ulonglong *)(lVar2 + -0xda8) ^ uVar37 ^ *puVar23;
  uVar28 = (ulonglong)DAT_182671eec;
  *(byte *)(lVar2 - ((ulonglong)uVar17 ^ 0x9370ad6a)) =
       *(byte *)(lVar2 - (uVar32 ^ 0x6cab70cc)) ^ (byte)uVar13 ^ (byte)DAT_182671e18;
  pbVar19 = (byte *)((uVar22 ^ 0xffdbdbff9370a957) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0x450) = (ulonglong)pbVar19 ^ uVar28;
  *pbVar19 = *(byte *)(lVar2 + -0x471) ^ bVar33 ^ (byte)DAT_182671e18;
  uVar14 = DAT_182671f3c;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (CONCAT44(uVar8,uVar8) ^ 0x4c6da61e91ae231b) << ((*(byte *)(lVar2 + -0xd88) ^ bVar31) & 0x3f)
  ;
  uVar12 = DAT_182671cf4;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x2e8) =
       (CONCAT44(uVar8,uVar6) ^ 0xffdbdbff6cab72e4) * 0x60 + *(longlong *)(lVar2 + -0x310) + 0x48 ^
       uVar28;
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar6,uVar17) ^ 0xc63124a09b211ed9) >>
       ((*(byte *)(lVar2 + -0x228) ^ (byte)uVar13) & 0x3f);
  *puVar23 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x4a08f5fc)) ^ uVar28) ^
             uVar18 ^ uVar22;
  uVar28 = (*(ulonglong *)(lVar2 + -0x110) ^ uVar22) >> (((byte)uVar4 ^ 0xc2) & 0x3f) ^
           CONCAT44(DAT_182671d98,DAT_182671d98);
  bVar20 = (byte)DAT_182671d98;
  *(ulonglong *)(lVar2 + -0xda8) = uVar28;
  bVar20 = bVar20 ^ (byte)uVar28 ^ (byte)DAT_182671d68;
  uVar28 = (ulonglong)DAT_182671d64;
  *(byte *)(lVar2 + -0x8e1) = bVar20;
  uVar13 = DAT_182671efc;
  pbVar19 = (byte *)(*(longlong *)(lVar2 - (uVar27 ^ 0x5b316f30)) +
                    (CONCAT44(uVar9,uVar5) ^ 0x278418885b31670d));
  bVar20 = bVar20 ^ bVar33 ^ (byte)DAT_182671d68;
  *(ulonglong *)(lVar2 + -0xc28) = (ulonglong)pbVar19 ^ uVar28;
  *pbVar19 = bVar20;
  uVar12 = DAT_182671ecc;
  bVar33 = bVar33 ^ (byte)DAT_182671ee0;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar17,uVar10) ^ 0x9370a91b462ad9d0) +
            (CONCAT44(uVar7,uVar10) ^ 0x7ff3ff6b462ad9d9) * 0xc) * 8);
  uVar28 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar2 + -0x610) = (ulonglong)puVar23 ^ CONCAT44(uVar13,uVar13);
  uVar18 = *puVar23 ^ uVar18;
  uVar22 = (ulonglong)DAT_182671e10;
  *(ulonglong *)(lVar2 + -0x888) = uVar18 ^ uVar28;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x462ad451)) =
       uVar18 >> (((byte)uVar6 ^ 0xd4) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  *(byte *)(lVar2 + -0x95) =
       *(byte *)(lVar2 - ((ulonglong)uVar34 ^ 0x82b57240)) ^ (byte)uVar12 ^ (byte)DAT_182671ee0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x462ad509)) =
       (CONCAT44(uVar26,uVar34) ^ 0x7e14d44c82b57f86) + *(longlong *)(lVar2 + -0x870) ^ uVar22;
  bVar20 = *(byte *)(lVar2 + -0x95);
  uVar28 = *(ulonglong *)(lVar2 - (uVar29 ^ 0xffdbd72f));
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar26) * 4) = uVar16;
  *(byte *)(uVar28 ^ uVar22) = bVar33 ^ bVar20;
  return;
}



############ FUN_ 180fd7170 size=3254 ############

void FUN_180fd7170(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  undefined4 uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  byte *pbVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  
  uVar12 = DAT_182671c8c;
  uVar7 = DAT_182671c88;
  uVar6 = DAT_182671c60;
  uVar5 = DAT_182671c54;
  uVar4 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c54;
  uVar36 = (ulonglong)DAT_182671c8c;
  uVar27 = (ulonglong)DAT_182671c50;
  uVar23 = DAT_182671c8c & DAT_182671c50;
  uVar30 = DAT_182671c6c & DAT_182671c88;
  uVar24 = DAT_182671c60 * DAT_182671c54;
  uVar26 = *(uint *)(&DAT_182613218 + DAT_182672024) ^ DAT_182671c60;
  uVar1 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c54 ^ 0x40001318) + (longlong)DAT_182672024);
  uVar17 = (ulonglong)DAT_182671e34;
  uVar22 = (ulonglong)DAT_182671ebc;
  uVar16 = *(ulonglong *)(DAT_182671c40 + -0x698);
  DAT_182671c58 = uVar24;
  DAT_182671c64 = uVar30;
  DAT_182671c74 = uVar23;
  *(byte *)(DAT_182671c40 + -0x3b2) = (byte)DAT_182671c6c ^ 3;
  *(undefined8 *)(lVar2 + -0x3c8) = *(undefined8 *)(lVar2 + -0x520);
  *(ulonglong *)(lVar2 + -0x278) = uVar16;
  *(ulonglong *)(lVar2 + -0xbe8) = uVar22 ^ uVar16;
  uVar33 = (ulonglong)uVar24;
  *(ulonglong *)(lVar2 + -0x630) = *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x90082a08)) ^ uVar17;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0xdefb2238)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x5bc59030)) ^ uVar17) + 1;
  uVar8 = DAT_182671e18;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x100802d8)) =
       *(longlong *)(lVar2 - ((ulonglong)uVar30 ^ 0x10080128)) -
       (CONCAT44(uVar23,uVar12) ^ 0x504b391012a6c186);
  bVar19 = (byte)uVar24;
  *(byte *)(lVar2 + -0xb7a) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar20 ^ 0x40001538)) ^ uVar17) ^ (byte)uVar8 ^
       (byte)DAT_182671d18;
  uVar16 = (ulonglong)DAT_182671e4c;
  *(byte *)(lVar2 + -0xd89) = (byte)uVar4 ^ 0x34;
  *(byte *)(*(ulonglong *)(lVar2 + -0x498) ^ uVar16) = bVar19 ^ 0x38;
  uVar7 = DAT_182671c88;
  *(ulonglong *)(lVar2 + -0x5e8) =
       CONCAT44(uVar30,uVar4) ^ *(ulonglong *)(lVar2 + -0x7c0) ^ 0x124e9417d58024dd;
  pbVar18 = (byte *)(*(ulonglong *)(lVar2 + -0xbe8) ^ uVar22);
  *(byte **)(lVar2 + -0xd60) = pbVar18 + (CONCAT44(uVar6,uVar7) ^ 0xfdfffbf900829c1);
  uVar20 = (ulonglong)DAT_182671d68;
  *pbVar18 = (byte)uVar8 ^ *(byte *)(lVar2 + -0xb7a);
  *(byte *)(lVar2 + -0xb7a) = bVar19 ^ 0xa1;
  *(undefined8 *)(lVar2 + -0x528) = *(undefined8 *)(lVar2 + -0xd60);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar30 ^ 0x10080250)) = *(undefined8 *)(lVar2 + -0x8c0);
  uVar17 = (ulonglong)DAT_182671c6c;
  puVar28 = (ulonglong *)(lVar2 - (uVar17 ^ 0x7fbfdc47));
  uVar16 = (ulonglong)DAT_182671dd8;
  *puVar28 = *(ulonglong *)(lVar2 - (uVar36 ^ 0xd0080128)) ^ uVar20;
  pbVar18 = *(byte **)(lVar2 + -0xb50);
  *(ulonglong *)(lVar2 + -0xcc8) = (ulonglong)pbVar18 ^ uVar16;
  *(byte **)(lVar2 + -0x1e0) = pbVar18 + (CONCAT44(uVar23,uVar5) ^ 0x5000040040001309);
  uVar7 = DAT_182671c88;
  *(byte *)(lVar2 + -0xc51) = *pbVar18 ^ (byte)DAT_182671f1c ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0xb32) = (byte)uVar7 ^ 0x13;
  *(byte *)(*(ulonglong *)(lVar2 + -0x5b0) ^ (ulonglong)DAT_182671fa8) = (byte)uVar6 ^ 0xc;
  pbVar18 = (byte *)(lVar2 - (uVar27 ^ 0x5bc59a51));
  *(ulonglong *)(lVar2 + -0x8a8) =
       (CONCAT44(uVar12,uVar7) ^ 0xd0080400900829c1) + (uVar20 ^ *puVar28);
  uVar7 = DAT_182671f7c;
  uVar21 = (ulonglong)DAT_182671f7c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x778) ^ uVar20) = *pbVar18 ^ (byte)DAT_182671f1c;
  *pbVar18 = bVar19 ^ 0xe6;
  pbVar18 = *(byte **)(lVar2 + -0x1e0);
  *(ulonglong *)(lVar2 + -0x978) = uVar21 ^ *(ulonglong *)(lVar2 + -0x8a8);
  *(ulonglong *)(lVar2 + -0x660) = *(ulonglong *)(lVar2 + -0x8a8);
  uVar16 = (ulonglong)DAT_182671db4;
  *(byte **)(lVar2 + -0x8e0) = pbVar18;
  bVar19 = (byte)DAT_182671c88;
  *(ulonglong *)(lVar2 + -0x1a8) = uVar16 ^ (ulonglong)pbVar18;
  *(byte **)(lVar2 + -0xb90) = pbVar18 + (CONCAT44(uVar30,uVar23) ^ 0x1008090050000401);
  bVar14 = (byte)DAT_182671e30;
  *(byte *)(lVar2 + -0xc9b) = (byte)DAT_182671e30 ^ (byte)DAT_182671d18 ^ *pbVar18;
  *(byte *)(lVar2 - ((ulonglong)uVar6 ^ 0xfdff52a)) = (byte)uVar23 ^ 0x8d;
  *(byte *)(*(ulonglong *)(lVar2 + -0x718) ^ (ulonglong)DAT_182671e2c) = bVar19 ^ 0xc;
  puVar28 = (ulonglong *)(lVar2 - (uVar17 ^ 0x7fbfd247));
  bVar19 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar2 + -600) = (*puVar28 ^ uVar21) + 1;
  *(byte *)(*puVar28 ^ uVar21) = bVar14 ^ *(byte *)(lVar2 + -0xc9b);
  *(byte *)(lVar2 - (uVar17 ^ 0x7fbfd7a4)) = bVar19 ^ 0xc6;
  uVar16 = *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x40001150));
  *(ulonglong *)(lVar2 + -0x690) = uVar16;
  *(ulonglong *)(lVar2 + -0x608) = uVar7 ^ uVar16;
  *(ulonglong *)(lVar2 + -0xc50) = *(ulonglong *)(lVar2 + -0xb90);
  uVar15 = DAT_182671f24;
  uVar5 = DAT_182671eec;
  uVar16 = (ulonglong)DAT_182671eec;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x5bc59ab8)) = uVar16 ^ *(ulonglong *)(lVar2 + -0xb90);
  uVar11 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0x90082e28)) =
       *(ulonglong *)(CONCAT44(DAT_182671f84,DAT_182671f84) ^ *(ulonglong *)(lVar2 + -0xd68)) ^
       CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x10080468)) =
       CONCAT44(uVar24,DAT_182671c94) ^ 0x8f98bfaea571c329;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xfdff44f)) =
       ((ulonglong)uVar5 ^ *(ulonglong *)(lVar3 + -0xcb8)) + 1;
  *(byte *)(lVar3 - ((ulonglong)uVar12 ^ 0xd0080c79)) =
       *(byte *)(uVar16 ^ *(ulonglong *)(lVar3 + -0xcb8)) ^ (byte)DAT_182671c9c ^
       (byte)DAT_182671d18;
  uVar16 = (ulonglong)DAT_182671ca8;
  bVar19 = (byte)DAT_182671c6c;
  *(byte *)(lVar3 + -0xa11) = (byte)uVar12 ^ 0xd9;
  *(byte *)(*(ulonglong *)(lVar3 + -0x398) ^ uVar16) = bVar19 ^ 0x7b;
  bVar19 = *(byte *)(lVar3 + -0x879) ^ (byte)DAT_182671c9c;
  *(ulonglong *)(lVar3 + -0x1b0) =
       (CONCAT44(uVar4,uVar6) ^ 0x5bc596000fdfffbe) + (*(ulonglong *)(lVar3 + -0x608) ^ uVar21);
  uVar4 = DAT_182671c84;
  uVar8 = DAT_182671c70;
  uVar5 = DAT_182671c54;
  uVar20 = (ulonglong)DAT_182671c98;
  uVar35 = (ulonglong)DAT_182671c84;
  uVar31 = (ulonglong)DAT_182671c70;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x50000208)) ^ uVar21) = bVar19;
  *(byte *)(lVar3 + -0x879) = (byte)uVar6 ^ 0x40;
  uVar16 = *(ulonglong *)(lVar3 - (uVar33 ^ 0xdefb2b48));
  *(ulonglong *)(lVar3 + -0x260) = uVar16;
  uVar9 = DAT_182671c78;
  *(undefined8 *)(lVar3 + -0xa48) = *(undefined8 *)(lVar3 - ((ulonglong)uVar30 ^ 0x100802f0));
  *(longlong *)(lVar3 + -0x4b8) = *(longlong *)(lVar3 + -0x5e8) << 0xb;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x50000788)) = uVar20 ^ uVar16;
  *(ulonglong *)(lVar3 + -0xb18) = *(ulonglong *)(lVar3 - (uVar27 ^ 0x5bc593e8)) >> 1;
  pbVar18 = *(byte **)(lVar3 + -0xa48);
  *(ulonglong *)(lVar3 + -0x958) = (ulonglong)pbVar18 ^ uVar22;
  uVar13 = DAT_182671c90;
  uVar16 = (ulonglong)DAT_182671c90;
  *(byte **)(lVar3 + -0x1d0) = pbVar18 + (CONCAT44(uVar9,uVar4) ^ 0xfcdfffbf30488604);
  *(byte *)(lVar3 + -0x729) = *pbVar18 ^ (byte)DAT_182671d50 ^ (byte)DAT_182671d18;
  *(undefined1 *)(lVar3 - (uVar31 ^ 0x130005e9)) = 0xbc;
  *(undefined1 *)(*(ulonglong *)(lVar3 - (uVar16 ^ 0xdc8c8999)) ^ (ulonglong)DAT_182671ee0) = 0x8a;
  uVar10 = DAT_182671c80;
  uVar7 = DAT_182671c68;
  lVar2 = DAT_182671c40;
  uVar16 = (ulonglong)DAT_182671c68;
  uVar25 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x40001380)) =
       (*(ulonglong *)(lVar3 + -0x388) ^ uVar20) + (CONCAT44(uVar11,uVar12) ^ 0x900829c0d0080401);
  uVar11 = DAT_182671f38;
  uVar4 = DAT_182671c48;
  uVar22 = (ulonglong)DAT_182671c48;
  uVar21 = (ulonglong)DAT_182671f38;
  *(byte *)(*(ulonglong *)(lVar2 + -0x388) ^ uVar20) =
       *(byte *)(lVar2 - (uVar17 ^ 0x7fbfdc16)) ^ (byte)DAT_182671d50;
  bVar14 = (byte)DAT_182671d8c;
  bVar19 = (byte)uVar5;
  *(byte *)(lVar2 + -0x729) = bVar19 ^ 0xc;
  *(longlong *)(lVar2 + -0x960) =
       *(longlong *)(lVar2 - (uVar16 ^ 0x2cd65fba)) << (((byte)uVar12 ^ 0x11) & 0x3f);
  *(undefined8 *)(lVar2 + -0xad0) = *(undefined8 *)(lVar2 + -0x88);
  *(uint *)(lVar2 - ((ulonglong)uVar8 ^ 0x130006c0)) =
       *(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0xfcdffb13)) | uVar10 ^ 0x901d1204;
  *(undefined8 *)(lVar2 - (uVar22 ^ 0x64f4df2e)) = *(undefined8 *)(lVar2 - (uVar25 ^ 0xf32a25b2));
  pbVar18 = *(byte **)(lVar2 + -0x430);
  *(ulonglong *)(lVar2 + -0x6b0) = uVar21 ^ *(ulonglong *)(lVar2 + -0xad0);
  uVar16 = (ulonglong)DAT_182671ef0;
  *(byte *)(lVar2 + -0x6f9) = (byte)uVar30 ^ 0xe9;
  *(ulonglong *)(lVar2 + -0x1c0) = (ulonglong)pbVar18 ^ uVar16;
  *(byte **)(lVar2 + -0x2a0) = pbVar18 + (CONCAT44(uVar6,uVar23) ^ 0xfdfffbf50000401);
  *(byte *)(lVar2 + -0x72d) = bVar14 ^ *pbVar18 ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0x71a) = bVar19 ^ 0x58;
  uVar5 = DAT_182671c5c;
  uVar34 = CONCAT44(DAT_182671c5c,uVar13);
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x64f4de7e)) ^ (ulonglong)DAT_182671d44) = 0xca;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xdc8c9271)) =
       ((ulonglong)uVar11 ^ *(ulonglong *)(lVar2 + -0x6b0)) + 1;
  bVar19 = (byte)DAT_182671c88;
  *(byte *)(uVar21 ^ *(ulonglong *)(lVar2 + -0x6b0)) = bVar14 ^ *(byte *)(lVar2 + -0x72d);
  lVar3 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c94;
  uVar16 = (ulonglong)DAT_182671c78;
  *(byte *)(lVar2 - (uVar29 ^ 0x3fdbb852)) = bVar19 ^ 0xb8;
  uVar20 = (ulonglong)DAT_182671c88;
  uVar32 = (ulonglong)DAT_182671d60;
  *(undefined8 *)(lVar2 + -0x90) = *(undefined8 *)(lVar2 - (uVar31 ^ 0x130005f8));
  *(undefined8 *)(lVar2 + -0x988) = *(undefined8 *)(lVar2 + -0x2a0);
  uVar21 = (ulonglong)DAT_182671f00;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x90082840)) =
       *(ulonglong *)(lVar3 - (uVar16 ^ 0xfcdfff2f)) ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x5bc59f30)) =
       *(ulonglong *)(lVar3 - (uVar36 ^ 0xd0080d88)) ^ uVar32;
  uVar4 = DAT_182671c7c;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x64f4d82e)) =
       (uVar34 ^ 0xdc8c9789dc8c8488) + (*(ulonglong *)(lVar3 + -0x930) ^ uVar32);
  lVar2 = DAT_182671c40;
  *(longlong *)(DAT_182671c40 + -0xc38) =
       *(longlong *)(DAT_182671c40 - (uVar29 ^ 0x3fdbbcff)) -
       *(longlong *)(DAT_182671c40 - ((ulonglong)uVar4 ^ 0xfc8dcb75));
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0xfdffad6)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x930) ^ uVar32) ^ (byte)DAT_182671d64 ^
       (byte)DAT_182671d18;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 - (uVar25 ^ 0xf32a2158)) = (byte)uVar4 ^ 0x84;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar33 ^ 0xdefb21f8)) ^ (ulonglong)DAT_182671d04) = 0x70;
  *(ulonglong *)(lVar2 + -0xb58) =
       (CONCAT44(uVar12,uVar10) ^ 0xd00804005bc59601) + (*(ulonglong *)(lVar2 + -0x180) ^ uVar21);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar35 ^ 0x30488785)) ^ uVar21) =
       *(byte *)(lVar2 - ((ulonglong)uVar7 ^ 0x2cd651cb)) ^ (byte)DAT_182671d64;
  *(byte *)(lVar2 - (uVar33 ^ 0xdefb2f91)) = (byte)DAT_182671c6c ^ 0x81;
  *(undefined8 *)(lVar2 + -0xdb0) = *(undefined8 *)(lVar2 - (uVar22 ^ 0x64f4d046));
  *(undefined8 *)(lVar2 + -0x740) = *(undefined8 *)(lVar2 - ((ulonglong)uVar13 ^ 0xdc8c87b9));
  uVar16 = (ulonglong)DAT_182671e18;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x7fbfdf6f)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c78 ^ 0xfcdff20f)) ^ (ulonglong)DAT_182671f10;
  pbVar18 = *(byte **)(lVar2 - ((ulonglong)uVar4 ^ 0xfc8dc9dd));
  *(ulonglong *)(lVar2 + -0x728) = (ulonglong)pbVar18 ^ uVar16;
  uVar4 = DAT_182671c88;
  *(ulonglong *)(lVar2 + -0xcd0) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0x5bc59128)) ^ uVar16) +
       (CONCAT44(uVar7,uVar13) ^ 0x2cd654a2dc8c8488);
  *(byte *)(lVar2 + -0x969) = *pbVar18 ^ (byte)DAT_182671f18 ^ (byte)DAT_182671d18;
  uVar16 = (ulonglong)DAT_182671d14;
  *(byte *)(lVar2 + -0x651) = (byte)uVar4 ^ 0x42;
  *(byte *)(*(ulonglong *)(lVar2 + -0x6d0) ^ uVar16) = (byte)uVar5 ^ 0x20;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar24) * 4) = uVar26;
  return;
}



############ FUN_ 180f60060 size=5167 ############

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

void FUN_180f60060(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  uint uVar21;
  uint uVar22;
  byte *pbVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  byte *pbVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  longlong lVar42;
  byte local_res20;
  byte local_d8;
  byte local_c8;
  byte local_c0;
  
  uVar12 = DAT_182671c80;
  uVar10 = DAT_182671c78;
  uVar7 = DAT_182671c60;
  lVar2 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671c80;
  uVar21 = (DAT_182671c80 << 0x10 | DAT_182671c80 & 0xff00) << 8 | DAT_182671c80 >> 8 & 0xff00 |
           DAT_182671c80 >> 0x18;
  uVar25 = (DAT_182671c78 << 0x10 | DAT_182671c78 & 0xff00) << 8 | DAT_182671c78 >> 8 & 0xff00 |
           DAT_182671c78 >> 0x18;
  uVar17 = *(uint *)(&DAT_182613218 + DAT_1826721b8) ^ DAT_182671c78;
  uVar18 = (ulonglong)uVar21;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar18 ^ 0xeeffbbf9) + (longlong)DAT_1826721b8);
  uVar32 = (ulonglong)DAT_182671c60;
  uVar27 = CONCAT44(DAT_182671d44,DAT_182671d44);
  bVar30 = (byte)DAT_182671d44;
  DAT_182671c6c = uVar25;
  DAT_182671c88 = uVar21;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0xe9bbf806)) =
       (*(byte *)(DAT_182671c40 + -0xb11) ^ DAT_182671d6c._3_1_) ^ uVar27;
  uVar5 = DAT_182671c58;
  uVar19 = (ulonglong)DAT_182671c58;
  uVar22 = DAT_182671c58 & uVar7;
  uVar36 = (ulonglong)uVar22;
  uVar37 = (ulonglong)DAT_182671c58;
  DAT_182671c94 = uVar22;
  *(byte *)(lVar2 + -0x719) =
       *(byte *)(lVar2 - (uVar19 ^ 0x60bb8ca8)) ^ bVar30 ^ (byte)DAT_182671f04;
  uVar33 = (ulonglong)DAT_182671ef8;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x60bb8c20)) =
       CONCAT44(uVar22,uVar7) ^ 0xe2c44c32ddc6db7f | uVar27 ^ *(ulonglong *)(lVar2 + -0x7e8);
  pbVar23 = (byte *)(*(longlong *)(lVar2 + -0x9a8) + 0xf +
                    (CONCAT44(uVar7,uVar22) ^ 0xd4b8588c40b80800) * 0x20);
  uVar24 = (ulonglong)uVar25;
  *(ulonglong *)(lVar2 + -600) = (ulonglong)pbVar23 ^ uVar33;
  uVar26 = (ulonglong)uVar10;
  *pbVar23 = *(byte *)(lVar2 - ((ulonglong)uVar25 ^ 0x38f16fc5)) ^ (byte)DAT_182671e0c ^
             (byte)DAT_182671f04;
  *(int *)(lVar2 - ((ulonglong)uVar12 ^ 0xe9bbf9f2)) =
       *(int *)(lVar2 - ((ulonglong)uVar10 ^ 0xdc68f16c)) * -0x7081a96f;
  uVar4 = DAT_182671f00;
  uVar41 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  puVar35 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xc40) + (CONCAT44(uVar5,uVar21) ^ 0x60bb8b40eeffbbeb) * 8);
  uVar37 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(DAT_182671c40 + -0xb98) = (ulonglong)puVar35 ^ uVar41;
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(uVar4,uVar4);
  uVar33 = uVar28 ^ *puVar35 ^ uVar37;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar33;
  uVar16 = DAT_182671d08;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       *(longlong *)(lVar2 - ((ulonglong)uVar7 ^ 0xd4b85d9c)) -
       (CONCAT44(uVar5,uVar10) ^ 0x1dc94157f37d4705);
  lVar2 = DAT_182671c40;
  uVar37 = CONCAT44(uVar16,uVar16) ^ uVar33 ^ uVar37;
  bVar20 = (byte)uVar16 ^ (byte)uVar37 ^ (byte)DAT_182671f30;
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar37;
  *(byte *)(lVar2 + -0x72d) = bVar20;
  *(ulonglong *)(lVar2 + -0xb20) = uVar28 ^ *puVar35;
  uVar37 = (ulonglong)DAT_182671f48;
  lVar42 = (CONCAT44(uVar12,uVar22) ^ 0xe9bbffee40b80800) * 0x20;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xeeffb989)) =
       (CONCAT44(uVar7,uVar5) ^ 0xd4b8588c60bb8b50) + *(longlong *)(lVar2 + -0x9a8) + lVar42 ^
       uVar37;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xd88) = *(ulonglong *)(*(ulonglong *)(lVar2 + -0x2e8) ^ uVar28) ^ uVar28;
  uVar29 = CONCAT44(uVar22,uVar10);
  *(byte *)(*(ulonglong *)(lVar2 + -0x260) ^ uVar37) =
       *(byte *)(lVar2 - (uVar31 ^ 0xe9bbf8c3)) ^ (byte)DAT_182671e0c ^ (byte)DAT_182671f30;
  uVar4 = DAT_182671e08;
  uVar37 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar3 + -0x10) =
       *(longlong *)(lVar3 - (uVar18 ^ 0xeeffb7a9)) + (uVar29 ^ 0x40b80800dc68f13a) * 8 ^ uVar37;
  uVar6 = DAT_182671ec0;
  uVar38 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xdc68f2b8)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0xe9bbfffe)) ^ uVar37) ^ uVar28 ^ uVar38;
  local_res20 = (byte)(uVar12 >> 0x18);
  uVar33 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0x380)) >> ((local_res20 ^ 0xe1) & 0x3f) ^ uVar33;
  lVar2 = DAT_182671c40;
  pbVar23 = (byte *)(DAT_182671c40 + -0x920);
  uVar37 = *(ulonglong *)(DAT_182671c40 + -0x7e8);
  pbVar34 = (byte *)(*(longlong *)(DAT_182671c40 + -0x9a8) + 0x11);
  *(byte *)(DAT_182671c40 + -0xac1) =
       *(byte *)(DAT_182671c40 + -0xa78) ^ (byte)DAT_182671f80 ^ (byte)uVar6;
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(uVar25,uVar7) ^ 0x1bb9d34a3719202a) << ((*pbVar23 ^ bVar30) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd48) = (ulonglong)pbVar34 ^ (ulonglong)DAT_182671ec4;
  *(ulonglong *)(lVar2 + -0x828) = (uVar27 ^ uVar37) >> (((byte)uVar10 ^ 0x2f) & 0x3f);
  uVar4 = DAT_182671f68;
  *pbVar34 = *(byte *)(lVar2 - (uVar24 ^ 0x38f1621d)) ^ (byte)DAT_182671e0c ^ (byte)DAT_182671f80;
  puVar35 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar36 ^ 0x40b80440)) +
            ((CONCAT44(uVar7,uVar21) ^ 0xd4b8588ceeffbbeb) +
            (CONCAT44(uVar10,uVar12) ^ 0xdc68f138e9bbffee) * 4) * 8);
  *(ulonglong *)(lVar2 + -0x418) = (ulonglong)puVar35 ^ CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0xc90) =
       (CONCAT44(uVar10,uVar25) ^ 0xbe86e75704b62064) + 0x58959a2830f9ea9e;
  uVar4 = DAT_182671ea4;
  uVar37 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x60bb8a50)) = *puVar35 ^ uVar28 ^ uVar37;
  lVar2 = DAT_182671c40;
  uVar27 = (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0x110)) >> (((byte)uVar5 ^ 0x50) & 0x3f) ^
           CONCAT44(uVar4,uVar4);
  uVar37 = (ulonglong)DAT_182671d10;
  bVar20 = (byte)uVar4 ^ (byte)DAT_182671fa8;
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar27;
  bVar20 = bVar20 ^ (byte)uVar27;
  *(byte *)(lVar2 + -0xc51) = bVar20;
  pbVar23 = (byte *)(*(longlong *)(lVar2 - (uVar32 ^ 0xd4b85124)) +
                    (CONCAT44(uVar22,uVar22) ^ 0x40b8080040b80812));
  *(ulonglong *)(DAT_182671c40 + -0xbe0) = (ulonglong)pbVar23 ^ uVar37;
  *pbVar23 = (byte)DAT_182671e0c ^ (byte)DAT_182671fa8 ^ bVar20;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = CONCAT44(uVar5,uVar12) ^ uVar29 ^ 0x48fcb282d0830ecb;
  uVar37 = CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar40 = CONCAT44(uVar21,uVar25);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x38f16ea4)) =
       *(longlong *)(lVar2 + -0xc40) + (CONCAT44(uVar21,uVar7) ^ 0xeeffbbe9d4b8588e) * 8 ^ uVar37;
  uVar4 = DAT_182671d70;
  uVar8 = DAT_182671cd4;
  uVar27 = (ulonglong)DAT_182671cd4;
  *(ulonglong *)(lVar2 + -0x888) = -0x3b0739b4a0cf3dfb - (uVar40 ^ 0x6180bd6d7a3f1906);
  uVar38 = (ulonglong)DAT_182671d1c;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xe9bbf96e)) =
       CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(*(ulonglong *)(lVar2 + -0x678) ^ uVar37) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x30) =
       ((ulonglong)(uVar8 >> 0x18) | uVar27 << 8) ^ *(ulonglong *)(lVar2 + -0x680) >> 0x18 ^
       CONCAT44(uVar4,uVar4);
  bVar20 = *(byte *)(lVar2 - (uVar32 ^ 0xd4b858bc)) ^ (byte)uVar4 ^ (byte)DAT_182671d28;
  *(byte *)(lVar2 + -0xa13) = bVar20;
  *(ulonglong *)(lVar2 + -0x68) =
       (CONCAT44(uVar21,uVar22) ^ 0xeeffbbe940b80800) * 0x20 +
       (CONCAT44(uVar7,uVar5) ^ 0xd4b8588c60bb8b53) + *(longlong *)(lVar2 + -0x9a8) ^ uVar38;
  uVar37 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x38f168b4)) ^ uVar38) =
       (byte)DAT_182671e0c ^ bVar20 ^ (byte)DAT_182671d28;
  puVar35 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xc40) +
            ((CONCAT44(uVar10,uVar12) ^ 0xdc68f138e9bbffec) + (uVar29 ^ 0x40b80800dc68f138) * 4) * 8
            );
  *(ulonglong *)(lVar2 + -0x910) = (ulonglong)puVar35 ^ uVar37;
  uVar4 = DAT_182671db0;
  bVar30 = (byte)(uVar10 >> 0x18);
  *(ulonglong *)(lVar2 + -0xbd8) =
       *(ulonglong *)(lVar2 - (uVar31 ^ 0xe9bbf596)) ^ CONCAT44(uVar22,uVar21) ^ uVar33 ^
       0x839214abec6f9b6c;
  lVar3 = DAT_182671c40;
  uVar37 = *puVar35 ^ uVar28;
  *(ulonglong *)(lVar2 + -0xda8) = uVar37 ^ CONCAT44(uVar4,uVar4);
  uVar27 = CONCAT44(DAT_182671eec,DAT_182671eec);
  bVar39 = (byte)DAT_182671eec;
  bVar20 = (byte)DAT_182671cbc;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x60bb8ea8)) = uVar37 >> ((bVar30 ^ 0xfc) & 0x3f) ^ uVar27;
  lVar2 = DAT_182671c40;
  bVar39 = bVar39 ^ bVar20 ^ *(byte *)(DAT_182671c40 + -0x5e8);
  uVar37 = (ulonglong)DAT_182671e38;
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) <<
       ((byte)*(undefined8 *)(DAT_182671c40 + -0xc18) & 0x3f);
  *(byte *)(lVar2 + -0x229) = bVar39;
  pbVar23 = (byte *)((CONCAT44(uVar5,uVar25) ^ 0x60bb8b4038f168c8) + *(longlong *)(lVar2 + -0x9a8) +
                    lVar42);
  bVar20 = (byte)DAT_182671e0c ^ bVar20;
  *(ulonglong *)(lVar2 + -0x738) = (ulonglong)pbVar23 ^ uVar37;
  *pbVar23 = bVar20 ^ bVar39;
  uVar37 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x38f16d54)) =
       *(longlong *)(lVar2 + -0xc40) +
       ((CONCAT44(uVar21,uVar5) ^ 0xeeffbbe960bb8b42) + (uVar40 ^ 0xeeffbbe938f168dc) * 4) * 8 ^
       uVar37;
  uVar4 = DAT_182671d38;
  uVar27 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar2 + -0x4b8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0xd4b85d04)) ^ uVar37) ^ uVar28 ^ uVar27;
  lVar2 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671e20;
  local_d8 = (byte)uVar12;
  bVar20 = (byte)uVar4 ^ (byte)DAT_182671d8c;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       (*(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xdc68f580)) ^ uVar27) >>
       ((local_d8 ^ 0xc6) & 0x3f) ^ CONCAT44(uVar4,uVar4);
  bVar20 = bVar20 ^ *(byte *)(lVar2 + -0xa50);
  *(byte *)(lVar2 + -0xc29) = bVar20;
  uVar14 = DAT_182671c8c;
  uVar29 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0xb18) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x38f16344)) ^ uVar41) ^ uVar28;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xd20) = *(longlong *)(lVar2 + -0x9a8) + 0x15 + lVar42 ^ uVar37;
  lVar2 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar36 ^ 0x40b80520)) ^ uVar37) =
       (byte)DAT_182671e0c ^ (byte)DAT_182671d8c ^ bVar20;
  *(longlong *)(lVar2 + -0x760) =
       0x57fc3f6348999707 << ((*(byte *)(lVar2 - (uVar18 ^ 0xeeffb1b9)) ^ (byte)uVar4) & 0x3f);
  uVar9 = DAT_182671f74;
  local_c0 = (byte)uVar7;
  puVar35 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xc40) + (CONCAT44(uVar14,uVar12) ^ 0x70c0f8d0e9bbffec) * 8);
  *(ulonglong *)(lVar2 + -0xac0) = (ulonglong)puVar35 ^ CONCAT44(DAT_182671cb0,DAT_182671cb0);
  lVar3 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671f10;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671c40 + -0x510) = *puVar35 ^ uVar28 ^ uVar37;
  lVar42 = DAT_182671c40;
  lVar2 = *(longlong *)(DAT_182671c40 + -0x9a8);
  uVar37 = (*(ulonglong *)(lVar3 - (uVar31 ^ 0xe9bbfafe)) ^ uVar37) >> ((local_c0 ^ 0xbc) & 0x3f) ^
           uVar33;
  bVar20 = (byte)DAT_182671f94 ^ (byte)uVar37;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = uVar37;
  *(byte *)(lVar42 + -0x729) = bVar20 ^ (byte)uVar6;
  uVar37 = CONCAT44(uVar25,DAT_182671c50);
  *(ulonglong *)(lVar42 + -0x2b0) =
       (uVar33 ^ *(ulonglong *)(lVar42 + -0x3d8)) >> ((local_c0 ^ 0x87) & 0x3f);
  uVar13 = DAT_182671c84;
  uVar24 = (ulonglong)DAT_182671c84;
  pbVar23 = (byte *)(lVar2 + 0x16 + (uVar37 ^ 0x38f168dc70009040) * 0x20);
  *(ulonglong *)(lVar42 + -0x2a8) = (ulonglong)pbVar23 ^ uVar27;
  *(ulonglong *)(lVar42 + -0xb20) =
       *(ulonglong *)(lVar42 - (uVar26 ^ 0xdc68fb68)) ^ CONCAT44(uVar5,uVar7) ^
       CONCAT44(uVar4,uVar4) ^ 0x771b37ef2023df8d;
  uVar4 = DAT_182671e30;
  *pbVar23 = *(byte *)(lVar42 - (uVar24 ^ 0x408bbc49)) ^ (byte)DAT_182671e0c ^ (byte)DAT_182671f94;
  lVar2 = DAT_182671c40;
  uVar37 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar42 - ((ulonglong)DAT_182671c4c ^ 0x53c03893)) =
       *(longlong *)(lVar42 + -0xc40) +
       ((CONCAT44(uVar12,uVar13) ^ 0xe9bbffee408bbb62) +
       (CONCAT44(uVar21,uVar7) ^ 0xeeffbbe9d4b8588c) * 4) * 8 ^ uVar37;
  uVar9 = DAT_182671f88;
  uVar4 = DAT_182671d14;
  uVar6 = DAT_182671c5c;
  uVar33 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(lVar42 - (uVar19 ^ 0x60bb86c8)) =
       *(ulonglong *)(*(ulonglong *)(lVar42 + -0x140) ^ uVar37) ^ uVar33 ^ uVar28;
  uVar8 = DAT_182671c70;
  uVar27 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar2 + -0x6e8)) =
       CONCAT44(uVar10,uVar6) ^ 0xdc7e461dd46241fb;
  *(ulonglong *)(lVar2 + -0x380) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xd88)) >> ((bVar30 ^ 0xe4) & 0x3f) ^ CONCAT44(uVar9,uVar9)
  ;
  bVar20 = *(byte *)(lVar2 - ((ulonglong)uVar14 ^ 0x70c0fb50)) ^ (byte)uVar9 ^ (byte)DAT_182671ef0;
  *(byte *)(lVar2 + -0xc71) = bVar20;
  uVar37 = (ulonglong)DAT_182671d78;
  *(ulonglong *)(lVar2 + -0x920) =
       -0x5f1b1f5cd3d5771d - (CONCAT44(uVar5,uVar22) ^ 0x12461e41208e2a84);
  uVar4 = DAT_182671c48;
  pbVar23 = (byte *)((CONCAT44(uVar8,uVar12) ^ 0xd8eeb82de9bbfff9) +
                     (CONCAT44(uVar21,uVar5) ^ 0xeeffbbe960bb8b40) * 0x20 +
                    *(longlong *)(lVar2 + -0x9a8));
  *(ulonglong *)(lVar2 + -0xbe8) = (ulonglong)pbVar23 ^ uVar37;
  bVar20 = (byte)DAT_182671e0c ^ bVar20;
  *(ulonglong *)(lVar2 + -0xf0) = uVar40 ^ CONCAT44(uVar5,uVar21) ^ 0x529e72264c04c9ad;
  lVar2 = DAT_182671c40;
  *pbVar23 = bVar20 ^ (byte)DAT_182671ef0;
  uVar15 = DAT_182671cec;
  uVar9 = DAT_182671c74;
  uVar37 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar2 + -0x40) =
       *(longlong *)(lVar2 + -0xc40) +
       ((CONCAT44(DAT_182671c74,uVar4) ^ 0xd868f13850403113) +
       (CONCAT44(uVar8,uVar13) ^ 0xd8eeb82d408bbb60) * 4) * 8 ^ uVar37;
  uVar11 = DAT_182671c7c;
  uVar33 = CONCAT44(uVar15,uVar15);
  local_c8 = (byte)uVar22;
  uVar37 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0x408bbb20)) ^ uVar37) ^ uVar33 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x7e8) = uVar37;
  uVar24 = (ulonglong)DAT_182671e9c;
  *(ulonglong *)(lVar2 + -0x828) = (uVar37 ^ uVar33) >> (local_c8 & 0x3f) ^ uVar28;
  bVar20 = *(byte *)(lVar2 - (uVar26 ^ 0xdc68f910)) ^ (byte)DAT_182671f00 ^ (byte)DAT_182671e64;
  *(byte *)(lVar2 + -0x7c2) = bVar20;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x778) =
       (CONCAT44(uVar11,uVar10) ^ 0x408bbb60dc68f138) * 0x20 +
       (CONCAT44(uVar25,uVar4) ^ 0x38f168dc50403108) + *(longlong *)(DAT_182671c40 + -0x9a8) ^
       uVar24;
  uVar37 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar31 ^ 0xe9bbf896)) ^ uVar24) =
       (byte)DAT_182671e0c ^ (byte)DAT_182671e64 ^ bVar20;
  uVar15 = DAT_182671cbc;
  puVar35 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xc40) + 0x18 +
            (CONCAT44(uVar4,uVar7) ^ 0x50403110d4b8588c) * 0x20);
  *(ulonglong *)(lVar2 + -0x668) = (ulonglong)puVar35 ^ uVar37;
  uVar4 = DAT_182671dd4;
  uVar5 = DAT_182671c90;
  uVar24 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0xc90) =
       (CONCAT44(uVar10,uVar9) ^ 0xf09bdbcc06d1ee41) <<
       ((*(byte *)(lVar2 + -0x228) ^ (byte)uVar16) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar33 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x70c0f9c0)) = *puVar35 ^ uVar33 ^ uVar28;
  bVar30 = (byte)uVar15 ^ (byte)DAT_182671ebc;
  uVar37 = (ulonglong)DAT_182671f84;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x4a53f798)) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x110)) >> (((byte)uVar6 ^ 0x35) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  bVar30 = bVar30 ^ *(byte *)(lVar2 + -0xc38);
  *(byte *)(lVar2 + -0xc9c) = bVar30;
  uVar6 = DAT_182671da4;
  uVar4 = DAT_182671c68;
  pbVar23 = (byte *)((CONCAT44(uVar14,uVar5) ^ 0x70c0f8d04a53fbb9) +
                     (CONCAT44(uVar10,uVar9) ^ 0xdc68f138d868f138) * 0x20 +
                    *(longlong *)(lVar2 + -0x9a8));
  bVar20 = (byte)DAT_182671e0c ^ (byte)DAT_182671ebc;
  *(ulonglong *)(lVar2 + -0x978) = (ulonglong)pbVar23 ^ uVar37;
  *pbVar23 = bVar20 ^ bVar30;
  uVar5 = DAT_182671ce8;
  uVar24 = (ulonglong)DAT_182671ce8;
  puVar35 = (ulonglong *)
            ((CONCAT44(uVar4,uVar25) ^ 0xf8f9f9f838f168dc) * 0x20 +
            *(longlong *)(lVar2 + -0xc40) + 0x18);
  uVar37 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar2 + -0xb88) = (ulonglong)puVar35 ^ CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar2 + -0xb08) = uVar37 ^ *puVar35 ^ uVar28;
  bVar20 = (byte)uVar6 ^ (byte)DAT_182671e60;
  uVar24 = ((ulonglong)(uVar5 >> 0x10) | uVar24 << 0x10) ^
           *(ulonglong *)(lVar2 - (uVar36 ^ 0x40b80308)) >> 0x10 ^ CONCAT44(uVar6,uVar6);
  uVar37 = (ulonglong)DAT_182671e7c;
  *(ulonglong *)(lVar2 + -0x888) = uVar24;
  uVar33 = CONCAT44(uVar21,DAT_182671c54);
  *(byte *)(lVar2 - (uVar27 ^ 0xd8eebb9f)) = bVar20 ^ (byte)uVar24;
  pbVar23 = (byte *)((uVar33 ^ 0xeeffbbe9f81a976a) * 0x20 +
                     (CONCAT44(uVar4,uVar21) ^ 0xf8f9f9f8eeffbbf3) + *(longlong *)(lVar2 + -0x9a8));
  bVar20 = *(byte *)(lVar2 + -0x3b2) ^ (byte)DAT_182671e0c ^ (byte)DAT_182671e60;
  *(ulonglong *)(lVar2 + -0xf8) = (ulonglong)pbVar23 ^ uVar37;
  *pbVar23 = bVar20;
  uVar4 = DAT_182671f64;
  uVar37 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(ulonglong *)(lVar2 + -0xd50) =
       *(longlong *)(lVar2 + -0xc40) +
       ((CONCAT44(uVar11,uVar14) ^ 0x408bbb6070c0f8d3) +
       (CONCAT44(uVar12,DAT_182671c64) ^ 0xe9bbffeedefbfbac) * 4) * 8 ^ uVar37;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xeeffbd69)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x60bb8610)) ^ uVar37) ^
       CONCAT44(uVar4,uVar4) ^ uVar28;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar25) * 4) = uVar17;
  return;
}



############ FUN_ 180f94410 size=4032 ############

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

void FUN_180f94410(void)

{
  undefined8 uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  byte bVar14;
  uint uVar15;
  uint *puVar16;
  uint uVar17;
  byte *pbVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint *puVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint *puVar34;
  
  uVar29 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c50;
  uVar9 = ~DAT_182671c50;
  uVar19 = (ulonglong)uVar9;
  uVar10 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar9 ^ 0x874768a8) + (longlong)DAT_182672250) ^
           DAT_182671c50;
  uVar11 = *(uint *)(&DAT_182613220 + DAT_182672250) ^ DAT_182671c50;
  bVar14 = (byte)DAT_182671c50;
  DAT_182671c54 = uVar9;
  *(uint *)(DAT_182671c40 + -0x4ac) =
       (*(uint *)(DAT_182671c40 + -0x94c) ^ DAT_182671f04) << ((bVar14 ^ 0x4e) & 0x1f) ^
       DAT_182671e18;
  puVar26 = (uint *)(lVar2 - (uVar19 ^ 0x87476c0c));
  uVar22 = CONCAT44(uVar9,uVar29);
  uVar17 = (*(uint *)(lVar2 + -0x61c) ^ DAT_182671f70) - (*puVar26 ^ DAT_182671e18) ^ DAT_182671f90;
  *(ulonglong *)(lVar2 + -0x4b8) = uVar22 ^ 0x316eacaed99ab33c | *(ulonglong *)(lVar2 + -0x960);
  uVar12 = *(uint *)(lVar2 + -0x1c8) ^ DAT_182671d38;
  *(uint *)(lVar2 + -0x634) = uVar17;
  *(uint *)(lVar2 + -0x670) = uVar12 * (uVar17 ^ DAT_182671f90) ^ DAT_182671d6c;
  *(uint *)(lVar2 - ((ulonglong)uVar29 ^ 0x78b897cb)) =
       (*(uint *)(lVar2 - (uVar19 ^ 0x874761ec)) ^ DAT_182671f04) * (uVar29 ^ 0x78b89754) ^
       DAT_182671e54;
  puVar16 = (uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x87476ed0));
  uVar27 = (*(uint *)(lVar2 + -0x94) ^ DAT_182671e54) + (*puVar16 ^ DAT_182671d6c) ^ DAT_182671e0c;
  *(uint *)(lVar2 + -0x6c0) = uVar27;
  uVar27 = uVar27 ^ DAT_182671e0c;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (CONCAT44(uVar9,uVar9) ^ 0xae7c8cca9ab4d7eb) - (uVar22 ^ 0x8712c6cc3c6408b2);
  uVar28 = DAT_182671e68;
  uVar30 = DAT_182671e20;
  uVar17 = DAT_182671c58;
  uVar4 = DAT_182671c4c;
  uVar12 = uVar27 << ((bVar14 ^ 0x52) & 0x1f) ^ DAT_182671d3c;
  uVar27 = uVar27 >> ((bVar14 ^ 0x4c) & 0x1f) ^ DAT_182671ebc;
  uVar13 = (ulonglong)DAT_182671c68;
  *(uint *)(lVar2 + -0x76c) = uVar12;
  uVar12 = uVar12 ^ DAT_182671d3c;
  *(uint *)(lVar2 + -0xae4) = uVar27;
  uVar27 = uVar27 ^ DAT_182671ebc;
  *(ulonglong *)(lVar2 + -0x920) =
       CONCAT44(uVar9,uVar9) ^ 0x1c5b0966f427d188 | *(ulonglong *)(lVar2 + -0xd88);
  uVar24 = DAT_182671df8 ^ DAT_182671db0;
  *(uint *)(lVar2 - (uVar13 ^ 0x818082d4)) = (uVar27 | uVar12) ^ DAT_182671db0;
  uVar24 = uVar24 ^ *(uint *)(lVar2 + -0x684);
  uVar15 = *(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4;
  uVar27 = *(uint *)(lVar2 + -0x1c8) ^ DAT_182671d38;
  *(uint *)(lVar2 + -0x9dc) = uVar24;
  uVar12 = DAT_182671c5c;
  uVar27 = uVar15 + uVar27 ^ DAT_182671d34;
  uVar24 = uVar24 ^ uVar28 ^ DAT_182671df8;
  *(uint *)(lVar2 + -0x54) = uVar27;
  *(uint *)(lVar2 + -0x644) = uVar27 ^ DAT_182671e34 ^ DAT_182671d34;
  uVar5 = DAT_182671c90;
  uVar15 = DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0x380) =
       (CONCAT44(DAT_182671c6c,uVar12) ^ 0x8fdab598449d0af5) - *(longlong *)(lVar2 + -0xd88);
  *(uint *)(lVar2 + -0x61c) =
       *(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x87476ee4)) ^ uVar30 ^ DAT_182671e34;
  *(uint *)(lVar2 + -0x4ac) = uVar24;
  *(longlong *)(lVar2 + -0x110) =
       *(longlong *)(lVar2 + -0x960) << ((byte)*(undefined8 *)(lVar2 + -0xbd8) & 0x3f);
  uVar13 = (ulonglong)DAT_182671d5c;
  *(ulonglong *)(lVar2 + -0xa08) =
       (CONCAT44(uVar29,uVar4) ^ 0x53df2aaddaf169d8) << (((byte)DAT_182671c88 ^ 0x9e) & 0x3f);
  uVar32 = DAT_182671cc4;
  uVar24 = DAT_182671c70;
  uVar27 = DAT_182671c68;
  uVar12 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar25 = DAT_182671cc4 & 0xff;
  pbVar18 = (byte *)((CONCAT44(uVar5,uVar29) ^ 0x8b08715178b8975f) * 0x20 +
                     (CONCAT44(uVar17,DAT_182671c48) ^ 0x1000400494b173d) +
                    *(longlong *)(DAT_182671c40 + -0x9a8));
  *(ulonglong *)(DAT_182671c40 + -0x170) = (ulonglong)pbVar18 ^ uVar13;
  *(byte *)(lVar2 - ((ulonglong)uVar24 ^ 0x5f97b9bb)) =
       *pbVar18 ^ (byte)uVar32 ^ (byte)DAT_182671e0c;
  uVar24 = DAT_182671cd4;
  uVar32 = *(byte *)(lVar2 - ((ulonglong)uVar27 ^ 0x81808593)) ^ uVar25 ^ DAT_182671d20;
  *(uint *)(lVar2 + -0x634) = uVar32;
  lVar2 = DAT_182671c40;
  uVar32 = uVar32 ^ DAT_182671d20;
  uVar29 = (*puVar26 ^ uVar28) + (uVar29 ^ 0xe4fa8541) ^ DAT_182671f64;
  uVar1 = *(undefined8 *)(DAT_182671c40 + -0x760);
  *(uint *)(DAT_182671c40 + -0x670) = uVar32 << 0x11 ^ uVar24;
  *(uint *)(lVar2 + -0x94c) = uVar29;
  uVar29 = uVar29 ^ DAT_182671f64;
  *(ulonglong *)(lVar2 + -0x5e8) = (uVar22 ^ 0x104775b736a29a95) >> ((byte)uVar1 & 0x3f);
  puVar34 = (uint *)(lVar2 - ((ulonglong)uVar27 ^ 0x81808220));
  uVar27 = uVar29 - (uVar24 ^ *puVar34) ^ DAT_182671f38;
  *(uint *)(lVar2 + -0x94) = uVar27;
  uVar29 = uVar32 * 0x16 ^ DAT_182671f24;
  *(uint *)(lVar2 + -0x6c0) =
       (uVar27 ^ DAT_182671f38) * (*(uint *)(lVar2 + -0x61c) ^ uVar30) ^ DAT_182671de4;
  uVar13 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar2 - ((ulonglong)uVar5 ^ 0x8b08763d)) = uVar29;
  uVar27 = DAT_182671d90;
  uVar32 = DAT_182671c8c;
  uVar22 = (ulonglong)DAT_182671c8c;
  bVar14 = (byte)DAT_182671c78;
  *(uint *)(lVar2 - (uVar13 ^ 0x1000ef4)) =
       (*(uint *)(lVar2 + -0x6c0) ^ DAT_182671de4) + (*(uint *)(lVar2 + -0x76c) ^ DAT_182671f24) ^
       DAT_182671ee0;
  uVar29 = *(uint *)(lVar2 + -0xae4) ^ DAT_182671ee0;
  *(uint *)(lVar2 + -0x1c8) = uVar29 << ((bVar14 ^ 0xad) & 0x1f) ^ DAT_182671f10;
  *(uint *)(lVar2 - (uVar22 ^ 0x1000054)) = uVar29 >> (((byte)uVar17 ^ 0x13) & 0x1f) ^ uVar27;
  uVar29 = *(uint *)(lVar2 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar2 + -0x684) =
       (*(uint *)(lVar2 + -0x54) ^ uVar27 | *(uint *)(lVar2 + -0x1c8) ^ DAT_182671f10) ^
       DAT_182671fb4;
  uVar31 = DAT_182671ea0;
  lVar3 = DAT_182671c40;
  uVar29 = (*(uint *)(lVar2 + -0x61c) ^ uVar30) + uVar29 ^ DAT_182671d44;
  *(uint *)(lVar2 + -0x644) = uVar29;
  *(uint *)(lVar2 + -0x9dc) = uVar29 ^ DAT_182671d44 ^ uVar28;
  uVar29 = DAT_182671c74;
  puVar21 = (uint *)(lVar2 - ((ulonglong)uVar5 ^ 0x8b0875fd));
  uVar13 = (ulonglong)DAT_182671c74;
  *puVar21 = (*(uint *)(lVar3 + -0x54) ^ uVar27) + 0x1eda7f80;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0xebb17bd2)) =
       *(uint *)(lVar3 - (uVar13 ^ 0x9e72b76f)) ^ DAT_182671dac ^ DAT_182671fb4;
  uVar24 = *(uint *)(lVar3 + -0x94c) ^ DAT_182671eb4 ^ DAT_182671dac;
  *(uint *)(lVar3 + -0x670) = *(uint *)(lVar3 + -0x9dc) ^ uVar31 ^ uVar28;
  uVar30 = DAT_182671e0c;
  uVar27 = DAT_182671c60;
  uVar22 = (ulonglong)DAT_182671e08;
  *(uint *)(lVar3 - ((ulonglong)uVar12 ^ 0x494b17bf)) = uVar24;
  bVar14 = (byte)DAT_182671cb0;
  uVar24 = DAT_182671c7c;
  uVar13 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0x5a0) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_182671c90 ^ 0x8b0878f9)) +
       (CONCAT44(uVar29,uVar12) ^ 0x9e72b1eb494b172b) * 0x20 +
       (CONCAT44(uVar12,DAT_182671c5c) ^ 0x494b172b01000001) ^ uVar22;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar13 ^ 0xff3c562f)) ^ uVar22) ^ bVar14 ^ (byte)uVar30;
  uVar5 = DAT_182671c84;
  uVar22 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar24 ^ 0xff3c5fb7)) =
       0x2ffd9bb185355463 - (CONCAT44(DAT_182671c84,DAT_182671c64) ^ 0x9c4203dcab0d7dda);
  lVar2 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x634) = (bVar14 ^ *(byte *)(DAT_182671c40 + -0x1c3)) ^ DAT_182671e30;
  uVar29 = DAT_182671c68;
  uVar30 = (*(uint *)(lVar2 - ((ulonglong)uVar24 ^ 0xff3c531b)) ^ DAT_182671eb4) +
           (uVar17 ^ 0x9d42161e) ^ uVar30;
  *(uint *)(lVar2 + -0x6c0) = uVar30;
  lVar3 = DAT_182671c40;
  uVar30 = uVar30 ^ DAT_182671e0c;
  uVar29 = (*(uint *)(lVar2 - ((ulonglong)uVar27 ^ 0x1000224)) ^ DAT_182671e30) <<
           (((byte)uVar29 ^ 0x41) & 0x1f) ^ DAT_182671d8c;
  *(uint *)(lVar2 + -0x76c) = uVar29;
  uVar24 = DAT_182671c94;
  uVar23 = (ulonglong)DAT_182671c94;
  uVar30 = uVar30 - (uVar29 ^ DAT_182671d8c) ^ DAT_182671d80;
  *(int *)(lVar2 + -0x1c8) =
       (int)(*(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0x1000ae4)) ^ DAT_182671ee0) >>
       (((byte)uVar32 ^ 0x1c) & 0x1f);
  uVar29 = DAT_182671c64;
  *(uint *)(lVar2 - (uVar23 ^ 0x7ebcd1c3)) = uVar30;
  uVar6 = DAT_182671f20;
  uVar30 = DAT_182671cc0;
  uVar28 = (*(uint *)(lVar2 - (uVar19 ^ 0x87476ebc)) ^ DAT_182671d80) * (uVar31 ^ *puVar34);
  uVar13 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar2 + -0x888) =
       CONCAT44(uVar24,uVar29) ^ *(ulonglong *)(lVar2 + -0xda8) ^ 0x6d8608df69870da4;
  uVar29 = *(uint *)(lVar2 + -0x634) ^ DAT_182671f7c;
  *(uint *)(lVar2 + -0x644) = uVar28 ^ uVar6;
  uVar25 = DAT_182671e30;
  *(uint *)(lVar3 + -0x54) = uVar29 ^ DAT_182671e30;
  lVar2 = DAT_182671c40;
  uVar28 = (*(uint *)(lVar3 - (uVar13 ^ 0x1000054)) ^ DAT_182671f7c) + uVar28;
  *(uint *)(DAT_182671c40 + -0x4ac) = uVar28 ^ uVar30;
  *(uint *)(lVar2 + -0x684) = uVar28 * 0x2000 ^ DAT_182671e80;
  lVar2 = DAT_182671c40;
  uVar29 = (*puVar21 ^ uVar30) >> (((byte)uVar27 ^ 3) & 0x1f) ^ DAT_182671db4;
  puVar21 = (uint *)(DAT_182671c40 - (uVar23 ^ 0x7ebcd15b));
  *(uint *)(DAT_182671c40 + -0x9dc) = uVar29;
  lVar3 = DAT_182671c40;
  *(uint *)(lVar2 + -0x94c) = (*puVar21 ^ DAT_182671e80 | uVar29 ^ DAT_182671db4) ^ DAT_182671e54;
  uVar7 = DAT_182671fac;
  uVar24 = DAT_182671c80;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xfe3c59ef)) =
       (CONCAT44(DAT_182671c80,uVar9) ^ 0xdc659ac63f709fd4) <<
       ((byte)*(undefined8 *)(lVar3 + -0x3d8) & 0x3f);
  bVar14 = (byte)DAT_182671ca0;
  uVar4 = DAT_182671c4c;
  *(uint *)(lVar3 + -0x94) =
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar3 + -0x670) ^ uVar31) ^
       DAT_182671f9c;
  uVar29 = DAT_182671c5c;
  uVar30 = *(uint *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x5f97b8ec)) ^ DAT_182671da0 ^
           DAT_182671f9c;
  *(uint *)(lVar3 + -0x1c8) = uVar30;
  uVar13 = (ulonglong)DAT_182671cc4;
  uVar28 = *(uint *)(lVar3 - (uVar20 ^ 0x78b89e13)) ^ DAT_182671e70 ^ DAT_182671e54;
  *(uint *)(lVar3 + -0x6c0) = uVar30 ^ uVar7 ^ DAT_182671da0;
  *(uint *)(lVar3 + -0xae4) = uVar28;
  uVar31 = uVar28 ^ DAT_182671d24 ^ DAT_182671e70;
  uVar22 = CONCAT44(uVar24,DAT_182671c48);
  *(uint *)(lVar3 + -0x76c) = uVar31;
  uVar28 = DAT_182671e0c;
  pbVar18 = (byte *)((CONCAT44(uVar4,uVar29) ^ 0x7f7f7fb001000000) * 0x20 +
                     (uVar22 ^ 0x1000410494b1727) + *(longlong *)(lVar3 + -0x9a8));
  *(ulonglong *)(lVar3 + -0xc20) = (ulonglong)pbVar18 ^ uVar13;
  uVar30 = DAT_182671d10;
  uVar24 = DAT_182671c6c;
  bVar8 = *pbVar18 ^ bVar14 ^ (byte)uVar28;
  uVar29 = (bVar14 ^ bVar8) ^ DAT_182671d10;
  *(byte *)(lVar3 + -0x1c3) = bVar8;
  uVar31 = uVar31 ^ DAT_182671d24;
  *(uint *)(lVar3 + -0x61c) = uVar29;
  uVar28 = DAT_182671d64;
  uVar29 = DAT_182671c64;
  lVar2 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c64;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c64 ^ 0x7b053139)) =
       uVar31 + (uVar24 ^ 0x63bdede1) ^ DAT_182671d64;
  lVar3 = DAT_182671c40;
  puVar21 = (uint *)(DAT_182671c40 + -0x634);
  *(uint *)(DAT_182671c40 + -0x644) =
       (*(uint *)(lVar2 + -0x61c) ^ uVar30) << (((byte)uVar4 ^ 0xa1) & 0x1f) ^ DAT_182671dc0;
  uVar28 = (uVar28 ^ *puVar21) - (*(uint *)(lVar3 - (uVar23 ^ 0x7ebcd19b)) ^ DAT_182671dc0) ^
           DAT_182671d20;
  *(uint *)(lVar3 + -0x54) = uVar28;
  uVar24 = _DAT_182671cf0;
  *(uint *)(lVar3 + -0x4ac) =
       (*(uint *)(lVar3 + -0x6c0) ^ uVar7) * (uVar28 ^ DAT_182671d20) ^ _DAT_182671cf0;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x78b897af)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar27 ^ 0x1000500)) -
       (CONCAT44(uVar5,uVar17) ^ 0xa09116ea9e47d185);
  uVar28 = DAT_182671d90;
  bVar14 = (byte)DAT_182671c5c;
  uVar27 = (*(uint *)(lVar3 + -0x61c) ^ uVar30) * (DAT_182671c88 ^ 0xebb17292) ^ DAT_182671d58;
  *(uint *)(lVar3 + -0x684) = uVar27;
  uVar5 = DAT_182671d28;
  uVar24 = (uVar27 ^ DAT_182671d58) + (uVar24 ^ *(uint *)(lVar3 + -0x4ac));
  *(uint *)(lVar3 + -0x9dc) = uVar24 ^ uVar28;
  uVar27 = DAT_182671c74;
  *puVar16 = uVar24 << ((bVar14 ^ 0xd) & 0x1f) ^ uVar5;
  uVar22 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar3 + -0x94) =
       (*(uint *)(lVar3 + -0x9dc) ^ uVar28) >> (((byte)uVar27 ^ 0xf8) & 0x1f) ^ DAT_182671e48;
  uVar27 = DAT_182671c88;
  uVar13 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x8b0876b9)) =
       *(ulonglong *)(lVar3 + -0xb20) | *(ulonglong *)(lVar3 + -0x2b0);
  uVar24 = *(uint *)(lVar3 + -0x94) ^ DAT_182671e48;
  *(ulonglong *)(lVar3 + -0x828) = *(ulonglong *)(lVar3 + -0xa50) & *(ulonglong *)(lVar3 + -0x7e8);
  *(uint *)(lVar3 + -0x94c) = (uVar5 ^ *(uint *)(lVar3 + -0x670) | uVar24) ^ uVar25;
  uVar5 = DAT_182671e08;
  *(uint *)(lVar3 - (uVar13 ^ 0xebb17356)) =
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar3 + -0x6c0) ^ uVar7) ^
       DAT_182671f68;
  uVar13 = (ulonglong)DAT_182671de0;
  *(ulonglong *)(lVar3 + -0xa70) = *(ulonglong *)(lVar3 + -0xa60) ^ 0xb14c4e59920cf53d;
  *(uint *)(lVar3 + -0xae4) = *(uint *)(lVar3 + -0x1c8) ^ DAT_182671f68 ^ DAT_182671ee0;
  *(uint *)(lVar3 + -0x76c) = DAT_182671e2c ^ *(uint *)(lVar3 + -0x94c) ^ uVar25;
  uVar24 = DAT_182671dd0;
  *(uint *)(lVar3 + -0x634) =
       *(uint *)(lVar3 - (uVar33 ^ 0x7b053de9)) ^ DAT_182671dd0 ^ DAT_182671ee0;
  *(uint *)(lVar3 + -0x644) =
       *(uint *)(lVar3 - ((ulonglong)DAT_182671c68 ^ 0x8180833c)) ^ DAT_182671cdc ^ DAT_182671e2c;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x87476360)) =
       (CONCAT44(uVar17,uVar32) ^ 0x100040001000000) * 0x20 + *(longlong *)(lVar3 + -0x9a8) + 0x17 ^
       uVar13;
  bVar14 = *(byte *)(*(ulonglong *)(lVar3 + -0xbc0) ^ uVar13) ^ (byte)uVar6 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar3 + -0x1c3) = bVar14;
  uVar17 = DAT_182671ca8;
  uVar13 = (ulonglong)DAT_182671c5c;
  uVar29 = (*(uint *)(lVar3 + -0x644) ^ DAT_182671cdc) + (uVar29 ^ 0xe7472513) ^ DAT_182671fa4;
  *(uint *)(lVar3 + -0x54) = (uint)bVar14 ^ uVar6 & 0xff ^ uVar5;
  *(uint *)(lVar3 + -0x61c) = uVar29;
  uVar29 = uVar29 ^ DAT_182671fa4;
  *(longlong *)(lVar3 + -0x30) = *(longlong *)(lVar3 - (uVar13 ^ 0x1000888)) << 0x3f;
  uVar13 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar3 + -0x4ac) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_182671c7c ^ 0xff3c53db)) ^ uVar5) << 0x11 ^ DAT_182671e74;
  uVar29 = uVar29 - (*puVar26 ^ DAT_182671e74);
  *(uint *)(lVar3 + -0x684) = uVar29 ^ DAT_182671ce0;
  *(uint *)(lVar3 - (uVar13 ^ 0x1000dcc)) = (uVar24 ^ *(uint *)(lVar3 + -0x634)) * uVar29 ^ uVar17;
  uVar29 = DAT_182671eb0;
  uVar24 = (*(uint *)(lVar3 + -0x54) ^ uVar5) * 0x17 ^ DAT_182671f94;
  *(uint *)(lVar3 + -0x670) = uVar24;
  uVar17 = (uVar17 ^ *(uint *)(lVar3 + -0x9dc)) + (uVar24 ^ DAT_182671f94);
  *(uint *)(lVar3 + -0x94) = uVar17 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x8f0) =
       CONCAT44(uVar12,uVar27) ^ 0x223067ebd63f3aff |
       CONCAT44(uVar15,DAT_182671c70) ^ 0x771ecbc1570b8074;
  uVar17 = uVar17 << (((byte)DAT_182671c94 ^ 0xd2) & 0x1f) ^ DAT_182671e40;
  bVar14 = (byte)DAT_182671c78;
  *(uint *)(lVar3 + -0x6c0) = uVar17;
  uVar17 = uVar17 ^ DAT_182671e40;
  uVar12 = (*(uint *)(lVar3 + -0x94) ^ uVar29) >> ((bVar14 ^ 0xb3) & 0x1f) ^ DAT_182671f2c;
  *(uint *)(lVar3 + -0x1c8) = uVar12;
  *(uint *)(lVar3 + -0x94c) = (uVar12 ^ DAT_182671f2c | uVar17) ^ DAT_182671d2c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar11 * 4) = uVar10;
  return;
}



############ FUN_ 180f969c0 size=5784 ############

void FUN_180f969c0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  ulonglong *puVar9;
  ulonglong *puVar10;
  byte bVar11;
  longlong lVar12;
  longlong lVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  byte bVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte bVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong *puVar58;
  byte local_140;
  byte local_130;
  byte local_108;
  
  uVar20 = DAT_182671c70;
  uVar19 = DAT_182671c68;
  uVar18 = DAT_182671c64;
  uVar17 = DAT_182671c60;
  uVar16 = DAT_182671c54;
  uVar15 = DAT_182671c50;
  uVar14 = DAT_182671c48;
  uVar49 = (ulonglong)DAT_182671c50;
  uVar57 = (ulonglong)DAT_182671c70;
  uVar38 = (ulonglong)DAT_182671c60;
  uVar29 = (ulonglong)DAT_182671c68;
  uVar34 = (ulonglong)DAT_182671c48;
  uVar35 = DAT_182671c50 - DAT_182671c68;
  uVar50 = (ulonglong)DAT_182671c54;
  uVar45 = DAT_182671c70 ^ DAT_182671c48;
  uVar42 = DAT_182671c60 - DAT_182671c54;
  uVar25 = DAT_182671c80 * DAT_182671c64;
  uVar41 = (ulonglong)uVar25;
  uVar53 = *(uint *)(&DAT_182613218 + DAT_182672258) ^ DAT_182671c64;
  uVar26 = *(uint *)(&DAT_182613210 + (uVar41 ^ 0x4c0e4f39) + (longlong)DAT_182672258) ^
           DAT_182671c80;
  puVar55 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0x7b2d7043));
  uVar56 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x888);
  uVar31 = (ulonglong)uVar42;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x408);
  DAT_182671c6c = uVar42;
  DAT_182671c88 = uVar35;
  DAT_182671c8c = uVar45;
  DAT_182671c90 = uVar25;
  *puVar1 = CONCAT44(DAT_182671c60,uVar42) ^ 0x2ae26034ba1a32f9 | uVar56 ^ *puVar55;
  lVar12 = DAT_182671c40;
  uVar44 = (ulonglong)uVar45;
  uVar39 = (CONCAT44(DAT_182671e78,DAT_182671e78) ^ *puVar2) >> (((byte)uVar17 ^ 0xff) & 0x3f);
  puVar6 = (ulonglong *)(DAT_182671c40 + -0xa70);
  *puVar6 = uVar39 ^ CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar46 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar27 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar39 = (*(ulonglong *)(lVar12 - ((ulonglong)uVar20 ^ 0x8abe8e13)) ^ uVar46 | uVar39) ^ uVar27;
  uVar43 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar12 + -0xc18) = uVar39;
  puVar7 = (ulonglong *)(lVar12 + -0xb20);
  puVar47 = (ulonglong *)(lVar12 - ((ulonglong)uVar19 ^ 0x2fc61afc));
  uVar39 = uVar43 ^ uVar27 ^ uVar56 ^ uVar39 ^ *puVar47;
  bVar24 = (byte)uVar25;
  *puVar7 = uVar39;
  uVar23 = DAT_182671f1c;
  uVar21 = DAT_182671e34;
  uVar22 = DAT_182671de4;
  uVar52 = (ulonglong)DAT_182671e34;
  uVar36 = CONCAT44(DAT_182671e34,DAT_182671e34);
  bVar11 = (byte)uVar42;
  *(ulonglong *)(lVar12 + -0x7e8) =
       (CONCAT44(uVar14,uVar15) ^ 0xc63ce731772dcf9e) << ((bVar24 ^ 0xd) & 0x3f);
  uVar32 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar12 - (uVar50 ^ 0x7b2d79eb)) =
       (CONCAT44(uVar22,uVar22) ^ *(ulonglong *)(lVar12 + -0x760)) + (uVar43 ^ uVar39) ^ uVar32;
  uVar28 = (uVar43 ^ *puVar7) << (bVar11 & 0x3f);
  puVar8 = (ulonglong *)(lVar12 + -0x7c0);
  *puVar8 = uVar28 ^ CONCAT44(DAT_182671ccc,DAT_182671ccc);
  bVar51 = (byte)uVar20;
  puVar9 = (ulonglong *)(lVar12 + -0x110);
  uVar43 = (uVar43 ^ *puVar7) >> ((bVar51 ^ 199) & 0x3f);
  *puVar9 = uVar43 ^ uVar36;
  lVar13 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  puVar10 = (ulonglong *)(lVar12 + -0xa50);
  uVar39 = *(ulonglong *)(DAT_182671c40 + -0x2b0);
  *puVar10 = (uVar43 | uVar28) ^ uVar27;
  uVar42 = DAT_182671f8c;
  uVar22 = DAT_182671d84;
  uVar54 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  puVar58 = (ulonglong *)(lVar13 - (uVar44 ^ 0xd896f5c0));
  *(ulonglong *)(lVar13 + -0x4b8) = uVar39 ^ uVar54 ^ uVar27 ^ uVar32 ^ *puVar58;
  uVar43 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar13 + -0x380) =
       *(ulonglong *)(CONCAT44(uVar22,uVar22) ^ *(ulonglong *)(lVar13 + -0x138)) ^ uVar43;
  lVar12 = DAT_182671c40;
  puVar40 = (ulonglong *)(lVar13 + -0xb18);
  uVar30 = CONCAT44(DAT_182671d44,DAT_182671d44);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0x828);
  puVar4 = (ulonglong *)(DAT_182671c40 + -0xb08);
  uVar48 = (*puVar40 ^ uVar56) + (CONCAT44(uVar42,uVar42) ^ *(ulonglong *)(DAT_182671c40 + -0x828))
           ^ uVar30;
  *puVar4 = uVar48;
  puVar5 = (ulonglong *)(lVar12 + -0x628);
  *puVar5 = (CONCAT44(uVar42,uVar42) ^ *puVar3) << 0x39 ^ uVar43;
  uVar27 = ((ulonglong)uVar42 << 0x19 | (ulonglong)(uVar42 >> 7)) ^
           *(ulonglong *)(DAT_182671c40 + -0x828) >> 7;
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xf0);
  *puVar3 = uVar27 ^ CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar28 = CONCAT44(DAT_182671e68,DAT_182671e68);
  uVar27 = (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0xefbf99e7)) ^ uVar43 | uVar27) ^ uVar28;
  *puVar1 = uVar27;
  uVar27 = uVar28 ^ uVar48 ^ uVar30 ^ uVar36 ^ uVar27;
  *puVar2 = uVar27;
  *puVar6 = (uVar56 ^ *puVar55) >> (((byte)uVar21 ^ (byte)uVar27) & 0x3f);
  lVar12 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c80;
  puVar55 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  *puVar55 = (uVar36 ^ uVar27) + (uVar39 ^ uVar32) ^ uVar46;
  uVar22 = DAT_182671cdc;
  uVar32 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  puVar33 = (ulonglong *)(lVar12 - (uVar29 ^ 0x2fc61dfc));
  *puVar33 = (*(ulonglong *)(lVar12 - (uVar28 ^ 0x74b17dcb)) ^ uVar36) << ((bVar11 ^ 99) & 0x3f) ^
             uVar32;
  uVar23 = DAT_182671dfc;
  lVar12 = DAT_182671c40;
  uVar27 = (*puVar2 >> 0x20 ^ uVar52) >> 9;
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       *puVar5 ^ uVar43 | CONCAT44(uVar35,uVar25) ^ 0x71ed5d9735af5dd0;
  *(ulonglong *)(lVar12 + -0x7e8) = uVar27 ^ CONCAT44(uVar22,uVar22);
  uVar21 = DAT_182671c80;
  uVar39 = CONCAT44(uVar23,uVar23);
  uVar27 = (uVar27 | uVar32 ^ *(ulonglong *)(lVar12 + -0xc18)) ^ uVar39;
  *puVar7 = uVar27;
  uVar32 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar12 - ((ulonglong)DAT_182671c64 ^ 0xb8169f63)) =
       uVar32 ^ uVar27 ^ uVar39 ^ *puVar55 ^ uVar46;
  uVar39 = uVar54 ^ *(ulonglong *)(lVar12 + -0x4b8);
  uVar52 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *puVar9 = (*puVar4 ^ uVar30) + uVar39 ^ uVar52;
  uVar22 = DAT_182671cec;
  local_108 = (byte)uVar45;
  uVar28 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *puVar58 = uVar39 << ((local_108 ^ 0xb8) & 0x3f) ^ uVar28;
  uVar39 = CONCAT44(uVar22,uVar22);
  *(ulonglong *)(lVar12 + -0x380) =
       (*(ulonglong *)(lVar12 - (uVar50 ^ 0x7b2d7fe3)) ^ uVar54) >> (((byte)uVar15 ^ 0xa6) & 0x3f) ^
       uVar39;
  *(ulonglong *)(lVar12 - (uVar49 ^ 0xb7fe3f96)) =
       CONCAT44(uVar16,uVar20) ^ *puVar6 ^ 0xb663067e1bec8c3c;
  uVar27 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar39 = (*(ulonglong *)(lVar12 - (uVar38 ^ 0xefbf9c4f)) ^ uVar39 |
           *(ulonglong *)(lVar12 - (uVar34 ^ 0x5228700b)) ^ uVar28) ^ uVar27;
  *puVar3 = uVar39;
  uVar22 = DAT_182671db8;
  uVar30 = CONCAT44(DAT_182671db8,DAT_182671db8);
  puVar58 = (ulonglong *)(lVar12 - (uVar49 ^ 0xb7fe36ae));
  uVar39 = uVar30 ^ uVar39 ^ uVar27 ^ uVar52 ^ *puVar58;
  *puVar1 = uVar39;
  lVar12 = DAT_182671c40;
  uVar48 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x4c0e4431)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x74922fac)) ^ uVar46) + (uVar30 ^ uVar39) ^ uVar48
  ;
  uVar49 = CONCAT44(DAT_182671f38,DAT_182671f38);
  local_140 = (byte)uVar14;
  *(ulonglong *)(lVar12 - (uVar57 ^ 0x8abe877b)) = (uVar30 ^ *puVar1) << 5 ^ uVar49;
  uVar39 = *(ulonglong *)(lVar12 + -0x2b0);
  uVar28 = (uVar30 ^ *puVar1) >> ((local_140 ^ 0x60) & 0x3f);
  *puVar2 = uVar28 ^ CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar27 = CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar39 = (uVar49 ^ uVar39 | uVar28) ^ uVar27;
  *puVar5 = uVar39;
  lVar13 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(lVar12 + -0x760) = uVar28 ^ uVar27 ^ uVar48 ^ *puVar40 ^ uVar39;
  *puVar33 = (uVar32 ^ *puVar8) + (uVar52 ^ *puVar9) ^ uVar56;
  *(ulonglong *)(lVar13 - (uVar29 ^ 0x2fc6160c)) =
       (CONCAT44(uVar20,uVar35) ^ 0xd6eb6cf32b24d958) + (*(ulonglong *)(lVar13 + -0xc18) ^ uVar56);
  uVar27 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(DAT_182671c40 - (uVar57 ^ 0x8abe8eeb)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0xd896f850)) ^ uVar32) <<
       ((local_108 ^ 0xb5) & 0x3f) ^ uVar27;
  uVar42 = DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x74b172cb)) =
       (uVar32 ^ *puVar8) >> (((byte)uVar19 ^ 0xff) & 0x3f) ^ uVar30;
  uVar23 = DAT_182671f78;
  puVar37 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar42 ^ 0x74b17b73));
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (uVar49 ^ *puVar37) <<
       ((*(byte *)(DAT_182671c40 - (uVar29 ^ 0x2fc61aec)) ^ (byte)uVar22) & 0x3f);
  lVar12 = DAT_182671c40;
  uVar39 = CONCAT44(uVar23,uVar23);
  uVar49 = (uVar27 ^ *puVar7 | uVar30 ^ *puVar4) ^ uVar39;
  *puVar6 = uVar49;
  uVar30 = CONCAT44(DAT_182671f14,DAT_182671f14);
  uVar27 = CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar39 = uVar30 ^ uVar49 ^ uVar39 ^ *(ulonglong *)(lVar12 + -0xc18) ^ uVar56;
  *(ulonglong *)(lVar12 + -0x828) = uVar39;
  puVar33 = (ulonglong *)(lVar12 - ((ulonglong)uVar35 ^ 0x8838265a));
  *puVar33 = (CONCAT44(uVar18,uVar15) ^ 0x84cf5c279777f765) + (uVar30 ^ uVar39) ^ uVar27;
  *puVar10 = *(ulonglong *)(CONCAT44(DAT_182671f44,DAT_182671f44) ^ *(ulonglong *)(lVar12 + -0x418))
             ^ uVar43;
  uVar30 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar12 - (uVar41 ^ 0x4c0e4fd9)) =
       (CONCAT44(uVar17,uVar19) ^ 0xb605ec0216de28dc) + (uVar48 ^ *puVar40) ^ uVar30;
  uVar39 = CONCAT44(uVar35,DAT_182671c64);
  uVar54 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *puVar55 = (*puVar3 ^ uVar30) + (*(ulonglong *)(lVar12 + -0x380) ^ uVar27) ^ uVar54;
  local_130 = (byte)uVar16;
  *puVar1 = (uVar39 ^ 0x510255bcc39b768e) << ((local_130 ^ 0x5b) & 0x3f);
  uVar30 = (*(ulonglong *)(lVar12 - (uVar31 ^ 0x749227f4)) ^ uVar27) << 0x19;
  *puVar2 = uVar30 ^ CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar39 = (*puVar33 ^ uVar27) >> ((local_140 ^ 0x7c) & 0x3f);
  *puVar5 = uVar39 ^ CONCAT44(DAT_182671e44,DAT_182671e44);
  lVar12 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *puVar9 = (uVar39 | uVar30) ^ uVar27;
  uVar46 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(lVar12 - (uVar31 ^ 0x7492239c)) =
       *(ulonglong *)(lVar12 - (uVar41 ^ 0x4c0e44f1)) ^ *puVar58 ^ uVar46 ^ uVar27 ^ uVar54;
  lVar13 = DAT_182671c40;
  *puVar8 = (CONCAT44(uVar18,uVar17) ^ 0xbb7427f2f7d751db) -
            (CONCAT44(uVar20,uVar15) ^ 0xe2ac024c6d913655);
  uVar22 = DAT_182671d5c;
  uVar57 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar27 = (*(ulonglong *)(lVar12 - (uVar38 ^ 0xefbf98af)) ^ uVar28) +
           (CONCAT44(uVar21,uVar19) ^ 0x8e1dd52a07d8355);
  *(ulonglong *)(lVar12 + -0x2b0) = uVar27 ^ uVar57;
  uVar23 = DAT_182671fa8;
  uVar39 = CONCAT44(uVar22,uVar22);
  *(ulonglong *)(lVar13 + -0x4b8) =
       (CONCAT44(uVar17,uVar15) ^ 0xf7beef7f35f601cb) + (*(ulonglong *)(lVar13 + -0xc18) ^ uVar56) ^
       uVar39;
  lVar12 = DAT_182671c40;
  uVar30 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x74b172e3)) =
       (*(ulonglong *)(lVar13 - (uVar31 ^ 0x749220cc)) ^ uVar39) + uVar27 ^ uVar30;
  *(ulonglong *)(lVar12 - (uVar38 ^ 0xefbf94c7)) =
       (CONCAT44(uVar16,uVar19) ^ 0xa66c04c9c66d7a6a) -
       (CONCAT44(uVar18,uVar14) ^ 0x1a9620418ac6d20a);
  uVar27 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar12 - (uVar44 ^ 0xd896f5e0)) =
       (*puVar37 ^ uVar57) << ((local_140 ^ 0x7a) & 0x3f) ^ uVar27;
  uVar22 = DAT_182671f60;
  uVar39 = (*(ulonglong *)(lVar12 - (uVar29 ^ 0x2fc61354)) ^ uVar57) >> ((local_108 ^ 0x8f) & 0x3f);
  *(ulonglong *)(lVar12 + -0x828) = uVar39 ^ CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar44 = CONCAT44(uVar22,uVar22);
  uVar39 = (*puVar6 ^ uVar27 | uVar39) ^ uVar44;
  *puVar10 = uVar39;
  uVar32 = CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar49 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar27 = *(ulonglong *)(DAT_182671c40 - (uVar50 ^ 0x7b2d707b)) ^ uVar39 ^ uVar32 ^ uVar44 ^ uVar30
  ;
  *puVar40 = uVar27;
  uVar36 = (uVar27 ^ uVar32) + (*puVar55 ^ uVar54) ^ uVar49;
  uVar52 = (uVar27 ^ uVar32) << ((bVar24 ^ 7) & 0x3f);
  *puVar3 = uVar36;
  uVar44 = (uVar27 ^ uVar32) >> ((bVar11 ^ 0x66) & 0x3f);
  *puVar1 = uVar52 ^ CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar44 ^ CONCAT44(DAT_182671f50,DAT_182671f50);
  lVar12 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671e20,DAT_182671e20);
  uVar52 = (uVar44 | uVar52) ^ uVar39;
  *puVar5 = uVar52;
  uVar56 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar44 = (ulonglong)DAT_182671c80;
  *puVar2 = uVar52 ^ uVar36 ^ uVar56 ^ uVar39 ^ uVar49;
  *(ulonglong *)(lVar12 - (uVar44 ^ 0x74b178d3)) =
       CONCAT44(uVar15,uVar14) ^ uVar27 ^ uVar32 ^ 0x4f410be01c9e3fee;
  *(ulonglong *)(lVar12 - (uVar38 ^ 0xefbf980f)) =
       (*puVar7 ^ uVar30) + (*(ulonglong *)(lVar12 + -0x7e8) ^ uVar46) ^ uVar43;
  uVar18 = DAT_182671c64;
  *(ulonglong *)(lVar12 + -0x760) = *puVar9 ^ *(ulonglong *)(lVar12 + -0x2b0) ^ uVar57;
  uVar30 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar44 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar12 + -0xc18) =
       (*(ulonglong *)(lVar12 - (uVar34 ^ 0x52287db3)) ^ uVar46) << ((bVar51 ^ 199) & 0x3f) ^ uVar30
  ;
  uVar39 = (*(ulonglong *)(lVar12 + -0x7e8) >> 0x20 ^ (ulonglong)DAT_182671ddc) >> 0x14;
  uVar27 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar12 + -0x4b8) = uVar39 ^ uVar44;
  *puVar4 = (*(ulonglong *)(lVar12 - ((ulonglong)uVar18 ^ 0xb81694bb)) ^ uVar30 | uVar39) ^ uVar27;
  uVar44 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar39 = *(ulonglong *)(lVar12 - ((ulonglong)uVar18 ^ 0xb81693ab)) ^ uVar43 ^ uVar44 ^ uVar27 ^
           *puVar8;
  *puVar6 = uVar39;
  lVar12 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671f04,DAT_182671f04);
  *(ulonglong *)(DAT_182671c40 + -0x828) = (*puVar3 ^ uVar49) + (uVar39 ^ uVar44) ^ uVar27;
  *puVar10 = (*(ulonglong *)(lVar12 - (uVar31 ^ 0x74922e04)) ^ uVar44) <<
             (((byte)uVar18 ^ 0x99) & 0x3f) ^ uVar54;
  *(ulonglong *)(lVar12 - (uVar50 ^ 0x7b2d7083)) =
       CONCAT44(uVar35,uVar15) ^ 0xfa85799d76c4cf20 | CONCAT44(uVar16,uVar19) ^ 0xcfc59ee6460eb4c5;
  uVar39 = (*puVar6 ^ uVar44) >> ((bVar51 ^ 0xcd) & 0x3f);
  *puVar1 = uVar39 ^ CONCAT44(DAT_182671f00,DAT_182671f00);
  lVar13 = DAT_182671c40;
  *(uint *)(lVar12 + -0xa94) = *(uint *)(lVar12 + -0x54) >> (((byte)uVar18 ^ 0xa7) & 0x1f);
  uVar30 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar12 + -0x380) =
       (*(ulonglong *)(lVar12 - (uVar29 ^ 0x2fc61bb4)) ^ uVar54 | uVar39) ^ uVar30;
  *puVar5 = *puVar9 - (uVar56 ^ *puVar2);
  uVar44 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *puVar47 = *(ulonglong *)(lVar13 - (uVar34 ^ 0x522879db)) ^ *(ulonglong *)(lVar13 + -0x828) ^
             uVar44 ^ uVar30 ^ uVar27;
  uVar15 = DAT_182671c80;
  uVar29 = (ulonglong)DAT_182671c80;
  uVar31 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *puVar7 = (uVar43 ^ *puVar8) + (uVar56 ^ *puVar2) ^ uVar31;
  uVar43 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *(ulonglong *)(lVar13 + -0x2b0) = (uVar56 ^ *puVar2) << (((byte)uVar15 ^ 0xd5) & 0x3f) ^ uVar43;
  uVar39 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar13 - (uVar41 ^ 0x4c0e4849)) =
       (uVar56 ^ *puVar2) >> ((bVar51 ^ 0xe1) & 0x3f) ^ uVar39;
  lVar12 = DAT_182671c40;
  uVar41 = CONCAT44(DAT_182671f80,DAT_182671f80);
  puVar33 = (ulonglong *)(DAT_182671c40 + -0x380);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0x760) | *puVar37 ^ uVar43) ^ uVar41;
  uVar23 = DAT_182671e5c;
  *(ulonglong *)(lVar12 + -0x4b8) =
       (uVar30 ^ *puVar33) - (CONCAT44(uVar35,uVar15) ^ 0x2669d11056b93fa4);
  uVar22 = DAT_182671cd0;
  uVar43 = CONCAT44(uVar23,uVar23);
  uVar39 = *(ulonglong *)(lVar12 - (uVar50 ^ 0x7b2d7cb3)) ^ *puVar7 ^ uVar43 ^ uVar41 ^ uVar31;
  *puVar4 = uVar39;
  uVar23 = DAT_182671dc8;
  uVar50 = CONCAT44(uVar22,uVar22);
  *puVar3 = (uVar39 ^ uVar43) + (*(ulonglong *)(lVar12 + -0x828) ^ uVar27) ^ uVar50;
  uVar41 = CONCAT44(uVar23,uVar23);
  puVar33 = (ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x74b173b3));
  *puVar55 = (uVar39 ^ uVar43) << ((bVar24 ^ 9) & 0x3f) ^ uVar41;
  *puVar33 = (*puVar4 ^ uVar43) >> (((byte)uVar17 ^ 0xef) & 0x3f) ^ uVar48;
  uVar27 = CONCAT44(DAT_182671f68,DAT_182671f68);
  uVar41 = (*puVar55 ^ uVar41 | uVar48 ^ *puVar6) ^ uVar27;
  *puVar10 = uVar41;
  uVar39 = *puVar4;
  *puVar1 = CONCAT44(DAT_182671dc4,DAT_182671dc4) ^ *puVar3 ^ uVar41 ^ uVar27 ^ uVar50;
  uVar22 = DAT_182671f70;
  *puVar9 = (uVar39 ^ uVar43) >> ((bVar11 ^ 0x6f) & 0x3f);
  *puVar5 = (*puVar40 ^ uVar44) + (*puVar7 ^ uVar31) ^ CONCAT44(uVar22,uVar22);
  uVar39 = *puVar40;
  *puVar8 = (CONCAT44(uVar16,uVar45) ^ 0xf2603c598ee82a53) -
            (CONCAT44(uVar17,uVar14) ^ 0xdad29ca5d970bac7);
  *puVar2 = (uVar39 ^ uVar44) << ((local_130 ^ 0x7b) & 0x3f) ^ uVar28;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar26 * 4) = uVar53;
  return;
}



############ FUN_ 180fb8ef0 size=4725 ############

void FUN_180fb8ef0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  ulonglong uVar10;
  ulonglong *puVar11;
  ulonglong *puVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong *puVar15;
  uint uVar16;
  ulonglong uVar17;
  byte bVar18;
  ulonglong *puVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  
  uVar6 = DAT_182671de8;
  uVar16 = DAT_182671c94;
  lVar2 = DAT_182671c40;
  uVar21 = DAT_182671c5c ^ DAT_182671c94;
  uVar27 = (ulonglong)DAT_182671c5c;
  uVar1 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c5c ^ 0x8002e60c) + (longlong)DAT_1826722bc);
  uVar9 = *(uint *)(&DAT_182613220 + DAT_1826722bc) ^ DAT_182671c94;
  puVar19 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0x8002ec7c));
  uVar30 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar33 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  puVar24 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c94 ^ 0xefea5aa4));
  DAT_182671c60 = uVar21;
  *puVar24 = (CONCAT44(DAT_182671e24,DAT_182671e24) ^ *puVar19) -
             (uVar30 ^ *(ulonglong *)(DAT_182671c40 + -0xc90)) ^ uVar33;
  uVar25 = CONCAT44(uVar6,uVar6);
  uVar10 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar17 = CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar13 = uVar17 ^ uVar10 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0xc38) ^
           *(ulonglong *)(lVar2 + -0x960);
  *(ulonglong *)(lVar2 + -0xda8) = uVar13;
  uVar29 = (ulonglong)uVar21;
  *(uint *)(lVar2 + -0x644) = (uVar16 ^ 0x706fa385) * (DAT_182671c5c ^ 0x5c465d1e);
  uVar22 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar2 + -0x110) = (uVar13 ^ uVar25) >> (((byte)uVar21 ^ 0xb1) & 0x3f) ^ uVar22;
  uVar6 = DAT_182671e18;
  uVar14 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0xd88) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0x6fe8b320)) ^ uVar25) - (uVar14 ^ 0x7a8a2a12697ed6b0);
  lVar2 = DAT_182671c40;
  bVar18 = (byte)DAT_182671c5c;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (*(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x8002ebac)) ^ uVar25) << ((bVar18 ^ 3) & 0x3f) ^
       CONCAT44(uVar6,uVar6);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x6fe8b550)) =
       uVar14 ^ 0xaefdf699fdb7677f | 0x2cf06081edb6432b;
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar25 = *(ulonglong *)(lVar3 + -0x110) ^ uVar22 |
           *(ulonglong *)(lVar3 + -0x888) ^ CONCAT44(uVar6,uVar6);
  uVar26 = uVar25 ^ uVar28;
  *(ulonglong *)(lVar3 + -0xa78) = uVar26;
  *(ulonglong *)(lVar2 + -0xc38) =
       (*(ulonglong *)(lVar3 + -0x110) ^ uVar22) >>
       ((*(byte *)(lVar3 + -0x888) ^ (byte)uVar6) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar13 = *(ulonglong *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (uVar17 ^ *(ulonglong *)(DAT_182671c40 + -0x960)) - uVar25 ^ uVar22;
  uVar6 = DAT_182671e08;
  *(ulonglong *)(lVar2 + -0xda8) = *puVar19 ^ uVar28 | uVar14 ^ 0x6e1a6f1d70002663;
  uVar25 = CONCAT44(uVar6,uVar6);
  puVar19 = (ulonglong *)(lVar2 + -0xbd8);
  uVar17 = uVar13 ^ uVar25 ^ uVar26 ^ uVar28 ^ uVar33;
  *puVar19 = uVar17;
  lVar2 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = (uVar25 ^ uVar17) >> ((bVar18 ^ 10) & 0x3f) ^ uVar26;
  uVar13 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *(ulonglong *)(lVar2 + -0x110) = (uVar25 ^ uVar17) << 0x32 ^ uVar13;
  uVar6 = DAT_182671da8;
  puVar23 = (ulonglong *)(lVar2 - (uVar27 ^ 0x8002ee8c));
  *puVar23 = (CONCAT44(uVar16,uVar21) ^ 0xdb7da8645783771) + 0x85c34c205bed0097;
  uVar4 = DAT_182671c94;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x6fe8b7e8)) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0xc38) | *(ulonglong *)(lVar2 + -0x110) ^ uVar13) ^ uVar17;
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar13 = (*puVar24 ^ uVar33) - (CONCAT44(uVar21,uVar4) ^ 0x3652cd45d6f261b4);
  uVar33 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar13 ^ uVar28;
  uVar6 = DAT_182671cd0;
  uVar5 = DAT_182671c94;
  uVar27 = uVar13 - (*(ulonglong *)(lVar2 - (uVar27 ^ 0x8002ef64)) ^ uVar17) ^ uVar33;
  *(ulonglong *)(lVar2 + -0xa78) = uVar27;
  uVar26 = CONCAT44(uVar6,uVar6);
  *puVar19 = (uVar17 ^ *(ulonglong *)(lVar2 + -0x960)) -
             (CONCAT44(DAT_182671c5c,DAT_182671c5c) ^ 0xf0c5f5b1d883dcaa) ^ uVar26;
  uVar20 = DAT_182671d2c;
  uVar13 = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xefea541c)) ^ uVar22 ^
           *(ulonglong *)(lVar2 + -0xd88);
  *(ulonglong *)(lVar2 + -0x888) = uVar13;
  uVar34 = CONCAT44(uVar20,uVar20);
  uVar17 = (uVar13 ^ uVar30) >> ((bVar18 ^ 0x14) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar17 ^ uVar34;
  lVar2 = DAT_182671c40;
  uVar13 = (*puVar23 ^ uVar30) << (((byte)uVar5 ^ 0xbc) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar13 ^ CONCAT44(DAT_182671cdc,DAT_182671cdc);
  uVar17 = uVar17 | uVar13;
  *(ulonglong *)(lVar2 + -0x228) = uVar17 ^ uVar10;
  *(uint *)(lVar2 + -0x58c) = uVar5 ^ 0xe0dc9339 | *(uint *)(lVar2 + -0x644);
  uVar13 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0x84c4a504)) ^ uVar22) -
           (CONCAT44(uVar21,uVar21) ^ 0x3aadb7de0d1b3792);
  *(ulonglong *)(lVar2 + -0xda8) = uVar13 ^ CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar6 = DAT_182671cbc;
  uVar5 = DAT_182671c64;
  uVar25 = (ulonglong)DAT_182671c64;
  uVar31 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(lVar2 + -0x960) = uVar13 - uVar17 ^ uVar31;
  uVar13 = CONCAT44(uVar6,uVar6);
  uVar10 = (CONCAT44(DAT_182671c5c,uVar21) ^ 0x3adbd6a1facd3dc) + uVar17 ^ uVar13;
  uVar30 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar2 + -0xc90) = uVar10;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x5b316fc8)) = uVar27 ^ uVar30 ^ uVar10 ^ uVar13 ^ uVar33;
  uVar6 = DAT_182671f08;
  uVar10 = (*(ulonglong *)(lVar2 + -0x888) ^ uVar30) >> (((byte)uVar21 ^ 0xa8) & 0x3f);
  uVar13 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0xc38) = uVar10 ^ CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar4 = DAT_182671c50;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x110) = (*(ulonglong *)(lVar2 + -0x888) ^ uVar30) << 0x20 ^ uVar17;
  uVar27 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar10 = *(ulonglong *)(lVar2 - (uVar13 ^ 0xfdfd5eef)) ^ uVar17 | uVar10;
  uVar17 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar2 + -0xd88) = uVar10 ^ uVar27;
  uVar7 = DAT_182671c84;
  uVar6 = DAT_182671c74;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x5b316bd0)) =
       (*(ulonglong *)(lVar2 + -0xa78) ^ uVar33) - uVar10 ^ uVar17;
  uVar8 = DAT_182671ef0;
  *(ulonglong *)(lVar2 + -0x888) =
       (CONCAT44(uVar16,uVar7) ^ 0x3e0fdf9d1294b1ff) << (((byte)uVar6 ^ 0x36) & 0x3f);
  uVar4 = DAT_182671c94;
  uVar33 = CONCAT44(uVar8,uVar8);
  uVar13 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x6fe8bf98)) =
       *puVar19 ^ uVar33 ^ uVar31 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0x960);
  uVar26 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(lVar2 - (uVar13 ^ 0xefea5524)) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar33) >> (((byte)DAT_182671c7c ^ 0xcf) & 0x3f) ^ uVar26;
  uVar10 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar13 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0x228) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar33) << (((byte)uVar7 ^ 0xf9) & 0x3f) ^ uVar10;
  puVar23 = (ulonglong *)(lVar2 - (uVar13 ^ 0x2626bbfd));
  uVar13 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar10 = *puVar23 ^ uVar10 | uVar26 ^ *(ulonglong *)(lVar2 + -0xda8);
  uVar33 = uVar10 ^ uVar13;
  *(ulonglong *)(lVar2 + -0xa78) = uVar33;
  uVar20 = uVar5 + uVar4;
  DAT_182671c70 = uVar20;
  *(uint *)(lVar2 + -0x670) = (uVar20 ^ 0xd759add2) + 0x38a1a6c7;
  uVar8 = DAT_182671f9c;
  uVar7 = DAT_182671ef8;
  uVar30 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xefea51ec)) ^ uVar31) - uVar10 ^ uVar30;
  uVar6 = DAT_182671d94;
  uVar26 = CONCAT44(uVar7,uVar7);
  puVar11 = (ulonglong *)(lVar2 - (uVar25 ^ 0x5b316c98));
  uVar13 = uVar33 ^ uVar26 ^ uVar13 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0xc90);
  *puVar11 = uVar13;
  uVar10 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x110) = (uVar13 ^ uVar26) >> (((byte)uVar16 ^ 0xb6) & 0x3f) ^ uVar10;
  puVar12 = (ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x4b1bb414));
  bVar18 = (byte)uVar5;
  uVar13 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar2 + -0x228) = (*puVar12 ^ uVar26) << ((bVar18 ^ 0x46) & 0x3f) ^ uVar13;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x4b1bb264)) = uVar14 ^ 0xfd1d8715ec40435e;
  lVar2 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar13 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x5b316650)) ^ uVar10 |
           *(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar13;
  puVar15 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0x4b1bb35c));
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar13 ^ uVar29;
  uVar14 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar2 + -0xa78) = (*puVar15 ^ uVar17) - uVar13 ^ uVar14;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x5b316ae8)) =
       (*puVar19 ^ uVar26) - (CONCAT44(uVar16,uVar20) ^ 0x227e311d866c397c);
  uVar4 = DAT_182671c94;
  uVar13 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar17 = *(ulonglong *)(lVar2 + -0x888) ^ uVar13 ^ uVar30 ^ uVar27 ^
           *(ulonglong *)(lVar2 + -0xd88);
  *(ulonglong *)(lVar2 + -0x110) = uVar17;
  uVar6 = DAT_182671f90;
  uVar10 = (uVar17 ^ uVar13) >> (((byte)uVar4 ^ 0x9a) & 0x3f);
  *(ulonglong *)(lVar2 + -0x228) = uVar10 ^ CONCAT44(DAT_182671cc4,DAT_182671cc4);
  lVar2 = DAT_182671c40;
  uVar27 = CONCAT44(uVar6,uVar6);
  uVar10 = (uVar13 ^ uVar17) << ((bVar18 ^ 0x6a) & 0x3f) | uVar10;
  uVar17 = uVar10 ^ uVar27;
  uVar13 = *(ulonglong *)(DAT_182671c40 + -0x888);
  uVar26 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *puVar19 = uVar17;
  uVar6 = DAT_182671cac;
  *(ulonglong *)(lVar2 + -0xda8) = (uVar13 ^ uVar30) - uVar10 ^ uVar26;
  uVar33 = CONCAT44(uVar6,uVar6);
  uVar17 = uVar17 ^ *(ulonglong *)(lVar2 + -0xa78) ^ uVar33 ^ uVar27 ^ uVar14;
  uVar10 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar2 + -0x110) = uVar17;
  uVar13 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 + -0x228) = (uVar17 ^ uVar33) >> (((byte)uVar4 ^ 0xa2) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar2 + -0xc90) = (uVar33 ^ uVar17) << 0x12 ^ uVar10;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar13 ^ 0xefea5004)) =
       CONCAT44(uVar5,uVar20) ^ 0xc111a080a809babc | CONCAT44(uVar5,uVar5) ^ 0x812b6681f2cce029;
  uVar32 = CONCAT44(DAT_182671eec,DAT_182671eec);
  uVar13 = uVar10 ^ *(ulonglong *)(lVar2 + -0xc90) | *(ulonglong *)(lVar2 + -0x228) ^ uVar22;
  uVar35 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar2 + -0xc38) = uVar13 ^ uVar32;
  *(ulonglong *)(lVar2 + -0xd88) = (*(ulonglong *)(lVar2 + -0xa78) ^ uVar14) - uVar13 ^ uVar35;
  uVar22 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *puVar11 = uVar22 ^ uVar26 ^ uVar29 ^ *(ulonglong *)(lVar2 + -0xda8) ^
             *(ulonglong *)(lVar2 + -0x960);
  uVar14 = (*puVar19 ^ uVar22) >> ((bVar18 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = uVar14 ^ CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar4 = DAT_182671c94;
  *(ulonglong *)(lVar2 + -0x888) =
       CONCAT44(uVar20,uVar20) ^ uVar10 ^ *(ulonglong *)(lVar2 + -0xc90) ^ 0x9e988c6aad2cb21a;
  uVar6 = DAT_182671ce4;
  lVar2 = DAT_182671c40;
  uVar17 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar13 = *(ulonglong *)(DAT_182671c40 + -0xda8);
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (*puVar12 ^ uVar22) << (((byte)uVar4 ^ 0xb8) & 0x3f) ^ uVar17;
  uVar4 = DAT_182671d80;
  uVar22 = CONCAT44(uVar6,uVar6);
  uVar10 = (ulonglong)DAT_182671d80;
  uVar27 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar14 = *(ulonglong *)(lVar2 - (uVar25 ^ 0x5b316568)) ^ uVar17 | uVar14;
  uVar17 = uVar14 ^ uVar22;
  uVar33 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar2 + -0xa78) = uVar17;
  uVar6 = DAT_182671f84;
  *(ulonglong *)(lVar2 + -0x960) = (uVar26 ^ uVar13) - uVar14 ^ uVar33;
  uVar13 = *(ulonglong *)(lVar2 + -0xd88);
  uVar22 = uVar17 ^ uVar27 ^ uVar22 ^ uVar35 ^ uVar13;
  *(ulonglong *)(lVar2 + -0xc90) = uVar22;
  uVar14 = ((ulonglong)(uVar4 >> 0x19) | uVar10 << 7) ^ uVar22 >> 0x19;
  uVar22 = (uVar27 ^ uVar22) << ((bVar18 ^ 0x67) & 0x3f);
  uVar10 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(lVar2 + -0x888) = uVar14 ^ CONCAT44(uVar6,uVar6);
  *puVar19 = uVar22 ^ uVar10;
  uVar6 = DAT_182671f34;
  uVar14 = uVar14 | uVar22;
  uVar22 = (uVar35 ^ uVar13) - (CONCAT44(uVar5,uVar20) ^ 0x3c5748cabfcaf235);
  *(ulonglong *)(lVar2 + -0x110) = uVar14 ^ CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x228) = uVar22 ^ uVar10;
  uVar7 = DAT_182671f40;
  uVar4 = DAT_182671c80;
  uVar13 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0xda8) = uVar22 - uVar14 ^ uVar29;
  uVar6 = DAT_182671d70;
  uVar26 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xa78) = uVar14 - (CONCAT44(uVar20,uVar20) ^ 0x561be30b235648d1) ^ uVar26;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar13 ^ 0xd9d94aba)) =
       *(ulonglong *)(lVar2 - (uVar25 ^ 0x5b316e20)) ^ *(ulonglong *)(lVar2 - (uVar25 ^ 0x5b316b78))
       ^ uVar17 ^ uVar33 ^ uVar32;
  uVar5 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c54;
  *(uint *)(lVar2 + -0xae4) = (DAT_182671c94 ^ 0x6f03c353) + *(int *)(lVar2 + -0x27c);
  uVar6 = DAT_182671d0c;
  uVar13 = *(ulonglong *)(lVar3 + -0xc90);
  uVar10 = *(ulonglong *)(lVar3 + -0x960);
  uVar22 = (uVar17 ^ *(ulonglong *)(lVar2 + -0xc90)) >> ((bVar18 ^ 0x61) & 0x3f);
  *(ulonglong *)(lVar2 + -0x888) = uVar22 ^ CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar7 = DAT_182671eac;
  uVar14 = CONCAT44(uVar6,uVar6);
  *puVar19 = (uVar17 ^ uVar13) << ((bVar18 ^ 0x5f) & 0x3f) ^ uVar14;
  uVar22 = uVar14 ^ *puVar12 | uVar22;
  uVar13 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar3 + -0xd88) = uVar22 ^ CONCAT44(uVar7,uVar7);
  uVar6 = DAT_182671fa8;
  *(ulonglong *)(lVar3 + -0x228) =
       (uVar33 ^ uVar10) - (CONCAT44(uVar16,uVar5) ^ 0x9f2d4b3918e60bf5) ^ uVar13;
  uVar10 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x110) = (uVar13 ^ *puVar24) - uVar22 ^ uVar10;
  uVar6 = DAT_182671c84;
  *(ulonglong *)(lVar3 + -0xc38) =
       (CONCAT44(DAT_182671c74,uVar4) ^ 0xb8719c4b3cfc476a) + uVar22 ^ uVar26;
  uVar16 = uVar5 & DAT_182671c50;
  DAT_182671c5c = uVar16;
  *puVar15 = (CONCAT44(DAT_182671c58,uVar6) ^ 0xc8d6fe0c4f890d16) + (uVar13 ^ *puVar23);
  uVar17 = CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar14 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar22 = uVar17 ^ uVar26 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0xda8) ^
           *(ulonglong *)(lVar3 + -0xc38);
  *(ulonglong *)(lVar3 + -0x888) = uVar22;
  uVar4 = DAT_182671c50;
  uVar25 = (ulonglong)DAT_182671c50;
  uVar13 = CONCAT44(uVar5,DAT_182671c50);
  *puVar19 = (uVar22 ^ uVar17) >> (((byte)uVar5 ^ 0x5e) & 0x3f) ^ uVar14;
  lVar2 = DAT_182671c40;
  bVar18 = (byte)uVar4;
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (CONCAT44(uVar16,uVar4) ^ 0x6c2bbedeb3c54fd4) >> ((bVar18 ^ 0x47) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x40673cd3)) =
       (uVar17 ^ uVar22) << (((byte)uVar16 ^ 0x7b) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x228) =
       (uVar14 ^ *puVar19 | uVar28 ^ *(ulonglong *)(lVar2 + -0xd88)) ^ uVar14;
  uVar30 = (uVar29 ^ *(ulonglong *)(lVar2 + -0xda8)) -
           (*(ulonglong *)(lVar2 - (uVar25 ^ 0x5b316568)) ^ uVar14) ^ uVar30;
  *(ulonglong *)(lVar2 + -0xc90) = uVar30;
  *(ulonglong *)(lVar2 + -0xc38) =
       (uVar13 ^ 0xc0e49638997a084d) >> (((byte)uVar30 ^ (byte)uVar8) & 0x3f);
  uVar13 = (ulonglong)DAT_182671d2c;
  uVar10 = *(ulonglong *)(lVar2 - (uVar27 ^ 0x4067304b)) ^
           *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x40212b38)) ^ uVar10 ^ uVar26 ^ uVar34;
  *(ulonglong *)(lVar2 + -0x960) = uVar10;
  puVar23 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0x40212820));
  *(ulonglong *)(lVar2 + -0x888) = (uVar10 >> 0x20 ^ uVar13) >> 5 ^ uVar31;
  *puVar19 = (*puVar23 ^ uVar34) << ((bVar18 ^ 0x5b) & 0x3f) ^ CONCAT44(DAT_182671ecc,DAT_182671ecc)
  ;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar1 ^ uVar21;
  return;
}



############ FUN_ 18100f8f0 size=4881 ############

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

void FUN_18100f8f0(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  byte bVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  byte bVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  
  uVar8 = DAT_182671ed0;
  uVar5 = DAT_182671c6c;
  uVar13 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c6c;
  uVar17 = (ulonglong)DAT_182671c54;
  uVar21 = DAT_182671c54 * DAT_182671c6c;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_182671fdc);
  uVar11 = *(uint *)(&DAT_182613220 + DAT_182671fdc) ^ DAT_182671c6c;
  uVar36 = (ulonglong)uVar21;
  uVar33 = CONCAT44(DAT_182671c54,uVar21);
  uVar40 = CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar23 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  bVar32 = (byte)uVar21;
  uVar14 = *(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0x40673dcb)) ^
           CONCAT44(DAT_182671f14,DAT_182671f14) ^ uVar23 ^ uVar40 ^
           *(ulonglong *)(DAT_182671c40 + -0x888);
  DAT_182671c74 = uVar21;
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar14;
  uVar6 = DAT_182671d90;
  uVar22 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xd88) = (uVar14 ^ uVar40) >> ((bVar32 ^ 0x8e) & 0x3f) ^ uVar22;
  uVar14 = CONCAT44(uVar6,uVar6);
  bVar10 = (byte)uVar5;
  *(ulonglong *)(lVar3 + -0xc38) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2626b47d)) ^ uVar40) <<
       ((bVar10 ^ 0xd2) & 0x3f) ^ uVar14;
  uVar6 = DAT_182671f4c;
  lVar3 = DAT_182671c40;
  puVar18 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x4067383b));
  *puVar18 = CONCAT44(uVar5,uVar21) ^ 0x91b7ec42fd8678de |
             CONCAT44(uVar13,uVar13) ^ 0xde6e1a4ac99f1d36;
  uVar14 = uVar14 ^ *(ulonglong *)(lVar3 + -0xc38) | uVar22 ^ *(ulonglong *)(lVar3 + -0xd88);
  uVar15 = CONCAT44(uVar6,uVar6);
  uVar28 = uVar14 ^ uVar15;
  uVar37 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar3 + -0x110) = uVar28;
  uVar6 = DAT_182671fa4;
  *(ulonglong *)(lVar3 + -0x228) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2626b545)) ^ uVar23) - uVar14 ^ uVar37;
  lVar3 = DAT_182671c40;
  uVar22 = CONCAT44(uVar6,uVar6);
  uVar24 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar14 = (ulonglong)DAT_182671dfc;
  uVar2 = DAT_182671dfc >> 0xe;
  uVar29 = CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar23 = uVar22 ^ uVar24 ^ uVar28 ^ uVar15 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar23;
  uVar6 = DAT_182671eac;
  uVar28 = (uVar14 << 0x12 | (ulonglong)uVar2) ^ uVar23 >> 0xe;
  *(ulonglong *)(lVar3 + -0xda8) = uVar28 ^ uVar29;
  lVar3 = DAT_182671c40;
  uVar14 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 + -0x960) = (uVar24 ^ uVar23) << ((bVar10 ^ 0xe7) & 0x3f) ^ uVar14;
  uVar6 = DAT_182671ee0;
  uVar28 = uVar28 | *puVar18 ^ uVar14;
  *(ulonglong *)(lVar3 + -0xd88) = uVar28 ^ CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar14 = (uVar22 ^ *(ulonglong *)(lVar3 + -0xbd8)) - (CONCAT44(uVar21,uVar5) ^ 0x82587726a99d2b7d)
  ;
  *(ulonglong *)(lVar3 + -0xc38) = uVar14 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182671ef8;
  *(ulonglong *)(lVar3 + -0xc90) =
       (CONCAT44(uVar13,uVar13) ^ 0x9bc6cce9a430f164) + 0x70a809b0b453b532;
  uVar8 = DAT_182671f6c;
  uVar24 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x110) = uVar14 - uVar28 ^ uVar24;
  uVar19 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xfe08db3f)) =
       uVar28 - (CONCAT44(uVar5,uVar5) ^ 0xc8aa1500221b20b) ^ uVar19;
  lVar4 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671d00,DAT_182671d00);
  puVar18 = (ulonglong *)(lVar3 - (uVar17 ^ 0x40673cf3));
  *puVar18 = *(ulonglong *)(lVar3 + -0x228) ^ uVar23 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0xa78) ^
             uVar40;
  uVar22 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0xfe08de1f)) ^ uVar23) >> ((bVar10 ^ 0xc5) & 0x3f);
  uVar14 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(lVar4 + -0x960) = uVar22 ^ CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar8 = DAT_182671ee8;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0xda8)) << ((bVar32 ^ 0x87) & 0x3f) ^ uVar14;
  uVar6 = DAT_182671d94;
  uVar40 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0xc90) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0xfe08d86f)) ^ uVar14 | uVar22) ^ uVar40;
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x2626b5ed)) =
       (*(ulonglong *)(lVar4 + -0x228) ^ uVar37) - (uVar33 ^ 0x108a9aa35e4da347) ^ uVar22;
  uVar8 = DAT_182671f64;
  uVar28 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar14 = CONCAT44(uVar5,DAT_182671c90);
  *(ulonglong *)(lVar4 + -0xd88) =
       (uVar22 ^ *(ulonglong *)(lVar4 + -0xc38)) -
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0xfe08df27)) ^ uVar40) ^ uVar28;
  uVar6 = DAT_182671cf4;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar14 = (uVar14 ^ 0xa04a9da34dcbbe7e) + (uVar40 ^ *(ulonglong *)(lVar4 + -0xc90)) ^ uVar22;
  *(ulonglong *)(lVar4 + -0xa78) = uVar14;
  uVar8 = DAT_182671d6c;
  uVar33 = CONCAT44(uVar6,uVar6);
  uVar14 = uVar33 ^ uVar14 ^ uVar22 ^ uVar24 ^ *(ulonglong *)(lVar4 + -0x110);
  uVar37 = (uVar33 ^ uVar14) >> ((bVar32 ^ 0x97) & 0x3f);
  *(ulonglong *)(lVar4 + -0x960) = uVar37 ^ CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar4 + -0xda8) = uVar14;
  uVar6 = DAT_182671e5c;
  uVar7 = DAT_182671c8c;
  uVar5 = DAT_182671c68;
  uVar23 = (ulonglong)DAT_182671c8c;
  uVar38 = (ulonglong)DAT_182671c68;
  uVar27 = DAT_182671c8c | DAT_182671c68;
  uVar14 = (uVar33 ^ *puVar18) << 0x20;
  *(ulonglong *)(lVar4 + -0xbd8) = uVar14 ^ CONCAT44(uVar8,uVar8);
  uVar41 = CONCAT44(uVar6,uVar6);
  uVar37 = uVar37 | uVar14;
  puVar18 = (ulonglong *)(DAT_182671c40 + -0x110);
  uVar33 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar14 = (ulonglong)uVar27;
  puVar35 = (ulonglong *)(DAT_182671c40 - (uVar14 ^ 0x7dffb5c3));
  DAT_182671c58 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar37 ^ uVar41;
  uVar6 = DAT_182671edc;
  uVar2 = DAT_182671d48;
  uVar22 = (ulonglong)DAT_182671d48;
  *puVar35 = (uVar24 ^ *puVar18) - uVar37 ^ uVar33;
  lVar3 = DAT_182671c40;
  uVar37 = CONCAT44(uVar2,uVar2);
  uVar25 = CONCAT44(uVar6,uVar6);
  uVar24 = uVar37 ^ uVar28 ^ uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0xd88) ^
           *(ulonglong *)(DAT_182671c40 + -0x888);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar24;
  *(ulonglong *)(lVar3 + -0xa78) = uVar24 >> 0x20 ^ uVar25 ^ uVar22;
  bVar10 = (byte)uVar7;
  uVar22 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x7dffb453)) =
       (uVar37 ^ uVar24) << ((bVar10 ^ 0xfb) & 0x3f) ^ uVar22;
  uVar6 = DAT_182671cc0;
  uVar24 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar22 = *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x6de3b5c3)) ^ uVar22 |
           uVar25 ^ *(ulonglong *)(lVar3 + -0xa78);
  *(ulonglong *)(lVar3 + -0x960) = uVar22 ^ uVar24;
  uVar37 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x103c0203)) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0xd88)) - uVar22 ^ uVar37;
  uVar6 = DAT_182671f84;
  uVar19 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  puVar16 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x6de3b97b));
  uVar24 = uVar19 ^ uVar24 ^ *(ulonglong *)(lVar3 + -0x960) ^ uVar33 ^
           *(ulonglong *)(lVar3 + -0xc38);
  *(ulonglong *)(lVar3 + -0x110) = uVar24;
  uVar8 = DAT_182671d64;
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 + -0x888) = (uVar19 ^ *puVar16) >> ((bVar10 ^ 0xe1) & 0x3f) ^ uVar28;
  *(int *)(lVar3 + -0x644) = (int)(uVar27 ^ 0x6ddfc840) >> 4;
  uVar6 = DAT_182671d30;
  uVar22 = CONCAT44(uVar8,uVar8);
  puVar30 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x6de3b4fb));
  *puVar30 = (uVar19 ^ uVar24) << (((byte)uVar5 ^ 0x6d) & 0x3f) ^ uVar22;
  lVar3 = DAT_182671c40;
  uVar34 = CONCAT44(uVar6,uVar6);
  uVar24 = CONCAT44(DAT_182671f54,DAT_182671f54);
  puVar18 = (ulonglong *)(DAT_182671c40 + -0xc38);
  uVar22 = uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0x888) |
           uVar22 ^ *(ulonglong *)(DAT_182671c40 + -0xc90);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar22 ^ uVar34;
  uVar28 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *(ulonglong *)(lVar3 + -0xda8) = (uVar33 ^ *puVar18) - uVar22 ^ uVar24;
  *(ulonglong *)(lVar3 + -0xd88) =
       *(ulonglong *)(lVar3 + -0x228) ^ uVar28 ^ uVar37 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0xbd8);
  *(ulonglong *)(lVar3 + -0x960) = uVar22 + 0x7907ba4bc05f0350;
  puVar18 = (ulonglong *)(lVar3 - (uVar14 ^ 0x7dffb473));
  uVar41 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  bVar12 = (byte)uVar27;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x103c08cb)) =
       (uVar28 ^ *puVar18) >> (((byte)uVar5 ^ 0x7d) & 0x3f) ^ uVar41;
  uVar33 = (uVar28 ^ *(ulonglong *)(lVar3 + -0xd88)) << ((bVar12 ^ 0xd1) & 0x3f);
  uVar28 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  uVar22 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar3 + -0x888) = uVar33 ^ uVar28;
  uVar6 = DAT_182671efc;
  *(ulonglong *)(lVar3 + -0xc90) = uVar22 ^ **(ulonglong **)(lVar3 + -0x9b0);
  uVar2 = DAT_182671ed4;
  uVar22 = CONCAT44(uVar6,uVar6);
  uVar19 = (ulonglong)DAT_182671ed4;
  *puVar35 = (uVar33 | uVar41 ^ *puVar16) ^ uVar22;
  uVar6 = DAT_182671da8;
  lVar4 = DAT_182671c40;
  *(undefined1 *)(lVar3 + -0x6b9) = **(undefined1 **)(lVar3 + -0x6a8);
  uVar33 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x228) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0xbd8)) - (uVar22 ^ *(ulonglong *)(lVar3 + -0xc38)) ^
       uVar33;
  uVar37 = CONCAT44(uVar2,uVar2);
  puVar16 = (ulonglong *)(lVar4 - (uVar23 ^ 0x103c0473));
  uVar22 = uVar37 ^ uVar22 ^ uVar24 ^ *puVar16 ^ *(ulonglong *)(lVar4 + -0xc38);
  *(ulonglong *)(lVar4 + -0x960) = uVar22;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x103c0453)) =
       uVar22 ^ uVar37 ^ CONCAT44(uVar7,uVar5) ^ 0x1ca22dc426981d7f;
  uVar19 = (*(ulonglong *)(lVar4 + -0x960) >> 0x20 ^ uVar19) >> 0xe;
  uVar22 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar4 + -0xc90) = uVar19 ^ CONCAT44(DAT_182671d68,DAT_182671d68);
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar4 + -0x960)) << ((bVar10 ^ 0xc9) & 0x3f);
  uVar39 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *(ulonglong *)(lVar4 + -0x110) = uVar37 ^ uVar22;
  uVar2 = DAT_182671e84;
  *(ulonglong *)(lVar4 - (uVar14 ^ 0x7dffb173)) = (uVar19 | uVar37) ^ uVar39;
  lVar3 = DAT_182671c40;
  uVar19 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(lVar4 + -0xbd8) =
       (uVar24 ^ *puVar16) - (uVar39 ^ *(ulonglong *)(lVar4 + -0x888)) ^ uVar19;
  uVar9 = DAT_182671f94;
  uVar22 = *(ulonglong *)(lVar4 - (uVar38 ^ 0x6de3ba43)) ^ CONCAT44(uVar2,uVar2) ^ uVar33 ^ uVar34 ^
           *(ulonglong *)(lVar4 + -0xa78);
  uVar31 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar4 + -0xc38) = uVar22;
  uVar37 = (CONCAT44(uVar2,uVar2) ^ uVar22) << ((bVar12 ^ 0xcf) & 0x3f);
  *(ulonglong *)(lVar3 + -0x960) = uVar37 ^ uVar40;
  uVar6 = DAT_182671f34;
  uVar24 = ((ulonglong)uVar2 << 0x14 | (ulonglong)(uVar2 >> 0xc)) ^ uVar22 >> 0xc;
  *(ulonglong *)(lVar3 + -0xd88) = uVar24 ^ uVar31;
  uVar2 = DAT_182671c68;
  *(ulonglong *)(lVar3 + -0x110) = 0xee62fafcc01f2b13 >> ((bVar10 ^ 0xda) & 0x3f);
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(uVar6,uVar6);
  puVar16 = (ulonglong *)(lVar3 - (uVar14 ^ 0x7dffb56b));
  *puVar16 = (uVar37 | uVar24) ^ uVar22;
  *(int *)(lVar4 + -0x61c) = *(int *)(lVar4 + -0x9dc) << (((byte)uVar2 ^ 0x61) & 0x1f);
  uVar6 = DAT_182671d50;
  uVar24 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar4 + -0xda8) =
       (*(ulonglong *)(lVar4 + -0x228) ^ uVar33) - (uVar22 ^ *(ulonglong *)(lVar4 + -0xc90)) ^
       uVar24;
  uVar37 = CONCAT44(uVar6,uVar6);
  puVar35 = (ulonglong *)(lVar4 - (uVar14 ^ 0x7dffb383));
  *puVar35 = uVar37 ^ uVar22 ^ uVar19 ^ *puVar30 ^ *(ulonglong *)(lVar4 + -0xbd8);
  uVar34 = CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar22 = (*(ulonglong *)(lVar4 - (uVar20 ^ 0x2626b3ad)) ^ uVar37) >> ((bVar10 ^ 0xc2) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc38) = uVar22 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar5,uVar27) ^ 0x1b5ef82a3bdde9ee) - (CONCAT44(uVar27,uVar5) ^ 0x2a5aef565064f9ba)
  ;
  uVar2 = DAT_182671c5c;
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar40 = (ulonglong)DAT_182671c5c;
  uVar37 = (*(ulonglong *)(lVar4 - (uVar38 ^ 0x6de3b213)) ^ uVar37) << ((bVar12 ^ 0xdc) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar37 ^ uVar33;
  uVar6 = DAT_182671f3c;
  uVar37 = uVar37 | uVar22;
  *(ulonglong *)(lVar3 + -0x228) = uVar37 ^ uVar41;
  lVar3 = DAT_182671c40;
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (*(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0x40673a83)) ^ uVar19) -
       (CONCAT44(uVar27,uVar2) ^ 0x5d31817e16c6f768) ^ uVar22;
  uVar2 = DAT_182671c4c;
  lVar4 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x103c05e3)) ^ uVar34) -
       (CONCAT44(uVar7,uVar13) ^ 0x755ec279757c54ca);
  *puVar35 = (uVar22 ^ *puVar16) - uVar37 ^ uVar25;
  *(int *)(lVar4 + -0x670) = *(int *)(lVar4 + -0x76c) + -0x67848b3d;
  uVar6 = DAT_182671cac;
  uVar37 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar4 + -0xbd8) =
       (*(ulonglong *)(lVar4 - (uVar40 ^ 0xc1c0bfd)) ^ uVar41) -
       (CONCAT44(uVar7,uVar2) ^ 0xa0fb7cb92a2942fa) ^ uVar37;
  uVar8 = DAT_182671e8c;
  lVar3 = DAT_182671c40;
  uVar19 = CONCAT44(uVar6,uVar6);
  uVar22 = uVar19 ^ uVar24 ^ uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0xda8) ^
           *(ulonglong *)(DAT_182671c40 + -0x888);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar22;
  uVar23 = (uVar22 ^ uVar19) >> ((bVar10 ^ 0xfa) & 0x3f);
  uVar17 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 + -0xc90) = (uVar19 ^ uVar22) << ((bVar32 ^ 0xa8) & 0x3f) ^ uVar15;
  uVar19 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x110) = uVar23 ^ uVar37;
  uVar6 = DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0xb000169a)) ^ uVar15 | uVar23) ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x6de3b453)) =
       CONCAT44(uVar6,uVar13) ^ 0xc8b8566539a3d02d | *(ulonglong *)(lVar3 + -0x228) ^ uVar41;
  uVar7 = DAT_182671e90;
  uVar22 = CONCAT44(DAT_182671e24,DAT_182671e24);
  bVar10 = (byte)DAT_182671c88;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0xda8)) -
       (CONCAT44(uVar13,DAT_182671c64) ^ 0x6acb29de453b5aed) ^ uVar22;
  uVar17 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x2626bbfd)) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x960)) << ((bVar10 ^ 0x82) & 0x3f);
  uVar23 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar24 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar3 + -0xc38) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x110)) -
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0x1a0ab888)) ^ uVar19) ^ uVar23;
  uVar17 = (CONCAT44(uVar21,uVar5) ^ 0x584d5f85ab047ed6) + (uVar19 ^ *(ulonglong *)(lVar3 + -0x888))
           ^ uVar24;
  *(ulonglong *)(lVar3 + -0xda8) = uVar17;
  *(ulonglong *)(lVar3 + -0x228) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0xfdfd5587)) ^ CONCAT44(uVar7,uVar7) ^ uVar17 ^ uVar24 ^
       uVar25;
  uVar6 = DAT_182671ce4;
  *(ulonglong *)(lVar3 + -0x960) =
       (uVar15 ^ *(ulonglong *)(lVar3 + -0xc90)) >> (((byte)uVar9 ^ (byte)*puVar18) & 0x3f);
  uVar2 = DAT_182671c94;
  uVar22 = CONCAT44(uVar6,uVar6);
  puVar18 = (ulonglong *)(lVar3 - (uVar36 ^ 0xfe08d2a7));
  uVar17 = (ulonglong)DAT_182671c94;
  *puVar18 = ((ulonglong)uVar7 << 0x1b | (ulonglong)(uVar7 >> 5)) ^
             *(ulonglong *)(DAT_182671c40 - (uVar14 ^ 0x7dffbbd3)) >> 5 ^ uVar22;
  lVar3 = DAT_182671c40;
  uVar13 = uVar2 * DAT_182671c74;
  uVar14 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x53e0bdbc));
  DAT_182671c78 = uVar13;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(DAT_182671c40 + -0x228)) << 0x3b ^ uVar29;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x888) = uVar14 ^ CONCAT44(uVar2,uVar21) ^ uVar24 ^ 0xf0e41e6b1ffa8127;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x53e0bc84)) =
       (CONCAT44(uVar13,uVar21) ^ 0x3b18a7d9794623e8) >> ((bVar32 ^ 0xb5) & 0x3f);
  uVar6 = DAT_182671f00;
  uVar14 = *(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xefea5504)) ^ uVar29 |
           uVar22 ^ *(ulonglong *)(lVar4 + -0x110);
  *(ulonglong *)(lVar4 + -0x960) = uVar14 ^ uVar28;
  uVar8 = DAT_182671f88;
  *(ulonglong *)(lVar4 + -0xda8) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0xa78)) - uVar14 ^ CONCAT44(uVar6,uVar6);
  uVar17 = CONCAT44(uVar8,uVar8);
  uVar14 = uVar17 ^ uVar23 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0xc38) ^
           *(ulonglong *)(lVar4 + -0xbd8);
  *(ulonglong *)(lVar4 + -0x888) = uVar14;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x53e0b23c)) =
       (uVar14 ^ uVar17) >> (((byte)uVar13 ^ 0x31) & 0x3f) ^ uVar31;
  uVar15 = CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar22 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar4 + -0xc90) =
       (uVar17 ^ *(ulonglong *)(lVar4 + -0x888)) << (((byte)uVar13 ^ 0xf) & 0x3f) ^ uVar15;
  *puVar18 = CONCAT44(uVar2,uVar2) ^ CONCAT44(uVar21,uVar13) ^ 0x612a578bef85eff8;
  uVar14 = *(ulonglong *)(lVar4 + -0xc90);
  uVar17 = *(ulonglong *)(lVar4 + -0x228);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar11 * 4) = uVar1 ^ uVar21;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xfe08de3f)) = (uVar15 ^ uVar14 | uVar17 ^ uVar31) ^ uVar22;
  return;
}



############ FUN_ 180f7da70 size=5322 ############

void FUN_180f7da70(void)

{
  ulonglong *puVar1;
  uint *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  byte bVar22;
  byte bVar23;
  longlong *plVar24;
  uint uVar25;
  byte *pbVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  
  uVar15 = DAT_182671da4;
  uVar12 = DAT_182671c68;
  lVar4 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c68;
  uVar34 = DAT_182671c68 ^ DAT_182671c70;
  uVar3 = *(uint *)(&DAT_182613220 + DAT_182672210);
  uVar25 = *(uint *)(&DAT_182613218 + DAT_182672210) ^ DAT_182671c70;
  uVar44 = (ulonglong)DAT_182671c70;
  uVar30 = CONCAT44(DAT_182671c68,uVar34);
  uVar36 = CONCAT44(DAT_182671c68,DAT_182671c68);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xd88);
  uVar35 = (CONCAT44(DAT_182671d34,DAT_182671d34) ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) -
           (uVar30 ^ 0xf07505c11e266bc);
  DAT_182671c60 = uVar34;
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar35 ^ CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar41 = CONCAT44(uVar15,uVar15);
  uVar31 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *puVar1 = uVar35 - (uVar41 ^ *(ulonglong *)(lVar4 + -0x888)) ^ uVar31;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x2d0bb492)) =
       uVar36 ^ 0xa15c275059f34f84 | CONCAT44(uVar34,DAT_182671c70) ^ 0x81b705d3af6adbbd;
  uVar35 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(undefined8 *)(lVar4 + -0x110) = 0x13f2b34ceffe5dda;
  uVar15 = DAT_182671ef4;
  uVar41 = (uVar41 ^ *(ulonglong *)(lVar4 + -0x888)) + (uVar30 ^ 0x329fdc32ebec782d) ^ uVar35;
  *(ulonglong *)(lVar4 + -0xbd8) = uVar41;
  uVar19 = DAT_182671f5c;
  uVar16 = DAT_182671c78;
  uVar6 = DAT_182671c6c;
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar38 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar35 = uVar38 ^ uVar36 ^ uVar41 ^ uVar35 ^ *(ulonglong *)(lVar4 + -0xda8);
  *(ulonglong *)(lVar4 + -0xc38) = uVar35;
  uVar41 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x2626b545)) =
       (uVar36 ^ uVar35) >> (((byte)uVar34 ^ 0xef) & 0x3f) ^ uVar41;
  bVar23 = (byte)DAT_182671c80;
  *(ulonglong *)(lVar4 + -0xa78) =
       (uVar30 ^ 0xcf6f367969b92645) - (CONCAT44(uVar16,uVar12) ^ 0xc399ed7d25488dfe);
  uVar15 = DAT_182671ed8;
  uVar18 = DAT_182671c8c;
  uVar33 = (ulonglong)DAT_182671c8c;
  puVar42 = (ulonglong *)(lVar4 - (uVar33 ^ 0x103c05e3));
  uVar35 = (uVar36 ^ *puVar42) << ((bVar23 ^ 0x14) & 0x3f);
  *(ulonglong *)(lVar4 + -0x888) = uVar35 ^ CONCAT44(DAT_182671d30,DAT_182671d30);
  lVar4 = DAT_182671c40;
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar35 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar34 ^ 0x2d0bb27a)) ^ uVar41 | uVar35;
  uVar46 = CONCAT44(DAT_182671f34,DAT_182671f34);
  puVar32 = (ulonglong *)(DAT_182671c40 + -0xda8);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar35 ^ uVar36;
  uVar6 = DAT_182671fac;
  uVar30 = (ulonglong)DAT_182671fac;
  *(ulonglong *)(lVar4 + -0xbd8) = (uVar38 ^ *puVar32) - uVar35 ^ uVar46;
  uVar15 = DAT_182671dd8;
  uVar29 = uVar18 & uVar16;
  uVar43 = CONCAT44(uVar6,uVar6);
  uVar38 = CONCAT44(DAT_182671da0,DAT_182671da0);
  uVar41 = uVar31 ^ *(ulonglong *)(lVar4 + -0x228) ^ uVar38 ^ uVar43 ^ *puVar1;
  DAT_182671c70 = uVar29;
  *(ulonglong *)(lVar4 + -0xa78) = uVar41;
  lVar4 = DAT_182671c40;
  uVar37 = (uVar41 >> 0x20 ^ uVar30) >> 5;
  uVar35 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar37 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671f54;
  uVar30 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar4 + -0xc90) = (uVar41 ^ uVar43) << (((byte)uVar34 ^ 0xf1) & 0x3f) ^ uVar30;
  uVar6 = DAT_182671c94;
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x7dffb173)) =
       (*(ulonglong *)(lVar4 - (uVar44 ^ 0xb9d1e27a)) ^ uVar30 | uVar37) ^ uVar43;
  uVar11 = DAT_182671c64;
  *(ulonglong *)(lVar4 + -0xda8) =
       (CONCAT44(DAT_182671c64,uVar6) ^ 0xe6f8c42eaa3f9036) -
       (CONCAT44(DAT_182671f08,DAT_182671f08) ^ *(ulonglong *)(lVar4 + -0x960));
  uVar45 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x103c0bf3)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0xb7d30576)) ^ uVar31) -
       (*(ulonglong *)(lVar4 + -0x888) ^ uVar43) ^ uVar45;
  uVar6 = DAT_182671e28;
  uVar35 = (ulonglong)DAT_182671e28;
  uVar41 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar4 + -0xa78) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0x10100302)) ^ *(ulonglong *)(lVar4 + -0x888) ^
       uVar41 ^ uVar43 ^ uVar46;
  uVar15 = DAT_182671d1c;
  *(undefined1 *)(lVar4 + -0x6b9) = **(undefined1 **)(lVar4 + -0x990);
  uVar30 = CONCAT44(uVar15,uVar15);
  puVar39 = (ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0x101004e2));
  *puVar39 = ((ulonglong)(uVar6 >> 0x17) | uVar35 << 9) ^ *(ulonglong *)(lVar4 + -0xa78) >> 0x17 ^
             uVar30;
  uVar15 = DAT_182671d2c;
  *(undefined1 *)(lVar4 + -0x2e9) = **(undefined1 **)(lVar4 + -0x990);
  lVar5 = DAT_182671c40;
  uVar35 = CONCAT44(uVar15,uVar15);
  puVar32 = (ulonglong *)(lVar4 - (uVar33 ^ 0x103c054b));
  *puVar32 = (*(ulonglong *)(lVar4 + -0xa78) ^ uVar41) << 0x29 ^ uVar35;
  uVar30 = *(ulonglong *)(lVar5 + -0xc38) ^ uVar30 | uVar35 ^ *(ulonglong *)(lVar5 + -0xc90);
  uVar44 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar41 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar5 + -0x960) = uVar30 ^ uVar44;
  uVar7 = DAT_182671d64;
  uVar6 = DAT_182671c78;
  uVar31 = (ulonglong)DAT_182671d64;
  uVar35 = (ulonglong)DAT_182671c78;
  uVar30 = (*(ulonglong *)(lVar5 + -0xbd8) ^ uVar46) - uVar30 ^ uVar41;
  *(ulonglong *)(lVar5 + -0xda8) = uVar30;
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar36 = *(ulonglong *)(lVar5 - (uVar35 ^ 0xb7d30ad6)) ^
           *(ulonglong *)(lVar5 - ((ulonglong)uVar29 ^ 0x101009ca)) ^ uVar37 ^ uVar45 ^ uVar36;
  *puVar1 = uVar36;
  uVar15 = DAT_182671ec4;
  lVar4 = DAT_182671c40;
  uVar35 = (uVar36 >> 0x20 ^ uVar31) >> 8;
  uVar31 = (uVar37 ^ uVar36) << 0x18;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar35 ^ CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *(ulonglong *)(lVar4 + -0xa78) = uVar31 ^ CONCAT44(uVar15,uVar15);
  uVar19 = DAT_182671f74;
  *(undefined1 *)(lVar4 + -0x6b9) = **(undefined1 **)(lVar4 + -0x990);
  uVar15 = DAT_182671cf8;
  uVar36 = CONCAT44(uVar19,uVar19);
  uVar35 = (uVar31 | uVar35) ^ uVar36;
  *(ulonglong *)(lVar4 + -0xc38) = uVar35;
  uVar31 = CONCAT44(uVar15,uVar15);
  *puVar32 = uVar30 ^ uVar35 ^ uVar36 ^ uVar41;
  uVar19 = DAT_182671f24;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (*(ulonglong *)(lVar4 + -0x228) ^ uVar45) - (*(ulonglong *)(lVar4 + -0xc38) ^ uVar36) ^
       uVar31;
  uVar15 = DAT_182671d04;
  uVar37 = CONCAT44(uVar19,uVar19);
  uVar35 = *(ulonglong *)(lVar4 + -0xda8) ^ *(ulonglong *)(lVar4 + -0xc38) ^ uVar37 ^ uVar36 ^
           uVar41;
  *(ulonglong *)(lVar4 + -0x110) = uVar35;
  uVar30 = CONCAT44(uVar15,uVar15);
  *puVar1 = (uVar35 ^ uVar37) >> (((byte)uVar6 ^ 0xca) & 0x3f) ^ uVar30;
  uVar20 = DAT_182671ea0;
  lVar4 = DAT_182671c40;
  bVar28 = (byte)uVar29;
  uVar43 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  puVar32 = (ulonglong *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(DAT_182671c40 + -0x888) = (uVar37 ^ uVar35) << ((bVar28 ^ 0xd6) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xb7d30286)) =
       (*puVar32 ^ uVar36) >> ((bVar28 ^ 0xfa) & 0x3f);
  uVar15 = DAT_182671e58;
  uVar45 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar35 = uVar30 ^ *puVar1 | *(ulonglong *)(lVar4 + -0x888) ^ uVar43;
  *(ulonglong *)(lVar4 + -0xc90) = uVar35 ^ uVar45;
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x228) = (*(ulonglong *)(lVar4 + -0xda8) ^ uVar41) - uVar35 ^ uVar43;
  *(ulonglong *)(lVar4 + -0x110) =
       (CONCAT44(uVar29,uVar18) ^ 0x5f80ab49f07fb07a) -
       (CONCAT44(uVar29,uVar6) ^ 0x26722e1e0c19e966);
  uVar21 = DAT_182671eb4;
  uVar15 = DAT_182671c74;
  lVar5 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  uVar44 = *(ulonglong *)(lVar4 + -0xbd8) ^ *(ulonglong *)(DAT_182671c40 + -0x960) ^ uVar35 ^ uVar31
           ^ uVar44;
  bVar23 = (byte)DAT_182671c74;
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar44;
  uVar6 = DAT_182671c48;
  *(ulonglong *)(lVar5 + -0xa78) = (*puVar42 ^ uVar35) >> ((bVar23 ^ 8) & 0x3f) ^ uVar38;
  uVar19 = DAT_182671e84;
  uVar30 = (uVar44 ^ uVar35) << ((bVar28 ^ 0xdd) & 0x3f);
  uVar35 = (ulonglong)DAT_182671c88;
  *puVar1 = uVar30 ^ CONCAT44(uVar21,uVar21);
  uVar36 = CONCAT44(uVar19,uVar19);
  uVar30 = *(ulonglong *)(lVar5 - (uVar35 ^ 0x85306a78)) ^ uVar38 | uVar30;
  uVar41 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar5 + -0xda8) = uVar30 ^ uVar36;
  uVar17 = DAT_182671c7c;
  uVar7 = DAT_182671c54;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c78 ^ 0xb7d309ee)) =
       (*(ulonglong *)(lVar5 + -0xbd8) ^ uVar31) - uVar30 ^ uVar41;
  uVar19 = DAT_182671d5c;
  uVar35 = CONCAT44(DAT_182671e14,DAT_182671e14);
  uVar30 = *(ulonglong *)(lVar5 + -0xda8) ^ *(ulonglong *)(lVar5 + -0x228) ^ uVar35 ^ uVar36 ^
           uVar43;
  *(ulonglong *)(lVar5 + -0x960) = uVar30;
  uVar8 = DAT_182671c5c;
  uVar31 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar5 + -0xc38) = (uVar30 ^ uVar35) >> (((byte)uVar7 ^ 0x55) & 0x3f) ^ uVar31;
  lVar4 = DAT_182671c40;
  puVar2 = (uint *)(DAT_182671c40 + -0x9dc);
  uVar36 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (uVar30 ^ uVar35) << (((byte)uVar8 ^ 0x72) & 0x3f) ^ uVar36;
  uVar7 = DAT_182671c50;
  uVar30 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c50 ^ 0x5b3167d4)) = *puVar2 | 0x7a50d852;
  uVar19 = DAT_182671f88;
  uVar35 = *(ulonglong *)(lVar4 + -0x228);
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0x1f136e57)) ^ uVar36 | *puVar39 ^ uVar31) ^ uVar37;
  uVar9 = DAT_182671c84;
  uVar8 = DAT_182671c58;
  uVar30 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x103c0203)) =
       (uVar35 ^ uVar43) - (CONCAT44(DAT_182671c58,uVar12) ^ 0x46c6272658e52f6) ^ uVar30;
  *(ulonglong *)(lVar4 + -0xda8) = CONCAT44(uVar11,uVar9) ^ 0x4669bc6a216c1a4d;
  uVar19 = DAT_182671fa8;
  uVar33 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar4 + -0x960) =
       (*(ulonglong *)(lVar4 + -0xbd8) ^ uVar30) - (uVar37 ^ *puVar1) ^ uVar33;
  uVar9 = DAT_182671c78;
  uVar13 = DAT_182671c6c;
  lVar4 = DAT_182671c40;
  uVar30 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       (uVar37 ^ *puVar1) - (CONCAT44(uVar29,uVar7) ^ 0xf40429a51121dbe2) ^ uVar30;
  uVar19 = DAT_182671d6c;
  uVar35 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar38 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar44 = uVar35 ^ uVar41 ^ uVar45 ^ *(ulonglong *)(lVar4 + -0xc90) ^
           *(ulonglong *)(lVar4 + -0x110);
  bVar22 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar4 + -0x228) = uVar44;
  *(ulonglong *)(lVar4 + -0xbd8) = (uVar44 ^ uVar35) >> (((byte)uVar9 ^ 0xee) & 0x3f) ^ uVar38;
  lVar4 = DAT_182671c40;
  uVar31 = CONCAT44(uVar19,uVar19);
  *puVar1 = (uVar44 ^ uVar35) << ((bVar22 ^ 0x6b) & 0x3f) ^ uVar31;
  uVar10 = DAT_182671c7c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c7c ^ 0x8c58e67f)) =
       (*(ulonglong *)(lVar4 + -0xa78) ^ uVar36) >>
       ((*(byte *)(lVar4 + -0x888) ^ (byte)uVar20) & 0x3f);
  uVar35 = *puVar1;
  uVar44 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(int *)(lVar4 + -0xc70) = *(int *)(lVar4 + -0x94c) << ((bVar23 ^ 0x23) & 0x1f);
  uVar19 = DAT_182671d54;
  *(ulonglong *)(lVar4 + -0x228) =
       (uVar31 ^ uVar35 | *(ulonglong *)(lVar4 + -0xbd8) ^ uVar38) ^ uVar44;
  uVar14 = DAT_182671c6c;
  uVar9 = DAT_182671c54;
  uVar7 = DAT_182671c4c;
  uVar38 = (ulonglong)DAT_182671c4c;
  uVar43 = (ulonglong)DAT_182671c54;
  uVar36 = CONCAT44(uVar19,uVar19);
  uVar35 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x4bc50936)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0x2626b8c5)) ^ uVar41) -
       (CONCAT44(uVar13,uVar10) ^ 0x55a565697ab0208f) ^ uVar36;
  uVar10 = DAT_182671c64;
  uVar41 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar4 + -0xa78) =
       (*(ulonglong *)(lVar4 + -0x888) ^ uVar36) -
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x462adbf1)) ^ uVar44) ^ uVar41;
  uVar31 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x4bc50d2e)) =
       (*(ulonglong *)(lVar4 + -0x228) ^ uVar44) - (CONCAT44(uVar34,uVar10) ^ 0x4a6d9160afe02ab9) ^
       uVar31;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (CONCAT44(uVar34,uVar7) ^ 0x3a6ac45b49b6c94e) >>
       ((byte)*(undefined8 *)(lVar4 + -0xda8) & 0x3f);
  uVar19 = DAT_182671dc4;
  uVar10 = DAT_182671c5c;
  lVar5 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar35 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0x6de3b35b)) ^ uVar36) =
       *(ulonglong *)(lVar4 - (uVar43 ^ 0x4067383b)) ^ uVar33 ^ uVar37;
  puVar32 = (ulonglong *)((*(ulonglong *)(lVar5 + -0xb30) ^ uVar36) + 8);
  *(ulonglong *)(lVar5 + -0x10) = (ulonglong)puVar32 ^ CONCAT44(uVar19,uVar19);
  *puVar32 = *(ulonglong *)(lVar5 + -0xc38) ^ uVar30 ^ uVar37;
  puVar32 = (ulonglong *)
            ((*(ulonglong *)(lVar5 + -0xb30) ^ uVar36) +
            (CONCAT44(uVar34,DAT_182671c94) ^ 0x2d0bbeea5b316742) * 8);
  *(ulonglong *)(lVar5 + -0xa40) = (ulonglong)puVar32 ^ CONCAT44(DAT_182671d78,DAT_182671d78);
  *puVar32 = *(ulonglong *)(lVar5 + -0xa78) ^ uVar41 ^ uVar37;
  uVar7 = DAT_182671c48;
  uVar44 = (ulonglong)DAT_182671c48;
  uVar30 = CONCAT44(uVar8,DAT_182671c48);
  puVar32 = (ulonglong *)
            ((*(ulonglong *)(lVar5 + -0xb30) ^ uVar36) +
            (CONCAT44(uVar10,uVar14) ^ 0x402121402626b9d6) * 8);
  *(ulonglong *)(lVar5 + -0x9b0) = (ulonglong)puVar32 ^ CONCAT44(DAT_182671d28,DAT_182671d28);
  *puVar32 = *(ulonglong *)(lVar5 - (uVar27 ^ 0x94da5c90)) ^ uVar31 ^ uVar37;
  *(uint *)(lVar5 + -0x61c) = DAT_182671c78 ^ 0xa746cf26 | DAT_182671c78 ^ 0x2d1d7d98;
  uVar19 = DAT_182671ec8;
  uVar8 = DAT_182671c7c;
  uVar33 = (ulonglong)DAT_182671c7c;
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar5 - ((ulonglong)uVar10 ^ 0x40212250)) +
            ((CONCAT44(uVar11,uVar12) ^ 0x5b31674094da5000) + (uVar30 ^ 0x7dffb9fb6fe9bfc8) * 0xc) *
            8);
  *(ulonglong *)(lVar5 + -0x2e8) = (ulonglong)puVar32 ^ CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar11 = DAT_182671c90;
  uVar27 = (ulonglong)DAT_182671cfc;
  uVar41 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar30 = *puVar32 ^ uVar41 ^ uVar37;
  *puVar1 = uVar30;
  bVar23 = (byte)DAT_182671f14;
  lVar4 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671ca0;
  bVar40 = (byte)uVar19 ^ (byte)DAT_182671de4;
  plVar24 = (longlong *)(DAT_182671c40 - (uVar44 ^ 0x6fe9b7b8));
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (uVar41 ^ uVar30) >> (((byte)uVar11 ^ 0x6b) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  bVar40 = bVar40 ^ *(byte *)(lVar4 + -0x110);
  *(byte *)(lVar4 + -0x2e9) = bVar40;
  pbVar26 = (byte *)(*plVar24 + (CONCAT44(uVar18,uVar8) ^ 0x103c09db8c58eaef));
  *(uint *)(lVar4 + -0x58c) = (DAT_182671c7c ^ 0x2592a730) + *(int *)(lVar4 + -0x444);
  bVar22 = bVar23 ^ (byte)DAT_182671de4;
  *(ulonglong *)(lVar4 + -0xad0) = (ulonglong)pbVar26 ^ uVar36;
  uVar8 = DAT_182671c50;
  uVar41 = (ulonglong)DAT_182671c50;
  *pbVar26 = bVar22 ^ bVar40;
  uVar11 = DAT_182671c80;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x402129c8)) =
       CONCAT44(DAT_182671c80,uVar8) ^ CONCAT44(uVar16,uVar15) ^ 0x7d3a7a7db06a3c89;
  lVar4 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671e88,DAT_182671e88);
  puVar32 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 + -0x310) +
            ((CONCAT44(uVar17,uVar11) ^ 0x8c58eaef1f13642f) +
            (CONCAT44(uVar6,DAT_182671c84) ^ 0x6fe9bfc8462ad9d9) * 0xc) * 8);
  *(int *)(DAT_182671c40 + -0x27c) = 0x7252fbd6 << (((byte)uVar7 ^ 200) & 0x1f);
  uVar19 = DAT_182671dbc;
  *(ulonglong *)(lVar4 + -0x610) = (ulonglong)puVar32 ^ uVar35;
  uVar20 = DAT_182671f20;
  uVar36 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar4 + -0x228) = *puVar32 ^ uVar36 ^ uVar37;
  *(ulonglong *)(lVar4 + -0xda8) =
       0x673e4f62da55dac - (CONCAT44(uVar9,DAT_182671c6c) ^ 0x2621d368c0517ba2);
  uVar35 = (ulonglong)DAT_182671c58;
  uVar30 = (ulonglong)DAT_182671ed0;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x228)) >> ((bVar28 ^ 0xd2) & 0x3f) ^
       CONCAT44(uVar20,uVar20);
  uVar19 = DAT_182671e20;
  lVar5 = DAT_182671c40;
  bVar22 = (byte)DAT_182671e20;
  *(byte *)(DAT_182671c40 - (uVar38 ^ 0x4bc50707)) =
       *(byte *)(lVar4 - (uVar35 ^ 0x7dffb223)) ^ (byte)uVar20 ^ bVar22;
  *(ulonglong *)(lVar5 + -0x428) = *(longlong *)(lVar5 + -0x870) + 1U ^ uVar30;
  uVar7 = DAT_182671c84;
  uVar35 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar34 ^ 0x2d0bbac2)) ^ uVar30) =
       bVar22 ^ bVar23 ^ *(byte *)(lVar5 + -0x6b9);
  puVar32 = (ulonglong *)
            (*(longlong *)(lVar5 - (uVar41 ^ 0x5b316450)) +
            ((CONCAT44(uVar29,uVar12) ^ 0x101008da94da5000) +
            (CONCAT44(uVar10,uVar7) ^ 0x40212140462ad9d9) * 0xc) * 8);
  uVar30 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar5 + -0x2e8) = (ulonglong)puVar32 ^ uVar35;
  uVar19 = DAT_182671e10;
  uVar7 = DAT_182671c58;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x5b316ac8)) = *puVar32 ^ uVar30 ^ uVar37;
  lVar4 = DAT_182671c40;
  uVar35 = (uVar30 ^ *puVar1) >> (((byte)uVar7 ^ 0xeb) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  bVar22 = (byte)uVar19 ^ (byte)DAT_182671f80;
  plVar24 = (longlong *)(DAT_182671c40 + -0x870);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar35;
  *(ulonglong *)(lVar4 + -0xb90) =
       (CONCAT44(uVar15,uVar29) ^ 0x67405b31101008d8) + *plVar24 ^ uVar27;
  uVar30 = (ulonglong)DAT_182671c64;
  *(byte *)(lVar4 + -0xcb9) = bVar22 ^ (byte)uVar35;
  uVar20 = DAT_182671f10;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x4bc50a2e)) ^ uVar27) =
       *(byte *)(lVar4 - (uVar30 ^ 0x5b316bf9)) ^ (byte)DAT_182671f80 ^ bVar23;
  uVar19 = DAT_182671cbc;
  lVar4 = DAT_182671c40;
  uVar27 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x8c58ecff)) =
       *(longlong *)(DAT_182671c40 + -0x310) +
       (CONCAT44(uVar6,DAT_182671c90) ^ 0x6fe9bfc86de3b86b) * 8 ^ uVar27;
  uVar35 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  bVar23 = (byte)DAT_182671c88;
  uVar37 = *(ulonglong *)(*(ulonglong *)(lVar4 + -0x610) ^ uVar27) ^ uVar35 ^ uVar37;
  *(ulonglong *)(lVar4 + -0x888) = uVar37;
  uVar27 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (uVar37 ^ uVar35) >> ((bVar23 ^ 0x18) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  uVar35 = (ulonglong)DAT_182671c98;
  *(byte *)(lVar4 + -0xb69) =
       *(byte *)(lVar4 - (uVar27 ^ 0x5b316c98)) ^ (byte)uVar19 ^ (byte)DAT_182671d8c;
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x5b316b10)) = *(longlong *)(lVar4 + -0x870) + 3U ^ uVar35;
  *puVar1 = (CONCAT44(uVar15,uVar8) ^ 0x1519eaabdeb221cb) +
            (CONCAT44(uVar13,uVar18) ^ 0x34d612971a594417);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar3 ^ uVar34) * 4) = uVar25;
  return;
}



############ FUN_ 180fadb40 size=5245 ############

void FUN_180fadb40(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  int iVar14;
  byte bVar15;
  uint uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  byte bVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_98;
  
  uVar10 = DAT_182671f68;
  uVar13 = DAT_182671c8c;
  uVar8 = DAT_182671c74;
  uVar33 = DAT_182671c68;
  uVar7 = DAT_182671c58;
  uVar6 = DAT_182671c54;
  uVar5 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671c4c;
  uVar20 = (ulonglong)DAT_182671c8c;
  uVar45 = (ulonglong)DAT_182671c74;
  uVar25 = (ulonglong)DAT_182671c54;
  uVar37 = (ulonglong)DAT_182671c68;
  uVar16 = DAT_182671c58 ^ DAT_182671c68;
  uVar17 = (ulonglong)uVar16;
  uVar23 = DAT_182671c80 * DAT_182671c8c;
  uVar18 = DAT_182671c74 + DAT_182671c54;
  uVar47 = (DAT_182671c4c << 0x10 | DAT_182671c4c & 0xff00) << 8 | DAT_182671c4c >> 8 & 0xff00 |
           DAT_182671c4c >> 0x18;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_18267229c);
  uVar26 = *(uint *)(&DAT_182613218 + DAT_18267229c) ^ DAT_182671c4c;
  uVar27 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar41 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar21 = (ulonglong)DAT_182671c58;
  uVar31 = (*(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xc4c452d1)) ^ uVar27) << 0x10;
  DAT_182671c5c = uVar23;
  DAT_182671c64 = uVar16;
  DAT_182671c90 = uVar18;
  DAT_182671c94 = uVar47;
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar31 ^ uVar41;
  uVar38 = CONCAT44(uVar10,uVar10);
  bVar15 = (byte)uVar33;
  uVar27 = (*(ulonglong *)(lVar3 - (uVar21 ^ 0x98a3bb96)) ^ uVar27) >> ((bVar15 ^ 0x77) & 0x3f);
  uVar28 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *(ulonglong *)(lVar3 + -0x680) = uVar27 ^ uVar38;
  uVar12 = DAT_182671f90;
  uVar49 = (ulonglong)uVar18;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xefbf9747)) = (uVar27 | uVar31) ^ uVar28;
  uVar11 = DAT_182671e7c;
  uVar27 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar39 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar31 = uVar39 ^ uVar27 ^ uVar28 ^ *(ulonglong *)(lVar3 + -0xc18) ^
           *(ulonglong *)(lVar3 + -0x888);
  *(ulonglong *)(lVar3 + -0x3d8) = uVar31;
  uVar18 = DAT_182671d20;
  lVar4 = DAT_182671c40;
  uVar31 = uVar31 ^ uVar27;
  uVar32 = (ulonglong)DAT_182671d20;
  uVar42 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x4b8)) + uVar31 ^ uVar42;
  uVar19 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar34 = uVar31 << (((byte)uVar6 ^ 0x6f) & 0x3f);
  uVar28 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *(ulonglong *)(lVar4 + -0x628) = uVar34 ^ uVar19;
  uVar10 = DAT_182671c80;
  uVar27 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar4 + -0xda8) = uVar31 >> (((byte)uVar8 ^ 0x78) & 0x3f) ^ uVar28;
  lVar3 = DAT_182671c40;
  uVar31 = CONCAT44(uVar18,uVar18);
  uVar30 = (ulonglong)uVar47;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x8670a527)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0xe7fe7cee)) ^ uVar28 | uVar34) ^ uVar31;
  lVar4 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar47 ^ 0xf5a927d4)) =
       *(ulonglong *)(lVar3 + -0x5e8) ^ uVar35 ^ uVar31 ^ uVar42 ^ *(ulonglong *)(lVar3 + -0x7e8);
  uVar28 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar27 = CONCAT44(DAT_182671e48,DAT_182671e48);
  bVar2 = (byte)uVar16;
  *(ulonglong *)(lVar3 - (uVar49 ^ 0xefbf97e7)) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0xc18)) + (*(ulonglong *)(lVar3 + -0xb08) ^ uVar28) ^
       uVar27;
  uVar28 = *(ulonglong *)(lVar3 + -0xb08) ^ uVar28;
  uVar31 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar3 + -0xa70) = uVar28 << (((byte)uVar13 ^ 0xf6) & 0x3f) ^ uVar31;
  uVar11 = DAT_182671e64;
  *(ulonglong *)(lVar3 + -0x760) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0xe427ace5)) ^ uVar41) +
       (CONCAT44(uVar6,uVar5) ^ 0x1a437dfb76fa1f16);
  uVar28 = uVar28 >> ((bVar2 ^ 0x56) & 0x3f);
  *(ulonglong *)(lVar3 + -0x110) = uVar28 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671e24;
  *(ulonglong *)(lVar4 + -0xa50) =
       *(ulonglong *)(lVar4 - (uVar21 ^ 0x98a3b826)) ^ uVar35 |
       CONCAT44(uVar47,uVar8) ^ 0x3a22763051edc5e4;
  uVar8 = DAT_182671f60;
  uVar12 = DAT_182671f00;
  uVar29 = (ulonglong)DAT_182671f60;
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar28 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xe7fe7b36)) ^ uVar31 | uVar28) ^ uVar34;
  *(ulonglong *)(lVar4 + -0x8f0) = uVar28;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar46 = CONCAT44(uVar12,uVar12);
  uVar28 = uVar31 ^ uVar34 ^ uVar27 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0x828);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar28;
  uVar28 = (uVar31 ^ uVar28) << 0x17;
  uVar42 = (*(ulonglong *)(lVar4 - (uVar25 ^ 0x7b2d79eb)) ^ uVar31) +
           (uVar42 ^ *(ulonglong *)(lVar4 + -0x7e8)) ^ uVar46;
  uVar31 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(lVar4 + -0xb18) = uVar42;
  uVar11 = DAT_182671e5c;
  *(ulonglong *)(lVar4 + -0xa08) = uVar28 ^ uVar31;
  lVar3 = DAT_182671c40;
  uVar39 = CONCAT44(uVar11,uVar11);
  uVar31 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       (*(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0x5c67ebf7)) >> 0x20 ^ uVar29) >> 9 ^ uVar39;
  uVar11 = DAT_182671f5c;
  uVar28 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0xe7fe754e)) ^ uVar39 | uVar28) ^
           uVar31;
  *(ulonglong *)(lVar3 + -0x380) = uVar28;
  uVar43 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x680) = uVar43 ^ uVar31 ^ uVar46 ^ uVar28 ^ uVar42;
  *(byte *)(lVar3 - (uVar45 ^ 0x749223b5)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x1a8) ^ uVar32) ^ (byte)DAT_182671f14;
  uVar48 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xf5a92f6c)) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x828)) + (uVar35 ^ *(ulonglong *)(lVar3 + -0x30)) ^ uVar48
  ;
  uVar31 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar3 - (uVar49 ^ 0xefbf9b77)) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x30)) << ((bVar2 ^ 0x79) & 0x3f) ^ uVar31;
  uVar28 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  local_98 = (byte)uVar23;
  *(ulonglong *)(lVar3 + -0x3d8) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x30)) >> ((bVar2 ^ 0x49) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x98a3be3e)) =
       (CONCAT44(uVar47,uVar13) ^ 0xc6ca0a7df53f657a) >> ((local_98 ^ 0xad) & 0x3f);
  uVar32 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar3 + -0xda8) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x4b8) | uVar28 ^ *(ulonglong *)(lVar3 + -0x3d8)) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar49 ^ 0xefbf9a27)) =
       (uVar46 ^ *(ulonglong *)(lVar3 + -0xb18)) + (*(ulonglong *)(lVar3 + -0x8f0) ^ uVar34);
  uVar10 = DAT_182671c84;
  uVar31 = (ulonglong)DAT_182671c84;
  uVar29 = CONCAT44(DAT_182671e20,DAT_182671e20);
  uVar28 = uVar29 ^ uVar32 ^ uVar48 ^ *(ulonglong *)(lVar3 + -0x888) ^
           *(ulonglong *)(lVar3 + -0xda8);
  *(ulonglong *)(lVar3 + -0xc18) = uVar28;
  uVar40 = uVar28 ^ uVar29;
  uVar13 = uVar10 << 0x10 | uVar10 >> 0x10;
  uVar39 = (ulonglong)uVar13;
  *(ulonglong *)(lVar3 + -0x510) = CONCAT44(uVar16,uVar6) ^ 0x40cddee36c47c0d6 | uVar28 ^ uVar29;
  uVar11 = DAT_182671ef8;
  lVar4 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671da0,DAT_182671da0);
  bVar22 = (byte)(uVar10 >> 0x10);
  uVar35 = (*(ulonglong *)(lVar3 - (uVar39 ^ 0xdaebf3a6)) ^ uVar46) + uVar40;
  DAT_182671c50 = uVar13;
  *(ulonglong *)(lVar3 + -0x760) = uVar35 ^ uVar34;
  uVar42 = CONCAT44(uVar11,uVar11);
  bVar44 = (byte)uVar10;
  *(ulonglong *)(lVar4 + -0xb08) = uVar40 << ((bVar22 ^ 0xbb) & 0x3f) ^ uVar42;
  uVar8 = DAT_182671c80;
  uVar28 = CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar40 = uVar40 >> ((bVar44 ^ 0xd0) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa50) = uVar40 ^ uVar28;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0xdaebf2ce)) = uVar35 - uVar40;
  uVar11 = DAT_182671d3c;
  uVar28 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xe7fe7b16)) ^ uVar28 |
           uVar42 ^ *(ulonglong *)(lVar3 + -0xb08)) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x110) = uVar28;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xe7fe76ae)) =
       uVar35 ^ uVar28 ^ uVar34 ^ uVar19 ^ *(ulonglong *)(lVar3 + -0x760);
  uVar11 = DAT_182671e3c;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar42 ^ *(ulonglong *)(lVar3 + -0xb08) ^ 0x83b6545a9496065;
  uVar40 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xa08) =
       (uVar43 ^ *(ulonglong *)(lVar3 + -0x680)) + (uVar48 ^ *(ulonglong *)(lVar3 + -0x888)) ^
       uVar40;
  *(ulonglong *)(lVar3 + -0x408) = *(ulonglong *)(lVar3 + -0x5e8) ^ 0x957a9919beecb3c6;
  uVar28 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(lVar3 + -0x380) =
       (uVar43 ^ *(ulonglong *)(lVar3 + -0x680)) << (((byte)uVar6 ^ 0x7e) & 0x3f) ^ uVar28;
  uVar42 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xdaebf096)) =
       (uVar43 ^ *(ulonglong *)(lVar3 + -0x680)) >> ((bVar44 ^ 0xf0) & 0x3f) ^ uVar42;
  uVar19 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar42 = (uVar42 ^ *(ulonglong *)(lVar3 + -0x828) | uVar28 ^ *(ulonglong *)(lVar3 + -0x380)) ^
           uVar19;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xe7fe7176)) = uVar42;
  uVar28 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xc4c45779)) =
       uVar28 ^ uVar42 ^ uVar19 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0xa08);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x98a3bcae)) =
       (CONCAT44(uVar23,uVar7) ^ 0x60ee22f84f77a513) + (uVar28 ^ *(ulonglong *)(lVar3 + -0x628)) ^
       uVar38;
  uVar28 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xf5a9243c)) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x760)) + (CONCAT44(uVar5,uVar13) ^ 0xc4e99170c0310603) ^
       uVar28;
  uVar12 = DAT_182671e38;
  uVar34 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  puVar24 = (ulonglong *)(lVar3 - (uVar49 ^ 0xefbf973f));
  *puVar24 = (uVar28 ^ *(ulonglong *)(lVar3 + -0x3d8)) + (*(ulonglong *)(lVar3 + -0x4b8) ^ uVar38) ^
             uVar34;
  uVar11 = DAT_182671d04;
  lVar4 = DAT_182671c40;
  uVar42 = (*(ulonglong *)(lVar3 - (uVar37 ^ 0x5c67edff)) ^ uVar38) << 0x19;
  *(ulonglong *)(lVar3 + -0xda8) = uVar42 ^ CONCAT44(uVar12,uVar12);
  uVar49 = CONCAT44(uVar11,uVar11);
  uVar28 = (*(ulonglong *)(lVar4 + -0x4b8) >> 0x20 ^ (ulonglong)DAT_182671f68) >> 7;
  uVar19 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  *(ulonglong *)(lVar4 + -0x510) = uVar28 ^ uVar49;
  uVar28 = (uVar42 | uVar28) ^ uVar19;
  uVar43 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(lVar4 + -0xb18) = uVar28;
  *(ulonglong *)(lVar4 + -0xc18) =
       uVar43 ^ uVar19 ^ *(ulonglong *)(lVar4 + -0x8f0) ^ uVar34 ^ uVar28;
  *(uint *)(lVar4 + -0x27c) = (DAT_182671c80 ^ 0xa300911c) * -0x70b67ed3;
  uVar42 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *(ulonglong *)(lVar4 + -0xa70) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x7e8)) + (CONCAT44(uVar23,uVar6) ^ 0x8993245742354218) ^
       uVar42;
  uVar11 = DAT_182671d80;
  *(ulonglong *)(lVar4 + -0xa50) = ((ulonglong)(uVar10 >> 3) | uVar17 << 0x1d) ^ 0x1cd3a566c4d35484;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0xdaebf9ae)) =
       (CONCAT44(uVar33,uVar5) ^ 0x76cbf1c2c020a22b) + (uVar40 ^ *(ulonglong *)(lVar4 + -0xa08)) ^
       CONCAT44(uVar11,uVar11);
  uVar42 = uVar42 ^ *(ulonglong *)(lVar4 + -0xa70);
  uVar28 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar4 + -0xb08) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar4 + -0x110)) + uVar42 ^ uVar28;
  uVar40 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar42 << ((bVar15 ^ 0x66) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar4 + -0x888) =
       0xc164af7f3bba9bcb >> ((*(byte *)(lVar4 - (uVar20 ^ 0x8670a1df)) ^ (byte)uVar11) & 0x3f);
  uVar19 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xf8bedf03)) =
       uVar42 >> (((byte)(uVar5 >> 0x18) ^ 0xfb) & 0x3f) ^ uVar19;
  lVar3 = DAT_182671c40;
  uVar17 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x7492207c)) =
       (uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8) |
       uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0x2b0)) ^ uVar17;
  uVar5 = DAT_182671d90;
  uVar42 = (ulonglong)DAT_182671d90;
  uVar38 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar17 = uVar38 ^ uVar17 ^ uVar28 ^ *(ulonglong *)(lVar3 + -0x408) ^
           *(ulonglong *)(lVar3 + -0xb08);
  *(ulonglong *)(lVar3 + -0x680) = uVar17;
  uVar11 = DAT_182671d74;
  uVar20 = (ulonglong)DAT_182671f50;
  uVar35 = CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar19 = CONCAT44(DAT_182671f50,DAT_182671f50);
  uVar17 = (uVar38 ^ uVar17) << 0x2e;
  uVar34 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xf5a92164)) ^ uVar38) + (uVar34 ^ *puVar24) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x828) = uVar17 ^ CONCAT44(DAT_182671f14,DAT_182671f14);
  *(ulonglong *)(lVar3 + -0x380) = uVar34;
  uVar12 = DAT_182671e10;
  *(ulonglong *)(lVar3 + -0x30) =
       ((ulonglong)(uVar5 >> 0x12) | uVar42 << 0xe) ^ *(ulonglong *)(lVar3 + -0x680) >> 0x12 ^
       CONCAT44(uVar11,uVar11);
  lVar4 = DAT_182671c40;
  uVar30 = CONCAT44(uVar12,uVar12);
  uVar17 = (*(ulonglong *)(lVar3 - (uVar45 ^ 0x74922444)) ^ CONCAT44(uVar11,uVar11) | uVar17) ^
           uVar30;
  *(ulonglong *)(lVar3 + -0x628) = uVar17;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x98a3bf76)) = uVar19 ^ uVar30 ^ uVar35 ^ uVar17 ^ uVar34;
  uVar12 = DAT_182671dac;
  *(ulonglong *)(lVar3 + -0x3d8) =
       (uVar49 ^ *(ulonglong *)(lVar3 + -0x510)) <<
       (((byte)uVar11 ^ *(byte *)(lVar3 + -0x30)) & 0x3f);
  uVar5 = DAT_182671c80;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0xd0295322)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0xd0295b82)) ^ uVar43) +
       (uVar28 ^ *(ulonglong *)(lVar4 + -0xb08)) ^ uVar21;
  uVar11 = DAT_182671ca4;
  uVar28 = (uVar43 ^ *(ulonglong *)(lVar4 + -0xc18)) << ((bVar22 ^ 0xb2) & 0x3f);
  *(ulonglong *)(lVar4 + -0xda8) = uVar28 ^ CONCAT44(DAT_182671d14,DAT_182671d14);
  uVar31 = (*(ulonglong *)(lVar4 - (uVar31 ^ 0xf8bed6f3)) ^ uVar43) >> ((bVar44 ^ 0xdf) & 0x3f);
  uVar17 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar4 + -0xb18) = uVar31 ^ CONCAT44(uVar11,uVar11);
  uVar12 = DAT_182671ce8;
  uVar31 = (uVar31 | uVar28) ^ uVar17;
  *(ulonglong *)(lVar4 + -0xa50) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x2b0)) >>
       (((byte)uVar11 ^ *(byte *)(lVar4 + -0xb18)) & 0x3f);
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar31;
  uVar30 = CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar31 = uVar28 ^ uVar17 ^ uVar21 ^ *(ulonglong *)(lVar4 + -0x4b8) ^ uVar31;
  *(ulonglong *)(lVar4 + -0xa08) = uVar31;
  *(ulonglong *)(lVar4 + -0x888) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0xe427aa75)) ^ uVar35) +
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0x5c67e34f)) ^ uVar28) ^ uVar30;
  uVar11 = DAT_182671d34;
  *(ulonglong *)(lVar4 + -0x110) = *(ulonglong *)(*(ulonglong *)(lVar4 + -0x588) ^ uVar29) ^ uVar27;
  uVar12 = DAT_182671f2c;
  uVar17 = (*(ulonglong *)(lVar4 - (uVar45 ^ 0x74922e7c)) ^ uVar28) << (((byte)uVar5 ^ 0x7c) & 0x3f)
  ;
  *(ulonglong *)(lVar4 + -0xa70) = uVar17 ^ CONCAT44(uVar11,uVar11);
  uVar36 = (uVar31 ^ uVar28) >> ((bVar2 ^ 0x57) & 0x3f);
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x5e8) = uVar36 ^ uVar29;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x7b2d7f53)) = (uVar17 | uVar36) ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0xdaebf04e)) =
       0x88923875ee2fc72 >> ((byte)*(undefined8 *)(lVar4 - (uVar25 ^ 0x7b2d710b)) & 0x3f);
  uVar11 = DAT_182671d94;
  *(ulonglong *)(lVar4 + -0x680) =
       *(ulonglong *)(lVar4 - (uVar25 ^ 0x7b2d73d3)) ^ CONCAT44(DAT_182671dcc,DAT_182671dcc) ^
       uVar28 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x408);
  iVar9 = DAT_182671c78;
  uVar7 = DAT_182671c70;
  uVar6 = DAT_182671c6c;
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar17 = *(ulonglong *)(lVar4 + -0x760);
  uVar19 = uVar19 ^ uVar17;
  uVar36 = CONCAT44(uVar11,uVar11);
  iVar14 = DAT_182671c78 * DAT_182671c48;
  uVar28 = (uVar21 ^ *(ulonglong *)(DAT_182671c40 + -0x4b8)) + uVar19 ^ uVar36;
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar28;
  uVar33 = uVar7 | uVar6;
  uVar21 = (uVar17 >> 0x20 ^ uVar20) >> 10;
  uVar19 = uVar19 << (((byte)iVar9 ^ 0x83) & 0x3f);
  uVar17 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  DAT_182671c60 = iVar14;
  *(ulonglong *)(lVar3 + -0x628) = uVar19 ^ CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar11 = DAT_182671d24;
  *(ulonglong *)(lVar3 + -0x510) = uVar21 ^ uVar17;
  lVar3 = DAT_182671c40;
  uVar17 = CONCAT44(uVar11,uVar11);
  uVar31 = (uVar19 | uVar21) ^ uVar17;
  uVar21 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  DAT_182671c88 = uVar33;
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar31;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x3b1c3233)) =
       uVar31 ^ uVar21 ^ uVar17 ^ uVar28 ^ uVar36;
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x3bff3377)) ^ uVar30) +
       (*(ulonglong *)(lVar3 + -0x3d8) ^ uVar21) ^ uVar32;
  *(ulonglong *)(lVar3 + -0xc18) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x31eb3094)) ^ uVar41) ^ uVar27;
  lVar3 = DAT_182671c40;
  puVar24 = (ulonglong *)(DAT_182671c40 + -0x3d8);
  uVar27 = (*(ulonglong *)(DAT_182671c40 + -0x3d8) ^ uVar21) << (((byte)uVar6 ^ 0x3c) & 0x3f);
  uVar17 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar27 ^ CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar21 = (*puVar24 ^ uVar21) >> (((byte)uVar33 ^ 0xdf) & 0x3f);
  uVar28 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar3 + -0xb18) = uVar21 ^ uVar17;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xdaebfa0e)) = (uVar21 | uVar27) ^ uVar28;
  uVar27 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(uVar5,iVar14) ^ 0xa5264e012505a935) >> (((byte)uVar7 ^ 0xe3) & 0x3f);
  uVar17 = *(ulonglong *)(lVar3 + -0xb08);
  uVar21 = *(ulonglong *)(lVar3 + -0x2b0);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar47) * 4) = uVar26;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x31eb389c)) =
       uVar27 ^ uVar32 ^ uVar17 ^ uVar28 ^ uVar21;
  return;
}



############ FUN_ 180f73750 size=4462 ############

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

void FUN_180f73750(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  byte *pbVar16;
  uint uVar17;
  longlong *plVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong *puVar26;
  byte bVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_b8;
  
  bVar14 = (byte)DAT_182671d94;
  uVar7 = DAT_182671c84;
  uVar32 = DAT_182671c78;
  uVar3 = DAT_182671c74;
  uVar5 = DAT_182671c54;
  uVar4 = DAT_182671c50;
  lVar1 = DAT_182671c40;
  uVar24 = (ulonglong)DAT_182671c84;
  uVar22 = (ulonglong)DAT_182671c74;
  uVar35 = (ulonglong)DAT_182671c50;
  uVar21 = (ulonglong)DAT_182671c54;
  uVar29 = DAT_182671c78 & DAT_182671c50;
  uVar17 = DAT_182671c84 * DAT_182671c74;
  uVar19 = ~DAT_182671c54;
  uVar25 = *(uint *)(&DAT_182613218 + DAT_1826721f0) ^ DAT_182671c74;
  uVar15 = *(uint *)(&DAT_182613220 + DAT_1826721f0) ^ DAT_182671c84;
  uVar34 = (ulonglong)DAT_182671c78;
  pbVar16 = (byte *)((CONCAT44(uVar17,uVar19) ^ 0x67258d04b5f708ac) +
                    *(longlong *)(DAT_182671c40 + -0x870));
  DAT_182671c64 = uVar19;
  DAT_182671c80 = uVar17;
  DAT_182671c8c = uVar29;
  *(ulonglong *)(DAT_182671c40 + -0x990) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671f3c;
  uVar9 = DAT_182671f24;
  bVar13 = *pbVar16 ^ bVar14 ^ (byte)DAT_182671f14;
  *(byte *)(lVar1 + -0x569) = bVar13;
  lVar2 = DAT_182671c40;
  uVar38 = CONCAT44(uVar9,uVar9);
  uVar40 = (ulonglong)uVar29;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x4a08fabc)) = (bVar14 ^ bVar13) ^ uVar38;
  uVar11 = DAT_182671eb4;
  lVar1 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar2 + -0x380) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0xda8)) << (((byte)uVar32 ^ 0xc6) & 0x3f) ^ uVar28;
  uVar9 = DAT_182671de8;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0x3d8) =
       (*(ulonglong *)(lVar1 - (uVar35 ^ 0x1b1a9edc)) ^ uVar28) +
       (CONCAT44(DAT_182671da8,DAT_182671da8) ^ *(ulonglong *)(lVar1 + -0xb08)) ^ uVar31;
  uVar28 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xa52ae64c)) =
       *(longlong *)(lVar1 + -0x418) + (CONCAT44(uVar4,uVar4) ^ 0x1b1a9d5c1b1a9d54) * 8 ^ uVar28;
  bVar14 = (byte)DAT_182671df0;
  uVar20 = CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar22 = (ulonglong)DAT_182671d2c;
  *(ulonglong *)(*(ulonglong *)(lVar1 + -0x40) ^ uVar28) =
       *(ulonglong *)(lVar1 - (uVar40 ^ 0x13120b84)) ^ uVar20 ^ uVar31;
  uVar6 = DAT_182671f14;
  *(ulonglong *)(lVar1 + -0x708) =
       *(longlong *)(lVar1 - (uVar24 ^ 0xb5f7009b)) + (CONCAT44(uVar17,uVar19) ^ 0x67258d04b5f708a3)
       ^ uVar22;
  bVar13 = (byte)uVar6;
  *(byte *)(lVar1 - ((ulonglong)uVar7 ^ 0xb5f70faa)) =
       *(byte *)((ulonglong)_DAT_182671cf0 ^ *(ulonglong *)(lVar1 + -0x6f8)) ^ bVar13;
  lVar2 = DAT_182671c40;
  *(byte *)(lVar1 - (uVar34 ^ 0xb7d30a17)) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x708) ^ uVar22) ^ bVar14 ^ bVar13;
  lVar1 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar32 ^ 0xb7d30076)) =
       (*(byte *)(lVar2 + -0x2e9) ^ bVar14) ^ uVar31;
  bVar14 = (byte)DAT_182671fa4;
  uVar9 = DAT_182671f58;
  uVar41 = CONCAT44(DAT_182671f50,DAT_182671f50);
  puVar23 = (ulonglong *)(lVar1 - (uVar35 ^ 0x1b1a9a9c));
  *puVar23 = (CONCAT44(DAT_182671f58,DAT_182671f58) ^ *(ulonglong *)(lVar1 + -0x30)) <<
             (((byte)DAT_182671f50 ^ *(byte *)(lVar1 + -0xb20)) & 0x3f);
  uVar22 = (ulonglong)DAT_182671db0;
  *(ulonglong *)(lVar1 + -0x328) = *(longlong *)(lVar1 + -0x870) + 0x49U ^ uVar22;
  lVar2 = DAT_182671c40;
  *(byte *)(lVar1 + -0x6b9) =
       *(byte *)(*(ulonglong *)(lVar1 - (uVar21 ^ 0x4a08f43c)) ^ uVar22) ^ bVar14 ^ bVar13;
  uVar6 = DAT_182671ce8;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       *(ulonglong *)
        (*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0xb5f7084b)) ^
        CONCAT44(DAT_182671f04,DAT_182671f04)) ^ uVar38;
  uVar28 = CONCAT44(uVar6,uVar6);
  puVar26 = (ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xa52aed04));
  *(ulonglong *)(lVar1 + -0x8f0) = (bVar14 ^ *(byte *)(lVar1 + -0x6b9)) ^ uVar28;
  *puVar26 = uVar38 ^ *(ulonglong *)(lVar1 + -0xda8) ^ 0x78da7add30bbd3d;
  uVar22 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (*(ulonglong *)(lVar1 - (uVar21 ^ 0x4a08ffe4)) ^ uVar28) << (((byte)uVar29 ^ 0x54) & 0x3f) ^
       uVar22;
  bVar14 = (byte)DAT_182671f1c;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x4a08fd74)) =
       (CONCAT44(uVar7,uVar19) ^ 0x3cd5e367ad66c4a8) >>
       (((byte)uVar9 ^ *(byte *)(DAT_182671c40 + -0x30)) & 0x3f);
  uVar28 = uVar22 ^ *(ulonglong *)(lVar1 + -0x380) | uVar31 ^ *(ulonglong *)(lVar1 + -0x888);
  uVar22 = (ulonglong)DAT_182671ee8;
  *(ulonglong *)(lVar1 + -0xb20) = uVar28 ^ CONCAT44(DAT_182671eac,DAT_182671eac);
  pbVar16 = (byte *)(*(longlong *)(lVar1 - (uVar40 ^ 0x1312002c)) + 0x4a);
  *(ulonglong *)(lVar1 + -0x370) = (ulonglong)pbVar16 ^ uVar22;
  *(byte *)(lVar1 + -0xcb9) = *pbVar16 ^ bVar14 ^ (byte)DAT_182671f14;
  uVar11 = DAT_182671f88;
  *(longlong *)(lVar1 + -0x7c0) = *(longlong *)(lVar1 - (uVar21 ^ 0x4a08f5a4)) + 0x1c6d638d64d585c8;
  uVar9 = DAT_182671e6c;
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar22 = (ulonglong)(bVar14 ^ *(byte *)(lVar1 + -0xcb9));
  *(ulonglong *)(lVar1 + -0xda8) = uVar22 ^ uVar33;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar34 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *(ulonglong *)(lVar1 + -0xb08) = uVar22 << (((byte)uVar32 ^ 0xee) & 0x3f) ^ uVar21;
  bVar14 = (byte)DAT_182671f84;
  uVar6 = DAT_182671c60;
  lVar2 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar1 + -0x8f0) = (uVar28 | uVar21 ^ *puVar26) ^ uVar34;
  uVar31 = (ulonglong)DAT_182671d58;
  *(undefined8 *)(lVar1 + -0x30) = 0;
  *(ulonglong *)(lVar1 + -0x758) =
       (CONCAT44(uVar5,uVar4) ^ 0x4a08f7141b1a9d17) + *(longlong *)(lVar1 + -0x870) ^ uVar31;
  uVar11 = DAT_182671e74;
  uVar8 = DAT_182671c88;
  uVar22 = (ulonglong)DAT_182671c88;
  uVar30 = uVar6 * DAT_182671c88;
  bVar13 = *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0xffdbdca7)) ^ uVar31) ^
           bVar14 ^ (byte)DAT_182671f14;
  DAT_182671c6c = uVar30;
  *(byte *)(lVar2 + -0xb69) = bVar13;
  uVar28 = (ulonglong)(bVar13 ^ bVar14);
  *(ulonglong *)(lVar2 + -0xa60) = uVar28 ^ CONCAT44(uVar11,uVar11);
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (CONCAT44(uVar6,uVar30) ^ 0x494f876d694b3465) - (CONCAT44(uVar30,uVar6) ^ 0x7838269db5eaac1f)
  ;
  uVar10 = DAT_182671d1c;
  local_b8 = (byte)uVar8;
  uVar36 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *(ulonglong *)(lVar1 - (uVar35 ^ 0xe60ca6aa)) = uVar28 << ((local_b8 ^ 0xe7) & 0x3f) ^ uVar36;
  uVar3 = DAT_182671f14;
  uVar28 = (ulonglong)DAT_182671d04;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (*(ulonglong *)(lVar1 - (uVar35 ^ 0xe60cadda)) ^ uVar34 |
       *(ulonglong *)(lVar1 - ((ulonglong)uVar30 ^ 0x18d17156)) ^ uVar36) ^ uVar41;
  lVar2 = DAT_182671c40;
  *(uint *)(lVar1 + -0x4ac) = *(uint *)(*(ulonglong *)(lVar1 + -0x878) ^ uVar28) ^ uVar3;
  uVar28 = (ulonglong)DAT_182671e68;
  *(ulonglong *)(lVar2 + -0x990) = *(longlong *)(lVar2 + -0x870) + 0x4cU ^ uVar28;
  bVar14 = (byte)DAT_182671dbc;
  lVar1 = DAT_182671c40;
  bVar13 = (byte)uVar3;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar30 ^ 0x18d17867)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0xb5f70fb3)) ^ uVar31) ^ bVar13;
  *(byte *)(lVar1 + -0xb1) = *(byte *)(uVar28 ^ *(ulonglong *)(lVar1 + -0x990)) ^ bVar14 ^ bVar13;
  uVar12 = DAT_182671ef8;
  uVar28 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *puVar23 = (*(byte *)(lVar1 - (uVar35 ^ 0xe60ca59b)) ^ bVar14) ^ uVar28;
  uVar9 = DAT_182671e3c;
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar28 = (uVar28 ^ *(ulonglong *)(lVar1 + -0x7c0)) << (((byte)uVar17 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar1 + -0xda8) = uVar28 ^ uVar34;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar35 ^ 0xe60cae0a)) =
       (uVar28 | uVar41 ^ *(ulonglong *)(lVar1 + -0x2b0)) ^ uVar24;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0x67258d34)) =
       *(ulonglong *)(lVar1 - (uVar40 ^ 0x131205f4)) ^ uVar34 |
       CONCAT44(uVar7,uVar32) ^ 0x67ce6a6e3ec1409e;
  pbVar16 = (byte *)((CONCAT44(uVar19,uVar29) ^ 0xb5f708eb13120811) + *(longlong *)(lVar1 + -0x870))
  ;
  *(ulonglong *)(lVar1 + -0x6f8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671de4;
  uVar32 = DAT_182671c94;
  uVar37 = (ulonglong)DAT_182671c94;
  *(byte *)(lVar1 + -0x9dd) = *pbVar16 ^ bVar14 ^ bVar13;
  uVar3 = DAT_182671c48;
  uVar29 = DAT_182671c48 - uVar32;
  uVar39 = (ulonglong)DAT_182671c48;
  uVar41 = CONCAT44(DAT_182671c48,uVar32);
  DAT_182671c7c = uVar29;
  *(ulonglong *)(lVar1 + -0x888) =
       (uVar41 ^ 0xe36c87f3feeb3997) >> (((byte)uVar11 ^ *(byte *)(lVar1 + -0xa60)) & 0x3f);
  uVar19 = DAT_182671cbc;
  lVar2 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671cbc;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar29 ^ 0x49039ef4)) =
       (*(byte *)(lVar1 + -0x9dd) ^ bVar14) ^ uVar36;
  uVar9 = DAT_182671f6c;
  lVar1 = DAT_182671c40;
  uVar28 = (uVar36 ^ *(ulonglong *)(lVar2 + -0x8f0)) << (((byte)uVar32 ^ 0xce) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar28 ^ CONCAT44(uVar19,uVar19);
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar31 = (ulonglong)DAT_182671ec0;
  *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0xfddbf82a)) =
       (uVar24 ^ *(ulonglong *)(lVar1 + -0xb20) | uVar28) ^ uVar36;
  *(ulonglong *)(lVar2 + -0x2b0) = *(ulonglong *)(*(ulonglong *)(lVar2 + -0x2e8) ^ uVar33) ^ uVar38;
  pbVar16 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar29 ^ 0x49039e74)) +
                    (uVar41 ^ 0xfddbffeab4d869a8));
  *(ulonglong *)(lVar2 + -0x708) = (ulonglong)pbVar16 ^ uVar31;
  bVar14 = *pbVar16 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 + -0xda8) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0xb08)) <<
       (((byte)uVar10 ^ *(byte *)(lVar2 + -0x8f0)) & 0x3f);
  *(byte *)(lVar2 + -0xb79) = bVar14 ^ (byte)uVar19;
  uVar28 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0x49039634)) =
       (ulonglong)*(byte *)(lVar2 + -0xb79) ^ uVar35 & 0xff ^ uVar28;
  uVar9 = DAT_182671d28;
  uVar21 = (*(ulonglong *)(lVar2 + -0x30) ^ uVar28) << ((local_b8 ^ 0xcf) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa60) = uVar21 ^ CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar2 + -0x888) = CONCAT44(uVar29,uVar32) ^ 0x75e7ffe59010efc9;
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar28 = (ulonglong)DAT_182671df8;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xb4d862c6)) =
       uVar21 + (uVar36 ^ *(ulonglong *)(lVar2 + -0x7c0)) ^ uVar31;
  *(ulonglong *)(lVar2 + -0x328) =
       (CONCAT44(uVar8,uVar17) ^ 0xffdbdbff67258d4b) + *(longlong *)(lVar2 + -0x870) ^ uVar28;
  uVar8 = DAT_182671ce8;
  uVar19 = DAT_182671ce8 & 0xff;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0x13120bdc)) =
       CONCAT44(uVar29,uVar3) ^ 0xc4d65d385f37f978 | *(ulonglong *)(lVar2 + -0xda8);
  uVar11 = DAT_182671eec;
  bVar14 = *(byte *)(uVar28 ^ *(ulonglong *)(lVar2 + -0x328)) ^ (byte)DAT_182671f14 ^ (byte)uVar8;
  *(byte *)(lVar2 + -0xe1) = bVar14;
  uVar9 = DAT_182671d40;
  uVar41 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x2b0) = (ulonglong)bVar14 ^ (ulonglong)uVar19 ^ uVar41;
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x18d179de)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0xb4d86b56)) ^ uVar41) <<
       (((byte)uVar6 ^ 0x12) & 0x3f) ^ uVar35;
  uVar24 = CONCAT44(uVar30,uVar4) ^ 0x2a6937c3299b7d85;
  *(ulonglong *)(lVar2 + -0x8f0) = uVar24;
  uVar9 = DAT_182671c9c;
  *(ulonglong *)(lVar2 + -0x30) =
       (*(ulonglong *)(lVar2 + -0xb20) ^ uVar31) + (*(ulonglong *)(lVar2 + -0xb08) ^ uVar35) ^
       uVar33;
  uVar6 = DAT_182671ee0;
  uVar4 = DAT_182671c70;
  uVar3 = DAT_182671c5c;
  uVar31 = (ulonglong)DAT_182671ee0;
  puVar23 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar37 ^ 0xb4d86dfe)) +
            (CONCAT44(uVar5,uVar29) ^ 0x4a08f7144903960d) * 8);
  uVar28 = (ulonglong)DAT_182671c5c;
  uVar21 = (ulonglong)DAT_182671c70;
  uVar36 = (ulonglong)DAT_182671c70;
  uVar32 = DAT_182671c5c + DAT_182671c70;
  *(ulonglong *)(lVar2 + -0x668) = (ulonglong)puVar23 ^ CONCAT44(uVar9,uVar9);
  DAT_182671c4c = uVar32;
  *(ulonglong *)(lVar2 + -0x888) = CONCAT44(uVar3,uVar32) ^ uVar24 ^ 0xdbd5f1dc2ac62efc;
  *puVar23 = *(ulonglong *)(lVar2 - (uVar21 ^ 0x96e838dc)) ^ uVar33 ^ uVar20;
  *(uint *)(lVar2 + -0x54) = (uVar32 ^ 0x61dca86e) * *(int *)(lVar2 + -0x94c);
  *(ulonglong *)(lVar2 + -0x370) = *(longlong *)(lVar2 + -0x870) + 0x50U ^ uVar31;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x96e83f2c)) =
       0x683e1f74c1673c00 - (*(ulonglong *)(lVar2 + -0xb08) ^ uVar35);
  bVar27 = (byte)DAT_182671f14;
  bVar14 = *(byte *)((ulonglong)uVar6 ^ *(ulonglong *)(lVar2 + -0x370)) ^ bVar27;
  bVar13 = bVar14 ^ (byte)DAT_182671e18;
  *(uint *)(lVar2 + -0x684) = (uVar32 ^ 0x4fe304) << 8;
  uVar9 = DAT_182671e98;
  lVar1 = DAT_182671c40;
  *(byte *)(lVar2 + -0x2b9) = bVar13;
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xa60) = bVar14 ^ uVar35;
  uVar5 = DAT_182671d5c;
  pbVar16 = (byte *)(*(longlong *)(lVar1 - ((ulonglong)uVar3 ^ 0xfe08dbc7)) +
                    (CONCAT44(uVar32,uVar4) ^ 0x94f10ca396e838bd));
  uVar21 = (ulonglong)DAT_182671d5c;
  *(ulonglong *)(lVar1 + -0x758) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671d1c;
  uVar11 = DAT_182671d54;
  bVar14 = *pbVar16 ^ bVar27 ^ (byte)uVar5;
  *(byte *)(lVar1 + -0x21) = bVar14;
  uVar9 = DAT_182671d18;
  uVar24 = (ulonglong)bVar14 ^ uVar21 & 0xff;
  *(ulonglong *)(lVar1 + -0xda8) = uVar24 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671ea0;
  uVar24 = uVar24 << 8;
  *(ulonglong *)(lVar1 + -0x380) = uVar24 ^ CONCAT44(uVar9,uVar9);
  lVar2 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671fb0;
  uVar24 = *(ulonglong *)(lVar1 - (uVar28 ^ 0xfe08d9d7)) ^ uVar35 | uVar24;
  plVar18 = (longlong *)(DAT_182671c40 - ((ulonglong)uVar4 ^ 0x96e8309c));
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar24 ^ CONCAT44(uVar11,uVar11);
  pbVar16 = (byte *)(*plVar18 + (CONCAT44(uVar32,uVar32) ^ 0x94f10ca394f10cf1));
  *(ulonglong *)(lVar2 + -0x990) = (ulonglong)pbVar16 ^ uVar20;
  uVar4 = DAT_182671f14;
  *(ulonglong *)(lVar2 + -0xb20) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0xfe08d107)) ^ uVar41 | *(ulonglong *)(lVar2 + -0x8f0);
  uVar9 = DAT_182671e00;
  bVar13 = (byte)uVar4;
  bVar14 = *pbVar16 ^ bVar13 ^ (byte)uVar6;
  *(byte *)(lVar2 + -0x669) = bVar14;
  uVar28 = (ulonglong)bVar14 ^ uVar31 & 0xff;
  *(ulonglong *)(lVar2 + -0x888) = uVar28 ^ uVar34;
  uVar4 = DAT_182671de4;
  uVar28 = uVar28 << (((byte)uVar3 ^ 0xa7) & 0x3f);
  *(ulonglong *)(lVar2 + -0x920) = uVar28 ^ CONCAT44(uVar9,uVar9);
  bVar14 = (byte)DAT_182671ec8;
  uVar20 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar32 ^ 0x94f107ab)) = (uVar28 | uVar24) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x6f8) = *(longlong *)(lVar2 + -0x870) + 0x53U ^ uVar21;
  *(byte *)(lVar2 + -0xb5a) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar36 ^ 0x96e83e14)) ^ uVar21) ^ bVar13 ^ bVar14;
  *(ulonglong *)(lVar2 + -0x7c0) = (uVar22 << 0x18 | (ulonglong)(uVar7 >> 8)) ^ 0x2af4b017f76160;
  uVar22 = (ulonglong)(*(byte *)(lVar2 - ((ulonglong)uVar32 ^ 0x94f107f9)) ^ bVar14);
  *(ulonglong *)(lVar2 + -0xda8) = uVar22 ^ CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar9 = DAT_182671ee4;
  *(ulonglong *)(lVar2 + -0xa60) = uVar22 ^ CONCAT44(uVar3,uVar32) ^ 0x6752daf651a91e14;
  *(ulonglong *)(lVar2 + -0x380) = uVar22 << 0x18 ^ CONCAT44(DAT_182671d74,DAT_182671d74);
  *(ulonglong *)(lVar2 + -0xb20) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xb08) | uVar22 << 0x18) ^ CONCAT44(uVar9,uVar9);
  uVar22 = (ulonglong)DAT_182671ed8;
  *(undefined8 *)(lVar2 + -0x2b0) = 4;
  bVar14 = (byte)DAT_182671fac;
  pbVar16 = (byte *)((CONCAT44(uVar30,uVar3) ^ 0x18d172d6fe08d3e3) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0x328) = (ulonglong)pbVar16 ^ uVar22;
  uVar9 = DAT_182671dc4;
  bVar13 = *pbVar16 ^ bVar13;
  *(byte *)(lVar2 + -0x511) = bVar13 ^ bVar14;
  *(ulonglong *)(lVar2 + -0x8f0) = (ulonglong)bVar13 ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar25;
  return;
}



############ FUN_ 180fb2a60 size=5107 ############

void FUN_180fb2a60(void)

{
  undefined8 *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  byte local_f0;
  
  uVar7 = DAT_182671d60;
  uVar6 = DAT_182671c78;
  uVar16 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c78;
  uVar37 = DAT_182671c74 - DAT_182671c78;
  uVar2 = *(uint *)(&DAT_182613220 + DAT_1826722ac);
  uVar30 = *(uint *)(&DAT_182613218 + DAT_1826722ac) ^ DAT_182671c78;
  uVar17 = DAT_182671d60 + DAT_182671ec4;
  uVar12 = DAT_182671ec4 & 0xff;
  uVar29 = (ulonglong)DAT_182671c74;
  uVar33 = (ulonglong)DAT_182671c78;
  DAT_182671ec4 = ((DAT_182671ec4 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar24 = CONCAT44(DAT_182671c74,DAT_182671c74);
  uVar31 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar41 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar12 = DAT_182671d60 & 0xff;
  DAT_182671c54 = uVar37;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (*(ulonglong *)(DAT_182671c40 + -0x828) ^ uVar31) << (((byte)DAT_182671c74 ^ 0xb0) & 0x3f) ^
       uVar41;
  uVar5 = DAT_182671ed0;
  lVar4 = DAT_182671c40;
  DAT_182671d60 = ((DAT_182671d60 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x156d8a74));
  uVar42 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar26 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar37 ^ 0xfa928586)) ^ uVar41 |
           CONCAT44(DAT_182671d08,DAT_182671d08) ^ *puVar23;
  *(ulonglong *)(DAT_182671c40 + -0x680) = (*(ulonglong *)(DAT_182671c40 + -0x828) ^ uVar31) << 0x38
  ;
  uVar12 = uVar17 & 0xff;
  *(ulonglong *)(lVar4 + -0x760) = uVar26 ^ uVar42;
  DAT_182671f3c = ((uVar17 * 0x100 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar31 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  puVar44 = (ulonglong *)(lVar4 - (uVar33 ^ 0x156d8a44));
  *(ulonglong *)(lVar4 + -0xa50) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0x10000b8a)) ^ CONCAT44(uVar5,uVar5)) -
       (CONCAT44(uVar37,uVar6) ^ 0xfc7910772d1a6b9d) ^ uVar31;
  uVar5 = DAT_182671d74;
  *puVar23 = (*puVar44 ^ uVar31) - uVar26 ^ uVar42;
  *(ulonglong *)(lVar4 + -0x5e8) =
       (uVar42 ^ *(ulonglong *)(lVar4 + -0x760)) - (CONCAT44(uVar37,uVar16) ^ 0x5b053a06f45d3917) ^
       uVar31;
  uVar38 = CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar32 = *(ulonglong *)(lVar4 - (uVar32 ^ 0x156d8b0c)) ^ CONCAT44(uVar5,uVar5) ^ uVar38 ^ uVar41 ^
           *(ulonglong *)(lVar4 + -0x7e8);
  bVar19 = (byte)uVar37;
  *(ulonglong *)(lVar4 + -0x828) = uVar32;
  lVar3 = DAT_182671c40;
  uVar33 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x100008aa)) ^ uVar41) >>
           ((bVar19 ^ 0x7e) & 0x3f);
  uVar26 = (uVar41 ^ uVar32) << ((bVar19 ^ 0x5e) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar33 ^ uVar42;
  *(ulonglong *)(lVar3 + -0xb08) = uVar26 ^ uVar31;
  uVar12 = DAT_182671c60;
  uVar32 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0xa50) =
       (CONCAT44(uVar16,uVar37) ^ 0x12d179d0eadf291) >>
       ((*(byte *)(lVar3 + -0x680) ^ (byte)uVar7) & 0x3f);
  uVar7 = DAT_182671c7c;
  uVar36 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x100007e2)) = (uVar33 | uVar26) ^ uVar41;
  uVar24 = (uVar38 ^ *(ulonglong *)(lVar3 + -0xb18)) - (uVar24 ^ 0x6b6d4ecfd9b25d89);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar24 ^ uVar31;
  uVar13 = uVar7 | uVar12;
  uVar29 = (ulonglong)uVar13;
  DAT_182671c84 = uVar13;
  *(ulonglong *)(lVar3 + -0x828) = uVar24 - (uVar41 ^ *(ulonglong *)(lVar3 + -0x760)) ^ uVar41;
  puVar27 = (ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x96806a75));
  uVar24 = (CONCAT44(uVar12,uVar7) ^ 0xcd0401161c0b69fe) + (uVar41 ^ *puVar27);
  puVar34 = (ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x14806775));
  *(ulonglong *)(lVar3 + -0xa50) = uVar24 ^ uVar42;
  puVar23 = (ulonglong *)(lVar3 - (uVar36 ^ 0x82000690));
  *puVar23 = uVar24 ^ *puVar34;
  lVar4 = DAT_182671c40;
  puVar39 = (ulonglong *)(lVar3 - (uVar29 ^ 0x96806b95));
  *(ulonglong *)(lVar3 + -0xb08) = (uVar42 ^ *puVar39) >> (((byte)uVar12 ^ 0x35) & 0x3f) ^ uVar31;
  uVar14 = DAT_182671dc0 & 0xff;
  uVar17 = DAT_182671dc0;
  if ((DAT_182671ce8 & 1) == 0) {
    uVar17 = DAT_182671ce8;
  }
  DAT_182671dc0 = ((DAT_182671dc0 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar40 = (ulonglong)DAT_182671dc0;
  uVar38 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar4 + -0xb18) = (*(ulonglong *)(lVar4 + -0x680) ^ uVar42) << 0x20 ^ uVar38;
  lVar3 = DAT_182671c40;
  uVar14 = DAT_182671f1c & 0xff;
  DAT_182671f1c = ((DAT_182671f1c << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  puVar28 = (ulonglong *)(lVar4 - (uVar36 ^ 0x82000b08));
  uVar43 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  uVar24 = *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x9680661d)) ^ uVar31 | uVar38 ^ *puVar28;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar24 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar13,uVar7) ^ 0x4d383a3ec409891d) + 0xfb255f22df9d38e2;
  uVar14 = uVar17 & 0xff;
  DAT_182671d98 = ((uVar17 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar33 = (ulonglong)DAT_182671d98;
  uVar26 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = (uVar42 ^ *puVar34) - uVar24 ^ uVar26;
  lVar3 = DAT_182671c40;
  uVar15 = DAT_182671ce8 & 0xff;
  DAT_182671ce8 = ((DAT_182671ce8 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar35 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  puVar22 = (ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x14806b95));
  *puVar22 = *(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar35 ^ uVar31 ^ uVar41 ^
             *(ulonglong *)(DAT_182671c40 + -0x828);
  local_f0 = (byte)uVar6;
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 + -0x680) ^ uVar35) >> ((local_f0 ^ 0x34) & 0x3f) ^ uVar35;
  *puVar28 = (CONCAT44(uVar13,uVar12) ^ 0x951d505fd62a96c) >> (((byte)uVar13 ^ 1) & 0x3f);
  *(ulonglong *)(lVar3 + -0x760) = (uVar35 ^ *puVar39) << 0x20 ^ uVar43;
  uVar24 = *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x82000770)) ^ uVar43 |
           uVar35 ^ *(ulonglong *)(lVar3 + -0xb08);
  *(ulonglong *)(lVar3 + -0xa60) = uVar24 ^ uVar35;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x820005f8)) =
       (uVar41 ^ *(ulonglong *)(lVar3 + -0x828)) - uVar24 ^ uVar38;
  uVar8 = DAT_182671c88;
  lVar4 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x1480660d)) = *puVar44 ^ uVar35 ^ *(ulonglong *)(lVar3 + -0xa60)
  ;
  *(ulonglong *)(lVar3 + -0x680) = CONCAT44(uVar6,uVar6) ^ 0xe0512b0b4203eaa1;
  uVar13 = DAT_182671c58;
  uVar29 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0x9680660d)) ^ uVar26) >> ((local_f0 ^ 0x2e) & 0x3f);
  uVar24 = (ulonglong)DAT_182671c58;
  uVar32 = (uVar26 ^ *(ulonglong *)(lVar4 + -0xb18)) << (((byte)uVar7 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar4 + -0xb08) = uVar29 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x828) = uVar32 ^ uVar43;
  uVar20 = uVar13 & uVar8;
  uVar21 = uVar20 ^ 0x1568f77a;
  uVar29 = uVar29 | uVar32;
  DAT_182671c64 = uVar21;
  *(ulonglong *)(lVar4 + -0xa60) = uVar29 ^ uVar35;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (CONCAT44(uVar20,uVar13) ^ 0x646e9a179c33c73d) + (CONCAT44(uVar8,uVar8) ^ 0xd747918bbb14b3ac)
  ;
  lVar4 = DAT_182671c40;
  puVar34 = (ulonglong *)(DAT_182671c40 + -0x5e8);
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xa50)) - uVar29 ^ uVar26;
  uVar32 = *puVar34 ^ uVar26 ^ uVar43 ^ uVar38 ^ *(ulonglong *)(lVar4 + -0x7e8);
  *(ulonglong *)(lVar4 + -0xb18) = uVar32;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x86b78834)) >> 0x16 ^
       ((ulonglong)((uVar17 << 8 & 0xffff | uVar14) >> 6) | uVar33 << 10) ^ uVar43;
  *(ulonglong *)(lVar3 + -0x828) = (uVar32 ^ uVar26) << (((byte)uVar20 ^ 0x2e) & 0x3f) ^ uVar38;
  puVar39 = (ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x86b785ac));
  *puVar39 = (uVar43 ^ *(ulonglong *)(lVar3 + -0xb08)) >> (((byte)uVar13 ^ 0x1c) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x31160457)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x157efd56)) ^ uVar38 |
       uVar43 ^ *(ulonglong *)(lVar3 + -0xb08)) ^ uVar35;
  puVar28 = (ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x86b784c4));
  *puVar28 = **(ulonglong **)(((ulonglong)uVar8 ^ 0x31160e17) + lVar3);
  bVar18 = (byte)uVar8 ^ 0x30;
  *(ulonglong *)(lVar3 + -0xb18) =
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar38) - (uVar35 ^ *(ulonglong *)(lVar3 + -0xa50)) ^
       uVar35;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x680) = 0x3d112a9a0fa2df5f >> (bVar18 & 0x3f);
  uVar32 = *(ulonglong *)(lVar3 + -0x760);
  uVar29 = uVar35 ^ uVar26 ^ uVar38 ^ uVar32 ^ *(ulonglong *)(lVar4 + -0xa50);
  *(ulonglong *)(lVar4 + -0xb08) = uVar29;
  *(ulonglong *)(lVar4 + -0x7e8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x3116050f)) >> 0x20 ^ uVar40) >> 0xe ^ uVar41;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x828)) >> (bVar18 & 0x3f);
  *(ulonglong *)(lVar3 + -0x680) = (uVar38 ^ uVar29) << (((byte)uVar21 ^ 0x6c) & 0x3f) ^ uVar42;
  *(ulonglong *)(lVar3 + -0xa50) = (uVar26 ^ uVar32) - (CONCAT44(uVar13,uVar8) ^ 0x7ac0f5ab86614343)
  ;
  puVar44 = (ulonglong *)(lVar3 - (uVar25 ^ 0x311609ef));
  *(ulonglong *)(lVar3 + -0x5e8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x157ef3fe)) ^ uVar42 | uVar41 ^ *puVar44) ^
       uVar43;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x86b78b04)) =
       CONCAT44(uVar16,uVar20) ^ 0x1568f77a ^ CONCAT44(uVar8,uVar8) ^ 0xef23e7b9b41ff80d;
  uVar32 = uVar31 ^ *(ulonglong *)(lVar3 + -0xa60) ^ *(ulonglong *)(lVar3 + -0xb18);
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x157ef21e)) ^ uVar26) -
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar43) ^ uVar35;
  *(ulonglong *)(lVar3 + -0xa50) = uVar32;
  uVar17 = DAT_182671c6c;
  uVar32 = (uVar32 ^ uVar31) >> (((byte)uVar8 ^ 0xb) & 0x3f);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar32 ^ uVar26;
  lVar4 = DAT_182671c40;
  uVar32 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0x82000a40)) ^ uVar31) << (((byte)uVar17 ^ 99) & 0x3f)
           | uVar32;
  puVar34 = (ulonglong *)(DAT_182671c40 + -0xb18);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar32 ^ uVar41;
  *puVar27 = (uVar35 ^ *puVar34) - uVar32 ^ uVar38;
  uVar5 = DAT_182671e6c;
  uVar33 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar36 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar32 = uVar33 ^ uVar35 ^ uVar41 ^ *(ulonglong *)(lVar4 + -0xb08) ^
           *(ulonglong *)(lVar4 + -0x828);
  *(ulonglong *)(lVar4 + -0xa60) = uVar32;
  uVar29 = (uVar32 ^ uVar33) >> (((byte)uVar13 ^ 0x35) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa50) = uVar29 ^ uVar36;
  uVar32 = (uVar33 ^ uVar32) << ((bVar19 ^ 0x49) & 0x3f);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar32 ^ uVar42;
  uVar29 = uVar29 | uVar32;
  *(ulonglong *)(lVar4 + -0x680) = uVar29 ^ uVar43;
  uVar9 = DAT_182671c8c;
  uVar14 = DAT_182671c68;
  uVar17 = DAT_182671c48;
  uVar40 = (ulonglong)DAT_182671c68;
  uVar33 = CONCAT44(uVar5,uVar5);
  uVar42 = (ulonglong)DAT_182671c48;
  uVar32 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar4 + -0xb18) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0xb08)) -
       (CONCAT44(DAT_182671c68,uVar12) ^ 0xe67af6e8d7b6686d) ^ uVar33;
  uVar16 = DAT_182671c7c;
  uVar15 = DAT_182671c70;
  lVar3 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar4 + -0x828) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x48520308)) ^ uVar33) - uVar29 ^ uVar31;
  *(uint *)(lVar4 + -0x644) = (uVar8 ^ 0xda4a42) * (uVar16 ^ 0x9016945b);
  uVar11 = DAT_182671e44;
  uVar16 = DAT_182671c50;
  uVar33 = (ulonglong)DAT_182671e44;
  uVar25 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x10085828)) =
       uVar29 - (CONCAT44(uVar12,uVar8) ^ 0xee2ce85b723ba14b) ^ uVar41;
  lVar4 = DAT_182671c40;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar32 = *(ulonglong *)(lVar3 - (uVar25 ^ 0x843feb8f)) ^
           *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x56ddc5cf)) ^ uVar29 ^ uVar43 ^ uVar38;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar32;
  *puVar28 = (uVar32 >> 0x20 ^ uVar33) >> 1 ^ uVar35;
  uVar33 = (uVar29 ^ *(ulonglong *)(lVar4 + -0xa50)) << (((byte)DAT_182671c80 ^ 0xa8) & 0x3f);
  *(ulonglong *)(lVar4 + -0xb08) = uVar33 ^ uVar31;
  uVar33 = uVar35 ^ *(ulonglong *)(lVar4 + -0x7e8) | uVar33;
  uVar32 = CONCAT44(uVar9,DAT_182671c5c);
  *(ulonglong *)(lVar4 + -0xb18) = uVar33 ^ uVar41;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (CONCAT44(uVar13,uVar16) ^ 0x650453a33ed583b) - (uVar32 ^ 0xdf67d435ab34b83c);
  uVar29 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar32 = *puVar27;
  *(undefined8 *)(lVar3 + -0xa50) = 0x7b2f196610ed597b;
  uVar32 = (uVar38 ^ uVar32) - (CONCAT44(uVar7,uVar8) ^ 0x2397ba78d54b3792);
  uVar16 = DAT_182671f94 & 0xff;
  *(ulonglong *)(lVar3 + -0x5e8) = uVar32 ^ uVar29;
  uVar5 = DAT_182671de4;
  uVar12 = DAT_182671c6c;
  DAT_182671f94 = ((DAT_182671f94 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar29 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar32 - uVar33 ^ uVar29;
  uVar32 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x10085950)) ^ uVar41) +
       (CONCAT44(uVar6,uVar17) ^ 0x1431e635bc2d5f40) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x680) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x788f45f)) ^ uVar38 ^ uVar31 ^
       *(ulonglong *)(lVar3 + -0x828) ^ uVar32;
  uVar32 = (uVar38 ^ *puVar23) >> (((byte)uVar12 ^ 0x52) & 0x3f);
  *(ulonglong *)(lVar3 + -0x760) = uVar32 ^ uVar26;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       (uVar38 ^ *puVar39) << (((byte)uVar21 ^ 0x45) & 0x3f) ^ uVar35;
  lVar3 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  puVar1 = (undefined8 *)(DAT_182671c40 + -0x650);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar37 ^ 0xfa928a3e)) ^ uVar35 | uVar32) ^ uVar36
  ;
  *(undefined8 *)(lVar3 - (uVar42 ^ 0x56ddc9b7)) = *(undefined8 *)*puVar1;
  uVar16 = DAT_182671eec;
  uVar17 = DAT_182671eec & 0xff;
  DAT_182671eec = ((DAT_182671eec << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar33 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar3 + -0xb08) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x828)) - (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar36) ^
       uVar33;
  uVar17 = DAT_182671c90;
  uVar42 = (ulonglong)DAT_182671c90;
  uVar31 = (ulonglong)DAT_182671c4c;
  uVar38 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar3 + -0x680) =
       (CONCAT44(uVar20,uVar20) ^ 0xf1041b29937ef8a2) >> (((byte)DAT_182671c4c ^ 199) & 0x3f);
  uVar5 = DAT_182671ce0;
  *(ulonglong *)(lVar3 + -0x760) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x3fa4d791)) ^
       *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x157ef296)) ^ uVar41 ^ uVar38 ^ uVar29;
  *(ulonglong *)(lVar3 + -0xb18) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0xa50)) <<
       ((*(byte *)(lVar3 + -0xb08) ^ (byte)uVar16) & 0x3f);
  uVar17 = DAT_182671c8c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x828) =
       (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0x760)) >> ((local_f0 ^ 0x31) & 0x3f) ^
       CONCAT44(uVar5,uVar5);
  lVar4 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0x788f9d7)) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x3fa4da91)) ^ uVar38) << (((byte)uVar17 ^ 0xb) & 0x3f) ^
       uVar41;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x57ddf4e7)) =
       CONCAT44(uVar8,uVar20) ^ 0xcbefb9fe75e560eb | uVar41 ^ *(ulonglong *)(lVar4 + -0xa60);
  lVar3 = DAT_182671c40;
  uVar42 = CONCAT44(DAT_182671f40,DAT_182671f40);
  uVar38 = *(ulonglong *)(lVar4 - (uVar40 ^ 0x31160887)) ^ uVar41 |
           *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x843fe64f)) ^ CONCAT44(uVar5,uVar5);
  uVar32 = uVar38 ^ uVar42;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar32;
  *(ulonglong *)(lVar3 + -0x760) = -0x61d562781fff914b - (uVar41 ^ *puVar22);
  uVar40 = CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar41 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar3 + -0xa60) = (uVar29 ^ *puVar44) - uVar38 ^ uVar40;
  uVar10 = DAT_182671f70;
  uVar32 = *(ulonglong *)(lVar3 + -0xb08) ^ uVar41 ^ uVar42 ^ uVar33 ^ uVar32;
  *(ulonglong *)(lVar3 + -0xb18) = uVar32;
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x680) = (uVar32 ^ uVar41) >> ((local_f0 ^ 3) & 0x3f) ^ uVar29;
  bVar19 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x9e3fe997)) =
       (CONCAT44(uVar14,uVar37) ^ 0xf4d06256f2b7340) >>
       ((*(byte *)(lVar3 + -0x828) ^ (byte)uVar5) & 0x3f);
  uVar10 = DAT_182671dc8;
  uVar5 = DAT_182671cec;
  uVar32 = (uVar41 ^ *(ulonglong *)(lVar3 + -0xb18)) << ((bVar19 ^ 0x39) & 0x3f);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar32 ^ uVar40;
  uVar17 = DAT_182671f2c;
  uVar31 = (ulonglong)DAT_182671f2c;
  uVar32 = uVar32 | *(ulonglong *)(lVar3 + -0x680) ^ uVar29;
  *(ulonglong *)(lVar3 + -0xa50) = uVar32 ^ CONCAT44(uVar5,uVar5);
  uVar29 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x828) =
       (*(ulonglong *)(lVar3 + -0xb08) ^ uVar33) - uVar32 ^ CONCAT44(uVar10,uVar10);
  uVar5 = DAT_182671c5c;
  uVar32 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar36 = *(ulonglong *)(lVar3 - (uVar24 ^ 0x86b7894c)) ^ *(ulonglong *)(lVar3 + -0x5e8) ^ uVar29 ^
           uVar40 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar36;
  *(ulonglong *)(lVar3 + -0xb08) = (uVar36 >> 0x20 ^ uVar31) >> 8 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x2b0) = (uVar29 ^ uVar36) << (((byte)uVar5 ^ 0xa1) & 0x3f) ^ uVar26;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar37) * 4) = uVar30;
  return;
}



############ FUN_ 180f6fca0 size=5188 ############

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

void FUN_180f6fca0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  uint uVar6;
  uint uVar7;
  longlong lVar8;
  longlong lVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  
  uVar11 = DAT_182671f18;
  uVar23 = DAT_182671c84;
  uVar18 = DAT_182671c68;
  uVar28 = (ulonglong)DAT_182671c84;
  uVar34 = DAT_182671c84 ^ DAT_182671c68;
  uVar7 = DAT_182671e0c >> 0x18;
  uVar6 = DAT_182671dac >> 0x10;
  uVar32 = DAT_182671ee4 >> 0x18;
  uVar13 = *(uint *)(&DAT_182613218 + DAT_1826721e8) ^ DAT_182671c84;
  uVar31 = (ulonglong)uVar34;
  uVar14 = *(uint *)(&DAT_182613210 + (uVar31 ^ 0x1e21ea84) + (longlong)DAT_1826721e8) ^
           DAT_182671c68;
  uVar15 = DAT_182671f18 >> 0x10 & 0xff;
  DAT_182671dcc = (((DAT_182671f18 >> 0x10) << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar44 = CONCAT44(DAT_182671d04,DAT_182671d04);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xb18);
  uVar48 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  uVar35 = CONCAT44(DAT_182671cac,DAT_182671cac) ^ *(ulonglong *)(DAT_182671c40 + -0xa50) |
           uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x760);
  DAT_182671c64 = uVar34;
  *puVar2 = uVar35 ^ uVar48;
  lVar8 = DAT_182671c40;
  uVar16 = DAT_182671f18 & 0xff;
  uVar38 = DAT_182671f18 << 8;
  DAT_182671f18 = ((uVar38 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar45 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  uVar30 = (ulonglong)DAT_182671f18;
  uVar20 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x1e21e2bc)) = (*puVar1 ^ uVar45) - uVar35 ^ uVar20;
  uVar12 = DAT_182671f7c;
  uVar24 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0x3116050f)) =
       uVar24 ^ *(ulonglong *)(lVar8 + -0x5e8) | 0x62b211e85310400;
  uVar17 = DAT_182671ee4 & 0xff;
  puVar4 = (ulonglong *)(lVar8 + -0xa60);
  uVar17 = ((DAT_182671ee4 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar21 = CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar39 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar36 = CONCAT44(uVar17,uVar17);
  puVar5 = (ulonglong *)(lVar8 + -0x680);
  puVar46 = (ulonglong *)(lVar8 - ((ulonglong)uVar23 ^ 0x2f37e37b));
  DAT_182671ee4 = uVar17;
  *puVar46 = *puVar4 ^ *puVar5 ^ uVar36 ^ uVar39 ^ uVar21;
  DAT_182671f00 = ((uVar32 << 8 | uVar32) << 8 | uVar32) << 8 | uVar32;
  uVar33 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar25 = (uVar36 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) >> (((byte)uVar23 ^ 0x85) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar25 ^ uVar33;
  lVar8 = DAT_182671c40;
  uVar15 = DAT_182671e0c & 0xff;
  DAT_182671e0c = ((DAT_182671e0c << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar22 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  uVar35 = (uVar36 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) << 0x2a;
  *puVar1 = uVar35 ^ uVar22;
  uVar32 = DAT_182671dac & 0xff;
  uVar29 = DAT_182671dac << 8;
  DAT_182671dac = ((uVar29 | uVar32) << 8 | uVar32) << 8 | uVar32;
  uVar47 = (ulonglong)DAT_182671dac;
  uVar35 = uVar35 | uVar25;
  uVar42 = CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar15 = uVar6 & 0xff;
  *(ulonglong *)(lVar8 + -0x5e8) = uVar35 ^ uVar42;
  DAT_182671d74 = ((uVar6 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar26 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *(ulonglong *)(lVar8 + -0xb08) =
       (*puVar4 ^ uVar39) - (*(ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0x31160bef)) ^ uVar42) ^
       uVar26;
  puVar3 = (ulonglong *)(lVar8 + -0x828);
  uVar35 = uVar35 ^ *puVar3;
  *puVar5 = uVar35;
  uVar6 = DAT_182671c74;
  lVar9 = DAT_182671c40;
  bVar37 = (byte)uVar34;
  DAT_182671ebc = ((uVar7 << 8 | uVar7) << 8 | uVar7) << 8 | uVar7;
  uVar25 = (ulonglong)DAT_182671c74;
  uVar39 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *(ulonglong *)(lVar8 + -0x7e8) = (uVar20 ^ uVar35) >> ((bVar37 ^ 0xba) & 0x3f) ^ uVar39;
  uVar15 = DAT_182671c90;
  bVar19 = (byte)DAT_182671c90;
  *puVar1 = (*(ulonglong *)(lVar9 - (uVar25 ^ 0xddf13924)) ^ uVar20) << ((bVar19 ^ 0xe3) & 0x3f) ^
            uVar48;
  puVar43 = (ulonglong *)(lVar9 - ((ulonglong)uVar6 ^ 0xddf134bc));
  puVar50 = (ulonglong *)(lVar9 - (uVar31 ^ 0x1e21e0f4));
  *puVar50 = (*puVar43 ^ uVar48 | uVar39 ^ *puVar46) ^ uVar26;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0x3fa4d819)) =
       (uVar20 ^ *puVar3) - (*puVar4 ^ uVar26) ^ uVar36;
  lVar8 = DAT_182671c40;
  *puVar5 = *(ulonglong *)(DAT_182671c40 + -0xb08) ^ *puVar2 ^ uVar26 ^ uVar20 ^ uVar48;
  uVar35 = *puVar5;
  *(ulonglong *)(lVar8 + -0x7e8) =
       (*(ulonglong *)(lVar8 + -0xa50) ^ uVar33) - (CONCAT44(uVar18,uVar23) ^ 0x2aab9ab36d0d52a3);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0x3116051f)) =
       (uVar35 ^ uVar20) >> (((byte)uVar18 ^ 0xb) & 0x3f) ^ uVar42;
  *puVar3 = (*puVar5 ^ uVar20) << 0x34 ^ uVar33;
  *puVar2 = **(ulonglong **)(lVar8 + 0x10);
  lVar9 = DAT_182671c40;
  puVar27 = (ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x3fa4d5d9));
  uVar35 = uVar33 ^ *puVar27 | *puVar1 ^ uVar42;
  uVar25 = uVar35 ^ uVar20;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar25;
  puVar40 = (ulonglong *)(DAT_182671c40 + -0x5e8);
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       (*(ulonglong *)(lVar9 - (uVar28 ^ 0x2f37ef9b)) ^ uVar26) - uVar35 ^ uVar26;
  *puVar5 = uVar42 ^ uVar36 ^ uVar20 ^ uVar25 ^ *puVar40;
  *puVar2 = (CONCAT44(uVar15,uVar34) ^ 0xcc70347dfd0f1126) << (((byte)uVar23 ^ 0x8b) & 0x3f);
  *puVar43 = (*puVar5 ^ uVar42) >> ((bVar19 ^ 0xe8) & 0x3f) ^ uVar39;
  uVar6 = DAT_182671c74;
  *puVar3 = (*puVar5 ^ uVar42) << (((byte)uVar18 ^ 0x20) & 0x3f) ^ uVar22;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0xddf1378c)) ^ uVar22 | *puVar1 ^ uVar39)
       ^ uVar48;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x3fa4da19)) =
       (uVar36 ^ *(ulonglong *)(lVar8 + -0x5e8)) - (CONCAT44(uVar15,uVar34) ^ 0x19df4e0d7fd57c9e) ^
       uVar48;
  *puVar2 = (CONCAT44(uVar6,uVar34) ^ 0x3775dbc41ceb30b2) <<
            ((*(byte *)(lVar8 + -0xb08) ^ (byte)(uVar11 >> 0x10)) & 0x3f);
  uVar10 = DAT_182671c70;
  lVar9 = DAT_182671c40;
  *puVar5 = (uVar48 ^ *puVar46) - (*(ulonglong *)(lVar8 + -0xb08) ^ uVar48) ^ uVar33;
  uVar7 = DAT_182671c80;
  *puVar1 = (*(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c58 ^ 0xd392fc0)) ^ uVar48) -
            (CONCAT44(uVar6,uVar10) ^ 0xbb8705ee6b721234) ^ uVar36;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar18 ^ 0x3116062f)) =
       *puVar4 ^ *(ulonglong *)(lVar9 + -0xa50) ^ uVar48;
  uVar35 = (ulonglong)DAT_182671c94;
  *(int *)(lVar9 - ((ulonglong)uVar7 ^ 0xfff7f833)) =
       *(int *)(lVar9 + -0x94) << ((byte)*(undefined4 *)(lVar9 + -0x6c0) & 0x1f);
  *(ulonglong *)(lVar9 - (uVar28 ^ 0x2f37e17b)) =
       (*(ulonglong *)(lVar9 - (uVar35 ^ 0x3316063f)) ^ uVar48) >> ((bVar37 ^ 0xb5) & 0x3f) ^ uVar26
  ;
  *(ulonglong *)(lVar9 + -0x7e8) =
       ((uVar48 ^ *puVar27) << 0x1f | uVar26 ^ *(ulonglong *)(lVar9 + -0x5e8)) ^ uVar33;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar6 ^ 0xddf134ac)) =
       (*(ulonglong *)(lVar9 + -0xa50) ^ uVar26) - (CONCAT44(uVar23,uVar15) ^ 0xac82a01bd2be3b7b) ^
       uVar22;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c54 ^ 0x528d616)) =
       (*(ulonglong *)(lVar9 + -0xb08) ^ uVar22) - (uVar33 ^ *(ulonglong *)(lVar9 + -0x7e8)) ^
       uVar36;
  lVar8 = DAT_182671c40;
  *(uint *)(lVar9 + -0x76c) = 0x32854236 >> (((byte)uVar7 ^ 0xb2) & 0x1f);
  uVar7 = DAT_182671c88;
  uVar15 = ~DAT_182671c88;
  uVar41 = (ulonglong)DAT_182671c88;
  puVar40 = (ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x82000838));
  DAT_182671c7c = uVar15;
  *puVar40 = (CONCAT44(DAT_182671c88,uVar15) ^ 0x908e791e5bb9ff32) +
             (uVar33 ^ *(ulonglong *)(lVar8 + -0x7e8)) ^ uVar22;
  lVar8 = DAT_182671c40;
  uVar25 = *puVar5 ^ uVar22 ^ uVar33 ^ uVar36 ^ *puVar3;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar25;
  uVar35 = ((ulonglong)uVar17 << 0x1b | (ulonglong)(uVar17 >> 5)) ^ uVar25 >> 5;
  *(ulonglong *)(lVar8 + -0xb08) = uVar35 ^ uVar22;
  uVar25 = (uVar25 ^ uVar36) << (((byte)uVar7 ^ 0xd4) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar25 ^ uVar42;
  uVar25 = uVar25 | uVar35;
  *puVar2 = uVar25 ^ uVar26;
  lVar8 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *puVar40 = (*puVar5 ^ uVar33) - uVar25 ^ uVar28;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x82000a40)) =
       (uVar26 ^ *(ulonglong *)(lVar8 + -0x5e8)) -
       (*(ulonglong *)(lVar8 - (uVar41 ^ 0x7dfff88f)) ^ uVar26);
  lVar9 = DAT_182671c40;
  uVar35 = *puVar1;
  uVar25 = *puVar4;
  *(ulonglong *)(lVar8 + -0xb08) = uVar35 ^ uVar25 ^ uVar21;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(lVar9 + -0x7e8) = (uVar35 ^ uVar25) >> (((byte)uVar15 ^ 0x35) & 0x3f) ^ uVar48;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar7 ^ 0x7dfff96f)) =
       CONCAT44(uVar15,uVar23) ^ 0xe56ffc5fe5f7faff | 0xc043f84ae5f3aafc;
  *(ulonglong *)(lVar8 + -0x5e8) =
       (*(ulonglong *)(lVar8 + -0xb08) ^ uVar21) << ((bVar19 ^ 0xea) & 0x3f) ^ uVar48;
  uVar10 = DAT_182671e6c;
  uVar6 = DAT_182671c48;
  puVar27 = (ulonglong *)(lVar8 - (uVar41 ^ 0x7dfffa07));
  *puVar1 = CONCAT44(DAT_182671c58,uVar34) ^ 0xb94a71604554d62 |
            CONCAT44(uVar18,uVar7) ^ 0xde7d53f2a6356590;
  uVar41 = CONCAT44(uVar10,uVar10);
  uVar35 = *(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x820007f8)) ^ uVar48 | uVar48 ^ *puVar27;
  uVar25 = uVar35 ^ uVar41;
  *puVar5 = uVar25;
  uVar49 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(lVar8 + -0xb08) = (uVar36 ^ *puVar50) - uVar35 ^ uVar49;
  uVar25 = uVar41 ^ uVar28 ^ uVar25 ^ uVar20 ^ *puVar3;
  *puVar1 = uVar25;
  uVar35 = *(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x82000b08)) >> 0x17 ^
           ((ulonglong)((uVar38 & 0xffff | uVar16) >> 7) | uVar30 << 9);
  uVar18 = uVar6 * DAT_182671c64;
  *(ulonglong *)(lVar8 + -0x5e8) = uVar35 ^ uVar44;
  uVar25 = (uVar25 ^ uVar20) << (((byte)uVar6 ^ 0x86) & 0x3f);
  DAT_182671c58 = uVar18;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar25 ^ uVar39;
  lVar8 = DAT_182671c40;
  *puVar50 = (uVar35 | uVar25) ^ uVar24;
  uVar30 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar6 ^ 0x56ddc42f)) =
       (uVar28 ^ *puVar3) - (*(ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0x86b7894c)) ^ uVar24) ^
       uVar30;
  *puVar1 = (uVar44 ^ *(ulonglong *)(lVar8 + -0x5e8)) -
            (CONCAT44(uVar34,uVar18) ^ 0x25559e5bdb6da5ad);
  uVar25 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(lVar8 + -0x7e8) =
       uVar49 ^ *(ulonglong *)(lVar8 + -0xb08) ^ *puVar2 ^ uVar26 ^ uVar25;
  *puVar3 = (CONCAT44(uVar34,uVar18) ^ 0xc7b7b8802aaff8f0) >>
            ((*(byte *)puVar4 ^ (byte)uVar12) & 0x3f);
  puVar40 = (ulonglong *)(lVar8 - ((ulonglong)uVar6 ^ 0x56ddc747));
  *puVar40 = (*(ulonglong *)(lVar8 + -0x7e8) ^ uVar25) >> (((byte)uVar6 ^ 0x87) & 0x3f) ^ uVar20;
  lVar8 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x56ddc9b7)) =
       (*(ulonglong *)(DAT_182671c40 + -0x7e8) ^ uVar25) << ((bVar37 ^ 0x8c) & 0x3f) ^ uVar35;
  *puVar2 = (*(ulonglong *)(lVar8 - (uVar31 ^ 0x1e21ef7c)) ^ uVar20 | *puVar1 ^ uVar35) ^ uVar30;
  puVar43 = (ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0x86b7844c));
  uVar20 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *puVar3 = (uVar49 ^ *(ulonglong *)(lVar8 + -0xb08)) - (uVar30 ^ *puVar43) ^ uVar20;
  uVar7 = DAT_182671d4c;
  lVar9 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671d4c;
  *(uint *)(lVar8 + -0x94) = (uVar6 ^ 0x5b5bca45) * 0x2616196c;
  uVar25 = CONCAT44(uVar7,uVar7);
  uVar21 = *puVar5 ^ uVar25 ^ *puVar43;
  *(ulonglong *)(lVar9 + -0x7e8) = uVar21;
  *(ulonglong *)(lVar9 + -0x5e8) = (uVar21 >> 0x20 ^ uVar35) >> 0x14 ^ uVar44;
  uVar26 = CONCAT44(DAT_182671d10,DAT_182671d10);
  *puVar1 = (uVar21 ^ uVar25) << 0xc ^ uVar26;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       CONCAT44(uVar6,uVar34) ^ 0x5e554d5c9e5ae0ea | *(ulonglong *)(DAT_182671c40 + -0xa50);
  lVar9 = DAT_182671c40;
  puVar46 = (ulonglong *)(lVar8 - (uVar31 ^ 0x1e21e18c));
  *puVar43 = (*puVar46 ^ uVar26 | uVar44 ^ *puVar40) ^ uVar33;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar18 ^ 0x86b784c4)) =
       (*puVar5 ^ uVar30) - (*puVar2 ^ uVar33) ^ uVar48;
  *(ulonglong *)(lVar9 + -0xa50) =
       (CONCAT44(uVar18,uVar18) ^ 0xd4a0100141dfe45f) - (*puVar2 ^ uVar33);
  uVar35 = *puVar4 ^ uVar36 ^ uVar24 ^ *puVar3 ^ uVar20;
  *(ulonglong *)(lVar9 + -0xb08) = uVar35;
  *(ulonglong *)(lVar8 + -0x5e8) = (uVar36 ^ uVar35) >> ((bVar37 ^ 0xad) & 0x3f) ^ uVar41;
  *puVar1 = (uVar35 ^ uVar36) << (((byte)DAT_182671c4c ^ 0xa8) & 0x3f) ^ uVar45;
  puVar40 = (ulonglong *)(lVar8 - (uVar31 ^ 0x1e21ec14));
  *puVar40 = (uVar35 ^ uVar36) - (CONCAT44(uVar6,uVar15) ^ 0xa2d6c020db88b1a7);
  uVar7 = DAT_182671c50;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c74 ^ 0xddf135f4)) =
       (uVar45 ^ *puVar46 | uVar41 ^ *puVar27) ^ uVar20;
  uVar23 = uVar7 | DAT_182671c64;
  uVar31 = CONCAT44(DAT_182671d38,DAT_182671d38);
  uVar25 = *(ulonglong *)(lVar8 + -0xa50) ^ uVar42 ^ uVar48 ^ *(ulonglong *)(lVar8 + -0x7e8) ^
           uVar20;
  uVar35 = *(ulonglong *)(lVar8 - ((ulonglong)uVar6 ^ 0x56ddca87));
  DAT_182671c4c = uVar23;
  *(ulonglong *)(lVar8 + -0xb08) = uVar25;
  *puVar4 = (uVar35 ^ uVar20) - (*(ulonglong *)(lVar8 + -0xa50) ^ uVar20) ^ uVar31;
  uVar35 = (uVar47 << 0x12 | (ulonglong)(((uVar29 & 0xffff | uVar32) << 8 | uVar32) >> 6)) ^
           uVar25 >> 0xe;
  *puVar5 = uVar35 ^ uVar22;
  uVar30 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar23 ^ 0x9e3fe5ef)) =
       ((uVar25 ^ uVar42) << 0x32 | uVar35) ^ uVar30;
  lVar8 = DAT_182671c40;
  uVar47 = (uVar48 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) -
           (CONCAT44(uVar7,uVar34) ^ 0x7a9c77b90b2e889e);
  *puVar3 = uVar47 ^ uVar49;
  *(ulonglong *)(lVar8 + -0xa50) = uVar47 + (CONCAT44(uVar34,uVar34) ^ 0x886457464d9dddaa);
  uVar35 = *puVar1;
  uVar25 = *puVar4;
  *(ulonglong *)(lVar8 + -0xb08) = uVar47 - (*puVar1 ^ uVar30) ^ uVar41;
  *(ulonglong *)(lVar8 + -0x5e8) =
       (uVar35 ^ uVar30) - (CONCAT44(uVar23,uVar7) ^ 0x840367c6e895b7aa) ^
       CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar35 = uVar25 ^ *puVar2 ^ uVar33 ^ uVar31;
  *puVar5 = uVar35 ^ uVar26;
  uVar7 = DAT_182671d30;
  uVar35 = uVar35 >> (((byte)uVar23 ^ 0xe7) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar35 ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  lVar8 = DAT_182671c40;
  uVar25 = (uVar26 ^ *puVar40) << 0x30;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar25 ^ CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar6 = DAT_182671d30 >> 0x18;
  uVar18 = uVar7 & 0xff;
  DAT_182671d30 = ((uVar7 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar30 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar23 ^ 0x9e3fe6df)) = (uVar35 | uVar25) ^ uVar30;
  DAT_182671ed0 = ((uVar6 << 8 | uVar6) << 8 | uVar6) << 8 | uVar6;
  uVar25 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  uVar35 = (*puVar4 ^ uVar31) - (CONCAT44(uVar23,uVar34) ^ 0xf849d4bd9f6cd4ae);
  *puVar1 = uVar35 ^ uVar25;
  *puVar2 = uVar35 - (*puVar3 ^ uVar30) ^ uVar25;
  *puVar5 = (*puVar3 ^ uVar30) + (CONCAT44(uVar34,uVar34) ^ 0xe7358572d9a9fef9) ^ uVar30;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar13;
  return;
}



############ FUN_ 180f91e30 size=4226 ############

void FUN_180f91e30(void)

{
  uint *puVar1;
  ulonglong *puVar2;
  undefined4 *puVar3;
  uint *puVar4;
  uint uVar5;
  uint *puVar6;
  longlong lVar7;
  longlong lVar8;
  longlong lVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  uint *puVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  uint uVar30;
  ulonglong *puVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_a8;
  
  uVar36 = DAT_182671c8c;
  uVar22 = DAT_182671c88;
  uVar19 = DAT_182671c74;
  uVar37 = DAT_182671c5c;
  lVar7 = DAT_182671c40;
  uVar16 = (ulonglong)DAT_182671c74;
  uVar34 = (ulonglong)DAT_182671c5c;
  uVar27 = (ulonglong)DAT_182671c88;
  uVar39 = DAT_182671c5c ^ DAT_182671c74;
  uVar28 = (ulonglong)DAT_182671c8c;
  uVar32 = DAT_182671c88 - DAT_182671c8c;
  uVar5 = *(uint *)(&DAT_182613210 + (uVar16 ^ 0xd9d94622) + (longlong)DAT_182672248);
  uVar15 = *(uint *)(&DAT_182613220 + DAT_182672248) ^ DAT_182671c5c;
  uVar24 = (ulonglong)uVar32;
  uVar41 = (ulonglong)DAT_182671c88;
  puVar1 = (uint *)(DAT_182671c40 + -0x5d4);
  DAT_182671c58 = uVar39;
  DAT_182671c7c = uVar32;
  *(uint *)(DAT_182671c40 - (uVar27 ^ 0xffdbdc7b)) =
       *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0xd9d94456)) ^ DAT_182671cd0 |
       DAT_182671f40 ^ *(uint *)(DAT_182671c40 + -0xae4);
  uVar40 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar30 = *puVar1 ^ DAT_182671d98;
  puVar2 = (ulonglong *)(lVar7 + -0x228);
  *puVar2 = (longlong)(int)uVar30 ^ uVar40;
  uVar38 = *(ulonglong *)(lVar7 + -0xd0) ^ (ulonglong)DAT_182671cf4;
  puVar31 = (ulonglong *)
            (uVar38 + 8 +
            ((longlong)(int)uVar30 + (CONCAT44(uVar32,uVar19) ^ 0x260295d5d9d9462a) * 6) * 0x10);
  bVar17 = (byte)DAT_182671da4;
  *(ulonglong *)(lVar7 + -0xd78) = (ulonglong)puVar31 ^ CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar12 = DAT_182671d64;
  uVar26 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar7 + -0xd88) =
       (CONCAT44(uVar39,uVar22) ^ 0xd9cc10df6f127c37) >>
       ((bVar17 ^ *(byte *)(lVar7 + -0x888)) & 0x3f);
  uVar20 = CONCAT44(DAT_182671f14,DAT_182671f14) ^ *puVar31 ^ uVar26;
  uVar33 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar7 + -0x110) = uVar20;
  lVar8 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar20 = CONCAT44(DAT_182671d58,DAT_182671d58) ^ uVar33 ^ uVar26 ^ *(ulonglong *)(lVar7 + -0x380)
           ^ uVar20;
  *(ulonglong *)(lVar7 + -0xa70) = uVar20;
  *(ulonglong *)(lVar8 + -0xda8) =
       (CONCAT44(uVar37,uVar32) ^ 0x462ad9d9260295d5) -
       (*(ulonglong *)(lVar8 - (uVar41 ^ 0xffdbd18f)) ^ uVar33) ^ uVar35;
  uVar20 = uVar33 ^ uVar20;
  *(ulonglong *)(lVar8 + -0xbd8) = -0x15ccf61a0506ecfc - uVar20;
  puVar31 = (ulonglong *)(lVar8 - (uVar16 ^ 0xd9d94b82));
  uVar20 = uVar35 ^ *puVar31 | uVar20;
  *(ulonglong *)(lVar8 + -0x888) = uVar20 ^ CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar30 = DAT_182671cc4;
  lVar8 = DAT_182671c40;
  bVar25 = (byte)uVar39;
  puVar3 = (undefined4 *)(DAT_182671c40 + -0x58c);
  bVar17 = (byte)DAT_182671f4c;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (longlong)uVar20 >> ((bVar25 ^ 0xcc) & 0x3f) ^ CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(uint *)(lVar8 + -0x94) = (uVar39 ^ 0xc93435f2) >> (((byte)*puVar3 ^ bVar17) & 0x1f);
  *(uint *)(lVar8 + -0x644) = *(uint *)(lVar8 - (uVar28 ^ 0xd9d94ba2)) ^ uVar30 ^ DAT_182671d6c;
  *(ulonglong *)(lVar8 + -0x380) = CONCAT44(uVar36,uVar32) ^ 0x5803133326d6fa48;
  puVar29 = (ulonglong *)(lVar8 - ((ulonglong)uVar22 ^ 0xffdbd9d7));
  uVar20 = (ulonglong)DAT_182671f48;
  *(ulonglong *)(lVar8 + -0xa30) =
       uVar38 + 4 +
       ((uVar40 ^ *puVar29) + (CONCAT44(uVar22,uVar39) ^ 0xffdbdbff9ff39ff3) * 6) * 0x10 ^ uVar20;
  *(ulonglong *)(lVar8 - (uVar16 ^ 0xd9d946fa)) = CONCAT44(uVar32,uVar39) ^ 0xe7187a668d88988e;
  uVar14 = DAT_182671e80;
  *(uint *)(lVar8 - (uVar28 ^ 0xd9d9405a)) =
       *(uint *)(uVar20 ^ *(ulonglong *)(lVar8 + -0xa30)) ^ DAT_182671e80 ^ DAT_182671f14;
  *(longlong *)(lVar8 + -0xbd8) = *(longlong *)(lVar8 + -0x7c0) + 0x6286a053ddb0bfd7;
  uVar30 = -(*(uint *)(lVar8 - (uVar16 ^ 0xd9d9405a)) ^ uVar14) ^ DAT_182671fb4;
  *(uint *)(lVar8 + -0x9dc) = uVar30;
  uVar13 = DAT_182671d6c;
  lVar9 = DAT_182671c40;
  bVar17 = (byte)uVar32;
  uVar30 = (*(uint *)(lVar8 - (uVar24 ^ 0x260293a5)) ^ uVar14 | uVar30 ^ DAT_182671fb4) ^
           DAT_182671f8c;
  *(uint *)(lVar8 + -0x6c0) = uVar30;
  uVar11 = DAT_182671ccc;
  *(uint *)(lVar9 + -0x54) =
       (int)(uVar30 ^ DAT_182671f8c) >> ((bVar25 ^ 0xec) & 0x1f) ^ DAT_182671ccc;
  uVar21 = DAT_182671ca8;
  *puVar31 = CONCAT44(uVar32,uVar32) ^ CONCAT44(uVar37,uVar19) ^ 0x4ce9dfcce3d8718b;
  uVar18 = DAT_182671c74;
  uVar30 = *(uint *)(lVar9 + -0x644);
  *(uint *)(lVar9 + -0x61c) = uVar21 ^ uVar13 ^ DAT_182671c8c ^ uVar30 ^ 0x2626b9d5;
  lVar8 = DAT_182671c40;
  *(uint *)(lVar9 + -0xc70) =
       (uVar14 ^ *(uint *)(lVar9 + -0x670)) + (uVar18 ^ 0x2626b9d5) ^ DAT_182671ce4;
  *(ulonglong *)(lVar8 + -0x888) = 0xc6d143b955339845 >> ((bVar17 ^ 0xf7) & 0x3f);
  uVar18 = *(uint *)(lVar8 - (uVar24 ^ 0x26029581)) ^ DAT_182671cec ^ uVar11 ^ DAT_182671c88 ^
           0x242400;
  uVar21 = DAT_182671cec ^ uVar18;
  *(uint *)(lVar8 + -0x76c) = uVar18;
  *(ulonglong *)(lVar8 + -0x380) =
       (CONCAT44(uVar37,uVar32) ^ 0x1c73ac0f3a502803) -
       (CONCAT44(uVar37,uVar39) ^ 0x1c78f2dd212bbcb2);
  *(uint *)(lVar8 - (uVar28 ^ 0xd9d94f66)) = (uVar21 | uVar13 ^ uVar30) ^ DAT_182671cb8;
  *puVar29 = (uVar26 ^ *(ulonglong *)(lVar8 + -0x110)) >> ((bVar25 ^ 0xf5) & 0x3f);
  uVar10 = DAT_182671c6c;
  local_a8 = (byte)uVar12;
  *(uint *)(lVar8 - ((ulonglong)DAT_182671c78 ^ 0xb7d30eca)) =
       (*(uint *)(lVar8 + -0x94c) ^ DAT_182671cb8) & (uVar14 ^ *(uint *)(lVar8 + -0x670)) ^
       DAT_182671f6c;
  *(ulonglong *)(lVar8 + -0x7c0) =
       (CONCAT44(uVar10,uVar22) ^ 0x9123860e3871625c) <<
       ((local_a8 ^ *(byte *)(lVar8 + -0x110)) & 0x3f);
  *(uint *)(lVar8 - (uVar27 ^ 0xffdbd983)) =
       (*(uint *)(lVar8 - (uVar16 ^ 0xd9d9467e)) ^ uVar11) &
       (*(uint *)(lVar8 + -0xc70) ^ DAT_182671ce4) ^ DAT_182671ebc;
  *(uint *)(lVar8 - ((ulonglong)uVar39 ^ 0x9ff39517)) =
       (*(uint *)(lVar8 + -0x27c) ^ DAT_182671ebc) & (*(uint *)(lVar8 + -0x61c) ^ DAT_182671ca8) ^
       DAT_182671d84;
  puVar4 = (uint *)(lVar8 + -0x634);
  *(uint *)(lVar8 - (uVar16 ^ 0xd9d941ae)) =
       (*(uint *)(lVar8 - (uVar24 ^ 0x26029f31)) ^ DAT_182671d84 | *puVar4 ^ DAT_182671f6c) ^
       DAT_182671ce0;
  uVar14 = DAT_182671f14;
  lVar9 = DAT_182671c40;
  *(uint *)(uVar20 ^ *(ulonglong *)(DAT_182671c40 + -0xa30)) =
       *(uint *)(lVar8 + -0x784) ^ DAT_182671ce0 ^ DAT_182671f14;
  uVar11 = DAT_182671e28;
  uVar21 = DAT_182671c94;
  uVar24 = (ulonglong)DAT_182671ee4;
  *(undefined8 *)(lVar9 - (uVar34 ^ 0x462ad529)) = *(undefined8 *)(lVar9 - (uVar28 ^ 0xd9d94762));
  *(longlong *)(lVar9 + -0xd00) = *(longlong *)(lVar9 + -0xcf0);
  puVar23 = (uint *)((CONCAT44(uVar22,uVar19) ^ 0xffdbdbffd9d9462a) * 0x10 +
                    *(longlong *)(lVar9 + -0xcf0));
  *(ulonglong *)(lVar9 + -0x1d8) = (ulonglong)puVar23 ^ uVar24;
  uVar30 = *puVar23 ^ uVar11 ^ uVar14;
  *puVar1 = uVar30;
  lVar8 = DAT_182671c40;
  *(uint *)(lVar9 - ((ulonglong)uVar21 ^ 0xb5d30d66)) =
       (int)(uVar30 ^ uVar11) >> ((bVar17 ^ 0xca) & 0x1f) ^ uVar13;
  uVar19 = DAT_182671f78;
  uVar18 = DAT_182671c54;
  uVar30 = DAT_182671c48;
  *(uint *)(lVar8 - ((ulonglong)uVar21 ^ 0xb5d3087e)) =
       *(uint *)(lVar9 + -0x58c) ^ DAT_182671f78 ^ DAT_182671c54 ^ uVar13 ^ 0xb5f708eb;
  uVar21 = (*puVar1 ^ uVar11) - (*(uint *)(lVar8 - (uVar28 ^ 0xd9d9426e)) ^ DAT_182671c9c);
  *(uint *)(lVar8 + -0x9dc) = uVar21 ^ DAT_182671d88;
  uVar21 = (int)uVar21 >> 0x1f ^ DAT_182671d28;
  *(uint *)(lVar8 + -0x6c0) = uVar21;
  *(uint *)(lVar8 - ((ulonglong)uVar30 ^ 0xfddbf99a)) =
       (uVar19 ^ *(uint *)(lVar8 + -0x94)) & (uVar21 ^ DAT_182671d28) ^ DAT_182671c98;
  uVar19 = DAT_182671c50;
  uVar35 = (ulonglong)DAT_182671c84;
  uVar38 = (ulonglong)DAT_182671c50;
  uVar27 = (ulonglong)DAT_182671db8;
  uVar21 = *(uint *)(lVar8 - ((ulonglong)DAT_182671c60 ^ 0x9235e866)) ^ DAT_182671c98 |
           *puVar1 ^ uVar11;
  *(uint *)(lVar8 + -0x94c) = uVar21 ^ DAT_182671cd4;
  uVar20 = (ulonglong)DAT_182671c4c;
  *(uint *)(*(ulonglong *)(lVar8 - (uVar35 ^ 0xb5f70933)) ^ uVar24) = uVar21 ^ uVar14;
  *(ulonglong *)(lVar8 + -0xcf0) =
       (CONCAT44(uVar18,uVar19) ^ 0x4a08f714fe35fe5f) * 0x10 + *(longlong *)(lVar8 + -0xd00);
  *(undefined8 *)(lVar8 - ((ulonglong)DAT_182671c90 ^ 0x1d1bb399)) =
       *(undefined8 *)(lVar8 - ((ulonglong)DAT_182671c64 ^ 0xf4c9ab21));
  uVar24 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar8 + -0xda8) =
       *(ulonglong *)(CONCAT44(DAT_182671f04,DAT_182671f04) ^ *(ulonglong *)(lVar8 + -0xa0)) ^
       uVar24;
  *(undefined8 *)(lVar8 + -0xcf0) = *(undefined8 *)(lVar8 + -0xd00);
  *(ulonglong *)(lVar8 + -0x200) =
       *(longlong *)(lVar8 - (uVar20 ^ 0x9d5c17ea)) +
       (CONCAT44(uVar37,uVar10) ^ 0x462ad9d97e14d44c) * 0x10 ^ uVar27;
  lVar9 = DAT_182671c40;
  uVar21 = ~DAT_182671e68 ^ DAT_182671ef0;
  *(ulonglong *)(lVar8 - (uVar35 ^ 0xb5f70063)) =
       (CONCAT44(uVar22,DAT_182671c68) ^ 0x513df3593f96f800) + 0xe0f0e2faffe494d4;
  uVar37 = DAT_182671cfc;
  uVar22 = *(uint *)(*(ulonglong *)(lVar8 + -0x200) ^ uVar27) ^ DAT_182671cfc ^ DAT_182671f14;
  *(uint *)(lVar9 + -0x54) = uVar22;
  puVar23 = (uint *)(lVar9 + -0x444);
  uVar19 = (int)(*(uint *)(lVar9 - (uVar38 ^ 0xfe35fe0a)) ^ uVar37) >> 0x1f ^ DAT_182671ef0;
  uVar22 = (uVar22 ^ uVar37) - (*puVar23 ^ DAT_182671c9c) ^ DAT_182671ed0;
  uVar21 = uVar21 ^ uVar19;
  *(uint *)(lVar9 + -0xc70) = uVar19;
  uVar19 = DAT_182671c78;
  *(uint *)(lVar9 + -0x27c) = uVar21;
  uVar21 = uVar21 ^ DAT_182671e68;
  *puVar4 = uVar22;
  uVar22 = (int)(*(uint *)(lVar9 - (uVar28 ^ 0xd9d9401e)) ^ DAT_182671ed0) >>
           (((byte)uVar30 ^ 0xf5) & 0x1f);
  uVar20 = CONCAT44(DAT_182671c80,uVar36);
  uVar36 = uVar21 & uVar22 ^ DAT_182671e60;
  *(uint *)(lVar9 + -0xae4) = uVar22 ^ DAT_182671d10;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (uVar20 ^ 0x69e30a1db7dba3b0) - (CONCAT44(uVar19,uVar30) ^ 0xa2ebf5f157a3095b);
  uVar20 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar8 + -0x58c) = uVar36;
  uVar36 = DAT_182671ec8;
  uVar22 = DAT_182671de0;
  uVar35 = (ulonglong)DAT_182671f20;
  uVar28 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar18 ^ 0x4a08f53c)) =
       (*(ulonglong *)(lVar8 - (uVar20 ^ 0xb5d309fa)) ^ uVar26) << ((bVar17 ^ 0xed) & 0x3f);
  uVar30 = (*(uint *)(lVar8 - (uVar28 ^ 0x460ad98d)) ^ uVar37 |
           *(uint *)(lVar8 + -0x58c) ^ DAT_182671e60) ^ uVar22;
  *(uint *)(lVar8 + -0x94) = uVar30;
  *(ulonglong *)(lVar8 + -0x7c0) = CONCAT44(uVar32,DAT_182671c60) ^ 0xa56e69f00f988d1a;
  *(uint *)(*(ulonglong *)(lVar8 + -0x200) ^ uVar27) = uVar22 ^ DAT_182671f14 ^ uVar30;
  uVar30 = DAT_182671c68;
  uVar21 = DAT_182671c68 & uVar19;
  *(longlong *)(lVar8 - (uVar34 ^ 0x462ad4d9)) = *(longlong *)(lVar8 + -0xcf0) + 0x10;
  DAT_182671c60 = uVar21;
  *(uint *)(lVar8 - ((ulonglong)uVar30 ^ 0x460adf19)) =
       (*(uint *)(lVar8 + -0x9dc) ^ DAT_182671d88) * (uVar22 ^ *(uint *)(lVar8 + -0x94));
  *(undefined8 *)(lVar8 + -0xcf0) = *(undefined8 *)(lVar8 + -0xd00);
  *(undefined8 *)(lVar8 + -0xd00) = *(undefined8 *)(lVar8 - ((ulonglong)uVar19 ^ 0xb7d3040e));
  *(ulonglong *)(lVar8 + -0xda8) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar21 ^ 0x6020300)) ^ *(ulonglong *)(lVar8 + -0x380);
  puVar6 = *(uint **)(lVar8 - ((ulonglong)uVar21 ^ 0x60205d8));
  *(ulonglong *)(lVar8 + -0x790) = (ulonglong)puVar6 ^ uVar35;
  uVar37 = DAT_182671f84 ^ DAT_182671f18;
  *(uint *)(lVar8 + -0x670) = *puVar6 ^ uVar36 ^ DAT_182671f14;
  uVar28 = CONCAT44(uVar30,uVar19);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar21 ^ 0x6020050)) =
       0x58f0e307d5a1eeff >> (((byte)uVar30 ^ 0xf4) & 0x3f);
  uVar18 = uVar36 ^ *(uint *)(lVar8 + -0x670);
  uVar19 = (int)uVar18 >> 0x1f ^ DAT_182671f18;
  *puVar1 = uVar19;
  uVar37 = uVar37 ^ uVar19 ^ uVar21 ^ 0xf9fdf727;
  *(uint *)(lVar8 + -0xc70) = uVar37;
  uVar37 = uVar37 ^ DAT_182671f84;
  *puVar2 = (uVar28 ^ 0x126dba9cf71992c7) + 0x52b1131f773669a5;
  uVar19 = (*(uint *)(lVar8 - ((ulonglong)uVar30 ^ 0x460adfa9)) ^ uVar36) -
           (*puVar23 ^ DAT_182671c9c);
  *puVar4 = uVar19 ^ DAT_182671dec;
  lVar8 = DAT_182671c40;
  uVar19 = (int)uVar19 >> (((byte)uVar30 ^ 0xc6) & 0x1f);
  uVar30 = uVar19 ^ DAT_182671e30;
  *(ulonglong *)(DAT_182671c40 + -0x7c0) =
       (uVar28 ^ 0xe49a5c832e7eef08) << (((byte)uVar21 ^ 0xfa) & 0x3f);
  *(uint *)(lVar8 + -0x27c) = uVar30;
  uVar30 = uVar37 & uVar19 ^ DAT_182671cc4;
  *(uint *)(lVar8 + -0xae4) = uVar30;
  uVar30 = (uVar30 ^ DAT_182671cc4 | uVar18) ^ DAT_182671e3c;
  *(uint *)(lVar8 + -0x54) = uVar30;
  *(uint *)(uVar35 ^ *(ulonglong *)(lVar8 + -0x790)) = uVar30 ^ DAT_182671e3c ^ DAT_182671f14;
  uVar19 = DAT_182671fa0;
  uVar30 = DAT_182671c78;
  uVar27 = (ulonglong)DAT_182671c68;
  uVar35 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar8 - (uVar27 ^ 0x460ad529)) =
       (CONCAT44(uVar21,uVar21) ^ 0x60208d8060208d9) * 0x10 +
       *(longlong *)(lVar8 - ((ulonglong)DAT_182671c78 ^ 0xb7d305fe));
  *(undefined8 *)(lVar8 + -0xd00) = *(undefined8 *)(lVar8 + -0xcf0);
  uVar20 = (ulonglong)DAT_182671d04;
  *(ulonglong *)(lVar8 + -0xda8) =
       (*(ulonglong *)(lVar8 + -0x628) ^ uVar24) - (uVar26 ^ *(ulonglong *)(lVar8 + -0x110));
  *(undefined8 *)(lVar8 - ((ulonglong)uVar21 ^ 0x6020428)) = *(undefined8 *)(lVar8 + -0xcf0);
  bVar17 = (byte)uVar30 ^ 0xe1;
  *(ulonglong *)(lVar8 + -0x878) = *(ulonglong *)(lVar8 + -0xcf0) ^ uVar20;
  *(uint *)(lVar8 - (uVar35 ^ 0xb7d30d72)) =
       *(uint *)(*(ulonglong *)(lVar8 - ((ulonglong)uVar30 ^ 0xb7d30086)) ^ uVar20) ^ uVar19 ^
       DAT_182671f14;
  *(uint *)(lVar8 + -0x9dc) =
       (int)(*(uint *)(lVar8 + -0x58c) ^ uVar19) >> (bVar17 & 0x1f) ^ DAT_182671d50;
  *(ulonglong *)(lVar8 + -0x888) = uVar28 ^ 0x558bc5d4433c80ae | *(ulonglong *)(lVar8 + -0xda8);
  *(uint *)(lVar8 + -0x6c0) =
       *(uint *)(lVar8 - (uVar27 ^ 0x460ad005)) ^ DAT_182671f70 ^ DAT_182671d50 ^ uVar21 ^
       0xf9fdf727;
  uVar30 = (*(uint *)(lVar8 - (uVar16 ^ 0xd9d943a6)) ^ uVar19) - (*puVar23 ^ DAT_182671c9c) ^
           DAT_182671d54;
  *puVar1 = uVar30;
  *puVar4 = (int)(uVar30 ^ DAT_182671d54) >> (bVar17 & 0x1f) ^ DAT_182671e08;
  *puVar2 = uVar33 ^ *(ulonglong *)(lVar7 + -0xa70) ^ 0x8b3f9bcbb2b704fd;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar5 ^ uVar39;
  return;
}



############ FUN_ 180f5f520 size=2873 ############

void FUN_180f5f520(void)

{
  byte *pbVar1;
  int *piVar2;
  uint uVar3;
  longlong lVar4;
  byte bVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  undefined8 *puVar15;
  byte bVar16;
  undefined1 *puVar17;
  ulonglong uVar18;
  longlong lVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  undefined8 *puVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  
  uVar10 = DAT_182671c6c;
  uVar7 = DAT_182671c68;
  uVar14 = DAT_182671c5c;
  lVar4 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c5c;
  uVar18 = (ulonglong)DAT_182671c6c;
  uVar13 = DAT_182671c68 ^ DAT_182671c6c;
  uVar26 = DAT_182671c5c << 0x10 | DAT_182671c5c >> 0x10;
  uVar21 = (ulonglong)uVar13;
  uVar22 = *(uint *)(&DAT_182613218 + DAT_1826721b4) ^ DAT_182671c5c;
  uVar3 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar13 ^ 0xc0089134) + (longlong)DAT_1826721b4);
  uVar20 = (ulonglong)DAT_182671c68;
  bVar5 = (byte)DAT_182671c68;
  bVar16 = **(byte **)(DAT_182671c40 + -0x428);
  DAT_182671c48 = uVar26;
  DAT_182671c80 = uVar13;
  *(byte *)(DAT_182671c40 + -0x2e9) = bVar16;
  *(ulonglong *)(lVar4 + -0x30) = (ulonglong)bVar16;
  uVar23 = (ulonglong)bVar16 << ((bVar5 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd88) =
       0x4948227c947e0138 >> ((byte)*(undefined8 *)(lVar4 + -0x920) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc90) = uVar23;
  *(ulonglong *)(lVar4 + -0x680) = *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xdceef505)) | uVar23
  ;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0xf8f9f098)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xdceefd35)) ^ CONCAT44(uVar14,uVar26) ^
       0x8767ebb56ded580b;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0xc0089254)) =
       (CONCAT44(uVar10,uVar14) ^ 0x38f168dcdceef919) + *(longlong *)(lVar4 + 0x30);
  bVar16 = **(byte **)(lVar4 + -0x370);
  *(byte *)(lVar4 + -0x6b9) = bVar16;
  *(ulonglong *)(lVar4 + -0x110) = (ulonglong)bVar16;
  *(longlong *)(lVar4 + -0xda8) =
       *(longlong *)(lVar4 - ((ulonglong)uVar14 ^ 0xdceef82d)) << (((byte)uVar13 ^ 4) & 0x3f);
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x228) =
       CONCAT44(uVar14,uVar10) ^ *(ulonglong *)(lVar4 + -0xa08) ^ 0x89046765c82eb3e1;
  puVar29 = (ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xf8f9f450));
  *(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0xc0089d3c)) =
       *(ulonglong *)(lVar6 + -0x680) | *puVar29;
  puVar17 = (undefined1 *)
            ((CONCAT44(uVar10,uVar14) ^ 0x38f168dcdceef918) + *(longlong *)(lVar6 + 0x30));
  *(undefined1 **)(lVar6 + -0x6f8) = puVar17;
  *(undefined1 *)(lVar6 + -0x2e9) = *puVar17;
  *(longlong *)(lVar6 + -0xa78) =
       *(longlong *)(lVar6 + -0x7e8) << (((byte)(uVar14 >> 0x10) ^ 0xff) & 0x3f);
  uVar11 = DAT_182671c90;
  uVar23 = (ulonglong)DAT_182671c90;
  puVar24 = (ulonglong *)(lVar6 - (uVar20 ^ 0xf8f9fce8));
  *(ulonglong *)(lVar6 + -0x828) = (ulonglong)*(byte *)(lVar6 + -0x2e9);
  uVar9 = DAT_182671c64;
  *puVar24 = (ulonglong)*(byte *)(lVar6 + -0x2e9) << ((bVar5 ^ 0xd0) & 0x3f);
  *(int *)(lVar6 + -0xae4) =
       *(int *)(lVar6 - (uVar21 ^ 0xc00894a8)) << (((byte)uVar14 ^ 0x22) & 0x1f);
  *(ulonglong *)(lVar6 + -0x760) = *(ulonglong *)(lVar6 + -0xc18) | *puVar24;
  puVar17 = (undefined1 *)
            ((CONCAT44(uVar9,uVar26) ^ 0xe1b0ff44f93ddcc8) +
            *(longlong *)((uVar21 ^ 0xc0089114) + lVar6));
  *(undefined1 **)(lVar6 + -0x428) = puVar17;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       *(longlong *)(DAT_182671c40 + -0x510) - (CONCAT44(uVar10,uVar11) ^ 0x8a4e1ade3842b6c3);
  *(undefined1 *)(lVar4 - ((ulonglong)uVar11 ^ 0xe9bbf957)) = *puVar17;
  lVar4 = DAT_182671c40;
  pbVar1 = (byte *)(DAT_182671c40 + -0x6b9);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = (ulonglong)*pbVar1;
  lVar19 = (ulonglong)*pbVar1 << 0x30;
  *(longlong *)(lVar4 + -0xa50) = lVar19;
  lVar6 = DAT_182671c40;
  piVar2 = (int *)(DAT_182671c40 + -0xae4);
  *(longlong *)(DAT_182671c40 + -0x5e8) = *(longlong *)(lVar4 - (uVar23 ^ 0xe9bbf88e)) + lVar19;
  *(uint *)(lVar6 - (uVar21 ^ 0xc0089754)) = (uVar11 ^ 0x92c8a620) * *piVar2;
  lVar4 = DAT_182671c40;
  puVar17 = (undefined1 *)
            ((CONCAT44(uVar26,uVar11) ^ 0xf93ddceee9bbffc9) + *(longlong *)(DAT_182671c40 + 0x30));
  puVar27 = (undefined8 *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0xe1b0f9bc));
  *(undefined1 **)(DAT_182671c40 + -0x370) = puVar17;
  *(undefined1 *)(lVar4 + -0x2e9) = *(undefined1 *)*puVar27;
  *(undefined1 *)(lVar4 + -0x6b9) = *puVar17;
  *(ulonglong *)(lVar4 + -0xb18) = (ulonglong)*(byte *)(lVar4 - ((ulonglong)uVar14 ^ 0xdceeff84));
  *(ulonglong *)(lVar4 - (uVar21 ^ 0xc00892fc)) =
       (CONCAT44(uVar13,uVar11) ^ 0x7dd6c08ed6e2026f) <<
       ((byte)*(undefined8 *)(lVar4 + -0x5e8) & 0x3f);
  *(longlong *)(lVar4 + -0xf0) = *(longlong *)(lVar4 + -0xb18) << (((byte)uVar9 ^ 0x7c) & 0x3f);
  uVar8 = DAT_182671c54;
  uVar30 = (ulonglong)DAT_182671c54;
  uVar23 = CONCAT44(DAT_182671c54,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xdceef1b5)) =
       CONCAT44(uVar9,DAT_182671c54) ^ 0xca1f5b7e88ea169d | *(ulonglong *)(lVar4 + -0xbd8);
  *(longlong *)(lVar4 + -0x30) = *(longlong *)(lVar4 + -0x5e8) + *(longlong *)(lVar4 + -0xf0);
  uVar12 = DAT_182671e48;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar4 - (uVar18 ^ 0x38f16cc4)) + (uVar23 ^ 0xe3f4ff4538f168d8) * 8);
  *(ulonglong **)(lVar4 + -0xac0) = puVar24;
  uVar28 = CONCAT44(uVar12,uVar12);
  *puVar24 = *(ulonglong *)(lVar4 - (uVar20 ^ 0xf8f9f9c8)) ^ uVar28;
  lVar6 = DAT_182671c40;
  lVar4 = *(longlong *)(lVar4 + 0x30);
  puVar15 = (undefined8 *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0xe9bbfbc6));
  *(ulonglong *)(DAT_182671c40 + -0x428) = (CONCAT44(uVar14,uVar13) ^ 0xdceef93dc008910c) + lVar4;
  *(undefined1 *)(lVar6 + -0x2e9) = *(undefined1 *)*puVar15;
  uVar23 = (ulonglong)*(byte *)(lVar6 - (uVar18 ^ 0x38f16a35));
  *(ulonglong *)(lVar6 + -0x920) = uVar23;
  *(ulonglong *)(lVar6 + -0x6f8) = (CONCAT44(uVar7,uVar8) ^ 0xf8f9f9f8e3f4ff6c) + lVar4;
  bVar16 = *(byte *)*puVar27;
  *(byte *)(lVar6 + -0x6b9) = bVar16;
  *(ulonglong *)(lVar6 + -0xd88) = (ulonglong)bVar16;
  *(ulonglong *)(lVar6 + -0xc38) = (ulonglong)bVar16 << 8;
  lVar19 = DAT_182671c40;
  uVar23 = *(ulonglong *)(lVar6 - ((ulonglong)uVar26 ^ 0xf93dd0d6)) | uVar23;
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar23;
  *(longlong *)(lVar19 + -0x370) = lVar4 + 0x2a;
  *(ulonglong *)(lVar19 - (uVar18 ^ 0x38f161bc)) =
       (CONCAT44(uVar9,uVar26) ^ 0xdade49f5b32ceb7d) - uVar23;
  *(undefined1 *)(lVar19 + -0x2e9) = **(undefined1 **)(lVar19 + -0x370);
  *(ulonglong *)(lVar19 + -0x408) =
       *(longlong *)(lVar19 + -0x960) - (CONCAT44(uVar10,uVar26) ^ 0xdd5ed418f69980ff);
  lVar4 = DAT_182671c40;
  bVar16 = *(byte *)(lVar19 + -0x2e9);
  *(ulonglong *)(DAT_182671c40 + -0x110) = (ulonglong)bVar16;
  uVar23 = (ulonglong)bVar16 << (((byte)uVar13 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa08) = uVar23;
  *(uint *)(lVar4 + -0x670) =
       *(uint *)(lVar4 - (uVar25 ^ 0xdceeff09)) >> (((byte)uVar11 ^ 0xf6) & 0x1f);
  *(ulonglong *)(lVar4 + -0x228) = uVar23 | *(ulonglong *)(lVar4 + -0xc90);
  puVar17 = (undefined1 *)
            ((CONCAT44(uVar14,uVar26) ^ 0xdceef93df93ddcc5) + *(longlong *)(lVar4 + 0x30));
  *(undefined1 **)(lVar4 + -0x428) = puVar17;
  *(undefined1 *)(lVar4 - ((ulonglong)uVar9 ^ 0xe1b0f9fd)) = *puVar17;
  *(ulonglong *)(lVar4 + -0x680) = (ulonglong)*(byte *)(lVar4 + -0x6b9);
  *puVar29 = (ulonglong)*(byte *)(lVar4 + -0x6b9) << (((byte)uVar11 ^ 0xf6) & 0x3f);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xe3f4f8ad)) =
       *(ulonglong *)(lVar4 + -0xda8) | *(ulonglong *)(lVar4 + -0x228);
  *(uint *)(lVar4 + -0x634) = *(uint *)(lVar4 + -0x644) | *(uint *)(lVar4 + -0x58c);
  *(ulonglong *)(lVar4 - (uVar21 ^ 0xc00897dc)) =
       (CONCAT44(uVar10,uVar26) ^ 0x38f168dcf93ddcc2) + *(longlong *)(lVar4 + 0x30);
  bVar16 = **(byte **)(lVar4 + -0x6f8);
  *(byte *)(lVar4 + -0x2e9) = bVar16;
  *(ulonglong *)(lVar4 + -0xa78) = (ulonglong)bVar16;
  uVar23 = *(longlong *)(lVar4 - (uVar21 ^ 0xc0089b5c)) << (((byte)uVar9 ^ 100) & 0x3f);
  *(ulonglong *)(lVar4 + -0x828) = uVar23;
  uVar7 = DAT_182671c50;
  uVar20 = uVar23 | *(ulonglong *)(lVar4 + -0x7e8);
  *(ulonglong *)(lVar4 + -0xc18) = (CONCAT44(uVar9,uVar14) ^ 0x447e919e40bfb6e8) - uVar23;
  *(ulonglong *)(lVar4 + -0x510) = uVar20;
  lVar6 = DAT_182671c40;
  uVar14 = uVar7 << 0x10 | uVar7 >> 0x10;
  lVar4 = *(longlong *)(DAT_182671c40 + 0x30);
  uVar23 = CONCAT44(uVar14,uVar7);
  bVar16 = (byte)(uVar7 >> 0x10);
  puVar17 = (undefined1 *)((uVar23 ^ 0x25c9e6f9e6f0271) + lVar4);
  DAT_182671c7c = uVar14;
  *(undefined1 **)(DAT_182671c40 + -0x370) = puVar17;
  *(ulonglong *)(lVar6 + -0xa60) = (uVar23 ^ 0x54cf75dd87ed2d12) << ((bVar16 ^ 0x4f) & 0x3f);
  lVar6 = DAT_182671c40;
  *(undefined1 *)(DAT_182671c40 + -0x6b9) = *puVar17;
  *(ulonglong *)(lVar6 + -0x760) = (ulonglong)*(byte *)(lVar6 - ((ulonglong)uVar14 ^ 0x25c98d6));
  lVar19 = DAT_182671c40;
  uVar25 = *(longlong *)(lVar6 - ((ulonglong)uVar7 ^ 0x9e6f053c)) << ((bVar16 ^ 0x47) & 0x3f);
  puVar24 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar14 ^ 0x25c9b7f));
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar25;
  *(ulonglong *)(lVar19 + -0x3d8) = *puVar24 | uVar25;
  *(ulonglong *)(lVar19 + -0xb18) = CONCAT44(uVar7,uVar7) ^ 0xe5ffc76ff36a0db7 | 0x64bbc76d536205b7;
  puVar17 = (undefined1 *)((uVar23 ^ 0x25c9e6f9e6f0272) + lVar4);
  *(ulonglong *)(lVar19 + -0xbd8) = uVar20 << 0x1c;
  *(undefined1 **)(lVar19 + -0x428) = puVar17;
  *(undefined1 *)(lVar19 + -0x2e9) = *puVar17;
  *(ulonglong *)(lVar19 - (uVar18 ^ 0x38f16054)) =
       (ulonglong)*(byte *)(lVar19 - ((ulonglong)uVar14 ^ 0x25c9c86));
  puVar17 = (undefined1 *)((uVar23 ^ 0x25c9e6f9e6f0273) + *(longlong *)(lVar19 + 0x30));
  *(longlong *)(lVar19 + -0x5e8) = *(longlong *)(lVar19 + -0x888) << 0x30;
  uVar23 = (ulonglong)DAT_182671c84;
  *(longlong *)(lVar19 + -0xf0) =
       *(longlong *)(lVar19 - ((ulonglong)uVar14 ^ 0x25c9b87)) + *(longlong *)(lVar19 + -0x3d8);
  *(undefined1 **)(lVar19 + -0x370) = puVar17;
  *(undefined1 *)(lVar19 - (uVar23 ^ 0xb0ca91ab)) = *puVar17;
  *(ulonglong *)(lVar19 + -0xd88) = (ulonglong)*(byte *)(lVar19 + -0x6b9);
  bVar16 = (byte)DAT_182671c94;
  *(ulonglong *)(lVar19 - ((ulonglong)uVar7 ^ 0x9e6f0e64)) =
       (CONCAT44(uVar9,uVar7) ^ 0x865ef0af7aa4255) << (((byte)uVar8 ^ 0x69) & 0x3f);
  *(longlong *)(lVar19 + -0x920) = *(longlong *)(lVar19 + -0xd88) << ((bVar16 ^ 0x38) & 0x3f);
  *(longlong *)(lVar19 - ((ulonglong)uVar7 ^ 0x9e6f0654)) =
       *(longlong *)(lVar19 - ((ulonglong)uVar7 ^ 0x9e6f0b7c)) + *(longlong *)(lVar19 + -0xf0);
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar19 - (uVar21 ^ 0xc008953c)) +
            (CONCAT44(uVar11,uVar14) ^ 0xe9bbffee025c9e6a) * 8);
  *(ulonglong **)(lVar19 + -0x6e8) = puVar24;
  *puVar24 = *(ulonglong *)(lVar19 + -0x408) ^ uVar28;
  pbVar1 = (byte *)(*(longlong *)(lVar19 + 0x30) + 0x30);
  *(byte **)(lVar19 + -0x428) = pbVar1;
  bVar16 = *pbVar1;
  *(byte *)(lVar19 + -0x2e9) = bVar16;
  *(ulonglong *)(lVar19 + -0x960) = (ulonglong)bVar16;
  *(ulonglong *)(lVar19 + -0x370) =
       (CONCAT44(DAT_182671c74,uVar13) ^ 0x209108bfc0089115) + *(longlong *)(lVar19 + 0x30);
  *(ulonglong *)(lVar19 + -0x110) =
       CONCAT44(uVar13,uVar7) ^ CONCAT44(uVar14,uVar10) ^ 0xb0b38f425ed8f506;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar3 ^ uVar26) * 4) = uVar22;
  return;
}



############ FUN_ 180fc3900 size=4756 ############

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

void FUN_180fc3900(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  byte bVar18;
  byte *pbVar19;
  ulonglong *puVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  longlong *plVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_c8;
  byte local_a8;
  
  bVar17 = (byte)DAT_182671ec4;
  uVar10 = DAT_182671c78;
  lVar2 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c78;
  uVar22 = (DAT_182671c78 << 0x10 | DAT_182671c78 & 0xff00) << 8 | DAT_182671c78 >> 8 & 0xff00 |
           DAT_182671c78 >> 0x18;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182671fc8);
  uVar23 = *(uint *)(&DAT_182613218 + DAT_182671fc8) ^ DAT_182671c78;
  uVar36 = (ulonglong)DAT_182671c78;
  uVar34 = CONCAT44(uVar22,DAT_182671c78);
  bVar18 = (byte)DAT_182671f14;
  DAT_182671c5c = uVar22;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0xfe08d68e)) =
       *(byte *)((ulonglong)DAT_182671e94 ^ *(ulonglong *)(DAT_182671c40 + -0x6f8)) ^
       (byte)DAT_182671ec4 ^ bVar18;
  uVar25 = (ulonglong)(*(byte *)(lVar2 + -0x539) ^ bVar17);
  *(ulonglong *)(lVar2 + -0x2b0) = CONCAT44(uVar10,uVar22) ^ uVar34 ^ 0x1657afd9387b2ae6;
  uVar8 = DAT_182671ce0;
  *(ulonglong *)(lVar2 + -0x8f0) = uVar25 ^ CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar32 = DAT_182671c74;
  uVar35 = CONCAT44(uVar8,uVar8);
  uVar25 = uVar25 << (((byte)uVar10 ^ 0xee) & 0x3f);
  *(ulonglong *)(lVar2 + -0x30) = uVar25 ^ uVar35;
  uVar8 = DAT_182671f2c;
  *(ulonglong *)(lVar2 + -0xb20) = uVar25 - *(longlong *)(lVar2 - ((ulonglong)uVar10 ^ 0xb7d303f6));
  uVar15 = DAT_182671ef4;
  uVar41 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0xfe08d387)) ^ uVar35 |
       CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0xbd8)) ^ uVar41;
  bVar17 = (byte)DAT_182671d74;
  uVar24 = DAT_182671c64;
  uVar5 = DAT_182671c4c;
  puVar26 = (ulonglong *)(lVar2 - (uVar36 ^ 0xb7d30556));
  *puVar26 = CONCAT44(uVar22,DAT_182671c6c) ^ CONCAT44(uVar32,uVar22) ^ 0xab2ecdac450d8a78;
  uVar25 = CONCAT44(uVar24,uVar22);
  pbVar19 = (byte *)((uVar25 ^ 0xf4c9a7d1fe08d39c) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0x370) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182671e20;
  uVar7 = DAT_182671c60;
  *(byte *)(lVar2 - ((ulonglong)uVar5 ^ 0x9d5c1fc3)) = *pbVar19 ^ bVar17 ^ bVar18;
  uVar14 = DAT_182671e44;
  uVar36 = (ulonglong)(*(byte *)(lVar2 + -0x4d9) ^ bVar17);
  *(ulonglong *)(lVar2 + -0x2b0) = uVar36 ^ CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar8 = DAT_182671df8;
  uVar32 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c50;
  bVar29 = (byte)DAT_182671c50;
  uVar36 = uVar36 << ((bVar29 ^ 0x44) & 0x3f);
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar34 = CONCAT44(DAT_182671c54,uVar10);
  *(ulonglong *)(DAT_182671c40 + -0x8f0) = uVar36 ^ uVar28;
  bVar17 = (byte)DAT_182671ddc;
  pbVar19 = (byte *)((uVar34 ^ 0x4a08f714b7d308d2) + *(longlong *)(lVar2 + -0x870));
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar34 = (ulonglong)DAT_182671eb4;
  *(ulonglong *)(lVar2 + -0xb08) = (uVar36 | *(ulonglong *)(lVar2 + -0x888) ^ uVar41) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x708) = (ulonglong)pbVar19 ^ uVar34;
  lVar2 = DAT_182671c40;
  bVar18 = (byte)DAT_182671f14;
  uVar34 = (ulonglong)DAT_182671c90;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0xfe08d896)) = *pbVar19 ^ bVar17 ^ bVar18;
  uVar8 = DAT_182671e14;
  uVar36 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar2 + -0xb20) = (*(byte *)(lVar2 - (uVar34 ^ 0x6ecd9b2c)) ^ bVar17) ^ uVar36;
  uVar14 = DAT_182671f54;
  uVar12 = DAT_182671c88;
  uVar6 = DAT_182671c68;
  uVar36 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x9d5c103a)) ^ uVar36) <<
           (((byte)uVar24 ^ 0xf1) & 0x3f);
  uVar34 = CONCAT44(DAT_182671c88,DAT_182671c58);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar36 ^ CONCAT44(uVar8,uVar8);
  bVar17 = (byte)DAT_182671d78;
  uVar42 = CONCAT44(uVar14,uVar14);
  pbVar19 = (byte *)((uVar34 ^ 0xffdbdbff691beb38) + *(longlong *)(lVar2 + -0x870));
  uVar36 = uVar36 | *(ulonglong *)(lVar2 + -0xb08) ^ uVar30;
  uVar34 = (ulonglong)DAT_182671d64;
  *(ulonglong *)(lVar2 + -0x30) = uVar36 ^ uVar42;
  *(ulonglong *)(lVar2 + -0x328) = (ulonglong)pbVar19 ^ uVar34;
  *(byte *)(lVar2 + -0x7c1) = *pbVar19 ^ bVar17 ^ bVar18;
  uVar34 = (ulonglong)(*(byte *)(lVar2 - ((ulonglong)uVar6 ^ 0x460ade18)) ^ bVar17);
  *(ulonglong *)(lVar2 + -0xda8) = uVar34 ^ CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar13 = DAT_182671c94;
  uVar24 = DAT_182671c8c;
  uVar5 = DAT_182671c84;
  uVar45 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       CONCAT44(DAT_182671c94,uVar10) ^ 0x24d604f0251e7d4a |
       CONCAT44(uVar32,uVar32) ^ 0x2af325bbc8ae9b90;
  uVar34 = uVar34 << (((byte)uVar6 ^ 0xf1) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar34 ^ CONCAT44(DAT_182671dec,DAT_182671dec);
  lVar2 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = (uVar34 | uVar36) ^ uVar27;
  bVar17 = (byte)DAT_182671f30;
  uVar46 = (ulonglong)DAT_182671ebc;
  local_c8 = (byte)uVar15;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xb5f70a5b)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xb5f703e3)) ^ uVar30) <<
       ((*(byte *)(lVar2 + -0x888) ^ local_c8) & 0x3f);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x460ade81)) =
       (CONCAT44(uVar24,DAT_182671c6c) ^ 0xb5d2e4eb5de16ecb) + *(longlong *)(lVar2 + -0x870) ^
       uVar46;
  uVar11 = DAT_182671c80;
  *(uint *)(lVar2 + -0x94c) = (DAT_182671c80 ^ 0xc71bc5f6) << ((bVar29 ^ 0x5c) & 0x1f);
  uVar9 = DAT_182671c70;
  bVar21 = (byte)DAT_182671f14;
  uVar36 = (ulonglong)DAT_182671c70;
  uVar34 = (ulonglong)DAT_182671c88;
  *(byte *)(lVar2 + -0x72c) = *(byte *)(uVar46 ^ *(ulonglong *)(lVar2 + -0x758)) ^ bVar17 ^ bVar21;
  uVar31 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  bVar18 = (byte)DAT_182671c90;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x96e83544)) =
       (*(byte *)(lVar2 - (uVar34 ^ 0xffdbdcd3)) ^ bVar17) ^ uVar31;
  uVar8 = DAT_182671e90;
  lVar3 = DAT_182671c40;
  uVar34 = (uVar31 ^ *(ulonglong *)(lVar2 + -0xda8)) << ((bVar18 ^ 0x3d) & 0x3f);
  *(ulonglong *)(lVar2 + -0x30) = uVar34 ^ CONCAT44(DAT_182671d88,DAT_182671d88);
  bVar17 = (byte)DAT_182671d80;
  uVar30 = CONCAT44(uVar8,uVar8);
  pbVar19 = (byte *)(*(longlong *)(lVar3 + -0x870) + 0x2f);
  uVar36 = (ulonglong)DAT_182671df0;
  *(ulonglong *)(lVar3 + -0xb20) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xfffbd027)) ^ uVar27) + uVar34 ^ uVar30;
  bVar18 = (byte)DAT_182671c94;
  *(ulonglong *)(lVar3 + -0x990) = (ulonglong)pbVar19 ^ uVar36;
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 + -0x8f0) ^ uVar28) >> ((bVar18 ^ 0xe8) & 0x3f);
  *(byte *)(lVar3 - ((ulonglong)uVar22 ^ 0xfe08d936)) = *pbVar19 ^ bVar17 ^ bVar21;
  uVar8 = DAT_182671f74;
  uVar5 = DAT_182671c74;
  uVar6 = DAT_182671c58;
  uVar34 = (ulonglong)(*(byte *)(lVar3 + -0xa81) ^ bVar17);
  uVar46 = (ulonglong)DAT_182671c74;
  uVar47 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar3 + -0x888) = uVar34 ^ CONCAT44(DAT_182671e78,DAT_182671e78);
  lVar2 = DAT_182671c40;
  uVar38 = CONCAT44(uVar8,uVar8);
  uVar34 = uVar34 << (((byte)uVar10 ^ 0xc6) & 0x3f);
  puVar20 = (ulonglong *)(DAT_182671c40 + -0xb20);
  uVar28 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar34 ^ uVar38;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar34 + (uVar30 ^ *puVar20) ^ uVar28;
  uVar36 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c54 ^ 0x4a08fdd4)) =
       *(longlong *)(lVar2 - (uVar46 ^ 0xa52ae214)) +
       (CONCAT44(uVar22,uVar22) ^ 0xfe08d3b7fe08d3b2) * 8 ^ uVar36;
  uVar27 = CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar34 = (ulonglong)DAT_182671d7c;
  uVar30 = CONCAT44(uVar22,DAT_182671c4c);
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0xac0) ^ uVar36) =
       *(ulonglong *)(lVar2 - (uVar47 ^ 0x691be0cd)) ^ uVar27 ^ uVar28;
  pbVar19 = (byte *)((uVar30 ^ 0xfe08d3b79d5c1b2a) + *(longlong *)(lVar2 + -0x870));
  *(ulonglong *)(lVar2 + -0x6f8) = (ulonglong)pbVar19 ^ uVar34;
  uVar14 = DAT_182671f14;
  uVar24 = DAT_182671c4c;
  uVar30 = (ulonglong)DAT_182671ce4;
  uVar47 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0x30) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xa52ae4bc)) ^ uVar38 ^ uVar31 ^
       *(ulonglong *)(lVar2 + -0xda8);
  uVar16 = DAT_182671f7c;
  uVar8 = DAT_182671d0c;
  lVar2 = DAT_182671c40;
  bVar17 = *pbVar19 ^ (byte)DAT_182671f7c ^ (byte)uVar14;
  uVar36 = (ulonglong)DAT_182671f7c & 0xff ^ (ulonglong)bVar17;
  *(byte *)(DAT_182671c40 + -0x87a) = bVar17;
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar34 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 + -0x8f0) = uVar36 ^ uVar39;
  uVar5 = DAT_182671c48;
  uVar43 = (ulonglong)DAT_182671c48;
  pbVar19 = (byte *)(*(longlong *)(lVar2 - (uVar34 ^ 0xb4d86196)) +
                    (CONCAT44(uVar11,uVar6) ^ 0xfffbdbff691beb24));
  uVar34 = CONCAT44(DAT_182671c48,uVar24);
  *(ulonglong *)(lVar2 + -0x370) = (ulonglong)pbVar19 ^ uVar30;
  *(ulonglong *)(lVar2 + -0xb08) = uVar36 - (uVar34 ^ 0x3fcac234e4c97651);
  bVar17 = (byte)DAT_182671f10;
  uVar34 = (ulonglong)DAT_182671c60;
  *(byte *)(DAT_182671c40 - (uVar33 ^ 0xb7d30eac)) =
       *pbVar19 ^ (byte)DAT_182671f10 ^ (byte)DAT_182671f14;
  uVar38 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar36 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xe60ca2ea)) =
       (*(byte *)(DAT_182671c40 + -0x652) ^ bVar17) ^ uVar38;
  uVar8 = DAT_182671c6c;
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x9d5c1392)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x460ade19)) ^ uVar38) << 8 ^ uVar31;
  uVar47 = (ulonglong)DAT_182671e40;
  uVar34 = (ulonglong)DAT_182671c64;
  uVar36 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar2 + -0xb20) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0x8f0) | *(ulonglong *)(lVar2 + -0x888) ^ uVar31) ^ uVar28;
  plVar40 = (longlong *)(lVar2 - (uVar34 ^ 0xf4c9afa1));
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x460aded1)) =
       (CONCAT44(uVar32,uVar8) ^ 0x1b1a9d5c5de16ed7) + *plVar40 ^ uVar47;
  uVar8 = DAT_182671eb0;
  bVar17 = (byte)DAT_182671d04;
  bVar18 = *(byte *)(*(ulonglong *)(lVar2 - (uVar33 ^ 0xb7d30ff6)) ^ uVar47) ^ (byte)DAT_182671d04 ^
           (byte)DAT_182671f14;
  *(byte *)(lVar2 + -0xc9d) = bVar18;
  uVar14 = DAT_182671f98;
  uVar34 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x408) = (bVar18 ^ bVar17) ^ uVar34;
  lVar3 = DAT_182671c40;
  uVar31 = CONCAT44(uVar16,uVar16);
  uVar34 = (*(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0xa52ae204)) ^ uVar34) <<
           (((byte)DAT_182671c84 ^ 0xfb) & 0x3f);
  puVar20 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0x6ecd9b2d));
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar34 ^ CONCAT44(uVar14,uVar14);
  bVar17 = (byte)DAT_182671e3c;
  uVar36 = (ulonglong)DAT_182671fa0;
  uVar46 = CONCAT44(uVar12,DAT_182671c88);
  *(ulonglong *)(lVar3 + -0x2b0) = (*puVar20 ^ uVar28 | uVar34) ^ uVar31;
  pbVar19 = (byte *)((uVar46 ^ 0xffdbdbffffdbdbcc) + *plVar40);
  *(ulonglong *)(lVar3 + -0x328) = (ulonglong)pbVar19 ^ uVar36;
  uVar12 = DAT_182671e60;
  uVar34 = (ulonglong)DAT_182671e60;
  *(uint *)(lVar3 + -0x9dc) =
       *(uint *)(lVar3 - ((ulonglong)uVar11 ^ 0xfffbdd3f)) | *(uint *)(lVar3 + -0x6c0);
  uVar14 = DAT_182671f64;
  bVar18 = *pbVar19 ^ (byte)uVar12 ^ (byte)DAT_182671f14;
  *(byte *)(lVar3 + -0x889) = bVar18;
  uVar8 = DAT_182671ec8;
  uVar34 = (ulonglong)bVar18 ^ uVar34 & 0xff;
  uVar47 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x30) = uVar34 ^ uVar47;
  uVar46 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c58 ^ 0x691be01d)) =
       uVar34 << (((byte)uVar5 ^ 0xf2) & 0x3f) ^ uVar46;
  uVar46 = uVar46 ^ *(ulonglong *)(lVar3 + -0xb08);
  uVar34 = (ulonglong)_DAT_182671cf0;
  uVar28 = uVar31 ^ *(ulonglong *)(lVar3 + -0x2b0) | uVar46;
  lVar2 = *(longlong *)(lVar3 + -0x870);
  *(ulonglong *)(lVar3 + -0x7c0) = uVar28 ^ CONCAT44(DAT_182671e9c,DAT_182671e9c);
  pbVar19 = (byte *)(lVar2 + 0x34);
  *(ulonglong *)(lVar3 + -0x758) = (ulonglong)pbVar19 ^ uVar34;
  bVar44 = (byte)DAT_182671f14;
  *(byte *)(lVar3 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar45 ^ 0xb5d2e79b)) ^ uVar30) ^ bVar44;
  bVar18 = *pbVar19 ^ bVar17 ^ bVar44;
  *(byte *)(lVar3 + -0x27e) = bVar18;
  uVar6 = DAT_182671c84;
  lVar4 = DAT_182671c40;
  uVar30 = (ulonglong)(bVar17 ^ bVar18);
  uVar34 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar3 + -0x8f0) = uVar30 ^ uVar41;
  *(undefined8 *)(lVar3 + -0x408) = 0xa41cf10000000000;
  uVar8 = DAT_182671f18;
  uVar30 = uVar30 << 0x20;
  *(ulonglong *)(lVar3 + -0x888) = uVar30 ^ uVar34;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar34 = (ulonglong)DAT_182671ccc;
  *(ulonglong *)(lVar4 + -0xb20) = (uVar28 | uVar30) ^ uVar36;
  bVar17 = (byte)DAT_182671cc8;
  uVar24 = DAT_182671c60;
  uVar28 = (ulonglong)DAT_182671c60;
  pbVar19 = (byte *)((CONCAT44(uVar32,DAT_182671c60) ^ 0x1b1a9d5ce60ca51f) + lVar2);
  *(ulonglong *)(lVar4 + -0x990) = (ulonglong)pbVar19 ^ uVar34;
  *(byte *)(lVar4 + -0x6e9) = *pbVar19 ^ bVar17 ^ bVar44;
  *puVar26 = -0x6af59ae0cf341b3e << ((byte)uVar46 & 0x3f);
  uVar8 = DAT_182671db8;
  *(ulonglong *)(lVar4 + -0x30) = (bVar17 ^ *(byte *)(lVar4 + -0x6e9)) ^ uVar42;
  uVar34 = CONCAT44(uVar8,uVar8);
  bVar21 = (byte)uVar6;
  uVar46 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar4 + -0x2b0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xfddbffda)) ^ uVar42) <<
       ((bVar21 ^ 0xc3) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar4 + -0x8f0) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0xb7d30a4e)) ^ uVar34 |
       uVar36 ^ *(ulonglong *)(lVar4 + -0xb20)) ^ uVar46;
  bVar17 = (byte)DAT_182671e34;
  lVar2 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671f04;
  *(ulonglong *)(lVar4 + -0x6f8) =
       *(longlong *)(lVar4 - (uVar28 ^ 0xe60cad5a)) + (CONCAT44(uVar7,uVar24) ^ 0xe60ca52ae60ca51c)
       ^ uVar34;
  uVar14 = DAT_182671e5c;
  bVar18 = *(byte *)(*(ulonglong *)(lVar2 - (uVar37 ^ 0x1b1a9ba4)) ^ uVar34) ^ bVar17 ^ bVar44;
  *(byte *)(lVar2 + -0x183) = bVar18;
  uVar8 = DAT_182671cbc;
  uVar34 = (ulonglong)(bVar18 ^ bVar17);
  uVar36 = (ulonglong)DAT_182671da0;
  *(ulonglong *)(lVar2 + -0x408) = uVar34 ^ CONCAT44(uVar14,uVar14);
  uVar30 = (ulonglong)DAT_182671c7c;
  uVar34 = uVar34 << (((byte)DAT_182671c4c ^ 0x2a) & 0x3f);
  uVar28 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar2 + -0x7c0) = uVar34 ^ CONCAT44(uVar8,uVar8);
  uVar5 = DAT_182671c68;
  lVar3 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c68;
  uVar34 = (*(ulonglong *)(lVar2 - (uVar30 ^ 0x460ad129)) ^ uVar46) + uVar34;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar34 ^ uVar28;
  uVar24 = DAT_182671d88;
  lVar2 = DAT_182671c40;
  pbVar19 = (byte *)(*(longlong *)(lVar3 - (uVar37 ^ 0x460ad1a9)) +
                    (CONCAT44(uVar13,DAT_182671c90) ^ 0xb4d869e66ecd903a));
  uVar32 = DAT_182671d88 & 0xff;
  *(ulonglong *)(DAT_182671c40 + -0x708) = (ulonglong)pbVar19 ^ uVar36;
  *(byte *)(lVar2 + -0x261) = *pbVar19 ^ (byte)uVar24 ^ bVar44;
  uVar14 = DAT_182671f40;
  lVar3 = DAT_182671c40;
  uVar46 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar2 + -0xb08) =
       (CONCAT44(uVar10,uVar5) ^ 0x22bc0508880c0f62) >>
       ((*(byte *)(lVar2 - (uVar46 ^ 0x4a08f0d4)) ^ (byte)uVar8) & 0x3f);
  uVar28 = (ulonglong)uVar32 ^ (ulonglong)*(byte *)(lVar2 + -0x261);
  uVar36 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *(ulonglong *)(lVar2 + -0xda8) = uVar28 ^ CONCAT44(uVar14,uVar14);
  uVar8 = DAT_182671eb8;
  *(ulonglong *)(lVar2 + -0x30) = uVar36 ^ *(ulonglong *)(*(ulonglong *)(lVar2 + -0x218) ^ uVar35);
  uVar5 = DAT_182671c70;
  uVar28 = uVar28 << ((bVar29 ^ 100) & 0x3f);
  local_a8 = (byte)(uVar10 >> 0x18);
  *(ulonglong *)(lVar2 + -0xb20) = uVar28 ^ CONCAT44(uVar8,uVar8);
  uVar37 = CONCAT44(uVar22,uVar6);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (CONCAT44(uVar9,uVar5) ^ 0x281079ab8df941d5) << ((local_a8 ^ 0xbe) & 0x3f);
  uVar36 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar34 = uVar28 + uVar34 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x408) = uVar34;
  uVar14 = DAT_182671f14;
  *(ulonglong *)(lVar3 + -0x6e8) =
       *(longlong *)(lVar3 - (uVar43 ^ 0xfddbfbf2)) + (uVar37 ^ 0xfe08d3b7b5f708ed) * 8 ^
       CONCAT44(uVar12,uVar12);
  uVar5 = DAT_182671da4;
  uVar24 = DAT_182671da4 & 0xff;
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar46 ^ 0x4a08f1fc)) ^ CONCAT44(uVar12,uVar12)) =
       uVar36 ^ uVar27 ^ uVar34;
  uVar34 = (ulonglong)DAT_182671e24;
  *(ulonglong *)(lVar3 + -0x328) = *(longlong *)(lVar3 + -0x870) + 0x38U ^ uVar34;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0xffdbd30f)) =
       (uVar37 ^ 0x30561cc3061ae2ee) << (((byte)DAT_182671c58 ^ 0x22) & 0x3f);
  bVar17 = (byte)DAT_182671e88;
  uVar8 = DAT_182671d14;
  bVar18 = *(byte *)(uVar34 ^ *(ulonglong *)(lVar3 + -0x328)) ^ (byte)uVar5 ^ (byte)uVar14;
  *(byte *)(lVar3 + -0xc1) = bVar18;
  uVar36 = (ulonglong)DAT_182671d30;
  *(ulonglong *)(lVar3 + -0x7c0) = (ulonglong)bVar18 ^ (ulonglong)uVar24 ^ CONCAT44(uVar8,uVar8);
  uVar34 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar3 + -0x370) =
       (CONCAT44(uVar9,uVar10) ^ 0x96e838ecb7d308c7) + *(longlong *)(lVar3 + -0x870) ^ uVar36;
  *(byte *)(lVar3 + -0x1c2) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar34 ^ 0xb4d86a96)) ^ uVar36) ^ bVar17 ^ (byte)uVar14;
  uVar34 = (ulonglong)(bVar17 ^ *(byte *)(lVar3 + -0x1c2));
  *(ulonglong *)(lVar3 + -0x30) = uVar34 ^ uVar47;
  *(ulonglong *)(lVar3 + -0xb08) =
       (uVar25 ^ 0x5bfa441ddbbefec9) >> (((byte)uVar8 ^ *(byte *)(lVar3 + -0x7c0)) & 0x3f);
  uVar25 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar22) * 4) = uVar23;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x460ad471)) = uVar34 << ((bVar21 ^ 0xe3) & 0x3f) ^ uVar25;
  return;
}



############ FUN_ 180f45e70 size=4519 ############

void FUN_180f45e70(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint uVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  uint *puVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  byte bVar22;
  uint uVar23;
  byte *pbVar24;
  uint uVar25;
  ulonglong uVar26;
  byte *pbVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint *puVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  
  uVar11 = DAT_182671f4c;
  uVar34 = DAT_182671e3c;
  uVar12 = DAT_182671c84;
  uVar25 = DAT_182671c78;
  uVar10 = DAT_182671c60;
  lVar6 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671c84;
  uVar26 = (ulonglong)DAT_182671c78;
  uVar30 = DAT_182671c84 << 0x10 | DAT_182671c84 >> 0x10;
  uVar31 = uVar30 ^ 0x94aa8aa2;
  uVar37 = DAT_182671c78 & DAT_182671c60;
  uVar4 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c84 ^ 0x10040009) + (longlong)DAT_182672164);
  uVar5 = *(uint *)(&DAT_182613220 + DAT_182672164);
  bVar22 = (byte)DAT_182671c60;
  DAT_182671c50 = uVar31;
  DAT_182671c8c = uVar37;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c78 ^ 0xffdbf51b)) =
       (*(uint *)(DAT_182671c40 + -0x4ac) ^ DAT_182671cd4) << ((bVar22 ^ 0xa1) & 0x1f) ^
       DAT_182671e3c;
  uVar18 = (ulonglong)uVar37;
  puVar1 = (uint *)(lVar6 + -0x9dc);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar25 ^ 0xffdbf427)) =
       (CONCAT44(uVar30,uVar12) ^ 0x9600fdfe6789bdc9) >> (((byte)uVar37 ^ 0xad) & 0x3f);
  *puVar1 = (*(uint *)(lVar6 - (uVar42 ^ 0x100401c9)) ^ DAT_182671d00) -
            (uVar34 ^ *(uint *)(lVar6 + -0xae4)) ^ DAT_182671d28;
  puVar39 = (uint *)(lVar6 + -0x94c);
  puVar33 = (uint *)(lVar6 - ((ulonglong)uVar31 ^ 0x94ab937a));
  puVar19 = (uint *)(DAT_182671c40 + -0x61c);
  *puVar19 = (*puVar39 ^ uVar11) * (*puVar33 ^ DAT_182671d28) ^ DAT_182671f48;
  lVar6 = DAT_182671c40;
  uVar34 = (*(uint *)(DAT_182671c40 - ((ulonglong)uVar10 ^ 0x3c50c1c)) ^ DAT_182671cd4) * 7 ^
           DAT_182671fb0;
  *(uint *)(DAT_182671c40 + -0x6c0) = uVar34;
  lVar7 = DAT_182671c40;
  bVar22 = bVar22 ^ 0xbd;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar10 ^ 0x3c508e4)) =
       (*(uint *)(lVar6 - ((ulonglong)uVar25 ^ 0xffdbf9e3)) ^ DAT_182671f48) +
       (uVar34 ^ DAT_182671fb0) ^ DAT_182671f28;
  uVar34 = *(uint *)(lVar7 + -0x54) ^ DAT_182671f28;
  *(uint *)(lVar7 + -0x76c) = uVar34 << (bVar22 & 0x1f) ^ DAT_182671d6c;
  *(uint *)(lVar7 - ((ulonglong)uVar25 ^ 0xffdbff6b)) =
       uVar34 >> (((byte)uVar31 ^ 0xb5) & 0x1f) ^ DAT_182671d54;
  *(uint *)(lVar7 + -0x684) =
       (*(uint *)(lVar7 + -0x94) ^ DAT_182671d54 | *(uint *)(lVar7 + -0x76c) ^ DAT_182671d6c) ^
       DAT_182671d98;
  lVar6 = DAT_182671c40;
  puVar2 = (uint *)(DAT_182671c40 + -0x644);
  *(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0x3c10a00)) =
       (CONCAT44(uVar37,uVar12) ^ 0xbf921a0d0a9973ce) << (((byte)uVar25 ^ 0xc5) & 0x3f);
  uVar34 = (*puVar39 ^ uVar11) + (DAT_182671dd4 ^ *(uint *)(lVar6 + -0x5d4)) ^ DAT_182671ca0;
  *puVar2 = uVar34;
  *(uint *)(lVar6 - ((ulonglong)uVar31 ^ 0x94ab9c92)) = uVar34 ^ DAT_182671e94 ^ DAT_182671ca0;
  *(uint *)(lVar6 + -0x784) = *(uint *)(lVar6 + -0x684) ^ DAT_182671d98 ^ uVar11;
  uVar16 = DAT_182671e0c;
  uVar8 = DAT_182671c80;
  uVar34 = DAT_182671c48;
  uVar28 = (ulonglong)DAT_182671f10;
  *(ulonglong *)(lVar6 + -0x628) = *(ulonglong *)(lVar6 + -0x510) ^ *(ulonglong *)(lVar6 + -0x30);
  *(uint *)(lVar6 + -0x58c) =
       *(uint *)(lVar6 - (uVar18 ^ 0x3c10e84)) ^ DAT_182671f7c ^ DAT_182671e94;
  uVar20 = (ulonglong)DAT_182671c5c;
  *(byte *)(lVar6 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0x10040bc1)) ^ (ulonglong)DAT_182671df0
                ) ^ (byte)uVar16;
  uVar17 = DAT_182671cb8;
  uVar13 = DAT_182671c88;
  *(uint *)(lVar6 - ((ulonglong)uVar34 ^ 0x71539ac6)) =
       *(uint *)(lVar6 - (uVar20 ^ 0x10084696)) ^ DAT_182671e80 ^ uVar11;
  bVar15 = (byte)DAT_182671e2c;
  pbVar24 = (byte *)((CONCAT44(uVar30,uVar10) ^ 0x1100403c508b0) * 0x20 +
                     (CONCAT44(uVar12,uVar10) ^ 0x1004000103c508a2) + *(longlong *)(lVar6 + -0x9a8))
  ;
  *(ulonglong *)(lVar6 + -0x170) = (ulonglong)pbVar24 ^ uVar28;
  bVar14 = *pbVar24 ^ bVar15 ^ (byte)uVar16;
  *(byte *)(lVar6 + -0x1c3) = bVar14;
  *(uint *)(lVar6 - ((ulonglong)uVar12 ^ 0x10040ae5)) = (bVar15 ^ bVar14) ^ uVar17;
  puVar3 = (uint *)(lVar6 + -0x1c8);
  *(uint *)(lVar6 - ((ulonglong)uVar8 ^ 0x1000dcc)) =
       (*puVar3 ^ DAT_182671e80) + (uVar13 ^ 0x5ba4dec4) ^ DAT_182671d88;
  uVar35 = DAT_182671f14;
  uVar11 = DAT_182671c7c;
  uVar34 = DAT_182671c64;
  uVar29 = (ulonglong)DAT_182671c64;
  uVar40 = (ulonglong)DAT_182671c7c;
  uVar16 = (uVar17 ^ *(uint *)(lVar6 + -0xae4)) << 0x11 ^ DAT_182671ef0;
  uVar30 = *puVar1 ^ DAT_182671d88;
  *(uint *)(lVar6 + -0x4ac) = uVar16;
  *(uint *)(lVar6 - (uVar29 ^ 0xd55f384f)) = uVar30 - (uVar16 ^ DAT_182671ef0) ^ DAT_182671dfc;
  uVar16 = DAT_182671da4;
  uVar30 = (*(uint *)(lVar6 + -0x58c) ^ DAT_182671f7c) * (*puVar19 ^ DAT_182671dfc);
  *(uint *)(lVar6 + -0x54) = (uVar17 ^ *(uint *)(lVar6 + -0xae4)) * 0x12 ^ uVar35;
  *(uint *)(lVar6 + -0x6c0) = uVar30 ^ uVar16;
  uVar17 = DAT_182671ef8;
  lVar6 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c4c;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0xc7e6cbb6)) =
       (*(uint *)(DAT_182671c40 - (uVar40 ^ 0xc6a6c89e)) ^ uVar35) + uVar30 ^ DAT_182671ef8;
  *(uint *)(lVar6 - (uVar18 ^ 0x3c10824)) =
       (*(uint *)(lVar6 - (uVar20 ^ 0xcf5cba8a)) ^ uVar17) << (((byte)uVar12 ^ 0xc) & 0x1f) ^
       DAT_182671cfc;
  uVar20 = *(ulonglong *)(lVar6 + -0x170);
  *puVar39 = (*(uint *)(lVar6 + -0x76c) ^ uVar17) >> ((byte)uVar34 & 0x1f) ^ DAT_182671d80;
  uVar34 = DAT_182671e0c;
  *(byte *)(lVar6 + -0x1c3) = *(byte *)(uVar28 ^ uVar20) ^ (byte)DAT_182671e0c;
  uVar17 = DAT_182671c54;
  uVar28 = (ulonglong)DAT_182671f5c;
  *puVar2 = (*(uint *)(lVar6 - (uVar26 ^ 0xffdbf6b3)) ^ DAT_182671d80 |
            *(uint *)(lVar6 + -0x94) ^ DAT_182671cfc) ^ DAT_182671f54;
  uVar30 = DAT_182671c90;
  uVar38 = (ulonglong)DAT_182671c90;
  uVar20 = (ulonglong)DAT_182671c74;
  *(uint *)(lVar6 + -0x684) =
       (*(uint *)(lVar6 - ((ulonglong)DAT_182671c94 ^ 0x80a201c4)) ^ DAT_182671f7c) +
       (*(uint *)(lVar6 - ((ulonglong)uVar8 ^ 0x10001c4)) ^ DAT_182671dd4) ^ DAT_182671d78;
  *(ulonglong *)(lVar6 - (uVar20 ^ 0x9b0e7cdb)) = (uVar38 ^ 0xa3f95dc4) >> 2;
  *(uint *)(lVar6 - ((ulonglong)uVar11 ^ 0xc6a6cefe)) =
       *(uint *)(lVar6 + -0x684) ^ DAT_182671d78 ^ DAT_182671d54;
  uVar23 = DAT_182671e9c;
  uVar16 = *puVar2 ^ DAT_182671f3c ^ DAT_182671f54;
  *puVar3 = *(uint *)(lVar6 + -0x634) ^ DAT_182671e9c ^ DAT_182671d54;
  uVar20 = (ulonglong)DAT_182671c68;
  *(uint *)(lVar6 + -0x784) = uVar16;
  uVar8 = DAT_182671c6c;
  uVar16 = uVar16 ^ DAT_182671f3c;
  *(longlong *)(lVar6 + -0x7e8) =
       *(longlong *)(lVar6 - (uVar20 ^ 0xeff7b535)) - *(longlong *)(lVar6 + -0x628);
  uVar9 = DAT_182671c58;
  *puVar1 = uVar16 ^ uVar34;
  bVar15 = (byte)DAT_182671e50;
  lVar6 = DAT_182671c40;
  pbVar27 = (byte *)(*(longlong *)(DAT_182671c40 - (uVar18 ^ 0x3c10118)) +
                     (CONCAT44(uVar30,uVar9) ^ 0x14004101a988087) +
                    (CONCAT44(uVar8,uVar17) ^ 0xef98fff581e28458) * 0x20);
  pbVar24 = (byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c70 ^ 0x4804a343));
  *(ulonglong *)(DAT_182671c40 + -0x5a0) = (ulonglong)pbVar27 ^ uVar28;
  uVar34 = DAT_182671e0c;
  *pbVar24 = *pbVar27 ^ bVar15 ^ (byte)DAT_182671e0c;
  *(longlong *)(lVar6 + -0x760) = *(longlong *)(lVar6 + -0xbd8) - *(longlong *)(lVar6 + -0x5e8);
  uVar36 = DAT_182671da8;
  *(uint *)(DAT_182671c40 - (uVar40 ^ 0xc6a6cc66)) =
       (bVar15 ^ *(byte *)(lVar6 + -0x1c3)) ^ DAT_182671da8;
  lVar6 = DAT_182671c40;
  uVar32 = (*puVar1 ^ uVar34) + (uVar13 ^ 0x5ba4dec4) ^ DAT_182671de4;
  *puVar19 = uVar32;
  uVar16 = DAT_182671c68;
  uVar32 = uVar32 ^ DAT_182671de4;
  uVar20 = (ulonglong)DAT_182671c68;
  uVar34 = (*(uint *)(lVar6 + -0x4ac) ^ uVar36) << 0x11 ^ DAT_182671ea4;
  *(uint *)(lVar6 + -0xae4) = uVar34;
  *(uint *)(lVar6 + -0x6c0) = uVar32 - (uVar34 ^ DAT_182671ea4) ^ DAT_182671f00;
  uVar34 = DAT_182671c50;
  uVar32 = (*(uint *)(lVar6 - (uVar20 ^ 0xeff7b82d)) ^ DAT_182671f00) * (*puVar3 ^ uVar23) ^
           DAT_182671df4;
  *(uint *)(lVar6 + -0x54) = uVar32;
  lVar7 = DAT_182671c40;
  uVar32 = uVar32 ^ DAT_182671df4;
  uVar20 = (ulonglong)DAT_182671c70;
  uVar34 = (*(uint *)(lVar6 + -0x4ac) ^ uVar36) * (uVar34 ^ 0x94ab9abb) ^ DAT_182671d64;
  *(uint *)(lVar6 + -0x76c) = uVar34;
  uVar36 = DAT_182671d44;
  uVar32 = uVar32 + (uVar34 ^ DAT_182671d64);
  uVar28 = CONCAT44(uVar10,DAT_182671c5c);
  *(uint *)(lVar7 + -0x94) = uVar32 ^ DAT_182671d44;
  uVar34 = DAT_182671d0c;
  *puVar39 = uVar32 * 0x2000 ^ DAT_182671d0c;
  bVar15 = (byte)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x4804a100)) =
       (uVar28 ^ 0x88bfd4f3503426b1) + *(longlong *)(DAT_182671c40 + -0xa50);
  lVar6 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0x71539e82)) =
       (*(uint *)(DAT_182671c40 + -0x94) ^ uVar36) >> ((bVar15 ^ 0xf5) & 0x1f) ^ uVar35;
  *(uint *)(lVar6 + -0x684) =
       (*(uint *)(lVar6 + -0x58c) ^ uVar35 | uVar34 ^ *puVar39) ^ DAT_182671e84;
  uVar28 = CONCAT44(uVar13,DAT_182671c94);
  uVar20 = *(ulonglong *)(lVar6 + -0x8f0);
  *puVar2 = (*puVar3 ^ uVar23) + (DAT_182671dd4 ^ *(uint *)(lVar6 + -0x5d4)) ^ DAT_182671f34;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c80 ^ 0x1000828)) =
       uVar28 ^ uVar20 ^ 0x66ed050ad6a42cae;
  *(uint *)(lVar6 + -0x634) = *puVar2 ^ DAT_182671f38 ^ DAT_182671f34;
  uVar36 = DAT_182671d24;
  uVar34 = DAT_182671c48;
  *(ulonglong *)(lVar6 + -0x3d8) =
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c6c ^ 0xef98f81d)) >>
       ((byte)*(undefined8 *)(lVar6 - ((ulonglong)uVar17 ^ 0x81e286e8)) & 0x3f);
  *(uint *)(lVar6 + -0x784) = DAT_182671eb4 ^ DAT_182671e84 ^ *(uint *)(lVar6 + -0x684);
  lVar7 = DAT_182671c40;
  *puVar33 = (DAT_182671c5c ^ 0x466f88c5) + 0x630a8bc9;
  *puVar19 = uVar36 ^ DAT_182671f38 ^ *(uint *)(lVar6 + -0x634);
  bVar15 = (byte)DAT_182671d04;
  uVar23 = *(uint *)(lVar6 - (uVar26 ^ 0xffdbf87b)) ^ DAT_182671d10 ^ DAT_182671eb4;
  *(undefined8 *)(lVar6 + -0x408) = 0x2251f6b800000000;
  *(uint *)(lVar6 + -0xae4) = uVar23;
  uVar23 = DAT_182671f9c;
  uVar28 = (ulonglong)DAT_182671e48;
  uVar20 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar7 - (uVar26 ^ 0xffdbf3df)) =
       (CONCAT44(uVar34,uVar13) ^ 0x71539b0ec7e6ccd2) +
       (CONCAT44(uVar8,uVar12) ^ 0xef98fff510040001) * 0x20 + *(longlong *)(lVar7 + -0x9a8) ^ uVar28
  ;
  *(byte *)(lVar7 - (uVar20 ^ 0x10005d3)) =
       *(byte *)(*(ulonglong *)(lVar7 + -0xc20) ^ uVar28) ^ bVar15 ^ (byte)DAT_182671e0c;
  uVar35 = (uint)(*(byte *)(lVar7 - ((ulonglong)uVar17 ^ 0x81e2859b)) ^ bVar15);
  *(uint *)(lVar7 + -0x6c0) = uVar35 ^ uVar23;
  uVar8 = DAT_182671ca4;
  uVar34 = DAT_182671c94;
  lVar6 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c80;
  *(uint *)(DAT_182671c40 + -0x4ac) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c94 ^ 0x80a20eac)) ^ DAT_182671d10) +
       (DAT_182671c8c ^ 0x9f831aae) ^ DAT_182671f7c;
  uVar13 = DAT_182671d58;
  uVar41 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar6 - (uVar20 ^ 0x1000444)) = uVar35 << (((byte)uVar11 ^ 0xdb) & 0x1f) ^ DAT_182671de0
  ;
  lVar6 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - (uVar41 ^ 0x4804a5ec)) =
       (*(uint *)(DAT_182671c40 + -0x4ac) ^ DAT_182671f7c) -
       (*(uint *)(DAT_182671c40 + -0x54) ^ DAT_182671de0) ^ uVar8;
  uVar20 = (ulonglong)DAT_182671c4c;
  *(longlong *)(lVar6 + -0x7c0) = -0x2cbf9807df73a7c2 << (((byte)uVar30 ^ 0x25) & 0x3f);
  *(uint *)(lVar6 - (uVar20 ^ 0xcf5cbd72)) =
       (uVar8 ^ *(uint *)(lVar6 + -0x76c)) * (*puVar19 ^ uVar36) ^ DAT_182671d08;
  uVar8 = DAT_182671f60;
  *(uint *)(lVar6 - (uVar38 ^ 0x1400d5c)) =
       (uVar23 ^ *(uint *)(lVar6 + -0x6c0)) * (DAT_182671c5c ^ 0x1008411a) ^ DAT_182671f60;
  uVar30 = (uVar8 ^ *puVar39) + (*(uint *)(lVar6 + -0x94) ^ DAT_182671d08);
  *(uint *)(lVar6 + -0x58c) = uVar30 ^ DAT_182671d88;
  *puVar3 = uVar30 << (bVar22 & 0x1f) ^ uVar13;
  uVar8 = DAT_182671c4c;
  lVar6 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c4c;
  uVar20 = *(ulonglong *)(DAT_182671c40 + -0xbd8);
  puVar21 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0x7153902e));
  uVar26 = (ulonglong)DAT_182671c5c;
  *puVar2 = uVar30 >> (((byte)uVar17 ^ 0x4b) & 0x1f) ^ DAT_182671cc0;
  *puVar21 = CONCAT44(uVar34,uVar9) ^ 0xe74c783bb8b12352 | uVar20;
  uVar30 = DAT_182671d7c;
  uVar28 = (ulonglong)DAT_182671c6c;
  *(uint *)(lVar6 - (uVar28 ^ 0xef98f971)) =
       (uVar13 ^ *puVar3 | *puVar2 ^ DAT_182671cc0) ^ DAT_182671dd8;
  uVar13 = DAT_182671dd4;
  lVar7 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671c74;
  uVar34 = (*(uint *)(lVar6 - ((ulonglong)uVar8 ^ 0xcf5cbbfa)) ^ uVar36) +
           (*(uint *)(lVar6 - (uVar38 ^ 0x9b0e7487)) ^ DAT_182671dd4) ^ DAT_182671f80;
  *puVar1 = uVar34;
  uVar36 = uVar34 ^ DAT_182671f50 ^ DAT_182671f80;
  *(uint *)(lVar7 + -0x634) = uVar36;
  lVar6 = DAT_182671c40;
  uVar34 = uVar30 ^ DAT_182671f50;
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       CONCAT44(uVar25,uVar16) ^ *(ulonglong *)(DAT_182671c40 + -0x408) ^ 0x103da80ecef5b5ad;
  *(uint *)(lVar6 + -0x784) = DAT_182671ebc ^ DAT_182671dd8 ^ *(uint *)(lVar6 + -0x684);
  *(uint *)(lVar6 - (uVar26 ^ 0x10084bf6)) = uVar34 ^ uVar36;
  *(ulonglong *)(lVar6 + -0xa60) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0x81e28cd0)) >> (((byte)uVar12 ^ 10) & 0x3f);
  uVar34 = DAT_182671c48;
  lVar7 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c48;
  *(uint *)(lVar6 + -0x4ac) = DAT_182671ce0 ^ DAT_182671ebc ^ *(uint *)(lVar6 + -0x784);
  pbVar24 = (byte *)((CONCAT44(uVar11,uVar8) ^ 0xc6a6c8cacf5cbde6) * 0x20 +
                     (CONCAT44(uVar12,uVar34) ^ 0x1004000171539b1d) + *(longlong *)(lVar7 + -0x9a8))
  ;
  *(ulonglong *)(lVar7 + -0xbc0) = (ulonglong)pbVar24 ^ (ulonglong)uVar13;
  bVar22 = (byte)DAT_182671d90;
  *(ulonglong *)(lVar7 + -0x4b8) =
       (CONCAT44(uVar10,uVar25) ^ 0x850ad8f45d782092) >>
       ((byte)*(undefined8 *)(lVar7 + -0x960) & 0x3f);
  uVar17 = DAT_182671e64;
  bVar15 = *pbVar24 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar7 + -0x1c3) = bVar15 ^ bVar22;
  *(uint *)(lVar7 - (uVar41 ^ 0x4804a2d4)) = bVar15 ^ uVar17;
  *(longlong *)(lVar7 - (uVar18 ^ 0x3c109a0)) =
       *(longlong *)(lVar7 - ((ulonglong)uVar31 ^ 0x94ab9386)) - *(longlong *)(lVar7 + -0xa60);
  bVar22 = (byte)DAT_182671c68;
  *(uint *)(lVar7 - (uVar29 ^ 0xd55f393f)) =
       (*(uint *)(lVar7 + -0x4ac) ^ DAT_182671ce0) + (DAT_182671c6c ^ 0x73daedeb) ^ DAT_182671f10;
  *(uint *)(lVar7 - (uVar20 ^ 0x71539dce)) =
       (*(uint *)(lVar7 + -0x54) ^ uVar17) << ((bVar22 ^ 0xfc) & 0x1f) ^ DAT_182671d54;
  uVar25 = (*(uint *)(lVar7 - (uVar42 ^ 0x1004076d)) ^ DAT_182671f10) -
           (*(uint *)(lVar7 - (uVar43 ^ 0xcf5cbb26)) ^ DAT_182671d54);
  uVar34 = *(uint *)(lVar7 + -0x54);
  *(uint *)(lVar7 + -0x94) = uVar25 ^ DAT_182671ee0;
  uVar16 = DAT_182671f30;
  *puVar39 = uVar25 * (uVar30 ^ *(uint *)(lVar7 + -0xae4)) ^ DAT_182671f30;
  *(uint *)(lVar7 - (uVar28 ^ 0xef98fa79)) = (uVar34 ^ uVar17) * (uVar8 ^ 0xcf5cbdf5) ^ uVar23;
  uVar34 = DAT_182671c90;
  *(ulonglong *)(lVar7 - (uVar18 ^ 0x3c102b8)) =
       (CONCAT44(uVar10,uVar11) ^ 0x3f92efc70dbc5e9b) <<
       ((byte)*(undefined8 *)(lVar7 - (uVar40 ^ 0xc6a6cae2)) & 0x3f);
  uVar8 = DAT_182671ef0;
  uVar17 = (*(uint *)(lVar7 - (uVar38 ^ 0x9b0e74df)) ^ uVar23) + (uVar16 ^ *puVar39);
  *puVar3 = uVar17 ^ DAT_182671ef0;
  uVar17 = uVar17 << (((byte)uVar34 ^ 0x1d) & 0x1f) ^ DAT_182671db0;
  uVar34 = *puVar3;
  *puVar2 = uVar17;
  uVar17 = uVar17 ^ DAT_182671db0;
  uVar34 = (uVar34 ^ uVar8) >> 0x13;
  *puVar19 = uVar34 ^ DAT_182671db4;
  *puVar1 = (uVar34 | uVar17) ^ DAT_182671e58;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar5 ^ uVar37) * 4) = uVar4 ^ uVar31;
  return;
}



############ FUN_ 180f727a0 size=4002 ############

void FUN_180f727a0(void)

{
  uint *puVar1;
  byte bVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  ulonglong uVar6;
  ulonglong uVar7;
  byte bVar8;
  uint uVar9;
  longlong *plVar10;
  ulonglong uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  uint *puVar16;
  longlong lVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  longlong lVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint *puVar35;
  uint uVar36;
  ulonglong uVar24;
  
  uVar21 = DAT_182671f24;
  uVar26 = DAT_182671e38;
  uVar12 = DAT_182671db4;
  uVar29 = DAT_182671c6c;
  uVar13 = DAT_182671c60;
  uVar27 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c48;
  uVar22 = DAT_182671c48 & DAT_182671c78;
  uVar24 = (ulonglong)uVar22;
  uVar14 = (ulonglong)DAT_182671c60;
  uVar18 = (ulonglong)DAT_182671c6c;
  uVar33 = DAT_182671c60 | DAT_182671c6c;
  uVar36 = ~DAT_182671c54;
  uVar25 = *(uint *)(&DAT_182613218 + DAT_182671ff8) ^ DAT_182671c78;
  uVar5 = *(uint *)(&DAT_182613220 + DAT_182671ff8) ^ DAT_182671c48;
  uVar20 = (*(uint *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0xb5d30d66)) ^ DAT_182671e58 |
           *(uint *)(DAT_182671c40 + -0x784) ^ DAT_182671edc) ^ DAT_182671e3c;
  DAT_182671c50 = uVar33;
  DAT_182671c84 = uVar36;
  DAT_182671c94 = uVar22;
  *(uint *)(DAT_182671c40 + -0x54) = uVar20;
  uVar9 = DAT_182671f34 ^ *(uint *)(lVar3 + -0x94);
  uVar32 = (*(uint *)(lVar3 - (uVar24 ^ 0xb5d3049a)) ^ DAT_182671cfc) &
           (DAT_182671e18 ^ *(uint *)(lVar3 + -0x76c));
  *(uint *)(lVar3 + -0x61c) = uVar32 ^ uVar26;
  uVar9 = uVar9 & (uVar29 ^ 0x7e14d44d) ^ DAT_182671da4;
  puVar1 = (uint *)(lVar3 + -0x5d4);
  *(uint *)(lVar3 + -0x644) = uVar9;
  uVar32 = (uVar32 | uVar9 ^ DAT_182671da4) ^ DAT_182671ef0;
  *puVar1 = uVar32;
  *(ulonglong *)(lVar3 + -0xd88) =
       CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0xda8) ^ 0xb24911468aabe640;
  uVar4 = DAT_182671d00;
  lVar17 = DAT_182671c40;
  uVar15 = (ulonglong)uVar33;
  lVar28 = *(longlong *)(lVar3 + -0xcf0) + (CONCAT44(uVar13,uVar33) ^ 0x9235ee16fe35fe5f) * 0x10;
  uVar6 = (ulonglong)uVar36;
  *(longlong *)(DAT_182671c40 + -0xd00) = lVar28;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       *(ulonglong *)(*(ulonglong *)(lVar17 - (uVar6 ^ 0xb5f70593)) ^ CONCAT44(uVar4,uVar4)) ^
       CONCAT44(uVar21,uVar21);
  uVar9 = DAT_182671e08;
  uVar12 = DAT_182671c54;
  uVar30 = (ulonglong)DAT_182671c54;
  puVar16 = (uint *)(lVar3 - (uVar18 ^ 0x7e14d28c));
  uVar21 = uVar20 ^ DAT_182671df8 ^ DAT_182671e3c;
  uVar18 = (ulonglong)DAT_182671f18;
  *(uint *)(lVar3 + -0x670) = uVar32 ^ DAT_182671f78 ^ DAT_182671ef0;
  *(longlong *)(lVar3 + -0xcf0) = lVar28;
  plVar10 = (longlong *)(lVar3 - (uVar30 ^ 0x4a08fa14));
  *puVar16 = uVar21;
  *plVar10 = *(longlong *)(lVar3 + -0xcf0);
  uVar21 = DAT_182671dfc;
  *(uint *)(lVar3 + -0x444) = *(uint *)(lVar3 + -0x670) ^ DAT_182671d50 ^ DAT_182671f78;
  *(uint *)(lVar3 + -0x94c) = (*(uint *)(lVar3 + -0x61c) ^ uVar26) + (uVar33 ^ 0x8429a279);
  *(uint *)(lVar3 + -0x27c) = *puVar16 ^ uVar9 ^ DAT_182671df8;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xfddbf29a)) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0xb7d305fe)) +
       (CONCAT44(uVar12,uVar22) ^ 0x4a08f714b5d308ea) * 0x10 ^ uVar18;
  *(uint *)(lVar3 - (uVar14 ^ 0x9235e7ca)) =
       *(uint *)(*(ulonglong *)(lVar3 + -0xd70) ^ uVar18) ^ uVar21 ^ DAT_182671f14;
  uVar23 = DAT_182671f9c;
  uVar12 = (*(uint *)(lVar3 - (uVar24 ^ 0xb5d30ede)) ^ DAT_182671d60) -
           (*(uint *)(lVar3 + -0x9dc) ^ uVar21) ^ DAT_182671f80;
  bVar8 = (byte)DAT_182671c60 ^ 9;
  *(uint *)(lVar3 + -0xae4) = uVar12;
  lVar17 = DAT_182671c40;
  uVar12 = (uVar12 ^ DAT_182671f80 | *(uint *)(lVar3 + -0x9dc) ^ uVar21) ^ DAT_182671d3c;
  *(uint *)(lVar3 + -0x784) = uVar12;
  uVar20 = DAT_182671f5c;
  uVar12 = (int)(uVar12 ^ DAT_182671d3c) >> (bVar8 & 0x1f) ^ DAT_182671f5c;
  *(uint *)(lVar17 + -0x58c) = uVar12;
  *(uint *)(lVar17 + -0x76c) = uVar12 ^ DAT_182671d94 ^ uVar20 ^ uVar36 ^ 0x4a08f714;
  uVar26 = DAT_182671da0;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa70) =
       (CONCAT44(uVar22,uVar29) ^ 0xb1e6206957980472) >>
       ((byte)*(undefined8 *)(DAT_182671c40 + -0x110) & 0x3f);
  uVar4 = DAT_182671ef8;
  uVar12 = DAT_182671c78;
  uVar18 = (ulonglong)DAT_182671c78;
  uVar32 = (*(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0xfddbfd96)) ^ uVar9) -
           (*(uint *)(lVar3 + -0x9dc) ^ uVar21) ^ DAT_182671d4c;
  *(uint *)(lVar3 + -0xc70) = uVar32;
  uVar32 = (int)(uVar32 ^ DAT_182671d4c) >> (((byte)uVar33 ^ 0x41) & 0x1f);
  *(uint *)(lVar3 + -0x94) = uVar32 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xa70) =
       CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar3 + -0xd88) ^ *(ulonglong *)(lVar3 + -0xbd8);
  *(uint *)(DAT_182671c40 - (uVar30 ^ 0x4a08f150)) =
       (*(uint *)(lVar3 - (uVar18 ^ 0xb7d30f92)) ^ DAT_182671d94) & uVar32 ^ uVar26;
  uVar32 = DAT_182671f7c;
  uVar23 = *(uint *)(DAT_182671c40 - (uVar15 ^ 0xfe35feca)) ^ ~DAT_182671ca0 ^ uVar23;
  *puVar1 = uVar23;
  lVar3 = DAT_182671c40;
  puVar16 = (uint *)(DAT_182671c40 + -0x27c);
  uVar23 = uVar23 ^ DAT_182671ca0 | *(uint *)(DAT_182671c40 + -0x58c) ^ uVar20;
  *(uint *)(DAT_182671c40 + -0x54) = uVar23 ^ uVar32;
  uVar20 = DAT_182671ec0;
  *(uint *)(lVar3 - (uVar15 ^ 0xfe35f842)) = (*puVar16 ^ uVar9) & uVar23 ^ DAT_182671db4;
  *(uint *)(lVar3 - (uVar14 ^ 0x9235e75a)) =
       (*(uint *)(lVar3 - (uVar15 ^ 0xfe35f81a)) ^ uVar26) & (*(uint *)(lVar3 + -0x9dc) ^ uVar21) ^
       DAT_182671cb0;
  puVar16 = (uint *)(lVar3 - ((ulonglong)uVar29 ^ 0x7e14d23c));
  *puVar16 = (*(uint *)(lVar3 + -0x61c) ^ DAT_182671db4 | *(uint *)(lVar3 + -0x94c) ^ DAT_182671cb0)
             ^ DAT_182671dcc;
  *(uint *)(lVar3 - (uVar30 ^ 0x4a08f1d4)) =
       (*(uint *)(lVar3 + -0x444) ^ DAT_182671d50) & (*(uint *)(lVar3 + -0x54) ^ uVar32) ^ uVar20;
  uVar32 = (*(uint *)(lVar3 - (uVar6 ^ 0xb5f70eaf)) ^ uVar26) & (DAT_182671c94 ^ 0xb5d308e8) ^
           DAT_182671dc0;
  *(uint *)(lVar3 + -0xae4) = uVar32;
  uVar9 = DAT_182671dd8;
  uVar21 = DAT_182671c58;
  uVar20 = (uVar32 ^ DAT_182671dc0 | uVar20 ^ *(uint *)(lVar3 + -0x6c0)) ^ DAT_182671f94;
  *(uint *)(lVar3 + -0x784) = uVar20;
  uVar32 = DAT_182671f90;
  uVar20 = uVar20 ^ DAT_182671e90 ^ DAT_182671f94;
  *(ulonglong *)(lVar3 + -0xbd8) = CONCAT44(uVar29,uVar36) ^ 0x43b667006a73d8cd;
  lVar17 = (CONCAT44(uVar12,uVar12) ^ 0xb7d308feb7d308ff) * 0x10 + *(longlong *)(lVar3 + -0xd00);
  *(longlong *)(lVar3 + -0xcf0) = lVar17;
  uVar18 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x4a08fccc));
  *(longlong *)(lVar3 + -0xd00) = lVar17;
  *(ulonglong *)(lVar3 + -0xa70) = uVar18 ^ CONCAT44(uVar27,uVar13) ^ 0x8a4ac0bc75670b7f;
  *(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0xfddbf39a)) = uVar20;
  uVar12 = DAT_182671c80;
  uVar31 = (ulonglong)DAT_182671c80;
  uVar19 = uVar21 * DAT_182671c80;
  DAT_182671c64 = uVar19;
  *(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x4635cdd5)) =
       *(uint *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0x462adfa9)) ^ DAT_182671f88 ^ DAT_182671dcc;
  uVar18 = *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0xf4c9aad1));
  *(uint *)(lVar3 + -0x94) = uVar9 ^ DAT_182671e90 ^ *(uint *)(lVar3 + -0xc70);
  *(uint *)(lVar3 + -0x58c) = uVar32 ^ DAT_182671f88 ^ *(uint *)(lVar3 + -0x76c);
  uVar7 = (ulonglong)DAT_182671e68;
  uVar11 = (ulonglong)DAT_182671e68;
  *(ulonglong *)(lVar3 + -0xcf0) = uVar18;
  uVar20 = DAT_182671de8;
  uVar11 = uVar11 ^ uVar18;
  *(ulonglong *)(lVar3 + -0xa30) = uVar11;
  uVar13 = DAT_182671d18;
  uVar36 = *(uint *)(uVar11 ^ uVar7) ^ DAT_182671d18 ^ DAT_182671f14;
  puVar35 = (uint *)(lVar3 - ((ulonglong)uVar19 ^ 0xf4c9a5ad));
  uVar23 = *(uint *)(lVar3 + -0x634) ^ DAT_182671d60;
  *puVar1 = uVar36;
  *puVar35 = uVar23 - (uVar36 ^ uVar13) ^ DAT_182671ed4;
  uVar23 = *(uint *)(lVar3 + -0x27c) ^ DAT_182671ed4 | *puVar1 ^ uVar13;
  *(uint *)(lVar3 + -0x9dc) = uVar23 ^ uVar26;
  *(uint *)(lVar3 + -0x61c) = (int)uVar23 >> (((byte)uVar12 ^ 0xc6) & 0x1f) ^ uVar20;
  *(uint *)(lVar3 - ((ulonglong)uVar19 ^ 0xf4c9ae9d)) =
       *(uint *)(lVar3 - ((ulonglong)uVar19 ^ 0xf4c9a1cd)) ^ DAT_182671eb4 ^ uVar20 ^ uVar21 ^
       0xb9ca3546;
  uVar12 = *puVar1;
  *(undefined1 *)(lVar3 + -0xcd2) = **(undefined1 **)(lVar3 + -0x370);
  *(uint *)(lVar3 + -0x444) =
       (*(uint *)(lVar3 + -0x58c) ^ uVar32) - (uVar12 ^ uVar13) ^ DAT_182671e0c;
  uVar26 = DAT_182671ea8;
  *(uint *)(DAT_182671c40 + -0x54) =
       (int)(*(uint *)(lVar3 - (uVar31 ^ 0x462add9d)) ^ DAT_182671e0c) >>
       (((byte)uVar19 ^ 0xce) & 0x1f) ^ DAT_182671ea8;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar19 ^ 0xf4c9a195)) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)uVar19 ^ 0xf4c9a785)) ^ uVar26) &
       (*(uint *)(DAT_182671c40 + -0x94c) ^ DAT_182671eb4) ^ DAT_182671e58;
  uVar12 = DAT_182671e18;
  *(uint *)(lVar3 + -0x6c0) =
       *(uint *)(lVar3 + -0x54) ^ uVar26 ^ uVar21 ^ DAT_182671e18 ^ 0xb9ca3546;
  *(undefined8 *)(lVar3 - (uVar31 ^ 0x462ad3a9)) = 0x3443fdfae3017965;
  uVar26 = *(uint *)(lVar3 + -0x644) ^ DAT_182671e58;
  uVar12 = *(uint *)(lVar3 + -0x61c) ^ uVar20 | uVar12 ^ *(uint *)(lVar3 + -0x6c0);
  *(uint *)(lVar3 + -0xae4) = uVar12 ^ DAT_182671f54;
  uVar23 = (uVar9 ^ *(uint *)(lVar3 + -0x94)) & uVar12;
  uVar9 = uVar12 & (*(uint *)(lVar3 + -0x58c) ^ uVar32) ^ DAT_182671f6c;
  *(uint *)(lVar3 + -0x784) = uVar9;
  uVar9 = uVar9 ^ DAT_182671f6c;
  uVar12 = uVar26 & (*puVar1 ^ uVar13) ^ DAT_182671fa4;
  *(uint *)(lVar3 + -0x670) = uVar12;
  uVar13 = DAT_182671e6c;
  uVar12 = (uVar12 ^ DAT_182671fa4 | uVar9) ^ DAT_182671d80;
  *(undefined1 *)(lVar3 + -0xcd2) = **(undefined1 **)(lVar3 + -0x758);
  *(uint *)(lVar3 + -0xc70) = uVar12;
  uVar18 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar26 = *(uint *)(lVar3 + -0x644) ^ DAT_182671e58;
  uVar9 = DAT_182671c78 ^ 0xb7d308fd;
  *(uint *)(lVar3 + -0x76c) = uVar23 ^ DAT_182671cf8;
  *(ulonglong *)(lVar3 + -0xbd8) =
       (uVar18 ^ *(ulonglong *)(lVar3 + -0x228)) >> (((byte)uVar22 ^ 0xe9) & 0x3f);
  uVar12 = DAT_182671c4c;
  *(uint *)(lVar3 + -0x27c) = uVar26 & uVar9 ^ uVar13;
  uVar20 = DAT_182671f4c;
  uVar9 = DAT_182671ea0;
  *(uint *)(lVar3 - (uVar31 ^ 0x462ad005)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x4635c8c5)) ^ uVar13 | uVar23) ^ uVar32;
  uVar26 = DAT_182671d64 ^ DAT_182671d80;
  lVar17 = (CONCAT44(uVar33,uVar27) ^ 0xfe35fe5efddbffeb) * 0x10 + *(longlong *)(lVar3 + -0xcf0);
  *(uint *)(lVar3 + -0x444) = DAT_182671d1c ^ *(uint *)(lVar3 + -0x9dc) ^ uVar32;
  *(longlong *)(lVar3 + -0xd00) = lVar17;
  *(longlong *)(lVar3 + -0xcf0) = lVar17;
  *(uint *)(lVar3 - ((ulonglong)uVar12 ^ 0x9d5c1256)) = uVar26 ^ *(uint *)(lVar3 + -0xc70);
  *(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x4635caed)) =
       (DAT_182671c60 ^ 0xcecc8ff2) >> (((byte)*puVar35 ^ (byte)uVar13) & 0x1f);
  uVar13 = uVar9 ^ DAT_182671d64;
  *(undefined8 *)(lVar3 + -0xd00) = *(undefined8 *)(lVar3 + -0xcf0);
  *(uint *)(lVar3 + -0x61c) = *(uint *)(lVar3 + -0x444) ^ DAT_182671f08 ^ DAT_182671d1c;
  *(uint *)(lVar3 - (uVar31 ^ 0x462adf19)) = uVar13 ^ *(uint *)(lVar3 + -0x94c);
  puVar35 = (uint *)((CONCAT44(uVar29,uVar22) ^ 0x7e14d44cb5d308ea) * 0x10 + *plVar10);
  *(ulonglong *)(lVar3 + -0xa30) = (ulonglong)puVar35 ^ (ulonglong)DAT_182671d0c;
  uVar13 = DAT_182671c8c;
  uVar23 = *puVar35 ^ uVar20 ^ DAT_182671f14;
  uVar32 = (*(uint *)(lVar3 + -0x634) ^ DAT_182671d60) - (uVar23 ^ uVar20) ^ DAT_182671df4;
  uVar7 = (ulonglong)DAT_182671c8c;
  *puVar1 = uVar32;
  uVar26 = DAT_182671e24;
  uVar29 = DAT_182671d74;
  uVar18 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar3 + -0x784) = (uVar20 ^ uVar23 | uVar32 ^ DAT_182671df4) ^ DAT_182671fa0;
  *(uint *)(lVar3 + -0x58c) = uVar23;
  bVar2 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x1d1bbcb1)) =
       (CONCAT44(uVar13,uVar27) ^ 0x834ee16900cf54db) << (((byte)uVar12 ^ 0xf) & 0x3f);
  uVar18 = (ulonglong)DAT_182671c78;
  *(uint *)(lVar3 + -0x670) =
       (int)(*(uint *)(lVar3 - ((ulonglong)uVar13 ^ 0xd9d941ae)) ^ DAT_182671fa0) >>
       ((bVar2 ^ 0xb) & 0x1f) ^ uVar26;
  *(uint *)(lVar3 + -0x94) = *puVar16 ^ uVar29 ^ uVar26 ^ uVar21 ^ 0xb9ca3546;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xb5d30332)) =
       *(ulonglong *)(lVar3 - (uVar18 ^ 0xb7d309ee)) >>
       ((byte)*(undefined8 *)(lVar3 + -0xda8) & 0x3f);
  *(uint *)(lVar3 - (uVar14 ^ 0x9235e4f2)) =
       (uVar9 ^ *(uint *)(lVar3 + -0x6c0)) - (uVar20 ^ *(uint *)(lVar3 + -0x58c)) ^ DAT_182671f40;
  uVar13 = DAT_182671f60;
  uVar27 = DAT_182671ec8;
  uVar12 = DAT_182671ddc;
  *(ulonglong *)(lVar3 - (uVar6 ^ 0xb5f70ac3)) =
       CONCAT44(uVar19,uVar22) ^ *(ulonglong *)(lVar3 + -0xd88) ^ 0x766f3d923a54ff40;
  uVar32 = (int)(*(uint *)(lVar3 + -0xae4) ^ DAT_182671f40) >> (bVar8 & 0x1f);
  uVar23 = uVar32 ^ uVar27;
  *(uint *)(lVar3 + -0x644) = uVar23;
  *(longlong *)(lVar3 + -0x110) = *(longlong *)(lVar3 + -0xd88) + 0x5be18c55b42b260;
  *(uint *)(lVar3 + -0x76c) = uVar32 & (uVar29 ^ *(uint *)(lVar3 + -0x94)) ^ uVar13;
  *(uint *)(lVar3 - (uVar7 ^ 0xd9d94ff6)) = ~uVar12 ^ uVar23 ^ uVar27;
  uVar18 = (ulonglong)DAT_182671c74;
  *(longlong *)(lVar3 + -0xda8) =
       *(longlong *)(lVar3 - (uVar34 ^ 0xfddbf59a)) << (((byte)DAT_182671c78 ^ 0xeb) & 0x3f);
  uVar27 = DAT_182671f24;
  uVar29 = *(uint *)(lVar3 - (uVar18 ^ 0xd9d9405a)) ^ uVar26 | uVar12 ^ *(uint *)(lVar3 + -0x9dc);
  *(uint *)(lVar3 + -0xc70) = uVar29 ^ DAT_182671f24;
  uVar12 = (uVar20 ^ *(uint *)(lVar3 + -0x58c)) & (uVar13 ^ *(uint *)(lVar3 + -0x76c)) ^
           DAT_182671e50;
  uVar27 = (*(uint *)(lVar3 - (uVar30 ^ 0x4a08fb64)) ^ uVar27) & (uVar9 ^ *(uint *)(lVar3 + -0x6c0))
           ^ DAT_182671cd0;
  *(uint *)(lVar3 + -0x27c) = uVar27;
  *(uint *)(lVar3 + -0x54) = uVar12;
  uVar12 = (*(uint *)(lVar3 + -0x61c) ^ DAT_182671f08) & uVar29 ^ DAT_182671e44;
  *(uint *)(lVar3 + -0x444) =
       (*(uint *)(lVar3 - (uVar31 ^ 0x462ad98d)) ^ DAT_182671e50 | uVar27 ^ DAT_182671cd0) ^
       DAT_182671c9c;
  *(uint *)(lVar3 - (uVar15 ^ 0xfe35f712)) = uVar12;
  *(uint *)(lVar3 + -0x634) =
       (uVar13 ^ *(uint *)(lVar3 + -0x76c)) & (DAT_182671c94 ^ 0xb5d308ee) ^ DAT_182671ebc;
  *(undefined8 *)(lVar3 - (uVar34 ^ 0xfddbf432)) = 0xa48d4b6e1b272d1e;
  *puVar1 = (*(uint *)(lVar3 - ((ulonglong)DAT_182671c7c ^ 0x278411c4)) ^ DAT_182671e44 |
            *(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x4635cc8d)) ^ DAT_182671ebc) ^ DAT_182671d98;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar5 * 4) = uVar25;
  return;
}



############ FUN_ 180fed950 size=3806 ############

void FUN_180fed950(void)

{
  uint uVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  ulonglong uVar9;
  uint *puVar10;
  uint uVar11;
  uint uVar12;
  ulonglong *puVar13;
  byte *pbVar14;
  longlong lVar15;
  ulonglong uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte bVar24;
  uint uVar25;
  ulonglong uVar26;
  uint *puVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar32;
  ulonglong uVar33;
  uint *puVar34;
  ulonglong uVar31;
  
  uVar7 = DAT_182671f24;
  uVar4 = DAT_182671c80;
  uVar8 = DAT_182671c78;
  uVar22 = DAT_182671c68;
  lVar15 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c80;
  uVar30 = DAT_182671c54 - DAT_182671c78;
  uVar31 = (ulonglong)uVar30;
  uVar11 = DAT_182671c80 << 0x10 | DAT_182671c80 >> 0x10;
  uVar1 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c54 ^ 0x4a08f704) + (longlong)DAT_182672068);
  uVar19 = *(uint *)(&DAT_182613218 + DAT_182672068) ^ DAT_182671c78;
  DAT_182671c60 = uVar30;
  DAT_182671c74 = uVar11;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x120) ^ (ulonglong)DAT_182671cf4) =
       *(byte *)(DAT_182671c40 + -0x551) ^ (byte)DAT_182671f14 ^ DAT_182671cf0;
  uVar20 = DAT_182671c5c;
  uVar16 = CONCAT44(uVar7,uVar7);
  puVar13 = (ulonglong *)
            (*(longlong *)(lVar15 + -0x310) + 0x58 +
            (CONCAT44(DAT_182671c5c,uVar11) ^ 0x462ad9d9d9d9462a) * 0x60);
  *(ulonglong *)(lVar15 + -0x2e8) = (ulonglong)puVar13 ^ CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar5 = DAT_182671da4;
  uVar21 = DAT_182671d24;
  uVar23 = (ulonglong)DAT_182671d24;
  *(undefined1 *)(lVar15 + -0x7f1) = **(undefined1 **)(lVar15 + -0x990);
  uVar26 = CONCAT44(uVar5,uVar5);
  uVar9 = *puVar13 ^ uVar26 ^ uVar16;
  *(ulonglong *)(lVar15 + -0x888) = uVar9;
  uVar26 = (uVar26 ^ uVar9) >> (((byte)uVar22 ^ 0xc1) & 0x3f) ^ CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar15 + -0xd88) = uVar26;
  uVar9 = *(ulonglong *)(lVar15 - (uVar31 ^ 0x9235e39e));
  *(byte *)(lVar15 + -0x7f1) = (byte)uVar21 ^ (byte)uVar26 ^ (byte)DAT_182671dd0;
  *(ulonglong *)(lVar15 + -0x628) = uVar9 ^ CONCAT44(uVar21,uVar21) | 0x25eafaa9b509b913;
  uVar18 = DAT_182671c88;
  lVar2 = DAT_182671c40;
  uVar9 = (ulonglong)DAT_182671f40;
  uVar33 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar15 - ((ulonglong)uVar30 ^ 0x9235e6be)) =
       *(longlong *)(lVar15 + -0x870) + 0x5bU ^ uVar9;
  uVar26 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar33 ^ 0xffdbd357)) ^ uVar9) =
       *(byte *)(lVar2 - ((ulonglong)uVar8 ^ 0xb7d30f0f)) ^ (byte)DAT_182671f14 ^
       (byte)DAT_182671dd0;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c54 ^ 0x4a08f5fc)) =
       *(longlong *)(lVar2 - ((ulonglong)uVar4 ^ 0x462adac9)) + 0x58U ^ uVar26;
  uVar5 = DAT_182671c98;
  uVar9 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xb7d30326)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x2e8) ^ uVar26) ^ uVar16 ^ uVar9;
  uVar9 = (uVar9 ^ *(ulonglong *)(lVar2 + -0xbd8)) >> (((byte)uVar4 ^ 0xf9) & 0x3f) ^
          CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0xda8) = uVar9;
  lVar15 = DAT_182671c40;
  bVar24 = (byte)uVar5 ^ (byte)uVar9 ^ (byte)DAT_182671fa4;
  *(ulonglong *)(lVar2 + -0x628) =
       (CONCAT44(uVar18,uVar11) ^ 0x2eb72930e214203a) + 0x48988caa19e4c1aa;
  uVar17 = DAT_182671c5c;
  *(byte *)(lVar15 - ((ulonglong)DAT_182671c5c ^ 0x462ad228)) = bVar24;
  uVar12 = DAT_182671c68;
  uVar9 = (ulonglong)DAT_182671f00;
  *(ulonglong *)(lVar15 + -0xbd8) =
       (CONCAT44(uVar8,DAT_182671c68) ^ 0x50e87ce6fa64ef8d) -
       (CONCAT44(DAT_182671c68,uVar30) ^ 0x61b7c0bd7cb59ccd);
  lVar15 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar17 ^ 0x462adf01)) =
       (CONCAT44(uVar8,uVar4) ^ 0xb7d308fe462ad985) + *(longlong *)(DAT_182671c40 + -0x870) ^ uVar9;
  uVar6 = DAT_182671f44;
  *(undefined1 *)(lVar15 - ((ulonglong)uVar17 ^ 0x462ad9a8)) = **(undefined1 **)(lVar15 + -0x370);
  *(byte *)(*(ulonglong *)(lVar15 + -0x6d8) ^ uVar9) =
       *(byte *)(lVar15 + -0xbf1) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671fa4;
  uVar5 = DAT_182671d00;
  *(ulonglong *)(lVar15 + -0x628) =
       *(ulonglong *)(lVar15 - ((ulonglong)DAT_182671c68 ^ 0x460adbf1)) ^ CONCAT44(uVar6,uVar6) ^
       0x257ffb560dc1a768;
  uVar6 = DAT_182671e40;
  uVar3 = DAT_182671db4;
  uVar17 = DAT_182671c54;
  uVar9 = CONCAT44(uVar5,uVar5);
  uVar32 = (ulonglong)DAT_182671db4;
  *(ulonglong *)(lVar15 + -0xd78) =
       *(longlong *)(lVar15 + -0x310) + (CONCAT44(uVar11,DAT_182671c54) ^ 0xd9d9462a4a08f71f) * 8 ^
       uVar9;
  uVar26 = (ulonglong)DAT_182671f48;
  *(ulonglong *)(lVar15 - (uVar33 ^ 0xffdbd657)) =
       *(ulonglong *)(*(ulonglong *)(lVar15 - ((ulonglong)uVar17 ^ 0x4a08fa6c)) ^ uVar9) ^
       CONCAT44(uVar3,uVar3) ^ uVar16;
  lVar15 = DAT_182671c40;
  bVar24 = (byte)uVar6 ^ (byte)DAT_182671cc0;
  uVar9 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x462ad201)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xb7d30556)) >> 0x20 ^ uVar32) >> 8 ^
       CONCAT44(uVar6,uVar6);
  *(byte *)(lVar15 - (uVar9 ^ 0x460ad9a8)) = bVar24 ^ *(byte *)(lVar15 + -0xbd8);
  uVar32 = (ulonglong)DAT_182671c5c;
  pbVar14 = (byte *)(*(longlong *)(lVar15 - (uVar32 ^ 0x462ad1a9)) +
                    (CONCAT44(uVar30,uVar30) ^ 0x9235ee169235ee4b));
  bVar24 = (byte)DAT_182671f14;
  *(ulonglong *)(lVar15 + -0xaf0) = (ulonglong)pbVar14 ^ uVar26;
  *pbVar14 = *(byte *)(lVar15 + -0x71) ^ bVar24 ^ (byte)DAT_182671cc0;
  uVar5 = DAT_182671cc4;
  puVar13 = (ulonglong *)
            (*(longlong *)(lVar15 + -0x310) + (CONCAT44(uVar30,uVar18) ^ 0x9235ee16ffdbdbf4) * 8);
  bVar24 = (byte)uVar7 ^ (byte)DAT_182671d48;
  *(ulonglong *)(lVar15 + -0x218) = (ulonglong)puVar13 ^ CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar3 = DAT_182671c68;
  lVar15 = DAT_182671c40;
  uVar26 = CONCAT44(uVar5,uVar5);
  uVar9 = *puVar13 ^ uVar26 ^ uVar16;
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar9;
  uVar9 = (uVar26 ^ uVar9) >> (((byte)uVar12 ^ 0xe9) & 0x3f) ^ uVar16;
  *(ulonglong *)(lVar15 + -0x628) = uVar9;
  *(longlong *)(lVar15 + -0xbd8) = 0x6ce498a352c3eaa0 << (((byte)uVar4 ^ 0xf7) & 0x3f);
  *(byte *)(lVar15 + -0x331) = bVar24 ^ (byte)uVar9;
  uVar17 = DAT_182671c54;
  uVar9 = (ulonglong)DAT_182671f20;
  uVar26 = (ulonglong)DAT_182671c54;
  bVar24 = (byte)DAT_182671f14;
  *(ulonglong *)(lVar15 - ((ulonglong)DAT_182671c54 ^ 0x4a08f46c)) =
       (CONCAT44(uVar30,uVar3) ^ 0x9235ee16460ad987) + *(longlong *)(lVar15 + -0x870) ^ uVar9;
  *(byte *)(*(ulonglong *)(lVar15 + -0x378) ^ uVar9) =
       bVar24 ^ *(byte *)(lVar15 + -0x331) ^ (byte)DAT_182671d48;
  uVar12 = DAT_182671df0;
  puVar13 = (ulonglong *)
            ((CONCAT44(uVar20,uVar17) ^ 0x462ad9d94a08f714) * 0x60 +
            *(longlong *)(lVar15 - (uVar32 ^ 0x462adac9)) + 0x58);
  uVar9 = (ulonglong)DAT_182671df0;
  *(ulonglong *)(lVar15 + -0xa0) = (ulonglong)puVar13 ^ CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar16 = *puVar13 ^ uVar32 ^ uVar16;
  *(ulonglong *)(lVar15 + -0x228) = uVar16;
  uVar25 = DAT_182671ef8;
  lVar15 = DAT_182671c40;
  bVar24 = (byte)DAT_182671ef8 ^ (byte)DAT_182671e8c;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (uVar16 >> 0x20 ^ uVar9) >> 0x18 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  bVar24 = bVar24 ^ *(byte *)(lVar15 + -0xbd8);
  *(byte *)(lVar15 + -0xc02) = bVar24;
  lVar2 = DAT_182671c40;
  uVar9 = (ulonglong)DAT_182671ce8;
  *(ulonglong *)(lVar15 + -0x7c0) =
       (CONCAT44(uVar4,uVar18) ^ 0xca3268f5d21e28b) - (CONCAT44(uVar18,uVar8) ^ 0xdffb8185bc273b38);
  uVar20 = DAT_182671d60;
  pbVar14 = (byte *)(*(longlong *)(lVar15 - (uVar26 ^ 0x4a08ff64)) +
                    (CONCAT44(uVar11,uVar8) ^ 0xd9d9462ab7d308a1));
  *(ulonglong *)(lVar2 + -0x3f8) = (ulonglong)pbVar14 ^ uVar9;
  *(ulonglong *)(lVar2 + -0x7c0) =
       (CONCAT44(uVar11,uVar4) ^ 0xb0769c9d12643e80) <<
       ((byte)*(undefined8 *)(lVar2 + -0x110) & 0x3f);
  uVar8 = DAT_182671f14;
  *pbVar14 = (byte)DAT_182671f14 ^ bVar24 ^ (byte)DAT_182671e8c;
  *(ulonglong *)(lVar2 + -0x110) = *(ulonglong *)(lVar2 + -0x228) ^ uVar32;
  lVar15 = (CONCAT44(uVar4,uVar22) ^ 0x462ad9d9460ad941) + *(longlong *)(lVar2 + 8);
  *(longlong *)(lVar2 + -0x708) = lVar15;
  *(longlong *)(lVar2 - (uVar31 ^ 0x9235e366)) = lVar15;
  *(uint *)(lVar2 + -0x634) = **(uint **)(lVar2 + -0xd70) ^ uVar20;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x4a08f0d4)) =
       (uVar23 << 0x15 | (ulonglong)(uVar21 >> 0xb)) ^ *(ulonglong *)(lVar2 + -0xd88) >> 0xb;
  uVar22 = DAT_182671c90;
  uVar17 = DAT_182671c6c;
  uVar16 = (ulonglong)DAT_182671c6c;
  uVar23 = (ulonglong)DAT_182671eec;
  uVar9 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0x148) =
       (CONCAT44(uVar18,uVar3) ^ 0xffdbdbff460ad9d9) * 0x10 +
       (*(ulonglong *)(lVar2 + -0xd0) ^ (ulonglong)DAT_182671cf4);
  uVar12 = DAT_182671ee8;
  *(undefined8 *)(lVar2 + -0xcf0) = *(undefined8 *)(lVar2 - (uVar9 ^ 0xd9b5070d));
  lVar15 = *(longlong *)(lVar2 - (uVar16 ^ 0x7e14d8bc));
  *(longlong *)(lVar2 + -0xd00) = lVar15;
  *(ulonglong *)(lVar2 + -0xd88) = ((ulonglong)uVar11 ^ 0xa2000000) >> 0x19;
  uVar4 = DAT_182671f4c;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x4a08fa64)) =
       (CONCAT44(DAT_182671c4c,uVar17) ^ 0x5b3167407e14d44c) * 0x10 + lVar15 ^ uVar23;
  *(uint *)(lVar2 - ((ulonglong)DAT_182671c84 ^ 0x4684bf12)) =
       *(uint *)(*(ulonglong *)(lVar2 + -0xd70) ^ uVar23) ^ uVar4 ^ uVar8;
  *(ulonglong *)(lVar2 + -0x7c0) = (uVar31 ^ 0x68000000) >> 0x1b;
  uVar17 = (uVar20 ^ *(uint *)(lVar2 + -0x634)) - (*(uint *)(lVar2 + -0x61c) ^ uVar4) ^
           DAT_182671cb8;
  *(uint *)(lVar2 + -0xc70) = uVar17;
  uVar17 = (uVar17 ^ DAT_182671cb8 | *(uint *)(lVar2 + -0x61c) ^ uVar4) ^ DAT_182671f64;
  *(uint *)(lVar2 + -0x784) = uVar17;
  uVar18 = (int)(uVar17 ^ DAT_182671f64) >> 0x1f;
  *(uint *)(lVar2 + -0x27c) = uVar18 ^ uVar12;
  uVar28 = *(uint *)(lVar2 - (uVar29 ^ 0x462adba5)) ^ DAT_182671ea4 ^ DAT_182671c94 ^ uVar12 ^
           0x6c8f56e4;
  *(uint *)(lVar2 + -0x54) = uVar28;
  uVar3 = DAT_182671f0c;
  uVar12 = DAT_182671e88;
  uVar28 = uVar28 ^ DAT_182671ea4;
  uVar11 = ~DAT_182671d4c;
  bVar24 = (byte)DAT_182671c54;
  uVar8 = DAT_182671c78 ^ 0x482cf701;
  uVar20 = -(*(uint *)(lVar2 - ((ulonglong)uVar22 ^ 0x1d1bb885)) ^ uVar4) - 1 ^ DAT_182671eac;
  *(uint *)(lVar2 + -0xae4) = uVar20;
  uVar17 = DAT_182671db0;
  uVar21 = (int)(uVar20 ^ DAT_182671eac) >> ((bVar24 ^ 0xb) & 0x1f);
  uVar20 = uVar21 ^ uVar25;
  uVar25 = uVar11 ^ uVar25 ^ uVar20;
  *(uint *)(lVar2 + -0x76c) = uVar20;
  *(uint *)(lVar2 + -0x9dc) = uVar25;
  uVar20 = DAT_182671c8c;
  lVar15 = DAT_182671c40;
  uVar16 = (ulonglong)DAT_182671c8c;
  uVar18 = uVar25 ^ DAT_182671d4c | uVar18;
  *(uint *)(lVar2 + -0x6c0) = uVar18 ^ uVar12;
  uVar21 = uVar21 & uVar28;
  uVar8 = uVar18 & uVar8;
  *(uint *)(lVar2 + -0x94) = uVar21 ^ uVar3;
  *(uint *)(lVar2 + -0x644) = uVar8 ^ uVar17;
  uVar17 = DAT_182671c90;
  uVar12 = (*(uint *)(lVar2 + -0x61c) ^ uVar4) & uVar21 ^ DAT_182671d70;
  *(uint *)(lVar2 + -0x94c) = uVar12;
  uVar28 = uVar17 * uVar20;
  *(uint *)(lVar2 + -0x58c) = (uVar12 ^ DAT_182671d70 | uVar8) ^ DAT_182671f2c;
  DAT_182671c4c = uVar28;
  *(uint *)(lVar15 + -0x5d4) =
       *(uint *)(lVar15 - (uVar16 ^ 0xd9d9405a)) >> (((byte)uVar28 ^ 0x16) & 0x1f);
  puVar34 = (uint *)(lVar15 - ((ulonglong)uVar22 ^ 0x1d1bbadd));
  *puVar34 = uVar18 & (uVar17 ^ 0x1d1bbe9c) ^ DAT_182671e84;
  uVar22 = DAT_182671f38;
  uVar12 = DAT_182671ed0;
  uVar17 = (uVar3 ^ *(uint *)(lVar15 + -0x94)) & (uVar17 ^ 0x1d1bbe99) ^ DAT_182671e64;
  *(uint *)(lVar15 + -0xc70) = uVar17;
  uVar3 = DAT_182671ee0;
  *(uint *)(lVar15 - ((ulonglong)uVar20 ^ 0xd9d941ae)) =
       (*puVar34 ^ DAT_182671e84 | uVar17 ^ DAT_182671e64) ^ uVar22;
  uVar17 = uVar22 ^ *(uint *)(lVar15 + -0x784) ^ DAT_182671cc0;
  uVar9 = (ulonglong)DAT_182671c90;
  *(longlong *)(lVar15 + -0xd00) =
       *(longlong *)(lVar15 + -0xd00) + (CONCAT44(uVar28,uVar20) ^ 0x9d5c1b1ad9d9462b) * 0x10;
  *(uint *)(lVar15 + -0xae4) = uVar17;
  *(uint *)(lVar15 + -0x54) = *(uint *)(lVar15 + -0x58c) ^ uVar12 ^ DAT_182671f2c;
  uVar17 = DAT_182671e18 ^ uVar17;
  *(longlong *)(lVar15 + -0xcf0) = *(longlong *)(lVar15 + -0xd00);
  *(uint *)(lVar15 + -0x76c) = uVar17 ^ DAT_182671cc0;
  uVar8 = DAT_182671f14;
  uVar22 = DAT_182671d60;
  uVar17 = *(uint *)(lVar15 - (uVar9 ^ 0x1d1bbecd));
  puVar27 = (uint *)((CONCAT44(uVar28,uVar28) ^ 0x9d5c1b1a9d5c1b1a) * 0x10 +
                    *(longlong *)(lVar15 + -0xd00));
  *(ulonglong *)(lVar15 + -0xd70) = (ulonglong)puVar27 ^ (ulonglong)DAT_182671f14;
  uVar25 = uVar17 ^ uVar3 ^ uVar12;
  *(uint *)(lVar15 + -0x27c) = uVar25;
  uVar21 = DAT_182671fa0;
  lVar15 = DAT_182671c40;
  uVar8 = *puVar27 ^ DAT_182671fa0 ^ uVar8;
  puVar10 = (uint *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0xd9d94ff6));
  puVar27 = (uint *)(DAT_182671c40 + -0x634);
  *(uint *)(DAT_182671c40 + -0x9dc) = uVar8;
  uVar22 = (uVar22 ^ *puVar27) - (*puVar10 ^ uVar21) ^ DAT_182671cbc;
  *(uint *)(lVar15 + -0x61c) = uVar22;
  uVar18 = DAT_182671f74;
  uVar17 = DAT_182671c90;
  uVar22 = (uVar22 ^ DAT_182671cbc | uVar21 ^ uVar8) ^ DAT_182671d20;
  *(uint *)(lVar15 + -0x644) = uVar22;
  lVar2 = DAT_182671c40;
  *(uint *)(lVar15 + -0x94c) =
       (int)(uVar22 ^ DAT_182671d20) >> (((byte)uVar17 ^ 0x86) & 0x1f) ^ uVar18;
  uVar4 = DAT_182671f3c;
  uVar17 = DAT_182671c90;
  uVar8 = (uVar3 ^ uVar25) - (uVar21 ^ uVar8);
  uVar11 = *(uint *)(lVar15 - ((ulonglong)uVar28 ^ 0x9d5c1256)) ^ DAT_182671f3c;
  *(uint *)(lVar2 + -0x5d4) = uVar8 ^ DAT_182671e20;
  uVar22 = DAT_182671e4c;
  uVar8 = (int)uVar8 >> 0x1f;
  uVar25 = uVar8 ^ DAT_182671e4c;
  uVar11 = uVar11 ^ uVar18 ^ uVar20 ^ 0x2626b9d5;
  *(uint *)(lVar2 + -0x670) = uVar11;
  *(uint *)(lVar2 + -0x6c0) = uVar25;
  *(ulonglong *)(lVar2 + -0xd88) = CONCAT44(uVar17,uVar20) ^ 0x40000440aa090422 | 0x12d3522d4046b954
  ;
  uVar20 = DAT_182671f34;
  uVar17 = DAT_182671edc;
  uVar22 = uVar22 ^ uVar12 ^ DAT_182671c90;
  *(uint *)(lVar2 + -0x94) = uVar8 & (uVar4 ^ uVar11) ^ DAT_182671f34;
  *puVar34 = uVar22 ^ uVar25 ^ 0xe2e44166;
  uVar22 = (*(uint *)(lVar2 + -0x444) ^ uVar12 | uVar18 ^ *(uint *)(lVar2 + -0x94c)) ^ DAT_182671cfc
  ;
  uVar12 = (uVar20 ^ *(uint *)(lVar2 + -0x94)) & (uVar21 ^ *(uint *)(lVar2 + -0x9dc)) ^
           DAT_182671e58;
  *(uint *)(lVar2 + -0xc70) = uVar22;
  uVar20 = (uVar22 ^ DAT_182671cfc) & (uVar3 ^ *(uint *)(lVar2 + -0x27c));
  *(uint *)(lVar2 + -0x58c) = uVar12;
  *(uint *)(lVar2 + -0x784) = uVar20 ^ uVar17;
  *(uint *)(lVar2 - (uVar16 ^ 0xd9d94cce)) = uVar20 << (((byte)uVar28 ^ 7) & 0x1f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar30) * 4) = uVar19;
  return;
}



############ FUN_ 180f79e30 size=5242 ############

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

void FUN_180f79e30(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  byte bVar26;
  uint uVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_res20;
  byte local_118;
  byte local_108;
  byte local_c8;
  
  uVar10 = DAT_182671c8c;
  uVar9 = DAT_182671c88;
  uVar8 = DAT_182671c84;
  uVar7 = DAT_182671c80;
  uVar6 = DAT_182671c64;
  uVar4 = DAT_182671c50;
  uVar3 = DAT_182671c4c;
  lVar1 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671c50;
  uVar41 = (ulonglong)DAT_182671c4c;
  uVar46 = (ulonglong)DAT_182671c88;
  uVar36 = (ulonglong)DAT_182671c64;
  uVar29 = DAT_182671c54 + DAT_182671c84;
  uVar40 = (ulonglong)DAT_182671c8c;
  uVar43 = *(uint *)(&DAT_182613218 + DAT_182672204) ^ DAT_182671c4c;
  uVar35 = (ulonglong)DAT_182671c80;
  uVar37 = ~DAT_182671c8c;
  DAT_182671c74 = DAT_182671c4c * DAT_182671c50;
  uVar27 = DAT_182671c88 * DAT_182671c64;
  uVar21 = DAT_182671c60 + DAT_182671c80;
  uVar16 = *(uint *)(&DAT_182613210 + (uVar18 ^ 0xa6f5fc79) + (longlong)DAT_182672204) ^
           DAT_182671c74;
  uVar32 = (ulonglong)uVar21;
  puVar49 = (ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x1dbd8d6f));
  bVar26 = (byte)DAT_182671c60;
  uVar23 = (CONCAT44(DAT_182671ec0,DAT_182671ec0) ^ *puVar49) << ((bVar26 ^ 0xaf) & 0x3f);
  uVar19 = CONCAT44(DAT_182671c8c,uVar37);
  DAT_182671c5c = uVar27;
  DAT_182671c68 = uVar29;
  DAT_182671c90 = uVar37;
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar23 ^ CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar1 + -0x4b8) = (uVar19 ^ 0x69a1e68f62fde007) + 0xb6d308e03ab72328;
  uVar11 = DAT_182671f6c;
  uVar33 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar38 = CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar23 = *(ulonglong *)(lVar1 + -0x3d8) ^ uVar33 | uVar23;
  *(ulonglong *)(lVar1 + -0xa78) = uVar23 ^ uVar38;
  uVar44 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0x228) = (*(ulonglong *)(lVar1 + -0xc90) ^ uVar33) - uVar23 ^ uVar44;
  uVar11 = DAT_182671ce0;
  *(ulonglong *)(lVar1 + -0xda8) =
       CONCAT44(DAT_182671e58,DAT_182671e58) ^ **(ulonglong **)(lVar1 + -0x140);
  uVar5 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  uVar50 = CONCAT44(uVar11,uVar11);
  uVar39 = CONCAT44(DAT_182671edc,DAT_182671edc);
  puVar24 = (ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0x38e01329));
  uVar23 = (ulonglong)uVar27;
  uVar34 = CONCAT44(DAT_182671d64,DAT_182671d64) ^ *puVar24 ^ *(ulonglong *)(lVar1 + -0x920) ^
           uVar39;
  bVar15 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar1 + -0xc18) = uVar34 ^ uVar50;
  *(longlong *)(lVar1 + -0x960) = 0x3c7ae65caac99425 << ((bVar15 ^ 0xa6) & 0x3f);
  uVar12 = _DAT_182671cf0;
  uVar31 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar19 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0xc1622629)) ^ uVar50) >>
           (((byte)uVar3 ^ 0xdf) & 0x3f);
  *(uint *)(lVar2 + -0x6c0) = (uVar8 ^ 0x7886afec) + (uVar10 ^ 0x5e881bc8);
  *(ulonglong *)(lVar2 + -0x408) = uVar19 ^ uVar31;
  uVar11 = DAT_182671d68;
  uVar34 = uVar34 << ((bVar26 ^ 0x9e) & 0x3f);
  *(ulonglong *)(lVar2 + -0xb18) = uVar34 ^ CONCAT44(uVar12,uVar12);
  uVar48 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xbd8) = (uVar19 | uVar34) ^ uVar48;
  uVar11 = DAT_182671de0;
  uVar17 = DAT_182671c74;
  lVar1 = DAT_182671c40;
  puVar28 = (ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0x67034a0a));
  *puVar28 = (CONCAT44(DAT_182671c74,uVar29) ^ 0x4d5a3d07e2fa00a1) -
             (CONCAT44(uVar29,uVar6) ^ 0x737acfc7827fa077);
  uVar30 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x1dbd856f)) =
       (*(ulonglong *)(lVar1 + -0xa50) ^ uVar39) - (*(ulonglong *)(lVar1 + -0xbd8) ^ uVar48) ^
       uVar30;
  uVar34 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(lVar1 - (uVar23 ^ 0x52eb481c)) =
       *(ulonglong *)(lVar1 + -0xbd8) ^ *(ulonglong *)(lVar1 + -0x228) ^ uVar34 ^ uVar48 ^ uVar44;
  uVar13 = DAT_182671fb0;
  puVar25 = (ulonglong *)(lVar1 - (uVar41 ^ 0x9e3fe267));
  bVar26 = (byte)uVar4;
  *puVar25 = (CONCAT44(uVar29,uVar9) ^ 0xb85032e4abdf8069) -
             (CONCAT44(uVar3,uVar7) ^ 0xa2f5d6b349c7186a);
  uVar19 = (uVar34 ^ *(ulonglong *)(lVar1 + -0x30)) >> ((bVar26 ^ 0x5d) & 0x3f);
  uVar31 = uVar19 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0xda8) = uVar31;
  uVar11 = DAT_182671ccc;
  uVar34 = (uVar34 ^ *(ulonglong *)(lVar1 + -0x30)) << (((byte)uVar10 ^ 0x41) & 0x3f);
  uVar39 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar1 + -0xc18) = 0x58de7f11cc704284 >> (((byte)uVar31 ^ (byte)uVar13) & 0x3f);
  *(ulonglong *)(lVar1 + -0x920) = uVar34 ^ uVar50;
  uVar19 = uVar19 | uVar34;
  *(ulonglong *)(lVar1 + -0x960) = uVar19 ^ uVar39;
  lVar1 = DAT_182671c40;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x98fcb545)) =
       (*(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar44) - uVar19 ^ uVar34;
  *(uint *)(lVar1 + -0x94) = (DAT_182671c88 ^ 0xad541c19) + 0x25966ab9;
  uVar19 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar1 + -0x4b8) =
       *(ulonglong *)(lVar1 + -0x3d8) ^ uVar19 ^ uVar30 ^ uVar38 ^ *(ulonglong *)(lVar1 + -0xa78);
  *puVar24 = (*puVar28 ^ uVar19) >> ((bVar15 ^ 0x81) & 0x3f) ^ uVar33;
  uVar31 = (uVar19 ^ *(ulonglong *)(lVar1 + -0x4b8)) << ((bVar26 ^ 0x6e) & 0x3f);
  uVar19 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar1 + -0xbd8) = uVar31 ^ uVar19;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar37 ^ 0x67034222)) = (*puVar49 ^ uVar19) - uVar31;
  uVar11 = DAT_182671de8;
  uVar31 = CONCAT44(DAT_182671e50,DAT_182671e50);
  uVar19 = (*(ulonglong *)(lVar1 + -0xa50) ^ uVar33 | *(ulonglong *)(lVar1 + -0xbd8) ^ uVar19) ^
           uVar31;
  *(ulonglong *)(lVar1 + -0x30) = uVar19;
  uVar20 = DAT_182671c7c;
  uVar50 = CONCAT44(uVar11,uVar11);
  uVar33 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar1 + -0x920) =
       (*(ulonglong *)(lVar1 + -0x3d8) ^ uVar30) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0xb3d7277f)) ^ uVar31) ^ uVar50;
  uVar40 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar44 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  uVar19 = uVar40 ^ uVar19 ^ uVar31 ^ *(ulonglong *)(lVar1 + -0x408) ^ uVar34;
  *(ulonglong *)(lVar1 + -0xda8) = uVar19;
  local_118 = (byte)uVar29;
  uVar30 = (*(ulonglong *)(lVar1 - (uVar36 ^ 0xf67066dc)) ^ uVar40) >> ((local_118 ^ 0x3f) & 0x3f);
  *(ulonglong *)(lVar1 + -0xc18) = uVar30 ^ uVar44;
  *(ulonglong *)(lVar1 + -0x228) = uVar30 - (CONCAT44(uVar5,uVar21) ^ 0x5e2b72b57623d6c5);
  uVar3 = DAT_182671c70;
  uVar31 = (ulonglong)DAT_182671c70;
  uVar22 = uVar20 & DAT_182671c70;
  bVar26 = (byte)uVar20;
  uVar19 = (uVar19 ^ uVar40) << ((bVar26 ^ 0xca) & 0x3f);
  DAT_182671c48 = uVar22;
  *(ulonglong *)(lVar1 + -0xa78) = uVar19 ^ CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar14 = DAT_182671e9c;
  uVar40 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *(ulonglong *)(lVar1 + -0x4b8) = (uVar19 | uVar30) ^ uVar40;
  uVar13 = DAT_182671e2c;
  puVar49 = (ulonglong *)(lVar1 - ((ulonglong)uVar22 ^ 0x40801ab0));
  local_c8 = (byte)uVar12;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x71861b3e)) =
       uVar19 << (((byte)*puVar49 ^ local_c8) & 0x3f);
  uVar11 = DAT_182671d6c;
  uVar19 = (*(ulonglong *)(lVar1 + -0x408) ^ uVar34) -
           (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar1 + -0xd88));
  *(ulonglong *)(lVar1 + -0xa50) = uVar19 ^ CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar12 = DAT_182671db8;
  uVar51 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0xcee9fa20)) =
       uVar19 - (uVar40 ^ *(ulonglong *)(lVar1 + -0x4b8)) ^ uVar51;
  uVar45 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar1 + -0x3d8) =
       (uVar40 ^ *(ulonglong *)(lVar1 + -0x4b8)) -
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar1 + -0xf0)) ^ uVar45;
  *(uint *)(lVar1 + -0xae4) = *(uint *)(lVar1 + -0x6c0) >> ((bVar26 ^ 0xef) & 0x1f);
  uVar11 = DAT_182671dbc;
  uVar19 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar39 = *(ulonglong *)(lVar1 - (uVar31 ^ 0x71861e8e)) ^ *(ulonglong *)(lVar1 + -0x960) ^ uVar19 ^
           uVar50 ^ uVar39;
  uVar47 = CONCAT44(uVar6,uVar10);
  *(ulonglong *)(lVar1 + -0x30) = uVar39;
  lVar1 = DAT_182671c40;
  uVar30 = (uVar39 ^ uVar19) >> ((bVar26 ^ 0xe8) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar30 ^ CONCAT44(uVar11,uVar11);
  uVar40 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar1 + -0xda8) = (uVar19 ^ uVar39) << ((bVar26 ^ 200) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar1 + -0xc18) = uVar47 ^ 0x21c37a2040002841 | 0x983885982fa4c52a;
  uVar11 = DAT_182671f94;
  uVar34 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(lVar1 + -0xb18) =
       (*(ulonglong *)(lVar1 - (uVar31 ^ 0x71861a06)) ^ uVar40 | uVar30) ^ uVar34;
  lVar2 = DAT_182671c40;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0x52eb4254)) =
       (*(ulonglong *)(lVar1 + -0x920) ^ uVar50) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar22 ^ 0x40801ba0)) ^ uVar38) ^ uVar19;
  uVar30 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar40 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar2 + -0xc90) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0xa78)) - (*(ulonglong *)(lVar2 + -0xb18) ^ uVar34) ^
       uVar30;
  uVar44 = CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0xc16227b9)) =
       (CONCAT44(uVar20,uVar9) ^ 0x31160e07cee9f1f9) - (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar40) ^
       uVar44;
  uVar5 = DAT_182671c74;
  uVar39 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar19 = CONCAT44(uVar37,DAT_182671c74);
  uVar34 = (uVar44 ^ *(ulonglong *)(lVar2 + -0xd88)) + (*(ulonglong *)(lVar2 + -0xb18) ^ uVar34) ^
           uVar39;
  *(ulonglong *)(lVar2 + -0x408) = uVar34;
  uVar11 = DAT_182671d50;
  *(ulonglong *)(lVar2 + -0xa50) =
       (uVar19 ^ 0xec5e22f8f6057a0b) >> (((byte)uVar14 ^ *(byte *)(lVar2 + -0x4b8)) & 0x3f);
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x38e01019)) =
       *(ulonglong *)(lVar2 + -0xbd8) ^ uVar19 ^ uVar39 ^ uVar51 ^ uVar34;
  uVar12 = DAT_182671dfc;
  uVar11 = DAT_182671cd0;
  uVar42 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar35 = (*(ulonglong *)(lVar2 - (uVar35 ^ 0x60f1c51)) ^ uVar19) >> ((bVar15 ^ 0x98) & 0x3f);
  local_108 = (byte)uVar3;
  *(ulonglong *)(lVar2 + -0x30) = uVar35 ^ uVar42;
  uVar3 = DAT_182671c50;
  uVar19 = (*(ulonglong *)(lVar2 + -0x960) ^ uVar19) << ((local_108 ^ 0x8e) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc18) = uVar19 ^ CONCAT44(uVar11,uVar11);
  uVar6 = DAT_182671c94;
  uVar39 = (ulonglong)DAT_182671c94;
  *(int *)(lVar2 + -0x9dc) = (int)(uVar5 ^ 0xc82905d8) >> (((byte)uVar3 ^ 0x73) & 0x1f);
  uVar5 = DAT_182671c78;
  uVar34 = (ulonglong)DAT_182671c78;
  uVar19 = uVar19 | uVar35;
  uVar35 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(ulonglong *)(lVar2 + -0x228) = uVar19 ^ uVar45;
  lVar1 = DAT_182671c40;
  uVar20 = uVar6 * uVar5;
  *(ulonglong *)(lVar2 + -0xda8) = (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar51) - uVar19 ^ uVar35;
  uVar11 = DAT_182671f4c;
  puVar28 = (ulonglong *)(lVar1 + -0xa08);
  DAT_182671c58 = uVar20;
  *puVar28 = (CONCAT44(uVar20,uVar5) ^ 0x7dfc91ea01d26f9e) <<
             (((byte)uVar12 ^ *(byte *)(lVar1 + -0x30)) & 0x3f);
  uVar44 = CONCAT44(uVar11,uVar11);
  uVar19 = uVar44 ^ *(ulonglong *)(lVar1 + -0xc90) ^ uVar30 ^ uVar45 ^
           *(ulonglong *)(lVar1 + -0x3d8);
  *(ulonglong *)(lVar1 + -0x920) = uVar19;
  uVar50 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  bVar26 = (byte)uVar5;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0xefff9586)) =
       (uVar19 ^ uVar44) >> (((byte)uVar6 ^ 0x4a) & 0x3f) ^ uVar50;
  lVar1 = DAT_182671c40;
  uVar19 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (*(ulonglong *)(DAT_182671c40 + -0x920) ^ uVar44) << ((bVar26 ^ 0xde) & 0x3f) ^ uVar19;
  uVar11 = DAT_182671f2c;
  *(ulonglong *)(lVar1 + -0xd88) =
       (CONCAT44(uVar6,uVar5) ^ 0xa5a522fc517c944f) << ((bVar26 ^ 0xdf) & 0x3f);
  uVar44 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0x23af1872)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0x715a1cc4)) ^ uVar19 |
       uVar50 ^ *(ulonglong *)(lVar1 + -0xa78)) ^ uVar44;
  uVar51 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar1 + -0x4b8) =
       (*(ulonglong *)(lVar1 + -0xc90) ^ uVar30) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0x715a1234)) ^ uVar44) ^ uVar51;
  *(ulonglong *)(lVar1 + -0xa50) = *(ulonglong *)(lVar1 + -0xd88) | 0x103e1fa6c4d59c6c;
  uVar52 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(lVar1 - (uVar46 ^ 0x31160a0f)) =
       uVar52 ^ uVar44 ^ uVar35 ^ *puVar49 ^ *(ulonglong *)(lVar1 + -0xda8);
  uVar50 = uVar52 ^ *(ulonglong *)(lVar1 + -0x408);
  uVar19 = *(ulonglong *)(lVar1 + -0xda8);
  uVar30 = CONCAT44(DAT_182671f90,DAT_182671f90);
  *(ulonglong *)(lVar1 + -0x960) = (uVar47 ^ 0x6fa37a9fd7eea8c3) << ((local_108 ^ 0xa7) & 0x3f);
  uVar44 = uVar50 >> (((byte)uVar20 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar1 + -0xc18) = uVar44 ^ uVar30;
  *(ulonglong *)(lVar1 + -0xbd8) = 0x9af9f2e5d76c0088 >> (((byte)uVar6 ^ 0x6d) & 0x3f);
  uVar50 = uVar50 << (((byte)uVar9 ^ 1) & 0x3f);
  *puVar28 = uVar50 ^ uVar38;
  uVar44 = uVar44 | uVar50;
  uVar30 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar1 + -0x30) = uVar44 ^ uVar30;
  uVar50 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar1 + -0x3d8) = (uVar35 ^ uVar19) - uVar44 ^ uVar40;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0x52eb410c)) =
       uVar50 ^ uVar51 ^ uVar45 ^ *(ulonglong *)(lVar1 + -0x228) ^ *(ulonglong *)(lVar1 + -0x4b8);
  uVar23 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  local_res20 = (byte)uVar21;
  *(ulonglong *)(lVar1 - (uVar33 ^ 0xcee9fb80)) =
       (*(ulonglong *)(lVar1 - (uVar41 ^ 0x9e3fe7d7)) ^ uVar50) >> (((byte)uVar27 ^ 0x3a) & 0x3f) ^
       uVar23;
  uVar11 = DAT_182671f60;
  uVar19 = (*(ulonglong *)(lVar1 + -0x920) ^ uVar50) << ((local_res20 ^ 0x9d) & 0x3f);
  *(ulonglong *)(lVar1 + -0x5e8) = uVar19 ^ CONCAT44(DAT_182671d94,DAT_182671d94);
  lVar2 = DAT_182671c40;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - (uVar36 ^ 0xf67067e4)) =
       (*(ulonglong *)(lVar1 - (uVar41 ^ 0x9e3fe48f)) ^ uVar23 | uVar19) ^ uVar33;
  uVar23 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  uVar44 = (uVar51 ^ *(ulonglong *)(lVar1 + -0x4b8)) - (*puVar25 ^ uVar33);
  uVar35 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar1 + -0xd88) = uVar44 ^ uVar23;
  uVar19 = *(ulonglong *)(lVar1 + -0x3d8);
  uVar32 = *(ulonglong *)(lVar2 - (uVar32 ^ 0x1dbd8a27)) ^ uVar35 ^ uVar33 ^ uVar40 ^ uVar19;
  uVar36 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar2 + -0xa50) = uVar32;
  uVar3 = DAT_182671c54;
  uVar17 = DAT_182671c74 ^ 0x2f953551;
  uVar33 = (*puVar24 ^ uVar35) >> (((byte)uVar27 ^ 2) & 0x3f);
  *(ulonglong *)(lVar2 + -0xb18) = uVar33 ^ uVar36;
  uVar11 = DAT_182671f80;
  uVar6 = DAT_182671e4c;
  *(uint *)(lVar2 + -0x94) = (uVar3 ^ 0x7acab668) + uVar17;
  lVar1 = DAT_182671c40;
  uVar36 = (uVar35 ^ uVar32) << ((bVar15 ^ 0xaa) & 0x3f);
  uVar32 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar36 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671e6c;
  uVar33 = uVar33 | uVar36;
  *(ulonglong *)(lVar1 + -0xbd8) = uVar33 ^ uVar32;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0xc18) = (uVar40 ^ uVar19) - uVar33 ^ uVar36;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0x71861da6)) =
       (CONCAT44(uVar4,uVar21) ^ 0x3b8967a6b170adb) - uVar44;
  *(ulonglong *)(lVar1 + -0xda8) =
       CONCAT44(uVar6,uVar6) ^ uVar23 ^ uVar30 ^ *(ulonglong *)(lVar1 + -0xd88) ^
       *(ulonglong *)(lVar1 + -0x30);
  *(ulonglong *)(lVar1 - (uVar34 ^ 0xefff9dd6)) =
       CONCAT44(uVar22,uVar5) ^ 0xc7b5b98c9a80e158 | uVar52 ^ *(ulonglong *)(lVar1 + -0x408);
  uVar19 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(lVar1 - (uVar39 ^ 0x23af1a4a)) =
       ((ulonglong)uVar6 << 0x14 | (ulonglong)(uVar6 >> 0xc)) ^
       *(ulonglong *)(lVar1 + -0xda8) >> 0xc ^ uVar19;
  uVar3 = DAT_182671d8c;
  uVar40 = (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar1 + -0xda8)) << 0x34;
  uVar32 = (ulonglong)DAT_182671d8c;
  *(ulonglong *)(lVar1 + -0xa78) = uVar40 ^ uVar48;
  uVar13 = DAT_182671fb4;
  uVar11 = DAT_182671d00;
  uVar40 = *(ulonglong *)(lVar1 + -0x920) ^ uVar19 | uVar40;
  *(ulonglong *)(lVar1 + -0x5e8) =
       CONCAT44(uVar7,uVar20) ^ CONCAT44(uVar37,uVar22) ^ 0xcd91038b6ed1d442;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar19 = uVar40 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x4b8) = uVar19;
  uVar19 = CONCAT44(uVar3,uVar3) ^ *(ulonglong *)(lVar1 + -0xc18) ^ uVar30 ^ uVar36 ^ uVar19;
  *(ulonglong *)(lVar1 + -0xa50) = uVar19;
  uVar12 = DAT_182671ea0;
  *(ulonglong *)(lVar1 + -0xc90) =
       (uVar23 ^ *(ulonglong *)(lVar1 + -0xd88)) - uVar40 ^ CONCAT44(uVar13,uVar13);
  uVar11 = DAT_182671e8c;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0xb18) =
       *(ulonglong *)(lVar1 - (uVar31 ^ 0x71861dfe)) >> 0x19 ^
       ((ulonglong)(uVar3 >> 0x19) | uVar32 << 7) ^ uVar23;
  DAT_182671c6c = DAT_182671c50 - DAT_182671c78;
  uVar19 = (CONCAT44(uVar3,uVar3) ^ uVar19) << ((bVar26 ^ 0xd9) & 0x3f);
  *(ulonglong *)(lVar1 + -0x960) = uVar19 ^ CONCAT44(uVar11,uVar11);
  *(undefined8 *)(lVar1 + -0x3d8) = **(undefined8 **)(lVar1 - (uVar18 ^ 0xa6f5f6a9));
  *puVar28 = (*(ulonglong *)(lVar1 - (uVar34 ^ 0xefff94e6)) ^ uVar23 | uVar19) ^ uVar42;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar43;
  return;
}



############ FUN_ 180f49050 size=5617 ############

void FUN_180f49050(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_res18;
  byte local_c8;
  
  uVar5 = DAT_182671ef0;
  uVar7 = DAT_182671e40;
  uVar19 = DAT_182671c64;
  uVar4 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671c58;
  uVar35 = (ulonglong)DAT_182671c64;
  uVar13 = DAT_182671c58 - DAT_182671c64;
  uVar31 = (ulonglong)DAT_182671c54;
  uVar34 = (ulonglong)uVar13;
  uVar27 = DAT_182671c54 << 0x10 | DAT_182671c54 >> 0x10;
  uVar14 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar13 ^ 0x5f0e7170) + (longlong)DAT_182672170) ^
           DAT_182671c64;
  uVar15 = *(uint *)(&DAT_182613220 + DAT_182672170) ^ DAT_182671c58;
  uVar41 = (ulonglong)uVar27;
  uVar21 = CONCAT44(DAT_182671d24,DAT_182671d24);
  DAT_182671c68 = uVar13;
  DAT_182671c74 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       ((ulonglong)(DAT_182671ef0 >> 0x16) | (ulonglong)DAT_182671ef0 << 10) ^
       *(ulonglong *)(DAT_182671c40 + -0xc18) >> 0x16 ^ uVar21;
  uVar24 = CONCAT44(uVar5,uVar5);
  bVar38 = (byte)DAT_182671c58;
  uVar28 = *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xfc04d1f7));
  *(ulonglong *)(lVar2 + -0x888) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0xc18)) - *(longlong *)(lVar2 + -0x680);
  uVar28 = (uVar28 ^ uVar24) << ((bVar38 ^ 0x96) & 0x3f);
  uVar32 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar2 + -0xa08) = uVar28 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671f9c;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x5f0e7188)) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xddeff914)) ^ uVar21 | uVar28) ^ uVar32;
  *(ulonglong *)(lVar2 + -0x110) =
       0x9b61f853bc6e4c4 >> (((byte)uVar7 ^ *(byte *)(lVar2 + -0xb18)) & 0x3f);
  uVar7 = DAT_182671ca8;
  uVar25 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *(ulonglong *)(lVar2 + -0xbd8) =
       (CONCAT44(DAT_182671f34,DAT_182671f34) ^ *(ulonglong *)(lVar2 + -0xa50)) -
       (uVar32 ^ *(ulonglong *)(lVar2 + -0xf0)) ^ uVar25;
  uVar10 = DAT_182671f00;
  *(ulonglong *)(lVar2 + -0x960) =
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0xa78)) +
       (CONCAT44(uVar19,uVar27) ^ 0xe5d6cd62138133dd);
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar36 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  bVar26 = (byte)(uVar4 >> 0x10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x5f0e7de8)) =
       uVar36 ^ uVar33 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0xc38) ^ *(ulonglong *)(lVar2 + -0xf0);
  uVar28 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xddeff9ec)) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xc90)) >> ((bVar26 ^ 0xc1) & 0x3f) ^ uVar28;
  uVar10 = DAT_182671f40;
  uVar33 = (uVar33 ^ *(ulonglong *)(lVar2 + -0xc90)) << ((bVar38 ^ 0xae) & 0x3f);
  *(ulonglong *)(lVar2 + -0xda8) = uVar33 ^ CONCAT44(DAT_182671e08,DAT_182671e08);
  uVar7 = DAT_182671d94;
  lVar3 = DAT_182671c40;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar33 = uVar28 ^ *(ulonglong *)(lVar2 + -0x5e8) | uVar33;
  *(ulonglong *)(lVar2 + -0xd88) = uVar33 ^ uVar23;
  uVar22 = CONCAT44(uVar7,uVar7);
  uVar28 = *(ulonglong *)(lVar3 + -0xbd8);
  uVar37 = (uVar36 ^ *(ulonglong *)(lVar3 + -0xc38)) - uVar33 ^ uVar22;
  uVar33 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar3 + -0x680) = uVar37;
  uVar7 = DAT_182671e4c;
  uVar36 = CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar29 = CONCAT44(DAT_182671f8c,DAT_182671f8c) ^ uVar28 ^ uVar33 ^ uVar25 ^
           *(ulonglong *)(lVar3 + -0x228);
  *(ulonglong *)(lVar3 + -0xc18) = uVar29;
  uVar29 = uVar29 ^ uVar33;
  uVar33 = uVar29 >> ((bVar26 ^ 0xe3) & 0x3f);
  local_c8 = (byte)uVar19;
  *(ulonglong *)(lVar3 + -0x888) = uVar33 ^ uVar36;
  uVar39 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar29 << ((local_c8 ^ 0x70) & 0x3f) ^ uVar39;
  lVar2 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar33 = *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x5f0e7468)) ^ uVar39 | uVar33;
  uVar29 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  uVar36 = uVar33 ^ uVar30;
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar36;
  uVar7 = DAT_182671d0c;
  *(ulonglong *)(lVar2 + -0xb18) = (uVar28 ^ uVar25) - uVar33 ^ uVar29;
  uVar10 = DAT_182671f08;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar37 = uVar28 ^ uVar30 ^ uVar22 ^ uVar36 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x110) = uVar37;
  uVar30 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x5f0e7b28)) =
       (uVar28 ^ uVar37) >> ((bVar26 ^ 0xf6) & 0x3f) ^ uVar30;
  lVar2 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (*(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0xfc04dcff)) ^ uVar28) <<
       (((byte)uVar4 ^ 0x23) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xddeff564)) =
       CONCAT44(DAT_182671c58,uVar13) ^ 0xe8caa3a44c566814 |
       CONCAT44(uVar13,uVar27) ^ 0x6835a2cf208fffd9;
  uVar7 = DAT_182671cd4;
  uVar30 = uVar30 ^ *(ulonglong *)(lVar2 + -0xa50);
  uVar36 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar33 = *(ulonglong *)(lVar2 - (uVar34 ^ 0x5f0e7b00)) ^ uVar37 | uVar30;
  *(ulonglong *)(lVar2 + -0xf0) = uVar33 ^ uVar36;
  uVar25 = CONCAT44(uVar7,uVar7);
  uVar28 = (*(ulonglong *)(lVar2 - (uVar42 ^ 0x40bf763c)) ^ uVar22) -
           (CONCAT44(uVar4,uVar13) ^ 0xba89d38eabdf3c81);
  *(ulonglong *)(lVar2 + -0x5e8) = (uVar36 ^ *(ulonglong *)(lVar2 + -0xf0)) >> ((byte)uVar30 & 0x3f)
  ;
  uVar7 = DAT_182671f7c;
  *(ulonglong *)(lVar2 + -0xc90) = uVar28 ^ uVar25;
  uVar40 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xda8) = uVar28 - uVar33 ^ uVar40;
  puVar17 = (ulonglong *)(lVar2 - (uVar41 ^ 0xfc04dd1f));
  uVar43 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar33 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *(ulonglong *)(lVar2 + -0xc38) =
       (uVar36 ^ *puVar17) - (CONCAT44(DAT_182671c58,DAT_182671c58) ^ 0x5dbf2c7b28f287a1) ^ uVar43;
  uVar19 = DAT_182671c80;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xe1b0fd6c)) =
       uVar33 ^ uVar29 ^ uVar23 ^ *(ulonglong *)(lVar2 + -0xd88) ^ *(ulonglong *)(lVar2 + -0xb18);
  uVar16 = DAT_182671c90;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar2 + -0x228);
  uVar30 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar28 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0xc18) = uVar33 >> (((byte)uVar19 ^ 0x29) & 0x3f) ^ uVar30;
  uVar6 = DAT_182671c7c;
  uVar5 = DAT_182671c60;
  uVar22 = CONCAT44(DAT_182671db0,DAT_182671db0);
  bVar12 = (byte)DAT_182671c48;
  local_res18 = (byte)uVar13;
  uVar36 = CONCAT44(DAT_182671c7c,uVar27);
  *(ulonglong *)(lVar2 + -0x888) = uVar33 << ((local_res18 ^ 0x67) & 0x3f) ^ uVar22;
  uVar27 = DAT_182671c70;
  uVar33 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xfc04d8ff)) =
       (uVar36 ^ 0x9b861119cadcf0c) >> ((bVar12 ^ 0x67) & 0x3f);
  uVar7 = DAT_182671c78;
  uVar19 = DAT_182671c5c;
  uVar23 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0xff3df177)) ^ uVar22 |
       *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0x3518b3eb)) ^ uVar30) ^ uVar23;
  *(ulonglong *)(lVar2 + -0xa08) =
       CONCAT44(uVar7,uVar19) ^ 0x3b428bae6752d20d | uVar25 ^ *(ulonglong *)(lVar2 + -0xc90);
  uVar25 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar33 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c8c ^ 0xddeffd14)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0xb18)) - (CONCAT44(uVar27,uVar7) ^ 0x45dfac4616af7e9b) ^
       uVar25;
  uVar8 = DAT_182671c84;
  lVar3 = DAT_182671c40;
  *(uint *)(lVar2 - (uVar33 ^ 0x443549aa)) = (uVar5 ^ 0xf7c4c4df) * (DAT_182671c84 ^ 0x31854c89);
  uVar36 = CONCAT44(DAT_182671f50,DAT_182671f50);
  puVar20 = (ulonglong *)(lVar3 - (uVar34 ^ 0x5f0e7818));
  *puVar20 = (*(ulonglong *)(lVar3 + -0x110) ^ uVar25) - (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar23) ^
             uVar36;
  uVar19 = DAT_182671d24;
  uVar33 = (*(ulonglong *)(lVar3 - (uVar31 ^ 0xddeff7dc)) ^ uVar23) +
           (CONCAT44(uVar6,DAT_182671c50) ^ 0xda169f7a1efafeb9) ^ uVar22;
  *(ulonglong *)(lVar3 + -0xa78) = uVar33;
  uVar29 = uVar40 ^ uVar21 ^ *(ulonglong *)(lVar3 + -0xda8) ^ uVar33 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x680) = uVar29;
  uVar10 = DAT_182671e24;
  *(ulonglong *)(lVar3 + -0xa50) =
       ((ulonglong)uVar19 << 0x1b | (ulonglong)(uVar19 >> 5)) ^ uVar29 >> 5 ^ uVar39;
  uVar33 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0x580000cf)) =
       (uVar21 ^ uVar29) << 0x3b ^ uVar33;
  uVar11 = DAT_182671f4c;
  uVar33 = uVar39 ^ *(ulonglong *)(lVar3 + -0xa50) | *(ulonglong *)(lVar3 + -0x5e8) ^ uVar33;
  *(ulonglong *)(lVar3 + -0xf0) = uVar33 ^ uVar24;
  uVar10 = DAT_182671e60;
  lVar2 = DAT_182671c40;
  uVar21 = CONCAT44(uVar11,uVar11);
  puVar18 = (ulonglong *)(DAT_182671c40 + -0x960);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) - uVar33 ^ uVar21;
  uVar33 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x228) = uVar43 ^ *puVar18 ^ *puVar1 ^ uVar33 ^ uVar36;
  uVar10 = DAT_182671f48;
  uVar19 = DAT_182671c80;
  puVar18 = (ulonglong *)(lVar2 - ((ulonglong)DAT_182671c80 ^ 0xbbdff270));
  *(ulonglong *)(lVar2 + -0x510) =
       (CONCAT44(uVar4,DAT_182671c8c) ^ 0x4bc506ceb08301ff) + (*puVar18 ^ uVar22);
  uVar22 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0x98b9a927)) ^ uVar33) >> (((byte)uVar7 ^ 0x10) & 0x3f) ^
       uVar22;
  bVar12 = (byte)DAT_182671c7c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0xbbdff200)) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0x40bf704c)) ^ uVar24) -
       (*(ulonglong *)(lVar2 + -0xc18) ^ uVar30);
  uVar28 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *(ulonglong *)(lVar2 + -0xc90) =
       (*(ulonglong *)(lVar2 + -0x228) ^ uVar33) << ((bVar12 ^ 0x1b) & 0x3f) ^ uVar28;
  uVar6 = DAT_182671c8c;
  uVar19 = DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0xb18) =
       (CONCAT44(DAT_182671c6c,DAT_182671c48) ^ 0x88f3ff7b5a92d9dd) >>
       ((byte)*(undefined8 *)(lVar2 + -0x510) & 0x3f);
  uVar7 = DAT_182671ecc;
  uVar9 = DAT_182671c94;
  uVar29 = CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar34 = (ulonglong)DAT_182671c94;
  uVar28 = *(ulonglong *)(lVar2 - (uVar35 ^ 0xe1b0f3d4)) ^ uVar28 |
           *(ulonglong *)(lVar2 + -0x888) ^ uVar22;
  uVar33 = uVar28 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x110) = uVar33;
  uVar10 = DAT_182671f68;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xbd8) = (*(ulonglong *)(lVar2 + -0x960) ^ uVar36) - uVar28 ^ uVar22;
  uVar36 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x680) =
       *(ulonglong *)(lVar2 + -0xd88) ^ uVar33 ^ uVar36 ^ uVar29 ^ uVar21;
  lVar2 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671d68,DAT_182671d68);
  bVar12 = (byte)uVar8;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0xfbcf5d28)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xff3dff7f)) ^ uVar36) >> ((bVar12 ^ 0x57) & 0x3f)
       ^ uVar23;
  uVar7 = DAT_182671d30;
  *(ulonglong *)(lVar2 + -0x5e8) =
       CONCAT44(DAT_182671c4c,uVar13) ^ 0x1946d96d051233db |
       CONCAT44(uVar6,DAT_182671c4c) ^ 0x793cef55b3fa5b48;
  uVar28 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xda8) = (*(ulonglong *)(lVar2 + -0x680) ^ uVar36) << 0x29 ^ uVar28;
  uVar33 = CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar29 = CONCAT44(DAT_182671f64,DAT_182671f64);
  *(ulonglong *)(lVar2 + -0xc38) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xddeff1ac)) ^ uVar28 |
       uVar23 ^ *(ulonglong *)(lVar2 + -0xa50)) ^ uVar33;
  uVar6 = DAT_182671c70;
  *(ulonglong *)(lVar2 + -0xa78) =
       (*(ulonglong *)(lVar2 + -0xd88) ^ uVar21) -
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0xe1b0f37c)) ^ uVar33) ^ uVar29;
  uVar36 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xe1b0f35c)) =
       uVar24 ^ *puVar17 ^ *(ulonglong *)(lVar2 + -0xbd8) ^ uVar36 ^ uVar22;
  uVar30 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(lVar2 + -0xa08) =
       (*(ulonglong *)(lVar2 + -0xc18) ^ uVar36) >> (((byte)uVar6 ^ 0xdb) & 0x3f) ^ uVar30;
  uVar28 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x40bf7294)) =
       (*(ulonglong *)(lVar2 + -0xc18) ^ uVar36) << ((bVar12 ^ 0x58) & 0x3f) ^ uVar28;
  lVar2 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x40bf7ba4)) =
       (*(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar28 |
       *(ulonglong *)(DAT_182671c40 + -0xa08) ^ uVar30) ^ uVar21;
  uVar24 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(lVar2 + -0x510) =
       (CONCAT44(uVar9,uVar16) ^ 0xe0803878f032486c) >> ((bVar38 ^ 0xa5) & 0x3f);
  uVar7 = DAT_182671f3c;
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar22) - (*(ulonglong *)(lVar2 + -0xb18) ^ uVar21) ^
       uVar24;
  uVar36 = CONCAT44(uVar7,uVar7);
  uVar28 = *(ulonglong *)(lVar2 + -0xb18) ^ *(ulonglong *)(lVar2 + -0xa78) ^ uVar36 ^ uVar21 ^
           uVar29;
  uVar23 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar2 + -0xc90) = uVar28;
  uVar16 = DAT_182671c90 ^ 0xaa55fc62;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c48 ^ 0x60308020)) =
       (uVar28 ^ uVar36) >> ((bVar26 ^ 0xdb) & 0x3f) ^ uVar23;
  uVar7 = DAT_182671ca0;
  *(uint *)(lVar2 + -0x9dc) = uVar16 + (DAT_182671c5c ^ 0x20b99013);
  uVar10 = DAT_182671d20;
  uVar21 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c6c ^ 0x443542be)) ^ uVar36) <<
           (((byte)uVar4 ^ 8) & 0x3f);
  uVar28 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0x110) = uVar21 ^ CONCAT44(uVar7,uVar7);
  uVar36 = (ulonglong)DAT_182671cfc;
  uVar22 = CONCAT44(uVar10,uVar10);
  uVar34 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x5275de8)) = (uVar21 | uVar23 ^ *puVar20) ^ uVar22;
  uVar21 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar28 = (*(ulonglong *)(lVar2 + -0xa78) ^ uVar29) - (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar22);
  *(ulonglong *)(lVar2 + -0x680) = uVar28 ^ uVar21;
  *(ulonglong *)(lVar2 + -0xa50) = uVar28 ^ *puVar18 ^ uVar29;
  puVar18 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x3518b3cb));
  uVar29 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar33 = *puVar18 ^ *(ulonglong *)(lVar2 + -0x888) ^ uVar34 ^ uVar24 ^ uVar33;
  *(ulonglong *)(lVar2 + -0xda8) = uVar33;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c7c ^ 0x5275588)) =
       (uVar33 >> 0x20 ^ uVar36) >> 0x19 ^ uVar29;
  uVar7 = DAT_182671cac;
  uVar28 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x5800088f)) ^ uVar34) <<
           (((byte)DAT_182671c78 ^ 0x32) & 0x3f);
  *(ulonglong *)(lVar2 + -0xf0) = uVar28 ^ CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar4 = DAT_182671e18;
  uVar10 = DAT_182671d78;
  lVar3 = DAT_182671c40;
  uVar28 = *(ulonglong *)(lVar2 + -0xd88) ^ uVar29 | uVar28;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xc18) = uVar28 ^ uVar33;
  uVar42 = CONCAT44(uVar10,uVar10);
  uVar36 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 + -0x228) = (*(ulonglong *)(lVar3 + -0x888) ^ uVar24) - uVar28 ^ uVar42;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar8 ^ 0x60b089a9)) = **(undefined1 **)(lVar3 + -0x370);
  uVar29 = CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar28 = *(ulonglong *)(lVar3 + -0xc18) ^ *(ulonglong *)(lVar3 + -0x680) ^ uVar36 ^ uVar33 ^
           uVar21;
  *(ulonglong *)(lVar3 + -0x510) = uVar28;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x443545f6)) =
       ((ulonglong)uVar4 << 0x12 | (ulonglong)(uVar4 >> 0xe)) ^ uVar28 >> 0xe ^ uVar29;
  uVar10 = DAT_182671fb0;
  *(ulonglong *)(lVar3 + -0xb18) =
       (CONCAT44(uVar5,DAT_182671c58) ^ 0x2ea2ca4cde7334c5) +
       (*(ulonglong *)(lVar3 + -0xa08) ^ uVar30);
  uVar7 = DAT_182671d1c;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar33 = (*(ulonglong *)(lVar3 + -0x510) ^ uVar36) << ((bVar38 ^ 0x8e) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc90) = uVar33 ^ uVar23;
  uVar33 = uVar29 ^ *(ulonglong *)(lVar3 + -0xbd8) | uVar33;
  uVar34 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x110) = uVar33 ^ uVar25;
  uVar21 = (*(ulonglong *)(lVar3 + -0x680) ^ uVar21) - (CONCAT44(uVar19,uVar5) ^ 0x3865eabf7474c5d0)
  ;
  *(ulonglong *)(lVar3 + -0x960) = uVar21 ^ uVar34;
  uVar11 = DAT_182671f20;
  uVar28 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0xfc04d17f)) ^ uVar23) >>
       (((byte)DAT_182671c8c ^ 0xd) & 0x3f);
  uVar4 = DAT_182671c70;
  uVar23 = (ulonglong)DAT_182671c70;
  uVar19 = DAT_182671c70 << 0x10;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x60308310)) = uVar21 - uVar33 ^ CONCAT44(uVar11,uVar11);
  uVar7 = DAT_182671e2c;
  lVar2 = DAT_182671c40;
  uVar19 = (uVar19 | uVar4 & 0xff00) << 8 | uVar4 >> 8 & 0xff00 | DAT_182671c70 >> 0x18;
  uVar21 = (ulonglong)uVar19;
  DAT_182671c58 = uVar19;
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0x3518bee3)) ^ uVar25 |
       *(ulonglong *)(DAT_182671c40 + -0x510) ^ uVar36;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0xf3bf1925)) ^ uVar25) -
       (CONCAT44(uVar27,uVar19) ^ 0xaec5bfafcf56c063) ^ uVar33;
  *(ulonglong *)(lVar2 + -0xd88) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x3518b42b)) ^ *(ulonglong *)(lVar2 + -0x960) ^
       uVar34 ^ uVar29;
  uVar36 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar22 = uVar37 ^ *(ulonglong *)(lVar2 + -0x228) ^ *(ulonglong *)(lVar2 + -0x5e8) ^ uVar42 ^
           uVar22;
  *(ulonglong *)(lVar2 + -0xf0) = uVar22;
  uVar7 = DAT_182671e50;
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0xf3bf18c5)) ^ uVar37) >> (((byte)uVar4 ^ 0xe3) & 0x3f) ^
       uVar36;
  uVar28 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xf3bf142d)) =
       (uVar37 ^ uVar22) << (((byte)uVar4 ^ 0xc3) & 0x3f) ^ uVar28;
  uVar29 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar2 + -0xa08) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xc18) | uVar36 ^ *(ulonglong *)(lVar2 + -0x888)) ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x3518b4eb)) =
       (*(ulonglong *)(lVar2 + -0xda8) ^ uVar33) >>
       ((*(byte *)(lVar2 - ((ulonglong)uVar19 ^ 0xf3bf1265)) ^ (byte)uVar11) & 0x3f);
  uVar10 = DAT_182671d6c;
  uVar28 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar2 + -0xa78) = (*(ulonglong *)(lVar2 + -0xa08) ^ uVar29) << 0x31;
  *(ulonglong *)(lVar2 + -0x680) =
       (*(ulonglong *)(lVar2 + -0x228) ^ uVar42) - (CONCAT44(uVar19,uVar4) ^ 0xeebf44f25d5548ee) ^
       uVar28;
  uVar7 = DAT_182671cdc;
  *(ulonglong *)(lVar2 + -0xc90) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0xf3bf1eb5)) ^ uVar28) -
       (*(ulonglong *)(lVar2 + -0xa08) ^ uVar29) ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671eb8;
  uVar28 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xe1b0fa54)) =
       (*(ulonglong *)(lVar2 + -0xa08) ^ uVar29) + (CONCAT44(uVar19,uVar4) ^ 0x75d33c433bb342fb) ^
       uVar28;
  *puVar18 = uVar32 ^ *(ulonglong *)(lVar2 + -0x510) ^ uVar28 ^ CONCAT44(uVar11,uVar11) ^
             *(ulonglong *)(lVar2 + -0xa50);
  uVar7 = DAT_182671ca4;
  uVar32 = uVar32 ^ *(ulonglong *)(lVar2 + -0xc38);
  *(ulonglong *)(lVar2 + -0x110) =
       uVar32 >> (((byte)DAT_182671c88 ^ 7) & 0x3f) ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c4c ^ 0x52753d8)) =
       CONCAT44(uVar7,uVar7) ^ uVar32 << 0x20;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar14;
  return;
}



############ FUN_ 180fbb7f0 size=5054 ############

void FUN_180fbb7f0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  byte bVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_d8;
  byte local_58;
  
  uVar15 = DAT_182671f6c;
  uVar9 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c88;
  uVar21 = DAT_182671c68 + DAT_182671c88;
  uVar31 = (DAT_182671c74 << 0x10 | DAT_182671c74 & 0xff00) << 8 | DAT_182671c74 >> 8 & 0xff00 |
           DAT_182671c74 >> 0x18;
  uVar27 = *(uint *)(&DAT_182613218 + DAT_1826722c4) ^ DAT_182671c68;
  uVar18 = *(uint *)(&DAT_182613220 + DAT_1826722c4) ^ DAT_182671c88;
  uVar42 = (ulonglong)uVar21;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x888);
  uVar29 = CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar33 = CONCAT44(DAT_182671cec,DAT_182671cec);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xc90);
  DAT_182671c70 = uVar21;
  DAT_182671c78 = uVar31;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x84c4a99c)) ^
       CONCAT44(DAT_182671cb0,DAT_182671cb0)) - (*puVar1 ^ uVar29) ^ uVar33;
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar25 = CONCAT44(DAT_182671f28,DAT_182671f28);
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x84c4a524));
  *puVar23 = *puVar2 ^ uVar25 ^ uVar34 ^ *puVar1 ^ uVar29;
  *(uint *)(lVar3 + -0x76c) = *(uint *)(lVar3 + -0x58c) | 0x2ea6e5a;
  uVar15 = DAT_182671f40;
  uVar36 = (ulonglong)uVar31;
  puVar39 = (ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xfe08de1f));
  uVar30 = (*puVar39 ^ uVar34) >> (((byte)uVar21 ^ 0xa2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x960) = uVar30 ^ CONCAT44(DAT_182671e7c,DAT_182671e7c);
  uVar16 = DAT_182671df8;
  uVar29 = CONCAT44(uVar15,uVar15);
  bVar19 = (byte)DAT_182671c88;
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 + -0xda8) ^ uVar34) << ((bVar19 ^ 0x9e) & 0x3f) ^ uVar29;
  uVar5 = DAT_182671d98;
  lVar3 = DAT_182671c40;
  uVar37 = CONCAT44(uVar16,uVar16);
  uVar35 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xefea5aa4)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xb7d30576)) ^ uVar29 | uVar30) ^ uVar37;
  uVar15 = DAT_182671dc8;
  puVar1 = (ulonglong *)(lVar3 + -0x110);
  uVar22 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *puVar1 = (*puVar2 ^ uVar25) - (uVar37 ^ *(ulonglong *)(lVar3 + -0x228)) ^ uVar22;
  uVar17 = DAT_182671ea0;
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar25 = (ulonglong)DAT_182671c68;
  uVar29 = *(ulonglong *)(lVar3 + -0xc38) ^ uVar34;
  *(ulonglong *)(lVar3 + -0x888) = uVar29 >> ((byte)uVar29 & 0x3f);
  lVar4 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *puVar23 = *(ulonglong *)(lVar3 - (uVar25 ^ 0x94da5bd8)) ^ CONCAT44(uVar17,uVar17) ^ uVar35 ^
             *(ulonglong *)(lVar3 + -0xa78) ^ uVar33;
  uVar29 = ((ulonglong)uVar5 << 0x14 | (ulonglong)(uVar5 >> 0xc)) ^
           *(ulonglong *)(lVar4 + -0xda8) >> 0xc;
  *(ulonglong *)(lVar4 + -0x960) = uVar29 ^ uVar30;
  uVar15 = DAT_182671d9c;
  lVar3 = DAT_182671c40;
  uVar26 = CONCAT44(uVar21,DAT_182671c68);
  uVar25 = (*puVar39 ^ uVar35) << (((byte)DAT_182671c68 ^ 0x34) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar25 ^ CONCAT44(DAT_182671d04,DAT_182671d04);
  uVar25 = uVar25 | uVar29;
  uVar24 = CONCAT44(uVar15,uVar15);
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0xefea54b4));
  *puVar2 = uVar25 ^ uVar24;
  *puVar23 = uVar25 << ((*(byte *)(lVar3 - (uVar36 ^ 0xb7d30ad6)) ^ (byte)uVar16) & 0x3f);
  uVar5 = DAT_182671e08;
  uVar25 = *puVar2;
  uVar40 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  uVar30 = (ulonglong)DAT_182671e08;
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar33) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0xefea541c)) ^ uVar24) ^ uVar40;
  uVar11 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  uVar29 = *puVar1;
  uVar25 = uVar25 ^ uVar29 ^ CONCAT44(uVar5,uVar5) ^ uVar24 ^ uVar22;
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar25;
  uVar15 = DAT_182671dbc;
  lVar4 = DAT_182671c40;
  uVar32 = ((ulonglong)(uVar5 >> 0x19) | uVar30 << 7) ^ uVar25 >> 0x19;
  *(ulonglong *)(lVar3 + -0xd88) = uVar32 ^ CONCAT44(DAT_182671eec,DAT_182671eec);
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar30 = (uVar25 ^ CONCAT44(uVar5,uVar5)) << (((byte)uVar11 ^ 0x90) & 0x3f);
  uVar25 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar4 + -0x960) = uVar30 ^ uVar35;
  uVar15 = DAT_182671f58;
  uVar10 = DAT_182671c68;
  uVar32 = uVar32 | uVar30;
  *(ulonglong *)(lVar4 + -0xc38) = uVar32 ^ uVar25;
  uVar16 = DAT_182671ec0;
  uVar12 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar25 = (uVar29 ^ uVar22) - (CONCAT44(uVar10,DAT_182671c74) ^ 0xe88af49171b3411f);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar25 ^ uVar30;
  uVar15 = DAT_182671d6c;
  uVar29 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0xa78) = uVar25 - uVar32 ^ uVar29;
  *puVar2 = uVar32 - (uVar26 ^ 0xda5dcf3acf24d5b1) ^ uVar30;
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0xda8) =
       *(ulonglong *)(lVar3 - (uVar42 ^ 0x84c4a004)) ^ uVar22 ^ uVar40 ^ uVar37 ^
       *(ulonglong *)(lVar3 + -0x228);
  *(undefined1 *)(lVar3 - (uVar36 ^ 0xb7d30a17)) =
       **(undefined1 **)(lVar3 - ((ulonglong)DAT_182671c68 ^ 0x94da5370));
  uVar26 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xefea5524)) ^ uVar22) >> (((byte)uVar11 ^ 0x96) & 0x3f) ^
       uVar26;
  *puVar1 = (uVar35 ^ *(ulonglong *)(lVar3 + -0x960)) << 9;
  lVar3 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xefea5354)) =
       (*(ulonglong *)(DAT_182671c40 + -0xda8) ^ uVar22) << ((bVar19 ^ 0x93) & 0x3f) ^ uVar25;
  uVar7 = DAT_182671c74;
  uVar37 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar22 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c74 ^ 0xfe08d86f)) ^ uVar25 |
           *(ulonglong *)(lVar3 + -0xd88) ^ uVar26;
  uVar25 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar3 + -0xc38) = uVar22 ^ uVar37;
  uVar15 = DAT_182671f5c;
  uVar5 = DAT_182671c68;
  uVar35 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0xefea5004)) ^ uVar40) -
           (CONCAT44(DAT_182671c88,uVar11) ^ 0x61db1c127f381022);
  *(ulonglong *)(lVar3 + -0x228) = uVar35 ^ uVar25;
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xfe08d2a7)) = uVar35 - uVar22 ^ uVar32;
  uVar15 = DAT_182671da0;
  uVar35 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar25 = (CONCAT44(uVar11,uVar5) ^ 0x7864f7c19a71ad03) + (*puVar23 ^ uVar37) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x960) = uVar25;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar26 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar25 = uVar37 ^ uVar25 ^ uVar35 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0xa78);
  *(ulonglong *)(lVar3 + -0xda8) = uVar25;
  uVar22 = (uVar37 ^ uVar25) >> (((byte)uVar21 ^ 0x89) & 0x3f);
  puVar23 = (ulonglong *)(lVar3 - (uVar36 ^ 0xb7d30556));
  *(ulonglong *)(lVar3 + -0xd88) = uVar22 ^ uVar26;
  uVar26 = CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar37 = (uVar37 ^ *puVar23) << (((byte)uVar5 ^ 0x3b) & 0x3f);
  uVar35 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar37 ^ uVar26;
  uVar5 = DAT_182671c80;
  uVar6 = DAT_182671c5c;
  uVar25 = (ulonglong)DAT_182671c4c;
  uVar37 = uVar37 | uVar22;
  *(ulonglong *)(lVar3 + -0x888) = uVar37 ^ uVar35;
  uVar15 = DAT_182671eb0;
  *(undefined1 *)(lVar3 + -0x6b9) = **(undefined1 **)(lVar3 - (uVar25 ^ 0xfdfd5957));
  lVar4 = DAT_182671c40;
  uVar38 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x228) = (uVar29 ^ *(ulonglong *)(lVar3 + -0xa78)) - uVar37 ^ uVar38;
  uVar25 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar3 + -0xc38) = (uVar32 ^ *puVar1) << ((byte)(uVar32 ^ *puVar1) & 0x3f);
  uVar29 = (ulonglong)DAT_182671c7c;
  uVar30 = *(ulonglong *)(lVar3 - (uVar25 ^ 0x5b316650)) ^
           *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xfe08df27)) ^ uVar32 ^ uVar30;
  uVar25 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar3 + -0x960) = uVar30 ^ uVar34;
  uVar15 = DAT_182671d7c;
  *(ulonglong *)(lVar4 + -0xda8) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0x8c58e38f)) ^ uVar34) >> (((byte)uVar7 ^ 0x92) & 0x3f) ^
       uVar25;
  uVar7 = DAT_182671c94;
  lVar3 = DAT_182671c40;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0xd9d94ba2)) =
       uVar30 << (((byte)DAT_182671c48 ^ 0x1b) & 0x3f) ^ uVar37;
  uVar29 = uVar37 ^ *(ulonglong *)(lVar3 + -0xd88) | uVar25 ^ *puVar23;
  uVar22 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar25 = *puVar1;
  uVar30 = uVar29 ^ uVar22;
  uVar40 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar3 + -0xa78) = uVar30;
  uVar30 = uVar40 ^ uVar22 ^ uVar38 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0x228);
  *puVar2 = uVar30;
  *(ulonglong *)(lVar3 + -0xc38) = (uVar32 ^ uVar25) - uVar29 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xda8) =
       CONCAT44(uVar10,uVar6) ^ uVar26 ^ *(ulonglong *)(lVar3 + -0xbd8) ^ 0xc9027fdbcea14d1;
  uVar22 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar3 + -0xd88) = (uVar30 ^ uVar40) >> ((bVar19 ^ 0x9b) & 0x3f) ^ uVar22;
  uVar15 = DAT_182671e50;
  uVar26 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c54 ^ 0x4067304b));
  puVar41 = (ulonglong *)(lVar3 - (uVar28 ^ 0xefea5504));
  *puVar23 = (uVar30 ^ uVar40) << (((byte)uVar5 ^ 3) & 0x3f) ^ uVar26;
  uVar8 = DAT_182671c60;
  uVar28 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0xa78) = (uVar22 ^ *puVar41 | uVar26 ^ *puVar1) ^ uVar28;
  lVar4 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x84c4a354)) =
       (CONCAT44(uVar21,uVar31) ^ 0x73d30ea607e8eccd) + (CONCAT44(uVar7,uVar8) ^ 0xacd65f6295f0db2d)
  ;
  uVar43 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  puVar39 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x2626b47d));
  uVar30 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *puVar39 = (uVar38 ^ *(ulonglong *)(lVar3 + -0x228)) -
             (*(ulonglong *)(lVar3 - (uVar25 ^ 0x8002ec7c)) ^ uVar28) ^ uVar43;
  uVar5 = DAT_182671c50;
  uVar29 = uVar30 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0xc38) ^ uVar35 ^
           *(ulonglong *)(lVar4 + -0x888);
  bVar19 = (byte)uVar8;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c50 ^ 0x5b316bd0)) = uVar29;
  uVar35 = CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar25 = CONCAT44(DAT_182671c90,DAT_182671c8c);
  *(ulonglong *)(lVar4 + -0xbd8) = (uVar29 ^ uVar30) >> ((bVar19 ^ 2) & 0x3f) ^ uVar35;
  lVar3 = DAT_182671c40;
  bVar20 = (byte)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 + -0x228) = (uVar26 ^ *puVar1) - (uVar25 ^ 0x690d91d8e10cefcd);
  uVar25 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xb7d30076)) =
       (*puVar2 ^ uVar30) << ((bVar20 ^ 0xc1) & 0x3f) ^ uVar37;
  uVar15 = DAT_182671cfc;
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *puVar23 = (*(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xfdfd5427)) ^ uVar35 |
             uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0x888)) ^ uVar29;
  uVar35 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x228) =
       uVar22 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0xd88) ^ *(ulonglong *)(lVar3 + -0x888);
  *(uint *)(lVar3 + -0x670) = (DAT_182671c74 ^ 0xab907bab) >> ((bVar19 ^ 0x38) & 0x1f);
  uVar25 = *puVar1;
  uVar26 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar3 + -0xbd8) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0xc38)) - (uVar29 ^ uVar25) ^ uVar35;
  uVar22 = uVar26 ^ uVar29 ^ uVar43 ^ *puVar39 ^ *puVar1;
  *(ulonglong *)(lVar3 + -0xd88) = uVar22;
  *(ulonglong *)(lVar3 + -0x888) = (*puVar2 ^ uVar30) >> ((byte)(uVar29 ^ uVar25) & 0x3f);
  uVar7 = DAT_182671c5c;
  local_d8 = (byte)(uVar9 >> 0x18);
  uVar32 = (ulonglong)DAT_182671c5c;
  uVar37 = (ulonglong)DAT_182671c54;
  uVar29 = (uVar26 ^ *puVar41) >> ((local_d8 ^ 0xca) & 0x3f);
  *(ulonglong *)(lVar3 + -0x228) = uVar29 ^ CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *(ulonglong *)(lVar3 + -0xc38) =
       *(ulonglong *)(lVar3 - (uVar42 ^ 0x84c4a1ec)) ^ uVar34 ^ 0x1c376904fc9420b9;
  uVar15 = DAT_182671df4;
  uVar30 = (uVar26 ^ uVar22) << (((byte)DAT_182671c68 ^ 0xc) & 0x3f);
  uVar25 = (ulonglong)DAT_182671c80;
  *puVar2 = uVar30 ^ uVar24;
  uVar29 = uVar29 | uVar30;
  uVar22 = CONCAT44(uVar15,uVar15);
  *puVar1 = uVar29 ^ uVar22;
  uVar15 = DAT_182671f30;
  *(undefined1 *)(lVar3 + -0x2e9) = **(undefined1 **)(lVar3 - (uVar25 ^ 0xd9d94502));
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x8002ebac)) ^ uVar43) - uVar29 ^ uVar36;
  uVar25 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0x960) = ((ulonglong)uVar7 ^ 0xc7842600) >> 6;
  uVar14 = DAT_182671c84;
  uVar26 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar30 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0x40673d63)) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0x8c58e137)) ^ uVar26 ^ uVar35 ^ uVar28 ^
       *(ulonglong *)(lVar3 + -0xa78);
  uVar15 = DAT_182671d24;
  uVar26 = uVar26 ^ *(ulonglong *)(lVar3 + -0xc38);
  uVar25 = uVar26 >> ((bVar19 ^ 0x13) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd88) = uVar25 ^ CONCAT44(DAT_182671f10,DAT_182671f10);
  uVar29 = CONCAT44(uVar15,uVar15);
  *puVar2 = uVar26 << (((byte)uVar14 ^ 0xde) & 0x3f) ^ uVar29;
  uVar16 = DAT_182671f54;
  lVar4 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar25 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x462ad549)) ^ uVar29 | uVar25;
  uVar29 = uVar25 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x228) = uVar29;
  uVar15 = DAT_182671da8;
  uVar30 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0xda8) = (uVar35 ^ *(ulonglong *)(lVar4 + -0xbd8)) - uVar25 ^ uVar30;
  uVar13 = DAT_182671c7c;
  lVar3 = DAT_182671c40;
  uVar25 = CONCAT44(uVar15,uVar15);
  uVar26 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  uVar29 = uVar25 ^ uVar28 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x888) ^ uVar29;
  *(ulonglong *)(lVar4 + -0x960) = uVar29;
  bVar19 = (byte)DAT_182671c58;
  *(ulonglong *)(lVar3 + -0xa78) = (uVar29 ^ uVar25) >> (((byte)uVar5 ^ 0x4e) & 0x3f) ^ uVar26;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c94 ^ 0xefea54b4)) =
       (uVar25 ^ uVar29) << ((bVar19 ^ 0xc9) & 0x3f) ^ uVar34;
  uVar9 = DAT_182671c64;
  uVar25 = *(ulonglong *)(lVar3 + -0x888);
  uVar28 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar3 + -0xd88) =
       CONCAT44(uVar6,uVar7) ^ uVar30 ^ *(ulonglong *)(lVar3 + -0xda8) ^ 0x1ed8dc61e52a347e;
  uVar35 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *puVar2 = (*(ulonglong *)(lVar3 + -0xc38) ^ uVar34 | uVar26 ^ *(ulonglong *)(lVar3 + -0xa78)) ^
            uVar35;
  uVar6 = DAT_182671c8c;
  *(ulonglong *)(lVar3 + -0xbd8) =
       CONCAT44(uVar21,uVar14) ^ CONCAT44(uVar31,DAT_182671c88) ^ 0xc7dbac6695224ee;
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x103c0bf3)) =
       (uVar36 ^ uVar25) - (CONCAT44(uVar10,uVar5) ^ 0xb414688541eb99fd) ^ uVar29;
  *(ulonglong *)(lVar3 + -0x960) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x5b316568)) ^ uVar29) -
       (CONCAT44(uVar11,uVar7) ^ 0xa5e49663c80ab8ff);
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x228)) - (uVar35 ^ *puVar2) ^
       CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar15 = DAT_182671e94;
  uVar5 = DAT_182671c48;
  uVar29 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 + -0xa78) =
       (CONCAT44(uVar10,uVar9) ^ 0x101c3b0acd51fe65) >> (((byte)uVar6 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x2626b5ed)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c4c ^ 0xfdfd536f)) ^ uVar35) -
       (CONCAT44(uVar8,uVar9) ^ 0xe64fcba1e5c037cd) ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671f64;
  uVar28 = (ulonglong)DAT_182671c68;
  uVar25 = *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xd9d9473a)) ^
           *(ulonglong *)(lVar3 - (uVar28 ^ 0x94da5da8)) ^ uVar30 ^ uVar22 ^ uVar33;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar25;
  uVar35 = CONCAT44(uVar15,uVar15);
  local_58 = (byte)uVar12;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x1a0ab888)) =
       ((ulonglong)(DAT_182671cec >> 0x10) | (ulonglong)DAT_182671cec << 0x10) ^ uVar25 >> 0x10 ^
       uVar35;
  uVar15 = DAT_182671e6c;
  uVar25 = (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar33) << ((local_58 ^ 0x87) & 0x3f);
  *(ulonglong *)(lVar3 + -0x960) = uVar25 ^ CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar29 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar3 + -0x228) = (uVar35 ^ *(ulonglong *)(lVar3 + -0x888) | uVar25) ^ uVar34;
  uVar25 = (uVar30 ^ *(ulonglong *)(lVar3 + -0xda8)) -
           (CONCAT44(uVar14,uVar13) ^ 0x18b3be6fd7a66f5e);
  uVar30 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar3 + -0xa78) = uVar25 ^ uVar29;
  DAT_182671c88 = DAT_182671c48 - DAT_182671c68;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0xd9d94aba)) =
       uVar25 - (*(ulonglong *)(lVar3 - (uVar28 ^ 0x94da5228)) ^ uVar34) ^ uVar30;
  *puVar1 = (CONCAT44(uVar10,uVar5) ^ 0x748522d6b2a2626e) + (uVar30 ^ *puVar2);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar27;
  return;
}



############ FUN_ 180f78900 size=5417 ############

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

void FUN_180f78900(void)

{
  ulonglong *puVar1;
  int *piVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte bVar18;
  ulonglong *puVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_res20;
  byte local_d8;
  
  uVar9 = DAT_182671f94;
  uVar8 = DAT_182671e50;
  uVar6 = DAT_182671c8c;
  uVar15 = DAT_182671c84;
  uVar21 = DAT_182671c78;
  uVar16 = DAT_182671c54;
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar12 = DAT_182671c68 & 3;
  uVar33 = DAT_182671c84 & DAT_182671c64;
  uVar17 = (ulonglong)DAT_182671c78;
  uVar32 = (ulonglong)DAT_182671c48;
  if (uVar12 < 2) {
    uVar20 = DAT_182671c8c;
    if (uVar12 == 0) {
      uVar20 = DAT_182671c68;
    }
  }
  else {
    uVar20 = DAT_182671c48;
    if (uVar12 < 3) {
      uVar20 = DAT_182671c78;
    }
  }
  uVar13 = *(uint *)(&DAT_182613210 + (uVar17 ^ 0xb7d308f6) + (longlong)DAT_182672200) ^
           DAT_182671c54;
  uVar14 = *(uint *)(&DAT_182613210 + (uVar32 ^ 0xec38e886) + (longlong)DAT_182672200) ^
           DAT_182671c68;
  uVar36 = CONCAT44(DAT_182671d74,DAT_182671d74);
  uVar28 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar29 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x2b0);
  DAT_182671c58 = uVar33;
  DAT_182671c88 = uVar20;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0x5e2e3793)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0x5e2e3253)) ^
        CONCAT44(DAT_182671f54,DAT_182671f54) | *(ulonglong *)(DAT_182671c40 + -0xa60) ^ uVar36) ^
       uVar29;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar26 = CONCAT44(DAT_182671f80,DAT_182671f80);
  *puVar1 = uVar26 ^ uVar28 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x7c0) ^
            *(ulonglong *)(lVar3 + -0x228);
  uVar10 = DAT_182671e34;
  uVar7 = DAT_182671d0c;
  puVar38 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x5e2e3c9b));
  *(ulonglong *)(lVar3 + -0xa70) =
       (CONCAT44(DAT_182671eb8,DAT_182671eb8) ^ *(ulonglong *)(lVar3 + -0x760)) +
       (CONCAT44(uVar33,uVar15) ^ 0x4241278a9bf6d107) ^ uVar22;
  lVar3 = DAT_182671c40;
  uVar24 = CONCAT44(uVar33,DAT_182671c64);
  uVar30 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(uVar7,uVar7) ^ *puVar38) + (uVar24 ^ 0x95e07d62622315ee) ^ uVar30;
  puVar40 = (ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x6f279424));
  uVar29 = (ulonglong)uVar16;
  puVar41 = (ulonglong *)(lVar3 - (uVar29 ^ 0xf5db34e7));
  *puVar41 = (*puVar40 >> 0x20 ^ (ulonglong)DAT_182671f78) >> 0xd;
  uVar39 = CONCAT44(DAT_182671f30,DAT_182671f30);
  uVar30 = (uVar30 ^ *(ulonglong *)(lVar3 + -0xd88)) + (uVar22 ^ *(ulonglong *)(lVar3 + -0xa70));
  *(ulonglong *)(lVar3 + -0x628) = uVar30 ^ uVar39;
  *(ulonglong *)(lVar3 + -0x110) = (uVar22 ^ *(ulonglong *)(lVar3 + -0xa70)) << 0x10 ^ uVar36;
  uVar7 = DAT_182671e70;
  *(ulonglong *)(lVar3 + -0x380) = uVar30 ^ uVar22 ^ *(ulonglong *)(lVar3 + -0xa70);
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar30 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xec38e01e)) =
       (ulonglong)*(ushort *)(lVar3 + -0xa6a) ^ (ulonglong)(uVar8 >> 0x10) ^ uVar31;
  uVar23 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar36 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0x6f279e14)) ^ uVar36 |
           uVar31 ^ *(ulonglong *)(lVar3 + -0x888)) ^ uVar23;
  uVar37 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar36;
  lVar4 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c64;
  uVar23 = uVar37 ^ uVar36 ^ uVar23 ^ uVar39 ^ *(ulonglong *)(lVar3 + -0x628);
  *(ulonglong *)(lVar3 + -0xa60) = uVar23;
  puVar19 = (ulonglong *)(lVar3 - (uVar30 ^ 0xb5f7028b));
  uVar25 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar23 = uVar37 ^ uVar23;
  uVar34 = (uVar26 ^ *(ulonglong *)(lVar4 + -0x7c0)) + (uVar37 ^ *puVar19) ^ uVar25;
  *(ulonglong *)(lVar4 + -0x228) = uVar34;
  *(uint *)(lVar4 + -0x61c) = *(uint *)(lVar4 + -0x444) | 0xcb71ccaf;
  uVar7 = DAT_182671ce8;
  local_d8 = (byte)uVar16;
  uVar36 = uVar23 << ((local_d8 ^ 0xdb) & 0x3f);
  local_res20 = (byte)uVar5;
  *(ulonglong *)(lVar4 + -0x760) = uVar36 ^ CONCAT44(DAT_182671f8c,DAT_182671f8c);
  uVar23 = uVar23 >> ((local_res20 ^ 0x9a) & 0x3f);
  uVar27 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar23 ^ uVar27;
  uVar12 = DAT_182671dc0;
  lVar3 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671dc0;
  uVar30 = CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar36 = (uVar23 | uVar36) ^ uVar30;
  uVar15 = *(uint *)(DAT_182671c40 + -0x94) ^ DAT_182671e4c;
  uVar37 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  piVar2 = (int *)(DAT_182671c40 + -0x784);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar36;
  *(uint *)(lVar3 + -0x4ac) = uVar15 * *piVar2;
  uVar15 = DAT_182671c78;
  *(ulonglong *)(lVar3 + -0xb08) = uVar37 ^ uVar30 ^ uVar25 ^ uVar36 ^ uVar34;
  *(uint *)(lVar3 + -0x5d4) = DAT_182671c68 ^ 0xaf97c788 | uVar15 ^ 0x2606e58b;
  uVar7 = DAT_182671dac;
  uVar8 = DAT_182671c8c;
  uVar28 = uVar28 ^ *puVar1;
  uVar43 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(lVar3 + -0xd88) = (uVar39 ^ *(ulonglong *)(lVar3 + -0x628)) + uVar28 ^ uVar43;
  uVar10 = DAT_182671f0c;
  uVar34 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x380) = uVar28 << (((byte)uVar8 ^ 0x82) & 0x3f) ^ uVar34;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0xec38e2e6)) =
       ((ulonglong)uVar9 << 0x19 | (ulonglong)(uVar9 >> 7)) ^ *puVar1 >> 7 ^ CONCAT44(uVar10,uVar10)
  ;
  uVar30 = CONCAT44(uVar20,DAT_182671c58);
  uVar36 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0x5e2e34ab)) =
       (uVar30 ^ 0xb7bf628a36782538) >> (((byte)uVar10 ^ *(byte *)(lVar3 + -0xa70)) & 0x3f);
  uVar23 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x5e2e3d33)) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x380) |
       CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0xa70)) ^ uVar23;
  uVar7 = DAT_182671de4;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(uVar16,DAT_182671c64) ^ 0x6898e105c9a21eb1) -
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x920));
  uVar10 = DAT_182671ef0;
  uVar15 = DAT_182671c68;
  uVar42 = CONCAT44(uVar7,uVar7);
  uVar36 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x6f27928c)) ^ uVar42 ^ uVar23 ^
           uVar43 ^ *(ulonglong *)(lVar3 + -0x888);
  *(ulonglong *)(lVar3 + -0x7c0) = uVar36;
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar36 = uVar42 ^ uVar36;
  uVar34 = (*(ulonglong *)(lVar4 - (uVar17 ^ 0xb7d30f3e)) ^ uVar42) +
           (*(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xd28fcfb1)) ^ uVar25);
  uVar23 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar4 + -0xa60) = uVar34 ^ uVar28;
  lVar4 = DAT_182671c40;
  uVar25 = uVar36 << 0x17;
  *(ulonglong *)(lVar3 + -0x760) = uVar25 ^ uVar23;
  uVar7 = DAT_182671e38;
  uVar10 = DAT_182671d28;
  uVar23 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar4 + -0xb20) = uVar36 >> ((local_res20 ^ 0xbf) & 0x3f) ^ uVar23;
  uVar11 = DAT_182671ee4;
  uVar39 = CONCAT44(uVar7,uVar7);
  uVar23 = (uVar25 | uVar23 ^ *puVar40) ^ uVar39;
  *(ulonglong *)(lVar4 + -0x628) = uVar23;
  uVar6 = DAT_182671c68;
  uVar15 = DAT_182671c58;
  lVar3 = DAT_182671c40;
  uVar36 = CONCAT44(uVar11,uVar11);
  *puVar1 = uVar34 ^ uVar23 ^ uVar36 ^ uVar39;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xf5db3eff)) =
       CONCAT44(uVar6,uVar15) ^ 0xf6fff79be7bf9ff7 | 0x70df768ae3bf8fb4;
  uVar7 = DAT_182671f24;
  *(ulonglong *)(lVar3 + -0x380) =
       (uVar43 ^ *(ulonglong *)(lVar3 + -0xd88)) + (uVar37 ^ *(ulonglong *)(lVar3 + -0xb08)) ^
       uVar42;
  bVar18 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xb7d3028e)) =
       CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(*(ulonglong *)(lVar3 + -0x610) ^ uVar26);
  uVar11 = DAT_182671e60;
  uVar15 = DAT_182671c64;
  uVar25 = (uVar37 ^ *puVar41) << ((bVar18 ^ 0x93) & 0x3f);
  *(ulonglong *)(lVar3 + -0x920) = uVar25 ^ CONCAT44(DAT_182671d48,DAT_182671d48);
  uVar7 = DAT_182671cd0;
  uVar23 = ((ulonglong)(uVar12 >> 0x18) | uVar35 << 8) ^ *(ulonglong *)(lVar3 + -0xb08) >> 0x18;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar23 ^ CONCAT44(uVar11,uVar11);
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar23 = (uVar25 | uVar23) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x888) = uVar23;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x6f279d2c)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0xb5f70b6b)) ^ uVar42 ^ uVar43 ^ uVar23 ^ uVar37;
  uVar7 = DAT_182671e10;
  uVar23 = uVar43 ^ *(ulonglong *)(lVar3 + -0x228);
  *(ulonglong *)(lVar3 + -0x760) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x628)) <<
       ((*(byte *)(lVar3 + -0xb20) ^ (byte)uVar10) & 0x3f);
  uVar26 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x7c0) = (uVar28 ^ *(ulonglong *)(lVar3 + -0xa60)) + uVar23 ^ uVar26;
  uVar7 = DAT_182671f48;
  puVar40 = (ulonglong *)(lVar3 - (uVar32 ^ 0xec38eabe));
  uVar23 = uVar23 >> (((byte)uVar6 ^ 0xa2) & 0x3f);
  uVar25 = (uVar43 ^ *puVar40) << 5;
  *(ulonglong *)(lVar3 + -0x110) = uVar25 ^ CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar28 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar23 ^ uVar28;
  uVar6 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0x5e2e3fcb)) =
       (uVar23 | uVar25) ^ uVar32;
  uVar7 = DAT_182671fb4;
  *(ulonglong *)(lVar3 + -0xb08) =
       *(ulonglong *)(lVar3 + -0xa70) ^ uVar32 | CONCAT44(uVar21,uVar15) ^ 0x6a6d1422efdd3b8e;
  uVar9 = DAT_182671c8c;
  uVar25 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x7e8) =
       *(ulonglong *)(lVar3 + -0xa70) ^ uVar25 ^ uVar32 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x7c0);
  uVar37 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *puVar38 = (uVar42 ^ *(ulonglong *)(lVar3 + -0x380)) + (uVar36 ^ *puVar1) ^ uVar37;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c58 ^ 0x25270088)) =
       (*(ulonglong *)(lVar3 + -0x920) ^ uVar37) - (CONCAT44(uVar5,uVar5) ^ 0x59c41d361a9f6191);
  lVar3 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671eec,DAT_182671eec);
  bVar18 = (byte)DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       (*(ulonglong *)(DAT_182671c40 - (uVar17 ^ 0xb7d30a4e)) ^ uVar36) <<
       (((byte)uVar6 ^ 0x9e) & 0x3f) ^ uVar35;
  uVar23 = (uVar36 ^ *puVar1) >> ((bVar18 ^ 0x82) & 0x3f);
  uVar32 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar3 + -0xb20) = uVar23 ^ CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar7 = DAT_182671d2c;
  uVar23 = (uVar23 | *puVar19 ^ uVar35) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x628) = uVar23;
  uVar35 = CONCAT44(uVar7,uVar7);
  uVar32 = *(ulonglong *)(lVar3 + -0x920) ^ uVar23 ^ uVar35 ^ uVar32 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x760) = uVar32;
  *(ulonglong *)(lVar3 + -0x228) = uVar29 << 0x3c ^ 0xf000000000000000;
  uVar6 = DAT_182671f78;
  lVar3 = DAT_182671c40;
  uVar32 = (CONCAT44(uVar16,DAT_182671c84) ^ 0x451c4a8db8f38201) + (uVar32 ^ uVar35);
  uVar23 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar35 = (CONCAT44(uVar16,uVar21) ^ 0xd515076aad09f643) +
           (uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0x7c0));
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar32 ^ CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar5 = DAT_182671c68;
  uVar26 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar3 + -0xd88) = uVar35 ^ uVar23;
  uVar39 = CONCAT44(uVar6,uVar6);
  uVar23 = CONCAT44(DAT_182671c50,uVar5);
  *(ulonglong *)(lVar3 + -0xb08) = uVar35 + uVar32 ^ uVar39;
  uVar7 = DAT_182671f64;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa70) = uVar23 ^ 0x2e94a3a98dcd679e | uVar24 ^ 0xc444bc3737afff98
  ;
  uVar23 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x380) = uVar32 << (((byte)DAT_182671c84 ^ 0x1d) & 0x3f) ^ uVar23;
  uVar32 = uVar32 >> (((byte)uVar15 ^ 0xcc) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x5e2e3d33)) =
       uVar32 ^ CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar32 = *(ulonglong *)(lVar3 + -0x380) ^ uVar23 | uVar32;
  *puVar1 = uVar32 ^ uVar27;
  uVar34 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xd28fc7f9)) =
       uVar32 ^ *(ulonglong *)(lVar3 + -0xb08) ^ uVar34 ^ uVar39;
  uVar7 = DAT_182671e64;
  uVar27 = CONCAT44(DAT_182671d88,DAT_182671d88);
  bVar18 = (byte)DAT_182671c64;
  uVar26 = (*(ulonglong *)(lVar3 - (uVar17 ^ 0xb7d30f16)) ^ uVar25) +
           (CONCAT44(uVar20,DAT_182671c5c) ^ 0x79446768ccb31a8);
  *(ulonglong *)(lVar3 + -0xb20) = uVar26 ^ uVar27;
  uVar23 = CONCAT44(uVar7,uVar7);
  uVar32 = (CONCAT44(uVar20,uVar5) ^ 0x74822d3ef688c647) + (*(ulonglong *)(lVar3 + -0x920) ^ uVar37)
  ;
  *(ulonglong *)(lVar3 + -0x228) = 0x54829e9f266b05dc >> ((bVar18 ^ 0xd4) & 0x3f);
  uVar7 = DAT_182671edc;
  *(ulonglong *)(lVar3 + -0x628) = uVar32 ^ uVar23;
  uVar25 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x760) = uVar26 + uVar32 ^ uVar25;
  uVar7 = DAT_182671c7c;
  uVar42 = (ulonglong)DAT_182671c60;
  uVar32 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0xcd99d54f)) =
       (uVar24 ^ 0x167a7c8d67381760) - (uVar30 ^ 0x865abbfdceb1ed7a);
  uVar24 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0x5e2e3e9b)) ^ uVar27) << (((byte)uVar8 ^ 0x9a) & 0x3f)
  ;
  uVar30 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *(ulonglong *)(lVar3 + -0xd88) = uVar24 ^ uVar23;
  uVar5 = DAT_182671f58;
  uVar10 = DAT_182671f3c;
  uVar35 = (ulonglong)DAT_182671f58;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0xf5db34cf)) ^ uVar27) >> (((byte)uVar7 ^ 0xd0) & 0x3f)
  ;
  uVar32 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar3 + -0xa70) = uVar23 ^ uVar30;
  uVar21 = DAT_182671c90 ^ 0x9259f65f;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar23 = (uVar23 | uVar24) ^ uVar30;
  *(ulonglong *)(lVar3 + -0x110) = uVar23;
  uVar26 = CONCAT44(uVar5,uVar5);
  uVar16 = DAT_182671c54 ^ 0x4c02fc40;
  *(ulonglong *)(lVar3 + -0x380) =
       *(ulonglong *)(lVar3 - (uVar32 ^ 0xf41b3887)) ^ uVar23 ^ uVar26 ^ uVar30 ^ uVar25;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0x96e83a90)) = uVar21 | uVar16;
  uVar32 = *(ulonglong *)(lVar3 + -0x380);
  uVar30 = uVar32 ^ uVar26;
  uVar37 = CONCAT44(DAT_182671f68,DAT_182671f68);
  uVar24 = uVar30 << (((byte)DAT_182671c74 ^ 0x72) & 0x3f);
  uVar27 = (*(ulonglong *)(DAT_182671c40 + -0xb08) ^ uVar39) + uVar30 ^ uVar37;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar27;
  lVar3 = DAT_182671c40;
  uVar32 = ((ulonglong)(uVar5 >> 0x12) | uVar35 << 0xe) ^ uVar32 >> 0x12;
  *puVar1 = uVar24 ^ CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar7 = DAT_182671c98;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar32 ^ CONCAT44(DAT_182671ee8,DAT_182671ee8);
  uVar10 = DAT_182671dbc;
  uVar30 = (ulonglong)DAT_182671c64;
  uVar23 = CONCAT44(uVar7,uVar7);
  uVar24 = (uVar24 | uVar32) ^ uVar23;
  *(ulonglong *)(lVar3 + -0x920) = uVar24;
  uVar35 = CONCAT44(uVar10,uVar10);
  uVar32 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xb5f70ac3)) = uVar24 ^ uVar27 ^ uVar35 ^ uVar23 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x628) = *(ulonglong *)(lVar3 + -0x380) ^ uVar26;
  uVar39 = CONCAT44(DAT_182671e40,DAT_182671e40);
  uVar23 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(lVar3 + -0x7c0) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x25270f60)) ^ uVar25) +
       (*(ulonglong *)(lVar3 + -0xa60) ^ uVar34) ^ uVar39;
  uVar30 = (*(ulonglong *)(lVar3 - (uVar42 ^ 0xcd99d8ef)) ^ uVar34) << 0xc;
  uVar32 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar3 + -0xb20) = uVar30 ^ uVar23;
  uVar24 = (*(ulonglong *)(lVar3 + -0xa60) >> 0x20 ^ (ulonglong)DAT_182671ecc) >> 0x14;
  uVar23 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar3 + -0xd88) = uVar24 ^ uVar32;
  uVar16 = DAT_182671cc4;
  uVar32 = (ulonglong)DAT_182671dd8;
  *(ulonglong *)(lVar3 + -0xa70) = (uVar30 | uVar24) ^ uVar23;
  uVar30 = CONCAT44(uVar16,uVar16);
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x5e2e333f)) =
       *(uint *)(*(ulonglong *)(lVar3 + -0x480) ^ uVar32) ^ DAT_182671f14;
  uVar7 = DAT_182671f4c;
  uVar26 = (ulonglong)DAT_182671c4c;
  uVar32 = *(ulonglong *)(lVar3 + -0xa70) ^ uVar30 ^ uVar23 ^ uVar39 ^
           *(ulonglong *)(lVar3 + -0x7c0);
  *(ulonglong *)(lVar3 + -0x110) = uVar32;
  uVar25 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 + -0x888) ^ uVar37) + (uVar32 ^ uVar30) ^ uVar25;
  uVar5 = DAT_182671c94;
  uVar37 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x94f10b4b)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c94 ^ 0xb3ffddb2)) ^ uVar30) << 0x3a ^ uVar31;
  uVar7 = DAT_182671e78;
  uVar23 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar32 = *(ulonglong *)(lVar3 + -0x7e8);
  *puVar1 = ((ulonglong)uVar16 << 0x1a | (ulonglong)(uVar16 >> 6)) ^
            *(ulonglong *)(lVar3 + -0x110) >> 6 ^ uVar23;
  uVar27 = CONCAT44(uVar7,uVar7);
  uVar30 = (ulonglong)DAT_182671c58;
  uVar24 = (ulonglong)DAT_182671c6c;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0x94f10e13)) ^ uVar23 | uVar31 ^ uVar32) ^ uVar27;
  uVar32 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *(ulonglong *)(lVar3 + -0x920) = uVar23;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x23258f80)) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0x25270308)) ^ uVar32 ^ uVar23 ^ uVar27 ^ uVar25;
  uVar23 = uVar35 ^ *(ulonglong *)(lVar3 + -0x228);
  *(uint *)(lVar3 + -0x94c) = (DAT_182671c5c ^ 0x57dd81ed) * (uVar5 ^ 0xd0e9fffc);
  uVar26 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar30 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar3 + -0x628) = (uVar39 ^ *(ulonglong *)(lVar3 + -0x7c0)) + uVar23 ^ uVar26;
  uVar7 = DAT_182671c7c;
  uVar32 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar3 + -0x760) = (*puVar40 ^ uVar35) << (local_res20 & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar3 + -0xa60) = uVar23 >> (((byte)uVar7 ^ 0xe5) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x23258188)) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0xf5db358f)) ^ uVar32 |
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x6f279864)) ^ uVar30) ^ uVar36;
  uVar30 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  uVar29 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  uVar32 = uVar30 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0xd88) ^ uVar36 ^
           *(ulonglong *)(lVar3 + -0x628);
  *(ulonglong *)(lVar3 + -0xb20) = uVar32;
  bVar18 = (byte)DAT_182671c90;
  *(ulonglong *)(lVar3 + -0xa70) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0xb08)) + (uVar32 ^ uVar30) ^ uVar29;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xb7d30076)) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0xb3ffd782)) ^ uVar30) << ((bVar18 ^ 0x8a) & 0x3f) ^ uVar22
  ;
  uVar32 = (uVar30 ^ *(ulonglong *)(lVar3 + -0xb20)) >> ((local_d8 ^ 0xcf) & 0x3f);
  uVar17 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar3 + -0x110) = uVar32 ^ CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar7 = DAT_182671f50;
  uVar32 = (uVar32 | uVar22 ^ *(ulonglong *)(lVar3 + -0x888)) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar32;
  *puVar1 = *(ulonglong *)(lVar3 - (uVar17 ^ 0xd28fc7e9)) ^ CONCAT44(uVar7,uVar7) ^ uVar32 ^ uVar29
            ^ uVar28;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar13;
  return;
}



############ FUN_ 180f3ddd0 size=4234 ############

void FUN_180f3ddd0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte *pbVar18;
  uint *puVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  uint uVar38;
  uint *puVar39;
  
  uVar29 = DAT_182671dc4;
  uVar14 = DAT_182671c94;
  uVar13 = DAT_182671c90;
  uVar7 = DAT_182671c84;
  uVar6 = DAT_182671c7c;
  uVar16 = DAT_182671c74;
  uVar15 = DAT_182671c5c;
  uVar33 = (ulonglong)DAT_182671c5c;
  uVar20 = (ulonglong)DAT_182671c7c;
  uVar23 = DAT_182671c8c | DAT_182671c7c;
  uVar24 = *(uint *)(&DAT_182613218 + DAT_182671fc4) ^ DAT_182671c54;
  uVar21 = DAT_182671c5c - DAT_182671c74;
  bVar37 = (char)DAT_182671c70 - (char)DAT_182671c84;
  uVar22 = (ulonglong)DAT_182671c90;
  DAT_182671c78 = DAT_182671c54 ^ DAT_182671c90;
  uVar38 = DAT_182671c48 << 0x10 | DAT_182671c48 >> 0x10;
  uVar11 = *(uint *)(&DAT_182613220 + DAT_182671fc4) ^ DAT_182671c78;
  uVar17 = (ulonglong)DAT_182671c94;
  uVar25 = DAT_182671c80 & DAT_182671c94;
  uVar26 = uVar25 ^ 0x51291c1b;
  DAT_182671c58 = uVar26;
  DAT_182671c60 = uVar38;
  DAT_182671c64 = uVar21;
  *(uint *)(DAT_182671c40 + -0x684) =
       (*(uint *)(DAT_182671c40 + -0x5d4) ^ DAT_182671dd4) +
       (*(uint *)(DAT_182671c40 + -0xae4) ^ DAT_182671d7c) ^ DAT_182671d8c;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa70) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x1000500)) ^
       CONCAT44(uVar25,uVar14) ^ 0x51291c1b00000000 ^ 0x28fde425dfd75a48;
  lVar5 = DAT_182671c40;
  *(uint *)(lVar4 + -0x634) =
       *(uint *)(lVar4 - ((ulonglong)uVar13 ^ 0x1400294)) ^ DAT_182671e48 ^ DAT_182671d8c;
  *(uint *)(lVar5 - ((ulonglong)uVar7 ^ 0x10040785)) =
       *(uint *)(lVar4 + -0x9dc) ^ DAT_182671cb0 ^ DAT_182671e58;
  uVar32 = DAT_182671e7c;
  lVar4 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x4ac) = (DAT_182671c70 ^ 0x6e220f39) * -0x126c17a4;
  *(uint *)(lVar4 + -0x76c) = *(uint *)(lVar4 + -0x634) ^ uVar29 ^ DAT_182671e48;
  *(ulonglong *)(lVar4 + -0xf0) = *(ulonglong *)(lVar4 + -0xa08) >> ((bVar37 ^ 0x7d) & 0x3f);
  puVar1 = (uint *)(lVar4 + -0x784);
  *(uint *)(lVar4 + -0x6c0) = *puVar1 ^ uVar32 ^ DAT_182671cb0;
  uVar12 = DAT_182671f40;
  bVar10 = (byte)DAT_182671d14;
  lVar5 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671c8c;
  pbVar18 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar16 ^ 0x9b0e78fb)) +
                     (CONCAT44(DAT_182671c8c,DAT_182671c80) ^ 0x3c108b001000410) * 0x20 +
                    (CONCAT44(uVar15,uVar21) ^ 0x1008411274f9cfa1));
  *(ulonglong *)(DAT_182671c40 + -0x170) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182671e2c;
  lVar4 = DAT_182671c40;
  *(byte *)(lVar5 + -0x1c3) = *pbVar18 ^ bVar10 ^ (byte)DAT_182671e0c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c48 ^ 0x71539e1e)) =
       ((ulonglong)(uVar23 >> 1) | (ulonglong)uVar6 << 0x1f) ^ 0x4a4438e51f54c40e;
  *(uint *)(lVar4 + -0x94) = (bVar10 ^ *(byte *)(lVar4 + -0x1c3)) ^ uVar12;
  uVar15 = DAT_182671efc;
  *(uint *)(lVar4 + -0x54) =
       (*(uint *)(lVar4 + -0x6c0) ^ uVar32) + (uVar25 ^ 0x9c42161e) ^ DAT_182671f18;
  uVar28 = (*(uint *)(lVar4 - ((ulonglong)uVar38 ^ 0x9b0e71c7)) ^ uVar12) <<
           (((byte)uVar13 ^ 1) & 0x1f);
  *(uint *)(lVar4 + -0x94c) = uVar28 ^ uVar15;
  uVar31 = DAT_182671ddc;
  *(ulonglong *)(lVar4 + -0x30) =
       (CONCAT44(uVar16,uVar7) ^ 0xb5d589782dcf4c72) << ((bVar37 ^ 0x74) & 0x3f);
  uVar15 = DAT_182671db8;
  puVar2 = (uint *)(lVar4 + -0x58c);
  uVar28 = (*(uint *)(lVar4 - ((ulonglong)uVar16 ^ 0x9b0e7107)) ^ DAT_182671f18) - uVar28;
  *puVar2 = uVar28 ^ uVar31;
  puVar19 = (uint *)(lVar4 - (uVar17 ^ 0x80a20324));
  uVar28 = uVar28 * (uVar29 ^ *puVar19);
  *(uint *)(lVar4 + -0x1c8) = uVar28 ^ uVar15;
  uVar31 = DAT_182671df4;
  uVar15 = (*(uint *)(lVar4 - (uVar20 ^ 0xc6a6c85e)) ^ uVar12) * 0x1e ^ DAT_182671d70;
  *(uint *)(lVar4 + -0x644) = uVar15;
  *(uint *)(lVar4 - ((ulonglong)uVar21 ^ 0x74f9c9a3)) = (uVar15 ^ DAT_182671d70) + uVar28 ^ uVar31;
  uVar15 = DAT_182671c74;
  *(uint *)(lVar4 - (uVar33 ^ 0x10084bf6)) =
       (uVar31 ^ *(uint *)(lVar4 + -0x61c)) << ((bVar37 ^ 0x72) & 0x1f) ^ DAT_182671ce0;
  uVar12 = *(uint *)(lVar4 + -0xae4) ^ DAT_182671ce0;
  uVar15 = (uVar31 ^ *(uint *)(lVar4 + -0x61c)) >> ((byte)uVar15 & 0x1f) ^ DAT_182671e60;
  uVar30 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar4 + -0x684) = uVar15;
  *(uint *)(lVar4 - (uVar30 ^ 0x4804ab5c)) = (uVar15 ^ DAT_182671e60 | uVar12) ^ DAT_182671d34;
  uVar15 = *(uint *)(lVar4 + -0x9dc) ^ DAT_182671d4c ^ DAT_182671d34;
  *(uint *)(lVar4 + -0x4ac) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_182671c80 ^ 0x10001c4)) ^ DAT_182671dd4) +
       (*(uint *)(lVar4 + -0x76c) ^ uVar29) ^ DAT_182671e78;
  uVar9 = DAT_182671f24;
  uVar8 = DAT_182671dd8;
  uVar29 = *(uint *)(lVar4 - (uVar35 ^ 0x3c10c1c)) ^ DAT_182671cf8 ^ DAT_182671e78;
  *puVar1 = uVar15;
  lVar5 = DAT_182671c40;
  uVar15 = uVar15 ^ DAT_182671f00 ^ DAT_182671d4c;
  *(uint *)(lVar4 + -0x634) = uVar29;
  uVar35 = CONCAT44(uVar9,uVar9);
  uVar30 = *(ulonglong *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar4 + -0x588));
  *(uint *)(lVar5 + -0x54) = uVar15;
  uVar15 = DAT_182671c78;
  uVar36 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 + -0xd88) = uVar30 ^ uVar35;
  uVar12 = DAT_182671e68;
  uVar30 = (ulonglong)DAT_182671d20;
  *(uint *)(lVar5 + -0x6c0) = uVar29 ^ DAT_182671e68 ^ DAT_182671cf8;
  pbVar18 = (byte *)((CONCAT44(uVar15,uVar14) ^ 0x80a2804880a20441) +
                     (CONCAT44(uVar14,uVar13) ^ 0x80a2044801400410) * 0x20 +
                    *(longlong *)(lVar5 + -0x9a8));
  *(ulonglong *)(lVar5 + -0x5a0) = (ulonglong)pbVar18 ^ uVar30;
  *(byte *)(lVar5 + -0x1c3) = *pbVar18 ^ (byte)uVar32 ^ (byte)DAT_182671e0c;
  *(ulonglong *)(lVar5 + -0x628) = *(ulonglong *)(lVar5 + -0x380) | *(ulonglong *)(lVar5 + -0xb20);
  uVar14 = DAT_182671d04;
  *(uint *)(lVar5 - (uVar33 ^ 0x1008485e)) =
       uVar32 & 0xff ^ (uint)*(byte *)(lVar5 + -0x1c3) ^ DAT_182671d04;
  uVar13 = DAT_182671c48;
  uVar31 = (*(uint *)(lVar5 + -0x54) ^ DAT_182671f00) + (DAT_182671c84 ^ 0x8c46121f) ^ DAT_182671eac
  ;
  *puVar2 = uVar31;
  uVar31 = uVar31 ^ DAT_182671eac;
  *(ulonglong *)(lVar5 + -0x5e8) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar38 ^ 0x9b0e7a5b)) |
       CONCAT44(uVar21,uVar15) ^ 0x8815bf79505a0b8e;
  uVar30 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar5 + -0x94) =
       (*(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0xc7e7c1b6)) ^ uVar14) <<
       (((byte)uVar26 ^ 10) & 0x1f) ^ DAT_182671f20;
  uVar29 = DAT_182671d1c;
  uVar15 = uVar31 - (*(uint *)(lVar5 - (uVar36 ^ 0x80a280dc)) ^ DAT_182671f20) ^ DAT_182671e18;
  *(uint *)(lVar5 + -0x1c8) = uVar15;
  *(uint *)(lVar5 + -0x644) =
       (uVar15 ^ DAT_182671e18) * (*(uint *)(lVar5 + -0x6c0) ^ uVar12) ^ DAT_182671ec8;
  uVar32 = (*(uint *)(lVar5 - (uVar20 ^ 0xc6a6c186)) ^ uVar14) * (DAT_182671c8c ^ 0x3c108b9);
  *(ulonglong *)(lVar5 + -0x760) = CONCAT44(uVar13,uVar16) ^ 0xb63c200639874af2;
  uVar15 = DAT_182671d08;
  *(uint *)(lVar5 + -0x61c) = uVar32 ^ uVar29;
  uVar32 = (*(uint *)(lVar5 - (uVar30 ^ 0x1000254)) ^ DAT_182671ec8) + uVar32;
  *(uint *)(lVar5 + -0xae4) = uVar32 ^ uVar15;
  uVar31 = DAT_182671ce4;
  uVar14 = DAT_182671c6c;
  lVar4 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c6c;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c70 ^ 0x4804a404)) =
       uVar32 << ((bVar37 ^ 0x72) & 0x1f) ^ DAT_182671e38;
  uVar29 = DAT_182671c88;
  bVar37 = (byte)DAT_182671c54 ^ 0x4b;
  uVar28 = (*(uint *)(lVar5 + -0xae4) ^ uVar15) >> (bVar37 & 0x1f) ^ DAT_182671e94;
  bVar10 = (byte)DAT_182671c88;
  uVar16 = DAT_182671c88 & 1;
  *(uint *)(lVar5 + -0x76c) = uVar28;
  uVar32 = DAT_182671df8;
  uVar15 = uVar14;
  if (uVar16 == 0) {
    uVar15 = uVar29;
  }
  *(uint *)(lVar5 + -0x4ac) =
       (uVar28 ^ DAT_182671e94 | *(uint *)(lVar5 + -0x684) ^ DAT_182671e38) ^ DAT_182671d3c;
  uVar16 = (*(uint *)(lVar5 + -0x6c0) ^ uVar12) + (*(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4) ^
           DAT_182671cd8;
  DAT_182671c68 = uVar15;
  *(longlong *)(lVar5 + -0xa50) = *(longlong *)(lVar5 - ((ulonglong)uVar14 ^ 0xef98f7dd)) << 0x18;
  *(uint *)(lVar5 + -0x9dc) = uVar16;
  uVar33 = (ulonglong)uVar29;
  *(uint *)(lVar5 - ((ulonglong)uVar15 ^ 0xc7e6caee)) = uVar16 ^ uVar31 ^ DAT_182671cd8;
  uVar16 = *(uint *)(lVar4 + -0x634);
  *(longlong *)(lVar4 + -0x8f0) = *(longlong *)(lVar4 + -0x888) << ((bVar10 ^ 0xc4) & 0x3f);
  *puVar1 = *(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0xc7e6c876)) ^ DAT_182671de0 ^ DAT_182671d3c;
  uVar12 = DAT_182671f18;
  uVar27 = DAT_182671f18 & 0xff;
  *(uint *)(lVar4 - (uVar33 ^ 0xc7e6cc8e)) = uVar32 ^ uVar16 ^ uVar31;
  uVar28 = DAT_182671e5c;
  uVar20 = (ulonglong)DAT_182671e54;
  *puVar2 = *puVar1 ^ DAT_182671e5c ^ DAT_182671de0;
  pbVar18 = (byte *)((CONCAT44(uVar25,uVar14) ^ 0x400ef98fff5) * 0x20 +
                    *(longlong *)(lVar4 + -0x9a8) + 0x14);
  *(ulonglong *)(lVar4 + -0xc20) = (ulonglong)pbVar18 ^ uVar20;
  *(byte *)(lVar4 + -0x1c3) = *pbVar18 ^ (byte)uVar12 ^ (byte)DAT_182671e0c;
  uVar34 = DAT_182671e74;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar30 ^ 0xef98fd45)) =
       (CONCAT44(uVar29,uVar25) ^ 0x356f81413059d49c) -
       (CONCAT44(uVar15,DAT_182671c48) ^ 0xaa408646015ee8b5);
  lVar5 = DAT_182671c40;
  uVar16 = *puVar2;
  *(uint *)(lVar4 + -0x94) = uVar27 ^ *(byte *)(lVar4 + -0x1c3) ^ uVar34;
  uVar12 = DAT_182671cc8;
  *(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0xc7e7c932)) =
       (uVar28 ^ uVar16) + (uVar14 ^ 0x73daedeb) ^ DAT_182671cc8;
  uVar14 = DAT_182671c80;
  uVar16 = DAT_182671c54;
  uVar23 = DAT_182671c80 | DAT_182671c54;
  DAT_182671c4c = uVar23;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0xc7e6cb32)) =
       CONCAT44(uVar15,uVar29) ^ 0xc3828b0b7d2685b4 | *(ulonglong *)(lVar5 + -0x680);
  uVar29 = DAT_182671f98;
  uVar34 = uVar34 ^ *(uint *)(lVar5 + -0x94);
  uVar28 = uVar34 << (((byte)uVar23 ^ 0x49) & 0x1f) ^ DAT_182671cc4;
  uVar32 = uVar32 ^ *(uint *)(lVar5 + -0x54);
  *(uint *)(lVar5 + -0x94c) = uVar28;
  puVar39 = (uint *)(lVar5 - ((ulonglong)uVar14 ^ 0x10005d8));
  uVar12 = (uVar12 ^ *puVar39) - (uVar28 ^ DAT_182671cc4);
  *(uint *)(lVar5 + -0x644) = uVar12 ^ uVar29;
  uVar29 = DAT_182671e10;
  uVar28 = DAT_182671c70 + DAT_182671c48;
  uVar12 = uVar12 * uVar32;
  *(uint *)(lVar5 + -0x61c) = (uVar16 ^ 0xfdc56f81) << (((byte)uVar14 ^ 10) & 0x1f);
  uVar14 = (uVar14 ^ 0x1000404) * uVar34 ^ DAT_182671d9c;
  *(uint *)(lVar5 + -0x684) = uVar14;
  uVar14 = uVar14 ^ DAT_182671d9c;
  DAT_182671c50 = uVar28;
  *(uint *)(lVar5 + -0xae4) = uVar12 ^ uVar29;
  uVar29 = DAT_182671f34;
  uVar12 = uVar12 + uVar14;
  *(uint *)(lVar5 + -0x76c) = uVar12 ^ DAT_182671f34;
  uVar12 = uVar12 << (((byte)uVar16 ^ 0x55) & 0x1f);
  lVar4 = *(longlong *)(lVar5 - ((ulonglong)uVar16 ^ 0x81e28cd0));
  *(uint *)(lVar5 + -0x6c0) = uVar12 ^ uVar31;
  uVar14 = DAT_182671c70;
  uVar20 = (ulonglong)DAT_182671c70;
  uVar31 = (*(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4) + uVar32 ^ DAT_182671d98;
  uVar16 = (*(uint *)(lVar5 + -0x76c) ^ uVar29) >> 0x13 ^ DAT_182671f94;
  *(uint *)(lVar5 + -0x9dc) = uVar16;
  uVar16 = uVar16 ^ DAT_182671f94;
  *(longlong *)(lVar5 + -0x3d8) = lVar4 + -0x521ceb6dd86fb158;
  *(uint *)(lVar5 + -0x4ac) = (uVar12 | uVar16) ^ DAT_182671e04;
  uVar16 = DAT_182671dc8 ^ DAT_182671d98;
  *(uint *)(lVar5 - (uVar20 ^ 0x4804a4b4)) = uVar31;
  uVar16 = uVar16 ^ *(uint *)(lVar5 + -0x634);
  uVar31 = *(uint *)(lVar5 + -0x4ac) ^ DAT_182671f78 ^ DAT_182671e04;
  *puVar1 = uVar16;
  uVar12 = DAT_182671f80;
  uVar32 = DAT_182671f5c;
  lVar4 = DAT_182671c40;
  uVar30 = *(ulonglong *)(lVar5 + -0x7c0);
  *(uint *)(lVar5 + -0x1c8) = uVar16 ^ DAT_182671f5c ^ DAT_182671dc8;
  *puVar2 = uVar31;
  *(ulonglong *)(lVar5 + -0xbd8) = uVar30 | 0xd2612e2610e9009;
  uVar29 = DAT_182671d2c;
  *(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0xb95834c2)) = DAT_182671d2c ^ DAT_182671f78 ^ uVar31;
  uVar16 = DAT_182671c48;
  uVar30 = (ulonglong)DAT_182671f64;
  *(ulonglong *)(lVar4 + -0x960) =
       *(ulonglong *)(CONCAT44(DAT_182671f84,DAT_182671f84) ^ *(ulonglong *)(lVar4 + -0xd68)) ^
       uVar35;
  *(ulonglong *)(lVar4 + -0xbc0) =
       (CONCAT44(uVar13,uVar16) ^ 0x71539b0e71539b11) + *(longlong *)(lVar4 + -0x9a8) ^ uVar30;
  bVar10 = (byte)DAT_182671cdc;
  lVar4 = DAT_182671c40;
  puVar3 = (uint *)(DAT_182671c40 + -0x94c);
  *(byte *)(DAT_182671c40 + -0x1c3) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x4804a940)) ^ uVar30) ^
       (byte)DAT_182671cdc ^ (byte)DAT_182671e0c;
  uVar31 = DAT_182671dfc;
  *(uint *)(lVar4 + -0x644) = (uVar29 ^ *puVar3) + (uVar23 ^ 0x1da09646) ^ DAT_182671dfc;
  uVar16 = DAT_182671c48;
  uVar30 = CONCAT44(uVar14,DAT_182671c48);
  *(ulonglong *)(lVar4 + -0x4b8) =
       CONCAT44(uVar28,uVar28) ^ 0xb9e41401c458ee0b | CONCAT44(uVar14,uVar23) ^ 0xce86615fde6d262d;
  *(uint *)(lVar4 + -0x61c) = (bVar10 ^ *(byte *)(lVar4 + -0x1c3)) ^ uVar12;
  uVar13 = DAT_182671d88;
  bVar10 = (byte)DAT_182671c80;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x81e28d78)) =
       uVar30 ^ 0xfcabf77bdfdedfbf | 0xbcab252b53cad5b5;
  *(uint *)(lVar4 + -0x94) =
       (uVar12 ^ *(uint *)(lVar4 + -0x61c)) << ((bVar10 ^ 1) & 0x1f) ^ DAT_182671ef4;
  *(uint *)(lVar4 + -0x684) = (*(uint *)(lVar4 - ((ulonglong)uVar21 ^ 0x74f9ce77)) ^ uVar32) >> 0xd;
  *(uint *)(lVar4 + -0xae4) =
       (uVar31 ^ *(uint *)(lVar4 + -0x644)) -
       (*(uint *)(lVar4 - ((ulonglong)uVar14 ^ 0x4804a214)) ^ DAT_182671ef4) ^ uVar13;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0xb95837ee)) =
       *(ulonglong *)(lVar4 + -0x8f0) >> ((byte)*(undefined8 *)(lVar4 + -0xb20) & 0x3f);
  uVar14 = DAT_182671f2c;
  *puVar19 = (uVar13 ^ *(uint *)(lVar4 + -0xae4)) * (uVar32 ^ *puVar39) ^ DAT_182671ed8;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x4804a0a8)) =
       (CONCAT44(uVar6,uVar7) ^ 0xabb74f1e7500896) + *(longlong *)(lVar4 - (uVar22 ^ 0x1400d70));
  uVar13 = *(uint *)(lVar4 + -0x76c) ^ DAT_182671ed8;
  uVar16 = (*(uint *)(lVar4 - (uVar33 ^ 0xc7e6cac6)) ^ uVar12) * (uVar16 ^ 0x71539b11) ^
           DAT_182671ef8;
  *(uint *)(lVar4 + -0x6c0) = uVar16;
  *(uint *)(lVar4 + -0x9dc) = (uVar16 ^ DAT_182671ef8) + uVar13 ^ uVar14;
  uVar16 = (*(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0x512911c7)) ^ uVar14) <<
           (((byte)uVar15 ^ 0xd7) & 0x1f);
  uVar15 = uVar16 ^ DAT_182671e88;
  *(uint *)(lVar4 + -0x634) =
       (*(uint *)(lVar4 + -0x9dc) ^ uVar14) >> (bVar37 & 0x1f) ^ DAT_182671e40;
  *(uint *)(lVar4 + -0x54) = uVar15;
  uVar15 = *(uint *)(lVar4 - (uVar17 ^ 0x80a2027c)) ^ DAT_182671e40;
  *(longlong *)(lVar4 + -0x110) = -0x4b68cdcbf985ca2b - *(longlong *)(lVar4 + -0x3d8);
  *(uint *)(lVar4 + -0x4ac) = (uVar15 | uVar16) ^ DAT_182671e14;
  uVar15 = (*(uint *)(lVar4 - (uVar33 ^ 0xc7e6c90e)) ^ DAT_182671dd4) +
           (*(uint *)(lVar4 - ((ulonglong)uVar38 ^ 0x9b0e709b)) ^ uVar32) ^ DAT_182671f58;
  *puVar1 = uVar15;
  *puVar2 = uVar15 ^ DAT_182671d58 ^ DAT_182671f58;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar11 * 4) = uVar24;
  return;
}



############ FUN_ 1810078e0 size=5921 ############

void FUN_1810078e0(void)

{
  undefined8 *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  ulonglong *puVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte bVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  byte local_res20;
  byte local_130;
  byte local_108;
  byte local_d0;
  byte local_98;
  
  uVar8 = DAT_182671c88;
  uVar6 = DAT_182671c6c;
  uVar18 = DAT_182671c68;
  uVar5 = DAT_182671c5c;
  uVar4 = DAT_182671c58;
  lVar2 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c6c;
  uVar41 = (ulonglong)DAT_182671c68;
  uVar25 = (ulonglong)DAT_182671c88;
  uVar53 = (ulonglong)DAT_182671c58;
  uVar16 = *(uint *)(&DAT_182613218 + DAT_1826720c0) ^ DAT_182671c6c;
  uVar31 = (ulonglong)DAT_182671c64;
  uVar26 = DAT_182671c68 & DAT_182671c58;
  uVar34 = DAT_182671c5c - DAT_182671c64;
  uVar20 = DAT_182671c80 * DAT_182671c6c;
  uVar22 = ~DAT_182671c88;
  uVar13 = *(uint *)(&DAT_182613220 + DAT_1826720c0) ^ DAT_182671c80;
  uVar49 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar46 = CONCAT44(DAT_182671f54,DAT_182671f54);
  puVar14 = (ulonglong *)(DAT_182671c40 + -0xc38);
  DAT_182671c50 = uVar20;
  DAT_182671c60 = uVar22;
  DAT_182671c70 = uVar26;
  DAT_182671c8c = uVar34;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       CONCAT44(DAT_182671e50,DAT_182671e50) ^ uVar46 ^ uVar49 ^ *puVar14 ^
       *(ulonglong *)(DAT_182671c40 + -0x888);
  lVar3 = DAT_182671c40;
  puVar47 = (ulonglong *)(lVar2 + -0xc18);
  uVar19 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *puVar47 = uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0xa78) | 0xa77c6480c76f9b56;
  lVar2 = DAT_182671c40;
  uVar40 = (ulonglong)uVar20;
  puVar21 = (ulonglong *)(lVar3 - (uVar40 ^ 0x53750a0));
  uVar35 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar33 = (ulonglong)uVar5;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (*puVar21 ^ uVar49) >> (((byte)uVar34 ^ 0xf5) & 0x3f) ^ uVar35;
  uVar30 = DAT_182671c80;
  uVar36 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar43 = (ulonglong)uVar22;
  puVar32 = (ulonglong *)(lVar2 - (uVar43 ^ 0xfbcf5ad0));
  uVar44 = (ulonglong)DAT_182671c80;
  *puVar32 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0xdceef36d)) ^ uVar49) <<
             (((byte)uVar18 ^ 0xf3) & 0x3f) ^ uVar36;
  uVar11 = DAT_182671d90;
  lVar2 = DAT_182671c40;
  uVar52 = CONCAT44(uVar8,uVar6);
  puVar39 = (ulonglong *)(DAT_182671c40 + -0xd88);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (CONCAT44(uVar26,uVar18) ^ 0x9c1ba2e09f357277) + (uVar52 ^ 0xa3d622e31290c681);
  uVar35 = uVar36 ^ *puVar32 | uVar35 ^ *puVar39;
  uVar36 = CONCAT44(uVar11,uVar11);
  uVar37 = uVar35 ^ uVar36;
  uVar50 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(ulonglong *)(lVar2 + -0x680) = uVar37;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - (uVar40 ^ 0x53756c8)) ^ uVar46) - uVar35 ^ uVar50;
  uVar35 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar2 + -0x94) = (uVar30 ^ 0x3e4847f0) * (uVar8 ^ 0xe1940e7e);
  uVar42 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar23 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(lVar2 + -0x510) = uVar23 ^ uVar42 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0xf0) ^ uVar37
  ;
  *(undefined1 *)(lVar2 - ((ulonglong)uVar4 ^ 0x81419116)) =
       **(undefined1 **)(lVar2 - (uVar35 ^ 0xfb3dff51));
  uVar10 = DAT_182671c94;
  uVar35 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  uVar37 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x38f169cc)) =
       (uVar42 ^ *(ulonglong *)(lVar2 + -0x510)) >> (((byte)uVar26 ^ 0xde) & 0x3f) ^ uVar35;
  uVar34 = DAT_182671c54;
  uVar36 = (ulonglong)DAT_182671c54;
  uVar29 = uVar10 + DAT_182671c54;
  uVar42 = (uVar42 ^ *(ulonglong *)(lVar2 + -0x510)) << (((byte)uVar10 ^ 0x98) & 0x3f);
  uVar38 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  DAT_182671c78 = uVar29;
  *(ulonglong *)(lVar2 + -0x960) = uVar42 ^ CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0xe08f8eab)) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x110) | uVar42) ^ uVar38;
  uVar42 = CONCAT44(DAT_182671e34,DAT_182671e34);
  puVar32 = (ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0xe08f879b));
  uVar27 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *puVar32 = (uVar23 ^ *(ulonglong *)(lVar2 + -0xf0)) -
             (CONCAT44(uVar29,uVar34) ^ 0x991c5e3a0ea1e902) ^ uVar42;
  uVar11 = DAT_182671ca0;
  lVar2 = DAT_182671c40;
  uVar35 = *(ulonglong *)(DAT_182671c40 + -0xb18);
  puVar39 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0x228)) -
       (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) ^ uVar27;
  *(ulonglong *)(lVar2 + -0x888) = (uVar50 ^ *puVar39) + 0x1692b1223c572a14;
  uVar12 = DAT_182671ec0;
  uVar24 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar2 + -0xa78) =
       (uVar38 ^ uVar35) - (CONCAT44(uVar5,uVar22) ^ 0x38fad842b1dfebda) ^ uVar24;
  uVar48 = CONCAT44(uVar12,uVar12);
  puVar39 = (ulonglong *)(lVar2 - (uVar40 ^ 0x53756e8));
  *puVar39 = *(ulonglong *)(lVar2 - (uVar33 ^ 0xdceef2e5)) ^ CONCAT44(uVar11,uVar11) ^ uVar48 ^
             uVar50 ^ *(ulonglong *)(lVar2 + -0xa08);
  *(ulonglong *)(lVar2 - (uVar53 ^ 0x814199af)) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0xa78)) - (CONCAT44(uVar10,uVar18) ^ 0x7f10bacf410f3df);
  uVar42 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (uVar48 ^ *puVar47) >> (((byte)uVar10 ^ 0x9e) & 0x3f) ^ uVar42;
  local_98 = (byte)uVar34;
  uVar35 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(DAT_182671c40 - (uVar53 ^ 0x81419e77)) =
       (uVar48 ^ *puVar39) << ((local_98 ^ 0xeb) & 0x3f) ^ uVar35;
  lVar2 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xe1b0f2ec)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0xdceef4b5)) ^ uVar35 |
       uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0xc90)) ^ uVar23;
  uVar42 = CONCAT44(DAT_182671d08,DAT_182671d08);
  uVar35 = (uVar50 ^ *(ulonglong *)(lVar2 + -0xbd8)) -
           (CONCAT44(uVar29,uVar10) ^ 0x930c590f167153df);
  *puVar14 = uVar35 ^ uVar42;
  uVar11 = DAT_182671d94;
  uVar50 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(lVar2 + -0x680) =
       uVar35 - (*(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0xc0089c8c)) ^ uVar23) ^ uVar50;
  lVar2 = DAT_182671c40;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (CONCAT44(uVar26,uVar30) ^ 0x9998d2b2cb2620dc) +
       (uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x110) = 0x70d989aa77bcbec3 - (uVar52 ^ 0x40e208a521cf2b43);
  uVar11 = DAT_182671ec8;
  uVar23 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar35 = *(ulonglong *)(lVar2 - (uVar41 ^ 0x23970bd7)) ^ uVar23 ^ uVar35 ^ uVar27 ^
           *(ulonglong *)(lVar2 + -0x5e8);
  uVar33 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar2 + -0x960) = uVar35;
  uVar52 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xf0) = (uVar35 ^ uVar23) >> (((byte)uVar4 ^ 0xfa) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x23970cef)) =
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0x38f161bc)) ^ uVar23) << 0x3b ^ uVar52;
  uVar38 = CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar35 = uVar33 ^ *(ulonglong *)(lVar2 + -0xf0) | *(ulonglong *)(lVar2 + -0x228) ^ uVar52;
  *(ulonglong *)(lVar2 + -0x888) = uVar35 ^ uVar38;
  *(ulonglong *)(lVar2 + -0xb18) = CONCAT44(uVar10,uVar20) ^ *puVar32 ^ uVar52 ^ 0xdec20297e3ad608d;
  uVar11 = DAT_182671dbc;
  uVar7 = DAT_182671c7c;
  uVar51 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  uVar23 = (ulonglong)DAT_182671c7c;
  local_res20 = (byte)uVar22;
  *(ulonglong *)(lVar2 + -0xa08) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xe1b0faac)) ^ uVar27) - uVar35 ^ uVar51;
  uVar35 = uVar50 ^ uVar24 ^ uVar49 ^ *(ulonglong *)(lVar2 + -0xa78) ^
           *(ulonglong *)(lVar2 + -0x680);
  *(ulonglong *)(lVar2 + -0xa50) = uVar35;
  uVar9 = DAT_182671c90;
  uVar24 = (uVar49 ^ uVar35) >> ((local_res20 ^ 0x5d) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc90) = uVar24 ^ CONCAT44(uVar11,uVar11);
  lVar2 = DAT_182671c40;
  uVar17 = uVar7 + uVar9;
  uVar33 = CONCAT44(DAT_182671f50,DAT_182671f50);
  bVar15 = (byte)uVar17;
  DAT_182671c4c = uVar17;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0xb93c21ac)) ^ uVar49) <<
       ((bVar15 ^ 0x70) & 0x3f) ^ uVar33;
  lVar3 = DAT_182671c40;
  puVar39 = (ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xb93c2674));
  uVar35 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar24 = uVar24 | uVar33 ^ *puVar39;
  puVar1 = (undefined8 *)(DAT_182671c40 + -0xb18);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar24 ^ uVar35;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x25c9257)) = uVar24 >> ((byte)*puVar1 & 0x3f);
  uVar11 = DAT_182671f68;
  puVar32 = (ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xb93c2024));
  uVar24 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar3 + -0xda8) =
       (uVar50 ^ *(ulonglong *)(lVar3 + -0x680)) - (uVar35 ^ *puVar32) ^ uVar24;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xb93c2aec)) =
       *(ulonglong *)(lVar3 + -0xbd8) ^ uVar33 ^ uVar35 ^ uVar51 ^ *(ulonglong *)(lVar3 + -0xa08);
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 + -0xda8) ^ uVar24) >> ((byte)*(undefined8 *)(lVar3 + -0xb18) & 0x3f);
  uVar27 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar3 + -0x960) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x110)) >> ((bVar15 ^ 0x7c) & 0x3f) ^ uVar27;
  uVar33 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xbb98cb7b)) ^ uVar33) << 0x29;
  uVar49 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(lVar2 + -0xf0) = uVar33 ^ CONCAT44(DAT_182671cf4,DAT_182671cf4);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0xb93c29d4)) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0x25c970f)) ^ uVar27 | uVar33) ^ uVar49;
  uVar27 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x25c9b87)) =
       (uVar51 ^ *(ulonglong *)(lVar3 + -0xa08)) - (*(ulonglong *)(lVar3 + -0x228) ^ uVar49) ^
       uVar27;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x25c9417)) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar35) >>
       (((byte)uVar11 ^ *(byte *)(lVar3 + -0x110)) & 0x3f);
  uVar35 = (ulonglong)DAT_182671d44;
  uVar33 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar38 = *(ulonglong *)(lVar3 + -0xda8) ^ *(ulonglong *)(lVar3 + -0x888) ^ uVar33 ^ uVar24 ^
           uVar38;
  *(ulonglong *)(lVar3 + -0xa50) = uVar38;
  uVar50 = (uVar38 >> 0x20 ^ uVar35) >> 8;
  uVar35 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar3 + -0xc90) = uVar50 ^ uVar52;
  uVar52 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar3 + -0xd88) = (uVar38 ^ uVar33) << ((bVar15 ^ 0x73) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xe0999587)) =
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0xc0089cac)) ^ uVar35 | uVar50) ^ uVar52;
  uVar50 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  uVar35 = *puVar14;
  *(ulonglong *)(lVar3 + -0x680) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0xfb3df381)) >>
       (((byte)uVar30 ^ 0x36) & 0x3f);
  uVar11 = DAT_182671df4;
  uVar33 = *puVar14;
  *(ulonglong *)(lVar3 + -0xb18) =
       (*(ulonglong *)(lVar3 + -0xda8) ^ uVar24) - (uVar35 ^ uVar52) ^ uVar50;
  uVar38 = CONCAT44(uVar11,uVar11);
  uVar35 = *(ulonglong *)(lVar3 + -0x5e8) ^ uVar33 ^ uVar38 ^ uVar52 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x510) = uVar35;
  *(ulonglong *)(lVar3 + -0x960) = (uVar35 ^ uVar38) >> (((byte)uVar18 ^ 0xf3) & 0x3f) ^ uVar50;
  uVar33 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar3 + -0xf0) = (uVar35 ^ uVar38) << (((byte)uVar26 ^ 0xcb) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar3 - (uVar53 ^ 0x814199f7)) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0x430a49f)) ^ uVar48) << 0xc;
  uVar24 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar35 = *(ulonglong *)(lVar3 + -0xf0) ^ uVar33 | uVar50 ^ *(ulonglong *)(lVar3 + -0x960);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar35 ^ uVar24;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 + -0x510) ^ uVar38) -
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x38f16dcc)) ^ uVar38);
  uVar38 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar2 + -0x888) = (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar27) - uVar35 ^ uVar38;
  lVar3 = DAT_182671c40;
  *puVar21 = *(ulonglong *)(lVar2 - (uVar31 ^ 0xe1b0fd6c)) ^ uVar42 ^ *(ulonglong *)(lVar2 + -0xb18)
             ^ uVar50 ^ uVar49;
  uVar35 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar2 + -0xc90) =
       (uVar42 ^ *(ulonglong *)(lVar2 + -0xa50)) >> ((bVar15 ^ 0x52) & 0x3f) ^ uVar35;
  uVar18 = DAT_182671c84;
  bVar45 = (byte)uVar6;
  uVar27 = CONCAT44(DAT_182671de4,DAT_182671de4);
  *puVar39 = (uVar42 ^ *(ulonglong *)(lVar2 + -0xa50)) << ((bVar45 ^ 0xdb) & 0x3f) ^ uVar27;
  uVar33 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xe1b0f53c)) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0x23970257)) ^ uVar35 |
       uVar27 ^ *(ulonglong *)(lVar3 + -0xd88)) ^ uVar33;
  uVar11 = DAT_182671e10;
  uVar6 = DAT_182671c74;
  local_d0 = (byte)uVar29;
  uVar42 = (ulonglong)DAT_182671c74;
  uVar30 = DAT_182671c4c ^ 0x67b5414b;
  *(ulonglong *)(lVar3 + -0x680) =
       (CONCAT44(uVar18,uVar22) ^ 0x1879d4ff1727035) >> ((local_d0 ^ 0xac) & 0x3f);
  uVar53 = CONCAT44(uVar11,uVar11);
  uVar35 = (*(ulonglong *)(lVar3 + -0xb18) ^ uVar50) - (*(ulonglong *)(lVar3 + -0xa78) ^ uVar33) ^
           uVar53;
  *(ulonglong *)(lVar3 + -0xda8) = uVar35;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xfbcf5b40)) =
       0xb1c62b25b90b40e8 >> (((byte)uVar35 ^ (byte)uVar11) & 0x3f);
  uVar18 = DAT_182671fa0;
  uVar35 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *puVar47 = *(ulonglong *)(lVar3 + -0xa78) ^ uVar35 ^ uVar33 ^ *(ulonglong *)(lVar3 + -0x888) ^
             uVar38;
  *(uint *)(lVar3 - (uVar42 ^ 0x20910efb)) = uVar30 + (DAT_182671c5c ^ 0x8f273a3c);
  uVar33 = (*puVar47 ^ uVar35) << 0x32;
  uVar42 = ((ulonglong)uVar18 << 0x12 | (ulonglong)(uVar18 >> 0xe)) ^ *puVar47 >> 0xe;
  uVar35 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar3 + -0xa08) = uVar42 ^ CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar11 = DAT_182671f10;
  *(ulonglong *)(lVar3 + -0x960) = uVar33 ^ uVar35;
  uVar50 = CONCAT44(uVar11,uVar11);
  bVar15 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x430a877)) = (uVar33 | uVar42) ^ uVar50;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0x10107d7)) =
       (CONCAT44(uVar26,uVar20) ^ 0x7e5d427197efdc85) << ((bVar15 ^ 0xff) & 0x3f);
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xfff5eae4)) =
       (*(ulonglong *)(lVar3 + -0x888) ^ uVar38) - (CONCAT44(uVar8,uVar34) ^ 0x5d8adb4ac6edd2cc) ^
       uVar19;
  uVar38 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0x5375f18)) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x110)) -
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xe1b0ffb4)) ^ uVar50) ^ uVar38;
  *(undefined1 *)(lVar2 - ((ulonglong)uVar29 ^ 0xe08f830a)) = **(undefined1 **)(lVar2 + -0xad0);
  uVar36 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar2 - (uVar44 ^ 0xc008930c)) =
       (*(ulonglong *)(lVar2 + -0xf0) ^ uVar50) - (CONCAT44(uVar4,uVar26) ^ 0x2f4b3fa4386d8f94) ^
       uVar36;
  uVar18 = DAT_182671c8c ^ 0xe7a7a832;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x38f1628c)) =
       *(ulonglong *)(lVar2 - (uVar41 ^ 0x2397036f)) ^ *(ulonglong *)(lVar2 + -0xbd8) ^ uVar53 ^
       uVar24 ^ uVar52;
  uVar12 = DAT_182671ed0;
  lVar3 = DAT_182671c40;
  *(uint *)(lVar2 + -0x5d4) = uVar18 | DAT_182671c7c ^ 0x60dd529a;
  uVar11 = DAT_182671d58;
  local_130 = (byte)uVar7;
  uVar33 = (*(ulonglong *)(lVar3 - (uVar37 ^ 0xe09993ef)) ^ uVar52) >> ((local_130 ^ 0x7f) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc90) = uVar33 ^ CONCAT44(uVar12,uVar12);
  uVar35 = (*(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar52) << 0x30;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar35 ^ CONCAT44(uVar11,uVar11);
  uVar37 = CONCAT44(DAT_182671f20,DAT_182671f20);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar29 ^ 0xe08f8333)) = (uVar33 | uVar35) ^ uVar37;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       CONCAT44(uVar5,uVar10) ^ 0xcfc9bef963dbd501 | *(ulonglong *)(DAT_182671c40 + -0xf0) ^ uVar50;
  uVar18 = DAT_182671c48;
  puVar39 = (ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0xbb98c7c3));
  uVar35 = (uVar53 ^ *puVar39) - (CONCAT44(uVar29,uVar34) ^ 0x49ba4ccb5e55756);
  uVar40 = (ulonglong)DAT_182671c48;
  *puVar14 = uVar35 ^ CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar11 = DAT_182671e8c;
  uVar19 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar2 + -0xa78) = uVar35 - (uVar37 ^ *(ulonglong *)(lVar2 + -0x680)) ^ uVar19;
  uVar12 = DAT_182671dd8;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar33 = (CONCAT44(uVar5,uVar9) ^ 0x5f41a253c97846b6) + (uVar37 ^ *(ulonglong *)(lVar2 + -0x680))
           ^ uVar35;
  *puVar47 = uVar33;
  uVar11 = DAT_182671d6c;
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar37 = CONCAT44(DAT_182671db4,DAT_182671db4);
  local_108 = (byte)uVar5;
  uVar33 = *(ulonglong *)(lVar2 + -0x5e8) ^ uVar42 ^ uVar33 ^ uVar35 ^ uVar38;
  *(ulonglong *)(lVar2 + -0xa08) = uVar33;
  uVar35 = (uVar33 ^ uVar42) >> ((local_108 ^ 0x1d) & 0x3f);
  *(ulonglong *)(lVar2 + -0x960) = uVar35 ^ uVar37;
  uVar12 = DAT_182671dd4;
  lVar2 = DAT_182671c40;
  uVar42 = (uVar42 ^ uVar33) << ((bVar45 ^ 0xfc) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar42 ^ CONCAT44(uVar11,uVar11);
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0xfbcf5ff0)) = (uVar35 | uVar42) ^ uVar33;
  uVar12 = DAT_182671fb0;
  uVar34 = DAT_182671c84;
  uVar35 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - (uVar40 ^ 0xe09990df)) ^ uVar37) >>
       ((*(byte *)(lVar2 + -0x510) ^ (byte)uVar11) & 0x3f);
  uVar43 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar44 ^ 0xc0089afc)) =
       (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar38) -
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0x60b083c8)) ^ uVar33) ^ uVar43;
  uVar40 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar33 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar35 = *(ulonglong *)(lVar2 + -0xa78) ^ uVar40 ^ uVar19 ^ uVar36 ^
           *(ulonglong *)(lVar2 + -0x228);
  *(ulonglong *)(lVar2 + -0xa50) = uVar35;
  *(ulonglong *)(lVar2 + -0xc90) = (uVar35 ^ uVar40) >> ((bVar45 ^ 0xfc) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x430a50f)) = (uVar40 ^ uVar35) << 0x20 ^ uVar33;
  uVar11 = DAT_182671e5c;
  uVar33 = *(ulonglong *)(lVar2 + -0xc90) ^ uVar46 | uVar33 ^ *(ulonglong *)(lVar2 + -0xd88);
  *(ulonglong *)(lVar2 + -0xf0) =
       CONCAT44(uVar6,uVar17) ^ *(ulonglong *)(lVar2 + -0xc90) ^ uVar46 ^ 0x90fea1f19e639638;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xb18) = uVar33 ^ uVar35;
  uVar5 = DAT_182671c98;
  uVar40 = (ulonglong)DAT_182671c98;
  *puVar39 = (*(ulonglong *)(lVar2 + -0xa78) ^ uVar19) - uVar33 ^ uVar27;
  *puVar14 = CONCAT44(uVar5,uVar5) ^ uVar35 ^ uVar43 ^ *(ulonglong *)(lVar2 + -0xb18) ^ *puVar32;
  uVar11 = DAT_182671ca4;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x25c98ef)) =
       (CONCAT44(uVar4,uVar34) ^ 0x481cbba281dfc5c3) - (CONCAT44(uVar8,uVar18) ^ 0xa79f134473e8b730)
  ;
  *puVar47 = (*puVar14 >> 0x20 ^ uVar40) >> 0x1a ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar16;
  return;
}



############ FUN_ 181026960 size=3721 ############

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

void FUN_181026960(void)

{
  ulonglong *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  uint uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  
  uVar6 = DAT_182671c60;
  uVar5 = DAT_182671c48;
  lVar4 = DAT_182671c40;
  uVar17 = (ulonglong)DAT_182671c60;
  uVar15 = (ulonglong)DAT_182671c48;
  uVar24 = DAT_182671c48 ^ DAT_182671c60;
  uVar2 = *(uint *)(&DAT_182613218 + DAT_182672120);
  uVar9 = *(uint *)(&DAT_182613220 + DAT_182672120) ^ DAT_182671c60;
  uVar18 = (ulonglong)DAT_182671c60;
  uVar13 = (ulonglong)uVar24;
  uVar28 = CONCAT44(DAT_182671c48,uVar24);
  uVar11 = *(uint *)(DAT_182671c40 + -0x27c) ^ DAT_182671fa4;
  uVar21 = CONCAT44(DAT_182671c48,DAT_182671c60) ^ 0xe3ca945ce8340a97 | uVar28 ^ 0xa0adcba90f8d8e5d;
  DAT_182671c5c = uVar24;
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar21;
  uVar10 = DAT_182671cf8;
  *(uint *)(lVar4 + -0x6c0) = uVar11 * (uVar5 ^ 0xffffffe3) ^ DAT_182671fb0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar24 ^ 0x608d46e4)) = uVar21 >> 0x26;
  uVar26 = (*(uint *)(lVar4 + -0x6c0) ^ DAT_182671fb0) + (*(uint *)(lVar4 + -0x94c) ^ DAT_182671f2c)
  ;
  *(uint *)(lVar4 + -0x61c) = uVar26 ^ uVar10;
  uVar11 = DAT_182671c74;
  uVar22 = uVar26 << (((byte)uVar24 ^ 0x19) & 0x1f) ^ DAT_182671d5c;
  *(uint *)(lVar4 + -0x1c8) = uVar22;
  *(ulonglong *)(lVar4 + -0xc18) =
       (CONCAT44(uVar24,uVar5) ^ 0x69b983c2a1e178ef) <<
       ((byte)*(undefined8 *)(lVar4 - (uVar18 ^ 0x9f72b233)) & 0x3f);
  uVar26 = uVar26 >> (((byte)uVar11 ^ 0xf8) & 0x1f) ^ DAT_182671f0c;
  *(uint *)(lVar4 + -0x4ac) = uVar26;
  uVar26 = uVar26 ^ DAT_182671f0c;
  *(ulonglong *)(lVar4 + -0x4b8) = CONCAT44(uVar11,uVar6) ^ 0xa3dbdea02aec0417;
  uVar10 = DAT_182671e18;
  uVar12 = DAT_182671db0;
  *(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0x608d4864)) =
       (uVar26 | uVar22 ^ DAT_182671d5c) ^ DAT_182671e18;
  uVar22 = DAT_182671d7c;
  *(longlong *)(lVar4 + -0x30) = *(longlong *)(lVar4 + -0x4b8) + -0x3f792b74a95ce2c8;
  *(uint *)(lVar4 + -0x634) =
       (*(uint *)(lVar4 - (uVar13 ^ 0x608d4bc0)) ^ DAT_182671dd4) +
       (*(uint *)(lVar4 + -0x684) ^ DAT_182671e64) ^ DAT_182671cec;
  *(uint *)(lVar4 + -0xae4) =
       *(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0x9e72b7df)) ^ uVar12 ^ DAT_182671cec;
  *(longlong *)(lVar4 + -0x510) =
       *(longlong *)(lVar4 + -0x760) <<
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)uVar5 ^ 0xfffff4df)) & 0x3f);
  *(uint *)(lVar4 + -0x94) = DAT_182671d2c ^ uVar10 ^ *(uint *)(lVar4 + -0x670);
  uVar25 = DAT_182671f3c;
  uVar21 = (ulonglong)DAT_182671f3c;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (CONCAT44(uVar6,uVar24) ^ 0x7440999f0b50e151) + *(longlong *)(lVar4 + -0x4b8);
  *(uint *)(lVar4 + -0x54) = *(uint *)(lVar4 - ((ulonglong)uVar5 ^ 0xfffff51b)) ^ uVar22 ^ uVar12;
  uVar26 = DAT_182671c80;
  uVar18 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar4 + -0x58c) =
       *(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0x608d4e80)) ^ DAT_182671d00 ^ DAT_182671d2c;
  bVar19 = (byte)DAT_182671fa0;
  *(ulonglong *)(lVar4 - (uVar13 ^ 0x608d4bb4)) =
       (CONCAT44(uVar6,uVar26) ^ 0x9f72b1eb618d4e13) + *(longlong *)(lVar4 + -0x9a8) ^ uVar21;
  bVar3 = (byte)DAT_182671c74;
  *(byte *)(lVar4 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x5a0) ^ uVar21) ^ bVar19 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar4 + -0x800) ^ (ulonglong)uVar10) = bVar3 ^ 0x8f;
  uVar27 = (*(byte *)(lVar4 + -0x1c3) ^ bVar19) ^ DAT_182671d98;
  uVar23 = (*(uint *)(lVar4 + -0x58c) ^ DAT_182671d00) + (uVar26 ^ 0xfdcf5c0a) ^ DAT_182671fb4;
  *(uint *)(lVar4 + -0x76c) = uVar23;
  uVar10 = DAT_182671c60;
  uVar23 = uVar23 ^ DAT_182671fb4;
  *(longlong *)(lVar4 + -0xd88) = *(longlong *)(lVar4 + -0xda8) << (((byte)uVar26 ^ 0x2b) & 0x3f);
  *(uint *)(lVar4 + -0x9dc) = uVar27;
  uVar27 = uVar27 ^ DAT_182671d98;
  uVar10 = uVar27 << (((byte)uVar10 ^ 0xfa) & 0x1f);
  uVar27 = (uVar26 ^ 0x618d4e13) * uVar27 ^ DAT_182671d08;
  *(uint *)(lVar4 + -0x27c) = uVar10 ^ uVar25;
  *(uint *)(lVar4 + -0x61c) = uVar27;
  uVar27 = uVar23 - uVar10 ^ DAT_182671d38;
  *(uint *)(lVar4 + -0x94c) = uVar27;
  uVar10 = DAT_182671efc;
  uVar27 = (*(uint *)(lVar4 + -0x54) ^ uVar22) * (uVar27 ^ DAT_182671d38) ^ DAT_182671ea0;
  *(uint *)(lVar4 + -0x6c0) = uVar27;
  *(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0x9e72b023)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0x9e72b7f7)) ^ DAT_182671d08) +
       (uVar27 ^ DAT_182671ea0) ^ uVar10;
  uVar23 = DAT_182671f48;
  uVar27 = DAT_182671db4;
  *(uint *)(lVar4 - (uVar18 ^ 0x618d4ab8)) =
       (*(uint *)(lVar4 - (uVar15 ^ 0xfffffe37)) ^ uVar10) << (((byte)DAT_182671c60 ^ 0xe6) & 0x1f)
       ^ DAT_182671f48;
  uVar10 = (*(uint *)(lVar4 - (uVar18 ^ 0x618d4fdc)) ^ uVar10) >> 0x13 ^ DAT_182671cd0;
  *(uint *)(lVar4 + -0x684) = uVar10;
  uVar14 = DAT_182671d74 ^ DAT_182671cb4;
  uVar20 = DAT_182671d74 ^ uVar12;
  *(uint *)(lVar4 + -0x634) =
       (uVar10 ^ DAT_182671cd0 | uVar23 ^ *(uint *)(lVar4 + -0x4ac)) ^ DAT_182671cdc;
  uVar10 = (*(uint *)(lVar4 - (uVar15 ^ 0xfffffa2b)) ^ DAT_182671dd4) +
           (*(uint *)(lVar4 + -0x54) ^ uVar22) ^ DAT_182671cb4;
  *(uint *)(lVar4 + -0x670) = uVar10;
  *(uint *)(lVar4 - (uVar13 ^ 0x608d44f0)) = uVar14 ^ uVar10;
  uVar10 = uVar27 ^ DAT_182671cdc ^ *(uint *)(lVar4 + -0x634);
  *(uint *)(lVar4 + -0x94) = uVar10;
  uVar10 = uVar10 ^ DAT_182671f28;
  *(uint *)(lVar4 + -0x58c) = uVar20 ^ *(uint *)(lVar4 + -0xae4);
  uVar21 = (ulonglong)DAT_182671f20;
  *(uint *)(lVar4 + -0x76c) = uVar10 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x920) = uVar28 ^ 0x3b4efe1c9b74da60;
  *(ulonglong *)(lVar4 + -0x660) =
       *(longlong *)(lVar4 + -0x9a8) + 0x12 + (CONCAT44(uVar11,uVar24) ^ 0x9e72b1eb608d4e14) * 0x20
       ^ uVar21;
  uVar22 = DAT_182671c74;
  uVar10 = DAT_182671c50;
  uVar28 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x9e72b0fb)) =
       (CONCAT44(uVar26,uVar26) ^ 0xe46e12254e2af2ea) + 0x6756844b11b493ac;
  bVar3 = (byte)DAT_182671d34;
  bVar19 = (byte)DAT_182671c48;
  *(byte *)(lVar4 + -0xbb1) =
       *(byte *)(uVar21 ^ *(ulonglong *)(lVar4 + -0x660)) ^ (byte)DAT_182671d34 ^
       (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar4 + -0xbe0) ^ (ulonglong)DAT_182671d10) = bVar19 ^ 0x8e;
  uVar23 = DAT_182671de8;
  *(uint *)(lVar4 + -0x27c) = (bVar3 ^ *(byte *)(lVar4 + -0xbb1)) ^ DAT_182671de8;
  uVar14 = uVar22 ^ 0x230a3f5;
  *(uint *)(lVar4 - (uVar13 ^ 0x608d4758)) =
       (*(uint *)(lVar4 - (uVar15 ^ 0xfffff893)) ^ DAT_182671f28) + uVar14 ^ uVar25;
  uVar13 = (ulonglong)DAT_182671c70;
  *(longlong *)(lVar4 + -0xa70) = -0x754d3bc384a2e274 << (((byte)uVar11 ^ 0xf8) & 0x3f);
  *(uint *)(lVar4 + -0x9dc) = (*(uint *)(lVar4 + -0x27c) ^ uVar23) << 0x11 ^ DAT_182671e40;
  uVar11 = (*(uint *)(lVar4 + -0x94c) ^ uVar25) -
           (*(uint *)(lVar4 - (uVar13 ^ 0x5f97b1a4)) ^ DAT_182671e40) ^ DAT_182671cc8;
  uVar13 = (ulonglong)DAT_182671c84;
  *(uint *)(lVar4 + -0x6c0) = uVar11;
  *(uint *)(lVar4 + -0x61c) =
       (uVar11 ^ DAT_182671cc8) * (*(uint *)(lVar4 + -0x58c) ^ uVar12) ^ DAT_182671eac;
  uVar25 = DAT_182671d14;
  uVar26 = DAT_182671c90;
  uVar7 = DAT_182671c64;
  uVar21 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar4 - (uVar28 ^ 0x78b89697)) =
       (*(uint *)(lVar4 - (uVar13 ^ 0x87c7ee8c)) ^ uVar23) * 0x12 ^ DAT_182671ccc;
  uVar23 = DAT_182671e98;
  uVar20 = (*(uint *)(lVar4 - (uVar17 ^ 0x9f72b023)) ^ DAT_182671ccc) +
           (*(uint *)(lVar4 + -0x61c) ^ DAT_182671eac);
  *(uint *)(lVar4 + -0x4ac) = uVar20 ^ uVar25;
  uVar11 = DAT_182671c60;
  *(uint *)(lVar4 + -0x684) = uVar20 << (((byte)uVar22 ^ 0xe6) & 0x1f) ^ DAT_182671df8;
  uVar22 = (uVar25 ^ *(uint *)(lVar4 + -0x4ac)) >> (((byte)uVar11 ^ 0xf8) & 0x1f) ^ _DAT_182671cf0;
  *(uint *)(lVar4 + -0x670) = uVar22;
  uVar22 = uVar22 ^ _DAT_182671cf0;
  *(uint *)(lVar4 + -0x54) = (*(uint *)(lVar4 + -0x94) ^ uVar27) * (uVar11 ^ 0xeea20216);
  *(uint *)(lVar4 + -0x634) =
       (*(uint *)(lVar4 - (uVar21 ^ 0x8b0877d5)) ^ DAT_182671df8 | uVar22) ^ DAT_182671cac;
  *(longlong *)(lVar4 - ((ulonglong)DAT_182671c58 ^ 0xff3c5fb7)) =
       *(longlong *)(lVar4 + -0x8f0) << 0x12;
  uVar25 = DAT_182671c94;
  uVar28 = (ulonglong)DAT_182671c94;
  uVar11 = (*(uint *)(lVar4 + -0x58c) ^ uVar12) + (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) ^
           uVar23;
  *(uint *)(lVar4 + -0xae4) = uVar11;
  *(uint *)(lVar4 - (uVar17 ^ 0x9f72b687)) = uVar11 ^ DAT_182671f5c ^ uVar23;
  uVar12 = DAT_182671e00;
  uVar22 = DAT_182671c68;
  uVar11 = DAT_182671c54;
  uVar21 = (ulonglong)DAT_182671c54;
  uVar13 = (ulonglong)DAT_182671ca4;
  uVar17 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar4 + -0x680) = CONCAT44(uVar7,uVar25) ^ 0xaa12acb9ea46675c;
  *(uint *)(lVar4 - ((ulonglong)uVar10 ^ 0x78b89e13)) =
       *(uint *)(lVar4 - (uVar17 ^ 0x78381524)) ^ DAT_182671dc0 ^ DAT_182671cac;
  *(uint *)(lVar4 + -0x9dc) = *(uint *)(lVar4 + -0x76c) ^ DAT_182671ddc ^ DAT_182671f5c;
  *(uint *)(lVar4 + -0x6c0) = *(uint *)(lVar4 + -0x94c) ^ uVar12 ^ DAT_182671dc0;
  uVar8 = DAT_182671c78;
  pbVar16 = (byte *)((CONCAT44(DAT_182671c88,uVar6) ^ 0x10004109f72b1eb) * 0x20 + 0x1d +
                    *(longlong *)(lVar4 - ((ulonglong)uVar22 ^ 0x81808df8)));
  *(ulonglong *)(lVar4 + -0x818) = (ulonglong)pbVar16 ^ uVar13;
  *(ulonglong *)(lVar4 + -0xa08) =
       (CONCAT44(uVar11,uVar8) ^ 0xb9ea3d72c96dcae) <<
       ((byte)*(undefined8 *)(lVar4 - (uVar21 ^ 0x874762d8)) & 0x3f);
  bVar3 = (byte)DAT_182671cfc;
  lVar4 = DAT_182671c40;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x7f0);
  *(byte *)(DAT_182671c40 + -0xac1) = *pbVar16 ^ (byte)DAT_182671cfc ^ (byte)DAT_182671e0c;
  uVar17 = CONCAT44(uVar5,DAT_182671c58);
  *(byte *)(*puVar1 ^ (ulonglong)DAT_182671ee4) = (byte)uVar22 ^ 0x51;
  *(ulonglong *)(lVar4 + -0x380) =
       (uVar17 ^ 0xd9c6fc6681245fe) >> ((byte)*(undefined8 *)(lVar4 + -0x680) & 0x3f);
  uVar22 = DAT_182671c8c;
  uVar25 = (uint)(*(byte *)(lVar4 - (uVar18 ^ 0x618d44d5)) ^ bVar3);
  *(uint *)(lVar4 + -0x27c) = uVar25 ^ uVar23;
  uVar5 = DAT_182671c84;
  uVar17 = (ulonglong)DAT_182671c84;
  *(uint *)(lVar4 + -0x61c) =
       (*(uint *)(lVar4 + -0x6c0) ^ uVar12) + (uVar10 ^ 0xe4fa8541) ^ DAT_182671f70;
  uVar25 = uVar25 << (((byte)uVar7 ^ 0x4e) & 0x1f) ^ DAT_182671e9c;
  *(uint *)(lVar4 + -0x1c8) = uVar25;
  uVar27 = *(uint *)(lVar4 + -0x9dc) ^ DAT_182671ddc;
  uVar20 = (*(uint *)(lVar4 - (uVar17 ^ 0x87c7eaec)) ^ DAT_182671f70) - (uVar25 ^ DAT_182671e9c);
  *(uint *)(lVar4 + -0x94) = uVar20 ^ DAT_182671f80;
  uVar25 = DAT_182671de8;
  *(uint *)(lVar4 + -0x54) = uVar27 * uVar20 ^ DAT_182671d60;
  *(uint *)(lVar4 - ((ulonglong)uVar22 ^ 0x783817bc)) =
       (*(uint *)(lVar4 - (uVar18 ^ 0x618d4c68)) ^ uVar23) * (uVar26 ^ 0x8b08714c) ^ DAT_182671d48;
  uVar17 = (ulonglong)DAT_182671c4c;
  *(uint *)(lVar4 + -0x684) =
       (*(uint *)(lVar4 - (uVar28 ^ 0xffffffab)) ^ DAT_182671d60) +
       (*(uint *)(lVar4 - (uVar21 ^ 0x87476c0c)) ^ DAT_182671d48) ^ uVar25;
  uVar20 = (*(uint *)(lVar4 - (uVar17 ^ 0x1000684)) ^ uVar25) <<
           (((byte)DAT_182671c6c ^ 0xe6) & 0x1f);
  uVar23 = *(uint *)(lVar4 + -0x9dc) ^ DAT_182671ddc;
  *(ulonglong *)(lVar4 + -0x628) = *(ulonglong *)(lVar4 + -0xa08) ^ 0x616967b32e718ef1;
  uVar27 = *(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar4 + -0x670) = uVar20 ^ uVar12;
  uVar12 = uVar23 + uVar27 ^ DAT_182671d2c;
  *(uint *)(lVar4 + -0x634) = uVar12;
  *(uint *)(lVar4 + -0x76c) = uVar12 ^ DAT_182671ce4 ^ DAT_182671d2c;
  uVar25 = (*(uint *)(lVar4 + -0x684) ^ uVar25) >> 0x13 ^ DAT_182671f74;
  *(uint *)(lVar4 + -0x58c) = uVar25;
  uVar12 = (uVar25 ^ DAT_182671f74 | uVar20) ^ DAT_182671d58;
  *(uint *)(lVar4 + -0xae4) = uVar12;
  uVar7 = DAT_182671c7c;
  uVar25 = DAT_182671ca8 ^ DAT_182671d58;
  *(ulonglong *)(lVar4 + -0xf0) =
       *(ulonglong *)(lVar4 - (uVar15 ^ 0xfffffeef)) >>
       ((byte)*(undefined8 *)(lVar4 + -0x680) & 0x3f);
  uVar13 = (ulonglong)DAT_182671d30;
  *(uint *)(lVar4 - (uVar15 ^ 0xfffff6b3)) = uVar25 ^ uVar12;
  *(uint *)(lVar4 - (uVar28 ^ 0xfffff93f)) =
       DAT_182671e14 ^ DAT_182671ce4 ^ *(uint *)(lVar4 + -0x76c);
  *(ulonglong *)(lVar4 + -0x228) =
       (CONCAT44(uVar24,uVar11) ^ 0x3204b8b92e324ad9) - (CONCAT44(uVar8,uVar7) ^ 0x46c089656926fb8c)
  ;
  uVar11 = DAT_182671df0;
  uVar17 = CONCAT44(DAT_182671c58,uVar26);
  *(uint *)(lVar4 + -0x61c) =
       *(uint *)(lVar4 - (uVar18 ^ 0x618d4758)) ^ DAT_182671df0 ^ DAT_182671ca8;
  bVar3 = (byte)DAT_182671e48;
  *(ulonglong *)(lVar4 + -0xbb0) =
       (uVar17 ^ 0xff3c538f8b087151) * 0x20 + (CONCAT44(uVar24,uVar10) ^ 0x608d4e1478b89757) +
       *(longlong *)(lVar4 + -0x9a8) ^ uVar13;
  *(byte *)(lVar4 - ((ulonglong)uVar5 ^ 0x87c7efb1)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar18 ^ 0x618d45a4)) ^ uVar13) ^ bVar3 ^
       (byte)DAT_182671e0c;
  *(undefined1 *)(*(ulonglong *)(lVar4 + -0x198) ^ (ulonglong)DAT_182671e28) = 0x16;
  uVar10 = (uVar11 ^ *(uint *)(lVar4 + -0x61c)) + uVar14 ^ DAT_182671dcc;
  *(uint *)(lVar4 + -0x1c8) = (*(byte *)(lVar4 + -0x341) ^ bVar3) ^ DAT_182671cc0;
  uVar17 = CONCAT44(uVar6,DAT_182671c70);
  *(uint *)(lVar4 + -0x94) = uVar10;
  *(ulonglong *)(lVar4 + -0x5e8) = 0xcc2b1f8a2a139a9 >> (((byte)uVar22 ^ 0xe) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar2 ^ uVar24;
  *(ulonglong *)(lVar4 + -0xa60) = CONCAT44(uVar6,uVar5) ^ uVar17 ^ 0xe7f9ed3ebae7f37;
  return;
}



############ FUN_ 180fcef00 size=3041 ############

void FUN_180fcef00(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  byte *pbVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  byte *pbVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  byte local_res8;
  
  bVar11 = (byte)DAT_182671d08;
  uVar7 = DAT_182671c68;
  uVar6 = DAT_182671c64;
  uVar5 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar15 = (ulonglong)DAT_182671c4c;
  uVar28 = (ulonglong)DAT_182671c64;
  uVar16 = (ulonglong)DAT_182671c68;
  uVar22 = DAT_182671c4c << 0x10 | DAT_182671c4c >> 0x10;
  uVar26 = DAT_182671c64 + DAT_182671c68;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar15 ^ 0x50b15598) + (longlong)DAT_182672300);
  uVar14 = *(uint *)(&DAT_182613220 + DAT_182672300) ^ DAT_182671c64;
  uVar23 = (ulonglong)DAT_182671c68;
  uVar25 = (ulonglong)DAT_182671ccc;
  uVar24 = (ulonglong)uVar26;
  DAT_182671c7c = uVar22;
  DAT_182671c80 = uVar26;
  *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xfefb2707)) =
       *(ulonglong *)(DAT_182671c40 + -0x710) ^ uVar25;
  lVar3 = DAT_182671c40;
  pbVar21 = *(byte **)(lVar2 + -0xbb0);
  uVar19 = (ulonglong)DAT_182671f28;
  *(ulonglong *)(lVar2 + -0x710) = CONCAT44(uVar26,uVar6) ^ 0xffc39bd4f5016490;
  *(ulonglong *)(lVar2 + -0x768) = (ulonglong)pbVar21 ^ uVar19;
  uVar31 = (ulonglong)uVar22;
  *(ulonglong *)(lVar2 + -0xbb0) = CONCAT44(uVar7,uVar26) ^ 0x2c81d11358fbfe2f;
  *(byte **)(lVar2 + -0x738) = pbVar21 + 1;
  lVar4 = DAT_182671c40;
  pbVar27 = (byte *)(lVar2 - (uVar23 ^ 0xfefb2e3e));
  *pbVar27 = (byte)DAT_182671d24 ^ bVar11 ^ *pbVar21;
  *(ulonglong *)(lVar4 + -0x768) = CONCAT44(uVar22,uVar5) ^ 0x63c4e7d5275aff54;
  *(ulonglong *)(lVar4 + -0x300) =
       (CONCAT44(uVar6,uVar5) ^ 0x5fffdb3a50b15591) + (*(ulonglong *)(lVar4 + -0x9f8) ^ uVar25);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x55905949)) ^ uVar25) =
       *pbVar27 ^ (byte)DAT_182671d24;
  *(undefined1 *)(lVar3 + -0xc1) = 0x51;
  uVar13 = DAT_182671f24;
  uVar23 = (ulonglong)DAT_182671d04;
  *(undefined8 *)(lVar3 - (uVar24 ^ 0x5efb0eb1)) = *(undefined8 *)(lVar3 - (uVar15 ^ 0x50b15690));
  *(ulonglong *)(lVar3 + -0x300) = CONCAT44(uVar6,uVar22) ^ 0xc94677f755bbe3a0;
  uVar19 = (ulonglong)DAT_182671ea0;
  *(ulonglong *)(lVar3 + -0x380) =
       *(ulonglong *)(CONCAT44(DAT_182671da0,DAT_182671da0) ^ *(ulonglong *)(lVar3 + -0x610)) ^
       CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x559056a1)) =
       CONCAT44(uVar26,uVar5) ^ 0xedfaa6e72f280c54;
  *(undefined8 *)(lVar3 + -0x3c0) = *(undefined8 *)(lVar3 + -0x738);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar7 ^ 0xfefb29c7)) = 0xb15f5495f740e723;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0x5efb0949)) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0x5fffdfb2)) ^ uVar23;
  pbVar21 = *(byte **)(lVar3 + -0x3c0);
  *(undefined8 *)(lVar3 + -0x488) = 0x30229c047bf97348;
  *(ulonglong *)(lVar3 + -0x170) = (ulonglong)pbVar21 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x3c0) = CONCAT44(uVar7,uVar7) ^ 0xe1da98f1e1aaec71;
  *(ulonglong *)(lVar3 + -0xc80) = (*(ulonglong *)(lVar3 - (uVar15 ^ 0x50b154e0)) ^ uVar19) + 1;
  *(byte *)(lVar3 + -0xb5a) = *pbVar21 ^ (byte)DAT_182671ce8 ^ bVar11;
  pbVar21 = (byte *)(*(ulonglong *)(lVar3 + -0x370) ^ uVar23);
  *(ulonglong *)(lVar3 + -0x170) = CONCAT44(uVar22,uVar26) ^ 0x423b2d85b22b4397;
  *(byte **)(lVar3 + -0xa20) = pbVar21 + 1;
  *pbVar21 = *(byte *)(lVar3 - (uVar15 ^ 0x50b15eca)) ^ (byte)DAT_182671ce8;
  *(byte *)(lVar3 + -0xb5a) = (byte)(uVar5 >> 0x10) ^ 0xe2;
  uVar23 = (ulonglong)DAT_182671cb0;
  *(undefined8 *)(lVar3 - (uVar31 ^ 0x55905da9)) = *(undefined8 *)(lVar3 + -0xa20);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xfefb24df)) =
       CONCAT44(uVar6,uVar26) ^ 0x953c7cde5e563128;
  *(undefined8 *)(lVar3 + -400) = *(undefined8 *)(lVar3 + -0xc80);
  uVar8 = DAT_182671c74;
  *(undefined8 *)(lVar3 + -0xc80) = 0xbc63d3020462bf1d;
  uVar18 = ~uVar8;
  uVar30 = (ulonglong)uVar18;
  DAT_182671c70 = uVar18;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xceef27a6)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x3110de89)) ^ uVar23;
  *(ulonglong *)(lVar3 + -0xd18) = CONCAT44(uVar18,uVar8) ^ 0x1d71cf3d2cc1af10;
  uVar29 = (ulonglong)DAT_182671e54;
  uVar19 = *(ulonglong *)(lVar3 - (uVar30 ^ 0xceef2dfe));
  *(ulonglong *)(lVar3 + -0x60) = uVar19 ^ uVar29;
  uVar9 = DAT_182671c84;
  lVar2 = DAT_182671c40;
  uVar32 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -400) = uVar32 ^ 0x8ddf0d2f6707a439;
  bVar17 = (byte)DAT_182671eb4;
  *(ulonglong *)(lVar3 + -0x270) = (CONCAT44(uVar18,uVar18) ^ 0xceef2c6eceef2c6f) + uVar19;
  *(ulonglong *)(lVar3 + -0xf0) = uVar32 ^ 0xfc0a17955534529c | *(ulonglong *)(lVar3 + -0x7c0);
  *(undefined8 *)(lVar3 - (uVar28 ^ 0x5fffdbca)) = 0x9f0b9e0d4b8eabd7;
  uVar10 = DAT_182671c88;
  uVar19 = (ulonglong)DAT_182671c88;
  uVar33 = uVar9 - DAT_182671c88;
  uVar25 = (ulonglong)DAT_182671c88;
  DAT_182671c58 = uVar33;
  *(byte *)(lVar2 + -0x7c2) = *(byte *)(uVar29 ^ *(ulonglong *)(lVar2 + -0x60)) ^ bVar17 ^ bVar11;
  *(uint *)(lVar2 + -0x444) = uVar9 ^ 0x5aad25c8;
  *(uint *)(*(ulonglong *)(lVar2 - (uVar25 ^ 0x82dfd870)) ^ (ulonglong)DAT_182671d1c) =
       uVar33 ^ 0x8610d2ea;
  *(ulonglong *)(lVar2 + -0x3f0) = CONCAT44(uVar10,uVar9) ^ 0x49543c9362102ec6;
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x82dfdbe0)) =
       CONCAT44(uVar33,uVar10) ^ 0x2f0c175217c737af;
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       CONCAT44(uVar9,uVar10) ^ CONCAT44(uVar33,uVar33) ^ 0xd3362e1335c1780;
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0x82dfd2e0)) = CONCAT44(uVar9,uVar9) ^ 0xb998efd1d2e625db
  ;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar33 ^ 0xad68aec5)) =
       (CONCAT44(uVar33,uVar9) ^ 0xad68aa8530488604) +
       (*(ulonglong *)(DAT_182671c40 + -0xbc8) ^ uVar23);
  local_res8 = (byte)uVar18;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x82dfd048)) ^ uVar23) =
       bVar17 ^ *(byte *)(lVar2 + -0x7c2);
  uVar25 = (ulonglong)DAT_182671d68;
  *(byte *)(lVar2 + -0x7c2) = local_res8 ^ 0xd7;
  *(undefined8 *)(lVar2 + -0x2a8) = *(undefined8 *)(lVar2 + -0x440);
  *(undefined8 *)(lVar2 - (uVar28 ^ 0x5fffdf7a)) = 0xc414455d667a2bae;
  *(undefined8 *)(lVar2 + -0x250) = *(undefined8 *)(lVar2 + -0x270);
  *(ulonglong *)(lVar2 + -0x998) = uVar25 ^ *(ulonglong *)(lVar2 + -0x2a8);
  *(ulonglong *)(lVar2 + -0x270) = CONCAT44(uVar18,uVar8) ^ 0x379f1793d648670d;
  *(ulonglong *)(lVar2 + -0x2a8) = CONCAT44(uVar8,uVar6) ^ 0xa344ec4f4c7c5fdf;
  *(ulonglong *)(lVar2 + -0x228) =
       (CONCAT44(uVar18,uVar5) ^ 0xa0253621c5fd38a1) << (((byte)uVar9 ^ 0x26) & 0x3f);
  uVar12 = DAT_182671dcc;
  lVar3 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671dcc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x3048842d)) =
       CONCAT44(uVar26,uVar10) ^ 0xd9a4d6abf83f47ed;
  *(ulonglong *)(lVar3 + -0x520) = uVar23 ^ *(ulonglong *)(lVar3 + -0x250);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x5efb0869)) = CONCAT44(uVar5,uVar18) ^ 0x3985689ddafe0e58;
  *(ulonglong *)(lVar3 + -0x698) =
       (CONCAT44(uVar10,uVar5) ^ 0x82dfdb8050b15591) +
       ((ulonglong)uVar12 ^ *(ulonglong *)(lVar3 + -0x520));
  lVar2 = DAT_182671c40;
  *(byte *)(lVar3 + -0x199) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar30 ^ 0xceef294e)) ^ uVar23) ^ (byte)DAT_182671dfc ^
       (byte)DAT_182671d08;
  *(ulonglong *)(lVar2 + -0x520) = CONCAT44(uVar10,uVar8) ^ 0x525c8a7dd37af40b;
  *(ulonglong *)(lVar2 + -0x278) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar33 ^ 0xad68a31d)) ^ uVar25) +
       (CONCAT44(uVar26,uVar18) ^ 0x5efb0a39ceef2c6f);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x5fffdb0a)) =
       (CONCAT44(uVar33,uVar33) ^ 0x4abf238ebfd153f2) <<
       ((byte)*(undefined8 *)(lVar2 - (uVar24 ^ 0x5efb0131)) & 0x3f);
  *(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0xfefb25f7)) = CONCAT44(uVar9,uVar6) ^ 0xa5dcee9409859691
  ;
  lVar2 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671ca8;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0xfefb2767)) ^ uVar25) =
       *(byte *)(DAT_182671c40 - (uVar30 ^ 0xceef2df7)) ^ (byte)DAT_182671dfc;
  *(undefined8 *)(lVar2 + -0xbc0) = *(undefined8 *)(lVar2 + -0x278);
  *(undefined1 *)(lVar2 + -0x199) = 0xc9;
  *(ulonglong *)(lVar2 + -0x278) = uVar32 ^ 0x61ba39c5ea157986;
  *(undefined8 *)(lVar2 - (uVar24 ^ 0x5efb09f1)) =
       *(undefined8 *)(lVar2 - ((ulonglong)uVar9 ^ 0x3048809d));
  puVar20 = (ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x304885cd));
  *(ulonglong *)(lVar2 + -0x698) = CONCAT44(uVar9,uVar6) ^ 0x2b8dc8f81cbb46c0;
  *(uint *)(lVar2 + -0x9dc) = uVar18 ^ 0xee1263ad;
  uVar16 = (ulonglong)DAT_182671f0c;
  *(ulonglong *)(lVar2 + -2000) = uVar16 ^ *(ulonglong *)(lVar2 + -0xbc0);
  *(undefined8 *)(lVar2 + -0xbc0) = 0x341d56091bb9a6c1;
  *(ulonglong *)(lVar2 + -0x630) = uVar23 ^ *puVar20;
  *puVar20 = 0x6ecbe893f71512ab;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x55905871)) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x82dfddb0)) ^ uVar23) +
       (CONCAT44(uVar5,uVar22) ^ 0x50b15590559050b0);
  bVar11 = (byte)DAT_182671d44;
  bVar17 = *(byte *)(uVar23 ^ *(ulonglong *)(lVar2 + -0x630)) ^ (byte)DAT_182671d44 ^
           (byte)DAT_182671d08;
  pbVar21 = (byte *)(uVar16 ^ *(ulonglong *)(lVar2 + -2000));
  *(ulonglong *)(lVar2 + -0x630) = CONCAT44(uVar7,uVar7) ^ 0x87b972892ec5a709;
  *(byte *)(lVar2 + -0x1c2) = bVar17;
  *(byte **)(lVar2 + -0xd60) = pbVar21 + 1;
  *(ulonglong *)(lVar2 + -0xc18) = CONCAT44(uVar22,uVar26) ^ 0x3ea1c93dd1cd9333;
  *(undefined8 *)(lVar2 + -0x7e8) = 0;
  *pbVar21 = bVar11 ^ bVar17;
  *(byte *)(lVar2 - ((ulonglong)uVar33 ^ 0xad68ab47)) = (byte)uVar33 ^ 0xf5;
  uVar19 = *(ulonglong *)(lVar2 - (uVar28 ^ 0x5fffd65a));
  *(ulonglong *)(lVar2 + -0x508) = uVar19;
  *(undefined8 *)(lVar2 + -0x528) = *(undefined8 *)(lVar2 + -0x8c0);
  *(ulonglong *)(lVar2 + -0xd60) = CONCAT44(uVar5,uVar10) ^ 0xc51badcccba443b4;
  uVar16 = (ulonglong)DAT_182671d54;
  *(ulonglong *)(lVar2 + -0x8c0) = CONCAT44(uVar26,uVar8) ^ 0x94a0f7772d30f4b5;
  *(ulonglong *)(lVar2 + -0xb50) = uVar16 ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xceef2966)) = CONCAT44(uVar10,uVar6) ^ 0x30b070267a8ffab8;
  *(longlong *)(lVar2 + -0x510) =
       *(longlong *)(lVar2 - (uVar31 ^ 0x55905081)) + *(longlong *)(lVar2 - (uVar15 ^ 0x50b15610));
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar1 ^ uVar22;
  return;
}



############ FUN_ 180f6ad20 size=5359 ############

void FUN_180f6ad20(void)

{
  ulonglong *puVar1;
  int iVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  byte *pbVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_d8;
  
  uVar16 = DAT_182671c88;
  uVar8 = DAT_182671c6c;
  uVar6 = DAT_182671c68;
  uVar10 = DAT_182671c64;
  uVar9 = DAT_182671c58;
  uVar7 = DAT_182671c54;
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  DAT_182671c78 = DAT_182671c50 << 0x10 | DAT_182671c50 >> 0x10;
  uVar26 = DAT_182671c54 & 3;
  DAT_182671c94 = DAT_182671c84 * DAT_182671c4c;
  if (uVar26 < 2) {
    DAT_182671c8c = DAT_182671c6c;
    if (uVar26 == 0) {
      DAT_182671c8c = DAT_182671c54;
    }
  }
  else {
    DAT_182671c8c = DAT_182671c68;
    if (uVar26 < 3) {
      DAT_182671c8c = DAT_182671c90;
    }
  }
  uVar46 = (ulonglong)DAT_182671c58;
  uVar33 = (ulonglong)DAT_182671c88;
  uVar34 = DAT_182671c58 - DAT_182671c88;
  uVar32 = (ulonglong)DAT_182671c48;
  uVar43 = (ulonglong)DAT_182671c64;
  uVar38 = DAT_182671c48 ^ DAT_182671c64;
  uVar26 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c58 ^ 0xe7fe714e) + (longlong)DAT_1826721d8);
  uVar24 = *(uint *)(&DAT_182613220 + DAT_1826721d8) ^ DAT_182671c88;
  uVar27 = (ulonglong)uVar38;
  DAT_182671c5c = uVar34;
  DAT_182671c60 = uVar38;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       *(longlong *)(DAT_182671c40 + -0x110) -
       (CONCAT44(DAT_182671c58,DAT_182671c64) ^ 0x6b5c204f7dd576fc);
  uVar19 = DAT_182671fb0;
  uVar36 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x7146e516)) =
       *(longlong *)(lVar3 + -0x310) + (CONCAT44(uVar5,uVar38) ^ 0x7140a7e42c66e141) * 8 ^ uVar36;
  uVar12 = DAT_182671c8c;
  uVar41 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar30 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar3 + -0x920) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x2e8) ^ uVar36) ^ uVar41 ^ uVar30;
  uVar36 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c90 ^ 0xefbf96ef)) ^ uVar41) >>
           (((byte)uVar8 ^ 0x95) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  bVar44 = (byte)uVar19 ^ (byte)DAT_182671e40 ^ (byte)uVar36;
  *(ulonglong *)(lVar3 + -0xa50) = uVar36;
  uVar36 = (ulonglong)DAT_182671f0c;
  *(byte *)(lVar3 + -0x6b9) = bVar44;
  uVar18 = DAT_182671c94;
  uVar14 = DAT_182671c78;
  uVar13 = DAT_182671c74;
  bVar44 = bVar44 ^ (byte)DAT_182671d18 ^ (byte)DAT_182671e40;
  *(ulonglong *)(lVar3 + -0x2f8) =
       (CONCAT44(uVar12,DAT_182671c94) ^ 0x7146e7fea5f6fa85) + *(longlong *)(lVar3 + -0x1d0) ^
       uVar36;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xffef7907)) ^ uVar36) = bVar44;
  uVar20 = DAT_182671d58;
  uVar19 = DAT_182671cc8;
  *(longlong *)(lVar3 + -0xa08) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_182671c4c ^ 0x25085d5)) + 0x344d56049c01c4db;
  uVar21 = DAT_182671f3c;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x9b3982fc)) +
           (CONCAT44(uVar13,uVar9) ^ 0xffef7bffe7fe7145) * 8);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar1 ^ CONCAT44(uVar19,uVar19);
  uVar19 = DAT_182671ca4;
  uVar35 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar3 + -0x3d8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x31ef3d2d)) ^ uVar35) + 0x7f7f95fad4db8b1b;
  uVar8 = DAT_182671c50;
  uVar41 = CONCAT44(uVar19,uVar19);
  uVar36 = *puVar1 ^ uVar41 ^ uVar30;
  bVar44 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar3 + -0xa60) = uVar36;
  uVar19 = DAT_182671f84;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x7140af14)) =
       (uVar41 ^ uVar36) >> ((bVar44 ^ 0xee) & 0x3f) ^ CONCAT44(uVar20,uVar20);
  uVar21 = DAT_182671e58;
  uVar36 = (ulonglong)DAT_182671d10;
  bVar44 = (byte)DAT_182671e58;
  *(ulonglong *)(lVar3 + -0x628) =
       (CONCAT44(uVar18,uVar16) ^ 0xe0fb13edce668b76) <<
       ((*(byte *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x31ef35ed)) ^ (byte)uVar19) & 0x3f);
  *(byte *)(lVar3 + -0xcb9) = (byte)uVar20 ^ bVar44 ^ *(byte *)(lVar3 + -0x8f0);
  uVar11 = DAT_182671c84;
  bVar44 = bVar44 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x7140a5a4)) = *(longlong *)(lVar3 + -0x1d0) + 0x1aU ^ uVar36;
  uVar17 = DAT_182671c90;
  *(byte *)(*(ulonglong *)(lVar3 + -0x240) ^ uVar36) = bVar44 ^ *(byte *)(lVar3 + -0xcb9);
  lVar3 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c68 ^ 0x7146e116)) =
       *(longlong *)(DAT_182671c40 + -0x310) +
       ((CONCAT44(uVar17,uVar10) ^ 0xefbf9fcf5d2646a5) +
       (CONCAT44(uVar9,uVar11) ^ 0xe7fe71469b3981ec) * 0xc) * 8 ^ uVar37;
  uVar19 = DAT_182671da8;
  uVar42 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar41 = (ulonglong)DAT_182671f88;
  uVar36 = CONCAT44(uVar7,DAT_182671c74);
  *(ulonglong *)(lVar3 + -0xb18) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x6e8) ^ uVar37) ^ uVar42 ^ uVar30;
  uVar6 = DAT_182671c8c;
  *(ulonglong *)(lVar3 + -0x960) = uVar36 ^ *(ulonglong *)(lVar3 + -0xc38) ^ 0x5ccb1f645d08c348;
  *(ulonglong *)(lVar3 + -0x888) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0xb18)) >> (((byte)uVar6 ^ 0xe6) & 0x3f) ^
       CONCAT44(uVar19,uVar19);
  bVar44 = (byte)DAT_182671ebc ^ (byte)DAT_182671d18;
  *(byte *)(lVar3 + -0xb69) = (byte)uVar19 ^ (byte)DAT_182671ebc ^ *(byte *)(lVar3 + -0x888);
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x160) =
       (CONCAT44(uVar14,uVar34) ^ 0x31ef3f9dabff355c) + *(longlong *)(lVar3 + -0x1d0) ^ uVar41;
  uVar36 = CONCAT44(uVar21,uVar21);
  *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671c94 ^ 0xa5f6f194)) = 0x3cfeee77d9e8f3b7;
  uVar6 = DAT_182671c4c;
  *(byte *)(uVar41 ^ *(ulonglong *)(lVar3 + -0x160)) = bVar44 ^ *(byte *)(lVar3 + -0xb69);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x3bff3e77)) =
       *(longlong *)(lVar4 + -0x310) +
       ((CONCAT44(uVar6,DAT_182671c74) ^ 0x25080c5ffef7bfc) +
       (CONCAT44(uVar38,uVar34) ^ 0x2c66e142abff3547) * 0xc) * 8 ^ uVar36;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c50 ^ 0x3f9d3407)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x588) ^ uVar36) ^ uVar35 ^ uVar30;
  uVar25 = DAT_182671d24;
  uVar36 = (ulonglong)DAT_182671c94;
  uVar37 = (ulonglong)DAT_182671d24;
  bVar44 = (byte)DAT_182671d24 ^ (byte)DAT_182671ef4;
  *(ulonglong *)(lVar4 + -0x680) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x5e8)) >> (((byte)uVar9 ^ 0x66) & 0x3f) ^
       CONCAT44(DAT_182671d24,DAT_182671d24);
  uVar41 = (ulonglong)DAT_182671e60;
  *(byte *)(lVar4 - (uVar36 ^ 0xa5f6f02d)) = bVar44 ^ *(byte *)(lVar4 + -0x680);
  bVar44 = *(byte *)(lVar4 + -0xab1) ^ (byte)DAT_182671ef4 ^ (byte)DAT_182671d18;
  pbVar31 = (byte *)((CONCAT44(uVar11,DAT_182671c6c) ^ 0x9b3981ec31ef3f81) +
                    *(longlong *)(lVar4 + -0x1d0));
  *(ulonglong *)(lVar4 + -0x750) = (ulonglong)pbVar31 ^ uVar41;
  uVar11 = DAT_182671c68;
  *pbVar31 = bVar44;
  uVar45 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar4 + -0x140) =
       *(longlong *)(lVar4 + -0x310) +
       ((CONCAT44(uVar12,uVar10) ^ 0x7146e7fe5d2646a5) +
       (CONCAT44(uVar11,DAT_182671c90) ^ 0x7146e7feefbf9fcf) * 0xc) * 8 ^ uVar45;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0xabff31ff)) =
       (uVar37 << 0x1a | (ulonglong)(uVar25 >> 6)) ^ *(ulonglong *)(lVar4 + -0x680) >> 6;
  uVar19 = DAT_182671cf4;
  uVar36 = (ulonglong)DAT_182671e98;
  uVar42 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar4 + -0xd88) =
       CONCAT44(DAT_182671e98,DAT_182671e98) ^
       *(ulonglong *)(uVar45 ^ *(ulonglong *)(lVar4 + -0x140)) ^ uVar30;
  uVar15 = DAT_182671c7c;
  uVar41 = (ulonglong)DAT_182671e70;
  uVar35 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x7140ad9c)) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x7140aa6c)) >> 0x20 ^ uVar36) >> 8 ^ uVar42;
  uVar12 = DAT_182671c70;
  uVar32 = (ulonglong)DAT_182671c70;
  uVar25 = DAT_182671c70 - uVar15;
  uVar36 = (ulonglong)uVar25;
  uVar29 = DAT_182671c70 ^ 0xbc4e148f;
  DAT_182671c80 = uVar25;
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       CONCAT44(uVar25,uVar25) ^ CONCAT44(uVar15,DAT_182671c70) ^ 0x9679d5cc76ef0e3;
  lVar3 = DAT_182671c40;
  iVar2 = *(int *)(DAT_182671c40 + -0xa94);
  *(byte *)(DAT_182671c40 + -0xb1) =
       *(byte *)(DAT_182671c40 - (uVar36 ^ 0x18caeb05)) ^ (byte)uVar19 ^ (byte)DAT_182671d0c;
  *(ulonglong *)(lVar3 + -0xb78) =
       (CONCAT44(uVar12,uVar15) ^ 0x200c069107412509) + *(longlong *)(lVar3 + -0x1d0) ^ uVar41;
  *(uint *)(DAT_182671c40 - (uVar36 ^ 0x18cae611)) = uVar29 + iVar2;
  uVar37 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x7412e6c)) ^ uVar41) =
       *(byte *)(DAT_182671c40 + -0xb1) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671d0c;
  lVar3 = DAT_182671c40;
  iVar2 = *(int *)(DAT_182671c40 + -0x444);
  puVar1 = (ulonglong *)
           (*(longlong *)(DAT_182671c40 + -0x310) +
           (CONCAT44(uVar12,uVar25) ^ 0x200c069118cae17e) * 8);
  uVar41 = (ulonglong)DAT_182671c8c;
  uVar39 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(DAT_182671c40 + -0xb30) = (ulonglong)puVar1 ^ uVar37;
  uVar21 = DAT_182671ec8;
  *(ulonglong *)(lVar3 + -0x760) = *puVar1 ^ uVar30 ^ uVar39;
  lVar4 = DAT_182671c40;
  *(uint *)(lVar3 - (uVar35 ^ 0x7412540)) = (uVar9 ^ 0x996d4e94) * iVar2;
  uVar35 = (ulonglong)DAT_182671d40;
  *(ulonglong *)(lVar4 + -0x7e8) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x7146e09e)) ^ uVar39) >> (((byte)uVar9 ^ 0x76) & 0x3f) ^
       CONCAT44(uVar21,uVar21);
  *(byte *)(lVar4 + -0x9dd) =
       *(byte *)(lVar4 - ((ulonglong)uVar34 ^ 0xabff32af)) ^ (byte)uVar21 ^ (byte)DAT_182671dfc;
  bVar44 = (byte)DAT_182671d18 ^ (byte)DAT_182671dfc;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x2c66eaea)) = *(longlong *)(lVar4 + -0x1d0) + 0x1eU ^ uVar35;
  *(byte *)(*(ulonglong *)(lVar4 + -0xba8) ^ uVar35) = bVar44 ^ *(byte *)(lVar4 + -0x9dd);
  uVar22 = DAT_182671f90;
  uVar19 = DAT_182671cc4;
  uVar47 = (ulonglong)DAT_182671d30;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x310) +
           ((CONCAT44(uVar6,uVar12) ^ 0x25080c5200c0692) +
           (CONCAT44(uVar10,DAT_182671c68) ^ 0x5d2646a67146e7fe) * 0xc) * 8);
  uVar41 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar4 + -0xb88) = (ulonglong)puVar1 ^ CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar20 = DAT_182671dcc;
  uVar37 = CONCAT44(uVar22,uVar22);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xa5f6f60c)) = *puVar1 ^ uVar30 ^ uVar37;
  uVar39 = (ulonglong)DAT_182671cb4;
  uVar35 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)
   (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c4c ^ 0x2508695)) ^ CONCAT44(uVar20,uVar20)) =
       CONCAT44(uVar13,uVar16) ^ 0xb49796c250673fff;
  uVar6 = DAT_182671c74;
  local_d8 = (byte)uVar25;
  bVar44 = (byte)uVar19 ^ (byte)DAT_182671dd8;
  uVar41 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar4 + -0x110) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x31ef330d)) ^ uVar37) >> ((local_d8 ^ 0x45) & 0x3f) ^
       CONCAT44(uVar19,uVar19);
  *(undefined8 *)(lVar4 - (uVar41 ^ 0xffef7657)) = 0x23d18f7dce80e000;
  *(byte *)(lVar4 + -0xb79) = bVar44 ^ *(byte *)(lVar4 + -0x110);
  uVar25 = DAT_182671c78;
  uVar41 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 + -0xd30) =
       (CONCAT44(uVar7,uVar9) ^ 0x7b2d7b5be7fe7159) + *(longlong *)(lVar4 + -0x1d0) ^ uVar39;
  lVar3 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x200c0ba1)) ^ uVar39) =
       *(byte *)(lVar4 - (uVar41 ^ 0x31ef34e4)) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671dd8;
  uVar19 = DAT_182671e38;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 + -0x310) +
           ((CONCAT44(uVar17,uVar34) ^ 0xefbf9fcfabff3543) +
           (CONCAT44(uVar5,uVar6) ^ 0x7140a7e4ffef7bff) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x10) = (ulonglong)puVar1 ^ uVar35;
  uVar41 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x2c66e862)) = *puVar1 ^ uVar30 ^ uVar41;
  bVar44 = (byte)DAT_182671cd8;
  uVar41 = *(ulonglong *)(lVar3 + -0x920) ^ CONCAT44(DAT_182671cd8,DAT_182671cd8) ^ uVar41;
  *(ulonglong *)(lVar3 + -0xa50) = uVar41;
  *(byte *)(lVar3 + -0xe1) = bVar44 ^ (byte)uVar41 ^ (byte)DAT_182671e7c;
  uVar9 = DAT_182671c94;
  pbVar31 = (byte *)((CONCAT44(uVar7,uVar25) ^ 0x7b2d7b5b31ef3fbd) + *(longlong *)(lVar3 + -0x1d0));
  uVar41 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar3 + -0x908) = (ulonglong)pbVar31 ^ (ulonglong)DAT_182671d48;
  uVar20 = DAT_182671df8;
  uVar35 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *pbVar31 = *(byte *)(lVar3 - (uVar41 ^ 0xa5f6fa7d)) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671e7c;
  uVar19 = DAT_182671da0;
  *(ulonglong *)(lVar3 + -0x678) =
       *(longlong *)(lVar3 + -0x310) + (CONCAT44(uVar16,DAT_182671c84) ^ 0x3bff3bff9b3981e8) * 8 ^
       uVar35;
  uVar7 = DAT_182671c4c;
  uVar41 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar3 + -0x510) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x7146e186)) ^ uVar35) ^
       uVar41 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xa08) = (*(ulonglong *)(lVar3 + -0xa78) ^ uVar42) + 0xe64522a56368a8b3;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c6c ^ 0x31ef3d2d)) =
       (*(ulonglong *)(DAT_182671c40 + -0x510) ^ uVar41) >> (((byte)uVar7 ^ 0xcd) & 0x3f) ^
       CONCAT44(uVar20,uVar20);
  lVar4 = DAT_182671c40;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0xa5f6f265)) =
       *(byte *)(lVar3 - (uVar43 ^ 0x5d264416)) ^ (byte)uVar20 ^ (byte)DAT_182671eec;
  pbVar31 = (byte *)((CONCAT44(uVar8,DAT_182671c68) ^ 0x3f9d31ef7146e7df) +
                    *(longlong *)(lVar4 + -0x1d0));
  *(ulonglong *)(lVar4 + -0x168) = (ulonglong)pbVar31 ^ (ulonglong)DAT_182671ec0;
  uVar23 = DAT_182671f8c;
  uVar7 = DAT_182671c84;
  uVar41 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar4 + -0x3d8) =
       0xd1bbe6465da3ca23 >> ((*(byte *)(lVar4 - (uVar36 ^ 0x18caeb2d)) ^ bVar44) & 0x3f);
  *pbVar31 = *(byte *)(lVar4 + -0x8f9) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671eec;
  uVar22 = DAT_182671f24;
  uVar19 = DAT_182671cf8;
  *(ulonglong *)(lVar4 + -0xa40) =
       (CONCAT44(uVar15,uVar7) ^ 0x74125149b3981ec) * 0x60 + *(longlong *)(lVar4 + -0x310) + 0x20 ^
       uVar45;
  uVar9 = DAT_182671c90;
  lVar3 = DAT_182671c40;
  uVar35 = CONCAT44(uVar19,uVar19);
  uVar37 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0x9b398bac)) ^ uVar45) ^
       uVar35 ^ uVar30;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c68 ^ 0x7146ed8e)) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0x9b398b8c)) ^ uVar35) >> (((byte)uVar9 ^ 0xdf) & 0x3f) ^
       CONCAT44(uVar23,uVar23);
  uVar41 = (ulonglong)DAT_182671cd4;
  *(byte *)(lVar4 + -0x2b9) = (byte)uVar23 ^ *(byte *)(lVar4 + -0xa70) ^ (byte)uVar22;
  *(ulonglong *)(lVar4 + -0x6c8) =
       (CONCAT44(uVar14,uVar10) ^ 0x31ef3f9d5d264684) + *(longlong *)(lVar4 + -0x1d0) ^ uVar41;
  uVar7 = DAT_182671c54;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0xabff336f)) =
       CONCAT44(uVar13,DAT_182671c74) ^ CONCAT44(uVar21,uVar21) ^ *(ulonglong *)(lVar4 + -0x7e8) ^
       0xbd98e79b43fcb97e;
  *(byte *)(uVar41 ^ *(ulonglong *)(lVar4 + -0x6c8)) =
       (byte)DAT_182671d18 ^ (byte)uVar22 ^ *(byte *)(lVar4 + -0x2b9);
  *(byte *)(lVar4 + -0x431) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x990) ^ (ulonglong)DAT_182671ee0) ^ (byte)DAT_182671f14;
  uVar9 = DAT_182671e3c;
  uVar35 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  uVar43 = (ulonglong)DAT_182671e3c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c94 ^ 0xa5f6f32c)) =
       *(longlong *)(lVar4 + -0x310) + (CONCAT44(uVar8,uVar7) ^ 0x3f9d31ef7b2d7b5f) * 8 ^ uVar35;
  uVar19 = DAT_182671cc0;
  uVar41 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar4 - (uVar46 ^ 0xe7fe79b6)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar37 ^ 0xefbf967f)) ^ uVar35) ^
       CONCAT44(uVar9,uVar9) ^ uVar30;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x3f9d3dd7)) =
       ((ulonglong)(uVar9 >> 0x18) | uVar43 << 8) ^ *(ulonglong *)(DAT_182671c40 + -0x8f0) >> 0x18 ^
       CONCAT44(uVar19,uVar19);
  bVar40 = (byte)uVar19 ^ *(byte *)(lVar3 + -0xc38) ^ (byte)DAT_182671cd0;
  *(byte *)(lVar3 + -0x21) = bVar40;
  bVar44 = (byte)DAT_182671d18;
  bVar28 = (byte)DAT_182671d18 ^ (byte)DAT_182671cd0;
  *(ulonglong *)(lVar3 + -0x5d0) =
       (CONCAT44(uVar11,uVar5) ^ 0x7146e7fe7140a7c7) + *(longlong *)(lVar3 + -0x1d0) ^ uVar47;
  *(uint *)(lVar3 + -0x684) = DAT_182671c7c ^ 0x58849c07;
  uVar41 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar27 ^ 0x2c66e492)) ^ uVar47) = bVar28 ^ bVar40;
  uVar21 = DAT_182671e54;
  bVar28 = (byte)DAT_182671c4c;
  uVar35 = CONCAT44(uVar12,DAT_182671c4c);
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 - (uVar32 ^ 0x200c0581)) +
           ((CONCAT44(DAT_182671c6c,uVar7) ^ 0x31ef3f9d7b2d7b5f) +
           (CONCAT44(uVar18,uVar12) ^ 0xa5f6fa9c200c0691) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x9b8) = (ulonglong)puVar1 ^ uVar41;
  uVar19 = DAT_182671cbc;
  uVar43 = CONCAT44(uVar21,uVar21);
  uVar41 = *puVar1 ^ uVar43 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x960) = uVar41;
  uVar27 = (ulonglong)DAT_182671f2c;
  uVar41 = (uVar43 ^ uVar41) >> ((bVar28 ^ 0xe5) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar3 + -0xb18) = uVar41;
  *(byte *)(lVar3 + -0xb41) = (byte)uVar19 ^ (byte)uVar41 ^ (byte)DAT_182671df0;
  uVar7 = DAT_182671c8c;
  bVar44 = bVar44 ^ (byte)DAT_182671df0;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x3bff377f)) =
       (uVar35 ^ 0x200c0691025080e1) + *(longlong *)(lVar3 + -0x1d0) ^ uVar27;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc80) ^ uVar27) = bVar44 ^ *(byte *)(lVar3 + -0xb41);
  uVar41 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x18cae6dd)) =
       *(longlong *)(lVar3 + -0x310) +
       ((CONCAT44(uVar38,uVar7) ^ 0x2c66e1427146e7fa) +
       (CONCAT44(uVar10,uVar5) ^ 0x5d2646a67140a7e4) * 0xc) * 8 ^ uVar41;
  uVar19 = DAT_182671d08;
  *(ulonglong *)(lVar3 + -0x888) =
       CONCAT44(uVar8,uVar10) ^ *(ulonglong *)(lVar3 + -0x2b0) ^ CONCAT44(uVar20,uVar20) ^
       0x27052330d76713c0;
  uVar20 = DAT_182671d44;
  uVar36 = CONCAT44(uVar19,uVar19);
  uVar30 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x7a0) ^ uVar41) ^ uVar36 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xb08) = uVar30;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar24 * 4) = uVar26 ^ uVar34;
  *(ulonglong *)(lVar3 + -0x5e8) =
       (uVar36 ^ uVar30) >> (((byte)uVar38 ^ 0x6a) & 0x3f) ^ CONCAT44(uVar20,uVar20);
  return;
}



############ FUN_ 18100cea0 size=5298 ############

void FUN_18100cea0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  ulonglong *puVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_res18;
  byte local_b8;
  ulonglong uVar19;
  
  uVar12 = DAT_182671f80;
  uVar8 = DAT_182671c8c;
  uVar10 = DAT_182671c74;
  uVar9 = DAT_182671c70;
  uVar7 = DAT_182671c58;
  lVar5 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c70;
  uVar36 = (ulonglong)DAT_182671c74;
  uVar37 = (ulonglong)DAT_182671c8c;
  uVar22 = DAT_182671c58 | DAT_182671c74;
  uVar17 = ~DAT_182671c8c;
  uVar19 = (ulonglong)uVar17;
  uVar38 = (DAT_182671c70 << 0x10 | DAT_182671c70 & 0xff00) << 8 | DAT_182671c70 >> 8 & 0xff00 |
           DAT_182671c70 >> 0x18;
  uVar3 = *(uint *)(&DAT_182613218 + DAT_1826720d0);
  uVar13 = *(uint *)(&DAT_182613220 + DAT_1826720d0) ^ DAT_182671c58;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xd88);
  DAT_182671c60 = uVar17;
  DAT_182671c68 = uVar38;
  DAT_182671c90 = uVar22;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (CONCAT44(DAT_182671c74,uVar17) ^ 0x5d1abcebfa37f4b8) >>
       (((byte)DAT_182671dac ^ *(byte *)puVar1) & 0x3f);
  uVar11 = DAT_182671d58;
  uVar23 = ((ulonglong)DAT_182671cd4 << 0x1b | (ulonglong)(DAT_182671cd4 >> 5)) ^
           *(ulonglong *)(lVar5 + -0xa78) >> 5;
  uVar26 = (CONCAT44(DAT_182671cd4,DAT_182671cd4) ^ *(ulonglong *)(lVar5 + -0xa78)) << 0x3b;
  *(ulonglong *)(lVar5 + -0x5e8) = uVar23 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671f24;
  *(ulonglong *)(lVar5 + -0xc38) = uVar26 ^ CONCAT44(uVar11,uVar11);
  uVar26 = uVar26 | uVar23;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar23 = CONCAT44(DAT_182671eec,DAT_182671eec);
  puVar2 = (ulonglong *)(lVar5 + -0xc90);
  *puVar2 = uVar26 ^ uVar39;
  uVar21 = CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar24 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar5 + -0xa08) = (uVar23 ^ *(ulonglong *)(lVar5 + -0x110)) - uVar26 ^ uVar21;
  uVar29 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar23 = *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x103c0ccb)) ^
           CONCAT44(DAT_182671f54,DAT_182671f54) ^ uVar29 ^ uVar24 ^ *(ulonglong *)(lVar5 + -0x888);
  *(ulonglong *)(lVar5 + -0x960) = uVar23;
  lVar6 = DAT_182671c40;
  uVar20 = (ulonglong)uVar7;
  uVar26 = (ulonglong)uVar38;
  uVar27 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar5 + -0xda8) = (uVar23 ^ uVar24) >> (((byte)uVar9 ^ 0xfa) & 0x3f) ^ uVar27;
  uVar28 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar6 + -0x228) = (uVar24 ^ uVar23) << (((byte)uVar7 ^ 0xb1) & 0x3f) ^ uVar28;
  *(int *)(lVar6 - (uVar33 ^ 0x7df959af)) =
       *(int *)(lVar6 - (uVar19 ^ 0xefc3f0e4)) - *(int *)(lVar6 - (uVar36 ^ 0xf4840d60));
  lVar5 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0xda8) ^ uVar27 |
           *(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar28;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar23 ^ uVar31;
  *puVar1 = uVar23 << 0xc;
  uVar18 = DAT_182671d20;
  puVar25 = (ulonglong *)(lVar5 - (uVar26 ^ 0xdf5ffffd));
  puVar16 = (ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x103c0153));
  uVar24 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar23 = (ulonglong)DAT_182671d20;
  uVar4 = DAT_182671d20 >> 0x17;
  *(ulonglong *)(lVar5 + -0xbd8) = (uVar29 ^ *puVar16) - (*puVar25 ^ uVar31) ^ uVar24;
  uVar29 = CONCAT44(uVar18,uVar18);
  *(uint *)(lVar5 + -0xae4) = (uVar22 ^ 0x5f0a47c4) * *(int *)(lVar5 + -0x94);
  uVar12 = DAT_182671f04;
  lVar6 = DAT_182671c40;
  uVar28 = *puVar25 ^ *(ulonglong *)(lVar5 + -0xa08) ^ uVar29 ^ uVar31 ^ uVar21;
  *(ulonglong *)(lVar5 + -0xa78) = uVar28;
  uVar11 = DAT_182671e40;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 + -0x5e8) = ((ulonglong)uVar4 | uVar23 << 9) ^ uVar28 >> 0x17 ^ uVar31;
  uVar23 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar22 ^ 0xf6d4c3c6)) =
       (uVar29 ^ uVar28) << (((byte)uVar8 ^ 0xf2) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar6 + -0x110) =
       *(ulonglong *)(lVar6 - (uVar19 ^ 0xefc3f3cc)) ^ CONCAT44(uVar10,uVar38) ^ uVar31 ^
       0x92b34cef80cc41c8;
  lVar5 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x654c1ba)) =
       (*(ulonglong *)(lVar6 - (uVar20 ^ 0x654c892)) ^ uVar23 |
       uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) ^ uVar28;
  uVar29 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(ulonglong *)(lVar5 + -0x960) =
       (*(ulonglong *)(lVar5 + -0xa08) ^ uVar21) -
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0x7df95acf)) ^ uVar28) ^ uVar29;
  uVar4 = DAT_182671e48;
  uVar23 = (ulonglong)DAT_182671e48;
  uVar32 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(uint *)(lVar5 - (uVar26 ^ 0xdf5ff0a1)) = uVar8 ^ 0x41f926d5 | uVar38 ^ 0x98813189;
  uVar18 = DAT_182671c74 ^ 0x78cac621;
  *(ulonglong *)(lVar5 + -0xda8) =
       *puVar2 ^ *(ulonglong *)(lVar5 + -0xbd8) ^ uVar32 ^ uVar24 ^ uVar39;
  *(uint *)(lVar5 + -0x94c) = *(int *)(lVar5 + -0x784) - uVar18;
  uVar31 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x103c0bf3)) =
       (*(ulonglong *)(lVar5 + -0xda8) >> 0x20 ^ uVar23) >> 8 ^ uVar31;
  lVar6 = DAT_182671c40;
  uVar23 = *(ulonglong *)(lVar5 + -0x228);
  uVar21 = (*(ulonglong *)(lVar5 + -0xda8) ^ uVar32) << (((byte)uVar17 ^ 0x3c) & 0x3f);
  *puVar1 = uVar21 ^ CONCAT44(DAT_182671edc,DAT_182671edc);
  uVar39 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar5 - (uVar19 ^ 0xefc3feac)) = (uVar21 | uVar31 ^ uVar23) ^ uVar39;
  uVar11 = DAT_182671d74;
  uVar21 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar5 + -0x680) =
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0x7df95407)) ^ uVar24) -
       (uVar39 ^ *(ulonglong *)(lVar5 + -0x888)) ^ uVar21;
  uVar40 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xdf5ff305)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar22 ^ 0xf6d4c776)) ^ uVar40 ^ uVar39 ^ uVar29 ^
       *(ulonglong *)(lVar6 + -0x960);
  uVar33 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar6 + -0x110) =
       (CONCAT44(uVar8,uVar38) ^ 0x29a3e248e4cff56f) <<
       ((*(byte *)(lVar6 + -0xda8) ^ (byte)uVar4) & 0x3f);
  lVar5 = DAT_182671c40;
  uVar31 = (*(ulonglong *)(lVar6 - (uVar36 ^ 0xf4840104)) ^ uVar40) >> (((byte)uVar7 ^ 0x9e) & 0x3f)
  ;
  uVar23 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(lVar6 + -0x5e8) = uVar31 ^ uVar33;
  uVar4 = DAT_182671c4c;
  uVar33 = (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c4c ^ 0x103c03a3)) ^ uVar40) <<
           (((byte)(uVar9 >> 0x18) ^ 0x71) & 0x3f);
  *(ulonglong *)(lVar5 + -0xc38) = uVar33 ^ uVar23;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0xa08) =
       (CONCAT44(uVar38,uVar17) ^ 0x2cbe7e37a6fcaadb) - (CONCAT44(uVar9,uVar7) ^ 0x6f5aa24e70f2b929)
  ;
  uVar42 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0x654c83a)) = (uVar33 | uVar31) ^ uVar42;
  uVar33 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar6 - (uVar19 ^ 0xefc3fbac)) =
       (uVar29 ^ *(ulonglong *)(lVar6 + -0x960)) -
       (*(ulonglong *)(lVar6 - (uVar37 ^ 0x103c054b)) ^ uVar42) ^ uVar33;
  uVar11 = DAT_182671cf8;
  uVar29 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar28 = *(ulonglong *)(lVar6 - (uVar19 ^ 0xefc3f0a4)) ^ *(ulonglong *)(lVar6 + -0x510) ^ uVar29 ^
           uVar21 ^ uVar28;
  *(ulonglong *)(lVar6 + -0x228) = uVar28;
  uVar12 = DAT_182671f88;
  uVar8 = DAT_182671c5c;
  uVar23 = (uVar28 ^ uVar29) >> (((byte)uVar9 ^ 0xe6) & 0x3f);
  *(ulonglong *)(lVar6 + -0xbd8) = uVar23 ^ CONCAT44(uVar11,uVar11);
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar31 = (uVar29 ^ uVar28) << (((byte)uVar8 ^ 3) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar31 ^ uVar34;
  lVar5 = DAT_182671c40;
  uVar31 = uVar31 | uVar23;
  uVar28 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  uVar30 = uVar31 ^ uVar28;
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0x680);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar30;
  uVar12 = DAT_182671e38;
  *(ulonglong *)(lVar5 + -0x110) =
       CONCAT44(uVar10,uVar4) ^ 0x2d0f3b3476808150 | CONCAT44(uVar17,uVar22) ^ 0x8ecf8875f505bdb4;
  uVar11 = DAT_182671cbc;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 + -0xa78) = (uVar21 ^ uVar23) - uVar31 ^ uVar29;
  uVar39 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x103c03d3)) = uVar39 ^ uVar28 ^ uVar33 ^ uVar30 ^ *puVar1;
  local_res18 = (byte)uVar22;
  uVar21 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xefc5f80c)) ^ uVar39) >>
           ((local_res18 ^ 0xf0) & 0x3f);
  uVar28 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar5 + -0x5e8) = uVar21 ^ CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar11 = DAT_182671f70;
  uVar23 = (uVar39 ^ *(ulonglong *)(lVar5 + -0xa08)) << (((byte)uVar4 ^ 0xe9) & 0x3f);
  *(ulonglong *)(lVar5 + -0xc38) = uVar23 ^ uVar28;
  uVar21 = uVar21 | uVar23;
  *(ulonglong *)(lVar5 + -0x960) = uVar21 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671cf4;
  *(int *)(lVar5 + -0x61c) = *(int *)(lVar5 - (uVar26 ^ 0xdf5fff49)) + *(int *)(lVar5 + -0x5d4);
  uVar12 = DAT_182671eb4;
  uVar8 = DAT_182671c64;
  uVar23 = (*(ulonglong *)(lVar5 - (uVar36 ^ 0xf48406f4)) ^ uVar33) -
           (CONCAT44(uVar4,uVar10) ^ 0x775a265100554685);
  *(ulonglong *)(lVar5 + -0x510) = uVar23 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182671f78;
  uVar41 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 + -0x228) = uVar23 - uVar21 ^ uVar41;
  uVar31 = CONCAT44(uVar11,uVar11);
  local_b8 = (byte)uVar10;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c78 ^ 0x7dff6c88)) =
       uVar21 - (CONCAT44(uVar8,uVar22) ^ 0x71c8bf4177e40c6b) ^ uVar31;
  uVar11 = DAT_182671e3c;
  lVar5 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar23 = uVar33 ^ uVar29 ^ uVar42 ^ *puVar2 ^ *(ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar23;
  uVar4 = DAT_182671c4c;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x110) = (uVar23 ^ uVar33) >> ((local_b8 ^ 0x6c) & 0x3f) ^ uVar28;
  uVar18 = DAT_182671c80;
  uVar21 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar5 + -0x680) = (uVar33 ^ uVar23) << (((byte)uVar4 ^ 0xeb) & 0x3f) ^ uVar21;
  *(int *)(lVar5 - (uVar26 ^ 0xdf5ff031)) = *(int *)(lVar5 + -0xae4) + *(int *)(lVar5 + -0x58c);
  uVar11 = DAT_182671ccc;
  uVar33 = uVar21 ^ *(ulonglong *)(lVar5 + -0x680) | uVar28 ^ *(ulonglong *)(lVar5 + -0x110);
  *(ulonglong *)(lVar5 + -0xda8) = uVar33 ^ CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar12 = DAT_182671d04;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar23 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x44523981)) ^ uVar29) -
           (CONCAT44(uVar7,uVar8) ^ 0x3a8d002edf703b04);
  *(ulonglong *)(lVar5 + -0xa08) = uVar23 ^ uVar28;
  uVar11 = DAT_182671d5c;
  uVar4 = DAT_182671c94;
  uVar7 = DAT_182671c7c;
  uVar35 = (ulonglong)DAT_182671c94;
  uVar30 = CONCAT44(uVar12,uVar12);
  uVar29 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar5 + -0x5e8) = uVar23 - uVar33 ^ uVar30;
  uVar21 = CONCAT44(uVar11,uVar11);
  uVar23 = (CONCAT44(uVar7,uVar9) ^ 0x62afb20198dc5ee4) + uVar33 ^ uVar21;
  uVar42 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(lVar5 + -0xc38) = uVar23;
  uVar33 = (ulonglong)DAT_182671c5c;
  *puVar1 = uVar42 ^ uVar23 ^ uVar21 ^ uVar41 ^ *(ulonglong *)(lVar5 + -0x228);
  uVar11 = DAT_182671ec4;
  uVar23 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar5 + -0x510) =
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0xefc5ff8c)) ^ uVar42) >> (((byte)uVar4 ^ 0x72) & 0x3f) ^
       uVar39;
  uVar8 = DAT_182671c84;
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar43 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0x426183e4)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xfff9f657)) ^ uVar42) << 0x20 ^ uVar33;
  lVar5 = DAT_182671c40;
  *puVar2 = CONCAT44(uVar8,uVar22) ^ uVar31 ^ *puVar16 ^ 0x9682b9b04ab8a7e0;
  uVar11 = DAT_182671e14;
  uVar4 = DAT_182671c50;
  *(ulonglong *)(lVar5 + -0xbd8) =
       (uVar33 ^ *(ulonglong *)(lVar5 + -0x960) | *(ulonglong *)(lVar5 + -0x510) ^ uVar39) ^ uVar34;
  lVar5 = DAT_182671c40;
  uVar21 = CONCAT44(uVar11,uVar11);
  bVar14 = (byte)DAT_182671c64;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar4 ^ 0xc3f33b35)) =
       (uVar41 ^ *(ulonglong *)(DAT_182671c40 + -0x228)) -
       (*(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x654cf72)) ^ uVar34) ^ uVar21;
  uVar23 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar5 + -0x680) =
       uVar23 ^ uVar30 ^ uVar31 ^ *(ulonglong *)(lVar5 + -0x888) ^ *(ulonglong *)(lVar5 + -0x5e8);
  uVar33 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar5 + -0xa78) = (uVar23 ^ *puVar25) >> ((bVar14 ^ 0xff) & 0x3f) ^ uVar33;
  uVar11 = DAT_182671e10;
  *(uint *)(lVar5 + -0x5d4) = (uVar7 ^ 0x21dc6765) + 0x14f89d2c;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0xbd9e7f73)) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0x103c0f5b)) ^ uVar23) << 0x20 ^ uVar31;
  puVar16 = (ulonglong *)(lVar5 - (uVar20 ^ 0x654ced2));
  uVar23 = uVar31 ^ *(ulonglong *)(lVar5 + -0xa08) | uVar33 ^ *puVar16;
  uVar33 = uVar23 ^ uVar40;
  *(ulonglong *)(lVar5 + -0xda8) = uVar33;
  uVar7 = DAT_182671c6c;
  uVar4 = DAT_182671c5c;
  uVar20 = (ulonglong)DAT_182671c5c;
  *(int *)(lVar5 + -0x58c) =
       *(int *)(lVar5 - ((ulonglong)uVar8 ^ 0xffd65483)) * *(int *)(lVar5 + -0x94);
  *(ulonglong *)(lVar5 + -0xc38) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0x33f941ba)) ^ uVar30) - uVar23 ^ uVar24;
  uVar11 = DAT_182671e30;
  *(undefined1 *)(lVar5 + -0x2e9) = **(undefined1 **)(lVar5 + -0x370);
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x44523e71)) =
       uVar29 ^ uVar21 ^ uVar40 ^ uVar33 ^ *(ulonglong *)(lVar5 + -0x110);
  *puVar2 = CONCAT44(uVar4,uVar4) ^ 0xef4f2a7d62d1f3ed | CONCAT44(uVar17,uVar9) ^ 0x87f09ac1808ace64
  ;
  bVar14 = (byte)uVar7;
  uVar33 = (ulonglong)DAT_182671c54;
  uVar31 = (uVar29 ^ *puVar1) >> ((bVar14 ^ 0x14) & 0x3f);
  uVar23 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(lVar5 + -0x510) = uVar31 ^ CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar11 = DAT_182671d70;
  uVar33 = (*(ulonglong *)(lVar5 - (uVar33 ^ 0x71785286)) ^ uVar29) << 6;
  *(ulonglong *)(lVar5 + -0x960) = uVar33 ^ uVar23;
  lVar5 = DAT_182671c40;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xdf5ffb55)) = (uVar33 | uVar31) ^ uVar29;
  uVar11 = DAT_182671d80;
  uVar31 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(lVar5 + -0x888) =
       (uVar21 ^ *(ulonglong *)(lVar5 + -0x110)) - (uVar29 ^ *(ulonglong *)(lVar5 + -0x228)) ^
       uVar31;
  uVar23 = (ulonglong)DAT_182671c48;
  uVar21 = CONCAT44(uVar11,uVar11);
  uVar33 = *(ulonglong *)(lVar5 - (uVar36 ^ 0xf4840744)) ^ uVar21 ^ uVar34 ^
           *(ulonglong *)(lVar5 + -0xbd8) ^ uVar24;
  *(ulonglong *)(lVar5 + -0x680) = uVar33;
  uVar12 = DAT_182671f48;
  uVar23 = (*(ulonglong *)(lVar5 - (uVar23 ^ 0x42618c04)) ^ uVar21) >> ((local_res18 ^ 0xe8) & 0x3f)
  ;
  *(ulonglong *)(lVar5 + -0xa78) = uVar23 ^ uVar27;
  uVar11 = DAT_182671d88;
  uVar33 = (uVar21 ^ uVar33) << (((byte)uVar18 ^ 0xd3) & 0x3f);
  *(ulonglong *)(lVar5 + -0xa08) = uVar33 ^ CONCAT44(uVar12,uVar12);
  uVar21 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x5e8) = (uVar23 | uVar33) ^ uVar21;
  *(ulonglong *)(lVar5 - (uVar20 ^ 0xefc5ffac)) = **(ulonglong **)(lVar5 + -0xb30) ^ uVar32;
  uVar20 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  bVar15 = (byte)DAT_182671c4c;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x443542be)) =
       (*(ulonglong *)(lVar5 - (uVar43 ^ 0xffd65d6f)) ^ uVar24) -
       (*(ulonglong *)(lVar5 + -0x5e8) ^ uVar21) ^ uVar20;
  uVar23 = *(ulonglong *)(lVar5 + -0x888);
  uVar39 = CONCAT44(DAT_182671e00,DAT_182671e00);
  uVar21 = uVar31 ^ *(ulonglong *)(lVar5 + -0x888) ^ *(ulonglong *)(lVar5 + -0x5e8) ^ uVar39 ^
           uVar21;
  *puVar1 = uVar21;
  uVar24 = (uVar21 ^ uVar39) >> ((bVar15 ^ 0xf5) & 0x3f);
  uVar36 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(uint *)(lVar5 + -0x94c) =
       (DAT_182671c78 ^ 0x84163e77) >> ((byte)*(undefined4 *)(lVar5 + -0x670) & 0x1f);
  uVar11 = DAT_182671ef4;
  uVar30 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  uVar33 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar5 + -0x110) = 0xfcf2f717ab18b6c0 >> ((local_res18 ^ 0xf5) & 0x3f);
  *(ulonglong *)(lVar5 + -0x960) = (uVar39 ^ uVar21) << 0x12 ^ uVar30;
  *(ulonglong *)(lVar5 + -0x510) = uVar24 ^ uVar36;
  uVar24 = *(ulonglong *)(lVar5 - (uVar33 ^ 0xfff9f2bf)) ^ uVar30 | uVar24;
  uVar33 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(lVar5 + -0xbd8) = uVar24 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x680) = (uVar31 ^ uVar23) - uVar24 ^ uVar33;
  uVar23 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c50 ^ 0xc3f3305d)) =
       uVar29 ^ *puVar2 ^ *(ulonglong *)(lVar5 + -0x228) ^ uVar23 ^ uVar20;
  *(ulonglong *)(lVar5 + -0xa08) =
       (uVar23 ^ *(ulonglong *)(lVar5 + -0xa78)) - (CONCAT44(uVar10,uVar9) ^ 0xae5ba6d90ee7d2b0);
  bVar15 = (byte)DAT_182671c78;
  *(ulonglong *)(lVar5 - (uVar19 ^ 0xefc3fb8c)) =
       (*puVar16 ^ uVar23) >> ((bVar14 ^ 0x22) & 0x3f) ^ uVar28;
  uVar33 = (uVar23 ^ *(ulonglong *)(lVar5 + -0xa78)) << ((bVar15 ^ 0x34) & 0x3f);
  uVar23 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar5 + -0xc38) = uVar33 ^ CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar11 = DAT_182671dfc;
  *(ulonglong *)(lVar5 + -0x5e8) = (uVar33 | uVar28 ^ *(ulonglong *)(lVar5 + -0xda8)) ^ uVar23;
  *puVar1 = (*puVar2 ^ uVar20) - (*(ulonglong *)(lVar5 - (uVar26 ^ 0xdf5ffc95)) ^ uVar23) ^
            CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar3 ^ uVar22;
  return;
}



############ FUN_ 181014710 size=5769 ############

void FUN_181014710(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong *puVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  uint uVar57;
  byte bVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  byte local_138;
  byte local_130;
  byte local_f8;
  byte local_f0;
  byte local_e8;
  
  uVar15 = DAT_182671de8;
  uVar6 = DAT_182671c8c;
  uVar11 = DAT_182671c80;
  uVar9 = DAT_182671c7c;
  uVar8 = DAT_182671c78;
  uVar7 = DAT_182671c6c;
  uVar5 = DAT_182671c48;
  uVar38 = (ulonglong)DAT_182671c78;
  uVar61 = (ulonglong)DAT_182671c48;
  uVar34 = (ulonglong)DAT_182671c6c;
  uVar56 = (ulonglong)DAT_182671c80;
  uVar45 = DAT_182671c68 & DAT_182671c80;
  uVar50 = DAT_182671e20 | DAT_182671de8;
  uVar57 = (DAT_182671c8c << 0x10 | DAT_182671c8c & 0xff00) << 8 | DAT_182671c8c >> 8 & 0xff00 |
           DAT_182671c8c >> 0x18;
  DAT_182671c94 = DAT_182671c48 | DAT_182671c6c;
  uVar53 = (DAT_182671c7c << 0x10 | DAT_182671c7c & 0xff00) << 8 | DAT_182671c7c >> 8 & 0xff00 |
           DAT_182671c7c >> 0x18;
  DAT_182671c60 =
       (DAT_182671c78 << 0x10 | DAT_182671c78 & 0xff00) << 8 | DAT_182671c78 >> 8 & 0xff00 |
       DAT_182671c78 >> 0x18;
  uVar21 = DAT_182671f8c >> 0x18;
  uVar18 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c78 ^ 0x156d801c) + (longlong)DAT_1826720e8) ^
           DAT_182671c60;
  uVar19 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar45 ^ 0x31160e17) + (longlong)DAT_1826720e8) ^
           DAT_182671c7c;
  uVar20 = DAT_182671e20 & 0xff;
  DAT_182671e20 = ((DAT_182671e20 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar44 = (ulonglong)DAT_182671e20;
  uVar31 = CONCAT44(DAT_182671e20,DAT_182671e20);
  uVar59 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  uVar26 = CONCAT44(DAT_182671d30,DAT_182671d30);
  puVar39 = (ulonglong *)(DAT_182671c40 + -0x680);
  puVar27 = (ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x156d8b1c));
  puVar23 = (ulonglong *)(DAT_182671c40 + -0xa50);
  uVar40 = (ulonglong)uVar53;
  uVar32 = CONCAT44(uVar53,DAT_182671c68);
  DAT_182671c70 = uVar57;
  DAT_182671c74 = uVar53;
  DAT_182671c88 = uVar45;
  *puVar23 = uVar31 ^ uVar26 ^ uVar59 ^ *puVar27 ^ *puVar39;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0xfff7f5d7)) =
       (uVar32 ^ 0x5e372dc1775be6a1) <<
       (((byte)DAT_182671ed8 ^ *(byte *)(DAT_182671c40 + -0x7e8)) & 0x3f);
  uVar13 = DAT_182671c94;
  lVar2 = DAT_182671c40;
  uVar20 = uVar50 & 0xff;
  DAT_182671e4c = ((uVar50 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar33 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar51 = (ulonglong)DAT_182671c94;
  uVar20 = DAT_182671de8 & 0xff;
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x10000ad2)) >> 0x20 ^ uVar33 ^ uVar44;
  uVar49 = (ulonglong)uVar57;
  DAT_182671de8 = ((DAT_182671de8 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  puVar41 = (ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x56ddca87));
  uVar55 = (ulonglong)DAT_182671de8;
  uVar46 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *puVar41 = (*(ulonglong *)(lVar2 - (uVar49 ^ 0x10085818)) ^ uVar31) <<
             (((byte)uVar7 ^ 0x77) & 0x3f) ^ uVar46;
  uVar12 = DAT_182671c8c;
  uVar10 = DAT_182671c7c;
  lVar2 = DAT_182671c40;
  DAT_182671ce0 = ((uVar21 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar62 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar44 = (ulonglong)DAT_182671c7c;
  *puVar39 = (uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0xb18) |
             *(ulonglong *)(DAT_182671c40 + -0x828) ^ uVar46) ^ uVar62;
  lVar3 = DAT_182671c40;
  puVar42 = (ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x48520ff8));
  uVar21 = DAT_182671f8c & 0xff;
  *puVar42 = (CONCAT44(uVar10,uVar13) ^ 0x7aeae7282806d2ad) <<
             (((byte)uVar50 ^ *(byte *)(DAT_182671c40 + -0xb18)) & 0x3f);
  uVar20 = DAT_182671c60;
  DAT_182671f8c = ((DAT_182671f8c << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar28 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  bVar1 = (byte)DAT_182671c68;
  uVar29 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar3 + -0xa60) =
       (uVar59 ^ *(ulonglong *)(lVar3 + -0xb08)) - (uVar62 ^ *puVar39) ^ uVar28;
  uVar32 = CONCAT44(DAT_182671d44,DAT_182671d44) ^ uVar33 ^ *(ulonglong *)(lVar3 + -0x760) ^
           *(ulonglong *)(lVar3 + -0x5e8) ^ uVar29;
  *puVar23 = uVar32;
  uVar59 = (uVar33 ^ uVar32) >> ((bVar1 ^ 0x27) & 0x3f);
  bVar58 = (byte)uVar45;
  *(ulonglong *)(lVar3 + -0x828) = uVar59 ^ uVar46;
  *(ulonglong *)(lVar3 + -0xb18) = (uVar33 ^ uVar32) << ((bVar58 ^ 0x27) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar3 + -0x7e8) =
       CONCAT44(uVar57,uVar11) ^ CONCAT44(uVar12,DAT_182671c68) ^ 0xf489532f8bae150b;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xb08) =
       (*(ulonglong *)(lVar3 - (uVar56 ^ 0xfff7f4af)) ^ uVar31 | uVar59) ^ uVar33;
  *(undefined8 *)(lVar3 - (uVar61 ^ 0x56ddc747)) = 0x62edbd002d5b1efd;
  uVar17 = DAT_182671e80;
  lVar4 = DAT_182671c40;
  uVar21 = DAT_182671e80 >> 0x10;
  uVar52 = (*(ulonglong *)(lVar3 + -0x760) ^ uVar29) - (uVar33 ^ *puVar27) ^ uVar33;
  *puVar23 = uVar52;
  puVar35 = (ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0x1480661d));
  uVar22 = DAT_182671e80 & 0xff;
  uVar30 = DAT_182671e80 << 8;
  *(ulonglong *)(lVar2 + -0x7e8) =
       (CONCAT44(uVar53,uVar57) ^ 0xe9866eb136c9398b) - (uVar33 ^ *puVar35);
  lVar3 = DAT_182671c40;
  DAT_182671e80 = ((uVar30 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar56 = (ulonglong)DAT_182671e80;
  uVar59 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar50 = uVar21 & 0xff;
  uVar47 = *(ulonglong *)(lVar2 - (uVar34 ^ 0x788f537)) ^ uVar33 ^ *puVar35 ^ uVar59 ^ uVar28;
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar47;
  lVar2 = DAT_182671c40;
  DAT_182671cb0 = ((uVar21 << 8 | uVar50) << 8 | uVar50) << 8 | uVar50;
  puVar27 = (ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0x3116062f));
  uVar36 = (ulonglong)DAT_182671cb0;
  local_f8 = (byte)uVar10;
  uVar32 = (*puVar27 ^ uVar59) >> ((local_f8 ^ 0x2a) & 0x3f);
  bVar25 = (byte)DAT_182671c8c;
  uVar60 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar32 ^ uVar60;
  uVar32 = (uVar47 ^ uVar59) << ((bVar25 ^ 0x16) & 0x3f) | uVar32;
  uVar50 = DAT_182671c94 ^ 0xf7125d82;
  *(ulonglong *)(lVar2 + -0x760) = uVar32 ^ uVar60;
  uVar21 = DAT_182671c68;
  *(ulonglong *)(lVar2 + -0x7e8) = CONCAT44(uVar13,uVar57) ^ uVar62 ^ *puVar39 ^ 0x9fbbd386c91cc40;
  local_138 = (byte)(uVar6 >> 0x18);
  *(ulonglong *)(lVar2 + -0xb08) = (*(ulonglong *)(lVar2 + -0xa60) ^ uVar28) - uVar32 ^ uVar62;
  *(uint *)(lVar2 + -0x76c) = uVar50 >> (((byte)uVar21 ^ 0x1a) & 0x1f);
  uVar32 = uVar33 ^ uVar31 ^ uVar62 ^ uVar52 ^ *puVar39;
  puVar43 = (ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x156d8b0c));
  *(ulonglong *)(lVar2 + -0x828) = uVar32;
  lVar2 = DAT_182671c40;
  *puVar43 = (uVar31 ^ uVar32) >> ((local_138 ^ 0x5e) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x5e8) = *(ulonglong *)(lVar2 + -0x7e8) ^ uVar62 ^ *puVar39;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x10085828)) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x828)) << 0x2a ^ uVar60;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar20 ^ 0x148068fd)) =
       (*(ulonglong *)(lVar3 + -0xa60) ^ uVar60 | uVar28 ^ *(ulonglong *)(lVar3 + -0xb18)) ^ uVar59;
  lVar3 = DAT_182671c40;
  puVar37 = (ulonglong *)(lVar2 - (uVar34 ^ 0x788f507));
  *puVar39 = (uVar33 ^ *puVar37) - (*(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar59) ^ uVar33;
  uVar21 = DAT_182671c4c;
  uVar47 = *(ulonglong *)(lVar3 + -0xb08) ^ *(ulonglong *)(lVar3 + -0x5e8) ^ uVar59 ^ uVar62;
  uVar32 = uVar47 ^ uVar46;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar32;
  *(ulonglong *)(lVar3 + -0x828) = (uVar32 >> 0x20 ^ uVar55) >> 0xe ^ uVar31;
  uVar47 = uVar47 << ((bVar58 ^ 0x15) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb18) = uVar47 ^ uVar59;
  *(ulonglong *)(lVar3 + -0xa60) =
       CONCAT44(uVar13,uVar10) ^ *(ulonglong *)(lVar3 + -0x5e8) ^ uVar59 ^ 0xf8f060d68edf5abd;
  uVar32 = (uVar47 | uVar31 ^ *puVar27) ^ uVar60;
  *puVar23 = uVar32;
  puVar54 = (ulonglong *)(lVar3 - (uVar40 ^ 0x10000b8a));
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(uVar20,uVar11) ^ 0xfb21616364f092d0) >>
       (((byte)uVar32 ^ (byte)(uVar17 >> 0x10)) & 0x3f);
  uVar50 = DAT_182671c8c;
  uVar32 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar51 ^ 0x57ddfa17)) =
       (*puVar54 ^ uVar62) - (*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x9e3fe4a7)) ^ uVar60) ^
       uVar28;
  uVar6 = DAT_182671c50;
  puVar48 = (ulonglong *)(lVar3 - (uVar61 ^ 0x56ddc8cf));
  uVar55 = (ulonglong)DAT_182671c50;
  *puVar48 = uVar33 ^ *(ulonglong *)(lVar3 + -0x760) ^ uVar60 ^ uVar62 ^ *puVar39;
  *(ulonglong *)(lVar3 + -0xb18) =
       (*(ulonglong *)(lVar3 + -0xa60) ^ uVar62) >> ((bVar1 ^ 0xb) & 0x3f) ^ uVar46;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x828) =
       (*(ulonglong *)(lVar3 - (uVar55 ^ 0x843fe407)) ^ uVar62) << 0x34 ^ uVar59;
  local_130 = (byte)uVar11;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0x1000076a)) =
       (CONCAT44(uVar8,uVar50) ^ 0x42213733103783cf) << ((local_130 ^ 0x9b) & 0x3f);
  uVar47 = (*(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x48520038)) ^ uVar59 |
           uVar46 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) ^ uVar29;
  puVar24 = (ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x10085940));
  uVar32 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar47;
  lVar2 = DAT_182671c40;
  puVar27 = (ulonglong *)(DAT_182671c40 + -0x5e8);
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       (*(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x48520e90)) ^ uVar33) - (*puVar24 ^ uVar29) ^
       uVar26;
  uVar50 = DAT_182671c64;
  uVar47 = uVar47 ^ *puVar27 ^ uVar29 ^ uVar28;
  uVar52 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar2 + -0xa60) = uVar47 ^ uVar62;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       0x42974478a9e44483 - (CONCAT44(uVar50,uVar7) ^ 0xae75be25c76eabad);
  uVar50 = DAT_182671c68;
  lVar2 = DAT_182671c40;
  uVar32 = (*puVar48 ^ uVar62) >> (((byte)uVar7 ^ 0x4e) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar32 ^ uVar28;
  lVar3 = DAT_182671c40;
  puVar27 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar21 ^ 0x9e3fe877));
  *puVar27 = (uVar47 << 0x27 | uVar32) ^ uVar33;
  uVar47 = (ulonglong)DAT_182671c60;
  uVar32 = (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar28) -
           (CONCAT44(uVar53,DAT_182671c60) ^ 0x28e798c32c66dc6);
  *(ulonglong *)(lVar3 + -0xb08) = uVar32 ^ uVar31;
  *puVar42 = uVar32 - (uVar33 ^ *puVar39) ^ uVar29;
  *(ulonglong *)(DAT_182671c40 + -0x828) = 0xfb3f186808d1eae1 >> (((byte)uVar6 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar2 + -0xb18) =
       (uVar33 ^ *puVar39) - (CONCAT44(uVar53,uVar45) ^ 0x6b6d4ecff8a4530c) ^ uVar26;
  lVar3 = DAT_182671c40;
  puVar24 = (ulonglong *)(lVar2 - (uVar47 ^ 0x14806745));
  puVar48 = (ulonglong *)(lVar2 - (uVar44 ^ 0x82000770));
  uVar32 = uVar26 ^ *puVar48 ^ *puVar24;
  *(ulonglong *)(lVar2 + -0x5e8) = uVar32;
  uVar21 = DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0xb08) = (uVar32 >> 0x20 ^ uVar36) >> 1 ^ uVar29;
  *(ulonglong *)(DAT_182671c40 - (uVar51 ^ 0x57ddf7d7)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x156d85fc)) ^ uVar60) <<
       (((byte)uVar21 ^ 0xe8) & 0x3f) ^ uVar62;
  uVar32 = *(ulonglong *)(DAT_182671c40 + -0xb08);
  uVar38 = (ulonglong)DAT_182671d30;
  *puVar39 = (*(ulonglong *)(DAT_182671c40 + -0x828) ^ uVar62) << (((byte)uVar21 ^ 0xf8) & 0x3f);
  uVar32 = uVar32 ^ uVar29 | *(ulonglong *)(lVar3 + -0x828) ^ uVar62;
  *puVar23 = uVar32 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x5e8) = (*(ulonglong *)(lVar3 + -0xb18) >> 0x20 ^ uVar38) >> 6;
  puVar42 = (ulonglong *)(lVar3 - (uVar52 ^ 0x1e21ec14));
  *puVar39 = (uVar26 ^ *puVar48) - (CONCAT44(uVar12,uVar57) ^ 0x526e81217ca20b85) ^ uVar46;
  lVar2 = DAT_182671c40;
  *puVar54 = (uVar46 ^ *puVar42) - uVar32 ^ uVar33;
  uVar38 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar2 + -0x828) =
       (CONCAT44(uVar11,uVar8) ^ 0xd764f8a729a47a6b) + (*puVar37 ^ uVar28) ^ uVar26;
  *(ulonglong *)(lVar2 + -0x5e8) =
       uVar31 ^ uVar26 ^ *puVar41 ^ *(ulonglong *)(lVar2 + -0x7e8) ^ uVar29;
  *puVar48 = 0xaea2d4f9832d3367 - (CONCAT44(uVar11,DAT_182671c8c) ^ 0x657b204a2dd1b0b1);
  local_f0 = (byte)(uVar9 >> 0x18);
  *(ulonglong *)(lVar2 - (uVar55 ^ 0x843fe8e7)) =
       (*(ulonglong *)(lVar2 - (uVar49 ^ 0x100857a0)) ^ uVar31) >> ((local_f0 ^ 0x87) & 0x3f) ^
       uVar46;
  *(int *)(lVar2 + -0x94) = -0x6a7431bd << ((byte)*(undefined4 *)(lVar2 + -0x76c) & 0x1f);
  uVar32 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *puVar23 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x5e8)) << 0x3b ^ uVar32;
  puVar37 = (ulonglong *)(lVar2 - (uVar38 ^ 0x14806b95));
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x1480653d)) =
       -0x22e0ebe8150f27bc - (CONCAT44(uVar50,uVar11) ^ 0xe8afcb4f831bc32b);
  uVar14 = DAT_182671ee8;
  lVar2 = DAT_182671c40;
  uVar32 = *puVar37 ^ uVar46 | uVar32 ^ *puVar23;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar32 ^ uVar59;
  uVar16 = DAT_182671f14;
  uVar55 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x5e8) =
       (*(ulonglong *)(lVar2 - (uVar51 ^ 0x57ddf817)) ^ uVar29) - uVar32 ^ uVar55;
  uVar49 = CONCAT44(uVar16,uVar16);
  uVar32 = uVar33 ^ uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0xb08) ^ uVar49 ^
           *(ulonglong *)(DAT_182671c40 + -0xb18);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar32;
  *puVar37 = (uVar32 ^ uVar49) >> ((bVar58 ^ 0x22) & 0x3f) ^ uVar31;
  lVar2 = DAT_182671c40;
  *puVar23 = CONCAT44(uVar20,uVar13) ^ CONCAT44(uVar13,uVar57) ^ 0xa90cea0deb38526c;
  uVar49 = (*(ulonglong *)(lVar2 + -0x828) ^ uVar49) << ((bVar58 ^ 0x1c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar49 ^ CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar32 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x9e3fe5ef)) = (uVar31 ^ *puVar39 | uVar49) ^ uVar46;
  uVar38 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *puVar23 = (uVar33 ^ *(ulonglong *)(lVar2 + -0xb08)) -
             (*(ulonglong *)(lVar2 - (uVar32 ^ 0x48520308)) ^ uVar46) ^ uVar38;
  *puVar41 = (CONCAT44(uVar7,uVar21) ^ 0x6248ced32390cc) >>
             (((byte)uVar15 ^ *(byte *)(lVar2 + -0xb18)) & 0x3f);
  uVar44 = *(ulonglong *)(lVar2 - (uVar44 ^ 0x82000b08)) ^ *(ulonglong *)(lVar2 + -0x5e8) ^ uVar55 ^
           uVar59 ^ uVar46;
  *puVar39 = uVar44;
  uVar32 = (uVar59 ^ uVar44) << 0x29;
  uVar44 = ((ulonglong)((uVar30 & 0xffff | uVar22) >> 7) | uVar56 << 9) ^ uVar44 >> 0x17;
  *(ulonglong *)(lVar2 + -0x7e8) = uVar44 ^ uVar28;
  uVar14 = DAT_182671f20;
  *(ulonglong *)(lVar2 + -0xb08) = uVar32 ^ CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar49 = CONCAT44(uVar14,uVar14);
  uVar21 = DAT_182671ce4 & 0xff;
  *(ulonglong *)(lVar2 + -0x828) = (uVar32 | uVar44) ^ uVar49;
  DAT_182671ce4 = ((DAT_182671ce4 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar28 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  *puVar43 = (*(ulonglong *)(lVar2 + -0x5e8) ^ uVar55) -
             (*(ulonglong *)(lVar2 - (uVar34 ^ 0x788f77f)) ^ uVar49) ^ uVar28;
  uVar14 = DAT_182671cc4;
  local_e8 = (byte)uVar5;
  *(ulonglong *)(lVar2 + -0x7e8) =
       (CONCAT44(uVar10,uVar6) ^ 0x3792497fd835acb2) >>
       ((*(byte *)(lVar2 - (uVar40 ^ 0x10000602)) ^ (byte)uVar17) & 0x3f);
  uVar16 = DAT_182671df0;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar31 = *(ulonglong *)(lVar2 + -0x760) ^ uVar44 ^ uVar38 ^ uVar59 ^ *puVar23;
  *(ulonglong *)(lVar2 + -0xb08) = uVar31;
  uVar33 = (uVar44 ^ *puVar35) >> ((local_e8 ^ 0x87) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar33 ^ CONCAT44(uVar16,uVar16);
  uVar32 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *puVar39 = (uVar31 ^ uVar44) << ((local_130 ^ 0xaf) & 0x3f) ^ uVar32;
  lVar2 = DAT_182671c40;
  uVar33 = uVar33 | uVar32 ^ *puVar42;
  uVar32 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar21 = DAT_182671d20 & 0xff;
  uVar56 = uVar33 ^ uVar32;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = uVar56;
  DAT_182671d20 = ((DAT_182671d20 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar44 = CONCAT44(DAT_182671d20,DAT_182671d20);
  uVar31 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(lVar2 + -0x760) = (uVar38 ^ *puVar24) - uVar33 ^ uVar44;
  uVar14 = DAT_182671e04;
  uVar38 = uVar31 ^ uVar32 ^ uVar28 ^ uVar56 ^ *(ulonglong *)(lVar2 + -0xb18);
  *(uint *)(lVar2 + -0x644) = (DAT_182671c7c ^ 0xef39ec1a) - (DAT_182671c64 ^ 0x6157dce);
  *(ulonglong *)(lVar2 + -0x5e8) = (uVar38 ^ uVar31) >> ((local_130 ^ 0x83) & 0x3f) ^ uVar26;
  uVar32 = CONCAT44(uVar14,uVar14);
  *puVar27 = (uVar38 ^ uVar31) << ((local_138 ^ 0x44) & 0x3f) ^ uVar32;
  uVar14 = DAT_182671e0c;
  uVar32 = uVar32 ^ *puVar39 | uVar26 ^ *(ulonglong *)(lVar2 + -0x5e8);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar32 ^ CONCAT44(DAT_182671d74,DAT_182671d74);
  *(ulonglong *)(lVar2 + -0xb08) = (uVar28 ^ *(ulonglong *)(lVar2 + -0xb18)) - uVar32 ^ uVar29;
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar32 = *(ulonglong *)(DAT_182671c40 + -0x760) ^ uVar28 ^ uVar44 ^ uVar49 ^
           *(ulonglong *)(DAT_182671c40 + -0x828);
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar32;
  uVar26 = (uVar32 ^ uVar28) >> ((local_f8 ^ 0x29) & 0x3f);
  uVar21 = DAT_182671e98 & 0xff;
  *puVar23 = uVar26 ^ uVar46;
  uVar16 = DAT_182671e48;
  uVar14 = DAT_182671d00;
  DAT_182671e98 = ((DAT_182671e98 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar28 = (uVar28 ^ uVar32) << (((byte)uVar8 ^ 0x13) & 0x3f);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar28 ^ CONCAT44(DAT_182671e98,DAT_182671e98);
  uVar32 = *(ulonglong *)(lVar2 + -0x760);
  uVar28 = uVar28 | uVar26;
  uVar49 = CONCAT44(uVar14,uVar14);
  uVar26 = uVar28 ^ uVar49;
  *puVar39 = uVar26;
  uVar14 = DAT_182671e3c;
  *(ulonglong *)(lVar2 + -0xb18) = (uVar32 ^ uVar44) - uVar28 ^ CONCAT44(uVar16,uVar16);
  uVar21 = DAT_182671c68;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar32 = CONCAT44(DAT_182671d08,DAT_182671d08);
  uVar26 = *(ulonglong *)(lVar2 - (uVar61 ^ 0x56ddc9a7)) ^ uVar44 ^ uVar49 ^ uVar29 ^ uVar26;
  uVar28 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar2 + -0x828) = uVar26;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x31160467)) =
       (uVar26 ^ uVar44) >> (((byte)uVar21 ^ 9) & 0x3f) ^ uVar32;
  uVar32 = *puVar39;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar18;
  *puVar23 = (uVar49 ^ uVar32) - (CONCAT44(uVar13,uVar7) ^ 0xb491baf0c54bfe3c);
  return;
}



############ FUN_ 181028700 size=5120 ############

void FUN_181028700(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_50;
  
  uVar16 = DAT_182671e1c;
  uVar12 = DAT_182671d20;
  uVar13 = DAT_182671c78;
  lVar6 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c78;
  uVar29 = DAT_182671c78 << 0x10 | DAT_182671c78 >> 0x10;
  uVar4 = *(uint *)(&DAT_182613218 + DAT_182671fe4);
  uVar19 = *(uint *)(&DAT_182613220 + DAT_182671fe4) ^ DAT_182671c78;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x920);
  uVar40 = (ulonglong)uVar29;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xd88);
  uVar36 = CONCAT44(DAT_182671e58,DAT_182671e58);
  DAT_182671c70 = uVar29;
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (CONCAT44(DAT_182671f78,DAT_182671f78) ^ *puVar1 |
       CONCAT44(DAT_182671f20,DAT_182671f20) ^ *(ulonglong *)(DAT_182671c40 + -0x4b8)) ^ uVar36;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar23 = (ulonglong)DAT_182671df8;
  uVar28 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0xa798f465)) =
       (CONCAT44(uVar16,uVar16) ^ *puVar2) -
       (*(ulonglong *)(lVar6 - (uVar40 ^ 0xff45a418)) ^ uVar36) ^ uVar38;
  uVar24 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar21 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar29 ^ 0xff45a7a8)) =
       uVar21 ^ uVar24 ^ uVar28 ^ *(ulonglong *)(lVar6 + -0x760) ^ *(ulonglong *)(lVar6 + -0x510);
  *(ulonglong *)(lVar6 + -0xa60) =
       CONCAT44(uVar29,uVar29) ^ CONCAT44(uVar13,uVar29) ^ 0x7c5e01a760e0ece1;
  puVar22 = (ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0xa798ff75));
  uVar30 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar6 + -0xb18) = (*puVar22 >> 0x20 ^ uVar23) >> 5 ^ uVar30;
  uVar27 = CONCAT44(DAT_182671cac,DAT_182671cac);
  puVar34 = (ulonglong *)(lVar6 - ((ulonglong)DAT_182671c58 ^ 0x197934f8));
  puVar3 = (ulonglong *)(lVar6 + -0xb20);
  *puVar34 = (uVar28 ^ *puVar22) << (((byte)uVar13 ^ 0x5e) & 0x3f) ^ uVar27;
  uVar23 = *puVar3;
  *(ulonglong *)(lVar6 + -0xc38) = uVar23 ^ uVar38 | 0x1412348cd051071;
  lVar7 = DAT_182671c40;
  uVar27 = *(ulonglong *)(lVar6 + -0xb18) ^ uVar30 | uVar27 ^ *(ulonglong *)(lVar6 + -0xc18);
  uVar30 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *puVar1 = uVar27 ^ uVar30;
  uVar12 = DAT_182671dfc;
  uVar28 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar7 + -0x4b8) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar29 ^ 0xff45a0f8)) ^ uVar24) - uVar27 ^ uVar28;
  uVar31 = CONCAT44(uVar12,uVar12);
  uVar24 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar27 = (ulonglong)DAT_182671c50;
  *puVar2 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c6c ^ 0xb6f6554b)) ^ uVar31 ^ uVar30 ^
            uVar23 ^ uVar38;
  uVar12 = DAT_182671d68;
  uVar15 = DAT_182671c8c;
  puVar25 = (ulonglong *)(lVar7 - (uVar27 ^ 0xa5b17158));
  bVar26 = (byte)(uVar13 >> 0x10);
  *puVar25 = (*(ulonglong *)(lVar7 - (uVar33 ^ 0xa798f2cd)) ^ uVar31) >> ((bVar26 ^ 0x8f) & 0x3f) ^
             uVar24;
  uVar16 = DAT_182671e68;
  uVar30 = CONCAT44(uVar12,uVar12);
  uVar31 = (uVar31 ^ *puVar2) << (((byte)uVar15 ^ 0xf7) & 0x3f);
  *(ulonglong *)(lVar7 + -0xa60) = uVar31 ^ uVar30;
  uVar5 = DAT_182671de4;
  uVar41 = CONCAT44(uVar16,uVar16);
  uVar31 = uVar24 ^ *(ulonglong *)(lVar7 + -0x510) | uVar31;
  uVar23 = *puVar3;
  uVar27 = (ulonglong)DAT_182671de4;
  uVar24 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar7 + -0x30) = uVar31 ^ uVar41;
  uVar32 = CONCAT44(uVar5,uVar5);
  puVar22 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671c5c ^ 0x72f8057a));
  *(ulonglong *)(lVar7 + -0xc38) = (uVar38 ^ uVar23) - uVar31 ^ uVar24;
  uVar17 = DAT_182671f5c;
  uVar36 = *puVar22 ^ uVar32 ^ uVar28 ^ *(ulonglong *)(lVar7 + -0x4b8) ^ uVar36;
  *(ulonglong *)(lVar7 + -0xc18) = uVar36;
  uVar16 = DAT_182671ef8;
  uVar12 = DAT_182671c74;
  lVar6 = DAT_182671c40;
  uVar31 = (uVar36 >> 0x20 ^ uVar27) >> 8;
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar31 ^ CONCAT44(uVar17,uVar17);
  uVar27 = CONCAT44(uVar12,DAT_182671c80);
  uVar36 = (uVar32 ^ uVar36) << (((byte)DAT_182671c80 ^ 0xb) & 0x3f);
  uVar23 = *(ulonglong *)(lVar6 + -0x4b8);
  *(ulonglong *)(lVar6 + -0x760) = uVar36 ^ CONCAT44(uVar16,uVar16);
  uVar36 = uVar36 | uVar31;
  *puVar1 = uVar28 ^ *(ulonglong *)(lVar6 + -0x4b8) | 0xdad3fc8440c9bb23;
  uVar16 = DAT_182671eb4;
  uVar37 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *puVar2 = uVar36 ^ uVar37;
  uVar12 = DAT_182671db0;
  uVar5 = DAT_182671c68;
  uVar39 = CONCAT44(uVar16,uVar16);
  *puVar25 = (uVar28 ^ uVar23) - uVar36 ^ uVar39;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c6c ^ 0xb6f6574b)) =
       *(ulonglong *)(lVar6 + -0xc38) ^ uVar31 ^ uVar37 ^ uVar24 ^ *puVar2;
  uVar23 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar6 + -0x380) = *(ulonglong *)(lVar6 + -0xa60) ^ uVar30 | 0x361f1fa495a0f8d7;
  uVar12 = DAT_182671f54;
  uVar8 = DAT_182671c7c;
  uVar28 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *puVar34 = (*(ulonglong *)(lVar6 - (uVar23 ^ 0x72f80dda)) ^ uVar31) >>
             (((byte)uVar5 ^ 0x26) & 0x3f) ^ uVar28;
  uVar36 = CONCAT44(uVar12,uVar12);
  puVar25 = (ulonglong *)(lVar6 - ((ulonglong)DAT_182671c4c ^ 0x590a0ab6));
  *puVar25 = (uVar31 ^ *puVar3) << 0xc ^ uVar36;
  uVar5 = DAT_182671c84;
  uVar23 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar6 + -0xb18) = *(ulonglong *)(lVar6 + -0xa60) ^ *puVar1 ^ uVar36 ^ uVar30;
  uVar38 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xb29e7b2)) =
       (*(ulonglong *)(lVar6 - (uVar23 ^ 0x8a201d85)) ^ uVar28 |
       *(ulonglong *)(lVar6 - ((ulonglong)uVar5 ^ 0x2db8e7f8)) ^ uVar36) ^ uVar38;
  uVar12 = DAT_182671cb4;
  uVar28 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *(ulonglong *)(lVar6 + -0x4b8) =
       (*(ulonglong *)(lVar6 + -0xc38) ^ uVar24) - (uVar38 ^ *(ulonglong *)(lVar6 + -0x760)) ^
       uVar28;
  uVar5 = DAT_182671c80;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar23 = *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c80 ^ 0x4ea7b703));
  *(uint *)(lVar6 + -0x61c) = (DAT_182671c70 ^ 0xc721e64e) & *(uint *)(lVar6 + -0x634);
  *puVar2 = uVar23 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x30) ^ uVar39 ^ uVar41;
  uVar8 = DAT_182671c54;
  uVar24 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *puVar22 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c8c ^ 0xfdbb7a56)) ^ uVar32) >>
             (((byte)DAT_182671c90 ^ 0xa4) & 0x3f) ^ uVar24;
  uVar23 = *(ulonglong *)(lVar6 + -0x380);
  uVar36 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *puVar3 = (uVar32 ^ *puVar2) << 7 ^ uVar36;
  uVar30 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar5 ^ 0x4ea7b873)) =
       (*(ulonglong *)(lVar6 - (uVar40 ^ 0xff45acb8)) ^ uVar36 | uVar24 ^ uVar23) ^ uVar30;
  uVar14 = DAT_182671c7c;
  uVar31 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar6 + -0xb18) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xdff9fce8)) ^ uVar39) -
       (uVar30 ^ *(ulonglong *)(lVar6 + -0xa60)) ^ uVar31;
  uVar23 = (ulonglong)DAT_182671d2c;
  uVar24 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar5 = DAT_182671d2c >> 0xe;
  *(ulonglong *)(lVar6 + -0xc18) =
       uVar24 ^ uVar30 ^ uVar28 ^ *(ulonglong *)(lVar6 + -0xa60) ^ *(ulonglong *)(lVar6 + -0x4b8);
  uVar12 = DAT_182671cd4;
  uVar10 = DAT_182671c64;
  uVar9 = DAT_182671c5c;
  *puVar25 = (uVar23 << 0x12 | (ulonglong)uVar5) ^
             *(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0xb29ecca)) >> 0xe ^ uVar21;
  uVar11 = DAT_182671c68;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c68 ^ 0x42a00e2a)) =
       (uVar24 ^ *(ulonglong *)(lVar6 + -0xc18)) << (((byte)uVar8 ^ 0xca) & 0x3f) ^ uVar36;
  uVar5 = DAT_182671c58;
  uVar23 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c58 ^ 0x197938d0)) =
       (uVar32 ^ *puVar2) & (CONCAT44(uVar10,uVar11) ^ 0x1fbc3efd2f470271);
  uVar12 = DAT_182671f18;
  uVar30 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar6 - (uVar23 ^ 0xa5b177c8)) =
       (uVar36 ^ *(ulonglong *)(lVar6 + -0xc38) | *puVar1 ^ uVar21) ^ uVar30;
  uVar23 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0xb29ebf2)) =
       (uVar28 ^ *(ulonglong *)(lVar6 + -0x4b8)) -
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar6 + -0xf0)) ^ uVar23;
  uVar36 = uVar30 ^ *(ulonglong *)(lVar6 + -0x380);
  *(ulonglong *)(lVar6 + -0x510) =
       (CONCAT44(uVar10,uVar5) ^ 0x9f428500d0f58433) + 0x4801ff8fe4495597;
  uVar21 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar24 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar6 + -0xa60) = (uVar23 ^ *puVar3) - uVar36 ^ uVar21;
  uVar17 = DAT_182671ed4;
  uVar23 = (*(ulonglong *)(lVar6 + -0xbd8) ^ uVar37) + (*(ulonglong *)(lVar6 + -0xa50) ^ uVar30);
  *(ulonglong *)(lVar6 + -0xc18) = uVar23 ^ uVar24;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c6c ^ 0xb6f651e3)) =
       uVar36 - uVar23 ^ CONCAT44(uVar17,uVar17);
  uVar28 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar6 + -0x30) =
       *(ulonglong *)(lVar6 + -0xb18) ^ uVar28 ^ uVar31 ^ uVar38 ^ *(ulonglong *)(lVar6 + -0x760);
  uVar36 = CONCAT44(DAT_182671db8,DAT_182671db8);
  puVar35 = (ulonglong *)(lVar6 - (uVar40 ^ 0xff45aeb8));
  uVar23 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *puVar35 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0xb29e0e2)) ^ uVar28) >>
             (((byte)uVar15 ^ 0xce) & 0x3f) ^ uVar36;
  uVar12 = DAT_182671f50;
  uVar28 = (uVar28 ^ *(ulonglong *)(lVar6 + -0x30)) << 0x30;
  *(ulonglong *)(lVar6 + -0xc38) = uVar28 ^ uVar23;
  uVar5 = DAT_182671c4c;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) = (uVar36 ^ *puVar1 | uVar28) ^ uVar30;
  uVar12 = DAT_182671d98;
  puVar25 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar14 ^ 0xb29ebca));
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (CONCAT44(uVar29,uVar13) ^ 0xd0bcbe2270ac8302) << (((byte)uVar5 ^ 0xa1) & 0x3f);
  uVar14 = DAT_182671c90;
  uVar8 = DAT_182671c6c;
  lVar6 = DAT_182671c40;
  uVar23 = CONCAT44(uVar12,uVar12);
  uVar36 = (ulonglong)DAT_182671c90;
  *puVar3 = (uVar31 ^ *puVar25) -
            (CONCAT44(DAT_182671efc,DAT_182671efc) ^ *(ulonglong *)(DAT_182671c40 + -0x680)) ^
            uVar23;
  uVar12 = DAT_182671eec;
  puVar34 = (ulonglong *)(lVar6 - ((ulonglong)uVar5 ^ 0x590a0016));
  *puVar34 = (CONCAT44(uVar8,DAT_182671c80) ^ 0x731297dc5acd7c0f) <<
             (((byte)uVar17 ^ *(byte *)puVar2) & 0x3f);
  uVar5 = DAT_182671c50;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x760) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c68 ^ 0x42a00932)) ^ uVar23) -
       (*(ulonglong *)(lVar6 - (uVar36 ^ 0x8a201525)) ^ uVar30) ^ uVar31;
  uVar12 = DAT_182671ec8;
  lVar6 = DAT_182671c40;
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0x4b8);
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (CONCAT44(uVar10,uVar5) ^ 0x8d6bdc460a12dc74) + 0x6be13ff435ed368d;
  uVar36 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *puVar1 = (uVar27 ^ 0x286f36e7b1584deb) -
            (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar6 + -0x228)) ^ uVar36;
  uVar12 = DAT_182671e4c;
  *(ulonglong *)(lVar6 + -0xc38) = CONCAT44(uVar9,uVar14) ^ 0xff94ed0db7dfeec5 | 0x9a14240596d9e2c5;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(DAT_182671c7c,uVar14);
  *(ulonglong *)(lVar6 + -0x510) =
       (*(ulonglong *)(lVar6 - (uVar33 ^ 0xa798f665)) ^ uVar36) + (uVar30 ^ uVar23) ^ uVar28;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c8c ^ 0xfdbb715e)) =
       0xbd0acb30c017bd8 - (uVar27 ^ 0x733f5cae1a9335f1);
  uVar27 = CONCAT44(DAT_182671e60,DAT_182671e60);
  uVar32 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar23 = uVar27 ^ uVar28 ^ uVar21 ^ *(ulonglong *)(lVar6 + -0xa60) ^
           *(ulonglong *)(lVar6 + -0x510);
  bVar20 = (byte)DAT_182671c74;
  *(ulonglong *)(lVar6 + -0xb18) = uVar23;
  uVar8 = DAT_182671c54;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c90 ^ 0x8a20121d)) =
       (uVar23 ^ uVar27) >> ((bVar20 ^ 0x38) & 0x3f) ^ uVar32;
  lVar7 = DAT_182671c40;
  *puVar3 = CONCAT44(DAT_182671c58,uVar8) ^ 0xd364754aef0d4f5c |
            uVar24 ^ *(ulonglong *)(lVar6 + -0xc18);
  uVar12 = DAT_182671dd8;
  uVar8 = DAT_182671c60;
  uVar23 = *(ulonglong *)(lVar7 + -0xa60);
  uVar24 = (ulonglong)DAT_182671c84;
  uVar36 = (uVar27 ^ *puVar25) << (((byte)uVar5 ^ 0x68) & 0x3f);
  uVar27 = *(ulonglong *)(lVar7 + -0x380);
  uVar30 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar6 + -0x30) = uVar36 ^ CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar16 = DAT_182671ed0;
  uVar36 = uVar32 ^ uVar27 | uVar36;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 + -0xc38) = uVar36 ^ uVar37;
  uVar12 = DAT_182671e90;
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 + -0x4b8) = (uVar21 ^ uVar23) - uVar36 ^ uVar28;
  uVar5 = DAT_182671c5c;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar23 = uVar27 ^ uVar31 ^ CONCAT44(uVar17,uVar17) ^ *puVar2 ^ *(ulonglong *)(lVar7 + -0x760);
  *puVar1 = uVar23;
  uVar36 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar5 ^ 0x72f8007a)) =
       (uVar23 ^ uVar27) >> ((bVar26 ^ 0xb8) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar7 + -0x510) = CONCAT44(uVar13,uVar8) ^ 0xb22985c30d07f93e;
  uVar8 = DAT_182671c80;
  lVar6 = DAT_182671c40;
  bVar20 = (byte)DAT_182671c50;
  uVar23 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x2db8e5f8)) =
       (uVar27 ^ *puVar35) << ((bVar20 ^ 0x68) & 0x3f) ^ uVar23;
  uVar12 = DAT_182671d5c;
  *(ulonglong *)(lVar6 + -0xb18) = 0xdd4bc3a0e879e8d6 >> (((byte)uVar8 ^ 0x29) & 0x3f);
  uVar16 = DAT_182671dd4;
  uVar21 = CONCAT44(uVar12,uVar12);
  *puVar34 = (*(ulonglong *)(lVar6 - (uVar33 ^ 0xa798f9c5)) ^ uVar36 | uVar23 ^ *puVar3) ^ uVar21;
  uVar18 = DAT_182671e04;
  uVar8 = DAT_182671c64;
  uVar27 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0x30) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar5 ^ 0x72f8019a)) ^ uVar31) -
       (uVar21 ^ *(ulonglong *)(lVar6 + -0x380)) ^ uVar27;
  uVar31 = CONCAT44(uVar18,uVar18);
  uVar23 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x5c6bbc96)) =
       uVar31 ^ uVar21 ^ uVar28 ^ *(ulonglong *)(lVar6 + -0x380) ^ *(ulonglong *)(lVar6 + -0x4b8);
  uVar12 = DAT_182671c94;
  uVar36 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  uVar24 = (*(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xb6f6560b)) ^ uVar31) >>
           ((bVar20 ^ 0x72) & 0x3f);
  *puVar2 = uVar24 ^ uVar36;
  lVar6 = DAT_182671c40;
  uVar21 = (*(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0xa798f525)) ^ uVar31) <<
           (((byte)uVar12 ^ 0x6c) & 0x3f);
  uVar38 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0x4b8);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar21 ^ CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar21 = uVar21 | uVar24;
  *puVar1 = uVar21 ^ uVar38;
  uVar17 = DAT_182671d4c;
  uVar16 = DAT_182671c9c;
  uVar24 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *(ulonglong *)(lVar6 + -0xb18) = (uVar28 ^ uVar23) - uVar21 ^ uVar24;
  uVar5 = DAT_182671c6c;
  uVar23 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x680) =
       uVar23 ^ uVar27 ^ uVar37 ^ *(ulonglong *)(lVar6 + -0xc38) ^ *(ulonglong *)(lVar6 + -0x30);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c58 ^ 0x197933c0)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c4c ^ 0x590a09f6)) ^ uVar31) <<
       (((byte)uVar5 ^ 99) & 0x3f);
  uVar21 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  local_50 = (byte)uVar11;
  *(ulonglong *)(lVar6 + -0x760) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0x17ae7706)) ^ uVar23) >>
       (((byte)DAT_182671c54 ^ 0xee) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c7c ^ 0xb29e352)) =
       (uVar23 ^ *(ulonglong *)(lVar6 + -0x680)) << ((local_50 ^ 0x38) & 0x3f) ^ uVar24;
  uVar23 = (ulonglong)DAT_182671c5c;
  uVar28 = CONCAT44(DAT_182671f64,DAT_182671f64);
  *(ulonglong *)(lVar6 + -0x510) =
       (CONCAT44(uVar12,DAT_182671c90) ^ 0x55a4c4c1c4cf9bc6) <<
       (((byte)uVar16 ^ *(byte *)(lVar6 + -0xb18)) & 0x3f);
  uVar12 = DAT_182671ce4;
  uVar31 = (ulonglong)DAT_182671c48;
  uVar21 = (uVar24 ^ *puVar22 | uVar21 ^ *(ulonglong *)(lVar6 + -0x760)) ^ uVar28;
  *(ulonglong *)(lVar6 + -0xc38) = uVar21;
  uVar33 = CONCAT44(uVar12,uVar12);
  *puVar3 = (uVar27 ^ *(ulonglong *)(lVar6 + -0x30)) -
            (*(ulonglong *)(lVar6 - (uVar23 ^ 0x72f80ac2)) ^ uVar28) ^ uVar33;
  lVar6 = DAT_182671c40;
  uVar23 = *puVar2;
  uVar30 = CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar27 = (ulonglong)DAT_182671e34;
  uVar21 = uVar28 ^ uVar24 ^ uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0xb18) ^ uVar21;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar21;
  *(ulonglong *)(lVar6 + -0x380) = (uVar36 ^ uVar23) >> (((byte)uVar5 ^ 0x47) & 0x3f);
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x3ae1132)) = (uVar21 >> 0x20 ^ uVar27) >> 0xe ^ uVar30;
  uVar27 = (uVar32 ^ *(ulonglong *)(lVar6 + -0x760)) << (((byte)uVar8 ^ 0xe4) & 0x3f);
  uVar23 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar6 + -0x4b8) = uVar27 ^ CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c68 ^ 0x42a00492)) =
       (*(ulonglong *)(lVar6 + -0x30) ^ uVar30 | uVar27) ^ uVar23;
  uVar12 = DAT_182671d10;
  uVar23 = *(ulonglong *)(lVar6 + -0x680) ^ uVar23;
  *(ulonglong *)(lVar6 + -0x510) =
       (uVar24 ^ *(ulonglong *)(lVar6 + -0xb18)) - uVar23 ^ CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x3ae1d3a)) =
       uVar23 >> (((byte)uVar18 ^ *(byte *)(lVar6 + -0xa60)) & 0x3f);
  *puVar2 = CONCAT44(uVar12,uVar12) ^ uVar33 ^ uVar38 ^ *puVar1 ^ *puVar3;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar4 ^ uVar29;
  return;
}



############ FUN_ 180f507a0 size=5751 ############

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

void FUN_180f507a0(void)

{
  uint uVar1;
  undefined4 uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint *puVar18;
  byte bVar19;
  uint uVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  byte local_res18;
  
  uVar10 = DAT_182671c7c;
  lVar3 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c7c;
  uVar29 = DAT_182671c7c << 0x10 | DAT_182671c7c >> 0x10;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182672184);
  uVar22 = *(uint *)(&DAT_182613218 + DAT_182672184) ^ DAT_182671c7c;
  uVar40 = (ulonglong)uVar29;
  uVar31 = CONCAT44(DAT_182671e14,DAT_182671e14);
  uVar33 = CONCAT44(DAT_182671c7c,uVar29);
  uVar27 = CONCAT44(DAT_182671cac,DAT_182671cac);
  DAT_182671c6c = uVar29;
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xd039ef0c)) =
       CONCAT44(DAT_182671e24,DAT_182671e24) ^ uVar27 ^ uVar31 ^
       *(ulonglong *)(DAT_182671c40 + -0x888) ^ *(ulonglong *)(DAT_182671c40 + -0x828);
  uVar26 = CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar30 = CONCAT44(DAT_182671f50,DAT_182671f50);
  uVar23 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar3 + -0xc18) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x110)) + (uVar33 ^ 0x342dcf63a40c6c9b) ^ uVar26;
  uVar31 = (uVar30 ^ *(ulonglong *)(lVar3 + -0x628)) +
           (CONCAT44(uVar29,uVar29) ^ 0x978f0bb01f48d2cf);
  *(ulonglong *)(lVar3 + -0xf0) = uVar31 ^ uVar23;
  puVar21 = (ulonglong *)(lVar3 - (uVar40 ^ 0xee1cdc21));
  uVar30 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xd039ed9c)) = uVar31 + (*puVar21 ^ uVar26) ^ uVar30;
  uVar11 = DAT_182671c70;
  lVar4 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar29 ^ 0xee1cdbe1)) =
       (*(ulonglong *)(lVar3 + -0xc18) ^ uVar26) << (((byte)(uVar10 >> 0x10) ^ 0x20) & 0x3f) ^
       uVar31;
  uVar2 = DAT_182671cec;
  uVar20 = DAT_182671c50;
  uVar23 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar4 + -0xb18) =
       (CONCAT44(uVar10,uVar10) ^ 0x9c292489f3eebe35) -
       (CONCAT44(uVar11,uVar29) ^ 0x8ee45db2e00bc8a8);
  uVar7 = DAT_182671c8c;
  uVar12 = DAT_182671c74;
  uVar36 = (ulonglong)DAT_182671c74;
  uVar26 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0x2abf75f3)) ^ uVar26) >>
           (((byte)uVar20 ^ 0x99) & 0x3f);
  uVar33 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(lVar4 + -0xa50) = uVar26 ^ CONCAT44(uVar2,uVar2);
  uVar23 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x74922e04)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xd896f448)) ^ uVar31 | uVar26) ^ uVar33;
  uVar2 = DAT_182671d68;
  uVar20 = DAT_182671c80;
  uVar6 = DAT_182671c54;
  uVar38 = CONCAT44(DAT_182671f30,DAT_182671f30);
  uVar34 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar4 + -0x7c0) =
       *(ulonglong *)(lVar4 - (uVar40 ^ 0xee1cd3b9)) ^ *(ulonglong *)(lVar4 - (uVar23 ^ 0x88382faa))
       ^ uVar38 ^ uVar33 ^ uVar30;
  uVar16 = DAT_182671d74;
  uVar32 = CONCAT44(uVar2,uVar2);
  uVar23 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar4 + -0x408) =
       (CONCAT44(DAT_182671f38,DAT_182671f38) ^ *(ulonglong *)(lVar4 + -0x760)) +
       (CONCAT44(uVar11,uVar20) ^ 0xb75fc196806037cb) ^ uVar32;
  uVar5 = DAT_182671c78;
  uVar33 = CONCAT44(uVar16,uVar16);
  uVar26 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xb7fe350e)) =
       (CONCAT44(uVar6,DAT_182671c68) ^ 0x8aea7e7aa8f2327) +
       (uVar27 ^ *(ulonglong *)(lVar4 + -0x888)) ^ uVar33;
  uVar27 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xd896f878)) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0xb6e6271e)) ^ uVar32) +
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x2b0)) ^ uVar27;
  uVar20 = DAT_182671c94;
  *(uint *)(lVar4 + -0x1c8) = 0x75714e7 >> (((byte)uVar6 ^ 0x4b) & 0x1f);
  uVar7 = DAT_182671c5c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x408)) << (((byte)uVar20 ^ 0xca) & 0x3f) ^ uVar31;
  uVar26 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c58 ^ 0x1b96edcf)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar29 ^ 0xee1cd431)) ^ uVar32) >>
       (((byte)DAT_182671c50 ^ 0xa1) & 0x3f) ^ uVar26;
  uVar9 = DAT_182671c64;
  *(uint *)(lVar3 + -0x784) = (*(uint *)(lVar3 + -0x670) ^ DAT_182671d00) - (uVar12 ^ 0x784fbae1);
  uVar2 = DAT_182671ee8;
  uVar23 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar3 + -0xb20) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xb08) | uVar31 ^ *(ulonglong *)(lVar3 + -0x4b8)) ^ uVar23;
  uVar31 = CONCAT44(uVar2,uVar2);
  uVar23 = *(ulonglong *)(lVar3 - (uVar25 ^ 0xd039e53c)) ^ uVar31 ^ uVar23 ^ uVar27 ^
           *(ulonglong *)(lVar3 + -0x7e8);
  uVar26 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar3 + -0x828) = uVar23;
  uVar20 = DAT_182671c88;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar23 ^ uVar31) + (uVar30 ^ *(ulonglong *)(lVar3 + -0x380)) ^ uVar26;
  uVar13 = DAT_182671ec4;
  uVar8 = DAT_182671c60;
  uVar39 = (ulonglong)DAT_182671ec4;
  *(ulonglong *)(lVar3 + -0x628) = (uVar31 ^ uVar23) << (((byte)uVar20 ^ 0xf4) & 0x3f) ^ uVar31;
  uVar2 = DAT_182671f80;
  uVar20 = DAT_182671c48;
  uVar23 = (uVar31 ^ *(ulonglong *)(lVar3 + -0x828)) >> (((byte)uVar5 ^ 4) & 0x3f);
  *(ulonglong *)(lVar3 + -0xf0) = uVar23 ^ CONCAT44(DAT_182671ce8,DAT_182671ce8);
  lVar4 = DAT_182671c40;
  uVar30 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x52287143)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x52287c73)) ^ uVar31 | uVar23) ^ uVar30;
  uVar2 = DAT_182671ea4;
  uVar38 = uVar38 ^ *(ulonglong *)(lVar4 + -0x7c0);
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xc18) =
       *(ulonglong *)(lVar4 - (uVar34 ^ 0x7b2d7a4b)) ^ uVar41 ^ uVar30 ^ uVar26 ^
       *(ulonglong *)(lVar4 + -0xb18);
  uVar14 = DAT_182671c90;
  uVar30 = CONCAT44(uVar2,uVar2);
  uVar23 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c68 ^ 0x5c67eeaf));
  *(undefined8 *)(lVar4 + -0xa50) = 0x15ccc11c8;
  uVar33 = (uVar23 ^ uVar27) + uVar38 ^ uVar30;
  uVar23 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar4 + -0xbd8) = uVar33;
  uVar20 = DAT_182671c4c;
  uVar31 = uVar38 << (((byte)DAT_182671c78 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa70) = uVar31 ^ uVar23;
  uVar38 = uVar38 >> (((byte)DAT_182671c8c ^ 0xa4) & 0x3f);
  uVar27 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar4 + -0x760) = uVar38 ^ CONCAT44(DAT_182671d3c,DAT_182671d3c);
  *(longlong *)(lVar4 + -0x2b0) = -0xe3e7737787ce3f8 << ((byte)uVar31 & 0x3f);
  uVar32 = (uVar38 | uVar31) ^ uVar27;
  *(ulonglong *)(lVar4 + -0x888) = uVar32;
  uVar17 = DAT_182671e70;
  uVar15 = DAT_182671c94;
  lVar3 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c94 ^ 0x2abf7de3)) =
       uVar31 ^ uVar27 ^ uVar30 ^ uVar32 ^ uVar33;
  uVar5 = DAT_182671c58;
  *(ulonglong *)(lVar3 + -0x4b8) =
       CONCAT44(uVar7,DAT_182671c60) ^ 0xa08f01bb5f17a2cf | uVar23 ^ *(ulonglong *)(lVar3 + -0xa70);
  uVar2 = DAT_182671dec;
  puVar24 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x1b96e2cf));
  *(ulonglong *)(lVar3 + -0xb08) =
       (uVar31 ^ *puVar24) + (uVar26 ^ *(ulonglong *)(lVar3 + -0x110)) ^ uVar31;
  uVar16 = DAT_182671f00;
  uVar13 = DAT_182671c88;
  local_res18 = (byte)uVar10;
  uVar32 = (uVar31 ^ *(ulonglong *)(lVar3 + -0x408)) << ((local_res18 ^ 0x26) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb20) = uVar32 ^ CONCAT44(uVar2,uVar2);
  lVar4 = DAT_182671c40;
  uVar27 = CONCAT44(uVar16,uVar16);
  uVar33 = ((ulonglong)uVar17 << 0x1a | (ulonglong)(uVar17 >> 6)) ^
           *(ulonglong *)(lVar3 + -0x408) >> 6;
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar33 ^ uVar27;
  uVar7 = DAT_182671c84;
  uVar23 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c84 ^ 0xf8bed2c3)) = (uVar33 | uVar32) ^ uVar23;
  uVar41 = uVar41 ^ *(ulonglong *)(lVar4 + -0xc18);
  uVar37 = CONCAT44(DAT_182671d38,DAT_182671d38);
  uVar33 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar4 + -0x628) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xb816908b)) ^ uVar23 ^ uVar31 ^
       *(ulonglong *)(lVar4 + -0xb08) ^ uVar37;
  uVar2 = DAT_182671d9c;
  bVar19 = (byte)uVar15;
  *(ulonglong *)(lVar4 + -0xf0) = (uVar30 ^ *(ulonglong *)(lVar4 + -0xbd8)) + uVar41 ^ uVar33;
  uVar35 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c70 ^ 0xd039e504)) =
       uVar41 << ((bVar19 ^ 0xfd) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar4 + -0x7e8) =
       (*(ulonglong *)(lVar4 + -0xb18) ^ uVar35) >>
       ((*(byte *)(lVar4 - ((ulonglong)uVar7 ^ 0xf8bed1e3)) ^ (byte)uVar17) & 0x3f);
  uVar2 = DAT_182671f8c;
  puVar28 = (ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x1b96eadf));
  uVar23 = (*puVar28 >> 0x20 ^ uVar39) >> 10;
  *(ulonglong *)(lVar4 + -0xa50) = uVar23 ^ CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar5 = DAT_182671c8c;
  uVar32 = CONCAT44(uVar2,uVar2);
  uVar38 = (*(ulonglong *)(lVar4 + -0xb18) ^ uVar35 | uVar23) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x7c0) = uVar38;
  uVar2 = DAT_182671d14;
  uVar23 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar4 + -0x760) =
       (CONCAT44(uVar15,uVar5) ^ 0x12022002c3ac9771) >> ((bVar19 ^ 0xfc) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671e34;
  uVar42 = CONCAT44(uVar2,uVar2);
  uVar41 = CONCAT44(DAT_182671e34,DAT_182671e34);
  puVar18 = (uint *)(DAT_182671c40 - (uVar23 ^ 0x50aed396));
  uVar23 = uVar38 ^ uVar41 ^ uVar32 ^ uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0xf0);
  puVar43 = (ulonglong *)(DAT_182671c40 + -0xb08);
  uVar2 = *(undefined4 *)(DAT_182671c40 + -0x54);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar23;
  *(ulonglong *)(lVar3 + -0x888) = (uVar31 ^ *puVar43) + (uVar23 ^ uVar41) ^ uVar42;
  uVar23 = (ulonglong)DAT_182671c60;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c5c ^ 0xcbdab708)) = *puVar18 >> ((byte)uVar2 & 0x1f);
  uVar2 = DAT_182671e18;
  uVar16 = DAT_182671d94;
  lVar4 = DAT_182671c40;
  uVar32 = (*(ulonglong *)(lVar3 - (uVar23 ^ 0x2b78453a)) ^ uVar41) <<
           (((byte)DAT_182671c88 ^ 0xfa) & 0x3f);
  puVar43 = (ulonglong *)(DAT_182671c40 + -0x2b0);
  uVar31 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(DAT_182671c40 + -0xa70) = uVar32 ^ CONCAT44(DAT_182671d94,DAT_182671d94);
  uVar30 = *puVar43 >> 0x20 ^ uVar31 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x4b8) = uVar30;
  uVar38 = CONCAT44(uVar2,uVar2);
  uVar23 = CONCAT44(DAT_182671c58,DAT_182671c48);
  *(ulonglong *)(lVar4 + -0x110) = (uVar32 | uVar30 ^ uVar31) ^ uVar38;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xd039ea14)) =
       (*(ulonglong *)(lVar4 + -0xb18) ^ uVar35) - (uVar23 ^ 0xe3f32be14b0fb892);
  uVar31 = CONCAT44(DAT_182671d50,DAT_182671d50);
  uVar23 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c4c ^ 0xa3981d98)) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c90 ^ 0x50aedb5a)) ^
       *(ulonglong *)(lVar4 + -0x888) ^ uVar31 ^ uVar38 ^ uVar42;
  uVar39 = CONCAT44(DAT_182671f68,DAT_182671f68);
  uVar32 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(lVar4 + -0x828) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0x74b17933)) ^ uVar33) +
       (*(ulonglong *)(lVar4 + -0x628) ^ uVar37) ^ uVar39;
  uVar2 = DAT_182671d08;
  uVar10 = DAT_182671c68;
  uVar23 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (*(ulonglong *)(lVar4 - (uVar40 ^ 0xee1cd611)) ^ uVar37) <<
       (((byte)DAT_182671c68 ^ 0x67) & 0x3f) ^ uVar32;
  uVar7 = DAT_182671c60;
  uVar5 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(uVar2,uVar2);
  uVar30 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xf8bedcc3)) ^ uVar37) >>
       (((byte)DAT_182671c50 ^ 0x9e) & 0x3f) ^ uVar33;
  uVar23 = (ulonglong)DAT_182671c5c;
  *puVar28 = (CONCAT44(uVar9,uVar10) ^ 0xd0733f2f6ed753d7) -
             (*(ulonglong *)(lVar3 - (uVar30 ^ 0x2b784062)) ^ uVar33);
  lVar3 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xee1cda69)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xcbdabae4)) ^ uVar32 |
       uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) ^ uVar30;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c88 ^ 0x883822ba)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xb7fe343e)) ^ uVar27) >>
       ((*(byte *)(lVar3 + -0xa70) ^ (byte)uVar16) & 0x3f);
  uVar5 = DAT_182671c80;
  uVar23 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x749223b4)) =
       *(ulonglong *)(lVar3 + -0xa50) ^ *(ulonglong *)(lVar3 + -0x828) ^ uVar23 ^ uVar30 ^ uVar39;
  uVar27 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c90 ^ 0x50aed142)) =
       (CONCAT44(uVar5,DAT_182671c58) ^ 0x732a57fed7e2ca7) +
       (*(ulonglong *)(lVar3 + -0x7c0) ^ uVar23) ^ uVar27;
  uVar23 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *(ulonglong *)(lVar3 + -0x2b0) =
       (CONCAT44(uVar6,uVar5) ^ 0x5be343de6e6b877e) + (*(ulonglong *)(lVar3 + -0x888) ^ uVar42) ^
       uVar23;
  uVar2 = DAT_182671e94;
  puVar43 = (ulonglong *)(lVar3 - (uVar34 ^ 0x7b2d7053));
  uVar30 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar3 + -0x4b8) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xd039ecac)) ^ uVar23) + (*puVar43 ^ uVar27) ^ uVar30;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x7b2d7043)) =
       (*(ulonglong *)(DAT_182671c40 + -0xb08) ^ uVar27) << 0xe ^ CONCAT44(uVar2,uVar2);
  uVar23 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar3 + -0x408) =
       -0xd642baee291f372 -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0xb8169c1b)) ^ uVar30);
  uVar33 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x74922564)) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0xd896f498)) ^ uVar27) >> ((local_res18 ^ 0x2e) & 0x3f) ^
       uVar33;
  uVar16 = DAT_182671f0c;
  *(ulonglong *)(lVar3 + -0xf0) =
       (CONCAT44(uVar20,DAT_182671c78) ^ 0xb4d69d805583fb69) <<
       ((*(byte *)(lVar3 + -0xb18) ^ (byte)uVar2) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar27 = CONCAT44(uVar16,uVar16);
  uVar23 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0x2b7841a2)) =
       (*(ulonglong *)(DAT_182671c40 + -0xb18) ^ CONCAT44(uVar2,uVar2) |
       *(ulonglong *)(DAT_182671c40 + -0x110) ^ uVar33) ^ uVar27;
  uVar16 = DAT_182671e58;
  uVar35 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar3 + -0xc18) =
       uVar35 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x4b8) ^ uVar30 ^ *(ulonglong *)(lVar3 + -0x628);
  uVar38 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c48 ^ 0x52287183)) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0xd896f4b0)) ^ uVar31) +
       (CONCAT44(uVar20,uVar12) ^ 0xfa2265754d8a1d3c) ^ uVar38;
  puVar28 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c94 ^ 0x2abf7a6b));
  uVar27 = CONCAT44(uVar14,DAT_182671c84);
  *(ulonglong *)(lVar3 + -0x7e8) =
       CONCAT44(uVar13,DAT_182671c94) ^ CONCAT44(uVar11,uVar7) ^ 0xb741dabe0b426bee;
  uVar2 = DAT_182671d88;
  uVar20 = DAT_182671c48;
  uVar23 = (ulonglong)DAT_182671c70;
  *puVar28 = (uVar27 ^ 0xcb73da16c45702bd) + (*(ulonglong *)(lVar3 + -0x828) ^ uVar39) ^ uVar41;
  uVar31 = CONCAT44(uVar2,uVar2);
  bVar19 = (byte)DAT_182671c78;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xd039e46c)) =
       (*(ulonglong *)(lVar3 + -0x380) ^ uVar41) + (uVar38 ^ *(ulonglong *)(lVar3 + -0xbd8)) ^
       uVar31;
  uVar32 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar23 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar3 + -0x760) = (uVar38 ^ *(ulonglong *)(lVar3 + -0xbd8)) << 0x10 ^ uVar32;
  uVar33 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x1b96ec97)) =
       (uVar38 ^ *(ulonglong *)(lVar3 + -0xbd8)) >> ((bVar19 ^ 0x26) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xd039e9dc)) =
       CONCAT44(uVar20,DAT_182671c50) ^ 0x44f0547875e1cba6 |
       CONCAT44(DAT_182671c50,DAT_182671c64) ^ 0x787557a87efb83b;
  uVar2 = DAT_182671d78;
  uVar5 = DAT_182671c90;
  uVar27 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar23 = (*(ulonglong *)(lVar3 + -0xa50) ^ uVar33 | *(ulonglong *)(lVar3 + -0x760) ^ uVar32) ^
           uVar27;
  *(ulonglong *)(lVar3 + -0x888) = uVar23;
  uVar32 = CONCAT44(uVar2,uVar2);
  uVar33 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  bVar19 = (byte)DAT_182671c5c;
  uVar23 = *(ulonglong *)(lVar3 + -0xa70) ^ uVar32 ^ uVar23 ^ uVar27 ^ uVar31;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar23;
  uVar2 = DAT_182671cd0;
  uVar38 = (*(ulonglong *)(lVar3 + -0x4b8) ^ uVar30) + (uVar23 ^ uVar32) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x408) = uVar38;
  uVar36 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = (uVar32 ^ uVar23) << ((bVar19 ^ 8) & 0x3f) ^ uVar36;
  lVar3 = DAT_182671c40;
  uVar23 = (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x2b0)) >> (((byte)uVar5 ^ 0x46) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xf0) = uVar23 ^ CONCAT44(DAT_182671d34,DAT_182671d34);
  lVar4 = DAT_182671c40;
  *(uint *)(lVar3 + -0x58c) = (DAT_182671c50 ^ 0xe27abd49) + 0x8273a2f;
  uVar23 = (uVar36 ^ *puVar43 | uVar23) ^ uVar41;
  *(ulonglong *)(lVar4 + -0xb18) = uVar23;
  uVar37 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar30 = CONCAT44(uVar8,DAT_182671c60);
  uVar27 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar4 + -0x110) = uVar38 ^ uVar37 ^ uVar23 ^ uVar33 ^ uVar41;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xa3981090)) =
       (uVar30 ^ 0xe482b96abc0ee718) >> ((*(byte *)(lVar4 + -0xc18) ^ (byte)uVar16) & 0x3f);
  uVar2 = DAT_182671ce4;
  uVar23 = *(ulonglong *)(lVar4 + -0xc18) ^ uVar35;
  uVar30 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *(ulonglong *)(lVar4 + -0xb20) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x7b2d712b)) ^ uVar31) + uVar23 ^ uVar30;
  uVar31 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x7b2d7cb3)) =
       uVar23 << (((byte)DAT_182671c5c ^ 5) & 0x3f) ^ uVar31;
  lVar3 = DAT_182671c40;
  uVar27 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(DAT_182671c40 + -0x828) =
       (*(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xd039e514)) ^ uVar36) -
       (CONCAT44(uVar8,uVar20) ^ 0xd14c452621ca3181);
  uVar38 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c70 ^ 0xd039ed9c)) =
       (*puVar21 ^ uVar35) >> (((byte)uVar5 ^ 0x4d) & 0x3f) ^ uVar27;
  uVar25 = (ulonglong)DAT_182671c88;
  uVar23 = CONCAT44(DAT_182671e08,DAT_182671e08);
  uVar27 = (uVar31 ^ *(ulonglong *)(lVar3 + -0x7e8) | *puVar28 ^ uVar27) ^ uVar23;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar27;
  uVar20 = DAT_182671c58 | DAT_182671c54;
  DAT_182671c88 = uVar20;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x7b2d7c9b)) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0x88382efa)) ^ uVar26 ^ uVar27 ^ uVar23 ^ uVar30;
  uVar32 = uVar26 ^ *(ulonglong *)(lVar3 + -0x7c0);
  uVar23 = (*puVar24 ^ uVar33) + uVar32;
  uVar31 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar27 = uVar23 ^ uVar31;
  *(ulonglong *)(lVar3 + -0x760) = uVar27;
  uVar2 = DAT_182671d48;
  *(ulonglong *)(lVar3 + -0xa50) = uVar23 | CONCAT44(uVar6,uVar20) ^ 0x1b06a00c19c4720d;
  uVar32 = uVar32 << (((byte)uVar20 ^ 200) & 0x3f);
  uVar23 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar3 + -0x888) = uVar32 ^ CONCAT44(uVar2,uVar2);
  uVar2 = DAT_182671d40;
  uVar26 = (*(ulonglong *)(lVar3 - (uVar38 ^ 0x1b96e107)) ^ uVar26) >> (((byte)uVar6 ^ 0x72) & 0x3f)
  ;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar26 ^ uVar23;
  uVar25 = CONCAT44(uVar2,uVar2);
  uVar26 = (uVar26 | uVar32) ^ uVar25;
  uVar23 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *(ulonglong *)(lVar3 + -0x2b0) = uVar26;
  uVar2 = DAT_182671f70;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x1b96e637)) = uVar23 ^ uVar27 ^ uVar26 ^ uVar25 ^ uVar31;
  uVar23 = *(ulonglong *)(lVar3 + -0xb20);
  uVar25 = *(ulonglong *)(lVar3 + -0x110);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar29) * 4) = uVar22;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x7bbff4c7)) =
       (uVar30 ^ uVar23) + (uVar25 ^ uVar37) ^ CONCAT44(uVar2,uVar2);
  return;
}



############ FUN_ 180f710f0 size=5805 ############

void FUN_180f710f0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  uint uVar3;
  undefined8 *puVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  longlong lVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte bVar53;
  uint uVar54;
  undefined8 *puVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  byte local_140;
  byte local_130;
  byte local_a8;
  
  uVar9 = DAT_182671c90;
  uVar8 = DAT_182671c8c;
  uVar2 = DAT_182671c88;
  uVar7 = DAT_182671c80;
  uVar5 = DAT_182671c68;
  uVar45 = (ulonglong)DAT_182671c88;
  uVar28 = DAT_182671c90 | DAT_182671c88;
  uVar31 = (ulonglong)DAT_182671c8c;
  uVar46 = DAT_182671c80 & DAT_182671c68;
  puVar55 = (undefined8 *)(DAT_182671c38 + -8);
  uVar54 = DAT_182671c74 - DAT_182671c8c;
  uVar11 = DAT_182671f74 + DAT_182671d78;
  uVar50 = DAT_182671cf4 + DAT_182671f50;
  uVar12 = DAT_182671c9c - DAT_182671df0;
  uVar13 = DAT_182671cf8 * DAT_182671da8;
  lVar21 = (longlong)DAT_1826721ec;
  *puVar55 = DAT_182671c40;
  uVar2 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar2 ^ 0x7dffffe7) + lVar21);
  uVar3 = *(uint *)(&DAT_182613220 + lVar21);
  uVar43 = (ulonglong)uVar7;
  DAT_182671c40 = puVar55;
  DAT_182671c48 = uVar28;
  DAT_182671c60 = uVar54;
  DAT_182671c70 = uVar46;
  *(ulonglong *)((longlong)puVar55 - ((ulonglong)DAT_182671c74 ^ 0xddf13a4c)) =
       CONCAT44(uVar9,uVar46) ^ 0x77c44d8ea4741cf3 | CONCAT44(uVar5,uVar7) ^ 0xbddd580899115808;
  puVar55 = DAT_182671c40;
  *(longlong *)((longlong)DAT_182671c40 - ((ulonglong)uVar8 ^ 0x3a4e4582)) = DAT_182671c38 + -0xe18;
  uVar19 = DAT_182671c5c;
  uVar25 = (ulonglong)DAT_182671c84;
  puVar55[-0x62] = DAT_182671c38 + -0xe78;
  uVar14 = DAT_182671cf4 & 0xff;
  uVar14 = ((DAT_182671cf4 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  puVar55[-0x1a] = (ulonglong)uVar14 ^ DAT_182671c38 - 0xed8U;
  puVar55[-0x11b] = DAT_182671c38 + -0xf80;
  puVar55[-4] = DAT_182671c38 + -4000;
  uVar15 = DAT_182671f50 & 0xff;
  uVar15 = ((DAT_182671f50 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  DAT_182671cf4 = uVar14;
  puVar55[-0x140] = (ulonglong)uVar15 ^ DAT_182671c38 - 0x1020U;
  DAT_182671f50 = uVar15;
  *(ulonglong *)((longlong)puVar55 - (uVar25 ^ 0x5eb95938)) =
       0x1b27d0f1fe3418e9 - (CONCAT44(uVar54,uVar28) ^ 0x9257a2a677c5fd62);
  puVar55[-0x188] = DAT_182671c38 + -0x1040;
  uVar25 = (ulonglong)DAT_182671c50;
  *(longlong *)((longlong)puVar55 - ((ulonglong)uVar54 ^ 0xa3a2f8fa)) = DAT_182671c38 + -0x1060;
  puVar55[-0x168] = DAT_182671c38 + -0x10c0;
  DAT_182671c38 = DAT_182671c38 + -0x10e0;
  *(longlong *)((longlong)puVar55 - (uVar25 ^ 0x843fe4e7)) = DAT_182671c38;
  uVar6 = DAT_182671c7c;
  uVar22 = DAT_182671c6c;
  uVar18 = DAT_182671c64;
  uVar16 = uVar50 & 0xff;
  uVar50 = uVar50 * 0x100;
  DAT_182671f4c = ((uVar50 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar33 = (ulonglong)DAT_182671f4c;
  uVar25 = (ulonglong)DAT_182671c7c;
  uVar37 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar16 = DAT_182671cf8 & 0xff;
  puVar55[-8] = *(longlong *)((longlong)puVar55 - ((ulonglong)DAT_182671c6c ^ 0xc512af6a)) +
                ((CONCAT44(DAT_182671c64,uVar5) ^ 0x412d412d5e585eb9) +
                (CONCAT44(uVar19,DAT_182671c54) ^ 0x5e585eb951553df8) * 4) * 8 ^ uVar37;
  DAT_182671cf8 = ((DAT_182671cf8 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar29 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)((longlong)puVar55 - (uVar25 ^ 0x5d4bf3ea)) =
       **(ulonglong **)((uVar45 ^ 0x7dffffff) + (longlong)puVar55) ^ uVar29;
  uVar20 = DAT_182671c58;
  uVar40 = (ulonglong)DAT_182671c58;
  uVar17 = (DAT_182671d84 ^ *(uint *)(puVar55 + -0xd0)) & 0xff;
  puVar55[-0xc2] =
       *(longlong *)(((ulonglong)uVar19 ^ 0x5e585ea9) + (longlong)puVar55) +
       (CONCAT44(uVar54,DAT_182671c58) ^ 0xa3a2f1520d3924c9) * 8;
  uVar10 = DAT_182671c94;
  uVar16 = DAT_182671c4c;
  puVar4 = DAT_182671c40;
  DAT_182671d84 =
       (((DAT_182671d84 ^ *(uint *)(puVar55 + -0xd0)) << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar23 = (ulonglong)DAT_182671d84;
  uVar24 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar56 = (ulonglong)DAT_182671c94;
  lVar21 = DAT_182671c40[2];
  uVar25 = **(ulonglong **)((longlong)puVar55 - ((ulonglong)uVar46 ^ 0x4a1048a0));
  uVar47 = uVar25 ^ uVar24;
  uVar36 = DAT_182671d94 ^ (uint)uVar47;
  puVar55[-0x163] = uVar47;
  uVar17 = DAT_182671c78;
  puVar4[-0xfd] = CONCAT44(uVar10,uVar28) ^ 0xfaf5b7d25ecf7d3f | 0xe2c535d216ca2d1b;
  puVar27 = (ulonglong *)(lVar21 + (CONCAT44(uVar17,uVar18) ^ 0x156d8014412d412f) * 8);
  puVar4[-2] = puVar27;
  uVar18 = uVar36 & 0xff;
  puVar4[-0xfd] =
       *(ulonglong *)((longlong)puVar4 - ((ulonglong)uVar17 ^ 0x156d8774)) >>
       (((byte)uVar22 ^ 0x43) & 0x3f);
  puVar4 = DAT_182671c40;
  DAT_182671d94 = ((uVar36 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  puVar1 = DAT_182671c40 + -0xec;
  uVar52 = CONCAT44(DAT_182671d94,DAT_182671d94);
  uVar47 = *puVar27;
  uVar38 = uVar47 ^ uVar52;
  uVar17 = DAT_182671eb8 ^ (uint)uVar38;
  *puVar1 = uVar38;
  puVar4[-0xfd] = (CONCAT44(uVar16,uVar8) ^ 0xc2e264c3173f303d) >> ((byte)puVar4[-0xbd] & 0x3f);
  puVar55 = (undefined8 *)(lVar21 + (CONCAT44(uVar7,uVar9) ^ 0x4a90cef24826757d) * 8);
  puVar4[-0xca] = puVar55;
  puVar4[-0xfd] = *puVar55;
  uVar22 = DAT_182671d34 ^ *(uint *)((longlong)puVar4 - (uVar43 ^ 0x4a90c91a));
  uVar18 = uVar22 & 0xff;
  DAT_182671d34 = ((uVar22 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar41 = CONCAT44(DAT_182671d34,DAT_182671d34);
  DAT_182671c40[-0x161] =
       (DAT_182671c40[-0xd0] ^ uVar29) - (CONCAT44(uVar10,uVar6) ^ 0x35fd9e0e653c1ee3) ^ uVar41;
  uVar18 = uVar17 & 0xff;
  DAT_182671eb8 = ((uVar17 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar38 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  DAT_182671c40[-0xd0] = uVar25 - (CONCAT44(uVar28,DAT_182671c84) ^ 0xf2a7d2828451a58c) ^ uVar38;
  puVar55 = DAT_182671c40;
  uVar18 = uVar13 & 0xff;
  DAT_182671e04 = ((uVar13 * 0x100 | uVar18) << 8 | uVar18) << 8 | uVar18;
  DAT_182671c40[-0x163] = uVar47 - (CONCAT44(uVar19,DAT_182671c50) ^ 0xac3cd1aa9bfacbaa) ^ uVar41;
  uVar34 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar25 = *(longlong *)((longlong)puVar55 - (uVar45 ^ 0x7dfff807)) - 0x12;
  uVar47 = uVar25 ^ uVar34;
  uVar18 = DAT_182671cb8 ^ (uint)uVar47;
  *puVar1 = uVar47;
  uVar19 = uVar18 & 0xff;
  DAT_182671cb8 = ((uVar18 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar30 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)((longlong)puVar55 - ((ulonglong)uVar16 ^ 0x56ddc547)) =
       uVar25 - (CONCAT44(DAT_182671c74,uVar46) ^ 0xfb8aac582be4d8ba) ^ uVar30;
  uVar25 = puVar55[-0x161] ^ puVar55[-0xfd] ^ uVar41;
  *puVar1 = uVar25;
  puVar55 = DAT_182671c40;
  uVar19 = DAT_182671da8 & 0xff;
  uVar47 = (uVar25 ^ uVar30) << 0x20;
  DAT_182671da8 = ((DAT_182671da8 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  local_140 = (byte)uVar28;
  uVar25 = (uVar25 ^ uVar30) >> ((local_140 ^ 0xdf) & 0x3f);
  uVar48 = CONCAT44(DAT_182671da8,DAT_182671da8);
  DAT_182671c40[-0x105] = uVar47 ^ uVar30;
  puVar55[-0x14a] = uVar25 ^ uVar48;
  uVar19 = DAT_182671c9c & 0xff;
  DAT_182671c9c = ((DAT_182671c9c << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar32 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *(ulonglong *)((longlong)puVar55 - ((ulonglong)DAT_182671c6c ^ 0xc512a8a2)) =
       (uVar25 | uVar47) ^ uVar32;
  uVar19 = uVar12 & 0xff;
  DAT_182671e70 = ((uVar12 * 0x100 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar42 = CONCAT44(DAT_182671e70,DAT_182671e70);
  uVar25 = (puVar55[-0x161] ^ uVar41) - (uVar32 ^ puVar55[-0xfd]);
  puVar55[-0x14c] = uVar25 ^ uVar42;
  puVar55[-0x14a] = (uVar32 ^ puVar55[-0xfd]) - uVar25;
  *(ulonglong *)((longlong)puVar55 - (uVar40 ^ 0xd392ce0)) =
       puVar55[-0x163] ^ puVar55[-0xd0] ^ uVar38 ^ uVar41 ^ uVar37;
  uVar19 = DAT_182671c84;
  uVar26 = (puVar55[-0x105] ^ uVar37) >> (((byte)uVar6 ^ 0x4a) & 0x3f);
  uVar25 = (ulonglong)DAT_182671c64;
  puVar55[-0x161] = uVar26 ^ uVar52;
  puVar55[-0x14a] =
       (ulonglong)puVar55[-0xbd] >>
       ((*(byte *)((longlong)puVar55 - (uVar25 ^ 0x412d464d)) ^ (byte)uVar18) & 0x3f);
  uVar18 = DAT_182671df0 & 0xff;
  DAT_182671df0 = ((DAT_182671df0 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar49 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar47 = (puVar55[-0x105] ^ uVar37) << 0x20;
  puVar55[-0xd0] = uVar47 ^ uVar49;
  puVar55 = DAT_182671c40;
  uVar47 = uVar47 | uVar26;
  uVar18 = DAT_182671f74 & 0xff;
  uVar51 = CONCAT44(uVar14,uVar14);
  DAT_182671f74 = ((DAT_182671f74 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar39 = CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar25 = (ulonglong)DAT_182671c54;
  DAT_182671c40[-0xbd] = uVar47 ^ uVar39;
  puVar27 = (ulonglong *)((longlong)puVar55 - (uVar25 ^ 0x515536e0));
  *puVar1 = (*puVar27 ^ uVar41) - uVar47 ^ uVar30;
  uVar18 = DAT_182671d78 & 0xff;
  DAT_182671d78 = ((DAT_182671d78 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar26 = CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar25 = *(ulonglong *)((longlong)puVar55 - (uVar45 ^ 0x7dfff58f));
  uVar47 = *(ulonglong *)((longlong)puVar55 - ((ulonglong)uVar46 ^ 0x4a104b58));
  *(undefined4 *)(puVar55 + -0xd8) = 0x461b5cd4;
  uVar57 = (ulonglong)DAT_182671c54;
  bVar35 = (byte)DAT_182671c54;
  puVar55[-0x14a] = uVar25 ^ uVar47 ^ uVar26 ^ uVar39 ^ uVar42;
  *(ulonglong *)((longlong)puVar55 - (uVar43 ^ 0x4a90c872)) =
       (puVar55[-0x14a] ^ uVar26) >> ((bVar35 ^ 0xc2) & 0x3f) ^ uVar51;
  uVar25 = (ulonglong)DAT_182671c50;
  *(ulonglong *)((longlong)puVar55 - ((ulonglong)uVar9 ^ 0x48267e76)) =
       (*(ulonglong *)((longlong)puVar55 - (uVar43 ^ 0x4a90c4a2)) ^ uVar26) << 6 ^ uVar34;
  *(ulonglong *)((longlong)puVar55 - (uVar25 ^ 0x843fe57f)) =
       (puVar55[-0xd0] ^ uVar51 | puVar55[-0x161] ^ uVar34) ^ uVar29;
  puVar55[-0xbd] =
       *(ulonglong *)((longlong)puVar55 - ((ulonglong)uVar46 ^ 0x4a1045a8)) ^ uVar29 |
       puVar55[-0xd0] ^ uVar51;
  uVar18 = DAT_182671cdc;
  uVar22 = uVar11 & 0xff;
  DAT_182671cc8 = ((uVar11 * 0x100 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar26 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  puVar55[-0x14a] = (uVar42 ^ puVar55[-0x14c]) - (puVar55[-0x163] ^ uVar29) ^ uVar26;
  *(uint *)((longlong)puVar55 - (uVar31 ^ 0x3a4e478e)) = (uVar10 ^ 0x971be157) + 0x4b3110b5;
  uVar22 = DAT_182671cdc & 0xff;
  DAT_182671cdc = ((DAT_182671cdc << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar43 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  uVar47 = *(ulonglong *)((longlong)puVar55 - (uVar40 ^ 0xd3923a8)) ^ uVar43 ^ uVar32 ^ uVar30 ^
           puVar55[-0xfd];
  puVar55[-0x161] = uVar47;
  puVar4 = DAT_182671c40;
  uVar25 = DAT_182671c40[-0x161];
  bVar53 = (byte)DAT_182671c78;
  *(uint *)((longlong)puVar55 + -0x9dc) =
       *(int *)((longlong)puVar55 - ((ulonglong)uVar54 ^ 0xa3a2f792)) * (uVar16 ^ 0x6f97bc2a);
  uVar22 = DAT_182671cd0 & 0xff;
  DAT_182671cd0 = ((DAT_182671cd0 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar39 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  puVar4[-0xd0] = (uVar25 ^ uVar43) >> ((bVar53 ^ 2) & 0x3f) ^ uVar39;
  uVar22 = DAT_182671d48 & 0xff;
  puVar4[-0xbd] = (uVar47 ^ uVar43) << (((byte)uVar7 ^ 0xd8) & 0x3f) ^ uVar52;
  DAT_182671d48 = ((DAT_182671d48 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar43 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)((longlong)puVar4 - (uVar57 ^ 0x51553798)) =
       (*(ulonglong *)((longlong)puVar4 - ((ulonglong)DAT_182671c64 ^ 0x412d47ad)) ^ uVar39 |
       *(ulonglong *)((longlong)puVar4 - ((ulonglong)DAT_182671c6c ^ 0xc512aaa2)) ^ uVar52) ^ uVar43
  ;
  uVar22 = DAT_182671df8 & 0xff;
  DAT_182671df8 = ((DAT_182671df8 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar57 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)((longlong)puVar4 - ((ulonglong)uVar28 ^ 0x7dfff817)) =
       (*puVar1 ^ uVar30) - (uVar43 ^ puVar4[-0x14c]) ^ uVar57;
  uVar47 = *(ulonglong *)((longlong)puVar4 - ((ulonglong)uVar28 ^ 0x7dfff59f)) ^ puVar4[-0x14a] ^
           uVar26;
  uVar22 = DAT_182671e3c & 0xff;
  puVar4[-0xbd] = uVar47;
  DAT_182671e3c = ((DAT_182671e3c << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar30 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar25 = (uVar47 ^ uVar43) >> (((byte)DAT_182671c74 ^ 0x8a) & 0x3f);
  bVar35 = *(byte *)(puVar4 + -0x161);
  *puVar1 = uVar25 ^ uVar30;
  puVar4[-0x14c] = uVar25 >> ((bVar35 ^ (byte)uVar18) & 0x3f);
  *(ulonglong *)((longlong)puVar4 - ((ulonglong)DAT_182671c7c ^ 0x5d4bff0a)) =
       (uVar47 ^ uVar43) << 0x12 ^ uVar32;
  uVar18 = DAT_182671f80 & 0xff;
  uVar25 = uVar30 ^ *puVar1 | uVar32 ^ puVar4[-0x14c];
  DAT_182671f80 = ((DAT_182671f80 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar32 = CONCAT44(DAT_182671f80,DAT_182671f80);
  puVar4[-0x161] = uVar25 ^ uVar32;
  puVar4[-0xbd] =
       (*(ulonglong *)((longlong)puVar4 - (uVar56 ^ 0x33160447)) ^ uVar26) - uVar25 ^ uVar51;
  uVar18 = DAT_182671ea0 & 0xff;
  DAT_182671ea0 = ((DAT_182671ea0 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar30 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *puVar1 = *(ulonglong *)((longlong)puVar4 - ((ulonglong)uVar9 ^ 0x48267e66)) ^ uVar30 ^ uVar57 ^
            uVar29 ^ puVar4[-0xfd];
  uVar25 = *puVar1;
  puVar4[-0x14c] =
       *(ulonglong *)((longlong)puVar4 - (uVar31 ^ 0x3a4e48d2)) ^ uVar39 | puVar4[-0x105] ^ uVar37;
  uVar18 = DAT_182671ddc & 0xff;
  DAT_182671ddc = ((DAT_182671ddc << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar29 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar47 = (ulonglong)DAT_182671c6c;
  puVar4[-0x14a] = (uVar30 ^ uVar25) >> ((bVar53 ^ 0x18) & 0x3f) ^ uVar29;
  uVar18 = DAT_182671e50 & 0xff;
  uVar25 = (*(ulonglong *)((longlong)puVar4 - (uVar47 ^ 0xc512a82a)) ^ uVar30) << 0x34;
  puVar4[-0x163] = uVar25 ^ uVar24;
  DAT_182671e50 = ((DAT_182671e50 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar22 = DAT_182671c58 ^ DAT_182671c74;
  uVar30 = CONCAT44(DAT_182671e50,DAT_182671e50);
  DAT_182671c7c = uVar22;
  *(ulonglong *)((longlong)puVar4 - (uVar45 ^ 0x7dfff7c7)) =
       (*(ulonglong *)((longlong)puVar4 - (uVar40 ^ 0xd392e98)) ^ uVar29 | uVar25) ^ uVar30;
  uVar18 = DAT_182671e9c & 0xff;
  uVar25 = puVar4[-0x105] ^ puVar4[-0xbd] ^ uVar30 ^ uVar51;
  puVar4[-0x14c] = uVar25 ^ uVar37;
  DAT_182671e9c = ((DAT_182671e9c << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar37 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  puVar4[-0xd0] = (uVar57 ^ puVar4[-0xfd]) - (puVar4[-0x105] ^ uVar30) ^ uVar37;
  puVar44 = (ulonglong *)((longlong)puVar4 - (uVar40 ^ 0xd392ea8));
  *puVar1 = ((ulonglong)((uVar50 & 0xffff) >> 9) | uVar33 << 7) ^ *puVar44 >> 0x19 ^ uVar38;
  puVar55 = DAT_182671c40;
  uVar50 = DAT_182671fac & 0xff;
  DAT_182671fac = ((DAT_182671fac << 8 | uVar50) << 8 | uVar50) << 8 | uVar50;
  uVar47 = CONCAT44(DAT_182671fac,DAT_182671fac);
  DAT_182671c40[-0x163] = uVar25 << 0x27 ^ uVar47;
  *(ulonglong *)((longlong)puVar55 - ((ulonglong)uVar22 ^ 0xd0c81c84)) =
       (puVar55[-0x161] ^ uVar32) - (puVar55[-0x105] ^ uVar30);
  uVar50 = DAT_182671c74;
  uVar18 = DAT_182671f88 & 0xff;
  DAT_182671f88 = ((DAT_182671f88 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar40 = CONCAT44(DAT_182671f88,DAT_182671f88);
  puVar55[-0x14c] =
       (*(ulonglong *)((longlong)puVar55 - ((ulonglong)DAT_182671c74 ^ 0xddf138c4)) ^ uVar38 |
       uVar47 ^ puVar55[-0x163]) ^ uVar40;
  uVar18 = DAT_182671cec & 0xff;
  DAT_182671cec = ((DAT_182671cec << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar25 = (puVar55[-0xbd] ^ uVar51) - (CONCAT44(uVar20,uVar50) ^ 0xda55dc271ec73adc);
  uVar18 = DAT_182671eac & 0xff;
  puVar55[-0x105] = uVar25 ^ CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar50 = DAT_182671c74;
  DAT_182671eac = ((DAT_182671eac << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar33 = CONCAT44(DAT_182671eac,DAT_182671eac);
  local_130 = (byte)uVar20;
  puVar55[-0xfd] =
       uVar25 - (*(ulonglong *)((longlong)puVar55 - ((ulonglong)uVar22 ^ 0xd0c8110c)) ^ uVar40) ^
       uVar33;
  *(ulonglong *)((longlong)DAT_182671c40 - ((ulonglong)uVar22 ^ 0xd0c81c0c)) =
       (uVar40 ^ *puVar44) - (CONCAT44(uVar22,uVar50) ^ 0x453cca1f2b7e1bef) ^ uVar34;
  puVar55 = DAT_182671c40;
  uVar45 = DAT_182671c40[-0x161] ^ uVar37 ^ uVar32 ^ DAT_182671c40[-0xd0];
  uVar20 = DAT_182671d2c & 0xff;
  DAT_182671c40[-0x163] = (DAT_182671c40[-0x14a] ^ uVar29) << (((byte)uVar50 ^ 0xb4) & 0x3f);
  uVar50 = DAT_182671c74 ^ 0x38388129;
  puVar55[-0xbd] = uVar45 ^ uVar26;
  puVar55 = DAT_182671c40;
  DAT_182671d2c = ((DAT_182671d2c << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar25 = uVar45 >> ((local_130 ^ 0xe9) & 0x3f);
  uVar47 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(uint *)((longlong)DAT_182671c40 + -0x784) = uVar50 << (((byte)uVar22 ^ 0x6f) & 0x1f);
  uVar45 = uVar45 << ((local_140 ^ 0xe0) & 0x3f);
  puVar55[-0x105] = uVar25 ^ uVar47;
  puVar55[-0x14c] = uVar45 ^ CONCAT44(uVar15,uVar15);
  uVar50 = DAT_182671c5c;
  uVar40 = (ulonglong)DAT_182671c50;
  uVar47 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)((longlong)puVar55 - (uVar40 ^ 0x843fe437)) = (uVar45 | uVar25) ^ uVar57;
  uVar20 = DAT_182671d3c & 0xff;
  DAT_182671d3c = ((DAT_182671d3c << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar45 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar25 = (ulonglong)DAT_182671c6c;
  uVar26 = (uVar37 ^ puVar55[-0xd0]) - (CONCAT44(uVar19,uVar50) ^ 0xd1e1732584b0a56d);
  puVar55[-0x163] = uVar26 ^ uVar45;
  uVar50 = DAT_182671ca8 & 0xff;
  puVar55[-0x161] =
       uVar26 - (*(ulonglong *)((longlong)puVar55 - (uVar25 ^ 0xc512a51a)) ^ uVar57) ^ uVar43;
  DAT_182671ca8 = ((DAT_182671ca8 << 8 | uVar50) << 8 | uVar50) << 8 | uVar50;
  uVar25 = (CONCAT44(uVar46,uVar22) ^ 0x4b4c28913a388689) + (puVar55[-0x14a] ^ uVar57);
  puVar55[-0xbd] = uVar25 ^ CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar25 = uVar25 ^ uVar33 ^ uVar38 ^ puVar55[-0xfd];
  puVar55[-0xd0] = uVar25;
  *(ulonglong *)((longlong)puVar55 - (uVar47 ^ 0x5e5855a1)) =
       (uVar25 ^ uVar38) >> ((local_140 ^ 0xfa) & 0x3f) ^ uVar48;
  uVar50 = DAT_182671f30 & 0xff;
  DAT_182671f30 = ((DAT_182671f30 << 8 | uVar50) << 8 | uVar50) << 8 | uVar50;
  uVar25 = (puVar55[-0xd0] ^ uVar38) << 0x3b;
  puVar55[-0x14a] = uVar25 ^ CONCAT44(DAT_182671f30,DAT_182671f30);
  uVar25 = puVar55[-0x163] ^ uVar48 | uVar25;
  puVar55[-0x105] = uVar25 ^ uVar49;
  puVar55[-0x14c] = (uVar33 ^ puVar55[-0xfd]) - uVar25 ^ uVar45;
  local_a8 = (byte)uVar5;
  uVar34 = *(ulonglong *)((longlong)puVar55 - (uVar31 ^ 0x3a4e455a)) ^ *puVar1 ^ uVar43 ^ uVar34;
  uVar24 = uVar34 ^ uVar24;
  puVar55[-0xbd] = uVar24;
  puVar55[-0x163] = uVar34 << ((local_a8 ^ 0xa2) & 0x3f) ^ uVar41;
  uVar25 = (uVar24 >> 0x20 ^ uVar23) >> 5;
  puVar55[-0xd0] = uVar25 ^ uVar48;
  puVar55[-0x14a] = (CONCAT44(uVar19,uVar54) ^ 0xc915d32e66000d46) + uVar25;
  *(ulonglong *)((longlong)puVar55 - (uVar40 ^ 0x843fe98f)) =
       (*(ulonglong *)((longlong)puVar55 - ((ulonglong)uVar16 ^ 0x56ddc42f)) ^ uVar48 |
       *puVar27 ^ uVar41) ^ uVar32;
  *puVar1 = (CONCAT44(uVar28,uVar9) ^ 0x6d865d1f1b00adef) >> ((local_130 ^ 0xfc) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar3 ^ uVar9) * 4) = uVar2 ^ uVar28;
  return;
}



############ FUN_ 180fb1510 size=5450 ############

void FUN_180fb1510(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  byte bVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_res18;
  byte local_e0;
  ulonglong uVar32;
  
  uVar11 = DAT_182671c8c;
  uVar10 = DAT_182671c88;
  uVar6 = DAT_182671c5c;
  uVar5 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c88;
  uVar42 = (ulonglong)DAT_182671c8c;
  uVar15 = DAT_182671c88 | DAT_182671c8c;
  uVar47 = (ulonglong)DAT_182671c5c;
  uVar43 = (ulonglong)DAT_182671c54;
  uVar25 = (ulonglong)uVar15;
  uVar22 = DAT_182671c5c | DAT_182671c54;
  uVar16 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar15 ^ 0xff3df9f7) + (longlong)DAT_1826722a8) ^
           DAT_182671c8c;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_1826722a8) ^ DAT_182671c88;
  uVar20 = (ulonglong)uVar22;
  uVar31 = CONCAT44(DAT_182671e6c,DAT_182671e6c) ^ *(ulonglong *)(DAT_182671c40 + -0xa50);
  uVar40 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  DAT_182671c90 = uVar22;
  DAT_182671c94 = uVar15;
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (*(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0xddeff76d)) >> 0x20 ^ (ulonglong)DAT_182671e6c) >>
       5 ^ uVar40;
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(DAT_182671df8,DAT_182671df8) ^ *(ulonglong *)(lVar2 + -0xc90)) >>
       ((byte)uVar31 & 0x3f);
  uVar8 = DAT_182671cc4;
  uVar23 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(ulonglong *)(lVar2 + -0xda8) = uVar31 << (((byte)uVar6 ^ 0x26) & 0x3f) ^ uVar23;
  puVar1 = (ulonglong *)(lVar2 + -0xb18);
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar23 = *(ulonglong *)(lVar2 - (uVar34 ^ 0x430a52f)) ^ uVar23 |
           *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xdceef82d)) ^ uVar40;
  *puVar1 = uVar23 ^ uVar36;
  uVar14 = DAT_182671f90;
  uVar9 = DAT_182671dbc;
  uVar4 = DAT_182671c80;
  uVar7 = DAT_182671c60;
  uVar39 = (ulonglong)DAT_182671c60;
  uVar31 = (ulonglong)DAT_182671dbc;
  uVar30 = DAT_182671c60 & DAT_182671c80;
  uVar32 = (ulonglong)uVar30;
  *(ulonglong *)(lVar2 + -0x960) =
       CONCAT44(uVar11,uVar11) ^ 0x3e5a6d8e891489f6 | CONCAT44(uVar5,uVar15) ^ 0x1bbcc31ebe8771d0;
  uVar8 = DAT_182671f38;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar26 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar27 = CONCAT44(uVar9,uVar9);
  DAT_182671c74 = uVar30;
  *(ulonglong *)(lVar2 + -0xc38) = (uVar40 ^ *(ulonglong *)(lVar2 + -0x888)) - uVar23 ^ uVar26;
  uVar41 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x2ca1988)) =
       *(ulonglong *)(lVar2 - (uVar39 ^ 0xfbcf5c60)) ^ uVar41 ^ uVar27 ^ uVar36 ^
       *(ulonglong *)(lVar2 + -0x5e8);
  lVar2 = DAT_182671c40;
  bVar29 = (byte)uVar7;
  uVar36 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar4 ^ 0x2dab109)) ^ uVar27) >>
           ((bVar29 ^ 0x6f) & 0x3f);
  uVar37 = CONCAT44(DAT_182671e38,DAT_182671e38);
  local_e0 = (byte)uVar30;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar36 ^ CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar8 = DAT_182671f28;
  lVar3 = DAT_182671c40;
  uVar23 = (uVar27 ^ *(ulonglong *)(lVar2 + -0xd88)) << ((local_e0 ^ 0x29) & 0x3f);
  *(ulonglong *)(lVar2 + -0x510) = uVar23 ^ uVar37;
  uVar12 = DAT_182671df0;
  uVar23 = uVar23 | uVar36;
  uVar46 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xa08) = uVar23 ^ uVar46;
  uVar8 = DAT_182671d6c;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xddeff7dc)) =
       (uVar41 ^ *(ulonglong *)(lVar3 + -0x5e8)) - uVar23 ^ uVar36;
  puVar21 = (ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xfbcf5550));
  *puVar21 = (uVar37 ^ *(ulonglong *)(lVar3 + -0x510)) - (uVar46 ^ *(ulonglong *)(lVar3 + -0xa08));
  puVar33 = (ulonglong *)(lVar3 - (uVar34 ^ 0x430a49f));
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0x2dab011)) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0xddeff105)) ^ CONCAT44(uVar8,uVar8) ^ uVar27 ^ uVar26 ^
       *puVar33;
  uVar23 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar3 + -0xf0) = (*(ulonglong *)(lVar3 + -0xc90) >> 0x20 ^ uVar31) >> 8 ^ uVar23;
  uVar8 = DAT_182671f44;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xa50) =
       CONCAT44(DAT_182671f70,DAT_182671f70) ^ CONCAT44(uVar15,uVar6) ^
       *(ulonglong *)(lVar3 + -0xa78) ^ 0x2806af7956564f7d;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar27 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0xddeff1ad)) ^ uVar27) * 0x1000000;
  puVar35 = (ulonglong *)(lVar2 - (uVar42 ^ 0xfb3df909));
  uVar38 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar2 + -0x110) = uVar27 ^ uVar31;
  lVar3 = DAT_182671c40;
  uVar23 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0x2ca1510)) ^ uVar31 | uVar23 ^ *puVar35) ^ uVar38;
  uVar37 = CONCAT44(DAT_182671d44,DAT_182671d44);
  puVar18 = (ulonglong *)(DAT_182671c40 - (uVar47 ^ 0xdceef505));
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar23;
  uVar8 = DAT_182671f54;
  uVar41 = (*puVar18 ^ uVar26) - (*(ulonglong *)(lVar3 - (uVar25 ^ 0xff3df457)) ^ uVar38) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x960) = uVar41;
  uVar31 = (ulonglong)DAT_182671d5c;
  uVar26 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar23 = uVar26 ^ uVar38 ^ uVar36 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0xbd8);
  uVar38 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x888) = uVar23;
  *puVar1 = (uVar23 >> 0x20 ^ uVar31) >> 0x14 ^ uVar38;
  uVar12 = DAT_182671f40;
  bVar44 = (byte)uVar15;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar20 ^ 0xddeff5b5)) ^ uVar26) << ((bVar44 ^ 0xf3) & 0x3f);
  puVar45 = (ulonglong *)(lVar3 - (uVar20 ^ 0xddeff625));
  *(ulonglong *)(lVar3 + -0xd88) = uVar23 ^ CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar8 = DAT_182671d08;
  lVar2 = DAT_182671c40;
  uVar48 = CONCAT44(uVar12,uVar12);
  uVar23 = uVar38 ^ *puVar45 | uVar23;
  *(ulonglong *)(lVar3 + -0x680) = uVar23 ^ uVar48;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x5e8) =
       (*(ulonglong *)(lVar2 - (uVar34 ^ 0x430a35f)) ^ uVar36) - uVar23 ^ uVar26;
  uVar9 = DAT_182671c80;
  *(ulonglong *)(lVar2 + -0x510) = (CONCAT44(uVar6,uVar22) ^ 0xbe2b8d64ef6e24d) + uVar27;
  bVar19 = (byte)uVar9;
  uVar31 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar27 = CONCAT44(DAT_182671d14,DAT_182671d14);
  uVar41 = uVar31 ^ uVar37 ^ uVar46 ^ *(ulonglong *)(lVar2 + -0xa08) ^ uVar41;
  *(ulonglong *)(lVar2 + -0x228) = uVar41;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0xfbcf5b60)) =
       (uVar31 ^ uVar41) >> ((bVar19 ^ 0xb8) & 0x3f) ^ uVar27;
  uVar8 = DAT_182671e40;
  *(undefined1 *)(lVar2 + -0x6b9) = **(undefined1 **)(lVar2 - (uVar20 ^ 0xddeff6ad));
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xff3df387)) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x228)) << ((byte)uVar10 & 0x3f) ^ uVar23;
  uVar8 = DAT_182671cc8;
  *(ulonglong *)(lVar2 + -0xa50) =
       CONCAT44(DAT_182671e48,DAT_182671e48) ^ **(ulonglong **)(lVar2 + -0x10);
  uVar12 = DAT_182671eb0;
  lVar3 = DAT_182671c40;
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xc90) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0xfb3df381)) ^ uVar23 |
       *(ulonglong *)(lVar2 + -0xc18) ^ uVar27) ^ uVar31;
  uVar8 = DAT_182671f20;
  uVar46 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x960)) -
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x2ca1890)) ^ uVar31) ^ uVar46;
  *(longlong *)(lVar3 + -0xc38) = -0x42254bf437cb8f07 << (bVar44 & 0x3f);
  uVar12 = DAT_182671eb4;
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar37 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar31 = *(ulonglong *)(lVar3 - (uVar34 ^ 0x430a417)) ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x5e8) ^
           uVar27 ^ uVar31;
  *(ulonglong *)(lVar3 + -0xda8) = uVar31;
  uVar8 = DAT_182671eec;
  puVar28 = (ulonglong *)(lVar3 - (uVar42 ^ 0xfb3df171));
  local_res18 = (byte)uVar22;
  *puVar28 = (uVar31 ^ uVar27) >> ((local_res18 ^ 0x33) & 0x3f) ^ uVar37;
  uVar23 = CONCAT44(uVar8,uVar8);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar42 ^ 0xfb3df451)) ^ uVar27) << ((bVar19 ^ 0xb3) & 0x3f) ^
            uVar23;
  uVar8 = DAT_182671ee8;
  uVar41 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (*(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xddeff71c)) ^ uVar23 |
       *(ulonglong *)(DAT_182671c40 + -0x888) ^ uVar37) ^ uVar41;
  lVar2 = DAT_182671c40;
  uVar23 = CONCAT44(uVar8,uVar8);
  puVar18 = (ulonglong *)(DAT_182671c40 - (uVar39 ^ 0xfbcf5ca0));
  *puVar18 = (uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) -
             (CONCAT44(uVar7,uVar30) ^ 0x9ca978f2f61b59f9) ^ uVar23;
  uVar8 = DAT_182671e44;
  *(ulonglong *)(lVar2 + -0x510) =
       (CONCAT44(uVar6,uVar5) ^ 0x81d0dddcd5a21287) - (*(ulonglong *)(lVar2 + -0xf0) ^ uVar46);
  uVar15 = DAT_182671e24;
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar37 = (ulonglong)DAT_182671e24;
  uVar38 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x2dabd91)) =
       (*(ulonglong *)(lVar2 - (uVar47 ^ 0xdceef2e5)) ^ uVar23) -
       (*(ulonglong *)(lVar2 + -0xd88) ^ uVar41) ^ uVar27;
  lVar3 = DAT_182671c40;
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0xf0);
  uVar31 = *(ulonglong *)(DAT_182671c40 + -0x680);
  *(int *)(lVar2 + -0x94c) =
       0x26ef4ab1 << ((byte)*(undefined4 *)(lVar2 - (uVar20 ^ 0xddeffab9)) & 0x1f);
  uVar8 = DAT_182671dd0;
  *(ulonglong *)(lVar3 + -0x228) = uVar48 ^ uVar23 ^ uVar31 ^ uVar38 ^ uVar46;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xa08) =
       (*(ulonglong *)(lVar3 + -0xd88) ^ uVar41) - (CONCAT44(uVar30,uVar11) ^ 0x8cfb509e7a0d3a6c) ^
       uVar26;
  uVar31 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar3 + -0xa50) =
       0xa909504bfef68ea8 >> ((*(byte *)(lVar3 + -0x888) ^ (byte)uVar12) & 0x3f);
  uVar12 = DAT_182671e80;
  *(ulonglong *)(lVar3 + -0xc18) =
       ((ulonglong)(uVar15 >> 0x10) | uVar37 << 0x10) ^ *(ulonglong *)(lVar3 + -0x228) >> 0x10 ^
       uVar31;
  uVar8 = DAT_182671ca4;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xff3dfbd7)) ^ uVar38) << 0x30 ^ uVar23;
  uVar34 = *(ulonglong *)(lVar3 - (uVar43 ^ 0xddeff01c)) ^ uVar31 |
           *(ulonglong *)(lVar3 - (uVar34 ^ 0x430a2ff)) ^ uVar23;
  uVar31 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar3 + -0x960) = uVar34 ^ CONCAT44(uVar8,uVar8);
  uVar12 = DAT_182671f9c;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar39 ^ 0xfbcf5788)) ^ uVar46) -
           (CONCAT44(uVar10,uVar11) ^ 0x38e96c03dbb43922);
  *(ulonglong *)(lVar3 + -0xc38) = uVar23 ^ uVar31;
  uVar8 = DAT_182671ec0;
  uVar41 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xc90) = uVar23 - uVar34 ^ uVar41;
  uVar12 = DAT_182671ec8;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar23 = (CONCAT44(uVar4,uVar5) ^ 0xddeb7bfb38cafd3f) + uVar34 ^ uVar31;
  *(ulonglong *)(lVar3 + -0xda8) = uVar23;
  uVar39 = CONCAT44(uVar12,uVar12);
  *puVar45 = *(ulonglong *)(lVar3 + -0x110) ^ uVar39 ^ uVar23 ^ uVar31 ^ uVar27;
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x2ca11e8)) =
       (*puVar1 ^ uVar39) >> ((bVar44 ^ 0xdf) & 0x3f) ^ uVar31;
  uVar8 = DAT_182671f1c;
  uVar23 = (*puVar1 ^ uVar39) << ((bVar29 ^ 0x58) & 0x3f);
  *(ulonglong *)(lVar2 + -0x510) = uVar23 ^ CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar9 = DAT_182671c80;
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar34 = CONCAT44(uVar6,DAT_182671c80);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xff3df227)) =
       (uVar23 | *(ulonglong *)(lVar2 + -0x5e8) ^ uVar31) ^ uVar39;
  uVar12 = DAT_182671dc0;
  uVar27 = *(ulonglong *)(lVar2 + -0x110) ^ uVar27;
  *(ulonglong *)(lVar2 + -0xd88) = uVar34 ^ 0x3948ae1ab6af6157;
  uVar8 = DAT_182671d64;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xa50) = uVar27 << 0xb;
  *(ulonglong *)(lVar2 + -0x680) = uVar27 - (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar39) ^ uVar37;
  uVar4 = DAT_182671c4c;
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x888) =
       *(ulonglong *)(lVar2 + -0xa08) ^ uVar31 ^ uVar41 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0xc90);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0xfb3dfbd1)) =
       (uVar31 ^ *puVar28) >> (((byte)uVar9 ^ 0xa1) & 0x3f) ^ uVar39;
  uVar8 = DAT_182671db8;
  uVar23 = *(ulonglong *)(lVar3 + -0xc90);
  uVar31 = (*(ulonglong *)(lVar2 + -0x888) ^ uVar31) << 0x20;
  *(ulonglong *)(lVar2 + -0xc18) = uVar31 ^ CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar31 = uVar31 | uVar39 ^ *(ulonglong *)(lVar2 + -0x228);
  *(ulonglong *)(lVar2 + -0xa78) = uVar31 ^ uVar27;
  uVar8 = DAT_182671fb4;
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(uVar10,uVar22) ^ 0xcde236b38368b4c2) + (uVar41 ^ *(ulonglong *)(lVar2 + -0xc90));
  uVar42 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x2dab0b9)) = (uVar41 ^ uVar23) - uVar31 ^ uVar42;
  uVar12 = DAT_182671ee4;
  uVar8 = DAT_182671c68;
  uVar31 = CONCAT44(DAT_182671f30,DAT_182671f30);
  uVar27 = *(ulonglong *)(lVar3 - (uVar43 ^ 0xddeffa84)) ^ *(ulonglong *)(lVar3 + -0xa78) ^ uVar31 ^
           uVar27 ^ uVar37;
  uVar26 = (uVar27 ^ uVar31) >> (((byte)DAT_182671c48 ^ 0xd5) & 0x3f);
  *(ulonglong *)(lVar3 + -0x960) = uVar27;
  *(ulonglong *)(lVar3 + -0xda8) = uVar26 ^ uVar41;
  lVar2 = DAT_182671c40;
  bVar24 = (byte)uVar11;
  uVar23 = *(ulonglong *)(DAT_182671c40 + -0x680);
  uVar31 = (uVar27 ^ uVar31) << ((bVar24 ^ 0xff) & 0x3f);
  *puVar1 = uVar31 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671d90;
  uVar26 = uVar26 | uVar31;
  uVar34 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar26 ^ uVar34;
  uVar31 = CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar2 + -0x510) = (uVar37 ^ uVar23) - uVar26 ^ uVar31;
  uVar12 = DAT_182671f50;
  uVar39 = *(ulonglong *)(lVar2 + -0xc38) ^ uVar27 ^ uVar42 ^ uVar39 ^ *puVar18;
  *(ulonglong *)(lVar2 + -0xd88) = uVar39;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x110) = (uVar39 ^ uVar27) >> ((local_e0 ^ 0x16) & 0x3f) ^ uVar37;
  uVar23 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c48 ^ 0x27053bf)) =
       (uVar39 ^ uVar27) << (((byte)uVar8 ^ 0xad) & 0x3f) ^ uVar23;
  uVar12 = DAT_182671cfc;
  uVar26 = CONCAT44(DAT_182671d74,DAT_182671d74);
  uVar23 = *(ulonglong *)(lVar2 + -0x110) ^ uVar37 | *(ulonglong *)(lVar2 + -0xa50) ^ uVar23;
  uVar39 = uVar23 ^ uVar26;
  *(ulonglong *)(lVar2 + -0xa08) = uVar39;
  uVar13 = DAT_182671d04;
  uVar27 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x888) = (*(ulonglong *)(lVar2 + -0xc38) ^ uVar42) - uVar23 ^ uVar27;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar23 = *(ulonglong *)(lVar2 + -0x510) ^ uVar39 ^ uVar37 ^ uVar26 ^ uVar31;
  uVar39 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar2 + -0xc18) = uVar23;
  *puVar21 = (uVar23 ^ uVar37) >> ((bVar29 ^ 0x56) & 0x3f) ^ uVar39;
  uVar12 = DAT_182671e84;
  *(uint *)(lVar2 + -0x6c0) = uVar4 ^ 0x711a2d3d | DAT_182671c80 ^ 0x133f5b6d;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar47 ^ 0xdceef9cd)) =
       (*puVar33 ^ uVar37) << ((bVar44 ^ 0xed) & 0x3f) ^ uVar23;
  uVar12 = DAT_182671ce4;
  uVar43 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar23 = uVar39 ^ *(ulonglong *)(lVar2 + -0x228) | *puVar35 ^ uVar23;
  *(ulonglong *)(lVar2 + -0xc90) = uVar23 ^ uVar43;
  uVar13 = DAT_182671dcc;
  lVar2 = DAT_182671c40;
  puVar18 = (ulonglong *)(DAT_182671c40 + -0x5e8);
  uVar47 = CONCAT44(uVar12,uVar12);
  puVar21 = (ulonglong *)(DAT_182671c40 + -0x888);
  uVar26 = (*(ulonglong *)(DAT_182671c40 + -0x510) ^ uVar31) - uVar23 ^ uVar47;
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar26;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar39 = CONCAT44(DAT_182671d34,DAT_182671d34);
  uVar34 = *puVar18 ^ *puVar21 ^ uVar23 ^ uVar27 ^ uVar34;
  uVar42 = (uVar34 ^ uVar23) >> ((bVar24 ^ 0xf5) & 0x3f);
  uVar41 = uVar42 ^ uVar39;
  bVar19 = (byte)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0x960) = uVar34;
  *(ulonglong *)(lVar2 + -0xda8) = uVar41;
  uVar37 = (uVar34 ^ uVar23) << ((bVar19 ^ 0xb5) & 0x3f);
  uVar23 = *(ulonglong *)(lVar2 + -0x888);
  *puVar1 = uVar37 ^ uVar36;
  uVar13 = DAT_182671f88;
  uVar31 = CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar37 = uVar37 | uVar42;
  uVar34 = uVar37 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x680) = uVar34;
  uVar12 = DAT_182671f18;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xbd8) = (uVar23 ^ uVar27) - uVar37 ^ uVar36;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(uint *)(lVar2 + -0x784) =
       (DAT_182671c80 ^ 0x4dd85eb2) >> ((byte)*(undefined4 *)(lVar2 + -0x61c) & 0x1f);
  uVar12 = DAT_182671d70;
  uVar34 = uVar26 ^ uVar23 ^ uVar31 ^ uVar47 ^ uVar34;
  *(ulonglong *)(lVar2 + -0xd88) = uVar34;
  uVar31 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar26 = (uVar34 ^ uVar23) >> (((byte)DAT_182671c70 ^ 0xde) & 0x3f);
  uVar27 = (uVar34 ^ uVar23) << ((bVar24 ^ 0xde) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = uVar26 ^ CONCAT44(uVar12,uVar12);
  uVar23 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar2 + -0xc38) = CONCAT44(uVar10,uVar30) ^ uVar41 ^ uVar39 ^ 0x7bb5da48bd522dfb;
  *(ulonglong *)(lVar2 + -0xa50) = uVar27 ^ uVar31;
  uVar12 = DAT_182671d2c;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x60b08148)) = (uVar26 | uVar27) ^ uVar40;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xff3df5e7)) =
       (CONCAT44(uVar7,uVar8) ^ 0x47ba18d67385cb5f) <<
       (((byte)uVar14 ^ *(byte *)(lVar2 + -0xa08)) & 0x3f);
  uVar23 = (*(ulonglong *)(lVar2 + -0xa78) ^ uVar47) -
           (CONCAT44(uVar11,DAT_182671c58) ^ 0x876d5d689a636774);
  *(ulonglong *)(lVar2 + -0x228) = uVar23 ^ CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar2 + -0xf0) =
       uVar23 - (*(ulonglong *)(lVar2 - (uVar20 ^ 0xddeff735)) ^ uVar40) ^ CONCAT44(uVar12,uVar12);
  *(undefined1 *)(lVar2 + -0x2e9) = **(undefined1 **)(lVar2 + -0xb90);
  uVar20 = (ulonglong)DAT_182671e28;
  uVar39 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar2 + -0x510) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0xa08)) - (CONCAT44(uVar5,uVar6) ^ 0x83769bb287107c8c) ^
       CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(lVar2 + -0x5e8) =
       uVar39 ^ *(ulonglong *)(lVar2 + -0xbd8) ^ uVar36 ^ uVar43 ^ *(ulonglong *)(lVar2 + -0xc90);
  *(undefined1 *)(lVar2 - (uVar32 ^ 0x2ca12b9)) = **(undefined1 **)(lVar2 + -0x990);
  uVar23 = (ulonglong)DAT_182671c48;
  uVar31 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(ulonglong *)(lVar2 + -0x960) =
       (*(ulonglong *)(lVar2 + -0x5e8) >> 0x20 ^ uVar20) >> 1 ^
       CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *puVar1 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0x2705c07)) ^ uVar39) << 0x1f ^ uVar31;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar16;
  return;
}



############ FUN_ 180f7c690 size=5075 ############

void FUN_180f7c690(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  ulonglong *puVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  
  uVar9 = DAT_182671f28;
  uVar13 = DAT_182671c80;
  uVar10 = DAT_182671c70;
  lVar4 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671c80;
  uVar32 = (ulonglong)DAT_182671c70;
  uVar28 = DAT_182671c80 ^ DAT_182671c70;
  uVar19 = *(uint *)(&DAT_182613218 + DAT_18267220c) ^ DAT_182671c80;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_18267220c) ^ DAT_182671c70;
  uVar25 = (ulonglong)uVar28;
  uVar22 = CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar26 = (CONCAT44(DAT_182671da8,DAT_182671da8) ^ *(ulonglong *)(DAT_182671c40 + -0x2b0) |
           CONCAT44(DAT_182671eb0,DAT_182671eb0) ^ *(ulonglong *)(DAT_182671c40 + -0xa08)) ^ uVar22;
  DAT_182671c60 = uVar28;
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar26;
  uVar8 = DAT_182671d14;
  uVar24 = CONCAT44(uVar9,uVar9);
  uVar23 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar4 + -0x408) =
       uVar23 ^ uVar24 ^ uVar26 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0xa50);
  uVar29 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0xdce24cb5)) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xdce244a5)) ^ uVar24) +
       (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar4 + -0x3d8)) ^ uVar29;
  uVar8 = DAT_182671e3c;
  uVar39 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  puVar33 = (ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xe7fe7a4e));
  *puVar33 = (*(ulonglong *)(lVar4 + -0x408) ^ uVar24) << (((byte)uVar28 ^ 0x97) & 0x3f) ^ uVar39;
  uVar26 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xe7fe7056)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x3b1c35e3)) ^ uVar24) >>
       (((byte)uVar10 ^ 0xed) & 0x3f) ^ uVar26;
  lVar5 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xdce2462d)) =
       (*puVar33 ^ uVar39 | *(ulonglong *)(lVar4 + -0x110) ^ uVar26) ^ uVar30;
  puVar33 = (ulonglong *)(lVar5 + -0x4b8);
  uVar45 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar5 + -0x760) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x3b1c376b)) ^ *(ulonglong *)(lVar5 + -0xc18) ^
       uVar45 ^ uVar30 ^ uVar29;
  uVar21 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  puVar1 = (ulonglong *)(lVar5 + -0xda8);
  uVar30 = uVar21 ^ *puVar1;
  uVar26 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *(ulonglong *)(lVar5 + -0x380) = (uVar23 ^ *(ulonglong *)(lVar5 + -0xa50)) + uVar30 ^ uVar26;
  *puVar33 = *(ulonglong *)(lVar5 + -0x30) ^ uVar22 | uVar23 ^ *(ulonglong *)(lVar5 + -0xa50);
  bVar3 = (byte)uVar13;
  uVar22 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(lVar5 + -0xa70) = uVar30 << ((bVar3 ^ 0x50) & 0x3f) ^ uVar22;
  uVar34 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar28 ^ 0xdce24825)) =
       uVar30 >> ((bVar3 ^ 0x6c) & 0x3f) ^ uVar34;
  uVar30 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar5 + -0x628) =
       (uVar34 ^ *(ulonglong *)(lVar5 + -0x888) | uVar22 ^ *(ulonglong *)(lVar5 + -0xa70)) ^ uVar30;
  uVar35 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  puVar2 = (ulonglong *)(lVar5 + -0x828);
  uVar22 = *(ulonglong *)(lVar5 - ((ulonglong)uVar28 ^ 0xdce2432d)) ^
           *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x3b1c37c3)) ^ uVar35 ^ uVar30 ^ uVar26;
  uVar43 = CONCAT44(DAT_182671d10,DAT_182671d10);
  *(ulonglong *)(lVar5 + -0x7e8) = uVar22;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar13 ^ 0xe7fe796e)) =
       (uVar22 ^ uVar35) + (*(ulonglong *)(lVar5 + -0xc18) ^ uVar29) ^ uVar43;
  uVar6 = DAT_182671c48;
  uVar27 = (ulonglong)DAT_182671c48;
  bVar18 = (byte)DAT_182671c64;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar28 ^ 0xdce24bb5)) =
       (uVar43 ^ *puVar2) - (CONCAT44(uVar13,uVar28) ^ 0xf977b3f4fddec134);
  uVar31 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  *(ulonglong *)(lVar5 + -0x5e8) =
       (*(ulonglong *)(lVar5 + -0x7e8) ^ uVar35) << ((bVar18 ^ 0xb2) & 0x3f) ^ uVar31;
  lVar4 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x3b1c391b)) =
       (*(ulonglong *)(DAT_182671c40 + -0x7e8) ^ uVar35) >> (((byte)uVar10 ^ 0xcb) & 0x3f) ^ uVar30;
  uVar22 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  uVar30 = (uVar30 ^ *(ulonglong *)(lVar4 + -0x8f0) | *(ulonglong *)(lVar4 + -0x5e8) ^ uVar31) ^
           uVar22;
  uVar41 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar4 + -0x510) = uVar30;
  *(ulonglong *)(lVar4 + -0xa08) = uVar41 ^ uVar30 ^ uVar22 ^ uVar43 ^ *puVar2;
  uVar20 = DAT_182671c58;
  uVar35 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xe7fe73f6)) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0xe7fe74ae)) ^ uVar31) >>
       ((*(byte *)(lVar4 + -0xb08) ^ (byte)uVar8) & 0x3f);
  uVar8 = DAT_182671e70;
  uVar12 = DAT_182671c84;
  lVar5 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar22 = (ulonglong)DAT_182671c84;
  uVar37 = (*(ulonglong *)(lVar4 - (uVar35 ^ 0x98a3bf76)) ^ uVar45) +
           (*(ulonglong *)(lVar4 + -0x380) ^ uVar26) ^ uVar40;
  *(ulonglong *)(lVar4 + -0x3d8) = uVar37;
  uVar7 = DAT_182671c4c;
  uVar36 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0xf8bedd8b)) ^ uVar45) << 0x20;
  uVar31 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar5 + -0x408) = uVar36 ^ CONCAT44(uVar8,uVar8);
  lVar4 = DAT_182671c40;
  uVar26 = (*(ulonglong *)(lVar5 + -0x760) ^ uVar45) >> (((byte)uVar7 ^ 0xd5) & 0x3f);
  uVar22 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar26 ^ uVar31;
  uVar7 = DAT_182671c5c;
  uVar30 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar36 = (uVar36 | uVar26) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x680) = uVar36;
  uVar8 = DAT_182671db4;
  *(ulonglong *)(lVar4 + -0xa50) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0x31eb3a0c)) ^ uVar31) -
       (CONCAT44(uVar7,uVar12) ^ 0x9a2d865d4ac687bb);
  uVar14 = DAT_182671c88;
  uVar7 = DAT_182671c7c;
  uVar12 = DAT_182671c78;
  lVar4 = DAT_182671c40;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c7c ^ 0x4b56d2c5)) =
       uVar26 ^ uVar30 ^ uVar40 ^ uVar37 ^ uVar36;
  uVar8 = DAT_182671c54;
  uVar45 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar22 = (ulonglong)DAT_182671c84;
  uVar31 = (CONCAT44(uVar12,uVar14) ^ 0xea532ce0293b6ac) + (*(ulonglong *)(lVar4 + -0x30) ^ uVar26);
  uVar26 = CONCAT44(DAT_182671c54,uVar7);
  *puVar33 = uVar31 ^ uVar45;
  uVar9 = DAT_182671e24;
  uVar26 = (uVar26 ^ 0x22970896724eebcd) + (uVar43 ^ *puVar2);
  *puVar1 = uVar26 ^ uVar43;
  lVar4 = DAT_182671c40;
  uVar36 = CONCAT44(uVar9,uVar9);
  puVar17 = (ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xf8bede53));
  *(uint *)(DAT_182671c40 + -0x9dc) = (uVar20 ^ 0x3e94e182) << (((byte)uVar6 ^ 0xb7) & 0x1f);
  uVar26 = (*puVar17 ^ uVar45) + uVar26;
  *(ulonglong *)(lVar4 + -0xa70) = uVar26 ^ uVar36;
  uVar15 = DAT_182671d9c;
  uVar22 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar4 + -0x888) = CONCAT44(uVar13,uVar10) ^ 0x13e23f1b902196f5 | uVar26;
  uVar7 = DAT_182671c90;
  uVar11 = DAT_182671c74;
  uVar9 = DAT_182671c54;
  uVar26 = CONCAT44(uVar15,uVar15);
  bVar18 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xf5a921cc)) = uVar31 * 0x4000 ^ uVar26;
  uVar37 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar4 + -0xc18) = (*puVar33 ^ uVar45) >> ((bVar18 ^ 0x69) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar4 + -0xb18) =
       (CONCAT44(uVar11,uVar28) ^ 0x9c5f63888ecfa9b6) >>
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)uVar7 ^ 0xefbf959f)) & 0x3f);
  uVar15 = DAT_182671e4c;
  uVar31 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar22 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xa0af928d)) ^ uVar37 |
           *(ulonglong *)(lVar4 + -0x628) ^ uVar26) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x7e8) = uVar22;
  uVar20 = DAT_182671c8c;
  uVar44 = CONCAT44(uVar15,uVar15);
  uVar26 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c68 ^ 0x7146ef0e)) =
       uVar44 ^ uVar22 ^ uVar31 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0xa70);
  uVar7 = DAT_182671c50;
  uVar43 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar42 = (ulonglong)DAT_182671c50;
  uVar26 = (*(ulonglong *)(lVar4 - (uVar26 ^ 0x8670aac7)) ^ uVar41) +
           (CONCAT44(uVar20,uVar9) ^ 0xfa20045ef496e9ed);
  *(ulonglong *)(lVar4 + -0x510) = uVar26 ^ uVar43;
  *(ulonglong *)(lVar4 + -0xb08) = (*(ulonglong *)(lVar4 + -0xc18) ^ uVar37) + 0xff34be167a32c185;
  uVar13 = DAT_182671c94;
  uVar22 = (CONCAT44(uVar7,DAT_182671c5c) ^ 0x930806a69a39eb38) +
           (uVar40 ^ *(ulonglong *)(lVar4 + -0x3d8));
  *(ulonglong *)(lVar4 + -0x5e8) = uVar22 ^ CONCAT44(DAT_182671ce4,DAT_182671ce4);
  *(ulonglong *)(lVar4 + -0x2b0) =
       (*(ulonglong *)(lVar4 + -0xc18) ^ uVar37) - (CONCAT44(uVar8,uVar7) ^ 0xd2770ef60c8ee7c5);
  uVar8 = DAT_182671e20;
  uVar31 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar4 + -0x380) = uVar22 + uVar26 ^ uVar31;
  uVar45 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xdce247cd)) = uVar26 << (((byte)uVar7 ^ 0xc9) & 0x3f) ^ uVar45;
  uVar37 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar22 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xdaebfcb6)) =
       (uVar43 ^ *(ulonglong *)(lVar4 + -0x510)) >> (((byte)uVar6 ^ 0x8e) & 0x3f) ^ uVar37;
  uVar26 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c4c ^ 0xe427a8e5)) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0x247473f2)) ^ uVar45 |
       uVar37 ^ *(ulonglong *)(lVar4 + -0x408)) ^ uVar26;
  uVar37 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  uVar45 = uVar37 ^ uVar26 ^ uVar31 ^ *(ulonglong *)(lVar4 + -0x380) ^
           *(ulonglong *)(lVar4 + -0x110);
  *(ulonglong *)(lVar4 + -0x680) = uVar45;
  uVar22 = (uVar45 ^ uVar37) + (uVar36 ^ *(ulonglong *)(lVar4 + -0xa70)) ^ uVar39;
  *(ulonglong *)(lVar4 + -0x30) = uVar22;
  bVar38 = (byte)DAT_182671c90;
  *puVar2 = uVar31 ^ *(ulonglong *)(lVar4 + -0x380) ^ uVar39 ^ uVar22;
  uVar20 = DAT_182671c88;
  lVar4 = DAT_182671c40;
  uVar22 = *puVar2;
  uVar36 = CONCAT44(DAT_182671e94,DAT_182671e94);
  *puVar1 = (uVar45 ^ uVar37) << ((bVar38 ^ 0xfb) & 0x3f) ^ uVar36;
  uVar27 = CONCAT44(DAT_182671d68,DAT_182671d68);
  uVar26 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar4 + -0x888) = (uVar45 ^ uVar37) >> (((byte)uVar20 ^ 0xf3) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x4b56d64d)) = uVar22 >> 0x16;
  uVar8 = DAT_182671cdc;
  uVar22 = (uVar36 ^ *puVar1 | uVar27 ^ *(ulonglong *)(lVar4 + -0x888)) ^ uVar21;
  *(ulonglong *)(lVar4 + -0xa50) = uVar22;
  uVar36 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0xb18) =
       *(ulonglong *)(lVar4 - (uVar32 ^ 0x3b1c31db)) ^ uVar36 ^ uVar22 ^ uVar21 ^ uVar39;
  uVar20 = DAT_182671c78;
  lVar5 = DAT_182671c40;
  puVar17 = (ulonglong *)(lVar4 - (uVar25 ^ 0xdce2485d));
  uVar37 = CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar27 = (*(ulonglong *)(lVar4 - (uVar42 ^ 0x771c2459)) ^ uVar31) + (uVar44 ^ *puVar17) ^ uVar37;
  uVar26 = CONCAT44(uVar11,DAT_182671c78);
  *(ulonglong *)(lVar4 + -0x628) = uVar27;
  uVar22 = *(ulonglong *)(lVar5 + -0x8f0);
  *(ulonglong *)(lVar4 + -0x7e8) = (uVar26 ^ 0x8472c46ae9d090c0) + 0x50e16790f7f26fc9;
  uVar26 = (uVar44 ^ uVar22) << (((byte)uVar20 ^ 0xac) & 0x3f);
  uVar22 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(lVar5 + -0xa08) = uVar26 ^ CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar8 = DAT_182671ec8;
  uVar20 = DAT_182671dbc;
  uVar43 = (ulonglong)DAT_182671dbc;
  uVar31 = (uVar44 ^ *puVar17) >> ((bVar3 ^ 0x41) & 0x3f);
  *(ulonglong *)(lVar5 + -0xb08) = uVar31 ^ uVar22;
  uVar40 = CONCAT44(uVar8,uVar8);
  uVar22 = (uVar31 | uVar26) ^ uVar40;
  *(ulonglong *)(lVar5 + -0x3d8) = uVar22;
  uVar8 = DAT_182671d70;
  uVar31 = CONCAT44(uVar20,uVar20);
  uVar22 = uVar31 ^ uVar40 ^ uVar37 ^ uVar27 ^ uVar22;
  *(ulonglong *)(lVar5 + -0xc18) = uVar22;
  uVar20 = DAT_182671c64;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c4c ^ 0xe427ab45)) =
       (uVar31 ^ uVar22) + (*(ulonglong *)(lVar5 + -0x30) ^ uVar39) ^ uVar26;
  uVar8 = DAT_182671d7c;
  bVar18 = (byte)DAT_182671c74;
  *(ulonglong *)(lVar5 + -0x5e8) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0x2b0)) << (((byte)uVar20 ^ 0x96) & 0x3f);
  uVar45 = (ulonglong)DAT_182671c68;
  uVar39 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - (uVar45 ^ 0x7146e2ee)) =
       (*(ulonglong *)(lVar5 + -0xc18) ^ uVar31) << ((bVar18 ^ 99) & 0x3f) ^ uVar39;
  uVar8 = DAT_182671e84;
  uVar27 = CONCAT44(DAT_182671e84,DAT_182671e84);
  uVar22 = (*(ulonglong *)(lVar5 + -0xc18) >> 0x20 ^ uVar43) >> 9;
  *(ulonglong *)(lVar5 + -0x760) = uVar22 ^ uVar40;
  uVar20 = DAT_182671c88 ^ 0x890f8e6c;
  *(ulonglong *)(lVar5 + -0x408) = (uVar39 ^ *(ulonglong *)(lVar5 + -0x510) | uVar22) ^ uVar27;
  *(uint *)(lVar5 - (uVar45 ^ 0x7146e17a)) = uVar20 + 0xcc62fec5;
  uVar22 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar5 + -0x110) =
       uVar27 ^ uVar26 ^ uVar21 ^ *(ulonglong *)(lVar5 + -0x2b0) ^ *(ulonglong *)(lVar5 + -0x408);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xf8bed09b)) =
       0x577a462c0f5aaebe >> (((byte)*(ulonglong *)(lVar5 + -0x408) ^ (byte)uVar8) & 0x3f);
  uVar36 = uVar36 ^ *(ulonglong *)(lVar5 + -0xb18);
  uVar43 = (ulonglong)DAT_182671c5c;
  uVar45 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (*(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xd02951b2)) ^ uVar37) + uVar36 ^ uVar45;
  uVar37 = (ulonglong)DAT_182671c94;
  *puVar2 = uVar36 << (((byte)DAT_182671c54 ^ 0x73) & 0x3f) ^ uVar23;
  *(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0xf5a9235c)) =
       uVar36 >> ((bVar38 ^ 0xd7) & 0x3f) ^ uVar24;
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *puVar1 = (*puVar33 ^ uVar24 | uVar23 ^ *puVar2) ^ uVar22;
  uVar24 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar22 = *(ulonglong *)(lVar4 - (uVar25 ^ 0xdce24d05)) ^ uVar24 ^ uVar22 ^ uVar45 ^
           *(ulonglong *)(lVar4 + -0x680);
  *(ulonglong *)(lVar4 + -0x888) = uVar22;
  uVar9 = DAT_182671ec4;
  uVar20 = DAT_182671c88;
  uVar36 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar4 + -0xa50) = CONCAT44(uVar28,uVar7) ^ 0xd659d9bad0442e01 | uVar22 ^ uVar24;
  uVar8 = DAT_182671d3c;
  uVar7 = DAT_182671c7c;
  uVar25 = (ulonglong)DAT_182671c4c;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar31 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar4 + -0x380) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0x3bff394f)) ^ uVar26) + (uVar24 ^ uVar22) ^ uVar23;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x7e8) = (uVar24 ^ uVar22) << 5 ^ uVar26;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xe427a105)) =
       CONCAT44(uVar12,uVar7) ^ uVar39 ^ *(ulonglong *)(lVar4 + -0x510) ^ 0x65207156e34c506d;
  uVar22 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x888)) >> (((byte)uVar28 ^ 0x96) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa08) = uVar22 ^ CONCAT44(DAT_182671df4,DAT_182671df4);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 - (uVar43 ^ 0xd0295c92)) =
       (uVar22 | uVar26 ^ *(ulonglong *)(lVar4 + -0x7e8)) ^ uVar30;
  uVar30 = uVar26 ^ uVar23 ^ *(ulonglong *)(lVar4 + -0xb08) ^ *(ulonglong *)(lVar4 + -0x380) ^
           uVar30;
  *(ulonglong *)(lVar4 + -0x3d8) = uVar30;
  uVar7 = DAT_182671c8c;
  *(ulonglong *)(lVar5 + -0x30) =
       (CONCAT44(uVar6,DAT_182671c8c) ^ 0x47b79ba2f903bdcb) << (((byte)uVar30 ^ (byte)uVar8) & 0x3f)
  ;
  uVar9 = DAT_182671f14;
  uVar24 = (uVar21 ^ *(ulonglong *)(lVar5 + -0x110)) << 0x25;
  uVar22 = (ulonglong)DAT_182671d80;
  uVar30 = (*(ulonglong *)(lVar5 - (uVar31 ^ 0x4b56d3e5)) ^ uVar21) +
           (uVar45 ^ *(ulonglong *)(lVar5 + -0x680)) ^ uVar29;
  *(ulonglong *)(lVar5 + -0x5e8) = uVar30;
  lVar4 = DAT_182671c40;
  *(byte *)(lVar5 + -0x72c) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar32 ^ 0x3b1c329b)) ^ uVar22) ^ (byte)uVar9;
  uVar22 = *(ulonglong *)(lVar4 + -0x110);
  uVar26 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar5 + -0xc18) = uVar24 ^ CONCAT44(DAT_182671d34,DAT_182671d34);
  uVar22 = (uVar21 ^ uVar22) >> ((bVar3 ^ 0x5d) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar22 ^ uVar26;
  lVar4 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar22 = (uVar22 | uVar24) ^ uVar21;
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar22;
  uVar8 = DAT_182671d2c;
  *(uint *)(lVar4 + -0x5d4) = (uVar7 ^ 0x6a62c776) + *(int *)(lVar4 - (uVar35 ^ 0x98a3bf7a));
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xf5a92d94)) = uVar26 ^ uVar21 ^ uVar30 ^ uVar22 ^ uVar29;
  uVar11 = DAT_182671fa8;
  uVar26 = (CONCAT44(uVar6,uVar20) ^ 0x3effd9c171ef875d) + (uVar26 ^ *(ulonglong *)(lVar4 + -0xa70))
  ;
  uVar22 = (CONCAT44(uVar13,uVar10) ^ 0x8c3afc6dca48331d) +
           (uVar23 ^ *(ulonglong *)(lVar4 + -0x380));
  *(ulonglong *)(lVar4 + -0x628) = uVar26 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0xb18) = uVar22 ^ uVar34;
  uVar8 = DAT_182671eb8;
  *puVar2 = (*(ulonglong *)(lVar4 - (uVar25 ^ 0xe427afdd)) ^ CONCAT44(uVar9,uVar9)) + uVar22 ^
            CONCAT44(uVar11,uVar11);
  *puVar33 = uVar26 << (((byte)DAT_182671c74 ^ 0x6d) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  *puVar1 = uVar26 >> (((byte)DAT_182671c6c ^ 0x3b) & 0x3f) ^ uVar27;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar19;
  return;
}



############ FUN_ 180f44bf0 size=4727 ############

void FUN_180f44bf0(void)

{
  int *piVar1;
  undefined8 *puVar2;
  uint uVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  longlong lVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong *puVar51;
  uint uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  uint uVar55;
  byte local_f0;
  byte local_e8;
  ulonglong uVar32;
  
  uVar13 = DAT_182671ec0;
  uVar12 = DAT_182671e98;
  uVar7 = DAT_182671e48;
  uVar45 = DAT_182671c94;
  uVar10 = DAT_182671c88;
  uVar9 = DAT_182671c80;
  uVar6 = DAT_182671c6c;
  uVar5 = DAT_182671c4c;
  lVar26 = DAT_182671c40;
  uVar46 = (ulonglong)DAT_182671c6c;
  uVar30 = (ulonglong)DAT_182671e48;
  uVar53 = (ulonglong)DAT_182671c88;
  uVar52 = DAT_182671cec & DAT_182671e48 ^ 0xd042425d;
  uVar21 = (ulonglong)DAT_182671c4c;
  uVar55 = DAT_182671c7c + DAT_182671c88;
  uVar31 = DAT_182671c80 & DAT_182671c4c;
  uVar32 = (ulonglong)uVar31;
  DAT_182671c74 = DAT_182671c78 << 0x10 | DAT_182671c78 >> 0x10;
  uVar29 = DAT_182671c6c << 0x10 | DAT_182671c6c >> 0x10;
  DAT_182671c68 = ~DAT_182671c94 ^ 0x363f44df;
  uVar40 = DAT_182671e30 * DAT_182671e98;
  uVar3 = DAT_182671ec0 >> 0x10;
  uVar50 = *(uint *)(&DAT_182613218 + DAT_182672160) ^ DAT_182671c68;
  uVar14 = *(uint *)(&DAT_182613220 + DAT_182672160) ^ DAT_182671c94;
  uVar15 = DAT_182671e30 & 0xff;
  DAT_182671e30 = ((DAT_182671e30 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar39 = CONCAT44(DAT_182671da4,DAT_182671da4);
  uVar19 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar17 = (ulonglong)DAT_182671c80;
  uVar15 = DAT_182671c80 >> 0xd;
  uVar22 = (uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) << (((byte)uVar31 ^ 0x83) & 0x3f);
  DAT_182671c50 = uVar55;
  DAT_182671c70 = uVar29;
  DAT_182671c90 = uVar31;
  *(ulonglong *)(DAT_182671c40 + -0xa60) = uVar22 ^ uVar19;
  uVar47 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar26 + -0x5e8) = (uVar46 << 0x13 | (ulonglong)uVar15) ^ 0x7e9bf79e83c11;
  uVar11 = DAT_182671e88;
  uVar15 = uVar40 & 0xff;
  DAT_182671ecc = ((uVar40 * 0x100 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar41 = (ulonglong)DAT_182671ecc;
  uVar42 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  uVar33 = (CONCAT44(DAT_182671fb0,DAT_182671fb0) ^ *(ulonglong *)(DAT_182671c40 + -0x828) | uVar22)
           ^ uVar42;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar33;
  uVar15 = DAT_182671cec;
  lVar26 = DAT_182671c40;
  uVar22 = (ulonglong)uVar45;
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(DAT_182671c40 + -0xa50)) -
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar45 ^ 0xfffef21e)) ^ uVar42) ^ uVar47;
  uVar43 = (ulonglong)uVar55;
  uVar27 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar34 = CONCAT44(uVar7,uVar7);
  uVar33 = uVar42 ^ uVar19 ^ uVar33 ^ uVar27 ^ *(ulonglong *)(lVar26 + -0x2b0);
  *(ulonglong *)(lVar26 + -0x680) = uVar33;
  uVar8 = DAT_182671c7c;
  uVar40 = DAT_182671c78;
  lVar26 = DAT_182671c40;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar49 = (ulonglong)DAT_182671c78;
  uVar25 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar55 ^ 0x4683eb7b)) =
       (uVar19 ^ uVar33) >> (((byte)(uVar6 >> 0x10) ^ 0x91) & 0x3f) ^ uVar34;
  uVar15 = uVar52 & 0xff;
  uVar33 = (*(ulonglong *)(lVar26 - (uVar25 ^ 0x156dd4dc)) ^ uVar19) <<
           (((byte)uVar40 ^ 0x66) & 0x3f);
  *(ulonglong *)(lVar26 + -0x5e8) = uVar33 ^ uVar37;
  uVar7 = DAT_182671c74;
  DAT_182671d24 = ((uVar52 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar35 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar26 + -0x828) = (*(ulonglong *)(lVar26 + -0xb18) ^ uVar34 | uVar33) ^ uVar35;
  *(ulonglong *)(lVar26 + -0xa60) =
       (CONCAT44(uVar7,uVar55) ^ 0xfabcd474f3131606) + 0xea2ca0b48b26124c;
  uVar15 = DAT_182671c68;
  puVar38 = (ulonglong *)(lVar26 - ((ulonglong)uVar29 ^ 0xff570538));
  *(ulonglong *)(lVar26 - (uVar32 ^ 0x9e37e4e7)) =
       (*puVar38 ^ uVar27) - (CONCAT44(DAT_182671c68,uVar45) ^ 0x1045dda29e0a6374) ^ uVar19;
  lVar4 = DAT_182671c40;
  puVar51 = (ulonglong *)(lVar26 - ((ulonglong)uVar7 ^ 0xe414a16));
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0xa50) | uVar34 ^ *puVar51;
  uVar52 = DAT_182671ec0 & 0xff;
  uVar18 = DAT_182671ec0 << 8;
  DAT_182671ec0 = ((uVar18 | uVar52) << 8 | uVar52) << 8 | uVar52;
  puVar44 = (ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0xff570dd8));
  uVar33 = (ulonglong)DAT_182671ec0;
  uVar23 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       (uVar19 ^ *puVar44) - (*(ulonglong *)(DAT_182671c40 + -0x828) ^ uVar35) ^ uVar23;
  uVar16 = uVar3 & 0xff;
  DAT_182671e40 = ((uVar3 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar48 = (ulonglong)DAT_182671e40;
  uVar24 = CONCAT44(DAT_182671e40,DAT_182671e40);
  uVar36 = CONCAT44(uVar31,uVar5);
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       (*(ulonglong *)(DAT_182671c40 + -0x828) ^ uVar35) - (uVar36 ^ 0x551a009353d427cc) ^ uVar24;
  lVar26 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       uVar47 ^ uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0xb08) ^
       *(ulonglong *)(DAT_182671c40 + -0x7e8) ^ uVar27;
  lVar4 = DAT_182671c40;
  local_f0 = (byte)uVar9;
  puVar54 = (ulonglong *)(lVar26 - (uVar32 ^ 0x9e37e5af));
  *puVar54 = (CONCAT44(uVar6,uVar10) ^ 0x3f28f60778329c19) >> ((local_f0 ^ 0xa9) & 0x3f);
  puVar20 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671c68 ^ 0x363e4cee));
  *(ulonglong *)(lVar4 + -0x760) = (*puVar20 >> 0x20 ^ uVar41) >> 1 ^ uVar37;
  *(uint *)(lVar4 - (uVar49 ^ 0x410e092d)) = (uVar7 ^ 0x8152ea94) + (uVar40 ^ 0xa3b7763f);
  lVar26 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x156dd80c)) = (uVar42 ^ *puVar38) << 0x1f ^ uVar34;
  *(ulonglong *)(lVar26 - (uVar43 ^ 0x4683e84b)) =
       (*(ulonglong *)(lVar26 + -0x760) ^ uVar37 | *(ulonglong *)(lVar26 + -0xa50) ^ uVar34) ^
       uVar35;
  *(ulonglong *)(lVar26 - (uVar17 ^ 0xfff7f85f)) =
       (uVar47 ^ *(ulonglong *)(lVar26 + -0xb08)) - (uVar36 ^ 0xbc33fc468b0cabc) ^ uVar34;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar26 + -0xb18) =
       (*(ulonglong *)(lVar26 + -0x7e8) ^ uVar34) - (*(ulonglong *)(lVar26 + -0x828) ^ uVar35) ^
       uVar37;
  uVar27 = (*(ulonglong *)(lVar4 + -0x828) ^ uVar35) +
           (CONCAT44(uVar15,uVar10) ^ 0xdb4fc8afe8aff12b) ^ uVar24;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar27;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xfffeff2e)) =
       uVar47 ^ uVar27 ^ uVar24 ^ uVar23 ^ *(ulonglong *)(lVar4 + -0x5e8);
  puVar28 = (ulonglong *)(lVar4 - (uVar25 ^ 0x156dd53c));
  *puVar28 = ((ulonglong)uVar12 << 0x1b | (ulonglong)(uVar12 >> 5)) ^
             *(ulonglong *)(lVar4 + -0xa50) >> 5 ^ uVar42;
  uVar27 = (uVar47 ^ *puVar44) << 0x3b;
  *(ulonglong *)(lVar4 + -0xb08) = uVar27 ^ uVar37;
  *(ulonglong *)(lVar4 + -0x7e8) = (uVar42 ^ *(ulonglong *)(lVar4 + -0x760) | uVar27) ^ uVar19;
  lVar26 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x156dda74)) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0x9e3feb1f)) ^ uVar23) -
       (*(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0x788f8bf)) ^ uVar19) ^ uVar23;
  uVar27 = *(ulonglong *)(lVar26 + -0xb18) ^ uVar37 ^ *(ulonglong *)(lVar26 + -0xa60);
  *(ulonglong *)(lVar26 + -0x2b0) = uVar27;
  lVar4 = DAT_182671c40;
  puVar38 = (ulonglong *)(lVar26 - (uVar53 ^ 0x31160cb7));
  uVar25 = (*puVar38 >> 0x20 ^ uVar48) >> 5;
  *(int *)(DAT_182671c40 + -0xae4) = *(int *)(DAT_182671c40 + -0x784) + 0x6a715fc6;
  *(ulonglong *)(lVar4 + -0xa50) = uVar25 ^ uVar19;
  uVar27 = (uVar27 ^ uVar24) << (((byte)uVar55 ^ 0x78) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar27 ^ uVar35;
  lVar26 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x760) = (uVar25 | uVar27) ^ uVar23;
  uVar3 = DAT_182671c68;
  *(ulonglong *)(lVar26 + -0x5e8) =
       (*(ulonglong *)(lVar26 + -0xb18) ^ uVar37) -
       (*(ulonglong *)(lVar26 - ((ulonglong)uVar7 ^ 0xe41466e)) ^ uVar23) ^ uVar37;
  *(ulonglong *)(lVar26 + -0xa60) =
       uVar19 ^ *(ulonglong *)(lVar26 + -0x828) ^ uVar23 ^ *(ulonglong *)(lVar26 + -0x680);
  uVar25 = *puVar28 ^ *(ulonglong *)(lVar26 + -0x828);
  *(ulonglong *)(lVar26 + -0x2b0) = uVar25 ^ uVar23;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar26 + -0xa50) =
       (*(ulonglong *)(lVar26 - (uVar32 ^ 0x9e37e5bf)) ^ uVar35) +
       (CONCAT44(uVar6,uVar3) ^ 0x60b42fcbd44da79c);
  uVar27 = (uVar23 ^ *(ulonglong *)(lVar4 + -0x2b0)) >> ((local_f0 ^ 0xa0) & 0x3f);
  local_e8 = (byte)uVar45;
  *(ulonglong *)(lVar4 + -0xb18) = uVar27 ^ uVar34;
  lVar26 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar25 << ((local_e8 ^ 0x57) & 0x3f) ^ uVar47;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0x4683ea03)) =
       (*(ulonglong *)(lVar26 - (uVar53 ^ 0x31160887)) ^ uVar47 | uVar27) ^ uVar42;
  uVar25 = uVar19 ^ *(ulonglong *)(lVar4 + -0x7e8) ^ uVar37 ^ uVar34 ^
           *(ulonglong *)(lVar4 + -0x5e8);
  *(ulonglong *)(lVar4 + -0x760) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x9e37e69f)) ^ uVar23) -
       (uVar42 ^ *(ulonglong *)(lVar4 + -0xa60)) ^ uVar42;
  *(ulonglong *)(lVar4 + -0xb08) = uVar25;
  *(ulonglong *)(lVar4 - (uVar17 ^ 0xfff7f5e7)) = (uVar25 >> 0x20 ^ uVar30) >> 8 ^ uVar35;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (*(ulonglong *)(lVar4 + -0xb08) ^ uVar34) - (CONCAT44(uVar40,uVar6) ^ 0x8b47b4cbabd85f6f);
  *puVar51 = (*(ulonglong *)(lVar4 + -0xb08) ^ uVar34) << (((byte)uVar7 ^ 0x16) & 0x3f) ^ uVar47;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xfffef3fe)) =
       0x4200058405f9cbe3 - (CONCAT44(uVar40,uVar6) ^ 0x384275c016752c7b);
  uVar25 = *(ulonglong *)(lVar4 + -0xa50) ^ uVar35 | uVar47 ^ *puVar54;
  *(ulonglong *)(lVar4 + -0x828) = uVar25 ^ uVar19;
  *(ulonglong *)(lVar4 + -0x7e8) = (uVar37 ^ *(ulonglong *)(lVar4 + -0x5e8)) - uVar25 ^ uVar23;
  uVar27 = CONCAT44(uVar29,uVar5);
  *(ulonglong *)(lVar4 + -0x2b0) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0xff570fa0)) ^ uVar42 ^ uVar19 ^ *puVar28 ^
       uVar24;
  *(ulonglong *)(lVar4 - (uVar17 ^ 0xfff7f4bf)) = uVar27 ^ 0xbfdfdfbf9fb39dd9 | 0x3f968d9e1b128999;
  *(ulonglong *)(lVar4 + -0x680) =
       (uVar24 ^ *(ulonglong *)(lVar4 + -0x2b0)) >> (((byte)uVar3 ^ 0x6a) & 0x3f) ^ uVar34;
  uVar25 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x2b0)) << (((byte)uVar10 ^ 0xb) & 0x3f);
  *puVar54 = uVar25 ^ uVar37;
  uVar3 = DAT_182671c5c;
  uVar25 = *(ulonglong *)(lVar4 - (uVar32 ^ 0x9e37e837)) ^ uVar34 | uVar25;
  *(ulonglong *)(lVar4 + -0xa50) = uVar25 ^ uVar42;
  uVar15 = DAT_182671c60;
  uVar45 = uVar3 * DAT_182671c60;
  uVar21 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar4 + -0x5e8) = (uVar42 ^ *(ulonglong *)(lVar4 + -0x760)) - uVar25 ^ uVar37;
  *(ulonglong *)(lVar4 + -0x828) =
       uVar42 ^ *(ulonglong *)(lVar4 + -0x7e8) ^ *(ulonglong *)(lVar4 + -0xa60);
  lVar26 = DAT_182671c40;
  puVar28 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar3 ^ 0x5e5855b1));
  DAT_182671c58 = uVar45;
  *puVar28 = (*(ulonglong *)(lVar4 + -0x7e8) >> 0x20 ^ uVar33) >> 10;
  uVar25 = (*(ulonglong *)(lVar26 + -0x828) ^ uVar23) >> (((byte)uVar45 ^ 0xaf) & 0x3f);
  *(ulonglong *)(lVar26 + -0x2b0) = uVar25 ^ uVar19;
  lVar4 = DAT_182671c40;
  uVar25 = ((*(ulonglong *)(lVar26 + -0x828) ^ uVar23) << (((byte)uVar3 ^ 0xbe) & 0x3f) | uVar25) ^
           uVar35;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar45 ^ 0x836b348e)) = uVar25;
  *(ulonglong *)(lVar4 + -0x760) = uVar19 ^ uVar25 ^ uVar35 ^ *(ulonglong *)(lVar4 + -0x2b0);
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xa1a7ab26)) =
       (*(ulonglong *)(lVar4 + -0x7e8) ^ uVar23) - (*(ulonglong *)(lVar4 + -0xb18) ^ uVar35) ^
       uVar37;
  lVar26 = DAT_182671c40;
  uVar25 = *(ulonglong *)(DAT_182671c40 + -0xb18) ^ uVar23 ^ uVar35 ^ uVar37 ^
           *(ulonglong *)(DAT_182671c40 + -0x5e8);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar25;
  uVar33 = (uVar33 << 0x12 | (ulonglong)(((uVar18 & 0xffff | uVar52) << 8 | uVar52) >> 6)) ^
           uVar25 >> 0xe;
  *(ulonglong *)(lVar26 + -0x680) = (uVar25 ^ uVar23) << (((byte)uVar3 ^ 0x8b) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar26 + -0x828) = uVar33 ^ uVar23;
  puVar44 = (ulonglong *)(lVar26 - ((ulonglong)uVar45 ^ 0x836b38f6));
  *(uint *)(lVar26 + -0x76c) =
       (uVar45 ^ 0x1f292d88) + *(int *)(lVar26 - ((ulonglong)uVar15 ^ 0xa1a7a1d2));
  *puVar44 = (*(ulonglong *)(lVar26 - ((ulonglong)uVar3 ^ 0x5e585839)) ^ uVar24 | uVar33) ^ uVar19;
  uVar11 = DAT_182671cb4;
  uVar33 = (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) -
           (CONCAT44(uVar3,uVar15) ^ 0xa0fbc767b4a8c34c);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar33 ^ uVar42;
  lVar26 = DAT_182671c40;
  uVar25 = CONCAT44(uVar11,uVar11);
  piVar1 = (int *)(DAT_182671c40 + -0x6c0);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       uVar33 - (uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0x760)) ^ uVar25;
  *(uint *)(lVar26 + -0x784) = *piVar1 - (DAT_182671c7c ^ 0x2df43c4e);
  uVar5 = DAT_182671cd4;
  uVar33 = (ulonglong)DAT_182671cd4;
  *(ulonglong *)(lVar26 + -0xb18) =
       (uVar19 ^ *puVar44) - (CONCAT44(uVar45,uVar15) ^ 0x202e77fab730304d) ^ uVar24;
  uVar49 = uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0xa50) ^ CONCAT44(uVar5,uVar5) ^ uVar37 ^
           *(ulonglong *)(DAT_182671c40 + -0xa60);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar49;
  lVar26 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       ((ulonglong)(uVar5 >> 0x10) | uVar33 << 0x10) ^ uVar49 >> 0x10 ^ uVar47;
  *puVar20 = 0x154ae40000000000;
  *(ulonglong *)(lVar26 - (uVar21 ^ 0xa1a7ab16)) =
       (*(ulonglong *)(lVar26 + -0xb08) ^ CONCAT44(uVar5,uVar5)) << 0x30 ^ uVar23;
  *(ulonglong *)(lVar26 + -0x2b0) =
       (uVar47 ^ *(ulonglong *)(lVar26 + -0x5e8) | *(ulonglong *)(lVar26 + -0xa50) ^ uVar23) ^
       uVar39;
  lVar4 = DAT_182671c40;
  *puVar28 = (*(ulonglong *)(lVar26 - ((ulonglong)uVar3 ^ 0x5e5854d9)) ^ uVar37) -
             (CONCAT44(uVar45,uVar31) ^ 0x4846d1b253dc278c) ^ uVar19;
  *(ulonglong *)(lVar4 - (uVar43 ^ 0x4683e58b)) =
       (uVar19 ^ *(ulonglong *)(lVar26 + -0xb08)) - (uVar39 ^ *(ulonglong *)(lVar26 + -0x2b0)) ^
       uVar34;
  *(ulonglong *)(lVar4 + -0xa50) =
       (uVar39 ^ *(ulonglong *)(lVar4 + -0x2b0)) - (CONCAT44(uVar3,uVar9) ^ 0x58b3cea0c780143e) ^
       uVar19;
  *(ulonglong *)(lVar4 + -0xa60) = 0x487452d83279a0a0 - (uVar19 ^ *(ulonglong *)(lVar4 + -0x760));
  uVar39 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x40) ^ uVar39) =
       *(ulonglong *)(lVar4 - (uVar43 ^ 0x4683e78b)) ^ uVar19 ^ uVar25;
  puVar20 = (ulonglong *)((*(ulonglong *)(lVar4 + -0x40) ^ uVar39) + 8);
  *(ulonglong *)(lVar4 + -0x610) = (ulonglong)puVar20 ^ CONCAT44(DAT_182671d40,DAT_182671d40);
  *puVar20 = uVar19 ^ *(ulonglong *)(lVar4 + -0xb18) ^ uVar24;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xfffef56e)) =
       (*(ulonglong *)(lVar4 + -0x40) ^ uVar39) + (uVar27 ^ 0xff5707889e3feef5) * 8 ^ uVar24;
  *(ulonglong *)(lVar4 + -0xb08) =
       CONCAT44(uVar7,uVar40) ^ CONCAT44(uVar6,uVar10) ^ 0xd431b0525caf6988;
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x10) ^ uVar24) =
       uVar19 ^ uVar34 ^ *(ulonglong *)(lVar4 + -0x5e8);
  puVar2 = (undefined8 *)
           ((*(ulonglong *)(lVar4 + -0x40) ^ uVar39) +
           (CONCAT44(uVar45,uVar8) ^ 0x836b3f96156dd25f) * 8);
  *(ulonglong *)(lVar4 + -0x650) = (ulonglong)puVar2 ^ CONCAT44(DAT_182671e44,DAT_182671e44);
  *puVar2 = *(undefined8 *)(lVar4 + -0xa50);
  *(undefined8 *)(lVar4 + -0xd50) = *(undefined8 *)(((ulonglong)DAT_182671c68 ^ 0x363e4e56) + lVar4)
  ;
  uVar39 = (ulonglong)DAT_182671f50;
  *puVar38 = (CONCAT44(uVar7,uVar3) ^ 0x99ad31c854b2e43e) >>
             ((*(byte *)(lVar4 + -0x828) ^ (byte)uVar13) & 0x3f);
  lVar26 = (CONCAT44(uVar45,uVar40) ^ 0x836b3f96410e0e51) +
           *(longlong *)((uVar17 ^ 0xfff7ffbf) + lVar4);
  *(longlong *)(lVar4 + -0x60) = lVar26;
  *(longlong *)(lVar4 + -0x418) = lVar26;
  *(ulonglong *)(lVar4 + -0x910) = *(ulonglong *)(lVar4 + -0xa00) ^ uVar39;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar50;
  return;
}



############ FUN_ 180f5d0a0 size=6008 ############

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

void FUN_180f5d0a0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  uint uVar17;
  ulonglong *puVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  byte local_120;
  byte local_d0;
  byte local_b0;
  
  uVar6 = DAT_182671c78;
  uVar4 = DAT_182671c74;
  uVar5 = DAT_182671c64;
  uVar3 = DAT_182671c50;
  uVar21 = DAT_182671c48;
  lVar1 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c50;
  uVar46 = (ulonglong)DAT_182671c64;
  uVar34 = (ulonglong)DAT_182671c90;
  uVar38 = (ulonglong)DAT_182671c74;
  DAT_182671c84 = DAT_182671c64 | DAT_182671c90;
  uVar23 = (ulonglong)DAT_182671c78;
  uVar27 = *(uint *)(&DAT_182613218 + DAT_1826721ac) ^ DAT_182671c50;
  uVar33 = (ulonglong)DAT_182671c48;
  uVar41 = DAT_182671c74 + DAT_182671c78;
  uVar13 = DAT_182671c88 - DAT_182671c50;
  uVar37 = (ulonglong)uVar13;
  uVar25 = DAT_182671c8c + DAT_182671c48;
  uVar14 = *(uint *)(&DAT_182613210 + (uVar37 ^ 0xd039ee0c) + (longlong)DAT_1826721ac) ^
           DAT_182671c88;
  uVar32 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar22 = (ulonglong)DAT_182671c8c;
  DAT_182671c60 = uVar41;
  DAT_182671c7c = uVar13;
  DAT_182671c94 = uVar25;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0xd896f5e0)) =
       (CONCAT44(DAT_182671dc8,DAT_182671dc8) ^ *(ulonglong *)(DAT_182671c40 + -0xb20)) +
       (CONCAT44(DAT_182671c48,uVar25) ^ 0xfc22d60013d3f4b8) ^ uVar32;
  uVar26 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar48 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xd896ff60)) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0x408)) + (uVar32 ^ *(ulonglong *)(lVar1 + -0xa70)) ^
       uVar48;
  uVar22 = (uVar26 ^ *(ulonglong *)(lVar1 + -0x408)) << (((byte)uVar5 ^ 0x82) & 0x3f);
  uVar39 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(lVar1 + -0x628) = uVar22 ^ CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar1 + -0x7e8) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0x408)) >> (((byte)uVar4 ^ 0x6b) & 0x3f) ^ uVar39;
  uVar15 = DAT_182671c94;
  *(ulonglong *)(lVar1 + -0x760) =
       (CONCAT44(DAT_182671c94,uVar6) ^ 0x8ea30caeef6b42aa) -
       (CONCAT44(uVar41,uVar21) ^ 0xebdbe3a2897cd17b);
  uVar12 = DAT_182671f04;
  uVar11 = DAT_182671ee0;
  uVar9 = DAT_182671ca4;
  uVar35 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  puVar28 = (ulonglong *)(lVar1 - (uVar46 ^ 0xb816908b));
  *puVar28 = (*(ulonglong *)(lVar1 - (uVar34 ^ 0x50aedda2)) ^ uVar39 | uVar22) ^ uVar35;
  uVar10 = DAT_182671e90;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0xa50) =
       (CONCAT44(uVar3,uVar5) ^ 0x7411870983364cc) - (uVar29 ^ *(ulonglong *)(lVar1 + -0x2b0));
  uVar42 = CONCAT44(uVar10,uVar10);
  uVar31 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  uVar22 = uVar42 ^ uVar35 ^ uVar48 ^ *(ulonglong *)(lVar1 + -0x828) ^ *(ulonglong *)(lVar1 + -0xf0)
  ;
  *(ulonglong *)(lVar1 + -0x110) = uVar22;
  uVar10 = _DAT_182671cf0;
  lVar2 = DAT_182671c40;
  uVar24 = (*(ulonglong *)(lVar1 - (uVar34 ^ 0x50aed142)) ^ CONCAT44(uVar12,uVar12)) +
           (*(ulonglong *)(lVar1 - (uVar37 ^ 0xd039ef0c)) ^ uVar42) ^ uVar31;
  bVar19 = (byte)uVar13;
  *(ulonglong *)(lVar1 + -0x7c0) = uVar24;
  uVar8 = DAT_182671c8c;
  uVar36 = (uVar42 ^ uVar22) << ((bVar19 ^ 0x32) & 0x3f);
  uVar22 = CONCAT44(DAT_182671c8c,DAT_182671c84);
  *(ulonglong *)(lVar1 + -0x888) = uVar36 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x4b8) = (uVar22 ^ 0xc4c61dbf0f708627) + 0xe2aafa557aaafbd2;
  uVar10 = DAT_182671e54;
  uVar32 = CONCAT44(DAT_182671d58,DAT_182671d58);
  local_d0 = (byte)uVar41;
  uVar22 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar1 + -0xb18) =
       (*(ulonglong *)(lVar1 - (uVar30 ^ 0xb7fe36ae)) ^ uVar42) >> ((local_d0 ^ 0x98) & 0x3f) ^
       uVar32;
  uVar43 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0xc18) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0x88382ec2)) ^ uVar32 | uVar36) ^ uVar43;
  uVar7 = DAT_182671c88;
  uVar45 = (ulonglong)DAT_182671f40;
  uVar36 = CONCAT44(DAT_182671f40,DAT_182671f40);
  local_b0 = (byte)uVar9;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x50aed192)) =
       *(ulonglong *)(lVar2 - (uVar30 ^ 0xb7fe3ba6)) ^ uVar24 ^ uVar36 ^ uVar43 ^ uVar31;
  uVar9 = DAT_182671e3c;
  *(ulonglong *)(lVar2 + -0xb20) =
       (CONCAT44(uVar7,uVar4) ^ 0x5959fb024a2368ed) <<
       ((local_b0 ^ *(byte *)(lVar2 + -0x828)) & 0x3f);
  uVar47 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xa70) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x749226c4)) ^ uVar29) +
       (uVar48 ^ *(ulonglong *)(lVar2 + -0xf0)) ^ uVar47;
  uVar10 = DAT_182671f58;
  *(ulonglong *)(lVar2 + -0x408) =
       CONCAT44(uVar13,uVar6) ^ 0x4f329e345e3e9709 | CONCAT44(uVar15,uVar7) ^ 0xcce414216ded03b;
  uVar9 = DAT_182671e1c;
  uVar48 = (uVar29 ^ *(ulonglong *)(lVar2 + -0x2b0)) << (((byte)uVar25 ^ 0xe7) & 0x3f);
  uVar24 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0x760) = uVar48 ^ CONCAT44(uVar10,uVar10);
  uVar4 = DAT_182671c54;
  uVar42 = CONCAT44(uVar9,uVar9);
  uVar22 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar2 + -0x7e8) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0xd896fd20)) ^ uVar29) >> (((byte)uVar5 ^ 0x97) & 0x3f) ^
       uVar42;
  puVar18 = (ulonglong *)(lVar2 - (uVar22 ^ 0xf8bedd03));
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x7b2d7d73)) = (*puVar18 ^ uVar42 | uVar48) ^ uVar43;
  uVar22 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar29 = CONCAT44(DAT_182671d10,DAT_182671d10);
  local_120 = (byte)uVar3;
  uVar43 = *(ulonglong *)(lVar2 - (uVar46 ^ 0xb8169e8b)) ^ *(ulonglong *)(lVar2 + -0xa70) ^ uVar22 ^
           uVar47 ^ uVar43;
  *(ulonglong *)(lVar2 + -0xa50) = uVar43;
  uVar9 = DAT_182671e7c;
  uVar48 = (uVar43 ^ uVar22) << 0x3a;
  uVar42 = (*(ulonglong *)(lVar2 + -0xa50) ^ uVar22) >> ((local_120 ^ 0xb8) & 0x3f);
  uVar22 = (uVar43 ^ uVar22) + (*(ulonglong *)(lVar2 + -0x7c0) ^ uVar31);
  uVar43 = uVar22 ^ uVar29;
  *(ulonglong *)(lVar2 + -0xb08) = uVar43;
  uVar31 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar2 + -0x4b8) = uVar48 ^ CONCAT44(uVar9,uVar9);
  uVar10 = DAT_182671e68;
  *(ulonglong *)(lVar2 + -0x110) = uVar42 ^ uVar31;
  uVar9 = DAT_182671d44;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar42 = (uVar42 | uVar48) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x888) = uVar42;
  *(ulonglong *)(lVar2 + -0xb18) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x749227f4)) ^ CONCAT44(uVar9,uVar9)) + uVar22;
  uVar9 = DAT_182671e14;
  uVar22 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 + -0xc18) = uVar42 ^ uVar43 ^ uVar24 ^ uVar31 ^ uVar29;
  uVar44 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x2abf71c3)) =
       (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar36) + (*(ulonglong *)(lVar2 + -0xa70) ^ uVar47) ^
       uVar44;
  uVar9 = DAT_182671db0;
  uVar36 = (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar36) << (((byte)uVar4 ^ 0x4d) & 0x3f);
  uVar40 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar42 = (*(ulonglong *)(lVar2 + -0xbd8) >> 0x20 ^ uVar45) >> 10;
  *(ulonglong *)(lVar2 + -0xb20) = uVar36 ^ uVar40;
  uVar10 = DAT_182671fa0;
  *(ulonglong *)(lVar2 + -0xf0) = uVar42 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671d98;
  uVar22 = (ulonglong)DAT_182671c88;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar36 = (uVar42 | uVar36) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x408) = uVar36;
  uVar48 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x8838276a)) =
       uVar36 ^ *(ulonglong *)(lVar2 + -0x828) ^ uVar48 ^ uVar24 ^ uVar44;
  uVar42 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x52287d3b)) =
       (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar48) + (*(ulonglong *)(lVar2 + -0xb08) ^ uVar29) ^
       uVar42;
  uVar44 = *(ulonglong *)(lVar2 + -0x828) ^ uVar44;
  uVar48 = *(ulonglong *)(lVar2 + -0x2b0) ^ uVar48;
  bVar16 = (byte)DAT_182671c6c;
  uVar43 = uVar31 ^ *(ulonglong *)(lVar2 + -0xc18);
  *(longlong *)(lVar2 + -0x7e8) = -0xc91c3240357debd << ((byte)uVar44 & 0x3f);
  uVar36 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar45 = uVar48 >> ((bVar16 ^ 0x54) & 0x3f);
  *(ulonglong *)(lVar2 + -0x628) = uVar48 << 0x20 ^ uVar36;
  uVar10 = DAT_182671e74;
  *(ulonglong *)(lVar2 + -0x7c0) = uVar45 ^ CONCAT44(DAT_182671d04,DAT_182671d04);
  uVar9 = DAT_182671d70;
  uVar22 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xa50) =
       (*(ulonglong *)(lVar2 - (uVar34 ^ 0x50aedc62)) ^ uVar36 | uVar45) ^ uVar22;
  uVar10 = DAT_182671e8c;
  uVar48 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x4b8) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0xb6e62946)) ^ uVar48 ^ uVar22 ^
       *(ulonglong *)(lVar2 + -0x760) ^ uVar42;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar44 = uVar44 + uVar43 ^ uVar24;
  uVar29 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(ulonglong *)(lVar2 + -0x110) = uVar44;
  uVar4 = DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0x380) = uVar43 << (((byte)DAT_182671c8c ^ 0xb0) & 0x3f) ^ uVar29;
  uVar43 = uVar43 >> (((byte)uVar21 ^ 0x7b) & 0x3f);
  uVar33 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar2 + -0xb18) = uVar43 ^ CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar25 = DAT_182671c94;
  uVar22 = (*(ulonglong *)(lVar2 - (uVar46 ^ 0xb8169b23)) ^ uVar29 | uVar43) ^ uVar33;
  *(ulonglong *)(lVar2 + -0xa70) = CONCAT44(uVar41,DAT_182671c94) ^ 0x4aa4dbda3293ba21 | uVar45;
  *(ulonglong *)(lVar2 + -0x888) = uVar22;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xd896f448)) =
       uVar33 ^ uVar24 ^ uVar22 ^ uVar44 ^ uVar47;
  uVar9 = DAT_182671da4;
  uVar43 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar2 + -0xb20) =
       (CONCAT44(uVar41,uVar3) ^ 0x8572ebd18e92baed) + (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar47) ^
       uVar43;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar41 ^ 0x2b78477a)) =
       (CONCAT44(uVar15,uVar5) ^ 0x73050a26810ea19b) + (*(ulonglong *)(lVar2 + -0x760) ^ uVar42) ^
       uVar22;
  uVar44 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar2 - (uVar46 ^ 0xb8169cab)) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0xf0)) + (*(ulonglong *)(lVar2 + -0xb20) ^ uVar43) ^ uVar44
  ;
  uVar21 = DAT_182671c4c;
  uVar42 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar22 = (ulonglong)DAT_182671c4c;
  uVar17 = ~DAT_182671c4c;
  uVar33 = (ulonglong)DAT_182671c4c;
  DAT_182671c68 = uVar17;
  *(ulonglong *)(lVar2 + -0xb08) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x74922f54)) ^ uVar43) << ((bVar19 ^ 0x12) & 0x3f) ^ uVar42
  ;
  uVar33 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0xa3981d98)) ^ uVar43) >>
           (((byte)uVar17 ^ 0x75) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar33 ^ uVar36;
  uVar9 = DAT_182671db8;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xa3981db0)) ^ uVar42 | uVar33) ^ uVar26;
  uVar7 = DAT_182671c80;
  uVar3 = DAT_182671c58;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar33 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xa3981090)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xa3981408)) ^ uVar26 ^ uVar36 ^ uVar44 ^
       *(ulonglong *)(lVar2 + -0x408);
  uVar9 = DAT_182671ef8;
  uVar4 = DAT_182671c58;
  uVar21 = DAT_182671c54;
  uVar15 = uVar3 & 7;
  if (uVar15 < 4) {
    if (uVar15 < 2) {
      uVar20 = uVar7;
      if (uVar15 == 0) {
        uVar20 = uVar3;
      }
    }
    else {
      uVar20 = DAT_182671c64;
      if (uVar15 < 3) {
        uVar20 = DAT_182671c84;
      }
    }
  }
  else if (uVar15 < 6) {
    uVar20 = DAT_182671c54;
    if (uVar15 < 5) {
      uVar20 = DAT_182671c88;
    }
  }
  else {
    uVar20 = DAT_182671c7c;
    if (uVar15 < 7) {
      uVar20 = DAT_182671c94;
    }
  }
  uVar43 = CONCAT44(DAT_182671de4,DAT_182671de4);
  DAT_182671c70 = uVar20;
  *(ulonglong *)(lVar2 + -0xa50) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0xd039eaa4)) ^ uVar48) +
       (CONCAT44(DAT_182671c54,uVar5) ^ 0x77ddfca37ad0a15) ^ uVar43;
  uVar26 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x828) =
       (CONCAT44(uVar4,uVar25) ^ 0xff82c7b860afc549) + (uVar24 ^ *(ulonglong *)(lVar2 + -0x110)) ^
       uVar26;
  uVar3 = DAT_182671c84;
  uVar38 = (ulonglong)DAT_182671c84;
  uVar24 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar2 + -0xc18) =
       (CONCAT44(uVar7,DAT_182671c84) ^ 0xf1322b3ff0841391) << (((byte)uVar20 ^ 0x23) & 0x3f);
  bVar16 = (byte)uVar3;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xf8bed96b)) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0x88382df2)) ^ uVar26) +
       (*(ulonglong *)(lVar2 - (uVar46 ^ 0xb81692f3)) ^ uVar43) ^ uVar36;
  uVar24 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0xb18) =
       (*(ulonglong *)(lVar2 + -0xa50) ^ uVar43) << ((bVar16 ^ 0xfb) & 0x3f) ^ uVar29;
  uVar26 = (*(ulonglong *)(lVar2 - (uVar24 ^ 0xd896f5c0)) ^ uVar43) >> ((bVar16 ^ 0xdb) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7c0) = uVar26 ^ uVar31;
  uVar24 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar2 - (uVar46 ^ 0xb81692d3)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x7b2d7043)) ^ uVar29 | uVar26) ^ uVar35;
  uVar9 = DAT_182671e0c;
  *(ulonglong *)(lVar2 + -0x888) =
       *(ulonglong *)(lVar2 - (uVar24 ^ 0x8838221a)) ^ uVar35 ^ *(ulonglong *)(lVar2 + -0xa70) ^
       uVar31;
  uVar10 = DAT_182671e40;
  uVar24 = (ulonglong)DAT_182671c94;
  uVar26 = CONCAT44(uVar9,uVar9);
  uVar29 = uVar35 ^ *(ulonglong *)(lVar2 + -0x380) ^ uVar26 ^ uVar36 ^
           *(ulonglong *)(lVar2 + -0xa70);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar29;
  uVar48 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x74b17ea3)) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0x2abf7de3)) ^ uVar44) + (uVar29 ^ uVar26) ^ uVar48;
  uVar9 = DAT_182671e44;
  uVar31 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(lVar2 + -0xf0) =
       (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar26) << (((byte)uVar20 ^ 0x28) & 0x3f) ^ uVar31;
  lVar1 = DAT_182671c40;
  uVar29 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xb20) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x74b1721b)) ^ uVar26) >> ((bVar19 ^ 0x10) & 0x3f) ^ uVar29
  ;
  *(longlong *)(lVar2 - (uVar33 ^ 0x74b17e2b)) =
       0x1f85458d66c95d66 << ((byte)*(undefined8 *)(lVar2 + -0x888) & 0x3f);
  uVar24 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar2 + -0x2b0) =
       (*(ulonglong *)(lVar2 + -0xb20) ^ uVar29 | uVar31 ^ *(ulonglong *)(lVar2 + -0xf0)) ^ uVar24;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xf8bede53)) =
       -0x3c829df4caae65b1 - (uVar42 ^ *(ulonglong *)(lVar2 + -0xb08));
  uVar26 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar24 = *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x1b96e477)) ^ uVar26 ^ uVar24 ^ uVar48 ^
           *(ulonglong *)(lVar1 + -0x760);
  uVar29 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(lVar1 + -0x110) = uVar24;
  *(ulonglong *)(lVar1 + -0xc18) = uVar24 ^ uVar26 ^ uVar31 ^ *(ulonglong *)(lVar1 + -0xf0);
  *puVar28 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar21 ^ 0x7b2d78db)) ^ uVar36) +
             (*(ulonglong *)(lVar1 + -0x628) ^ uVar36) ^ uVar29;
  uVar3 = DAT_182671c94;
  uVar31 = CONCAT44(DAT_182671e24,DAT_182671e24);
  puVar49 = (ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0x5c67e317));
  *puVar49 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0xd039e834)) ^ uVar36) <<
             (((byte)DAT_182671c8c ^ 0xa9) & 0x3f) ^ uVar31;
  uVar9 = DAT_182671de8;
  *(ulonglong *)(lVar1 + -0xb18) =
       CONCAT44(uVar13,uVar20) ^ 0x1d5dc653751eb67d | CONCAT44(uVar8,uVar3) ^ 0xf8551f34bf69b33d;
  uVar24 = (*(ulonglong *)(lVar1 + -0x628) ^ uVar36) >> (((byte)uVar3 ^ 0xec) & 0x3f);
  uVar33 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(lVar1 + -0x7c0) = uVar24 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671f20;
  uVar24 = (uVar24 | uVar31 ^ *(ulonglong *)(lVar1 + -0xa50)) ^ uVar33;
  *(ulonglong *)(lVar1 + -0xa70) = uVar24;
  uVar21 = DAT_182671c54;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar24 = uVar36 ^ uVar33 ^ uVar29 ^ *(ulonglong *)(lVar1 + -0x828) ^ uVar24;
  *(ulonglong *)(lVar1 + -0x408) = uVar24;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar21 ^ 0x7b2d7083)) =
       (uVar36 ^ uVar24) + (uVar48 ^ *(ulonglong *)(lVar1 + -0x760)) ^ uVar39;
  lVar1 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0xd896f718)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xa39812b0)) ^ uVar36) <<
       (((byte)uVar7 ^ 0xd4) & 0x3f) ^ uVar33;
  uVar24 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *puVar18 = (uVar36 ^ *(ulonglong *)(lVar1 + -0x408)) >> (((byte)uVar21 ^ 0x72) & 0x3f) ^ uVar24;
  uVar36 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x2abf72cb)) =
       (uVar24 ^ *(ulonglong *)(lVar1 + -0x7e8) | uVar33 ^ *(ulonglong *)(lVar1 + -0x888)) ^ uVar36;
  uVar9 = DAT_182671c98;
  *(ulonglong *)(lVar1 + -0xb08) =
       (CONCAT44(DAT_182671c70,DAT_182671c88) ^ 0xc7d5352679d4a2ed) >> ((bVar19 ^ 0x25) & 0x3f);
  uVar21 = DAT_182671c8c ^ 0xfecb31;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xa3981200)) =
       uVar39 ^ *(ulonglong *)(lVar1 + -0xb20) ^ uVar33 ^ uVar36 ^ *(ulonglong *)(lVar1 + -0xbd8);
  *(uint *)(lVar1 - (uVar46 ^ 0xb8169adf)) = uVar21 + 0x9c8d6741;
  uVar9 = DAT_182671f4c;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0x5c67e857)) ^ uVar26) +
       (uVar29 ^ *(ulonglong *)(lVar1 + -0x828)) ^ uVar40;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar22 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x2abf75f3)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c54 ^ 0x7b2d7a4b)) ^ uVar26) <<
       ((bVar16 ^ 0xc3) & 0x3f) ^ uVar29;
  uVar24 = (*(ulonglong *)(lVar1 - (uVar22 ^ 0xcbdab02c)) ^ uVar26) >>
           (((byte)DAT_182671c6c ^ 0x6c) & 0x3f);
  uVar22 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar1 + -0xf0) = uVar24 ^ CONCAT44(DAT_182671ea8,DAT_182671ea8);
  uVar29 = (uVar29 ^ *(ulonglong *)(lVar1 + -0xc18) | uVar24) ^ uVar22;
  uVar36 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(lVar1 + -0x380) = uVar29;
  uVar10 = DAT_182671f50;
  uVar29 = *(ulonglong *)(lVar1 - (uVar37 ^ 0xd039ecac)) ^ uVar36 ^ uVar22 ^ uVar40 ^ uVar29;
  uVar24 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(lVar1 + -0xb18) = uVar29;
  uVar9 = DAT_182671ebc;
  *(ulonglong *)(lVar1 + -0x628) =
       (uVar39 ^ *(ulonglong *)(lVar1 + -0xbd8)) + (uVar36 ^ uVar29) ^ uVar24;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar26 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *puVar49 = (uVar36 ^ uVar29) << ((bVar16 ^ 0xee) & 0x3f) ^ uVar37;
  uVar9 = DAT_182671d4c;
  uVar42 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar1 + -0x7c0) =
       (uVar36 ^ *(ulonglong *)(lVar1 + -0xb18)) >> (((byte)DAT_182671c70 ^ 0x27) & 0x3f) ^ uVar26;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar22 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar41 ^ 0x2b784dda)) ^ uVar37 |
           *(ulonglong *)(lVar1 - (uVar30 ^ 0xb7fe307e)) ^ uVar26) ^ uVar29;
  uVar37 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar1 + -0xa70) = uVar22;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c58 ^ 0x1b96e1a7)) =
       uVar37 ^ uVar22 ^ uVar29 ^ uVar24 ^ *(ulonglong *)(lVar1 + -0x628);
  uVar37 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(ulonglong *)(lVar1 + -0x408) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0x7c0)) >>
       ((*(byte *)(lVar1 - (uVar23 ^ 0xb6e6253e)) ^ (byte)uVar10) & 0x3f);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c88 ^ 0x88382d52)) =
       (*(ulonglong *)(lVar1 + -0x2b0) ^ uVar40) + (*(ulonglong *)(lVar1 + -0x4b8) ^ uVar33) ^
       uVar37;
  *(ulonglong *)(lVar1 - (uVar42 ^ 0xd039e9f4)) =
       *(ulonglong *)(lVar1 - (uVar34 ^ 0x50aed2c2)) ^ uVar37 | 0x66740e53a60e6864;
  uVar33 = *(ulonglong *)(lVar1 + -0x4b8) ^ uVar33;
  uVar22 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar24 = uVar33 >> ((bVar19 ^ 7) & 0x3f);
  *(ulonglong *)(lVar1 + -0xb08) = uVar33 << (((byte)uVar6 ^ 0x33) & 0x3f) ^ uVar22;
  uVar37 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar1 + -0xb20) = uVar24 ^ uVar32;
  *puVar28 = (*(ulonglong *)(lVar1 - (uVar37 ^ 0x74922f7c)) ^ uVar22 | uVar24) ^ uVar31;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar27;
  return;
}



############ FUN_ 180fb69a0 size=5135 ############

void FUN_180fb69a0(void)

{
  longlong *plVar1;
  undefined4 *puVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  ulonglong *puVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  longlong lVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte bVar45;
  byte bVar46;
  byte local_e8;
  
  uVar9 = DAT_182671e98;
  uVar10 = DAT_182671c90;
  uVar8 = DAT_182671c88;
  uVar7 = DAT_182671c68;
  uVar6 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c90;
  uVar42 = (ulonglong)DAT_182671c68;
  uVar36 = (ulonglong)DAT_182671c88;
  uVar34 = DAT_182671c88 ^ DAT_182671c68;
  uVar29 = (DAT_182671c64 << 0x10 | DAT_182671c64 & 0xff00) << 8 | DAT_182671c64 >> 8 & 0xff00 |
           DAT_182671c64 >> 0x18;
  uVar35 = (ulonglong)uVar29;
  uVar24 = (DAT_182671c90 << 0x10 | DAT_182671c90 & 0xff00) << 8 | DAT_182671c90 >> 8 & 0xff00 |
           DAT_182671c90 >> 0x18;
  uVar20 = (ulonglong)uVar24;
  uVar17 = *(uint *)(&DAT_182613210 + (uVar20 ^ 0x6bb8e365) + (longlong)DAT_18267200c) ^
           DAT_182671c90;
  uVar18 = *(uint *)(&DAT_182613220 + DAT_18267200c) ^ DAT_182671c68;
  uVar25 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar30 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar32 = CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar21 = (ulonglong)DAT_182671c64;
  DAT_182671c5c = uVar29;
  DAT_182671c80 = uVar24;
  DAT_182671c94 = uVar34;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       *(ulonglong *)(uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x2e8)) ^ uVar30 ^ uVar25;
  uVar22 = (ulonglong)uVar34;
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar6,uVar8) ^ 0xe8e9e90af670473a) + (CONCAT44(uVar34,uVar29) ^ 0xe3af5a703a6ca32c)
  ;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x85306228)) =
       (uVar25 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) >> ((byte)uVar7 & 0x3f) ^
       CONCAT44(uVar9,uVar9);
  bVar41 = (byte)uVar9;
  *(byte *)(lVar3 - (uVar35 ^ 0x40673bea)) =
       bVar41 ^ (byte)DAT_182671ed0 ^ *(byte *)(lVar3 + -0x228);
  uVar13 = DAT_182671d80;
  pbVar26 = (byte *)((CONCAT44(uVar7,uVar29) ^ 0x94da50004067314b) + *(longlong *)(lVar3 + -0x870));
  bVar16 = *(byte *)(lVar3 + -0xab1) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671ed0;
  *(ulonglong *)(lVar3 + -0x1f8) = (ulonglong)pbVar26 ^ (ulonglong)DAT_182671e88;
  *(uint *)(lVar3 + -0x27c) = (uVar34 ^ 0x85294ec7) + *(int *)(lVar3 + -0x444);
  *pbVar26 = bVar16;
  uVar25 = CONCAT44(DAT_182671db0,DAT_182671db0);
  bVar45 = (byte)(uVar10 >> 0x18);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x6de3be7b)) =
       *(longlong *)(lVar3 + -0x310) + 0x10U ^ uVar25;
  lVar3 = DAT_182671c40;
  uVar43 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar25 = *(ulonglong *)(uVar25 ^ *(ulonglong *)(DAT_182671c40 + -0x610)) ^ uVar43 ^ uVar30;
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar25;
  bVar40 = (byte)uVar13 ^ (byte)DAT_182671e38;
  bVar16 = (byte)DAT_182671e38 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x6de3b97b)) =
       (uVar25 ^ uVar43) >> ((bVar45 ^ 0x65) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  bVar40 = bVar40 ^ *(byte *)(lVar3 + -0x110);
  pbVar26 = (byte *)((CONCAT44(uVar24,uVar34) ^ 0x6bb8e36d11ea3011) + *(longlong *)(lVar3 + -0x870))
  ;
  uVar25 = (ulonglong)DAT_182671dcc;
  *(byte *)(lVar3 + -0xb1) = bVar40;
  *(ulonglong *)(lVar3 + -0x5b8) = (ulonglong)pbVar26 ^ uVar25;
  *pbVar26 = bVar16 ^ bVar40;
  uVar11 = DAT_182671e9c;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x11ea3bd8)) =
       CONCAT44(uVar8,uVar6) ^ CONCAT44(uVar24,uVar7) ^ 0x9bc198da1c6195fb;
  lVar3 = DAT_182671c40;
  plVar1 = (longlong *)(DAT_182671c40 + -0xbd8);
  uVar38 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  lVar31 = (CONCAT44(uVar8,uVar7) ^ 0x8530600094da5000) * 0xc;
  *(ulonglong *)(DAT_182671c40 + -0x610) =
       *(longlong *)(DAT_182671c40 + -0x310) +
       ((CONCAT44(uVar29,uVar34) ^ 0x4067315b11ea3002) + lVar31) * 8 ^ uVar38;
  *(longlong *)(lVar3 - (uVar21 ^ 0x5b316168)) = *plVar1 << ((byte)*plVar1 & 0x3f);
  uVar25 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar3 + -0xbd8) =
       *(ulonglong *)(uVar38 ^ *(ulonglong *)(lVar3 + -0x610)) ^ uVar25 ^ uVar30;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x40673a83)) ^ uVar25) >>
       (((byte)uVar7 ^ 0x10) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x5b316c98)) =
       *(ulonglong *)(uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x2e8)) ^ uVar30;
  puVar23 = (ulonglong *)(lVar3 - (uVar35 ^ 0x40673773));
  uVar21 = (ulonglong)DAT_182671d78;
  *(byte *)(lVar3 + -0x9dd) = (byte)DAT_182671e50 ^ (byte)uVar11 ^ (byte)*puVar23;
  bVar16 = (byte)DAT_182671f14;
  pbVar26 = (byte *)(*(longlong *)(lVar3 - (uVar22 ^ 0x11ea3870)) +
                    (CONCAT44(uVar8,uVar6) ^ 0x853060005b316752));
  *(ulonglong *)(lVar3 + -0x238) = (ulonglong)pbVar26 ^ uVar21;
  uVar9 = DAT_182671d40;
  *pbVar26 = *(byte *)(lVar3 - (uVar35 ^ 0x40673886)) ^ (byte)DAT_182671e50 ^ bVar16;
  uVar12 = DAT_182671efc;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) + 0x10 +
            (CONCAT44(uVar6,uVar7) ^ 0x5b31674094da5000) * 0x60);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar27 ^ CONCAT44(uVar9,uVar9);
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = *puVar27 ^ uVar33 ^ uVar30;
  uVar38 = (ulonglong)DAT_182671d70;
  *(ulonglong *)(lVar3 + -0x628) =
       CONCAT44(DAT_182671d04,DAT_182671d04) ^ *(ulonglong *)(lVar3 + -0x888) |
       CONCAT44(uVar10,uVar10) ^ 0x5d47bce17ca22e88;
  uVar21 = (uVar33 ^ *(ulonglong *)(lVar3 + -0xbd8)) >> ((bVar45 ^ 0x75) & 0x3f) ^
           CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x888) = uVar21;
  *(byte *)(lVar3 + -0xb79) = (byte)uVar11 ^ (byte)uVar21 ^ (byte)DAT_182671f64;
  uVar14 = DAT_182671e5c;
  uVar9 = DAT_182671d88;
  uVar4 = DAT_182671cdc;
  uVar25 = (ulonglong)DAT_182671cdc;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x85306aa0)) = *(longlong *)(lVar3 + -0x870) + 0x13U ^ uVar38;
  *(byte *)(*(ulonglong *)(lVar3 + -0xaa0) ^ uVar38) =
       bVar16 ^ *(byte *)(lVar3 + -0xb79) ^ (byte)DAT_182671f64;
  uVar12 = DAT_182671d74;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) + 0x10 +
            (CONCAT44(uVar7,uVar24) ^ 0x94da50006bb8e36d) * 0x60);
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)puVar27 ^ CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(lVar3 + -0x628) = CONCAT44(uVar4,uVar4) ^ *puVar27 ^ uVar30;
  uVar21 = (ulonglong)DAT_182671ee0;
  uVar25 = *(ulonglong *)(lVar3 - (uVar42 ^ 0x94da5628)) >> 0x20 ^ CONCAT44(uVar9,uVar9) ^ uVar25;
  *(ulonglong *)(lVar3 + -0x888) = uVar25;
  bVar46 = (byte)uVar14;
  bVar40 = (byte)uVar9 ^ (byte)uVar25 ^ bVar46;
  *(byte *)(lVar3 + -0xc01) = bVar40;
  pbVar26 = (byte *)((CONCAT44(uVar10,uVar6) ^ 0x6de3b86b5b316754) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0x4e8) = (ulonglong)pbVar26 ^ uVar21;
  *pbVar26 = bVar40 ^ bVar16 ^ bVar46;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar34,uVar29) ^ 0x11ea300040673159) + lVar31) * 8);
  uVar25 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar27 ^ CONCAT44(uVar12,uVar12);
  uVar15 = DAT_182671e8c;
  uVar5 = DAT_182671c60;
  uVar4 = DAT_182671c50;
  uVar44 = (ulonglong)DAT_182671c50;
  uVar21 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0x628) = *puVar27 ^ uVar30 ^ uVar25;
  uVar9 = DAT_182671ce8;
  uVar19 = uVar5 - uVar4;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar39 = (ulonglong)DAT_182671f68;
  DAT_182671c70 = uVar19;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (*(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x5b316168)) ^ uVar25) >>
       (((byte)uVar5 ^ 0xc2) & 0x3f) ^ uVar38;
  lVar3 = DAT_182671c40;
  pbVar26 = (byte *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x2d0bb662));
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) >>
       (((byte)uVar9 ^ *(byte *)(DAT_182671c40 + -0xd88)) & 0x3f);
  bVar16 = *pbVar26 ^ (byte)uVar15 ^ bVar41;
  *(byte *)(lVar3 + -0x8c1) = bVar16;
  *(ulonglong *)(lVar3 + -0x9e8) =
       (CONCAT44(uVar19,uVar4) ^ 0xd1da57aa5b316755) + *(longlong *)(lVar3 + -0x870) ^ uVar39;
  lVar3 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x2d0bb702)) ^ uVar39) =
       (byte)DAT_182671f14 ^ bVar41 ^ bVar16;
  *(uint *)(lVar3 + -0x634) = (uVar4 ^ 0xdfbbac01) * 0x52c20949;
  uVar11 = DAT_182671d28;
  lVar3 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  pbVar26 = (byte *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0x2e8) =
       *(longlong *)(DAT_182671c40 + -0x310) +
       ((CONCAT44(uVar4,uVar5) ^ 0x5b3167402d0bbee8) +
       (CONCAT44(uVar4,uVar19) ^ 0x5b316740d1da57aa) * 0xc) * 8 ^ uVar25;
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 + -0x888) ^ uVar38) << ((*pbVar26 ^ bVar41) & 0x3f);
  lVar31 = DAT_182671c40;
  puVar28 = (ulonglong *)(lVar3 - (uVar21 ^ 0x2d0bbc02));
  uVar25 = *(ulonglong *)(uVar25 ^ *puVar28) ^ uVar30;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar25 ^ CONCAT44(DAT_182671ccc,DAT_182671ccc);
  bVar40 = (byte)uVar19;
  bVar16 = (byte)uVar11 ^ (byte)DAT_182671df8;
  *(ulonglong *)(lVar31 + -0x628) = uVar25 >> ((bVar40 ^ 0x9a) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  bVar16 = bVar16 ^ *(byte *)(lVar31 + -0x628);
  *(byte *)(lVar31 + -0x899) = bVar16;
  pbVar26 = (byte *)((CONCAT44(uVar4,uVar5) ^ 0x5b3167402d0bbefc) + *(longlong *)(lVar31 + -0x870));
  bVar16 = bVar16 ^ (byte)DAT_182671f14 ^ (byte)DAT_182671df8;
  *(ulonglong *)(lVar31 + -0x698) = (ulonglong)pbVar26 ^ (ulonglong)DAT_182671d50;
  *pbVar26 = bVar16;
  *(ulonglong *)(lVar31 - (uVar37 ^ 0x6de3ba43)) =
       (*(ulonglong *)(lVar31 - (uVar42 ^ 0x94da5110)) ^ CONCAT44(uVar13,uVar13)) <<
       ((*(byte *)(lVar31 + -0x888) ^ (byte)uVar15) & 0x3f);
  uVar13 = DAT_182671e54;
  uVar25 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *(ulonglong *)(lVar31 + -0x610) = *(longlong *)(lVar31 + -0x310) + 0x10U ^ uVar25;
  uVar9 = DAT_182671d14;
  *(ulonglong *)(lVar31 + -0xd88) =
       uVar43 ^ *(ulonglong *)(lVar31 + -0xda8) | *(ulonglong *)(lVar31 + -0x888) ^ uVar38;
  lVar3 = DAT_182671c40;
  uVar25 = *(ulonglong *)(*(ulonglong *)(lVar31 - (uVar44 ^ 0x5b316150)) ^ uVar25) ^ uVar30;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar25 ^ CONCAT44(uVar9,uVar9);
  uVar25 = uVar25 >> ((bVar40 ^ 0x92) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x110) = uVar25;
  uVar38 = (ulonglong)DAT_182671dd0;
  *(byte *)(lVar3 + -0x1e1) = (byte)uVar13 ^ (byte)uVar25 ^ (byte)uVar12;
  lVar31 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x2d0bbaaa)) =
       *(longlong *)(lVar3 - (uVar35 ^ 0x4067392b)) + (CONCAT44(uVar4,uVar19) ^ 0x5b316740d1da57bd)
       ^ uVar38;
  bVar16 = (byte)DAT_182671f14 ^ *(byte *)(lVar31 + -0x1e1);
  *(uint *)(lVar31 + -0x784) =
       *(uint *)(lVar31 - (uVar22 ^ 0x11ea3c70)) >> ((byte)*(undefined4 *)(lVar31 + -0x27c) & 0x1f);
  *(byte *)(*(ulonglong *)(lVar31 + -0x440) ^ uVar38) = bVar16 ^ (byte)uVar12;
  *(ulonglong *)(lVar31 - (uVar35 ^ 0x406733b3)) =
       *(longlong *)(lVar31 - (uVar21 ^ 0x2d0bbdfa)) + 0x18 +
       (CONCAT44(uVar19,uVar6) ^ 0xd1da57aa5b316740) * 0x60 ^ uVar32;
  uVar35 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar31 - (uVar44 ^ 0x5b316568)) =
       *(ulonglong *)(uVar32 ^ *(ulonglong *)(lVar31 + -0x2e8)) ^ uVar30 ^ uVar35;
  *(int *)(lVar31 + -0x9dc) = *(int *)(lVar31 + -0x27c) + -0x1b9a9161;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (*(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar35) >> (((byte)uVar10 ^ 0x6b) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  lVar31 = DAT_182671c40;
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0x110);
  uVar25 = (ulonglong)DAT_182671d10;
  bVar16 = *(byte *)(lVar3 - (uVar36 ^ 0x85306888)) ^ bVar46 ^ (byte)DAT_182671ef8;
  *(byte *)(DAT_182671c40 + -0xa11) = bVar16;
  pbVar26 = (byte *)((CONCAT44(uVar5,uVar19) ^ 0x2d0bbeead1da57b2) + *(longlong *)(lVar31 + -0x870))
  ;
  *(ulonglong *)(lVar31 + -0xc98) = (ulonglong)pbVar26 ^ uVar25;
  *(ulonglong *)(lVar31 + -0xd88) =
       (CONCAT44(uVar13,uVar13) ^ uVar21) + (CONCAT44(uVar24,uVar10) ^ 0xaddb830ef34b2ad0);
  *pbVar26 = (byte)DAT_182671f14 ^ (byte)DAT_182671ef8 ^ bVar16;
  uVar12 = DAT_182671e94;
  lVar3 = DAT_182671c40;
  bVar41 = (byte)(uVar6 >> 0x18);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (CONCAT44(uVar8,uVar29) ^ 0x4ab30b79921cc531) >> ((bVar41 ^ 0x72) & 0x3f);
  uVar9 = DAT_182671d08;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar34,uVar34) ^ 0x11ea300011ea3003) +
            (CONCAT44(uVar5,uVar4) ^ 0x2d0bbeea5b316740) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar27 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671d9c;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x888) = *puVar27 ^ uVar30 ^ uVar21;
  lVar31 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar43 ^ *(ulonglong *)(lVar3 + -0xda8)) >> ((bVar45 ^ 0x61) & 0x3f);
  local_e8 = (byte)uVar6;
  bVar16 = (byte)uVar12 ^ (byte)DAT_182671f88;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (uVar21 ^ *(ulonglong *)(lVar31 + -0x888)) >> ((bVar40 ^ 0xa2) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar19 ^ 0xd1da5c72)) =
       (CONCAT44(uVar34,uVar7) ^ 0x86e4fa0315b03633) << ((local_e8 ^ 0x4a) & 0x3f);
  lVar3 = DAT_182671c40;
  puVar2 = (undefined4 *)(DAT_182671c40 + -0x76c);
  *(byte *)(DAT_182671c40 + -0x2ba) = bVar16 ^ *(byte *)(DAT_182671c40 + -0xd88);
  *(uint *)(lVar3 + -0x5d4) = 0xce1651e2 >> ((byte)*puVar2 & 0x1f);
  uVar9 = DAT_182671ed4;
  uVar21 = (ulonglong)DAT_182671dec;
  *(ulonglong *)(lVar3 + -0x520) = *(longlong *)(lVar3 - (uVar36 ^ 0x85306870)) + 0x19U ^ uVar21;
  lVar31 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0x11ea3da8)) =
       *(ulonglong *)(lVar3 + -0x228) ^ uVar35 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8);
  *(byte *)(uVar21 ^ *(ulonglong *)(lVar31 + -0x520)) =
       (byte)DAT_182671f14 ^ *(byte *)(lVar31 + -0x2ba) ^ (byte)DAT_182671f88;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar31 + -0x310) + 0x18 +
            (CONCAT44(uVar6,uVar29) ^ 0x5b3167404067315b) * 0x60);
  *(ulonglong *)(lVar31 + -0x2e8) = (ulonglong)puVar27 ^ CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar31 + -0x110) =
       (CONCAT44(uVar4,uVar4) ^ 0xfe2e25df6da3510a) -
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar31 + -0x628));
  uVar25 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar31 - (uVar37 ^ 0x6de3b0e3)) = *puVar27 ^ uVar30 ^ uVar25;
  bVar40 = (byte)uVar9 ^ (byte)DAT_182671eb8;
  uVar21 = (*(ulonglong *)(lVar31 - (uVar20 ^ 0x6bb8ebe5)) ^ uVar25) >>
           (((byte)uVar10 ^ 0x7b) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar31 + -0xd88) = uVar21;
  uVar6 = DAT_182671d58;
  bVar40 = bVar40 ^ (byte)uVar21;
  uVar35 = (ulonglong)DAT_182671d58;
  uVar21 = (ulonglong)DAT_182671dc4;
  *(byte *)(lVar31 + -0x5e9) = bVar40;
  pbVar26 = (byte *)(*(longlong *)(lVar31 - (uVar44 ^ 0x5b316f30)) +
                    (CONCAT44(uVar34,uVar4) ^ 0x11ea30005b31675a));
  bVar16 = (byte)DAT_182671f14 ^ (byte)DAT_182671eb8;
  *(ulonglong *)(lVar31 + -0x308) = (ulonglong)pbVar26 ^ uVar21;
  *(ulonglong *)(lVar31 + -0x228) =
       (CONCAT44(uVar8,uVar19) ^ 0xd922c99c4907c182) - (uVar25 ^ *(ulonglong *)(lVar31 + -0x888));
  *pbVar26 = bVar16 ^ bVar40;
  uVar21 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar31 - (uVar22 ^ 0x11ea3610)) =
       *(longlong *)(lVar31 + -0x310) +
       ((CONCAT44(uVar4,DAT_182671c48) ^ 0x5b3167406fe9bfcb) +
       (CONCAT44(uVar5,DAT_182671c4c) ^ 0x2d0bbeea5b316740) * 0xc) * 8 ^ uVar21;
  uVar11 = DAT_182671fa0;
  uVar9 = DAT_182671c8c;
  uVar21 = *(ulonglong *)(uVar21 ^ *(ulonglong *)(lVar31 + -0x610)) ^ uVar30 ^ CONCAT44(uVar6,uVar6)
  ;
  *(ulonglong *)(lVar31 + -0xbd8) = uVar21;
  bVar16 = (byte)uVar11 ^ (byte)DAT_182671f54;
  uVar21 = ((ulonglong)(uVar6 >> 0x18) | uVar35 << 8) ^ uVar21 >> 0x18 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar31 + -0xda8) = uVar21;
  uVar25 = (ulonglong)DAT_182671eac;
  *(byte *)(lVar31 - ((ulonglong)uVar19 ^ 0xd1da50b0)) = bVar16 ^ (byte)uVar21;
  uVar12 = DAT_182671e54;
  uVar11 = DAT_182671dfc;
  uVar4 = DAT_182671c84;
  uVar22 = (ulonglong)DAT_182671c84;
  pbVar26 = (byte *)((CONCAT44(uVar9,uVar7) ^ 0x103c09db94da501b) + *(longlong *)(lVar31 + -0x870));
  bVar16 = *(byte *)(lVar31 + -0x71a) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671f54;
  *(ulonglong *)(lVar31 + -0x7e0) = (ulonglong)pbVar26 ^ uVar25;
  uVar21 = CONCAT44(DAT_182671c54,uVar34);
  *pbVar26 = bVar16;
  uVar25 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *puVar28 = *(longlong *)(lVar31 + -0x310) +
             ((uVar21 ^ 0x4067315b11ea3003) + (CONCAT44(uVar7,uVar19) ^ 0x94da5000d1da57aa) * 0xc) *
             8 ^ uVar25;
  uVar21 = CONCAT44(DAT_182671c74,uVar8);
  uVar35 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(lVar31 + -0x628) =
       *(ulonglong *)(uVar25 ^ *(ulonglong *)(lVar31 + -0x2e8)) ^ uVar30 ^ uVar35;
  *(ulonglong *)(lVar31 - (uVar22 ^ 0x462ad8c9)) =
       (uVar21 ^ 0x95b9080ade9ae06c) >> ((bVar41 ^ 0x76) & 0x3f);
  uVar21 = (*puVar23 ^ uVar35) >> ((local_e8 ^ 0x60) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar31 + -0xd88) = uVar21;
  *(ulonglong *)(lVar31 + -0x228) =
       CONCAT44(uVar4,uVar4) ^ 0xd9c3ea80bbb92f95 |
       CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar31 + -0xbd8);
  *(byte *)(lVar31 + -0x53a) = (byte)uVar11 ^ (byte)uVar21 ^ (byte)uVar12;
  *(ulonglong *)(lVar31 + -0x860) =
       *(longlong *)(lVar31 - (uVar20 ^ 0x6bb8eb1d)) + 0x1cU ^ (ulonglong)DAT_182671ef4;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar17;
  return;
}



############ FUN_ 180fc2d60 size=2963 ############

void FUN_180fc2d60(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte *pbVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte local_res8;
  
  uVar10 = DAT_182671c90;
  uVar8 = DAT_182671c88;
  uVar7 = DAT_182671c7c;
  uVar6 = DAT_182671c78;
  uVar5 = DAT_182671c54;
  uVar4 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671c54;
  uVar21 = (ulonglong)DAT_182671c90;
  uVar17 = (ulonglong)DAT_182671c7c;
  uVar14 = DAT_182671c54 & 3;
  if (uVar14 < 2) {
    uVar25 = DAT_182671c6c;
    if (uVar14 == 0) {
      uVar25 = DAT_182671c54;
    }
  }
  else {
    uVar25 = DAT_182671c7c;
    if (uVar14 < 3) {
      uVar25 = DAT_182671c90;
    }
  }
  uVar14 = DAT_182671c78 + DAT_182671c48;
  uVar27 = (ulonglong)uVar14;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826722dc);
  uVar15 = *(uint *)(&DAT_182613218 + DAT_1826722dc) ^ DAT_182671c78;
  bVar18 = (byte)DAT_182671c48;
  DAT_182671c60 = uVar25;
  DAT_182671c8c = uVar14;
  *(byte *)(*(ulonglong *)(DAT_182671c40 + -0x600) ^ (ulonglong)DAT_182671d40) = bVar18 ^ 0xfd;
  pbVar23 = (byte *)(*(ulonglong *)(lVar2 + -0x988) ^ (ulonglong)DAT_182671d74);
  *(byte **)(lVar2 + -0xb58) = pbVar23 + (CONCAT44(uVar8,DAT_182671c6c) ^ 0x82dfdb807fbfdb3e);
  uVar9 = DAT_182671de0;
  uVar24 = (ulonglong)DAT_182671de0;
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(lVar2 - (uVar17 ^ 0x3913a08)) | CONCAT44(uVar25,uVar5) ^ 0x24392da67bcc8e5c;
  *pbVar23 = *(byte *)(lVar2 + -0x6e9) ^ (byte)DAT_182671e8c;
  uVar19 = (ulonglong)DAT_182671e2c;
  *(undefined1 *)(lVar2 - (uVar21 ^ 0xdc8c8260)) = 0xe4;
  pbVar23 = *(byte **)(lVar2 + -0x930);
  *(ulonglong *)(lVar2 + -0x740) = uVar24 ^ *(ulonglong *)(lVar2 + -0xb58);
  *(ulonglong *)(lVar2 + -0x330) = *(ulonglong *)(lVar2 + -0xb58);
  *(byte **)(lVar2 + -0xdb0) = pbVar23;
  *(ulonglong *)(lVar2 + -0x6d0) = uVar19 ^ (ulonglong)pbVar23;
  *(ulonglong *)(lVar2 + -0xa60) = CONCAT44(uVar14,uVar25) ^ 0x1ca73e572fb89e80;
  *(byte **)(lVar2 + -0x4d8) = pbVar23 + 1;
  *(byte *)(lVar2 + -0x3d9) = *pbVar23 ^ (byte)DAT_182671ed4 ^ (byte)DAT_182671d18;
  uVar16 = DAT_182671c88;
  uVar19 = (ulonglong)DAT_182671c88;
  *(byte *)(lVar2 + -0x27d) = (byte)DAT_182671c7c ^ 0xe2;
  uVar20 = (ulonglong)DAT_182671f14;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x82dfdb88)) ^ (ulonglong)DAT_182671d54) = 0x59;
  *(ulonglong *)(lVar2 + -0xcd0) =
       (CONCAT44(uVar25,uVar16) ^ 0x4000130882dfdb81) +
       ((ulonglong)uVar9 ^ *(ulonglong *)(lVar2 + -0x740));
  local_res8 = (byte)uVar25;
  uVar26 = (ulonglong)DAT_182671fa4;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x61d4dd9d)) ^ uVar24) =
       *(byte *)(lVar2 - ((ulonglong)uVar4 ^ 0x64f4d8c7)) ^ (byte)DAT_182671ed4;
  uVar19 = *(ulonglong *)(lVar2 + -0x4d8);
  *(byte *)(lVar2 + -0x3d9) = local_res8 ^ 0xbf;
  *(undefined8 *)(lVar2 + -0x150) = *(undefined8 *)(lVar2 + -0xcd0);
  *(ulonglong *)(lVar2 + -0x490) = uVar19;
  uVar16 = DAT_182671c88;
  *(ulonglong *)(lVar2 + -0xba0) = *(ulonglong *)(lVar2 - (uVar21 ^ 0xdc8c85d9)) ^ uVar26;
  bVar13 = (byte)DAT_182671d2c;
  *(ulonglong *)(lVar2 + -0x548) = uVar20 ^ uVar19;
  *(ulonglong *)(lVar2 + -0xda0) = (CONCAT44(uVar6,uVar16) ^ 0xfcdfffbf82dfdb81) + uVar19;
  *(byte *)(lVar2 + -0x263) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar22 ^ 0x40001640)) ^ uVar20) ^ bVar13 ^
       (byte)DAT_182671d18;
  *(undefined1 *)(lVar2 - (uVar27 ^ 0x61d4d6df)) = 0x20;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x400015f0)) ^ (ulonglong)DAT_182671ea8) =
       local_res8 ^ 0xce;
  *(ulonglong *)(lVar2 + -0x5b8) = (*(ulonglong *)(lVar2 - (uVar17 ^ 0x3913ab0)) ^ uVar26) + 1;
  *(byte *)(*(ulonglong *)(lVar2 + -0xba0) ^ uVar26) = bVar13 ^ *(byte *)(lVar2 + -0x263);
  uVar19 = (ulonglong)DAT_182671e6c;
  *(ulonglong *)(lVar2 + -0x238) = *(ulonglong *)(lVar2 + -0x5b8);
  *(byte *)(lVar2 + -0x263) = bVar18 ^ 0x52;
  uVar16 = DAT_182671d6c;
  uVar20 = (ulonglong)DAT_182671d6c;
  *(ulonglong *)(lVar2 + -0x468) = *(ulonglong *)(lVar2 + -0xda0);
  bVar13 = (byte)DAT_182671ec0;
  *(ulonglong *)(lVar2 + -0x9d8) = uVar20 ^ *(ulonglong *)(lVar2 + -0x5b8);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x61d4d2e5)) = uVar19 ^ *(ulonglong *)(lVar2 + -0xda0);
  *(longlong *)(lVar2 - ((ulonglong)DAT_182671c6c ^ 0x7fbfdf87)) =
       *(longlong *)(lVar2 + -0xc90) << ((byte)*(undefined8 *)(lVar2 + -0xa60) & 0x3f);
  pbVar23 = (byte *)(*(ulonglong *)(lVar2 + -0x838) ^ uVar19);
  *(byte **)(lVar2 + -0x728) = pbVar23 + 1;
  *(byte *)(lVar2 + -0x21) = *pbVar23 ^ bVar13 ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0x2ba) = local_res8 ^ 0xab;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfcdffebf)) ^ (ulonglong)DAT_182671ed8) = 0xd1;
  uVar9 = DAT_182671c90;
  *(ulonglong *)(lVar2 + -0x7b0) =
       (CONCAT44(uVar7,uVar14) ^ 0x391311061d4dadc) +
       ((ulonglong)uVar16 ^ *(ulonglong *)(lVar2 + -0x9d8));
  uVar16 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  *(uint *)(lVar2 + -0x5d4) = uVar9 ^ 0x1630200a | 0x61c9d2a5;
  *(uint *)(lVar2 - ((ulonglong)uVar25 ^ 0x400016dc)) = uVar16 ^ 0x3a25273b;
  *(byte *)(uVar20 ^ *(ulonglong *)(lVar2 + -0x9d8)) = bVar13 ^ *(byte *)(lVar2 + -0x21);
  uVar19 = *(ulonglong *)(lVar2 + -0x728);
  uVar24 = (ulonglong)DAT_182671dfc;
  *(byte *)(lVar2 + -0x21) = (byte)uVar14 ^ 0x6b;
  *(ulonglong *)(lVar2 + -0x460) = *(ulonglong *)(lVar2 + -0x7b0);
  *(ulonglong *)(lVar2 + -0x308) = uVar19;
  uVar26 = (ulonglong)DAT_182671cc4;
  *(ulonglong *)(lVar3 + -0x7e0) = uVar26 ^ *(ulonglong *)(lVar2 + -0x7b0);
  *(ulonglong *)(lVar3 + -0x408) =
       *(ulonglong *)(lVar3 + -0x4b8) >> ((byte)*(undefined8 *)(lVar3 + -0xa50) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x64f4d77e)) = uVar24 ^ uVar19;
  pbVar23 = (byte *)(*(ulonglong *)(lVar3 + -0xc60) ^ uVar24);
  *(byte **)(lVar3 + -0x6d8) = pbVar23 + (CONCAT44(uVar8,uVar7) ^ 0x82dfdb8003913111);
  uVar16 = DAT_182671c6c;
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       CONCAT44(DAT_182671c6c,uVar5) ^ 0x2943248001080066 | 0x90084b74b8b79f11;
  lVar2 = DAT_182671c40;
  *(byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c6c ^ 0x7fbfdabc)) =
       (byte)DAT_182671f84 ^ *pbVar23 ^ (byte)DAT_182671d18;
  bVar13 = (byte)DAT_182671c88;
  *(undefined1 *)(lVar2 + -0x9e9) = 0x7c;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfcdffa77)) ^ (ulonglong)DAT_182671fa0) =
       bVar13 ^ 0x2c;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x5c8) = CONCAT44(uVar5,uVar25) ^ 0xfebdc20f23a4cb19;
  *(ulonglong *)(lVar2 + -0xc60) = CONCAT44(uVar8,uVar25) ^ 0xf71e8be4689754dd;
  *(ulonglong *)(lVar2 + -0x340) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x400014e8)) ^ uVar26) +
       (CONCAT44(uVar25,uVar7) ^ 0x4000130803913111);
  *(byte *)(*(ulonglong *)(lVar2 + -0x7e0) ^ uVar26) =
       *(byte *)(lVar2 + -0x183) ^ (byte)DAT_182671f84;
  *(byte *)(lVar2 + -0x183) = (byte)DAT_182671c90 ^ 0x4a;
  *(undefined8 *)(lVar2 + -0x1f0) = *(undefined8 *)(lVar2 + -0x340);
  *(ulonglong *)(lVar2 + -0x340) = CONCAT44(uVar16,uVar25) ^ 0xbc589d287b2a7546;
  *(undefined8 *)(lVar2 - (uVar21 ^ 0xdc8c8e79)) = *(undefined8 *)(lVar2 - (uVar17 ^ 0x39137c8));
  uVar24 = (ulonglong)DAT_182671d84;
  *(ulonglong *)(lVar2 + -0x6d8) = CONCAT44(uVar8,uVar4) ^ 0x44a75ed2d92320fe;
  *(ulonglong *)(lVar2 + -0x810) = *(ulonglong *)(lVar2 - (uVar27 ^ 0x61d4db2d)) ^ uVar24;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfcdffe4f)) =
       CONCAT44(uVar14,uVar25) ^ 0xb932eaa93c408d61;
  *(longlong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfcdffd0f)) = *(longlong *)(lVar2 + -0x8f0) << 0x23;
  bVar13 = (byte)DAT_182671e3c;
  uVar19 = (ulonglong)DAT_182671dc4;
  uVar26 = CONCAT44(uVar16,uVar6);
  *(ulonglong *)(lVar2 + -0x4f0) = *(ulonglong *)(lVar2 - (uVar22 ^ 0x400019f8)) ^ uVar19;
  *(ulonglong *)(lVar2 + -0xaf0) = CONCAT44(uVar10,DAT_182671c6c) ^ 0x12e3b7ba99d53b76;
  uVar16 = *(uint *)(lVar2 - (uVar17 ^ 0x391349c)) ^ DAT_182671e98;
  *(uint *)(lVar2 + -0x58c) = uVar14 ^ 0x54bd80e3;
  lVar3 = DAT_182671c40;
  *(uint *)(lVar2 + -0x1c8) = uVar16 * *(int *)(lVar2 + -0x670);
  uVar9 = DAT_182671c88;
  *(uint *)(lVar3 + -0x670) = DAT_182671c88 ^ 0xf45c3d25;
  *(undefined4 *)(lVar3 - ((ulonglong)uVar4 ^ 0x64f4dad6)) = 0x9528dfc3;
  pbVar23 = (byte *)(*(ulonglong *)(lVar3 + -0x4f0) ^ uVar19);
  *(byte **)(lVar3 + -0x4c8) = pbVar23 + 1;
  *(ulonglong *)(lVar3 + -0xa70) = uVar26 ^ 0x967b9ce4486e11fe | *(ulonglong *)(lVar3 + -0xb08);
  uVar16 = DAT_182671c6c;
  uVar19 = (ulonglong)DAT_182671c6c;
  *(byte *)(lVar3 - ((ulonglong)uVar4 ^ 0x64f4da9f)) = bVar13 ^ *pbVar23 ^ (byte)DAT_182671d18;
  lVar2 = DAT_182671c40;
  *(undefined1 *)(DAT_182671c40 - (uVar19 ^ 0x7fbfd77e)) = 0xf5;
  *(undefined1 *)((ulonglong)DAT_182671e30 ^ *(ulonglong *)(lVar2 + -0xce0)) = 0xa1;
  uVar12 = DAT_182671f24;
  *(ulonglong *)(lVar2 + -0xce0) = CONCAT44(uVar8,uVar5) ^ 0xfc48a1e45bc81b6b;
  uVar11 = DAT_182671da0;
  *(ulonglong *)(lVar2 + -0x4f0) = CONCAT44(uVar6,uVar5) ^ 0x834705e7bdd4c7f6;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xdc8c82a1)) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(DAT_182671c40 + -0x610)) ^
       CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x288) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x7fbfd32f)) ^ uVar24) +
       (CONCAT44(uVar4,uVar7) ^ 0x64f4db1e03913111);
  *(byte *)(*(ulonglong *)(lVar2 + -0x810) ^ uVar24) = bVar13 ^ *(byte *)(lVar2 + -0x181);
  uVar21 = (ulonglong)DAT_182671f88;
  *(byte *)(lVar2 + -0x181) = (byte)uVar9 ^ 0x45;
  uVar22 = (ulonglong)DAT_182671ec4;
  *(undefined8 *)(lVar2 + -0x2c8) = *(undefined8 *)(lVar2 - (uVar19 ^ 0x7fbfd9b7));
  *(undefined8 *)(lVar2 + -0x288) = 0x9d7474a85164c2d5;
  *(undefined8 *)(lVar2 + -0xb78) = *(undefined8 *)(lVar2 + -0x4c8);
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x39135d8)) = CONCAT44(uVar14,uVar6) ^ 0xbedb39072503313f;
  uVar17 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar2 + -0x808) = *(ulonglong *)(lVar2 + -0x2c8) ^ uVar22;
  *(ulonglong *)(lVar2 + -0x2c8) = CONCAT44(uVar25,uVar14) ^ 0x86d26eddaabcd659;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x30488185)) = *(ulonglong *)(lVar2 + -0xb78) ^ uVar21;
  pbVar23 = (byte *)(lVar2 + -0xb41);
  *(ulonglong *)(lVar2 + -0xb78) = uVar26 ^ 0xabb1dd812e6df198;
  *pbVar23 = *(byte *)(*(ulonglong *)(lVar2 + -0x780) ^ uVar21);
  bVar13 = (byte)DAT_182671c90;
  *(undefined1 *)(lVar2 + -0x511) = 0x7a;
  *(byte *)(uVar20 ^ *(ulonglong *)(lVar2 + -0x1b8)) = bVar13 ^ 0xe3;
  *(ulonglong *)(lVar2 + -0x1b8) = CONCAT44(uVar25,DAT_182671c64) ^ 0x9b817785dbaac396;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x82dfdc00)) =
       CONCAT44(uVar25,uVar10) ^ 0x815b8f286139c35c;
  *(byte *)(uVar22 ^ *(ulonglong *)(lVar2 + -0x808)) = *pbVar23 ^ (byte)DAT_182671d18;
  *pbVar23 = (byte)DAT_182671c50 ^ 0x91;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar14) * 4) = uVar15;
  return;
}



############ FUN_ 180f9de60 size=5907 ############

void FUN_180f9de60(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong *puVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  byte bVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  
  uVar11 = DAT_182671f6c;
  uVar17 = DAT_182671c90;
  uVar9 = DAT_182671c74;
  uVar8 = DAT_182671c64;
  uVar5 = DAT_182671c4c;
  lVar6 = DAT_182671c40;
  uVar20 = (ulonglong)DAT_182671c5c;
  uVar14 = DAT_182671c74 & 3;
  if (uVar14 < 2) {
    uVar29 = uVar20;
    if (uVar14 == 0) {
      uVar29 = (ulonglong)DAT_182671c74;
    }
  }
  else {
    uVar29 = (ulonglong)DAT_182671c4c;
    if (uVar14 < 3) {
      uVar29 = (ulonglong)DAT_182671c64;
    }
  }
  uVar24 = (ulonglong)DAT_182671c90;
  DAT_182671c94 = (uint)uVar29;
  uVar26 = (DAT_182671c90 << 0x10 | DAT_182671c90 & 0xff00) << 8 | DAT_182671c90 >> 8 & 0xff00 |
           DAT_182671c90 >> 0x18;
  uVar14 = *(uint *)(&DAT_182613220 + DAT_18267226c);
  uVar16 = *(uint *)(&DAT_182613218 + DAT_18267226c) ^ DAT_182671c90;
  uVar30 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar34 = (ulonglong)uVar26;
  uVar33 = CONCAT44(DAT_182671e80,DAT_182671e80);
  DAT_182671c6c = uVar26;
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0xfda682a8)) ^
       CONCAT44(DAT_182671cac,DAT_182671cac)) - (*(ulonglong *)(DAT_182671c40 + -0xc90) ^ uVar30) ^
       uVar33;
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar37 = CONCAT44(DAT_182671f08,DAT_182671f08);
  puVar1 = (ulonglong *)(lVar6 + -0x510);
  uVar20 = *(ulonglong *)(lVar6 - (uVar20 ^ 0xfdfaf587)) ^ CONCAT44(DAT_182671ebc,DAT_182671ebc) ^
           *(ulonglong *)(lVar6 + -0xb18) ^ uVar37;
  *puVar1 = uVar20 ^ uVar22;
  uVar11 = DAT_182671f90;
  bVar15 = (byte)uVar8;
  uVar36 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(ulonglong *)(lVar6 + -0x380) = uVar20 >> ((bVar15 ^ 6) & 0x3f) ^ uVar36;
  lVar6 = DAT_182671c40;
  uVar20 = CONCAT44(uVar11,uVar11);
  bVar43 = (byte)(uVar17 >> 0x18);
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x52c2e9ce)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0xd2471437)) ^ uVar22) <<
       ((bVar43 ^ 0xe9) & 0x3f) ^ uVar20;
  uVar21 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar18 = *(ulonglong *)(lVar6 + -0xb20) ^ uVar20 | *(ulonglong *)(lVar6 + -0x380) ^ uVar36;
  *(ulonglong *)(lVar6 + -0x828) = uVar18 ^ uVar21;
  puVar27 = (ulonglong *)(lVar6 - (uVar29 ^ 0xfc6af827));
  uVar23 = CONCAT44(DAT_182671f70,DAT_182671f70);
  puVar2 = (ulonglong *)(lVar6 + -0xbd8);
  uVar19 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar20 = *(ulonglong *)(lVar6 + -0xf0);
  uVar38 = (uVar37 ^ *puVar27) - uVar18 ^ uVar23;
  *(ulonglong *)(lVar6 + -0x4b8) = uVar38;
  uVar12 = DAT_182671db8;
  *puVar2 = uVar19 ^ *(ulonglong *)(lVar6 + -0x408) | CONCAT44(uVar5,uVar9) ^ 0x3d87181ad9018c2c;
  uVar11 = DAT_182671ca4;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar21 = *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c94 ^ 0xfc6afb17)) ^ uVar20 ^ uVar37 ^
           uVar21 ^ uVar33;
  *(ulonglong *)(lVar6 + -0x760) = uVar21;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar19 = (uVar21 ^ uVar37) >> (((byte)DAT_182671c5c ^ 0xf1) & 0x3f);
  *(ulonglong *)(lVar6 + -0x7e8) = uVar19 ^ uVar25;
  uVar10 = DAT_182671c80;
  lVar6 = DAT_182671c40;
  uVar18 = CONCAT44(DAT_182671c80,uVar26);
  uVar37 = (uVar21 ^ uVar37) << ((bVar43 ^ 0xdc) & 0x3f);
  uVar21 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar37 ^ uVar22;
  puVar3 = (ulonglong *)(lVar6 + -0xda8);
  uVar37 = uVar37 | uVar19;
  *puVar3 = uVar37 ^ uVar21;
  puVar4 = (ulonglong *)(lVar6 + -0x228);
  *(ulonglong *)(lVar6 + -0x5e8) = *(ulonglong *)(lVar6 + -0x380) ^ uVar36 ^ 0x56abb309046ed73f;
  uVar19 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar21 = CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar44 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *puVar4 = (uVar20 ^ uVar33) - (*(ulonglong *)(lVar6 + -0x2b0) ^ uVar19) ^ uVar21;
  uVar13 = DAT_182671fac;
  uVar11 = DAT_182671d4c;
  uVar40 = CONCAT44(DAT_182671c5c,uVar17);
  *(ulonglong *)(lVar6 + -0xa60) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xfc6af117)) ^ uVar21) - uVar37 ^ uVar44;
  uVar12 = DAT_182671ef8;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar20 = (*(ulonglong *)(lVar6 - (uVar34 ^ 0x52c2ef66)) ^ CONCAT44(uVar13,uVar13)) +
           (uVar40 ^ 0x232ced4c597aaf4e);
  *(ulonglong *)(lVar6 + -0xa50) = uVar20 ^ uVar31;
  uVar11 = DAT_182671ca0;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x30) = uVar37 - uVar20 ^ uVar36;
  lVar7 = DAT_182671c40;
  uVar22 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 + -0xa78) =
       *(ulonglong *)(lVar6 - (uVar34 ^ 0x52c2ee7e)) ^ uVar38 ^ uVar22 ^ uVar23 ^ uVar30;
  uVar11 = DAT_182671d98;
  uVar5 = DAT_182671c4c;
  lVar6 = DAT_182671c40;
  puVar39 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671c4c ^ 0xd2471b5f));
  puVar28 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0xfdfafaef));
  uVar20 = (ulonglong)DAT_182671c80;
  *puVar28 = (*puVar39 ^ uVar22) >> ((bVar15 ^ 0x2f) & 0x3f) ^ uVar22;
  uVar21 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0xfda689b8)) =
       (*(ulonglong *)(lVar6 + -0xa78) ^ uVar22) << 0x30 ^ uVar21;
  uVar38 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c64 ^ 0xfc6af827)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c94 ^ 0xfc6af81f)) ^ uVar21 | *puVar1 ^ uVar22)
       ^ uVar38;
  uVar11 = DAT_182671d64;
  uVar20 = (*(ulonglong *)(lVar6 + -0x4b8) ^ uVar23) -
           (*(ulonglong *)(lVar6 - ((ulonglong)uVar5 ^ 0xd2471d3f)) ^
           CONCAT44(DAT_182671efc,DAT_182671efc));
  *(ulonglong *)(lVar6 + -0x408) = uVar20 ^ CONCAT44(DAT_182671cf8,DAT_182671cf8);
  uVar37 = CONCAT44(uVar11,uVar11);
  *puVar2 = uVar20 - (uVar38 ^ *puVar27) ^ uVar37;
  uVar12 = DAT_182671f5c;
  uVar21 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar23 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar22 = (CONCAT44(uVar10,uVar17) ^ 0x2597d67111d3da0) - (*(ulonglong *)(lVar6 + -0x3d8) ^ uVar21)
  ;
  *(ulonglong *)(lVar6 + -0x828) = uVar22 ^ uVar23;
  uVar11 = DAT_182671ef4;
  uVar20 = CONCAT44(uVar12,uVar12);
  uVar22 = uVar22 + (*(ulonglong *)(lVar6 + -0xb18) ^ uVar38) ^ uVar20;
  *(ulonglong *)(lVar6 + -0x760) = uVar22;
  lVar7 = DAT_182671c40;
  uVar38 = CONCAT44(uVar11,uVar11);
  uVar34 = CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar22 = *(ulonglong *)(lVar6 + -0xa60) ^ uVar38 ^ uVar20 ^ uVar44 ^ uVar22;
  *(ulonglong *)(lVar6 + -0x7e8) = uVar22;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c74 ^ 0x42a00b32)) =
       (uVar38 ^ uVar22) >> ((bVar43 ^ 0xce) & 0x3f) ^ uVar34;
  uVar22 = CONCAT44(DAT_182671f50,DAT_182671f50);
  uVar20 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c94 ^ 0xfc6af6d7)) =
       (*(ulonglong *)(lVar7 + -0x7e8) ^ uVar38) << (((byte)uVar17 ^ 0x72) & 0x3f) ^ uVar22;
  uVar11 = DAT_182671ed0;
  uVar38 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar20 = *(ulonglong *)(lVar7 - (uVar20 ^ 0xfda68770)) ^ uVar22 |
           *(ulonglong *)(lVar7 + -0x920) ^ uVar34;
  *(ulonglong *)(lVar7 + -0x380) = uVar20 ^ uVar38;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar7 + -0xf0) = (*(ulonglong *)(lVar7 + -0xa60) ^ uVar44) - uVar20 ^ uVar34;
  uVar5 = DAT_182671c4c;
  uVar44 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar20 = uVar44 ^ uVar37 ^ *(ulonglong *)(lVar7 + -0x30) ^ uVar36 ^ *puVar2;
  *puVar4 = uVar20;
  uVar8 = DAT_182671c64;
  *puVar3 = CONCAT44(uVar9,uVar5) ^ 0x374e90bc815e9922 | uVar40 ^ 0x3b51feea837a8d59;
  uVar40 = CONCAT44(DAT_182671e88,DAT_182671e88);
  puVar32 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671c5c ^ 0xfdfaf36f));
  *puVar32 = (uVar20 ^ uVar44) >> (((byte)uVar8 ^ 0x1f) & 0x3f) ^ uVar40;
  lVar6 = DAT_182671c40;
  *(int *)(DAT_182671c40 + -0x76c) = *(int *)(DAT_182671c40 + -0x61c) * -0x6d0b4e8d;
  uVar22 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(lVar6 + -0xa78) = (uVar44 ^ *puVar4) << (((byte)uVar5 ^ 7) & 0x3f) ^ uVar22;
  uVar20 = *(ulonglong *)(lVar6 + -0xc90);
  *puVar1 = uVar38 ^ *(ulonglong *)(lVar6 + -0x380) ^ 0x5635db7155115a53;
  lVar6 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar40 = (uVar20 ^ uVar40 | *puVar39 ^ uVar22) ^ uVar36;
  uVar44 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar40;
  uVar17 = DAT_182671c94;
  uVar5 = DAT_182671c80;
  uVar20 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar6 + -0x4b8) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c94 ^ 0xfc6af8e7)) ^ uVar37) -
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xfc6af81f)) ^ uVar36) ^ uVar44;
  uVar22 = (ulonglong)DAT_182671cc4;
  bVar42 = (byte)uVar17;
  uVar35 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0xfda68690)) =
       uVar40 ^ uVar35 ^ uVar36 ^ uVar34 ^ *(ulonglong *)(lVar6 + -0xf0);
  uVar40 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar20 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar6 + -0xb18) =
       (uVar35 ^ *(ulonglong *)(lVar6 + -0x408)) >> ((bVar42 ^ 5) & 0x3f) ^ uVar40;
  lVar7 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar6 + -0x828) =
       (*(ulonglong *)(lVar6 - (uVar20 ^ 0xfdfafbf7)) >> 0x20 ^ uVar22) >> 4;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xfc6af45f)) =
       (uVar35 ^ *(ulonglong *)(lVar7 + -0x408)) << ((bVar43 ^ 0xe8) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar7 + -0x7e8) =
       CONCAT44(uVar9,uVar5) ^ CONCAT44(uVar9,uVar17) ^ 0xc3bf71ccea1400da;
  uVar11 = DAT_182671cd4;
  lVar6 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  puVar39 = (ulonglong *)(DAT_182671c40 + -0xf0);
  uVar20 = *(ulonglong *)(DAT_182671c40 + -0x4b8);
  uVar37 = *(ulonglong *)(lVar7 - (uVar24 ^ 0xeee2c532)) ^ uVar37 |
           *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0xfdfaf4e7)) ^ uVar40;
  uVar22 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar37 ^ uVar35;
  uVar12 = DAT_182671d30;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 + -0x920) = (uVar34 ^ *puVar39) - uVar37 ^ uVar36;
  uVar13 = DAT_182671dd4;
  uVar5 = DAT_182671c54;
  lVar7 = DAT_182671c40;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar38 = uVar20 ^ uVar37 ^ uVar44 ^ uVar38 ^ *(ulonglong *)(lVar6 + -0x380);
  *(ulonglong *)(lVar6 + -0xa60) = uVar38;
  uVar11 = DAT_182671d68;
  uVar20 = (*(ulonglong *)(lVar7 - (uVar22 ^ 0xfda688f8)) ^ uVar37) >> (((byte)uVar5 ^ 0xee) & 0x3f)
  ;
  bVar15 = (byte)DAT_182671c58;
  *(ulonglong *)(lVar7 + -0x30) = uVar20 ^ CONCAT44(uVar13,uVar13);
  uVar34 = (uVar38 ^ uVar37) << ((bVar15 ^ 0xea) & 0x3f);
  uVar22 = (ulonglong)DAT_182671c94;
  uVar38 = CONCAT44(uVar11,uVar11);
  *puVar3 = uVar34 ^ uVar38;
  lVar6 = DAT_182671c40;
  uVar34 = uVar34 | uVar20;
  uVar37 = CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar20 = *(ulonglong *)(DAT_182671c40 + -0x4b8);
  *puVar4 = uVar34 ^ uVar25;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(lVar6 - (uVar22 ^ 0xfc6af62f)) = (uVar20 ^ uVar44) - uVar34 ^ uVar37;
  uVar22 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *(ulonglong *)(lVar7 + -0xc90) =
       uVar22 ^ *(ulonglong *)(lVar7 + -0x920) ^ uVar36 ^ uVar25 ^ *puVar4;
  *(ulonglong *)(lVar7 + -0xa78) = uVar18 ^ uVar25 ^ *puVar4 ^ 0x29d74f60c5c1e5cd;
  lVar6 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *puVar2 = (*(ulonglong *)(lVar7 + -0xc90) ^ uVar22) >> ((bVar42 ^ 0x11) & 0x3f) ^ uVar25;
  uVar34 = CONCAT44(DAT_182671d80,DAT_182671d80);
  puVar39 = (ulonglong *)(lVar6 - ((ulonglong)DAT_182671c4c ^ 0xd2471a07));
  uVar20 = (ulonglong)DAT_182671c74;
  *puVar39 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xfc6affaf)) ^ uVar22) <<
             ((bVar43 ^ 0xfc) & 0x3f) ^ uVar34;
  uVar44 = (ulonglong)DAT_182671c4c;
  uVar18 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar7 - (uVar44 ^ 0xd247190f)) =
       ((uVar29 << 0x20 | uVar20) ^ 0xa77646cc303c61e5) << ((bVar43 ^ 0xf6) & 0x3f);
  uVar5 = DAT_182671c50;
  uVar22 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar45 = (ulonglong)DAT_182671c50;
  uVar20 = *(ulonglong *)(lVar7 - (uVar18 ^ 0xae62c998)) ^ uVar25 |
           uVar34 ^ *(ulonglong *)(lVar7 + -0xb20);
  uVar34 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar7 + -0x408) = uVar20 ^ uVar22;
  uVar9 = DAT_182671c70;
  *(ulonglong *)(lVar7 + -0x7e8) = (*(ulonglong *)(lVar7 + -0x920) ^ uVar36) - uVar20 ^ uVar34;
  uVar12 = DAT_182671e78;
  uVar11 = DAT_182671c88;
  uVar17 = DAT_182671c78;
  uVar8 = DAT_182671c5c;
  uVar29 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  uVar41 = (ulonglong)DAT_182671c78;
  uVar18 = *puVar1 ^ uVar29 ^ uVar37 ^ uVar35 ^ *(ulonglong *)(lVar7 + -0x5e8);
  *(ulonglong *)(lVar7 + -0x760) = (uVar18 ^ uVar29) >> (((byte)uVar9 ^ 0x21) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar7 + -0xb18) = uVar18;
  uVar9 = DAT_182671c84;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar20 = CONCAT44(uVar5,DAT_182671c68);
  *(ulonglong *)(lVar7 + -0xf0) = (uVar18 ^ uVar29) << (((byte)uVar8 ^ 0xcb) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x2db8ed58)) =
       (uVar20 ^ 0x1a9496f08f19cf9d) - (CONCAT44(uVar17,uVar11) ^ 0x88e766e33f583893);
  uVar25 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(lVar7 - (uVar44 ^ 0xd2471b47)) =
       (uVar36 ^ *(ulonglong *)(lVar7 + -0xf0) | *(ulonglong *)(lVar7 + -0x760) ^ uVar21) ^ uVar25;
  lVar6 = DAT_182671c40;
  uVar20 = *(ulonglong *)(lVar7 + -0xa60);
  uVar44 = uVar25 ^ uVar20;
  uVar18 = (ulonglong)DAT_182671c48;
  uVar35 = CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar29 = *(ulonglong *)(DAT_182671c40 + -0xf0);
  *(ulonglong *)(DAT_182671c40 + -0x30) = (*puVar1 ^ uVar37) - uVar44 ^ uVar35;
  uVar37 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  uVar21 = (ulonglong)DAT_182671c5c;
  uVar20 = *(ulonglong *)(lVar6 - (uVar18 ^ 0xdc68f6d0)) ^ uVar37 ^ uVar25 ^ uVar34 ^ uVar20;
  *puVar3 = uVar20;
  uVar25 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *(ulonglong *)(lVar6 + -0x4b8) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xfdfaf257)) ^ uVar37) >>
       (((byte)DAT_182671c70 ^ 0x34) & 0x3f) ^ uVar25;
  *puVar4 = uVar36 ^ uVar29 | uVar44;
  uVar5 = DAT_182671c64;
  uVar21 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar29 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar6 - (uVar24 ^ 0xeee2c82a)) =
       (uVar37 ^ uVar20) << (((byte)DAT_182671c64 ^ 0x18) & 0x3f) ^ uVar21;
  uVar8 = DAT_182671c80;
  uVar36 = (ulonglong)DAT_182671c7c;
  uVar18 = (ulonglong)DAT_182671c70;
  uVar29 = *(ulonglong *)(lVar6 - (uVar29 ^ 0xceb20e1e)) ^ uVar21 |
           *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c58 ^ 0x3950878)) ^ uVar25;
  uVar20 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar6 + -0xc90) = uVar29 ^ uVar30;
  *(ulonglong *)(lVar6 + -0x828) = (uVar35 ^ *(ulonglong *)(lVar6 + -0x30)) - uVar29;
  uVar29 = (*(ulonglong *)(lVar6 + -0x7e8) ^ uVar34) -
           (*(ulonglong *)(lVar6 - (uVar20 ^ 0xfda68418)) ^ uVar40);
  *puVar2 = uVar29 ^ CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar20 = (ulonglong)DAT_182671c54;
  *puVar39 = uVar29 - (*(ulonglong *)(lVar6 - (uVar36 ^ 0x71c6f044)) ^ uVar30) ^ uVar38;
  *(ulonglong *)(lVar6 - (uVar20 ^ 0xdff9f0d8)) =
       (CONCAT44(uVar11,uVar5) ^ 0xb7a39b9fd692bbf6) + (*(ulonglong *)(lVar6 + -0x2b0) ^ uVar19) ^
       uVar23;
  uVar29 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar6 - (uVar18 ^ 0xd8eebdc5)) =
       (*puVar32 ^ uVar30) - (*(ulonglong *)(lVar6 + -0x920) ^ uVar23) ^ uVar29;
  lVar7 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xfda68980)) =
       uVar23 ^ uVar35 ^ uVar22 ^ *(ulonglong *)(lVar6 + -0x30) ^ *(ulonglong *)(lVar6 + -0x408);
  uVar19 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(lVar7 - (uVar24 ^ 0xeee2c1d2)) =
       (uVar23 ^ *puVar27) >> (((byte)DAT_182671c60 ^ 0x61) & 0x3f) ^ uVar19;
  lVar6 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar7 - (uVar45 ^ 0xfff9f898)) =
       (*(ulonglong *)(lVar7 + -0xb18) ^ uVar23) << (((byte)uVar11 ^ 0xf1) & 0x3f) ^ uVar20;
  uVar37 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar6 - (uVar18 ^ 0xd8eebd3d)) =
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0x1fc00380)) ^ uVar19 |
       uVar20 ^ *(ulonglong *)(lVar6 + -0x760)) ^ uVar37;
  uVar20 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x71c6fc24)) =
       (uVar35 ^ *(ulonglong *)(lVar6 + -0x30)) -
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c94 ^ 0xfc6af96f)) ^ uVar31) ^ uVar20;
  uVar12 = DAT_182671ddc;
  uVar21 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar19 = (uVar20 ^ *(ulonglong *)(lVar6 + -0xf0)) - (uVar37 ^ *puVar28) ^ uVar21;
  *(ulonglong *)(lVar6 + -0xa60) = uVar19;
  uVar11 = DAT_182671d14;
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar18 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *puVar4 = -(*(ulonglong *)(lVar6 + -0x888) ^ uVar34) - 0xd ^ uVar18;
  uVar12 = DAT_182671f74;
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar20 = (ulonglong)DAT_182671c84;
  *puVar3 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c68 ^ 0x2850510)) ^ uVar37) +
            (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c80 ^ 0xfda680b0)) ^ uVar18) ^ uVar22;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar22 = *(ulonglong *)(lVar6 - (uVar20 ^ 0x2db8e370)) ^ uVar36 ^ uVar22 ^ uVar38 ^
           *(ulonglong *)(lVar6 + -0xb20);
  uVar37 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar6 + -0x4b8) = uVar22;
  uVar11 = DAT_182671e98;
  uVar18 = (uVar22 ^ uVar36) >> (((byte)DAT_182671c58 ^ 0xc5) & 0x3f);
  uVar20 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar6 + -0xa78) = uVar18 ^ uVar37;
  uVar22 = (uVar36 ^ uVar22) << 0x3b;
  *(ulonglong *)(lVar6 + -0x828) = uVar22 ^ uVar23;
  uVar18 = uVar18 | uVar22;
  uVar22 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(ulonglong *)(lVar6 + -0x7e8) = uVar18 ^ CONCAT44(uVar11,uVar11);
  uVar8 = DAT_182671c60;
  lVar7 = DAT_182671c40;
  *puVar2 = (*(ulonglong *)(lVar6 - (uVar20 ^ 0xdff9f2d8)) ^ uVar38) - uVar18 ^ uVar22;
  uVar17 = uVar8 & DAT_182671c5c;
  uVar20 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  DAT_182671c58 = uVar17;
  *puVar32 = uVar20 ^ uVar21 ^ uVar29 ^ uVar19 ^ *(ulonglong *)(lVar7 + -0x5e8);
  lVar6 = DAT_182671c40;
  bVar15 = (byte)DAT_182671c5c;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar17 ^ 0xac62c648)) =
       (uVar20 ^ *(ulonglong *)(lVar7 + -0xc90)) >> (((byte)uVar17 ^ 0x65) & 0x3f) ^ uVar34;
  uVar20 = (uVar20 ^ *puVar32) << ((bVar15 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar6 + -0xb18) = uVar20 ^ CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar11 = DAT_182671e64;
  *(ulonglong *)(lVar6 + -0x380) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0xac62c998)) ^ uVar22) -
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xae62ca68)) ^ uVar23);
  uVar18 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 + -0x760) = (uVar34 ^ *(ulonglong *)(lVar6 + -0x408) | uVar20) ^ uVar18;
  uVar9 = DAT_182671f14;
  uVar20 = (ulonglong)DAT_182671f14;
  uVar5 = DAT_182671f14 >> 0x17;
  *(uint *)(lVar6 - ((ulonglong)uVar17 ^ 0xac62cb0c)) = (uVar8 ^ 0x2a6c8341) * 0x79fd740a;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar6 + -0xa50) =
       (uVar21 ^ *(ulonglong *)(lVar6 + -0xa60)) - (uVar18 ^ *(ulonglong *)(lVar6 + -0x760)) ^
       uVar33;
  *(ulonglong *)(lVar6 + -0x30) =
       uVar19 ^ uVar18 ^ uVar22 ^ *(ulonglong *)(lVar6 + -0x760) ^ *puVar2;
  *(uint *)(lVar6 + -0x634) = (DAT_182671c5c ^ 0x61b8ede1) + 0xa13526cd;
  uVar11 = DAT_182671eb8;
  uVar20 = ((ulonglong)uVar5 | uVar20 << 9) ^ *(ulonglong *)(lVar6 + -0x30) >> 0x17;
  *(ulonglong *)(lVar6 + -0xf0) = uVar20 ^ CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar18 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0xac62c270)) ^ uVar19) << 0x29;
  *puVar1 = uVar18 ^ CONCAT44(uVar11,uVar11);
  uVar18 = uVar18 | uVar20;
  uVar20 = *puVar2;
  *puVar4 = uVar18 ^ CONCAT44(DAT_182671f30,DAT_182671f30);
  *puVar3 = (uVar22 ^ uVar20) - uVar18 ^ uVar29;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar14 ^ uVar26) * 4) = uVar16;
  return;
}



############ FUN_ 180f6c210 size=5124 ############

void FUN_180f6c210(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  int *piVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  ulonglong uVar14;
  byte bVar15;
  ulonglong uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  byte local_res18;
  
  uVar10 = DAT_182671c78;
  uVar8 = DAT_182671c60;
  lVar5 = DAT_182671c40;
  uVar14 = (ulonglong)DAT_182671c60;
  uVar28 = (ulonglong)DAT_182671c78;
  uVar31 = (ulonglong)DAT_182671c60;
  uVar20 = DAT_182671c60 & DAT_182671c78;
  uVar4 = *(uint *)(&DAT_182613210 + (uVar14 ^ 0x2b784782) + (longlong)DAT_1826721dc);
  uVar13 = *(uint *)(&DAT_182613220 + DAT_1826721dc) ^ DAT_182671c78;
  uVar30 = (ulonglong)DAT_182671f38;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x408);
  uVar24 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar39 = CONCAT44(DAT_182671f68,DAT_182671f68);
  uVar16 = *(ulonglong *)(DAT_182671c40 + -0x760);
  DAT_182671c64 = uVar20;
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (CONCAT44(DAT_182671ebc,DAT_182671ebc) ^ *puVar1) +
       (uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0x760)) ^ uVar39;
  uVar7 = DAT_182671c98;
  uVar34 = (ulonglong)uVar20;
  *(ulonglong *)(lVar5 + -0xb18) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0x20280000)) ^ uVar39 |
       CONCAT44(uVar8,uVar10) ^ 0x44a5f5f314f6de98;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x2b784452)) = (uVar24 ^ uVar16) << 0x17 ^ uVar29;
  uVar7 = DAT_182671e0c;
  uVar19 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar5 + -0xda8) =
       *(ulonglong *)
        (*(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0xa0af951d)) ^
        CONCAT44(DAT_182671e2c,DAT_182671e2c)) ^ uVar19;
  lVar6 = DAT_182671c40;
  local_res18 = (byte)uVar20;
  uVar21 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar16 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0x202801e0)) >> 0x20 ^ uVar30) >> 9;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x380);
  uVar40 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar5 + -0xb08) = uVar16 ^ CONCAT44(uVar7,uVar7);
  uVar16 = (*(ulonglong *)(lVar5 + -0x3d8) ^ uVar29 | uVar16) ^ uVar21;
  *(ulonglong *)(lVar5 + -0x510) = uVar16;
  *(ulonglong *)(lVar5 + -0x30) = uVar40 ^ uVar21 ^ uVar39 ^ uVar16 ^ *(ulonglong *)(lVar5 + -0x680)
  ;
  uVar7 = DAT_182671f18;
  *(ulonglong *)(lVar5 + -0x7e8) =
       CONCAT44(uVar10,uVar8) ^ uVar39 ^ *(ulonglong *)(lVar5 + -0x680) ^ 0xc1b0d5ed8d4fc6b;
  uVar16 = CONCAT44(DAT_182671fb4,DAT_182671fb4) ^ *(ulonglong *)(lVar5 + -0x110);
  uVar29 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *puVar2 = (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar6 + -0x2b0)) + uVar16 ^ uVar29;
  *(longlong *)(lVar6 + -0x8f0) = 0x353433e4f6510dd << ((byte)uVar16 & 0x3f);
  uVar30 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(DAT_182671c40 + -0xa70) = uVar16 << ((local_res18 ^ 0xa8) & 0x3f) ^ uVar30;
  lVar5 = DAT_182671c40;
  uVar24 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x20280238)) =
       uVar16 >> ((local_res18 ^ 0x98) & 0x3f) ^ uVar24;
  uVar7 = DAT_182671f54;
  uVar9 = DAT_182671e8c;
  uVar16 = CONCAT44(DAT_182671e30,DAT_182671e30);
  puVar37 = (ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x2b784d82));
  uVar22 = (ulonglong)DAT_182671e8c;
  *puVar37 = (*(ulonglong *)(lVar5 - (uVar34 ^ 0x20280cf0)) ^ uVar30 |
             *(ulonglong *)(lVar5 + -0x4b8) ^ uVar24) ^ uVar16;
  lVar5 = DAT_182671c40;
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar31 = uVar30 ^ uVar16 ^ *puVar2 ^ uVar29 ^ *(ulonglong *)(DAT_182671c40 + -0xa08);
  piVar3 = (int *)(DAT_182671c40 + -0x5d4);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar31;
  *(uint *)(lVar5 + -0x684) = (uVar20 ^ 0x91ec642c) + *piVar3;
  uVar12 = DAT_182671f74;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0xa50) =
       (uVar31 ^ uVar30) + (uVar39 ^ *(ulonglong *)(lVar5 + -0x680)) ^ uVar24;
  lVar5 = DAT_182671c40;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (uVar31 ^ uVar30) << ((local_res18 ^ 0x85) & 0x3f) ^ uVar33;
  uVar16 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(lVar5 + -0xc18) = (uVar31 >> 0x20 ^ uVar22) >> 0x1b ^ uVar16;
  *(ulonglong *)(lVar5 - (uVar14 ^ 0x2b784262)) =
       *(ulonglong *)(lVar5 + -0x510) ^ uVar21 | CONCAT44(uVar10,uVar20) ^ 0x2b45a56891be1113;
  uVar7 = DAT_182671efc;
  uVar21 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar5 + -0x628) =
       (*(ulonglong *)(lVar5 - (uVar14 ^ 0x2b784b92)) ^ uVar16 |
       *(ulonglong *)(lVar5 + -0x888) ^ uVar33) ^ uVar21;
  uVar25 = CONCAT44(uVar7,uVar7);
  *puVar1 = *(ulonglong *)(lVar5 - (uVar34 ^ 0x20280cd0)) ^
            *(ulonglong *)(lVar5 - (uVar14 ^ 0x2b7841a2)) ^ uVar25 ^ uVar21 ^ uVar24;
  uVar7 = DAT_182671f58;
  lVar6 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar5 + -0xb18) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0x20280500)) ^ uVar29) +
       (*(ulonglong *)(lVar5 + -0x30) ^ uVar40) ^ uVar30;
  uVar26 = CONCAT44(uVar7,uVar7);
  uVar22 = (ulonglong)DAT_182671c4c;
  bVar35 = (byte)uVar10;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0xa0af933d)) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0x202806b0)) ^ uVar40) << 0x25 ^ uVar26;
  uVar29 = (*(ulonglong *)(lVar6 + -0x30) ^ uVar40) >> ((bVar35 ^ 0x8e) & 0x3f);
  *(ulonglong *)(lVar6 + -0x760) = uVar29 ^ uVar39;
  *(ulonglong *)(lVar6 + -0x3d8) = uVar29 | 0xeab6318a3c0746e2;
  uVar12 = DAT_182671e4c;
  uVar16 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar21 = (uVar29 | uVar26 ^ *(ulonglong *)(lVar6 + -0xda8)) ^ uVar16;
  *(ulonglong *)(lVar6 + -0xb08) = uVar21;
  uVar7 = DAT_182671c5c;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar33 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar16 = uVar29 ^ uVar16 ^ uVar30 ^ uVar21 ^ *(ulonglong *)(lVar6 + -0xb18);
  *(ulonglong *)(lVar6 + -0x7e8) = uVar16;
  uVar29 = (CONCAT44(uVar7,uVar20) ^ 0xcf4ad8f600a1c65b) + (uVar29 ^ uVar16);
  uVar16 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar6 + -0x2b0) = uVar29 ^ uVar33;
  uVar12 = DAT_182671f64;
  uVar24 = (*(ulonglong *)(lVar6 + -0xa50) ^ uVar24) + (CONCAT44(uVar8,uVar10) ^ 0x72c2344799b7a7ad)
  ;
  *(ulonglong *)(lVar6 + -0x8f0) = uVar24 ^ uVar16;
  uVar7 = DAT_182671da0;
  uVar39 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x110) = uVar24 + uVar29 ^ uVar39;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar6 - (uVar14 ^ 0x2b784dfa)) = uVar29 * 0x2000000 ^ uVar24;
  uVar7 = DAT_182671d78;
  uVar9 = DAT_182671c70;
  uVar16 = uVar24 ^ *(ulonglong *)(lVar6 + -0xa70);
  uVar21 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar6 + -0x4b8) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0xa0af94e5)) ^ uVar24) >> ((byte)uVar16 & 0x3f);
  uVar12 = DAT_182671db0;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar33 = (uVar33 ^ *(ulonglong *)(lVar6 + -0x2b0)) >> ((bVar35 ^ 0xb2) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar6 + -0xa08) = uVar33;
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar16 = uVar31 ^ *puVar37 | uVar16;
  uVar24 = uVar16 ^ uVar29;
  *(ulonglong *)(lVar6 + -0x680) = uVar24;
  puVar32 = (ulonglong *)(lVar6 - (uVar21 ^ 0x3b1c30fb));
  *(ulonglong *)(lVar6 + -0x828) = uVar16 ^ uVar39 ^ uVar19 ^ *puVar32;
  uVar7 = DAT_182671dd4;
  *(ulonglong *)(lVar6 + -0x510) = uVar29 ^ uVar33 ^ uVar31 ^ uVar24;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar6 + -0x5e8) =
       (*puVar1 ^ uVar25) + (CONCAT44(uVar10,uVar10) ^ 0xdcff3a042f140c24) ^ uVar31;
  *(int *)(lVar6 - ((ulonglong)DAT_182671c84 ^ 0xf8bedf67)) = *(int *)(lVar6 + -0x634) + 0x25e9c27b;
  uVar7 = DAT_182671d84;
  uVar16 = (CONCAT44(uVar20,DAT_182671c6c) ^ 0x38297630bcbb0a01) +
           (uVar30 ^ *(ulonglong *)(lVar6 + -0xb18));
  uVar18 = uVar9 << 0x10 | uVar9 >> 0x10;
  *(ulonglong *)(lVar6 + -0x888) = uVar16 ^ CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar29 = CONCAT44(uVar7,uVar7);
  bVar23 = (byte)DAT_182671c94;
  DAT_182671c6c = uVar18;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x20280a98)) =
       (uVar31 ^ *(ulonglong *)(lVar6 + -0x5e8)) + uVar16 ^ uVar29;
  uVar7 = DAT_182671d50;
  bVar15 = (byte)DAT_182671c80;
  uVar34 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar6 + -0x628) =
       (uVar31 ^ *(ulonglong *)(lVar6 + -0x5e8)) << ((bVar23 ^ 0xac) & 0x3f) ^ uVar34;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0xe427aa75)) =
       (uVar31 ^ *(ulonglong *)(lVar6 + -0x5e8)) >> ((bVar15 ^ 0x59) & 0x3f) ^ uVar24;
  uVar16 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar34 = (uVar24 ^ *puVar2 | uVar34 ^ *(ulonglong *)(lVar6 + -0x628)) ^ uVar16;
  uVar24 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(lVar6 + -0x30) = uVar34;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x3b1c3233)) =
       uVar24 ^ uVar34 ^ uVar16 ^ uVar29 ^ *(ulonglong *)(lVar6 + -0xc18);
  uVar7 = DAT_182671ed8;
  uVar31 = uVar24 ^ *(ulonglong *)(lVar6 + -0x3d8);
  uVar22 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar42 = (ulonglong)uVar18;
  uVar39 = (uVar39 ^ *(ulonglong *)(lVar6 + -0x110)) + uVar31 ^ uVar22;
  *(ulonglong *)(lVar6 + -0xda8) = uVar39;
  *(ulonglong *)(lVar6 + -0x760) =
       (CONCAT44(uVar18,uVar9) ^ 0x69fd09171f64c0b9) <<
       ((*(byte *)(lVar6 - ((ulonglong)uVar18 ^ 0x31eb36b4)) ^ (byte)uVar7) & 0x3f);
  bVar15 = (byte)uVar9;
  uVar30 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x31eb38c4)) ^ uVar24) <<
           ((bVar15 ^ 0xc5) & 0x3f);
  *(ulonglong *)(lVar6 + -0xb08) = uVar30 ^ CONCAT44(DAT_182671d58,DAT_182671d58);
  uVar31 = uVar31 >> ((bVar15 ^ 0xf9) & 0x3f);
  *(ulonglong *)(lVar6 + -0x7e8) =
       (CONCAT44(uVar9,uVar18) ^ 0x68d76b001714c005) & *(ulonglong *)(lVar6 + 0x20);
  uVar34 = CONCAT44(DAT_182671d08,DAT_182671d08);
  uVar16 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar6 + -0xa50) = uVar31 ^ uVar34;
  uVar7 = DAT_182671d14;
  lVar5 = DAT_182671c40;
  uVar24 = (uVar30 | uVar31) ^ uVar16;
  *(ulonglong *)(lVar6 + -0x8f0) = uVar24;
  uVar33 = CONCAT44(uVar7,uVar7);
  bVar23 = (byte)(uVar9 >> 0x10);
  *(ulonglong *)(lVar5 + -0x4b8) = uVar33 ^ uVar16 ^ uVar39 ^ uVar22 ^ uVar24;
  uVar11 = DAT_182671c7c;
  uVar40 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0x31eb39ac)) = uVar30 << ((bVar23 ^ 2) & 0x3f);
  uVar39 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x3b1c3b9b)) =
       (uVar29 ^ *(ulonglong *)(lVar5 + -0xc18)) + (*(ulonglong *)(lVar5 + -0x828) ^ uVar19) ^
       uVar39;
  uVar7 = DAT_182671d3c;
  puVar37 = (ulonglong *)(lVar5 - ((ulonglong)uVar18 ^ 0x31eb3334));
  uVar24 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  *(ulonglong *)(lVar5 + -0xa08) = (uVar19 ^ *puVar37) << ((bVar23 ^ 0x10) & 0x3f) ^ uVar24;
  *(undefined8 *)(lVar5 - ((ulonglong)uVar9 ^ 0x3b1c376b)) = 0xf6cd8124be61f679;
  uVar16 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar5 + -0x510) = (*puVar37 >> 0x20 ^ (ulonglong)DAT_182671e48) >> 0x14 ^ uVar16;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x3b1c35e3)) =
       (CONCAT44(uVar9,DAT_182671c80) ^ 0x1f4f572a3a17053c) +
       (uVar39 ^ *(ulonglong *)(lVar5 + -0xa70));
  lVar6 = DAT_182671c40;
  uVar17 = DAT_182671c78 + uVar11;
  uVar29 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar38 = (ulonglong)DAT_182671d5c;
  uVar41 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar24 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0xa0af9b85)) ^ uVar16 |
           uVar24 ^ *(ulonglong *)(lVar5 + -0xa08)) ^ uVar29;
  DAT_182671c88 = uVar17;
  *(ulonglong *)(lVar5 + -0xb18) = uVar24;
  uVar30 = (ulonglong)uVar17;
  uVar16 = *(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0x8a023675));
  *(ulonglong *)(lVar6 + -0x5e8) =
       uVar41 ^ uVar29 ^ uVar39 ^ *(ulonglong *)(lVar6 + -0xa70) ^ uVar24;
  *(ulonglong *)(lVar6 + -0x888) = uVar16 >> ((bVar35 ^ 0xba) & 0x3f);
  *(ulonglong *)(lVar6 - (uVar30 ^ 0x8a0236dd)) =
       (CONCAT44(uVar11,uVar11) ^ 0xebf8684a0f02c76b) >>
       (((byte)uVar7 ^ *(byte *)(lVar6 + -0xa08)) & 0x3f);
  uVar36 = (uVar41 ^ *(ulonglong *)(lVar6 + -0x5e8)) + (uVar22 ^ *(ulonglong *)(lVar6 + -0xda8)) ^
           uVar26;
  *puVar2 = uVar36;
  uVar24 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar6 + -0x30) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0x5e8)) << (((byte)uVar17 ^ 0xcf) & 0x3f) ^ uVar24;
  uVar16 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar6 + -0x110) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0x5e8)) >> (((byte)uVar17 ^ 0xf3) & 0x3f) ^ uVar16;
  uVar7 = DAT_182671f40;
  lVar5 = DAT_182671c40;
  uVar24 = *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0xa0af9ea5)) ^ uVar24 |
           *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar17 ^ 0x8a0231e5)) ^ uVar16;
  uVar31 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar16 = *(ulonglong *)(DAT_182671c40 + -0xa70);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar24 ^ CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar18 = DAT_182671f20;
  uVar27 = CONCAT44(uVar7,uVar7);
  uVar29 = (ulonglong)DAT_182671f20;
  *(ulonglong *)(lVar5 + -0x7e8) = uVar24 ^ uVar41 ^ uVar26 ^ uVar36;
  uVar24 = uVar33 ^ *(ulonglong *)(lVar5 + -0x4b8);
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 + -0x3d8) = (uVar39 ^ uVar16) + uVar24 ^ uVar31;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0xe9529830)) =
       uVar24 << ((bVar35 ^ 0x83) & 0x3f) ^ uVar27;
  uVar24 = (uVar33 ^ *(ulonglong *)(lVar5 + -0x4b8)) >> (((byte)uVar11 ^ 0x4a) & 0x3f);
  uVar16 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar5 + -0x8f0) = uVar24 ^ uVar34;
  uVar24 = (uVar24 | uVar27 ^ *(ulonglong *)(lVar5 + -0xa50)) ^ uVar16;
  *(undefined8 *)(lVar5 + -0x2b0) = 0xb16b84348f70d8fe;
  *(ulonglong *)(lVar5 + -0xb08) = uVar24;
  uVar7 = DAT_182671e20;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0xa0af928d)) =
       uVar36 ^ uVar16 ^ uVar31 ^ uVar24 ^ *(ulonglong *)(lVar5 + -0x3d8);
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x8a0238dd)) =
       (uVar36 ^ *(ulonglong *)(lVar5 + -0xc18)) + (uVar26 ^ *puVar2) ^ uVar25;
  uVar16 = *(ulonglong *)(lVar5 + -0xc18);
  *puVar1 = *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar28 ^ 0xa0af9b1d)) ^ CONCAT44(uVar7,uVar7)) ^
            uVar19;
  uVar24 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(lVar5 + -0x510) = (uVar36 ^ uVar16) << ((bVar35 ^ 0xb5) & 0x3f) ^ uVar24;
  lVar6 = DAT_182671c40;
  puVar43 = (ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0xe9529e78));
  uVar29 = *puVar43 >> 0x20 ^ uVar29;
  uVar16 = CONCAT44(DAT_182671d88,DAT_182671d88);
  puVar37 = (ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x31eb3e0c));
  *(ulonglong *)(DAT_182671c40 + -0x680) = uVar29 ^ CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar19 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar6 + -0x888) = (*puVar37 ^ uVar24 | uVar29) ^ uVar16;
  uVar29 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar6 + -0xb18) =
       *(ulonglong *)(lVar6 - (uVar21 ^ 0x3b1c39c3)) ^ *(ulonglong *)(lVar6 - (uVar30 ^ 0x8a02387d))
       ^ uVar25 ^ uVar19 ^ uVar16;
  uVar21 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar6 + -0xa08) =
       (uVar31 ^ *(ulonglong *)(lVar6 + -0x3d8)) + (uVar41 ^ *(ulonglong *)(lVar6 + -0x7e8)) ^
       uVar29;
  uVar7 = DAT_182671cd8;
  *(ulonglong *)(lVar6 + -0x628) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0xa0af997d)) ^ uVar41) << ((bVar15 ^ 0xcb) & 0x3f) ^ uVar21
  ;
  uVar16 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar6 - (uVar40 ^ 0xe9529fc8)) =
       *(ulonglong *)(lVar6 + -0x7e8) >> 0x20 ^ uVar38 ^ uVar16;
  uVar24 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  uVar16 = (*(ulonglong *)(lVar6 - (uVar30 ^ 0x8a023d5d)) ^ uVar16 |
           uVar21 ^ *(ulonglong *)(lVar6 + -0x628)) ^ uVar24;
  uVar21 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar6 + -0x5e8) = uVar16;
  uVar16 = uVar21 ^ uVar16 ^ uVar24 ^ uVar29 ^ *(ulonglong *)(lVar6 + -0xa08);
  uVar31 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar6 + -0x30) = uVar16;
  uVar7 = DAT_182671c50;
  *(ulonglong *)(lVar6 + -0x110) =
       (CONCAT44(uVar17,uVar17) ^ 0x92034045080a0680) + (uVar16 ^ uVar21) ^ uVar31;
  *(ulonglong *)(lVar6 - (uVar14 ^ 0x2b7840ea)) =
       (CONCAT44(uVar7,DAT_182671c5c) ^ 0x1221302802c71e84) +
       (uVar25 ^ *(ulonglong *)(lVar6 + -0x828)) ^ uVar34;
  lVar5 = DAT_182671c40;
  uVar21 = *(ulonglong *)(lVar6 + -0x110) ^ uVar31;
  *(ulonglong *)(lVar6 + -0xa70) = uVar21 - (CONCAT44(uVar11,uVar10) ^ 0x1486c0d71050cf14);
  uVar12 = DAT_182671fa0;
  uVar24 = CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar33 = (*(ulonglong *)(lVar6 - (uVar30 ^ 0x8a023795)) ^ uVar34) + (uVar31 ^ *puVar32) ^ uVar24;
  *(ulonglong *)(lVar5 + -0x4b8) = uVar33;
  uVar7 = DAT_182671f98;
  uVar31 = (*(ulonglong *)(lVar5 - (uVar42 ^ 0x31eb3a0c)) ^ uVar31) << (((byte)uVar8 ^ 0x84) & 0x3f)
  ;
  *(ulonglong *)(lVar5 + -0xa50) = uVar31 ^ CONCAT44(uVar12,uVar12);
  uVar21 = uVar21 >> ((local_res18 ^ 0xb2) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x8f0) = uVar21 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182671dd8;
  lVar5 = DAT_182671c40;
  uVar14 = (ulonglong)DAT_182671c80;
  uVar34 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar16 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar21 = (uVar21 | uVar31) ^ uVar34;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar21;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0xb08) = uVar16 ^ uVar33 ^ uVar21 ^ uVar34 ^ uVar24;
  *(ulonglong *)(lVar5 - (uVar14 ^ 0xe7fe72c6)) =
       (CONCAT44(uVar10,DAT_182671c54) ^ 0xc7c9b11f8ffc3558) +
       (*(ulonglong *)(lVar5 + -0xb18) ^ uVar19) ^ uVar31;
  uVar16 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x8a0234fd)) =
       (CONCAT44(uVar9,uVar20) ^ 0x8bdb4489f7fc1b85) + (uVar29 ^ *(ulonglong *)(lVar5 + -0xa08)) ^
       uVar16;
  *puVar43 = (*puVar2 ^ uVar31) + (*puVar1 ^ uVar16) ^ uVar22;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar4 ^ uVar20;
  return;
}



############ FUN_ 1810063b0 size=5414 ############

void FUN_1810063b0(void)

{
  byte bVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_c0;
  
  uVar12 = DAT_182671f50;
  uVar8 = DAT_182671c64;
  uVar7 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671c64;
  uVar29 = (ulonglong)DAT_182671c54;
  uVar24 = DAT_182671c64 & DAT_182671c54;
  uVar20 = *(uint *)(&DAT_182613218 + DAT_1826720bc) ^ DAT_182671c54;
  uVar17 = *(uint *)(&DAT_182613220 + DAT_1826720bc) ^ DAT_182671c64;
  uVar41 = (ulonglong)uVar24;
  uVar35 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar40 = CONCAT44(uVar24,DAT_182671c54);
  bVar39 = (byte)DAT_182671c54;
  uVar27 = CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar33 = CONCAT44(DAT_182671d30,DAT_182671d30) ^ *(ulonglong *)(DAT_182671c40 + -0x680) ^
           *(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar27;
  DAT_182671c58 = uVar24;
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar33 ^ uVar35;
  uVar13 = DAT_182671f84;
  uVar26 = uVar33 >> ((bVar39 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar3 + -0x510) = uVar26 ^ CONCAT44(uVar12,uVar12);
  uVar32 = CONCAT44(uVar13,uVar13);
  bVar19 = (byte)uVar24;
  uVar33 = uVar33 << ((bVar19 ^ 0x29) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar33 ^ uVar32;
  lVar3 = DAT_182671c40;
  uVar33 = uVar33 | uVar26;
  uVar36 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar33 ^ uVar36;
  puVar21 = (ulonglong *)(lVar3 - (uVar41 ^ 0x71785d8e));
  uVar26 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar3 + -0x228) =
       (uVar27 ^ *puVar21) - (CONCAT44(uVar7,uVar24) ^ 0xd28fb9ffec3c9a6) ^ uVar26;
  *(ulonglong *)(lVar3 + -0xa08) = (CONCAT44(uVar8,uVar7) ^ 0xfffe88573c8a9ac8) << 0xe;
  uVar42 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xfff9f9f7)) ^ uVar26) - uVar33 ^ uVar42;
  uVar12 = DAT_182671dec;
  puVar22 = (ulonglong *)(lVar3 - (uVar41 ^ 0x71785386));
  uVar43 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *(ulonglong *)(lVar3 + -0xda8) =
       (*puVar22 ^ uVar36) - (CONCAT44(uVar7,uVar7) ^ 0x2fe138b82a86dabf) ^ uVar43;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar30 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar37 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x71785736)) =
       *(ulonglong *)(lVar3 - (uVar41 ^ 0x71785686)) ^ uVar37 ^ uVar30 ^ uVar36 ^
       *(ulonglong *)(lVar3 + -0xbd8);
  uVar12 = DAT_182671df0;
  uVar26 = *(ulonglong *)(lVar3 + -0xc38) ^ uVar36;
  uVar27 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(lVar3 + -0xc90) = uVar26 >> (((byte)uVar8 ^ 0xfe) & 0x3f) ^ uVar27;
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x71785ae6)) = uVar26 << 0x1f ^ uVar33;
  lVar4 = DAT_182671c40;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar3 + -0x5e8) | uVar27 ^ *(ulonglong *)(lVar3 + -0xc90);
  uVar27 = CONCAT44(DAT_182671d98,DAT_182671d98);
  uVar26 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar3 + -0x510) = uVar33 ^ uVar27;
  uVar12 = DAT_182671ee8;
  *(ulonglong *)(lVar3 + -0x960) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0xd88)) - (CONCAT44(uVar24,uVar8) ^ 0xff491f907ec9384a) ^
       uVar26;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xfff9fd5f)) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0xfff9f2bf)) ^ uVar26) - uVar33 ^ uVar28;
  uVar33 = CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar26 = (uVar27 ^ *(ulonglong *)(lVar4 + -0x510)) + (CONCAT44(uVar7,uVar7) ^ 0xf7147b787fd3a20d)
           ^ uVar33;
  *(ulonglong *)(lVar4 + -0xa08) = uVar26;
  *(ulonglong *)(lVar4 + -0x228) = CONCAT44(uVar8,uVar8) ^ uVar26 ^ uVar33 ^ 0xaeec1272d462473d;
  uVar37 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar4 + -0x888) =
       uVar37 ^ uVar26 ^ uVar33 ^ uVar42 ^ *(ulonglong *)(lVar4 + -0xa78);
  uVar12 = DAT_182671d34;
  uVar11 = DAT_182671c8c;
  *(ulonglong *)(lVar4 + -0xbd8) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0x71785336)) ^ CONCAT44(uVar24,uVar8) ^ uVar36 ^
       0x69836c3e7034dae4;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xc90) = (*puVar22 ^ uVar37) >> (((byte)uVar8 ^ 0xda) & 0x3f) ^ uVar26;
  puVar38 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0xefc5f7ec));
  *puVar38 = (*(ulonglong *)(lVar4 + -0x110) ^ uVar35) + (uVar40 ^ 0x69f01b554e4c2fe4);
  uVar33 = (uVar37 ^ *(ulonglong *)(lVar4 + -0x888)) << ((bVar19 ^ 0x35) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd88) = uVar33 ^ CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar10 = DAT_182671c80;
  *(undefined1 *)(lVar4 + -0x6b9) = **(undefined1 **)(lVar4 + -0x758);
  uVar12 = DAT_182671e64;
  *(ulonglong *)(lVar4 + -0x960) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x103c054b)) ^ uVar26 | uVar33) ^ uVar30;
  uVar6 = DAT_182671c7c;
  uVar9 = DAT_182671c6c;
  lVar3 = DAT_182671c40;
  uVar35 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0xa78)) -
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar10 ^ 0x44523a99)) ^ uVar30) ^ uVar35;
  uVar2 = DAT_182671e18;
  lVar4 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671e18;
  uVar26 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar3 + -0x228) =
       CONCAT44(uVar10,uVar7) ^ 0xa9aedadab28ab50e | CONCAT44(uVar9,uVar6) ^ 0x4899f758a152f283;
  uVar34 = CONCAT44(uVar2,uVar2);
  puVar23 = (ulonglong *)(lVar3 - (uVar26 ^ 0xefea5524));
  uVar37 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar40 = uVar34 ^ uVar28 ^ uVar43 ^ *(ulonglong *)(lVar3 + -0x680) ^ *puVar23;
  *(ulonglong *)(lVar3 + -0xa08) = uVar40;
  uVar12 = DAT_182671e20;
  uVar26 = (ulonglong)DAT_182671c8c;
  uVar36 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar42 = (*(ulonglong *)(lVar3 - (uVar41 ^ 0x71785106)) >> 0x20 ^ uVar33) >> 5;
  *(ulonglong *)(lVar4 + -0xc38) = uVar42 ^ uVar37;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xbd8) = (uVar34 ^ uVar40) << ((bVar39 ^ 0x15) & 0x3f) ^ uVar36;
  uVar13 = DAT_182671f0c;
  *puVar38 = (*(ulonglong *)(lVar4 - (uVar26 ^ 0x103c0203)) ^ uVar36 | uVar42) ^ uVar33;
  uVar12 = DAT_182671cd8;
  uVar2 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c74;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0x680)) -
       (uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) ^ uVar34;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x888) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0xf4840e6c)) ^ uVar28 ^ uVar33 ^ uVar35 ^
       *(ulonglong *)(lVar3 + -0x5e8);
  uVar25 = DAT_182671c70;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x7178579e)) =
       (CONCAT44(uVar8,uVar6) ^ 0x3743ce3a6864fb33) + (uVar37 ^ *(ulonglong *)(lVar3 + -0xc38));
  uVar16 = DAT_182671f98;
  uVar6 = DAT_182671c6c;
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x888)) >> (((byte)uVar25 ^ 200) & 0x3f) ^ uVar27;
  uVar33 = (uVar28 ^ *(ulonglong *)(lVar3 + -0x888)) << (((byte)uVar6 ^ 7) & 0x3f);
  uVar26 = (ulonglong)DAT_182671c48;
  uVar43 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(lVar3 + -0xa78) = uVar33 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0x228) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x4261870c)) ^ uVar27 | uVar33) ^ uVar43;
  uVar12 = DAT_182671f14;
  uVar6 = DAT_182671c84;
  uVar33 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar26 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar3 + -0xda8) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x510)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0x7dff6628)) ^ uVar43) ^ uVar33;
  lVar3 = DAT_182671c40;
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar27 = CONCAT44(uVar11,DAT_182671c7c);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0xffd65b5f)) =
       *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xc3f33b35)) ^ uVar35 ^ uVar34 ^
       *(ulonglong *)(DAT_182671c40 + -0x960) ^ uVar30;
  uVar15 = DAT_182671e38;
  *(ulonglong *)(lVar3 + -0xbd8) =
       uVar27 ^ 0x1122c4813148e217 | uVar33 ^ *(ulonglong *)(lVar3 + -0xda8);
  uVar12 = DAT_182671c94;
  uVar42 = CONCAT44(uVar15,uVar15);
  uVar36 = (uVar35 ^ *(ulonglong *)(lVar3 + -0xa08)) >> (((byte)uVar6 ^ 0x7f) & 0x3f);
  uVar26 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar3 + -0x680) = uVar36 ^ uVar42;
  uVar6 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  bVar1 = (byte)DAT_182671c74;
  uVar35 = (uVar35 ^ *(ulonglong *)(DAT_182671c40 + -0xa08)) << ((bVar1 ^ 100) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar35 ^ uVar26;
  uVar11 = DAT_182671c90;
  lVar4 = DAT_182671c40;
  uVar27 = CONCAT44(uVar24,DAT_182671c6c);
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0x103c0153)) ^ uVar28 |
       CONCAT44(uVar8,uVar6) ^ 0x65ae4757b647b7d5;
  uVar26 = (ulonglong)DAT_182671c50;
  uVar40 = (ulonglong)DAT_182671c68;
  uVar30 = CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar36 = (uVar36 | uVar35) ^ uVar30;
  *(uint *)(lVar4 + -0x5d4) = (uVar11 ^ 0xd5efe3cd) + *(int *)(lVar4 + -0x94);
  uVar14 = DAT_182671f3c;
  *(ulonglong *)(lVar4 + -0xc90) = uVar36;
  uVar13 = DAT_182671f18;
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar26 = *(ulonglong *)(lVar4 - (uVar26 ^ 0xc3f336b5));
  uVar36 = uVar30 ^ uVar42 ^ uVar33 ^ *(ulonglong *)(lVar4 + -0xda8) ^ uVar36;
  bVar18 = (byte)DAT_182671c60;
  *(ulonglong *)(lVar4 + -0x960) = uVar36;
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xd88) =
       (uVar34 ^ *(ulonglong *)(lVar4 + -0x110)) - (uVar26 ^ uVar30) ^ uVar28;
  *(ulonglong *)(lVar4 + -0x510) =
       (uVar27 ^ 0xf6f24f91c9d9a408) >> (((byte)uVar16 ^ *(byte *)(lVar4 + -0xa78)) & 0x3f);
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xdf5ff2a5)) =
       (uVar36 ^ uVar42) >> ((bVar18 ^ 0x10) & 0x3f) ^ uVar35;
  *(undefined8 *)(lVar4 + -0xa08) = 0x1c6abbc3498026b1;
  *puVar22 = (uVar42 ^ *(ulonglong *)(lVar4 + -0x960)) << 0xc ^ uVar32;
  uVar25 = DAT_182671c74;
  uVar42 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c74 ^ 0xf4840744)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c8c ^ 0x103c0153)) ^ uVar32 |
       uVar35 ^ *(ulonglong *)(lVar4 + -0xbd8)) ^ uVar42;
  uVar13 = DAT_182671ed4;
  uVar2 = DAT_182671c48;
  uVar34 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar4 + -0x680) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0xda8)) - (uVar42 ^ *(ulonglong *)(lVar4 + -0xc38)) ^
       uVar34;
  uVar6 = DAT_182671c50;
  uVar36 = (ulonglong)DAT_182671c50;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x5e8) =
       uVar27 ^ uVar28 ^ uVar43 ^ *(ulonglong *)(lVar4 + -0x228) ^ *(ulonglong *)(lVar4 + -0xd88);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c70 ^ 0x7df95ecf)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0xbd8)) << (((byte)uVar2 ^ 0x8a) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) >> ((bVar19 ^ 0x37) & 0x3f) ^ uVar33;
  uVar13 = DAT_182671cb4;
  *(ulonglong *)(lVar3 + -0x510) =
       (CONCAT44(uVar12,uVar7) ^ 0x86284bae8a57222a) -
       (CONCAT44(uVar10,DAT_182671c6c) ^ 0xbed2776a4352b822);
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar26 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xf48407ec)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0x42618f6c)) ^ uVar27) << ((bVar1 ^ 0x7b) & 0x3f)
       ^ uVar32;
  uVar13 = DAT_182671e74;
  uVar25 = DAT_182671cc0;
  uVar35 = uVar32 ^ *(ulonglong *)(lVar3 + -0xc90) | uVar33 ^ *(ulonglong *)(lVar3 + -0xa78);
  uVar40 = (ulonglong)DAT_182671cc0;
  uVar27 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar30 = uVar35 ^ uVar27;
  *(ulonglong *)(lVar3 + -0xa08) = uVar30;
  uVar33 = CONCAT44(uVar13,uVar13);
  *(uint *)(lVar3 + -0x58c) = uVar11 ^ 0x54518133 | *(uint *)(lVar3 + -0x76c);
  *(ulonglong *)(lVar3 + -0x888) = (uVar28 ^ *(ulonglong *)(lVar3 + -0xd88)) - uVar35 ^ uVar33;
  uVar13 = DAT_182671e50;
  uVar28 = CONCAT44(uVar25,uVar25);
  uVar27 = *(ulonglong *)(lVar3 - (uVar26 ^ 0xefc3f0a4)) ^ uVar34 ^ uVar30 ^ uVar28 ^ uVar27;
  *(ulonglong *)(lVar3 + -0xda8) = uVar27;
  uVar14 = DAT_182671dd8;
  uVar2 = DAT_182671c7c;
  uVar27 = (uVar40 << 0x12 | (ulonglong)(uVar25 >> 0xe)) ^ uVar27 >> 0xe;
  *(ulonglong *)(lVar3 + -0x228) = uVar27 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671d8c;
  uVar26 = (uVar28 ^ *puVar23) << (((byte)uVar2 ^ 0x49) & 0x3f);
  *(ulonglong *)(lVar3 + -0x110) = uVar26 ^ CONCAT44(uVar14,uVar14);
  uVar27 = uVar27 | uVar26;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar27 ^ uVar32;
  uVar14 = DAT_182671f38;
  uVar2 = DAT_182671c88;
  uVar26 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0x7178598e)) ^ uVar34) -
           (CONCAT44(uVar7,DAT_182671c78) ^ 0x51b6678b67259abd);
  *(ulonglong *)(lVar3 + -0x510) = uVar26 ^ CONCAT44(uVar13,uVar13);
  uVar25 = DAT_182671c84 ^ 0x66b73e97;
  uVar40 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar26 - uVar27 ^ uVar40;
  *(uint *)(lVar3 - ((ulonglong)uVar2 ^ 0xefea5efc)) = uVar25 * *(int *)(lVar3 + -0x54);
  uVar30 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar26 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar27 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar3 + -0xa78) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0xbd8)) - (CONCAT44(uVar9,uVar2) ^ 0x7ba3c3a5511b0801) ^
       uVar30;
  *(ulonglong *)(lVar3 + -0xc90) = *(ulonglong *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x610)) ^ uVar26;
  lVar4 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671e68,DAT_182671e68);
  uVar29 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c5c ^ 0xefc5ff8c)) =
       *(ulonglong *)(lVar3 - (uVar36 ^ 0xc3f3361d)) ^ uVar42 ^ *(ulonglong *)(lVar3 + -0x888) ^
       uVar35 ^ uVar33;
  uVar26 = *(ulonglong *)(lVar4 + -0xd88);
  local_c0 = (byte)uVar15;
  bVar19 = (byte)DAT_182671c8c;
  *(longlong *)(lVar3 + -0xa08) =
       -0x3156d482cdce8c5d << ((*(byte *)(lVar3 - (uVar29 ^ 0x103c00bb)) ^ local_c0) & 0x3f);
  uVar13 = DAT_182671dc8;
  uVar27 = (uVar35 ^ *(ulonglong *)(lVar3 + -0xd88)) >> ((bVar19 ^ 0xcb) & 0x3f);
  uVar26 = (uVar35 ^ uVar26) << ((bVar39 ^ 0x3e) & 0x3f);
  *(ulonglong *)(lVar3 + -0xda8) = uVar27 ^ CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar4 + -0x228) = uVar26 ^ uVar37;
  uVar14 = DAT_182671e4c;
  uVar2 = DAT_182671c80;
  uVar36 = (ulonglong)DAT_182671c6c;
  uVar37 = CONCAT44(uVar13,uVar13);
  puVar22 = (ulonglong *)(lVar4 - (uVar31 ^ 0xfff9facf));
  *puVar22 = (uVar27 | uVar26) ^ uVar37;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x443548ae)) =
       (*(ulonglong *)(lVar4 + -0x888) ^ uVar33) - (CONCAT44(uVar12,uVar2) ^ 0x6d6023e41facb648) ^
       uVar26;
  uVar13 = DAT_182671d74;
  uVar36 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *(ulonglong *)(lVar4 + -0x510) =
       (*(ulonglong *)(lVar4 + -0x680) ^ uVar26) - (*(ulonglong *)(lVar4 + -0x110) ^ uVar37) ^
       uVar36;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar26 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (*(ulonglong *)(lVar4 + -0x110) ^ uVar37) + (CONCAT44(uVar8,uVar7) ^ 0x59bc77edb79f99cc) ^
       uVar35;
  uVar27 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  uVar2 = DAT_182671c88 >> 0x15;
  uVar26 = *(ulonglong *)(lVar4 - (uVar26 ^ 0x44523821)) ^ *(ulonglong *)(lVar4 + -0x5e8) ^ uVar27 ^
           uVar35 ^ uVar40;
  *(ulonglong *)(lVar4 + -0xc90) = uVar26;
  uVar13 = DAT_182671ce8;
  *(ulonglong *)(lVar4 + -0xc38) = (uVar29 << 0xb | (ulonglong)uVar2) ^ 0x3b66acf2216;
  uVar25 = DAT_182671c70;
  uVar37 = (ulonglong)DAT_182671c70;
  uVar33 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xa08) = (uVar26 ^ uVar27) >> ((bVar39 ^ 0x2e) & 0x3f) ^ uVar33;
  *(undefined1 *)(lVar4 - (uVar37 ^ 0x7df95d36)) = **(undefined1 **)(lVar4 + -0xb90);
  lVar3 = DAT_182671c40;
  uVar26 = (*(ulonglong *)(DAT_182671c40 + -0xc90) ^ uVar27) <<
           (((byte)DAT_182671c94 ^ 0x72) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (uVar35 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) >> (((byte)uVar25 ^ 199) & 0x3f);
  *(ulonglong *)(lVar3 + -0x960) = uVar26 ^ uVar34;
  uVar13 = DAT_182671d04;
  lVar3 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c7c ^ 0xbd9e78d3)) =
       (*(ulonglong *)(DAT_182671c40 + -0xa08) ^ uVar33 | uVar26) ^ uVar27;
  uVar33 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  *(ulonglong *)(lVar3 + -0x228) =
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar40) - (*(ulonglong *)(lVar3 + -0xda8) ^ uVar27) ^
       uVar33;
  uVar7 = DAT_182671c5c;
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar40) <<
       ((*(byte *)(lVar3 - (uVar41 ^ 0x717856a6)) ^ (byte)uVar13) & 0x3f);
  uVar10 = DAT_182671c84;
  uVar8 = DAT_182671c60;
  uVar27 = CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar29 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xf6d4c97e)) =
       uVar27 ^ uVar36 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0xa78) ^ *(ulonglong *)(lVar3 + -0x510);
  uVar2 = DAT_182671c48;
  uVar35 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *puVar22 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0xffd657d7)) ^ uVar27) >> (((byte)uVar8 ^ 4) & 0x3f)
             ^ uVar35;
  uVar37 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar3 + -0xc38) =
       (CONCAT44(uVar9,uVar7) ^ 0xb24187da83cca88) >> (((byte)uVar2 ^ 0x83) & 0x3f);
  uVar14 = DAT_182671f78;
  uVar13 = DAT_182671d60;
  lVar4 = DAT_182671c40;
  uVar26 = *(ulonglong *)(DAT_182671c40 + -0x510);
  uVar27 = (*puVar21 ^ uVar27) << (((byte)DAT_182671c78 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc90) = uVar27 ^ uVar37;
  lVar5 = DAT_182671c40;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar27 = *(ulonglong *)(lVar3 + -0x110) ^ uVar35 | uVar27;
  uVar35 = uVar27 ^ uVar37;
  *(uint *)(lVar4 + -0x5d4) = (uVar7 ^ 0x60000000) >> 0x1d;
  *(ulonglong *)(lVar5 + -0xbd8) = uVar35;
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 + -0x228) ^ uVar33) - (CONCAT44(uVar12,uVar25) ^ 0xf724a07e73a7e3a4);
  uVar12 = DAT_182671d48;
  *(ulonglong *)(lVar4 + -0xa08) = (uVar36 ^ uVar26) - uVar27 ^ CONCAT44(uVar13,uVar13);
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar33 = uVar35 ^ uVar26 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0x228) ^ uVar33;
  uVar27 = CONCAT44(DAT_182671e94,DAT_182671e94);
  *(ulonglong *)(lVar4 + -0x960) = uVar33;
  uVar36 = (uVar33 ^ uVar26) >> (((byte)uVar10 ^ 0x6d) & 0x3f);
  *(ulonglong *)(lVar4 + -0x5e8) = uVar36 ^ uVar28;
  uVar33 = (*(ulonglong *)(lVar4 - (uVar29 ^ 0xffd65837)) ^ uVar26) << (((byte)uVar8 ^ 0x22) & 0x3f)
  ;
  uVar26 = CONCAT44(uVar6,DAT_182671c88);
  *(ulonglong *)(lVar4 + -0x888) = uVar33 ^ uVar27;
  *(ulonglong *)(lVar4 + -0xa78) = uVar26 ^ 0xad79fafea3d4903b;
  uVar26 = (ulonglong)DAT_182671c8c;
  uVar27 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar20;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x103c05e3)) = (uVar36 | uVar33) ^ uVar27;
  return;
}



############ FUN_ 181018960 size=4378 ############

void FUN_181018960(void)

{
  uint *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte bVar16;
  ulonglong uVar17;
  uint *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  byte *pbVar22;
  ulonglong uVar23;
  uint *puVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint *puVar40;
  byte local_a0;
  
  uVar7 = DAT_182671c80;
  uVar28 = DAT_182671c78;
  uVar30 = DAT_182671c68;
  uVar12 = DAT_182671c64;
  uVar6 = DAT_182671c5c;
  lVar4 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671c80;
  uVar25 = DAT_182671c68 * DAT_182671c48;
  uVar32 = DAT_182671c78 * DAT_182671c84;
  uVar39 = DAT_182671c80 - DAT_182671c8c;
  uVar23 = (ulonglong)DAT_182671c64;
  uVar26 = DAT_182671c5c | DAT_182671c64;
  uVar37 = (DAT_182671c4c << 0x10 | DAT_182671c4c & 0xff00) << 8 | DAT_182671c4c >> 8 & 0xff00 |
           DAT_182671c4c >> 0x18;
  uVar13 = (ulonglong)DAT_182671c68;
  uVar11 = *(uint *)(&DAT_182613210 + (uVar13 ^ 0x1000008) + (longlong)DAT_1826720f4) ^
           DAT_182671c48;
  uVar2 = *(uint *)(&DAT_182613220 + DAT_1826720f4);
  uVar17 = (ulonglong)uVar26;
  uVar21 = (DAT_182671dd4 ^ *(uint *)(DAT_182671c40 + -0x5d4)) +
           (DAT_182671fb0 ^ *(uint *)(DAT_182671c40 + -0x684)) ^ DAT_182671d0c;
  DAT_182671c50 = uVar32;
  DAT_182671c58 = uVar37;
  DAT_182671c6c = uVar39;
  DAT_182671c70 = uVar25;
  DAT_182671c88 = uVar26;
  *(uint *)(DAT_182671c40 + -0x4ac) = uVar21;
  lVar5 = DAT_182671c40;
  *(uint *)(lVar4 - (uVar17 ^ 0xf8fd5fc3)) = uVar21 ^ DAT_182671dd8 ^ DAT_182671d0c;
  *(uint *)(lVar4 + -0xae4) = *(uint *)(lVar4 + -0x58c) ^ DAT_182671f2c ^ DAT_182671db4;
  uVar34 = DAT_182671e60;
  *(uint *)(lVar5 - ((ulonglong)uVar12 ^ 0xb87859e7)) =
       *(uint *)(lVar4 + -0x54) ^ DAT_182671e60 ^ DAT_182671dd8;
  uVar29 = DAT_182671e94;
  lVar4 = DAT_182671c40;
  uVar14 = (ulonglong)uVar32;
  puVar18 = (uint *)(lVar5 - (uVar14 ^ 0x5bc59ce4));
  uVar36 = (ulonglong)DAT_182671d68;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c84 ^ 0x87c7ea30)) =
       *puVar18 ^ DAT_182671e94 ^ DAT_182671f2c;
  uVar15 = (ulonglong)uVar6;
  pbVar22 = (byte *)(*(longlong *)(lVar4 - (uVar15 ^ 0x608d47bc)) +
                     (CONCAT44(uVar37,uVar12) ^ 0x9f5fbdffb8785f98) +
                    (CONCAT44(uVar30,uVar28) ^ 0x1000000874768a0) * 0x20);
  *(ulonglong *)(lVar4 + -0xc50) = (ulonglong)pbVar22 ^ uVar36;
  *(uint *)(lVar4 + -0x76c) = *(uint *)(lVar4 + -0x6c0) ^ uVar29 | 0x8de7903e;
  uVar28 = DAT_182671ef8;
  bVar16 = (byte)DAT_182671e88;
  bVar3 = (byte)DAT_182671c4c;
  uVar36 = (ulonglong)DAT_182671ef8;
  *(byte *)(lVar4 + -0x5ba) = *pbVar22 ^ (byte)DAT_182671e88 ^ (byte)DAT_182671e0c;
  uVar21 = DAT_182671f0c;
  *(byte *)(*(ulonglong *)(lVar4 + -600) ^ uVar36) = bVar3 ^ 0x9b;
  lVar5 = DAT_182671c40;
  puVar1 = (uint *)(DAT_182671c40 + -0x6c0);
  *(uint *)(DAT_182671c40 + -0x94c) =
       (*(byte *)(lVar4 - ((ulonglong)uVar7 ^ 0x68a082fd)) ^ bVar16) ^ uVar21;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c8c ^ 0x7838116c)) =
       (*puVar1 ^ uVar29) + (uVar39 ^ 0x6c2a6629) ^ uVar28;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c84 ^ 0x87c7ed38)) =
       (uVar21 ^ *(uint *)(DAT_182671c40 + -0x94c)) << (((byte)uVar25 ^ 0x11) & 0x1f) ^
       DAT_182671e54;
  lVar4 = DAT_182671c40;
  puVar1 = (uint *)(DAT_182671c40 + -0x670);
  *(uint *)(DAT_182671c40 + -0x634) =
       (*(uint *)(DAT_182671c40 + -0x27c) ^ uVar28) -
       (*(uint *)(DAT_182671c40 + -0x1c8) ^ DAT_182671e54) ^ DAT_182671e24;
  *(longlong *)(lVar4 + -0xa70) = *(longlong *)(lVar4 - (uVar38 ^ 0x68a080af)) << 0x13;
  uVar35 = DAT_182671c4c;
  lVar5 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671c4c;
  uVar27 = (*(uint *)(lVar4 - ((ulonglong)DAT_182671c8c ^ 0x78381524)) ^ DAT_182671e24) *
           (*puVar1 ^ uVar34) ^ DAT_182671f98;
  *(uint *)(DAT_182671c40 + -0x94) = uVar27;
  uVar28 = DAT_182671c48;
  lVar4 = DAT_182671c40;
  uVar27 = uVar27 ^ DAT_182671f98;
  bVar16 = (byte)DAT_182671c84 ^ 0xfd;
  uVar21 = (*(uint *)(lVar5 - (uVar36 ^ 0xffbd56d3)) ^ uVar21) * (uVar37 ^ 0x9f5fbdf0) ^
           DAT_182671db8;
  *(uint *)(DAT_182671c40 + -0x61c) = uVar21;
  uVar8 = DAT_182671e28;
  uVar27 = (uVar21 ^ DAT_182671db8) + uVar27;
  *(uint *)(lVar4 + -0x684) = uVar27 ^ DAT_182671e28;
  uVar21 = DAT_182671c48;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar28 ^ 0x20084abf)) = uVar27 << (bVar16 & 0x1f) ^ uVar29;
  uVar27 = DAT_182671d80;
  lVar4 = DAT_182671c40;
  local_a0 = (byte)uVar6;
  puVar24 = (uint *)(DAT_182671c40 + -0x684);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (CONCAT44(uVar35,uVar21) ^ 0x6b8668c75dc6a50) << ((local_a0 ^ 0x1f) & 0x3f);
  uVar28 = (uVar8 ^ *puVar24) >> (((byte)uVar12 ^ 0x84) & 0x1f);
  *(uint *)(lVar4 + -0x58c) = uVar28 ^ uVar27;
  uVar36 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 + -0x2b0) = *(ulonglong *)(lVar4 + -0xa70) ^ 0x451e727cf3ae07c9;
  *(uint *)(lVar4 + -0x54) = (*(uint *)(lVar4 + -0x4ac) ^ uVar29 | uVar28) ^ DAT_182671df8;
  *(uint *)(lVar4 + -0xae4) =
       *(uint *)(lVar4 - (uVar36 ^ 0x8747617c)) ^ DAT_182671eb4 |
       *(uint *)(lVar4 + -0x94) ^ DAT_182671f98;
  uVar28 = (*puVar1 ^ uVar34) + (DAT_182671dd4 ^ *(uint *)(lVar4 + -0x5d4)) ^ DAT_182671f34;
  *(uint *)(lVar4 + -0x76c) = uVar28;
  uVar8 = DAT_182671cac;
  uVar28 = uVar28 ^ DAT_182671eb0 ^ DAT_182671f34;
  *(uint *)(lVar4 + -0x6c0) = uVar28;
  uVar28 = uVar28 ^ uVar8 ^ DAT_182671eb0;
  *(uint *)(lVar4 + -0x27c) =
       *(uint *)(lVar4 - (uVar14 ^ 0x5bc59654)) ^ DAT_182671f54 ^ DAT_182671df8;
  uVar36 = (ulonglong)DAT_182671c78;
  *(uint *)(lVar4 + -0x1c8) = uVar28;
  *(uint *)(lVar4 + -0x634) =
       *(uint *)(lVar4 - (uVar36 ^ 0x87476adc)) ^ DAT_182671cc8 ^ DAT_182671f54;
  uVar28 = DAT_182671c4c;
  uVar36 = (ulonglong)uVar25;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x13000030)) =
       CONCAT44(uVar6,DAT_182671c4c) ^ *(ulonglong *)(lVar4 + -0x888) ^ 0xd37be26035cf6f85;
  uVar34 = DAT_182671e7c;
  uVar35 = DAT_182671c84;
  uVar19 = (ulonglong)DAT_182671cd4;
  uVar20 = (ulonglong)DAT_182671e7c;
  *(ulonglong *)(lVar4 + -0x6a8) =
       (CONCAT44(DAT_182671c84,DAT_182671c8c) ^ 0x87c7ecf07838130a) +
       (CONCAT44(uVar30,uVar39) ^ 0x1000000f0687437) * 0x20 + *(longlong *)(lVar4 + -0x9a8) ^ uVar19
  ;
  bVar3 = (byte)DAT_182671d00;
  lVar4 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0xc51) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar28 ^ 0xffbd5937)) ^ uVar19) ^
       (byte)DAT_182671d00 ^ (byte)DAT_182671e0c;
  *(undefined1 *)(*(ulonglong *)(lVar4 - (uVar14 ^ 0x5bc596f8)) ^ uVar20) = 0xb4;
  uVar21 = DAT_182671e84;
  uVar28 = DAT_182671c48;
  uVar29 = (uint)(bVar3 ^ *(byte *)(lVar4 + -0xc51));
  *(uint *)(lVar4 + -0x94c) = uVar29 ^ DAT_182671e84;
  lVar5 = DAT_182671c40;
  uVar33 = (*(uint *)(lVar4 + -0x634) ^ DAT_182671cc8) + (uVar30 ^ 0x9d42121e) ^ DAT_182671f0c;
  uVar30 = uVar29 << (((byte)uVar28 ^ 2) & 0x1f) ^ DAT_182671f1c;
  uVar28 = *(uint *)(DAT_182671c40 + -0x1c8);
  *(uint *)(DAT_182671c40 + -0x61c) = uVar33;
  uVar33 = uVar33 ^ DAT_182671f0c;
  *(uint *)(lVar5 + -0x684) = uVar30;
  uVar30 = uVar33 - (uVar30 ^ DAT_182671f1c) ^ DAT_182671d34;
  *(uint *)(lVar5 + -0x4ac) = uVar30;
  uVar30 = (uVar30 ^ DAT_182671d34) * (uVar28 ^ uVar8);
  *(uint *)(lVar5 + -0x58c) = uVar30 ^ uVar27;
  uVar27 = DAT_182671d6c;
  *(uint *)(lVar5 + -0x9dc) = *(uint *)(lVar5 - (uVar17 ^ 0xf8fd5e5f)) ^ uVar8 | uVar37 ^ 0xda1b20b5
  ;
  *(uint *)(lVar5 + -0xae4) =
       (*(uint *)(lVar5 - (uVar36 ^ 0x1300094c)) ^ uVar21) * (uVar7 ^ 0x68a0875d) ^ DAT_182671f00;
  uVar28 = DAT_182671c4c;
  uVar30 = (*(uint *)(lVar5 - (uVar15 ^ 0x608d44f0)) ^ DAT_182671f00) + uVar30;
  *(uint *)(lVar5 + -0x94) = uVar30 ^ uVar27;
  puVar40 = (uint *)(lVar5 - (uVar15 ^ 0x608d4864));
  bVar3 = (byte)DAT_182671c88;
  *puVar40 = uVar30 << (((byte)uVar28 ^ 0x92) & 0x1f) ^ DAT_182671cb0;
  uVar7 = DAT_182671f6c;
  uVar31 = (ulonglong)DAT_182671f6c;
  uVar19 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar5 - ((ulonglong)uVar28 ^ 0xffbd58f3)) =
       (*(uint *)(lVar5 + -0x94) ^ uVar27) >> ((bVar3 ^ 0x84) & 0x1f) ^ DAT_182671f88;
  uVar21 = DAT_182671c78;
  uVar20 = (ulonglong)DAT_182671c78;
  uVar33 = (*(uint *)(lVar5 - (uVar19 ^ 0x78381560)) ^ DAT_182671cb0 |
           *(uint *)(lVar5 + -0x76c) ^ DAT_182671f88) ^ uVar34;
  *(uint *)(lVar5 + -0x54) = uVar33;
  uVar29 = DAT_182671f04;
  uVar30 = (*(uint *)(lVar5 - (uVar20 ^ 0x87476968)) ^ uVar8) +
           (DAT_182671dd4 ^ *(uint *)(lVar5 + -0x5d4)) ^ DAT_182671ce0;
  *(uint *)(lVar5 + -0x6c0) = uVar30;
  *(uint *)(lVar5 + -0x27c) = uVar30 ^ DAT_182671ec4 ^ DAT_182671ce0;
  bVar3 = (byte)DAT_182671d20;
  *(uint *)(lVar5 - (uVar38 ^ 0x68a08173)) = uVar33 ^ uVar7 ^ uVar34;
  lVar4 = DAT_182671c40;
  *(uint *)(lVar5 - ((ulonglong)uVar21 ^ 0x87476ebc)) =
       *(uint *)(lVar5 + -0x27c) ^ uVar29 ^ DAT_182671ec4;
  uVar30 = DAT_182671cf4;
  pbVar22 = (byte *)((CONCAT44(uVar6,uVar39) ^ 0x608d4e14f0687432) + *(longlong *)(lVar5 + -0x9a8));
  uVar21 = *(uint *)(lVar5 + -0x634) ^ DAT_182671cf4;
  *(ulonglong *)(lVar5 + -0x690) = (ulonglong)pbVar22 ^ uVar31;
  *(uint *)(lVar5 + -0x684) = uVar21 ^ uVar7;
  *(byte *)(lVar5 + -0x729) = *pbVar22 ^ bVar3 ^ (byte)DAT_182671e0c;
  *(undefined1 *)(*(ulonglong *)(lVar5 + -0x1b0) ^ (ulonglong)DAT_182671d90) = 2;
  uVar7 = DAT_182671db0;
  uVar34 = (uint)(bVar3 ^ *(byte *)(lVar5 + -0x729));
  *(uint *)(lVar4 + -0x4ac) = uVar34 ^ DAT_182671db0;
  uVar8 = DAT_182671e70;
  uVar21 = DAT_182671c90;
  uVar33 = DAT_182671c90 << 0x10 | DAT_182671c90 >> 0x10;
  *(ulonglong *)(lVar4 + -0xb18) =
       (CONCAT44(uVar26,uVar35) ^ 0xeb568453d9f424d8) +
       *(longlong *)(lVar4 - ((ulonglong)uVar37 ^ 0x9f5fb16f));
  *(uint *)(lVar4 + -0x9dc) =
       (uVar30 ^ *(uint *)(lVar4 + -0x684)) + (uVar33 ^ 0x18cbce92) ^ DAT_182671f44;
  uVar35 = uVar34 << (((byte)uVar21 ^ 0x98) & 0x1f) ^ DAT_182671da0;
  *(uint *)(lVar4 + -0x94c) = uVar35;
  DAT_182671c94 = uVar33;
  *(uint *)(lVar4 - ((ulonglong)uVar21 ^ 0xdc8c8105)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar33 ^ 0x8489d550)) ^ DAT_182671f44) -
       (uVar35 ^ DAT_182671da0) ^ DAT_182671f7c;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar39 ^ 0xf0687e3f)) =
       (CONCAT44(uVar21,uVar33) ^ 0x45cd7fbfc1527603) << (((byte)(uVar21 >> 0x10) ^ 0x99) & 0x3f);
  *(uint *)(lVar4 + -0xae4) =
       (*(uint *)(lVar4 + -0x61c) ^ uVar29) * (*(uint *)(lVar4 + -0x58c) ^ DAT_182671f7c) ^ uVar8;
  *(uint *)(lVar4 - (uVar38 ^ 0x68a087d3)) =
       (*(uint *)(lVar4 - (uVar23 ^ 0xb8785b3b)) ^ uVar7) * (uVar21 ^ 0xdc8c848c) ^ DAT_182671de0;
  *(ulonglong *)(lVar4 + -0x760) =
       (CONCAT44(uVar33,uVar21) ^ 0x9c4e06de1686b337) + *(longlong *)(lVar4 - (uVar36 ^ 0x13000960))
  ;
  uVar30 = DAT_182671ec0;
  *(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0xffbd59ef)) =
       (uVar8 ^ *puVar18) + (*(uint *)(lVar4 + -0x94) ^ DAT_182671de0) ^ DAT_182671ec0;
  uVar19 = (ulonglong)DAT_182671c48;
  *(longlong *)(lVar4 + -0xf0) =
       *(longlong *)(lVar4 + -0x960) << (((byte)DAT_182671c48 ^ 0xb) & 0x3f);
  *(uint *)(lVar4 + -0x76c) = (uVar30 ^ *puVar1) << (bVar16 & 0x1f) ^ DAT_182671d40;
  uVar35 = DAT_182671ce4;
  uVar28 = DAT_182671c78;
  *(uint *)(lVar4 - (uVar19 ^ 0x20084fdb)) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_182671c78 ^ 0x87476ed0)) ^ uVar30) >> 0x13 ^ DAT_182671ce4
  ;
  puVar24 = (uint *)(lVar4 - (uVar23 ^ 0xb8785957));
  *puVar24 = (DAT_182671c88 ^ 0xc79c604a) * 0x7455d853;
  *(uint *)(lVar4 - (uVar13 ^ 0x1000054)) =
       (uVar35 ^ *(uint *)(lVar4 + -0x1c8) | *(uint *)(lVar4 + -0x76c) ^ DAT_182671d40) ^
       DAT_182671cb8;
  uVar8 = DAT_182671f5c;
  uVar7 = DAT_182671f48;
  uVar35 = DAT_182671d38;
  lVar5 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671ec8;
  uVar30 = (*(uint *)(lVar4 - (uVar15 ^ 0x608d4bc0)) ^ DAT_182671dd4) +
           (*(uint *)(lVar4 + -0x61c) ^ uVar29) ^ DAT_182671ef8;
  uVar15 = (ulonglong)DAT_182671f48;
  *(uint *)(lVar4 + -0x27c) = uVar30;
  *(uint *)(lVar4 - (uVar19 ^ 0x20084827)) = uVar30 ^ DAT_182671ebc ^ DAT_182671ef8;
  uVar29 = *(uint *)(lVar4 + -0x54) ^ DAT_182671cb8 ^ DAT_182671f98;
  *(uint *)(lVar4 + -0x9dc) = *(uint *)(lVar4 + -0x634) ^ uVar8 ^ DAT_182671ebc;
  uVar34 = DAT_182671f98;
  *(uint *)(lVar4 + -0x684) = uVar29;
  uVar30 = DAT_182671f0c;
  *(uint *)(lVar5 + -0x94c) = uVar34 ^ DAT_182671f0c ^ uVar29;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x68a085d7)) =
       (CONCAT44(uVar12,uVar33) ^ 0xb8785f978489dc8c) * 0x20 +
       (CONCAT44(uVar21,uVar28) ^ 0xdc8c8489874768b0) + *(longlong *)(lVar5 + -0x9a8) ^ uVar36;
  bVar3 = (byte)DAT_182671d44;
  *(ulonglong *)(lVar5 + -0x7c0) =
       *(ulonglong *)(lVar5 - (uVar17 ^ 0xf8fd55e7)) | *(ulonglong *)(lVar5 + -0x110);
  bVar16 = (byte)DAT_182671c78;
  *(byte *)(lVar5 + -0x969) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x290) ^ uVar36) ^ bVar3 ^ (byte)DAT_182671e0c;
  *(byte *)(*(ulonglong *)(lVar5 + -0x260) ^ uVar15) = bVar16 ^ 0x98;
  uVar28 = DAT_182671c8c;
  uVar34 = (uint)(bVar3 ^ *(byte *)(lVar5 + -0x969));
  uVar12 = DAT_182671c48 ^ 0xbc4a5c0d;
  *(uint *)(lVar5 + -0x58c) = uVar34 ^ uVar35;
  *(uint *)(lVar5 + -0x4ac) = (uVar30 ^ *(uint *)(lVar5 + -0x94c)) + uVar12 ^ DAT_182671d1c;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c84 ^ 0x87c7e614)) =
       uVar34 << (((byte)uVar28 ^ 1) & 0x1f) ^ DAT_182671eac;
  *(uint *)(lVar5 + -0x94) =
       (*(uint *)(lVar5 - ((ulonglong)uVar21 ^ 0xdc8c8025)) ^ DAT_182671d1c) -
       (*(uint *)(lVar5 - (uVar38 ^ 0x68a08da3)) ^ DAT_182671eac) ^ DAT_182671cc0;
  *puVar40 = (uVar39 ^ 0x6c2a6629) + 0xca218b34;
  uVar28 = DAT_182671c4c ^ 0xffbd5f8f;
  *puVar24 = (*(uint *)(lVar5 + -0x94) ^ DAT_182671cc0) * (*(uint *)(lVar5 + -0x9dc) ^ uVar8) ^
             DAT_182671ca4;
  *(uint *)(lVar5 - ((ulonglong)uVar37 ^ 0x9f5fba93)) =
       (*(uint *)(lVar5 + -0x58c) ^ uVar35) * uVar28 ^ DAT_182671ea0;
  uVar35 = (*(uint *)(lVar5 - ((ulonglong)uVar39 ^ 0xf06872f7)) ^ DAT_182671ca4) +
           (*(uint *)(lVar5 + -0x76c) ^ DAT_182671ea0);
  *(uint *)(lVar5 + -0x1c8) = uVar35 ^ uVar27;
  uVar28 = uVar35 >> 0x13 ^ DAT_182671ed8;
  *(uint *)(lVar5 + -0x61c) = uVar35 * 0x2000 ^ uVar7;
  *(uint *)(lVar5 + -0x27c) = uVar28;
  *(uint *)(lVar5 + -0x54) = (uVar35 >> 0x13 | uVar35 * 0x2000) ^ DAT_182671f98;
  uVar15 = (ulonglong)DAT_182671d78;
  uVar36 = CONCAT44(DAT_182671c8c,uVar37);
  uVar35 = (*(uint *)(lVar5 - (uVar14 ^ 0x5bc59fdc)) ^ uVar8) +
           (*(uint *)(lVar5 - (uVar14 ^ 0x5bc593d4)) ^ DAT_182671dd4) ^ DAT_182671dc8;
  uVar28 = DAT_182671dfc ^ DAT_182671dc8;
  *(uint *)(lVar5 + -0x634) = uVar35;
  *(uint *)(lVar5 - ((ulonglong)uVar21 ^ 0xdc8c820d)) = uVar28 ^ uVar35;
  uVar28 = DAT_182671e00 ^ DAT_182671dfc;
  *(uint *)(lVar5 + -0x94c) = *(uint *)(lVar5 + -0x54) ^ DAT_182671efc ^ DAT_182671f98;
  *(uint *)(lVar5 - (uVar13 ^ 0x1000ae4)) = uVar28 ^ *(uint *)(lVar5 + -0x684);
  uVar10 = DAT_182671f24;
  *(uint *)(lVar5 - (uVar17 ^ 0xf8fd5b3b)) =
       DAT_182671d18 ^ DAT_182671efc ^ *(uint *)(lVar5 + -0x94c);
  uVar9 = DAT_182671e34;
  pbVar22 = (byte *)((uVar36 ^ 0x783813109f5fbde4) +
                     (CONCAT44(uVar6,uVar25) ^ 0x608d4e1413000000) * 0x20 +
                    *(longlong *)(lVar5 + -0x9a8));
  *(ulonglong *)(lVar5 + -0xa48) = (ulonglong)pbVar22 ^ uVar15;
  uVar28 = DAT_182671c84;
  *(ulonglong *)(lVar5 + -0x408) =
       *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar5 + -0xb98)) ^
       CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 + -0xb98) = CONCAT44(uVar32,uVar25) ^ 0x7e79d096c68337fd;
  bVar3 = (byte)DAT_182671dd0;
  *(byte *)(lVar5 + -0x171) = *pbVar22 ^ (byte)DAT_182671e0c ^ (byte)DAT_182671dd0;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar23 ^ 0xb8785467)) ^ (ulonglong)DAT_182671d5c) =
       (byte)uVar28 ^ 0x95;
  *puVar1 = (bVar3 ^ *(byte *)(lVar5 + -0x171)) ^ DAT_182671dec;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar25) * 4) = uVar11;
  return;
}



############ FUN_ 180fa6410 size=5582 ############

void FUN_180fa6410(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  byte *pbVar4;
  int *piVar5;
  int iVar6;
  undefined8 *puVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  byte bVar34;
  byte bVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte bVar48;
  uint uVar49;
  ulonglong uVar50;
  byte bVar51;
  uint uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte local_b8;
  ulonglong uVar19;
  
  uVar13 = DAT_182671c8c;
  uVar37 = DAT_182671c88;
  uVar12 = DAT_182671c60;
  uVar11 = DAT_182671c58;
  uVar10 = DAT_182671c50;
  lVar8 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c8c;
  uVar31 = (ulonglong)DAT_182671c50;
  uVar25 = (ulonglong)DAT_182671c60;
  uVar46 = (ulonglong)DAT_182671c88;
  uVar17 = DAT_182671c8c * DAT_182671c50;
  uVar19 = (ulonglong)uVar17;
  uVar52 = ~DAT_182671c88;
  uVar29 = DAT_182671c60 << 0x10 | DAT_182671c60 >> 0x10;
  uVar36 = *(uint *)(&DAT_182613218 + DAT_182672288) ^ DAT_182671c8c;
  uVar49 = DAT_182671c58 << 0x10 | DAT_182671c58 >> 0x10;
  uVar18 = *(uint *)(&DAT_182613210 + (uVar19 ^ 0x1add8485) + (longlong)DAT_182672288) ^
           DAT_182671c50;
  uVar41 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar21 = uVar41 ^ *puVar1;
  DAT_182671c54 = uVar49;
  DAT_182671c5c = uVar17;
  DAT_182671c70 = uVar29;
  DAT_182671c7c = uVar52;
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar21 << ((byte)uVar21 & 0x3f);
  uVar41 = (uVar41 ^ *puVar1) << (((byte)uVar12 ^ 0x8a) & 0x3f);
  uVar38 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  puVar2 = (ulonglong *)(lVar8 + -0xc90);
  *puVar2 = 0xf7731166;
  uVar14 = DAT_182671e00;
  uVar21 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar8 + -0x408) = uVar41 ^ uVar38;
  uVar15 = DAT_182671d80;
  lVar9 = DAT_182671c40;
  uVar41 = uVar21 ^ *(ulonglong *)(lVar8 + -0x228) | uVar41;
  uVar53 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 + -0x4b8) = uVar41 ^ uVar53;
  uVar16 = DAT_182671f98;
  uVar14 = DAT_182671cb4;
  uVar22 = CONCAT44(uVar15,uVar15);
  puVar3 = (ulonglong *)(lVar9 + -0x3d8);
  uVar50 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *puVar3 = (uVar22 ^ *(ulonglong *)(lVar9 + -0x30)) - uVar41 ^ uVar50;
  uVar21 = CONCAT44(uVar14,uVar14);
  uVar23 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar41 = (ulonglong)uVar11;
  *(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0x3116051f)) =
       *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x10b882fa)) ^ CONCAT44(uVar16,uVar16) ^ uVar23 ^
       uVar21 ^ *(ulonglong *)(DAT_182671c40 + -0x920);
  uVar14 = DAT_182671de4;
  lVar8 = DAT_182671c40;
  bVar24 = (byte)uVar11;
  uVar38 = (ulonglong)uVar29;
  uVar43 = CONCAT44(DAT_182671de4,DAT_182671de4);
  puVar20 = (ulonglong *)(DAT_182671c40 + -0xb18);
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (uVar21 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) >> ((bVar24 ^ 0xbb) & 0x3f) ^ uVar43;
  uVar26 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar37 ^ 0x3116021f)) =
       (uVar21 ^ *puVar20) << (((byte)uVar13 ^ 0x4a) & 0x3f) ^ uVar26;
  uVar39 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar8 - (uVar25 ^ 0x17ae7a5e)) =
       (uVar26 ^ *(ulonglong *)(lVar8 + -0xc18) | uVar43 ^ *(ulonglong *)(lVar8 + -0x960)) ^ uVar39;
  uVar30 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *puVar2 = (*(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0x1add8eed)) ^ uVar23) - (uVar39 ^ *puVar1) ^
            uVar30;
  uVar15 = DAT_182671f10;
  lVar8 = DAT_182671c40;
  bVar51 = (byte)uVar52;
  uVar44 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar21 = uVar44 ^ uVar39 ^ uVar50 ^ *puVar1 ^ *puVar3;
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar21;
  uVar42 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar8 - (uVar46 ^ 0x31160c2f)) =
       (uVar21 ^ uVar44) >> ((bVar51 ^ 0xf6) & 0x3f) ^ uVar42;
  lVar8 = DAT_182671c40;
  uVar45 = (uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0x408)) << (((byte)uVar12 ^ 0xb4) & 0x3f);
  uVar42 = *(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar42;
  local_b8 = (byte)uVar14;
  pbVar4 = (byte *)(DAT_182671c40 + -0x960);
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar45 ^ CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar45 = uVar45 | uVar42;
  *(ulonglong *)(lVar8 + -0x920) = uVar42 << ((local_b8 ^ *pbVar4) & 0x3f);
  uVar44 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar8 + -0xb18) = uVar45 ^ uVar44;
  *(ulonglong *)(lVar8 + -0xc18) =
       (CONCAT44(uVar13,uVar52) ^ 0x978708cc6ce6509c) << (((byte)uVar10 ^ 0x71) & 0x3f);
  uVar14 = DAT_182671e98;
  uVar42 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar40 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar21 = (uVar50 ^ *puVar3) - (*(ulonglong *)(lVar8 + -0xc38) ^ uVar42);
  *(ulonglong *)(lVar8 + -0xa78) = uVar21 ^ uVar40;
  uVar32 = CONCAT44(uVar14,uVar14);
  *puVar1 = uVar21 - (*(ulonglong *)(lVar8 - (uVar38 ^ 0x71861cb6)) ^ uVar44) ^ uVar32;
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       CONCAT44(uVar12,uVar13) ^ 0x27d6efd1c57a383f | CONCAT44(uVar17,uVar49) ^ 0x969d3ef1f79d40f8;
  uVar27 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar47 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       uVar45 - (*(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x10b8852a)) ^ uVar27) ^ uVar47;
  lVar8 = DAT_182671c40;
  iVar6 = *(int *)(DAT_182671c40 + -0x94);
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (CONCAT44(uVar52,uVar37) ^ 0x3277d6dc6a6a8e6e) -
       (CONCAT44(uVar10,uVar29) ^ 0x2c92d64a3d821da0);
  *(ulonglong *)(lVar8 + -0x30) =
       uVar30 ^ uVar23 ^ uVar53 ^ *puVar2 ^ *(ulonglong *)(lVar8 + -0x4b8);
  *(uint *)(lVar8 - (uVar46 ^ 0x31160bd3)) = (uVar49 ^ 0xe080f40) + iVar6;
  uVar14 = DAT_182671d74;
  uVar54 = CONCAT44(DAT_182671d40,DAT_182671d40);
  bVar34 = (byte)(uVar11 >> 0x10);
  *(ulonglong *)(lVar8 + -0x228) =
       (*(ulonglong *)(lVar8 - (uVar33 ^ 0x98fcb17d)) ^ uVar23) >> ((bVar34 ^ 0xa8) & 0x3f) ^ uVar54
  ;
  uVar21 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 - (uVar25 ^ 0x17ae7d9e)) =
       (uVar23 ^ *(ulonglong *)(lVar8 + -0x30)) << ((bVar24 ^ 0xb2) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar8 - (uVar31 ^ 0xa6f5ffb1)) =
       (*(ulonglong *)(lVar8 + -0x228) ^ uVar54 | uVar21 ^ *(ulonglong *)(lVar8 + -0xc18)) ^ uVar50;
  uVar45 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar44 = CONCAT44(DAT_182671d58,DAT_182671d58);
  puVar28 = (ulonglong *)(lVar8 - (uVar38 ^ 0x71861dd6));
  *(ulonglong *)(lVar8 + -0xa78) =
       (uVar30 ^ *puVar2) - (uVar45 ^ *(ulonglong *)(lVar8 + -0xa50)) ^ uVar44;
  uVar21 = *puVar3;
  uVar53 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar8 + -0x408) = (*puVar28 ^ uVar44) - (uVar50 ^ uVar21) ^ uVar53;
  uVar15 = DAT_182671e48;
  uVar30 = (CONCAT44(uVar17,uVar52) ^ 0xe5227b6a31160e04) -
           (CONCAT44(DAT_182671e2c,DAT_182671e2c) ^ *(ulonglong *)(lVar8 + -0xd88));
  *(ulonglong *)(lVar8 + -0xb18) = uVar30 ^ uVar47;
  uVar14 = DAT_182671dbc;
  lVar9 = DAT_182671c40;
  uVar44 = CONCAT44(uVar15,uVar15);
  uVar21 = uVar30 + (uVar50 ^ uVar21) ^ uVar44;
  *(ulonglong *)(lVar8 + -0x960) = uVar21;
  uVar30 = CONCAT44(uVar14,uVar14);
  puVar7 = *(undefined8 **)(lVar9 + -0xac0);
  bVar35 = (byte)(uVar12 >> 0x10);
  uVar21 = uVar21 ^ *puVar1 ^ uVar30 ^ uVar44 ^ uVar32;
  *(ulonglong *)(lVar8 + -0x4b8) = uVar21;
  *(ulonglong *)(lVar9 + -0x30) = (uVar21 ^ uVar30) >> ((bVar35 ^ 0x8e) & 0x3f) ^ uVar22;
  *(undefined8 *)(lVar9 + -0xc18) = *puVar7;
  uVar21 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar9 - (uVar41 ^ 0x10b882d2)) =
       (*(ulonglong *)(lVar9 - (uVar33 ^ 0x98fcb5f5)) ^ uVar30) << ((bVar51 ^ 0xd8) & 0x3f) ^ uVar21
  ;
  uVar44 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *puVar2 = (*(ulonglong *)(lVar9 - (uVar19 ^ 0x1add84a5)) ^ uVar22 |
            uVar21 ^ *(ulonglong *)(lVar9 + -0xa50)) ^ uVar44;
  uVar29 = DAT_182671f58;
  uVar30 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(ulonglong *)(lVar9 - (uVar46 ^ 0x3116047f)) =
       (CONCAT44(uVar10,uVar37) ^ 0x165b5a32ba55d147) + (uVar22 ^ *(ulonglong *)(lVar9 + -0x30));
  lVar8 = DAT_182671c40;
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0x920);
  *puVar3 = (*puVar1 ^ uVar32) - (*puVar2 ^ uVar44) ^ uVar30;
  uVar50 = CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar32 = CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar21 = uVar21 ^ uVar50 ^ uVar53 ^ uVar47 ^ *(ulonglong *)(lVar8 + -0x408);
  *(ulonglong *)(lVar8 + -0xb18) = uVar21;
  *(ulonglong *)(lVar8 + -0x960) = (uVar21 ^ uVar50) >> ((bVar34 ^ 0x98) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar8 - (uVar41 ^ 0x10b8849a)) =
       (*(ulonglong *)(lVar8 - (uVar46 ^ 0x31160e37)) ^ uVar22) +
       (*(ulonglong *)(lVar8 - (uVar46 ^ 0x31160297)) ^ uVar44);
  uVar22 = (*(ulonglong *)(lVar8 - (uVar25 ^ 0x17ae7a9e)) ^ uVar50) << ((bVar51 ^ 0xd8) & 0x3f);
  *(ulonglong *)(lVar8 + -0x4b8) = uVar22 ^ CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar21 = (*(ulonglong *)(lVar8 + -0x960) ^ uVar32 | uVar22) ^ uVar45;
  *(ulonglong *)(lVar8 + -0xa50) = uVar21;
  uVar53 = (uVar53 ^ *(ulonglong *)(lVar8 + -0x408)) -
           (*(ulonglong *)(lVar8 - (uVar33 ^ 0x98fcbb1d)) ^ uVar45) ^ uVar39;
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar53;
  uVar32 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar21 = *puVar3 ^ uVar32 ^ uVar30 ^ uVar45 ^ uVar21;
  *puVar1 = uVar21;
  lVar8 = DAT_182671c40;
  uVar50 = (uVar21 ^ uVar32) << 6;
  uVar21 = (*(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x98fcba95)) ^ uVar32) >>
           ((bVar35 ^ 0x94) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar21 ^ uVar26;
  lVar9 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x30) = (*(ulonglong *)(lVar8 + -0x228) ^ uVar54) - uVar22;
  uVar45 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar9 + -0xc18) = uVar50 ^ CONCAT44(DAT_182671d20,DAT_182671d20);
  uVar15 = DAT_182671f74;
  uVar50 = uVar50 | uVar21;
  *(ulonglong *)(lVar9 + -0xb18) = uVar50 ^ uVar45;
  uVar14 = DAT_182671d1c;
  uVar47 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar9 + -0x960) =
       (*(ulonglong *)(lVar9 - (uVar41 ^ 0x10b88b5a)) ^ uVar30) - uVar50 ^ uVar47;
  uVar15 = DAT_182671ecc;
  uVar54 = CONCAT44(uVar14,uVar14);
  uVar44 = uVar39 ^ *puVar2 ^ uVar53 ^ uVar54 ^ uVar44;
  *(ulonglong *)(lVar9 + -0x408) = uVar44;
  uVar14 = DAT_182671e34;
  bVar48 = (byte)uVar17;
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar9 + -0xa50) = (uVar44 ^ uVar54) >> ((bVar51 ^ 0xee) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar9 + -0x4b8) =
       (uVar26 ^ *(ulonglong *)(lVar9 + -0x920)) >> ((bVar48 ^ 0x9e) & 0x3f);
  uVar21 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar9 - (uVar41 ^ 0x10b88aaa)) =
       (*(ulonglong *)(lVar9 - (uVar25 ^ 0x17ae758e)) ^ uVar54) << ((bVar24 ^ 0xa8) & 0x3f) ^ uVar21
  ;
  uVar21 = uVar21 ^ *(ulonglong *)(lVar9 + -0x228) | uVar22 ^ *(ulonglong *)(lVar9 + -0xa50);
  uVar26 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar9 + -0x30) = uVar21 ^ uVar40;
  *(ulonglong *)(lVar9 - (uVar31 ^ 0xa6f5f7b1)) =
       (uVar39 ^ *(ulonglong *)(lVar9 + -0xa78)) - uVar21 ^ uVar26;
  *(ulonglong *)(lVar9 + -0xc18) = (uVar46 ^ 0x84000000) >> 0x1a;
  uVar11 = DAT_182671c6c;
  uVar33 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar9 - (uVar19 ^ 0x1add874d)) =
       *(ulonglong *)(lVar9 - ((ulonglong)uVar52 ^ 0xcee9f1c8)) ^ *(ulonglong *)(lVar9 + -0x960) ^
       uVar47 ^ uVar40 ^ uVar42;
  uVar37 = uVar11 << 0x10 | uVar11 >> 0x10;
  uVar50 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar22 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar52 ^ 0xcee9f220)) ^ uVar42) >>
           ((bVar48 ^ 0xbb) & 0x3f);
  DAT_182671c80 = uVar37;
  *puVar2 = uVar22 ^ uVar50;
  lVar8 = DAT_182671c40;
  uVar21 = (*puVar3 ^ uVar42) << 0x12;
  piVar5 = (int *)(DAT_182671c40 + -0xae4);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar21 ^ CONCAT44(DAT_182671f38,DAT_182671f38);
  *(uint *)(lVar8 + -0x9dc) = (uVar11 ^ 0x5e7f1b3) * *piVar5;
  uVar39 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar37 ^ 0x60f1189)) = (uVar22 | uVar21) ^ uVar39;
  uVar22 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar42 = CONCAT44(uVar11,uVar37);
  *(ulonglong *)(lVar8 + -0x408) =
       (*(ulonglong *)(lVar8 + -0x960) ^ uVar47) -
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0x153102b7)) ^ uVar39) ^ uVar22;
  uVar44 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar21 = *puVar1 ^ uVar26 ^ uVar45 ^ *(ulonglong *)(lVar8 + -0xb18);
  uVar30 = uVar21 ^ uVar30;
  *(ulonglong *)(lVar8 + -0xa50) = uVar30;
  uVar14 = DAT_182671db4;
  *(ulonglong *)(lVar8 + -0x228) =
       ((ulonglong)uVar29 << 0x14 | (ulonglong)(uVar29 >> 0xc)) ^ uVar30 >> 0xc ^ uVar44;
  uVar40 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 + -0xa78) = uVar21 << (((byte)(uVar11 >> 0x10) ^ 5) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0x15310a17)) =
       (uVar42 ^ 0x27d3c441b96dc118) + (CONCAT44(uVar37,uVar37) ^ 0xd64430f1cfbb7d7a);
  uVar21 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar30 = uVar44 ^ *(ulonglong *)(lVar8 + -0x228) | *(ulonglong *)(lVar8 + -0xa78) ^ uVar40;
  uVar45 = uVar30 ^ uVar21;
  *(ulonglong *)(lVar8 + -0x30) = uVar45;
  *puVar3 = uVar42 ^ 0xf8acd872efb9bb48 | uVar42 ^ 0x79bc791dfb8c233;
  uVar44 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *puVar2 = (*(ulonglong *)(lVar8 - (uVar41 ^ 0x10b8835a)) ^ uVar26) - uVar30 ^ uVar44;
  uVar41 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar8 - (uVar33 ^ 0x15310f2f)) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar37 ^ 0x60f1139)) ^ uVar41 ^ uVar21 ^ uVar22 ^ uVar45;
  uVar15 = DAT_182671e80;
  uVar21 = (uVar41 ^ *(ulonglong *)(lVar8 + -0x920)) >> (((byte)uVar11 ^ 0x16) & 0x3f);
  uVar41 = (uVar41 ^ *(ulonglong *)(lVar8 + -0x920)) << ((bVar48 ^ 0xb2) & 0x3f);
  *(ulonglong *)(lVar8 + -0x960) = uVar21 ^ CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar14 = DAT_182671e24;
  *(ulonglong *)(lVar8 + -0xb18) = uVar41 ^ CONCAT44(uVar15,uVar15);
  lVar8 = DAT_182671c40;
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar41 = uVar41 | uVar21;
  puVar20 = (ulonglong *)(DAT_182671c40 - (uVar46 ^ 0x31160a0f));
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar41 ^ uVar42;
  uVar21 = (*puVar20 ^ uVar22) - (*(ulonglong *)(lVar8 + -0x2b0) ^ uVar50);
  *(ulonglong *)(lVar8 + -0xc18) = uVar21 ^ uVar54;
  uVar14 = DAT_182671ef4;
  uVar45 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *(ulonglong *)(lVar8 + -0xa78) = uVar21 - uVar41 ^ uVar45;
  uVar50 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 + -0x228) = uVar41 - (*(ulonglong *)(lVar8 + -0xa08) ^ uVar43) ^ uVar50;
  *puVar3 = CONCAT44(uVar37,uVar12) ^ 0x54550f17b1e8f922 |
            CONCAT44(uVar52,uVar37) ^ 0x8e1cf489888bf492;
  uVar41 = CONCAT44(DAT_182671e28,DAT_182671e28);
  puVar20 = (ulonglong *)(lVar8 - (uVar33 ^ 0x15310a9f));
  uVar39 = *puVar20 ^ uVar41 ^ *(ulonglong *)(lVar8 + -0x4b8) ^ uVar44 ^ uVar39;
  *puVar1 = uVar39;
  uVar15 = DAT_182671f6c;
  uVar21 = (uVar39 ^ uVar41) >> ((bVar24 ^ 0xa3) & 0x3f);
  *(ulonglong *)(lVar8 + -0x30) = uVar21 ^ CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar14 = DAT_182671d34;
  lVar8 = DAT_182671c40;
  uVar41 = (uVar39 ^ uVar41) << (((byte)uVar13 ^ 0x52) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar41 ^ CONCAT44(uVar15,uVar15);
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 + -0xb18) = (uVar41 | uVar21) ^ uVar30;
  lVar8 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671c74;
  uVar41 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar49 ^ 0x88821c28)) ^ uVar44) -
           (*(ulonglong *)(DAT_182671c40 + -0xda8) ^ uVar27);
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar41 ^ uVar26;
  uVar14 = DAT_182671f88;
  *(ulonglong *)(lVar8 + -0x408) =
       uVar41 - (*(ulonglong *)(lVar8 - (uVar21 ^ 0xef5996c6)) ^ uVar30) ^ uVar23;
  uVar21 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 - (uVar38 ^ 0x71861bb6)) =
       (CONCAT44(DAT_182671c84,uVar49) ^ 0xc71fe686777def45) -
       (*(ulonglong *)(lVar8 + -0xb20) ^ uVar42) ^ uVar21;
  uVar42 = CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar8 + -0xc18)) + (uVar30 ^ *(ulonglong *)(lVar8 + -0xb18)) ^
           uVar40;
  *(ulonglong *)(lVar8 + -0xa50) = uVar21;
  lVar9 = DAT_182671c40;
  *(ulonglong *)(lVar8 - (uVar25 ^ 0x17ae725e)) = *puVar28 ^ uVar42 ^ uVar21 ^ uVar45 ^ uVar40;
  *(ulonglong *)(lVar9 - (uVar31 ^ 0xa6f5f8d1)) =
       (uVar42 ^ *puVar3) >> ((bVar34 ^ 0xbd) & 0x3f) ^ uVar22;
  uVar21 = *puVar3;
  uVar38 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar41 = (ulonglong)DAT_182671c64;
  *puVar1 = (CONCAT44(uVar13,uVar11) ^ 0x5380f22040be664e) -
            (uVar40 ^ *(ulonglong *)(lVar9 + -0xa50));
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0xf6706b44)) =
       (uVar42 ^ uVar21) << (((byte)uVar10 ^ 0x52) & 0x3f) ^ uVar38;
  uVar14 = DAT_182671d88;
  uVar21 = *(ulonglong *)(lVar8 + -0x4b8) ^ uVar22 | uVar38 ^ *(ulonglong *)(lVar8 + -0x30);
  *(ulonglong *)(lVar8 + -0x920) = uVar21 ^ CONCAT44(DAT_182671d64,DAT_182671d64);
  uVar15 = DAT_182671f48;
  uVar41 = CONCAT44(uVar14,uVar14);
  *puVar20 = (uVar45 ^ *(ulonglong *)(lVar8 + -0xa78)) - uVar21 ^ uVar41;
  uVar14 = DAT_182671ea0;
  uVar22 = CONCAT44(uVar15,uVar15);
  uVar21 = *(ulonglong *)(lVar8 - (uVar19 ^ 0x1add809d)) ^ uVar23 ^ uVar22 ^ uVar50 ^
           *(ulonglong *)(lVar8 + -0x228);
  uVar38 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar8 + -0xda8) = uVar21;
  *(ulonglong *)(lVar8 + -0x960) = (uVar21 ^ uVar22) >> ((bVar51 ^ 0xdd) & 0x3f) ^ uVar38;
  uVar21 = (uVar22 ^ uVar21) << ((bVar35 ^ 0xb5) & 0x3f);
  *(ulonglong *)(lVar8 + -0xc18) = uVar21 ^ uVar32;
  uVar15 = DAT_182671edc;
  uVar10 = DAT_182671ec0;
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar19 = (ulonglong)DAT_182671ec0;
  *(ulonglong *)(lVar8 + -0xb18) =
       (*(ulonglong *)(lVar8 - (uVar31 ^ 0xa6f5f509)) ^ uVar38 | uVar21) ^ uVar22;
  uVar21 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar8 + -0xa50) =
       (uVar23 ^ *(ulonglong *)(lVar8 + -0x408)) -
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar49 ^ 0x88821ba0)) ^ uVar22) ^ CONCAT44(uVar15,uVar15)
  ;
  uVar21 = *(ulonglong *)(lVar8 - (uVar21 ^ 0xeede318f)) ^ CONCAT44(uVar10,uVar10) ^ uVar22 ^ uVar41
           ^ *puVar2;
  *puVar1 = uVar21;
  *puVar3 = ((ulonglong)(uVar10 >> 0x17) | uVar19 << 9) ^ uVar21 >> 0x17 ^ uVar41;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar36;
  return;
}



############ FUN_ 18102c270 size=5408 ############

void FUN_18102c270(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  byte *pbVar16;
  byte bVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  byte local_res18;
  byte local_f0;
  
  uVar9 = DAT_182671c84;
  uVar8 = DAT_182671c80;
  uVar7 = DAT_182671c78;
  uVar6 = DAT_182671c70;
  uVar5 = DAT_182671c58;
  uVar23 = DAT_182671c54;
  uVar4 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar14 = DAT_182671c78 & 3;
  if (uVar14 < 2) {
    uVar27 = DAT_182671c80;
    if (uVar14 == 0) {
      uVar27 = DAT_182671c78;
    }
  }
  else {
    uVar27 = DAT_182671c88;
    if (uVar14 < 3) {
      uVar27 = DAT_182671c84;
    }
  }
  uVar22 = (ulonglong)DAT_182671c54;
  uVar44 = (ulonglong)DAT_182671c50;
  uVar37 = DAT_182671c50 & DAT_182671c54;
  uVar14 = *(uint *)(&DAT_182613218 + DAT_182672130);
  uVar15 = *(uint *)(&DAT_182613210 + (uVar22 ^ 0xddeffc14) + (longlong)DAT_182672130) ^
           DAT_182671c50;
  uVar30 = CONCAT44(DAT_182671f88,DAT_182671f88);
  puVar25 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar19 = CONCAT44(DAT_182671c84,uVar27);
  uVar21 = (uVar30 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) >> (((byte)uVar27 ^ 0x97) & 0x3f);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xc90);
  DAT_182671c68 = uVar27;
  DAT_182671c7c = uVar37;
  *puVar1 = uVar21 ^ CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar11 = DAT_182671f04;
  uVar13 = DAT_182671ee8;
  uVar12 = DAT_182671dc0;
  uVar10 = DAT_182671c88;
  uVar20 = CONCAT44(DAT_182671c88,uVar6);
  uVar35 = (uVar30 ^ *puVar25) << (((byte)uVar6 ^ 0xf7) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc38) = uVar35 ^ CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar35 = uVar35 | uVar21;
  uVar21 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar2 + -0xc18) = uVar35 ^ uVar31;
  uVar11 = DAT_182671de0;
  lVar3 = DAT_182671c40;
  uVar28 = (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar2 + -0x110)) -
           (CONCAT44(uVar5,uVar7) ^ 0xd1ac38073990b54b);
  *(ulonglong *)(lVar2 + -0xb18) = uVar28 ^ uVar21;
  uVar13 = DAT_182671f1c;
  uVar5 = DAT_182671c90;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xa50) =
       uVar28 - (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x2dab099)) ^ uVar31) ^ uVar24;
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x960) = (CONCAT44(uVar5,uVar5) ^ 0x84ab25770c6cfdff) + uVar35 ^ uVar28;
  lVar2 = DAT_182671c40;
  uVar21 = (ulonglong)uVar37;
  *(int *)(lVar3 - ((ulonglong)uVar37 ^ 0x5275dd4)) =
       *(int *)(lVar3 + -0x94) << ((byte)*(undefined4 *)(lVar3 + -0x94c) & 0x1f);
  uVar11 = DAT_182671e20;
  uVar35 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar31 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar38 = *(ulonglong *)(lVar3 + -0x680) ^ uVar31 ^ uVar35 ^ uVar28 ^
           *(ulonglong *)(lVar3 + -0x960);
  *(ulonglong *)(lVar3 + -0xf0) = uVar38;
  uVar29 = (uVar38 ^ uVar35) >> (((byte)uVar27 ^ 0xa7) & 0x3f);
  uVar28 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar29 ^ CONCAT44(uVar11,uVar11);
  uVar38 = (uVar38 ^ uVar35) << (((byte)uVar8 ^ 0xa1) & 0x3f);
  uVar35 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar2 + -0xda8) = uVar38 ^ uVar28;
  uVar32 = (ulonglong)DAT_182671edc;
  uVar41 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x99d5c793)) = (uVar38 | uVar29) ^ uVar35;
  uVar38 = CONCAT44(DAT_182671da8,DAT_182671da8);
  uVar28 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0xa08) =
       (*(ulonglong *)(lVar2 + -0x680) ^ uVar31) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x10100ef)) ^ uVar35) ^ uVar38;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x2dab409)) =
       CONCAT44(DAT_182671f6c,DAT_182671f6c) ^ *(ulonglong *)(lVar2 + -0xa50) ^ uVar41 ^ uVar24 ^
       *(ulonglong *)(lVar2 + -0xa78);
  uVar29 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar31 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar32 = *(ulonglong *)(lVar2 - (uVar22 ^ 0xddeff48c)) >> 0x20 ^ uVar29 ^ uVar32;
  *(ulonglong *)(lVar2 + -0xd88) = uVar32;
  uVar11 = DAT_182671cc4;
  uVar28 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x5375278)) ^ uVar41) <<
           (((byte)DAT_182671c84 ^ 0x60) & 0x3f);
  *(ulonglong *)(lVar2 + -0x510) = uVar28 ^ uVar31;
  lVar2 = DAT_182671c40;
  uVar39 = CONCAT44(uVar11,uVar11);
  uVar28 = (uVar32 ^ uVar29 | uVar28) ^ uVar39;
  pbVar16 = (byte *)(DAT_182671c40 - (uVar21 ^ 0x5275438));
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar28;
  *puVar1 = 0x71fb979adf3677f2 >> ((*pbVar16 ^ (byte)uVar12) & 0x3f);
  uVar36 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 + -0xa50) ^ uVar24) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0x81419827)) ^ uVar39) ^ uVar36;
  uVar24 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar45 = CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar28 = uVar24 ^ uVar39 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0xa08) ^ uVar28;
  *(ulonglong *)(lVar2 + -0xb18) = uVar28;
  uVar5 = DAT_182671c88;
  *(ulonglong *)(lVar2 + -0xc18) = **(ulonglong **)(lVar2 + -0x10) ^ uVar45;
  uVar12 = DAT_182671d68;
  uVar11 = DAT_182671d10;
  bVar42 = (byte)uVar5;
  uVar33 = (uVar28 ^ uVar24) >> ((bVar42 ^ 0xbd) & 0x3f);
  uVar40 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar2 + -0x960) = uVar33 ^ uVar40;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       (uVar28 ^ uVar24) << (((byte)DAT_182671c88 ^ 0x81) & 0x3f) ^ uVar32;
  uVar29 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xddeff9ec)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x52758f0)) ^ uVar32 | uVar33) ^ uVar29;
  lVar2 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xddeff1ac)) =
       (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0xa08)) -
       (*(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar29) ^ uVar33;
  uVar5 = DAT_182671c84;
  uVar38 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  bVar18 = (byte)DAT_182671c84;
  uVar35 = uVar38 ^ uVar36 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x110) ^
           *(ulonglong *)(lVar2 + -0x228);
  *(ulonglong *)(lVar2 + -0x680) = uVar35;
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (*(ulonglong *)(lVar2 - (uVar44 ^ 0x5375c70)) ^ uVar38) >> ((bVar18 ^ 0x56) & 0x3f) ^ uVar31;
  bVar18 = (byte)DAT_182671c78;
  uVar28 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xddeff18c)) =
       (uVar35 ^ uVar38) << ((bVar18 ^ 0x91) & 0x3f) ^ uVar28;
  uVar11 = DAT_182671f90;
  lVar2 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671d24,DAT_182671d24);
  puVar25 = (ulonglong *)(DAT_182671c40 + -0x110);
  uVar28 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar5 ^ 0x60b086c8)) ^ uVar28 |
           uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar28 ^ uVar32;
  uVar7 = DAT_182671c80;
  uVar35 = CONCAT44(uVar11,uVar11);
  bVar17 = (byte)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0xc38) = (uVar36 ^ *puVar25) - uVar28 ^ uVar35;
  *puVar1 = (*(ulonglong *)(lVar2 + -0x888) ^ uVar41) >> ((bVar17 ^ 0x9c) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar31 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c68 ^ 0x430ad97)) ^ uVar38 ^ uVar32 ^ uVar33
           ^ *(ulonglong *)(lVar2 + -0xda8);
  uVar32 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar2 + -0xa50) = uVar31;
  uVar28 = (uVar31 ^ uVar38) >> (((byte)uVar37 ^ 0x2e) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar28 ^ uVar32;
  local_res18 = (byte)uVar23;
  *(ulonglong *)(lVar3 + -0xc18) = uVar28 >> ((bVar42 ^ 0x9a) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (uVar31 ^ uVar38) << ((local_res18 ^ 0x16) & 0x3f) ^ uVar28;
  lVar3 = DAT_182671c40;
  puVar34 = (ulonglong *)(lVar2 - (uVar21 ^ 0x5275318));
  uVar43 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c68 ^ 0x430a1e7)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c70 ^ 0x101091f)) ^ uVar32 | uVar28 ^ *puVar34)
       ^ uVar43;
  uVar11 = DAT_182671d90;
  uVar5 = DAT_182671c84;
  uVar32 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0x5375758)) ^ uVar33) -
       (uVar43 ^ *(ulonglong *)(lVar3 + -0x960)) ^ uVar32;
  uVar13 = DAT_182671ed4;
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(uVar11,uVar11);
  bVar17 = (byte)DAT_182671c58;
  uVar29 = *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x60b08778)) ^ uVar28 ^
           *(ulonglong *)(lVar3 + -0x5e8) ^ uVar35 ^ uVar29;
  uVar36 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar3 + -0xa08) = uVar29;
  uVar33 = (uVar29 ^ uVar28) >> ((bVar17 ^ 0xf3) & 0x3f);
  *(ulonglong *)(lVar3 + -0x228) = uVar33 ^ uVar36;
  uVar31 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x60b08148)) ^ uVar28) <<
           (((byte)DAT_182671c90 ^ 0x35) & 0x3f);
  *(ulonglong *)(lVar2 + -0x680) = uVar31 ^ CONCAT44(uVar13,uVar13);
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  uVar28 = (ulonglong)DAT_182671c78;
  puVar25 = (ulonglong *)(lVar2 - (uVar22 ^ 0xddeff67c));
  *puVar25 = (uVar33 | uVar31) ^ uVar29;
  uVar11 = DAT_182671cc8;
  uVar6 = DAT_182671c70;
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x99d5c983)) ^ uVar35) -
       (uVar29 ^ *(ulonglong *)(lVar3 + -0xa78)) ^ uVar45;
  uVar13 = DAT_182671e68;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x110) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0xddeffcf4)) ^ uVar31 ^ uVar29 ^ uVar32 ^ *puVar25;
  *(ulonglong *)(lVar3 + -0x888) = uVar36 ^ *(ulonglong *)(lVar3 + -0x228) ^ 0x774e5c3ba0be6cc4;
  uVar8 = DAT_182671c90;
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0x2c70d91)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x10103d7)) ^ uVar31) >> ((bVar18 ^ 0xa2) & 0x3f)
       ^ uVar28;
  puVar46 = (ulonglong *)(lVar2 - (uVar22 ^ 0xddeff914));
  *puVar46 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x110)) << (((byte)DAT_182671c88 ^ 0xa0) & 0x3f) ^
             uVar30;
  uVar5 = DAT_182671c58;
  uVar33 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar22 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x10107d7)) ^ uVar30 |
           *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0x81419f6f)) ^ uVar28;
  uVar36 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  *(ulonglong *)(lVar2 + -0xc18) = uVar22 ^ uVar33;
  uVar11 = DAT_182671ea4;
  uVar28 = (uVar32 ^ *(ulonglong *)(lVar2 + -0xf0)) -
           (CONCAT44(uVar9,DAT_182671c78) ^ 0x407eb3c5830f3b06);
  *(ulonglong *)(lVar2 + -0xa50) = uVar28 ^ uVar36;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar28 - uVar22 ^ uVar35;
  uVar28 = (ulonglong)DAT_182671de8;
  uVar31 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *puVar34 = uVar22 - (CONCAT44(uVar27,uVar5) ^ 0xb4f7dde556958efa) ^ uVar40;
  *(undefined4 *)(lVar2 + -0x54) = 0x6138bb21;
  uVar22 = *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x2c70c89)) ^ uVar31 ^ uVar43 ^ uVar45 ^
           *(ulonglong *)(lVar2 + -0x960);
  uVar32 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar2 + -0xda8) = uVar22;
  uVar29 = (uVar22 >> 0x20 ^ uVar28) >> 1;
  *(ulonglong *)(lVar2 + -0x5e8) = uVar29 ^ uVar32;
  uVar5 = DAT_182671c80;
  lVar3 = DAT_182671c40;
  puVar26 = (ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x2c70b51));
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       uVar36 ^ CONCAT44(uVar4,uVar37) ^ *puVar26 ^ 0x75af2950c3509b3c;
  uVar11 = DAT_182671ca8;
  uVar22 = (uVar31 ^ uVar22) << (((byte)uVar5 ^ 0x9e) & 0x3f);
  uVar28 = CONCAT44(DAT_182671e08,DAT_182671e08);
  *(ulonglong *)(lVar3 + -0x680) = uVar22 ^ uVar28;
  uVar13 = DAT_182671ebc;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xc38) = (uVar22 | uVar29) ^ uVar32;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 + -0xd88) ^ uVar45) - (uVar20 ^ 0x2e9cb00225060919) ^ uVar29;
  uVar22 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x5275a28)) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0xc18)) - (CONCAT44(uVar4,uVar37) ^ 0x6d060459da968455);
  uVar11 = DAT_182671d54;
  uVar31 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x430a2ff)) ^ uVar29) -
       (uVar32 ^ *(ulonglong *)(lVar3 + -0xc38)) ^ uVar31;
  uVar5 = DAT_182671c94;
  lVar2 = DAT_182671c40;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar22 = (CONCAT44(uVar23,DAT_182671c84) ^ 0x7baa7036a6574dfd) +
           (uVar32 ^ *(ulonglong *)(lVar3 + -0xc38)) ^ uVar29;
  local_f0 = (byte)uVar12;
  uVar20 = (uVar28 ^ *(ulonglong *)(lVar3 + -0x680)) <<
           ((local_f0 ^ *(byte *)(lVar3 + -0xb18)) & 0x3f);
  *(ulonglong *)(lVar3 + -0x110) = uVar22;
  *puVar1 = uVar20;
  uVar28 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(lVar3 + -0x510) =
       uVar28 ^ uVar29 ^ uVar35 ^ uVar22 ^ *(ulonglong *)(lVar3 + -0xbd8);
  uVar11 = DAT_182671cb4;
  uVar22 = *(ulonglong *)(lVar2 + -0x510);
  *(ulonglong *)(lVar3 + -0xf0) = uVar20 - (CONCAT44(uVar7,uVar4) ^ 0x915bee598e795cfd);
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c90 ^ 0x2c70861)) =
       (uVar28 ^ uVar22) >> (((byte)uVar5 ^ 0xba) & 0x3f) ^ uVar32;
  uVar11 = DAT_182671f50;
  uVar23 = DAT_182671c58;
  uVar22 = (ulonglong)DAT_182671c58;
  uVar29 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  *puVar26 = (uVar28 ^ *puVar46) << ((bVar42 ^ 0xbc) & 0x3f) ^ uVar29;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar20 = (ulonglong)DAT_182671c88;
  uVar22 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x814199af)) ^ uVar29 |
           uVar32 ^ *(ulonglong *)(lVar2 + -0x960);
  *(ulonglong *)(lVar2 + -0xa08) = uVar22 ^ uVar28;
  *(ulonglong *)(lVar2 + -0xda8) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0x430a35f)) ^ uVar35) - uVar22 ^ uVar33;
  uVar35 = uVar31 ^ *(ulonglong *)(lVar2 + -0x888) ^ uVar40 ^ uVar41 ^
           *(ulonglong *)(lVar2 + -0xb18);
  uVar22 = CONCAT44(uVar27,DAT_182671c64);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar35;
  uVar20 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar2 + -0xd88) =
       uVar22 ^ 0x5f02d295815735ca | CONCAT44(uVar9,uVar4) ^ 0x215020fb1a4775d4;
  uVar5 = DAT_182671c8c;
  uVar22 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0x101072f)) >> 0x20 ^ (ulonglong)DAT_182671edc) >> 5;
  uVar40 = (ulonglong)DAT_182671c8c;
  uVar29 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  bVar18 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0xc18) = uVar22 ^ uVar36;
  uVar20 = (uVar35 ^ uVar41) << ((bVar18 ^ 0xe2) & 0x3f);
  *(ulonglong *)(lVar2 + -0x228) = uVar20 ^ uVar39;
  *puVar25 = (uVar20 | uVar22) ^ uVar29;
  uVar12 = DAT_182671f64;
  uVar35 = CONCAT44(DAT_182671f64,DAT_182671f64);
  *(ulonglong *)(lVar2 + -0xc38) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x888)) -
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0x5275278)) ^ uVar29) ^ uVar35;
  uVar22 = (ulonglong)DAT_182671c80;
  uVar32 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar2 + -0x680) = (uVar19 ^ 0x3bf5b3a391eace6c) << ((byte)uVar23 & 0x3f);
  uVar11 = DAT_182671cc0;
  uVar4 = DAT_182671c60;
  uVar29 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x2dab6f9)) ^ uVar33 ^ *(ulonglong *)(lVar2 + -0xda8) ^
           uVar32 ^ uVar29;
  uVar20 = (ulonglong)DAT_182671c5c;
  uVar31 = (ulonglong)DAT_182671c60;
  bVar18 = (byte)DAT_182671c5c;
  *(ulonglong *)(lVar2 + -0x110) = uVar29;
  uVar36 = (uVar29 ^ uVar32) >> ((bVar18 ^ 0x2a) & 0x3f);
  *puVar1 = uVar36 ^ CONCAT44(uVar11,uVar11);
  uVar23 = DAT_182671c68;
  uVar19 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar2 + -0xf0) = (uVar29 ^ uVar32) << (((byte)uVar4 ^ 0x51) & 0x3f) ^ uVar19;
  uVar4 = DAT_182671c6c;
  lVar2 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c6c;
  uVar22 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (CONCAT44(DAT_182671c6c,uVar23) ^ 0x5715b83ca09f6371) + 0x3561093a1b5baa57;
  uVar11 = DAT_182671c98;
  *(ulonglong *)(lVar2 + -0x960) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x1010237)) ^ uVar19 | uVar36) ^ uVar30;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x5275250)) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xda8)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0x209101df)) ^ uVar30) ^ uVar29;
  uVar11 = DAT_182671f14;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (CONCAT44(uVar5,DAT_182671c58) ^ 0x3bfd6ec5e4286c7f) >>
       ((*(byte *)(lVar2 + -0xc38) ^ (byte)uVar12) & 0x3f);
  uVar23 = DAT_182671c80;
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar28 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c90 ^ 0x2c70d39)) ^
           *(ulonglong *)(lVar2 + -0xa08) ^ uVar22 ^ uVar35 ^ uVar28;
  uVar21 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  bVar17 = (byte)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0xb18) = uVar28;
  bVar18 = (byte)DAT_182671c48;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xdceef4b5)) =
       (uVar28 ^ uVar22) >> ((bVar17 ^ 0xa9) & 0x3f) ^ uVar21;
  lVar2 = DAT_182671c40;
  uVar22 = (*puVar34 ^ uVar22) << ((bVar18 ^ 0xa7) & 0x3f);
  puVar25 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c78 ^ 0x99d5c833));
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar22 ^ CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c94 ^ 0xe0999b97)) =
       (*puVar25 ^ uVar21 | uVar22) ^ uVar38;
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 + -0xc38) ^ uVar35) - (uVar38 ^ *(ulonglong *)(lVar2 + -0x228)) ^
       uVar24;
  uVar19 = CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(lVar2 + -0x888) =
       (CONCAT44(uVar10,uVar4) ^ 0x91e489e00a480560) + (CONCAT44(uVar9,uVar23) ^ 0x512037426f90e4d6)
  ;
  uVar23 = uVar4 << 0x10 | uVar4 >> 0x10;
  DAT_182671c78 = uVar23;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xfb3dff79)) =
       *(ulonglong *)(lVar2 - (uVar31 ^ 0xfbcf5550)) ^ *(ulonglong *)(lVar2 + -0xa50) ^ uVar38 ^
       uVar19 ^ uVar29;
  puVar25 = (ulonglong *)(lVar2 - (uVar32 ^ 0x443548ae));
  uVar21 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0x4e2e4e4d)) =
       (*puVar25 ^ uVar19) >> (((byte)uVar4 ^ 0x1a) & 0x3f) ^ uVar21;
  uVar12 = DAT_182671dcc;
  uVar22 = (*(ulonglong *)(lVar2 + -0x680) ^ uVar19) << 0xc;
  *(ulonglong *)(lVar2 + -0x110) =
       CONCAT44(uVar23,uVar23) ^ 0x1b4731ad26c9c7c7 | *(ulonglong *)(lVar2 + -0x888);
  uVar11 = DAT_182671d20;
  *(ulonglong *)(lVar2 + -0x510) = uVar22 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xf0) = CONCAT44(uVar4,uVar23) ^ *puVar25 ^ uVar19 ^ 0xfec46cc333545345;
  *puVar1 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0x44354456)) ^ uVar21 | uVar22) ^
            CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar14 ^ uVar37;
  return;
}



############ FUN_ 180f5bf90 size=4357 ############

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

void FUN_180f5bf90(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  byte bVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  uint uVar37;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte bVar43;
  ulonglong *puVar44;
  byte local_res18;
  byte local_b0;
  ulonglong uVar38;
  
  bVar14 = (byte)DAT_182671fb0;
  uVar10 = DAT_182671c7c;
  uVar18 = DAT_182671c78;
  uVar8 = DAT_182671c5c;
  uVar7 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671c5c;
  uVar31 = (ulonglong)DAT_182671c54;
  uVar24 = (ulonglong)DAT_182671c78;
  uVar28 = (ulonglong)DAT_182671c7c;
  uVar37 = DAT_182671c54 - DAT_182671c5c;
  uVar38 = (ulonglong)uVar37;
  uVar2 = *(uint *)(&DAT_182613218 + DAT_1826721a8);
  uVar21 = DAT_182671c78 ^ DAT_182671c7c;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_1826721a8) ^ DAT_182671c5c;
  uVar30 = (ulonglong)DAT_182671c7c;
  uVar32 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar22 = (ulonglong)uVar21;
  uVar19 = CONCAT44(uVar21,DAT_182671c7c);
  uVar29 = (ulonglong)DAT_182671d98;
  DAT_182671c58 = uVar21;
  DAT_182671c64 = uVar37;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0x4a08f0d4)) ^
        CONCAT44(DAT_182671d14,DAT_182671d14) |
       CONCAT44(DAT_182671cc0,DAT_182671cc0) ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) ^ uVar32;
  pbVar20 = (byte *)((uVar19 ^ 0xf1d9d127460ad9e3) + *(longlong *)(lVar3 + -0x870));
  *(ulonglong *)(lVar3 + -0x758) = (ulonglong)pbVar20 ^ uVar29;
  uVar17 = DAT_182671d44;
  bVar13 = *pbVar20 ^ bVar14 ^ (byte)DAT_182671f14;
  uVar29 = (ulonglong)(bVar14 ^ bVar13);
  *(byte *)(lVar3 + -0x291) = bVar13;
  uVar6 = DAT_182671ca4;
  *(ulonglong *)(lVar3 + -0x888) = uVar29 ^ CONCAT44(uVar17,uVar17);
  lVar4 = DAT_182671c40;
  bVar13 = (byte)uVar8;
  uVar35 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar21 ^ 0xf1d9da07)) =
       uVar29 << ((bVar13 ^ 0xa7) & 0x3f) ^ uVar35;
  lVar3 = *(longlong *)(lVar4 + -0x870);
  local_res18 = (byte)uVar7;
  uVar25 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar4 + -0x828) =
       (CONCAT44(uVar18,uVar8) ^ 0xb02d52cf8e938e88) >> ((local_res18 ^ 0x3e) & 0x3f);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x8f0) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x460adb69)) ^ uVar32 |
       uVar35 ^ *(ulonglong *)(lVar4 + -0xb20)) ^ uVar25;
  uVar29 = (ulonglong)DAT_182671f68;
  *(ulonglong *)(lVar4 + -0x990) = (CONCAT44(uVar18,uVar10) ^ 0xb7d308fe460ad9e2) + lVar3 ^ uVar29;
  bVar14 = (byte)DAT_182671f00;
  puVar27 = (ulonglong *)(lVar4 - (uVar22 ^ 0xf1d9d8b7));
  *(byte *)(lVar5 + -0x182) =
       *(byte *)(uVar29 ^ *puVar27) ^ (byte)DAT_182671f00 ^ (byte)DAT_182671f14;
  uVar40 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  puVar1 = (ulonglong *)(lVar5 + -0xb08);
  uVar29 = (ulonglong)(*(byte *)(lVar5 - (uVar31 ^ 0x4a08f696)) ^ bVar14);
  *puVar1 = uVar29 ^ uVar40;
  lVar4 = DAT_182671c40;
  bVar43 = (byte)uVar10;
  uVar19 = CONCAT44(DAT_182671e50,DAT_182671e50);
  puVar44 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar37 ^ 0x4c00249d));
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar29 << ((bVar43 ^ 0xc1) & 0x3f) ^ uVar19;
  puVar36 = (ulonglong *)(lVar4 - (uVar34 ^ 0xfe08db47));
  uVar26 = CONCAT44(uVar37,uVar18);
  uVar39 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = (uVar25 ^ *puVar36 | uVar19 ^ *puVar44) ^ uVar39;
  lVar4 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671e98;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (CONCAT44(uVar37,uVar10) ^ 0x54e0023e372f72ce) >> ((bVar13 ^ 0x81) & 0x3f);
  bVar14 = (byte)DAT_182671d04;
  lVar5 = DAT_182671c40;
  pbVar20 = (byte *)((uVar26 ^ 0x4c00235db7d308c2) + lVar3);
  *(ulonglong *)(lVar4 + -0x6f8) = (ulonglong)pbVar20 ^ uVar29;
  uVar29 = *puVar1;
  *(byte *)(lVar4 + -0xd21) = *pbVar20 ^ bVar14 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x4a08ff3c)) = (uVar40 ^ uVar29) >> ((bVar43 ^ 0xcf) & 0x3f);
  uVar32 = CONCAT44(DAT_182671e68,DAT_182671e68);
  uVar29 = (ulonglong)(*(byte *)(lVar5 - (uVar22 ^ 0xf1d9dc06)) ^ bVar14);
  *(longlong *)(lVar5 + -0xb20) = *(longlong *)(lVar5 + -0x828) << ((bVar13 ^ 0x89) & 0x3f);
  *(ulonglong *)(lVar5 + -0x2b0) = uVar29 ^ uVar32;
  bVar14 = (byte)DAT_182671d80;
  uVar30 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  uVar17 = *(uint *)(lVar5 + -0x94) ^ DAT_182671e4c;
  *(ulonglong *)(lVar5 + -0x8f0) = uVar29 << 0x20 ^ uVar30;
  *(uint *)(lVar5 + -0x61c) = uVar17 + (uVar21 ^ 0x231eb530);
  uVar29 = (ulonglong)DAT_182671db0;
  uVar32 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x460ade19)) =
       (uVar30 ^ *puVar36 | uVar39 ^ *(ulonglong *)(lVar5 + -0xda8)) ^ uVar32;
  *(ulonglong *)(lVar5 + -0x708) =
       (CONCAT44(uVar18,uVar18) ^ 0xb7d308feb7d308c3) + *(longlong *)(lVar5 + -0x870) ^ uVar29;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x4c002bd5)) =
       CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar5 + -0xb20) ^ 0x6a36c3d8980853bb;
  lVar3 = DAT_182671c40;
  bVar13 = *(byte *)(*(ulonglong *)(lVar5 - (uVar34 ^ 0xfe08d4bf)) ^ uVar29) ^ bVar14 ^
           (byte)DAT_182671f14;
  *(byte *)(DAT_182671c40 - (uVar34 ^ 0xfe08d015)) = bVar13;
  uVar41 = (ulonglong)(bVar13 ^ bVar14);
  uVar23 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar42 = uVar41 ^ uVar23;
  *puVar1 = uVar42;
  *(ulonglong *)(lVar3 + -0x828) =
       CONCAT44(DAT_182671f64,DAT_182671f64) ^ *(ulonglong *)(lVar3 + -0x30) |
       uVar26 ^ 0xb267873068df1cd5;
  uVar6 = DAT_182671cd8;
  lVar4 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671e2c;
  uVar33 = uVar41 << 0x28;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar33 ^ CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar30 = uVar33 | uVar32 ^ *puVar44;
  *(ulonglong *)(lVar3 + -0x8f0) = uVar30 ^ CONCAT44(uVar6,uVar6);
  pbVar20 = (byte *)((CONCAT44(uVar21,uVar7) ^ 0xf1d9d1274a08f72a) + *(longlong *)(lVar4 + -0x870));
  *(ulonglong *)(lVar4 + -0xb20) = 0x163e232bc2f2bd40 - uVar41;
  *(ulonglong *)(lVar4 + -0x328) = (ulonglong)pbVar20 ^ uVar29;
  uVar6 = DAT_182671ce4;
  lVar3 = DAT_182671c40;
  bVar14 = *pbVar20 ^ (byte)DAT_182671d44 ^ (byte)DAT_182671f14;
  uVar29 = (ulonglong)(DAT_182671d44 & 0xff) ^ (ulonglong)bVar14;
  puVar36 = (ulonglong *)(DAT_182671c40 + -0xda8);
  *(byte *)(DAT_182671c40 + -0xc99) = bVar14;
  uVar41 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x30) = (uVar39 ^ *puVar36) - uVar33;
  uVar32 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(lVar3 + -0x888) = uVar29 ^ uVar41;
  local_b0 = (byte)uVar37;
  uVar29 = uVar29 << ((local_b0 ^ 0x6d) & 0x3f);
  *(ulonglong *)(lVar3 + -0x828) = uVar29 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x7c0) = uVar30 + uVar29 ^ uVar35;
  uVar29 = (ulonglong)DAT_182671d74;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x4a08fc34)) =
       CONCAT44(uVar21,uVar18) ^ uVar23 ^ uVar42 ^ 0x5ef69af58424e3a8;
  bVar14 = (byte)DAT_182671cc4;
  *(ulonglong *)(DAT_182671c40 + -0x370) =
       (CONCAT44(uVar21,uVar8) ^ 0xf1d9d127fe08d388) + *(longlong *)(DAT_182671c40 + -0x870) ^
       uVar29;
  bVar13 = (byte)DAT_182671f14;
  lVar3 = DAT_182671c40;
  puVar36 = (ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xf1d9d9af));
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       CONCAT44(uVar10,uVar10) ^ 0x2cf10a28072b799b | uVar41 ^ *puVar36;
  uVar12 = DAT_182671e78;
  bVar15 = *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xb7d30b8e)) ^ uVar29) ^ bVar14 ^ bVar13;
  *(byte *)(lVar3 + -0x19a) = bVar15;
  uVar29 = (ulonglong)(bVar15 ^ bVar14);
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x2b0) = uVar29 ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xfe08d387)) = uVar29 << 0x38 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x8f0) = -0x6541ba45d85a8ac5 - (uVar26 ^ 0x23e8c21316e65650);
  uVar23 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar3 + -0x828) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0x30)) + (uVar35 ^ *(ulonglong *)(lVar3 + -0x7c0)) ^ uVar23
  ;
  lVar4 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar17 = DAT_182671c78 ^ 0x65854c70;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x4c00221d)) =
       *(longlong *)(lVar3 - (uVar31 ^ 0x4a08f30c)) + 0x38U ^ uVar29;
  *(uint *)(lVar3 + -0x5d4) = uVar17 + (DAT_182671c5c ^ 0x624ac1a9);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xb7d309be)) ^ uVar29) =
       uVar23 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x828);
  uVar29 = (ulonglong)DAT_182671d48;
  *(byte *)(lVar3 + -0xc9a) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar28 ^ 0x460adf21)) ^ (ulonglong)DAT_182671e98) ^ bVar13;
  uVar17 = DAT_182671c6c;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c6c ^ 0x5de169bd)) =
       (CONCAT44(uVar7,uVar10) ^ 0x4a08f714460ad999) + *(longlong *)(lVar5 + -0x870) ^ uVar29;
  bVar14 = (byte)DAT_182671ecc;
  *(byte *)(lVar5 + -0x471) =
       *(byte *)(uVar29 ^ *(ulonglong *)(lVar5 + -0x758)) ^ (byte)DAT_182671ecc ^ bVar13;
  uVar32 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *puVar1 = (*(byte *)(lVar4 - (uVar38 ^ 0x4c00272c)) ^ bVar14) ^ uVar32;
  uVar29 = (ulonglong)DAT_182671d24;
  *(ulonglong *)(lVar4 + -0xb20) = uVar19 ^ *(ulonglong *)(lVar4 + -0x2b0);
  *puVar27 = *(longlong *)(lVar4 + -0x870) + 0x41U ^ uVar29;
  uVar6 = DAT_182671d8c;
  bVar14 = (byte)DAT_182671d7c;
  uVar9 = DAT_182671c70;
  *(byte *)(lVar4 + -0x8e1) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x990) ^ uVar29) ^ bVar13 ^ (byte)DAT_182671d7c;
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar6,uVar6);
  *puVar36 = (*(byte *)(DAT_182671c40 - (uVar28 ^ 0x460ad138)) ^ bVar14) ^ uVar29;
  *(ulonglong *)(lVar3 + -0xda8) =
       (CONCAT44(uVar8,uVar21) ^ 0xd8e478680703c993) + 0x375ea559c1f4d15e;
  uVar6 = DAT_182671d70;
  uVar29 = (*(ulonglong *)(lVar3 + -0x888) ^ uVar29) << (((byte)uVar9 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar3 + -0x380) = uVar29 ^ CONCAT44(DAT_182671ea4,DAT_182671ea4);
  bVar14 = (byte)DAT_182671e80;
  uVar29 = uVar32 ^ *puVar1 | uVar29;
  uVar32 = (ulonglong)DAT_182671e4c;
  *(ulonglong *)(lVar3 + -0x3d8) =
       CONCAT44(uVar10,uVar21) ^ 0x62999e54ddb48e5 | uVar19 ^ *(ulonglong *)(lVar3 + -0x2b0);
  *(ulonglong *)(lVar3 + -0x7c0) = uVar29 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x708) = *(longlong *)(lVar3 - (uVar31 ^ 0x4a08ff64)) + 0x42U ^ uVar32;
  *(byte *)(lVar3 + -0x95) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0x4a08f01c)) ^ uVar32) ^ (byte)DAT_182671f14 ^
       bVar14;
  bVar13 = (byte)DAT_182671fac;
  uVar11 = DAT_182671c8c;
  lVar3 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671e30,DAT_182671e30);
  uVar32 = (ulonglong)DAT_182671c84;
  uVar19 = (ulonglong)(*(byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0xb5d2e47e)) ^ bVar14);
  uVar25 = CONCAT44(DAT_182671e10,DAT_182671e10);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar19 ^ uVar26;
  uVar19 = uVar19 << (((byte)uVar21 ^ 0x37) & 0x3f);
  *(ulonglong *)(lVar3 + -0xda8) = uVar19 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x888) = (uVar19 | uVar29) ^ uVar25;
  uVar19 = (ulonglong)DAT_182671dfc;
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0xb5f708db)) ^ uVar30) >>
            ((byte)*(undefined8 *)(lVar3 + -0x8f0) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x460adaf1)) = *(longlong *)(lVar3 + -0x870) + 0x43U ^ uVar19;
  *(ulonglong *)(lVar3 + -0x380) =
       (CONCAT44(uVar18,uVar7) ^ 0x1987da448517d729) <<
       (((byte)uVar12 ^ *(byte *)(lVar3 + -0x30)) & 0x3f);
  uVar29 = CONCAT44(DAT_182671c60,uVar8);
  *(byte *)(lVar3 + -0x6d9) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar34 ^ 0xfe08d09f)) ^ uVar19) ^ (byte)DAT_182671f14 ^
       bVar13;
  uVar7 = DAT_182671c80;
  lVar4 = DAT_182671c40;
  pbVar20 = (byte *)(DAT_182671c40 + -0x6d9);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = (uVar29 ^ 0x566fac851d12d51f) >> ((bVar43 ^ 0xc6) & 0x3f)
  ;
  uVar29 = (ulonglong)(*pbVar20 ^ bVar13);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar29 ^ uVar40;
  uVar6 = DAT_182671c50;
  *(undefined8 *)(lVar4 + -0xb20) = 0x19c3867bb0ad342b;
  uVar29 = uVar29 << ((bVar43 ^ 0xc1) & 0x3f);
  *(ulonglong *)(lVar4 + -0x7c0) = uVar29 ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar19 = (ulonglong)DAT_182671ca8;
  *(uint *)(lVar4 + -0x634) = *(uint *)(lVar4 - (uVar24 ^ 0xb7d3048e)) | DAT_182671c94 ^ 0x69edef6b;
  bVar14 = (byte)DAT_182671efc;
  uVar12 = DAT_182671d0c;
  uVar32 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  lVar3 = *(longlong *)(lVar4 + -0x870);
  *(ulonglong *)(lVar4 + -0xda8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xb5d2ec63)) ^ uVar25 | uVar29) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x370) = (CONCAT44(uVar10,uVar9) ^ 0x460ad9d996e838a8) + lVar3 ^ uVar19;
  *(byte *)(lVar4 + -0xb7a) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar34 ^ 0xfe08d0c7)) ^ uVar19) ^ (byte)DAT_182671f14 ^
       bVar14;
  uVar19 = (ulonglong)(*(byte *)(lVar4 - (uVar22 ^ 0xf1d9da5d)) ^ bVar14);
  *(ulonglong *)(DAT_182671c40 + -0x8f0) = uVar19 ^ CONCAT44(DAT_182671e98,DAT_182671e98);
  lVar4 = DAT_182671c40;
  uVar18 = DAT_182671c64 ^ 0xeb85e74d;
  uVar19 = uVar19 << (((byte)uVar21 ^ 7) & 0x3f);
  *puVar1 = uVar19 ^ CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar29 = (ulonglong)_DAT_182671cf0;
  *(uint *)(lVar4 + -0x76c) = (uVar7 ^ 0x6ed373b9) + uVar18;
  bVar14 = (byte)DAT_182671e7c;
  lVar4 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (*(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x4c002ef5)) ^ uVar32 | uVar19) ^ uVar30;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c4c ^ 0x9d5c1de2)) = lVar3 + 0x45U ^ uVar29;
  *(ulonglong *)(lVar4 + -0x380) =
       (CONCAT44(DAT_182671c68,uVar8) ^ 0x3a51aca4826ba2ee) <<
       (((byte)uVar12 ^ *(byte *)(lVar4 + -0xda8)) & 0x3f);
  uVar9 = DAT_182671f8c;
  bVar13 = *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0x5de1681d)) ^ uVar29) ^
           (byte)DAT_182671f14;
  *(byte *)(lVar4 + -0x879) = bVar13 ^ bVar14;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x4a08f4cc)) = bVar13 ^ uVar19;
  uVar19 = *(ulonglong *)(lVar4 + -0x3d8) ^ uVar19;
  uVar29 = uVar19 << 0x28;
  *(ulonglong *)(lVar4 + -0xb20) = uVar29 ^ CONCAT44(DAT_182671f50,DAT_182671f50);
  pbVar20 = (byte *)((CONCAT44(uVar8,uVar11) ^ 0xfe08d3b7b5d2e4ad) + *(longlong *)(lVar4 + -0x870));
  *(ulonglong *)(lVar4 + -0x2b0) = (uVar29 | uVar30 ^ *(ulonglong *)(lVar4 + -0x30)) ^ uVar26;
  bVar14 = (byte)DAT_182671f38;
  *(ulonglong *)(lVar4 + -0x758) = (ulonglong)pbVar20 ^ (ulonglong)DAT_182671f10;
  *(ulonglong *)(lVar4 + -0x888) = uVar19 - (CONCAT44(uVar17,uVar6) ^ 0x911e41e7d104c930);
  uVar6 = DAT_182671da8;
  *(byte *)(lVar4 + -0x6f9) = *pbVar20 ^ (byte)DAT_182671f14 ^ bVar14;
  uVar9 = DAT_182671e04;
  uVar31 = (ulonglong)(*(byte *)(lVar4 - (uVar31 ^ 0x4a08f1ed)) ^ bVar14);
  *(ulonglong *)(lVar4 + -0x7c0) = uVar31 ^ CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar31 = uVar31 << 0x30;
  uVar29 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar4 + -0x8f0) = uVar31 ^ CONCAT44(uVar9,uVar9);
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar29 ^ 0x6ecd92bd)) ^ uVar26) + uVar31 ^
            CONCAT44(uVar6,uVar6);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar2 ^ uVar37;
  return;
}



############ FUN_ 180f953d0 size=5602 ############

void FUN_180f953d0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_108;
  byte local_e8;
  
  uVar6 = DAT_182671f9c;
  uVar14 = DAT_182671e8c;
  uVar8 = DAT_182671c94;
  uVar27 = DAT_182671c5c;
  uVar5 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  DAT_182671c80 = DAT_182671c74 ^ DAT_182671c8c;
  uVar18 = DAT_182671c7c & 3;
  if (uVar18 < 2) {
    DAT_182671c54 = DAT_182671c90;
    if (uVar18 == 0) {
      DAT_182671c54 = DAT_182671c7c;
    }
  }
  else {
    DAT_182671c54 = DAT_182671c64;
    if (uVar18 < 3) {
      DAT_182671c54 = DAT_182671c68;
    }
  }
  uVar46 = (ulonglong)DAT_182671c5c;
  uVar22 = *(uint *)(&DAT_182613218 + DAT_182672254) ^ DAT_182671c54;
  uVar19 = *(uint *)(&DAT_182613220 + DAT_182672254) ^ DAT_182671c5c;
  uVar30 = (ulonglong)DAT_182671c4c;
  uVar34 = (ulonglong)DAT_182671c94;
  uVar23 = DAT_182671c4c ^ DAT_182671c94;
  uVar40 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  puVar37 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar23 ^ 0x270ed381));
  uVar39 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar35 = (ulonglong)DAT_182671f9c;
  uVar24 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c4c ^ 0x94f1042b)) ^ uVar40 |
           CONCAT44(DAT_182671f54,DAT_182671f54) ^ *puVar37) ^ uVar39;
  DAT_182671c88 = uVar23;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar24;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0xa60) =
       CONCAT44(uVar8,DAT_182671c68) ^ uVar38 ^ *(ulonglong *)(lVar3 + -0x7e8) ^ 0x51b6100f1b265252;
  uVar28 = CONCAT44(DAT_182671d50,DAT_182671d50);
  uVar48 = CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar45 = CONCAT44(DAT_182671d00,DAT_182671d00);
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0xb20) =
       uVar24 ^ uVar48 ^ uVar28 ^ uVar39 ^ *(ulonglong *)(lVar3 + -0xb08);
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x628)) + (uVar38 ^ *(ulonglong *)(lVar3 + -0x7e8)) ^
       uVar45;
  uVar24 = (ulonglong)DAT_182671c7c;
  uVar39 = (uVar29 ^ *(ulonglong *)(lVar3 + -0x628)) << 0x28;
  *(ulonglong *)(lVar3 + -0x110) = uVar39 ^ CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar15 = DAT_182671ea4;
  uVar38 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar3 + -0xa70) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x628)) -
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x49039e8c)) ^ uVar40);
  uVar14 = DAT_182671db4;
  uVar41 = CONCAT44(uVar15,uVar15);
  uVar24 = ((ulonglong)(uVar6 >> 0x18) | uVar35 << 8) ^ *(ulonglong *)(lVar3 + -0x628) >> 0x18;
  *(ulonglong *)(lVar3 + -0x760) = uVar24 ^ uVar41;
  uVar10 = DAT_182671c6c;
  uVar6 = DAT_182671c50;
  uVar49 = (ulonglong)DAT_182671c50;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar29 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x5c0a3782)) = (uVar24 | uVar39) ^ uVar35;
  uVar26 = uVar10 | uVar6;
  uVar24 = *(ulonglong *)(lVar3 + -0xd88);
  uVar32 = CONCAT44(DAT_182671d18,DAT_182671d18);
  puVar1 = (ulonglong *)(lVar3 + -0x380);
  uVar33 = uVar24 ^ uVar32 ^ uVar35 ^ uVar45 ^ *(ulonglong *)(lVar3 + -0x228);
  uVar38 = (ulonglong)uVar26;
  DAT_182671c84 = uVar26;
  *(ulonglong *)(lVar3 + -0x920) =
       CONCAT44(uVar6,uVar10) ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x760) ^ 0x5e28d7730db5fb00;
  uVar14 = DAT_182671cac;
  uVar40 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(ulonglong *)(lVar3 + -0x7c0) = uVar33;
  uVar15 = DAT_182671ddc;
  uVar18 = DAT_182671c74;
  lVar4 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671c64;
  uVar39 = (*(ulonglong *)(lVar3 - (uVar38 ^ 0x6f27940c)) ^ uVar48) + (uVar33 ^ uVar32);
  uVar31 = uVar39 ^ uVar40;
  *puVar1 = uVar31;
  uVar36 = (uVar33 ^ uVar32) << 5;
  uVar48 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar4 + -0xa60) = uVar36 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671cd8;
  lVar3 = DAT_182671c40;
  uVar42 = (*(ulonglong *)(lVar4 - (uVar35 ^ 0xb5f70f2b)) ^ uVar32) >>
           (((byte)uVar18 ^ 0x67) & 0x3f);
  uVar35 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar42 ^ uVar48;
  uVar42 = uVar42 | uVar36;
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar48 = uVar42 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar48;
  uVar39 = uVar39 & (uVar33 ^ uVar32);
  *(ulonglong *)(lVar3 + -0xa70) = uVar36 ^ uVar31 ^ uVar35 ^ uVar40 ^ uVar48;
  uVar15 = DAT_182671d08;
  *(ulonglong *)(lVar3 + -0x888) = uVar39;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0xb20)) + (uVar24 ^ uVar45) ^ uVar31;
  *(ulonglong *)(lVar3 + -0x110) = uVar42 | uVar39;
  uVar7 = DAT_182671c8c;
  uVar12 = DAT_182671c80;
  uVar32 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar3 + -0x228) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0xb20)) << (((byte)DAT_182671c80 ^ 0xc2) & 0x3f) ^ uVar32;
  uVar9 = DAT_182671f64;
  puVar25 = (ulonglong *)(lVar3 - (uVar30 ^ 0x94f10783));
  uVar48 = CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar39 = (ulonglong)DAT_182671f64;
  uVar24 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x6f279864)) =
       (*puVar25 ^ uVar28) >> (((byte)DAT_182671c7c ^ 0x1f) & 0x3f) ^ uVar48;
  uVar15 = DAT_182671efc;
  uVar35 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar3 + -0x920) =
       (uVar48 ^ *(ulonglong *)(lVar3 + -0x760) | uVar32 ^ *(ulonglong *)(lVar3 + -0x228)) ^ uVar35;
  uVar48 = CONCAT44(uVar15,uVar15);
  uVar24 = *(ulonglong *)(lVar3 - (uVar24 ^ 0xb5f701cb)) ^ uVar48 ^ uVar35 ^ uVar31 ^
           *(ulonglong *)(lVar3 + -0x628);
  *(ulonglong *)(lVar3 + -0xb08) = uVar24;
  *(ulonglong *)(lVar3 + -0xa60) = CONCAT44(uVar23,uVar10) ^ uVar24 ^ uVar48 ^ 0xf35718d77499246c;
  uVar18 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  uVar35 = (CONCAT44(DAT_182671c54,uVar27) ^ 0x179af1b2ee2d8d5a) + (uVar48 ^ uVar24);
  uVar42 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar35 ^ CONCAT44(uVar9,uVar9);
  uVar13 = DAT_182671c90;
  uVar24 = (CONCAT44(uVar12,uVar23) ^ 0x884b9b76a8b542a9) + (uVar40 ^ *puVar1);
  *(ulonglong *)(lVar3 + -0x7c0) = uVar24 ^ uVar42;
  uVar17 = DAT_182671f2c;
  uVar11 = DAT_182671c74;
  *(ulonglong *)(lVar3 + -0xd88) =
       ((ulonglong)(uVar18 >> 4) | (ulonglong)uVar7 << 0x1c) ^ 0xe769a709b4d94af;
  uVar15 = DAT_182671d20;
  lVar4 = DAT_182671c40;
  uVar32 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar24 + uVar35 ^ uVar32;
  uVar7 = DAT_182671c8c;
  uVar33 = CONCAT44(uVar15,uVar15);
  uVar24 = CONCAT44(uVar13,DAT_182671c7c);
  *(ulonglong *)(lVar4 + -0x888) = uVar35 << (((byte)uVar8 ^ 0xbb) & 0x3f) ^ uVar33;
  uVar9 = DAT_182671c68;
  *(ulonglong *)(lVar4 - (uVar49 ^ 0x6f279e14)) =
       (uVar24 ^ 0x9dc946267e2803ee) - (CONCAT44(DAT_182671c68,uVar7) ^ 0x453b64f04e317060);
  uVar16 = DAT_182671d78;
  uVar15 = DAT_182671cb0;
  uVar48 = (ulonglong)DAT_182671d78;
  uVar24 = (*(ulonglong *)(lVar4 + -0x2b0) >> 0x20 ^ uVar39) >> 7;
  *(ulonglong *)(lVar4 + -0xb20) = uVar24 ^ CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar7 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar39 = CONCAT44(uVar16,uVar16);
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar24 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x5c0a3d22)) ^ uVar33 | uVar24) ^
           uVar35;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x7e8);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar24;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xb5f70f8b)) =
       uVar32 ^ uVar24 ^ *puVar2 ^ uVar39 ^ uVar35;
  uVar33 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x6f279624)) =
       (CONCAT44(uVar5,uVar27) ^ 0xed62d72a44870a16) + (uVar36 ^ *(ulonglong *)(lVar3 + -0xa70)) ^
       uVar33;
  uVar35 = (CONCAT44(uVar8,uVar7) ^ 0x3dce983c34c7cb7e) + (uVar31 ^ *(ulonglong *)(lVar3 + -0x628));
  *(ulonglong *)(lVar3 + -0xa60) = uVar35 ^ CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar24 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x23258708)) =
       uVar35 + (uVar33 ^ *(ulonglong *)(lVar3 + -0x920)) ^ uVar40;
  uVar45 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  bVar20 = (byte)uVar23;
  uVar35 = (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xf41b36c7)) ^ uVar33) <<
           ((bVar20 ^ 0x20) & 0x3f);
  *puVar1 = uVar35 ^ uVar45;
  uVar7 = DAT_182671c54;
  uVar43 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  local_108 = (byte)uVar6;
  uVar24 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (*(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xb3ffd582)) ^ uVar33) >>
       ((local_108 ^ 0x1b) & 0x3f) ^ uVar43;
  lVar3 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar24 = (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0x96e83564)) ^ uVar43 | uVar35) ^ uVar31;
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar24;
  uVar35 = (CONCAT44(uVar13,uVar7) ^ 0xff4edd7431be3d1a) +
           (CONCAT44(uVar12,uVar5) ^ 0xaf26a3aebed1270b);
  uVar33 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar3 + -0x110) = uVar35;
  *(ulonglong *)(lVar3 + -0x2b0) =
       uVar40 ^ uVar24 ^ uVar33 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0xb08);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x270ed889)) =
       uVar35 >> ((*(byte *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0xb5f703e3)) ^ (byte)uVar14) & 0x3f
                 );
  *(ulonglong *)(lVar3 + -0xb20) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0x7e8)) + (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar33) ^
       uVar28;
  uVar6 = DAT_182671c74;
  *(ulonglong *)(lVar3 + -0x228) = 0x7ab083ef5c38bcc9 - (*(ulonglong *)(lVar3 + -0xd88) ^ uVar43);
  uVar7 = DAT_182671c90;
  uVar31 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c7c ^ 0x49039c74)) =
       (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar33) << (((byte)uVar6 ^ 0x72) & 0x3f) ^ uVar31;
  uVar14 = DAT_182671ef8;
  uVar35 = (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar33) >> (((byte)uVar7 ^ 0xb8) & 0x3f);
  uVar24 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar3 + -0x628) = uVar35 ^ CONCAT44(DAT_182671dc4,DAT_182671dc4);
  lVar3 = DAT_182671c40;
  uVar47 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xb5f7028b)) =
       (*(ulonglong *)(DAT_182671c40 + -0xa70) ^ uVar31 | uVar35) ^ uVar47;
  uVar33 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar44 = uVar28 ^ *(ulonglong *)(lVar3 + -0xb20) ^ *(ulonglong *)(lVar3 + -0xa60) ^ uVar33 ^
           uVar47;
  *(ulonglong *)(lVar3 + -0x920) = uVar44;
  local_e8 = (byte)uVar26;
  uVar43 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar40 = (uVar40 ^ *(ulonglong *)(lVar3 + -0xb08)) + (uVar39 ^ *(ulonglong *)(lVar3 + -0x760)) ^
           uVar43;
  uVar35 = (uVar39 ^ *(ulonglong *)(lVar3 + -0x760)) << ((local_e8 ^ 8) & 0x3f);
  *puVar1 = uVar40;
  *(ulonglong *)(lVar3 + -0x7c0) = uVar35 ^ CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar24 = *(ulonglong *)(lVar3 - (uVar29 ^ 0x23258b60));
  *(ulonglong *)(lVar3 + -0x888) = CONCAT44(uVar5,uVar8) ^ 0xeffe7dfecdd7ffb0 | 0x2af60c7c4c07bca0;
  uVar15 = DAT_182671f98;
  uVar24 = (uVar24 >> 0x20 ^ uVar48) >> 0x14;
  *(ulonglong *)(lVar3 + -0x110) = uVar24 ^ uVar41;
  uVar14 = DAT_182671d98;
  lVar4 = DAT_182671c40;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar24 = (uVar24 | uVar35) ^ uVar29;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar24;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar39 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar24 = uVar40 ^ uVar35 ^ uVar24 ^ uVar29 ^ uVar43;
  *(ulonglong *)(lVar4 + -0x228) = uVar24;
  uVar40 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 - (uVar49 ^ 0x6f279424)) ^ uVar28) + (uVar24 ^ uVar35) ^ uVar39;
  uVar14 = DAT_182671da4;
  uVar29 = (uVar24 ^ uVar35) << 0x3a;
  uVar24 = (*(ulonglong *)(lVar4 + -0x228) ^ uVar35) >> ((bVar20 ^ 7) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa70) = uVar24 ^ CONCAT44(DAT_182671dcc,DAT_182671dcc);
  uVar15 = DAT_182671f5c;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar29 ^ uVar40;
  uVar49 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x628) = (uVar24 | uVar29) ^ uVar35;
  uVar14 = DAT_182671ca8;
  uVar6 = DAT_182671c7c;
  *(ulonglong *)(lVar4 + -0xb08) =
       *(ulonglong *)(lVar4 - (uVar46 ^ 0xb5d30563)) ^
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c68 ^ 0x96e83ec4)) ^ uVar49 ^ uVar35 ^ uVar39;
  uVar15 = DAT_182671ee4;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x760) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0xb3ffdf22)) ^ uVar43) + (uVar33 ^ uVar44) ^ uVar35;
  uVar14 = DAT_182671d84;
  uVar48 = CONCAT44(uVar15,uVar15);
  uVar24 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar4 + -0x888) = (uVar33 ^ uVar44) << (((byte)uVar6 ^ 0x12) & 0x3f) ^ uVar48;
  uVar7 = DAT_182671e00;
  lVar3 = DAT_182671c40;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar29 = (ulonglong)DAT_182671e00;
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x94f10b63)) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x49039f24)) ^ uVar33) >> (((byte)uVar8 ^ 0x88) & 0x3f) ^
       uVar40;
  uVar6 = DAT_182671c80;
  uVar28 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  uVar30 = (*(ulonglong *)(lVar3 - (uVar46 ^ 0xb5d30063)) ^ uVar48 |
           *(ulonglong *)(lVar3 + -0x7c0) ^ uVar40) ^ uVar28;
  uVar24 = CONCAT44(uVar13,DAT_182671c80);
  *(ulonglong *)(lVar3 + -0x110) = uVar30;
  uVar40 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x7e8) =
       uVar24 ^ 0x12bb92c661185072 | uVar35 ^ *(ulonglong *)(lVar3 + -0x760);
  *puVar25 = uVar40 ^ uVar28 ^ uVar35 ^ *(ulonglong *)(lVar3 + -0x760) ^ uVar30;
  uVar24 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x5e2e3793)) =
       CONCAT44(uVar11,uVar10) ^ 0xe1819576922be3ac | *(ulonglong *)(lVar3 + -0xa60) ^ uVar47;
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0xb5d30a5b)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xb5f703cb)) ^ uVar40) +
       (*(ulonglong *)(DAT_182671c40 + -0xd88) ^ uVar39) ^ uVar28;
  uVar30 = (*(ulonglong *)(lVar3 + -0xb20) ^ uVar40) << ((local_108 ^ 0x24) & 0x3f);
  uVar39 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar3 + -0xa70) = uVar30 ^ CONCAT44(DAT_182671e84,DAT_182671e84);
  uVar14 = DAT_182671e30;
  uVar29 = *(ulonglong *)(lVar3 + -0xb20) >> 0x20 ^ uVar32 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x628) = uVar29;
  uVar24 = (ulonglong)DAT_182671c68;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar30 = (uVar30 | uVar32 ^ uVar29) ^ uVar39;
  *(ulonglong *)(lVar3 + -0x920) = uVar30;
  *(ulonglong *)(lVar3 + -0x888) =
       *(ulonglong *)(lVar3 + -0x2b0) ^ uVar30 ^ uVar33 ^ uVar39 ^ uVar28;
  uVar39 = CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar40 = (*(ulonglong *)(lVar3 - (uVar24 ^ 0x96e83f8c)) ^ uVar35) +
           (uVar49 ^ *(ulonglong *)(lVar3 + -0xb08)) ^ uVar39;
  *(ulonglong *)(lVar3 + -0x7c0) = uVar40;
  uVar14 = DAT_182671ea0;
  *(ulonglong *)(lVar3 + -0x7e8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xf41b376f)) ^ uVar33 | *puVar37 ^ uVar43;
  lVar3 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671f50;
  uVar24 = *(ulonglong *)(DAT_182671c40 + -0xb08);
  uVar35 = (uVar49 ^ *(ulonglong *)(DAT_182671c40 + -0xb08)) <<
           (((byte)DAT_182671c74 ^ 0x7c) & 0x3f);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x708);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar35 ^ CONCAT44(uVar14,uVar14);
  *(byte *)(lVar3 + -0x71a) = *(byte *)(*puVar2 ^ uVar30) ^ (byte)DAT_182671f14;
  uVar30 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(lVar3 + -0xa60) = (uVar49 ^ uVar24) >> ((local_108 ^ 0x24) & 0x3f) ^ uVar30;
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (CONCAT44(uVar27,uVar5) ^ 0xf75df7fd75c04a5b) -
       (CONCAT44(uVar12,uVar26) ^ 0x2cce65f27d6e2bd5);
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0x5c0a3fca)) ^ uVar30 | uVar35) ^
       uVar36;
  uVar27 = DAT_182671c98;
  uVar48 = (ulonglong)DAT_182671c98;
  uVar24 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c7c ^ 0x49039b8c)) ^ uVar36 ^ uVar40 ^
           uVar29 ^ uVar39;
  *(ulonglong *)(lVar3 + -0xb20) = uVar24;
  uVar35 = CONCAT44(uVar27,uVar27);
  uVar27 = DAT_182671c50 ^ 0x593a1abf;
  *(ulonglong *)(lVar3 + -0xa70) =
       (CONCAT44(uVar8,uVar10) ^ 0x3dce983ca2154f95) + (uVar24 ^ uVar29) ^ uVar35;
  *(uint *)(lVar3 - (uVar38 ^ 0x6f279ad0)) = uVar27 + 0xd02f8664;
  uVar14 = DAT_182671f34;
  lVar3 = DAT_182671c40;
  uVar24 = (CONCAT44(uVar18,uVar8) ^ 0x2e65b98e472e915b) +
           (*(ulonglong *)(DAT_182671c40 + -0x2b0) ^ uVar28);
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar24 ^ CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar8 = DAT_182671c60;
  lVar4 = DAT_182671c40;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x6f279574)) ^ uVar35) + uVar24 ^ uVar30;
  uVar27 = DAT_182671c54;
  bVar21 = (byte)DAT_182671c54;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c90 ^ 0x5c0a322e)) =
       (uVar8 ^ 0xebd79855) >> ((bVar20 ^ 0x1c) & 0x1f);
  uVar14 = DAT_182671ef0;
  uVar24 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar4 + -0x760) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0xa70)) << ((bVar21 ^ 10) & 0x3f) ^ uVar47;
  lVar3 = DAT_182671c40;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0xf41b3c67)) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x96e8329c)) >> 0x20 ^ uVar48) >> 0x12 ^ uVar38;
  uVar14 = DAT_182671e4c;
  uVar38 = (*(ulonglong *)(lVar3 - (uVar24 ^ 0x96e83f8c)) ^ uVar47 | *puVar1 ^ uVar38) ^ uVar45;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar38;
  uVar15 = DAT_182671ed4;
  uVar24 = CONCAT44(DAT_182671c78,uVar5);
  *(ulonglong *)(lVar3 + -0xb08) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c48 ^ 0xfddbf6ca)) ^ CONCAT44(uVar14,uVar14) ^
       uVar38 ^ uVar30 ^ uVar45;
  uVar14 = DAT_182671e1c;
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar28 = (CONCAT44(uVar9,DAT_182671c7c) ^ 0xb626006953d968c1) +
           (uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0x888));
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar28 ^ uVar29;
  uVar15 = DAT_182671e7c;
  uVar38 = CONCAT44(uVar14,uVar14);
  uVar24 = (uVar24 ^ 0x8b0acc7ab478cc78) + (*(ulonglong *)(lVar3 + -0x7c0) ^ uVar39);
  *(ulonglong *)(lVar3 + -0x110) = uVar24 ^ uVar38;
  uVar5 = DAT_182671c8c;
  uVar35 = uVar28 + uVar24 ^ uVar42;
  *(ulonglong *)(lVar3 + -0xa60) = uVar35;
  uVar28 = uVar28 << (((byte)uVar5 ^ 0xab) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd88) = uVar28 ^ CONCAT44(uVar15,uVar15);
  lVar4 = DAT_182671c40;
  uVar24 = (*(ulonglong *)(lVar3 + -0x228) ^ uVar29) >> ((local_108 ^ 0x34) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar24 ^ uVar38;
  uVar38 = (uVar28 | uVar24) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar38;
  uVar14 = DAT_182671cbc;
  *(ulonglong *)(lVar4 + -0x628) = (CONCAT44(uVar8,uVar27) ^ 0x86bf169003029ed) + 0x1aa983dcd714c478
  ;
  uVar24 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar31 = uVar42 ^ uVar38 ^ uVar24 ^ uVar35 ^ uVar31;
  *(ulonglong *)(lVar4 + -0xa70) = uVar31;
  *(ulonglong *)(lVar4 + -0x760) =
       (uVar31 ^ uVar24) + (uVar30 ^ *(ulonglong *)(lVar4 + -0x920)) ^ CONCAT44(uVar14,uVar14);
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar34 ^ 0xb3ffd6d2)) ^ uVar24) <<
            (((byte)DAT_182671c74 ^ 0x68) & 0x3f) ^ uVar43;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar22;
  return;
}



############ FUN_ 181033440 size=5903 ############

void FUN_181033440(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  uint uVar7;
  int iVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  byte bVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  byte bVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong *puVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  uint uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  byte bVar59;
  uint uVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  ulonglong *puVar64;
  byte local_c8;
  
  uVar18 = DAT_182671d60;
  uVar17 = DAT_182671c88;
  uVar16 = DAT_182671c78;
  uVar15 = DAT_182671c74;
  uVar12 = DAT_182671c5c;
  uVar11 = DAT_182671c58;
  uVar63 = (ulonglong)DAT_182671c88;
  uVar55 = (ulonglong)DAT_182671c78;
  uVar32 = (ulonglong)DAT_182671c5c;
  uVar47 = (ulonglong)DAT_182671c58;
  DAT_182671c6c = DAT_182671c64 << 0x10 | DAT_182671c64 >> 0x10;
  uVar60 = DAT_182671c60 - DAT_182671c74;
  uVar56 = DAT_182671c88 * DAT_182671c78;
  uVar35 = DAT_182671c5c * DAT_182671c58;
  uVar7 = *(uint *)(&DAT_182613218 + DAT_182672148);
  uVar20 = *(uint *)(&DAT_182613220 + DAT_182672148) ^ DAT_182671c88;
  uVar41 = CONCAT44(DAT_182671d94,DAT_182671d94);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x680);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xc38);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0x228);
  uVar58 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar42 = CONCAT44(DAT_182671d04,DAT_182671d04);
  uVar51 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  DAT_182671c48 = uVar56;
  DAT_182671c84 = uVar35;
  DAT_182671c90 = uVar60;
  *puVar1 = (CONCAT44(DAT_182671ef8,DAT_182671ef8) ^ *puVar3) - (uVar41 ^ *puVar2) ^ uVar58;
  uVar19 = DAT_182671f7c;
  lVar9 = DAT_182671c40;
  uVar33 = CONCAT44(uVar18,uVar18);
  puVar4 = (ulonglong *)(DAT_182671c40 + -0xa08);
  uVar43 = uVar42 ^ uVar33 ^ uVar51 ^ *(ulonglong *)(DAT_182671c40 + -0xda8) ^ *puVar4;
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar43;
  uVar38 = CONCAT44(uVar19,uVar19);
  uVar42 = (uVar43 ^ uVar51) >> (((byte)uVar11 ^ 0x18) & 0x3f);
  uVar40 = (ulonglong)uVar35;
  *(ulonglong *)(lVar9 + -0xc90) = uVar42 ^ uVar38;
  uVar14 = DAT_182671c64;
  uVar31 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar9 + -0xd88) = CONCAT44(uVar12,uVar35) ^ 0xe27bc4661caed28d | uVar42;
  uVar18 = DAT_182671f0c;
  uVar21 = DAT_182671c6c;
  lVar9 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c6c;
  puVar36 = (ulonglong *)(DAT_182671c40 + -0x510);
  bVar27 = (byte)DAT_182671c6c;
  uVar48 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *puVar36 = (uVar43 ^ uVar51) << ((bVar27 ^ 0xd3) & 0x3f) ^ uVar48;
  uVar43 = (ulonglong)uVar15;
  puVar23 = (ulonglong *)(lVar9 - (uVar43 ^ 0xf4840e6c));
  uVar51 = (ulonglong)uVar60;
  *(ulonglong *)(lVar9 - (uVar40 ^ 0xafbaa158)) =
       (CONCAT44(uVar16,uVar60) ^ 0xee886f602443e6c5) >> (((byte)uVar18 ^ (byte)*puVar23) & 0x3f);
  uVar18 = DAT_182671de8;
  uVar13 = DAT_182671c60;
  uVar37 = (ulonglong)DAT_182671c60;
  puVar5 = (ulonglong *)(lVar9 + -0x888);
  uVar44 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar42 = (uVar48 ^ *puVar36 | uVar38 ^ *(ulonglong *)(lVar9 + -0xc90)) ^ uVar44;
  *(ulonglong *)(lVar9 + -0xa78) = uVar42;
  uVar38 = CONCAT44(uVar18,uVar18);
  puVar52 = (ulonglong *)(lVar9 + -0x5e8);
  *puVar5 = (uVar33 ^ *puVar4) - (*(ulonglong *)(lVar9 - (uVar47 ^ 0x71785176)) ^ uVar44) ^ uVar38;
  uVar33 = (ulonglong)DAT_182671d34;
  uVar49 = CONCAT44(DAT_182671d34,DAT_182671d34);
  uVar61 = (ulonglong)uVar56;
  *puVar52 = *(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0xefc3f0a4)) ^ uVar49 ^ uVar42 ^ uVar44 ^
             uVar58;
  lVar9 = DAT_182671c40;
  *puVar3 = (CONCAT44(uVar56,uVar60) ^ 0x39e47a1cbc74055a) -
            (CONCAT44(uVar17,uVar35) ^ 0x24264e5223dc5d8);
  uVar45 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(lVar9 + -0xda8) = (*puVar52 >> 0x20 ^ uVar33) >> 0xe ^ uVar45;
  lVar10 = DAT_182671c40;
  uVar42 = CONCAT44(DAT_182671de0,DAT_182671de0);
  bVar59 = (byte)uVar56;
  *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x71785686)) =
       (*(ulonglong *)(lVar9 - (uVar29 ^ 0xfbdffa11)) ^ uVar49) << ((bVar59 ^ 0x12) & 0x3f) ^ uVar42
  ;
  uVar19 = DAT_182671f78;
  puVar24 = (ulonglong *)(lVar10 - (uVar55 ^ 0x7dff6988));
  uVar62 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  uVar45 = uVar42 ^ *puVar24 | uVar45 ^ *(ulonglong *)(lVar10 + -0xda8);
  *(ulonglong *)(lVar10 + -0x110) = uVar45 ^ uVar62;
  uVar18 = DAT_182671da8;
  uVar33 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar10 + -0x960) =
       *(ulonglong *)(lVar10 - (uVar47 ^ 0x717850d6)) ^ uVar33 |
       CONCAT44(uVar15,uVar11) ^ 0x7d08ec94fb3dc0b9;
  uVar19 = DAT_182671ea4;
  uVar49 = CONCAT44(uVar18,uVar18);
  uVar42 = *puVar1;
  *(ulonglong *)(lVar10 + -0xc90) = CONCAT44(uVar17,uVar35) ^ 0x82313979e39ec43e;
  lVar9 = DAT_182671c40;
  *puVar36 = (uVar58 ^ uVar42) - uVar45 ^ uVar49;
  uVar42 = CONCAT44(uVar19,uVar19);
  puVar25 = (ulonglong *)(lVar9 - (uVar51 ^ 0xfb3fe0a0));
  *puVar25 = uVar42 ^ uVar38 ^ uVar41 ^ *puVar2 ^ *puVar5;
  bVar22 = (byte)uVar16;
  uVar58 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar9 - (uVar31 ^ 0xfff9f1a7)) =
       (uVar42 ^ *puVar4) >> ((bVar22 ^ 0xc) & 0x3f) ^ uVar58;
  uVar45 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *puVar3 = (*(ulonglong *)(lVar9 - (uVar43 ^ 0xf4840174)) ^ uVar42) << ((bVar27 ^ 0xcd) & 0x3f) ^
            uVar45;
  puVar53 = (ulonglong *)(lVar9 - (uVar32 ^ 0xefc5f87c));
  uVar57 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar42 = *(ulonglong *)(DAT_182671c40 - (uVar51 ^ 0xfb3fe880)) ^ uVar45 | uVar58 ^ *puVar53;
  *puVar52 = uVar42 ^ uVar57;
  uVar34 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xafbaa590)) = (uVar38 ^ *puVar5) - uVar42 ^ uVar34;
  lVar9 = DAT_182671c40;
  puVar6 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(uVar12,uVar21) ^ 0x8f5992019d04994a) + (uVar38 ^ *puVar5);
  uVar58 = CONCAT44(DAT_182671f30,DAT_182671f30);
  puVar30 = (ulonglong *)(lVar9 - (uVar51 ^ 0xfb3fe170));
  *puVar30 = *(ulonglong *)(lVar9 - (uVar47 ^ 0x71785ee6)) ^ uVar58 ^ uVar57 ^ uVar49 ^ *puVar36;
  lVar9 = DAT_182671c40;
  uVar42 = *puVar6;
  uVar38 = (uVar58 ^ *puVar6) >> (((byte)uVar17 ^ 0x95) & 0x3f);
  uVar50 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(DAT_182671c40 + -0x960) = uVar38 ^ uVar50;
  *puVar1 = (CONCAT44(uVar15,uVar14) ^ 0xd9ad96a76f784919) >>
            (((byte)uVar19 ^ *(byte *)puVar4) & 0x3f);
  uVar18 = DAT_182671e0c;
  uVar45 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *(ulonglong *)(lVar9 + -0xc90) = (uVar58 ^ uVar42) << 0x27 ^ uVar45;
  uVar46 = CONCAT44(uVar18,uVar18);
  uVar38 = *(ulonglong *)(lVar9 - (uVar61 ^ 0x1a0abc90)) ^ uVar45 | uVar38;
  *puVar2 = uVar38 ^ uVar46;
  uVar42 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar49 = (uVar49 ^ *puVar36) - (CONCAT44(uVar16,uVar12) ^ 0x46cbf891e91f0f2);
  *puVar3 = uVar49 ^ uVar42;
  uVar58 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *puVar53 = uVar49 - uVar38 ^ uVar58;
  *puVar5 = (uVar46 ^ *puVar2) - (CONCAT44(uVar11,uVar56) ^ 0x243d525878f9391a) ^ uVar57;
  lVar9 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xafbaa5b0)) =
       (uVar50 ^ *(ulonglong *)(DAT_182671c40 + -0x960)) -
       (*(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xfff9f9f7)) ^ uVar42);
  uVar18 = DAT_182671cb8;
  uVar42 = uVar34 ^ uVar62 ^ *(ulonglong *)(lVar9 + -0xda8) ^ *(ulonglong *)(lVar9 + -0x110);
  uVar49 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *puVar52 = uVar42 ^ uVar49;
  uVar50 = CONCAT44(uVar18,uVar18);
  *puVar25 = uVar42 >> (((byte)uVar17 ^ 0xad) & 0x3f) ^ uVar50;
  uVar42 = *puVar52;
  puVar26 = (ulonglong *)(DAT_182671c40 - (uVar37 ^ 0xefc3f734));
  *puVar1 = uVar62 ^ *puVar26 ^ *puVar4 ^ uVar50;
  uVar38 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *puVar6 = (uVar49 ^ uVar42) << (((byte)uVar35 ^ 0x27) & 0x3f) ^ uVar38;
  lVar9 = DAT_182671c40;
  uVar46 = CONCAT44(uVar21,uVar15);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (CONCAT44(uVar17,uVar13) ^ 0xd44d6a4e69fc0c7a) >> ((bVar22 ^ 0x2d) & 0x3f);
  uVar19 = DAT_182671f8c;
  uVar18 = DAT_182671d68;
  uVar49 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  puVar54 = (ulonglong *)(lVar9 - (uVar32 ^ 0xefc5f714));
  *puVar54 = (*(ulonglong *)(lVar9 - (uVar61 ^ 0x1a0aba08)) ^ uVar50 | uVar38 ^ *puVar30) ^ uVar49;
  uVar42 = (*(ulonglong *)(lVar9 - (uVar29 ^ 0xfbdff251)) ^ uVar34) - (uVar46 ^ 0xc44972724a755bf1);
  *puVar2 = uVar42 ^ CONCAT44(uVar18,uVar18);
  uVar49 = *puVar36 ^ uVar49;
  uVar38 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(lVar9 + -0x960) = uVar42 - uVar49 ^ uVar38;
  puVar64 = (ulonglong *)(lVar9 - (uVar29 ^ 0xfbdff979));
  *puVar3 = *puVar64 >> ((*(byte *)puVar2 ^ (byte)uVar18) & 0x3f);
  uVar18 = DAT_182671f80;
  uVar21 = DAT_182671d1c;
  uVar42 = CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar34 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xfbdff271)) =
       (CONCAT44(uVar12,uVar13) ^ 0x775c2271e4ed4426) + uVar49 ^ uVar42;
  lVar9 = DAT_182671c40;
  puVar53 = (ulonglong *)(DAT_182671c40 + -0xd88);
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       *puVar53 ^ uVar34 ^ uVar42 ^ uVar58 ^ *(ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(lVar9 - (uVar61 ^ 0x1a0ab5e8)) =
       (CONCAT44(uVar17,uVar15) ^ 0x49c28be28a315e46) >> (((byte)*puVar53 ^ (byte)uVar18) & 0x3f);
  lVar9 = DAT_182671c40;
  uVar42 = ((ulonglong)uVar21 << 0x1b | (ulonglong)(uVar21 >> 5)) ^
           *(ulonglong *)(DAT_182671c40 + -0x110) >> 5;
  puVar39 = (ulonglong *)(DAT_182671c40 - (uVar61 ^ 0x1a0ab110));
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar42 ^ CONCAT44(DAT_182671e60,DAT_182671e60);
  uVar49 = (uVar34 ^ *puVar39) << 0x3b;
  *puVar4 = uVar49 ^ CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar49 = uVar49 | uVar42;
  uVar50 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *puVar6 = uVar49 ^ uVar50;
  *(ulonglong *)(lVar9 + -0xda8) = uVar49 ^ 0xc57ee191715dfdf7;
  uVar34 = CONCAT44(DAT_182671e94,DAT_182671e94);
  *(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0x71785d8e)) =
       (uVar58 ^ *(ulonglong *)(DAT_182671c40 + -0xa78)) - uVar49 ^ uVar34;
  lVar9 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar63 ^ 0xefea54b4)) =
       (CONCAT44(uVar14,uVar35) ^ 0xa10611f6548e3159) >> (((byte)*puVar54 ^ (byte)uVar19) & 0x3f);
  uVar18 = DAT_182671fa0;
  uVar58 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar42 = *(ulonglong *)(lVar9 - (uVar55 ^ 0x7dff6d60)) ^ uVar57 ^ *puVar5 ^ uVar58 ^ uVar38;
  *puVar3 = uVar42;
  uVar49 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar9 + -0xd88) = (uVar42 ^ uVar58) >> (((byte)uVar11 ^ 0x2b) & 0x3f) ^ uVar49;
  *(undefined1 *)(lVar9 - (uVar37 ^ 0xefc3f09d)) = **(undefined1 **)(lVar9 + -0x370);
  uVar42 = (uVar58 ^ *puVar3) << 0x1b;
  *puVar52 = uVar42 ^ CONCAT44(DAT_182671f88,DAT_182671f88);
  uVar55 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(lVar9 - (uVar31 ^ 0xfff9facf)) =
       (*(ulonglong *)(lVar9 - (uVar63 ^ 0xefea5504)) ^ uVar49 | uVar42) ^ uVar55;
  uVar49 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar9 + -0xc90) =
       (*(ulonglong *)(lVar9 - (uVar47 ^ 0x7178526e)) ^ uVar38) -
       (*(ulonglong *)(lVar9 + -0x110) ^ uVar55) ^ uVar49;
  uVar42 = *puVar1;
  *(uint *)(lVar9 + -0x76c) = *(uint *)(lVar9 + -0x94c) >> ((byte)*(uint *)(lVar9 + -0x94c) & 0x1f);
  uVar38 = (ulonglong)DAT_182671d50;
  uVar21 = DAT_182671d50 >> 0x17;
  uVar58 = CONCAT44(DAT_182671d50,DAT_182671d50);
  uVar55 = *(ulonglong *)(lVar9 + -0x110) ^ uVar42 ^ uVar58 ^ uVar55 ^ uVar34;
  *puVar4 = uVar55;
  uVar18 = DAT_182671e8c;
  lVar10 = DAT_182671c40;
  uVar42 = ((ulonglong)uVar21 | uVar38 << 9) ^ uVar55 >> 0x17;
  *(ulonglong *)(lVar9 + -0xda8) = uVar42 ^ CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar58 = (uVar55 ^ uVar58) << ((bVar22 ^ 0x29) & 0x3f);
  uVar38 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar10 + -0xa78) = uVar58 ^ uVar38;
  *puVar23 = (uVar42 | uVar58) ^ uVar38;
  uVar58 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *puVar2 = (*puVar1 ^ uVar34) - (*puVar36 ^ uVar38) ^ uVar58;
  uVar34 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar10 - (uVar29 ^ 0xfbdff771)) =
       *(ulonglong *)(lVar10 - (uVar31 ^ 0xfff9f007)) ^ uVar34 ^ uVar49 ^ uVar50 ^
       *(ulonglong *)(lVar10 + -0xc90);
  uVar42 = *(ulonglong *)(lVar10 + -0xc90);
  local_c8 = (byte)uVar12;
  uVar40 = (*(ulonglong *)(lVar10 - (uVar40 ^ 0xafbaa0b0)) ^ uVar34) >> ((local_c8 ^ 0x2c) & 0x3f);
  *puVar3 = uVar40 ^ CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar18 = DAT_182671f3c;
  uVar55 = (uVar34 ^ *puVar5) << ((bVar27 ^ 0xe1) & 0x3f);
  *(ulonglong *)(lVar10 + -0xd88) = uVar55 ^ CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar55 = uVar55 | uVar40;
  uVar40 = CONCAT44(uVar18,uVar18);
  uVar50 = uVar55 ^ uVar40;
  *puVar52 = uVar50;
  uVar34 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar10 + -0x960) = (uVar49 ^ uVar42) - uVar55 ^ uVar34;
  *(ulonglong *)(lVar10 + -0x110) =
       (*(ulonglong *)(lVar10 - (uVar37 ^ 0xefc3fa1c)) ^ uVar58) -
       (CONCAT44(uVar35,uVar17) ^ 0x82f06e60afb3447a);
  uVar42 = (ulonglong)DAT_182671f60;
  uVar49 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *puVar25 = uVar49 ^ uVar40 ^ uVar58 ^ *puVar2 ^ uVar50;
  uVar55 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar40 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar10 + -0xda8) =
       (*(ulonglong *)(lVar10 - (uVar31 ^ 0xfff9f1d7)) >> 0x20 ^ uVar42) >> 0x14 ^ uVar55;
  uVar18 = DAT_182671e6c;
  uVar42 = (*puVar4 ^ uVar49) << ((bVar59 ^ 0xc) & 0x3f);
  *(ulonglong *)(lVar10 + -0xa78) = uVar42 ^ uVar40;
  uVar50 = CONCAT44(uVar18,uVar18);
  *puVar1 = (*(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xf48406d4)) ^ uVar55 | uVar42) ^ uVar50;
  uVar42 = *puVar2;
  uVar31 = (ulonglong)DAT_182671ebc;
  uVar40 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *puVar6 = (uVar58 ^ *puVar2) - (uVar50 ^ *puVar64) ^ uVar44;
  *puVar5 = (uVar58 ^ uVar42) + 0x901151eed99ca964;
  lVar9 = DAT_182671c40;
  *puVar3 = *(ulonglong *)(DAT_182671c40 + -0x960) ^ *puVar36 ^ uVar40 ^ uVar34 ^ uVar38;
  uVar42 = CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar28 = DAT_182671c6c ^ 0x2bd78004;
  *puVar24 = (*(ulonglong *)(lVar9 - (uVar63 ^ 0xefea5aa4)) >> 0x20 ^ uVar31) >> 0x19 ^ uVar42;
  uVar38 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar21 = DAT_182671c60 ^ 0x2829bb81;
  *(ulonglong *)(lVar9 + -0xc90) = (uVar40 ^ *puVar3) << ((local_c8 ^ 3) & 0x3f) ^ uVar38;
  *(uint *)(lVar9 - (uVar47 ^ 0x71785eda)) = uVar28 - uVar21;
  uVar18 = DAT_182671ec4;
  uVar21 = DAT_182671dd8;
  lVar10 = DAT_182671c40;
  *(ulonglong *)(lVar9 + -0x110) =
       (uVar38 ^ *(ulonglong *)(lVar9 + -0xc90) | *(ulonglong *)(lVar9 + -0xd88) ^ uVar42) ^ uVar48;
  lVar9 = DAT_182671c40;
  uVar40 = CONCAT44(uVar18,uVar18);
  uVar49 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0xf4840e94)) =
       (*(ulonglong *)(lVar10 + -0x960) ^ uVar34) - (uVar48 ^ *puVar26) ^ uVar40;
  uVar42 = *(ulonglong *)(lVar9 - (uVar32 ^ 0xefc5f314)) ^ uVar44 ^ uVar48 ^ *puVar6 ^ uVar49;
  *puVar4 = uVar42;
  uVar43 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar9 - (uVar32 ^ 0xefc5ffac)) =
       ((ulonglong)uVar21 << 0x12 | (ulonglong)(uVar21 >> 0xe)) ^ uVar42 >> 0xe ^ uVar43;
  lVar9 = DAT_182671c40;
  uVar42 = *puVar6;
  uVar31 = (*puVar25 ^ uVar49) << ((bVar59 ^ 0x32) & 0x3f);
  puVar53 = (ulonglong *)(DAT_182671c40 + -0xda8);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar31 ^ CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar31 = *puVar53 ^ uVar43 | uVar31;
  *puVar2 = uVar31 ^ uVar45;
  uVar18 = DAT_182671dd0;
  *puVar5 = *(ulonglong *)(lVar9 - (uVar37 ^ 0xefc3fc2c)) ^ CONCAT44(uVar13,uVar17) ^ uVar49 ^
            0xc7d22cbb8f8097ec;
  uVar42 = (uVar44 ^ uVar42) - (CONCAT44(uVar16,uVar14) ^ 0x244517cdc6e1c2e7);
  *puVar36 = uVar42 ^ CONCAT44(uVar18,uVar18);
  *puVar3 = *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xfbdff5f1)) ^ uVar49 ^ 0xc8074a5eefd4ef54;
  lVar9 = DAT_182671c40;
  uVar21 = DAT_182671c64 ^ 0x63bbe9c1;
  iVar8 = *(int *)(DAT_182671c40 + -0x94);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar42 - uVar31 ^ CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar9 + -0x960) = uVar31 - (CONCAT44(uVar12,uVar60) ^ 0x9f02e1b1a3bed006) ^ uVar33;
  *(uint *)(lVar9 - (uVar61 ^ 0x1a0ab76c)) = uVar21 + iVar8;
  *(ulonglong *)(lVar9 + -0x110) = uVar41 ^ uVar40 ^ uVar50 ^ *puVar1 ^ *puVar52;
  uVar43 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar9 + -0xda8) = (uVar41 ^ *puVar39) >> (((byte)uVar14 ^ 0xcf) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar9 - (uVar51 ^ 0xfb3fe0d0)) = CONCAT44(uVar11,uVar14) ^ 0x43391cc1bdb4f550;
  uVar42 = *(ulonglong *)(lVar9 + -0xc90);
  uVar31 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *puVar5 = (uVar41 ^ *(ulonglong *)(lVar9 + -0x110)) << 0x30 ^ uVar31;
  *puVar30 = CONCAT44(uVar15,uVar56) ^ uVar38 ^ uVar42 ^ 0xf9ff51d11dfcf87d;
  uVar42 = *puVar52;
  uVar31 = *(ulonglong *)(lVar9 - (uVar47 ^ 0x717856a6)) ^ uVar43 | uVar31 ^ *puVar5;
  *puVar3 = uVar31 ^ CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar18 = DAT_182671e58;
  uVar42 = (uVar40 ^ uVar42) - (CONCAT44(uVar35,uVar15) ^ 0xfaffa16e96778266);
  *puVar4 = uVar42 ^ CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar19 = DAT_182671f64;
  *puVar36 = uVar42 - uVar31 ^ CONCAT44(uVar18,uVar18);
  *puVar2 = uVar31 + (uVar46 ^ 0x7870a49784c06628) ^ CONCAT44(uVar19,uVar19);
  *puVar1 = (CONCAT44(uVar16,uVar12) ^ 0xac52d8cb81d65a9e) - *puVar6;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar20 * 4) = uVar7 ^ uVar56;
  return;
}



############ FUN_ 181001b60 size=4038 ############

void FUN_181001b60(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  undefined8 uVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  ulonglong *puVar10;
  byte bVar11;
  byte bVar12;
  uint uVar13;
  byte *pbVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint *puVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint *puVar35;
  ulonglong uVar36;
  
  uVar17 = DAT_182671d00;
  uVar19 = DAT_182671c7c;
  uVar26 = DAT_182671c74;
  uVar18 = DAT_182671c5c;
  lVar5 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671c7c;
  uVar16 = DAT_182671c7c ^ DAT_182671c5c;
  uVar31 = (DAT_182671c74 << 0x10 | DAT_182671c74 & 0xff00) << 8 | DAT_182671c74 >> 8 & 0xff00 |
           DAT_182671c74 >> 0x18;
  uVar3 = *(uint *)(&DAT_182613218 + DAT_1826720ac);
  uVar9 = *(uint *)(&DAT_182613220 + DAT_1826720ac) ^ DAT_182671c74;
  uVar30 = (ulonglong)DAT_182671c5c;
  DAT_182671c84 = uVar16;
  DAT_182671c88 = uVar31;
  *(uint *)(DAT_182671c40 + -0x670) =
       DAT_182671df4 ^ DAT_182671f5c ^ *(uint *)(DAT_182671c40 + -0x54);
  bVar12 = (byte)DAT_182671ccc;
  uVar33 = (ulonglong)uVar31;
  pbVar14 = (byte *)((CONCAT44(uVar31,uVar18) ^ 0xebb1729e0100001f) + *(longlong *)(lVar5 + -0x9a8))
  ;
  *(ulonglong *)(lVar5 + -0x5a0) = (ulonglong)pbVar14 ^ (ulonglong)DAT_182671e50;
  *(byte *)(lVar5 - ((ulonglong)uVar16 ^ 0xfe3c524c)) = *pbVar14 ^ bVar12 ^ (byte)DAT_182671e0c;
  uVar23 = (uint)(bVar12 ^ *(byte *)(lVar5 + -0x1c3));
  *(uint *)(lVar5 + -0x76c) = uVar23 ^ uVar17;
  uVar13 = *(uint *)(lVar5 + -0x670) ^ DAT_182671df4;
  *(ulonglong *)(lVar5 + -0xa08) = CONCAT44(uVar19,uVar16) ^ 0x944a955d6df2ec89;
  uVar25 = DAT_182671ee4;
  bVar11 = (byte)uVar18 ^ 0x11;
  *(uint *)(lVar5 + -0x644) = uVar13 + (uVar31 ^ 0x77f36080) ^ DAT_182671cfc;
  uVar13 = DAT_182671cfc;
  *(uint *)(lVar5 - (uVar22 ^ 0xff3c5a53)) = uVar23 << (bVar11 & 0x1f) ^ DAT_182671f84;
  puVar1 = (uint *)(lVar5 + -0x9dc);
  uVar13 = (uVar13 ^ *(uint *)(lVar5 + -0x644)) - (*puVar1 ^ DAT_182671f84) ^ DAT_182671f18;
  *(uint *)(lVar5 + -0x6c0) = uVar13;
  *(uint *)(lVar5 + -0x634) =
       (uVar13 ^ DAT_182671f18) * (uVar25 ^ *(uint *)(lVar5 + -0x94c)) ^ DAT_182671e84;
  uVar29 = DAT_182671cb4;
  uVar13 = DAT_182671c74;
  *(ulonglong *)(lVar5 + -0xc38) =
       *(longlong *)(lVar5 + -0x5e8) - (CONCAT44(uVar16,uVar16) ^ 0xc3d0ed5202db85ea);
  uVar23 = DAT_182671f44;
  lVar6 = DAT_182671c40;
  puVar35 = (uint *)(lVar5 - ((ulonglong)uVar31 ^ 0xebb175f2));
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x9e72bb0f)) = (uVar17 ^ *puVar35) * 0x1f ^ uVar29;
  lVar5 = DAT_182671c40;
  *(uint *)(lVar6 - ((ulonglong)uVar19 ^ 0xff3c5247)) =
       (*(uint *)(lVar6 + -0xae4) ^ uVar29) + (DAT_182671e84 ^ *(uint *)(lVar6 + -0x634)) ^ uVar23;
  uVar17 = (*(uint *)(lVar5 + -0x1c8) ^ uVar23) << 0xd ^ DAT_182671e14;
  *(ulonglong *)(lVar5 + -0xd88) =
       CONCAT44(uVar13,uVar16) ^ CONCAT44(uVar18,uVar18) ^ 0xf76a98f389dd9c2;
  bVar12 = (byte)DAT_182671c5c;
  *(uint *)(lVar5 - ((ulonglong)uVar19 ^ 0xff3c531b)) = uVar17;
  uVar17 = (*(uint *)(lVar5 + -0x1c8) ^ uVar23) >> ((bVar12 ^ 0x13) & 0x1f) ^ DAT_182671c9c;
  *(uint *)(lVar5 + -0x684) = uVar17;
  uVar24 = *(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4;
  uVar17 = (*(uint *)(lVar5 - ((ulonglong)uVar18 ^ 0x1000094)) ^ DAT_182671e14 |
           uVar17 ^ DAT_182671c9c) ^ DAT_182671f30;
  *(uint *)(lVar5 + -0x4ac) = uVar17;
  uVar8 = DAT_182671d70;
  uVar23 = DAT_182671ca4;
  lVar6 = DAT_182671c40;
  uVar25 = uVar24 + (uVar25 ^ *(uint *)(lVar5 + -0x94c)) ^ DAT_182671ca4;
  puVar2 = (uint *)(DAT_182671c40 + -0x61c);
  uVar17 = DAT_182671edc ^ DAT_182671f30 ^ uVar17;
  *puVar2 = uVar25;
  bVar12 = (byte)DAT_182671db4;
  uVar25 = uVar25 ^ DAT_182671d50 ^ uVar23;
  *(uint *)(lVar6 + -0x670) = uVar17;
  uVar17 = uVar17 ^ DAT_182671db8 ^ DAT_182671edc;
  *(uint *)(lVar6 + -0x644) = uVar8 ^ DAT_182671d50 ^ uVar25;
  *(uint *)(lVar6 + -0x54) = uVar25;
  uVar20 = (ulonglong)DAT_182671e38;
  *puVar1 = uVar17;
  uVar17 = DAT_182671d64;
  *(ulonglong *)(lVar6 - (uVar30 ^ 0x10005a0)) =
       *(longlong *)(lVar6 + -0x9a8) + 10 + (CONCAT44(uVar13,uVar31) ^ 0x9e72b1ebebb1729e) * 0x20 ^
       uVar20;
  uVar13 = DAT_182671d88;
  *(byte *)(lVar6 - (uVar33 ^ 0xebb1735d)) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x5a0) ^ uVar20) ^ bVar12 ^ (byte)DAT_182671e0c;
  uVar24 = (uint)(bVar12 ^ *(byte *)(lVar6 + -0x1c3));
  *(uint *)(lVar6 + -0x6c0) = uVar24 ^ uVar17;
  uVar25 = (*puVar1 ^ DAT_182671db8) + (uVar19 ^ 0x637e4191) ^ DAT_182671f68;
  uVar28 = uVar24 * 0x20000 ^ DAT_182671ce8;
  *(uint *)(lVar6 + -0x76c) = uVar25;
  uVar25 = (uVar25 ^ DAT_182671f68) + uVar24 * -0x20000;
  *(uint *)(lVar6 + -0x634) = uVar28;
  *(uint *)(lVar6 + -0xae4) = uVar25 ^ uVar13;
  puVar27 = (uint *)(lVar6 - ((ulonglong)uVar16 ^ 0xfe3c5247));
  *puVar27 = uVar25 * (uVar8 ^ *(uint *)(lVar6 + -0x644)) ^ DAT_182671fb0;
  uVar25 = DAT_182671d14;
  uVar17 = (*(uint *)(lVar6 + -0x6c0) ^ uVar17) * (uVar31 ^ 0xebb17294) ^ DAT_182671ce4;
  *(uint *)(lVar6 + -0x94) = uVar17;
  uVar13 = DAT_182671e7c;
  uVar24 = (*puVar27 ^ DAT_182671fb0) + (uVar17 ^ DAT_182671ce4);
  *(uint *)(lVar6 + -0x684) = uVar24 ^ DAT_182671e7c;
  uVar17 = DAT_182671e44;
  lVar5 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0x100094c)) = uVar24 * 0x2000 ^ DAT_182671e44;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar16 ^ 0xfe3c5593)) =
       (*(uint *)(lVar5 + -0x684) ^ uVar13) >> (((byte)uVar19 ^ 0x9c) & 0x1f) ^ uVar25;
  uVar24 = DAT_182671e28;
  uVar13 = DAT_182671c74;
  lVar5 = DAT_182671c40;
  puVar27 = (uint *)(DAT_182671c40 + -0x644);
  *(uint *)(DAT_182671c40 + -0x4ac) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0x9e72b7f7)) ^ uVar25 |
       uVar17 ^ *(uint *)(DAT_182671c40 + -0x94c)) ^ DAT_182671efc;
  *(uint *)(lVar5 + -0x54) =
       (*(uint *)(lVar5 - ((ulonglong)uVar16 ^ 0xfe3c565b)) ^ DAT_182671dd4) + (uVar8 ^ *puVar27) ^
       DAT_182671d48;
  uVar28 = *(uint *)(lVar5 - ((ulonglong)uVar13 ^ 0x9e72b1bf)) ^ uVar24 ^ DAT_182671d48;
  *(uint *)(lVar5 + -0x670) = uVar28;
  uVar8 = DAT_182671cc8;
  uVar17 = DAT_182671c6c;
  uVar13 = DAT_182671c54;
  *(uint *)(lVar5 - ((ulonglong)uVar18 ^ 0x10009dc)) = (uVar28 ^ uVar24) + (uVar25 ^ *puVar2);
  *(uint *)(lVar5 + -0x76c) = DAT_182671f00 ^ DAT_182671efc ^ *(uint *)(lVar5 + -0x4ac);
  bVar12 = (byte)DAT_182671d34;
  *(uint *)(lVar5 + -0x634) = *(uint *)(lVar5 + -0x670) ^ uVar8 ^ uVar24;
  uVar20 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar5 + -0x888) =
       (CONCAT44(uVar13,uVar17) ^ 0x9a23d01d8e2f190f) + 0xec00feb2265b372a;
  uVar15 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar5 - (uVar22 ^ 0xff3c596b)) =
       *(uint *)(lVar5 - (uVar20 ^ 0x9e72b687)) ^ DAT_182671f00 ^ uVar23;
  lVar6 = DAT_182671c40;
  *(uint *)(lVar5 + -0x6c0) = (*(uint *)(lVar5 - (uVar15 ^ 0x5f97be08)) ^ uVar24) * -0x4cdfa336;
  lVar5 = DAT_182671c40;
  uVar15 = (ulonglong)DAT_182671e70;
  puVar10 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c58 ^ 0x10001a0));
  *(ulonglong *)(DAT_182671c40 + -0x5a0) =
       *(longlong *)(lVar6 - ((ulonglong)DAT_182671c8c ^ 0x10009a8)) +
       (CONCAT44(uVar18,uVar19) ^ 0x1000000ff3c538f) * 0x20 +
       (CONCAT44(uVar31,uVar17) ^ 0xebb1729effffffea) ^ uVar15;
  uVar17 = DAT_182671ea8;
  uVar7 = DAT_182671c68;
  uVar20 = (ulonglong)DAT_182671c64;
  *(byte *)(lVar5 - (uVar30 ^ 0x10001c3)) =
       *(byte *)(*puVar10 ^ uVar15) ^ bVar12 ^ (byte)DAT_182671e0c;
  uVar18 = (uint)(*(byte *)(lVar5 - (uVar20 ^ 0x7b0536ce)) ^ bVar12);
  *(uint *)(lVar5 + -0x94) =
       (*(uint *)(lVar5 + -0xae4) ^ uVar23) + (uVar13 ^ 0x63bdede1) ^ DAT_182671dcc;
  bVar12 = (byte)DAT_182671c48;
  *(uint *)(lVar5 + -0x1c8) = uVar18 ^ uVar17;
  *(longlong *)(lVar5 + -0x228) = *(longlong *)(lVar5 + -0xa60) << ((bVar12 ^ 0x20) & 0x3f);
  uVar20 = (ulonglong)DAT_182671c60;
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c74 ^ 0x9e72b76f)) =
       uVar18 << (((byte)(uVar26 >> 0x18) ^ 0x8f) & 0x1f) ^ DAT_182671edc;
  *(byte *)(lVar5 - (uVar20 ^ 0x10005d3)) =
       *(byte *)((ulonglong)DAT_182671f48 ^ *(ulonglong *)(lVar5 + -0xbc0)) ^ (byte)DAT_182671e0c;
  uVar26 = (*(uint *)(lVar5 + -0x94) ^ DAT_182671dcc) - (*(uint *)(lVar5 + -0x684) ^ DAT_182671edc)
           ^ DAT_182671dd8;
  *(uint *)(lVar5 + -0x94c) = uVar26;
  uVar18 = DAT_182671d20;
  uVar25 = (*(uint *)(lVar5 - (uVar22 ^ 0xff3c55bb)) ^ uVar8) * (uVar26 ^ DAT_182671dd8);
  *(uint *)(lVar5 + -0x54) =
       (*(uint *)(lVar5 + -0x1c8) ^ uVar17) * (uVar16 ^ 0xfe3c539a) ^ DAT_182671e88;
  *(uint *)(lVar5 + -0x644) = uVar25 ^ uVar18;
  uVar26 = DAT_182671f74;
  uVar23 = DAT_182671f58;
  uVar17 = DAT_182671d8c;
  uVar25 = (*(uint *)(lVar5 - ((ulonglong)uVar16 ^ 0xfe3c53db)) ^ DAT_182671e88) + uVar25;
  uVar30 = (ulonglong)DAT_182671f58;
  uVar24 = uVar25 ^ DAT_182671f74;
  *(ulonglong *)(lVar5 + -0xf0) = (CONCAT44(uVar19,DAT_182671c78) ^ 0xc7f1bbba3aa573eb) * 2;
  uVar18 = DAT_182671c94;
  *puVar2 = uVar24;
  lVar5 = DAT_182671c40;
  *puVar1 = uVar25 << (((byte)uVar13 ^ 0xf2) & 0x1f) ^ uVar29;
  pbVar21 = (byte *)(lVar5 - ((ulonglong)uVar18 ^ 0x7ebcd61c));
  uVar20 = (ulonglong)DAT_182671c74;
  *pbVar21 = *(byte *)(*(ulonglong *)(lVar5 + -0x170) ^ (ulonglong)DAT_182671cfc) ^
             (byte)DAT_182671e0c;
  uVar26 = (uVar26 ^ *puVar2) >> 0x13;
  *(uint *)(lVar5 + -0x4ac) = uVar26 ^ uVar17;
  uVar13 = DAT_182671c4c;
  uVar34 = (ulonglong)DAT_182671c4c;
  *puVar35 = (*(uint *)(lVar5 - (uVar20 ^ 0x9e72b837)) ^ uVar29 | uVar26) ^ uVar23;
  uVar26 = DAT_182671dfc;
  uVar36 = (ulonglong)DAT_182671dfc;
  *(uint *)(lVar5 - (uVar22 ^ 0xff3c55ff)) =
       (*(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4) + (uVar8 ^ *(uint *)(lVar5 + -0x634)) ^
       DAT_182671da8;
  uVar19 = *(uint *)(lVar5 - (uVar33 ^ 0xebb174ee)) ^ DAT_182671fac ^ DAT_182671da8;
  *(uint *)(lVar5 + -0x6c0) = uVar19;
  *(ulonglong *)(lVar5 + -0x828) =
       CONCAT44(uVar13,uVar16) ^ 0xd6c83a84d98e3dca | *(ulonglong *)(lVar5 + -0x7e8);
  uVar8 = DAT_182671ed4;
  uVar32 = (ulonglong)DAT_182671c80;
  *(uint *)(lVar5 + -0xae4) = *(uint *)(lVar5 + -0x76c) ^ uVar26 ^ uVar23;
  *(uint *)(lVar5 + -0x94) = uVar19 ^ uVar8 ^ DAT_182671fac;
  uVar26 = *(uint *)(lVar5 - (uVar32 ^ 0x1000ef4)) ^ uVar26;
  uVar20 = CONCAT44(DAT_182671c64,DAT_182671c60);
  *(uint *)(lVar5 + -0x684) = uVar26 ^ uVar17;
  uVar19 = DAT_182671df0;
  bVar12 = (byte)DAT_182671d58;
  lVar5 = DAT_182671c40;
  uVar15 = (ulonglong)DAT_182671c90;
  uVar13 = uVar26 + (uVar18 ^ 0xe2fec5c1) ^ DAT_182671e1c;
  pbVar14 = (byte *)((uVar20 ^ 0x7b05370d01000410) +
                     (CONCAT44(uVar7,DAT_182671c90) ^ 0x818084508b087151) * 0x20 +
                    *(longlong *)(DAT_182671c40 + -0x9a8));
  uVar4 = *(undefined8 *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0x5a0) = (ulonglong)pbVar14 ^ uVar30;
  uVar29 = DAT_182671ea4;
  *(byte *)(lVar5 + -0x1c3) = *pbVar14 ^ bVar12 ^ (byte)DAT_182671e0c;
  uVar18 = DAT_182671c50;
  uVar26 = (uint)(bVar12 ^ *pbVar21);
  *(uint *)(lVar5 + -0x1c8) = uVar13;
  uVar17 = DAT_182671c70;
  *(uint *)(lVar5 + -0x94c) = uVar26 ^ uVar29;
  lVar6 = DAT_182671c40;
  *(longlong *)(lVar5 + -0xa70) = -0x389c8b92a6112701 << ((byte)uVar4 & 0x3f);
  uVar30 = (ulonglong)DAT_182671c78;
  *(uint *)(lVar6 - (uVar30 ^ 0x87476ee4)) = uVar26 << (bVar11 & 0x1f) ^ uVar19;
  *(ulonglong *)(lVar6 + -0x680) =
       (CONCAT44(uVar17,uVar18) ^ 0x237636fa30c7337d) >>
       ((byte)*(undefined8 *)(lVar6 + -0x30) & 0x3f);
  uVar26 = DAT_182671e10;
  uVar13 = (*(uint *)(lVar6 - (uVar32 ^ 0x10005d8)) ^ DAT_182671e1c) -
           (uVar19 ^ *(uint *)(lVar6 + -0x644)) ^ DAT_182671e50;
  *(uint *)(lVar6 + -0x54) = uVar13;
  uVar20 = (ulonglong)DAT_182671c58;
  *puVar2 = (*(uint *)(lVar6 + -0x94) ^ uVar8) * (uVar13 ^ DAT_182671e50) ^ uVar26;
  uVar23 = DAT_182671e24;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c54 ^ 0xfffff69f)) =
       *(ulonglong *)(lVar6 - (uVar20 ^ 0x1000e78)) | *(ulonglong *)(lVar6 + -0x8f0);
  uVar25 = DAT_182671edc;
  uVar13 = *puVar2;
  uVar29 = (uVar29 ^ *(uint *)(lVar6 + -0x94c)) * (DAT_182671c5c ^ 0x1000000) ^ DAT_182671ebc;
  *puVar1 = uVar29;
  uVar13 = (uVar29 ^ DAT_182671ebc) + (uVar26 ^ uVar13);
  bVar12 = (byte)DAT_182671c60;
  *(uint *)(lVar6 + -0x4ac) = uVar13 ^ uVar23;
  uVar26 = DAT_182671c8c;
  *(uint *)(lVar6 + -0x634) = uVar13 << ((bVar12 ^ 0x1d) & 0x1f) ^ uVar25;
  uVar13 = DAT_182671c6c;
  *(byte *)(lVar6 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar6 - (uVar15 ^ 0x8b087d71)) ^ (ulonglong)DAT_182671eb4) ^
       (byte)DAT_182671e0c;
  uVar29 = DAT_182671eac;
  *(uint *)(lVar6 - ((ulonglong)uVar13 ^ 0xfffff98f)) =
       (*(uint *)(lVar6 - (uVar33 ^ 0xebb17632)) ^ uVar23) >> (((byte)uVar26 ^ 0x13) & 0x1f) ^
       DAT_182671eac;
  *(uint *)(lVar6 + -0x76c) =
       (uVar29 ^ *(uint *)(lVar6 + -0x670) | uVar25 ^ *(uint *)(lVar6 + -0x634)) ^ DAT_182671d78;
  uVar15 = (ulonglong)DAT_182671c60;
  *(longlong *)(lVar6 - ((ulonglong)uVar18 ^ 0x78b89d0f)) =
       *(longlong *)(lVar6 + -0x680) <<
       ((byte)*(undefined8 *)(lVar6 - ((ulonglong)DAT_182671c74 ^ 0x9e72b3c3)) & 0x3f);
  uVar26 = (*(uint *)(lVar6 + -0x5d4) ^ DAT_182671dd4) + (*(uint *)(lVar6 + -0x94) ^ uVar8) ^
           DAT_182671e94;
  *(uint *)(lVar6 + -0x6c0) = uVar26;
  *(uint *)(lVar6 - (uVar34 ^ 0x7f7f7554)) = uVar26 ^ DAT_182671e94 ^ DAT_182671e84;
  uVar23 = *(uint *)(lVar6 + -0x76c) ^ DAT_182671cac ^ DAT_182671d78;
  uVar20 = (ulonglong)DAT_182671c70;
  *(longlong *)(lVar6 + -0x2b0) =
       *(longlong *)(lVar6 - (uVar15 ^ 0x1000018)) << ((byte)*(undefined8 *)(lVar6 + -0x960) & 0x3f)
  ;
  *(uint *)(lVar6 + -0x684) = uVar23;
  uVar26 = DAT_182671cd0 ^ DAT_182671cac;
  *(uint *)(lVar6 + -0x1c8) =
       *(uint *)(lVar6 - (uVar20 ^ 0x5f97b29c)) ^ DAT_182671d38 ^ DAT_182671e84;
  *(uint *)(lVar6 + -0x644) = uVar26 ^ uVar23;
  *(ulonglong *)(lVar6 + -0xbc0) =
       *(longlong *)(lVar6 - ((ulonglong)DAT_182671c64 ^ 0x7b053ea5)) +
       (CONCAT44(DAT_182671c8c,uVar18) ^ 0x100000078b8975f) * 0x20 +
       (CONCAT44(uVar17,DAT_182671c8c) ^ 0x5f97b8780100000b) ^ uVar36;
  *(uint *)(lVar6 - (uVar30 ^ 0x874768f4)) =
       (DAT_182671c54 ^ 0xf11cdee3) << (((byte)uVar16 ^ 0x87) & 0x1f);
  *(byte *)(lVar6 + -0x1c3) =
       *(byte *)(uVar36 ^ *(ulonglong *)(lVar6 + -0xbc0)) ^ (byte)uVar19 ^ (byte)DAT_182671e0c;
  *(undefined8 *)(lVar6 - (uVar15 ^ 0x1000f30)) = 0x6ea16e682256bc30;
  uVar18 = DAT_182671f70;
  *(uint *)(lVar6 + -0x94c) = uVar19 & 0xff ^ (uint)*(byte *)(lVar6 + -0x1c3) ^ DAT_182671f04;
  *(uint *)(lVar6 - (uVar22 ^ 0xff3c5593)) =
       (*(uint *)(lVar6 - (uVar33 ^ 0xebb174da)) ^ DAT_182671cd0) + (DAT_182671c74 ^ 0x230a3f5) ^
       uVar18;
  *puVar1 = (uVar18 ^ *puVar2) * (uVar13 ^ 0xa625f915);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar9 * 4) = uVar3 ^ uVar31;
  return;
}



############ FUN_ 180ffa980 size=5853 ############

void FUN_180ffa980(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  int *piVar4;
  undefined8 *puVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  undefined4 uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  byte local_68;
  
  uVar21 = DAT_182671ebc;
  uVar16 = DAT_182671c74;
  uVar13 = DAT_182671c5c;
  uVar10 = DAT_182671c48;
  lVar7 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c74;
  uVar31 = (ulonglong)DAT_182671c48;
  uVar45 = (ulonglong)DAT_182671c5c;
  uVar35 = DAT_182671c48 + DAT_182671c5c;
  uVar39 = (DAT_182671c74 << 0x10 | DAT_182671c74 & 0xff00) << 8 | DAT_182671c74 >> 8 & 0xff00 |
           DAT_182671c74 >> 0x18;
  uVar22 = *(uint *)(&DAT_182613218 + DAT_182672090) ^ DAT_182671c74;
  uVar6 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar35 ^ 0x2626b9c5) + (longlong)DAT_182672090);
  uVar36 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar49 = (ulonglong)uVar39;
  uVar26 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar50 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  DAT_182671c60 = uVar39;
  DAT_182671c6c = uVar35;
  *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x5244f821)) =
       (uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0x888)) -
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0xc1c045d)) ^ uVar36) ^ uVar50;
  uVar12 = DAT_182671e6c;
  *(ulonglong *)(lVar7 + -0xa78) =
       (CONCAT44(uVar10,uVar10) ^ 0xc5bf6fad760a2ee6) <<
       (((byte)uVar21 ^ *(byte *)(lVar7 + -0xc38)) & 0x3f);
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar42 = CONCAT44(DAT_182671f44,DAT_182671f44);
  puVar1 = (ulonglong *)(lVar7 + -0xbd8);
  *(ulonglong *)(lVar7 + -0xda8) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar16 ^ 0x31f949da)) ^ *(ulonglong *)(lVar7 + -0x228) ^
       uVar42 ^ uVar28 ^ uVar36;
  uVar12 = DAT_182671f00;
  lVar8 = DAT_182671c40;
  bVar30 = (byte)uVar35;
  *puVar1 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar16 ^ 0x31f94542)) ^ uVar50) >>
            ((bVar30 ^ 0xe8) & 0x3f);
  uVar36 = (*(ulonglong *)(lVar7 + -0xda8) ^ uVar28) >> (((byte)uVar16 ^ 0x4b) & 0x3f);
  puVar2 = (ulonglong *)(lVar7 + -0xc90);
  *puVar2 = uVar36 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671ed0;
  lVar9 = DAT_182671c40;
  uVar40 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar39 ^ 0x5244f499)) ^ uVar28) <<
           (((byte)uVar16 ^ 0x75) & 0x3f);
  uVar29 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar40 ^ CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar40 = uVar40 | uVar36;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar9 + -0xa78) = uVar40 ^ uVar29;
  uVar12 = DAT_182671cb8;
  uVar36 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar13 ^ 0xc1c0bfd)) ^ uVar42) -
           (CONCAT44(uVar35,uVar10) ^ 0x5a761d4495b122a8);
  *(ulonglong *)(lVar8 + -0xc38) = uVar36 ^ uVar33;
  uVar46 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar8 - (uVar49 ^ 0x5244f4b9)) = uVar36 - uVar40 ^ uVar46;
  uVar25 = DAT_182671c7c;
  puVar3 = (ulonglong *)(lVar8 + -0x960);
  uVar47 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar40 = (ulonglong)DAT_182671c7c;
  *puVar1 = (*(ulonglong *)(lVar8 - (uVar27 ^ 0x31f94e2a)) ^ uVar29) -
            (CONCAT44(uVar16,uVar13) ^ 0xaa24440e30f5d183) ^ uVar47;
  uVar17 = DAT_182671c7c;
  uVar23 = (uVar25 << 0x10 | uVar25 & 0xff00) << 8 | uVar25 >> 8 & 0xff00 | DAT_182671c7c >> 0x18;
  uVar42 = (ulonglong)uVar23;
  uVar37 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar32 = CONCAT44(DAT_182671d00,DAT_182671d00);
  puVar24 = (ulonglong *)(lVar8 - (uVar42 ^ 0xefea599c));
  puVar43 = (ulonglong *)(lVar8 - ((ulonglong)uVar25 ^ 0x8c58e67f));
  DAT_182671c94 = uVar23;
  *puVar43 = uVar32 ^ uVar37 ^ *puVar24 ^ *puVar3 ^ uVar50;
  lVar7 = DAT_182671c40;
  bVar38 = (byte)uVar25;
  uVar34 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar36 = *puVar2;
  *(ulonglong *)(DAT_182671c40 + -0x888) = (uVar37 ^ *puVar2) >> ((bVar38 ^ 0xce) & 0x3f) ^ uVar34;
  uVar12 = DAT_182671f64;
  lVar8 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  puVar51 = (ulonglong *)(lVar7 - ((ulonglong)uVar35 ^ 0x2626bbfd));
  *puVar51 = (uVar37 ^ uVar36) << ((bVar38 ^ 0xf0) & 0x3f) ^ uVar27;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar8 + -0xc38) =
       (uVar34 ^ *(ulonglong *)(lVar8 + -0x888) | uVar27 ^ *(ulonglong *)(lVar8 + -0x228)) ^ uVar37;
  lVar7 = DAT_182671c40;
  puVar48 = (ulonglong *)(lVar8 - ((ulonglong)uVar25 ^ 0x8c58ebff));
  uVar36 = CONCAT44(DAT_182671f98,DAT_182671f98);
  puVar41 = (ulonglong *)(lVar8 - (uVar42 ^ 0xefea51ec));
  *puVar41 = (*puVar48 ^ uVar50) - (CONCAT44(uVar25,uVar23) ^ 0x9158b62887a7af91) ^ uVar36;
  uVar34 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  uVar27 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *puVar43 = (*(ulonglong *)(lVar7 - (uVar49 ^ 0x5244f051)) ^ uVar36) -
             (uVar37 ^ *(ulonglong *)(lVar7 + -0xc38)) ^ uVar34;
  uVar36 = (CONCAT44(uVar35,uVar23) ^ 0xa04a9da3e141a475) +
           (uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) ^ uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar36;
  lVar7 = DAT_182671c40;
  uVar37 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar36 = uVar37 ^ uVar36 ^ uVar27 ^ uVar46 ^ *(ulonglong *)(DAT_182671c40 + -0xd88);
  puVar43 = (ulonglong *)(DAT_182671c40 + -0x110);
  *puVar43 = uVar36;
  uVar44 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *puVar41 = (uVar37 ^ uVar36) >> (((byte)uVar10 ^ 5) & 0x3f) ^ uVar44;
  uVar12 = DAT_182671dd0;
  *(ulonglong *)(lVar7 + -0x228) =
       CONCAT44(uVar13,uVar16) ^ *(ulonglong *)(lVar7 + -0xda8) ^ uVar28 ^ 0x2146492c6e71575b;
  lVar7 = DAT_182671c40;
  uVar27 = CONCAT44(uVar12,uVar12);
  puVar41 = (ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = (uVar37 ^ *puVar43) << ((bVar30 ^ 0xee) & 0x3f) ^ uVar27;
  uVar11 = DAT_182671c50;
  *(ulonglong *)(lVar7 - (uVar31 ^ 0x1a0ab888)) = uVar29 ^ *puVar41 ^ 0x433bfe8fc29a82df;
  uVar31 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar36 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0x34cac79c)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x5244f509)) ^ uVar27 | uVar44 ^ *puVar3) ^ uVar31;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x31f9467a)) =
       CONCAT44(uVar23,uVar10) ^ 0xb0bb2eccfe383a93 | uVar44 ^ *puVar3;
  puVar41 = (ulonglong *)(lVar7 - (uVar42 ^ 0xefea5524));
  uVar28 = CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar36 = *(ulonglong *)(lVar7 + -0xda8);
  *puVar43 = (uVar46 ^ *(ulonglong *)(lVar7 + -0xd88)) - (uVar31 ^ *puVar41) ^ uVar28;
  uVar23 = DAT_182671e4c;
  uVar27 = (ulonglong)DAT_182671e4c;
  *(ulonglong *)(lVar7 + -0xa78) =
       (uVar31 ^ uVar36) + (CONCAT44(uVar25,uVar39) ^ 0x4d585d4f22963f70);
  uVar12 = DAT_182671f2c;
  uVar11 = DAT_182671c4c;
  uVar36 = CONCAT44(uVar23,uVar23);
  uVar42 = *(ulonglong *)(lVar7 - (uVar49 ^ 0x5244f2e9)) ^ uVar36 ^ uVar34 ^ uVar47 ^ *puVar2;
  uVar47 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(lVar7 + -0x888) = uVar42;
  uVar42 = (uVar42 >> 0x20 ^ uVar27) >> 5;
  *(ulonglong *)(lVar7 + -0xc38) = uVar42 ^ uVar47;
  uVar36 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xfdfd5777)) ^ uVar36) << 0x1b;
  uVar27 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *puVar3 = uVar36 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 + -0x228) = (uVar42 | uVar36) ^ uVar27;
  lVar7 = DAT_182671c40;
  uVar25 = DAT_182671c6c ^ 0xf5284cda;
  uVar42 = CONCAT44(DAT_182671f28,DAT_182671f28);
  piVar4 = (int *)(DAT_182671c40 + -0x61c);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = (uVar34 ^ *puVar2) - (*puVar51 ^ uVar27) ^ uVar42;
  *(uint *)(lVar7 - (uVar40 ^ 0x8c58ec9f)) = uVar25 + *piVar4;
  uVar12 = DAT_182671d80;
  uVar25 = DAT_182671c68;
  uVar36 = CONCAT44(DAT_182671d74,DAT_182671d74);
  uVar27 = uVar28 ^ *puVar48 ^ *(ulonglong *)(lVar7 + -0x228) ^ uVar36 ^ uVar27;
  *(ulonglong *)(lVar7 + -0xa78) = uVar27;
  uVar23 = DAT_182671c58;
  lVar8 = DAT_182671c40;
  uVar37 = (*(ulonglong *)(lVar7 - (uVar49 ^ 0x5244f349)) ^ uVar36) >> (((byte)uVar25 ^ 7) & 0x3f);
  *puVar1 = uVar37 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e0c;
  uVar15 = DAT_182671c90;
  uVar27 = (uVar27 ^ uVar36) << ((bVar38 ^ 0xc6) & 0x3f);
  uVar36 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar8 + -0x888) = uVar27 ^ CONCAT44(DAT_182671f54,DAT_182671f54);
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar8 - (uVar36 ^ 0x3d985963)) = (uVar37 | uVar27) ^ uVar34;
  uVar14 = DAT_182671c88;
  uVar25 = DAT_182671c50;
  uVar46 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  puVar48 = (ulonglong *)(lVar8 - (uVar45 ^ 0xc1c00b5));
  *puVar48 = (*(ulonglong *)(lVar8 - (uVar45 ^ 0xc1c08c5)) ^ uVar28) -
             (*(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0x5ffff1c5)) ^ uVar34) ^ uVar46;
  uVar12 = DAT_182671c54;
  uVar36 = *(ulonglong *)(lVar8 + -0xda8);
  uVar27 = *(ulonglong *)(lVar8 + -0xd88);
  *puVar2 = CONCAT44(DAT_182671c54,uVar25) ^ *(ulonglong *)(lVar8 + -0xd88) ^ uVar42 ^
            0xa62e51c6dbc5b9db;
  uVar20 = DAT_182671c8c;
  uVar37 = CONCAT44(DAT_182671e28,DAT_182671e28);
  uVar28 = CONCAT44(uVar11,DAT_182671c78);
  uVar27 = uVar31 ^ uVar36 ^ uVar27 ^ uVar37 ^ uVar42;
  *(ulonglong *)(lVar8 + -0x228) = uVar27;
  uVar21 = DAT_182671ef0;
  *(ulonglong *)(lVar8 + -0xa78) = uVar28 ^ CONCAT44(uVar10,uVar39) ^ 0x588c1cdf3b4258c9;
  uVar18 = DAT_182671c84;
  uVar28 = CONCAT44(uVar21,uVar21);
  uVar36 = CONCAT44(DAT_182671c64,uVar10);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0x31f94f8a)) =
       (uVar27 ^ uVar37) >> (((byte)DAT_182671c74 ^ 0x7a) & 0x3f) ^ uVar28;
  uVar21 = DAT_182671f5c;
  uVar11 = DAT_182671c68;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x888) =
       (uVar36 ^ 0xef75d7e5259eee29) + (CONCAT44(uVar18,uVar14) ^ 0xb3448b13e3c95b2b);
  uVar15 = DAT_182671c80;
  uVar36 = CONCAT44(uVar21,uVar21);
  *puVar43 = (*(ulonglong *)(lVar7 + -0x228) ^ uVar37) << (((byte)uVar12 ^ 0x43) & 0x3f) ^ uVar36;
  lVar8 = DAT_182671c40;
  uVar36 = *(ulonglong *)(lVar7 - ((ulonglong)uVar25 ^ 0x34cacb24)) ^ uVar36 | *puVar1 ^ uVar28;
  uVar27 = uVar36 ^ uVar47;
  *puVar2 = uVar27;
  uVar49 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar7 + -0xda8) =
       **(ulonglong **)(lVar7 - ((ulonglong)uVar15 ^ 0x3d98554b)) ^ uVar49;
  *(ulonglong *)(lVar7 + -0xa78) = (*(ulonglong *)(lVar7 + -0xd88) ^ uVar42) - uVar36 ^ uVar26;
  uVar25 = DAT_182671c9c;
  uVar14 = DAT_182671c70;
  uVar36 = (ulonglong)DAT_182671c9c;
  *(ulonglong *)(lVar8 + -0x888) =
       *(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0xdb093668)) ^ uVar26 |
       CONCAT44(DAT_182671c70,uVar35) ^ 0x6f2350eb5bf427d9;
  uVar28 = CONCAT44(uVar25,uVar25);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar47 ^ *puVar3 ^ uVar27 ^ uVar28 ^ uVar46;
  lVar7 = DAT_182671c40;
  *puVar1 = (CONCAT44(uVar15,uVar35) ^ 0x8c8cdb9c2dcd9ecf) >> ((bVar30 ^ 0xc2) & 0x3f);
  uVar31 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *puVar24 = (*(ulonglong *)(lVar7 + -0x228) >> 0x20 ^ uVar36) >> 0x14 ^ uVar31;
  uVar12 = DAT_182671f18;
  uVar25 = DAT_182671c74;
  uVar27 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar14 ^ 0x7df95df7)) ^ uVar28) <<
           (((byte)uVar11 ^ 0x1c) & 0x3f);
  *(ulonglong *)(lVar7 + -0xda8) = uVar27 ^ CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar21 = DAT_182671f58;
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar27 = *puVar43 ^ uVar31 | uVar27;
  *(uint *)(lVar7 + -0x27c) = (uVar25 ^ 0xb9fd5a70) - (DAT_182671c60 ^ 0x62ad2aa2);
  uVar36 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar7 + -0xd88) = uVar27 ^ uVar42;
  uVar12 = DAT_182671cec;
  uVar28 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar7 + -0x888) =
       (*(ulonglong *)(lVar7 - (uVar36 ^ 0x3d985c3b)) ^ uVar46) - uVar27 ^ uVar28;
  uVar19 = DAT_182671c88;
  uVar11 = DAT_182671c50;
  uVar46 = CONCAT44(uVar12,uVar12);
  uVar36 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c4c ^ 0xfdfd536f)) =
       *(ulonglong *)(lVar7 + -0xa78) ^ uVar26 ^ *(ulonglong *)(lVar7 + -0xc38) ^ uVar46 ^ uVar34;
  uVar27 = (ulonglong)DAT_182671c78;
  *puVar1 = (*(ulonglong *)(lVar7 - (uVar36 ^ 0x7178579e)) ^ uVar46) >>
            (((byte)DAT_182671c84 ^ 0x33) & 0x3f) ^ uVar33;
  uVar12 = DAT_182671ea8;
  uVar27 = (*(ulonglong *)(lVar7 - (uVar27 ^ 0x7dff6890)) ^ uVar46) << ((bVar38 ^ 0xe8) & 0x3f);
  uVar36 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar7 + -0x228) = uVar27 ^ CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar21 = DAT_182671f0c;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar27 = *(ulonglong *)(lVar7 - (uVar36 ^ 0x3d985e83)) ^ uVar33 | uVar27;
  *(ulonglong *)(lVar7 + -0xda8) = uVar27 ^ uVar37;
  uVar31 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c64 ^ 0x613c5023)) =
       (*(ulonglong *)(lVar7 + -0xa78) ^ uVar26) - uVar27 ^ uVar31;
  uVar36 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *puVar48 = *(ulonglong *)(lVar7 + -0xda8) ^ *(ulonglong *)(lVar7 + -0x888) ^ uVar36 ^ uVar37 ^
             uVar28;
  uVar25 = DAT_182671c64;
  uVar33 = (ulonglong)DAT_182671c64;
  uVar27 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       (*puVar3 ^ uVar36) >> ((byte)DAT_182671c58 & 0x3f) ^ uVar27;
  uVar15 = DAT_182671c90;
  uVar26 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0x5ffff16d)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x613c5853)) ^ uVar36) <<
       (((byte)DAT_182671c54 ^ 0x69) & 0x3f) ^ uVar26;
  *(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x8c58e8c7)) =
       (uVar26 ^ *puVar2 | *(ulonglong *)(DAT_182671c40 + -0xc38) ^ uVar27) ^ uVar50;
  *puVar1 = (uVar26 ^ *puVar2) << (((byte)uVar15 ^ 0xee) & 0x3f);
  lVar7 = DAT_182671c40;
  uVar36 = (*(ulonglong *)(DAT_182671c40 + -0x888) ^ uVar28) -
           (CONCAT44(uVar20,uVar39) ^ 0x30f2315e489e078c);
  puVar5 = (undefined8 *)(DAT_182671c40 + -0x2e8);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar36 ^ uVar34;
  uVar12 = DAT_182671e68;
  *(ulonglong *)(lVar7 + -0xda8) = *(ulonglong *)*puVar5 ^ uVar49;
  uVar20 = DAT_182671cf4;
  uVar15 = DAT_182671c70;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar27 = (ulonglong)DAT_182671cf4;
  *puVar3 = uVar36 - (*(ulonglong *)(lVar7 + -0x228) ^ uVar50) ^ uVar28;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar15 ^ 0x7df953e7)) =
       (CONCAT44(uVar14,DAT_182671c58) ^ 0xdd0d75cea9b39622) -
       (CONCAT44(uVar11,uVar13) ^ 0x6c1d0a1fd9d5b75c);
  uVar40 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *puVar2 = (*(ulonglong *)(lVar7 + -0x228) ^ uVar50) -
            (CONCAT44(uVar19,uVar10) ^ 0x9c698430ece27a60) ^ uVar40;
  uVar11 = DAT_182671c8c;
  uVar26 = (ulonglong)DAT_182671c8c;
  *puVar1 = *puVar43 ^ CONCAT44(uVar20,uVar20) ^ uVar31 ^ *(ulonglong *)(lVar7 + -0xd88) ^ uVar42;
  uVar42 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar25 ^ 0x613c59bb)) =
       *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0x103c0203)) >> 0x10 ^
       ((ulonglong)(uVar20 >> 0x10) | uVar27 << 0x10) ^ uVar42;
  uVar36 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *puVar41 = (*puVar1 ^ CONCAT44(uVar20,uVar20)) << 0x30 ^ uVar36;
  lVar7 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x3d985f23)) =
       (*(ulonglong *)(DAT_182671c40 + -0xda8) ^ uVar36 |
       *(ulonglong *)(DAT_182671c40 + -0x888) ^ uVar42) ^ uVar27;
  uVar12 = DAT_182671cc0;
  puVar41 = (ulonglong *)(lVar7 - ((ulonglong)DAT_182671c88 ^ 0xefea599c));
  uVar36 = (uVar31 ^ *puVar41) - (CONCAT44(uVar10,DAT_182671c88) ^ 0x81d7b05cd30380da);
  uVar27 = *(ulonglong *)(lVar7 + -0xa78) ^ uVar27;
  *(ulonglong *)(lVar7 + -0xc38) = uVar36 ^ CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar42 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 + -0x228) = uVar36 - uVar27 ^ uVar29;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c84 ^ 0xb0001782)) =
       (CONCAT44(uVar16,uVar25) ^ 0x97bcc860a7db978b) + uVar27 ^ uVar42;
  uVar31 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *puVar1 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c68 ^ 0xdb093570)) ^ uVar31 ^ uVar42 ^
            uVar28 ^ *(ulonglong *)(lVar7 + -0xd88);
  *(ulonglong *)(lVar7 + -0x888) =
       (CONCAT44(uVar23,uVar35) ^ 0x4d56d87f7e44b723) -
       (CONCAT44(uVar39,uVar11) ^ 0x6dc9711ac7221a07);
  local_68 = (byte)(uVar16 >> 0x18);
  uVar27 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = (*puVar1 ^ uVar31) >> ((local_68 ^ 0x11) & 0x3f) ^ uVar27
  ;
  uVar36 = (ulonglong)DAT_182671c78;
  *puVar41 = (CONCAT44(uVar39,uVar25) ^ 0xc8fbc786b1222981) -
             (CONCAT44(uVar35,uVar13) ^ 0x10abc421ab765eb8);
  uVar10 = DAT_182671c4c;
  lVar7 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671c4c;
  puVar41 = (ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x7dff6510));
  *(ulonglong *)(DAT_182671c40 + -0xc38) =
       (*puVar1 ^ uVar31) << (((byte)(uVar17 >> 0x18) ^ 0xac) & 0x3f) ^ uVar46;
  uVar12 = DAT_182671dc8;
  uVar36 = *puVar3;
  *(ulonglong *)(lVar7 + -0xa78) = *puVar41 ^ CONCAT44(uVar18,uVar10) ^ 0xf3cca2603e41271c;
  lVar8 = DAT_182671c40;
  uVar27 = *(ulonglong *)(lVar7 - (uVar42 ^ 0xfdfd53c7)) ^ uVar46 |
           *(ulonglong *)(lVar7 + -0xda8) ^ uVar27;
  *(ulonglong *)(lVar7 + -0xd88) = uVar27 ^ CONCAT44(uVar12,uVar12);
  lVar7 = DAT_182671c40;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c50 ^ 0x34cac2bc)) =
       (uVar36 ^ uVar28) - uVar27 ^ uVar44;
  uVar10 = DAT_182671c90;
  uVar36 = (ulonglong)DAT_182671ea4;
  uVar28 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  uVar27 = uVar29 ^ *(ulonglong *)(lVar7 + -0x228) ^ uVar28 ^ uVar40 ^ *puVar2;
  *puVar1 = uVar27;
  uVar40 = CONCAT44(DAT_182671e80,DAT_182671e80);
  uVar36 = uVar27 >> 0x20 ^ uVar40 ^ uVar36;
  uVar27 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *puVar43 = uVar36;
  uVar12 = DAT_182671e74;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0x5ffff625)) ^ uVar28) <<
       (((byte)uVar15 ^ 0xff) & 0x3f) ^ uVar27;
  uVar21 = DAT_182671f08;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar27 = (*(ulonglong *)(lVar8 - (uVar26 ^ 0x103c03a3)) ^ uVar27 | uVar36 ^ uVar40) ^ uVar28;
  *(ulonglong *)(lVar8 + -0xda8) = uVar27;
  uVar36 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar8 + -0xc38) =
       (uVar29 ^ *(ulonglong *)(lVar8 + -0x228)) -
       (*(ulonglong *)(lVar8 - (uVar45 ^ 0xc1c047d)) ^ uVar28) ^ CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar8 - (uVar36 ^ 0xefea51ec)) =
       uVar44 ^ uVar32 ^ uVar27 ^ *(ulonglong *)(lVar8 + -0x888) ^ uVar28;
  uVar28 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar27 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_182671c80 ^ 0x3d9859cb)) =
       (uVar32 ^ *puVar3) >> (((byte)DAT_182671c58 ^ 0x34) & 0x3f) ^ uVar28;
  uVar45 = (uVar32 ^ *puVar3) << (((byte)uVar10 ^ 0xfb) & 0x3f);
  uVar36 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *puVar1 = uVar45 ^ uVar27;
  *puVar43 = (uVar45 | uVar28 ^ *puVar2) ^ uVar36;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar6 ^ uVar39) * 4) = uVar22;
  return;
}



############ FUN_ 181000d70 size=3561 ############

void FUN_181000d70(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  uint uVar15;
  byte bVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte *pbVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  
  uVar5 = DAT_182671d74;
  uVar9 = DAT_182671c88;
  uVar6 = DAT_182671c7c;
  uVar8 = DAT_182671c70;
  uVar4 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c70;
  uVar23 = DAT_182671c4c | DAT_182671c8c;
  uVar12 = DAT_182671c70 & 3;
  uVar21 = (ulonglong)DAT_182671c88;
  if (uVar12 < 2) {
    uVar24 = DAT_182671c5c;
    if (uVar12 == 0) {
      uVar24 = DAT_182671c70;
    }
  }
  else {
    uVar24 = DAT_182671c64;
    if (uVar12 < 3) {
      uVar24 = DAT_182671c88;
    }
  }
  uVar22 = (ulonglong)DAT_182671c7c;
  uVar25 = DAT_182671c80 | DAT_182671c7c;
  uVar12 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c80 ^ 0x64d27326) + (longlong)DAT_1826720a8);
  uVar19 = *(uint *)(&DAT_182613218 + DAT_1826720a8) ^ DAT_182671c7c;
  uVar26 = (ulonglong)DAT_182671ee0;
  uVar28 = (ulonglong)DAT_182671e24;
  uVar31 = (ulonglong)DAT_182671c48;
  uVar14 = *(ulonglong *)(DAT_182671c40 + -0x108);
  uVar20 = *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0xecfffbcf));
  DAT_182671c54 = uVar24;
  DAT_182671c6c = uVar23;
  DAT_182671c78 = uVar25;
  *(ulonglong *)(DAT_182671c40 + -0xb0) = uVar14 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x870) = uVar20 ^ uVar28;
  lVar2 = *(longlong *)(lVar3 - ((ulonglong)DAT_182671c5c ^ 0x608d4534));
  *(ulonglong *)(lVar3 + -0x5f8) = uVar14 + 1;
  *(longlong *)(lVar3 + -0x110) = lVar2 + -0x7d604d49cb28f8d0;
  bVar16 = (byte)uVar24;
  *(byte *)(lVar3 + -0x969) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0x590080b0)) ^ uVar26) ^ (byte)DAT_182671f30 ^
       (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar27 ^ 0x130002a0)) ^ (ulonglong)DAT_182671ed8) =
       bVar16 ^ 0xba;
  uVar7 = DAT_182671c64;
  uVar20 = (ulonglong)DAT_182671c64;
  pbVar29 = (byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0x870));
  uVar30 = (ulonglong)DAT_182671c64;
  *(byte **)(lVar3 + -0x90) = pbVar29 + (CONCAT44(DAT_182671c64,uVar23) ^ 0xb8785f977fbfdb3e);
  *(ulonglong *)(lVar3 + -0x7c0) = *(ulonglong *)(lVar3 + -0xc38) | *(ulonglong *)(lVar3 + -0xb08);
  *pbVar29 = *(byte *)(lVar3 + -0x969) ^ (byte)DAT_182671f30;
  uVar15 = *(uint *)(lVar3 + -0x6c0) ^ DAT_182671cb8;
  uVar13 = *(uint *)(lVar3 + -0x58c) ^ DAT_182671e98;
  uVar14 = *(ulonglong *)(lVar3 + -0x5f8);
  *(ulonglong *)(lVar3 + -0x180) = uVar14;
  *(uint *)(lVar3 + -0x94) = uVar15 * uVar13;
  *(ulonglong *)(lVar3 + -0x988) = *(ulonglong *)(lVar3 + -0x90);
  uVar10 = DAT_182671eb4;
  uVar13 = DAT_182671c4c;
  uVar26 = (ulonglong)DAT_182671e78;
  uVar28 = (ulonglong)DAT_182671eb4;
  *(uint *)(lVar3 + -0x670) = (*(uint *)(lVar3 + -0x61c) ^ uVar5) * (uVar7 ^ 0x8fce6220);
  *(ulonglong *)(lVar3 + -0x758) = uVar28 ^ *(ulonglong *)(lVar3 + -0x90);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       (CONCAT44(DAT_182671c8c,uVar13) ^ 0x204d70081c120b54) -
       (CONCAT44(uVar6,uVar6) ^ 0xd43ef400d5e4686f);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x13000330)) = uVar26 ^ uVar14;
  uVar15 = DAT_182671c5c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       CONCAT44(uVar13,uVar4) ^ 0xfff2bdffcaf67d96 | 0xdef285da42f67c94;
  pbVar29 = (byte *)(*(ulonglong *)(lVar3 + -0x330) ^ uVar26);
  *(byte **)(lVar3 + -0xb58) = pbVar29 + (CONCAT44(uVar23,uVar25) ^ 0x7fbfdb3ffcdfffbe);
  *(byte *)(lVar3 + -0xaa1) = *pbVar29 ^ (byte)DAT_182671f08 ^ (byte)DAT_182671d18;
  uVar14 = CONCAT44(uVar15,DAT_182671c80);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar30 ^ 0xb878536f)) ^ (ulonglong)DAT_182671d08) =
       bVar16 ^ 0xc3;
  *(ulonglong *)(lVar3 + -0x510) = (uVar14 ^ 0xa5d774eb1a61a00e) + *(longlong *)(lVar3 + -0x110);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x59008db0)) =
       (CONCAT44(uVar15,uVar9) ^ 0x608d4e1459008001) +
       ((ulonglong)uVar10 ^ *(ulonglong *)(lVar3 + -0x758));
  *(byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0x758)) =
       *(byte *)(lVar3 + -0xaa1) ^ (byte)DAT_182671f08;
  uVar30 = (ulonglong)DAT_182671d90;
  bVar18 = (byte)DAT_182671c6c;
  *(undefined8 *)(lVar3 + -0x740) = *(undefined8 *)(lVar3 - (uVar22 ^ 0xfc8dc32d));
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x78381907)) =
       (CONCAT44(uVar4,uVar7) ^ 0xc9c957e2873d6e9) >> ((bVar18 ^ 0x10) & 0x3f);
  *(ulonglong *)(lVar3 + -0x450) = *(ulonglong *)(lVar3 + -0xb58);
  *(ulonglong *)(lVar3 + -0x380) = CONCAT44(uVar13,uVar8) ^ 0x47eded9821ca555;
  uVar13 = DAT_182671ce8;
  uVar28 = (ulonglong)DAT_182671ce8;
  uVar26 = uVar28 ^ *(ulonglong *)(lVar3 + -0xb58);
  uVar14 = *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xfcdff8ff));
  *(ulonglong *)(lVar3 + -0xcd0) = uVar26;
  *(ulonglong *)(lVar3 + -0x708) = uVar14 ^ uVar30;
  *(longlong *)(lVar3 + -0xc90) =
       *(longlong *)(lVar3 + -0x920) - *(longlong *)(lVar3 - (uVar31 ^ 0xecfffdd7));
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x4d8) =
       (CONCAT44(uVar24,DAT_182671c80) ^ 0x1300000064d27337) + (uVar13 ^ uVar26);
  *(byte *)(lVar3 + -0x171) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c5c ^ 0x608d42c4)) ^ uVar28) ^
       (byte)DAT_182671f80 ^ (byte)DAT_182671d18;
  lVar2 = DAT_182671c40;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x858) ^ (ulonglong)DAT_182671d24) = 0x51;
  *(ulonglong *)(lVar3 + -0x150) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0xfc8dc995)) ^ uVar30) +
       (CONCAT44(uVar8,uVar7) ^ 0x13000000b8785f96);
  uVar14 = (ulonglong)DAT_182671cec;
  *(byte *)(*(ulonglong *)(lVar3 + -0x708) ^ uVar30) =
       *(byte *)(lVar3 - ((ulonglong)uVar24 ^ 0x13000171)) ^ (byte)DAT_182671f80;
  uVar13 = DAT_182671c6c;
  *(undefined8 *)(lVar3 + -0x490) = *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x7fbfda6f))
  ;
  *(longlong *)(lVar3 + -0xbd8) =
       0x36caa4741ed86c75 << ((byte)*(undefined8 *)(lVar3 + -0x888) & 0x3f);
  *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0x78381697)) =
       *(undefined8 *)(lVar3 - ((ulonglong)uVar13 ^ 0x7fbfdfe7));
  *(ulonglong *)(lVar3 + -0x50) = *(ulonglong *)(lVar3 + -0x490) ^ uVar14;
  pbVar29 = *(byte **)(lVar2 - (uVar22 ^ 0xfc8dcb05));
  *(ulonglong *)(lVar2 + -0x5b8) = (ulonglong)pbVar29 ^ (ulonglong)DAT_182671fa0;
  *(byte **)(lVar2 + -0xda0) = pbVar29 + (CONCAT44(uVar6,uVar9) ^ 0xfc8dce9d59008001);
  bVar18 = (byte)DAT_182671ec0;
  uVar13 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar31 = (ulonglong)DAT_182671c48;
  bVar17 = (byte)DAT_182671c88;
  *(byte *)(DAT_182671c40 + -0xbb1) = *pbVar29 ^ (byte)DAT_182671ec0 ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar3 + -0x2f8) ^ (ulonglong)DAT_182671f0c) = bVar17 ^ 0x7a;
  *(ulonglong *)(lVar3 + -0xa60) = *(ulonglong *)(lVar3 + -0xbd8) ^ *(ulonglong *)(lVar3 + -0x380);
  *(ulonglong *)(lVar3 + -0x238) =
       (CONCAT44(uVar8,uVar13) ^ 0x13000000ecfffffe) + (*(ulonglong *)(lVar3 + -0x50) ^ uVar14);
  uVar10 = DAT_182671c8c;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0x64d27366)) ^ uVar14) =
       bVar18 ^ *(byte *)(lVar3 + -0xbb1);
  uVar28 = (ulonglong)DAT_182671f8c;
  *(undefined8 *)(lVar3 + -0x468) = *(undefined8 *)(lVar3 - ((ulonglong)uVar10 ^ 0x78381137));
  *(ulonglong *)(lVar3 + -0x960) =
       (CONCAT44(uVar4,uVar25) ^ 0xefd7a86993ee0f4b) + *(longlong *)(lVar3 + -0xb18);
  *(undefined8 *)(lVar3 + -0x798) = *(undefined8 *)(lVar3 + -0xda0);
  uVar26 = (ulonglong)DAT_182671e3c;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x130008b8)) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0xb8785bff)) ^ uVar28;
  lVar3 = DAT_182671c40;
  uVar14 = (ulonglong)DAT_182671c80;
  pbVar29 = *(byte **)(DAT_182671c40 - ((ulonglong)uVar10 ^ 0x78381497));
  *(ulonglong *)(DAT_182671c40 + -0x460) = (ulonglong)pbVar29 ^ uVar26;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x7b0) =
       (*(ulonglong *)(lVar3 - (uVar14 ^ 0x64d27756)) ^ uVar26) + 1;
  bVar18 = (byte)uVar5;
  *(byte *)(lVar2 + -0xa62) = *pbVar29 ^ bVar18 ^ (byte)DAT_182671d18;
  *(char *)(*(ulonglong *)(lVar2 + -0x240) ^ (ulonglong)DAT_182671d10) = (char)DAT_182671c5c;
  uVar13 = DAT_182671c68;
  uVar26 = (ulonglong)DAT_182671c68;
  uVar30 = (ulonglong)DAT_182671dcc;
  uVar32 = (ulonglong)DAT_182671d70;
  *(ulonglong *)(lVar2 + -0x5e8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x78381a6f)) >> (((byte)uVar10 ^ 0x1a) & 0x3f);
  uVar14 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar2 + -0x308) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xecfff747)) ^ uVar28) +
       (CONCAT44(uVar15,uVar13) ^ 0x608d4e1404426021);
  *(ulonglong *)(lVar2 + -0x680) =
       *(ulonglong *)(lVar2 - (uVar14 ^ 0x7fbfdb0f)) |
       CONCAT44(DAT_182671c58,uVar7) ^ 0xdfac6b9f3f7877fa;
  uVar5 = DAT_182671c94;
  uVar14 = (ulonglong)DAT_182671c94;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8b8) ^ uVar28) = bVar18 ^ *(byte *)(lVar2 + -0xa62);
  pbVar29 = *(byte **)(lVar2 + -0x7b0);
  uVar14 = *(ulonglong *)(lVar2 - (uVar14 ^ 0xfffffcf7));
  *(ulonglong *)(lVar2 + -0x7e0) = uVar14;
  *(ulonglong *)(lVar2 + -0x4c0) = uVar32 ^ uVar14;
  *(byte **)(lVar2 + -0x128) = pbVar29;
  *(ulonglong *)(lVar2 + -0x488) = uVar30 ^ (ulonglong)pbVar29;
  uVar14 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar2 + -0x828) =
       (CONCAT44(uVar9,uVar5) ^ 0xf07ab0d2171763e2) + *(longlong *)(lVar2 - (uVar27 ^ 0x13000680));
  uVar5 = DAT_182671c4c;
  uVar31 = (ulonglong)DAT_182671c4c;
  uVar28 = (ulonglong)DAT_182671dac;
  *(ulonglong *)(lVar2 + -0x1f0) =
       (*(ulonglong *)(lVar2 - (uVar14 ^ 0xecfffb77)) ^ uVar30) +
       (CONCAT44(uVar8,DAT_182671c4c) ^ 0x130000003fbfc836);
  uVar15 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  bVar18 = (byte)DAT_182671c74;
  *(ulonglong *)(lVar2 + -0xa78) =
       (CONCAT44(uVar24,uVar6) ^ 0x4b1ee1d5e8e2aa8c) <<
       ((byte)*(undefined8 *)(lVar2 - (uVar20 ^ 0xb8785c4f)) & 0x3f);
  uVar30 = (ulonglong)DAT_182671e44;
  *(byte *)(lVar2 + -0xa12) = *pbVar29 ^ (byte)DAT_182671d00 ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 + -0x160) ^ (ulonglong)DAT_182671f88) = bVar18 ^ 0xde;
  pbVar29 = (byte *)(uVar32 ^ *(ulonglong *)(lVar2 + -0x4c0));
  *(byte **)(lVar2 + -0x340) = pbVar29 + 1;
  uVar14 = (ulonglong)DAT_182671c84;
  *pbVar29 = *(byte *)(lVar3 - (uVar14 ^ 0x4787aa7a)) ^ (byte)DAT_182671d00;
  uVar6 = DAT_182671c50;
  uVar20 = (ulonglong)DAT_182671c50;
  uVar27 = *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xfcdffcff));
  *(undefined8 *)(lVar3 + -0xaf0) = *(undefined8 *)(lVar3 + -0x1f0);
  *(ulonglong *)(lVar3 + -0x6d8) = uVar27;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x44263c8)) = uVar27 ^ uVar30;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c6c ^ 0x7fbfdf87)) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0x5bc59c50)) >>
       ((byte)*(undefined8 *)(lVar3 + -0x110) & 0x3f);
  uVar11 = DAT_182671c90;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x130003f8)) = *(ulonglong *)(lVar3 + -0xaf0) ^ uVar28
  ;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x64d271be)) =
       (CONCAT44(uVar11,DAT_182671c60) ^ 0xdc8c8489592ae0a0) +
       (uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0x3f8));
  lVar2 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c5c;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x3f8);
  *(ulonglong *)(DAT_182671c40 + -0x628) = *(ulonglong *)(lVar3 + -0x828) >> ((bVar16 ^ 6) & 0x3f);
  uVar20 = (ulonglong)DAT_182671ecc;
  *(byte *)(lVar2 + -0x229) =
       *(byte *)(uVar28 ^ *puVar1) ^ (byte)DAT_182671d4c ^ (byte)DAT_182671d18;
  lVar3 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(lVar2 + -0x750) ^ (ulonglong)DAT_182671e60) = bVar16 ^ 0x55;
  lVar2 = DAT_182671c40;
  pbVar29 = (byte *)(*(ulonglong *)(lVar3 + -1000) ^ uVar30);
  *(undefined8 *)(DAT_182671c40 + -0xda8) = 0xfdfb7fb82f6f7df5;
  *(byte **)(lVar2 + -0xd58) = pbVar29 + (CONCAT44(uVar6,uVar5) ^ 0x5bc596003fbfc836);
  uVar6 = DAT_182671c8c;
  *pbVar29 = *(byte *)(lVar2 - (uVar22 ^ 0xfc8dccb4)) ^ (byte)DAT_182671d4c;
  *(undefined8 *)(lVar2 + -0x2c8) = *(undefined8 *)(lVar2 + -0xd58);
  *(undefined8 *)(lVar2 + -0x4c8) = *(undefined8 *)(lVar2 + -0x288);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x608d420c)) =
       (CONCAT44(uVar4,uVar6) ^ 0xfb804df29a3eb703) <<
       ((byte)*(undefined8 *)(lVar2 - ((ulonglong)uVar15 ^ 0xfbf97f6f)) & 0x3f);
  uVar4 = DAT_182671c80;
  *(ulonglong *)(lVar2 + -0x980) = *(ulonglong *)(lVar2 - (uVar21 ^ 0x590082c8)) ^ uVar20;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x3fbfcfdf)) =
       CONCAT44(uVar7,uVar9) ^ 0x219f06004201884 | 0xade00e8672dcc709;
  uVar21 = (ulonglong)DAT_182671d04;
  *(ulonglong *)(lVar2 + -0xb68) = uVar21 ^ *(ulonglong *)(lVar2 + -0x4c8);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x44268d8)) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0x608d457c)) ^ uVar21) +
       (CONCAT44(uVar8,DAT_182671c6c) ^ 0x130000007fbfdb3e);
  *(byte *)(lVar2 - ((ulonglong)uVar4 ^ 0x64d27564)) =
       *(byte *)(uVar21 ^ *(ulonglong *)(lVar2 + -0xb68)) ^ (byte)DAT_182671ed4 ^
       (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb78) ^ (ulonglong)DAT_182671e70) = (byte)uVar4 ^ 0xa9;
  bVar18 = *(byte *)(lVar2 + -0x652) ^ (byte)DAT_182671ed4;
  *(ulonglong *)(lVar2 + -0x318) =
       (CONCAT44(uVar23,uVar11) ^ 0x7fbfdb3fdc8c8488) + (uVar20 ^ *(ulonglong *)(lVar2 + -0x980));
  *(byte *)(*(ulonglong *)(lVar2 - (uVar14 ^ 0x4787a9e8)) ^ uVar20) = bVar18;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar12 ^ uVar25) * 4) = uVar19;
  return;
}



############ FUN_ 180fa4ef0 size=5396 ############

void FUN_180fa4ef0(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_e0;
  byte local_d0;
  byte local_90;
  
  uVar5 = DAT_182671d90;
  uVar11 = DAT_182671c90;
  uVar9 = DAT_182671c80;
  uVar8 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c74;
  uVar21 = (ulonglong)DAT_182671c90;
  uVar29 = (ulonglong)DAT_182671c80;
  uVar28 = (ulonglong)DAT_182671c90;
  uVar25 = DAT_182671c80 + DAT_182671c90;
  uVar24 = (DAT_182671c74 << 0x10 | DAT_182671c74 & 0xff00) << 8 | DAT_182671c74 >> 8 & 0xff00 |
           DAT_182671c74 >> 0x18;
  uVar16 = *(uint *)(&DAT_182613218 + DAT_182672284) ^ DAT_182671c74;
  uVar1 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c90 ^ 0x50aeda5a) + (longlong)DAT_182672284);
  uVar19 = (ulonglong)DAT_182671ca4;
  uVar34 = (ulonglong)DAT_182671d90;
  uVar22 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar30 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar38 = (ulonglong)uVar25;
  uVar2 = DAT_182671ca4 >> 0x18;
  DAT_182671c70 = uVar24;
  DAT_182671c7c = uVar25;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x74b17feb)) =
       (uVar22 ^ *(ulonglong *)(DAT_182671c40 + -0x110)) << (((byte)DAT_182671c80 ^ 0xeb) & 0x3f) ^
       uVar30;
  uVar14 = DAT_182671fac;
  uVar12 = DAT_182671fa0;
  uVar31 = CONCAT44(uVar5,uVar5);
  uVar19 = ((ulonglong)uVar2 | uVar19 << 8) ^ *(ulonglong *)(lVar3 + -0x110) >> 0x18;
  *(ulonglong *)(lVar3 + -0xa70) = uVar19 ^ CONCAT44(DAT_182671fac,DAT_182671fac);
  uVar13 = DAT_182671f70;
  uVar27 = CONCAT44(uVar12,uVar12);
  uVar19 = (*(ulonglong *)(lVar3 + -0x628) ^ uVar30 | uVar19) ^ uVar27;
  *(ulonglong *)(lVar3 + -0xb08) = uVar19;
  uVar12 = DAT_182671ccc;
  uVar30 = CONCAT44(uVar13,uVar13);
  puVar20 = (ulonglong *)(lVar3 - (uVar38 ^ 0xc5605f15));
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x50aed262)) = *puVar20 ^ uVar30 ^ uVar31 ^ uVar27 ^ uVar19;
  lVar4 = DAT_182671c40;
  uVar31 = uVar31 ^ *(ulonglong *)(lVar3 + -0x828);
  uVar36 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(DAT_182671c40 + -0x760)) + uVar31 ^ uVar36;
  uVar2 = DAT_182671c54;
  bVar17 = (byte)(uVar8 >> 0x18);
  uVar41 = (ulonglong)DAT_182671c54;
  uVar28 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar25 ^ 0xc56053e5)) =
       uVar31 << ((bVar17 ^ 0x71) & 0x3f) ^ uVar28;
  uVar12 = DAT_182671dec;
  *(ulonglong *)(lVar4 + -0x380) =
       (CONCAT44(uVar2,uVar11) ^ 0xb2e04fe8e87f9f58) <<
       ((*(byte *)(lVar4 + -0xa70) ^ (byte)uVar14) & 0x3f);
  uVar13 = DAT_182671f84;
  uVar19 = (*(ulonglong *)(lVar4 + -0x828) >> 0x20 ^ uVar34) >> 0x1b;
  *(ulonglong *)(lVar4 + -0xbd8) = uVar19 ^ CONCAT44(uVar12,uVar12);
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar34 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar4 + -0x408) = (uVar19 | uVar28 ^ *(ulonglong *)(lVar4 + -0x7e8)) ^ uVar31;
  uVar6 = DAT_182671e44;
  uVar28 = (ulonglong)DAT_182671e44;
  uVar19 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *(ulonglong *)(lVar4 + -0xa50) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x74b17dcb)) ^ uVar34 ^ uVar31 ^ uVar36 ^
       *(ulonglong *)(lVar4 + -0xc18);
  uVar12 = DAT_182671e78;
  uVar13 = DAT_182671d00;
  uVar5 = DAT_182671c88;
  uVar35 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar4 + -0x7c0) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x74922f6c)) ^ uVar30) +
       (uVar19 ^ *(ulonglong *)(lVar4 + -0xf0)) ^ uVar35;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x888) =
       (uVar19 ^ *(ulonglong *)(lVar4 + -0xf0)) << ((bVar17 ^ 0x51) & 0x3f) ^ uVar30;
  uVar19 = CONCAT44(uVar25,DAT_182671c58);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x7bbffb67)) =
       ((ulonglong)(uVar6 >> 0x1b) | uVar28 << 5) ^ *(ulonglong *)(lVar4 + -0xf0) >> 0x1b ^ uVar34;
  uVar12 = DAT_182671db4;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (uVar19 ^ 0x963e8cc59ccbc56) - (uVar34 ^ *(ulonglong *)(lVar4 + -0x4b8));
  uVar14 = DAT_182671f2c;
  uVar19 = CONCAT44(uVar12,uVar12);
  uVar31 = (uVar30 ^ *(ulonglong *)(lVar4 + -0x888) | uVar34 ^ *(ulonglong *)(lVar4 + -0x4b8)) ^
           uVar19;
  *(ulonglong *)(lVar4 + -0xb20) = uVar31;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x110) =
       *(ulonglong *)(lVar4 + -0x7c0) ^ uVar30 ^ uVar31 ^ uVar19 ^ uVar35;
  uVar12 = DAT_182671ddc;
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar30 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar24 ^ 0x74249364)) ^ uVar30) +
           (CONCAT44(uVar2,uVar25) ^ 0xe0f07b07f9898c5b);
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar30 ^ uVar28;
  uVar19 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x74249e6c)) ^ uVar36) +
           (CONCAT44(uVar9,uVar8) ^ 0x8e1dd52fb29b6dc);
  *(ulonglong *)(lVar3 + -0xb08) = uVar19 ^ CONCAT44(uVar12,uVar12);
  uVar14 = DAT_182671d04;
  *(ulonglong *)(lVar3 + -0x760) = CONCAT44(uVar24,uVar24) ^ 0xf506551b3c59c4eb | uVar19;
  uVar12 = DAT_182671c98;
  local_e0 = (byte)uVar11;
  uVar36 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0xa70) = uVar19 + uVar30 ^ uVar36;
  uVar14 = DAT_182671f40;
  lVar3 = DAT_182671c40;
  uVar31 = CONCAT44(uVar12,uVar12);
  puVar23 = (ulonglong *)(DAT_182671c40 + -0x628);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar30 << ((local_e0 ^ 0x53) & 0x3f) ^ uVar31;
  uVar19 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x828) = (*puVar23 ^ uVar28) >> ((local_e0 ^ 0x6d) & 0x3f) ^ uVar19;
  *(int *)(lVar3 - (uVar29 ^ 0x74b17d6f)) =
       *(int *)(lVar3 + -0x784) << (((byte)uVar2 ^ 0x41) & 0x1f);
  uVar12 = DAT_182671ee4;
  uVar6 = DAT_182671c88;
  uVar30 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar19 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c58 ^ 0x1b96e547)) ^ uVar31 |
           uVar19 ^ *(ulonglong *)(lVar3 + -0x828)) ^ uVar30;
  *(ulonglong *)(lVar3 + -0x7e8) = uVar19;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x7bbff407)) =
       *(ulonglong *)(lVar3 + -0xa70) ^ uVar37 ^ uVar19 ^ uVar30 ^ uVar36;
  uVar19 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar3 + -0x408) =
       (CONCAT44(uVar24,uVar2) ^ 0xdb749fd8a79785c) + (uVar34 ^ *(ulonglong *)(lVar3 + -0xa50)) ^
       uVar19;
  uVar33 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x7b2d7043)) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x50aedd8a)) ^ uVar35) +
       (CONCAT44(uVar11,uVar8) ^ 0x4dae868d1cdfd369) ^ uVar33;
  uVar28 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x408)) + (uVar33 ^ *puVar20) ^ uVar28;
  uVar12 = DAT_182671d88;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x7bbff4c7)) ^ uVar33) <<
       ((*(byte *)(lVar3 + -0x7c0) ^ (byte)uVar13) & 0x3f);
  uVar5 = DAT_182671c60;
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar35 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x74b17d7b)) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x408)) << ((bVar17 ^ 0x55) & 0x3f) ^ uVar34;
  uVar7 = DAT_182671c68;
  uVar31 = (uVar19 ^ *(ulonglong *)(lVar3 + -0x408)) >> ((byte)uVar6 & 0x3f);
  uVar30 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  uVar19 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar3 + -0x888) = uVar31 ^ uVar30;
  uVar26 = uVar7 + uVar5;
  *(ulonglong *)(lVar3 + -0xb20) = uVar31 ^ uVar33 ^ *(ulonglong *)(lVar3 + -0xb18);
  uVar12 = DAT_182671ce4;
  uVar6 = DAT_182671cc0;
  uVar31 = (ulonglong)DAT_182671cc0;
  uVar39 = (ulonglong)uVar26;
  uVar33 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar30 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x5c67e1cf)) ^ uVar30 |
           uVar34 ^ *(ulonglong *)(lVar3 + -0x4b8)) ^ uVar22;
  DAT_182671c4c = uVar26;
  *(ulonglong *)(lVar3 + -0x110) = uVar30;
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar22 = uVar33 ^ uVar30 ^ uVar28 ^ *(ulonglong *)(lVar3 + -0xf0) ^ uVar22;
  *(ulonglong *)(lVar3 + -0xc18) = uVar22;
  *(ulonglong *)(lVar3 + -0x760) =
       (uVar33 ^ uVar22) + (*(ulonglong *)(lVar3 + -0xa70) ^ uVar36) ^ uVar34;
  uVar12 = DAT_182671d58;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       CONCAT44(uVar26,uVar26) ^ 0xb72a032cecfdb84b | CONCAT44(uVar5,uVar26) ^ 0x7003a75998eb28f3;
  uVar13 = DAT_182671dac;
  local_d0 = (byte)uVar7;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x628) = (uVar33 ^ uVar22) << ((local_d0 ^ 0x69) & 0x3f) ^ uVar36;
  uVar12 = DAT_182671efc;
  uVar30 = ((ulonglong)(uVar6 >> 0x12) | uVar31 << 0xe) ^ *(ulonglong *)(lVar3 + -0xc18) >> 0x12;
  *(ulonglong *)(lVar3 + -0x380) = uVar30 ^ CONCAT44(uVar13,uVar13);
  lVar4 = DAT_182671c40;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x87e038f9)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2b7841a2)) ^ uVar36 | uVar30) ^ uVar33;
  uVar12 = DAT_182671cc4;
  uVar40 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x5c67eeaf)) =
       uVar40 ^ uVar33 ^ uVar34 ^ *(ulonglong *)(lVar4 + -0x760) ^ *(ulonglong *)(lVar4 + -0x828);
  puVar23 = (ulonglong *)(lVar4 - (uVar39 ^ 0x87e03b09));
  uVar30 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x5c67e317)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0xf0)) + (uVar37 ^ *puVar23) ^ uVar30;
  uVar13 = DAT_182671da8;
  uVar22 = (uVar37 ^ *puVar23) << (((byte)uVar26 ^ 0xdd) & 0x3f);
  uVar19 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar31 = (uVar37 ^ *(ulonglong *)(lVar4 + -0xbd8)) >> (((byte)uVar5 ^ 0xbe) & 0x3f);
  *(ulonglong *)(lVar4 + -0x7c0) = uVar31 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar22 ^ uVar19;
  uVar14 = DAT_182671f34;
  uVar19 = CONCAT44(uVar13,uVar13);
  uVar22 = (uVar31 | uVar22) ^ uVar19;
  *(ulonglong *)(lVar4 + -0x408) = uVar22;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar28 = CONCAT44(DAT_182671d20,DAT_182671d20);
  uVar22 = *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x2b784dda)) ^ uVar36 ^ uVar19 ^ uVar30 ^
           uVar22;
  *(ulonglong *)(lVar4 + -0xb18) = uVar22;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0xb20) =
       (uVar36 ^ uVar22) + (uVar34 ^ *(ulonglong *)(lVar4 + -0x760)) ^ uVar28;
  uVar15 = DAT_182671db0;
  uVar31 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x2b784f02)) =
       (uVar36 ^ uVar22) << ((local_d0 ^ 0x7d) & 0x3f) ^ uVar31;
  uVar13 = DAT_182671d10;
  uVar19 = (uVar36 ^ *(ulonglong *)(lVar3 + -0xb18)) >> (((byte)uVar2 ^ 0x5d) & 0x3f);
  *(ulonglong *)(lVar3 + -0x4b8) = uVar19 ^ CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar14 = DAT_182671d18;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x110) = (uVar19 | uVar31 ^ *(ulonglong *)(lVar3 + -0x888)) ^ uVar22;
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xc5605e7d)) =
       *(ulonglong *)(lVar3 - (uVar39 ^ 0x87e031c1)) ^ uVar27 ^ uVar22 ^ uVar28 ^
       *(ulonglong *)(lVar3 + -0xb20);
  uVar22 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x7b2d7053)) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0xa50)) + (uVar40 ^ *(ulonglong *)(lVar3 + -0x7e8)) ^
       uVar22;
  uVar6 = DAT_182671c88;
  bVar17 = (byte)DAT_182671c58;
  uVar19 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(DAT_182671c88,uVar25) ^ 0x7241712371198ae8) <<
       (((byte)uVar15 ^ *(byte *)(lVar3 + -0x888)) & 0x3f);
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0x7e8)) << ((bVar17 ^ 0xd1) & 0x3f) ^ uVar19;
  lVar3 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671f88,DAT_182671f88);
  puVar23 = (ulonglong *)(DAT_182671c40 + -0xb18);
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) >> ((local_d0 ^ 0x6d) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x74b171eb)) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x74922f7c)) ^ uVar22) + (uVar36 ^ *puVar23);
  uVar13 = DAT_182671f74;
  uVar19 = uVar30 ^ *(ulonglong *)(lVar3 + -0x380) | uVar19 ^ *(ulonglong *)(lVar3 + -0x628);
  *(ulonglong *)(lVar3 + -0xf0) = uVar19 ^ CONCAT44(DAT_182671ec0,DAT_182671ec0);
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x2b784c52)) =
       uVar19 ^ uVar22 ^ *(ulonglong *)(lVar3 + -0xb08) ^ uVar31;
  uVar41 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x742490c4)) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0xb20)) + (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar31) ^
       uVar41;
  uVar34 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x7bbff81f)) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar31) << 0x20 ^ uVar34;
  uVar10 = DAT_182671c84;
  uVar6 = DAT_182671c64;
  uVar36 = (ulonglong)DAT_182671c84;
  uVar19 = (ulonglong)DAT_182671c64;
  uVar18 = DAT_182671c84 * DAT_182671c64;
  *(ulonglong *)(lVar3 + -0x408) =
       (CONCAT44(uVar5,uVar2) ^ 0x6fd14075c9545d42) + (uVar22 ^ *(ulonglong *)(lVar3 + -0xb08));
  uVar13 = DAT_182671d24;
  bVar17 = (byte)uVar18 ^ 0x81;
  uVar30 = (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar31) >> (bVar17 & 0x3f);
  DAT_182671c50 = uVar18;
  *(ulonglong *)(lVar3 + -0x760) = uVar30 ^ CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar14 = DAT_182671e18;
  uVar28 = CONCAT44(uVar13,uVar13);
  uVar30 = (*(ulonglong *)(lVar3 + -0x7c0) ^ uVar34 | uVar30) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar30;
  uVar13 = DAT_182671dbc;
  lVar4 = DAT_182671c40;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x110) =
       uVar30 ^ *(ulonglong *)(lVar3 + -0x2b0) ^ uVar35 ^ uVar28 ^ uVar41;
  uVar37 = CONCAT44(uVar13,uVar13);
  local_90 = (byte)uVar12;
  *(ulonglong *)(lVar4 + -0xa50) =
       (uVar22 ^ *(ulonglong *)(lVar4 + -0xb08)) + (uVar27 ^ *(ulonglong *)(lVar4 + -0xa70)) ^
       uVar37;
  *(ulonglong *)(lVar4 + -0x888) =
       (CONCAT44(uVar10,uVar6) ^ 0xb1853fe1cdb88695) <<
       ((local_90 ^ *(byte *)(lVar4 + -0x7e8)) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc18) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0xa70)) << (((byte)uVar10 ^ 0xcb) & 0x3f) ^ uVar33;
  uVar22 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x6bb2e0b9)) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0xa70)) >> (bVar17 & 0x3f) ^ uVar22;
  uVar13 = DAT_182671e54;
  *(ulonglong *)(lVar4 + -0x828) =
       (CONCAT44(uVar10,uVar18) ^ 0x5ed9591f2e2e1c6f) -
       (CONCAT44(uVar6,uVar18) ^ 0x2325baa2eadc9c6b);
  uVar12 = DAT_182671e50;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar22 = (uVar33 ^ *(ulonglong *)(lVar4 + -0xc18) | *(ulonglong *)(lVar4 + -0xb18) ^ uVar22) ^
           uVar30;
  *(ulonglong *)(lVar4 + -0x628) = uVar22;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(uVar12,uVar12);
  puVar23 = (ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x6bb2e821));
  *puVar23 = uVar32 ^ uVar22 ^ uVar30 ^ uVar37 ^ *(ulonglong *)(DAT_182671c40 + -0xa50);
  uVar34 = CONCAT44(DAT_182671df0,DAT_182671df0);
  uVar30 = (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar41) + (CONCAT44(uVar6,uVar18) ^ 0xdf70b7299f63a658)
           ^ uVar34;
  uVar28 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar3 + -0xf0) = uVar30;
  uVar22 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x918) ^ uVar22) = uVar28 ^ uVar30 ^ uVar34;
  lVar3 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0xb8169383)) =
       (CONCAT44(uVar6,uVar6) ^ 0xa516c464d05b6fbe) + (*puVar23 ^ uVar32) ^ uVar34;
  puVar23 = (ulonglong *)
            ((*(ulonglong *)(lVar3 + -0x918) ^ uVar22) +
            (CONCAT44(uVar10,uVar5) ^ 0xf8bedaeb2b78478b) * 8);
  *(ulonglong *)(lVar3 + -0xd68) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671d60,DAT_182671d60);
  *puVar23 = *(ulonglong *)(lVar3 + -0xb20) ^ uVar34 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x408) = *(ulonglong *)(lVar3 + -0xb20) ^ uVar34 | 0xd2295968491b34ad;
  uVar30 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(lVar3 + -0xbd8) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0xa50)) + (CONCAT44(uVar10,uVar6) ^ 0x8879c95ee097a20d) ^
       uVar30;
  puVar23 = (ulonglong *)
            ((*(ulonglong *)(lVar3 + -0x918) ^ uVar22) +
            (CONCAT44(uVar18,uVar18) ^ 0x6bb2eba16bb2eba3) * 8);
  *(ulonglong *)(lVar3 + -0x948) = (ulonglong)puVar23 ^ uVar34;
  uVar13 = DAT_182671e5c;
  *puVar23 = *(ulonglong *)(lVar3 - (uVar19 ^ 0xb816937b)) ^ uVar30 ^ uVar28;
  uVar12 = DAT_182671d80;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x7c0) =
       (CONCAT44(uVar7,uVar6) ^ 0x7ca9d1c2a2cc666c) + (*(ulonglong *)(lVar3 + -0x110) ^ uVar35) ^
       uVar34;
  uVar19 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xf8bed05b)) =
       (*(ulonglong *)(lVar3 + -0x918) ^ uVar22) + (CONCAT44(uVar26,uVar6) ^ 0x87e030d1b81698a0) * 8
       ^ uVar19;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0xab0) ^ uVar19) =
       *(ulonglong *)(lVar3 + -0x7c0) ^ uVar34 ^ uVar28;
  uVar28 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x74b1725b)) =
       *(longlong *)(lVar3 - (uVar38 ^ 0xc5605fdd)) +
       ((CONCAT44(uVar24,uVar10) ^ 0x74249274f8bedae3) +
       (CONCAT44(uVar18,uVar11) ^ 0x6bb2eba150aeda4a) * 0xc) * 8 ^ uVar28;
  *(ulonglong *)(lVar3 + -0xbd0) = CONCAT44(uVar7,uVar9) ^ 0x8e1e6a7f3734a213;
  *(ulonglong *)(lVar3 + -0xac0) =
       *(longlong *)(lVar3 + -0x310) +
       ((CONCAT44(uVar8,uVar10) ^ 0x74922474f8bedae3) +
       (CONCAT44(uVar25,uVar26) ^ 0xc560540d87e030d1) * 0xc) * 8 ^ uVar31;
  uVar13 = DAT_182671e48;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar11,DAT_182671c88) ^ 0xbebc2bf1400360e8) >> ((local_d0 ^ 0x77) & 0x3f);
  uVar12 = DAT_182671de8;
  uVar22 = CONCAT44(uVar13,uVar13);
  uVar30 = CONCAT44(uVar8,DAT_182671c58);
  *(ulonglong *)(lVar3 + -0x4b8) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0x50aed1d2)) ^ uVar28) ^
       CONCAT44(DAT_182671eec,DAT_182671eec) ^ uVar22;
  uVar19 = CONCAT44(uVar18,DAT_182671c48);
  *(ulonglong *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x40)) =
       uVar30 ^ 0xe67d8be219b8014f;
  puVar23 = (ulonglong *)
            ((*(ulonglong *)(lVar3 + -0xb98) ^ uVar28) + (uVar19 ^ 0x6bb2eba152287a5a) * 8);
  uVar19 = CONCAT44(DAT_182671c78,uVar18);
  *(ulonglong *)(lVar3 + -0x6e8) = (ulonglong)puVar23 ^ CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar13 = DAT_182671f54;
  *(ulonglong *)(lVar3 + -0xb08) =
       uVar19 ^ 0xdfee410865b7cd0 | *(ulonglong *)(lVar3 + -0x7c0) ^ uVar34;
  uVar12 = DAT_182671c9c;
  *(ulonglong *)(lVar3 + -0x7e8) = CONCAT44(uVar13,uVar13) ^ *puVar23 ^ uVar22;
  *(ulonglong *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0x668)) =
       CONCAT44(uVar2,uVar8) ^ 0x9e607dc5ae69bee1;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar24) * 4) = uVar16;
  return;
}



############ FUN_ 180f40410 size=4183 ############

void FUN_180f40410(void)

{
  uint uVar1;
  undefined4 uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  byte bVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_a8;
  
  uVar27 = DAT_182671e90;
  bVar12 = (byte)DAT_182671cc8;
  uVar8 = DAT_182671c74;
  uVar7 = DAT_182671c6c;
  uVar6 = DAT_182671c68;
  uVar5 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  uVar14 = (ulonglong)DAT_182671c4c;
  uVar35 = (ulonglong)DAT_182671c68;
  uVar32 = (ulonglong)DAT_182671c4c;
  uVar41 = (ulonglong)DAT_182671c74;
  uVar31 = (ulonglong)DAT_182671c6c;
  uVar20 = DAT_182671c4c & DAT_182671c68;
  uVar21 = uVar20 ^ 0x36e708a5;
  uVar28 = DAT_182671c74 ^ DAT_182671c6c;
  uVar13 = *(uint *)(&DAT_182613210 + (uVar14 ^ 0xdff3f966) + (longlong)DAT_182672150) ^
           DAT_182671c68;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182672150);
  uVar19 = (ulonglong)DAT_182671c74;
  uVar23 = (ulonglong)DAT_182671e34;
  uVar15 = CONCAT44(DAT_182671c6c,DAT_182671c74);
  pbVar16 = (byte *)((uVar15 ^ 0xaebd1a82a235af92) + *(longlong *)(DAT_182671c40 + -0x9a8));
  DAT_182671c80 = uVar21;
  DAT_182671c90 = uVar28;
  *(ulonglong *)(DAT_182671c40 + -0x170) = (ulonglong)pbVar16 ^ uVar23;
  uVar39 = (ulonglong)uVar28;
  *(byte *)(lVar3 - ((ulonglong)uVar28 ^ 0xc88b4c1)) = *pbVar16 ^ bVar12 ^ (byte)DAT_182671e0c;
  bVar12 = bVar12 ^ *(byte *)(lVar3 + -0x1c3);
  *(uint *)(lVar3 + -0x784) = bVar12 ^ uVar27;
  *(uint *)(lVar3 - (uVar32 ^ 0xdff3ffae)) = (uint)(bVar12 >> (((byte)uVar7 ^ 0x8f) & 0x1f));
  uVar18 = DAT_182671f48;
  uVar26 = (DAT_182671da4 ^ *(uint *)(lVar3 + -0x94c)) + (uVar28 ^ 0x90caa71c) ^ DAT_182671e7c;
  *(uint *)(lVar3 + -0x1c8) = uVar26;
  lVar3 = DAT_182671c40;
  uVar26 = uVar26 ^ DAT_182671e7c;
  uVar32 = CONCAT44(uVar18,uVar18) ^ CONCAT44(uVar6,uVar5) ^ *(ulonglong *)(DAT_182671c40 + -0xc90)
           ^ 0x435ca371a2c0dc94;
  *(ulonglong *)(DAT_182671c40 + -0x4b8) = uVar32;
  uVar18 = (*(uint *)(lVar3 - (uVar19 ^ 0xa235a804)) ^ uVar27) << ((byte)uVar6 & 0x1f) ^
           DAT_182671c98;
  *(uint *)(lVar3 + -0x444) = uVar18;
  lVar4 = DAT_182671c40;
  uVar18 = uVar26 - (uVar18 ^ DAT_182671c98) ^ DAT_182671f2c;
  uVar29 = *(uint *)(lVar3 + -0xae4) ^ DAT_182671e88;
  *(uint *)(lVar3 + -0x9dc) = uVar18;
  uVar10 = DAT_182671e84;
  uVar26 = (uVar18 ^ DAT_182671f2c) * uVar29;
  uVar18 = (*(uint *)(lVar4 + -0x784) ^ uVar27) * 0x12 ^ DAT_182671d38;
  uVar27 = uVar26 ^ DAT_182671e84;
  *(uint *)(lVar4 + -0x670) = uVar18;
  uVar18 = uVar18 ^ DAT_182671d38;
  *(uint *)(lVar4 + -0x76c) = uVar27;
  uVar27 = DAT_182671cbc;
  lVar3 = DAT_182671c40;
  uVar18 = uVar18 + uVar26;
  *(uint *)(DAT_182671c40 + -0x634) = uVar18 ^ DAT_182671cbc;
  *(uint *)(lVar3 + -0xa94) = uVar18 * 0x2000 ^ DAT_182671e18;
  *(ulonglong *)(lVar3 + -0xf0) = CONCAT44(uVar8,uVar28) ^ uVar32 ^ 0xe745cc1c2c68ec72;
  lVar4 = DAT_182671c40;
  uVar26 = (*(uint *)(DAT_182671c40 + -0x5d4) ^ DAT_182671dd4) + uVar29 ^ DAT_182671f78;
  uVar18 = (*(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x36e70e91)) ^ uVar27) >>
           (((byte)uVar21 ^ 0xb6) & 0x1f) ^ DAT_182671d80;
  *(uint *)(DAT_182671c40 + -0x54) = uVar18;
  uVar18 = uVar18 ^ DAT_182671d80;
  uVar27 = *(uint *)(lVar4 - (uVar14 ^ 0xdff3f3fa)) ^ DAT_182671e18;
  *(uint *)(lVar4 + -0x94) = uVar26;
  uVar26 = uVar26 ^ DAT_182671e98;
  *(uint *)(lVar4 + -0x684) = (uVar27 | uVar18) ^ DAT_182671cf8;
  uVar26 = uVar26 ^ DAT_182671f78;
  *(ulonglong *)(DAT_182671c40 + -0xa70) =
       (CONCAT44(uVar6,uVar7) ^ 0xb90bad9e1def2b7b) >> (((byte)uVar28 ^ 0x2d) & 0x3f);
  uVar9 = DAT_182671e64;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x200c023d)) = uVar26;
  uVar19 = CONCAT44(DAT_182671cdc,DAT_182671cdc) ^ *(ulonglong *)(lVar3 + -0xc38);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xc88b382)) = uVar19 >> ((byte)uVar19 & 0x3f);
  uVar27 = DAT_182671ef8 ^ DAT_182671cf8 ^ *(uint *)(lVar3 + -0x684);
  *(uint *)(lVar3 + -0x61c) = uVar9 ^ DAT_182671e98 ^ *(uint *)(lVar3 + -0x4ac);
  *(uint *)(lVar3 + -0x58c) = uVar27;
  uVar27 = uVar27 ^ DAT_182671e4c ^ DAT_182671ef8;
  uVar19 = (ulonglong)DAT_182671dac;
  *(ulonglong *)(lVar3 + -0xbd8) = (CONCAT44(uVar8,uVar6) ^ 0x24951bf37d5eb3a7) + 0xc2ad50556054add8
  ;
  *(uint *)(lVar3 + -0x644) = uVar27;
  bVar12 = (byte)DAT_182671dfc;
  pbVar16 = (byte *)((CONCAT44(uVar5,uVar5) ^ 0xdff3f96edff3f96e) * 0x20 +
                     (CONCAT44(uVar20,uVar7) ^ 0xaebd1a9f) + *(longlong *)(lVar3 + -0x9a8));
  *(ulonglong *)(lVar3 + -0xc20) = (ulonglong)pbVar16 ^ uVar19;
  bVar11 = *pbVar16 ^ bVar12 ^ (byte)DAT_182671e0c;
  uVar27 = (bVar12 ^ bVar11) ^ DAT_182671da0;
  *(byte *)(lVar3 + -0x1c3) = bVar11;
  *(uint *)(lVar3 + -0x6c0) = uVar27;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x36e70385)) =
       (CONCAT44(uVar7,uVar20) ^ 0x13061099ff159498) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar31 ^ 0xaebd169a)) & 0x3f);
  uVar22 = DAT_182671f70;
  uVar27 = *(uint *)(lVar3 + -0x6c0) ^ DAT_182671da0;
  uVar26 = (*(uint *)(lVar3 + -0x644) ^ DAT_182671e4c) + (DAT_182671c6c ^ 0x32ff089c) ^
           DAT_182671df4;
  bVar11 = (byte)DAT_182671c6c ^ 0x91;
  uVar29 = (uVar6 ^ 0x200c068c) * uVar27 ^ DAT_182671e54;
  uVar18 = uVar27 << (((byte)DAT_182671c90 ^ 0x13) & 0x1f) ^ DAT_182671cd8;
  *(uint *)(lVar3 + -0x94c) = uVar26;
  uVar26 = uVar26 ^ DAT_182671df4;
  *(uint *)(lVar3 + -0x784) = uVar29;
  uVar29 = uVar29 ^ DAT_182671e54;
  *(uint *)(lVar3 + -0x1c8) = uVar18;
  uVar27 = DAT_182671c7c;
  uVar18 = uVar26 - (uVar18 ^ DAT_182671cd8) ^ DAT_182671d84;
  *(uint *)(lVar3 + -0x444) = uVar18;
  local_a8 = (byte)uVar5;
  uVar18 = (uVar18 ^ DAT_182671d84) * (*(uint *)(lVar3 + -0x61c) ^ uVar9) ^ DAT_182671ee4;
  *(uint *)(lVar3 + -0x9dc) = uVar18;
  uVar18 = uVar18 ^ DAT_182671ee4;
  *(ulonglong *)(lVar3 + -0x920) =
       (CONCAT44(uVar5,uVar8) ^ 0x1672460a29c88bb1) >> ((local_a8 ^ 0x55) & 0x3f);
  uVar26 = uVar29 + uVar18 ^ DAT_182671f64;
  uVar19 = *(ulonglong *)(lVar3 - (uVar14 ^ 0xdff3ffee));
  *(uint *)(lVar3 + -0x76c) = uVar26;
  uVar26 = uVar26 ^ DAT_182671f64;
  uVar32 = CONCAT44(DAT_182671c94,uVar27);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar19 ^ CONCAT44(uVar8,uVar6) ^ 0x33904c91d838305;
  *(ulonglong *)(lVar3 + -0xda8) = uVar32 ^ 0x999f7dafdb518afa | *(ulonglong *)(lVar3 + -0x4b8);
  bVar17 = (byte)uVar20 ^ 0xd;
  *(uint *)(lVar3 + -0x670) = uVar26 << (bVar17 & 0x1f) ^ DAT_182671d78;
  uVar25 = DAT_182671dd4;
  uVar18 = DAT_182671c50;
  uVar27 = DAT_182671c48;
  uVar33 = (ulonglong)DAT_182671c50;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c58 ^ 0x7d41c424)) = uVar26 >> (bVar11 & 0x1f) ^ uVar22;
  uVar29 = DAT_182671c70;
  uVar26 = DAT_182671c60;
  uVar36 = (ulonglong)DAT_182671c70;
  *(uint *)(lVar3 + -0xa94) =
       (*(uint *)(lVar3 - (uVar39 ^ 0xc88b372)) ^ DAT_182671d78 | *(uint *)(lVar3 + -0x634) ^ uVar22
       ) ^ DAT_182671df0;
  *(uint *)(lVar3 + -0x54) =
       (*(uint *)(lVar3 + -0x5d4) ^ uVar25) + (*(uint *)(lVar3 + -0x61c) ^ uVar9) ^ uVar25;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x10086bfe)) =
       *(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0x5498118e)) ^ uVar25 ^ uVar10;
  uVar9 = DAT_182671e40;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x170) ^ uVar23) ^ (byte)DAT_182671e0c;
  *(uint *)(lVar3 + -0x94) =
       *(uint *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0x652b21f1)) ^ uVar9 ^ DAT_182671df0;
  uVar2 = DAT_182671c84;
  *(uint *)(lVar3 - (uVar14 ^ 0xdff3ffea)) =
       *(uint *)(lVar3 - (uVar14 ^ 0xdff3f38a)) ^ uVar10 ^ DAT_182671e7c;
  *(ulonglong *)(lVar3 + -0xa60) = CONCAT44(DAT_182671c64,uVar29) ^ 0x5f0e857afd1f7e1;
  *(uint *)(lVar3 + -0x4ac) = DAT_182671d5c ^ uVar9 ^ *(uint *)(lVar3 + -0x94);
  uVar29 = DAT_182671c88;
  uVar23 = (ulonglong)DAT_182671c88;
  pbVar16 = (byte *)(*(longlong *)(lVar3 - (uVar35 ^ 0x200c0f39)) +
                     (CONCAT44(uVar27,uVar18) ^ 0x549811dad74ac774) * 0x20 +
                    (CONCAT44(uVar2,uVar8) ^ 0xccee5319a235af88));
  *(ulonglong *)(lVar3 + -0x170) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182671fb4;
  bVar12 = (byte)DAT_182671f90;
  lVar3 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0x1c3) = *pbVar16 ^ (byte)DAT_182671f90 ^ (byte)DAT_182671e0c;
  uVar25 = DAT_182671ccc;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x141a62e6)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0x54981562)) ^ *(ulonglong *)(lVar3 + -0x4b8);
  uVar24 = (uint)(bVar12 ^ *(byte *)(lVar3 + -0x1c3));
  *(uint *)(lVar3 + -0x58c) = uVar24 ^ uVar25;
  uVar30 = (*(uint *)(lVar3 - (uVar41 ^ 0xa235ab2c)) ^ DAT_182671d5c) + (DAT_182671c74 ^ 0x3e77bd9e)
           ^ DAT_182671f48;
  *(uint *)(lVar3 + -0x644) = uVar30;
  uVar10 = DAT_182671f60;
  *(uint *)(lVar3 + -0x94c) =
       (*(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x36e70d29)) ^ uVar25) <<
       (((byte)uVar18 ^ 0x65) & 0x1f) ^ DAT_182671f00;
  *(ulonglong *)(lVar3 + -0x960) =
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0xb18)) >>
       (((byte)DAT_182671c78 ^ 0x47) & 0x3f);
  uVar27 = DAT_182671c54;
  uVar38 = (ulonglong)DAT_182671c54;
  uVar25 = uVar24 << 3 ^ DAT_182671f7c;
  uVar29 = (uVar30 ^ DAT_182671f48) -
           (*(uint *)(lVar3 - ((ulonglong)uVar29 ^ 0x141a6872)) ^ DAT_182671f00) ^ DAT_182671e10;
  *(uint *)(lVar3 + -0x1c8) = uVar29;
  uVar29 = uVar29 ^ DAT_182671e10;
  uVar19 = *(ulonglong *)(lVar3 - (uVar35 ^ 0x200c0ce1));
  *(uint *)(lVar3 + -0x6c0) = uVar25;
  uVar25 = uVar25 ^ DAT_182671f7c;
  uVar18 = DAT_182671e7c ^ *(uint *)(lVar3 + -0x684);
  *(ulonglong *)(lVar3 + -0xa08) =
       uVar19 ^ CONCAT44(uVar27,uVar20) ^ 0x36e708a5 ^ 0xf281def2c134eb7f;
  *(uint *)(lVar3 + -0x444) = uVar29 * uVar18 ^ DAT_182671d4c;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x100868c6)) =
       (*(uint *)(lVar3 - (uVar23 ^ 0x141a657a)) ^ DAT_182671d4c) + uVar25 ^ uVar10;
  *(uint *)(lVar3 + -0x784) = (DAT_182671c90 ^ 0x22775622) + 0x176198ff;
  uVar19 = (ulonglong)DAT_182671dac;
  *(uint *)(lVar3 - (uVar14 ^ 0xdff3fe02)) =
       (*(uint *)(lVar3 + -0x9dc) ^ uVar10) << 0xd ^ DAT_182671eb4;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xc20) ^ uVar19) ^ (byte)DAT_182671e0c;
  uVar27 = (*(uint *)(lVar3 + -0x9dc) ^ uVar10) >> (((byte)DAT_182671c94 ^ 0x8f) & 0x1f);
  *(uint *)(lVar3 + -0x634) = uVar27 ^ uVar22;
  uVar10 = DAT_182671ea0;
  uVar29 = DAT_182671ce0;
  uVar26 = DAT_182671c8c;
  uVar27 = *(uint *)(lVar3 - (uVar39 ^ 0xc88b26e)) ^ DAT_182671eb4 | uVar27;
  uVar40 = (ulonglong)DAT_182671c8c;
  uVar19 = (ulonglong)DAT_182671c7c;
  uVar32 = CONCAT44(uVar7,DAT_182671c84);
  *(uint *)(lVar3 + -0x670) = uVar27 ^ DAT_182671cc4;
  uVar18 = (*(uint *)(lVar3 - (uVar19 ^ 0x3e611fc0)) ^ DAT_182671dd4) +
           (DAT_182671e7c ^ *(uint *)(lVar3 + -0x684)) ^ DAT_182671ecc;
  *(uint *)(lVar3 + -0x61c) = uVar18;
  *(ulonglong *)(lVar3 + -0x408) =
       *(ulonglong *)(lVar3 + -0xa60) >>
       ((byte)*(undefined8 *)(lVar3 - (uVar40 ^ 0x7de1c9c0)) & 0x3f);
  lVar4 = DAT_182671c40;
  *(uint *)(lVar3 + -0x54) = uVar10 ^ DAT_182671ecc ^ uVar18;
  uVar2 = DAT_182671e58;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0x7de1c08c)) = uVar27 ^ uVar9;
  puVar34 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c5c ^ 0x13f75bcd));
  *puVar34 = (uVar32 ^ 0x31306d17e0c8c115) >> (((byte)uVar2 ^ *(byte *)(lVar3 + -0xa50)) & 0x3f);
  uVar19 = (ulonglong)DAT_182671f20;
  *(uint *)(lVar3 + -0xae4) = uVar29 ^ uVar10 ^ *(uint *)(lVar3 + -0x54);
  uVar25 = DAT_182671d70;
  uVar18 = DAT_182671c7c;
  uVar27 = DAT_182671c78;
  uVar37 = (ulonglong)DAT_182671c78;
  *(uint *)(lVar4 - (uVar36 ^ 0x652b2bf1)) = *(uint *)(lVar3 + -0xa94) ^ DAT_182671d70 ^ uVar9;
  uVar22 = DAT_182671f50;
  uVar9 = DAT_182671eec;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x141a604e)) =
       (CONCAT44(uVar27,DAT_182671c60) ^ 0x652b2b651008611a) * 0x20 +
       (CONCAT44(uVar28,uVar18) ^ 0xc88b5023e611a07) + *(longlong *)(lVar4 + -0x9a8) ^ uVar19;
  uVar29 = uVar29 ^ *(uint *)(lVar4 + -0xae4);
  bVar12 = *(byte *)(uVar19 ^ *(ulonglong *)(lVar4 + -0x170)) ^ (byte)uVar9 ^ (byte)DAT_182671e0c;
  uVar27 = DAT_182671c64 ^ 0x6119e50d;
  *(byte *)(lVar4 + -0x1c3) = bVar12;
  uVar24 = (uint)bVar12 ^ uVar9 & 0xff;
  uVar25 = (uVar25 ^ *(uint *)(lVar4 + -0x94)) + uVar27 ^ DAT_182671d7c;
  *(uint *)(lVar4 + -0x4ac) = uVar24 ^ uVar22;
  bVar12 = (byte)DAT_182671c58;
  *(uint *)(lVar4 + -0x644) = uVar25;
  uVar25 = uVar25 ^ DAT_182671d7c;
  uVar27 = (*(uint *)(lVar4 - (uVar38 ^ 0x81e280f4)) ^ uVar22) << ((bVar12 ^ 1) & 0x1f);
  *(uint *)(lVar4 + -0x94c) = uVar27 ^ DAT_182671d34;
  uVar22 = uVar25 - uVar27 ^ DAT_182671d28;
  *(uint *)(lVar4 + -0x1c8) = uVar22;
  uVar25 = DAT_182671d6c;
  uVar27 = DAT_182671c94;
  uVar22 = uVar22 ^ DAT_182671d28;
  *(longlong *)(lVar4 + -0x7c0) = *(longlong *)(lVar4 + -0x960) << ((byte)*puVar34 & 0x3f);
  uVar24 = uVar24 * (uVar27 ^ 0xa5f6fa8f);
  uVar27 = uVar22 * uVar29 ^ DAT_182671d9c;
  *(uint *)(lVar4 + -0x58c) = uVar27;
  uVar22 = uVar24 + (uVar27 ^ DAT_182671d9c);
  *(uint *)(lVar4 + -0x444) = uVar24 ^ uVar25;
  uVar25 = DAT_182671ee0;
  uVar27 = DAT_182671c64;
  uVar32 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar4 + -0x6c0) = uVar22 ^ DAT_182671ee0;
  *(ulonglong *)(lVar4 + -0xd88) =
       (CONCAT44(uVar7,uVar27) ^ 0x7977c9e92867b7f8) + (uVar15 ^ 0xac72f51d8291c423);
  uVar27 = DAT_182671f8c;
  uVar25 = (*(uint *)(lVar4 - (uVar40 ^ 0x7de1ccd8)) ^ uVar25) << (bVar17 & 0x1f) ^ DAT_182671ef4;
  *(uint *)(lVar4 + -0x9dc) = uVar22 >> (bVar11 & 0x1f) ^ DAT_182671f30;
  *(uint *)(lVar4 + -0x784) = uVar25;
  *(uint *)(lVar4 + -0x76c) =
       (*(uint *)(lVar4 - (uVar37 ^ 0x652b22b9)) ^ DAT_182671f30 | uVar25 ^ DAT_182671ef4) ^
       DAT_182671e88;
  uVar2 = *(undefined4 *)(lVar4 - (uVar33 ^ 0xd74ac720));
  *(uint *)(lVar4 + -0x684) = (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) + uVar29 ^ DAT_182671ec0;
  *(uint *)(lVar4 + -0x634) = uVar22 << (((byte)uVar2 ^ (byte)uVar10) & 0x1f);
  uVar29 = DAT_182671dc8 ^ DAT_182671f54;
  uVar25 = *(uint *)(lVar4 - (uVar39 ^ 0xc88b386)) ^ DAT_182671f54 ^ DAT_182671ec0;
  *(uint *)(lVar4 + -0x61c) = uVar25;
  *(uint *)(lVar4 + -0x670) = *(uint *)(lVar4 - (uVar41 ^ 0xa235a8ec)) ^ uVar27 ^ DAT_182671e88;
  uVar15 = (ulonglong)DAT_182671c58;
  uVar19 = CONCAT44(uVar6,DAT_182671c84);
  *(uint *)(lVar4 - (uVar15 ^ 0x7d41c884)) = uVar29 ^ uVar25;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x200c0421)) =
       (uVar19 ^ 0x25b4aab2e8601ba) - *(longlong *)(lVar4 + -0xd88);
  uVar41 = CONCAT44(uVar26,DAT_182671c48);
  *(uint *)(lVar4 + -0x94) = uVar27 ^ uVar9 ^ *(uint *)(lVar4 + -0x670);
  uVar19 = (ulonglong)DAT_182671d68;
  *(ulonglong *)(lVar4 - (uVar14 ^ 0xdff3f1e6)) =
       (uVar41 ^ 0x12726b9e223097e0) >> ((byte)*(undefined8 *)(lVar4 + -0x960) & 0x3f);
  *(ulonglong *)(lVar4 - (uVar15 ^ 0x7d41c360)) =
       (CONCAT44(uVar8,uVar18) ^ 0xa235af803e611a14) * 0x20 +
       (CONCAT44(uVar7,uVar5) ^ 0xaebd1a82dff3f970) + *(longlong *)(lVar4 + -0x9a8) ^ uVar19;
  *(byte *)(lVar4 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar31 ^ 0xaebd1bf2)) ^ uVar19) ^ (byte)DAT_182671f4c ^
       (byte)DAT_182671e0c;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xfd5bf2fb)) =
       (CONCAT44(uVar7,uVar20) ^ 0xaa15e1d46ada28de) <<
       ((byte)*(undefined8 *)(lVar4 + -0xa78) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar21) * 4) = uVar13;
  return;
}



############ FUN_ 181034b50 size=5430 ############

void FUN_181034b50(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_f8;
  
  uVar8 = DAT_182671c8c;
  uVar12 = DAT_182671c7c;
  lVar5 = DAT_182671c40;
  uVar46 = (ulonglong)DAT_182671c8c;
  uVar20 = DAT_182671c7c * DAT_182671c8c;
  uVar3 = *(uint *)(&DAT_182613220 + DAT_18267214c);
  uVar21 = *(uint *)(&DAT_182613218 + DAT_18267214c) ^ DAT_182671c7c;
  uVar37 = (ulonglong)uVar20;
  uVar22 = CONCAT44(DAT_182671c8c,uVar20);
  uVar31 = CONCAT44(DAT_182671d50,DAT_182671d50);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xd88);
  DAT_182671c84 = uVar20;
  *(ulonglong *)(*(ulonglong *)(DAT_182671c40 + -0x588) ^ uVar31) = uVar22 ^ 0x1471ccdabb6dc08;
  uVar42 = (ulonglong)uVar12;
  puVar25 = (ulonglong *)(lVar5 - (uVar42 ^ 0x4903942c));
  *puVar25 = CONCAT44(DAT_182671d30,DAT_182671d30) ^ uVar22 ^ *(ulonglong *)(lVar5 + -0x110) ^
             0x179798320d19cfad;
  uVar10 = DAT_182671c70;
  uVar7 = DAT_182671c50;
  uVar22 = CONCAT44(DAT_182671f08,DAT_182671f08) ^ *(ulonglong *)(lVar5 + -0x920);
  uVar33 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  uVar27 = (ulonglong)DAT_182671c70;
  uVar43 = DAT_182671c50 | DAT_182671c70;
  *(ulonglong *)(lVar5 + -0xa60) = (CONCAT44(uVar20,uVar8) ^ 0xd656280f5902b4fe) + uVar22 ^ uVar33;
  uVar13 = DAT_182671f2c;
  uVar44 = (ulonglong)uVar43;
  uVar23 = CONCAT44(DAT_182671e20,DAT_182671e20);
  puVar2 = (ulonglong *)(lVar5 + -0x888);
  DAT_182671c60 = uVar43;
  *puVar1 = uVar22 << ((*(byte *)puVar2 ^ (byte)DAT_182671e20) & 0x3f);
  uVar28 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x1b1a9edc)) =
       (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar5 + -0x7e8)) +
       (CONCAT44(uVar10,uVar43) ^ 0xef7be3656eaebf0a) ^ uVar28;
  lVar6 = DAT_182671c40;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar5 + -0xa60);
  uVar24 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  bVar36 = (byte)uVar10;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0x380)) + uVar33 ^ uVar24;
  uVar32 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *(ulonglong *)(lVar6 + -0xb08) = uVar33 << ((bVar36 ^ 0xe2) & 0x3f) ^ uVar32;
  puVar29 = (ulonglong *)(lVar6 + -0x2b0);
  *puVar29 = CONCAT44(uVar43,uVar20) ^ CONCAT44(uVar12,uVar10) ^ 0xe4c68896d7f8b28f;
  lVar5 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar7 ^ 0x1b1a9a3c)) =
       uVar33 >> (((byte)uVar7 ^ 0x6e) & 0x3f) ^ uVar22;
  uVar33 = CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar22 = (*(ulonglong *)(lVar5 - (uVar44 ^ 0x9ffab6f4)) ^ uVar32 |
           uVar22 ^ *(ulonglong *)(lVar5 + -0x760)) ^ uVar33;
  uVar30 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(lVar5 + -0xb20) = uVar22;
  *(ulonglong *)(lVar5 + -0xa70) =
       uVar30 ^ uVar22 ^ uVar33 ^ uVar24 ^ *(ulonglong *)(lVar5 + -0x628);
  puVar26 = (ulonglong *)(lVar5 - (uVar44 ^ 0x9ffaba3c));
  uVar34 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *(ulonglong *)(DAT_182671c40 + -0x110) =
       (CONCAT44(DAT_182671df4,DAT_182671df4) ^ *puVar26) +
       (CONCAT44(uVar8,uVar10) ^ 0x747427d662397515) ^ uVar34;
  lVar5 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x9ffabfd4)) =
       (CONCAT44(uVar20,uVar20) ^ 0x4e12ade1bdf99bd8) + (*puVar2 ^ uVar23) ^ uVar33;
  uVar13 = DAT_182671d98;
  uVar22 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar5 + -0x920) =
       (uVar34 ^ *(ulonglong *)(lVar5 + -0x110)) + (*puVar25 ^ uVar33) ^ uVar22;
  uVar33 = CONCAT44(uVar13,uVar13);
  bVar19 = (byte)uVar8;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0x49039b8c)) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x96e831cc)) ^ uVar22) +
       (CONCAT44(uVar7,uVar10) ^ 0xec29a577f1c50f54) ^ uVar33;
  uVar34 = uVar34 ^ *(ulonglong *)(lVar5 + -0x110);
  uVar32 = uVar34 << ((bVar19 ^ 0x4c) & 0x3f);
  uVar38 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(int *)(lVar5 + -0x76c) = *(int *)(lVar5 + -0x684) << ((bVar19 ^ 0x50) & 0x1f);
  uVar14 = DAT_182671e78;
  uVar13 = DAT_182671ce8;
  *(ulonglong *)(lVar5 + -0x7e8) = uVar32 ^ uVar38;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar34 >> ((bVar19 ^ 0x6c) & 0x3f) ^ uVar22;
  lVar5 = DAT_182671c40;
  uVar23 = CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar18 = *(uint *)(DAT_182671c40 + -0x784);
  uVar22 = (*(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x49039584)) ^ uVar22 | uVar32) ^ uVar23;
  *puVar29 = uVar22;
  uVar34 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar5 + -0xa60) = *puVar1 ^ uVar34 ^ uVar23 ^ uVar33 ^ uVar22;
  *(uint *)(lVar5 - (uVar37 ^ 0x32420ddc)) = uVar18 ^ uVar14 | 0xc7623db4;
  uVar18 = DAT_182671c50;
  bVar4 = (byte)uVar43;
  uVar39 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c50 ^ 0x1b1a9654)) =
       (*(ulonglong *)(lVar5 - (uVar44 ^ 0x9ffabbd4)) ^ uVar24) +
       (uVar34 ^ *(ulonglong *)(lVar5 + -0xa60)) ^ uVar39;
  lVar6 = DAT_182671c40;
  uVar22 = uVar34 ^ *(ulonglong *)(lVar5 + -0xa60);
  *(uint *)(lVar5 + -0x54) = (DAT_182671c7c ^ 0x12f9f06) << ((bVar4 ^ 0xfa) & 0x1f);
  uVar24 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar6 + -0x760) = uVar22 << ((bVar4 ^ 200) & 0x3f) ^ uVar24;
  uVar13 = DAT_182671dc4;
  *(ulonglong *)(lVar6 + -0xb20) =
       (CONCAT44(uVar10,uVar20) ^ 0xdf29fe3310ab07e0) << ((bVar36 ^ 0xd7) & 0x3f);
  uVar16 = DAT_182671f8c;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x7c0) = uVar22 >> ((bVar19 ^ 0x50) & 0x3f) ^ uVar23;
  uVar22 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x1b1a95d4)) =
       (*(ulonglong *)(lVar6 - (uVar42 ^ 0x49039164)) ^ uVar24 | *puVar26 ^ uVar23) ^ uVar22;
  uVar13 = DAT_182671e74;
  uVar9 = DAT_182671db4;
  uVar41 = (ulonglong)DAT_182671db4;
  uVar23 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(lVar6 + -0x228) =
       *(ulonglong *)(lVar6 - (uVar42 ^ 0x49039d0c)) ^ *(ulonglong *)(lVar6 - (uVar37 ^ 0x324201f8))
       ^ uVar23 ^ uVar22 ^ uVar39;
  uVar16 = DAT_182671f78;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x920) =
       (*puVar1 ^ uVar33) + (uVar30 ^ *(ulonglong *)(lVar6 + -0xa70)) ^ uVar32;
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x96e839fc)) =
       (*(ulonglong *)(lVar6 - (uVar46 ^ 0x1312022c)) ^ uVar30) << 0x39 ^ uVar33;
  uVar13 = DAT_182671e34;
  uVar24 = (uVar30 ^ *(ulonglong *)(lVar6 + -0xa70)) >> (((byte)uVar7 ^ 0x5b) & 0x3f);
  *(ulonglong *)(lVar6 + -0x380) = uVar24 ^ CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar16 = DAT_182671f14;
  uVar22 = CONCAT44(uVar13,uVar13);
  puVar25 = (ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x9ffaba14));
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (uVar24 | uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0x110)) ^ uVar22;
  lVar5 = DAT_182671c40;
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x9ffabf4c)) =
       *puVar25 ^ uVar22 ^ uVar32 ^ uVar33 ^ *(ulonglong *)(DAT_182671c40 + -0x920);
  uVar47 = CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar30 = (*(ulonglong *)(lVar5 - (uVar27 ^ 0x96e83a5c)) ^ uVar33) +
           (*(ulonglong *)(lVar5 + -0xb08) ^ uVar39) ^ uVar47;
  *(ulonglong *)(lVar5 + -0x628) = uVar30;
  uVar13 = DAT_182671da4;
  *(ulonglong *)(lVar5 + -0xb20) =
       (CONCAT44(uVar8,uVar18) ^ 0xc1894210e4dd884c) +
       (CONCAT44(uVar20,uVar18) ^ 0x652cd03c7bf3e1f8);
  uVar8 = DAT_182671ee0;
  lVar6 = DAT_182671c40;
  uVar22 = *puVar29;
  uVar24 = (ulonglong)DAT_182671ee0;
  uVar35 = (*puVar29 ^ uVar33) << (((byte)uVar18 ^ 0x4b) & 0x3f);
  uVar40 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0xa60) = uVar35 ^ uVar40;
  uVar13 = DAT_182671dfc;
  *(byte *)(lVar5 + -0xd89) = *(byte *)(*(ulonglong *)(lVar5 + -0x990) ^ uVar24) ^ (byte)uVar16;
  uVar33 = (uVar22 ^ uVar33) >> ((bVar19 ^ 0x75) & 0x3f);
  uVar22 = (ulonglong)DAT_182671c50;
  uVar24 = CONCAT44(DAT_182671de8,DAT_182671de8);
  *(ulonglong *)(lVar6 + -0x7c0) = uVar33 ^ CONCAT44(uVar13,uVar13);
  uVar22 = (*(ulonglong *)(lVar6 - (uVar22 ^ 0x1b1a973c)) ^ uVar40 | uVar33) ^ uVar24;
  *(ulonglong *)(lVar6 + -0x760) = uVar22;
  uVar11 = DAT_182671c78;
  *puVar2 = (CONCAT44(DAT_182671c78,DAT_182671c88) ^ 0x495060b8493aa290) + uVar35;
  local_f8 = (byte)uVar12;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c74 ^ 0xa52aeb84)) =
       uVar24 ^ uVar47 ^ uVar28 ^ uVar30 ^ uVar22;
  uVar13 = DAT_182671cf8;
  lVar5 = DAT_182671c40;
  uVar23 = *(ulonglong *)(lVar6 + -0x228) ^ uVar23;
  uVar22 = ((ulonglong)(uVar9 >> 0x18) | uVar41 << 8) ^ *(ulonglong *)(lVar6 + -0x228) >> 0x18;
  uVar45 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(ulonglong *)(lVar6 + -0x380) = uVar22 ^ CONCAT44(uVar14,uVar14);
  uVar40 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xa70) = (uVar32 ^ *(ulonglong *)(lVar6 + -0x920)) + uVar23 ^ uVar45;
  uVar13 = DAT_182671e30;
  *(ulonglong *)(lVar6 + -0x110) = uVar23 << ((local_f8 ^ 0x2c) & 0x3f) ^ uVar40;
  uVar18 = DAT_182671d90;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar32 = (ulonglong)DAT_182671d90;
  uVar33 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar6 - (uVar37 ^ 0x32420e98)) =
       (*(ulonglong *)(lVar6 - (uVar44 ^ 0x9ffabcec)) ^ uVar40 | uVar22) ^ uVar35;
  uVar24 = CONCAT44(uVar18,uVar18);
  uVar22 = *(ulonglong *)(lVar5 + -0xa70);
  uVar23 = (ulonglong)DAT_182671c64;
  uVar44 = CONCAT44(uVar8,uVar8);
  uVar41 = CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar33 = *(ulonglong *)(lVar5 - (uVar33 ^ 0x79725ee7)) ^ uVar24 ^ uVar35 ^ uVar45 ^ uVar22;
  *(ulonglong *)(lVar5 + -0xb08) = uVar33;
  uVar30 = (uVar33 ^ uVar24) + (uVar47 ^ *(ulonglong *)(lVar5 + -0x628)) ^ uVar44;
  *(ulonglong *)(lVar5 + -0xb20) = uVar30;
  uVar24 = (*(ulonglong *)(lVar5 - (uVar23 ^ 0xb5f703e3)) ^ uVar24) << ((bVar36 ^ 0xe9) & 0x3f);
  *puVar29 = uVar24 ^ uVar41;
  uVar13 = DAT_182671cf4;
  lVar6 = DAT_182671c40;
  uVar33 = (*(ulonglong *)(lVar5 - (uVar27 ^ 0x96e833e4)) >> 0x20 ^ uVar32) >> 0x1b;
  uVar23 = uVar33 ^ CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar5 + -0x7c0) = uVar23;
  uVar15 = DAT_182671c94;
  uVar24 = (uVar33 | uVar24) ^ uVar31;
  uVar33 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar6 + -0xa60) =
       (CONCAT44(DAT_182671c94,uVar43) ^ 0x64d7357dec1bc90a) >>
       (((byte)uVar23 ^ (byte)uVar13) & 0x3f);
  *puVar2 = uVar24;
  uVar47 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *(ulonglong *)(lVar6 + -0x760) = uVar47 ^ uVar24 ^ uVar44 ^ uVar31 ^ uVar30;
  uVar13 = DAT_182671f5c;
  uVar17 = DAT_182671e4c;
  uVar8 = DAT_182671c68;
  uVar18 = DAT_182671c48;
  uVar24 = CONCAT44(uVar20,DAT_182671c68);
  uVar32 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar6 + -0x920) =
       (*(ulonglong *)(lVar6 - (uVar33 ^ 0x48d28ef)) ^ uVar28) + (uVar45 ^ uVar22) ^ uVar40;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x228) = (*puVar1 ^ uVar28) << (((byte)uVar8 ^ 0xfc) & 0x3f) ^ uVar23;
  uVar8 = DAT_182671c54;
  uVar22 = (ulonglong)DAT_182671c4c;
  *(uint *)(lVar6 - ((ulonglong)DAT_182671c54 ^ 0x4a08fe58)) =
       (DAT_182671c70 ^ 0x4ad82a21) >>
       (((byte)*(undefined4 *)(lVar6 + -0x94) ^ (byte)uVar17) & 0x1f);
  uVar33 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x96e83b6c)) =
       ((ulonglong)(DAT_182671ddc >> 0x1b) | (ulonglong)DAT_182671ddc << 5) ^
       *(ulonglong *)(lVar6 - (uVar22 ^ 0x94f1012b)) >> 0x1b ^ uVar33;
  uVar22 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *(ulonglong *)(lVar6 - (uVar32 ^ 0xfddbfefa)) =
       (uVar33 ^ *(ulonglong *)(lVar6 + -0x380) | uVar23 ^ *(ulonglong *)(lVar6 + -0x228)) ^ uVar22;
  uVar16 = DAT_182671e44;
  uVar33 = CONCAT44(DAT_182671d20,DAT_182671d20);
  uVar22 = uVar33 ^ uVar22 ^ uVar40 ^ *(ulonglong *)(lVar6 + -0x110) ^
           *(ulonglong *)(lVar6 + -0x920);
  *(ulonglong *)(lVar6 + -0x7e8) = uVar22;
  uVar13 = DAT_182671e04;
  uVar28 = CONCAT44(uVar16,uVar16);
  uVar23 = CONCAT44(uVar17,uVar17);
  uVar30 = (ulonglong)DAT_182671c58;
  uVar33 = (CONCAT44(uVar12,uVar20) ^ 0x3a804ab8c4aac310) + (uVar22 ^ uVar33);
  uVar22 = CONCAT44(DAT_182671c5c,uVar43);
  *(ulonglong *)(lVar6 + -0x628) = uVar33 ^ uVar28;
  uVar9 = DAT_182671c5c;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar22 = (uVar22 ^ 0xdec6eb3285204341) + (uVar44 ^ *(ulonglong *)(lVar6 + -0xb20));
  uVar41 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar6 + -0xb08) = uVar22 ^ uVar32;
  *(ulonglong *)(lVar6 + -0xa60) = uVar22 + uVar33 ^ uVar23;
  uVar14 = DAT_182671c88;
  *(ulonglong *)(lVar6 - (uVar42 ^ 0x490394b4)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c74 ^ 0xa52ae024)) ^ uVar28) <<
       (((byte)uVar8 ^ 0xd) & 0x3f) ^ uVar34;
  lVar5 = DAT_182671c40;
  bVar19 = (byte)DAT_182671c94;
  puVar25 = (ulonglong *)(DAT_182671c40 + -0x628);
  *(ulonglong *)(DAT_182671c40 + -0x7c0) =
       CONCAT44(uVar14,uVar9) ^ 0x202108000884090 | 0xf489c620eb143d2a;
  uVar42 = (uVar28 ^ *puVar25) >> ((bVar19 ^ 0xc1) & 0x3f);
  *puVar2 = uVar42 ^ CONCAT44(DAT_182671ea4,DAT_182671ea4);
  uVar13 = DAT_182671db8;
  lVar6 = DAT_182671c40;
  uVar22 = *(ulonglong *)(DAT_182671c40 + -0x760);
  *(ulonglong *)(lVar5 + -0xa70) = (*(ulonglong *)(lVar5 - (uVar30 ^ 0xf1d9da2f)) ^ uVar32) + uVar42
  ;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar42 = (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c90 ^ 0x79725bbf)) ^ uVar34 | uVar42) ^
           uVar33;
  *puVar1 = uVar42;
  uVar13 = DAT_182671f48;
  *(ulonglong *)(lVar6 + -0x228) =
       *(ulonglong *)(lVar6 - (uVar46 ^ 0x1312023c)) ^ uVar42 ^ uVar33 ^ uVar23 ^ uVar39;
  uVar8 = DAT_182671c6c;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar44 = (ulonglong)DAT_182671c6c;
  uVar42 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar6 + -0x380) =
       (CONCAT44(uVar15,uVar12) ^ 0xed621a2b701baf3d) + (uVar47 ^ uVar22) ^ uVar31;
  *(ulonglong *)(lVar6 - (uVar30 ^ 0xf1d9d037)) =
       (uVar40 ^ *(ulonglong *)(lVar6 + -0x920)) + (uVar24 ^ 0xa99f092c7ae3018f) ^ uVar42;
  uVar13 = DAT_182671f94;
  uVar31 = uVar31 ^ *(ulonglong *)(lVar6 + -0x380);
  *(ulonglong *)(lVar6 + -0x7e8) =
       CONCAT44(uVar7,uVar9) ^ CONCAT44(uVar7,DAT_182671c74) ^ 0x446532ba7b7caa3c;
  uVar33 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xb20) = (uVar42 ^ *(ulonglong *)(lVar6 + -0x110)) + uVar31 ^ uVar33;
  uVar7 = DAT_182671c64;
  uVar34 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar6 + -0x7c0) =
       CONCAT44(uVar8,uVar10) ^ CONCAT44(uVar11,uVar43) ^ 0xd72c6690b5a008ed;
  uVar16 = DAT_182671f54;
  uVar32 = uVar31 << ((bVar4 ^ 0xdd) & 0x3f);
  uVar28 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar6 + -0x628) = uVar32 ^ uVar28;
  uVar13 = DAT_182671c80;
  uVar31 = uVar31 >> (((byte)uVar7 ^ 0xf4) & 0x3f);
  uVar22 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar31 ^ CONCAT44(uVar16,uVar16);
  uVar8 = DAT_182671cc0;
  uVar30 = (ulonglong)DAT_182671cc0;
  uVar24 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar42 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0x7972537f)) = (uVar31 | uVar32) ^ uVar24;
  lVar5 = DAT_182671c40;
  *puVar29 = *(ulonglong *)(DAT_182671c40 - (uVar46 ^ 0x1312037c)) ^ uVar42 ^ uVar24 ^ uVar33 ^
             *(ulonglong *)(DAT_182671c40 + -0xa70);
  lVar6 = DAT_182671c40;
  *(int *)(lVar5 - (uVar37 ^ 0x32420ca4)) = *(int *)(lVar5 + -0x9dc) * *(int *)(lVar5 + -0x684);
  uVar32 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *puVar2 = (uVar23 ^ *(ulonglong *)(lVar6 + -0xa60)) + (uVar42 ^ *puVar29) ^ uVar32;
  uVar7 = DAT_182671c90;
  uVar22 = (ulonglong)DAT_182671c48;
  *puVar1 = (uVar28 ^ *(ulonglong *)(lVar6 + -0x628)) -
            (CONCAT44(uVar14,uVar13) ^ 0xa43581c74f8124fb);
  uVar23 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(ulonglong *)(lVar6 + -0x760) =
       (*(ulonglong *)(lVar6 - (uVar22 ^ 0xfddbfd5a)) ^ uVar42) << 0x2e ^ uVar23;
  *(int *)(lVar6 + -0x634) = *(int *)(lVar6 + -0x61c) * *(int *)(lVar6 + -0x684);
  lVar5 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       ((ulonglong)(uVar8 >> 0x12) | uVar30 << 0xe) ^ *puVar29 >> 0x12 ^ uVar22;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c78 ^ 0xb7d30f16)) =
       (CONCAT44(uVar18,uVar13) ^ 0x40feff0a28ded9f5) << (((byte)uVar7 ^ 0x13) & 0x3f);
  uVar42 = CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar23 = (uVar23 ^ *(ulonglong *)(lVar5 + -0x760) | uVar22 ^ *(ulonglong *)(lVar5 + -0x920)) ^
           uVar42;
  uVar22 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  *(ulonglong *)(lVar5 + -0x110) = uVar23;
  uVar24 = CONCAT44(DAT_182671d10,DAT_182671d10);
  *(ulonglong *)(lVar5 + -0x7c0) = uVar22 ^ uVar32 ^ *puVar2 ^ uVar23 ^ uVar42;
  uVar16 = DAT_182671e90;
  *(ulonglong *)(lVar5 + -0x380) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x96e83ac4)) ^ uVar39) +
       (uVar33 ^ *(ulonglong *)(lVar5 + -0xb20)) ^ uVar24;
  uVar13 = DAT_182671dc8;
  uVar23 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0xb08) =
       (uVar39 ^ *(ulonglong *)(lVar5 + -0x228)) << ((local_f8 ^ 8) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar5 + -0xa70) =
       *(ulonglong *)(CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar5 + -0xb88)) ^
       CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar22 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xb5f7028b)) =
       (*(ulonglong *)(lVar5 - (uVar41 ^ 0xfe08d19f)) ^ uVar39) >> (((byte)uVar7 ^ 0x3b) & 0x3f) ^
       uVar38;
  uVar33 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar42 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar5 - (uVar44 ^ 0x48d234f)) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0xb4d862ee)) ^ uVar23 |
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c68 ^ 0x460ad3b9)) ^ uVar38) ^ uVar33;
  uVar22 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  uVar18 = DAT_182671c54 ^ 0x6048fa5;
  *puVar1 = *(ulonglong *)(lVar5 - (uVar42 ^ 0x94f10a8b)) ^ uVar22 ^ uVar33 ^ uVar24 ^
            *(ulonglong *)(lVar5 + -0x380);
  *(uint *)(lVar5 - ((ulonglong)DAT_182671c88 ^ 0xffdbdc93)) = (DAT_182671c50 ^ 0xc5e1307c) + uVar18
  ;
  *puVar29 = (uVar32 ^ *puVar2) + (*puVar1 ^ uVar22) ^ uVar35;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar3 ^ uVar20) * 4) = uVar21;
  return;
}



############ FUN_ 180f61490 size=5283 ############

void FUN_180f61490(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  
  uVar3 = DAT_182671c80;
  lVar1 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671c80;
  uVar30 = (ulonglong)DAT_182671c48;
  uVar27 = DAT_182671c80 & DAT_182671c48;
  uVar5 = DAT_182671ed8 ^ DAT_182671d38;
  uVar6 = DAT_182671dc8 & 3;
  if (uVar6 < 2) {
    uVar9 = DAT_182671f24;
    if (uVar6 == 0) {
      uVar9 = DAT_182671dc8;
    }
  }
  else {
    uVar9 = DAT_182671dfc;
    if (uVar6 < 3) {
      uVar9 = DAT_182671f14;
    }
  }
  uVar7 = *(uint *)(&DAT_182613210 + (uVar22 ^ 0x4a90cefa) + (longlong)DAT_1826721bc) ^
          DAT_182671c48;
  uVar6 = *(uint *)(&DAT_182613220 + DAT_1826721bc);
  uVar8 = DAT_182671dfc & 0xff;
  DAT_182671dfc = ((DAT_182671dfc << 8 | uVar8) << 8 | uVar8) << 8 | uVar8;
  uVar24 = CONCAT44(DAT_182671d50,DAT_182671d50);
  uVar35 = CONCAT44(DAT_182671e38,DAT_182671e38);
  uVar31 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar8 = uVar9 & 0xff;
  DAT_182671c7c = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x828) =
       (uVar24 ^ *(ulonglong *)(DAT_182671c40 + -0xb18)) -
       (*(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar35) ^ uVar31;
  uVar26 = (ulonglong)uVar27;
  DAT_182671f70 = ((uVar9 << 8 | uVar8) << 8 | uVar8) << 8 | uVar8;
  puVar25 = (ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0x8104202));
  uVar21 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar9 = DAT_182671f14 & 0xff;
  uVar16 = (*puVar25 ^ uVar35) + (CONCAT44(uVar27,uVar3) ^ 0xf10427b48d18da9a) ^ uVar21;
  *(ulonglong *)(lVar1 + -0xb08) = uVar16;
  DAT_182671f14 = ((DAT_182671f14 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar34 = CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar38 = CONCAT44(DAT_182671f14,DAT_182671f14);
  uVar16 = uVar38 ^ uVar34 ^ uVar16 ^ uVar21 ^ *(ulonglong *)(lVar1 + -0x680);
  uVar9 = DAT_182671f84 & 0xff;
  DAT_182671f84 = ((DAT_182671f84 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar17 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar1 + -0x760) = uVar16;
  uVar9 = DAT_182671f24 & 0xff;
  *(ulonglong *)(lVar1 + -0xa60) = (uVar38 ^ uVar16) >> (((byte)uVar27 ^ 0x57) & 0x3f) ^ uVar17;
  DAT_182671f24 = ((DAT_182671f24 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar18 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(lVar1 + -0x5e8) = (uVar38 ^ uVar16) << (((byte)uVar3 ^ 0xc9) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar1 - (uVar30 ^ 0xb95e5356)) =
       CONCAT44(DAT_182671c48,uVar3) ^ *(ulonglong *)(lVar1 + -0xa50) ^ uVar35 ^ 0xbbe3aff1b11b564f;
  lVar2 = DAT_182671c40;
  uVar9 = DAT_182671dc8 & 0xff;
  DAT_182671dc8 = ((DAT_182671dc8 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  puVar42 = (ulonglong *)(lVar1 - (uVar26 ^ 0x8104232));
  uVar28 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  uVar32 = uVar17 ^ *puVar42 | uVar18 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar32 ^ uVar28;
  uVar9 = DAT_182671d38 & 0xff;
  DAT_182671d38 = ((DAT_182671d38 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar35 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar2 + -0xb08) = (uVar34 ^ *(ulonglong *)(lVar2 + -0x680)) - uVar32 ^ uVar35;
  lVar1 = DAT_182671c40;
  uVar9 = DAT_182671ed8 & 0xff;
  DAT_182671ed8 = ((DAT_182671ed8 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar39 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar16 = CONCAT44(DAT_182671fa8,DAT_182671fa8) ^ uVar39 ^ uVar31 ^
           *(ulonglong *)(DAT_182671c40 + -0x828) ^ *(ulonglong *)(DAT_182671c40 + -0x7e8);
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       CONCAT44(uVar27,uVar27) ^ 0xee5fcb5efeef67b9 | 0xc2194b5efeef2499;
  uVar9 = uVar5 & 0xff;
  *(ulonglong *)(lVar1 + -0xa50) = uVar16;
  DAT_182671da0 = ((uVar5 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar34 = CONCAT44(DAT_182671da0,DAT_182671da0);
  uVar29 = (uVar16 ^ uVar39) >> (((byte)uVar27 ^ 0x77) & 0x3f);
  *(ulonglong *)(lVar1 + -0x5e8) = uVar29 ^ uVar34;
  uVar16 = (*(ulonglong *)(lVar1 - (uVar22 ^ 0x4a90c4a2)) ^ uVar39) <<
           (((byte)DAT_182671c48 ^ 0x45) & 0x3f);
  *(ulonglong *)(lVar1 + -0x680) = uVar16 ^ uVar18;
  *(ulonglong *)(lVar1 + -0x7e8) =
       CONCAT44(uVar27,uVar3) ^ uVar24 ^ *(ulonglong *)(lVar1 + -0xb18) ^ 0x4a43d5712c9947cf;
  *(ulonglong *)(lVar1 + -0xa60) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0x4a90c872)) ^ uVar18 | uVar29) ^ uVar34;
  uVar4 = DAT_182671c60;
  *puVar25 = uVar32 | uVar16;
  uVar16 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar1 + -0xb18) =
       (uVar31 ^ *(ulonglong *)(lVar1 + -0x828)) - (uVar34 ^ *(ulonglong *)(lVar1 + -0xa60)) ^
       uVar31;
  puVar25 = (ulonglong *)(lVar1 - (uVar16 ^ 0x33160477));
  *(ulonglong *)(lVar1 + -0x7e8) =
       (CONCAT44(uVar3,uVar4) ^ 0x62573e81486269c6) >> (((byte)uVar5 ^ (byte)*puVar25) & 0x3f);
  puVar19 = (ulonglong *)(lVar1 - (uVar30 ^ 0xb95e5db6));
  *puVar19 = uVar34 ^ uVar35 ^ *(ulonglong *)(lVar1 + -0xb08) ^ uVar21 ^ *puVar42;
  uVar24 = (*(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c6c ^ 0x788fabf)) ^ uVar21) >>
           (((byte)uVar3 ^ 0xe5) & 0x3f);
  uVar16 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar1 + -0x680) = uVar24 ^ uVar39;
  uVar5 = DAT_182671c8c;
  uVar16 = (*(ulonglong *)(lVar1 - (uVar16 ^ 0x48267096)) ^ uVar21) << 0x29;
  *(ulonglong *)(lVar1 + -0xa50) = uVar16 ^ uVar28;
  *(ulonglong *)(lVar1 + -0x828) = (uVar24 | uVar16) ^ uVar35;
  bVar12 = (byte)DAT_182671c74;
  uVar24 = uVar28 ^ uVar38 ^ uVar31 ^ *(ulonglong *)(lVar1 + -0x760) ^
           *(ulonglong *)(lVar1 + -0xb18);
  *(ulonglong *)(lVar1 + -0x7e8) =
       (uVar35 ^ *(ulonglong *)(lVar1 + -0xb08)) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x3a4e467a)) ^ uVar35) ^ uVar17;
  *(ulonglong *)(lVar1 + -0xa60) = uVar24;
  bVar13 = (byte)DAT_182671c50;
  *(ulonglong *)(lVar1 + -0x5e8) = (uVar24 ^ uVar38) >> ((bVar12 ^ 0x8c) & 0x3f) ^ uVar34;
  uVar3 = DAT_182671c4c;
  puVar23 = (ulonglong *)(lVar1 - ((ulonglong)DAT_182671c4c ^ 0x56ddc42f));
  uVar16 = (ulonglong)DAT_182671c94;
  *puVar23 = (uVar38 ^ uVar24) << ((bVar13 ^ 0x7f) & 0x3f) ^ uVar31;
  uVar16 = *(ulonglong *)(lVar1 - (uVar16 ^ 0x33160897)) ^ uVar31 |
           uVar34 ^ *(ulonglong *)(lVar1 + -0x5e8);
  uVar24 = uVar16 ^ uVar18;
  *(ulonglong *)(lVar1 + -0xa50) = uVar24;
  uVar24 = uVar34 ^ uVar18 ^ uVar17 ^ uVar24 ^ *(ulonglong *)(lVar1 + -0x7e8);
  *(ulonglong *)(lVar1 + -0x760) = uVar24;
  *(ulonglong *)(lVar1 + -0xb08) = (uVar31 ^ *(ulonglong *)(lVar1 + -0xb18)) - uVar16 ^ uVar21;
  uVar9 = DAT_182671c5c;
  uVar16 = (ulonglong)DAT_182671c5c;
  uVar24 = (uVar24 ^ uVar34) >> (((byte)uVar5 ^ 0x66) & 0x3f);
  *(ulonglong *)(lVar1 + -0xa60) = uVar24 ^ uVar35;
  *(ulonglong *)(lVar1 + -0x5e8) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0x4a90c992)) ^ uVar34) <<
       (((byte)DAT_182671c70 ^ 0xbc) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c68 ^ 0x5e585839)) =
       (*(ulonglong *)(lVar1 - (uVar26 ^ 0x8104dba)) ^ uVar31 | uVar24) ^ uVar28;
  uVar5 = DAT_182671c58;
  uVar24 = (ulonglong)DAT_182671c58;
  *(undefined4 *)(lVar1 - (uVar30 ^ 0xb95e58ca)) = *(undefined4 *)(lVar1 + -0x6c0);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c54 ^ 0x515536e0)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c78 ^ 0x156d87fc)) ^ uVar17) -
       (uVar28 ^ *(ulonglong *)(lVar1 + -0x680)) ^ uVar21;
  puVar20 = (ulonglong *)(lVar1 - ((ulonglong)DAT_182671c90 ^ 0x48267f2e));
  *puVar20 = uVar35 ^ *(ulonglong *)(lVar1 + -0xb08) ^ uVar18 ^ uVar21 ^
             *(ulonglong *)(lVar1 + -0x828);
  uVar14 = uVar5 - DAT_182671c7c;
  DAT_182671c54 = uVar14;
  *(ulonglong *)(lVar1 + -0x760) =
       *(ulonglong *)(lVar1 + -0xa50) ^ uVar18 ^ uVar21 ^ *(ulonglong *)(lVar1 + -0xb18);
  bVar12 = (byte)uVar5;
  *puVar42 = (uVar18 ^ *(ulonglong *)(lVar1 + -0xa50)) >> ((bVar12 ^ 0xf1) & 0x3f) ^ uVar38;
  uVar22 = (uVar18 ^ *(ulonglong *)(lVar1 + -0xa50)) << (((byte)uVar14 ^ 0x71) & 0x3f);
  *(ulonglong *)(lVar1 + -0x5e8) = uVar22 ^ uVar39;
  *(ulonglong *)(lVar1 + -0x7e8) =
       CONCAT44(uVar27,uVar27) ^ CONCAT44(uVar5,uVar27) ^ 0x87dbb1735755f7a1;
  uVar22 = *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x528d616)) ^ uVar38 | uVar22;
  *(ulonglong *)(lVar1 + -0x828) = uVar22 ^ uVar35;
  uVar22 = (*(ulonglong *)(lVar1 + -0xb08) ^ uVar21) - uVar22;
  *(ulonglong *)(lVar1 + -0x760) = uVar22 ^ uVar31;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x528d626)) = uVar22 >> ((bVar12 ^ 0xff) & 0x3f);
  uVar8 = DAT_182671dd0 & 3;
  if (uVar8 < 2) {
    uVar11 = DAT_182671e48;
    if (uVar8 == 0) {
      uVar11 = DAT_182671dd0;
    }
  }
  else {
    uVar11 = DAT_182671efc;
    if (uVar8 < 3) {
      uVar11 = DAT_182671de4;
    }
  }
  uVar8 = DAT_182671efc & 0xff;
  uVar15 = DAT_182671efc << 8;
  DAT_182671efc = ((uVar15 | uVar8) << 8 | uVar8) << 8 | uVar8;
  uVar22 = (ulonglong)DAT_182671efc;
  uVar36 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar10 = DAT_182671e48 & 0xff;
  uVar30 = *(ulonglong *)(lVar1 - (uVar26 ^ 0x810407a)) ^ uVar35 ^ uVar21 ^ uVar36 ^
           *(ulonglong *)(lVar1 + -0xb18);
  *(ulonglong *)(lVar1 + -0x7e8) = uVar30;
  DAT_182671e48 = ((DAT_182671e48 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar32 = CONCAT44(DAT_182671e48,DAT_182671e48);
  uVar38 = *(ulonglong *)(lVar1 - (uVar24 ^ 0xd392320)) >> 0xe ^
           (uVar22 << 0x12 | (ulonglong)(((uVar15 & 0xffff | uVar8) << 8 | uVar8) >> 6));
  uVar8 = DAT_182671f20 & 0xff;
  *(ulonglong *)(lVar1 + -0xa60) = uVar38 ^ uVar32;
  DAT_182671f20 = ((DAT_182671f20 << 8 | uVar8) << 8 | uVar8) << 8 | uVar8;
  uVar39 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar22 = (uVar36 ^ uVar30) << ((bVar12 ^ 0xfa) & 0x3f);
  uVar8 = DAT_182671dd0 & 0xff;
  uVar15 = DAT_182671dd0 << 8;
  *(ulonglong *)(lVar1 + -0x5e8) = uVar22 ^ uVar39;
  DAT_182671dd0 = ((uVar15 | uVar8) << 8 | uVar8) << 8 | uVar8;
  uVar30 = (ulonglong)DAT_182671dd0;
  uVar29 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0xd392fc0)) = (uVar38 | uVar22) ^ uVar29;
  uVar10 = DAT_182671de4 & 0xff;
  DAT_182671de4 = ((DAT_182671de4 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar38 = CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar22 = (uVar21 ^ *(ulonglong *)(lVar1 + -0xb18)) -
           (CONCAT44(uVar14,uVar27) ^ 0x17a6a5782e564881);
  uVar10 = uVar11 & 0xff;
  *(ulonglong *)(lVar1 + -0xa50) = uVar22 ^ uVar38;
  DAT_182671f40 = ((uVar11 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar40 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x528d45e)) =
       uVar22 - (*(ulonglong *)(lVar1 + -0xb08) ^ uVar29) ^ uVar40;
  uVar21 = (*(ulonglong *)(lVar1 + -0xb08) ^ uVar29) - (CONCAT44(uVar5,uVar27) ^ 0x8095fff0db36d29e)
           ^ uVar38;
  *(ulonglong *)(lVar1 + -0x7e8) = uVar21;
  uVar24 = *(ulonglong *)(lVar1 - (uVar24 ^ 0xd392248)) ^
           *(ulonglong *)(lVar1 - (uVar26 ^ 0x8104f32)) ^ uVar28 ^ uVar31;
  *(ulonglong *)(lVar1 + -0x5e8) = uVar24 ^ uVar29;
  lVar2 = DAT_182671c40;
  uVar30 = *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x528d99e)) >> 0x10 ^
           ((ulonglong)(uVar15 & 0xffff | uVar8) | uVar30 << 0x10);
  *(ulonglong *)(lVar1 + -0xa60) = uVar30 ^ uVar40;
  uVar22 = (uVar29 ^ *puVar19) << 0x30;
  *(ulonglong *)(lVar1 + -0xb18) = uVar22 ^ uVar38;
  *(ulonglong *)(lVar1 + -0xa50) = (uVar30 | uVar22) ^ uVar32;
  uVar22 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x760)) -
           (CONCAT44(DAT_182671c70,uVar27) ^ 0xe95506dc1e87d959);
  uVar15 = DAT_182671c5c * DAT_182671c90;
  *(ulonglong *)(lVar2 + -0x680) = uVar22 ^ uVar39;
  *(ulonglong *)(lVar2 + -0xa60) = uVar24 + (CONCAT44(uVar14,uVar27) ^ 0x9e2c61cfdbfecd79);
  uVar33 = DAT_182671e5c - DAT_182671ec8;
  uVar26 = uVar22 - (uVar32 ^ *puVar20) ^ uVar40;
  DAT_182671c70 = uVar15;
  *(ulonglong *)(lVar2 + -0xb18) = uVar26;
  *(ulonglong *)(lVar2 + -0x760) = uVar24 ^ 0x70dab70b577d76c5;
  uVar5 = DAT_182671c88;
  uVar8 = DAT_182671e5c & 0xff;
  DAT_182671e5c = ((DAT_182671e5c << 8 | uVar8) << 8 | uVar8) << 8 | uVar8;
  uVar30 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar22 = (CONCAT44(uVar15,uVar9) ^ 0xc2ac2b1e6291a4c3) + (uVar32 ^ *puVar20) ^ uVar30;
  *(ulonglong *)(lVar2 + -0xa60) = uVar22;
  uVar10 = uVar5 & DAT_182671c94;
  *(ulonglong *)(lVar2 + -0x680) = *(ulonglong *)(lVar2 + -0xb08) ^ uVar24 ^ uVar29;
  uVar8 = DAT_182671c94;
  uVar14 = DAT_182671ec8 & 0xff;
  DAT_182671ec8 = ((DAT_182671ec8 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar24 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  uVar11 = uVar33 & 0xff;
  uVar33 = uVar33 * 0x100;
  uVar28 = *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x3116062f)) ^ uVar22 ^ uVar24 ^ uVar30 ^
           uVar40;
  DAT_182671eb0 = ((uVar33 | uVar11) << 8 | uVar11) << 8 | uVar11;
  DAT_182671c68 = uVar10;
  *(ulonglong *)(lVar2 + -0x760) = uVar28;
  uVar14 = DAT_182671c94;
  lVar1 = DAT_182671c40;
  uVar41 = (ulonglong)DAT_182671eb0;
  uVar37 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  uVar22 = (uVar28 ^ uVar24) >> (((byte)uVar8 ^ 0x37) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar22 ^ uVar37;
  uVar28 = (uVar28 ^ uVar24) << (((byte)uVar14 ^ 0x37) & 0x3f);
  *(ulonglong *)(lVar1 + -0xb08) = uVar28 ^ uVar24;
  uVar28 = uVar28 | uVar22;
  *(ulonglong *)(lVar1 + -0x5e8) = uVar28 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x680) = (uVar40 ^ *(ulonglong *)(lVar1 + -0x828)) - uVar28 ^ uVar24;
  uVar8 = DAT_182671c90;
  uVar22 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar1 + -0xa60) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x31160bef)) ^ uVar30 ^ 0x75b3b2550d339fa7;
  uVar14 = DAT_182671c94;
  *(ulonglong *)(lVar1 + -0x760) = uVar30 ^ uVar40 ^ uVar38 ^ uVar26 ^ uVar21;
  *(ulonglong *)(lVar1 + -0xa50) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0x4826721e)) ^ uVar30) +
       (CONCAT44(uVar9,uVar8) ^ 0xb9dfb44d75250f4d);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x3316051f)) =
       (*(ulonglong *)(lVar1 + -0x760) ^ uVar30) >> (((byte)uVar14 ^ 0x37) & 0x3f) ^ uVar37;
  uVar14 = DAT_182671c94;
  uVar8 = DAT_182671c90;
  uVar22 = (*(ulonglong *)(lVar1 + -0x760) ^ uVar30) << (((byte)uVar10 ^ 0x27) & 0x3f);
  *(ulonglong *)(lVar1 + -0x828) = uVar22 ^ uVar24;
  uVar22 = *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x7dfff4e7)) ^ uVar37 | uVar22;
  *(ulonglong *)(lVar1 + -0xa60) = uVar22 ^ uVar39;
  *(ulonglong *)(lVar1 + -0x7e8) = (uVar40 ^ *(ulonglong *)(lVar1 + -0xb18)) - uVar22 ^ uVar36;
  lVar1 = DAT_182671c40;
  bVar12 = (byte)uVar5;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0xea3f265e)) =
       (CONCAT44(uVar8,uVar10) ^ 0x31e4d0ba127df1d1) + (CONCAT44(uVar14,uVar5) ^ 0x99927c10948721b8)
  ;
  puVar19 = (ulonglong *)(lVar1 - (uVar16 ^ 0x5e585839));
  *(ulonglong *)(lVar1 + -0xb08) =
       *puVar19 ^ *(ulonglong *)(lVar1 + -0xa60) ^ uVar24 ^ uVar30 ^ uVar39;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x828) =
       (*(ulonglong *)(DAT_182671c40 + -0x760) ^ uVar30) << (((byte)DAT_182671c90 ^ 0x60) & 0x3f);
  *(ulonglong *)(lVar1 + -0xb18) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar15 ^ 0xea3f2706)) ^ uVar30) >>
       ((bVar12 ^ 0xd5) & 0x3f) ^ uVar38;
  *puVar20 = 0x3fa9ea3d78eed2cc >> ((bVar12 ^ 0xe1) & 0x3f);
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar1 + -0xa60) =
       (*(ulonglong *)(lVar1 + -0xb08) ^ uVar30) << (((byte)uVar15 ^ 8) & 0x3f) ^ uVar17;
  uVar26 = *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x7dfff4f7)) ^ uVar38 |
           *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xea3f266e)) ^ uVar17;
  uVar22 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar2 + -0x760) = uVar26 ^ uVar29;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0x3316063f)) = (*puVar19 ^ uVar24) - uVar26 ^ uVar32;
  uVar14 = DAT_182671f64 & 0xff;
  uVar26 = uVar37 ^ *(ulonglong *)(lVar1 + -0x5e8) ^ uVar30 ^ uVar36 ^
           *(ulonglong *)(lVar1 + -0x7e8);
  *(ulonglong *)(lVar1 + -0xa50) = uVar26;
  lVar1 = DAT_182671c40;
  DAT_182671f64 = ((DAT_182671f64 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar30 = CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar22 = ((ulonglong)((uVar33 & 0xffff | uVar11) >> 6) | uVar41 << 10) ^ uVar26 >> 0x16;
  *(ulonglong *)(DAT_182671c40 + -0xb18) = (uVar26 ^ uVar37) << ((bVar12 ^ 0xc5) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar1 + -0xb08) = uVar22 ^ uVar30;
  *(ulonglong *)(lVar1 + -0xa60) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x3116051f)) ^ uVar40 | uVar22) ^ uVar34;
  *(ulonglong *)(lVar1 + -0x680) =
       (*(ulonglong *)(lVar1 - (uVar16 ^ 0x5e585951)) ^ uVar36) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x7dfff58f)) ^ uVar34) ^ uVar35;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c94 ^ 0x33160bff)) =
       CONCAT44(uVar8,uVar9) ^ 0x441452d861ec6c23;
  uVar16 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  uVar30 = uVar34 ^ *puVar25 ^ uVar16 ^ uVar32 ^ *(ulonglong *)(lVar1 + -0x828);
  *(ulonglong *)(lVar1 + -0xa50) = uVar30;
  uVar9 = DAT_182671c6c;
  uVar22 = (ulonglong)DAT_182671c78;
  uVar5 = DAT_182671c4c;
  if ((DAT_182671c6c & 1) == 0) {
    uVar5 = DAT_182671c6c;
  }
  DAT_182671c48 = uVar5;
  *(undefined8 *)(lVar1 + -0xb18) = 0x40;
  uVar30 = (uVar30 ^ uVar16) >> (((byte)uVar3 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar1 + -0xb08) = uVar30 ^ uVar24;
  uVar22 = (*(ulonglong *)(lVar1 - (uVar22 ^ 0x156d8a44)) ^ uVar16) << (((byte)uVar9 ^ 0x45) & 0x3f)
  ;
  *(ulonglong *)(lVar1 + -0x7e8) = uVar22 ^ uVar24;
  uVar22 = uVar22 | uVar30;
  *(ulonglong *)(lVar1 + -0x5e8) = uVar22 ^ uVar31;
  *(ulonglong *)(lVar1 + -0xa60) = (uVar32 ^ *(ulonglong *)(lVar1 + -0x828)) - uVar22 ^ uVar18;
  uVar29 = *(ulonglong *)(lVar1 + -0x760) ^ *puVar23 ^ uVar29;
  *(ulonglong *)(lVar1 + -0xb18) = uVar29;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x56ddc8ff)) =
       (uVar35 ^ uVar29) >> (((byte)uVar5 ^ 0xa3) & 0x3f) ^ uVar18;
  uVar22 = *(ulonglong *)(lVar1 + -0xb18);
  *(ulonglong *)(lVar1 + -0xb08) = 0x9d55cffcb934474e >> (((byte)uVar3 ^ 0xa4) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar6 ^ uVar27) * 4) = uVar7;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x56ddc547)) = (uVar35 ^ uVar22) << 0x34 ^ uVar36;
  return;
}



############ FUN_ 180fb53f0 size=5547 ############

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

void FUN_180fb53f0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  byte bVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong *puVar57;
  byte local_res20;
  byte local_138;
  byte local_130;
  
  uVar13 = DAT_182671c94;
  uVar12 = DAT_182671c88;
  uVar11 = DAT_182671c80;
  uVar10 = DAT_182671c6c;
  uVar19 = DAT_182671c68;
  uVar9 = DAT_182671c58;
  lVar6 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671c58;
  uVar47 = (ulonglong)DAT_182671c68;
  uVar45 = (ulonglong)DAT_182671c80;
  uVar28 = (ulonglong)DAT_182671c6c;
  uVar29 = DAT_182671c80 - DAT_182671c6c;
  uVar25 = ~DAT_182671c94;
  uVar31 = (DAT_182671c58 << 0x10 | DAT_182671c58 & 0xff00) << 8 | DAT_182671c58 >> 8 & 0xff00 |
           DAT_182671c58 >> 0x18;
  uVar36 = (ulonglong)DAT_182671c88;
  uVar41 = DAT_182671c68 & DAT_182671c88;
  uVar5 = *(uint *)(&DAT_182613210 + (uVar36 ^ 0x89a3fde6) + (longlong)DAT_1826722b4);
  uVar37 = (ulonglong)DAT_182671c94;
  uVar18 = *(uint *)(&DAT_182613210 + (uVar37 ^ 0xb5ac044f) + (longlong)DAT_1826722b4) ^
           DAT_182671c68;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xa60);
  bVar38 = (byte)DAT_182671c80;
  uVar32 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar49 = (ulonglong)uVar25;
  uVar27 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar39 = (uVar32 ^ *puVar1) >> ((bVar38 ^ 0xe8) & 0x3f);
  uVar24 = CONCAT44(DAT_182671df8,DAT_182671df8);
  DAT_182671c50 = uVar41;
  DAT_182671c7c = uVar31;
  DAT_182671c84 = uVar29;
  DAT_182671c90 = uVar25;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar39 ^ uVar27;
  uVar15 = DAT_182671dec;
  uVar32 = (uVar32 ^ *puVar1) << 0x29;
  *(ulonglong *)(lVar6 + -0xb20) = uVar32 ^ uVar24;
  uVar17 = DAT_182671f20;
  uVar16 = DAT_182671dd0;
  uVar14 = DAT_182671ce4;
  uVar39 = uVar39 | uVar32;
  uVar56 = CONCAT44(uVar15,uVar15);
  uVar20 = (ulonglong)uVar41;
  uVar24 = (ulonglong)DAT_182671dd0;
  puVar33 = (ulonglong *)(lVar6 - (uVar20 ^ 0x88a1fa68));
  *(ulonglong *)(lVar6 + -0x5e8) = uVar39 ^ uVar56;
  uVar15 = DAT_182671d2c;
  lVar6 = DAT_182671c40;
  uVar53 = CONCAT44(uVar17,uVar17);
  uVar44 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0x60bb8ca8)) =
       (CONCAT44(uVar14,uVar14) ^ *puVar33) - uVar39 ^ uVar53;
  uVar32 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  puVar34 = (ulonglong *)(lVar6 - (uVar37 ^ 0xb5ac0677));
  uVar39 = (ulonglong)uVar31;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar31 ^ 0x408bbb50)) =
       CONCAT44(uVar15,uVar15) ^ *puVar34 ^ *(ulonglong *)(lVar6 + -0xda8) ^ uVar32 ^ uVar44;
  uVar21 = (ulonglong)uVar29;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x52c2e936)) =
       (CONCAT44(uVar29,uVar10) ^ 0xe2d2e3fdd3a4deac) -
       (*(ulonglong *)(lVar6 - (uVar49 ^ 0x4a53fe48)) ^ uVar56);
  uVar15 = DAT_182671e44;
  uVar35 = (*(ulonglong *)(lVar6 + -0x30) >> 0x20 ^ uVar24) >> 8;
  *(ulonglong *)(lVar6 + -0xc90) = uVar35 ^ CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar14 = DAT_182671cac;
  uVar50 = CONCAT44(uVar15,uVar15);
  uVar24 = (*(ulonglong *)(lVar6 - (uVar43 ^ 0x60bb8b70)) ^ uVar44) << 0x18;
  *(ulonglong *)(lVar6 + -0x920) = uVar24 ^ uVar50;
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x60bb8ff8)) = (uVar24 | uVar35) ^ uVar42;
  uVar14 = DAT_182671dbc;
  uVar24 = *(ulonglong *)(lVar6 + -0x7e8);
  puVar2 = (ulonglong *)(lVar6 + -0x510);
  uVar30 = CONCAT44(DAT_182671d04,DAT_182671d04);
  *puVar2 = (*(ulonglong *)(lVar6 + -0xda8) ^ uVar32) - (*(ulonglong *)(lVar6 + -0x4b8) ^ uVar42) ^
            uVar30;
  uVar15 = DAT_182671d48;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar44 = CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar35 = uVar24 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x4b8) ^ uVar42 ^ uVar53;
  *(ulonglong *)(lVar6 + -0x828) = uVar35;
  uVar35 = uVar35 ^ uVar32;
  puVar3 = (ulonglong *)(lVar6 + -0x408);
  local_res20 = (byte)uVar13;
  uVar32 = uVar35 >> ((local_res20 ^ 0x6b) & 0x3f);
  local_130 = (byte)(uVar9 >> 0x18);
  *(ulonglong *)(lVar6 + -0xc38) = uVar32 ^ uVar44;
  uVar35 = uVar35 << ((local_130 ^ 0x6c) & 0x3f);
  *puVar3 = uVar35 ^ CONCAT44(uVar15,uVar15);
  uVar17 = DAT_182671de4;
  lVar6 = DAT_182671c40;
  uVar35 = uVar35 | uVar32;
  uVar44 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar35 ^ uVar44;
  uVar14 = DAT_182671cd8;
  uVar32 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0xf0) = (uVar24 ^ uVar53) - uVar35 ^ uVar32;
  uVar42 = CONCAT44(uVar14,uVar14);
  local_138 = (byte)uVar12;
  puVar4 = (ulonglong *)(lVar6 + -0xb18);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar19 ^ 0xf8f9f2e0)) =
       *(ulonglong *)(lVar6 - (uVar45 ^ 0xf8fffcef)) ^ uVar42 ^ uVar30 ^ uVar56 ^
       *(ulonglong *)(lVar6 + -0x5e8);
  lVar6 = DAT_182671c40;
  uVar24 = *puVar4;
  uVar35 = (uVar42 ^ *puVar4) >> ((local_138 ^ 0xd7) & 0x3f);
  puVar22 = (ulonglong *)(DAT_182671c40 + -0x760);
  *puVar22 = uVar35 ^ CONCAT44(DAT_182671f10,DAT_182671f10);
  lVar7 = DAT_182671c40;
  *puVar1 = (CONCAT44(uVar31,uVar31) ^ 0x2baf8a06513268e8) -
            (CONCAT44(uVar25,uVar19) ^ 0xe6429e92064a301c);
  uVar53 = CONCAT44(DAT_182671f68,DAT_182671f68);
  bVar23 = (byte)uVar9;
  uVar24 = (uVar42 ^ uVar24) << ((bVar23 ^ 0x47) & 0x3f);
  *(ulonglong *)(lVar6 + -0xa50) = uVar24 ^ uVar53;
  uVar14 = DAT_182671db8;
  uVar24 = uVar24 | uVar35;
  *(ulonglong *)(lVar6 + -0xb20) =
       (CONCAT44(uVar12,uVar13) ^ 0x27f67f6ea432c4d9) << (((byte)uVar15 ^ *(byte *)puVar3) & 0x3f);
  uVar54 = CONCAT44(uVar14,uVar14);
  uVar45 = uVar24 ^ uVar54;
  uVar48 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(lVar7 + -0x380) = uVar45;
  uVar14 = DAT_182671db0;
  *(ulonglong *)(lVar7 + -0x228) = (uVar30 ^ *puVar2) - uVar24 ^ uVar48;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xb5ac0f87)) =
       uVar35 ^ uVar54 ^ uVar32 ^ uVar45 ^ *(ulonglong *)(lVar7 + -0xf0);
  uVar24 = (uVar35 ^ *(ulonglong *)(lVar7 + -0xbd8)) >> ((local_138 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar7 + -0x30) = uVar24 ^ CONCAT44(DAT_182671dfc,DAT_182671dfc);
  lVar6 = DAT_182671c40;
  uVar56 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar35 = (uVar35 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) << ((bVar38 ^ 0xcd) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar35 ^ uVar56;
  uVar14 = DAT_182671eb4;
  lVar7 = DAT_182671c40;
  puVar40 = (ulonglong *)(lVar6 - (uVar49 ^ 0x4a53f820));
  *(ulonglong *)(DAT_182671c40 + -0x920) =
       uVar54 ^ *puVar40 | CONCAT44(uVar41,uVar10) ^ 0xd1dd2bc62dc47523;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 - (uVar21 ^ 0xa63d1ab9)) = (uVar35 | uVar24) ^ uVar30;
  uVar35 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar7 + -0x4b8) =
       (uVar32 ^ *(ulonglong *)(lVar7 + -0xf0)) - (uVar35 ^ *(ulonglong *)(lVar7 + -0x3d8)) ^ uVar50
  ;
  puVar26 = (ulonglong *)(lVar7 - (uVar47 ^ 0xf8f9f1d0));
  *puVar26 = **(ulonglong **)(lVar7 + -0xb88);
  uVar30 = uVar30 ^ *(ulonglong *)(lVar7 + -0xda8);
  puVar51 = (ulonglong *)(lVar7 - (uVar21 ^ 0xa63d13a9));
  uVar24 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar7 + -0xc38) = (uVar50 ^ *puVar51) - uVar30 ^ uVar24;
  uVar45 = CONCAT44(DAT_182671e50,DAT_182671e50);
  uVar55 = CONCAT44(DAT_182671d74,DAT_182671d74);
  uVar19 = DAT_182671c94 ^ 0x3aa6c5ce;
  *(ulonglong *)(lVar7 + -0x7e8) = uVar30 - (uVar45 ^ *(ulonglong *)(lVar7 + -0x960)) ^ uVar55;
  *(uint *)(lVar7 - (uVar39 ^ 0x408bbc0c)) = *(int *)(lVar7 + -0x94c) * uVar19;
  uVar42 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  uVar32 = uVar48 ^ uVar44 ^ *(ulonglong *)(lVar7 + -0xa78) ^ uVar42 ^
           *(ulonglong *)(lVar7 + -0x228);
  uVar44 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *(ulonglong *)(lVar7 + -0x5e8) = uVar32;
  *puVar1 = (uVar32 ^ uVar42) >> ((bVar23 ^ 0x50) & 0x3f) ^ uVar44;
  lVar6 = DAT_182671c40;
  *puVar4 = *(ulonglong *)(lVar7 - (uVar39 ^ 0x408bb948)) ^ uVar48 |
            CONCAT44(uVar31,uVar12) ^ 0xc62a4f0d386f9f17;
  uVar30 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(ulonglong *)(lVar6 - (uVar37 ^ 0xb5ac0f7f)) =
       (*(ulonglong *)(lVar6 - (uVar39 ^ 0x408bbe88)) ^ uVar42) << (((byte)uVar10 ^ 0xde) & 0x3f) ^
       uVar30;
  uVar32 = (uVar48 ^ *(ulonglong *)(lVar6 + -0x228)) - (uVar53 ^ *(ulonglong *)(lVar6 + -0xb08));
  uVar50 = CONCAT44(DAT_182671f90,DAT_182671f90);
  *puVar3 = (*(ulonglong *)(lVar6 + -0xb20) ^ uVar30 | *puVar1 ^ uVar44) ^ uVar50;
  *puVar22 = uVar32 ^ CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar14 = DAT_182671fac;
  uVar42 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(lVar6 + -0xa50) =
       uVar32 - (*(ulonglong *)(lVar6 - (uVar43 ^ 0x60bb8f48)) ^ uVar50) ^ uVar42;
  lVar6 = DAT_182671c40;
  uVar32 = (CONCAT44(uVar11,uVar29) ^ 0x700060059c2e8ef) -
           (*(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x4a53f628)) ^ CONCAT44(uVar14,uVar14));
  *puVar2 = uVar32 ^ CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar32 = (*(ulonglong *)(lVar6 - (uVar47 ^ 0xf8f9fdf0)) ^ uVar50) + uVar32 ^ uVar48;
  uVar44 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar6 + -0xbd8) = uVar32;
  lVar6 = DAT_182671c40;
  uVar53 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar50 = uVar24 ^ uVar48 ^ uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar50 ^ uVar44;
  *(ulonglong *)(lVar6 + -0x920) = (*puVar40 ^ uVar44) >> ((bVar38 ^ 0xdf) & 0x3f) ^ uVar53;
  *(ulonglong *)(lVar6 + -0xc90) =
       (*(ulonglong *)(lVar6 + -0xb20) ^ uVar30) - (CONCAT44(uVar11,uVar13) ^ 0x4cf623a81f8f9e0b);
  uVar32 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x89a3fdde)) = uVar50 << ((bVar38 ^ 0xdf) & 0x3f) ^ uVar32;
  lVar8 = DAT_182671c40;
  *(uint *)(lVar6 - (uVar47 ^ 0xf8f9f9ac)) = DAT_182671c88 ^ 0x4048029a | 0x32b77445;
  uVar30 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  uVar32 = *(ulonglong *)(lVar8 - (uVar20 ^ 0x88a1f9d8)) ^ uVar32 |
           *(ulonglong *)(lVar8 + -0x920) ^ uVar53;
  *(ulonglong *)(lVar8 + -0x3d8) = uVar32 ^ uVar30;
  uVar14 = DAT_182671e10;
  *(ulonglong *)(lVar8 + -0xf0) =
       CONCAT44(uVar25,uVar9) ^ 0x46f3ec365f96a33c | CONCAT44(uVar11,uVar10) ^ 0x419bb4d30200b6f2;
  uVar15 = DAT_182671ed8;
  uVar53 = CONCAT44(uVar14,uVar14);
  uVar48 = (uVar24 ^ *(ulonglong *)(lVar8 + -0xc38)) - uVar32 ^ uVar53;
  *(ulonglong *)(lVar8 + -0x828) = uVar48;
  uVar14 = DAT_182671cc4;
  lVar6 = DAT_182671c40;
  uVar24 = CONCAT44(uVar15,uVar15);
  uVar32 = *(ulonglong *)(lVar8 - (uVar43 ^ 0x60bb8110)) ^
           *(ulonglong *)(lVar8 - (uVar20 ^ 0x88a1fe00)) ^ uVar55 ^ uVar24 ^ uVar42;
  *(ulonglong *)(lVar8 + -0x4b8) = uVar32;
  uVar55 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0xda8) = (*puVar51 ^ uVar24) >> ((bVar38 ^ 0xdf) & 0x3f) ^ uVar55;
  uVar14 = DAT_182671d5c;
  uVar32 = (uVar32 ^ uVar24) << (((byte)uVar41 ^ 200) & 0x3f);
  uVar24 = *(ulonglong *)(lVar6 + -0xa50);
  puVar51 = (ulonglong *)(lVar6 - (uVar39 ^ 0x408bb6c8));
  *(ulonglong *)(lVar6 + -0xa78) = uVar32 ^ CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar52 = CONCAT44(uVar14,uVar14);
  uVar32 = uVar32 | uVar55 ^ *puVar51;
  uVar44 = uVar32 ^ uVar52;
  *puVar4 = uVar44;
  uVar14 = DAT_182671e64;
  uVar50 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(lVar6 + -0x5e8) = (uVar24 ^ uVar42) - uVar32 ^ uVar50;
  uVar32 = CONCAT44(uVar14,uVar14);
  *puVar1 = uVar48 ^ uVar44 ^ uVar32 ^ uVar52 ^ uVar53;
  *(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0x60bb8048)) =
       (CONCAT44(uVar10,uVar29) ^ 0x57a92cdd050b0d2c) >> ((local_res20 ^ 0x7d) & 0x3f);
  uVar14 = DAT_182671e14;
  lVar6 = DAT_182671c40;
  uVar44 = (*(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0x60bb8120)) ^ uVar32) >>
           (((byte)uVar29 ^ 0x2b) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar44 ^ CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar24 = CONCAT44(uVar14,uVar14);
  *puVar22 = (*(ulonglong *)(lVar6 - (uVar47 ^ 0xf8f9f398)) ^ uVar32) <<
             ((local_res20 ^ 0x59) & 0x3f) ^ uVar24;
  lVar6 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x634) =
       (DAT_182671c88 ^ 0x9b9bdeaf) + *(int *)(DAT_182671c40 + -0x5d4);
  uVar9 = DAT_182671ea8;
  lVar8 = DAT_182671c40;
  uVar46 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar42 = (ulonglong)DAT_182671ea8;
  uVar48 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  uVar44 = *(ulonglong *)(lVar6 - (uVar36 ^ 0x89a3fa8e)) ^ uVar24 | uVar44;
  *puVar3 = uVar44 ^ uVar46;
  uVar24 = *(ulonglong *)(lVar8 + -0x5e8);
  uVar32 = *(ulonglong *)(lVar8 + -0x3d8);
  *puVar2 = (uVar53 ^ *puVar26) - uVar44 ^ uVar56;
  uVar14 = DAT_182671d50;
  uVar30 = uVar48 ^ uVar24 ^ uVar32 ^ uVar50 ^ uVar30;
  *(ulonglong *)(lVar8 + -0xbd8) = uVar30;
  uVar24 = CONCAT44(uVar14,uVar14);
  puVar57 = (ulonglong *)(lVar8 - (uVar39 ^ 0x408bb040));
  *puVar57 = ((ulonglong)(uVar9 >> 0x16) | uVar42 << 10) ^ uVar30 >> 0x16 ^ uVar24;
  *(ulonglong *)(lVar8 + -0xc90) =
       (uVar48 ^ *(ulonglong *)(lVar8 + -0xbd8)) << ((bVar23 ^ 0x6a) & 0x3f) ^ uVar54;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar8 + -0x380) =
       (*(ulonglong *)(lVar8 - (uVar21 ^ 0xa63d1b81)) ^ uVar54 |
       *(ulonglong *)(lVar8 + -0xb20) ^ uVar24) ^ uVar35;
  uVar14 = DAT_182671d24;
  *(ulonglong *)(lVar8 + -0x920) = *(ulonglong *)(lVar8 - (uVar21 ^ 0xa63d1c19)) >> 0x2d;
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 - (uVar47 ^ 0xf8f9f9c8)) =
       (*(ulonglong *)(lVar8 + -0x5e8) ^ uVar50) - (uVar35 ^ *puVar40) ^ uVar44;
  uVar14 = DAT_182671eb0;
  uVar24 = CONCAT44(DAT_182671efc,DAT_182671efc);
  uVar36 = *(ulonglong *)(lVar6 - (uVar36 ^ 0x89a3fe6e)) ^ uVar35 ^ uVar56 ^ *puVar2;
  *(ulonglong *)(lVar6 + -0xf0) = uVar36 ^ uVar24;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar24 = (*(ulonglong *)(lVar6 - (uVar49 ^ 0x4a53fb50)) ^ uVar24) >> ((byte)uVar10 & 0x3f);
  uVar32 = uVar24 ^ uVar39;
  uVar36 = uVar36 << 0x12;
  *(ulonglong *)(lVar6 + -0xc38) = uVar32;
  uVar14 = DAT_182671dd4;
  *(ulonglong *)(lVar6 + -0x7e8) = uVar35 ^ uVar32 ^ uVar39 ^ *puVar33;
  uVar15 = DAT_182671eec;
  *(ulonglong *)(lVar6 + -0x4b8) = uVar36 ^ CONCAT44(uVar14,uVar14);
  lVar8 = DAT_182671c40;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar39 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar6 + -0xda8) = (uVar36 | uVar24) ^ uVar30;
  uVar24 = *(ulonglong *)(lVar8 + -0x30);
  *(ulonglong *)(lVar6 + -0xa78) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0x52c2e7fe)) ^ uVar56) - (uVar30 ^ *puVar51) ^ uVar39;
  uVar9 = DAT_182671f5c;
  uVar14 = DAT_182671eac;
  uVar32 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar36 = (ulonglong)DAT_182671f5c;
  uVar24 = uVar24 ^ uVar32 ^ uVar44 ^ uVar46 ^ *puVar3;
  *(ulonglong *)(lVar8 + -0xa50) = uVar24;
  uVar36 = (uVar36 << 0x14 | (ulonglong)(uVar9 >> 0xc)) ^ uVar24 >> 0xc;
  uVar24 = (uVar24 ^ uVar32) << ((local_130 ^ 0x54) & 0x3f);
  *puVar4 = uVar36 ^ CONCAT44(uVar14,uVar14);
  *puVar1 = uVar24 ^ CONCAT44(DAT_182671fb0,DAT_182671fb0);
  lVar6 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  uVar24 = (uVar36 | uVar24) ^ uVar35;
  puVar26 = (ulonglong *)(DAT_182671c40 + -0x30);
  uVar36 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar24;
  uVar14 = DAT_182671f74;
  *puVar22 = (*puVar26 ^ uVar44) - (*puVar34 ^ uVar35) ^ uVar36;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar24 = *(ulonglong *)(lVar6 - (uVar47 ^ 0xf8f9f380)) ^ uVar44 ^ uVar35 ^ uVar39 ^ uVar24;
  *(ulonglong *)(lVar6 + -0x828) = uVar24;
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x60bb8898)) =
       (uVar24 ^ uVar44) >> (((byte)uVar41 ^ 0xf1) & 0x3f) ^ uVar55;
  uVar24 = CONCAT44(DAT_182671c4c,uVar11);
  *(ulonglong *)(lVar6 + -0xbd8) =
       0x21e18cbbb18ce99d - (*(ulonglong *)(lVar6 - (uVar49 ^ 0x4a53f1f0)) ^ uVar32);
  uVar32 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *puVar57 = (*(ulonglong *)(lVar6 + -0x828) ^ uVar44) << 0x27 ^ uVar32;
  uVar14 = DAT_182671e48;
  *(ulonglong *)(lVar6 + -0xc90) = (uVar24 ^ 0x49e0623612f669e7) + (uVar36 ^ *puVar22);
  uVar15 = DAT_182671ddc;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0x88a1f2e0)) =
       (*(ulonglong *)(lVar6 + -0x3d8) ^ uVar55 | *(ulonglong *)(lVar6 + -0xb20) ^ uVar32) ^ uVar35;
  uVar14 = DAT_182671cf4;
  uVar24 = (*(ulonglong *)(lVar6 - (uVar20 ^ 0x88a1f390)) ^ uVar39) -
           (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0x888));
  *(ulonglong *)(lVar6 + -0x920) = uVar24 ^ CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar15 = DAT_182671f30;
  *(ulonglong *)(lVar6 + -0x5e8) =
       uVar24 - (uVar35 ^ *(ulonglong *)(lVar6 + -0xb08)) ^ CONCAT44(uVar14,uVar14);
  uVar32 = (ulonglong)DAT_182671d00;
  uVar39 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar6 - (uVar37 ^ 0xb5ac07df)) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0x52c2e9e6)) ^ uVar35) -
       (*(ulonglong *)(lVar6 + -0x110) ^ uVar27) ^ CONCAT44(uVar15,uVar15);
  uVar24 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar6 + -0x7e8) = -0x5bfeccfa3a810845 - (uVar36 ^ *puVar22);
  *(ulonglong *)(lVar6 - (uVar24 ^ 0xd8eeb8dd)) =
       *(ulonglong *)(lVar6 + -0xda8) ^ uVar39 ^ uVar36 ^ uVar30 ^ *puVar22;
  *(ulonglong *)(lVar6 + -0xc38) = (*(ulonglong *)(lVar6 + -0xf0) >> 0x20 ^ uVar32) >> 1 ^ uVar45;
  uVar37 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar24 = *puVar22;
  uVar32 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar6 + -0x4b8) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xa63d17e1)) ^ uVar39) << ((local_138 ^ 0xf1) & 0x3f) ^
       uVar37;
  uVar14 = DAT_182671e8c;
  uVar32 = *(ulonglong *)(lVar6 - (uVar32 ^ 0x95200838)) ^ uVar45 |
           *(ulonglong *)(lVar6 - (uVar20 ^ 0x88a1fd50)) ^ uVar37;
  *puVar2 = uVar32 ^ uVar52;
  uVar24 = (uVar36 ^ uVar24) - (uVar45 ^ *(ulonglong *)(lVar7 + -0x960));
  *puVar3 = uVar24 ^ CONCAT44(DAT_182671e58,DAT_182671e58);
  *puVar4 = uVar24 - uVar32 ^ CONCAT44(uVar14,uVar14);
  *puVar1 = 0x9e2dc5d0169835ac;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar18 * 4) = uVar5 ^ uVar41;
  return;
}



############ FUN_ 180f439f0 size=4604 ############

void FUN_180f439f0(void)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  ulonglong uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  byte local_res20;
  byte local_b8;
  byte local_80;
  
  uVar8 = DAT_182671c6c;
  lVar2 = DAT_182671c40;
  uVar24 = ~DAT_182671c84;
  uVar26 = DAT_182671c6c + DAT_182671c8c;
  uVar16 = *(uint *)(&DAT_182613218 + DAT_18267215c) ^ DAT_182671c8c;
  uVar14 = *(uint *)(&DAT_182613220 + DAT_18267215c) ^ DAT_182671c6c;
  puVar19 = (ulonglong *)(DAT_182671c40 + -0x4b8);
  DAT_182671c4c = uVar24;
  DAT_182671c7c = uVar26;
  *(int *)(DAT_182671c40 + -0x58c) =
       *(int *)(DAT_182671c40 + -0x644) << ((byte)*(undefined4 *)(DAT_182671c40 + -0x54) & 0x1f);
  uVar6 = DAT_182671f64;
  uVar4 = DAT_182671e90;
  uVar36 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  uVar28 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar20 = CONCAT44(DAT_182671d04,DAT_182671d04);
  uVar18 = (ulonglong)DAT_182671e90;
  *(ulonglong *)(lVar2 + -0xc18) =
       (*puVar19 ^ uVar28) - (uVar36 ^ *(ulonglong *)(lVar2 + -0xc90)) ^ uVar20;
  uVar12 = DAT_182671c94;
  uVar21 = CONCAT44(uVar6,uVar6);
  uVar29 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar15 = (ulonglong)uVar26;
  uVar30 = CONCAT44(uVar4,uVar4);
  uVar37 = (ulonglong)DAT_182671c94;
  uVar35 = CONCAT44(DAT_182671f4c,DAT_182671f4c) ^ *(ulonglong *)(lVar2 + -0xc38) ^
           *(ulonglong *)(lVar2 + -0x760) ^ uVar21 ^ uVar30;
  uVar17 = CONCAT44(uVar26,DAT_182671c84);
  *(ulonglong *)(lVar2 + -0x920) = uVar35;
  uVar5 = DAT_182671c58;
  uVar35 = (uVar35 >> 0x20 ^ uVar18) >> 8;
  uVar18 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar2 + -0x228) =
       (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar29) - (uVar17 ^ 0xc18df91cd30587b7);
  uVar6 = DAT_182671d98;
  uVar23 = uVar12 + uVar5;
  DAT_182671c70 = uVar23;
  *(ulonglong *)(lVar2 + -0xb18) = uVar35 ^ CONCAT44(DAT_182671d98,DAT_182671d98);
  puVar38 = (ulonglong *)(lVar2 - (uVar18 ^ 0x39505e0));
  uVar17 = (*puVar38 ^ uVar30) << 0x18;
  uVar31 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar17 ^ CONCAT44(DAT_182671cac,DAT_182671cac);
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x13b2ad1e)) = (uVar17 | uVar35) ^ uVar31;
  uVar30 = (ulonglong)uVar24;
  *(ulonglong *)(lVar3 + -0x408) =
       (CONCAT44(uVar23,uVar24) ^ 0x59aca21951ad3d40) >>
       ((*(byte *)(lVar3 - (uVar15 ^ 0x71c6f7cc)) ^ (byte)uVar6) & 0x3f);
  uVar6 = DAT_182671d88;
  uVar35 = (ulonglong)uVar8;
  uVar25 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar3 + -0x380) =
       (*(ulonglong *)(lVar3 + -0x760) ^ uVar21) - (*(ulonglong *)(lVar3 + -0xa50) ^ uVar31) ^
       uVar25;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0xa60) =
       uVar17 ^ *(ulonglong *)(lVar3 + -0xa50) ^ uVar31 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0xc18);
  puVar19 = (ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x13b2ad2e));
  uVar27 = CONCAT44(DAT_182671f94,DAT_182671f94);
  local_res20 = (byte)uVar23;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x2db8e6f0)) =
       (*puVar19 ^ uVar17) >> ((local_res20 ^ 0x3a) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar3 - (uVar15 ^ 0x71c6f15c)) =
       CONCAT44(uVar5,uVar12) ^ 0xf9f7faf63a439a59 | CONCAT44(uVar12,uVar24) ^ 0x4fd4921b08677809;
  uVar6 = DAT_182671edc;
  uVar17 = (uVar17 ^ *(ulonglong *)(lVar3 + -0xa60)) << (((byte)uVar8 ^ 0xc2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x510) = uVar17 ^ CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar21 = (ulonglong)DAT_182671e9c;
  uVar39 = CONCAT44(uVar6,uVar6);
  uVar32 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar17 = *(ulonglong *)(lVar3 - (uVar35 ^ 0xc73f3ce6)) ^ uVar27 | uVar17;
  uVar27 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar3 + -0x680) = uVar17 ^ uVar39;
  *(ulonglong *)(lVar3 + -0xb20) = (uVar20 ^ *(ulonglong *)(lVar3 + -0xc18)) - uVar17 ^ uVar27;
  uVar17 = *(ulonglong *)(lVar3 - (uVar30 ^ 0xd24712a7)) ^ uVar32 ^ uVar25 ^ uVar36 ^
           *(ulonglong *)(lVar3 + -0xc90);
  *(ulonglong *)(lVar3 + -0x30) = uVar17;
  uVar6 = DAT_182671eb8;
  *(uint *)(lVar3 + -0x76c) = (uVar23 ^ 0x8b05a610) + *(int *)(lVar3 + -0x644);
  lVar2 = DAT_182671c40;
  uVar21 = (uVar17 >> 0x20 ^ uVar21) >> 0x19;
  uVar36 = (uVar17 ^ uVar32) << ((local_res20 ^ 9) & 0x3f);
  uVar17 = CONCAT44(DAT_182671f54,DAT_182671f54);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar21 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182671e98;
  *(ulonglong *)(lVar2 + -0xa78) = uVar36 ^ uVar17;
  uVar17 = CONCAT44(uVar6,uVar6);
  uVar32 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(lVar2 + -0x4b8) = (uVar36 | uVar21) ^ uVar17;
  uVar4 = DAT_182671c84;
  lVar3 = DAT_182671c40;
  bVar34 = (byte)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c84 ^ 0x2db8e2e0)) =
       (*(ulonglong *)(lVar2 + -0x380) ^ uVar25) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c84 ^ 0x2db8ea60)) ^ uVar17) ^ uVar32;
  uVar21 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar25 = CONCAT44(DAT_182671f28,DAT_182671f28);
  uVar17 = *(ulonglong *)(lVar3 + -0x4b8) ^ uVar21 ^ uVar17 ^ uVar27 ^
           *(ulonglong *)(lVar3 + -0xb20);
  *(ulonglong *)(lVar3 + -0x2b0) = uVar17;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0xaa87ca2e)) =
       (uVar17 ^ uVar21) >> ((bVar34 ^ 0xd6) & 0x3f) ^ uVar25;
  uVar17 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *puVar38 = (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar21) << (((byte)uVar8 ^ 0xfc) & 0x3f) ^ uVar17;
  uVar7 = DAT_182671e20;
  *(ulonglong *)(lVar3 + -0x7e8) =
       (CONCAT44(DAT_182671c8c,uVar12) ^ 0xf466472fa8943a00) +
       (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar21);
  uVar6 = DAT_182671d60;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar36 = *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x2db8ecf0)) ^ uVar25 |
           uVar17 ^ *(ulonglong *)(lVar3 + -0x920);
  uVar17 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *(ulonglong *)(lVar3 + -0xb18) = uVar36 ^ uVar33;
  uVar7 = DAT_182671f1c;
  uVar21 = (uVar27 ^ *(ulonglong *)(lVar3 + -0xb20)) -
           (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0x888));
  *(ulonglong *)(lVar3 + -0x408) = uVar21 ^ uVar17;
  uVar25 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar21 - uVar36 ^ uVar25;
  uVar4 = DAT_182671e6c;
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  uVar27 = CONCAT44(DAT_182671da0,DAT_182671da0);
  uVar17 = (ulonglong)DAT_182671e6c;
  *(ulonglong *)(DAT_182671c40 + -0xa50) =
       (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xc73f3fd6)) ^ uVar33) -
       (*(ulonglong *)(DAT_182671c40 - (uVar37 ^ 0x13b2a65e)) ^ uVar36) ^ uVar27;
  uVar21 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xd2471caf)) =
       *(ulonglong *)(lVar2 + -0x680) ^ uVar21 ^ uVar32 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0xc38);
  uVar39 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x39506a0)) =
       ((ulonglong)(uVar4 >> 0x10) | uVar17 << 0x10) ^ *(ulonglong *)(lVar2 + -0xd88) >> 0x10 ^
       uVar39;
  local_80 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar2 + -0x828) = -0x2a349a9a3f9e76d1 - (*(ulonglong *)(lVar2 + -0xd88) ^ uVar21);
  uVar17 = (*(ulonglong *)(lVar2 + -0xd88) ^ uVar21) << ((local_80 ^ 0x36) & 0x3f);
  *(ulonglong *)(lVar2 + -0x510) = uVar17 ^ CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0xa50)) - (CONCAT44(uVar24,uVar23) ^ 0x97af86688e1a0142);
  uVar33 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xc73f385e)) = (*puVar19 ^ uVar39 | uVar17) ^ uVar33;
  uVar13 = DAT_182671fb4;
  uVar7 = DAT_182671c68;
  *(ulonglong *)(lVar2 + -0x30) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0x13b2ab76)) ^ uVar32) -
       (*(ulonglong *)(lVar2 + -0xb08) ^ uVar31) ^ uVar36;
  uVar6 = DAT_182671dd4;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xa78) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0xd2471117)) ^ uVar36) -
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xc90)) ^ uVar32;
  uVar21 = CONCAT44(uVar6,uVar6);
  uVar17 = CONCAT44(DAT_182671c84,uVar5);
  *(ulonglong *)(lVar3 + -0xbd8) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0xd2471db7)) ^ uVar33) -
       (CONCAT44(DAT_182671f18,DAT_182671f18) ^ *(ulonglong *)(lVar3 + -0xf0)) ^ uVar21;
  uVar37 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar3 + -0x380) = (uVar17 ^ 0xf92f3997843c8de9) << ((local_res20 ^ 0x2a) & 0x3f);
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x140) ^ uVar20) =
       *(ulonglong *)(lVar3 - (uVar35 ^ 0xc73f33ae)) ^ uVar37 ^ uVar25;
  uVar10 = DAT_182671c88;
  lVar2 = DAT_182671c40;
  puVar19 = (ulonglong *)
            ((*(ulonglong *)(lVar3 + -0x140) ^ uVar20) +
            (CONCAT44(DAT_182671c8c,DAT_182671c80) ^ 0xaa87c8064ea7b212) * 8);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar19 ^ CONCAT44(DAT_182671d38,DAT_182671d38);
  uVar24 = DAT_182671c5c;
  *puVar19 = uVar37 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0xa50);
  uVar4 = DAT_182671c50;
  local_b8 = (byte)uVar26;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (CONCAT44(uVar24,uVar12) ^ 0x4d40cbb6ccb40f64) << ((local_b8 ^ 0xdf) & 0x3f);
  puVar19 = (ulonglong *)
            ((*(ulonglong *)(lVar2 + -0x140) ^ uVar20) +
            (CONCAT44(uVar10,uVar23) ^ 0x3caaf3401747b40c) * 8);
  *(ulonglong *)(lVar2 + -0xd68) = (ulonglong)puVar19 ^ CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar27 = (ulonglong)DAT_182671c78;
  uVar17 = CONCAT44(DAT_182671c8c,DAT_182671c78);
  *puVar19 = uVar37 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0xa78);
  uVar9 = DAT_182671c84;
  puVar19 = (ulonglong *)
            ((*(ulonglong *)(lVar2 + -0x140) ^ uVar20) + (uVar17 ^ 0xaa87c80606c887a9) * 8);
  *(ulonglong *)(lVar2 + -0x40) = (ulonglong)puVar19 ^ CONCAT44(DAT_182671e1c,DAT_182671e1c);
  *puVar19 = *(ulonglong *)(lVar2 + -0xbd8) ^ uVar37 ^ uVar21;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0xa60)) << (((byte)uVar9 ^ 0xda) & 0x3f);
  *(ulonglong *)(lVar2 + -0x588) = *(ulonglong *)(lVar2 + -0x140) ^ uVar20;
  uVar11 = DAT_182671c90;
  uVar9 = DAT_182671c74;
  uVar6 = DAT_182671c64;
  puVar19 = (ulonglong *)(lVar2 + -0x650);
  uVar20 = (ulonglong)DAT_182671c74;
  uVar25 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0x6e8) = *puVar19;
  uVar17 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar2 + -0xd50) = *(ulonglong *)(lVar2 - (uVar20 ^ 0xd8eebda5)) ^ uVar17;
  uVar21 = (ulonglong)DAT_182671c48;
  plVar1 = (longlong *)(lVar2 + -0x138);
  *(undefined8 *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x4ea7b98b)) =
       *(undefined8 *)(lVar2 - (uVar21 ^ 0x480204fa));
  *(undefined8 *)(lVar2 - (uVar25 ^ 0xbd5ffa05)) = 0x4bbf3e9cdf94e49e;
  uVar13 = DAT_182671e28;
  lVar3 = DAT_182671c40;
  *plVar1 = *(longlong *)(lVar2 - ((ulonglong)uVar10 ^ 0x3caaf8d8)) +
            (CONCAT44(uVar24,uVar23) ^ 0xfdfaffff1747b40f) * 8;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar20 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(lVar3 + -0x920) = **(ulonglong **)(lVar3 + -0xb98) ^ uVar20 ^ uVar36;
  **(ulonglong **)(lVar3 - (uVar27 ^ 0x6c887ba)) = CONCAT44(uVar6,uVar26) ^ 0x1fe149d5c237195e;
  *(ulonglong *)(lVar3 + -0x228) =
       (CONCAT44(uVar4,DAT_182671c68) ^ 0x35c4ee4525592b1c) + 0x7ddfb28c4150f010;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x3caafa50)) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0xd2471c77)) ^ uVar17) +
       (CONCAT44(uVar11,uVar11) ^ 0xbd5ffdedbd5ffdec) * 8;
  puVar22 = (ulonglong *)(uVar17 ^ *(ulonglong *)(lVar3 + -0xd50));
  uVar17 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar3 + -0x888) = uVar17 ^ uVar37 ^ *puVar22;
  uVar24 = DAT_182671c54;
  uVar27 = (ulonglong)DAT_182671c54;
  puVar38 = (ulonglong *)(lVar3 + -0xac0);
  *(ulonglong *)(lVar3 + -0xb20) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0x48020e82)) ^ uVar33 ^ 0x853a80d5703d3d18;
  uVar17 = *(ulonglong *)(lVar3 - (uVar35 ^ 0xc73f3c46)) ^ uVar17 ^ uVar20 ^
           *(ulonglong *)(lVar3 + -0x920) ^ uVar29;
  *(ulonglong *)(lVar3 + -0x408) = uVar17;
  *puVar22 = uVar17 ^ uVar37 ^ uVar29;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x678) = *(ulonglong *)(lVar3 + -0x910);
  uVar13 = DAT_182671cbc;
  uVar17 = *(ulonglong *)(lVar3 - (uVar27 ^ 0xdff9f8c0));
  *puVar38 = uVar17;
  uVar20 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x668) = uVar20 ^ *(ulonglong *)(lVar3 + -0x910);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0xa60)) << (((byte)uVar10 ^ 0x6b) & 0x3f);
  *puVar19 = uVar17;
  uVar21 = (ulonglong)DAT_182671c60;
  uVar35 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x4ea7b79b)) =
       uVar17 + (CONCAT44(DAT_182671c80,uVar24) ^ 0x4ea7b213dff9f9f9) * 8;
  uVar17 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xfdfaf4e7)) = *(ulonglong *)*puVar19 ^ uVar17 ^ uVar36;
  **(ulonglong **)(lVar2 + -0x2e8) = CONCAT44(uVar6,uVar8) ^ 0xadfdb3d55bce2794;
  puVar22 = (ulonglong *)(uVar20 ^ *(ulonglong *)(lVar2 + -0x668));
  *(ulonglong **)(lVar2 + -0x6e8) = puVar22 + (CONCAT44(uVar12,uVar5) ^ 0x13b2a74e03950cc1);
  *(ulonglong *)(lVar2 + -0x680) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c50 ^ 0xa5b17040)) ^
       *(ulonglong *)(lVar2 + -0x2b0) ^ uVar29;
  uVar20 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar2 + -0x828) = uVar20 ^ uVar37 ^ *puVar22;
  uVar13 = DAT_182671f20;
  *(undefined4 *)(lVar2 + -0x634) = 0x24000000;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar17 = *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xbd5ff5c5)) ^ uVar32 ^
           *(ulonglong *)(DAT_182671c40 + -0xb18) ^ uVar20 ^ uVar17;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar17;
  *puVar22 = uVar17 ^ uVar32 ^ uVar37;
  *(undefined8 *)(lVar3 + -0x10) = *(undefined8 *)(lVar3 + -0x6e8);
  uVar24 = DAT_182671c84;
  *(undefined8 *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x2db8e540)) = *(undefined8 *)(lVar3 + -0x588)
  ;
  uVar27 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar3 + -0xc18) =
       CONCAT44(uVar9,DAT_182671c68) ^ 0xf4e52e5855ac389b | uVar20 ^ *(ulonglong *)(lVar3 + -0x828);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xfdfafebf)) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0xd2471137)) ^ uVar27;
  puVar22 = *(ulonglong **)(lVar3 + -0xb98);
  *(ulonglong **)(lVar3 + -0x910) = puVar22;
  *plVar1 = (longlong)(puVar22 + (CONCAT44(uVar4,uVar6) ^ 0xa5b17448fc6af33e));
  uVar4 = DAT_182671c50;
  uVar30 = CONCAT44(DAT_182671f14,DAT_182671f14);
  uVar17 = CONCAT44(uVar6,DAT_182671c50);
  *(ulonglong *)(lVar3 + -0x510) = uVar30 ^ uVar36 ^ *puVar22;
  **(ulonglong **)(lVar3 + -0x418) = uVar17 ^ 0x1acdfb10d0cf0804;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar24 ^ 0x2db8e8a0)) =
       (*(ulonglong *)(lVar3 - (uVar15 ^ 0x71c6fd94)) ^ uVar27) +
       (CONCAT44(uVar7,uVar5) ^ 0x42a0021203950cc1) * 8;
  uVar20 = CONCAT44(DAT_182671cec,DAT_182671cec);
  DAT_182671c8c = uVar4 ^ DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c80 ^ 0x4ea7be2b)) =
       *(ulonglong *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar23 ^ 0x1747b54e)) ^ uVar27) ^
       uVar20 ^ uVar37;
  lVar3 = DAT_182671c40;
  uVar17 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x4ea7b91b)) =
       *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xbd5ff8fd)) ^ uVar17 ^ uVar20 ^ uVar30 ^
       *(ulonglong *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(uVar27 ^ *(ulonglong *)(lVar3 + -0x140)) =
       *(ulonglong *)(lVar3 - (uVar15 ^ 0x71c6f7dc)) ^ uVar17 ^ uVar37;
  uVar17 = *(ulonglong *)(lVar3 + -0xd88);
  *puVar38 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x3950ab8));
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x2db8eee8)) =
       (uVar32 ^ uVar17) << ((local_80 ^ 0x15) & 0x3f);
  *(longlong *)(lVar2 + -0x2e8) = *plVar1;
  *puVar19 = *puVar38 ^ uVar28;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar16;
  return;
}



############ FUN_ 180fc0050 size=5352 ############

void FUN_180fc0050(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_res20;
  byte local_108;
  byte local_e8;
  byte local_d8;
  byte local_c8;
  
  uVar13 = DAT_182671c90;
  uVar12 = DAT_182671c88;
  uVar10 = DAT_182671c74;
  uVar8 = DAT_182671c6c;
  uVar7 = DAT_182671c68;
  uVar6 = DAT_182671c64;
  uVar19 = (ulonglong)DAT_182671c6c;
  uVar37 = (ulonglong)DAT_182671c90;
  uVar21 = (ulonglong)DAT_182671c88;
  uVar44 = (ulonglong)DAT_182671c64;
  uVar26 = DAT_182671c6c & DAT_182671c88;
  uVar20 = DAT_182671c74 << 0x10 | DAT_182671c74 >> 0x10;
  uVar32 = DAT_182671c90 & DAT_182671c64;
  uVar28 = (ulonglong)uVar32;
  uVar25 = (DAT_182671c68 << 0x10 | DAT_182671c68 & 0xff00) << 8 | DAT_182671c68 >> 8 & 0xff00 |
           DAT_182671c68 >> 0x18;
  uVar1 = *(uint *)(&DAT_182613218 + DAT_1826722d4);
  uVar17 = *(uint *)(&DAT_182613220 + DAT_1826722d4) ^ DAT_182671c74;
  uVar43 = (ulonglong)uVar20;
  uVar34 = CONCAT44(DAT_182671d48,DAT_182671d48);
  uVar39 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar23 = (ulonglong)DAT_182671c68;
  DAT_182671c50 = uVar25;
  DAT_182671c58 = uVar32;
  DAT_182671c5c = uVar20;
  DAT_182671c7c = uVar26;
  *(ulonglong *)(DAT_182671c40 - (uVar43 ^ 0x24747182)) =
       (CONCAT44(DAT_182671cd4,DAT_182671cd4) ^ *(ulonglong *)(DAT_182671c40 + -0x380)) +
       (uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) ^ uVar39;
  lVar2 = DAT_182671c40;
  uVar42 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       (*(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0x7146ea56)) ^ uVar34) <<
       (((byte)uVar32 ^ 0xa7) & 0x3f) ^ uVar42;
  *(undefined8 *)(lVar2 + -0x8f0) = 0x79510;
  uVar30 = CONCAT44(DAT_182671db8,DAT_182671db8);
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) >> (((byte)uVar6 ^ 0x89) & 0x3f) ^ uVar30;
  lVar2 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671efc,DAT_182671efc);
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x3bff37e7)) =
       CONCAT44(uVar25,uVar8) ^ uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0xa50) ^ 0x9b038c1e41efc14c
  ;
  uVar14 = DAT_182671e98;
  uVar21 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x31eb3d9c)) ^ uVar42 |
       uVar30 ^ *(ulonglong *)(lVar2 + -0xb18)) ^ uVar21;
  uVar4 = DAT_182671d80;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xb08) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x3bff3377)) ^ uVar30 ^ uVar21 ^ uVar39 ^
       *(ulonglong *)(lVar2 + -0x510);
  uVar35 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x5e8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x31eb3014)) ^ uVar30) +
       (CONCAT44(uVar12,uVar26) ^ 0xa0223ba30d02e34a) ^ uVar35;
  *(uint *)(lVar2 - ((ulonglong)uVar13 ^ 0xefbf952b)) =
       *(uint *)(lVar2 - ((ulonglong)uVar12 ^ 0x3bff3c93)) ^ uVar10 ^ 0xd10ffdf8;
  uVar21 = CONCAT44(DAT_182671eac,DAT_182671eac);
  uVar38 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(lVar2 + -0x828) =
       (CONCAT44(uVar20,uVar7) ^ 0x5824d003fefd7556) + (uVar21 ^ *(ulonglong *)(lVar2 + -0x7e8)) ^
       uVar38;
  *(uint *)(lVar2 - (uVar43 ^ 0x247474c6)) = (uVar6 ^ 0xa949f5a0) - (uVar25 ^ 0xc221f2b3);
  uVar14 = DAT_182671cc0;
  uVar27 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x828)) + (uVar35 ^ *(ulonglong *)(lVar2 + -0x5e8)) ^
       uVar27;
  uVar4 = DAT_182671f64;
  uVar33 = CONCAT44(uVar14,uVar14);
  local_res20 = (byte)uVar26;
  *(ulonglong *)(lVar2 + -0x760) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x3bff3e17)) ^ uVar35) <<
       ((local_res20 ^ 5) & 0x3f) ^ uVar33;
  lVar2 = DAT_182671c40;
  uVar30 = CONCAT44(uVar4,uVar4);
  local_d8 = (byte)uVar13;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x2434116a)) ^ uVar35) >>
       (((byte)uVar6 ^ 0xb5) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x74922e7c)) =
       0x67095dc1a623a554 >> ((local_d8 ^ 0xd6) & 0x3f);
  uVar14 = DAT_182671f4c;
  uVar30 = (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar30 | *(ulonglong *)(lVar2 + -0x760) ^ uVar33) ^
           uVar38;
  *(ulonglong *)(lVar2 + -0x408) = uVar30;
  lVar3 = DAT_182671c40;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar33 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar2 + -0x30) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0x24341592)) ^ uVar27 ^ uVar38 ^ uVar35 ^ uVar30;
  uVar14 = DAT_182671d50;
  uVar31 = (CONCAT44(DAT_182671e50,DAT_182671e50) ^ *(ulonglong *)(lVar2 + -0x3d8)) +
           (CONCAT44(uVar25,uVar25) ^ 0x87749df80fb34576);
  *(ulonglong *)(lVar3 + -0xa70) = uVar31 ^ uVar33;
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x628) =
       (CONCAT44(uVar12,uVar6) ^ 0x26ff67384c39838f) + (uVar39 ^ *(ulonglong *)(lVar3 + -0x510)) ^
       uVar30;
  lVar2 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar39 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xfee74059)) ^ uVar30) +
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar10 ^ 0x74922e04)) ^ uVar33) ^ uVar38;
  lVar3 = DAT_182671c40;
  local_108 = (byte)(uVar10 >> 0x10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x3bff387f)) =
       uVar31 << (((byte)uVar32 ^ 0xa3) & 0x3f) ^ uVar39;
  uVar33 = *(ulonglong *)(lVar2 + -0xa70) ^ uVar33;
  uVar31 = uVar33 >> ((local_108 ^ 0x8d) & 0x3f);
  *(ulonglong *)(lVar2 + -0x8f0) = uVar31 ^ CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar2 + -0xda8) = CONCAT44(uVar7,uVar8) ^ 0x4d9950f1f3c74ee6 | uVar33;
  uVar33 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar31 = (uVar31 | uVar39 ^ *(ulonglong *)(lVar2 + -0x380)) ^ uVar33;
  uVar36 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(ulonglong *)(lVar2 + -0xa50) = uVar31;
  puVar22 = (ulonglong *)(lVar2 - (uVar37 ^ 0xefbf93d7));
  *puVar22 = uVar31 ^ *(ulonglong *)(lVar2 + -0x4b8) ^ uVar36 ^ uVar33 ^ uVar38;
  uVar31 = *(ulonglong *)(lVar2 + -0xc18) ^ uVar36;
  *(ulonglong *)(lVar2 + -0xb18) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar30) >> ((byte)uVar31 & 0x3f);
  uVar45 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0xefbf9edf)) ^ uVar27) + (*puVar22 ^ uVar36) ^ uVar45;
  *(ulonglong *)(lVar3 + -0xb08) = (CONCAT44(uVar6,uVar10) ^ 0xc3e4b5f5bbddc74) + 0x551628066424eb33
  ;
  uVar39 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x2434136a)) = uVar31 << ((local_108 ^ 0xbc) & 0x3f) ^ uVar39;
  uVar30 = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar36) >> (((byte)(uVar7 >> 0x18) ^ 99) & 0x3f);
  uVar27 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  *(ulonglong *)(lVar3 + -0x828) = uVar30 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x5e8) = (*(ulonglong *)(lVar3 + -0x7e8) ^ uVar39 | uVar30) ^ uVar27;
  uVar40 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *(ulonglong *)(lVar3 + -0xa08) =
       *(ulonglong *)(lVar3 - (uVar23 ^ 0x7146e216)) ^ *(ulonglong *)(lVar3 + -0x888) ^ uVar40 ^
       uVar27 ^ uVar45;
  uVar37 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x31eb3c7c)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x2434103a)) ^ uVar38) +
       (*(ulonglong *)(lVar3 + -0x30) ^ uVar35) ^ uVar37;
  uVar15 = DAT_182671d10;
  uVar5 = DAT_182671c54;
  uVar46 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar28 = (ulonglong)DAT_182671c54;
  local_c8 = (byte)uVar12;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x24747622)) =
       (*(ulonglong *)(lVar3 + -0x30) ^ uVar35) << ((local_res20 ^ 0x10) & 0x3f) ^ uVar46;
  uVar9 = DAT_182671c70;
  uVar21 = (*(ulonglong *)(lVar3 + -0x30) ^ uVar35) >> ((local_c8 ^ 0xcb) & 0x3f);
  uVar19 = (ulonglong)DAT_182671c70;
  uVar39 = CONCAT44(DAT_182671d38,DAT_182671d38);
  uVar24 = uVar5 + DAT_182671c70;
  uVar27 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  DAT_182671c84 = uVar24;
  *(ulonglong *)(lVar3 + -0x408) = uVar21 ^ uVar39;
  uVar11 = DAT_182671c80;
  *(ulonglong *)(lVar3 + -0x3d8) = (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar46 | uVar21) ^ uVar27;
  *(uint *)(lVar3 + -0x784) = *(int *)(lVar3 - (uVar19 ^ 0x200c031d)) - (uVar5 ^ 0xd7384ecb);
  uVar4 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671c48;
  uVar18 = uVar11 & DAT_182671c48;
  uVar35 = (ulonglong)uVar18;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar30 = (ulonglong)uVar11;
  DAT_182671c8c = uVar18;
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0xc2ea73de)) ^
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0xdaebffde)) ^ uVar38 ^ uVar27 ^
       uVar37;
  uVar16 = DAT_182671e48;
  uVar14 = DAT_182671de0;
  puVar22 = (ulonglong *)(lVar2 - (uVar30 ^ 0xe7fe7456));
  uVar31 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar2 + -0xa70) =
       (*puVar22 ^ uVar38) + (*(ulonglong *)(lVar2 + -0x888) ^ uVar45) ^ uVar31;
  uVar43 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0xda8) =
       *(ulonglong *)
        (*(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x9b3980ac)) ^ CONCAT44(uVar14,uVar14)) ^
       uVar43;
  lVar3 = DAT_182671c40;
  uVar38 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0x200c0381)) ^ uVar38) << (((byte)uVar9 ^ 0xab) & 0x3f)
  ;
  uVar27 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar38 ^ uVar43;
  uVar14 = DAT_182671e00;
  *(ulonglong *)(lVar3 + -0x8f0) =
       ((ulonglong)uVar15 << 0x1a | (ulonglong)(uVar15 >> 6)) ^ *puVar22 >> 6 ^ uVar27;
  uVar36 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x9b398bbc)) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0xc2ea78f6)) ^ uVar27 | uVar38) ^ uVar36;
  uVar38 = *(ulonglong *)(lVar3 + -0xa08) ^ uVar40;
  uVar45 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  *(ulonglong *)(lVar3 + -0x628) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0xdaebf2ce)) ^ uVar36 ^ uVar31 ^ uVar37 ^
       *(ulonglong *)(lVar3 + -0xa50);
  *(ulonglong *)(lVar3 + -0xb18) = (*(ulonglong *)(lVar3 + -0x760) ^ uVar37) + uVar38 ^ uVar45;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0xa50)) << (((byte)uVar4 ^ 0x8a) & 0x3f);
  uVar27 = (ulonglong)DAT_182671f64;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xc2ea7b0e)) = uVar38 << 0x16 ^ uVar46;
  uVar14 = DAT_182671d88;
  *(byte *)(lVar3 + -0x87a) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x328) ^ uVar27) ^ (byte)DAT_182671f14;
  uVar27 = CONCAT44(uVar14,uVar14);
  local_e8 = (byte)uVar11;
  puVar41 = (ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x9b398df4));
  *puVar41 = (*(ulonglong *)(lVar3 + -0xa08) ^ uVar40) >> ((local_e8 ^ 0x6c) & 0x3f) ^ uVar27;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar3 + -0xc18);
  *(ulonglong *)(lVar3 + -0x7e8) = 0x94890b4d455e040c >> ((byte)uVar27 & 0x3f);
  uVar14 = DAT_182671e14;
  uVar36 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar27 = (*(ulonglong *)(lVar3 + -0xb08) ^ uVar46 | uVar27) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x828) = uVar27;
  lVar2 = DAT_182671c40;
  uVar40 = CONCAT44(uVar14,uVar14);
  puVar22 = (ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xdaebfd56));
  uVar38 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *puVar22 = *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xdaebf3a6)) ^ uVar40 ^ uVar27 ^ uVar36 ^
             uVar45;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x5e8)) + (*(ulonglong *)(lVar2 + -0xa70) ^ uVar31) ^
       uVar38;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x200c06a1)) =
       (CONCAT44(uVar9,uVar24) ^ 0x7a01c05921dcee3b) + (CONCAT44(uVar18,uVar4) ^ 0x23e55eaf4a408b89)
  ;
  lVar2 = DAT_182671c40;
  uVar27 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xc2ea72b6)) =
       (uVar40 ^ *puVar22) << (((byte)uVar5 ^ 0x7b) & 0x3f) ^ uVar27;
  uVar14 = DAT_182671ec0;
  *(ulonglong *)(lVar2 + -0x408) =
       (CONCAT44(uVar9,uVar11) ^ 0x7951ba6dd0c3428) - (CONCAT44(uVar5,uVar5) ^ 0x8958b89257d07019);
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xe7fe729e)) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x5e8)) >> (((byte)uVar4 ^ 0x9e) & 0x3f) ^ uVar31;
  uVar14 = DAT_182671d54;
  uVar27 = *(ulonglong *)(lVar2 + -0x2b0) ^ uVar27;
  uVar35 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(lVar2 + -0xda8) =
       (uVar43 ^ *(ulonglong *)(lVar2 + -0x380)) << ((byte)uVar27 & 0x3f);
  uVar27 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x3d8) | uVar27) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x888) = uVar27;
  *(ulonglong *)(lVar2 + -0x510) =
       uVar34 ^ *(ulonglong *)(lVar2 + -0x4b8) ^ uVar27 ^ uVar35 ^ uVar38;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x200c0e61)) =
       (CONCAT44(uVar18,uVar7) ^ 0xd5cf3f0e2ce2d011) >> (((byte)uVar27 ^ (byte)uVar14) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar35 = *(ulonglong *)(lVar2 + -0x628) ^ uVar37;
  uVar31 = CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar36 = uVar35 << 0x20;
  uVar40 = (*(ulonglong *)(DAT_182671c40 + -0xb18) ^ uVar45) + uVar35 ^ uVar31;
  uVar35 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar40;
  uVar14 = DAT_182671cdc;
  *(ulonglong *)(lVar3 + -0xa50) = uVar36 ^ uVar35;
  lVar2 = DAT_182671c40;
  uVar27 = CONCAT44(uVar14,uVar14);
  uVar35 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xe7fe776e)) ^ uVar37) >>
           (((byte)uVar18 ^ 0x26) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar35 ^ uVar27;
  *(ulonglong *)(lVar2 + -0xa08) = uVar35 + 0xa7d4b36f473967c7;
  uVar14 = DAT_182671df0;
  *(ulonglong *)(lVar2 + -0x7e8) = (uVar35 | uVar36) ^ uVar39;
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xe7fe7a4e)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x31eb3cf4)) ^ uVar43 ^ uVar40 ^ uVar31 ^ uVar39;
  uVar14 = DAT_182671f24;
  uVar36 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  *puVar41 = (CONCAT44(uVar8,uVar4) ^ 0x568d14962e3ab547) +
             (*(ulonglong *)(lVar2 + -0x4b8) ^ uVar38) ^ uVar36;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar37 = CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar38 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar21 ^ 0xdaebf27e)) ^ uVar37) =
       uVar35 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0xc18);
  uVar14 = DAT_182671f7c;
  lVar2 = DAT_182671c40;
  uVar36 = (CONCAT44(uVar11,uVar6) ^ 0xfafe2d814c39838f) +
           (uVar43 ^ *(ulonglong *)(DAT_182671c40 + -0xb08));
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar36 ^ uVar38;
  lVar3 = DAT_182671c40;
  puVar22 = (ulonglong *)
            ((*(ulonglong *)(lVar2 + -0xac0) ^ uVar37) +
            (CONCAT44(uVar24,uVar9) ^ 0x9b3981ec200c0690) * 8);
  *(ulonglong *)(DAT_182671c40 + -0x138) = (ulonglong)puVar22 ^ CONCAT44(uVar14,uVar14);
  *puVar22 = uVar36 ^ uVar35;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x7b2d712b)) =
       uVar42 ^ *(ulonglong *)(lVar3 + -0x680) | 0x1020d139b9ce4c75;
  uVar38 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x7146e7ce)) =
       (CONCAT44(uVar5,uVar13) ^ 0xbea68eeb73ea561) + (*(ulonglong *)(lVar3 + -0x760) ^ uVar31) ^
       uVar38;
  puVar22 = (ulonglong *)
            ((*(ulonglong *)(lVar3 + -0xac0) ^ uVar37) +
            (CONCAT44(uVar26,uVar7) ^ 0x31eb3b1c7146e7fc) * 8);
  *(ulonglong *)(lVar3 + -0x418) = (ulonglong)puVar22 ^ CONCAT44(DAT_182671f18,DAT_182671f18);
  *puVar22 = *(ulonglong *)(lVar3 + -0x30) ^ uVar38 ^ uVar35;
  uVar38 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar23 = (CONCAT44(uVar11,uVar8) ^ 0xc73049c32b31c5d3) + (uVar34 ^ *(ulonglong *)(lVar3 + -0x510))
  ;
  *(ulonglong *)(lVar3 + -0x408) = uVar23 ^ uVar38;
  *(ulonglong *)(DAT_182671c40 + -0x70) =
       (*(ulonglong *)(DAT_182671c40 + -0xac0) ^ uVar37) +
       (CONCAT44(uVar25,uVar26) ^ 0xfee7467131eb3b1f) * 8 ^ uVar33;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       CONCAT44(uVar13,uVar12) ^ *(ulonglong *)(DAT_182671c40 + -0x7e8) ^ uVar39 ^
       0x3220993e3bef5358;
  lVar3 = DAT_182671c40;
  puVar22 = (ulonglong *)(DAT_182671c40 - (uVar30 ^ 0xe7fe754e));
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar19 ^ 0x200c06e1)) ^ uVar33) = uVar23 ^ uVar35;
  uVar14 = DAT_182671dc0;
  *(ulonglong *)(lVar3 + -0x3d8) = (*puVar22 ^ uVar38) - (*(ulonglong *)(lVar3 + -0x110) ^ uVar27);
  uVar16 = DAT_182671e58;
  puVar22 = (ulonglong *)
            (*(longlong *)(lVar3 - (uVar28 ^ 0x7b2d784b)) +
            ((CONCAT44(uVar11,uVar32) ^ 0xe7fe714624341482) +
            (CONCAT44(uVar20,uVar8) ^ 0x2474749231eb3b1c) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x9b8) = (ulonglong)puVar22 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671ea8;
  uVar30 = CONCAT44(uVar16,uVar16);
  uVar35 = *puVar22 ^ uVar30 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x380) = uVar35;
  bVar29 = (byte)DAT_182671ccc;
  uVar23 = (ulonglong)DAT_182671d80;
  uVar30 = CONCAT44(uVar14,uVar14) ^ uVar35 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar30;
  *(byte *)(lVar3 + -0x652) = (byte)uVar14 ^ bVar29 ^ (byte)uVar30;
  bVar29 = bVar29 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0x24747ce2)) =
       (CONCAT44(uVar18,uVar6) ^ 0xc2ea700624747492) + *(longlong *)(lVar3 + -0x1d0) ^ uVar23;
  *(byte *)(*(ulonglong *)(lVar3 + -0x870) ^ uVar23) = bVar29 ^ *(byte *)(lVar3 + -0x652);
  uVar30 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xdaebff1e)) =
       *(longlong *)(lVar3 + -0x310) +
       ((CONCAT44(uVar8,uVar20) ^ 0x31eb3b1c24747492) +
       (CONCAT44(uVar18,uVar26) ^ 0xc2ea700631eb3b1c) * 0xc) * 8 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xda8) =
       *(longlong *)(lVar3 + -0xa70) - (CONCAT44(uVar8,uVar10) ^ 0x62f62c4e8b099c3a);
  uVar21 = *(ulonglong *)(lVar3 + -0x7a0);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar1 ^ uVar20;
  *(undefined8 *)(lVar3 + -0x888) = *(undefined8 *)(uVar21 ^ uVar30);
  return;
}



############ FUN_ 180f85480 size=5710 ############

void FUN_180f85480(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte bVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte bVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong uVar54;
  byte bVar55;
  uint uVar56;
  byte local_res18;
  byte local_148;
  
  uVar11 = DAT_182671c90;
  uVar10 = DAT_182671c8c;
  uVar9 = DAT_182671c84;
  uVar8 = DAT_182671c7c;
  uVar7 = DAT_182671c74;
  uVar6 = DAT_182671c5c;
  uVar5 = DAT_182671c58;
  uVar4 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671c90;
  uVar50 = (ulonglong)DAT_182671c74;
  uVar22 = (ulonglong)DAT_182671c58;
  uVar27 = (ulonglong)DAT_182671c84;
  uVar42 = (ulonglong)DAT_182671c50;
  uVar56 = DAT_182671c74 - DAT_182671c84;
  uVar30 = DAT_182671c7c ^ DAT_182671c50;
  uVar33 = DAT_182671c90 + DAT_182671c58;
  uVar46 = (DAT_182671c5c << 0x10 | DAT_182671c5c & 0xff00) << 8 | DAT_182671c5c >> 8 & 0xff00 |
           DAT_182671c5c >> 0x18;
  uVar29 = (ulonglong)DAT_182671c8c;
  uVar53 = DAT_182671c8c << 0x10 | DAT_182671c8c >> 0x10;
  uVar1 = *(uint *)(&DAT_182613210 + (uVar29 ^ 0x5e2e35b3) + (longlong)DAT_182672224);
  uVar16 = *(uint *)(&DAT_182613220 + DAT_182672224) ^ DAT_182671c90;
  uVar34 = CONCAT44(DAT_182671e88,DAT_182671e88);
  bVar51 = (byte)uVar33;
  uVar41 = (ulonglong)DAT_182671c7c;
  DAT_182671c48 = uVar33;
  DAT_182671c54 = uVar46;
  DAT_182671c68 = uVar53;
  DAT_182671c70 = uVar30;
  DAT_182671c80 = uVar56;
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       (CONCAT44(DAT_182671f7c,DAT_182671f7c) ^ *(ulonglong *)(DAT_182671c40 + -0x7e8)) >>
       ((bVar51 ^ 0x69) & 0x3f) ^ uVar34;
  uVar14 = DAT_182671e40;
  uVar39 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar34 = (*(ulonglong *)(lVar2 - (uVar41 ^ 0xe5991a3f)) ^ uVar34 |
           CONCAT44(DAT_182671fa0,DAT_182671fa0) ^ *(ulonglong *)(lVar2 + -0x2b0)) ^ uVar39;
  *(ulonglong *)(lVar2 + -0x888) = uVar34;
  uVar12 = DAT_182671d1c;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar52 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(lVar2 + -0xa70) =
       uVar52 ^ uVar23 ^ uVar34 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0xb18);
  uVar14 = DAT_182671e78;
  lVar2 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar34 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(DAT_182671c40 + -0xa50)) +
           (CONCAT44(uVar46,uVar4) ^ 0x8c6efc3f9bf6d2fd) ^ uVar39;
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar34;
  uVar12 = DAT_182671eb4;
  uVar17 = (ulonglong)uVar30;
  uVar38 = (ulonglong)uVar6;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x2d017473)) =
       (CONCAT44(uVar30,uVar8) ^ 0xa59c191743f1a8dd) << (((byte)uVar34 ^ (byte)uVar14) & 0x3f);
  uVar14 = DAT_182671f88;
  uVar34 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0xb20)) +
           (CONCAT44(uVar6,uVar9) ^ 0xc983ac7ae09c0dac);
  *(ulonglong *)(lVar2 + -0x4b8) = uVar34 ^ CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar47 = CONCAT44(uVar14,uVar14);
  puVar19 = (ulonglong *)(lVar2 - (uVar22 ^ 0x252703d8));
  *puVar19 = uVar34 + (uVar39 ^ *(ulonglong *)(lVar2 + -0xc18)) ^ uVar47;
  uVar35 = (ulonglong)uVar56;
  uVar37 = (ulonglong)uVar53;
  *(byte *)(lVar2 - (uVar35 ^ 0x3b0d6d09)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x1a8) ^ (ulonglong)DAT_182671d20) ^ (byte)DAT_182671f14;
  puVar43 = (ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xaa350184));
  uVar28 = CONCAT44(DAT_182671f20,DAT_182671f20);
  *(ulonglong *)(lVar2 + -0x408) =
       (CONCAT44(uVar53,uVar6) ^ 0xc2886605d2fe3f53) + (uVar47 ^ *puVar43) ^ uVar28;
  local_res18 = (byte)uVar8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar56 ^ 0x3b0d6370)) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x25270318)) ^ uVar52) << ((bVar51 ^ 0x75) & 0x3f);
  uVar44 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  puVar24 = (ulonglong *)(lVar2 - (uVar17 ^ 0x8abe8ec3));
  *puVar24 = (uVar39 ^ *(ulonglong *)(lVar2 + -0xc18)) << ((local_res18 ^ 0xdf) & 0x3f) ^ uVar44;
  lVar2 = DAT_182671c40;
  bVar55 = (byte)(uVar6 >> 0x18);
  uVar34 = (*(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0x6f27931c)) ^ uVar39) >>
           ((bVar55 ^ 0x85) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar34 ^ CONCAT44(DAT_182671e60,DAT_182671e60);
  puVar20 = (ulonglong *)(lVar2 - (uVar38 ^ 0xb5d303e3));
  uVar40 = CONCAT44(DAT_182671d74,DAT_182671d74);
  puVar31 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0x2d01734b));
  *puVar31 = (uVar44 ^ *puVar20 | uVar34) ^ uVar40;
  lVar2 = DAT_182671c40;
  uVar34 = *(ulonglong *)(DAT_182671c40 + -0xb18);
  uVar39 = *(ulonglong *)(DAT_182671c40 + -0x110);
  puVar21 = (ulonglong *)(DAT_182671c40 + -0x408);
  *(ulonglong *)(DAT_182671c40 + -0x760) =
       CONCAT44(uVar10,uVar6) ^ 0xfefdeddf7ebbdbfe | 0x52fd6d415412d83e;
  uVar45 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar25 = CONCAT44(DAT_182671f68,DAT_182671f68);
  uVar36 = *puVar21 ^ uVar39 ^ uVar45 ^ uVar40 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x380) = uVar36;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x7e8) = (uVar52 ^ uVar34) + (uVar36 ^ uVar45) ^ uVar25;
  lVar2 = DAT_182671c40;
  uVar52 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       *(ulonglong *)(lVar3 - (uVar42 ^ 0x6f2794dc)) ^ uVar39 ^ uVar40 ^ uVar47;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x25270ab0)) = (uVar36 ^ uVar45) << 0x34 ^ uVar52;
  *(ulonglong *)(lVar2 + -0x888) =
       (CONCAT44(uVar10,uVar46) ^ 0xa1ed5771b344550a) >>
       ((byte)*(undefined8 *)(lVar2 - (uVar41 ^ 0xe59912e7)) & 0x3f);
  uVar12 = DAT_182671f84;
  lVar3 = DAT_182671c40;
  bVar18 = (byte)(uVar10 >> 0x10);
  uVar34 = (*(ulonglong *)(lVar2 + -0x380) ^ uVar45) >> ((bVar18 ^ 0x22) & 0x3f);
  uVar48 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  puVar21 = (ulonglong *)(DAT_182671c40 + -0x2b0);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar34 ^ uVar48;
  uVar15 = DAT_182671e9c;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar49 = CONCAT44(uVar7,uVar5);
  uVar54 = (ulonglong)DAT_182671e9c;
  *(ulonglong *)(lVar3 + -0x628) = (uVar52 ^ *puVar21 | uVar34) ^ uVar39;
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 + -0xb20) =
       CONCAT44(uVar33,uVar56) ^ 0xc5a38f484bb22cc8 | uVar49 ^ 0x1bf84180228fa80;
  *(ulonglong *)(lVar2 + -0x4b8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar46 ^ 0xeb08d59d)) ^ uVar36 ^ uVar39 ^ uVar25 ^
       *(ulonglong *)(lVar2 + -0x7e8);
  local_148 = (byte)uVar30;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x6f27931c)) = 0xc845c4a128b803e0 >> ((local_148 ^ 0xd1) & 0x3f);
  uVar40 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x6f27940c)) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0x2d01782b)) ^ uVar23) +
       (*(ulonglong *)(lVar2 + -0x408) ^ uVar28) ^ uVar40;
  uVar13 = DAT_182671d94;
  uVar12 = DAT_182671d24;
  uVar34 = CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar47 = (ulonglong)DAT_182671d94;
  *(ulonglong *)(lVar2 + -0x7c0) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0x35bb545e)) ^ uVar23) << 0x39 ^ uVar34;
  lVar2 = DAT_182671c40;
  bVar26 = (byte)uVar9;
  uVar45 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x3b0d6c38)) =
       (uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0xa70)) >> ((bVar26 ^ 3) & 0x3f) ^ uVar45;
  uVar39 = CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar34 = (uVar45 ^ *(ulonglong *)(lVar2 + -0x760) | uVar34 ^ *(ulonglong *)(lVar2 + -0x7c0)) ^
           uVar39;
  uVar52 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xb18) = uVar34;
  *(ulonglong *)(lVar2 + -0xbd8) =
       uVar52 ^ uVar34 ^ uVar39 ^ uVar40 ^ *(ulonglong *)(lVar2 + -0xb08);
  *(ulonglong *)(lVar2 - (uVar42 ^ 0x6f279e14)) = CONCAT44(uVar4,uVar46) ^ 0xc651b619a9488c43;
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x3b0d6cb0)) ^ uVar25) + (uVar52 ^ *puVar19) ^
       uVar28;
  uVar14 = DAT_182671fac;
  *(ulonglong *)(lVar2 + -0x828) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0x5e2e32db)) ^ uVar45) +
       (CONCAT44(uVar33,uVar11) ^ 0x974b9ee18d1d2701);
  uVar12 = DAT_182671f3c;
  uVar39 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x888) =
       (uVar52 ^ *(ulonglong *)(lVar2 + -0xbd8)) << ((local_148 ^ 0xdc) & 0x3f) ^ uVar39;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x6f279c84)) =
       (*(ulonglong *)(lVar2 + -0xbd8) >> 0x20 ^ uVar47) >> 9 ^ uVar34;
  lVar2 = DAT_182671c40;
  puVar21 = (ulonglong *)(DAT_182671c40 + -0x380);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (CONCAT44(uVar53,uVar53) ^ 0xff3633e786bece86) - (uVar49 ^ 0x1ade820cf06a1d19);
  uVar45 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar25 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar34 = (*(ulonglong *)(lVar2 - (uVar38 ^ 0xb5d30063)) ^ uVar39 | uVar34 ^ *puVar21) ^ uVar45;
  *(ulonglong *)(lVar2 + -0xa50) = uVar34;
  *(ulonglong *)(lVar2 + -0xb20) = uVar25 ^ uVar34 ^ uVar45 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0xf0)
  ;
  puVar21 = (ulonglong *)(lVar2 - ((ulonglong)uVar46 ^ 0xeb08d70d));
  uVar39 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xe5991ce7)) =
       (uVar36 ^ *puVar21) + (uVar40 ^ *(ulonglong *)(lVar2 + -0xb08)) ^ uVar39;
  uVar40 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0x4b8)) << (((byte)uVar10 ^ 0x93) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x35bb5a26)) =
       CONCAT44(uVar4,uVar33) ^ uVar28 ^ *(ulonglong *)(lVar2 + -0xf0) ^ 0x869ff90b1eef7dc4;
  uVar12 = DAT_182671ed8;
  uVar34 = ((ulonglong)(uVar15 >> 0x18) | uVar54 << 8) ^ *(ulonglong *)(lVar2 + -0x4b8) >> 0x18;
  *(ulonglong *)(lVar2 + -0xa70) = uVar34 ^ CONCAT44(DAT_182671d20,DAT_182671d20);
  lVar2 = DAT_182671c40;
  uVar52 = CONCAT44(uVar12,uVar12);
  uVar34 = (uVar34 | uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0xc18)) ^ uVar52;
  *(ulonglong *)(DAT_182671c40 + -0x7c0) = uVar34;
  uVar36 = CONCAT44(DAT_182671cec,DAT_182671cec);
  *(ulonglong *)(lVar2 + -0xb18) =
       *(ulonglong *)(lVar2 - (uVar29 ^ 0x5e2e3393)) ^ uVar52 ^ uVar39 ^ uVar23 ^ uVar34;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x35bb5f3e)) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0x8abe8ed3)) ^ uVar23) +
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xf0)) ^ uVar36;
  lVar3 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xb5d30f03)) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0xb18)) << ((bVar26 ^ 1) & 0x3f) ^ uVar40;
  uVar37 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(lVar3 + -0x760) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xb18)) >> ((bVar26 ^ 0x3f) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x5e2e3d93)) =
       CONCAT44(uVar7,uVar4) ^ uVar52 ^ *(ulonglong *)(lVar3 + -0x7c0) ^ 0xeb719b891e7f91ed;
  uVar34 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x3b0d6080)) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x760) | uVar40 ^ *(ulonglong *)(lVar3 + -0x7e8)) ^ uVar34;
  uVar29 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *(ulonglong *)(lVar3 + -0x2b0) =
       uVar29 ^ uVar34 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0x110) ^ *(ulonglong *)(lVar3 + -0xbd8);
  uVar12 = DAT_182671e58;
  uVar34 = uVar25 ^ *(ulonglong *)(lVar3 + -0xb20);
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xb5d303cb)) ^ uVar25) +
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x628)) ^ uVar48;
  *(ulonglong *)(lVar3 + -0x380) = (uVar52 ^ *(ulonglong *)(lVar3 + -0x7c0)) * 2;
  uVar38 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xa50) = uVar34 << ((bVar26 ^ 0x21) & 0x3f) ^ uVar38;
  uVar47 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *puVar24 = uVar34 >> ((bVar18 ^ 0x35) & 0x3f) ^ uVar47;
  uVar14 = DAT_182671da0;
  lVar2 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar3 + -0x408) =
       (*(ulonglong *)(lVar3 + -0xa50) ^ uVar38 | uVar47 ^ *puVar20) ^ uVar34;
  uVar12 = DAT_182671ce4;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar34 = *(ulonglong *)(lVar3 - (uVar22 ^ 0x25270c08)) ^ uVar48 ^ *(ulonglong *)(lVar3 + -0x888) ^
           uVar39 ^ uVar34;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar34;
  uVar40 = CONCAT44(uVar12,uVar12);
  uVar52 = (CONCAT44(uVar33,uVar46) ^ 0x21aba6e71de019d5) + (uVar34 ^ uVar39);
  uVar39 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar2 + -0xc18) = uVar52 ^ uVar40;
  uVar12 = DAT_182671d14;
  uVar34 = (*(ulonglong *)(lVar2 - (uVar50 ^ 0xaa350b4c)) ^ uVar36) +
           (CONCAT44(uVar4,uVar11) ^ 0x4fe9a78137db8ce6);
  *(ulonglong *)(lVar2 + -0xa70) = uVar34 ^ uVar39;
  uVar34 = uVar52 + uVar34;
  uVar23 = CONCAT44(uVar12,uVar12);
  uVar37 = uVar34 ^ uVar23;
  uVar25 = CONCAT44(DAT_182671ce8,DAT_182671ce8);
  *(ulonglong *)(lVar2 + -0xf0) = uVar37;
  *(ulonglong *)(lVar2 + -0xb18) = uVar34 << ((local_res18 ^ 0xfc) & 0x3f);
  uVar52 = uVar52 << ((bVar51 ^ 0x42) & 0x3f);
  *(ulonglong *)(lVar2 + -0x828) = uVar52 ^ uVar45;
  uVar39 = (*(ulonglong *)(lVar2 + -0xc18) ^ uVar40) >> ((local_res18 ^ 0xe8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar39 ^ uVar25;
  *(ulonglong *)(lVar2 + -0x760) = uVar39;
  uVar34 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  uVar25 = (uVar52 | uVar39) ^ uVar34;
  uVar36 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar25;
  uVar39 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar2 + -0x628) = uVar37 ^ uVar36 ^ uVar25 ^ uVar34 ^ uVar23;
  uVar12 = DAT_182671f1c;
  uVar29 = (CONCAT44(uVar30,uVar10) ^ 0xd304f60667360c82) +
           (uVar29 ^ *(ulonglong *)(lVar2 + -0x2b0));
  *(ulonglong *)(lVar2 + -0x7c0) = uVar29 ^ uVar39;
  lVar2 = DAT_182671c40;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 + -0x380) =
       (CONCAT44(uVar9,uVar56) ^ 0xf4fa9f5807e4b30e) +
       (uVar48 ^ *(ulonglong *)(DAT_182671c40 + -0x888)) ^ uVar34;
  uVar12 = DAT_182671e34;
  uVar37 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(lVar2 + -0xb20) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0x8abe864b)) ^ uVar34) + uVar29 ^ uVar37;
  uVar25 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x2d01780b)) = uVar29 << (((byte)uVar56 ^ 0x79) & 0x3f) ^ uVar25;
  uVar34 = CONCAT44(DAT_182671d68,DAT_182671d68);
  uVar39 = (*(ulonglong *)(lVar2 - (uVar35 ^ 0x3b0d6c98)) ^ uVar39) >> ((bVar55 ^ 0xaa) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar39 ^ uVar34;
  uVar12 = DAT_182671cb0;
  *(ulonglong *)(lVar2 + -0x4b8) =
       *(ulonglong *)(lVar2 - (uVar17 ^ 0x8abe81c3)) ^ uVar34 |
       *(ulonglong *)(lVar2 + -0xb08) ^ uVar47;
  uVar4 = DAT_182671dd0;
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar32 = (ulonglong)DAT_182671dd0;
  uVar29 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x3b0d6a48)) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0x6f279554)) ^ uVar25 | uVar39) ^ uVar34;
  uVar12 = DAT_182671e48;
  lVar3 = DAT_182671c40;
  uVar34 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x25270320)) ^ *(ulonglong *)(lVar2 + -0x110) ^ uVar29 ^
           uVar34 ^ uVar37;
  *(ulonglong *)(lVar2 + -0xa70) = uVar34;
  *(ulonglong *)(lVar2 + -0xb18) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar50 ^ 0xaa3501d4)) ^ uVar44) ^
       CONCAT44(uVar12,uVar12);
  uVar39 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x3b0d6740)) =
       (uVar34 ^ uVar29) + (*(ulonglong *)(lVar3 + -0xf0) ^ uVar23) ^ uVar39;
  lVar2 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x52287d3b)) =
       (*(ulonglong *)(lVar3 + -0xa70) ^ uVar29) << 0x2e ^ uVar34;
  uVar14 = DAT_182671eec;
  uVar29 = ((ulonglong)(uVar4 >> 0x12) | uVar32 << 0xe) ^
           *(ulonglong *)(lVar2 - (uVar42 ^ 0x6f279574)) >> 0x12;
  uVar34 = *(ulonglong *)(lVar2 + -0x760) ^ uVar34;
  *(ulonglong *)(lVar2 + -0x828) = uVar29 ^ CONCAT44(DAT_182671cb8,DAT_182671cb8);
  uVar12 = DAT_182671d9c;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar29 = (uVar29 | uVar34) ^ uVar32;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar34 >> (((byte)uVar6 ^ 0xdd) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar29;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xe599187f)) =
       *(ulonglong *)(lVar2 + -0xc18) ^ uVar23 ^ uVar32 ^ uVar39 ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x8abe8d43)) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar36) + (*(ulonglong *)(lVar2 + -0xb20) ^ uVar37) ^
       uVar38;
  uVar12 = DAT_182671dfc;
  *(ulonglong *)(lVar2 + -0x380) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0x6f27992c)) ^ uVar36) << 0xc ^ uVar28;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x7c0) =
       (CONCAT44(uVar5,uVar7) ^ 0x2c35de41e5e3fdb3) << ((bVar26 ^ 5) & 0x3f);
  *puVar20 = (*(ulonglong *)(lVar2 + -0x628) ^ uVar36) >> ((bVar18 ^ 0x1a) & 0x3f) ^ uVar34;
  uVar41 = CONCAT44(DAT_182671d90,DAT_182671d90);
  *puVar21 = (*(ulonglong *)(lVar2 - (uVar35 ^ 0x3b0d68d8)) ^ uVar28 |
             *(ulonglong *)(lVar2 - (uVar22 ^ 0x25270308)) ^ uVar34) ^ uVar41;
  uVar12 = DAT_182671da8;
  *(ulonglong *)(lVar2 + -0xa50) =
       (CONCAT44(uVar30,uVar46) ^ 0x42ab6748673da0ba) -
       (CONCAT44(uVar8,uVar11) ^ 0x335d9bfe57f75754);
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar29 = CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar41 = *(ulonglong *)(lVar2 + -0x4b8) ^ *(ulonglong *)(lVar2 + -0x888) ^ uVar34 ^ uVar41 ^
           uVar38;
  *(ulonglong *)(lVar2 + -0x408) = uVar41;
  uVar12 = DAT_182671d00;
  *(ulonglong *)(lVar2 + -0x110) =
       (uVar41 ^ uVar34) + (*(ulonglong *)(lVar2 + -0xc18) ^ uVar39) ^ uVar29;
  uVar14 = DAT_182671ec4;
  uVar41 = (uVar41 ^ uVar34) << (((byte)uVar10 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar2 + -0xb18) = uVar41 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xf0) = uVar32 ^ *(ulonglong *)(lVar2 + -0x7e8) | 0x36bf95b853ff4c7b;
  uVar12 = DAT_182671d18;
  uVar34 = (*(ulonglong *)(lVar2 - (uVar42 ^ 0x6f279b0c)) ^ uVar34) >> ((bVar26 ^ 2) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa70) = uVar34 ^ CONCAT44(uVar14,uVar14);
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar41 = (uVar34 | uVar41) ^ uVar39;
  uVar34 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(lVar2 + -0x828) = uVar41;
  uVar12 = DAT_182671eb8;
  *puVar43 = uVar34 ^ uVar41 ^ uVar39 ^ uVar29 ^ *puVar31;
  *(byte *)(lVar2 + -0x2c9) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar27 ^ 0x6f27985c)) ^ (ulonglong)DAT_182671e44) ^
       (byte)DAT_182671f14;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x8abe82ab)) =
       (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar23) + (*(ulonglong *)(lVar2 + -0x888) ^ uVar38) ^
       CONCAT44(uVar12,uVar12);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar1 ^ uVar53;
  return;
}



############ FUN_ 180f7ef40 size=5243 ############

void FUN_180f7ef40(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte local_b0;
  
  uVar12 = DAT_182671df8;
  uVar10 = DAT_182671c7c;
  uVar16 = DAT_182671c6c;
  uVar7 = DAT_182671c48;
  lVar5 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c6c;
  uVar21 = (ulonglong)DAT_182671c48;
  uVar4 = DAT_182671c6c;
  if ((DAT_182671c7c & 1) == 0) {
    uVar4 = DAT_182671c7c;
  }
  uVar18 = *(uint *)(&DAT_182613218 + DAT_182672214) ^ DAT_182671c48;
  uVar15 = *(uint *)(&DAT_182613220 + DAT_182672214) ^ DAT_182671c7c;
  uVar29 = (ulonglong)DAT_182671c48;
  uVar35 = (ulonglong)uVar4;
  DAT_182671c74 = uVar4;
  *(uint *)(DAT_182671c40 + -0x784) =
       (uVar4 ^ 0x53fb58e8) << ((byte)*(undefined4 *)(DAT_182671c40 + -0x1c8) & 0x1f);
  uVar24 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar5 + -0xb18)) >>
           (((byte)uVar7 ^ 0x7b) & 0x3f);
  uVar25 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar20 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar36 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar5 + -0x2b0) = uVar24 ^ uVar25;
  puVar1 = (ulonglong *)(lVar5 + -0x628);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0x74922314)) =
       (uVar20 ^ *(ulonglong *)(lVar5 + -0x408) | uVar24) ^ uVar36;
  puVar2 = (ulonglong *)(lVar5 + -0x380);
  uVar34 = CONCAT44(DAT_182671dc4,DAT_182671dc4) ^ *(ulonglong *)(lVar5 + -0x888);
  *puVar2 = (uVar25 ^ *(ulonglong *)(lVar5 + -0x2b0)) << ((byte)uVar34 & 0x3f);
  uVar12 = DAT_182671d90;
  uVar20 = CONCAT44(DAT_182671f10,DAT_182671f10);
  uVar22 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar25 = *(ulonglong *)(lVar5 - (uVar29 ^ 0x52287d3b)) ^ *puVar1 ^ uVar22 ^ uVar20 ^ uVar36;
  *(ulonglong *)(lVar5 + -0x4b8) = uVar25;
  uVar8 = DAT_182671f24;
  *(ulonglong *)(lVar5 + -0x7e8) =
       CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar5 + -0xc18) ^ CONCAT44(uVar16,uVar7) ^
       0x3704ed3ecc8ab275;
  lVar5 = DAT_182671c40;
  uVar24 = (ulonglong)uVar10;
  uVar25 = (uVar25 ^ uVar20) + (CONCAT44(uVar10,uVar16) ^ 0xfd986a7ff69a1201);
  uVar29 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0xf0);
  uVar20 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(DAT_182671c40 + -0x828) = uVar25 ^ CONCAT44(DAT_182671cdc,DAT_182671cdc);
  uVar12 = DAT_182671ca0;
  uVar30 = (uVar29 ^ *puVar3) + (CONCAT44(uVar4,uVar7) ^ 0xd01fffda37c78ad);
  bVar23 = (byte)uVar16;
  *(ulonglong *)(lVar5 + -0xbd8) = uVar30 ^ uVar20;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar29 = uVar25 >> ((bVar23 ^ 0x46) & 0x3f);
  puVar3 = (ulonglong *)(lVar5 + -0xa70);
  uVar31 = uVar30 + uVar25 ^ uVar32;
  *puVar3 = uVar31;
  uVar20 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar5 + -0xa50) = uVar25 * 0x4000 ^ CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *(ulonglong *)(lVar5 + -0xb08) = uVar29 ^ uVar20;
  *(ulonglong *)(lVar5 + -0x110) = (uVar29 | uVar25 * 0x4000) ^ uVar36;
  uVar12 = DAT_182671d0c;
  uVar30 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 + -0xb20) =
       *(ulonglong *)(lVar5 - (uVar35 ^ 0x74922564)) ^ uVar30 ^ uVar32 ^ uVar36 ^ uVar31;
  uVar14 = DAT_182671edc;
  uVar25 = CONCAT44(uVar12,uVar12);
  uVar20 = *puVar1;
  uVar34 = (CONCAT44(uVar7,uVar7) ^ 0x354e55d1a6f93458) + uVar34;
  *(ulonglong *)(lVar5 + -0x7c0) = uVar34 ^ uVar25;
  uVar13 = DAT_182671ed8;
  uVar20 = (uVar20 ^ uVar22) + (CONCAT44(uVar16,uVar10) ^ 0xc4555116324d07ca) ^
           CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xb18) = uVar20;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x408) =
       (*(ulonglong *)(lVar5 - (uVar24 ^ 0xe59911d7)) ^ CONCAT44(uVar14,uVar14)) + uVar34 ^ uVar22;
  uVar12 = DAT_182671e20;
  *(ulonglong *)(lVar5 + -0x2b0) =
       (CONCAT44(uVar10,uVar16) ^ 0x5c4513a447bd35ec) << (((byte)uVar20 ^ (byte)uVar14) & 0x3f);
  bVar17 = (byte)uVar4;
  uVar29 = CONCAT44(uVar12,uVar12);
  *puVar2 = uVar34 << ((bVar17 ^ 100) & 0x3f) ^ uVar29;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x74922314)) = 0x6d165ced7859d22f >> ((byte)uVar7 & 0x3f)
  ;
  uVar34 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  puVar26 = (ulonglong *)(lVar5 - (uVar35 ^ 0x7492286c));
  *puVar26 = (*(ulonglong *)(lVar5 + -0x7c0) ^ uVar25) >> ((bVar17 ^ 0x44) & 0x3f) ^ uVar34;
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x7492239c)) =
       CONCAT44(uVar7,uVar10) ^ 0x1833303f4f08be23 | CONCAT44(uVar10,uVar10) ^ 0xc30dc5bed97995f5;
  lVar5 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x749220cc)) =
       (uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0xc18) | uVar29 ^ *puVar2) ^ uVar20;
  uVar29 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  uVar20 = *(ulonglong *)(lVar5 - (uVar28 ^ 0x7492207c)) ^ *(ulonglong *)(lVar5 + -0x4b8) ^ uVar29 ^
           uVar20 ^ uVar22;
  *(ulonglong *)(lVar5 + -0xf0) = uVar20;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*puVar26 ^ uVar34) - (CONCAT44(uVar4,uVar10) ^ 0xad1736a4da735b5b);
  uVar12 = DAT_182671dcc;
  uVar29 = uVar29 ^ uVar20;
  uVar36 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar20 = *puVar3;
  *(ulonglong *)(lVar5 + -0xa50) = uVar29 << 0x34 ^ CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar34 = (uVar20 ^ uVar32) + uVar29 ^ uVar36;
  *(ulonglong *)(lVar5 + -0x828) = uVar34;
  lVar5 = DAT_182671c40;
  uVar20 = uVar29 >> ((bVar23 ^ 0x78) & 0x3f);
  uVar25 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = uVar20 ^ CONCAT44(uVar12,uVar12);
  uVar20 = (uVar20 | uVar29 << 0x34) ^ uVar25;
  uVar35 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar5 + -0x110) = uVar20;
  *(ulonglong *)(lVar5 - (uVar21 ^ 0x522872d3)) = uVar35 ^ uVar25 ^ uVar34 ^ uVar36 ^ uVar20;
  uVar20 = uVar30 ^ *(ulonglong *)(lVar5 + -0xb20);
  uVar31 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0xe5991ec7)) ^ uVar22) + uVar20 ^ uVar31;
  uVar19 = DAT_182671c50;
  uVar34 = CONCAT44(DAT_182671d18,DAT_182671d18);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0x52287143)) = uVar20 << ((bVar17 ^ 0x4d) & 0x3f) ^ uVar34;
  *(uint *)(lVar5 + -0x634) = (DAT_182671c48 ^ 0xe386c620) - *(int *)(lVar5 + -0x784);
  uVar12 = DAT_182671ec4;
  uVar29 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar22 = ((ulonglong)uVar8 << 0x19 | (ulonglong)(uVar8 >> 7)) ^
           *(ulonglong *)(lVar5 + -0xb20) >> 7;
  *(ulonglong *)(lVar5 + -0x2b0) = uVar22 ^ uVar29;
  lVar6 = DAT_182671c40;
  uVar20 = CONCAT44(uVar12,uVar12);
  puVar26 = (ulonglong *)(lVar5 + -0x760);
  uVar34 = (uVar22 | uVar34 ^ *(ulonglong *)(lVar5 + -0xb18)) ^ uVar20;
  *puVar26 = uVar34;
  uVar12 = DAT_182671d64;
  lVar5 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671f74,DAT_182671f74);
  puVar27 = (ulonglong *)(lVar6 - (uVar28 ^ 0x749223b4));
  uVar32 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *puVar27 = *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x52287c73)) ^ uVar22 ^ uVar20 ^ uVar31 ^
             uVar34;
  *(ulonglong *)(lVar5 - (uVar24 ^ 0xe5991d27)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar19 ^ 0xb7fe3f96)) ^ uVar36) +
       (uVar22 ^ *(ulonglong *)(lVar5 + -0x7c0)) ^ uVar32;
  uVar9 = DAT_182671c64;
  uVar20 = *(ulonglong *)(lVar5 + -0x7e8);
  uVar34 = (uVar22 ^ *(ulonglong *)(lVar5 + -0x7c0)) << 0x17;
  *puVar2 = (CONCAT44(DAT_182671c64,uVar4) ^ 0x9a39a8c6f8142dc1) >>
            (((byte)uVar20 ^ (byte)uVar12) & 0x3f);
  *(ulonglong *)(lVar5 + -0x4b8) = uVar34 ^ CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar12 = DAT_182671e28;
  uVar8 = DAT_182671c70;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0xc18) =
       (CONCAT44(uVar7,uVar4) ^ 0x33a4679062a83fc8) <<
       (((byte)uVar13 ^ *(byte *)(lVar5 + -0x408)) & 0x3f);
  uVar11 = DAT_182671c8c;
  uVar22 = (*puVar27 ^ uVar22) >> (((byte)uVar8 ^ 0xe2) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar22 ^ CONCAT44(uVar12,uVar12);
  uVar36 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *puVar3 = (uVar22 | uVar34) ^ uVar36;
  uVar33 = CONCAT44(DAT_182671e00,DAT_182671e00);
  uVar34 = CONCAT44(DAT_182671e04,DAT_182671e04);
  *(ulonglong *)(lVar6 + -0xf0) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar19 ^ 0xb7fe3dce)) ^ uVar33 ^ uVar36 ^ uVar20 ^ uVar32;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0xd896f5c0)) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0x7492225c)) ^ uVar31) +
       (*(ulonglong *)(lVar6 + -0x888) ^ uVar35) ^ uVar34;
  uVar8 = DAT_182671c60;
  uVar35 = *(ulonglong *)(lVar6 + -0x888) ^ uVar35;
  uVar31 = uVar35 << 0x28;
  uVar20 = CONCAT44(uVar10,DAT_182671c88);
  *(ulonglong *)(lVar6 + -0xb08) = uVar31 ^ CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar12 = DAT_182671cc0;
  *(ulonglong *)(lVar6 + -0x110) =
       (CONCAT44(uVar7,uVar7) ^ 0x821e33112539a008) - (uVar20 ^ 0x483ca9adb45cc03);
  uVar13 = DAT_182671de4;
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar20 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar6 + -0xb20) = uVar35 >> (((byte)uVar19 ^ 0xa6) & 0x3f) ^ uVar22;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar31 = *(ulonglong *)(lVar6 - (uVar20 ^ 0x1b96ede7)) ^ uVar22 | uVar31;
  uVar20 = uVar31 ^ uVar35;
  *(ulonglong *)(lVar6 + -0xb18) = uVar20;
  *(ulonglong *)(lVar6 + -0x2b0) =
       uVar35 ^ uVar34 ^ uVar29 ^ *(ulonglong *)(lVar6 + -0xa50) ^ uVar20;
  uVar36 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *puVar26 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xefbf9d7f)) ^ uVar29) +
             (uVar32 ^ *(ulonglong *)(lVar6 + -0x7e8)) ^ uVar36;
  uVar19 = DAT_182671c80;
  uVar22 = (ulonglong)DAT_182671c68;
  bVar17 = (byte)DAT_182671c68;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0xd896f7b8)) =
       uVar31 - (CONCAT44(uVar9,uVar10) ^ 0x89fc7d2582cd35a4);
  uVar31 = (uVar29 ^ *(ulonglong *)(lVar6 + -0x2b0)) << 5;
  *puVar2 = uVar31 ^ CONCAT44(DAT_182671d84,DAT_182671d84);
  uVar29 = (*(ulonglong *)(lVar6 - (uVar24 ^ 0xe599187f)) ^ uVar29) >> ((bVar17 ^ 0xdf) & 0x3f);
  uVar20 = CONCAT44(uVar19,DAT_182671c90);
  *(ulonglong *)(lVar6 + -0xc18) = uVar29 ^ CONCAT44(DAT_182671e5c,DAT_182671e5c);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar6 + -0x408) =
       (uVar20 ^ 0x56322a2567a329da) - (CONCAT44(uVar16,uVar10) ^ 0x65d664c53006db74);
  uVar12 = DAT_182671dc8;
  *(ulonglong *)(lVar6 + -0x7c0) = (uVar29 | uVar31) ^ uVar25;
  uVar13 = DAT_182671fac;
  uVar7 = DAT_182671c88;
  uVar35 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 + -0x4b8) =
       *(ulonglong *)(lVar5 - (uVar24 ^ 0xe5991daf)) ^
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c88 ^ 0x8838221a)) ^ uVar35 ^ uVar36 ^ uVar25;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar25 = (ulonglong)DAT_182671c94;
  uVar20 = (ulonglong)DAT_182671c64;
  uVar32 = CONCAT44(DAT_182671d34,DAT_182671d34);
  *(ulonglong *)(lVar5 + -0xbd8) =
       (*(ulonglong *)(lVar5 - (uVar21 ^ 0x52287aab)) ^ uVar33) +
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x88382f8a)) ^ uVar34) ^ uVar29;
  uVar7 = DAT_182671c4c;
  *puVar3 = (*(ulonglong *)(lVar5 - (uVar20 ^ 0xb8169853)) ^ uVar33) << 0x25 ^ uVar32;
  lVar5 = DAT_182671c40;
  uVar20 = (*(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0xa3981648)) ^ uVar33) >>
           (((byte)uVar7 ^ 0xa3) & 0x3f);
  uVar21 = (ulonglong)DAT_182671c70;
  *puVar1 = uVar20 ^ CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar31 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar21 = (*(ulonglong *)(lVar5 - (uVar21 ^ 0x8abe8fbb)) ^ uVar32 | uVar20) ^ uVar31;
  uVar34 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *(ulonglong *)(lVar5 + -0x110) = uVar21;
  uVar14 = DAT_182671f9c;
  *(ulonglong *)(lVar5 + -0x888) =
       *(ulonglong *)(lVar5 - (uVar24 ^ 0xe5991117)) ^ uVar34 ^ uVar31 ^ uVar29 ^ uVar21;
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x2fc61ac4)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c8c ^ 0xd896f718)) ^ uVar34) +
       (CONCAT44(DAT_182671c88,uVar10) ^ 0x38ff50b8324d07ca) ^ uVar20;
  uVar13 = DAT_182671e80;
  uVar21 = (ulonglong)DAT_182671c90;
  uVar24 = (CONCAT44(uVar19,uVar4) ^ 0x547f41466e48dac9) + (uVar36 ^ *puVar26);
  *(ulonglong *)(lVar5 + -0xb08) = uVar24 ^ CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar12 = DAT_182671d2c;
  uVar7 = DAT_182671c54;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar34 = uVar20 ^ *(ulonglong *)(lVar5 + -0xb20);
  *(ulonglong *)(lVar5 + -0x7e8) =
       (*(ulonglong *)(lVar5 - (uVar21 ^ 0x4c0e4409)) ^ uVar20) + uVar24 ^ uVar32;
  uVar13 = DAT_182671ed0;
  uVar21 = uVar34 << ((bVar17 ^ 0xfd) & 0x3f);
  *(ulonglong *)(lVar5 + -0xb18) = uVar21 ^ CONCAT44(uVar12,uVar12);
  uVar34 = uVar34 >> (((byte)uVar7 ^ 0x7c) & 0x3f);
  uVar16 = DAT_182671c8c ^ 0xd4802450;
  uVar19 = DAT_182671c50 ^ 0x84da32e;
  *(ulonglong *)(lVar5 + -0x828) = uVar34 ^ CONCAT44(uVar13,uVar13);
  uVar12 = DAT_182671fb4;
  *(uint *)(lVar5 + -0x58c) = uVar19 | uVar16;
  uVar8 = DAT_182671c78;
  uVar19 = DAT_182671c5c;
  lVar6 = DAT_182671c40;
  uVar20 = CONCAT44(uVar12,uVar12);
  uVar24 = (ulonglong)DAT_182671c5c;
  uVar22 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0xa3981408)) = (uVar21 | uVar34) ^ uVar20;
  uVar12 = DAT_182671d54;
  uVar16 = DAT_182671c58;
  uVar34 = CONCAT44(DAT_182671da8,DAT_182671da8);
  uVar25 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar5 + -0x408) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c64 ^ 0xb8169f4b)) ^
       *(ulonglong *)(lVar5 - (uVar24 ^ 0xb5d30a5b)) ^ uVar34 ^ uVar20 ^ uVar32;
  uVar20 = (CONCAT44(uVar7,uVar8) ^ 0x229708968ffe1a55) + (uVar35 ^ *(ulonglong *)(lVar5 + -0x4b8));
  *puVar2 = uVar20 ^ CONCAT44(uVar12,uVar12);
  uVar7 = DAT_182671c8c;
  *(longlong *)(lVar5 + -0xc18) = -0x36c200c8056dbb19 << ((bVar23 ^ 0x61) & 0x3f);
  uVar12 = DAT_182671f6c;
  uVar31 = CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar21 = (CONCAT44(uVar7,uVar19) ^ 0xf23ae71591d40335) + (uVar29 ^ *(ulonglong *)(lVar5 + -0xbd8))
  ;
  *(ulonglong *)(lVar5 + -0x7c0) = uVar21 ^ uVar31;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0xa50) = uVar21 + uVar20 ^ uVar36;
  uVar12 = DAT_182671eb4;
  uVar19 = DAT_182671c90;
  uVar7 = DAT_182671c80;
  uVar35 = (ulonglong)DAT_182671c80;
  uVar24 = (ulonglong)DAT_182671c90;
  bVar17 = (byte)DAT_182671c60;
  *(ulonglong *)(lVar6 + -0xf0) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c50 ^ 0xb7fe307e)) ^ uVar31) >>
       ((*(byte *)(lVar6 - (uVar25 ^ 0x6f279424)) ^ (byte)uVar14) & 0x3f);
  uVar25 = CONCAT44(uVar12,uVar12);
  *puVar3 = uVar20 << ((bVar17 ^ 0xee) & 0x3f) ^ uVar25;
  uVar21 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x74b17feb)) =
       uVar20 >> (((byte)uVar19 ^ 0x36) & 0x3f) ^ uVar21;
  lVar5 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671f50,DAT_182671f50);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0x883824ca)) =
       (*puVar1 ^ uVar21 | *puVar3 ^ uVar25) ^ uVar20;
  uVar29 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x74b1714b)) =
       uVar36 ^ *(ulonglong *)(lVar5 + -0xa50) ^ *(ulonglong *)(lVar5 + -0x110) ^ uVar29 ^ uVar20;
  uVar25 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *puVar26 = (uVar32 ^ *(ulonglong *)(lVar5 + -0x7e8)) + (*(ulonglong *)(lVar5 + -0x888) ^ uVar29) ^
             uVar25;
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x4c0e4421)) =
       (CONCAT44(uVar16,uVar4) ^ 0xb6df6c3c8c3d7734) + 0x38383b5db09879b4;
  uVar12 = DAT_182671d48;
  lVar5 = DAT_182671c40;
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0xa50);
  uVar31 = (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x74922cfc)) ^ uVar29) <<
           (((byte)DAT_182671c70 ^ 0xe5) & 0x3f);
  local_b0 = (byte)uVar10;
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar31 ^ CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar24 = (*(ulonglong *)(lVar5 - (uVar22 ^ 0xb6e62b9e)) ^ uVar29) >> ((local_b0 ^ 0xdd) & 0x3f);
  uVar29 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar5 + -0x828) = uVar24 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e08;
  uVar20 = (ulonglong)DAT_182671c60;
  uVar24 = (uVar31 | uVar24) ^ uVar29;
  *(ulonglong *)(lVar5 + -0x2b0) = uVar24;
  uVar22 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar5 + -0x4b8) =
       *(ulonglong *)(lVar5 - (uVar20 ^ 0xefbf98af)) ^ CONCAT44(uVar12,uVar12) ^ uVar24 ^ uVar29 ^
       uVar25;
  uVar4 = DAT_182671c54;
  uVar20 = uVar34 ^ *(ulonglong *)(lVar5 + -0x408);
  uVar24 = (ulonglong)DAT_182671c58;
  uVar29 = (ulonglong)DAT_182671c54;
  bVar17 = (byte)DAT_182671c58;
  *(ulonglong *)(lVar5 + -0xc18) = (uVar36 ^ uVar21) + uVar20 ^ uVar22;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar19 ^ 0x4c0e44f1)) =
       uVar20 << ((bVar17 ^ 0xcb) & 0x3f) ^ uVar30;
  uVar21 = (ulonglong)DAT_182671c4c;
  uVar20 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar5 + -0xb20) =
       (uVar34 ^ *(ulonglong *)(lVar5 + -0x408)) >> (((byte)uVar4 ^ 0x6f) & 0x3f) ^ uVar20;
  uVar12 = DAT_182671e74;
  *(ulonglong *)(lVar5 + -0x7c0) =
       *(ulonglong *)(lVar5 - (uVar21 ^ 0xa3981d60)) ^ *(ulonglong *)(lVar5 + -0xc18) ^ uVar30 ^
       uVar22;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x7b2d7bab)) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0x74b172e3)) ^ uVar20 |
       *(ulonglong *)(lVar5 - (uVar28 ^ 0x74922fac)) ^ uVar30) ^ uVar21;
  uVar28 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x1b96e547)) =
       *(ulonglong *)(lVar5 + -0xc18) ^ uVar28 ^ uVar21 ^ uVar22 ^ *(ulonglong *)(lVar5 + -0xf0);
  uVar28 = uVar28 ^ *puVar2;
  *puVar3 = CONCAT44(DAT_182671f84,DAT_182671f84) ^ (uVar25 ^ *puVar26) + uVar28;
  *puVar1 = CONCAT44(DAT_182671fa4,DAT_182671fa4) ^ uVar28 << 0x3a;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar18;
  return;
}



############ FUN_ 180fc5ee0 size=5589 ############

void FUN_180fc5ee0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_res18;
  byte local_e0;
  
  uVar11 = DAT_182671c90;
  uVar10 = DAT_182671c7c;
  uVar17 = DAT_182671c68;
  uVar7 = DAT_182671c58;
  uVar6 = DAT_182671c54;
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar47 = (ulonglong)DAT_182671c90;
  uVar34 = (ulonglong)DAT_182671c48;
  uVar45 = (ulonglong)DAT_182671c54;
  DAT_182671c78 = DAT_182671c48 & DAT_182671c54;
  uVar22 = (ulonglong)DAT_182671c58;
  uVar43 = DAT_182671c68 - DAT_182671c88;
  uVar24 = (ulonglong)DAT_182671c7c;
  uVar27 = DAT_182671c58 & DAT_182671c7c;
  DAT_182671c64 = DAT_182671c70 * DAT_182671c6c;
  uVar14 = DAT_182671c50 - DAT_182671c90;
  uVar35 = (ulonglong)uVar14;
  uVar15 = *(uint *)(&DAT_182613210 + (uVar35 ^ 0x6a971af0) + (longlong)DAT_1826722e0) ^
           DAT_182671c50;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_1826722e0) ^ DAT_182671c90;
  uVar40 = CONCAT44(DAT_182671d20,DAT_182671d20);
  local_res18 = (byte)uVar14;
  uVar25 = CONCAT44(DAT_182671d38,DAT_182671d38);
  uVar32 = CONCAT44(DAT_182671da0,DAT_182671da0);
  uVar36 = CONCAT44(DAT_182671f98,DAT_182671f98) ^ uVar25 ^ uVar40 ^
           *(ulonglong *)(DAT_182671c40 + -0xb20) ^ *(ulonglong *)(DAT_182671c40 + -0x920);
  DAT_182671c5c = uVar43;
  DAT_182671c74 = uVar14;
  DAT_182671c8c = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar36;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xda8) = (uVar36 ^ uVar40) >> ((local_res18 ^ 0xf4) & 0x3f) ^ uVar32;
  uVar30 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar39 = (ulonglong)uVar27;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xf8f9fdf0)) = (uVar36 ^ uVar40) << 0x34 ^ uVar30;
  uVar8 = DAT_182671c70;
  uVar40 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar36 = (ulonglong)DAT_182671c70;
  uVar30 = *(ulonglong *)(lVar4 - (uVar39 ^ 0x70c0f578)) ^ uVar32 |
           uVar30 ^ *(ulonglong *)(lVar4 + -0x408);
  uVar28 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar4 + -0xa78) = uVar30 ^ uVar40;
  *(ulonglong *)(lVar4 + -0xa50) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0xd8eeb10d)) ^ uVar25) - uVar30 ^ uVar28;
  *(uint *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0x52c2e73a)) =
       (DAT_182671c78 ^ 0x6fe30afe) + (DAT_182671c64 ^ 0xf4e2e1c8);
  uVar20 = (ulonglong)DAT_182671c88;
  bVar19 = (byte)DAT_182671c88;
  uVar41 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar23 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar32 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar30 = *(ulonglong *)(lVar4 + -0xa78) ^ uVar23 ^ uVar41 ^ uVar40 ^
           *(ulonglong *)(lVar4 + -0x7e8);
  *(ulonglong *)(lVar4 + -0xb18) = uVar30;
  uVar25 = (ulonglong)uVar17;
  *(ulonglong *)(lVar4 + -0x5e8) = (uVar30 ^ uVar41) >> ((bVar19 ^ 0xf7) & 0x3f) ^ uVar32;
  uVar30 = (uVar41 ^ uVar30) << 0x27;
  uVar31 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar4 + -0x510) = uVar30 ^ CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar12 = DAT_182671d1c;
  *(ulonglong *)(lVar4 + -0x828) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x28505e8)) ^ uVar32 | uVar30) ^ uVar31;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar37 = CONCAT44(DAT_182671d00,DAT_182671d00);
  uVar40 = (ulonglong)uVar43;
  *(ulonglong *)(lVar4 - (uVar47 ^ 0x9562eed8)) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x7e8)) - (uVar32 ^ *(ulonglong *)(lVar4 + -0x2b0)) ^
       uVar37;
  uVar12 = DAT_182671fac;
  uVar26 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(lVar3 + -0x4b8) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0xbd8)) -
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0x78e10a3a)) ^ uVar31) ^ uVar26;
  lVar3 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x6a971098)) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(DAT_182671c40 + -0xd88)) +
       (CONCAT44(uVar7,uVar6) ^ 0x182f8d3a4299dc2d) ^ uVar33;
  uVar13 = DAT_182671eb4;
  uVar17 = DAT_182671e3c;
  uVar41 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  uVar29 = (ulonglong)DAT_182671e3c;
  uVar30 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar3 + -0xc90) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x71c6f4fc)) ^ uVar31) -
       (uVar33 ^ *(ulonglong *)(lVar3 + -0xa60)) ^ uVar41;
  uVar12 = DAT_182671d4c;
  uVar38 = CONCAT44(uVar17,uVar17);
  uVar30 = *(ulonglong *)(lVar3 - (uVar30 ^ 0xdc68f108)) ^ CONCAT44(uVar13,uVar13) ^ uVar38 ^ uVar28
           ^ *(ulonglong *)(lVar3 + -0xa50);
  *(ulonglong *)(lVar3 + -0xf0) = uVar30;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xdff9fa78)) = (uVar30 >> 0x20 ^ uVar29) >> 1 ^ uVar31;
  uVar13 = DAT_182671db8;
  uVar17 = DAT_182671c64;
  uVar38 = (uVar38 ^ *(ulonglong *)(lVar3 + -0xf0)) << (((byte)uVar7 ^ 0xe7) & 0x3f);
  uVar44 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar42 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar3 + -0xb20) = uVar38 ^ uVar44;
  uVar38 = uVar38 | uVar31 ^ *(ulonglong *)(lVar3 + -0x380);
  uVar31 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar3 + -0x760) = uVar38 ^ uVar42;
  uVar12 = DAT_182671cb4;
  uVar30 = (uVar28 ^ *(ulonglong *)(lVar3 + -0xa50)) -
           (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x68a0f1fe)) ^ CONCAT44(uVar13,uVar13));
  *(ulonglong *)(lVar3 + -0xda8) = uVar30 ^ uVar31;
  uVar13 = DAT_182671cc0;
  uVar17 = DAT_182671c50;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x408) = uVar30 - uVar38 ^ uVar29;
  uVar12 = DAT_182671dd0;
  uVar28 = CONCAT44(uVar13,uVar13);
  uVar30 = (CONCAT44(uVar8,uVar17) ^ 0x271147d20006000f) - (*(ulonglong *)(lVar3 + -0x3d8) ^ uVar28)
  ;
  *(ulonglong *)(lVar3 + -0x920) = uVar30 ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  uVar17 = DAT_182671ddc;
  uVar31 = CONCAT44(uVar12,uVar12);
  uVar30 = (*(ulonglong *)(lVar3 - (uVar20 ^ 0x89a3fa8e)) ^ uVar42) + uVar30 ^ uVar31;
  *(ulonglong *)(lVar3 + -0xa78) = uVar30;
  uVar38 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x71c6f7cc)) =
       *(ulonglong *)(lVar3 - (uVar36 ^ 0xd8eebc95)) ^ uVar38 ^ uVar31 ^ uVar26 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x5e8) =
       ((ulonglong)uVar17 << 0x1b | (ulonglong)(uVar17 >> 5)) ^ *(ulonglong *)(lVar3 + -0xb18) >> 5
       ^ uVar23;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x70c0fdc0)) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x408)) - (uVar38 ^ *(ulonglong *)(lVar3 + -0xb18));
  uVar12 = DAT_182671ea0;
  uVar30 = (uVar38 ^ *(ulonglong *)(lVar4 + -0xb18)) << 0x3b;
  uVar42 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar4 + -0x7e8) = uVar30 ^ uVar42;
  uVar13 = DAT_182671f3c;
  uVar46 = CONCAT44(uVar12,uVar12);
  puVar1 = (ulonglong *)(lVar4 + -0x30);
  *(ulonglong *)(lVar4 + -0xbd8) = (uVar30 | uVar23 ^ *(ulonglong *)(lVar4 + -0x5e8)) ^ uVar46;
  uVar48 = CONCAT44(uVar13,uVar13);
  uVar17 = DAT_182671c6c ^ 0xe2c855a5;
  *(ulonglong *)(lVar4 + -0x828) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x4b8)) -
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x6a971120)) ^ uVar46) ^ uVar48;
  *(uint *)(lVar4 + -0x94) = -0x34aed991 - uVar17;
  uVar30 = CONCAT44(DAT_182671d08,DAT_182671d08);
  puVar18 = (ulonglong *)(lVar4 - (uVar25 ^ 0x2850030));
  *puVar18 = uVar30 ^ uVar29 ^ uVar41 ^ *(ulonglong *)(lVar4 + -0x408) ^
             *(ulonglong *)(lVar4 + -0xc90);
  uVar24 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar30 ^ *puVar1) >> (((byte)DAT_182671c78 ^ 0x1d) & 0x3f) ^ uVar24;
  uVar30 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0xf8f9f9c8)) ^ uVar30) <<
           (((byte)DAT_182671c6c ^ 0xf5) & 0x3f);
  uVar26 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar4 + -0x380) = uVar30 ^ CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar17 = DAT_182671f54;
  uVar12 = DAT_182671e20;
  lVar3 = DAT_182671c40;
  uVar30 = *(ulonglong *)(lVar4 - (uVar47 ^ 0x9562e5f0)) ^ uVar24 | uVar30;
  uVar23 = (ulonglong)DAT_182671f54;
  uVar41 = uVar30 ^ uVar26;
  *(ulonglong *)(lVar4 + -0xb20) = uVar41;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x228) = (uVar29 ^ *(ulonglong *)(lVar4 + -0x408)) - uVar30 ^ uVar31;
  *(ulonglong *)(lVar3 - (uVar45 ^ 0xdff9f3a8)) =
       *(ulonglong *)(lVar3 - (uVar34 ^ 0xdc68f910)) ^ uVar48 ^ CONCAT44(uVar17,uVar17) ^ uVar26 ^
       uVar41;
  uVar12 = DAT_182671fb0;
  puVar21 = (ulonglong *)(lVar3 - (uVar25 ^ 0x2850a50));
  uVar34 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(lVar3 + -0xda8) =
       ((ulonglong)(uVar17 >> 0x17) | uVar23 << 9) ^ *puVar21 >> 0x17 ^ uVar34;
  uVar23 = CONCAT44(uVar12,uVar12);
  local_e0 = (byte)uVar10;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x78e10b32)) =
       (*(ulonglong *)(lVar3 + -0xa50) ^ CONCAT44(uVar17,uVar17)) << 0x29 ^ uVar23;
  uVar12 = DAT_182671d90;
  uVar41 = (*(ulonglong *)(lVar3 + -0xf0) ^ uVar24) >> ((local_e0 ^ 0xdb) & 0x3f);
  *(ulonglong *)(lVar3 + -0x760) = uVar41;
  uVar13 = DAT_182671ea8;
  lVar3 = DAT_182671c40;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0x228);
  uVar24 = *(ulonglong *)(DAT_182671c40 + -0xbd8);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x828);
  uVar23 = *(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x89a3f4ce)) ^ uVar23 |
           *(ulonglong *)(DAT_182671c40 + -0xda8) ^ uVar34;
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar23 ^ uVar26;
  uVar23 = (uVar48 ^ *puVar2) - uVar23;
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar48 = uVar23 ^ uVar34;
  uVar29 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(lVar3 + -0x510) = uVar48;
  uVar30 = uVar46 ^ uVar30 ^ uVar24 ^ uVar29 ^ uVar31;
  *(ulonglong *)(lVar3 + -0xb18) = uVar30;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x5e8) = (CONCAT44(uVar11,uVar27) ^ 0xbfb447ea9df81863) + uVar41;
  uVar12 = DAT_182671dcc;
  uVar17 = DAT_182671c50;
  uVar41 = (uVar29 ^ uVar30) >> (((byte)uVar43 ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar41 ^ CONCAT44(DAT_182671f84,DAT_182671f84);
  uVar29 = (uVar29 ^ uVar30) << (((byte)uVar17 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar4 + -0x4b8) = uVar29 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xc90) =
       (CONCAT44(uVar14,DAT_182671c64) ^ 0x45d1fd6c58a33031) <<
       ((*(byte *)(lVar4 - (uVar45 ^ 0xdff9fd40)) ^ (byte)uVar12) & 0x3f);
  uVar17 = DAT_182671c6c;
  uVar30 = *(ulonglong *)(lVar4 + -0x228);
  uVar24 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  uVar29 = uVar29 | uVar41;
  uVar41 = uVar29 ^ uVar24;
  *puVar1 = uVar41;
  uVar12 = DAT_182671d44;
  *(ulonglong *)(lVar4 + -0x380) = (uVar30 ^ uVar31) - uVar29 ^ uVar42;
  uVar13 = DAT_182671ed0;
  lVar3 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671da8;
  uVar31 = CONCAT44(DAT_182671da8,DAT_182671da8);
  uVar34 = uVar41 ^ uVar48 ^ uVar31 ^ uVar24 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x408) = uVar34;
  uVar41 = (uVar34 >> 0x20 ^ uVar30) >> 0x14;
  uVar34 = (uVar34 ^ uVar31) << (((byte)uVar17 ^ 0xe2) & 0x3f);
  uVar24 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 + -0xb20) = uVar41 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xa50) = uVar34 ^ uVar44;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar30 = *(ulonglong *)(lVar3 + -0xa50);
  *(ulonglong *)(lVar4 + -0xf0) = (uVar34 | uVar41) ^ uVar29;
  uVar12 = DAT_182671f50;
  uVar46 = CONCAT44(DAT_182671f20,DAT_182671f20);
  *(ulonglong *)(lVar3 + -0xda8) =
       uVar23 - (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xdc68f1c8)) ^ uVar29) ^ uVar46;
  *(ulonglong *)(lVar3 + -0x920) =
       (uVar44 ^ uVar30) >> ((byte)*(undefined8 *)(lVar3 - ((ulonglong)uVar17 ^ 0x52c2ee7e)) & 0x3f)
  ;
  uVar9 = DAT_182671c80;
  uVar24 = CONCAT44(uVar12,uVar12);
  uVar41 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x6a9712d0)) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0x89a3f796)) ^ *(ulonglong *)(lVar3 - (uVar47 ^ 0x9562e680))
       ^ uVar42 ^ uVar24 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xbd8) =
       CONCAT44(uVar10,uVar27) ^ *(ulonglong *)(lVar3 + -0x408) ^ uVar31 ^ 0x911d33911baf5e5b;
  uVar17 = DAT_182671c4c;
  uVar31 = (ulonglong)DAT_182671c4c;
  DAT_182671c94 = DAT_182671c4c - uVar9;
  uVar23 = (ulonglong)DAT_182671c94;
  uVar26 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar30 = CONCAT44(uVar9,DAT_182671c4c);
  *(ulonglong *)(lVar3 + -0x760) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0xaeabf676)) ^ uVar24) >> (((byte)uVar9 ^ 0xc6) & 0x3f) ^
       uVar26;
  *(ulonglong *)(lVar3 + -0x5e8) = (uVar30 ^ 0x3f0f60ab8ca45970) + 0xc179a6d5ed452d71;
  uVar12 = DAT_182671e90;
  uVar30 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar3 + -0xb18) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x828)) << (((byte)uVar17 ^ 0x59) & 0x3f) ^ uVar30;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xf8fffe17)) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0xb5ac033f)) ^ uVar26 |
       *(ulonglong *)(lVar3 - (uVar36 ^ 0xd8eeb335)) ^ uVar30) ^ uVar34;
  uVar12 = DAT_182671f48;
  lVar4 = DAT_182671c40;
  uVar24 = CONCAT44(DAT_182671f40,DAT_182671f40);
  *(ulonglong *)(lVar3 + -0x4b8) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0x380)) - (uVar34 ^ *(ulonglong *)(lVar3 + -0x7e8)) ^
       uVar24;
  uVar30 = uVar28 ^ *(ulonglong *)(lVar4 + -0xda8) ^ uVar34 ^ uVar46 ^
           *(ulonglong *)(lVar4 + -0x7e8);
  *(ulonglong *)(lVar4 + -0x228) = uVar30;
  uVar34 = (uVar28 ^ uVar30) >> (((byte)uVar5 ^ 0x36) & 0x3f);
  *puVar1 = uVar34 ^ CONCAT44(uVar12,uVar12);
  lVar3 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar26 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(DAT_182671c40 + -0xb20) =
       (*(ulonglong *)(lVar4 - (uVar40 ^ 0x78e1003a)) ^ uVar28) <<
       (((byte)DAT_182671c50 ^ 0xca) & 0x3f) ^ uVar30;
  uVar27 = DAT_182671f08;
  uVar12 = DAT_182671d0c;
  uVar40 = (ulonglong)DAT_182671f08;
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0xf8fff2df)) ^ uVar30 | uVar34) ^ uVar26;
  uVar13 = DAT_182671d8c;
  uVar30 = (*(ulonglong *)(lVar3 + -0xda8) ^ uVar46) -
           (CONCAT44(DAT_182671c98,DAT_182671c98) ^ *(ulonglong *)(lVar3 + -0x680));
  *(ulonglong *)(lVar3 + -0x920) = uVar30 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671df0;
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xc90) =
       uVar30 - (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xaeabfb4e)) ^ uVar26) ^ uVar41;
  lVar3 = DAT_182671c40;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xb5ac0e0f)) =
       (CONCAT44(uVar17,uVar9) ^ 0x707deced4f6794e3) +
       (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x2b0)) ^ uVar30;
  uVar32 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar3 + -0xa78) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0x510)) - (*puVar21 ^ uVar30) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar45 ^ 0xdff9fdf0)) =
       *(ulonglong *)(lVar3 + -0xf0) ^ *(ulonglong *)(lVar3 + -0x4b8) ^ CONCAT44(uVar27,uVar27) ^
       uVar24 ^ uVar29;
  uVar9 = DAT_182671c78;
  *(int *)(lVar3 + -0x644) = *(int *)(lVar3 + -0x54) << (((byte)DAT_182671c70 ^ 0x27) & 0x1f);
  uVar12 = DAT_182671e5c;
  uVar28 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar3 + -0xbd8) =
       ((ulonglong)(uVar27 >> 0x10) | uVar40 << 0x10) ^ *(ulonglong *)(lVar3 + -0x408) >> 0x10 ^
       uVar28;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x5e8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xdc68f530)) ^ CONCAT44(uVar27,uVar27)) <<
       (((byte)uVar8 ^ 0x1d) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar3 - (uVar47 ^ 0x9562ed28)) =
       CONCAT44(uVar11,uVar7) ^ *(ulonglong *)(lVar3 + -0xa78) ^ uVar32 ^ 0x9c9d5f83b57df10e;
  uVar40 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar3 + -0x760) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xaeabf586)) ^ uVar28 |
       *(ulonglong *)(lVar3 + -0x5e8) ^ uVar30) ^ uVar40;
  *(uint *)(lVar3 + -0x634) = *(int *)(lVar3 - (uVar36 ^ 0xd8eebf41)) * (DAT_182671c88 ^ 0x2fa33955)
  ;
  uVar8 = DAT_182671c6c;
  uVar30 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar3 + -0xb18) =
       (*(ulonglong *)(lVar3 + -0x4b8) ^ uVar24) - (uVar33 ^ *(ulonglong *)(lVar3 + -0xa60)) ^
       uVar30;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x2850380)) =
       (CONCAT44(uVar8,DAT_182671c64) ^ 0x52fa20e89f80584c) -
       (CONCAT44(uVar17,DAT_182671c50) ^ 0x5b1e825e117056ab);
  uVar12 = DAT_182671dfc;
  uVar36 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar4 + -0x7e8) =
       (uVar30 ^ *(ulonglong *)(lVar4 + -0xb18)) - (uVar40 ^ *(ulonglong *)(lVar4 + -0x760)) ^
       uVar36;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x89a3ffc6)) =
       (CONCAT44(uVar5,uVar43) ^ 0x23970ec7871efdea) -
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x6a971270)) ^ uVar38) ^ uVar30;
  *puVar18 = CONCAT44(uVar14,uVar10) ^ 0x75a29ba70e3f53b4 | uVar40 ^ *(ulonglong *)(lVar4 + -0x760);
  uVar5 = DAT_182671cb0;
  uVar35 = (ulonglong)DAT_182671cb0;
  uVar24 = CONCAT44(DAT_182671d98,DAT_182671d98);
  uVar30 = (*(ulonglong *)(lVar4 + -0x228) ^ uVar30) + (uVar40 ^ *(ulonglong *)(lVar4 + -0x760)) ^
           uVar24;
  *(ulonglong *)(lVar4 + -0xb20) = uVar30;
  uVar12 = DAT_182671e88;
  uVar25 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar4 + -0xda8) =
       *(ulonglong *)(lVar4 - (uVar22 ^ 0xf8f9f568)) ^ uVar25 ^ uVar30 ^ uVar24 ^ uVar41;
  uVar40 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x70c0f1f0)) =
       *(ulonglong *)(lVar4 - (uVar31 ^ 0xaeabf3f6)) >> 0x20 ^ uVar40 ^ uVar35;
  uVar12 = DAT_182671ca0;
  uVar30 = (uVar25 ^ *(ulonglong *)(lVar4 + -0xda8)) << (((byte)uVar9 ^ 0x18) & 0x3f);
  *(ulonglong *)(lVar4 + -0x510) = uVar30 ^ CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar13 = DAT_182671cb8;
  uVar30 = uVar40 ^ *(ulonglong *)(lVar4 + -0x920) | uVar30;
  *(ulonglong *)(lVar4 + -0xf0) = uVar30 ^ CONCAT44(uVar12,uVar12);
  uVar24 = CONCAT44(uVar13,uVar13);
  uVar28 = (uVar41 ^ *(ulonglong *)(lVar4 + -0xc90)) - uVar30 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x408) = uVar28;
  uVar12 = DAT_182671d94;
  *(ulonglong *)(lVar4 + -0x828) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x920)) - (CONCAT44(uVar11,uVar11) ^ 0xd16d146fcc22fc2);
  uVar25 = CONCAT44(uVar12,uVar12);
  uVar32 = *(ulonglong *)(lVar4 - (uVar47 ^ 0x9562e2e8)) ^ *(ulonglong *)(lVar4 + -0xa78) ^ uVar25 ^
           uVar36 ^ uVar32;
  uVar39 = CONCAT44(DAT_182671de4,DAT_182671de4);
  *(ulonglong *)(lVar4 + -0xbd8) = uVar32;
  uVar12 = DAT_182671d34;
  uVar35 = (uVar32 ^ uVar25) >> ((local_e0 ^ 0xf4) & 0x3f);
  uVar30 = CONCAT44(DAT_182671f60,DAT_182671f60);
  uVar25 = (uVar25 ^ uVar32) << (((byte)uVar6 ^ 0xd8) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa60) = uVar25 ^ CONCAT44(DAT_182671d10,DAT_182671d10);
  *(ulonglong *)(lVar4 + -0x5e8) = uVar35 ^ uVar39;
  uVar25 = uVar25 | uVar35;
  uVar35 = uVar25 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x4b8) = uVar35;
  *(ulonglong *)(lVar4 + -0x380) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x7e8)) - uVar25 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182671e40;
  *(ulonglong *)(lVar4 + -0xb18) = uVar37 ^ uVar30 ^ uVar35 ^ uVar28 ^ uVar24;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar45 ^ 0xdff9f2e0)) ^ uVar37) >>
            (((byte)uVar7 ^ 0xc2) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar15;
  return;
}



############ FUN_ 180f90a40 size=5091 ############

void FUN_180f90a40(void)

{
  ulonglong *puVar1;
  uint uVar2;
  uint uVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_d8;
  
  uVar8 = DAT_182671eec;
  uVar11 = DAT_182671e84;
  uVar12 = DAT_182671e04;
  uVar9 = DAT_182671c90;
  uVar7 = DAT_182671c5c;
  lVar5 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c90;
  uVar27 = DAT_182671c90 | DAT_182671c5c;
  uVar30 = (ulonglong)DAT_182671e04;
  uVar2 = *(uint *)(&DAT_182613218 + DAT_182672244);
  uVar3 = DAT_182671eec >> 0x10;
  uVar13 = *(uint *)(&DAT_182613220 + DAT_182672244) ^ DAT_182671c90;
  uVar14 = DAT_182671db4 * DAT_182671e04 & 0xff;
  uVar18 = DAT_182671db4 * DAT_182671e04 * 0x100;
  DAT_182671db8 = ((uVar18 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar35 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar34 = (ulonglong)DAT_182671db8;
  uVar23 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar26 = CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar48 = *(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar35 |
           uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0x228);
  uVar20 = CONCAT44(DAT_182671db4,DAT_182671db4);
  DAT_182671c50 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar48 ^ uVar26;
  uVar10 = DAT_182671dd4;
  uVar24 = (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar5 + -0xb18)) - uVar48 ^ uVar20;
  uVar36 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar5 + -0xa50) = uVar24;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar51 = CONCAT44(uVar10,uVar10);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar16 = *puVar1;
  uVar15 = uVar3 & 0xff;
  uVar37 = uVar36 ^ uVar16 ^ uVar21 ^ uVar51 ^ *(ulonglong *)(DAT_182671c40 + -0x920);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar37;
  DAT_182671e34 = ((uVar3 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar36 = (ulonglong)uVar7;
  bVar17 = (byte)uVar9;
  uVar41 = CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar31 = (uVar37 ^ uVar21) >> ((bVar17 ^ 0x32) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar31 ^ uVar41;
  uVar22 = (ulonglong)uVar27;
  uVar37 = (uVar21 ^ uVar37) << ((bVar17 ^ 0xe) & 0x3f);
  uVar43 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar37 ^ uVar43;
  lVar5 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar37 = (uVar31 | uVar37) ^ uVar38;
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar37;
  uVar10 = DAT_182671d1c;
  puVar32 = (ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x5e585c91));
  uVar37 = uVar24 ^ uVar38 ^ uVar43 ^ uVar20 ^ uVar37;
  uVar31 = (uVar16 ^ uVar51) - (uVar38 ^ *puVar32) ^ uVar26;
  uVar39 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar24 = (uVar37 >> 0x20 ^ (ulonglong)uVar8) >> 0xe;
  *(ulonglong *)(lVar5 + -0xb18) = uVar31;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 + -0x920) = uVar37;
  *puVar1 = uVar24 ^ uVar39;
  uVar16 = (uVar43 ^ uVar37) << 0x12;
  *(ulonglong *)(lVar5 + -0x228) = uVar16 ^ uVar28;
  lVar5 = DAT_182671c40;
  uVar16 = uVar16 | uVar24;
  uVar48 = uVar48 ^ uVar31;
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar16 ^ uVar41;
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar22 ^ 0xdf7c75ed)) ^ uVar20) - uVar16 ^ uVar26;
  *(uint *)(lVar5 + -0x784) = (uVar7 ^ 0xb6528b05) * (uVar9 ^ 0xc1a26ae5);
  *(ulonglong *)(lVar5 + -0x228) = uVar48;
  *(ulonglong *)(lVar5 + -0xa50) =
       (uVar34 << 0x14 | (ulonglong)(((uVar18 & 0xffff | uVar14) << 8 | uVar14) >> 4)) ^
       uVar48 >> 0xc ^ uVar41;
  puVar40 = (ulonglong *)(lVar5 - (uVar22 ^ 0xdf7c7bb5));
  *puVar40 = (uVar26 ^ uVar48) << (((byte)uVar7 ^ 0x8d) & 0x3f) ^ uVar28;
  puVar19 = (ulonglong *)(lVar5 - (uVar29 ^ 0xd32c2d74));
  uVar48 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar16 = uVar41 ^ *puVar19 | *(ulonglong *)(lVar5 + -0x408) ^ uVar28;
  *(ulonglong *)(lVar5 + -0x228) = uVar16 ^ uVar48;
  uVar3 = DAT_182671c74;
  *(ulonglong *)(lVar5 + -0xa50) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0xdf7c74a5)) ^ uVar26) - uVar16 ^ uVar28;
  *(int *)(lVar5 - ((ulonglong)uVar3 ^ 0xe4144da)) =
       0x2c74a0d1 << ((byte)*(undefined4 *)(lVar5 + -0x9dc) & 0x1f);
  uVar10 = DAT_182671e28;
  uVar8 = DAT_182671c68;
  uVar16 = uVar48 ^ uVar38 ^ uVar26 ^ *puVar32 ^ *puVar1;
  *(ulonglong *)(lVar5 + -0x408) = uVar16;
  uVar3 = DAT_182671c60;
  lVar5 = DAT_182671c40;
  uVar37 = CONCAT44(uVar10,uVar10);
  bVar4 = (byte)uVar27;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0x363e4546)) =
       (uVar16 ^ uVar38) >> ((bVar4 ^ 0xa4) & 0x3f) ^ uVar37;
  lVar6 = DAT_182671c40;
  uVar46 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar3 ^ 0xa1a7a54e)) =
       ((*(ulonglong *)(lVar5 + -0x408) ^ uVar38) << ((bVar17 ^ 3) & 0x3f) |
       uVar37 ^ *(ulonglong *)(lVar5 + -0xb18)) ^ uVar46;
  *(undefined8 *)(lVar5 + -0xb18) = 0x58a02aea738da400;
  uVar37 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar24 = (uVar26 ^ *puVar1) - (uVar37 ^ *(ulonglong *)(lVar5 + -0xd88));
  *(ulonglong *)(lVar5 + -0x228) = uVar24 ^ uVar39;
  uVar3 = DAT_182671c7c;
  lVar5 = DAT_182671c40;
  puVar33 = (ulonglong *)(lVar6 - ((ulonglong)DAT_182671c7c ^ 0x156dd074));
  uVar16 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (uVar39 ^ *puVar33) + (uVar46 ^ *(ulonglong *)(DAT_182671c40 + -0x408));
  uVar11 = DAT_182671e78;
  puVar42 = (ulonglong *)(lVar5 - (uVar16 ^ 0x9e3feaff));
  uVar16 = *(ulonglong *)(lVar5 + -0x408);
  *puVar1 = uVar24 - (uVar46 ^ *puVar42) ^ uVar21;
  uVar10 = DAT_182671c98;
  uVar47 = CONCAT44(uVar11,uVar11);
  uVar24 = (*(ulonglong *)(lVar5 - (uVar36 ^ 0x5e585c09)) ^ uVar35) +
           (*(ulonglong *)(lVar5 + -0x4b8) ^ uVar47);
  *(ulonglong *)(lVar5 + -0xf0) = uVar24 ^ uVar26;
  uVar52 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c54 ^ 0xfa9288e6)) =
       (uVar46 ^ uVar16) - uVar24 ^ uVar52;
  uVar8 = DAT_182671c8c;
  lVar6 = DAT_182671c40;
  puVar25 = (ulonglong *)(lVar5 - (uVar29 ^ 0xd32c232c));
  *puVar25 = (uVar39 ^ *(ulonglong *)(lVar5 + -0x228)) >>
             (((byte)uVar10 ^ *(byte *)(lVar5 + -0x888)) & 0x3f);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xbeb99e7a)) =
       *(ulonglong *)(lVar6 - (uVar36 ^ 0x5e5854e9)) ^ uVar28 ^ uVar41 ^ uVar23 ^
       *(ulonglong *)(DAT_182671c40 + -0x920);
  uVar10 = DAT_182671de4;
  uVar18 = DAT_182671c88;
  uVar14 = DAT_182671c68;
  lVar6 = DAT_182671c40;
  uVar49 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar34 = (ulonglong)DAT_182671c88;
  puVar32 = (ulonglong *)(lVar5 + -0xc90);
  uVar16 = (*(ulonglong *)(DAT_182671c40 + -0x408) ^ uVar23) << ((bVar17 ^ 0x3b) & 0x3f);
  uVar23 = (*(ulonglong *)(lVar5 + -0x408) >> 0x20 ^ (ulonglong)DAT_182671eb4) >> 1;
  *(ulonglong *)(lVar5 + -0x920) = uVar23 ^ uVar49;
  uVar29 = CONCAT44(uVar10,uVar10);
  *puVar32 = uVar16 ^ uVar29;
  uVar24 = CONCAT44(uVar9,DAT_182671c58);
  *puVar40 = (uVar23 | uVar16) ^ uVar43;
  uVar8 = DAT_182671c84;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar3 ^ 0x156ddb7c)) =
       (uVar24 ^ 0x1d450b64bb46c1ed) + (uVar52 ^ *(ulonglong *)(lVar6 + -0x888));
  uVar10 = DAT_182671db0;
  uVar50 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar6 + -0x920) =
       ((*(ulonglong *)(lVar6 - (uVar34 ^ 0x31160457)) ^ uVar28) -
       (*(ulonglong *)(lVar6 + -0xa08) ^ uVar29)) - (*(ulonglong *)(lVar6 + -0x408) ^ uVar43) ^
       uVar50;
  uVar11 = DAT_182671df0;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar44 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar23 = (CONCAT44(uVar8,uVar7) ^ 0x31160e07a1a7a156) - (*(ulonglong *)(lVar6 + -0x5e8) ^ uVar24);
  *(ulonglong *)(lVar6 + -0xa50) = uVar23 ^ uVar44;
  lVar5 = DAT_182671c40;
  uVar45 = CONCAT44(uVar11,uVar11);
  uVar23 = uVar23 + (*(ulonglong *)(lVar6 + -0x408) ^ uVar43);
  uVar16 = *(ulonglong *)(DAT_182671c40 + -0x228);
  *puVar32 = uVar23 ^ uVar45;
  uVar3 = DAT_182671dfc;
  uVar34 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c84 ^ 0xcee9f5f0)) = (uVar39 ^ uVar16) + uVar23;
  uVar9 = DAT_182671c6c;
  uVar31 = CONCAT44(uVar3,uVar3);
  *puVar42 = *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x23af18b2)) ^ uVar31 ^ uVar45 ^ uVar21 ^
             *puVar32;
  uVar15 = DAT_182671c80;
  bVar17 = (byte)DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xdf7c7d95)) =
       ((ulonglong)uVar3 << 0x1b | (ulonglong)(uVar3 >> 5)) ^
       *(ulonglong *)(DAT_182671c40 + -0x408) >> 5 ^ uVar26;
  uVar23 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0x408)) << ((bVar17 ^ 0x8c) & 0x3f) ^ uVar23;
  uVar3 = DAT_182671c70;
  lVar5 = DAT_182671c40;
  local_d8 = (byte)uVar11;
  uVar16 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (CONCAT44(DAT_182671c8c,uVar18) ^ 0x34ae12f5e999014) >>
       ((local_d8 ^ *(byte *)puVar32) & 0x3f);
  uVar10 = DAT_182671e24;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0x408) =
       (*(ulonglong *)(lVar5 - (uVar16 ^ 0xc9b9ba41)) ^ uVar23 |
       uVar26 ^ *(ulonglong *)(lVar5 + -0x228)) ^ uVar51;
  uVar8 = DAT_182671c78;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar16 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c78 ^ 0xb27d3d01)) =
       (uVar21 ^ *puVar1) - (uVar51 ^ *puVar25) ^ uVar23;
  *(ulonglong *)(lVar6 - (uVar16 ^ 0x836b3c4e)) =
       uVar50 ^ uVar29 ^ uVar52 ^ *(ulonglong *)(lVar6 + -0x920) ^ *(ulonglong *)(lVar6 + -0x888);
  uVar35 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar6 + -0xb18) =
       (uVar29 ^ *(ulonglong *)(lVar6 + -0x3d8)) >> ((bVar4 ^ 0x98) & 0x3f) ^ uVar35;
  lVar5 = DAT_182671c40;
  puVar25 = (ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xd32c2cfc));
  *puVar25 = (CONCAT44(DAT_182671c64,DAT_182671c64) ^ 0x293c65d05b2e8644) <<
             (((byte)uVar3 ^ 0x7d) & 0x3f);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xb27d3919)) =
       (uVar29 ^ *(ulonglong *)(lVar5 + -0x3d8)) << 0x1b ^ uVar28;
  uVar3 = DAT_182671c94;
  uVar34 = uVar28 ^ *(ulonglong *)(lVar5 + -0x888) | uVar35 ^ *(ulonglong *)(lVar5 + -0xb18);
  uVar16 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar5 + -0x228) = uVar34 ^ uVar21;
  *puVar1 = *(ulonglong *)(lVar5 - (uVar16 ^ 0xa1a7add6)) ^ CONCAT44(uVar8,DAT_182671c74) ^ uVar23 ^
            0x651f674f671cd0b1;
  lVar5 = DAT_182671c40;
  uVar16 = CONCAT44(DAT_182671c54,uVar3);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (uVar50 ^ *(ulonglong *)(DAT_182671c40 + -0x920)) - uVar34 ^ uVar41;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c84 ^ 0xcee9fae0)) =
       uVar16 ^ uVar44 ^ *(ulonglong *)(lVar5 + -0xa50) ^ 0xb7460beb00d83c08;
  uVar16 = *(ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0xfff7fd9f)) ^ uVar47 ^ uVar21 ^ *puVar32 ^
           uVar23;
  *(ulonglong *)(lVar5 + -0x888) = uVar16;
  uVar34 = (uVar47 ^ uVar16) >> (((byte)uVar7 ^ 0xae) & 0x3f);
  uVar16 = (ulonglong)DAT_182671c4c;
  *puVar1 = uVar34 ^ uVar52;
  uVar8 = DAT_182671ea4;
  uVar10 = DAT_182671e74;
  lVar5 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671ea4;
  uVar16 = (*(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0x9e3fe67f)) ^ uVar47) <<
           (((byte)DAT_182671c68 ^ 0x77) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar16 ^ uVar26;
  uVar44 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 + -0xa50) = (uVar34 | uVar16) ^ uVar44;
  uVar15 = DAT_182671c74;
  uVar3 = DAT_182671c48;
  uVar16 = CONCAT44(DAT_182671c74,uVar9);
  uVar34 = (*(ulonglong *)(lVar5 - (uVar22 ^ 0xdf7c732d)) ^ uVar23) - (uVar44 ^ *puVar19) ^ uVar24;
  *(ulonglong *)(lVar5 + -0xb18) = uVar34;
  uVar26 = CONCAT44(uVar8,uVar8);
  uVar43 = *(ulonglong *)(lVar5 - (uVar36 ^ 0x5e585d61)) ^ *(ulonglong *)(lVar5 + -0x408) ^ uVar41 ^
           uVar51;
  uVar36 = uVar43 ^ uVar26;
  *(ulonglong *)(lVar5 + -0x228) = uVar36;
  uVar8 = DAT_182671c60;
  *(ulonglong *)(lVar5 + -0x888) = (uVar16 ^ 0xffdc2245a721f5d2) << (((byte)uVar3 ^ 0x78) & 0x3f);
  uVar29 = (uVar36 >> 0x20 ^ uVar28) >> 8;
  *puVar1 = uVar29 ^ uVar50;
  lVar5 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar36 = (ulonglong)DAT_182671c54;
  uVar47 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar43 << (((byte)uVar8 ^ 0x5e) & 0x3f) ^ uVar22;
  uVar10 = DAT_182671cc0;
  uVar16 = *(ulonglong *)(lVar5 + -0x3d8);
  uVar29 = *(ulonglong *)(lVar5 - (uVar36 ^ 0xfa92894e)) ^ uVar22 | uVar29;
  uVar36 = uVar29 ^ uVar47;
  *puVar32 = uVar36;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar34 = uVar24 ^ uVar39 ^ uVar36 ^ uVar47 ^ uVar34;
  *(ulonglong *)(lVar5 + -0x888) = uVar34;
  uVar3 = DAT_182671c70;
  *(ulonglong *)(lVar5 + -0x408) = (uVar16 ^ uVar41) - uVar29 ^ uVar28;
  *(ulonglong *)(lVar5 + -0x228) = (uVar39 ^ uVar34) >> (((byte)uVar3 ^ 0x6d) & 0x3f) ^ uVar20;
  lVar6 = DAT_182671c40;
  puVar19 = (ulonglong *)(lVar5 - ((ulonglong)DAT_182671c88 ^ 0x3116068f));
  uVar34 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  puVar40 = (ulonglong *)(lVar5 - ((ulonglong)DAT_182671c4c ^ 0x9e3fe52f));
  *puVar40 = (uVar39 ^ *puVar19) << (((byte)uVar9 ^ 0x28) & 0x3f) ^ uVar34;
  uVar16 = *puVar1;
  uVar36 = uVar20 ^ *puVar33 | uVar16 ^ uVar34;
  *(ulonglong *)(lVar6 + -0x920) = uVar36 ^ uVar34;
  uVar8 = DAT_182671c84;
  uVar20 = (uVar24 ^ *(ulonglong *)(lVar6 + -0xb18)) - uVar36 ^ uVar46;
  uVar24 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar6 + -0x3d8) = uVar20;
  uVar3 = DAT_182671c54;
  uVar36 = *(ulonglong *)(lVar6 + -0xa50);
  uVar22 = *(ulonglong *)(lVar6 + -0x408);
  *puVar32 = (uVar16 ^ uVar34) >> (((byte)uVar8 ^ 0xdb) & 0x3f);
  uVar22 = uVar48 ^ uVar36 ^ uVar22 ^ uVar28 ^ uVar44;
  *(ulonglong *)(lVar6 + -0x888) = uVar22;
  uVar16 = (ulonglong)DAT_182671c80;
  *(longlong *)(lVar6 + -0x228) = -0x29b81926510e3a04 << (((byte)uVar3 ^ 0x6f) & 0x3f);
  uVar8 = DAT_182671c8c;
  uVar3 = DAT_182671c88;
  uVar29 = CONCAT44(uVar15,DAT_182671c8c);
  bVar17 = (byte)DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 + -0xb18) =
       (*(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0xfff7f73f)) ^ uVar48) >> ((bVar17 ^ 0x4b) & 0x3f)
       ^ uVar37;
  *puVar32 = (CONCAT44(DAT_182671c60,DAT_182671c7c) ^ 0x99567e51e599105f) <<
             (((byte)uVar3 ^ 0x25) & 0x3f);
  lVar5 = DAT_182671c40;
  uVar36 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar16 = (ulonglong)DAT_182671c68;
  *puVar1 = (uVar48 ^ uVar22) << ((bVar4 ^ 0xba) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar5 + -0xa50) =
       (*(ulonglong *)(lVar5 - (uVar16 ^ 0x363e4586)) ^ uVar36 |
       *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xbeb9916a)) ^ uVar37) ^ uVar49;
  uVar22 = CONCAT44(uVar7,DAT_182671c58);
  uVar16 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar5 + -0x228) =
       (*(ulonglong *)(lVar5 + -0x408) ^ uVar28) -
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c58 ^ 0x836b35c6)) ^ uVar49) ^ uVar35;
  uVar16 = *(ulonglong *)(lVar5 - (uVar16 ^ 0x9e3fe4a7)) ^ uVar49 ^ uVar46 ^ uVar20 ^ uVar21;
  *puVar32 = uVar16;
  *puVar19 = (uVar30 << 0x12 | (ulonglong)(uVar12 >> 0xe)) ^ uVar16 >> 0xe ^ uVar51;
  lVar5 = DAT_182671c40;
  *puVar40 = (CONCAT44(uVar14,DAT_182671c94) ^ 0xfb055f5818ca8200) + (uVar29 ^ 0x7efd180b95ae16f5);
  uVar16 = *puVar32;
  uVar36 = *(ulonglong *)(lVar5 + -0x3d8);
  *(ulonglong *)(lVar5 + -0xa50) = -0x3e46ee631e877a0c - (uVar22 ^ 0xe0b322b078289043);
  uVar22 = (uVar21 ^ uVar16) << (bVar17 & 0x3f);
  *(ulonglong *)(lVar5 + -0x408) = uVar22 ^ uVar45;
  uVar22 = *(ulonglong *)(lVar5 - (uVar24 ^ 0xcee9f970)) ^ uVar51 | uVar22;
  uVar24 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar16 = *(ulonglong *)(lVar5 + -0xb20);
  *puVar1 = uVar22 ^ uVar31;
  *puVar32 = (uVar46 ^ uVar36) - (uVar16 ^ uVar23) ^ uVar24;
  uVar11 = DAT_182671e58;
  uVar37 = (*(ulonglong *)(lVar5 + -0x960) ^ uVar44) + (uVar37 ^ *(ulonglong *)(lVar5 + -0xd88));
  *(ulonglong *)(lVar5 + -0xa50) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c64 ^ 0xf8f1e55e)) ^ uVar24) - uVar22 ^ uVar38;
  uVar16 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar5 + -0x888) = uVar37 ^ uVar24;
  uVar10 = DAT_182671cdc;
  uVar36 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar5 + -0x408) =
       **(ulonglong **)(lVar5 - (uVar16 ^ 0xa1a7a72e)) ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar36 ^ 0xfa9283b6)) =
       (uVar31 ^ *puVar25) - uVar37 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c4c ^ 0x9e3fe267)) =
       *(ulonglong *)(lVar5 - (uVar36 ^ 0xfa928246)) ^ *(ulonglong *)(lVar5 + -0x920) ^ uVar34;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c48 ^ 0xca808460)) =
       ((ulonglong)(DAT_182671fa4 >> 0x10) | (ulonglong)DAT_182671fa4 << 0x10) ^ *puVar32 >> 0x10 ^
       uVar26;
  *puVar1 = (*puVar32 ^ uVar35) << 0x30 ^ uVar47;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar13 * 4) = uVar2 ^ uVar27;
  return;
}



############ FUN_ 180fac960 size=4565 ############

void FUN_180fac960(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  longlong *plVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  uint uVar48;
  byte local_res20;
  byte local_c0;
  byte local_90;
  ulonglong uVar49;
  
  uVar13 = DAT_182671c94;
  uVar11 = DAT_182671c7c;
  uVar9 = DAT_182671c74;
  uVar7 = DAT_182671c68;
  uVar6 = DAT_182671c5c;
  uVar5 = DAT_182671c54;
  uVar3 = DAT_182671c48;
  lVar1 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671c74;
  uVar45 = (ulonglong)DAT_182671c5c;
  uVar25 = (ulonglong)DAT_182671c48;
  uVar31 = (ulonglong)DAT_182671c94;
  uVar48 = DAT_182671c5c - DAT_182671c70;
  uVar49 = (ulonglong)uVar48;
  uVar24 = (ulonglong)DAT_182671c7c;
  uVar43 = DAT_182671c68 ^ DAT_182671c84;
  uVar46 = DAT_182671c48 & DAT_182671c7c;
  uVar27 = DAT_182671c94 | DAT_182671c54;
  DAT_182671c8c =
       (DAT_182671c74 << 0x10 | DAT_182671c74 & 0xff00) << 8 | DAT_182671c74 >> 8 & 0xff00 |
       DAT_182671c74 >> 0x18;
  uVar16 = *(uint *)(&DAT_182613218 + DAT_182672298) ^ DAT_182671c8c;
  uVar17 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c74 ^ 0xb3d7275f) + (longlong)DAT_182672298) ^
           DAT_182671c74;
  uVar34 = CONCAT44(DAT_182671f34,DAT_182671f34);
  DAT_182671c4c = uVar48;
  DAT_182671c64 = uVar46;
  DAT_182671c80 = uVar43;
  DAT_182671c90 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (CONCAT44(DAT_182671e6c,DAT_182671e6c) ^ *(ulonglong *)(DAT_182671c40 + -0xc18)) -
       (CONCAT44(DAT_182671e24,DAT_182671e24) ^ *(ulonglong *)(DAT_182671c40 + -0xb20)) ^ uVar34;
  uVar14 = DAT_182671f78;
  uVar29 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar20 = (ulonglong)uVar7;
  *(uint *)(lVar1 + -0xae4) = (uVar43 ^ 0xb0e14a5c) << (((byte)DAT_182671c84 ^ 0x76) & 0x1f);
  uVar15 = DAT_182671f38;
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar33 = (ulonglong)uVar5;
  *(ulonglong *)(lVar1 + -0x408) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0xc1622a01)) ^ uVar34) -
       (uVar29 ^ *(ulonglong *)(lVar1 + -0xa08)) ^ uVar22;
  uVar14 = DAT_182671da4;
  puVar35 = (ulonglong *)(lVar1 - (uVar33 ^ 0x88821ab0));
  uVar38 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar1 + -0x228) =
       (*puVar35 ^ uVar29) - (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar1 + -0x888)) ^ uVar38;
  lVar1 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar44 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar29 = *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x23af18b2)) ^ CONCAT44(uVar14,uVar14) ^ uVar44
           ^ uVar39 ^ *(ulonglong *)(DAT_182671c40 + -0xc90);
  *(ulonglong *)(DAT_182671c40 + -0xda8) = uVar29;
  uVar34 = (ulonglong)uVar27;
  uVar30 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0xcee9f410)) =
       (uVar29 ^ uVar39) >> (((byte)uVar3 ^ 0x89) & 0x3f) ^ uVar30;
  uVar40 = (uVar39 ^ *(ulonglong *)(lVar1 + -0xda8)) << (((byte)uVar48 ^ 0x61) & 0x3f);
  uVar47 = CONCAT44(DAT_182671d88,DAT_182671d88);
  uVar26 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar1 + -0x920) = uVar40 ^ uVar47;
  uVar39 = CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar36 = uVar40 | uVar30 ^ *(ulonglong *)(lVar1 + -0x5e8);
  uVar30 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *(ulonglong *)(lVar1 + -0xa78) = uVar36 ^ uVar26;
  *(ulonglong *)(lVar1 + -0xd88) =
       (uVar44 ^ *(ulonglong *)(lVar1 + -0xc90)) - (*(ulonglong *)(lVar1 + -0xf0) ^ uVar39) ^ uVar30
  ;
  uVar29 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(lVar1 + -0x4b8) = uVar40 - (CONCAT44(uVar6,DAT_182671c70) ^ 0xdba7168338837a37);
  lVar2 = DAT_182671c40;
  uVar28 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar23 = (*(ulonglong *)(lVar1 - (uVar29 ^ 0x38e014f1)) ^ uVar30) -
           (*(ulonglong *)(lVar1 - (uVar20 ^ 0xc1622049)) ^ uVar26);
  uVar30 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(ulonglong *)(lVar1 + -0xa50) = uVar23 ^ uVar28;
  uVar15 = DAT_182671f30;
  uVar42 = CONCAT44(uVar13,uVar46) ^ uVar30 ^ uVar44 ^ *(ulonglong *)(lVar1 + -0xc38) ^
           0xdc50ec95bf7fee57;
  *(ulonglong *)(lVar1 + -0x3d8) = uVar42;
  uVar43 = DAT_182671f8c;
  uVar14 = DAT_182671e94;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar40 = (ulonglong)DAT_182671f8c;
  uVar36 = (uVar42 ^ uVar30) + uVar36 ^ uVar29;
  *(ulonglong *)(lVar1 + -0xb18) = uVar36;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar29 = uVar36 ^ CONCAT44(uVar43,uVar43) ^ uVar29 ^ *(ulonglong *)(lVar2 + -0x408) ^ uVar22;
  uVar37 = (uVar40 << 0x1b | (ulonglong)(uVar43 >> 5)) ^ uVar29 >> 5;
  *(ulonglong *)(lVar2 + -0x960) = uVar29;
  *(ulonglong *)(lVar2 + -0xb20) = uVar37 ^ uVar41;
  uVar14 = DAT_182671f20;
  uVar36 = (uVar29 ^ CONCAT44(uVar43,uVar43)) << (((byte)DAT_182671c8c ^ 0x88) & 0x3f);
  uVar29 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0xc18) = uVar36 ^ uVar44;
  lVar1 = DAT_182671c40;
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar36 = *(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xf9823868)) ^ uVar41 | uVar36;
  puVar18 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar48 ^ 0xe1653476));
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar36 ^ uVar42;
  uVar43 = DAT_182671ca0;
  uVar40 = (ulonglong)DAT_182671ca0;
  *(ulonglong *)(lVar1 + -0xa08) = (*puVar18 ^ uVar22) - uVar36 ^ uVar47;
  uVar36 = CONCAT44(uVar43,uVar43);
  *(ulonglong *)(lVar1 + -0x888) = (*puVar35 ^ uVar47) + uVar37;
  uVar38 = *(ulonglong *)(lVar1 - (uVar34 ^ 0xabaf19aa)) ^ uVar36 ^ *(ulonglong *)(lVar1 + -0x228) ^
           uVar28 ^ uVar38;
  uVar37 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  uVar29 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar1 + -0xbd8) = uVar38;
  puVar35 = (ulonglong *)(lVar1 - (uVar29 ^ 0xb6f657b3));
  uVar29 = (uVar38 >> 0x20 ^ uVar40) >> 5;
  uVar22 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar1 + -0xda8) = uVar29 ^ uVar37;
  uVar4 = DAT_182671c50;
  uVar36 = (uVar36 ^ *puVar35) << (((byte)DAT_182671c50 ^ 0x72) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar36 ^ uVar22;
  uVar14 = DAT_182671eb0;
  lVar1 = DAT_182671c40;
  uVar29 = uVar29 | uVar36;
  uVar36 = CONCAT44(DAT_182671d78,DAT_182671d78);
  *(ulonglong *)(DAT_182671c40 + -0xf0) = uVar29 ^ uVar36;
  uVar43 = DAT_182671ed4;
  uVar10 = DAT_182671c78;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar38 = (ulonglong)DAT_182671c78;
  uVar22 = (ulonglong)DAT_182671ed4;
  uVar28 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar1 - (uVar45 ^ 0x52eb44bc)) = uVar23 - uVar29 ^ uVar40;
  uVar29 = *(ulonglong *)(lVar1 + -0xf0) ^ uVar28 ^ uVar36 ^ uVar47 ^ *(ulonglong *)(lVar1 + -0xa08)
  ;
  uVar36 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  *(ulonglong *)(lVar1 + -0x4b8) = uVar29;
  uVar23 = (uVar28 ^ uVar29) << 0x29;
  uVar22 = ((ulonglong)(uVar43 >> 0x17) | uVar22 << 9) ^ uVar29 >> 0x17;
  uVar29 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar1 + -0x920) = uVar22 ^ uVar36;
  uVar14 = DAT_182671cac;
  *(ulonglong *)(lVar1 + -0xd88) = uVar23 ^ uVar29;
  uVar41 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0xc38) = (uVar22 | uVar23) ^ uVar41;
  *(ulonglong *)(lVar1 + -0xa78) = CONCAT44(uVar4,uVar3) ^ 0x3a87ace53b05091b;
  uVar8 = DAT_182671ee8;
  lVar2 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671ee8;
  uVar23 = CONCAT44(DAT_182671e88,DAT_182671e88);
  uVar43 = DAT_182671c80 >> 3;
  *(ulonglong *)(lVar1 + -0x3d8) =
       (uVar47 ^ *(ulonglong *)(lVar1 + -0xa08)) -
       (*(ulonglong *)(lVar1 - (uVar38 ^ 0xefff93c6)) ^ uVar41) ^ uVar23;
  *(ulonglong *)(lVar1 + -0xb18) = ((ulonglong)uVar43 | uVar31 << 0x1d) ^ 0x12f8989045b8bec7;
  lVar1 = DAT_182671c40;
  uVar36 = CONCAT44(uVar8,uVar8);
  puVar18 = (ulonglong *)(lVar2 - (uVar20 ^ 0xc16226a1));
  *(ulonglong *)(lVar2 + -0x960) =
       uVar36 ^ uVar40 ^ uVar42 ^ *puVar18 ^ *(ulonglong *)(lVar2 + -0x30);
  uVar14 = DAT_182671ddc;
  uVar8 = DAT_182671c70;
  *(ulonglong *)(lVar2 + -0xc18) =
       CONCAT44(DAT_182671c70,uVar6) ^ 0xff123f54bf959686 |
       CONCAT44(uVar9,uVar13) ^ 0xcd257b53a649df9f;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x888214b0)) =
       (*(ulonglong *)(DAT_182671c40 + -0x960) >> 0x20 ^ uVar29) >> 8 ^ uVar28;
  uVar31 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  local_res20 = (byte)uVar11;
  uVar29 = *(ulonglong *)(lVar1 - (uVar33 ^ 0x888219d8));
  uVar22 = (ulonglong)DAT_182671c8c;
  *(uint *)(lVar1 + -0x94) = (DAT_182671c84 ^ 0xdad5c6c8) + *(int *)(lVar1 + -0x76c);
  uVar15 = DAT_182671eec;
  *(ulonglong *)(lVar1 + -0x888) = (uVar29 ^ uVar36) << ((local_res20 ^ 0xe0) & 0x3f) ^ uVar31;
  uVar14 = DAT_182671c98;
  lVar2 = DAT_182671c40;
  uVar42 = CONCAT44(uVar15,uVar15);
  uVar22 = (*(ulonglong *)(lVar1 - (uVar22 ^ 0x4f27df3b)) ^ uVar31 |
           uVar28 ^ *(ulonglong *)(lVar1 + -0x408)) ^ uVar42;
  *(ulonglong *)(lVar1 + -0xb20) = uVar22;
  uVar15 = DAT_182671e04;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x228) =
       (uVar40 ^ *puVar18) - (*(ulonglong *)(lVar2 - (uVar49 ^ 0xe1653b5e)) ^ uVar42) ^ uVar31;
  lVar1 = DAT_182671c40;
  uVar40 = CONCAT44(uVar15,uVar15);
  puVar18 = (ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xb3d72e2f));
  uVar29 = CONCAT44(uVar27,DAT_182671c80);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       uVar22 ^ uVar40 ^ uVar42 ^ uVar23 ^ *(ulonglong *)(DAT_182671c40 + -0x3d8);
  local_90 = (byte)uVar46;
  *(ulonglong *)(lVar1 + -0xda8) = *puVar18 ^ uVar29 ^ uVar36 ^ 0x623cfd54ba31c9a5;
  *(ulonglong *)(lVar1 - (uVar33 ^ 0x88821550)) =
       (uVar40 ^ *(ulonglong *)(lVar1 + -0xbd8)) >> ((local_90 ^ 0x9c) & 0x3f) ^ uVar37;
  uVar14 = DAT_182671dd0;
  uVar43 = DAT_182671c50;
  uVar22 = (uVar40 ^ *puVar35) << 0xc;
  uVar23 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar1 + -0xa50) = uVar22 ^ CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar12 = DAT_182671c80;
  uVar22 = uVar22 | uVar37 ^ *(ulonglong *)(lVar1 + -0x5e8);
  uVar36 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0xf0) = uVar22 ^ uVar26;
  uVar29 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar1 + -0x4b8) = uVar22 << (((byte)uVar9 ^ 0x72) & 0x3f);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0xefff9276)) =
       *(ulonglong *)(lVar1 - (uVar29 ^ 0x71861586)) ^ uVar36 ^ uVar31 ^ uVar41 ^
       *(ulonglong *)(lVar1 + -0xc38);
  uVar15 = DAT_182671fa0;
  uVar14 = DAT_182671cc4;
  uVar22 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(lVar1 + -0x920) =
       (uVar36 ^ *(ulonglong *)(lVar1 + -0xd88)) >> (((byte)uVar3 ^ 0x91) & 0x3f) ^ uVar22;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 - (uVar23 ^ 0xa6f5f611)) =
       (uVar36 ^ *(ulonglong *)(lVar1 + -0xd88)) << 7 ^ uVar29;
  uVar15 = DAT_182671e58;
  uVar29 = uVar22 ^ *(ulonglong *)(lVar1 + -0x920) | uVar29 ^ *(ulonglong *)(lVar1 + -0xa78);
  *(ulonglong *)(lVar1 + -0xb18) = uVar29 ^ uVar39;
  *(ulonglong *)(lVar1 + -0xa08) =
       (CONCAT44(uVar13,uVar12) ^ 0x550e48ccf642c6b0) <<
       (((byte)uVar14 ^ *(byte *)(lVar1 + -0x920)) & 0x3f);
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0x228)) - uVar29 ^ uVar36;
  lVar1 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar29 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0xb3d72b57)) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0xf9823378)) ^
       *(ulonglong *)(DAT_182671c40 + -0xf0) ^ uVar22 ^ uVar36 ^ uVar26;
  local_c0 = (byte)uVar6;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x4f27d3bb)) =
       CONCAT44(DAT_182671c6c,uVar11) ^ 0x1ddda5508e4dfacd | uVar22 ^ *(ulonglong *)(lVar1 + -0xc18)
  ;
  uVar22 = uVar22 ^ *(ulonglong *)(lVar1 + -0xc18);
  uVar29 = CONCAT44(DAT_182671f00,DAT_182671f00);
  bVar19 = (byte)DAT_182671c84;
  *(ulonglong *)(lVar1 + -0x888) = uVar22 >> ((local_c0 ^ 0x3c) & 0x3f) ^ uVar29;
  uVar22 = uVar22 << ((bVar19 ^ 0x49) & 0x3f);
  uVar31 = CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar39 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(lVar1 + -0xc90) = uVar22 ^ uVar31;
  uVar14 = DAT_182671e18;
  *(ulonglong *)(lVar1 + -0x3d8) =
       (*(ulonglong *)(lVar1 - (uVar34 ^ 0xabaf1b72)) ^ uVar29 | uVar22) ^ uVar39;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar29 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar1 + -0xb20) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar43 ^ 0xa6f5ffb1)) ^ uVar39) -
       (CONCAT44(DAT_182671e64,DAT_182671e64) ^ *(ulonglong *)(lVar1 + -0x2b0)) ^ uVar40;
  *(ulonglong *)(lVar1 - (uVar49 ^ 0xe1653616)) =
       *(longlong *)(lVar1 + -0x418) + (CONCAT44(uVar5,uVar10) ^ 0x888210b8efff9ffd) * 8 ^ uVar29;
  lVar2 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(*(ulonglong *)(DAT_182671c40 + -0x668) ^ uVar29) =
       *(ulonglong *)(DAT_182671c40 + -0xb20) ^ uVar22 ^ uVar40;
  *(undefined8 *)(lVar2 + -0x7a0) = *(undefined8 *)(lVar2 + -0x418);
  plVar32 = (longlong *)(lVar2 - ((ulonglong)uVar46 ^ 0x40801340));
  *plVar32 = *(longlong *)(lVar2 + -0x650);
  lVar1 = *(longlong *)(lVar2 + -0x7a0);
  *(longlong *)(lVar2 + -0x7a0) = *(longlong *)(lVar2 + -0x2e8);
  *(longlong *)(lVar2 + -0x678) = lVar1;
  *(ulonglong *)(lVar2 + -0x2e8) =
       *(longlong *)(lVar2 + -0x2e8) + (CONCAT44(uVar11,uVar7) ^ 0xcee9f1f8c1622a30) * 8;
  *(ulonglong *)(lVar2 + -0x960) =
       *(ulonglong *)(CONCAT44(DAT_182671f58,DAT_182671f58) ^ *(ulonglong *)(lVar2 + -0x910)) ^
       uVar36;
  lVar1 = lVar1 + 8;
  *(longlong *)(lVar2 + -0x7a0) = lVar1;
  *(longlong *)(lVar2 + -0x910) = lVar1;
  uVar6 = DAT_182671c6c;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xcee9fc50)) = (CONCAT44(uVar12,uVar13) ^ 0x4517e9aa) << 0x1f;
  *(undefined8 *)(lVar2 + -0x678) = *(undefined8 *)(lVar2 + -0x2e8);
  *(undefined8 *)(lVar2 - (uVar34 ^ 0xabaf145a)) = *(undefined8 *)(lVar2 + -0x910);
  *(undefined8 *)(lVar2 - (uVar25 ^ 0x40801340)) = *(undefined8 *)(lVar2 + -0x678);
  uVar34 = CONCAT44(uVar3,DAT_182671c8c);
  uVar29 = CONCAT44(DAT_182671c8c,uVar6);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0x4f27dc6b)) =
       CONCAT44(uVar8,uVar5) ^ uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0xc90) ^ 0x317238509e4673bf;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x910) =
       *(longlong *)(DAT_182671c40 + -0x2e8) + (uVar34 ^ 0x408011a84f27d7b2) * 8;
  *(ulonglong *)(lVar2 + -0x678) =
       *(longlong *)(lVar2 - (uVar49 ^ 0xe16537de)) + (uVar29 ^ 0x4f27d7b3b6f65c6a) * 8;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xb3d722a7)) =
       (*(ulonglong *)(lVar2 - (uVar49 ^ 0xe16533a6)) ^ uVar39) << (((byte)uVar43 ^ 0x6e) & 0x3f);
  *(undefined8 *)(lVar2 - (uVar23 ^ 0xa6f5fe81)) =
       *(undefined8 *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0x715a1f54));
  *(ulonglong *)(lVar2 + -0xa50) =
       CONCAT44(DAT_182671c84,uVar27) ^ 0x6874ae722b0ade85 | *(ulonglong *)(lVar2 + -0x960);
  lVar1 = *(longlong *)(lVar2 - (uVar45 ^ 0x52eb413c));
  *(undefined8 *)(lVar2 + -0x678) = *(undefined8 *)(lVar2 + -0x2e8);
  uVar29 = CONCAT44(DAT_182671c60,uVar13);
  *(longlong *)(lVar2 + -0x7a0) = lVar1;
  *plVar32 = lVar1 + (uVar29 ^ 0x17ae718623af136b) * 8;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x88821718)) =
       *(longlong *)(lVar2 + -0x678) + (CONCAT44(uVar7,uVar48) ^ 0xc1622a31e165307f) * 8;
  uVar14 = DAT_182671f84;
  *(ulonglong *)(lVar2 + -0x910) = *(ulonglong *)(lVar2 + -0x7a0);
  lVar1 = *plVar32;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(longlong *)(lVar2 + -0x678) = lVar1;
  *(ulonglong *)(lVar2 + -0x7a0) = uVar29 ^ *(ulonglong *)(lVar2 + -0x7a0);
  *(ulonglong *)(lVar2 + -0x4b8) =
       (CONCAT44(uVar4,uVar7) ^ 0x67c359f438b42238) + (CONCAT44(uVar46,uVar11) ^ 0xd205398f227d94fc)
  ;
  *(longlong *)(lVar2 - (uVar20 ^ 0xc16228d9)) = lVar1;
  uVar34 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  *(ulonglong *)(lVar2 + -0xc38) =
       CONCAT44(DAT_182671e28,DAT_182671e28) ^ **(ulonglong **)(lVar2 + -0x2e8) ^ uVar34;
  **(undefined8 **)(lVar2 + -0xb88) = 0xb13d20dcadcf4b06;
  uVar14 = DAT_182671d6c;
  puVar18 = (ulonglong *)(uVar29 ^ *(ulonglong *)(lVar2 + -0x7a0));
  uVar29 = uVar22 ^ *puVar18 ^ uVar30;
  *(ulonglong *)(lVar2 + -0xd88) = uVar29;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar29 = uVar33 ^ uVar29 ^ uVar34 ^ uVar30 ^ *(ulonglong *)(lVar2 + -0xc38);
  *(ulonglong *)(lVar2 + -0xa08) = uVar29;
  *puVar18 = uVar33 ^ uVar22 ^ uVar29;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar17 * 4) = uVar16;
  return;
}



############ FUN_ 1810256f0 size=4718 ############

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

void FUN_1810256f0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  byte *pbVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  uint uVar19;
  uint uVar20;
  uint *puVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  longlong *plVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  longlong *plVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  byte local_res18;
  byte local_90;
  byte local_80;
  byte local_68;
  
  uVar26 = DAT_182671ecc;
  uVar19 = DAT_182671cc4;
  uVar17 = DAT_182671c84;
  uVar6 = DAT_182671c58;
  uVar3 = DAT_182671c54;
  uVar20 = DAT_182671c48;
  lVar4 = DAT_182671c40;
  uVar12 = (ulonglong)DAT_182671c58;
  uVar31 = (ulonglong)DAT_182671c84;
  uVar22 = (ulonglong)DAT_182671c54;
  uVar32 = DAT_182671c54 + DAT_182671c58;
  uVar23 = DAT_182671c48 ^ DAT_182671c84;
  uVar10 = *(uint *)(&DAT_182613210 + (uVar12 ^ 0x9225c2e3) + (longlong)DAT_18267211c) ^
           DAT_182671c54;
  uVar2 = *(uint *)(&DAT_182613210 +
                   ((ulonglong)DAT_182671c84 ^ 0xb5f708fb) + (longlong)DAT_18267211c);
  uVar27 = CONCAT44(DAT_182671c48,DAT_182671c84);
  uVar16 = DAT_182671cc4 ^ *(uint *)(DAT_182671c40 + -0x58c);
  uVar11 = DAT_182671d20 ^ *(uint *)(DAT_182671c40 + -0x94);
  DAT_182671c50 = uVar32;
  DAT_182671c6c = uVar23;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar23 ^ 0x482cfa89)) ^
       CONCAT44(DAT_182671f74,DAT_182671f74) ^ uVar27 ^ 0x33f7f4e3ad261e30;
  *(uint *)(lVar4 + -0xa94) = uVar16 & uVar11 ^ DAT_182671e28;
  uVar11 = DAT_182671d34;
  lVar5 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671d34;
  uVar13 = CONCAT44(DAT_182671d34,DAT_182671d34);
  uVar30 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar32 ^ 0xdc2ebfd7));
  uVar26 = (uVar26 ^ *(uint *)(DAT_182671c40 + -0x4ac)) & *(uint *)(DAT_182671c40 + 0x28) ^
           DAT_182671f28;
  *(uint *)(DAT_182671c40 + -0x94) = uVar26;
  uVar26 = uVar26 ^ DAT_182671f28;
  *(ulonglong *)(lVar5 + -0x228) = (uVar30 ^ uVar13) + (CONCAT44(uVar23,uVar3) ^ 0x7a463b9ab58c693a)
  ;
  uVar26 = (*(uint *)(lVar5 - (uVar12 ^ 0x9225c87f)) ^ DAT_182671e28 | uVar26) ^ uVar11;
  *(uint *)(lVar4 + -0x1c8) = uVar26;
  *(uint *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0xdc2eb05f)) ^ (ulonglong)DAT_182671d64) =
       uVar26 ^ DAT_182671f14 ^ uVar11;
  uVar26 = DAT_182671f14;
  uVar30 = (ulonglong)DAT_182671e60;
  *(uint *)(lVar4 + -0xa94) = (*(uint *)(lVar4 + -0x1c8) ^ uVar11) + (uVar17 ^ 0x52380abb);
  puVar21 = (uint *)(*(longlong *)(lVar4 + -0xd00) + 4 +
                    (CONCAT44(uVar23,uVar20) ^ 0x482cf701fddbffea) * 0x10);
  *(ulonglong *)(lVar4 + -0xd00) = CONCAT44(uVar23,uVar20) ^ 0x8c7342c6aecf9109;
  *(ulonglong *)(lVar4 + -0x9d0) = (ulonglong)puVar21 ^ uVar30;
  local_80 = (byte)uVar23;
  uVar11 = *puVar21 ^ DAT_182671e44 ^ uVar26;
  *(uint *)(lVar4 + -0x94) = uVar11;
  *(uint *)(lVar4 - ((ulonglong)uVar3 ^ 0x4a08fdf0)) =
       (uVar11 ^ DAT_182671e44) & (uVar19 ^ *(uint *)(lVar4 + -0x58c)) ^ DAT_182671ebc;
  *(ulonglong *)(lVar4 + -0xd88) =
       (CONCAT44(uVar17,uVar32) ^ 0x3908293dc2ddc13) << ((local_80 ^ 0x20) & 0x3f);
  uVar16 = DAT_182671f1c;
  *(uint *)(lVar4 - (uVar22 ^ 0x4a08fd80)) =
       (DAT_182671ecc ^ *(uint *)(lVar4 + -0x4ac)) & (uVar23 ^ 0x482cf705) ^ DAT_182671d40;
  uVar19 = *(uint *)(lVar4 + -0xae4) ^ DAT_182671ebc | *(uint *)(lVar4 + -0xa94) ^ DAT_182671d40;
  *(uint *)(lVar4 + -0x58c) = uVar19 ^ uVar16;
  *(uint *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0xdc2eb02f)) ^ uVar30) = uVar19 ^ uVar26;
  bVar15 = (byte)DAT_182671dc4;
  uVar30 = (ulonglong)DAT_182671ec8;
  *(uint *)(lVar4 + -0x94) =
       (*(uint *)(lVar4 - (uVar12 ^ 0x9225c587)) ^ DAT_182671cec) &
       (*(uint *)(lVar4 + -0x61c) ^ DAT_182671ca8) ^ DAT_182671e4c;
  pbVar14 = *(byte **)(lVar4 - (uVar31 ^ 0xb5f7009b));
  *(ulonglong *)(lVar4 + -0x708) = (ulonglong)pbVar14 ^ uVar30;
  *(byte *)(lVar4 + -0x741) = *pbVar14 ^ bVar15 ^ (byte)uVar26;
  uVar7 = DAT_182671f24;
  uVar30 = (ulonglong)DAT_182671ca0;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (CONCAT44(uVar6,uVar6) ^ 0xca8067415cc571cf) << (((byte)uVar3 ^ 0x2b) & 0x3f);
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x628) = (bVar15 ^ *(byte *)(lVar4 + -0x741)) ^ uVar33;
  bVar15 = (byte)DAT_182671d24;
  pbVar14 = (byte *)((CONCAT44(uVar6,uVar20) ^ 0x9225c2ebfddbffeb) + *(longlong *)(lVar4 + -0x870));
  *(ulonglong *)(lVar4 + -0x6f8) = (ulonglong)pbVar14 ^ uVar30;
  uVar7 = DAT_182671e48;
  bVar9 = *pbVar14 ^ bVar15 ^ (byte)DAT_182671f14;
  *(byte *)(lVar4 + -0x2e9) = bVar9;
  uVar11 = DAT_182671c70;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar13 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c70 ^ 0x6cab70cc)) = (bVar15 ^ bVar9) ^ uVar28;
  uVar26 = DAT_182671c88;
  lVar5 = DAT_182671c40;
  uVar22 = uVar28 ^ *(ulonglong *)(lVar4 + -0x228);
  uVar24 = (ulonglong)DAT_182671c88;
  uVar29 = uVar22 << (((byte)uVar17 ^ 0xe3) & 0x3f);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x8f0);
  bVar15 = (byte)DAT_182671f2c;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar29 ^ CONCAT44(DAT_182671eac,DAT_182671eac);
  lVar4 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671c4c;
  *puVar1 = uVar22 << ((bVar15 ^ *(byte *)(lVar5 + -0xa70)) & 0x3f);
  uVar19 = DAT_182671c60;
  puVar18 = (ulonglong *)(lVar5 - (uVar30 ^ 0x9d5c1d32));
  uVar22 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  uVar30 = *puVar18;
  uVar36 = (ulonglong)DAT_182671c60;
  *puVar1 = CONCAT44(uVar6,uVar26) ^ 0x13e40abb32c78fe | *(ulonglong *)(lVar4 + -0xbd8);
  *(ulonglong *)(lVar4 + -0xa70) = (uVar33 ^ uVar30 | uVar29) ^ uVar22;
  bVar15 = (byte)DAT_182671e08;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xffa602a4)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar32 ^ 0xdc2eb18f)) +
       (CONCAT44(uVar19,uVar23) ^ 0xffa6018c482cf703) ^ uVar34;
  *(undefined1 *)(lVar4 + -0x6b9) = **(undefined1 **)(lVar4 + -0x990);
  uVar30 = *puVar1;
  *(byte *)(lVar4 + -0xcb9) =
       *(byte *)(uVar34 ^ *(ulonglong *)(lVar4 + -0x328)) ^ bVar15 ^ (byte)DAT_182671f14;
  local_res18 = (byte)uVar6;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c80 ^ 0xfffbd677)) = uVar30 | 0x6a667bf12ef3225a;
  uVar19 = DAT_182671c74;
  uVar33 = CONCAT44(DAT_182671efc,DAT_182671efc);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x482cf129)) =
       (bVar15 ^ *(byte *)(lVar4 + -0xcb9)) ^ uVar33;
  uVar8 = DAT_182671e54;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar4 + -0x628);
  uVar29 = uVar33 << ((local_res18 ^ 0xfb) & 0x3f);
  *(ulonglong *)(lVar4 + -0xbd8) = uVar29 ^ CONCAT44(DAT_182671d1c,DAT_182671d1c);
  bVar9 = (byte)DAT_182671f94;
  uVar26 = DAT_182671c78;
  local_68 = (byte)uVar7;
  bVar15 = *(byte *)(lVar4 + -0x228);
  uVar36 = (ulonglong)DAT_182671c78;
  uVar29 = *(ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xa52aec7c)) ^ uVar22 | uVar29;
  *puVar1 = uVar29 ^ CONCAT44(uVar8,uVar8);
  uVar30 = (ulonglong)DAT_182671d48;
  uVar22 = CONCAT44(DAT_182671c8c,uVar26);
  *(ulonglong *)(lVar4 + -0xd88) =
       (CONCAT44(uVar23,uVar17) ^ 0x60dffb05b70edb0) << ((local_68 ^ bVar15) & 0x3f);
  pbVar14 = (byte *)((uVar22 ^ 0x45b0db65b7d308fd) + *(longlong *)(lVar4 + -0x870));
  *(ulonglong *)(lVar4 + -0x758) = (ulonglong)pbVar14 ^ uVar30;
  *(byte *)(lVar4 + -0xb69) = *pbVar14 ^ bVar9 ^ (byte)DAT_182671f14;
  uVar7 = DAT_182671e30;
  *(ulonglong *)(lVar4 + -0xa70) = uVar33 | 0xd7cb886bb5274699;
  uVar8 = DAT_182671f6c;
  uVar30 = (ulonglong)(bVar9 ^ *(byte *)(lVar4 + -0xb69));
  *(ulonglong *)(lVar4 + -0xbd8) = uVar30 ^ CONCAT44(uVar7,uVar7);
  lVar4 = DAT_182671c40;
  uVar30 = uVar30 << (((byte)uVar3 ^ 0xc) & 0x3f);
  uVar33 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar30 ^ CONCAT44(uVar8,uVar8);
  uVar22 = (ulonglong)DAT_182671f0c;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0xdc2eb477)) = (uVar29 | uVar30) ^ uVar33;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c8c ^ 0x45b0d815)) =
       *(longlong *)(lVar4 - ((ulonglong)DAT_182671c7c ^ 0x26029da5)) +
       (CONCAT44(DAT_182671c64,uVar3) ^ 0xf4c9a7d14a08f710) ^ uVar22;
  bVar15 = (byte)DAT_182671f58;
  uVar3 = DAT_182671c58;
  *(uint *)(lVar4 + -0x4ac) =
       (*(uint *)(lVar4 - (uVar31 ^ 0xb5f70d67)) ^ uVar16) * (DAT_182671c58 ^ 0xea7d55aa);
  uVar7 = DAT_182671d5c;
  bVar9 = *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0x462adaa9)) ^ uVar22) ^
          bVar15 ^ (byte)DAT_182671f14;
  *(byte *)(lVar4 + -0xab1) = bVar9;
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xffdbd18f)) = (bVar9 ^ bVar15) ^ uVar31;
  uVar24 = (ulonglong)_DAT_182671cf0;
  local_90 = (byte)uVar20;
  uVar22 = CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar29 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  uVar30 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar4 + -0x628) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0xa70)) << (((byte)uVar19 ^ 0x2c) & 0x3f) ^ uVar22;
  uVar20 = DAT_182671fa4;
  uVar19 = DAT_182671c94;
  uVar26 = DAT_182671fa4 & 0xff;
  uVar31 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar4 + -0xbd8) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xfffbddd7)) ^ uVar22 |
       uVar33 ^ *(ulonglong *)(lVar4 + -0xd88)) ^ uVar29;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xb7d30ff6)) =
       *(longlong *)(lVar4 - (uVar31 ^ 0xb4d86196)) + (uVar27 ^ 0xfddbffeab5f708ee) ^ uVar24;
  *puVar1 = 0xb0b8f539bec9fdc7;
  uVar7 = DAT_182671f04;
  bVar9 = (byte)DAT_182671f14;
  bVar15 = *(byte *)(*(ulonglong *)(lVar4 + -0x708) ^ uVar24) ^ bVar9 ^ (byte)uVar20;
  *(byte *)(lVar4 + -0xb1) = bVar15;
  uVar20 = DAT_182671f90;
  uVar22 = (ulonglong)DAT_182671c68;
  uVar36 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x228) = (ulonglong)bVar15 ^ (ulonglong)uVar26 ^ uVar36;
  uVar30 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0x460adbf1)) ^ uVar36) << ((local_90 ^ 0xc2) & 0x3f);
  uVar17 = *(uint *)(lVar4 + -0xa94) ^ DAT_182671d40;
  uVar26 = DAT_182671c70 ^ 0xb2e86fc0;
  *(ulonglong *)(lVar4 + -0xa70) = uVar30 ^ CONCAT44(uVar20,uVar20);
  *(uint *)(lVar4 + -0x61c) = uVar17 * uVar26;
  uVar20 = DAT_182671c4c;
  uVar26 = DAT_182671c4c & 3;
  if (uVar26 < 2) {
    if (uVar26 == 0) {
      uVar3 = DAT_182671c4c;
    }
    uVar24 = (ulonglong)uVar3;
  }
  else {
    uVar24 = uVar31;
    if (uVar26 < 3) {
      uVar24 = (ulonglong)DAT_182671c68;
    }
  }
  uVar27 = (ulonglong)DAT_182671d3c;
  DAT_182671c7c = (uint)uVar24;
  uVar33 = (ulonglong)DAT_182671c4c;
  uVar34 = CONCAT44(DAT_182671ca0,DAT_182671ca0);
  plVar35 = (longlong *)(lVar4 - (uVar22 ^ 0x460ad1a9));
  *(ulonglong *)(lVar4 + -0xd88) = (uVar29 ^ *(ulonglong *)(lVar4 + -0xbd8) | uVar30) ^ uVar34;
  pbVar14 = (byte *)(((uVar24 | uVar33 << 0x20) ^ 0x9d5c1b1a460ad9df) + *plVar35);
  puVar37 = (ulonglong *)(lVar4 - (uVar13 ^ 0x6cab7f6c));
  *(ulonglong *)(lVar4 + -0x6f8) = (ulonglong)pbVar14 ^ uVar27;
  bVar15 = (byte)DAT_182671da8;
  *(ulonglong *)(lVar4 + -0x628) = *puVar37 ^ uVar34 | 0xb0b8f539bec9fdc7;
  *(byte *)(lVar4 + -0x9dd) = *pbVar14 ^ bVar9 ^ bVar15;
  uVar30 = CONCAT44(DAT_182671f60,DAT_182671f60);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xb4d8623e)) =
       (*(byte *)(lVar4 - (uVar12 ^ 0x9225cb36)) ^ bVar15) ^ uVar30;
  uVar26 = DAT_182671ecc;
  uVar30 = (*(ulonglong *)(lVar4 + -0xbd8) ^ uVar30) << (((byte)uVar20 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa70) = uVar30 ^ CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar3 = DAT_182671c68;
  uVar27 = CONCAT44(uVar26,uVar26);
  *(ulonglong *)(lVar4 - (uVar12 ^ 0x9225ca1b)) =
       (*(ulonglong *)(lVar4 + -0xd88) ^ uVar34) + uVar30 ^ uVar27;
  uVar26 = DAT_182671f90;
  uVar17 = DAT_182671f90 & 0xff;
  *(ulonglong *)(lVar4 + -0x628) =
       CONCAT44(uVar3,uVar6) ^ *(ulonglong *)(lVar4 + -0x228) ^ uVar36 ^ 0x93a256f8b2f15123;
  pbVar14 = (byte *)(*(longlong *)(lVar4 + -0x870) + 7);
  *(ulonglong *)(lVar4 + -0x990) = (ulonglong)pbVar14 ^ (ulonglong)DAT_182671f10;
  uVar30 = (ulonglong)DAT_182671c4c;
  *(byte *)(lVar4 + -0xb79) = *pbVar14 ^ (byte)DAT_182671f14 ^ (byte)uVar26;
  uVar26 = DAT_182671ec8;
  uVar29 = CONCAT44(DAT_182671d98,DAT_182671d98);
  uVar30 = (ulonglong)*(byte *)(lVar4 - (uVar30 ^ 0x9d5c1063)) ^ (ulonglong)uVar17;
  *(ulonglong *)(lVar4 + -0xbd8) = uVar30 ^ uVar29;
  uVar22 = CONCAT44(uVar26,uVar26);
  *(undefined8 *)(lVar4 + -0xa70) = 0xd30225b6aba4c41a;
  uVar7 = DAT_182671f88;
  *(ulonglong *)(lVar4 + -0xd88) = uVar30 << 0x38 ^ uVar22;
  uVar36 = CONCAT44(uVar7,uVar7);
  uVar30 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar4 + -0x228) =
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0xb4d8646e)) ^ uVar22) +
       (*(ulonglong *)(lVar4 - (uVar13 ^ 0x6cab7a14)) ^ uVar27) ^ uVar36;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xb4d860fe)) = *(ulonglong *)(lVar4 + -0x418) ^ uVar30;
  uVar22 = (ulonglong)DAT_182671cb4;
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x918) ^ uVar30) =
       uVar28 ^ *(ulonglong *)(lVar4 + -0x228) ^ uVar36;
  uVar26 = DAT_182671c68;
  *(ulonglong *)(lVar4 + -0x628) =
       ((uVar24 | uVar31 << 0x20) ^ 0x714f1c0022701d11) + (*(ulonglong *)(lVar4 + -0x228) ^ uVar36);
  lVar5 = DAT_182671c40;
  plVar25 = (longlong *)(lVar4 - (uVar13 ^ 0x6cab7a94));
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar26 ^ 0x460adaf1)) =
       (CONCAT44(uVar19,uVar6) ^ 0xb4d869e69225c2e3) + *plVar25 ^ uVar22;
  bVar9 = (byte)DAT_182671e1c;
  bVar15 = (byte)DAT_182671d08;
  *(byte *)(lVar5 + -0xe1) =
       *(byte *)(uVar22 ^ *(ulonglong *)(lVar5 + -0x328)) ^ (byte)DAT_182671f14 ^
       (byte)DAT_182671e1c;
  uVar27 = CONCAT44(DAT_182671e14,DAT_182671e14);
  uVar13 = (ulonglong)(*(byte *)(lVar5 - ((ulonglong)uVar26 ^ 0x460ad938)) ^ bVar9);
  uVar30 = (ulonglong)DAT_182671fb0;
  *(ulonglong *)(lVar5 + -0xa70) = uVar13 ^ uVar27;
  *(ulonglong *)(lVar5 + -0x758) =
       (CONCAT44(uVar20,uVar11) ^ 0x9d5c1b1a6cab72ed) + *(longlong *)(lVar5 + -0x870) ^ uVar30;
  *(byte *)(lVar5 + -0x2b9) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar24 ^ 0x460ade81)) ^ uVar30) ^ (byte)DAT_182671f14 ^
       bVar15;
  *puVar1 = CONCAT44(uVar3,uVar19) ^ 0xd22f4178084ef1af | uVar13;
  uVar30 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *puVar37 = (*(byte *)(lVar5 + -0x2b9) ^ bVar15) ^ uVar30;
  *(ulonglong *)(lVar5 + -0xb20) = (*(ulonglong *)(lVar5 + -0xd88) ^ uVar30) << 4;
  uVar7 = DAT_182671f80;
  uVar36 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar20 = DAT_182671c58 ^ 0x6e96fb3d;
  *(ulonglong *)(lVar5 + -0x628) =
       (*(ulonglong *)(lVar5 - (uVar24 ^ 0x460ad451)) ^ uVar30) << 8 ^ uVar36;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(uint *)(lVar5 + -0x76c) =
       uVar20 << (((byte)*(undefined4 *)(lVar5 + -0xa94) ^ (byte)DAT_182671d40) & 0x1f);
  bVar15 = (byte)DAT_182671edc;
  uVar13 = CONCAT44(uVar3,DAT_182671c4c);
  uVar30 = *(ulonglong *)(lVar5 - (uVar31 ^ 0xb4d86396)) ^ uVar27 | uVar36 ^ *puVar18;
  *puVar1 = uVar30 ^ uVar22;
  *(ulonglong *)(lVar5 + -0xb20) = ((uVar24 << 0x20 | uVar31) ^ 0xcd225517bd47cc21) + uVar30;
  uVar20 = DAT_182671c70;
  pbVar14 = (byte *)((uVar13 ^ 0x460ad9d99d5c1b10) + *plVar25);
  *(ulonglong *)(lVar5 + -0x370) = (ulonglong)pbVar14 ^ (ulonglong)DAT_182671e24;
  *(byte *)(lVar5 + -0x21) = *pbVar14 ^ (byte)DAT_182671f14 ^ bVar15;
  *(int *)(lVar5 - (uVar12 ^ 0x9225c42b)) =
       *(int *)(lVar5 + -0x61c) << (((byte)uVar20 ^ 0xf1) & 0x1f);
  uVar36 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar5 + -0xa70) = (*(byte *)(lVar5 - (uVar24 ^ 0x460ad9f8)) ^ bVar15) ^ uVar36;
  *puVar18 = (*(ulonglong *)(lVar5 + -0xbd8) ^ uVar29) + 0x23fefcf4ece25647;
  uVar7 = DAT_182671dbc;
  uVar30 = *puVar1;
  uVar13 = (*(ulonglong *)(lVar5 + -0xa70) ^ uVar36) << (((byte)uVar11 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar5 + -0xb20) = uVar13 ^ CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar31 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0xbd8) = (uVar13 | uVar22 ^ uVar30) ^ uVar31;
  uVar11 = DAT_182671f14;
  uVar30 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar5 + -0x628) =
       *(ulonglong *)(lVar5 + -0xa70) ^ uVar36 ^ CONCAT44(uVar19,uVar6) ^ 0xccbf64e83ea7f51f;
  uVar20 = DAT_182671ecc;
  pbVar14 = (byte *)(((uVar30 | uVar24 << 0x20) ^ 0x460ad9d945b0db6e) + *plVar25);
  *(ulonglong *)(lVar5 + -0x708) = (ulonglong)pbVar14 ^ (ulonglong)DAT_182671e88;
  uVar6 = DAT_182671fa4;
  bVar15 = *pbVar14 ^ (byte)uVar11 ^ (byte)uVar20;
  *(byte *)(lVar5 + -0x669) = bVar15;
  uVar7 = DAT_182671ed4;
  uVar29 = (ulonglong)bVar15 ^ (ulonglong)(uVar20 & 0xff);
  uVar30 = (ulonglong)DAT_182671c4c;
  *puVar1 = uVar29 ^ CONCAT44(uVar6,uVar6);
  uVar8 = DAT_182671f68;
  uVar22 = CONCAT44(uVar7,uVar7);
  uVar13 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x9d5c116a)) = uVar29 << 0x18 ^ uVar22;
  bVar15 = (byte)DAT_182671d0c;
  *(ulonglong *)(lVar5 + -0x628) =
       (*(ulonglong *)(lVar5 - (uVar13 ^ 0x460ad201)) ^ uVar31 |
       *(ulonglong *)(lVar5 + -0xa70) ^ uVar22) ^ CONCAT44(uVar8,uVar8);
  uVar7 = DAT_182671d18;
  uVar30 = (ulonglong)DAT_182671ea0;
  *(ulonglong *)(lVar5 - (uVar12 ^ 0x9225cb7b)) =
       (CONCAT44(uVar3,uVar23) ^ 0x460ad9d9482cf70d) + *plVar35 ^ uVar30;
  *(byte *)(lVar5 - ((ulonglong)DAT_182671c80 ^ 0xfffbd0a5)) =
       *(byte *)(uVar30 ^ *(ulonglong *)(lVar5 + -0x990)) ^ (byte)uVar11 ^ bVar15;
  *puVar1 = (ulonglong)(*(byte *)(lVar5 - (uVar24 ^ 0x460ad283)) ^ bVar15) ^ CONCAT44(uVar7,uVar7);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar32) * 4) = uVar10;
  return;
}



############ FUN_ 180fe5570 size=5190 ############

void FUN_180fe5570(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong *puVar57;
  ulonglong uVar58;
  ulonglong *puVar59;
  uint uVar60;
  ulonglong *puVar61;
  byte local_res20;
  byte local_150;
  byte local_130;
  byte local_128;
  byte local_120;
  byte local_118;
  byte local_f8;
  byte local_e0;
  byte local_98;
  
  uVar12 = DAT_182671c94;
  uVar14 = DAT_182671c88;
  uVar11 = DAT_182671c78;
  uVar10 = DAT_182671c74;
  uVar9 = DAT_182671c70;
  uVar8 = DAT_182671c6c;
  uVar6 = DAT_182671c58;
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c70;
  uVar45 = (ulonglong)DAT_182671c94;
  uVar17 = DAT_182671c70 - DAT_182671c94;
  uVar38 = (ulonglong)uVar17;
  uVar48 = (ulonglong)DAT_182671c48;
  uVar30 = (ulonglong)DAT_182671c58;
  uVar46 = DAT_182671c48 * DAT_182671c8c;
  uVar26 = (ulonglong)DAT_182671c78;
  uVar35 = (ulonglong)DAT_182671c74;
  uVar53 = DAT_182671c88 * DAT_182671c6c;
  uVar40 = DAT_182671c58 * DAT_182671c74;
  uVar60 = DAT_182671c78 << 0x10 | DAT_182671c78 >> 0x10;
  uVar18 = *(uint *)(&DAT_182613210 + (uVar38 ^ 0x27867973) + (longlong)DAT_182672050) ^
           DAT_182671c70;
  uVar19 = *(uint *)(&DAT_182613220 + DAT_182672050) ^ DAT_182671c94;
  uVar20 = CONCAT44(DAT_182671e90,DAT_182671e90);
  DAT_182671c50 = uVar53;
  DAT_182671c54 = uVar46;
  DAT_182671c5c = uVar60;
  DAT_182671c64 = uVar40;
  DAT_182671c7c = uVar17;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar40 ^ 0x19b1772a)) =
       CONCAT44(DAT_182671c58,DAT_182671c74) ^ *(ulonglong *)(DAT_182671c40 + -0xa78) ^ uVar20 ^
       0x3dc2174d348a97a3;
  uVar13 = DAT_182671d7c;
  uVar7 = DAT_182671c8c;
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar55 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  uVar41 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar39 = (ulonglong)uVar46;
  uVar31 = *(ulonglong *)(lVar3 - (uVar39 ^ 0x47c9b98)) ^ *(ulonglong *)(DAT_182671c40 + -0xc90) ^
           uVar41 ^ uVar55;
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar31 ^ uVar22;
  uVar49 = CONCAT44(uVar13,uVar13);
  uVar31 = uVar31 >> (((byte)uVar7 ^ 0x61) & 0x3f);
  *(ulonglong *)(lVar4 + -0x228) = uVar31 ^ uVar49;
  uVar15 = DAT_182671e10;
  uVar21 = (*(ulonglong *)(lVar4 - (uVar35 ^ 0xe414d16)) ^ uVar22) << 0x1f;
  *(ulonglong *)(lVar4 + -0xbd8) = uVar21 ^ uVar22;
  uVar13 = DAT_182671cd0;
  uVar47 = CONCAT44(uVar15,uVar15);
  uVar31 = uVar31 | uVar21;
  *(ulonglong *)(lVar4 + -0xc90) = uVar31 ^ uVar47;
  uVar15 = DAT_182671fa4;
  lVar3 = DAT_182671c40;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xc18) = uVar31 >> (((byte)uVar13 ^ *(byte *)(lVar4 + -0x920)) & 0x3f);
  uVar56 = CONCAT44(uVar15,uVar15);
  uVar32 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  uVar21 = (*(ulonglong *)(lVar3 - (uVar23 ^ 0x4b3587fd)) ^ uVar41) -
           (*(ulonglong *)(lVar3 - (uVar30 ^ 0x2f4e62af)) ^ uVar56);
  uVar42 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  *(ulonglong *)(lVar3 + -0x228) = uVar21 ^ uVar32;
  uVar33 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar3 + -0xbd8) =
       uVar21 - (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x15310a9f)) ^ uVar47) ^ uVar42;
  lVar3 = DAT_182671c40;
  uVar24 = (ulonglong)uVar14;
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       (CONCAT44(uVar14,uVar11) ^ 0xcee9f1f80367b244) -
       (*(ulonglong *)(DAT_182671c40 + -0xc38) ^ uVar42) ^ uVar33;
  uVar7 = DAT_182671c68;
  uVar31 = (ulonglong)uVar60;
  *(ulonglong *)(lVar3 + -0x920) = CONCAT44(uVar17,uVar60) ^ 0x34002a604064150 | 0xf0bf2d58b938bea3;
  uVar16 = DAT_182671df0;
  puVar1 = (ulonglong *)(lVar3 + -0x3d8);
  uVar58 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xeede30c7)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar53 ^ 0xa6f5f0f9)) ^ uVar47) +
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x23af1f72)) ^ uVar33) ^ uVar49;
  uVar41 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar21 = *(ulonglong *)(lVar3 + -0xa50) ^ *puVar1 ^ uVar41 ^ uVar58 ^ uVar49;
  *(ulonglong *)(lVar3 + -0xb18) = uVar21;
  *(longlong *)(lVar3 + -0x228) =
       -0x71e8bc897a299927 << ((*(byte *)(lVar3 - (uVar24 ^ 0x3116051f)) ^ (byte)uVar16) & 0x3f);
  uVar47 = CONCAT44(DAT_182671f74,DAT_182671f74);
  local_130 = (byte)uVar46;
  *(ulonglong *)(lVar3 + -0x920) =
       ((ulonglong)uVar16 << 0x1b | (ulonglong)(uVar16 >> 5)) ^
       *(ulonglong *)(lVar3 - (uVar35 ^ 0xe414a16)) >> 5 ^ uVar47;
  uVar13 = DAT_182671e64;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xc90) =
       (*(ulonglong *)(lVar3 + -0xa50) ^ uVar49) >> ((local_130 ^ 0xaa) & 0x3f);
  uVar34 = CONCAT44(uVar13,uVar13);
  bVar25 = (byte)uVar12;
  *(ulonglong *)(lVar3 + -0xc18) = (uVar21 ^ uVar58) << ((bVar25 ^ 0x51) & 0x3f) ^ uVar34;
  uVar43 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar3 + -0x228) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x4b3585c5)) ^ uVar47 |
       *(ulonglong *)(lVar3 - (uVar26 ^ 0xfc9841a9)) ^ uVar34) ^ uVar55;
  uVar12 = DAT_182671c80;
  *(ulonglong *)(lVar4 + -0xa50) =
       (*puVar1 ^ uVar41) -
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c80 ^ 0xfff7fd9f)) ^ uVar55) ^ uVar43;
  uVar35 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  puVar59 = (ulonglong *)(lVar4 - (uVar38 ^ 0x27867303));
  local_118 = (byte)uVar40;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x4db1f008)) =
       *(ulonglong *)(lVar4 + -0xbd8) ^ uVar35 ^ uVar42 ^ uVar20 ^ *puVar59;
  uVar21 = (*(ulonglong *)(lVar4 + -0xc90) ^ uVar35) >> ((local_118 ^ 0xd7) & 0x3f) ^ uVar56;
  *(ulonglong *)(lVar4 + -0xb18) = uVar21;
  uVar13 = DAT_182671cc0;
  *(ulonglong *)(lVar4 + -0x920) = 0xe19643f6b7b9793b >> (((byte)uVar21 ^ (byte)uVar15) & 0x3f);
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x2f4e64e7)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xfff7f327)) ^ uVar35) << 0x1b ^ uVar41;
  uVar36 = CONCAT44(DAT_182671d80,DAT_182671d80);
  uVar35 = *(ulonglong *)(lVar4 + -0xc18) ^ uVar41 | *(ulonglong *)(lVar4 + -0xb18) ^ uVar56;
  uVar21 = *(ulonglong *)(lVar4 + -0xbd8);
  *puVar1 = uVar35 ^ uVar36;
  *(ulonglong *)(lVar4 + -0xa78) = (uVar21 ^ uVar42) - uVar35 ^ uVar42;
  uVar54 = CONCAT44(DAT_182671d68,DAT_182671d68);
  puVar57 = (ulonglong *)(lVar4 - (uVar30 ^ 0x2f4e6b27));
  local_res20 = (byte)uVar9;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x31160727)) =
       *(ulonglong *)(lVar4 + -0xa50) ^ uVar54 ^ uVar36 ^ uVar43 ^ *puVar57;
  lVar3 = DAT_182671c40;
  uVar50 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar35 = (uVar54 ^ *(ulonglong *)(DAT_182671c40 + -0x920)) >> ((local_res20 ^ 0xf2) & 0x3f);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar35 ^ uVar50;
  uVar13 = DAT_182671cdc;
  *(ulonglong *)(lVar3 + -0xbd8) =
       (*puVar2 ^ uVar42) + (CONCAT44(uVar53,uVar17) ^ 0x7e8484ee03079877);
  uVar49 = CONCAT44(uVar13,uVar13);
  uVar21 = (uVar54 ^ *(ulonglong *)(DAT_182671c40 + -0x920)) << ((bVar25 ^ 0x43) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar21 ^ uVar49;
  uVar27 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = (uVar35 | uVar21) ^ uVar27;
  lVar3 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x4db1f740)) =
       (CONCAT44(uVar40,uVar12) ^ 0xb1c641217f7da41d) + 0xe1bbd1d136b0f45f;
  uVar35 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x47c9c98)) =
       (*(ulonglong *)(lVar3 + -0xa50) ^ uVar43) -
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xeede318f)) ^ uVar27) ^ uVar33;
  uVar51 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(lVar3 + -0xc90) =
       *(ulonglong *)(lVar3 + -0xa78) ^ uVar51 ^ uVar42 ^ *(ulonglong *)(lVar3 + -0x228) ^ uVar55;
  uVar7 = DAT_182671c68;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0xbd8) =
       (*puVar1 ^ uVar36) - (*(ulonglong *)(lVar3 - (uVar35 ^ 0xb2266660)) ^ uVar54);
  uVar37 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x4b3586b5)) =
       (*(ulonglong *)(lVar4 + -0xc90) ^ uVar51) >> (((byte)uVar12 ^ 0x9f) & 0x3f) ^ uVar37;
  uVar13 = DAT_182671db8;
  *(ulonglong *)(lVar4 + -0x228) =
       (CONCAT44(uVar7,uVar11) ^ 0x14c785938577afb7) + (CONCAT44(uVar8,uVar6) ^ 0x77dfff4341aae7d7);
  lVar3 = DAT_182671c40;
  uVar44 = CONCAT44(uVar13,uVar13);
  *puVar1 = (*(ulonglong *)(lVar4 + -0xc90) ^ uVar51) << (((byte)uVar10 ^ 0x16) & 0x3f) ^ uVar44;
  uVar13 = DAT_182671f94;
  uVar21 = CONCAT44(DAT_182671f58,DAT_182671f58);
  puVar61 = (ulonglong *)(lVar4 - (uVar45 ^ 0x23af1a4a));
  *puVar61 = (*(ulonglong *)(lVar3 - (uVar48 ^ 0x22af11b2)) ^ uVar44 |
             uVar37 ^ *(ulonglong *)(lVar3 + -0xa50)) ^ uVar21;
  lVar3 = DAT_182671c40;
  uVar52 = CONCAT44(uVar13,uVar13);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xc18);
  uVar45 = (*(ulonglong *)(DAT_182671c40 + -0xa78) ^ uVar42) -
           (uVar21 ^ *(ulonglong *)(DAT_182671c40 + -0x920));
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar45 ^ uVar52;
  uVar35 = *puVar2 ^ uVar21 ^ uVar33 ^ *(ulonglong *)(lVar3 + -0x920);
  uVar55 = uVar35 ^ uVar55;
  uVar21 = (ulonglong)DAT_182671ca4;
  *(ulonglong *)(lVar3 + -0x228) = uVar55;
  lVar4 = DAT_182671c40;
  uVar21 = (uVar55 >> 0x20 ^ uVar21) >> 0x14;
  *(ulonglong *)(lVar3 + -0xc90) = uVar21 ^ uVar41;
  local_f8 = (byte)uVar14;
  uVar35 = uVar35 << ((local_f8 ^ 0xb) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa50) = uVar35 ^ uVar56;
  lVar3 = DAT_182671c40;
  uVar55 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = (uVar21 | uVar35) ^ uVar55;
  uVar13 = DAT_182671e24;
  *(ulonglong *)(lVar3 + -0x920) = (uVar44 ^ *puVar1) >> ((bVar25 ^ 0x74) & 0x3f);
  uVar56 = CONCAT44(uVar13,uVar13);
  uVar35 = uVar45 ^ *(ulonglong *)(lVar3 + -0xb18) ^ uVar27;
  uVar21 = *puVar59;
  *(ulonglong *)(lVar3 + -0xc90) = uVar35 ^ uVar47;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x228) =
       (*(ulonglong *)(lVar3 + -0xc18) ^ uVar33) - (uVar55 ^ uVar21) ^ uVar56;
  local_98 = (byte)uVar53;
  uVar41 = uVar35 >> ((local_98 ^ 0x50) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa50) = uVar41 ^ uVar27;
  local_120 = (byte)uVar5;
  uVar45 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar35 << ((local_120 ^ 0x6d) & 0x3f) ^ uVar45;
  uVar35 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar41 = *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x2786705b)) ^ uVar45 | uVar41;
  puVar28 = (ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x4db1ff40));
  puVar59 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0xb2266498));
  *puVar28 = uVar41 ^ uVar35;
  lVar3 = DAT_182671c40;
  uVar21 = *puVar1;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0xc18) = (*puVar59 ^ uVar52) - uVar41 ^ uVar43;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar40 ^ 0x19b177ea)) =
       uVar35 ^ uVar56 ^ uVar21 ^ *puVar2 ^ uVar20;
  uVar38 = (*(ulonglong *)(lVar3 + -0xb18) ^ uVar20) >> (((byte)(uVar11 >> 0x10) ^ 0x96) & 0x3f);
  uVar35 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar3 + -0x920) = uVar38 ^ uVar35;
  lVar4 = DAT_182671c40;
  uVar21 = (*(ulonglong *)(lVar3 + -0xb18) ^ uVar20) << ((local_res20 ^ 0xd7) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar21 ^ uVar54;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xfc984669)) = (uVar21 | uVar38) ^ uVar35;
  uVar38 = CONCAT44(DAT_182671e28,DAT_182671e28);
  bVar29 = (byte)DAT_182671e28;
  *puVar57 = (uVar56 ^ *(ulonglong *)(lVar4 + -0x228)) -
             (CONCAT44(DAT_182671db0,DAT_182671db0) ^ *(ulonglong *)(lVar4 + -0x5e8)) ^ uVar38;
  uVar13 = DAT_182671e14;
  uVar21 = *puVar1;
  uVar27 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar4 + -0xc90) =
       (CONCAT44(uVar5,uVar8) ^ 0x45af20ee68fc0f9d) >> ((bVar29 ^ *(byte *)puVar1) & 0x3f);
  lVar3 = DAT_182671c40;
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar53 ^ 0xa6f5f771)) =
       (uVar38 ^ uVar21) - (uVar35 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) ^ uVar41;
  lVar4 = DAT_182671c40;
  uVar21 = (ulonglong)DAT_182671c68;
  uVar38 = CONCAT44(uVar46,DAT_182671c68);
  *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0xfff7f5e7)) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x4db1f7b8)) ^ uVar56) +
       (*(ulonglong *)(DAT_182671c40 + -0x960) ^ uVar55) ^ uVar58;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar40 ^ 0x19b175d2)) =
       (uVar38 ^ 0x7f0ad78aa5155a58) + (CONCAT44(uVar10,uVar8) ^ 0x467ee3382c68ec4);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x2f4e6ad7)) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0xeede314f)) ^ uVar35) -
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0xfc9847e1)) ^ uVar58) ^ uVar47;
  *(uint *)(lVar4 + -0x644) = *(int *)(lVar4 - (uVar24 ^ 0x31160bd3)) * (DAT_182671c8c ^ 0x3fee3fde)
  ;
  uVar21 = CONCAT44(DAT_182671eec,DAT_182671eec);
  local_150 = (byte)uVar17;
  *(ulonglong *)(lVar4 - (uVar48 ^ 0x22af1efa)) =
       *(ulonglong *)(lVar4 - (uVar23 ^ 0x4b3580fd)) ^ uVar21 ^ uVar55 ^
       *(ulonglong *)(lVar4 + -0xa78) ^ uVar43;
  *puVar1 = (*(ulonglong *)(lVar4 + -0xc90) ^ uVar21) >> ((local_150 ^ 0x6b) & 0x3f) ^ uVar37;
  uVar31 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar21 = (*(ulonglong *)(lVar4 + -0xc90) ^ uVar21) << ((local_f8 ^ 0x37) & 0x3f);
  *(ulonglong *)(lVar4 + -0x920) = uVar21 ^ uVar31;
  uVar38 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar4 + -0xbd8) = uVar21 + (CONCAT44(uVar53,uVar17) ^ 0x43cb879efb282220);
  uVar20 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar4 + -0xa78) = (uVar31 ^ *puVar61 | uVar37 ^ *puVar28) ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xb22663d0)) =
       (*(ulonglong *)(lVar4 + -0xc18) ^ uVar43) - (uVar31 ^ *(ulonglong *)(lVar4 + -0x408)) ^
       uVar33;
  lVar3 = DAT_182671c40;
  uVar21 = *(ulonglong *)(DAT_182671c40 + -0xa78);
  *(ulonglong *)(lVar4 + -0xbd8) =
       (*(ulonglong *)(lVar4 - (uVar39 ^ 0x47c9c10)) ^ uVar33) -
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x3116047f)) ^ uVar20) ^ uVar50;
  uVar13 = DAT_182671dd8;
  *(ulonglong *)(lVar3 + -0x920) =
       (CONCAT44(uVar40,uVar10) ^ 0xe64e830df1bebef8) - (*(ulonglong *)(lVar4 + -0x2b0) ^ uVar34) ^
       uVar44;
  uVar38 = CONCAT44(uVar13,uVar13);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xfff7f697)) ^ uVar44) + (uVar20 ^ uVar21) ^ uVar38;
  uVar13 = DAT_182671c84;
  puVar28 = (ulonglong *)(lVar3 - (uVar23 ^ 0x4b3588ed));
  *puVar28 = (CONCAT44(uVar60,DAT_182671c68) ^ 0x86ce0e96aa38a324) + 0x54afbddb7ca5c1d7;
  uVar15 = DAT_182671e84;
  uVar20 = uVar38 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0xb18) ^ *puVar1;
  uVar51 = uVar20 ^ uVar51;
  *(ulonglong *)(lVar3 + -0xc18) = uVar51;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar21 = uVar51 >> 0x20 ^ uVar38 ^ (ulonglong)DAT_182671eb4;
  *(ulonglong *)(lVar3 + -0xc90) = uVar21;
  uVar15 = DAT_182671c90;
  lVar3 = DAT_182671c40;
  uVar21 = uVar20 << (((byte)uVar13 ^ 0xf4) & 0x3f) | uVar38 ^ uVar21;
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xb18);
  local_e0 = (byte)uVar8;
  puVar59 = (ulonglong *)(DAT_182671c40 - (uVar48 ^ 0x22af1662));
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar21 ^ uVar58;
  *puVar59 = (uVar41 ^ *puVar2) - uVar21 ^ uVar22;
  lVar4 = DAT_182671c40;
  uVar38 = *(ulonglong *)(lVar3 + -0xbd8) ^ uVar50 ^ *(ulonglong *)(lVar3 + -0x228);
  uVar35 = (ulonglong)DAT_182671c4c;
  uVar21 = (uVar38 ^ uVar47) >> (((byte)uVar15 ^ 0x95) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar21 ^ uVar50;
  *puVar1 = uVar38;
  uVar38 = (uVar38 ^ uVar47) << ((bVar25 ^ 0x4a) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc90) = uVar38 ^ uVar45;
  uVar38 = uVar38 | uVar21;
  uVar21 = uVar38 ^ uVar42;
  *(ulonglong *)(lVar4 + -0xb18) = uVar21;
  *(ulonglong *)(lVar4 + -0x920) =
       (CONCAT44(uVar53,uVar11) ^ 0x293ccb7cb1b24017) + (*(ulonglong *)(lVar4 + -0x408) ^ uVar22);
  uVar13 = DAT_182671f38;
  uVar38 = (*(ulonglong *)(lVar4 - (uVar35 ^ 0x9e3fe52f)) ^ uVar50) - uVar38 ^ uVar32;
  *(ulonglong *)(lVar4 + -0x228) = uVar38;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar39 = *(ulonglong *)(lVar4 - (uVar39 ^ 0x47c9488)) ^ uVar31 ^ uVar21 ^ uVar42 ^ uVar22;
  *puVar1 = uVar39;
  uVar20 = (uVar39 ^ uVar31) >> ((local_e0 ^ 0x35) & 0x3f);
  local_128 = (byte)uVar6;
  *(ulonglong *)(DAT_182671c40 + -0x920) = uVar20 ^ uVar36;
  uVar13 = DAT_182671cec;
  lVar3 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = (uVar31 ^ uVar39) << ((local_128 ^ 0xf9) & 0x3f) ^ uVar21
  ;
  uVar20 = *(ulonglong *)(lVar3 - (uVar35 ^ 0x9e3fe267)) ^ uVar21 | uVar20;
  *(ulonglong *)(lVar3 + -0xc18) = uVar20 ^ CONCAT44(uVar13,uVar13);
  uVar21 = CONCAT44(uVar15,DAT_182671c8c);
  *(ulonglong *)(lVar3 + -0xbd8) =
       (*puVar28 ^ uVar22) - uVar20 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  *(ulonglong *)(lVar3 + -0xb18) = (uVar21 ^ 0x7b305c7403) << 0x18;
  uVar21 = *(ulonglong *)(lVar3 - (uVar48 ^ 0x22af1812));
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar18;
  *puVar1 = uVar21 ^ uVar49 ^ uVar58 ^ uVar32 ^ uVar38;
  return;
}



############ FUN_ 180f5a930 size=5717 ############

void FUN_180f5a930(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  byte bVar13;
  uint uVar14;
  ulonglong uVar15;
  byte bVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  byte local_130;
  byte local_128;
  byte local_100;
  byte local_e0;
  
  uVar10 = DAT_182671d00;
  uVar9 = DAT_182671c90;
  uVar8 = DAT_182671c88;
  uVar6 = DAT_182671c64;
  uVar5 = DAT_182671c5c;
  uVar4 = DAT_182671c50;
  lVar2 = DAT_182671c40;
  uVar37 = (ulonglong)DAT_182671c90;
  uVar28 = (ulonglong)DAT_182671c50;
  uVar47 = (ulonglong)DAT_182671c64;
  uVar27 = DAT_182671c50 ^ DAT_182671c90;
  uVar42 = (ulonglong)DAT_182671c88;
  uVar30 = (ulonglong)DAT_182671c5c;
  uVar24 = DAT_182671c64 << 0x10 | DAT_182671c64 >> 0x10;
  uVar19 = DAT_182671c88 + DAT_182671c5c;
  uVar14 = *(uint *)(&DAT_182613210 + (uVar37 ^ 0x50aeda42) + (longlong)DAT_1826721a4) ^
           DAT_182671c50;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826721a4);
  uVar38 = CONCAT44(DAT_182671e60,DAT_182671e60);
  bVar29 = (byte)DAT_182671c5c;
  uVar15 = (ulonglong)uVar19;
  uVar31 = (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0xb08)) >> ((bVar29 ^ 0x55) & 0x3f);
  uVar17 = (ulonglong)DAT_182671c88;
  DAT_182671c58 = uVar24;
  DAT_182671c6c = uVar19;
  DAT_182671c70 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar31 ^ CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar51 = CONCAT44(uVar10,uVar10);
  uVar39 = CONCAT44(DAT_182671f80,DAT_182671f80);
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x4b202762)) =
       (uVar31 | uVar51 ^ *(ulonglong *)(lVar2 + -0x2b0)) ^ uVar39;
  uVar32 = (ulonglong)uVar24;
  uVar22 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  uVar26 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar17 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xb81694bb)) ^ uVar26 ^ uVar22 ^ uVar39 ^
           *(ulonglong *)(lVar2 + -0x760);
  *(ulonglong *)(lVar2 + -0xda8) = uVar17;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       (CONCAT44(uVar24,uVar19) ^ 0xf5dd4d2964496867) + (uVar17 ^ uVar22);
  uVar10 = DAT_182671d1c;
  uVar25 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar43 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  uVar17 = (uVar25 ^ *(ulonglong *)(lVar2 + -0x110)) + (CONCAT44(uVar5,uVar9) ^ 0x94f533f8a47f97b4);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar17 ^ uVar43;
  lVar2 = DAT_182671c40;
  uVar40 = CONCAT44(uVar10,uVar10);
  uVar48 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar31 = (CONCAT44(uVar8,uVar9) ^ 0x74b6ad89ee5f8ac7) +
           (uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0x828));
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar31 ^ uVar48;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x98a3b266)) = uVar31 + uVar17 ^ uVar25;
  uVar41 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x3eb33c44)) =
       (*(ulonglong *)(lVar2 - (uVar15 ^ 0x3eb3399c)) ^ uVar43) << ((byte)uVar4 & 0x3f) ^ uVar41;
  uVar7 = DAT_182671c74;
  lVar3 = DAT_182671c40;
  puVar33 = (ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xf3931622));
  uVar49 = (ulonglong)uVar27;
  puVar23 = (ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x6bb2ed89));
  uVar39 = (ulonglong)DAT_182671c74;
  *puVar23 = *puVar33 >> (((byte)uVar27 ^ 0xdc) & 0x3f);
  uVar10 = DAT_182671e5c;
  uVar5 = DAT_182671c94;
  uVar31 = (ulonglong)DAT_182671c94;
  uVar20 = uVar7 & DAT_182671c94;
  uVar18 = CONCAT44(DAT_182671c94,uVar7);
  uVar21 = uVar20 ^ 0xe4378df1;
  bVar16 = (byte)uVar7;
  uVar46 = (ulonglong)uVar21;
  uVar34 = CONCAT44(DAT_182671f38,DAT_182671f38);
  DAT_182671c4c = uVar21;
  *(ulonglong *)(lVar3 + -0x8f0) =
       (uVar43 ^ *(ulonglong *)(lVar3 + -0x5e8)) >> ((bVar16 ^ 0x6b) & 0x3f) ^ uVar34;
  uVar17 = CONCAT44(uVar10,uVar10);
  puVar44 = (ulonglong *)(lVar3 - (uVar46 ^ 0xe427adfd));
  uVar43 = CONCAT44(DAT_182671d74,DAT_182671d74);
  *puVar44 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xe427a105)) ^ uVar34 |
             uVar41 ^ *(ulonglong *)(lVar3 + -0x30)) ^ uVar17;
  *(ulonglong *)(lVar3 + -0x7e8) =
       uVar25 ^ *(ulonglong *)(lVar3 + -0xa70) ^ *(ulonglong *)(lVar3 + -0x408) ^ uVar43 ^ uVar17;
  uVar12 = DAT_182671d80;
  uVar34 = (ulonglong)DAT_182671d80;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x130760d)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x1307265)) ^ uVar43) +
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xc18)) ^ uVar40;
  uVar45 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xb18) =
       (*(ulonglong *)(lVar3 + -0x7e8) ^ uVar43) << ((bVar16 ^ 0x5a) & 0x3f) ^ uVar51;
  *(byte *)(lVar3 + -0x9e9) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x370) ^ uVar34) ^ (byte)DAT_182671f14;
  bVar13 = (byte)uVar9;
  *(ulonglong *)(lVar3 + -0x4b8) =
       (*(ulonglong *)(lVar3 + -0x7e8) ^ uVar43) >> ((bVar13 ^ 0x58) & 0x3f) ^ uVar45;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x749227ac)) = (uVar30 ^ 0x2c955000) >> 0xb;
  uVar35 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *(ulonglong *)(lVar3 + -0x680) =
       (*(ulonglong *)(lVar3 - (uVar49 ^ 0x3b1c3553)) ^ uVar45 |
       uVar51 ^ *(ulonglong *)(lVar3 + -0xb18)) ^ uVar35;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x1307e85)) =
       *(ulonglong *)(lVar3 + -0x4b8) ^ uVar45 | CONCAT44(uVar8,uVar24) ^ 0x2b8cdd230b204df5;
  uVar53 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar3 + -0x888) =
       *(ulonglong *)(lVar3 - (uVar46 ^ 0xe427af75)) ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x380) ^
       uVar53 ^ uVar35;
  puVar50 = (ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xe427a385));
  uVar43 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  *(ulonglong *)(lVar3 + -0x2b0) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x749229dc)) ^ uVar22) + (uVar25 ^ *puVar50) ^ uVar43;
  uVar10 = DAT_182671ca0;
  *(ulonglong *)(lVar3 + -0x760) =
       CONCAT44(uVar24,uVar7) ^ CONCAT44(uVar20,uVar20) ^ 0xe4378df1e4378df1 ^ 0x5a93a0b00da42c40;
  uVar26 = CONCAT44(uVar10,uVar10);
  uVar17 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(lVar3 + -0xa08) =
       (*(ulonglong *)(lVar3 - (uVar47 ^ 0xb816950b)) ^ uVar22) << 0xc ^ uVar26;
  local_128 = (byte)uVar19;
  *(ulonglong *)(lVar3 - (uVar47 ^ 0xb81699b3)) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0xda8)) >> (local_128 & 0x3f) ^ uVar17;
  uVar25 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(lVar3 + -0x828) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0x110) | *(ulonglong *)(lVar3 + -0xa08) ^ uVar26) ^ uVar25;
  *(byte *)(lVar3 - (uVar31 ^ 0x13070b4)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x370) ^ uVar34) ^ (byte)DAT_182671f14;
  uVar11 = DAT_182671e88;
  uVar17 = *(ulonglong *)(lVar3 + -0x2b0);
  uVar34 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  uVar25 = *(ulonglong *)(lVar3 - (uVar37 ^ 0x50aed262)) ^ uVar17 ^ uVar34 ^ uVar25 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x510) = uVar25;
  uVar10 = DAT_182671df0;
  lVar2 = DAT_182671c40;
  uVar41 = CONCAT44(uVar11,uVar11);
  uVar26 = (uVar40 ^ *(ulonglong *)(lVar3 + -0x380)) + (uVar25 ^ uVar34) ^ uVar41;
  uVar51 = (uVar25 ^ uVar34) << (((byte)uVar27 ^ 0xd1) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa50) = uVar26;
  uVar11 = DAT_182671f10;
  uVar7 = DAT_182671ee0;
  uVar40 = (*(ulonglong *)(lVar3 + -0x510) ^ uVar34) >> ((bVar13 ^ 0x4c) & 0x3f);
  uVar34 = (ulonglong)DAT_182671ee0;
  *(ulonglong *)(lVar3 + -0x5e8) = uVar40 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x628) = uVar51 ^ CONCAT44(uVar7,uVar7);
  uVar10 = DAT_182671d88;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar40 = (uVar40 | uVar51) ^ uVar25;
  *(ulonglong *)(lVar3 + -0x30) = uVar40;
  uVar52 = CONCAT44(uVar10,uVar10);
  uVar51 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *(ulonglong *)(lVar2 + -0x8f0) = uVar40 ^ uVar26 ^ uVar52 ^ uVar25 ^ uVar41;
  uVar10 = DAT_182671d34;
  lVar3 = DAT_182671c40;
  local_100 = (byte)uVar8;
  *(ulonglong *)(lVar2 + -0x408) =
       (uVar17 ^ uVar43) + (uVar53 ^ *(ulonglong *)(lVar2 + -0x888)) ^ uVar51;
  uVar25 = CONCAT44(uVar10,uVar10);
  puVar36 = (ulonglong *)(lVar2 - (uVar31 ^ 0x1307995));
  local_130 = (byte)(uVar6 >> 0x10);
  *puVar36 = (uVar53 ^ *(ulonglong *)(lVar2 + -0x888)) << ((local_100 ^ 0x14) & 0x3f) ^ uVar25;
  uVar26 = (uVar53 ^ *(ulonglong *)(lVar2 + -0x888)) >> ((local_130 ^ 0x3c) & 0x3f);
  uVar40 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  uVar17 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *(ulonglong *)(lVar2 + -0x7e8) = uVar26 ^ uVar40;
  uVar26 = (uVar26 | uVar25 ^ *(ulonglong *)(lVar2 + -0xc18)) ^ uVar17;
  uVar25 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar2 + -0x3d8) = uVar26;
  uVar17 = uVar26 ^ *puVar44 ^ uVar25 ^ uVar17 ^ uVar51;
  uVar53 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar2 + -0xb18) = uVar17;
  uVar10 = DAT_182671ecc;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (uVar17 ^ uVar25) + (*(ulonglong *)(lVar2 + -0xa50) ^ uVar41) ^ uVar53;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 + -0xb08) = (uVar25 ^ uVar17) << 0x20 ^ uVar26;
  uVar17 = CONCAT44(DAT_182671e90,DAT_182671e90);
  *(ulonglong *)(lVar3 - (uVar49 ^ 0x3b1c376b)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x6bb2e0b9)) ^ uVar25) >> ((bVar16 ^ 0x54) & 0x3f) ^ uVar17
  ;
  uVar25 = CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar43 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *puVar50 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xf3931af2)) ^ uVar17 |
             *(ulonglong *)(lVar3 - (uVar30 ^ 0xf393177a)) ^ uVar26) ^ uVar25;
  uVar17 = uVar52 ^ *(ulonglong *)(lVar3 + -0x8f0);
  *(ulonglong *)(lVar3 + -0x760) =
       *(ulonglong *)(lVar3 + -0x4b8) ^ uVar43 ^ uVar25 ^ uVar53 ^ *(ulonglong *)(lVar3 + -0xa70);
  uVar11 = DAT_182671d5c;
  *(byte *)(lVar3 + -0x4d9) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x990) ^ uVar34) ^ (byte)DAT_182671f14;
  uVar10 = DAT_182671cd0;
  uVar26 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xda8) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0xf393187a)) ^ uVar51) + uVar17 ^ uVar26;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x4b202a0a)) = uVar17 << ((bVar16 ^ 0x54) & 0x3f) ^ uVar25;
  uVar10 = DAT_182671d24;
  uVar41 = (uVar52 ^ *(ulonglong *)(lVar3 + -0x8f0)) >> ((bVar16 ^ 0x54) & 0x3f);
  uVar34 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  *(ulonglong *)(lVar3 + -0x110) = uVar41 ^ uVar34;
  uVar17 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar46 ^ 0xe427a1dd)) =
       (*(ulonglong *)(lVar3 + -0xa08) ^ uVar25 | uVar41) ^ uVar17;
  *(ulonglong *)(lVar3 + -0x380) =
       *(ulonglong *)(lVar3 - (uVar32 ^ 0x98a3b5be)) ^ uVar22 ^ uVar17 ^ uVar26 ^
       *(ulonglong *)(lVar3 + -0x828);
  *(ulonglong *)(lVar3 - (uVar47 ^ 0xb8169db3)) =
       CONCAT44(uVar4,uVar19) ^ 0x5ccd5ef96ed8a253 | uVar34 ^ *(ulonglong *)(lVar3 + -0x110);
  uVar46 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar34 = (*(ulonglong *)(lVar3 - (uVar49 ^ 0x3b1c326b)) ^ uVar22) +
           (CONCAT44(uVar27,uVar27) ^ 0x48abc6085ed6166);
  uVar25 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *(ulonglong *)(lVar3 + -0x628) = uVar34 ^ uVar46;
  uVar10 = DAT_182671e08;
  uVar17 = (CONCAT44(uVar9,uVar24) ^ 0x7060e2cf827946ab) + (*(ulonglong *)(lVar3 + -0x4b8) ^ uVar53)
  ;
  *(ulonglong *)(lVar3 + -0x5e8) = uVar17 ^ uVar25;
  lVar2 = DAT_182671c40;
  uVar22 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 + -0x30) = uVar34 + uVar17 ^ uVar22;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x6bb2e911)) = (*puVar23 ^ uVar46) << 0xe ^ uVar45;
  uVar17 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xf39314fa)) =
       (uVar46 ^ *(ulonglong *)(lVar2 + -0x628)) >> (((byte)uVar6 ^ 0x91) & 0x3f) ^ uVar17;
  *(ulonglong *)(lVar2 - (uVar47 ^ 0xb8169f4b)) =
       (CONCAT44(uVar6,uVar8) ^ 0x1a6a3c82cb5f4102) << ((bVar13 ^ 0x7f) & 0x3f);
  uVar10 = DAT_182671d48;
  uVar25 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar17 = (*(ulonglong *)(lVar2 - (uVar49 ^ 0x3b1c335b)) ^ uVar45 |
           uVar17 ^ *(ulonglong *)(lVar2 + -0x888)) ^ uVar25;
  uVar41 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(lVar2 + -0xc18) = uVar17;
  uVar17 = *(ulonglong *)(lVar2 - (uVar32 ^ 0x98a3b826)) ^ uVar41 ^ uVar17 ^ uVar25 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x3d8) = uVar17;
  uVar34 = (CONCAT44(uVar20,uVar4) ^ 0x59aa57c952aad29f) + (*(ulonglong *)(lVar2 + -0x760) ^ uVar43)
  ;
  *(ulonglong *)(lVar2 + -0xa50) =
       (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar45) << (((byte)uVar17 ^ (byte)uVar10) & 0x3f);
  uVar7 = DAT_182671d9c;
  uVar25 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(lVar2 + -0xb08) =
       -0x561f4ead04aef40 - (CONCAT44(uVar20,uVar19) ^ 0x9ed6acc06d9c0b86);
  uVar11 = DAT_182671e9c;
  *(ulonglong *)(lVar2 + -0xb18) = uVar34 ^ uVar25;
  uVar10 = DAT_182671cec;
  uVar17 = (*(ulonglong *)(lVar2 - (uVar37 ^ 0x50aed7e2)) ^ uVar26) + (uVar18 ^ 0x5fa9123b2f6ca1c5);
  *(ulonglong *)(lVar2 + -0x680) = uVar17 ^ CONCAT44(uVar11,uVar11);
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x1307ffd)) = uVar34 + uVar17 ^ uVar26;
  uVar18 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x98a3bc1e)) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0xb18)) << ((local_130 ^ 6) & 0x3f) ^ uVar18;
  uVar43 = (ulonglong)DAT_182671efc;
  uVar17 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar45 = CONCAT44(DAT_182671efc,DAT_182671efc);
  *(ulonglong *)(lVar2 + -0x8f0) =
       (ulonglong)*(ushort *)(lVar2 + -0xb12) ^ (ulonglong)(uVar7 >> 0x10) ^ uVar17;
  *(ulonglong *)(lVar2 + -0xa08) =
       (CONCAT44(uVar4,uVar6) ^ 0xb34e9751c18561e4) >> ((bVar29 ^ 0x4f) & 0x3f);
  uVar6 = DAT_182671f74;
  uVar10 = DAT_182671e48;
  uVar18 = *(ulonglong *)(lVar2 - (uVar49 ^ 0x3b1c391b)) ^ uVar17 |
           uVar18 ^ *(ulonglong *)(lVar2 + -0x408);
  uVar46 = uVar18 ^ uVar45;
  uVar17 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar2 + -0x828) = uVar46;
  uVar34 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x110) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar15 ^ 0x3eb337fc)) ^ uVar17) ^
       CONCAT44(uVar10,uVar10);
  uVar17 = uVar46 ^ uVar34 ^ uVar45 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0xa70);
  *(ulonglong *)(lVar2 + -0x510) = uVar17;
  *(ulonglong *)(lVar2 + -0x380) =
       (uVar17 ^ uVar34) + (uVar22 ^ *(ulonglong *)(lVar2 + -0x30)) ^ uVar34;
  *(ulonglong *)(lVar2 + -0x4b8) = -0x3dbed635b1ed2b6a - (uVar25 ^ *(ulonglong *)(lVar2 + -0xb18));
  uVar11 = DAT_182671ea8;
  lVar2 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = (uVar34 ^ uVar17) << ((bVar29 ^ 0x46) & 0x3f) ^ uVar25;
  uVar17 = ((ulonglong)uVar6 << 0x14 | (ulonglong)(uVar6 >> 0xc)) ^
           *(ulonglong *)(lVar2 + -0x510) >> 0xc ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x628) = uVar17;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x50aedda2)) = uVar18 << (((byte)uVar17 ^ (byte)uVar11) & 0x3f);
  uVar10 = DAT_182671d28;
  uVar18 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar17 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0x98a3be3e)) ^ CONCAT44(uVar11,uVar11) |
           uVar25 ^ *(ulonglong *)(lVar2 + -0x5e8)) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x888) = uVar17;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xc18) =
       uVar25 ^ uVar17 ^ uVar18 ^ uVar34 ^ *(ulonglong *)(lVar2 + -0x380);
  *puVar33 = (*(ulonglong *)(lVar2 - (uVar49 ^ 0x3b1c3233)) ^ uVar41) +
             (uVar26 ^ *(ulonglong *)(lVar2 + -0xa70)) ^ uVar51;
  uVar26 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xf3931ec2)) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x3d8)) << ((bVar13 ^ 0x73) & 0x3f) ^ uVar26;
  uVar6 = DAT_182671da0;
  local_e0 = (byte)uVar21;
  uVar22 = (ulonglong)DAT_182671da0;
  uVar17 = (uVar41 ^ *(ulonglong *)(lVar2 + -0x3d8)) >> ((local_e0 ^ 0xf2) & 0x3f);
  *(ulonglong *)(lVar2 + -0x760) = uVar17 ^ CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar2 + -0xb08) =
       *(ulonglong *)(lVar2 - (uVar39 ^ 0x749226c4)) ^ uVar26 |
       uVar51 ^ *(ulonglong *)(lVar2 + -0xa50);
  *(ulonglong *)(lVar2 + -0xda8) = (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar26 | uVar17) ^ uVar34;
  uVar10 = DAT_182671cc8;
  uVar18 = CONCAT44(uVar6,uVar6);
  uVar17 = *(ulonglong *)(lVar2 - (uVar42 ^ 0x4b202daa)) ^ uVar18 ^ uVar34 ^ uVar51 ^
           *(ulonglong *)(lVar2 + -0xa50);
  *(ulonglong *)(lVar2 + -0x680) = uVar17;
  lVar2 = DAT_182671c40;
  uVar46 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_182671c40 - (uVar32 ^ 0x98a3b21e)) =
       (uVar17 ^ uVar18) + (uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0x380)) ^ uVar46;
  *(ulonglong *)(lVar2 + -0x408) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0x680)) << (((byte)uVar4 ^ 0xb6) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xf3931482)) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0x749222f4)) >> 0x20 ^ uVar22) >> 9 ^ uVar38;
  uVar10 = DAT_182671eec;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 + -0xa08) ^ uVar46) - (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar26);
  uVar17 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x74922444)) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x8f0) | *(ulonglong *)(lVar2 + -0x408) ^ uVar40) ^ uVar17;
  *(ulonglong *)(lVar2 + -0xb18) =
       uVar48 ^ *(ulonglong *)(lVar2 + -0xa08) ^ uVar17 ^ uVar46 ^ *(ulonglong *)(lVar2 + -0x30);
  uVar22 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(undefined8 *)(lVar2 + -0x510) = 0xee82780d19807b74;
  uVar10 = DAT_182671d44;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0xc18)) + (*(ulonglong *)(lVar2 + -0xa50) ^ uVar51) ^
       uVar22;
  uVar18 = CONCAT44(uVar10,uVar10);
  uVar17 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar2 + -0x828) = (uVar25 ^ *puVar36) << ((bVar13 ^ 0x62) & 0x3f) ^ uVar18;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       (uVar25 ^ *(ulonglong *)(DAT_182671c40 + -0xc18)) >> (((byte)uVar5 ^ 0x95) & 0x3f) ^ uVar17;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x1307065)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar47 ^ 0xb816908b)) ^ uVar18 |
       *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x7492239c)) ^ uVar17) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x628) =
       *(ulonglong *)(lVar2 + -0x4b8) ^ uVar22 ^ uVar45 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x5e8);
  uVar39 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *(ulonglong *)(lVar2 - (uVar49 ^ 0x3b1c3963)) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0x50aedc62)) ^ uVar45) +
       (*(ulonglong *)(lVar2 - (uVar15 ^ 0x3eb3367c)) ^ uVar46) ^ uVar39;
  uVar31 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x3eb33604)) =
       (uVar45 ^ *(ulonglong *)(lVar2 + -0x628)) << ((bVar16 ^ 0x71) & 0x3f) ^ uVar31;
  uVar31 = uVar31 ^ *(ulonglong *)(lVar2 + -0xa70);
  *(ulonglong *)(lVar2 + -0x3d8) = uVar31 << ((local_130 ^ 0x16) & 0x3f);
  uVar17 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(ulonglong *)(lVar2 + -0xb08) =
       (*(ulonglong *)(lVar2 + -0x628) >> 0x20 ^ uVar43) >> 0x1b ^ uVar17;
  uVar10 = DAT_182671d18;
  uVar37 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  uVar17 = (*(ulonglong *)(lVar2 - (uVar28 ^ 0x6bb2e0a9)) ^ uVar17 | uVar31) ^ uVar37;
  *(ulonglong *)(lVar2 + -0x760) = uVar17;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x6bb2e609)) =
       CONCAT44(uVar10,uVar10) ^ uVar17 ^ uVar37 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x888);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar27) * 4) = uVar14;
  return;
}



############ FUN_ 180f562a0 size=3376 ############

void FUN_180f562a0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  byte *pbVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  byte bVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  
  uVar3 = DAT_182671c8c;
  uVar17 = DAT_182671c88;
  uVar9 = DAT_182671c74;
  uVar8 = DAT_182671c6c;
  uVar5 = DAT_182671c64;
  uVar7 = DAT_182671c58;
  uVar6 = DAT_182671c50;
  uVar4 = DAT_182671c4c;
  lVar1 = DAT_182671c40;
  uVar33 = DAT_182671c64 * DAT_182671c78;
  uVar32 = (DAT_182671c50 << 0x10 | DAT_182671c50 & 0xff00) << 8 | DAT_182671c50 >> 8 & 0xff00 |
           DAT_182671c50 >> 0x18;
  DAT_182671c68 = uVar32 ^ 0x1c24b482;
  uVar29 = (ulonglong)DAT_182671c68;
  uVar16 = DAT_182671c5c & 3;
  if (uVar16 < 2) {
    uVar27 = DAT_182671c88;
    if (uVar16 == 0) {
      uVar27 = DAT_182671c5c;
    }
  }
  else {
    uVar27 = DAT_182671c4c;
    if (uVar16 < 3) {
      uVar27 = DAT_182671c8c;
    }
  }
  uVar18 = (ulonglong)DAT_182671c74;
  uVar25 = (ulonglong)DAT_182671c58;
  uVar30 = DAT_182671c58 ^ DAT_182671c74;
  uVar21 = *(uint *)(&DAT_182613218 + DAT_182672198) ^ DAT_182671c58;
  uVar16 = *(uint *)(&DAT_182613210 + (uVar18 ^ 0x3110d381) + (longlong)DAT_182672198);
  uVar20 = (ulonglong)DAT_182671c50;
  uVar19 = (ulonglong)DAT_182671c6c;
  bVar26 = (byte)DAT_182671c4c;
  DAT_182671c70 = uVar33;
  DAT_182671c7c = uVar27;
  DAT_182671c84 = uVar30;
  *(byte *)(DAT_182671c40 - ((ulonglong)uVar27 ^ 0x50b1577a)) = (byte)DAT_182671c5c ^ 0x2f;
  *(ulonglong *)(lVar1 + -0xa70) = *(ulonglong *)(lVar1 + -0x2b0) >> ((bVar26 ^ 0xa9) & 0x3f);
  *(undefined8 *)(lVar1 - (uVar19 ^ 0x7fbfd98f)) = 0xcb9a1f257e9c8eeb;
  *(ulonglong *)(lVar1 - (uVar20 ^ 0x5bc59c70)) = CONCAT44(uVar17,uVar32) ^ 0x56fb60592e2a485a;
  *(undefined8 *)(lVar1 + -0x5f8) = *(undefined8 *)(lVar1 - ((ulonglong)uVar33 ^ 0x8ac95326));
  uVar10 = DAT_182671c78;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x1cb274b9)) =
       CONCAT44(DAT_182671c78,uVar27) ^ 0x1171e050cadfbaa9;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar8 ^ 0x7fbfdaff)) = *(undefined8 *)(lVar1 + -0x328);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar3 ^ 0x5854a438)) =
       CONCAT44(uVar5,uVar32) ^ 0x16623b88448351d6;
  uVar19 = (ulonglong)uVar30;
  uVar20 = (ulonglong)DAT_182671f34;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0x5bc59d18)) =
       CONCAT44(uVar17,uVar7) ^ 0xd4d07756263b8b1c;
  uVar32 = DAT_182671c5c;
  lVar1 = DAT_182671c40;
  puVar24 = (ulonglong *)(DAT_182671c40 + -0x5f8);
  *(ulonglong *)(DAT_182671c40 + -0x628) = CONCAT44(uVar4,uVar8) ^ 0x574b3c521e9ee0dd;
  uVar29 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0x3110d131)) = uVar20 ^ *puVar24;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x5854a2e8)) = CONCAT44(uVar6,uVar5) ^ 0x949a924ef4d2b09c;
  uVar29 = (ulonglong)DAT_182671f3c;
  *(ulonglong *)(lVar1 + -0x90) = *(ulonglong *)(lVar1 + -0x1c0) ^ uVar29;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar27 ^ 0x50b15450)) = 0xcf45ae659b5a55f0;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar1 + -0x600) =
       (CONCAT44(uVar7,uVar6) ^ 0xad68aa855bc59601) + (uVar29 ^ *(ulonglong *)(lVar1 + -0x90));
  bVar14 = (byte)DAT_182671ccc;
  *(byte *)(lVar2 + -0x182) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar18 ^ 0x3110d301)) ^ uVar29) ^ (byte)DAT_182671ccc ^
       (byte)DAT_182671d08;
  uVar27 = DAT_182671c78;
  *(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c78 ^ 0xfcdff9fb)) = uVar32 ^ 0xd39ee30a;
  uVar11 = DAT_182671c8c;
  *(uint *)((ulonglong)DAT_182671f60 ^ *(ulonglong *)(DAT_182671c40 + -0x480)) = uVar30 ^ 0x7b533216
  ;
  uVar3 = DAT_182671c68;
  lVar1 = DAT_182671c40;
  bVar26 = *(byte *)(DAT_182671c40 + -0x182);
  *(ulonglong *)(DAT_182671c40 + -0x480) = CONCAT44(uVar32,uVar11) ^ 0xcc01ce4d262b65f6;
  uVar29 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar1 + -0x90) = CONCAT44(uVar6,uVar3) ^ 0xd385dc382961c3e8;
  uVar29 = *(ulonglong *)(lVar1 - (uVar29 ^ 0x82dfd920));
  *(undefined8 *)(lVar1 + -0x3d8) = 0x2a75f33859dc85cd;
  *(ulonglong *)(lVar1 + -0xb00) = (uVar29 ^ uVar20) + 1;
  *(byte *)(*(ulonglong *)(lVar1 + -0x2a0) ^ uVar20) = bVar14 ^ bVar26;
  uVar3 = DAT_182671c48;
  uVar29 = *(ulonglong *)(lVar1 + -0xb00);
  *(ulonglong *)(lVar1 + -0xb00) = CONCAT44(uVar9,uVar11) ^ 0x9b5deca7cc8d895e;
  *(byte *)(lVar1 + -0x182) = (byte)uVar7 ^ 0xd0;
  *(ulonglong *)(lVar1 + -0xb58) = uVar29;
  *(ulonglong *)(lVar1 + -0x4b8) = CONCAT44(uVar4,uVar27) ^ 0xfcc7ecb65f088027;
  uVar13 = DAT_182671c80;
  uVar22 = (ulonglong)DAT_182671d70;
  uVar20 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar1 + -0xa60) = CONCAT44(uVar17,uVar33) ^ 0x1cfa8f7efb534ba9;
  uVar28 = uVar13 & uVar3;
  *(undefined8 *)(lVar1 + -0x930) = *(undefined8 *)(lVar1 + -0x600);
  lVar1 = DAT_182671c40;
  DAT_182671c94 = uVar28 ^ 0x32aafc10;
  *(ulonglong *)(DAT_182671c40 + -0x600) = CONCAT44(uVar13,uVar3) ^ 0xf4d4900ea2257397;
  *(ulonglong *)(lVar1 + -0x330) = uVar29 ^ uVar22;
  uVar17 = DAT_182671cc0;
  lVar1 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671cc0;
  *(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x5efb0161)) =
       CONCAT44(uVar28,uVar13) ^ 0xb71b7ad5e3bb8285;
  uVar22 = (ulonglong)uVar17 ^ *(ulonglong *)(lVar1 + -0x930);
  *(ulonglong *)(lVar1 + -0xdb0) = uVar22;
  uVar31 = (ulonglong)DAT_182671d70;
  pbVar23 = (byte *)(uVar22 ^ uVar29);
  *(ulonglong *)(lVar1 + -0x930) = CONCAT44(uVar3,uVar28) ^ 0x106f687388420e29;
  *(byte **)(lVar1 + -8) = pbVar23 + (CONCAT44(uVar13,uVar13) ^ 0x5efb0a395efb0a38);
  uVar27 = DAT_182671c6c;
  uVar29 = (ulonglong)DAT_182671c6c;
  *(byte *)(lVar1 - (uVar20 ^ 0x5efb0bf8)) = *pbVar23 ^ (byte)DAT_182671f28 ^ (byte)DAT_182671d08;
  bVar26 = (byte)DAT_182671c5c;
  *(ulonglong *)(lVar1 - ((ulonglong)(uVar28 ^ 0x32aafc10) ^ 0x32eaf1a1)) =
       CONCAT44(uVar28,uVar3) ^ 0xec15c9753ccb8132;
  *(ulonglong *)(lVar1 + -0x6d0) =
       (*(ulonglong *)(lVar1 - (uVar19 ^ 0x9c787a24)) ^ uVar31) +
       (CONCAT44(uVar5,uVar13) ^ 0x5fffdb3a5efb0a38);
  uVar11 = DAT_182671c78;
  *(byte *)(*(ulonglong *)(lVar1 + -0x330) ^ uVar31) =
       *(byte *)(lVar1 + -0x1c1) ^ (byte)DAT_182671f28;
  *(byte *)(lVar1 - (uVar29 ^ 0x7fbfdafe)) = bVar26 ^ 0x4a;
  uVar17 = DAT_182671c50;
  uVar29 = (ulonglong)DAT_182671c50;
  *(undefined8 *)(lVar1 + -0xcd0) = *(undefined8 *)(lVar1 + -0x6d0);
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x5bc590d0)) = CONCAT44(uVar5,uVar11) ^ 0x8d66b9c268e9120c;
  uVar15 = DAT_182671ea4;
  uVar12 = DAT_182671c7c;
  uVar5 = DAT_182671c4c;
  uVar22 = (ulonglong)DAT_182671ea4;
  uVar31 = (ulonglong)DAT_182671c4c;
  uVar29 = *(ulonglong *)(lVar1 - (uVar18 ^ 0x3110d399));
  *(ulonglong *)(lVar1 + -0x4d8) = uVar29;
  lVar1 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671e20;
  *(ulonglong *)(DAT_182671c40 + -8) = CONCAT44(uVar12,uVar17) ^ 0x66f646308946f64d;
  *(ulonglong *)(lVar1 + -0x150) = uVar22 ^ *(ulonglong *)(lVar1 + -0xcd0);
  *(ulonglong *)(lVar1 + -0x490) = uVar29 ^ uVar18;
  uVar29 = (ulonglong)DAT_182671c8c;
  *(ulonglong *)(lVar1 + -0xcd0) = CONCAT44(uVar33,uVar12) ^ 0xf1e40f541188e3b8;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x5854a3c8)) = CONCAT44(uVar9,uVar11) ^ 0x8de939d2e4e6aa66;
  *(ulonglong *)(lVar1 + -0x6f8) =
       (CONCAT44(uVar3,uVar5) ^ 0x2040000550b15591) + (uVar18 ^ *(ulonglong *)(lVar1 + -0x490));
  *(byte *)(lVar1 + -0xa13) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c68 ^ 0x1cb27549)) ^ uVar18) ^
       (byte)DAT_182671f94 ^ (byte)DAT_182671d08;
  *(ulonglong *)(lVar1 + -0x490) = CONCAT44(uVar6,uVar7) ^ 0xa6545fef355c510;
  uVar29 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar1 + -0x548) =
       ((ulonglong)uVar15 ^ *(ulonglong *)(lVar1 + -0x150)) +
       (CONCAT44(uVar28,uVar13) ^ 0x4000015efb0a38);
  *(byte *)(*(ulonglong *)(lVar1 - (uVar25 ^ 0xad68abd5)) ^ uVar22) =
       *(byte *)(lVar1 - (uVar29 ^ 0x5fffd129)) ^ (byte)DAT_182671f94;
  *(undefined1 *)(lVar1 + -0xa13) = 0xff;
  bVar26 = (byte)DAT_182671f5c;
  uVar5 = DAT_182671dc0;
  uVar25 = (ulonglong)DAT_182671dc0;
  *(undefined8 *)(lVar1 + -0x5b8) = *(undefined8 *)(lVar1 - (uVar19 ^ 0x9c787c5c));
  *(undefined8 *)(lVar1 - (uVar31 ^ 0x50b150d8)) = 0xfa2094b2900a6f1a;
  uVar29 = *(ulonglong *)(lVar1 + -0x6f8);
  *(ulonglong *)(lVar1 + -0xda0) = uVar29;
  uVar22 = (ulonglong)DAT_182671cb4;
  *(ulonglong *)(lVar1 + -0x6f8) = CONCAT44(uVar12,uVar27) ^ 0x9e62733455a8eb57;
  *(ulonglong *)(lVar1 + -0x468) = uVar29 ^ uVar22;
  uVar29 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar1 + -0x238) = uVar25 ^ *(ulonglong *)(lVar1 + -0x5b8);
  *(undefined8 *)(lVar1 + -0x5b8) = 0xf59f53ac5eba5e37;
  uVar18 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xfcdff21f)) = CONCAT44(uVar7,DAT_182671c8c) ^ 0x61b2f8aca0654bb1
  ;
  *(ulonglong *)(lVar1 + -0x100) = (*(ulonglong *)(lVar1 - (uVar18 ^ 0x1cb275b1)) ^ uVar22) + 1;
  uVar6 = DAT_182671c7c;
  *(byte *)(lVar1 - ((ulonglong)uVar3 ^ 0x20400517)) =
       *(byte *)(uVar22 ^ *(ulonglong *)(lVar1 + -0x468)) ^ bVar26 ^ (byte)DAT_182671d08;
  *(ulonglong *)(lVar1 + -0x468) = CONCAT44(uVar8,uVar6) ^ 0x8353ffc880b78dc;
  puVar24 = (ulonglong *)(lVar1 - ((ulonglong)uVar32 ^ 0xa48b5a97));
  *(ulonglong *)(lVar1 + -0x838) =
       (CONCAT44(uVar4,uVar13) ^ 0x50b155905efb0a38) + ((ulonglong)uVar5 ^ *puVar24);
  *(byte *)(uVar25 ^ *puVar24) = bVar26 ^ *(byte *)(lVar1 + -0x512);
  *(byte *)(lVar1 + -0x512) = (byte)uVar33 ^ 0x32;
  *(undefined8 *)(lVar1 + -0x7b0) = *(undefined8 *)(lVar1 + -0x838);
  uVar4 = DAT_182671c54;
  uVar31 = (ulonglong)DAT_182671dfc;
  uVar17 = ~DAT_182671c54;
  uVar22 = (ulonglong)DAT_182671c54;
  uVar29 = CONCAT44(uVar17,DAT_182671c54);
  DAT_182671c60 = uVar17;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c54 ^ 0x40001b30)) = uVar29 ^ 0x1bfa42734e24d36b;
  puVar24 = (ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0xbfffedf7));
  *(ulonglong *)(lVar1 + -0x728) = *puVar24;
  uVar18 = (ulonglong)DAT_182671e6c;
  *puVar24 = CONCAT44(uVar4,uVar17) ^ 0xf8b5213f7a915a35;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x460) = uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0x7b0);
  *(ulonglong *)(lVar1 + -0x7b0) = uVar29 ^ 0x322e61643a6132c6;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x308) =
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar17 ^ 0xbfffebdf)) ^ uVar18;
  bVar26 = (byte)DAT_182671ce4;
  uVar29 = (ulonglong)DAT_182671c8c;
  uVar25 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar1 - (uVar22 ^ 0x40001420)) = CONCAT44(uVar17,uVar17) ^ 0xcba1553cf0fdf42a;
  lVar1 = DAT_182671c40;
  *(byte *)(DAT_182671c40 + -0xc29) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x5854a418)) ^ uVar18) ^ bVar26 ^
       (byte)DAT_182671d08;
  uVar29 = (ulonglong)DAT_182671f60;
  *(undefined4 *)(lVar1 - (uVar25 ^ 0x82dfd164)) = 0x1cec5b75;
  *(undefined4 *)(*(ulonglong *)(lVar1 + -0x538) ^ uVar29) = 0x939831c3;
  uVar5 = DAT_182671c68;
  uVar29 = CONCAT44(uVar28,DAT_182671c50);
  uVar18 = (ulonglong)DAT_182671c78;
  *(undefined8 *)(lVar1 + -0x308) = 0x98b79f2bfb9905fe;
  *(ulonglong *)(lVar1 + -0x538) = uVar29 ^ 0xd3a9d1a9cea01feb;
  *(byte *)(uVar31 ^ *(ulonglong *)(lVar1 + -0x460)) = bVar26 ^ *(byte *)(lVar1 + -0xc29);
  *(undefined1 *)(lVar1 + -0xc29) = 0xf4;
  uVar6 = DAT_182671c64;
  uVar29 = CONCAT44(uVar4,DAT_182671c64);
  *(ulonglong *)(lVar1 + -0xba8) = CONCAT44(uVar4,uVar5) ^ 0x9e837ef9b5b0553d;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0xfcdff28f)) = uVar29 ^ 0xc779f37ccdffd6b6;
  *(ulonglong *)(lVar1 + -0x908) = CONCAT44(uVar10,uVar17) ^ 0x43fa6a30e6d57075;
  *(ulonglong *)(lVar1 + -0x168) = CONCAT44(uVar3,uVar32) ^ 0x1de5acc4be6ef792;
  *(undefined8 *)(lVar1 + -0x9f8) = 0xfdcba6d7ba50be30;
  *(ulonglong *)(lVar1 + -0x968) = CONCAT44(uVar12,uVar6) ^ 0xee9244efb80552f4;
  *(ulonglong *)(lVar1 - (uVar19 ^ 0x9c787a64)) = CONCAT44(uVar8,uVar17) ^ 0x8e6687c02d4746a0;
  *(ulonglong *)(lVar1 + -0xbc8) = CONCAT44(uVar30,uVar9) ^ 0x90576af6ed3979a4;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0x82dfd218)) = CONCAT44(uVar5,uVar7) ^ 0xffa46288d3d50133;
  *(undefined8 *)(lVar1 - (uVar20 ^ 0x5efb0de9)) = 0x5a5877e999652d38;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar16 ^ uVar30) * 4) = uVar21;
  return;
}



############ FUN_ 180f86ad0 size=5824 ############

void FUN_180f86ad0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  uint uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_f8;
  
  uVar10 = DAT_182671f90;
  uVar9 = DAT_182671d80;
  uVar7 = DAT_182671c84;
  uVar5 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar25 = (ulonglong)DAT_182671c84;
  uVar16 = (ulonglong)DAT_182671c50;
  uVar18 = DAT_182671c84 * DAT_182671c50;
  uVar27 = *(uint *)(&DAT_182613218 + DAT_182672228) ^ DAT_182671c84;
  uVar12 = *(uint *)(&DAT_182613220 + DAT_182672228) ^ DAT_182671c50;
  uVar43 = (ulonglong)uVar18;
  uVar34 = CONCAT44(DAT_182671f18,DAT_182671f18);
  bVar15 = (byte)uVar18;
  uVar28 = CONCAT44(DAT_182671e58,DAT_182671e58);
  puVar31 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0x39509d0));
  DAT_182671c58 = uVar18;
  *puVar31 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0x3950a40)) ^ uVar34) <<
             ((bVar15 ^ 0xe0) & 0x3f) ^ uVar28;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar19 = CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0x30) |
           uVar28 ^ *(ulonglong *)(lVar3 + -0x510);
  uVar23 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar40 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(lVar3 + -0x408) = uVar19 ^ uVar21;
  uVar10 = DAT_182671f84;
  lVar4 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671d00,DAT_182671d00);
  uVar24 = (uVar23 ^ *(ulonglong *)(lVar3 + -0x760)) - uVar19 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xd88) = uVar24;
  uVar9 = DAT_182671e2c;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar29 = *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x2db8ead0)) ^ uVar23 ^ uVar35 ^ uVar21 ^
           *(ulonglong *)(lVar4 + -0x380);
  *(ulonglong *)(lVar4 + -0xb18) = uVar29;
  uVar10 = DAT_182671e94;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar19 = *(ulonglong *)(DAT_182671c40 + -0x380);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) =
       (*(ulonglong *)(lVar4 - (uVar16 ^ 0xa5b17f50)) ^ uVar35) >> (((byte)uVar7 ^ 0xe2) & 0x3f) ^
       uVar32;
  uVar9 = DAT_182671cc4;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x920) = (uVar35 ^ uVar29) << ((bVar15 ^ 0xc6) & 0x3f) ^ uVar26;
  *(ulonglong *)(lVar3 + -0xa60) =
       (CONCAT44(uVar7,uVar18) ^ 0xd6a10d579976c090) << ((bVar15 ^ 0xda) & 0x3f);
  uVar10 = DAT_182671ebc;
  uVar44 = CONCAT44(uVar9,uVar9);
  puVar2 = (ulonglong *)(lVar3 + -0xc90);
  *puVar1 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x2db8ea60)) ^ uVar32 |
            *(ulonglong *)(lVar3 - (uVar43 ^ 0x39505e0)) ^ uVar26) ^ uVar44;
  uVar9 = DAT_182671cc8;
  uVar26 = CONCAT44(uVar10,uVar10);
  *puVar2 = (uVar23 ^ uVar19) - (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x2db8e2e0)) ^ uVar44) ^
            uVar26;
  uVar6 = DAT_182671c6c;
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar23 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xa5b172c8)) =
       uVar32 ^ uVar24 ^ uVar40 ^ uVar21 ^ *(ulonglong *)(lVar3 + -0xc18);
  uVar8 = DAT_182671c94;
  uVar24 = (ulonglong)DAT_182671c94;
  uVar39 = uVar6 - DAT_182671c94;
  puVar22 = (ulonglong *)(lVar3 - ((ulonglong)uVar39 ^ 0xa7392846));
  uVar36 = (ulonglong)uVar39;
  bVar14 = (byte)DAT_182671c94;
  uVar19 = CONCAT44(DAT_182671cec,DAT_182671cec);
  DAT_182671c7c = uVar39;
  *(ulonglong *)(lVar3 + -0x30) = (uVar32 ^ *puVar22) >> ((bVar14 ^ 0x58) & 0x3f) ^ uVar19;
  uVar10 = DAT_182671dc0;
  *(undefined8 *)(lVar3 + -0x510) = **(undefined8 **)(lVar3 + -0x910);
  uVar9 = DAT_182671d9c;
  lVar4 = DAT_182671c40;
  uVar29 = CONCAT44(uVar10,uVar10);
  puVar42 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xbaebd174));
  bVar20 = (byte)uVar6;
  *puVar42 = (uVar32 ^ *(ulonglong *)(DAT_182671c40 + -0x680)) << ((bVar20 ^ 0x3e) & 0x3f) ^ uVar29;
  uVar32 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xbaebd21c)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar39 ^ 0xa73929a6)) ^ uVar29 |
       uVar19 ^ *(ulonglong *)(lVar4 + -0x30)) ^ uVar32;
  puVar17 = (ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x13b2aac6));
  uVar35 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar39 ^ 0xa73925de)) =
       (uVar40 ^ *puVar17) - (uVar32 ^ *(ulonglong *)(lVar4 + -0x408)) ^ uVar35;
  uVar9 = DAT_182671cf8;
  lVar3 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671f54,DAT_182671f54);
  uVar19 = *puVar2;
  uVar37 = uVar19 ^ uVar21 ^ uVar32 ^ uVar26 ^ *(ulonglong *)(lVar4 + -0x408);
  *(ulonglong *)(lVar4 + -0xa60) = uVar37;
  uVar10 = DAT_182671d3c;
  lVar4 = DAT_182671c40;
  uVar32 = (uVar37 ^ uVar21) >> ((bVar14 ^ 0x60) & 0x3f);
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x920) = uVar32 ^ uVar33;
  uVar37 = (uVar37 ^ uVar21) << ((bVar20 ^ 6) & 0x3f);
  uVar41 = CONCAT44(DAT_182671d98,DAT_182671d98);
  *(ulonglong *)(lVar4 + -0x4b8) = uVar37 ^ CONCAT44(uVar10,uVar10);
  uVar9 = DAT_182671d94;
  uVar21 = *(ulonglong *)(lVar4 - (uVar36 ^ 0xa73927e6)) ^ uVar33 | uVar37;
  *(ulonglong *)(lVar4 + -0x380) = uVar21 ^ uVar41;
  uVar38 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0xc18) = uVar37 + uVar32;
  uVar10 = DAT_182671f98;
  *(ulonglong *)(lVar4 + -0x510) = (uVar19 ^ uVar26) - uVar21 ^ uVar38;
  uVar9 = DAT_182671f0c;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x680) =
       *(ulonglong *)(lVar4 - (uVar24 ^ 0x13b2ab76)) ^ uVar35 ^ uVar44 ^ uVar21 ^
       *(ulonglong *)(lVar4 + -0xb18);
  bVar14 = (byte)uVar39;
  uVar32 = CONCAT44(uVar9,uVar9);
  local_f8 = (byte)uVar5;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xbaebd624)) =
       (uVar21 ^ *puVar22) >> ((bVar14 ^ 0xca) & 0x3f) ^ uVar32;
  uVar19 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  puVar30 = (ulonglong *)(lVar4 - (uVar43 ^ 0x3950ba0));
  *puVar30 = (*(ulonglong *)(DAT_182671c40 + -0x680) ^ uVar21) << ((local_f8 ^ 0x7c) & 0x3f) ^
             uVar19;
  uVar9 = DAT_182671d1c;
  lVar3 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar19 = *puVar42 ^ uVar19 | *(ulonglong *)(DAT_182671c40 + -0x30) ^ uVar32;
  uVar23 = uVar19 ^ uVar21;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar23;
  uVar32 = CONCAT44(uVar9,uVar9);
  *(uint *)(lVar3 + -0xae4) = 0xceb87e45 >> ((bVar14 ^ 0xc4) & 0x1f);
  uVar9 = DAT_182671e5c;
  *(ulonglong *)(lVar3 + -0x408) = (uVar35 ^ *(ulonglong *)(lVar3 + -0xb18)) - uVar19 ^ uVar32;
  uVar10 = DAT_182671f9c;
  uVar6 = DAT_182671c74;
  uVar35 = CONCAT44(uVar9,uVar9);
  uVar19 = uVar35 ^ uVar21 ^ uVar38 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x510);
  *(ulonglong *)(lVar3 + -0xa60) = uVar19;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xc18) = (uVar19 ^ uVar35) >> ((bVar14 ^ 0xdf) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x5c69b9d0)) =
       (CONCAT44(uVar39,uVar7) ^ 0x8922d250170b1a0) >> ((bVar20 ^ 0x22) & 0x3f);
  uVar33 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar23 = (*(ulonglong *)(lVar3 + -0xa60) ^ uVar35) << ((bVar14 ^ 0xe1) & 0x3f);
  uVar19 = (ulonglong)DAT_182671c70;
  uVar37 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(lVar3 + -0x4b8) = uVar23 ^ uVar33;
  *puVar2 = (*(ulonglong *)(lVar3 - (uVar19 ^ 0xff45ab80)) ^ uVar21 | uVar23) ^ uVar37;
  uVar19 = CONCAT44(DAT_182671fac,DAT_182671fac);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xa73922fe)) =
       (uVar38 ^ *(ulonglong *)(lVar3 + -0x510)) - (*(ulonglong *)(lVar3 + -0x888) ^ uVar37) ^
       uVar19;
  uVar35 = CONCAT44(DAT_182671db4,DAT_182671db4);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x2db8e858)) = (uVar19 ^ *puVar1) - (*puVar2 ^ uVar37) ^ uVar35;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0x6c880ca)) =
       *(ulonglong *)(CONCAT44(DAT_182671ca4,DAT_182671ca4) ^ *(ulonglong *)(lVar3 + -0x678)) ^
       uVar28;
  uVar9 = DAT_182671e6c;
  uVar19 = *puVar2;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0xa7392cee)) ^ uVar40) +
           (CONCAT44(DAT_182671d50,DAT_182671d50) ^ *(ulonglong *)(lVar3 + -0xa50));
  *(ulonglong *)(lVar3 + -0x30) = uVar23 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x2db8e5c0)) = (uVar19 ^ uVar37) - uVar23 ^ uVar28;
  uVar8 = DAT_182671c90;
  uVar6 = DAT_182671c68;
  uVar19 = (ulonglong)DAT_182671e70;
  puVar42 = (ulonglong *)(lVar3 - (uVar43 ^ 0x3950148));
  uVar40 = CONCAT44(DAT_182671e70,DAT_182671e70);
  uVar21 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar44 = (ulonglong)DAT_182671c68;
  *puVar42 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c4c ^ 0x590a079e)) ^ uVar40 ^ uVar32 ^
             uVar41 ^ *(ulonglong *)(lVar3 + -0x380);
  lVar4 = DAT_182671c40;
  uVar23 = (*(ulonglong *)(lVar3 + -0xd88) >> 0x20 ^ uVar19) >> 1;
  *(ulonglong *)(lVar3 + -0x920) = uVar23 ^ uVar21;
  uVar9 = DAT_182671f48;
  uVar19 = *(ulonglong *)(lVar4 + -0xd88);
  *(ulonglong *)(lVar3 + -0xa60) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x8a201c15)) ^ uVar40 |
       CONCAT44(uVar5,uVar6) ^ 0x3f12d57d270b6c84;
  uVar19 = (uVar40 ^ uVar19) << (((byte)DAT_182671c48 ^ 0x1e) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc18) = uVar19 ^ CONCAT44(uVar9,uVar9);
  uVar5 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  uVar40 = (ulonglong)DAT_182671c88;
  *puVar1 = 0x485346bdc9e449b1 << ((bVar20 ^ 4) & 0x3f);
  uVar21 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(DAT_182671c40 + -0x760) = (uVar19 | uVar23) ^ uVar21;
  *(ulonglong *)(lVar3 + -0xa50) =
       CONCAT44(uVar8,uVar5) ^ 0xf7f44505ffa5ec68 | *(ulonglong *)(lVar3 + -0x4b8) ^ uVar33;
  uVar5 = DAT_182671c5c;
  uVar33 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar23 = CONCAT44(uVar18,DAT_182671c60);
  *puVar2 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0xa5b17040)) ^ uVar32) -
            (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0xfdbb7cfe)) ^
            CONCAT44(DAT_182671cac,DAT_182671cac)) ^ uVar33;
  uVar19 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0x42a00192)) =
       (uVar23 ^ 0x7d1a698eadb9f280) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x72f803ea)) ^ uVar38);
  uVar23 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar38 = CONCAT44(DAT_182671e08,DAT_182671e08);
  *(ulonglong *)(lVar3 + -0xa60) =
       (*(ulonglong *)(lVar3 - (uVar43 ^ 0x3950050)) ^ uVar33) -
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0x4ea7b573)) ^ uVar21) ^ uVar23;
  *(ulonglong *)(lVar3 + -0xd88) = -(*(ulonglong *)(lVar3 + -0xf0) ^ uVar34) - 5 ^ uVar38;
  *puVar1 = uVar28 ^ *(ulonglong *)(lVar3 + -0xb18) | *(ulonglong *)(lVar3 + -0x380);
  uVar19 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x31160727)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c64 ^ 0x5c6bb196)) ^ uVar21) +
       (uVar38 ^ *puVar17) ^ uVar19;
  uVar32 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x72f80ae2)) =
       *(ulonglong *)(lVar3 + -0x680) ^ *(ulonglong *)(lVar3 + -0x920) ^ uVar32 ^ uVar19 ^ uVar35;
  uVar9 = DAT_182671ce8;
  uVar13 = ~uVar18;
  uVar21 = CONCAT44(DAT_182671f30,DAT_182671f30);
  DAT_182671c64 = uVar13;
  *(ulonglong *)(lVar3 + -0x4b8) =
       (*(ulonglong *)(lVar3 + -0xc18) ^ uVar32) >> ((bVar15 ^ 0xc5) & 0x3f) ^ uVar21;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xfc6af96f)) =
       (*(ulonglong *)(lVar3 + -0xc18) ^ uVar32) << 0x3b ^ uVar19;
  lVar3 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       (uVar19 ^ *(ulonglong *)(DAT_182671c40 + -0xa50) |
       *(ulonglong *)(DAT_182671c40 + -0x4b8) ^ uVar21) ^ uVar40;
  *(ulonglong *)(lVar3 + -0xb20) =
       (CONCAT44(uVar18,uVar18) ^ 0x876d1955587beb02) >>
       ((byte)*(undefined8 *)(lVar3 + -0x380) & 0x3f);
  uVar9 = DAT_182671e88;
  puVar22 = (ulonglong *)(lVar3 - (uVar43 ^ 0x39508c8));
  uVar32 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *(ulonglong *)(lVar3 + -0x510) =
       (*(ulonglong *)(lVar3 + -0x680) ^ uVar35) - (uVar40 ^ *puVar22) ^ uVar32;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xfc6af827)) ^ *(ulonglong *)(lVar3 + -0xa60)
           ^ uVar21 ^ uVar23 ^ uVar28;
  *puVar2 = uVar28;
  uVar35 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *puVar1 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xfc6affaf)) ^ uVar21) >>
            (((byte)uVar13 ^ 0x1a) & 0x3f) ^ uVar35;
  uVar19 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = (uVar21 ^ uVar28) << ((bVar15 ^ 0xdb) & 0x3f) ^ uVar19;
  uVar6 = DAT_182671c54;
  lVar3 = DAT_182671c40;
  puVar17 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0xfc6aff07));
  uVar21 = CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar28 = (ulonglong)DAT_182671c54;
  *puVar30 = (*puVar42 ^ uVar19 | *puVar17 ^ uVar35) ^ uVar21;
  uVar10 = DAT_182671eb8;
  uVar35 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar3 + -0x920) =
       (*(ulonglong *)(lVar3 + -0xa60) ^ uVar23) - (*(ulonglong *)(lVar3 + -0x760) ^ uVar21) ^
       uVar35;
  uVar9 = DAT_182671eb4;
  uVar19 = CONCAT44(uVar10,uVar10);
  uVar33 = *(ulonglong *)(lVar3 + -0x760) ^ uVar19 ^ uVar21 ^ uVar32 ^
           *(ulonglong *)(lVar3 + -0x510);
  uVar21 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar3 + -0xc18) = uVar33;
  uVar33 = uVar33 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar33 >> ((bVar15 ^ 0xd7) & 0x3f) ^ uVar21;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar19 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xdff9f3a8)) = uVar33 << ((bVar15 ^ 0xe9) & 0x3f) ^ uVar23;
  uVar41 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x8a201abd)) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xa50) | *(ulonglong *)(lVar3 + -0x4b8) ^ uVar21) ^ uVar41;
  uVar5 = DAT_182671d14;
  uVar19 = (ulonglong)DAT_182671d14;
  uVar21 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  *(ulonglong *)(lVar3 + -0x380) =
       (*puVar31 ^ uVar32) - (*(ulonglong *)(lVar3 + -0xb20) ^ uVar41) ^ uVar21;
  uVar32 = CONCAT44(uVar5,uVar5);
  uVar33 = *(ulonglong *)(lVar3 + -0x920) ^ uVar32 ^ uVar35 ^ uVar40 ^
           *(ulonglong *)(lVar3 + -0x408);
  uVar40 = CONCAT44(uVar13,DAT_182671c78);
  *(ulonglong *)(lVar3 + -0x680) = uVar33;
  uVar10 = DAT_182671eec;
  *(ulonglong *)(lVar3 + -0xb18) =
       (CONCAT44(uVar13,DAT_182671c70) ^ 0x50502170c9952997) - (uVar40 ^ 0x3bea4a2dde1f64fc);
  uVar9 = DAT_182671e48;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar23 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *puVar2 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c8c ^ 0xfdbb715e)) >> 0x20 ^
            uVar19) >> 8 ^ uVar28;
  *puVar17 = (uVar33 ^ uVar32) << ((bVar15 ^ 0xd8) & 0x3f) ^ uVar23;
  lVar3 = DAT_182671c40;
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar32 = uVar28 ^ *puVar2 | uVar23 ^ *puVar1;
  puVar17 = (ulonglong *)(DAT_182671c40 + -0x920);
  uVar23 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar32 ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x2db8e4b8)) = (*puVar17 ^ uVar35) - uVar32 ^ uVar23;
  uVar9 = DAT_182671ee8;
  uVar8 = DAT_182671c90;
  uVar25 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar7,uVar13) ^ 0x7f313eb9871b475d) + (uVar40 ^ 0xb6dc165f49bf7e55);
  uVar32 = CONCAT44(uVar9,uVar9);
  bVar14 = (byte)DAT_182671c88;
  uVar19 = *(ulonglong *)(lVar3 - (uVar36 ^ 0xa739234e)) ^ uVar32 ^ uVar19 ^ uVar21 ^
           *(ulonglong *)(lVar3 + -0x380);
  *(ulonglong *)(lVar3 + -0xc18) = uVar19;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x3950878)) =
       (uVar19 ^ uVar32) >> ((bVar14 ^ 0x33) & 0x3f) ^ uVar34;
  uVar19 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c48 ^ 0xa40e1f51)) =
       (*(ulonglong *)(lVar3 + -0xc18) ^ uVar32) << (((byte)uVar8 ^ 0x91) & 0x3f) ^ uVar19;
  uVar5 = DAT_182671c48;
  uVar28 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(lVar3 + -0x510) = -0x34fa17db1850e62a - (CONCAT44(uVar6,uVar7) ^ 0xdb5eb6668f78edf)
  ;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  uVar33 = *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x5c69baa0)) ^ uVar19 |
           uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0x4b8);
  uVar35 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar33 ^ uVar32;
  uVar7 = DAT_182671c5c;
  uVar19 = (ulonglong)DAT_182671c5c;
  uVar34 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c8c ^ 0xfdbb7cc6)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xa40e1681)) ^ uVar21) - uVar33 ^ uVar35;
  uVar6 = DAT_182671c4c;
  lVar4 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671f20,DAT_182671f20);
  uVar40 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x5c69b670)) =
       *(ulonglong *)(lVar3 + -0xa60) ^ uVar21 ^ *(ulonglong *)(lVar3 + -0xb20) ^ uVar23 ^ uVar41;
  uVar33 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar28 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c68 ^ 0x42a00e82)) =
       (*(ulonglong *)(lVar4 + -0x680) ^ uVar21) >> ((bVar15 ^ 0xf9) & 0x3f) ^ uVar33;
  uVar25 = (ulonglong)DAT_182671c60;
  *puVar1 = (*(ulonglong *)(DAT_182671c40 + -0x680) ^ uVar21) << (((byte)uVar6 ^ 0x91) & 0x3f) ^
            uVar26;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x6c88e8a)) =
       (CONCAT44(uVar5,uVar8) ^ 0x829f7366a3cc7b3b) << ((bVar20 ^ 0x3a) & 0x3f);
  uVar5 = DAT_182671c70;
  uVar21 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar36 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x590a04f6)) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xcaa01fa7)) ^ uVar26 | uVar33 ^ *puVar2) ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x72f80b72)) =
       (*(ulonglong *)(lVar3 + -0xa60) ^ uVar23) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x72f8019a)) ^ uVar21) ^ uVar37;
  uVar19 = *(ulonglong *)(lVar3 - (uVar25 ^ 0xcaa014ff)) ^
           *(ulonglong *)(lVar3 - (uVar24 ^ 0x13b2ac56)) ^ uVar21 ^ uVar35;
  uVar23 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar3 + -0xc18) = uVar19 ^ uVar38;
  bVar15 = (byte)DAT_182671c68;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x4ea7b703)) = uVar19 >> (((byte)uVar5 ^ 0x96) & 0x3f) ^ uVar23;
  uVar10 = DAT_182671df0;
  uVar19 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar3 + -0x4b8) =
       (*(ulonglong *)(lVar3 + -0xc18) ^ uVar38) << ((bVar15 ^ 0x20) & 0x3f) ^ uVar19;
  uVar11 = DAT_182671e14;
  uVar9 = DAT_182671d88;
  uVar21 = CONCAT44(uVar10,uVar10);
  uVar23 = *(ulonglong *)(lVar3 - (uVar34 ^ 0x6c88312)) ^ uVar19 |
           uVar23 ^ *(ulonglong *)(lVar3 + -0x510);
  *(ulonglong *)(lVar3 + -0xa50) = uVar23 ^ uVar21;
  uVar19 = (uVar35 ^ *(ulonglong *)(lVar3 + -0xb18)) -
           (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0xbd8));
  *(ulonglong *)(lVar3 + -0x380) = uVar19 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xb20) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0xff45adc8)) ^ uVar21) +
       (CONCAT44(uVar39,uVar7) ^ 0x36af286f8a3aaec7);
  uVar9 = DAT_182671d74;
  *(ulonglong *)(lVar3 + -0x680) = uVar19 - uVar23 ^ CONCAT44(DAT_182671e98,DAT_182671e98);
  uVar10 = DAT_182671fb4;
  *(ulonglong *)(lVar3 + -0x920) =
       uVar23 - (*(ulonglong *)(lVar3 + -0x7e8) ^ uVar29) ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182671d48;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xa5b17870)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xff45aa10)) ^ uVar19 ^ uVar32 ^ *puVar22 ^ uVar37
  ;
  *puVar2 = (uVar19 ^ *puVar1) >> ((local_f8 ^ 0x58) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar12 * 4) = uVar27;
  return;
}



############ FUN_ 180fbdd00 size=5043 ############

void FUN_180fbdd00(void)

{
  byte *pbVar1;
  uint uVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  byte bVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  longlong lVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_res18;
  byte local_e0;
  byte local_a0;
  
  uVar6 = DAT_182671c88;
  uVar25 = DAT_182671c70;
  uVar5 = DAT_182671c58;
  uVar4 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  uVar19 = (ulonglong)DAT_182671c88;
  uVar17 = (ulonglong)DAT_182671c70;
  uVar29 = (ulonglong)DAT_182671c58;
  uVar26 = (ulonglong)DAT_182671c4c;
  uVar34 = DAT_182671c88 + DAT_182671c70;
  uVar16 = DAT_182671c58 ^ DAT_182671c4c;
  uVar2 = *(uint *)(&DAT_182613218 + DAT_1826722cc);
  uVar12 = *(uint *)(&DAT_182613210 + (uVar19 ^ 0xefea589c) + (longlong)DAT_1826722cc) ^
           DAT_182671c70;
  bVar24 = (byte)DAT_182671c4c;
  uVar36 = (ulonglong)uVar16;
  puVar37 = (ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x8002ec7c));
  uVar28 = (ulonglong)DAT_182671c70;
  DAT_182671c5c = uVar16;
  DAT_182671c90 = uVar34;
  *puVar37 = (CONCAT44(uVar16,DAT_182671c58) ^ 0xd345fe6fbd6167c) >> ((bVar24 ^ 0xce) & 0x3f);
  uVar8 = DAT_182671dec;
  puVar27 = (ulonglong *)(lVar3 - (uVar17 ^ 0x7df953e7));
  uVar41 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  uVar17 = CONCAT44(DAT_182671e00,DAT_182671e00);
  uVar21 = CONCAT44(DAT_182671df0,DAT_182671df0);
  *(ulonglong *)(lVar3 + -0xbd8) =
       (uVar41 ^ *puVar27) - (*(ulonglong *)(lVar3 + -0xd88) ^ uVar17) ^ uVar21;
  uVar9 = DAT_182671d9c;
  lVar31 = DAT_182671c40;
  bVar20 = (byte)uVar25;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar32 = CONCAT44(DAT_182671f00,DAT_182671f00);
  uVar17 = *(ulonglong *)(lVar3 + -0xd88) ^ *(ulonglong *)(lVar3 + -0xda8) ^ uVar32 ^ uVar22 ^
           uVar17;
  *(ulonglong *)(lVar3 + -0x888) = uVar17;
  uVar17 = (uVar17 ^ uVar22) >> ((bVar20 ^ 200) & 0x3f);
  *(ulonglong *)(lVar31 + -0x110) = uVar17 ^ CONCAT44(uVar9,uVar9);
  *(uint *)(lVar31 + -0x9dc) = *(uint *)(lVar31 + -0xc70) & 0xa6df5abd;
  uVar8 = DAT_182671f90;
  lVar3 = DAT_182671c40;
  bVar39 = (byte)uVar16;
  uVar18 = (*(ulonglong *)(lVar31 - (uVar29 ^ 0x7dffb173)) ^ uVar22) << ((bVar39 ^ 0x2d) & 0x3f);
  uVar40 = CONCAT44(DAT_182671f64,DAT_182671f64);
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar18 ^ CONCAT44(DAT_182671e3c,DAT_182671e3c);
  lVar31 = DAT_182671c40;
  uVar17 = uVar17 | uVar18;
  *(ulonglong *)(lVar3 + -0xc90) = uVar17 ^ uVar40;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar31 - ((ulonglong)uVar34 ^ 0x6de3b213)) =
       (*(ulonglong *)(lVar31 + -0xda8) ^ uVar32) - uVar17 ^ uVar23;
  uVar30 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  uVar32 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  local_res18 = (byte)uVar6;
  uVar17 = *(ulonglong *)(lVar31 - (uVar29 ^ 0x7dffb09b)) ^ uVar32 ^ uVar30 ^ uVar21 ^
           *(ulonglong *)(lVar31 + -0xbd8);
  uVar33 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar31 + -0xc38) = uVar17;
  uVar18 = (uVar17 ^ uVar30) >> ((local_res18 ^ 0xa4) & 0x3f);
  *(ulonglong *)(lVar31 + -0xd88) = uVar18 ^ uVar33;
  lVar3 = DAT_182671c40;
  puVar35 = (ulonglong *)(lVar31 - (uVar36 ^ 0x8002ea3c));
  local_e0 = (byte)uVar34;
  uVar17 = (*puVar35 ^ uVar30) << ((local_e0 ^ 0x73) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar17 ^ CONCAT44(DAT_182671ecc,DAT_182671ecc);
  uVar18 = uVar18 | uVar17;
  uVar30 = CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar17 = uVar18 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x228) = uVar17;
  *(int *)(lVar3 + -0x61c) = *(int *)(lVar3 + -0x94c) * -0x62ed1275;
  uVar8 = DAT_182671dd0;
  *(ulonglong *)(lVar3 + -0xda8) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0xfdfd5427)) ^ uVar21) - uVar18 ^ uVar41;
  uVar10 = DAT_182671e24;
  uVar42 = CONCAT44(uVar8,uVar8);
  uVar21 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar17 = uVar17 ^ uVar42 ^ uVar30 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0xa78);
  *(ulonglong *)(lVar3 + -0x960) = uVar17;
  uVar18 = (uVar17 ^ uVar42) << 0xc;
  uVar17 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  *(ulonglong *)(lVar3 + -0xc38) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x7df956bf)) ^ uVar42) >> (((byte)uVar5 ^ 0xcf) & 0x3f) ^
       uVar21;
  uVar8 = DAT_182671d58;
  *(ulonglong *)(lVar3 + -0xd88) = uVar18 ^ uVar17;
  lVar3 = DAT_182671c40;
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar33 = (ulonglong)DAT_182671c94;
  pbVar1 = (byte *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(DAT_182671c40 + -0x888) = (*puVar35 ^ uVar21 | uVar18) ^ uVar30;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x7dffb223)) =
       (CONCAT44(uVar6,uVar6) ^ 0xa78b9aad628c1fa8) >> ((*pbVar1 ^ (byte)uVar10) & 0x3f);
  uVar18 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(longlong *)(lVar3 + -0xd88) = *(longlong *)(lVar3 + -0xbd8) << ((bVar20 ^ 0xfc) & 0x3f);
  uVar8 = DAT_182671dc8;
  *(ulonglong *)(lVar3 + -0x228) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xa78)) - (*(ulonglong *)(lVar3 + -0x888) ^ uVar30) ^
       uVar18;
  uVar17 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - (uVar33 ^ 0xefea54b4)) =
       uVar17 ^ *(ulonglong *)(lVar3 + -0xda8) ^ *(ulonglong *)(lVar3 + -0xc90) ^ uVar40 ^ uVar41;
  uVar21 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *puVar37 = (*(ulonglong *)(DAT_182671c40 + -0xc38) ^ uVar17) >> ((bVar24 ^ 0xc6) & 0x3f) ^ uVar21;
  uVar10 = DAT_182671f48;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0xefea5004)) ^ uVar30) <<
       ((*(byte *)(DAT_182671c40 - (uVar29 ^ 0x7dffb8eb)) ^ (byte)uVar9) & 0x3f);
  uVar9 = DAT_182671e40;
  uVar8 = DAT_182671c78;
  uVar23 = (*(ulonglong *)(lVar3 + -0xc38) ^ uVar17) << 7;
  *(ulonglong *)(lVar3 + -0xd88) = uVar23 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671f1c;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar23 = uVar23 | uVar21 ^ *(ulonglong *)(lVar3 + -0xa78);
  uVar17 = uVar23 ^ uVar28;
  *(ulonglong *)(lVar3 + -0xc90) = uVar17;
  uVar11 = DAT_182671f40;
  uVar38 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xefea5524)) ^ uVar41) - uVar23 ^ uVar38;
  uVar9 = DAT_182671d54;
  uVar21 = CONCAT44(uVar11,uVar11);
  uVar17 = *(ulonglong *)(lVar3 + -0x228) ^ uVar21 ^ uVar28 ^ uVar18 ^ uVar17;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar17;
  uVar7 = DAT_182671c74;
  uVar28 = CONCAT44(uVar9,uVar9);
  *puVar27 = (uVar17 ^ uVar21) >> (((byte)uVar8 ^ 0x1a) & 0x3f) ^ uVar28;
  uVar6 = DAT_182671c60;
  uVar17 = (uVar21 ^ *(ulonglong *)(lVar3 + -0xbd8)) << ((bVar24 ^ 0xcd) & 0x3f);
  uVar25 = DAT_182671c60 << 0x10 | DAT_182671c60 >> 0x10;
  uVar33 = (ulonglong)uVar25;
  *(ulonglong *)(lVar3 + -0xd88) = uVar17 ^ CONCAT44(DAT_182671f20,DAT_182671f20);
  DAT_182671c84 = uVar25;
  *(ulonglong *)(lVar3 + -0xa78) =
       *(ulonglong *)(lVar3 + -0x228) ^ uVar18 | *(ulonglong *)(lVar3 + -0x960) ^ uVar42;
  uVar21 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar3 + -0xda8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xd9d94a12)) ^ uVar28 | uVar17) ^ uVar21;
  *(uint *)(lVar3 + -0x76c) =
       (uVar25 ^ 0xef6e3549) << ((byte)*(undefined4 *)(lVar3 + -0x644) & 0x1f);
  uVar9 = DAT_182671d0c;
  uVar17 = CONCAT44(DAT_182671f60,DAT_182671f60);
  puVar27 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xd9d94aba));
  *puVar27 = (*(ulonglong *)(lVar3 - (uVar33 ^ 0x462adbf1)) ^ uVar18) -
             (CONCAT44(uVar6,uVar6) ^ 0xa04a9da3288d44dc) ^ uVar17;
  uVar40 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x462ad0b9)) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0xc90)) - (uVar21 ^ *(ulonglong *)(lVar3 + -0xda8)) ^
       uVar40;
  uVar17 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  *(ulonglong *)(lVar3 + -0xa78) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x462ad471)) ^ uVar21) -
       (CONCAT44(uVar25,uVar25) ^ 0x5e2ba969c422efac) ^ uVar17;
  uVar18 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0x6de3ba43)) =
       *(ulonglong *)(lVar3 + -0x888) ^ uVar18 ^ uVar38 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0x110);
  uVar9 = DAT_182671d34;
  uVar28 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *puVar27 = (*(ulonglong *)(lVar3 + -0x228) ^ uVar18) >> (((byte)uVar6 ^ 0x3a) & 0x3f) ^ uVar28;
  uVar21 = CONCAT44(uVar9,uVar9);
  puVar37 = (ulonglong *)(lVar3 - (uVar36 ^ 0x8002ebac));
  *puVar37 = (*(ulonglong *)(lVar3 + -0x228) ^ uVar18) << ((bVar39 ^ 0x34) & 0x3f) ^ uVar21;
  uVar25 = DAT_182671c54;
  uVar18 = uVar21 ^ *(ulonglong *)(lVar3 + -0xda8) | uVar28 ^ *(ulonglong *)(lVar3 + -0xc90);
  uVar15 = (DAT_182671c54 << 0x10 | DAT_182671c54 & 0xff00) << 8 | DAT_182671c54 >> 8 & 0xff00 |
           DAT_182671c54 >> 0x18;
  uVar30 = CONCAT44(DAT_182671d88,DAT_182671d88);
  DAT_182671c50 = uVar15;
  *(ulonglong *)(lVar3 + -0xc38) = uVar18 ^ uVar30;
  lVar31 = DAT_182671c40;
  puVar27 = (ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x5b316650));
  uVar41 = (ulonglong)uVar25;
  uVar28 = (uVar38 ^ *puVar27) - (CONCAT44(uVar25,uVar25) ^ 0xf0a0443997b32c5e);
  uVar38 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(DAT_182671c40 + -0x888) = uVar28 ^ CONCAT44(DAT_182671e70,DAT_182671e70);
  uVar9 = DAT_182671de0;
  *(ulonglong *)(lVar31 + -0x228) = uVar28 - uVar18 ^ uVar38;
  uVar10 = DAT_182671e48;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar18 = (CONCAT44(uVar25,uVar15) ^ 0xd8fee12e501fd6bd) + uVar18 ^ uVar28;
  *(ulonglong *)(lVar31 + -0xda8) = uVar18;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar31 - ((ulonglong)uVar15 ^ 0x5b316bd0)) =
       *(ulonglong *)(lVar31 - (uVar41 ^ 0x4067383b)) ^ uVar21 ^ uVar18 ^ uVar28 ^ uVar40;
  puVar35 = (ulonglong *)(lVar31 - ((ulonglong)uVar25 ^ 0x40673dcb));
  bVar14 = (byte)uVar25 ^ 0x7b;
  uVar18 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  local_a0 = (byte)uVar11;
  *puVar27 = (uVar21 ^ *puVar35) >> (bVar14 & 0x3f) ^ uVar18;
  uVar9 = DAT_182671e7c;
  *(ulonglong *)(lVar31 + -0x888) =
       (uVar21 ^ *puVar35) >> ((local_a0 ^ *(byte *)(lVar31 + -0xbd8)) & 0x3f);
  uVar28 = (uVar21 ^ *(ulonglong *)(lVar31 + -0xc90)) << ((bVar20 ^ 0xff) & 0x3f);
  uVar23 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar31 + -0xc38) = uVar28 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar31 - (uVar33 ^ 0x462ad201)) =
       (uVar18 ^ *(ulonglong *)(lVar31 + -0x110) | uVar28) ^ uVar23;
  uVar28 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(lVar31 - (uVar41 ^ 0x406739d3)) =
       (uVar40 ^ *(ulonglong *)(lVar31 + -0x960)) - (uVar23 ^ *(ulonglong *)(lVar31 + -0xbd8)) ^
       uVar28;
  uVar9 = DAT_182671ce0;
  uVar18 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar17 = uVar18 ^ *(ulonglong *)(lVar31 + -0x228) ^ uVar38 ^ uVar17 ^
           *(ulonglong *)(lVar31 + -0xa78);
  *(ulonglong *)(lVar31 + -0xc90) = uVar17;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar31 + -0xd88) = (uVar17 ^ uVar18) >> (bVar14 & 0x3f) ^ uVar21;
  *(uint *)(lVar31 - ((ulonglong)uVar25 ^ 0x4067372b)) =
       (DAT_182671c60 ^ 0xf8349d2d) + *(int *)(lVar31 + -0x61c);
  uVar18 = (uVar18 ^ *(ulonglong *)(lVar31 + -0xc90)) << ((bVar20 ^ 0xff) & 0x3f);
  uVar17 = CONCAT44(uVar16,DAT_182671c78);
  *(ulonglong *)(lVar31 + -0xda8) = uVar18 ^ CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar18 = uVar18 | uVar21 ^ *(ulonglong *)(lVar31 + -0xd88);
  *(ulonglong *)(lVar31 + -0x110) = CONCAT44(uVar5,uVar34) ^ uVar17 ^ 0x480f4a8e80d10dd1;
  uVar9 = DAT_182671ca0;
  uVar40 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  *(ulonglong *)(lVar31 + -0xc38) = uVar18 ^ uVar40;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar31 + -0x960) = uVar18 >> ((byte)uVar18 & 0x3f);
  uVar17 = (ulonglong)DAT_182671ef4;
  uVar36 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(lVar31 - (uVar19 ^ 0xefea52f4)) =
       (*(ulonglong *)(lVar31 + -0x228) ^ uVar38) -
       (*(ulonglong *)(lVar31 - (uVar33 ^ 0x462ad5e1)) ^ uVar40) ^ uVar21;
  uVar18 = *(ulonglong *)(lVar31 - (uVar41 ^ 0x40673d63)) ^ uVar36 ^ uVar40 ^ uVar28 ^
           *(ulonglong *)(lVar31 + -0x888);
  uVar38 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar19 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar40 = (uVar18 >> 0x20 ^ uVar17) >> 0x1a;
  uVar41 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar31 + -0xc90) = uVar18;
  *(ulonglong *)(lVar31 + -0x110) = uVar40 ^ uVar38;
  *(ulonglong *)(lVar31 + -0xd88) = (uVar36 ^ uVar18) << 6 ^ uVar19;
  uVar9 = DAT_182671d20;
  uVar16 = DAT_182671ce8;
  uVar25 = DAT_182671c6c;
  lVar3 = DAT_182671c40;
  uVar17 = (ulonglong)DAT_182671ce8;
  *(ulonglong *)(lVar31 + -0xda8) =
       (*(ulonglong *)(lVar31 - (uVar33 ^ 0x462ad451)) ^ uVar19 | uVar40) ^ uVar41;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar31 - ((ulonglong)uVar15 ^ 0x5b316e20)) =
       (uVar28 ^ *(ulonglong *)(lVar31 + -0x888)) - (uVar41 ^ *puVar37) ^ uVar33;
  uVar13 = ~uVar25;
  uVar38 = (ulonglong)uVar13;
  uVar23 = *(ulonglong *)(lVar3 - (uVar38 ^ 0xd9d94df2)) ^ CONCAT44(uVar16,uVar16) ^ uVar21 ^ uVar23
           ^ *(ulonglong *)(lVar3 + -0xa78);
  uVar19 = CONCAT44(DAT_182671d10,DAT_182671d10);
  DAT_182671c80 = uVar13;
  *(ulonglong *)(lVar3 + -0x228) = uVar23;
  uVar9 = DAT_182671f18;
  uVar18 = (ulonglong)uVar25;
  uVar17 = ((ulonglong)(uVar16 >> 0x16) | uVar17 << 10) ^ uVar23 >> 0x16;
  bVar14 = (byte)uVar13;
  *(ulonglong *)(lVar3 + -0xc38) = uVar17 ^ uVar19;
  uVar10 = DAT_182671f7c;
  lVar31 = DAT_182671c40;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar17 = (CONCAT44(uVar16,uVar16) ^ uVar23) << (bVar14 & 0x3f) | uVar17;
  uVar23 = uVar17 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x110) = uVar23;
  uVar40 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar31 + -0xd88) = (uVar21 ^ *(ulonglong *)(lVar31 + -0xa78)) - uVar17 ^ uVar40;
  lVar3 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0x2626b15d)) =
       uVar21 ^ uVar28 ^ uVar33 ^ *(ulonglong *)(lVar31 + -0x960) ^ uVar23;
  uVar17 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(lVar3 + -0xbd8) =
       (uVar21 ^ *(ulonglong *)(lVar3 + -0x888)) >> (((byte)uVar25 ^ 0xfb) & 0x3f) ^ uVar17;
  puVar27 = (ulonglong *)(lVar3 - (uVar38 ^ 0xd9d94402));
  *puVar27 = uVar40 ^ *(ulonglong *)(lVar3 + -0xd88) | uVar19 ^ *(ulonglong *)(lVar3 + -0xc38);
  uVar28 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x888)) << (((byte)uVar25 ^ 199) & 0x3f);
  uVar19 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar3 + -0xc90) = uVar28 ^ CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar28 = uVar17 ^ *(ulonglong *)(lVar3 + -0xbd8) | uVar28;
  uVar23 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar3 + -0xa78) = uVar28 ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x2626b8c5)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x2626b0b5)) ^ uVar33) - uVar28 ^ uVar23;
  uVar9 = DAT_182671ec4;
  uVar21 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar17 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x2626b47d)) ^ uVar40 ^ uVar41 ^
           *(ulonglong *)(lVar3 + -0xd88);
  *(ulonglong *)(lVar3 + -0xc38) = uVar17 ^ uVar21;
  uVar28 = CONCAT44(uVar9,uVar9);
  *puVar27 = uVar17 >> ((bVar14 ^ 0x26) & 0x3f) ^ uVar28;
  uVar17 = (*(ulonglong *)(lVar3 - (uVar38 ^ 0xd9d94a12)) ^ uVar21) << 0x34;
  uVar33 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar3 + -0x888) = uVar17 ^ uVar22;
  uVar18 = (ulonglong)DAT_182671c74;
  uVar17 = *(ulonglong *)(lVar3 + -0x228) ^ uVar28 | uVar17;
  uVar22 = CONCAT44(DAT_182671e78,DAT_182671e78);
  uVar28 = uVar17 ^ uVar33;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar28;
  uVar9 = DAT_182671ccc;
  *(ulonglong *)(lVar3 + -0xc90) = (uVar40 ^ *(ulonglong *)(lVar3 + -0xd88)) - uVar17 ^ uVar22;
  uVar40 = CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(lVar3 + -0x110) ^ uVar40 ^ uVar33 ^ uVar23 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x960) = uVar28;
  uVar9 = DAT_182671dfc;
  uVar18 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0xfe08dad7)) ^ uVar40) >> ((bVar39 ^ 0x1d) & 0x3f);
  *(ulonglong *)(lVar3 + -0xda8) = uVar18 ^ uVar21;
  uVar17 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xc38) = (uVar28 ^ uVar40) << ((local_res18 ^ 0xab) & 0x3f) ^ uVar17;
  uVar9 = DAT_182671db0;
  *(ulonglong *)(lVar3 + -0x888) =
       (CONCAT44(uVar13,uVar15) ^ 0x9a21866cb6575fb0) << ((bVar14 ^ 0x2c) & 0x3f);
  uVar28 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xfdfd5dd7)) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x7dffb5c3)) ^ uVar17 | uVar18) ^ uVar28;
  uVar9 = DAT_182671e60;
  uVar17 = (*(ulonglong *)(lVar3 + -0x110) ^ uVar23) - (CONCAT44(uVar5,uVar13) ^ 0x2445ca36e0c17f12)
  ;
  uVar18 = uVar17 ^ CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar3 + -0xd88) = uVar18;
  lVar31 = (*(ulonglong *)(lVar3 + -0xc90) ^ uVar22) << (((byte)uVar18 ^ (byte)uVar9) & 0x3f);
  *(ulonglong *)(lVar3 + -0x960) = uVar17 - (*(ulonglong *)(lVar3 + -0x228) ^ uVar28) ^ uVar32;
  *(longlong *)(lVar3 + -0xbd8) = lVar31;
  *(ulonglong *)(lVar3 + -0x888) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x5b316568)) ^ uVar28) -
       (CONCAT44(uVar34,uVar8) ^ 0x513a7cef736970cf) ^ uVar30;
  *(ulonglong *)(lVar3 + -0xda8) =
       (CONCAT44(uVar7,uVar6) ^ 0x6a1ab424e5dac659) << ((byte)lVar31 & 0x3f);
  uVar8 = DAT_182671d68;
  uVar17 = CONCAT44(DAT_182671d90,DAT_182671d90);
  uVar22 = uVar19 ^ *(ulonglong *)(lVar3 + -0xc90) ^ *(ulonglong *)(lVar3 + -0xa78) ^ uVar17 ^
           uVar22;
  *(ulonglong *)(lVar3 + -0xc38) = uVar22;
  *(ulonglong *)(lVar3 + -0x110) =
       (uVar22 ^ uVar17) >> (((byte)uVar6 ^ 0xb) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xd9d94ba2)) =
       (CONCAT44(uVar34,uVar4) ^ 0x73f523c2fdca1f57) >> ((bVar24 ^ 0xf7) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar12 * 4) = uVar2 ^ uVar34;
  return;
}



############ FUN_ 181023140 size=5454 ############

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

void FUN_181023140(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  ulonglong uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  byte bVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  byte local_c8;
  
  uVar9 = DAT_182671dc4;
  uVar6 = DAT_182671c64;
  uVar7 = DAT_182671c54;
  lVar4 = DAT_182671c40;
  uVar13 = (ulonglong)DAT_182671c54;
  uVar29 = (ulonglong)DAT_182671c64;
  uVar23 = DAT_182671c64 + DAT_182671c54;
  uVar3 = *(uint *)(&DAT_182613218 + DAT_182672114);
  uVar12 = *(uint *)(&DAT_182613210 + (uVar13 ^ 0xf81a977a) + (longlong)DAT_182672114) ^
           DAT_182671c64;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xb18);
  uVar18 = (CONCAT44(DAT_182671d28,DAT_182671d28) ^ *puVar1) -
           (CONCAT44(DAT_182671ed4,DAT_182671ed4) ^ *(ulonglong *)(DAT_182671c40 + -0x228));
  DAT_182671c58 = uVar23;
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar18 ^ CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar22 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar19 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(ulonglong *)(lVar4 + -0xf0) = uVar18 - (*(ulonglong *)(lVar4 + -0x510) ^ uVar27) ^ uVar22;
  uVar18 = -(*(ulonglong *)(lVar4 + -0x2b0) ^ uVar22) - 6;
  puVar2 = (ulonglong *)(lVar4 + -0xbd8);
  *puVar2 = uVar18 ^ uVar19;
  uVar9 = _DAT_182671cf0;
  uVar25 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar18 = (*(ulonglong *)(lVar4 + -0x510) ^ uVar27) + uVar18 ^ uVar25;
  *(ulonglong *)(lVar4 + -0xa50) = uVar18;
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar19 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x60bb8ca8)) =
       *(ulonglong *)(lVar4 + -0xb20) ^ uVar19 ^ uVar27 ^ uVar25 ^ uVar18;
  *(int *)(lVar4 + -0x76c) = *(int *)(lVar4 + -0x58c) * 0x231f4c0a;
  uVar9 = DAT_182671f08;
  lVar5 = DAT_182671c40;
  bVar14 = (byte)uVar23 ^ 0x60;
  uVar25 = CONCAT44(DAT_182671da4,DAT_182671da4);
  *(ulonglong *)(lVar4 + -0x920) =
       (*(ulonglong *)(lVar4 + -0x7e8) ^ uVar27) >> (bVar14 & 0x3f) ^ uVar25;
  uVar32 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x68a0f63e)) =
       *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar5 + -0xd50)) ^ uVar32;
  uVar11 = DAT_182671e68;
  uVar18 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xf81a9082)) ^ uVar27) << (bVar14 & 0x3f);
  uVar37 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *(ulonglong *)(lVar5 + -0x380) = uVar18 ^ CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar10 = DAT_182671f2c;
  uVar9 = DAT_182671ea4;
  uVar18 = *(ulonglong *)(lVar5 - ((ulonglong)uVar23 ^ 0x60bb8260)) ^ uVar25 | uVar18;
  *(ulonglong *)(lVar5 + -0x4b8) = uVar18 ^ uVar37;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 + -0xa78) =
       (*(ulonglong *)(lVar5 - (uVar13 ^ 0xf81a9c4a)) ^ uVar19) - uVar18 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x408) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x68a0f3e6)) ^ CONCAT44(uVar9,uVar9) ^ uVar32 ^
       uVar22 ^ *(ulonglong *)(lVar5 + -0xf0);
  lVar4 = DAT_182671c40;
  bVar26 = (byte)uVar7;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x68a0f4b6)) =
       CONCAT44(uVar7,uVar7) ^ 0x95a9de2d5452f605;
  uVar10 = DAT_182671dcc;
  uVar19 = uVar32 ^ *(ulonglong *)(lVar5 + -0x408);
  uVar18 = uVar19 >> ((bVar26 ^ 0x4a) & 0x3f);
  uVar30 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar19 = uVar19 << ((bVar26 ^ 0x4a) & 0x3f);
  *(ulonglong *)(lVar4 + -0x828) = uVar18 ^ uVar30;
  uVar9 = DAT_182671d54;
  *(ulonglong *)(lVar4 + -0xa60) = uVar19 ^ CONCAT44(uVar10,uVar10);
  lVar4 = DAT_182671c40;
  uVar28 = CONCAT44(uVar9,uVar9);
  puVar20 = (ulonglong *)(DAT_182671c40 + -0xf0);
  uVar33 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(DAT_182671c40 + -0x228) = (uVar19 | uVar18) ^ uVar28;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x60bb8058)) =
       (uVar22 ^ *puVar20) - (*(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x60bb8968)) ^ uVar28) ^
       uVar33;
  uVar15 = DAT_182671c90;
  local_c8 = (byte)uVar6;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x60bb87d0)) =
       CONCAT44(uVar6,uVar6) ^ 0xfa854fffbe7b55ca | *(ulonglong *)(lVar4 + -0x760);
  uVar9 = DAT_182671d84;
  uVar17 = DAT_182671c68;
  uVar19 = CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar27 = (ulonglong)DAT_182671c68;
  uVar18 = *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x60bb8138)) ^ *(ulonglong *)(lVar4 + -0x228)
           ^ uVar19 ^ uVar28 ^ uVar25;
  *(ulonglong *)(lVar4 + -0x510) = uVar18;
  uVar8 = DAT_182671c78;
  uVar28 = (uVar18 ^ uVar19) >> ((bVar26 ^ 0x50) & 0x3f);
  *puVar2 = uVar28 ^ CONCAT44(uVar9,uVar9);
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = (uVar18 ^ uVar19) << (((byte)uVar15 ^ 6) & 0x3f) ^ uVar22
  ;
  *(ulonglong *)(lVar4 + -0x5e8) =
       (CONCAT44(DAT_182671c74,uVar23) ^ 0x1795d3ae4175c8b8) >> ((local_c8 ^ 0xec) & 0x3f);
  uVar15 = uVar8 & uVar17;
  puVar20 = (ulonglong *)(lVar4 - (uVar27 ^ 0xf8f9f3a8));
  uVar36 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  DAT_182671c74 = uVar15;
  *(ulonglong *)(lVar4 + -0x7e8) = (uVar28 | uVar22 ^ *puVar20) ^ uVar36;
  uVar9 = DAT_182671e64;
  *(ulonglong *)(lVar4 + -0x920) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xd868f6d0)) ^ uVar36) >>
       (((byte)uVar11 ^ *(byte *)(lVar4 + -0x4b8)) & 0x3f);
  uVar38 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x380) =
       (*(ulonglong *)(lVar4 + -0xa78) ^ uVar25) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xdc68f6d0)) ^ uVar36) ^ uVar38;
  *(uint *)(lVar4 - ((ulonglong)uVar8 ^ 0xdc68f70c)) = (uVar17 ^ 0x32096f64) + 0x8f0059de;
  uVar28 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  puVar40 = (ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xf8f9f2d8));
  *puVar40 = uVar28 ^ uVar33 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0x4b8) ^ *puVar1;
  bVar21 = (byte)uVar15;
  uVar28 = uVar28 ^ *(ulonglong *)(lVar4 + -0xb20);
  uVar25 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar19 = uVar28 >> ((bVar21 ^ 0x2e) & 0x3f);
  *(uint *)(lVar4 + -0x94) = *(uint *)(lVar4 + -0x634) >> 0x1c;
  uVar18 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar4 + -0x30) = uVar19 ^ uVar25;
  uVar9 = DAT_182671e24;
  uVar28 = uVar28 << (((byte)uVar8 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar4 + -0x408) = uVar28 ^ uVar18;
  lVar4 = DAT_182671c40;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xdc68f910)) = (uVar19 | uVar28) ^ uVar22;
  uVar9 = DAT_182671cf8;
  uVar18 = *puVar1;
  *(ulonglong *)(lVar4 + -0xa60) = ((ulonglong)(uVar15 >> 8) | uVar27 << 0x18) ^ 0x133d787671c6fc;
  uVar10 = DAT_182671e70;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar33 ^ uVar18) - (uVar22 ^ *(ulonglong *)(lVar4 + -0x828)) ^ uVar37;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0xc90) =
       *(ulonglong *)(lVar4 + -0x380) ^ uVar18 ^ uVar22 ^ uVar38 ^ *(ulonglong *)(lVar4 + -0x828);
  uVar6 = DAT_182671c78;
  bVar14 = (byte)DAT_182671c78;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c78 ^ 0xdc68f658)) =
       (CONCAT44(uVar15,uVar15) ^ 0x47d441b15cc257a9) >> (((byte)uVar8 ^ 0x24) & 0x3f);
  uVar22 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(lVar4 + -0x228) =
       (uVar18 ^ *(ulonglong *)(lVar4 + -0xc90)) >> ((bVar14 ^ 0x16) & 0x3f) ^ uVar22;
  puVar24 = (ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xd868f4d0));
  *(ulonglong *)(lVar4 + -0x510) = CONCAT44(uVar17,uVar17) ^ 0xf797546c6b9d6921 | *puVar24;
  uVar19 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xdc68fae0)) =
       (uVar18 ^ *(ulonglong *)(lVar4 + -0xc90)) << ((bVar14 ^ 0x2a) & 0x3f) ^ uVar19;
  lVar4 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *puVar20 = (*puVar2 ^ uVar19 | *(ulonglong *)(DAT_182671c40 + -0x228) ^ uVar22) ^ uVar34;
  uVar9 = DAT_182671f18;
  uVar39 = (ulonglong)DAT_182671c94;
  uVar22 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  *(ulonglong *)(lVar4 + -0x920) =
       (*(ulonglong *)(lVar4 + -0x380) ^ uVar38) - (uVar34 ^ *(ulonglong *)(lVar4 + -0xa50)) ^
       uVar22;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0xb5ac0e27)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xd868f1c8)) ^ uVar19 ^ uVar37 ^ uVar36 ^
       *(ulonglong *)(lVar4 + -0x7e8);
  uVar9 = DAT_182671db0;
  uVar33 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(ulonglong *)(lVar4 + -0x4b8) =
       (uVar19 ^ *(ulonglong *)(lVar4 + -0xa78)) >> ((bVar14 ^ 0x34) & 0x3f) ^ uVar33;
  *puVar40 = (uVar18 ^ *(ulonglong *)(lVar4 + -0xc90)) + 0x4ee5615fb20d8629;
  uVar28 = (ulonglong)DAT_182671c5c;
  uVar38 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x408) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0xf8f9f380)) ^ uVar19) << ((local_c8 ^ 0xe2) & 0x3f) ^
       uVar38;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0xa60) =
       (CONCAT44(uVar7,uVar17) ^ 0xbd961e3ad48ce61b) >>
       ((byte)*(undefined8 *)(lVar4 + -0x760) & 0x3f);
  uVar18 = *(ulonglong *)(lVar5 + -0xf0);
  puVar40 = (ulonglong *)(lVar4 - ((ulonglong)DAT_182671c48 ^ 0xdc68f530));
  uVar36 = CONCAT44(DAT_182671d24,DAT_182671d24);
  uVar33 = uVar38 ^ *puVar40 | uVar33 ^ *(ulonglong *)(lVar5 + -0x4b8);
  uVar19 = uVar33 ^ uVar36;
  *puVar1 = uVar19;
  uVar9 = DAT_182671d40;
  uVar31 = CONCAT44(DAT_182671d88,DAT_182671d88);
  *(ulonglong *)(lVar5 + -0x828) = (uVar37 ^ uVar18) - uVar33 ^ uVar31;
  uVar6 = DAT_182671c50;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar19 = *(ulonglong *)(lVar5 - (uVar28 ^ 0x78e10b32)) ^ uVar37 ^ uVar36 ^ uVar22 ^ uVar19;
  *(ulonglong *)(DAT_182671c40 + -0x510) = uVar19;
  uVar16 = DAT_182671c6c;
  uVar33 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *puVar24 = (uVar19 ^ uVar37) >> ((local_c8 ^ 0xcf) & 0x3f) ^ uVar33;
  lVar4 = DAT_182671c40;
  bVar14 = (byte)DAT_182671c78;
  *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0xf8f9fbd0)) =
       (uVar34 ^ *puVar20) >> (((byte)uVar6 ^ 0xcd) & 0x3f);
  uVar18 = *(ulonglong *)(lVar4 + -0x5e8);
  uVar19 = CONCAT44(DAT_182671e94,DAT_182671e94);
  *puVar2 = (uVar37 ^ *(ulonglong *)(lVar4 + -0x510)) << ((bVar14 ^ 0x1f) & 0x3f) ^ uVar19;
  uVar15 = DAT_182671c58;
  uVar36 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar37 = (ulonglong)DAT_182671c58;
  uVar33 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c58 ^ 0x60bb8098)) ^ uVar19 |
           uVar33 ^ uVar18;
  *(ulonglong *)(lVar4 + -0x380) = uVar33 ^ uVar36;
  uVar9 = DAT_182671d2c;
  *(ulonglong *)(lVar4 + -0x7e8) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x52c2e2de)) ^ uVar25 ^ 0x7c96abec3f407999;
  uVar10 = DAT_182671e48;
  uVar19 = (uVar22 ^ *(ulonglong *)(lVar4 + -0x920)) -
           (CONCAT44(DAT_182671fac,DAT_182671fac) ^ *(ulonglong *)(lVar4 + -0xd88));
  *(ulonglong *)(lVar4 + -0xc90) = uVar19 ^ CONCAT44(uVar9,uVar9);
  uVar35 = CONCAT44(uVar10,uVar10);
  uVar25 = (ulonglong)DAT_182671c88;
  uVar18 = CONCAT44(uVar8,DAT_182671c88);
  *(ulonglong *)(lVar4 + -0xb20) = uVar19 - uVar33 ^ uVar35;
  uVar9 = DAT_182671ddc;
  *(ulonglong *)(lVar4 + -0xa78) = (uVar18 ^ 0xd3ead44f66fbb0ea) >> ((bVar21 ^ 0x1c) & 0x3f);
  uVar10 = DAT_182671f8c;
  lVar4 = DAT_182671c40;
  uVar18 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x89a3fa8e)) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(DAT_182671c40 + -0x888)) +
       (CONCAT44(DAT_182671c7c,uVar15) ^ 0xb44b084cd723e65c) ^ uVar18;
  uVar8 = DAT_182671c70;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0xb5ac0e3f)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0xb20)) >>
       ((*(byte *)(lVar4 - (uVar37 ^ 0x60bb8c20)) ^ (byte)uVar10) & 0x3f);
  uVar37 = CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar4 + -0x4b8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x52c2e16e)) ^ uVar36) -
       (uVar18 ^ *(ulonglong *)(lVar4 + -0x760)) ^ uVar37;
  uVar15 = DAT_182671c8c;
  uVar39 = (ulonglong)DAT_182671c8c;
  uVar16 = DAT_182671c58 ^ 0x15510821;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xd8eebc25)) =
       *(ulonglong *)(lVar4 - (uVar13 ^ 0xf81a9f42)) ^ uVar31 ^ uVar22 ^ uVar34 ^
       *(ulonglong *)(lVar4 + -0xa50);
  uVar10 = DAT_182671f48;
  uVar22 = uVar22 ^ *(ulonglong *)(lVar4 + -0x408);
  uVar18 = *(ulonglong *)(lVar4 + -0x828);
  uVar19 = uVar22 << 0x1f;
  *(uint *)(lVar4 + -0x644) = uVar16 + (DAT_182671c90 ^ 0x976685b0);
  uVar9 = DAT_182671d04;
  uVar22 = uVar22 >> (((byte)DAT_182671c84 ^ 0xf9) & 0x3f);
  *(ulonglong *)(lVar4 + -0xf0) = uVar22 ^ CONCAT44(uVar10,uVar10);
  *puVar1 = uVar19 ^ CONCAT44(uVar9,uVar9);
  uVar10 = DAT_182671d68;
  uVar9 = DAT_182671cd0;
  puVar20 = (ulonglong *)(lVar4 + -0xda8);
  uVar34 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar4 + -0x228) = (uVar19 | uVar22) ^ uVar34;
  uVar11 = DAT_182671da0;
  uVar36 = CONCAT44(uVar10,uVar10);
  uVar18 = (uVar31 ^ uVar18) - (CONCAT44(uVar9,uVar9) ^ *puVar20);
  *(ulonglong *)(lVar4 + -0x510) = uVar18 ^ uVar36;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0x52c2e706)) =
       uVar18 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xfff9fdd0)) ^ uVar34) ^ uVar33;
  lVar4 = DAT_182671c40;
  uVar18 = *(ulonglong *)(DAT_182671c40 + -0x228);
  uVar19 = *(ulonglong *)(DAT_182671c40 + -0xb20);
  uVar25 = (CONCAT44(uVar15,uVar17) ^ 0x8f3f072f07060603) -
           (*(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0x68a0f556)) ^ uVar30);
  *puVar2 = uVar25 ^ CONCAT44(DAT_182671d14,DAT_182671d14);
  uVar10 = DAT_182671f34;
  uVar6 = DAT_182671d78;
  uVar22 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar18 = (uVar34 ^ uVar18) + uVar25 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x7e8) = uVar18;
  uVar22 = uVar35 ^ uVar18 ^ uVar19 ^ CONCAT44(uVar6,uVar6) ^ uVar22;
  *(ulonglong *)(lVar4 + -0x30) = uVar22;
  uVar9 = DAT_182671d18;
  uVar22 = ((ulonglong)uVar6 << 0x1b | (ulonglong)(uVar6 >> 5)) ^ uVar22 >> 5;
  *(ulonglong *)(lVar4 + -0x920) = uVar22 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671f00;
  uVar18 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0x78e10222)) ^ CONCAT44(uVar6,uVar6)) << 0x3b;
  *(ulonglong *)(lVar4 + -0xc90) = uVar18 ^ CONCAT44(uVar9,uVar9);
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar22 = uVar22 | uVar18;
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar22 ^ uVar28;
  uVar9 = DAT_182671f30;
  lVar4 = DAT_182671c40;
  uVar25 = CONCAT44(DAT_182671d20,DAT_182671d20);
  bVar14 = (byte)DAT_182671c7c;
  *(ulonglong *)(DAT_182671c40 + -0xa60) = (uVar35 ^ uVar19) - uVar22 ^ uVar25;
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x380) =
       uVar33 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0x4b8) ^ uVar34 ^ *(ulonglong *)(lVar4 + -0x5e8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c80 ^ 0xf8fff3af)) =
       (CONCAT44(uVar17,DAT_182671c60) ^ 0xec7ff5a8530ccb40) >> ((bVar14 ^ 0xed) & 0x3f);
  uVar9 = DAT_182671ce4;
  uVar18 = *(ulonglong *)(lVar4 + -0x5e8);
  uVar22 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(ulonglong *)(lVar4 + -0x408) =
       (*(ulonglong *)(lVar4 + -0x380) ^ uVar34) >> ((bVar21 ^ 0x1d) & 0x3f) ^ uVar22;
  uVar10 = DAT_182671d7c;
  uVar19 = (*(ulonglong *)(lVar4 + -0x380) ^ uVar34) << (((byte)uVar17 ^ 0xe3) & 0x3f);
  *(ulonglong *)(lVar4 + -0xf0) = uVar19 ^ CONCAT44(uVar9,uVar9);
  uVar29 = CONCAT44(uVar10,uVar10);
  uVar19 = *puVar40 ^ uVar22 | uVar19;
  uVar22 = uVar19 ^ uVar29;
  *puVar1 = uVar22;
  uVar37 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(uint *)(lVar4 + -0x58c) = (DAT_182671c78 ^ 0xf7dd0bc8) + *(int *)(lVar4 + -0x94c);
  *(ulonglong *)(lVar4 + -0x828) = (uVar33 ^ uVar18) - uVar19 ^ uVar37;
  uVar15 = DAT_182671c6c;
  lVar4 = DAT_182671c40;
  uVar19 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar8 ^ 0xd8eeb585)) =
       *(ulonglong *)(DAT_182671c40 - (uVar27 ^ 0xf8f9f398)) ^ uVar19 ^ uVar29 ^ uVar25 ^ uVar22;
  uVar10 = DAT_182671e80;
  uVar18 = (*(ulonglong *)(lVar4 - (uVar39 ^ 0x70c0f578)) ^ uVar19) >> (((byte)uVar8 ^ 0x3a) & 0x3f)
  ;
  uVar19 = (uVar19 ^ *puVar20) << 0x29;
  *(ulonglong *)(lVar4 + -0x510) = uVar18 ^ CONCAT44(DAT_182671ca0,DAT_182671ca0);
  uVar9 = DAT_182671cb8;
  *puVar2 = uVar19 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671d64;
  uVar6 = DAT_182671c54;
  uVar19 = uVar19 | uVar18;
  *(ulonglong *)(lVar4 + -0x228) = uVar19 ^ CONCAT44(uVar9,uVar9);
  uVar17 = uVar15 * uVar6;
  uVar27 = CONCAT44(uVar10,uVar10);
  uVar22 = (ulonglong)uVar17;
  DAT_182671c60 = uVar17;
  *(ulonglong *)(lVar4 + -0x7e8) = (*(ulonglong *)(lVar4 + -0xa60) ^ uVar25) - uVar19 ^ uVar27;
  *(uint *)(lVar4 + -0x76c) = (uVar15 ^ 0x981c7e9e) - (uVar6 ^ 0x765234a8);
  uVar29 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  uVar18 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar4 + -0x920) =
       *(ulonglong *)(lVar4 - (uVar22 ^ 0xd4b852f4)) ^ *(ulonglong *)(lVar4 + -0x828) ^ uVar29 ^
       uVar37 ^ uVar28;
  uVar9 = DAT_182671e8c;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0xc90) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x52c2e486)) ^ uVar18) ^ uVar32;
  uVar18 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0xb20) =
       (*(ulonglong *)(lVar5 + -0x920) ^ uVar29) >> (((byte)uVar17 ^ 0xa4) & 0x3f) ^ uVar18;
  *(uint *)(lVar5 - (uVar22 ^ 0xd4b85eb8)) =
       (uVar15 ^ 0xa657eeb1) << ((byte)*(undefined4 *)(lVar5 + -0x54) & 0x1f);
  uVar19 = (*(ulonglong *)(lVar5 - (uVar13 ^ 0xf81a9e4a)) ^ uVar29) << ((bVar26 ^ 0x72) & 0x3f);
  puVar40 = (ulonglong *)(DAT_182671c40 + -0xb20);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) = uVar19 ^ CONCAT44(DAT_182671d08,DAT_182671d08);
  lVar4 = DAT_182671c40;
  uVar18 = *puVar40 ^ uVar18;
  uVar25 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(DAT_182671c40 + -0xa50) = (uVar19 | uVar18) ^ uVar25;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xd4b85b0c)) =
       (*(ulonglong *)(lVar4 + -0x920) ^ uVar29) + uVar18;
  uVar9 = DAT_182671e1c;
  *(ulonglong *)(lVar4 + -0x408) =
       (*(ulonglong *)(lVar4 + -0x828) ^ uVar37) - (uVar25 ^ *(ulonglong *)(lVar4 + -0xa50)) ^
       CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar18 = *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x52c2e506)) ^ uVar36 ^ uVar25 ^ uVar27 ^
           *(ulonglong *)(lVar4 + -0xa50);
  *(ulonglong *)(lVar4 + -0xf0) = uVar18;
  lVar5 = DAT_182671c40;
  uVar19 = (*(ulonglong *)(lVar4 - (uVar13 ^ 0xf81a979a)) ^ uVar36) >> ((bVar26 ^ 0x5e) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar19 ^ uVar38;
  uVar18 = (uVar36 ^ uVar18) << (((byte)uVar15 ^ 0xe2) & 0x3f);
  *puVar1 = (CONCAT44(uVar7,uVar15) ^ 0x1c7cd75720f59089) >>
            ((*(byte *)(lVar5 - (uVar22 ^ 0xd4b85c84)) ^ (byte)uVar9) & 0x3f);
  *puVar20 = uVar18 ^ CONCAT44(DAT_182671e00,DAT_182671e00);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar12 * 4) = uVar3 ^ uVar23;
  *puVar2 = (uVar19 | uVar18) ^ uVar34;
  return;
}



############ FUN_ 180fee830 size=5152 ############

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

void FUN_180fee830(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  ulonglong *puVar19;
  uint uVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_d8;
  byte local_a0;
  byte local_78;
  
  uVar5 = DAT_182671f90;
  uVar12 = DAT_182671c88;
  uVar7 = DAT_182671c7c;
  uVar8 = DAT_182671c58;
  lVar3 = DAT_182671c40;
  uVar24 = (ulonglong)DAT_182671c7c;
  uVar32 = (ulonglong)DAT_182671c58;
  uVar20 = DAT_182671c58 + DAT_182671c7c;
  uVar16 = *(uint *)(&DAT_182613210 + (uVar24 ^ 0xbd9e7573) + (longlong)DAT_18267206c) ^
           DAT_182671c58;
  uVar2 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar20 ^ 0xc3f33a35) + (longlong)DAT_18267206c);
  uVar40 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar38 = CONCAT44(DAT_182671f84,DAT_182671f84);
  bVar27 = (byte)DAT_182671c7c;
  uVar30 = (CONCAT44(DAT_182671dd4,DAT_182671dd4) ^ *(ulonglong *)(DAT_182671c40 + -0xd88)) <<
           ((bVar27 ^ 0x77) & 0x3f);
  DAT_182671c50 = uVar20;
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar30 ^ uVar40;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0xc3f3380d)) =
       (CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar3 + -0x888) | uVar30) ^ uVar38;
  uVar26 = CONCAT44(DAT_182671f74,DAT_182671f74);
  uVar30 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(uint *)(lVar3 + -0x9dc) = (uVar12 ^ 0xa3592a35) - *(int *)(lVar3 + -0x58c);
  uVar5 = DAT_182671fa0;
  *(ulonglong *)(lVar3 + -0x5e8) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0xbd8)) - (uVar38 ^ *(ulonglong *)(lVar3 + -0x228)) ^
       uVar26;
  uVar9 = DAT_182671c5c;
  lVar4 = DAT_182671c40;
  uVar34 = CONCAT44(uVar5,uVar5);
  uVar31 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar25 = CONCAT44(DAT_182671e20,DAT_182671e20);
  puVar19 = (ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x654c1ba));
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x654c902)) =
       *puVar19 ^ *(ulonglong *)(lVar3 + -0x960) ^ uVar25 ^ uVar31 ^ uVar34;
  uVar21 = DAT_182671c74;
  local_d8 = (byte)uVar20;
  puVar18 = (ulonglong *)(DAT_182671c40 + -0xa78);
  uVar30 = (*(ulonglong *)(DAT_182671c40 + -0xda8) ^ uVar34) >> ((local_d8 ^ 0x1c) & 0x3f);
  *puVar18 = uVar30 ^ CONCAT44(DAT_182671ec4,DAT_182671ec4);
  uVar5 = DAT_182671e74;
  uVar32 = (ulonglong)uVar12;
  *(ulonglong *)(lVar4 + -0xc38) =
       CONCAT44(uVar12,uVar21) ^ CONCAT44(uVar9,uVar8) ^ 0x30c05a93029ab9ff;
  uVar36 = CONCAT44(uVar5,uVar5);
  uVar35 = CONCAT44(DAT_182671e5c,DAT_182671e5c);
  *(ulonglong *)(lVar4 + -0xc90) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0xbd9e78d3)) ^ uVar34) << ((bVar27 ^ 0x7c) & 0x3f) ^ uVar36
  ;
  puVar1 = (ulonglong *)(lVar4 + -0x680);
  uVar30 = *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xdceef5ad)) ^ uVar36 | uVar30;
  uVar34 = uVar30 ^ uVar35;
  *puVar1 = uVar34;
  uVar5 = DAT_182671d10;
  uVar11 = DAT_182671c74;
  uVar39 = CONCAT44(DAT_182671e98,DAT_182671e98);
  uVar29 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar4 + -0xd88) = (*(ulonglong *)(lVar4 + -0x510) ^ uVar25) - uVar30 ^ uVar39;
  *(uint *)(lVar4 + -0x5d4) = (uVar8 ^ 0x62d691fc) + 0x4683037e;
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar4 + -0x888) =
       uVar34 ^ *(ulonglong *)(lVar4 + -0x5e8) ^ uVar37 ^ uVar35 ^ uVar26;
  uVar5 = DAT_182671f0c;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0x110) =
       *(ulonglong *)(lVar4 - (uVar32 ^ 0xefea541c)) ^ CONCAT44(DAT_182671d30,DAT_182671d30) ^
       *(ulonglong *)(lVar4 + -0xa08) ^ uVar36;
  uVar34 = (*(ulonglong *)(lVar4 + -0x888) ^ uVar37) >> ((bVar27 ^ 0x75) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar34 ^ CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x960) = uVar38 ^ *(ulonglong *)(lVar3 + -0x228) | 0xb58f8fc5bf46b447;
  puVar22 = (ulonglong *)(lVar3 - (uVar29 ^ 0xf48403f4));
  bVar33 = (byte)uVar12;
  uVar30 = (*puVar22 ^ uVar37) << ((bVar33 ^ 0xbe) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc38) = uVar30 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xda8) = uVar30 ^ 0xab856ad17e2a2801;
  uVar36 = CONCAT44(DAT_182671d8c,DAT_182671d8c);
  *puVar18 = (uVar34 | uVar30) ^ uVar36;
  uVar6 = DAT_182671c5c;
  uVar30 = CONCAT44(DAT_182671d40,DAT_182671d40);
  uVar28 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x76048490)) =
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar26) - (CONCAT44(uVar7,uVar20) ^ 0xc40daef232a738d3) ^
       uVar30;
  uVar10 = DAT_182671fb0;
  uVar34 = (ulonglong)DAT_182671fb0;
  uVar21 = DAT_182671fb0 >> 0x10;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x76048700)) =
       CONCAT44(uVar7,uVar11) ^ 0x8223556d502060d7 | uVar40 ^ *(ulonglong *)(lVar3 + -0xc38);
  uVar41 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xc90) =
       (*(ulonglong *)(lVar3 + -0x510) ^ uVar30) -
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0xf4840104)) ^ uVar36) ^ uVar41;
  uVar26 = CONCAT44(DAT_182671d94,DAT_182671d94);
  *(ulonglong *)(lVar3 + -0xa08) =
       (*puVar18 ^ uVar36) - (CONCAT44(uVar8,uVar6) ^ 0x1e55b41a5ee6cf48) ^ uVar26;
  uVar7 = DAT_182671c54;
  uVar30 = *(ulonglong *)(lVar3 + -0xd88) ^ uVar25 ^ uVar39 ^ uVar38 ^
           *(ulonglong *)(lVar3 + -0x228);
  uVar29 = (ulonglong)DAT_182671c54;
  uVar36 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar3 + -0x110) = uVar30;
  uVar10 = DAT_182671c70;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x7178566e)) =
       ((ulonglong)uVar21 | uVar34 << 0x10) ^ uVar30 >> 0x10 ^ uVar36;
  uVar6 = DAT_182671c4c;
  uVar29 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar34 = (ulonglong)DAT_182671c4c;
  uVar30 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar3 + -0xda8) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xdceef82d)) ^ uVar25) << (((byte)uVar10 ^ 0xef) & 0x3f) ^
       uVar29;
  uVar21 = uVar6 ^ DAT_182671c88;
  uVar43 = (ulonglong)uVar21;
  uVar36 = *(ulonglong *)(lVar3 - (uVar32 ^ 0xefea51ec)) ^ uVar36 |
           *(ulonglong *)(lVar3 - (uVar30 ^ 0x103c0473)) ^ uVar29;
  uVar25 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  DAT_182671c84 = uVar21;
  *(ulonglong *)(lVar3 + -0xbd8) = uVar36 ^ CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar13 = DAT_182671d68;
  uVar30 = (*(ulonglong *)(lVar3 - (uVar43 ^ 0xffd65cdf)) ^ uVar39) -
           (CONCAT44(uVar6,uVar21) ^ 0xa0fb7cb928024c52);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar30 ^ uVar25;
  uVar5 = DAT_182671d2c;
  lVar3 = DAT_182671c40;
  uVar28 = CONCAT44(uVar13,uVar13);
  uVar25 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = uVar30 - uVar36 ^ uVar28;
  uVar36 = (CONCAT44(uVar6,uVar12) ^ 0x88a5d9aee4c4e971) + uVar36;
  uVar30 = uVar36 ^ uVar25;
  *puVar1 = uVar30;
  lVar4 = DAT_182671c40;
  uVar38 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xefea5524)) ^ uVar29) >>
       (((byte)uVar30 ^ (byte)uVar5) & 0x3f);
  *puVar18 = *(ulonglong *)(lVar4 - (uVar43 ^ 0xffd65dc7)) ^ uVar30 ^ uVar38 ^ uVar25 ^ uVar41;
  uVar5 = DAT_182671fa8;
  uVar30 = *puVar18;
  *(ulonglong *)(lVar4 + -0x228) = uVar36 | *(ulonglong *)(lVar4 + -0x888) ^ uVar37;
  uVar25 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xefea599c)) =
       (uVar30 ^ uVar38) >> (((byte)uVar21 ^ 0x77) & 0x3f) ^ uVar25;
  uVar30 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar4 + -0x960) = (*puVar18 ^ uVar38) << ((bVar33 ^ 0xac) & 0x3f) ^ uVar30;
  uVar29 = CONCAT44(DAT_182671e14,DAT_182671e14);
  puVar23 = (ulonglong *)(lVar4 - (uVar34 ^ 0x103c0453));
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x103c00bb)) ^ uVar30 |
       *(ulonglong *)(lVar4 + -0x110) ^ uVar25) ^ uVar29;
  uVar5 = DAT_182671da8;
  uVar39 = CONCAT44(DAT_182671d14,DAT_182671d14);
  *(ulonglong *)(lVar4 + -0x5e8) =
       (*(ulonglong *)(lVar4 + -0xc90) ^ uVar41) - (*puVar23 ^ uVar29) ^ uVar39;
  uVar10 = DAT_182671c64;
  uVar38 = CONCAT44(uVar5,uVar5);
  uVar36 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar4 + -0xbd8) =
       uVar38 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0xa08) ^ uVar26 ^ *(ulonglong *)(lVar4 + -0xc38);
  *(int *)(lVar4 - (uVar43 ^ 0xffd651c3)) = *(int *)(lVar4 + -0x94c) * 2;
  uVar5 = DAT_182671fa4;
  uVar26 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar30 = *(ulonglong *)(lVar4 - (uVar34 ^ 0x103c0203));
  uVar25 = (uVar38 ^ *(ulonglong *)(lVar4 + -0xbd8)) << ((bVar33 ^ 0xac) & 0x3f);
  *(ulonglong *)(lVar4 + -0x510) = uVar25 ^ uVar40;
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar4 + -0xda8) = (uVar30 ^ uVar38) >> (((byte)uVar10 ^ 0xff) & 0x3f) ^ uVar26;
  uVar5 = DAT_182671d50;
  uVar25 = *(ulonglong *)(lVar4 - (uVar43 ^ 0xffd65cff)) ^ uVar26 | uVar25;
  *puVar1 = uVar25 ^ uVar37;
  lVar3 = DAT_182671c40;
  uVar38 = CONCAT44(uVar5,uVar5);
  *puVar22 = (*(ulonglong *)(DAT_182671c40 - (uVar24 ^ 0xbd9e7943)) ^ uVar28) - uVar25 ^ uVar38;
  uVar30 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xffd6537f)) =
       *puVar1 ^ uVar30 ^ uVar37 ^ uVar39 ^ *(ulonglong *)(lVar3 + -0x5e8);
  *puVar18 = 0xd8dffc7a56bf9739 >> ((bVar27 ^ 0x54) & 0x3f);
  uVar21 = DAT_182671c60;
  uVar37 = CONCAT44(DAT_182671d00,DAT_182671d00);
  local_a0 = (byte)uVar8;
  uVar41 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xefea5aa4)) ^ uVar30) >> ((local_a0 ^ 0x90) & 0x3f) ^
       uVar37;
  *(int *)(lVar3 - (uVar34 ^ 0x103c033f)) = *(int *)(lVar3 + -0x670) * *(int *)(lVar3 + -0x5d4);
  uVar25 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(uint *)(lVar3 + -0x784) = (uVar10 ^ 0xa3b5e0e5) + (uVar7 ^ 0x1e28ae71);
  uVar26 = (uVar30 ^ *(ulonglong *)(lVar3 + -0x228)) << (((byte)uVar21 ^ 0x22) & 0x3f);
  uVar30 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(lVar3 + -0x960) = uVar26 ^ uVar25;
  uVar5 = DAT_182671e44;
  uVar28 = (ulonglong)DAT_182671c94;
  uVar26 = uVar26 | *(ulonglong *)(lVar3 + -0x110) ^ uVar37;
  *(ulonglong *)(lVar3 + -0xc90) = uVar26 ^ uVar30;
  uVar15 = DAT_182671e7c;
  uVar42 = CONCAT44(uVar5,uVar5);
  uVar25 = (ulonglong)DAT_182671e7c;
  *(ulonglong *)(lVar3 + -0xa08) = (uVar39 ^ *(ulonglong *)(lVar3 + -0x5e8)) - uVar26 ^ uVar42;
  uVar21 = DAT_182671c90;
  uVar5 = DAT_182671c48;
  uVar17 = DAT_182671c50 ^ 0xfdd134ef;
  *(ulonglong *)(lVar3 + -0xbd8) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c90 ^ 0xfbdff271)) ^
       *(ulonglong *)(lVar3 - (uVar28 ^ 0x33f94cda)) ^ CONCAT44(uVar15,uVar15) ^ uVar38 ^ uVar29;
  *(uint *)(lVar3 + -0x9dc) = uVar17 * *(int *)(lVar3 + -0x94);
  uVar28 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *(ulonglong *)(lVar3 + -0xda8) =
       ((ulonglong)(uVar15 >> 0x16) | uVar25 << 10) ^ *(ulonglong *)(lVar3 + -0xbd8) >> 0x16 ^
       uVar28;
  uVar26 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x103c0ccb)) =
       (CONCAT44(uVar9,uVar12) ^ 0xc3d26bac9f57910) - (CONCAT44(uVar21,uVar5) ^ 0x3d6a10f540e42a35);
  uVar13 = DAT_182671f50;
  uVar29 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar25 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar3 + -0xc38) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0xc3f331fd)) ^ CONCAT44(uVar15,uVar15)) <<
       (((byte)uVar21 ^ 0xd3) & 0x3f) ^ uVar29;
  lVar4 = DAT_182671c40;
  uVar39 = CONCAT44(uVar13,uVar13);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar25 ^ 0xf4840744)) ^ uVar29 |
            uVar28 ^ *(ulonglong *)(lVar3 + -0xda8)) ^ uVar39;
  *(int *)(lVar3 - (uVar26 ^ 0x7dff6d4c)) =
       -0x548f1aa8 << ((byte)*(undefined4 *)(lVar3 + -0x6c0) & 0x1f);
  uVar9 = DAT_182671c8c;
  uVar25 = (ulonglong)DAT_182671c8c;
  uVar40 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *puVar18 = (*(ulonglong *)(lVar3 + -0x888) ^ uVar38) - (*puVar1 ^ uVar39) ^ uVar40;
  uVar14 = DAT_182671dbc;
  uVar28 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x103c0bf3)) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c5c ^ 0xdceef335)) ^ *puVar1 ^ uVar28 ^ uVar39 ^
       uVar42;
  uVar21 = DAT_182671c70;
  lVar3 = DAT_182671c40;
  uVar29 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xefc3f734)) =
       (CONCAT44(uVar11,uVar10) ^ 0x10f37385e9c28be9) + (CONCAT44(uVar8,uVar5) ^ 0x3e162ffaa2bf9c50)
  ;
  uVar5 = DAT_182671ce4;
  uVar38 = (uVar28 ^ *(ulonglong *)(lVar3 + -0x228)) >> ((bVar33 ^ 0xa2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x960) = uVar38 ^ CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar25 = (uVar28 ^ *(ulonglong *)(lVar3 + -0x228)) << ((local_d8 ^ 0x37) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar25 ^ CONCAT44(uVar5,uVar5);
  uVar5 = DAT_182671cb0;
  uVar38 = uVar38 | uVar25;
  *(ulonglong *)(lVar3 + -0xd88) =
       *(ulonglong *)(lVar3 - (uVar43 ^ 0xffd65447)) ^ CONCAT44(uVar9,uVar21) ^ 0x695b9ef8a655b8e;
  uVar25 = CONCAT44(uVar5,uVar5);
  uVar28 = CONCAT44(DAT_182671f38,DAT_182671f38);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar38 ^ uVar25;
  uVar21 = DAT_182671eb8;
  uVar5 = DAT_182671c68;
  local_78 = (byte)uVar7;
  *(ulonglong *)(lVar3 + -0xda8) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0xbd9e7f73)) ^ uVar42) - uVar38 ^ uVar28;
  *(ulonglong *)(lVar3 + -0xc38) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c80 ^ 0x44523981)) ^ uVar40) >>
       (((byte)uVar5 ^ 0xb9) & 0x3f);
  uVar13 = DAT_182671ca4;
  uVar24 = CONCAT44(DAT_182671c6c,uVar5);
  *(ulonglong *)(lVar3 + -0x888) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0x7dff6e78)) ^ CONCAT44(uVar21,uVar21) ^ uVar40 ^ uVar30 ^
       *(ulonglong *)(lVar3 + -0xc90);
  uVar26 = CONCAT44(uVar13,uVar13);
  *puVar1 = (uVar24 ^ 0x94ef8adcad587c98) >> (((byte)uVar14 ^ *(byte *)(lVar3 + -0x228)) & 0x3f);
  uVar13 = DAT_182671f68;
  *(ulonglong *)(lVar3 + -0x110) =
       ((ulonglong)uVar21 << 0x14 | (ulonglong)(uVar21 >> 0xc)) ^
       *(ulonglong *)(lVar3 + -0x888) >> 0xc ^ uVar26;
  uVar30 = CONCAT44(uVar13,uVar13);
  *puVar19 = (CONCAT44(uVar21,uVar21) ^ *(ulonglong *)(lVar3 + -0x888)) <<
             ((local_78 ^ 0x3a) & 0x3f) ^ uVar30;
  uVar13 = DAT_182671cc4;
  uVar38 = CONCAT44(DAT_182671dac,DAT_182671dac);
  uVar30 = *(ulonglong *)(lVar3 - (uVar32 ^ 0xefea5d9c)) ^ uVar30 |
           uVar26 ^ *(ulonglong *)(lVar3 + -0x110);
  *(ulonglong *)(lVar3 + -0xd88) = uVar30 ^ uVar38;
  uVar43 = CONCAT44(uVar13,uVar13);
  uVar24 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x7df956bf)) = (*puVar18 ^ uVar40) - uVar30 ^ uVar43;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xfbdffa11)) =
       *(ulonglong *)(lVar3 + -0x960) ^ uVar43 | 0x5b3e19b484ab28d6;
  uVar30 = (ulonglong)DAT_182671da4;
  uVar29 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar21 = DAT_182671da4 >> 0x19;
  uVar24 = CONCAT44(DAT_182671da4,DAT_182671da4) ^ uVar38 ^ uVar28 ^ *(ulonglong *)(lVar3 + -0xda8)
           ^ *(ulonglong *)(lVar3 + -0xd88);
  uVar32 = (CONCAT44(DAT_182671da4,DAT_182671da4) ^ uVar24) << 0x27;
  *(ulonglong *)(lVar3 + -0xa08) = uVar24;
  uVar30 = ((ulonglong)uVar21 | uVar30 << 7) ^ uVar24 >> 0x19;
  *(ulonglong *)(lVar3 + -0xc38) = uVar30 ^ uVar29;
  uVar13 = DAT_182671f60;
  *(ulonglong *)(lVar3 + -0xc90) = (CONCAT44(uVar5,uVar6) ^ 0x18b81cf426b50d3e) + 0x1e36b23f6288a41;
  uVar5 = DAT_182671dfc;
  uVar21 = DAT_182671c64 ^ DAT_182671c4c;
  DAT_182671c5c = uVar21;
  *(ulonglong *)(lVar3 + -0x228) = uVar32 ^ CONCAT44(uVar13,uVar13);
  uVar30 = uVar30 | uVar32;
  uVar32 = CONCAT44(uVar10,uVar21);
  uVar24 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *puVar1 = uVar30 ^ CONCAT44(uVar5,uVar5);
  uVar5 = DAT_182671eec;
  *(ulonglong *)(lVar3 + -0x888) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0xda8)) - (uVar32 ^ 0xa6438812d6ddcb3c) ^ uVar24;
  uVar13 = DAT_182671f54;
  lVar3 = DAT_182671c40;
  uVar29 = CONCAT44(uVar5,uVar5);
  uVar24 = (*(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0x103c0153)) ^ uVar24) - uVar30 ^ uVar29;
  *(ulonglong *)(DAT_182671c40 + -0x110) = uVar24;
  *(ulonglong *)(lVar3 + -0x510) = uVar30 - (uVar32 ^ 0xc3203f5bcf4c32df) ^ CONCAT44(uVar13,uVar13);
  *puVar18 = (CONCAT44(uVar21,uVar10) ^ 0x7fbacda571f7bb05) - (*puVar23 ^ uVar38);
  lVar4 = DAT_182671c40;
  uVar26 = CONCAT44(DAT_182671d48,DAT_182671d48);
  uVar30 = *(ulonglong *)(lVar3 - (uVar36 ^ 0xfff9f2bf)) ^ uVar26 ^ uVar43 ^ uVar25 ^
           *(ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = uVar30;
  uVar34 = (uVar30 ^ uVar26) >> (((byte)uVar21 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc90) = uVar34 ^ uVar35;
  lVar3 = DAT_182671c40;
  uVar30 = (uVar26 ^ uVar30) << (((byte)uVar6 ^ 0xc4) & 0x3f);
  puVar19 = (ulonglong *)(DAT_182671c40 + -0xc90);
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar30 ^ CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar13 = DAT_182671d9c;
  uVar34 = uVar34 | uVar30;
  *(ulonglong *)(lVar3 + -0xc38) = (*puVar19 ^ uVar35) >> (((byte)uVar6 ^ 0xf1) & 0x3f);
  *(ulonglong *)(lVar3 + -0x228) = uVar34 ^ uVar37;
  uVar30 = (*(ulonglong *)(lVar3 + -0x960) ^ uVar43) -
           (CONCAT44(uVar21,uVar10) ^ 0xf7c482b47df1cdaa);
  *(ulonglong *)(lVar3 + -0xda8) = uVar30 ^ uVar31;
  uVar14 = DAT_182671efc;
  uVar5 = DAT_182671cd4;
  *(ulonglong *)(lVar3 + -0x888) = uVar30 - uVar34 ^ CONCAT44(uVar13,uVar13);
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar30 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0xfff9f9f7)) ^ uVar37) + (uVar32 ^ 0x7c56a0b19f819f4b)
           ^ uVar34;
  *puVar1 = uVar30;
  *puVar18 = CONCAT44(uVar5,uVar5) ^ uVar30 ^ uVar34 ^ uVar29 ^ uVar24;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar20) * 4) = uVar16;
  return;
}



############ FUN_ 180f53f20 size=3153 ############

void FUN_180f53f20(void)

{
  longlong *plVar1;
  longlong *plVar2;
  longlong *plVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  byte bVar6;
  longlong lVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  undefined1 *puVar17;
  uint uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  longlong *plVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  longlong *plVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte *pbVar35;
  
  uVar15 = DAT_182671c94;
  uVar12 = DAT_182671c7c;
  uVar11 = DAT_182671c78;
  uVar10 = DAT_182671c60;
  uVar18 = DAT_182671c58;
  lVar7 = DAT_182671c40;
  uVar23 = (ulonglong)DAT_182671c78;
  uVar33 = (ulonglong)DAT_182671c7c;
  uVar27 = (ulonglong)DAT_182671c94;
  uVar29 = DAT_182671c60 | DAT_182671c94;
  uVar21 = *(uint *)(&DAT_182613218 + DAT_182672190) ^ DAT_182671c7c;
  uVar25 = (DAT_182671c58 << 0x10 | DAT_182671c58 & 0xff00) << 8 | DAT_182671c58 >> 8 & 0xff00 |
           DAT_182671c58 >> 0x18;
  uVar13 = DAT_182671c78 - DAT_182671c7c;
  uVar14 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar13 ^ 0x9e6f024c) + (longlong)DAT_182672190) ^
           DAT_182671c78;
  uVar34 = (ulonglong)uVar29;
  uVar16 = (ulonglong)DAT_182671c58;
  plVar2 = (longlong *)(DAT_182671c40 + -0x428);
  bVar6 = *(byte *)*plVar2;
  DAT_182671c50 = uVar13;
  DAT_182671c64 = uVar29;
  DAT_182671c8c = uVar25;
  *(byte *)(DAT_182671c40 + -0x2e9) = bVar6;
  *(ulonglong *)(lVar7 + -0xa08) = (ulonglong)bVar6;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar29 ^ 0xd4b8587c)) = (ulonglong)bVar6 << 0x38;
  uVar19 = (ulonglong)uVar25;
  uVar22 = (ulonglong)uVar10;
  uVar30 = *(longlong *)(lVar7 - (uVar27 ^ 0x40b80588)) + *(longlong *)(lVar7 + -0xf0);
  *(ulonglong *)(lVar7 + -0xb20) = uVar30;
  puVar5 = (ulonglong *)
           (*(longlong *)(lVar7 - (uVar22 ^ 0xd4b85c94)) +
           (CONCAT44(uVar18,uVar25) ^ 0x60bb8b40408bbb60) * 8);
  *(ulonglong **)(lVar7 + -0x678) = puVar5;
  *(ulonglong *)(lVar7 + -0x828) = uVar30 ^ 0xe7b7339659b3c22c;
  uVar24 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *puVar5 = uVar24 ^ uVar30;
  lVar7 = DAT_182671c40;
  plVar1 = (longlong *)(DAT_182671c40 + 0x30);
  plVar26 = (longlong *)(DAT_182671c40 - ((ulonglong)uVar18 ^ 0x60bb8f68));
  *plVar26 = *plVar1 + 8;
  *(ulonglong *)(lVar7 + -0x228) =
       CONCAT44(uVar12,uVar15) ^ *(ulonglong *)(lVar7 + -0xb20) ^ 0x964afb4d463be57d;
  *(undefined1 *)(lVar7 + -0x2e9) = *(undefined1 *)*plVar2;
  puVar5 = (ulonglong *)(lVar7 + -0xc90);
  *puVar5 = (CONCAT44(uVar13,uVar11) ^ 0x85bebaa0d5afad1d) - *(longlong *)(lVar7 + -0xd88);
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xd4b85004)) = (ulonglong)*(byte *)(lVar7 + -0x2e9);
  lVar7 = DAT_182671c40;
  pbVar20 = (byte *)((CONCAT44(uVar11,uVar10) ^ 0xdc68f138d4b85885) + *plVar1);
  *plVar2 = (longlong)pbVar20;
  bVar6 = *pbVar20;
  *(byte *)(lVar7 + -0x2e9) = bVar6;
  *(ulonglong *)(lVar7 - (uVar34 ^ 0xd4b854b4)) = (ulonglong)bVar6;
  plVar3 = (longlong *)(lVar7 + -0x920);
  uVar30 = *(longlong *)(lVar7 + -0xc38) << 8;
  *(ulonglong *)(lVar7 + -0x110) = uVar30;
  *plVar3 = (CONCAT44(uVar13,uVar18) ^ 0x1372b1d807024794) +
            *(longlong *)(lVar7 - ((ulonglong)uVar12 ^ 0x3df9e6f4));
  *(ulonglong *)(DAT_182671c40 - (uVar34 ^ 0xd4b85f64)) =
       *(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0x60bb83c8)) | uVar30;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       *(ulonglong *)(DAT_182671c40 - (uVar19 ^ 0x408bba70)) |
       *(ulonglong *)(DAT_182671c40 + -0x888);
  *plVar2 = (CONCAT44(uVar12,uVar11) ^ 0x3df9eedcdc68f132) +
            *(longlong *)(((ulonglong)uVar15 ^ 0x40b80830) + lVar7);
  *(ulonglong *)(lVar7 + -0x2b0) =
       (CONCAT44(uVar10,uVar18) ^ 0x2a83de4a01e275cb) + 0xa8b2a9262556c9e7;
  pbVar35 = (byte *)(lVar7 - (uVar34 ^ 0xd4b85a65));
  *pbVar35 = **(byte **)(lVar7 - (uVar27 ^ 0x40b80c28));
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0x9e6f0ff4)) =
       (ulonglong)*(byte *)(lVar7 + -0x2e9);
  lVar7 = DAT_182671c40;
  *(longlong *)(DAT_182671c40 + -0xb08) =
       *(longlong *)(DAT_182671c40 + -0xda8) << (((byte)(uVar18 >> 0x18) ^ 0x70) & 0x3f);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0x9e6f0984)) =
       *(ulonglong *)(lVar7 - (uVar19 ^ 0x408bb068)) | *(ulonglong *)(DAT_182671c40 + -0x7e8);
  lVar8 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x30) =
       (CONCAT44(uVar10,uVar18) ^ 0x8a3701f55ac1ba05) -
       (CONCAT44(uVar12,uVar25) ^ 0x33b39581dc8b025e);
  lVar7 = *(longlong *)(lVar8 + -0x828);
  *plVar2 = *plVar1 + 0xb;
  plVar31 = (longlong *)(lVar8 - (uVar34 ^ 0xd4b85ca4));
  *(undefined1 *)(lVar8 + -0x2e9) = *(undefined1 *)*plVar31;
  *(ulonglong *)(lVar8 + -0x680) = (CONCAT44(uVar11,uVar15) ^ 0x2ba8eda1e408b3b3) - lVar7;
  pbVar20 = (byte *)(lVar8 - (uVar33 ^ 0x3df9ec35));
  *(ulonglong *)(lVar8 + -0x960) = (ulonglong)*pbVar20;
  lVar9 = DAT_182671c40;
  uVar16 = *(longlong *)(lVar8 - (uVar22 ^ 0xd4b851ec)) << (((byte)uVar12 ^ 0xc4) & 0x3f);
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0xbd8);
  *(ulonglong *)(DAT_182671c40 + -0x4b8) = uVar16;
  *(longlong *)(lVar9 + -0xa78) = lVar7;
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0xd4b85d9c)) = uVar30 | uVar16;
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x3df9eaf4)) =
       (CONCAT44(uVar13,uVar29) ^ 0x9e6f025cd4b85880) + *plVar1;
  lVar7 = DAT_182671c40;
  bVar6 = *(byte *)*plVar2;
  uVar30 = (ulonglong)bVar6;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = uVar30;
  *(byte *)(lVar7 + -0x2e9) = bVar6;
  lVar8 = DAT_182671c40;
  *(ulonglong *)(lVar7 + -0xa50) = CONCAT44(uVar18,uVar11) ^ 0xb548a4b3f7f66db | uVar30;
  *(ulonglong *)(lVar7 + -0x760) = uVar30 << 0x20;
  *(ulonglong *)(lVar8 - (uVar33 ^ 0x3df9e5c4)) =
       (uVar23 << 9 | (ulonglong)(uVar12 >> 0x17)) ^ 0xa44355fccc;
  uVar30 = *(ulonglong *)(lVar8 + -0x510) | *(ulonglong *)(lVar8 + -0x760);
  *(ulonglong *)(lVar8 + -0x408) = 0x74f4df043bc2345e >> ((byte)uVar30 & 0x3f);
  *(ulonglong *)(lVar8 + -0xa60) = uVar30;
  bVar28 = (byte)DAT_182671c50;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0x9e6f0674)) =
       (CONCAT44(uVar15,uVar10) ^ 0x40b80800d4b85881) + *plVar1;
  lVar7 = DAT_182671c40;
  puVar4 = (ulonglong *)(DAT_182671c40 + -0x408);
  *(undefined1 *)(DAT_182671c40 + -0x2e9) = *(undefined1 *)*plVar2;
  *(ulonglong *)(lVar7 + -0x5e8) = *puVar4 >> ((byte)*(undefined8 *)(lVar7 + -0x510) & 0x3f);
  lVar8 = DAT_182671c40;
  bVar6 = *(byte *)(lVar7 + -0x2e9);
  *(ulonglong *)(DAT_182671c40 + -0xa08) = (ulonglong)bVar6;
  uVar30 = (ulonglong)bVar6 << ((bVar28 ^ 0x74) & 0x3f);
  *(ulonglong *)(lVar8 + -0xf0) = uVar30;
  *(ulonglong *)(lVar8 + -0x228) = uVar30 | *(ulonglong *)(lVar8 + -0xa60);
  *plVar31 = *plVar1 + 0xe;
  *(undefined1 *)(lVar8 - (uVar19 ^ 0x408bb989)) = *(undefined1 *)*plVar2;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = (ulonglong)*pbVar20;
  uVar30 = *(longlong *)(lVar7 - (uVar19 ^ 0x408bb6e8)) << 0x30;
  *(ulonglong *)(lVar7 + -0xc38) = *(longlong *)(lVar7 + -0x228) + uVar30;
  *puVar5 = uVar30;
  *plVar3 = uVar30 + 0x5bd85a2a868ece91;
  *plVar26 = (CONCAT44(uVar13,uVar15) ^ 0x9e6f025c40b8080f) + *plVar1;
  *(ulonglong *)(lVar7 + -0x888) =
       *(ulonglong *)(lVar7 + -0xa08) >> ((byte)*(undefined8 *)(lVar7 + -0x228) & 0x3f);
  bVar6 = **(byte **)(lVar7 - (uVar19 ^ 0x408bbf48));
  *(byte *)(lVar7 + -0x2e9) = bVar6;
  *(ulonglong *)(lVar7 + -0x110) = (ulonglong)bVar6;
  *(ulonglong *)(lVar7 + -0xc18) = (ulonglong)bVar6 << 0x38;
  *(longlong *)(lVar7 + -0x2b0) =
       *(longlong *)(lVar7 - (uVar27 ^ 0x40b80418)) + *(longlong *)(lVar7 + -0xc38);
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x40b80110)) =
       *(longlong *)(lVar7 + -0x418) + (CONCAT44(uVar29,uVar10) ^ 0xd4b8588cd4b8588d) * 8;
  *(ulonglong *)(lVar7 + -0xda8) = *(ulonglong *)(lVar7 + -0x2b0) << (((byte)uVar18 ^ 0x71) & 0x3f);
  **(ulonglong **)(lVar7 + -0x910) = *(ulonglong *)(lVar7 + -0x2b0) ^ uVar24;
  uVar13 = DAT_182671c70;
  uVar22 = (ulonglong)DAT_182671c70;
  uVar32 = DAT_182671c70 << 0x10 | DAT_182671c70 >> 0x10;
  uVar30 = CONCAT44(DAT_182671c70,DAT_182671c70);
  puVar17 = (undefined1 *)((CONCAT44(uVar32,DAT_182671c70) ^ 0xb82dd8eed8eeb83d) + *plVar1);
  DAT_182671c4c = uVar32;
  *plVar2 = (longlong)puVar17;
  *(undefined1 *)(lVar7 + -0x2e9) = *puVar17;
  *(ulonglong *)(lVar7 + -0x7e8) =
       (CONCAT44(uVar13,uVar32) ^ 0x7708d54e31668c29) <<
       ((byte)*(undefined8 *)(lVar7 + -0xc38) & 0x3f);
  *(ulonglong *)(lVar7 + -0xb08) = (ulonglong)*(byte *)(lVar7 + -0x2e9);
  *plVar2 = (uVar30 ^ 0xd8eeb82dd8eeb83c) + *plVar1;
  *(undefined1 *)(lVar7 - ((ulonglong)uVar32 ^ 0xb82dda07)) =
       **(undefined1 **)(lVar7 - ((ulonglong)uVar32 ^ 0xb82ddcc6));
  *(longlong *)(lVar7 - ((ulonglong)uVar32 ^ 0xb82dd8de)) =
       *(longlong *)(lVar7 + -0xd88) <<
       ((byte)*(undefined8 *)(lVar7 - ((ulonglong)uVar13 ^ 0xd8eeb435)) & 0x3f);
  *(ulonglong *)(lVar7 + -0x680) = (ulonglong)*pbVar35;
  uVar15 = DAT_182671c50;
  *(longlong *)(lVar7 + -0x828) =
       *(longlong *)(lVar7 - ((ulonglong)uVar32 ^ 0xb82dde6e)) << (((byte)uVar13 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar7 + -0xa78) =
       *(ulonglong *)(lVar7 + -0x960) >> ((byte)*(undefined8 *)(lVar7 + -0x228) & 0x3f);
  *(ulonglong *)(lVar7 + -0xbd8) =
       *(ulonglong *)(lVar7 - (uVar22 ^ 0xd8eeb005)) | *(ulonglong *)(lVar7 + -0xb08);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar13 ^ 0xd8eebc05)) =
       (CONCAT44(uVar32,uVar15) ^ 0xb82dd8ee9e6f024e) + *plVar1;
  *(uint *)(lVar7 + -0x58c) = (DAT_182671c94 ^ 0xf4bc6f28) + (uVar15 ^ 0x22d1042);
  bVar6 = *(byte *)*plVar2;
  *(byte *)(lVar7 + -0x2e9) = bVar6;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x40b80cb8)) = (ulonglong)bVar6;
  uVar30 = *(longlong *)(lVar7 + -0x4b8) << (((byte)uVar12 ^ 0xcc) & 0x3f);
  *(ulonglong *)(lVar7 + -0xa50) = uVar30;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar13 ^ 0xd8eebbf5)) = uVar30 | *(ulonglong *)(lVar7 + -0xbd8)
  ;
  puVar17 = (undefined1 *)((CONCAT44(uVar11,uVar32) ^ 0xdc68f138b82dd8fd) + *plVar1);
  *plVar2 = (longlong)puVar17;
  *(undefined1 *)(lVar7 + -0x2e9) = *puVar17;
  uVar15 = DAT_182671c8c ^ 0x12eded23;
  *(ulonglong *)(lVar7 + -0xb18) = (ulonglong)*(byte *)(lVar7 + -0x2e9);
  uVar30 = (ulonglong)*(byte *)(lVar7 + -0x2e9) << 0x18;
  *(ulonglong *)(lVar7 + -0x510) = uVar30;
  *(uint *)(lVar7 + -0xae4) = uVar32 ^ 0x9b95eeb4 | uVar15;
  *(ulonglong *)(lVar7 + -0x760) =
       CONCAT44(uVar25,uVar11) ^ 0x939cb41ab74d409f | CONCAT44(uVar25,uVar10) ^ 0x323b8fb3cf7ada79;
  *(ulonglong *)(lVar7 + -0x408) = *(ulonglong *)(lVar7 + -0x3d8) | uVar30;
  puVar17 = (undefined1 *)((CONCAT44(uVar18,uVar10) ^ 0x60bb8b40d4b85898) + *plVar1);
  *plVar2 = (longlong)puVar17;
  *(undefined1 *)(lVar7 - (uVar22 ^ 0xd8eebac4)) = *puVar17;
  *(ulonglong *)(lVar7 - (uVar34 ^ 0xd4b85d64)) = (ulonglong)*(byte *)(lVar7 + -0x2e9);
  uVar15 = DAT_182671c48;
  uVar30 = (ulonglong)DAT_182671c48;
  uVar22 = *(ulonglong *)(lVar7 + -0x5e8) << (((byte)(uVar13 >> 0x10) ^ 0xce) & 0x3f);
  *(ulonglong *)(lVar7 + -0xf0) = uVar22;
  uVar18 = ~uVar15;
  DAT_182671c74 = uVar18;
  *(ulonglong *)(lVar7 + -0xa60) =
       CONCAT44(uVar29,uVar12) ^ 0x7d7c648a0f9062fb | *(ulonglong *)(lVar7 + -0x5e8);
  uVar22 = *(ulonglong *)(lVar7 - (uVar30 ^ 0xdf6ef348)) | uVar22;
  *puVar5 = uVar22;
  *plVar2 = (CONCAT44(uVar18,uVar18) ^ 0x209108bf209108aa) + *plVar1;
  *plVar3 = (CONCAT44(uVar15,uVar18) ^ 0x187cb73d8e4f0448) - uVar22;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar21;
  return;
}



############ FUN_ 181000240 size=2849 ############

void FUN_181000240(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  ulonglong *puVar15;
  byte bVar16;
  byte *pbVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  
  uVar4 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar25 = ~DAT_182671c48;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_1826720a4);
  uVar19 = *(uint *)(&DAT_182613218 + DAT_1826720a4) ^ DAT_182671c48;
  uVar20 = (ulonglong)DAT_182671ca4;
  uVar18 = (ulonglong)DAT_182671e5c;
  uVar26 = (ulonglong)uVar25;
  uVar22 = (ulonglong)DAT_182671ca4;
  DAT_182671c68 = uVar25;
  *(undefined1 *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0x64f4d03f)) = 0x3b;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x9b0b26b1)) ^ (ulonglong)DAT_182671e74) = 4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x9b0b2871)) =
       *(ulonglong *)(lVar2 + -0x380) >> (((byte)uVar4 ^ 0x1c) & 0x3f);
  pbVar17 = (byte *)(*(ulonglong *)(lVar2 + -0x6a0) ^ (ulonglong)DAT_182671e98);
  *(byte **)(lVar2 + -0x520) = pbVar17 + 1;
  *pbVar17 = *(byte *)(lVar2 + -0x9dd) ^ (byte)DAT_182671e84;
  *(ulonglong *)(lVar2 + -0x498) = uVar18 ^ *(ulonglong *)(lVar2 + -0x520);
  uVar22 = uVar22 ^ *(ulonglong *)(lVar2 + -0x698);
  *(ulonglong *)(lVar2 + -0x278) = *(ulonglong *)(lVar2 + -0x520);
  *(ulonglong *)(lVar2 + -0x630) = uVar22;
  *(byte *)(lVar2 + -0xc9d) = (byte)uVar25 ^ 0x68;
  *(ulonglong *)(lVar2 + -0x3c8) = *(ulonglong *)(lVar2 + -0x698);
  bVar28 = (byte)DAT_182671f30;
  *(undefined1 *)(lVar2 + -0x9dd) = 0x75;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x9b0b2981)) =
       (uVar22 ^ uVar20) + (CONCAT44(uVar4,uVar4) ^ 0x64f4db1e64f4db1f);
  *(byte *)(lVar2 + -0xb79) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x630) ^ uVar20) ^ bVar28 ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 - (uVar26 ^ 0x9b0b2320)) = (byte)uVar25 ^ 0xa3;
  uVar14 = DAT_182671c94;
  uVar11 = DAT_182671c84;
  uVar6 = DAT_182671c80;
  uVar22 = (ulonglong)DAT_182671c84;
  uVar23 = (ulonglong)DAT_182671c94;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -2000) ^ (ulonglong)DAT_182671de0) = 0x4b;
  uVar5 = DAT_182671c50;
  *(ulonglong *)(lVar2 + -0x8c0) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x3048829d)) ^ uVar18) +
       (CONCAT44(DAT_182671c90,uVar4) ^ 0xdc8c848964f4db1f);
  uVar24 = (ulonglong)DAT_182671e20;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x9b0b2079)) ^ uVar18) =
       bVar28 ^ *(byte *)(lVar2 + -0xb79);
  *(undefined8 *)(lVar2 + -0x528) = *(undefined8 *)(lVar2 + -0x8c0);
  *(undefined1 *)(lVar2 + -0xb79) = 0x84;
  *(undefined8 *)(lVar2 + -0xb50) = *(undefined8 *)(lVar2 - ((ulonglong)uVar6 ^ 0xee9b0b57));
  *(byte *)(lVar2 + -0xac1) = (byte)DAT_182671c74 ^ 0x82;
  uVar12 = DAT_182671f24;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x5bc593b0)) =
       *(ulonglong *)(lVar2 - (uVar23 ^ 0xd3913438)) ^ uVar24;
  uVar10 = DAT_182671c88;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x64f4d27e)) =
       *(ulonglong *)(CONCAT44(DAT_182671da0,DAT_182671da0) ^ *(ulonglong *)(lVar2 + -0x610)) ^
       CONCAT44(uVar12,uVar12);
  uVar22 = (ulonglong)DAT_182671cf8;
  uVar18 = (ulonglong)DAT_182671cf8 ^ *(ulonglong *)(lVar2 + -0xb50);
  *(ulonglong *)(lVar2 + -0xcc8) = uVar18;
  uVar8 = DAT_182671c70;
  pbVar17 = (byte *)(uVar18 ^ uVar22);
  uVar22 = (ulonglong)DAT_182671c70;
  uVar18 = (ulonglong)DAT_182671c98;
  *(byte **)(lVar2 + -0x8a8) = pbVar17 + (CONCAT44(uVar11,uVar10) ^ 0x3048860582dfdb81);
  *(byte *)(lVar2 + -0xe1) = *pbVar17 ^ (byte)DAT_182671cac ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 - (uVar26 ^ 0x9b0b23cd)) = (byte)uVar14 ^ 0x54;
  uVar12 = DAT_182671c8c;
  uVar5 = DAT_182671c4c;
  *(undefined1 *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c4c ^ 0xf32a2cb2)) ^ uVar20) = 0xba;
  uVar7 = DAT_182671c5c;
  pbVar17 = (byte *)(*(ulonglong *)(lVar2 + -0x5b0) ^ uVar24);
  *(byte **)(lVar2 + -0x1e0) = pbVar17 + (CONCAT44(uVar12,uVar25) ^ 0xd00804009b0b24e0);
  *pbVar17 = *(byte *)(lVar2 - (uVar22 ^ 0xf9fdbde)) ^ (byte)DAT_182671cac;
  *(undefined1 *)(lVar2 - ((ulonglong)uVar7 ^ 0xe96260c6)) = 0xe4;
  uVar20 = (ulonglong)DAT_182671fa8;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar6 ^ 0xee9b0057)) =
       *(undefined8 *)(lVar2 - ((ulonglong)uVar5 ^ 0xf32a2582));
  *(ulonglong *)(lVar2 + -0x8e0) = *(ulonglong *)(lVar2 + -0x8a8);
  *(ulonglong *)(lVar2 + -0x718) = *(ulonglong *)(lVar2 + -0x660) ^ uVar20;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0xdefb2b50)) =
       uVar18 ^ *(ulonglong *)(lVar2 + -0x8a8);
  uVar9 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  pbVar17 = (byte *)(*(ulonglong *)(lVar2 + -0x1a8) ^ uVar18);
  *(byte **)(lVar2 + -600) = pbVar17 + (CONCAT44(uVar11,uVar7) ^ 0x30488605e9626026);
  uVar6 = DAT_182671c54;
  uVar22 = *(ulonglong *)(lVar3 + -0x898);
  *(ulonglong *)(lVar2 + -0x828) =
       (CONCAT44(DAT_182671c78,uVar10) ^ 0xe4ebf580364099f0) >>
       ((byte)*(undefined8 *)(lVar2 + -0xf0) & 0x3f);
  uVar29 = (ulonglong)DAT_182671e0c;
  bVar28 = (byte)DAT_182671e0c;
  *(byte *)(lVar3 + -0x889) = bVar28 ^ (byte)DAT_182671d18 ^ *pbVar17;
  uVar18 = (ulonglong)DAT_182671f78;
  *(undefined1 *)(lVar3 + -0xa81) = 0x73;
  *(byte *)(uVar22 ^ uVar18) = (byte)uVar9 ^ 0x3c;
  uVar10 = DAT_182671c7c;
  pbVar17 = (byte *)(*(ulonglong *)(lVar3 + -0x718) ^ uVar20);
  uVar20 = (ulonglong)DAT_182671ca0;
  *(byte **)(lVar3 + -0xb90) = pbVar17 + (CONCAT44(uVar6,uVar12) ^ 0x40001308d0080401);
  uVar27 = CONCAT44(uVar25,uVar10);
  *pbVar17 = *(byte *)(lVar3 + -0x889) ^ bVar28;
  *(byte *)(lVar3 + -0x889) = (byte)uVar7 ^ 0x7f;
  uVar5 = DAT_182671c6c;
  uVar24 = (ulonglong)DAT_182671c6c;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar6 ^ 0x40001598)) = *(undefined8 *)(lVar3 + -0xb90);
  *(ulonglong *)(lVar3 + -0xc50) = *(ulonglong *)(lVar3 + -600);
  uVar22 = CONCAT44(uVar8,DAT_182671c88);
  *(ulonglong *)(lVar3 + -0xb18) =
       CONCAT44(uVar5,uVar7) ^ 0xff957ed175579c8e | uVar27 ^ 0x7e9f388948e8e20f;
  *(ulonglong *)(lVar3 + -0x228) = (uVar22 ^ 0xcfbbc957aa6b3fc0) - *(longlong *)(lVar3 + -0x960);
  *(ulonglong *)(lVar3 + -0x398) = *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x7fbfddaf)) ^ uVar20;
  uVar5 = DAT_182671c48;
  lVar2 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671f04;
  uVar18 = (ulonglong)DAT_182671f04 ^ *(ulonglong *)(lVar3 + -600);
  *(ulonglong *)(lVar3 + -0xcb8) = uVar18;
  pbVar17 = (byte *)(uVar18 ^ uVar22);
  *(byte **)(lVar3 + -0x1b0) = pbVar17 + (CONCAT44(uVar10,uVar5) ^ 0x391311064f4db1f);
  uVar5 = DAT_182671c80;
  uVar22 = (ulonglong)DAT_182671c80;
  *(byte *)(lVar3 + -0xc71) = *pbVar17 ^ (byte)DAT_182671cbc ^ (byte)DAT_182671d18;
  uVar10 = DAT_182671c74;
  *(byte *)(lVar2 - ((ulonglong)uVar9 ^ 0x70489f77)) = (byte)DAT_182671c74 ^ 0x2a;
  uVar8 = DAT_182671c80;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar26 ^ 0x9b0b22f9)) ^ (ulonglong)DAT_182671d20) =
       (byte)uVar6 ^ 0x62;
  pbVar17 = (byte *)(*(ulonglong *)(lVar2 + -0x398) ^ uVar20);
  *(byte **)(lVar2 + -0xbf0) = pbVar17 + (CONCAT44(uVar8,DAT_182671c4c) ^ 0xee9b0637f32a2463);
  uVar8 = DAT_182671c60;
  uVar20 = (ulonglong)DAT_182671c60;
  *pbVar17 = *(byte *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0xfdff3ce)) ^ (byte)DAT_182671cbc;
  *(byte *)(lVar2 - (uVar22 ^ 0xee9b0a46)) = (byte)uVar8 ^ 0x99;
  *(ulonglong *)(lVar2 + -0x30) =
       *(longlong *)(lVar2 - ((ulonglong)DAT_182671c78 ^ 0xfcdff32f)) -
       (CONCAT44(uVar12,DAT_182671c58) ^ 0xa79c817d0862360);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar7 ^ 0xe9626247)) = *(undefined8 *)(lVar2 + -0xbf0);
  uVar22 = *(ulonglong *)(lVar2 - (uVar23 ^ 0xd39130a0));
  puVar15 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c48 ^ 0x64f4d97e));
  *(ulonglong *)(lVar2 + -0xa48) = uVar22;
  uVar23 = (ulonglong)DAT_182671dbc;
  *(ulonglong *)(DAT_182671c40 + -0xd10) = *puVar15 ^ uVar23;
  *(ulonglong *)(DAT_182671c40 + -0x510) =
       (CONCAT44(uVar7,DAT_182671c88) ^ 0xd5c6efa4d80ef824) - *(longlong *)(DAT_182671c40 + -0x7e8);
  uVar13 = DAT_182671c90;
  lVar2 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671db0;
  uVar22 = DAT_182671db0 ^ uVar22;
  *(ulonglong *)(DAT_182671c40 + -0x958) = uVar22;
  bVar16 = (byte)DAT_182671ea0;
  pbVar17 = (byte *)(uVar22 ^ uVar18);
  *(byte **)(lVar2 + -0x88) = pbVar17 + (CONCAT44(uVar12,uVar5) ^ 0xd0080400ee9b0636);
  bVar28 = (byte)DAT_182671d18;
  lVar3 = DAT_182671c40;
  *(byte *)(lVar2 + -0x8f9) = bVar16 ^ (byte)DAT_182671d18 ^ *pbVar17;
  uVar22 = *(ulonglong *)(lVar3 + -0x990);
  *(byte *)(lVar2 + -0x6d9) = (byte)DAT_182671c8c ^ 0xdc;
  uVar5 = DAT_182671c84;
  uVar26 = (ulonglong)DAT_182671c84;
  *(byte *)(uVar22 ^ uVar29) = (byte)uVar13 ^ 0x9a;
  lVar2 = DAT_182671c40;
  puVar15 = (ulonglong *)(DAT_182671c40 + -0xd10);
  *(ulonglong *)(DAT_182671c40 + -0x680) =
       CONCAT44(uVar10,uVar6) ^ 0x974fbe746bde5563 | *(ulonglong *)(DAT_182671c40 + -0x510);
  uVar6 = DAT_182671c78;
  uVar22 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x7fbfdaef)) =
       (CONCAT44(uVar10,uVar5) ^ 0x74426e0030488604) + (*puVar15 ^ uVar23);
  *(undefined1 *)(lVar2 + -0x27e) = 0xf7;
  uVar24 = (ulonglong)DAT_182671f98;
  uVar18 = (ulonglong)DAT_182671d00;
  *(byte *)(*(ulonglong *)(lVar2 + -0xd10) ^ uVar23) =
       *(byte *)(lVar2 - (uVar22 ^ 0xfcdff746)) ^ (byte)DAT_182671ea0;
  *(ulonglong *)(lVar2 + -0x350) = uVar24 ^ *(ulonglong *)(lVar2 + -0x1d0);
  *(ulonglong *)(lVar2 + -0xad0) = *(ulonglong *)(lVar2 + -0x1d0);
  *(ulonglong *)(lVar2 + -0x430) = *(ulonglong *)(lVar2 + -0x88);
  *(byte *)(lVar2 + -0x8f9) = (byte)uVar13 ^ 0xb2;
  bVar21 = (byte)DAT_182671c48;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfcdffadf)) = uVar18 ^ *(ulonglong *)(lVar2 + -0x88);
  bVar16 = (byte)DAT_182671fb0;
  pbVar17 = (byte *)(*(ulonglong *)(lVar2 + -0x560) ^ uVar18);
  *(byte **)(lVar2 + -0x1c0) = pbVar17 + (CONCAT44(uVar14,uVar9) ^ 0xd39131107048970c);
  uVar22 = (ulonglong)DAT_182671c4c;
  *(byte *)(lVar2 + -0x2b9) = bVar16 ^ bVar28 ^ *pbVar17;
  *(byte *)(lVar2 - (uVar22 ^ 0xf32a2053)) = bVar21 ^ 0x4f;
  *(byte *)(*(ulonglong *)(lVar2 + -0x328) ^ (ulonglong)DAT_182671dc4) = (byte)DAT_182671c50 ^ 0x51;
  uVar5 = DAT_182671c50;
  pbVar17 = (byte *)(*(ulonglong *)(lVar2 + -0x350) ^ uVar24);
  *(byte **)(lVar2 + -0x5f8) = pbVar17 + (uVar27 ^ 0x9b0b24e103913111);
  *pbVar17 = bVar16 ^ *(byte *)(lVar2 + -0x2b9);
  *(byte *)(lVar2 + -0x2b9) = (byte)DAT_182671c70 ^ 0xd1;
  *(ulonglong *)(lVar2 + -0xda8) = 0xfaa8be728c3e850a >> (((byte)uVar5 ^ 8) & 0x3f);
  *(undefined8 *)(lVar2 - ((ulonglong)DAT_182671c80 ^ 0xee9b0497)) =
       *(undefined8 *)(lVar2 - (uVar20 ^ 0xfdffa47));
  uVar7 = DAT_182671d98;
  uVar18 = (ulonglong)DAT_182671d98;
  uVar22 = (ulonglong)DAT_182671d74;
  *(ulonglong *)(lVar2 + -0x90) = *(ulonglong *)(lVar2 + -0x1c0);
  *(ulonglong *)(lVar2 + -0x988) = *(ulonglong *)(lVar2 + -0x2a0) ^ uVar22;
  uVar5 = DAT_182671c58;
  uVar22 = uVar18 ^ *(ulonglong *)(lVar2 + -0x1c0);
  *(ulonglong *)(lVar2 + -0xb00) = uVar22;
  *(ulonglong *)(lVar2 + -0xa50) =
       CONCAT44(uVar4,uVar6) ^ 0xefd0461ee31e62bd | *(ulonglong *)(lVar2 + -0xb08);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x30488f35)) =
       (CONCAT44(uVar10,uVar5) ^ 0x74426e00defb2af9) + (uVar7 ^ uVar22);
  bVar16 = *(byte *)(uVar18 ^ *(ulonglong *)(lVar2 + -0xb00)) ^ (byte)DAT_182671e8c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar25) * 4) = uVar19;
  *(byte *)(lVar2 + -0x6e9) = bVar16 ^ bVar28;
  *(byte *)(lVar2 + -0xa51) = (byte)uVar8 ^ 0x71;
  return;
}



############ FUN_ 180f54b80 size=5905 ############

void FUN_180f54b80(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  uint *puVar6;
  int iVar7;
  uint uVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  byte bVar25;
  byte bVar26;
  byte bVar27;
  uint uVar28;
  uint uVar29;
  ulonglong *puVar30;
  ulonglong *puVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte bVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  ulonglong *puVar56;
  uint uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  
  uVar18 = DAT_182671f48;
  uVar17 = DAT_182671c94;
  uVar16 = DAT_182671c90;
  uVar24 = DAT_182671c8c;
  uVar11 = DAT_182671c60;
  uVar28 = DAT_182671c54;
  lVar9 = DAT_182671c40;
  uVar41 = (ulonglong)DAT_182671c8c;
  uVar21 = DAT_182671c7c & 7;
  uVar48 = (ulonglong)DAT_182671c54;
  if (uVar21 < 4) {
    if (uVar21 < 2) {
      uVar8 = DAT_182671c8c;
      if (uVar21 == 0) {
        uVar8 = DAT_182671c7c;
      }
      uVar59 = (ulonglong)uVar8;
    }
    else {
      uVar8 = DAT_182671c68;
      if (uVar21 < 3) {
        uVar8 = DAT_182671c58;
      }
      uVar59 = (ulonglong)uVar8;
    }
  }
  else if (uVar21 < 6) {
    uVar8 = DAT_182671c78;
    if (uVar21 < 5) {
      uVar8 = DAT_182671c54;
    }
    uVar59 = (ulonglong)uVar8;
  }
  else {
    uVar59 = (ulonglong)DAT_182671c6c;
    if (uVar21 < 7) {
      uVar59 = (ulonglong)DAT_182671c90;
    }
  }
  uVar40 = (ulonglong)DAT_182671c94;
  uVar53 = (ulonglong)DAT_182671c60;
  uVar57 = DAT_182671c60 ^ DAT_182671c94;
  DAT_182671c80 = (uint)uVar59;
  uVar21 = *(uint *)(&DAT_182613218 + DAT_182672194);
  uVar22 = *(uint *)(&DAT_182613210 + (uVar40 ^ 0xb3ffdcb2) + (longlong)DAT_182672194) ^
           DAT_182671c60;
  uVar50 = CONCAT44(DAT_182671dec,DAT_182671dec);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x628);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0x920);
  uVar35 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar38 = (ulonglong)DAT_182671c7c;
  DAT_182671c48 = uVar57;
  *puVar2 = (CONCAT44(DAT_182671e3c,DAT_182671e3c) ^ *puVar1) +
            (*(ulonglong *)(DAT_182671c40 + -0x380) ^ uVar50) ^ uVar35;
  uVar13 = DAT_182671c6c;
  uVar12 = DAT_182671c58;
  uVar37 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar9 - ((ulonglong)uVar16 ^ 0x5c0a326a)) =
       (CONCAT44(uVar24,DAT_182671c58) ^ 0xeb7a169af2fd4f73) >>
       ((*(byte *)(lVar9 - (uVar38 ^ 0xe5991d27)) ^ (byte)uVar18) & 0x3f);
  uVar8 = DAT_182671c68;
  uVar42 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  puVar30 = (ulonglong *)(lVar9 - ((ulonglong)DAT_182671c78 ^ 0xb7d30ad6));
  *puVar30 = (*(ulonglong *)(lVar9 + -0x380) ^ uVar50) << (((byte)uVar28 ^ 0xcf) & 0x3f) ^ uVar42;
  uVar38 = (*(ulonglong *)(lVar9 + -0x380) ^ uVar50) >> (((byte)uVar8 ^ 0xb9) & 0x3f);
  uVar51 = CONCAT44(DAT_182671e7c,DAT_182671e7c);
  *(ulonglong *)(lVar9 + -0x760) = uVar38 ^ CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar8 = DAT_182671c50;
  lVar10 = DAT_182671c40;
  puVar3 = (ulonglong *)(lVar9 + -0x228);
  uVar42 = (uVar38 | uVar42 ^ *puVar3) ^ uVar51;
  uVar38 = CONCAT44(DAT_182671c50,uVar11);
  *(ulonglong *)(lVar9 + -0xa60) = uVar42;
  *(ulonglong *)(lVar10 + -0xd88) = uVar38 ^ 0xa0044c50b80285a | 0xe5ff2132f037c181;
  uVar18 = DAT_182671ca4;
  uVar45 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  uVar38 = uVar45 ^ uVar51 ^ uVar35 ^ uVar42 ^ *puVar2;
  *(ulonglong *)(lVar10 + -0xb08) = uVar38;
  uVar20 = DAT_182671d58;
  uVar19 = DAT_182671ce4;
  uVar52 = CONCAT44(uVar18,uVar18);
  uVar42 = (CONCAT44(uVar24,uVar17) ^ 0x74822d3e97f8d77c) + (uVar45 ^ uVar38);
  *(ulonglong *)(lVar10 + -0xb20) = uVar42 ^ uVar52;
  uVar18 = DAT_182671f1c;
  uVar55 = CONCAT44(uVar20,uVar20);
  uVar38 = (CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar10 + -0xa70)) +
           (CONCAT44(uVar16,DAT_182671c68) ^ 0x205a913b5d345f31);
  *(ulonglong *)(lVar10 + -0x888) = uVar38 ^ uVar55;
  uVar34 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c78 ^ 0xb7d309ee)) = uVar38 + uVar42 ^ uVar34
  ;
  uVar23 = DAT_182671c50;
  uVar38 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *puVar1 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c50 ^ 0x6f279424)) ^ uVar52) <<
            0xe ^ uVar38;
  uVar18 = DAT_182671da8;
  uVar14 = DAT_182671c7c;
  lVar9 = DAT_182671c40;
  puVar4 = (ulonglong *)(DAT_182671c40 + -0xb20);
  *(ulonglong *)(DAT_182671c40 + -0x7e8) =
       *(ulonglong *)(DAT_182671c40 - (uVar59 ^ 0x23258708)) ^ uVar45 |
       CONCAT44(DAT_182671c7c,uVar23) ^ 0x248abb9359405abb;
  uVar42 = (ulonglong)uVar57;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c6c ^ 0x23258bc0)) =
       (uVar52 ^ *puVar4) >> (((byte)uVar57 ^ 0x1f) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  uVar19 = DAT_182671f10;
  puVar4 = (ulonglong *)(lVar9 + -0x7c0);
  *(ulonglong *)(lVar9 + -0x380) =
       CONCAT44(uVar28,uVar24) ^ 0xa04513027e840b25 | CONCAT44(uVar11,uVar12) ^ 0x97ad9b38b73a8c94;
  uVar46 = CONCAT44(uVar19,uVar19);
  puVar5 = (ulonglong *)(lVar9 + -0x110);
  *(ulonglong *)(lVar9 - (uVar37 ^ 0x25270a28)) =
       (CONCAT44(uVar18,uVar18) ^ *puVar4 | uVar38 ^ *puVar1) ^ uVar46;
  uVar15 = DAT_182671c78;
  uVar33 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar47 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar9 + -0x760) = uVar33 ^ uVar46 ^ uVar34 ^ *puVar3 ^ *puVar5;
  uVar19 = DAT_182671f50;
  *(ulonglong *)(lVar9 + -0xd88) =
       (CONCAT44(uVar16,uVar15) ^ 0xe34cc59d5e0022f2) << (((byte)uVar18 ^ *(byte *)puVar4) & 0x3f);
  lVar9 = DAT_182671c40;
  uVar60 = CONCAT44(uVar19,uVar19);
  uVar43 = CONCAT44(DAT_182671eb8,DAT_182671eb8);
  uVar38 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(DAT_182671c40 + -0xa60) =
       (*(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0xb3ffde12)) ^ uVar60) +
       (CONCAT44(uVar14,DAT_182671c68) ^ 0x9c0ac14623dbce9b) ^ uVar43;
  uVar45 = CONCAT44(uVar24,DAT_182671c80);
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c50 ^ 0x6f279574)) =
       (uVar35 ^ *puVar2) + (uVar45 ^ 0xec39e438360fcf0) ^ uVar38;
  lVar9 = DAT_182671c40;
  uVar52 = CONCAT44(DAT_182671f24,DAT_182671f24);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c90 ^ 0x5c0a3d22)) =
       (uVar43 ^ *(ulonglong *)(DAT_182671c40 + -0xa60)) +
       (uVar38 ^ *(ulonglong *)(DAT_182671c40 + -0xa70)) ^ uVar52;
  *(uint *)(lVar9 + -0x54) = *(int *)(lVar9 - (uVar48 ^ 0xf5db3633)) * (uVar57 ^ 0xb07ec839);
  uVar24 = DAT_182671f9c;
  uVar39 = CONCAT44(DAT_182671e28,DAT_182671e28);
  bVar49 = (byte)uVar17;
  *(ulonglong *)(lVar9 - (uVar47 ^ 0xb7d303f6)) =
       (uVar43 ^ *(ulonglong *)(lVar9 + -0xa60)) << 0x10 ^ uVar39;
  uVar47 = CONCAT44(uVar24,uVar24);
  uVar35 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar38 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar9 + -0x7e8) =
       (uVar43 ^ *(ulonglong *)(lVar9 + -0xa60)) >> ((bVar49 ^ 0x92) & 0x3f) ^ uVar35;
  puVar44 = (ulonglong *)(lVar9 - (uVar38 ^ 0x23258be8));
  uVar38 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  uVar23 = DAT_182671c54 ^ 0x9fe3e81f;
  uVar36 = DAT_182671c58 ^ 0xc1d05268;
  uVar35 = (uVar35 ^ *puVar44 | uVar39 ^ *(ulonglong *)(lVar9 + -0xb08)) ^ uVar38;
  *(ulonglong *)(lVar9 + -0xb20) = uVar35;
  *(uint *)(lVar9 + -0x444) = uVar23 + uVar36;
  uVar18 = DAT_182671d84;
  uVar35 = uVar52 ^ *(ulonglong *)(lVar9 + -0x888) ^ uVar47 ^ uVar38 ^ uVar35;
  *(ulonglong *)(lVar9 + -0x380) = uVar35;
  uVar39 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c90 ^ 0x5c0a3382)) =
       (*(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c7c ^ 0xe5991bdf)) ^ uVar34) +
       (uVar35 ^ uVar47) ^ uVar39;
  uVar34 = CONCAT44(DAT_182671d10,DAT_182671d10);
  puVar54 = (ulonglong *)(lVar9 - (uVar42 ^ 0x7e660c05));
  *puVar54 = (*(ulonglong *)(lVar9 + -0x380) ^ uVar47) << (((byte)uVar57 ^ 0x19) & 0x3f) ^ uVar34;
  uVar18 = DAT_182671df4;
  uVar47 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar35 = ((ulonglong)uVar24 << 0x14 | (ulonglong)(uVar24 >> 0xc)) ^
           *(ulonglong *)(lVar9 + -0x380) >> 0xc;
  *(ulonglong *)(lVar9 + -0xd88) = uVar35 ^ uVar47;
  uVar43 = CONCAT44(uVar18,uVar18);
  uVar38 = CONCAT44(uVar14,uVar11);
  uVar40 = (*(ulonglong *)(lVar9 - (uVar40 ^ 0xb3ffde8a)) ^ uVar34 | uVar35) ^ uVar43;
  *puVar4 = uVar40;
  *(ulonglong *)(lVar9 + -0x2b0) = uVar39 ^ *puVar1 | uVar38 ^ 0x2be26fb4fb73ffbb;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c78 ^ 0xb7d301de)) =
       uVar50 ^ uVar40 ^ uVar43 ^ uVar39 ^ *puVar1;
  uVar18 = DAT_182671e84;
  uVar14 = DAT_182671c74;
  lVar10 = DAT_182671c40;
  uVar29 = DAT_182671c74 << 0x10 | DAT_182671c74 >> 0x10;
  uVar34 = (ulonglong)uVar29;
  DAT_182671c64 = uVar29;
  *(ulonglong *)(lVar9 + -0xa70) =
       (*(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c74 ^ 0xaa350d3c)) ^ uVar33) +
       (uVar52 ^ *(ulonglong *)(lVar9 + -0x888)) ^ uVar55;
  uVar58 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar10 + -0xa60) = (uVar33 ^ *(ulonglong *)(lVar10 + -0x760)) << 0x39 ^ uVar58;
  *(uint *)(lVar10 - (uVar34 ^ 0xa5cac29)) = (uVar29 ^ 0xbf0dff8a) - *(int *)(lVar10 + -0x6c0);
  uVar18 = DAT_182671d40;
  uVar40 = (*(ulonglong *)(lVar10 - ((ulonglong)uVar29 ^ 0xa5cad55)) ^ uVar33) >>
           (((byte)uVar14 ^ 0x5b) & 0x3f);
  *(ulonglong *)(lVar10 + -0xb08) = uVar40 ^ CONCAT44(DAT_182671f08,DAT_182671f08);
  uVar24 = DAT_182671f40;
  lVar9 = DAT_182671c40;
  uVar35 = CONCAT44(uVar18,uVar18);
  uVar33 = (ulonglong)DAT_182671f40;
  *(ulonglong *)(lVar10 + -0x7e8) = (*(ulonglong *)(lVar10 + -0xa60) ^ uVar58 | uVar40) ^ uVar35;
  uVar40 = CONCAT44(uVar24,uVar24);
  uVar35 = *(ulonglong *)(lVar9 - (uVar34 ^ 0xa5caddd)) ^ uVar55 ^ *(ulonglong *)(lVar9 + -0xa70) ^
           uVar40 ^ uVar35;
  *(ulonglong *)(lVar9 + -0xb20) = uVar35;
  uVar36 = DAT_182671c90;
  *puVar5 = *puVar4 ^ uVar35 ^ uVar40 ^ uVar43;
  uVar52 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  puVar56 = (ulonglong *)(lVar9 - ((ulonglong)uVar14 ^ 0xaa3509dc));
  *puVar56 = (*(ulonglong *)(lVar9 - ((ulonglong)uVar14 ^ 0xaa350c74)) ^ uVar39) + (uVar40 ^ uVar35)
             ^ uVar52;
  uVar39 = (uVar40 ^ *(ulonglong *)(lVar9 + -0xb20)) << 0x17;
  bVar25 = (byte)(uVar14 >> 0x10);
  uVar40 = *(ulonglong *)(lVar9 + -0xb20);
  *puVar3 = (CONCAT44(uVar29,uVar36) ^ 0xd595821d7b313dd2) >> ((bVar25 ^ 0x29) & 0x3f);
  uVar18 = DAT_182671e98;
  uVar40 = (uVar40 >> 0x20 ^ uVar33) >> 9;
  *(ulonglong *)(lVar9 + -0xd88) = uVar39 ^ CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar33 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar9 + -0x2b0) = uVar40 ^ uVar60;
  uVar35 = CONCAT44(DAT_182671f90,DAT_182671f90);
  *(ulonglong *)(lVar9 + -0x888) = (uVar39 | uVar40) ^ uVar33;
  uVar24 = DAT_182671c68;
  lVar10 = DAT_182671c40;
  *(ulonglong *)(lVar9 + -0x760) =
       *(ulonglong *)(lVar9 - (uVar42 ^ 0x7e660dad)) ^ *(ulonglong *)(lVar9 - (uVar53 ^ 0xcd99da07))
       ^ uVar35 ^ uVar33 ^ uVar52;
  uVar40 = *puVar2;
  uVar39 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar9 + -0xb08) =
       (uVar55 ^ *(ulonglong *)(lVar9 + -0xa70)) + (uVar50 ^ uVar40) ^ uVar39;
  uVar23 = DAT_182671c6c;
  uVar33 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  puVar31 = (ulonglong *)(lVar10 - (uVar53 ^ 0xcd99d567));
  *puVar31 = (uVar50 ^ uVar40) << (((byte)DAT_182671c80 ^ 0x28) & 0x3f) ^ uVar33;
  bVar26 = (byte)uVar23;
  *puVar4 = (CONCAT44(uVar24,uVar23) ^ 0x44dee1bdb9d02550) >> ((bVar26 ^ 0x3d) & 0x3f);
  uVar40 = CONCAT44(DAT_182671db4,DAT_182671db4);
  puVar32 = (ulonglong *)(lVar10 - ((ulonglong)DAT_182671c50 ^ 0x6f279e14));
  uVar24 = DAT_182671c8c ^ 0x6df76463;
  *puVar32 = ((ulonglong)(DAT_182671dec >> 0x18) | (ulonglong)DAT_182671dec << 8) ^ *puVar2 >> 0x18
             ^ uVar40;
  *(uint *)(lVar10 - ((ulonglong)uVar36 ^ 0x5c0a307e)) = uVar24 * 0x1e96a125;
  uVar53 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar40 = (*(ulonglong *)(lVar10 + -0x7e8) ^ uVar33 | *puVar5 ^ uVar40) ^ uVar53;
  *puVar1 = uVar40;
  *puVar3 = *(ulonglong *)(lVar10 + -0xb08) ^ uVar40 ^ uVar39;
  uVar19 = DAT_182671d6c;
  uVar24 = DAT_182671c78;
  uVar33 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar10 + -0xb20) =
       (uVar53 ^ *puVar54) + (*(ulonglong *)(lVar10 + -0x380) ^ uVar52) ^ uVar33;
  uVar18 = DAT_182671d50;
  uVar43 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar10 + -0xd88) =
       (*(ulonglong *)(lVar10 - (uVar48 ^ 0xf5db3dc7)) ^ uVar53) << ((bVar49 ^ 0xa7) & 0x3f) ^
       uVar43;
  uVar40 = CONCAT44(uVar18,uVar18);
  bVar27 = (byte)DAT_182671c68;
  *(ulonglong *)(lVar10 - (uVar37 ^ 0x25270ab0)) =
       (*puVar30 ^ uVar53) >> ((bVar25 ^ 0xe) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar10 + -0x888) =
       (*(ulonglong *)(lVar10 + -0xa60) ^ uVar58) << ((bVar27 ^ 0x91) & 0x3f);
  lVar9 = DAT_182671c40;
  uVar52 = CONCAT44(DAT_182671d24,DAT_182671d24);
  puVar6 = (uint *)(DAT_182671c40 + -0xc70);
  *(ulonglong *)(DAT_182671c40 + -0xa70) =
       (*(ulonglong *)(DAT_182671c40 + -0x2b0) ^ uVar40 |
       *(ulonglong *)(DAT_182671c40 + -0xd88) ^ uVar43) ^ uVar52;
  uVar23 = DAT_182671c90;
  uVar50 = (ulonglong)DAT_182671c90;
  *(uint *)(lVar9 + -0x27c) = *puVar6 | 0x394f947d;
  uVar55 = CONCAT44(DAT_182671e14,DAT_182671e14);
  uVar40 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar9 - (uVar37 ^ 0x25270fc0)) =
       *(ulonglong *)(lVar9 - ((ulonglong)uVar24 ^ 0xb7d3028e)) ^ uVar55 ^ uVar52 ^ uVar33 ^
       *(ulonglong *)(lVar9 + -0xb20);
  uVar18 = DAT_182671e48;
  lVar10 = DAT_182671c40;
  uVar52 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *puVar2 = (*(ulonglong *)(lVar9 - (uVar40 ^ 0xe59911c7)) ^ uVar39) +
            (*(ulonglong *)(lVar9 + -0x760) ^ uVar35) ^ uVar52;
  uVar39 = CONCAT44(uVar18,uVar18);
  *puVar44 = (*(ulonglong *)(lVar10 + -0x760) ^ uVar35) << (((byte)uVar23 ^ 0x8f) & 0x3f) ^ uVar39;
  uVar35 = (*(ulonglong *)(lVar10 + -0x760) ^ uVar35) >> (((byte)uVar11 ^ 0x94) & 0x3f);
  *puVar5 = uVar35 ^ CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar40 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar39 = (uVar35 | *(ulonglong *)(lVar10 + -0x7e8) ^ uVar39) ^ uVar40;
  *puVar1 = uVar39;
  uVar18 = DAT_182671eec;
  uVar35 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *puVar56 = uVar39 ^ uVar35 ^ uVar40 ^ uVar52 ^ *puVar2;
  uVar39 = (ulonglong)DAT_182671d68;
  uVar53 = CONCAT44(uVar18,uVar18);
  uVar43 = (CONCAT44(uVar28,DAT_182671c78) ^ 0xa53694171796780e) +
           (*(ulonglong *)(lVar10 + -0x380) ^ uVar35);
  uVar40 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *puVar3 = uVar43 ^ uVar53;
  uVar18 = DAT_182671dfc;
  uVar59 = (*(ulonglong *)(lVar10 - (uVar50 ^ 0x5c0a3e8a)) ^ uVar33) +
           ((uVar59 << 0x20 | uVar41) ^ 0x4443a38aaaff7842);
  *(ulonglong *)(lVar10 + -0xa60) = uVar59 ^ uVar40;
  uVar35 = CONCAT44(uVar18,uVar18);
  uVar40 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar10 + -0x888) = uVar43 + uVar59 ^ uVar35;
  bVar27 = (byte)DAT_182671c80;
  *(ulonglong *)(lVar10 - (uVar40 ^ 0xe5991747)) =
       (*(ulonglong *)(lVar10 + -0xa60) >> 0x20 ^ uVar39) >> 7;
  uVar59 = *puVar3;
  uVar33 = (uVar53 ^ *puVar3) << ((bVar27 ^ 0x19) & 0x3f);
  uVar40 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar10 + -0x2b0) = uVar33 ^ CONCAT44(DAT_182671df8,DAT_182671df8);
  uVar59 = (uVar53 ^ uVar59) >> (((byte)uVar14 ^ 0x7b) & 0x3f);
  uVar43 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar10 + -0xa70) = uVar59 ^ uVar40;
  uVar59 = (uVar33 | uVar59) ^ uVar51;
  *(ulonglong *)(lVar10 + -0xb08) = uVar59;
  uVar33 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *(ulonglong *)(lVar10 + -0x760) =
       *(ulonglong *)(lVar10 - (uVar42 ^ 0x7e6606a5)) ^ uVar59 ^ uVar51 ^ uVar43 ^ uVar35;
  uVar18 = DAT_182671ef8;
  *(ulonglong *)(lVar10 + -0x7e8) =
       (CONCAT44(uVar8,uVar12) ^ 0x4fe9a7813ffdf6ca) + (*puVar4 ^ uVar55) ^ uVar33;
  uVar40 = CONCAT44(uVar18,uVar18);
  *puVar32 = (*(ulonglong *)(lVar10 - (uVar37 ^ 0x25270120)) ^ uVar52) +
             (CONCAT44(uVar29,uVar57) ^ 0xa456066e470a837e) ^ uVar40;
  uVar59 = *(ulonglong *)(lVar10 + -0x7e8) ^ uVar33;
  uVar52 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *puVar1 = (uVar40 ^ *puVar5) + uVar59 ^ uVar52;
  uVar11 = DAT_182671c50;
  lVar9 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671db8,DAT_182671db8);
  uVar39 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x5e2e363b)) =
       uVar59 << ((bVar25 ^ 0x14) & 0x3f) ^ uVar40;
  uVar18 = DAT_182671e90;
  *(ulonglong *)(lVar9 + -0xb20) =
       CONCAT44(uVar13,uVar17) ^ 0xd5a9f66d1fda55c3 | uVar45 ^ 0x3eb011002d5e6eae;
  uVar59 = (*(ulonglong *)(lVar9 - (uVar42 ^ 0x7e6609c5)) ^ uVar33) >>
           (((byte)uVar11 ^ 0x1b) & 0x3f);
  *(ulonglong *)(lVar9 + -0xa60) = uVar59 ^ CONCAT44(uVar18,uVar18);
  lVar10 = DAT_182671c40;
  puVar32 = (ulonglong *)(lVar9 - (uVar48 ^ 0xf5db3c6f));
  uVar45 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar59 = (uVar40 ^ *puVar32 | uVar59) ^ uVar45;
  uVar33 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar48 = *(ulonglong *)(DAT_182671c40 + -0x888);
  puVar30 = (ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x6f27992c));
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar59;
  uVar59 = *puVar30 ^ uVar59 ^ uVar33 ^ uVar45 ^ uVar52;
  *puVar3 = uVar59;
  uVar11 = DAT_182671c7c;
  *(ulonglong *)(lVar10 - (uVar41 ^ 0x5e2e370b)) = (uVar35 ^ uVar48) + (uVar59 ^ uVar33) ^ uVar47;
  lVar9 = DAT_182671c40;
  uVar41 = (uVar33 ^ *puVar3) << (((byte)uVar11 ^ 0xe1) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa70) = uVar41 ^ CONCAT44(DAT_182671d20,DAT_182671d20);
  uVar18 = DAT_182671fac;
  *(ulonglong *)(lVar9 + -0xb08) =
       (CONCAT44(uVar16,uVar15) ^ 0x31a5bdce92114a81) - (*(ulonglong *)(lVar9 + -0x380) ^ uVar40);
  uVar48 = (uVar33 ^ *puVar3) >> (((byte)uVar28 ^ 0xfd) & 0x3f);
  *puVar4 = uVar48 ^ CONCAT44(uVar18,uVar18);
  *puVar2 = (uVar41 | uVar48) ^ uVar40;
  lVar9 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x7e660f3d)) =
       -0x50cda5811455b9ac - (CONCAT44(uVar17,uVar17) ^ 0x6bf09e3b84023a36);
  uVar59 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar9 + -0xb20) =
       uVar46 ^ *(ulonglong *)(lVar9 + -0x2b0) ^ uVar40 ^ uVar47 ^ *puVar2;
  uVar45 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar9 + -0x7e8) =
       (uVar43 ^ *(ulonglong *)(lVar9 + -0x760)) + (uVar52 ^ *puVar1) ^ uVar45;
  uVar42 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar9 - (uVar59 ^ 0x23258660)) =
       (uVar43 ^ *(ulonglong *)(lVar9 + -0x760)) << ((bVar49 ^ 0xae) & 0x3f) ^ uVar42;
  uVar48 = CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar41 = (*(ulonglong *)(lVar9 - (uVar37 ^ 0x25270f60)) ^ uVar43) >>
           (((byte)DAT_182671c78 ^ 0xca) & 0x3f);
  *(ulonglong *)(lVar9 + -0x888) = uVar38 ^ 0xd724f822eb9e2483;
  uVar18 = DAT_182671fb0;
  *(ulonglong *)(lVar9 + -0xd88) = uVar41 ^ uVar48;
  uVar19 = DAT_182671df0;
  uVar40 = CONCAT44(uVar18,uVar18);
  *puVar32 = (uVar41 | uVar42 ^ *(ulonglong *)(lVar9 + -0xa60)) ^ uVar40;
  uVar18 = DAT_182671d88;
  uVar48 = CONCAT44(uVar19,uVar19);
  uVar41 = *(ulonglong *)(lVar9 + -0x380) ^ uVar48 ^ uVar40 ^ uVar45 ^ *puVar31;
  *(ulonglong *)(lVar9 + -0xb08) = uVar41;
  uVar38 = CONCAT44(uVar18,uVar18);
  *puVar3 = (*(ulonglong *)(lVar9 + -0x2b0) ^ uVar47) + (uVar41 ^ uVar48) ^ uVar38;
  uVar18 = DAT_182671ed4;
  uVar41 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar28 = DAT_182671c80 ^ 0xf045247;
  uVar40 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  uVar59 = (*(ulonglong *)(lVar9 - (uVar59 ^ 0x23258708)) ^ uVar48) << 0x3a;
  iVar7 = *(int *)(lVar9 + -0x4ac);
  *puVar4 = (uVar48 ^ *(ulonglong *)(lVar9 + -0xb08)) >> ((bVar26 ^ 6) & 0x3f) ^ uVar40;
  *(uint *)(lVar9 + -0x684) = iVar7 - uVar28;
  uVar20 = DAT_182671f4c;
  *(ulonglong *)(lVar9 + -0xa70) = uVar59 ^ uVar41;
  uVar19 = DAT_182671f34;
  uVar41 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c68 ^ 0xd28fcc89)) =
       (*(ulonglong *)(lVar9 - (uVar34 ^ 0xa5cadf5)) ^ uVar40 | uVar59) ^ uVar41;
  *puVar2 = CONCAT44(uVar19,uVar19) ^ uVar41 ^ uVar38 ^ *puVar3 ^ *puVar5;
  *puVar1 = 0x2524879cf214cb78 << (((byte)uVar18 ^ *(byte *)puVar4) & 0x3f);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar22 * 4) = uVar21 ^ uVar57;
  return;
}



############ FUN_ 181031da0 size=5780 ############

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

void FUN_181031da0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  byte local_res18;
  byte local_108;
  
  uVar13 = DAT_182671cf8;
  uVar11 = DAT_182671c94;
  uVar7 = DAT_182671c90;
  uVar4 = DAT_182671c8c;
  uVar10 = DAT_182671c88;
  uVar9 = DAT_182671c84;
  uVar8 = DAT_182671c80;
  uVar3 = DAT_182671c4c;
  lVar1 = DAT_182671c40;
  uVar18 = DAT_182671c5c & 3;
  if (uVar18 < 2) {
    DAT_182671c68 = DAT_182671c7c;
    if (uVar18 == 0) {
      DAT_182671c68 = DAT_182671c5c;
    }
  }
  else {
    DAT_182671c68 = DAT_182671c70;
    if (uVar18 < 3) {
      DAT_182671c68 = DAT_182671c50;
    }
  }
  uVar40 = (ulonglong)DAT_182671c84;
  uVar23 = (ulonglong)DAT_182671c94;
  uVar37 = (ulonglong)DAT_182671c4c;
  uVar19 = (ulonglong)DAT_182671c88;
  uVar44 = (ulonglong)DAT_182671c80;
  DAT_182671c60 = DAT_182671c84 ^ DAT_182671c88;
  uVar34 = (ulonglong)DAT_182671c8c;
  uVar39 = DAT_182671c94 & DAT_182671c80;
  uVar27 = DAT_182671c4c | DAT_182671c8c;
  uVar25 = (DAT_182671c90 << 0x10 | DAT_182671c90 & 0xff00) << 8 | DAT_182671c90 >> 8 & 0xff00 |
           DAT_182671c90 >> 0x18;
  uVar29 = *(uint *)(&DAT_182613218 + DAT_182672144) ^ DAT_182671c60;
  uVar16 = *(uint *)(&DAT_182613220 + DAT_182672144) ^ DAT_182671c84;
  uVar41 = CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar31 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c88 ^ 0xffdbdc17)) ^
            CONCAT44(DAT_182671e60,DAT_182671e60) |
           CONCAT44(DAT_182671f70,DAT_182671f70) ^ *(ulonglong *)(DAT_182671c40 + -0x110)) ^ uVar41;
  DAT_182671c58 = uVar27;
  DAT_182671c6c = uVar39;
  DAT_182671c74 = uVar25;
  *(ulonglong *)(DAT_182671c40 + -0x760) = uVar31;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar42 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x5e2e3793)) =
       uVar42 ^ uVar30 ^ uVar31 ^ uVar41 ^ *(ulonglong *)(lVar1 + -0xa60);
  uVar38 = CONCAT44(DAT_182671cac,DAT_182671cac);
  uVar31 = (ulonglong)uVar7;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (CONCAT44(uVar3,uVar27) ^ 0xeaecd6be76c38343) << (((byte)(uVar7 >> 0x18) ^ 0x42) & 0x3f);
  uVar17 = DAT_182671c68;
  puVar46 = (ulonglong *)(lVar1 - (uVar31 ^ 0x5c0a3822));
  *puVar46 = (CONCAT44(uVar11,uVar8) ^ 0xe6bad5f405d6041e) +
             (uVar30 ^ *(ulonglong *)(lVar1 + -0x228)) ^ uVar38;
  uVar13 = DAT_182671eec;
  uVar20 = CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar30 = (CONCAT44(uVar39,uVar17) ^ 0x5ab6578967bc3a1a) +
           (uVar20 ^ *(ulonglong *)(lVar1 + -0x920));
  *(ulonglong *)(lVar1 + -0x888) = uVar30 ^ CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar5 = DAT_182671c5c;
  puVar32 = (ulonglong *)(lVar1 - (uVar19 ^ 0xffdbddd7));
  uVar21 = CONCAT44(DAT_182671e38,DAT_182671e38);
  uVar28 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  *(ulonglong *)(lVar1 + -0xb08) =
       (uVar21 ^ *puVar32) << (((byte)uVar13 ^ *(byte *)(lVar1 + -0xa70)) & 0x3f);
  uVar18 = DAT_182671c50;
  uVar35 = uVar30 + (uVar38 ^ *(ulonglong *)(lVar1 + -0xd88)) ^ uVar28;
  uVar24 = CONCAT44(DAT_182671da0,DAT_182671da0);
  uVar33 = (uVar38 ^ *(ulonglong *)(lVar1 + -0xd88)) << (((byte)DAT_182671c70 ^ 0xf5) & 0x3f);
  uVar26 = CONCAT44(uVar9,DAT_182671c50);
  *(ulonglong *)(lVar1 + -0x7c0) = uVar35;
  uVar13 = DAT_182671e9c;
  *(ulonglong *)(lVar1 + -0xb20) = uVar33 ^ uVar24;
  uVar14 = DAT_182671ee0;
  uVar22 = CONCAT44(uVar13,uVar13);
  uVar30 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar1 + -0x110) =
       (uVar38 ^ *(ulonglong *)(lVar1 + -0xd88)) >> (((byte)uVar18 ^ 0x23) & 0x3f) ^ uVar22;
  uVar38 = CONCAT44(uVar14,uVar14);
  uVar30 = (*(ulonglong *)(lVar1 - (uVar30 ^ 0x49039714)) ^ uVar22 | uVar33) ^ uVar38;
  uVar22 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(lVar1 + -0x7e8) = uVar30;
  uVar12 = _DAT_182671cf0;
  uVar18 = DAT_182671c48;
  uVar36 = (ulonglong)_DAT_182671cf0;
  uVar33 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  *(ulonglong *)(lVar1 + -0x760) = uVar28 ^ uVar30 ^ uVar35 ^ uVar22 ^ uVar38;
  uVar13 = DAT_182671dfc;
  uVar35 = (CONCAT44(DAT_182671d30,DAT_182671d30) ^ *(ulonglong *)(lVar1 + -0x380)) +
           (CONCAT44(uVar18,uVar3) ^ 0x9abdd0606020415d);
  uVar33 = uVar35 ^ uVar33;
  *(ulonglong *)(lVar1 + -0x2b0) = uVar33;
  uVar6 = DAT_182671c60;
  lVar1 = DAT_182671c40;
  uVar38 = CONCAT44(uVar13,uVar13);
  uVar30 = (CONCAT44(DAT_182671c60,uVar4) ^ 0xf20f5f04e0df6536) +
           (uVar42 ^ *(ulonglong *)(DAT_182671c40 + -0xa60));
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar30 ^ uVar38;
  uVar13 = DAT_182671f80;
  uVar42 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(lVar1 + -0x920) = uVar30 + uVar35 ^ uVar42;
  local_108 = (byte)uVar11;
  uVar35 = uVar35 << ((local_108 ^ 0x83) & 0x3f);
  uVar30 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *(ulonglong *)(lVar1 + -0x628) = uVar35 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671ef8;
  uVar33 = ((ulonglong)(uVar12 >> 0x1f) | uVar36 * 2) ^ uVar33 >> 0x1f;
  *(ulonglong *)(lVar1 + -0xb08) = uVar33 ^ uVar30;
  uVar12 = DAT_182671d80;
  uVar36 = (ulonglong)DAT_182671d80;
  *(ulonglong *)(lVar1 + -0xa70) = (uVar33 | uVar35) ^ CONCAT44(uVar13,uVar13);
  uVar35 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 - (uVar34 ^ 0x5e2e3d33)) =
       (CONCAT44(uVar6,uVar25) ^ 0xd80242f53a3ba87f) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0xdeff3f93)) ^ uVar38);
  *(ulonglong *)(lVar1 + -0xd88) =
       *(ulonglong *)(lVar1 + -0x920) ^ uVar35 ^ CONCAT44(uVar13,uVar13) ^ uVar42 ^
       *(ulonglong *)(lVar1 + -0xa70);
  uVar45 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar1 + -0xb20) =
       (CONCAT44(uVar6,uVar17) ^ 0x717ada584b5af161) <<
       (((byte)uVar13 ^ *(byte *)(lVar1 + -0xa70)) & 0x3f);
  *(ulonglong *)(lVar1 + -0x110) =
       (uVar28 ^ *(ulonglong *)(lVar1 + -0x7c0)) + (uVar35 ^ *puVar46) ^ uVar45;
  uVar18 = DAT_182671c70;
  puVar46 = (ulonglong *)(lVar1 - ((ulonglong)uVar39 ^ 0x23258be8));
  *puVar46 = (CONCAT44(uVar6,uVar39) ^ 0x2ee0869dc7a2a816) - (uVar26 ^ 0xcea640b7ec0fbea);
  uVar28 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  uVar33 = (*(ulonglong *)(lVar1 - (uVar19 ^ 0xffdbd677)) ^ uVar35) <<
           (((byte)uVar18 ^ 0xc2) & 0x3f);
  uVar30 = CONCAT44(DAT_182671d48,DAT_182671d48);
  *(ulonglong *)(lVar1 + -0x380) = uVar33 ^ uVar28;
  uVar13 = DAT_182671f4c;
  *(ulonglong *)(lVar1 + -0xa60) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0xdeff3033)) >> 0x12 ^
       ((ulonglong)(uVar12 >> 0x12) | uVar36 << 0xe) ^ uVar30;
  uVar38 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar18 ^ 0x96e83a5c)) =
       (*(ulonglong *)(lVar1 - (uVar37 ^ 0x94f106c3)) ^ uVar30 | uVar33) ^ uVar38;
  uVar13 = DAT_182671f88;
  uVar33 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar1 + -0x628) =
       (CONCAT44(uVar5,DAT_182671c7c) ^ 0x639f5252bfbef99f) +
       (*(ulonglong *)(lVar1 + -0xa60) ^ uVar30);
  uVar47 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0xb08) =
       *(ulonglong *)(lVar1 - (uVar23 ^ 0xb3ffde12)) ^ *(ulonglong *)(lVar1 + -0x110) ^ uVar47 ^
       uVar38 ^ uVar45;
  uVar18 = DAT_182671c48;
  uVar26 = CONCAT44(DAT_182671e64,DAT_182671e64);
  uVar38 = (ulonglong)DAT_182671c48;
  local_res18 = (byte)uVar4;
  *(ulonglong *)(lVar1 - (uVar44 ^ 0x67258f2c)) =
       (*(ulonglong *)(lVar1 - (uVar33 ^ 0x49039164)) ^ uVar22) +
       (*(ulonglong *)(lVar1 + -0x920) ^ uVar42) ^ uVar26;
  uVar36 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar42 = (*(ulonglong *)(lVar1 + -0x760) ^ uVar22) << ((local_res18 ^ 0xb7) & 0x3f);
  *(ulonglong *)(lVar1 + -0xa70) = uVar42 ^ uVar36;
  *(ulonglong *)(lVar1 + -0xb20) = 0x5a71e472895583c6 - (*(ulonglong *)(lVar1 + -0x380) ^ uVar28);
  uVar4 = DAT_182671c60;
  uVar33 = (*(ulonglong *)(lVar1 - (uVar38 ^ 0xfddbf88a)) ^ uVar22) >>
           (((byte)DAT_182671c60 ^ 0xbb) & 0x3f);
  uVar38 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(lVar1 + -0x7c0) = uVar33 ^ CONCAT44(DAT_182671d78,DAT_182671d78);
  uVar13 = DAT_182671e08;
  *puVar46 = (uVar33 | uVar42) ^ uVar38;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar42 = *(ulonglong *)(lVar1 + -0x7e8) ^ uVar33 ^ uVar38 ^ uVar26 ^
           *(ulonglong *)(lVar1 + -0x228);
  *(ulonglong *)(lVar1 + -0xd88) = uVar42;
  uVar13 = DAT_182671e70;
  *(ulonglong *)(lVar1 + -0xa60) =
       (CONCAT44(uVar7,uVar18) ^ 0xa9d506e4ddae6cfa) << (((byte)uVar18 ^ 0xd4) & 0x3f);
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x628) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0xcd99d39f)) ^ uVar45) + (uVar42 ^ uVar33) ^
       uVar28;
  *(ulonglong *)(lVar1 + -0x2b0) = (uVar42 ^ uVar33) - (uVar36 ^ *(ulonglong *)(lVar1 + -0xa70));
  uVar14 = DAT_182671efc;
  uVar36 = (uVar42 ^ uVar33) << 0x3a;
  *(ulonglong *)(lVar1 + -0x920) = uVar36 ^ CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar13 = DAT_182671e00;
  uVar33 = (*(ulonglong *)(lVar1 + -0xd88) ^ uVar33) >> (((byte)DAT_182671c5c ^ 0xb1) & 0x3f);
  *(ulonglong *)(lVar1 + -0x380) = uVar33 ^ CONCAT44(uVar14,uVar14);
  uVar42 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0xb20) = (uVar33 | uVar36) ^ uVar42;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c68 ^ 0x96e83f8c)) =
       (*(ulonglong *)(lVar1 + -0x7e8) ^ uVar38) << ((byte)*(undefined8 *)(lVar1 + -0x888) & 0x3f);
  uVar43 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar1 + -0x7c0) =
       *(ulonglong *)(lVar1 + -0xb20) ^ uVar43 ^ uVar42 ^ *(ulonglong *)(lVar1 + -0x628) ^ uVar28;
  uVar13 = DAT_182671d40;
  uVar5 = DAT_182671c64;
  uVar38 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar42 = (ulonglong)DAT_182671c64;
  uVar33 = (*(ulonglong *)(lVar1 - (uVar31 ^ 0x5c0a3782)) ^ uVar26) +
           (*(ulonglong *)(lVar1 + -0xb08) ^ uVar47);
  *(ulonglong *)(lVar1 + -0xa60) = uVar33 ^ uVar38;
  uVar18 = DAT_182671c78;
  uVar26 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x110) =
       (*(ulonglong *)(lVar1 + -0xb08) ^ uVar47) << (((byte)uVar7 ^ 0xbc) & 0x3f) ^ uVar26;
  uVar17 = uVar18 + uVar5;
  uVar45 = (ulonglong)uVar17;
  DAT_182671c54 = uVar17;
  *(ulonglong *)(lVar1 - (uVar45 ^ 0x6dca1b99)) =
       (CONCAT44(uVar5,uVar18) ^ 0x6238f3d874c98797) + uVar33;
  uVar33 = (*(ulonglong *)(lVar1 + -0xb08) ^ uVar47) >> (((byte)uVar18 ^ 0xd4) & 0x3f);
  *(ulonglong *)(lVar1 + -0x2b0) = uVar33 ^ uVar22;
  uVar4 = DAT_182671e94;
  uVar36 = (ulonglong)DAT_182671e94;
  uVar33 = (uVar33 | *(ulonglong *)(lVar1 + -0x110) ^ uVar26) ^ uVar30;
  *(ulonglong *)(lVar1 + -0xd88) = uVar33;
  uVar13 = DAT_182671e40;
  lVar2 = DAT_182671c40;
  uVar26 = CONCAT44(uVar4,uVar4);
  uVar30 = *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xb5f7028b)) ^ uVar33 ^ uVar26 ^ uVar38 ^
           uVar30;
  *(ulonglong *)(lVar1 + -0x920) = uVar30;
  uVar47 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x6dca1269)) =
       (*(ulonglong *)(lVar2 + -0x628) ^ uVar28) + (uVar30 ^ uVar26) ^ uVar47;
  uVar28 = CONCAT44(DAT_182671de4,DAT_182671de4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0xb7d30076)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0xb7d301de)) ^ uVar26) <<
       (((byte)uVar17 ^ 0xc9) & 0x3f) ^ uVar28;
  uVar13 = DAT_182671f6c;
  *(ulonglong *)(lVar2 + -0x7e8) =
       CONCAT44(uVar10,uVar5) ^ 0x165155e470674ef5 | CONCAT44(uVar6,uVar27) ^ 0x98ada19a41226a13;
  uVar14 = DAT_182671ee8;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar36 = *(ulonglong *)(lVar2 - (uVar37 ^ 0x94f10583)) >> 0x20 ^ uVar33 ^ uVar36;
  *(ulonglong *)(lVar2 + -0x760) = uVar36;
  uVar13 = DAT_182671d68;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar30 = (ulonglong)DAT_182671c70;
  uVar33 = (*(ulonglong *)(lVar2 - (uVar40 ^ 0x324201f8)) ^ uVar28 | uVar36 ^ uVar33) ^ uVar37;
  *(ulonglong *)(lVar2 + -0xb20) = uVar33;
  uVar4 = DAT_182671c50;
  uVar40 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x228) =
       *(ulonglong *)(lVar2 - (uVar30 ^ 0x96e83b6c)) ^ uVar33 ^ uVar40 ^ uVar37 ^ uVar47;
  *(ulonglong *)(lVar2 + -0xa70) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xb5f70a5b)) ^ CONCAT44(uVar17,uVar4) ^ uVar22 ^
       0xbbf9addca97e08f8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xaa350154)) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0xa60)) + (*(ulonglong *)(lVar2 + -0x7c0) ^ uVar43) ^
       uVar41;
  uVar4 = DAT_182671c60;
  *(byte *)(lVar2 + -0x5e9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x708) ^ (ulonglong)DAT_182671f50) ^ (byte)DAT_182671f14;
  uVar37 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0xb7d30f3e)) ^ uVar43) <<
       (((byte)uVar4 ^ 0xaf) & 0x3f) ^ uVar37;
  uVar4 = DAT_182671db4;
  lVar1 = DAT_182671c40;
  uVar17 = uVar5 & DAT_182671c88;
  uVar26 = (ulonglong)DAT_182671db4;
  uVar30 = CONCAT44(DAT_182671f74,DAT_182671f74);
  DAT_182671c5c = uVar17;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xb5f70563)) =
       (*(ulonglong *)(lVar2 + -0x7c0) ^ uVar43) >> (((byte)uVar17 ^ 0xcb) & 0x3f) ^ uVar30;
  uVar13 = DAT_182671e5c;
  uVar33 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar30 = (*(ulonglong *)(lVar2 + -0xd88) ^ uVar30 | *(ulonglong *)(lVar2 + -0x110) ^ uVar37) ^
           uVar33;
  *(ulonglong *)(lVar2 + -0x628) = uVar30;
  uVar22 = CONCAT44(uVar13,uVar13);
  uVar36 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xb5f70f03)) =
       uVar41 ^ uVar22 ^ uVar30 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0xb08);
  uVar30 = (CONCAT44(uVar17,uVar17) ^ 0x8a4585600b225866) +
           (uVar22 ^ *(ulonglong *)(lVar1 + -0x7e8));
  uVar43 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar1 + -0x920) = uVar30 ^ uVar36;
  *(ulonglong *)(lVar1 - (uVar42 ^ 0xb5f70f8b)) =
       uVar30 + (*(ulonglong *)(lVar1 + -0x380) ^ uVar47) +
       (CONCAT44(uVar10,uVar17) ^ 0xdf15e37aaf09f656) ^ uVar43;
  uVar18 = DAT_182671c60;
  uVar4 = DAT_182671c50;
  uVar38 = (uVar36 ^ *(ulonglong *)(lVar1 + -0x920)) << (((byte)uVar17 ^ 0xe5) & 0x3f);
  uVar28 = (ulonglong)DAT_182671c60;
  uVar30 = (*(ulonglong *)(lVar1 + -0x920) >> 0x20 ^ uVar26) >> 0x12;
  uVar22 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar1 + -0xb20) = uVar38 ^ CONCAT44(DAT_182671f68,DAT_182671f68);
  *(ulonglong *)(lVar1 + -0xa70) = uVar30 ^ uVar22;
  uVar6 = DAT_182671cb8;
  *(ulonglong *)(lVar1 + -0xa60) = uVar30 ^ uVar36 ^ *(ulonglong *)(lVar1 + -0x920);
  uVar42 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 - (uVar19 ^ 0xffdbdc3f)) = (uVar30 | uVar38) ^ uVar37;
  uVar22 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar1 + -0x110) =
       (CONCAT44(uVar11,uVar18) ^ 0x380eb7f99136cd8d) +
       (CONCAT44(uVar5,DAT_182671c68) ^ 0xa73138be21ea627c);
  *(ulonglong *)(lVar1 + -0xd88) =
       uVar20 ^ *(ulonglong *)(lVar1 + -0x760) ^ *(ulonglong *)(lVar1 + -0x7c0) ^ uVar43 ^ uVar37;
  *(ulonglong *)(lVar1 + -0x7e8) =
       (CONCAT44(uVar4,uVar17) ^ 0x369decc98ccb31d5) + (uVar40 ^ *(ulonglong *)(lVar1 + -0x228)) ^
       uVar42;
  uVar26 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(lVar1 - (uVar31 ^ 0x5c0a362a)) =
       (uVar41 ^ *(ulonglong *)(lVar1 + -0xb08)) + (CONCAT44(uVar9,uVar25) ^ 0x6cdb6ec6f1cb8fed) ^
       uVar26;
  *(ulonglong *)(lVar1 + -0x888) =
       (CONCAT44(uVar5,uVar5) ^ 0x57d59a2a2ee3be90) - (CONCAT44(uVar39,uVar3) ^ 0x12ad72e8c1f59790);
  uVar13 = DAT_182671fac;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (*(ulonglong *)(lVar1 + -0x380) ^ uVar26) + (uVar42 ^ *(ulonglong *)(lVar1 + -0x7e8)) ^
       uVar24;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 - (uVar34 ^ 0x5e2e3fdb)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0xb5d30f03)) ^ uVar42) <<
       (((byte)DAT_182671c7c ^ 0x14) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar1 - (uVar45 ^ 0x6dca18c9)) =
       (*puVar32 ^ uVar33) - (uVar42 ^ *(ulonglong *)(lVar1 + -0x7e8));
  uVar30 = (ulonglong)*(ushort *)((lVar1 - (uVar28 ^ 0xcd99d567)) + 6) ^ (ulonglong)(uVar6 >> 0x10);
  *(ulonglong *)(lVar1 + -0xb20) = uVar30 ^ CONCAT44(DAT_182671eb8,DAT_182671eb8);
  uVar30 = (uVar30 | uVar37 ^ *(ulonglong *)(lVar1 + -0xa60)) ^ uVar26;
  *(ulonglong *)(lVar1 + -0xa70) = uVar30;
  uVar18 = DAT_182671dc0;
  uVar38 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar1 + -0x110) = CONCAT44(uVar27,uVar7) ^ 0x86c8091a00601c0 | 0x450226425bc8b839;
  uVar13 = DAT_182671ec4;
  uVar30 = uVar24 ^ uVar38 ^ uVar26 ^ *(ulonglong *)(lVar1 + -0x2b0) ^ uVar30;
  *(ulonglong *)(lVar1 + -0x7c0) = uVar30;
  uVar33 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x228) =
       (uVar30 ^ uVar38) + (*(ulonglong *)(lVar1 + -0x760) ^ uVar43) ^ uVar33;
  lVar2 = DAT_182671c40;
  puVar46 = (ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x5c0a326a));
  *(ulonglong *)(DAT_182671c40 - (uVar44 ^ 0x6725860c)) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0x96e83f2c)) ^ uVar38) << (((byte)uVar39 ^ 0x34) & 0x3f) ^
       uVar21;
  uVar13 = DAT_182671d14;
  uVar31 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar2 + -0x888) =
       ((ulonglong)uVar18 << 0x14 | (ulonglong)(uVar18 >> 0xc)) ^ *puVar46 >> 0xc ^ uVar31;
  uVar22 = CONCAT44(uVar13,uVar13);
  uVar30 = (*(ulonglong *)(lVar2 - (uVar44 ^ 0x6725858c)) ^ uVar31 |
           uVar21 ^ *(ulonglong *)(lVar2 + -0xb08)) ^ uVar22;
  uVar31 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar2 + -0x380) = uVar30;
  uVar7 = DAT_182671c7c;
  uVar21 = CONCAT44(uVar4,DAT_182671c7c);
  *(ulonglong *)(lVar2 + -0x628) =
       uVar31 ^ uVar30 ^ uVar22 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0x228);
  *(ulonglong *)(lVar2 + -0x920) =
       (CONCAT44(uVar10,uVar8) ^ 0x3f3e9021cea25a75) + (uVar21 ^ 0x4e53909f3df7263b);
  uVar21 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  *(ulonglong *)(lVar2 + -0x7e8) =
       (*(ulonglong *)(lVar2 - (uVar34 ^ 0x5e2e370b)) ^ uVar24) +
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xd88)) ^ uVar21;
  uVar13 = DAT_182671e2c;
  bVar15 = (byte)DAT_182671c70;
  *(ulonglong *)(lVar2 + -0xb20) =
       CONCAT44(uVar7,uVar11) ^ uVar37 ^ *(ulonglong *)(lVar2 + -0xa60) ^ 0xd59dd05fe2c9877c;
  uVar14 = DAT_182671ebc;
  uVar30 = (uVar20 ^ *(ulonglong *)(lVar2 + -0xd88)) << ((bVar15 ^ 0xd5) & 0x3f);
  *(ulonglong *)(lVar2 + -0x110) = uVar30 ^ CONCAT44(uVar13,uVar13);
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xa70) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xd88)) >> (((byte)uVar9 ^ 0x77) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x6dca1689)) =
       (*(ulonglong *)(lVar2 - (uVar44 ^ 0x67258774)) ^ uVar31 | uVar30) ^ uVar35;
  uVar14 = DAT_182671f78;
  uVar13 = DAT_182671ecc;
  uVar31 = CONCAT44(DAT_182671de0,DAT_182671de0);
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x6dca1629)) =
       *(ulonglong *)(lVar2 - (uVar34 ^ 0x5e2e3253)) ^ *(ulonglong *)(lVar2 - (uVar19 ^ 0xffdbdc9f))
       ^ uVar31 ^ uVar21 ^ uVar35;
  bVar15 = (byte)DAT_182671c50;
  *(ulonglong *)(lVar2 + -0xb08) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x7c0)) + (uVar33 ^ *(ulonglong *)(lVar2 + -0x228)) ^
       CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x888) =
       (*puVar46 ^ uVar31) << ((bVar15 ^ 0x13) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x380) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x7c0)) >> (((byte)uVar3 ^ 0x8a) & 0x3f) ^
       CONCAT44(DAT_182671f54,DAT_182671f54);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar16 * 4) = uVar29;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xb3ffd582)) =
       (CONCAT44(uVar5,uVar5) ^ 0x31f4094fc35d0970) - (CONCAT44(uVar8,uVar11) ^ 0xd0f13196bc3639cd);
  return;
}



############ FUN_ 180ff22e0 size=4841 ############

void FUN_180ff22e0(void)

{
  longlong lVar1;
  longlong lVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  byte *pbVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte *pbVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte bVar32;
  byte bVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  byte local_e0;
  ulonglong uVar24;
  
  uVar11 = DAT_182671dac;
  uVar10 = DAT_182671cdc;
  uVar16 = DAT_182671c90;
  iVar8 = DAT_182671c8c;
  uVar7 = DAT_182671c80;
  uVar15 = DAT_182671c78;
  uVar6 = DAT_182671c70;
  uVar5 = DAT_182671c6c;
  lVar1 = DAT_182671c40;
  uVar17 = (ulonglong)DAT_182671c70;
  uVar22 = (ulonglong)DAT_182671c68;
  uVar38 = (ulonglong)DAT_182671c90;
  uVar35 = (ulonglong)DAT_182671c6c;
  uVar39 = DAT_182671c68 - DAT_182671c78;
  uVar23 = DAT_182671c90 + DAT_182671c6c;
  uVar24 = (ulonglong)uVar23;
  uVar27 = DAT_182671c8c + DAT_182671c70;
  DAT_182671c60 =
       (DAT_182671c80 << 0x10 | DAT_182671c80 & 0xff00) << 8 | DAT_182671c80 >> 8 & 0xff00 |
       DAT_182671c80 >> 0x18;
  uVar18 = (ulonglong)uVar39;
  uVar13 = *(uint *)(&DAT_182613210 + (uVar18 ^ 0x4635cab1) + (longlong)DAT_182672078) ^
           DAT_182671c78;
  uVar14 = *(uint *)(&DAT_182613210 + (uVar17 ^ 0x6cab72f4) + (longlong)DAT_182672078) ^
           DAT_182671c68;
  uVar28 = CONCAT44(DAT_182671d90,DAT_182671d90);
  puVar20 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 + -0x310) +
            ((CONCAT44(DAT_182671c80,DAT_182671c90) ^ 0x462ad9d91d1bbe90) +
            (CONCAT44(uVar27,DAT_182671c8c) ^ 0x4684b90ed9d9462a) * 0xc) * 8);
  DAT_182671c58 = uVar39;
  DAT_182671c64 = uVar23;
  DAT_182671c84 = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x2e8) = (ulonglong)puVar20 ^ uVar28;
  uVar4 = DAT_182671c60;
  uVar25 = CONCAT44(uVar10,uVar10);
  uVar19 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar26 = (ulonglong)DAT_182671c60;
  uVar34 = *puVar20 ^ uVar19;
  *(ulonglong *)(lVar1 + -0xbd8) = uVar34 ^ uVar25;
  lVar1 = DAT_182671c40;
  uVar34 = uVar34 >> (((byte)DAT_182671c68 ^ 0x8f) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  bVar36 = (byte)uVar11 ^ (byte)DAT_182671e0c;
  *(ulonglong *)(DAT_182671c40 + -0x228) = uVar34;
  uVar30 = (ulonglong)DAT_182671dc8;
  *(byte *)(lVar1 - (uVar35 ^ 0x7e14d295)) = bVar36 ^ (byte)uVar34;
  pbVar29 = (byte *)((CONCAT44(uVar39,uVar23) ^ 0x4635cab99b3092aa) +
                    *(longlong *)(DAT_182671c40 + -0x870));
  *(ulonglong *)(DAT_182671c40 + -0xda0) = (ulonglong)pbVar29 ^ uVar30;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       CONCAT44(uVar4,iVar8) ^ 0xa365c3ff0735446 | CONCAT44(uVar5,uVar39) ^ 0x68283da56421aba1;
  *pbVar29 = *(byte *)(lVar1 - (uVar17 ^ 0x6cab743d)) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671e0c;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x7e14d55c)) =
       CONCAT44(uVar15,uVar7) ^ 0x3e0c7f3540feb9d6 | uVar25 ^ *(ulonglong *)(lVar1 + -0xbd8);
  uVar10 = DAT_182671cbc;
  puVar20 = (ulonglong *)
            (*(longlong *)(lVar1 - (uVar22 ^ 0xfe08d0a7)) +
            ((CONCAT44(uVar39,uVar16) ^ 0x4635cab91d1bbe93) +
            (CONCAT44(uVar4,uVar23) ^ 0xd9d92a469b3092e5) * 0xc) * 8);
  *(ulonglong *)(lVar1 + -0x610) = (ulonglong)puVar20 ^ CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar25 = CONCAT44(uVar10,uVar10);
  uVar30 = *puVar20 ^ uVar25 ^ uVar19;
  *(ulonglong *)(lVar1 + -0xda8) = uVar30;
  uVar10 = DAT_182671f50;
  lVar2 = DAT_182671c40;
  *(undefined8 *)(lVar1 + -0x628) = 0x22;
  uVar9 = DAT_182671c94;
  uVar34 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar1 + -0x888) =
       (CONCAT44(uVar27,uVar7) ^ 0xd21eec4bce08d3d8) + (CONCAT44(iVar8,uVar23) ^ 0x9de227c18806b6e7)
  ;
  bVar36 = (byte)DAT_182671dc4;
  uVar35 = (ulonglong)DAT_182671f78;
  *(ulonglong *)(lVar1 + -0x228) = CONCAT44(uVar10,uVar10) ^ uVar30 ^ uVar25;
  iVar3 = DAT_182671c54;
  bVar32 = (byte)uVar10 ^ bVar36 ^ *(byte *)(lVar1 + -0x228);
  bVar36 = bVar36 ^ (byte)DAT_182671f14;
  uVar37 = uVar9 - DAT_182671c54;
  *(byte *)(lVar1 + -0x8f9) = bVar32;
  uVar10 = DAT_182671cc8;
  pbVar29 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar9 ^ 0x9370a16b)) +
                    (CONCAT44(uVar37,iVar3) ^ 0x4967b2074a08f744));
  DAT_182671c74 = uVar37;
  *(ulonglong *)(lVar2 + -0x468) = (ulonglong)pbVar29 ^ uVar35;
  *pbVar29 = bVar36 ^ bVar32;
  uVar11 = DAT_182671f10;
  lVar1 = DAT_182671c40;
  puVar20 = (ulonglong *)
            (*(longlong *)(DAT_182671c40 - ((ulonglong)uVar37 ^ 0x4967b117)) +
            ((CONCAT44(uVar9,uVar37) ^ 0x9370a91b4967b20d) +
            (CONCAT44(uVar9,iVar3) ^ 0x9370a91b4a08f714) * 0xc) * 8);
  *(ulonglong *)(DAT_182671c40 + -0x610) = (ulonglong)puVar20 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671dbc;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0x9370a2c3)) = *puVar20 ^ uVar35 ^ uVar19;
  uVar30 = (ulonglong)DAT_182671f74;
  uVar35 = (uVar35 ^ *(ulonglong *)(lVar1 + -0xbd8)) >> (((byte)uVar16 ^ 0x91) & 0x3f) ^
           CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x110) = uVar35;
  pbVar29 = (byte *)((CONCAT44(iVar3,uVar16) ^ 0x4a08f7141d1bbec8) + *(longlong *)(lVar1 + -0x870));
  *(byte *)(lVar1 + -0x431) = (byte)uVar10 ^ (byte)uVar35 ^ (byte)DAT_182671cc0;
  *(ulonglong *)(lVar1 + -0x798) = (ulonglong)pbVar29 ^ uVar30;
  uVar10 = DAT_182671dc0;
  *pbVar29 = *(byte *)(lVar1 - (uVar26 ^ 0xd9d92e77)) ^ (byte)DAT_182671cc0 ^ (byte)DAT_182671f14;
  puVar20 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x310) +
            ((CONCAT44(iVar8,uVar5) ^ 0xd9d9462a7e14d446) +
            (CONCAT44(uVar9,uVar6) ^ 0x9370a91b6cab72e4) * 0xc) * 8);
  *(ulonglong *)(lVar1 + -0x610) = (ulonglong)puVar20 ^ CONCAT44(uVar10,uVar10);
  *(uint *)(lVar1 + -0x94) = (uVar37 ^ 0x85f6a9df) * 0x5dc5c0a;
  uVar11 = DAT_182671ecc;
  uVar12 = DAT_182671e90;
  uVar10 = DAT_182671d38;
  uVar30 = CONCAT44(DAT_182671e90,DAT_182671e90);
  uVar35 = (ulonglong)DAT_182671f8c;
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xfe08db3f)) = *puVar20 ^ uVar30 ^ uVar19;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (CONCAT44(uVar7,uVar27) ^ 0x429d89c49d14ed69) >>
       (((byte)uVar11 ^ *(byte *)(lVar1 + -0xd88)) & 0x3f);
  bVar36 = (byte)uVar10 ^ (byte)DAT_182671d40;
  uVar30 = (*(ulonglong *)(lVar2 + -0x888) ^ uVar30) >> (((byte)uVar5 ^ 0x5c) & 0x3f) ^
           CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x628) = uVar30;
  *(byte *)(lVar2 - ((ulonglong)uVar15 ^ 0xb7d303bf)) = bVar36 ^ (byte)uVar30;
  bVar36 = *(byte *)(lVar2 + -0xb41) ^ (byte)DAT_182671d40;
  bVar32 = (byte)DAT_182671f14;
  *(uint *)(lVar2 + -0x6c0) = *(uint *)(lVar2 + -0x9dc) >> (((byte)uVar39 ^ 0xbd) & 0x1f);
  *(ulonglong *)(lVar2 + -0x9c0) =
       (CONCAT44(uVar37,iVar3) ^ 0x4967b2074a08f746) + *(longlong *)(lVar2 + -0x870) ^ uVar35;
  uVar10 = DAT_182671dd4;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar17 ^ 0x6cab7b24)) ^ uVar35) = bVar36 ^ bVar32;
  uVar35 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x1d1bb889)) = *(longlong *)(lVar2 + -0x310) + 0x50U ^ uVar35;
  uVar10 = DAT_182671da0;
  uVar30 = CONCAT44(DAT_182671da0,DAT_182671da0);
  uVar17 = CONCAT44(DAT_182671e04,DAT_182671e04);
  bVar36 = (byte)DAT_182671e04;
  uVar31 = *(ulonglong *)(uVar35 ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar30 ^ uVar19;
  uVar25 = (ulonglong)DAT_182671eb8;
  *(ulonglong *)(lVar2 + -0x228) = uVar31;
  *(ulonglong *)(lVar2 + -0xbd8) = (uVar31 ^ uVar30) >> (((byte)uVar39 ^ 0xa1) & 0x3f) ^ uVar17;
  lVar1 = DAT_182671c40;
  *(byte *)(lVar2 + -0x2d9) =
       *(byte *)(lVar2 - (uVar24 ^ 0x9b30993d)) ^ bVar36 ^ (byte)DAT_182671d10;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xd9d92b6e)) =
       (CONCAT44(uVar16,uVar27) ^ 0x1d1bbe994684b95d) + *(longlong *)(lVar2 + -0x870) ^ uVar25;
  uVar11 = DAT_182671ef4;
  uVar17 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(byte *)(*(ulonglong *)(lVar2 + -0x128) ^ uVar25) =
       *(byte *)(lVar2 - (uVar38 ^ 0x1d1bbc40)) ^ (byte)DAT_182671d10 ^ bVar32;
  puVar20 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x310) + 0x50 +
            (CONCAT44(uVar27,DAT_182671c68) ^ 0x4684b90efe08d3b7) * 0x60);
  uVar25 = CONCAT44(DAT_182671d60,DAT_182671d60);
  *(ulonglong *)(lVar1 + -0x610) = (ulonglong)puVar20 ^ uVar17;
  *(ulonglong *)(lVar1 + -0x110) = *puVar20 ^ uVar25 ^ uVar19;
  lVar1 = DAT_182671c40;
  bVar36 = (byte)DAT_182671f18;
  pbVar29 = (byte *)(DAT_182671c40 + -0x228);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0xb7d309ee)) ^ uVar25) >>
       (((byte)uVar23 ^ 0xc5) & 0x3f) ^ CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x9b309f4d)) =
       (CONCAT44(uVar27,uVar9) ^ 0xf96680d44f3d21a) >> (((byte)uVar10 ^ *pbVar29) & 0x3f);
  bVar36 = bVar36 ^ (byte)uVar11 ^ *(byte *)(lVar1 + -0xd88);
  uVar17 = (ulonglong)DAT_182671e74;
  *(ulonglong *)(lVar1 + -0x628) = (uVar30 ^ *(ulonglong *)(lVar1 + -0x228)) + 0x66c83bfdcec274cc;
  uVar10 = DAT_182671f14;
  *(ulonglong *)(lVar1 + -0x7b0) = *(longlong *)(lVar1 + -0x870) + 0x54U ^ uVar17;
  bVar32 = (byte)uVar10;
  *(byte *)(lVar1 + -0x199) = bVar36;
  uVar30 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  *(byte *)(*(ulonglong *)(lVar1 - (uVar26 ^ 0xd9d92df6)) ^ uVar17) = (byte)uVar11 ^ bVar36 ^ bVar32
  ;
  uVar11 = DAT_182671d58;
  puVar20 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x310) +
            ((CONCAT44(uVar9,iVar3) ^ 0x9370a91b4a08f71e) +
            (CONCAT44(uVar7,DAT_182671c68) ^ 0x462ad9d9fe08d3b7) * 0xc) * 8);
  *(ulonglong *)(lVar1 + -0x610) = (ulonglong)puVar20 ^ uVar30;
  uVar10 = DAT_182671d14;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar17 = (ulonglong)DAT_182671de0;
  *(ulonglong *)(lVar1 - (uVar38 ^ 0x1d1bb541)) = *puVar20 ^ uVar30 ^ uVar19;
  bVar36 = (byte)uVar10 ^ (byte)DAT_182671ea8;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0x4635cba9)) =
       (uVar30 ^ *(ulonglong *)(lVar1 + -0xbd8)) >> (((byte)uVar23 ^ 0xcd) & 0x3f) ^
       CONCAT44(uVar10,uVar10);
  *(byte *)(lVar1 - ((ulonglong)uVar37 ^ 0x4967b856)) = bVar36 ^ *(byte *)(lVar1 + -0x110);
  uVar39 = DAT_182671d84;
  uVar30 = (ulonglong)DAT_182671d84;
  pbVar29 = (byte *)(*(longlong *)(lVar1 + -0x870) + 0x55);
  *(ulonglong *)(lVar1 + -0x460) = (ulonglong)pbVar29 ^ uVar17;
  bVar36 = *(byte *)(lVar1 + -0xa51) ^ (byte)DAT_182671ea8;
  *(int *)(lVar1 + -0x58c) = *(int *)(lVar1 - (uVar34 ^ 0x9370af5f)) * *(int *)(lVar1 + -0x94c);
  *pbVar29 = bVar36 ^ bVar32;
  uVar10 = DAT_182671cb0;
  puVar20 = (ulonglong *)(*(longlong *)(lVar1 + -0x310) + 0x50);
  *(ulonglong *)(lVar1 + -0x610) = (ulonglong)puVar20 ^ CONCAT44(DAT_182671cd8,DAT_182671cd8);
  uVar17 = CONCAT44(uVar10,uVar10);
  uVar34 = *puVar20 ^ uVar17 ^ uVar19;
  local_e0 = (byte)uVar6;
  *(ulonglong *)(lVar1 + -0xda8) = uVar34;
  bVar36 = (byte)DAT_182671d4c;
  uVar34 = (uVar17 ^ uVar34) >> ((local_e0 ^ 0xd4) & 0x3f) ^ CONCAT44(uVar39,uVar39);
  bVar33 = (byte)uVar39 ^ (byte)DAT_182671d4c;
  *(ulonglong *)(lVar1 + -0xd88) = uVar34;
  bVar33 = bVar33 ^ (byte)uVar34;
  *(byte *)(lVar1 + -0x2ea) = bVar33;
  uVar11 = DAT_182671e48;
  uVar10 = DAT_182671ca4;
  pbVar29 = (byte *)((CONCAT44(iVar3,uVar16) ^ 0x4a08f7141d1bbecf) + *(longlong *)(lVar1 + -0x870));
  *(ulonglong *)(lVar1 + -0x3c8) = (ulonglong)pbVar29 ^ (ulonglong)DAT_182671e14;
  *pbVar29 = bVar36 ^ bVar33 ^ bVar32;
  uVar6 = DAT_182671c88;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x7e14d664)) =
       (CONCAT44(uVar27,uVar4) ^ 0xd012a330d6398048) >>
       ((*(byte *)(lVar1 + -0x888) ^ (byte)uVar12) & 0x3f);
  uVar34 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar1 + -0x610) =
       *(longlong *)(lVar1 + -0x310) +
       ((CONCAT44(iVar3,uVar15) ^ 0x4a08f714b7d308f4) +
       (CONCAT44(DAT_182671c50,uVar9) ^ 0x2680990b9370a91b) * 0xc) * 8 ^ uVar34;
  uVar25 = CONCAT44(uVar11,uVar11);
  bVar36 = (byte)uVar10 ^ (byte)DAT_182671e3c;
  uVar34 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar22 ^ 0xfe08d5a7)) ^ uVar34) ^ uVar25 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x628) = uVar34;
  uVar34 = (uVar34 ^ uVar25) >> (((byte)uVar4 ^ 0x7e) & 0x3f) ^ CONCAT44(uVar10,uVar10);
  uVar15 = DAT_182671c60 + uVar6;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar34;
  DAT_182671c50 = uVar15;
  *(byte *)(lVar2 + -0x409) = bVar36 ^ (byte)uVar34;
  pbVar21 = (byte *)((CONCAT44(uVar4,uVar15) ^ 0xd9d92a46d9b50612) + *(longlong *)(lVar2 + -0x870));
  pbVar29 = (byte *)(DAT_182671c40 - ((ulonglong)uVar6 ^ 0xffdbdff6));
  *(ulonglong *)(lVar2 + -0xce8) = (ulonglong)pbVar21 ^ uVar30;
  uVar10 = DAT_182671f80;
  lVar1 = DAT_182671c40;
  uVar30 = CONCAT44(uVar4,uVar15) ^ 0xd9d92a46d9b5064e;
  *pbVar21 = *pbVar29 ^ (byte)DAT_182671e3c ^ (byte)DAT_182671f14;
  uVar34 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x110) =
       0x70decf449d77041e >> (((byte)uVar39 ^ *(byte *)(lVar1 + -0xd88)) & 0x3f);
  uVar16 = DAT_182671c60 ^ 0xdac8d80c;
  *(ulonglong *)(lVar1 + -0x610) =
       *(longlong *)(lVar1 + -0x310) +
       (uVar30 + (CONCAT44(uVar4,uVar4) ^ 0xd9d92a46d9d92a46) * 0xc) * 8 ^ uVar34;
  uVar10 = DAT_182671f14;
  *(uint *)(lVar1 + -0x444) = uVar16 << ((byte)*(undefined4 *)(lVar1 + -0x5d4) & 0x1f);
  uVar17 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar1 + -0xda8) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xffdbddef)) ^ uVar34) ^ uVar17 ^
       uVar19;
  *(ulonglong *)(lVar1 + -0x888) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xffdbd917)) ^ uVar28) ^ uVar19;
  lVar1 = DAT_182671c40;
  puVar20 = (ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xd9d922ce));
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (uVar17 ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) >> (((byte)uVar15 ^ 0x45) & 0x3f) ^
       CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182671d1c;
  bVar36 = (byte)DAT_182671f14;
  *(byte *)(lVar1 + -0x841) = bVar36 ^ (byte)uVar11 ^ *(byte *)(lVar1 + -0x228);
  uVar26 = (ulonglong)DAT_182671f28;
  *(ulonglong *)(lVar1 + -0x628) = *puVar20 ^ CONCAT44(uVar4,uVar6) ^ 0x87fd85b1929a1a83;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xffdbd69f)) =
       *(longlong *)(lVar1 + -0x870) + 0x58U ^ uVar26;
  *(byte *)(*(ulonglong *)(lVar1 + -0xd60) ^ uVar26) =
       (byte)uVar11 ^ bVar36 ^ *(byte *)(lVar1 + -0x841);
  uVar11 = DAT_182671f30;
  puVar20 = (ulonglong *)(*(longlong *)(lVar1 - ((ulonglong)uVar15 ^ 0xd9b50555)) + uVar30 * 8);
  *(ulonglong *)(lVar1 + -0x2e8) = (ulonglong)puVar20 ^ CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar26 = CONCAT44(uVar10,uVar10);
  uVar17 = *puVar20 ^ uVar19;
  *(ulonglong *)(lVar1 + -0xbd8) = uVar17 ^ uVar34;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xffdbd677)) =
       uVar17 >> (((byte)uVar6 ^ 0xf7) & 0x3f) ^ uVar26;
  uVar17 = (ulonglong)DAT_182671da8;
  *(byte *)(lVar1 - ((ulonglong)uVar6 ^ 0xffdbdcd5)) =
       (byte)uVar10 ^ *(byte *)(lVar1 + -0xd88) ^ (byte)DAT_182671d20;
  *(ulonglong *)(lVar1 + -0x110) =
       (*(ulonglong *)(lVar1 - (uVar18 ^ 0x4635c731)) ^ uVar26) +
       (CONCAT44(iVar8,uVar15) ^ 0x6aa4ed8b56f3576);
  uVar4 = DAT_182671c5c;
  uVar30 = (ulonglong)DAT_182671c5c;
  uVar18 = (ulonglong)DAT_182671c48;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0x462ad289)) =
       (CONCAT44(uVar15,uVar7) ^ 0xd9b50645462ad980) + *(longlong *)(DAT_182671c40 + -0x870) ^
       uVar17;
  lVar1 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0xfddbf4ba)) ^ uVar17) =
       *(byte *)(DAT_182671c40 + -0x72a) ^ (byte)DAT_182671f14 ^ (byte)DAT_182671d20;
  uVar18 = CONCAT44(DAT_182671c7c,uVar37);
  *(ulonglong *)(lVar1 + -0xda8) =
       (CONCAT44(uVar5,uVar23) ^ 0x621646f02dbc8bba) >> (((byte)uVar15 ^ 0x65) & 0x3f);
  uVar10 = DAT_182671f44;
  puVar20 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x310) +
            ((CONCAT44(uVar6,uVar27) ^ 0xffdbdbff4684b905) + (uVar18 ^ 0x278418884967b207) * 0xc) *
            8);
  *(ulonglong *)(lVar1 + -0x2e8) = (ulonglong)puVar20 ^ uVar25;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - (uVar30 ^ 0x462adbf1)) = *puVar20 ^ uVar19 ^ uVar18;
  uVar35 = (uVar18 ^ *(ulonglong *)(lVar1 + -0x228)) >> ((local_e0 ^ 0xf4) & 0x3f) ^ uVar35;
  bVar36 = (byte)DAT_182671dd4 ^ DAT_182671cf0;
  *(ulonglong *)(lVar1 + -0x888) = uVar35;
  *(byte *)(lVar1 - ((ulonglong)uVar27 ^ 0x4684bc5f)) = bVar36 ^ (byte)uVar35;
  uVar18 = CONCAT44(DAT_182671c4c,DAT_182671c68);
  DAT_182671c68 = uVar4 & uVar6;
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x9b3094cd)) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0xd88)) - (uVar18 ^ 0xd06bcd49c72fe6a9);
  *(ulonglong *)(lVar1 + -0x120) = *(longlong *)(lVar1 + -0x870) + 0x5aU ^ (ulonglong)DAT_182671cf4;
  uVar18 = *(ulonglong *)(lVar1 + -0xbd8);
  uVar26 = *(ulonglong *)(lVar1 + -0x110);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar13;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xffdbd657)) = uVar18 ^ uVar34 | uVar26;
  return;
}



############ FUN_ 18101de90 size=5732 ############

void FUN_18101de90(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  ulonglong *puVar9;
  ulonglong *puVar10;
  ulonglong *puVar11;
  uint uVar12;
  longlong lVar13;
  longlong lVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  undefined4 uVar24;
  undefined4 uVar25;
  uint uVar26;
  byte bVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  
  uVar15 = DAT_182671c70;
  uVar17 = DAT_182671c58;
  lVar13 = DAT_182671c40;
  uVar49 = (ulonglong)DAT_182671c70;
  uVar53 = (ulonglong)DAT_182671c58;
  uVar36 = (ulonglong)DAT_182671c70;
  uVar50 = DAT_182671c58 ^ DAT_182671c70;
  uVar26 = *(uint *)(&DAT_182613210 + (uVar49 ^ 0xcee9f1f0) + (longlong)DAT_182672104) ^
           DAT_182671c58;
  uVar12 = *(uint *)(&DAT_182613220 + DAT_182672104);
  uVar38 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0x760);
  uVar42 = CONCAT44(DAT_182671f3c,DAT_182671f3c);
  puVar4 = (ulonglong *)(DAT_182671c40 + -0x920);
  puVar5 = (ulonglong *)(DAT_182671c40 + -0xc18);
  DAT_182671c74 = uVar50;
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xcee9fde0)) =
       (CONCAT44(DAT_182671f80,DAT_182671f80) ^ *puVar4 | *puVar3 ^ uVar38) ^ uVar42;
  puVar35 = (ulonglong *)(lVar13 - ((ulonglong)uVar15 ^ 0xcee9f4e8));
  puVar2 = (ulonglong *)(lVar13 + -0x30);
  uVar31 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar39 = (CONCAT44(DAT_182671da4,DAT_182671da4) ^ *puVar35) -
           (uVar31 ^ *(ulonglong *)(lVar13 + -0x2b0));
  puVar6 = (ulonglong *)(lVar13 + -0xb18);
  *puVar6 = uVar39 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar18 = DAT_182671da8;
  uVar55 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *puVar2 = uVar39 - (uVar42 ^ *puVar5) ^ uVar55;
  uVar24 = DAT_182671e4c;
  uVar30 = CONCAT44(uVar18,uVar18);
  uVar40 = CONCAT44(DAT_182671f18,DAT_182671f18);
  uVar39 = *puVar5;
  uVar32 = CONCAT44(DAT_182671e60,DAT_182671e60);
  puVar7 = (ulonglong *)(lVar13 + -0xd88);
  uVar29 = (*(ulonglong *)(lVar13 + -0xc90) ^ uVar30) + (*(ulonglong *)(lVar13 + -0xf0) ^ uVar40);
  *(ulonglong *)(lVar13 + -0x380) = uVar29 ^ uVar32;
  uVar34 = CONCAT44(uVar24,uVar24);
  uVar33 = (ulonglong)uVar50;
  puVar8 = (ulonglong *)(lVar13 + -0x680);
  *puVar8 = (uVar42 ^ uVar39) - uVar29 ^ uVar34;
  uVar18 = DAT_182671fb4;
  puVar9 = (ulonglong *)(lVar13 + -0xb20);
  *puVar7 = (CONCAT44(uVar17,uVar17) ^ 0xc410fe3d7b522d15) +
            (CONCAT44(uVar50,uVar15) ^ 0x3bd0954dd6c9e29a);
  uVar46 = CONCAT44(uVar18,uVar18);
  uVar51 = CONCAT44(DAT_182671d44,DAT_182671d44);
  puVar10 = (ulonglong *)(lVar13 + -0xc38);
  *(ulonglong *)(lVar13 - ((ulonglong)uVar17 ^ 0x197931c0)) =
       CONCAT44(DAT_182671f60,DAT_182671f60) ^ uVar51 ^ uVar46 ^ *puVar10 ^ *puVar9;
  lVar14 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671e30,DAT_182671e30);
  *puVar3 = (uVar46 ^ *puVar4) >> (((byte)uVar15 ^ 0xe8) & 0x3f) ^ uVar29;
  puVar11 = (ulonglong *)(lVar13 + -0x510);
  uVar39 = (uVar46 ^ *puVar4) << 0x30;
  *puVar11 = uVar39 ^ CONCAT44(DAT_182671cc4,DAT_182671cc4);
  uVar18 = DAT_182671d0c;
  puVar1 = (ulonglong *)(lVar14 + -0xa60);
  puVar54 = (ulonglong *)(lVar13 - ((ulonglong)uVar17 ^ 0x19793f80));
  uVar43 = CONCAT44(DAT_182671dc0,DAT_182671dc0);
  *(ulonglong *)(lVar14 - (uVar33 ^ 0xd790c200)) = (uVar29 ^ *puVar54 | uVar39) ^ uVar43;
  uVar29 = CONCAT44(DAT_182671d98,DAT_182671d98);
  bVar27 = (byte)uVar17;
  *(ulonglong *)(lVar14 - (uVar33 ^ 0xd790c500)) =
       (uVar51 ^ *puVar9) - (CONCAT44(uVar18,uVar18) ^ *puVar1) ^ uVar29;
  uVar41 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *puVar7 = (*(ulonglong *)(lVar14 - (uVar36 ^ 0xcee9f540)) ^ uVar41) >> ((bVar27 ^ 0xdd) & 0x3f);
  uVar20 = DAT_182671c78;
  uVar37 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *puVar10 = (uVar29 ^ *puVar5) - (uVar43 ^ *puVar6) ^ uVar37;
  uVar42 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar39 = (CONCAT44(uVar20,uVar15) ^ 0x626c2f7131160e0c) -
           (*(ulonglong *)(lVar14 + -0x888) ^ uVar42);
  *puVar4 = uVar39 ^ CONCAT44(DAT_182671e6c,DAT_182671e6c);
  uVar47 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar39 = uVar39 + (uVar43 ^ *puVar6) ^ uVar47;
  *puVar3 = uVar39;
  uVar16 = DAT_182671c54;
  uVar44 = CONCAT44(DAT_182671f54,DAT_182671f54);
  uVar39 = *(ulonglong *)(DAT_182671c40 - (uVar53 ^ 0x197938d0)) ^ uVar44 ^ uVar47 ^ uVar55 ^ uVar39
  ;
  *puVar11 = uVar39;
  uVar19 = DAT_182671c84;
  uVar43 = CONCAT44(DAT_182671fa0,DAT_182671fa0);
  *puVar1 = (uVar44 ^ *puVar35) >> (bVar27 & 0x3f) ^ uVar43;
  uVar23 = DAT_182671c94;
  lVar13 = DAT_182671c40;
  uVar48 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar36 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar19 ^ 0x2db8e5f8)) =
       (uVar44 ^ uVar39) << (bVar27 & 0x3f) ^ uVar48;
  puVar35 = (ulonglong *)(lVar13 - ((ulonglong)uVar15 ^ 0xcee9fb98));
  uVar56 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  uVar48 = uVar48 ^ *puVar9 | uVar43 ^ *puVar35;
  uVar39 = CONCAT44(uVar17,DAT_182671c68);
  *(ulonglong *)(lVar13 + -0x4b8) = uVar48 ^ uVar56;
  *puVar7 = (uVar39 ^ 0x84a308c171caa4d1) + (uVar29 ^ *puVar5);
  uVar15 = DAT_182671c80;
  uVar43 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar39 = (ulonglong)DAT_182671c4c;
  *puVar4 = (uVar55 ^ *puVar2) - uVar48 ^ uVar43;
  uVar19 = DAT_182671c64;
  uVar29 = (ulonglong)DAT_182671c64;
  *(uint *)(lVar13 - (uVar39 ^ 0x590a03c2)) = 0x575f6124 - (uVar23 ^ 0xd729c30);
  uVar48 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  puVar45 = (ulonglong *)(lVar13 - (uVar53 ^ 0x197934d8));
  *(ulonglong *)(lVar13 - ((ulonglong)uVar15 ^ 0x4ea7b90b)) =
       *(ulonglong *)(lVar13 - (uVar29 ^ 0x5c6bb076)) ^ uVar48 ^ uVar37 ^ uVar34 ^ *puVar45;
  uVar21 = DAT_182671c90;
  uVar15 = DAT_182671c48;
  bVar27 = (byte)DAT_182671c7c;
  *puVar3 = (CONCAT44(uVar20,DAT_182671c5c) ^ 0x1f38b6b99ece2a55) << (((byte)uVar19 ^ 0xf8) & 0x3f);
  uVar29 = CONCAT44(DAT_182671ce4,DAT_182671ce4);
  *puVar11 = (uVar48 ^ *puVar6) >> ((bVar27 ^ 0xdf) & 0x3f) ^ uVar29;
  lVar13 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0x3ae1b62)) =
       (uVar48 ^ *puVar6) << (((byte)uVar21 ^ 0xbd) & 0x3f) ^ uVar39;
  uVar18 = DAT_182671d8c;
  *(int *)(lVar13 + -0x61c) =
       *(int *)(lVar13 - ((ulonglong)uVar21 ^ 0x8a2016f1)) + *(int *)(lVar13 + -0x444);
  uVar34 = CONCAT44(uVar18,uVar18);
  uVar39 = *puVar1 ^ uVar39 | *puVar11 ^ uVar29;
  *puVar9 = uVar39 ^ uVar34;
  uVar18 = DAT_182671f30;
  uVar29 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *puVar5 = (uVar37 ^ *puVar10) - uVar39 ^ uVar29;
  uVar22 = DAT_182671c90;
  puVar52 = (ulonglong *)(lVar13 - ((ulonglong)DAT_182671c6c ^ 0xb6f651e3));
  uVar39 = (ulonglong)DAT_182671c84;
  *puVar52 = 0xbdd0866511a28a5f >> (((byte)DAT_182671c54 ^ 0x3b) & 0x3f);
  bVar27 = (byte)DAT_182671c50;
  uVar34 = *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x2db8e7f8)) ^ uVar43 ^ uVar30 ^ *puVar9 ^
           uVar34;
  *puVar2 = uVar34;
  bVar28 = (byte)DAT_182671c48;
  *puVar8 = (CONCAT44(uVar20,DAT_182671c4c) ^ 0xed146453b5f087e9) >> ((bVar27 ^ 0x69) & 0x3f);
  uVar49 = (*(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0xcee9f1c8)) ^ uVar30) >>
           ((bVar28 ^ 0x38) & 0x3f);
  *puVar6 = uVar49 ^ CONCAT44(DAT_182671e78,DAT_182671e78);
  *puVar11 = *puVar54 | 0xc2a1d60ed2f4e28c;
  uVar39 = (uVar30 ^ uVar34) << (((byte)DAT_182671c80 ^ 0x15) & 0x3f);
  *puVar1 = uVar39 ^ CONCAT44(DAT_182671d20,DAT_182671d20);
  lVar13 = DAT_182671c40;
  uVar49 = uVar49 | uVar39;
  uVar37 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  *puVar10 = uVar49 ^ uVar37;
  uVar39 = (ulonglong)DAT_182671c90;
  uVar34 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *puVar7 = (uVar43 ^ *puVar4) - uVar49 ^ uVar34;
  uVar19 = DAT_182671c68;
  uVar15 = DAT_182671c48;
  uVar49 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *puVar9 = *(ulonglong *)(lVar13 - ((ulonglong)DAT_182671c60 ^ 0x17ae753e)) ^
            *(ulonglong *)(lVar13 - (uVar39 ^ 0x8a201d85)) ^ uVar56 ^ uVar49 ^ uVar29;
  uVar43 = (*(ulonglong *)(lVar13 - ((ulonglong)uVar15 ^ 0x3ae1a22)) ^ uVar49) >>
           (((byte)uVar15 ^ 0x14) & 0x3f);
  *puVar8 = uVar43 ^ CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar24 = DAT_182671cd4;
  uVar30 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar39 = (*(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0xd790c238)) ^ uVar49) << ((byte)uVar23 & 0x3f)
  ;
  uVar49 = uVar39 ^ uVar30;
  *puVar11 = uVar49;
  *puVar3 = CONCAT44(uVar17,uVar50) ^ uVar49 ^ uVar30 ^ 0xbf11de1815dddd95;
  lVar13 = DAT_182671c40;
  uVar49 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar30 = CONCAT44(DAT_182671dcc,DAT_182671dcc);
  *puVar2 = (uVar43 | uVar39) ^ uVar49;
  *(ulonglong *)(lVar13 - ((ulonglong)DAT_182671c4c ^ 0x590a088e)) =
       (*puVar5 ^ uVar29) -
       (*(ulonglong *)(lVar13 - ((ulonglong)DAT_182671c4c ^ 0x590a03a6)) ^ uVar49) ^ uVar30;
  uVar15 = DAT_182671c60;
  uVar29 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *puVar1 = *puVar52 ^ uVar29 ^ uVar49 ^ uVar34 ^ *puVar2;
  uVar21 = DAT_182671c8c;
  bVar27 = (byte)DAT_182671c7c;
  uVar55 = (ulonglong)DAT_182671c8c;
  *puVar4 = (CONCAT44(uVar15,DAT_182671c5c) ^ 0xa1de7590c4ff61e4) >>
            ((*(byte *)puVar5 ^ (byte)uVar18) & 0x3f);
  uVar39 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar13 - (uVar55 ^ 0x3965db2)) =
       (*puVar1 ^ uVar29) >> ((bVar27 ^ 0xd1) & 0x3f) ^ uVar39;
  *puVar9 = 0x60aef742b538232d - (*puVar7 ^ uVar34);
  *puVar3 = (*puVar1 ^ uVar29) << 0x12 ^ uVar47;
  *(int *)(lVar13 + -0x76c) = *(int *)(lVar13 + -0x9dc) + *(int *)(lVar13 + -0x784);
  puVar52 = (ulonglong *)(lVar13 - ((ulonglong)DAT_182671c78 ^ 0x9d93d7ee));
  uVar43 = CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *puVar8 = (*(ulonglong *)(lVar13 + -0x4b8) ^ uVar39 | uVar47 ^ *puVar52) ^ uVar43;
  uVar29 = CONCAT44(DAT_182671df0,DAT_182671df0);
  puVar54 = (ulonglong *)(lVar13 - ((ulonglong)uVar19 ^ 0x4fa7d78b));
  *puVar54 = (*puVar7 ^ uVar34) - (*(ulonglong *)(lVar13 - (uVar53 ^ 0x19793e60)) ^ uVar43) ^ uVar29
  ;
  uVar49 = CONCAT44(DAT_182671eb0,DAT_182671eb0);
  bVar27 = (byte)DAT_182671c64;
  uVar37 = *(ulonglong *)(lVar13 - ((ulonglong)DAT_182671c48 ^ 0x3ae1d3a)) ^
           *(ulonglong *)(lVar13 - (uVar36 ^ 0x23af1872)) ^ uVar49 ^ uVar30 ^ uVar37;
  *puVar5 = uVar37;
  uVar34 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  *puVar4 = (uVar37 ^ uVar49) >> ((bVar27 ^ 0xfa) & 0x3f) ^ uVar34;
  uVar19 = DAT_182671c68;
  uVar18 = DAT_182671c5c;
  uVar15 = DAT_182671c50;
  lVar13 = DAT_182671c40;
  uVar39 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *puVar9 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c68 ^ 0x4fa7dba3)) ^ uVar49) <<
            0x34 ^ uVar39;
  *puVar35 = *(ulonglong *)(lVar13 - ((ulonglong)uVar15 ^ 0xa5b17d68)) ^ uVar34 |
             CONCAT44(uVar21,uVar18) ^ 0x98d026df37e328d8;
  uVar49 = CONCAT44(uVar22,DAT_182671c78);
  uVar34 = (uVar34 ^ *puVar4 | *puVar9 ^ uVar39) ^ uVar46;
  *(ulonglong *)(lVar13 + -0x4b8) = uVar34;
  *puVar3 = (uVar49 ^ 0xf8ea207555d9b350) << (((byte)uVar19 ^ 0xa5) & 0x3f);
  uVar19 = DAT_182671e88;
  uVar37 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  uVar53 = (*puVar6 ^ uVar30) -
           (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0xa5b170f0)) ^ uVar46);
  uVar39 = (ulonglong)DAT_182671e88;
  uVar47 = uVar53 ^ uVar37;
  *puVar7 = uVar47;
  uVar49 = uVar46 ^ CONCAT44(uVar19,uVar19) ^ uVar34 ^ uVar29 ^ *puVar2;
  *puVar10 = uVar49;
  uVar18 = DAT_182671c5c;
  uVar34 = (uVar49 ^ CONCAT44(uVar19,uVar19)) << 0x27;
  uVar39 = ((ulonglong)(uVar19 >> 0x19) | uVar39 << 7) ^ *puVar45 >> 0x19;
  *puVar5 = uVar39 ^ CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *puVar1 = uVar34 ^ CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar15 = DAT_182671c6c;
  uVar34 = uVar34 | uVar39;
  bVar27 = *(byte *)puVar11;
  uVar49 = (ulonglong)DAT_182671c6c;
  uVar48 = CONCAT44(DAT_182671f08,DAT_182671f08);
  *puVar4 = uVar34 ^ uVar48;
  *puVar9 = (CONCAT44(uVar16,uVar18) ^ 0x7fbf871e64c2bb3d) << ((bVar27 ^ (byte)uVar24) & 0x3f);
  lVar13 = DAT_182671c40;
  uVar39 = (ulonglong)DAT_182671c64;
  uVar49 = (*(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0xb6f65c5b)) ^ uVar29) -
           (*(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0xd790cb30)) ^
           CONCAT44(DAT_182671ec8,DAT_182671ec8));
  *puVar3 = uVar49 ^ CONCAT44(DAT_182671d34,DAT_182671d34);
  uVar30 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *puVar6 = uVar49 - (*(ulonglong *)(lVar13 - (uVar39 ^ 0x5c6bbfd6)) ^ uVar48) ^ uVar30;
  uVar39 = (CONCAT44(DAT_182671d50,DAT_182671d50) ^ *(ulonglong *)(lVar13 + -0xa50)) +
           (uVar31 ^ *(ulonglong *)(lVar13 + -0x2b0));
  *(ulonglong *)(lVar13 + -0x4b8) = uVar39 ^ uVar38;
  uVar29 = (ulonglong)DAT_182671e68;
  uVar49 = (ulonglong)DAT_182671c7c;
  uVar38 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *puVar10 = uVar34 - uVar39 ^ uVar44;
  lVar13 = DAT_182671c40;
  uVar43 = *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x65e32a7f)) ^ uVar38 ^ uVar37 ^ uVar47 ^ uVar43
  ;
  *puVar5 = uVar43;
  uVar49 = (uVar38 ^ uVar43) << 0x1f;
  *puVar1 = (uVar43 >> 0x20 ^ uVar29) >> 1 ^ uVar40;
  *(uint *)(lVar13 + -0x61c) = *(uint *)(lVar13 + -0x784) >> (((byte)DAT_182671c84 ^ 0xd7) & 0x1f);
  uVar39 = (ulonglong)DAT_182671c50;
  *puVar11 = uVar49 ^ CONCAT44(DAT_182671ed0,DAT_182671ed0);
  lVar14 = DAT_182671c40;
  puVar35 = (ulonglong *)(lVar13 - (uVar39 ^ 0xa5b17e28));
  uVar39 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  uVar29 = CONCAT44(DAT_182671d64,DAT_182671d64);
  *puVar9 = (uVar40 ^ *puVar35 | uVar49) ^ uVar39;
  uVar18 = DAT_182671d24;
  *puVar54 = uVar53 - (uVar32 ^ *(ulonglong *)(lVar14 + -0x380)) ^ uVar29;
  uVar16 = DAT_182671c80;
  uVar37 = CONCAT44(uVar18,uVar18);
  uVar34 = (uVar29 ^ *puVar2) - (*puVar9 ^ uVar39) ^ uVar37;
  *puVar3 = uVar34;
  uVar29 = (CONCAT44(uVar16,uVar17) ^ 0xb1584dece686c715) -
           (*(ulonglong *)(lVar14 - (uVar36 ^ 0x23af18b2)) ^ uVar41);
  *puVar4 = uVar29 ^ CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar49 = CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar39 = (*puVar9 ^ uVar39) + uVar29 ^ uVar49;
  *puVar8 = uVar39;
  uVar39 = uVar51 ^ uVar39 ^ *puVar6 ^ uVar49 ^ uVar30;
  *puVar5 = uVar39;
  uVar49 = (uVar51 ^ uVar39) >> (((byte)uVar15 ^ 0x6e) & 0x3f);
  uVar39 = (ulonglong)DAT_182671c78;
  *puVar1 = uVar49 ^ CONCAT44(DAT_182671e38,DAT_182671e38);
  uVar32 = CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar39 = (*(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x9d93dc96)) ^ uVar51) <<
           (((byte)uVar21 ^ 0x31) & 0x3f);
  *puVar11 = uVar39 ^ uVar32;
  lVar13 = DAT_182671c40;
  uVar49 = uVar49 | uVar39;
  uVar43 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *puVar7 = uVar49 ^ uVar43;
  *(ulonglong *)(lVar13 + -0x380) = CONCAT44(uVar16,uVar15) ^ 0xae0621d6c8a625cf | uVar49;
  *puVar2 = (*puVar6 ^ uVar30) - (*(ulonglong *)(lVar13 - (uVar36 ^ 0x23af1ee2)) ^ uVar43) ^ uVar32;
  *(ulonglong *)(lVar13 - (uVar55 ^ 0x396522a)) =
       *(ulonglong *)(lVar13 - (uVar33 ^ 0xd790c520)) ^ uVar44 ^ uVar31 ^ uVar34 ^ uVar37;
  uVar30 = (uVar31 ^ *puVar9) << (((byte)DAT_182671c4c ^ 0x8d) & 0x3f);
  uVar49 = (*puVar9 >> 0x20 ^ (ulonglong)DAT_182671e8c) >> 5;
  *puVar4 = uVar49 ^ CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar29 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *puVar8 = uVar30 ^ CONCAT44(DAT_182671fb0,DAT_182671fb0);
  bVar27 = (byte)DAT_182671c90;
  uVar39 = (ulonglong)DAT_182671c90;
  uVar30 = uVar30 | uVar49;
  *puVar5 = uVar30 ^ uVar29;
  lVar13 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *puVar11 = (*(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x8a2016fd)) ^ uVar37) - uVar30 ^ uVar31;
  lVar14 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *puVar35 = *(ulonglong *)(lVar13 - ((ulonglong)DAT_182671c54 ^ 0x168c5c1c)) ^ uVar42 ^ uVar29 ^
             uVar32 ^ *puVar2;
  uVar39 = *puVar1;
  *(ulonglong *)(lVar14 + -0x380) = (uVar42 ^ *puVar1) >> ((bVar27 ^ 0x8a) & 0x3f) ^ uVar30;
  uVar29 = CONCAT44(DAT_182671f04,DAT_182671f04);
  uVar49 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0xb6f65773)) =
       (uVar42 ^ uVar39) << 0x29 ^ uVar29;
  uVar18 = DAT_182671ecc;
  uVar49 = *(ulonglong *)(DAT_182671c40 - (uVar49 ^ 0x9d93d30e)) ^ uVar30 |
           *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c60 ^ 0x17ae7a9e)) ^ uVar29;
  *puVar10 = uVar49 ^ CONCAT44(DAT_182671f34,DAT_182671f34);
  uVar39 = (ulonglong)DAT_182671e40;
  uVar42 = CONCAT44(DAT_182671e40,DAT_182671e40);
  *puVar9 = (uVar32 ^ *puVar2) - uVar49 ^ CONCAT44(uVar18,uVar18);
  uVar18 = DAT_182671c88;
  uVar30 = uVar42 ^ uVar31 ^ uVar43 ^ *puVar7 ^ *puVar11;
  *puVar4 = uVar30;
  uVar25 = DAT_182671f1c;
  uVar24 = DAT_182671d38;
  uVar49 = (uVar30 >> 0x20 ^ uVar39) >> 8;
  *puVar8 = uVar49 ^ CONCAT44(DAT_182671e18,DAT_182671e18);
  uVar39 = CONCAT44(uVar24,uVar24);
  *puVar3 = (uVar42 ^ uVar30) << (((byte)uVar18 ^ 0x1f) & 0x3f) ^ uVar39;
  *puVar5 = (uVar49 | uVar39 ^ *puVar52) ^ CONCAT44(uVar25,uVar25);
  *puVar1 = CONCAT44(uVar20,DAT_182671c7c) ^ *puVar6 ^ uVar29 ^ 0x8d234835aae02841;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar12 ^ uVar50) * 4) = uVar26;
  return;
}



############ FUN_ 18102fac0 size=3498 ############

void FUN_18102fac0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte *pbVar29;
  ulonglong *puVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte local_res8;
  byte local_res20;
  ulonglong uVar15;
  
  uVar10 = DAT_182671c90;
  uVar8 = DAT_182671c7c;
  uVar5 = DAT_182671c78;
  uVar6 = DAT_182671c5c;
  uVar4 = DAT_182671c4c;
  uVar3 = DAT_182671c48;
  lVar1 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671c5c;
  uVar13 = DAT_182671c48 - DAT_182671c5c;
  uVar15 = (ulonglong)uVar13;
  uVar33 = (ulonglong)DAT_182671c7c;
  uVar34 = (ulonglong)DAT_182671c90;
  uVar22 = (ulonglong)DAT_182671c78;
  uVar23 = (ulonglong)DAT_182671c4c;
  uVar24 = *(uint *)(&DAT_182613218 + DAT_18267213c) ^ DAT_182671c48;
  uVar31 = DAT_182671c6c ^ DAT_182671c4c;
  uVar25 = DAT_182671c7c * DAT_182671c90;
  uVar27 = DAT_182671c78 << 0x10 | DAT_182671c78 >> 0x10;
  uVar14 = *(uint *)(&DAT_182613210 + (uVar15 ^ 0x8c72b1fb) + (longlong)DAT_18267213c) ^
           DAT_182671c5c;
  uVar36 = (ulonglong)uVar27;
  DAT_182671c54 = uVar31;
  DAT_182671c68 = uVar27;
  DAT_182671c84 = uVar25;
  DAT_182671c8c = uVar13;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       (CONCAT44(DAT_182671c78,uVar27) ^ 0x6b928e3f47e453a2) <<
       ((byte)*(undefined8 *)(DAT_182671c40 + -0x4b8) & 0x3f);
  uVar16 = (ulonglong)uVar31;
  uVar32 = (ulonglong)DAT_182671eb8;
  *(undefined8 *)(lVar1 - (uVar23 ^ 0x3fbfc437)) = *(undefined8 *)(lVar1 - (uVar16 ^ 0x40001010));
  *(undefined8 *)(lVar1 + -0x580) = *(undefined8 *)(lVar1 + -0x8f8);
  uVar9 = DAT_182671dc8;
  lVar2 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671dc8;
  *(uint *)(lVar1 - ((ulonglong)uVar25 ^ 0x304882a9)) =
       (*(uint *)(lVar1 + -0xae4) ^ DAT_182671dc8) + (DAT_182671c6c ^ 0xe714e4c3);
  uVar7 = DAT_182671da4;
  uVar18 = (ulonglong)DAT_182671da4;
  *(ulonglong *)(lVar1 + -0xa90) = *(ulonglong *)(lVar1 + -0xc00) ^ uVar32;
  uVar28 = (ulonglong)uVar7 ^ *(ulonglong *)(lVar2 + -0x580);
  uVar17 = (ulonglong)DAT_182671ee0;
  *(ulonglong *)(lVar2 + -0x830) = uVar28;
  bVar20 = (byte)DAT_182671e88;
  lVar1 = DAT_182671c40;
  pbVar29 = (byte *)(uVar28 ^ uVar18);
  *(byte *)(DAT_182671c40 + -0x8a9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xb0) ^ uVar17) ^ (byte)DAT_182671d18;
  *(byte **)(lVar1 + -0xd40) = pbVar29 + 1;
  *(byte *)(lVar1 + -0xc9d) = *pbVar29 ^ bVar20 ^ (byte)DAT_182671d18;
  *(undefined1 *)(*(ulonglong *)(lVar1 + -0xba8) ^ (ulonglong)DAT_182671d40) = 0x61;
  pbVar29 = (byte *)(uVar32 ^ *(ulonglong *)(lVar1 + -0xa90));
  *(byte **)(lVar1 + -0x208) = pbVar29 + (CONCAT44(uVar8,uVar27) ^ 0xfc8dce9dffbffcde);
  *pbVar29 = bVar20 ^ *(byte *)(lVar1 + -0xc9d);
  uVar27 = DAT_182671f90;
  lVar1 = DAT_182671c40;
  uVar32 = (ulonglong)DAT_182671f90;
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       (CONCAT44(uVar10,uVar31) ^ 0x9d13cccbcf85d2a2) + *(longlong *)(DAT_182671c40 + -0x920);
  *(undefined8 *)(lVar1 + -0xca8) = *(undefined8 *)(lVar1 + -0x208);
  *(undefined8 *)(lVar1 - (uVar35 ^ 0x608d4ccc)) = *(undefined8 *)(lVar1 + -0xd40);
  uVar28 = (ulonglong)DAT_182671cb4;
  *(uint *)(lVar1 + -0x54) = (*(uint *)(lVar1 + -0x5d4) ^ DAT_182671ea4) * (uVar4 ^ 0x80ce7721);
  uVar7 = DAT_182671c6c;
  uVar18 = (ulonglong)DAT_182671c6c;
  local_res20 = (byte)uVar13;
  *(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0x400016a0)) =
       *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c6c ^ 0x7fbfd797)) ^ uVar32;
  *(longlong *)(DAT_182671c40 + -0x760) =
       *(longlong *)(DAT_182671c40 + -0x628) << ((local_res20 ^ 0xee) & 0x3f);
  uVar17 = (ulonglong)DAT_182671d2c;
  puVar30 = (ulonglong *)(DAT_182671c40 + -0x2d8);
  *(ulonglong *)(DAT_182671c40 + -0xcb0) = *puVar30 ^ uVar17;
  *(ulonglong *)(DAT_182671c40 + -0x130) = (CONCAT44(uVar31,uVar31) ^ 0x4000130840001309) + *puVar30
  ;
  *(byte *)(DAT_182671c40 - (uVar33 ^ 0xfc8dc45c)) =
       *(byte *)(*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar25 ^ 0x30488ab5)) ^ uVar17) ^
       (byte)DAT_182671fb4 ^ (byte)DAT_182671d18;
  uVar11 = DAT_182671f24;
  lVar1 = DAT_182671c40;
  *(byte *)(*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xffbff1ef)) ^ uVar28) = (byte)uVar3 ^ 0xe8;
  uVar12 = DAT_182671f84;
  pbVar29 = (byte *)(*(ulonglong *)(lVar1 + -0x5a8) ^ uVar32);
  *(byte **)(lVar1 + -0x5e0) = pbVar29 + (CONCAT44(uVar6,uVar8) ^ 0x608d4e14fc8dce9c);
  *pbVar29 = *(byte *)(lVar1 + -0xac1) ^ (byte)DAT_182671fb4;
  uVar17 = (ulonglong)DAT_182671eb0;
  *(ulonglong *)(lVar1 + -0xa70) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar18 ^ 0x7fbfd657)) ^ CONCAT44(uVar12,uVar12)) ^
       CONCAT44(uVar11,uVar11);
  *(undefined8 *)(lVar1 + -0x4a0) = *(undefined8 *)(lVar1 + -0x5e0);
  *(undefined8 *)(lVar1 - ((ulonglong)uVar10 ^ 0xdc8c8e69)) = *(undefined8 *)(lVar1 + -0x130);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xfcdff3d7)) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xecfffb5f)) ^ uVar17;
  *(ulonglong *)(lVar1 + -0x2b8) = *(ulonglong *)(lVar1 + -0xae0) ^ uVar26;
  uVar5 = DAT_182671cd4;
  uVar28 = (ulonglong)DAT_182671cd4;
  *(ulonglong *)(lVar1 + -0x710) =
       (CONCAT44(uVar6,uVar13) ^ 0x608d4e148c72b1ea) + *(ulonglong *)(lVar1 + -0xae0);
  bVar20 = (byte)DAT_182671d18;
  local_res8 = (byte)uVar25;
  *(byte *)(lVar1 + -0x889) =
       *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x3fbfca8f)) ^ (ulonglong)uVar9) ^
       (byte)uVar5 ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar1 + -0x908) ^ (ulonglong)DAT_182671d48) = local_res8 ^ 0x13;
  pbVar29 = (byte *)(*(ulonglong *)(lVar1 + -0xc68) ^ uVar17);
  uVar17 = (ulonglong)DAT_182671dd8;
  *(byte **)(lVar1 + -0xd80) = pbVar29 + (CONCAT44(uVar8,uVar31) ^ 0xfc8dce9d40001309);
  uVar26 = (ulonglong)DAT_182671ed8;
  *pbVar29 = *(byte *)(lVar1 + -0x889) ^ (byte)uVar5;
  *(undefined8 *)(lVar1 - (uVar15 ^ 0x8c72b3cb)) = *(undefined8 *)(lVar1 + -0xd80);
  uVar9 = DAT_182671c80;
  uVar5 = DAT_182671c50;
  uVar21 = DAT_182671c80 - DAT_182671c50;
  uVar38 = (ulonglong)DAT_182671c50;
  uVar32 = (ulonglong)DAT_182671c80;
  DAT_182671c88 = uVar21;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar21 ^ 0x90cd616)) =
       *(ulonglong *)(lVar1 + -0x888) >> (((byte)DAT_182671c50 ^ 4) & 0x3f);
  *(ulonglong *)(lVar1 + -0xd48) = *(ulonglong *)(lVar1 + -0x710);
  *(ulonglong *)(lVar1 + -0xc0) = *(ulonglong *)(lVar1 + -0x220) ^ uVar26;
  *(ulonglong *)(lVar1 + -0x38) = uVar17 ^ *(ulonglong *)(lVar1 + -0x710);
  *(byte *)(lVar1 + -0xc71) =
       *(byte *)(*(ulonglong *)(lVar1 + -0xb68) ^ (ulonglong)DAT_182671d04) ^ bVar20;
  *(ulonglong *)(lVar1 + -0x800) = (*(ulonglong *)(lVar1 - (uVar38 ^ 0x5bc59638)) ^ uVar17) + 1;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar21 ^ 0x90cd63e)) =
       (CONCAT44(uVar9,uVar21) ^ 0x6962e3e3049a7e9) >>
       ((byte)*(undefined8 *)(lVar1 + -0xb20) & 0x3f);
  uVar8 = DAT_182671c74;
  uVar37 = (ulonglong)DAT_182671c74;
  *(byte *)(lVar1 + -0x27e) =
       *(byte *)(uVar17 ^ *(ulonglong *)(lVar1 + -0x38)) ^ (byte)uVar27 ^ bVar20;
  *(undefined1 *)
   (*(ulonglong *)(lVar1 - ((ulonglong)uVar21 ^ 0x90cdc5e)) ^ (ulonglong)DAT_182671ec0) = 0xe6;
  pbVar29 = (byte *)(*(ulonglong *)(lVar1 + -0xc0) ^ uVar26);
  uVar26 = (ulonglong)DAT_182671dfc;
  *(byte **)(lVar1 + -0xbc0) = pbVar29 + (CONCAT44(uVar5,uVar21) ^ 0x5bc59600090cdd37);
  *pbVar29 = (byte)uVar27 ^ *(byte *)(lVar1 + -0x27e);
  uVar27 = DAT_182671ccc;
  uVar35 = (ulonglong)DAT_182671ccc;
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x64d27f0e)) =
       *(ulonglong *)(lVar1 + -0x4b8) | 0x2e47a7ba88b3d2ee;
  uVar17 = *(ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0x64d278f6));
  *(ulonglong *)(lVar1 + -0x5a0) = uVar17;
  *(ulonglong *)(lVar1 + -0x640) = uVar35 ^ uVar17;
  *(ulonglong *)(lVar1 + -0xbe0) = *(ulonglong *)(lVar1 + -0x800);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x64d27b2e)) = uVar26 ^ *(ulonglong *)(lVar1 + -0x800);
  lVar2 = DAT_182671c40;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar21 ^ 0x90cd93e)) = 0xea7afbcfecd31960;
  uVar19 = (uVar8 << 0x10 | uVar8 & 0xff00) << 8 | uVar8 >> 8 & 0xff00 | DAT_182671c74 >> 0x18;
  DAT_182671c94 = uVar19;
  *(ulonglong *)(lVar2 + -0xbb0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x9f7ff1e3)) ^ uVar26) +
       (CONCAT44(uVar8,uVar19) ^ 0xfbf97f9f9f7ff9fa);
  uVar32 = (ulonglong)DAT_182671dcc;
  *(byte *)(lVar2 + -0x3d9) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xfbf97787)) ^ uVar26) ^
       (byte)DAT_182671e90 ^ (byte)DAT_182671d18;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x6c8) ^ uVar28) = 0x80;
  puVar30 = (ulonglong *)(lVar2 - (uVar37 ^ 0xfbf979df));
  *(ulonglong *)(lVar2 + -0x198) =
       (CONCAT44(uVar19,uVar8) ^ 0x9f7ff9fbfbf97f9e) + ((ulonglong)uVar27 ^ *puVar30);
  *(byte *)(DAT_182671c40 - (uVar38 ^ 0x5bc590e9)) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0x9f7ffd73)) ^ uVar32) ^
       (byte)DAT_182671d18;
  lVar1 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671f9c;
  *(byte *)(uVar35 ^ *puVar30) = *(byte *)(DAT_182671c40 + -0x3d9) ^ (byte)DAT_182671e90;
  uVar26 = (ulonglong)DAT_182671de4;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar5 ^ 0x5bc59668)) = *(undefined8 *)(lVar1 + -0x198);
  *(undefined8 *)(lVar1 + -0x9f8) = *(undefined8 *)(lVar1 + -0xbb0);
  *(ulonglong *)(lVar1 + -0x500) = *(ulonglong *)(lVar1 - (uVar34 ^ 0xdc8c84e1)) ^ uVar26;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xffbfffdf)) =
       *(ulonglong *)(lVar1 - (uVar36 ^ 0xffbff527)) ^ uVar28;
  uVar17 = (ulonglong)DAT_182671dac;
  *(ulonglong *)(lVar2 + -0x3c0) =
       (CONCAT44(uVar21,uVar3) ^ 0x90cdd36ecfffffe) + (*(ulonglong *)(lVar2 + -0x300) ^ uVar28);
  *(byte *)(lVar2 - ((ulonglong)uVar19 ^ 0x9f7ffb98)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x3f8) ^ uVar17) ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 - ((ulonglong)uVar8 ^ 0xfbf97e1e)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar18 ^ 0x7fbfd83f)) ^ uVar28) ^ (byte)DAT_182671d94 ^
       (byte)DAT_182671d18;
  *(char *)(*(ulonglong *)(lVar2 + -0x5d0) ^ (ulonglong)DAT_182671d30) = (char)DAT_182671c5c;
  *(byte *)(lVar2 - (uVar22 ^ 0xfcdffe3c)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x488) ^ uVar32) ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x3fbfcf0f)) =
       (CONCAT44(uVar4,uVar7) ^ 0x3fbfc8377fbfdb3e) + (*(ulonglong *)(lVar2 + -0x500) ^ uVar26);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar36 ^ 0xffbff9df)) ^ uVar26) =
       *(byte *)(lVar2 + -0x181) ^ (byte)DAT_182671d94;
  uVar18 = (ulonglong)DAT_182671d14;
  uVar22 = (ulonglong)DAT_182671cb4;
  *(undefined8 *)(lVar2 + -0x3b0) = *(undefined8 *)(lVar2 + -0x3c0);
  *(ulonglong *)(lVar2 + -0x7a8) = *(ulonglong *)(lVar2 + -0x738);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x64d27996)) = uVar18 ^ *(ulonglong *)(lVar2 + -0x738);
  *(ulonglong *)(lVar2 + -0xd18) = uVar22 ^ (ulonglong)*(byte **)(lVar2 + -0x3b0);
  *(ulonglong *)(lVar2 + -0x510) =
       CONCAT44(uVar13,uVar5) ^ CONCAT44(uVar4,uVar8) ^ 0x26c2905acbf60844;
  uVar17 = *(ulonglong *)(lVar2 - (uVar34 ^ 0xdc8c8991));
  *(int *)(lVar2 + -0x1c8) = -0x8a05d5 >> ((local_res8 ^ 7) & 0x1f);
  *(ulonglong *)(lVar2 + -0x170) = (uVar17 ^ uVar22) + 1;
  bVar20 = (byte)DAT_182671c6c;
  *(byte *)(lVar2 - ((ulonglong)uVar3 ^ 0xecfffc4e)) =
       **(byte **)(lVar2 + -0x3b0) ^ (byte)DAT_182671d34 ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar2 + -0xc80) ^ (ulonglong)DAT_182671f2c) = bVar20 ^ 0xcd;
  pbVar29 = (byte *)(*(ulonglong *)(lVar2 + -0xaa0) ^ uVar18);
  *(byte **)(lVar2 + -0xa20) = pbVar29 + (CONCAT44(uVar31,uVar7) ^ 0x400013087fbfdb3e);
  *(longlong *)(lVar2 + -0xa08) =
       0x2a58a3131f182acd << ((byte)*(undefined8 *)(lVar2 - (uVar33 ^ 0xfc8dce6d)) & 0x3f);
  *pbVar29 = *(byte *)(lVar2 + -0x3b1) ^ (byte)DAT_182671d34;
  uVar18 = (ulonglong)DAT_182671f40;
  *(undefined8 *)(lVar2 - (uVar15 ^ 0x8c72b503)) = *(undefined8 *)(lVar2 + -0xa20);
  *(uint *)(lVar2 + -0x27c) = (uVar8 ^ 0x67bb6d81) + *(int *)(lVar2 + -0x634);
  *(undefined8 *)(lVar2 - (uVar16 ^ 0x40001e28)) = *(undefined8 *)(lVar2 + -0x170);
  *(byte *)(lVar2 + -0x261) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xd18) ^ uVar22) ^ (byte)DAT_182671d18;
  uVar17 = (ulonglong)DAT_182671e08;
  *(ulonglong *)(lVar2 + -0xe0) = *(ulonglong *)(lVar2 - (uVar37 ^ 0xfbf97b77)) ^ uVar18;
  pbVar29 = *(byte **)(lVar2 + -0xd20);
  *(ulonglong *)(lVar2 + -0x60) = (ulonglong)pbVar29 ^ uVar17;
  *(byte **)(lVar2 + -0x440) = pbVar29 + (CONCAT44(uVar31,uVar10) ^ 0x40001308dc8c8488);
  bVar20 = (byte)DAT_182671d5c;
  *(byte *)(lVar2 + -0x341) = (byte)DAT_182671d5c ^ *pbVar29 ^ (byte)DAT_182671d18;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x350) ^ (ulonglong)DAT_182671d1c) = 0x77;
  *(ulonglong *)(lVar2 + -0x228) =
       CONCAT44(uVar4,uVar9) ^ *(ulonglong *)(lVar2 + -0x510) ^ 0xf097a68d123708c1;
  *(ulonglong *)(lVar2 + -0x270) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0xfc8dce7d)) ^ uVar18) +
       (CONCAT44(uVar6,uVar25) ^ 0x608d4e1430488604);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar16 ^ 0x400013e8)) ^ uVar18) =
       bVar20 ^ *(byte *)(lVar2 + -0x341);
  *(undefined8 *)(lVar2 + -0x2a8) = *(undefined8 *)(lVar2 + -0x270);
  *(ulonglong *)(lVar2 + -0xc90) =
       (CONCAT44(uVar19,uVar7) ^ 0x584d359f5f2199a5) + *(longlong *)(lVar2 + -0x3d8);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar14 * 4) = uVar24;
  return;
}



############ FUN_ 181029b00 size=5648 ############

void FUN_181029b00(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong *puVar61;
  uint uVar62;
  ulonglong uVar63;
  ulonglong uVar64;
  ulonglong uVar65;
  byte local_168;
  byte local_130;
  ulonglong uVar51;
  
  uVar13 = DAT_182671c94;
  uVar10 = DAT_182671c7c;
  uVar9 = DAT_182671c70;
  uVar8 = DAT_182671c6c;
  uVar7 = DAT_182671c60;
  uVar6 = DAT_182671c58;
  uVar5 = DAT_182671c50;
  uVar3 = DAT_182671c48;
  lVar1 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c48;
  DAT_182671c80 = DAT_182671c4c * DAT_182671c50;
  uVar62 = DAT_182671c90 * DAT_182671c48;
  DAT_182671c64 = DAT_182671c58 - DAT_182671c70;
  uVar45 = (ulonglong)DAT_182671c7c;
  DAT_182671c78 = DAT_182671c88 ^ DAT_182671c7c;
  uVar18 = *(uint *)(&DAT_182613210 + (uVar45 ^ 0x27867973) + (longlong)DAT_182672128) ^
           DAT_182671c88;
  uVar19 = *(uint *)(&DAT_182613220 + DAT_182672128) ^ DAT_182671c78;
  uVar38 = (ulonglong)DAT_182671c6c;
  uVar21 = (ulonglong)DAT_182671c94;
  uVar46 = (ulonglong)DAT_182671c5c;
  DAT_182671c84 = DAT_182671c94 + DAT_182671c6c;
  uVar25 = (ulonglong)DAT_182671c84;
  uVar54 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  bVar24 = (byte)DAT_182671c84;
  uVar31 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar39 = (ulonglong)DAT_182671c60;
  uVar50 = DAT_182671c60 + DAT_182671c5c;
  uVar51 = (ulonglong)uVar50;
  DAT_182671c74 = uVar50;
  DAT_182671c8c = uVar62;
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x15310f2f)) =
       (uVar54 ^ *(ulonglong *)(DAT_182671c40 + -0x3d8)) >> ((bVar24 ^ 0x6f) & 0x3f) ^ uVar31;
  uVar4 = DAT_182671d7c;
  uVar22 = CONCAT44(DAT_182671e04,DAT_182671e04);
  uVar20 = (uVar54 ^ *(ulonglong *)(lVar1 + -0x3d8)) << 0x2a;
  *(ulonglong *)(lVar1 + -0xc90) = uVar20 ^ uVar22;
  uVar15 = DAT_182671ea4;
  uVar55 = CONCAT44(uVar4,uVar4);
  uVar20 = uVar31 ^ *(ulonglong *)(lVar1 + -0x920) | uVar20;
  uVar26 = uVar20 ^ uVar55;
  *(ulonglong *)(lVar1 + -0x408) = uVar26;
  uVar14 = DAT_182671d1c;
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar34 = CONCAT44(DAT_182671e34,DAT_182671e34);
  *(ulonglong *)(lVar1 + -0xb18) = (uVar32 ^ *(ulonglong *)(lVar1 + -0x228)) - uVar20 ^ uVar34;
  lVar1 = DAT_182671c40;
  uVar60 = CONCAT44(uVar14,uVar14);
  uVar56 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  puVar23 = (ulonglong *)(DAT_182671c40 - (uVar39 ^ 0xa1a7ab3e));
  *puVar23 = uVar56 ^ uVar60 ^ uVar55 ^ uVar26 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar47 = CONCAT44(DAT_182671e24,DAT_182671e24);
  uVar27 = (uVar60 ^ *(ulonglong *)(lVar1 + -0xa78)) >> (((byte)uVar50 ^ 0xf0) & 0x3f);
  *(ulonglong *)(lVar1 + -0x3d8) = uVar27 ^ uVar47;
  lVar2 = DAT_182671c40;
  uVar26 = (ulonglong)uVar9;
  *(uint *)(lVar1 + -0xae4) =
       (DAT_182671c64 ^ 0x2022f083) << ((byte)*(undefined4 *)(lVar1 - (uVar26 ^ 0x4b358b89)) & 0x1f)
  ;
  uVar14 = DAT_182671f58;
  uVar20 = (uVar60 ^ *(ulonglong *)(lVar1 + -0xa78)) << 0x12;
  *(ulonglong *)(lVar1 + -0x920) = uVar20 ^ uVar32;
  lVar1 = DAT_182671c40;
  uVar40 = CONCAT44(uVar14,uVar14);
  puVar36 = (ulonglong *)(lVar2 - (uVar38 ^ 0x15310a9f));
  uVar32 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *puVar36 = (uVar27 | uVar20) ^ uVar40;
  uVar4 = DAT_182671e58;
  uVar52 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar50 ^ 0xef599ff6)) =
       (uVar56 ^ *(ulonglong *)(lVar1 + -0xbd8)) - (uVar40 ^ *(ulonglong *)(lVar1 + -0xc90)) ^
       uVar32;
  uVar41 = CONCAT44(DAT_182671cec,DAT_182671cec);
  uVar27 = (ulonglong)uVar62;
  uVar48 = *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x22af1e72)) ^ uVar34 ^
           *(ulonglong *)(lVar1 + -0xb18) ^ uVar41;
  uVar57 = CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar20 = uVar48 ^ uVar52;
  *(ulonglong *)(lVar1 + -0x408) = uVar20;
  uVar14 = DAT_182671c98;
  uVar56 = (ulonglong)uVar6;
  uVar20 = ((ulonglong)uVar4 << 0x14 | (ulonglong)(uVar4 >> 0xc)) ^ uVar20 >> 0xc;
  *(ulonglong *)(lVar1 + -0xa78) = uVar20 ^ uVar57;
  uVar63 = CONCAT44(uVar14,uVar14);
  uVar28 = CONCAT44(DAT_182671d28,DAT_182671d28);
  *(ulonglong *)(lVar1 + -0x920) = uVar48 << (((byte)uVar62 ^ 0xc6) & 0x3f) ^ uVar63;
  uVar20 = *(ulonglong *)(lVar1 - (uVar56 ^ 0x2f4e61df)) ^ uVar63 | uVar20;
  uVar48 = uVar20 ^ uVar28;
  *(ulonglong *)(lVar1 + -0x3d8) = uVar48;
  puVar42 = (ulonglong *)(lVar1 - (uVar26 ^ 0x4b3587fd));
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = (uVar34 ^ *puVar42) - uVar20 ^ uVar54;
  uVar14 = DAT_182671ecc;
  uVar12 = DAT_182671c90;
  lVar1 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671e10,DAT_182671e10);
  uVar34 = uVar20 ^ uVar28 ^ uVar32 ^ uVar48 ^ *(ulonglong *)(DAT_182671c40 + -0x228);
  uVar48 = (ulonglong)uVar5;
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar34;
  uVar15 = DAT_182671ec0;
  uVar28 = (uVar34 ^ uVar20) >> (((byte)uVar5 ^ 0x70) & 0x3f);
  *(ulonglong *)(lVar1 + -0x408) = uVar28 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182671dd8;
  uVar20 = (uVar34 ^ uVar20) << 0x27;
  *(ulonglong *)(lVar1 + -0xa78) = uVar20 ^ CONCAT44(uVar15,uVar15);
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar12 ^ 0xf37d3e95)) = (uVar28 | uVar20) ^ uVar43;
  uVar15 = DAT_182671f94;
  uVar28 = CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar20 = (uVar32 ^ *(ulonglong *)(lVar1 + -0x228)) - (*(ulonglong *)(lVar1 + -0xc38) ^ uVar28);
  *(ulonglong *)(lVar1 + -0xb18) = uVar20 ^ uVar60;
  uVar14 = DAT_182671db0;
  uVar58 = CONCAT44(uVar15,uVar15);
  puVar61 = (ulonglong *)(lVar1 - (uVar46 ^ 0x4db1ff40));
  *puVar61 = uVar20 - (uVar43 ^ *(ulonglong *)(lVar1 + -0x920)) ^ uVar58;
  uVar11 = DAT_182671c80;
  lVar1 = DAT_182671c40;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar29 = CONCAT44(DAT_182671dfc,DAT_182671dfc);
  uVar20 = (*(ulonglong *)(DAT_182671c40 + -0x5e8) ^ uVar35) +
           (*(ulonglong *)(DAT_182671c40 + -0x30) ^ uVar63);
  uVar60 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(DAT_182671c40 + -0xc18) = uVar20 ^ uVar29;
  *(ulonglong *)(lVar1 + -0x408) = (uVar43 ^ *(ulonglong *)(lVar1 + -0x920)) - uVar20 ^ uVar35;
  uVar34 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar1 - (uVar25 ^ 0x38e01301)) =
       *(ulonglong *)(lVar1 - (uVar60 ^ 0xb3d72bdf)) ^ uVar54 ^ *(ulonglong *)(lVar1 + -0xbd8) ^
       uVar34 ^ uVar40;
  uVar4 = DAT_182671c4c;
  uVar20 = CONCAT44(DAT_182671d6c,DAT_182671d6c);
  *(ulonglong *)(lVar1 + -0x228) =
       (uVar34 ^ *(ulonglong *)(lVar1 + -0xa78)) >> (((byte)uVar12 ^ 0x94) & 0x3f) ^ uVar20;
  uVar53 = CONCAT44(DAT_182671d24,DAT_182671d24);
  uVar34 = (uVar34 ^ *(ulonglong *)(lVar1 + -0xa78)) << 0x1f ^ uVar53;
  *(ulonglong *)(lVar1 + -0xb18) = uVar34;
  *(ulonglong *)(lVar1 - (uVar27 ^ 0xbe7ec3d2)) =
       CONCAT44(uVar10,uVar4) ^ uVar34 ^ uVar53 ^ 0xb2c3bc0c270447ed;
  uVar14 = DAT_182671df0;
  uVar60 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(lVar1 + -0xc90) =
       (*(ulonglong *)(lVar1 - (uVar33 ^ 0x22af1042)) ^ uVar20 |
       *(ulonglong *)(lVar1 + -0xb18) ^ uVar53) ^ uVar60;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0xa78) =
       (uVar54 ^ *(ulonglong *)(lVar1 + -0xbd8)) - (*(ulonglong *)(lVar1 + -0xa50) ^ uVar34) ^
       uVar35;
  uVar10 = DAT_182671c78;
  bVar17 = (byte)uVar11;
  *(ulonglong *)(DAT_182671c40 - (uVar21 ^ 0x23af1a4a)) =
       (CONCAT44(uVar7,DAT_182671c78) ^ 0x5d123428cfab11b8) >> ((bVar17 ^ 0x6e) & 0x3f);
  uVar15 = DAT_182671e64;
  uVar14 = DAT_182671de4;
  lVar1 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671e64,DAT_182671e64);
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (uVar35 ^ *(ulonglong *)(DAT_182671c40 + -0xa78)) - (*puVar36 ^ uVar60) ^ uVar30;
  uVar65 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0xa50) =
       (CONCAT44(uVar10,DAT_182671c4c) ^ 0xe96f888361c01100) -
       (*(ulonglong *)(lVar1 + -0xd88) ^ uVar60) ^ uVar65;
  uVar16 = DAT_182671f08;
  *(ulonglong *)(lVar1 + -0xbd8) =
       (*(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c88 ^ 0x31160457)) ^ uVar65) +
       (uVar60 ^ *(ulonglong *)(lVar1 + -0xc90)) ^ uVar60;
  uVar14 = DAT_182671e74;
  uVar4 = DAT_182671c64;
  uVar64 = CONCAT44(uVar16,uVar16);
  uVar20 = *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c80 ^ 0xb3d72497)) ^
           *(ulonglong *)(lVar1 - (uVar56 ^ 0x2f4e6327)) ^ uVar64 ^ uVar60 ^ uVar58;
  *(ulonglong *)(lVar1 + -0x920) = uVar20;
  uVar59 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0xe418d662)) =
       (uVar20 ^ uVar64) >> (((byte)uVar62 ^ 0xf7) & 0x3f) ^ uVar59;
  lVar2 = DAT_182671c40;
  puVar44 = (ulonglong *)(lVar1 - (uVar26 ^ 0x4b3585c5));
  *(ulonglong *)(lVar1 - (uVar45 ^ 0x2786732b)) =
       (uVar64 ^ *puVar44) << (((byte)uVar10 ^ 0x47) & 0x3f) ^ uVar28;
  uVar37 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar2 + -0xc90) =
       (*(ulonglong *)(DAT_182671c40 + -0xa50) ^ uVar28 | uVar59 ^ *(ulonglong *)(lVar2 + -0xa78)) ^
       uVar37;
  *(ulonglong *)(lVar2 - (uVar51 ^ 0xef599606)) =
       (*(ulonglong *)(lVar2 + -0xb18) ^ uVar53) <<
       ((*(byte *)(lVar2 - (uVar27 ^ 0xbe7ec8da)) ^ (byte)uVar15) & 0x3f);
  uVar60 = CONCAT44(DAT_182671e78,DAT_182671e78);
  *(ulonglong *)(lVar2 - (uVar48 ^ 0xa6f5f549)) =
       (uVar58 ^ *(ulonglong *)(lVar2 + -0x3d8)) - (uVar37 ^ *(ulonglong *)(lVar2 + -0xc90)) ^
       uVar60;
  uVar10 = DAT_182671c90;
  lVar1 = DAT_182671c40;
  uVar20 = *(ulonglong *)(lVar2 + -0x228);
  uVar49 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar35 = *(ulonglong *)(lVar2 - (uVar56 ^ 0x2f4e6cf7)) ^ uVar20 ^ uVar49 ^ uVar30 ^ uVar35;
  *(ulonglong *)(DAT_182671c40 + -0xa50) = uVar35;
  uVar53 = (uVar35 ^ uVar49) >> ((bVar24 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar1 + -0xb18) = uVar53 ^ uVar54;
  *(ulonglong *)(lVar1 + -0xbd8) = (CONCAT44(uVar62,uVar5) ^ 0x3cb3c8c782550aff) + uVar53;
  uVar4 = DAT_182671c88;
  lVar1 = DAT_182671c40;
  uVar53 = (uVar49 ^ uVar35) << (((byte)DAT_182671c88 ^ 0x1c) & 0x3f);
  puVar36 = (ulonglong *)(DAT_182671c40 + -0x920);
  *(ulonglong *)(DAT_182671c40 + -0x3d8) = uVar53 ^ CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar1 + -0x408) = (*puVar23 ^ uVar59) - (uVar60 ^ *puVar36);
  lVar2 = DAT_182671c40;
  puVar36 = (ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x3116051f));
  uVar53 = uVar54 ^ *puVar36 | uVar53;
  uVar49 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar53 ^ uVar41;
  uVar4 = DAT_182671c80;
  *(ulonglong *)(lVar2 - (uVar51 ^ 0xef59978e)) = (uVar20 ^ uVar30) - uVar53 ^ uVar49;
  uVar14 = DAT_182671cc0;
  uVar20 = *(ulonglong *)(lVar2 + -0xbd8) ^ uVar60 ^ uVar43 ^ uVar41 ^
           *(ulonglong *)(lVar2 + -0x920);
  *(ulonglong *)(lVar2 + -0x408) = uVar20;
  uVar41 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x27867303)) =
       (uVar20 ^ uVar43) >> (((byte)uVar4 ^ 0x58) & 0x3f) ^ uVar41;
  uVar14 = DAT_182671d44;
  uVar53 = (*(ulonglong *)(lVar2 + -0x408) ^ uVar43) << ((bVar24 ^ 0x50) & 0x3f);
  uVar20 = (ulonglong)DAT_182671c4c;
  *(ulonglong *)(lVar2 + -0xb18) = uVar53 ^ uVar64;
  uVar35 = CONCAT44(uVar14,uVar14);
  *puVar61 = (uVar53 | uVar41 ^ *(ulonglong *)(lVar2 + -0xa78)) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x228) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0x9e3fe7d7)) ^ uVar60) -
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x3d8)) ^ uVar58;
  *(ulonglong *)(lVar2 + -0xbd8) =
       uVar22 ^ uVar49 ^ uVar37 ^ *(ulonglong *)(lVar2 + -0xa50) ^ *(ulonglong *)(lVar2 + -0xc90);
  uVar20 = (ulonglong)DAT_182671e04;
  *(ulonglong *)(lVar2 + -0x408) =
       CONCAT44(uVar3,uVar8) ^ CONCAT44(uVar13,uVar5) ^ 0xe5ccfddfbaedf911;
  uVar53 = (ulonglong)DAT_182671c80;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x4b35869d)) =
       (*(ulonglong *)(lVar2 + -0xbd8) >> 0x20 ^ uVar20) >> 8 ^ uVar65;
  uVar26 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  uVar20 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c64 ^ 0xe418d702)) =
       (*(ulonglong *)(lVar2 - (uVar53 ^ 0xb3d72c97)) ^ uVar22) << 0x18 ^ uVar26;
  uVar4 = DAT_182671c78;
  uVar22 = uVar26 ^ *(ulonglong *)(lVar2 + -0xb18) | uVar65 ^ *(ulonglong *)(lVar2 + -0xa78);
  uVar41 = (ulonglong)DAT_182671c78;
  uVar26 = CONCAT44(DAT_182671d0c,DAT_182671d0c);
  uVar53 = uVar22 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x920) = uVar53;
  uVar14 = DAT_182671e28;
  uVar20 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0xf37d3de5)) ^ uVar49) - uVar22;
  *(ulonglong *)(lVar2 + -0xc90) = uVar20 ^ uVar63;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x408) =
       *(ulonglong *)(lVar2 - (uVar41 ^ 0x16907554)) ^ uVar37 ^ uVar26 ^ uVar58 ^ uVar53;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xbe7ec12a)) = uVar20 - uVar22;
  uVar53 = (ulonglong)DAT_182671c64;
  uVar20 = CONCAT44(DAT_182671f78,DAT_182671f78);
  local_130 = (byte)uVar13;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xbe7ec1ea)) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x408)) >> (((byte)uVar50 ^ 0xea) & 0x3f) ^ uVar20;
  uVar14 = DAT_182671d40;
  uVar26 = (uVar37 ^ *(ulonglong *)(lVar2 + -0x408)) << ((local_130 ^ 0x66) & 0x3f);
  *(ulonglong *)(lVar2 + -0xa78) = uVar26 ^ uVar34;
  uVar26 = uVar26 | uVar20 ^ *puVar36;
  *(ulonglong *)(lVar2 + -0xa50) = uVar26 ^ uVar32;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x38e01059)) =
       (uVar58 ^ *(ulonglong *)(DAT_182671c40 + -0x228)) - uVar26 ^ uVar37;
  uVar14 = DAT_182671dbc;
  lVar1 = DAT_182671c40;
  uVar20 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       uVar20 ^ uVar35 ^ uVar63 ^ *(ulonglong *)(DAT_182671c40 + -0xc90) ^
       *(ulonglong *)(DAT_182671c40 + -0x3d8);
  uVar3 = DAT_182671c4c;
  *(ulonglong *)(lVar1 - (uVar33 ^ 0x22af1662)) =
       (*(ulonglong *)(lVar1 - (uVar39 ^ 0xa1a7add6)) ^ uVar63) << ((bVar24 ^ 0x78) & 0x3f);
  uVar22 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c88 ^ 0x3116047f)) =
       (*(ulonglong *)(lVar1 + -0xbd8) ^ uVar20) >> (((byte)uVar3 ^ 0xce) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar1 + -0xb18) =
       (*(ulonglong *)(lVar1 - (uVar48 ^ 0xa6f5f7b1)) ^ uVar20) << ((bVar17 ^ 0x48) & 0x3f) ^ uVar52
  ;
  *(ulonglong *)(lVar1 + -0x228) =
       (CONCAT44(uVar10,uVar7) ^ 0xfa509414811cac01) <<
       ((*(byte *)(lVar1 + -0xbd8) ^ (byte)uVar14) & 0x3f);
  *(ulonglong *)(lVar1 - (uVar38 ^ 0x153105d7)) =
       (*(ulonglong *)(lVar1 - (uVar38 ^ 0x15310c77)) ^ uVar22 | uVar52 ^ *puVar42) ^ uVar31;
  *(ulonglong *)(lVar1 - (uVar46 ^ 0x4db1f890)) =
       (uVar63 ^ *(ulonglong *)(lVar1 + -0xc90)) - (uVar31 ^ *(ulonglong *)(lVar1 + -0x3d8)) ^
       uVar57;
  *(undefined8 *)(lVar1 + -0xa78) = 0xe5df719;
  uVar34 = uVar55 ^ uVar31 ^ uVar37 ^ *(ulonglong *)(lVar1 + -0x920) ^
           *(ulonglong *)(lVar1 + -0x3d8);
  uVar26 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(lVar1 + -0xbd8) =
       (CONCAT44(uVar11,uVar13) ^ 0x1e9a736fcceb49e3) + (uVar37 ^ *(ulonglong *)(lVar1 + -0x920));
  uVar3 = DAT_182671d7c;
  uVar20 = (ulonglong)DAT_182671d7c;
  *(ulonglong *)(lVar1 + -0x228) = uVar34;
  lVar2 = DAT_182671c40;
  puVar36 = (ulonglong *)(lVar1 - (uVar45 ^ 0x278675eb));
  *(ulonglong *)(lVar1 + -0xb18) =
       (uVar20 << 0x12 | (ulonglong)(uVar3 >> 0xe)) ^
       *(ulonglong *)(lVar1 - (uVar45 ^ 0x27867b53)) >> 0xe ^ uVar26;
  *puVar36 = (uVar55 ^ uVar34) << 0x32 ^ uVar40;
  uVar14 = DAT_182671d80;
  *(ulonglong *)(lVar1 + -0xbd8) =
       (*(ulonglong *)(lVar1 - (uVar56 ^ 0x2f4e646f)) ^ uVar40) + 0xd437f636b756d2ad;
  uVar15 = DAT_182671e90;
  uVar45 = CONCAT44(uVar14,uVar14);
  uVar20 = *(ulonglong *)(lVar2 + -0x920);
  *(ulonglong *)(lVar1 + -0x3d8) =
       (*(ulonglong *)(lVar1 - (uVar27 ^ 0xbe7ec662)) ^ uVar40 |
       uVar26 ^ *(ulonglong *)(lVar1 + -0xb18)) ^ uVar45;
  uVar27 = CONCAT44(uVar15,uVar15);
  uVar20 = (uVar37 ^ uVar20) - (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar30);
  *(ulonglong *)(lVar2 + -0xa78) = uVar20 ^ uVar27;
  *(ulonglong *)(lVar2 - (uVar53 ^ 0xe418de32)) =
       uVar20 - (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x169074a4)) ^ uVar45) ^ uVar28;
  uVar20 = (*(ulonglong *)(lVar2 + -0x4b8) ^ uVar60) + (*(ulonglong *)(lVar2 + -0xc38) ^ uVar28);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar20 ^ CONCAT44(DAT_182671cb4,DAT_182671cb4);
  bVar17 = (byte)DAT_182671c80;
  *(ulonglong *)(lVar2 + -0xb18) = (uVar45 ^ *(ulonglong *)(lVar2 + -0x3d8)) - uVar20 ^ uVar47;
  uVar14 = DAT_182671d58;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xc90) =
       (CONCAT44(uVar13,uVar4) ^ 0x99d0580146edac4e) >> ((bVar17 ^ 0x50) & 0x3f);
  uVar56 = CONCAT44(uVar14,uVar14);
  *puVar44 = *(ulonglong *)(lVar2 - (uVar38 ^ 0x15310c5f)) ^ uVar56 ^ *(ulonglong *)(lVar2 + -0x408)
             ^ uVar57 ^ uVar32;
  uVar45 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  uVar32 = (uVar56 ^ *(ulonglong *)(lVar1 + -0x920)) << 0x30;
  uVar20 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar1 + -0xa78) =
       (uVar56 ^ *(ulonglong *)(lVar1 + -0x920)) >> (((byte)uVar6 ^ 0xef) & 0x3f) ^ uVar45;
  uVar14 = DAT_182671cd4;
  *(ulonglong *)(lVar1 + -0x3d8) = uVar32 ^ uVar20;
  lVar2 = DAT_182671c40;
  uVar56 = CONCAT44(uVar14,uVar14);
  uVar32 = *(ulonglong *)(lVar1 - (uVar46 ^ 0x4db1f6e0)) ^ uVar45 | uVar32;
  uVar45 = CONCAT44(DAT_182671cfc,DAT_182671cfc);
  uVar20 = (*(ulonglong *)(DAT_182671c40 + -0x408) ^ uVar57) -
           (*(ulonglong *)(DAT_182671c40 + -0xc18) ^ uVar29);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar32 ^ uVar56;
  *(ulonglong *)(lVar2 + -0xa50) = uVar20 ^ uVar45;
  uVar14 = DAT_182671f0c;
  uVar45 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0x920) = uVar20 - uVar32 ^ uVar37;
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar45 ^ 0xf37d3dcd)) =
       (CONCAT44(uVar62,DAT_182671c4c) ^ 0x4181350d61c0110f) -
       (*(ulonglong *)(lVar2 + -0xb20) ^ uVar47) ^ uVar20;
  uVar20 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0x22af1812)) ^ uVar20) + (uVar56 ^ *puVar36) ^ uVar26;
  uVar45 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar2 + -0x3d8) = uVar20;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c88 ^ 0x3116021f)) =
       uVar45 ^ uVar20 ^ uVar26 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x228);
  uVar20 = (uVar45 ^ *(ulonglong *)(lVar2 + -0xc18)) >> ((bVar24 ^ 0x59) & 0x3f);
  local_168 = (byte)uVar9;
  uVar45 = (uVar45 ^ *(ulonglong *)(lVar2 + -0xc18)) << ((local_168 ^ 0xc5) & 0x3f);
  uVar26 = CONCAT44(DAT_182671f98,DAT_182671f98);
  *(ulonglong *)(lVar2 + -0xa50) = uVar45 ^ CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *(ulonglong *)(lVar2 + -0x408) = uVar20 ^ uVar27;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x23af1ffa)) = (uVar45 | uVar20) ^ uVar26;
  uVar20 = *(ulonglong *)(lVar2 + -0xb18);
  uVar45 = *(ulonglong *)(lVar2 + -0x920);
  *(ulonglong *)(lVar2 + -0xa78) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x228)) -
       (*(ulonglong *)(lVar2 - (uVar48 ^ 0xa6f5f0f9)) ^ uVar26) ^ uVar22;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar18;
  *(ulonglong *)(lVar2 - (uVar51 ^ 0xef599e06)) = uVar37 ^ uVar20 ^ uVar30 ^ uVar47 ^ uVar45;
  return;
}



############ FUN_ 180fa8b40 size=5309 ############

void FUN_180fa8b40(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_f0;
  
  uVar10 = DAT_182671c78;
  uVar9 = DAT_182671c6c;
  uVar11 = DAT_182671c68;
  uVar8 = DAT_182671c5c;
  lVar6 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671c68;
  uVar33 = (ulonglong)DAT_182671c6c;
  uVar26 = (ulonglong)DAT_182671c78;
  uVar30 = (ulonglong)DAT_182671c5c;
  uVar17 = DAT_182671c68 * DAT_182671c6c;
  uVar22 = DAT_182671c78 ^ DAT_182671c5c;
  uVar41 = (ulonglong)uVar17;
  uVar18 = *(uint *)(&DAT_182613210 + ((ulonglong)uVar17 ^ 0x8670a0c7) + (longlong)DAT_182672008) ^
           DAT_182671c6c;
  uVar19 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c68 ^ 0x5c67e957) + (longlong)DAT_182672008) ^
           DAT_182671c68;
  uVar35 = (ulonglong)uVar22;
  uVar36 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar27 = CONCAT44(DAT_182671de0,DAT_182671de0);
  DAT_182671c48 = uVar22;
  DAT_182671c8c = uVar17;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c5c ^ 0xcbdab07c)) =
       (*(ulonglong *)(DAT_182671c40 + -0xb98) ^ uVar36) +
       (CONCAT44(uVar22,DAT_182671c78) ^ 0x7d3c922ab6e62314) * 8 ^ uVar27;
  puVar1 = (ulonglong *)(lVar6 + -0x888);
  *(byte *)(lVar6 + -0x529) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x708) ^ (ulonglong)DAT_182671f50) ^ (byte)DAT_182671f14;
  uVar16 = DAT_182671f60;
  uVar44 = CONCAT44(DAT_182671f94,DAT_182671f94);
  uVar23 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *puVar1 = *(ulonglong *)(*(ulonglong *)(lVar6 + -0x140) ^ uVar27) ^ uVar23 ^ uVar44;
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x7d3c928a)) ^ uVar28) =
       CONCAT44(uVar10,uVar9) ^ 0x5cb25d46ede28c71;
  uVar12 = DAT_182671dc8;
  lVar6 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671dc8;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar17 ^ 0x8670aabf)) =
       (CONCAT44(uVar17,uVar22) ^ 0x7404fa2fedf214a8) +
       (CONCAT44(uVar8,uVar11) ^ 0x33d96ec058a56933);
  uVar29 = CONCAT44(DAT_182671db0,DAT_182671db0);
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x8670a6df)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar22 ^ 0x7d3c99b2)) ^ uVar36) + 0x18 ^ uVar29;
  uVar13 = DAT_182671ecc;
  uVar42 = CONCAT44(DAT_182671e08,DAT_182671e08);
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xb6e62b3e)) =
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0x610) ^ uVar29) ^ uVar42 ^ uVar23;
  *(ulonglong *)(CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar6 + -0x2e8)) =
       CONCAT44(uVar10,uVar9) ^ 0xfe4738dd1378fa93;
  uVar15 = DAT_182671eec;
  uVar13 = DAT_182671eb8;
  uVar31 = (CONCAT44(DAT_182671f54,DAT_182671f54) ^ *(ulonglong *)(lVar6 + -0x7e8)) +
           (CONCAT44(uVar9,uVar17) ^ 0xa08f146cc601c6d);
  *(ulonglong *)(lVar6 + -0xc18) = uVar31 ^ uVar37;
  lVar7 = DAT_182671c40;
  puVar2 = (ulonglong *)(lVar6 + -0xb18);
  uVar36 = (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0x4b8)) +
           (CONCAT44(uVar8,uVar11) ^ 0xb2496ab5ad33ebb1);
  *puVar2 = uVar36 ^ CONCAT44(uVar13,uVar13);
  uVar29 = CONCAT44(DAT_182671e68,DAT_182671e68);
  puVar24 = (ulonglong *)(lVar7 - (uVar41 ^ 0x8670a6e7));
  *puVar24 = uVar36 + uVar31 ^ uVar29;
  lVar6 = DAT_182671c40;
  uVar31 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) =
       CONCAT44(uVar11,uVar9) ^ 0x3f832e791bd55d1e | CONCAT44(uVar9,uVar22) ^ 0xf9e61f262ecae9a7;
  lVar7 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0xb6e62606)) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0xcbdabd24)) ^ uVar37) << 0xe ^ uVar31;
  uVar36 = CONCAT44(DAT_182671cbc,DAT_182671cbc);
  *(ulonglong *)(lVar7 + -0x380) =
       (*(ulonglong *)(lVar7 + -0xc18) >> 0x20 ^ uVar27) >> 0x12 ^ uVar36;
  *(uint *)(lVar7 - (uVar30 ^ 0xcbdab7b8)) = (uVar11 ^ 0x291c48f1) >> (((byte)uVar11 ^ 0x47) & 0x1f)
  ;
  uVar27 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(lVar7 - (uVar30 ^ 0xcbdab4d4)) =
       (*(ulonglong *)(lVar7 - (uVar38 ^ 0x5c67ec57)) ^ uVar31 |
       uVar36 ^ *(ulonglong *)(lVar7 + -0x380)) ^ uVar27;
  uVar39 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar7 + -0x408) =
       uVar39 ^ uVar27 ^ *puVar24 ^ *(ulonglong *)(lVar7 + -0x5e8) ^ uVar29;
  uVar13 = DAT_182671e24;
  uVar31 = (uVar42 ^ *(ulonglong *)(lVar7 + -0x828)) +
           (CONCAT44(uVar10,uVar10) ^ 0xd1800c9c42376eef);
  *(ulonglong *)(lVar7 + -0xa50) = uVar31 ^ CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar15 = DAT_182671edc;
  uVar27 = (CONCAT44(uVar9,uVar9) ^ 0x924c74a861a74291) + (*puVar1 ^ uVar44);
  *(ulonglong *)(lVar7 + -0x680) = uVar27 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671f1c;
  uVar27 = uVar27 + uVar31;
  *(ulonglong *)(lVar7 + -0x110) = uVar27 ^ CONCAT44(uVar15,uVar15);
  lVar6 = DAT_182671c40;
  uVar42 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0xa08) =
       (CONCAT44(uVar8,uVar10) ^ 0x3ce98917d1cb14ae) + uVar27 ^ uVar42;
  uVar36 = CONCAT44(DAT_182671f4c,DAT_182671f4c);
  *(ulonglong *)(lVar6 + -0x760) = uVar31 * 0x10000 ^ uVar36;
  uVar13 = DAT_182671d50;
  uVar27 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  puVar32 = (ulonglong *)(lVar6 - (uVar38 ^ 0x5c67ea9f));
  *puVar32 = uVar31 >> (((byte)uVar22 ^ 0x1a) & 0x3f) ^ uVar27;
  uVar15 = DAT_182671e80;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar27 = (*(ulonglong *)(lVar6 + -0x760) ^ uVar36 | uVar27 ^ *(ulonglong *)(lVar6 + -0x3d8)) ^
           uVar31;
  *(ulonglong *)(lVar6 + -0xb08) = uVar27;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar27 = *(ulonglong *)(lVar6 + -0xa08) ^ uVar37 ^ uVar27 ^ uVar31 ^ uVar42;
  *(ulonglong *)(lVar6 + -0x30) = uVar27;
  uVar13 = DAT_182671ec4;
  *(ulonglong *)(lVar6 + -0xda8) =
       *(ulonglong *)(lVar6 - (uVar33 ^ 0xee1cdb31)) ^ uVar31 |
       *(ulonglong *)(lVar6 + -0xa08) ^ uVar42;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xee1cda49)) =
       (*(ulonglong *)(lVar6 + -0x628) ^ uVar29) + (uVar37 ^ uVar27) ^ uVar36;
  uVar43 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar29 = (uVar37 ^ *(ulonglong *)(lVar6 + -0x30)) << 0x34;
  puVar24 = (ulonglong *)(lVar6 + -0x8f0);
  *puVar24 = uVar29 ^ uVar43;
  uVar14 = DAT_182671cec;
  lVar7 = DAT_182671c40;
  puVar21 = (ulonglong *)(lVar6 - (uVar35 ^ 0x7d3c921a));
  bVar25 = (byte)uVar17;
  uVar27 = *(ulonglong *)(DAT_182671c40 + -0xa08);
  uVar44 = CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar34 = (ulonglong)DAT_182671cec;
  uVar31 = (uVar37 ^ *puVar21) >> ((bVar25 ^ 0xc3) & 0x3f);
  *(ulonglong *)(lVar6 + -0x7e8) = uVar31 ^ uVar44;
  puVar3 = (ulonglong *)(lVar6 + -0xa70);
  *(ulonglong *)(lVar6 + -0x4b8) = (uVar31 | uVar29) ^ uVar36;
  uVar29 = *(ulonglong *)(lVar7 + -0x408);
  puVar4 = (ulonglong *)(lVar7 + -0x510);
  *puVar2 = *(ulonglong *)(lVar6 - (uVar35 ^ 0x7d3c9692)) ^ CONCAT44(uVar14,uVar14) ^ *puVar3;
  uVar13 = DAT_182671d58;
  uVar37 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar7 + -0x2b0) =
       (uVar42 ^ uVar27) + (uVar39 ^ *(ulonglong *)(lVar7 + -0x408)) ^ uVar37;
  uVar15 = DAT_182671f10;
  uVar31 = (uVar39 ^ uVar29) << ((bVar25 ^ 0xf6) & 0x3f);
  uVar42 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 + -0xc18) = uVar31 ^ uVar42;
  uVar27 = CONCAT44(uVar15,uVar15);
  uVar29 = CONCAT44(DAT_182671e84,DAT_182671e84);
  *puVar4 = (uVar39 ^ *(ulonglong *)(lVar7 + -0x408)) >> (((byte)uVar10 ^ 0x11) & 0x3f) ^ uVar27;
  bVar20 = (byte)DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x8670a34f)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x7d3c973a)) ^ uVar27 | uVar31) ^ uVar29;
  lVar6 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x6c0) =
       (DAT_182671c6c ^ 0x85315b7b) + *(int *)(DAT_182671c40 + -0x784);
  uVar40 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  *(int *)(lVar6 + -0x5d4) = *(int *)(lVar6 + -0x58c) << ((bVar20 ^ 0x54) & 0x1f);
  uVar13 = DAT_182671eb0;
  uVar27 = uVar40 ^ uVar29 ^ uVar37 ^ *(ulonglong *)(lVar6 + -0x2b0) ^
           *(ulonglong *)(lVar6 + -0x380);
  *(ulonglong *)(lVar6 + -0x5e8) = uVar27;
  uVar17 = DAT_182671c84;
  uVar12 = DAT_182671c70;
  uVar9 = DAT_182671c60;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar29 = (ulonglong)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 - (uVar41 ^ 0x8670a8e7)) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0xcbdabb4c)) ^ uVar36) + (uVar27 ^ uVar40) ^ uVar31;
  *puVar1 = CONCAT44(uVar12,uVar17) ^ 0xf13cfe66fb7f19ff | 0x313cba60517f194f;
  lVar6 = DAT_182671c40;
  bVar20 = (byte)DAT_182671c7c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0x2b78410a)) =
       (uVar40 ^ *(ulonglong *)(DAT_182671c40 + -0x5e8)) << (((byte)uVar10 ^ 1) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x2b78469a)) =
       (uVar40 ^ *(ulonglong *)(lVar6 + -0x5e8)) >> ((bVar20 ^ 0x24) & 0x3f) ^ uVar43;
  uVar27 = CONCAT44(DAT_182671cb0,DAT_182671cb0);
  *(ulonglong *)(lVar6 + -0xa50) =
       (*(ulonglong *)(lVar6 + -0x680) ^ uVar23 | uVar43 ^ *(ulonglong *)(lVar6 + -0x110)) ^ uVar27;
  uVar39 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  uVar23 = CONCAT44(uVar14,uVar14) ^ *puVar2;
  *(ulonglong *)(lVar6 + -0x760) =
       *(ulonglong *)(lVar6 - (uVar30 ^ 0xcbdabb6c)) ^ uVar39 ^ uVar27 ^ uVar31 ^
       *(ulonglong *)(lVar6 + -0x828);
  uVar27 = (*(ulonglong *)(lVar6 - (uVar30 ^ 0xcbdab38c)) ^ uVar37) + uVar23 ^ uVar28;
  *(ulonglong *)(lVar6 + -0x3d8) = uVar27;
  uVar13 = DAT_182671e4c;
  *(ulonglong *)(lVar6 + -0xda8) =
       (*(ulonglong *)(lVar6 - (uVar35 ^ 0x7d3c9e32)) ^ uVar42) <<
       (((byte)uVar27 ^ (byte)uVar16) & 0x3f);
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x5c67e24f)) = uVar23 << 0x28 ^ uVar36;
  lVar6 = DAT_182671c40;
  uVar27 = ((ulonglong)(uVar14 >> 0x18) | uVar34 << 8) ^ *puVar2 >> 0x18;
  puVar5 = (ulonglong *)(DAT_182671c40 + -0xb08);
  uVar23 = CONCAT44(DAT_182671ef4,DAT_182671ef4);
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar27 ^ CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar6 - (uVar38 ^ 0x5c67e977)) = (uVar36 ^ *puVar5 | uVar27) ^ uVar23;
  *puVar24 = (uVar31 ^ *(ulonglong *)(lVar6 + -0x828)) +
             (CONCAT44(uVar10,uVar10) ^ 0x6356b9f58d43669a);
  uVar34 = CONCAT44(DAT_182671e70,DAT_182671e70);
  uVar37 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar27 = uVar34 ^ uVar23 ^ uVar28 ^ *(ulonglong *)(lVar6 + -0x3d8) ^ *(ulonglong *)(lVar6 + -0x30)
  ;
  *(ulonglong *)(lVar6 + -0x7e8) = uVar27;
  uVar13 = DAT_182671d64;
  uVar9 = DAT_182671c88;
  uVar42 = (uVar34 ^ uVar27) << 5;
  uVar27 = *(ulonglong *)(lVar6 - (uVar29 ^ 0xf8bed2c3));
  uVar29 = *(ulonglong *)(lVar6 - (uVar33 ^ 0xee1cd7d1));
  *(ulonglong *)(lVar6 + -0xa08) = uVar42 ^ uVar44;
  local_f0 = (byte)uVar8;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar23 = (uVar34 ^ *(ulonglong *)(lVar6 + -0x7e8)) >> ((local_f0 ^ 7) & 0x3f);
  uVar27 = (uVar27 ^ uVar31) + (uVar29 ^ uVar34) ^ uVar37;
  *(ulonglong *)(lVar6 + -0x4b8) = uVar27;
  *(ulonglong *)(lVar6 + -0x408) = uVar23 ^ uVar36;
  *puVar4 = uVar23 >> ((byte)uVar23 & 0x3f);
  uVar8 = DAT_182671c80;
  lVar7 = DAT_182671c40;
  uVar23 = uVar23 | uVar42;
  *(ulonglong *)(lVar6 + -0x380) = uVar23 ^ CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar38 = (ulonglong)DAT_182671c58;
  *puVar3 = uVar23 ^ uVar37 ^ uVar40 ^ uVar27;
  uVar44 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xee1cd8b1)) =
       (uVar28 ^ *puVar32) + (uVar39 ^ *(ulonglong *)(lVar6 + -0x760)) ^ uVar44;
  uVar13 = DAT_182671f3c;
  *(ulonglong *)(lVar6 + -0x5e8) = CONCAT44(uVar9,uVar10) ^ uVar44 ^ *puVar1 ^ 0xecae82298d298d4;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x680) = (uVar39 ^ *(ulonglong *)(lVar6 + -0x760)) << 0x25 ^ uVar29;
  uVar10 = DAT_182671c64;
  uVar27 = CONCAT44(DAT_182671e58,DAT_182671e58);
  uVar34 = (ulonglong)DAT_182671c64;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xb6e62206)) =
       (uVar39 ^ *(ulonglong *)(lVar6 + -0x760)) >> (((byte)uVar8 ^ 0xd8) & 0x3f) ^ uVar27;
  uVar23 = CONCAT44(DAT_182671e74,DAT_182671e74);
  *(ulonglong *)(lVar7 - (uVar34 ^ 0xb81692f3)) =
       (uVar29 ^ *(ulonglong *)(lVar7 + -0x680) | uVar27 ^ *(ulonglong *)(lVar7 + -0x110)) ^ uVar23;
  uVar17 = DAT_182671c7c;
  uVar42 = CONCAT44(DAT_182671c60,uVar8);
  *(ulonglong *)(lVar7 + -0x2b0) =
       (CONCAT44(DAT_182671c60,DAT_182671c50) ^ 0xffffc9674274b682) << 0x11;
  uVar13 = DAT_182671ed8;
  uVar9 = DAT_182671c54;
  lVar6 = DAT_182671c40;
  uVar29 = CONCAT44(DAT_182671ed0,DAT_182671ed0);
  uVar31 = CONCAT44(DAT_182671e40,DAT_182671e40);
  uVar27 = uVar29 ^ uVar23 ^ uVar44 ^ *(ulonglong *)(lVar7 + -0xa50) ^ *puVar1;
  *(ulonglong *)(lVar7 + -0xc18) = uVar27;
  uVar29 = (uVar42 ^ 0x58fb9b368259b3a3) + (uVar27 ^ uVar29);
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 + -0xda8) = uVar29 ^ uVar31;
  uVar13 = DAT_182671f0c;
  uVar27 = (CONCAT44(uVar17,uVar11) ^ 0xe5ae6c8846bd17fa) +
           (uVar37 ^ *(ulonglong *)(lVar7 + -0x4b8));
  *puVar2 = uVar27 ^ uVar28;
  uVar8 = DAT_182671c4c;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 - (uVar35 ^ 0x7d3c9922)) = uVar27 + uVar29 ^ uVar37;
  uVar29 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x7b2d76f3)) ^ uVar31) <<
           (((byte)uVar8 ^ 200) & 0x3f);
  *(ulonglong *)(lVar6 + -0x628) = uVar29 ^ CONCAT44(DAT_182671d68,DAT_182671d68);
  lVar6 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671e28,DAT_182671e28);
  *puVar24 = (uVar31 ^ *(ulonglong *)(DAT_182671c40 + -0xda8)) >>
             (((byte)DAT_182671c7c ^ 0x2a) & 0x3f) ^ uVar35;
  uVar23 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar27 = (ulonglong)DAT_182671ee0;
  *(ulonglong *)(lVar6 + -0x30) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x7b2d73ab)) ^ uVar35 | uVar29) ^ uVar23;
  *(byte *)(lVar6 - (uVar30 ^ 0xcbdabc0e)) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x990) ^ uVar27) ^ (byte)DAT_182671f14;
  uVar42 = CONCAT44(DAT_182671f98,DAT_182671f98);
  uVar29 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *(ulonglong *)(lVar6 + -0x828) =
       *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c88 ^ 0x7bbff4d7)) ^
       *(ulonglong *)(lVar6 - (uVar33 ^ 0xee1cd009)) ^ uVar23 ^ uVar37 ^ uVar42;
  *(ulonglong *)(lVar6 + -0x7e8) =
       (CONCAT44(uVar22,uVar8) ^ 0x2486e1e7bef809e8) + (uVar40 ^ *puVar3) ^ uVar29;
  uVar27 = CONCAT44(uVar12,DAT_182671c94);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x8670a5df)) = (uVar28 ^ *puVar2) >> ((bVar25 ^ 0xde) & 0x3f);
  lVar7 = DAT_182671c40;
  uVar27 = (uVar27 ^ 0xeff992281656a1bd) + (uVar44 ^ *puVar1);
  *(ulonglong *)(lVar6 + -0xa08) = uVar27 ^ CONCAT44(DAT_182671f64,DAT_182671f64);
  uVar13 = DAT_182671e10;
  *(ulonglong *)(lVar6 + -0x408) = uVar35 ^ *puVar24 ^ 0x7839d75a044f3e5e;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 + -0x380) = (*(ulonglong *)(lVar7 + -0x7e8) ^ uVar29) + uVar27 ^ uVar31;
  *(ulonglong *)(lVar7 - (uVar26 ^ 0xb6e620ce)) =
       ((ulonglong)(uVar8 >> 9) | uVar38 << 0x17) ^ 0x2fe6e0e187b5f9;
  uVar13 = DAT_182671f34;
  *(ulonglong *)(lVar7 + -0x5e8) =
       (*(ulonglong *)(lVar7 - (uVar34 ^ 0xb8169f4b)) ^ uVar29) << 0x21 ^ uVar31;
  uVar29 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_182671c70 ^ 0x7424959c)) ^ uVar29) >>
           (((byte)DAT_182671c60 ^ 0x95) & 0x3f);
  uVar27 = (ulonglong)DAT_182671c50;
  uVar28 = CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(lVar7 + -0x760) = uVar29 ^ CONCAT44(uVar13,uVar13);
  uVar9 = DAT_182671c80;
  uVar35 = (ulonglong)DAT_182671c74;
  uVar29 = (*(ulonglong *)(lVar7 - (uVar27 ^ 0x6bb2ee49)) ^ uVar31 | uVar29) ^ uVar28;
  uVar23 = CONCAT44(uVar17,uVar8) ^ CONCAT44(uVar10,DAT_182671c74) ^ 0x60c2e591be4f59bb;
  *(ulonglong *)(lVar7 + -0x680) = uVar29;
  uVar13 = DAT_182671f78;
  *(ulonglong *)(lVar7 + -0x110) = uVar23;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar29 = *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x74b17a43)) ^ uVar29 ^ uVar27 ^ uVar28 ^
           uVar31;
  *(ulonglong *)(lVar7 + -0x2b0) = uVar29;
  uVar13 = DAT_182671ce4;
  uVar29 = uVar29 ^ uVar27;
  uVar28 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(lVar7 + -0xa50) = *(ulonglong *)(lVar7 - (uVar26 ^ 0xb6e6281e)) ^ uVar37 | uVar23;
  bVar20 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar7 + -0xc18) = (uVar37 ^ *(ulonglong *)(lVar7 + -0xb08)) + uVar29 ^ uVar28;
  uVar15 = DAT_182671fa8;
  uVar23 = uVar29 >> ((bVar20 ^ 0x49) & 0x3f);
  *(ulonglong *)(lVar7 + -0x4b8) = uVar29 << 0x2e ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671f14;
  *(ulonglong *)(lVar7 + -0xda8) = uVar23 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182671fac;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar27 = (ulonglong)DAT_182671c7c;
  uVar29 = (uVar23 | uVar29 << 0x2e) ^ uVar37;
  *(ulonglong *)(lVar7 + -0x628) = uVar29;
  *puVar21 = *(ulonglong *)(lVar7 - (uVar27 ^ 0xc5605815)) ^ CONCAT44(uVar15,uVar15) ^ uVar29 ^
             uVar37 ^ uVar28;
  *(ulonglong *)(lVar7 - (uVar26 ^ 0xb6e62966)) =
       (uVar31 ^ *(ulonglong *)(lVar7 + -0x380)) + (uVar42 ^ *(ulonglong *)(lVar7 + -0x828)) ^
       uVar36;
  uVar23 = CONCAT44(DAT_182671d00,DAT_182671d00);
  *(ulonglong *)(lVar7 - (uVar33 ^ 0xee1cdb21)) =
       (uVar42 ^ *(ulonglong *)(lVar7 + -0x828)) << 0xc ^ uVar23;
  uVar15 = DAT_182671f18;
  uVar13 = DAT_182671d5c;
  uVar27 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  *(ulonglong *)(lVar7 - (uVar35 ^ 0x74922164)) =
       (uVar42 ^ *(ulonglong *)(lVar7 + -0x828)) >> (((byte)uVar9 ^ 0xf7) & 0x3f) ^ uVar27;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar27 = (*puVar2 ^ uVar23 | *puVar4 ^ uVar27) ^ uVar29;
  *puVar1 = uVar27;
  *puVar24 = CONCAT44(uVar15,uVar15) ^ uVar36 ^ *puVar3 ^ uVar27 ^ uVar29;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar19 * 4) = uVar18;
  return;
}



############ FUN_ 180fe69c0 size=5244 ############

void FUN_180fe69c0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  byte bVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  longlong *plVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  uint uVar30;
  byte bVar31;
  byte bVar32;
  uint uVar33;
  byte *pbVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_res20;
  byte local_f8;
  byte local_d0;
  byte local_c8;
  
  uVar15 = DAT_182671d44;
  uVar11 = DAT_182671c80;
  uVar8 = DAT_182671c6c;
  uVar6 = DAT_182671c64;
  uVar19 = DAT_182671c4c;
  uVar3 = DAT_182671c48;
  lVar1 = DAT_182671c40;
  uVar21 = DAT_182671c70 & 3;
  DAT_182671c7c = DAT_182671c94 & DAT_182671c90;
  if (uVar21 < 2) {
    DAT_182671c60 = DAT_182671c68;
    if (uVar21 == 0) {
      DAT_182671c60 = DAT_182671c70;
    }
  }
  else {
    DAT_182671c60 = DAT_182671c58;
    if (uVar21 < 3) {
      DAT_182671c60 = DAT_182671c54;
    }
  }
  uVar42 = (ulonglong)DAT_182671c80;
  uVar29 = (ulonglong)DAT_182671c4c;
  uVar40 = (ulonglong)DAT_182671c48;
  uVar26 = (ulonglong)DAT_182671c6c;
  uVar33 = DAT_182671c48 - DAT_182671c64;
  uVar30 = DAT_182671c4c - DAT_182671c6c;
  uVar44 = (DAT_182671c80 << 0x10 | DAT_182671c80 & 0xff00) << 8 | DAT_182671c80 >> 8 & 0xff00 |
           DAT_182671c80 >> 0x18;
  uVar21 = *(uint *)(&DAT_182613220 + DAT_182672054);
  uVar22 = *(uint *)(&DAT_182613218 + DAT_182672054) ^ DAT_182671c4c;
  uVar39 = (ulonglong)DAT_182671d1c;
  uVar35 = (ulonglong)DAT_182671c48;
  DAT_182671c78 = uVar30;
  DAT_182671c84 = uVar44;
  DAT_182671c88 = uVar33;
  *(byte *)(DAT_182671c40 + -0x669) =
       (byte)DAT_182671d44 ^ (byte)DAT_182671d64 ^ *(byte *)(DAT_182671c40 + -0x5e8);
  pbVar34 = (byte *)((CONCAT44(uVar8,uVar33) ^ 0x31ef3f9d141a611b) + *(longlong *)(lVar1 + -0x1d0));
  *(ulonglong *)(lVar1 + -0x350) = (ulonglong)pbVar34 ^ uVar39;
  uVar14 = DAT_182671f84;
  lVar2 = DAT_182671c40;
  *pbVar34 = *(byte *)(lVar1 - (uVar35 ^ 0x7140a18d)) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671d64;
  uVar7 = DAT_182671c68;
  uVar24 = (ulonglong)uVar6;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x18cae95d)) =
       *(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar8,uVar6) ^ 0x31ef3f9d5d2646a2) * 8 ^ uVar35;
  uVar9 = DAT_182671c70;
  uVar38 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar46 = CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar36 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar2 + -0x680) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar26 ^ 0x31ef37bd)) ^ uVar35) ^ uVar46 ^ uVar38;
  *(uint *)(lVar2 + -0x61c) = (uVar44 ^ 0x9fa6e846) * 0x3868b56;
  uVar5 = DAT_182671c60;
  uVar4 = DAT_182671c58;
  uVar39 = (ulonglong)DAT_182671c74;
  bVar31 = (byte)DAT_182671cd0;
  uVar41 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  uVar25 = (ulonglong)DAT_182671d3c;
  uVar35 = (*(ulonglong *)(lVar2 + -0x680) ^ uVar38) >> (((byte)uVar9 ^ 0xa1) & 0x3f) ^ uVar41;
  *(ulonglong *)(lVar2 + -0x4b8) = uVar35;
  *(byte *)(lVar2 + -0x2d9) = bVar31 ^ (byte)uVar35 ^ (byte)DAT_182671f64;
  pbVar34 = (byte *)((CONCAT44(uVar4,DAT_182671c7c) ^ 0xe7fe7146a5b69aaa) +
                    *(longlong *)(lVar2 + -0x1d0));
  *(ulonglong *)(lVar2 + -0x998) = (ulonglong)pbVar34 ^ uVar25;
  uVar13 = DAT_182671c94;
  plVar27 = (longlong *)(DAT_182671c40 - ((ulonglong)uVar33 ^ 0x141a622e));
  *pbVar34 = *(byte *)(lVar2 - (uVar39 ^ 0xffef7926)) ^ (byte)DAT_182671f64 ^ (byte)DAT_182671d18;
  uVar14 = DAT_182671da0;
  uVar12 = DAT_182671c90;
  uVar23 = DAT_182671c54;
  lVar1 = DAT_182671c40;
  puVar28 = (ulonglong *)
            (*plVar27 +
            ((CONCAT44(uVar13,uVar5) ^ 0xa5f6fa9c7146e7fa) +
            (CONCAT44(DAT_182671c54,uVar13) ^ 0x7b2d7b5ba5f6fa9c) * 0xc) * 8);
  uVar35 = (ulonglong)uVar30;
  *(ulonglong *)(DAT_182671c40 + -0x40) = (ulonglong)puVar28 ^ CONCAT44(DAT_182671e64,DAT_182671e64)
  ;
  uVar18 = DAT_182671f88;
  uVar17 = DAT_182671f6c;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar1 + -0xd88) =
       *(ulonglong *)(lVar1 - (uVar35 ^ 0xd0614438)) ^ CONCAT44(uVar14,uVar14) |
       CONCAT44(uVar4,uVar12) ^ 0xfdb9a6dabebe35c8;
  uVar14 = DAT_182671ce4;
  uVar39 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar2 + -0x380) = *puVar28 ^ uVar39 ^ uVar46;
  bVar31 = (byte)DAT_182671de8;
  *(ulonglong *)(CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar2 + -0x918)) =
       CONCAT44(uVar11,uVar19) ^ 0xc680e07659f40e6a;
  uVar5 = DAT_182671c5c;
  uVar19 = DAT_182671c70 ^ 0x4ebc20bf;
  uVar25 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar2 + -0x760) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0x380)) >> (((byte)DAT_182671c58 ^ 0x7e) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  *(uint *)(lVar2 + -0x9dc) = uVar19 * *(int *)(lVar2 + -0xc70);
  uVar37 = uVar5 << 0x10 | uVar5 >> 0x10;
  *(byte *)(lVar2 + -0xb5a) = bVar31 ^ *(byte *)(lVar2 + -0x760) ^ (byte)uVar14;
  DAT_182671c8c = uVar37;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xabff376f)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0x3547ae17)) ^ CONCAT44(uVar15,uVar15)) +
       0x69bbf1499b4e80f1;
  pbVar34 = (byte *)(*(longlong *)(lVar2 + -0x1d0) + 0x27);
  bVar31 = bVar31 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar2 + -0x630) = (ulonglong)pbVar34 ^ (ulonglong)DAT_182671e80;
  uVar15 = DAT_182671ef8;
  *pbVar34 = bVar31 ^ *(byte *)(lVar2 + -0xb5a);
  uVar19 = DAT_182671c60;
  puVar28 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) + 0x28 +
            (CONCAT44(uVar37,DAT_182671c60) ^ 0x3547abff7146e7fe) * 0x60);
  uVar39 = CONCAT44(DAT_182671d08,DAT_182671d08);
  *(ulonglong *)(lVar2 + -0x668) = (ulonglong)puVar28 ^ CONCAT44(uVar15,uVar15);
  lVar1 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0xc90) = (uVar39 ^ *(ulonglong *)(lVar2 + -0xb08)) + 0x8f903678e2903001;
  uVar38 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xabff38ef)) = *puVar28 ^ uVar38 ^ uVar46;
  uVar15 = DAT_182671d90;
  bVar20 = (byte)(uVar11 >> 0x18);
  *(ulonglong *)(lVar1 + -0x110) =
       (CONCAT44(uVar5,uVar19) ^ 0x6fde7faa9beab23b) >> ((bVar20 ^ 0x20) & 0x3f);
  lVar2 = DAT_182671c40;
  bVar31 = (byte)uVar15 ^ (byte)DAT_182671d84;
  uVar39 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0xd0614808)) =
       (*(ulonglong *)(lVar1 - (uVar24 ^ 0x5d264b0e)) ^ uVar38) >> (((byte)uVar13 ^ 0x9c) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  uVar38 = (ulonglong)DAT_182671f0c;
  *(byte *)(lVar2 - (uVar39 ^ 0x7146e667)) = bVar31 ^ *(byte *)(lVar2 + -0x920);
  uVar45 = CONCAT44(uVar23,uVar8) ^ 0x7b2d7b5b31ef3fb5;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x2508c0d)) = *(longlong *)(lVar2 + -0x1d0) + uVar45 ^ uVar38;
  uVar10 = DAT_182671c7c;
  *(byte *)(lVar2 + -0x511) =
       *(byte *)((ulonglong)DAT_182671d20 ^ *(ulonglong *)(lVar2 + -0x1a8)) ^ (byte)DAT_182671f14;
  *(byte *)(*(ulonglong *)(lVar2 + -0xcc8) ^ uVar38) =
       *(byte *)(lVar2 + -0x199) ^ (byte)DAT_182671d84 ^ (byte)DAT_182671d18;
  puVar28 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x310) +
            ((CONCAT44(uVar10,uVar11) ^ 0xa5b69a8c18cae178) +
            (CONCAT44(uVar44,DAT_182671c74) ^ 0x7de1ca18ffef7bff) * 0xc) * 8);
  uVar39 = (ulonglong)DAT_182671d80;
  *(ulonglong *)(lVar2 + -0xa0) = (ulonglong)puVar28 ^ CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(byte *)(lVar2 + -0xa51) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x370) ^ uVar39) ^ (byte)DAT_182671f14;
  uVar43 = CONCAT44(DAT_182671d98,DAT_182671d98);
  uVar38 = *puVar28 ^ uVar43 ^ uVar46;
  *(ulonglong *)(lVar2 + -0xa78) = uVar38;
  bVar31 = (byte)DAT_182671e44;
  local_c8 = (byte)uVar5;
  uVar39 = (ulonglong)DAT_182671c58;
  uVar38 = (uVar43 ^ uVar38) >> ((local_c8 ^ 0x4f) & 0x3f);
  bVar32 = (byte)DAT_182671e7c;
  *(ulonglong *)(lVar2 + -0xa08) = uVar38 ^ CONCAT44(DAT_182671e7c,DAT_182671e7c);
  lVar1 = DAT_182671c40;
  bVar32 = *(byte *)(lVar2 - (uVar39 ^ 0xe7fe7b4e)) ^ bVar32;
  uVar39 = (ulonglong)DAT_182671d68;
  *(byte *)(lVar2 + -0xb31) = bVar32 ^ bVar31;
  *(ulonglong *)(lVar2 + -0xa50) = uVar38 << ((byte)uVar38 & 0x3f);
  pbVar34 = (byte *)((CONCAT44(uVar3,uVar3) ^ 0x7140a7e47140a7cd) + *(longlong *)(lVar1 + -0x1d0));
  bVar32 = bVar32 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar1 + -0x1a8) = (ulonglong)pbVar34 ^ uVar39;
  *pbVar34 = bVar32;
  uVar16 = DAT_182671ec8;
  uVar38 = (ulonglong)DAT_182671ec8;
  uVar43 = CONCAT44(DAT_182671ec8,DAT_182671ec8);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar37 ^ 0x3547a827)) =
       uVar41 ^ CONCAT44(uVar30,uVar13) ^ *(ulonglong *)(lVar1 + -0x4b8) ^ 0x3a0fa82da60ec401;
  uVar39 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *(ulonglong *)(lVar1 + -0x910) =
       (CONCAT44(uVar23,uVar8) ^ 0x7b2d7b5b31ef3f9d) * 0x60 + *plVar27 + 0x28 ^ uVar39;
  uVar39 = *(ulonglong *)(*(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c60 ^ 0x7146eeee)) ^ uVar39)
           ^ uVar43 ^ uVar46;
  *(ulonglong *)(lVar1 + -0xa60) = uVar39;
  uVar19 = DAT_182671c90;
  lVar2 = DAT_182671c40;
  uVar43 = (ulonglong)DAT_182671cd8;
  uVar41 = (ulonglong)DAT_182671c90;
  uVar39 = ((ulonglong)(uVar16 >> 0x10) | uVar38 << 0x10) ^ uVar39 >> 0x10;
  *(ulonglong *)(lVar1 + -0xa70) = uVar39 ^ CONCAT44(uVar14,uVar14);
  bVar32 = (byte)DAT_182671e08 ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0x72b) = (byte)DAT_182671e08 ^ *(byte *)(lVar2 + -0xa70) ^ (byte)uVar14;
  uVar13 = DAT_182671cec;
  lVar1 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671cec;
  *(ulonglong *)(DAT_182671c40 + -0x7e8) = CONCAT44(uVar5,uVar19) ^ 0xddb7923eb9e09d1b | uVar39;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x25086cd)) =
       *(longlong *)(lVar1 - (uVar25 ^ 0xabff3497)) +
       (CONCAT44(uVar7,DAT_182671c7c) ^ 0x7146e7fea5b69aa6) ^ uVar43;
  *(byte *)(*(ulonglong *)(lVar1 + -0x608) ^ uVar43) = bVar32 ^ *(byte *)(lVar1 + -0x72b);
  uVar23 = DAT_182671c60;
  uVar39 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c60 ^ 0x7146ec66)) =
       *(longlong *)(lVar1 + -0x310) +
       ((CONCAT44(uVar4,uVar33) ^ 0xe7fe7146141a613b) +
       (CONCAT44(uVar6,uVar30) ^ 0x5d2646a6d0614128) * 0xc) * 8 ^ uVar39;
  uVar15 = DAT_182671e20;
  uVar19 = DAT_182671c54;
  *(ulonglong *)(lVar1 - (uVar42 ^ 0x18cae755)) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar24 ^ 0x5d264d3e)) ^ uVar39) ^
       CONCAT44(uVar13,uVar13) ^ uVar46;
  *(ulonglong *)(lVar1 + -0x8f0) =
       (CONCAT44(uVar9,uVar19) ^ 0xa256754f8816c4c6) >> (((byte)uVar23 ^ 0xf0) & 0x3f);
  lVar2 = DAT_182671c40;
  uVar39 = (ulonglong)DAT_182671ea0;
  *(ulonglong *)(lVar1 + -0xc38) =
       ((ulonglong)(uVar13 >> 0x18) | uVar38 << 8) ^ *(ulonglong *)(lVar1 + -0x628) >> 0x18 ^
       CONCAT44(uVar15,uVar15);
  lVar1 = DAT_182671c40;
  plVar27 = (longlong *)(DAT_182671c40 + -0x1d0);
  *(byte *)(DAT_182671c40 + -0x2ea) =
       *(byte *)(DAT_182671c40 - ((ulonglong)uVar44 ^ 0x7de1c620)) ^ (byte)uVar15 ^
       (byte)DAT_182671d74;
  pbVar34 = (byte *)(*plVar27 + 0x2b);
  *(ulonglong *)(lVar1 + -0x388) = (ulonglong)pbVar34 ^ uVar39;
  *(longlong *)(lVar1 + -0x960) = *(longlong *)(lVar1 + -0x7e8) + -0x13617851a9911feb;
  uVar15 = DAT_182671dc8;
  *pbVar34 = *(byte *)(lVar1 - (uVar41 ^ 0xefbf9d25)) ^ (byte)DAT_182671d74 ^ (byte)DAT_182671d18;
  uVar38 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c54 ^ 0x7b2d760b)) =
       *(longlong *)(lVar2 + -0x310) + (CONCAT44(uVar5,uVar30) ^ 0xabff3547d061412d) * 8 ^ uVar38;
  uVar15 = DAT_182671db8;
  *(ulonglong *)(lVar2 + -0xb18) =
       (CONCAT44(uVar5,DAT_182671c74) ^ 0x4a488785ce0067) <<
       (((byte)uVar16 ^ *(byte *)(lVar2 + -0xa60)) & 0x3f);
  uVar14 = DAT_182671e3c;
  lVar1 = DAT_182671c40;
  uVar39 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x2b0) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0xd50) ^ uVar38) ^ uVar39 ^ uVar46;
  lVar2 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671cbc;
  local_d0 = (byte)uVar3;
  uVar23 = DAT_182671c8c ^ 0x82f63bfd;
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x200c0e19)) =
       (*(ulonglong *)(lVar1 - (uVar36 ^ 0x200c0421)) ^ uVar39) >> ((local_d0 ^ 0xc4) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  bVar32 = (byte)uVar14 ^ bVar31 ^ *(byte *)(lVar2 + -0x888);
  uVar19 = *(uint *)(lVar2 + -0x94) ^ DAT_182671e4c;
  bVar31 = bVar31 ^ bVar32 ^ (byte)DAT_182671d18;
  *(byte *)(lVar2 + -0x512) = bVar32;
  *(uint *)(lVar2 + -0x6c0) = uVar19 * uVar23;
  pbVar34 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)DAT_182671c58 ^ 0xe7fe7096)) +
                    (CONCAT44(uVar8,DAT_182671c7c) ^ 0x31ef3f9da5b69aa0));
  *(ulonglong *)(lVar2 + -0x1c0) = (ulonglong)pbVar34 ^ uVar38;
  *pbVar34 = bVar31;
  uVar17 = DAT_182671f40;
  uVar23 = DAT_182671c94;
  uVar8 = DAT_182671c68;
  uVar39 = (ulonglong)DAT_182671c94;
  local_res20 = (byte)uVar33;
  *(longlong *)(lVar2 + -0x680) =
       0x2e4465a3178c1d00 << (((byte)uVar14 ^ *(byte *)(lVar2 + -0x888)) & 0x3f);
  uVar15 = DAT_182671f00;
  uVar19 = DAT_182671c58;
  uVar38 = CONCAT44(uVar17,uVar17);
  uVar41 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0xa5f6f874)) =
       *(longlong *)(lVar2 - (uVar35 ^ 0xd0614238)) +
       ((CONCAT44(uVar30,uVar11) ^ 0xd061412818cae178) +
       (CONCAT44(uVar12,uVar8) ^ 0xefbf9fcf7146e7fe) * 0xc) * 8 ^ uVar38;
  uVar39 = CONCAT44(DAT_182671d94,DAT_182671d94);
  uVar35 = *(ulonglong *)(*(ulonglong *)(lVar2 + -0x2e8) ^ uVar38) ^ uVar46;
  *(ulonglong *)(lVar2 + -0x510) = uVar35 ^ uVar39;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c90 ^ 0xefbf9247)) =
       uVar35 >> ((byte)uVar45 & 0x3f) ^ CONCAT44(uVar15,uVar15);
  bVar31 = (byte)uVar15 ^ *(byte *)(lVar2 + -0xd88) ^ (byte)DAT_182671e68;
  *(uint *)(lVar2 + -0xae4) = *(uint *)(lVar2 + -0xc70) & 0xa4763ba2;
  *(byte *)(lVar2 + -0x409) = bVar31;
  uVar35 = (ulonglong)DAT_182671d08;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x31ef36ad)) =
       (CONCAT44(uVar44,uVar19) ^ 0x7de1ca18e7fe716b) + *(longlong *)(lVar2 + -0x1d0) ^ uVar35;
  uVar8 = DAT_182671c74;
  uVar43 = (ulonglong)DAT_182671c74;
  bVar31 = *(byte *)(lVar2 + -0x409) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671e68;
  *(ulonglong *)(lVar2 + -0xf0) =
       (*(ulonglong *)(lVar2 + -0x510) ^ uVar39) << ((local_res20 ^ 0x14) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar2 + -0x930) ^ uVar35) = bVar31;
  lVar1 = DAT_182671c40;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xa5f6f91c)) =
       *(longlong *)(lVar2 - (uVar29 ^ 0x2508645)) - (CONCAT44(uVar37,uVar3) ^ 0xb5e28378deecc1d5);
  uVar38 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  uVar35 = CONCAT44(uVar9,DAT_182671c68);
  *(ulonglong *)(lVar1 + -0x610) =
       *(longlong *)(lVar1 + -0x310) +
       ((CONCAT44(uVar10,uVar23) ^ 0xa5b69a8ca5f6fa99) +
       (CONCAT44(uVar8,uVar19) ^ 0xffef7bffe7fe7146) * 0xc) * 8 ^ uVar38;
  *(ulonglong *)(lVar1 - (uVar40 ^ 0x7140a084)) =
       (uVar35 ^ 0x52d97cfdc7581290) - (*(ulonglong *)(lVar1 + -0x510) ^ uVar39);
  uVar42 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar39 = (ulonglong)DAT_182671c7c;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c7c ^ 0xa5b69f64)) =
       *(ulonglong *)(uVar38 ^ *(ulonglong *)(lVar1 + -0x610)) ^ uVar46 ^ uVar42;
  uVar14 = DAT_182671f28;
  uVar3 = DAT_182671c60;
  lVar2 = DAT_182671c40;
  uVar38 = (ulonglong)DAT_182671c60;
  local_f8 = (byte)uVar6;
  *(byte *)(DAT_182671c40 - ((ulonglong)DAT_182671c60 ^ 0x7146e583)) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x6f8) ^ (ulonglong)DAT_182671d5c) ^ (byte)DAT_182671f14;
  lVar1 = DAT_182671c40;
  uVar35 = (ulonglong)DAT_182671ebc;
  *(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0x200c04b9)) =
       (uVar42 ^ *(ulonglong *)(lVar2 + -0x5e8)) >> ((local_f8 ^ 0x96) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  *(byte *)(lVar1 + -0x841) = (byte)uVar14 ^ *(byte *)(lVar1 + -0x228) ^ (byte)DAT_182671d00;
  *(ulonglong *)(lVar1 + -0xb08) =
       (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar1 + -0xd88)) + 0x57f1c94616b3e903;
  *(ulonglong *)(lVar1 + -0x728) = *(longlong *)(lVar1 - (uVar24 ^ 0x5d264776)) + 0x2eU ^ uVar35;
  uVar36 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar44 ^ 0x7de1cd30)) ^ uVar35) =
       *(byte *)(lVar1 - (uVar41 ^ 0xe7fe7907)) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671d00;
  *(ulonglong *)(lVar1 - (uVar38 ^ 0x7146e116)) =
       *(longlong *)(lVar1 + -0x310) + (CONCAT44(uVar8,uVar11) ^ 0xffef7bff18cae178) * 8 ^ uVar36;
  uVar15 = DAT_182671d60;
  uVar38 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar1 + -0xc90) =
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0x6e8) ^ uVar36) ^ uVar46 ^ uVar38;
  uVar14 = DAT_182671f50;
  lVar2 = DAT_182671c40;
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar35 = CONCAT44(DAT_182671d24,DAT_182671d24);
  bVar31 = (byte)DAT_182671d24;
  *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar39 ^ 0xa5b697e4)) ^ uVar36) =
       CONCAT44(uVar12,uVar33) ^ 0x89c10cb0e2fac675;
  uVar39 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar2 + -0x110) =
       (*(ulonglong *)(lVar2 + -0xc90) ^ uVar38) >> ((bVar20 ^ 0x20) & 0x3f) ^ uVar35;
  uVar35 = (ulonglong)DAT_182671df4;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0xefbf9267)) = CONCAT44(uVar9,uVar9) ^ 0x9979b791ced8be4a;
  bVar31 = bVar31 ^ *(byte *)(lVar2 + -0x110) ^ (byte)DAT_182671dbc;
  *(byte *)(lVar2 + -0x9c1) = bVar31;
  bVar31 = bVar31 ^ (byte)DAT_182671d18 ^ (byte)DAT_182671dbc;
  pbVar34 = (byte *)(*(longlong *)(lVar2 - (uVar43 ^ 0xffef7a2f)) + 0x2f);
  *(ulonglong *)(lVar2 + -0x548) = (ulonglong)pbVar34 ^ uVar35;
  *pbVar34 = bVar31;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c54 ^ 0x7b2d7ed3)) =
       *(longlong *)(lVar2 - (uVar26 ^ 0x31ef3c8d)) +
       (CONCAT44(uVar11,uVar3) ^ 0x18cae17d7146e7f8) * 8 ^ uVar36;
  uVar35 = *(ulonglong *)(*(ulonglong *)(lVar2 + -0x588) ^ uVar36);
  *(ulonglong *)(lVar2 + -0x920) = uVar35;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x5d264cde)) =
       (uVar46 ^ uVar35) >> (((byte)uVar30 ^ 0x28) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar33 ^ 0x141a6b36)) =
       *(ulonglong *)(lVar2 - (uVar25 ^ 0xabff3c67)) ^ uVar46 |
       CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar2 + -0xa78);
  *(byte *)(lVar2 + -0x72a) = (byte)uVar14 ^ *(byte *)(lVar2 + -0xa78) ^ (byte)DAT_182671f80;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar21 ^ uVar30) * 4) = uVar22;
  return;
}



############ FUN_ 180fe91c0 size=4432 ############

void FUN_180fe91c0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  int *piVar3;
  byte bVar4;
  uint uVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  byte *pbVar20;
  uint uVar21;
  ulonglong uVar22;
  longlong lVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte local_70;
  
  uVar14 = DAT_182671c80;
  uVar13 = DAT_182671c6c;
  lVar6 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671c6c;
  uVar26 = (DAT_182671c6c << 0x10 | DAT_182671c6c & 0xff00) << 8 | DAT_182671c6c >> 8 & 0xff00 |
           DAT_182671c6c >> 0x18;
  uVar5 = *(uint *)(&DAT_182613220 + DAT_18267205c);
  uVar19 = *(uint *)(&DAT_182613218 + DAT_18267205c) ^ DAT_182671c6c;
  uVar30 = (ulonglong)DAT_182671c6c;
  pbVar20 = (byte *)(DAT_182671c40 + -0x6b9);
  DAT_182671c94 = uVar26;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = (ulonglong)*pbVar20;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar26 ^ 0xdc68f4d0)) = (ulonglong)*pbVar20 << 0x20;
  *(ulonglong *)(lVar6 + -0x680) = *(ulonglong *)(lVar6 + -0xa50) | *(ulonglong *)(lVar6 + -0x5e8);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x38f1620c)) =
       (CONCAT44(uVar13,uVar13) ^ 0x38f168dc38f16881) + *(longlong *)(lVar6 + 0x30);
  *(undefined1 *)(lVar6 - ((ulonglong)uVar26 ^ 0xdc68f3d1)) = **(undefined1 **)(lVar6 + -0xad0);
  *(uint *)(lVar6 + -0xae4) = (uVar13 ^ 0xbb7e1c04) - (uVar26 ^ 0x3a81dfc7);
  *(ulonglong *)(lVar6 - (uVar30 ^ 0x38f16554)) = (ulonglong)*(byte *)(lVar6 + -0x2e9);
  puVar1 = (ulonglong *)(lVar6 + -0xa08);
  uVar22 = *(longlong *)(lVar6 + -0xd88) << (((byte)uVar14 ^ 0xc) & 0x3f);
  *puVar1 = uVar22;
  uVar22 = *(ulonglong *)(lVar6 - ((ulonglong)uVar26 ^ 0xdc68f7b8)) | uVar22;
  uVar27 = (ulonglong)DAT_182671c74;
  *(ulonglong *)(lVar6 + -0xad0) =
       (CONCAT44(uVar13,uVar26) ^ 0x38f168dcdc68f166) + *(longlong *)(lVar6 + 0x30);
  *(ulonglong *)(lVar6 + -0xa78) = uVar22;
  *(undefined1 *)(lVar6 + -0x6b9) = **(undefined1 **)(lVar6 - (uVar27 ^ 0x2091026f));
  uVar12 = DAT_182671c68;
  uVar38 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar6 + -0xc38) = *(ulonglong *)(lVar6 + -0xc90) ^ 0xbb06b854a8f12cc7;
  uVar16 = DAT_182671c8c;
  uVar11 = DAT_182671c64;
  uVar10 = DAT_182671c60;
  uVar9 = DAT_182671c5c;
  uVar21 = DAT_182671c50;
  uVar29 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar6 + -0xc18) = (ulonglong)*(byte *)(lVar6 + -0x6b9);
  lVar23 = (ulonglong)*(byte *)(lVar6 + -0x6b9) << (((byte)uVar13 ^ 0xec) & 0x3f);
  *(longlong *)(lVar6 + -0x888) = lVar23;
  *(ulonglong *)(lVar6 + -0x510) = lVar23 + uVar22;
  pbVar20 = (byte *)((CONCAT44(uVar14,uVar26) ^ 0xc0089124dc68f167) +
                    *(longlong *)((uVar38 ^ 0x1a28253) + lVar6));
  *(byte **)(lVar6 + -0x758) = pbVar20;
  bVar4 = *pbVar20;
  uVar27 = (ulonglong)DAT_182671c88;
  *(byte *)(lVar6 + -0x2e9) = bVar4;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x430a52f)) = (ulonglong)bVar4;
  puVar2 = (ulonglong *)(lVar6 + -0xda8);
  *(ulonglong *)(lVar6 + -0x228) = *puVar2 << 0x38;
  uVar27 = *(longlong *)(lVar6 - ((ulonglong)uVar21 ^ 0xdc68f310)) +
           *(longlong *)(lVar6 - ((ulonglong)uVar16 ^ 0x856a4a1));
  *(longlong *)(lVar6 + -0x650) = *(longlong *)(lVar6 + -0x418) + 0x58;
  uVar7 = DAT_182671e48;
  *(ulonglong *)(lVar6 + -0x760) = uVar27;
  uVar33 = CONCAT44(uVar7,uVar7);
  **(ulonglong **)(lVar6 - ((ulonglong)uVar13 ^ 0x38f16e8c)) = uVar33 ^ uVar27;
  uVar18 = DAT_182671dbc;
  uVar17 = DAT_182671c90;
  uVar8 = DAT_182671c74;
  lVar23 = DAT_182671c40;
  *(ulonglong *)(lVar6 + -0xd68) =
       *(longlong *)(lVar6 + -0xbd0) +
       ((CONCAT44(uVar11,uVar10) ^ 0xe1b0ff44d4b8588c) +
       (CONCAT44(uVar21,uVar9) ^ 0xdc68f138dceef93d) * 0xc) * 8;
  uVar15 = DAT_182671c84;
  uVar21 = DAT_182671c7c;
  uVar25 = (ulonglong)DAT_182671c84;
  uVar27 = CONCAT44(uVar13,DAT_182671c84);
  uVar28 = (ulonglong)DAT_182671c7c;
  uVar22 = (ulonglong)DAT_182671c54;
  *(ulonglong *)(lVar23 + -0xf0) =
       *(ulonglong *)(lVar23 + -0x228) >> ((byte)*(undefined8 *)(lVar23 + -0x760) & 0x3f);
  uVar7 = DAT_182671d50;
  *(ulonglong *)(lVar23 + -0x138) =
       *(longlong *)(lVar23 + -0x310) +
       ((CONCAT44(uVar8,uVar12) ^ 0x209108bf01a28263) + (uVar27 ^ 0x38f168dc60b08b40) * 0xc) * 8 ^
       CONCAT44(uVar18,uVar18);
  uVar8 = DAT_182671c58;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar27 = CONCAT44(DAT_182671c58,uVar9);
  *(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x25c9577)) =
       **(ulonglong **)(DAT_182671c40 - (uVar22 ^ 0x9124cd60)) ^ uVar31 ^ uVar33;
  lVar6 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x61c) = *(int *)(DAT_182671c40 + -0x634) - (uVar12 ^ 0xe0cd4196);
  *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x1a285c3)) =
       *(longlong *)(lVar6 - ((ulonglong)uVar17 ^ 0xb93c2694)) + (uVar27 ^ 0x814193ffdceef93c) * 8;
  lVar6 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x9dc) = (uVar21 ^ 0xc8e8d89d) * *(int *)(DAT_182671c40 + -0x644);
  uVar22 = CONCAT44(DAT_182671f1c,DAT_182671f1c);
  *(ulonglong *)(lVar6 + -0x960) = **(ulonglong **)(lVar6 + -0x7a0) ^ uVar22 ^ uVar33;
  *(longlong *)(lVar6 + -0x110) = *(longlong *)(lVar6 + -0x760) + 0x10aac353b6e12912;
  uVar7 = DAT_182671df4;
  lVar23 = DAT_182671c40;
  puVar35 = (ulonglong *)
            (*(longlong *)(lVar6 - ((ulonglong)uVar15 ^ 0x60b08628)) +
            (CONCAT44(uVar11,uVar17) ^ 0xe1b0ff44b93c2bfe) * 8);
  *(ulonglong **)(DAT_182671c40 + -0x10) = puVar35;
  uVar27 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar23 + -0xbd8) = uVar27 ^ uVar33 ^ *puVar35;
  *(longlong *)(lVar23 - ((ulonglong)uVar26 ^ 0xdc68f128)) = *(longlong *)(lVar23 + -0xd68) + 0x18;
  *(ulonglong *)(lVar23 - ((ulonglong)uVar10 ^ 0xd4b85d64)) =
       **(ulonglong **)(lVar23 + -0x10) ^ uVar33;
  uVar21 = DAT_182671c4c;
  uVar31 = uVar31 ^ *(ulonglong *)(lVar23 + -0xb18);
  puVar35 = (ulonglong *)(lVar23 - (uVar29 ^ 0xdceef05d));
  uVar33 = uVar22 ^ *(ulonglong *)(lVar23 + -0x960);
  *(ulonglong *)(lVar23 + -0xa50) = (uVar22 ^ *puVar35) << ((byte)uVar31 & 0x3f);
  uVar7 = DAT_182671d94;
  uVar34 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar31 = uVar31 - (CONCAT44(uVar13,uVar21) ^ 0x5f9747560b94ae0d);
  *(ulonglong *)(lVar23 + -0xd88) = uVar31 ^ uVar34;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar23 + -0x680) = uVar31 | uVar33;
  *puVar1 = uVar33 - (CONCAT44(uVar26,uVar16) ^ 0xc168adff601b56ac) ^ uVar24;
  uVar9 = DAT_182671c88;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar23 + -0xc90) =
       (CONCAT44(DAT_182671c78,DAT_182671c54) ^ 0x4f4a82a59cdb53aa) >>
       (((byte)uVar14 ^ 0x1c) & 0x3f);
  uVar18 = DAT_182671dc0;
  uVar36 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  *(ulonglong *)(lVar23 + -0xc38) =
       (*(ulonglong *)(lVar23 - ((ulonglong)uVar14 ^ 0xc0089afc)) ^ uVar27) -
       (CONCAT44(uVar15,uVar21) ^ 0x107798f5a7c4d95a) ^ uVar36;
  uVar7 = DAT_182671c48;
  uVar27 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 - (uVar38 ^ 0x1a28e7b)) =
       *(longlong *)(lVar6 - ((ulonglong)uVar9 ^ 0x430ad6f)) +
       (CONCAT44(DAT_182671c48,DAT_182671c50) ^ 0x1f66664023970ed6) ^ uVar27;
  uVar18 = DAT_182671e90;
  uVar27 = *(ulonglong *)(lVar6 + -0xc18) ^ uVar27;
  *(ulonglong *)(DAT_182671c40 + -0xa78) =
       (*(ulonglong *)(DAT_182671c40 - (uVar28 ^ 0x25c9257)) ^ uVar36) << ((byte)uVar27 & 0x3f);
  uVar21 = DAT_182671d8c;
  lVar6 = DAT_182671c40;
  uVar33 = CONCAT44(uVar18,uVar18);
  uVar22 = (ulonglong)DAT_182671d8c;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0x430a00f)) =
       uVar27 - (CONCAT44(uVar7,DAT_182671c90) ^ 0xc057a13aa3e6d541) ^ uVar33;
  uVar31 = CONCAT44(uVar21,uVar21);
  uVar27 = *(ulonglong *)(lVar6 + -0xd88) ^ *(ulonglong *)(lVar6 + -0x888) ^ uVar31 ^ uVar33 ^
           uVar34;
  *puVar2 = uVar27;
  uVar32 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  uVar33 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar6 + -0x510) = uVar27 >> 0x20 ^ uVar32 ^ uVar22;
  *(ulonglong *)(lVar6 - (uVar30 ^ 0x38f16af4)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar26 ^ 0xdc68fc90)) ^ uVar31) <<
       (((byte)DAT_182671c58 ^ 0xdf) & 0x3f) ^ uVar33;
  uVar37 = CONCAT44(DAT_182671f0c,DAT_182671f0c);
  uVar27 = *(ulonglong *)(lVar6 + -0x228) ^ uVar33 | *(ulonglong *)(lVar6 + -0x510) ^ uVar32;
  uVar33 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  *(ulonglong *)(lVar6 + -0xf0) = uVar27 ^ uVar37;
  uVar21 = DAT_182671c70;
  uVar30 = (ulonglong)DAT_182671c70;
  *(ulonglong *)(lVar6 - (uVar29 ^ 0xdceef82d)) =
       (*(ulonglong *)(lVar6 + -0xd88) ^ uVar34) - uVar27 ^ uVar33;
  uVar18 = DAT_182671f7c;
  uVar9 = DAT_182671c88;
  lVar23 = DAT_182671c40;
  uVar22 = CONCAT44(DAT_182671ebc,DAT_182671ebc);
  uVar24 = *(ulonglong *)(lVar6 - (uVar38 ^ 0x1a2886b)) ^
           *(ulonglong *)(lVar6 - (uVar30 ^ 0xd8eeb415)) ^ uVar22 ^ uVar36 ^ uVar24;
  *(ulonglong *)(lVar6 + -0xa50) = uVar24;
  lVar6 = DAT_182671c40;
  uVar27 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar23 - ((ulonglong)DAT_182671c78 ^ 0x588cdfa0)) =
       (uVar24 ^ uVar22) >> (((byte)uVar9 ^ 0xa7) & 0x3f) ^ uVar27;
  uVar29 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *(uint *)(lVar23 + -0x634) =
       (uVar15 ^ 0xfcf2995e) + *(int *)(lVar23 - ((ulonglong)uVar15 ^ 0x60b08c2c));
  uVar18 = DAT_182671ed4;
  uVar14 = DAT_182671c90;
  uVar22 = (*(ulonglong *)(lVar23 - ((ulonglong)uVar21 ^ 0xd8eeb27d)) ^ uVar22) <<
           (((byte)uVar7 ^ 0x9f) & 0x3f);
  *(ulonglong *)(lVar6 + -0x680) = uVar22 ^ uVar29;
  uVar27 = *(ulonglong *)(lVar6 + -0xb18) ^ uVar27;
  uVar29 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 + -0x960) = (uVar22 | uVar27) ^ uVar29;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0xb93c276c)) = uVar27 + 0xf18a38947a6625db;
  uVar10 = DAT_182671c8c;
  uVar24 = CONCAT44(DAT_182671f8c,DAT_182671f8c);
  bVar4 = (byte)DAT_182671c7c;
  *(ulonglong *)(lVar6 + -0xbd8) =
       (*(ulonglong *)(lVar6 + -0xc38) ^ uVar36) - (*(ulonglong *)(lVar6 + -0x960) ^ uVar29) ^
       uVar24;
  *(uint *)(lVar6 - ((ulonglong)DAT_182671c74 ^ 0x20910ea3)) =
       *(uint *)(lVar6 + -0x58c) >> ((bVar4 ^ 0x7f) & 0x1f);
  uVar21 = DAT_182671c54;
  uVar31 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  local_70 = (byte)(uVar13 >> 0x18);
  uVar22 = *(ulonglong *)(lVar6 - (uVar28 ^ 0x25c9f7f)) ^ *puVar35 ^ uVar31 ^ uVar29 ^ uVar33;
  uVar29 = CONCAT44(DAT_182671e94,DAT_182671e94);
  *(ulonglong *)(lVar6 + -0x5e8) = uVar22;
  uVar27 = (uVar22 ^ uVar31) >> ((local_70 ^ 2) & 0x3f);
  *(ulonglong *)(lVar6 + -0xa78) = uVar27 ^ uVar29;
  uVar9 = DAT_182671c80;
  *(ulonglong *)(lVar6 + -0xc18) = CONCAT44(uVar11,uVar10) ^ 0xaf6c00b348e127fe | uVar27;
  uVar27 = CONCAT44(DAT_182671f78,DAT_182671f78);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c50 ^ 0xdc68f9b0)) =
       (uVar31 ^ uVar22) << (((byte)uVar9 ^ 0x22) & 0x3f) ^ uVar27;
  uVar34 = CONCAT44(DAT_182671e44,DAT_182671e44);
  uVar29 = *(ulonglong *)(lVar6 - (uVar30 ^ 0xd8eeb0a5)) ^ uVar27 |
           *(ulonglong *)(lVar6 + -0xa78) ^ uVar29;
  uVar27 = *(ulonglong *)(lVar6 + -0x110);
  uVar22 = *(ulonglong *)(lVar6 + -0xbd8);
  *puVar2 = uVar29 ^ uVar34;
  uVar7 = DAT_182671dfc;
  uVar31 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *(ulonglong *)(lVar6 + -0x510) = (uVar33 ^ uVar27) - uVar29 ^ uVar31;
  uVar18 = DAT_182671e64;
  uVar29 = CONCAT44(uVar7,uVar7);
  uVar30 = CONCAT44(DAT_182671e1c,DAT_182671e1c);
  uVar37 = uVar22 ^ uVar29 ^ *(ulonglong *)(lVar6 + -0xf0) ^ uVar24 ^ uVar37;
  *(ulonglong *)(lVar6 + -0x228) = uVar37;
  uVar27 = (ulonglong)DAT_182671c58;
  *(ulonglong *)(lVar6 + -0xd88) = (uVar37 ^ uVar29) >> (((byte)uVar10 ^ 0xa7) & 0x3f) ^ uVar30;
  uVar9 = DAT_182671d3c;
  uVar22 = (uVar37 ^ uVar29) << 0x2a;
  uVar33 = (ulonglong)DAT_182671d3c;
  *puVar1 = uVar22 ^ CONCAT44(uVar18,uVar18);
  uVar29 = (ulonglong)DAT_182671c78;
  uVar37 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  uVar22 = *(ulonglong *)(lVar6 - (uVar27 ^ 0x81419e77)) ^ uVar30 | uVar22;
  uVar30 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(lVar6 + -0xa50) = uVar22 ^ uVar37;
  uVar32 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_182671c64 ^ 0xe1b0f9c4)) =
       (*(ulonglong *)(lVar6 - (uVar29 ^ 0x588cdf60)) ^ uVar24) - uVar22 ^ uVar30;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0xb93c20e4)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar21 ^ 0x9124c518)) ^ *(ulonglong *)(lVar6 + -0xa50) ^
       uVar32 ^ uVar37 ^ uVar31;
  uVar7 = DAT_182671f5c;
  *(ulonglong *)(lVar6 + -0xc90) =
       *(ulonglong *)(lVar6 - (uVar38 ^ 0x1a2897b)) ^ uVar32 | 0x20da16a67986b972;
  uVar27 = (*(ulonglong *)(lVar6 + -0xb18) >> 0x20 ^ uVar33) >> 0xe;
  uVar22 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar6 + -0xc38) = uVar27 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar6 + -0x960) = (uVar32 ^ *(ulonglong *)(lVar6 + -0xb18)) << 0x12 ^ uVar22;
  *(ulonglong *)(lVar6 + -0xc18) = (*(ulonglong *)(lVar6 + -0x680) ^ uVar30) + uVar27;
  uVar7 = DAT_182671da4;
  uVar38 = CONCAT44(DAT_182671da8,DAT_182671da8);
  uVar27 = *(ulonglong *)(lVar6 - (uVar25 ^ 0x60b08220)) ^ uVar22 | uVar27;
  *(ulonglong *)(lVar6 + -0x5e8) = uVar27 ^ uVar38;
  lVar23 = DAT_182671c40;
  uVar25 = CONCAT44(uVar7,uVar7);
  uVar29 = CONCAT44(DAT_182671d54,DAT_182671d54);
  uVar22 = (*(ulonglong *)(lVar6 + -0x510) ^ uVar31) - uVar27 ^ uVar25;
  puVar35 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c60 ^ 0xd4b85e0c));
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar22;
  uVar34 = *puVar35 ^ *puVar2 ^ uVar29 ^ uVar30 ^ uVar34;
  uVar24 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  *(ulonglong *)(lVar23 + -0x888) = uVar34;
  uVar7 = DAT_182671ddc;
  uVar27 = CONCAT44(DAT_182671ef0,DAT_182671ef0);
  uVar33 = (uVar34 ^ uVar29) >> (((byte)uVar21 ^ 4) & 0x3f);
  *(ulonglong *)(lVar23 + -0x110) = uVar33 ^ uVar24;
  uVar18 = DAT_182671ec4;
  lVar6 = DAT_182671c40;
  uVar24 = CONCAT44(uVar7,uVar7);
  uVar29 = (uVar34 ^ uVar29) << ((local_70 ^ 0xc) & 0x3f);
  *(ulonglong *)(lVar23 + -0xf0) = uVar29 ^ uVar27;
  uVar33 = uVar33 | uVar29;
  *(ulonglong *)(lVar23 + -0x228) = uVar33 ^ uVar24;
  uVar29 = CONCAT44(uVar18,uVar18);
  *puVar1 = (*(ulonglong *)(lVar6 + -0x680) ^ uVar30) - uVar33 ^ uVar29;
  lVar23 = DAT_182671c40;
  uVar30 = CONCAT44(DAT_182671e54,DAT_182671e54);
  uVar21 = DAT_182671c4c ^ 0x6307f1ea;
  piVar3 = (int *)(DAT_182671c40 + -0x94);
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0xb93c29d4)) ^ uVar22 ^ uVar30 ^ uVar24 ^ uVar25;
  *(uint *)(lVar23 - (uVar28 ^ 0x25c982b)) = uVar21 + *piVar3;
  uVar22 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar27 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar23 + -0xbd8) =
       (*(ulonglong *)(lVar23 + -0xd88) ^ uVar30) >> (((byte)DAT_182671c50 ^ 0x21) & 0x3f) ^ uVar22;
  *(undefined8 *)(lVar23 - (uVar27 ^ 0xd4b852dc)) = 0x143;
  uVar27 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar23 - ((ulonglong)DAT_182671c64 ^ 0xe1b0f3d4)) =
       (*(ulonglong *)(lVar23 + -0xd88) ^ uVar30) << (((byte)uVar14 ^ 0xdb) & 0x3f) ^ uVar27;
  uVar22 = *(ulonglong *)(lVar23 + -0xbd8) ^ uVar22;
  uVar30 = *(ulonglong *)(lVar23 - ((ulonglong)DAT_182671c58 ^ 0x81419f6f)) ^ uVar27 | uVar22;
  uVar27 = CONCAT44(DAT_182671c88,uVar15);
  *(ulonglong *)(lVar23 + -0xb18) = uVar30 ^ CONCAT44(DAT_182671f44,DAT_182671f44);
  *(ulonglong *)(lVar23 + -0xc18) = (uVar27 ^ 0x8f2b580fe5fd4400) >> ((byte)uVar22 & 0x3f);
  uVar25 = (*(ulonglong *)(lVar23 + -0xa78) ^ uVar25) -
           (CONCAT44(uVar8,uVar12) ^ 0xfd11376e8e1910cb);
  uVar22 = CONCAT44(DAT_182671dec,DAT_182671dec);
  *(ulonglong *)(lVar23 + -0xc38) = uVar25 ^ CONCAT44(DAT_182671c9c,DAT_182671c9c);
  uVar27 = CONCAT44(uVar26,DAT_182671c74);
  *(ulonglong *)(lVar23 + -0x960) = uVar22 ^ uVar25 - uVar30;
  uVar22 = CONCAT44(DAT_182671f28,DAT_182671f28);
  *(ulonglong *)(lVar23 + -0x510) =
       uVar30 - (uVar27 ^ 0x47b5f1641c78d0e9) ^ CONCAT44(DAT_182671d0c,DAT_182671d0c);
  *puVar2 = *(ulonglong *)(lVar23 - (uVar28 ^ 0x25c9b87)) ^ uVar22 ^ *puVar1 ^ uVar29 ^ uVar38;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar5 ^ uVar26) * 4) = uVar19;
  return;
}



############ FUN_ 180f8f250 size=6123 ############

void FUN_180f8f250(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  uint *puVar7;
  uint uVar8;
  longlong lVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong *puVar23;
  byte bVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  uint uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong *puVar60;
  byte local_e8;
  
  uVar22 = DAT_182671c5c;
  uVar45 = (ulonglong)DAT_182671c5c;
  DAT_182671c84 = ~DAT_182671c7c;
  uVar42 = (ulonglong)DAT_182671c6c;
  uVar38 = DAT_182671d1c >> 0x10 ^ 0x9e305465;
  uVar56 = ~DAT_182671c6c;
  uVar34 = (DAT_182671c5c << 0x10 | DAT_182671c5c & 0xff00) << 8 | DAT_182671c5c >> 8 & 0xff00 |
           DAT_182671c5c >> 0x18;
  uVar21 = DAT_182671f90 >> 0x10;
  uVar17 = DAT_182671ee8 & DAT_182671ea4;
  uVar20 = DAT_182671ed4;
  if ((DAT_182671ea8 & 1) == 0) {
    uVar20 = DAT_182671ea8;
  }
  uVar18 = *(uint *)(&DAT_182613210 +
                    ((ulonglong)DAT_182671c7c ^ 0xd0c81b64) + (longlong)DAT_182672240) ^
           DAT_182671c84;
  uVar8 = *(uint *)(&DAT_182613220 + DAT_182672240);
  uVar19 = uVar20 & 0xff;
  DAT_182671f2c = ((uVar20 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar26 = CONCAT44(DAT_182671d48,DAT_182671d48);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0x7e8);
  puVar2 = (ulonglong *)(DAT_182671c40 + -0xb08);
  uVar43 = CONCAT44(DAT_182671f80,DAT_182671f80);
  uVar31 = CONCAT44(DAT_182671f2c,DAT_182671f2c);
  puVar3 = (ulonglong *)(DAT_182671c40 + -0x5e8);
  DAT_182671c48 = uVar34;
  DAT_182671c60 = uVar56;
  *puVar3 = (uVar26 ^ *puVar2) - (uVar43 ^ *puVar1) ^ uVar31;
  uVar20 = DAT_182671ed4 & 0xff;
  DAT_182671ed4 = ((DAT_182671ed4 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar36 = CONCAT44(DAT_182671d3c,DAT_182671d3c);
  uVar47 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  puVar27 = (ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c7c ^ 0xd0c8110c));
  uVar43 = uVar47 ^ uVar36 ^ uVar43 ^ *puVar1 ^ *puVar27;
  puVar23 = (ulonglong *)(DAT_182671c40 + -0xa50);
  *puVar23 = uVar43;
  uVar13 = DAT_182671c84;
  lVar9 = DAT_182671c40;
  uVar20 = DAT_182671d44 & 0xff;
  DAT_182671d44 = ((DAT_182671d44 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar28 = CONCAT44(DAT_182671d44,DAT_182671d44);
  uVar35 = (ulonglong)DAT_182671c84;
  bVar24 = (byte)(uVar22 >> 0x18);
  bVar25 = (byte)DAT_182671c84;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0x5e5855a1)) =
       (uVar43 ^ uVar47) >> ((bVar24 ^ 0x49) & 0x3f) ^ uVar28;
  uVar20 = DAT_182671ea8 & 0xff;
  puVar4 = (ulonglong *)(lVar9 + -0xb18);
  DAT_182671ea8 = ((DAT_182671ea8 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar51 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  puVar5 = (ulonglong *)(lVar9 + -0x760);
  uVar32 = (uVar47 ^ *puVar23) << ((bVar25 ^ 0xba) & 0x3f);
  *puVar5 = uVar32 ^ uVar51;
  uVar32 = uVar28 ^ *puVar4 | uVar32;
  uVar20 = uVar38 & 0xff;
  puVar6 = (ulonglong *)(lVar9 + -0xa60);
  uVar43 = *puVar6;
  DAT_182671f04 = ((uVar38 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar39 = CONCAT44(DAT_182671f04,DAT_182671f04);
  *puVar2 = uVar32 ^ uVar39;
  uVar20 = DAT_182671d1c & 0xff;
  DAT_182671d1c = ((DAT_182671d1c << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar58 = CONCAT44(DAT_182671d1c,DAT_182671d1c);
  uVar32 = (uVar36 ^ uVar43) - uVar32;
  puVar40 = (ulonglong *)(lVar9 + -0x828);
  *puVar1 = uVar32 ^ uVar58;
  uVar20 = DAT_182671ea4 & 0xff;
  uVar59 = (ulonglong)uVar56;
  DAT_182671ea4 = ((DAT_182671ea4 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar33 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  uVar36 = CONCAT44(DAT_182671df0,DAT_182671df0) ^ uVar31 ^ *puVar40 ^ uVar33 ^ *puVar3;
  puVar29 = (ulonglong *)(DAT_182671c40 + -0x680);
  uVar43 = (uVar36 >> 0x20 ^ (ulonglong)DAT_182671ea4) >> 8;
  *puVar5 = CONCAT44(uVar22,uVar34) ^ 0x3c60673e806cc99d | uVar32;
  uVar20 = DAT_182671ee8 & 0xff;
  *puVar23 = uVar36;
  DAT_182671ee8 = ((DAT_182671ee8 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar55 = CONCAT44(DAT_182671ee8,DAT_182671ee8);
  *puVar4 = uVar43 ^ uVar55;
  *puVar6 = (CONCAT44(DAT_182671da8,DAT_182671da8) ^ *puVar29) >> (((byte)uVar56 ^ 0x95) & 0x3f);
  uVar12 = DAT_182671c7c;
  uVar20 = uVar17 & 0xff;
  DAT_182671d7c = ((uVar17 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar37 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *puVar40 = (uVar36 ^ uVar33) << (((byte)DAT_182671c7c ^ 0x74) & 0x3f) ^ uVar37;
  lVar9 = DAT_182671c40;
  puVar7 = (uint *)(DAT_182671c40 + -0x9dc);
  *(uint *)(DAT_182671c40 + -0x784) = *(uint *)(DAT_182671c40 - (uVar42 ^ 0xc512a98a)) & *puVar7;
  uVar20 = DAT_182671e94 >> 0x10 & 0xff;
  DAT_182671f54 = (((DAT_182671e94 >> 0x10) << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar48 = CONCAT44(DAT_182671f54,DAT_182671f54);
  *puVar5 = (*(ulonglong *)(lVar9 - (uVar59 ^ 0x3aed589d)) ^ uVar37 | uVar43) ^ uVar48;
  *(uint *)(lVar9 - (uVar42 ^ 0xc512a696)) = (uVar13 ^ 0xb670cbe9) + 0x816a60b7;
  uVar20 = DAT_182671f90 & 0xff;
  DAT_182671f90 = ((DAT_182671f90 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar41 = CONCAT44(DAT_182671f90,DAT_182671f90);
  uVar43 = *puVar1;
  *puVar29 = (uVar31 ^ *puVar3) - (*puVar5 ^ uVar48) ^ uVar41;
  uVar20 = DAT_182671e94 & 0xff;
  DAT_182671e94 = ((DAT_182671e94 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar32 = (ulonglong)DAT_182671e94;
  uVar44 = CONCAT44(DAT_182671e94,DAT_182671e94);
  uVar36 = uVar43 ^ *puVar5 ^ uVar44 ^ uVar48 ^ uVar58;
  *puVar6 = uVar36;
  uVar43 = *puVar40;
  uVar32 = (uVar36 >> 0x20 ^ uVar32) >> 0x14;
  *puVar23 = uVar32 ^ uVar33;
  *puVar4 = uVar43 ^ uVar37 | uVar32;
  uVar20 = uVar21 & 0xff;
  DAT_182671d9c = ((uVar21 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar49 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  uVar43 = (*puVar27 ^ uVar44) << 0xc;
  *puVar3 = uVar43 ^ uVar49;
  uVar32 = uVar32 | uVar43;
  *puVar5 = uVar32 ^ uVar58;
  *puVar40 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar34 ^ 0xb95e5fb6)) ^ uVar58) - uVar32 ^
             uVar37;
  puVar52 = (ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x5e585839));
  local_e8 = (byte)DAT_182671c6c;
  uVar45 = *(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x2f37ef9b)) ^ *puVar52 ^ uVar39;
  *puVar4 = uVar45;
  *puVar6 = (uVar45 ^ uVar41) >> ((local_e8 ^ 0x73) & 0x3f) ^ uVar33;
  bVar30 = (byte)uVar22;
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0xc512aaa2)) =
       (uVar41 ^ uVar45) << ((bVar30 ^ 0xbe) & 0x3f) ^ uVar55;
  lVar9 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar12 ^ 0xd0c8113c)) =
       (*puVar6 ^ uVar33 | uVar55 ^ *puVar3) ^ uVar51;
  *puVar1 = (*puVar29 ^ uVar41) - (uVar51 ^ *puVar23) ^ uVar28;
  uVar45 = *(ulonglong *)(lVar9 - (uVar59 ^ 0x3aed5ae5)) ^ uVar51 ^ *puVar40 ^ uVar37;
  *puVar2 = uVar45 ^ uVar39;
  *puVar7 = (uVar13 ^ 0x9fc5e4b2) * *(int *)(lVar9 + -0x6c0);
  *puVar4 = (uVar39 ^ *puVar2) >> (((byte)uVar56 ^ 0xbb) & 0x3f) ^ uVar31;
  uVar17 = DAT_182671c74;
  uVar43 = CONCAT44(DAT_182671c74,DAT_182671c70);
  *puVar6 = uVar45 << ((bVar30 ^ 0x8b) & 0x3f) ^ uVar44;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar34 ^ 0xb95e5db6)) =
       uVar43 ^ CONCAT44(uVar12,uVar22) ^ 0xf39a70411b9aa596;
  *puVar29 = (uVar31 ^ *puVar4 | *puVar6 ^ uVar44) ^ uVar37;
  uVar21 = DAT_182671c54;
  uVar20 = DAT_182671c50;
  uVar43 = CONCAT44(uVar17,DAT_182671c6c);
  uVar45 = (ulonglong)DAT_182671c54;
  *puVar23 = (CONCAT44(uVar56,DAT_182671c6c) ^ 0x179858e2ed2064d2) << ((local_e8 ^ 0x74) & 0x3f);
  uVar19 = DAT_182671c68;
  puVar27 = (ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x515536f0));
  *puVar27 = (*puVar40 ^ uVar37) - (CONCAT44(uVar20,uVar21) ^ 0xa2447d9b30a1abf2) ^ uVar49;
  uVar38 = DAT_182671c64;
  *puVar3 = (uVar49 ^ *puVar2) - (*puVar29 ^ uVar37) ^ uVar48;
  *puVar4 = (*puVar29 ^ uVar37) - (CONCAT44(uVar12,uVar19) ^ 0x1be5f54893b39782) ^ uVar41;
  uVar14 = DAT_182671c90;
  uVar10 = DAT_182671c58;
  bVar25 = (byte)DAT_182671c94;
  uVar45 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar38 ^ 0x412d46c5)) ^ uVar28 ^ uVar31 ^
           *puVar5 ^ uVar58;
  *puVar23 = uVar45;
  *puVar40 = (uVar31 ^ uVar45) >> ((bVar25 ^ 7) & 0x3f) ^ uVar47;
  uVar32 = CONCAT44(DAT_182671e3c,DAT_182671e3c);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar14 ^ 0x48267e76)) =
       (uVar31 ^ uVar45) << (((byte)uVar10 ^ 0xf8) & 0x3f) ^ uVar32;
  *puVar52 = (*puVar6 ^ uVar44) >> ((bVar24 ^ 0x6c) & 0x3f);
  uVar10 = DAT_182671c88;
  uVar11 = DAT_182671c78;
  uVar53 = (ulonglong)DAT_182671c78;
  *puVar5 = (uVar47 ^ *puVar40 | uVar32 ^ *puVar2) ^ uVar39;
  lVar9 = DAT_182671c40;
  uVar21 = DAT_182671e60 & 0xff;
  DAT_182671e60 = ((DAT_182671e60 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar46 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *puVar23 = (uVar28 ^ *puVar1) - (CONCAT44(uVar10,uVar22) ^ 0xe80b2e9ca8d77af2) ^ uVar46;
  uVar10 = DAT_182671c80;
  uVar17 = DAT_182671c50;
  uVar21 = DAT_182671c4c;
  uVar57 = (ulonglong)DAT_182671c4c;
  puVar52 = (ulonglong *)(lVar9 - ((ulonglong)uVar19 ^ 0x5e5859d9));
  uVar36 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar38 ^ 0x412d4b7d)) ^ uVar46) -
           (*puVar52 ^ uVar39);
  uVar32 = CONCAT44(uVar11,DAT_182671c4c);
  uVar35 = uVar36 ^ uVar47;
  *puVar6 = uVar35;
  uVar45 = CONCAT44(uVar20,DAT_182671c7c);
  uVar32 = (uVar32 ^ 0xf81c06e58f643db2) + (*puVar52 ^ uVar39) ^ uVar37;
  *puVar29 = uVar32;
  *puVar40 = (uVar45 ^ 0x1e77595ae1525729) >> (((byte)uVar17 ^ 0x73) & 0x3f);
  uVar50 = CONCAT44(DAT_182671cec,DAT_182671cec);
  bVar25 = (byte)DAT_182671c70;
  uVar37 = uVar32 ^ uVar50 ^ uVar48 ^ uVar37 ^ *puVar3;
  uVar45 = (uVar37 ^ uVar50) >> ((bVar25 ^ 0x90) & 0x3f);
  *puVar2 = uVar37;
  *puVar1 = uVar45 ^ uVar49;
  uVar17 = DAT_182671fa8 & 0xff;
  DAT_182671fa8 = ((DAT_182671fa8 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar32 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  uVar50 = (uVar50 ^ uVar37) << ((bVar25 ^ 0x90) & 0x3f);
  *puVar23 = uVar50 ^ uVar32;
  uVar50 = uVar50 | uVar45;
  *puVar40 = uVar50 ^ uVar58;
  uVar17 = DAT_182671e68 & 0xff;
  DAT_182671e68 = ((DAT_182671e68 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar37 = CONCAT44(DAT_182671e68,DAT_182671e68);
  *puVar29 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0xddf13a4c)) ^ uVar48) -
             uVar50 ^ uVar37;
  *puVar2 = (*puVar5 ^ uVar39) >> (((byte)uVar14 ^ 0x47) & 0x3f);
  uVar45 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *puVar23 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0x515536e0)) ^ uVar47 ^
             uVar35 ^ uVar45 ^ uVar41;
  uVar35 = (*(ulonglong *)(DAT_182671c40 - (uVar53 ^ 0x156d8a44)) ^ uVar45) >>
           (((byte)DAT_182671c8c ^ 0x72) & 0x3f);
  *puVar3 = uVar35 ^ uVar46;
  *puVar5 = uVar36 ^ 0x42be083e3646a416;
  uVar17 = DAT_182671d54 & 0xff;
  DAT_182671d54 = ((DAT_182671d54 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar45 = (*(ulonglong *)(DAT_182671c40 - (uVar57 ^ 0x56ddc8ff)) ^ uVar45) <<
           (((byte)uVar10 ^ 0xd2) & 0x3f);
  *puVar2 = uVar45 ^ CONCAT44(DAT_182671d54,DAT_182671d54);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c7c ^ 0xd0c81074)) =
       (uVar35 | uVar45) ^ uVar41;
  *puVar5 = (uVar47 ^ *puVar6) - (uVar41 ^ *puVar4) ^ uVar51;
  uVar17 = DAT_182671c74;
  uVar10 = DAT_182671c58;
  lVar9 = DAT_182671c40;
  uVar38 = DAT_182671e8c & 0xff;
  DAT_182671e8c = ((DAT_182671e8c << 8 | uVar38) << 8 | uVar38) << 8 | uVar38;
  uVar35 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  *puVar23 = *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c74 ^ 0xddf134bc)) ^ *puVar29 ^
             uVar35 ^ uVar37 ^ uVar41;
  uVar45 = *puVar23;
  *puVar2 = (CONCAT44(uVar34,uVar22) ^ 0x5a882737f7e27607) + (*puVar1 ^ uVar49);
  uVar15 = DAT_182671cb8;
  uVar47 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  uVar36 = (ulonglong)DAT_182671c54;
  *puVar6 = (uVar45 ^ uVar35) >> ((bVar24 ^ 100) & 0x3f) ^ uVar47;
  *(uint *)(lVar9 - (uVar59 ^ 0x3aed5969)) = *(uint *)(lVar9 - (uVar36 ^ 0x51553b38)) | 0xd48cf8b1;
  uVar22 = DAT_182671c68;
  uVar34 = DAT_182671d5c & 0xff;
  DAT_182671d5c = ((DAT_182671d5c << 8 | uVar34) << 8 | uVar34) << 8 | uVar34;
  uVar41 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_182671c68 ^ 0x5e5855a1)) =
       (*puVar23 ^ uVar35) << ((local_e8 ^ 0x4c) & 0x3f) ^ uVar41;
  uVar45 = *puVar29;
  uVar36 = uVar41 ^ *puVar4 | *puVar6 ^ uVar47;
  *puVar1 = uVar36 ^ uVar44;
  uVar35 = CONCAT44(DAT_182671eac,DAT_182671eac);
  *puVar2 = (uVar45 ^ uVar37) - uVar36 ^ uVar35;
  *puVar23 = uVar41 ^ *puVar4 | uVar36;
  uVar36 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  uVar45 = uVar51 ^ *puVar40 ^ *puVar5 ^ uVar36 ^ uVar58;
  *puVar6 = uVar45;
  uVar34 = DAT_182671fa0 & 0xff;
  DAT_182671fa0 = ((DAT_182671fa0 << 8 | uVar34) << 8 | uVar34) << 8 | uVar34;
  uVar41 = (uVar45 ^ uVar36) >> (((byte)uVar22 ^ 0xaf) & 0x3f);
  uVar45 = (ulonglong)DAT_182671c50;
  uVar37 = CONCAT44(DAT_182671cd0,DAT_182671cd0);
  *puVar29 = uVar41 ^ CONCAT44(DAT_182671fa0,DAT_182671fa0);
  uVar22 = DAT_182671c54;
  uVar38 = uVar21 ^ DAT_182671c54;
  uVar36 = (*(ulonglong *)(DAT_182671c40 - (uVar45 ^ 0x843fe407)) ^ uVar36) <<
           (((byte)uVar17 ^ 0x8e) & 0x3f);
  uVar45 = CONCAT44(DAT_182671c54,uVar10);
  DAT_182671c6c = uVar38;
  *puVar4 = uVar36 ^ uVar37;
  uVar36 = (uVar41 | uVar36) ^ uVar39;
  *puVar40 = uVar36;
  *puVar23 = (uVar43 ^ 0xc89b29203a5b239b) - (uVar45 ^ 0xfbc5352996b31ccf);
  *(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0xc512a52a)) = uVar36 ^ uVar46 ^ uVar39 ^ *puVar3;
  uVar17 = DAT_182671e08 & 0xff;
  DAT_182671e08 = ((DAT_182671e08 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar43 = CONCAT44(DAT_182671e08,DAT_182671e08);
  uVar45 = *puVar40;
  *puVar23 = (uVar51 ^ *puVar5) -
             (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c64 ^ 0x412d4905)) ^ uVar39) ^
             uVar43;
  uVar42 = (ulonglong)DAT_182671d48;
  uVar45 = uVar26 ^ uVar45 ^ uVar35 ^ uVar39 ^ *puVar2;
  *puVar29 = uVar45;
  *puVar4 = (uVar45 >> 0x20 ^ uVar42) >> 0xe ^ uVar55;
  puVar60 = (ulonglong *)(DAT_182671c40 - (uVar57 ^ 0x56ddc747));
  *puVar60 = (uVar26 ^ uVar45) << (((byte)uVar22 ^ 0xea) & 0x3f) ^ uVar48;
  lVar9 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar22 ^ 0x51553a98)) =
       (uVar48 ^ *puVar3 | uVar55 ^ *puVar4) ^ uVar26;
  puVar54 = (ulonglong *)(lVar9 - (uVar57 ^ 0x56ddc9a7));
  uVar42 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  *puVar40 = (uVar35 ^ *puVar54) - (uVar26 ^ *puVar5) ^ uVar42;
  uVar17 = DAT_182671d50 & 0xff;
  uVar34 = DAT_182671d50 << 8;
  DAT_182671d50 = ((uVar34 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar45 = (ulonglong)DAT_182671d50;
  puVar52 = (ulonglong *)(lVar9 - ((ulonglong)uVar38 ^ 0x788f9d7));
  uVar36 = CONCAT44(DAT_182671d50,DAT_182671d50);
  *puVar52 = *puVar23 ^ *puVar1 ^ uVar36 ^ uVar43 ^ uVar44;
  *puVar3 = -0x39f43608e86c47b8 << ((byte)uVar22 & 0x3f);
  uVar45 = (uVar45 << 0x14 | (ulonglong)(((uVar34 & 0xffff | uVar17) << 8 | uVar17) >> 4)) ^
           *puVar52 >> 0xc;
  *puVar4 = uVar45 ^ CONCAT44(DAT_182671d84,DAT_182671d84);
  *puVar2 = (*puVar29 ^ uVar36) << (((byte)uVar21 ^ 0x9b) & 0x3f) ^ uVar46;
  lVar9 = DAT_182671c40;
  uVar45 = uVar46 ^ *puVar54 | uVar45;
  *puVar1 = uVar45 ^ uVar31;
  uVar34 = DAT_182671f74;
  uVar17 = DAT_182671c54;
  uVar35 = (ulonglong)DAT_182671f74;
  bVar25 = (byte)DAT_182671c54;
  uVar37 = CONCAT44(DAT_182671f74,DAT_182671f74);
  *puVar3 = (*puVar23 ^ uVar43) - uVar45 ^ uVar58;
  *puVar29 = *(ulonglong *)(lVar9 - ((ulonglong)uVar38 ^ 0x788f8bf)) ^ uVar31 ^ *puVar40 ^ uVar37 ^
             uVar42;
  uVar16 = DAT_182671d78;
  puVar52 = (ulonglong *)(lVar9 - ((ulonglong)uVar38 ^ 0x788f44f));
  *puVar52 = (CONCAT44(uVar22,uVar38) ^ 0x6f180d21937cf07e) >> ((bVar25 ^ 0xdb) & 0x3f);
  uVar43 = CONCAT44(uVar16,uVar16);
  *puVar2 = ((ulonglong)(uVar34 >> 0x19) | uVar35 << 7) ^ *puVar29 >> 0x19 ^ uVar43;
  uVar45 = *puVar29;
  *puVar23 = *puVar6 + 0x58c1cd87db0d43a4;
  uVar22 = DAT_182671f58 & 0xff;
  DAT_182671f58 = ((DAT_182671f58 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar45 = (uVar45 ^ uVar37) << ((bVar25 ^ 0xdf) & 0x3f);
  bVar24 = (byte)DAT_182671c68;
  *puVar1 = uVar45 ^ CONCAT44(DAT_182671f58,DAT_182671f58);
  *puVar52 = (uVar43 ^ *puVar27 | uVar45) ^ uVar33;
  *puVar6 = (CONCAT44(uVar12,uVar17) ^ 0x347001fd52bebbfb) >> ((bVar24 ^ 0xb7) & 0x3f);
  uVar45 = (*puVar40 ^ uVar42) - (CONCAT44(uVar21,DAT_182671c94) ^ 0xa87e5b7126196c1d);
  *puVar23 = uVar45 ^ uVar47;
  *puVar29 = uVar45 - (uVar33 ^ *puVar4) ^ uVar44;
  *puVar7 = 0x1dfacb76 - (DAT_182671c7c ^ 0xe9553117);
  *puVar1 = (uVar33 ^ *puVar4) - (CONCAT44(uVar20,uVar38) ^ 0x277aa60b111f6e5c) ^ uVar32;
  uVar45 = *puVar4;
  uVar32 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar42 = uVar26 ^ *puVar5 ^ uVar32 ^ uVar58 ^ *puVar60;
  *puVar2 = uVar42;
  uVar43 = (uVar42 ^ uVar32) >> ((bVar30 ^ 0x98) & 0x3f);
  bVar24 = *(byte *)puVar23;
  *puVar6 = uVar43 ^ CONCAT44(DAT_182671cdc,DAT_182671cdc);
  uVar42 = (uVar32 ^ uVar42) << ((bVar25 ^ 0xe7) & 0x3f);
  uVar21 = DAT_182671e38 & 0xff;
  *puVar40 = (uVar33 ^ uVar45) >> ((bVar24 ^ (byte)uVar15) & 0x3f);
  *puVar5 = uVar42 ^ uVar28;
  DAT_182671e38 = ((DAT_182671e38 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  *puVar23 = (uVar43 | uVar42) ^ CONCAT44(DAT_182671e38,DAT_182671e38);
  *puVar4 = (uVar58 ^ *puVar3) - (CONCAT44(uVar10,uVar13) ^ 0xc614caece2dc2da8) ^ uVar36;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar8 ^ uVar56) * 4) = uVar18;
  return;
}



############ FUN_ 180fc1540 size=6170 ############

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

void FUN_180fc1540(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  ulonglong *puVar9;
  uint uVar10;
  uint uVar11;
  longlong lVar12;
  longlong lVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  undefined4 uVar23;
  uint uVar24;
  undefined4 uVar25;
  uint uVar26;
  uint uVar27;
  byte bVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  uint uVar40;
  uint uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  ulonglong uVar56;
  byte bVar57;
  uint uVar58;
  uint uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  byte local_100;
  byte local_f8;
  
  uVar22 = DAT_182671c94;
  uVar20 = DAT_182671c88;
  uVar11 = DAT_182671c84;
  uVar19 = DAT_182671c70;
  uVar18 = DAT_182671c6c;
  uVar17 = DAT_182671c64;
  uVar14 = DAT_182671c48;
  lVar12 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671c84;
  uVar38 = (ulonglong)DAT_182671c70;
  uVar48 = (ulonglong)DAT_182671c94;
  uVar40 = DAT_182671c84 - DAT_182671c90;
  uVar10 = *(uint *)(&DAT_182613218 + DAT_1826722d8);
  uVar36 = (ulonglong)DAT_182671c64;
  uVar59 = DAT_182671c70 - DAT_182671c64;
  uVar34 = DAT_182671c88 - DAT_182671c5c;
  uVar33 = (ulonglong)DAT_182671c48;
  uVar43 = DAT_182671c6c ^ DAT_182671c48;
  uVar58 = DAT_182671c94 << 0x10 | DAT_182671c94 >> 0x10;
  uVar26 = *(uint *)(&DAT_182613220 + DAT_1826722d8) ^ DAT_182671c90;
  uVar53 = CONCAT44(DAT_182671d18,DAT_182671d18);
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xbd8);
  uVar29 = CONCAT44(DAT_182671da8,DAT_182671da8);
  DAT_182671c58 = uVar43;
  DAT_182671c68 = uVar34;
  DAT_182671c74 = uVar40;
  DAT_182671c78 = uVar59;
  DAT_182671c80 = uVar58;
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x426186bc)) =
       (CONCAT44(DAT_182671cc4,DAT_182671cc4) ^ *puVar1) -
       (*(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x76048908)) ^ uVar53) ^ uVar29;
  uVar15 = DAT_182671dc8;
  uVar31 = (ulonglong)uVar18;
  uVar49 = CONCAT44(DAT_182671dc8,DAT_182671dc8);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar40 ^ 0xf4840e6c)) =
       (CONCAT44(uVar43,uVar18) ^ 0xc6f333473c2b9ce9) -
       (CONCAT44(uVar20,uVar40) ^ 0xabec2db505ac26b7);
  uVar25 = DAT_182671ed4;
  uVar44 = CONCAT44(DAT_182671e30,DAT_182671e30);
  puVar2 = (ulonglong *)(lVar12 + -0xd88);
  uVar53 = *(ulonglong *)(lVar12 - ((ulonglong)uVar34 ^ 0xe6b16f20)) ^ uVar44 ^ uVar49 ^ uVar53 ^
           *puVar2;
  puVar3 = (ulonglong *)(lVar12 + -0xa78);
  *(ulonglong *)(lVar12 + -0x5e8) = uVar53;
  uVar23 = DAT_182671d90;
  uVar50 = (uVar49 ^ uVar53) << 0x32;
  uVar45 = CONCAT44(uVar25,uVar25);
  *puVar3 = ((ulonglong)uVar15 << 0x12 | (ulonglong)(uVar15 >> 0xe)) ^ uVar53 >> 0xe ^ uVar45;
  uVar53 = CONCAT44(uVar23,uVar23);
  puVar4 = (ulonglong *)(lVar12 + -0x680);
  *puVar4 = uVar50 ^ uVar53;
  puVar32 = (ulonglong *)(lVar12 - ((ulonglong)DAT_182671c5c ^ 0xdceef345));
  uVar54 = CONCAT44(DAT_182671db4,DAT_182671db4);
  uVar49 = (ulonglong)uVar58;
  *(ulonglong *)(lVar12 + -0x960) = (uVar50 | uVar45 ^ *puVar32) ^ uVar54;
  *(ulonglong *)(lVar12 - ((ulonglong)uVar17 ^ 0xfff9f9f7)) =
       (CONCAT44(uVar11,uVar58) ^ 0xae4d716c964f0b04) >> (((byte)uVar22 ^ 0x79) & 0x3f);
  uVar50 = CONCAT44(DAT_182671d00,DAT_182671d00);
  puVar5 = (ulonglong *)(lVar12 + -0xda8);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar59 ^ 0x7dff69a8)) =
       (uVar44 ^ *puVar2) - (CONCAT44(uVar11,uVar59) ^ 0xa542511f244f6a8) ^ uVar50;
  uVar23 = DAT_182671cdc;
  uVar15 = DAT_182671c5c;
  puVar6 = (ulonglong *)(lVar12 + -0xc90);
  uVar45 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar12 + -0x110) =
       (*puVar5 ^ uVar50) - (*(ulonglong *)(lVar12 + -0x960) ^ uVar54) ^ uVar45;
  *puVar6 = (*(ulonglong *)(lVar12 + -0x960) ^ uVar54) -
            (CONCAT44(uVar15,uVar18) ^ 0xf642e1b8603245f0) ^ uVar53;
  uVar15 = DAT_182671dc4;
  uVar50 = (ulonglong)DAT_182671dc4;
  uVar51 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  *puVar1 = (CONCAT44(uVar43,uVar19) ^ 0x783b4c9ee7324ed7) <<
            ((*(byte *)(lVar12 - (uVar33 ^ 0x42618b94)) ^ (byte)uVar23) & 0x3f);
  uVar46 = CONCAT44(DAT_182671d64,DAT_182671d64);
  puVar55 = (ulonglong *)(lVar12 - ((ulonglong)uVar40 ^ 0xf4840744));
  *(ulonglong *)(lVar12 - (uVar38 ^ 0x7df95acf)) =
       *(ulonglong *)(lVar12 - (uVar36 ^ 0xfff9f1d7)) ^ uVar46 ^ uVar51 ^ uVar29 ^ *puVar55;
  puVar7 = (ulonglong *)(lVar12 + -0x510);
  uVar56 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *(uint *)(lVar12 + -0x94) = (uVar58 ^ 0xa838d099) * *(int *)(lVar12 + -0x94c);
  uVar47 = ((ulonglong)(uVar15 >> 0x10) | uVar50 << 0x10) ^ *puVar7 >> 0x10;
  puVar8 = (ulonglong *)(lVar12 + -0x888);
  *puVar8 = uVar47 ^ uVar56;
  uVar54 = CONCAT44(DAT_182671de0,DAT_182671de0);
  uVar33 = (*puVar7 ^ uVar51) << (((byte)DAT_182671c90 ^ 0x34) & 0x3f);
  uVar50 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar12 + -0x5e8) = uVar33 ^ uVar54;
  uVar58 = DAT_182671c50;
  uVar51 = (ulonglong)DAT_182671c50;
  *(ulonglong *)(lVar12 - ((ulonglong)DAT_182671c90 ^ 0x81807c7c)) = (uVar33 | uVar47) ^ uVar50;
  uVar15 = DAT_182671c4c;
  *(ulonglong *)(lVar12 - ((ulonglong)DAT_182671c5c ^ 0xdceeffbd)) =
       (CONCAT44(uVar11,DAT_182671c88) ^ 0x39690b8759af0a51) -
       (CONCAT44(uVar22,uVar19) ^ 0xdf25d5584eee7bbe);
  uVar16 = DAT_182671c60;
  uVar11 = DAT_182671c54;
  lVar13 = DAT_182671c40;
  uVar27 = uVar58 & 3;
  if (uVar27 < 2) {
    uVar30 = uVar15;
    if (uVar27 == 0) {
      uVar30 = uVar58;
    }
  }
  else {
    uVar30 = DAT_182671c54;
    if (uVar27 < 3) {
      uVar30 = DAT_182671c60;
    }
  }
  uVar52 = CONCAT44(DAT_182671cc0,DAT_182671cc0);
  uVar33 = (ulonglong)DAT_182671c60;
  DAT_182671c8c = uVar30;
  *(ulonglong *)(lVar12 + -0x228) =
       (*(ulonglong *)(lVar12 + -0xc38) ^ uVar29) -
       (CONCAT44(DAT_182671c54,uVar15) ^ 0x2195f4f6b079792b) ^ uVar52;
  uVar27 = DAT_182671c7c;
  uVar47 = CONCAT44(DAT_182671c9c,DAT_182671c9c);
  *puVar2 = (*(ulonglong *)(lVar12 - (uVar33 ^ 0xefc3f40c)) ^ uVar52) - (uVar50 ^ *puVar3) ^ uVar47;
  uVar33 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar29 = (uVar50 ^ *puVar3) + (CONCAT44(uVar27,uVar58) ^ 0x3bf2510df5740307) ^ uVar33;
  *puVar5 = uVar29;
  *(ulonglong *)(lVar13 + -0x960) =
       CONCAT44(uVar30,uVar30) ^ 0xf0c50cec36b8da6f | uVar54 ^ *(ulonglong *)(lVar13 + -0x5e8);
  uVar29 = *(ulonglong *)(lVar13 - ((ulonglong)uVar11 ^ 0x71785e1e)) ^ uVar29 ^ uVar33 ^ uVar45;
  *puVar1 = uVar29 ^ uVar44;
  puVar9 = (ulonglong *)(lVar13 + -0xa08);
  bVar57 = (byte)uVar58;
  uVar33 = CONCAT44(DAT_182671db0,DAT_182671db0);
  *puVar9 = uVar29 >> ((bVar57 ^ 0xd9) & 0x3f) ^ uVar52;
  lVar12 = DAT_182671c40;
  uVar29 = (*(ulonglong *)(lVar13 - ((ulonglong)uVar16 ^ 0xefc3fdfc)) ^ uVar44) <<
           (((byte)uVar16 ^ 4) & 0x3f);
  *puVar7 = uVar29 ^ uVar33;
  uVar60 = CONCAT44(DAT_182671cf8,DAT_182671cf8);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar16 ^ 0xefc3feac)) =
       (*(ulonglong *)(lVar12 - (uVar51 ^ 0xfbdff5f1)) ^ uVar52 | uVar29) ^ uVar60;
  uVar50 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *puVar4 = (*(ulonglong *)(lVar12 + -0x110) ^ uVar45) - (uVar60 ^ *puVar8) ^ uVar50;
  uVar33 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  uVar45 = uVar33 ^ uVar47 ^ *puVar6 ^ uVar53 ^ *puVar2;
  *(ulonglong *)(lVar12 + -0xc38) = uVar45;
  uVar24 = DAT_182671cb8;
  lVar12 = DAT_182671c40;
  uVar52 = CONCAT44(DAT_182671cb8,DAT_182671cb8);
  uVar41 = DAT_182671c4c ^ 0xd9b30c28;
  *(ulonglong *)(DAT_182671c40 + -0x228) = (uVar45 ^ uVar33) >> ((bVar57 ^ 0xd9) & 0x3f) ^ uVar52;
  uVar29 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *puVar3 = (uVar45 ^ uVar33) << ((bVar57 ^ 0xd9) & 0x3f) ^ uVar29;
  *(uint *)(lVar12 - (uVar51 ^ 0xfbdff87d)) =
       uVar41 + *(int *)(lVar12 - ((ulonglong)uVar43 ^ 0x654ce4e));
  uVar23 = DAT_182671e78;
  lVar13 = DAT_182671c40;
  uVar44 = CONCAT44(DAT_182671e98,DAT_182671e98);
  uVar54 = uVar52 ^ *(ulonglong *)(lVar12 + -0x228) | uVar29 ^ *puVar3;
  uVar33 = uVar54 ^ uVar44;
  *(ulonglong *)(lVar12 + -0x5e8) = uVar33;
  uVar25 = DAT_182671f00;
  uVar45 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar13 + -0x960) = (uVar47 ^ *puVar2) - uVar54 ^ uVar45;
  uVar47 = CONCAT44(uVar25,uVar25);
  uVar33 = *(ulonglong *)(lVar13 - ((ulonglong)uVar11 ^ 0x7178598e)) ^ uVar47 ^ uVar44 ^ uVar50 ^
           uVar33;
  *puVar5 = uVar33;
  local_100 = (byte)uVar34;
  uVar54 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *puVar1 = (uVar33 ^ uVar47) >> ((local_100 ^ 0x92) & 0x3f) ^ uVar54;
  uVar41 = DAT_182671c88;
  lVar12 = DAT_182671c40;
  uVar33 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar30 ^ 0x103c0473)) ^ uVar47) <<
           ((bVar57 ^ 0xff) & 0x3f);
  *puVar9 = uVar33 ^ CONCAT44(DAT_182671fb4,DAT_182671fb4);
  uVar21 = DAT_182671c88;
  uVar11 = DAT_182671c50;
  puVar39 = (ulonglong *)(lVar12 - ((ulonglong)uVar41 ^ 0xc3a06b3d));
  uVar44 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar27 ^ 0xbd9e706b)) = (uVar54 ^ *puVar39 | uVar33) ^ uVar44;
  uVar27 = DAT_182671e00;
  uVar33 = (ulonglong)DAT_182671e00;
  if ((uVar21 & 1) == 0) {
    uVar11 = uVar21;
  }
  DAT_182671c90 = uVar11;
  *(int *)(lVar12 - (uVar48 ^ 0x33f94292)) = -0x46b1d085 << (((byte)uVar21 ^ 0xf6) & 0x1f);
  *(ulonglong *)(lVar12 + -0x110) = (uVar50 ^ *puVar4) - (*puVar7 ^ uVar44) ^ uVar56;
  *(ulonglong *)(lVar12 - ((ulonglong)uVar41 ^ 0xc3a06c75)) =
       *(ulonglong *)(lVar12 - (uVar51 ^ 0xfbdff699)) ^
       *(ulonglong *)(lVar12 - ((ulonglong)uVar11 ^ 0xfbdff771)) ^ CONCAT44(uVar27,uVar27) ^ uVar45
       ^ uVar60;
  uVar23 = DAT_182671e38;
  uVar50 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar12 + -0xc38) =
       ((ulonglong)(uVar27 >> 0x16) | uVar33 << 10) ^ *puVar6 >> 0x16 ^ uVar50;
  uVar47 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar41 ^ 0xc3a062cd)) =
       (*(ulonglong *)(lVar12 - (uVar48 ^ 0x33f948c2)) ^ CONCAT44(uVar27,uVar27)) <<
       (((byte)uVar11 ^ 0xd3) & 0x3f) ^ uVar47;
  puVar37 = (ulonglong *)(lVar12 - (uVar51 ^ 0xfbdffdd1));
  uVar54 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  uVar33 = uVar47 ^ *puVar37 | *(ulonglong *)(lVar12 + -0xc38) ^ uVar50;
  puVar35 = (ulonglong *)(lVar12 - ((ulonglong)uVar11 ^ 0xfbdff271));
  *puVar3 = uVar33 ^ uVar54;
  uVar23 = DAT_182671cd4;
  *puVar35 = uVar33 >> (((byte)uVar27 ^ *(byte *)puVar6) & 0x3f);
  uVar60 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar12 - (uVar51 ^ 0xfbdffa11)) =
       (*(ulonglong *)(lVar12 - (uVar48 ^ 0x33f94d32)) ^ uVar45) - (uVar54 ^ *puVar3) ^ uVar60;
  uVar11 = DAT_182671c5c;
  *puVar5 = *(ulonglong *)(lVar12 - ((ulonglong)uVar34 ^ 0xe6b16580)) ^ uVar54 ^ uVar47 ^ *puVar3;
  uVar45 = CONCAT44(DAT_182671f44,DAT_182671f44);
  local_f8 = (byte)uVar43;
  uVar33 = *(ulonglong *)(lVar12 - ((ulonglong)uVar11 ^ 0xdceef82d)) ^ uVar45 ^ uVar54 ^ uVar56 ^
           *puVar3;
  *puVar1 = uVar33;
  uVar47 = CONCAT44(DAT_182671f6c,DAT_182671f6c);
  bVar28 = (byte)DAT_182671c88 ^ 0xf7;
  *(ulonglong *)(lVar12 - ((ulonglong)uVar11 ^ 0xdceef335)) =
       (uVar33 ^ uVar45) >> ((local_f8 ^ 0x84) & 0x3f) ^ uVar47;
  uVar33 = CONCAT44(DAT_182671f58,DAT_182671f58);
  *puVar4 = (uVar45 ^ *puVar39) << (bVar28 & 0x3f) ^ uVar33;
  lVar12 = DAT_182671c40;
  uVar61 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar33 = *(ulonglong *)(DAT_182671c40 - (uVar38 ^ 0x7df9595f)) ^ uVar33 | uVar47 ^ *puVar9;
  *puVar8 = uVar33 ^ uVar61;
  uVar11 = DAT_182671e70;
  uVar50 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar12 + -0xc38) = (*(ulonglong *)(lVar12 + -0x110) ^ uVar56) - uVar33 ^ uVar50;
  *(ulonglong *)(lVar12 - (uVar31 ^ 0x443542be)) =
       *puVar7 ^ uVar60 ^ uVar44 ^ uVar52 ^ *(ulonglong *)(lVar12 + -0x5e8);
  uVar23 = DAT_182671d84;
  *puVar35 = ((ulonglong)uVar24 << 0x14 | (ulonglong)(uVar24 >> 0xc)) ^ *puVar6 >> 0xc ^ uVar53;
  uVar33 = *puVar2;
  uVar45 = (*(ulonglong *)(lVar12 - (uVar36 ^ 0xfff9f74f)) ^ uVar52) << 0x34;
  *(ulonglong *)(lVar12 + -0x960) = uVar45 ^ CONCAT44(uVar23,uVar23);
  uVar45 = uVar45 | uVar53 ^ uVar33;
  *(ulonglong *)(lVar12 + -0x228) = uVar45 ^ uVar29;
  uVar53 = *(ulonglong *)(lVar12 + -0x5e8);
  *puVar5 = (CONCAT44(uVar16,uVar18) ^ 0x8fe11078c6feb6b4) <<
            ((*(byte *)(lVar12 + -0xc38) ^ (byte)uVar11) & 0x3f);
  uVar33 = CONCAT44(DAT_182671e80,DAT_182671e80);
  *puVar3 = (uVar60 ^ uVar53) - uVar45 ^ uVar33;
  uVar53 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar45 = *(ulonglong *)(lVar12 + -0xc38) ^ uVar53 ^ uVar50 ^ uVar29 ^ *puVar37;
  *puVar1 = uVar45;
  uVar11 = DAT_182671c54;
  uVar29 = (uVar45 ^ uVar53) >> (((byte)DAT_182671c88 ^ 0xfc) & 0x3f);
  *puVar9 = uVar29 ^ CONCAT44(DAT_182671ef8,DAT_182671ef8);
  uVar53 = (uVar45 ^ uVar53) << (((byte)uVar11 ^ 0x29) & 0x3f);
  *puVar4 = uVar53 ^ CONCAT44(DAT_182671f3c,DAT_182671f3c);
  uVar48 = CONCAT44(DAT_182671f84,DAT_182671f84);
  *(ulonglong *)(lVar12 - (uVar38 ^ 0x7df95ecf)) = (uVar53 | uVar29) ^ uVar48;
  uVar53 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar29 = (*(ulonglong *)(lVar12 + -0xc38) ^ uVar50) -
           (CONCAT44(uVar30,uVar19) ^ 0x30f2315e6723a162) ^ uVar53;
  *puVar7 = uVar29;
  uVar16 = DAT_182671c90;
  *(ulonglong *)(lVar12 - ((ulonglong)DAT_182671c90 ^ 0xfbdff369)) =
       CONCAT44(uVar40,uVar34) ^ uVar29 ^ uVar53 ^ 0x79e8de1d0a6b4802;
  uVar25 = DAT_182671f30;
  uVar45 = CONCAT44(DAT_182671cb4,DAT_182671cb4);
  uVar54 = (*puVar7 ^ uVar53) - (*(ulonglong *)(lVar12 - (uVar42 ^ 0x76048090)) ^ uVar48) ^ uVar45;
  *puVar2 = uVar54;
  uVar23 = DAT_182671d4c;
  lVar12 = DAT_182671c40;
  uVar56 = CONCAT44(uVar25,uVar25);
  *(ulonglong *)(DAT_182671c40 + -0x960) =
       (uVar48 ^ *(ulonglong *)(DAT_182671c40 + -0x110)) -
       (CONCAT44(uVar14,DAT_182671c7c) ^ 0xf2a6ffe66a4a687e) ^ uVar56;
  uVar51 = CONCAT44(uVar23,uVar23);
  bVar28 = (byte)DAT_182671c60;
  uVar53 = uVar51 ^ uVar33 ^ uVar61 ^ *puVar3 ^ *puVar8;
  *puVar5 = uVar53;
  puVar39 = (ulonglong *)(lVar12 - (uVar49 ^ 0x44523e51));
  uVar29 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar48 = (*puVar39 ^ uVar51) >> ((bVar28 ^ 5) & 0x3f);
  *(ulonglong *)(lVar12 + -0x5e8) = uVar48 ^ uVar47;
  uVar23 = DAT_182671dd8;
  *(ulonglong *)(lVar12 + -0x228) = (uVar53 ^ uVar51) << (((byte)uVar22 ^ 0x4d) & 0x3f) ^ uVar29;
  uVar11 = DAT_182671c60;
  uVar48 = *(ulonglong *)(lVar12 - (uVar31 ^ 0x44354c06)) ^ uVar29 | uVar48;
  uVar44 = (ulonglong)DAT_182671c60;
  *puVar1 = uVar48 ^ CONCAT44(uVar23,uVar23);
  uVar29 = (uVar33 ^ *puVar3) - (CONCAT44(uVar40,uVar16) ^ 0xde2813f9dfd8f427);
  *puVar9 = uVar29 ^ CONCAT44(DAT_182671d70,DAT_182671d70);
  uVar33 = CONCAT44(DAT_182671e4c,DAT_182671e4c);
  *puVar4 = uVar29 - uVar48 ^ uVar33;
  uVar23 = DAT_182671cac;
  uVar53 = CONCAT44(DAT_182671d10,DAT_182671d10);
  uVar29 = (CONCAT44(uVar43,uVar11) ^ 0xa011489829243099) + uVar48 ^ uVar53;
  *(ulonglong *)(lVar12 + -0xc38) = uVar29;
  uVar48 = CONCAT44(uVar23,uVar23);
  *puVar6 = uVar48 ^ uVar29 ^ uVar53 ^ uVar45 ^ uVar54;
  uVar48 = uVar48 ^ *puVar6;
  *puVar7 = -0x6d563cbc279b289e << (((byte)uVar17 ^ 0xff) & 0x3f);
  uVar54 = CONCAT44(DAT_182671d28,DAT_182671d28);
  uVar53 = uVar48 >> ((local_f8 ^ 0xaf) & 0x3f);
  uVar29 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(ulonglong *)(lVar12 + -0x110) = uVar53 ^ uVar54;
  uVar48 = uVar48 << 0x3b;
  *puVar8 = uVar48 ^ uVar29;
  uVar23 = DAT_182671f4c;
  uVar29 = (ulonglong)DAT_182671c7c;
  uVar47 = CONCAT44(DAT_182671e08,DAT_182671e08);
  *puVar39 = (uVar48 | uVar53) ^ uVar47;
  lVar12 = DAT_182671c40;
  uVar48 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c54 ^ 0x71785ae6)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xbd9e78f3)) ^ uVar45) -
       (*(ulonglong *)(DAT_182671c40 - (uVar42 ^ 0x76048c28)) ^ uVar47) ^ uVar48;
  uVar23 = DAT_182671ce0;
  *(ulonglong *)(lVar12 + -0x228) =
       *(ulonglong *)(lVar12 - (uVar36 ^ 0xfff9facf)) ^ uVar54 |
       CONCAT44(uVar30,uVar15) ^ 0x685bb8986397906;
  uVar25 = DAT_182671d1c;
  uVar42 = CONCAT44(uVar23,uVar23);
  *puVar32 = *(ulonglong *)(lVar12 - (uVar31 ^ 0x4435474e)) ^
             *(ulonglong *)(lVar12 - (uVar44 ^ 0xefc3f0a4)) ^ uVar42 ^ uVar33 ^ uVar56;
  uVar29 = CONCAT44(uVar25,uVar25);
  *puVar9 = (uVar42 ^ *puVar3) >> (((byte)uVar18 ^ 0xb) & 0x3f) ^ uVar29;
  *puVar1 = CONCAT44(uVar14,uVar22) ^ CONCAT44(uVar58,uVar59) ^ 0x23da7a39e4fcef25;
  uVar23 = DAT_182671d9c;
  *(ulonglong *)(lVar12 + -0xc38) = (uVar42 ^ *puVar32) << ((local_100 ^ 0xb3) & 0x3f) ^ uVar51;
  uVar42 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar34 ^ 0xe6b162b8)) =
       (*(ulonglong *)(lVar12 - (uVar49 ^ 0x445239f1)) ^ uVar29 |
       *(ulonglong *)(lVar12 - ((ulonglong)DAT_182671c5c ^ 0xdceef505)) ^ uVar51) ^ uVar42;
  *puVar6 = (uVar33 ^ *puVar4) - (uVar42 ^ *puVar7) ^ uVar46;
  uVar33 = CONCAT44(DAT_182671f14,DAT_182671f14);
  *puVar8 = uVar33 ^ uVar42 ^ uVar48 ^ *puVar7 ^ *(ulonglong *)(lVar12 + -0x5e8);
  *(ulonglong *)(lVar12 - ((ulonglong)uVar59 ^ 0x7dff6988)) =
       CONCAT44(uVar58,uVar40) ^ CONCAT44(uVar20,uVar43) ^ 0xb21f1ca5c29a4112;
  uVar25 = DAT_182671ec4;
  uVar42 = *puVar8;
  uVar29 = (uVar33 ^ *puVar8) >> ((bVar57 ^ 0xee) & 0x3f);
  *(ulonglong *)(lVar12 + -0x110) = uVar29 ^ CONCAT44(DAT_182671d7c,DAT_182671d7c);
  uVar23 = DAT_182671e58;
  DAT_182671c88 = DAT_182671c74 * DAT_182671c5c;
  uVar53 = CONCAT44(uVar25,uVar25);
  *(ulonglong *)(lVar12 + -0x228) = (uVar33 ^ uVar42) << 0x29 ^ uVar53;
  uVar25 = DAT_182671ec8;
  lVar13 = DAT_182671c40;
  uVar29 = *(ulonglong *)(lVar12 - (uVar49 ^ 0x445231d1)) ^ uVar53 | uVar29;
  *(ulonglong *)(lVar12 + -0x960) = uVar29 ^ CONCAT44(uVar23,uVar23);
  uVar53 = CONCAT44(uVar25,uVar25);
  *(ulonglong *)(lVar13 - (uVar38 ^ 0x7df95407)) =
       (uVar48 ^ *(ulonglong *)(lVar13 + -0x5e8)) - uVar29 ^ uVar53;
  uVar29 = (ulonglong)DAT_182671e70;
  uVar42 = *(ulonglong *)(lVar13 - ((ulonglong)uVar40 ^ 0xf48407ec)) ^ uVar47 ^ *puVar5 ^ uVar50 ^
           uVar46;
  *puVar3 = uVar42;
  uVar14 = DAT_182671c5c;
  uVar33 = CONCAT44(DAT_182671d30,DAT_182671d30);
  *puVar9 = (uVar42 >> 0x20 ^ uVar29) >> 8 ^ uVar33;
  uVar25 = DAT_182671e20;
  uVar42 = (uVar50 ^ uVar42) << (((byte)uVar14 ^ 0x25) & 0x3f);
  *puVar55 = uVar42 ^ CONCAT44(DAT_182671de4,DAT_182671de4);
  uVar42 = uVar33 ^ *puVar9 | uVar42;
  uVar33 = CONCAT44(DAT_182671f98,DAT_182671f98);
  uVar29 = uVar42 ^ uVar33;
  *puVar4 = uVar29;
  uVar23 = DAT_182671dd4;
  *puVar7 = (*puVar6 ^ uVar46) - uVar42 ^ CONCAT44(uVar25,uVar25);
  uVar25 = DAT_182671f90;
  uVar42 = CONCAT44(uVar23,uVar23);
  uVar29 = uVar42 ^ uVar33 ^ uVar53 ^ *puVar1 ^ uVar29;
  *puVar2 = uVar29;
  *puVar8 = (uVar29 ^ uVar42) >> (((byte)uVar40 ^ 0x48) & 0x3f) ^ CONCAT44(uVar25,uVar25);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar26 * 4) = uVar10 ^ uVar40;
  return;
}



############ FUN_ 180fb0440 size=4290 ############

void FUN_180fb0440(void)

{
  ulonglong *puVar1;
  uint *puVar2;
  longlong lVar3;
  byte bVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  longlong lVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  
  uVar38 = DAT_182671c78;
  uVar17 = DAT_182671c74;
  uVar9 = DAT_182671c70;
  uVar8 = DAT_182671c68;
  uVar7 = DAT_182671c64;
  uVar6 = DAT_182671c60;
  uVar16 = DAT_182671c5c;
  uVar28 = DAT_182671c4c;
  uVar24 = (ulonglong)DAT_182671c60;
  uVar34 = (ulonglong)DAT_182671c70;
  DAT_182671c8c = DAT_182671c68 + DAT_182671c60;
  uVar26 = (ulonglong)DAT_182671c64;
  uVar27 = *(uint *)(&DAT_182613218 + DAT_1826722a4) ^ DAT_182671c68;
  uVar31 = (ulonglong)DAT_182671c4c;
  uVar40 = (ulonglong)DAT_182671c5c;
  uVar45 = (ulonglong)DAT_182671c78;
  uVar48 = DAT_182671c88 | DAT_182671c5c;
  uVar46 = DAT_182671c64 + DAT_182671c4c;
  uVar36 = DAT_182671c7c * DAT_182671c74;
  uVar42 = DAT_182671c70 - DAT_182671c78;
  uVar15 = *(uint *)(&DAT_182613220 + DAT_1826722a4) ^ DAT_182671c8c;
  DAT_182671c58 = uVar46;
  DAT_182671c80 = uVar48;
  DAT_182671c90 = uVar36;
  DAT_182671c94 = uVar42;
  *(undefined8 *)(DAT_182671c40 + -0xcf0) = *(undefined8 *)(DAT_182671c40 + -0x148);
  *(ulonglong *)(DAT_182671c40 - (uVar31 ^ 0x9d5c1932)) =
       CONCAT44(DAT_182671dfc,DAT_182671dfc) ^ *(ulonglong *)(DAT_182671c40 + -0x628) |
       CONCAT44(uVar6,uVar7) ^ 0x53fc25baf66a8937;
  uVar13 = DAT_182671e74;
  uVar12 = DAT_182671d2c;
  *(uint *)(DAT_182671c40 + -0x634) =
       *(uint *)(DAT_182671c40 - ((ulonglong)uVar36 ^ 0xf8ae6368)) ^ DAT_182671d2c ^ DAT_182671ce8;
  uVar11 = DAT_182671cd8;
  lVar33 = DAT_182671c40;
  uVar21 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0x6cab73f4)) =
       CONCAT44(uVar46,uVar28) ^ *(ulonglong *)(DAT_182671c40 + -0x7c0) ^ uVar21 ^
       0x36e190990c576844;
  *(undefined8 *)(lVar33 + -0xd00) = *(undefined8 *)(lVar33 + -0xcf0);
  uVar43 = DAT_182671cc4;
  uVar18 = (ulonglong)uVar17;
  uVar47 = (ulonglong)DAT_182671d58;
  *(ulonglong *)(lVar33 + -0x4a8) =
       *(ulonglong *)(lVar33 - ((ulonglong)uVar17 ^ 0xa52aeb0c)) ^ uVar47;
  uVar10 = DAT_182671cac;
  *(ulonglong *)(lVar33 + -0x628) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar33 + -0xbd8)) <<
       ((*(byte *)(lVar33 - ((ulonglong)uVar42 ^ 0xb4d8646e)) ^ (byte)uVar43) & 0x3f);
  uVar37 = DAT_182671f60;
  uVar19 = DAT_182671f14;
  *(uint *)(lVar33 - ((ulonglong)uVar38 ^ 0xb7d3048e)) =
       *(uint *)(*(ulonglong *)(lVar33 - ((ulonglong)uVar48 ^ 0xfffbdf57)) ^ uVar47) ^ uVar10 ^
       DAT_182671f14;
  puVar1 = (ulonglong *)(lVar33 + -0x228);
  *(uint *)(lVar33 + -0x670) =
       (int)(*(uint *)(lVar33 + -0xc70) ^ uVar10) >> (((byte)uVar9 ^ 0xfb) & 0x1f) ^ DAT_182671db8;
  *puVar1 = *(ulonglong *)(lVar33 + -0xa70);
  uVar11 = DAT_182671e3c;
  *(uint *)(lVar33 + -0x444) =
       (*(uint *)(lVar33 - ((ulonglong)uVar16 ^ 0x462adfa9)) ^ DAT_182671db8) &
       (uVar12 ^ *(uint *)(lVar33 + -0x634)) ^ uVar37;
  uVar20 = DAT_182671c88;
  uVar41 = (ulonglong)DAT_182671c88;
  puVar2 = (uint *)(lVar33 + -0x58c);
  *(ulonglong *)(lVar33 - (uVar41 ^ 0xffdbdc3f)) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar33 + -0x380)) << 0x31;
  *puVar2 = *(uint *)(lVar33 + -0x444) ^ DAT_182671de4 ^ uVar37 ^ uVar12 ^
            *(uint *)(lVar33 + -0x634);
  uVar11 = DAT_182671ed0;
  lVar5 = DAT_182671c40;
  uVar35 = (ulonglong)uVar8;
  uVar44 = CONCAT44(DAT_182671d88,DAT_182671d88);
  lVar3 = *(longlong *)(DAT_182671c40 + -0xd00);
  *(ulonglong *)(lVar33 + -0x110) =
       (longlong)(int)(*(uint *)(lVar33 - (uVar35 ^ 0x460add9d)) ^ uVar37) ^ uVar44;
  uVar43 = DAT_182671c8c;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c8c ^ 0x45b0dcdd)) =
       lVar3 + 8 + (CONCAT44(uVar6,uVar46) ^ 0xffa6018c9225c2eb) * 0x10 ^ uVar29;
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x9d5c1692)) =
       -0x33f5853cc5deba60 - (CONCAT44(uVar48,uVar46) ^ 0xeb8e1a5fb2273988);
  uVar11 = DAT_182671f00;
  uVar25 = CONCAT44(uVar19,uVar19);
  uVar32 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar5 + -0xbd8) =
       *(ulonglong *)(uVar29 ^ *(ulonglong *)(lVar5 + -0x7b8)) ^ uVar25 ^ uVar32;
  uVar49 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0xffdbd18f)) =
       CONCAT44(uVar42,uVar9) ^ uVar49 ^ uVar44 ^ *(ulonglong *)(lVar5 + -0x110) ^
       0x4b27961993548d1b;
  uVar13 = DAT_182671e98;
  uVar11 = DAT_182671cf8;
  uVar39 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0xf4c9ac09)) ^ uVar32) &
            (uVar49 ^ *(ulonglong *)(lVar5 + -0xa70)) ^ uVar39;
  uVar12 = DAT_182671e6c;
  uVar50 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0xa52ae58c)) =
       (uVar44 ^ *(ulonglong *)(DAT_182671c40 + -0x110)) & *(ulonglong *)(DAT_182671c40 + 0x20) ^
       uVar50;
  lVar3 = DAT_182671c40;
  uVar32 = CONCAT44(DAT_182671e2c,DAT_182671e2c);
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar43 ^ 0x45b0dca5)) =
       (*puVar1 ^ uVar39 | uVar50 ^ *(ulonglong *)(DAT_182671c40 + -0x380)) ^ uVar32;
  uVar43 = DAT_182671c7c;
  *(ulonglong *)(lVar3 + -0xd88) =
       (CONCAT44(uVar6,uVar8) ^ 0x2e5165f9787027f) << ((*(byte *)puVar1 ^ (byte)uVar13) & 0x3f);
  *(ulonglong *)(uVar29 ^ *(ulonglong *)(lVar3 + -0x7b8)) =
       *(ulonglong *)(lVar3 - (uVar40 ^ 0x462ade19)) ^ uVar32 ^ uVar25;
  uVar19 = *(uint *)(lVar3 + -0x444) ^ uVar12 ^ uVar37 ^ DAT_182671c8c ^ 0xba4f249a;
  *(uint *)(lVar3 + -0x784) = uVar19;
  *(uint *)(lVar3 + -0x94) =
       (uVar19 ^ uVar12) & (*(uint *)(lVar3 + -0xc70) ^ uVar10) ^ DAT_182671dbc;
  uVar19 = DAT_182671f7c;
  uVar30 = (*(uint *)(lVar3 - ((ulonglong)uVar48 ^ 0xfffbdfbb)) ^ uVar37) &
           *(uint *)(((ulonglong)uVar43 ^ 0x260295fd) + lVar3) ^ DAT_182671f68;
  *(uint *)(lVar3 + -0x670) = uVar30;
  uVar10 = DAT_182671e34;
  uVar30 = (*(uint *)(lVar3 - (uVar41 ^ 0xffdbdb6b)) ^ DAT_182671dbc | uVar30 ^ DAT_182671f68) ^
           DAT_182671e10;
  *(uint *)(lVar3 + -0x634) = uVar30;
  uVar32 = (ulonglong)DAT_182671d90;
  *(uint *)(uVar47 ^ *(ulonglong *)(lVar3 + -0x4a8)) = uVar30 ^ DAT_182671e10 ^ DAT_182671f14;
  lVar3 = DAT_182671c40;
  puVar22 = (uint *)((CONCAT44(uVar20,uVar17) ^ 0xffdbdbffa52ae60c) * 0x10 +
                    *(longlong *)(DAT_182671c40 + -0xd00) + 4);
  *(ulonglong *)(DAT_182671c40 + -0x4d0) = (ulonglong)puVar22 ^ uVar32;
  *(uint *)(lVar3 + -0xc70) = *puVar22 ^ DAT_182671ec4 ^ DAT_182671f14;
  uVar20 = (*(uint *)(lVar3 + -0x444) ^ uVar37) & 4;
  uVar37 = (*(uint *)(lVar3 - (uVar18 ^ 0xa52aea7c)) ^ DAT_182671ec4) &
           (*(uint *)(lVar3 + -0x784) ^ uVar12);
  *(uint *)(lVar3 + -0x670) = uVar20 ^ uVar10;
  uVar20 = (uVar20 | uVar37) ^ DAT_182671d44;
  *(longlong *)(lVar3 + -0xbd8) = *(longlong *)(lVar3 + -0x628) << 0x3f;
  *(uint *)(lVar3 + -0x94) = uVar37 ^ uVar19;
  *(uint *)(lVar3 - (uVar45 ^ 0xb7d308aa)) = uVar20;
  *(uint *)(uVar32 ^ *(ulonglong *)(lVar3 + -0x4d0)) =
       *(uint *)(lVar3 + -0x54) ^ DAT_182671d44 ^ DAT_182671f14;
  uVar20 = DAT_182671c8c;
  lVar33 = (CONCAT44(uVar46,uVar43) ^ 0x9225c2eb260295d4) * 0x10 + *(longlong *)(lVar3 + -0xd00);
  *(longlong *)(lVar3 + -0x148) = lVar33;
  uVar10 = DAT_182671e9c;
  uVar39 = (ulonglong)DAT_182671d8c;
  uVar32 = *(ulonglong *)(lVar3 + -0x7b8);
  uVar43 = *(uint *)(lVar3 - ((ulonglong)uVar48 ^ 0xfffbde73));
  *(longlong *)(lVar3 + -0xcf0) = lVar33;
  uVar37 = DAT_182671ed4;
  uVar19 = DAT_182671eb0;
  uVar43 = uVar43 ^ uVar10 ^ DAT_182671de4;
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar28,uVar42) ^ 0x2ef8c7de3265aebe) -
       (CONCAT44(uVar16,uVar20) ^ 0xad86394bb1cafa86);
  *(uint *)(lVar3 + -0x784) = uVar43;
  uVar20 = uVar43 ^ uVar19 ^ uVar10;
  *(uint *)(lVar3 + -0xc70) = uVar20;
  *(undefined1 *)(lVar3 + -0x87a) = **(undefined1 **)(lVar3 + -0x758);
  *(longlong *)(lVar3 + -0xd00) = lVar33;
  *puVar1 = (CONCAT44(uVar16,uVar17) ^ 0xf2d02032ce09b0d8) -
            (uVar50 ^ *(ulonglong *)(lVar3 + -0x380));
  *(ulonglong *)(lVar3 + -0x938) =
       (CONCAT44(uVar7,uVar46) ^ 0xf4c9a7d19225c2eb) * 0x10 + lVar33 ^ uVar39;
  uVar43 = *(uint *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0x9d5c1222)) ^ uVar39) ^ uVar37 ^
           DAT_182671f14;
  *(uint *)(lVar3 + -0x444) = uVar43;
  *(undefined1 *)(lVar3 + -0x652) = **(undefined1 **)(lVar3 + -0x370);
  uVar43 = (int)(uVar43 ^ uVar37) >> 0x1f;
  *(uint *)(lVar3 + -0x670) = uVar43 ^ DAT_182671df4;
  *(ulonglong *)(lVar3 + -0xd88) = *(ulonglong *)(uVar29 ^ uVar32) ^ uVar25;
  uVar28 = DAT_182671d18;
  uVar43 = (uVar20 ^ uVar19) & uVar43 ^ DAT_182671d18;
  *(uint *)(lVar3 + -0x94) = uVar43;
  *(uint *)(lVar3 - ((ulonglong)uVar36 ^ 0xf8ae6670)) =
       uVar43 ^ uVar20 ^ DAT_182671ed8 ^ uVar28 ^ uVar19;
  uVar13 = DAT_182671e8c;
  uVar44 = CONCAT44(DAT_182671f30,DAT_182671f30);
  uVar32 = (longlong)(int)(uVar28 ^ *(uint *)(lVar3 + -0x94)) ^ uVar44;
  puVar23 = (ulonglong *)(*(longlong *)(lVar3 + -0xd00) + 8);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar32;
  *(ulonglong *)(lVar3 + -0x628) =
       (uVar49 ^ *(ulonglong *)(lVar3 + -0xa70)) <<
       (((byte)uVar11 ^ *(byte *)(lVar3 + -0x380)) & 0x3f);
  uVar11 = DAT_182671f84;
  uVar49 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xad8) = (ulonglong)puVar23 ^ uVar49;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x110) = *puVar23 ^ uVar29 ^ uVar25;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar48 ^ 0xfffbd9d7)) =
       CONCAT44(uVar8,uVar38) ^ CONCAT44(uVar28,uVar28) ^ uVar44 ^ uVar32 ^ 0xb9f52626482cf701;
  *(uint *)(lVar3 + -0x670) = (DAT_182671c68 ^ 0xda48cbc7) + 0x465bd62c;
  uVar13 = DAT_182671f2c;
  uVar47 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x110)) & (CONCAT44(uVar28,uVar28) ^ *puVar1) ^ uVar47;
  uVar43 = DAT_182671f1c;
  puVar22 = (uint *)(lVar3 + -0x4ac);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x6cab7894)) =
       (uVar44 ^ *(ulonglong *)(lVar3 + -0xbd8)) & *(ulonglong *)(lVar3 + 0x20) ^
       CONCAT44(uVar13,uVar13);
  uVar17 = DAT_182671f4c;
  uVar32 = CONCAT44(DAT_182671c98,DAT_182671c98);
  *(ulonglong *)(lVar3 + -0x380) =
       (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0xa70) |
       uVar47 ^ *(ulonglong *)(lVar3 + -0xd88)) ^ uVar32;
  *(ulonglong *)(uVar49 ^ *(ulonglong *)(lVar3 + -0xad8)) =
       *(ulonglong *)(lVar3 - (uVar41 ^ 0xffdbd87f)) ^ uVar32 ^ uVar25;
  uVar16 = ~uVar17 ^ uVar28 ^ *(uint *)(lVar3 + -0x94);
  *(uint *)(lVar3 + -0x670) = uVar16;
  uVar16 = (*(uint *)(lVar3 + -0x444) ^ uVar37) & (uVar16 ^ uVar17) ^ DAT_182671ea4;
  uVar38 = (uVar28 ^ *(uint *)(lVar3 + -0x94)) & *(uint *)(lVar3 + 0x28) ^ DAT_182671d60;
  bVar4 = (byte)DAT_182671c74;
  *(uint *)(lVar3 + -0x444) = uVar38;
  uVar38 = uVar38 ^ DAT_182671d60;
  *puVar22 = uVar16;
  uVar38 = (uVar38 | uVar16 ^ DAT_182671ea4) ^ uVar43;
  *(uint *)(lVar3 + -0x684) = uVar38;
  uVar16 = DAT_182671f14;
  uVar43 = uVar43 ^ DAT_182671f14;
  uVar32 = (ulonglong)DAT_182671d84;
  *puVar22 = (*(uint *)(lVar3 - (uVar18 ^ 0xa52ae188)) ^ uVar10) >> ((bVar4 ^ 0x18) & 0x1f);
  *(uint *)(uVar39 ^ *(ulonglong *)(lVar3 + -0x938)) = uVar43 ^ uVar38;
  *(ulonglong *)(lVar3 + -0x538) = *(longlong *)(lVar3 + -0xd00) + 4U ^ uVar32;
  uVar34 = (ulonglong)DAT_182671c7c;
  uVar43 = *(uint *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xffa604b4)) ^ uVar32) ^ DAT_182671f9c ^
           uVar16;
  *(uint *)(lVar3 + -0x444) = uVar43;
  *(uint *)(lVar3 - ((ulonglong)uVar46 ^ 0x9225c56f)) =
       (uVar43 ^ DAT_182671f9c) & (uVar17 ^ *(uint *)(lVar3 + -0x670)) ^ DAT_182671ee8;
  uVar43 = DAT_182671d14;
  uVar17 = *(uint *)(lVar3 + -0x784) ^ DAT_182671ee8;
  uVar28 = (uVar28 ^ *(uint *)(lVar3 + -0x94)) & (DAT_182671c58 ^ 0x9225c2ef) ^ DAT_182671f54;
  *puVar22 = uVar28;
  uVar17 = uVar28 ^ DAT_182671f54 | uVar17;
  *(uint *)(lVar3 + -0x27c) = uVar17 ^ uVar43;
  uVar43 = DAT_182671d00;
  *(uint *)(*(ulonglong *)(lVar3 - (uVar35 ^ 0x460adce1)) ^ uVar32) = uVar17 ^ uVar16;
  uVar28 = DAT_182671df8 ^ DAT_182671ed8;
  *(longlong *)(lVar3 + -0x148) = *(longlong *)(lVar3 + -0xd00) + 0x10;
  *(uint *)(lVar3 - (uVar34 ^ 0x26029191)) = uVar28 ^ *puVar2;
  *(undefined8 *)(lVar3 - (uVar31 ^ 0x9d5c17ea)) = *(undefined8 *)(lVar3 + -0x148);
  *(ulonglong *)(lVar3 + -0x148) = CONCAT44(uVar7,uVar42) ^ 0xbd2fe3266b04e9ef;
  *(uint *)(lVar3 + -0x670) = uVar43 ^ DAT_182671df8 ^ *(uint *)(lVar3 + -0x444);
  *(undefined8 *)(lVar3 + -0xd00) = *(undefined8 *)(lVar3 + -0xcf0);
  *(ulonglong *)(lVar3 + -0xcf0) = CONCAT44(DAT_182671c8c,uVar36) ^ 0x4310eaa54e303f6a;
  uVar28 = DAT_182671ecc;
  uVar32 = (ulonglong)DAT_182671d64;
  *(ulonglong *)(lVar3 + -0x9a0) =
       *(longlong *)(lVar3 - (uVar40 ^ 0x462ad4d9)) +
       (CONCAT44(uVar9,uVar6) ^ 0x6cab72e4ffa6018c) * 0x10 ^ uVar32;
  uVar11 = DAT_182671ce0;
  uVar16 = *(uint *)(*(ulonglong *)(lVar3 - (uVar40 ^ 0x462ad079)) ^ uVar32) ^ DAT_182671d20 ^
           uVar16;
  *(uint *)(lVar3 + -0x94) = uVar16;
  *(uint *)(lVar3 + -0x784) = (int)(uVar16 ^ DAT_182671d20) >> ((byte)uVar48 & 0x1f) ^ DAT_182671e78
  ;
  *(undefined8 *)(lVar3 - (uVar35 ^ 0x460adff1)) = 0xfa3cbf305152a687;
  lVar33 = DAT_182671c40;
  uVar43 = (*(uint *)(lVar3 - (uVar34 ^ 0x26029251)) ^ DAT_182671e78) &
           (uVar43 ^ *(uint *)(lVar3 + -0x670));
  *puVar22 = uVar43 ^ uVar28;
  uVar14 = DAT_182671f50;
  *(ulonglong *)(lVar33 + -0x110) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar45 ^ 0xb7d30ae6)) ^ CONCAT44(uVar11,uVar11)) ^
       uVar25;
  uVar29 = CONCAT44(uVar14,uVar14);
  *puVar1 = (longlong)(int)uVar43 ^ uVar29;
  *(ulonglong *)(lVar33 - ((ulonglong)uVar36 ^ 0xf8ae62e4)) =
       (CONCAT44(uVar7,uVar42) ^ 0xf4c9a7d1b4d869e6) * 0x10 +
       *(longlong *)(lVar33 - (uVar26 ^ 0xf4c9aad1)) + 8 ^ uVar21;
  uVar11 = DAT_182671d34;
  *(ulonglong *)(lVar33 + -0xbd8) =
       (uVar47 ^ *(ulonglong *)(lVar33 + -0xd88)) >>
       ((*(byte *)(lVar33 - ((ulonglong)uVar46 ^ 0x9225c89b)) ^ (byte)uVar13) & 0x3f);
  uVar13 = DAT_182671da0;
  lVar3 = DAT_182671c40;
  uVar32 = *puVar1;
  uVar24 = *puVar1;
  uVar35 = *(ulonglong *)(DAT_182671c40 + 0x20);
  puVar23 = (ulonglong *)(DAT_182671c40 + -0x118);
  uVar40 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_182671c40 + -0x628) = *(ulonglong *)(*puVar23 ^ uVar21) ^ uVar25 ^ uVar40;
  uVar14 = DAT_182671f74;
  uVar26 = CONCAT44(uVar13,uVar13);
  uVar32 = CONCAT44(uVar9,uVar8) ^ uVar29 ^ uVar32 ^ uVar26 ^ 0x93548d1bb9f52626;
  *(ulonglong *)(lVar3 + -0x110) = uVar32;
  uVar11 = DAT_182671e70;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0xffdbddd7)) ^ uVar40) & (uVar32 ^ uVar26) ^ uVar34;
  uVar41 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar42 ^ 0xb4d8623e)) = (uVar29 ^ uVar24) & uVar35 ^ uVar41;
  uVar34 = *(ulonglong *)(lVar3 + -0xd88) ^ uVar34;
  uVar35 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar24 = (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar41 | uVar34) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x110) = uVar24;
  uVar32 = *puVar23;
  *puVar1 = *(ulonglong *)(lVar3 - (uVar18 ^ 0xa52aedd4)) ^ uVar41 | uVar34;
  *(ulonglong *)(uVar32 ^ uVar21) = uVar25 ^ uVar24 ^ uVar35;
  *puVar2 = *puVar22 ^ uVar28 ^ DAT_182671cc4 ^ DAT_182671c8c ^ 0xba4f249a;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar15 * 4) = uVar27;
  return;
}



############ FUN_ 1810277f0 size=3853 ############

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

void FUN_1810277f0(void)

{
  uint *puVar1;
  longlong *plVar2;
  uint uVar3;
  undefined1 *puVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte *pbVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  byte *pbVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  
  uVar11 = DAT_182671e40;
  uVar12 = DAT_182671c68;
  uVar7 = DAT_182671c64;
  uVar10 = DAT_182671c5c;
  uVar9 = DAT_182671c54;
  lVar5 = DAT_182671c40;
  uVar16 = (ulonglong)DAT_182671c5c;
  uVar23 = (ulonglong)DAT_182671c68;
  uVar25 = DAT_182671c5c & DAT_182671c68;
  uVar41 = (ulonglong)DAT_182671c54;
  uVar26 = uVar25 ^ 0x733664d2;
  uVar39 = DAT_182671c64 | DAT_182671c54;
  uVar31 = *(uint *)(&DAT_182613218 + DAT_182672124) ^ DAT_182671c68;
  uVar29 = ~DAT_182671c60;
  uVar3 = *(uint *)(&DAT_182613210 + (uVar16 ^ 0x608d4e04) + (longlong)DAT_182672124);
  uVar38 = (ulonglong)uVar29;
  uVar42 = (ulonglong)uVar39;
  uVar21 = (ulonglong)DAT_182671c68;
  uVar22 = *(uint *)(DAT_182671c40 + -0x670) ^ DAT_182671dec;
  DAT_182671c74 = uVar39;
  DAT_182671c7c = uVar29;
  DAT_182671c88 = uVar26;
  *(uint *)(DAT_182671c40 + -0x94) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)uVar39 ^ 0xfbf97b33)) ^ DAT_182671d18) +
       (DAT_182671c64 ^ 0x243a4d89) ^ DAT_182671e40;
  *(ulonglong *)(lVar5 + -0xa50) =
       0x41628284ba2c4045 >> ((byte)*(undefined8 *)(lVar5 - (uVar21 ^ 0x1000920)) & 0x3f);
  uVar15 = DAT_182671c60;
  *(uint *)(lVar5 - ((ulonglong)uVar29 ^ 0xa6d51ad2)) =
       uVar22 << (((byte)uVar9 ^ 0x8f) & 0x1f) ^ DAT_182671d84;
  uVar22 = DAT_182671f48;
  lVar5 = DAT_182671c40;
  uVar17 = CONCAT44(uVar15,uVar12);
  puVar1 = (uint *)(DAT_182671c40 + -0x94);
  *(ulonglong *)(DAT_182671c40 + -0xc18) =
       (uVar17 ^ 0x9333cd157cc17aed) >> ((byte)*(undefined8 *)(DAT_182671c40 + -0x8f0) & 0x3f);
  *(uint *)(lVar5 - ((ulonglong)uVar39 ^ 0xfbf978f3)) =
       (uVar11 ^ *puVar1) - (*(uint *)(lVar5 + -0x58c) ^ DAT_182671d84) ^ uVar22;
  uVar37 = *(uint *)(lVar5 + -0xae4) ^ DAT_182671e00;
  uVar32 = (*(uint *)(lVar5 + -0x76c) ^ uVar22) * uVar37 ^ DAT_182671de8;
  uVar35 = (*(uint *)(lVar5 + -0x670) ^ DAT_182671dec) * (DAT_182671c60 ^ 0x592ae0ba) ^
           DAT_182671f20;
  *(uint *)(lVar5 + -0x1c8) = uVar35;
  uVar35 = uVar35 ^ DAT_182671f20;
  *(uint *)(lVar5 + -0x6c0) = uVar32;
  bVar20 = (byte)DAT_182671e0c;
  uVar11 = DAT_182671de4;
  uVar32 = uVar35 + (uVar32 ^ DAT_182671de8) ^ DAT_182671dc0;
  *(uint *)(lVar5 + -0x61c) = uVar32;
  uVar32 = uVar32 ^ DAT_182671dc0;
  uVar35 = uVar32 << (((byte)uVar29 ^ 0x53) & 0x1f) ^ DAT_182671ef4;
  *(longlong *)(lVar5 + -0x680) =
       *(longlong *)(lVar5 + -0x510) << ((byte)*(undefined8 *)(lVar5 + -0xf0) & 0x3f);
  uVar21 = (ulonglong)DAT_182671ec8;
  uVar36 = uVar32 >> (((byte)uVar9 ^ 0x8d) & 0x1f) ^ DAT_182671df0;
  *(uint *)(lVar5 + -0x9dc) = uVar36;
  uVar36 = uVar36 ^ DAT_182671df0;
  *(uint *)(lVar5 + -0x27c) = uVar35;
  uVar35 = uVar35 ^ DAT_182671ef4;
  *(byte *)(lVar5 + -0xbb1) = *(byte *)(*(ulonglong *)(lVar5 + -0x290) ^ uVar21) ^ bVar20;
  uVar32 = *(uint *)(lVar5 + -0x5d4) ^ DAT_182671dd4;
  *(uint *)(lVar5 + -0x634) = (uVar36 | uVar35) ^ uVar11;
  *(uint *)(lVar5 + -0x54) = uVar32 + uVar37 ^ uVar22;
  uVar18 = (ulonglong)uVar26;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xebb178fe)) =
       CONCAT44(uVar25,uVar7) ^ 0x733664d200000000 ^ *(ulonglong *)(lVar5 + -0xc18) ^
       0xe4abcddc9db5a64f;
  *(uint *)(lVar5 + -0x684) = *(uint *)(lVar5 + -0x54) ^ DAT_182671cbc ^ uVar22;
  *(uint *)(lVar5 + -0x94c) = *(uint *)(lVar5 - (uVar16 ^ 0x608d4820)) ^ DAT_182671f00 ^ uVar11;
  *(uint *)(lVar5 + -0x4ac) = *(uint *)(lVar5 - (uVar38 ^ 0xa6d519da)) ^ DAT_182671cbc ^ uVar11;
  uVar22 = DAT_182671e98;
  uVar21 = (ulonglong)DAT_182671f24;
  *(uint *)(lVar5 + -0x94) =
       *(uint *)(lVar5 - (uVar16 ^ 0x608d4758)) ^ DAT_182671ce8 ^ DAT_182671f00;
  bVar28 = (byte)DAT_182671f50;
  pbVar24 = (byte *)(*(longlong *)(lVar5 + -0x9a8) + 6 +
                    (CONCAT44(uVar9,uVar10) ^ 0xebb1729e608d4e14) * 0x20);
  *(ulonglong *)(lVar5 + -0x9a8) = CONCAT44(uVar15,uVar39) ^ 0x24ab50da44734b04;
  lVar6 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0x88) = (ulonglong)pbVar24 ^ uVar21;
  uVar15 = DAT_182671cb8;
  *(byte *)(lVar5 + -0xa12) = *pbVar24 ^ bVar28 ^ bVar20;
  uVar27 = (ulonglong)_DAT_182671cf0;
  *(byte *)(*(ulonglong *)(lVar6 - ((ulonglong)uVar7 ^ 0xb8785587)) ^ uVar27) = (byte)uVar39 ^ 0xb4;
  uVar40 = (ulonglong)uVar7;
  uVar32 = (uint)(*(byte *)(lVar6 - (uVar23 ^ 0x1000a12)) ^ bVar28);
  *(uint *)(lVar6 + -0x58c) = uVar32 ^ uVar22;
  uVar36 = uVar32 << 0x11 ^ DAT_182671edc;
  uVar35 = *(uint *)(lVar6 - ((ulonglong)uVar7 ^ 0xb8785f03)) ^ DAT_182671ce8;
  uVar32 = DAT_182671c60 ^ 0xc568f2bf;
  *(uint *)(lVar6 + -0x670) = uVar36;
  uVar36 = uVar36 ^ DAT_182671edc;
  *(uint *)(lVar6 + -0x76c) = uVar35 + uVar32 ^ DAT_182671f2c;
  *(uint *)(lVar6 - (uVar23 ^ 0x10006c0)) =
       (*(uint *)(lVar6 - (uVar16 ^ 0x608d4978)) ^ DAT_182671f2c) - uVar36 ^ uVar15;
  lVar5 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - (uVar18 ^ 0x7336651a)) =
       (*(uint *)(lVar6 + -0x4ac) ^ uVar11) * (uVar15 ^ *(uint *)(lVar6 + -0x6c0)) ^ DAT_182671d7c;
  uVar11 = DAT_182671c60;
  uVar30 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c60 ^ 0x592ae321)) =
       (CONCAT44(uVar12,uVar9) ^ 0x219540781d093fb6) - *(longlong *)(lVar5 + -0x828);
  uVar15 = DAT_182671ee0;
  *(uint *)(lVar5 + -0x61c) =
       (*(uint *)(lVar5 - (uVar42 ^ 0xfbf97a13)) ^ uVar22) * (uVar7 ^ 0xb8785f91) ^ DAT_182671d74;
  *(uint *)(lVar5 - (uVar30 ^ 0x592ae2dd)) =
       (*(uint *)(lVar5 - (uVar38 ^ 0xa6d51942)) ^ DAT_182671d74) +
       (*(uint *)(lVar5 - (uVar23 ^ 0x10001c8)) ^ DAT_182671d7c) ^ uVar15;
  *(byte *)(lVar5 - (uVar40 ^ 0xb8785dbe)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0xad0) ^ (ulonglong)DAT_182671f4c) ^ bVar20;
  bVar20 = (byte)DAT_182671c68;
  *(uint *)(lVar5 - (uVar18 ^ 0x73366d0e)) =
       (*(uint *)(lVar5 - (uVar38 ^ 0xa6d51d22)) ^ uVar15) << (((byte)DAT_182671c60 ^ 0xac) & 0x1f)
       ^ DAT_182671ca4;
  uVar21 = (ulonglong)DAT_182671f60;
  uVar22 = (uVar15 ^ *(uint *)(lVar5 + -0x27c)) >> ((bVar20 ^ 0x13) & 0x1f) ^ DAT_182671ea4;
  *(ulonglong *)(lVar5 + -0x3d8) =
       CONCAT44(uVar10,uVar12) ^ 0xb586f282b779b1a | *(ulonglong *)(lVar5 + -0xf0);
  uVar15 = *(uint *)(lVar5 + -0x9dc) ^ DAT_182671ca4;
  *(uint *)(lVar5 + -0x5d4) = uVar22;
  *(uint *)(lVar5 - (uVar16 ^ 0x608d44f0)) = (uVar22 ^ DAT_182671ea4 | uVar15) ^ DAT_182671dc8;
  *(ulonglong *)(lVar5 + -0xbd8) =
       CONCAT44(uVar7,uVar12) ^ CONCAT44(uVar25,uVar39) ^ 0x733664d200000000 ^ 0x2be32c68bcf12fea;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xebb177a6)) =
       *(longlong *)(lVar5 + -0xa80) + 0x10U ^ uVar21;
  uVar33 = (ulonglong)DAT_182671fac;
  *(uint *)(*(ulonglong *)(lVar5 + -0x538) ^ uVar21) =
       *(uint *)(lVar5 + -0xae4) ^ DAT_182671d08 ^ DAT_182671dc8;
  *(undefined8 *)(lVar5 + -0x430) = *(undefined8 *)(lVar5 + 0x38);
  uVar21 = *(ulonglong *)(lVar5 - (uVar16 ^ 0x608d4fc4));
  *(ulonglong *)(lVar5 + -0x108) = uVar21;
  uVar15 = DAT_182671d50;
  uVar19 = (ulonglong)DAT_182671d50;
  *(ulonglong *)(lVar5 + -0x400) = *(ulonglong *)(lVar5 - (uVar38 ^ 0xa6d51b6e)) ^ uVar33;
  uVar21 = uVar15 ^ uVar21;
  *(ulonglong *)(lVar5 + -0xb0) = uVar21;
  uVar32 = DAT_182671c94;
  uVar8 = DAT_182671c8c;
  uVar7 = DAT_182671c5c;
  lVar5 = DAT_182671c40;
  pbVar24 = (byte *)(uVar21 ^ uVar19);
  *(byte **)(DAT_182671c40 + -0x90) = pbVar24 + (CONCAT44(uVar39,uVar9) ^ 0xfbf97f9febb1729f);
  *(byte *)(lVar5 + -0x8a9) = (byte)DAT_182671e8c ^ (byte)DAT_182671d18 ^ *pbVar24;
  uVar15 = DAT_182671c48;
  uVar19 = (ulonglong)DAT_182671c48;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar40 ^ 0xb87857e7)) ^ (ulonglong)DAT_182671d80) =
       (byte)uVar7 ^ 0x30;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar11 ^ 0x592ae559)) =
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar9 ^ 0xebb1769e)) ^ uVar33) +
       (CONCAT44(uVar8,uVar15) ^ 0x7838131020084e12);
  *(byte *)(*(ulonglong *)(lVar5 - (uVar38 ^ 0xa6d51b5e)) ^ uVar33) =
       (byte)DAT_182671e8c ^ *(byte *)(lVar5 + -0x8a9);
  *(ulonglong *)(lVar5 + -0x5e8) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xebb1741e)) ^ *(ulonglong *)(lVar5 + -0xa60);
  *(undefined8 *)(lVar5 + -0x988) = *(undefined8 *)(lVar5 + -0x5f8);
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar18 ^ 0x7336695a)) =
       *(longlong *)(DAT_182671c40 - (uVar16 ^ 0x608d4894)) -
       (CONCAT44(uVar15,uVar32) ^ 0x8fd925c6e11ddba7);
  uVar22 = DAT_182671c84;
  uVar7 = DAT_182671c80;
  uVar21 = (ulonglong)DAT_182671c80;
  uVar33 = (ulonglong)DAT_182671c84;
  *(undefined8 *)(lVar5 - (uVar30 ^ 0x592ae121)) = *(undefined8 *)(lVar5 + -0x90);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0x68a08adf)) = uVar27 ^ *(ulonglong *)(lVar5 + -0x988);
  pbVar24 = *(byte **)(lVar5 + -0x180);
  *(ulonglong *)(lVar5 + -0x330) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182671cec;
  *(byte **)(lVar5 + -0xdb0) = pbVar24 + 1;
  *(byte *)(lVar5 + -0xac1) = *pbVar24 ^ (byte)DAT_182671e5c ^ (byte)DAT_182671d18;
  *(byte *)(*(ulonglong *)(lVar5 + -0x758) ^ (ulonglong)DAT_182671df8) = (byte)uVar32 ^ 0xa5;
  uVar21 = (ulonglong)_DAT_182671cf0;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c58 ^ 0x9f5fb6a7)) =
       (*(ulonglong *)(lVar5 + -0xd98) ^ uVar21) + (CONCAT44(uVar29,uVar32) ^ 0xa6d51f5e8489dc8d);
  uVar8 = DAT_182671c50;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar19 ^ 0x2008438b)) ^ uVar21) =
       *(byte *)(lVar5 - (uVar40 ^ 0xb8785556)) ^ (byte)DAT_182671e5c;
  *(undefined8 *)(lVar5 - (uVar18 ^ 0x73366392)) = *(undefined8 *)(lVar5 - (uVar42 ^ 0xfbf974c7));
  *(longlong *)(lVar5 + -0xda8) = *(longlong *)(lVar5 + -0xa78) << ((byte)uVar8 & 0x3f);
  *(undefined8 *)(lVar5 + -0x450) = *(undefined8 *)(lVar5 + -0xdb0);
  uVar13 = DAT_182671c78;
  uVar12 = DAT_182671c70;
  uVar27 = (ulonglong)DAT_182671d84;
  uVar21 = (ulonglong)DAT_182671d38;
  uVar30 = (ulonglong)DAT_182671c90;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c70 ^ 0x13000c28)) =
       *(ulonglong *)(lVar5 + -0x740) ^ uVar27;
  lVar5 = DAT_182671c40;
  puVar4 = *(undefined1 **)(DAT_182671c40 - (uVar30 ^ 0xdc8c80d9));
  *(ulonglong *)(DAT_182671c40 + -0xcd0) = (ulonglong)puVar4 ^ uVar21;
  lVar6 = DAT_182671c40;
  plVar2 = (longlong *)(DAT_182671c40 + -0xda8);
  *(ulonglong *)(DAT_182671c40 + -0x150) =
       (*(ulonglong *)(lVar5 - (uVar23 ^ 0x1000cd0)) ^ uVar21) +
       (CONCAT44(uVar29,uVar7) ^ 0xa6d51f5e68a08746);
  *(ulonglong *)(lVar6 + -0x4b8) = (CONCAT44(uVar39,uVar39) ^ 0x4d0a570782455180) + *plVar2;
  uVar11 = DAT_182671c6c;
  uVar19 = (ulonglong)DAT_182671c6c;
  *(undefined1 *)(lVar6 + -0xc71) = *puVar4;
  uVar7 = DAT_182671c4c;
  uVar23 = (ulonglong)DAT_182671c4c;
  *(byte *)(*(ulonglong *)(lVar6 + -0x708) ^ (ulonglong)DAT_182671ddc) = (byte)uVar13 ^ 0x74;
  lVar5 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0xffbd5b47)) =
       (CONCAT44(uVar15,uVar11) ^ 0x20084e13f0687436) +
       (uVar27 ^ *(ulonglong *)(DAT_182671c40 + -0xc28));
  *(byte *)(uVar27 ^ *(ulonglong *)(lVar5 + -0xc28)) =
       *(byte *)(lVar5 + -0xc71) ^ (byte)DAT_182671d18;
  uVar27 = (ulonglong)DAT_182671e88;
  uVar21 = *(ulonglong *)(lVar5 - (uVar41 ^ 0xebb17646));
  *(undefined8 *)(lVar5 + -0x598) = *(undefined8 *)(lVar5 + -0x150);
  *(ulonglong *)(lVar5 + -0x490) = uVar21;
  uVar14 = DAT_182671c8c;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar32 ^ 0x8489dd74)) = uVar27 ^ uVar21;
  uVar21 = (ulonglong)DAT_182671f80;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0x7336616a)) = uVar21 ^ *(ulonglong *)(lVar5 + -0x598);
  bVar20 = (byte)DAT_182671e8c;
  pbVar34 = (byte *)(*(ulonglong *)(lVar5 + -0x5b8) ^ uVar21);
  *(byte **)(lVar5 + -0x238) = pbVar34 + (CONCAT44(uVar10,uVar14) ^ 0x608d4e1478381311);
  lVar5 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671e94;
  pbVar24 = (byte *)(DAT_182671c40 - (uVar16 ^ 0x608d4dcd));
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (CONCAT44(uVar12,uVar13) ^ 0x3c67c139edabdb7a) +
       (CONCAT44(uVar29,uVar32) ^ 0xe5a0484f59c09c9);
  bVar28 = (byte)DAT_182671d18;
  *pbVar24 = bVar20 ^ bVar28 ^ *pbVar34;
  *(undefined1 *)(*(ulonglong *)(lVar5 + -0x50) ^ (ulonglong)DAT_182671ecc) = 0xf7;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0x87c7e150)) =
       (*(ulonglong *)(lVar5 - (uVar42 ^ 0xfbf97e67)) ^ uVar27) + (uVar17 ^ 0x592ae0a101000001);
  uVar15 = DAT_182671dc4;
  uVar16 = (ulonglong)DAT_182671dc4;
  *(byte *)(*(ulonglong *)(lVar5 + -0x1f8) ^ uVar27) =
       *(byte *)(lVar5 + -0x3d9) ^ (byte)DAT_182671e8c;
  uVar21 = *(ulonglong *)(lVar5 - (uVar19 ^ 0xf0687997));
  *(ulonglong *)(lVar5 + -0x468) = uVar21;
  *(ulonglong *)(lVar5 + -0x9c0) = uVar18 ^ uVar21;
  uVar21 = uVar16 ^ *(ulonglong *)(lVar5 + -0x238);
  *(ulonglong *)(lVar5 + -0x798) = *(ulonglong *)(lVar5 + -0x238);
  *(ulonglong *)(lVar5 + -0x128) = uVar21;
  pbVar24 = (byte *)(uVar15 ^ uVar21);
  bVar20 = (byte)DAT_182671d40 ^ bVar28;
  *(byte **)(lVar5 + -0x7b0) = pbVar24 + 1;
  uVar21 = (ulonglong)DAT_182671f70;
  *(byte *)(lVar5 - ((ulonglong)DAT_182671c80 ^ 0x68a08524)) = bVar20 ^ *pbVar24;
  *(undefined1 *)(*(ulonglong *)(lVar5 + -0x8b8) ^ (ulonglong)DAT_182671eb0) = 0x3a;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0xdc8c8361)) =
       CONCAT44(uVar25,uVar14) ^ 0x733664d200000000 ^ CONCAT44(uVar9,uVar13) ^ 0x774619366d769a8d;
  pbVar24 = (byte *)(uVar18 ^ *(ulonglong *)(lVar5 + -0x9c0));
  *(byte **)(lVar5 + -0x460) = pbVar24 + (CONCAT44(uVar7,uVar8) ^ 0xffbd5f9f5bc59601);
  *pbVar24 = *(byte *)(lVar5 + -0x263) ^ (byte)DAT_182671d40;
  *(undefined8 *)(lVar5 - (uVar33 ^ 0x87c7ee40)) = 0x170f6b1051444f1;
  *(undefined8 *)(lVar5 + -0x7e0) = *(undefined8 *)(lVar5 + -0x7b0);
  *(ulonglong *)(lVar5 + -0x308) = *(ulonglong *)(lVar5 + -0x460);
  uVar15 = DAT_182671c60 ^ 0x9fab1c4e;
  *(ulonglong *)(lVar5 - (uVar23 ^ 0xffbd57ff)) = uVar21 ^ *(ulonglong *)(lVar5 + -0x460);
  uVar21 = (ulonglong)DAT_182671f34;
  *(uint *)(lVar5 + -0x54) = (*(uint *)(lVar5 + -0x1c8) ^ DAT_182671d7c) + uVar15;
  *(ulonglong *)(lVar5 + -0x488) = *(ulonglong *)(lVar5 + -0x7e0) ^ uVar21;
  *(byte *)(lVar5 + -0x181) = *(byte *)(uVar16 ^ *(ulonglong *)(lVar5 + -0x128)) ^ bVar28;
  *(ulonglong *)(lVar5 + -0x340) = *(ulonglong *)(lVar5 + -0x7e0) + 1;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar3 ^ uVar26) * 4) = uVar31;
  return;
}



############ FUN_ 180f88190 size=4215 ############

void FUN_180f88190(void)

{
  uint *puVar1;
  longlong *plVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  byte bVar7;
  undefined4 uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  byte *pbVar16;
  ulonglong uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  uint uVar41;
  ulonglong uVar42;
  uint uVar43;
  byte local_c8;
  ulonglong uVar20;
  
  uVar36 = DAT_182671c94;
  uVar31 = DAT_182671c8c;
  uVar25 = DAT_182671c88;
  uVar13 = DAT_182671c84;
  uVar15 = DAT_182671c78;
  uVar23 = DAT_182671c60;
  uVar24 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar39 = (ulonglong)DAT_182671c84;
  uVar37 = (ulonglong)DAT_182671c8c;
  uVar21 = (ulonglong)DAT_182671c48;
  uVar42 = (ulonglong)DAT_182671c60;
  uVar33 = DAT_182671c58 - DAT_182671c94;
  uVar18 = DAT_182671c48 + DAT_182671c60;
  uVar19 = DAT_182671c84 * DAT_182671c8c;
  uVar20 = (ulonglong)uVar19;
  uVar43 = (DAT_182671c88 << 0x10 | DAT_182671c88 & 0xff00) << 8 | DAT_182671c88 >> 8 & 0xff00 |
           DAT_182671c88 >> 0x18;
  uVar14 = (DAT_182671c78 << 0x10 | DAT_182671c78 & 0xff00) << 8 | DAT_182671c78 >> 8 & 0xff00 |
           DAT_182671c78 >> 0x18;
  uVar12 = (ulonglong)uVar14;
  uVar10 = *(uint *)(&DAT_182613210 + (uVar12 ^ 0x652b2b6d) + (longlong)DAT_18267222c) ^
           DAT_182671c78;
  uVar11 = *(uint *)(&DAT_182613220 + DAT_18267222c) ^ DAT_182671c58;
  uVar27 = (ulonglong)DAT_182671e30;
  bVar29 = (byte)DAT_182671e5c ^ *(byte *)(DAT_182671c40 + -0x3d8) ^ (byte)DAT_182671d80;
  pbVar16 = (byte *)(*(longlong *)(DAT_182671c40 + -0x1d0) + 0x5e);
  DAT_182671c50 = uVar33;
  DAT_182671c54 = uVar19;
  DAT_182671c70 = uVar14;
  DAT_182671c7c = uVar43;
  DAT_182671c80 = uVar18;
  *(byte *)(DAT_182671c40 + -0xc41) = bVar29;
  *(ulonglong *)(lVar3 + -0xce0) = (ulonglong)pbVar16 ^ uVar27;
  uVar6 = DAT_182671ca8;
  uVar32 = (ulonglong)uVar33;
  *pbVar16 = (byte)DAT_182671d18 ^ (byte)DAT_182671d80 ^ bVar29;
  uVar35 = DAT_182671c88;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0xccee5a79)) =
       CONCAT44(uVar36,uVar33) ^ CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(DAT_182671c40 + -0xa08) ^
       0x3515245b6665e79;
  uVar27 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  uVar38 = (ulonglong)uVar18;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0x81e281d0)) =
       *(longlong *)(lVar3 - (uVar12 ^ 0x652b2875)) + 0x58 +
       (CONCAT44(uVar43,uVar35) ^ 0x3e611a14141a613e) * 0x60 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x310) = CONCAT44(uVar31,uVar18) ^ 0xe61bb41d19e7d23d;
  uVar8 = DAT_182671f7c;
  uVar34 = CONCAT44(DAT_182671cdc,DAT_182671cdc);
  *(ulonglong *)(lVar3 + -0xc38) =
       CONCAT44(DAT_182671f24,DAT_182671f24) ^
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x588) ^ uVar27) ^ uVar34;
  local_c8 = (byte)(uVar15 >> 0x18);
  *(ulonglong *)(CONCAT44(DAT_182671c98,DAT_182671c98) ^ *(ulonglong *)(lVar3 + -0x70)) =
       CONCAT44(uVar23,uVar24) ^ 0x86844bd9b336e1b8;
  *(undefined8 *)(lVar3 + -0x70) = 0xd5591e12e324aac6;
  uVar13 = DAT_182671d6c;
  lVar3 = DAT_182671c40;
  uVar27 = (ulonglong)DAT_182671d6c;
  *(ulonglong *)(DAT_182671c40 - (uVar20 ^ 0x81e28c70)) =
       (uVar34 ^ *(ulonglong *)(DAT_182671c40 + -0xc38)) >> ((local_c8 ^ 0x5d) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  *(uint *)(lVar3 - (uVar38 ^ 0x64a07810)) = (uVar24 ^ 0x8c280dee) - (DAT_182671c84 ^ 0xa22de793);
  uVar26 = DAT_182671db0;
  bVar29 = (byte)DAT_182671db0;
  *(byte *)(lVar3 - (uVar32 ^ 0xd74ac265)) = (byte)uVar8 ^ bVar29 ^ *(byte *)(lVar3 + -0x828);
  lVar3 = DAT_182671c40;
  pbVar16 = (byte *)((CONCAT44(uVar14,uVar18) ^ 0x652b2b6564a072ab) +
                    *(longlong *)(DAT_182671c40 + -0x1d0));
  *(ulonglong *)(DAT_182671c40 + -0x1b8) = (ulonglong)pbVar16 ^ uVar27;
  uVar36 = DAT_182671e38;
  uVar15 = DAT_182671c58;
  lVar4 = DAT_182671c40;
  *pbVar16 = *(byte *)(lVar3 + -0x511) ^ bVar29 ^ (byte)DAT_182671d18;
  uVar6 = DAT_182671f60;
  puVar1 = (uint *)(lVar4 + -0x94c);
  *(uint *)(lVar4 + -0xc70) =
       (*(uint *)(lVar4 + -0x94) ^ DAT_182671e4c | *(uint *)(lVar4 + -0x644) ^ uVar13) ^
       DAT_182671db8;
  uVar27 = CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar4 + -0xb18);
  *(ulonglong *)(lVar4 + -0x30) = uVar27 >> ((byte)uVar27 & 0x3f);
  *puVar1 = *(uint *)(lVar4 - (uVar20 ^ 0x81e28828)) ^ *(uint *)(lVar4 + 0x40) ^ uVar36 ^
            DAT_182671db8;
  uVar13 = DAT_182671c78;
  uVar27 = (ulonglong)DAT_182671c78;
  uVar22 = (*(uint *)(lVar4 - ((ulonglong)DAT_182671c78 ^ 0x652b2229)) ^ uVar36 |
           uVar43 ^ 0x3e611b93) ^ DAT_182671dd4;
  uVar17 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(uint *)(lVar4 + -0x5d4) = uVar22;
  uVar23 = (uVar22 ^ DAT_182671dd4) << (((byte)uVar23 ^ 0x1f) & 0x1f) ^ DAT_182671d4c;
  *(ulonglong *)(lVar4 + -0xd88) =
       (CONCAT44(uVar14,uVar15) ^ 0x7459144a3d5d27d) - (uVar17 ^ *(ulonglong *)(lVar4 + -0x7c0));
  *(uint *)(lVar4 + -0x27c) = uVar23;
  *(uint *)(lVar4 - ((ulonglong)uVar35 ^ 0x141a66ba)) =
       *(uint *)(lVar4 - ((ulonglong)uVar35 ^ 0x141a6872)) ^ DAT_182671d58 ^ uVar36;
  uVar23 = *(uint *)(lVar4 + -0x784) ^ DAT_182671f50 ^ DAT_182671d58;
  *(ulonglong *)(lVar4 + -0x2b0) = (uVar34 ^ *(ulonglong *)(lVar4 + -0xc38)) + 0x4071eb394c50083;
  bVar7 = (byte)DAT_182671e0c;
  uVar36 = DAT_182671d48;
  *(uint *)(lVar4 + -0x9dc) = uVar23;
  *(uint *)(lVar4 + -0x4ac) = uVar23 ^ DAT_182671dcc ^ DAT_182671f50;
  uVar22 = DAT_182671ecc;
  uVar35 = DAT_182671d1c;
  uVar17 = (ulonglong)DAT_182671c94;
  *(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0x7d41c460)) =
       *(uint *)(lVar4 - (uVar37 ^ 0x7de1ceb4)) ^ uVar36 ^ DAT_182671dcc;
  uVar15 = DAT_182671c64;
  lVar3 = DAT_182671c40;
  uVar34 = (ulonglong)DAT_182671da8;
  uVar40 = DAT_182671c64 << 0x10;
  *(ulonglong *)(lVar4 - (uVar17 ^ 0xa5f6f214)) =
       CONCAT44(uVar19,uVar33) ^ 0x2227a90b017e9724 |
       CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar4 + -0x828);
  bVar29 = (byte)DAT_182671d78;
  pbVar16 = (byte *)(*(longlong *)(lVar3 + -0x9a8) + 0x11);
  *(ulonglong *)(lVar3 + -0x170) = (ulonglong)pbVar16 ^ uVar34;
  *(byte *)(lVar3 + -0x1c3) = *pbVar16 ^ bVar29 ^ bVar7;
  uVar23 = DAT_182671c64;
  uVar41 = (uVar40 | uVar15 & 0xff00) << 8 | uVar15 >> 8 & 0xff00 | DAT_182671c64 >> 0x18;
  DAT_182671c5c = uVar41;
  *(uint *)(lVar3 + -0x6c0) = (uVar15 ^ 0x6119e50d) + 0xd9aca1e6;
  uVar40 = (uint)(bVar29 ^ *(byte *)(lVar3 + -0x1c3));
  uVar30 = (uVar36 ^ *(uint *)(lVar3 + -0x670)) + (uVar41 ^ 0x8fb549e3);
  *(uint *)(lVar3 + -0xa94) = uVar40 ^ uVar22;
  *(uint *)(lVar3 + -0x76c) = uVar30 ^ uVar35;
  uVar36 = DAT_182671ef4;
  *(uint *)(DAT_182671c40 + -0x1c8) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)uVar41 ^ 0x13f75c91)) ^ uVar35) * 0x791d2959;
  lVar3 = DAT_182671c40;
  uVar40 = uVar40 << (((byte)uVar15 ^ 2) & 0x1f) ^ DAT_182671f64;
  *(uint *)(DAT_182671c40 + -0x444) = uVar40;
  uVar30 = uVar30 - (uVar40 ^ DAT_182671f64);
  *(uint *)(lVar3 + -0x634) = uVar30 ^ uVar26;
  *(longlong *)(DAT_182671c40 + -0x110) = 0x1e2a151f992b92f1 << (((byte)uVar24 ^ 0xd5) & 0x3f);
  lVar3 = DAT_182671c40;
  plVar2 = (longlong *)(DAT_182671c40 + -0x628);
  *(uint *)(DAT_182671c40 + -0x54) = uVar30 * (DAT_182671c58 ^ 0x5cffab77) ^ DAT_182671e74;
  uVar40 = DAT_182671c84 ^ 0xccee5308;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x652b2e8d)) =
       (CONCAT44(uVar14,uVar19) ^ 0xf823d7a160435dab) - *plVar2;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x58c) =
       (*(uint *)(DAT_182671c40 - (uVar39 ^ 0xccee598d)) ^ uVar22) * uVar40 ^ uVar36;
  uVar24 = (*(uint *)(lVar3 - ((ulonglong)DAT_182671c94 ^ 0xa5f6ff10)) ^ uVar36) +
           (*(uint *)(lVar3 - (uVar42 ^ 0x1008614e)) ^ DAT_182671e74);
  *(uint *)(lVar3 + -0x684) = uVar24 ^ uVar35;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0xfd5bf10f)) = uVar24 * 0x2000 ^ DAT_182671ee0;
  uVar25 = (*(uint *)(lVar3 + -0x684) ^ uVar35) >> (((byte)(uVar25 >> 0x18) ^ 7) & 0x1f) ^
           DAT_182671d14;
  uVar17 = (ulonglong)DAT_182671c58;
  *(uint *)(lVar3 + -0x644) =
       (uVar41 ^ 0xf5ed67dc) << (((byte)uVar36 ^ (byte)*(undefined4 *)(lVar3 + -0x58c)) & 0x1f);
  uVar24 = *(uint *)(lVar3 + -0x61c) ^ DAT_182671ee0;
  *(uint *)(lVar3 + -0xae4) = uVar25;
  *(uint *)(lVar3 - (uVar17 ^ 0x7d41c284)) = (uVar25 ^ DAT_182671d14 | uVar24) ^ DAT_182671cc0;
  uVar28 = (ulonglong)DAT_182671db4;
  *(uint *)(lVar3 - (uVar38 ^ 0x64a07bb8)) =
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) + (DAT_182671c54 ^ 0xa05ced3f) ^ DAT_182671cb0;
  uVar24 = *(uint *)(lVar3 + -0x94) ^ DAT_182671e44 ^ DAT_182671cc0;
  uVar17 = (ulonglong)DAT_182671c88;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0x549810aa)) ^ uVar34) ^ bVar7;
  *(uint *)(lVar3 + -0x784) = *puVar1 ^ DAT_182671e40 ^ DAT_182671cb0;
  *(uint *)(lVar3 - (uVar17 ^ 0x141a68e2)) = uVar24;
  uVar25 = DAT_182671d88;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0xfd5bf3bf)) =
       *(uint *)(lVar3 + -0x784) ^ DAT_182671d88 ^ DAT_182671e40;
  *(uint *)(lVar3 - (uVar38 ^ 0x64a07434)) =
       DAT_182671f3c ^ DAT_182671e44 ^ *(uint *)(lVar3 + -0x9dc);
  bVar29 = (byte)DAT_182671dd0;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x170) =
       (CONCAT44(uVar31,uVar41) ^ 0x7de1ca1813f75bfd) * 0x20 +
       *(longlong *)(lVar3 - (uVar39 ^ 0xccee5ab1)) + 0x1c ^ uVar28;
  lVar5 = DAT_182671c40;
  bVar9 = *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0x64a07384)) ^ uVar28) ^ bVar29 ^ bVar7;
  *(byte *)(lVar3 + -0x1c3) = bVar9;
  uVar26 = (uint)(bVar9 ^ bVar29);
  uVar35 = *(uint *)(lVar5 + -0x6c0) ^ DAT_182671f3c;
  *(uint *)(lVar5 + -0x670) = uVar26 ^ DAT_182671cd0;
  uVar6 = DAT_182671f48;
  uVar24 = uVar26 << (((byte)(uVar23 >> 0x18) ^ 0xec) & 0x1f) ^ DAT_182671e00;
  uVar23 = uVar35 + (DAT_182671c94 ^ 0x39b4e882) ^ DAT_182671df8;
  *(uint *)(lVar4 + -0x1c8) = uVar23;
  uVar23 = uVar23 ^ DAT_182671df8;
  uVar34 = CONCAT44(uVar6,uVar6);
  *(uint *)(lVar4 + -0x444) = uVar24;
  uVar36 = uVar23 - (uVar24 ^ DAT_182671e00) ^ DAT_182671ea4;
  *(uint *)(lVar4 + -0x76c) = uVar36;
  uVar35 = DAT_182671ed0;
  uVar36 = uVar36 ^ DAT_182671ea4;
  *(ulonglong *)(lVar4 + -0x228) =
       CONCAT44(uVar31,uVar13) ^ uVar34 ^ *(ulonglong *)(lVar4 + -0xc90) ^ 0x3aaf8aaeb88dca7c;
  uVar36 = uVar36 * (*(uint *)(lVar4 + -0x4ac) ^ uVar25);
  uVar24 = DAT_182671c70 ^ 0x652b2b79;
  *(uint *)(lVar4 + -0x634) = uVar36 ^ uVar35;
  *(uint *)(lVar4 + -0xa94) = uVar26 * uVar24 ^ DAT_182671e5c;
  uVar13 = DAT_182671e70;
  uVar23 = DAT_182671d50;
  uVar36 = (*(uint *)(lVar4 - ((ulonglong)uVar15 ^ 0xfd5bfd87)) ^ DAT_182671e5c) + uVar36;
  bVar29 = (byte)DAT_182671c78;
  *(uint *)(lVar4 + -0x54) = uVar36 ^ DAT_182671d50;
  *(uint *)(lVar4 + -0x684) = uVar36 << ((bVar29 ^ 0x68) & 0x1f) ^ DAT_182671fa8;
  uVar24 = DAT_182671c58;
  uVar39 = (ulonglong)DAT_182671c58;
  uVar28 = (ulonglong)DAT_182671c94;
  uVar17 = (ulonglong)DAT_182671c88;
  *(uint *)(lVar4 - (uVar32 ^ 0xd74ac2f8)) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_182671c58 ^ 0x7d41c244)) ^ uVar23) >> 0x13 ^ uVar13;
  *(uint *)(lVar4 - (uVar42 ^ 0x1008675e)) =
       (*(uint *)(lVar4 - (uVar17 ^ 0x141a64b2)) ^ uVar13 |
       *(uint *)(lVar4 - ((ulonglong)uVar43 ^ 0x3e611c90)) ^ DAT_182671fa8) ^ DAT_182671d30;
  uVar23 = DAT_182671e78;
  *(uint *)(lVar4 - (uVar28 ^ 0xa5f6fc80)) =
       (*(uint *)(lVar4 + -0x4ac) ^ uVar25) + (*(uint *)(lVar4 + -0x5d4) ^ DAT_182671dd4) ^
       DAT_182671f2c;
  uVar31 = *(uint *)(lVar4 + -0x61c) ^ DAT_182671e20 ^ DAT_182671f2c;
  uVar25 = *(uint *)(lVar4 + -0x644) ^ DAT_182671d0c ^ DAT_182671d30;
  *(uint *)(lVar4 + -0xae4) = uVar31;
  *puVar1 = uVar25;
  *(ulonglong *)(lVar4 + -0xc18) =
       CONCAT44(uVar19,uVar14) ^ CONCAT44(uVar43,uVar18) ^ 0x3802035667d1718f;
  uVar31 = uVar31 ^ uVar23 ^ DAT_182671e20;
  *(uint *)(lVar4 + -0x784) = uVar25 ^ DAT_182671f58 ^ DAT_182671d0c;
  bVar29 = (byte)DAT_182671f0c;
  *(ulonglong *)(lVar4 + -0x380) =
       (CONCAT44(uVar24,uVar43) ^ 0xb47e1888ef5ff47) >>
       (((byte)uVar8 ^ *(byte *)(lVar4 + -0x828)) & 0x3f);
  uVar17 = (ulonglong)DAT_182671fa4;
  *(uint *)(lVar4 + -0x94) = uVar31;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xfd5bf663)) =
       *(longlong *)(lVar4 - (uVar37 ^ 0x7de1c3b0)) + 7U ^ uVar17;
  *(byte *)(lVar4 + -0x1c3) = *(byte *)(uVar17 ^ *(ulonglong *)(lVar4 + -0x170)) ^ bVar7 ^ bVar29;
  *(ulonglong *)(lVar4 + -0x510) =
       CONCAT44(uVar41,uVar33) ^ *(ulonglong *)(lVar4 + -0x628) ^ 0xf45bce4d68f74907;
  uVar24 = DAT_182671d90;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - (uVar39 ^ 0x7d41cbcc)) =
       (*(byte *)(lVar4 - (uVar21 ^ 0x54981019)) ^ bVar29) ^ DAT_182671d90;
  uVar15 = (*(uint *)(lVar3 - (uVar27 ^ 0x652b2ce1)) ^ DAT_182671f58) + (uVar15 ^ 0x6119e50d) ^
           DAT_182671e28;
  *(uint *)(lVar3 + -0x1c8) =
       (uVar24 ^ *(uint *)(lVar3 + -0x9dc)) << ((byte)uVar40 & 0x1f) ^ DAT_182671e04;
  *(uint *)(lVar3 + -0x6c0) = uVar15;
  uVar25 = DAT_182671f88;
  *(uint *)(lVar3 + -0x444) =
       (*(uint *)(lVar3 - (uVar32 ^ 0xd74ac1b4)) ^ DAT_182671e28) -
       (*(uint *)(lVar3 - (uVar21 ^ 0x54981012)) ^ DAT_182671e04) ^ uVar13;
  *(uint *)(lVar3 - (uVar38 ^ 0x64a07598)) =
       (*(uint *)(lVar3 - (uVar20 ^ 0x81e284cc)) ^ uVar23) *
       (*(uint *)(lVar3 - (uVar42 ^ 0x1008655e)) ^ uVar13) ^ DAT_182671cec;
  uVar15 = DAT_182671f14;
  uVar13 = (*(uint *)(lVar3 - (uVar37 ^ 0x7de1c3c4)) ^ uVar24) * (DAT_182671c94 ^ 0xa5f6fa9b);
  uVar24 = *(uint *)(lVar3 + -0x76c) ^ DAT_182671cec;
  *(uint *)(lVar3 + -0x670) = uVar13 ^ uVar35;
  bVar29 = (byte)DAT_182671c88;
  *(uint *)(lVar3 + -0xa94) = uVar24 + uVar13 ^ uVar25;
  *(uint *)(lVar3 + -0x634) = (DAT_182671c58 ^ 0x1b17861a) * -0x7216085c;
  uVar13 = (*(uint *)(lVar3 - (uVar37 ^ 0x7de1c08c)) ^ uVar25) << 0xd;
  *(uint *)(lVar3 + -0x54) = uVar13 ^ uVar15;
  uVar24 = (*(uint *)(lVar3 - ((ulonglong)uVar41 ^ 0x13f75169)) ^ uVar25) >>
           ((bVar29 ^ 0x2d) & 0x1f) ^ DAT_182671ce8;
  *(uint *)(lVar3 + -0x684) = uVar24;
  uVar24 = uVar24 ^ DAT_182671ce8;
  *(ulonglong *)(lVar3 + -0xb08) = uVar34 ^ *(ulonglong *)(lVar3 + -0xc90) ^ 0x8b9844e2bf5c9c14;
  uVar13 = (uVar13 | uVar24) ^ DAT_182671d24;
  *(uint *)(lVar3 + -0x58c) = uVar13;
  *(uint *)(lVar3 + -0x4ac) =
       (*(uint *)(lVar3 - (uVar32 ^ 0xd74ac2a0)) ^ DAT_182671dd4) +
       (*(uint *)(lVar3 + -0x94) ^ uVar23) ^ DAT_182671ea0;
  *(longlong *)(lVar3 + -0x760) = *(longlong *)(lVar3 + -0x228) + -0x89e82322e42edd9;
  uVar15 = *(uint *)(lVar3 - (uVar42 ^ 0x100865b6)) ^ DAT_182671ed4 ^ DAT_182671ea0;
  uVar24 = DAT_182671fb4 ^ DAT_182671d24;
  *(uint *)(lVar3 + -0x61c) = uVar15;
  uVar15 = uVar15 ^ DAT_182671e88 ^ DAT_182671ed4;
  *(uint *)(lVar3 + -0x644) = uVar24 ^ uVar13;
  *(uint *)(lVar3 + -0xae4) = uVar15;
  *puVar1 = *(uint *)(lVar3 - (uVar12 ^ 0x652b2d21)) ^ DAT_182671da4 ^ DAT_182671fb4;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar11 * 4) = uVar10;
  return;
}



############ FUN_ 18101b8b0 size=4297 ############

void FUN_18101b8b0(void)

{
  ulonglong *puVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  ulonglong uVar10;
  uint *puVar11;
  ulonglong uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte *pbVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint *puVar30;
  byte *pbVar31;
  ulonglong uVar32;
  uint *puVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  uint uVar38;
  uint uVar39;
  uint uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  byte local_b0;
  
  uVar40 = DAT_182671c94;
  uVar23 = DAT_182671c90;
  uVar28 = DAT_182671c88;
  uVar15 = DAT_182671c80;
  uVar27 = DAT_182671c54;
  uVar29 = DAT_182671c4c;
  uVar36 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  uVar42 = (ulonglong)DAT_182671c90;
  uVar24 = (ulonglong)DAT_182671c4c;
  uVar38 = DAT_182671c90 * DAT_182671c84;
  uVar21 = (ulonglong)DAT_182671c80;
  uVar37 = (ulonglong)DAT_182671c94;
  DAT_182671c50 = DAT_182671c4c | DAT_182671c80;
  uVar32 = (ulonglong)DAT_182671c48;
  uVar19 = (ulonglong)DAT_182671c54;
  uVar16 = (ulonglong)DAT_182671c88;
  uVar6 = DAT_182671c94 - DAT_182671c48;
  uVar25 = DAT_182671c54 + DAT_182671c88;
  uVar20 = *(uint *)(&DAT_182613218 + DAT_182671fe0) ^ DAT_182671c90;
  uVar7 = *(uint *)(&DAT_182613220 + DAT_182671fe0) ^ DAT_182671c84;
  uVar13 = *(uint *)(DAT_182671c40 + -0x5d4) ^ DAT_182671dd4;
  DAT_182671c74 = uVar25;
  DAT_182671c8c = uVar6;
  *(uint *)(DAT_182671c40 + -0x670) =
       (*(uint *)(DAT_182671c40 + -0x784) ^ DAT_182671d08 |
       *(uint *)(DAT_182671c40 + -0x684) ^ DAT_182671de0) ^ DAT_182671dd0;
  *(ulonglong *)(lVar3 + -0x8f0) =
       0x225cf688cfc0dbd6 - (CONCAT44(uVar38,uVar28) ^ 0xf94d6c6a105dab0e);
  uVar13 = uVar13 + (*(uint *)(lVar3 + -0x61c) ^ DAT_182671e60) ^ DAT_182671de8;
  *(uint *)(lVar3 + -0x634) = uVar13;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x3d8) =
       (CONCAT44(uVar25,uVar27) ^ 0xaf7d67ee73a57002) + *(longlong *)(DAT_182671c40 + -0xa08);
  uVar18 = DAT_182671e48;
  lVar4 = DAT_182671c40;
  puVar30 = (uint *)(lVar3 - ((ulonglong)uVar36 ^ 0xa508ee7a));
  *puVar30 = uVar13 ^ DAT_182671e48 ^ DAT_182671de8;
  uVar26 = DAT_182671d94 ^ DAT_182671dd0 ^ *(uint *)(lVar4 + -0x670);
  *(uint *)(lVar4 + -0x58c) = uVar26;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0xd88) =
       *(ulonglong *)(DAT_182671c40 + -0xb08) >> (((byte)uVar40 ^ 0x75) & 0x3f);
  *(uint *)(lVar3 + -0x644) = *(uint *)(lVar3 + -0x94c) ^ DAT_182671f28 ^ uVar18;
  uVar5 = DAT_182671d7c;
  uVar13 = DAT_182671c50;
  lVar3 = DAT_182671c40;
  uVar8 = (ulonglong)uVar6;
  uVar22 = (ulonglong)DAT_182671c50;
  uVar26 = uVar26 ^ DAT_182671d7c ^ DAT_182671d94;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       *(longlong *)(DAT_182671c40 + -0x380) - (CONCAT44(uVar6,uVar15) ^ 0xc360f45a02bb25af);
  *(uint *)(lVar3 + -0x444) = uVar26;
  uVar9 = (ulonglong)DAT_182671e44;
  *(ulonglong *)(lVar3 + -0xa70) =
       (CONCAT44(uVar29,uVar13) ^ 0xd50c9651bff0533f) - *(longlong *)(lVar3 + -0x2b0);
  bVar2 = (byte)DAT_182671d2c;
  lVar3 = DAT_182671c40;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xc20);
  pbVar17 = (byte *)(*(longlong *)(DAT_182671c40 + -0x9a8) + 8 +
                    (CONCAT44(uVar25,uVar36) ^ 0x3c508b0a508e736) * 0x20);
  *puVar1 = (ulonglong)pbVar17 ^ uVar9;
  *(byte *)(lVar3 - (uVar16 ^ 0x81e2859b)) = *pbVar17 ^ bVar2 ^ (byte)DAT_182671e0c;
  uVar26 = DAT_182671d10;
  pbVar17 = (byte *)(lVar3 + -0x1c3);
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar40 ^ 0x80a20288)) = (bVar2 ^ *pbVar17) ^ DAT_182671d10;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 - ((ulonglong)uVar13 ^ 0xdff3f0b2)) =
       (uVar5 ^ *(uint *)(DAT_182671c40 + -0x444)) + (DAT_182671c84 ^ 0xdd500216) ^ DAT_182671d24;
  puVar11 = (uint *)(lVar3 - ((ulonglong)uVar27 ^ 0x81e28590));
  *puVar11 = (*(uint *)(lVar3 + -0x6c0) ^ uVar26) << 0x11 ^ uVar18;
  uVar5 = DAT_182671cb4;
  uVar13 = DAT_182671c7c;
  uVar36 = DAT_182671c60;
  uVar27 = (*(uint *)(lVar3 - (uVar21 ^ 0xd52d0d2)) ^ DAT_182671d24) -
           (uVar18 ^ *(uint *)(lVar3 + -0x1c8));
  uVar18 = DAT_182671f28 ^ *(uint *)(lVar3 + -0x644);
  uVar9 = (ulonglong)DAT_182671c60;
  *(uint *)(lVar3 + -0x54) = uVar27 ^ DAT_182671cb4;
  uVar39 = uVar13 ^ uVar36;
  uVar34 = (*(uint *)(lVar3 + -0x6c0) ^ uVar26) * (uVar6 ^ 0xdb991d1a) ^ DAT_182671dd4;
  DAT_182671c78 = uVar39;
  *(uint *)(lVar3 + -0xae4) = uVar34;
  uVar34 = uVar34 ^ DAT_182671dd4;
  uVar26 = uVar27 * uVar18 ^ DAT_182671e4c;
  *(uint *)(lVar3 + -0x76c) = uVar26;
  uVar27 = DAT_182671df4;
  uVar34 = uVar34 + (uVar26 ^ DAT_182671e4c);
  *(uint *)(lVar3 + -0x94) = uVar34 ^ DAT_182671df4;
  lVar4 = DAT_182671c40;
  uVar34 = uVar34 >> (((byte)uVar39 ^ 0x81) & 0x1f);
  uVar26 = (*(uint *)(lVar3 - ((ulonglong)uVar36 ^ 0x7c014294)) ^ uVar27) << 0xd ^ DAT_182671f84;
  uVar27 = (*(uint *)(DAT_182671c40 + -0x5d4) ^ DAT_182671dd4) + uVar18 ^ DAT_182671f78;
  *(uint *)(DAT_182671c40 + -0x634) = uVar27;
  uVar27 = uVar27 ^ DAT_182671f9c ^ DAT_182671f78;
  *(uint *)(lVar4 + -0x684) = uVar26;
  uVar26 = uVar26 ^ DAT_182671f84;
  *(uint *)(lVar4 + -0x784) = uVar34 ^ uVar5;
  *(uint *)(lVar4 + -0x61c) = (uVar26 | uVar34) ^ DAT_182671fa0;
  uVar10 = (ulonglong)uVar13;
  puVar33 = (uint *)(lVar4 - (uVar10 ^ 0x3b4508e2));
  *puVar33 = uVar27;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar39 ^ 0x47444b52)) =
       CONCAT44(uVar36,uVar36) ^ *(ulonglong *)(lVar4 + -0x8f0) ^ 0x629acafa95f15175;
  *(uint *)(lVar4 + -0x94c) = *(uint *)(lVar4 + -0x61c) ^ DAT_182671fb4 ^ DAT_182671fa0;
  uVar26 = DAT_182671c98;
  lVar3 = DAT_182671c40;
  uVar12 = (ulonglong)DAT_182671da0;
  *(uint *)(DAT_182671c40 - (uVar42 ^ 0xc88b08e)) = *puVar33 ^ DAT_182671c98 ^ DAT_182671f9c;
  uVar18 = *(uint *)(lVar3 + -0x94c) ^ DAT_182671d4c ^ DAT_182671fb4;
  *(uint *)(lVar3 + -0x444) = uVar18;
  uVar18 = uVar18 ^ DAT_182671d4c;
  pbVar31 = (byte *)((CONCAT44(uVar29,uVar39) ^ 0xdff3f96e47444c92) * 0x20 +
                     (CONCAT44(uVar38,uVar36) ^ 0x2bb9c8107c014213) + *(longlong *)(lVar3 + -0x9a8))
  ;
  *(ulonglong *)(lVar3 + -0xbc0) = (ulonglong)pbVar31 ^ uVar12;
  uVar27 = DAT_182671f1c;
  uVar14 = DAT_182671f1c & 0xff;
  *(ulonglong *)(lVar3 + -0xa60) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0xdff3fc86)) ^ 0x95040522653842e5;
  uVar34 = DAT_182671f30;
  uVar35 = uVar18 + (uVar39 ^ 0xdb065e8c) ^ DAT_182671f30;
  *pbVar17 = *pbVar31 ^ (byte)uVar27 ^ (byte)DAT_182671e0c;
  uVar27 = DAT_182671c80;
  *(longlong *)(lVar3 + -0xa78) =
       *(longlong *)(lVar3 - (uVar9 ^ 0x7c014e38)) - *(longlong *)(lVar3 + -0xb08);
  uVar18 = DAT_182671cd0;
  *(uint *)(lVar3 + -0x9dc) = uVar14 ^ *pbVar17 ^ DAT_182671cd0;
  *(uint *)(lVar3 - (uVar37 ^ 0x80a20580)) = uVar35;
  *(uint *)(lVar3 + -0x54) =
       (*(uint *)(lVar3 + -0x9dc) ^ uVar18) << (((byte)uVar27 ^ 0x1f) & 0x1f) ^ DAT_182671f20;
  uVar27 = DAT_182671d20;
  *(ulonglong *)(lVar3 + -0x760) = CONCAT44(uVar38,uVar28) ^ 0xfffffd77b2ff7ddf | 0xfd3d5957b2e67ccb
  ;
  uVar34 = (uVar34 ^ *(uint *)(lVar3 + -0x1c8)) -
           (*(uint *)(lVar3 - (uVar24 ^ 0xdff3f93a)) ^ DAT_182671f20) ^ DAT_182671dac;
  *(uint *)(lVar3 + -0x6c0) = uVar34;
  uVar28 = DAT_182671df0;
  *(uint *)(lVar3 + -0x76c) =
       (uVar34 ^ DAT_182671dac) * (*(uint *)(lVar3 + -0x58c) ^ uVar26) ^ uVar5;
  *(uint *)(lVar3 + -0xae4) =
       (*(uint *)(lVar3 + -0x9dc) ^ uVar18) * (uVar6 ^ 0xdb991d01) ^ DAT_182671ec0;
  bVar2 = (byte)DAT_182671c54;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xa508e38e)) = CONCAT44(uVar36,uVar15) ^ 0x4b84a4a93a8634b6;
  uVar36 = (*(uint *)(lVar3 + -0x76c) ^ uVar5) + (*(uint *)(lVar3 + -0xae4) ^ DAT_182671ec0);
  *(uint *)(lVar3 + -0x94) = uVar36 ^ uVar28;
  *(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0x3c50e34)) = uVar36 << ((bVar2 ^ 0x55) & 0x1f) ^ uVar27;
  uVar36 = (*(uint *)(lVar3 - (uVar37 ^ 0x80a204dc)) ^ uVar28) >> (((byte)uVar13 ^ 0x81) & 0x1f) ^
           DAT_182671f14;
  *(uint *)(lVar3 + -0x784) = uVar36;
  *(uint *)(lVar3 + -0x644) =
       (*(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xc88b386)) ^ uVar27 | uVar36 ^ DAT_182671f14) ^
       DAT_182671e00;
  uVar5 = DAT_182671f34;
  uVar22 = (ulonglong)DAT_182671c84;
  puVar41 = (ulonglong *)(lVar3 - (uVar8 ^ 0xdb9910ba));
  uVar12 = (ulonglong)DAT_182671dfc;
  *puVar41 = *(ulonglong *)(lVar3 - (uVar10 ^ 0x3b45054a)) >>
             ((byte)*(undefined8 *)(lVar3 + -0x628) & 0x3f);
  uVar13 = DAT_182671d6c;
  uVar36 = (*(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0x3c50d64)) ^ DAT_182671dd4) +
           (*(uint *)(lVar3 + -0x58c) ^ uVar26) ^ DAT_182671eb0;
  *(uint *)(lVar3 + -0x634) = uVar36;
  *(uint *)(lVar3 + -0x61c) = uVar36 ^ DAT_182671ed4 ^ DAT_182671eb0;
  *(uint *)(lVar3 - (uVar22 ^ 0x41121678)) =
       *(uint *)(lVar3 - (uVar16 ^ 0x81e2821c)) ^ DAT_182671dec ^ DAT_182671e00;
  *puVar30 = *(uint *)(lVar3 + -0x61c) ^ uVar5 ^ DAT_182671ed4;
  *(uint *)(lVar3 + -0x444) = uVar13 ^ DAT_182671dec ^ *(uint *)(lVar3 + -0x670);
  *(ulonglong *)(lVar3 + -0xb20) = *puVar41 >> ((byte)*(undefined8 *)(lVar3 + -0xa78) & 0x3f);
  *puVar1 = *(longlong *)(lVar3 + -0x9a8) + 0x1eU ^ uVar12;
  bVar2 = (byte)DAT_182671e34;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x81e28d38)) =
       *(longlong *)(lVar3 + -0x510) - (CONCAT44(uVar23,uVar29) ^ 0x4814e914a1d99e78);
  *pbVar17 = *(byte *)(uVar12 ^ *puVar1) ^ bVar2 ^ (byte)DAT_182671e0c;
  uVar26 = DAT_182671f5c;
  uVar15 = DAT_182671d84;
  uVar36 = DAT_182671c5c;
  uVar12 = (ulonglong)DAT_182671c5c;
  uVar28 = (uint)(*(byte *)(lVar3 - ((ulonglong)uVar23 ^ 0xc88b4c1)) ^ bVar2);
  uVar13 = (uVar13 ^ *(uint *)(lVar3 + -0x444)) + (DAT_182671c5c ^ 0x8c4a530c) ^ DAT_182671dd8;
  uVar29 = uVar28 ^ DAT_182671f5c;
  *(uint *)(lVar3 + -0x54) = uVar13;
  uVar13 = uVar13 ^ DAT_182671dd8;
  *(uint *)(lVar3 + -0x1c8) = uVar29;
  uVar29 = DAT_182671c70;
  *(uint *)(lVar3 + -0x6c0) = uVar28 * 0x20000 ^ uVar27;
  uVar18 = uVar29 * uVar36;
  uVar13 = uVar13 + uVar28 * -0x20000;
  *(uint *)(lVar3 + -0x9dc) = uVar13 ^ uVar15;
  uVar28 = DAT_182671f08;
  DAT_182671c58 = uVar18;
  *(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0x1a9887f6)) =
       uVar13 * (*(uint *)(lVar3 + -0x94c) ^ uVar5) ^ DAT_182671f28;
  *(longlong *)(lVar3 + -0x7e8) = -0x6c192e6a3c4a1c21 << (((byte)uVar36 ^ 0x2e) & 0x3f);
  *(uint *)(lVar3 + -0xae4) = (uVar26 ^ *(uint *)(lVar3 + -0x1c8)) * (uVar29 ^ 0x36e708bb) ^ uVar28;
  uVar13 = DAT_182671d60;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar29 ^ 0x36e702f5)) =
       (CONCAT44(uVar18,uVar36) ^ 0xc8eb9598d0368d07) << (((byte)uVar36 ^ 0x24) & 0x3f);
  uVar15 = (*(uint *)(lVar3 + -0x76c) ^ DAT_182671f28) + (*(uint *)(lVar3 + -0xae4) ^ uVar28);
  *(uint *)(lVar3 + -0x94) = uVar15 ^ uVar13;
  uVar27 = DAT_182671e1c;
  *(ulonglong *)(lVar3 + -0xf0) = *(ulonglong *)(lVar3 + -0x680) >> 0x36;
  *(uint *)(lVar3 + -0x684) = uVar15 * 0x2000 ^ DAT_182671ddc;
  uVar13 = (*(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0x1a98800e)) ^ uVar13) >>
           (((byte)uVar29 ^ 0xb6) & 0x1f);
  *(uint *)(lVar3 + -0x784) = uVar13 ^ uVar27;
  *(uint *)(lVar3 + -0x58c) =
       (*(uint *)(lVar3 - ((ulonglong)uVar39 ^ 0x47444a16)) ^ DAT_182671ddc | uVar13) ^
       DAT_182671d5c;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar18 ^ 0x1a988a92)) = 0xced01299d2e286b6;
  uVar15 = DAT_182671e94;
  uVar13 = DAT_182671c50 ^ 0xc2c9e3e7;
  *(uint *)(lVar3 + -0x634) =
       (*(uint *)(lVar3 - (uVar12 ^ 0x1008485e)) ^ uVar5) +
       (*(uint *)(lVar3 + -0x5d4) ^ DAT_182671dd4) ^ DAT_182671e30;
  *(uint *)(lVar3 - ((ulonglong)uVar29 ^ 0x36e70ee1)) = *(uint *)(lVar3 + -0xae4) ^ uVar28 | uVar13;
  *(uint *)(lVar3 + -0x61c) = DAT_182671ce8 ^ DAT_182671e30 ^ *(uint *)(lVar3 + -0x634);
  *(uint *)(lVar3 + -0x670) = *(uint *)(lVar3 + -0x58c) ^ DAT_182671cd4 ^ DAT_182671d5c;
  *(uint *)(lVar3 + -0x444) =
       *(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0x1a988686)) ^ uVar15 ^ DAT_182671ce8;
  bVar2 = (byte)DAT_182671df8;
  lVar4 = DAT_182671c40;
  uVar12 = (ulonglong)DAT_182671e10;
  *pbVar17 = *(byte *)(*(ulonglong *)(lVar3 - (uVar10 ^ 0x3b450b32)) ^ (ulonglong)DAT_182671f9c) ^
             (byte)DAT_182671e0c;
  *(uint *)(lVar4 - (uVar9 ^ 0x7c014254)) =
       *(uint *)(lVar4 - (uVar16 ^ 0x81e28228)) ^ DAT_182671dc8 ^ DAT_182671cd4;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0xc88bec2)) =
       *(longlong *)(lVar4 + -0x9a8) + 9 + (CONCAT44(uVar40,uVar36) ^ 0x80a2044810084112) * 0x20 ^
       uVar12;
  local_b0 = (byte)uVar25;
  *(byte *)(lVar4 - (uVar22 ^ 0x411211cb)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar21 ^ 0xd52d2ce)) ^ uVar12) ^ bVar2 ^
       (byte)DAT_182671e0c;
  uVar13 = DAT_182671e58;
  uVar28 = (bVar2 ^ *pbVar17) ^ DAT_182671e58;
  *(ulonglong *)(lVar4 + -0x3d8) = *(ulonglong *)(lVar4 + -0xf0) >> ((local_b0 ^ 0x87) & 0x3f);
  *(uint *)(lVar4 - ((ulonglong)uVar38 ^ 0x2bb9ced0)) = uVar28;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xa508eabe)) =
       (CONCAT44(uVar36,uVar23) ^ 0x80debb8ebb8eab25) <<
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)uVar29 ^ 0x36e70b7d)) & 0x3f);
  uVar28 = DAT_182671f7c;
  uVar36 = DAT_182671c68;
  *(uint *)(lVar4 + -0x9dc) =
       (*(uint *)(lVar4 + -0x54) ^ DAT_182671dc8) + (uVar6 ^ 0x47db0f0c) ^ DAT_182671f40;
  uVar40 = uVar36 << 0x10 | uVar36 >> 0x10;
  uVar23 = uVar6 * 0x10000 | uVar6 >> 0x10;
  DAT_182671c64 = uVar23;
  DAT_182671c6c = uVar40;
  *puVar11 = (*(uint *)(lVar4 + -0x6c0) ^ uVar13) << (((byte)uVar38 ^ 1) & 0x1f) ^ uVar28;
  uVar29 = DAT_182671ef8;
  uVar28 = (*(uint *)(lVar4 + -0x9dc) ^ DAT_182671f40) - (uVar28 ^ *(uint *)(lVar4 + -0x1c8)) ^
           DAT_182671d4c;
  *(uint *)(lVar4 + -0x76c) = uVar28;
  uVar28 = (uVar15 ^ *(uint *)(lVar4 + -0x444)) * (uVar28 ^ DAT_182671d4c) ^ DAT_182671e24;
  *(uint *)(lVar4 + -0x94) = uVar28;
  uVar28 = uVar28 ^ DAT_182671e24;
  *(uint *)(lVar4 + -0x684) =
       (*(uint *)(lVar4 + -0x6c0) ^ uVar13) * (uVar40 ^ 0xef98fffc) ^ DAT_182671ec4;
  uVar10 = (ulonglong)uVar36;
  uVar28 = (*(uint *)(lVar4 - ((ulonglong)uVar36 ^ 0xfff5e91c)) ^ DAT_182671ec4) + uVar28;
  *(uint *)(lVar4 + -0x784) = uVar28 ^ uVar29;
  uVar28 = uVar28 << (((byte)(uVar6 >> 0x10) ^ 0x94) & 0x1f);
  *(uint *)(lVar4 + -0xae4) =
       (*(uint *)(lVar4 + -0x784) ^ uVar29) >> (((byte)uVar6 ^ 1) & 0x1f) ^ DAT_182671ef0;
  *(uint *)(lVar4 + -0x94c) = uVar28 ^ uVar27;
  uVar27 = (*(uint *)(lVar4 - (uVar8 ^ 0xdb9917f6)) ^ DAT_182671ef0 | uVar28) ^ DAT_182671d9c;
  *(uint *)(lVar4 + -0x644) = uVar27;
  uVar29 = DAT_182671cc4 ^ DAT_182671dd0;
  uVar13 = (*(uint *)(lVar4 - (uVar10 ^ 0xfff5ebdc)) ^ uVar15) +
           (*(uint *)(lVar4 - ((ulonglong)uVar40 ^ 0xef98fa21)) ^ DAT_182671dd4) ^ DAT_182671dd0;
  *(uint *)(lVar4 + -0x634) = uVar13;
  *(uint *)(lVar4 + -0x58c) = uVar29 ^ uVar13;
  *(uint *)(lVar4 + -0x61c) = DAT_182671f70 ^ DAT_182671d9c ^ uVar27;
  *(ulonglong *)(lVar4 - (uVar8 ^ 0xdb991e92)) =
       CONCAT44(uVar6,uVar36) ^ CONCAT44(uVar23,uVar6) ^ 0xa5177898ae1b33a2;
  uVar36 = *(uint *)(lVar4 + -0x61c) ^ DAT_182671f70 ^ DAT_182671d60;
  *(uint *)(lVar4 + -0x670) = *(uint *)(lVar4 + -0x58c) ^ DAT_182671cc4 ^ DAT_182671f1c;
  *(ulonglong *)(lVar4 + -0x2b0) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar40 ^ 0xef98fc75)) ^ CONCAT44(uVar23,uVar23) ^
       0x556b8519bb9e0a;
  *(uint *)(lVar4 - (uVar10 ^ 0xfff5efcc)) = uVar36;
  uVar9 = (ulonglong)DAT_182671e28;
  *(ulonglong *)(lVar4 - (uVar10 ^ 0xfff5e3b8)) =
       *(longlong *)(lVar4 - (uVar8 ^ 0xdb9914ba)) + 0x14U ^ uVar9;
  *pbVar17 = *(byte *)(*puVar1 ^ uVar9) ^ (byte)DAT_182671db0 ^ (byte)DAT_182671e0c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar7 * 4) = uVar20;
  return;
}



############ FUN_ 180fd6000 size=4449 ############

void FUN_180fd6000(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  uint *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte *pbVar36;
  
  uVar23 = DAT_182671ef4;
  uVar27 = DAT_182671d88;
  uVar7 = DAT_182671c88;
  uVar5 = DAT_182671c78;
  uVar4 = DAT_182671c54;
  lVar2 = DAT_182671c40;
  uVar28 = (ulonglong)DAT_182671c54;
  uVar34 = (ulonglong)DAT_182671c88;
  uVar30 = DAT_182671c78 & DAT_182671c88;
  uVar19 = (DAT_182671c54 << 0x10 | DAT_182671c54 & 0xff00) << 8 | DAT_182671c54 >> 8 & 0xff00 |
           DAT_182671c54 >> 0x18;
  uVar13 = (ulonglong)DAT_182671c78;
  uVar11 = *(uint *)(&DAT_182613210 + (uVar13 ^ 0x47444c9a) + (longlong)DAT_182672020) ^
           DAT_182671c88;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_182672020);
  uVar14 = (ulonglong)DAT_182671ef4;
  bVar15 = (byte)DAT_182671c78 ^ 0x9f;
  uVar18 = (ulonglong)DAT_182671c54;
  uVar20 = (ulonglong)uVar19;
  DAT_182671c64 = uVar19;
  DAT_182671c90 = uVar30;
  *(uint *)(DAT_182671c40 + -0x61c) =
       (*(uint *)(DAT_182671c40 + -0xae4) ^ DAT_182671dbc) * (DAT_182671c54 ^ 0x81e28458) ^
       DAT_182671f54;
  uVar23 = (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x5884ebcd)) ^ uVar23) +
           (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x5884e49d)) ^ DAT_182671f54);
  *(uint *)(lVar2 + -0x634) = uVar23 ^ uVar27;
  puVar32 = (uint *)(lVar2 - ((ulonglong)uVar30 ^ 0x1400444));
  *(uint *)(lVar2 + -0x94) = uVar23 << (bVar15 & 0x1f) ^ DAT_182671d74;
  lVar3 = DAT_182671c40;
  *puVar32 = (uVar27 ^ *(uint *)(lVar2 + -0x634)) >> (((byte)uVar7 ^ 0x4b) & 0x1f) ^ DAT_182671f8c;
  *(uint *)(lVar2 + -0x76c) =
       (*(uint *)(lVar2 - ((ulonglong)uVar4 ^ 0x81e284cc)) ^ DAT_182671d74 |
       *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x5884e2d5)) ^ DAT_182671f8c) ^ DAT_182671e8c;
  *(ulonglong *)(lVar3 + -0x7e8) =
       CONCAT44(uVar5,uVar4) ^ 0x853e71b3e6fddab | CONCAT44(uVar30,uVar7) ^ 0x99f342166147a6d;
  *(uint *)(lVar3 - ((ulonglong)uVar19 ^ 0x5884eb5d)) =
       (*(uint *)(lVar3 - (uVar20 ^ 0x5884e755)) ^ DAT_182671dd4) +
       (*(uint *)(lVar3 + -0x1c8) ^ DAT_182671d58) ^ DAT_182671cfc;
  *(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0x81e281d4)) =
       *(uint *)(lVar3 - (uVar13 ^ 0x4744454e)) ^ DAT_182671d8c ^ DAT_182671cfc;
  *(uint *)(lVar3 + -0x784) = *(uint *)(lVar3 + -0x76c) ^ DAT_182671ecc ^ DAT_182671e8c;
  *(uint *)(lVar3 + -0x6c0) = *(uint *)(lVar3 + -0x58c) ^ DAT_182671f4c ^ DAT_182671d8c;
  *(ulonglong *)(lVar3 + -0x680) =
       CONCAT44(uVar4,uVar19) ^ 0xe25f854fe72a8f97 | *(ulonglong *)(lVar3 + -0xc38);
  *(uint *)(lVar3 + -0x684) =
       *(uint *)(lVar3 - ((ulonglong)uVar30 ^ 0x1400394)) ^ DAT_182671d94 ^ DAT_182671ecc;
  *(ulonglong *)(lVar3 + -0xa08) = CONCAT44(uVar30,uVar4) ^ 0x31b7e61c921840f0;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x5884e721)) =
       *(longlong *)(lVar3 - (uVar18 ^ 0x81e28df0)) +
       (CONCAT44(uVar19,uVar7) ^ 0x5884e28181e28458) * 0x20 +
       (CONCAT44(uVar5,uVar5) ^ 0x47444c9247444c99) ^ uVar14;
  bVar10 = (byte)DAT_182671f58;
  uVar23 = DAT_182671f10;
  uVar24 = DAT_182671c80;
  uVar33 = (ulonglong)DAT_182671c80;
  *(longlong *)(lVar3 + -0x3d8) =
       *(longlong *)(lVar3 - ((ulonglong)uVar7 ^ 0x81e28e50)) + *(longlong *)(lVar3 + -0x510);
  uVar27 = DAT_182671e28;
  bVar16 = *(byte *)(*(ulonglong *)(lVar3 + -0x5a0) ^ uVar14) ^ bVar10 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar3 + -0x1c3) = bVar16;
  uVar21 = (uint)(bVar16 ^ bVar10);
  *(ulonglong *)(lVar3 + -0xd88) = CONCAT44(uVar4,uVar5) ^ 0xf2fb37be777d3af7 | 0x308934be77593ad5;
  *(uint *)(lVar3 + -0x644) = uVar21 ^ uVar27;
  uVar8 = DAT_182671f24;
  lVar2 = DAT_182671c40;
  uVar26 = (*(uint *)(lVar3 - (uVar28 ^ 0x81e282dc)) ^ DAT_182671d94) + (uVar19 ^ 0xc4c6f09f);
  *(uint *)(lVar3 + -0x444) = uVar26 ^ uVar23;
  uVar23 = uVar21 << (((byte)uVar24 ^ 0x8b) & 0x1f);
  *(uint *)(lVar2 + -0x670) = uVar23 ^ uVar8;
  uVar27 = DAT_182671c60;
  *(uint *)(lVar2 + -0x94c) = uVar26 - uVar23 ^ DAT_182671eec;
  *(int *)(lVar2 + -0xae4) = -0x21a5759f << (((byte)uVar7 ^ 0x54) & 0x1f);
  *(ulonglong *)(lVar2 + -0x2b0) =
       -0x673a7df77a085963 - (CONCAT44(uVar19,uVar27) ^ 0xdb73b26b659d58d7);
  uVar14 = (ulonglong)DAT_182671c7c;
  uVar23 = (*(uint *)(lVar2 - ((ulonglong)uVar30 ^ 0x14002d0)) ^ DAT_182671f4c) *
           (*(uint *)(lVar2 - ((ulonglong)uVar24 ^ 0x7b5717d6)) ^ DAT_182671eec) ^ DAT_182671dcc;
  *(uint *)(lVar2 + -0x61c) = uVar23;
  uVar23 = uVar23 ^ DAT_182671dcc;
  *(uint *)(lVar2 + -0x634) = uVar21 * (uVar7 ^ 0x81e28453) ^ DAT_182671c9c;
  uVar27 = DAT_182671f28;
  lVar3 = DAT_182671c40;
  uVar23 = (*(uint *)(lVar2 - (uVar14 ^ 0x3b4508a6)) ^ DAT_182671c9c) + uVar23;
  *(uint *)(lVar2 + -0x94) = uVar23 ^ DAT_182671f28;
  uVar23 = uVar23 << (bVar15 & 0x1f) ^ DAT_182671f90;
  bVar15 = (byte)uVar30 ^ 3;
  *(uint *)(lVar2 + -0x54) = uVar23;
  uVar23 = uVar23 ^ DAT_182671f90;
  uVar14 = (ulonglong)DAT_182671c70;
  uVar27 = (*(uint *)(lVar2 + -0x94) ^ uVar27) >> (bVar15 & 0x1f) ^ DAT_182671e60;
  *(uint *)(lVar3 + -0x1c8) = uVar27;
  uVar27 = (uVar27 ^ DAT_182671e60 | uVar23) ^ DAT_182671da4;
  *(ulonglong *)(lVar3 + -0x960) =
       *(ulonglong *)(lVar3 - (uVar14 ^ 0x36e709b5)) | CONCAT44(uVar30,uVar19) ^ 0x253025b070af567a;
  *(uint *)(lVar3 + -0x9dc) = uVar27;
  *(uint *)(lVar3 - ((ulonglong)DAT_182671c68 ^ 0xfff5e8f4)) =
       (*(uint *)(lVar3 - (uVar34 ^ 0x81e28298)) ^ DAT_182671f4c) +
       (*(uint *)(lVar3 - (uVar28 ^ 0x81e2818c)) ^ DAT_182671dd4) ^ DAT_182671f00;
  uVar21 = *(uint *)(lVar3 - (uVar33 ^ 0x7b5719f6)) ^ DAT_182671d4c ^ DAT_182671f00;
  *(uint *)(lVar3 + -0x58c) = uVar21;
  *(uint *)(lVar3 + -0x784) = *(uint *)(lVar3 + -0x9dc) ^ DAT_182671cb0 ^ DAT_182671da4;
  uVar25 = DAT_182671e68;
  uVar6 = DAT_182671c84;
  uVar19 = DAT_182671c58;
  uVar23 = DAT_182671c50;
  uVar27 = DAT_182671c48;
  uVar14 = (ulonglong)DAT_182671c74;
  uVar29 = (ulonglong)DAT_182671c58;
  uVar35 = (ulonglong)DAT_182671c48;
  uVar18 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  *(uint *)(lVar3 + -0x684) = uVar21 ^ DAT_182671e68 ^ DAT_182671d4c;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x3c502c0)) =
       uVar18 ^ *(ulonglong *)(lVar3 + -0x888) ^ *(ulonglong *)(lVar3 + -0x828);
  uVar22 = (ulonglong)DAT_182671ea4;
  *(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xdff3f38a)) =
       *(uint *)(lVar3 + -0x784) ^ DAT_182671ce0 ^ DAT_182671cb0;
  bVar10 = (byte)DAT_182671e00;
  *(ulonglong *)(lVar3 + -0x170) =
       *(longlong *)(lVar3 - (uVar20 ^ 0x5884eb29)) + (CONCAT44(uVar23,uVar19) ^ 0xdff3f96e1a98808c)
       ^ uVar22;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x1400560)) ^ uVar22) ^ bVar10 ^
       (byte)DAT_182671e0c;
  *(uint *)(lVar3 + -0x444) = (*(byte *)(lVar3 - (uVar35 ^ 0x71539acd)) ^ bVar10) ^ DAT_182671e9c;
  *(ulonglong *)(lVar3 + -0x8f0) =
       *(ulonglong *)(CONCAT44(DAT_182671dd8,DAT_182671dd8) ^ *(ulonglong *)(lVar3 + -0x588)) ^
       CONCAT44(uVar8,uVar8);
  uVar12 = DAT_182671f34;
  uVar21 = DAT_182671c6c;
  uVar19 = DAT_182671c5c;
  lVar2 = DAT_182671c40;
  uVar18 = (ulonglong)DAT_182671c6c;
  *(uint *)(lVar3 + -0x670) =
       (*(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0x41121aec)) ^ DAT_182671ce0) +
       (DAT_182671c5c ^ 0x8c4a530c) ^ DAT_182671e44;
  uVar23 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  *(uint *)(DAT_182671c40 + -0x94c) =
       (*(uint *)(DAT_182671c40 - ((ulonglong)DAT_182671c4c ^ 0xdff3fd2a)) ^ DAT_182671e9c) << 0x11
       ^ DAT_182671d08;
  *(uint *)(lVar2 + -0x644) =
       (*(uint *)(lVar2 - ((ulonglong)uVar21 ^ 0xef98f985)) ^ DAT_182671e44) -
       (*(uint *)(lVar3 - (uVar18 ^ 0xef98f6b9)) ^ DAT_182671d08) ^ DAT_182671e54;
  *(ulonglong *)(lVar2 - (uVar13 ^ 0x47444b52)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0x7c014af0)) >> 0x25;
  uVar26 = DAT_182671e9c ^ *(uint *)(lVar2 + -0x444);
  *(uint *)(lVar2 + -0x61c) =
       (*(uint *)(lVar2 - (uVar34 ^ 0x81e282dc)) ^ uVar25) *
       (*(uint *)(lVar2 + -0x644) ^ DAT_182671e54) ^ DAT_182671e08;
  *(uint *)(lVar2 - (uVar29 ^ 0x1a9886ae)) = uVar26 * (uVar6 ^ 0x4112101e) ^ uVar12;
  uVar26 = DAT_182671c94;
  uVar14 = (ulonglong)DAT_182671c94;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0x81e28878)) ^ (ulonglong)DAT_182671fac) ^
       (byte)DAT_182671e0c;
  uVar17 = DAT_182671eb0;
  uVar12 = (*(uint *)(lVar2 + -0x61c) ^ DAT_182671e08) + (uVar12 ^ *(uint *)(lVar2 + -0x634));
  *(uint *)(lVar2 + -0x94) = uVar12 ^ DAT_182671eb0;
  *puVar32 = uVar12 * 0x2000 ^ DAT_182671e30;
  *(ulonglong *)(lVar2 + -0xa50) =
       CONCAT44(uVar23,uVar21) ^ 0x428427f08d96264b | CONCAT44(uVar30,uVar26) ^ 0x2106d23fef95a1e;
  uVar26 = *(uint *)(lVar2 + -0x54) ^ DAT_182671e30;
  uVar17 = (*(uint *)(lVar2 - (uVar20 ^ 0x5884e215)) ^ uVar17) >>
           (((byte)DAT_182671c7c ^ 0x81) & 0x1f) ^ DAT_182671d18;
  *(uint *)(lVar2 + -0x1c8) = uVar17;
  uVar23 = DAT_182671ebc;
  *(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x411216c8)) =
       (uVar17 ^ DAT_182671d18 | uVar26) ^ DAT_182671ca0;
  *(uint *)(lVar2 - (uVar14 ^ 0x80a20324)) =
       (*(uint *)(lVar2 + -0x684) ^ uVar25) + (DAT_182671dd4 ^ *(uint *)(lVar2 + -0x5d4)) ^ uVar23;
  uVar26 = *(uint *)(lVar2 + -0x6c0) ^ DAT_182671ca0 ^ DAT_182671e08;
  *(uint *)(lVar2 + -0x9dc) = uVar23 ^ *(uint *)(lVar2 + -0x76c) ^ DAT_182671d08;
  uVar14 = (ulonglong)DAT_182671c60;
  *(byte *)(lVar2 + -0x1c3) =
       *(byte *)(uVar22 ^ *(ulonglong *)(lVar2 + -0x170)) ^ (byte)DAT_182671e0c;
  *(uint *)(lVar2 - (uVar14 ^ 0x7c01478c)) = uVar26;
  uVar9 = DAT_182671f84;
  uVar12 = DAT_182671dfc;
  uVar17 = DAT_182671d98;
  uVar26 = DAT_182671c74;
  *(uint *)(lVar2 + -0x784) =
       *(uint *)(lVar2 - ((ulonglong)DAT_182671c74 ^ 0x3c5016c)) ^ DAT_182671d98 ^ DAT_182671d08;
  *(ulonglong *)(lVar2 + -0x5e8) =
       (CONCAT44(uVar30,uVar21) ^ 0x64b0bc16f108f40e) - *(longlong *)(lVar2 + -0x2b0);
  uVar31 = *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0x1008449e)) ^ DAT_182671da0 ^ DAT_182671e08;
  *(uint *)(lVar2 + -0xae4) = uVar31;
  uVar23 = DAT_182671c68;
  uVar31 = uVar31 ^ DAT_182671da0;
  uVar20 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar2 + -0xda8) =
       *(ulonglong *)
        (*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x3c505d8)) ^ CONCAT44(uVar9,uVar9)) ^
       CONCAT44(uVar8,uVar8);
  uVar25 = DAT_182671d54;
  pbVar36 = (byte *)((CONCAT44(uVar27,uVar23) ^ 0x71539b0efff5ef98) * 0x20 +
                     (CONCAT44(uVar24,uVar5) ^ 0x7b571e9a47444c93) + *(longlong *)(lVar2 + -0x9a8));
  uVar27 = uVar31 + (uVar21 ^ 0x73daedeb) ^ DAT_182671d54;
  *(ulonglong *)(lVar2 + -0xbc0) = (ulonglong)pbVar36 ^ (ulonglong)DAT_182671d68;
  bVar10 = *pbVar36 ^ (byte)DAT_182671e0c;
  *(byte *)(lVar2 + -0x1c3) = bVar10 ^ (byte)DAT_182671d90;
  uVar14 = (ulonglong)DAT_182671c7c;
  *(uint *)(lVar2 + -0x670) = bVar10 ^ uVar12;
  bVar10 = (byte)DAT_182671c50;
  *(uint *)(lVar2 - (uVar14 ^ 0x3b4507de)) = uVar27;
  uVar26 = DAT_182671cd0;
  uVar5 = DAT_182671cc8;
  uVar23 = DAT_182671c74;
  uVar27 = (*(uint *)(lVar2 + -0x670) ^ uVar12) << ((bVar10 ^ 0x7f) & 0x1f);
  uVar24 = (uVar25 ^ *(uint *)(lVar2 + -0x94c)) - uVar27;
  uVar25 = uVar24 ^ DAT_182671cd0;
  uVar14 = (ulonglong)DAT_182671c74;
  *(uint *)(lVar2 + -0x644) = uVar27 ^ DAT_182671e6c;
  *(uint *)(lVar2 + -0x444) = uVar25;
  uVar27 = DAT_182671cc4;
  bVar10 = (byte)DAT_182671c60;
  *(uint *)(lVar2 - (uVar33 ^ 0x7b571886)) =
       (*(uint *)(lVar2 + -0x784) ^ uVar17) * uVar24 ^ DAT_182671cc4;
  uVar12 = *(uint *)(lVar2 - ((ulonglong)uVar6 ^ 0x41121678)) ^ uVar5 ^ uVar12;
  *(uint *)(lVar2 + -0x634) = uVar12;
  uVar24 = DAT_182671da8;
  uVar27 = (uVar27 ^ *(uint *)(lVar2 + -0x61c)) + (uVar5 ^ uVar12);
  *(uint *)(lVar2 + -0x94) = uVar27 ^ DAT_182671da8;
  uVar25 = uVar27 << ((bVar10 ^ 0xd) & 0x1f) ^ DAT_182671cec;
  uVar27 = (*(uint *)(lVar2 + -0x94) ^ uVar24) >> (((byte)uVar6 ^ 0x1b) & 0x1f);
  uVar24 = uVar27 ^ DAT_182671ee0;
  *(uint *)(lVar2 + -0x54) = uVar25;
  uVar25 = uVar25 ^ DAT_182671cec;
  *(uint *)(lVar2 + -0x1c8) = uVar24;
  *(uint *)(lVar2 + -0x684) = (uVar27 | uVar25) ^ uVar26;
  uVar24 = (*(uint *)(lVar2 - (uVar14 ^ 0x3c50d64)) ^ DAT_182671dd4) +
           (*(uint *)(lVar2 + -0x784) ^ uVar17) ^ DAT_182671f4c;
  uVar27 = DAT_182671f38 ^ uVar24;
  *(uint *)(lVar2 + -0x76c) = uVar24;
  *(uint *)(lVar2 + -0x6c0) = uVar27 ^ DAT_182671f4c;
  *(undefined8 *)(lVar2 - (uVar34 ^ 0x81e284a8)) = 0x601da7074b6d334;
  *(uint *)(lVar2 + -0x9dc) = *(uint *)(lVar2 + -0x684) ^ DAT_182671db4 ^ uVar26;
  uVar6 = DAT_182671ee8;
  uVar24 = DAT_182671d78;
  uVar26 = DAT_182671c7c;
  uVar27 = DAT_182671c70;
  lVar3 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671ea0;
  uVar29 = (ulonglong)DAT_182671c70;
  uVar14 = (ulonglong)DAT_182671c58;
  uVar28 = (ulonglong)DAT_182671c7c;
  *(uint *)(lVar2 - (uVar20 ^ 0xfff5e57c)) =
       *(uint *)(lVar2 + -0x6c0) ^ DAT_182671d78 ^ DAT_182671f38;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0x36e702c5)) =
       (CONCAT44(uVar27,uVar7) ^ 0x589c8998607f039d) -
       (CONCAT44(DAT_182671c8c,DAT_182671c8c) ^ 0x69bacc0ce09b915a);
  *(uint *)(lVar3 + -0x94c) = *(uint *)(lVar3 + -0x9dc) ^ uVar6 ^ DAT_182671db4;
  *(uint *)(lVar3 - (uVar14 ^ 0x1a9886de)) =
       *(uint *)(lVar3 - (uVar13 ^ 0x4744491e)) ^ DAT_182671e08 | uVar5 ^ *(uint *)(lVar3 + -0x634);
  bVar10 = (byte)DAT_182671ef0;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c50 ^ 0xdff3fcce)) =
       (CONCAT44(uVar19,uVar4) ^ 0x1008411281e28458) * 0x20 +
       (CONCAT44(uVar4,uVar26) ^ 0x81e284583b450e9e) + *(longlong *)(lVar3 + -0x9a8) ^ uVar22;
  *(byte *)(lVar3 + -0x1c3) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0x100844b2)) ^ uVar22) ^
       (byte)DAT_182671e0c ^ bVar10;
  uVar19 = DAT_182671e9c;
  uVar26 = DAT_182671c7c ^ 0xa7071c8c;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x1a988b92)) = CONCAT44(uVar23,uVar21) ^ 0x1ee48898936d90b1;
  uVar27 = DAT_182671c48;
  uVar21 = (uVar6 ^ *(uint *)(lVar3 + -0x94c)) + uVar26 ^ DAT_182671cb0;
  uVar23 = (uint)(*(byte *)(lVar3 + -0x1c3) ^ bVar10);
  *(uint *)(lVar3 + -0x444) = uVar23 ^ uVar19;
  *(uint *)(lVar3 + -0x670) = uVar21;
  uVar13 = (ulonglong)DAT_182671c60;
  *(uint *)(lVar3 - (uVar18 ^ 0xef98f9e9)) =
       uVar23 << (((byte)uVar27 ^ 0x1f) & 0x1f) ^ DAT_182671c98;
  *(uint *)(lVar3 - (uVar29 ^ 0x36e70831)) =
       (*(uint *)(lVar3 + -0x670) ^ DAT_182671cb0) -
       (*(uint *)(lVar3 - (uVar34 ^ 0x81e28244)) ^ DAT_182671c98) ^ DAT_182671dc4;
  *(uint *)(lVar3 + -0x1c8) =
       (*(uint *)(lVar3 + -0x94) ^ DAT_182671dc4) * (*(uint *)(lVar3 + -0xae4) ^ uVar24) ^
       DAT_182671d1c;
  bVar10 = (byte)DAT_182671c94;
  *(uint *)(lVar3 - (uVar13 ^ 0x7c014254)) =
       (uVar19 ^ *(uint *)(lVar3 + -0x444)) * (DAT_182671c94 ^ 0x80a20444) ^ DAT_182671fa8;
  uVar27 = DAT_182671edc;
  uVar23 = (*(uint *)(lVar3 + -0x54) ^ DAT_182671fa8) + (*(uint *)(lVar3 + -0x1c8) ^ DAT_182671d1c)
           ^ DAT_182671eec;
  *(longlong *)(lVar3 + -0x4b8) =
       *(longlong *)(lVar3 + -0xa70) << (((byte)(uVar4 >> 0x18) ^ 0x81) & 0x3f);
  *(uint *)(lVar3 + -0x784) = uVar23;
  uVar23 = uVar23 ^ DAT_182671eec;
  *(uint *)(lVar3 + -0x76c) = uVar23 << ((bVar10 ^ 0x45) & 0x1f) ^ uVar27;
  *(uint *)(lVar3 - (uVar28 ^ 0x3b450816)) = uVar23 >> (bVar15 & 0x1f) ^ DAT_182671e04;
  *(uint *)(lVar3 + -0x6c0) =
       (uVar27 ^ *(uint *)(lVar3 + -0x76c) | *(uint *)(lVar3 + -0x684) ^ DAT_182671e04) ^
       DAT_182671d08;
  *(uint *)(lVar3 + -0x9dc) =
       (*(uint *)(lVar3 - (uVar33 ^ 0x7b57147e)) ^ uVar24) +
       (DAT_182671dd4 ^ *(uint *)(lVar3 + -0x5d4)) ^ DAT_182671ec8;
  *(longlong *)(lVar3 + -0xc18) = *(longlong *)(lVar3 + -0xf0) + *(longlong *)(lVar3 + -0xa08);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar30) * 4) = uVar11;
  return;
}



############ FUN_ 180fec410 size=5437 ############

void FUN_180fec410(void)

{
  ulonglong *puVar1;
  uint uVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte bVar43;
  ulonglong *puVar44;
  byte local_118;
  byte local_110;
  byte local_100;
  ulonglong uVar26;
  
  uVar13 = DAT_182671d20;
  uVar11 = DAT_182671c84;
  uVar10 = DAT_182671c80;
  uVar9 = DAT_182671c7c;
  uVar8 = DAT_182671c70;
  uVar6 = DAT_182671c64;
  uVar7 = DAT_182671c5c;
  lVar4 = DAT_182671c40;
  uVar22 = (ulonglong)DAT_182671c5c;
  uVar34 = (ulonglong)DAT_182671c7c;
  uVar30 = (ulonglong)DAT_182671c80;
  uVar29 = (ulonglong)DAT_182671c64;
  uVar3 = DAT_182671c7c;
  if ((DAT_182671c5c & 1) == 0) {
    uVar3 = DAT_182671c5c;
  }
  uVar25 = DAT_182671c84 * DAT_182671c80;
  uVar26 = (ulonglong)uVar25;
  uVar31 = DAT_182671c64 * DAT_182671c70;
  uVar37 = *(uint *)(&DAT_182613218 + DAT_182672064) ^ DAT_182671c84;
  uVar2 = *(uint *)(&DAT_182613210 + (uVar30 ^ 0x2dabc91) + (longlong)DAT_182672064);
  uVar16 = (ulonglong)DAT_182671c70;
  uVar40 = (ulonglong)DAT_182671c84;
  puVar1 = (ulonglong *)(DAT_182671c40 + -0xa50);
  DAT_182671c4c = uVar3;
  DAT_182671c58 = uVar31;
  DAT_182671c94 = uVar25;
  *(ulonglong *)(DAT_182671c40 + -0xda8) =
       (CONCAT44(DAT_182671c64,DAT_182671c70) ^ 0x6478add81e2c0e18) &
       (CONCAT44(uVar31,DAT_182671c84) ^ 0x80f29fa445b9122e);
  uVar14 = DAT_182671f88;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar41 = CONCAT44(DAT_182671c98,DAT_182671c98);
  uVar24 = CONCAT44(DAT_182671f20,DAT_182671f20);
  *(ulonglong *)(lVar4 + -0xbd8) =
       (uVar41 ^ *puVar1) -
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c88 ^ 0x430a417)) ^ uVar23) ^ uVar24;
  uVar27 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  uVar38 = CONCAT44(DAT_182671d7c,DAT_182671d7c);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0x5275208)) =
       CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar4 + -0xc18) ^ *(ulonglong *)(lVar4 + -0x960) ^
       uVar38 ^ uVar27;
  *(uint *)(lVar4 + -0x9dc) = (uVar7 ^ 0x75384333) * *(int *)(lVar4 + -0x94);
  lVar4 = DAT_182671c40;
  uVar20 = (*(ulonglong *)(DAT_182671c40 + -0xa08) ^ uVar27) >>
           (((byte)DAT_182671c88 ^ 0xbe) & 0x3f);
  uVar17 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  *(ulonglong *)(DAT_182671c40 + -0xb18) = uVar20 ^ CONCAT44(DAT_182671f6c,DAT_182671f6c);
  lVar5 = DAT_182671c40;
  uVar35 = (*(ulonglong *)(lVar4 + -0xa08) ^ uVar27) << 7;
  *(ulonglong *)(DAT_182671c40 + -0xd88) = uVar35 ^ uVar17;
  uVar35 = uVar35 | uVar20;
  uVar17 = CONCAT44(DAT_182671e08,DAT_182671e08);
  uVar20 = uVar35 ^ uVar17;
  uVar27 = CONCAT44(DAT_182671ca4,DAT_182671ca4);
  *(ulonglong *)(lVar5 + -0x5e8) = uVar20;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar5 + -0xc38) = (*(ulonglong *)(lVar5 + -0xc18) ^ uVar38) - uVar35 ^ uVar27;
  uVar12 = DAT_182671ea8;
  lVar5 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       *(ulonglong *)(lVar4 + -0xbd8) ^ uVar35 ^ uVar17 ^ uVar24 ^ uVar20;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xdceef1b5)) =
       (CONCAT44(uVar31,uVar10) ^ 0x968d2abc2c42df8e) + 0x271472db3ac5cca7;
  uVar13 = DAT_182671e44;
  uVar20 = CONCAT44(DAT_182671de8,DAT_182671de8);
  bVar19 = (byte)uVar6;
  *(ulonglong *)(lVar5 + -0x110) =
       ((ulonglong)uVar12 << 0x12 | (ulonglong)(uVar12 >> 0xe)) ^
       *(ulonglong *)(lVar5 - ((ulonglong)uVar31 ^ 0x15d8f7f4)) >> 0xe ^ uVar20;
  uVar17 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x60b08dc0)) =
       (uVar35 ^ *(ulonglong *)(lVar5 + -0x228)) << ((bVar19 ^ 0x76) & 0x3f) ^ uVar17;
  *(ulonglong *)(lVar5 + -0xf0) =
       (*(ulonglong *)(lVar5 + -0xc38) ^ uVar27) >> ((bVar19 ^ 0x62) & 0x3f);
  uVar35 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  *(ulonglong *)(lVar5 + -0xa78) =
       (*(ulonglong *)(lVar5 - (uVar16 ^ 0x1010447)) ^ uVar17 |
       *(ulonglong *)(lVar5 + -0x110) ^ uVar20) ^ uVar35;
  puVar28 = (ulonglong *)(lVar5 - ((ulonglong)DAT_182671c88 ^ 0x430a35f));
  uVar17 = CONCAT44(DAT_182671ce0,DAT_182671ce0);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar25 ^ 0x73b92e50)) =
       (uVar24 ^ *puVar28) - (CONCAT44(DAT_182671c88,uVar7) ^ 0x7da3730e2dbafbcb) ^ uVar17;
  uVar38 = CONCAT44(DAT_182671d40,DAT_182671d40);
  *(ulonglong *)(lVar5 + -0xda8) =
       (*(ulonglong *)(lVar5 + -0x510) ^ uVar17) - (*(ulonglong *)(lVar5 + -0xa78) ^ uVar35) ^
       uVar38;
  *(uint *)(lVar5 - (uVar30 ^ 0x2dabab5)) = (uVar11 ^ 0xfcf2995e) + (uVar3 ^ 0xecca3d76);
  uVar12 = DAT_182671c88;
  uVar32 = CONCAT44(uVar6,DAT_182671c88);
  uVar42 = CONCAT44(DAT_182671e24,DAT_182671e24);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x5275250)) =
       (*(ulonglong *)(lVar5 + -0xa78) ^ uVar35) - (CONCAT44(uVar8,uVar25) ^ 0x19007277f1b11d35) ^
       uVar42;
  uVar36 = CONCAT44(DAT_182671e20,DAT_182671e20);
  *(ulonglong *)(lVar5 + -0x960) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar3 ^ 0x5275438)) ^ *(ulonglong *)(lVar5 + -0xc90) ^
       uVar36 ^ uVar27 ^ uVar23;
  puVar21 = (ulonglong *)(lVar5 - ((ulonglong)uVar25 ^ 0x73b92220));
  local_100 = (byte)uVar31;
  uVar24 = (*puVar21 ^ uVar36) >> ((local_100 ^ 0xcc) & 0x3f);
  uVar20 = CONCAT44(DAT_182671d58,DAT_182671d58);
  *(ulonglong *)(lVar5 + -0xa08) = uVar24 ^ uVar41;
  uVar13 = DAT_182671cec;
  uVar17 = (ulonglong)DAT_182671c6c;
  *(ulonglong *)(lVar5 + -0xb18) =
       (*(ulonglong *)(lVar5 - (uVar40 ^ 0x60b08220)) ^ uVar36) << (((byte)uVar12 ^ 0xb7) & 0x3f) ^
       uVar20;
  uVar14 = DAT_182671d78;
  uVar12 = DAT_182671c90;
  uVar6 = DAT_182671c50;
  uVar23 = (ulonglong)DAT_182671c50;
  uVar33 = *(ulonglong *)(lVar5 - (uVar17 ^ 0x44354536)) ^ uVar20 | uVar24;
  uVar17 = (ulonglong)DAT_182671c90;
  uVar15 = DAT_182671c50 - DAT_182671c90;
  DAT_182671c48 = uVar15;
  *(ulonglong *)(lVar5 + -0xd88) = uVar33 ^ CONCAT44(uVar13,uVar13);
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar20 = (*(ulonglong *)(lVar5 + -0xc38) ^ uVar27) - (CONCAT44(uVar6,uVar12) ^ 0xb5f02f92d5131c04)
  ;
  *(ulonglong *)(lVar5 + -0xc18) = uVar20 ^ uVar39;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) = 0x5988051d49f5f932 >> (((byte)uVar12 ^ 0x1e) & 0x3f);
  uVar13 = DAT_182671f1c;
  puVar18 = (ulonglong *)(lVar4 + -0x888);
  uVar35 = CONCAT44(DAT_182671e58,DAT_182671e58);
  *puVar18 = uVar20 - uVar33 ^ uVar35;
  lVar4 = DAT_182671c40;
  uVar20 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0x228) =
       (CONCAT44(uVar6,uVar6) ^ 0x9dae8a850e19eb0d) + uVar33 ^ uVar20;
  uVar33 = CONCAT44(DAT_182671d24,DAT_182671d24);
  *(ulonglong *)(lVar4 + -0xf0) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x2c70329)) ^ *(ulonglong *)(lVar4 + -0xda8) ^
       uVar33 ^ uVar20 ^ uVar38;
  uVar14 = DAT_182671fb0;
  *(ulonglong *)(lVar4 + -0x110) = uVar24 | 0x8f1008294b572c56;
  uVar13 = DAT_182671d1c;
  uVar24 = CONCAT44(uVar14,uVar14);
  puVar44 = (ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0x5275e80));
  *puVar44 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar15 ^ 0x270591f)) ^ uVar33) >>
             (((byte)uVar6 ^ 0xd0) & 0x3f) ^ uVar24;
  lVar4 = DAT_182671c40;
  uVar20 = (*(ulonglong *)(DAT_182671c40 - (uVar29 ^ 0xe1b0ffb4)) ^ uVar33) <<
           (((byte)uVar15 ^ 0xcf) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar20 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182671dc8;
  *(ulonglong *)(lVar4 + -0x510) =
       *(ulonglong *)(lVar4 - (uVar22 ^ 0xdceef525)) ^ uVar39 |
       *(ulonglong *)(lVar4 + -0xa08) ^ uVar41;
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xa78) = (*(ulonglong *)(lVar4 + -0x680) ^ uVar24 | uVar20) ^ uVar41;
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x2dab011)) =
       (CONCAT44(uVar6,uVar10) ^ 0x8c3533477d8361ca) -
       (CONCAT44(uVar15,DAT_182671c78) ^ 0xf3c6ddcfcadce698);
  uVar14 = DAT_182671f9c;
  uVar33 = CONCAT44(DAT_182671cf4,DAT_182671cf4);
  *(ulonglong *)(lVar4 + -0x960) =
       (*(ulonglong *)(lVar4 + -0xda8) ^ uVar38) - (uVar41 ^ *(ulonglong *)(lVar4 + -0xa78)) ^
       uVar33;
  uVar13 = DAT_182671d38;
  uVar38 = CONCAT44(uVar14,uVar14);
  uVar42 = *(ulonglong *)(lVar4 - (uVar26 ^ 0x73b92110)) ^
           *(ulonglong *)(lVar4 - (uVar34 ^ 0x5275088)) ^ uVar38 ^ uVar35 ^ uVar42;
  *(ulonglong *)(lVar4 + -0xb18) = uVar42;
  uVar24 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_182671c40 + -0xc38) = (uVar42 ^ uVar38) >> ((local_100 ^ 0xfc) & 0x3f) ^ uVar24
  ;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x5e8) =
       CONCAT44(uVar9,uVar11) ^ CONCAT44(uVar12,uVar31) ^ 0x7a8b020aaa2a794f;
  uVar20 = CONCAT44(DAT_182671f58,DAT_182671f58);
  uVar39 = CONCAT44(DAT_182671e9c,DAT_182671e9c);
  *(ulonglong *)(lVar4 + -0xd88) = (uVar42 ^ uVar38) << ((bVar19 ^ 100) & 0x3f) ^ uVar20;
  uVar13 = DAT_182671e88;
  *(ulonglong *)(lVar4 + -0x228) =
       (*(ulonglong *)(lVar4 - (uVar17 ^ 0x2c70d39)) ^ uVar24 |
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c88 ^ 0x430a50f)) ^ uVar20) ^ uVar39;
  lVar5 = DAT_182671c40;
  uVar38 = CONCAT44(uVar13,uVar13);
  uVar20 = (ulonglong)DAT_182671c78;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x27058ff)) =
       (*puVar18 ^ uVar35) - (*(ulonglong *)(lVar4 - (uVar23 ^ 0x53758d8)) ^ uVar39) ^ uVar38;
  uVar24 = CONCAT44(DAT_182671e70,DAT_182671e70);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x4e2e44c5)) =
       *(ulonglong *)(lVar4 + -0x960) ^ uVar24 ^ uVar39 ^ uVar33 ^ *(ulonglong *)(lVar4 + -0x228);
  uVar13 = DAT_182671e2c;
  *(ulonglong *)(lVar4 + -0xc18) =
       *(ulonglong *)(lVar4 - (uVar34 ^ 0x5275910)) ^ uVar38 | 0x6c7a168438819d0e;
  uVar34 = CONCAT44(uVar13,uVar13);
  local_118 = (byte)uVar11;
  *(ulonglong *)(lVar4 + -0xa08) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x2dabc71)) ^ uVar24) >> ((local_118 ^ 0x7a) & 0x3f) ^
       uVar34;
  uVar3 = DAT_182671c6c;
  uVar42 = CONCAT44(uVar6,DAT_182671c6c);
  *(ulonglong *)(lVar5 + -0x510) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_182671c6c ^ 0x44354ede)) ^ uVar24) <<
       (((byte)DAT_182671c6c ^ 0x28) & 0x3f) ^ uVar36;
  *puVar44 = CONCAT44(uVar31,uVar3) ^ 0x29637ab17647a4b0 | uVar32 ^ 0x804c8309736c4e58;
  uVar13 = DAT_182671e64;
  uVar24 = CONCAT44(DAT_182671d9c,DAT_182671d9c);
  *(ulonglong *)(lVar5 + -0xbd8) =
       (uVar34 ^ *(ulonglong *)(lVar5 + -0xa08) | *(ulonglong *)(lVar5 + -0x510) ^ uVar36) ^ uVar24;
  lVar4 = DAT_182671c40;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar33 = (*puVar21 ^ uVar33) - (*(ulonglong *)(lVar5 - (uVar17 ^ 0x2c70ad9)) ^ uVar24);
  *(ulonglong *)(lVar5 + -0xc90) = uVar33 ^ uVar36;
  uVar13 = DAT_182671f2c;
  local_110 = (byte)uVar25;
  uVar30 = *(ulonglong *)(lVar4 + -0x110);
  *(ulonglong *)(lVar4 + -0xda8) =
       (*(ulonglong *)(lVar5 - (uVar16 ^ 0x10100ef)) ^ uVar39) << ((local_110 ^ 0x44) & 0x3f);
  lVar5 = DAT_182671c40;
  uVar20 = CONCAT44(uVar13,uVar13);
  *puVar1 = *(ulonglong *)(lVar4 - (uVar16 ^ 0x10108bf)) ^ uVar20 ^ uVar38 ^ uVar41 ^ uVar30;
  uVar13 = DAT_182671ef4;
  uVar20 = uVar20 ^ *puVar1;
  *(ulonglong *)(lVar5 + -0x5e8) =
       (CONCAT44(uVar31,uVar9) ^ 0xe249cfc94e8b04c9) >> (((byte)uVar8 ^ 0xd4) & 0x3f);
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0xb18) = uVar20 >> (((byte)uVar8 ^ 0xd1) & 0x3f) ^ uVar35;
  uVar34 = CONCAT44(DAT_182671e14,DAT_182671e14);
  *(ulonglong *)(lVar5 + -0xc38) = uVar20 << ((bVar19 ^ 0x6e) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar5 + -0xd88) = uVar33 + 0x78bb57785ea1b2fd;
  lVar4 = DAT_182671c40;
  puVar21 = (ulonglong *)(lVar5 - (uVar29 ^ 0xe1b0f37c));
  uVar33 = CONCAT44(DAT_182671df4,DAT_182671df4);
  uVar29 = *(ulonglong *)(DAT_182671c40 - (uVar26 ^ 0x73b92058)) ^ uVar35 | uVar34 ^ *puVar21;
  uVar34 = uVar29 ^ uVar33;
  *puVar18 = uVar34;
  uVar20 = CONCAT44(DAT_182671e60,DAT_182671e60);
  *(ulonglong *)(lVar4 + -0xc18) = (uVar38 ^ uVar30) - uVar29 ^ uVar20;
  *(uint *)(lVar4 + -0x5d4) = (DAT_182671c50 ^ 0xc4d55024) + *(int *)(lVar4 - (uVar17 ^ 0x2c707c1));
  uVar35 = CONCAT44(DAT_182671cd4,DAT_182671cd4);
  uVar29 = *(ulonglong *)(lVar4 - (uVar22 ^ 0xdceef5ad)) ^ uVar35 ^ uVar33 ^ uVar34 ^ uVar36;
  *(ulonglong *)(lVar4 + -0xf0) = uVar29;
  uVar13 = DAT_182671da4;
  uVar30 = (uVar29 ^ uVar35) >> (((byte)uVar12 ^ 0x2f) & 0x3f);
  *(ulonglong *)(lVar4 + -0x680) = uVar30 ^ CONCAT44(DAT_182671d8c,DAT_182671d8c);
  lVar4 = DAT_182671c40;
  uVar29 = (uVar35 ^ uVar29) << (((byte)uVar6 ^ 0xe2) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar29 ^ CONCAT44(uVar13,uVar13);
  uVar32 = CONCAT44(DAT_182671ecc,DAT_182671ecc);
  bVar19 = (byte)DAT_182671c6c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c6c ^ 0x44354b3e)) = (uVar29 | uVar30) ^ uVar32;
  uVar13 = DAT_182671da8;
  uVar33 = CONCAT44(DAT_182671dec,DAT_182671dec);
  uVar36 = (uVar36 ^ *(ulonglong *)(lVar4 + -0xc90)) - (uVar32 ^ *(ulonglong *)(lVar4 + -0x510)) ^
           uVar33;
  *(ulonglong *)(lVar4 + -0x960) = uVar36;
  uVar14 = DAT_182671f44;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar24 = *(ulonglong *)(lVar4 - ((ulonglong)uVar31 ^ 0x15d8fe04)) ^ uVar30 ^ uVar20 ^
           *(ulonglong *)(lVar4 + -0xc18) ^ uVar24;
  *(ulonglong *)(lVar4 + -0x228) = uVar24;
  uVar13 = DAT_182671f8c;
  uVar3 = DAT_182671c6c;
  uVar22 = (uVar24 ^ uVar30) >> ((bVar19 ^ 0x22) & 0x3f);
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xda8) = uVar22 ^ uVar35;
  lVar4 = DAT_182671c40;
  uVar24 = (uVar30 ^ uVar24) << (((byte)uVar3 ^ 0x1a) & 0x3f);
  uVar29 = (ulonglong)DAT_182671c78;
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0xc18);
  uVar34 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(DAT_182671c40 + -0xa78) = uVar24 ^ CONCAT44(uVar13,uVar13);
  uVar38 = (uVar24 | uVar22) ^ uVar34;
  uVar24 = CONCAT44(DAT_182671dd8,DAT_182671dd8);
  *(ulonglong *)(lVar4 + -0x5e8) = uVar38;
  *puVar1 = (uVar20 ^ uVar30) - (*(ulonglong *)(lVar4 - (uVar29 ^ 0x4e2e41dd)) ^ uVar34) ^ uVar24;
  uVar3 = DAT_182671c78;
  uVar20 = (ulonglong)DAT_182671c78;
  uVar30 = CONCAT44(DAT_182671f5c,DAT_182671f5c);
  *(ulonglong *)(lVar4 + -0xb18) = uVar30 ^ uVar34 ^ uVar36 ^ uVar33 ^ uVar38;
  *(ulonglong *)(lVar4 + -0xc38) = CONCAT44(uVar9,uVar10) ^ 0x34c081e7a65e6f49 | uVar22;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x4e2e4525)) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0x53751e8)) ^ uVar30) >> ((local_110 ^ 0x59) & 0x3f) ^
       uVar27;
  uVar29 = CONCAT44(DAT_182671e8c,DAT_182671e8c);
  *(ulonglong *)(lVar4 - (uVar17 ^ 0x2c70989)) =
       (uVar30 ^ *(ulonglong *)(lVar4 + -0xb18)) << 0x27 ^ uVar29;
  *(undefined8 *)(lVar4 + -0xf0) = 0x7fe2fffafc6f1f95;
  lVar5 = DAT_182671c40;
  uVar30 = *(ulonglong *)(DAT_182671c40 + -0x960);
  uVar34 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar22 = *(ulonglong *)(lVar4 + -0x110) ^ uVar27 | uVar29 ^ *puVar18;
  *(ulonglong *)(DAT_182671c40 + -0xa08) = uVar22 ^ uVar34;
  *(ulonglong *)(lVar5 + -0x680) = CONCAT44(uVar11,uVar3) ^ CONCAT44(uVar9,uVar6) ^ 0xbeb37b3e74a93c
  ;
  uVar29 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar5 + -0xc90) =
       (uVar33 ^ uVar30) - (CONCAT44(uVar11,uVar12) ^ 0x390af88d3bdf3839) ^ uVar29;
  lVar4 = DAT_182671c40;
  uVar17 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) =
       (*(ulonglong *)(DAT_182671c40 - (uVar40 ^ 0x60b087d0)) ^ uVar29) -
       (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c6c ^ 0x44354426)) ^ uVar34) ^ uVar39;
  uVar13 = DAT_182671f74;
  uVar30 = *(ulonglong *)(lVar4 - (uVar20 ^ 0x4e2e4e3d));
  *(ulonglong *)(lVar4 + -0xa78) = uVar22 | *(ulonglong *)(lVar4 + -0xd88);
  *(ulonglong *)(lVar4 + -0x228) = (uVar30 ^ uVar34) - (uVar42 ^ 0x39ee9e7464bc8ef5) ^ uVar17;
  uVar14 = DAT_182671ee4;
  uVar22 = CONCAT44(uVar13,uVar13);
  uVar30 = *(ulonglong *)(lVar4 - (uVar16 ^ 0x1010897)) ^ uVar22 ^ uVar24 ^ uVar32 ^
           *(ulonglong *)(lVar4 + -0x510);
  *(ulonglong *)(lVar4 + -0xc18) = uVar30;
  uVar13 = DAT_182671ce8;
  uVar29 = CONCAT44(uVar14,uVar14);
  bVar43 = (byte)uVar10;
  *(ulonglong *)(lVar4 + -0x5e8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c88 ^ 0x430a49f)) ^ uVar22) >>
       ((bVar43 ^ 0xa0) & 0x3f) ^ uVar29;
  uVar14 = DAT_182671e68;
  uVar40 = CONCAT44(uVar13,uVar13);
  *puVar21 = (uVar22 ^ uVar30) << ((bVar43 ^ 0x9e) & 0x3f) ^ uVar40;
  uVar13 = DAT_182671dac;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar30 = *puVar1;
  uVar29 = *(ulonglong *)(lVar4 + -0xc38) ^ uVar40 | *(ulonglong *)(lVar4 + -0x5e8) ^ uVar29;
  *(ulonglong *)(lVar4 + -0xb18) = uVar29 ^ uVar34;
  uVar30 = (uVar24 ^ uVar30) - (CONCAT44(uVar31,uVar9) ^ 0xdd9856c872f6e75);
  *(ulonglong *)(lVar4 + -0x110) = CONCAT44(uVar7,uVar8) ^ 0xd2d1601a0169a72c;
  uVar14 = DAT_182671f90;
  uVar22 = CONCAT44(DAT_182671f90,DAT_182671f90);
  *(ulonglong *)(lVar4 + -0xf0) = uVar30 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x73b923c8)) = uVar30 - uVar29 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x680) =
       uVar17 ^ uVar35 ^ *(ulonglong *)(lVar4 + -0xda8) ^ *(ulonglong *)(lVar4 + -0x228);
  uVar3 = DAT_182671df8;
  uVar30 = CONCAT44(DAT_182671dc4,DAT_182671dc4);
  uVar29 = (CONCAT44(uVar7,uVar25) ^ 0x5f41a25303fd460f) + (*(ulonglong *)(lVar4 + -0xb18) ^ uVar34)
           ^ uVar30;
  *(ulonglong *)(lVar4 + -0x960) = uVar29;
  uVar30 = uVar39 ^ *puVar28 ^ CONCAT44(uVar3,uVar3) ^ uVar29 ^ uVar30;
  bVar19 = *(byte *)puVar18;
  *(ulonglong *)(lVar4 + -0xc90) = uVar30;
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 + -0xc38) ^ uVar40) >> ((bVar19 ^ (byte)uVar14) & 0x3f);
  uVar14 = DAT_182671f38;
  *(ulonglong *)(lVar4 + -0x510) = *(ulonglong *)(lVar4 + -0x680) >> ((bVar43 ^ 0xae) & 0x3f);
  uVar29 = (uVar30 ^ CONCAT44(uVar3,uVar3)) << 0x3b;
  uVar34 = ((ulonglong)uVar3 << 0x1b | (ulonglong)(uVar3 >> 5)) ^ uVar30 >> 5;
  uVar30 = CONCAT44(DAT_182671f70,DAT_182671f70);
  *(ulonglong *)(lVar4 + -0xa08) = uVar34 ^ uVar35;
  uVar13 = DAT_182671d6c;
  *(ulonglong *)(lVar4 + -0xa78) = uVar29 ^ uVar30;
  uVar34 = uVar34 | uVar29;
  *(ulonglong *)(lVar4 + -0xc18) = uVar34 ^ CONCAT44(uVar13,uVar13);
  uVar30 = (ulonglong)DAT_182671c6c;
  uVar29 = CONCAT44(DAT_182671e6c,DAT_182671e6c);
  *(ulonglong *)(lVar4 + -0x5e8) =
       (uVar39 ^ *(ulonglong *)(lVar4 + -0xbd8)) - uVar34 ^ CONCAT44(uVar14,uVar14);
  *puVar1 = *(ulonglong *)(lVar4 - (uVar30 ^ 0x44354c06)) ^ uVar29 ^ uVar17 ^ *puVar18 ^ uVar22;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar2 ^ uVar25) * 4) = uVar37;
  return;
}



############ FUN_ 180f803c0 size=5756 ############

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

void FUN_180f803c0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte local_res18;
  byte local_res20;
  byte local_e0;
  byte local_b8;
  
  uVar6 = DAT_182671c78;
  uVar5 = DAT_182671c74;
  uVar4 = DAT_182671c64;
  uVar3 = DAT_182671c60;
  uVar27 = DAT_182671c4c;
  lVar1 = DAT_182671c40;
  uVar10 = DAT_182671c60 & 3;
  uVar18 = (ulonglong)DAT_182671c64;
  if (uVar10 < 2) {
    DAT_182671c94 = DAT_182671c64;
    if (uVar10 == 0) {
      DAT_182671c94 = DAT_182671c60;
    }
  }
  else {
    DAT_182671c94 = DAT_182671c78;
    if (uVar10 < 3) {
      DAT_182671c94 = DAT_182671c74;
    }
  }
  uVar33 = (ulonglong)DAT_182671c4c;
  uVar14 = *(uint *)(&DAT_182613218 + DAT_182671ffc) ^ DAT_182671c4c;
  uVar11 = *(uint *)(&DAT_182613220 + DAT_182671ffc) ^ DAT_182671c78;
  uVar29 = (ulonglong)DAT_182671c60;
  uVar16 = (ulonglong)DAT_182671c74;
  uVar28 = CONCAT44(DAT_182671d2c,DAT_182671d2c);
  bVar12 = (byte)DAT_182671c60;
  uVar19 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(DAT_182671c40 + -0xf0) =
       (uVar28 ^ *(ulonglong *)(DAT_182671c40 + -0xc18)) << 0x21 ^ uVar19;
  uVar25 = CONCAT44(DAT_182671f48,DAT_182671f48);
  uVar22 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  *(ulonglong *)(lVar1 + -0x2b0) =
       (*(ulonglong *)(lVar1 - (uVar16 ^ 0xaa350644)) ^ uVar28) >> ((bVar12 ^ 0xd0) & 0x3f) ^ uVar25
  ;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xb6e628ce)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xaa3508ec)) ^ uVar25 |
       *(ulonglong *)(lVar1 - (uVar18 ^ 0xb8169853)) ^ uVar19) ^ uVar22;
  uVar28 = CONCAT44(DAT_182671ca8,DAT_182671ca8);
  uVar25 = CONCAT44(DAT_182671e88,DAT_182671e88);
  *(ulonglong *)(lVar1 + -0x4b8) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xefbf9417)) ^ uVar25 ^ uVar28 ^ uVar22 ^
       *(ulonglong *)(lVar1 + -0xb08);
  uVar7 = DAT_182671cb4;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0xb8169e8b)) = 0x812902de6e80ea52 >> ((bVar12 ^ 0xdb) & 0x3f);
  uVar16 = uVar28 ^ *(ulonglong *)(lVar1 + -0x4b8);
  uVar20 = CONCAT44(DAT_182671d5c,DAT_182671d5c);
  *(ulonglong *)(lVar1 + -0xa70) =
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar1 + -0x888)) + uVar16 ^ uVar20;
  uVar26 = CONCAT44(DAT_182671e00,DAT_182671e00);
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xefbf9c4f)) = uVar16 << 0x2e ^ uVar26;
  bVar13 = (byte)uVar5;
  *(ulonglong *)(lVar1 + -0x408) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0x380)) >> (((byte)uVar6 ^ 0x14) & 0x3f);
  uVar8 = DAT_182671e80;
  uVar29 = (uVar28 ^ *(ulonglong *)(lVar1 + -0x4b8)) >> ((bVar13 ^ 0x4e) & 0x3f);
  uVar28 = CONCAT44(DAT_182671ed4,DAT_182671ed4);
  *(ulonglong *)(lVar1 + -0xb18) = uVar29 ^ uVar28;
  uVar7 = DAT_182671cd4;
  uVar16 = CONCAT44(uVar8,uVar8);
  uVar29 = (uVar26 ^ *(ulonglong *)(lVar1 + -0x380) | uVar29) ^ uVar16;
  *(ulonglong *)(lVar1 + -0x760) = uVar29;
  uVar26 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0xa50) =
       uVar26 ^ uVar16 ^ uVar20 ^ uVar29 ^ *(ulonglong *)(lVar1 + -0xa70);
  uVar5 = DAT_182671d94;
  uVar7 = DAT_182671d10;
  uVar16 = (ulonglong)DAT_182671d94;
  *(ulonglong *)(lVar1 + -0x110) =
       CONCAT44(DAT_182671d30,DAT_182671d30) ^ *(ulonglong *)(lVar1 + -0x7e8) |
       CONCAT44(uVar3,uVar4) ^ 0x5663c7f284734483;
  uVar8 = DAT_182671db0;
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar1 + -0x7c0);
  uVar21 = CONCAT44(uVar7,uVar7);
  uVar34 = (*(ulonglong *)(lVar1 + -0x7c0) >> 0x20 ^ uVar16) >> 0x14;
  uVar30 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)DAT_182671c78 ^ 0xb6e6281e)) ^ uVar25) +
           uVar31 ^ uVar21;
  *(ulonglong *)(DAT_182671c40 + -0xb20) = uVar30;
  uVar31 = uVar31 << ((bVar13 ^ 0x50) & 0x3f);
  uVar16 = CONCAT44(DAT_182671d84,DAT_182671d84);
  *(ulonglong *)(lVar2 + -0x828) = uVar31 ^ CONCAT44(uVar8,uVar8);
  uVar7 = DAT_182671e58;
  *(ulonglong *)(lVar2 + -0xc18) = uVar34 ^ uVar16;
  uVar6 = DAT_182671de8;
  uVar29 = CONCAT44(uVar7,uVar7);
  uVar16 = (ulonglong)DAT_182671c60;
  *(ulonglong *)(lVar2 + -0xf0) = (uVar34 | uVar31) ^ uVar29;
  lVar1 = DAT_182671c40;
  uVar31 = CONCAT44(uVar6,uVar6);
  local_res18 = (byte)uVar27;
  uVar25 = (ulonglong)DAT_182671c94;
  uVar16 = *(ulonglong *)(DAT_182671c40 - (uVar16 ^ 0xefbf9f3f)) ^ uVar30 ^ uVar31 ^ uVar29 ^ uVar21
  ;
  uVar39 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(DAT_182671c40 + -0x2b0) = uVar16;
  uVar7 = DAT_182671f9c;
  uVar27 = DAT_182671c84;
  *(ulonglong *)(lVar1 + -0xbd8) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xb6e62966)) ^ uVar20) + (uVar16 ^ uVar31) ^ uVar39;
  uVar10 = DAT_182671c88;
  uVar20 = CONCAT44(uVar7,uVar7);
  bVar12 = (byte)DAT_182671c8c;
  *(ulonglong *)(lVar1 + -0x628) = (uVar31 ^ uVar16) << ((local_res18 ^ 0x82) & 0x3f) ^ uVar20;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0xb816902b)) = 0xc2c784851331ebc2 >> ((bVar12 ^ 0xae) & 0x3f);
  uVar5 = DAT_182671c78;
  uVar16 = CONCAT44(DAT_182671d50,DAT_182671d50);
  puVar17 = (ulonglong *)(lVar1 - ((ulonglong)DAT_182671c60 ^ 0xefbf9bc7));
  *puVar17 = *(ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0x6f279db4)) >> 6 ^
             ((ulonglong)uVar6 << 0x1a | (ulonglong)(uVar6 >> 6)) ^ uVar16;
  *(ulonglong *)(lVar1 + -0x4b8) = 0xf92ee14973809f1 - (CONCAT44(uVar5,uVar10) ^ 0x3a467134bcf1879b)
  ;
  uVar25 = CONCAT44(DAT_182671fa4,DAT_182671fa4);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0x6f279c84)) =
       (*(ulonglong *)(lVar1 + -0x408) ^ uVar16 | *(ulonglong *)(lVar1 + -0x628) ^ uVar20) ^ uVar25;
  uVar30 = CONCAT44(DAT_182671d44,DAT_182671d44);
  *(ulonglong *)(lVar1 + -0xb18) =
       *(ulonglong *)(lVar1 + -0x380) ^ uVar30 ^ uVar25 ^ uVar39 ^ *(ulonglong *)(lVar1 + -0xbd8);
  uVar38 = CONCAT44(DAT_182671d24,DAT_182671d24);
  uVar16 = (ulonglong)DAT_182671c60;
  uVar29 = (uVar26 ^ *(ulonglong *)(lVar1 + -0xa50)) + (*(ulonglong *)(lVar1 + -0xb20) ^ uVar21) ^
           uVar38;
  *(ulonglong *)(lVar1 + -0x760) = uVar29;
  *(ulonglong *)(lVar1 + -0x7e8) =
       (*(ulonglong *)(lVar1 + -0x380) ^ uVar25) + *(longlong *)(lVar1 - (uVar16 ^ 0xefbf9747));
  uVar25 = CONCAT44(DAT_182671cac,DAT_182671cac);
  *(ulonglong *)(lVar1 + -0x110) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0xa50)) << ((local_res18 ^ 0xae) & 0x3f) ^ uVar25;
  uVar16 = CONCAT44(uVar3,DAT_182671c94);
  *(ulonglong *)(lVar1 + -0xb08) =
       (uVar26 ^ *(ulonglong *)(lVar1 + -0xa50)) >> ((bVar13 ^ 0x76) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar1 + -0x7c0) =
       uVar16 ^ *(ulonglong *)(lVar1 + -0x628) ^ uVar20 ^ 0x43c82bde304d9fac;
  uVar7 = DAT_182671ec8;
  uVar27 = DAT_182671da8;
  uVar20 = CONCAT44(DAT_182671ec0,DAT_182671ec0);
  uVar23 = (ulonglong)DAT_182671da8;
  uVar16 = (ulonglong)DAT_182671c84;
  uVar25 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x7f2fb4b7)) ^ uVar28 |
           *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c8c ^ 0x5e2e34ab)) ^ uVar25) ^ uVar20;
  *(ulonglong *)(lVar1 + -0x828) = uVar25;
  uVar34 = CONCAT44(uVar7,uVar7);
  uVar21 = CONCAT44(uVar27,uVar27);
  uVar29 = uVar21 ^ uVar25 ^ uVar20 ^ uVar29 ^ uVar38;
  *(ulonglong *)(lVar1 + -0xc18) = uVar29;
  uVar28 = CONCAT44(DAT_182671d38,DAT_182671d38);
  *(ulonglong *)(lVar1 + -0xf0) =
       (*(ulonglong *)(lVar1 - (uVar16 ^ 0x6f27931c)) ^ uVar21) +
       (uVar39 ^ *(ulonglong *)(lVar1 + -0xbd8)) ^ uVar34;
  bVar12 = (byte)uVar10;
  uVar27 = DAT_182671c64 ^ 0x97e1507f;
  uVar16 = (ulonglong)DAT_182671c94;
  *(ulonglong *)(lVar1 + -0xa70) = (uVar29 ^ uVar21) << ((local_res18 ^ 0x98) & 0x3f) ^ uVar28;
  uVar25 = CONCAT44(DAT_182671df4,DAT_182671df4);
  *(ulonglong *)(lVar1 + -0x4b8) = uVar29 >> 0x20 ^ uVar25 ^ uVar23;
  *(int *)(lVar1 - (uVar16 ^ 0xb6e6269a)) = (int)uVar27 >> ((bVar12 ^ 0xaa) & 0x1f);
  uVar8 = DAT_182671f44;
  uVar3 = DAT_182671d80;
  puVar35 = (ulonglong *)(lVar1 - (uVar33 ^ 0xa3981200));
  uVar39 = CONCAT44(_DAT_182671cf0,_DAT_182671cf0);
  uVar23 = (ulonglong)DAT_182671d80;
  uVar16 = (ulonglong)DAT_182671c74;
  uVar25 = (*(ulonglong *)(lVar1 - (uVar18 ^ 0xb81692d3)) ^ uVar28 | *puVar35 ^ uVar25) ^ uVar39;
  *(ulonglong *)(lVar1 + -0x408) = uVar25;
  uVar7 = DAT_182671d64;
  uVar27 = DAT_182671c5c;
  uVar30 = *(ulonglong *)(lVar1 + -0xb18) ^ uVar30;
  uVar21 = CONCAT44(uVar3,uVar3);
  uVar29 = (ulonglong)DAT_182671c5c;
  *(ulonglong *)(lVar1 + -0xb20) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar16 ^ 0xaa350e44)) ^ CONCAT44(uVar8,uVar8)) ^
       uVar19;
  uVar6 = DAT_182671c7c;
  uVar40 = CONCAT44(uVar7,uVar7);
  uVar28 = (ulonglong)DAT_182671c7c;
  uVar24 = DAT_182671c7c - uVar27;
  uVar20 = (ulonglong)uVar24;
  *(ulonglong *)(lVar1 + -0x888) = uVar25 ^ *(ulonglong *)(lVar1 + -0xf0) ^ uVar40 ^ uVar39 ^ uVar34
  ;
  lVar2 = DAT_182671c40;
  DAT_182671c68 = uVar24;
  *(ulonglong *)(lVar1 + -0x380) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xe5991daf)) ^ uVar38) + uVar30 ^ uVar21;
  *(ulonglong *)(lVar2 + -0x7e8) =
       CONCAT44(uVar27,uVar24) ^ 0x21d4f5236a4f7683 | uVar31 ^ *(ulonglong *)(lVar2 + -0x2b0);
  lVar1 = DAT_182671c40;
  uVar25 = uVar30 << (((byte)uVar27 ^ 0xcb) & 0x3f);
  uVar16 = CONCAT44(DAT_182671d70,DAT_182671d70);
  *(ulonglong *)(lVar2 + -0xa50) = uVar25 ^ uVar16;
  uVar7 = DAT_182671ce4;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x628) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0x2fc61bb4)) ^ uVar16) << (((byte)uVar6 ^ 0xfe) & 0x3f);
  uVar8 = DAT_182671e7c;
  uVar30 = uVar30 >> (((byte)uVar6 ^ 0xef) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7c0) = uVar30 ^ CONCAT44(uVar7,uVar7);
  uVar16 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0x2fc610f4)) = (uVar30 | uVar25) ^ uVar16;
  uVar25 = CONCAT44(DAT_182671e18,DAT_182671e18);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x2fc61aec)) =
       *(ulonglong *)(lVar2 + -0x380) ^ *(ulonglong *)(lVar2 + -0x110) ^ uVar25 ^ uVar16 ^ uVar21;
  uVar31 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xe59912e7)) =
       (CONCAT44(uVar6,uVar24) ^ 0x955e097a77472b4a) + (*(ulonglong *)(lVar2 + -0xb08) ^ uVar25) ^
       uVar31;
  uVar3 = DAT_182671c90;
  uVar16 = (ulonglong)DAT_182671c90;
  uVar15 = DAT_182671c90 << 0x10 | DAT_182671c90 >> 0x10;
  uVar39 = (ulonglong)uVar15;
  uVar30 = CONCAT44(DAT_182671f78,DAT_182671f78);
  uVar25 = (ulonglong)DAT_182671c90;
  DAT_182671c6c = uVar15;
  *(ulonglong *)(DAT_182671c40 - (uVar39 ^ 0x725b26d9)) =
       (*(ulonglong *)(DAT_182671c40 + -0xf0) ^ uVar34) +
       (CONCAT44(DAT_182671c90,uVar15) ^ 0x74bb01964b431439) ^ uVar30;
  lVar1 = DAT_182671c40;
  uVar34 = CONCAT44(DAT_182671cc4,DAT_182671cc4);
  *(ulonglong *)(DAT_182671c40 - (uVar25 ^ 0x2d017e43)) =
       (*(ulonglong *)(DAT_182671c40 + -0x828) ^ uVar31) +
       (uVar30 ^ *(ulonglong *)(DAT_182671c40 + -0xbd8)) ^ uVar34;
  uVar7 = DAT_182671dbc;
  *(ulonglong *)(lVar1 + -0xa70) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x2d01753b)) ^ uVar38) +
       (CONCAT44(uVar15,uVar15) ^ 0xca9cb7f403df2c81);
  local_b8 = (byte)uVar3;
  uVar32 = CONCAT44(uVar7,uVar7);
  uVar38 = (*(ulonglong *)(lVar1 + -0x828) ^ uVar31) << ((local_b8 ^ 0x55) & 0x3f);
  *(ulonglong *)(lVar1 + -0x4b8) = uVar38 ^ uVar32;
  uVar7 = DAT_182671dec;
  *(byte *)(lVar1 + -0x8c1) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x370) ^ uVar23) ^ (byte)DAT_182671f14;
  uVar8 = DAT_182671f10;
  uVar36 = CONCAT44(uVar7,uVar7);
  uVar25 = (*(ulonglong *)(lVar1 + -0x828) ^ uVar31) >> (((byte)DAT_182671c8c ^ 0x89) & 0x3f);
  *(ulonglong *)(lVar1 + -0xb20) = uVar25 ^ uVar36;
  lVar2 = DAT_182671c40;
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar25 = (*(ulonglong *)(lVar1 - (uVar29 ^ 0xb5d30c53)) ^ uVar32 | uVar25) ^ uVar30;
  *(ulonglong *)(DAT_182671c40 + -0x408) = uVar25;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar38 << 0x2a;
  uVar23 = CONCAT44(DAT_182671e44,DAT_182671e44);
  *(ulonglong *)(lVar2 + -0x7e8) =
       *(ulonglong *)(lVar2 - (uVar39 ^ 0x725b2119)) ^ uVar25 ^ uVar23 ^ uVar30 ^ uVar34;
  uVar7 = DAT_182671fb4;
  *(ulonglong *)(lVar2 + -0x628) = (*(ulonglong *)(lVar2 - (uVar16 ^ 0x2d01797b)) ^ uVar36) << 9;
  uVar38 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xe59911d7)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c78 ^ 0xb6e62b9e)) ^ uVar40) +
       (CONCAT44(uVar27,uVar3) ^ 0xc983ac7aa2bae0f7) ^ uVar38;
  uVar7 = DAT_182671f2c;
  uVar31 = CONCAT44(DAT_182671ea4,DAT_182671ea4);
  *(ulonglong *)(lVar2 + -0xa50) =
       (CONCAT44(uVar15,uVar27) ^ 0x271e2457d72081f1) + (*(ulonglong *)(lVar2 + -0x380) ^ uVar21) ^
       uVar31;
  uVar8 = DAT_182671f60;
  uVar32 = CONCAT44(uVar7,uVar7);
  uVar16 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0xefbf94d7));
  uVar36 = uVar38 ^ *(ulonglong *)(lVar2 + -0xb18);
  uVar21 = uVar36 << 0x10;
  uVar25 = *(ulonglong *)(lVar2 - (uVar28 ^ 0xe599109f));
  *(ulonglong *)(lVar2 + -0x110) = uVar21 ^ uVar23;
  uVar7 = DAT_182671d88;
  local_res20 = (byte)uVar4;
  uVar36 = uVar36 >> ((local_res20 ^ 0x93) & 0x3f);
  uVar38 = (uVar16 ^ uVar38) + (uVar25 ^ uVar31) ^ uVar32;
  *(ulonglong *)(lVar2 + -0x7c0) = uVar38;
  *(ulonglong *)(lVar2 + -0xb08) = uVar36 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182671e3c;
  uVar16 = CONCAT44(uVar7,uVar7);
  uVar36 = (uVar36 | uVar21) ^ uVar16;
  *(ulonglong *)(lVar2 + -0xf0) = uVar36;
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar31 = CONCAT44(DAT_182671e74,DAT_182671e74);
  uVar25 = CONCAT44(uVar5,DAT_182671c8c);
  uVar38 = uVar36 ^ uVar21 ^ uVar16 ^ uVar32 ^ uVar38;
  *(ulonglong *)(lVar2 + -0xbd8) = uVar38;
  uVar38 = uVar38 ^ uVar21;
  uVar16 = (uVar34 ^ *(ulonglong *)(lVar2 + -0xc18)) + uVar38 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x760) = uVar16;
  uVar8 = DAT_182671f70;
  *(ulonglong *)(lVar2 + -0xa70) =
       uVar25 ^ 0x7f70d3e23d0f804c | CONCAT44(uVar5,uVar27) ^ 0xc3d8ddd0ad85fa1d;
  uVar7 = DAT_182671f68;
  uVar34 = CONCAT44(uVar8,uVar8);
  local_e0 = (byte)uVar24;
  bVar13 = (byte)DAT_182671c74;
  *(ulonglong *)(lVar2 + -0x828) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c84 ^ 0x6f2794dc)) ^ uVar21) <<
       ((local_e0 ^ 0xd0) & 0x3f) ^ uVar34;
  uVar8 = DAT_182671f98;
  uVar9 = DAT_182671e78;
  uVar38 = uVar38 >> ((bVar13 ^ 0x50) & 0x3f);
  uVar36 = (ulonglong)DAT_182671e78;
  *(ulonglong *)(lVar2 + -0x4b8) = uVar38 ^ CONCAT44(uVar7,uVar7);
  lVar1 = DAT_182671c40;
  uVar25 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x2b0) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0xb5d300c3)) ^ uVar34 | uVar38) ^ uVar25;
  lVar2 = DAT_182671c40;
  uVar21 = CONCAT44(DAT_182671df8,DAT_182671df8);
  *(ulonglong *)(DAT_182671c40 + -0x408) =
       *(ulonglong *)(lVar1 - (uVar20 ^ 0x2fc61354)) ^ CONCAT44(uVar9,uVar9) ^ uVar25 ^ uVar16 ^
       uVar31;
  uVar5 = DAT_182671c94;
  uVar16 = CONCAT44(uVar24,DAT_182671c74);
  uVar25 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c78 ^ 0xb6e624d6)) ^ uVar32) +
           (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c94 ^ 0xb6e624fe)) ^ uVar23);
  *(ulonglong *)(lVar2 + -0xb20) = uVar25 ^ uVar21;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x725b2b29)) = uVar25 - (uVar16 ^ 0x4309cc38a51a2321);
  uVar34 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar2 + -0x888) = (*(ulonglong *)(lVar2 + -0x7e8) ^ uVar23) << 0x39 ^ uVar34;
  lVar1 = DAT_182671c40;
  uVar16 = (*(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar10 ^ 0x7f2fb857)) ^ uVar23) >>
           (((byte)(uVar3 >> 0x10) ^ 6) & 0x3f);
  *(ulonglong *)(DAT_182671c40 + -0x380) = uVar16 ^ CONCAT44(DAT_182671f24,DAT_182671f24);
  uVar7 = DAT_182671ed0;
  uVar16 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xb6e62b9e)) ^ uVar34 | uVar16) ^ uVar34;
  *(ulonglong *)(lVar1 + -0xa50) = uVar16;
  uVar20 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_182671c84 ^ 0x6f27941c)) =
       *(ulonglong *)(lVar1 - (uVar28 ^ 0xe59911ef)) ^ uVar16 ^ uVar20 ^ uVar34 ^ uVar21;
  uVar7 = DAT_182671dc0;
  uVar28 = CONCAT44(DAT_182671f18,DAT_182671f18);
  *(ulonglong *)(lVar1 + -0x110) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xb6e6280e)) ^ uVar20) +
       (*(ulonglong *)(lVar1 + -0x760) ^ uVar31) ^ uVar28;
  lVar2 = DAT_182671c40;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar16 = *(ulonglong *)(DAT_182671c40 + -0xb18);
  uVar25 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x7f2fb4a7)) ^ uVar20) <<
           ((bVar12 ^ 0xa8) & 0x3f);
  *(ulonglong *)(lVar1 + -0xb08) = uVar25 ^ uVar31;
  uVar5 = DAT_182671c84;
  *(ulonglong *)(lVar2 + -0xf0) =
       *(ulonglong *)(lVar1 - (uVar33 ^ 0xa3981db0)) ^ CONCAT44(uVar3,uVar27) ^ uVar31 ^
       0xf48ccef67720be38;
  uVar8 = DAT_182671e2c;
  uVar7 = DAT_182671cf4;
  uVar31 = (uVar20 ^ uVar16) >> ((bVar12 ^ 0x96) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc18) = uVar31 ^ uVar34;
  uVar16 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xa70) = (uVar25 | uVar31) ^ uVar16;
  puVar37 = (ulonglong *)(lVar2 - (uVar18 ^ 0xb816937b));
  uVar18 = (ulonglong)DAT_182671c78;
  *puVar37 = *(ulonglong *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0xb88)) ^ uVar19;
  uVar25 = CONCAT44(DAT_182671fa8,DAT_182671fa8);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c60 ^ 0xefbf97e7)) =
       *(ulonglong *)(lVar2 - (uVar18 ^ 0xb6e62966)) ^ uVar25 ^ uVar16 ^ uVar28 ^
       *(ulonglong *)(lVar2 + -0x110);
  uVar7 = DAT_182671ef8;
  *(ulonglong *)(lVar2 + -0x4b8) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0xb20)) >> (((byte)uVar5 ^ 2) & 0x3f);
  uVar18 = *(ulonglong *)(lVar2 + -0x408) ^ CONCAT44(uVar9,uVar9);
  uVar19 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x2b0) = (uVar21 ^ *(ulonglong *)(lVar2 + -0xb20)) + uVar18 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x7c0) =
       (CONCAT44(uVar24,uVar24) ^ 0x5df3d4b9d165e765) + 0xb447a3dd2ace6248;
  uVar3 = DAT_182671c78;
  lVar1 = DAT_182671c40;
  uVar16 = (ulonglong)DAT_182671c78;
  uVar31 = CONCAT44(DAT_182671e98,DAT_182671e98);
  *(ulonglong *)(DAT_182671c40 + -0x628) = uVar18 << (((byte)uVar5 ^ 0x2c) & 0x3f) ^ uVar31;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(lVar1 - (uVar16 ^ 0xb6e624fe)) =
       (CONCAT44(uVar6,uVar27) ^ 0xcedf2f1357fece2d) + (CONCAT44(uVar4,uVar24) ^ 0x55b50e9856ccaa07)
  ;
  uVar7 = DAT_182671f50;
  uVar18 = ((ulonglong)(uVar9 >> 0x18) | uVar36 << 8) ^ *puVar17 >> 0x18;
  *(ulonglong *)(lVar2 + -0x888) = uVar18 ^ CONCAT44(DAT_182671d18,DAT_182671d18);
  uVar16 = CONCAT44(uVar7,uVar7);
  uVar18 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x628) | uVar18) ^ uVar16;
  *(ulonglong *)(lVar2 + -0x380) = uVar18;
  uVar27 = DAT_182671c60;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x725b2751)) =
       uVar22 ^ uVar16 ^ uVar19 ^ uVar18 ^ *(ulonglong *)(lVar2 + -0x2b0);
  uVar7 = DAT_182671f80;
  *(ulonglong *)(lVar2 + -0xf0) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0xa50)) << (((byte)uVar27 ^ 0xca) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x760) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x110)) + (uVar22 ^ *(ulonglong *)(lVar2 + -0xa50)) ^
       uVar26;
  uVar18 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xb5d303f3)) =
       (*(ulonglong *)(lVar2 + -0xa50) >> 0x20 ^ (ulonglong)DAT_182671fb0) >> 0x1b ^ uVar18;
  uVar16 = CONCAT44(DAT_182671dd4,DAT_182671dd4);
  uVar18 = (*(ulonglong *)(lVar2 + -0xf0) ^ uVar30 | uVar18 ^ *(ulonglong *)(lVar2 + -0xb18)) ^
           uVar16;
  *(ulonglong *)(lVar2 + -0xb08) = uVar18;
  uVar7 = DAT_182671ee0;
  *(ulonglong *)(lVar2 + -0xc18) =
       CONCAT44(uVar15,uVar3) ^ 0xfbd57a6382e0164f | uVar26 ^ *(ulonglong *)(lVar2 + -0x760);
  uVar8 = DAT_182671d78;
  *puVar37 = CONCAT44(uVar7,uVar7) ^ uVar26 ^ uVar18 ^ uVar16 ^ *(ulonglong *)(lVar2 + -0x760);
  uVar7 = DAT_182671cdc;
  *(ulonglong *)(lVar2 + -0xa70) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_182671c94 ^ 0xb6e62b3e)) ^ uVar25) +
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x2b0)) ^ CONCAT44(uVar8,uVar8);
  uVar28 = CONCAT44(uVar7,uVar7);
  *puVar35 = (*(ulonglong *)(lVar2 + -0x828) ^ uVar25) << (((byte)uVar27 ^ 0xea) & 0x3f) ^ uVar28;
  uVar7 = DAT_182671d6c;
  uVar16 = (*(ulonglong *)(lVar2 + -0x828) ^ uVar25) >> (local_b8 & 0x3f);
  uVar18 = *(ulonglong *)(lVar2 + -0x4b8);
  *(ulonglong *)(lVar2 + -0xb20) = uVar16 ^ CONCAT44(DAT_182671f54,DAT_182671f54);
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar11 * 4) = uVar14;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xa3981178)) = (uVar16 | uVar18 ^ uVar28) ^ CONCAT44(uVar7,uVar7)
  ;
  return;
}



############ FUN_ 180f82ef0 size=5275 ############

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

void FUN_180f82ef0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  byte local_res20;
  byte local_f0;
  
  uVar5 = DAT_182671e74;
  uVar14 = DAT_182671d98;
  uVar12 = DAT_182671c8c;
  uVar11 = DAT_182671c88;
  uVar8 = DAT_182671c60;
  uVar7 = DAT_182671c58;
  uVar6 = DAT_182671c4c;
  lVar2 = DAT_182671c40;
  uVar48 = (ulonglong)DAT_182671c88;
  uVar25 = (ulonglong)DAT_182671c58;
  uVar37 = (ulonglong)DAT_182671c4c;
  uVar20 = (ulonglong)DAT_182671c60;
  uVar26 = (ulonglong)DAT_182671c8c;
  uVar50 = DAT_182671c58 - DAT_182671c8c;
  uVar34 = DAT_182671c78 ^ DAT_182671c80;
  uVar39 = DAT_182671c60 ^ DAT_182671c68;
  uVar29 = DAT_182671c4c << 0x10 | DAT_182671c4c >> 0x10;
  uVar45 = (DAT_182671c88 << 0x10 | DAT_182671c88 & 0xff00) << 8 | DAT_182671c88 >> 8 & 0xff00 |
           DAT_182671c88 >> 0x18;
  uVar46 = *(uint *)(&DAT_182613218 + DAT_18267221c) ^ DAT_182671c80;
  uVar1 = *(uint *)(&DAT_182613220 + DAT_18267221c);
  uVar19 = (ulonglong)DAT_182671e74;
  DAT_182671c50 = uVar39;
  DAT_182671c54 = uVar34;
  DAT_182671c64 = uVar50;
  DAT_182671c7c = uVar45;
  DAT_182671c90 = uVar29;
  *(uint *)(DAT_182671c40 + -0x670) = DAT_182671c78 ^ 0xcc36d995 | DAT_182671c68 ^ 0xf540f079;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xefc3f334)) =
       (*(ulonglong *)(lVar2 + -0xc90) >> 0x20 ^ uVar19) >> 0x19 ^ uVar23;
  uVar19 = (ulonglong)uVar39;
  uVar41 = (ulonglong)uVar34;
  uVar38 = (ulonglong)uVar29;
  uVar35 = CONCAT44(DAT_182671ea8,DAT_182671ea8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xefea5e0c)) =
       (CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar2 + -0xc90)) << (((byte)uVar12 ^ 0xdc) & 0x3f) ^
       uVar35;
  uVar16 = DAT_182671ec8;
  *(ulonglong *)(lVar2 + -0xd88) =
       CONCAT44(DAT_182671de0,DAT_182671de0) ^ *(ulonglong *)(lVar2 + -0x960) | 0x4b00a755f184a120;
  uVar15 = DAT_182671df4;
  uVar14 = _DAT_182671cf0;
  uVar30 = CONCAT44(uVar16,uVar16);
  uVar23 = *(ulonglong *)(lVar2 + -0x510) ^ uVar23 | *(ulonglong *)(lVar2 + -0x680) ^ uVar35;
  *(ulonglong *)(lVar2 + -0xa08) = uVar23 ^ uVar30;
  uVar5 = DAT_182671c48;
  uVar22 = (ulonglong)DAT_182671c48;
  uVar47 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xefc3feac)) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar2 + -0x5e8)) - uVar23 ^ uVar47;
  uVar9 = DAT_182671ef8;
  uVar14 = DAT_182671d54;
  *(ulonglong *)(lVar2 + -0xda8) =
       (CONCAT44(DAT_182671cd4,DAT_182671cd4) ^ *(ulonglong *)(lVar2 + -0xc38)) -
       (CONCAT44(uVar45,uVar50) ^ 0xcf2f53f76b1c2d89);
  uVar24 = CONCAT44(uVar14,uVar14);
  uVar35 = CONCAT44(DAT_182671d74,DAT_182671d74);
  uVar23 = *(ulonglong *)(lVar2 + -0xa78) ^ uVar24 ^ CONCAT44(uVar9,uVar9) ^ uVar30 ^
           *(ulonglong *)(lVar2 + -0xa08);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar23;
  uVar14 = DAT_182671e80;
  *(ulonglong *)(lVar2 + -0x228) =
       ((ulonglong)uVar9 << 0x12 | (ulonglong)(uVar9 >> 0xe)) ^ uVar23 >> 0xe ^ uVar35;
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar17 = uVar5 << 0x10 | uVar5 >> 0x10;
  DAT_182671c84 = uVar17;
  *(ulonglong *)(lVar2 + -0xc90) = (uVar23 ^ CONCAT44(uVar9,uVar9)) << 0x32 ^ uVar42;
  *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0xb000167a)) = 0xfe1cd8b - (uVar5 ^ 0xe6c8b6c3);
  uVar15 = DAT_182671f10;
  uVar49 = CONCAT44(DAT_182671f10,DAT_182671f10);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x34cac354)) =
       (*(ulonglong *)(lVar2 + -0xc90) ^ uVar42 | *(ulonglong *)(lVar2 + -0x228) ^ uVar35) ^ uVar49;
  uVar14 = DAT_182671ce0;
  uVar13 = DAT_182671c94;
  uVar9 = DAT_182671c70;
  lVar2 = DAT_182671c40;
  uVar33 = (ulonglong)DAT_182671c70;
  uVar23 = (ulonglong)DAT_182671c94;
  uVar18 = DAT_182671c70 & DAT_182671c94;
  uVar35 = (ulonglong)uVar18;
  uVar27 = CONCAT44(DAT_182671c94,DAT_182671c70);
  uVar31 = CONCAT44(DAT_182671e60,DAT_182671e60);
  puVar21 = (ulonglong *)(DAT_182671c40 - ((ulonglong)uVar17 ^ 0xb0001782));
  DAT_182671c74 = uVar18;
  *puVar21 = (*(ulonglong *)(DAT_182671c40 - (uVar35 ^ 0x31f94e2a)) ^ uVar24) -
             (uVar27 ^ 0x4a6a9fdb8cad5d29) ^ uVar31;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x7df95acf)) =
       (*(ulonglong *)(lVar2 + -0xd88) ^ uVar31) - (uVar49 ^ *(ulonglong *)(lVar2 + -0x960)) ^
       uVar28;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x1a0ab680)) =
       (*(ulonglong *)(lVar2 + -0xc90) ^ uVar42) + (uVar30 ^ *(ulonglong *)(lVar2 + -0xa08));
  uVar10 = DAT_182671f70;
  uVar42 = (ulonglong)DAT_182671f70;
  uVar40 = CONCAT44(DAT_182671f70,DAT_182671f70);
  uVar31 = CONCAT44(DAT_182671ea0,DAT_182671ea0);
  uVar30 = (uVar49 ^ *(ulonglong *)(lVar2 + -0x960)) -
           (CONCAT44(uVar18,uVar13) ^ 0xd5ed652d79e9f8f0);
  uVar49 = CONCAT44(DAT_182671edc,DAT_182671edc);
  *(ulonglong *)(lVar2 + -0x5e8) = uVar30 ^ uVar31;
  uVar49 = uVar49 ^ *(ulonglong *)(lVar2 + -0x110) ^ *(ulonglong *)(lVar2 + -0x888) ^ uVar40 ^
           uVar47;
  *(ulonglong *)(lVar2 + -0xc38) = uVar49;
  uVar14 = DAT_182671d6c;
  *(ulonglong *)(lVar2 + -0xda8) = uVar30 << (((byte)(uVar11 >> 0x18) ^ 0xf4) & 0x3f);
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xbd8) =
       ((ulonglong)(uVar10 >> 0x10) | uVar42 << 0x10) ^ uVar49 >> 0x10 ^ uVar30;
  uVar40 = (uVar49 ^ uVar40) << (((byte)uVar13 ^ 0x62) & 0x3f);
  uVar49 = CONCAT44(DAT_182671eec,DAT_182671eec);
  *(ulonglong *)(lVar2 + -0x228) = uVar40 ^ CONCAT44(DAT_182671e34,DAT_182671e34);
  uVar14 = DAT_182671ccc;
  uVar40 = *(ulonglong *)(lVar2 - (uVar41 ^ 0x40673a83)) ^ uVar30 | uVar40;
  *(ulonglong *)(lVar2 + -0xa78) = uVar40 ^ uVar49;
  uVar16 = DAT_182671f4c;
  uVar10 = DAT_182671c80;
  lVar3 = DAT_182671c40;
  uVar30 = (*(ulonglong *)(lVar2 + -0x888) ^ uVar47) -
           (CONCAT44(uVar50,uVar29) ^ 0x12bf8d8fa917379d);
  *(ulonglong *)(lVar2 + -0xd88) = uVar30 ^ CONCAT44(uVar14,uVar14);
  uVar42 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0x8c58ec6f)) = uVar30 - uVar40 ^ uVar42;
  uVar30 = CONCAT44(DAT_182671cc8,DAT_182671cc8);
  *(ulonglong *)(lVar3 + -0xa08) =
       (*(ulonglong *)(lVar3 + -0xa78) ^ uVar49) - (CONCAT44(uVar17,uVar11) ^ 0xd76635801b3b1575) ^
       uVar30;
  uVar43 = CONCAT44(DAT_182671f24,DAT_182671f24);
  puVar36 = (ulonglong *)(lVar3 - ((ulonglong)DAT_182671c78 ^ 0x7dff6470));
  uVar49 = CONCAT44(DAT_182671d80,DAT_182671d80);
  *(ulonglong *)(*puVar36 ^ uVar49) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x3d98504b)) ^ uVar43 ^ uVar28;
  uVar40 = CONCAT44(DAT_182671f88,DAT_182671f88);
  *(ulonglong *)(lVar3 + -0x9b8) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x103c09ab)) ^ uVar49) +
       (CONCAT44(uVar9,uVar7) ^ 0x7df95fdf71785b0f) * 8 ^ uVar40;
  uVar9 = DAT_182671c68;
  uVar28 = (ulonglong)DAT_182671c68;
  *(ulonglong *)(lVar3 + -0xc90) =
       (*(ulonglong *)(lVar3 + -0x5e8) ^ uVar31) <<
       (((byte)uVar15 ^ *(byte *)(lVar3 + -0x960)) & 0x3f);
  uVar47 = CONCAT44(DAT_182671f94,DAT_182671f94);
  *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xb00013b2)) ^ uVar40) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0xdb0939f8)) ^ uVar43 ^ uVar31;
  *(ulonglong *)(lVar3 + -0x7a0) = (*puVar36 ^ uVar49) + 0x10 ^ uVar47;
  uVar32 = CONCAT44(DAT_182671cd8,DAT_182671cd8);
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0x33f943f2)) ^ uVar47) =
       *(ulonglong *)(lVar3 - (uVar41 ^ 0x406737db)) ^ uVar43 ^ uVar42;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x3d985d7b)) =
       (*(ulonglong *)(lVar3 + -0x70) ^ uVar49) + (CONCAT44(uVar39,uVar6) ^ 0x34caca34fdfd5ffc) * 8
       ^ uVar32;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x820) ^ uVar32) =
       uVar43 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0xa08);
  *(ulonglong *)(lVar3 + -0x110) =
       (CONCAT44(uVar10,uVar50) ^ 0xb92abe997cedcf52) << (((byte)uVar50 ^ 0x3d) & 0x3f);
  uVar14 = DAT_182671e04;
  lVar4 = DAT_182671c40;
  *(ulonglong *)(lVar3 + -0x2e8) =
       *(longlong *)(lVar3 + -0xbd0) +
       ((CONCAT44(uVar7,uVar5) ^ 0x71785b0e1a0ab008) +
       (CONCAT44(uVar45,uVar6) ^ 0x8c58eaeffdfd5fff) * 0xc) * 8;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0xefc3fd14)) =
       *(longlong *)(lVar4 + -0x310) +
       ((CONCAT44(uVar45,uVar29) ^ 0x8c58eaef5ffffdf5) +
       (CONCAT44(uVar12,uVar7) ^ 0x103c09db71785b0e) * 0xc) * 8 ^ CONCAT44(uVar14,uVar14);
  uVar28 = CONCAT44(DAT_182671f9c,DAT_182671f9c);
  uVar30 = CONCAT44(DAT_182671e48,DAT_182671e48);
  *(ulonglong *)(lVar4 + -0xda8) = **(ulonglong **)(lVar4 + -0x2e8) ^ uVar30 ^ uVar28;
  *(ulonglong **)(lVar4 - (uVar35 ^ 0x31f94242)) =
       *(ulonglong **)(lVar4 + -0x2e8) + (CONCAT44(uVar11,uVar9) ^ 0xefea588cdb093c11);
  uVar14 = DAT_182671ca0;
  lVar2 = *(longlong *)(lVar4 + -0x2e8);
  uVar31 = CONCAT44(DAT_182671eb4,DAT_182671eb4);
  *(ulonglong *)(lVar4 + -0xc38) = **(ulonglong **)(lVar4 + -0x610) ^ uVar31 ^ uVar30;
  puVar36 = (ulonglong *)(lVar2 + 0x10);
  *(ulonglong **)(lVar4 + -0x610) = puVar36;
  lVar3 = DAT_182671c40;
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar43 ^ uVar30 ^ *puVar36;
  uVar9 = DAT_182671c78;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x31f94e12)) =
       lVar2 + (CONCAT44(uVar39,uVar17) ^ 0x34caca34b0001a09) * 8;
  *(ulonglong *)(lVar3 + -0x228) =
       **(ulonglong **)(lVar3 - ((ulonglong)uVar10 ^ 0x3d98534b)) ^ uVar30;
  *(ulonglong *)(lVar3 + -0x888) = **(ulonglong **)(lVar3 + -0xa40) ^ uVar30;
  uVar14 = DAT_182671e14;
  uVar30 = **(ulonglong **)(lVar3 + -0xa40) ^ uVar30;
  *(ulonglong *)(lVar3 + -0xd88) = uVar30;
  uVar40 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0xa78) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0xda8)) - (CONCAT44(uVar6,uVar45) ^ 0x9a9b70757889a716) ^
       uVar40;
  uVar14 = DAT_182671db8;
  *(ulonglong *)(lVar3 + -0xc90) =
       CONCAT44(uVar8,uVar34) ^ CONCAT44(uVar12,uVar9) ^ 0x24f9418adca927c0;
  uVar49 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x960) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x33f9486a)) ^ uVar31) -
       (CONCAT44(uVar11,uVar13) ^ 0xf2ea044b5bb4b34f) ^ uVar49;
  *(int *)(lVar3 + -0x27c) = 0x315d31ce - *(int *)(lVar3 - (uVar33 ^ 0x7df959af));
  uVar42 = CONCAT44(DAT_182671e54,DAT_182671e54);
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 + -0xbd8) ^ uVar43) - (CONCAT44(uVar34,uVar18) ^ 0x30a022ee69787efc) ^
       uVar42;
  lVar2 = DAT_182671c40;
  *(ulonglong *)(DAT_182671c40 + -0x228) = (CONCAT44(uVar5,uVar34) ^ 0xfe7a7d5221b99e2e) - uVar30;
  uVar31 = CONCAT44(DAT_182671e38,DAT_182671e38);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xfdfd5257)) =
       *(longlong *)(lVar2 - (uVar38 ^ 0x5ffff575)) - 0x12U ^ uVar31;
  uVar14 = DAT_182671e44;
  uVar30 = CONCAT44(DAT_182671ddc,DAT_182671ddc);
  uVar23 = (ulonglong)DAT_182671c80;
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar2 + -0xda8)) -
           (CONCAT44(uVar45,uVar50) ^ 0xac96d26a7be6af8e);
  uVar28 = uVar31 ^ uVar30;
  *(ulonglong *)(lVar2 + -0xc90) = uVar28;
  uVar43 = CONCAT44(uVar14,uVar14);
  uVar44 = CONCAT44(DAT_182671d60,DAT_182671d60);
  uVar37 = *(ulonglong *)(lVar2 - (uVar23 ^ 0x3d985f23)) ^ uVar43 ^ uVar28 ^ uVar30 ^ uVar40;
  *(ulonglong *)(lVar2 + -0xc38) = uVar37;
  lVar3 = DAT_182671c40;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0x34cac60c)) ^ uVar43) >> (((byte)uVar9 ^ 0x20) & 0x3f)
  ;
  *(ulonglong *)(DAT_182671c40 + -0xbd8) = uVar28 ^ uVar44;
  uVar14 = DAT_182671e2c;
  *(ulonglong *)(lVar3 + -0xd88) = uVar31 ^ 0x875662bdc68dd3bf;
  uVar9 = DAT_182671d1c;
  lVar2 = DAT_182671c40;
  uVar30 = (ulonglong)DAT_182671d1c;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x228) = (uVar37 ^ uVar43) << 0x20 ^ uVar23;
  lVar3 = DAT_182671c40;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_182671c40 - (uVar33 ^ 0x7df95757)) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0x31f9467a)) ^ uVar23 | uVar28) ^ uVar37;
  uVar28 = CONCAT44(DAT_182671de8,DAT_182671de8);
  uVar23 = CONCAT44(DAT_182671f30,DAT_182671f30);
  *(ulonglong *)(lVar3 + -0xda8) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x1a0aba78)) ^ uVar40) -
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0x71785386)) ^ uVar37) ^ uVar28;
  *(ulonglong *)(lVar3 + -0xc90) =
       *(ulonglong *)(lVar3 + -0x110) ^ uVar23 ^ uVar42 ^ uVar49 ^ *(ulonglong *)(lVar3 + -0x960);
  local_f0 = (byte)uVar39;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x103c0453)) =
       (*(ulonglong *)(lVar3 + -0x888) ^ uVar37) - (CONCAT44(uVar8,uVar11) ^ 0xe19037183447777c);
  uVar10 = DAT_182671c80;
  uVar9 = DAT_182671c78;
  lVar2 = DAT_182671c40;
  uVar33 = CONCAT44(DAT_182671e50,DAT_182671e50);
  *(ulonglong *)(DAT_182671c40 - (uVar22 ^ 0x1a0abc38)) =
       (*(ulonglong *)(DAT_182671c40 + -0xc90) ^ uVar23) >> ((local_f0 ^ 0x14) & 0x3f) ^ uVar33;
  uVar14 = DAT_182671d0c;
  uVar23 = (*(ulonglong *)(lVar2 + -0xc90) ^ uVar23) << 0x20;
  *(ulonglong *)(lVar2 + -0x228) = uVar23 ^ uVar37;
  uVar31 = CONCAT44(uVar14,uVar14);
  puVar36 = (ulonglong *)(lVar2 - (uVar26 ^ 0x103c0203));
  *puVar36 = (uVar23 | uVar33 ^ *(ulonglong *)(lVar2 + -0xc38)) ^ uVar31;
  *(ulonglong *)(lVar2 + -0xa78) =
       (CONCAT44(uVar17,uVar10) ^ 0xb9dcae0af405d167) - (*(ulonglong *)(lVar2 + -0x888) ^ uVar37);
  local_res20 = (byte)uVar34;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x7178526e)) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar42) - (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar31) ^
       uVar24;
  uVar33 = CONCAT44(DAT_182671ee4,DAT_182671ee4);
  uVar23 = *(ulonglong *)(lVar2 + -0xbd8) ^ uVar33 ^ uVar31 ^ uVar28 ^
           *(ulonglong *)(lVar2 + -0xda8);
  uVar31 = CONCAT44(DAT_182671f48,DAT_182671f48);
  *(ulonglong *)(lVar2 + -0xd88) = uVar23;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x5ffff16d)) =
       (uVar23 ^ uVar33) >> ((local_res20 ^ 0x61) & 0x3f) ^ uVar31;
  uVar23 = CONCAT44(DAT_182671dac,DAT_182671dac);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xefc3fa1c)) = (uVar33 ^ *puVar21) << 6 ^ uVar23;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar2 + -0x228) = CONCAT44(uVar6,uVar45) ^ uVar27 ^ 0x9c0530a3a063b70c;
  uVar11 = DAT_182671de4;
  uVar42 = (ulonglong)DAT_182671c68;
  uVar25 = CONCAT44(DAT_182671fb0,DAT_182671fb0);
  uVar33 = (ulonglong)DAT_182671de4;
  uVar23 = *(ulonglong *)(lVar3 - (uVar42 ^ 0xdb093080)) ^ uVar31 |
           *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x3d985963)) ^ uVar23;
  uVar31 = CONCAT44(DAT_182671d68,DAT_182671d68);
  *(ulonglong *)(lVar3 + -0xa78) = uVar23 ^ uVar25;
  uVar14 = DAT_182671cec;
  *(ulonglong *)(lVar3 + -0x110) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0x34cac79c)) ^ uVar28) - uVar23 ^ uVar31;
  uVar19 = *(ulonglong *)(lVar3 + -0x888) ^ CONCAT44(uVar11,uVar11) ^ uVar37 ^ uVar24 ^
           *(ulonglong *)(lVar3 + -0x960);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar19;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar50 ^ 0x613c5cbb)) =
       ((ulonglong)(uVar11 >> 0x16) | uVar33 << 10) ^ uVar19 >> 0x16 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x228) = (*(ulonglong *)(lVar3 + -0x888) >> 0x20 ^ uVar30) >> 0xb;
  uVar30 = CONCAT44(DAT_182671d30,DAT_182671d30);
  uVar23 = (*(ulonglong *)(lVar3 + -0xbd8) ^ CONCAT44(uVar11,uVar11)) <<
           (((byte)uVar13 ^ 0x78) & 0x3f);
  uVar33 = uVar23 ^ uVar30;
  uVar19 = CONCAT44(uVar39,DAT_182671c80);
  *(ulonglong *)(lVar3 + -0xc90) = uVar33;
  *(ulonglong *)(lVar3 + -0xc38) = uVar19 ^ uVar33 ^ uVar30 ^ 0x32980bd797a1a027;
  uVar10 = DAT_182671e68;
  uVar14 = DAT_182671e18;
  lVar2 = DAT_182671c40;
  puVar21 = (ulonglong *)(lVar3 - (uVar42 ^ 0xdb093198));
  uVar30 = CONCAT44(DAT_182671f7c,DAT_182671f7c);
  uVar23 = uVar28 ^ *puVar21 | uVar23;
  uVar19 = (ulonglong)DAT_182671e68;
  uVar28 = uVar23 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xda8) = uVar28;
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x888) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x5ffff49d)) ^ uVar24) - uVar23 ^ uVar42;
  *(ulonglong *)(lVar2 + -0x228) = 0x513633a64be79e5 - (CONCAT44(uVar5,uVar6) ^ 0xa43851bd3ef586eb);
  *puVar36 = *(ulonglong *)(lVar2 + -0x110) ^ uVar33 ^ uVar30 ^ uVar31 ^ uVar28;
  uVar14 = DAT_182671ebc;
  *(undefined1 *)(lVar2 + -0x2e9) = **(undefined1 **)(lVar2 + -0x758);
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xc38) = (*puVar36 >> 0x20 ^ uVar19) >> 0xe ^ uVar38;
  *(undefined1 *)(lVar2 + -0x6b9) = **(undefined1 **)(lVar2 - (uVar48 ^ 0xefea531c));
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x40673cd3)) =
       (*(ulonglong *)(lVar2 + -0xbd8) ^ uVar33) << (((byte)DAT_182671c78 ^ 0x12) & 0x3f) ^ uVar47;
  uVar14 = DAT_182671d00;
  lVar2 = DAT_182671c40;
  puVar36 = (ulonglong *)(DAT_182671c40 + -0xc38);
  *(ulonglong *)(DAT_182671c40 + -0xc90) =
       (CONCAT44(uVar9,uVar7) ^ 0x66914ad67fff5f33) >> (((byte)uVar12 ^ 0xfa) & 0x3f);
  uVar19 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x31f94d32)) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0x31f949da)) ^ uVar47 | uVar38 ^ *puVar36) ^ uVar19;
  *(ulonglong *)(lVar2 + -0x228) =
       (*(ulonglong *)(lVar2 + -0x110) ^ uVar31) - (uVar19 ^ *(ulonglong *)(lVar2 + -0x960)) ^
       CONCAT44(DAT_182671f44,DAT_182671f44);
  uVar14 = DAT_182671d58;
  uVar25 = *(ulonglong *)(lVar2 - (uVar48 ^ 0xefea52f4)) ^ *(ulonglong *)(lVar2 + -0x888) ^ uVar42 ^
           uVar25;
  *(ulonglong *)(lVar2 + -0xda8) = uVar25 ^ uVar32;
  uVar15 = DAT_182671d70;
  uVar41 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xbd8) = uVar25 >> (((byte)uVar7 ^ 2) & 0x3f) ^ uVar41;
  uVar19 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar50 ^ 0x613c5da3)) =
       uVar25 << (((byte)uVar8 ^ 0x10) & 0x3f) ^ uVar19;
  *puVar21 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0xefc3fab4)) ^ uVar19 |
             *(ulonglong *)(lVar2 - (uVar22 ^ 0x1a0abbd8)) ^ uVar41) ^ uVar37;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)(uVar1 ^ uVar34) * 4) = uVar46;
  return;
}



############ FUN_ 180f9a4e0 size=5266 ############

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

void FUN_180f9a4e0(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  byte *pbVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte bVar41;
  byte bVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  byte local_res20;
  byte local_e8;
  byte local_d0;
  ulonglong uVar29;
  
  uVar2 = DAT_182671f24;
  uVar9 = DAT_182671c70;
  iVar8 = DAT_182671c68;
  uVar7 = DAT_182671c60;
  uVar6 = DAT_182671c54;
  uVar5 = DAT_182671c48;
  lVar3 = DAT_182671c40;
  DAT_182671c78 = DAT_182671c94 | DAT_182671c4c;
  uVar36 = (ulonglong)DAT_182671c48;
  uVar27 = DAT_182671c70 | DAT_182671c7c;
  uVar40 = (ulonglong)DAT_182671c60;
  uVar45 = DAT_182671c68 * DAT_182671c60;
  uVar28 = DAT_182671c48 << 0x10 | DAT_182671c48 >> 0x10;
  uVar29 = (ulonglong)uVar28;
  uVar1 = DAT_182671c54;
  if ((DAT_182671c80 & 1) == 0) {
    uVar1 = DAT_182671c80;
  }
  uVar31 = *(uint *)(&DAT_182613218 + DAT_182672264) ^ DAT_182671c84;
  uVar20 = *(uint *)(&DAT_182613220 + DAT_182672264) ^ DAT_182671c80;
  bVar42 = (byte)DAT_182671dbc;
  uVar43 = CONCAT44(DAT_182671dbc,DAT_182671dbc);
  uVar21 = (ulonglong)DAT_182671c54;
  DAT_182671c58 = uVar1;
  DAT_182671c5c = uVar28;
  DAT_182671c64 = uVar45;
  DAT_182671c6c = uVar27;
  *(ulonglong *)(DAT_182671c40 + -0x8f0) =
       ((ulonglong)DAT_182671f24 << 0x18 | (ulonglong)(DAT_182671f24 >> 8)) ^
       *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar1 ^ 0xe7fe79ce)) >> 8 ^ uVar43;
  uVar24 = (ulonglong)DAT_182671df8;
  uVar22 = (ulonglong)uVar27;
  bVar41 = *(byte *)(lVar3 - (uVar21 ^ 0x7b2d73ab)) ^ bVar42 ^ (byte)DAT_182671e48;
  *(byte *)(DAT_182671c40 + -0xc9d) = bVar41;
  uVar16 = DAT_182671f50;
  lVar3 = DAT_182671c40;
  pbVar33 = (byte *)((CONCAT44(uVar5,uVar28) ^ 0xdaebf8bef8bedaea) +
                    *(longlong *)(DAT_182671c40 + -0x1d0));
  *(ulonglong *)(DAT_182671c40 + -0x758) = (ulonglong)pbVar33 ^ uVar24;
  uVar37 = CONCAT44(uVar16,uVar16);
  bVar19 = (byte)DAT_182671d18 ^ (byte)DAT_182671e48;
  *(ulonglong *)(lVar3 + -0xb18) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0x31ef3235)) ^ uVar37 ^ *(ulonglong *)(lVar3 + -0xa50);
  uVar11 = DAT_182671c7c;
  lVar3 = DAT_182671c40;
  uVar26 = (ulonglong)DAT_182671c7c;
  *pbVar33 = bVar19 ^ bVar41;
  uVar16 = DAT_182671f40;
  uVar10 = DAT_182671c78;
  uVar24 = CONCAT44(DAT_182671f38,DAT_182671f38);
  uVar44 = (ulonglong)DAT_182671c78;
  uVar34 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(lVar3 + -0x820) =
       *(longlong *)(lVar3 - (uVar29 ^ 0xf8bed9fb)) +
       (CONCAT44(uVar11,uVar7) ^ 0x31eb3b1cdce240ad) * 0x60 ^ uVar24;
  uVar38 = CONCAT44(uVar16,uVar16);
  uVar23 = (ulonglong)uVar45;
  *(ulonglong *)(lVar3 + -0x628) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x31eb333c)) ^ uVar24) ^ uVar34 ^
       uVar38;
  uVar2 = DAT_182671c4c;
  lVar4 = DAT_182671c40;
  uVar24 = *(ulonglong *)(DAT_182671c40 + -0x628);
  *(ulonglong *)(lVar3 + -0xa08) =
       -0x74ecf7eb41f6a3a0 - (CONCAT44(uVar9,uVar45) ^ 0x502624c09f693ef3);
  bVar19 = (byte)DAT_182671e28 ^ (byte)DAT_182671ce0;
  *(ulonglong *)(lVar4 - (uVar44 ^ 0xf7f9a35d)) =
       (uVar38 ^ uVar24) >> (((byte)uVar2 ^ 0xd5) & 0x3f) ^ CONCAT44(DAT_182671e28,DAT_182671e28);
  bVar19 = bVar19 ^ *(byte *)(lVar4 + -0x4b8);
  *(longlong *)(lVar4 + -0x960) =
       *(longlong *)(lVar4 - (uVar26 ^ 0x31eb3004)) << ((bVar42 ^ *(byte *)(lVar4 + -0x8f0)) & 0x3f)
  ;
  *(byte *)(lVar4 + -0x889) = bVar19;
  uVar38 = (ulonglong)DAT_182671ddc;
  bVar19 = bVar19 ^ (byte)DAT_182671ce0 ^ (byte)DAT_182671d18;
  *(byte *)(lVar4 + -0xc41) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0xf8bed99b)) ^ (ulonglong)DAT_182671d80) ^
       (byte)DAT_182671f14;
  uVar15 = DAT_182671c94;
  uVar24 = CONCAT44(uVar6,DAT_182671c94);
  pbVar33 = (byte *)((CONCAT44(DAT_182671c94,uVar6) ^ 0xf5a927e47b2d7b59) +
                    *(longlong *)(lVar4 + -0x1d0));
  *(ulonglong *)(lVar4 + -0x708) = (ulonglong)pbVar33 ^ uVar38;
  uVar12 = DAT_182671c84;
  *(ulonglong *)(lVar4 + -0xb08) =
       (uVar34 ^ *(ulonglong *)(lVar4 + -0x888)) - (uVar24 ^ 0x4e6250840921d1d2);
  uVar16 = DAT_182671ef0;
  uVar2 = DAT_182671c80;
  *pbVar33 = bVar19;
  uVar17 = DAT_182671fa8;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar4 - ((ulonglong)uVar10 ^ 0xf7f9a4f5)) +
            ((CONCAT44(iVar8,uVar12) ^ 0x7146e7fe9b3981ec) +
            (CONCAT44(uVar1,uVar2) ^ 0xe7fe7146e7fe7146) * 0xc) * 8);
  uVar24 = (ulonglong)DAT_182671e40;
  uVar38 = CONCAT44(DAT_182671e40,DAT_182671e40);
  uVar2 = DAT_182671e40 >> 0x18;
  *(ulonglong *)(lVar4 + -0x40) = (ulonglong)puVar25 ^ CONCAT44(uVar16,uVar16);
  uVar38 = uVar38 ^ *puVar25 ^ uVar34;
  *(ulonglong *)(lVar4 + -0xc38) = uVar38;
  uVar13 = DAT_182671c88;
  uVar46 = (ulonglong)DAT_182671c88;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xdce2462d)) =
       ((ulonglong)uVar2 | uVar24 << 8) ^ uVar38 >> 0x18 ^ CONCAT44(uVar17,uVar17);
  bVar42 = (byte)uVar17 ^ (byte)DAT_182671d44 ^ *(byte *)(lVar4 + -0x680);
  uVar38 = (ulonglong)DAT_182671ecc;
  bVar19 = (byte)DAT_182671d44 ^ bVar42 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar4 + -0x760) =
       CONCAT44(uVar5,iVar8) ^ 0x539486813fb46874 | *(ulonglong *)(lVar4 + -0xa70);
  uVar14 = DAT_182671c90;
  uVar24 = (ulonglong)DAT_182671c90;
  *(byte *)(lVar4 + -0x27e) = bVar42;
  uVar32 = uVar14 | uVar13;
  pbVar33 = (byte *)((CONCAT44(uVar13,uVar14) ^ 0x3bff3bffefbf9fcc) + *(longlong *)(lVar4 + -0x1d0))
  ;
  DAT_182671c8c = uVar32;
  *(ulonglong *)(lVar4 + -0x50) = (ulonglong)pbVar33 ^ uVar38;
  *pbVar33 = bVar19;
  uVar16 = DAT_182671cfc;
  uVar30 = CONCAT44(uVar13,uVar14) ^ 0x3bff3bffefbf9fcf;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x310) +
            (uVar30 + (CONCAT44(uVar32,uVar32) ^ 0xffffbfffffffbfff) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0x668) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671e9c,DAT_182671e9c);
  uVar17 = DAT_182671e60;
  uVar39 = CONCAT44(uVar16,uVar16);
  local_res20 = (byte)uVar45;
  uVar38 = *puVar25 ^ uVar39 ^ uVar34;
  *(ulonglong *)(lVar4 + -0xa78) = uVar38;
  uVar35 = (ulonglong)DAT_182671c94;
  uVar39 = (uVar39 ^ uVar38) >> ((local_res20 ^ 0x86) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  bVar19 = (byte)uVar17 ^ (byte)DAT_182671e08;
  *(ulonglong *)(lVar4 + -0x510) = uVar39;
  uVar38 = (ulonglong)DAT_182671eb0;
  *(byte *)(lVar4 - (uVar35 ^ 0xf5a9210d)) = bVar19 ^ (byte)uVar39;
  bVar19 = *(byte *)(lVar4 + -0x6e9) ^ (byte)DAT_182671e08 ^ (byte)DAT_182671d18;
  *(uint *)(lVar4 + -0x61c) = (uVar10 ^ 0x791d8edb) - *(int *)(lVar4 + -0x684);
  pbVar33 = (byte *)(*(longlong *)(lVar4 + -0x1d0) + 4);
  *(ulonglong *)(lVar4 + -0x8b8) = (ulonglong)pbVar33 ^ uVar38;
  *pbVar33 = bVar19;
  *(ulonglong *)(lVar4 + -0x7e8) =
       (CONCAT44(uVar32,uVar9) ^ 0x69cbcaa81a3ed36b) + 0xdc217ca33b72854b;
  uVar35 = CONCAT44(DAT_182671ccc,DAT_182671ccc);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_182671c80 ^ 0xe7fe71e6)) =
       (CONCAT44(uVar27,iVar8) ^ 0x31ef3f9d7146e7fe) * 0x60 + *(longlong *)(lVar4 + -0x310) ^ uVar35
  ;
  uVar16 = DAT_182671dd0;
  uVar39 = CONCAT44(DAT_182671edc,DAT_182671edc);
  uVar38 = CONCAT44(DAT_182671dd0,DAT_182671dd0);
  uVar35 = *(ulonglong *)(*(ulonglong *)(lVar4 + -0xa0) ^ uVar35) ^ uVar39 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x5e8) = uVar35;
  *(ulonglong *)(lVar4 + -0xc90) = (uVar35 ^ uVar39) >> (((byte)uVar32 ^ 0xd7) & 0x3f) ^ uVar38;
  uVar17 = DAT_182671fa0;
  uVar35 = (ulonglong)DAT_182671e30;
  uVar38 = (ulonglong)DAT_182671c84;
  *(byte *)(lVar4 + -0x183) = (byte)uVar16 ^ (byte)DAT_182671f88 ^ *(byte *)(lVar4 + -0xc90);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x9b39852c)) =
       (CONCAT44(uVar7,uVar6) ^ 0xdce240ad7b2d7b5e) + *(longlong *)(lVar4 + -0x1d0) ^ uVar35;
  *(uint *)(lVar4 + -0x9dc) =
       (uVar11 ^ 0xdfad0491) << ((byte)*(undefined4 *)(lVar4 + -0x784) & 0x1f);
  uVar2 = DAT_182671c4c;
  *(byte *)(*(ulonglong *)(lVar4 + -0x4c0) ^ uVar35) =
       *(byte *)(lVar4 - (uVar36 ^ 0xdaebf93d)) ^ (byte)DAT_182671f88 ^ (byte)DAT_182671d18;
  uVar16 = DAT_182671cd4;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x310) +
            ((CONCAT44(uVar2,uVar6) ^ 0x25080c57b2d7b5b) +
            (CONCAT44(uVar13,DAT_182671c94) ^ 0x3bff3bfff5a927e4) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xb98) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671fa4,DAT_182671fa4);
  uVar38 = CONCAT44(uVar16,uVar16);
  uVar35 = *puVar25 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x110) = uVar35 ^ uVar38;
  uVar38 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0x5d2647b6)) ^ uVar38) >>
           (((byte)uVar14 ^ 0xff) & 0x3f);
  bVar19 = (byte)uVar17 ^ (byte)DAT_182671f14;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar35 << 0x2f;
  *(ulonglong *)(lVar4 + -0x3d8) = uVar38 ^ CONCAT44(uVar17,uVar17);
  bVar19 = bVar19 ^ *(byte *)(lVar4 + -0x3d8);
  *(ulonglong *)(lVar4 + -0x380) = uVar38 << 0x2d;
  uVar38 = (ulonglong)_DAT_182671cf0;
  *(byte *)(lVar4 + -0x261) = bVar19;
  pbVar33 = (byte *)(*(longlong *)(lVar4 - (uVar22 ^ 0x31ef3e4d)) + 6);
  bVar19 = bVar19 ^ (byte)DAT_182671f14 ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar4 + -1000) = (ulonglong)pbVar33 ^ uVar38;
  *pbVar33 = bVar19;
  lVar3 = DAT_182671c40;
  *(ulonglong *)(lVar4 + -0xa50) =
       (CONCAT44(uVar14,DAT_182671c80) ^ 0x60210111f2903b0d) - *(longlong *)(lVar4 + -0x2b0);
  uVar16 = DAT_182671d2c;
  puVar25 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x310) +
            ((CONCAT44(uVar9,uVar9) ^ 0x200c0691200c0691) +
            (CONCAT44(uVar10,DAT_182671c84) ^ 0xf7f9a7e59b3981ec) * 0xc) * 8);
  uVar38 = CONCAT44(DAT_182671d20,DAT_182671d20);
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)puVar25 ^ CONCAT44(DAT_182671ed8,DAT_182671ed8);
  *(ulonglong *)(lVar3 + -0xda8) = *puVar25 ^ uVar34 ^ uVar38;
  uVar17 = DAT_182671dcc;
  *(ulonglong *)(CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar3 + -0xd50)) =
       CONCAT44(uVar10,uVar28) ^ 0xfb1e9b04994d41ad;
  uVar16 = DAT_182671d50;
  uVar12 = DAT_182671c84;
  uVar2 = DAT_182671c4c;
  lVar3 = DAT_182671c40;
  local_e8 = (byte)uVar6;
  *(ulonglong *)(DAT_182671c40 - (uVar23 ^ 0x5d264cae)) =
       (*(ulonglong *)(DAT_182671c40 - (uVar36 ^ 0xdaebf516)) ^ uVar38) >> ((local_e8 ^ 99) & 0x3f)
       ^ CONCAT44(uVar17,uVar17);
  uVar36 = (ulonglong)DAT_182671de4;
  *(byte *)(lVar3 - ((ulonglong)uVar32 ^ 0xffffbf3e)) =
       (byte)uVar17 ^ *(byte *)(lVar3 + -0xa08) ^ (byte)DAT_182671ca4;
  lVar3 = DAT_182671c40;
  bVar19 = *(byte *)(DAT_182671c40 + -0xc1) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671ca4;
  *(ulonglong *)(DAT_182671c40 + -0x980) =
       (CONCAT44(uVar12,uVar2) ^ 0x9b3981ec025080c2) + *(longlong *)(DAT_182671c40 + -0x1d0) ^
       uVar36;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar26 ^ 0x31eb329c)) ^ uVar36) = bVar19;
  puVar25 = (ulonglong *)(*(longlong *)(lVar3 + -0x310) + 8 + uVar30 * 0x60);
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)puVar25 ^ uVar37;
  local_d0 = (byte)uVar10;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0x25086ed)) = *puVar25 ^ uVar34 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x8f0) = CONCAT44(uVar9,uVar5) ^ 0xbf49ee64576ce1b5;
  uVar38 = (*(ulonglong *)(lVar3 + -0x628) ^ uVar43) >> ((local_d0 ^ 0xe5) & 0x3f) ^
           CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0xb18) = uVar38;
  uVar36 = (ulonglong)DAT_182671f64;
  *(byte *)(lVar3 - (uVar23 ^ 0x5d264764)) = (byte)uVar16 ^ (byte)uVar38 ^ (byte)DAT_182671db0;
  uVar2 = DAT_182671c94;
  bVar19 = *(byte *)(lVar3 + -0x1c2) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671db0;
  pbVar33 = (byte *)((CONCAT44(uVar27,DAT_182671c94) ^ 0x31ef3f9df5a927ec) +
                    *(longlong *)(lVar3 + -0x1d0));
  *(ulonglong *)(lVar3 + -0xa90) = (ulonglong)pbVar33 ^ uVar36;
  *pbVar33 = bVar19;
  uVar36 = CONCAT44(DAT_182671f00,DAT_182671f00);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x31eb3df4)) =
       *(longlong *)(lVar3 - (uVar40 ^ 0xdce243bd)) +
       ((CONCAT44(uVar1,uVar28) ^ 0xe7fe7146f8bedaea) +
       (CONCAT44(uVar15,DAT_182671c4c) ^ 0xf5a927e4025080c5) * 0xc) * 8 ^ uVar36;
  uVar38 = CONCAT44(DAT_182671d4c,DAT_182671d4c);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xf8bed38b)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x6e8) ^ uVar36) ^ uVar34 ^ uVar38;
  *(int *)(lVar3 - (uVar46 ^ 0x3bff3e2b)) =
       *(int *)(lVar3 + -0x6c0) << ((byte)*(undefined4 *)(lVar3 + -0xae4) & 0x1f);
  uVar17 = DAT_182671e90;
  uVar6 = DAT_182671c74;
  lVar4 = DAT_182671c40;
  uVar35 = CONCAT44(DAT_182671e0c,DAT_182671e0c);
  bVar19 = (byte)DAT_182671e90;
  uVar40 = (ulonglong)DAT_182671f04;
  uVar36 = (*(ulonglong *)(lVar3 + -0x960) ^ uVar38) >> (((byte)uVar2 ^ 0xec) & 0x3f) ^ uVar35;
  bVar42 = (byte)DAT_182671e0c ^ bVar19 ^ (byte)uVar36;
  *(ulonglong *)(lVar3 + -0x4b8) = uVar36;
  *(byte *)(lVar3 + -0x291) = bVar42;
  bVar42 = bVar42 ^ (byte)DAT_182671d18;
  uVar28 = uVar6 ^ uVar13;
  pbVar33 = (byte *)((CONCAT44(uVar28,uVar13) ^ 0x4f6d1f8b3bff3bf6) + *(longlong *)(lVar4 + -0x1d0))
  ;
  DAT_182671c50 = uVar28;
  *(ulonglong *)(lVar4 + -0x5a8) = (ulonglong)pbVar33 ^ uVar40;
  *(ulonglong *)(lVar4 + -0x888) =
       (CONCAT44(uVar6,uVar28) ^ 0xd312045224b6c1f1) + 0x8ab72d798d75b765;
  uVar16 = DAT_182671e54;
  *pbVar33 = bVar42 ^ bVar19;
  uVar2 = DAT_182671e00;
  uVar36 = CONCAT44(uVar16,uVar16);
  bVar42 = (byte)uVar28;
  uVar40 = (ulonglong)DAT_182671e00;
  *(ulonglong *)(DAT_182671c40 - ((ulonglong)uVar28 ^ 0x4f6d1a03)) =
       *(longlong *)(DAT_182671c40 + -0x310) + 8 +
       (CONCAT44(uVar13,uVar6) ^ 0x3bff3bff74922474) * 0x60 ^ uVar36;
  lVar3 = DAT_182671c40;
  puVar25 = (ulonglong *)(DAT_182671c40 + -0x588);
  *(ulonglong *)(DAT_182671c40 + -0xb08) =
       (uVar35 ^ *(ulonglong *)(DAT_182671c40 + -0x4b8)) >> ((bVar42 ^ 0xa8) & 0x3f);
  uVar18 = DAT_182671fa0;
  uVar16 = DAT_182671e18;
  uVar36 = CONCAT44(uVar2,uVar2) ^ *(ulonglong *)(*puVar25 ^ uVar36) ^ uVar34;
  uVar35 = CONCAT44(uVar12,uVar6);
  *(ulonglong *)(lVar3 + -0xc38) = uVar36;
  *(uint *)(lVar3 + -0x1c8) = (uVar6 ^ 0x8cb72160) * 0x584df6a5;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x4f6d15fb)) =
       ((ulonglong)(uVar2 >> 0x10) | uVar40 << 0x10) ^ uVar36 >> 0x10 ^ CONCAT44(uVar16,uVar16);
  pbVar33 = (byte *)(*(longlong *)(lVar3 + -0x1d0) + 10);
  *(byte *)(lVar3 + -0x182) = (byte)uVar16 ^ *(byte *)(lVar3 + -0xa70) ^ (byte)uVar18;
  uVar2 = DAT_182671c80;
  *(ulonglong *)(lVar3 + -0x760) =
       (CONCAT44(uVar6,uVar13) ^ 0x9ac8c06c61a1f5c) >> ((bVar42 ^ 0xbc) & 0x3f);
  uVar36 = (ulonglong)DAT_182671f8c;
  *(ulonglong *)(lVar3 + -0x680) =
       CONCAT44(uVar5,uVar7) ^ CONCAT44(uVar6,uVar13) ^ 0xc781d58936ccea90;
  *(ulonglong *)(lVar3 + -0xc68) = (ulonglong)pbVar33 ^ uVar36;
  uVar16 = DAT_182671d84;
  *pbVar33 = *(byte *)(lVar3 - (uVar23 ^ 0x5d264724)) ^ (byte)DAT_182671d18 ^ (byte)uVar18;
  uVar36 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0xb88) =
       (uVar35 ^ 0x9b3981ec74922474) * 0x60 + *(longlong *)(lVar3 + -0x310) + 8 ^ uVar36;
  uVar5 = DAT_182671e6c;
  uVar38 = (ulonglong)DAT_182671e6c;
  *(ulonglong *)(lVar3 - (uVar46 ^ 0x3bff3187)) =
       (CONCAT44(uVar2,uVar32) ^ 0x152463e9eb667938) << ((bVar42 ^ 0x8a) & 0x3f);
  *(ulonglong *)(lVar3 + -0x510) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar29 ^ 0xf8bed163)) ^ uVar36) ^
       CONCAT44(uVar5,uVar5) ^ uVar34;
  uVar40 = (ulonglong)DAT_182671eb8;
  uVar36 = *(ulonglong *)(lVar3 - (uVar21 ^ 0x7b2d7e4b)) >> 0x18 ^
           ((ulonglong)(uVar5 >> 0x18) | uVar38 << 8) ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0x7e8) = uVar36;
  *(byte *)(lVar3 + -0xd21) = bVar19 ^ (byte)uVar36 ^ (byte)DAT_182671d38;
  *(ulonglong *)(lVar3 + -0xc0) =
       *(longlong *)(lVar3 - (uVar24 ^ 0xefbf9e1f)) + (CONCAT44(uVar28,uVar10) ^ 0x4f6d1f8bf7f9a7ee)
       ^ uVar40;
  uVar36 = CONCAT44(DAT_182671da0,DAT_182671da0);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x200c0651)) ^ uVar40) =
       *(byte *)(lVar3 - (uVar26 ^ 0x31eb363d)) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671d38;
  uVar16 = DAT_182671f30;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x31ef3edd)) =
       *(longlong *)(lVar3 + -0x310) +
       ((CONCAT44(uVar7,iVar8) ^ 0xdce240ad7146e7ff) +
       (CONCAT44(uVar1,uVar7) ^ 0xe7fe7146dce240ad) * 0xc) * 8 ^ uVar36;
  uVar17 = DAT_182671fa4;
  lVar4 = DAT_182671c40;
  uVar40 = CONCAT44(DAT_182671ee0,DAT_182671ee0);
  *(ulonglong *)(lVar3 + -0x5e8) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x140) ^ uVar36) ^ uVar34 ^ uVar40;
  lVar3 = DAT_182671c40;
  uVar36 = (ulonglong)DAT_182671c4c;
  uVar24 = (*(ulonglong *)(lVar4 - (uVar44 ^ 0xf7f9a20d)) ^ uVar40) >>
           (((byte)uVar14 ^ 0xef) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_182671c40 + -0xc90) = uVar24;
  uVar38 = (ulonglong)DAT_182671d88;
  uVar40 = (ulonglong)DAT_182671c94;
  *(byte *)(lVar3 - (uVar36 ^ 0x2508367)) = (byte)uVar16 ^ (byte)uVar17 ^ (byte)uVar24;
  pbVar33 = (byte *)(*(longlong *)(lVar3 - (uVar40 ^ 0xf5a92634)) +
                    (CONCAT44(uVar32,uVar45) ^ 0xffffbfff5d2646aa));
  bVar19 = *(byte *)(lVar3 + -0x3a2) ^ (byte)DAT_182671d18;
  *(ulonglong *)(lVar3 + -0x640) = (ulonglong)pbVar33 ^ uVar38;
  *pbVar33 = bVar19 ^ (byte)uVar17;
  uVar17 = DAT_182671f6c;
  uVar16 = DAT_182671e4c;
  uVar36 = CONCAT44(DAT_182671f34,DAT_182671f34);
  *(ulonglong *)(lVar3 + -0xb30) =
       *(longlong *)(lVar3 + -0x310) + (CONCAT44(uVar27,uVar2) ^ 0x31ef3f9de7fe7147) * 8 ^ uVar36;
  uVar40 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_182671c84 ^ 0x9b39826c)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0x7b2d706b)) ^ uVar36) ^ uVar34 ^ uVar40;
  uVar36 = (ulonglong)DAT_182671fac;
  *(ulonglong *)(lVar3 + -0x3d8) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0x380)) >> (((byte)uVar11 ^ 0x34) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  *(byte *)(lVar3 + -0xc99) =
       *(byte *)(lVar3 - (uVar29 ^ 0xf8bed933)) ^ (byte)uVar16 ^ (byte)DAT_182671f5c;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0x4f6d1a8b)) =
       (uVar35 ^ 0x9b3981ec74922479) + *(longlong *)(lVar3 + -0x1d0) ^ uVar36;
  *(byte *)(*(ulonglong *)(lVar3 + -0x500) ^ uVar36) =
       *(byte *)(lVar3 - (uVar26 ^ 0x31eb3785)) ^ (byte)DAT_182671d18 ^ (byte)DAT_182671f5c;
  *(uint *)(&DAT_182671fc0 + (longlong)(int)uVar20 * 4) = uVar31;
  return;
}



############ FUN_ 18049b580 size=152 ############

void FUN_18049b580(longlong *param_1)

{
  uint uVar1;
  longlong lVar2;
  longlong *plVar3;
  uint *_Memory;
  longlong lVar4;
  int iVar5;
  
  iVar5 = 0;
  if (*(int *)((longlong)param_1 + 0xc) < 1) {
    *(undefined4 *)((longlong)param_1 + 0xc) = 0;
    return;
  }
  lVar4 = 0;
  do {
    lVar2 = *param_1;
    plVar3 = *(longlong **)(lVar2 + 8 + lVar4);
    (**(code **)(*plVar3 + 0xb0))(plVar3,lVar2 + 0x10 + lVar4);
    _Memory = (uint *)(*(longlong *)(lVar2 + lVar4) + -0x10);
    if ((*_Memory & 0x30000000) == 0) {
      LOCK();
      uVar1 = *_Memory;
      *_Memory = *_Memory - 1;
      UNLOCK();
      if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        free(_Memory);
      }
    }
    iVar5 = iVar5 + 1;
    lVar4 = lVar4 + 0x18;
  } while (iVar5 < *(int *)((longlong)param_1 + 0xc));
  *(undefined4 *)((longlong)param_1 + 0xc) = 0;
  return;
}



############ FUN_ 18134c310 size=132 ############

void FUN_18134c310(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  
  uVar2 = 0xfffffffffffffffe;
  if ((*(byte *)(param_1 + 0xa8) & 1) != 0) {
    FUN_1804e5060();
    puVar1 = (undefined8 *)FUN_1812d2bd0(param_1);
    *(byte *)(param_1 + 0xa8) = *(byte *)(param_1 + 0xa8) & 0xfe;
    if (puVar1 != (undefined8 *)0x0) {
      (**(code **)*puVar1)(puVar1,1,(undefined8 *)*puVar1,param_4,uVar2);
    }
    if (DAT_182673700 == 0) {
      uVar2 = FUN_1811316e0(0x130);
      DAT_182673700 = FUN_18133c6c0(uVar2);
    }
    FUN_180488600(DAT_182673700 + 0x58,param_1);
    return;
  }
  return;
}



############ FUN_ 18052d830 size=85 ############

void FUN_18052d830(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)

{
  int iVar1;
  
  iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
  if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    thunk_FUN_181ba94b0(param_2,param_3);
  }
                    /* WARNING: Subroutine does not return */
  thunk_FUN_181ba94b0(param_2,(double)(float)param_3,param_1,param_4);
}



############ FUN_ 1805bc0b0 size=177 ############

void FUN_1805bc0b0(longlong *param_1)

{
  undefined8 *puVar1;
  void *pvVar2;
  undefined8 *puVar3;
  void *_Memory;
  
  puVar3 = (undefined8 *)*param_1;
  if (puVar3 == (undefined8 *)0x0) {
    return;
  }
  puVar1 = (undefined8 *)param_1[1];
  for (; puVar3 != puVar1; puVar3 = puVar3 + 0x5e) {
    (**(code **)*puVar3)(puVar3,0);
  }
  pvVar2 = (void *)*param_1;
  _Memory = pvVar2;
  if ((0xfff < (ulonglong)(((param_1[2] - (longlong)pvVar2) / 0x2f0) * 0x2f0)) &&
     (_Memory = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805b2520 size=353 ############

longlong * FUN_1805b2520(longlong *param_1,undefined8 param_2)

{
  longlong lVar1;
  longlong *plVar2;
  undefined8 uVar3;
  int *piVar4;
  uint uVar5;
  ulonglong uVar6;
  int iVar7;
  undefined1 local_30 [40];
  
  if (*(char *)((longlong)param_1 + 0x44) != '\0') {
    FUN_1805a72c0();
  }
  if (*(int *)((longlong)param_1 + 0x3c) < (int)param_1[8]) {
    uVar5 = 0;
    lVar1 = param_1[1] - *param_1 >> 0x3f;
    if ((param_1[1] - *param_1) / 0x90 + lVar1 != lVar1) {
      uVar6 = 0;
      do {
        piVar4 = (int *)(uVar6 * 0x90 + *param_1);
        if (*piVar4 == *(int *)((longlong)param_1 + 0x3c)) {
          if ((char)param_1[0x1e] == '\0') {
            plVar2 = (longlong *)0x0;
          }
          else {
            plVar2 = param_1 + 0x1f;
          }
          FUN_1805b37f0(param_2,piVar4,piVar4 + 2,param_1 + 0xe,plVar2);
        }
        uVar5 = uVar5 + 1;
        uVar6 = (ulonglong)uVar5;
      } while (uVar6 < (ulonglong)((param_1[1] - *param_1) / 0x90));
    }
  }
  else if ((*(byte *)(param_1 + 0xd) & 4) != 0) {
    uVar3 = FUN_1805a4e20(local_30,(longlong)*(int *)((longlong)param_1 + 0x3c),
                          (longlong)(int)param_1[8]);
                    /* WARNING: Subroutine does not return */
    FUN_1805a3c70(uVar3);
  }
  *(int *)((longlong)param_1 + 0x3c) = *(int *)((longlong)param_1 + 0x3c) + 1;
  iVar7 = *(int *)((longlong)param_1 + 0x3c);
  if (param_1[6] != 0) {
    while ((iVar7 < (int)param_1[8] &&
           ((*(uint *)(param_1[3] + ((ulonglong)(longlong)iVar7 >> 5) * 4) &
            1 << ((byte)iVar7 & 0x1f)) != 0))) {
      iVar7 = iVar7 + 1;
      *(int *)((longlong)param_1 + 0x3c) = iVar7;
    }
  }
  return param_1;
}



############ FUN_ 1805b7dc0 size=156 ############

void FUN_1805b7dc0(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::fusion::DynamicCryptoKeyExchangeInput::vftable;
  pvVar1 = (void *)param_1[5];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[7] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[2];
  if (pvVar1 == (void *)0x0) {
    return;
  }
  pvVar2 = pvVar1;
  if ((0xfff < (ulonglong)(param_1[4] - (longlong)pvVar1)) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1805a48c0 size=147 ############

undefined8 *
FUN_1805a48c0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  longlong lVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  *param_1 = pace::PaceFormatter::vftable;
  lVar2 = FUN_1811316e0(0x108);
  if (lVar2 == 0) {
    lVar2 = 0;
  }
  else {
    lVar2 = FUN_1805a3f20(lVar2,param_2);
  }
  plVar1 = param_1 + 1;
  *plVar1 = lVar2;
  FUN_1805a0ae0(param_1 + 2,lVar2);
  FUN_1805ae620(plVar1,lVar2,lVar2,param_4,uVar3);
  *(undefined1 *)(*plVar1 + 0x68) = 0;
  return param_1;
}



############ FUN_ 1805a21d0 size=353 ############

longlong * FUN_1805a21d0(longlong *param_1,undefined8 param_2)

{
  longlong lVar1;
  longlong *plVar2;
  undefined8 uVar3;
  int *piVar4;
  uint uVar5;
  ulonglong uVar6;
  int iVar7;
  undefined1 local_30 [40];
  
  if (*(char *)((longlong)param_1 + 0x44) != '\0') {
    FUN_1805a72c0();
  }
  if (*(int *)((longlong)param_1 + 0x3c) < (int)param_1[8]) {
    uVar5 = 0;
    lVar1 = param_1[1] - *param_1 >> 0x3f;
    if ((param_1[1] - *param_1) / 0x90 + lVar1 != lVar1) {
      uVar6 = 0;
      do {
        piVar4 = (int *)(uVar6 * 0x90 + *param_1);
        if (*piVar4 == *(int *)((longlong)param_1 + 0x3c)) {
          if ((char)param_1[0x1e] == '\0') {
            plVar2 = (longlong *)0x0;
          }
          else {
            plVar2 = param_1 + 0x1f;
          }
          FUN_1805a35a0(param_2,piVar4,piVar4 + 2,param_1 + 0xe,plVar2);
        }
        uVar5 = uVar5 + 1;
        uVar6 = (ulonglong)uVar5;
      } while (uVar6 < (ulonglong)((param_1[1] - *param_1) / 0x90));
    }
  }
  else if ((*(byte *)(param_1 + 0xd) & 4) != 0) {
    uVar3 = FUN_1805a4e20(local_30,(longlong)*(int *)((longlong)param_1 + 0x3c),
                          (longlong)(int)param_1[8]);
                    /* WARNING: Subroutine does not return */
    FUN_1805a3c70(uVar3);
  }
  *(int *)((longlong)param_1 + 0x3c) = *(int *)((longlong)param_1 + 0x3c) + 1;
  iVar7 = *(int *)((longlong)param_1 + 0x3c);
  if (param_1[6] != 0) {
    while ((iVar7 < (int)param_1[8] &&
           ((*(uint *)(param_1[3] + ((ulonglong)(longlong)iVar7 >> 5) * 4) &
            1 << ((byte)iVar7 & 0x1f)) != 0))) {
      iVar7 = iVar7 + 1;
      *(int *)((longlong)param_1 + 0x3c) = iVar7;
    }
  }
  return param_1;
}



############ FUN_ 1805b5490 size=175 ############

undefined8 * FUN_1805b5490(undefined8 *param_1)

{
  *(undefined1 *)(param_1 + 2) = 1;
  param_1[1] = 0;
  *param_1 = pace::eden::thrift::pub::AuthSearch::vftable;
  *(undefined8 *)((longlong)param_1 + 0x14) = 0;
  param_1[10] = 0;
  param_1[4] = 0xffffffffffffffff;
  param_1[5] = 0xffffffffffffffff;
  param_1[6] = 0xffffffffffffffff;
  param_1[7] = 0xffffffffffffffff;
  param_1[8] = 0xffffffffffffffff;
  param_1[0xd] = 0;
  param_1[0xe] = 0xf;
  *(undefined1 *)(param_1 + 0xb) = 0;
  FUN_1805a6cb0(param_1 + 0xb,&DAT_181baf991,0);
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 1;
  param_1[0x13] = 0;
  *(undefined2 *)(param_1 + 0x14) = 0;
  *(undefined4 *)(param_1 + 9) = 0;
  return param_1;
}



############ FUN_ 1805b0850 size=311 ############

longlong FUN_1805b0850(longlong *param_1,void *param_2,undefined1 *param_3)

{
  ulonglong uVar1;
  void *_Src;
  ulonglong uVar2;
  longlong lVar3;
  void *_Dst;
  ulonglong uVar4;
  void *_Dst_00;
  size_t _Size;
  longlong lVar5;
  undefined8 uVar6;
  
  uVar6 = 0xfffffffffffffffe;
  lVar3 = *param_1;
  lVar5 = (longlong)param_2 - lVar3;
  if (param_1[1] - lVar3 == 0x7fffffffffffffff) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a69c0();
  }
  uVar1 = (param_1[1] - lVar3) + 1;
  uVar2 = param_1[2] - lVar3;
  uVar4 = uVar1;
  if ((uVar2 <= 0x7fffffffffffffff - (uVar2 >> 1)) && (uVar4 = (uVar2 >> 1) + uVar2, uVar4 < uVar1))
  {
    uVar4 = uVar1;
  }
  if (uVar4 < 0x1000) {
    if (uVar4 == 0) {
      _Dst_00 = (void *)0x0;
    }
    else {
      _Dst_00 = (void *)FUN_1811316e0(uVar4);
    }
  }
  else {
    uVar2 = uVar4 + 0x27;
    if (uVar2 <= uVar4) {
      uVar2 = 0xffffffffffffffff;
    }
    lVar3 = FUN_1811316e0(uVar2);
    if (lVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
    _Dst_00 = (void *)(lVar3 + 0x27U & 0xffffffffffffffe0);
    *(longlong *)((longlong)_Dst_00 - 8) = lVar3;
  }
  *(undefined1 *)((longlong)_Dst_00 + lVar5) = *param_3;
  _Src = (void *)*param_1;
  if (param_2 == (void *)param_1[1]) {
    _Size = param_1[1] - (longlong)_Src;
    _Dst = _Dst_00;
    param_2 = _Src;
  }
  else {
    memmove(_Dst_00,_Src,(longlong)param_2 - (longlong)_Src);
    _Dst = (void *)(lVar5 + 1 + (longlong)_Dst_00);
    _Size = param_1[1] - (longlong)param_2;
  }
  memmove(_Dst,param_2,_Size);
  FUN_1805bbe20(param_1,_Dst_00,uVar1,uVar4,uVar6);
  return *param_1 + lVar5;
}



############ FUN_ 1805b7370 size=179 ############

void FUN_1805b7370(longlong *param_1)

{
  undefined8 *puVar1;
  void *pvVar2;
  undefined8 *puVar3;
  void *_Memory;
  
  puVar3 = (undefined8 *)*param_1;
  if (puVar3 == (undefined8 *)0x0) {
    return;
  }
  puVar1 = (undefined8 *)param_1[1];
  for (; puVar3 != puVar1; puVar3 = puVar3 + 0x1d) {
    (**(code **)*puVar3)(puVar3,0);
  }
  pvVar2 = (void *)*param_1;
  _Memory = pvVar2;
  if ((0xfff < (ulonglong)(((param_1[2] - (longlong)pvVar2) / 0xe8) * 0xe8)) &&
     (_Memory = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805b20d0 size=353 ############

longlong * FUN_1805b20d0(longlong *param_1,undefined8 param_2)

{
  longlong lVar1;
  longlong *plVar2;
  undefined8 uVar3;
  int *piVar4;
  uint uVar5;
  ulonglong uVar6;
  int iVar7;
  undefined1 local_30 [40];
  
  if (*(char *)((longlong)param_1 + 0x44) != '\0') {
    FUN_1805a72c0();
  }
  if (*(int *)((longlong)param_1 + 0x3c) < (int)param_1[8]) {
    uVar5 = 0;
    lVar1 = param_1[1] - *param_1 >> 0x3f;
    if ((param_1[1] - *param_1) / 0x90 + lVar1 != lVar1) {
      uVar6 = 0;
      do {
        piVar4 = (int *)(uVar6 * 0x90 + *param_1);
        if (*piVar4 == *(int *)((longlong)param_1 + 0x3c)) {
          if ((char)param_1[0x1e] == '\0') {
            plVar2 = (longlong *)0x0;
          }
          else {
            plVar2 = param_1 + 0x1f;
          }
          FUN_1805b2690(param_2,piVar4,piVar4 + 2,param_1 + 0xe,plVar2);
        }
        uVar5 = uVar5 + 1;
        uVar6 = (ulonglong)uVar5;
      } while (uVar6 < (ulonglong)((param_1[1] - *param_1) / 0x90));
    }
  }
  else if ((*(byte *)(param_1 + 0xd) & 4) != 0) {
    uVar3 = FUN_1805a4e20(local_30,(longlong)*(int *)((longlong)param_1 + 0x3c),
                          (longlong)(int)param_1[8]);
                    /* WARNING: Subroutine does not return */
    FUN_1805a3c70(uVar3);
  }
  *(int *)((longlong)param_1 + 0x3c) = *(int *)((longlong)param_1 + 0x3c) + 1;
  iVar7 = *(int *)((longlong)param_1 + 0x3c);
  if (param_1[6] != 0) {
    while ((iVar7 < (int)param_1[8] &&
           ((*(uint *)(param_1[3] + ((ulonglong)(longlong)iVar7 >> 5) * 4) &
            1 << ((byte)iVar7 & 0x1f)) != 0))) {
      iVar7 = iVar7 + 1;
      *(int *)((longlong)param_1 + 0x3c) = iVar7;
    }
  }
  return param_1;
}



############ FUN_ 1805c0260 size=80 ############

undefined8 *
FUN_1805c0260(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  
  uVar2 = 0xfffffffffffffffe;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    FUN_1805a48c0(puVar1,"|__FILE__|%s|__LINE__|%d",param_3,param_4,uVar2);
    *puVar1 = pace::PaceLocationInfoFormatter::vftable;
    return puVar1;
  }
  return (undefined8 *)0x0;
}



############ FUN_ 1805b53c0 size=206 ############

undefined8 *
FUN_1805b53c0(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  
  *param_1 = pace::eden::thrift::pub::AuthSearch::vftable;
  *(undefined4 *)(param_1 + 1) = *(undefined4 *)(param_2 + 8);
  *(undefined4 *)((longlong)param_1 + 0xc) = *(undefined4 *)(param_2 + 0xc);
  *(undefined1 *)(param_1 + 2) = *(undefined1 *)(param_2 + 0x10);
  *(undefined4 *)((longlong)param_1 + 0x14) = *(undefined4 *)(param_2 + 0x14);
  *(undefined4 *)(param_1 + 3) = *(undefined4 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[5] = *(undefined8 *)(param_2 + 0x28);
  param_1[6] = *(undefined8 *)(param_2 + 0x30);
  param_1[7] = *(undefined8 *)(param_2 + 0x38);
  param_1[8] = *(undefined8 *)(param_2 + 0x40);
  *(undefined4 *)(param_1 + 9) = *(undefined4 *)(param_2 + 0x48);
  param_1[10] = *(undefined8 *)(param_2 + 0x50);
  FUN_1805a4070(param_1 + 0xb,param_2 + 0x58,param_3,param_4,0xfffffffffffffffe);
  FUN_1805b49f0(param_1 + 0xf,param_2 + 0x78);
  *(undefined1 *)(param_1 + 0x12) = *(undefined1 *)(param_2 + 0x90);
  *(undefined1 *)((longlong)param_1 + 0x91) = *(undefined1 *)(param_2 + 0x91);
  uVar1 = *(undefined8 *)(param_2 + 0x9a);
  *(undefined8 *)((longlong)param_1 + 0x92) = *(undefined8 *)(param_2 + 0x92);
  *(undefined8 *)((longlong)param_1 + 0x9a) = uVar1;
  return param_1;
}



############ FUN_ 1805b9ea0 size=636 ############

longlong FUN_1805b9ea0(longlong param_1,longlong param_2)

{
  undefined8 uVar1;
  longlong *plVar2;
  undefined1 local_res8;
  
  if ((undefined8 *)(param_1 + 8) != (undefined8 *)(param_2 + 8)) {
    FUN_1805af240((undefined8 *)(param_1 + 8),*(undefined8 *)(param_2 + 8),
                  *(undefined8 *)(param_2 + 0x10),local_res8);
  }
  plVar2 = (longlong *)(param_2 + 0x28);
  *(undefined1 *)(param_1 + 0x20) = *(undefined1 *)(param_2 + 0x20);
  *(undefined1 *)(param_1 + 0x21) = *(undefined1 *)(param_2 + 0x21);
  *(undefined4 *)(param_1 + 0x24) = *(undefined4 *)(param_2 + 0x24);
  if ((longlong *)(param_1 + 0x28) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x40)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x28,plVar2,*(undefined8 *)(param_2 + 0x38));
  }
  plVar2 = (longlong *)(param_2 + 0x48);
  if ((longlong *)(param_1 + 0x48) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x60)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x48,plVar2,*(undefined8 *)(param_2 + 0x58));
  }
  plVar2 = (longlong *)(param_2 + 0x78);
  *(undefined8 *)(param_1 + 0x68) = *(undefined8 *)(param_2 + 0x68);
  *(undefined8 *)(param_1 + 0x70) = *(undefined8 *)(param_2 + 0x70);
  if ((longlong *)(param_1 + 0x78) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x90)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x78,plVar2,*(undefined8 *)(param_2 + 0x88));
  }
  *(undefined1 *)(param_1 + 0x98) = *(undefined1 *)(param_2 + 0x98);
  *(undefined4 *)(param_1 + 0x9c) = *(undefined4 *)(param_2 + 0x9c);
  FUN_1805ba780(param_1 + 0xa0,param_2 + 0xa0);
  *(undefined4 *)(param_1 + 0x1f0) = *(undefined4 *)(param_2 + 0x1f0);
  *(undefined1 *)(param_1 + 500) = *(undefined1 *)(param_2 + 500);
  *(undefined8 *)(param_1 + 0x1f8) = *(undefined8 *)(param_2 + 0x1f8);
  FUN_1805b9910(param_1 + 0x200,param_2 + 0x200);
  plVar2 = (longlong *)(param_2 + 0x228);
  *(undefined8 *)(param_1 + 0x220) = *(undefined8 *)(param_2 + 0x220);
  if ((longlong *)(param_1 + 0x228) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x240)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x228,plVar2,*(undefined8 *)(param_2 + 0x238));
  }
  plVar2 = (longlong *)(param_2 + 0x248);
  if ((longlong *)(param_1 + 0x248) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x260)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x248,plVar2,*(undefined8 *)(param_2 + 600));
  }
  *(undefined4 *)(param_1 + 0x268) = *(undefined4 *)(param_2 + 0x268);
  *(undefined4 *)(param_1 + 0x26c) = *(undefined4 *)(param_2 + 0x26c);
  *(undefined4 *)(param_1 + 0x270) = *(undefined4 *)(param_2 + 0x270);
  *(undefined4 *)(param_1 + 0x274) = *(undefined4 *)(param_2 + 0x274);
  FUN_1805b9910(param_1 + 0x278,param_2 + 0x278);
  *(undefined4 *)(param_1 + 0x290) = *(undefined4 *)(param_2 + 0x290);
  *(undefined4 *)(param_1 + 0x294) = *(undefined4 *)(param_2 + 0x294);
  *(undefined8 *)(param_1 + 0x298) = *(undefined8 *)(param_2 + 0x298);
  *(undefined2 *)(param_1 + 0x2a0) = *(undefined2 *)(param_2 + 0x2a0);
  if ((undefined8 *)(param_1 + 0x2a8) != (undefined8 *)(param_2 + 0x2a8)) {
    FUN_1805af600((undefined8 *)(param_1 + 0x2a8),*(undefined8 *)(param_2 + 0x2a8),
                  *(undefined8 *)(param_2 + 0x2b0),local_res8);
  }
  if ((undefined8 *)(param_1 + 0x2c0) != (undefined8 *)(param_2 + 0x2c0)) {
    FUN_1805af430((undefined8 *)(param_1 + 0x2c0),*(undefined8 *)(param_2 + 0x2c0),
                  *(undefined8 *)(param_2 + 0x2c8),local_res8);
  }
  uVar1 = *(undefined8 *)(param_2 + 0x2e0);
  *(undefined8 *)(param_1 + 0x2d8) = *(undefined8 *)(param_2 + 0x2d8);
  *(undefined8 *)(param_1 + 0x2e0) = uVar1;
  *(undefined2 *)(param_1 + 0x2e8) = *(undefined2 *)(param_2 + 0x2e8);
  *(undefined1 *)(param_1 + 0x2ea) = *(undefined1 *)(param_2 + 0x2ea);
  return param_1;
}



############ FUN_ 1806a4f70 size=938 ############

/* WARNING: Instruction at (ram,0x0001806a5314) overlaps instruction at (ram,0x0001806a5312)
    */
/* WARNING: Removing unreachable block (ram,0x0001806a57a8) */
/* WARNING: Removing unreachable block (ram,0x0001806a4fe6) */
/* WARNING: Removing unreachable block (ram,0x0001806a4fc0) */
/* WARNING: Removing unreachable block (ram,0x0001806a57e5) */
/* WARNING: Removing unreachable block (ram,0x0001806a58c3) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

ulonglong FUN_1806a4f70(longlong param_1)

{
  uint uVar1;
  undefined4 *puVar2;
  undefined8 uVar3;
  undefined7 uVar4;
  uint uVar5;
  ulonglong uVar6;
  undefined1 *puVar7;
  ulonglong uVar8;
  undefined8 in_R10;
  undefined8 in_R11;
  ulonglong uVar9;
  longlong lVar10;
  longlong lVar11;
  ulonglong uVar12;
  int unaff_retaddr;
  undefined1 auStack_58 [32];
  
  puVar7 = auStack_58;
  uVar12 = 0xe30;
  uVar1 = (uint)&stack0x00000000 & 0x10ff;
  uVar5 = (uVar1 + 1) * uVar1 + 0x59c7 & 0x80000001;
  uVar1 = (uint)&stack0x00000000 & 0x9ff;
  uVar1 = (uVar1 * uVar1 * 0x10 + 4) % 0x13;
  uVar8 = (ulonglong)uVar1;
  uVar1 = (int)((-uVar1 | uVar1) & (-uVar5 | uVar5)) >> 0x1f;
  uVar9 = (ulonglong)((int)(-uVar1 | uVar1) >> 0x1f & 0x71e0U ^ 0x7430);
  puVar2 = &DAT_181429d30;
  uVar1 = (DAT_181429d30 + 0x6aa56237) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d34) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d38) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d3c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d40) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d44) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d48) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d4c) * -0x395b586d;
  do {
    uVar12 = ((uVar12 ^ 0xffffffffffffffff) + 1 ^ 0xffffffffffffffff) + 1;
    uVar9 = -(~uVar9 + 1);
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  uVar1 = (DAT_181429d50 + (uVar1 ^ uVar1 >> 0x10)) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d54) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d58) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d5c) * -0x395b586d;
  FUN_1806b79a0(param_1,0);
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d60) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d64) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d68) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181429d6c) * -0x395b586d;
  do {
    FUN_1806a6121(0x780c);
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  uVar1 = (DAT_181429d70 + (uVar1 ^ uVar1 >> 0x10)) * -0x395b586d;
  do {
    uVar6 = 0;
    uVar5 = FUN_1806a63c0();
    if ((uVar6 & 0xc2) != 0) {
      uVar1 = uVar5 ^ (uint)in_R10 ^ 0x3204eb52;
      return (ulonglong)CONCAT31((int3)(uVar1 >> 8),(char)uVar1 + '$');
    }
    func_0x0001806a4d2e();
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  uVar1 = (_UNK_181429d74 + (uVar1 ^ uVar1 >> 0x10)) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d78) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d7c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d80) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d84) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d88) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d8c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d90) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d94) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d98) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429d9c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429da0) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429da4) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429da8) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429dac) * -0x395b586d;
  do {
    lVar11 = (uVar12 - uVar8) + uVar9;
    lVar10 = ~(uVar9 - lVar11) + 1;
    uVar9 = lVar11 - lVar10;
    uVar12 = lVar10 + uVar8;
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  uVar1 = (_UNK_181429db0 + (uVar1 ^ uVar1 >> 0x10)) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429db4) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429db8) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181429dbc) * -0x395b586d;
  do {
    uVar6 = 0x780c;
    uVar3 = func_0x0001806a4079();
    if ((uVar6 & 0xdf00) == 0) {
      uVar4 = (undefined7)((ulonglong)uVar3 >> 8);
      out(0xeb,(int)CONCAT71(uVar4,(char)uVar3 + '\x12'));
      DAT_00000000 = DAT_00000000 | (byte)(uVar6 >> 8);
      return (ulonglong)((int)CONCAT71(uVar4,(char)uVar3 + '6') + 0x806a54ea);
    }
    uVar9 = ~-uVar9 + 1;
    puVar2 = (undefined4 *)-(((ulonglong)puVar2 ^ 0xffffffffffffffff) + 1);
    uVar12 = ~-uVar12 + 1;
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  uVar1 = (puVar2[0x24] + (uVar1 ^ uVar1 >> 0x10)) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x25]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x26]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x27]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x28]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x29]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x2a]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x2b]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x2c]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x2d]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x2e]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x2f]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x30]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x31]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x32]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x33]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x34]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x35]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x36]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x37]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x38]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x39]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x3a]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x3b]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x3c]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x3d]) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x3e]) * -0x395b586d;
  uVar5 = ((uVar1 >> 0x10 ^ uVar1) + puVar2[0x3f]) * -0x395b586d;
  uVar1 = (uVar5 >> 0x10 ^ uVar5) + 0x46bccf2;
  if (((uVar1 >> 0x1a | uVar1 * 0x40) + 0x5fd8c9af) * 0x15 != 0) {
    uVar12 = thunk_FUN_1805a9280((longlong)(int)uVar12,uVar5,uVar8);
    return uVar12;
  }
  do {
    *(undefined8 *)(puVar7 + -8) = in_R10;
    *(undefined8 *)(puVar7 + -0x10) = in_R11;
    *(ulonglong *)(puVar7 + -0x18) = uVar8;
    lVar10 = -(longlong)(int)uVar9;
    uVar8 = *(ulonglong *)(puVar7 + lVar10 + 0x5b8);
    in_R11 = *(undefined8 *)(puVar7 + lVar10 + 0x5c0);
    in_R10 = *(undefined8 *)(puVar7 + lVar10 + 0x5c8);
    puVar7 = puVar7 + lVar10 + 0x5d0;
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  return *(ulonglong *)(param_1 + 0x80);
}



############ FUN_ 1805b8040 size=187 ############

void FUN_1805b8040(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::pub::FindAuthOptions::vftable;
  if (0xf < (ulonglong)param_1[10]) {
    pvVar1 = (void *)param_1[7];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[10] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[9] = 0;
  param_1[10] = 0xf;
  *(undefined1 *)(param_1 + 7) = 0;
  if ((ulonglong)param_1[6] < 0x10) {
    param_1[5] = 0;
    param_1[6] = 0xf;
    *(undefined1 *)(param_1 + 3) = 0;
    return;
  }
  pvVar1 = (void *)param_1[3];
  pvVar2 = pvVar1;
  if ((0xfff < param_1[6] + 1) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1805b7ad0 size=180 ############

void FUN_1805b7ad0(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::pub::AuthSearch::vftable;
  pvVar1 = (void *)param_1[0xf];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (param_1[0x11] - (longlong)pvVar1 & 0xfffffffffffffffcU)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  if ((ulonglong)param_1[0xe] < 0x10) {
    param_1[0xd] = 0;
    param_1[0xe] = 0xf;
    *(undefined1 *)(param_1 + 0xb) = 0;
    return;
  }
  pvVar1 = (void *)param_1[0xb];
  pvVar2 = pvVar1;
  if ((0xfff < param_1[0xe] + 1) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1806a35e0 size=413 ############

/* WARNING: Removing unreachable block (ram,0x0001806a36d1) */
/* WARNING: Removing unreachable block (ram,0x0001806a3631) */
/* WARNING: Removing unreachable block (ram,0x0001806a3677) */
/* WARNING: Removing unreachable block (ram,0x0001806a3624) */
/* WARNING: Removing unreachable block (ram,0x0001806a3694) */

void FUN_1806a35e0(undefined8 param_1)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  undefined1 auStack_b8 [64];
  undefined4 local_78;
  uint local_68;
  undefined8 local_58;
  ulonglong local_38;
  
  local_38 = DAT_182615970 ^ (ulonglong)auStack_b8;
  uVar1 = (uint)&stack0x00000000 & 0x5cff;
  local_78 = 0x1f0;
  uVar3 = (uint)&stack0x00000000 & 0x78ff;
  iVar2 = uVar1 * uVar1 + 1;
  uVar1 = iVar2 * 0x24924924 + (iVar2 >> 4) + (iVar2 >> 1) >> 0x1d;
  uVar1 = (int)(uVar1 - 7) >> 0x1f & uVar1;
  uVar3 = (uVar3 * uVar3 + 1) % 7;
  uVar1 = (int)((-uVar3 | uVar3) & (-uVar1 | uVar1)) >> 0x1f;
  local_68 = ((int)(-uVar1 | uVar1) >> 0x1f) * -0x49aa ^ 0x4b0a;
  local_58 = param_1;
  FUN_1806a378a();
  return;
}



############ FUN_ 1805b9910 size=318 ############

undefined8 * FUN_1805b9910(undefined8 *param_1,undefined8 *param_2)

{
  void *_Src;
  longlong lVar1;
  void *pvVar2;
  void *pvVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  ulonglong _Size;
  size_t _Size_00;
  
  if (param_1 != param_2) {
    lVar1 = param_2[1];
    pvVar3 = (void *)*param_2;
    pvVar2 = (void *)*param_1;
    _Size = lVar1 - (longlong)pvVar3;
    uVar4 = param_1[2] - (longlong)pvVar2;
    if (uVar4 < _Size) {
      if (0x7fffffffffffffff < _Size) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69c0();
      }
      uVar5 = _Size;
      if ((uVar4 <= 0x7fffffffffffffff - (uVar4 >> 1)) &&
         (uVar5 = (uVar4 >> 1) + uVar4, uVar5 < _Size)) {
        uVar5 = _Size;
      }
      if (pvVar2 != (void *)0x0) {
        pvVar3 = pvVar2;
        if ((0xfff < uVar4) &&
           (pvVar3 = *(void **)((longlong)pvVar2 + -8),
           0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
          _invalid_parameter_noinfo_noreturn();
        }
                    /* WARNING: Subroutine does not return */
        free(pvVar3);
      }
      FUN_1805bbbc0(param_1,uVar5);
      pvVar2 = (void *)*param_1;
      memmove(pvVar2,pvVar3,_Size);
      param_1[1] = _Size + (longlong)pvVar2;
    }
    else if ((ulonglong)(param_1[1] - (longlong)pvVar2) < _Size) {
      _Src = (void *)((param_1[1] - (longlong)pvVar2) + (longlong)pvVar3);
      memmove(pvVar2,pvVar3,(longlong)_Src - (longlong)pvVar3);
      pvVar3 = (void *)param_1[1];
      _Size_00 = lVar1 - (longlong)_Src;
      memmove(pvVar3,_Src,_Size_00);
      param_1[1] = _Size_00 + (longlong)pvVar3;
    }
    else {
      memmove(pvVar2,pvVar3,_Size);
      param_1[1] = (longlong)pvVar2 + _Size;
    }
  }
  return param_1;
}



############ FUN_ 1805b7e80 size=156 ############

void FUN_1805b7e80(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::fusion::DynamicCryptoKeyExchangeOutput::vftable;
  pvVar1 = (void *)param_1[4];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[6] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[1];
  if (pvVar1 == (void *)0x0) {
    return;
  }
  pvVar2 = pvVar1;
  if ((0xfff < (ulonglong)(param_1[3] - (longlong)pvVar1)) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1805b72a0 size=182 ############

void FUN_1805b72a0(longlong *param_1)

{
  undefined8 *puVar1;
  void *pvVar2;
  longlong lVar3;
  undefined8 *puVar4;
  void *_Memory;
  
  puVar4 = (undefined8 *)*param_1;
  if (puVar4 == (undefined8 *)0x0) {
    return;
  }
  puVar1 = (undefined8 *)param_1[1];
  for (; puVar4 != puVar1; puVar4 = puVar4 + 0x15) {
    (**(code **)*puVar4)(puVar4,0);
  }
  pvVar2 = (void *)*param_1;
  lVar3 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816(param_1[2] - (longlong)pvVar2),8) +
          (param_1[2] - (longlong)pvVar2);
  _Memory = pvVar2;
  if ((0xfff < (ulonglong)(((lVar3 >> 7) - (lVar3 >> 0x3f)) * 0xa8)) &&
     (_Memory = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805de600 size=518 ############

void FUN_1805de600(undefined8 param_1,undefined8 param_2)

{
  int unaff_retaddr;
  undefined1 auStack_d8 [32];
  uint local_b8;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_60;
  ulonglong local_40;
  
  local_60 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_d8;
  do {
    local_b8 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)local_b8 < 0) {
      local_b8 = (local_b8 - 1 | 0xfffffffe) + 1;
    }
  } while (local_b8 != 0);
  local_78 = param_1;
  local_70 = param_2;
  FUN_1805df461(0,param_2);
  return;
}



############ FUN_ 1805b0190 size=694 ############

longlong FUN_1805b0190(ulonglong *param_1,ulonglong param_2,undefined8 param_3)

{
  undefined8 *puVar1;
  void *pvVar2;
  longlong lVar3;
  ulonglong uVar4;
  longlong lVar5;
  ulonglong uVar6;
  longlong lVar7;
  longlong lVar8;
  ulonglong uVar9;
  undefined8 *puVar10;
  ulonglong uVar11;
  void *_Memory;
  ulonglong uVar12;
  ulonglong uVar13;
  ulonglong *puVar14;
  undefined8 uVar15;
  
  uVar15 = 0xfffffffffffffffe;
  uVar12 = *param_1;
  lVar5 = (param_2 - uVar12) +
          SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816((longlong)(param_2 - uVar12)),8);
  lVar7 = (lVar5 >> 7) - (lVar5 >> 0x3f);
  lVar5 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816((longlong)(param_1[1] - uVar12)),8) +
          (param_1[1] - uVar12);
  lVar5 = (lVar5 >> 7) - (lVar5 >> 0x3f);
  if (lVar5 == 0x186186186186186) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a69c0();
  }
  uVar13 = lVar5 + 1;
  lVar5 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816((longlong)(param_1[2] - uVar12)),8) +
          (param_1[2] - uVar12);
  uVar6 = (lVar5 >> 7) - (lVar5 >> 0x3f);
  uVar12 = uVar13;
  if ((uVar6 <= 0x186186186186186 - (uVar6 >> 1)) &&
     (uVar12 = (uVar6 >> 1) + uVar6, uVar12 < uVar13)) {
    uVar12 = uVar13;
  }
  uVar6 = uVar12 * 0xa8;
  lVar5 = lVar7;
  puVar14 = param_1;
  if (uVar12 < 0x186186186186187) {
    if (uVar6 < 0x1000) {
      if (uVar6 == 0) {
        uVar6 = 0;
      }
      else {
        uVar6 = FUN_1811316e0(uVar6);
      }
      goto LAB_1805b02d2;
    }
  }
  else {
    uVar6 = 0xffffffffffffffff;
  }
  uVar4 = uVar6 + 0x27;
  if (uVar4 <= uVar6) {
    uVar4 = 0xffffffffffffffff;
  }
  lVar3 = FUN_1811316e0(uVar4);
  if (lVar3 == 0) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
  uVar6 = lVar3 + 0x27U & 0xffffffffffffffe0;
  *(longlong *)(uVar6 - 8) = lVar3;
LAB_1805b02d2:
  lVar8 = lVar7 * 0xa8 + uVar6;
  lVar7 = lVar8 + 0xa8;
  lVar3 = lVar7;
  uVar11 = uVar6;
  FUN_1805b53c0(lVar8,param_3);
  uVar4 = param_1[1];
  if (param_2 == uVar4) {
    uVar9 = uVar6;
    for (uVar11 = *param_1; uVar11 != uVar4; uVar11 = uVar11 + 0xa8) {
      FUN_1805b53c0(uVar9);
      uVar9 = uVar9 + 0xa8;
    }
  }
  else {
    FUN_1805bc3b0(param_1,*param_1,param_2,uVar6,uVar13,lVar5,lVar3,uVar11,puVar14,uVar15);
    FUN_1805bc3b0(param_1,param_2,param_1[1],lVar7);
  }
  puVar10 = (undefined8 *)*param_1;
  if (puVar10 != (undefined8 *)0x0) {
    puVar1 = (undefined8 *)param_1[1];
    for (; puVar10 != puVar1; puVar10 = puVar10 + 0x15) {
      (**(code **)*puVar10)(puVar10,0);
    }
    pvVar2 = (void *)*param_1;
    lVar5 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816((longlong)(param_1[2] - (longlong)pvVar2))
                   ,8) + (param_1[2] - (longlong)pvVar2);
    _Memory = pvVar2;
    if ((0xfff < (ulonglong)(((lVar5 >> 7) - (lVar5 >> 0x3f)) * 0xa8)) &&
       (_Memory = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(_Memory);
  }
  *param_1 = uVar6;
  param_1[1] = uVar13 * 0xa8 + uVar6;
  param_1[2] = uVar12 * 0xa8 + uVar6;
  return lVar5 * 0xa8 + *param_1;
}



############ FUN_ 1806995c0 size=1918 ############

/* WARNING: Removing unreachable block (ram,0x00018069976c) */
/* WARNING: Removing unreachable block (ram,0x0001806996ef) */
/* WARNING: Removing unreachable block (ram,0x000180699c15) */

void FUN_1806995c0(undefined8 param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  undefined4 *puVar1;
  int iVar2;
  uint uVar3;
  longlong *plVar4;
  ulonglong uVar5;
  uint uVar6;
  uint uVar7;
  longlong lVar8;
  IMAGE_DOS_HEADER *pIVar9;
  IMAGE_DOS_HEADER *pIVar10;
  uint *puVar11;
  int unaff_retaddr;
  undefined1 auStack_2c8 [64];
  undefined1 local_288;
  int local_284;
  undefined8 local_280;
  longlong local_278;
  undefined8 local_270;
  undefined8 local_268;
  undefined8 uStack_260;
  undefined8 local_258;
  undefined8 local_250;
  uint local_248 [2];
  undefined8 local_240;
  undefined4 *local_238;
  undefined8 local_230;
  uint local_228;
  uint local_224;
  undefined8 local_1f0;
  undefined8 local_1e8;
  undefined8 local_158;
  undefined **local_108;
  undefined1 local_100 [16];
  undefined8 local_f0;
  undefined8 local_e8;
  undefined **local_e0;
  undefined4 local_d8;
  undefined8 local_d0;
  undefined2 local_c8;
  undefined2 local_c0;
  undefined4 local_60;
  ulonglong local_50;
  
  local_158 = 0xfffffffffffffffe;
  local_50 = DAT_182615970 ^ (ulonglong)auStack_2c8;
  uVar3 = (uint)&stack0x00000000;
  iVar2 = (uVar3 & 0x42ff) * (uVar3 & 0x42ff) + 1;
  uVar6 = (iVar2 >> 4) + (iVar2 >> 1) + iVar2 * 0x24924924 >> 0x1d;
  uVar6 = (int)(uVar6 - 7) >> 0x1f & uVar6;
  iVar2 = (uVar3 & 0x14ff) * (uVar3 & 0x14ff) + 1;
  uVar7 = (iVar2 >> 4) + (iVar2 >> 1) + iVar2 * 0x24924924 >> 0x1d;
  uVar7 = (int)(uVar7 - 7) >> 0x1f & uVar7;
  local_224 = ((int)((-uVar7 | uVar7) ^ (-uVar6 | uVar6)) >> 0x1f | 0x3977U) ^ 0x3dc7;
  uVar3 = uVar3 & 0x27f;
  local_228 = (((uVar3 + 2) * (uVar3 + 1) * uVar3) % 3 | 0x1908) ^ 0x1c38;
  local_240 = *(undefined8 *)(param_2 + 0x68);
  local_108 = pace::eden::thrift::authorize::AuthLocation::vftable;
  local_f0 = 0;
  local_e8 = 0xf;
  local_100[0] = 0;
  local_278 = param_2;
  local_230 = param_3;
  local_1f0 = param_4;
  local_1e8 = param_1;
  FUN_1805a6cb0(local_100,&DAT_181baf991,0);
  local_e0 = pace::eden::thrift::pub::IlokIdentifier::vftable;
  local_d0 = 0;
  local_c8 = 0;
  local_d8 = 1;
  local_c0 = 0;
  local_268 = 0;
  uStack_260 = 0;
  local_258 = 0;
  local_288 = 0;
  pIVar10 = &IMAGE_DOS_HEADER_180000000;
  puVar1 = &DAT_18069b314;
  local_238 = (undefined4 *)0x1806a0864;
  do {
    uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar7 < 0) {
      uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar7 != 0);
  uVar7 = 0xab0e7b16;
  local_250 = 0xcc9e2d51;
  local_284 = -0x19ab949c;
  local_270 = 0x11b873593;
  local_280 = 0x1c9449f5a71db40f;
LAB_180699ac0:
  if ((pIVar10 != (IMAGE_DOS_HEADER *)0x0) &&
     (lVar8._0_1_ = pIVar10->e_magic[0], lVar8._1_1_ = pIVar10->e_magic[1],
     lVar8._2_2_ = pIVar10->e_cblp, lVar8._4_2_ = pIVar10->e_cp, lVar8._6_2_ = pIVar10->e_crlc,
     -1 < lVar8)) {
    local_250 = 0x2621fc0;
    pIVar9 = pIVar10;
    do {
      if (puVar1 < IMAGE_DOS_HEADER_180000000.e_magic + lVar8 + 8) {
        pIVar10 = pIVar9;
        if (-1 < lVar8) {
          plVar4 = (longlong *)(lVar8 + 0x180000000);
          if (plVar4 < puVar1 + 1) {
            local_60 = *puVar1;
            goto LAB_180699b44;
          }
        }
        break;
      }
      pIVar10 = (IMAGE_DOS_HEADER *)&pIVar9->e_cparhdr;
      lVar8._0_2_ = pIVar9->e_cparhdr;
      lVar8._2_2_ = pIVar9->e_minalloc;
      lVar8._4_2_ = pIVar9->e_maxalloc;
      lVar8._6_2_ = pIVar9->e_ss;
      pIVar9 = pIVar10;
    } while (-1 < lVar8);
  }
  goto LAB_180699b72;
  while (plVar4 = (longlong *)(lVar8 + 0x180000000), plVar4 < puVar1 + 1) {
LAB_180699b44:
    *(longlong *)(&stack0x00017fffffa0 + (lVar8 - (longlong)puVar1)) = *plVar4 + -0x180000000;
    pIVar9 = (IMAGE_DOS_HEADER *)&pIVar9->e_cparhdr;
    lVar8 = *(longlong *)pIVar9;
    if (lVar8 < 0) break;
  }
LAB_180699b72:
  do {
    puVar11 = local_248;
    uVar5 = 0xc728;
    do {
      do {
        uVar3 = FUN_18069df38();
        *puVar11 = uVar3;
      } while ((uVar5 & 0xc3) != 0);
    } while ((uVar5 & 0xc300) == 0);
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  local_248[0] = (local_248[0] * 0x16a88000 | local_248[0] * -0x3361d2af >> 0x11) * (int)local_270;
  uVar7 = local_284 + ((uVar7 ^ local_248[0]) << 0xd | (uVar7 ^ local_248[0]) >> 0x13) * 5;
  uVar3 = uVar7 & 0x3f;
  puVar1 = (undefined4 *)
           ((longlong)puVar1 +
           (0x44 - (((longlong)(int)((uVar3 + 1) * (uVar3 + 1) * uVar3 * uVar3 & 0x80000003) |
                    0x5f76U) ^ 0x5f36)));
  if (puVar1 == local_238) {
    return;
  }
  goto LAB_180699ac0;
}



############ FUN_ 18069bc20 size=1232 ############

/* WARNING: Removing unreachable block (ram,0x00018069bd08) */
/* WARNING: Removing unreachable block (ram,0x00018069bdc7) */

void FUN_18069bc20(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,
                  undefined8 *param_5)

{
  undefined8 *puVar1;
  longlong lVar2;
  undefined8 uVar3;
  uint uVar4;
  ulonglong uVar5;
  code **ppcVar6;
  undefined8 *puVar7;
  int unaff_retaddr;
  undefined4 unaff_retaddr_00;
  undefined1 auStack_3a8 [40];
  undefined4 *local_380;
  undefined *local_378;
  uint local_370;
  undefined8 local_368;
  undefined8 local_360;
  uint local_358;
  code *local_350;
  undefined8 *local_348;
  undefined8 local_340;
  undefined8 local_338;
  undefined8 *local_330;
  undefined8 local_208;
  ulonglong local_58;
  
  local_208 = 0xfffffffffffffffe;
  local_58 = DAT_182615970 ^ (ulonglong)auStack_3a8;
  uVar4 = (uint)&stack0x00000000 & 0x15ff;
  uVar4 = (uVar4 + 1) * uVar4 + 0x108b & 0x80000001;
  uVar4 = (int)(-uVar4 | uVar4) >> 0x1f;
  local_358 = (int)(-uVar4 | uVar4) >> 0x1f & 0x6416U ^ 0x6f46;
  local_368 = 0x100;
  local_380 = &DAT_1806debd0;
  local_378 = &DAT_1806decd0;
  puVar1 = (undefined8 *)param_4[1];
  local_330 = param_4;
  local_340 = param_3;
  local_360 = param_2;
  local_338 = param_1;
  local_348 = param_5;
  for (puVar7 = (undefined8 *)*param_4; puVar7 != puVar1; puVar7 = puVar7 + 0x5e) {
    (**(code **)*puVar7)(puVar7,0);
  }
  param_4[1] = *param_4;
  uVar5 = (ulonglong)local_368 >> 0x20;
  local_368 = CONCAT44((int)uVar5,0xa51f6b1f);
  if (param_5 != (undefined8 *)0x0) {
    puVar1 = (undefined8 *)param_5[1];
    for (puVar7 = (undefined8 *)*param_5; puVar7 != puVar1; puVar7 = puVar7 + 0x118) {
      (**(code **)*puVar7)(puVar7,0);
      param_5 = local_348;
    }
    param_5[1] = *param_5;
  }
  do {
    uVar3 = rdtsc();
    local_370 = (uint)uVar3 ^ (uint)((ulonglong)uVar3 >> 0x20);
    FUN_18069a182();
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  local_370 = (local_370 * -0x13ac51cb >> 0x18 ^ local_370 * -0x13ac51cb) * -0x12aa12ab;
  if (local_370 < 0x330a5df) {
    local_350 = (code *)0x0;
    do {
      ppcVar6 = &local_350;
      FUN_18069c112(ppcVar6,&local_350);
      *ppcVar6 = FUN_1813bba80;
      uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar4 < 0) {
        uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar4 != 0);
    uVar5 = (*local_350)(0,0x198f);
    if (1 < uVar5) {
      lVar2 = CONCAT44(unaff_retaddr_00,unaff_retaddr);
      while (lVar2 != -0x3333333333333334) {
        *(longlong *)register0x00000020 = 0;
        register0x00000020 = (BADSPACEBASE *)((longlong)register0x00000020 + 0x40);
        lVar2 = *(longlong *)register0x00000020;
      }
    }
  }
  FUN_18069c113(0xf53c);
  return;
}



############ FUN_ 1805bbf80 size=176 ############

void FUN_1805bbf80(longlong *param_1,ulonglong param_2)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  ulonglong uVar4;
  void *_Dst;
  
  lVar1 = param_1[1];
  lVar2 = *param_1;
  if (param_2 < 0x1000) {
    if (param_2 == 0) {
      _Dst = (void *)0x0;
    }
    else {
      _Dst = (void *)FUN_1811316e0(param_2);
    }
  }
  else {
    uVar4 = param_2 + 0x27;
    if (uVar4 <= param_2) {
      uVar4 = 0xffffffffffffffff;
    }
    lVar3 = FUN_1811316e0(uVar4);
    if (lVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
    _Dst = (void *)(lVar3 + 0x27U & 0xffffffffffffffe0);
    *(longlong *)((longlong)_Dst - 8) = lVar3;
  }
  memmove(_Dst,(void *)*param_1,param_1[1] - *param_1);
  FUN_1805bbe20(param_1,_Dst,lVar1 - lVar2,param_2);
  return;
}



############ FUN_ 1805b9860 size=86 ############

void FUN_1805b9860(longlong *param_1)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  
  param_1 = (longlong *)*param_1;
  if (param_1 != (longlong *)0x0) {
    LOCK();
    plVar1 = param_1 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*param_1 + 8))(param_1);
      LOCK();
      piVar2 = (int *)((longlong)param_1 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*param_1 + 0x10))(param_1);
      }
    }
  }
  return;
}



############ FUN_ 1805bdb50 size=798 ############

/* WARNING: Removing unreachable block (ram,0x0001805bdd1f) */
/* WARNING: Removing unreachable block (ram,0x0001805bdd30) */
/* WARNING: Removing unreachable block (ram,0x0001805bdd47) */
/* WARNING: Removing unreachable block (ram,0x0001805bde31) */
/* WARNING: Removing unreachable block (ram,0x0001805bde42) */
/* WARNING: Removing unreachable block (ram,0x0001805bde59) */

undefined8 * FUN_1805bdb50(undefined8 *param_1,char param_2)

{
  uint uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  longlong lVar4;
  HANDLE pvVar5;
  undefined8 *puVar6;
  uint *puVar7;
  longlong local_res18;
  char *local_res20;
  undefined8 local_68;
  undefined4 uStack_60;
  undefined4 uStack_5c;
  int *local_58;
  char local_50;
  undefined8 local_48;
  undefined8 local_40;
  undefined8 local_38;
  longlong local_30;
  
  uVar3 = 0;
  uVar2 = FUN_1805c2740();
  FUN_1805b45f0(&local_58,uVar2);
  if (DAT_18265dd28 == 0) {
    local_res18 = FUN_1811316e0(0x1b0);
    if (local_res18 != 0) {
      uVar3 = FUN_180675cd0(local_res18);
    }
    local_68 = uVar3;
    FUN_1805aeea0(&uStack_60,uVar3);
    FUN_1805ae620(&local_68,uVar3,uVar3);
    uVar2 = local_68;
    if (param_2 == '\0') {
      FUN_1806afd50(local_68,0,2,0,0,0,0);
    }
    else {
      FUN_1806b10b0();
    }
    uVar3 = FUN_1805c04c0();
    FUN_18069ae50(uVar2,&DAT_18265dd28,uVar3,0);
    if (DAT_18265dd28 == 0) {
      local_res18 = FUN_1811316e0(0x18);
      if (local_res18 != 0) {
        FUN_1805a48c0(local_res18,&DAT_181baf991);
      }
      lVar4 = FUN_1805c0260();
      local_res18 = CONCAT44(local_res18._4_4_,0x3b2);
      local_res20 = 
      "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\paceeden.cpp"
      ;
      uVar2 = FUN_1805a21d0(*(undefined8 *)(lVar4 + 8),&local_res20);
                    /* WARNING: Subroutine does not return */
      FUN_1805b20d0(uVar2,&local_res18);
    }
    *param_1 = uVar2;
    param_1[1] = CONCAT44(uStack_5c,uStack_60);
    if ((local_50 != '\0') && (*local_58 = *local_58 + -1, *local_58 == 0)) {
      LOCK();
      local_58[1] = 0;
      UNLOCK();
      puVar7 = (uint *)(local_58 + 2);
      LOCK();
      uVar1 = *puVar7;
      *puVar7 = *puVar7 + 0x80000000;
      UNLOCK();
      if (((uVar1 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar1)) {
        LOCK();
        uVar1 = *puVar7;
        *puVar7 = *puVar7 | 0x40000000;
        UNLOCK();
        if ((uVar1 >> 0x1e & 1) == 0) {
          pvVar5 = (HANDLE)FUN_1805a9100();
          SetEvent(pvVar5);
        }
      }
    }
  }
  else {
    lVar4 = FUN_1811316e0(0x1b0);
    if (lVar4 != 0) {
      puVar6 = (undefined8 *)FUN_1805c04c0();
      local_38 = *puVar6;
      local_30 = puVar6[1];
      if (local_30 != 0) {
        LOCK();
        *(int *)(local_30 + 8) = *(int *)(local_30 + 8) + 1;
        UNLOCK();
      }
      uVar3 = FUN_180674d00(lVar4,DAT_18265dd28,&local_38,0);
    }
    local_48 = uVar3;
    FUN_1805aeea0(&local_40,uVar3);
    FUN_1805ae620(&local_48,uVar3,uVar3);
    *param_1 = local_48;
    param_1[1] = local_40;
    if ((local_50 != '\0') && (*local_58 = *local_58 + -1, *local_58 == 0)) {
      LOCK();
      local_58[1] = 0;
      UNLOCK();
      puVar7 = (uint *)(local_58 + 2);
      LOCK();
      uVar1 = *puVar7;
      *puVar7 = *puVar7 + 0x80000000;
      UNLOCK();
      if (((uVar1 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar1)) {
        LOCK();
        uVar1 = *puVar7;
        *puVar7 = *puVar7 | 0x40000000;
        UNLOCK();
        if ((uVar1 >> 0x1e & 1) == 0) {
          pvVar5 = (HANDLE)FUN_1805a9100();
          SetEvent(pvVar5);
        }
      }
    }
  }
  return param_1;
}



############ FUN_ 180574c80 size=829 ############

void FUN_180574c80(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::pub::RemoteServerInfo::vftable;
  if (0xf < (ulonglong)param_1[0x26]) {
    pvVar1 = (void *)param_1[0x23];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0x26] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0x26] = 0xf;
  param_1[0x25] = 0;
  *(undefined1 *)(param_1 + 0x23) = 0;
  if (0xf < (ulonglong)param_1[0x22]) {
    pvVar1 = (void *)param_1[0x1f];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0x22] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0x21] = 0;
  param_1[0x22] = 0xf;
  *(undefined1 *)(param_1 + 0x1f) = 0;
  if (0xf < (ulonglong)param_1[0x1e]) {
    pvVar1 = (void *)param_1[0x1b];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0x1e] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0x1d] = 0;
  param_1[0x1e] = 0xf;
  *(undefined1 *)(param_1 + 0x1b) = 0;
  if (0xf < (ulonglong)param_1[0x19]) {
    pvVar1 = (void *)param_1[0x16];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0x19] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0x18] = 0;
  param_1[0x19] = 0xf;
  *(undefined1 *)(param_1 + 0x16) = 0;
  if (0xf < (ulonglong)param_1[0x15]) {
    pvVar1 = (void *)param_1[0x12];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0x15] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0x14] = 0;
  param_1[0x15] = 0xf;
  *(undefined1 *)(param_1 + 0x12) = 0;
  if (0xf < (ulonglong)param_1[0x11]) {
    pvVar1 = (void *)param_1[0xe];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0x11] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0x10] = 0;
  param_1[0x11] = 0xf;
  *(undefined1 *)(param_1 + 0xe) = 0;
  pvVar1 = (void *)param_1[0xb];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[0xd] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  if (0xf < (ulonglong)param_1[8]) {
    pvVar1 = (void *)param_1[5];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[8] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[7] = 0;
  param_1[8] = 0xf;
  *(undefined1 *)(param_1 + 5) = 0;
  if ((ulonglong)param_1[4] < 0x10) {
    param_1[3] = 0;
    param_1[4] = 0xf;
    *(undefined1 *)(param_1 + 1) = 0;
    return;
  }
  pvVar1 = (void *)param_1[1];
  pvVar2 = pvVar1;
  if ((0xfff < param_1[4] + 1) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 180575070 size=254 ############

void FUN_180575070(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::pub::SharedLicenseInfo::vftable;
  pvVar1 = (void *)param_1[0xc];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[0xe] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  if (0xf < (ulonglong)param_1[9]) {
    pvVar1 = (void *)param_1[6];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[9] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[8] = 0;
  param_1[9] = 0xf;
  *(undefined1 *)(param_1 + 6) = 0;
  if ((ulonglong)param_1[5] < 0x10) {
    param_1[4] = 0;
    param_1[5] = 0xf;
    *(undefined1 *)(param_1 + 2) = 0;
    return;
  }
  pvVar1 = (void *)param_1[2];
  pvVar2 = pvVar1;
  if ((0xfff < param_1[5] + 1) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 181246550 size=133 ############

longlong * FUN_181246550(longlong *param_1,undefined8 param_2,undefined8 param_3)

{
  uint uVar1;
  longlong lVar2;
  longlong *plVar3;
  uint *_Memory;
  longlong *local_res8;
  
  local_res8 = param_1;
  FUN_18049c4e0(&local_res8);
  plVar3 = (longlong *)FUN_181232d30(&local_res8,param_3);
  lVar2 = *plVar3;
  *param_1 = lVar2;
  if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar2 + -0x10) = *(int *)(lVar2 + -0x10) + 1;
    UNLOCK();
  }
  _Memory = (uint *)(local_res8 + -2);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
  return param_1;
}



############ FUN_ 18137a170 size=636 ############

void FUN_18137a170(uint param_1,longlong param_2,uint *param_3)

{
  float fVar1;
  float fVar2;
  int iVar3;
  uint *puVar4;
  uint *puVar5;
  float *pfVar6;
  int iVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  float *pfVar11;
  ulonglong uVar12;
  int iVar13;
  longlong lVar14;
  longlong lVar15;
  uint uVar16;
  int iVar17;
  int iVar18;
  ulonglong uVar19;
  float fVar20;
  float _X;
  float fVar21;
  
  uVar16 = 0;
  uVar10 = 0;
  lVar15 = 0;
  uVar19 = (ulonglong)param_1;
  lVar8 = -1;
  do {
    do {
      lVar8 = lVar8 + 1;
      if (lVar8 < 4) {
        uVar16 = (&DAT_1824ad090)[lVar8];
      }
      else {
        uVar16 = uVar16 + 2;
      }
      uVar12 = (longlong)(int)uVar19 / (longlong)(int)uVar16;
    } while ((int)uVar19 != (int)uVar12 * uVar16);
    puVar5 = param_3 + lVar15 + 1;
    lVar14 = lVar15;
    uVar9 = uVar10;
    do {
      uVar19 = uVar12 & 0xffffffff;
      puVar5 = puVar5 + 1;
      uVar10 = uVar9 + 1;
      lVar15 = lVar14 + 1;
      iVar17 = (int)uVar12;
      *puVar5 = uVar16;
      if ((uVar16 == 2) && (lVar15 != 1)) {
        puVar4 = puVar5;
        if (1 < lVar15) {
          do {
            *puVar4 = puVar4[-1];
            lVar14 = lVar14 + -1;
            puVar4 = puVar4 + -1;
          } while (lVar14 != 0);
        }
        param_3[2] = 2;
      }
      fVar2 = DAT_1824c43a4;
      if (iVar17 == 1) {
        lVar8 = (longlong)(int)uVar9;
        iVar17 = 0;
        *param_3 = param_1;
        param_3[1] = uVar10;
        fVar1 = DAT_1824c3ea4;
        if (0 < lVar8) {
          param_3 = param_3 + 2;
          iVar18 = 1;
          do {
            iVar7 = 0;
            iVar13 = *param_3 * iVar18;
            iVar3 = (int)param_1 / iVar13;
            uVar16 = *param_3 - 1;
            if (0 < (int)uVar16) {
              uVar19 = (ulonglong)uVar16;
              pfVar11 = (float *)(param_2 + (longlong)iVar17 * 4);
              iVar17 = iVar17 + uVar16 * iVar3;
              do {
                iVar7 = iVar7 + iVar18;
                fVar21 = 0.0;
                if (2 < iVar3) {
                  uVar12 = (ulonglong)((iVar3 - 3U >> 1) + 1);
                  pfVar6 = pfVar11;
                  do {
                    fVar21 = fVar21 + fVar1;
                    _X = fVar21 * (float)iVar7 * (fVar2 / (float)(int)param_1);
                    fVar20 = cosf(_X);
                    *pfVar6 = fVar20;
                    fVar20 = sinf(_X);
                    pfVar6[1] = fVar20;
                    pfVar6 = pfVar6 + 2;
                    uVar12 = uVar12 - 1;
                  } while (uVar12 != 0);
                }
                pfVar11 = pfVar11 + iVar3;
                uVar19 = uVar19 - 1;
              } while (uVar19 != 0);
            }
            param_3 = param_3 + 1;
            lVar8 = lVar8 + -1;
            iVar18 = iVar13;
          } while (lVar8 != 0);
        }
        return;
      }
      uVar12 = (longlong)iVar17 / (longlong)(int)uVar16;
      lVar14 = lVar15;
      uVar9 = uVar10;
    } while (iVar17 == (int)uVar12 * uVar16);
  } while( true );
}



############ FUN_ 181381520 size=4138 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_181381520(float *param_1,float param_2,int param_3,float param_4,float param_5)

{
  undefined8 *puVar1;
  undefined1 *puVar2;
  double dVar3;
  longlong lVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  longlong lVar9;
  longlong lVar10;
  longlong lVar11;
  double dVar12;
  double dVar13;
  double dVar14;
  double dVar15;
  double dVar16;
  float fVar17;
  float fVar18;
  undefined4 *puVar19;
  int iVar20;
  ulonglong uVar21;
  float *pfVar22;
  undefined8 *puVar23;
  longlong *plVar24;
  float *pfVar25;
  uint uVar26;
  ulonglong uVar27;
  int iVar28;
  uint uVar29;
  int iVar30;
  longlong lVar31;
  longlong lVar32;
  undefined4 *puVar33;
  undefined4 *puVar34;
  undefined1 *puVar35;
  longlong lVar36;
  longlong lVar37;
  undefined1 *puVar38;
  int iVar39;
  longlong lVar40;
  undefined8 *puVar41;
  longlong lVar42;
  float *pfVar43;
  float fVar44;
  float fVar45;
  float fVar46;
  double dVar47;
  double dVar48;
  float fVar49;
  float fVar50;
  double dVar51;
  double dVar52;
  undefined8 auStack_8080 [5];
  int local_8058 [2];
  float *local_8050;
  longlong *local_8048;
  undefined8 *local_8040;
  float *local_8038;
  float *local_8030;
  undefined4 *local_8028;
  float *local_8020;
  longlong local_8018;
  void *local_8010;
  double local_8008;
  longlong local_8000;
  double local_7ff8;
  longlong local_7ff0;
  float *local_7fe8;
  longlong local_7fe0;
  float *local_7fd8;
  undefined8 local_7fc8;
  undefined8 uStack_7fc0;
  undefined8 local_7fb8;
  undefined8 uStack_7fb0;
  undefined8 local_7fa8;
  undefined8 uStack_7fa0;
  undefined8 local_7f98;
  undefined8 uStack_7f90;
  undefined8 local_7f88;
  undefined8 uStack_7f80;
  undefined8 local_7f78;
  undefined8 uStack_7f70;
  undefined8 local_7f68;
  undefined8 uStack_7f60;
  undefined8 local_7f58;
  undefined8 uStack_7f50;
  undefined8 local_7f48;
  undefined8 uStack_7f40;
  undefined8 local_7f38;
  undefined8 uStack_7f30;
  undefined8 local_7f28;
  undefined8 uStack_7f20;
  undefined8 local_7f18;
  undefined8 uStack_7f10;
  undefined8 local_7f08;
  undefined8 uStack_7f00;
  undefined8 local_7ef8;
  undefined8 uStack_7ef0;
  undefined1 local_7ee8 [224];
  undefined1 local_7e08 [1568];
  float local_77e8 [168];
  undefined8 local_7548 [3724];
  ulonglong local_e8;
  
  local_e8 = DAT_182615970 ^ (ulonglong)local_8058;
  uVar21 = (longlong)param_3 * 4 + 0xf;
  if (uVar21 <= (ulonglong)((longlong)param_3 * 4)) {
    uVar21 = 0xffffffffffffff0;
  }
  auStack_8080[0] = 0x1813815da;
  lVar4 = -(uVar21 & 0xfffffffffffffff0);
  local_8028 = (undefined4 *)((longlong)local_8058 + lVar4);
  local_8058[1] = param_3;
  local_8050 = param_1;
  *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x1813815f1;
  local_8010 = malloc(0x88);
  *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181381609;
  memset(local_77e8,0,0x7700);
  fVar18 = _UNK_1824c4ea4;
  fVar17 = _DAT_1824c4ea0;
  dVar51 = _UNK_1824c4e58;
  dVar47 = _DAT_1824c4e50;
  fVar46 = DAT_1824c4740;
  fVar45 = DAT_1824c4598;
  dVar52 = DAT_1824c42c8;
  dVar48 = DAT_1824c4270;
  pfVar43 = (float *)&DAT_1822effc4;
  pfVar25 = local_77e8;
  lVar31 = 0x700;
  local_8048 = (longlong *)&DAT_182332bd0;
  local_8038 = pfVar25;
  lVar37 = -0x700;
  local_8040 = (undefined8 *)&DAT_182332cb0;
  lVar40 = 0;
  puVar38 = &stack0xfffffffe7dd08074;
  local_8058[0] = 2;
  lVar42 = -0x7e0;
  puVar41 = local_7548;
  fVar50 = 0.0;
  do {
    lVar32 = 0x38;
    pfVar22 = pfVar43;
    iVar28 = local_8058[0];
    do {
      fVar44 = fVar46;
      if ((iVar28 + -2 < 0x58) && (fVar44 = pfVar22[-1], fVar45 <= pfVar22[-1])) {
        fVar44 = fVar45;
      }
      fVar49 = fVar46;
      if (iVar28 + -1 < 0x58) {
        fVar49 = *pfVar22;
      }
      if (fVar44 <= fVar49) {
        fVar49 = fVar44;
      }
      fVar44 = fVar46;
      if (iVar28 < 0x58) {
        fVar44 = pfVar22[1];
      }
      iVar28 = iVar28 + 1;
      if (fVar49 <= fVar44) {
        fVar44 = fVar49;
      }
      fVar49 = fVar46;
      if (iVar28 < 0x58) {
        fVar49 = pfVar22[2];
      }
      if (fVar44 <= fVar49) {
        fVar49 = fVar44;
      }
      *(float *)((longlong)pfVar22 + (longlong)puVar38) = fVar49;
      pfVar22 = pfVar22 + 1;
      lVar32 = lVar32 + -1;
    } while (lVar32 != 0);
    uVar5 = local_8040[-0x1b];
    uVar6 = local_8040[-0x1a];
    uVar7 = local_8040[-0x19];
    puVar41[-0x1c] = local_8040[-0x1c];
    puVar41[-0x1b] = uVar5;
    uVar5 = local_8040[-0x18];
    uVar8 = local_8040[-0x17];
    puVar41[-0x1a] = uVar6;
    puVar41[-0x19] = uVar7;
    uVar6 = local_8040[-0x16];
    uVar7 = local_8040[-0x15];
    puVar41[-0x18] = uVar5;
    puVar41[-0x17] = uVar8;
    uVar5 = local_8040[-0x14];
    uVar8 = local_8040[-0x13];
    puVar41[-0x16] = uVar6;
    puVar41[-0x15] = uVar7;
    uVar6 = local_8040[-0x12];
    uVar7 = local_8040[-0x11];
    puVar41[-0x14] = uVar5;
    puVar41[-0x13] = uVar8;
    uVar5 = local_8040[-0x10];
    uVar8 = local_8040[-0xf];
    puVar41[-0x12] = uVar6;
    puVar41[-0x11] = uVar7;
    uVar6 = local_8040[-0xe];
    uVar7 = local_8040[-0xd];
    puVar41[-0x10] = uVar5;
    puVar41[-0xf] = uVar8;
    uVar5 = local_8040[-0xc];
    uVar8 = local_8040[-0xb];
    puVar41[-0xe] = uVar6;
    puVar41[-0xd] = uVar7;
    uVar6 = local_8040[-10];
    uVar7 = local_8040[-9];
    puVar41[-0xc] = uVar5;
    puVar41[-0xb] = uVar8;
    uVar5 = local_8040[-8];
    uVar8 = local_8040[-7];
    puVar41[-10] = uVar6;
    puVar41[-9] = uVar7;
    uVar6 = local_8040[-6];
    uVar7 = local_8040[-5];
    puVar41[-8] = uVar5;
    puVar41[-7] = uVar8;
    uVar5 = local_8040[-4];
    uVar8 = local_8040[-3];
    puVar41[-6] = uVar6;
    puVar41[-5] = uVar7;
    uVar6 = local_8040[-2];
    uVar7 = local_8040[-1];
    puVar41[-4] = uVar5;
    puVar41[-3] = uVar8;
    uVar5 = *local_8040;
    uVar8 = local_8040[1];
    puVar41[-2] = uVar6;
    puVar41[-1] = uVar7;
    uVar6 = local_8040[2];
    uVar7 = local_8040[3];
    *puVar41 = uVar5;
    puVar41[1] = uVar8;
    uVar5 = local_8040[4];
    uVar8 = local_8040[5];
    puVar41[2] = uVar6;
    puVar41[3] = uVar7;
    uVar6 = local_8040[6];
    uVar7 = local_8040[7];
    puVar41[4] = uVar5;
    puVar41[5] = uVar8;
    uVar5 = local_8040[8];
    uVar8 = local_8040[9];
    puVar41[6] = uVar6;
    puVar41[7] = uVar7;
    uVar6 = local_8040[10];
    uVar7 = local_8040[0xb];
    puVar41[8] = uVar5;
    puVar41[9] = uVar8;
    uVar5 = local_8040[0xc];
    uVar8 = local_8040[0xd];
    puVar41[10] = uVar6;
    puVar41[0xb] = uVar7;
    uVar6 = local_8040[0xe];
    uVar7 = local_8040[0xf];
    puVar41[0xc] = uVar5;
    puVar41[0xd] = uVar8;
    uVar5 = local_8040[0x10];
    uVar8 = local_8040[0x11];
    puVar41[0xe] = uVar6;
    puVar41[0xf] = uVar7;
    uVar6 = local_8040[0x12];
    uVar7 = local_8040[0x13];
    puVar41[0x10] = uVar5;
    puVar41[0x11] = uVar8;
    uVar5 = local_8040[0x14];
    uVar8 = local_8040[0x15];
    puVar41[0x12] = uVar6;
    puVar41[0x13] = uVar7;
    uVar6 = local_8040[0x16];
    uVar7 = local_8040[0x17];
    puVar41[0x14] = uVar5;
    puVar41[0x15] = uVar8;
    uVar5 = local_8040[0x18];
    uVar8 = local_8040[0x19];
    puVar41[0x16] = uVar6;
    puVar41[0x17] = uVar7;
    uVar6 = local_8040[0x1a];
    uVar7 = local_8040[0x1b];
    puVar41[0x18] = uVar5;
    puVar41[0x19] = uVar8;
    uVar5 = local_8040[0x1c];
    uVar8 = local_8040[0x1d];
    puVar41[0x1a] = uVar6;
    puVar41[0x1b] = uVar7;
    uVar6 = local_8040[0x1e];
    uVar7 = local_8040[0x1f];
    puVar41[0x1c] = uVar5;
    puVar41[0x1d] = uVar8;
    uVar5 = local_8040[0x20];
    uVar8 = local_8040[0x21];
    puVar41[0x1e] = uVar6;
    puVar41[0x1f] = uVar7;
    uVar6 = local_8040[0x22];
    uVar7 = local_8040[0x23];
    puVar41[0x20] = uVar5;
    puVar41[0x21] = uVar8;
    uVar5 = local_8040[0x24];
    uVar8 = local_8040[0x25];
    puVar41[0x22] = uVar6;
    puVar41[0x23] = uVar7;
    uVar6 = local_8040[0x26];
    uVar7 = local_8040[0x27];
    puVar41[0x24] = uVar5;
    puVar41[0x25] = uVar8;
    uVar5 = local_8040[0x28];
    uVar8 = local_8040[0x29];
    puVar41[0x26] = uVar6;
    puVar41[0x27] = uVar7;
    uVar6 = local_8040[0x2a];
    uVar7 = local_8040[0x2b];
    puVar41[0x28] = uVar5;
    puVar41[0x29] = uVar8;
    puVar41[0x2a] = uVar6;
    puVar41[0x2b] = uVar7;
    uVar5 = local_8040[0x2d];
    uVar6 = local_8040[0x2e];
    uVar7 = local_8040[0x2f];
    puVar41[0x2c] = local_8040[0x2c];
    puVar41[0x2d] = uVar5;
    uVar5 = local_8040[0x30];
    uVar8 = local_8040[0x31];
    puVar41[0x2e] = uVar6;
    puVar41[0x2f] = uVar7;
    uVar6 = local_8040[0x32];
    uVar7 = local_8040[0x33];
    puVar41[0x30] = uVar5;
    puVar41[0x31] = uVar8;
    uVar5 = local_8040[0x34];
    uVar8 = local_8040[0x35];
    puVar41[0x32] = uVar6;
    puVar41[0x33] = uVar7;
    uVar6 = local_8040[0x36];
    uVar7 = local_8040[0x37];
    puVar41[0x34] = uVar5;
    puVar41[0x35] = uVar8;
    uVar5 = local_8040[0x38];
    uVar8 = local_8040[0x39];
    puVar41[0x36] = uVar6;
    puVar41[0x37] = uVar7;
    uVar6 = local_8040[0x3a];
    uVar7 = local_8040[0x3b];
    puVar41[0x38] = uVar5;
    puVar41[0x39] = uVar8;
    uVar5 = local_8040[0x3c];
    uVar8 = local_8040[0x3d];
    puVar41[0x3a] = uVar6;
    puVar41[0x3b] = uVar7;
    uVar6 = local_8040[0x3e];
    uVar7 = local_8040[0x3f];
    puVar41[0x3c] = uVar5;
    puVar41[0x3d] = uVar8;
    uVar5 = local_8040[0x40];
    uVar8 = local_8040[0x41];
    puVar41[0x3e] = uVar6;
    puVar41[0x3f] = uVar7;
    uVar6 = local_8040[0x42];
    uVar7 = local_8040[0x43];
    puVar41[0x40] = uVar5;
    puVar41[0x41] = uVar8;
    uVar5 = local_8040[0x44];
    uVar8 = local_8040[0x45];
    puVar41[0x42] = uVar6;
    puVar41[0x43] = uVar7;
    uVar6 = local_8040[0x46];
    uVar7 = local_8040[0x47];
    puVar41[0x44] = uVar5;
    puVar41[0x45] = uVar8;
    uVar5 = local_8040[0x48];
    uVar8 = local_8040[0x49];
    puVar41[0x46] = uVar6;
    puVar41[0x47] = uVar7;
    uVar6 = local_8040[0x4a];
    uVar7 = local_8040[0x4b];
    puVar41[0x48] = uVar5;
    puVar41[0x49] = uVar8;
    uVar5 = local_8040[0x4c];
    uVar8 = local_8040[0x4d];
    puVar41[0x4a] = uVar6;
    puVar41[0x4b] = uVar7;
    uVar6 = local_8040[0x4e];
    uVar7 = local_8040[0x4f];
    puVar41[0x4c] = uVar5;
    puVar41[0x4d] = uVar8;
    uVar5 = local_8040[0x50];
    uVar8 = local_8040[0x51];
    puVar41[0x4e] = uVar6;
    puVar41[0x4f] = uVar7;
    uVar6 = local_8040[0x52];
    uVar7 = local_8040[0x53];
    puVar41[0x50] = uVar5;
    puVar41[0x51] = uVar8;
    uVar5 = local_8040[0x54];
    uVar8 = local_8040[0x55];
    puVar41[0x52] = uVar6;
    puVar41[0x53] = uVar7;
    uVar6 = local_8040[0x56];
    uVar7 = local_8040[0x57];
    puVar41[0x54] = uVar5;
    puVar41[0x55] = uVar8;
    uVar5 = local_8040[0x58];
    uVar8 = local_8040[0x59];
    puVar41[0x56] = uVar6;
    puVar41[0x57] = uVar7;
    uVar6 = local_8040[0x5a];
    uVar7 = local_8040[0x5b];
    puVar41[0x58] = uVar5;
    puVar41[0x59] = uVar8;
    uVar5 = local_8040[0x5c];
    uVar8 = local_8040[0x5d];
    puVar41[0x5a] = uVar6;
    puVar41[0x5b] = uVar7;
    uVar6 = local_8040[0x5e];
    uVar7 = local_8040[0x5f];
    puVar41[0x5c] = uVar5;
    puVar41[0x5d] = uVar8;
    uVar5 = local_8040[0x60];
    uVar8 = local_8040[0x61];
    puVar41[0x5e] = uVar6;
    puVar41[0x5f] = uVar7;
    uVar6 = local_8040[0x62];
    uVar7 = local_8040[99];
    puVar41[0x60] = uVar5;
    puVar41[0x61] = uVar8;
    uVar5 = local_8040[100];
    uVar8 = local_8040[0x65];
    puVar41[0x62] = uVar6;
    puVar41[99] = uVar7;
    uVar6 = local_8040[0x66];
    uVar7 = local_8040[0x67];
    puVar41[100] = uVar5;
    puVar41[0x65] = uVar8;
    uVar5 = local_8040[0x68];
    uVar8 = local_8040[0x69];
    puVar41[0x66] = uVar6;
    puVar41[0x67] = uVar7;
    uVar6 = local_8040[0x6a];
    uVar7 = local_8040[0x6b];
    puVar41[0x68] = uVar5;
    puVar41[0x69] = uVar8;
    uVar5 = local_8040[0x6c];
    uVar8 = local_8040[0x6d];
    puVar41[0x6a] = uVar6;
    puVar41[0x6b] = uVar7;
    uVar6 = local_8040[0x6e];
    uVar7 = local_8040[0x6f];
    puVar41[0x6c] = uVar5;
    puVar41[0x6d] = uVar8;
    uVar5 = local_8040[0x70];
    uVar8 = local_8040[0x71];
    puVar41[0x6e] = uVar6;
    puVar41[0x6f] = uVar7;
    puVar41[0x70] = uVar5;
    puVar41[0x71] = uVar8;
    uVar5 = local_8040[0x73];
    pfVar22 = pfVar25 + 1;
    uVar6 = local_8040[0x74];
    uVar7 = local_8040[0x75];
    puVar41[0x72] = local_8040[0x72];
    puVar41[0x73] = uVar5;
    puVar41[0x74] = uVar6;
    puVar41[0x75] = uVar7;
    uVar5 = local_8040[0x77];
    uVar6 = local_8040[0x78];
    uVar7 = local_8040[0x79];
    puVar41[0x76] = local_8040[0x76];
    puVar41[0x77] = uVar5;
    puVar41[0x78] = uVar6;
    puVar41[0x79] = uVar7;
    uVar5 = local_8040[0x7b];
    uVar6 = local_8040[0x7c];
    uVar7 = local_8040[0x7d];
    puVar41[0x7a] = local_8040[0x7a];
    puVar41[0x7b] = uVar5;
    puVar41[0x7c] = uVar6;
    puVar41[0x7d] = uVar7;
    uVar5 = local_8040[0x7f];
    uVar6 = local_8040[0x80];
    uVar7 = local_8040[0x81];
    puVar41[0x7e] = local_8040[0x7e];
    puVar41[0x7f] = uVar5;
    puVar41[0x80] = uVar6;
    puVar41[0x81] = uVar7;
    uVar5 = local_8040[0x83];
    uVar6 = local_8040[0x84];
    uVar7 = local_8040[0x85];
    puVar41[0x82] = local_8040[0x82];
    puVar41[0x83] = uVar5;
    puVar41[0x84] = uVar6;
    puVar41[0x85] = uVar7;
    uVar5 = local_8040[0x87];
    uVar6 = local_8040[0x88];
    uVar7 = local_8040[0x89];
    puVar41[0x86] = local_8040[0x86];
    puVar41[0x87] = uVar5;
    puVar41[0x88] = uVar6;
    puVar41[0x89] = uVar7;
    uVar5 = local_8040[0x8b];
    lVar32 = *local_8048;
    lVar9 = local_8048[1];
    puVar41[0x8a] = local_8040[0x8a];
    puVar41[0x8b] = uVar5;
    lVar10 = local_8048[2];
    lVar11 = local_8048[3];
    *(longlong *)pfVar25 = lVar32;
    *(longlong *)(pfVar25 + 2) = lVar9;
    lVar32 = local_8048[4];
    lVar9 = local_8048[5];
    *(longlong *)(pfVar25 + 4) = lVar10;
    *(longlong *)(pfVar25 + 6) = lVar11;
    lVar10 = local_8048[6];
    lVar11 = local_8048[7];
    *(longlong *)(pfVar25 + 8) = lVar32;
    *(longlong *)(pfVar25 + 10) = lVar9;
    lVar32 = local_8048[8];
    lVar9 = local_8048[9];
    *(longlong *)(pfVar25 + 0xc) = lVar10;
    *(longlong *)(pfVar25 + 0xe) = lVar11;
    lVar10 = local_8048[10];
    lVar11 = local_8048[0xb];
    *(longlong *)(pfVar25 + 0x10) = lVar32;
    *(longlong *)(pfVar25 + 0x12) = lVar9;
    lVar32 = local_8048[0xc];
    lVar9 = local_8048[0xd];
    *(longlong *)(pfVar25 + 0x14) = lVar10;
    *(longlong *)(pfVar25 + 0x16) = lVar11;
    lVar10 = local_8048[0xe];
    lVar11 = local_8048[0xf];
    *(longlong *)(pfVar25 + 0x18) = lVar32;
    *(longlong *)(pfVar25 + 0x1a) = lVar9;
    lVar32 = local_8048[0x10];
    lVar9 = local_8048[0x11];
    *(longlong *)(pfVar25 + 0x1c) = lVar10;
    *(longlong *)(pfVar25 + 0x1e) = lVar11;
    lVar10 = local_8048[0x12];
    lVar11 = local_8048[0x13];
    *(longlong *)(pfVar25 + 0x20) = lVar32;
    *(longlong *)(pfVar25 + 0x22) = lVar9;
    lVar32 = local_8048[0x14];
    lVar9 = local_8048[0x15];
    *(longlong *)(pfVar25 + 0x24) = lVar10;
    *(longlong *)(pfVar25 + 0x26) = lVar11;
    lVar10 = local_8048[0x16];
    lVar11 = local_8048[0x17];
    *(longlong *)(pfVar25 + 0x28) = lVar32;
    *(longlong *)(pfVar25 + 0x2a) = lVar9;
    lVar32 = local_8048[0x18];
    lVar9 = local_8048[0x19];
    *(longlong *)(pfVar25 + 0x2c) = lVar10;
    *(longlong *)(pfVar25 + 0x2e) = lVar11;
    lVar10 = local_8048[0x1a];
    lVar11 = local_8048[0x1b];
    *(longlong *)(pfVar25 + 0x30) = lVar32;
    *(longlong *)(pfVar25 + 0x32) = lVar9;
    lVar32 = *local_8048;
    lVar9 = local_8048[1];
    *(longlong *)(pfVar25 + 0x34) = lVar10;
    *(longlong *)(pfVar25 + 0x36) = lVar11;
    lVar10 = local_8048[2];
    lVar11 = local_8048[3];
    *(longlong *)(pfVar25 + 0x38) = lVar32;
    *(longlong *)(pfVar25 + 0x3a) = lVar9;
    lVar32 = local_8048[4];
    lVar9 = local_8048[5];
    *(longlong *)(pfVar25 + 0x3c) = lVar10;
    *(longlong *)(pfVar25 + 0x3e) = lVar11;
    lVar10 = local_8048[6];
    lVar11 = local_8048[7];
    *(longlong *)(pfVar25 + 0x40) = lVar32;
    *(longlong *)(pfVar25 + 0x42) = lVar9;
    lVar32 = local_8048[8];
    lVar9 = local_8048[9];
    *(longlong *)(pfVar25 + 0x44) = lVar10;
    *(longlong *)(pfVar25 + 0x46) = lVar11;
    lVar10 = local_8048[10];
    lVar11 = local_8048[0xb];
    *(longlong *)(pfVar25 + 0x48) = lVar32;
    *(longlong *)(pfVar25 + 0x4a) = lVar9;
    lVar32 = local_8048[0xc];
    lVar9 = local_8048[0xd];
    *(longlong *)(pfVar25 + 0x4c) = lVar10;
    *(longlong *)(pfVar25 + 0x4e) = lVar11;
    lVar10 = local_8048[0xe];
    lVar11 = local_8048[0xf];
    *(longlong *)(pfVar25 + 0x50) = lVar32;
    *(longlong *)(pfVar25 + 0x52) = lVar9;
    lVar32 = local_8048[0x10];
    lVar9 = local_8048[0x11];
    *(longlong *)(pfVar25 + 0x54) = lVar10;
    *(longlong *)(pfVar25 + 0x56) = lVar11;
    *(longlong *)(pfVar25 + 0x58) = lVar32;
    *(longlong *)(pfVar25 + 0x5a) = lVar9;
    lVar32 = local_8048[0x13];
    lVar36 = 8;
    lVar9 = local_8048[0x14];
    lVar10 = local_8048[0x15];
    *(longlong *)(pfVar25 + 0x5c) = local_8048[0x12];
    *(longlong *)(pfVar25 + 0x5e) = lVar32;
    lVar32 = local_8048[0x16];
    lVar11 = local_8048[0x17];
    *(longlong *)(pfVar25 + 0x60) = lVar9;
    *(longlong *)(pfVar25 + 0x62) = lVar10;
    lVar9 = local_8048[0x18];
    lVar10 = local_8048[0x19];
    *(longlong *)(pfVar25 + 100) = lVar32;
    *(longlong *)(pfVar25 + 0x66) = lVar11;
    lVar32 = local_8048[0x1a];
    lVar11 = local_8048[0x1b];
    *(longlong *)(pfVar25 + 0x68) = lVar9;
    *(longlong *)(pfVar25 + 0x6a) = lVar10;
    *(longlong *)(pfVar25 + 0x6c) = lVar32;
    *(longlong *)(pfVar25 + 0x6e) = lVar11;
    do {
      uVar26 = 0xf;
      lVar32 = 0xe;
      do {
        uVar29 = (int)(uVar26 + 1) >> 0x1f;
        fVar44 = (float)(int)((uVar26 + 1 ^ uVar29) - uVar29) * param_5 + param_4;
        if (((fVar44 < fVar50) && (fVar50 < param_4)) || ((fVar50 < fVar44 && (param_4 < fVar50))))
        {
          fVar44 = fVar50;
        }
        pfVar22[-1] = fVar44 + pfVar22[-1];
        fVar44 = (float)(int)((uVar26 ^ (int)uVar26 >> 0x1f) - ((int)uVar26 >> 0x1f)) * param_5 +
                 param_4;
        if (((fVar44 < fVar50) && (fVar50 < param_4)) || ((fVar50 < fVar44 && (param_4 < fVar50))))
        {
          fVar44 = fVar50;
        }
        uVar29 = (int)(uVar26 - 1) >> 0x1f;
        *pfVar22 = fVar44 + *pfVar22;
        fVar44 = (float)(int)((uVar26 - 1 ^ uVar29) - uVar29) * param_5 + param_4;
        if (((fVar44 < fVar50) && (fVar50 < param_4)) || ((fVar50 < fVar44 && (param_4 < fVar50))))
        {
          fVar44 = fVar50;
        }
        uVar29 = (int)(uVar26 - 2) >> 0x1f;
        pfVar22[1] = fVar44 + pfVar22[1];
        fVar44 = (float)(int)((uVar26 - 2 ^ uVar29) - uVar29) * param_5 + param_4;
        if (((fVar44 < fVar50) && (fVar50 < param_4)) || ((fVar50 < fVar44 && (param_4 < fVar50))))
        {
          fVar44 = fVar50;
        }
        uVar26 = uVar26 - 4;
        pfVar22[2] = fVar44 + pfVar22[2];
        pfVar22 = pfVar22 + 4;
        lVar32 = lVar32 + -1;
      } while (lVar32 != 0);
      lVar36 = lVar36 + -1;
    } while (lVar36 != 0);
    dVar3 = (double)*local_8050 + DAT_1824c42f0;
    iVar28 = 0;
    local_8038 = pfVar25;
    do {
      uVar7 = uStack_7fb0;
      uVar6 = local_7fb8;
      uVar5 = uStack_7fc0;
      iVar30 = iVar28;
      if (iVar28 < 2) {
        iVar30 = 2;
      }
      lVar32 = 3;
      pfVar22 = pfVar25 + 8;
      fVar44 = (float)((dVar3 - (double)iVar30 * dVar48) - dVar52);
      do {
        pfVar22[-8] = fVar44 + pfVar22[-8];
        pfVar22[-7] = fVar44 + pfVar22[-7];
        pfVar22[-6] = fVar44 + pfVar22[-6];
        pfVar22[-5] = fVar44 + pfVar22[-5];
        pfVar22[-4] = fVar44 + pfVar22[-4];
        pfVar22[-3] = fVar44 + pfVar22[-3];
        pfVar22[-2] = fVar44 + pfVar22[-2];
        pfVar22[-1] = fVar44 + pfVar22[-1];
        *pfVar22 = fVar44 + *pfVar22;
        pfVar22[1] = fVar44 + pfVar22[1];
        pfVar22[2] = fVar44 + pfVar22[2];
        pfVar22[3] = fVar44 + pfVar22[3];
        pfVar22[4] = fVar44 + pfVar22[4];
        pfVar22[5] = fVar44 + pfVar22[5];
        pfVar22[6] = fVar44 + pfVar22[6];
        pfVar22[7] = fVar44 + pfVar22[7];
        pfVar22 = pfVar22 + 0x10;
        lVar32 = lVar32 + -1;
      } while (lVar32 != 0);
      pfVar22 = pfVar25 + 0x32;
      lVar32 = 2;
      do {
        pfVar22[-2] = pfVar22[-2] + fVar44;
        pfVar22[-1] = pfVar22[-1] + fVar44;
        *pfVar22 = *pfVar22 + fVar44;
        pfVar22[1] = pfVar22[1] + fVar44;
        pfVar22 = pfVar22 + 4;
        lVar32 = lVar32 + -1;
      } while (lVar32 != 0);
      puVar1 = (undefined8 *)((longlong)pfVar25 + lVar37);
      *puVar1 = local_7fc8;
      puVar1[1] = uVar5;
      puVar1[2] = uVar6;
      puVar1[3] = uVar7;
      puVar1[4] = local_7fa8;
      puVar1[5] = uStack_7fa0;
      puVar1[6] = local_7f98;
      puVar1[7] = uStack_7f90;
      puVar1[8] = local_7f88;
      puVar1[9] = uStack_7f80;
      puVar1[10] = local_7f78;
      puVar1[0xb] = uStack_7f70;
      puVar1[0xc] = local_7f68;
      puVar1[0xd] = uStack_7f60;
      puVar1[0xe] = local_7f58;
      puVar1[0xf] = uStack_7f50;
      puVar1[0x10] = local_7f48;
      puVar1[0x11] = uStack_7f40;
      puVar1[0x12] = local_7f38;
      puVar1[0x13] = uStack_7f30;
      puVar1[0x14] = local_7f28;
      puVar1[0x15] = uStack_7f20;
      puVar1[0x16] = local_7f18;
      puVar1[0x17] = uStack_7f10;
      puVar1[0x18] = local_7f08;
      puVar1[0x19] = uStack_7f00;
      puVar23 = (undefined8 *)(lVar37 + 0x10 + (longlong)pfVar25);
      puVar1[0x1a] = local_7ef8;
      puVar1[0x1b] = uStack_7ef0;
      lVar32 = 7;
      fVar44 = (float)((dVar47 - (double)((float)iVar28 * fVar17)) - _DAT_1824c4e40);
      fVar49 = (float)((dVar51 - (double)((float)iVar28 * fVar18)) - _UNK_1824c4e48);
      do {
        puVar23[-2] = CONCAT44((float)((ulonglong)puVar23[-2] >> 0x20) + fVar49,
                               (float)puVar23[-2] + fVar44);
        puVar23[-1] = CONCAT44(fVar49 + (float)((ulonglong)puVar23[-1] >> 0x20),
                               fVar44 + (float)puVar23[-1]);
        *puVar23 = CONCAT44((float)((ulonglong)*puVar23 >> 0x20) + fVar49,(float)*puVar23 + fVar44);
        puVar23[1] = CONCAT44(fVar49 + (float)((ulonglong)puVar23[1] >> 0x20),
                              fVar44 + (float)puVar23[1]);
        puVar23 = puVar23 + 4;
        lVar32 = lVar32 + -1;
      } while (lVar32 != 0);
      *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181381ebf;
      FUN_181382640(local_7ee8 + (longlong)iVar28 * 0xe0,local_77e8 + (lVar40 + iVar28) * 0x38);
      pfVar22 = local_8050;
      iVar28 = iVar28 + 1;
      pfVar25 = pfVar25 + 0x38;
    } while (iVar28 < 8);
    puVar35 = local_7e08;
    lVar32 = 7;
    do {
      puVar2 = puVar35 + lVar31;
      *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181381f00;
      FUN_181382840(puVar35,puVar2 + lVar42);
      *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181381f0b;
      FUN_181382840(puVar2,puVar35);
      puVar19 = local_8028;
      iVar28 = local_8058[1];
      fVar44 = DAT_1824c4748;
      dVar16 = DAT_1824c4238;
      dVar15 = DAT_1824c41f0;
      dVar14 = DAT_1824c41d8;
      dVar13 = DAT_1824c4140;
      dVar12 = DAT_1824c4098;
      dVar3 = DAT_1824c3f80;
      puVar35 = puVar35 + 0xe0;
      lVar32 = lVar32 + -1;
    } while (lVar32 != 0);
    local_8058[0] = local_8058[0] + 4;
    local_8048 = local_8048 + 0xa8;
    pfVar25 = local_8038 + 0x1c0;
    lVar40 = lVar40 + 8;
    lVar42 = lVar42 + -0x700;
    local_8040 = local_8040 + 0xa8;
    lVar31 = lVar31 + 0x700;
    local_8050 = pfVar22 + 1;
    pfVar43 = pfVar43 + 4;
    local_8038 = pfVar25;
    puVar38 = puVar38 + -0x10;
    puVar41 = puVar41 + 0xe0;
    lVar37 = lVar37 + -0x700;
  } while (local_8058[0] < 0x46);
  uVar21 = (ulonglong)local_8058[1];
  local_8008 = (double)param_2;
  local_8058[0] = 0;
  local_8040 = (undefined8 *)0x0;
  dVar48 = DAT_1824c4050;
  do {
    puVar41 = local_8040;
    iVar39 = local_8058[0];
    *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181381ffb;
    plVar24 = malloc(0x40);
    *(longlong **)((longlong)local_8010 + (longlong)puVar41 * 8) = plVar24;
    dVar52 = (double)iVar39 * dVar48;
    local_8048 = plVar24;
    local_7ff8 = dVar52;
    *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x18138202d;
    dVar47 = exp((dVar52 + dVar16) * dVar12);
    dVar47 = dVar47 / local_8008;
    *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181382037;
    dVar47 = floor(dVar47);
    *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181382054;
    fVar45 = logf((float)(int)dVar47 * param_2 + DAT_1824c3ea4);
    *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181382071;
    fVar45 = ceilf((fVar45 * _DAT_1824c3f5c - _DAT_1824c4378) * DAT_1824c41e0);
    *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x18138208a;
    fVar46 = logf((float)((int)dVar47 + 1) * param_2);
    *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x1813820a7;
    fVar46 = floorf((fVar46 * _DAT_1824c3f5c - _DAT_1824c4378) * DAT_1824c41e0);
    local_8018 = 8;
    iVar20 = (int)fVar46;
    iVar30 = (int)fVar45;
    if (iVar39 < (int)fVar45) {
      iVar30 = iVar39;
    }
    local_8050 = (float *)0x0;
    if (iVar30 < 0) {
      iVar30 = 0;
    }
    local_8038 = (float *)CONCAT44(local_8038._4_4_,iVar30);
    local_7fd8 = (float *)(longlong)iVar30;
    if (0x10 < iVar20) {
      iVar20 = 0x10;
    }
    local_8028 = (undefined4 *)(longlong)iVar20;
    local_8000 = 0;
    local_7ff0 = 0;
    local_7fe0 = 0;
    do {
      pfVar43 = local_7fd8;
      puVar34 = local_8028;
      pfVar25 = local_8050;
      *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x18138211b;
      local_7fe8 = malloc(0xe8);
      *(float **)(local_8000 + (longlong)plVar24) = local_7fe8;
      if (0 < iVar28) {
        puVar33 = puVar19;
        for (uVar27 = uVar21 & 0x3fffffffffffffff; pfVar25 = local_8050, uVar27 != 0;
            uVar27 = uVar27 - 1) {
          *puVar33 = 0x4479c000;
          puVar33 = puVar33 + 1;
        }
      }
      local_8058[1] = (int)local_8038;
      local_8030 = pfVar43;
      if ((longlong)pfVar43 <= (longlong)puVar34) {
        local_8020 = local_77e8 + (longlong)pfVar43 * 0x1c0;
        do {
          iVar39 = 0;
          pfVar25 = (float *)((longlong)pfVar25 + (longlong)local_8020);
          dVar52 = (double)local_8058[1];
          iVar30 = iVar39;
          do {
            dVar51 = (double)iVar39 * dVar3 + dVar52 * dVar48;
            *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x1813821b9;
            dVar47 = exp(((dVar51 - dVar15) + dVar16) * dVar12);
            iVar20 = (int)(dVar47 / (double)param_2);
            *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x1813821e0;
            dVar47 = exp(((dVar51 - dVar14) + dVar16) * dVar12);
            if (iVar20 < 0) {
              iVar20 = 0;
            }
            if (iVar28 < iVar20) {
              iVar20 = iVar28;
            }
            if (iVar20 < iVar30) {
              iVar30 = iVar20;
            }
            iVar20 = (int)(dVar47 / (double)param_2 + dVar13);
            if (iVar20 < 0) {
              iVar20 = 0;
            }
            if (iVar28 < iVar20) {
              iVar20 = iVar28;
            }
            if (iVar30 < iVar20) {
              lVar31 = (longlong)iVar30;
              do {
                if ((longlong)uVar21 <= lVar31) break;
                if (*pfVar25 < (float)puVar19[lVar31]) {
                  puVar19[lVar31] = *pfVar25;
                }
                iVar30 = iVar30 + 1;
                lVar31 = lVar31 + 1;
              } while (lVar31 < iVar20);
            }
            iVar39 = iVar39 + 1;
            pfVar25 = pfVar25 + 1;
          } while (iVar39 < 0x38);
          lVar31 = (longlong)iVar30;
          if (lVar31 < (longlong)uVar21) {
            fVar45 = *(float *)((longlong)(local_8050 + 0x37) + (longlong)local_8020);
            do {
              if (fVar45 < (float)puVar19[lVar31]) {
                puVar19[lVar31] = fVar45;
              }
              lVar31 = lVar31 + 1;
            } while (lVar31 < (longlong)uVar21);
          }
          local_8058[1] = local_8058[1] + 1;
          local_8030 = (float *)((longlong)local_8030 + 1);
          local_8020 = local_8020 + 0x1c0;
          pfVar25 = local_8050;
          plVar24 = local_8048;
          dVar48 = DAT_1824c4050;
          dVar52 = local_7ff8;
        } while ((longlong)local_8030 <= (longlong)local_8028);
      }
      iVar30 = 0;
      if (local_8058[0] + 1 < 0x11) {
        pfVar25 = (float *)((longlong)local_77e8 +
                           (longlong)(pfVar25 + ((longlong)local_8040 + 1) * 0x1c0));
        local_8030 = pfVar25;
        iVar39 = iVar30;
        do {
          dVar47 = (double)iVar30 * dVar3 + dVar52;
          *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181382329;
          dVar48 = exp(((dVar47 - dVar15) + dVar16) * dVar12);
          iVar20 = (int)(dVar48 / (double)param_2);
          *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181382350;
          dVar48 = exp(((dVar47 - dVar14) + dVar16) * dVar12);
          if (iVar20 < 0) {
            iVar20 = 0;
          }
          if (iVar28 < iVar20) {
            iVar20 = iVar28;
          }
          if (iVar20 < iVar39) {
            iVar39 = iVar20;
          }
          iVar20 = (int)(dVar48 / (double)param_2 + dVar13);
          if (iVar20 < 0) {
            iVar20 = 0;
          }
          if (iVar28 < iVar20) {
            iVar20 = iVar28;
          }
          if (iVar39 < iVar20) {
            lVar31 = (longlong)iVar39;
            do {
              if ((longlong)uVar21 <= lVar31) break;
              if (*pfVar25 < (float)puVar19[lVar31]) {
                puVar19[lVar31] = *pfVar25;
              }
              iVar39 = iVar39 + 1;
              lVar31 = lVar31 + 1;
            } while (lVar31 < iVar20);
          }
          iVar30 = iVar30 + 1;
          pfVar25 = pfVar25 + 1;
        } while (iVar30 < 0x38);
        lVar31 = (longlong)iVar39;
        plVar24 = local_8048;
        if (lVar31 < (longlong)uVar21) {
          fVar45 = local_8030[0x37];
          do {
            if (fVar45 < (float)puVar19[lVar31]) {
              puVar19[lVar31] = fVar45;
            }
            lVar31 = lVar31 + 1;
          } while (lVar31 < (longlong)uVar21);
        }
      }
      iVar30 = 0;
      puVar34 = (undefined4 *)(*plVar24 + 8);
      do {
        *(undefined8 *)((longlong)auStack_8080 + lVar4) = 0x181382437;
        dVar48 = exp(((((double)iVar30 * dVar3 + dVar52) - DAT_1824c41e8) + dVar16) * dVar12);
        iVar39 = (int)(dVar48 / (double)param_2);
        if (iVar39 < 0) {
          *puVar34 = 0xc479c000;
        }
        else if (iVar39 < iVar28) {
          *puVar34 = puVar19[iVar39];
        }
        else {
          *puVar34 = 0xc479c000;
        }
        iVar30 = iVar30 + 1;
        puVar34 = puVar34 + 1;
      } while (iVar30 < 0x38);
      iVar30 = 0;
      lVar31 = 0;
      pfVar25 = (float *)(*(longlong *)(local_7ff0 + (longlong)plVar24) + 8);
      do {
        if (fVar44 < *pfVar25) break;
        iVar30 = iVar30 + 1;
        lVar31 = lVar31 + 1;
        pfVar25 = pfVar25 + 1;
      } while (lVar31 < 0x10);
      iVar39 = 0x37;
      lVar31 = 0x37;
      pfVar25 = (float *)(*(longlong *)(local_7fe0 + (longlong)plVar24) + 0xe4);
      *local_7fe8 = (float)iVar30;
      dVar48 = DAT_1824c4050;
      do {
        if (fVar44 < *pfVar25) break;
        iVar39 = iVar39 + -1;
        lVar31 = lVar31 + -1;
        pfVar25 = pfVar25 + -1;
      } while (0x11 < lVar31);
      plVar24 = plVar24 + 1;
      local_7fe8[1] = (float)iVar39;
      local_8050 = local_8050 + 0x38;
      local_8018 = local_8018 + -1;
      local_8048 = plVar24;
    } while (local_8018 != 0);
    local_8058[0] = local_8058[0] + 1;
    local_8040 = (undefined8 *)((longlong)local_8040 + 1);
    local_8018 = 0;
    if (0x10 < local_8058[0]) {
      *(undefined **)((longlong)auStack_8080 + lVar4) = &UNK_18138254a;
    }
  } while( true );
}



############ FUN_ 18137ac10 size=103 ############

void FUN_18137ac10(void *param_1)

{
  if (*(void **)((longlong)param_1 + 0x18) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)((longlong)param_1 + 0x18));
  }
  if (*(void **)((longlong)param_1 + 0x20) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)((longlong)param_1 + 0x20));
  }
  if (*(void **)((longlong)param_1 + 0x28) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)((longlong)param_1 + 0x28));
  }
  if (*(void **)((longlong)param_1 + 0x30) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)((longlong)param_1 + 0x30));
  }
  if (*(void **)((longlong)param_1 + 0x38) != (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    free(*(void **)((longlong)param_1 + 0x38));
  }
  memset(param_1,0,0x58);
  return;
}



############ FUN_ 18138e520 size=906 ############

uint * FUN_18138e520(int *param_1)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  uint *puVar4;
  void *pvVar5;
  uint uVar6;
  uint uVar7;
  ulonglong uVar8;
  uint uVar9;
  int iVar10;
  ulonglong uVar11;
  int iVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  int iVar15;
  
  puVar4 = calloc(1,0x38);
  puVar4[0xc] = 1;
  iVar1 = FUN_181392960(param_1,0x18);
  if (iVar1 == 0x564342) {
    uVar2 = FUN_181392960(param_1,0x10);
    *puVar4 = uVar2;
    uVar2 = FUN_181392960(param_1,0x18);
    puVar4[1] = uVar2;
    if (uVar2 != 0xffffffff) {
      uVar11 = 0;
      uVar7 = 0;
      uVar9 = uVar7;
      uVar13 = uVar11;
      for (uVar6 = *puVar4; uVar14 = uVar11, uVar6 != 0; uVar6 = uVar6 >> 1) {
        uVar9 = (int)uVar13 + 1;
        uVar13 = (ulonglong)uVar9;
      }
      for (; uVar2 != 0; uVar2 = uVar2 >> 1) {
        uVar7 = (int)uVar14 + 1;
        uVar14 = (ulonglong)uVar7;
      }
      if ((int)(uVar7 + uVar9) < 0x19) {
        iVar1 = FUN_181392960(param_1,1);
        iVar12 = 0;
        if (iVar1 == 0) {
          iVar10 = FUN_181392960(param_1,1);
          iVar1 = 5;
          if (iVar10 != 0) {
            iVar1 = 1;
          }
          if ((param_1[6] - ((int)(param_1[1] + 7 + (param_1[1] + 7 >> 0x1f & 7U)) >> 3)) - *param_1
              < (int)(iVar1 * puVar4[1] + 7) >> 3) goto LAB_18138e883;
          pvVar5 = malloc((longlong)(int)puVar4[1] << 2);
          *(void **)(puVar4 + 2) = pvVar5;
          if (iVar10 == 0) {
            uVar13 = uVar11;
            uVar14 = uVar11;
            if (0 < (int)puVar4[1]) {
              do {
                iVar1 = FUN_181392960(param_1,5);
                if (iVar1 == -1) goto LAB_18138e883;
                uVar2 = (int)uVar13 + 1;
                *(int *)(uVar14 + *(longlong *)(puVar4 + 2)) = iVar1 + 1;
                uVar13 = (ulonglong)uVar2;
                uVar14 = uVar14 + 4;
              } while ((int)uVar2 < (int)puVar4[1]);
            }
          }
          else {
            uVar13 = uVar11;
            uVar14 = uVar11;
            if (0 < (int)puVar4[1]) {
              do {
                iVar1 = FUN_181392960(param_1,1);
                if (iVar1 == 0) {
                  *(undefined4 *)(uVar14 + *(longlong *)(puVar4 + 2)) = 0;
                }
                else {
                  iVar1 = FUN_181392960(param_1,5);
                  if (iVar1 == -1) goto LAB_18138e883;
                  *(int *)(uVar14 + *(longlong *)(puVar4 + 2)) = iVar1 + 1;
                }
                uVar2 = (int)uVar13 + 1;
                uVar13 = (ulonglong)uVar2;
                uVar14 = uVar14 + 4;
              } while ((int)uVar2 < (int)puVar4[1]);
            }
          }
        }
        else {
          if (iVar1 != 1) goto LAB_18138e883;
          iVar1 = FUN_181392960(param_1,5);
          iVar10 = iVar1 + 1;
          if (iVar10 == 0) goto LAB_18138e883;
          pvVar5 = malloc((longlong)(int)puVar4[1] << 2);
          *(void **)(puVar4 + 2) = pvVar5;
          uVar13 = uVar11;
          uVar14 = uVar11;
          if (0 < (int)puVar4[1]) {
            do {
              iVar15 = (int)uVar14;
              uVar8 = uVar11;
              for (uVar2 = puVar4[1] - iVar15; uVar2 != 0; uVar2 = uVar2 >> 1) {
                uVar8 = (ulonglong)((int)uVar8 + 1);
              }
              uVar2 = FUN_181392960(param_1,uVar8);
              uVar8 = (ulonglong)uVar2;
              if (((uVar2 == 0xffffffff) || (0x1f < iVar1)) ||
                 ((int)(puVar4[1] - iVar15) < (int)uVar2)) goto LAB_18138e883;
              if (0 < (int)uVar2) {
                if (1 < (int)(uVar2 - 1) >> ((byte)iVar1 & 0x1f)) goto LAB_18138e883;
                if (0 < (int)uVar2) {
                  uVar14 = (ulonglong)(iVar15 + uVar2);
                  do {
                    *(int *)(*(longlong *)(puVar4 + 2) + uVar13 * 4) = iVar10;
                    uVar13 = uVar13 + 1;
                    uVar8 = uVar8 - 1;
                  } while (uVar8 != 0);
                }
              }
              iVar10 = iVar10 + 1;
              iVar1 = iVar1 + 1;
            } while ((int)uVar14 < (int)puVar4[1]);
          }
        }
        uVar2 = FUN_181392960(param_1,4);
        puVar4[4] = uVar2;
        if (uVar2 == 0) {
          return puVar4;
        }
        if (uVar2 == 1 || uVar2 == 2) {
          uVar2 = FUN_181392960(param_1,0x20);
          puVar4[5] = uVar2;
          uVar2 = FUN_181392960(param_1,0x20);
          puVar4[6] = uVar2;
          iVar1 = FUN_181392960(param_1,4);
          puVar4[7] = iVar1 + 1;
          uVar2 = FUN_181392960(param_1,1);
          puVar4[8] = uVar2;
          if (uVar2 != 0xffffffff) {
            if (puVar4[4] == 1) {
              if (*puVar4 != 0) {
                iVar12 = FUN_18137af80(puVar4);
              }
            }
            else if (puVar4[4] == 2) {
              iVar12 = *puVar4 * puVar4[1];
            }
            if ((int)(puVar4[7] * iVar12 + 7) >> 3 <=
                (param_1[6] - ((int)(param_1[1] + 7 + (param_1[1] + 7 >> 0x1f & 7U)) >> 3)) -
                *param_1) {
              pvVar5 = malloc((longlong)iVar12 * 4);
              *(void **)(puVar4 + 10) = pvVar5;
              if (0 < iVar12) {
                do {
                  uVar3 = FUN_181392960(param_1,puVar4[7]);
                  *(undefined4 *)(*(longlong *)(puVar4 + 10) + uVar11 * 4) = uVar3;
                  uVar11 = uVar11 + 1;
                } while ((longlong)uVar11 < (longlong)iVar12);
              }
              if (iVar12 == 0) {
                return puVar4;
              }
              if (*(int *)(*(longlong *)(puVar4 + 10) + (longlong)(iVar12 + -1) * 4) != -1) {
                return puVar4;
              }
            }
          }
        }
      }
    }
  }
LAB_18138e883:
  FUN_18137ac80(puVar4);
  return (uint *)0x0;
}



############ FUN_ 1805218e0 size=921 ############

void FUN_1805218e0(longlong *param_1,longlong *param_2,longlong *param_3,longlong param_4,
                  longlong param_5,undefined8 param_6,longlong param_7,undefined1 param_8)

{
  int iVar1;
  int iVar2;
  longlong *plVar3;
  longlong *plVar4;
  longlong *plVar5;
  longlong lVar6;
  longlong lVar7;
  int iVar8;
  longlong lVar9;
  bool bVar10;
  bool bVar11;
  
  if (param_2 == param_3) {
    return;
  }
  do {
    if (param_1 == param_2) {
      return;
    }
    lVar7 = *param_2;
    lVar6 = *param_1;
    plVar3 = *(longlong **)(lVar7 + 0x90);
    plVar4 = plVar3 + (longlong)*(int *)(lVar7 + 0x9c) * 3;
    for (; plVar3 != plVar4; plVar3 = plVar3 + 3) {
      if (*plVar3 == DAT_182673c28) {
        plVar3 = plVar3 + 1;
        if (plVar3 != (longlong *)0x0) goto LAB_180521966;
        break;
      }
    }
    plVar3 = (longlong *)FUN_181244160();
LAB_180521966:
    iVar1 = (**(code **)(*(longlong *)*plVar3 + 8))((longlong *)*plVar3,plVar3 + 1);
    plVar3 = *(longlong **)(lVar6 + 0x90);
    iVar8 = 0x3fffffff;
    if (0 < iVar1) {
      iVar8 = iVar1;
    }
    plVar4 = plVar3 + (longlong)*(int *)(lVar6 + 0x9c) * 3;
    for (; plVar3 != plVar4; plVar3 = plVar3 + 3) {
      if (*plVar3 == DAT_182673c28) {
        plVar3 = plVar3 + 1;
        if (plVar3 != (longlong *)0x0) goto LAB_1805219be;
        break;
      }
    }
    plVar3 = (longlong *)FUN_181244160();
LAB_1805219be:
    iVar2 = (**(code **)(*(longlong *)*plVar3 + 8))((longlong *)*plVar3,plVar3 + 1);
    iVar1 = 0x3fffffff;
    if (0 < iVar2) {
      iVar1 = iVar2;
    }
    bVar11 = SBORROW4(iVar8,iVar1);
    bVar10 = iVar8 - iVar1 < 0;
    if (iVar8 == iVar1) {
      iVar1 = *(int *)(lVar7 + 0x24);
      iVar8 = *(int *)(lVar6 + 0x24);
      bVar11 = SBORROW4(iVar1,iVar8);
      bVar10 = iVar1 - iVar8 < 0;
      if (iVar1 == iVar8) {
        bVar11 = SBORROW4(*(int *)(lVar7 + 0x20),*(int *)(lVar6 + 0x20));
        bVar10 = *(int *)(lVar7 + 0x20) - *(int *)(lVar6 + 0x20) < 0;
      }
    }
    if (bVar11 != bVar10) {
      do {
        plVar3 = param_3;
        lVar7 = param_5;
        param_3 = plVar3 + -1;
        if (param_2 == param_3) {
          lVar7 = *param_2;
          memmove((void *)((longlong)param_3 + (8 - ((longlong)param_2 - (longlong)param_1))),
                  param_1,(longlong)param_2 - (longlong)param_1);
          *param_1 = lVar7;
          return;
        }
        lVar6 = *param_3;
        lVar9 = param_2[-1];
        plVar4 = *(longlong **)(lVar6 + 0x90);
        plVar5 = plVar4 + (longlong)*(int *)(lVar6 + 0x9c) * 3;
        for (; plVar4 != plVar5; plVar4 = plVar4 + 3) {
          if (*plVar4 == DAT_182673c28) {
            plVar4 = plVar4 + 1;
            if (plVar4 != (longlong *)0x0) goto LAB_180521a7e;
            break;
          }
        }
        plVar4 = (longlong *)FUN_181244160();
LAB_180521a7e:
        iVar1 = (**(code **)(*(longlong *)*plVar4 + 8))((longlong *)*plVar4,plVar4 + 1);
        plVar4 = *(longlong **)(lVar9 + 0x90);
        iVar8 = 0x3fffffff;
        if (0 < iVar1) {
          iVar8 = iVar1;
        }
        plVar5 = plVar4 + (longlong)*(int *)(lVar9 + 0x9c) * 3;
        for (; plVar4 != plVar5; plVar4 = plVar4 + 3) {
          if (*plVar4 == DAT_182673c28) {
            plVar4 = plVar4 + 1;
            if (plVar4 != (longlong *)0x0) goto LAB_180521ad6;
            break;
          }
        }
        plVar4 = (longlong *)FUN_181244160();
LAB_180521ad6:
        iVar2 = (**(code **)(*(longlong *)*plVar4 + 8))((longlong *)*plVar4,plVar4 + 1);
        iVar1 = 0x3fffffff;
        if (0 < iVar2) {
          iVar1 = iVar2;
        }
        bVar11 = SBORROW4(iVar8,iVar1);
        bVar10 = iVar8 - iVar1 < 0;
        if (iVar8 == iVar1) {
          iVar1 = *(int *)(lVar6 + 0x24);
          iVar8 = *(int *)(lVar9 + 0x24);
          bVar11 = SBORROW4(iVar1,iVar8);
          bVar10 = iVar1 - iVar8 < 0;
          if (iVar1 == iVar8) {
            bVar11 = SBORROW4(*(int *)(lVar6 + 0x20),*(int *)(lVar9 + 0x20));
            bVar10 = *(int *)(lVar6 + 0x20) - *(int *)(lVar9 + 0x20) < 0;
          }
        }
        param_5 = lVar7 + -1;
        if (bVar11 != bVar10) {
          if (param_4 == 1) {
            lVar7 = *param_1;
            memmove(param_1,param_2,(longlong)plVar3 - (longlong)param_2);
            *(longlong *)(((longlong)plVar3 - (longlong)param_2) + (longlong)param_1) = lVar7;
          }
          else if ((lVar7 < param_4) || (param_7 < param_4)) {
            if (param_7 < lVar7) {
              if (lVar7 < param_4) {
                lVar6 = lVar7 >> 1;
                plVar5 = param_2 + lVar6;
                plVar4 = (longlong *)FUN_180525480(param_1,param_2,plVar5);
                lVar9 = (longlong)plVar4 - (longlong)param_1 >> 3;
              }
              else {
                lVar9 = param_4 >> 1;
                plVar4 = param_1 + lVar9;
                plVar5 = (longlong *)FUN_180525120(param_2,plVar3,plVar4);
                lVar6 = (longlong)plVar5 - (longlong)param_2 >> 3;
              }
              FUN_180525290(param_1,param_2,plVar3,param_4,lVar7,param_6,param_7,param_8,plVar4,
                            plVar5,lVar9,lVar6);
            }
            else {
              FUN_180524270(param_1,param_2,plVar3,param_6);
            }
          }
          else {
            FUN_1805240c0(param_1,param_2,plVar3,param_6);
          }
          return;
        }
      } while( true );
    }
    param_4 = param_4 + -1;
    param_1 = param_1 + 1;
  } while( true );
}



############ FUN_ 1805217c0 size=286 ############

void FUN_1805217c0(void *param_1,longlong param_2,longlong param_3,void *param_4,undefined1 param_5)

{
  void *_Src;
  longlong lVar1;
  void *_Dst;
  void *pvVar2;
  longlong lVar3;
  longlong lVar4;
  
  FUN_180523060();
  pvVar2 = param_1;
  lVar4 = param_3;
  _Dst = param_4;
  if (0x20 < param_3) {
    do {
      lVar3 = lVar4 + -0x20;
      lVar1 = 0x20;
      if (lVar3 < 0x20) {
        lVar1 = lVar3;
      }
      _Src = (void *)((longlong)pvVar2 + 0x100 + lVar1 * 8);
      _Dst = (void *)FUN_180523f40(pvVar2,(longlong)pvVar2 + 0x100,_Src,_Dst);
      pvVar2 = _Src;
      lVar4 = lVar3 - lVar1;
    } while (0x20 < lVar3 - lVar1);
    memmove(_Dst,_Src,param_2 - (longlong)_Src);
    pvVar2 = (void *)((longlong)param_4 + param_3 * 8);
    FUN_180523430(param_4,pvVar2,param_1,0x40,param_3,param_5);
    lVar4 = 0x80;
    if (0x80 < param_3) {
      do {
        FUN_180523430(param_1,param_2,param_4,lVar4,param_3,param_5);
        FUN_180523430(param_4,pvVar2,param_1,lVar4 * 2,param_3,param_5);
        lVar4 = lVar4 * 4;
      } while (lVar4 < param_3);
    }
  }
  return;
}



############ FUN_ 181244160 size=122 ############

undefined8 * FUN_181244160(void)

{
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267af7c) {
    _Init_thread_header(&DAT_18267af7c);
    if (DAT_18267af7c == -1) {
      DAT_18267af40 = &PTR_vftable_18262b558;
      atexit((_func_5014 *)&LAB_181a4a6e0);
      _Init_thread_footer(&DAT_18267af7c);
      return &DAT_18267af40;
    }
  }
  return &DAT_18267af40;
}



############ FUN_ 181298d20 size=1148 ############

undefined8
FUN_181298d20(float param_1,float param_2,float param_3,float param_4,float param_5,float param_6,
             float param_7,float param_8,float *param_9,float *param_10,float *param_11)

{
  bool bVar1;
  bool bVar2;
  bool bVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  float fVar7;
  float fVar8;
  
  fVar4 = DAT_1824c3ea4;
  if ((param_3 == param_5) && (param_4 == param_6)) {
    *param_9 = param_3;
    *param_10 = param_4;
    *param_11 = 0.0;
    return 1;
  }
  fVar5 = param_4 - param_2;
  param_8 = param_8 - param_6;
  param_7 = param_7 - param_5;
  fVar6 = param_3 - param_1;
  fVar8 = param_8 * fVar6 - param_7 * fVar5;
  if (fVar8 != 0.0) {
    fVar7 = ((param_2 - param_6) * param_7 - (param_1 - param_5) * param_8) / fVar8;
    *param_9 = fVar7 * fVar6 + param_1;
    *param_10 = fVar7 * fVar5 + param_2;
    fVar4 = DAT_1824c3ea4;
    if ((((0.0 <= fVar7) && (fVar7 <= DAT_1824c3ea4)) &&
        (fVar8 = ((param_2 - param_6) * fVar6 - (param_1 - param_5) * fVar5) / fVar8, 0.0 <= fVar8))
       && (fVar8 <= DAT_1824c3ea4)) {
      *param_11 = 0.0;
      return 1;
    }
    fVar6 = (fVar5 * fVar5 + fVar6 * fVar6) * (fVar7 - DAT_1824c3ea4) * (fVar7 - DAT_1824c3ea4);
    *param_11 = fVar6;
    if (fVar4 <= fVar7) {
      return 0;
    }
    *param_11 = (float)((uint)fVar6 ^ DAT_1824c4f30);
    return 0;
  }
  if (((fVar6 == 0.0) && (fVar5 == 0.0)) || ((param_7 == 0.0 && (param_8 == 0.0))))
  goto LAB_18129905b;
  if (fVar5 == 0.0) {
    if (param_8 != 0.0) {
      fVar6 = (param_2 - param_6) / param_8;
      param_5 = fVar6 * param_7 + param_5;
      *param_9 = param_5;
      fVar4 = param_5 - param_3;
      bVar1 = param_5 < param_3;
      bVar3 = param_3 == param_1;
      bVar2 = param_3 < param_1;
      *param_10 = param_2;
      goto LAB_181298f76;
    }
LAB_181298e86:
    if (fVar5 != 0.0) {
      fVar5 = (param_6 - param_2) / fVar5;
      *param_9 = fVar5 * fVar6 + param_1;
      *param_10 = param_6;
      fVar6 = (fVar5 - fVar4) * fVar6;
      fVar6 = fVar6 * fVar6;
      *param_11 = fVar6;
      if (fVar5 < fVar4) {
        *param_11 = (float)((uint)fVar6 ^ DAT_1824c4f30);
      }
      if (fVar5 < 0.0) {
        return 0;
      }
      if (fVar4 < fVar5) {
        return 0;
      }
      return 1;
    }
  }
  else if (param_8 == 0.0) goto LAB_181298e86;
  if (fVar6 == 0.0) {
    if (param_7 != 0.0) {
      *param_9 = param_1;
      fVar6 = (param_1 - param_5) / param_7;
      param_6 = fVar6 * param_8 + param_6;
      *param_10 = param_6;
      fVar4 = param_6 - param_4;
      bVar1 = param_6 < param_4;
      bVar3 = param_4 == param_2;
      bVar2 = param_4 < param_2;
LAB_181298f76:
      *param_11 = fVar4 * fVar4;
      if ((!bVar2 && !bVar3) == bVar1) {
        *param_11 = (float)((uint)(fVar4 * fVar4) ^ DAT_1824c4f30);
      }
      if (0.0 <= fVar6) {
        if (fVar6 <= DAT_1824c3ea4) {
          return 1;
        }
        return 0;
      }
      return 0;
    }
  }
  else if (param_7 != 0.0) goto LAB_18129905b;
  if (fVar6 != 0.0) {
    *param_9 = param_5;
    fVar4 = DAT_1824c3ea4;
    fVar6 = (param_5 - param_1) / fVar6;
    fVar8 = (fVar6 - DAT_1824c3ea4) * fVar5;
    *param_10 = fVar6 * fVar5 + param_2;
    fVar8 = fVar8 * fVar8;
    *param_11 = fVar8;
    if (fVar6 < fVar4) {
      *param_11 = (float)((uint)fVar8 ^ DAT_1824c4f30);
    }
    if ((0.0 <= fVar6) && (fVar6 <= fVar4)) {
      return 1;
    }
    return 0;
  }
LAB_18129905b:
  fVar4 = (param_4 + param_6) * DAT_1824c3d8c;
  *param_9 = (param_3 + param_5) * DAT_1824c3d8c;
  *param_10 = fVar4;
  *param_11 = 0.0;
  return 0;
}



############ FUN_ 18051aa90 size=330 ############

ulonglong FUN_18051aa90(longlong *param_1,ulonglong *param_2)

{
  int iVar1;
  longlong lVar2;
  ulonglong uVar3;
  bool bVar4;
  uint uVar5;
  uint uVar6;
  void *pvVar7;
  ulonglong *puVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  
  uVar9 = *(uint *)((longlong)param_1 + 0xc);
  uVar10 = 0;
  if (0 < (int)uVar9) {
    lVar2 = *param_1;
    iVar1 = (int)*param_2;
    uVar11 = uVar9;
    do {
      if (iVar1 == *(int *)(lVar2 + (longlong)(int)uVar10 * 8)) {
        uVar3 = *param_2;
        *(ulonglong *)(lVar2 + (longlong)(int)uVar10 * 8) = uVar3;
        return uVar3 & 0xffffffffffffff00;
      }
      uVar6 = (int)(uVar11 + uVar10) / 2;
      bVar4 = *(int *)(lVar2 + (longlong)(int)uVar6 * 8) <= iVar1;
      if (uVar6 == uVar10) {
        if (bVar4) {
          uVar10 = uVar10 + 1;
        }
        break;
      }
      uVar5 = uVar6;
      if (!bVar4) {
        uVar5 = uVar10;
        uVar11 = uVar6;
      }
      uVar10 = uVar5;
    } while ((int)uVar10 < (int)uVar11);
  }
  if ((int)*(uint *)(param_1 + 1) < (int)(uVar9 + 1)) {
    uVar9 = uVar9 + 9 + (int)(uVar9 + 1) / 2 & 0xfffffff8;
    if (*(uint *)(param_1 + 1) != uVar9) {
      pvVar7 = (void *)*param_1;
      if ((int)uVar9 < 1) {
                    /* WARNING: Subroutine does not return */
        free(pvVar7);
      }
      if (pvVar7 == (void *)0x0) {
        pvVar7 = malloc((longlong)(int)uVar9 * 8);
        *param_1 = (longlong)pvVar7;
      }
      else {
        pvVar7 = realloc(pvVar7,(longlong)(int)uVar9 * 8);
        *param_1 = (longlong)pvVar7;
      }
    }
    *(uint *)(param_1 + 1) = uVar9;
  }
  uVar9 = *(uint *)((longlong)param_1 + 0xc);
  if (uVar10 < uVar9) {
    pvVar7 = (void *)(*param_1 + (longlong)(int)uVar10 * 8);
    memmove((void *)((longlong)pvVar7 + 8),pvVar7,(longlong)(int)(uVar9 - uVar10) << 3);
    puVar8 = (ulonglong *)(*param_1 + (longlong)(int)uVar10 * 8);
  }
  else {
    puVar8 = (ulonglong *)(*param_1 + (longlong)(int)uVar9 * 8);
  }
  uVar3 = *param_2;
  *puVar8 = uVar3;
  *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + 1;
  return CONCAT71((int7)(uVar3 >> 8),1);
}



############ FUN_ 1812a2c30 size=200 ############

uint * FUN_1812a2c30(uint *param_1,uint *param_2,uint param_3)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  
  bVar1 = *(byte *)((longlong)param_1 + 3);
  if (bVar1 == 0) {
    *param_2 = param_3;
    return param_2;
  }
  iVar5 = 0xff - (param_3 >> 0x18);
  iVar6 = 0xff - ((int)((0xff - (uint)bVar1) * iVar5) >> 8);
  if (iVar6 < 1) {
    *param_2 = *param_1;
    return param_2;
  }
  bVar2 = *(byte *)((longlong)param_1 + 1);
  bVar3 = *(byte *)((longlong)param_1 + 2);
  iVar5 = (int)(iVar5 * (uint)bVar1) / iVar6;
  uVar4 = *param_1;
  *(char *)((longlong)param_2 + 3) = (char)iVar6;
  *(char *)param_2 = (char)(((uint)(byte)uVar4 - (param_3 & 0xff)) * iVar5 >> 8) + (char)param_3;
  *(char *)((longlong)param_2 + 1) =
       (char)(((uint)bVar2 - (param_3 >> 8 & 0xff)) * iVar5 >> 8) + (char)(param_3 >> 8);
  *(char *)((longlong)param_2 + 2) =
       (char)(((uint)bVar3 - (param_3 >> 0x10 & 0xff)) * iVar5 >> 8) + (char)(param_3 >> 0x10);
  return param_2;
}



############ FUN_ 181232e20 size=115 ############

void FUN_181232e20(longlong *param_1,void *param_2,int param_3)

{
  size_t _Size;
  longlong lVar1;
  void *_Dst;
  
  param_3 = param_3 - (int)param_2;
  if (0 < param_3) {
    lVar1 = -1;
    do {
      lVar1 = lVar1 + 1;
    } while (*(char *)(*param_1 + lVar1) != '\0');
    _Size = (size_t)param_3;
    FUN_1812342b0(param_1,_Size + lVar1);
    _Dst = (void *)((longlong)(int)lVar1 + *param_1);
    memcpy(_Dst,param_2,_Size);
    *(undefined1 *)(_Size + (longlong)_Dst) = 0;
  }
  return;
}



############ FUN_ 18050cf50 size=320 ############

undefined8 * FUN_18050cf50(undefined8 *param_1,longlong param_2,undefined4 *param_3)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  
  param_1[1] = &DAT_1821dbf98;
  param_1[2] = &DAT_1821dbf98;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  *(undefined4 *)(param_1 + 0x15) = 0;
  *(undefined1 *)((longlong)param_1 + 0xac) = 0;
  *param_1 = juce::DropShadower::ShadowWindow::vftable;
  FUN_1804de690();
  uVar1 = param_3[1];
  uVar2 = param_3[2];
  uVar3 = param_3[3];
  *(undefined4 *)(param_1 + 0x17) = *param_3;
  *(undefined4 *)((longlong)param_1 + 0xbc) = uVar1;
  *(undefined4 *)(param_1 + 0x18) = uVar2;
  *(undefined4 *)((longlong)param_1 + 0xc4) = uVar3;
  .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(param_1,1);
  *(byte *)(param_1 + 0x15) = *(byte *)(param_1 + 0x15) & 0xef | 8;
  if ((*(byte *)(param_2 + 0xa8) & 1) == 0) {
    if (*(longlong *)(param_2 + 0x18) != 0) {
      FUN_181343cc0(*(longlong *)(param_2 + 0x18),param_1,0xffffffff);
    }
  }
  else {
    FUN_18134bfe0(param_1,*(undefined4 *)(param_1 + 4),*(undefined4 *)((longlong)param_1 + 0x24),1,1
                 );
    .?AV?$DigitalFilter@M$0BA@$01@@::vtbl___AV__DigitalFilter_M_0BA__01__(param_1,0x406,0);
  }
  return param_1;
}



############ FUN_ 180485fc0 size=80 ############

undefined8 FUN_180485fc0(longlong *param_1,undefined8 param_2)

{
  int iVar1;
  
  iVar1 = *(int *)((longlong)param_1 + 0xc) + 1;
  if ((int)param_1[1] < iVar1) {
    FUN_18047cb30(param_1,*(int *)((longlong)param_1 + 0xc) + 9 + iVar1 / 2 & 0xfffffff8);
  }
  iVar1 = *(int *)((longlong)param_1 + 0xc);
  *(int *)((longlong)param_1 + 0xc) = iVar1 + 1;
  *(undefined8 *)(*param_1 + (longlong)iVar1 * 8) = param_2;
  return param_2;
}



############ FUN_ 181344e50 size=263 ############

void FUN_181344e50(longlong param_1,longlong param_2)

{
  longlong *plVar1;
  int iVar2;
  longlong *plVar3;
  longlong *plVar4;
  longlong lVar5;
  longlong lVar6;
  int iVar7;
  longlong lVar8;
  
  if ((param_2 != 0) && (param_2 != param_1)) {
    lVar5 = *(longlong *)(param_1 + 0x18);
    if (lVar5 == 0) {
      if (((*(byte *)(param_1 + 0xa8) & 1) != 0) && ((*(byte *)(param_2 + 0xa8) & 1) != 0)) {
        plVar4 = (longlong *)FUN_18134c2e0();
        lVar5 = FUN_18134c2e0(param_2);
        if ((plVar4 != (longlong *)0x0) && (lVar5 != 0)) {
          (**(code **)(*plVar4 + 0xb8))(plVar4,lVar5);
        }
      }
    }
    else {
      plVar1 = *(longlong **)(lVar5 + 0x40);
      plVar4 = plVar1 + (int)*(uint *)(lVar5 + 0x4c);
      plVar3 = plVar1;
      if (plVar1 != plVar4) {
        while (param_1 != *plVar3) {
          plVar3 = plVar3 + 1;
          if (plVar3 == plVar4) {
            return;
          }
        }
        lVar8 = (longlong)plVar3 - (longlong)plVar1 >> 3;
        iVar7 = (int)lVar8;
        if (-1 < iVar7) {
          if (iVar7 + 1U < *(uint *)(lVar5 + 0x4c)) {
            lVar6 = plVar1[(int)(iVar7 + 1U)];
          }
          else {
            lVar6 = 0;
          }
          if ((lVar6 != param_2) && (plVar3 = plVar1, plVar1 != plVar4)) {
            while (param_2 != *plVar3) {
              plVar3 = plVar3 + 1;
              if (plVar3 == plVar4) {
                return;
              }
            }
            iVar2 = (int)((longlong)plVar3 - (longlong)plVar1 >> 3);
            if (-1 < iVar2) {
              if (iVar7 < iVar2) {
                iVar2 = iVar2 + -1;
              }
              FUN_1813450b0(lVar5,lVar8,iVar2);
              return;
            }
          }
        }
      }
    }
  }
  return;
}



############ FUN_ 18134b0f0 size=313 ############

void FUN_18134b0f0(longlong *param_1,byte param_2,undefined8 param_3,undefined8 param_4)

{
  int *piVar1;
  int iVar2;
  undefined8 *puVar3;
  char cVar4;
  longlong *plVar5;
  longlong lVar6;
  longlong lVar7;
  undefined8 *local_res8;
  
  if (param_2 == (*(byte *)((longlong)param_1 + 0xa9) & 1)) {
    return;
  }
  FUN_1804de690(&local_res8,param_1,param_3,param_4,0xfffffffffffffffe);
  *(byte *)((longlong)param_1 + 0xa9) = *(byte *)((longlong)param_1 + 0xa9) & 0xfe;
  *(byte *)((longlong)param_1 + 0xa9) = *(byte *)((longlong)param_1 + 0xa9) | param_2 & 1;
  if ((*(byte *)(param_1 + 0x15) & 1) != 0) {
    if ((*(byte *)(param_1 + 0x15) & 1) == 0) {
      if (param_1[3] == 0) goto LAB_18134b1a7;
      plVar5 = (longlong *)FUN_18134c2e0();
    }
    else {
      plVar5 = (longlong *)FUN_1812d2bd0(param_1);
    }
    if ((plVar5 != (longlong *)0x0) &&
       (cVar4 = (**(code **)(*plVar5 + 0xa8))(plVar5,param_2), cVar4 == '\0')) {
      lVar7 = plVar5[2];
      FUN_18134c310(param_1);
      (**(code **)(*param_1 + 0x68))(param_1,(int)lVar7,0);
    }
  }
LAB_18134b1a7:
  puVar3 = local_res8;
  lVar7 = 0;
  if (param_2 != 0) {
    lVar6 = lVar7;
    if (local_res8 != (undefined8 *)0x0) {
      lVar6 = local_res8[2];
    }
    if (lVar6 != 0) {
      FUN_181344f60(param_1,0);
    }
  }
  if (puVar3 != (undefined8 *)0x0) {
    lVar7 = puVar3[2];
  }
  if (lVar7 != 0) {
    FUN_181343670(param_1);
  }
  if (puVar3 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar3 + 1);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 1) {
      (**(code **)*local_res8)(local_res8,1);
    }
  }
  return;
}



############ FUN_ 181a5314e size=54 ############

/* WARNING: Removing unreachable block (ram,0x000181a53154) */

undefined8 FUN_181a5314e(void)

{
  longlong lVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  uint in_XCR0;
  
  lVar1 = cpuid_Version_info(1);
  uVar3 = 0;
  if ((*(uint *)(lVar1 + 0xc) & 0x8000000) == 0x8000000) {
    uVar2 = xinuse(0);
    uVar3 = 0;
    if ((in_XCR0 & (uint)uVar2 & 0xe0) == 0xe0) {
      uVar3 = 1;
    }
  }
  return uVar3;
}



############ FUN_ 181a5311e size=48 ############

/* WARNING: Removing unreachable block (ram,0x000181a53124) */

undefined8 FUN_181a5311e(void)

{
  longlong lVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  uint in_XCR0;
  
  lVar1 = cpuid_Version_info(1);
  uVar3 = 0;
  if ((*(uint *)(lVar1 + 0xc) & 0x18000000) == 0x18000000) {
    uVar2 = xinuse(0);
    uVar3 = 0;
    if ((in_XCR0 & (uint)uVar2 & 6) == 6) {
      uVar3 = 1;
    }
  }
  return uVar3;
}



############ FUN_ 1805a1f80 size=130 ############

undefined8 * FUN_1805a1f80(undefined8 *param_1,longlong param_2)

{
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::io::bad_format_string::vftable;
  param_1[3] = *(undefined8 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  *(undefined4 *)(param_1 + 9) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::io::bad_format_string>::vftable;
  param_1[5] = boost::exception_detail::error_info_injector<boost::io::bad_format_string>::vftable;
  return param_1;
}



############ FUN_ 1805a1bf0 size=174 ############

undefined8 *
FUN_1805a1bf0(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[10] = &DAT_181baff38;
  param_1[0xc] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805a4470();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::io::bad_format_string>_>
             ::vftable;
  param_1[5] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::io::bad_format_string>_>
               ::vftable;
  *(undefined ***)((longlong)*(int *)(param_1[10] + 4) + 0x50 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::io::bad_format_string>_>::
       vftable;
  *(int *)((longlong)*(int *)(param_1[10] + 4) + 0x4c + (longlong)param_1) =
       *(int *)(param_1[10] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x28;
  }
  FUN_1805a7b20(param_1 + 5,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805a1150 size=450 ############

undefined8 *
FUN_1805a1150(undefined8 *param_1,ulonglong param_2,undefined8 param_3,size_t param_4,
             longlong param_5,void *param_6,size_t param_7)

{
  longlong lVar1;
  ulonglong uVar2;
  void *_Src;
  longlong lVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  void *pvVar7;
  
  lVar1 = param_1[2];
  if (0x7fffffffffffffffU - lVar1 < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a6980();
  }
  uVar2 = param_1[3];
  uVar4 = lVar1 + param_2 | 0xf;
  uVar6 = 0x7fffffffffffffff;
  if (((uVar4 < 0x8000000000000000) && (uVar2 <= 0x7fffffffffffffff - (uVar2 >> 1))) &&
     (uVar5 = (uVar2 >> 1) + uVar2, uVar6 = uVar4, uVar4 < uVar5)) {
    uVar6 = uVar5;
  }
  uVar4 = uVar6 + 1;
  if (uVar4 < 0x1000) {
    if (uVar4 == 0) {
      pvVar7 = (void *)0x0;
    }
    else {
      pvVar7 = (void *)FUN_1811316e0(uVar4);
    }
  }
  else {
    uVar5 = uVar6 + 0x28;
    if (uVar5 <= uVar4) {
      uVar5 = 0xffffffffffffffff;
    }
    lVar3 = FUN_1811316e0(uVar5);
    if (lVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
    pvVar7 = (void *)(lVar3 + 0x27U & 0xffffffffffffffe0);
    *(longlong *)((longlong)pvVar7 - 8) = lVar3;
  }
  param_1[2] = lVar1 + param_2;
  param_1[3] = uVar6;
  if (uVar2 < 0x10) {
    memcpy(pvVar7,param_1,param_4);
    memcpy((void *)((longlong)pvVar7 + param_4),param_6,param_7);
    memcpy((void *)((longlong)((longlong)pvVar7 + param_4) + param_7),
           (void *)(param_5 + param_4 + (longlong)param_1),((lVar1 - param_4) - param_5) + 1);
    *param_1 = pvVar7;
    return param_1;
  }
  _Src = (void *)*param_1;
  memcpy(pvVar7,_Src,param_4);
  memcpy((void *)((longlong)pvVar7 + param_4),param_6,param_7);
  memcpy((void *)((longlong)((longlong)pvVar7 + param_4) + param_7),
         (void *)((longlong)_Src + param_5 + param_4),((lVar1 - param_4) - param_5) + 1);
  pvVar7 = _Src;
  if ((0xfff < uVar2 + 1) &&
     (pvVar7 = *(void **)((longlong)_Src + -8),
     0x1f < (ulonglong)((longlong)_Src + (-8 - (longlong)pvVar7)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar7);
}



############ FUN_ 1805a6e10 size=445 ############

void FUN_1805a6e10(longlong *param_1,ulonglong param_2,undefined8 param_3)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  
  lVar1 = param_1[1];
  lVar4 = *param_1;
  lVar2 = (lVar1 - lVar4) / 0x12 + (lVar1 - lVar4 >> 0x3f);
  lVar3 = (param_1[2] - lVar4) / 0x12 + (param_1[2] - lVar4 >> 0x3f);
  uVar5 = (lVar2 >> 3) - (lVar2 >> 0x3f);
  uVar6 = (lVar3 >> 3) - (lVar3 >> 0x3f);
  if (uVar6 < param_2) {
    if (0x1c71c71c71c71c7 < param_2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar5 = param_2;
    if ((uVar6 <= 0x1c71c71c71c71c7 - (uVar6 >> 1)) &&
       (uVar5 = (uVar6 >> 1) + uVar6, uVar5 < param_2)) {
      uVar5 = param_2;
    }
    if (lVar4 != 0) {
      for (; lVar4 != lVar1; lVar4 = lVar4 + 0x90) {
        FUN_1805a5290(lVar4);
      }
      FUN_1805a7c80(param_1,*param_1,uVar6);
    }
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    if (uVar5 != 0) {
      if (0x1c71c71c71c71c7 < uVar5) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69c0();
      }
      lVar1 = FUN_1805a6a00(param_1,uVar5);
      *param_1 = lVar1;
      param_1[1] = lVar1;
      param_1[2] = uVar5 * 0x90 + *param_1;
    }
    lVar1 = FUN_1805a6910(param_1,*param_1,param_2,param_3);
    param_1[1] = lVar1;
  }
  else if (uVar5 < param_2) {
    FUN_1805a0fd0(lVar4,lVar1,param_3,0);
    lVar1 = FUN_1805a6910(param_1,param_1[1],param_2 - uVar5,param_3);
    param_1[1] = lVar1;
  }
  else {
    lVar2 = param_2 * 0x90 + lVar4;
    FUN_1805a0fd0(lVar4,lVar2,param_3,0);
    lVar1 = param_1[1];
    for (lVar4 = lVar2; lVar4 != lVar1; lVar4 = lVar4 + 0x90) {
      FUN_1805a5290(lVar4);
    }
    param_1[1] = lVar2;
  }
  return;
}



############ FUN_ 1805aa0f0 size=674 ############

void FUN_1805aa0f0(longlong *param_1,ulonglong param_2,char param_3)

{
  bool bVar1;
  uint uVar2;
  uint uVar3;
  longlong lVar4;
  ulonglong uVar5;
  longlong lVar6;
  uint *puVar7;
  uint *local_48;
  ulonglong uStack_40;
  uint *local_38;
  ulonglong uStack_30;
  undefined1 local_28 [16];
  
  uVar5 = param_1[3];
  if (uVar5 < param_2) {
    if (((longlong)uVar5 < 0) && (uVar5 != 0)) {
      lVar4 = (-uVar5 - 1 >> 5) * -4 + -4;
    }
    else {
      lVar4 = (uVar5 >> 5) * 4;
    }
    local_48 = (uint *)(*param_1 + lVar4);
    lVar4 = param_2 - uVar5;
    uVar2 = (uint)uVar5 & 0x1f;
    uStack_40 = (ulonglong)uVar2;
    local_38 = local_48;
    uStack_30 = (ulonglong)uVar2;
    uVar5 = FUN_1805a66d0(param_1,&local_38,lVar4);
    if (((longlong)uVar5 < 0) && (uVar5 != 0)) {
      lVar6 = (-uVar5 - 1 >> 5) * -4 + -4;
    }
    else {
      lVar6 = (uVar5 >> 5) * 4;
    }
    local_48 = (uint *)(*param_1 + lVar6);
    uVar2 = (uint)uVar5 & 0x1f;
    uVar5 = (ulonglong)uVar2;
    if ((lVar4 < 0) && (uVar5 < (ulonglong)-lVar4)) {
      lVar6 = (-(uVar5 + lVar4) - 1 >> 5) * -4 + -4;
    }
    else {
      lVar6 = (uVar5 + lVar4 >> 5) * 4;
    }
    puVar7 = (uint *)((longlong)local_48 + lVar6);
    while( true ) {
      if ((local_48 == puVar7) && (uVar5 == (uVar2 + (int)lVar4 & 0x1f))) {
        bVar1 = true;
      }
      else {
        bVar1 = false;
      }
      if (bVar1) break;
      if (param_3 == '\0') {
        uVar3 = *local_48 & ~(1 << ((uint)uVar5 & 0x1f));
      }
      else {
        uVar3 = *local_48 | 1 << ((uint)uVar5 & 0x1f);
      }
      *local_48 = uVar3;
      if (uVar5 < 0x1f) {
        uVar5 = uVar5 + 1;
      }
      else {
        uVar5 = 0;
        local_48 = local_48 + 1;
      }
    }
  }
  else if (param_2 < uVar5) {
    if (((longlong)uVar5 < 0) && (uVar5 != 0)) {
      lVar4 = (-uVar5 - 1 >> 5) * -4 + -4;
    }
    else {
      lVar4 = (uVar5 >> 5) * 4;
    }
    local_48 = (uint *)(*param_1 + lVar4);
    if (((longlong)param_2 < 0) && (param_2 != 0)) {
      lVar4 = (-param_2 - 1 >> 5) * -4 + -4;
    }
    else {
      lVar4 = (param_2 >> 5) * 4;
    }
    local_38 = (uint *)(*param_1 + lVar4);
    uStack_40 = (ulonglong)((uint)uVar5 & 0x1f);
    uStack_30 = (ulonglong)((uint)param_2 & 0x1f);
    FUN_1805a7d00(param_1,local_28,&local_38,&local_48);
  }
  return;
}



############ FUN_ 1805a6a00 size=116 ############

void FUN_1805a6a00(undefined8 param_1,ulonglong param_2)

{
  ulonglong uVar1;
  longlong lVar2;
  ulonglong uVar3;
  
  uVar1 = param_2 * 0x90;
  if (param_2 < 0x1c71c71c71c71c8) {
    if (uVar1 < 0x1000) {
      if (uVar1 != 0) {
        FUN_1811316e0(uVar1);
        return;
      }
      return;
    }
  }
  else {
    uVar1 = 0xffffffffffffffff;
  }
  uVar3 = uVar1 + 0x27;
  if (uVar3 <= uVar1) {
    uVar3 = 0xffffffffffffffff;
  }
  lVar2 = FUN_1811316e0(uVar3);
  if (lVar2 != 0) {
    *(longlong *)((lVar2 + 0x27U & 0xffffffffffffffe0) - 8) = lVar2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  _invalid_parameter_noinfo_noreturn();
}



############ FUN_ 1805a6910 size=112 ############

longlong FUN_1805a6910(undefined8 param_1,longlong param_2,longlong param_3,undefined8 param_4)

{
  for (; param_3 != 0; param_3 = param_3 + -1) {
    FUN_1805a47f0(param_2,param_4);
    param_2 = param_2 + 0x90;
  }
  return param_2;
}



############ FUN_ 1805a47f0 size=196 ############

undefined4 *
FUN_1805a47f0(undefined4 *param_1,undefined4 *param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  
  *param_1 = *param_2;
  FUN_1805a4070(param_1 + 2,param_2 + 2,param_3,param_4,0xfffffffffffffffe);
  FUN_1805a4070(param_1 + 10,param_2 + 10);
  *(undefined8 *)(param_1 + 0x12) = *(undefined8 *)(param_2 + 0x12);
  *(undefined8 *)(param_1 + 0x14) = *(undefined8 *)(param_2 + 0x14);
  *(undefined1 *)(param_1 + 0x16) = *(undefined1 *)(param_2 + 0x16);
  param_1[0x17] = param_2[0x17];
  param_1[0x18] = param_2[0x18];
  param_1[0x19] = param_2[0x19];
  *(undefined1 *)(param_1 + 0x1a) = 0;
  if (*(char *)(param_2 + 0x1a) != '\0') {
    plVar1 = *(longlong **)(param_2 + 0x1e);
    *(longlong **)(param_1 + 0x1e) = plVar1;
    (**(code **)(*plVar1 + 8))();
    *(undefined1 *)(param_1 + 0x1a) = 1;
  }
  *(undefined8 *)(param_1 + 0x20) = *(undefined8 *)(param_2 + 0x20);
  param_1[0x22] = param_2[0x22];
  return param_1;
}



############ FUN_ 181131014 size=56 ############

/* Library Function - Single Match
    void __cdecl std::_Facet_Register(class std::_Facet_base * __ptr64)
   
   Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release, Visual Studio 2019 Release */

void __cdecl std::_Facet_Register(_Facet_base *param_1)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_1811316e0(0x10);
  if (puVar1 != (undefined8 *)0x0) {
    *puVar1 = DAT_1826729f8;
    puVar1[1] = param_1;
  }
  DAT_1826729f8 = puVar1;
  return;
}



############ FUN_ 1805a49a0 size=31 ############

undefined8 * FUN_1805a49a0(undefined8 *param_1)

{
  param_1[2] = 0;
  param_1[1] = "bad cast";
  *param_1 = std::bad_cast::vftable;
  return param_1;
}



############ FUN_ 1805a1e20 size=174 ############

undefined8 *
FUN_1805a1e20(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[10] = &DAT_181bb0060;
  param_1[0xc] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805a4670();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::io::too_few_args>_>::
             vftable;
  param_1[5] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::io::too_few_args>_>::
               vftable;
  *(undefined ***)((longlong)*(int *)(param_1[10] + 4) + 0x50 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::io::too_few_args>_>::vftable;
  *(int *)((longlong)*(int *)(param_1[10] + 4) + 0x4c + (longlong)param_1) =
       *(int *)(param_1[10] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x28;
  }
  FUN_1805a7b20(param_1 + 5,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805a20b0 size=130 ############

undefined8 * FUN_1805a20b0(undefined8 *param_1,longlong param_2)

{
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::io::too_few_args::vftable;
  param_1[3] = *(undefined8 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  *(undefined4 *)(param_1 + 9) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::io::too_few_args>::vftable;
  param_1[5] = boost::exception_detail::error_info_injector<boost::io::too_few_args>::vftable;
  return param_1;
}



############ FUN_ 180573870 size=79 ############

void FUN_180573870(undefined8 param_1,void *param_2)

{
  uint uVar1;
  uint *_Memory;
  
  if (*(longlong *)((longlong)param_2 + 0x28) != 0) {
    FUN_18056e160();
  }
  _Memory = (uint *)(*(longlong *)((longlong)param_2 + 0x20) + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
                    /* WARNING: Subroutine does not return */
  free(param_2);
}



############ FUN_ 18047e230 size=85 ############

void FUN_18047e230(longlong *param_1,longlong param_2)

{
  longlong *plVar1;
  longlong *plVar2;
  
  plVar1 = *(longlong **)(param_2 + 0x10);
  *(longlong *)(param_2 + 0x10) = *plVar1;
  if (*(char *)(*plVar1 + 0x19) == '\0') {
    *(longlong *)(*plVar1 + 8) = param_2;
  }
  plVar1[1] = *(longlong *)(param_2 + 8);
  if (param_2 == *(longlong *)(*param_1 + 8)) {
    *(longlong **)(*param_1 + 8) = plVar1;
    *plVar1 = param_2;
    *(longlong **)(param_2 + 8) = plVar1;
    return;
  }
  plVar2 = *(longlong **)(param_2 + 8);
  if (param_2 == *plVar2) {
    *plVar2 = (longlong)plVar1;
    *plVar1 = param_2;
    *(longlong **)(param_2 + 8) = plVar1;
    return;
  }
  plVar2[2] = (longlong)plVar1;
  *plVar1 = param_2;
  *(longlong **)(param_2 + 8) = plVar1;
  return;
}



############ FUN_ 18047e1d0 size=89 ############

void FUN_18047e1d0(longlong *param_1,longlong *param_2)

{
  longlong lVar1;
  longlong *plVar2;
  
  lVar1 = *param_2;
  *param_2 = *(longlong *)(lVar1 + 0x10);
  if (*(char *)(*(longlong *)(lVar1 + 0x10) + 0x19) == '\0') {
    *(longlong **)(*(longlong *)(lVar1 + 0x10) + 8) = param_2;
  }
  *(longlong *)(lVar1 + 8) = param_2[1];
  if (param_2 == *(longlong **)(*param_1 + 8)) {
    *(longlong *)(*param_1 + 8) = lVar1;
    *(longlong **)(lVar1 + 0x10) = param_2;
    param_2[1] = lVar1;
    return;
  }
  plVar2 = (longlong *)param_2[1];
  if (param_2 == (longlong *)plVar2[2]) {
    plVar2[2] = lVar1;
    *(longlong **)(lVar1 + 0x10) = param_2;
    param_2[1] = lVar1;
    return;
  }
  *plVar2 = lVar1;
  *(longlong **)(lVar1 + 0x10) = param_2;
  param_2[1] = lVar1;
  return;
}



############ FUN_ 180572980 size=556 ############

undefined8 *
FUN_180572980(longlong *param_1,undefined8 *param_2,longlong *param_3,ulonglong *param_4,
             undefined8 param_5)

{
  char cVar1;
  longlong *plVar2;
  ulonglong uVar3;
  longlong *plVar4;
  longlong *plVar5;
  undefined8 *puVar6;
  longlong *plVar7;
  longlong *plVar8;
  undefined1 local_20 [24];
  
  if (param_1[1] == 0) {
    FUN_1805739c0(param_1,param_2,1,*param_1);
  }
  else {
    plVar2 = (longlong *)*param_1;
    if (param_3 == (longlong *)*plVar2) {
      if (*param_4 < (ulonglong)param_3[4]) {
        FUN_1805739c0(param_1,param_2,1,param_3);
        return param_2;
      }
    }
    else if (param_3 == plVar2) {
      if (*(ulonglong *)(plVar2[2] + 0x20) < *param_4) {
        FUN_1805739c0(param_1,param_2,0);
        return param_2;
      }
    }
    else {
      uVar3 = *param_4;
      if (uVar3 < (ulonglong)param_3[4]) {
        if (*(char *)((longlong)param_3 + 0x19) == '\0') {
          plVar7 = (longlong *)*param_3;
          if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
            cVar1 = *(char *)(plVar7[2] + 0x19);
            plVar8 = (longlong *)plVar7[2];
            while (cVar1 == '\0') {
              cVar1 = *(char *)(plVar8[2] + 0x19);
              plVar7 = plVar8;
              plVar8 = (longlong *)plVar8[2];
            }
          }
          else {
            cVar1 = *(char *)(param_3[1] + 0x19);
            plVar8 = (longlong *)param_3[1];
            plVar7 = param_3;
            while ((plVar4 = plVar8, cVar1 == '\0' && (plVar7 == (longlong *)*plVar4))) {
              cVar1 = *(char *)(plVar4[1] + 0x19);
              plVar8 = (longlong *)plVar4[1];
              plVar7 = plVar4;
            }
            if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
              plVar7 = plVar4;
            }
          }
        }
        else {
          plVar7 = (longlong *)param_3[2];
        }
        if ((ulonglong)plVar7[4] < uVar3) {
          if (*(char *)(plVar7[2] + 0x19) != '\0') {
            FUN_1805739c0(param_1,param_2,0);
            return param_2;
          }
          FUN_1805739c0(param_1,param_2,1,param_3);
          return param_2;
        }
      }
      if ((ulonglong)param_3[4] < uVar3) {
        plVar7 = (longlong *)param_3[2];
        if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
          cVar1 = *(char *)(*plVar7 + 0x19);
          plVar8 = plVar7;
          plVar4 = (longlong *)*plVar7;
          while (cVar1 == '\0') {
            cVar1 = *(char *)(*plVar4 + 0x19);
            plVar8 = plVar4;
            plVar4 = (longlong *)*plVar4;
          }
        }
        else {
          cVar1 = *(char *)(param_3[1] + 0x19);
          plVar5 = (longlong *)param_3[1];
          plVar4 = param_3;
          while ((plVar8 = plVar5, cVar1 == '\0' && (plVar4 == (longlong *)plVar8[2]))) {
            cVar1 = *(char *)(plVar8[1] + 0x19);
            plVar5 = (longlong *)plVar8[1];
            plVar4 = plVar8;
          }
        }
        if ((plVar8 == plVar2) || (uVar3 < (ulonglong)plVar8[4])) {
          if (*(char *)((longlong)plVar7 + 0x19) != '\0') {
            FUN_1805739c0(param_1,param_2,0,param_3);
            return param_2;
          }
          FUN_1805739c0(param_1,param_2,1);
          return param_2;
        }
      }
    }
    puVar6 = (undefined8 *)FUN_180573bf0(param_1,local_20,param_3,param_4,param_5);
    *param_2 = *puVar6;
  }
  return param_2;
}



############ FUN_ 180572920 size=96 ############

longlong FUN_180572920(undefined8 param_1,undefined8 param_2,undefined8 *param_3)

{
  longlong lVar1;
  undefined8 uVar2;
  
  lVar1 = FUN_180490cd0();
  *(undefined2 *)(lVar1 + 0x18) = 0;
  *(undefined8 *)(lVar1 + 0x20) = *(undefined8 *)*param_3;
  *(undefined8 *)(lVar1 + 0x28) = 0;
  *(undefined8 *)(lVar1 + 0x30) = 0;
  uVar2 = FUN_180489cf0();
  *(undefined8 *)(lVar1 + 0x28) = uVar2;
  return lVar1;
}



############ FUN_ 180572bb0 size=42 ############

void FUN_180572bb0(undefined8 param_1,undefined8 param_2,undefined8 *param_3)

{
  longlong lVar1;
  
  lVar1 = FUN_180573760();
  *(undefined2 *)(lVar1 + 0x18) = 0;
  *(undefined4 *)(lVar1 + 0x20) = *(undefined4 *)*param_3;
  *(undefined8 *)(lVar1 + 0x60) = 0;
  return;
}



############ FUN_ 180572be0 size=556 ############

undefined8 *
FUN_180572be0(longlong *param_1,undefined8 *param_2,longlong *param_3,int *param_4,
             undefined8 param_5)

{
  char cVar1;
  int iVar2;
  longlong *plVar3;
  longlong *plVar4;
  longlong *plVar5;
  undefined8 *puVar6;
  longlong *plVar7;
  longlong *plVar8;
  undefined1 local_20 [24];
  
  if (param_1[1] == 0) {
    FUN_180573d30(param_1,param_2,1,*param_1);
  }
  else {
    plVar3 = (longlong *)*param_1;
    if (param_3 == (longlong *)*plVar3) {
      if (*param_4 < (int)param_3[4]) {
        FUN_180573d30(param_1,param_2,1,param_3);
        return param_2;
      }
    }
    else if (param_3 == plVar3) {
      if (*(int *)(plVar3[2] + 0x20) < *param_4) {
        FUN_180573d30(param_1,param_2,0);
        return param_2;
      }
    }
    else {
      iVar2 = *param_4;
      if (iVar2 < (int)param_3[4]) {
        if (*(char *)((longlong)param_3 + 0x19) == '\0') {
          plVar7 = (longlong *)*param_3;
          if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
            cVar1 = *(char *)(plVar7[2] + 0x19);
            plVar8 = (longlong *)plVar7[2];
            while (cVar1 == '\0') {
              cVar1 = *(char *)(plVar8[2] + 0x19);
              plVar7 = plVar8;
              plVar8 = (longlong *)plVar8[2];
            }
          }
          else {
            cVar1 = *(char *)(param_3[1] + 0x19);
            plVar8 = (longlong *)param_3[1];
            plVar7 = param_3;
            while ((plVar4 = plVar8, cVar1 == '\0' && (plVar7 == (longlong *)*plVar4))) {
              cVar1 = *(char *)(plVar4[1] + 0x19);
              plVar8 = (longlong *)plVar4[1];
              plVar7 = plVar4;
            }
            if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
              plVar7 = plVar4;
            }
          }
        }
        else {
          plVar7 = (longlong *)param_3[2];
        }
        if ((int)plVar7[4] < iVar2) {
          if (*(char *)(plVar7[2] + 0x19) != '\0') {
            FUN_180573d30(param_1,param_2,0);
            return param_2;
          }
          FUN_180573d30(param_1,param_2,1,param_3);
          return param_2;
        }
      }
      if ((int)param_3[4] < iVar2) {
        plVar7 = (longlong *)param_3[2];
        if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
          cVar1 = *(char *)(*plVar7 + 0x19);
          plVar8 = plVar7;
          plVar4 = (longlong *)*plVar7;
          while (cVar1 == '\0') {
            cVar1 = *(char *)(*plVar4 + 0x19);
            plVar8 = plVar4;
            plVar4 = (longlong *)*plVar4;
          }
        }
        else {
          cVar1 = *(char *)(param_3[1] + 0x19);
          plVar5 = (longlong *)param_3[1];
          plVar4 = param_3;
          while ((plVar8 = plVar5, cVar1 == '\0' && (plVar4 == (longlong *)plVar8[2]))) {
            cVar1 = *(char *)(plVar8[1] + 0x19);
            plVar5 = (longlong *)plVar8[1];
            plVar4 = plVar8;
          }
        }
        if ((plVar8 == plVar3) || (iVar2 < (int)plVar8[4])) {
          if (*(char *)((longlong)plVar7 + 0x19) != '\0') {
            FUN_180573d30(param_1,param_2,0,param_3);
            return param_2;
          }
          FUN_180573d30(param_1,param_2,1);
          return param_2;
        }
      }
    }
    puVar6 = (undefined8 *)FUN_180573f60(param_1,local_20,param_3,param_4,param_5);
    *param_2 = *puVar6;
  }
  return param_2;
}



############ FUN_ 180573840 size=36 ############

void FUN_180573840(undefined8 param_1,void *param_2)

{
  FUN_18056d800((longlong)param_2 + 0x20);
                    /* WARNING: Subroutine does not return */
  free(param_2);
}



############ FUN_ 18056d800 size=139 ############

void FUN_18056d800(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  void *_Memory;
  
  lVar1 = *(longlong *)(param_1 + 8);
  _Memory = *(void **)(lVar1 + 8);
  if (*(char *)((longlong)_Memory + 0x19) == '\0') {
    FUN_18056b2f0(param_1 + 8,*(undefined8 *)((longlong)_Memory + 0x10),param_3,param_4,
                  0xfffffffffffffffe);
                    /* WARNING: Subroutine does not return */
    free(_Memory);
  }
  *(longlong *)(*(longlong *)(param_1 + 8) + 8) = lVar1;
  **(longlong **)(param_1 + 8) = lVar1;
  *(longlong *)(*(longlong *)(param_1 + 8) + 0x10) = lVar1;
  *(undefined8 *)(param_1 + 0x10) = 0;
                    /* WARNING: Subroutine does not return */
  free(*(void **)(param_1 + 8));
}



############ FUN_ 1804ac500 size=255 ############

void FUN_1804ac500(longlong param_1,int param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  int iVar2;
  undefined8 *puVar3;
  int iVar4;
  
  iVar4 = *(int *)(param_1 + 0x14) + param_2;
  plVar1 = (longlong *)(param_1 + 8);
  if (*(int *)(param_1 + 0x10) < iVar4) {
    FUN_18047cb30(plVar1,iVar4 + 8 + iVar4 / 2 & 0xfffffff8,iVar4,param_4,0xfffffffffffffffe);
  }
  while (param_2 = param_2 + -1, -1 < param_2) {
    puVar3 = (undefined8 *)FUN_1811316e0(0x30);
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[3] = 0;
    puVar3[4] = 0;
    puVar3[5] = 0;
    *(undefined4 *)(puVar3 + 1) = 0;
    *puVar3 = juce::RenderingHelpers::
              CachedGlyphEdgeTable<juce::RenderingHelpers::SoftwareRendererSavedState>::vftable;
    FUN_181252d20(puVar3 + 2);
    puVar3[3] = 0;
    puVar3[4] = 0;
    *(undefined1 *)(puVar3 + 5) = 0;
    iVar2 = *(int *)(param_1 + 0x14);
    iVar4 = iVar2 + 1;
    if (*(int *)(param_1 + 0x10) < iVar4) {
      if (iVar4 < 0) {
        iVar4 = iVar2 + 2;
      }
      FUN_18047cb30(plVar1,iVar2 + 9 + (iVar4 >> 1) & 0xfffffff8);
    }
    iVar4 = *(int *)(param_1 + 0x14);
    *(int *)(param_1 + 0x14) = iVar4 + 1;
    *(undefined8 **)(*plVar1 + (longlong)iVar4 * 8) = puVar3;
    LOCK();
    *(int *)(puVar3 + 1) = *(int *)(puVar3 + 1) + 1;
    UNLOCK();
  }
  return;
}



############ FUN_ 180488f10 size=176 ############

void FUN_180488f10(longlong *param_1)

{
  int *piVar1;
  void *_Dst;
  int iVar2;
  undefined8 *puVar3;
  int iVar4;
  longlong lVar5;
  longlong lVar6;
  
  iVar4 = *(int *)((longlong)param_1 + 0xc) + -1;
  if (-1 < iVar4) {
    lVar5 = (longlong)iVar4 * 8;
    lVar6 = lVar5;
    do {
      puVar3 = *(undefined8 **)(lVar5 + *param_1);
      _Dst = (void *)(lVar6 + *param_1);
      memmove(_Dst,(void *)((longlong)_Dst + 8),
              (longlong)((*(int *)((longlong)param_1 + 0xc) - iVar4) + -1) << 3);
      *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
      if (puVar3 != (undefined8 *)0x0) {
        LOCK();
        piVar1 = (int *)(puVar3 + 1);
        iVar2 = *piVar1;
        *piVar1 = *piVar1 + -1;
        UNLOCK();
        if (iVar2 == 1) {
          (**(code **)*puVar3)(puVar3,1);
        }
      }
      lVar6 = lVar6 + -8;
      lVar5 = lVar5 + -8;
      iVar4 = iVar4 + -1;
    } while (-1 < iVar4);
  }
  return;
}



############ FUN_ 18049ba20 size=109 ############

void FUN_18049ba20(undefined8 *param_1,int param_2)

{
  void *pvVar1;
  
  if (*(int *)(param_1 + 1) == param_2) {
    *(int *)(param_1 + 1) = param_2;
    return;
  }
  pvVar1 = (void *)*param_1;
  if (0 < param_2) {
    if (pvVar1 == (void *)0x0) {
      pvVar1 = malloc((longlong)param_2 << 4);
      *param_1 = pvVar1;
      *(int *)(param_1 + 1) = param_2;
      return;
    }
    pvVar1 = realloc(pvVar1,(longlong)param_2 << 4);
    *param_1 = pvVar1;
    *(int *)(param_1 + 1) = param_2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar1);
}



############ FUN_ 1804ab9f0 size=368 ############

/* WARNING: Removing unreachable block (ram,0x0001804aba3d) */
/* WARNING: Removing unreachable block (ram,0x0001804aba61) */
/* WARNING: Removing unreachable block (ram,0x0001804aba80) */
/* WARNING: Removing unreachable block (ram,0x0001804abac0) */
/* WARNING: Removing unreachable block (ram,0x0001804abacf) */

ulonglong FUN_1804ab9f0(longlong *param_1,undefined8 param_2,longlong *param_3,uint param_4)

{
  uint *puVar1;
  longlong lVar2;
  ulonglong uVar3;
  int iVar4;
  longlong *plVar5;
  ulonglong uVar6;
  
  uVar6 = (ulonglong)param_4;
  iVar4 = *(int *)((longlong)param_1 + 0xc) + param_4;
  if ((int)param_1[1] < iVar4) {
    FUN_1804abbc0(param_1,iVar4 + 8 + iVar4 / 2 & 0xfffffff8);
  }
  uVar3 = (ulonglong)*(int *)((longlong)param_1 + 0xc);
  plVar5 = (longlong *)(uVar3 * 0x20 + *param_1);
  if (0 < (int)param_4) {
    do {
      lVar2 = *param_3;
      *plVar5 = lVar2;
      if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
        LOCK();
        *(int *)(lVar2 + -0x10) = *(int *)(lVar2 + -0x10) + 1;
        UNLOCK();
      }
      lVar2 = param_3[1];
      plVar5[1] = lVar2;
      if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
        LOCK();
        *(int *)(lVar2 + -0x10) = *(int *)(lVar2 + -0x10) + 1;
        UNLOCK();
      }
      uVar3 = param_3[2];
      plVar5[2] = uVar3;
      lVar2 = param_3[3];
      plVar5[3] = lVar2;
      if (lVar2 != 0) {
        LOCK();
        puVar1 = (uint *)(lVar2 + 8);
        uVar3 = (ulonglong)*puVar1;
        *puVar1 = *puVar1 + 1;
        UNLOCK();
      }
      uVar6 = uVar6 - 1;
      plVar5 = plVar5 + 4;
    } while (uVar6 != 0);
  }
  *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + param_4;
  return uVar3;
}



############ FUN_ 1804abb60 size=86 ############

void FUN_1804abb60(longlong *param_1)

{
  int iVar1;
  
  iVar1 = 0;
  if (*(int *)((longlong)param_1 + 0xc) < 1) {
    *(undefined4 *)((longlong)param_1 + 0xc) = 0;
    return;
  }
  do {
    FUN_1804a2b00((longlong)iVar1 * 0x20 + *param_1);
    iVar1 = iVar1 + 1;
  } while (iVar1 < *(int *)((longlong)param_1 + 0xc));
  *(undefined4 *)((longlong)param_1 + 0xc) = 0;
  return;
}



############ FUN_ 18122bfb0 size=373 ############

void FUN_18122bfb0(longlong *param_1)

{
  int iVar1;
  longlong lVar2;
  int iVar3;
  longlong *plVar4;
  uint *_Memory;
  uint uVar5;
  longlong lVar6;
  uint uVar7;
  longlong *plVar8;
  ulonglong uVar9;
  longlong lVar10;
  
  EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 2));
  uVar7 = *(int *)((longlong)param_1 + 0xc) - 1;
  if (-1 < (int)uVar7) {
    lVar6 = (longlong)(int)uVar7 * 8;
    lVar10 = lVar6;
    do {
      if ((*(int *)(*(longlong *)(*param_1 + lVar6) + -0x10) == 0) &&
         (uVar7 < *(uint *)((longlong)param_1 + 0xc))) {
        plVar4 = (longlong *)(*param_1 + lVar10);
        uVar5 = (*(uint *)((longlong)param_1 + 0xc) - uVar7) - 1;
        if (0 < (int)uVar5) {
          uVar9 = (ulonglong)uVar5;
          plVar8 = plVar4;
          do {
            plVar8 = plVar8 + 1;
            lVar2 = *plVar4;
            *plVar4 = *plVar8;
            plVar4 = plVar4 + 1;
            *plVar8 = lVar2;
            uVar9 = uVar9 - 1;
          } while (uVar9 != 0);
        }
        _Memory = (uint *)(*plVar4 + -0x10);
        if ((*_Memory & 0x30000000) == 0) {
          LOCK();
          uVar5 = *_Memory;
          *_Memory = *_Memory - 1;
          UNLOCK();
          if (uVar5 == 0) {
                    /* WARNING: Subroutine does not return */
            free(_Memory);
          }
        }
        *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
        iVar1 = *(int *)((longlong)param_1 + 0xc);
        iVar3 = 0;
        if (0 < iVar1 * 2) {
          iVar3 = iVar1 * 2;
        }
        if (iVar3 < (int)param_1[1]) {
          if (iVar1 < 8) {
            iVar1 = 8;
          }
          if (iVar1 < (int)param_1[1]) {
            FUN_18048a300(param_1);
          }
        }
      }
      lVar10 = lVar10 + -8;
      lVar6 = lVar6 + -8;
      uVar7 = uVar7 - 1;
    } while (-1 < (int)uVar7);
  }
  uVar7 = DAT_1826737fc;
  if (DAT_1826737fc == 0) {
    uVar7 = timeGetTime();
    if (uVar7 < DAT_1826737fc) {
      if (uVar7 < DAT_1826737fc - 1000) {
        LOCK();
        UNLOCK();
        DAT_1826737fc = uVar7;
      }
    }
    else {
      LOCK();
      UNLOCK();
      DAT_1826737fc = uVar7;
    }
  }
  *(uint *)((longlong)param_1 + 0x3c) = uVar7;
                    /* WARNING: Could not recover jumptable at 0x00018122c11e. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 2));
  return;
}



############ FUN_ 181234e40 size=247 ############

longlong FUN_181234e40(longlong param_1,longlong param_2)

{
  undefined8 *puVar1;
  longlong lVar2;
  ulonglong uVar3;
  void *pvVar4;
  ulonglong uVar5;
  longlong lVar6;
  undefined1 local_28 [32];
  
  uVar5 = *(longlong *)(param_1 + 0x30) + param_2;
  puVar1 = *(undefined8 **)(param_1 + 0x10);
  if (puVar1 == (undefined8 *)0x0) {
    if (*(ulonglong *)(param_1 + 0x40) < uVar5) {
      return 0;
    }
    lVar6 = *(longlong *)(param_1 + 0x28);
  }
  else {
    if ((ulonglong)puVar1[1] <= uVar5) {
      uVar3 = uVar5 >> 1;
      if (0x100000 < uVar3) {
        uVar3 = 0x100000;
      }
      uVar5 = uVar5 + 0x20 + uVar3 & 0xffffffe0;
      if ((ulonglong)puVar1[1] < uVar5) {
        pvVar4 = (void *)*puVar1;
        if (uVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          free(pvVar4);
        }
        if (pvVar4 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
          free((void *)0x0);
        }
        pvVar4 = realloc(pvVar4,uVar5);
        *puVar1 = pvVar4;
        if (pvVar4 == (void *)0x0) {
          FUN_1804719e0(local_28);
                    /* WARNING: Subroutine does not return */
          _CxxThrowException(local_28,(ThrowInfo *)&DAT_1825fec68);
        }
        puVar1[1] = uVar5;
      }
    }
    lVar6 = **(longlong **)(param_1 + 0x10);
  }
  lVar2 = *(longlong *)(param_1 + 0x30);
  uVar5 = lVar2 + param_2;
  *(ulonglong *)(param_1 + 0x30) = uVar5;
  uVar3 = *(ulonglong *)(param_1 + 0x38);
  if (*(ulonglong *)(param_1 + 0x38) < uVar5) {
    uVar3 = uVar5;
  }
  *(ulonglong *)(param_1 + 0x38) = uVar3;
  return lVar2 + lVar6;
}



############ FUN_ 181221060 size=1113 ############

void FUN_181221060(longlong param_1,longlong *param_2,int param_3,int param_4,longlong param_5)

{
  byte *pbVar1;
  byte bVar2;
  code *pcVar3;
  bool bVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  undefined8 uVar8;
  undefined8 *puVar9;
  undefined8 uVar10;
  byte *pbVar11;
  int iVar12;
  longlong lVar13;
  longlong *plVar14;
  longlong lVar15;
  undefined1 local_res18 [8];
  int local_res20;
  
  local_res20 = param_4;
  if (-1 < param_3) {
    (**(code **)(*param_2 + 0x88))(param_2,0x20,(longlong)param_3);
  }
  if (**(char **)(param_1 + 0x18) == '\0') {
    uVar8 = FUN_181220890(param_1);
    FUN_1812214e0(param_2,uVar8,0);
    return;
  }
  pcVar3 = *(code **)(*param_2 + 0x28);
  if (pcVar3 == FUN_18122e9b0) {
    local_res18[0] = 0x3c;
    (**(code **)(*param_2 + 0x20))(param_2,local_res18,1);
  }
  else {
    (*pcVar3)(param_2,0x3c);
  }
  uVar8 = FUN_18049d240(*(undefined8 *)(param_1 + 0x18));
  (**(code **)(*param_2 + 0x20))(param_2,*(undefined8 *)(param_1 + 0x18),uVar8);
  pbVar11 = *(byte **)(param_1 + 0x18);
  iVar7 = 0;
LAB_181221110:
  do {
    bVar2 = *pbVar11;
    pbVar11 = pbVar11 + 1;
    if ((char)bVar2 < '\0') {
      if ((*pbVar11 & 0xc0) == 0x80) {
        do {
          pbVar1 = pbVar11 + 1;
          pbVar11 = pbVar11 + 1;
        } while ((*pbVar1 & 0xc0) == 0x80);
        iVar7 = iVar7 + 1;
        goto LAB_181221110;
      }
    }
    else if (bVar2 == 0) break;
    iVar7 = iVar7 + 1;
  } while( true );
  iVar12 = 0;
  lVar15 = -1;
  for (puVar9 = *(undefined8 **)(param_1 + 0x10); puVar9 != (undefined8 *)0x0;
      puVar9 = (undefined8 *)*puVar9) {
    if ((param_4 < iVar12) && (-1 < param_3)) {
      lVar13 = lVar15;
      do {
        lVar13 = lVar13 + 1;
      } while (*(char *)(lVar13 + param_5) != '\0');
      (**(code **)(*param_2 + 0x20))(param_2,param_5);
      (**(code **)(*param_2 + 0x88))(param_2,0x20,(longlong)(param_3 + 1 + iVar7));
      iVar12 = 0;
    }
    iVar5 = (**(code **)(*param_2 + 0x18))(param_2);
    pcVar3 = *(code **)(*param_2 + 0x28);
    if (pcVar3 == FUN_18122e9b0) {
      local_res18[0] = 0x20;
      (**(code **)(*param_2 + 0x20))(param_2,local_res18,1);
    }
    else {
      (*pcVar3)(param_2,0x20);
    }
    uVar8 = FUN_18049d240(puVar9[1]);
    (**(code **)(*param_2 + 0x20))(param_2,puVar9[1],uVar8);
    (**(code **)(*param_2 + 0x20))(param_2,&DAT_1821db4e0,2);
    FUN_1812214e0(param_2,puVar9 + 2,1);
    pcVar3 = *(code **)(*param_2 + 0x28);
    if (pcVar3 == FUN_18122e9b0) {
      local_res18[0] = 0x22;
      (**(code **)(*param_2 + 0x20))(param_2,local_res18,1);
    }
    else {
      (*pcVar3)(param_2,0x22);
    }
    iVar6 = (**(code **)(*param_2 + 0x18))(param_2);
    iVar12 = iVar12 + (iVar6 - iVar5);
    param_4 = local_res20;
  }
  plVar14 = *(longlong **)(param_1 + 8);
  if (plVar14 == (longlong *)0x0) {
    (**(code **)(*param_2 + 0x20))(param_2,&DAT_1821db4e8,2);
  }
  else {
    pcVar3 = *(code **)(*param_2 + 0x28);
    if (pcVar3 == FUN_18122e9b0) {
      local_res18[0] = 0x3e;
      (**(code **)(*param_2 + 0x20))(param_2,local_res18,1);
    }
    else {
      (*pcVar3)(param_2,0x3e);
    }
    bVar4 = false;
    do {
      uVar8 = DAT_1826739f0;
      if (*(char *)plVar14[3] == '\0') {
        for (puVar9 = (undefined8 *)plVar14[2]; puVar9 != (undefined8 *)0x0;
            puVar9 = (undefined8 *)*puVar9) {
          iVar7 = FUN_18048cbc0(puVar9[1],uVar8);
          if (iVar7 == 0) {
            puVar9 = puVar9 + 2;
            goto LAB_18122130d;
          }
        }
        puVar9 = (undefined8 *)FUN_181220d40();
LAB_18122130d:
        FUN_1812214e0(param_2,puVar9);
        bVar4 = true;
      }
      else {
        if (param_3 < 0) {
          if (bVar4) goto LAB_181221451;
LAB_181221353:
          iVar7 = 0;
          if (-1 < param_3) {
            iVar7 = 2;
          }
          iVar7 = iVar7 + param_3;
        }
        else {
          if (!bVar4) {
            lVar13 = lVar15;
            do {
              lVar13 = lVar13 + 1;
            } while (*(char *)(lVar13 + param_5) != '\0');
            (**(code **)(*param_2 + 0x20))(param_2,param_5);
            goto LAB_181221353;
          }
LAB_181221451:
          iVar7 = 0;
        }
        FUN_181221060(plVar14,param_2,iVar7,param_4,param_5);
        bVar4 = false;
      }
      plVar14 = (longlong *)*plVar14;
    } while (plVar14 != (longlong *)0x0);
    if ((-1 < param_3) && (!bVar4)) {
      do {
        lVar15 = lVar15 + 1;
      } while (*(char *)(lVar15 + param_5) != '\0');
      (**(code **)(*param_2 + 0x20))(param_2,param_5,lVar15);
      (**(code **)(*param_2 + 0x88))(param_2,0x20,(longlong)param_3);
    }
    (**(code **)(*param_2 + 0x20))(param_2,&DAT_1821db4dc,2);
    uVar8 = *(undefined8 *)(param_1 + 0x18);
    uVar10 = FUN_18049d240(uVar8);
    (**(code **)(*param_2 + 0x20))(param_2,uVar8,uVar10);
    pcVar3 = *(code **)(*param_2 + 0x28);
    if (pcVar3 == FUN_18122e9b0) {
      local_res18[0] = 0x3e;
      (**(code **)(*param_2 + 0x20))(param_2,local_res18,1);
    }
    else {
      (*pcVar3)(param_2,0x3e);
    }
  }
  return;
}



############ FUN_ 181243430 size=506 ############

void FUN_181243430(longlong *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  int iVar2;
  undefined8 *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong *plVar6;
  undefined8 uVar7;
  uint *puVar8;
  undefined8 *puVar9;
  longlong local_res8 [2];
  longlong local_res18;
  longlong local_res20;
  longlong local_48;
  longlong local_40;
  longlong local_38 [2];
  
  local_38[1] = 0xfffffffffffffffe;
  puVar3 = (undefined8 *)*param_1;
  iVar2 = *(int *)((longlong)param_1 + 0xc);
  if (puVar3 != puVar3 + (longlong)iVar2 * 3) {
    puVar9 = puVar3 + 1;
    do {
      lVar5 = (**(code **)(*(longlong *)*puVar9 + 0x40))((longlong *)*puVar9,puVar9 + 1);
      if (lVar5 == 0) {
        uVar7 = FUN_18122bf10();
        FUN_18122c1b0(uVar7,&local_40,puVar9 + -1);
        (**(code **)(*(longlong *)*puVar9 + 0x20))((longlong *)*puVar9,&local_48,puVar9 + 1);
        FUN_181246b70(param_2,&local_40,&local_48);
        puVar8 = (uint *)(local_48 + -0x10);
        if ((*puVar8 & 0x30000000) == 0) {
          LOCK();
          uVar4 = *puVar8;
          *puVar8 = *puVar8 - 1;
          UNLOCK();
          if (uVar4 == 0) {
                    /* WARNING: Subroutine does not return */
            free(puVar8);
          }
        }
        puVar8 = (uint *)(local_40 + -0x10);
        uVar4 = *puVar8;
      }
      else {
        FUN_18049c4e0(local_res8,"base64:");
        plVar6 = (longlong *)FUN_181232d30(local_res8,puVar9 + -1);
        local_res20 = *plVar6;
        if ((*(uint *)(local_res20 + -0x10) & 0x30000000) == 0) {
          LOCK();
          *(int *)(local_res20 + -0x10) = *(int *)(local_res20 + -0x10) + 1;
          UNLOCK();
        }
        puVar8 = (uint *)(local_res8[0] + -0x10);
        if ((*puVar8 & 0x30000000) == 0) {
          LOCK();
          uVar4 = *puVar8;
          *puVar8 = *puVar8 - 1;
          UNLOCK();
          if (uVar4 == 0) {
                    /* WARNING: Subroutine does not return */
            free(puVar8);
          }
        }
        uVar7 = FUN_18122bf10();
        FUN_18122c1b0(uVar7,&local_res18,&local_res20);
        uVar7 = FUN_18123a2a0(lVar5,local_38);
        FUN_181246b70(param_2,&local_res18,uVar7);
        puVar8 = (uint *)(local_38[0] + -0x10);
        if ((*puVar8 & 0x30000000) == 0) {
          LOCK();
          uVar4 = *puVar8;
          *puVar8 = *puVar8 - 1;
          UNLOCK();
          if (uVar4 == 0) {
                    /* WARNING: Subroutine does not return */
            free(puVar8);
          }
        }
        puVar8 = (uint *)(local_res18 + -0x10);
        if ((*puVar8 & 0x30000000) == 0) {
          LOCK();
          uVar4 = *puVar8;
          *puVar8 = *puVar8 - 1;
          UNLOCK();
          if (uVar4 == 0) {
                    /* WARNING: Subroutine does not return */
            free(puVar8);
          }
        }
        puVar8 = (uint *)(local_res20 + -0x10);
        uVar4 = *puVar8;
      }
      if ((uVar4 & 0x30000000) == 0) {
        LOCK();
        uVar4 = *puVar8;
        *puVar8 = *puVar8 - 1;
        UNLOCK();
        if (uVar4 == 0) {
                    /* WARNING: Subroutine does not return */
          free(puVar8);
        }
      }
      puVar1 = puVar9 + 2;
      puVar9 = puVar9 + 3;
    } while (puVar1 != puVar3 + (longlong)iVar2 * 3);
  }
  return;
}



############ FUN_ 18049b090 size=211 ############

longlong * FUN_18049b090(longlong *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  int iVar1;
  longlong lVar2;
  longlong *plVar3;
  longlong *plVar4;
  longlong *plVar5;
  int iVar6;
  
  *param_1 = 0;
  param_1[1] = 0;
  iVar1 = *(int *)((longlong)param_2 + 0xc);
  lVar2 = *param_2;
  if (0 < iVar1) {
    FUN_18049b620(param_1,iVar1 + 8 + iVar1 / 2 & 0xfffffff8,param_3,param_4,0xfffffffffffffffe);
  }
  iVar6 = iVar1 + -1;
  if (-1 < iVar6) {
    plVar5 = (longlong *)(lVar2 + 8);
    plVar4 = (longlong *)(*param_1 + (longlong)*(int *)((longlong)param_1 + 0xc) * 0x18);
    do {
      lVar2 = plVar5[-1];
      *plVar4 = lVar2;
      if ((*(uint *)(lVar2 + -0x10) & 0x30000000) == 0) {
        LOCK();
        *(int *)(lVar2 + -0x10) = *(int *)(lVar2 + -0x10) + 1;
        UNLOCK();
      }
      plVar3 = (longlong *)*plVar5;
      plVar4[1] = (longlong)plVar3;
      (**(code **)(*plVar3 + 0xb8))(plVar3,plVar4 + 2,plVar5 + 1);
      plVar5 = plVar5 + 3;
      iVar6 = iVar6 + -1;
      plVar4 = plVar4 + 3;
    } while (-1 < iVar6);
  }
  *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + iVar1;
  return param_1;
}



############ FUN_ 180527d40 size=185 ############

void FUN_180527d40(longlong *param_1,ulonglong param_2)

{
  void *_Dst;
  uint uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  
  uVar1 = *(uint *)((longlong)param_1 + 0xc);
  uVar5 = 0;
  if (0 < (int)uVar1) {
    uVar6 = uVar1;
    do {
      if (param_2 == *(ulonglong *)(*param_1 + (longlong)(int)uVar5 * 8)) goto LAB_180527d9a;
      uVar3 = (int)(uVar6 + uVar5) / 2;
      if (uVar3 == uVar5) break;
      if (param_2 < *(ulonglong *)(*param_1 + (longlong)(int)uVar3 * 8)) {
        uVar6 = uVar3;
        uVar3 = uVar5;
      }
      uVar5 = uVar3;
    } while ((int)uVar5 < (int)uVar6);
  }
  uVar5 = 0xffffffff;
LAB_180527d9a:
  if (uVar5 < uVar1) {
    _Dst = (void *)(*param_1 + (longlong)(int)uVar5 * 8);
    memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)(int)((uVar1 - uVar5) + -1) << 3);
    *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + -1;
    iVar2 = *(int *)((longlong)param_1 + 0xc);
    iVar4 = 0;
    if (0 < iVar2 * 2) {
      iVar4 = iVar2 * 2;
    }
    if (iVar4 < (int)param_1[1]) {
      if (iVar2 < 8) {
        iVar2 = 8;
      }
      if (iVar2 < (int)param_1[1]) {
        FUN_18047cb30(param_1);
      }
    }
  }
  return;
}



############ FUN_ 1805282f0 size=532 ############

void FUN_1805282f0(longlong param_1,longlong *param_2,undefined8 *param_3)

{
  longlong *plVar1;
  void *_Src;
  ulonglong uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  void *_Memory;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  longlong lVar9;
  void *local_60;
  undefined8 local_58;
  undefined4 local_48;
  undefined4 uStack_44;
  undefined4 uStack_40;
  undefined4 uStack_3c;
  
  do {
    if (param_1 == 0) {
      return;
    }
    local_48 = *(undefined4 *)param_3;
    uStack_44 = *(undefined4 *)((longlong)param_3 + 4);
    uVar4 = *param_3;
    uStack_40 = *(undefined4 *)(param_3 + 1);
    uStack_3c = *(undefined4 *)((longlong)param_3 + 0xc);
    uVar3 = param_3[1];
    iVar7 = *(int *)(param_1 + 0x44);
    if (iVar7 == 1) {
      lVar9 = **(longlong **)(param_1 + 0x38);
      iVar7 = *(int *)(lVar9 + 0x14);
      while (0 < iVar7) {
        iVar7 = iVar7 + -1;
        if ((*(int *)(lVar9 + 0x14) <= iVar7) && (iVar7 = *(int *)(lVar9 + 0x14) + -1, iVar7 < 0))
        break;
        plVar1 = *(longlong **)(*(longlong *)(lVar9 + 8) + (longlong)iVar7 * 8);
        if (plVar1 != param_2) {
          (**(code **)(*plVar1 + 8))(plVar1,uVar4,uVar3);
        }
      }
    }
    else if (0 < iVar7) {
      local_60 = (void *)0x0;
      local_58 = 0;
      iVar8 = *(int *)(param_1 + 0x44);
      _Src = *(void **)(param_1 + 0x38);
      iVar5 = 0;
      if (0 < iVar8) {
        iVar5 = iVar8;
        if (iVar8 < 0) {
          iVar5 = iVar8 + 1;
        }
        FUN_18047cb30(&local_60,(iVar5 >> 1) + 8 + iVar8 & 0xfffffff8);
        iVar5 = local_58._4_4_;
      }
      _Memory = local_60;
      memcpy((void *)((longlong)iVar5 * 8 + (longlong)local_60),_Src,(longlong)iVar8 << 3);
      local_58 = CONCAT44(iVar5 + iVar8,(undefined4)local_58);
      lVar9 = 0;
      if (iVar7 < 1) goto LAB_1805284c6;
      uVar3 = CONCAT44(uStack_44,local_48);
      break;
    }
    param_1 = *(longlong *)(param_1 + 0x48);
  } while( true );
LAB_180528420:
  uVar2 = *(ulonglong *)((longlong)_Memory + lVar9 * 8);
  if (lVar9 == 0) {
LAB_180528478:
    iVar8 = *(int *)(uVar2 + 0x14);
    while (0 < iVar8) {
      iVar8 = iVar8 + -1;
      if ((*(int *)(uVar2 + 0x14) <= iVar8) && (iVar8 = *(int *)(uVar2 + 0x14) + -1, iVar8 < 0))
      break;
      plVar1 = *(longlong **)(*(longlong *)(uVar2 + 8) + (longlong)iVar8 * 8);
      if (plVar1 != param_2) {
        (**(code **)(*plVar1 + 8))(plVar1,uVar3);
      }
    }
  }
  else {
    iVar5 = 0;
    iVar8 = *(int *)(param_1 + 0x44);
    if (0 < iVar8) {
      do {
        if (uVar2 == *(ulonglong *)(*(longlong *)(param_1 + 0x38) + (longlong)iVar5 * 8))
        goto LAB_180528473;
        iVar6 = (iVar8 + iVar5) / 2;
        if (iVar6 == iVar5) break;
        if (uVar2 < *(ulonglong *)(*(longlong *)(param_1 + 0x38) + (longlong)iVar6 * 8)) {
          iVar8 = iVar6;
          iVar6 = iVar5;
        }
        iVar5 = iVar6;
      } while (iVar5 < iVar8);
    }
    iVar5 = -1;
LAB_180528473:
    if (-1 < iVar5) goto LAB_180528478;
  }
  lVar9 = lVar9 + 1;
  if (iVar7 <= lVar9) {
LAB_1805284c6:
    local_58 = local_58 & 0xffffffff;
                    /* WARNING: Subroutine does not return */
    free(_Memory);
  }
  goto LAB_180528420;
}



############ FUN_ 18049b620 size=299 ############

void FUN_18049b620(longlong *param_1,int param_2)

{
  uint uVar1;
  void *_Memory;
  void *pvVar2;
  undefined8 *puVar3;
  uint *_Memory_00;
  int iVar4;
  longlong *plVar5;
  undefined8 *puVar6;
  
  if ((int)param_1[1] == param_2) {
    *(int *)(param_1 + 1) = param_2;
    return;
  }
  if (param_2 < 1) {
                    /* WARNING: Subroutine does not return */
    free((void *)*param_1);
  }
  pvVar2 = malloc((longlong)param_2 * 0x18);
  iVar4 = 0;
  if (0 < *(int *)((longlong)param_1 + 0xc)) {
    puVar6 = (undefined8 *)((longlong)pvVar2 + 8);
    do {
      puVar3 = (undefined8 *)((longlong)puVar6 + *param_1 + (-8 - (longlong)pvVar2));
      puVar6[-1] = *puVar3;
      *puVar3 = &DAT_1821dbf98;
      *puVar6 = puVar3[1];
      puVar6[1] = puVar3[2];
      puVar3[1] = &PTR_vftable_18262b558;
      plVar5 = (longlong *)((longlong)puVar6 + *param_1 + (-8 - (longlong)pvVar2));
      (**(code **)(*(longlong *)plVar5[1] + 0xb0))((longlong *)plVar5[1],plVar5 + 2);
      _Memory_00 = (uint *)(*plVar5 + -0x10);
      if ((*_Memory_00 & 0x30000000) == 0) {
        LOCK();
        uVar1 = *_Memory_00;
        *_Memory_00 = *_Memory_00 - 1;
        UNLOCK();
        if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
          free(_Memory_00);
        }
      }
      iVar4 = iVar4 + 1;
      puVar6 = puVar6 + 3;
    } while (iVar4 < *(int *)((longlong)param_1 + 0xc));
  }
  _Memory = (void *)*param_1;
  *param_1 = (longlong)pvVar2;
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 18122f8f0 size=623 ############

undefined8 * FUN_18122f8f0(undefined8 *param_1,char *param_2,ulonglong param_3,undefined8 param_4)

{
  byte bVar1;
  int iVar2;
  char cVar3;
  uint uVar4;
  void *_Memory;
  ulonglong uVar5;
  ulonglong uVar6;
  longlong lVar7;
  int iVar8;
  bool bVar9;
  undefined1 *local_50;
  undefined8 local_48;
  undefined1 *puStack_40;
  ulonglong local_38;
  ulonglong local_30;
  
  iVar8 = (int)param_3;
  uVar5 = param_3 & 0xffffffff;
  if ((iVar8 < 1) || (param_2 == (char *)0x0)) {
    *param_1 = &DAT_1821dbf98;
  }
  else if (iVar8 == 1) {
    FUN_181233f40(param_1,*param_2);
  }
  else {
    cVar3 = *param_2;
    if (((cVar3 == -2) && (param_2[1] == -1)) || ((cVar3 == -1 && (param_2[1] == -2)))) {
      local_50 = &DAT_1821dbf98;
      local_48 = 0;
      puStack_40 = (undefined1 *)0x0;
      uVar5 = (ulonglong)(iVar8 / 2 + -1);
      lVar7 = 0;
      local_30 = 0;
      local_38 = uVar5;
      FUN_1812342b0(&local_50,uVar5);
      puStack_40 = local_50;
      if ((*param_2 == -2) && (param_2[1] == -1)) {
        if (0 < (longlong)uVar5) {
          do {
            FUN_180495280(&local_50,
                          *(ushort *)(param_2 + lVar7 * 2 + 2) << 8 |
                          *(ushort *)(param_2 + lVar7 * 2 + 2) >> 8);
            lVar7 = lVar7 + 1;
          } while (lVar7 < (longlong)uVar5);
        }
      }
      else if (0 < (longlong)uVar5) {
        do {
          FUN_180495280(&local_50,*(undefined2 *)(param_2 + lVar7 * 2 + 2));
          lVar7 = lVar7 + 1;
        } while (lVar7 < (longlong)uVar5);
      }
      local_30 = local_30 + 1;
      if (local_38 < local_30) {
        uVar5 = 8;
        if (8 < local_38 >> 4) {
          uVar5 = local_38 >> 4;
        }
        local_38 = local_38 + uVar5;
        iVar2 = (int)local_50;
        iVar8 = (int)puStack_40;
        FUN_1812342b0(&local_50);
        puStack_40 = local_50 + (iVar8 - iVar2);
      }
      *puStack_40 = 0;
      *param_1 = local_50;
      if ((DAT_1821dbf88 & 0x30000000) == 0) {
        LOCK();
        uVar4 = DAT_1821dbf88 - 1;
        UNLOCK();
        bVar9 = DAT_1821dbf88 == 0;
        DAT_1821dbf88 = uVar4;
        if (bVar9) {
                    /* WARNING: Subroutine does not return */
          free(&DAT_1821dbf88);
        }
      }
    }
    else {
      if ((((2 < iVar8) && (cVar3 == -0x11)) && (param_2[1] == -0x45)) && (param_2[2] == -0x41)) {
        param_2 = param_2 + 3;
        uVar5 = (ulonglong)(iVar8 - 3);
      }
      cVar3 = FUN_180493240(param_2,uVar5,param_3,param_4,0xfffffffffffffffe);
      if (cVar3 == '\0') {
        uVar6 = (ulonglong)(int)uVar5;
        _Memory = malloc(uVar6 * 4 + 4);
        uVar5 = 0;
        if (uVar6 != 0) {
          do {
            bVar1 = param_2[uVar5];
            uVar4 = (uint)bVar1;
            if ((byte)(bVar1 + 0x80) < 0x20) {
              uVar4 = (uint)*(ushort *)(&DAT_1824970d0 + (longlong)(int)(bVar1 - 0x80) * 2);
            }
            *(uint *)((longlong)_Memory + uVar5 * 4) = uVar4;
            uVar5 = uVar5 + 1;
          } while (uVar5 < uVar6);
        }
        *(undefined4 *)(uVar6 * 4 + (longlong)_Memory) = 0;
        FUN_18049ca80(param_1,_Memory);
                    /* WARNING: Subroutine does not return */
        free(_Memory);
      }
      FUN_18124a8a0(param_1,param_2,param_2 + (int)uVar5);
    }
  }
  return param_1;
}



############ FUN_ 18122bde0 size=295 ############

undefined8 FUN_18122bde0(longlong *param_1,byte *param_2,ulonglong param_3)

{
  byte bVar1;
  char cVar2;
  ulonglong uVar3;
  undefined4 *puVar4;
  byte *pbVar5;
  ulonglong uVar6;
  undefined4 local_res10;
  
  do {
    if (param_3 == 0) {
      return 1;
    }
    pbVar5 = param_2 + 1;
    uVar3 = (ulonglong)((*param_2 & 3) << 4);
    if (param_3 < 2) {
      local_res10._0_2_ =
           CONCAT11("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[uVar3],
                    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
                    [*param_2 >> 2]);
      local_res10 = CONCAT22(0x3d3d,(undefined2)local_res10);
LAB_18122beab:
      param_3 = 0;
    }
    else {
      bVar1 = *pbVar5;
      pbVar5 = param_2 + 2;
      uVar6 = (ulonglong)((bVar1 & 0xf) << 2);
      local_res10._0_2_ =
           CONCAT11("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
                    [bVar1 >> 4 | uVar3],
                    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
                    [*param_2 >> 2]);
      if (param_3 < 3) {
        local_res10._0_3_ =
             CONCAT12("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[uVar6],
                      (undefined2)local_res10);
        local_res10 = CONCAT13(0x3d,(undefined3)local_res10);
        goto LAB_18122beab;
      }
      bVar1 = *pbVar5;
      pbVar5 = param_2 + 3;
      param_3 = param_3 - 3;
      local_res10._0_3_ =
           CONCAT12("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
                    [bVar1 >> 6 | uVar6],(undefined2)local_res10);
      local_res10 = CONCAT13("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
                             [bVar1 & 0x3f],(undefined3)local_res10);
    }
    param_2 = pbVar5;
    if ((undefined **)*param_1 == juce::MemoryOutputStream::vftable) {
      puVar4 = (undefined4 *)FUN_181234e40(param_1,4);
      if (puVar4 == (undefined4 *)0x0) {
        return 0;
      }
      *puVar4 = local_res10;
    }
    else {
      cVar2 = (*(code *)((undefined **)*param_1)[4])(param_1,&local_res10,4);
      if (cVar2 == '\0') {
        return 0;
      }
    }
  } while( true );
}



############ FUN_ 180c605c0 size=5640 ############

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

void FUN_180c605c0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong uVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  byte bVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  uint uVar51;
  ulonglong *puVar52;
  uint uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  uint uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  uint uVar60;
  ulonglong uVar61;
  byte local_130;
  byte local_f0;
  ulonglong uVar44;
  
  uVar13 = DAT_182670a34;
  uVar12 = _DAT_18267097c;
  uVar30 = DAT_182670958;
  uVar9 = DAT_1826707f0;
  uVar8 = DAT_1826707e8;
  uVar21 = DAT_1826707d8;
  uVar18 = DAT_1826707d4;
  uVar7 = DAT_1826707c4;
  DAT_1826707e4 = DAT_1826707b4 & DAT_1826707f4;
  uVar47 = (ulonglong)DAT_1826707f0;
  uVar42 = (ulonglong)DAT_1826707c4;
  uVar34 = (ulonglong)DAT_1826707d8;
  uVar40 = (ulonglong)DAT_1826707e8;
  uVar4 = DAT_1826707ac;
  if ((DAT_1826707f0 & 1) == 0) {
    uVar4 = DAT_1826707f0;
  }
  uVar43 = DAT_1826707c4 | DAT_1826707e8;
  uVar44 = (ulonglong)uVar43;
  uVar51 = DAT_1826707d4 * DAT_1826707d8;
  uVar60 = DAT_182670a34 - DAT_182670968;
  DAT_1826707cc =
       (DAT_1826707e0 << 0x10 | DAT_1826707e0 & 0xff00) << 8 | DAT_1826707e0 >> 8 & 0xff00 |
       DAT_1826707e0 >> 0x18;
  uVar53 = _DAT_18267097c * DAT_182670958;
  uVar56 = *(uint *)(&DAT_18260f758 + DAT_182670cdc) ^ DAT_1826707cc;
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670cdc) ^ DAT_1826707e0;
  uVar16 = _DAT_18267097c & 0xff;
  _DAT_18267097c = ((_DAT_18267097c << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar3 = CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar26 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  puVar22 = (ulonglong *)(DAT_1826707a0 + -0x998);
  DAT_1826707c0 = uVar4;
  DAT_1826707c8 = uVar51;
  DAT_1826707ec = uVar43;
  *puVar22 = (uVar3 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) >>
             (((byte)DAT_1826707e0 ^ 0x19) & 0x3f) ^ uVar26;
  uVar27 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar43 ^ 0x6febfd3f)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0x8a244460)) ^ uVar27) +
       (uVar3 ^ *(ulonglong *)(DAT_1826707a0 + -0x610));
  lVar5 = DAT_1826707a0;
  uVar17 = DAT_182670958 & 0xff;
  uVar48 = DAT_182670958 << 8;
  DAT_182670958 = ((uVar48 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar33 = (ulonglong)DAT_182670958;
  uVar45 = CONCAT44(DAT_182670958,DAT_182670958);
  bVar14 = (byte)uVar9;
  uVar31 = (uVar3 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) << ((bVar14 ^ 0xde) & 0x3f);
  uVar18 = uVar53 & 0xff;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar31 ^ uVar45;
  DAT_182670848 = ((uVar53 * 0x100 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar49 = CONCAT44(DAT_182670848,DAT_182670848);
  uVar31 = uVar31 | uVar26 ^ *puVar22;
  puVar1 = (ulonglong *)(lVar5 + -0x9c8);
  *(ulonglong *)(lVar5 + -0x4c8) = uVar31 ^ uVar49;
  *(ulonglong *)(lVar5 + -0xac0) = (CONCAT44(uVar7,uVar8) ^ 0x368bc8494b9ca9cc) + 0xac379650b5ebecd5
  ;
  lVar5 = DAT_1826707a0;
  uVar19 = DAT_182670968 & 0xff;
  uVar38 = DAT_182670968 << 8;
  DAT_182670968 = ((uVar38 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar28 = CONCAT44(DAT_182670904,DAT_182670904);
  uVar23 = (ulonglong)DAT_182670968;
  uVar35 = CONCAT44(DAT_182670968,DAT_182670968);
  uVar20 = DAT_182670a34 & 0xff;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = (uVar28 ^ *puVar1) - uVar31 ^ uVar35;
  uVar16 = DAT_1826707b4;
  uVar18 = DAT_1826707a8;
  DAT_182670a34 = ((DAT_182670a34 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar39 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar57 = (ulonglong)DAT_1826707b4;
  uVar41 = (ulonglong)DAT_1826707a8;
  uVar29 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar59 = CONCAT44(DAT_182670a34,DAT_182670a34);
  puVar2 = (ulonglong *)(lVar5 + -0x5c0);
  uVar31 = uVar59 ^ uVar29 ^ uVar39 ^ *(ulonglong *)(lVar5 + -0xc18) ^ *puVar2;
  bVar24 = (byte)DAT_1826707a8;
  *puVar22 = uVar31;
  uVar10 = DAT_1826707f4;
  uVar20 = uVar60 & 0xff;
  DAT_182670844 = ((uVar60 * 0x100 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar36 = CONCAT44(DAT_182670844,DAT_182670844);
  uVar55 = (ulonglong)DAT_1826707f4;
  bVar25 = (byte)DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 - (uVar57 ^ 0x6e7fd879)) =
       (uVar31 ^ uVar59) >> ((bVar24 ^ 0x32) & 0x3f) ^ uVar36;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x214a6c8a)) =
       (uVar59 ^ *puVar22) << ((bVar25 ^ 0xad) & 0x3f) ^ uVar59;
  uVar20 = DAT_1826707e4;
  lVar5 = DAT_1826707a0;
  puVar46 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x214a6f82));
  *puVar46 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x4b233442)) ^ uVar36 |
             uVar59 ^ *(ulonglong *)(DAT_1826707a0 + -0xac0)) ^ uVar35;
  *puVar2 = (CONCAT44(DAT_1826707cc,uVar20) ^ 0xef1224569fc67214) +
            (CONCAT44(uVar51,uVar4) ^ 0x6680a62e4a04e763);
  puVar37 = (ulonglong *)(lVar5 - (uVar44 ^ 0x6febfbe7));
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0x8a244930)) =
       (*puVar37 ^ uVar29) - (uVar35 ^ *puVar1) ^ uVar45;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x6febf1ef)) ^ uVar59 ^ *puVar1;
  uVar20 = DAT_1826707e0;
  uVar54 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x34b0d418)) =
       (uVar59 ^ *(ulonglong *)(lVar5 + -0xac0)) >> (((byte)DAT_1826707e0 ^ 0xd) & 0x3f) ^ uVar59;
  lVar5 = DAT_1826707a0;
  uVar31 = uVar59 ^ *(ulonglong *)(DAT_1826707a0 + -0xac0);
  local_130 = (byte)uVar30;
  uVar32 = uVar31 << 0x12;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar31 << ((local_130 ^ *(byte *)puVar22) & 0x3f);
  *puVar1 = uVar32 ^ uVar26;
  *(ulonglong *)(lVar5 + -0x558) = CONCAT44(uVar8,uVar18) << 0x3e ^ 0xc000000000000000;
  uVar31 = (ulonglong)DAT_1826707d4;
  uVar32 = uVar32 | uVar59 ^ *puVar2;
  *(ulonglong *)(lVar5 + -0xf0) = uVar32 ^ uVar45;
  uVar30 = DAT_1826707e0 ^ 0xfa9fe6d9;
  *(ulonglong *)(lVar5 + -0xc18) =
       (*(ulonglong *)(lVar5 - (uVar31 ^ 0x8a2446b8)) ^ uVar35) - uVar32 ^ uVar36;
  uVar31 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar5 + -0xac0) = uVar49 ^ *puVar22 ^ *(ulonglong *)(lVar5 + -0x4c8);
  *(uint *)(lVar5 - (uVar31 ^ 0xf73d94bb)) = uVar30 + 0xe4f3f21b;
  *(ulonglong *)(lVar5 + -0x558) =
       (uVar33 << 0x14 | (ulonglong)(((uVar48 & 0xffff | uVar17) << 8 | uVar17) >> 4)) ^
       *(ulonglong *)(lVar5 + -0xac0) >> 0xc ^ uVar35;
  *puVar2 = (CONCAT44(uVar16,DAT_1826707e4) ^ 0x17f4eddf98f8ed9b) + 0x3523e3b62b05facf;
  *puVar46 = (*(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0x4febff3f)) ^ uVar45) << 0x34 ^ uVar59;
  lVar5 = DAT_1826707a0;
  uVar32 = uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x558) | uVar59 ^ *puVar1;
  uVar31 = *puVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar32 ^ uVar59;
  *(ulonglong *)(lVar5 + -0x4c8) = (uVar45 ^ uVar31) - uVar32 ^ uVar49;
  uVar30 = DAT_1826707ac;
  puVar46 = (ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0x34b0ddc0));
  *(uint *)(lVar5 - (uVar34 ^ 0x654c7bbc)) = (uVar10 ^ 0x43ae2acb) << ((bVar24 ^ 0x37) & 0x1f);
  uVar17 = DAT_1826709ac;
  uVar31 = (ulonglong)DAT_1826709ac;
  uVar32 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar33 = uVar32 ^ *puVar46 ^ uVar36 ^ uVar59 ^ *(ulonglong *)(lVar5 + -0x610);
  *puVar2 = uVar33;
  *(ulonglong *)(lVar5 + -0xac0) =
       ((ulonglong)(uVar17 >> 0x19) | uVar31 << 7) ^ uVar33 >> 0x19 ^ uVar45;
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       CONCAT44(uVar51,DAT_1826707cc) ^ CONCAT44(uVar43,uVar30) ^ 0x71ed3a57b256377a;
  lVar5 = DAT_1826707a0;
  *puVar1 = (uVar32 ^ uVar33) << (((byte)DAT_1826707e4 ^ 0xa7) & 0x3f) ^ uVar45;
  uVar31 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar5 + -0x9ec) = 0x4c95cc12 >> (((byte)uVar10 ^ 0xb7) & 0x1f);
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x654c78d4)) =
       (*(ulonglong *)(lVar5 - (uVar31 ^ 0x8a244960)) ^ uVar45 |
       *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0x34b0db18)) ^ uVar45) ^ uVar35;
  uVar34 = (*(ulonglong *)(lVar6 - (uVar54 ^ 0x34b2473b)) ^ uVar36) -
           (CONCAT44(uVar43,DAT_1826707e4) ^ 0x7d658ef16c651053);
  *(ulonglong *)(lVar6 + -0x610) = uVar34 ^ uVar26;
  *puVar2 = uVar34 - (uVar35 ^ *puVar22) ^ uVar35;
  uVar30 = DAT_1826707d4;
  uVar61 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *puVar1 = (uVar35 ^ *puVar22) - (CONCAT44(uVar9,uVar7) ^ 0x4fdd9f95e8f83b41) ^ uVar61;
  lVar5 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_182670924;
  uVar31 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar50 = uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0) ^ uVar49 ^ uVar45 ^
           *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar50;
  lVar6 = DAT_1826707a0;
  uVar33 = (uVar50 >> 0x20 ^ uVar34) >> 1;
  *(ulonglong *)(lVar5 + -0x558) = uVar33 ^ uVar36;
  local_f0 = (byte)uVar8;
  uVar34 = (uVar31 ^ uVar50) << ((local_f0 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar6 + -0x610) = uVar34 ^ uVar49;
  *(ulonglong *)(lVar6 + -0xac0) = (uVar33 | uVar34) ^ uVar59;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar51 ^ 0x7d2d5078)) =
       (uVar49 ^ *(ulonglong *)(lVar6 + -0x4c8)) - (CONCAT44(uVar30,uVar16) ^ 0x9018c99902d58144) ^
       uVar59;
  uVar50 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0x234bb2c4)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0x214a6fd2)) ^ uVar59) -
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ac ^ 0xf73d9a47)) ^ uVar59) ^ uVar50;
  lVar5 = DAT_1826707a0;
  *puVar46 = (CONCAT44(uVar20,uVar10) ^ 0x8fd7a676fd111e9d) >>
             ((*(byte *)(DAT_1826707a0 - (uVar54 ^ 0x34b24d33)) ^ (byte)uVar53) & 0x3f);
  uVar11 = DAT_1826707fc;
  uVar34 = (CONCAT44(uVar4,uVar7) ^ 0x1c23d6c81d839c35) + (uVar59 ^ *(ulonglong *)(lVar5 + -0xac0))
           ^ uVar49;
  *(ulonglong *)(lVar5 + -0x558) = uVar34;
  uVar4 = DAT_1826707d4;
  lVar5 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0x34b0d510)) =
       uVar33 ^ uVar34 ^ uVar35 ^ uVar49 ^ *puVar2;
  *(int *)(DAT_1826707a0 + -0x9ec) =
       *(int *)(lVar5 - (uVar44 ^ 0x6febfbfb)) << (((byte)uVar4 ^ 0xb3) & 0x1f);
  lVar5 = DAT_1826707a0;
  uVar34 = (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) >> ((local_f0 ^ 0xfa) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) << 0x3b ^ uVar39;
  *puVar22 = uVar34 ^ uVar36;
  lVar6 = DAT_1826707a0;
  uVar34 = uVar34 | *puVar37 ^ uVar39;
  *(ulonglong *)(lVar5 + -0x610) = uVar34 ^ uVar26;
  uVar11 = DAT_182670948;
  *(ulonglong *)(lVar5 + -0xac0) =
       CONCAT44(uVar21,uVar21) ^ 0x822bc9ee67c074e8 | CONCAT44(uVar21,uVar7) ^ 0xadf2b698a2680d3b;
  uVar54 = CONCAT44(uVar11,uVar11);
  uVar21 = DAT_1826707ac ^ 0xfb63576e;
  *(ulonglong *)(lVar6 + -0x558) = (uVar35 ^ *puVar2) - uVar34 ^ uVar54;
  *(uint *)(lVar6 + -0x9ec) = uVar21 * (uVar18 ^ 0xf05ff602);
  uVar47 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar33 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar34 = uVar47 ^ uVar50 ^ uVar61 ^ *(ulonglong *)(lVar6 + -0xf0) ^ *puVar1;
  *(ulonglong *)(lVar6 + -0x4c8) = uVar34;
  *puVar22 = (uVar34 ^ uVar47) >> ((bVar14 ^ 0xfd) & 0x3f) ^ uVar33;
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xa32229e4)) =
       (*(ulonglong *)(lVar6 - (uVar42 ^ 0x214a6282)) ^ uVar47) << ((local_f0 ^ 0xe4) & 0x3f) ^
       uVar28;
  uVar18 = DAT_182670920;
  uVar34 = *(ulonglong *)(lVar6 + -0xf0);
  uVar42 = (ulonglong)DAT_182670920;
  uVar47 = *puVar22 ^ uVar33 | uVar28 ^ *(ulonglong *)(lVar6 + -0xac0);
  *puVar1 = uVar47 ^ uVar59;
  *(ulonglong *)(lVar6 - (uVar55 ^ 0x4b23307a)) = (uVar50 ^ uVar34) - uVar47 ^ uVar35;
  uVar11 = DAT_1826708d4;
  lVar5 = DAT_1826707a0;
  uVar34 = *puVar1;
  *(uint *)(lVar6 + -0x7e4) = uVar4 ^ 0x54004a04 | 0x23a63470;
  uVar39 = CONCAT44(uVar11,uVar11);
  uVar28 = CONCAT44(uVar18,uVar18);
  uVar34 = uVar54 ^ uVar59 ^ uVar34 ^ uVar28 ^ *(ulonglong *)(lVar5 + -0x558);
  *(ulonglong *)(lVar5 + -0xc18) = uVar34;
  uVar47 = CONCAT44(uVar7,DAT_1826707e4);
  *puVar2 = ((ulonglong)(uVar18 >> 0x17) | uVar42 << 9) ^ uVar34 >> 0x17 ^ uVar39;
  uVar4 = DAT_1826707d0;
  uVar55 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar5 - (uVar40 ^ 0x4febfc67)) =
       (uVar47 ^ 0xdc19d5d050663548) >> (((byte)uVar13 ^ *(byte *)puVar1) & 0x3f);
  uVar7 = DAT_1826707dc;
  lVar5 = DAT_1826707a0;
  uVar21 = uVar4 | DAT_1826707dc;
  uVar40 = (ulonglong)uVar21;
  bVar24 = (byte)uVar21;
  uVar58 = CONCAT44(DAT_182670aac,DAT_182670aac);
  DAT_1826707b8 = uVar21;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707dc ^ 0xd418e7a5)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar4 ^ 0xdc58fd6c)) ^ uVar28) <<
       ((bVar24 ^ 0x5c) & 0x3f) ^ uVar58;
  uVar18 = DAT_182670a5c;
  uVar47 = (ulonglong)DAT_182670a5c;
  *(uint *)(lVar5 + -0x7e4) = (uVar21 ^ 0x6f6c7844) << (((byte)uVar4 ^ 0x66) & 0x1f);
  uVar50 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 - (uVar55 ^ 0xdc58f184)) =
       (*puVar2 ^ uVar39 | *(ulonglong *)(lVar5 + -0xac0) ^ uVar58) ^ uVar39;
  lVar5 = DAT_1826707a0;
  uVar34 = *(ulonglong *)(DAT_1826707a0 + -0x558);
  *puVar22 = (CONCAT44(uVar7,uVar4) ^ 0x37949cfd3ef0f931) << ((bVar24 ^ 0x51) & 0x3f);
  bVar14 = *(byte *)(lVar5 + -0xf0);
  uVar42 = CONCAT44(DAT_182670828,DAT_182670828);
  uVar34 = (uVar54 ^ uVar34) - (*(ulonglong *)(lVar5 + -0xf0) ^ uVar39);
  *puVar1 = uVar34 ^ uVar42;
  *(ulonglong *)(lVar5 + -0xc18) = uVar34 >> ((bVar14 ^ (byte)uVar11) & 0x3f);
  uVar11 = DAT_1826709e4;
  puVar52 = (ulonglong *)(lVar5 - (uVar40 ^ 0xdc58f8b5));
  *puVar52 = *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xd418e9ad)) ^ uVar35 ^ uVar26 ^ uVar50 ^
             *(ulonglong *)(lVar5 + -0x610);
  uVar54 = CONCAT44(uVar11,uVar11);
  uVar47 = (*puVar2 >> 0x20 ^ uVar47) >> 8;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar47 ^ uVar54;
  lVar5 = DAT_1826707a0;
  uVar34 = (*puVar2 ^ uVar50) << 0x18;
  *puVar22 = uVar34 ^ CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar5 + -0x558) = (uVar47 | uVar34) ^ uVar45;
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xdc58f16d)) =
       (uVar35 ^ *(ulonglong *)(lVar5 + -0x4c8)) -
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0xdc58f42c)) ^ uVar45) ^ uVar54;
  uVar47 = *(ulonglong *)(DAT_1826707a0 - (uVar55 ^ 0xdc58f8bc)) ^ uVar36 ^ uVar45 ^ uVar42 ^
           *(ulonglong *)(DAT_1826707a0 + -0x558);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar47;
  lVar5 = DAT_1826707a0;
  uVar34 = (uVar36 ^ uVar47) >> ((bVar24 ^ 0x41) & 0x3f);
  *puVar2 = uVar34 ^ uVar31;
  *(ulonglong *)(lVar5 + -0xac0) = (uVar36 ^ uVar47) << 0xc ^ uVar59;
  uVar34 = *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xdc58f7b5)) ^ uVar59 | uVar34;
  *puVar22 = uVar34 ^ uVar33;
  uVar34 = (*puVar1 ^ uVar42) - uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar34 ^ uVar42;
  puVar37 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  puVar46 = (ulonglong *)(DAT_1826707a0 + -0xc18);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar34 << ((byte)uVar34 & 0x3f);
  uVar34 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar39 = *puVar37 ^ *puVar46 ^ uVar34 ^ uVar54 ^ uVar39;
  *puVar2 = uVar39;
  uVar47 = (uVar39 ^ uVar34) >> (((byte)uVar7 ^ 0x5c) & 0x3f);
  bVar14 = (byte)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar47 ^ uVar61;
  lVar5 = DAT_1826707a0;
  uVar34 = (*puVar52 ^ uVar34) << ((bVar14 ^ 0x33) & 0x3f);
  *puVar1 = uVar34 ^ uVar32;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707cc ^ 0x234bb424)) = (uVar47 | uVar34) ^ uVar27;
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xdc58fd85)) =
       (*(ulonglong *)(lVar5 + -0xc18) ^ uVar54) -
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar4 ^ 0xdc58f764)) ^ uVar27) ^ uVar28;
  lVar5 = DAT_1826707a0;
  uVar34 = uVar27 ^ uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar42 ^
           *(ulonglong *)(DAT_1826707a0 + -0x610);
  *puVar2 = uVar34;
  uVar47 = (uVar26 ^ uVar34) >> (((byte)uVar7 ^ 0x6b) & 0x3f);
  uVar34 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar5 + -0xac0) = uVar47 ^ uVar3;
  lVar6 = DAT_1826707a0;
  uVar34 = (*(ulonglong *)(lVar5 - (uVar34 ^ 0xf73d9547)) ^ uVar26) << 0x32;
  *puVar1 = uVar34 ^ uVar49;
  *(ulonglong *)(lVar6 + -0xc18) =
       (CONCAT44(uVar30,uVar43) ^ 0x3ffef7ae389e6cbc) >> ((bVar24 ^ 0x4f) & 0x3f);
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar6 + -0x610) = (uVar34 | uVar47) ^ uVar26;
  *(ulonglong *)(lVar5 + -0xc18) =
       *(ulonglong *)(lVar6 - (uVar55 ^ 0xdc58f4b4)) ^ CONCAT44(uVar21,uVar10) ^ uVar26 ^
       0x170d9a88a1e038c2;
  uVar34 = (*(ulonglong *)(lVar5 + -0x4c8) ^ uVar42) -
           (CONCAT44(uVar51,uVar51) ^ 0x7bc6c9f9455ab269);
  *(ulonglong *)(lVar5 + -0xac0) = uVar34 ^ uVar58;
  *puVar1 = (uVar45 ^ *(ulonglong *)(lVar5 + -0x558)) <<
            ((*(byte *)(lVar5 - (uVar41 ^ 0xa32226e4)) ^ (byte)uVar12) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar57 ^ 0x6e7fd491)) =
       uVar34 - (*(ulonglong *)(lVar5 - (uVar40 ^ 0xdc58fb65)) ^ uVar26) ^ uVar29;
  uVar11 = DAT_182670990;
  *(ulonglong *)(lVar5 + -0x4c8) =
       -0x1362035520db59df - (CONCAT44(uVar20,DAT_1826707e4) ^ 0xe2b7f0d01cd1ff28);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707d4 ^ 0x8a2445f0)) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0x610)) - (CONCAT44(uVar10,uVar16) ^ 0xeab48eda8a22e11c) ^
       CONCAT44(uVar11,uVar11);
  uVar33 = *(ulonglong *)(lVar5 - (uVar44 ^ 0x6febf70f)) ^ uVar35 ^ *puVar22 ^ uVar28 ^ uVar33;
  *puVar2 = uVar33;
  *puVar1 = ((ulonglong)(uVar38 & 0xffff | uVar19) | uVar23 << 0x10) ^ uVar33 >> 0x10 ^ uVar31;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar56;
  return;
}



############ FUN_ 180c85320 size=6113 ############

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

void FUN_180c85320(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  byte bVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  byte bVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  uint uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  byte local_res20;
  byte local_148;
  byte local_138;
  byte local_100;
  byte local_f8;
  byte local_b0;
  
  uVar15 = DAT_1826707f4;
  uVar14 = DAT_1826707e4;
  uVar13 = DAT_1826707d8;
  uVar12 = DAT_1826707cc;
  uVar11 = DAT_1826707c4;
  uVar9 = DAT_1826707b0;
  uVar28 = DAT_1826707a8;
  lVar6 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707c4;
  uVar57 = (ulonglong)DAT_1826707cc;
  uVar46 = (ulonglong)DAT_1826707a8;
  uVar4 = *(uint *)(&DAT_18260f758 + DAT_182670d54);
  uVar40 = (ulonglong)DAT_1826707b0;
  uVar52 = DAT_1826707d8 | DAT_1826707b0;
  uVar32 = DAT_1826707f4 * DAT_1826707c4;
  uVar35 = DAT_1826707cc - DAT_1826707e4;
  uVar50 = DAT_1826707a8 << 0x10 | DAT_1826707a8 >> 0x10;
  uVar19 = *(uint *)(&DAT_18260f760 + DAT_182670d54) ^ DAT_1826707d8;
  uVar47 = CONCAT44(DAT_182670a00,DAT_182670a00);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar24 = CONCAT44(DAT_1826707b0,DAT_1826707a8);
  bVar22 = (byte)DAT_1826707a8;
  uVar38 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar41 = (ulonglong)DAT_1826707e4;
  uVar42 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  DAT_1826707b8 = uVar50;
  DAT_1826707d0 = uVar32;
  DAT_1826707e8 = uVar52;
  DAT_1826707f0 = uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = (uVar47 ^ *puVar1) << ((bVar22 ^ 0x6b) & 0x3f) ^ uVar38;
  uVar16 = DAT_1826709a0;
  lVar7 = DAT_1826707a0;
  puVar54 = (ulonglong *)(lVar6 + -0x660);
  *puVar54 = (*(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0xed3a0734)) ^ uVar38 |
             CONCAT44(DAT_18267090c,DAT_18267090c) ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0)) ^
             uVar42;
  puVar2 = (ulonglong *)(lVar7 + -0x6b8);
  uVar55 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 + -0x588) = uVar55 ^ *puVar2 | uVar47 ^ *puVar1;
  uVar25 = CONCAT44(DAT_182670814,DAT_182670814);
  uVar39 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar47 = (ulonglong)uVar50;
  puVar48 = (ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xbf5b094e));
  *puVar48 = (CONCAT44(DAT_18267082c,DAT_18267082c) ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0)) -
             (uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) ^ uVar39;
  uVar16 = DAT_182670918;
  lVar6 = DAT_1826707a0;
  uVar20 = (ulonglong)uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xc1e945be)) ^ uVar42 |
       CONCAT44(uVar35,uVar11) ^ 0x86cb16f6d6e1c910;
  uVar18 = DAT_182670a38;
  uVar17 = DAT_182670924;
  uVar29 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0xb70) =
       (uVar39 ^ *(ulonglong *)(lVar6 + -0x118)) - (uVar42 ^ *puVar54) ^ uVar29;
  uVar49 = CONCAT44(uVar17,uVar17);
  uVar26 = (ulonglong)uVar15;
  *(ulonglong *)(lVar6 - (uVar40 ^ 0x3aed87b6)) =
       (CONCAT44(uVar12,uVar28) ^ 0x3e16bc21f7a940a7) -
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar32 ^ 0x19c0a682)) ^ CONCAT44(uVar18,uVar18)) ^ uVar49
  ;
  uVar34 = CONCAT44(DAT_182670af8,DAT_182670af8);
  puVar3 = (ulonglong *)(lVar6 + -0xd38);
  uVar38 = (*(ulonglong *)(lVar6 - (uVar26 ^ 0x68ceb5a)) ^ uVar42) +
           (uVar49 ^ *(ulonglong *)(lVar6 + -0xbb0)) ^ uVar34;
  *(ulonglong *)(lVar6 + -0xce0) = uVar38;
  uVar16 = DAT_182670a98;
  *(ulonglong *)(lVar6 + -0x658) =
       (*(ulonglong *)(lVar6 - (uVar46 ^ 0x856b93b)) ^ uVar42) + 0x3008444cd9792a03;
  uVar51 = CONCAT44(uVar16,uVar16);
  uVar42 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *puVar3 = uVar42 ^ uVar51 ^ uVar34 ^ uVar38 ^ *(ulonglong *)(lVar6 + -0x890);
  uVar8 = DAT_1826707ac;
  uVar21 = (ulonglong)uVar13;
  bVar31 = (byte)uVar9;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar52 ^ 0xfbedda1e)) =
       CONCAT44(uVar13,uVar11) ^ CONCAT44(uVar14,uVar35) ^ 0x9885f46ff5f75bf6;
  lVar6 = DAT_1826707a0;
  uVar43 = (uVar51 ^ *puVar3) >> ((bVar31 ^ 0x26) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar43 ^ CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(lVar6 + -0x9c8) =
       uVar34 ^ CONCAT44(uVar35,uVar32) ^ *(ulonglong *)(lVar6 + -0xce0) ^ 0x6fe802ccb2657130;
  lVar6 = DAT_1826707a0;
  local_148 = (byte)(uVar28 >> 0x10);
  uVar38 = (uVar51 ^ *puVar3) << ((local_148 ^ 0x76) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar38 ^ CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar16 = DAT_1826708b8;
  uVar38 = uVar38 | uVar43;
  uVar28 = DAT_1826707a8 ^ 0x846398cc;
  puVar27 = (ulonglong *)(lVar6 - ((ulonglong)uVar52 ^ 0xfbedd306));
  *(ulonglong *)(lVar6 + -0x6f0) = uVar51 ^ *puVar27 ^ 0xcc4236d7760d6c4b;
  uVar17 = DAT_182670a2c;
  lVar6 = DAT_1826707a0;
  uVar51 = CONCAT44(uVar16,uVar16);
  puVar45 = (ulonglong *)(DAT_1826707a0 + -0x890);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar38 ^ uVar51;
  uVar36 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x588) = (uVar42 ^ *puVar45) - uVar38 ^ uVar36;
  *(uint *)(lVar6 - (uVar57 ^ 0xc1e94046)) = uVar28 + 0x497b77;
  uVar44 = CONCAT44(DAT_182670800,DAT_182670800);
  local_res20 = (byte)uVar14;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0x68ceae2)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x3e16b751)) ^ uVar29 ^ uVar55 ^ uVar44 ^ *puVar2;
  lVar7 = DAT_1826707a0;
  uVar43 = (*puVar1 ^ uVar44) >> ((local_res20 ^ 0xac) & 0x3f);
  uVar38 = *puVar1;
  uVar42 = *puVar1;
  *(ulonglong *)(lVar6 + -0x610) = uVar43 ^ uVar34;
  *(ulonglong *)(lVar6 + -0x5c0) = uVar43 - (uVar38 ^ uVar44);
  uVar16 = DAT_18267088c;
  uVar53 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar6 + -0xf0) = (uVar42 ^ uVar44) << ((bVar31 ^ 0x26) & 0x3f) ^ uVar53;
  uVar8 = DAT_1826707c0;
  uVar42 = CONCAT44(uVar16,uVar16);
  uVar38 = (ulonglong)DAT_1826707c0;
  uVar37 = DAT_1826707c0 << 0x10;
  uVar55 = (ulonglong)DAT_1826707c0;
  uVar28 = DAT_1826707c0 & 0xff00;
  uVar43 = *(ulonglong *)(lVar6 - (uVar21 ^ 0xe9c1decc)) ^ uVar53 | uVar43;
  *(ulonglong *)(lVar6 + -0x118) = uVar43 ^ uVar42;
  uVar16 = DAT_1826709cc;
  uVar10 = DAT_1826707c0;
  DAT_1826707bc = (uVar37 | uVar28) << 8 | uVar8 >> 8 & 0xff00 | DAT_1826707c0 >> 0x18;
  uVar44 = (ulonglong)DAT_1826707bc;
  uVar34 = CONCAT44(DAT_182670954,DAT_182670954);
  *(ulonglong *)(lVar6 + -0xbb0) = (uVar29 ^ *(ulonglong *)(lVar6 + -0xb70)) - uVar43 ^ uVar34;
  uVar43 = CONCAT44(uVar16,uVar16);
  uVar42 = *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0x3e16bd39)) ^ *(ulonglong *)(lVar7 + -0x588)
           ^ uVar43 ^ uVar42 ^ uVar36;
  *puVar54 = uVar42;
  bVar5 = (byte)uVar8;
  uVar29 = CONCAT44(DAT_182670958,DAT_182670958);
  *(ulonglong *)(lVar7 - (uVar44 ^ 0x21bc1066)) =
       (uVar42 ^ uVar43) >> ((bVar5 ^ 0x1b) & 0x3f) ^ uVar29;
  uVar16 = DAT_182670904;
  uVar42 = (*puVar54 ^ uVar43) << ((bVar5 ^ 0x27) & 0x3f);
  *(ulonglong *)(lVar7 + -0x420) = uVar42 ^ CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar56 = CONCAT44(uVar16,uVar16);
  uVar42 = *(ulonglong *)(lVar7 - (uVar55 ^ 0x3e16ba79)) ^ uVar29 | uVar42;
  uVar43 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(ulonglong *)(lVar7 + -0xce0) = uVar42 ^ uVar56;
  *(ulonglong *)(lVar7 + -0x9c8) = (*(ulonglong *)(lVar7 + -0x588) ^ uVar36) - uVar42 ^ uVar43;
  uVar29 = (ulonglong)DAT_182670a84;
  uVar36 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar28 = DAT_182670a84 >> 0x16;
  uVar51 = *(ulonglong *)(lVar7 - (uVar26 ^ 0x68cec82)) ^ *(ulonglong *)(lVar7 + -0xbb0) ^ uVar36 ^
           uVar34 ^ uVar51;
  *puVar3 = uVar51;
  uVar37 = DAT_1826707ec;
  uVar55 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  uVar42 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar7 - (uVar41 ^ 0xed3a007c)) =
       ((ulonglong)uVar28 | uVar29 << 10) ^ uVar51 >> 0x16 ^ uVar55;
  uVar29 = CONCAT44(DAT_182670af0,DAT_182670af0);
  local_b0 = (byte)uVar32;
  bVar23 = (byte)DAT_182670af0;
  *(ulonglong *)(lVar7 - (uVar40 ^ 0x3aed88ce)) =
       (*(ulonglong *)(lVar7 - (uVar42 ^ 0xbc21332e)) ^ uVar36) << ((local_b0 ^ 0x90) & 0x3f) ^
       uVar29;
  uVar16 = DAT_1826709c0;
  *(ulonglong *)(lVar7 + -0x220) =
       (CONCAT44(uVar52,uVar32) ^ 0x3d7bebbeb261f0e4) >>
       ((bVar23 ^ *(byte *)(lVar7 + -0x4c8)) & 0x3f);
  uVar42 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 - (uVar20 ^ 0xd4af35c2)) =
       (*(ulonglong *)(lVar7 + -0x6f0) ^ uVar55 | uVar29 ^ *(ulonglong *)(lVar7 + -0x4c8)) ^ uVar42;
  lVar6 = DAT_1826707a0;
  uVar51 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 + -0xbb0) ^ uVar34) -
            (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x21bc1eae)) ^ uVar42) ^ uVar51;
  *(ulonglong *)(lVar6 - (uVar41 ^ 0xed3a034c)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x3e16b4b1)) ^ uVar39 ^
       *(ulonglong *)(lVar6 + -0x9c8) ^ uVar42 ^ uVar43;
  *puVar1 = *(ulonglong *)(lVar6 - ((ulonglong)uVar37 ^ 0xbc2138e6)) ^ uVar55 |
            CONCAT44(uVar9,uVar11) ^ 0x426c00d1a2c44d6e;
  uVar17 = DAT_1826708b4;
  uVar42 = CONCAT44(DAT_182670830,DAT_182670830);
  uVar40 = (uVar39 ^ *(ulonglong *)(lVar6 + -0x5c0)) >> (((byte)uVar35 ^ 0x7c) & 0x3f);
  local_100 = (byte)uVar13;
  *(longlong *)(lVar6 + -0xb70) =
       -0x6efac2700e96db16 << (((byte)uVar16 ^ *(byte *)(lVar6 + -0x890)) & 0x3f);
  *(ulonglong *)(lVar6 + -0x610) = uVar40 ^ uVar42;
  uVar16 = DAT_1826708a4;
  uVar42 = (uVar39 ^ *(ulonglong *)(lVar6 + -0x5c0)) << ((local_100 ^ 0x2e) & 0x3f);
  *(ulonglong *)(lVar6 + -0x118) = uVar42 ^ CONCAT44(uVar17,uVar17);
  uVar28 = DAT_182670834;
  uVar42 = uVar42 | uVar40;
  uVar29 = CONCAT44(uVar16,uVar16);
  *puVar54 = uVar42 ^ uVar29;
  uVar36 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(lVar6 + -0x658) = (*(ulonglong *)(lVar6 + -0x9c8) ^ uVar43) - uVar42 ^ uVar36;
  *(ulonglong *)(lVar6 + -0x420) =
       CONCAT44(uVar50,uVar52) ^ CONCAT44(uVar12,DAT_1826707ac) ^ 0x71dd10ccd693237;
  uVar40 = CONCAT44(uVar28,uVar28);
  uVar43 = *(ulonglong *)(lVar6 - (uVar46 ^ 0x856b9e3)) ^ uVar40 ^ uVar51 ^ uVar56 ^
           *(ulonglong *)(lVar6 + -0xce0);
  uVar42 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar34 = ((ulonglong)uVar28 << 0x14 | (ulonglong)(uVar28 >> 0xc)) ^ uVar43 >> 0xc;
  *(ulonglong *)(lVar6 + -0x588) = uVar43;
  puVar30 = (ulonglong *)(lVar6 - (uVar38 ^ 0x3e16bcd1));
  *(ulonglong *)(lVar6 + -0x1b8) = uVar34 ^ uVar42;
  *puVar3 = (uVar53 ^ *puVar30) >> ((local_res20 ^ 0x96) & 0x3f);
  uVar28 = DAT_1826707ec;
  lVar7 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_1826707ec;
  uVar42 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar6 + -0x220) = (uVar40 ^ uVar43) << 0x34 ^ uVar42;
  uVar43 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar7 + -0x4c8) =
       (*(ulonglong *)(lVar7 - (uVar38 ^ 0xbc213c36)) ^ uVar42 | uVar34) ^ uVar43;
  puVar45 = (ulonglong *)(lVar7 - (uVar33 ^ 0xde3ced09));
  uVar42 = CONCAT44(DAT_182670888,DAT_182670888);
  bVar23 = (byte)DAT_1826707e0;
  *(ulonglong *)(lVar7 + -0xbb0) =
       (*(ulonglong *)(lVar7 - (uVar21 ^ 0xe9c1d884)) ^ uVar51) - (uVar43 ^ *puVar45) ^ uVar42;
  *(int *)(lVar7 - (uVar44 ^ 0x21bc1d6a)) = 0x336b479 << ((bVar23 ^ 0x1d) & 0x1f);
  uVar38 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar32 ^ 0x19c0a44a)) =
       uVar38 ^ uVar43 ^ uVar36 ^ *puVar45 ^ *(ulonglong *)(lVar7 + -0x658);
  uVar38 = *(ulonglong *)(lVar7 + -0x6f0) ^ uVar38;
  *puVar1 = (uVar40 ^ *(ulonglong *)(lVar7 + -0x588)) << ((bVar5 ^ 0x27) & 0x3f);
  uVar17 = DAT_182670a10;
  uVar40 = uVar38 << ((local_b0 ^ 0x9d) & 0x3f);
  uVar43 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  local_138 = (byte)uVar15;
  *(ulonglong *)(lVar7 + -0xb70) = uVar38 >> ((bVar31 ^ 0x1f) & 0x3f) ^ uVar43;
  uVar16 = DAT_182670970;
  *(ulonglong *)(lVar7 + -0x890) = uVar40 ^ CONCAT44(uVar17,uVar17);
  uVar34 = CONCAT44(uVar16,uVar16);
  *(longlong *)(lVar7 + -0x5c0) = -0x7bdb64dc2c0a3cac << ((local_138 ^ 9) & 0x3f);
  uVar17 = DAT_182670940;
  uVar16 = DAT_1826707f8;
  *(ulonglong *)(lVar7 + -0x610) =
       (*(ulonglong *)(lVar7 - (uVar33 ^ 0xde3ce2b1)) ^ uVar43 | uVar40) ^ uVar34;
  uVar38 = CONCAT44(uVar17,uVar17);
  *puVar48 = (uVar36 ^ *(ulonglong *)(lVar7 + -0x658)) -
             (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar7 + -0x68)) ^ uVar38;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar28 ^ 0xbc2137de)) =
       (*(ulonglong *)(lVar7 - (uVar41 ^ 0xed3a0d3c)) ^ uVar42) << 0x39;
  uVar51 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar7 + -0x420) =
       (*(ulonglong *)(lVar7 + -0x118) ^ uVar38) - (*(ulonglong *)(lVar7 + -0x610) ^ uVar34) ^
       uVar51;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707e0 ^ 0x3c0030e0)) =
       (CONCAT44(uVar12,uVar52) ^ 0x584d12c067744d7d) - (*(ulonglong *)(lVar7 + -0xb70) ^ uVar43);
  lVar6 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar43 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  uVar38 = CONCAT44(DAT_182670934,DAT_182670934);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (*(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar34) -
       (*(ulonglong *)(DAT_1826707a0 + -0x998) ^ uVar39) ^ uVar43;
  *puVar27 = *(ulonglong *)(lVar6 + -0xbb0) ^ *puVar54 ^ uVar38 ^ uVar42 ^ uVar29;
  uVar29 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *(ulonglong *)(lVar6 + -0x220) = (uVar38 ^ *puVar3) >> ((local_148 ^ 0x77) & 0x3f) ^ uVar29;
  uVar40 = CONCAT44(DAT_182670a08,DAT_182670a08);
  *(ulonglong *)(lVar6 - (uVar44 ^ 0x21bc1786)) =
       (*(ulonglong *)(lVar6 - (uVar57 ^ 0xc1e94ee6)) ^ uVar38) << (((byte)uVar35 ^ 0x4d) & 0x3f) ^
       uVar40;
  uVar16 = DAT_1826709d4;
  uVar38 = *(ulonglong *)(lVar6 + -0x220);
  *puVar2 = (CONCAT44(uVar11,uVar52) ^ 0x5b5dc7731d36133) -
            (CONCAT44(uVar11,uVar8) ^ 0x8fa6b418644dee59);
  *(ulonglong *)(lVar6 - (uVar20 ^ 0xd4af399a)) =
       (uVar29 ^ uVar38 | *(ulonglong *)(lVar6 + -0x1b8) ^ uVar40) ^ uVar36;
  uVar17 = DAT_1826709ec;
  uVar42 = (*(ulonglong *)(lVar6 - (uVar47 ^ 0xbf5b03e6)) ^ uVar42) -
           (*(ulonglong *)(lVar6 - (uVar46 ^ 0x856b543)) ^ CONCAT44(uVar16,uVar16));
  *(ulonglong *)(lVar6 + -0x588) = uVar42 ^ CONCAT44(DAT_182670838,DAT_182670838);
  uVar18 = DAT_182670a48;
  uVar28 = DAT_1826707e0;
  uVar40 = CONCAT44(uVar17,uVar17);
  uVar38 = *(ulonglong *)(lVar6 + -0x4c8);
  *puVar1 = uVar42 - (uVar36 ^ *(ulonglong *)(lVar6 + -0x4c8)) ^ uVar40;
  uVar16 = DAT_18267099c;
  uVar42 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar6 + -0x6f0) =
       -(*(ulonglong *)(lVar6 - (uVar47 ^ 0xbf5b0c56)) ^ CONCAT44(uVar18,uVar18)) - 3 ^ uVar42;
  uVar29 = CONCAT44(uVar16,uVar16);
  uVar38 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0x3c003af0)) ^ uVar42) + (uVar36 ^ uVar38) ^
           uVar29;
  uVar42 = CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar6 + -0x5c0) = uVar38;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0x3c003490)) =
       *(ulonglong *)(lVar6 - (uVar41 ^ 0xed3a02ac)) ^ uVar42 ^ uVar38 ^ uVar29 ^ uVar51;
  uVar38 = (uVar42 ^ *(ulonglong *)(lVar6 + -0x890)) >> ((bVar31 ^ 3) & 0x3f);
  *(ulonglong *)(lVar6 + -0x658) = uVar38 ^ CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar16 = DAT_1826708d8;
  lVar6 = DAT_1826707a0;
  local_f8 = (byte)(uVar10 >> 0x18);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xbf5b00c6)) ^ uVar42) << ((local_f8 ^ 5) & 0x3f) ^
       uVar25;
  lVar7 = DAT_1826707a0;
  uVar57 = CONCAT44(uVar16,uVar16);
  uVar38 = *(ulonglong *)(lVar6 - ((ulonglong)uVar52 ^ 0xfbedd7f6)) ^ uVar25 | uVar38;
  uVar25 = CONCAT44(DAT_182670944,DAT_182670944);
  puVar45 = (ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0x68ce91a));
  *(ulonglong *)(DAT_1826707a0 + -0x118) = uVar38 ^ uVar57;
  uVar28 = DAT_1826707ec;
  uVar42 = (ulonglong)DAT_182670ab0;
  uVar47 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707ec ^ 0xbc213566)) =
       (*puVar45 ^ uVar51) - uVar38 ^ uVar25;
  bVar23 = (byte)DAT_1826707ac;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar32 ^ 0x19c0ae5a)) =
       uVar47 ^ *(ulonglong *)(lVar7 + -0xf0) ^ uVar40 ^ uVar43 ^ *puVar1;
  lVar6 = DAT_1826707a0;
  uVar42 = (*(ulonglong *)(lVar7 + -0xce0) >> 0x20 ^ uVar42) >> 5;
  uVar38 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar42 ^ CONCAT44(DAT_182670928,DAT_182670928);
  lVar7 = DAT_1826707a0;
  uVar47 = (uVar47 ^ *(ulonglong *)(lVar6 + -0xce0)) << ((bVar23 ^ 0x3a) & 0x3f);
  *puVar54 = uVar47 ^ uVar38;
  uVar29 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar7 - (uVar46 ^ 0x856b263)) = (uVar47 | uVar42) ^ uVar29;
  uVar38 = *(ulonglong *)(lVar7 + -0xb70);
  uVar42 = (ulonglong)DAT_1826707e0;
  *puVar2 = CONCAT44(uVar11,uVar28) ^ 0x9ecbb991d917d271 | uVar24 ^ 0x8cc7ef38c786e5d4;
  uVar24 = CONCAT44(DAT_182670a40,DAT_182670a40);
  uVar47 = (*(ulonglong *)(lVar7 - (uVar42 ^ 0x3c003bd8)) ^ uVar40) -
           (*(ulonglong *)(lVar7 - (uVar21 ^ 0xe9c1d304)) ^ uVar29) ^ uVar24;
  uVar42 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar7 + -0x220) = uVar47;
  uVar40 = uVar42 ^ uVar29 ^ uVar25 ^ uVar38 ^ *puVar3;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar40;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = (uVar40 ^ uVar42) >> ((bVar5 ^ 0x36) & 0x3f) ^ uVar39;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       CONCAT44(uVar14,uVar12) ^ 0x4b41bf35d53fd5fd | CONCAT44(uVar14,uVar8) ^ 0xf3fba3c6d0f58fc9;
  uVar46 = (uVar40 ^ uVar42) << (((byte)uVar52 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar6 + -0x588) = uVar46 ^ uVar49;
  lVar7 = DAT_1826707a0;
  uVar40 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0xed3a0dfc)) ^ uVar25) >>
       (((byte)DAT_1826707ac ^ 0x2d) & 0x3f);
  uVar42 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar7 + -0x6f0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xde3ce3d9)) ^ uVar39 | uVar46) ^ uVar42;
  *(ulonglong *)(lVar7 + -0x5c0) =
       (CONCAT44(uVar35,uVar50) ^ 0xbf27a85d76816f1) + 0x51e00b150e8f5504;
  uVar46 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar41 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar7 + -0x890) =
       (uVar25 ^ uVar38) - (*(ulonglong *)(lVar7 - (uVar40 ^ 0x3e16bad1)) ^ uVar42) ^ uVar46;
  *(ulonglong *)(lVar7 + -0x658) =
       uVar41 ^ uVar24 ^ uVar57 ^ *(ulonglong *)(lVar7 + -0x118) ^ uVar47;
  uVar16 = DAT_1826709b4;
  uVar42 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar7 + -0x420) =
       (*(ulonglong *)(lVar7 - (uVar21 ^ 0xe9c1d864)) ^ uVar41) >> ((bVar22 ^ 0x73) & 0x3f) ^ uVar42
  ;
  uVar38 = CONCAT44(uVar16,uVar16);
  *puVar30 = (*(ulonglong *)(lVar7 - (uVar26 ^ 0x68ceb62)) ^ uVar41) << ((local_b0 ^ 0xa2) & 0x3f) ^
             uVar38;
  uVar17 = DAT_1826709a4;
  uVar38 = uVar38 ^ *(ulonglong *)(lVar7 + -0xf0) | uVar42 ^ *(ulonglong *)(lVar7 + -0x420);
  uVar42 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)(lVar7 + -0xce0) = uVar38 ^ uVar42;
  uVar16 = DAT_182670930;
  *(ulonglong *)(lVar7 + -0x610) =
       (*(ulonglong *)(lVar7 - (uVar20 ^ 0xd4af3f72)) ^ uVar24) - uVar38 ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_18267098c;
  uVar38 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707e0 ^ 0x3c003a60)) =
       *(ulonglong *)(lVar7 - (uVar26 ^ 0x68ce1da)) ^ uVar38 ^ uVar42 ^ uVar46 ^
       *(ulonglong *)(lVar7 + -0x890);
  uVar47 = (*puVar54 ^ uVar38) >> ((local_f8 ^ 10) & 0x3f);
  *puVar2 = uVar47 ^ CONCAT44(uVar17,uVar17);
  uVar42 = (*puVar54 ^ uVar38) << ((local_148 ^ 0x5a) & 0x3f);
  uVar38 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *puVar1 = uVar42 ^ CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *puVar3 = (uVar47 | uVar42) ^ uVar38;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar4 ^ uVar52;
  return;
}



############ FUN_ 180cee460 size=5198 ############

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

void FUN_180cee460(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  byte bVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  
  uVar11 = DAT_1826707e8;
  uVar10 = DAT_1826707cc;
  lVar5 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707cc;
  uVar35 = (ulonglong)DAT_1826707e8;
  uVar46 = DAT_1826707cc & DAT_1826707e8;
  uVar4 = *(uint *)(&DAT_18260f760 + DAT_182670ba0);
  uVar18 = *(uint *)(&DAT_18260f758 + DAT_182670ba0) ^ DAT_1826707cc;
  uVar36 = CONCAT44(DAT_1826708dc,DAT_1826708dc) ^ *(ulonglong *)(DAT_1826707a0 + -0x9c8);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x660);
  uVar27 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar42 = (ulonglong)uVar46;
  uVar33 = CONCAT44(DAT_1826707cc,DAT_1826707e8);
  DAT_1826707e4 = uVar46;
  *puVar1 = (CONCAT44(DAT_182670924,DAT_182670924) ^ *(ulonglong *)(DAT_1826707a0 + -0x438)) +
            uVar36 ^ uVar27;
  puVar25 = (ulonglong *)(lVar5 + -0x6b8);
  bVar17 = (byte)uVar11;
  uVar30 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *puVar25 = uVar36 << ((bVar17 ^ 0x6e) & 0x3f) ^ uVar30;
  uVar8 = DAT_182670858;
  uVar36 = uVar36 >> ((bVar17 ^ 0x5e) & 0x3f);
  puVar21 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar46 ^ 0x186e285c));
  *puVar21 = uVar36 ^ CONCAT44(DAT_182670848,DAT_182670848);
  uVar26 = *puVar1;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar30 = (uVar36 | uVar30 ^ *puVar25) ^ uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar30;
  uVar14 = DAT_182670a50;
  uVar8 = DAT_18267096c;
  lVar5 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670840,DAT_182670840);
  uVar30 = uVar26 ^ uVar36 ^ uVar22 ^ uVar27 ^ uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar30;
  bVar16 = (byte)uVar46;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x630) = (uVar33 ^ 0xa3db48fbaa6d5aa1) >> ((bVar16 ^ 0x72) & 0x3f);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x5c6e6715)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x19ff2b8e)) ^ CONCAT44(uVar8,uVar8)) +
       (uVar36 ^ uVar30) ^ uVar29;
  uVar30 = (uVar36 ^ *(ulonglong *)(lVar5 + -0x610)) << ((bVar16 ^ 0x41) & 0x3f);
  puVar2 = (ulonglong *)(lVar5 + -0x890);
  *puVar2 = uVar30 ^ CONCAT44(DAT_182670a48,DAT_182670a48);
  puVar23 = (ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x5c6e644d));
  uVar34 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  uVar26 = (ulonglong)DAT_182670b14;
  uVar36 = (uVar36 ^ *puVar23) >> ((bVar16 ^ 0x7f) & 0x3f);
  *(ulonglong *)(lVar5 + -0x5c0) = uVar36 ^ uVar34;
  *(byte *)(lVar5 + -0x3f1) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x390) ^ uVar26) ^ (byte)DAT_182670a40;
  uVar8 = _DAT_18267097c;
  uVar40 = CONCAT44(DAT_182670974,DAT_182670974);
  uVar26 = (uVar36 | uVar30) ^ uVar40;
  *(ulonglong *)(lVar5 + -0x658) = uVar26;
  uVar14 = DAT_182670a18;
  uVar7 = DAT_1826707c8;
  uVar9 = DAT_1826707c0;
  uVar43 = CONCAT44(uVar8,uVar8);
  uVar37 = CONCAT44(DAT_182670a80,DAT_182670a80);
  uVar26 = *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x19ff2a0e)) ^ uVar43 ^ uVar40 ^ uVar29 ^
           uVar26;
  *(ulonglong *)(lVar5 + -0x1b8) = uVar26;
  uVar36 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xd38) =
       (uVar37 ^ *(ulonglong *)(lVar5 + -0x410)) + (*puVar1 ^ uVar27) ^ uVar36;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xf877768f)) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707d4 ^ 0xebdbb998)) ^ uVar40 | uVar26 ^ uVar43;
  uVar28 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar5 + -0x420) =
       (uVar37 ^ *(ulonglong *)(lVar5 + -0x410)) << (((byte)uVar10 ^ 0x78) & 0x3f) ^ uVar28;
  uVar7 = DAT_1826707a8;
  uVar26 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar5 + -0xb70) = 0x7e27e46db7061b81 >> ((bVar16 ^ 0x73) & 0x3f);
  uVar33 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar30 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x5c6e689d)) =
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0xcacabbaf)) ^ uVar37) >> (((byte)uVar9 ^ 0xfe) & 0x3f) ^
       uVar33;
  uVar8 = _DAT_1826709e0;
  uVar38 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar33 = (uVar28 ^ *(ulonglong *)(lVar5 + -0x420) | *(ulonglong *)(lVar5 + -0xac0) ^ uVar33) ^
           uVar38;
  *(ulonglong *)(lVar5 + -0x9e0) = uVar33;
  *(ulonglong *)(lVar5 + -0xf0) = uVar40 ^ *(ulonglong *)(lVar5 + -0x658) ^ 0xb8d22bf2b3e556e0;
  uVar15 = DAT_1826707dc;
  uVar9 = DAT_1826707d8;
  uVar40 = CONCAT44(uVar8,uVar8);
  uVar26 = (ulonglong)DAT_1826707b4;
  uVar37 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x5c6e6fd5)) =
       *(ulonglong *)(lVar5 - (uVar30 ^ 0xb8d33ce7)) ^ uVar40 ^ uVar33 ^ uVar38 ^ uVar36;
  uVar12 = DAT_1826707ec;
  lVar6 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  uVar41 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x420127d5)) =
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0xcd9e1f8d)) ^ uVar40) +
       (CONCAT44(uVar9,uVar15) ^ 0x2e209f04f3d03d3) ^ uVar30;
  uVar40 = CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar26 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar6 - (uVar35 ^ 0x19ff2b7e)) =
       (CONCAT44(DAT_1826707bc,uVar12) ^ 0x4361ba7ea14c954c) +
       (*(ulonglong *)(lVar6 + -0x548) ^ uVar29) ^ uVar40;
  uVar8 = DAT_182670804;
  uVar35 = (*(ulonglong *)(lVar6 + -0xbb0) ^ uVar30) << 0x19;
  uVar37 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar33 = (*(ulonglong *)(lVar6 + -0xbb0) ^ uVar30) + (uVar40 ^ *(ulonglong *)(lVar6 + -0x438)) ^
           uVar37;
  *(ulonglong *)(lVar6 + -0x9c8) = uVar33;
  uVar14 = DAT_182670a24;
  *(ulonglong *)(lVar6 + -0xa18) = uVar35 ^ CONCAT44(uVar8,uVar8);
  uVar26 = (*(ulonglong *)(lVar6 - (uVar26 ^ 0xe600db09)) ^ uVar30) >> ((bVar17 ^ 0x61) & 0x3f);
  *puVar25 = uVar26 ^ CONCAT44(uVar14,uVar14);
  uVar12 = DAT_1826707f0;
  uVar30 = (ulonglong)DAT_1826707f0;
  uVar19 = DAT_1826707f0 * uVar46;
  uVar29 = CONCAT44(DAT_182670910,DAT_182670910);
  uVar26 = (uVar26 | uVar35) ^ uVar29;
  uVar47 = (ulonglong)uVar19;
  DAT_1826707bc = uVar19;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar26;
  lVar5 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar38 ^ uVar29 ^ uVar33 ^ uVar37 ^ uVar26;
  lVar6 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar43 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar19 ^ 0xd276474c)) ^ uVar43) +
           (CONCAT44(uVar46,uVar12) ^ 0xa24c4255918887c4);
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  uVar35 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar43 ^ uVar39;
  uVar8 = DAT_182670b00;
  uVar26 = (uVar36 ^ *puVar3) + (CONCAT44(uVar46,uVar12) ^ 0x7ae42c00c3400f66);
  *(ulonglong *)(lVar6 + -0x610) = uVar26 ^ uVar35;
  uVar33 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 + -0x5c0) = uVar43 + uVar26 ^ uVar33;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar19 ^ 0xd2764e64)) =
       *(ulonglong *)(lVar6 - (uVar47 ^ 0xd2764f3c)) ^ uVar37 | 0xb667c6643ce5f1b9;
  bVar17 = (byte)uVar12;
  *(ulonglong *)(lVar6 - (uVar47 ^ 0xd2764094)) =
       (*(ulonglong *)(lVar6 - (uVar42 ^ 0x186e268c)) ^ uVar39) << ((bVar17 ^ 0x4c) & 0x3f) ^ uVar27
  ;
  lVar5 = DAT_1826707a0;
  uVar44 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xd276437c)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar39) >> ((bVar16 ^ 0x5b) & 0x3f) ^ uVar44;
  lVar6 = DAT_1826707a0;
  puVar24 = (ulonglong *)(lVar5 - (uVar42 ^ 0x186e2424));
  uVar26 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(DAT_1826707a0 + -0xb70) =
       (uVar27 ^ *puVar24 | uVar44 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) ^ uVar26;
  uVar9 = DAT_1826707b0;
  *(ulonglong *)(lVar6 - (uVar42 ^ 0x186e2654)) =
       *(ulonglong *)(lVar6 - (uVar30 ^ 0xe273a71d)) ^ uVar26 ^ uVar33 ^ uVar40 ^
       *(ulonglong *)(lVar6 + -0x5c0);
  uVar14 = DAT_182670ad8;
  uVar43 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar6 + -0x9c8)) + (uVar40 ^ *(ulonglong *)(lVar6 + -0x410)) ^
           uVar43;
  *(ulonglong *)(lVar6 + -0x420) = uVar37;
  uVar8 = DAT_1826709f0;
  lVar5 = DAT_1826707a0;
  uVar26 = *(ulonglong *)(DAT_1826707a0 + -0x410);
  uVar35 = (*(ulonglong *)(lVar6 - (uVar47 ^ 0xd27642e4)) ^ uVar40) << (((byte)uVar9 ^ 0x2f) & 0x3f)
  ;
  *(ulonglong *)(lVar6 + -0xac0) = uVar35 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182670a34;
  uVar45 = CONCAT44(uVar8,uVar8);
  uVar27 = (uVar40 ^ uVar26) >> ((bVar17 ^ 0x7f) & 0x3f);
  *(ulonglong *)(lVar5 + -0x658) = uVar27 ^ uVar45;
  uVar8 = DAT_182670a30;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar35 = (uVar35 | uVar27) ^ uVar26;
  *(ulonglong *)(lVar5 + -0xf0) = uVar35;
  uVar27 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - (uVar30 ^ 0xe273a58d)) = uVar27 ^ uVar26 ^ uVar37 ^ uVar43 ^ uVar35;
  puVar31 = (ulonglong *)(lVar5 - (uVar47 ^ 0xd27640c4));
  uVar39 = CONCAT44(DAT_182670994,DAT_182670994);
  uVar26 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar5 - (uVar47 ^ 0xd2764b7c)) =
       (*(ulonglong *)(lVar5 - (uVar42 ^ 0x186e2784)) ^ uVar33) + (*puVar31 ^ uVar38) ^ uVar39;
  uVar33 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0xb8d337ef)) ^ uVar38) << 0xc;
  uVar26 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar5 + -0x548) = uVar33 ^ CONCAT44(DAT_182670904,DAT_182670904);
  lVar5 = DAT_1826707a0;
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x630);
  *(undefined8 *)(DAT_1826707a0 + -0xbb0) = 0x50348be897;
  *(ulonglong *)(lVar5 + -0x438) = (uVar38 ^ *puVar3) >> ((bVar17 ^ 0x59) & 0x3f) ^ uVar26;
  uVar15 = DAT_1826707b8;
  uVar35 = (ulonglong)DAT_1826707b8;
  *puVar21 = (*(ulonglong *)(lVar5 - (uVar30 ^ 0xe273a855)) ^ uVar26 | uVar33) ^ uVar36;
  lVar5 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670944,DAT_182670944);
  uVar36 = uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar39 ^
           *(ulonglong *)(DAT_1826707a0 + -0xa18) ^ uVar36;
  *puVar25 = uVar36;
  *(ulonglong *)(lVar5 + -0x220) =
       (uVar43 ^ *(ulonglong *)(lVar5 + -0x420)) + (uVar36 ^ uVar33) ^ uVar45;
  uVar26 = (ulonglong)DAT_1826707f4;
  *(undefined8 *)(lVar5 - (uVar41 ^ 0x712fae10)) = 0;
  uVar37 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0xe600dd81)) = (uVar33 ^ *puVar25) << 0x3a ^ uVar37;
  uVar36 = CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar26 = (uVar33 ^ *puVar25) >> (((byte)DAT_1826707b4 ^ 3) & 0x3f);
  *(ulonglong *)(lVar5 + -0x610) = uVar26 ^ uVar36;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0xe273a4fd)) =
       (*(ulonglong *)(lVar5 - (uVar42 ^ 0x186e2f7c)) ^ uVar37 | uVar26) ^ uVar34;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707d4 ^ 0xebdbbb08)) =
       CONCAT44(DAT_1826707dc,uVar15) ^ 0xfefd7eefe79df735 | 0x8e312ae8a29dc634;
  uVar15 = DAT_1826707c8;
  uVar26 = *(ulonglong *)(lVar5 + -0xd38);
  uVar47 = CONCAT44(DAT_182670828,DAT_182670828);
  *puVar1 = *(ulonglong *)(lVar5 - (uVar30 ^ 0xe273ae4d)) ^ uVar47 ^ uVar45 ^ uVar34 ^ *puVar2;
  uVar8 = DAT_182670a4c;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(lVar5 + -0x588) = (uVar37 ^ uVar26) - (uVar36 ^ *puVar23);
  uVar37 = CONCAT44(uVar8,uVar8);
  uVar40 = (uVar27 ^ *(ulonglong *)(lVar6 + -0x9e0)) << 0x16;
  uVar26 = *(ulonglong *)(lVar6 + -0x9e0);
  uVar36 = (*(ulonglong *)(lVar5 - (uVar41 ^ 0x712fa648)) ^ uVar27) +
           (*(ulonglong *)(lVar5 + -0xd88) ^ uVar39) ^ uVar37;
  uVar30 = CONCAT44(uVar7,DAT_1826707c0);
  *(ulonglong *)(lVar6 + -0x410) = uVar40 ^ uVar22;
  *(ulonglong *)(lVar5 + -0xb70) = uVar36;
  uVar14 = DAT_182670ab8;
  uVar7 = DAT_1826707d0;
  uVar38 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar6 + -0x9c8) = CONCAT44(DAT_1826707d0,uVar15) ^ uVar30 ^ 0x572cab12f0cddae6;
  uVar8 = DAT_1826708e8;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar30 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar6 + -0x658) = (uVar27 ^ uVar26) >> (((byte)uVar15 ^ 0x2d) & 0x3f) ^ uVar33;
  uVar14 = DAT_182670af4;
  uVar15 = DAT_18267093c;
  lVar5 = DAT_1826707a0;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar27 = (ulonglong)DAT_18267093c;
  uVar26 = (*(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0x76fde7bd)) ^ uVar33 | uVar40) ^ uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar26;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar26 = uVar30 ^ uVar22 ^ uVar37 ^ uVar36 ^ uVar26;
  uVar33 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xf0) = uVar26;
  *(ulonglong *)(lVar5 + -0x5c0) =
       (uVar30 ^ uVar26) + (uVar45 ^ *(ulonglong *)(lVar5 + -0x220)) ^ uVar33;
  *(undefined8 *)(lVar5 - (uVar32 ^ 0x5c6e646d)) = 0x5bb35a225b987dc;
  uVar13 = DAT_1826707f4;
  uVar15 = DAT_1826707c0 ^ 0xf0933171;
  uVar22 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0x85113ee1)) ^ uVar30) <<
           (((byte)DAT_1826707f4 ^ 0x99) & 0x3f);
  uVar20 = DAT_1826707c4 ^ 0xcf03b658;
  *(ulonglong *)(lVar5 + -0xbb0) = uVar22 ^ CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar8 = DAT_1826708b8;
  uVar36 = (ulonglong)DAT_1826707dc;
  *(uint *)(lVar5 + -0x3d4) = uVar20 + uVar15;
  uVar26 = (ulonglong)DAT_1826707b0;
  uVar30 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 + -0x548) = *(ulonglong *)(lVar5 + -0xf0) >> 0x20 ^ uVar30 ^ uVar27;
  uVar15 = DAT_1826707d8;
  *(ulonglong *)(lVar5 - (uVar36 ^ 0x4201267d)) =
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0x2c654749)) ^ uVar30 | uVar22) ^ uVar44;
  lVar6 = DAT_1826707a0;
  uVar26 = *puVar1;
  uVar36 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(lVar5 + -0x420) =
       uVar36 ^ uVar33 ^ uVar44 ^ *(ulonglong *)(lVar5 + -0xa18) ^ *(ulonglong *)(lVar5 + -0x5c0);
  uVar40 = CONCAT44(DAT_18267087c,DAT_18267087c);
  bVar16 = (byte)DAT_1826707e0;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0xcacabb87)) =
       (uVar47 ^ uVar26) + (uVar37 ^ *(ulonglong *)(lVar5 + -0xb70)) ^ uVar40;
  uVar14 = DAT_182670ae0;
  uVar26 = *puVar1;
  uVar37 = (uVar47 ^ uVar26) << ((bVar16 ^ 0xff) & 0x3f);
  *(ulonglong *)(lVar5 + -0x1b8) = uVar37 ^ uVar29;
  uVar8 = DAT_1826707ac;
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar30 = (ulonglong)DAT_1826707b8;
  *puVar25 = (uVar47 ^ uVar26) >> (((byte)uVar15 ^ 0x9f) & 0x3f) ^ uVar22;
  uVar35 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar26 = CONCAT44(uVar46,DAT_1826707c4);
  uVar22 = (*(ulonglong *)(lVar6 - (uVar30 ^ 0x851138a9)) ^ uVar22 | uVar37) ^ uVar35;
  *(ulonglong *)(lVar6 + -0x4c8) = uVar22;
  *puVar2 = (uVar26 ^ 0x11f4d4ebc71a1339) + 0x9440617c8d292b5;
  uVar15 = DAT_182670a14;
  uVar30 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar29 = (ulonglong)DAT_182670a14;
  uVar26 = uVar30 ^ uVar35 ^ uVar40 ^ uVar22 ^ *(ulonglong *)(lVar6 + -0x438);
  *(ulonglong *)(lVar6 + -0xd38) = uVar26;
  uVar22 = (ulonglong)DAT_1826707b4;
  uVar37 = (CONCAT44(uVar9,uVar11) ^ 0x4eef4c4538cc8c4d) + (uVar26 ^ uVar30);
  *(undefined8 *)(lVar6 + -0x588) = 0xc081ae21cd2ca1c;
  uVar27 = CONCAT44(uVar15,uVar15);
  uVar30 = CONCAT44(DAT_182670a74,DAT_182670a74);
  uVar26 = CONCAT44(uVar13,DAT_1826707b0);
  *(ulonglong *)(lVar6 + -0x610) = uVar37 ^ uVar27;
  uVar14 = DAT_182670880;
  uVar26 = (uVar26 ^ 0xd91f064725cbde23) + (uVar33 ^ *(ulonglong *)(lVar6 + -0x5c0));
  *(ulonglong *)(lVar6 + -0xd88) = uVar26 ^ uVar30;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar29 = (*(ulonglong *)(lVar6 + -0x610) >> 0x20 ^ uVar29) >> 0x12;
  uVar30 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar6 + -0x9c8) =
       (*(ulonglong *)(lVar6 - (uVar22 ^ 0xcd9e1415)) ^ uVar27) + uVar26 ^ uVar35;
  uVar14 = DAT_1826708cc;
  uVar37 = uVar37 << (((byte)DAT_1826707a8 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar6 + -0x9e0) = uVar37 ^ uVar30;
  *(ulonglong *)(lVar6 + -0x410) = uVar29 ^ CONCAT44(uVar14,uVar14);
  uVar30 = (uVar29 | uVar37) ^ uVar43;
  uVar26 = CONCAT44(DAT_1826707c8,uVar12);
  *(ulonglong *)(lVar6 + -0x658) = uVar30;
  uVar9 = DAT_1826707d4;
  uVar37 = (ulonglong)DAT_1826707d4;
  bVar16 = (byte)DAT_1826707b8;
  *(ulonglong *)(lVar6 + -0xac0) = (uVar26 ^ 0x5d72c3149ff01f66) << (((byte)uVar8 ^ 0x3e) & 0x3f);
  uVar8 = DAT_18267095c;
  *(ulonglong *)(lVar6 + -0x220) =
       *(ulonglong *)(lVar6 - (uVar42 ^ 0x186e2b8c)) ^ CONCAT44(DAT_182670a04,DAT_182670a04) ^
       uVar35 ^ uVar43 ^ uVar30;
  lVar5 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar8,uVar8);
  *puVar31 = (CONCAT44(uVar10,uVar9) ^ 0xf99a8a9f90fbc915) +
             (uVar36 ^ *(ulonglong *)(lVar6 + -0x420)) ^ uVar26;
  uVar26 = *(ulonglong *)(lVar5 + -0x630) ^ uVar26;
  uVar30 = (CONCAT44(uVar13,uVar7) ^ 0xc9bfcd3222027278) + (uVar40 ^ *(ulonglong *)(lVar5 + -0x438))
  ;
  uVar33 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(lVar5 + -0xf0) = uVar30 ^ CONCAT44(DAT_18267091c,DAT_18267091c);
  bVar17 = (byte)DAT_1826707e0;
  uVar29 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar22 = uVar30 + uVar26 ^ uVar33;
  *(ulonglong *)(lVar5 + -0xbb0) = uVar22;
  *(ulonglong *)(lVar5 + -0x548) = uVar26 << ((bVar17 ^ 0xcf) & 0x3f) ^ uVar29;
  uVar30 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar36 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar5 + -0xa18) = uVar26 >> ((bVar16 ^ 0x21) & 0x3f) ^ uVar30;
  uVar14 = DAT_1826709e4;
  uVar8 = DAT_182670964;
  uVar26 = (ulonglong)DAT_1826707c0;
  uVar30 = (*(ulonglong *)(lVar5 - (uVar38 ^ 0x3dc205d6)) ^ uVar30 |
           *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707b4 ^ 0xcd9e174d)) ^ uVar29) ^ uVar36;
  *(ulonglong *)(lVar5 + -0xb70) = uVar30;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x76fde785)) = uVar22 ^ uVar29 ^ uVar30 ^ uVar36 ^ uVar33;
  uVar26 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar5 + -0x1b8) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0xebdbb608)) ^ uVar35) + (*puVar24 ^ uVar29) ^
       CONCAT44(uVar8,uVar8);
  *puVar25 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0xfb8c854b)) ^ uVar29) << ((byte)uVar19 & 0x3f) ^
             uVar28;
  *puVar2 = (*puVar1 ^ uVar29) >> ((bVar16 ^ 0x1d) & 0x3f) ^ CONCAT44(DAT_18267094c,DAT_18267094c);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar46) * 4) = uVar18;
  return;
}



############ FUN_ 180c86b10 size=5649 ############

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

void FUN_180c86b10(void)

{
  ulonglong *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  ulonglong uVar14;
  byte bVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  ulonglong *puVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  
  uVar10 = DAT_1826707f0;
  uVar9 = DAT_1826707cc;
  uVar8 = DAT_1826707b8;
  uVar7 = DAT_1826707b0;
  lVar4 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707b0;
  uVar26 = (ulonglong)DAT_1826707f0;
  uVar34 = (ulonglong)DAT_1826707b8;
  uVar30 = (ulonglong)DAT_1826707cc;
  uVar43 = DAT_1826707b0 ^ DAT_1826707f0;
  uVar39 = *(uint *)(&DAT_18260f758 + DAT_182670d58) ^ DAT_1826707f0;
  uVar20 = DAT_1826707b8 + DAT_1826707cc;
  uVar2 = *(uint *)(&DAT_18260f750 + (uVar33 ^ 0xf20a7d2a) + (longlong)DAT_182670d58);
  uVar24 = (ulonglong)uVar20;
  uVar41 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar16 = (CONCAT44(uVar20,DAT_1826707cc) ^ 0xd5c18a0a2cd3adc1) -
           (*(ulonglong *)(DAT_1826707a0 + -0x118) ^ uVar41);
  puVar31 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0x571225ab));
  DAT_1826707c8 = uVar43;
  DAT_1826707e0 = uVar20;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar16 ^ CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar13 = DAT_182670a2c;
  uVar12 = DAT_182670a0c;
  uVar35 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  puVar1 = (ulonglong *)(lVar4 + -0xd88);
  uVar28 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  uVar16 = (*puVar31 ^ uVar35) + uVar16 ^ uVar28;
  *puVar1 = uVar16;
  uVar11 = DAT_182670870;
  uVar42 = CONCAT44(uVar12,uVar12);
  uVar21 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar14 = (ulonglong)uVar43;
  puVar17 = (ulonglong *)(lVar4 - (uVar14 ^ 0x5bfdd8c2));
  uVar16 = *puVar17 ^ uVar21 ^ uVar42 ^ uVar28 ^ uVar16;
  *(ulonglong *)(lVar4 + -0xc18) = uVar16;
  lVar4 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar11,uVar11);
  bVar15 = (byte)uVar10;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = (uVar42 ^ uVar16) >> ((bVar15 ^ 0x45) & 0x3f) ^ uVar32;
  uVar11 = DAT_182670ab8;
  puVar18 = (ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xd32c56f2));
  puVar50 = (ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xf20a71da));
  *puVar50 = (*puVar18 ^ uVar32) << ((*(byte *)puVar1 ^ (byte)uVar13) & 0x3f);
  bVar3 = (byte)uVar8;
  uVar16 = (*(ulonglong *)(lVar4 + -0xc18) ^ uVar42) << (bVar3 & 0x3f);
  *(ulonglong *)(lVar4 + -0xf0) = uVar16 ^ CONCAT44(uVar11,uVar11);
  bVar23 = (byte)uVar20;
  *(ulonglong *)(lVar4 + -0xd38) = uVar16 << ((bVar23 ^ 0xc4) & 0x3f);
  uVar12 = DAT_182670a8c;
  uVar11 = DAT_1826708ec;
  uVar47 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar16 = uVar16 | uVar32 ^ *(ulonglong *)(lVar4 + -0x4c8);
  *(ulonglong *)(lVar4 + -0x558) = uVar16 ^ uVar47;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar16 = (*(ulonglong *)(lVar4 + -0x1b8) ^ uVar21) - uVar16;
  uVar42 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar4 + -0x658) = uVar16 ^ uVar25;
  uVar11 = DAT_1826708a0;
  *(ulonglong *)(lVar4 + -0x7d8) = **(ulonglong **)(lVar4 + -0x310) ^ uVar42;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x5c0) =
       *(ulonglong *)(lVar4 - (uVar33 ^ 0xf20a78b2)) ^ CONCAT44(DAT_18267084c,DAT_18267084c) ^
       uVar36 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0xac0);
  *(ulonglong *)(lVar4 - (uVar14 ^ 0x5bfdd0b2)) =
       uVar16 << ((*(byte *)(lVar4 + -0x558) ^ (byte)uVar12) & 0x3f);
  bVar19 = (byte)uVar9;
  uVar37 = (*(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xd32c57fa)) ^ uVar28) >>
           ((bVar19 ^ 0x1f) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar37 ^ CONCAT44(DAT_182670834,DAT_182670834);
  *puVar1 = CONCAT44(uVar9,uVar10) ^ 0x359c184d11d8e348 |
            CONCAT44(uVar7,uVar10) ^ 0x7ce49f3aa6462505;
  lVar4 = DAT_1826707a0;
  uVar44 = CONCAT44(DAT_182670984,DAT_182670984);
  uVar16 = (*(ulonglong *)(DAT_1826707a0 - (uVar14 ^ 0x5bfddcba)) ^ uVar28) <<
           ((bVar23 ^ 0xee) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar16 ^ uVar44;
  uVar28 = CONCAT44(DAT_182670860,DAT_182670860);
  *(uint *)(lVar4 + -0x7e4) =
       (uVar10 ^ 0x7080bcdd) >> ((byte)*(undefined4 *)(lVar4 - (uVar30 ^ 0xd32c5606)) & 0x1f);
  lVar5 = DAT_1826707a0;
  uVar16 = uVar16 | uVar37;
  *(ulonglong *)(lVar4 + -0xc18) = uVar16 ^ uVar28;
  *(ulonglong *)(lVar4 + -0xd38) = uVar37 + 0xb9787a2ddb1871c7;
  uVar21 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(lVar4 + -0x4c8) = (*(ulonglong *)(lVar4 + -0x588) ^ uVar36) - uVar16 ^ uVar21;
  uVar11 = DAT_182670a78;
  lVar6 = DAT_1826707a0;
  *(uint *)(lVar4 + -0x280) =
       *(uint *)(lVar4 - (uVar14 ^ 0x5bfdd54e)) >> ((byte)*(undefined4 *)(lVar4 + -0x42c) & 0x1f);
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       *(ulonglong *)(lVar6 - (uVar24 ^ 0x2a3e79ed)) ^ *(ulonglong *)(DAT_1826707a0 + -0x658) ^
       uVar29 ^ uVar28 ^ uVar25;
  uVar11 = DAT_182670958;
  *(ulonglong *)(lVar5 + -0x1b8) = uVar37 + (CONCAT44(uVar7,uVar43) ^ 0xa34c995c71de6ac4);
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0xa9f7a398)) =
       (uVar29 ^ *(ulonglong *)(lVar5 + -0xf0)) >> ((bVar23 ^ 0xe2) & 0x3f) ^ uVar38;
  uVar11 = DAT_182670a4c;
  lVar4 = DAT_1826707a0;
  uVar16 = *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar37 = CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(lVar5 + -0xac0) =
       (uVar29 ^ *(ulonglong *)(lVar5 + -0xf0)) << ((bVar19 ^ 0x13) & 0x3f) ^ uVar37;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xd32c5bf2)) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0xf20a77fa)) ^ uVar37 | uVar38 ^ uVar16) ^ uVar28;
  uVar37 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *puVar1 = (*(ulonglong *)(lVar4 + -0x658) ^ uVar25) - (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar28) ^
            uVar37;
  uVar12 = DAT_18267099c;
  *(ulonglong *)(lVar4 + -0x5c0) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0xa9f7ad88)) ^ uVar28) + (*puVar50 ^ uVar44);
  uVar11 = DAT_1826708f0;
  lVar5 = DAT_1826707a0;
  uVar44 = CONCAT44(uVar12,uVar12);
  uVar16 = uVar44 ^ *(ulonglong *)(lVar4 + -0x558) ^ uVar21 ^ uVar47 ^
           *(ulonglong *)(lVar4 + -0x4c8);
  *(ulonglong *)(lVar4 + -0xd38) = uVar16;
  uVar38 = (uVar16 ^ uVar44) >> ((bVar3 ^ 0x93) & 0x3f);
  *(ulonglong *)(lVar5 + -0x588) = uVar38 ^ uVar41;
  uVar25 = CONCAT44(DAT_182670a28,DAT_182670a28);
  uVar16 = (uVar44 ^ uVar16) << ((bVar15 ^ 0x58) & 0x3f);
  *(ulonglong *)(lVar5 + -0xc18) = uVar16 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x2a3e73e5)) = (uVar16 | uVar38) ^ uVar25;
  uVar44 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar16 = (ulonglong)DAT_182670a1c;
  uVar38 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar5 + -0x1b8) =
       (uVar21 ^ *(ulonglong *)(lVar5 + -0x4c8)) -
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0xa9f7a250)) ^ uVar25) ^ uVar44;
  uVar11 = DAT_182670864;
  uVar21 = uVar38 ^ uVar25 ^ uVar37 ^ *puVar1 ^ *(ulonglong *)(lVar5 + -0x610);
  *(ulonglong *)(lVar5 + -0xf0) = uVar21;
  lVar4 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x7d8) = (uVar21 >> 0x20 ^ uVar16) >> 0x14 ^ uVar25;
  uVar11 = DAT_182670a3c;
  uVar16 = (uVar38 ^ uVar21) << (((byte)uVar7 ^ 0x36) & 0x3f);
  puVar22 = (ulonglong *)(lVar4 - (uVar14 ^ 0x5bfddea2));
  *(ulonglong *)(lVar4 + -0xac0) = uVar16 ^ CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar47 = CONCAT44(uVar11,uVar11);
  puVar50 = (ulonglong *)(lVar4 - (uVar33 ^ 0xf20a7b62));
  *puVar50 = (uVar25 ^ *puVar22 | uVar16) ^ uVar47;
  *(ulonglong *)(lVar4 + -0xce0) =
       (CONCAT44(uVar7,uVar20) ^ 0x58fabc96d23307e4) + 0x75ce6c25f78fffe8;
  uVar48 = CONCAT44(DAT_182670964,DAT_182670964);
  *(ulonglong *)(lVar4 + -0x5c0) =
       (uVar37 ^ *puVar1) - (*(ulonglong *)(lVar4 + -0x658) ^ uVar47) ^ uVar48;
  lVar4 = DAT_1826707a0;
  *(longlong *)(DAT_1826707a0 - (uVar34 ^ 0x571226e3)) =
       -0x3b4ac0e582a6d59e << ((bVar19 ^ 0x13) & 0x3f);
  uVar16 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xd32c5f02)) =
       *(ulonglong *)(lVar4 - (uVar34 ^ 0x57122203)) ^ *(ulonglong *)(lVar4 + -0x9c8) ^ uVar16 ^
       uVar44 ^ uVar28;
  uVar21 = (uVar16 ^ *(ulonglong *)(lVar4 + -0xd38)) >> (((byte)uVar7 ^ 3) & 0x3f);
  uVar33 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar4 + -0x588) = uVar21 ^ uVar32;
  uVar12 = DAT_182670a84;
  uVar16 = (*(ulonglong *)(lVar4 - (uVar26 ^ 0xa9f7a978)) ^ uVar16) << ((bVar3 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc18) = uVar16 ^ uVar33;
  uVar11 = DAT_182670948;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar21 = uVar21 | uVar16;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar21 ^ uVar33;
  uVar12 = DAT_182670ab0;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x610) = (uVar44 ^ *puVar17) - uVar21 ^ uVar28;
  uVar11 = DAT_1826708d8;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar33 = *(ulonglong *)(lVar4 - (uVar14 ^ 0x5bfdddb2)) ^ uVar21 ^ uVar33 ^ uVar48 ^
           *(ulonglong *)(lVar4 + -0x5c0);
  uVar37 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar4 + -0xf0) = uVar33;
  uVar12 = DAT_182670944;
  uVar9 = DAT_1826707ec;
  uVar16 = (ulonglong)DAT_1826707ec;
  *puVar22 = (uVar33 ^ uVar21) >> (((byte)uVar43 ^ 0x74) & 0x3f) ^ uVar37;
  uVar8 = DAT_1826707c0;
  uVar25 = (ulonglong)DAT_1826707c0;
  uVar40 = DAT_1826707c0 - uVar9;
  uVar38 = (ulonglong)uVar40;
  uVar33 = (uVar21 ^ *(ulonglong *)(lVar4 + -0xf0)) << 0x32;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xac0) = uVar33 ^ CONCAT44(uVar11,uVar11);
  DAT_1826707c4 = uVar40;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x163e2d5c)) =
       (*(ulonglong *)(lVar4 - (uVar16 ^ 0xfefeee31)) ^ uVar37 | uVar33) ^ uVar21;
  uVar33 = (uVar48 ^ *(ulonglong *)(lVar4 + -0x5c0)) -
           (CONCAT44(DAT_1826708e8,DAT_1826708e8) ^ *(ulonglong *)(lVar4 + -0xbb0));
  *puVar1 = uVar33 ^ CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar12 = DAT_182670a14;
  puVar17 = (ulonglong *)(lVar4 - ((ulonglong)uVar40 ^ 0x173f3b33));
  uVar45 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar4 + -0x558) = uVar33 - (uVar21 ^ *puVar17) ^ uVar45;
  uVar11 = DAT_182670a00;
  lVar4 = DAT_1826707a0;
  uVar46 = CONCAT44(uVar12,uVar12);
  uVar49 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0)) -
       (*(ulonglong *)(DAT_1826707a0 + -0x68) ^ uVar46) ^ uVar49;
  uVar37 = CONCAT44(uVar11,uVar11);
  uVar21 = CONCAT44(DAT_18267098c,DAT_18267098c);
  uVar33 = uVar37 ^ *(ulonglong *)(lVar4 + -0x658) ^ uVar28 ^ uVar47 ^
           *(ulonglong *)(lVar4 + -0x610);
  *(ulonglong *)(lVar4 + -0xd38) = uVar33;
  bVar27 = (byte)uVar8;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x173f325b)) =
       (uVar33 ^ uVar37) >> ((bVar27 ^ 0xac) & 0x3f) ^ uVar21;
  bVar23 = (byte)uVar40;
  uVar44 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar40 ^ 0x173f3bcb)) =
       (uVar37 ^ *(ulonglong *)(lVar4 + -0xd38)) << ((bVar23 ^ 0xe3) & 0x3f) ^ uVar44;
  uVar37 = CONCAT44(DAT_182670978,DAT_182670978);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x163e2004)) =
       (*(ulonglong *)(lVar4 + -0xc18) ^ uVar44 | uVar21 ^ *(ulonglong *)(lVar4 + -0x588)) ^ uVar37;
  uVar51 = CONCAT44(DAT_182670928,DAT_182670928);
  uVar33 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x610)) - (uVar51 ^ *(ulonglong *)(lVar4 + -0x420));
  *(ulonglong *)(lVar4 + -0x4c8) = uVar33 ^ CONCAT44(DAT_182670adc,DAT_182670adc);
  puVar22 = (ulonglong *)(lVar4 - (uVar16 ^ 0xfefee851));
  uVar32 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar4 + -0xf0) = uVar33 - (uVar37 ^ *puVar22) ^ uVar32;
  uVar11 = DAT_182670a7c;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x7d8) = **(ulonglong **)(lVar4 + -0x7b8) ^ uVar42;
  uVar12 = DAT_182670ae8;
  uVar33 = (CONCAT44(uVar40,uVar9) ^ 0xe8c0c82c01011615) - (*(ulonglong *)(lVar5 + -0x660) ^ uVar35)
  ;
  *(ulonglong *)(lVar5 + -0xac0) = uVar33 ^ CONCAT44(uVar11,uVar11);
  uVar11 = _DAT_18267097c;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 + -0x5c0) = uVar33 + (uVar37 ^ *(ulonglong *)(lVar5 + -0x1b8)) ^ uVar21;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar33 = *(ulonglong *)(lVar5 - (uVar38 ^ 0x173f3213)) ^ uVar28 ^ uVar21 ^ uVar45 ^
           *(ulonglong *)(lVar5 + -0x558);
  *puVar1 = uVar33;
  uVar11 = DAT_18267085c;
  lVar4 = DAT_1826707a0;
  uVar21 = (uVar33 ^ uVar28) >> (((byte)uVar9 ^ 0xc9) & 0x3f);
  *(ulonglong *)(lVar5 + -0xce0) = uVar21 ^ CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar12 = DAT_1826708cc;
  uVar37 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x658) = (uVar28 ^ uVar33) << ((bVar27 ^ 0x9c) & 0x3f) ^ uVar37;
  uVar11 = DAT_18267081c;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xd38) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xd32c5462)) ^ uVar37 | uVar21) ^ uVar28;
  uVar47 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x163e2434)) =
       (uVar45 ^ *(ulonglong *)(lVar4 + -0x558)) -
       (*(ulonglong *)(lVar4 - (uVar38 ^ 0x173f3aeb)) ^ uVar28) ^ uVar47;
  uVar33 = CONCAT44(DAT_182670954,DAT_182670954);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xd32c5e22)) =
       *(ulonglong *)(lVar4 - (uVar16 ^ 0xfefee919)) ^ *(ulonglong *)(lVar4 + -0x9c8) ^ uVar33 ^
       uVar32 ^ uVar49;
  uVar12 = DAT_182670a80;
  uVar21 = CONCAT44(DAT_182670840,DAT_182670840);
  *(ulonglong *)(lVar4 + -0x420) =
       (*(ulonglong *)(lVar4 + -0xc18) ^ uVar33) >> ((bVar23 ^ 0xf3) & 0x3f) ^ uVar21;
  uVar11 = DAT_18267092c;
  uVar33 = (*(ulonglong *)(lVar4 + -0xc18) ^ uVar33) << 0x20;
  *(ulonglong *)(lVar4 + -0x610) = uVar33 ^ CONCAT44(uVar12,uVar12);
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar33 = *(ulonglong *)(lVar4 - (uVar34 ^ 0x5712279b)) ^ uVar21 | uVar33;
  uVar21 = uVar33 ^ uVar35;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar21;
  uVar38 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar4 + -0x7d8) = (uVar32 ^ *(ulonglong *)(lVar4 + -0xf0)) - uVar33 ^ uVar48;
  *puVar22 = uVar38 ^ uVar35 ^ uVar47 ^ *(ulonglong *)(lVar4 + -0x588) ^ uVar21;
  uVar11 = DAT_1826709a8;
  lVar5 = DAT_1826707a0;
  uVar38 = uVar38 ^ *(ulonglong *)(lVar4 + -0x1b8);
  uVar21 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar4 + -0xac0) = uVar38 >> ((bVar15 ^ 0x7a) & 0x3f) ^ uVar21;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x2a3e7035)) = uVar38 << ((bVar23 ^ 0xd5) & 0x3f) ^ uVar33;
  uVar8 = DAT_182670808;
  uVar35 = (ulonglong)DAT_182670808;
  uVar32 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar38 = CONCAT44(DAT_182670808,DAT_182670808);
  *puVar1 = (uVar33 ^ *(ulonglong *)(lVar5 + -0x5c0) | uVar21 ^ *(ulonglong *)(lVar5 + -0xac0)) ^
            uVar32;
  *(ulonglong *)(lVar5 + -0xce0) =
       (*(ulonglong *)(lVar5 - (uVar16 ^ 0xfefeec61)) ^ uVar47) -
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0x163e2c34)) ^ uVar32) ^ uVar51;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x163e27e4)) =
       uVar38 ^ uVar28 ^ uVar48 ^ *(ulonglong *)(lVar5 + -0x7d8) ^ *(ulonglong *)(lVar5 + -0xd38);
  uVar11 = DAT_182670a6c;
  lVar4 = DAT_1826707a0;
  uVar33 = ((ulonglong)(uVar8 >> 0x16) | uVar35 << 10) ^
           *(ulonglong *)(DAT_1826707a0 + -0x658) >> 0x16;
  uVar21 = (uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0x658)) << 0x2a;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar33 ^ CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar21 ^ CONCAT44(uVar11,uVar11);
  lVar4 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_18267096c,DAT_18267096c);
  *(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0xfefee5f1)) = (uVar33 | uVar21) ^ uVar25;
  uVar21 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xd32c561a)) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x2a3e722d)) ^ uVar48) -
       (uVar25 ^ *(ulonglong *)(lVar4 + -0xc18)) ^ uVar21;
  *(ulonglong *)(lVar4 + -0x610) =
       uVar25 ^ *(ulonglong *)(lVar4 + -0xc18) ^ uVar51 ^ uVar46 ^ *(ulonglong *)(lVar4 + -0xce0);
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0xf0) =
       (CONCAT44(uVar10,uVar10) ^ 0xe4f95fa5f7cdc082) -
       (CONCAT44(uVar10,uVar7) ^ 0x43c648bb4856c511);
  uVar25 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *puVar18 = (*puVar31 ^ uVar46) >> ((bVar27 ^ 0x92) & 0x3f) ^ uVar25;
  uVar33 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar5 + -0x1b8) =
       (*(ulonglong *)(lVar5 - (uVar16 ^ 0xfefeeff9)) ^ uVar46) << (((byte)uVar43 ^ 0x68) & 0x3f) ^
       uVar33;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707e4 ^ 0x3a7d0032)) =
       (CONCAT44(uVar43,uVar40) ^ 0xe9be7def0e5873b6) >> ((bVar3 ^ 0x8c) & 0x3f);
  uVar33 = uVar25 ^ *(ulonglong *)(lVar5 + -0x4c8) | uVar33 ^ *(ulonglong *)(lVar5 + -0x1b8);
  *(ulonglong *)(lVar5 + -0x5c0) = uVar33 ^ CONCAT44(DAT_182670a34,DAT_182670a34);
  uVar11 = DAT_182670910;
  *(ulonglong *)(lVar5 + -0x588) = **(ulonglong **)(lVar5 - (uVar34 ^ 0x57122403)) ^ uVar42;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = (uVar51 ^ *puVar17) - uVar33 ^ uVar28;
  uVar11 = DAT_182670940;
  uVar33 = *(ulonglong *)(lVar4 - (uVar14 ^ 0x5bfddd5a)) ^ uVar21 ^ uVar32 ^ *puVar1;
  *(ulonglong *)(lVar4 + -0x658) = uVar33 ^ uVar29;
  lVar4 = DAT_1826707a0;
  uVar42 = uVar33 >> ((bVar3 ^ 0xb7) & 0x3f);
  puVar17 = (ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar42 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x558) = uVar33 - (uVar25 ^ *puVar17);
  uVar11 = DAT_182670854;
  uVar33 = (*puVar50 ^ uVar29) << (((byte)uVar9 ^ 0xdd) & 0x3f);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar33 ^ uVar37;
  uVar42 = uVar42 | uVar33;
  *(ulonglong *)(lVar4 + -0xc18) = uVar42 ^ uVar36;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xa9f7a4b0)) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0x420)) - uVar42 ^ CONCAT44(uVar11,uVar11);
  uVar33 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0xf20a7b2a)) =
       *(ulonglong *)(lVar4 - (uVar34 ^ 0x57122fa3)) ^ *(ulonglong *)(lVar4 - (uVar16 ^ 0xfefee4d1))
       ^ uVar33 ^ uVar28 ^ uVar36;
  uVar12 = DAT_1826709d8;
  uVar16 = (uVar33 ^ *(ulonglong *)(lVar4 + -0x610)) >> ((bVar19 ^ 0x23) & 0x3f);
  *(ulonglong *)(lVar4 + -0xac0) = uVar16 ^ CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar11 = DAT_182670838;
  *(ulonglong *)(lVar4 + -0x1b8) = (uVar33 ^ *(ulonglong *)(lVar4 + -0x610)) << 0x27 ^ uVar44;
  *(ulonglong *)(lVar4 + -0x588) = (uVar16 | uVar44 ^ *puVar22) ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar14 ^ 0x5bfdd59a)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0xd38)) - (*(ulonglong *)(lVar4 + -0x118) ^ uVar41) ^
       CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar43) * 4) = uVar39;
  *puVar1 = CONCAT44(uVar20,uVar10) ^ 0x28e288c6d6f2a11a;
  return;
}



############ FUN_ 180cf0600 size=5084 ############

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

void FUN_180cf0600(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  byte bVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  longlong *plVar19;
  uint uVar20;
  uint uVar21;
  byte *pbVar22;
  longlong lVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte bVar32;
  byte bVar33;
  uint uVar34;
  byte bVar35;
  uint uVar36;
  longlong lVar37;
  ulonglong uVar38;
  longlong *plVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_c0;
  byte local_b0;
  byte local_68;
  
  uVar10 = DAT_1826707f0;
  uVar9 = DAT_1826707e8;
  uVar8 = DAT_1826707e0;
  uVar5 = DAT_1826707b0;
  lVar3 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707e8;
  uVar36 = DAT_1826707e8 | DAT_1826707f0;
  uVar20 = *(uint *)(&DAT_18260f758 + DAT_182670ba8) ^ DAT_1826707e8;
  uVar2 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707f0 ^ 0xa1a58010) + (longlong)DAT_182670ba8);
  uVar27 = (ulonglong)DAT_1826707b0;
  uVar34 = DAT_1826707b0 - DAT_1826707e0;
  bVar15 = *(byte *)(DAT_1826707a0 + -0x763) ^ (byte)DAT_182670a40 ^ DAT_1826708bc;
  pbVar22 = (byte *)(*(longlong *)(DAT_1826707a0 + -0x168) + 2);
  DAT_1826707d0 = uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x930) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182670a94;
  *pbVar22 = bVar15;
  uVar31 = (ulonglong)uVar8;
  lVar23 = (CONCAT44(uVar5,uVar8) ^ 0xefdfdfffcc5c8989) * 0xc;
  plVar39 = (longlong *)(lVar3 - ((ulonglong)uVar34 ^ 0x238354a6));
  uVar28 = CONCAT44(DAT_182670818,DAT_182670818);
  DAT_1826707bc = uVar34;
  *(ulonglong *)(lVar3 + -0xc0) =
       *plVar39 + ((CONCAT44(uVar10,uVar5) ^ 0xa1a58000efdfdfff) + lVar23) * 8 ^ uVar28;
  puVar24 = (ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x93ad72af));
  *puVar24 = (CONCAT44(uVar10,uVar34) ^ 0xda38a5215ad6876) >> (((byte)uVar10 ^ 1) & 0x3f);
  uVar6 = DAT_182670ab4;
  uVar26 = CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar42 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar28 = *(ulonglong *)(uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0xc0)) ^ uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar28 ^ uVar26;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0x93ad7aaf)) =
       uVar28 >> (((byte)uVar8 ^ 0x91) & 0x3f) ^ CONCAT44(uVar6,uVar6);
  bVar15 = (byte)DAT_18267095c;
  bVar32 = (byte)uVar6 ^ (byte)DAT_18267095c;
  uVar28 = (ulonglong)DAT_182670adc;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar34 ^ 0x2383577c)) = **(undefined1 **)(lVar3 + -0x4f8);
  bVar32 = bVar32 ^ *(byte *)(lVar3 + -0x588);
  bVar15 = bVar15 ^ bVar32 ^ (byte)DAT_182670a40;
  *(byte *)(lVar3 + -0x10a) = bVar32;
  *(ulonglong *)(lVar3 + -0xc28) =
       (CONCAT44(uVar36,uVar8) ^ 0xb3adff27cc5c898a) + *(longlong *)(lVar3 + -0x168) ^ uVar28;
  uVar6 = DAT_182670a2c;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xa1a58c28)) ^ uVar28) = bVar15;
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0xb78) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((CONCAT44(uVar34,uVar9) ^ 0x2383567693ad7f27) +
       (CONCAT44(uVar9,uVar5) ^ 0x93ad7f27efdfdfff) * 0xc) * 8 ^ uVar29;
  uVar14 = DAT_182670a70;
  uVar4 = DAT_1826707ac;
  lVar37 = DAT_1826707a0;
  puVar16 = (ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xa1a58b78));
  uVar28 = *(ulonglong *)(DAT_1826707a0 + -0x660);
  uVar30 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar17 = (ulonglong)DAT_1826707ac;
  uVar41 = (ulonglong)DAT_1826707ac;
  uVar29 = *(ulonglong *)(uVar29 ^ *puVar16) ^ uVar30 ^ uVar42;
  uVar21 = (DAT_1826707ac << 0x10 | DAT_1826707ac & 0xff00) << 8 | DAT_1826707ac >> 8 & 0xff00 |
           DAT_1826707ac >> 0x18;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar29;
  uVar43 = (ulonglong)uVar21;
  bVar35 = (byte)(uVar4 >> 0x18);
  puVar18 = (ulonglong *)(lVar37 - (uVar43 ^ 0x9802f934));
  DAT_1826707a8 = uVar21;
  *(ulonglong *)(lVar37 + -0xd88) =
       (uVar29 ^ uVar30) >> ((bVar35 ^ 0x9c) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  *puVar18 = 0x463381e0c36e4efc - (uVar26 ^ uVar28);
  uVar28 = (ulonglong)_DAT_1826708f8;
  *(byte *)(lVar37 + -0x941) =
       *(byte *)(lVar37 - (uVar41 ^ 0xbcfc0f10)) ^ (byte)uVar14 ^ (byte)DAT_182670958;
  *(undefined1 *)(lVar37 + -0x159) = **(undefined1 **)(lVar37 + -0x300);
  uVar7 = DAT_1826708e4;
  uVar29 = (ulonglong)DAT_1826708e4;
  pbVar22 = (byte *)((CONCAT44(uVar21,uVar21) ^ 0x9802fcbc9802fcb8) + *(longlong *)(lVar37 + -0x168)
                    );
  *(ulonglong *)(lVar37 + -0x350) = (ulonglong)pbVar22 ^ uVar28;
  uVar6 = DAT_1826709b4;
  *pbVar22 = *(byte *)(lVar37 - (uVar43 ^ 0x9802f5fd)) ^ (byte)DAT_182670958 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar37 + -0x6b8) = CONCAT44(uVar21,uVar4) ^ 0x1a1d8e370d25d3f7;
  uVar12 = DAT_1826709e8;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar37 + -0x2d0) + (CONCAT44(uVar4,uVar21) ^ 0xbcfc02989802fcbc) * 8);
  *(ulonglong *)(lVar37 + -0xc0) = (ulonglong)puVar1 ^ CONCAT44(uVar7,uVar7);
  bVar15 = (byte)DAT_1826707f0;
  uVar30 = CONCAT44(uVar12,uVar12);
  uVar28 = *puVar1 ^ uVar30 ^ uVar42;
  *(ulonglong *)(lVar37 + -0x660) = uVar28;
  uVar26 = (ulonglong)DAT_182670a9c;
  *(ulonglong *)(lVar37 - (uVar27 ^ 0xefdfda77)) =
       (uVar30 ^ uVar28) >> ((bVar15 ^ 0x28) & 0x3f) ^ CONCAT44(uVar6,uVar6);
  bVar32 = (byte)DAT_1826708a0;
  bVar33 = (byte)uVar6 ^ (byte)DAT_1826708a0 ^ *(byte *)(lVar37 + -0x588);
  plVar19 = (longlong *)(DAT_1826707a0 - (uVar31 ^ 0xcc5c88e1));
  *(byte *)(lVar37 + -0x159) = bVar33;
  pbVar22 = (byte *)(*plVar19 + (CONCAT44(uVar10,uVar4) ^ 0xa1a58000bcfc029d));
  *(ulonglong *)(DAT_1826707a0 + -0x40) = (ulonglong)pbVar22 ^ uVar26;
  uVar6 = DAT_1826709cc;
  lVar3 = DAT_1826707a0;
  *pbVar22 = bVar32 ^ bVar33 ^ (byte)DAT_182670a40;
  uVar28 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xcc5c82f1)) =
       (CONCAT44(uVar34,uVar5) ^ 0x23835676efdfdfff) * 0x60 + *(longlong *)(lVar3 + -0x2d0) ^ uVar28
  ;
  uVar6 = DAT_182670808;
  uVar26 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xb78)) ^ uVar26 ^ uVar42;
  lVar37 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x660) = CONCAT44(uVar8,uVar9) ^ 0x420204800900d00 | 0x7bd6dfb19b49c2f7;
  bVar32 = (byte)uVar6 ^ (byte)DAT_182670948;
  uVar26 = (uVar26 ^ *(ulonglong *)(lVar37 + -0x6b8)) >> (((byte)uVar4 ^ 0xa8) & 0x3f) ^
           CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar37 + -0x588) = uVar26;
  uVar28 = (ulonglong)DAT_182670894;
  *(byte *)(lVar37 - ((ulonglong)uVar36 ^ 0xb3adfc16)) = bVar32 ^ (byte)uVar26;
  bVar32 = *(byte *)(lVar37 + -0x331) ^ (byte)DAT_182670948 ^ (byte)DAT_182670a40;
  pbVar22 = (byte *)((CONCAT44(uVar10,uVar4) ^ 0xa1a58000bcfc029e) + *(longlong *)(lVar37 + -0x168))
  ;
  *(ulonglong *)(lVar37 + -800) = (ulonglong)pbVar22 ^ uVar28;
  *pbVar22 = bVar32;
  uVar7 = DAT_1826709b8;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar37 + -0x2d0) +
           ((CONCAT44(uVar8,uVar8) ^ 0xcc5c8989cc5c8989) +
           (CONCAT44(uVar36,uVar34) ^ 0xb3adff2723835676) * 0xc) * 8);
  uVar28 = (ulonglong)DAT_1826709b8;
  *(ulonglong *)(lVar37 + -0xc0) = (ulonglong)puVar1 ^ CONCAT44(DAT_182670a28,DAT_182670a28);
  uVar13 = DAT_182670a10;
  uVar26 = CONCAT44(uVar7,uVar7);
  uVar30 = *puVar1 ^ uVar42 ^ uVar26;
  *(ulonglong *)(lVar37 + -0x660) = uVar30;
  uVar12 = DAT_182670980;
  uVar28 = (uVar30 >> 0x20 ^ uVar28) >> 0x18 ^ CONCAT44(uVar13,uVar13);
  bVar32 = (byte)uVar13 ^ (byte)uVar28 ^ (byte)DAT_182670a88;
  *(ulonglong *)(lVar37 + -0x6b8) = uVar28;
  *(byte *)(lVar37 + -0x861) = bVar32;
  *(ulonglong *)(lVar37 + -0x6b8) =
       (CONCAT44(uVar4,uVar4) ^ 0x6b4e592320e8fffa) -
       (*(ulonglong *)(lVar37 - (uVar43 ^ 0x9802fe9c)) ^ CONCAT44(uVar12,uVar12));
  bVar32 = (byte)DAT_1826707f0;
  *(ulonglong *)(lVar37 - (uVar27 ^ 0xefdfdb3f)) =
       *(longlong *)(lVar37 - ((ulonglong)uVar36 ^ 0xb3adfe4f)) +
       (CONCAT44(uVar21,uVar8) ^ 0x9802fcbccc5c898e) ^ uVar29;
  *(uint *)(lVar37 + -0x2d4) = *(uint *)(lVar37 + -0xc34) >> ((bVar32 ^ 0x13) & 0x1f);
  *(byte *)(*(ulonglong *)(lVar37 + -0x4c0) ^ uVar29) =
       *(byte *)(lVar37 - (uVar31 ^ 0xcc5c81e8)) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670a88;
  lVar3 = DAT_1826707a0;
  puVar1 = (ulonglong *)
           (*plVar39 +
           ((CONCAT44(uVar36,uVar9) ^ 0xb3adff2793ad7f26) +
           (CONCAT44(uVar36,uVar4) ^ 0xb3adff27bcfc0298) * 0xc) * 8);
  uVar29 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(DAT_1826707a0 + -0xb78) = (ulonglong)puVar1 ^ CONCAT44(DAT_18267082c,DAT_18267082c)
  ;
  uVar13 = DAT_182670aa4;
  uVar28 = *puVar1 ^ uVar42 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x220) = uVar28;
  uVar12 = _DAT_1826708c8;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar3 + -0xce0)) -
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0xcc5c8c01)) ^ CONCAT44(uVar6,uVar6));
  uVar40 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x588) = uVar40 ^ uVar29 ^ uVar28;
  bVar32 = (byte)uVar12 ^ *(byte *)(lVar3 + -0x588) ^ (byte)DAT_1826708b4;
  local_b0 = (byte)uVar7;
  lVar37 = (CONCAT44(uVar36,uVar9) ^ 0xe2d5abc181899d6a) <<
           ((*(byte *)(lVar3 - (uVar43 ^ 0x9802fadc)) ^ local_b0) & 0x3f);
  *(longlong *)(lVar3 + -0xce0) = lVar37;
  *(byte *)(lVar3 + -0x7b9) = bVar32;
  uVar6 = DAT_182670814;
  uVar28 = (ulonglong)DAT_182670a74;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xbcfc0420)) = 0x743529b1ef40879e >> ((byte)lVar37 & 0x3f);
  pbVar22 = (byte *)(*(longlong *)(lVar3 - (uVar43 ^ 0x9802fdd4)) +
                    (CONCAT44(uVar21,uVar21) ^ 0x9802fcbc9802fcb4));
  *(ulonglong *)(lVar3 + -0x80) = (ulonglong)pbVar22 ^ uVar28;
  uVar7 = DAT_1826707e8;
  *(ulonglong *)(lVar3 + -0x220) =
       *(ulonglong *)(lVar3 - (uVar31 ^ 0xcc5c8569)) ^ *(ulonglong *)(lVar3 + -0x6b8);
  *pbVar22 = *(byte *)(lVar3 + -0x7b9) ^ (byte)DAT_182670a40 ^ (byte)DAT_1826708b4;
  uVar28 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar3 + -0xc0) =
       *(longlong *)(lVar3 + -0x2d0) + ((CONCAT44(uVar5,uVar9) ^ 0xefdfdfff93ad7f26) + lVar23) * 8 ^
       uVar28;
  *(int *)(lVar3 - ((ulonglong)uVar34 ^ 0x238354f6)) = 0x25d63943 << (((byte)uVar7 ^ 0x33) & 0x1f);
  uVar29 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar3 + -0xce0) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0xc0) ^ uVar28) ^ uVar42 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar34,uVar4) ^ 0x8c1811e0a6f26fdd) >> ((bVar15 ^ 0x18) & 0x3f);
  uVar12 = DAT_1826709c4;
  uVar29 = (*(ulonglong *)(lVar3 + -0xce0) ^ uVar29) >> ((bVar35 ^ 0xb4) & 0x3f) ^
           CONCAT44(uVar6,uVar6);
  bVar15 = (byte)uVar6 ^ (byte)DAT_1826708fc;
  *(ulonglong *)(lVar3 + -0x220) = uVar29;
  uVar28 = (ulonglong)DAT_182670940;
  *(byte *)(lVar3 - (uVar25 ^ 0x93ad7256)) = bVar15 ^ (byte)uVar29;
  pbVar22 = (byte *)(*(longlong *)(lVar3 + -0x168) + 9);
  bVar15 = *(byte *)(lVar3 + -0xd71) ^ (byte)DAT_182670a40 ^ (byte)DAT_1826708fc;
  *(ulonglong *)(lVar3 + -0x5f0) = (ulonglong)pbVar22 ^ uVar28;
  uVar7 = DAT_1826707f0;
  *(ulonglong *)(lVar3 + -0xce0) =
       CONCAT44(uVar34,uVar5) ^ 0x8d30c880015dd4ad | *(ulonglong *)(lVar3 + -0x6b8);
  *pbVar22 = bVar15;
  uVar28 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xbcfc09e0)) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((CONCAT44(uVar9,uVar34) ^ 0x93ad7f2723835677) +
       (CONCAT44(uVar36,uVar7) ^ 0xb3adff27a1a58000) * 0xc) * 8 ^ uVar28;
  uVar38 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar28 = *(ulonglong *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xb78)) ^ uVar42;
  *(ulonglong *)(lVar3 + -0x220) = uVar28 ^ uVar38;
  uVar28 = uVar28 >> (((byte)uVar4 ^ 0x88) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar28;
  *(byte *)(lVar3 - (uVar43 ^ 0x9802fc0d)) = (byte)uVar12 ^ (byte)uVar28 ^ (byte)DAT_182670a1c;
  uVar11 = DAT_182670880;
  pbVar22 = (byte *)(*(longlong *)(lVar3 + -0x168) + 10);
  bVar32 = (byte)DAT_182670a40;
  *(ulonglong *)(lVar3 + -0xcb8) = (ulonglong)pbVar22 ^ (ulonglong)DAT_1826707fc;
  uVar29 = CONCAT44(uVar11,uVar11);
  *pbVar22 = *(byte *)(lVar3 + -0xb1) ^ bVar32 ^ (byte)DAT_182670a1c;
  *(ulonglong *)(lVar3 + -0xc0) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((CONCAT44(uVar36,uVar21) ^ 0xb3adff279802fcbd) +
       (CONCAT44(uVar34,uVar21) ^ 0x238356769802fcbc) * 0xc) * 8 ^ uVar29;
  uVar11 = DAT_182670918;
  uVar28 = (ulonglong)DAT_182670918;
  uVar41 = (ulonglong)DAT_182670a20;
  *(ulonglong *)(lVar3 + -0xce0) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xa1a580c0)) ^ uVar29) ^
       CONCAT44(DAT_182670918,DAT_182670918) ^ uVar42;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 + -0xd88) ^ CONCAT44(uVar14,uVar14)) -
       (*(ulonglong *)(lVar3 + -0x588) ^ uVar40);
  uVar28 = ((ulonglong)(uVar11 >> 0x18) | uVar28 << 8) ^ *(ulonglong *)(lVar3 + -0xce0) >> 0x18 ^
           uVar26;
  bVar15 = (byte)DAT_1826709b8;
  *(ulonglong *)(lVar3 + -0x588) = uVar28;
  *(byte *)(lVar3 + -0xb29) = bVar15 ^ (byte)DAT_1826709a8 ^ (byte)uVar28;
  uVar30 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xf523c641)) = *(longlong *)(lVar3 + -0x168) + 0xbU ^ uVar41;
  uVar6 = DAT_182670a48;
  uVar7 = DAT_1826707d8;
  uVar27 = (ulonglong)DAT_1826707d8;
  *(byte *)(*(ulonglong *)(lVar3 + -0x940) ^ uVar41) =
       *(byte *)(lVar3 - (uVar31 ^ 0xcc5c82a0)) ^ bVar32 ^ (byte)DAT_1826709a8;
  uVar29 = (ulonglong)DAT_1826707dc;
  uVar28 = CONCAT44(DAT_182670928,DAT_182670928);
  *puVar16 = (CONCAT44(uVar4,uVar7) ^ 0xbcfc0298cf01f523) * 0x60 + *(longlong *)(lVar3 + -0x2d0) + 8
             ^ uVar28;
  bVar15 = (byte)DAT_1826707f0;
  uVar41 = CONCAT44(DAT_182670974,DAT_182670974);
  uVar28 = *(ulonglong *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xb78)) ^ uVar42 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xd88) = uVar28;
  uVar28 = (uVar28 ^ uVar41) >> ((bVar15 ^ 0x20) & 0x3f) ^ CONCAT44(uVar6,uVar6);
  bVar15 = (byte)uVar6 ^ (byte)uVar28 ^ (byte)DAT_18267084c;
  *(ulonglong *)(lVar3 + -0xce0) = uVar28;
  uVar28 = (ulonglong)DAT_1826709d4;
  *(byte *)(lVar3 - (uVar25 ^ 0x93ad7efe)) = bVar15;
  pbVar22 = (byte *)(*(longlong *)(lVar3 + -0x168) + 0xc);
  *(ulonglong *)(lVar3 + -0xc30) = (ulonglong)pbVar22 ^ uVar28;
  uVar6 = DAT_182670a40;
  bVar33 = (byte)DAT_182670a40;
  *pbVar22 = *(byte *)(lVar3 + -0x1d9) ^ bVar33 ^ (byte)DAT_18267084c;
  uVar28 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x588) =
       (*(ulonglong *)(lVar3 + -0x660) ^ uVar26) + (uVar38 ^ *(ulonglong *)(lVar3 + -0x220));
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xdfffef1f)) = *(longlong *)(lVar3 + -0x2d0) + 8U ^ uVar28;
  uVar7 = DAT_1826707f4;
  uVar26 = CONCAT44(DAT_182670938,DAT_182670938);
  bVar32 = (byte)DAT_182670938 ^ (byte)DAT_182670844;
  local_68 = (byte)uVar34;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xcc5c8401)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar25 ^ 0x93ad7fe7)) ^ uVar28) ^ uVar42 ^ uVar40;
  uVar28 = (*puVar24 ^ uVar40) >> ((local_68 ^ 0x5e) & 0x3f) ^ uVar26;
  bVar15 = (byte)DAT_1826707f0;
  *(ulonglong *)(lVar3 + -0x660) = uVar28;
  bVar32 = bVar32 ^ (byte)uVar28;
  uVar28 = (ulonglong)DAT_182670990;
  *(uint *)(lVar3 + -0x9ec) = (uVar7 ^ 0x52c71207) << ((bVar15 ^ 1) & 0x1f);
  *(byte *)(lVar3 + -0x283) = bVar32;
  pbVar22 = (byte *)((CONCAT44(uVar9,uVar5) ^ 0x93ad7f27efdfdff2) +
                    *(longlong *)(DAT_1826707a0 + -0x168));
  *(ulonglong *)(DAT_1826707a0 + -0x8c8) = (ulonglong)pbVar22 ^ uVar28;
  lVar3 = DAT_1826707a0;
  *pbVar22 = bVar33 ^ (byte)DAT_182670844 ^ bVar32;
  uVar31 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xcf01fe5b)) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((CONCAT44(uVar7,DAT_1826707b8) ^ 0x30fe0adcefbd598b) +
       (CONCAT44(uVar4,uVar34) ^ 0xbcfc029823835676) * 0xc) * 8 ^ uVar31;
  uVar12 = DAT_182670884;
  uVar28 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xbcfc00b8)) =
       *(ulonglong *)(uVar31 ^ *(ulonglong *)(lVar3 + -0xb78)) ^ uVar42 ^ uVar28;
  local_c0 = (byte)uVar5;
  bVar32 = (byte)DAT_182670a40 ^ (byte)DAT_182670890;
  *puVar18 = (uVar28 ^ *(ulonglong *)(lVar3 + -0x220)) >> ((local_c0 ^ 0xcf) & 0x3f) ^
             CONCAT44(uVar12,uVar12);
  uVar6 = DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0x660) =
       (CONCAT44(uVar5,DAT_1826707e4) ^ 0xeb36924040a0c7e0) -
       (CONCAT44(DAT_1826707c0,uVar21) ^ 0xdb983643b5d7d34c);
  bVar15 = *(byte *)(lVar3 - (uVar30 ^ 0xf523ca89)) ^ (byte)uVar12 ^ (byte)DAT_182670890;
  uVar28 = CONCAT44(uVar6,DAT_1826707d4);
  *(byte *)(lVar3 + -0xcd1) = bVar15;
  uVar31 = (ulonglong)DAT_182670880;
  *(ulonglong *)(lVar3 + -0x668) =
       (uVar28 ^ 0x4303fd677b3c2c79) + *(longlong *)(lVar3 + -0x168) ^ uVar31;
  *(ulonglong *)(lVar3 + -0x220) = (CONCAT44(uVar4,uVar8) ^ 0xf1e372f9b1864c01) + 0xe81379eff6ebfc0e
  ;
  uVar6 = DAT_1826707cc;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar43 ^ 0x9802fad4)) ^ uVar31) = bVar32 ^ bVar15;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 - ((ulonglong)DAT_1826707c4 ^ 0xadc322e)) +
           ((CONCAT44(uVar21,DAT_1826707ec) ^ 0x9802fcbcfbfff7fe) +
           (CONCAT44(uVar6,uVar36) ^ 0xc1fc0814b3adff27) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xc0) = (ulonglong)puVar1 ^ uVar26;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xdfffe9bf)) = *puVar1 ^ uVar42 ^ uVar41;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xcf01f0ab)) =
       (CONCAT44(uVar10,uVar21) ^ 0xdd3d7a226395c9de) >>
       ((byte)*(undefined8 *)(lVar3 + -0x6b8) & 0x3f);
  bVar15 = (byte)DAT_1826709b0 ^ (byte)DAT_1826709c0;
  uVar28 = (uVar41 ^ *(ulonglong *)(lVar3 + -0x660)) >> (((byte)uVar36 ^ 0x1f) & 0x3f) ^
           CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar36) * 4) = uVar20;
  *(ulonglong *)(lVar3 + -0x220) = uVar28;
  *(byte *)(lVar3 + -0x9ba) = bVar15 ^ (byte)uVar28;
  return;
}



############ FUN_ 180cabcc0 size=5711 ############

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

void FUN_180cabcc0(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong *puVar39;
  ulonglong *puVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  byte local_c0;
  byte local_b0;
  byte local_98;
  
  uVar7 = DAT_1826709c8;
  uVar14 = DAT_1826707e0;
  uVar5 = DAT_1826707dc;
  uVar18 = DAT_1826707d0;
  uVar35 = DAT_1826707bc;
  lVar3 = DAT_1826707a0;
  uVar15 = (ulonglong)DAT_1826707dc;
  uVar16 = DAT_1826707d0 * DAT_1826707a8;
  DAT_1826707f4 = DAT_1826707e0 << 0x10 | DAT_1826707e0 >> 0x10;
  uVar9 = DAT_1826708f4 * DAT_1826709c8;
  uVar26 = DAT_1826707bc + DAT_1826707dc;
  uVar12 = DAT_182670a1c;
  if ((DAT_182670918 & 1) == 0) {
    uVar12 = DAT_182670918;
  }
  uVar41 = DAT_182670ab0 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670dc8);
  uVar10 = *(uint *)(&DAT_18260f760 + DAT_182670dc8) ^ DAT_1826707bc;
  DAT_1826707ac = uVar26;
  DAT_1826707f0 = uVar16;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x34b0dddc)) =
       (DAT_1826707dc ^ 0x7be58b29) - *(int *)(DAT_1826707a0 + -0x2d4);
  lVar4 = DAT_1826707a0;
  uVar11 = DAT_182670ab0 & 0xff;
  DAT_182670ab0 = ((DAT_182670ab0 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar36 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  uVar19 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  puVar30 = (ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xd5aca50e));
  *puVar30 = (CONCAT44(DAT_1826709b4,DAT_1826709b4) ^ *(ulonglong *)(lVar3 + -0xf0)) -
             (uVar36 ^ *(ulonglong *)(lVar3 + -0x998)) ^ uVar19;
  uVar11 = DAT_1826707a8;
  uVar41 = ((uVar41 << 8 | uVar41) << 8 | uVar41) << 8 | uVar41;
  uVar46 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar31 = CONCAT44(uVar41,uVar41);
  uVar34 = (ulonglong)DAT_1826707a8;
  puVar20 = (ulonglong *)(lVar4 - (uVar34 ^ 0xa32229e4));
  DAT_182670aa0 = uVar41;
  *puVar20 = *(ulonglong *)(lVar4 + -0x9c8) ^ uVar31 ^ uVar46 ^ uVar36 ^
             *(ulonglong *)(lVar4 + -0x998);
  uVar42 = CONCAT44(DAT_182670930,DAT_182670930);
  uVar36 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x34b24e7b)) =
       (*(ulonglong *)(lVar4 + -0xc18) ^ uVar42) -
       (CONCAT44(uVar5,DAT_1826707f4) ^ 0x446f97f01d3321f8);
  uVar17 = uVar12 & 0xff;
  uVar32 = (uVar31 ^ *(ulonglong *)(lVar4 + -0xac0)) >> (((byte)uVar26 ^ 0x9e) & 0x3f);
  uVar22 = (ulonglong)uVar26;
  uVar23 = (uVar31 ^ *(ulonglong *)(lVar4 + -0xac0)) << (((byte)uVar14 ^ 4) & 0x3f);
  DAT_18267085c = ((uVar12 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar25 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar12 = DAT_182670918 & 0xff;
  *(ulonglong *)(lVar4 + -0xf0) = uVar32 ^ uVar25;
  DAT_182670918 = ((DAT_182670918 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar28 = CONCAT44(DAT_182670918,DAT_182670918);
  uVar12 = DAT_1826708f4 & 0xff;
  *(ulonglong *)(lVar4 + -0x998) = uVar23 ^ uVar28;
  uVar17 = DAT_1826707cc;
  DAT_1826708f4 = ((DAT_1826708f4 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar21 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  uVar44 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar4 - (uVar15 ^ 0xd418e83d)) = (uVar23 | uVar32) ^ uVar21;
  uVar12 = DAT_1826707b4;
  uVar29 = DAT_1826707b4 * uVar17;
  uVar27 = (ulonglong)DAT_1826707b4;
  uVar13 = DAT_182670810 & 0xff;
  DAT_1826707d8 = uVar29;
  *(ulonglong *)(lVar4 + -0xac0) =
       (CONCAT44(DAT_1826707b4,uVar17) ^ 0x86360358c86b6612) <<
       (((byte)DAT_182670964 ^ *(byte *)(lVar4 + -0x610)) & 0x3f);
  lVar3 = DAT_1826707a0;
  DAT_182670810 = ((DAT_182670810 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar33 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar29 ^ 0x654c7884)) ^ uVar46) -
       (CONCAT44(uVar18,uVar17) ^ 0xd34731df87189065) ^ uVar33;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x34b241e3)) =
       CONCAT44(uVar12,uVar26) ^ CONCAT44(uVar5,uVar35) ^ 0xca3b8df14d01b7d2;
  puVar24 = (ulonglong *)(lVar3 - (uVar36 ^ 0x4b2331ea));
  *(ulonglong *)(lVar3 + -0x610) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x998)) - (uVar21 ^ *puVar24) ^ uVar25;
  uVar13 = DAT_182670a1c & 0xff;
  DAT_182670a1c = ((DAT_182670a1c << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar23 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar3 - (uVar15 ^ 0xd418e4ad)) =
       (*(ulonglong *)(lVar3 + -0x558) ^ uVar21) - (CONCAT44(uVar16,uVar29) ^ 0x32ffbf9b55b7b5da) ^
       uVar23;
  uVar13 = uVar9 & 0xff;
  DAT_18267091c = ((uVar9 * 0x100 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar32 = CONCAT44(DAT_18267091c,DAT_18267091c);
  uVar9 = DAT_1826707f4 ^ 0x973946b1;
  uVar46 = *(ulonglong *)(lVar3 + -0xc18) ^ *(ulonglong *)(lVar3 + -0x4c8) ^ uVar32 ^ uVar42 ^
           uVar19;
  *(ulonglong *)(lVar3 + -0xac0) = uVar46;
  local_c0 = (byte)uVar11;
  uVar42 = (uVar46 ^ uVar32) >> ((local_c0 ^ 5) & 0x3f);
  *(uint *)(lVar3 + -0x2d4) = uVar9 + 0xeea0f4b8;
  uVar9 = DAT_1826709c8 & 0xff;
  *(ulonglong *)(lVar3 + -0x998) = uVar42 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x558) = (uVar46 ^ uVar32) << (((byte)uVar35 ^ 0x3d) & 0x3f) ^ uVar25;
  DAT_1826709c8 = ((DAT_1826709c8 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar37 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  uVar42 = *(ulonglong *)(lVar3 - ((ulonglong)uVar35 ^ 0x2324a67a)) ^ uVar25 | uVar42;
  *(ulonglong *)(lVar3 + -0xc18) = uVar42 ^ uVar37;
  uVar46 = (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar19) -
           (CONCAT44(uVar11,uVar26) ^ 0x2e8ef81c241b0a4b);
  *(ulonglong *)(lVar3 + -0xac0) = uVar46 ^ uVar21;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar29 ^ 0x654c7414)) = uVar46 - uVar42 ^ uVar23;
  lVar4 = DAT_1826707a0;
  puVar39 = (ulonglong *)(lVar3 - (uVar44 ^ 0xbf6f77f4));
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0xd5aca85e)) =
       (CONCAT44(uVar16,uVar12) ^ 0xed34bddbf074b160) + (uVar37 ^ *puVar39) ^ uVar28;
  uVar42 = *(ulonglong *)(lVar4 + -0x610) ^ uVar28 ^ uVar25 ^ uVar31 ^
           *(ulonglong *)(lVar4 + -0x998);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar42;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x6e7fd249)) =
       ((ulonglong)uVar41 << 0x1b | (ulonglong)(uVar41 >> 5)) ^ uVar42 >> 5 ^ uVar32;
  local_98 = (byte)uVar16;
  uVar42 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x34b24feb)) ^ uVar31) <<
           ((local_98 ^ 0xe3) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc18) = uVar42 ^ uVar32;
  *(ulonglong *)(lVar4 + -0x998) = (uVar42 | uVar32 ^ *(ulonglong *)(lVar4 + -0xac0)) ^ uVar28;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar25) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x6e7fd111)) ^ uVar28) ^ uVar25;
  puVar38 = (ulonglong *)(lVar4 - (uVar15 ^ 0xd418e7a5));
  *puVar38 = *(ulonglong *)(lVar4 - (uVar22 ^ 0xf73d95df)) ^ *(ulonglong *)(lVar4 + -0x9c8) ^ uVar31
  ;
  uVar46 = (uVar31 ^ *(ulonglong *)(lVar4 + -0xac0)) >> ((local_98 ^ 0xfd) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc18) = uVar46 ^ uVar33;
  uVar42 = (uVar31 ^ *puVar38) << (((byte)uVar35 ^ 0x39) & 0x3f);
  *(ulonglong *)(lVar4 + -0x610) = uVar42 ^ uVar19;
  uVar42 = uVar42 | uVar46;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar42 ^ uVar21;
  *(ulonglong *)(lVar4 + -0xac0) = (*(ulonglong *)(lVar4 + -0x558) ^ uVar23) - uVar42 ^ uVar37;
  *puVar39 = (*(ulonglong *)(lVar4 + -0xf0) ^ uVar25) + 0x9fcbb308321b6770;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x34b24d33)) =
       *(ulonglong *)(lVar4 + -0x9c8) ^ *(ulonglong *)(lVar4 + -0x4c8) ^ uVar33 ^ uVar21 ^ uVar25;
  uVar42 = (*(ulonglong *)(lVar4 + -0x610) ^ uVar33) >> (((byte)uVar17 ^ 0xfb) & 0x3f);
  *(ulonglong *)(lVar4 + -0xf0) = (*(ulonglong *)(lVar4 + -0x610) ^ uVar33) << 0x29 ^ uVar28;
  *(ulonglong *)(lVar4 + -0x558) = uVar42 ^ uVar23;
  puVar38 = (ulonglong *)(lVar4 - (uVar27 ^ 0x6e7fd879));
  *(ulonglong *)(lVar4 + -0xc18) = (*(ulonglong *)(lVar4 + -0x610) ^ uVar33) + (uVar28 ^ *puVar38);
  puVar39 = (ulonglong *)(lVar4 - (uVar36 ^ 0x4b233442));
  uVar42 = *puVar39 ^ uVar28 | uVar42;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar42 ^ uVar25;
  *(ulonglong *)(lVar4 + -0x610) = (*(ulonglong *)(lVar4 + -0x4c8) ^ uVar25) - uVar42 ^ uVar19;
  *(uint *)(lVar4 - (uVar15 ^ 0xd418e161)) = *(uint *)(lVar4 + -0xc34) | *(uint *)(lVar4 + -0x14);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar35 ^ 0x2324af3a)) =
       uVar28 ^ *(ulonglong *)(lVar4 + -0xac0) ^ *(ulonglong *)(lVar4 + -0x998);
  uVar42 = (*(ulonglong *)(lVar4 + -0xc18) ^ uVar37) >> (((byte)uVar12 ^ 0xa1) & 0x3f);
  puVar40 = (ulonglong *)(lVar4 - (uVar22 ^ 0xf73d9c9f));
  *(ulonglong *)(lVar4 + -0xf0) = uVar42 ^ uVar37;
  uVar15 = (uVar37 ^ *puVar40) << ((local_c0 ^ 0x3c) & 0x3f);
  *(ulonglong *)(lVar4 + -0x558) = uVar15 ^ uVar32;
  uVar15 = (uVar42 | uVar15) ^ uVar21;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar15;
  uVar15 = uVar15 ^ *(ulonglong *)(lVar4 + -0x610) ^ uVar21 ^ uVar28 ^ uVar19;
  *(ulonglong *)(lVar4 + -0x998) = (*puVar20 ^ uVar37) - (*puVar30 ^ uVar21) ^ uVar21;
  *(ulonglong *)(lVar4 + -0x558) = uVar15;
  *puVar39 = (uVar15 ^ uVar28) >> (((byte)uVar12 ^ 0xbd) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x4b233e72)) =
       (*(ulonglong *)(lVar4 + -0x558) ^ uVar28) << (((byte)uVar17 ^ 0xe0) & 0x3f) ^ uVar31;
  uVar15 = *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0x654c71bc)) ^ uVar28 |
           uVar31 ^ *(ulonglong *)(lVar4 + -0xac0);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar15 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x558) = uVar15 | 0xdd3dad4c61bcdd8b;
  *(ulonglong *)(lVar4 + -0xf0) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar19) - (*puVar30 ^ uVar33) ^ uVar23;
  *(ulonglong *)(lVar4 + -0xac0) =
       *(ulonglong *)(lVar4 + -0x9c8) ^ uVar25 ^ uVar31 ^ uVar21 ^ *(ulonglong *)(lVar4 + -0x998);
  uVar14 = DAT_1826707d4;
  uVar17 = DAT_1826707d4 & 3;
  *(ulonglong *)(lVar4 + -0x558) =
       (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar25) - (CONCAT44(uVar12,uVar11) ^ 0x4e4a365d0b4aee4f);
  uVar11 = DAT_1826707e4;
  uVar9 = DAT_1826707d4;
  uVar18 = DAT_1826707c8;
  uVar35 = DAT_1826707c0;
  uVar12 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  if (uVar17 < 2) {
    uVar13 = DAT_1826707b8;
    if (uVar17 == 0) {
      uVar13 = uVar14;
    }
  }
  else {
    uVar13 = DAT_1826707e4;
    if (uVar17 < 3) {
      uVar13 = DAT_1826707c0;
    }
  }
  uVar15 = (ulonglong)DAT_1826707d4;
  DAT_1826707b0 = uVar13;
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x8a244a68)) ^ uVar31) >>
       (((byte)DAT_1826707b8 ^ 0xff) & 0x3f) ^ uVar19;
  puVar39 = (ulonglong *)(lVar4 - (uVar15 ^ 0x8a244a68));
  *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x8a244960)) =
       (*puVar39 ^ uVar31) << (((byte)uVar35 ^ 0xf8) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar35 ^ 0xce9d4a7)) =
       (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar33) >>
       ((*(byte *)(lVar3 + -0xc18) ^ (byte)uVar7) & 0x3f);
  uVar14 = DAT_1826707e8;
  uVar15 = (ulonglong)DAT_1826707e8;
  uVar42 = CONCAT44(DAT_182670858,DAT_182670858);
  uVar36 = *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0x6c6a6073)) ^ uVar37 |
           *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x4a887d6)) ^ uVar19;
  *(ulonglong *)(lVar3 + -0xc18) = uVar36 ^ uVar42;
  uVar18 = uVar14 - DAT_1826707a8;
  puVar43 = (ulonglong *)(lVar3 - (uVar34 ^ 0xa322267c));
  DAT_1826707c4 = uVar18;
  *puVar43 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x998)) - uVar36 ^ uVar32;
  lVar4 = DAT_1826707a0;
  puVar45 = (ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0x214a66ba));
  puVar30 = (ulonglong *)(DAT_1826707a0 - (uVar15 ^ 0xc46c8576));
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar42 ^ *puVar45 ^ uVar32 ^ uVar23 ^ *puVar30;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xc46c80a6)) =
       CONCAT44(uVar18,uVar14) ^ uVar31 ^ *(ulonglong *)(lVar4 + -0xac0) ^ 0x2ab6f33bb32508fe;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) >> ((local_c0 ^ 0x2a) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x8a244cb0)) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0x610)) << ((local_c0 ^ 0x16) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x4a8880e)) =
       (*(ulonglong *)(lVar3 + -0xc18) ^ uVar37 | uVar21 ^ *(ulonglong *)(lVar3 + -0x998)) ^ uVar19;
  lVar4 = DAT_1826707a0;
  uVar15 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  bVar2 = (byte)uVar9;
  *(ulonglong *)(lVar3 + -0xac0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x8a244058)) ^ uVar23) -
       (CONCAT44(uVar11,uVar13) ^ 0x2712a4ad491245d0) ^ uVar15;
  uVar35 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x9c8);
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0xce9db3f)) ^ uVar15) -
       (*(ulonglong *)(DAT_1826707a0 + -0x9c8) ^ uVar19) ^ uVar25;
  *(ulonglong *)(lVar3 + -0x998) =
       (*puVar20 ^ uVar19) - (CONCAT44(uVar18,uVar14) ^ 0xa2ff22c229766fe4) ^ uVar37;
  puVar20 = (ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x4a88dde));
  *puVar20 = *(ulonglong *)(lVar3 + -0x558) ^ *(ulonglong *)(lVar3 + -0x4c8) ^ uVar33;
  uVar36 = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar32) >> (((byte)uVar35 ^ 0xef) & 0x3f);
  uVar15 = CONCAT44(DAT_182670818,DAT_182670818);
  *(uint *)(lVar3 + -0x14) = DAT_1826707a8 ^ 0xaf3abe0 | *(uint *)(lVar3 + -0x42c);
  uVar12 = _DAT_1826709e0 & 0xff;
  *(ulonglong *)(lVar3 + -0xf0) = uVar36 ^ uVar15;
  lVar4 = DAT_1826707a0;
  _DAT_1826709e0 = ((_DAT_1826709e0 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar15 = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar32) << ((bVar2 ^ 0x98) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar15 ^ CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  uVar15 = uVar15 | uVar36;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar15 ^ uVar28;
  uVar21 = CONCAT44(uVar13,DAT_1826707c8);
  uVar36 = (*(ulonglong *)(lVar4 + -0x558) ^ uVar32) - (uVar21 ^ 0x8c6b2eeb5c91ad2d);
  *(ulonglong *)(lVar4 + -0xc18) = uVar36 ^ CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar6 = DAT_182670b00;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar36 - uVar15 ^ uVar25;
  uVar12 = DAT_182670880;
  lVar3 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_182670880;
  uVar19 = CONCAT44(uVar6,uVar6);
  uVar15 = (CONCAT44(uVar18,uVar13) ^ 0x2016006b60d4dd42) + uVar15 ^ uVar19;
  *(ulonglong *)(lVar4 + -0xf0) = uVar15;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xac0) =
       uVar32 ^ uVar15 ^ uVar19 ^ *(ulonglong *)(lVar3 + -0x610) ^ uVar25;
  uVar15 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *puVar43 = *puVar39 >> 0x20 ^ uVar15 ^ uVar36;
  uVar6 = DAT_182670ab4;
  uVar12 = DAT_182670800 & 0xff;
  DAT_182670800 = ((DAT_182670800 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar46 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar3 + -0xc18) = (uVar32 ^ *(ulonglong *)(lVar3 + -0xac0)) << 0x20 ^ uVar46;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (uVar46 ^ *puVar20 | uVar15 ^ *(ulonglong *)(lVar3 + -0x558)) ^ uVar36;
  uVar12 = DAT_1826708a8 & 0xff;
  DAT_1826708a8 = ((DAT_1826708a8 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar19 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar32 = (ulonglong)DAT_1826707b0;
  uVar15 = (ulonglong)DAT_1826707b8;
  *puVar45 = (*(ulonglong *)(lVar3 + -0x610) ^ uVar25) -
             (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b0 ^ 0x8a244460)) ^ uVar36) ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar15 ^ 0x4a88b06)) =
       *(ulonglong *)(lVar3 + -0x9c8) ^ uVar25 ^ uVar31 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x998);
  uVar12 = DAT_1826707c0;
  uVar42 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar27 = (ulonglong)DAT_1826707c0;
  puVar20 = (ulonglong *)(lVar3 - (uVar32 ^ 0x8a2446b8));
  *(ulonglong *)(lVar3 + -0x558) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0xf73d9a47)) ^ uVar31) >> (((byte)uVar18 ^ 0x6a) & 0x3f) ^
       uVar42;
  *puVar20 = *(ulonglong *)(lVar3 + -0xc18) ^ uVar46 | uVar21 ^ 0x2ef2b1c0c72f483;
  uVar18 = DAT_1826707d4;
  uVar35 = DAT_1826707c8;
  lVar4 = DAT_1826707a0;
  uVar14 = DAT_18267096c & 0xff;
  DAT_18267096c = ((DAT_18267096c << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar15 = CONCAT44(DAT_18267096c,DAT_18267096c);
  uVar22 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0x8a244930)) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0xac0)) << (((byte)uVar12 ^ 0xdf) & 0x3f) ^ uVar15;
  uVar32 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *puVar40 = (uVar15 ^ *(ulonglong *)(lVar4 + -0x998) | uVar42 ^ *(ulonglong *)(lVar4 + -0x558)) ^
             uVar32;
  uVar21 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x34b0d7c8)) =
       (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar25) -
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0x6c6a65a3)) ^ uVar32) ^ uVar21;
  uVar14 = DAT_182670834 & 0xff;
  uVar15 = *(ulonglong *)(lVar4 - (uVar34 ^ 0xa32223d4)) ^ uVar32 ^ *(ulonglong *)(lVar4 + -0xc18) ^
           uVar19;
  uVar31 = uVar15 ^ uVar31;
  DAT_182670834 = ((DAT_182670834 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  *(ulonglong *)(lVar4 + -0xac0) = uVar31;
  uVar6 = DAT_18267094c;
  uVar34 = (uVar31 >> 0x20 ^ (ulonglong)uVar41) >> 0x1a;
  *(ulonglong *)(lVar4 + -0x558) = uVar34 ^ CONCAT44(DAT_182670834,DAT_182670834);
  uVar8 = DAT_1826709d4;
  lVar3 = DAT_1826707a0;
  uVar15 = uVar15 << ((bVar2 ^ 0xae) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar15 ^ CONCAT44(uVar6,uVar6);
  uVar34 = uVar34 | uVar15;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar34 ^ uVar37;
  uVar32 = CONCAT44(uVar8,uVar8);
  uVar15 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0xc18) = (*(ulonglong *)(lVar3 + -0xf0) ^ uVar19) - uVar34 ^ uVar32;
  uVar6 = DAT_182670a8c;
  uVar19 = CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar36 = *(ulonglong *)(lVar3 - (uVar15 ^ 0xf07e588a)) ^ uVar19 ^ uVar21 ^ *puVar20 ^ uVar36;
  *(ulonglong *)(lVar3 + -0xac0) = uVar36;
  uVar34 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar35 ^ 0x6c6a6ce3)) =
       (uVar36 ^ uVar19) >> (((byte)uVar12 ^ 0xe9) & 0x3f) ^ uVar34;
  uVar36 = (uVar19 ^ *(ulonglong *)(lVar3 + -0xac0)) << (((byte)uVar18 ^ 0x82) & 0x3f);
  uVar35 = DAT_18267080c ^ DAT_182670920;
  uVar12 = DAT_182670920 & 0xff;
  *(ulonglong *)(lVar3 + -0x998) = uVar36 ^ uVar23;
  DAT_182670920 = ((DAT_182670920 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar15 = CONCAT44(DAT_182670920,DAT_182670920);
  uVar12 = DAT_18267080c & 0xff;
  *(ulonglong *)(lVar3 + -0xf0) = (uVar34 ^ *(ulonglong *)(lVar3 + -0x558) | uVar36) ^ uVar15;
  DAT_18267080c = ((DAT_18267080c << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar34 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xce9d537)) =
       (uVar21 ^ *(ulonglong *)(lVar3 + -0x610)) - (uVar15 ^ *puVar38) ^ uVar34;
  uVar12 = uVar35 & 0xff;
  DAT_182670904 = ((uVar35 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar36 = CONCAT44(DAT_182670904,DAT_182670904);
  local_b0 = (byte)uVar5;
  uVar15 = uVar36 ^ uVar15 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0xf0) ^ *puVar30;
  *(ulonglong *)(lVar3 + -0xac0) = uVar15;
  *puVar24 = (uVar15 ^ uVar36) >> ((local_b0 ^ 0x4b) & 0x3f) ^ uVar34;
  uVar15 = *(ulonglong *)(lVar3 + -0xac0);
  DAT_182670990 = DAT_1826707fc | DAT_1826709e4;
  uVar12 = DAT_1826707fc & 0xff;
  DAT_1826707fc = ((DAT_1826707fc << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar34 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar1 ^ uVar26;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x6c6a6023)) = (uVar36 ^ uVar15) << 0x12 ^ uVar34;
  return;
}



############ FUN_ 180d129b0 size=5709 ############

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

void FUN_180d129b0(void)

{
  ulonglong *puVar1;
  byte bVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  uint uVar52;
  ulonglong *puVar53;
  ulonglong *puVar54;
  byte local_res20;
  byte local_118;
  byte local_f0;
  
  uVar15 = DAT_182670adc;
  uVar14 = DAT_1826707f4;
  uVar13 = DAT_1826707ec;
  uVar12 = DAT_1826707dc;
  uVar11 = DAT_1826707d4;
  uVar9 = DAT_1826707bc;
  iVar8 = DAT_1826707b8;
  uVar6 = DAT_1826707a8;
  uVar26 = (ulonglong)DAT_1826707dc;
  uVar51 = (ulonglong)DAT_1826707ec;
  uVar46 = *(uint *)(&DAT_18260f758 + DAT_182670b38) ^ DAT_1826707cc;
  uVar42 = (ulonglong)DAT_1826707a8;
  uVar41 = (ulonglong)DAT_1826707bc;
  DAT_1826707b0 = DAT_1826707bc - DAT_1826707cc;
  uVar24 = (ulonglong)DAT_1826707f4;
  uVar33 = DAT_1826707b4 - DAT_1826707f4;
  uVar52 = DAT_1826707d4 * DAT_1826707ec;
  uVar49 = DAT_1826707dc * DAT_1826707b8;
  uVar22 = DAT_1826707a8 << 0x10 | DAT_1826707a8 >> 0x10;
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670b38) ^ DAT_1826707b0;
  uVar18 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar47 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar31 = CONCAT44(DAT_182670a50,DAT_182670a50) ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8) |
           uVar18 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0);
  DAT_1826707ac = uVar33;
  DAT_1826707d0 = uVar52;
  DAT_1826707d8 = uVar49;
  DAT_1826707f0 = uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar31 ^ uVar47;
  uVar19 = (ulonglong)uVar33;
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar48 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0xb3b97e1c)) ^ uVar35) -
       (*(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0x518bc8f7)) ^ uVar47) ^ uVar48;
  uVar36 = CONCAT44(DAT_182670830,DAT_182670830);
  uVar21 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       CONCAT44(DAT_182670998,DAT_182670998) ^ uVar21 ^ uVar36 ^
       *(ulonglong *)(DAT_1826707a0 + -0xce0) ^ *(ulonglong *)(DAT_1826707a0 + -0x658);
  uVar7 = DAT_1826707b4;
  bVar2 = (byte)uVar14;
  uVar32 = (ulonglong)uVar22;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xe90dc1dd)) = uVar31 << ((bVar2 ^ 0xe) & 0x3f)
  ;
  uVar15 = DAT_182670938;
  lVar4 = DAT_1826707a0;
  uVar43 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  bVar30 = (byte)iVar8;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar22 ^ 0xc5e5e485)) ^ uVar36) >>
       ((bVar30 ^ 0xdd) & 0x3f) ^ uVar43;
  uVar16 = DAT_1826709f4;
  uVar27 = (ulonglong)uVar49;
  uVar23 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x7d8) = (uVar36 ^ *puVar1) << (((byte)uVar13 ^ 0xc) & 0x3f) ^ uVar23;
  uVar36 = CONCAT44(uVar16,uVar16);
  uVar40 = (ulonglong)uVar52;
  uVar31 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar52 ^ 0xfcc94a4c)) ^ uVar43 |
           *(ulonglong *)(lVar4 - (uVar27 ^ 0x46854bdb)) ^ uVar23) ^ uVar36;
  uVar37 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar31;
  uVar34 = DAT_1826707b0;
  uVar44 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar4 + -0x420) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0xce0)) -
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xc5e5edc5)) ^ uVar36) ^ uVar37;
  uVar3 = DAT_1826707cc;
  uVar38 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar4 + -0x588) =
       uVar38 ^ uVar36 ^ uVar48 ^ *(ulonglong *)(lVar4 + -0x660) ^ uVar31;
  *(uint *)(lVar4 - (uVar44 ^ 0xabb4f9e0)) = (uVar3 ^ 0xe9352d7a) * (uVar11 ^ 0xc7f74bbe);
  uVar15 = DAT_182670880;
  uVar31 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar4 + -0xa18) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar49 ^ 0x4685498b)) ^ uVar38) >>
       ((bVar30 ^ 199) & 0x3f) ^ uVar31;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b4 ^ 0x8c020c44)) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x588)) << ((bVar2 ^ 0xb) & 0x3f) ^ uVar36;
  lVar5 = DAT_1826707a0;
  *(uint *)(lVar4 - (uVar27 ^ 0x468544e3)) = (uVar34 ^ 0x3bb053) + (DAT_1826707ac ^ 0x4710deb4);
  uVar50 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar31 = uVar31 ^ *(ulonglong *)(lVar5 + -0xa18) | uVar36 ^ *(ulonglong *)(lVar5 + -0x400);
  puVar1 = (ulonglong *)(lVar5 + -0xc18);
  *puVar1 = uVar31 ^ uVar50;
  uVar15 = DAT_182670b00;
  uVar28 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(lVar5 + -0x220) = (uVar48 ^ *(ulonglong *)(lVar5 + -0x660)) - uVar31 ^ uVar28;
  lVar4 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       *(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xe90dc025)) ^ uVar31 ^ uVar37 ^ uVar47 ^
       *(ulonglong *)(DAT_1826707a0 + -0x420);
  local_res20 = (byte)(uVar6 >> 0x10);
  puVar53 = (ulonglong *)(lVar4 - (uVar41 ^ 0xb3b9716c));
  *(ulonglong *)(lVar4 + -0x6f0) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0x4c3fb947)) ^ uVar31) >> ((local_res20 ^ 0x1b) & 0x3f) ^
       uVar28;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x3a7632c5)) =
       (uVar31 ^ *puVar53) << ((bVar30 ^ 0xd7) & 0x3f) ^ uVar23;
  uVar15 = DAT_182670844;
  *(ulonglong *)(lVar4 + -0x658) =
       CONCAT44(uVar13,uVar6) ^ CONCAT44(uVar9,uVar12) ^ 0xdd7333b99529520c;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar31 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x6f0) | uVar23 ^ *(ulonglong *)(lVar4 + -0x9c8)) ^
           uVar38;
  *(ulonglong *)(lVar4 + -0x438) = uVar31;
  bVar29 = (byte)uVar34;
  uVar47 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar4 + -0xd88) = 0xf87e054350abd0ea >> ((bVar29 ^ 0xd9) & 0x3f);
  uVar16 = DAT_1826708d4;
  uVar23 = (ulonglong)DAT_182670aa8;
  uVar24 = (uVar37 ^ *(ulonglong *)(lVar4 + -0x420)) -
           (*(ulonglong *)(lVar4 - (uVar40 ^ 0xfcc947ec)) ^ uVar38) ^ uVar47;
  uVar39 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar24;
  uVar15 = DAT_182670820;
  uVar48 = uVar39 ^ uVar31 ^ uVar38 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0x220);
  uVar45 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x998) = uVar48;
  uVar16 = DAT_182670858;
  lVar5 = DAT_1826707a0;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar31 = *(ulonglong *)(DAT_1826707a0 + -0x220);
  uVar23 = (uVar48 >> 0x20 ^ uVar23) >> 0xe;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (uVar39 ^ uVar48) << (((byte)DAT_1826707b4 ^ 0x56) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar4 + -0xce0) = uVar23 ^ uVar45;
  uVar39 = CONCAT44(uVar16,uVar16);
  uVar23 = *(ulonglong *)(lVar5 - (uVar19 ^ 0x518bc9ff)) ^ uVar38 | uVar23;
  uVar48 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(lVar5 + -0x588) = uVar23 ^ uVar39;
  uVar10 = DAT_1826707cc;
  *(ulonglong *)(lVar5 + -0xa18) = (uVar28 ^ uVar31) - uVar23 ^ uVar48;
  lVar4 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  uVar31 = (ulonglong)DAT_1826708b8;
  uVar3 = DAT_1826708b8 >> 0xc;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x8048000)) =
       uVar38 ^ uVar47 ^ uVar50 ^ uVar24 ^ *puVar1;
  *(uint *)(lVar4 + -0x280) = *(uint *)(lVar4 + -0x2d4) | 0xd482553f;
  uVar24 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar4 + -0x660) =
       (uVar31 << 0x14 | (ulonglong)uVar3) ^ *(ulonglong *)(lVar4 + -0x400) >> 0xc ^ uVar24;
  uVar15 = DAT_1826709a0;
  puVar25 = (ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x80481c0));
  *puVar25 = CONCAT44(uVar13,uVar34) ^ 0x4c81c2d5000d040 | 0xf326c3908b7f0bad;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x6b8) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xc5e5ed0d)) ^ uVar38) << ((bVar29 ^ 0xe0) & 0x3f) ^ uVar31
  ;
  puVar20 = (ulonglong *)(lVar4 - (uVar41 ^ 0xb3b971b4));
  uVar23 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar31 = *puVar53 ^ uVar31 | *puVar20 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x658) = uVar31 ^ uVar23;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       CONCAT44(uVar14,uVar33) ^ 0xa0625643701aa0fb |
       uVar45 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0);
  uVar24 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar28 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (*(ulonglong *)(lVar4 - (uVar42 ^ 0xe90dc23d)) ^ uVar47) - uVar31 ^ uVar24;
  uVar23 = *(ulonglong *)(lVar4 - (uVar40 ^ 0xfcc9458c)) ^ uVar48 ^ *(ulonglong *)(lVar4 + -0xa18) ^
           uVar28 ^ uVar23;
  uVar47 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(lVar4 + -0xd88) = uVar23;
  uVar16 = DAT_1826708a0;
  puVar54 = (ulonglong *)(lVar4 - (uVar51 ^ 0x6c40080c));
  *puVar54 = (uVar23 ^ uVar28) >> ((bVar30 ^ 0xe4) & 0x3f) ^ uVar47;
  uVar15 = DAT_182670894;
  lVar4 = DAT_1826707a0;
  uVar31 = (*(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar28) << (((byte)uVar6 ^ 0xc2) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x438) = uVar31 ^ CONCAT44(uVar16,uVar16);
  uVar3 = DAT_1826707b4;
  lVar5 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar15,uVar15);
  uVar28 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0x518bc4af)) =
       (*(ulonglong *)(lVar4 + -0x420) ^ uVar47 | uVar31) ^ uVar23;
  uVar31 = *(ulonglong *)(lVar5 + -0x400);
  *(ulonglong *)(lVar5 + -0x4c8) =
       CONCAT44(uVar9,uVar34) ^ CONCAT44(uVar12,uVar3) ^ 0xf5d8fc2056358890;
  uVar47 = (uVar48 ^ *(ulonglong *)(lVar5 + -0xa18)) - (CONCAT44(uVar12,iVar8) ^ 0x12d2561327d84919)
  ;
  *(ulonglong *)(lVar5 + -0x220) = uVar47 ^ uVar43;
  *puVar1 = uVar47 - (*(ulonglong *)(lVar5 - (uVar32 ^ 0xc5e5e095)) ^ uVar23) ^ uVar21;
  *puVar25 = (CONCAT44(uVar52,uVar11) ^ 0x447b6efcdafdf9d2) - (uVar38 ^ uVar31);
  uVar3 = DAT_182670a74;
  uVar38 = CONCAT44(DAT_182670870,DAT_182670870);
  uVar31 = (ulonglong)DAT_182670a74;
  *(ulonglong *)(lVar5 + -0x660) =
       (*(ulonglong *)(lVar5 + -0x998) ^ uVar23) - (CONCAT44(uVar14,uVar13) ^ 0xf25e8d42617c239a) ^
       uVar38;
  uVar15 = DAT_182670910;
  uVar23 = CONCAT44(uVar3,uVar3);
  uVar47 = uVar39 ^ *(ulonglong *)(lVar5 + -0x6f0) ^ uVar23 ^ uVar24 ^
           *(ulonglong *)(lVar5 + -0x588);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar47;
  lVar4 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = (uVar47 >> 0x20 ^ uVar31) >> 1 ^ uVar32;
  uVar15 = DAT_182670964;
  uVar39 = CONCAT44(DAT_18267092c,DAT_18267092c);
  local_f0 = (byte)uVar49;
  uVar45 = (ulonglong)DAT_1826707c4;
  puVar25 = (ulonglong *)(lVar4 - (uVar28 ^ 0x8c02018c));
  *puVar25 = (uVar47 ^ uVar23) << ((local_f0 ^ 0x1c) & 0x3f) ^ uVar39;
  lVar4 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0xb3b9700c)) =
       (*(ulonglong *)(DAT_1826707a0 + -0xce0) ^ uVar32 |
       *(ulonglong *)(DAT_1826707a0 + -0x9c8) ^ uVar39) ^ uVar23;
  uVar15 = DAT_182670a2c;
  uVar47 = CONCAT44(DAT_182670a40,DAT_182670a40);
  uVar31 = (*(ulonglong *)(lVar4 + -0x6f0) ^ uVar24) - (CONCAT44(uVar13,uVar22) ^ 0xeca0268e4d64a06)
  ;
  *(ulonglong *)(lVar4 + -0x658) = uVar31 ^ uVar47;
  uVar50 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xd88) =
       uVar31 - (*(ulonglong *)(lVar4 - (uVar51 ^ 0x6c400bf4)) ^ uVar23) ^ uVar50;
  uVar15 = DAT_182670968;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 + -0x418);
  uVar48 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x420) =
       (*(ulonglong *)(lVar4 - (uVar45 ^ 0x1345d2bf)) ^ uVar23) +
       (CONCAT44(uVar33,uVar6) ^ 0x145652d9650911b2) ^ uVar48;
  uVar31 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xabb4f7ec)) =
       *(ulonglong *)(lVar4 - (uVar19 ^ 0x518bc12f)) ^ uVar21 ^ *puVar54 ^ uVar31 ^ uVar48;
  uVar16 = DAT_182670a78;
  local_118 = (byte)uVar52;
  uVar32 = (uVar31 ^ *(ulonglong *)(lVar4 + -0x438)) << ((bVar29 ^ 0xef) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (*(ulonglong *)(lVar4 - (uVar44 ^ 0xabb4f7ec)) ^ uVar31) >> ((local_118 ^ 0xd1) & 0x3f) ^
       uVar35;
  uVar15 = DAT_1826708e4;
  *(ulonglong *)(lVar4 + -0xa18) = uVar32 ^ CONCAT44(uVar16,uVar16);
  lVar5 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar15,uVar15);
  uVar31 = (ulonglong)DAT_1826707c0;
  uVar32 = *(ulonglong *)(lVar4 - (uVar23 ^ 0x8c020c8c)) ^ uVar35 | uVar32;
  *(ulonglong *)(lVar4 + -0x400) = uVar32 ^ uVar28;
  puVar53 = (ulonglong *)(lVar4 - (uVar31 ^ 0xe625ec7a));
  uVar24 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *(ulonglong *)(lVar5 + -0x5c0) = (uVar21 ^ *puVar53) - uVar32 ^ uVar24;
  uVar45 = (ulonglong)DAT_1826707cc;
  uVar32 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar5 + -0x998) =
       CONCAT44(DAT_1826707e4,uVar9) ^ 0x642f1eea129ce598 | uVar43 ^ *(ulonglong *)(lVar5 + -0x220);
  uVar21 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar23 = *(ulonglong *)(lVar5 - (uVar32 ^ 0x11959e13)) ^ uVar21 ^ uVar50 ^ uVar38 ^
           *(ulonglong *)(lVar5 + -0x660);
  *(ulonglong *)(lVar5 + -0x6b8) = (uVar26 ^ 0x8ba9ff80) >> 4;
  *(ulonglong *)(lVar5 + -0x588) = uVar23;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (*(ulonglong *)(lVar5 - (uVar40 ^ 0xfcc9465c)) ^ uVar21) >> (((byte)uVar12 ^ 0xda) & 0x3f) ^
       uVar18;
  uVar31 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0x8048dc8)) =
       (uVar21 ^ uVar23) << ((bVar2 ^ 0x16) & 0x3f) ^ uVar31;
  uVar15 = DAT_182670af8;
  lVar4 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar31 = *(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xe90dcc2d)) ^ uVar31 |
           uVar18 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0);
  uVar23 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar31 ^ uVar21;
  *(ulonglong *)(lVar4 + -0x658) =
       (*(ulonglong *)(lVar4 - (uVar44 ^ 0xabb4fe5c)) ^ uVar50) - uVar31 ^ uVar23;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xfcc9440c)) =
       (CONCAT44(uVar49,uVar13) ^ 0x16fa1c5ef29dee5e) <<
       ((*(byte *)(lVar4 - (uVar41 ^ 0xb3b9718c)) ^ (byte)uVar15) & 0x3f);
  uVar40 = CONCAT44(DAT_182670994,DAT_182670994);
  uVar38 = *(ulonglong *)(lVar4 + -0x6f0) ^ *(ulonglong *)(lVar4 + -0x5c0) ^ uVar40 ^ uVar21 ^
           uVar24;
  uVar21 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar4 + -0x420) = uVar38;
  lVar4 = DAT_1826707a0;
  uVar18 = (uVar40 ^ *puVar54) >> ((local_f0 ^ 0x14) & 0x3f);
  uVar31 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *(ulonglong *)(DAT_1826707a0 + -0x438) = uVar18 ^ uVar21;
  uVar15 = DAT_182670950;
  uVar21 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar38 = (uVar40 ^ uVar38) << (((byte)DAT_1826707e4 ^ 0x53) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa18) = uVar38 ^ uVar31;
  uVar40 = CONCAT44(uVar15,uVar15);
  uVar18 = uVar18 | uVar38;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar18 ^ uVar21;
  lVar5 = DAT_1826707a0;
  uVar31 = *(ulonglong *)(DAT_1826707a0 + -0x400);
  *puVar1 = (*(ulonglong *)(lVar4 + -0x5c0) ^ uVar24) - uVar18 ^ uVar40;
  uVar38 = CONCAT44(DAT_182670898,DAT_182670898);
  uVar18 = CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar28 = uVar31 ^ uVar38 ^ uVar23 ^ *(ulonglong *)(lVar5 + -0x658) ^ uVar28;
  *(ulonglong *)(lVar5 + -0x220) = uVar28;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0x11959a03)) =
       (uVar28 ^ uVar38) >> ((bVar30 ^ 0xd5) & 0x3f) ^ uVar18;
  *puVar20 = (*(ulonglong *)(lVar5 + -0x220) ^ uVar38) << 0x18 ^ uVar48;
  uVar31 = *(ulonglong *)(lVar5 + -0x998) ^ uVar18 | uVar48 ^ *(ulonglong *)(lVar5 + -0x660);
  uVar18 = uVar31 ^ uVar35;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar18;
  uVar15 = DAT_182670878;
  *(ulonglong *)(lVar5 + -0x588) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x46854a5b)) ^ uVar23) - uVar31 ^ uVar36;
  uVar16 = DAT_18267089c;
  uVar23 = CONCAT44(uVar15,uVar15);
  uVar31 = uVar35 ^ uVar23 ^ uVar40 ^ uVar18 ^ *puVar53;
  *(ulonglong *)(lVar5 + -0xce0) = uVar31;
  uVar32 = CONCAT44(uVar16,uVar16);
  *puVar25 = (uVar31 ^ uVar23) >> (((byte)uVar9 ^ 0xe0) & 0x3f) ^ uVar32;
  uVar16 = DAT_182670af0;
  uVar31 = *puVar1;
  uVar18 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar5 + -0xd88) = (uVar23 ^ *(ulonglong *)(lVar5 + -0xce0)) << 0xc ^ uVar18;
  uVar15 = DAT_182670904;
  uVar23 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x7d8) =
       (*(ulonglong *)(lVar5 - (uVar51 ^ 0x6c4001a4)) ^ uVar18 |
       *(ulonglong *)(lVar5 + -0x9c8) ^ uVar32) ^ uVar23;
  uVar18 = CONCAT44(uVar15,uVar15);
  uVar51 = (uVar40 ^ uVar31) - (*(ulonglong *)(lVar5 - (uVar44 ^ 0xabb4f40c)) ^ uVar23) ^ uVar18;
  uVar38 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar5 + -0x6f0) = uVar51;
  uVar16 = DAT_182670a48;
  uVar32 = *(ulonglong *)(lVar5 - (uVar41 ^ 0xb3b9725c)) ^ uVar36 ^ uVar38 ^ uVar21 ^
           *(ulonglong *)(lVar5 + -0x4c8);
  uVar41 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar5 + -0x420) = uVar32;
  *(ulonglong *)(lVar5 + -0xa18) = (uVar32 ^ uVar38) >> (((byte)uVar12 ^ 0xc6) & 0x3f) ^ uVar41;
  uVar15 = DAT_1826708f4;
  uVar31 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x438) = (uVar38 ^ uVar32) << ((local_res20 ^ 10) & 0x3f) ^ uVar31;
  uVar16 = _DAT_182670ad4;
  uVar6 = DAT_1826707c0;
  lVar4 = DAT_1826707a0;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar32 = (ulonglong)DAT_1826707c0;
  uVar31 = *(ulonglong *)(lVar5 - (uVar19 ^ 0x518bc90f)) ^ uVar31 |
           *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707b4 ^ 0x8c02025c)) ^ uVar41;
  uVar41 = uVar31 ^ uVar38;
  *(ulonglong *)(lVar5 + -0x5c0) = uVar41;
  uVar15 = DAT_182670aa0;
  uVar24 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x400) = (uVar36 ^ *(ulonglong *)(lVar4 + -0x588)) - uVar31 ^ uVar24;
  uVar3 = DAT_1826707b4;
  uVar19 = (ulonglong)DAT_1826707b4;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar21 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar34 = DAT_1826707c0 + DAT_1826707b4;
  uVar41 = uVar51 ^ uVar41 ^ uVar31 ^ uVar38 ^ uVar18;
  *(ulonglong *)(lVar4 + -0x220) = uVar41;
  lVar4 = DAT_1826707a0;
  DAT_1826707e4 = uVar34;
  *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0xabb4fa4c)) =
       (uVar41 ^ uVar31) >> ((local_res20 ^ 3) & 0x3f) ^ uVar21;
  uVar15 = DAT_18267086c;
  uVar31 = (*(ulonglong *)(lVar4 + -0x220) ^ uVar31) << 0x32;
  *(ulonglong *)(lVar4 + -0x660) = uVar31 ^ CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar41 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x658) = (*(ulonglong *)(lVar4 + -0x998) ^ uVar21 | uVar31) ^ uVar41;
  uVar15 = DAT_182670a68;
  uVar31 = (*(ulonglong *)(lVar4 + -0x6f0) ^ uVar18) - (CONCAT44(uVar6,uVar3) ^ 0x43d108a0f7227e89);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar31 ^ uVar37;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x7227e446)) =
       uVar31 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x7227eefe)) ^ uVar41) ^
       CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xd88) = (CONCAT44(uVar7,uVar6) ^ 0xffffe7b44ef27344) << 0xd;
  *(ulonglong *)(lVar4 + -0x9c8) =
       (*(ulonglong *)(lVar4 - (uVar19 ^ 0x8c020e1c)) ^ uVar41) -
       (CONCAT44(uVar34,uVar34) ^ 0xa6ad4fc00e0f645e) ^ uVar39;
  *puVar1 = *(ulonglong *)(lVar4 - (uVar19 ^ 0x8c020f9c)) ^
            *(ulonglong *)(lVar4 - (uVar32 ^ 0xe625e462)) ^ uVar24 ^ uVar23 ^ uVar47;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar46;
  return;
}



############ FUN_ 180c71650 size=2826 ############

void FUN_180c71650(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  byte *pbVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  
  uVar17 = DAT_1826707e8;
  uVar16 = DAT_1826707e4;
  lVar2 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707e4;
  uVar27 = (ulonglong)DAT_1826707e8;
  uVar22 = (ulonglong)DAT_1826707e4;
  uVar29 = DAT_1826707e8 ^ DAT_1826707e4;
  uVar19 = *(uint *)(&DAT_18260f758 + DAT_182670d10) ^ DAT_1826707e8;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar23 ^ 0x4c90290) + (longlong)DAT_182670d10);
  uVar24 = (ulonglong)DAT_182670ae8;
  uVar25 = (ulonglong)DAT_182670824;
  uVar34 = (ulonglong)uVar29;
  pbVar20 = (byte *)(*(ulonglong *)(DAT_1826707a0 + -0x380) ^ uVar24);
  uVar26 = CONCAT44(DAT_1826707e8,DAT_1826707e4);
  bVar28 = (byte)DAT_1826707e4;
  uVar30 = CONCAT44(DAT_1826707e8,uVar29);
  DAT_1826707d4 = uVar29;
  *(byte **)(DAT_1826707a0 + -0xf8) = pbVar20 + (uVar26 ^ 0x82c0511904c90281);
  *pbVar20 = *(byte *)(lVar2 + -0x779) ^ (byte)DAT_182670b00;
  *(undefined8 *)(lVar2 + -0xd8) = *(undefined8 *)(lVar2 + -0xf8);
  *(byte *)(lVar2 + -0x779) = bVar28 ^ 0xcc;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x86095361)) = uVar30 ^ 0xc9e23f2cb27f637c;
  *(undefined8 *)(lVar2 + -0x858) = *(undefined8 *)(lVar2 + -0xc60);
  *(undefined8 *)(lVar2 + -0xc60) = 0x3d321232242455ec;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar30 ^ 0x388ead0dd150453;
  *(ulonglong *)(lVar2 + -0xce0) = CONCAT44(uVar16,uVar29) ^ 0xd6d2204c82b24cd9;
  *(ulonglong *)(lVar2 + -0x998) = uVar30 ^ 0x9c4900b745b34942;
  *(ulonglong *)(lVar2 + -0xa80) = *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x82c051c1)) ^ uVar24
  ;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar16 ^ 0x4c90258)) = 0x2e5362db24cb0edc;
  puVar21 = (ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0x86095bc1));
  *(ulonglong *)(lVar2 + -0x770) = uVar25 ^ *puVar21;
  *puVar21 = CONCAT44(uVar16,uVar16) ^ 0x3a89a2aee91b225b;
  uVar9 = DAT_1826707bc;
  *(ulonglong *)(lVar2 + -0xcd0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x82c05669)) ^ uVar25) + 1;
  lVar3 = DAT_1826707a0;
  *(byte *)(lVar2 + -0x8b9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x770) ^ uVar25) ^ (byte)DAT_182670a6c ^
       (byte)DAT_182670a90;
  *(ulonglong *)(lVar3 + -0x770) = CONCAT44(uVar17,DAT_1826707dc) ^ 0xde9be25d8180bc33;
  uVar8 = DAT_1826707b8;
  uVar5 = DAT_1826707b0;
  uVar30 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x86095791)) =
       (*(ulonglong *)(lVar3 + -0xa80) ^ uVar24) + (CONCAT44(uVar16,uVar16) ^ 0x4c9028004c90281);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x40404550)) ^ uVar24) =
       *(byte *)(lVar3 - (uVar22 ^ 0x4c90a39)) ^ (byte)DAT_182670a6c;
  *(undefined8 *)(lVar3 + -0x678) = *(undefined8 *)(lVar3 + -0x408);
  *(byte *)(lVar3 + -0x8b9) = (byte)uVar17 ^ 0x65;
  uVar13 = DAT_1826707d8;
  uVar31 = (ulonglong)DAT_1826708d4;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x7d3faeee)) = CONCAT44(uVar5,uVar9) ^ 0x6ca4b264d842e09c;
  *(uint *)(lVar3 + -0xa34) = uVar13 ^ 0x8b9509f6;
  *(undefined8 *)(lVar3 + -0xc90) = *(undefined8 *)(lVar3 + -0xcd0);
  uVar22 = *(ulonglong *)(lVar3 + -0x678);
  *(ulonglong *)(lVar3 + -0x4d0) = uVar31 ^ uVar22;
  *(ulonglong *)(lVar3 + -0xcd0) = uVar26 ^ 0x588fa5c7c3c3e99e;
  uVar12 = DAT_1826707cc;
  uVar6 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707c0;
  uVar24 = (ulonglong)DAT_1826707d0;
  uVar26 = (ulonglong)DAT_182670878;
  uVar32 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0x678) =
       CONCAT44(DAT_1826707c0,DAT_1826707d0) ^ 0x8e9784c69c47dff0;
  pbVar20 = *(byte **)(lVar2 - (uVar27 ^ 0x82c05d89));
  *(ulonglong *)(lVar2 + -0x228) = (ulonglong)pbVar20 ^ uVar26;
  uVar7 = DAT_1826707b4;
  *(ulonglong *)(lVar2 + -0xc90) = CONCAT44(uVar9,uVar16) ^ 0xb7c4a908a675e916;
  *(byte **)(lVar2 + -0x4b0) = pbVar20 + 1;
  lVar3 = DAT_1826707a0;
  bVar28 = *pbVar20 ^ (byte)DAT_1826709c4 ^ (byte)DAT_182670a90;
  *(byte *)(lVar2 + -0xa49) = bVar28;
  bVar28 = bVar28 ^ (byte)DAT_1826709c4;
  uVar27 = (ulonglong)DAT_1826707f4;
  uVar26 = CONCAT44(uVar13,DAT_1826707f4);
  *(ulonglong *)(lVar3 + -0x9e8) = uVar22 + 1;
  uVar4 = DAT_1826707ac;
  *(ulonglong *)(lVar3 + -0x228) = uVar26 ^ 0xe41b3e4fc9efd706;
  uVar15 = DAT_1826707e0;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0x6c372a47)) ^ uVar31) = bVar28;
  *(undefined8 *)(lVar3 + -0x2a0) = *(undefined8 *)(lVar3 + -0x9e8);
  *(undefined8 *)(lVar3 + -0x9e8) = 0xa828ce47d7b2cfe6;
  *(undefined8 *)(lVar3 + -0x928) = *(undefined8 *)(lVar3 + -0x4b0);
  *(byte *)(lVar3 + -0xa49) = (byte)uVar8 ^ 0x17;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xb99b616c)) = CONCAT44(uVar29,uVar7) ^ 0x6b586ebac8cdc7c4;
  *(ulonglong *)(lVar3 + -0x28) = *(ulonglong *)(lVar3 + -0x2a0) ^ uVar25;
  uVar10 = DAT_1826707c4;
  uVar26 = (ulonglong)DAT_182670978;
  uVar31 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0x2a0) = CONCAT44(uVar15,uVar4) ^ 0x1380835b087e9493;
  uVar22 = *(ulonglong *)(lVar3 + -0x928);
  *(ulonglong *)(lVar3 + -0x218) = uVar26 ^ uVar22;
  uVar11 = DAT_1826707c8;
  uVar24 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 + -0x928) = CONCAT44(uVar5,uVar6) ^ 0xdcb880ab6bb3a9be;
  uVar14 = DAT_1826707dc;
  *(ulonglong *)(lVar3 + -0x500) = (CONCAT44(uVar10,uVar11) ^ 0x4fd04040a1a37992) + uVar22;
  *(byte *)(lVar3 + -0x2d5) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x3c5bb8ee)) ^ uVar26) ^
       (byte)DAT_1826708e0 ^ (byte)DAT_182670a90;
  *(uint *)(lVar3 - (uVar27 ^ 0xafef7a27)) = uVar11 ^ 0xe7e5ca0c;
  *(undefined4 *)(*(ulonglong *)(lVar3 + -0xcb0) ^ (ulonglong)DAT_182670950) = 0x35dd2be9;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar12 ^ 0xb99b696c)) = 0xf4d9bc1c54ba59;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar10 ^ 0x4fd04258)) = 0xe79f7a6225a8d36;
  *(ulonglong *)(lVar3 + -0x630) =
       (CONCAT44(uVar17,DAT_1826707e0) ^ 0x34c50d826d7a059) >>
       ((byte)*(undefined8 *)(lVar3 + -0xac0) & 0x3f);
  *(ulonglong *)(lVar3 + -0xac0) = CONCAT44(uVar14,uVar13) ^ 0x6f59e8e1da10766c;
  uVar22 = (ulonglong)DAT_182670824;
  *(ulonglong *)(lVar3 + -0xa60) =
       (CONCAT44(uVar9,uVar13) ^ 0x400000402a010182) + (*(ulonglong *)(lVar3 + -0x28) ^ uVar22);
  uVar25 = (ulonglong)DAT_182670ae4;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xa1a379bb)) ^ uVar22) =
       *(byte *)(lVar3 - (uVar23 ^ 0x4c90055)) ^ (byte)DAT_1826708e0;
  *(byte *)(lVar3 + -0x2d5) = (byte)uVar6 ^ 0x4c;
  uVar22 = *(ulonglong *)(lVar3 - (uVar24 ^ 0xa1a373f3));
  *(undefined8 *)(lVar3 + -0x708) = *(undefined8 *)(lVar3 + -0x500);
  *(ulonglong *)(lVar3 + -0xa60) = CONCAT44(uVar29,uVar14) ^ 0x8558922ff80a7275;
  uVar18 = DAT_1826707ec;
  uVar6 = DAT_1826707d0;
  uVar26 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar3 + -0x500) = CONCAT44(uVar15,uVar11) ^ 0x552d0e8e07890e3c;
  *(ulonglong *)(lVar3 + -0x558) = CONCAT44(uVar18,uVar16) ^ 0xe63d6a8bbe233c3;
  *(ulonglong *)(lVar3 + -0x420) = CONCAT44(uVar5,uVar16) ^ 0xb43c185582d748b4;
  uVar4 = DAT_1826707ac;
  uVar23 = (ulonglong)DAT_1826709b8;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x6c3723bf)) = uVar22 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x3e0) = CONCAT44(uVar14,uVar4) ^ 0x1788d3caa8d7ffb7;
  uVar10 = DAT_1826707e0;
  uVar24 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x7d3fa80e)) = uVar25 ^ *(ulonglong *)(lVar3 + -0x708);
  uVar22 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xd5fef974)) =
       CONCAT44(uVar7,uVar12) ^ 0xc0df2449ce1e80fd;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xa9743d55)) =
       (CONCAT44(uVar17,uVar11) ^ 0x82c05119a1a37992) +
       (*(ulonglong *)(DAT_1826707a0 + -0x2e8) ^ uVar25);
  bVar28 = (byte)DAT_1826709f4;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar13 ^ 0x2a010d9b)) = 0xa4e7b498b40aa3d4;
  *(ulonglong *)(lVar2 + -0x118) = CONCAT44(uVar14,uVar17) ^ 0xcc404eefbf0531e0;
  *(byte *)(lVar2 + -0xd71) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x2e8) ^ uVar25) ^ bVar28 ^ (byte)DAT_182670a90;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x4fd042a8)) = CONCAT44(uVar6,uVar11) ^ 0x97798738fa4307e7;
  *(undefined8 *)(lVar2 + -0x3b0) = 0x6e22693e2f3db5df;
  *(ulonglong *)(lVar2 + -0x10) = (*(ulonglong *)(lVar2 - (uVar33 ^ 0x972e3a44)) ^ uVar23) + 1;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xb99b61dc)) =
       *(ulonglong *)(lVar2 + -0x630) ^ *(ulonglong *)(lVar2 + -0x9c8);
  uVar6 = DAT_1826707b0;
  *(undefined8 *)(lVar2 + -0x9c8) = 0xf25895def41128ae;
  *(ulonglong *)(lVar2 + -0x400) = CONCAT44(uVar16,uVar6) ^ 0x9f6f86cd6e943bf4;
  *(byte *)(*(ulonglong *)(lVar2 + -0xd28) ^ uVar23) = bVar28 ^ *(byte *)(lVar2 + -0xd71);
  *(byte *)(lVar2 + -0xd71) = (byte)DAT_1826707bc ^ 0x46;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x7d3fa7de)) =
       CONCAT44(uVar17,uVar8) ^ 0x5fad3670f7ae42d5 | *(ulonglong *)(lVar2 + -0x630);
  *(undefined8 *)(lVar2 - (uVar31 ^ 0x4fd04670)) = 0xc7060720c86e0b23;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar10 ^ 0xd5fefc34)) = *(undefined8 *)(lVar2 + -0x10);
  *(ulonglong *)(lVar2 + -0x10) = CONCAT44(uVar9,DAT_1826707f0) ^ 0x6500880fcf493afe;
  *(ulonglong *)(lVar2 + -0x660) = CONCAT44(uVar4,uVar13) ^ 0x99ba19963c4b2496;
  *(undefined8 *)(lVar2 + -0x5e8) = *(undefined8 *)(lVar2 + -0x8b8);
  uVar22 = (ulonglong)DAT_18267096c;
  *(ulonglong *)(lVar2 + -0x8b8) = CONCAT44(uVar5,uVar29) ^ 0xba7c9d63d3a8147a;
  uVar26 = (ulonglong)DAT_182670ac8;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x86095781)) = uVar22 ^ *(ulonglong *)(lVar2 + -0x248);
  uVar22 = *(ulonglong *)(lVar2 + -0x5e8);
  *(undefined8 *)(lVar2 + -0x248) = 0xb678b4284779e1bc;
  *(ulonglong *)(lVar2 + -0xaa0) = uVar26 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x5e8) = CONCAT44(uVar5,uVar4) ^ 0x47deb4e64c4cb51a;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xd5feff84)) =
       (CONCAT44(uVar16,uVar18) ^ 0x4c90280b1a3f992) + uVar22;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar29) * 4) = uVar19;
  return;
}



############ FUN_ 180d26dc0 size=5208 ############

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

void FUN_180d26dc0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  uint uVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  byte bVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  byte local_res20;
  byte local_98;
  
  uVar16 = DAT_1826709d0;
  uVar17 = DAT_1826707dc;
  uVar15 = DAT_1826707c4;
  uVar25 = DAT_1826707bc;
  uVar11 = DAT_1826707a8;
  lVar9 = DAT_1826707a0;
  uVar42 = (ulonglong)DAT_1826707bc;
  uVar47 = (ulonglong)DAT_1826707dc;
  uVar43 = (ulonglong)DAT_1826707a8;
  uVar38 = (ulonglong)DAT_1826707c4;
  uVar36 = DAT_1826707dc + DAT_1826707bc;
  uVar29 = *(uint *)(&DAT_18260f758 + DAT_182670c4c) ^ DAT_1826707dc;
  uVar24 = DAT_1826707a8 + DAT_1826707c4;
  uVar8 = *(uint *)(&DAT_18260f750 + (uVar42 ^ 0xf93c09ec) + (longlong)DAT_182670c4c);
  uVar41 = (ulonglong)uVar24;
  uVar23 = CONCAT44(uVar24,DAT_1826707c4);
  uVar53 = (ulonglong)uVar36;
  uVar44 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  puVar7 = (ulonglong *)
           (*(longlong *)(DAT_1826707a0 - (uVar43 ^ 0xfeb09007)) +
           ((CONCAT44(uVar36,DAT_1826707a8) ^ 0xfd13e2a8feb09baf) +
           (uVar23 ^ 0x41b499164303fd67) * 0xc) * 8);
  uVar20 = CONCAT44(DAT_1826707bc,uVar36);
  DAT_1826707c0 = uVar24;
  DAT_1826707f0 = uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0xb78) = (ulonglong)puVar7 ^ uVar44;
  uVar12 = DAT_182670898;
  *(ulonglong *)(lVar9 + -0xa58) =
       *(longlong *)(lVar9 + -0x2d0) +
       ((CONCAT44(uVar24,uVar11) ^ 0x41b49916feb09baf) + (uVar20 ^ 0xf93c09fcfd13e2a8) * 0xc) * 8 ^
       CONCAT44(uVar16,uVar16);
  lVar10 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar30 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  puVar26 = (ulonglong *)(lVar9 - ((ulonglong)uVar15 ^ 0x4303fb57));
  *puVar26 = *puVar7 ^ uVar30 ^ uVar33;
  uVar48 = CONCAT44(uVar36,uVar24);
  *(ulonglong *)(CONCAT44(DAT_18267086c,DAT_18267086c) ^ *(ulonglong *)(lVar9 + -0xb08)) =
       CONCAT44(uVar15,uVar25) ^ 0x55c9c9f2e6e4a288;
  uVar12 = DAT_18267084c;
  uVar35 = CONCAT44(DAT_18267087c,DAT_18267087c);
  puVar7 = (ulonglong *)
           ((uVar44 ^ *(ulonglong *)(lVar10 + -0xb78)) +
           (CONCAT44(uVar17,uVar17) ^ 0x3d7d8ac03d7d8ad) * 8);
  *(ulonglong *)(lVar10 + -0x6e8) = (ulonglong)puVar7 ^ uVar35;
  lVar9 = DAT_1826707a0;
  *(ulonglong *)(lVar10 + -0xce0) =
       (uVar48 ^ 0xc5f3d6a47ad695bc) <<
       ((*(byte *)(lVar10 - (uVar43 ^ 0xfeb09ab7)) ^ (byte)uVar12) & 0x3f);
  uVar39 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *(ulonglong *)(lVar9 + -0x6b8) = *puVar7 ^ uVar39 ^ uVar30;
  uVar27 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(uVar27 ^ *(ulonglong *)(lVar9 + -0x240)) =
       CONCAT44(uVar11,uVar24) ^ 0x7fe63c8ae70303fb;
  uVar12 = DAT_182670984;
  *(ulonglong *)(lVar9 + -0xd38) =
       CONCAT44(uVar36,uVar36) ^ CONCAT44(uVar17,uVar15) ^ 0x786e9f9cf434b61e;
  uVar20 = CONCAT44(uVar12,uVar12);
  puVar50 = (ulonglong *)(lVar9 + -0x558);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar15 ^ 0x4303f66f)) =
       (*(ulonglong *)(lVar9 - (uVar47 ^ 0x3d7d3d4)) ^ uVar44) + 0x10 ^ uVar20;
  lVar9 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670864,DAT_182670864);
  *puVar50 = *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 + -0xb08) ^ uVar20) ^ uVar28 ^ uVar30;
  *(ulonglong *)(CONCAT44(DAT_1826709e8,DAT_1826709e8) ^ *(ulonglong *)(lVar9 + -0x518)) =
       uVar48 ^ 0xabe7fc8c51925b90;
  *(byte *)(lVar9 - ((ulonglong)uVar36 ^ 0xfd13e371)) =
       *(byte *)(*(ulonglong *)(lVar9 + -0x2b8) ^ (ulonglong)DAT_182670a8c) ^ (byte)DAT_182670a40;
  uVar16 = DAT_1826709d8;
  uVar51 = CONCAT44(DAT_18267095c,DAT_18267095c);
  puVar7 = (ulonglong *)
           ((uVar44 ^ *(ulonglong *)(lVar9 + -0xb78)) +
           (CONCAT44(uVar15,uVar24) ^ 0x4303fd6741b49915) * 8);
  *(ulonglong *)(lVar9 + -0x240) = (ulonglong)puVar7 ^ uVar51;
  uVar12 = DAT_182670880;
  lVar10 = DAT_1826707a0;
  uVar44 = CONCAT44(uVar16,uVar16);
  puVar45 = (ulonglong *)(lVar9 + -0xbb0);
  *(ulonglong *)(lVar9 + -0xd88) = *puVar7 ^ uVar44 ^ uVar30;
  *(ulonglong *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar9 + -0xd00)) =
       CONCAT44(uVar36,uVar17) ^ 0x292d9e4bd229bfe0;
  uVar20 = CONCAT44(DAT_182670998,DAT_182670998);
  *puVar45 = (CONCAT44(uVar25,uVar17) ^ 0xe2adafc02532104d) +
             (uVar39 ^ *(ulonglong *)(lVar9 + -0x6b8)) ^ uVar20;
  uVar37 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar10 - (uVar41 ^ 0x41b49d06)) =
       (*(ulonglong *)(lVar9 - (uVar42 ^ 0xf93c0fcc)) ^ uVar33) +
       (CONCAT44(uVar15,uVar17) ^ 0xf9219d76702cf30e) ^ uVar37;
  uVar12 = DAT_18267090c;
  puVar7 = (ulonglong *)(lVar10 + -0x2b0);
  uVar20 = uVar20 ^ *puVar45;
  *puVar7 = (CONCAT44(uVar11,uVar15) ^ 0x445fba3bd6cc8840) -
            (CONCAT44(uVar25,uVar11) ^ 0xe4f977844efef7f7);
  puVar1 = (ulonglong *)(lVar10 + -0xf0);
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar46 = (*(ulonglong *)(lVar10 - (uVar43 ^ 0xfeb09fbf)) ^ uVar37) + uVar20 ^ uVar32;
  *puVar1 = uVar46;
  local_res20 = (byte)uVar25;
  uVar33 = uVar20 << ((local_res20 ^ 0xf2) & 0x3f);
  puVar2 = (ulonglong *)(lVar10 + -0x610);
  *puVar2 = uVar33 ^ CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar20 = uVar20 >> (((byte)uVar17 ^ 0x9e) & 0x3f);
  puVar3 = (ulonglong *)(lVar10 + -0x118);
  *(ulonglong *)(lVar10 + -0x9e0) = uVar20 ^ CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *puVar3 = (uVar48 ^ 0xe0db1c79bc3c6058) + 0x818913386656c5eb;
  uVar12 = DAT_1826708f0;
  lVar9 = DAT_1826707a0;
  uVar49 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar10 + -0xce0) = (uVar20 | uVar33) ^ uVar49;
  uVar39 = CONCAT44(uVar12,uVar12);
  puVar52 = (ulonglong *)(lVar9 - (uVar41 ^ 0x41b495f6));
  *(ulonglong *)(lVar9 - (uVar53 ^ 0xfd13ee50)) = *puVar52 ^ uVar39 ^ uVar49 ^ uVar32 ^ uVar46;
  uVar40 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  puVar34 = (ulonglong *)(lVar9 - (uVar38 ^ 0x4303f05f));
  puVar4 = (ulonglong *)(lVar9 + -0xcf8);
  *puVar34 = (CONCAT44(uVar11,uVar36) ^ 0xc1af4d51f4bd7e8a) +
             (*(ulonglong *)(lVar9 + -0xd88) ^ uVar44) ^ uVar40;
  puVar5 = (ulonglong *)(lVar9 + -0x660);
  *puVar5 = (*puVar4 ^ uVar39) << 0x12;
  lVar9 = DAT_1826707a0;
  uVar48 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar20 = (CONCAT44(uVar24,uVar36) ^ 0x1f5970fa2d70d84c) + (uVar28 ^ *puVar50);
  puVar6 = (ulonglong *)(DAT_1826707a0 + -0x3b0);
  *puVar6 = uVar20 ^ uVar48;
  lVar10 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670a08,DAT_182670a08);
  puVar31 = (ulonglong *)(lVar9 - (uVar42 ^ 0xf93c0f44));
  *puVar31 = uVar20 + (uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) ^ uVar33;
  *(ulonglong *)(lVar10 + -0x630) = *(ulonglong *)(lVar10 + -0xce0) ^ uVar49 ^ 0x5184b31b7104fbca;
  lVar9 = DAT_1826707a0;
  uVar49 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar46 = CONCAT44(DAT_182670950,DAT_182670950);
  *puVar7 = (uVar33 ^ *(ulonglong *)(lVar10 + -0x6b8)) +
            (CONCAT44(uVar15,uVar17) ^ 0xca0b2236005a4b38) ^ uVar49;
  uVar13 = DAT_1826707b4;
  uVar20 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar9 + -0x410) =
       (uVar40 ^ *(ulonglong *)(lVar10 + -0xd38)) << (((byte)uVar17 ^ 0xbc) & 0x3f) ^ uVar46;
  local_98 = (byte)uVar11;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0x5597a7c0)) =
       (*(ulonglong *)(lVar9 - (uVar20 ^ 0x12d902b0)) ^ uVar40) >> ((local_98 ^ 0x9f) & 0x3f) ^
       uVar32;
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x4303fc7f)) =
       (uVar32 ^ *puVar45) + (uVar23 ^ 0xed556f1e61cac0b8);
  uVar12 = DAT_182670ad0;
  uVar18 = DAT_18267096c;
  uVar33 = CONCAT44(DAT_182670918,DAT_182670918);
  uVar23 = (*(ulonglong *)(DAT_1826707a0 + -0x410) ^ uVar46 | uVar32 ^ *puVar45) ^ uVar33;
  *puVar2 = uVar23;
  uVar46 = CONCAT44(uVar12,uVar12);
  uVar40 = CONCAT44(uVar18,uVar18);
  uVar20 = *puVar1;
  uVar23 = *puVar7 ^ uVar40 ^ uVar23 ^ uVar33 ^ uVar49;
  puVar21 = (ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xf93c0474));
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar23;
  uVar14 = DAT_1826707b8;
  *puVar21 = (uVar23 ^ uVar40) + (uVar32 ^ uVar20) ^ uVar46;
  *puVar5 = CONCAT44(uVar36,uVar25) ^ CONCAT44(uVar15,uVar15) ^ 0x272c5279efe2fe9d;
  lVar9 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar53 ^ 0xfd13e7f0)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xf93c001c)) ^ uVar40) <<
       (((byte)uVar15 ^ 0x53) & 0x3f) ^ uVar33;
  uVar12 = DAT_1826707d0;
  *puVar6 = *(ulonglong *)(uVar51 ^ *(ulonglong *)(lVar9 + -0x240)) ^ uVar30;
  lVar9 = DAT_1826707a0;
  uVar20 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       ((ulonglong)uVar18 << 0x14 | (ulonglong)(uVar18 >> 0xc)) ^
       *(ulonglong *)(DAT_1826707a0 + -0x9e0) >> 0xc ^ uVar20;
  *(ulonglong *)(lVar9 + -0x630) = CONCAT44(uVar12,uVar24) ^ 0x602cbd824cb7e386;
  *(ulonglong *)(lVar9 + -0x6b8) = (uVar33 ^ *puVar50 | *puVar52 ^ uVar20) ^ uVar30;
  *puVar34 = *puVar31 ^ *(ulonglong *)(lVar9 + -0xd88) ^ uVar46 ^ uVar35 ^ uVar30;
  lVar9 = DAT_1826707a0;
  uVar39 = *puVar4 ^ uVar39;
  uVar32 = CONCAT44(DAT_182670944,DAT_182670944);
  uVar30 = (*puVar7 ^ uVar49) + uVar39 ^ uVar32;
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0x9e0);
  *puVar3 = uVar30;
  bVar22 = (byte)DAT_1826707e0;
  *(ulonglong *)(lVar9 + -0x410) = CONCAT44(uVar11,uVar14) ^ 0xd518c2474d537142 | uVar40 ^ uVar20;
  uVar20 = uVar39 << ((bVar22 ^ 0xa1) & 0x3f);
  *puVar45 = uVar20 ^ CONCAT44(DAT_182670a74,DAT_182670a74);
  uVar14 = DAT_1826707e4;
  bVar22 = (byte)uVar12;
  uVar39 = uVar39 >> ((bVar22 ^ 0xf9) & 0x3f);
  *puVar2 = uVar39 ^ CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar25 = DAT_1826707bc ^ 0xbed90b2c;
  uVar33 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  uVar23 = (uVar39 | uVar20) ^ uVar33;
  *puVar1 = uVar23;
  *(uint *)(lVar9 + -0x2d4) = *(int *)(lVar9 - ((ulonglong)uVar14 ^ 0x727d2d29)) * uVar25;
  uVar20 = CONCAT44(DAT_182670968,DAT_182670968);
  *(ulonglong *)(lVar9 - (uVar47 ^ 0x3d7decc)) = uVar23 ^ uVar20 ^ uVar33 ^ uVar30 ^ uVar32;
  uVar20 = uVar20 ^ *puVar5;
  uVar33 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *puVar6 = (*(ulonglong *)(lVar9 + -0xd88) ^ uVar46) + uVar20 ^ uVar33;
  uVar16 = DAT_182670b0c;
  *(ulonglong *)(lVar9 + -0x630) = uVar20 << 0x17 ^ CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar12 = DAT_1826707ac;
  lVar9 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar16,uVar16);
  uVar39 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar20 >> (((byte)uVar13 ^ 0x59) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar9 - (uVar47 ^ 0x3d7ddf4)) =
       (*(ulonglong *)(lVar9 - ((ulonglong)uVar14 ^ 0x727d221d)) ^ uVar23 | uVar20 << 0x17) ^ uVar39
  ;
  uVar30 = CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar35 = *(ulonglong *)(lVar9 + -0xd38) ^ uVar35;
  *(ulonglong *)(lVar9 + -0x6b8) = *puVar6 ^ uVar30 ^ uVar39 ^ uVar33 ^ *puVar50;
  *puVar7 = 0xef8e2bfea8e1ea3f;
  uVar39 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar46 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar9 + -0x9e0) = (uVar32 ^ *puVar3) + uVar35 ^ uVar39;
  *(ulonglong *)(lVar9 - (uVar53 ^ 0xfd13e6b8)) = uVar35 << 0x28 ^ uVar46;
  uVar32 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *puVar4 = ((ulonglong)(DAT_18267087c >> 0x18) | (ulonglong)DAT_18267087c << 8) ^
            *(ulonglong *)(lVar9 + -0xd38) >> 0x18 ^ uVar32;
  uVar20 = *(ulonglong *)(lVar9 - (uVar38 ^ 0x4303f19f));
  uVar23 = *(ulonglong *)(lVar9 + -0x410);
  *puVar2 = 0;
  uVar13 = DAT_1826709dc;
  uVar20 = (uVar20 ^ uVar32 | uVar23 ^ uVar46) ^ uVar49;
  uVar46 = (ulonglong)DAT_1826709dc;
  *puVar45 = uVar20;
  uVar51 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar9 - (uVar38 ^ 0x4303fd97)) =
       uVar51 ^ uVar39 ^ uVar49 ^ *(ulonglong *)(lVar9 + -0x9e0) ^ uVar20;
  uVar14 = DAT_1826707d4;
  uVar13 = DAT_1826707c8;
  uVar23 = (ulonglong)DAT_1826707d8;
  uVar40 = (*(ulonglong *)(lVar9 - (uVar53 ^ 0xfd13e258)) ^ uVar51) + (*puVar6 ^ uVar33) ^ uVar32;
  uVar49 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar9 + -0xd88) = uVar40;
  uVar20 = *puVar1;
  uVar35 = (uVar51 ^ uVar20) << ((bVar22 ^ 0xfb) & 0x3f);
  uVar38 = (ulonglong)DAT_1826707f4;
  *puVar5 = uVar35 ^ CONCAT44(DAT_182670a54,DAT_182670a54);
  *(uint *)(lVar9 + -0x598) =
       (uVar14 ^ 0x662d9a39) >> ((byte)*(undefined4 *)(lVar9 - (uVar23 ^ 0x3534c618)) & 0x1f);
  *(ulonglong *)(lVar9 + -0x630) = (uVar20 >> 0x20 ^ uVar46) >> 0x1b ^ uVar27;
  *(ulonglong *)(lVar9 + -0xce0) = CONCAT44(uVar13,uVar24) ^ 0x898080e0002210 | 0xa750736f1d47dded;
  uVar33 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *puVar50 = (*(ulonglong *)(lVar9 - (uVar38 ^ 0xfffc28cf)) ^ uVar27 | uVar35) ^ uVar33;
  lVar9 = DAT_1826707a0;
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0x9e0);
  uVar46 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *puVar7 = *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x41b49c4e)) ^ uVar40 ^ uVar46 ^ uVar33 ^
            uVar32;
  uVar16 = DAT_1826707d0;
  uVar35 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  *(ulonglong *)(lVar9 - (uVar41 ^ 0x41b4980e)) = (uVar30 ^ uVar23) + (uVar39 ^ uVar20) ^ uVar35;
  bVar22 = (byte)DAT_1826707cc;
  *(ulonglong *)(lVar9 + -0xd38) =
       CONCAT44(uVar12,uVar16) ^ CONCAT44(uVar12,DAT_1826707cc) ^ 0xd210561d5842b6b8;
  uVar41 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *puVar4 = (uVar30 ^ *(ulonglong *)(lVar9 + -0x6b8)) << 0x25 ^ uVar41;
  *(ulonglong *)(lVar9 + -0x410) =
       *(ulonglong *)(lVar9 - (uVar42 ^ 0xf93c04c4)) | CONCAT44(uVar17,uVar24) ^ 0xb866075606f99de3;
  uVar20 = CONCAT44(DAT_182670848,DAT_182670848);
  *puVar2 = (*(ulonglong *)(lVar9 - (uVar38 ^ 0xfffc2847)) ^ uVar30) >> ((bVar22 ^ 0x93) & 0x3f) ^
            uVar20;
  uVar25 = DAT_1826707e8;
  lVar9 = DAT_1826707a0;
  uVar39 = (ulonglong)DAT_1826707b8;
  uVar23 = (ulonglong)DAT_1826707e8;
  bVar22 = (byte)DAT_1826707b8;
  *(longlong *)(DAT_1826707a0 - (uVar47 ^ 0x3d7d31c)) =
       0x5ba006dd247570ec << ((bVar22 ^ 0xf3) & 0x3f);
  uVar20 = (*(ulonglong *)(lVar9 - (uVar43 ^ 0xfeb09757)) ^ uVar41 | uVar20 ^ *puVar2) ^ uVar37;
  *puVar6 = uVar20;
  uVar42 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar37 = uVar42 ^ uVar20 ^ uVar35 ^ *puVar3 ^ uVar37;
  *(ulonglong *)(lVar9 + -0xce0) = uVar37;
  uVar16 = DAT_182670874;
  uVar12 = DAT_1826707b0;
  *puVar5 = (*(ulonglong *)(lVar9 - (uVar23 ^ 0x727d2e0d)) ^ uVar51) << ((bVar22 ^ 0xe9) & 0x3f);
  uVar19 = DAT_182670ad8;
  lVar10 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar16,uVar16);
  uVar23 = (CONCAT44(uVar11,uVar13) ^ 0x19465292b6fc200e) + (uVar42 ^ uVar37);
  *(ulonglong *)(lVar9 + -0x630) = uVar23 ^ uVar30;
  uVar42 = CONCAT44(uVar19,uVar19);
  uVar20 = (CONCAT44(uVar12,uVar25) ^ 0x190f0a5a095d5830) +
           (*(ulonglong *)(lVar10 + -0xd88) ^ uVar32);
  *puVar50 = uVar20 ^ uVar42;
  uVar11 = DAT_1826707e0;
  uVar33 = CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar27 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar10 + -0x9e0) = (uVar30 ^ *puVar26) + uVar20 ^ uVar33;
  lVar9 = DAT_1826707a0;
  uVar41 = CONCAT44(uVar25,DAT_1826707ec);
  *(ulonglong *)(lVar10 - (uVar39 ^ 0xf8816c9)) = uVar23 * 0x2000000 ^ uVar28;
  uVar23 = (uVar30 ^ *(ulonglong *)(lVar9 + -0x630)) >> (((byte)uVar11 ^ 0xbf) & 0x3f);
  uVar20 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar9 + -0xd38) = uVar23 ^ CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar11 = DAT_1826707e4;
  *(ulonglong *)(lVar9 + -0x6b8) = (*(ulonglong *)(lVar9 + -0x410) ^ uVar28 | uVar23) ^ uVar20;
  *puVar45 = *(ulonglong *)(lVar9 - (uVar27 ^ 0xbcfc0420)) ^
             *(ulonglong *)(lVar9 - (uVar49 ^ 0x650ce796)) ^ uVar20 ^ uVar33 ^ uVar44;
  uVar20 = (uVar41 ^ 0x178882e6c4153214) + (uVar46 ^ *puVar7);
  *puVar4 = uVar20 ^ CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *puVar2 = (CONCAT44(uVar11,uVar14) ^ 0x4dafff5d7b7221aa) + (uVar42 ^ *puVar50);
  uVar23 = (CONCAT44(uVar36,uVar11) ^ 0xc6a7db8ec38a735f) + (uVar35 ^ *puVar3);
  *puVar6 = uVar23 ^ CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *puVar1 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8) ^ uVar23 + uVar20;
  *puVar5 = uVar20 << ((local_98 ^ 0x8e) & 0x3f) ^ uVar48;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar8 ^ uVar36) * 4) = uVar29;
  return;
}



############ FUN_ 180d231f0 size=5606 ############

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

void FUN_180d231f0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  undefined4 uVar19;
  byte bVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte *pbVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  byte bVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  byte bVar52;
  ulonglong uVar53;
  byte local_res20;
  byte local_118;
  byte local_f0;
  
  uVar16 = DAT_18267098c;
  uVar14 = DAT_1826707f0;
  uVar13 = DAT_1826707ec;
  uVar11 = DAT_1826707dc;
  uVar10 = DAT_1826707d8;
  uVar7 = DAT_1826707cc;
  uVar6 = DAT_1826707c4;
  uVar5 = DAT_1826707bc;
  uVar4 = DAT_1826707b8;
  uVar3 = DAT_1826707b0;
  uVar50 = (ulonglong)DAT_1826707ec;
  DAT_1826707d0 = DAT_1826707ec - DAT_1826707b8;
  uVar53 = (ulonglong)DAT_1826707f0;
  uVar45 = (ulonglong)DAT_1826707dc;
  uVar33 = (ulonglong)DAT_1826707c4;
  uVar26 = (ulonglong)DAT_1826707cc;
  uVar48 = *(uint *)(&DAT_18260f758 + DAT_182670c40) ^ DAT_1826707d0;
  uVar47 = (ulonglong)DAT_1826707d8;
  uVar29 = (ulonglong)DAT_1826707b0;
  uVar31 = DAT_1826707f4 | DAT_1826707d8;
  uVar32 = DAT_1826707c4 + DAT_1826707cc;
  uVar30 = DAT_1826707f0 & DAT_1826707b0;
  uVar35 = DAT_1826707dc - DAT_1826707bc;
  uVar21 = *(uint *)(&DAT_18260f760 + DAT_182670c40) ^ DAT_1826707ec;
  uVar39 = CONCAT44(DAT_1826707b8,DAT_1826707c4);
  puVar24 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 + -0xb00) +
            ((CONCAT44(DAT_1826707cc,uVar32) ^ 0xc1e943dea0262d9f) +
            (uVar39 ^ 0x816bc01de3ce9c1) * 4) * 8);
  DAT_1826707ac = uVar32;
  DAT_1826707b4 = uVar31;
  DAT_1826707c0 = uVar35;
  DAT_1826707c8 = uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0x7b8) =
       (ulonglong)puVar24 ^ CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar18 = DAT_182670868;
  lVar1 = DAT_1826707a0;
  uVar42 = (ulonglong)DAT_182670868;
  uVar40 = CONCAT44(uVar16,uVar16);
  uVar23 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar46 = (ulonglong)uVar5;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = *puVar24 ^ uVar23 ^ uVar40;
  *(ulonglong *)(lVar1 + -0x420) =
       *(longlong *)(lVar1 + -0x7d8) - (CONCAT44(uVar35,uVar5) ^ 0xf744a67854e65a0d);
  uVar15 = DAT_1826707f4;
  uVar12 = DAT_1826707e8;
  uVar9 = DAT_1826707d4;
  lVar1 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707d4;
  uVar37 = (ulonglong)DAT_1826707e8;
  uVar22 = DAT_1826707d4 & DAT_1826707e8;
  local_res20 = (byte)DAT_1826707d4;
  uVar49 = (ulonglong)DAT_1826707f4;
  uVar40 = (*(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0xabab2f92)) ^ uVar40) >>
           ((local_res20 ^ 0x2a) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  bVar34 = (byte)uVar18 ^ (byte)DAT_182670974;
  uVar36 = (ulonglong)DAT_1826708b0;
  DAT_1826707e0 = uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x68) = uVar40;
  *(byte *)(lVar1 + -0xc91) = bVar34 ^ (byte)uVar40;
  lVar1 = DAT_1826707a0;
  uVar43 = (ulonglong)uVar30;
  *(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x382d0972)) =
       (CONCAT44(uVar11,uVar12) ^ 0x5c2c6840abab221a) * 0x20 +
       (CONCAT44(uVar31,uVar12) ^ 0xefcdff3eabab221f) + *(longlong *)(DAT_1826707a0 + -0x30) ^
       uVar36;
  *(byte *)(*(ulonglong *)(lVar1 + -0x170) ^ uVar36) =
       *(byte *)(lVar1 - ((ulonglong)uVar3 ^ 0x3aed8097)) ^ (byte)DAT_182670adc ^
       (byte)DAT_182670974;
  uVar40 = CONCAT44(DAT_182670878,DAT_182670878);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar15 ^ 0x68ce7da)) =
       *(longlong *)(lVar1 - ((ulonglong)uVar14 ^ 0x7c2d7342)) +
       ((CONCAT44(uVar22,uVar13) ^ 0x800000213d5d7e0) +
       (CONCAT44(uVar11,uVar10) ^ 0x5c2c6840e9c1de3c) * 4) * 8 ^ uVar40;
  uVar16 = DAT_182670a30;
  uVar8 = DAT_1826707d0;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0x5c0) =
       CONCAT44(DAT_1826707d0,uVar35) ^ *(ulonglong *)(lVar1 + -0x7d8) ^ 0x36da9704433f67e;
  uVar44 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar30 ^ 0x382d03b2)) =
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0xae0) ^ uVar40) ^ uVar44 ^ uVar23;
  bVar34 = (byte)uVar16 ^ (byte)DAT_182670a88;
  uVar40 = (uVar44 ^ *(ulonglong *)(lVar2 + -0xbb0)) >> (((byte)uVar5 ^ 0xc) & 0x3f) ^
           CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0x9c8) = uVar40;
  lVar1 = DAT_1826707a0;
  uVar51 = (ulonglong)DAT_1826709e4;
  *(byte *)(lVar2 - (uVar27 ^ 0x8448673)) = bVar34 ^ (byte)uVar40;
  bVar34 = *(byte *)(lVar1 + -0xa71) ^ (byte)DAT_182670a88 ^ (byte)DAT_182670adc;
  *(ulonglong *)(lVar1 + -0xa28) =
       (CONCAT44(uVar14,uVar15) ^ 0x7c2d7842068ced3a) * 0x20 +
       (CONCAT44(uVar4,uVar35) ^ 0x816bc018faf4102) + *(longlong *)(lVar1 + -0x30) ^ uVar51;
  uVar40 = CONCAT44(DAT_182670834,DAT_182670834);
  *(byte *)(*(ulonglong *)(lVar1 - (uVar33 ^ 0xde3ce3e9)) ^ uVar51) = bVar34;
  bVar34 = (byte)DAT_1826707f8;
  *(ulonglong *)(lVar1 - (uVar26 ^ 0xc1e94836)) = uVar40 ^ *(ulonglong *)(lVar1 + -0xb00);
  uVar36 = CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar41 = CONCAT44(DAT_182670900,DAT_182670900);
  bVar20 = (byte)DAT_182670900;
  *(ulonglong *)(lVar1 + -0x998) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar46 ^ 0xcc7d2cd4)) ^ uVar40) ^ uVar36 ^ uVar23;
  *(undefined8 *)(CONCAT44(DAT_1826709ac,DAT_1826709ac) ^ *(ulonglong *)(lVar1 + -0x5c8)) =
       0x3d7ffd4cea4d5af;
  lVar2 = DAT_1826707a0;
  bVar52 = (byte)uVar6;
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (uVar36 ^ *(ulonglong *)(lVar1 + -0x998)) >> ((bVar52 ^ 0xf9) & 0x3f) ^ uVar41;
  *(ulonglong *)(lVar2 + -0x438) = uVar44 ^ *puVar24 | 0x99bab95b3a2eef36;
  *(byte *)(lVar2 + -0x2e9) = *(byte *)(lVar2 - (uVar27 ^ 0x8448aba)) ^ bVar20 ^ bVar34;
  uVar40 = (ulonglong)DAT_182670a68;
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0xc1e94566)) ^ uVar41) -
       (CONCAT44(uVar32,uVar14) ^ 0xbe687fcd439a70ce);
  *(ulonglong *)(lVar2 + -0x600) =
       (CONCAT44(uVar32,uVar3) ^ 0xa0262d9f3aed8c01) + *(longlong *)(lVar2 + -0x30) ^ uVar40;
  uVar16 = DAT_1826708cc;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar45 ^ 0x5c2c6e40)) ^ uVar40) =
       *(byte *)(lVar2 - (uVar37 ^ 0xabab20f3)) ^ (byte)DAT_182670adc ^ bVar34;
  *(ulonglong *)(lVar2 + -0xce0) = CONCAT44(uVar30,uVar13) ^ 0xf26c0b32b0f38bdd;
  uVar25 = DAT_1826707d0;
  uVar36 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(lVar2 - (uVar49 ^ 0x68cee4a)) =
       *(longlong *)(lVar2 + -0xb00) +
       ((CONCAT44(uVar14,uVar31) ^ 0x7c2d7842efcdff3f) +
       (CONCAT44(uVar10,DAT_1826707d0) ^ 0xe9c1de3c0bbf1bdf) * 4) * 8 ^ uVar36;
  uVar40 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x800011a)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x370) ^ uVar36) ^ uVar23 ^ uVar40;
  lVar1 = DAT_1826707a0;
  uVar40 = (*(ulonglong *)(DAT_1826707a0 + -0x118) ^ uVar40) >> ((bVar52 ^ 0xc1) & 0x3f) ^
           CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar40;
  uVar41 = (ulonglong)DAT_182670998;
  *(byte *)(lVar1 + -0x549) = (byte)uVar16 ^ (byte)uVar40 ^ bVar34;
  *(ulonglong *)(lVar1 - (uVar27 ^ 0x8448d4a)) =
       (CONCAT44(uVar8,uVar10) ^ 0xbbf1bdfe9c1de34) +
       (CONCAT44(uVar35,uVar5) ^ 0x8faf4104cc7d273c) * 0x20 + *(longlong *)(lVar1 + -0x30) ^ uVar41;
  *(byte *)(*(ulonglong *)(lVar1 + -0x148) ^ uVar41) =
       *(byte *)(lVar1 - (uVar45 ^ 0x5c2c6d09)) ^ (byte)DAT_182670adc ^ bVar34;
  *(ulonglong *)(lVar1 - (uVar37 ^ 0xabab261a)) =
       (uVar42 << 0x12 | (ulonglong)(uVar18 >> 0xe)) ^
       *(ulonglong *)(lVar1 - (uVar26 ^ 0xc1e943b6)) >> 0xe;
  uVar16 = _DAT_182670b10;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb00) +
            ((CONCAT44(uVar10,uVar3) ^ 0xe9c1de3c3aed8c07) +
            (CONCAT44(uVar35,uVar31) ^ 0x8faf4104efcdff3e) * 4) * 8);
  *(ulonglong *)(lVar1 + -0x6e8) = (ulonglong)puVar24 ^ CONCAT44(DAT_182670950,DAT_182670950);
  uVar42 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 + -0xac0) = *puVar24 ^ uVar23 ^ uVar42;
  uVar16 = DAT_182670940;
  lVar2 = DAT_1826707a0;
  uVar40 = (ulonglong)DAT_182670928;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707d0 ^ 0xbbf16e7)) =
       CONCAT44(DAT_18267084c,DAT_18267084c) ^ *(ulonglong *)(lVar1 + -0x890) |
       uVar39 ^ 0xfc31c6f8c44f078;
  uVar19 = DAT_1826708b8;
  *(ulonglong *)(lVar2 + -0x558) =
       (*(ulonglong *)(lVar2 + -0xac0) ^ uVar42) >> (((byte)uVar22 ^ 10) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  *(byte *)(lVar2 - (uVar43 ^ 0x382d00db)) =
       (byte)uVar16 ^ *(byte *)(lVar2 + -0x558) ^ (byte)DAT_182670a6c;
  *(ulonglong *)(lVar2 - (uVar50 ^ 0x13d5de40)) =
       (CONCAT44(uVar11,uVar9) ^ 0x5c2c684008448c0b) + *(longlong *)(lVar2 + -0x30) ^ uVar40;
  *(byte *)(*(ulonglong *)(lVar2 + -0x9a0) ^ uVar40) =
       *(byte *)(lVar2 + -0x8d9) ^ (byte)DAT_182670adc ^ (byte)DAT_182670a6c;
  *(uint *)(lVar2 + -0x540) = *(uint *)(lVar2 + -0x398) | 0x26014952;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb00) + 8 + (CONCAT44(uVar15,uVar7) ^ 0x68ced3ac1e943de) * 0x20
            );
  uVar42 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar2 + -0x180) = (ulonglong)puVar24 ^ CONCAT44(DAT_182670884,DAT_182670884);
  uVar40 = *puVar24 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x220) = uVar40 ^ uVar42;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       uVar40 >> (((byte)uVar25 ^ 0xcf) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  *(byte *)(lVar1 - (uVar46 ^ 0xcc7d2a3d)) =
       (byte)uVar19 ^ *(byte *)(lVar1 + -0xc18) ^ (byte)DAT_182670ac0;
  *(ulonglong *)(lVar1 - (uVar53 ^ 0x7c2d748a)) =
       *(longlong *)(lVar1 - (uVar33 ^ 0xde3ce9f1)) + 10 +
       (CONCAT44(uVar13,uVar35) ^ 0x13d5d7e08faf4104) * 0x20 ^ uVar51;
  *(longlong *)(lVar1 + -0x588) =
       -0x4b76c5a17d2b4717 << ((byte)*(undefined8 *)(lVar1 + -0x610) & 0x3f);
  uVar40 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar32 ^ 0xa0262157)) ^ uVar51) =
       *(byte *)(lVar1 - (uVar43 ^ 0x382d0503)) ^ (byte)DAT_182670adc ^ (byte)DAT_182670ac0;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb00) + 8 +
            (CONCAT44(uVar10,uVar11) ^ 0xe9c1de3c5c2c6840) * 0x20);
  uVar43 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar1 + -0xb78) = (ulonglong)puVar24 ^ uVar40;
  uVar40 = *puVar24 ^ uVar23;
  *(ulonglong *)(lVar1 + -0x6f0) = uVar40 ^ uVar43;
  lVar1 = DAT_1826707a0;
  uVar25 = DAT_1826707b8 ^ 0x9608579c;
  bVar34 = (byte)DAT_182670a10;
  uVar43 = (ulonglong)DAT_182670898;
  *(ulonglong *)(DAT_1826707a0 - (uVar53 ^ 0x7c2d7c8a)) =
       uVar40 >> (((byte)uVar22 ^ 0x1a) & 0x3f) ^ CONCAT44(DAT_182670a10,DAT_182670a10);
  *(byte *)(lVar1 + -0xa72) = bVar34 ^ *(byte *)(lVar1 + -0x4c8) ^ DAT_1826708c8;
  *(ulonglong *)(lVar1 + -0xf0) = (uVar42 ^ *(ulonglong *)(lVar1 + -0x220)) + 0x5392922261980fe1;
  *(uint *)(lVar1 - ((ulonglong)uVar31 ^ 0xefcdf50a)) =
       uVar25 >> ((byte)*(undefined4 *)(lVar1 + -0xc0c) & 0x1f);
  bVar34 = (byte)DAT_182670adc;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707d0 ^ 0xbbf19e7)) =
       (CONCAT44(uVar5,uVar7) ^ 0xcc7d273cc1e943de) * 0x20 +
       (CONCAT44(uVar12,uVar3) ^ 0xabab221a3aed8c0d) + *(longlong *)(lVar1 + -0x30) ^ uVar43;
  *(byte *)(*(ulonglong *)(lVar1 + -0x238) ^ uVar43) =
       bVar34 ^ *(byte *)(lVar1 + -0xa72) ^ DAT_1826708c8;
  uVar17 = DAT_18267090c;
  uVar16 = DAT_1826708a4;
  uVar40 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(lVar1 + -0x798) =
       *(longlong *)(lVar1 - (uVar37 ^ 0xabab291a)) +
       ((CONCAT44(uVar4,uVar32) ^ 0x816bc01a0262d9e) +
       (CONCAT44(uVar30,uVar6) ^ 0x382d0802de3ce9c1) * 4) * 8 ^ uVar40;
  uVar42 = CONCAT44(uVar16,uVar16);
  uVar43 = (ulonglong)DAT_1826709d8;
  local_f0 = (byte)uVar13;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x3aed8a5e)) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar49 ^ 0x68ceaa2)) ^ uVar40) ^ uVar23 ^ uVar42;
  bVar34 = (byte)DAT_1826709ec;
  local_118 = (byte)uVar3;
  *(longlong *)(lVar1 - (uVar27 ^ 0x8448822)) =
       *(longlong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x816bcf1)) << ((local_f0 ^ 0xfb) & 0x3f);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x816b189)) =
       (*(ulonglong *)(lVar1 + -0x658) ^ uVar42) >> ((local_118 ^ 0x26) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  *(byte *)(lVar1 + -0x3b1) =
       *(byte *)(lVar1 - ((ulonglong)uVar35 ^ 0x8faf4c8c)) ^ (byte)uVar17 ^ bVar34;
  *(ulonglong *)(lVar1 + -0x7d8) = 0xc908176843e694c2 >> ((bVar52 ^ 0xdc) & 0x3f);
  uVar16 = DAT_182670a00;
  *(ulonglong *)(lVar1 + -0xd28) = *(longlong *)(lVar1 - (uVar47 ^ 0xe9c1de0c)) + 0xcU ^ uVar43;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707d0 ^ 0xbbf1e1f)) =
       (CONCAT44(uVar7,uVar5) ^ 0xbc934549a55987e7) >>
       ((*(byte *)(lVar1 + -0xd88) ^ (byte)uVar17) & 0x3f);
  uVar40 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(byte *)(*(ulonglong *)(lVar1 + -0xd28) ^ uVar43) =
       *(byte *)(lVar1 - ((ulonglong)uVar35 ^ 0x8faf42b5)) ^ (byte)DAT_182670adc ^ bVar34;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb00) +
            ((CONCAT44(uVar6,uVar30) ^ 0xde3ce9c1382d0803) +
            (CONCAT44(uVar22,uVar11) ^ 0x80000025c2c6840) * 4) * 8);
  uVar43 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(lVar1 + -0x1e8) = (ulonglong)puVar24 ^ uVar40;
  uVar40 = *puVar24 ^ uVar23;
  *(ulonglong *)(lVar1 + -0x9c8) = uVar40 ^ uVar43;
  uVar43 = uVar40 >> (((byte)uVar14 ^ 0x6a) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 + -0x1b8) = uVar43;
  uVar40 = (ulonglong)DAT_1826709dc;
  bVar38 = (byte)uVar16 ^ (byte)uVar43 ^ (byte)DAT_182670994;
  *(byte *)(lVar1 + -1) = bVar38;
  *(ulonglong *)(lVar1 + -0x998) =
       (CONCAT44(uVar31,uVar15) ^ 0x441adcbbcfefdaca) - (CONCAT44(uVar7,uVar3) ^ 0x663c694637ee78a);
  lVar2 = DAT_1826707a0;
  bVar20 = (byte)DAT_182670adc ^ (byte)DAT_182670994;
  pbVar28 = (byte *)(*(longlong *)(lVar1 + -0x30) + 0xd +
                    (CONCAT44(uVar11,uVar32) ^ 0x5c2c6840a0262d9f) * 0x20);
  *(ulonglong *)(lVar1 + -0x9e8) = (ulonglong)pbVar28 ^ uVar40;
  *pbVar28 = bVar20 ^ bVar38;
  uVar17 = DAT_18267085c;
  uVar40 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar2 + -0x4e0) =
       *(longlong *)(lVar2 - (uVar45 ^ 0x5c2c6340)) +
       ((CONCAT44(uVar11,uVar35) ^ 0x5c2c68408faf4105) +
       (CONCAT44(uVar22,uVar31) ^ 0x8000002efcdff3e) * 4) * 8 ^ uVar40;
  *(ulonglong *)(lVar2 + -0x438) = CONCAT44(uVar14,uVar13) ^ 0xc7c2ce049bcef6d9;
  uVar16 = DAT_182670838;
  uVar45 = CONCAT44(uVar17,uVar17);
  uVar37 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar37 ^ 0xabab26fa)) ^ uVar40) ^ uVar23;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar37 ^ uVar45;
  lVar1 = DAT_1826707a0;
  uVar37 = uVar37 >> (((byte)uVar7 ^ 0xee) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  *(byte *)(DAT_1826707a0 + -0x9f9) = (byte)uVar16 ^ (byte)DAT_182670ae8 ^ (byte)uVar37;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar37;
  uVar37 = (ulonglong)DAT_182670b08;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x84480e2)) =
       (*(ulonglong *)(lVar2 + -0xc18) ^ CONCAT44(uVar19,uVar19)) -
       (CONCAT44(uVar10,uVar7) ^ 0xecbdb046ef8ede1f);
  pbVar28 = (byte *)((CONCAT44(uVar22,DAT_1826707b8) ^ 0x80000020816bc01) * 0x20 + 0xe +
                    *(longlong *)(lVar2 - (uVar26 ^ 0xc1e943ee)));
  bVar38 = (byte)DAT_182670adc;
  bVar20 = bVar38 ^ (byte)DAT_182670ae8;
  *(ulonglong *)(lVar2 + -0x4b0) = (ulonglong)pbVar28 ^ uVar37;
  *pbVar28 = bVar20 ^ *(byte *)(lVar2 + -0x9f9);
  uVar37 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(ulonglong *)(lVar2 + -0xa58) =
       *(longlong *)(lVar2 - (uVar29 ^ 0x3aed8706)) +
       (CONCAT44(uVar8,uVar5) ^ 0xbbf1bdfcc7d273d) * 8 ^ uVar37;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0xefcdfe26)) =
       *(ulonglong *)(lVar2 - (uVar46 ^ 0xcc7d2c8c)) ^ uVar45 | 0xb523ad8d9123bc4b;
  uVar46 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  *(ulonglong *)(lVar2 - (uVar53 ^ 0x7c2d7e72)) =
       *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar2 + -0xa58)) ^ uVar23 ^ uVar46;
  uVar16 = DAT_182670954;
  uVar4 = DAT_1826707b8;
  uVar40 = (ulonglong)DAT_18267086c;
  uVar37 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(CONCAT44(DAT_182670990,DAT_182670990) ^ *(ulonglong *)(lVar2 + -0x6c8)) =
       CONCAT44(uVar12,uVar35) ^ 0x6c86dd03121a8cdc;
  *(ulonglong *)(lVar2 + -0x68) =
       (*(ulonglong *)(lVar2 + -0x630) ^ uVar46) >> ((local_118 ^ 0x3e) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  *(byte *)(lVar2 - (uVar49 ^ 0x68ce09b)) =
       *(byte *)(lVar2 - (uVar50 ^ 0x13d5d788)) ^ (byte)uVar16 ^ bVar34;
  pbVar28 = (byte *)(*(longlong *)(lVar2 - (uVar37 ^ 0x816bc31)) +
                    (CONCAT44(uVar3,uVar11) ^ 0x3aed8c065c2c684f));
  *(ulonglong *)(lVar2 + -0x228) = (ulonglong)pbVar28 ^ uVar40;
  *pbVar28 = *(byte *)(lVar2 + -0xda1) ^ bVar38 ^ bVar34;
  uVar17 = DAT_1826709e8;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xb00) +
            ((CONCAT44(uVar32,uVar15) ^ 0xa0262d9f068ced38) +
            (CONCAT44(uVar9,uVar12) ^ 0x8448c02abab221a) * 4) * 8);
  *(ulonglong *)(lVar2 + -0x240) = (ulonglong)puVar24 ^ CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xde3cedc1)) = *puVar24 ^ uVar23 ^ uVar36;
  uVar16 = DAT_1826709a4;
  uVar33 = CONCAT44(uVar31,DAT_1826707d0);
  uVar37 = (ulonglong)DAT_18267094c;
  uVar40 = (*(ulonglong *)(lVar2 + -0x400) ^ uVar36) >> ((bVar52 ^ 0xc1) & 0x3f) ^
           CONCAT44(uVar17,uVar17);
  bVar34 = (byte)uVar17 ^ (byte)DAT_1826709a0;
  *(ulonglong *)(lVar2 + -0x890) = uVar40;
  *(byte *)(lVar2 - (uVar29 ^ 0x3aed8e97)) = bVar34 ^ (byte)uVar40;
  pbVar28 = (byte *)((uVar33 ^ 0xefcdff3e0bbf1bcf) + *(longlong *)(lVar2 + -0x30));
  bVar34 = *(byte *)(lVar2 + -0x291) ^ bVar38 ^ (byte)DAT_1826709a0;
  *(ulonglong *)(lVar2 + -0x500) = (ulonglong)pbVar28 ^ uVar37;
  *pbVar28 = bVar34;
  *(ulonglong *)(lVar2 + -0x518) =
       *(longlong *)(lVar2 + -0xb00) +
       ((CONCAT44(uVar9,uVar4) ^ 0x8448c020816bc03) +
       (CONCAT44(uVar7,uVar30) ^ 0xc1e943de382d0802) * 4) * 8 ^ CONCAT44(uVar16,uVar16);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar21 * 4) = uVar48;
  return;
}



############ FUN_ 180c8ad40 size=5347 ############

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

void FUN_180c8ad40(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong *puVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte bVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  ulonglong *puVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  uint uVar59;
  ulonglong *puVar60;
  uint uVar61;
  ulonglong uVar62;
  byte local_res8;
  ulonglong uVar41;
  
  uVar12 = DAT_1826709d4;
  uVar10 = DAT_182670948;
  uVar7 = DAT_1826707c0;
  lVar5 = DAT_1826707a0;
  uVar13 = DAT_1826707f4 | DAT_1826707c0;
  uVar25 = DAT_1826707dc & DAT_1826707a8;
  uVar40 = DAT_1826707b4 | DAT_1826707ec;
  uVar41 = (ulonglong)uVar40;
  uVar61 = DAT_1826708fc | DAT_182670928;
  uVar32 = DAT_182670a84 - DAT_182670948;
  uVar14 = _DAT_1826708c8 ^ DAT_1826708cc;
  uVar18 = DAT_182670924 >> 0x18;
  uVar15 = *(uint *)(&DAT_18260f758 + DAT_182670d68) ^ DAT_1826707dc;
  uVar31 = (ulonglong)uVar25;
  uVar16 = *(uint *)(&DAT_18260f750 + (uVar31 ^ 0x80002134) + (longlong)DAT_182670d68) ^
           DAT_1826707a8;
  uVar17 = DAT_182670924 & 0xff;
  uVar22 = (ulonglong)DAT_1826707c0;
  DAT_182670924 = ((DAT_182670924 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar48 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar26 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar44 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar27 = *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xce9d867)) ^ uVar48 |
           *(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar26;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x610);
  DAT_1826707b0 = uVar25;
  DAT_1826707c8 = uVar40;
  DAT_1826707e8 = uVar13;
  *puVar1 = uVar27 ^ uVar44;
  uVar11 = DAT_1826709c8;
  lVar6 = DAT_1826707a0;
  DAT_182670aac = ((uVar18 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  puVar2 = (ulonglong *)(lVar5 + -0xc18);
  uVar49 = CONCAT44(DAT_182670aac,DAT_182670aac);
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0xac0);
  puVar4 = (ulonglong *)(DAT_1826707a0 + -0x9c8);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = (CONCAT44(uVar12,uVar12) ^ *puVar2) - uVar27 ^ uVar49;
  uVar9 = DAT_1826707f4;
  uVar17 = DAT_1826707b4;
  lVar5 = DAT_1826707a0;
  uVar18 = DAT_182670a84 & 0xff;
  DAT_182670a84 = ((DAT_182670a84 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar28 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar23 = (ulonglong)DAT_1826707f4;
  uVar54 = (ulonglong)uVar13;
  *puVar3 = CONCAT44(uVar11,uVar11) ^ uVar28 ^ uVar26 ^ *puVar4 ^ *(ulonglong *)(lVar6 + -0x4c8);
  uVar8 = DAT_1826707ec;
  uVar18 = uVar32 & 0xff;
  DAT_182670a5c = ((uVar32 * 0x100 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar24 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  bVar53 = (byte)uVar13;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar40 ^ 0xfe7fde93)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar54 ^ 0x4febff3f)) ^ uVar28) >>
       (((byte)uVar17 ^ 0x85) & 0x3f) ^ uVar24;
  uVar18 = DAT_182670948 & 0xff;
  uVar29 = (uVar28 ^ *puVar3) << ((bVar53 ^ 0xcb) & 0x3f);
  DAT_182670948 = ((DAT_182670948 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar45 = CONCAT44(DAT_182670948,DAT_182670948);
  uVar18 = DAT_182670928 & 0xff;
  *(ulonglong *)(lVar5 + -0x998) = uVar29 ^ uVar45;
  DAT_182670928 = ((DAT_182670928 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar29 = *(ulonglong *)(lVar5 + -0x558) ^ uVar24 | uVar29;
  uVar35 = (ulonglong)DAT_182670928;
  uVar37 = CONCAT44(DAT_182670928,DAT_182670928);
  uVar50 = uVar29 ^ uVar37;
  *puVar2 = uVar50;
  *puVar4 = 0x6cf604329f1e5d3e;
  lVar5 = DAT_1826707a0;
  uVar18 = DAT_1826708fc & 0xff;
  DAT_1826708fc = ((DAT_1826708fc << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar42 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar27 = *(ulonglong *)(DAT_1826707a0 + -0xf0);
  uVar18 = uVar61 & 0xff;
  uVar61 = uVar61 << 8;
  *puVar3 = (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) - uVar29 ^ uVar42;
  DAT_182670828 = ((uVar61 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar29 = (ulonglong)DAT_182670828;
  uVar33 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xce9d4a7)) = uVar27 ^ uVar33 ^ uVar37 ^ uVar49 ^ uVar50;
  lVar6 = DAT_1826707a0;
  uVar18 = _DAT_1826708c8 & 0xff;
  _DAT_1826708c8 = ((_DAT_1826708c8 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar51 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar27 = ((ulonglong)((uVar61 & 0xffff) >> 9) | uVar29 << 7) ^
           *(ulonglong *)(lVar5 + -0x558) >> 0x19;
  *(ulonglong *)(lVar5 + -0x998) = uVar27 ^ uVar51;
  uVar18 = DAT_1826707a8;
  uVar61 = DAT_1826708cc & 0xff;
  uVar59 = DAT_1826708cc << 8;
  DAT_1826708cc = ((uVar59 | uVar61) << 8 | uVar61) << 8 | uVar61;
  uVar29 = (ulonglong)DAT_1826708cc;
  uVar46 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(int *)(lVar5 + -0xc34) = *(int *)(lVar5 + -0x42c) + 0x2d2c0c45;
  *(ulonglong *)(lVar5 + -0x4c8) =
       ((*(ulonglong *)(lVar5 + -0x558) ^ uVar33) << 0x27 | uVar27) ^ uVar45;
  uVar32 = DAT_1826707dc;
  uVar36 = (ulonglong)DAT_1826707dc;
  uVar52 = CONCAT44(uVar40,DAT_1826707dc);
  *puVar2 = uVar52 ^ 0x93ce57386feb63f2;
  puVar30 = (ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0xa322267c));
  *puVar30 = (*(ulonglong *)(lVar6 + -0xf0) ^ uVar49) -
             (CONCAT44(uVar9,DAT_1826707ec) ^ 0x6d58a74edff7c540) ^ uVar44;
  uVar19 = uVar14 & 0xff;
  DAT_1826708d4 = ((uVar14 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar57 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(ulonglong *)(lVar6 + -0x998) =
       (*(ulonglong *)(lVar6 + -0x558) ^ uVar44) - (uVar45 ^ *(ulonglong *)(lVar6 + -0x4c8)) ^
       uVar57;
  _DAT_182670ad4 = DAT_1826709a4 >> 0x10 & 0xff;
  _DAT_182670ad4 =
       (((DAT_1826709a4 >> 0x10) << 8 | _DAT_182670ad4) << 8 | _DAT_182670ad4) << 8 | _DAT_182670ad4
  ;
  uVar38 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *puVar4 = (uVar45 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) -
            (CONCAT44(uVar25,uVar32) ^ 0xe6761b6e5555d35f) ^ uVar38;
  lVar5 = DAT_1826707a0;
  uVar32 = DAT_1826709a4 & 0xff;
  DAT_1826709a4 = ((DAT_1826709a4 << 8 | uVar32) << 8 | uVar32) << 8 | uVar32;
  uVar62 = (ulonglong)DAT_1826709a4;
  uVar47 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0xa3222f3c)) =
       uVar47 ^ uVar42 ^ uVar44 ^ *puVar3 ^ *puVar1;
  *(int *)(lVar5 + -0xc04) = (int)(uVar17 ^ 0xdbc3b04a) >> ((bVar53 ^ 0xfe) & 0x1f);
  uVar32 = DAT_182670990 & 0xff;
  uVar27 = (*puVar2 >> 0x20 ^ uVar62) >> 1;
  DAT_182670990 = ((DAT_182670990 << 8 | uVar32) << 8 | uVar32) << 8 | uVar32;
  *(ulonglong *)(lVar5 + -0xf0) = uVar27 ^ uVar49;
  uVar32 = DAT_1826709e4;
  lVar5 = DAT_1826707a0;
  uVar50 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar14 = DAT_1826709e4 & 0xff;
  DAT_1826709e4 = ((DAT_1826709e4 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar43 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  uVar27 = (uVar47 ^ *puVar2) << 0x1f | uVar27;
  *puVar1 = uVar27 ^ uVar43;
  *(ulonglong *)(lVar5 + -0x4c8) =
       ((uVar42 ^ *puVar3) - (CONCAT44(uVar25,uVar9) ^ 0x3b565aca639d238)) - uVar27 ^ uVar46;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xce9d10f)) =
       uVar27 + (uVar52 ^ 0x130e5d3a0da11247) ^ uVar37;
  uVar27 = *(ulonglong *)(lVar5 + -0x998) ^ *(ulonglong *)(lVar5 + -0xf0) ^ uVar57;
  *puVar3 = (uVar27 ^ uVar37) << 0x3b ^ uVar51;
  *puVar2 = (uVar27 ^ uVar37) >> (((byte)uVar18 ^ 0x21) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar5 + -0x558) =
       (CONCAT44(uVar17,uVar9) ^ 0x97e0939b8b601d83) + 0x5bd3f6d08da5b861;
  lVar6 = DAT_1826707a0;
  puVar60 = (ulonglong *)(lVar5 - (uVar23 ^ 0x4b233e72));
  uVar27 = *(ulonglong *)(lVar5 - (uVar36 ^ 0xd418e17d)) ^ uVar24 | uVar51 ^ *puVar60;
  puVar20 = (ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x4b233442));
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar27 ^ uVar45;
  *puVar2 = (*puVar20 ^ uVar37) >> (((byte)uVar32 ^ *(byte *)puVar1) & 0x3f);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0xce9db3f)) =
       (*(ulonglong *)(lVar6 + -0x998) ^ uVar57) - uVar27 ^ uVar43;
  lVar5 = DAT_1826707a0;
  uVar27 = uVar38 ^ *puVar4 ^ *(ulonglong *)(lVar6 + -0x4c8);
  *puVar1 = uVar27;
  uVar52 = (uVar27 ^ uVar46) >> (((byte)uVar9 ^ 0x97) & 0x3f);
  *(ulonglong *)(lVar5 + -0xf0) = uVar52 ^ uVar57;
  uVar18 = ~DAT_1826709ac & 0xff;
  DAT_182670af8 = ((~DAT_1826709ac << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar39 = CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar27 = (uVar46 ^ uVar27) << (((byte)DAT_1826707dc ^ 0x7e) & 0x3f);
  *puVar2 = uVar27 ^ uVar39;
  lVar5 = DAT_1826707a0;
  uVar18 = DAT_1826709ac & 0xff;
  uVar27 = uVar27 | uVar52;
  DAT_1826709ac = ((DAT_1826709ac << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar36 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar27 ^ uVar36;
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x800028ec)) = (uVar46 ^ *puVar20) - uVar27 ^ uVar36;
  *puVar1 = (CONCAT44(DAT_1826707a8,uVar40) ^ 0x4341696d9821c6c5) +
            (CONCAT44(uVar25,uVar17) ^ 0x7c986aba308b4008);
  uVar27 = *(ulonglong *)(DAT_1826707a0 - (uVar54 ^ 0x4febfc67)) ^ uVar36 ^ uVar39 ^ uVar43 ^
           *puVar3;
  *puVar2 = uVar27;
  lVar5 = DAT_1826707a0;
  bVar21 = (byte)uVar7;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (uVar27 ^ uVar39) >> (((byte)uVar17 ^ 0x9e) & 0x3f) ^ uVar44;
  uVar52 = (uVar39 ^ uVar27) << ((bVar21 ^ 0xd6) & 0x3f);
  uVar27 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar5 + -0x4c8) = uVar52 ^ uVar28;
  uVar52 = *(ulonglong *)(lVar5 - (uVar27 ^ 0xbe0353ba)) ^ uVar44 | uVar52;
  *puVar1 = uVar52 ^ uVar50;
  lVar5 = DAT_1826707a0;
  uVar58 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x4b233d2a)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0xfe7fd10b)) ^ uVar43) - uVar52 ^ uVar58;
  *puVar2 = **(ulonglong **)(lVar5 + -0x240);
  lVar6 = DAT_1826707a0;
  uVar52 = *(ulonglong *)(lVar5 - (uVar54 ^ 0x4febfc37)) ^
           *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707dc ^ 0xd418e83d)) ^ uVar36 ^ uVar45;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar52 ^ uVar49;
  uVar31 = (*(ulonglong *)(lVar6 - (uVar31 ^ 0x800021d4)) ^ uVar49) >> ((bVar53 ^ 0xd7) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar31 ^ uVar43;
  uVar52 = uVar52 << (((byte)uVar25 ^ 0x3c) & 0x3f);
  uVar27 = (ulonglong)DAT_1826707c4;
  *puVar3 = uVar52 ^ uVar42;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x214a6a52)) = (uVar31 | uVar52) ^ uVar42;
  lVar5 = DAT_1826707a0;
  uVar27 = *puVar4;
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       (CONCAT44(uVar13,uVar9) ^ 0x69fc06e08a1484f4) >> ((bVar21 ^ 0xed) & 0x3f);
  *(ulonglong *)(lVar5 + -0xf0) = (uVar36 ^ uVar27) - (uVar42 ^ *puVar2) ^ uVar36;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xce9d537)) =
       uVar58 ^ uVar50 ^ *(ulonglong *)(lVar5 + -0x998) ^ uVar42 ^ *puVar2;
  uVar18 = DAT_1826707ec;
  puVar56 = (ulonglong *)(lVar5 - (uVar23 ^ 0x4b23307a));
  uVar27 = (uVar50 ^ *puVar56) >> (((byte)uVar40 ^ 0xff) & 0x3f);
  *puVar3 = uVar27 ^ uVar44;
  uVar13 = DAT_1826707f4 * DAT_1826707ec;
  DAT_1826707d0 = uVar13;
  *(ulonglong *)(lVar5 + -0x558) =
       (uVar50 ^ *(ulonglong *)(lVar5 + -0x4c8)) << (((byte)uVar18 ^ 0x46) & 0x3f) ^ uVar45;
  puVar34 = (ulonglong *)(lVar5 - (uVar23 ^ 0x4b2331ea));
  *puVar4 = (uVar45 ^ *puVar34 | uVar27) ^ uVar57;
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x4b2338aa)) =
       (uVar58 ^ *(ulonglong *)(DAT_1826707a0 + -0x998)) -
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0xdc58f8bc)) ^ uVar57) ^ uVar38;
  lVar5 = DAT_1826707a0;
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar44 ^ *puVar3 ^ 0x487185c1e8c486dd;
  uVar27 = uVar36 ^ uVar50 ^ *puVar20 ^ uVar47 ^ *puVar1;
  *(ulonglong *)(lVar5 + -0x998) = uVar27;
  local_res8 = (byte)uVar10;
  *puVar3 = (uVar27 ^ uVar47) >> ((*(byte *)(lVar5 + -0x558) ^ local_res8) & 0x3f);
  lVar5 = DAT_1826707a0;
  puVar55 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0xdc58f8ec));
  uVar31 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ec ^ 0xbe035782)) =
       (*puVar55 >> 0x20 ^ uVar62) >> 0x19 ^ uVar31;
  uVar27 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar5 - (uVar23 ^ 0x4b2332a2)) =
       (*(ulonglong *)(lVar5 + -0x998) ^ uVar47) << (((byte)uVar9 ^ 0xb5) & 0x3f) ^ uVar42;
  lVar6 = DAT_1826707a0;
  uVar31 = (uVar42 ^ *puVar1 | uVar31 ^ *(ulonglong *)(lVar5 + -0x4c8)) ^ uVar44;
  puVar20 = (ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xbe035612));
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar31;
  *puVar3 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0xdc58f184)) ^ uVar36) -
            (*puVar20 ^ uVar44) ^ uVar48;
  lVar5 = DAT_1826707a0;
  *puVar55 = uVar31 ^ uVar38 ^ uVar33 ^ uVar44 ^ *puVar2;
  uVar18 = DAT_1826707ec;
  *puVar56 = ((ulonglong)uVar13 ^ 0xeb000000) >> 0x18;
  uVar31 = (*(ulonglong *)(lVar5 + -0x998) ^ uVar33) >> (((byte)uVar18 ^ 0x44) & 0x3f);
  *puVar1 = uVar31 ^ uVar39;
  uVar32 = DAT_1826707dc;
  uVar27 = (*(ulonglong *)(lVar5 + -0x998) ^ uVar33) << 0x32;
  *(ulonglong *)(lVar5 + -0xf0) = uVar27 ^ uVar28;
  uVar31 = uVar31 | uVar27;
  *(ulonglong *)(lVar5 + -0x558) = uVar31 ^ uVar24;
  uVar18 = DAT_1826707a8;
  uVar27 = (uVar38 ^ *puVar2) - (CONCAT44(uVar32,DAT_1826707a8) ^ 0x2abb74bbb62d412e);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar27 ^ uVar48;
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar27 - uVar31 ^ uVar42;
  *puVar1 = uVar31 - (CONCAT44(uVar8,uVar17) ^ 0xa43fda7b02d58144) ^ uVar46;
  *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0xfe7fdb3b)) =
       uVar57 ^ uVar46 ^ uVar48 ^ *puVar3 ^ *puVar4;
  uVar27 = *(ulonglong *)(DAT_1826707a0 + -0xf0);
  *puVar2 = ((ulonglong)(uVar59 & 0xffff | uVar61) | uVar29 << 0x10) ^
            *(ulonglong *)(DAT_1826707a0 + -0xf0) >> 0x10 ^ uVar39;
  *puVar34 = (uVar27 ^ uVar46) << (((byte)uVar13 ^ 0x44) & 0x3f) ^ uVar58;
  *puVar4 = (uVar58 ^ *puVar30 | uVar39 ^ *puVar2) ^ uVar33;
  uVar27 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0x2324a3d2)) =
       (uVar48 ^ *puVar60) - (CONCAT44(uVar7,uVar40) ^ 0x6a9febb57f32e5f1) ^ uVar49;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x34b2473b)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0xfe7fdf03)) ^ uVar48 |
       CONCAT44(uVar8,uVar9) ^ 0xddfb793818d76aab;
  uVar27 = CONCAT44(DAT_1826707cc,uVar13);
  *puVar3 = (*(ulonglong *)(lVar5 + -0xf0) ^ uVar49) - (uVar33 ^ *puVar4) ^ uVar45;
  *(ulonglong *)(lVar5 + -0x4c8) =
       (uVar27 ^ 0x467b140a1bd0e519) + (uVar33 ^ *puVar4) ^ *(ulonglong *)(lVar5 + -0x998) ^ uVar42
       ^ uVar37;
  *(uint *)(lVar5 - (uVar54 ^ 0x4febf9fb)) =
       0x8caed304 >> ((byte)*(undefined4 *)(lVar5 + -0x42c) & 0x1f);
  uVar31 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ec ^ 0xbe035a82)) =
       *(ulonglong *)(lVar5 + -0x4c8) >> 0x20 ^ uVar50 ^ uVar35;
  uVar7 = DAT_1826707b8;
  uVar17 = DAT_1826707ac;
  lVar5 = DAT_1826707a0;
  uVar27 = *(ulonglong *)(DAT_1826707a0 + -0x998);
  uVar35 = (uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) << (((byte)uVar32 ^ 0x45) & 0x3f) |
           uVar50 ^ *puVar4;
  uVar29 = (ulonglong)DAT_1826707b8;
  *(uint *)(DAT_1826707a0 + -0x280) = (DAT_1826707e4 ^ 0xcf3b3282) * *(int *)(DAT_1826707a0 + -0x14)
  ;
  *(ulonglong *)(lVar5 + -0x5c0) = uVar35 ^ uVar47;
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x8a244960)) = (uVar27 ^ uVar42) - uVar35 ^ uVar58;
  lVar6 = DAT_1826707a0;
  uVar27 = *puVar3;
  *(uint *)(lVar5 + -0x14) = (uVar17 ^ 0xa5b672c3) * 0x1023a867;
  uVar27 = uVar46 ^ uVar45 ^ uVar26 ^ uVar27 ^ *puVar1;
  *puVar2 = uVar27;
  uVar31 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar6 + -0x998) = (uVar26 ^ uVar27) >> (((byte)uVar18 ^ 4) & 0x3f) ^ uVar51;
  *(ulonglong *)(lVar6 - (uVar29 ^ 0x4a887d6)) =
       (uVar26 ^ uVar27) << (((byte)uVar7 ^ 0xe6) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x34b0ddc0)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0xf73d9a47)) ^ uVar45) +
       (*(ulonglong *)(lVar6 + -0xf0) ^ uVar49);
  uVar27 = *puVar3;
  uVar35 = (uVar24 ^ *puVar1 | *(ulonglong *)(lVar6 + -0x998) ^ uVar51) ^ uVar57;
  *(ulonglong *)(lVar6 + -0xf0) = uVar35;
  uVar31 = *(ulonglong *)(lVar6 - (uVar31 ^ 0x34b0d128));
  *puVar1 = uVar58 ^ uVar39 ^ uVar35 ^ uVar57 ^ *puVar4;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar15;
  *puVar2 = (uVar45 ^ uVar27) - (uVar31 ^ uVar57) ^ uVar26;
  return;
}



############ FUN_ 180c61bd0 size=3689 ############

void FUN_180c61bd0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  undefined1 *puVar21;
  uint uVar22;
  longlong *plVar23;
  byte *pbVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  undefined8 *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  uint uVar39;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_88;
  ulonglong uVar40;
  
  uVar13 = DAT_1826707e8;
  uVar12 = DAT_1826707e4;
  uVar11 = DAT_1826707e0;
  uVar10 = DAT_1826707d8;
  uVar9 = DAT_1826707d4;
  uVar8 = DAT_1826707c4;
  uVar20 = DAT_1826707b8;
  uVar5 = DAT_1826707b0;
  lVar3 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707d4;
  uVar36 = (ulonglong)DAT_1826707e4;
  uVar42 = (ulonglong)DAT_1826707b0;
  uVar28 = (ulonglong)DAT_1826707c4;
  uVar30 = (ulonglong)DAT_1826707b8;
  uVar41 = (ulonglong)DAT_1826707d8;
  DAT_1826707c0 = DAT_1826707d4 * DAT_1826707e4;
  uVar39 = DAT_1826707e8 * DAT_1826707b8;
  uVar40 = (ulonglong)uVar39;
  uVar27 = DAT_1826707b0 * DAT_1826707d8;
  uVar29 = DAT_1826707c4 * DAT_1826707e0;
  uVar22 = (DAT_1826707f4 << 0x10 | DAT_1826707f4 & 0xff00) << 8 | DAT_1826707f4 >> 8 & 0xff00 |
           DAT_1826707f4 >> 0x18;
  uVar33 = (ulonglong)uVar22;
  uVar19 = *(uint *)(&DAT_18260f750 + (uVar33 ^ 0x3aed8c0e) + (longlong)DAT_182670ce0) ^
           DAT_1826707f4;
  uVar2 = *(uint *)(&DAT_18260f760 + DAT_182670ce0);
  uVar34 = (ulonglong)DAT_1826707e8;
  DAT_1826707a8 = uVar27;
  DAT_1826707b4 = uVar22;
  DAT_1826707dc = uVar39;
  DAT_1826707ec = uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       CONCAT44(DAT_1826707b8,DAT_1826707e8) ^ 0x7cf9500e31200a69;
  uVar6 = DAT_1826707c0;
  lVar4 = DAT_1826707a0;
  plVar23 = (longlong *)(lVar3 - ((ulonglong)uVar9 ^ 0x8448702));
  uVar31 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(DAT_1826707a0 + -0x1e8) =
       *plVar23 +
       ((CONCAT44(DAT_1826707c0,uVar39) ^ 0xe625e06216f23a19) +
       (CONCAT44(uVar12,uVar12) ^ 0xc4c78a31c4c78a31) * 4) * 8 ^ uVar31;
  uVar15 = DAT_18267086c;
  *(ulonglong *)(lVar4 + -0x998) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0xc479d45a)) ^
       CONCAT44(DAT_1826709dc,DAT_1826709dc) | 0xfc2ede06dd3a72ce;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar26 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0xd5a00e18)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xde3ce829)) ^ uVar31) ^ uVar26 ^
       uVar37;
  lVar3 = DAT_1826707a0;
  bVar38 = (byte)uVar5;
  bVar18 = (byte)DAT_18267091c;
  *(ulonglong *)(DAT_1826707a0 + -0x438) =
       (uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0xb70)) >> ((bVar38 ^ 0x36) & 0x3f) ^
       CONCAT44(DAT_18267091c,DAT_18267091c);
  uVar17 = DAT_182670ae0;
  uVar7 = DAT_1826707c0;
  uVar31 = (ulonglong)DAT_182670958;
  bVar35 = (byte)DAT_182670ae0;
  *(byte *)(lVar3 - ((ulonglong)DAT_1826707c0 ^ 0xe625e7c3)) =
       *(byte *)(lVar3 - (uVar41 ^ 0xe9c1da04)) ^ bVar18 ^ bVar35;
  uVar14 = DAT_1826707f4;
  bVar18 = *(byte *)(lVar3 + -0x7a1) ^ (byte)DAT_182670adc;
  pbVar24 = (byte *)(*(longlong *)(lVar3 + -0x30) + 0x1e +
                    (CONCAT44(uVar10,uVar29) ^ 0xe9c1de3cc479d382) * 0x20);
  *(ulonglong *)(lVar3 + -0xa30) = (ulonglong)pbVar24 ^ uVar31;
  *pbVar24 = bVar18 ^ bVar35;
  uVar16 = DAT_182670b0c;
  *(ulonglong *)(lVar3 + -0xc18) =
       CONCAT44(uVar20,uVar27) ^ 0x47c28fe1b8b43720 | CONCAT44(uVar13,uVar29) ^ 0xfada2756c73e30a2;
  uVar15 = DAT_182670920;
  lVar4 = DAT_1826707a0;
  puVar1 = (ulonglong *)
           (*plVar23 +
           ((CONCAT44(uVar14,uVar27) ^ 0x68ced3ad5a0056b) +
           (CONCAT44(uVar11,uVar5) ^ 0x80000023aed8c06) * 4) * 8);
  *(undefined8 *)(lVar3 + -0xb00) = 0xfb29b366805602f3;
  *(ulonglong *)(lVar3 + -0x4e0) = (ulonglong)puVar1 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_182670930;
  uVar31 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0xce0) = *puVar1 ^ uVar26 ^ uVar31;
  local_88 = (byte)uVar20;
  *(ulonglong *)(CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar3 + -0x310)) =
       CONCAT44(uVar22,uVar13) ^ 0x9e6c73060b3a3acc;
  uVar26 = (ulonglong)DAT_182670a24;
  *(ulonglong *)(lVar4 + -0x118) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0xce0)) >> ((local_88 ^ 0x39) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  bVar18 = (byte)DAT_182670904;
  *(byte *)(lVar4 + -0x942) =
       *(byte *)(lVar4 - (uVar33 ^ 0x3aed8d1e)) ^ (byte)uVar16 ^ (byte)DAT_182670904;
  *(ulonglong *)(lVar4 + -0x5e8) =
       (CONCAT44(uVar9,uVar5) ^ 0x8448c023aed8c06) * 0x20 +
       (CONCAT44(uVar14,uVar8) ^ 0x68ced3ade3ce9de) +
       *(longlong *)(lVar4 - ((ulonglong)uVar7 ^ 0xe625e052)) ^ uVar26;
  bVar18 = bVar18 ^ (byte)DAT_182670adc;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xc4c78b89)) =
       (CONCAT44(uVar10,uVar11) ^ 0x3cb8aae560ca5db8) - *(longlong *)(lVar4 - (uVar41 ^ 0xe9c1decc))
  ;
  uVar15 = DAT_18267083c;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar34 ^ 0xabab27f2)) ^ uVar26) =
       bVar18 ^ *(byte *)(lVar4 + -0x942);
  *(undefined8 *)(lVar4 + -0x2e0) = *(undefined8 *)(lVar4 + 0x48);
  *(undefined8 *)(lVar4 + -0x10) = *(undefined8 *)(lVar4 - (uVar34 ^ 0xabab246a));
  *(ulonglong *)(lVar4 + -0x670) = CONCAT44(uVar12,uVar29) ^ 0x644e56859f9c8c3e;
  uVar16 = DAT_1826708a4;
  lVar3 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(DAT_1826707a0 + -0x6c8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0x16f2361a)) ^ (ulonglong)DAT_182670a94) + 0x20 +
       ((CONCAT44(uVar14,uVar5) ^ 0x68ced3a3aed8c06) * 0x10 +
       (CONCAT44(uVar27,uVar5) ^ 0xd5a005683aed8c06)) * 8 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xc00) = CONCAT44(uVar10,uVar39) ^ 0xa61bbb229a5ef269;
  uVar17 = DAT_182670af0;
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x84487b2)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar33 ^ 0x3aed8ace)) ^ uVar26) ^
       CONCAT44(uVar16,uVar16) ^ CONCAT44(uVar15,uVar15);
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xde3cea11)) ^ CONCAT44(uVar17,uVar17)) =
       CONCAT44(uVar6,uVar29) ^ 0xd17cc4d06346c13e;
  uVar15 = DAT_182670940;
  *(ulonglong *)(lVar3 + -0x168) = *(ulonglong *)(lVar3 + -0x908) ^ (ulonglong)DAT_1826708c4;
  *(ulonglong *)(lVar3 + -0x660) =
       CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar3 + -0x420) ^ CONCAT44(uVar12,uVar8) ^
       0xf08b61701b6e4fcc;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xabab2842)) =
       *(longlong *)(lVar3 + -0xba8) + (CONCAT44(uVar27,uVar10) ^ 0xd5a00568e9c1de3c) * 8;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xde3cea91)) =
       (CONCAT44(uVar14,uVar22) ^ 0x68ced3a3aed8c06) + *(longlong *)(lVar4 + 0x30);
  bVar18 = **(byte **)(lVar4 + -0x350);
  *(byte *)(lVar4 + -0x6c9) = bVar18;
  *(ulonglong *)(lVar4 + -0x630) = (ulonglong)bVar18;
  pbVar24 = (byte *)((CONCAT44(uVar12,uVar11) ^ 0xc4c78a3108000003) +
                    *(longlong *)(((ulonglong)uVar7 ^ 0xe625e052) + lVar4));
  *(byte **)(lVar4 + -0x4f8) = pbVar24;
  bVar18 = *pbVar24;
  *(byte *)(lVar4 + -0x6c9) = bVar18;
  *(ulonglong *)(lVar4 + -0x68) = (ulonglong)bVar18;
  uVar5 = DAT_1826707f4;
  uVar37 = (ulonglong)DAT_1826707f4;
  uVar31 = (ulonglong)bVar18 << 8;
  uVar26 = CONCAT44(uVar9,DAT_1826707f4);
  *(ulonglong *)(lVar4 + -0x890) = uVar31;
  *(ulonglong *)(lVar4 + -0x400) = (uVar26 ^ 0x2b0f802fd0da8d0c) << ((bVar38 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd38) = uVar31 ^ *(ulonglong *)(lVar4 + -0x660);
  *(ulonglong *)(lVar4 + -0xd88) = *(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0xd5a00358)) | uVar31
  ;
  *(ulonglong *)(lVar4 + -0x4f8) =
       (CONCAT44(uVar9,uVar29) ^ 0x8448c02c479d380) + *(longlong *)((uVar28 ^ 0xde3ce9f1) + lVar4);
  *(int *)(lVar4 - (uVar30 ^ 0x816bed5)) =
       *(int *)(lVar4 + -0x280) >> ((byte)*(undefined4 *)(lVar4 + -0x7e4) & 0x1f);
  bVar18 = **(byte **)(lVar4 + -0x4f8);
  *(byte *)(lVar4 + -0x6c9) = bVar18;
  *(ulonglong *)(lVar4 + -0xac0) = (ulonglong)bVar18;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 + -0x350);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xc4c78f69)) = (ulonglong)bVar18 << ((local_88 ^ 0x11) & 0x3f);
  *(ulonglong *)(lVar4 + -0x6f0) = *(ulonglong *)(lVar4 + -0x558) | *(ulonglong *)(lVar4 + -0xd88);
  puVar21 = (undefined1 *)(*(longlong *)(lVar4 + 0x30) + 3);
  *(undefined1 **)(lVar4 + -0x4f8) = puVar21;
  *(undefined1 *)(lVar4 + -0x6c9) = *puVar21;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x844898a)) = (ulonglong)*(byte *)(lVar4 - (uVar36 ^ 0xc4c78cf8))
  ;
  uVar26 = *(longlong *)(lVar4 + -0x588) << (((byte)uVar13 ^ 2) & 0x3f);
  *(ulonglong *)(lVar4 + -0x610) = uVar26;
  *(ulonglong *)(lVar4 + -0x6b8) = *(ulonglong *)(lVar4 - (uVar33 ^ 0x3aed8af6)) | uVar26;
  *(longlong *)(lVar4 - (uVar40 ^ 0x16f2394a)) = *(longlong *)((uVar42 ^ 0x3aed8c36) + lVar4) + 4;
  *(ulonglong *)(lVar4 + -0x5c0) =
       (CONCAT44(uVar6,uVar5) ^ 0x8689afd823ccec47) >> (((byte)uVar39 ^ 0x38) & 0x3f);
  puVar32 = (undefined8 *)(lVar4 - (uVar41 ^ 0xe9c1dd6c));
  *(undefined1 *)(lVar4 - (uVar34 ^ 0xabab24d3)) = *(undefined1 *)*puVar32;
  *(ulonglong *)(lVar4 + -0x220) = (ulonglong)*(byte *)(lVar4 + -0x6c9);
  *(ulonglong *)(lVar4 + -0x4c8) = (ulonglong)*(byte *)(lVar4 + -0x6c9) << 0x20;
  *(ulonglong *)(lVar4 + -0x658) =
       *(ulonglong *)(lVar4 - (uVar33 ^ 0x3aed88ce)) | *(ulonglong *)(lVar4 + -0x6b8);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0xe625e9aa)) =
       (CONCAT44(uVar9,uVar10) ^ 0xde01985239751096) >> (((byte)uVar8 ^ 0xda) & 0x3f);
  *(longlong *)(lVar4 + -0x4f8) = *(longlong *)(lVar4 + 0x30) + 5;
  bVar18 = **(byte **)(lVar4 - (uVar34 ^ 0xabab26e2));
  *(byte *)(lVar4 + -0x6c9) = bVar18;
  *(ulonglong *)(lVar4 + -0x7d8) = (ulonglong)bVar18;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0x16f23382)) = (ulonglong)bVar18 << ((bVar38 ^ 0x2e) & 0x3f);
  *(ulonglong *)(lVar4 + -0xb70) = *(ulonglong *)(lVar4 + -0x998) | *(ulonglong *)(lVar4 + -0x658);
  *(ulonglong *)(lVar4 + -0x350) =
       (CONCAT44(uVar29,uVar13) ^ 0xc479d382abab221c) + *(longlong *)((uVar33 ^ 0x3aed8c36) + lVar4)
  ;
  *(undefined1 *)(lVar4 - (uVar42 ^ 0x3aed8acf)) = *(undefined1 *)*puVar32;
  *(ulonglong *)(lVar4 + -0x438) = (ulonglong)*(byte *)(lVar4 + -0x6c9);
  *(ulonglong *)(lVar4 + -0xc18) =
       (ulonglong)*(byte *)(lVar4 + -0x6c9) << (((byte)uVar29 ^ 0xb2) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa18) = *(ulonglong *)(lVar4 + -0xb70) | *(ulonglong *)(lVar4 + -0x220);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x816b0e1)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar27 ^ 0xd5a00970)) + *(ulonglong *)(lVar4 + -0xb70);
  *(longlong *)(lVar4 - ((ulonglong)uVar5 ^ 0x68ce9c2)) = *(longlong *)(lVar4 + 0x30) + 7;
  bVar18 = **(byte **)(lVar4 - ((ulonglong)uVar11 ^ 0x80004fa));
  *(byte *)(lVar4 + -0x6c9) = bVar18;
  *(ulonglong *)(lVar4 + -0x118) = (ulonglong)bVar18;
  *(uint *)(lVar4 + -0x540) = *(uint *)(lVar4 - (uVar34 ^ 0xabab2e16)) | DAT_1826707c0 ^ 0xe9b8e3b4;
  *(longlong *)(lVar4 + -0xf0) =
       -0x66b32a13858888a5 << ((byte)*(undefined8 *)(lVar4 + -0x6f0) & 0x3f);
  *(ulonglong *)(lVar4 + -0x1b8) = (ulonglong)bVar18 << (((byte)uVar29 ^ 0xba) & 0x3f);
  uVar33 = *(longlong *)(lVar4 - (uVar28 ^ 0xde3ce879)) + *(longlong *)(lVar4 + -0xce0);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar33;
  uVar15 = DAT_182670a9c;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 + -0xa58) + (CONCAT44(uVar29,uVar27) ^ 0xc479d382d5a00568) * 8);
  *(ulonglong **)(lVar4 + -0x240) = puVar1;
  *puVar1 = CONCAT44(uVar15,uVar15) ^ uVar33;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x8000422)) =
       *(ulonglong *)(lVar4 + -0x1b8) ^ *(ulonglong *)(lVar4 + -0xf0);
  puVar21 = (undefined1 *)
            ((CONCAT44(uVar6,uVar10) ^ 0xe625e062e9c1de34) +
            *(longlong *)((uVar40 ^ 0x16f23a2a) + lVar4));
  *(undefined1 **)(lVar4 + -0x350) = puVar21;
  *(undefined1 *)(lVar4 - (uVar37 ^ 0x68cebf3)) = *puVar21;
  *(ulonglong *)(lVar4 + -0x400) = (ulonglong)*(byte *)(lVar4 + -0x6c9);
  puVar21 = (undefined1 *)(*(longlong *)(lVar4 + 0x30) + 9);
  *(undefined1 **)(lVar4 + -0x4f8) = puVar21;
  *(undefined1 *)(lVar4 + -0x6c9) = *puVar21;
  *(longlong *)(lVar4 + -0x68) = *(longlong *)(lVar4 + -0x6b8) + -0x62b20fda03c02f7d;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xe9c1d85c)) = (ulonglong)*(byte *)(lVar4 + -0x6c9);
  uVar5 = DAT_1826707ac;
  uVar20 = ~DAT_1826707ac;
  uVar26 = (ulonglong)DAT_1826707ac;
  uVar34 = CONCAT44(uVar20,DAT_1826707ac);
  uVar33 = *(longlong *)(lVar4 + -0x660) << (((byte)DAT_1826707ac ^ 0x97) & 0x3f);
  DAT_1826707d0 = uVar20;
  *(ulonglong *)(lVar4 + -0xd38) = uVar33;
  *(ulonglong *)(lVar4 + -0x890) = *(ulonglong *)(lVar4 + -0x400) | uVar33;
  *(ulonglong *)(lVar4 + -0x350) =
       (CONCAT44(uVar5,uVar20) ^ 0xa0262d9f5fd9d26a) + *(longlong *)(lVar4 + 0x30);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xa0262baf)) =
       (uVar34 ^ 0xe5ea2a93b26be4b8) << (((byte)uVar20 ^ 0x4d) & 0x3f);
  *(undefined1 *)(lVar4 - (uVar26 ^ 0xa0262b56)) = **(undefined1 **)(lVar4 + -0x350);
  *(ulonglong *)(lVar4 + -0xac0) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0x5fd9d400)) ^
       *(ulonglong *)(lVar4 - (uVar26 ^ 0xa02620a7));
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar39) * 4) = uVar19;
  return;
}



############ FUN_ 180ce02a0 size=5405 ############

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

void FUN_180ce02a0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_130;
  byte local_120;
  byte local_110;
  byte local_100;
  byte local_f0;
  byte local_d8;
  
  uVar14 = DAT_182670924;
  uVar13 = DAT_182670844;
  uVar11 = DAT_1826707ec;
  uVar10 = DAT_1826707e4;
  uVar8 = DAT_1826707c4;
  uVar7 = DAT_1826707b8;
  uVar18 = DAT_1826707b0;
  lVar5 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_1826707b8;
  uVar32 = (ulonglong)DAT_1826707b0;
  uVar38 = (ulonglong)DAT_1826707c4;
  DAT_1826707f0 = DAT_1826707b0 ^ DAT_1826707b8;
  uVar28 = (ulonglong)DAT_1826707e4;
  uVar31 = (ulonglong)DAT_1826707ec;
  uVar26 = DAT_1826707c4 << 0x10 | DAT_1826707c4 >> 0x10;
  uVar39 = DAT_1826707e4 ^ DAT_1826707ec;
  uVar15 = *(uint *)(&DAT_18260f750 + (uVar19 ^ 0x600a08b8) + (longlong)DAT_182670b74) ^
           DAT_1826707b0;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670b74) ^ DAT_1826707f0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar30 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar35 = (ulonglong)uVar39;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  DAT_1826707c0 = uVar39;
  DAT_1826707f4 = uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (CONCAT44(DAT_182670964,DAT_182670964) ^ *(ulonglong *)(DAT_1826707a0 + -0xce0) |
       CONCAT44(DAT_182670868,DAT_182670868) ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) ^ uVar30;
  uVar33 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar39 ^ 0x7c28b017)) =
       (CONCAT44(uVar13,uVar13) ^ *puVar1) - (CONCAT44(uVar10,uVar11) ^ 0xa8685c03e43f8a49) ^ uVar33
  ;
  puVar3 = (ulonglong *)(lVar5 + -0x6b8);
  uVar21 = (ulonglong)uVar26;
  *puVar3 = (CONCAT44(uVar8,uVar26) ^ 0x52e4649d3bb37a10) + 0x522770aab4be69d2;
  uVar13 = DAT_182670948;
  uVar22 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *puVar2 = (*(ulonglong *)(lVar5 + -0x660) ^ uVar33) - (*(ulonglong *)(lVar5 + -0xc18) ^ uVar30) ^
            uVar22;
  uVar12 = DAT_1826707e8;
  uVar9 = DAT_1826707cc;
  uVar33 = (ulonglong)DAT_1826707cc;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar29 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x87d74400)) =
       (CONCAT44(uVar18,uVar8) ^ 0xb5d4c8c28e03b9d5) + (*(ulonglong *)(lVar5 + -0xc18) ^ uVar30) ^
       uVar36;
  uVar13 = DAT_18267081c;
  uVar17 = uVar9 & 3;
  if (uVar17 < 2) {
    DAT_1826707d4 = uVar12;
    if (uVar17 == 0) {
      DAT_1826707d4 = uVar9;
    }
  }
  else {
    DAT_1826707d4 = DAT_1826707dc;
    if (uVar17 < 3) {
      DAT_1826707d4 = DAT_1826707ac;
    }
  }
  uVar30 = (ulonglong)DAT_182670818;
  uVar34 = (ulonglong)DAT_1826707dc;
  uVar44 = (ulonglong)DAT_1826707d4;
  uVar40 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar27 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  uVar23 = *(ulonglong *)(lVar5 + -0x588) ^ *(ulonglong *)(lVar5 + -0x400) ^ uVar27 ^ uVar40 ^
           uVar36;
  *(ulonglong *)(lVar5 + -0xce0) = uVar23;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x92b370a6)) = uVar23 >> 0x20 ^ uVar37 ^ uVar30;
  uVar13 = DAT_182670a58;
  uVar41 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar34 = (*(ulonglong *)(lVar5 + -0xce0) ^ uVar40) << (((byte)uVar12 ^ 0xa0) & 0x3f);
  uVar30 = (ulonglong)DAT_1826707e0;
  *puVar1 = uVar34 ^ uVar41;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar17 = DAT_1826707ac ^ 0x78797d1c;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0x44854eb9)) =
       (*(ulonglong *)(lVar5 - (uVar30 ^ 0xcc5c8ba9)) ^ uVar37 | uVar34) ^ uVar23;
  uVar30 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar5 + -0x9ec) = uVar17 | DAT_1826707e8 ^ 0x90dc6e48;
  lVar6 = DAT_1826707a0;
  puVar45 = (ulonglong *)(lVar5 - (uVar30 ^ 0xfceb69ff));
  uVar34 = CONCAT44(DAT_182670b08,DAT_182670b08);
  puVar4 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x44854e61)) =
       (*puVar45 ^ uVar27) - (*puVar3 ^ uVar23) ^ uVar34;
  uVar13 = DAT_1826708cc;
  *(ulonglong *)(lVar6 + -0xc18) = CONCAT44(uVar12,uVar9) ^ 0x9706fe43b5f71395 | *puVar1 ^ uVar41;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar30 = CONCAT44(DAT_182670a00,DAT_182670a00) ^ *puVar4 ^ uVar27 ^ uVar22 ^ *puVar2;
  *(ulonglong *)(lVar6 + -0x588) = uVar30;
  uVar17 = DAT_1826707e0;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 + -0x4f8);
  uVar37 = (uVar30 ^ uVar27) >> (((byte)uVar17 ^ 0xa9) & 0x3f);
  puVar42 = (ulonglong *)(lVar6 - (uVar31 ^ 0xfbfff277));
  *(ulonglong *)(lVar6 + -0xce0) = uVar37 ^ uVar36;
  lVar5 = DAT_1826707a0;
  local_130 = (byte)uVar39;
  uVar30 = (uVar27 ^ *puVar42) << ((local_130 ^ 0x57) & 0x3f);
  puVar43 = (ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x43149708));
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar30 ^ CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar5 + -0x400) = uVar27 ^ *puVar43 | uVar30;
  lVar5 = DAT_1826707a0;
  uVar37 = uVar37 | uVar30;
  local_120 = (byte)(uVar8 >> 0x10);
  uVar30 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  *puVar1 = uVar37 ^ uVar30;
  uVar47 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar5 + -0xc18) = (uVar22 ^ *puVar2) - uVar37 ^ uVar47;
  *(uint *)(lVar5 + -0x540) = DAT_1826707b8 ^ 0xfffff7bf | 0x3fb7d637;
  uVar37 = CONCAT44(DAT_182670814,DAT_182670814);
  puVar24 = (ulonglong *)(lVar5 - ((ulonglong)DAT_1826707f0 ^ 0x8fd5d097));
  *puVar4 = *puVar24 ^ *(ulonglong *)(lVar5 + -0x660) ^ uVar37 ^ uVar30 ^ uVar34;
  uVar30 = *puVar4;
  *(ulonglong *)(lVar5 + -0x588) =
       (CONCAT44(uVar11,uVar9) ^ 0xe4f3ec027e09856e) + 0x564eaf40829ece3d;
  uVar44 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xadc34fe)) =
       (uVar37 ^ uVar30) >> ((local_120 ^ 0xe6) & 0x3f) ^ uVar44;
  uVar11 = DAT_1826707e0;
  lVar5 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_182670828,DAT_182670828);
  bVar20 = (byte)uVar10;
  local_110 = (byte)uVar9;
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xefdfd31f)) =
       (uVar37 ^ *puVar4) << ((bVar20 ^ 0x8e) & 0x3f) ^ uVar30;
  uVar36 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x431490a0)) =
       (uVar30 ^ *(ulonglong *)(lVar5 + -0xce0) | uVar44 ^ *(ulonglong *)(lVar5 + -0x400)) ^ uVar36;
  uVar40 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *puVar2 = (*(ulonglong *)(lVar5 + -0x660) ^ uVar34) - (uVar36 ^ *(ulonglong *)(lVar5 + -0x220)) ^
            uVar40;
  uVar30 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar23 = *puVar3 ^ uVar30 ^ uVar47 ^ *(ulonglong *)(lVar5 + -0xc18) ^ uVar23;
  uVar38 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *puVar1 = uVar23;
  uVar27 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *puVar43 = (uVar23 ^ uVar30) >> ((local_110 ^ 0x17) & 0x3f) ^ uVar38;
  lVar5 = DAT_1826707a0;
  puVar43 = (ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x7c28b087));
  *puVar43 = (*puVar1 ^ uVar30) << 0x2a ^ uVar27;
  uVar13 = DAT_1826708a8;
  uVar34 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar30 = uVar27 ^ *puVar4 | uVar38 ^ *(ulonglong *)(lVar5 + -0x588);
  *(ulonglong *)(lVar5 + -0xce0) = uVar30 ^ uVar34;
  uVar48 = CONCAT44(uVar13,uVar13);
  *puVar45 = (uVar47 ^ *(ulonglong *)(lVar5 + -0xc18)) - uVar30 ^ uVar48;
  lVar6 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar30 = *(ulonglong *)(lVar5 - (uVar33 ^ 0x44854589)) ^ uVar38 ^ uVar34 ^ uVar40 ^
           *(ulonglong *)(lVar5 + -0xce0);
  uVar23 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar5 + -0x660) = uVar30;
  uVar9 = DAT_1826707f0;
  *(ulonglong *)(lVar5 - (uVar19 ^ 0x600a0e08)) =
       (uVar30 ^ uVar38) >> (((byte)uVar17 ^ 0xa7) & 0x3f) ^ uVar23;
  uVar41 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar30 = (*(ulonglong *)(lVar6 + -0x660) ^ uVar38) << 0x12;
  *puVar1 = uVar30 ^ uVar41;
  uVar13 = DAT_1826708fc;
  *(ulonglong *)(lVar6 + -0x588) =
       CONCAT44(uVar8,uVar9) ^ 0xa353f242a5b046ea | CONCAT44(uVar26,uVar9) ^ 0x4c12fab8c888d98;
  uVar46 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - (uVar29 ^ 0x43149e60)) =
       (*(ulonglong *)(lVar6 - (uVar31 ^ 0xfbfff147)) ^ uVar23 | uVar30) ^ uVar46;
  puVar25 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707ac ^ 0xfceb611f));
  puVar45 = (ulonglong *)(lVar6 - (uVar31 ^ 0xfbfffa77));
  uVar31 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(lVar6 + -0x660) = (uVar40 ^ *puVar45) - (*puVar25 ^ uVar46) ^ uVar31;
  *(ulonglong *)(lVar6 + -0x588) =
       uVar48 ^ uVar36 ^ uVar44 ^ *(ulonglong *)(lVar6 + -0x400) ^ *(ulonglong *)(lVar6 + -0x220);
  uVar30 = *(ulonglong *)(lVar6 + -0x588);
  *puVar3 = (uVar47 ^ *(ulonglong *)(lVar6 + -0xc18)) << 0xc;
  local_f0 = (byte)uVar18;
  *(ulonglong *)(lVar6 - (uVar21 ^ 0x30fe0d04)) =
       (uVar44 ^ uVar30) >> ((bVar20 ^ 0x84) & 0x3f) ^ uVar37;
  *(int *)(lVar6 + -0x42c) = *(int *)(lVar6 + -0xc0c) + *(int *)(lVar6 + -0xb54);
  uVar30 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar6 - (uVar21 ^ 0x30fe0754)) =
       (uVar44 ^ *(ulonglong *)(lVar6 + -0x588)) << ((local_f0 ^ 0xcb) & 0x3f) ^ uVar30;
  uVar9 = DAT_1826707d8;
  uVar40 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  uVar38 = (ulonglong)DAT_1826707d8;
  uVar18 = DAT_1826707d8 & 0xff00;
  uVar30 = *puVar1 ^ uVar37 | uVar30 ^ *puVar2;
  *(ulonglong *)(lVar6 + -0x220) = uVar30 ^ uVar40;
  uVar18 = (uVar9 << 0x10 | uVar18) << 8 | uVar9 >> 8 & 0xff00 | DAT_1826707d8 >> 0x18;
  uVar29 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar36 = (ulonglong)uVar18;
  DAT_1826707c8 = uVar18;
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x79854071)) =
       (*(ulonglong *)(lVar6 - (uVar38 ^ 0x694c8179)) ^ uVar48) - uVar30 ^ uVar29;
  lVar5 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar30 = uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0x660) ^ uVar40 ^ uVar31 ^
           *(ulonglong *)(DAT_1826707a0 + -0x220);
  *puVar3 = uVar30;
  uVar13 = DAT_182670830;
  *(ulonglong *)(lVar5 + -0x588) =
       *(ulonglong *)(lVar5 - (uVar36 ^ 0x79854a99)) ^ uVar27 |
       CONCAT44(uVar9,uVar18) ^ 0xa15f1d799bb1f343;
  lVar6 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar40 = (uVar37 ^ uVar30) << 0x27;
  uVar30 = (ulonglong)DAT_1826707dc;
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar38 ^ 0x694c83c1)) ^ uVar37) >>
            (((byte)uVar9 ^ 0x60) & 0x3f) ^ uVar27;
  *puVar2 = uVar40 ^ CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar6 + -0x220) =
       *(ulonglong *)(lVar6 - (uVar30 ^ 0x92b37686)) ^ uVar48 ^ 0x128ff1fcb05183fc;
  uVar44 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *puVar4 = (*(ulonglong *)(lVar6 - (uVar28 ^ 0x87d74650)) ^ uVar27 | uVar40) ^ uVar47;
  *(ulonglong *)(lVar6 + -0x588) =
       (*(ulonglong *)(lVar6 + -0x660) ^ uVar31) - (CONCAT44(uVar11,uVar9) ^ 0x92b16065b92fbf9d) ^
       uVar44;
  *(undefined8 *)(lVar6 - (uVar35 ^ 0x7c28b0cf)) = 0x5da69a1e;
  uVar30 = *puVar4;
  uVar28 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar6 + -0x400) = (uVar44 ^ *puVar42) - (uVar47 ^ uVar30) ^ uVar28;
  uVar13 = DAT_182670848;
  *(ulonglong *)(lVar6 + -0x220) =
       (uVar47 ^ uVar30) - (CONCAT44(uVar9,uVar18) ^ 0xa164333674b963df) ^ uVar23;
  uVar18 = DAT_1826707ac;
  lVar5 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar13,uVar13);
  local_d8 = (byte)uVar8;
  uVar30 = uVar31 ^ uVar29 ^ uVar46 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0) ^
           *(ulonglong *)(DAT_1826707a0 + -0xc18);
  *puVar2 = uVar30;
  uVar27 = (uVar30 ^ uVar31) >> ((local_130 ^ 0x56) & 0x3f);
  uVar30 = (ulonglong)DAT_1826707d4;
  *puVar1 = uVar27 ^ CONCAT44(DAT_182670894,DAT_182670894);
  uVar13 = DAT_18267093c;
  uVar10 = DAT_1826707dc;
  lVar6 = DAT_1826707a0;
  uVar31 = (*(ulonglong *)(lVar5 - (uVar30 ^ 0x43149f08)) ^ uVar31) << ((local_d8 ^ 0xe1) & 0x3f);
  uVar30 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar5 + -0x660) = uVar31 ^ CONCAT44(DAT_182670840,DAT_182670840);
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - (uVar30 ^ 0x92b3743e)) = (uVar31 | uVar27) ^ uVar37;
  uVar31 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x92b3770e)) =
       (*(ulonglong *)(lVar6 - (uVar32 ^ 0xefdfd3e7)) ^ uVar29) -
       (CONCAT44(uVar7,uVar26) ^ 0x28006f411cda9d7) ^ uVar31;
  uVar30 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *puVar43 = (uVar31 ^ *(ulonglong *)(lVar6 + -0x588)) - (uVar37 ^ *puVar3) ^ uVar30;
  uVar29 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar32 = (CONCAT44(uVar18,uVar12) ^ 0xb936f211cf1046d7) + (uVar37 ^ *puVar3) ^ uVar29;
  *(ulonglong *)(lVar6 + -0xce0) = uVar32;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707f0 ^ 0x8fd5dac7)) =
       *(ulonglong *)(lVar6 - (uVar35 ^ 0x7c28b277)) ^ uVar32 ^ uVar29 ^ uVar28 ^ uVar41;
  *(uint *)(lVar6 - (uVar33 ^ 0x44854015)) =
       (DAT_1826707cc ^ 0x44672be9) * (DAT_1826707ec ^ 0xf74da51a);
  uVar29 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *puVar1 = ((ulonglong)DAT_182670860 << 0x1b | (ulonglong)(DAT_182670860 >> 5)) ^ *puVar45 >> 5 ^
            uVar29;
  uVar32 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar6 - (uVar38 ^ 0x694c8319)) =
       (*(ulonglong *)(lVar6 - (uVar35 ^ 0x7c28bbff)) ^ uVar41) << ((local_f0 ^ 0xc4) & 0x3f) ^
       uVar32;
  uVar14 = DAT_1826709cc;
  uVar32 = *(ulonglong *)(lVar6 - (uVar36 ^ 0x79854bb1)) ^ uVar29 |
           uVar32 ^ *(ulonglong *)(lVar6 + -0x660);
  *(ulonglong *)(lVar6 + -0xc18) = uVar32 ^ uVar44;
  uVar13 = DAT_182670810;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x588) = (uVar28 ^ *(ulonglong *)(lVar6 + -0x400)) - uVar32 ^ uVar38;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar28 = uVar29 ^ uVar30 ^ uVar23 ^ *puVar4 ^ *(ulonglong *)(DAT_1826707a0 + -0x220);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar28;
  lVar5 = DAT_1826707a0;
  uVar32 = (uVar28 ^ uVar29) >> ((bVar20 ^ 0xad) & 0x3f);
  uVar28 = (uVar29 ^ uVar28) << 0x1b;
  *puVar2 = uVar32 ^ CONCAT44(DAT_182670a84,DAT_182670a84);
  *puVar1 = uVar28 ^ CONCAT44(DAT_182670a18,DAT_182670a18);
  uVar29 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar5 + -0x400) = (uVar32 | uVar28) ^ uVar29;
  *(ulonglong *)(lVar5 - (uVar21 ^ 0x30fe0cbc)) =
       (CONCAT44(uVar26,uVar12) ^ 0x2526fca2235b3424) >>
       (((byte)uVar14 ^ *(byte *)(lVar5 + -0x588)) & 0x3f);
  uVar32 = *(ulonglong *)(lVar5 + -0x400);
  uVar23 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  local_100 = (byte)uVar7;
  *puVar3 = (uVar30 ^ *puVar4) - (uVar29 ^ uVar32) ^ uVar23;
  lVar5 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar31 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar32 = uVar28 ^ uVar29 ^ uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0x588) ^ uVar32;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar32;
  *puVar2 = (uVar28 ^ uVar32) >> (((byte)uVar9 ^ 0x6e) & 0x3f) ^ uVar31;
  uVar30 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *puVar24 = (uVar28 ^ uVar32) << ((local_100 ^ 0x99) & 0x3f) ^ uVar30;
  uVar13 = DAT_182670990;
  *(ulonglong *)(lVar5 + -0x660) = (CONCAT44(uVar9,uVar8) ^ 0x86d28cc155f5ee06) + 0x7a3f16d60b9b8727
  ;
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707dc ^ 0x92b37476)) =
       (*puVar1 ^ uVar30 | uVar31 ^ *puVar2) ^ uVar28;
  uVar13 = DAT_1826708c4;
  uVar30 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar5 + -0x400) =
       (uVar38 ^ *(ulonglong *)(lVar5 + -0x588)) - (*puVar4 ^ uVar28) ^ uVar30;
  uVar14 = DAT_182670978;
  uVar38 = CONCAT44(uVar13,uVar13);
  uVar32 = uVar23 ^ uVar44 ^ *puVar3 ^ *(ulonglong *)(lVar5 + -0xc18);
  *(ulonglong *)(lVar5 + -0xce0) = uVar32 ^ uVar38;
  uVar18 = DAT_1826707d4;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar33 ^ 0x44854a21)) = uVar32 >> ((local_100 ^ 0x98) & 0x3f) ^ uVar29;
  uVar31 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  uVar32 = (*puVar25 ^ uVar38) << (((byte)uVar18 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar5 + -0x660) = uVar32 ^ uVar28;
  uVar32 = *(ulonglong *)(lVar5 - (uVar21 ^ 0x30fe08fc)) ^ uVar29 | uVar32;
  uVar38 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar21 = (ulonglong)DAT_1826707f0;
  *puVar2 = uVar32 ^ uVar31;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x7c28b1af)) =
       (*(ulonglong *)(lVar5 - (uVar21 ^ 0x8fd5d1f7)) ^ uVar23) - uVar32 ^ uVar38;
  uVar32 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar5 + -0x588) =
       *(ulonglong *)(lVar5 + -0x400) ^ uVar32 ^ uVar31 ^ uVar30 ^ *puVar2;
  uVar21 = CONCAT44(uVar8,DAT_1826707e0);
  *(ulonglong *)(lVar5 - (uVar33 ^ 0x44854419)) =
       (*(ulonglong *)(lVar5 - (uVar36 ^ 0x798549e1)) ^ uVar32) >> (((byte)uVar12 ^ 0xb4) & 0x3f) ^
       uVar22;
  uVar13 = DAT_182670890;
  *(ulonglong *)(lVar5 + -0xce0) =
       uVar21 ^ 0x1ff93b4cf262e921 | *(ulonglong *)(lVar5 + -0x588) ^ uVar32;
  uVar21 = (*(ulonglong *)(lVar5 + -0x588) ^ uVar32) << ((local_100 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar5 + -0x220) = uVar21 ^ uVar34;
  uVar21 = uVar21 | *(ulonglong *)(lVar5 + -0xc18) ^ uVar22;
  uVar18 = DAT_1826707e8 ^ 0x8583021;
  *(ulonglong *)(lVar5 + -0x660) = uVar21 ^ CONCAT44(uVar13,uVar13);
  *(uint *)(lVar5 + -0x140) = uVar18 | 0xe7854bcc;
  *puVar3 = (*(ulonglong *)(lVar5 - (uVar19 ^ 0x600a0cb0)) ^ uVar30) - uVar21 ^
            CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *puVar2 = uVar37 ^ *puVar1 ^ *puVar4 ^ uVar38 ^ uVar28;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar15;
  return;
}



############ FUN_ 180d07bc0 size=5017 ############

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

void FUN_180d07bc0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  ulonglong *puVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  
  uVar6 = DAT_1826707dc;
  lVar3 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707dc;
  uVar17 = (DAT_1826707dc << 0x10 | DAT_1826707dc & 0xff00) << 8 | DAT_1826707dc >> 8 & 0xff00 |
           DAT_1826707dc >> 0x18;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670bec);
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670bec) ^ DAT_1826707dc;
  uVar38 = (ulonglong)uVar17;
  puVar24 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707dc ^ 0x5ffb77a0));
  uVar28 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar32 = CONCAT44(DAT_182670a10,DAT_182670a10);
  uVar20 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar22 = (CONCAT44(DAT_182670850,DAT_182670850) ^ *(ulonglong *)(DAT_1826707a0 + -0x660)) -
           (*puVar24 ^ uVar32);
  uVar34 = CONCAT44(DAT_18267099c,DAT_18267099c);
  DAT_1826707d8 = uVar17;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar22 ^ uVar20;
  uVar9 = DAT_182670b0c;
  uVar19 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar28 = uVar28 ^ uVar19 ^ uVar34 ^ *(ulonglong *)(lVar3 + -0x5c0) ^
           *(ulonglong *)(lVar3 + -0x400);
  *(ulonglong *)(lVar3 + -0xce0) = uVar28;
  bVar15 = (byte)uVar6;
  uVar25 = (uVar28 ^ uVar34) >> ((bVar15 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar3 + -0x420) = uVar25 ^ CONCAT44(uVar9,uVar9);
  bVar29 = (byte)(uVar6 >> 0x18);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar22 << ((bVar29 ^ 0x67) & 0x3f);
  lVar3 = DAT_1826707a0;
  uVar22 = (uVar28 ^ uVar34) << ((bVar15 ^ 0xbf) & 0x3f);
  uVar21 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar22 ^ uVar21;
  uVar9 = DAT_182670928;
  lVar4 = DAT_1826707a0;
  puVar1 = (ulonglong *)(lVar3 + -0x6f0);
  *puVar1 = (CONCAT44(uVar6,uVar6) ^ 0xfac8506a2cdbb388) >> ((bVar15 ^ 0x8f) & 0x3f);
  lVar3 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xb87bf97f)) = (uVar22 | uVar25) ^ uVar28;
  uVar9 = DAT_182670a5c;
  uVar22 = *(ulonglong *)(lVar4 + -0x588);
  uVar35 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar4 + -0x7d8) =
       (uVar19 ^ *(ulonglong *)(lVar4 + -0x5c0)) - (*(ulonglong *)(lVar4 + -0x220) ^ uVar28) ^
       uVar35;
  uVar12 = DAT_182670ab8;
  uVar26 = CONCAT44(uVar9,uVar9);
  uVar25 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar19 = *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x5ffb7998)) ^ uVar26 ^ uVar28 ^ uVar22 ^
           uVar20;
  *(ulonglong *)(lVar4 + -0xd88) = uVar19;
  uVar28 = (uVar19 ^ uVar26) >> ((bVar15 ^ 0xb6) & 0x3f);
  uVar26 = (uVar26 ^ uVar19) << 0x32;
  *(ulonglong *)(lVar3 + -0x438) = uVar28 ^ uVar25;
  uVar19 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar3 + -0x660) = uVar26 ^ CONCAT44(uVar12,uVar12);
  uVar5 = DAT_182670a3c;
  *(ulonglong *)(lVar3 + -0x400) = (uVar28 | uVar26) ^ uVar19;
  uVar7 = DAT_1826707c4;
  uVar28 = CONCAT44(uVar5,uVar5);
  puVar16 = (ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xb87bfde7));
  *puVar16 = (uVar22 ^ uVar20) - (CONCAT44(uVar17,uVar6) ^ 0xdd8e574427119a33) ^ uVar28;
  uVar8 = DAT_1826707e0;
  *(ulonglong *)(lVar3 + -0xce0) = ((ulonglong)DAT_1826707e0 ^ 0xbd000000) >> 0x18;
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0x8c020c44));
  uVar30 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xb08b410e)) =
       (uVar28 ^ *puVar16) - (*puVar23 ^ uVar19) ^ uVar30;
  uVar25 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x5ffb7f98)) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x400)) - (CONCAT44(uVar7,uVar6) ^ 0x63d85c443b8969a) ^
       uVar25;
  uVar5 = DAT_1826707a8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xfffb7e3f)) =
       (CONCAT44(DAT_1826707a8,DAT_1826707d4) ^ 0xf2a7157f28c31842) -
       (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar21);
  uVar12 = DAT_182670a30;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  uVar22 = uVar27 ^ uVar35 ^ *puVar24 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0x7d8);
  *(ulonglong *)(lVar3 + -0x220) = uVar22;
  uVar9 = DAT_1826709c0;
  uVar19 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xd88) = (uVar22 ^ uVar27) >> ((bVar29 ^ 0x4f) & 0x3f) ^ uVar19;
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar21 = (ulonglong)DAT_182670a78;
  uVar26 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xb08b43c6)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xb08b45de)) ^ uVar27) <<
       (((byte)uVar8 ^ 0xcf) & 0x3f) ^ uVar22;
  uVar8 = DAT_1826707e0;
  uVar19 = *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x7eda2c82)) ^ uVar22 |
           uVar19 ^ *(ulonglong *)(lVar4 + -0xd88);
  uVar22 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar20 = CONCAT44(uVar17,DAT_1826707e0);
  *(ulonglong *)(lVar4 + -0x660) = uVar19 ^ uVar26;
  uVar12 = DAT_1826709fc;
  *(ulonglong *)(lVar4 + -0x588) = uVar22 ^ **(ulonglong **)(lVar4 + -0x4a0);
  uVar9 = DAT_182670810;
  uVar22 = (uVar35 ^ *(ulonglong *)(lVar4 + -0x7d8)) - (uVar20 ^ 0xa3ea5d63d91eb31e);
  *(ulonglong *)(lVar4 + -0xce0) = uVar22 ^ CONCAT44(uVar12,uVar12);
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xfffb7d47)) = uVar22 - uVar19 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x400) = (*(ulonglong *)(lVar4 + -0x660) >> 0x20 ^ uVar21) >> 0x13;
  uVar9 = DAT_182670908;
  uVar20 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar22 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xb08b419e)) ^ uVar26) +
           (CONCAT44(uVar7,uVar6) ^ 0x119951ed7067beb6) ^ uVar20;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar22;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar19 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0x5ffb7e78)) = uVar21 ^ uVar22 ^ uVar20 ^ uVar30 ^ *puVar1;
  uVar9 = DAT_182670864;
  uVar35 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 - (uVar19 ^ 0x4cc5c9c3)) ^ uVar21) >> ((bVar29 ^ 0x7f) & 0x3f) ^ uVar35
  ;
  uVar5 = DAT_1826707b8;
  uVar19 = CONCAT44(uVar9,uVar9);
  puVar16 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0x719ad169));
  *(ulonglong *)(lVar4 + -0x220) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0x5c0)) << (((byte)uVar8 ^ 0xdf) & 0x3f) ^ uVar19;
  *puVar16 = *(ulonglong *)(lVar4 + -0x420) ^ uVar25 ^ 0x1dab255c3bf5f424;
  uVar9 = DAT_1826709f8;
  uVar22 = *puVar1;
  uVar21 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar19 = *(ulonglong *)(lVar4 + -0x220) ^ uVar19 | uVar35 ^ *(ulonglong *)(lVar4 + -0xc18);
  *(ulonglong *)(lVar4 + -0x438) = uVar19 ^ uVar21;
  uVar6 = DAT_182670af0;
  uVar26 = CONCAT44(uVar9,uVar9);
  uVar20 = (ulonglong)DAT_182670af0;
  *(uint *)(lVar4 + -0xaf0) =
       *(uint *)(lVar4 + -0x814) >> ((byte)*(undefined4 *)(lVar4 + -0x7e4) & 0x1f);
  uVar9 = DAT_182670964;
  *(ulonglong *)(lVar4 + -0x588) = (uVar30 ^ uVar22) - uVar19 ^ uVar26;
  uVar12 = DAT_182670a48;
  lVar3 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar6,uVar6);
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar25 = uVar30 ^ *(ulonglong *)(lVar4 + -0x6b8) ^ *(ulonglong *)(lVar4 + -0x420) ^ uVar33 ^
           uVar25;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar25;
  uVar22 = *(ulonglong *)(lVar3 + -0xc18);
  uVar20 = uVar25 >> 0x20 ^ uVar32 ^ uVar20;
  uVar19 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar4 + -0xce0) = uVar20;
  uVar9 = DAT_1826707d0;
  uVar36 = CONCAT44(DAT_1826707d0,uVar5);
  uVar19 = (*(ulonglong *)(lVar3 - (uVar19 ^ 0xb08fcc27)) ^ uVar30) << (((byte)uVar5 ^ 0x21) & 0x3f)
  ;
  *(ulonglong *)(lVar3 + -0x400) = uVar19 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670ac8;
  *(ulonglong *)(lVar3 + -0x660) = (uVar35 ^ uVar22) + 0x34fdde70c6d45c6a;
  uVar5 = DAT_1826707ac;
  uVar37 = (ulonglong)DAT_18267098c;
  uVar25 = CONCAT44(uVar12,uVar12);
  uVar35 = (ulonglong)DAT_1826707ac;
  uVar31 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x5ffb7f70)) = (uVar19 | uVar32 ^ uVar20) ^ uVar25;
  uVar6 = DAT_1826707f0;
  *(ulonglong *)(lVar3 + -0x5c0) =
       (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar33) - (uVar25 ^ *(ulonglong *)(lVar3 + -0x4c8)) ^
       uVar31;
  uVar22 = (ulonglong)DAT_1826709e4;
  uVar19 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b0 ^ 0x4cc5c18b)) =
       (CONCAT44(uVar6,uVar6) ^ 0x19249904978e7df6) >> (((byte)uVar5 ^ 0x52) & 0x3f);
  uVar20 = uVar19 ^ uVar25 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x4c8) ^
           *(ulonglong *)(lVar3 + -0x588);
  *puVar1 = (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar33) << 0x39;
  uVar12 = DAT_1826708c4;
  *(ulonglong *)(lVar3 + -0x220) = uVar20;
  uVar13 = DAT_182670948;
  lVar4 = DAT_1826707a0;
  uVar25 = (uVar20 >> 0x20 ^ uVar22) >> 0x1a;
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x420) = uVar25 ^ uVar27;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x7d8) = (uVar20 ^ uVar19) << (((byte)DAT_1826707e4 ^ 4) & 0x3f) ^ uVar22;
  uVar22 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b4 ^ 0x8c020f9c)) ^ uVar22 | uVar25) ^
           uVar27;
  uVar19 = CONCAT44(DAT_1826707bc,DAT_1826707bc);
  *(ulonglong *)(lVar4 + -0xc18) = uVar22;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0x7eda2eda)) =
       uVar19 ^ uVar22 ^ uVar27 ^ 0x1c1a1a9f187395c1;
  uVar8 = DAT_182670a18;
  uVar19 = (ulonglong)DAT_182670a18;
  uVar20 = CONCAT44(DAT_182670a18,DAT_182670a18);
  uVar30 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(lVar4 + -0xce0) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x588)) - (uVar27 ^ *(ulonglong *)(lVar4 + -0xc18)) ^
       uVar30;
  uVar22 = *(ulonglong *)(lVar4 - (uVar38 ^ 0xb87bff67)) ^ uVar20 ^ uVar31 ^ uVar21 ^
           *(ulonglong *)(lVar4 + -0x5c0);
  uVar25 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar4 + -0x400) = uVar22;
  uVar6 = DAT_1826707f0;
  puVar24 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x44c1458a));
  *puVar24 = ((ulonglong)(uVar8 >> 0x16) | uVar19 << 10) ^ uVar22 >> 0x16 ^ uVar25;
  uVar12 = DAT_1826709cc;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (CONCAT44(uVar9,DAT_1826707c4) ^ 0xf1fc82688760b823) -
       (CONCAT44(DAT_1826707e4,uVar6) ^ 0x9a3899c081231f09);
  uVar6 = DAT_1826707d4;
  uVar19 = CONCAT44(uVar12,uVar12);
  uVar22 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xba28dcc6)) =
       (*(ulonglong *)(lVar4 - (uVar38 ^ 0xb87bff5f)) ^ uVar20) << 0x2a ^ uVar19;
  uVar20 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x719ada11)) =
       (uVar19 ^ *(ulonglong *)(lVar4 + -0x6b8) | uVar25 ^ *(ulonglong *)(lVar4 + -0xd88)) ^ uVar20;
  uVar22 = *puVar1;
  uVar19 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(lVar4 + -0x220) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x5c0)) - (uVar20 ^ uVar22) ^ uVar19;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0xb3b9700c)) =
       uVar20 ^ uVar30 ^ uVar31 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0xce0);
  uVar20 = (*(ulonglong *)(lVar4 + -0x7d8) >> 0x20 ^ uVar37) >> 0xe;
  *(ulonglong *)(lVar4 + -0x420) = uVar20 ^ CONCAT44(DAT_182670808,DAT_182670808);
  uVar9 = DAT_182670940;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 + -0x4f8);
  uVar12 = DAT_1826709a0;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x660) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x7d8)) << (((byte)DAT_1826707cc ^ 0x13) & 0x3f) ^ uVar22;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xf7fb7e77)) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xba28dc1e)) ^ uVar22 | uVar20) ^ uVar32;
  uVar25 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar4 + -0x438) =
       (uVar30 ^ *(ulonglong *)(lVar4 + -0xce0)) - (uVar32 ^ *(ulonglong *)(lVar4 + -0x588)) ^
       uVar25;
  uVar11 = DAT_1826707f4;
  *(uint *)(lVar4 + -0xcec) = (DAT_1826707f4 ^ 0xc360c121) + 0x5319bcf9;
  uVar5 = DAT_1826707e0;
  lVar3 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar22 = uVar21 ^ *(ulonglong *)(lVar4 + -0x220) ^ uVar19 ^ uVar27 ^
           *(ulonglong *)(lVar4 + -0xc18);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar22;
  uVar20 = (ulonglong)DAT_1826707e8;
  bVar15 = (byte)DAT_1826707e8;
  uVar27 = CONCAT44(DAT_1826707e8,uVar5);
  uVar26 = CONCAT44(DAT_182670a24,DAT_182670a24);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e8 ^ 0x1195979b)) =
       (uVar22 ^ uVar21) >> (((byte)uVar5 ^ 0xf3) & 0x3f) ^ uVar26;
  uVar9 = DAT_182670934;
  uVar22 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x4c8)) << ((bVar15 ^ 0xaf) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar22 ^ CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar12 = DAT_182670a98;
  uVar21 = CONCAT44(uVar9,uVar9);
  *puVar24 = (uVar22 | uVar26 ^ *(ulonglong *)(lVar3 + -0x400)) ^ uVar21;
  uVar9 = DAT_18267093c;
  uVar10 = DAT_1826707ec;
  uVar22 = (ulonglong)DAT_1826707ec;
  uVar38 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x5c0) =
       (*(ulonglong *)(lVar3 + -0x220) ^ uVar19) - (uVar21 ^ *(ulonglong *)(lVar3 + -0xd88)) ^
       uVar38;
  uVar5 = DAT_1826707c0;
  uVar26 = CONCAT44(uVar9,uVar9);
  puVar24 = (ulonglong *)(lVar3 - (uVar22 ^ 0x6c400adc));
  *puVar24 = uVar26 ^ uVar21 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x438) ^
             *(ulonglong *)(lVar3 + -0xd88);
  uVar26 = uVar26 ^ *puVar1;
  uVar19 = CONCAT44(DAT_182670918,DAT_182670918);
  *(ulonglong *)(lVar3 + -0x7d8) = uVar26 >> (((byte)uVar5 ^ 0xf8) & 0x3f) ^ uVar19;
  uVar5 = DAT_1826707a8;
  *(ulonglong *)(lVar3 + -0x420) = (CONCAT44(uVar11,uVar17) ^ 0xe2ffa5ce66c9cecd) + uVar26;
  uVar22 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x5ffb7dd8)) = uVar26 << (((byte)uVar5 ^ 0x9d) & 0x3f) ^ uVar22;
  uVar9 = DAT_182670a94;
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 - (uVar18 ^ 0x5ffb7f40));
  uVar8 = DAT_1826707c8;
  uVar6 = DAT_1826707bc;
  uVar5 = DAT_1826707b0;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar30 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x84480e2)) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x5ffb7c60)) ^ uVar19 |
       uVar22 ^ *(ulonglong *)(lVar3 + -0x660)) ^ uVar21;
  uVar12 = DAT_1826708e8;
  lVar4 = DAT_1826707a0;
  uVar18 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar22 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0x8c020c7c)) ^ uVar25) -
           (CONCAT44(uVar5,uVar6) ^ 0x73da1afdba17ebf6);
  *(ulonglong *)(lVar3 + -0xc18) = uVar22 ^ uVar18;
  uVar9 = DAT_182670a80;
  uVar35 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar22 - (uVar21 ^ *(ulonglong *)(lVar4 + -0xce0)) ^ uVar35;
  uVar25 = CONCAT44(uVar9,uVar9);
  *puVar23 = (uVar21 ^ *(ulonglong *)(lVar4 + -0xce0)) - (uVar36 ^ 0x1237c8b838fd3d1e) ^ uVar25;
  uVar26 = (ulonglong)DAT_1826707cc;
  uVar19 = CONCAT44(uVar10,DAT_1826707cc);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x11959523)) =
       uVar18 ^ *(ulonglong *)(lVar4 + -0xc18) | 0xcf13f665a443852;
  lVar3 = DAT_1826707a0;
  bVar15 = (byte)DAT_1826707e0;
  uVar21 = *(ulonglong *)(lVar4 - (uVar30 ^ 0xb08fce3f)) ^ uVar38 ^ uVar32 ^ uVar28 ^
           *(ulonglong *)(DAT_1826707a0 + -0x588);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar21;
  uVar9 = DAT_182670a7c;
  uVar22 = (ulonglong)DAT_182670a3c;
  *(ulonglong *)(lVar3 + -0xd88) = (uVar19 ^ 0xdd4a6989b2229496) >> ((bVar15 ^ 0xcb) & 0x3f);
  uVar5 = DAT_1826707b0;
  uVar19 = (ulonglong)DAT_1826707b0;
  uVar20 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x420) = (uVar21 >> 0x20 ^ uVar22) >> 1 ^ uVar20;
  uVar18 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *puVar24 = (uVar21 ^ uVar28) << 0x1f ^ uVar18;
  uVar9 = DAT_182670838;
  uVar22 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar3 + -0x7d8) =
       (CONCAT44(DAT_1826707e4,uVar5) ^ 0xeb1e1954076919d4) <<
       (((byte)uVar12 ^ *(byte *)(lVar3 + -0x4c8)) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0xf7fb7d9f)) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x44854c21)) ^ uVar20 | uVar18 ^ *puVar1) ^ uVar21;
  uVar22 = (ulonglong)DAT_1826707f0;
  uVar18 = (uVar38 ^ *(ulonglong *)(lVar4 + -0x5c0)) - (uVar27 ^ 0xa72351a1e3b896dd);
  uVar28 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar4 + -0x438) = uVar18 ^ CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar4 + -0xce0) =
       uVar18 - (*(ulonglong *)(lVar4 - (uVar22 ^ 0x50dc9b6)) ^ uVar21) ^ uVar28;
  uVar10 = DAT_1826708d0;
  uVar6 = DAT_1826707c0;
  uVar5 = DAT_1826707bc;
  uVar22 = (ulonglong)DAT_1826708d0;
  uVar20 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x44854419)) =
       (CONCAT44(uVar7,uVar8) ^ 0xea8050c3345042d9) + (uVar21 ^ *(ulonglong *)(lVar4 + -0x660)) ^
       uVar34;
  uVar9 = DAT_1826709d8;
  uVar34 = *(ulonglong *)(lVar4 - (uVar19 ^ 0x4cc5c01b)) ^ CONCAT44(uVar10,uVar10) ^ uVar35 ^
           *(ulonglong *)(lVar4 + -0x4c8) ^ uVar34;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar34;
  DAT_1826707e4 = DAT_1826707bc + DAT_1826707c0;
  uVar19 = (ulonglong)DAT_1826707e4;
  uVar18 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x719ad969)) =
       (uVar22 << 0x1b | (ulonglong)(uVar10 >> 5)) ^ uVar34 >> 5 ^ uVar18;
  uVar22 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  uVar34 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar4 + -0xd88) =
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar4 + -0x6b8)) << (((byte)uVar5 ^ 0xef) & 0x3f) ^
       uVar22;
  uVar18 = *(ulonglong *)(lVar4 - (uVar20 ^ 0xb3b9725c)) ^ uVar18 | *puVar16 ^ uVar22;
  uVar22 = CONCAT44(DAT_18267085c,DAT_18267085c);
  *(ulonglong *)(lVar4 + -0x220) = uVar18 ^ uVar34;
  uVar12 = _DAT_1826709e0;
  *(ulonglong *)(lVar4 + -0x7d8) = (uVar35 ^ *(ulonglong *)(lVar4 + -0x4c8)) - uVar18 ^ uVar22;
  uVar9 = DAT_182670874;
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x420) =
       *(ulonglong *)(lVar4 - (uVar19 ^ 0x255450b5)) ^ uVar28 ^ uVar25 ^
       *(ulonglong *)(lVar4 + -0xce0) ^ uVar22;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar20 ^ 0xb3b973f4)) ^ uVar22) >>
            (((byte)uVar6 ^ 0xc4) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar2 ^ uVar17;
  return;
}



############ FUN_ 180d02640 size=5899 ############

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

void FUN_180d02640(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  undefined8 *puVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  byte bVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong *puVar46;
  ulonglong uVar47;
  byte bVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  byte bVar52;
  uint uVar53;
  ulonglong *puVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong *puVar57;
  byte local_res18;
  ulonglong uVar45;
  
  uVar16 = _DAT_182670ad4;
  uVar12 = DAT_182670838;
  uVar15 = DAT_1826707f4;
  uVar14 = DAT_1826707f0;
  uVar13 = DAT_1826707ec;
  uVar11 = DAT_1826707e0;
  uVar10 = DAT_1826707cc;
  uVar9 = DAT_1826707b8;
  uVar8 = DAT_1826707b4;
  uVar55 = (ulonglong)DAT_1826707e0;
  uVar30 = (ulonglong)DAT_1826707f0;
  uVar37 = (ulonglong)DAT_1826707f4;
  uVar47 = (ulonglong)DAT_1826707b4;
  uVar50 = (ulonglong)DAT_1826707b8;
  uVar32 = (ulonglong)DAT_1826707ec;
  DAT_1826707c0 = DAT_1826707e0 + DAT_1826707f0;
  uVar41 = (ulonglong)DAT_1826707cc;
  uVar53 = DAT_1826707f4 | DAT_1826707b8;
  uVar31 = DAT_1826707b4 | DAT_1826707ec;
  uVar21 = ~DAT_1826707cc;
  uVar28 = (ulonglong)uVar21;
  DAT_1826707e4 =
       (DAT_1826707c4 << 0x10 | DAT_1826707c4 & 0xff00) << 8 | DAT_1826707c4 >> 8 & 0xff00 |
       DAT_1826707c4 >> 0x18;
  uVar42 = *(uint *)(&DAT_18260f758 + DAT_182670be0) ^ DAT_1826707e4;
  uVar19 = *(uint *)(&DAT_18260f760 + DAT_182670be0) ^ DAT_1826707c4;
  uVar38 = *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xb08fcf37)) >> 0x17 ^
           ((ulonglong)(DAT_182670838 >> 0x17) | (ulonglong)DAT_182670838 << 9);
  DAT_1826707b0 = uVar53;
  DAT_1826707c8 = uVar21;
  DAT_1826707d8 = uVar31;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar38 ^ CONCAT44(DAT_182670a00,DAT_182670a00);
  lVar6 = DAT_1826707a0;
  bVar48 = (byte)uVar13;
  uVar23 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) <<
           ((bVar48 ^ 5) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar23 ^ CONCAT44(uVar16,uVar16);
  puVar1 = (ulonglong *)(lVar6 + -0xa18);
  uVar36 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar24 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar6 + -0x5c0) = (uVar38 | uVar23) ^ uVar36;
  uVar17 = DAT_1826708d0;
  uVar16 = DAT_182670800;
  *puVar1 = **(ulonglong **)(lVar6 + -0x180) ^ uVar24;
  uVar18 = DAT_182670b0c;
  lVar6 = DAT_1826707a0;
  uVar49 = CONCAT44(uVar17,uVar17);
  uVar38 = (ulonglong)uVar31;
  puVar33 = (ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0xec420a9c));
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x658);
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x220);
  *puVar33 = (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(DAT_1826707a0 + -0x9c8)) -
             (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0x8c020d84)) ^ uVar36) ^ uVar49;
  uVar34 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar44 = CONCAT44(DAT_182670af0,DAT_182670af0);
  bVar52 = (byte)uVar53;
  *(ulonglong *)(lVar6 - (uVar30 ^ 0xc5e5ef55)) =
       CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar6 + -0x588) ^ *puVar3 ^ uVar44 ^ uVar34;
  uVar16 = DAT_182670888;
  uVar25 = (*puVar2 ^ uVar34) >> ((bVar52 ^ 0x2b) & 0x3f);
  *(ulonglong *)(lVar6 + -0x420) = uVar25 ^ CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar23 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0x400) = (*puVar2 ^ uVar34) << 0x18 ^ uVar23;
  puVar39 = (ulonglong *)(lVar6 - (uVar55 ^ 0xabb4f7d4));
  uVar35 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar25 = *puVar39 ^ uVar23 | uVar25;
  uVar40 = uVar25 ^ uVar35;
  *(ulonglong *)(lVar6 + -0x7d8) = uVar40;
  uVar16 = DAT_1826708d4;
  uVar12 = DAT_1826707e4;
  lVar7 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670824,DAT_182670824);
  uVar43 = uVar11 + uVar14;
  uVar45 = (ulonglong)uVar43;
  *(ulonglong *)(lVar6 + -0x998) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x44854a21)) ^ uVar44) - uVar25 ^ uVar29;
  uVar23 = (ulonglong)_DAT_1826708f8;
  uVar44 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar35 = uVar40 ^ uVar44 ^ uVar35 ^ uVar49 ^ *(ulonglong *)(lVar6 + -0x6f0);
  uVar25 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0xd88) = uVar35;
  uVar16 = DAT_1826708b0;
  puVar26 = (ulonglong *)(lVar6 - (uVar28 ^ 0xb08fcd9f));
  *puVar26 = (uVar35 >> 0x20 ^ uVar23) >> 0x14 ^ uVar25;
  uVar23 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0x67d549f3)) =
       (uVar44 ^ *(ulonglong *)(lVar6 + -0xd88)) << (((byte)uVar43 ^ 0xed) & 0x3f) ^ uVar23;
  uVar51 = CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar23 = *(ulonglong *)(lVar6 + -0xce0) ^ uVar23 | *(ulonglong *)(lVar6 + -0x660) ^ uVar25;
  puVar4 = (ulonglong *)(lVar6 + -0x438);
  *puVar4 = uVar23 ^ uVar51;
  uVar16 = DAT_182670ac0;
  uVar35 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar25 = (ulonglong)DAT_18267095c;
  uVar44 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar7 + -0x4c8) = (uVar49 ^ *(ulonglong *)(lVar7 + -0x6f0)) - uVar23 ^ uVar35;
  uVar40 = CONCAT44(uVar16,uVar16);
  uVar23 = *(ulonglong *)(lVar7 + -0x5c0) ^ uVar44 ^ uVar29 ^ uVar36 ^
           *(ulonglong *)(lVar7 + -0x998);
  *(ulonglong *)(lVar7 + -0xc18) = uVar23;
  bVar20 = (byte)uVar10;
  *(ulonglong *)(lVar7 - (uVar37 ^ 0x8448aba)) = (uVar23 >> 0x20 ^ uVar25) >> 0x19 ^ uVar40;
  uVar23 = (*(ulonglong *)(lVar7 + -0xc18) ^ uVar44) << ((bVar52 ^ 4) & 0x3f);
  *puVar1 = uVar23 ^ CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(ulonglong *)(lVar7 + -0x9c8) =
       CONCAT44(uVar11,uVar43) ^ uVar40 ^ *(ulonglong *)(lVar7 + -0x6b8) ^ 0x879ba99e76e8e1c9;
  uVar25 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar7 + -0x588) = (uVar23 | uVar40 ^ *(ulonglong *)(lVar7 + -0x6b8)) ^ uVar25;
  *puVar2 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x44854cc9)) ^ uVar35) <<
            ((bVar20 ^ 0xd) & 0x3f);
  uVar16 = DAT_182670a38;
  uVar10 = DAT_1826707c4;
  puVar27 = (ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0x67d5409b));
  uVar49 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  uVar29 = (*(ulonglong *)(lVar7 - (uVar55 ^ 0xabb4fa4c)) ^ uVar29) - (uVar25 ^ *puVar27) ^ uVar49;
  *(ulonglong *)(lVar7 + -0x400) = uVar29;
  uVar40 = CONCAT44(uVar16,uVar16);
  puVar22 = (ulonglong *)(lVar7 - (uVar32 ^ 0x6c4009a4));
  uVar44 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar23 = *(ulonglong *)(lVar7 + -0x4c8) ^ uVar40 ^ uVar25 ^ *puVar22 ^ uVar35;
  *(ulonglong *)(lVar7 + -0x420) = uVar23;
  uVar36 = (uVar23 ^ uVar40) >> (((byte)uVar31 ^ 0x62) & 0x3f);
  *puVar3 = uVar36 ^ uVar44;
  lVar6 = DAT_1826707a0;
  uVar25 = (uVar23 ^ uVar40) << (((byte)uVar12 ^ 0x21) & 0x3f);
  uVar40 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar25 ^ CONCAT44(DAT_1826709e4,DAT_1826709e4);
  uVar44 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar25 = uVar25 | uVar36;
  *(ulonglong *)(lVar6 + -0xd88) = uVar25 ^ uVar40;
  uVar23 = (*(ulonglong *)(lVar6 + -0x4c8) ^ uVar35) -
           (CONCAT44(uVar10,uVar21) ^ 0x4da83c8b60ecf11b);
  *(ulonglong *)(lVar6 + -0xce0) = uVar23 ^ uVar44;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 + -0x660) = uVar29 ^ CONCAT44(uVar12,uVar14) ^ uVar49 ^ 0xe2a7d31a0dd43178;
  uVar44 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar56 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(lVar7 + -0x6f0) =
       uVar23 - (*(ulonglong *)(lVar7 - (uVar32 ^ 0x6c4001a4)) ^ uVar40) ^ uVar44;
  uVar16 = DAT_182670ac8;
  *(ulonglong *)(lVar7 + -0x5c0) = uVar25 - (CONCAT44(uVar9,uVar14) ^ 0x7f3171277412b4af) ^ uVar56;
  uVar25 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 - (uVar45 ^ 0x719ad0f9)) = uVar25 ^ uVar29 ^ uVar49 ^ uVar51 ^ *puVar4;
  uVar35 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar7 - (uVar50 ^ 0x448541c9)) =
       (*(ulonglong *)(lVar7 - (uVar50 ^ 0x44854419)) ^ uVar25) >> ((bVar20 ^ 0x10) & 0x3f) ^ uVar35
  ;
  uVar23 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707c4 ^ 0x1345d3df)) =
       (*(ulonglong *)(lVar7 + -0xc18) ^ uVar25) << (((byte)uVar15 ^ 0x32) & 0x3f) ^ uVar23;
  uVar29 = CONCAT44(DAT_182670830,DAT_182670830);
  puVar46 = (ulonglong *)(lVar7 - (uVar32 ^ 0x6c400634));
  uVar25 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *puVar46 = (*(ulonglong *)(lVar7 - (uVar41 ^ 0x4f703dc8)) ^ uVar35 |
             *(ulonglong *)(lVar7 - (uVar32 ^ 0x6c400a94)) ^ uVar23) ^ uVar29;
  *puVar2 = (*(ulonglong *)(lVar7 + -0x400) ^ uVar49) -
            (CONCAT44(uVar12,uVar14) ^ 0xbc472c86e155da92) ^ uVar25;
  uVar35 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar7 + -0x998) =
       (*(ulonglong *)(lVar7 - (uVar55 ^ 0xabb4f58c)) ^ uVar25) -
       (*(ulonglong *)(lVar7 - (uVar38 ^ 0xec420674)) ^ uVar29) ^ uVar35;
  uVar16 = DAT_182670920;
  *(undefined1 *)(lVar7 + -0x6c9) = **(undefined1 **)(lVar7 + -0xc28);
  lVar6 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar16,uVar16);
  uVar23 = (ulonglong)DAT_1826709d8;
  uVar25 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (CONCAT44(uVar43,uVar53) ^ 0x3447430fc0c1185f) + (*puVar1 ^ uVar29) ^ uVar40;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0x719ad8c1)) =
       *(ulonglong *)(lVar6 - (uVar30 ^ 0xc5e5effd)) ^ uVar25 ^ uVar40 ^ uVar44 ^ *puVar22;
  uVar36 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *puVar3 = *(ulonglong *)(lVar7 + -0x420) >> 0x20 ^ uVar36 ^ uVar23;
  uVar17 = DAT_182670a50;
  uVar23 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar7 + -0x7d8) =
       (*(ulonglong *)(lVar7 - (uVar28 ^ 0xb08fcfdf)) ^ uVar25) << 0x20 ^ uVar23;
  uVar16 = DAT_182670a2c;
  uVar29 = CONCAT44(uVar17,uVar17);
  uVar23 = *(ulonglong *)(lVar7 - (uVar30 ^ 0xc5e5eed5)) ^ uVar23 |
           *(ulonglong *)(lVar7 - (uVar37 ^ 0x8448e22)) ^ uVar36;
  *(ulonglong *)(lVar7 + -0x4c8) = uVar23 ^ uVar29;
  uVar49 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (uVar44 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0)) - uVar23 ^ uVar49;
  lVar6 = DAT_1826707a0;
  puVar22 = (ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xc5e5e5ed));
  *puVar22 = *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x4f703d98)) ^
             *(ulonglong *)(DAT_1826707a0 + -0x5c0) ^ uVar35 ^ uVar56 ^ uVar34;
  uVar16 = DAT_182670aa4;
  uVar23 = *(ulonglong *)(lVar6 + -0x588);
  uVar36 = (*(ulonglong *)(lVar6 + -0xce0) ^ uVar34) >> (((byte)uVar11 ^ 0xf4) & 0x3f);
  uVar25 = (*(ulonglong *)(lVar6 + -0xce0) ^ uVar34) << 0x20;
  *(ulonglong *)(lVar6 + -0xd88) = uVar36 ^ CONCAT44(DAT_182670918,DAT_182670918);
  *puVar4 = uVar25 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0xc18) = CONCAT44(uVar9,uVar8) ^ 0x3a40d30e90dc1970;
  uVar44 = CONCAT44(DAT_18267085c,DAT_18267085c);
  *(ulonglong *)(lVar6 + -0x9c8) = (uVar25 | uVar36) ^ uVar44;
  *(ulonglong *)(lVar6 + -0x6b8) =
       (CONCAT44(uVar15,uVar21) ^ 0xb90e4aa85e6aab38) + (uVar40 ^ uVar23);
  uVar10 = DAT_1826707c4;
  lVar7 = DAT_1826707a0;
  puVar57 = (ulonglong *)(lVar6 - ((ulonglong)uVar53 ^ 0x4cc5c59b));
  uVar40 = CONCAT44(DAT_182670b04,DAT_182670b04);
  uVar25 = (ulonglong)DAT_182670914;
  uVar34 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0x1345d167)) =
       (*puVar57 ^ uVar35) - (*(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xc5e5e0c5)) ^ uVar44) ^
       uVar40;
  uVar23 = *(ulonglong *)(lVar7 + -0x660) ^ uVar34 ^ uVar44 ^ uVar49 ^
           *(ulonglong *)(lVar7 + -0x9c8);
  *puVar2 = uVar23;
  *puVar1 = (uVar23 >> 0x20 ^ uVar25) >> 0x1a ^ uVar34;
  uVar23 = CONCAT44(DAT_182670804,DAT_182670804);
  local_res18 = (byte)uVar21;
  *(ulonglong *)(lVar7 - (uVar30 ^ 0xc5e5ed2d)) =
       (*(ulonglong *)(lVar7 - (uVar47 ^ 0x8c020e1c)) ^ uVar34) << ((local_res18 ^ 0xf9) & 0x3f) ^
       uVar23;
  uVar16 = DAT_1826708b4;
  lVar6 = DAT_1826707a0;
  puVar54 = (ulonglong *)(lVar7 - (uVar37 ^ 0x8448bda));
  *puVar54 = (*(ulonglong *)(lVar7 - (uVar32 ^ 0x6c40080c)) ^ uVar23 | uVar34 ^ *puVar1) ^ uVar24;
  uVar25 = CONCAT44(uVar16,uVar16);
  *puVar3 = (*puVar26 ^ uVar49) - (*(ulonglong *)(lVar6 + -0x7d8) ^ uVar24) ^ uVar25;
  uVar17 = DAT_182670af8;
  uVar11 = DAT_1826707e4;
  uVar35 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar29 = uVar35 ^ uVar40 ^ *(ulonglong *)(lVar6 + -0x4c8) ^ *(ulonglong *)(lVar6 + -0x400) ^
           uVar29;
  *(ulonglong *)(lVar6 + -0x6f0) = uVar29;
  uVar16 = DAT_182670af4;
  uVar37 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x5c0) = (uVar29 ^ uVar35) >> (((byte)uVar11 ^ 5) & 0x3f) ^ uVar37;
  uVar23 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - (uVar55 ^ 0xabb4ff34)) = (uVar35 ^ *puVar33) << 0x2a ^ uVar23;
  *(uint *)(lVar6 + -0x7e4) = *(uint *)(lVar6 + -0xa34) | *(uint *)(lVar6 + -0x814);
  uVar16 = DAT_182670a88;
  uVar11 = DAT_182670910;
  uVar34 = CONCAT44(DAT_182670894,DAT_182670894);
  uVar29 = (ulonglong)DAT_182670910;
  uVar23 = *(ulonglong *)(lVar6 + -0xce0) ^ uVar23 | *(ulonglong *)(lVar6 + -0x5c0) ^ uVar37;
  *(ulonglong *)(lVar6 + -0xc18) = uVar23 ^ uVar34;
  lVar6 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar16,uVar16);
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x1345d8ef)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0x8c020c44)) ^ uVar40) - uVar23 ^ uVar35;
  uVar23 = *(ulonglong *)(lVar6 - (uVar55 ^ 0xabb4ffcc)) ^
           *(ulonglong *)(lVar6 - ((ulonglong)uVar53 ^ 0x4cc5ce23)) ^ uVar36 ^ uVar34 ^ uVar25;
  *puVar4 = uVar23;
  lVar6 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0x719ad969)) = (uVar23 >> 0x20 ^ uVar29) >> 0xe ^ uVar37;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707e4 ^ 0x67d543ab)) =
       (CONCAT44(uVar9,uVar31) ^ 0x2d4f13558f6f0e08) >> ((bVar48 ^ 0x2c) & 0x3f);
  uVar23 = (uVar36 ^ *puVar4) << ((bVar52 ^ 0x11) & 0x3f);
  *(ulonglong *)(lVar6 + -0x998) = uVar23 ^ CONCAT44(DAT_18267093c,DAT_18267093c);
  uVar16 = DAT_182670a64;
  uVar23 = uVar23 | uVar37 ^ *(ulonglong *)(lVar6 + -0x588);
  *(ulonglong *)(lVar6 + -0x9c8) =
       (CONCAT44(uVar43,uVar13) ^ 0x4bb8847328cd6bdd) -
       (CONCAT44(uVar31,uVar15) ^ 0xb3f182e2dca50f57);
  uVar29 = CONCAT44(uVar16,uVar16);
  *puVar2 = uVar23 ^ uVar29;
  uVar10 = DAT_182670934;
  uVar37 = CONCAT44(DAT_182670950,DAT_182670950);
  *puVar1 = (uVar25 ^ *puVar3) - uVar23 ^ uVar37;
  uVar16 = DAT_18267096c;
  uVar23 = *(ulonglong *)(lVar6 - (uVar28 ^ 0xb08fcc27)) ^ CONCAT44(uVar10,uVar10) ^ uVar35 ^ uVar24
           ^ *(ulonglong *)(lVar6 + -0xd88);
  *(ulonglong *)(lVar6 + -0x420) = uVar23;
  uVar24 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       ((ulonglong)uVar10 << 0x14 | (ulonglong)(uVar10 >> 0xc)) ^ uVar23 >> 0xc ^ uVar24;
  uVar28 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0x8c020c8c)) =
       (uVar23 ^ CONCAT44(uVar10,uVar10)) << ((bVar20 ^ 0x34) & 0x3f) ^ uVar28;
  lVar6 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0xd88);
  uVar28 = uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8) |
           *(ulonglong *)(DAT_1826707a0 + -0x660) ^ uVar24;
  puVar5 = (undefined8 *)(DAT_1826707a0 + -0x4f8);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar28 ^ uVar25;
  *(undefined1 *)(lVar6 + -0x6c9) = *(undefined1 *)*puVar5;
  *(ulonglong *)(lVar6 + -0x5c0) = (uVar35 ^ uVar23) - uVar28 ^ uVar49;
  uVar16 = DAT_182670a74;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 + -0x350);
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707c4 ^ 0x1345d987)) =
       *(ulonglong *)(lVar6 - (uVar41 ^ 0x4f7032f0)) ^ uVar28 ^ uVar25 ^ uVar37 ^ *puVar1;
  uVar17 = DAT_182670ab0;
  uVar23 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar6 + -0x400) = (uVar28 ^ *puVar22) >> (((byte)uVar15 ^ 0x1b) & 0x3f) ^ uVar23;
  uVar18 = DAT_182670aec;
  uVar16 = DAT_182670984;
  uVar28 = (uVar28 ^ *(ulonglong *)(lVar6 + -0xce0)) << 0x27;
  *(ulonglong *)(lVar6 + -0xc18) = uVar28 ^ CONCAT44(uVar17,uVar17);
  uVar41 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xc5e5efb5)) = (uVar23 ^ *puVar39 | uVar28) ^ uVar41;
  uVar16 = DAT_18267092c;
  *puVar4 = (CONCAT44(uVar8,uVar43) ^ 0x4b27de0074c4c9c2) +
            (CONCAT44(uVar12,uVar31) ^ 0x93ec93cb7b3462d1);
  lVar6 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar16,uVar16);
  uVar23 = (*puVar46 ^ uVar37) - (CONCAT44(uVar9,uVar43) ^ 0xe171a0c30abaaa2c);
  uVar25 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar23 ^ uVar28;
  *(ulonglong *)(lVar6 + -0x588) = uVar23 - (uVar41 ^ *(ulonglong *)(lVar6 + -0x6b8)) ^ uVar25;
  *puVar57 = (*(ulonglong *)(lVar6 - (uVar47 ^ 0x8c020efc)) ^ uVar41) -
             (CONCAT44(uVar43,DAT_1826707e4) ^ 0x966c15dcb4258b6b) ^ CONCAT44(uVar18,uVar18);
  uVar16 = DAT_182670980;
  uVar41 = (ulonglong)DAT_1826707c4;
  uVar24 = CONCAT44(uVar9,DAT_1826707c4);
  uVar23 = *(ulonglong *)(lVar6 + -0x5c0) ^ uVar29 ^ uVar40 ^ uVar49 ^ *puVar2;
  *puVar3 = uVar23;
  uVar17 = DAT_182670a40;
  uVar47 = CONCAT44(uVar16,uVar16);
  *puVar54 = (uVar23 ^ uVar40) >> ((bVar52 ^ 0x22) & 0x3f) ^ uVar47;
  uVar23 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0xec42084c)) = (uVar40 ^ *puVar3) << 0x1f ^ uVar23;
  lVar6 = DAT_1826707a0;
  puVar22 = (ulonglong *)(DAT_1826707a0 + -0x9c8);
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0x420);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       CONCAT44(uVar21,uVar21) ^ 0xee52ce884f7a802 | uVar24 ^ 0x9e856cfa12a016ee;
  uVar17 = DAT_18267094c;
  uVar29 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  uVar24 = *(ulonglong *)(lVar6 - (uVar55 ^ 0xabb4f40c)) ^ uVar47 | uVar23 ^ *puVar26;
  *(ulonglong *)(lVar6 + -0xd88) = (uVar28 ^ *puVar22) + 0x48f7db363858340b;
  *(ulonglong *)(lVar6 + -0x4c8) = uVar24 ^ uVar29;
  uVar16 = DAT_18267083c;
  lVar6 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar17,uVar17);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (*(ulonglong *)(DAT_1826707a0 + -0x5c0) ^ uVar49) -
       (CONCAT44(uVar31,uVar31) ^ 0xd7f6354a5db551ce) ^ uVar28;
  *(ulonglong *)(lVar6 + -0xce0) =
       (*(ulonglong *)(lVar6 - (uVar32 ^ 0x6c400adc)) ^ uVar28) - uVar24 ^ CONCAT44(uVar16,uVar16);
  uVar28 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar6 + -0xc18) = 0x22a5868d4364476b - (uVar47 ^ uVar23);
  uVar24 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar6 - (uVar28 ^ 0x1195979b)) =
       (*(ulonglong *)(lVar6 - (uVar55 ^ 0xabb4f71c)) ^ uVar29) +
       (CONCAT44(uVar43,uVar14) ^ 0xeb908f0542f0f779) ^ uVar24;
  uVar8 = DAT_1826708ec;
  uVar29 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar23 = (ulonglong)DAT_1826708ec;
  *puVar4 = uVar29 ^ uVar24 ^ uVar25 ^ *(ulonglong *)(lVar6 + -0x400) ^ *puVar27;
  *(int *)(lVar6 + -0x68c) = *(int *)(lVar6 + -0xcec) + *(int *)(lVar6 + -0xaf0);
  uVar16 = DAT_182670a8c;
  uVar28 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x1345df7f)) =
       (uVar23 << 0x1b | (ulonglong)(uVar8 >> 5)) ^ *puVar4 >> 5 ^ uVar28;
  bVar20 = (byte)DAT_1826707d4;
  uVar23 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(lVar6 - (uVar38 ^ 0xec420ad4)) = (uVar30 ^ 0x80000000) >> 0x1c;
  uVar38 = (uVar29 ^ *puVar4) << ((bVar20 ^ 0xc4) & 0x3f);
  *puVar2 = uVar38 ^ uVar23;
  *puVar3 = (uVar28 ^ *puVar1 | uVar38) ^ CONCAT44(uVar16,uVar16);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar42;
  return;
}



############ FUN_ 180cece80 size=5587 ############

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

void FUN_180cece80(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  byte *pbVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  byte local_res18;
  byte local_e8;
  byte local_a8;
  
  uVar13 = DAT_182670a08;
  uVar4 = DAT_1826707f0;
  uVar11 = DAT_1826707e4;
  uVar6 = DAT_1826707c4;
  uVar5 = DAT_1826707b4;
  lVar1 = DAT_1826707a0;
  DAT_1826707d8 = DAT_1826707cc ^ DAT_1826707ec;
  uVar33 = (ulonglong)DAT_1826707f0;
  uVar21 = DAT_1826707b0 & 3;
  uVar24 = (ulonglong)DAT_1826707e4;
  DAT_1826707a8 = DAT_1826707e0 + DAT_1826707d4;
  uVar34 = (DAT_1826707b4 << 0x10 | DAT_1826707b4 & 0xff00) << 8 | DAT_1826707b4 >> 8 & 0xff00 |
           DAT_1826707b4 >> 0x18;
  if (uVar21 < 2) {
    uVar18 = uVar24;
    if (uVar21 == 0) {
      uVar18 = (ulonglong)DAT_1826707b0;
    }
  }
  else {
    uVar18 = (ulonglong)DAT_1826707b8;
    if (uVar21 < 3) {
      uVar18 = uVar33;
    }
  }
  DAT_1826707c0 = (uint)uVar18;
  uVar15 = *(uint *)(&DAT_18260f750 + (uVar18 ^ 0x76fde1ed) + (longlong)DAT_182670b9c) ^
           DAT_1826707b0;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670b9c) ^ DAT_1826707c4;
  uVar25 = CONCAT44(DAT_182670a34,DAT_182670a34);
  uVar17 = CONCAT44(DAT_1826707f0,DAT_1826707e4);
  DAT_1826707d0 = uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       (uVar17 ^ 0xfe5fc3f76e9eb99e) - (*(ulonglong *)(DAT_1826707a0 + -0x68) ^ uVar25);
  uVar42 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  uVar37 = CONCAT44(DAT_182670810,DAT_182670810);
  uVar41 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  puVar45 = (ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x4724c338));
  *(ulonglong *)(lVar1 + -0xd88) =
       *puVar45 ^ *(ulonglong *)(lVar1 + -0x9e0) ^ uVar41 ^ uVar37 ^ uVar42;
  uVar12 = DAT_182670804;
  uVar27 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar29 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(ulonglong *)(lVar1 + -0xac0) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x74a0e170)) ^ uVar27) +
       (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar1 + -0x9c8)) ^ uVar29;
  uVar36 = (ulonglong)DAT_1826707e0;
  uVar35 = CONCAT44(uVar12,uVar12);
  bVar20 = (byte)DAT_1826707e0;
  *(ulonglong *)(lVar1 + -0xbb0) =
       (uVar27 ^ *(ulonglong *)(lVar1 + -0xf0)) << ((bVar20 ^ 0xf7) & 0x3f) ^ uVar35;
  uVar8 = DAT_1826707d4;
  uVar21 = DAT_1826707cc;
  lVar1 = DAT_1826707a0;
  uVar22 = (ulonglong)uVar6;
  uVar32 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xe273a87d)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xcacabf4f)) ^ uVar27) >>
       (((byte)DAT_1826707a8 ^ 0x23) & 0x3f) ^ uVar32;
  uVar13 = DAT_182670aa0;
  uVar9 = DAT_1826707d8;
  uVar18 = *(ulonglong *)(lVar1 + -0xac0);
  *(ulonglong *)(lVar1 + -0x6b8) =
       (CONCAT44(DAT_1826707d8,uVar21) ^ 0xf6e70d6d2851716e) -
       (CONCAT44(uVar5,uVar4) ^ 0x7b098bbba0c4d795);
  uVar12 = DAT_182670ab0;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar32 = (uVar32 ^ *(ulonglong *)(lVar1 + -0x410) | uVar35 ^ *(ulonglong *)(lVar1 + -0xbb0)) ^
           uVar23;
  *(ulonglong *)(lVar1 + -0x3b0) = uVar32;
  uVar13 = DAT_182670a9c;
  uVar21 = DAT_1826707ec;
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar39 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  uVar32 = uVar18 ^ uVar35 ^ uVar32 ^ uVar23 ^ uVar29;
  uVar23 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar1 + -0xcf8) = uVar32;
  lVar1 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0xd2d26276)) ^ uVar39) ^ uVar30;
  uVar13 = DAT_182670ad0;
  uVar31 = CONCAT44(DAT_182670a88,DAT_182670a88);
  local_res18 = (byte)uVar6;
  uVar37 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar21 ^ 0xd2d26886)) ^ uVar37) + (uVar35 ^ uVar32) ^
           uVar31;
  *(ulonglong *)(lVar1 + -0xa18) = uVar37;
  uVar23 = (uVar35 ^ uVar32) << 5;
  *(ulonglong *)(lVar1 + -0x588) = (uVar35 ^ uVar32) >> ((local_res18 ^ 0x84) & 0x3f) ^ uVar27;
  uVar12 = DAT_182670a14;
  uVar40 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar1 + -0x998) = uVar23 ^ uVar40;
  uVar13 = DAT_182670964;
  uVar3 = DAT_1826707d8;
  lVar1 = DAT_1826707a0;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar23 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x8ebc06b3)) ^ uVar27 |
           uVar23) ^ uVar38;
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar23;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar32 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar1 + -0x890) = uVar37 ^ uVar35 ^ uVar38 ^ uVar31 ^ uVar23;
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x4724c860)) =
       (*(ulonglong *)(lVar1 + -0xd88) ^ uVar42) + (uVar18 ^ uVar29) ^ uVar40;
  uVar10 = DAT_1826707ec;
  uVar21 = DAT_1826707c0;
  uVar37 = CONCAT44(uVar5,DAT_1826707ec);
  *(uint *)(lVar1 - ((ulonglong)uVar3 ^ 0x8ebc06a3)) = (DAT_1826707e4 ^ 0x457f06d) * 0x1ae14739;
  uVar13 = _DAT_1826709e0;
  uVar27 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar1 + -0x658) =
       (*(ulonglong *)(lVar1 + -0xd88) ^ uVar42) << ((byte)uVar21 & 0x3f) ^ uVar27;
  lVar1 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar18 = CONCAT44(DAT_1826707a8,uVar6);
  *(ulonglong *)(DAT_1826707a0 + -0x68) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xe273a1e5)) ^ uVar42) >>
       (((byte)uVar10 ^ 0x7d) & 0x3f) ^ uVar23;
  *puVar45 = (uVar35 ^ *(ulonglong *)(lVar1 + -0x890)) << ((local_res18 ^ 0x94) & 0x3f);
  uVar7 = DAT_1826707d0;
  lVar1 = DAT_1826707a0;
  uVar23 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0xd2d2673e)) ^ uVar27 |
           uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x68)) ^ uVar41;
  uVar32 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar23;
  uVar41 = *(ulonglong *)(lVar1 - (uVar36 ^ 0xb8d337bf)) ^ uVar32 ^ uVar23 ^ uVar40 ^ uVar41;
  *(ulonglong *)(lVar1 + -0xf0) = uVar41;
  uVar3 = DAT_1826707b0;
  uVar41 = (uVar32 ^ uVar41) + (CONCAT44(uVar5,uVar7) ^ 0x4f14d8a63116fdd6);
  uVar23 = CONCAT44(uVar8,DAT_1826707c0);
  uVar32 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar41 ^ CONCAT44(DAT_1826708f4,DAT_1826708f4);
  uVar13 = DAT_182670858;
  uVar23 = (uVar23 ^ 0x38f87b0a69edb01) + (*(ulonglong *)(lVar1 + -0xa18) ^ uVar31);
  *(ulonglong *)(lVar1 + -0xbb0) = uVar23 ^ uVar32;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar31 = uVar41 + uVar23 ^ uVar29;
  uVar32 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar1 + -0x410) = uVar31;
  uVar23 = uVar41 << (((byte)DAT_1826707b4 ^ 0x99) & 0x3f);
  uVar43 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(lVar1 + -0x3b0) = uVar23 ^ uVar32;
  uVar21 = DAT_1826707a8;
  *(ulonglong *)(lVar1 + -0x610) = uVar41 >> (((byte)DAT_1826707a8 ^ 0x1c) & 0x3f) ^ uVar43;
  uVar32 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x2d259d09)) ^ uVar32 |
           *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x4724c810)) ^ uVar43) ^ uVar27;
  *(ulonglong *)(lVar1 + -0x9e0) = uVar32;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) =
       CONCAT44(uVar6,DAT_1826707c0) ^ 0x4958deb3c71363c2 | uVar23;
  uVar41 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xcacab627)) = uVar41 ^ uVar32 ^ uVar29 ^ uVar27 ^ uVar31;
  uVar13 = DAT_1826709b8;
  *(ulonglong *)(lVar1 + -0x588) =
       (uVar41 ^ *(ulonglong *)(lVar1 + -0x998)) - (uVar43 ^ *(ulonglong *)(lVar1 + -0x610));
  uVar12 = DAT_182670ac0;
  uVar10 = DAT_1826707d8;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar23 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar1 + -0x630) =
       (uVar35 ^ *(ulonglong *)(lVar1 + -0x890)) + (uVar17 ^ 0x5851cc7c0506ca56) ^ uVar27;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar17 = (ulonglong)DAT_182670ae0;
  *(ulonglong *)(lVar1 + -0xac0) =
       (*(ulonglong *)(lVar1 - (uVar23 ^ 0x80e1a614)) ^ uVar40) +
       (CONCAT44(DAT_1826707cc,uVar10) ^ 0x87fc0bc8aa0c30a4) ^ uVar32;
  *(byte *)(lVar1 - (uVar24 ^ 0x76fde0dc)) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x5e0) ^ uVar17) ^ (byte)DAT_182670a40;
  uVar13 = DAT_182670aac;
  uVar3 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar1 + -0xd88) =
       (uVar32 ^ *(ulonglong *)(lVar1 + -0xac0)) + (uVar27 ^ *(ulonglong *)(lVar1 + -0x630)) ^
       uVar31;
  bVar26 = (byte)uVar10;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xd38) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x630)) << ((bVar26 ^ 0x1a) & 0x3f) ^ uVar32;
  uVar10 = DAT_1826707ec;
  *(ulonglong *)(lVar2 + -0x68) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0xd88)) >> ((byte)*(undefined8 *)(lVar2 + -0x588) & 0x3f);
  uVar23 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  uVar17 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar2 + -0x658) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x630)) >> ((bVar26 ^ 0x24) & 0x3f) ^ uVar23;
  *(uint *)(lVar2 - (uVar17 ^ 0x5d626268)) = (DAT_1826707f0 ^ 0x1d90766) + 0xfaed7420;
  uVar17 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  uVar24 = (*(ulonglong *)(lVar2 - (uVar24 ^ 0x76fde7bd)) ^ uVar23 |
           uVar32 ^ *(ulonglong *)(lVar2 + -0xd38)) ^ uVar17;
  uVar23 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar2 + -0x9c8) = uVar24;
  uVar32 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar24 = uVar23 ^ uVar24 ^ uVar17 ^ uVar31 ^ *(ulonglong *)(lVar2 + -0xd88);
  *(ulonglong *)(lVar2 + -0xf0) = uVar24;
  uVar13 = DAT_182670850;
  *(ulonglong *)(lVar2 + -0xa18) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x1635a42b)) ^ uVar29) + (uVar23 ^ uVar24) ^
       uVar32;
  uVar17 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xbb0) = (uVar23 ^ uVar24) << ((bVar20 ^ 0xf1) & 0x3f) ^ uVar17;
  uVar42 = CONCAT44(uVar3,DAT_1826707b0);
  uVar40 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d8 ^ 0x8ebc0583)) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0xf0)) >> (((byte)DAT_1826707b0 ^ 0xab) & 0x3f) ^ uVar40;
  uVar35 = (uVar41 ^ *(ulonglong *)(lVar2 + -0x998)) << 0xc;
  uVar23 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar2 + -0x610) = uVar35 ^ uVar38;
  uVar13 = DAT_18267082c;
  uVar24 = (uVar40 ^ *(ulonglong *)(lVar2 + -0x6b8) | uVar17 ^ *(ulonglong *)(lVar2 + -0xbb0)) ^
           uVar23;
  *(ulonglong *)(lVar2 + -0x3b0) = uVar24;
  lVar1 = DAT_1826707a0;
  uVar44 = CONCAT44(uVar13,uVar13);
  uVar17 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar2 + -0xcf8) =
       uVar44 ^ uVar24 ^ uVar23 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0xa18);
  uVar27 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar2 + -0x9e0) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x998)) + (uVar31 ^ *(ulonglong *)(lVar2 + -0xd88)) ^
       uVar27;
  uVar13 = DAT_182670a54;
  uVar14 = DAT_1826709d4;
  uVar17 = (*(ulonglong *)(lVar1 - (uVar17 ^ 0x74a0e818)) ^ uVar41) >> (((byte)uVar4 ^ 0x59) & 0x3f)
  ;
  uVar24 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar1 + -0x890) = uVar17 ^ CONCAT44(DAT_182670818,DAT_182670818);
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x5c6e643d)) = (uVar17 | uVar35) ^ uVar23;
  lVar1 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar17 = (ulonglong)DAT_1826707d0;
  uVar35 = uVar29 ^ uVar23 ^ uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0) ^
           *(ulonglong *)(DAT_1826707a0 + -0x660);
  uVar24 = *(ulonglong *)(DAT_1826707a0 + -0xa18);
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       CONCAT44(uVar4,DAT_1826707d8) ^ 0x29424a81882010a4 | 0x96bd957656db8602;
  uVar13 = DAT_1826709bc;
  *(ulonglong *)(lVar1 + -0xac0) = uVar35;
  uVar21 = DAT_1826707ec;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar23 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar1 - (uVar17 ^ 0x80e1a01c)) = (uVar35 ^ uVar29) + (uVar32 ^ uVar24) ^ uVar41;
  uVar12 = DAT_182670b04;
  uVar33 = (*(ulonglong *)(lVar1 - (uVar33 ^ 0xe273a6ad)) ^ uVar29) <<
           (((byte)uVar21 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar1 + -0x630) = uVar33 ^ CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar13 = DAT_1826709c8;
  lVar1 = DAT_1826707a0;
  uVar24 = ((ulonglong)uVar14 << 0x1a | (ulonglong)(uVar14 >> 6)) ^
           *(ulonglong *)(DAT_1826707a0 + -0xac0) >> 6;
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar24 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670b14;
  uVar17 = CONCAT44(uVar13,uVar13);
  uVar24 = (uVar33 | uVar24) ^ uVar17;
  *(ulonglong *)(lVar1 + -0xd38) = uVar24;
  uVar21 = DAT_1826707d4;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xcacab677)) =
       uVar31 ^ uVar17 ^ uVar41 ^ uVar24 ^ *(ulonglong *)(lVar1 + -0x68);
  uVar13 = DAT_1826709ec;
  uVar24 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar1 + -0x410) =
       (uVar17 ^ *(ulonglong *)(lVar1 + -0xd38)) - (CONCAT44(uVar8,uVar21) ^ 0xb5d6780524aff12e);
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar35 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707a8 ^ 0x1635a0cb)) =
       (*(ulonglong *)(lVar1 - (uVar24 ^ 0x2d259241)) ^ uVar44) +
       (uVar27 ^ *(ulonglong *)(lVar1 + -0x9e0)) ^ uVar32;
  uVar33 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  local_e8 = (byte)uVar11;
  *(ulonglong *)(lVar1 - (uVar36 ^ 0xb8d33a6f)) =
       (uVar44 ^ *(ulonglong *)(lVar1 + -0xcf8)) << 0x16 ^ uVar33;
  uVar13 = DAT_182670aa8;
  uVar29 = (uVar44 ^ *(ulonglong *)(lVar1 + -0xcf8)) >> ((local_e8 ^ 0xcf) & 0x3f);
  uVar24 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar29 ^ CONCAT44(DAT_1826708e4,DAT_1826708e4);
  lVar1 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar17 = (*(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x80e1abc4)) ^ uVar33 | uVar29) ^ uVar27;
  puVar19 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c0 ^ 0x76fde115));
  puVar45 = (ulonglong *)(DAT_1826707a0 + -0xcf8);
  uVar24 = *(ulonglong *)(DAT_1826707a0 + -0x68);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) = uVar17;
  uVar13 = DAT_182670924;
  uVar33 = *puVar19;
  *(ulonglong *)(lVar1 + -0x998) = (uVar44 ^ *puVar45) + uVar29;
  uVar33 = uVar33 ^ uVar40 ^ uVar17 ^ uVar27 ^ uVar32;
  *(ulonglong *)(lVar1 + -0xd88) = uVar33;
  uVar21 = DAT_1826707b8;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar33 = uVar40 ^ uVar33;
  uVar17 = CONCAT44(DAT_182670978,DAT_182670978);
  *(ulonglong *)(lVar1 + -0x610) = (uVar41 ^ uVar24) + uVar33 ^ uVar29;
  bVar20 = (byte)DAT_1826707c0;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0xd2d269f6)) = uVar33 << (((byte)uVar21 ^ 0x20) & 0x3f) ^ uVar17;
  uVar33 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar1 + -0x660) =
       (uVar40 ^ *(ulonglong *)(lVar1 + -0xd88)) >> ((bVar20 ^ 0xc5) & 0x3f) ^ uVar33;
  bVar20 = (byte)DAT_182670a40;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b0 ^ 0x2d259b31)) =
       *(ulonglong *)(lVar1 - (uVar23 ^ 0xd2d26706)) ^ uVar33 |
       *(ulonglong *)(lVar1 + -0x610) ^ uVar29;
  uVar24 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *(ulonglong *)(lVar1 + -0xa18) =
       (*(ulonglong *)(lVar1 + -0x890) ^ uVar17 | uVar33 ^ *(ulonglong *)(lVar1 + -0x660)) ^ uVar24;
  pbVar28 = (byte *)(*(ulonglong *)(lVar1 + -0x450) ^ (ulonglong)DAT_1826709cc);
  *(byte *)(lVar1 + -0xdd9) = bVar20 ^ *pbVar28;
  lVar2 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670af0,DAT_182670af0);
  local_a8 = (byte)uVar7;
  uVar17 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar1 + -0xac0) =
       *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707d8 ^ 0x8ebc052b)) ^
       *(ulonglong *)(lVar1 - (uVar35 ^ 0x1635aa23)) ^ uVar33 ^ uVar24 ^ uVar29;
  uVar27 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x9c8)) + (uVar32 ^ *(ulonglong *)(lVar2 + -0xf0)) ^
           uVar17;
  *(ulonglong *)(lVar2 + -0x658) = uVar27;
  uVar41 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar2 + -0x630) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x9c8)) << ((local_a8 ^ 0x54) & 0x3f) ^ uVar41;
  uVar12 = DAT_182670a1c;
  *(ulonglong *)(lVar2 + -0xd38) = (uVar42 ^ 0xf026e55275055f5e) + 0xb2f172847c3ec16e;
  uVar13 = DAT_1826709d0;
  uVar8 = DAT_1826707d4;
  uVar7 = DAT_1826707cc;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar35 = (ulonglong)DAT_1826707d4;
  uVar24 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar2 + -0x410) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707cc ^ 0x5c6e6b95)) ^ uVar31) >>
       (((byte)uVar4 ^ 0x4d) & 0x3f) ^ uVar32;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x9e0) =
       (*(ulonglong *)(lVar2 - (uVar24 ^ 0x80e1a464)) ^ uVar32 |
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b4 ^ 0x74a0e7b0)) ^ uVar41) ^ uVar23;
  uVar4 = DAT_1826707c0;
  uVar24 = *(ulonglong *)(lVar2 - (uVar35 ^ 0x5d6267bc));
  *(uint *)(lVar2 + -0xc0c) = (DAT_1826707e0 ^ 0x6cd7976) + *(int *)(lVar2 + -0xa34);
  uVar13 = DAT_182670970;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar24 ^ uVar25 ^ uVar23 ^ uVar17 ^ uVar27;
  uVar12 = DAT_182670ae4;
  uVar24 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x3b0) =
       (CONCAT44(uVar9,uVar4) ^ 0xb1a3d5c57f537dc7) + (*(ulonglong *)(lVar2 + -0x610) ^ uVar29) ^
       uVar24;
  uVar13 = DAT_18267089c;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(byte *)(lVar2 + -0xa1) = bVar20 ^ *pbVar28;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0xc0) ^ uVar23) =
       *(ulonglong *)(lVar2 - (uVar36 ^ 0xb8d3326f)) ^ uVar32 ^ uVar24;
  uVar21 = DAT_1826707b8;
  uVar36 = (*(ulonglong *)(lVar2 + -0xbb0) ^ uVar25) + (uVar37 ^ 0xaf328815f66252f9);
  uVar24 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(lVar2 + -0x998) = uVar36 ^ CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar13 = DAT_182670890;
  puVar45 = (ulonglong *)
            ((*(ulonglong *)(lVar2 + -0xc0) ^ uVar23) + (uVar18 ^ 0x1635a03bcacabfbe) * 8);
  *(ulonglong *)(lVar2 + -0x1e8) = (ulonglong)puVar45 ^ uVar24;
  uVar18 = CONCAT44(uVar13,uVar13);
  *puVar45 = uVar36 ^ uVar32;
  uVar4 = DAT_1826707b0;
  uVar36 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar2 + -0xcf8) =
       (CONCAT44(uVar11,uVar8) ^ 0x35d6de872aead16a) + (uVar17 ^ *(ulonglong *)(lVar2 + -0x658)) ^
       uVar18;
  uVar24 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar2 + -0x798) =
       (*(ulonglong *)(lVar2 + -0xc0) ^ uVar23) + (CONCAT44(uVar3,uVar11) ^ 0x4724ce0076fde1e7) * 8
       ^ uVar24;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x76fde75d)) =
       CONCAT44(uVar10,uVar21) ^ 0xb666ecf64926edbb | *(ulonglong *)(lVar2 + -0xbb0) ^ uVar25;
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0x798) ^ uVar24) =
       *(ulonglong *)(lVar2 - (uVar35 ^ 0x5d6262a4)) ^ uVar18 ^ uVar32;
  uVar13 = DAT_182670908;
  uVar24 = (CONCAT44(uVar9,uVar4) ^ 0x2b48ebf95605e866) + (*(ulonglong *)(lVar2 + -0xac0) ^ uVar33);
  *(ulonglong *)(lVar2 + -0x68) = uVar24 ^ uVar43;
  puVar45 = (ulonglong *)((*(ulonglong *)(lVar2 + -0xc0) ^ uVar23) + 0x18);
  *(ulonglong *)(lVar2 + -0x3d0) = (ulonglong)puVar45 ^ CONCAT44(uVar13,uVar13);
  *puVar45 = uVar24 ^ uVar32;
  uVar13 = DAT_182670870;
  uVar24 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  puVar45 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xba8) + (CONCAT44(uVar5,uVar7) ^ 0x74a0e1805c6e6255) * 8);
  *(undefined8 *)(lVar2 + -0xba8) = 0x10e07ceb8fa9ed99;
  *(ulonglong *)(lVar2 + -0x428) = (ulonglong)puVar45 ^ uVar24;
  uVar12 = DAT_18267096c;
  *(ulonglong *)(lVar2 + -0xb50) =
       *(longlong *)(lVar2 + -0x2d0) + 0x40 + (CONCAT44(uVar34,uVar4) ^ 0x80e1a0742d259eb9) * 0x60 ^
       CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xd88) = CONCAT44(uVar12,uVar12) ^ *puVar45 ^ uVar30;
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0x58) ^ uVar38) =
       CONCAT44(uVar10,uVar6) ^ 0x4547b02cb7906560;
  puVar45 = (ulonglong *)
            ((*(ulonglong *)(lVar2 + -0x428) ^ uVar24) +
            (CONCAT44(uVar6,uVar21) ^ 0xcacabfbf4724ce01) * 8);
  uVar24 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar2 + -0x240) = (ulonglong)puVar45 ^ uVar39;
  *(ulonglong *)(lVar2 + -0x588) = uVar24 ^ *puVar45 ^ uVar30;
  uVar33 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar24 = *(ulonglong *)(lVar2 - (uVar22 ^ 0xcacaba77));
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar15;
  *(ulonglong *)(uVar24 ^ uVar33) = CONCAT44(uVar5,uVar7) ^ 0xacf31647ebdee278;
  return;
}



############ FUN_ 180cbd940 size=4206 ############

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

void FUN_180cbd940(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint *puVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint *puVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  uint *puVar20;
  ulonglong uVar21;
  int iVar22;
  ulonglong uVar23;
  uint *puVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  longlong lVar33;
  uint uVar34;
  ulonglong uVar35;
  byte local_60;
  
  uVar18 = DAT_182670b08;
  uVar19 = DAT_182670940;
  uVar8 = DAT_1826707d8;
  uVar9 = DAT_1826707d0;
  uVar28 = DAT_1826707cc;
  uVar15 = DAT_1826707b8;
  lVar7 = DAT_1826707a0;
  uVar25 = DAT_1826707e8 * DAT_1826707f4;
  uVar21 = (ulonglong)DAT_1826707d0;
  uVar32 = (ulonglong)DAT_1826707cc;
  uVar12 = DAT_1826707c0 & 7;
  if (uVar12 < 4) {
    if (uVar12 < 2) {
      uVar34 = DAT_1826707d0;
      if (uVar12 == 0) {
        uVar34 = DAT_1826707c0;
      }
    }
    else {
      uVar34 = DAT_1826707ac;
      if (uVar12 < 3) {
        uVar34 = DAT_1826707f0;
      }
    }
  }
  else if (uVar12 < 6) {
    uVar34 = DAT_1826707cc;
    if (uVar12 < 5) {
      uVar34 = DAT_1826707bc;
    }
  }
  else {
    uVar34 = DAT_1826707b4;
    if (uVar12 < 7) {
      uVar34 = DAT_1826707c8;
    }
  }
  uVar26 = (ulonglong)DAT_1826707d8;
  iVar22 = DAT_1826707e4 + DAT_1826707d8;
  uVar27 = *(uint *)(&DAT_18260f758 + DAT_182670dfc) ^ DAT_1826707d8;
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670dfc) ^ DAT_1826707e4;
  uVar23 = (ulonglong)DAT_1826707ac;
  DAT_1826707a8 = uVar34;
  DAT_1826707c4 = uVar25;
  DAT_1826707d4 = iVar22;
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) =
       (CONCAT44(iVar22,DAT_1826707c0) ^ 0x8eb3b2b61f3c1481) >>
       ((byte)*(undefined8 *)(DAT_1826707a0 + -0x6b8) & 0x3f);
  uVar29 = *(uint *)(lVar7 - (uVar23 ^ 0xf523cb3d)) ^ DAT_182670a04;
  uVar12 = DAT_182670b0c ^ *(uint *)(lVar7 + -0xaf0);
  *(uint *)(lVar7 + -0xc04) =
       (*(uint *)(lVar7 + -0x43c) ^ DAT_182670a04) >>
       (((byte)*(undefined4 *)(lVar7 + -0x68c) ^ (byte)DAT_182670820) & 0x1f);
  puVar1 = (uint *)(lVar7 + -0x14);
  uVar29 = (int)uVar29 >> 0x1f;
  uVar30 = uVar29 ^ uVar18;
  *(uint *)(lVar7 + -0x140) = uVar30;
  *puVar1 = uVar29 & uVar12 ^ uVar19;
  uVar29 = DAT_18267085c;
  uVar12 = DAT_1826707b4;
  *(uint *)(lVar7 - ((ulonglong)uVar34 ^ 0xb3adfda7)) = ~DAT_18267085c ^ uVar30 ^ uVar18;
  uVar34 = DAT_182670898;
  uVar23 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar7 - (uVar21 ^ 0xb3adfd07)) =
       (CONCAT44(uVar12,uVar15) ^ 0x52815fe9ea45a5e9) <<
       ((*(byte *)(lVar7 - ((ulonglong)DAT_1826707c8 ^ 0xf523ca49)) ^ (byte)DAT_182670944) & 0x3f);
  lVar33 = DAT_1826707a0;
  puVar2 = (uint *)(lVar7 + -0x280);
  *(uint *)(lVar7 - (uVar23 ^ 0x468e3a12)) =
       (uVar34 ^ *(uint *)(lVar7 + -0xc34) | uVar29 ^ *puVar2) ^ _DAT_1826709e0;
  uVar29 = DAT_18267089c;
  *(uint *)(lVar7 - (uVar32 ^ 0xcc49cadb)) = (DAT_1826707f0 ^ 0x926d9743) * 0x3b01a070;
  uVar31 = *(uint *)(lVar7 + -0xa34) ^ _DAT_1826709e0;
  uVar30 = (*(uint *)(lVar7 - ((ulonglong)uVar25 ^ 0xaa43f299)) ^ DAT_182670a1c) & uVar31;
  *(uint *)(lVar7 + -0x814) = uVar30 ^ uVar29;
  uVar12 = DAT_1826707f4;
  uVar35 = (ulonglong)DAT_1826707f4;
  uVar18 = (*(uint *)(lVar33 - (uVar35 ^ 0xfffc2eeb)) ^ uVar19) &
           (DAT_182670998 ^ *(uint *)(lVar33 + -0x7e4)) ^ DAT_1826709f0;
  *(uint *)(lVar33 + -0x598) = uVar18;
  uVar23 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar33 + -0x3d4) = (uVar18 ^ DAT_1826709f0 | uVar30) ^ DAT_182670950;
  lVar7 = DAT_1826707a0;
  *(longlong *)(lVar33 + -0x588) =
       *(longlong *)(lVar33 - (uVar23 ^ 0xefdfd61f)) << (((byte)uVar28 ^ 0xa8) & 0x3f);
  puVar3 = (uint *)(lVar33 + -0x2d4);
  uVar31 = (*puVar3 ^ DAT_182670874) & uVar31;
  *(uint *)(lVar7 + -0x8e0) = uVar31 ^ uVar34;
  *(ulonglong *)(lVar7 + -0x6b8) =
       *(longlong *)(lVar7 + -0x3b0) - (CONCAT44(uVar15,uVar8) ^ 0x857b963f55aa686e);
  uVar18 = DAT_1826707f0;
  puVar4 = (uint *)(lVar7 + -0x42c);
  *puVar4 = (uVar19 ^ *puVar1) & (DAT_1826707a8 ^ 0xb3adff26) ^ DAT_182670ab0;
  uVar19 = (*(uint *)(lVar7 - (uVar21 ^ 0xb3adfb0b)) ^ DAT_182670ab0 | uVar31) ^ DAT_182670804;
  *(longlong *)(lVar7 + -0x1a0) = *(longlong *)(lVar7 + -0xd58) + 0x10;
  uVar28 = DAT_1826707ec;
  *(undefined8 *)(lVar7 + -0xcf8) = 0x49cd765ab34f8b00;
  *(uint *)(lVar7 + -0xcec) = uVar19;
  *(undefined8 *)(lVar7 - ((ulonglong)DAT_1826707ac ^ 0xf523c259)) =
       *(undefined8 *)(lVar7 - (uVar32 ^ 0xcc49ce3b));
  *(uint *)(lVar7 + -0xc0c) = *(uint *)(lVar7 + -0xcec) ^ DAT_182670804 ^ uVar29;
  *(uint *)(lVar7 - (uVar21 ^ 0xb3adf473)) =
       *(uint *)((ulonglong)DAT_182670954 ^ *(ulonglong *)(lVar7 + -0xa48)) ^ DAT_182670a40;
  uVar10 = DAT_1826707fc;
  *(uint *)(lVar7 + -0x68c) =
       *(uint *)(lVar7 - ((ulonglong)uVar25 ^ 0xaa43f2d5)) ^ DAT_182670908 ^ DAT_182670950;
  uVar21 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar7 + -0x548) =
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar7 + -0x410)) + 0x40e9e63b7d8358e5;
  *(undefined8 *)(lVar7 - (uVar21 ^ 0xbcfc0338)) = *(undefined8 *)(lVar7 + -0xd58);
  uVar31 = DAT_18267093c;
  uVar30 = DAT_18267091c;
  uVar19 = DAT_1826707c0;
  uVar23 = CONCAT44(DAT_1826707c8,uVar18);
  uVar14 = *(uint *)(lVar7 + -0xc0c) ^ DAT_18267091c;
  *(ulonglong *)(lVar7 + -0x220) =
       (CONCAT44(DAT_1826707c0,iVar22) ^ 0xdaa987af10b2b2bd) +
       (CONCAT44(uVar18,uVar28) ^ 0x8da7eaeed5c7bf0d);
  uVar25 = DAT_18267084c;
  uVar21 = (ulonglong)DAT_1826709d8;
  *(uint *)(lVar7 + -0x43c) = uVar14 ^ uVar29;
  *(uint *)(lVar7 + -0xc04) = *(uint *)(lVar7 + -0x68c) ^ uVar31 ^ DAT_182670908;
  *(longlong *)(lVar7 + -0x588) = *(longlong *)(lVar7 + -0x548) << 0x1c;
  puVar24 = (uint *)((uVar23 ^ 0xf523cf014e92d9a4) * 0x10 + *(longlong *)(lVar7 + -0x1a0));
  *(ulonglong *)(lVar7 + -0x2a8) = (ulonglong)puVar24 ^ uVar21;
  uVar28 = DAT_1826707b0;
  uVar23 = (ulonglong)DAT_1826707b0;
  puVar5 = (uint *)(lVar7 + -0x9ec);
  uVar14 = *puVar5 ^ DAT_18267095c;
  *(uint *)(lVar7 + -0xaf0) = *puVar24 ^ uVar25 ^ DAT_182670a40;
  uVar29 = DAT_18267092c;
  uVar21 = (ulonglong)DAT_1826707e8;
  uVar14 = uVar14 - (*(uint *)(lVar7 - (uVar32 ^ 0xcc49c56b)) ^ uVar25) ^ DAT_1826709d4;
  *(uint *)(lVar7 + -0x140) = uVar14;
  uVar14 = *(uint *)(lVar7 - (uVar21 ^ 0xefdfd50f)) ^ uVar25 | uVar14 ^ DAT_1826709d4;
  *(uint *)(lVar7 + -0xc34) = uVar14 ^ uVar29;
  *(ulonglong *)(lVar7 + -0x6b8) = CONCAT44(uVar28,uVar19) ^ 0xd7d0d24c10eeb722;
  uVar29 = DAT_1826708c4;
  lVar7 = DAT_1826707a0;
  *puVar2 = (int)uVar14 >> (((byte)uVar8 ^ 0xc6) & 0x1f) ^ DAT_1826708c4;
  uVar8 = DAT_1826708c0;
  uVar19 = DAT_1826707dc;
  *(uint *)(lVar7 - ((ulonglong)uVar15 ^ 0xffb3dae5)) =
       *(uint *)(lVar7 - ((ulonglong)DAT_1826707b4 ^ 0xffffdd7f)) ^ ~DAT_182670a78 ^ uVar29;
  *(uint *)(lVar7 + -0x398) =
       (*(uint *)(lVar7 + -0xc04) ^ uVar31) - (uVar25 ^ *(uint *)(lVar7 + -0xaf0)) ^ DAT_182670af8;
  uVar14 = DAT_182670af4;
  lVar33 = DAT_1826707a0;
  *(uint *)(lVar7 - ((ulonglong)uVar18 ^ 0x4e92de40)) =
       (*(uint *)(lVar7 - ((ulonglong)uVar12 ^ 0xfffc261f)) ^ uVar34) *
       (*(uint *)(lVar7 + -0x43c) ^ uVar30);
  uVar15 = *(uint *)(lVar33 + -0x540) ^ DAT_182670a78;
  uVar18 = (int)(*(uint *)(lVar7 - (uVar26 ^ 0xf881141)) ^ DAT_182670af8) >>
           (((byte)DAT_1826707d0 ^ 0x38) & 0x1f);
  *(uint *)(lVar7 + -0x814) = uVar18 ^ uVar8;
  *(uint *)(lVar33 - ((ulonglong)uVar19 ^ 0xbcfc0700)) = uVar18 & uVar15 ^ uVar14;
  *puVar3 = *(uint *)(lVar33 - ((ulonglong)uVar28 ^ 0x7b3c2463)) ^ DAT_182670b14 ^ uVar8 ^
            DAT_1826707e4 ^ 0xab381189;
  uVar12 = DAT_1826709b0;
  uVar18 = DAT_182670994;
  lVar7 = DAT_1826707a0;
  puVar20 = (uint *)(lVar33 - (uVar35 ^ 0xfffc2c2b));
  puVar24 = (uint *)(DAT_1826707a0 + -0xaf0);
  uVar34 = *puVar20 ^ DAT_182670b14 | uVar29 ^ *puVar2;
  puVar6 = (uint *)(DAT_1826707a0 + -0x598);
  puVar16 = (uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ac ^ 0xf523c535));
  *(uint *)(DAT_1826707a0 + -0xa34) = uVar34 ^ DAT_182670994;
  uVar8 = DAT_1826707bc;
  uVar25 = (*puVar6 ^ uVar14) & (uVar25 ^ *puVar24) ^ DAT_182670848;
  uVar15 = *puVar16;
  uVar28 = *(uint *)(lVar7 + -0xc04);
  uVar32 = (ulonglong)DAT_1826707bc;
  *puVar4 = uVar25;
  uVar28 = (uVar15 ^ uVar18) & (uVar28 ^ uVar31);
  uVar15 = (uVar25 ^ DAT_182670848 | uVar28) ^ DAT_182670870;
  bVar17 = (byte)DAT_1826707b4;
  *puVar1 = uVar28 ^ uVar12;
  *(uint *)(lVar7 + -0xcec) = uVar15;
  uVar28 = uVar34 & (*(uint *)(lVar7 + -0x43c) ^ uVar30) ^ DAT_1826708a4;
  *(uint *)(lVar7 + -0xb54) = uVar28;
  uVar28 = uVar28 ^ DAT_1826708a4;
  uVar21 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar7 + -0xcf8) =
       *(ulonglong *)(lVar7 - (uVar32 ^ 0x468e3396)) >> ((bVar17 ^ 0xcb) & 0x3f);
  uVar32 = (ulonglong)DAT_1826707f0;
  uVar15 = (*(uint *)(lVar7 - (uVar21 ^ 0xaa43f499)) ^ uVar14) & 2 ^ DAT_182670b00;
  *(uint *)(lVar7 + -0x3d4) = uVar15;
  uVar35 = (ulonglong)DAT_1826707e4;
  *(uint *)(lVar7 - (uVar32 ^ 0x4e92d5a8)) = (uVar15 ^ DAT_182670b00 | uVar28) ^ DAT_1826708b8;
  uVar34 = DAT_182670a18;
  uVar11 = DAT_18267094c;
  uVar10 = DAT_182670894;
  uVar15 = DAT_1826707cc;
  *(longlong *)(lVar7 - ((ulonglong)uVar19 ^ 0xbcfc0fc0)) =
       *(longlong *)(lVar7 - (uVar35 ^ 0x54c7efd6)) + 0x10;
  *(undefined8 *)(lVar7 + -0x1a0) = *(undefined8 *)(lVar7 + -0xd58);
  uVar28 = DAT_1826709cc;
  local_60 = (byte)iVar22;
  *(ulonglong *)(lVar7 + -0x220) =
       (*(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707a8 ^ 0xb3adf2af)) ^ CONCAT44(uVar10,uVar10)) -
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar7 + -0x660));
  *(uint *)(lVar7 - ((ulonglong)uVar8 ^ 0x468e36aa)) =
       uVar28 ^ *(uint *)(lVar7 + -0xc0c) ^ DAT_1826708b8;
  *(uint *)(lVar7 - ((ulonglong)DAT_1826707ec ^ 0x84c3d2c8)) =
       *(uint *)(lVar7 + -0xcec) ^ DAT_182670870 ^ DAT_18267089c;
  *(ulonglong *)(lVar7 + -0x548) =
       *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc00b8)) >> ((local_60 ^ 0x7c) & 0x3f)
  ;
  *(undefined8 *)(lVar7 - ((ulonglong)uVar15 ^ 0xcc49c2c3)) = *(undefined8 *)(lVar7 + -0x1a0);
  *(uint *)(lVar7 + -0xc34) = uVar34 ^ uVar28 ^ *(uint *)(lVar7 + -0x68c);
  uVar12 = DAT_182670918;
  uVar8 = DAT_18267083c;
  lVar33 = DAT_1826707a0;
  puVar24 = (uint *)(lVar7 - ((ulonglong)DAT_1826707e8 ^ 0xefdfd71f));
  *puVar24 = *(uint *)(lVar7 - ((ulonglong)DAT_1826707c0 ^ 0xab3810c9)) ^ DAT_18267083c ^
             DAT_18267089c;
  uVar18 = DAT_182670840;
  uVar32 = CONCAT44(DAT_1826707ec,DAT_1826707c8);
  *(uint *)(lVar33 - ((ulonglong)DAT_1826707c8 ^ 0xf523c8e5)) =
       (*(uint *)(lVar33 - ((ulonglong)DAT_1826707b8 ^ 0xffb3d929)) ^ uVar28) + (uVar15 ^ 0x76d82b8)
  ;
  uVar21 = (ulonglong)DAT_1826708e4;
  *(ulonglong *)(lVar33 - (uVar23 ^ 0x7b3c263f)) =
       *(longlong *)(lVar33 - ((ulonglong)DAT_1826707b4 ^ 0xffffd2a7)) +
       (uVar32 ^ 0x84c3d388f523cf01) * 0x10 ^ uVar21;
  uVar28 = *(uint *)(*(ulonglong *)(lVar33 + -0xa48) ^ uVar21) ^ uVar12 ^ DAT_182670a40;
  *(uint *)(lVar33 + -0x398) = uVar28;
  uVar15 = (*puVar5 ^ DAT_18267095c) - (uVar28 ^ uVar12);
  *(uint *)(lVar33 + -0x540) = uVar15 ^ DAT_182670858;
  uVar15 = uVar15 | uVar28 ^ uVar12;
  *(uint *)(lVar33 + -0x814) = uVar15 ^ DAT_1826709b4;
  *(uint *)(lVar33 - ((ulonglong)DAT_1826707c4 ^ 0xaa43f381)) =
       (int)uVar15 >> ((local_60 ^ 0x50) & 0x1f) ^ uVar18;
  uVar28 = DAT_1826708a0 ^ uVar18;
  *(undefined1 *)(lVar33 + -0x489) = **(undefined1 **)(lVar33 + -0x418);
  uVar29 = DAT_182670a64;
  uVar25 = DAT_18267091c;
  lVar7 = DAT_1826707a0;
  uVar15 = *puVar2;
  uVar31 = uVar28 ^ uVar15 ^ DAT_1826707a8 ^ 0x4c5200d8;
  uVar28 = DAT_1826707b0 ^ 0x6bba3541;
  *puVar3 = uVar31;
  uVar31 = uVar31 ^ DAT_1826708a0;
  *(uint *)(lVar33 + -0xc04) = uVar28 + (DAT_1826707c0 ^ 0x601c5caa);
  uVar28 = (uVar8 ^ *(uint *)(lVar33 + -0x8e0)) - (*(uint *)(lVar33 + -0x398) ^ uVar12) ^
           DAT_1826707f8;
  *(uint *)(lVar33 + -0xaf0) = uVar28;
  uVar30 = (int)(uVar28 ^ DAT_1826707f8) >> 0x1f;
  uVar14 = uVar30 ^ uVar25;
  *puVar1 = uVar14;
  uVar28 = DAT_1826707e0;
  uVar32 = (ulonglong)DAT_1826707e0;
  uVar25 = uVar14 ^ DAT_1826709c8 ^ uVar19 ^ uVar25 ^ 0x4303fd67;
  uVar30 = uVar30 & uVar31;
  *(uint *)(lVar7 + -0xa34) = uVar25;
  uVar25 = uVar25 ^ DAT_1826709c8;
  *puVar4 = (DAT_1826707ec ^ 0x8ac3edd3) + 0x575637dd;
  uVar19 = DAT_182670964;
  uVar25 = uVar18 ^ uVar15 | uVar25;
  *(uint *)(lVar7 + -0x598) = uVar25 ^ uVar29;
  *(uint *)(lVar7 + -0x43c) = uVar30 ^ uVar19;
  uVar15 = uVar25 & (*puVar24 ^ uVar8) ^ DAT_1826709f0;
  *(uint *)(lVar7 + -0xb54) = uVar15;
  uVar15 = uVar15 ^ DAT_1826709f0;
  *(uint *)(lVar7 + -0x3d4) =
       (*(uint *)(lVar7 - (uVar32 ^ 0xbcfc0700)) ^ uVar29) << (((byte)DAT_1826707c0 ^ 0x8f) & 0x1f);
  uVar30 = uVar30 & (*(uint *)(lVar7 + -0x398) ^ uVar12);
  *(uint *)(lVar7 + -0xc0c) = uVar30 ^ DAT_182670814;
  uVar21 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar7 - (uVar35 ^ 0x54c7e29a)) = (uVar15 | uVar30) ^ DAT_182670990;
  *(uint *)(lVar7 + -0x140) =
       (*(uint *)(lVar7 - (uVar21 ^ 0x4e92dc3c)) ^ uVar29) & (uVar34 ^ *(uint *)(lVar7 + -0xc34)) ^
       DAT_182670980;
  uVar18 = (uVar28 << 0x10 | uVar28 & 0xff00) << 8 | uVar28 >> 8 & 0xff00 | DAT_1826707e0 >> 0x18;
  DAT_1826707ec = uVar18;
  *(ulonglong *)(lVar7 + -0x588) =
       (CONCAT44(DAT_182670a34,DAT_182670a34) ^ *(ulonglong *)(lVar7 + -0xce0)) >>
       (((byte)uVar28 ^ 0x95) & 0x3f);
  uVar15 = (uVar19 ^ *(uint *)(lVar7 + -0x43c)) & (uVar28 ^ 0xbcfc029b) ^ _DAT_1826708bc;
  *(uint *)(lVar7 + -0x68c) = uVar15;
  uVar15 = (*(uint *)(lVar7 - ((ulonglong)uVar18 ^ 0x9802fdfc)) ^ DAT_182670980 |
           uVar15 ^ _DAT_1826708bc) ^ DAT_182670828;
  *(uint *)(lVar7 + -0x7e4) = uVar15;
  lVar33 = (CONCAT44(uVar28,uVar28) ^ 0xbcfc0298bcfc0299) * 0x10 + *(longlong *)(lVar7 + -0xd58);
  *(uint *)(lVar7 + -0x540) = DAT_182670a6c ^ DAT_182670828 ^ uVar15;
  *(longlong *)(lVar7 + -0x1a0) = lVar33;
  *(longlong *)(lVar7 + -0xd58) = lVar33;
  *(ulonglong *)(lVar7 + -0x6b8) =
       CONCAT44(uVar18,uVar28) ^ 0x912c3b2010504266 | *(ulonglong *)(lVar7 + -0x220);
  *(uint *)(lVar7 + -0x814) =
       *(uint *)(lVar7 - (uVar32 ^ 0xbcfc0e74)) ^ DAT_182670adc ^ DAT_182670990;
  *(longlong *)(lVar7 - ((ulonglong)uVar18 ^ 0x9802fd1c)) = lVar33;
  *(uint *)(lVar7 + -0xc04) = *(uint *)(lVar7 + -0x540) ^ DAT_182670a6c ^ uVar8;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0x9802ff0c)) =
       CONCAT44(uVar28,DAT_1826707ac) ^ *(ulonglong *)(lVar7 + -0x588) ^ 0xbc346be3985bd38d;
  uVar32 = (ulonglong)DAT_1826708ac;
  *(uint *)(lVar7 + -0xaf0) = DAT_182670864 ^ DAT_182670adc ^ *(uint *)(lVar7 + -0x814);
  *(undefined1 *)(lVar7 + -0x489) = **(undefined1 **)(lVar7 + -0x4f8);
  uVar21 = CONCAT44(DAT_1826707e8,uVar18);
  *(ulonglong *)(lVar7 + -0x2a8) =
       (CONCAT44(uVar28,uVar9) ^ 0xbcfc0298b3adff27) * 0x10 + *(longlong *)(lVar7 + -0x1a0) ^ uVar32
  ;
  *(ulonglong *)(lVar7 + -0x660) = *(longlong *)(lVar7 + -0x588) - (uVar21 ^ 0x85b48f026d01f512);
  uVar15 = DAT_1826708b4;
  *puVar4 = *(uint *)(*(ulonglong *)(lVar7 - (uVar26 ^ 0xf881071)) ^ uVar32) ^ DAT_1826708b4 ^
            DAT_182670a40;
  *puVar20 = (*puVar5 ^ DAT_18267095c) -
             (*(uint *)(lVar7 - ((ulonglong)uVar28 ^ 0xbcfc06b4)) ^ uVar15) ^ DAT_1826709a4;
  *puVar1 = (*puVar3 ^ DAT_1826709a4 | uVar15 ^ *puVar4) ^ DAT_182670998;
  *puVar2 = (uVar18 ^ 0x35280ce6) * (uVar28 ^ 0xa01ea509);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar27;
  return;
}



############ FUN_ 180cdb360 size=5202 ############

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

void FUN_180cdb360(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  byte bVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  byte bVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte bVar48;
  ulonglong *puVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  byte local_100;
  ulonglong uVar30;
  
  uVar11 = DAT_1826707f4;
  uVar10 = DAT_1826707d8;
  uVar9 = DAT_1826707c4;
  uVar8 = DAT_1826707b4;
  uVar7 = DAT_1826707a8;
  lVar5 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707d8;
  uVar38 = (ulonglong)DAT_1826707a8;
  uVar29 = ~DAT_1826707c4;
  uVar30 = (ulonglong)uVar29;
  uVar42 = (ulonglong)DAT_1826707f4;
  uVar41 = (ulonglong)DAT_1826707b4;
  uVar26 = DAT_1826707f4 | DAT_1826707b4;
  uVar4 = *(uint *)(&DAT_18260f760 + DAT_182670e50);
  uVar33 = *(uint *)(&DAT_18260f758 + DAT_182670e50) ^ DAT_1826707c4;
  uVar23 = DAT_1826707d8 * DAT_1826707a8;
  uVar34 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar22 = (ulonglong)uVar23;
  bVar18 = (byte)DAT_1826707b4;
  uVar35 = (uVar34 ^ *(ulonglong *)(DAT_1826707a0 + -0x400)) << ((bVar18 ^ 0x6d) & 0x3f);
  uVar20 = CONCAT44(DAT_1826707a8,DAT_1826707d8);
  uVar16 = CONCAT44(DAT_1826707f4,uVar26);
  uVar43 = (ulonglong)uVar26;
  DAT_1826707d4 = uVar23;
  DAT_1826707ec = uVar29;
  DAT_1826707f0 = uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar35 ^ CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar5 + -0x660) = (uVar20 ^ 0xf8f74541d2248fc5) + (uVar16 ^ 0xa8bb792ac5a9abc);
  uVar13 = DAT_182670b04;
  puVar39 = (ulonglong *)(lVar5 - (uVar32 ^ 0xcecf5a03));
  puVar1 = (ulonglong *)(lVar5 + -0x438);
  uVar28 = CONCAT44(DAT_182670840,DAT_182670840);
  uVar35 = CONCAT44(DAT_1826709d4,DAT_1826709d4) ^ *puVar39 | uVar35;
  uVar36 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  puVar2 = (ulonglong *)(lVar5 + -0xd88);
  *(ulonglong *)(lVar5 + -0x6f0) = uVar35 ^ uVar28;
  uVar14 = DAT_182670aa8;
  uVar12 = _DAT_1826708bc;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar24 = (ulonglong)DAT_182670aa8;
  *puVar2 = (*puVar1 ^ uVar36) - uVar35 ^ uVar27;
  uVar40 = CONCAT44(uVar14,uVar14);
  uVar46 = CONCAT44(uVar12,uVar12);
  puVar50 = (ulonglong *)(lVar5 - (uVar43 ^ 0xbceb6aa7));
  uVar35 = CONCAT44(DAT_182670884,DAT_182670884) ^ *puVar50 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)
           ^ uVar46 ^ uVar40;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar35;
  lVar5 = DAT_1826707a0;
  uVar44 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar20 = (ulonglong)uVar9;
  puVar21 = (ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x40004e0));
  uVar37 = CONCAT44(DAT_182670870,DAT_182670870);
  *puVar21 = (uVar35 >> 0x20 ^ uVar24) >> 8 ^ uVar44;
  puVar3 = (ulonglong *)(lVar5 + -0x4c8);
  *puVar3 = (*(ulonglong *)(lVar5 + -0x420) ^ uVar40) << (((byte)uVar10 ^ 0xa3) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x8c020d84)) =
       (CONCAT44(uVar8,uVar23) ^ 0x1f56cb98f16b03bd) << (((byte)uVar29 ^ 0xe6) & 0x3f);
  uVar40 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  puVar52 = (ulonglong *)(lVar5 + -0x220);
  uVar47 = CONCAT44(DAT_182670864,DAT_182670864);
  puVar17 = (ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xfbfff5df));
  *puVar52 = (uVar37 ^ *puVar3 | uVar44 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0)) ^ uVar40;
  uVar14 = DAT_182670a94;
  lVar5 = DAT_1826707a0;
  uVar35 = (ulonglong)DAT_182670a94;
  *(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xb8eb617f)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xb8eb60f7)) ^ uVar46) - (*puVar17 ^ uVar40) ^
       uVar47;
  uVar12 = DAT_182670a44;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar44 = uVar37 ^ uVar40 ^ uVar27 ^ *puVar2 ^ *puVar52;
  *(ulonglong *)(lVar5 + -0x660) = uVar44;
  uVar13 = DAT_182670a8c;
  lVar6 = DAT_1826707a0;
  local_100 = (byte)uVar26;
  uVar24 = (uVar44 >> 0x20 ^ uVar35) >> 0x14;
  uVar35 = (uVar44 ^ uVar37) << ((local_100 ^ 0x73) & 0x3f);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar24 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670810;
  uVar46 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xc18) = uVar35 ^ uVar46;
  uVar13 = DAT_1826709c8;
  uVar53 = CONCAT44(uVar12,uVar12);
  uVar35 = uVar35 | uVar24;
  *puVar1 = uVar35 ^ uVar53;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x7d8) = (uVar27 ^ *puVar2) - uVar35 ^ uVar37;
  *(ulonglong *)(lVar6 + -0x420) =
       (CONCAT44(uVar11,uVar29) ^ 0xa4372690b8790e87) + 0x5094beaed31c1837;
  uVar44 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  puVar25 = (ulonglong *)(lVar6 - (uVar22 ^ 0xaa64921e));
  *puVar25 = *(ulonglong *)(lVar6 - (uVar22 ^ 0xaa64912e)) ^ uVar44 ^ uVar47 ^ uVar28 ^
             *(ulonglong *)(lVar6 + -0x400);
  uVar12 = DAT_182670850;
  *(ulonglong *)(lVar6 + -0xce0) =
       (*(ulonglong *)(lVar6 - (uVar38 ^ 0x7eda2cba)) ^ uVar47) - (*puVar50 ^ uVar37);
  uVar27 = CONCAT44(uVar12,uVar12);
  bVar19 = (byte)uVar9;
  uVar24 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *puVar3 = (uVar44 ^ *(ulonglong *)(lVar6 + -0x5c0)) >> ((bVar19 ^ 0x39) & 0x3f) ^ uVar27;
  uVar12 = DAT_182670928;
  lVar5 = DAT_1826707a0;
  puVar49 = (ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xcecf5933));
  bVar31 = (byte)uVar23;
  *puVar49 = (uVar44 ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0)) << ((bVar31 ^ 0xd9) & 0x3f) ^ uVar24;
  uVar35 = CONCAT44(uVar12,uVar12);
  puVar50 = (ulonglong *)(lVar5 - (uVar41 ^ 0x8c020a64));
  *puVar50 = (*(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x7eda2d32)) ^ uVar24 | uVar27 ^ *puVar3) ^
             uVar35;
  uVar12 = DAT_1826709a4;
  lVar5 = DAT_1826707a0;
  puVar17 = (ulonglong *)(DAT_1826707a0 + -0x400);
  *(undefined1 *)(DAT_1826707a0 + -0x6c9) = **(undefined1 **)(DAT_1826707a0 + -0x4f8);
  uVar51 = CONCAT44(uVar12,uVar12);
  uVar47 = (uVar47 ^ *puVar17) - (uVar35 ^ *puVar52) ^ uVar51;
  *(ulonglong *)(lVar5 + -0x660) = uVar47;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (*(ulonglong *)(lVar5 + -0xc18) ^ uVar46) -
       (*(ulonglong *)(lVar5 - (uVar20 ^ 0x4000dc0)) ^ uVar44);
  uVar24 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *puVar2 = *(ulonglong *)(lVar5 - (uVar43 ^ 0xbceb6f5f)) ^ *(ulonglong *)(lVar5 + -0x7d8) ^ uVar24
            ^ uVar35 ^ uVar37;
  *(ulonglong *)(lVar5 + -0x420) =
       (CONCAT44(uVar29,uVar10) ^ 0x20a74dd6f6549c21) + 0xd3f79c0d366ae908;
  lVar6 = DAT_1826707a0;
  uVar27 = (uVar24 ^ *puVar2) >> (((byte)uVar10 ^ 0xb5) & 0x3f);
  *(ulonglong *)(lVar5 + -0x6f0) = uVar27 ^ CONCAT44(DAT_182670aec,DAT_182670aec);
  puVar17 = (ulonglong *)(lVar5 - (uVar41 ^ 0x8c0205cc));
  uVar35 = (uVar24 ^ *puVar17) << ((bVar31 ^ 0xec) & 0x3f);
  bVar48 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar6 + -0xce0) = uVar35 ^ CONCAT44(DAT_18267096c,DAT_18267096c);
  uVar27 = uVar27 | uVar35;
  *(int *)(lVar6 + -0xa34) = *(int *)(lVar6 - (uVar22 ^ 0xaa64903a)) << ((bVar48 ^ 0x1e) & 0x1f);
  uVar13 = DAT_182670af8;
  uVar24 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *puVar3 = uVar27 ^ uVar24;
  uVar12 = DAT_182670848;
  uVar35 = (*(ulonglong *)(lVar6 - (uVar20 ^ 0x4000fd8)) ^ uVar37) -
           (CONCAT44(uVar11,uVar7) ^ 0xe6068c93aeb9125e);
  *(ulonglong *)(lVar6 + -0x588) = uVar35 ^ CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x400) = uVar35 - uVar27 ^ uVar28;
  lVar5 = DAT_1826707a0;
  puVar45 = (ulonglong *)(lVar6 - (uVar32 ^ 0xcecf5873));
  uVar27 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (*puVar45 ^ uVar24) - (CONCAT44(uVar7,uVar7) ^ 0x456e119ccf2d7518) ^ uVar27;
  uVar53 = uVar47 ^ *puVar1 ^ uVar51 ^ uVar53;
  *(ulonglong *)(lVar5 + -0x5c0) = uVar53 ^ uVar34;
  *(ulonglong *)(lVar5 - (uVar30 ^ 0xfbfff147)) = uVar53 >> (((byte)uVar11 ^ 0x6f) & 0x3f) ^ uVar40;
  *puVar52 = (CONCAT44(uVar23,uVar7) ^ 0xb916a2c6518b181f) <<
             (((byte)uVar13 ^ *(byte *)puVar3) & 0x3f);
  uVar44 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xcecf589b)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x5c0) ^ uVar34) << (((byte)uVar29 ^ 0xcf) & 0x3f) ^ uVar44;
  lVar5 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar37 = uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8) |
           uVar44 ^ *(ulonglong *)(DAT_1826707a0 + -0x420);
  *puVar2 = uVar37 ^ uVar34;
  uVar12 = DAT_182670834;
  *(ulonglong *)(lVar5 + -0xce0) = 0xc64968ac5e06e02 >> ((bVar18 ^ 99) & 0x3f);
  uVar13 = DAT_182670924;
  uVar35 = (*(ulonglong *)(lVar5 + -0x660) ^ uVar51) -
           (CONCAT44(uVar26,uVar11) ^ 0x677904ea9c5b56e0);
  *(ulonglong *)(lVar5 + -0x6f0) = uVar35 ^ CONCAT44(uVar12,uVar12);
  uVar15 = DAT_182670a68;
  uVar24 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x7d8) = uVar35 - uVar37 ^ uVar24;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x588) =
       (CONCAT44(uVar11,uVar23) ^ 0xfd36fa9126604382) + (uVar34 ^ *puVar17) ^ uVar37;
  *puVar1 = (CONCAT44(uVar29,uVar8) ^ 0xec582be55ea1924b) <<
            ((*(byte *)(lVar5 - (uVar20 ^ 0x4000ef0)) ^ (byte)uVar12) & 0x3f);
  uVar35 = (ulonglong)DAT_182670b14;
  uVar34 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *puVar45 = uVar34 ^ uVar37 ^ uVar28 ^ *puVar49 ^ *(ulonglong *)(lVar5 + -0x400);
  uVar37 = CONCAT44(DAT_182670a40,DAT_182670a40);
  uVar35 = *(ulonglong *)(lVar5 - (uVar42 ^ 0xb8eb61b7)) >> 0x20 ^ uVar37 ^ uVar35;
  *puVar52 = uVar35;
  uVar12 = DAT_1826708f0;
  uVar46 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar34 = (uVar34 ^ *puVar3) << 0x20;
  puVar17 = (ulonglong *)(lVar5 - (uVar43 ^ 0xbceb697f));
  *(ulonglong *)(lVar5 + -0x5c0) = uVar34 ^ uVar46;
  *(ulonglong *)(lVar5 + -0x6b8) = (uVar34 | uVar37 ^ uVar35) ^ uVar46;
  lVar5 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar35 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar40 = (uVar28 ^ *puVar17) - (*(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x7eda2e02)) ^ uVar46) ^
           uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar40;
  uVar12 = DAT_18267091c;
  lVar6 = DAT_1826707a0;
  bVar48 = (byte)uVar7;
  uVar27 = *(ulonglong *)(lVar5 - (uVar20 ^ 0x4000418)) ^ *(ulonglong *)(lVar5 + -0x7d8) ^ uVar35 ^
           uVar24 ^ uVar27;
  *(ulonglong *)(lVar5 + -0xce0) = uVar27;
  uVar28 = (uVar27 ^ uVar35) >> ((bVar48 ^ 0x9a) & 0x3f);
  *(ulonglong *)(lVar6 + -0x660) = uVar28 ^ CONCAT44(uVar12,uVar12);
  *puVar2 = CONCAT44(uVar23,uVar26) ^ 0xa7bc2ecc79f7882d |
            CONCAT44(uVar29,uVar10) ^ 0x1341b084a8967a45;
  uVar37 = CONCAT44(DAT_182670968,DAT_182670968);
  *puVar1 = (uVar35 ^ *puVar21) << ((bVar48 ^ 0x9a) & 0x3f) ^ uVar37;
  puVar45 = (ulonglong *)(lVar6 - (uVar42 ^ 0xb8eb6147));
  uVar27 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  uVar28 = uVar37 ^ *puVar45 | uVar28;
  *(ulonglong *)(lVar6 + -0x6f0) = uVar28 ^ uVar27;
  *(ulonglong *)(lVar6 + -0x588) = uVar28 + (CONCAT44(uVar26,uVar29) ^ 0xaaca295361e092a4);
  puVar21 = (ulonglong *)(lVar6 - (uVar32 ^ 0xcecf5b63));
  uVar37 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *puVar3 = (uVar24 ^ *puVar21) - uVar28 ^ uVar37;
  lVar5 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670838,DAT_182670838);
  *puVar50 = uVar35 ^ uVar27 ^ uVar34 ^ uVar40 ^ uVar28 ^ uVar27;
  uVar28 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar5 + -0x5c0) = (uVar35 ^ *puVar52) >> (bVar48 & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar5 - (uVar20 ^ 0x4000c00)) =
       CONCAT44(uVar23,uVar9) ^ *puVar2 ^ 0x568f6db3b0522699;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x7eda24a2)) =
       (uVar35 ^ *puVar52) << ((bVar19 ^ 6) & 0x3f) ^ uVar27;
  uVar24 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar35 = (uVar28 ^ *puVar25 | uVar27 ^ *(ulonglong *)(lVar5 + -0xc18)) ^ uVar24;
  *(ulonglong *)(lVar5 + -0xce0) = uVar35;
  *(ulonglong *)(lVar5 + -0x660) = 0x39e7c1c90155840e - (uVar16 ^ 0x1048c217c34ec58);
  uVar40 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *puVar1 = (uVar34 ^ *(ulonglong *)(lVar5 + -0x420)) -
            (*(ulonglong *)(lVar5 - (uVar41 ^ 0x8c0204a4)) ^ uVar24) ^ uVar40;
  *(ulonglong *)(lVar5 + -0x588) = CONCAT44(uVar29,uVar29) ^ uVar24 ^ uVar35 ^ 0x7bb54a11c8200d83;
  uVar35 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  uVar16 = *puVar3;
  uVar34 = uVar35 ^ uVar37 ^ uVar46 ^ uVar16 ^ *(ulonglong *)(lVar5 + -0x6b8);
  *(ulonglong *)(lVar5 + -0x7d8) = uVar34;
  uVar12 = DAT_1826708f4;
  *(undefined1 *)(lVar5 + -0x6c9) = **(undefined1 **)(lVar5 - (uVar41 ^ 0x8c020b44));
  uVar28 = (uVar34 ^ uVar35) >> ((bVar31 ^ 200) & 0x3f);
  *puVar2 = uVar28 ^ CONCAT44(uVar12,uVar12);
  lVar5 = DAT_1826707a0;
  uVar35 = (uVar35 ^ uVar34) << ((bVar19 ^ 0x2a) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x400) = uVar35 ^ CONCAT44(DAT_182670920,DAT_182670920);
  uVar12 = DAT_182670ab0;
  uVar35 = uVar35 | uVar28;
  uVar34 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *puVar52 = uVar35 ^ uVar34;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 - (uVar42 ^ 0xb8eb60bf)) = (uVar37 ^ uVar16) - uVar35 ^ uVar28;
  uVar12 = DAT_1826709ec;
  *(ulonglong *)(lVar5 + -0xc18) = uVar34 ^ uVar40 ^ *puVar1 ^ uVar44 ^ *puVar52;
  uVar16 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 - (uVar43 ^ 0xbceb6b1f)) =
       (*(ulonglong *)(lVar5 - (uVar30 ^ 0xfbfffbe7)) >> 0x20 ^ (ulonglong)DAT_182670874) >> 0xe ^
       uVar16;
  uVar12 = DAT_182670894;
  *(ulonglong *)(lVar5 + -0x420) =
       (uVar44 ^ *(ulonglong *)(lVar5 + -0xc18)) << ((bVar18 ^ 0x56) & 0x3f) ^ uVar36;
  uVar13 = DAT_182670940;
  uVar16 = *(ulonglong *)(lVar5 - (uVar38 ^ 0x7eda2c9a)) ^ uVar36 |
           *(ulonglong *)(lVar5 - (uVar41 ^ 0x8c020e24)) ^ uVar16;
  *(ulonglong *)(lVar5 + -0x588) = uVar16 ^ CONCAT44(uVar12,uVar12);
  uVar14 = DAT_182670a60;
  lVar5 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar35 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x8c020efc)) = (uVar40 ^ *puVar45) - uVar16 ^ uVar37;
  *puVar21 = (CONCAT44(uVar10,uVar11) ^ 0xbb375824eecff600) -
             (uVar37 ^ *(ulonglong *)(lVar5 + -0x6b8));
  uVar16 = uVar35 ^ uVar28 ^ uVar24 ^ *(ulonglong *)(lVar5 + -0xce0) ^
           *(ulonglong *)(lVar5 + -0x5c0);
  *(ulonglong *)(lVar5 + -0x400) = (uVar27 ^ *(ulonglong *)(lVar5 + -0x6f0)) + 0x865e560c7da2c6c9;
  uVar41 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *puVar2 = uVar16;
  *puVar3 = *(ulonglong *)(lVar5 - (uVar43 ^ 0xbceb60f7)) >> 0xc ^
            ((ulonglong)uVar14 << 0x14 | (ulonglong)(uVar14 >> 0xc)) ^ uVar41;
  *puVar52 = 0x467c46e8921921cc - (*(ulonglong *)(lVar5 - (uVar38 ^ 0x7eda2c82)) ^ uVar40);
  uVar16 = (uVar35 ^ uVar16) << 0x34;
  uVar24 = CONCAT44(DAT_182670918,DAT_182670918);
  *(ulonglong *)(lVar5 + -0xc18) = uVar16 ^ CONCAT44(DAT_182670954,DAT_182670954);
  uVar16 = *(ulonglong *)(lVar5 - (uVar30 ^ 0xfbfff337)) ^ uVar41 | uVar16;
  uVar35 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar5 + -0x660) = uVar16 ^ uVar24;
  uVar41 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar5 + -0x420) = (uVar28 ^ *(ulonglong *)(lVar5 + -0x5c0)) - uVar16 ^ uVar35;
  uVar12 = DAT_182670aac;
  *(ulonglong *)(lVar5 + -0x7d8) =
       (*(ulonglong *)(lVar5 - (uVar41 ^ 0xb3b973f4)) ^ uVar35) +
       (CONCAT44(uVar7,uVar9) ^ 0x6b3fcde8a7d52b09);
  uVar41 = CONCAT44(uVar12,uVar12);
  uVar16 = *(ulonglong *)(lVar5 - (uVar20 ^ 0x4000e60)) ^ uVar41 ^ uVar24 ^ uVar37 ^
           *(ulonglong *)(lVar5 + -0x6b8);
  uVar20 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar5 + -0xce0) = uVar16;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x7eda2e4a)) =
       (uVar16 ^ uVar41) >> ((bVar19 ^ 0x19) & 0x3f) ^ uVar20;
  uVar16 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *puVar17 = (*(ulonglong *)(lVar5 - (uVar22 ^ 0xaa649b3e)) ^ uVar41) << 0x27 ^ uVar16;
  uVar13 = DAT_182670944;
  uVar41 = CONCAT44(DAT_182670964,DAT_182670964);
  *puVar1 = (uVar16 ^ *(ulonglong *)(lVar5 + -0x400) | uVar20 ^ *(ulonglong *)(lVar5 + -0x6f0)) ^
            uVar41;
  uVar12 = DAT_182670844;
  uVar20 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar32 ^ 0xcecf5e9b)) =
       (uVar37 ^ *puVar39) - (CONCAT44(uVar23,uVar9) ^ 0xf907f1c7f207ecd) ^ uVar20;
  uVar16 = *puVar1;
  uVar22 = CONCAT44(uVar8,DAT_1826707d0);
  *puVar2 = (uVar20 ^ *puVar52) - (uVar41 ^ *puVar1) ^ CONCAT44(uVar12,uVar12);
  uVar20 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar29) * 4) = uVar33;
  *puVar3 = (uVar41 ^ uVar16) - (uVar22 ^ 0x6bf4c17952d5193d) ^ uVar20;
  return;
}



############ FUN_ 180c94b10 size=5726 ############

void FUN_180c94b10(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  uint uVar20;
  uint uVar21;
  byte bVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_100;
  
  uVar9 = DAT_1826707e8;
  uVar8 = DAT_1826707d8;
  uVar6 = DAT_1826707c4;
  uVar5 = DAT_1826707b8;
  uVar4 = DAT_1826707ac;
  lVar2 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707d8;
  uVar49 = (ulonglong)DAT_1826707ac;
  uVar20 = DAT_1826707b8 & DAT_1826707d8;
  uVar31 = (ulonglong)DAT_1826707e8;
  uVar21 = uVar20 ^ 0x7cad1f7e;
  uVar23 = DAT_1826707ac << 0x10 | DAT_1826707ac >> 0x10;
  uVar43 = (ulonglong)uVar23;
  uVar46 = DAT_1826707c4 ^ DAT_1826707e8;
  uVar13 = *(uint *)(&DAT_18260f750 + (uVar37 ^ 0x82d0a68) + (longlong)DAT_182670d84) ^
           DAT_1826707b8;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670d84);
  uVar18 = (ulonglong)DAT_1826709b0;
  uVar44 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar41 = (ulonglong)uVar46;
  uVar33 = CONCAT44(DAT_18267085c,DAT_18267085c) ^ *(ulonglong *)(DAT_1826707a0 + -0x9c8) ^
           *(ulonglong *)(DAT_1826707a0 + -0xf0) ^ uVar44;
  uVar34 = uVar33 ^ CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar25 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  DAT_1826707b4 = uVar23;
  DAT_1826707e4 = uVar21;
  DAT_1826707f0 = uVar46;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar34;
  uVar32 = (ulonglong)uVar5;
  *(ulonglong *)(lVar2 + -0xc18) = uVar34 >> 0x20 ^ uVar25 ^ uVar18;
  uVar7 = DAT_182670ae8;
  uVar34 = (ulonglong)uVar6;
  bVar14 = (byte)uVar5;
  uVar27 = CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar33 = uVar33 << ((bVar14 ^ 0x9b) & 0x3f);
  *(ulonglong *)(lVar2 + -0xac0) = uVar33 ^ uVar27;
  lVar2 = DAT_1826707a0;
  uVar48 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar46 ^ 0x6a75d906)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xcbbf49a6)) ^ uVar25 | uVar33) ^ uVar48;
  uVar47 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar2 + -0xd38) =
       (*(ulonglong *)(lVar2 + -0xf0) ^ uVar44) - (uVar48 ^ *(ulonglong *)(lVar2 + -0x558)) ^ uVar47
  ;
  uVar7 = DAT_182670818;
  uVar25 = (ulonglong)DAT_1826708a0;
  uVar38 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar45 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar18 = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe9c1df84)) ^
           CONCAT44(DAT_1826709fc,DAT_1826709fc) ^ uVar38 ^ uVar45 ^ *(ulonglong *)(lVar2 + -0x588);
  *(ulonglong *)(lVar2 + -0x610) = uVar18;
  lVar2 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar23 ^ 0xde3cec01)) =
       uVar18 >> 0x20 ^ uVar28 ^ uVar25;
  uVar7 = DAT_1826708b8;
  uVar10 = DAT_182670880;
  puVar19 = (ulonglong *)(lVar2 - (uVar43 ^ 0xde3cefd1));
  bVar15 = (byte)uVar4;
  uVar25 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar18 = (ulonglong)uVar21;
  puVar42 = (ulonglong *)(lVar2 - (uVar41 ^ 0x6a75da06));
  *puVar42 = (*puVar19 ^ uVar45) << ((bVar15 ^ 0x1c) & 0x3f) ^ uVar25;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar25 = *(ulonglong *)(lVar2 - (uVar18 ^ 0x7cad189e)) ^ uVar28 |
           uVar25 ^ *(ulonglong *)(lVar2 + -0x658);
  *(ulonglong *)(lVar2 + -0x9c8) = uVar25 ^ uVar33;
  uVar11 = DAT_1826709ac;
  *(ulonglong *)(lVar2 + -0x4c8) = uVar25 ^ 0x6dca843e2dc0540c;
  uVar7 = DAT_182670860;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x1b8)) -
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0x82d03a8)) ^ uVar33) ^ uVar24;
  lVar2 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar7,uVar7);
  puVar29 = (ulonglong *)(DAT_1826707a0 - (uVar49 ^ 0xe9c1d4fc));
  *puVar29 = *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xa1ca9028)) ^
             *(ulonglong *)(DAT_1826707a0 + -0xd38) ^ uVar28 ^ uVar33 ^ uVar47;
  uVar30 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar2 + -0xf0) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xac0)) >> ((bVar14 ^ 0x81) & 0x3f) ^ uVar30;
  uVar7 = DAT_182670a20;
  *(ulonglong *)(lVar2 + -0x588) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xac0)) >> (((byte)uVar10 ^ (byte)*puVar42) & 0x3f);
  uVar25 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xcbbf43ae)) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xac0)) << 6 ^ uVar25;
  uVar28 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar2 + -0x5c0) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x610) | *(ulonglong *)(lVar2 + -0xf0) ^ uVar30) ^ uVar28;
  lVar3 = DAT_1826707a0;
  puVar39 = (ulonglong *)(lVar2 - (uVar49 ^ 0xe9c1daf4));
  *puVar39 = CONCAT44(uVar8,uVar20) ^ 0x7cad1f7e ^ CONCAT44(uVar6,uVar5) ^ 0xb8575c6f9454ce8c;
  uVar7 = DAT_182670838;
  puVar16 = (ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0xde3ce4f9));
  *(ulonglong *)(lVar3 + -0x1b8) =
       (uVar47 ^ *puVar16) - (*(ulonglong *)(lVar3 + -0x5c0) ^ uVar28) ^ uVar45;
  lVar2 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar47 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar25 = *(ulonglong *)(lVar3 - (uVar49 ^ 0xe9c1db64)) ^ uVar33 ^ uVar24 ^ uVar48 ^
           *(ulonglong *)(DAT_1826707a0 + -0xc18);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar25;
  bVar26 = (byte)uVar21;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x571225e3)) =
       (uVar25 ^ uVar33) >> (((byte)uVar8 ^ 0x76) & 0x3f) ^ uVar47;
  uVar23 = DAT_182670a98;
  uVar7 = DAT_182670930;
  uVar35 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  uVar25 = (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar33) << ((bVar26 ^ 0x74) & 0x3f);
  uVar33 = (ulonglong)DAT_182670a98;
  *(ulonglong *)(lVar2 + -0x588) = uVar25 ^ uVar35;
  lVar3 = DAT_1826707a0;
  uVar48 = CONCAT44(uVar7,uVar7);
  uVar36 = CONCAT44(uVar23,uVar23);
  *puVar29 = (uVar47 ^ *(ulonglong *)(lVar2 + -0x658) | uVar25) ^ uVar48;
  uVar38 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0xc18)) - (uVar48 ^ *(ulonglong *)(lVar3 + -0xac0)) ^
       uVar38;
  uVar25 = *(ulonglong *)(lVar3 - (uVar34 ^ 0xa1ca9320)) ^ uVar36 ^ uVar48 ^ uVar45 ^
           *(ulonglong *)(DAT_1826707a0 + -0x1b8);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar25;
  lVar2 = DAT_1826707a0;
  uVar48 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  bVar22 = (byte)(uVar4 >> 0x10);
  *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x6a75d896)) = (uVar25 >> 0x20 ^ uVar33) >> 0xe ^ uVar48;
  uVar7 = DAT_18267084c;
  uVar25 = (uVar36 ^ *(ulonglong *)(lVar2 + -0x610)) << ((bVar22 ^ 0xd3) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd38) = uVar25 ^ CONCAT44(DAT_182670a30,DAT_182670a30);
  *(ulonglong *)(lVar2 + -0x558) =
       (CONCAT44(uVar46,uVar6) ^ 0xd26154339b0dd3c9) << (((byte)uVar6 ^ 0xe1) & 0x3f);
  uVar10 = DAT_182670980;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar25 = uVar25 | *puVar39 ^ uVar48;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar25 ^ uVar33;
  uVar7 = DAT_18267096c;
  uVar48 = CONCAT44(uVar10,uVar10);
  *puVar42 = (*(ulonglong *)(lVar2 - (uVar18 ^ 0x7cad1ce6)) ^ uVar45) - uVar25 ^ uVar48;
  uVar45 = CONCAT44(uVar7,uVar7);
  uVar40 = CONCAT44(DAT_182670a10,DAT_182670a10);
  uVar28 = *(ulonglong *)(lVar2 - (uVar32 ^ 0x5712234b)) ^ *(ulonglong *)(lVar2 + -0x5c0) ^ uVar45 ^
           uVar38 ^ uVar28;
  uVar25 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar2 + -0x588) = uVar28;
  uVar36 = (uVar28 ^ uVar45) >> ((bVar22 ^ 0xcd) & 0x3f);
  local_100 = (byte)uVar9;
  *(ulonglong *)(lVar2 + -0xc18) = uVar36 ^ uVar40;
  uVar45 = (uVar45 ^ uVar28) << ((local_100 ^ 0x8a) & 0x3f);
  *(ulonglong *)(lVar2 + -0x610) = *(ulonglong *)(lVar2 + -0x558) | 0x2f0f628ad9179d8;
  uVar7 = DAT_182670954;
  *(ulonglong *)(lVar2 + -0xac0) = uVar45 ^ uVar25;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar25 = (uVar36 | uVar45) ^ uVar28;
  uVar40 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar2 + -0xd38) = uVar25;
  uVar10 = DAT_182670940;
  *(ulonglong *)(lVar2 + -0x4c8) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0x82d0a90)) ^ uVar38) -
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0x82d0758)) ^ uVar28) ^ uVar40;
  uVar7 = DAT_182670850;
  uVar38 = CONCAT44(uVar10,uVar10);
  uVar45 = CONCAT44(DAT_182670874,DAT_182670874);
  uVar36 = uVar38 ^ uVar28 ^ uVar48 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0x658);
  *(ulonglong *)(lVar2 + -0x1b8) = uVar36;
  *(ulonglong *)(lVar2 + -0x5c0) = (uVar36 ^ uVar38) >> ((local_100 ^ 0xa7) & 0x3f) ^ uVar45;
  uVar25 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x588) = (uVar36 ^ uVar38) << 0x27 ^ uVar25;
  puVar39 = (ulonglong *)(lVar2 - (uVar41 ^ 0x6a75d166));
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xa1ca9cb8)) =
       uVar28 ^ *puVar39 | uVar48 ^ *(ulonglong *)(lVar2 + -0x658);
  uVar38 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  uVar36 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 - (uVar41 ^ 0x6a75d99e)) ^ uVar45 |
       uVar25 ^ *(ulonglong *)(lVar2 + -0x588)) ^ uVar38;
  uVar25 = CONCAT44(DAT_182670a04,DAT_182670a04);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x82d0678)) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0xde3cef99)) ^ uVar48) -
       (uVar36 ^ *(ulonglong *)(lVar2 + -0xbb0)) ^ uVar25;
  uVar11 = DAT_182670a1c;
  uVar10 = DAT_18267093c;
  puVar42 = (ulonglong *)(lVar2 - (uVar49 ^ 0xe9c1d224));
  uVar45 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar2 + -0xac0) =
       (uVar25 ^ *puVar42) - (uVar38 ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar45;
  uVar7 = DAT_182670844;
  uVar25 = CONCAT44(uVar10,uVar10);
  uVar28 = (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar2 + -0x420)) +
           (*(ulonglong *)(lVar2 + -0x400) ^ uVar30);
  *(ulonglong *)(lVar2 + -0xf0) = uVar28 ^ uVar25;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x610)) - uVar28 ^ CONCAT44(uVar7,uVar7);
  *puVar39 = *(ulonglong *)(lVar2 - (uVar43 ^ 0xde3ce009)) ^ *(ulonglong *)(lVar2 + -0x4c8) ^ uVar40
             ^ uVar33 ^ uVar47;
  uVar47 = *(ulonglong *)(lVar2 + -0xd38) ^ uVar47;
  uVar48 = uVar47 >> ((local_100 ^ 0x9f) & 0x3f);
  puVar17 = (ulonglong *)(lVar2 - (uVar32 ^ 0x57122203));
  *(ulonglong *)(lVar2 + -0x558) = uVar48 ^ CONCAT44(DAT_182670aec,DAT_182670aec);
  uVar10 = DAT_182670b00;
  *(longlong *)(lVar2 + -0x588) = -0x45e38b8f7e35f70 << (((byte)uVar7 ^ (byte)*puVar17) & 0x3f);
  uVar11 = DAT_182670af8;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x5c0) = uVar47 << 0x1f ^ uVar28;
  uVar10 = DAT_182670898;
  lVar3 = DAT_1826707a0;
  uVar48 = *(ulonglong *)(lVar2 - (uVar37 ^ 0x82d0fa0)) ^ uVar28 | uVar48;
  puVar39 = (ulonglong *)(DAT_1826707a0 + -0x610);
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar48 ^ CONCAT44(uVar11,uVar11);
  uVar12 = DAT_182670b0c;
  *(ulonglong *)(lVar3 + -0xc18) =
       (uVar38 ^ *puVar39) - (CONCAT44(uVar5,uVar46) ^ 0xf57c38910b997465);
  uVar11 = DAT_1826708fc;
  uVar18 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0x7cad1996)) ^ uVar40) -
           (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0x7d8));
  *(ulonglong *)(lVar3 + -0x9c8) = uVar18 ^ CONCAT44(uVar12,uVar12);
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar47 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar3 + -0x588) = uVar18 - uVar48 ^ uVar40;
  uVar10 = DAT_182670a64;
  uVar4 = DAT_182670a40;
  lVar2 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_182670a40;
  uVar28 = (CONCAT44(uVar6,uVar8) ^ 0x5e35661ff7d2f597) - (*(ulonglong *)(lVar3 + -0x660) ^ uVar35);
  *(ulonglong *)(lVar3 + -0xd38) = uVar28 ^ uVar47;
  uVar18 = CONCAT44(uVar10,uVar10);
  uVar28 = uVar48 + uVar28 ^ uVar18;
  uVar30 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 + -0x558) = uVar28;
  *(ulonglong *)(lVar3 - (uVar49 ^ 0xe9c1dbfc)) =
       uVar30 ^ uVar18 ^ uVar45 ^ uVar28 ^ *(ulonglong *)(lVar3 + -0xac0);
  uVar10 = DAT_182670984;
  uVar18 = *(ulonglong *)(lVar3 + -0x5c0);
  uVar28 = uVar30 ^ uVar18;
  uVar47 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar2 + -0x610) = uVar28 >> ((bVar15 ^ 0x39) & 0x3f) ^ uVar47;
  uVar48 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xc18) = uVar28 << ((bVar26 ^ 0x65) & 0x3f) ^ uVar48;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0xde3cee19)) =
       ((ulonglong)(uVar4 >> 0x11) | uVar38 << 0xf) ^ uVar18 >> 0x11;
  uVar18 = uVar48 ^ *(ulonglong *)(lVar2 + -0xc18) | uVar47 ^ *(ulonglong *)(lVar2 + -0x610);
  uVar38 = CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(lVar2 + -0x4c8) = uVar18 ^ uVar38;
  uVar10 = DAT_18267091c;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0xde3ce301)) ^ uVar45) - uVar18 ^ uVar24;
  uVar47 = CONCAT44(uVar10,uVar10);
  uVar18 = *(ulonglong *)(lVar2 - (uVar37 ^ 0x82d0bd8)) ^ uVar47 ^ uVar40 ^ CONCAT44(uVar7,uVar7) ^
           *(ulonglong *)(lVar2 + -0x588);
  uVar37 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar2 + -0x658) = uVar18;
  uVar7 = DAT_1826709e4;
  uVar31 = (*(ulonglong *)(lVar2 - (uVar31 ^ 0xcbbf43e6)) ^ uVar47) >> ((bVar15 ^ 0x19) & 0x3f);
  uVar28 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar2 + -0xd38) = uVar31 ^ uVar37;
  uVar37 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x558) = (uVar47 ^ uVar18) << (((byte)uVar46 ^ 0x45) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707cc ^ 0xd32c55e2)) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0xde3cec99)) ^ uVar28 | uVar31) ^ uVar37;
  uVar7 = DAT_182670af4;
  *(ulonglong *)(lVar2 + -0xc18) =
       (CONCAT44(uVar5,uVar20) ^ 0x3bc57324f5953b1d) + (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar24);
  uVar23 = DAT_182670908;
  uVar4 = DAT_1826707f4;
  uVar5 = DAT_1826707d4;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar47 = (ulonglong)DAT_182670908;
  uVar18 = (ulonglong)DAT_1826707d4;
  uVar28 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x6a75da4e)) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x588)) - (uVar37 ^ *(ulonglong *)(lVar2 + -0x7d8)) ^
       uVar31;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x68ce7fa)) =
       *(ulonglong *)(lVar2 - (uVar18 ^ 0xde3cee19)) ^ uVar28 ^ uVar37 ^
       *(ulonglong *)(lVar2 + -0x9c8) ^ uVar24;
  uVar4 = DAT_182670998;
  uVar28 = (uVar28 ^ *(ulonglong *)(lVar2 + -0xac0)) << (((byte)uVar8 ^ 0x49) & 0x3f);
  uVar18 = (ulonglong)DAT_182670998;
  uVar47 = ((ulonglong)(uVar23 >> 0x17) | uVar47 << 9) ^ *(ulonglong *)(lVar2 + -0xac0) >> 0x17;
  uVar37 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar2 + -0x1b8) = uVar47 ^ CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar23 = DAT_1826707f0 ^ 0xa151917d;
  *(ulonglong *)(lVar2 + -0x658) = uVar28 ^ uVar37;
  *(uint *)(lVar2 + -0x43c) = uVar23 + 0x8d7d667e;
  uVar28 = uVar28 | uVar47;
  *(ulonglong *)(lVar2 + -0x558) = uVar28 ^ uVar25;
  *(ulonglong *)(lVar2 + -0xd38) = (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar24) - uVar28 ^ uVar33;
  uVar28 = CONCAT44(uVar4,uVar4);
  *puVar42 = uVar28 ^ uVar31 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0x4c8) ^
             *(ulonglong *)(lVar2 + -0x610);
  uVar47 = (ulonglong)DAT_1826707d0;
  uVar37 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  bVar22 = (byte)DAT_1826707d0;
  *(ulonglong *)(lVar2 + -0x588) = (*(ulonglong *)(lVar2 + -0xc18) >> 0x20 ^ uVar18) >> 8 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x7d8) =
       (*(ulonglong *)(lVar2 + -0x5c0) ^ uVar30) << ((bVar22 ^ 0xe) & 0x3f);
  uVar18 = CONCAT44(DAT_182670960,DAT_182670960);
  *puVar29 = (uVar28 ^ *(ulonglong *)(lVar2 + -0xc18)) << 0x18 ^ uVar18;
  uVar10 = DAT_182670a28;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0x571225ab)) ^ uVar31) -
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xc18));
  uVar7 = DAT_182670894;
  uVar4 = DAT_1826707ec;
  lVar3 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar10,uVar10);
  uVar32 = *(ulonglong *)(lVar2 - (uVar49 ^ 0xe9c1dbb4)) ^ uVar37 |
           uVar18 ^ *(ulonglong *)(lVar2 + -0xac0);
  uVar37 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar2 + -0x658) = uVar32 ^ uVar43;
  uVar49 = CONCAT44(uVar7,uVar7);
  uVar18 = CONCAT44(DAT_1826707dc,uVar4);
  *(ulonglong *)(lVar3 + -0x9c8) = (uVar31 ^ *puVar19) - uVar32 ^ uVar49;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar18 ^ CONCAT44(uVar9,uVar6) ^ 0xccd3d7fbece71ed6;
  lVar2 = DAT_1826707a0;
  uVar18 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  puVar39 = (ulonglong *)(lVar3 - (uVar37 ^ 0x120007d8));
  *(ulonglong *)(lVar3 + -0x5c0) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xde3ce4f9)) ^ uVar18 ^ uVar43 ^ uVar33 ^
       uVar32 ^ uVar43;
  uVar48 = (ulonglong)DAT_1826707e0;
  *puVar39 = uVar32 << (((byte)uVar5 ^ 0xfa) & 0x3f);
  uVar4 = DAT_1826707bc;
  uVar28 = (ulonglong)DAT_1826707bc;
  uVar37 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0x5c0)) >> ((bVar15 ^ 8) & 0x3f) ^ uVar37;
  lVar2 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       CONCAT44(uVar4,DAT_1826707a8) ^ CONCAT44(uVar5,uVar8) ^ 0x3e6603a35ca05bb4;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xa1ca9c68)) =
       (*(ulonglong *)(lVar2 - (uVar48 ^ 0xfffffa3d)) ^ uVar18) << 0xc ^ uVar27;
  uVar18 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x6a75d69e)) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0xc18) | *(ulonglong *)(lVar2 + -0x588) ^ uVar27) ^ uVar18;
  uVar7 = DAT_1826707c8;
  uVar32 = CONCAT44(DAT_182670830,DAT_182670830);
  uVar31 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 - (uVar47 ^ 0x412c0417)) =
       (*(ulonglong *)(lVar2 + -0xd38) ^ uVar33) - (uVar18 ^ *(ulonglong *)(lVar2 + -0xac0)) ^
       uVar32;
  uVar37 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  uVar25 = *(ulonglong *)(lVar2 - (uVar38 ^ 0xf20a7862)) ^ uVar37 ^ uVar49 ^
           *(ulonglong *)(lVar2 + -0x9c8) ^ uVar25;
  *(ulonglong *)(lVar2 + -0x4c8) = uVar25;
  uVar18 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(lVar2 + -0x658) = (uVar37 ^ uVar25) >> (((byte)uVar7 ^ 0x87) & 0x3f) ^ uVar43;
  uVar25 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar2 + -0x7d8) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xe9c1daf4)) ^ uVar37) << 7 ^ uVar18;
  *puVar17 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xedc4f8e5)) ^ uVar18 |
             *(ulonglong *)(lVar2 - (uVar34 ^ 0xa1ca9fb8)) ^ uVar43) ^ uVar25;
  uVar7 = DAT_182670acc;
  *(ulonglong *)(lVar2 + -0x5c0) =
       (uVar49 ^ *(ulonglong *)(lVar2 + -0x9c8)) - (uVar25 ^ *(ulonglong *)(lVar2 + -0x1b8)) ^
       uVar44;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar34 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar18 = uVar32 ^ *(ulonglong *)(lVar2 + -0x610) ^ uVar33 ^ uVar25 ^
           *(ulonglong *)(lVar2 + -0x1b8);
  *(ulonglong *)(lVar2 + -0xc18) = uVar18;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xedc4fab5)) =
       (uVar18 ^ uVar33) >> ((bVar14 ^ 0xb5) & 0x3f) ^ uVar34;
  uVar7 = DAT_182670978;
  uVar18 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar2 + -0xd38) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xc18)) << ((bVar26 ^ 0x6c) & 0x3f) ^ uVar18;
  uVar25 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar48 ^ 0xfffffaa5)) =
       (*puVar16 ^ uVar18 | *(ulonglong *)(lVar2 + -0x588) ^ uVar34) ^ uVar25;
  uVar7 = DAT_182670ab0;
  *(ulonglong *)(lVar2 + -0x658) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707f4 ^ 0x68ce9f2)) ^ uVar37 ^ uVar25 ^
       *(ulonglong *)(lVar2 + -0x558);
  uVar37 = CONCAT44(uVar7,uVar7);
  uVar18 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *(ulonglong *)(lVar2 + -0x7d8) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x610)) -
       (CONCAT44(DAT_182670a5c,DAT_182670a5c) ^ *(ulonglong *)(lVar2 + -0x118)) ^ uVar37;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xe9c1d7f4)) =
       (*puVar39 ^ uVar37) - (uVar25 ^ *(ulonglong *)(lVar2 + -0x558)) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (CONCAT44(DAT_1826708b0,DAT_1826708b0) ^ *(ulonglong *)(lVar2 + -0xd88)) +
       (uVar36 ^ *(ulonglong *)(lVar2 + -0xbb0)) ^ CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar21) * 4) = uVar13;
  return;
}



############ FUN_ 180d2c300 size=5452 ############

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

void FUN_180d2c300(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  ulonglong *puVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  byte bVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte local_e8;
  
  uVar4 = DAT_182670980;
  uVar12 = DAT_1826708d8;
  uVar10 = DAT_1826707dc;
  uVar9 = DAT_1826707d4;
  uVar8 = DAT_1826707b8;
  lVar6 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707dc;
  uVar30 = (ulonglong)DAT_1826707d4;
  uVar15 = DAT_1826707dc | DAT_1826707d4;
  uVar46 = (ulonglong)uVar15;
  uVar25 = *(uint *)(&DAT_18260f758 + DAT_182670b40) ^ DAT_1826707d4;
  uVar16 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar15 ^ 0xfefee9f9) + (longlong)DAT_182670b40) ^
           DAT_1826707dc;
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x610);
  uVar38 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar26 = (ulonglong)DAT_182670980;
  DAT_1826707ec = uVar15;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0xde3ce4f9)) ^
        CONCAT44(DAT_182670a38,DAT_182670a38) |
       CONCAT44(DAT_1826709f8,DAT_1826709f8) ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) ^ uVar38;
  uVar21 = CONCAT44(uVar4,uVar4);
  uVar24 = CONCAT44(uVar12,uVar12);
  uVar37 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar6 + -0x658) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x3cdec821)) ^
       CONCAT44(DAT_182670840,DAT_182670840)) -
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0x3cdec051)) ^ uVar38) ^ uVar24;
  uVar4 = *(uint *)(lVar6 + -0x14);
  *puVar3 = *(ulonglong *)(lVar6 - (uVar46 ^ 0xfefee851)) ^ uVar37 ^ uVar21 ^
            *(ulonglong *)(lVar6 + -0xce0) ^ uVar38;
  *(uint *)(lVar6 - ((ulonglong)uVar8 ^ 0x57122787)) =
       uVar4 >> ((byte)*(undefined4 *)(lVar6 + -0x280) & 0x1f);
  uVar4 = DAT_1826707ac;
  uVar34 = (ulonglong)DAT_1826707ac;
  uVar32 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x5712267b)) =
       (*puVar3 >> 0x20 ^ uVar26) >> 0x14 ^ uVar32;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (uVar21 ^ *puVar3) << (((byte)uVar9 ^ 0xcd) & 0x3f) ^ uVar26;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0x5712297b)) =
       CONCAT44(DAT_182670834,DAT_182670834) ^ *(ulonglong *)(lVar6 + -0x7d8) ^
       *(ulonglong *)(lVar6 + -0x1b8) ^ uVar38;
  uVar12 = DAT_182670a00;
  puVar1 = (ulonglong *)(lVar7 + -0x5c0);
  uVar47 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  puVar18 = (ulonglong *)(lVar7 - (uVar31 ^ 0x3cdec119));
  uVar38 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *puVar18 = (uVar26 ^ *(ulonglong *)(lVar7 + -0xc18) | uVar32 ^ *puVar1) ^ uVar47;
  uVar39 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar7 + -0x558) =
       (uVar37 ^ *(ulonglong *)(lVar7 + -0xce0)) - (uVar47 ^ *(ulonglong *)(lVar7 + -0xf0)) ^ uVar38
  ;
  uVar8 = DAT_1826707b8;
  lVar6 = DAT_1826707a0;
  uVar32 = *(ulonglong *)(lVar7 - (uVar31 ^ 0x3cdec461)) ^ CONCAT44(uVar12,uVar12) ^
           *(ulonglong *)(lVar7 + -0x658) ^ uVar39 ^ uVar24;
  *(ulonglong *)(lVar7 + -0xd38) = uVar32;
  uVar12 = DAT_18267099c;
  *(ulonglong *)(lVar7 + -0x9c8) =
       CONCAT44(uVar10,uVar4) ^ 0x54bc05e93097ddc4 | CONCAT44(uVar15,uVar9) ^ 0xe7b777364a6e915e;
  uVar11 = DAT_1826707f0;
  uVar37 = CONCAT44(uVar12,uVar12);
  bVar35 = (byte)uVar15;
  *puVar3 = (uVar39 ^ *(ulonglong *)(lVar6 + -0xd38)) >> (((byte)DAT_1826707f0 ^ 0x79) & 0x3f) ^
            uVar37;
  uVar26 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar4 ^ 0x11227d8)) =
       (uVar39 ^ uVar32) << ((bVar35 ^ 0xee) & 0x3f) ^ uVar26;
  lVar6 = DAT_1826707a0;
  uVar40 = CONCAT44(DAT_182670928,DAT_182670928);
  uVar26 = *(ulonglong *)(DAT_1826707a0 - (uVar46 ^ 0xfefeee31)) ^ uVar26 | uVar37 ^ *puVar3;
  uVar32 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x658);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar26 ^ uVar40;
  uVar12 = DAT_182670824;
  uVar36 = DAT_1826707b8;
  *(ulonglong *)(lVar6 + -0xac0) = (*puVar2 ^ uVar24) - uVar26 ^ uVar32;
  uVar43 = CONCAT44(uVar12,uVar12);
  *puVar1 = uVar43 ^ uVar40 ^ uVar38 ^ uVar26 ^ uVar40 ^ *(ulonglong *)(lVar6 + -0x558);
  bVar5 = (byte)uVar10;
  *(ulonglong *)(lVar6 + -0xc18) = uVar26 + (CONCAT44(uVar8,uVar15) ^ 0xecd33f3db5424e29);
  uVar24 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xde3ce521)) =
       (uVar43 ^ *puVar1) >> (((byte)uVar36 ^ 0xb5) & 0x3f) ^ uVar24;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xde3cec49)) =
       (uVar43 ^ *puVar1) << ((bVar5 ^ 0xdb) & 0x3f) ^ uVar26;
  puVar44 = (ulonglong *)(lVar6 - ((ulonglong)uVar36 ^ 0x57122633));
  uVar37 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  puVar27 = (ulonglong *)(lVar6 - (uVar34 ^ 0x1122d38));
  *(ulonglong *)(lVar6 + -0x9c8) =
       (uVar24 ^ *(ulonglong *)(lVar6 + -0xce0) | *puVar44 ^ uVar26) ^ uVar37;
  uVar12 = DAT_1826709c0;
  lVar7 = DAT_1826707a0;
  *puVar27 = *(ulonglong *)(lVar6 - (uVar30 ^ 0xde3ce879)) ^ CONCAT44(uVar4,DAT_1826707f0) ^ uVar40
             ^ 0x1ab9bd2fa5a08baa;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar26 = (*(ulonglong *)(lVar7 - (uVar46 ^ 0xfefeecb1)) ^ uVar38) -
           (*(ulonglong *)(lVar7 + -0x890) ^ uVar39);
  uVar42 = CONCAT44(DAT_182670884,DAT_182670884);
  *puVar3 = uVar26 ^ CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar14 = DAT_182670a1c;
  uVar13 = DAT_1826709c8;
  *(ulonglong *)(lVar7 + -0x7d8) = uVar26 - (*(ulonglong *)(lVar7 + -0x9c8) ^ uVar37) ^ uVar42;
  uVar12 = DAT_1826708c4;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar28 = CONCAT44(DAT_182670958,DAT_182670958);
  *(ulonglong *)(lVar7 + -0x658) =
       (*(ulonglong *)(lVar7 - (uVar46 ^ 0xfefeef89)) ^ uVar33) +
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar7 + -0x420)) ^ uVar28;
  uVar24 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707b8 ^ 0x57122fa3)) =
       (*(ulonglong *)(lVar7 + -0x9c8) ^ uVar37) -
       (*(ulonglong *)(lVar7 - (uVar31 ^ 0x3cdec7b1)) ^ uVar28) ^ uVar24;
  uVar12 = _DAT_1826708bc;
  lVar6 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar26 = uVar34 ^ *puVar18 ^ uVar32 ^ uVar47 ^ *(ulonglong *)(lVar7 + -0xac0);
  *(ulonglong *)(lVar7 + -0xce0) = uVar26;
  uVar13 = _DAT_1826708c8;
  puVar2 = (ulonglong *)(lVar6 + -0x588);
  uVar38 = (uVar26 ^ uVar34) >> ((bVar5 ^ 0xf9) & 0x3f);
  uVar47 = (uVar34 ^ uVar26) << (((byte)DAT_1826707b8 ^ 0x8b) & 0x3f);
  uVar34 = CONCAT44(uVar12,uVar12);
  *puVar2 = uVar38 ^ uVar34;
  *(ulonglong *)(lVar6 + -0x1b8) = uVar47 ^ CONCAT44(uVar13,uVar13);
  uVar12 = DAT_182670970;
  *(ulonglong *)(lVar6 + -0xd38) = uVar38 | CONCAT44(uVar11,uVar15) ^ 0xe536dd078f0ea211;
  uVar13 = DAT_182670a60;
  uVar41 = CONCAT44(uVar12,uVar12);
  uVar47 = uVar47 | uVar38;
  uVar26 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar6 + -0x558) = uVar47 ^ uVar41;
  uVar38 = (uVar32 ^ *(ulonglong *)(lVar6 + -0xac0)) -
           (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar6 + -0x4c8));
  *puVar3 = uVar38 ^ uVar26;
  uVar4 = DAT_1826707ac;
  lVar6 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       CONCAT44(uVar10,uVar9) ^ 0xcd1ffc27557dac17 | CONCAT44(uVar15,uVar9) ^ 0x34a7bf4a42741f3b;
  uVar12 = _DAT_1826708f8;
  uVar37 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar6 + -0x9c8) = uVar38 - uVar47 ^ uVar37;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0xf0) =
       (CONCAT44(uVar11,uVar4) ^ 0x56085bbffeeddffa) -
       (CONCAT44(DAT_1826708e8,DAT_1826708e8) ^ *(ulonglong *)(lVar6 + -0xbb0)) ^ uVar32;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0x1122ce0)) =
       (*(ulonglong *)(lVar6 - (uVar46 ^ 0xfefee021)) ^ uVar37) << ((bVar5 ^ 0xdf) & 0x3f);
  uVar47 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar26 = (ulonglong)DAT_1826707f0;
  uVar38 = (uVar32 ^ *(ulonglong *)(lVar6 + -0xf0)) + (uVar41 ^ *(ulonglong *)(lVar6 + -0x558)) ^
           uVar47;
  *(ulonglong *)(lVar6 + -0xd38) = uVar38;
  uVar4 = DAT_182670a94;
  puVar19 = (ulonglong *)(lVar6 - (uVar26 ^ 0xa9f7a180));
  uVar26 = (ulonglong)DAT_182670a94;
  *(ulonglong *)(lVar6 + -0x1b8) = uVar34 ^ *puVar44 ^ uVar43 ^ *puVar19;
  uVar41 = CONCAT44(uVar4,uVar4);
  uVar34 = uVar41 ^ uVar38 ^ uVar47 ^ uVar42 ^ *(ulonglong *)(lVar6 + -0x7d8);
  uVar38 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(lVar6 + -0x4c8) = uVar34;
  *(ulonglong *)(lVar6 + -0xac0) = uVar34 >> 0x20 ^ uVar38 ^ uVar26;
  uVar45 = CONCAT44(DAT_182670804,DAT_182670804);
  puVar29 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707b8 ^ 0x5712279b));
  *(ulonglong *)(lVar6 + -0x420) = (uVar41 ^ uVar34) << 0x20 ^ uVar45;
  uVar48 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *puVar3 = (*(ulonglong *)(lVar6 - (uVar31 ^ 0x3cdecb29)) ^ uVar38 | uVar45 ^ *puVar29) ^ uVar48;
  *(ulonglong *)(lVar6 - (uVar46 ^ 0xfefee509)) = 0x5c98d92e838884f0 >> ((bVar35 ^ 0xfa) & 0x3f);
  uVar12 = DAT_1826709fc;
  puVar20 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707ac ^ 0x1122558));
  *puVar20 = (*(ulonglong *)(lVar6 - (uVar30 ^ 0xde3cee19)) ^ uVar42) - (uVar48 ^ *puVar3) ^ uVar45;
  uVar47 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - (uVar46 ^ 0xfefee919)) =
       uVar47 ^ uVar37 ^ uVar24 ^ *(ulonglong *)(lVar6 + -0x9c8) ^ *(ulonglong *)(lVar6 + -0xc18);
  uVar4 = DAT_1826707a8;
  lVar7 = DAT_1826707a0;
  uVar47 = uVar47 ^ *(ulonglong *)(lVar6 + -0xf0);
  uVar43 = (ulonglong)DAT_1826707a8;
  uVar36 = DAT_1826707a8 << 0x10;
  *puVar1 = (CONCAT44(uVar11,uVar9) ^ 0xdbf6bf9f241ee989) -
            (uVar45 ^ *(ulonglong *)(lVar6 + -0x558));
  uVar8 = DAT_1826707a8;
  uVar36 = (uVar36 | uVar4 & 0xff00) << 8 | uVar4 >> 8 & 0xff00 | DAT_1826707a8 >> 0x18;
  uVar34 = CONCAT44(uVar36,uVar4);
  uVar26 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar41 = (ulonglong)uVar36;
  bVar23 = (byte)uVar4;
  *puVar2 = uVar47 >> ((bVar23 ^ 0x1a) & 0x3f) ^ uVar26;
  puVar22 = (ulonglong *)(lVar7 - ((ulonglong)uVar36 ^ 0x3a7d0b4a));
  uVar38 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  DAT_1826707e4 = uVar36;
  *puVar22 = uVar47 << 0x20 ^ uVar32;
  lVar6 = DAT_1826707a0;
  puVar44 = (ulonglong *)(DAT_1826707a0 + -0x1b8);
  uVar26 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar36 ^ 0x3a7d0f7a)) ^ uVar26 |
           uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x1b8);
  uVar24 = uVar26 ^ uVar38;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar24;
  *(ulonglong *)(lVar6 + -0x4c8) =
       (CONCAT44(uVar4,uVar4) ^ 0xa0dc5d07a8644bd1) - (uVar32 ^ *puVar44);
  uVar32 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar6 + -0x420) = (uVar37 ^ *(ulonglong *)(lVar6 + -0x9c8)) - uVar26 ^ uVar32;
  *(uint *)(lVar6 + -0x598) = (uVar36 ^ 0xf15947d1) + (uVar36 ^ 0x42223f40);
  uVar12 = DAT_182670964;
  uVar47 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar26 = uVar47 ^ uVar38 ^ uVar45 ^ uVar24 ^ *(ulonglong *)(lVar6 + -0x558);
  *(ulonglong *)(lVar6 + -0xac0) = uVar26;
  lVar6 = DAT_1826707a0;
  uVar24 = (uVar47 ^ uVar26) >> (bVar23 & 0x3f);
  local_e8 = (byte)(uVar8 >> 0x18);
  uVar26 = (uVar47 ^ uVar26) << ((local_e8 ^ 0xf4) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar24 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x7d8) = uVar26 ^ uVar21;
  uVar12 = DAT_182670978;
  uVar24 = uVar24 | uVar26;
  uVar21 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(lVar6 + -0xc18) = uVar24 ^ uVar21;
  uVar42 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x3a7d0f32)) =
       (uVar45 ^ *(ulonglong *)(lVar6 + -0x558)) - uVar24 ^ uVar42;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (uVar34 ^ 0x8143990193641250) - (uVar34 ^ 0xd45932705c3d6d00);
  uVar47 = CONCAT44(DAT_182670924,DAT_182670924);
  bVar17 = (byte)DAT_1826707ac;
  uVar26 = *(ulonglong *)(lVar6 - (uVar41 ^ 0x3a7d0ce2)) ^ uVar32 ^ uVar48 ^ uVar47 ^
           *(ulonglong *)(lVar6 + -0x420);
  *puVar2 = uVar26;
  uVar24 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *puVar22 = (uVar26 ^ uVar47) >> ((bVar17 ^ 0x16) & 0x3f) ^ uVar24;
  uVar12 = DAT_182670afc;
  *(ulonglong *)(lVar6 + -0x4c8) =
       uVar34 ^ 0xd38ef9ebd3dc3192 | CONCAT44(uVar4,uVar4) ^ 0x6f0c3268347bf533;
  uVar26 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar4 ^ 0xf20a78b2)) ^ uVar47) << 0x2a;
  *(ulonglong *)(lVar6 + -0x9c8) = uVar26 ^ CONCAT44(uVar12,uVar12);
  uVar26 = *(ulonglong *)(lVar6 + -0x1b8) ^ uVar24 | uVar26;
  *(ulonglong *)(lVar6 + -0xd38) = uVar26 ^ uVar37;
  uVar12 = DAT_182670854;
  lVar6 = DAT_1826707a0;
  uVar47 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       (CONCAT44(uVar36,DAT_1826707b8) ^ 0x14124cdc41069a48) +
       (CONCAT44(uVar11,uVar36) ^ 0xed82427a949627f3);
  uVar13 = DAT_18267087c;
  uVar8 = DAT_1826707f0;
  lVar7 = DAT_1826707a0;
  uVar24 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (*(ulonglong *)(lVar6 - (uVar46 ^ 0xfefeedc9)) ^ uVar32) - (uVar37 ^ *puVar27) ^ uVar24;
  uVar12 = DAT_182670ab0;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar26 = uVar26 ^ *puVar1 ^ uVar32 ^ uVar42;
  *(ulonglong *)(lVar7 + -0x7d8) = uVar26;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xa9f7a118)) =
       (uVar26 ^ uVar32) >> ((local_e8 ^ 0xdc) & 0x3f) ^ uVar34;
  *puVar18 = ((ulonglong)(uVar4 >> 10) | uVar47 << 0x16) ^ 0x328894cb7b6f49;
  uVar26 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xa9f7a250)) =
       (*(ulonglong *)(lVar7 + -0x7d8) ^ uVar32) << ((bVar23 ^ 0x28) & 0x3f) ^ uVar26;
  uVar46 = CONCAT44(DAT_182670a18,DAT_182670a18);
  uVar26 = *puVar3 ^ uVar26 | *(ulonglong *)(lVar7 + -0x558) ^ uVar34;
  uVar34 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *(ulonglong *)(lVar7 + -0x4c8) = uVar26 ^ uVar46;
  uVar42 = (uVar42 ^ *puVar19) - uVar26 ^ uVar34;
  *puVar2 = uVar42;
  *(uint *)(lVar7 + -0xcec) = (uVar4 ^ 0x9aff23f2) * -0x3c230247;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar7 + -0x1b8) =
       *(ulonglong *)(lVar7 + -0xce0) ^ uVar26 ^ uVar24 ^ uVar21 ^ *(ulonglong *)(lVar7 + -0xc18);
  *(ulonglong *)(lVar7 + -0x9c8) = (CONCAT44(uVar9,uVar9) ^ 0x69792395a314d466) + 0xdc7bf7b0075f24e7
  ;
  uVar21 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar6 + -0xac0) =
       (*(ulonglong *)(lVar6 + -0x1b8) ^ uVar26) >> ((local_e8 ^ 0xfe) & 0x3f) ^ uVar21;
  uVar26 = (*(ulonglong *)(lVar6 - (uVar43 ^ 0xf20a7c82)) ^ uVar26) << 0x34;
  uVar47 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar6 + -0x420) = uVar26 ^ CONCAT44(DAT_18267080c,DAT_18267080c);
  lVar7 = DAT_1826707a0;
  bVar17 = (byte)DAT_1826707f0;
  uVar21 = (*(ulonglong *)(lVar6 - (uVar41 ^ 0x3a7d0032)) ^ uVar21 | uVar26) ^ uVar47;
  *(ulonglong *)(lVar6 + -0xd38) = uVar21;
  uVar32 = (ulonglong)DAT_1826707d0;
  uVar37 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  *(ulonglong *)(lVar7 + -0xf0) =
       (CONCAT44(uVar4,DAT_1826707d0) ^ 0xc428228dbe618bb6) >> ((bVar17 ^ 0x75) & 0x3f);
  uVar12 = DAT_182670a90;
  *(ulonglong *)(lVar7 + -0x7d8) =
       (*(ulonglong *)(lVar7 + -0xce0) ^ uVar24) - (*puVar27 ^ uVar47) ^ uVar37;
  uVar26 = CONCAT44(uVar12,uVar12);
  *puVar20 = uVar21 ^ uVar42 ^ uVar26 ^ uVar47 ^ uVar34;
  lVar6 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *puVar3 = (*(ulonglong *)(lVar7 + -0x558) ^ uVar26) >> ((bVar5 ^ 0xf0) & 0x3f) ^ uVar24;
  uVar12 = DAT_18267091c;
  uVar21 = (*(ulonglong *)(lVar6 + -0x558) ^ uVar26) << ((bVar35 ^ 0xce) & 0x3f);
  *puVar1 = uVar21 ^ CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar13 = DAT_1826709c4;
  uVar21 = *(ulonglong *)(lVar6 - (uVar31 ^ 0x3cdec7f9)) ^ uVar24 | uVar21;
  uVar26 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar6 + -0xc18) = uVar21 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670a24;
  lVar7 = DAT_1826707a0;
  uVar34 = (*puVar2 ^ uVar34) -
           (*(ulonglong *)(lVar6 - (uVar43 ^ 0xf20a793a)) ^ CONCAT44(uVar13,uVar13));
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar34 ^ uVar26;
  uVar24 = (ulonglong)DAT_1826707cc;
  uVar26 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar7 + -0x1b8) = uVar34 - uVar21 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_18267084c;
  *(ulonglong *)(lVar7 + -0x420) =
       (*(ulonglong *)(lVar7 - (uVar26 ^ 0x163e2c34)) ^ CONCAT44(DAT_1826708b0,DAT_1826708b0)) +
       (*(ulonglong *)(lVar7 - (uVar30 ^ 0xde3ce151)) ^ uVar39) ^ uVar40;
  *(ulonglong *)(lVar7 - (uVar24 ^ 0xd32c58fa)) =
       uVar21 - (uVar40 ^ *puVar29) ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 + -0xf0) =
       uVar38 ^ *(ulonglong *)(lVar7 + -0x7d8) ^ *(ulonglong *)(lVar7 + -0x4c8) ^ uVar37 ^ uVar46;
  uVar21 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar7 + -0xce0) = CONCAT44(uVar4,uVar36) ^ 0xd40fdcac03da3bc3;
  *(ulonglong *)(lVar7 - (uVar43 ^ 0xf20a7002)) =
       (*(ulonglong *)(lVar7 + -0xf0) >> 0x20 ^ (ulonglong)DAT_1826708a4) >> 1 ^ uVar21;
  uVar26 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707b8 ^ 0x5712234b)) ^ uVar38) <<
           (((byte)DAT_1826707f0 ^ 0x5f) & 0x3f);
  *(ulonglong *)(lVar7 + -0x558) = uVar26 ^ CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar30 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *puVar3 = (uVar26 | *(ulonglong *)(lVar7 + -0xd38) ^ uVar21) ^ uVar33;
  uVar26 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar7 - (uVar24 ^ 0xd32c57fa)) =
       (*(ulonglong *)(lVar7 + -0x7d8) ^ uVar37) -
       (*(ulonglong *)(lVar7 - (uVar32 ^ 0x412c045f)) ^ uVar28) ^ uVar30;
  *puVar2 = (uVar30 ^ *puVar1) - (uVar33 ^ *puVar3) ^ uVar26;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar25;
  return;
}



############ FUN_ 180cbae50 size=5533 ############

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

void FUN_180cbae50(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  uint uVar9;
  longlong lVar10;
  longlong lVar11;
  longlong lVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  byte bVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  byte bVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  byte bVar36;
  byte bVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte *pbVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  uint uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  uint uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  byte local_res18;
  byte local_res20;
  byte local_150;
  byte local_120;
  byte local_c8;
  
  uVar20 = DAT_182670a10;
  uVar18 = DAT_1826707dc;
  uVar17 = DAT_1826707d4;
  uVar16 = DAT_1826707c0;
  uVar15 = DAT_1826707b4;
  uVar27 = DAT_1826707b0;
  uVar14 = DAT_1826707ac;
  uVar13 = DAT_1826707a8;
  uVar25 = (ulonglong)DAT_1826707b0;
  uVar50 = DAT_1826707c8 ^ DAT_1826707b0;
  uVar61 = (ulonglong)DAT_1826707a8;
  uVar53 = (ulonglong)DAT_1826707d4;
  uVar59 = DAT_1826707c0 & DAT_1826707e8 ^ 0x9a3be6c2;
  uVar58 = (ulonglong)DAT_1826707dc;
  uVar34 = DAT_1826707a8 | DAT_1826707dc;
  uVar54 = DAT_1826707ac | DAT_1826707b4;
  uVar38 = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  uVar23 = *(uint *)(&DAT_18260f750 + (uVar25 ^ 0x2d259eb1) + (longlong)DAT_182670df4) ^
           DAT_1826707c8;
  uVar9 = *(uint *)(&DAT_18260f760 + DAT_182670df4);
  uVar39 = CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar28 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  uVar35 = (ulonglong)DAT_1826707ac;
  uVar43 = (ulonglong)DAT_1826707b4;
  uVar44 = *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x27d0a7d)) ^
           CONCAT44(DAT_182670a18,DAT_182670a18) ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0) ^ uVar28;
  DAT_1826707d0 = uVar38;
  DAT_1826707e4 = uVar54;
  DAT_1826707ec = uVar50;
  DAT_1826707f0 = uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar44 ^ uVar39;
  lVar10 = DAT_1826707a0;
  uVar41 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x74a0ec08)) ^ uVar39) +
       (CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) ^ uVar41;
  uVar24 = DAT_1826707c8;
  uVar32 = (ulonglong)uVar50;
  *(ulonglong *)(lVar10 + -0x610) = CONCAT44(uVar54,uVar50) << 0x3e ^ 0xc000000000000000;
  uVar20 = DAT_18267087c;
  puVar30 = (ulonglong *)(lVar10 + -0x588);
  uVar55 = CONCAT44(DAT_18267087c,DAT_18267087c);
  uVar29 = (ulonglong)uVar34;
  *puVar30 = uVar44 << (((byte)uVar24 ^ 0xf1) & 0x3f) ^ uVar55;
  lVar10 = DAT_1826707a0;
  bVar36 = (byte)(uVar17 >> 0x10);
  uVar45 = (ulonglong)uVar59;
  uVar51 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar59 ^ 0x9a7fec02)) =
       (*(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar39) >> ((bVar36 ^ 0x70) & 0x3f) ^ uVar51;
  uVar19 = DAT_182670a24;
  puVar31 = (ulonglong *)(lVar10 - ((ulonglong)uVar13 ^ 0xe27289a5));
  puVar1 = (ulonglong *)(lVar10 + -0xac0);
  uVar46 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar10 + -0x3b0) = (*puVar1 ^ uVar51 | *puVar31 ^ uVar55) ^ uVar46;
  uVar39 = (ulonglong)uVar16;
  uVar60 = CONCAT44(uVar19,uVar19);
  puVar2 = (ulonglong *)(lVar10 + -0x630);
  *(ulonglong *)(lVar10 + -0x9c8) =
       *(ulonglong *)(lVar10 - ((ulonglong)uVar38 ^ 0x6e5c5ed2)) ^
       *(ulonglong *)(lVar10 - (uVar39 ^ 0x1c51826)) ^ uVar60 ^ uVar46 ^ uVar41;
  puVar3 = (ulonglong *)(lVar10 + -0xa18);
  *puVar2 = (CONCAT44(uVar27,uVar18) ^ 0x5a302a90c80b0da7) >>
            (((byte)uVar20 ^ *(byte *)puVar30) & 0x3f);
  uVar19 = DAT_182670a40;
  puVar4 = (ulonglong *)(lVar10 + -0x890);
  uVar40 = CONCAT44(DAT_182670a78,DAT_182670a78);
  uVar44 = CONCAT44(DAT_182670b04,DAT_182670b04) ^ *puVar4;
  puVar5 = (ulonglong *)(lVar10 + -0x410);
  bVar37 = (byte)uVar54;
  uVar33 = (*puVar4 >> 0x20 ^ (ulonglong)DAT_182670b04) >> 0x14;
  uVar47 = uVar44 << ((bVar37 ^ 0xe9) & 0x3f);
  uVar52 = (uVar28 ^ *puVar3) + uVar44 ^ uVar40;
  *puVar5 = uVar52;
  puVar6 = (ulonglong *)(lVar10 + -0x658);
  *puVar6 = uVar47 ^ CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar21 = DAT_182670920;
  *(ulonglong *)(lVar10 + -0x68) = uVar33 ^ CONCAT44(DAT_182670a74,DAT_182670a74);
  uVar20 = _DAT_1826708c8;
  puVar7 = (ulonglong *)(lVar10 + -0xbb0);
  uVar44 = CONCAT44(uVar21,uVar21);
  uVar33 = (uVar33 | uVar47) ^ uVar44;
  *(ulonglong *)(lVar10 + -0x998) = uVar33;
  uVar56 = CONCAT44(uVar20,uVar20);
  puVar8 = (ulonglong *)(lVar10 + -0xd38);
  *puVar7 = uVar56 ^ uVar44 ^ uVar52 ^ uVar40 ^ uVar33;
  pbVar42 = (byte *)(*(ulonglong *)(lVar10 + -0x390) ^ (ulonglong)DAT_182670b14);
  bVar22 = (byte)uVar19;
  *(byte *)(lVar10 + -0x7f3) = bVar22 ^ *pbVar42;
  lVar11 = DAT_1826707a0;
  uVar33 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *puVar8 = (*(ulonglong *)(lVar10 - (uVar43 ^ 0x74a0ea30)) ^ uVar56) +
            (*(ulonglong *)(lVar10 + -0xcf8) ^ uVar41) ^ uVar33;
  *(byte *)(lVar11 - (uVar35 ^ 0x27d0814)) = bVar22 ^ *pbVar42;
  uVar20 = DAT_182670878;
  lVar11 = DAT_1826707a0;
  uVar48 = (*puVar7 ^ uVar56) << ((bVar37 ^ 0xdf) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar48 ^ CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar47 = CONCAT44(uVar20,uVar20);
  local_c8 = (byte)uVar50;
  uVar56 = (*(ulonglong *)(lVar11 - (uVar45 ^ 0x9a7fed72)) ^ uVar56) >> ((local_c8 ^ 0x60) & 0x3f);
  local_120 = (byte)uVar17;
  *(ulonglong *)(lVar11 + -0x660) = uVar56 ^ uVar47;
  lVar11 = DAT_1826707a0;
  uVar62 = (ulonglong)DAT_182670894;
  uVar52 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) =
       (CONCAT44(uVar13,uVar14) ^ 0x635057ddebba6851) >> ((local_120 ^ 0x41) & 0x3f);
  uVar44 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar11 - (uVar29 ^ 0xe273aad5)) = (uVar56 | uVar48) ^ uVar44;
  *(ulonglong *)(lVar11 + -0x610) =
       uVar52 ^ uVar44 ^ *(ulonglong *)(lVar11 + -0x6b8) ^ uVar33 ^ *puVar8;
  uVar44 = (ulonglong)DAT_1826707c8;
  *(uint *)(lVar11 + -0xcec) =
       *(uint *)(*(ulonglong *)(lVar11 + -0x590) ^ (ulonglong)DAT_182670a70) ^ uVar19;
  uVar20 = DAT_182670b0c;
  uVar57 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar11 + -0xd88) =
       (*(ulonglong *)(lVar11 - (uVar44 ^ 0xfff7f617)) ^ uVar60) + (uVar40 ^ *puVar5) ^ uVar57;
  lVar12 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar11 - (uVar43 ^ 0x74a0eb40)) =
       (*(ulonglong *)(lVar11 + -0x9c8) ^ uVar60) << (((byte)uVar18 ^ 0x73) & 0x3f) ^ uVar40;
  uVar44 = (*(ulonglong *)(lVar12 + -0x9c8) >> 0x20 ^ (ulonglong)DAT_182670a24) >> 10;
  *(ulonglong *)(lVar12 + -0x3b0) = uVar44 ^ CONCAT44(DAT_182670adc,DAT_182670adc);
  bVar26 = (byte)DAT_1826707c8;
  *puVar31 = (*puVar1 ^ uVar40 | uVar44) ^ uVar41;
  lVar11 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x814) = (DAT_1826707b0 ^ 0x1e16b2ed) << ((bVar26 ^ 0xc2) & 0x1f);
  uVar40 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar44 = (ulonglong)DAT_1826707e8;
  *puVar2 = *(ulonglong *)(lVar11 - (uVar43 ^ 0x74a0e408)) ^ *(ulonglong *)(lVar11 + -0xd88) ^
            uVar40 ^ uVar57 ^ uVar41;
  uVar56 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  *puVar3 = (*(ulonglong *)(lVar11 - (uVar44 ^ 0x406c2630)) ^ uVar40) + (uVar33 ^ *puVar8) ^ uVar56;
  uVar20 = DAT_182670944;
  uVar48 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  local_res18 = (byte)uVar14;
  *puVar4 = (*(ulonglong *)(lVar11 - (uVar45 ^ 0x9a7fe0f2)) ^ uVar40) << ((bVar36 ^ 0x42) & 0x3f) ^
            uVar48;
  uVar33 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(DAT_1826707a0 - (uVar53 ^ 0x5d626804)) =
       (*puVar2 ^ uVar40) >> ((local_res18 ^ 0x45) & 0x3f) ^ uVar33;
  lVar11 = DAT_1826707a0;
  uVar43 = *puVar30;
  uVar44 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  local_res20 = (byte)uVar27;
  uVar33 = (uVar33 ^ *puVar6 | uVar48 ^ *puVar4) ^ uVar44;
  *(ulonglong *)(DAT_1826707a0 + -0x68) = uVar33;
  uVar48 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar11 + -0x998) = (uVar41 ^ uVar43) >> (local_res20 & 0x3f);
  lVar11 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x27d0c9d)) = uVar48 ^ uVar33 ^ uVar44 ^ uVar56 ^ *puVar3
  ;
  *(ulonglong *)(lVar11 - (uVar32 ^ 0xd2d26ad6)) =
       CONCAT44(uVar15,DAT_1826707c8) ^ 0xc3938b5f905a1e6c |
       *(ulonglong *)(lVar11 + -0xcf8) ^ uVar48;
  uVar20 = DAT_182670950;
  *(ulonglong *)(lVar11 + -0x9e0) =
       (*(ulonglong *)(lVar11 - (uVar32 ^ 0xd2d26776)) ^ uVar52) +
       (*(ulonglong *)(lVar11 + -0xd88) ^ uVar57) ^ uVar40;
  lVar11 = DAT_1826707a0;
  uVar57 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (*(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar52) << ((local_res18 ^ 0x45) & 0x3f) ^ uVar57;
  *(ulonglong *)(lVar11 - (uVar39 ^ 0x1c512be)) = uVar25 << 0x21 ^ 0x9bece88a00000000;
  uVar43 = CONCAT44(DAT_182670958,DAT_182670958);
  *(ulonglong *)(lVar11 - (uVar58 ^ 0x42012add)) =
       *(ulonglong *)(lVar11 - (uVar53 ^ 0x5d62684c)) >> 0x20 ^ uVar43 ^ uVar62;
  uVar19 = DAT_1826707e8;
  puVar49 = (ulonglong *)(lVar11 - (uVar61 ^ 0xe2728a95));
  uVar44 = CONCAT44(DAT_18267098c,DAT_18267098c);
  uVar43 = (uVar57 ^ *(ulonglong *)(lVar11 + -0xf0) | uVar43 ^ *puVar49) ^ uVar44;
  *puVar5 = uVar43;
  uVar53 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar11 + -0x9c8) =
       *(ulonglong *)(lVar11 + -0x9e0) ^ uVar53 ^ uVar43 ^ uVar44 ^ uVar40;
  *(byte *)(lVar11 - ((ulonglong)uVar19 ^ 0x406c2601)) =
       *(byte *)(*(ulonglong *)(lVar11 - ((ulonglong)uVar54 ^ 0x76fde275)) ^
                (ulonglong)DAT_182670b14) ^ bVar22;
  uVar53 = (uVar53 ^ *(ulonglong *)(lVar11 + -0x9c8)) +
           (CONCAT44(uVar17,uVar24) ^ 0xebd4ac66e3b412fd);
  *puVar1 = uVar53 ^ uVar40;
  uVar43 = *puVar3;
  *(ulonglong *)(lVar11 + -0x3b0) =
       (uVar56 ^ *puVar3) - (CONCAT44(uVar34,uVar18) ^ 0x248916c95a5115db);
  uVar43 = (CONCAT44(uVar15,uVar16) ^ 0x11554d9b792ff555) + (uVar56 ^ uVar43);
  *puVar8 = uVar43 ^ uVar46;
  uVar41 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *puVar2 = uVar53 + uVar43 ^ uVar41;
  uVar27 = DAT_1826707e0;
  uVar13 = DAT_1826707b8;
  uVar43 = (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x27d0aa5)) ^ uVar40) <<
           (((byte)uVar19 ^ 0xe) & 0x3f);
  uVar46 = (ulonglong)DAT_1826707e0;
  *puVar4 = uVar43 ^ uVar47;
  uVar24 = uVar27 * DAT_1826707ac;
  uVar53 = uVar53 >> (((byte)uVar24 ^ 0xc9) & 0x3f);
  uVar44 = CONCAT44(DAT_18267084c,DAT_18267084c);
  DAT_1826707d8 = uVar24;
  *puVar6 = uVar53 ^ uVar44;
  lVar11 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar27 ^ 0xb8d33457)) = (uVar43 | uVar53) ^ uVar33;
  uVar16 = DAT_182670a1c;
  *(undefined8 *)(lVar11 + -0x998) = 0;
  uVar15 = DAT_1826709a0;
  uVar53 = CONCAT44(uVar16,uVar16);
  puVar31 = (ulonglong *)(lVar11 - (uVar35 ^ 0x27d05ed));
  uVar43 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar11 - ((ulonglong)uVar24 ^ 0x335ac93)) =
       uVar53 ^ uVar33 ^ uVar41 ^ *puVar2 ^ *puVar31;
  lVar12 = DAT_1826707a0;
  uVar52 = (*(ulonglong *)(lVar11 - (uVar46 ^ 0xb8d33d27)) ^ uVar48) +
           (CONCAT44(uVar27,uVar14) ^ 0xe63ed833d21e3a97);
  *puVar7 = uVar52 ^ uVar43;
  uVar56 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar43 = (CONCAT44(uVar24,uVar24) ^ 0x18a40ac725d0641a) +
           (*(ulonglong *)(lVar12 + -0x9e0) ^ uVar40);
  *(ulonglong *)(lVar12 + -0xd88) = uVar43 ^ uVar56;
  lVar11 = DAT_1826707a0;
  uVar47 = CONCAT44(DAT_182670974,DAT_182670974);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       *(ulonglong *)(lVar12 - (uVar46 ^ 0xb8d33787)) ^ uVar44 |
       *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x27d0095)) ^ uVar57;
  uVar33 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(lVar11 + -0x610) = uVar43 + uVar52 ^ uVar47;
  *(ulonglong *)(lVar11 - ((ulonglong)uVar27 ^ 0xb8d33767)) =
       uVar52 << (((byte)uVar24 ^ 0xeb) & 0x3f) ^ uVar33;
  uVar44 = (ulonglong)*(ushort *)(lVar10 + -0xbaa) ^ (ulonglong)(uVar15 >> 0x10);
  *puVar5 = uVar56 ^ *(ulonglong *)(lVar11 + -0xd88) ^ 0xf518afa0eea85070;
  uVar20 = DAT_1826708f0;
  uVar43 = *(ulonglong *)(lVar11 + -0x610);
  *(ulonglong *)(lVar11 + -0x9c8) = uVar44 ^ uVar51;
  uVar21 = DAT_182670aa8;
  uVar44 = (uVar33 ^ *(ulonglong *)(lVar11 + -0x6b8) | uVar44) ^ CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar11 + -0x3b0) = uVar44;
  uVar40 = CONCAT44(uVar21,uVar21);
  uVar44 = uVar40 ^ CONCAT44(uVar20,uVar20) ^ uVar47 ^ uVar43 ^ uVar44;
  *puVar3 = uVar44;
  *puVar8 = (CONCAT44(uVar24,uVar27) ^ 0xd7c8ce3673ccf482) <<
            ((*(byte *)(lVar11 - (uVar32 ^ 0xd2d262d6)) ^ (byte)uVar20) & 0x3f);
  uVar33 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *puVar4 = (uVar40 ^ uVar44) + (uVar41 ^ *puVar2) ^ uVar33;
  *puVar1 = (uVar47 ^ uVar43) + 0x697902cff9e0b678;
  uVar43 = CONCAT44(DAT_182670978,DAT_182670978);
  *(ulonglong *)(lVar11 - (uVar45 ^ 0x9a7fe34a)) =
       (uVar40 ^ uVar44) << ((local_res18 ^ 0x51) & 0x3f) ^ uVar43;
  uVar20 = DAT_18267083c;
  uVar44 = (uVar40 ^ *puVar3) >> ((local_120 ^ 0x50) & 0x3f);
  *(ulonglong *)(lVar11 + -0xcf8) = uVar44 ^ CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar40 = (ulonglong)DAT_1826707c8;
  uVar32 = CONCAT44(DAT_1826707c8,uVar18);
  *(ulonglong *)(lVar11 - (uVar29 ^ 0xe273a58d)) = (uVar44 | uVar43 ^ *puVar30) ^ uVar55;
  uVar43 = *(ulonglong *)(lVar11 + -0x610);
  *puVar6 = (uVar32 ^ 0xbb6ed5d7cc74a8ed) >> (((byte)uVar20 ^ *(byte *)(lVar11 + -0xcf8)) & 0x3f);
  *(ulonglong *)(lVar11 + -0xf0) =
       uVar33 ^ *(ulonglong *)(lVar11 + -0x9e0) ^ uVar55 ^ uVar28 ^ *puVar4;
  uVar56 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  uVar52 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar11 + -0x660) =
       (uVar47 ^ uVar43) + (uVar53 ^ *(ulonglong *)(lVar11 + -0x68)) ^ uVar56;
  *(ulonglong *)(lVar11 - (uVar29 ^ 0xe273a87d)) =
       (uVar53 ^ *(ulonglong *)(lVar11 + -0x68)) << (local_res20 & 0x3f) ^ uVar52;
  uVar20 = DAT_182670a80;
  uVar32 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar11 + -0xd88) =
       *(ulonglong *)(lVar11 - ((ulonglong)uVar38 ^ 0x6e5c5d0a)) >> 7 ^
       ((ulonglong)DAT_182670a1c << 0x19 | (ulonglong)(DAT_182670a1c >> 7)) ^ uVar32;
  uVar14 = DAT_182670a60;
  uVar44 = CONCAT44(uVar20,uVar20);
  uVar43 = *puVar4;
  uVar53 = (ulonglong)DAT_182670a60;
  lVar10 = *(longlong *)(lVar11 + -0x998);
  uVar29 = (*(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707e8 ^ 0x406c2d88)) ^ uVar32 |
           uVar52 ^ *puVar5) ^ uVar44;
  uVar32 = *puVar5;
  *puVar7 = uVar29;
  uVar47 = CONCAT44(uVar14,uVar14);
  uVar44 = uVar47 ^ uVar29 ^ uVar44 ^ uVar56 ^ *(ulonglong *)(lVar11 + -0x660);
  *(longlong *)(lVar11 + -0x9c8) = lVar10 << (((byte)DAT_1826707c4 ^ 0x69) & 0x3f);
  uVar20 = DAT_1826708d4;
  *(ulonglong *)(lVar11 + -0x6b8) = uVar44;
  uVar21 = DAT_18267095c;
  uVar29 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar11 + -0x3b0) = (uVar33 ^ uVar43) + (uVar47 ^ uVar44) ^ uVar29;
  uVar41 = CONCAT44(uVar21,uVar21);
  *puVar8 = (*(ulonglong *)(lVar11 - (uVar35 ^ 0x27d06dd)) ^ uVar47) << ((bVar37 ^ 0xf2) & 0x3f) ^
            uVar41;
  *puVar2 = uVar52 ^ uVar32;
  lVar10 = DAT_1826707a0;
  uVar43 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xfff7f51f)) = (uVar44 >> 0x20 ^ uVar53) >> 9 ^ uVar43;
  uVar32 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar43 = (uVar41 ^ *puVar8 | uVar43 ^ *puVar1) ^ uVar32;
  *puVar3 = uVar43;
  uVar35 = CONCAT44(DAT_182670988,DAT_182670988);
  *puVar31 = *(ulonglong *)(lVar10 - (uVar39 ^ 0x1c5176e)) ^ uVar29 ^ uVar35 ^ uVar43 ^ uVar32;
  uVar20 = DAT_1826708b8;
  uVar43 = *(ulonglong *)(lVar10 + -0xf0);
  *(ulonglong *)(lVar10 + -0xcf8) = (uVar47 ^ *puVar49) << 0x2d;
  uVar21 = DAT_182670a94;
  uVar39 = CONCAT44(uVar20,uVar20);
  bVar26 = (byte)DAT_1826707bc;
  *puVar6 = (uVar56 ^ *(ulonglong *)(lVar10 + -0x660)) + (*(ulonglong *)(lVar10 + -0xf0) ^ uVar28) ^
            uVar39;
  uVar20 = DAT_18267094c;
  uVar14 = DAT_1826707b8;
  uVar32 = (ulonglong)DAT_1826707b8;
  uVar44 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar10 + -0x9e0) = (uVar43 ^ uVar28) << ((local_res20 ^ 0x91) & 0x3f) ^ uVar44;
  uVar27 = DAT_182670a5c;
  uVar53 = (ulonglong)DAT_182670a5c;
  uVar43 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar10 - (uVar32 ^ 0x4724c810)) =
       (*(ulonglong *)(lVar10 + -0xf0) ^ uVar28) >> ((bVar26 ^ 0x35) & 0x3f) ^ uVar43;
  uVar32 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar28 = CONCAT44(uVar27,uVar27);
  uVar43 = (*(ulonglong *)(lVar10 + -0x610) ^ uVar43 | *(ulonglong *)(lVar10 + -0x9e0) ^ uVar44) ^
           uVar32;
  *(ulonglong *)(lVar10 + -0x68) = uVar43;
  uVar43 = uVar28 ^ uVar43 ^ uVar32 ^ uVar39 ^ *puVar6;
  uVar32 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  puVar31 = (ulonglong *)(DAT_1826707a0 + -0x3b0);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar43;
  uVar20 = DAT_182670960;
  local_150 = (byte)uVar59;
  uVar44 = CONCAT44(DAT_182670824,DAT_182670824);
  uVar33 = (uVar43 ^ uVar28) << ((local_150 ^ 199) & 0x3f);
  uVar27 = DAT_1826707b0 - DAT_1826707b8;
  DAT_1826707f4 = uVar27;
  *puVar7 = (uVar29 ^ *puVar31) + (uVar43 ^ uVar28) ^ uVar32;
  lVar10 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar20,uVar20);
  puVar31 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar33 ^ uVar44;
  *(ulonglong *)(lVar10 + -0x9c8) = (*puVar31 >> 0x20 ^ uVar53) >> 0x1b ^ uVar43;
  uVar20 = DAT_1826708d0;
  uVar29 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar10 - ((ulonglong)uVar27 ^ 0xe600d829)) =
       (*(ulonglong *)(lVar10 - (uVar25 ^ 0x2d259771)) ^ uVar43 | uVar33) ^ uVar29;
  *puVar5 = CONCAT44(uVar20,uVar20) ^ *puVar7 ^ uVar29 ^ uVar32 ^ *puVar4;
  uVar35 = *puVar30 ^ uVar35;
  *puVar2 = (uVar39 ^ *puVar6) + uVar35 ^ uVar41;
  uVar20 = DAT_182670a9c;
  *puVar8 = CONCAT44(uVar13,uVar14) ^ 0xfff3bff93fe97a37 | 0xceb237f934a13827;
  *puVar1 = uVar35 << (((byte)uVar27 ^ 0x9c) & 0x3f) ^ CONCAT44(uVar20,uVar20);
  *puVar3 = uVar35 >> ((local_res20 ^ 0xa2) & 0x3f) ^ CONCAT44(DAT_182670954,DAT_182670954);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar9 ^ uVar50) * 4) = uVar23;
  return;
}



############ FUN_ 180cdd700 size=3875 ############

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

void FUN_180cdd700(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  undefined8 uVar4;
  longlong lVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  byte *pbVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  uVar29 = DAT_1826707f0;
  uVar9 = DAT_1826707cc;
  uVar8 = DAT_1826707bc;
  lVar5 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707cc;
  uVar32 = (ulonglong)DAT_1826707f0;
  uVar12 = DAT_1826707a8 * DAT_1826707bc;
  uVar26 = DAT_1826707cc - DAT_1826707f0;
  uVar13 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar12 ^ 0x1f11d658) + (longlong)DAT_182670e58) ^
           DAT_1826707a8;
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670e58) ^ DAT_1826707bc;
  uVar17 = (ulonglong)DAT_1826707cc;
  uVar19 = *(uint *)(DAT_1826707a0 + -0x598) ^ DAT_182670a08 ^ DAT_182670918;
  DAT_1826707d4 = uVar26;
  DAT_1826707dc = uVar12;
  *(uint *)(DAT_1826707a0 + -0x68c) =
       *(uint *)(DAT_1826707a0 + -0xc34) ^ DAT_182670a40 ^ DAT_182670a28;
  uVar15 = (ulonglong)uVar26;
  *(uint *)(lVar5 + -0x540) = uVar19;
  bVar10 = (byte)DAT_182670a7c;
  uVar19 = uVar19 ^ DAT_182670a08;
  pbVar25 = (byte *)((CONCAT44(uVar26,uVar29) ^ 0xc5b6d329e273ac6d) * 0x20 +
                     (CONCAT44(uVar9,uVar12) ^ 0xa82a7f961f11d65a) + *(longlong *)(lVar5 + -0x30));
  *(ulonglong *)(lVar5 + -0x4f8) = (ulonglong)pbVar25 ^ (ulonglong)DAT_1826708f4;
  lVar6 = DAT_1826707a0;
  bVar11 = *pbVar25 ^ bVar10 ^ (byte)DAT_182670adc;
  *(byte *)(lVar5 + -0xc35) = bVar11;
  uVar23 = DAT_1826709f0;
  uVar27 = (uint)(bVar11 ^ bVar10);
  *(uint *)(lVar6 + -0x814) = uVar27 ^ DAT_1826709f0;
  uVar27 = uVar27 << (((byte)uVar8 ^ 0x19) & 0x1f) ^ DAT_1826708b4;
  *(uint *)(lVar5 + -0x280) = uVar19 + (uVar26 ^ 0xe929e0a) ^ DAT_182670a98;
  uVar19 = DAT_1826707a8;
  *(uint *)(lVar5 - (uVar17 ^ 0xa82a7776)) = uVar27;
  uVar27 = (*(uint *)(lVar5 + -0x280) ^ DAT_182670a98) - (*(uint *)(lVar5 + -0x8e0) ^ DAT_1826708b4)
           ^ DAT_182670900;
  *(uint *)(lVar5 + -0x2d4) = uVar27;
  uVar30 = *(uint *)(lVar5 + -0x68c) ^ DAT_182670a40;
  *(uint *)(lVar5 + -0x140) = (uVar27 ^ DAT_182670900) * uVar30 ^ DAT_1826708c4;
  uVar22 = DAT_1826709cc;
  uVar27 = (*(uint *)(lVar5 + -0x814) ^ uVar23) * (uVar19 ^ 0xbfbfcac0) ^ DAT_18267095c;
  *(uint *)(lVar5 + -0x43c) = uVar27;
  uVar23 = DAT_1826709bc;
  uVar27 = (*(uint *)(lVar5 - (uVar32 ^ 0xe273ad2d)) ^ DAT_1826708c4) + (uVar27 ^ DAT_18267095c);
  *(uint *)(lVar5 + -0x9ec) = uVar27 ^ DAT_1826709bc;
  puVar2 = (uint *)(lVar5 + -0x42c);
  *(uint *)(lVar5 + -0xa34) = uVar27 * 0x2000 ^ DAT_1826708d4;
  uVar23 = (*(uint *)(lVar5 + -0x9ec) ^ uVar23) >> (((byte)uVar19 ^ 0xd9) & 0x1f) ^ DAT_18267093c;
  *puVar2 = uVar23;
  puVar3 = (uint *)(DAT_1826707a0 + -0x7e4);
  uVar23 = (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0xbfbfc0fe)) ^ DAT_1826708d4 |
           uVar23 ^ DAT_18267093c) ^ DAT_182670948;
  *puVar3 = uVar23;
  uVar21 = DAT_182670870;
  lVar5 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x14) = uVar23 ^ DAT_182670870 ^ DAT_182670948;
  uVar23 = *(uint *)(lVar5 + -0xb54) ^ DAT_182670848;
  *(ulonglong *)(lVar5 + -0x610) =
       (CONCAT44(uVar9,uVar26) ^ 0xe6d3bc6c733a2af6) -
       (CONCAT44(uVar12,uVar29) ^ 0x1d0559b59096d881);
  uVar23 = uVar23 + uVar30 ^ DAT_1826708d0;
  puVar1 = (uint *)(lVar5 + -0x14);
  *(uint *)(lVar5 + -0xc04) = uVar23;
  uVar30 = uVar23 ^ DAT_182670aa8 ^ DAT_1826708d0;
  *(uint *)(lVar5 + -0xc0c) = uVar30;
  *(ulonglong *)(lVar5 + -0x2b0) = (CONCAT44(uVar8,uVar9) ^ 0x8408db8743bf1aa7) + 0xb3ffe3a954306e46
  ;
  bVar10 = (byte)DAT_182670850;
  uVar27 = DAT_1826707c4;
  uVar23 = DAT_1826707c0;
  uVar33 = (ulonglong)DAT_1826707c4;
  uVar31 = (ulonglong)DAT_1826707c0;
  *(uint *)(lVar5 - ((ulonglong)uVar19 ^ 0xbfbfc952)) = uVar30 ^ uVar22 ^ DAT_182670aa8;
  *(uint *)(lVar5 + -0x3d4) =
       *(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x1a6c01c)) ^ DAT_1826708b0 ^ uVar21;
  uVar20 = uVar27 | uVar23;
  pbVar25 = (byte *)((CONCAT44(uVar26,uVar8) ^ 0xc5b6d32901a6c008) * 0x20 +
                     (CONCAT44(uVar9,uVar19) ^ 0xa82a7f96bfbfcadf) + *(longlong *)(lVar5 + -0x30));
  DAT_1826707e4 = uVar20;
  *(ulonglong *)(lVar5 + -0x270) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182670994;
  *(byte *)(lVar5 - ((ulonglong)uVar23 ^ 0x80522075)) = *pbVar25 ^ bVar10 ^ (byte)DAT_182670adc;
  uVar24 = DAT_182670a8c;
  lVar6 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0xc34) = (*(byte *)(lVar5 + -0xc35) ^ bVar10) ^ DAT_182670a8c;
  uVar16 = (ulonglong)uVar20;
  bVar11 = (byte)uVar20 ^ 0xee;
  uVar28 = (*(uint *)(lVar6 - ((ulonglong)uVar20 ^ 0xcadabc2b)) ^ DAT_1826708b0) +
           (uVar27 ^ 0x1eef29c) ^ DAT_182670a48;
  *(uint *)(lVar6 + -0x598) = uVar28;
  uVar30 = (*(uint *)(lVar6 - (uVar31 ^ 0x80522074)) ^ uVar24) << (bVar11 & 0x1f) ^ DAT_182670b04;
  *(uint *)(lVar6 + -0x540) = uVar30;
  uVar19 = DAT_18267091c;
  lVar5 = DAT_1826707a0;
  *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0xcacabd3f)) =
       (uVar28 ^ DAT_182670a48) - (uVar30 ^ DAT_182670b04) ^ DAT_1826708ec;
  lVar7 = DAT_1826707a0;
  uVar22 = uVar22 ^ *(uint *)(lVar6 + -0x398);
  uVar28 = (*(uint *)(lVar6 - (uVar16 ^ 0xcadabd7f)) ^ DAT_1826708ec) * uVar22 ^ DAT_182670874;
  *(uint *)(DAT_1826707a0 + -0x8e0) = uVar28;
  uVar28 = uVar28 ^ DAT_182670874;
  *(ulonglong *)(lVar7 + -0x5c0) = (CONCAT44(uVar23,uVar20) ^ 0xff596b645104df9e) << 7;
  uVar30 = DAT_18267083c;
  *(uint *)(lVar7 + -0x2d4) =
       (*(uint *)(lVar7 - (uVar15 ^ 0xc5b6df1d)) ^ uVar24) * (uVar23 ^ 0x80522c55) ^ DAT_182670a5c;
  uVar28 = (*(uint *)(lVar7 - ((ulonglong)uVar12 ^ 0x1f11d484)) ^ DAT_182670a5c) + uVar28;
  *(undefined8 *)(lVar5 + -0x4c8) = 0x2c88;
  *(uint *)(lVar5 + -0x814) = uVar28 ^ uVar19;
  uVar28 = uVar28 << (((byte)uVar27 ^ 0xb2) & 0x1f);
  *(uint *)(lVar5 + -0x140) = uVar28 ^ uVar21;
  *(uint *)(lVar5 + -0x43c) = (*(uint *)(lVar5 + -0x814) ^ uVar19) >> 0x13 ^ uVar30;
  *(uint *)(lVar5 + -0x9ec) =
       (*(uint *)(lVar5 - (uVar18 ^ 0xa82a7baa)) ^ uVar30 | uVar28) ^ DAT_18267099c;
  uVar24 = DAT_182670af0;
  uVar19 = (*(uint *)(lVar5 + -0xb54) ^ DAT_182670848) + uVar22 ^ DAT_182670a78;
  *(ulonglong *)(lVar5 + -0x6f0) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar29 ^ 0xe273ad75)) | *(ulonglong *)(lVar5 + -0xbb0);
  uVar22 = DAT_182670930;
  uVar21 = DAT_182670864;
  *(uint *)(lVar5 - (uVar16 ^ 0xcadab5cb)) = uVar19;
  *puVar2 = *(uint *)(lVar5 + -0xa34) ^ DAT_1826709b0 ^ DAT_182670a78;
  *(uint *)(lVar5 - ((ulonglong)uVar27 ^ 0xcacab933)) =
       *(uint *)(lVar5 - (uVar16 ^ 0xcadab613)) ^ DAT_18267099c ^ uVar30;
  *(ulonglong *)(lVar5 + -0x890) = *(ulonglong *)(lVar5 + -0x558) | 0xc827555da2392da;
  bVar10 = (byte)DAT_182670a70;
  *(uint *)(lVar5 + -0xc04) = *puVar2 ^ uVar24 ^ DAT_1826709b0;
  uVar19 = DAT_1826707a8;
  uVar17 = CONCAT44(DAT_1826707a8,uVar29);
  *(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0x80522ba4)) = *(uint *)(lVar5 + -0x68c) ^ uVar22 ^ uVar30;
  pbVar25 = (byte *)((uVar17 ^ 0xbfbfcacae273ac6d) * 0x20 + *(longlong *)(lVar5 + -0x30));
  *(ulonglong *)(lVar5 + -0x4f8) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182670a64;
  *(byte *)(lVar5 - ((ulonglong)uVar27 ^ 0xcacab38a)) = *pbVar25 ^ bVar10 ^ (byte)DAT_182670adc;
  uVar30 = (uint)(*(byte *)(lVar5 + -0xc35) ^ bVar10);
  *(uint *)(lVar5 + -0xc0c) = uVar30 ^ uVar21;
  uVar28 = (*puVar3 ^ uVar22) + (uVar29 ^ 0x2957e14e) ^ DAT_1826709a4;
  *puVar1 = uVar28;
  uVar29 = DAT_182670848;
  uVar28 = uVar28 ^ DAT_1826709a4;
  uVar21 = (uVar27 ^ 0xcacabfbf) * uVar30 ^ DAT_18267090c;
  *(uint *)(lVar5 + -0x3d4) = (uVar23 ^ 0x897b8de2) * 0x3a464bbd;
  uVar30 = uVar30 << (((byte)DAT_1826707cc ^ 0x87) & 0x1f);
  *(uint *)(lVar5 + -0x598) = uVar30 ^ uVar22;
  *(uint *)(lVar5 + -0xc34) = uVar21;
  uVar30 = uVar28 - uVar30 ^ DAT_1826708fc;
  uVar21 = uVar21 ^ DAT_18267090c;
  *(uint *)(lVar5 + -0x540) = uVar30;
  *(uint *)(lVar5 + -0x280) =
       (uVar30 ^ DAT_1826708fc) * (*(uint *)(lVar5 + -0xc04) ^ uVar24) ^ uVar29;
  uVar30 = DAT_182670a50;
  uVar21 = (*(uint *)(lVar5 - (uVar15 ^ 0xc5b6d1a9)) ^ uVar29) + uVar21;
  *(uint *)(lVar5 + -0x8e0) = uVar21 ^ DAT_182670a50;
  *(uint *)(lVar5 - ((ulonglong)uVar19 ^ 0xbfbfc81e)) = uVar21 * 0x2000 ^ DAT_182670978;
  *(uint *)(lVar5 + -0x814) =
       (*(uint *)(lVar5 - (uVar15 ^ 0xc5b6dbc9)) ^ uVar30) >> 0x13 ^ DAT_182670814;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar19 ^ 0xbfbfcf42)) =
       *(ulonglong *)(lVar5 + -0x1b8) ^ *(ulonglong *)(lVar5 + -0x610);
  uVar30 = DAT_18267082c;
  uVar19 = (*(uint *)(lVar5 + -0x814) ^ DAT_182670814 | *(uint *)(lVar5 + -0x2d4) ^ DAT_182670978) ^
           DAT_182670818;
  uVar29 = (*(uint *)(lVar5 + -0xb54) ^ uVar29) + (*(uint *)(lVar5 + -0xc04) ^ uVar24) ^
           DAT_1826708e8;
  uVar17 = (ulonglong)DAT_182670898;
  *(uint *)(lVar5 + -0x140) = uVar19;
  uVar21 = uVar19 ^ DAT_182670894 ^ DAT_182670818;
  uVar19 = DAT_182670860 ^ DAT_1826708e8 ^ uVar29;
  *(uint *)(lVar5 + -0x43c) = uVar29;
  uVar4 = *(undefined8 *)(lVar5 - (uVar32 ^ 0xe273a7dd));
  *(uint *)(lVar5 + -0xa34) = uVar21;
  *(ulonglong *)(lVar5 + -0xcf8) =
       (CONCAT44(uVar9,uVar20) ^ 0x382a34fd0c7f50cb) >> ((byte)uVar4 & 0x3f);
  *(uint *)(lVar5 + -0x398) = uVar19;
  *(uint *)(lVar5 - (uVar32 ^ 0xe273a581)) = uVar30 ^ DAT_182670860 ^ uVar19;
  *puVar2 = *(uint *)(lVar5 + -0xa34) ^ _DAT_1826709e0 ^ DAT_182670894;
  uVar19 = DAT_1826708d4;
  uVar29 = DAT_1826707a8;
  uVar22 = DAT_1826708d4 & 0xff;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707a8 ^ 0xbfbfc8ba)) =
       (CONCAT44(uVar27,uVar26) ^ 0xcacabfbfc5b6d329) * 0x20 +
       (CONCAT44(uVar12,uVar12) ^ 0x1f11d6501f11d65b) + *(longlong *)(lVar5 + -0x30) ^ uVar17;
  *(byte *)(lVar5 + -0xc35) =
       *(byte *)(uVar17 ^ *(ulonglong *)(lVar5 + -0x270)) ^ (byte)uVar19 ^ (byte)DAT_182670adc;
  uVar19 = DAT_182670948;
  uVar21 = DAT_18267084c;
  uVar22 = *(byte *)(lVar5 - (uVar18 ^ 0xa82a73a3)) ^ uVar22;
  uVar24 = (*puVar2 ^ _DAT_1826709e0) + (DAT_1826707bc ^ 0xca828d2b) ^ DAT_182670a40;
  *(uint *)(lVar5 + -0x68c) = uVar22 ^ DAT_182670948;
  *puVar3 = uVar24;
  uVar24 = uVar24 ^ DAT_182670a40;
  *(ulonglong *)(lVar5 + -0x9e0) =
       CONCAT44(uVar9,uVar26) ^ 0xca3d1f3e669d3687 | *(ulonglong *)(lVar5 + -0x588);
  uVar27 = (*(uint *)(lVar5 - ((ulonglong)uVar12 ^ 0x1f11d0dc)) ^ uVar19) << (bVar11 & 0x1f);
  uVar17 = *(ulonglong *)(lVar5 + -0x610);
  *(uint *)(lVar5 + -0x3d4) = uVar27 ^ uVar21;
  uVar19 = *(uint *)(lVar5 + -0x9ec);
  uVar24 = uVar24 - uVar27;
  *puVar1 = uVar24 ^ DAT_182670914;
  uVar27 = DAT_182670800;
  uVar24 = uVar24 * (uVar19 ^ uVar30);
  uVar17 = uVar17 ^ 0x4ccbf3ecca7831f7;
  uVar19 = DAT_1826707bc ^ 0x1a6c003;
  *(ulonglong *)(lVar5 + -0x660) = uVar17;
  *(uint *)(lVar5 + -0x598) = uVar24 ^ uVar27;
  uVar18 = (ulonglong)DAT_1826707c8;
  uVar19 = uVar22 * uVar19 ^ DAT_1826709d4;
  *(uint *)(lVar5 + -0x540) = uVar19;
  uVar19 = uVar19 ^ DAT_1826709d4;
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) = uVar17 - (CONCAT44(uVar8,uVar26) ^ 0xddfcd836ff4cfcb0);
  uVar27 = DAT_182670a10;
  lVar5 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar18 ^ 0xbfbfc6c6)) = uVar24 + uVar19 ^ DAT_182670a10;
  uVar8 = DAT_182670830;
  lVar6 = DAT_1826707a0;
  uVar19 = uVar27 ^ *(uint *)(lVar5 + -0xc0c);
  uVar18 = (ulonglong)DAT_182670ae8;
  uVar22 = uVar19 >> 0x13 ^ DAT_18267094c;
  *(uint *)(DAT_1826707a0 + -0x280) = uVar19 << (((byte)uVar23 ^ 0x4d) & 0x1f) ^ DAT_1826709a4;
  *(uint *)(lVar6 + -0xc34) = uVar22;
  uVar17 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar6 + -0x548) =
       CONCAT44(uVar20,uVar29) ^ 0x90d8d930c207006 | *(ulonglong *)(lVar6 + -0xcf8);
  uVar29 = (*(uint *)(lVar6 + -0xb54) ^ DAT_182670848) + (*(uint *)(lVar6 + -0x9ec) ^ uVar30) ^
           DAT_182670ae4;
  *(uint *)(lVar6 + -0x8e0) =
       (*(uint *)(lVar6 - (uVar17 ^ 0x22a042a9)) ^ DAT_1826709a4 |
       *(uint *)(lVar6 - ((ulonglong)DAT_1826707ac ^ 0xcacab38b)) ^ DAT_18267094c) ^ DAT_182670970;
  uVar19 = DAT_1826707d8;
  uVar17 = (ulonglong)DAT_1826707d8;
  *(uint *)(lVar6 - (uVar33 ^ 0xcacab7ab)) = uVar29;
  *(uint *)(lVar6 + -0xc04) = *(uint *)(lVar6 + -0x814) ^ DAT_18267092c ^ DAT_182670ae4;
  *(uint *)(lVar6 + -0x2d4) =
       (uVar27 ^ *(uint *)(lVar6 + -0xc0c)) + (*(uint *)(lVar6 + -0x3d4) ^ uVar21);
  uVar29 = *(uint *)(lVar6 - (uVar16 ^ 0xcadab71f)) ^ DAT_182670af4 ^ DAT_182670970;
  *(uint *)(lVar6 + -0x43c) = uVar29;
  *(uint *)(lVar6 + -0x140) =
       *(uint *)(lVar6 - (uVar31 ^ 0x80522044)) ^ DAT_182670aa0 ^ DAT_18267092c;
  *(ulonglong *)(lVar6 + -0xb70) = *(ulonglong *)(lVar6 + -0xbb0) | *(ulonglong *)(lVar6 + -0x5c0);
  *(uint *)(lVar6 + -0x398) = uVar8 ^ DAT_182670af4 ^ uVar29;
  *(ulonglong *)(lVar6 + -0x4f8) =
       (CONCAT44(uVar19,uVar12) ^ 0x4a78937f1f11d650) * 0x20 + *(longlong *)(lVar6 + -0x30) + 0x16 ^
       uVar18;
  bVar10 = (byte)DAT_182670a80;
  *(ulonglong *)(lVar6 - (uVar17 ^ 0x4a78977f)) =
       CONCAT44(DAT_1826707e8,uVar23) ^ 0x693f9298f3adb155 |
       CONCAT44(uVar9,DAT_1826707ec) ^ 0x8472f9631cd4c5f0;
  bVar11 = *(byte *)(*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707f4 ^ 0x5cbab063)) ^ uVar18) ^
           bVar10 ^ (byte)DAT_182670adc;
  uVar29 = (uVar8 ^ *(uint *)(lVar6 + -0x398)) + (DAT_1826707a8 ^ 0x749b87e9) ^ DAT_182670a24;
  *(byte *)(lVar6 + -0xc35) = bVar11;
  uVar19 = (bVar11 ^ bVar10) ^ DAT_182670810;
  *(uint *)(lVar6 + -0xa34) = uVar19;
  uVar19 = (uVar19 ^ DAT_182670810) << (((byte)uVar26 ^ 0x38) & 0x1f) ^ DAT_182670868;
  *puVar2 = uVar29;
  *(uint *)(lVar6 - (uVar15 ^ 0xc5b6d4cd)) = uVar19;
  *puVar1 = (*puVar2 ^ DAT_182670a24) - (*puVar3 ^ DAT_182670868) ^ DAT_182670aac;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar13;
  return;
}



############ FUN_ 180d03d50 size=5648 ############

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

void FUN_180d03d50(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte bVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  uint uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong *puVar54;
  byte local_res18;
  byte local_148;
  byte local_138;
  ulonglong uVar18;
  
  uVar10 = DAT_1826707dc;
  uVar9 = DAT_1826707cc;
  uVar8 = DAT_1826707c8;
  uVar7 = DAT_1826707c4;
  uVar6 = DAT_1826707c0;
  uVar5 = DAT_1826707b4;
  lVar3 = DAT_1826707a0;
  uVar53 = (ulonglong)DAT_1826707cc;
  uVar33 = (ulonglong)DAT_1826707b4;
  uVar24 = (ulonglong)DAT_1826707c4;
  uVar35 = (ulonglong)DAT_1826707c8;
  uVar44 = (ulonglong)DAT_1826707c0;
  uVar28 = (ulonglong)DAT_1826707dc;
  uVar51 = DAT_1826707c4 * DAT_1826707c8;
  uVar30 = DAT_1826707c0 | DAT_1826707dc;
  uVar26 = (DAT_1826707cc << 0x10 | DAT_1826707cc & 0xff00) << 8 | DAT_1826707cc >> 8 & 0xff00 |
           DAT_1826707cc >> 0x18;
  uVar16 = DAT_1826707b4 << 0x10 | DAT_1826707b4 >> 0x10;
  uVar18 = (ulonglong)uVar16;
  uVar17 = *(uint *)(&DAT_18260f750 + (uVar18 ^ 0xd63079f3) + (longlong)DAT_182670be4) ^
           DAT_1826707b4;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670be4);
  uVar42 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar39 = CONCAT44(DAT_182670980,DAT_182670980);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  uVar25 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  DAT_1826707ac = uVar51;
  DAT_1826707bc = uVar16;
  DAT_1826707d0 = uVar30;
  DAT_1826707e4 = uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0x71107b8)) ^ uVar42) << 0x39 ^
       uVar39;
  uVar36 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar42 = (uVar42 ^ *puVar20) >> (((byte)uVar6 ^ 7) & 0x3f);
  *(ulonglong *)(lVar3 + -0xf0) = uVar42 ^ uVar25;
  uVar25 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0xd4b8d3c9)) ^ uVar39 | uVar42) ^ uVar36;
  uVar45 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar25;
  lVar3 = DAT_1826707a0;
  uVar50 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar27 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar39 = uVar50 ^ uVar45 ^ uVar36 ^ uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x410);
  uVar25 = CONCAT44(DAT_182670964,DAT_182670964);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar39;
  *(ulonglong *)(lVar3 + -0x558) = (uVar25 ^ *puVar20) + (uVar45 ^ uVar39) ^ uVar27;
  uVar36 = (ulonglong)uVar30;
  uVar42 = CONCAT44(DAT_182670864,DAT_182670864);
  bVar29 = (byte)uVar30;
  bVar34 = (byte)uVar8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x31dfbec4)) =
       (uVar45 ^ uVar39) << ((bVar29 ^ 0x94) & 0x3f) ^ uVar42;
  uVar13 = DAT_182670908;
  uVar25 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar3 + -0xce0) =
       (uVar45 ^ *(ulonglong *)(lVar3 + -0x9e0)) >> ((bVar34 ^ 0x4e) & 0x3f) ^ uVar25;
  uVar14 = DAT_182670930;
  uVar46 = CONCAT44(uVar13,uVar13);
  uVar25 = (*(ulonglong *)(lVar3 - (uVar35 ^ 0xcf83f187)) ^ uVar25 |
           *(ulonglong *)(lVar3 - (uVar24 ^ 0x7110710)) ^ uVar42) ^ uVar46;
  *(int *)(lVar3 + -0x9ec) = *(int *)(lVar3 + -0xb54) << ((byte)*(int *)(lVar3 + -0xb54) & 0x1f);
  *(ulonglong *)(lVar3 + -0x630) = uVar25;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0xd6307a4b)) =
       uVar31 ^ uVar46 ^ uVar27 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x558);
  lVar3 = DAT_1826707a0;
  uVar42 = CONCAT44(DAT_182670a44,DAT_182670a44);
  uVar43 = CONCAT44(DAT_182670818,DAT_182670818);
  bVar48 = (byte)(uVar9 >> 0x18);
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xfd67cd33)) =
       (uVar42 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) +
       (uVar50 ^ *(ulonglong *)(DAT_1826707a0 + -0x410)) ^ uVar43;
  uVar37 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x7110018)) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0xd38)) << ((bVar48 ^ 0x19) & 0x3f) ^ uVar37;
  lVar4 = DAT_1826707a0;
  puVar20 = (ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0xd4b8d209));
  uVar39 = (ulonglong)uVar51;
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0x118);
  bVar2 = (byte)uVar5;
  uVar40 = (uVar42 ^ *puVar20) >> ((bVar2 ^ 0x28) & 0x3f);
  uVar42 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(uint *)(DAT_1826707a0 + -0x68c) = (uVar9 ^ 0xfafbf5f7) + 0x1842dc48;
  uVar13 = DAT_182670a24;
  *(ulonglong *)(lVar4 + -0xd88) = uVar40 ^ uVar42;
  uVar45 = CONCAT44(uVar13,uVar13);
  uVar25 = (uVar40 | uVar37 ^ uVar25) ^ uVar45;
  uVar37 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar25;
  uVar25 = uVar37 ^ uVar25 ^ uVar45 ^ uVar43 ^ *(ulonglong *)(lVar4 + -0x2b0);
  uVar42 = uVar37 ^ uVar25;
  *(ulonglong *)(lVar4 + -0xf0) = uVar25;
  uVar14 = DAT_182670a98;
  uVar13 = DAT_182670a2c;
  uVar32 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar4 + -0xcf8) = (uVar27 ^ *(ulonglong *)(lVar4 + -0x558)) + uVar42 ^ uVar32;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x7110ab0)) = uVar42 << 5 ^ uVar27;
  lVar3 = DAT_1826707a0;
  uVar40 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar4 - (uVar53 ^ 0x31dfbeb4)) =
       (uVar37 ^ *(ulonglong *)(lVar4 + -0xf0)) >> ((bVar29 ^ 0xb8) & 0x3f) ^ uVar40;
  uVar13 = DAT_18267092c;
  uVar25 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar4 + -0x9e0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0xd4b8d481)) ^ uVar27 |
       *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x79fbd050)) ^ uVar40) ^ uVar25;
  uVar12 = DAT_1826707f4;
  uVar52 = CONCAT44(uVar13,uVar13);
  puVar54 = (ulonglong *)(lVar3 - (uVar28 ^ 0xfd67c663));
  uVar49 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar3 - (uVar18 ^ 0xd6307feb)) =
       uVar52 ^ uVar25 ^ uVar32 ^ *puVar54 ^ *(ulonglong *)(lVar3 + -0xcf8);
  uVar11 = DAT_1826707e8;
  uVar25 = (ulonglong)DAT_1826707e8;
  uVar19 = DAT_1826707e8 & uVar12;
  puVar38 = (ulonglong *)(lVar3 - (uVar49 ^ 0xc17c2eb0));
  uVar41 = (ulonglong)uVar19;
  uVar37 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  puVar21 = (ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0x407c20e0));
  DAT_1826707d8 = uVar19;
  *puVar21 = (uVar43 ^ *puVar38) + (uVar31 ^ *(ulonglong *)(lVar3 + -0x3b0)) ^ uVar37;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x727d2aed)) =
       0x591de452036cf669 - (uVar46 ^ *(ulonglong *)(lVar3 + -0x630));
  lVar4 = DAT_1826707a0;
  puVar22 = (ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x727d2d4d));
  uVar27 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x727d23c5)) = (uVar31 ^ *puVar22) << 0x25 ^ uVar27;
  uVar13 = DAT_182670a48;
  uVar42 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  *(ulonglong *)(lVar4 + -0x118) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x407c2fb0)) ^ uVar31) >> (((byte)uVar19 ^ 0x1b) & 0x3f) ^
       uVar42;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xc17c2188)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar49 ^ 0xc17c2d18)) ^ uVar42 |
       uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) ^ uVar31;
  uVar13 = DAT_182670968;
  uVar27 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar42 = uVar27 ^ uVar31 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0xce0) ^
           *(ulonglong *)(lVar3 + -0xd88);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar42;
  *(ulonglong *)(lVar3 + -0x558) =
       (CONCAT44(uVar11,uVar19) ^ 0xa6d71754920d0e6d) << ((bVar29 ^ 0xaf) & 0x3f);
  uVar43 = CONCAT44(uVar13,uVar13);
  uVar31 = (CONCAT44(uVar26,uVar11) ^ 0xef0ce617c38a735f) + (uVar42 ^ uVar27);
  uVar42 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(ulonglong *)(lVar3 + -0xf0) = uVar31 ^ uVar43;
  uVar13 = DAT_1826709d0;
  lVar3 = DAT_1826707a0;
  uVar25 = (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x727d2205)) ^ uVar32) +
           (CONCAT44(uVar7,uVar11) ^ 0x59fce8eca21e1419);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar25 ^ uVar42;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xcf83fb07)) = uVar25 + uVar31 ^ uVar27;
  uVar13 = DAT_182670abc;
  *puVar54 = (CONCAT44(uVar19,uVar6) ^ 0xcfb6c0799a0bd4b8) >>
             (((byte)uVar14 ^ *(byte *)(lVar3 + -0xcf8)) & 0x3f);
  uVar42 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x2b0) =
       (uVar43 ^ *(ulonglong *)(lVar3 + -0xf0)) << (((byte)uVar12 ^ 0x19) & 0x3f) ^ uVar42;
  uVar13 = DAT_182670acc;
  uVar31 = (uVar43 ^ *(ulonglong *)(lVar3 + -0xf0)) >> ((bVar2 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar3 + -0x630) = uVar31 ^ CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar25 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0xc17c2810)) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x28d465b0)) ^ uVar42 | uVar31) ^ uVar25;
  uVar32 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xfd67cc33)) =
       uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x410) ^ uVar32 ^ uVar25 ^
       *(ulonglong *)(DAT_1826707a0 + -0x660);
  lVar3 = DAT_1826707a0;
  *(int *)(DAT_1826707a0 + -0x814) = 0x7ca74da7 << (((byte)uVar12 ^ 0xc) & 0x1f);
  uVar13 = DAT_1826709fc;
  uVar42 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  uVar31 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0xfd67c993)) ^ uVar52) +
           (CONCAT44(uVar7,uVar16) ^ 0xbd336111a5cb5248);
  *(ulonglong *)(lVar3 + -0xd38) = uVar31 ^ uVar42;
  uVar25 = (CONCAT44(uVar9,uVar5) ^ 0xea4dd1415d4be5af) + (uVar37 ^ *(ulonglong *)(lVar3 + -0xce0));
  puVar23 = (ulonglong *)(lVar3 - (uVar41 ^ 0x407c2a60));
  *(ulonglong *)(lVar3 + -0x118) = uVar25 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xd88) = uVar27 ^ *puVar23 | 0xd96368def04a57b;
  uVar15 = DAT_182670a58;
  uVar14 = DAT_182670960;
  uVar28 = CONCAT44(DAT_182670960,DAT_182670960);
  *(ulonglong *)(lVar3 + -0x558) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0xff77f2bb)) ^ uVar42) + uVar25 ^ uVar28;
  uVar13 = DAT_182670910;
  local_res18 = (byte)uVar7;
  uVar42 = uVar31 << ((local_res18 ^ 0x21) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar42 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_1826709bc;
  lVar3 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0x558);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar31 >> ((bVar48 ^ 0x2e) & 0x3f) ^ uVar37;
  uVar19 = DAT_1826709ac;
  uVar52 = (ulonglong)DAT_1826709ac;
  *(ulonglong *)(lVar3 + -0xcf8) = uVar42 >> (((byte)uVar25 ^ (byte)uVar14) & 0x3f);
  uVar13 = DAT_182670adc;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar42 = (*(ulonglong *)(lVar3 - (uVar44 ^ 0x871376b0)) ^ uVar37 | uVar42) ^ uVar31;
  *(ulonglong *)(lVar3 + -0x9e0) = uVar42;
  uVar46 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar3 + -0xf0) = uVar25 ^ uVar42 ^ uVar46 ^ uVar31 ^ uVar28;
  uVar14 = DAT_182670950;
  lVar3 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar53 ^ 0x31dfb824)) ^ uVar46) +
       (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x660)) ^ uVar43;
  uVar13 = DAT_182670868;
  uVar47 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x630) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x71101f0)) ^ uVar46) << ((bVar2 ^ 0x1e) & 0x3f) ^ uVar47;
  lVar3 = DAT_1826707a0;
  uVar46 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xff77fb93)) =
       ((ulonglong)(uVar19 >> 0x12) | uVar52 << 0xe) ^ *(ulonglong *)(DAT_1826707a0 + -0xf0) >> 0x12
       ^ uVar46;
  uVar13 = DAT_182670984;
  uVar42 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  uVar32 = *(ulonglong *)(lVar3 + -0x3b0) ^ uVar32;
  uVar25 = (*(ulonglong *)(lVar3 + -0x630) ^ uVar47 | *(ulonglong *)(lVar3 + -0x410) ^ uVar46) ^
           uVar42;
  *(ulonglong *)(lVar3 + -0x610) = uVar25;
  *(ulonglong *)(lVar3 + -0xce0) =
       *(ulonglong *)(lVar3 + -0x2b0) ^ CONCAT44(uVar13,uVar13) ^ uVar25 ^ uVar42 ^ uVar43;
  uVar42 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar3 + -0xd88) = (*(ulonglong *)(lVar3 + -0x558) ^ uVar28) + uVar32 ^ uVar42;
  uVar28 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar3 + -0x118) = uVar32 << ((bVar34 ^ 0x6b) & 0x3f) ^ uVar28;
  uVar25 = CONCAT44(DAT_182670944,DAT_182670944);
  *puVar20 = uVar32 >> (((byte)uVar6 ^ 0x34) & 0x3f) ^ uVar25;
  uVar14 = DAT_182670990;
  uVar31 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar25 = (*(ulonglong *)(lVar3 - (uVar33 ^ 0x79fbd728)) ^ uVar28 |
           *(ulonglong *)(lVar3 + -0xd38) ^ uVar25) ^ uVar31;
  *(ulonglong *)(lVar3 + -0xcf8) = uVar25;
  lVar3 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar25 = uVar28 ^ uVar25 ^ uVar31 ^ uVar42 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar25;
  lVar4 = DAT_1826707a0;
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x2b0);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       *(ulonglong *)(lVar3 + -0x630) ^ uVar47 ^ 0x38f98654a759870;
  uVar31 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar4 + -0x9e0) = (*puVar20 ^ uVar43) + (uVar28 ^ uVar25) ^ uVar31;
  *puVar23 = (CONCAT44(uVar12,uVar11) ^ 0x3a75bbd3d7096f0d) >>
             ((*(byte *)(lVar4 + -0xce0) ^ (byte)uVar13) & 0x3f);
  uVar25 = CONCAT44(DAT_182670974,DAT_182670974);
  uVar32 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x6b8)) >> (((byte)(uVar5 >> 0x10) ^ 0xfd) & 0x3f);
  *(ulonglong *)(lVar4 + -0xf0) = (uVar28 ^ *(ulonglong *)(lVar4 + -0x6b8)) << 0x3a ^ uVar25;
  uVar52 = CONCAT44(DAT_182670844,DAT_182670844);
  uVar28 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar4 + -0x410) = uVar32 ^ uVar52;
  uVar33 = CONCAT44(DAT_182670934,DAT_182670934);
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0xd4b8dfc1)) ^ uVar25 | uVar32) ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x7110458)) =
       *(ulonglong *)(lVar4 - (uVar18 ^ 0xd630701b)) ^ *(ulonglong *)(lVar4 - (uVar35 ^ 0xcf83fb77))
       ^ uVar33 ^ uVar28 ^ uVar31;
  uVar28 = *(ulonglong *)(lVar4 + -0xce0) ^ CONCAT44(uVar13,uVar13);
  uVar25 = CONCAT44(DAT_182670af0,DAT_182670af0);
  local_138 = (byte)uVar9;
  *(ulonglong *)(lVar4 + -0x118) = uVar28 << ((bVar29 ^ 0x95) & 0x3f) ^ uVar25;
  uVar13 = DAT_182670a3c;
  *(ulonglong *)(lVar4 + -0x3b0) = (uVar42 ^ *(ulonglong *)(lVar4 + -0xd88)) + uVar28 ^ uVar52;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x28d46a38)) = uVar28 >> ((local_138 ^ 0xfe) & 0x3f) ^ uVar32;
  uVar42 = (uVar32 ^ *(ulonglong *)(lVar4 + -0xd38) | uVar25 ^ *(ulonglong *)(lVar4 + -0x118)) ^
           uVar37;
  *(ulonglong *)(lVar4 + -0xcf8) = uVar42;
  lVar3 = DAT_1826707a0;
  uVar25 = *(ulonglong *)(lVar4 + -0x3b0);
  uVar37 = uVar25 ^ uVar45 ^ uVar42 ^ uVar52 ^ uVar37;
  uVar28 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar37;
  uVar43 = (*puVar54 ^ uVar31) + (uVar45 ^ uVar37) ^ uVar28;
  uVar31 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar43;
  uVar42 = (*(ulonglong *)(lVar3 - (uVar49 ^ 0xc17c2a30)) ^ uVar45) << 0x20;
  uVar37 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar3 + -0x2b0) = uVar42 ^ uVar31;
  uVar13 = DAT_1826708a4;
  local_148 = (byte)uVar10;
  uVar45 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0xd6307fcb)) ^ uVar45) >> ((local_148 ^ 0xa3) & 0x3f);
  *(ulonglong *)(lVar3 + -0x660) = uVar45 ^ uVar37;
  uVar47 = CONCAT44(uVar13,uVar13);
  uVar31 = (uVar45 | uVar42) ^ uVar47;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar31;
  lVar3 = DAT_1826707a0;
  uVar49 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar45 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar42 = *(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar33;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar31 ^ uVar49 ^ uVar47 ^ uVar28 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x410) = (uVar25 ^ uVar52) + uVar42 ^ uVar40;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x407c2a10)) = uVar42 << (((byte)uVar11 ^ 0xdd) & 0x3f) ^ uVar45;
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 + -0x558) ^ uVar33) >> ((local_148 ^ 0xa3) & 0x3f) ^ uVar50;
  *puVar21 = (CONCAT44(uVar16,uVar6) ^ 0x1da5a36aa90f4d4d) << ((bVar34 ^ 0x49) & 0x3f);
  uVar25 = CONCAT44(DAT_182670970,DAT_182670970);
  uVar31 = (uVar50 ^ *(ulonglong *)(lVar3 + -0xd88) | *(ulonglong *)(lVar3 + -0x610) ^ uVar45) ^
           uVar25;
  *(ulonglong *)(lVar3 + -0x118) = uVar31;
  *(ulonglong *)(lVar3 + -0xcf8) = CONCAT44(uVar26,uVar9) ^ 0x675aea621eb69e19;
  uVar13 = DAT_18267087c;
  uVar42 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar3 + -0x9e0) =
       *(ulonglong *)(lVar3 - (uVar53 ^ 0x31dfbcc4)) ^ uVar40 ^ uVar42 ^ uVar25 ^ uVar31;
  uVar14 = DAT_1826709a8;
  *(ulonglong *)(lVar3 + -0x630) = uVar37 ^ *puVar23 | uVar32 ^ *(ulonglong *)(lVar3 + -0xd38);
  uVar25 = CONCAT44(uVar14,uVar14);
  *puVar38 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0xff77f433)) ^ uVar28) +
             (CONCAT44(uVar12,uVar5) ^ 0xfe63fafe70554a12) ^ uVar25;
  uVar37 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(uVar27 ^ *(ulonglong *)(lVar3 + -0xa58)) =
       *(ulonglong *)(lVar3 - (uVar35 ^ 0xcf83ffd7)) ^ uVar37 ^ uVar25;
  *puVar22 = CONCAT44(uVar7,uVar12) ^ 0xffff77c2effef957 | 0xfb7775c0c5fc3154;
  uVar14 = DAT_1826709c8;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  puVar22 = (ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xcf83f83f));
  *puVar22 = (CONCAT44(uVar5,uVar7) ^ 0xa269bfa523a1329f) +
             (uVar42 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0)) ^ uVar36;
  lVar4 = DAT_1826707a0;
  puVar21 = (ulonglong *)
            ((*(ulonglong *)(lVar3 - (uVar18 ^ 0xd63073a3)) ^ uVar27) +
            (CONCAT44(uVar51,uVar10) ^ 0x28d46700fd67cf82) * 8);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x558);
  *(ulonglong *)(DAT_1826707a0 + -0x6e8) = (ulonglong)puVar21 ^ CONCAT44(uVar14,uVar14);
  *puVar21 = uVar36 ^ uVar37 ^ *puVar20;
  uVar25 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  *(ulonglong *)(lVar4 + -0xce0) =
       (CONCAT44(uVar10,uVar16) ^ 0xbe4cf0e1a1b8c6cd) + (uVar40 ^ *(ulonglong *)(lVar4 + -0x410)) ^
       uVar25;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x407c2188)) =
       *puVar22 ^ *(ulonglong *)(lVar4 + -0x610) ^ uVar36 ^ uVar45;
  puVar20 = (ulonglong *)
            ((uVar27 ^ *(ulonglong *)(lVar4 + -0xa58)) +
            (CONCAT44(uVar26,uVar8) ^ 0xd4b8df31cf83fd65) * 8);
  *(ulonglong *)(lVar4 + -0x518) = (ulonglong)puVar20 ^ uVar47;
  *puVar20 = uVar25 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0xce0);
  *(ulonglong *)(lVar4 + -0xcf8) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x558)) >>
       (((byte)uVar13 ^ *(byte *)(lVar4 + -0x9e0)) & 0x3f);
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar9,uVar10) ^ 0x942b50168647b95c) + (*(ulonglong *)(lVar4 + -0xf0) ^ uVar49) ^
       uVar32;
  *(ulonglong *)(lVar4 + -0xd38) =
       *(ulonglong *)(lVar4 - (uVar39 ^ 0x28d46618)) ^ uVar32 |
       CONCAT44(uVar16,uVar9) ^ 0x3374cdbf7e01c52;
  *(ulonglong *)(lVar4 + -0xb78) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0xa58)) +
       (CONCAT44(uVar10,uVar30) ^ 0xfd67cf83ff77ff80) * 8 ^ uVar46;
  *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar24 ^ 0x7110a78)) ^ uVar46) =
       *(ulonglong *)(lVar4 - (uVar44 ^ 0x87137c18)) ^ uVar37 ^ uVar32;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar51) * 4) = uVar17;
  return;
}



############ FUN_ 180c831c0 size=5486 ############

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

void FUN_180c831c0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  undefined4 uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte bVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  byte local_58;
  
  uVar16 = DAT_1826709ac;
  uVar12 = DAT_1826707dc;
  uVar6 = DAT_1826707ac;
  lVar4 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707dc;
  uVar22 = (ulonglong)DAT_1826707ac;
  uVar18 = DAT_1826707dc - DAT_1826707ac;
  uVar19 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar18 ^ 0x72a680b2) + (longlong)DAT_182670b58) ^
           DAT_1826707dc;
  uVar20 = *(uint *)(&DAT_18260f760 + DAT_182670b58) ^ DAT_1826707ac;
  puVar38 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0x72a68bca));
  DAT_1826707e8 = uVar18;
  *puVar38 = (CONCAT44(DAT_1826707ac,DAT_1826707dc) ^ 0x5195ae1e51ed9ff8) -
             (CONCAT44(uVar18,DAT_1826707ac) ^ 0x68c537abff2981d6);
  bVar23 = (byte)uVar6;
  uVar25 = (CONCAT44(DAT_18267084c,DAT_18267084c) ^ *(ulonglong *)(lVar4 + -0x4c8)) <<
           ((bVar23 ^ 0x5a) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd38) = uVar25 ^ CONCAT44(uVar16,uVar16);
  uVar3 = DAT_182670870;
  *(int *)(lVar4 + -0x540) = -0x2d11fb44 - *(int *)(lVar4 - ((ulonglong)uVar12 ^ 0xbc2139f2));
  uVar15 = DAT_1826708a8;
  uVar35 = CONCAT44(DAT_182670934,DAT_182670934);
  uVar25 = CONCAT44(uVar3,uVar3) ^ *(ulonglong *)(lVar4 + -0xce0) | uVar25;
  *(ulonglong *)(lVar4 + -0x5c0) = uVar25 ^ uVar35;
  *(uint *)(lVar4 + -0xa34) = (uVar12 ^ 0xc5f2bc05) + (uVar12 ^ 0xa2c79a5d);
  uVar17 = DAT_1826709e4;
  uVar3 = DAT_1826708c4;
  uVar26 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  puVar1 = (ulonglong *)(lVar4 + -0x890);
  uVar24 = (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar4 + -0x660)) - uVar25 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar24;
  uVar9 = DAT_1826707c0;
  uVar25 = CONCAT44(uVar3,uVar3);
  uVar31 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar27 = *(ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x72a6804a)) ^ CONCAT44(uVar17,uVar17) ^
           *(ulonglong *)(lVar4 + -0xbb0) ^ uVar31;
  uVar29 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *puVar1 = uVar27 ^ uVar25;
  uVar3 = DAT_182670a34;
  lVar4 = DAT_1826707a0;
  uVar25 = (*(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0x497ab5cc)) ^ uVar25) >>
           (((byte)uVar9 ^ 0x83) & 0x3f);
  bVar21 = (byte)DAT_1826707b8;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar25 ^ uVar29;
  uVar33 = CONCAT44(uVar3,uVar3);
  uVar27 = uVar27 << ((bVar21 ^ 0x7c) & 0x3f);
  uVar29 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar4 + -0x588) = uVar27 ^ uVar33;
  uVar25 = uVar25 | uVar27;
  uVar27 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar30 = uVar25 ^ uVar29;
  *(ulonglong *)(lVar4 + -0x658) = uVar30;
  uVar3 = DAT_1826708e8;
  *(ulonglong *)(lVar4 + -0x118) = (uVar31 ^ *(ulonglong *)(lVar4 + -0xf0)) - uVar25 ^ uVar27;
  uVar8 = DAT_1826707b4;
  uVar25 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x497ab494)) = uVar25 ^ uVar29 ^ uVar26 ^ uVar30 ^ uVar24;
  uVar3 = DAT_1826707cc;
  uVar7 = DAT_1826707b0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xcedd919a)) =
       (CONCAT44(DAT_1826707b0,uVar12) ^ 0xecdfbac39d99c702) >>
       (((byte)uVar16 ^ *(byte *)(lVar4 + -0xd38)) & 0x3f);
  puVar28 = (ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xe11e175d));
  uVar24 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b8 ^ 0xbf5b0f8e)) =
       (uVar25 ^ *puVar28) >> (((byte)DAT_1826707c4 ^ 0xef) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar4 + -0x1b8) =
       CONCAT44(uVar8,uVar6) ^ uVar29 ^ *(ulonglong *)(lVar4 + -0x658) ^ 0x969de4403a503620;
  uVar29 = CONCAT44(DAT_182670830,DAT_182670830);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xbc213c36)) = (uVar25 ^ *puVar28) << 0x12 ^ uVar29;
  uVar15 = DAT_18267081c;
  puVar28 = (ulonglong *)(lVar4 + -0x220);
  uVar25 = (ulonglong)DAT_1826707a8;
  *puVar38 = (uVar29 ^ *puVar28 | uVar24 ^ *(ulonglong *)(lVar4 + -0x7d8)) ^ uVar33;
  uVar10 = DAT_1826707d4;
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar24 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x6f0)) -
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x177e7e8d)) ^ uVar33) ^ uVar32;
  uVar30 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar4 + -0xce0) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xbf5b094e)) ^
       *(ulonglong *)(lVar4 - (uVar24 ^ 0xde3cec01)) ^ uVar30 ^ uVar27 ^ uVar35;
  uVar30 = uVar30 ^ *(ulonglong *)(lVar4 + -0xce0);
  *(ulonglong *)(lVar4 + -0x660) =
       (CONCAT44(uVar3,uVar18) ^ 0x809c16445f3e6e38) + 0x6cafd811e6968bea;
  uVar15 = DAT_182670a00;
  uVar25 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar30 >> (((byte)DAT_1826707c0 ^ 0x99) & 0x3f) ^ uVar25;
  uVar8 = DAT_1826707e4;
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar15,uVar15);
  *puVar1 = uVar30 << (((byte)uVar3 ^ 0x75) & 0x3f) ^ uVar29;
  uVar14 = DAT_1826707f4;
  uVar39 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xed3a0034)) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0xb70)) << ((bVar23 ^ 0x4e) & 0x3f);
  uVar15 = DAT_182670a7c;
  uVar25 = uVar29 ^ *puVar1 | uVar25 ^ *(ulonglong *)(lVar4 + -0xbb0);
  uVar31 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  uVar29 = uVar25 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x588) = uVar29;
  uVar16 = DAT_18267096c;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xf0) = (uVar27 ^ *(ulonglong *)(lVar4 + -0x118)) - uVar25 ^ uVar36;
  uVar11 = DAT_1826707d8;
  uVar25 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x420) =
       uVar25 ^ uVar29 ^ uVar31 ^ uVar32 ^ *(ulonglong *)(lVar4 + -0x4c8);
  uVar15 = DAT_182670860;
  puVar38 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b8 ^ 0xbf5b0c76));
  uVar35 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar4 + -0xd38) =
       (uVar25 ^ *puVar38) >> (((byte)DAT_1826707b0 ^ 0xa5) & 0x3f) ^ uVar35;
  uVar13 = DAT_1826707f0;
  uVar30 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f0 ^ 0xa9f7a218)) =
       (uVar25 ^ *puVar38) << (((byte)uVar12 ^ 0x31) & 0x3f) ^ uVar30;
  uVar15 = DAT_182670938;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar25 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x88348339));
  puVar38 = (ulonglong *)(DAT_1826707a0 + -0x658);
  uVar29 = (uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) -
           (CONCAT44(DAT_1826707f8,DAT_1826707f8) ^ *(ulonglong *)(DAT_1826707a0 + -0x68));
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x9c8);
  *puVar2 = uVar29 ^ CONCAT44(DAT_182670938,DAT_182670938);
  uVar8 = DAT_1826707b4;
  uVar25 = uVar25 ^ uVar35 | uVar30 ^ *puVar38;
  *(ulonglong *)(lVar4 + -0x1b8) = uVar25 ^ uVar27;
  uVar17 = DAT_182670a1c;
  uVar9 = DAT_1826707d0;
  *(ulonglong *)(lVar4 + -0x7d8) =
       (CONCAT44(uVar3,uVar8) ^ 0x1848e16dc239050d) <<
       ((*(byte *)(lVar4 - ((ulonglong)uVar13 ^ 0xa9f7ad88)) ^ (byte)uVar15) & 0x3f);
  uVar34 = CONCAT44(DAT_182670810,DAT_182670810);
  uVar30 = uVar29 - uVar25 ^ uVar34;
  *puVar28 = uVar30;
  *(int *)(lVar4 + -0x8e0) = *(int *)(lVar4 + -0x140) << (((byte)uVar11 ^ 0x16) & 0x1f);
  uVar8 = DAT_1826707bc;
  uVar35 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar25 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ec ^ 0x856ba03));
  uVar29 = CONCAT44(uVar9,DAT_1826707c4);
  *(ulonglong *)(lVar4 + -0x5c0) =
       (CONCAT44(uVar12,DAT_1826707b8) ^ 0xd0ca7f91be4f6eb6) +
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x588));
  uVar3 = DAT_18267086c;
  *(ulonglong *)(lVar4 + -0x6f0) =
       (uVar25 ^ CONCAT44(uVar17,uVar17)) + (uVar29 ^ 0x7f2c6476f4c4a108) ^ uVar35;
  uVar15 = DAT_1826708d0;
  uVar31 = CONCAT44(uVar3,uVar3);
  uVar25 = *(ulonglong *)(lVar4 + -0xf0);
  *(ulonglong *)(lVar4 + -0x660) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0x497abce4)) ^ uVar27) -
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0xde3cef31)) ^ uVar35) ^ uVar31;
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar27 = CONCAT44(DAT_1826707c0,uVar14);
  *(ulonglong *)(lVar4 + -0xce0) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xbfffae8c)) ^ uVar35 ^ uVar36 ^ uVar25 ^ uVar33;
  uVar3 = DAT_182670abc;
  uVar29 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar4 + -0x6b8) =
       (uVar27 ^ 0xc82fd18c32ef4474) >> ((*(byte *)(lVar4 + -0x420) ^ (byte)uVar16) & 0x3f);
  uVar11 = DAT_1826707e0;
  uVar33 = (*(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x177e791d)) ^ uVar35) >>
           (((byte)uVar8 ^ 0xdd) & 0x3f);
  *puVar1 = uVar33 ^ CONCAT44(uVar3,uVar3);
  lVar4 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       uVar33 - (CONCAT44(uVar7,DAT_1826707b0) ^ 0x1a09395354e5290);
  uVar3 = DAT_18267091c;
  uVar27 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar4 + -0x118) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xde3ce521)) ^ uVar35) << 0x1f ^ uVar27;
  uVar15 = DAT_1826709c0;
  *(ulonglong *)(lVar4 + -0x658) =
       CONCAT44(uVar3,uVar3) ^ *(ulonglong *)(*(ulonglong *)(lVar4 + -0xb78) ^ uVar35);
  uVar16 = DAT_182670ab8;
  uVar33 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0x40a4f6b1)) ^ uVar27 | uVar33
  ;
  uVar29 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *(ulonglong *)(lVar4 + -0xd38) = uVar33 ^ CONCAT44(uVar15,uVar15);
  uVar3 = DAT_1826709c8;
  uVar27 = (uVar36 ^ uVar25) - (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar4 + -0x610));
  *(ulonglong *)(lVar4 + -0x4c8) = uVar27 ^ uVar29;
  uVar25 = CONCAT44(DAT_182670a48,DAT_182670a48);
  uVar29 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar27 - uVar33 ^ uVar26;
  *puVar2 = -(uVar25 ^ *(ulonglong *)(lVar4 + -0x400)) - 0xd ^ uVar29;
  uVar7 = DAT_182670960;
  uVar36 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar35 = (ulonglong)DAT_182670960;
  uVar25 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c8 ^ 0x40a4fe61)) ^ uVar29) + uVar33 ^
           uVar36;
  *(ulonglong *)(lVar4 + -0x588) = uVar25;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0x72a6857a)) =
       uVar27 ^ uVar25 ^ uVar36 ^ uVar34 ^ uVar30;
  uVar29 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xbc213fae)) =
       (*(ulonglong *)(lVar4 - (uVar39 ^ 0x68ce8fa)) ^ uVar27) >> (((byte)DAT_1826707d0 ^ 2) & 0x3f)
       ^ uVar29;
  uVar25 = *puVar28;
  uVar27 = (uVar27 ^ *(ulonglong *)(lVar4 + -0x5c0)) << 0x3b;
  uVar39 = CONCAT44(DAT_182670804,DAT_182670804);
  uVar37 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(ulonglong *)(lVar4 + -0xb70) = uVar27 ^ uVar39;
  uVar27 = uVar29 ^ *(ulonglong *)(lVar4 + -0x1b8) | uVar27;
  uVar29 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(lVar4 + -0x420) = uVar27 ^ uVar37;
  *(undefined8 *)(lVar4 + -0xbb0) = 0x90c7b0ce56db2ea7;
  uVar3 = DAT_1826708d4;
  *(ulonglong *)(lVar4 + -0x6b8) = (uVar34 ^ uVar25) - uVar27 ^ uVar29;
  uVar7 = DAT_1826707e4;
  uVar30 = CONCAT44(uVar3,uVar3);
  uVar25 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar4 + -0xce0) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0xed3a00ec)) ^ uVar30 ^ uVar31 ^ uVar26 ^
       *(ulonglong *)(lVar4 + -0x7d8);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xbf5b0e0e)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0xcedd907a)) >> 0x20 ^ uVar35) >>
       0xc;
  uVar30 = uVar30 ^ *(ulonglong *)(lVar4 + -0xce0);
  uVar27 = CONCAT44(DAT_182670978,DAT_182670978);
  *puVar1 = uVar30 >> (((byte)DAT_1826707c0 ^ 0xb0) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar11,DAT_1826707b4) ^ 0xb66a5d3ecef5c57f) +
       (CONCAT44(uVar9,uVar6) ^ 0x821c78d85a10d9cc);
  uVar30 = uVar30 << ((bVar23 ^ 0x47) & 0x3f);
  uVar25 = (ulonglong)DAT_1826707b8;
  uVar31 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(lVar4 + -0x610) = uVar30 ^ CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xed3a067c)) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xbf5b00c6)) ^ uVar27 | uVar30) ^ uVar31;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x497ab994)) =
       (CONCAT44(DAT_1826707f0,uVar10) ^ 0xd1bbf45744b92db2) -
       (uVar31 ^ *(ulonglong *)(lVar4 + -0xf0));
  uVar3 = DAT_18267088c;
  lVar5 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar4 + -0xd38) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b4 ^ 0xcedd9262)) ^ uVar26) -
       (uVar31 ^ *(ulonglong *)(lVar4 + -0xf0)) ^ uVar33;
  uVar27 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0x177e7c35)) =
       uVar31 ^ uVar29 ^ *(ulonglong *)(lVar4 + -0xf0) ^ *(ulonglong *)(lVar4 + -0x6b8) ^ uVar27;
  uVar27 = *puVar2 ^ uVar27;
  DAT_1826707b4 = DAT_1826707d4 & DAT_1826707ac;
  uVar30 = uVar27 >> ((bVar23 ^ 0x4b) & 0x3f);
  uVar25 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar5 + -0x588) = uVar30 ^ CONCAT44(DAT_182670818,DAT_182670818);
  uVar27 = uVar27 << (((byte)uVar10 ^ 0xe8) & 0x3f);
  *(ulonglong *)(lVar5 + -0x1b8) = uVar27 ^ uVar25;
  uVar7 = DAT_1826707b4;
  lVar4 = DAT_1826707a0;
  uVar27 = uVar30 | uVar27;
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *puVar28 = uVar30 | 0xa8d61be8dd8fb4c;
  uVar26 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar27 ^ uVar26;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x4838af20)) = (uVar29 ^ uVar25) - uVar27 ^ uVar32;
  uVar3 = DAT_182670954;
  uVar35 = (ulonglong)uVar7;
  *(ulonglong *)(lVar4 + -0x5c0) =
       (uVar39 ^ *(ulonglong *)(lVar4 + -0xb70)) << ((bVar23 ^ 0x51) & 0x3f);
  uVar15 = DAT_182670a30;
  uVar29 = CONCAT44(uVar3,uVar3);
  uVar25 = *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x4838a478)) ^ uVar37 ^
           *(ulonglong *)(lVar4 + -0x420) ^ uVar29 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x658) = uVar25;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xde3ce8d9)) =
       (uVar25 ^ uVar29) >> ((bVar23 ^ 0x74) & 0x3f) ^ uVar37;
  uVar3 = DAT_182670a28;
  uVar27 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar4 + -0xce0) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x4838af18)) ^ uVar29) << (((byte)uVar10 ^ 0xd9) & 0x3f) ^
       uVar27;
  uVar25 = *(ulonglong *)(lVar4 + -0xf0);
  uVar30 = CONCAT44(uVar3,uVar3);
  uVar29 = *(ulonglong *)(lVar4 + -0xd38);
  uVar27 = *(ulonglong *)(lVar4 - (uVar24 ^ 0xde3ce521)) ^ uVar27 |
           *(ulonglong *)(lVar4 + -0x118) ^ uVar37;
  *puVar1 = uVar27 ^ uVar30;
  uVar3 = DAT_18267094c;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x610) = (uVar31 ^ uVar25) - (CONCAT44(uVar6,uVar7) ^ 0xa72cdb7eb8fa9cac);
  uVar31 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xde3ced09)) = (uVar33 ^ uVar29) - uVar27 ^ uVar31;
  uVar27 = CONCAT44(DAT_182670984,DAT_182670984);
  uVar25 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar5 + -0x7d8) =
       *(ulonglong *)(lVar5 - (uVar35 ^ 0x4838a1d0)) ^ uVar32 ^ *(ulonglong *)(lVar5 + -0x660) ^
       uVar27 ^ uVar30;
  uVar3 = *(undefined4 *)(lVar5 + -0x3d4);
  *puVar2 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0xde3cee19)) ^ uVar27) >> ((bVar23 ^ 0x68) & 0x3f) ^
            uVar25;
  *(int *)(lVar5 - (uVar22 ^ 0x497ab5bc)) =
       *(int *)(lVar5 - (uVar22 ^ 0x497ab168)) << ((byte)uVar3 & 0x1f);
  lVar4 = DAT_1826707a0;
  uVar25 = *puVar2 ^ uVar25;
  uVar29 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *puVar28 = (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) << (((byte)uVar7 ^ 0x4c) & 0x3f) ^
             uVar29;
  uVar29 = *(ulonglong *)(lVar4 - (uVar22 ^ 0x497abf7c)) ^ uVar29 | uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar29 ^ CONCAT44(DAT_18267092c,DAT_18267092c);
  lVar4 = DAT_1826707a0;
  puVar38 = (ulonglong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (CONCAT44(DAT_1826707b8,uVar10) ^ 0x9cf4b343b6c425a6) << ((byte)uVar25 & 0x3f);
  uVar33 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar24 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar4 + -0x6b8) = (uVar32 ^ *puVar38) - uVar29 ^ uVar33;
  uVar29 = *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x4838a2f0)) ^ uVar24 ^ uVar31 ^ uVar26 ^
           *(ulonglong *)(lVar4 + -0x4c8);
  uVar26 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar4 + -0xb70) = uVar29;
  uVar6 = DAT_1826707c4;
  uVar27 = CONCAT44(uVar10,DAT_1826707c4);
  uVar25 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x4838ac80)) =
       (uVar29 ^ uVar24) >> (((byte)uVar7 ^ 0x79) & 0x3f) ^ uVar26;
  uVar3 = DAT_182670a6c;
  uVar30 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar29 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar4 + -0x420) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x856b42b)) ^ uVar24) << (((byte)uVar6 ^ 0xc6) & 0x3f) ^
       uVar30;
  uVar24 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0x412c045f)) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xbfffa1dc)) ^ uVar30 |
       *(ulonglong *)(lVar4 + -0x5c0) ^ uVar26) ^ uVar24;
  uVar3 = DAT_182670854;
  *(ulonglong *)(lVar4 + -0xce0) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x4c8)) - (uVar24 ^ *(ulonglong *)(lVar4 + -0x658)) ^
       CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar25 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar4 + -0x118) =
       *(ulonglong *)(lVar4 + -0x6b8) ^ uVar25 ^ uVar24 ^ uVar33 ^ *(ulonglong *)(lVar4 + -0x658);
  uVar3 = DAT_182670998;
  uVar6 = DAT_1826707a8;
  uVar25 = *(ulonglong *)(lVar4 + -0x118) ^ uVar25;
  *(ulonglong *)(lVar4 + -0xf0) =
       uVar24 ^ *(ulonglong *)(lVar4 + -0x658) | uVar27 ^ 0x785b48f5be34fb35;
  uVar27 = CONCAT44(uVar3,uVar3);
  uVar29 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar4 + -0x610) = uVar25 >> (((byte)uVar6 ^ 0xf3) & 0x3f) ^ uVar27;
  uVar24 = CONCAT44(DAT_182670928,DAT_182670928);
  *(int *)(lVar4 + -0x814) = *(int *)(lVar4 - (uVar29 ^ 0x163e2224)) * *(int *)(lVar4 + -0x8e0);
  uVar3 = DAT_182670a38;
  local_58 = (byte)uVar18;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x497ab064)) = uVar25 << ((local_58 ^ 0x88) & 0x3f) ^ uVar24;
  uVar29 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *puVar1 = (*(ulonglong *)(lVar4 + -0x610) ^ uVar27 | uVar24 ^ *(ulonglong *)(lVar4 + -0xd38)) ^
            uVar29;
  uVar25 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x497aba84)) =
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar33) -
       (CONCAT44(uVar3,uVar3) ^ *(ulonglong *)(lVar4 + -0x438)) ^ uVar25;
  uVar6 = DAT_1826707c8;
  uVar25 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0xed3a0154)) ^ uVar25) -
           (*puVar1 ^ uVar29);
  *puVar28 = uVar25 ^ uVar36;
  *puVar2 = uVar25 << (((byte)uVar6 ^ 0xbe) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar19;
  return;
}



############ FUN_ 180cc4040 size=5186 ############

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

void FUN_180cc4040(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  byte bVar15;
  uint uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_res18;
  byte local_b0;
  
  uVar4 = DAT_182670a98;
  uVar5 = DAT_182670a34;
  uVar9 = DAT_1826707ec;
  uVar16 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707ec;
  uVar26 = (ulonglong)DAT_1826707b8;
  uVar18 = DAT_1826707ec * DAT_1826707b8;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar29 ^ 0xbcffd390) + (longlong)DAT_182670e10);
  uVar30 = (ulonglong)uVar18;
  uVar13 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar18 ^ 0x394f6410) + (longlong)DAT_182670e10) ^
           DAT_1826707b8;
  uVar20 = (ulonglong)DAT_1826707b8;
  uVar17 = (ulonglong)DAT_1826709ac;
  uVar28 = (ulonglong)DAT_182670a34;
  uVar19 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar14 = DAT_1826709ac >> 0x12;
  bVar36 = (byte)DAT_1826707ec;
  uVar31 = (*(ulonglong *)(DAT_1826707a0 + -0x630) ^ uVar19) << ((bVar36 ^ 0xb6) & 0x3f);
  DAT_1826707e0 = uVar18;
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar31 ^ CONCAT44(DAT_182670874,DAT_182670874);
  uVar23 = CONCAT44(uVar5,uVar5);
  puVar24 = (ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x3434c330));
  uVar20 = ((ulonglong)uVar14 | uVar17 << 0xe) ^
           *(ulonglong *)(lVar2 - (uVar20 ^ 0x3434c7b0)) >> 0x12;
  uVar14 = DAT_182670a9c >> 8;
  *(ulonglong *)(lVar2 + -0x410) = uVar20 ^ CONCAT44(uVar4,uVar4);
  uVar4 = DAT_182670840;
  *(ulonglong *)(lVar2 + -0xd88) = (ulonglong)uVar14 ^ *puVar24 >> 0x28;
  uVar17 = CONCAT44(uVar4,uVar4);
  uVar31 = (uVar31 | uVar20) ^ uVar17;
  uVar20 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar31;
  *(ulonglong *)(lVar2 + -0x558) =
       uVar20 ^ uVar23 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0xce0) ^ uVar31;
  uVar4 = DAT_182670970;
  puVar37 = (ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xbcffd280));
  uVar39 = CONCAT44(DAT_182670a80,DAT_182670a80);
  uVar32 = *(ulonglong *)(DAT_1826707a0 + -0x118) ^ CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) =
       (CONCAT44(DAT_1826707fc,DAT_1826707fc) ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0)) +
       (*puVar37 ^ CONCAT44(DAT_182670ad8,DAT_182670ad8)) ^ uVar39;
  lVar2 = DAT_1826707a0;
  bVar15 = (byte)uVar18;
  uVar31 = uVar32 << ((bVar15 ^ 0xc) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar31 ^ CONCAT44(uVar4,uVar4);
  uVar4 = DAT_182670ad0;
  uVar32 = uVar32 >> ((bVar15 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar32 ^ CONCAT44(DAT_182670954,DAT_182670954);
  uVar14 = DAT_182670984;
  uVar17 = CONCAT44(uVar4,uVar4);
  uVar31 = (uVar32 | uVar31) ^ uVar17;
  *(ulonglong *)(lVar2 + -0xd38) = uVar31;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x394f6210)) =
       *(ulonglong *)(lVar2 - (uVar26 ^ 0x3434c230)) ^ uVar32 ^ uVar17 ^ uVar39 ^ uVar31;
  *(uint *)(lVar2 + -0x3d4) = *(uint *)(lVar2 - (uVar29 ^ 0xbcffd38c)) ^ uVar14 | 0xd3d29b6c;
  lVar2 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) =
       (uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) +
       (uVar20 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0)) ^ uVar34;
  uVar4 = DAT_1826709bc;
  uVar31 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(lVar2 + -0x630) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x3434c790)) ^ uVar32) << ((bVar15 ^ 0x3a) & 0x3f) ^ uVar31
  ;
  uVar12 = DAT_1826709c4;
  uVar20 = CONCAT44(uVar4,uVar4);
  *puVar24 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x610)) >> ((bVar36 ^ 0x9e) & 0x3f) ^ uVar20;
  uVar5 = DAT_1826707c0;
  uVar17 = (ulonglong)DAT_1826707c0;
  uVar32 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x2b0) | *(ulonglong *)(lVar2 + -0x630) ^ uVar31) ^
           CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xd88) = uVar32;
  uVar4 = DAT_18267095c;
  *(ulonglong *)(lVar2 + -0x410) =
       (CONCAT44(uVar16,uVar9) ^ 0xd65b2a72f25b7cbd) -
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0x41b49ba6)) ^ uVar20);
  uVar23 = *(ulonglong *)(lVar2 + -0x558) ^ uVar23;
  uVar33 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x660) =
       *(ulonglong *)(lVar2 + -0xcf8) ^ uVar33 ^ uVar32 ^ CONCAT44(uVar12,uVar12) ^ uVar34;
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar39 = (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0x3b0)) + uVar23 ^ uVar31;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar39;
  uVar4 = DAT_182670848;
  uVar6 = DAT_1826707c4;
  *(ulonglong *)(lVar2 + -0x9e0) =
       (CONCAT44(DAT_1826707b4,uVar18) ^ 0x57c1d71510503fe2) >>
       (((byte)uVar32 ^ (byte)uVar12) & 0x3f);
  uVar27 = CONCAT44(uVar4,uVar4);
  uVar17 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar2 + -0x118) = uVar23 << ((bVar15 ^ 0x16) & 0x3f) ^ uVar27;
  puVar21 = (ulonglong *)(lVar2 - (uVar17 ^ 0xf0cb631c));
  uVar25 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  uVar20 = (*puVar21 >> 0x20 ^ uVar28) >> 10;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar20 ^ CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar4 = DAT_1826709a8;
  uVar17 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 + -0xf0) = (uVar20 | *puVar37 ^ uVar27) ^ uVar25;
  uVar23 = CONCAT44(uVar4,uVar4);
  uVar32 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar17 = *(ulonglong *)(lVar2 - (uVar17 ^ 0x6644f03b)) ^ uVar23 ^ uVar25 ^ uVar39 ^ uVar31;
  *(ulonglong *)(lVar2 + -0xd38) = uVar17;
  uVar4 = DAT_182670aa8;
  *(ulonglong *)(lVar2 + -0xce0) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x3434ccb8)) ^ uVar23) +
       (*(ulonglong *)(lVar2 + -0xcf8) ^ uVar34) ^ uVar32;
  uVar28 = CONCAT44(uVar4,uVar4);
  uVar20 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar2 + -0x610) = (uVar17 ^ uVar23) << ((bVar36 ^ 0xb8) & 0x3f) ^ uVar28;
  uVar7 = DAT_1826707cc;
  uVar39 = (ulonglong)DAT_1826707cc;
  bVar15 = (byte)DAT_1826707d8;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x31dfbee4)) =
       (*(ulonglong *)(lVar2 + -0xd38) ^ uVar23) >> (((byte)DAT_1826707f4 ^ 0x36) & 0x3f) ^ uVar20;
  uVar17 = CONCAT44(uVar16,DAT_1826707dc);
  *(ulonglong *)(lVar2 + -0x2b0) = 0x217d36f057e37245 >> ((bVar15 ^ 0x48) & 0x3f);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x31dfbcc4)) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x630) | uVar28 ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar34;
  uVar40 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(lVar2 + -0x3b0) =
       (uVar17 ^ 0xceb59b6d6d4e742c) << (((byte)DAT_1826707f0 ^ 0xa7) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd88) =
       uVar40 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0x410) ^ uVar34 ^ *(ulonglong *)(lVar2 + -0xce0);
  uVar4 = DAT_1826708b4;
  uVar8 = DAT_1826707d4;
  uVar17 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar2 + -0x9e0) =
       ((ulonglong)DAT_182670ab4 << 0x15 | (ulonglong)(DAT_182670ab4 >> 0xb)) ^
       *(ulonglong *)(lVar2 + -0x410) >> 0xb;
  lVar3 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x558) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0x8c83db4f)) ^ uVar31) +
       (*(ulonglong *)(lVar2 + -0x660) ^ uVar33) ^ uVar28;
  uVar4 = DAT_1826707ac;
  puVar22 = (ulonglong *)(lVar2 - (uVar30 ^ 0x394f6260));
  uVar31 = CONCAT44(DAT_18267093c,DAT_18267093c);
  puVar37 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d0 ^ 0x77e5fce6));
  *puVar37 = (uVar33 ^ *puVar22) << (((byte)DAT_1826707b0 ^ 0xb8) & 0x3f) ^ uVar31;
  uVar14 = DAT_1826707bc;
  uVar17 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x3434c738)) =
       (*(ulonglong *)(lVar3 + -0x660) ^ uVar33) >> (((byte)uVar4 ^ 0x9c) & 0x3f) ^ uVar17;
  *(ulonglong *)(lVar3 + -0xf0) = CONCAT44(uVar14,DAT_1826707a8) ^ 0x14b53e1be270cdab;
  uVar4 = DAT_182670804;
  uVar20 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  uVar17 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x8c83d1e7)) ^ uVar31 |
           uVar17 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^ uVar20;
  *(ulonglong *)(lVar3 + -0xcf8) = uVar17;
  uVar12 = DAT_182670b00;
  uVar33 = CONCAT44(uVar4,uVar4);
  uVar17 = uVar33 ^ uVar17 ^ uVar20 ^ uVar28 ^ *puVar21;
  *(ulonglong *)(lVar3 + -0xd38) = uVar17;
  uVar10 = DAT_1826707f0;
  lVar2 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar12,uVar12);
  uVar20 = CONCAT44(uVar9,DAT_1826707e4);
  uVar31 = (CONCAT44(DAT_1826707f0,uVar8) ^ 0xb6e99cdb39f03ec9) + (uVar33 ^ uVar17);
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  uVar17 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) = uVar31 ^ uVar23;
  uVar20 = (uVar20 ^ 0xe2123a74b627ca2f) + (uVar32 ^ *puVar24);
  *(ulonglong *)(lVar2 + -0x610) = uVar20 ^ uVar17;
  bVar15 = (byte)DAT_1826707c8;
  uVar17 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar2 + -0x630) = uVar20 + uVar31 ^ uVar27;
  *(uint *)(lVar2 + -0x2d4) = (uVar7 ^ 0xf15cba2f) << ((byte)*(undefined4 *)(lVar2 + -0x3d4) & 0x1f)
  ;
  *(ulonglong *)(lVar2 + -0x3b0) = uVar31 << ((bVar15 ^ 0x69) & 0x3f) ^ uVar17;
  uVar23 = (uVar23 ^ *(ulonglong *)(lVar2 + -0x2b0)) >> (((byte)uVar10 ^ 0x9e) & 0x3f);
  *(ulonglong *)(lVar2 + -0x410) = uVar23 ^ CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar8 = DAT_1826707dc;
  uVar4 = DAT_1826707ac;
  uVar20 = CONCAT44(DAT_182670894,DAT_182670894);
  uVar31 = (ulonglong)DAT_1826707dc;
  uVar32 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar17 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xfffffc4f)) ^ uVar17 | uVar23) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x9e0) = uVar17;
  uVar12 = DAT_182670ae8;
  *(ulonglong *)(lVar2 + -0xbb0) =
       *(ulonglong *)(lVar2 - (uVar31 ^ 0xfd67c9b3)) ^ uVar32 ^ uVar20 ^ uVar27 ^ uVar17;
  uVar17 = CONCAT44(uVar18,DAT_1826707c8);
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar34 = (CONCAT44(uVar4,uVar18) ^ 0x22c09bad4ab44fae) + (uVar40 ^ *(ulonglong *)(lVar2 + -0xd88))
  ;
  uVar23 = uVar34 ^ uVar35;
  uVar31 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(lVar2 + -0x660) = uVar23;
  uVar20 = (uVar17 ^ 0xd7b1ef6cb3fb8878) + (*(ulonglong *)(lVar2 + -0x558) ^ uVar28);
  uVar17 = CONCAT44(uVar5,DAT_1826707d0);
  *(ulonglong *)(lVar2 + -0xf0) = uVar20 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x118) = uVar17 ^ uVar23 ^ uVar35 ^ 0x1f0f24e04074a657;
  uVar31 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar35 ^ *puVar22) + uVar20 ^ uVar31;
  uVar5 = DAT_1826707d4;
  uVar23 = CONCAT44(DAT_182670a28,DAT_182670a28);
  local_res18 = (byte)uVar16;
  uVar41 = (ulonglong)DAT_1826707d4;
  uVar20 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c4 ^ 0x4303f19f)) =
       uVar34 << ((local_res18 ^ 0x90) & 0x3f) ^ uVar23;
  uVar11 = DAT_182670830;
  uVar16 = DAT_1826707f4;
  *(ulonglong *)(lVar2 + -0xd38) =
       CONCAT44(uVar8,uVar5) ^ CONCAT44(uVar8,uVar9) ^ 0xf9ee097dfc4a6bdf;
  uVar34 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  uVar17 = (uVar35 ^ *(ulonglong *)(lVar2 + -0x660)) >> (((byte)uVar16 ^ 0x26) & 0x3f);
  uVar28 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(ulonglong *)(lVar2 + -0xce0) = uVar17 ^ uVar34;
  uVar17 = (uVar23 ^ *(ulonglong *)(lVar2 + -0xcf8) | uVar17) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x610) = uVar17;
  uVar16 = DAT_1826707e4;
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar17 = uVar40 ^ uVar28 ^ uVar31 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0x6b8);
  *(ulonglong *)(lVar2 + -0x2b0) = uVar17;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0x41b49d06)) =
       (*(ulonglong *)(lVar2 + -0x630) ^ uVar27) + (uVar40 ^ uVar17) ^ uVar25;
  lVar2 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670870,DAT_182670870);
  uVar17 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x6644f37b)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x4303ffd7)) ^ uVar40) <<
       (((byte)uVar16 ^ 0xff) & 0x3f) ^ uVar28;
  uVar38 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  uVar20 = (ulonglong)DAT_1826709f8;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x407bb955)) =
       ((ulonglong)uVar11 << 0x14 | (ulonglong)(uVar11 >> 0xc)) ^
       *(ulonglong *)(lVar2 + -0x2b0) >> 0xc ^ uVar38;
  uVar17 = (ulonglong)DAT_1826707b0;
  *(byte *)(lVar2 - ((ulonglong)uVar14 ^ 0xfffff9e5)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xdd0) ^ uVar20) ^ (byte)DAT_182670a40;
  uVar17 = *(ulonglong *)(lVar2 - (uVar17 ^ 0xbcfbe128)) ^ uVar28 |
           uVar38 ^ *(ulonglong *)(lVar2 + -0x9e0);
  *(ulonglong *)(lVar2 + -0xd88) = uVar17 ^ CONCAT44(DAT_182670a00,DAT_182670a00);
  *puVar21 = uVar17 ^ uVar33 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0x410);
  uVar17 = (ulonglong)DAT_182670b14;
  *(ulonglong *)(lVar2 + -0x118) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b4 ^ 0x79fbd088)) ^ uVar31) +
       (*(ulonglong *)(lVar2 + -0xbb0) ^ uVar32) ^ uVar35;
  *(byte *)(lVar2 + -0x41) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x390) ^ uVar17) ^ (byte)DAT_182670a40;
  lVar3 = DAT_1826707a0;
  uVar31 = (*(ulonglong *)(lVar2 + -0xbb0) ^ uVar32) << ((local_res18 ^ 0xb9) & 0x3f);
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  uVar17 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar31 ^ CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar27 = (ulonglong)DAT_1826707f4;
  uVar20 = (*puVar24 ^ uVar32) >> (((byte)uVar14 ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd38) = uVar20 ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x41a49f76)) = (uVar20 | uVar31) ^ uVar17;
  uVar12 = DAT_182670a90;
  uVar40 = CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar17 = uVar40 ^ uVar17 ^ uVar35 ^ *(ulonglong *)(lVar3 + -0x660) ^ *puVar37;
  *(ulonglong *)(lVar3 + -0xce0) = uVar17;
  uVar4 = DAT_1826708c4;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0x8c83dc1f)) ^ uVar40) +
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x410)) ^ uVar32;
  local_b0 = (byte)uVar7;
  uVar28 = CONCAT44(uVar4,uVar4);
  bVar15 = (byte)DAT_1826707e8;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x41a49f26)) =
       (uVar40 ^ uVar17) << ((local_b0 ^ 0xc3) & 0x3f) ^ uVar28;
  uVar5 = DAT_18267082c;
  lVar2 = DAT_1826707a0;
  uVar41 = (ulonglong)DAT_18267082c;
  uVar17 = *(ulonglong *)(DAT_1826707a0 + -0xcf8);
  uVar19 = (uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0)) >> ((bVar15 ^ 0xd4) & 0x3f);
  uVar20 = CONCAT44(uVar14,DAT_1826707ac);
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) = uVar19 ^ CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar4 = DAT_182670af4;
  *(ulonglong *)(lVar2 + -0x3b0) =
       (uVar20 ^ 0x2c766e9fdb79792c) + (CONCAT44(uVar9,DAT_1826707b0) ^ 0xe0446ef97e806202);
  uVar20 = CONCAT44(uVar4,uVar4);
  uVar19 = (uVar28 ^ *(ulonglong *)(lVar2 + -0x630) | uVar19) ^ uVar20;
  *(ulonglong *)(lVar2 + -0xd88) = uVar19;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar23 ^ uVar17 | 0x42ade1dfc59fa51e;
  uVar23 = CONCAT44(uVar5,uVar5);
  uVar31 = *(ulonglong *)(lVar2 + -0x558) ^ uVar33;
  *(ulonglong *)(lVar2 + -0xbb0) =
       uVar23 ^ uVar20 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0x610) ^ uVar19;
  uVar19 = CONCAT44(DAT_182670838,DAT_182670838);
  uVar27 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0xf0) = (*(ulonglong *)(lVar2 + -0x118) ^ uVar35) + uVar31 ^ uVar19;
  uVar4 = DAT_182670818;
  *(ulonglong *)(lVar2 + -0xd38) = (*(ulonglong *)(lVar2 - (uVar27 ^ 0xbcfbe928)) ^ uVar23) << 0x38;
  uVar17 = (ulonglong)DAT_1826707f0;
  uVar25 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x660) = uVar31 << 0x28 ^ uVar25;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x2550cbc)) =
       uVar28 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0x630) ^ *(ulonglong *)(lVar2 + -0x9e0);
  uVar16 = DAT_1826707c8;
  uVar20 = (ulonglong)DAT_1826707c8;
  uVar17 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x394f68e0)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0x41b49c4e)) ^ uVar33) >>
       (((byte)DAT_1826707a8 ^ 0xad) & 0x3f) ^ uVar17;
  uVar14 = DAT_182670904;
  uVar31 = CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar28 = (ulonglong)DAT_182670904;
  puVar24 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x727d2e0d));
  uVar17 = (*(ulonglong *)(lVar2 - (uVar26 ^ 0x3434c7e0)) ^ uVar25 |
           uVar17 ^ *(ulonglong *)(lVar2 + -0xce0)) ^ uVar31;
  *(ulonglong *)(lVar2 + -0x3b0) = uVar17;
  lVar2 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0x394f66b0)) =
       *puVar24 ^ uVar25 ^ uVar17 ^ uVar31 ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xcf83fbdf)) =
       *(longlong *)(lVar2 + -0xd38) - (CONCAT44(uVar6,DAT_1826707ac) ^ 0x4f49bf2c8836fb3a);
  uVar14 = DAT_1826707b4;
  uVar20 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x31dfb42c)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0xcf83fb77)) ^ uVar32) +
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x2b0)) ^ uVar20;
  lVar2 = DAT_1826707a0;
  uVar31 = (uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x2b0)) << ((local_res18 ^ 0x85) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar31 ^ CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar2 + -0x118) =
       CONCAT44(uVar16,uVar14) ^ 0x8eabba6a3ce5e23b | CONCAT44(uVar10,uVar14) ^ 0xcaa26162729c8f38;
  uVar4 = DAT_1826708a4;
  uVar17 = (*(ulonglong *)(lVar2 + -0x2b0) >> 0x20 ^ uVar28) >> 0x1b;
  *(ulonglong *)(lVar2 + -0x630) = uVar17 ^ CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar17 = (uVar17 | uVar31) ^ uVar40;
  *(ulonglong *)(lVar2 + -0x9e0) = uVar17;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xbcfbe688)) =
       CONCAT44(uVar4,uVar4) ^ uVar40 ^ *(ulonglong *)(lVar2 + -0xcf8) ^ uVar17 ^ uVar20;
  uVar16 = DAT_1826707c0 ^ 0xc3da058b;
  uVar14 = DAT_1826707c4 ^ 0x6e78b57c;
  *(ulonglong *)(lVar2 + -0x558) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0xf0)) + (uVar23 ^ *(ulonglong *)(lVar2 + -0xbb0)) ^ uVar34
  ;
  *(uint *)(lVar2 + -0xc34) = uVar14 + uVar16;
  uVar4 = DAT_182670890;
  uVar20 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  uVar17 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar2 + -0x660) =
       (*(ulonglong *)(lVar2 - (uVar30 ^ 0x394f6fb0)) ^ uVar23) << ((local_res18 ^ 0xa5) & 0x3f) ^
       uVar20;
  uVar12 = DAT_1826708f0;
  uVar29 = ((ulonglong)(uVar5 >> 0x1b) | uVar41 << 5) ^
           *(ulonglong *)(lVar2 - (uVar29 ^ 0xbcffd828)) >> 0x1b;
  *(ulonglong *)(lVar2 + -0xce0) = uVar29 ^ CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - (uVar17 ^ 0xf0cb65f4)) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0xf0cb6024)) ^ uVar20 | uVar29) ^ CONCAT44(uVar12,uVar12);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar18;
  return;
}



############ FUN_ 180ce3d60 size=4378 ############

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

void FUN_180ce3d60(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  uint uVar26;
  byte *pbVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint *puVar33;
  uint *puVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  uint uVar44;
  uint uVar45;
  uint uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  uint uVar50;
  uint uVar51;
  
  uVar44 = DAT_182670870;
  uVar10 = DAT_1826707e8;
  uVar9 = DAT_1826707e0;
  uVar8 = DAT_1826707dc;
  uVar7 = DAT_1826707d4;
  uVar6 = DAT_1826707c4;
  uVar5 = DAT_1826707c0;
  uVar39 = DAT_1826707ac;
  uVar46 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707e8;
  uVar30 = (ulonglong)DAT_1826707c4;
  DAT_1826707f0 = DAT_1826707c4 & DAT_1826707ac;
  uVar32 = DAT_1826707e0 | DAT_1826707e8;
  uVar40 = (ulonglong)DAT_1826707dc;
  uVar43 = (ulonglong)DAT_1826707c0;
  uVar50 = DAT_1826707dc & DAT_1826707c0;
  uVar51 = uVar50 ^ 0xeb12f8d5;
  DAT_1826707b0 = ~DAT_1826707a8;
  DAT_1826707f4 = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  uVar17 = *(uint *)(&DAT_18260f758 + DAT_182670b80) ^ DAT_1826707e8;
  uVar2 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707e0 ^ 0x2940a032) + (longlong)DAT_182670b80);
  uVar23 = (ulonglong)DAT_1826707c0;
  uVar28 = *(uint *)(DAT_1826707a0 + -0x2d4) ^ DAT_1826708ac ^ DAT_182670a38;
  puVar33 = (uint *)(DAT_1826707a0 + -0xc0c);
  DAT_1826707b8 = uVar51;
  DAT_1826707d8 = uVar32;
  *(uint *)(DAT_1826707a0 + -0x814) = uVar28;
  *(uint *)(lVar3 + -0xc04) = *puVar33 ^ uVar44 ^ DAT_182670890;
  uVar29 = DAT_182670b00;
  lVar3 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x68c) = uVar28 ^ DAT_182670b00 ^ DAT_1826708ac;
  uVar22 = (ulonglong)DAT_1826709b0;
  *(uint *)(lVar3 + -0x14) = *(uint *)(lVar3 - (uVar23 ^ 0x40046d85)) ^ DAT_182670a50 ^ uVar44;
  uVar26 = DAT_182670a00;
  lVar3 = DAT_1826707a0;
  uVar28 = DAT_182670a00 & 0xff;
  pbVar27 = (byte *)((CONCAT44(uVar8,uVar50) ^ 0x804204400000001a) +
                    *(longlong *)(DAT_1826707a0 + -0x30));
  *(ulonglong *)(DAT_1826707a0 + -0x4f8) = (ulonglong)pbVar27 ^ uVar22;
  *(byte *)(lVar3 + -0x619) = *pbVar27 ^ (byte)uVar26 ^ (byte)DAT_182670adc;
  uVar12 = DAT_1826707f4;
  lVar4 = DAT_1826707a0;
  uVar47 = (ulonglong)DAT_1826707f4;
  *(uint *)(DAT_1826707a0 - (uVar47 ^ 0x9eda2e99)) =
       *(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0x2d4d98c3)) ^ uVar28 ^ uVar44;
  *(uint *)(lVar4 - (uVar24 ^ 0x3f7dcf66)) = *(uint *)(lVar4 + -0x3d4) ^ uVar44 | 0xa43763dc;
  uVar18 = DAT_182670858;
  uVar20 = DAT_1826707b0;
  uVar44 = *(uint *)(lVar4 + -0x3d4) ^ uVar44;
  *(uint *)(lVar4 + -0x280) =
       (*(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0xd329c5a2)) ^ DAT_182670a50) + (uVar46 ^ 0x749b87e9)
       ^ DAT_18267094c;
  *(uint *)(lVar4 + -0xa34) = uVar44 << (((byte)uVar9 ^ 0x33) & 0x1f) ^ DAT_182670a34;
  uVar11 = DAT_1826707f0;
  uVar22 = (ulonglong)DAT_1826707f0;
  uVar35 = (*(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x404037b5)) ^ DAT_18267094c) -
           (*(uint *)(lVar4 - ((ulonglong)uVar32 ^ 0x3f7dec9e)) ^ DAT_182670a34) ^ DAT_182670828;
  puVar1 = (ulonglong *)(lVar4 + -0xdb8);
  uVar23 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar4 + -0x43c) = uVar35;
  uVar35 = uVar35 ^ DAT_182670828;
  uVar28 = *(uint *)(lVar4 - (uVar23 ^ 0xc208833a));
  uVar23 = (ulonglong)DAT_182670a94;
  uVar44 = uVar44 * 0x1a ^ DAT_182670a98;
  *(uint *)(lVar4 + -0x598) = uVar44;
  uVar44 = uVar44 ^ DAT_182670a98;
  uVar28 = (uVar28 ^ uVar29) * uVar35 ^ DAT_1826709f4;
  *(uint *)(lVar4 + -0x7e4) = uVar28;
  bVar25 = (byte)uVar20 ^ 0x26;
  *(uint *)(lVar4 + -0xc34) = uVar44 + (uVar28 ^ DAT_1826709f4) ^ uVar18;
  *(byte *)(lVar4 - ((ulonglong)uVar39 ^ 0xcacab38a)) =
       *(byte *)(uVar23 ^ *puVar1) ^ (byte)DAT_182670adc;
  *(uint *)(lVar4 + -0x398) = (*(uint *)(lVar4 + -0xc34) ^ uVar18) << 0xd ^ DAT_1826708d0;
  uVar13 = DAT_1826708e8;
  uVar20 = DAT_1826707bc;
  uVar49 = (ulonglong)DAT_1826707bc;
  *(uint *)(lVar4 + -0x540) =
       (*(uint *)(lVar4 - ((ulonglong)uVar9 ^ 0x2940ac16)) ^ uVar18) >> (bVar25 & 0x1f) ^
       DAT_1826708e8;
  puVar33 = (uint *)(lVar4 + -0x42c);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar51 ^ 0xeb12fb65)) =
       CONCAT44(uVar5,uVar9) ^ 0x6fc58a265981b1ac | *(ulonglong *)(lVar4 + -0xac0);
  lVar3 = DAT_1826707a0;
  uVar28 = *(uint *)(DAT_1826707a0 + -0x68c);
  *puVar33 = (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar46 ^ 0xbfbfcf8a)) ^ uVar13 |
             *(uint *)(DAT_1826707a0 + -0x398) ^ DAT_1826708d0) ^ DAT_182670a9c;
  uVar35 = DAT_1826707ec;
  uVar23 = (ulonglong)DAT_1826707ec;
  *(uint *)(lVar3 - (uVar30 ^ 0xd329c762)) =
       (uVar28 ^ uVar29) + (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) ^ DAT_182670a68;
  uVar36 = uVar20 + uVar35;
  *(uint *)(lVar3 + -0xc0c) = *(uint *)(lVar3 + -0x2d4) ^ DAT_1826709fc ^ DAT_182670a68;
  *(uint *)(lVar3 + -0x814) = *puVar33 ^ DAT_182670978 ^ DAT_182670a9c;
  DAT_1826707c8 = uVar36;
  *(uint *)(lVar3 + -0xc04) = *(uint *)(lVar3 - (uVar23 ^ 0x8ac80eba)) ^ DAT_1826709fc ^ uVar13;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar36 ^ 0x8c6ec736)) =
       *(ulonglong *)(lVar3 + -0xa18) ^ *(ulonglong *)(lVar3 + -0x9e0);
  uVar23 = (ulonglong)DAT_182670990;
  *(uint *)(lVar3 - (uVar49 ^ 0x1a6c9e4)) =
       *(uint *)(lVar3 + -0x814) ^ DAT_182670a90 ^ DAT_182670978;
  uVar28 = DAT_182670930;
  pbVar27 = (byte *)((CONCAT44(uVar35,uVar20) ^ 0x8ac802b601a6c00d) + *(longlong *)(lVar3 + -0x30));
  *(ulonglong *)(lVar3 + -0x270) = (ulonglong)pbVar27 ^ uVar23;
  uVar14 = DAT_182670a20;
  *(ulonglong *)(lVar3 + -0x5c0) = CONCAT44(uVar36,uVar35) ^ 0xbd281f033bc13c9a;
  *(byte *)(lVar3 - (uVar24 ^ 0x3f7dc093)) = *pbVar27 ^ (byte)uVar14 ^ (byte)DAT_182670adc;
  uVar44 = *(uint *)(lVar3 + -0x9ec) ^ DAT_182670a90;
  uVar29 = (uint)*(byte *)(lVar3 - ((ulonglong)uVar32 ^ 0x3f7de0b3)) ^ uVar14 & 0xff;
  uVar18 = DAT_1826707b0 ^ 0x8b647816;
  *(uint *)(lVar3 + -0x14) = uVar29 ^ uVar28;
  uVar28 = uVar44 + uVar18 ^ DAT_182670a78;
  *(uint *)(lVar3 + -0x280) = uVar28;
  uVar28 = uVar28 ^ DAT_182670a78;
  *(uint *)(lVar3 + -0xa34) = uVar29 << (((byte)uVar46 ^ 0xdb) & 0x1f) ^ uVar26;
  *(uint *)(lVar3 + -0x43c) =
       uVar28 - (*(uint *)(lVar3 - (uVar24 ^ 0x3f7dccbe)) ^ uVar26) ^ DAT_182670ac4;
  uVar28 = (*(uint *)(lVar3 - (uVar40 ^ 0x8042007c)) ^ DAT_182670ac4) *
           (*(uint *)(lVar3 + -0xc04) ^ uVar13) ^ DAT_182670958;
  *(uint *)(lVar3 + -0x3d4) = uVar28;
  uVar26 = DAT_182670ad0;
  uVar44 = DAT_1826707d0;
  uVar18 = DAT_1826707cc;
  lVar4 = DAT_1826707a0;
  uVar28 = uVar28 ^ DAT_182670958;
  uVar30 = (ulonglong)DAT_1826707d0;
  uVar31 = (ulonglong)DAT_1826707cc;
  uVar45 = DAT_1826707d0 ^ DAT_1826707cc;
  *(longlong *)(lVar3 + -0xd88) =
       *(longlong *)(lVar3 + -0x5c0) - *(longlong *)(lVar3 - (uVar24 ^ 0x3f7dcf6a));
  uVar48 = DAT_1826707c0 * DAT_1826707b0;
  DAT_1826707b4 = uVar45;
  *(uint *)(lVar3 + -0x7e4) = (uVar44 ^ 0xabcf87fa) * uVar29 ^ DAT_182670a28;
  DAT_1826707e4 = uVar48;
  *(uint *)(lVar3 + -0x598) =
       (*(uint *)(lVar3 - (uVar43 ^ 0x40046665)) ^ DAT_182670a28) + uVar28 ^ uVar26;
  uVar29 = DAT_182670854;
  uVar28 = DAT_1826707b0;
  uVar42 = (*(uint *)(lVar3 + -0x598) ^ uVar26) >> 0x13 ^ DAT_182670af8;
  uVar26 = (*(uint *)(lVar3 - ((ulonglong)uVar48 ^ 0xc957e12d)) ^ uVar26) << 0xd ^ DAT_182670854;
  *(uint *)(lVar3 + -0x398) = uVar42;
  uVar42 = uVar42 ^ DAT_182670af8;
  *(uint *)(lVar3 + -0xc34) = uVar26;
  *(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0xa82a7ad6)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar28 ^ 0x40403901)) ^ uVar29 | uVar42) ^ DAT_182670af0;
  *(uint *)(lVar4 - (uVar43 ^ 0x4004670d)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar45 ^ 0x3e5f46d)) ^ uVar13) +
       (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) ^ DAT_18267085c;
  uVar42 = *(uint *)(lVar4 + -0x68c) ^ DAT_182670820 ^ DAT_18267085c;
  *puVar33 = *(uint *)(lVar4 + -0x540) ^ DAT_1826709d8 ^ DAT_182670af0;
  *(uint *)(lVar4 + -0x2d4) = uVar42;
  uVar26 = DAT_182670800;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar48 ^ 0xc957e8b9)) =
       uVar42 ^ DAT_182670800 ^ DAT_182670820;
  uVar42 = DAT_182670a24;
  lVar3 = DAT_1826707a0;
  *(longlong *)(DAT_1826707a0 + -0x400) =
       *(longlong *)(DAT_1826707a0 + -0xbb0) << (((byte)uVar45 ^ 0x41) & 0x3f);
  *(uint *)(lVar3 + -0x814) = *(uint *)(lVar3 - (uVar30 ^ 0xabcf83d3)) ^ DAT_1826709d8 ^ uVar14;
  lVar3 = DAT_1826707a0;
  uVar41 = (ulonglong)DAT_182670918;
  pbVar27 = (byte *)(DAT_1826707a0 + -0xc35);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar48 ^ 0xc957e65d)) =
       (CONCAT44(uVar28,uVar18) ^ 0x40403535a82a7f96) * 0x20 +
       (CONCAT44(uVar20,uVar5) ^ 0x1a6c00840046191) + *(longlong *)(DAT_1826707a0 + -0x30) ^ uVar41;
  uVar23 = (ulonglong)DAT_1826709d0;
  *pbVar27 = *(byte *)(*(ulonglong *)(lVar3 + -0x2e8) ^ uVar41) ^ (byte)uVar29 ^ (byte)DAT_182670adc
  ;
  *(byte *)(lVar3 + -0x619) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x248) ^ uVar23) ^ (byte)DAT_182670adc;
  uVar21 = DAT_182670aa4;
  uVar37 = (uint)*(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0x2d4d92ef)) ^ uVar29 & 0xff;
  *(uint *)(lVar3 + -0x9ec) = uVar37 ^ uVar42;
  uVar29 = DAT_182670914;
  uVar38 = DAT_1826707f4 ^ 0x9eda2d5d;
  uVar37 = uVar37 << (((byte)DAT_1826707f4 ^ 0x5c) & 0x1f);
  uVar28 = *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0x3f7deebe));
  uVar19 = DAT_1826707e0 ^ 0xe264ed01;
  *(uint *)(lVar3 + -0xa34) = uVar37 ^ uVar21;
  uVar19 = (uVar28 ^ uVar14) + uVar19;
  *(uint *)(lVar3 + -0x280) = uVar19 ^ uVar13;
  uVar13 = DAT_182670a08;
  *(uint *)(lVar3 - (uVar43 ^ 0x400465bd)) = uVar19 - uVar37 ^ uVar29;
  *(uint *)(lVar3 + -0x14) =
       (uVar29 ^ *(uint *)(lVar3 + -0x43c)) * (*(uint *)(lVar3 + -0xc0c) ^ uVar26) ^ uVar13;
  *(ulonglong *)(lVar3 - (uVar47 ^ 0x9eda2985)) = uVar30 << 0x3e;
  uVar28 = DAT_1826708d8;
  puVar34 = (uint *)(lVar3 - ((ulonglong)uVar39 ^ 0xcacabc6b));
  *puVar34 = (uVar42 ^ *(uint *)(lVar3 + -0x9ec)) * uVar38 ^ DAT_182670a6c;
  uVar39 = (*(uint *)(lVar3 - (uVar22 ^ 0xc2088662)) ^ DAT_182670a6c) +
           (uVar13 ^ *(uint *)(lVar3 + -0x14));
  *(uint *)(lVar3 + -0x7e4) = uVar39 ^ uVar28;
  uVar39 = uVar39 << (((byte)uVar18 ^ 0x9b) & 0x1f) ^ DAT_1826709b0;
  *(uint *)(lVar3 + -0x598) = uVar39;
  uVar29 = DAT_182670ad0;
  uVar39 = uVar39 ^ DAT_1826709b0;
  uVar28 = (uVar28 ^ *(uint *)(lVar3 + -0x7e4)) >> (bVar25 & 0x1f) ^ DAT_182670968;
  uVar23 = (ulonglong)DAT_1826707ec;
  *(uint *)(lVar3 + -0xc34) = uVar28;
  *(uint *)(lVar3 - (uVar23 ^ 0x8ac8012e)) = (uVar28 ^ DAT_182670968 | uVar39) ^ DAT_1826708a4;
  *(uint *)(lVar3 + -0xc04) =
       (*(uint *)(lVar3 + -0xc0c) ^ uVar26) + (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) ^
       DAT_182670a68;
  uVar39 = DAT_18267099c ^ DAT_182670a5c;
  *(ulonglong *)(lVar3 + -0x118) =
       (CONCAT44(uVar32,uVar32) ^ 0x12da734feb791926) -
       (CONCAT44(uVar44,uVar11) ^ 0x6126b9c4dddb5feb);
  uVar18 = *(uint *)(lVar3 - (uVar31 ^ 0xa82a7392)) ^ DAT_1826708dc ^ DAT_182670a68;
  *(uint *)(lVar3 + -0x68c) = uVar18;
  uVar18 = uVar18 ^ DAT_1826708dc;
  uVar28 = *(uint *)(lVar3 - (uVar30 ^ 0xabcf8467)) ^ DAT_182670a5c ^ DAT_1826708a4;
  *(uint *)(lVar3 + -0x540) = uVar28;
  *(uint *)(lVar3 + -0x2d4) = uVar18 ^ uVar29;
  uVar23 = (ulonglong)DAT_182670ac8;
  *(uint *)(lVar3 - (uVar24 ^ 0x3f7dc2a6)) = uVar39 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x610) =
       CONCAT44(uVar32,uVar9) ^ 0x777d4dfc5e8b0c7a | *(ulonglong *)(lVar3 + -0x5c0);
  uVar18 = DAT_182670a58;
  uVar28 = DAT_1826709a4;
  *(ulonglong *)(lVar3 + -0x4f8) =
       (CONCAT44(uVar35,uVar36) ^ 0x8ac802b68c6ec2be) * 0x20 +
       (CONCAT44(uVar20,uVar45) ^ 0x1a6c00803e5f872) + *(longlong *)(lVar3 + -0x30) ^ uVar23;
  bVar25 = (byte)DAT_182670a18;
  *(ulonglong *)(lVar3 + -0x6f0) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar48 ^ 0xc957e445)) |
       CONCAT44(uVar5,uVar44) ^ 0x96a9037dbb4260bf;
  bVar16 = *(byte *)(*(ulonglong *)(lVar3 - (uVar22 ^ 0xc208814e)) ^ uVar23) ^ bVar25 ^
           (byte)DAT_182670adc;
  *(byte *)(lVar3 + -0x619) = bVar16;
  uVar39 = DAT_1826709c0;
  uVar44 = (bVar16 ^ bVar25) ^ DAT_182670a98;
  uVar20 = *puVar33 ^ DAT_18267099c;
  *(uint *)(lVar3 + -0x814) = uVar44;
  uVar44 = uVar44 ^ DAT_182670a98;
  *(uint *)(lVar3 + -0x280) = uVar20 + (uVar46 ^ 0x749b87e9) ^ uVar28;
  *(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0x2d4d94ee)) =
       uVar44 << (((byte)uVar51 ^ 0xc4) & 0x1f) ^ uVar39;
  uVar15 = DAT_182670ae4;
  uVar28 = (uVar28 ^ *(uint *)(lVar3 + -0x280)) - (uVar39 ^ *(uint *)(lVar3 + -0xa34));
  *(uint *)(lVar3 + -0x43c) = uVar28 ^ uVar18;
  *(ulonglong *)(lVar3 + -0x220) = (CONCAT44(uVar8,uVar6) ^ 0x2f85037a404cfb9) + 0xbf17b005f3a50aea;
  *(ulonglong *)(lVar3 + -0x630) =
       *(ulonglong *)(CONCAT44(DAT_182670a8c,DAT_182670a8c) ^ *(ulonglong *)(lVar3 + -0x1e8)) ^
       CONCAT44(uVar15,uVar15);
  uVar46 = *(uint *)(lVar3 + -0x814) ^ DAT_182670a98;
  *(uint *)(lVar3 + -0x9ec) = uVar28 * (*(uint *)(lVar3 + -0x2d4) ^ uVar29) ^ DAT_182670a84;
  uVar46 = uVar46 * (DAT_1826707b0 ^ 0x4040352e);
  uVar23 = (ulonglong)DAT_1826707ec;
  uVar24 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(uint *)(lVar3 + -0x14) = uVar46 ^ _DAT_182670b10;
  *(ulonglong *)(lVar3 + -0x9c8) =
       *(ulonglong *)(lVar3 - (uVar23 ^ 0x8ac80eae)) ^ uVar24 ^ CONCAT44(uVar5,uVar45) ^
       0xf5aa6f88893d5b40;
  uVar28 = DAT_18267082c;
  *(uint *)(lVar3 - (uVar31 ^ 0xa82a7c42)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar36 ^ 0x8c6ecb52)) ^ DAT_182670a84) + uVar46 ^
       DAT_18267082c;
  uVar46 = DAT_18267096c;
  uVar39 = (*(uint *)(lVar3 + -0x3d4) ^ uVar28) << 0xd ^ DAT_182670858;
  *(uint *)(lVar3 + -0x7e4) = uVar39;
  uVar28 = (*puVar34 ^ uVar28) >> (((byte)DAT_1826707ec ^ 0xa5) & 0x1f);
  *(uint *)(lVar3 + -0xc34) = (uVar28 | uVar39 ^ DAT_182670858) ^ DAT_182670af4;
  *(uint *)(lVar3 + -0x598) = uVar28 ^ uVar46;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x80420428)) =
       CONCAT44(uVar12,uVar48) ^ 0x3cd5da697b0d307a | *(ulonglong *)(lVar3 + -0x9c8);
  *(uint *)(lVar3 - (uVar49 ^ 0x1a6cc04)) =
       (*(uint *)(lVar3 - (uVar22 ^ 0xc2088ee2)) ^ DAT_182670848) +
       (*(uint *)(lVar3 - (uVar31 ^ 0xa82a7d42)) ^ uVar29) ^ DAT_182670a34;
  uVar46 = DAT_1826708c4 ^ DAT_182670af4;
  uVar28 = DAT_1826707f0 << 0x10 | DAT_1826707f0 >> 0x10;
  DAT_1826707ec = uVar28;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xc20883ee)) =
       CONCAT44(uVar11,uVar28) ^ CONCAT44(uVar28,uVar11) ^ 0x1fd0f42edc6114e2;
  uVar46 = uVar46 ^ *(uint *)(lVar3 + -0xc34);
  uVar39 = uVar21 ^ *(uint *)(lVar3 + -0xc0c) ^ DAT_182670a34;
  uVar22 = (ulonglong)DAT_182670884;
  uVar21 = DAT_182670b08 ^ uVar21;
  *(uint *)(lVar3 + -0x398) = uVar46;
  uVar46 = uVar46 ^ DAT_182670824 ^ DAT_1826708c4;
  *(uint *)(lVar3 + -0x68c) = uVar21 ^ uVar39;
  *(uint *)(lVar3 + -0xc04) = uVar39;
  *(uint *)(lVar3 + -0x540) = uVar46;
  *puVar1 = (CONCAT44(uVar5,uVar7) ^ 0x400461812d4d9edc) +
            (CONCAT44(uVar28,uVar11) ^ 0x85b6c208c20885b6) * 0x20 + *(longlong *)(lVar3 + -0x30) ^
            uVar22;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xabcf819f)) =
       (CONCAT44(uVar10,uVar28) ^ 0x77faadc11596e2f1) -
       (CONCAT44(uVar6,uVar50) ^ 0x8ab74cb536452ec2);
  bVar25 = *(byte *)(*puVar1 ^ uVar22) ^ (byte)DAT_182670adc;
  *pbVar27 = bVar25 ^ (byte)DAT_1826708e0;
  *puVar33 = bVar25 ^ DAT_1826708b8;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar32) * 4) = uVar17;
  return;
}



############ FUN_ 180c62a40 size=4224 ############

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

void FUN_180c62a40(void)

{
  uint *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  ulonglong uVar11;
  uint *puVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  longlong *plVar16;
  uint *puVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_a0;
  
  uVar15 = DAT_182670878;
  uVar8 = DAT_1826707f4;
  uVar7 = DAT_1826707e4;
  uVar5 = DAT_1826707d8;
  uVar21 = DAT_1826707c8;
  lVar3 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707e4;
  uVar26 = (ulonglong)DAT_1826707f4;
  uVar18 = DAT_1826707e4 * DAT_1826707f4;
  uVar30 = (DAT_1826707c8 << 0x10 | DAT_1826707c8 & 0xff00) << 8 | DAT_1826707c8 >> 8 & 0xff00 |
           DAT_1826707c8 >> 0x18;
  uVar41 = (ulonglong)uVar18;
  uVar34 = DAT_1826707d8 << 0x10 | DAT_1826707d8 >> 0x10;
  uVar2 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707d8 ^ 0xf8812d1) + (longlong)DAT_182670ce4);
  uVar10 = *(uint *)(&DAT_18260f750 + (uVar41 ^ 0xa627bb9a) + (longlong)DAT_182670ce4) ^
           DAT_1826707e4;
  bVar13 = (byte)DAT_1826707c8;
  DAT_1826707b8 = uVar30;
  DAT_1826707cc = uVar34;
  DAT_1826707e8 = uVar18;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar30 ^ 0x1cf2845)) =
       (CONCAT44(DAT_1826709d8,DAT_1826709d8) ^ *(ulonglong *)(DAT_1826707a0 + -0x548)) <<
       ((bVar13 ^ 0xf) & 0x3f);
  uVar14 = (*(uint *)(lVar3 + -0xa34) ^ DAT_182670ac0) & (*(uint *)(lVar3 + -0x280) ^ DAT_182670abc)
  ;
  puVar1 = (uint *)(lVar3 + -0xc04);
  uVar19 = *puVar1 ^ DAT_182670a7c;
  *(uint *)(lVar3 + -0x2d4) = uVar14 ^ uVar15;
  *(uint *)(lVar3 - (uVar27 ^ 0x54c7e696)) = (uVar19 | uVar14) ^ DAT_182670890;
  *(uint *)(*(ulonglong *)(lVar3 + -0x880) ^ (ulonglong)DAT_18267094c) =
       *(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0xa627b36a)) ^ DAT_182670a40 ^ DAT_182670890;
  plVar16 = (longlong *)(lVar3 - ((ulonglong)uVar7 ^ 0x54c7efd6));
  *plVar16 = (CONCAT44(uVar21,uVar8) ^ 0xf523cf01fffc2efe) * 0x10 + *(longlong *)(lVar3 + -0xd58);
  uVar11 = (ulonglong)uVar34;
  *(undefined8 *)(lVar3 - (uVar11 ^ 0x12d902d0)) = *(undefined8 *)(lVar3 + -0x1a0);
  *(longlong *)(lVar3 + -0x1a0) = *(longlong *)(lVar3 + -0xd58);
  uVar19 = DAT_182670850;
  uVar14 = DAT_18267080c;
  uVar28 = (ulonglong)DAT_182670874;
  puVar17 = (uint *)((CONCAT44(uVar5,uVar7) ^ 0xf8812d954c7ee76) * 0x10 +
                    *(longlong *)(lVar3 + -0xd58));
  *(ulonglong *)(lVar3 + -0xd98) = (ulonglong)puVar17 ^ uVar28;
  uVar35 = _DAT_182670b10;
  uVar20 = *puVar17 ^ _DAT_182670b10 ^ DAT_182670a40;
  *(uint *)(lVar3 + -0xc0c) = uVar20;
  uVar20 = (int)(uVar20 ^ uVar35) >> (((byte)(uVar21 >> 0x18) ^ 0xea) & 0x1f) ^ uVar19;
  *(uint *)(lVar3 + -0x598) = uVar20;
  *(uint *)(lVar3 - (uVar41 ^ 0xa627bd06)) = uVar20 ^ uVar14 ^ uVar19 ^ DAT_1826707e4 ^ 0xab381189;
  puVar17 = (uint *)(lVar3 + -0xaf0);
  uVar20 = (*(uint *)(lVar3 + -0xc0c) ^ uVar35) -
           (*(uint *)(lVar3 - (uVar27 ^ 0x54c7ef36)) ^ DAT_182670900) ^ DAT_182670a6c;
  *puVar17 = uVar20;
  uVar20 = (int)(uVar20 ^ DAT_182670a6c) >> ((bVar13 ^ 0x1e) & 0x1f) ^ DAT_182670aac;
  *(ulonglong *)(lVar3 + -0xcf8) = *(ulonglong *)(lVar3 + -0x220) | 0xd492405dbb34d218;
  *(uint *)(lVar3 + -0xb54) = uVar20;
  uVar20 = uVar20 ^ DAT_182670aac;
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar5,uVar30) ^ 0x2771aaed5dd9b7ab) << (((byte)uVar8 ^ 0xd9) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707d8;
  *(uint *)(lVar3 - (uVar11 ^ 0x12d90364)) =
       uVar20 & (uVar14 ^ *(uint *)(lVar3 + -0x68c)) ^ DAT_18267087c;
  uVar37 = (ulonglong)DAT_1826709c0;
  uVar14 = (*(uint *)(lVar3 - (uVar23 ^ 0xf881e35)) ^ DAT_18267087c |
           *(uint *)(lVar3 + -0xc0c) ^ uVar35) ^ DAT_1826709c8;
  *(uint *)(lVar3 + -0xc34) = uVar14;
  uVar5 = DAT_182670a40;
  *(uint *)(*(ulonglong *)(lVar3 + -0xd98) ^ uVar28) = uVar14 ^ DAT_1826709c8 ^ DAT_182670a40;
  *(undefined8 *)(lVar3 + -0xd58) = *(undefined8 *)(lVar3 + -0x860);
  *(undefined8 *)(lVar3 + -0x1a0) = *(undefined8 *)(lVar3 + -0x860);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x1cf2a15)) =
       CONCAT44(DAT_1826707fc,DAT_1826707fc) ^ CONCAT44(uVar18,uVar30) ^
       *(ulonglong *)(lVar3 + -0x410) ^ 0x399bc78e83688662;
  uVar20 = DAT_182670a5c;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xfffc2d37)) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_1826707b0 ^ 0x7b3c2dd7)) +
       (CONCAT44(uVar21,DAT_1826707b0) ^ 0xf523cf017b3c2c77) * 0x10 ^ uVar37;
  uVar23 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(uint *)(lVar3 + -0x14) = *(uint *)(*(ulonglong *)(lVar3 + -0x3c8) ^ uVar37) ^ uVar20 ^ uVar5;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x660)) << ((byte)*(undefined8 *)(lVar3 + -0x220) & 0x3f);
  uVar35 = DAT_18267099c;
  uVar21 = (int)(*(uint *)(lVar3 - (uVar41 ^ 0xa627bb9e)) ^ uVar20) >>
           (((byte)DAT_1826707cc ^ 0x97) & 0x1f);
  *(uint *)(lVar3 + -0x814) = uVar21 ^ uVar19;
  uVar21 = uVar21 & (uVar30 ^ 0xfe30dc0a);
  uVar29 = (ulonglong)DAT_1826707ec;
  uVar14 = uVar21 ^ uVar35;
  *(uint *)(lVar3 + -0xa34) = uVar14;
  *(uint *)(lVar3 + -0x280) = uVar14 ^ DAT_182670924 ^ uVar35 ^ DAT_1826707c8 ^ 0xadc30fe;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar5,uVar5);
  uVar33 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar23 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x14f67e0)) = (longlong)(int)uVar21 ^ uVar33;
  puVar24 = (ulonglong *)(*(longlong *)(lVar3 + -0x1a0) + 8);
  uVar38 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar3 + -0x78) = (ulonglong)puVar24 ^ uVar38;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xbcfc0f10)) = *puVar24 ^ CONCAT44(uVar15,uVar15) ^ uVar28;
  uVar31 = CONCAT44(DAT_182670a60,DAT_182670a60);
  puVar25 = (ulonglong *)(lVar4 - (uVar11 ^ 0x12d90c38));
  uVar23 = CONCAT44(uVar8,uVar8) ^ *puVar25 ^ uVar31 ^ uVar33 ^ 0x3d1000003d100;
  *(undefined8 *)(lVar4 + -0xbb0) = 0x2000000000000000;
  uVar9 = DAT_182670a44;
  *(ulonglong *)(lVar4 + -0x548) = uVar23;
  uVar6 = _DAT_1826709e0;
  lVar3 = DAT_1826707a0;
  uVar36 = (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) & (uVar31 ^ uVar23);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x78);
  uVar26 = (*(ulonglong *)(DAT_1826707a0 + -0x3b0) ^ uVar33) & *(ulonglong *)(DAT_1826707a0 + 0x20);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar26 ^ CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar3 + -0xcf8) = uVar36 ^ CONCAT44(uVar9,uVar9);
  uVar14 = DAT_182670860;
  bVar13 = (byte)DAT_1826707ac;
  uVar26 = uVar26 | uVar36;
  *(ulonglong *)(lVar3 + -0x410) = uVar26 ^ CONCAT44(uVar6,uVar6);
  uVar5 = DAT_1826707c0;
  *(ulonglong *)(uVar38 ^ uVar23) = uVar26 ^ uVar28;
  uVar21 = DAT_1826707d0;
  uVar26 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar3 - (uVar11 ^ 0x12d90668)) =
       (CONCAT44(DAT_1826707d0,uVar18) ^ 0x399e105e6909fe54) >> ((bVar13 ^ 0x33) & 0x3f);
  uVar19 = *(uint *)(lVar3 + -0xa34) ^ uVar14 ^ uVar5 ^ uVar35 ^ 0xf077ed26;
  *(uint *)(lVar3 + -0x2d4) = uVar19;
  *puVar1 = (uVar19 ^ uVar14) & (*(uint *)(lVar3 + -0x14) ^ uVar20) ^ DAT_182670aa4;
  uVar23 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d8 ^ 0xf8814b9)) =
       0x3913958545529db7 >> ((*(byte *)(lVar3 - (uVar27 ^ 0x54c7ea66)) ^ (byte)uVar6) & 0x3f);
  uVar20 = DAT_182670a40;
  uVar19 = DAT_1826708b4;
  uVar15 = (*(uint *)(lVar3 - (uVar23 ^ 0xf8818ed)) ^ uVar35) & *(uint *)(lVar3 + 0x28) ^
           DAT_182670a78;
  uVar22 = *puVar1 ^ DAT_182670aa4;
  *(uint *)(lVar3 + -0x598) = uVar15;
  uVar23 = (ulonglong)DAT_1826707b4;
  uVar15 = (uVar22 | uVar15 ^ DAT_182670a78) ^ DAT_182670a34;
  *(uint *)(lVar3 + -0x140) = uVar15;
  uVar22 = DAT_182670ac0;
  uVar36 = (ulonglong)DAT_182670ac0;
  *(uint *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0xffffdc37)) ^ uVar37) =
       uVar15 ^ DAT_182670a34 ^ uVar20;
  uVar15 = DAT_182670904;
  puVar12 = (uint *)(*(longlong *)(lVar3 + -0x1a0) + 4);
  uVar23 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0x4e8) = (ulonglong)puVar12 ^ uVar36;
  lVar3 = DAT_1826707a0;
  uVar32 = *puVar12 ^ uVar19 ^ uVar20;
  *puVar17 = uVar32;
  uVar14 = (uVar32 ^ uVar19) & (uVar14 ^ *(uint *)(lVar3 + -0x2d4));
  *(uint *)(lVar3 + -0x68c) = uVar14 ^ uVar15;
  lVar4 = DAT_1826707a0;
  uVar21 = (*(uint *)(lVar3 - (uVar23 ^ 0xfffff5cb)) ^ uVar35) & (uVar21 ^ 0xb3adff23) ^
           DAT_182670a9c;
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0x9e0);
  *(uint *)(DAT_1826707a0 + -0xb54) = uVar21;
  uVar21 = uVar21 ^ DAT_182670a9c;
  *(ulonglong *)(lVar4 + -0x220) = *puVar24 ^ 0xfd0dcfae5da0577a;
  uVar14 = (uVar21 | uVar14) ^ DAT_1826708c4;
  uVar20 = DAT_1826708c4 ^ uVar20;
  *(uint *)(lVar4 + -0xcec) = uVar14;
  uVar6 = DAT_1826707e0;
  uVar21 = DAT_1826707d4;
  *(uint *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0x14f60b8)) ^ uVar36) = uVar20 ^ uVar14;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x6450092f)) =
       (CONCAT44(uVar6,uVar18) ^ 0xbcfc0298a627bb8b) * 0x10 + *(longlong *)(lVar4 + -0x1a0);
  uVar21 = *puVar17;
  *(uint *)(lVar4 + -0x814) = *(uint *)(lVar4 + -0x280) ^ _DAT_18267097c ^ DAT_182670924;
  uVar20 = DAT_182670a40;
  uVar15 = DAT_182670a00;
  uVar14 = DAT_1826707f0;
  uVar39 = (ulonglong)DAT_182670a08;
  *(uint *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0xdfa5ffa7)) =
       (DAT_1826707f0 ^ 0xf0f4beb5) << (((byte)uVar21 ^ (byte)uVar19) & 0x1f);
  *(undefined8 *)(lVar4 - (uVar26 ^ 0xb3adf27f)) = *(undefined8 *)(lVar4 + -0x860);
  *puVar1 = *(uint *)(lVar4 + -0x814) ^ _DAT_18267097c ^ uVar20;
  *(uint *)(lVar4 + -0x598) = (*(uint *)(lVar4 + -0xa34) ^ uVar35) + 0xc2ed238f;
  *(undefined8 *)(lVar4 + -0x1a0) = *(undefined8 *)(lVar4 + -0xd58);
  uVar26 = (ulonglong)DAT_1826707d8;
  puVar12 = (uint *)(*(longlong *)(lVar4 - ((ulonglong)DAT_1826707d8 ^ 0xf881379)) +
                    (CONCAT44(uVar5,DAT_1826707dc) ^ 0xf8812d9bcfc0298) * 0x10);
  *(ulonglong *)(lVar4 + -0xcc0) = (ulonglong)puVar12 ^ uVar39;
  uVar23 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar4 - (uVar27 ^ 0x54c7e79a)) = *puVar12 ^ uVar15 ^ uVar20;
  *(uint *)(lVar4 - (uVar23 ^ 0x6450039b)) =
       (int)(*(uint *)(lVar4 + -0x9ec) ^ uVar15) >> 0x1f ^ DAT_182670848;
  lVar3 = DAT_1826707a0;
  *(uint *)(lVar4 - ((ulonglong)uVar30 ^ 0x1cf28a1)) =
       (*(uint *)(lVar4 - (uVar11 ^ 0x12d90384)) ^ _DAT_182670b10) + *(int *)(lVar4 + -0x598);
  uVar5 = DAT_1826709b4;
  uVar19 = (*(uint *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0x468e3c22)) ^ uVar20) &
           (*(uint *)(lVar4 - ((ulonglong)DAT_1826707c4 ^ 0xfffffd2b)) ^ DAT_182670848);
  uVar21 = uVar19 ^ DAT_1826709b4;
  *(undefined8 *)(lVar3 + -0x6b8) = 0;
  *(uint *)(lVar3 + -0x68c) = uVar21;
  *(uint *)(lVar3 + -0x43c) = *puVar1 ^ uVar21 ^ DAT_182670a24 ^ uVar5 ^ uVar20;
  uVar40 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  bVar13 = (byte)DAT_1826709d0;
  uVar38 = (longlong)(int)uVar19 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xd88) = uVar38;
  *(longlong *)(lVar3 + -0xcf8) =
       *(longlong *)(lVar3 + -0xbb0) << ((bVar13 ^ *(byte *)(lVar3 - (uVar26 ^ 0xf881e39))) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670afc,DAT_182670afc);
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x1a0) + 8 +
            (CONCAT44(uVar6,uVar14) ^ 0xbcfc02984e92d9a4) * 0x10);
  uVar37 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  *(ulonglong *)(lVar3 + -0xaa8) = (ulonglong)puVar24 ^ uVar29;
  uVar23 = CONCAT44(uVar22,uVar22);
  uVar36 = *puVar24 ^ uVar37 ^ uVar28;
  uVar26 = CONCAT44(DAT_1826707b4,uVar6);
  *(ulonglong *)(lVar4 + -0x588) = uVar36;
  uVar6 = DAT_182670914;
  uVar21 = DAT_1826708a8;
  lVar3 = DAT_1826707a0;
  uVar26 = uVar26 ^ uVar23 ^ uVar40 ^ uVar38 ^ 0x20004303fd67;
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar26;
  uVar9 = DAT_1826709b0;
  uVar38 = CONCAT44(uVar6,uVar6);
  uVar35 = DAT_1826707cc + DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0x220) = (uVar26 ^ uVar23) & (uVar37 ^ uVar36) ^ uVar38;
  uVar14 = uVar21 ^ uVar5 ^ DAT_1826707ac;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x54c7e8ce)) =
       (longlong)(int)uVar19 & *(ulonglong *)(lVar3 + 0x20) ^ CONCAT44(uVar9,uVar9);
  uVar26 = *(ulonglong *)(lVar3 + -0x6b8) ^ CONCAT44(uVar9,uVar9) |
           uVar38 ^ *(ulonglong *)(lVar3 + -0x220);
  *(ulonglong *)(lVar3 + -0xce0) = uVar26 ^ CONCAT44(DAT_182670988,DAT_182670988);
  uVar23 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0xaa8) ^ uVar29) = uVar26 ^ uVar28;
  uVar19 = uVar14 ^ *(uint *)(lVar3 + -0x68c) ^ 0xadc30fe;
  *(uint *)(lVar3 + -0x280) = uVar19;
  uVar14 = DAT_1826707d8 ^ 0xd0f21c5a;
  DAT_1826707d8 = uVar35;
  *puVar17 = *(uint *)(lVar3 - (uVar23 ^ 0xbcfc0018)) ^ uVar21 | uVar14;
  uVar14 = (uVar19 ^ uVar21) & (*(uint *)(lVar3 + -0x9ec) ^ uVar15) ^ DAT_18267098c;
  *(uint *)(lVar3 + -0x14) = uVar14;
  *(uint *)(lVar3 + -0x814) =
       *(uint *)((uVar27 ^ 0x54c7ee5e) + lVar3) & (uVar5 ^ *(uint *)(lVar3 + -0x68c)) ^
       DAT_182670810;
  lVar3 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_182670828;
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0xcc0);
  *(uint *)(DAT_1826707a0 + -0xa34) =
       (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar35 ^ 0x67a0f5ea)) ^ DAT_182670810 |
       uVar14 ^ DAT_18267098c) ^ DAT_182670844;
  *(ulonglong *)(lVar3 + -0xbb0) = CONCAT44(uVar34,uVar35) ^ *puVar25 ^ uVar33 ^ 0x7fd698383ec1a975;
  *(uint *)(uVar39 ^ uVar23) =
       *(uint *)(lVar3 - (uVar11 ^ 0x12d905bc)) ^ DAT_182670844 ^ DAT_182670a40;
  puVar12 = (uint *)((CONCAT44(uVar35,uVar7) ^ 0x67a0fdfe54c7ee76) * 0x10 + *plVar16 + 4);
  *(ulonglong *)(lVar3 + -0x60) = (ulonglong)puVar12 ^ uVar26;
  *(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0x67a0f1f2)) = *puVar12 ^ DAT_18267091c ^ DAT_182670a40;
  local_a0 = (byte)uVar35;
  uVar14 = (*(uint *)(lVar3 - (uVar11 ^ 0x12d90d08)) ^ uVar21) &
           (*(uint *)(lVar3 + -0xc0c) ^ DAT_18267091c) ^ DAT_182670aec;
  uVar21 = DAT_1826707e4 ^ 0x54c7ee72;
  *(uint *)(lVar3 + -0x598) = uVar14;
  *(uint *)(lVar3 + -0xb54) = (uVar5 ^ *(uint *)(lVar3 + -0x68c)) & uVar21 ^ DAT_182670934;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) =
       (CONCAT44(uVar7,uVar8) ^ 0x7a94be4b9601506a) >> ((local_a0 ^ 0xc4) & 0x3f);
  uVar28 = CONCAT44(DAT_1826707b0,uVar34);
  uVar21 = DAT_182670a3c ^ DAT_182670a40;
  *(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0x67a0ff2a)) =
       (*(uint *)(lVar3 - (uVar27 ^ 0x54c7e522)) ^ DAT_182670934 | uVar14 ^ DAT_182670aec) ^
       DAT_182670a3c;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xa627be02)) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0xd88)) <<
       ((*(byte *)(lVar3 - (uVar11 ^ 0x12d90930)) ^ (byte)uVar9) & 0x3f);
  uVar23 = CONCAT44(DAT_1826707a8,uVar34);
  *(uint *)(uVar26 ^ *(ulonglong *)(lVar3 + -0x60)) = uVar21 ^ *(uint *)(lVar3 + -0x2d4);
  uVar11 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0x860) =
       (uVar23 ^ 0xdfa5ffb312d90f89) * 0x10 + *(longlong *)(lVar3 + -0x1a0);
  *(ulonglong *)(lVar3 - (uVar11 ^ 0xfffff61f)) =
       (CONCAT44(uVar35,uVar18) ^ 0x3e6712c6e8029b75) + (CONCAT44(uVar7,uVar7) ^ 0x144ac5891ebef3ad)
  ;
  uVar23 = *(ulonglong *)(lVar3 + -0x548);
  *puVar1 = *(uint *)(lVar3 + -0x43c) ^ DAT_182670a10 ^ DAT_182670a24;
  *(undefined8 *)(lVar3 + -0xd58) = *(undefined8 *)(lVar3 + -0x860);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0x6450036f)) =
       uVar28 ^ 0x358a79025012f072 | uVar31 ^ uVar23;
  *puVar17 = *puVar1 ^ DAT_1826709a0 ^ DAT_182670a10;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar2 ^ uVar34;
  return;
}



############ FUN_ 180c72160 size=5189 ############

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

void FUN_180c72160(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  byte *pbVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  
  uVar9 = DAT_182670958;
  uVar11 = DAT_1826707f4;
  uVar8 = DAT_1826707d8;
  lVar2 = DAT_1826707a0;
  uVar17 = (ulonglong)DAT_1826707d8;
  uVar33 = (ulonglong)DAT_1826707f4;
  uVar23 = (ulonglong)DAT_1826707d8;
  uVar30 = DAT_1826707d8 * DAT_1826707f4;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670d14);
  uVar14 = *(uint *)(&DAT_18260f750 + (uVar17 ^ 0xcf01f533) + (longlong)DAT_182670d14) ^
           DAT_1826707f4;
  uVar28 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar34 = (ulonglong)uVar30;
  puVar16 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  uVar22 = CONCAT44(DAT_1826707d8,DAT_1826707f4);
  bVar29 = (byte)DAT_1826707f4;
  uVar24 = (uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) >> ((bVar29 ^ 0xfd) & 0x3f);
  DAT_1826707cc = uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar24 ^ CONCAT44(DAT_182670968,DAT_182670968);
  uVar4 = DAT_1826708b8;
  uVar32 = (ulonglong)DAT_1826708b8;
  uVar18 = CONCAT44(uVar9,uVar9);
  uVar19 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar2 + -0x7d8) = (uVar28 ^ *puVar16) << (((byte)uVar30 ^ 0xb) & 0x3f) ^ uVar18;
  uVar24 = *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0xc1fc0fcc)) ^ uVar18 | uVar24;
  puVar16 = (ulonglong *)(lVar2 - (uVar34 ^ 0xc1fc0eac));
  uVar28 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar2 + -0xc18) = uVar24 ^ uVar19;
  uVar18 = (*puVar16 ^ uVar28) - (CONCAT44(uVar30,uVar11) ^ 0xfa4831328109577e);
  uVar21 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x588) = uVar18 ^ uVar28;
  uVar9 = DAT_182670aa0;
  *(ulonglong *)(lVar2 + -0x400) = uVar18 - uVar24 ^ uVar21;
  uVar18 = CONCAT44(uVar9,uVar9);
  uVar20 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar2 + -0x660) = uVar24 + (uVar22 ^ 0x550ba6c7b7eb14a8) ^ uVar18;
  lVar2 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0xcf01f8ab)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xc1fc0e74)) ^
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xcf01f703)) ^ uVar35 ^ uVar20 ^ uVar18;
  uVar24 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar2 + -0x6f0) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xd88)) >> (((byte)uVar8 ^ 0x26) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x7d8) =
       CONCAT44(uVar30,uVar8) ^ 0x9294ae69ae45decf | CONCAT44(uVar30,uVar8) ^ 0xe5708d69aa355c87;
  uVar31 = CONCAT44(DAT_18267096c,DAT_18267096c);
  uVar19 = (uVar20 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) << 0x3b;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar19 ^ uVar31;
  lVar2 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       CONCAT44(uVar30,DAT_1826707bc) ^ 0x2ddcb86e03cd9a9c |
       CONCAT44(uVar11,uVar30) ^ 0x334852da9cd236f8;
  uVar5 = DAT_1826707c4;
  uVar22 = CONCAT44(DAT_182670920,DAT_182670920);
  uVar18 = (ulonglong)DAT_1826707e8;
  uVar19 = *(ulonglong *)(lVar2 - (uVar28 ^ 0xefdfd90f)) ^ uVar24 | uVar19;
  uVar36 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar2 + -0xc18) = uVar19 ^ uVar22;
  uVar9 = DAT_182670924;
  uVar4 = DAT_1826707d0;
  puVar25 = (ulonglong *)(lVar2 - (uVar18 ^ 0x93ad7d07));
  uVar23 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar2 + -0x660) = (uVar35 ^ *puVar25) - uVar19 ^ uVar23;
  *(uint *)(lVar2 + -0x43c) = (uVar5 ^ 0x889a347d) + *(int *)(lVar2 + -0xc0c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xc020fd8)) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0x30fe063c)) ^ CONCAT44(uVar9,uVar9) ^
       *(ulonglong *)(lVar2 + -0x400);
  uVar6 = DAT_1826707f0;
  uVar28 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(lVar2 + -0x588) = (*(ulonglong *)(lVar2 + -0x7d8) >> 0x20 ^ uVar32) >> 5 ^ uVar28;
  uVar18 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar2 + -0x6f0) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x7d8)) << ((bVar29 ^ 199) & 0x3f) ^ uVar18;
  uVar4 = DAT_1826707ac;
  uVar18 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707dc ^ 0xdfffea57)) ^ uVar28 |
           *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xa1a586f0)) ^ uVar18) ^ uVar31;
  *(ulonglong *)(lVar2 + -0x220) =
       *(ulonglong *)(lVar2 + -0xc18) ^ uVar22 ^ uVar20 ^ *(ulonglong *)(lVar2 + -0xd88);
  uVar9 = DAT_182670a4c;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar18;
  uVar32 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xce0) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0xcf01f123)) ^ uVar21) -
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0xcf01f39b)) ^ uVar31) ^ uVar32;
  uVar9 = DAT_182670a30;
  *(undefined1 *)(lVar2 + -0x6c9) = **(undefined1 **)(lVar2 + -0x4f8);
  uVar6 = DAT_1826707c8;
  uVar20 = CONCAT44(uVar9,uVar9);
  uVar18 = uVar18 ^ uVar20 ^ uVar23 ^ uVar31 ^ *(ulonglong *)(lVar2 + -0x660);
  uVar19 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar2 + -0x7d8) = uVar18;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xfceb6877)) =
       (uVar18 ^ uVar20) >> (((byte)uVar6 ^ 0x16) & 0x3f) ^ uVar19;
  uVar4 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  uVar18 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (uVar20 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) << 0x29 ^ uVar24;
  uVar12 = DAT_182670a68;
  puVar26 = (ulonglong *)(lVar2 - (uVar18 ^ 0xefbd5402));
  *puVar26 = (CONCAT44(uVar30,uVar4) ^ 0xa69d540f0a8a7908) +
             (*(ulonglong *)(lVar2 + -0xce0) ^ uVar32);
  uVar9 = DAT_182670a3c;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar28 = *(ulonglong *)(lVar2 - (uVar34 ^ 0xc1fc0d9c)) ^ uVar19 |
           uVar24 ^ *(ulonglong *)(lVar2 + -0x6f0);
  *(ulonglong *)(lVar2 + -0x400) = uVar19 ^ *(ulonglong *)(lVar2 + -0x588);
  *(ulonglong *)(lVar2 + -0x220) = uVar28 ^ uVar21;
  uVar37 = DAT_1826707ec;
  uVar7 = DAT_1826707d0;
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar28 = (uVar23 ^ *(ulonglong *)(lVar2 + -0x660)) - uVar28;
  uVar18 = CONCAT44(DAT_1826707d0,uVar8);
  uVar31 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar28 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x7d8) = (uVar18 ^ 0x1a624abf2c37be46) + uVar28;
  uVar9 = _DAT_182670b10;
  uVar28 = CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar22 = *(ulonglong *)(lVar2 + -0xce0) ^ *(ulonglong *)(lVar2 + -0xc18) ^ uVar28 ^ uVar32 ^
           uVar22;
  *(ulonglong *)(lVar2 + -0xd88) = uVar22;
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xfbfff3ff)) =
       (uVar22 ^ uVar28) >> (((byte)uVar5 ^ 0xd6) & 0x3f) ^ uVar23;
  uVar18 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xfbfff277)) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xd88)) << 0x18 ^ uVar18;
  uVar9 = DAT_182670a6c;
  uVar31 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar18 = *(ulonglong *)(lVar2 - (uVar33 ^ 0x30fe0f54)) ^ uVar18 |
           uVar23 ^ *(ulonglong *)(lVar2 + -0x400);
  uVar28 = uVar18 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x660) = uVar28;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x7d8) = (*(ulonglong *)(lVar2 + -0xce0) ^ uVar32) - uVar18 ^ uVar22;
  uVar9 = DAT_18267088c;
  *(undefined1 *)(lVar2 + -0x6c9) = **(undefined1 **)(lVar2 + -0xae8);
  uVar18 = (ulonglong)DAT_18267083c;
  uVar33 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar28 = *(ulonglong *)(lVar2 + -0x6b8) ^ uVar33 ^ uVar31 ^ uVar19 ^ uVar28;
  *(ulonglong *)(lVar2 + -0xc18) = uVar28;
  uVar23 = (uVar33 ^ uVar28) << 0xc;
  *(ulonglong *)(lVar2 + -0x400) = uVar33 ^ uVar28 ^ uVar24 ^ *(ulonglong *)(lVar2 + -0x6f0);
  uVar28 = (uVar28 >> 0x20 ^ uVar18) >> 0x14;
  uVar18 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar2 + -0xd88) = uVar28 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x588) = uVar23 ^ uVar18;
  *(undefined1 *)(lVar2 + -0x6c9) = **(undefined1 **)(lVar2 + -0x300);
  uVar12 = DAT_182670aa8;
  uVar6 = DAT_1826707d4;
  uVar28 = uVar28 | uVar23;
  uVar18 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar2 + -0xce0) = uVar28 ^ uVar35;
  uVar9 = DAT_182670a00;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x660) = (uVar19 ^ *puVar16) - uVar28 ^ uVar33;
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar18 = *(ulonglong *)(lVar2 - (uVar18 ^ 0x7b3c2baf)) ^ uVar28 ^ uVar22 ^ uVar21 ^
           *(ulonglong *)(lVar2 + -0x220);
  uVar19 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar2 + -0x6f0) = uVar18;
  uVar4 = DAT_1826707b4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x7b3c2877)) =
       (uVar18 ^ uVar28) >> (((byte)uVar6 ^ 0x4e) & 0x3f) ^ uVar19;
  uVar9 = DAT_182670894;
  *(ulonglong *)(lVar2 + -0xc18) =
       CONCAT44(uVar4,DAT_1826707f0) ^ CONCAT44(uVar6,DAT_1826707c8) ^ 0xce624090f7fa0a90;
  uVar18 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b8 ^ 0xefbd5f7a)) ^ uVar28) <<
           (((byte)DAT_1826707b0 ^ 0xf8) & 0x3f);
  uVar28 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar2 + -0x588) = uVar18 ^ CONCAT44(uVar9,uVar9);
  uVar4 = DAT_182670a84;
  uVar9 = DAT_182670870;
  lVar3 = DAT_1826707a0;
  uVar18 = uVar18 | uVar19 ^ *(ulonglong *)(lVar2 + -0x400);
  uVar21 = uVar18 ^ uVar28;
  uVar24 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar2 + -0xd88) = uVar21;
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar21 = uVar24 ^ uVar28 ^ uVar33 ^ uVar21 ^ *(ulonglong *)(lVar2 + -0x660);
  *(ulonglong *)(lVar2 + -0x220) = uVar21;
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar22 ^ *(ulonglong *)(lVar2 + -0x7d8)) - uVar18 ^ uVar19;
  uVar10 = DAT_1826707e4;
  uVar9 = DAT_1826707e0;
  uVar31 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0xc18) =
       (uVar21 ^ uVar24) >> ((*(byte *)(lVar3 - (uVar31 ^ 0x4303ff47)) ^ (byte)uVar4) & 0x3f);
  uVar12 = _DAT_182670ad4;
  uVar23 = CONCAT44(DAT_182670984,DAT_182670984);
  uVar18 = ((ulonglong)uVar4 << 0x12 | (ulonglong)(uVar4 >> 0xe)) ^
           *(ulonglong *)(lVar3 + -0x220) >> 0xe;
  *(ulonglong *)(lVar3 + -0x6f0) = uVar18 ^ uVar23;
  lVar2 = DAT_1826707a0;
  uVar21 = (uVar24 ^ uVar21) << (((byte)uVar9 ^ 0xbb) & 0x3f);
  uVar22 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(ulonglong *)(DAT_1826707a0 + -0x400) = uVar21 ^ CONCAT44(uVar12,uVar12);
  uVar4 = DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x588) = (uVar21 | uVar18) ^ uVar22;
  uVar13 = DAT_1826709fc;
  *(ulonglong *)(lVar2 + -0x7d8) =
       (CONCAT44(uVar4,uVar11) ^ 0x607e908c6a6bc013) + (CONCAT44(uVar5,uVar8) ^ 0xcddcc0afb3d789d2);
  uVar6 = DAT_1826707e8;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b0 ^ 0xefdfd3e7)) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x660)) -
       (CONCAT44(uVar4,DAT_1826707b0) ^ 0x65dd8fce9c24f45d) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(DAT_1826707ac,uVar6) ^ 0x2753a959395541ae) + 0xb9dcac7382a3fc68;
  uVar18 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar2 + -0x6f0) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0xc18)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x4303f8ef)) ^ uVar22) ^ uVar20;
  lVar3 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0xa1a58588)) ^ uVar22) -
       (CONCAT44(DAT_1826707ac,uVar37) ^ 0xe77acbc3dd1a3f1e) ^ CONCAT44(uVar13,uVar13);
  uVar9 = DAT_182670a9c;
  uVar35 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707ac ^ 0xfceb611f)) ^
           *(ulonglong *)(lVar3 + -0x6b8) ^ uVar24 ^ uVar19 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x7d8) = uVar35;
  uVar21 = (uVar35 ^ uVar24) >> (((byte)DAT_1826707c0 ^ 0x99) & 0x3f);
  uVar33 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar3 + -0x660) = uVar21 ^ CONCAT44(uVar9,uVar9);
  bVar15 = (byte)DAT_1826707e0;
  *(ulonglong *)(lVar3 + -0x220) =
       (uVar24 ^ uVar35) << (((byte)DAT_1826707ac ^ 0xcf) & 0x3f) ^ uVar33;
  uVar18 = CONCAT44(uVar30,DAT_1826707f0);
  *(ulonglong *)(lVar3 + -0xc18) = uVar21 >> ((bVar15 ^ 0xb2) & 0x3f);
  uVar9 = DAT_182670aa4;
  uVar22 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar21 = uVar21 | uVar33 ^ *puVar25;
  uVar24 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(ulonglong *)(lVar3 + -0x588) = uVar21 ^ uVar22;
  uVar4 = DAT_1826707bc;
  uVar33 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar3 + -0xce0) =
       (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar19) - (uVar18 ^ 0x260ac12972554e78) ^ uVar24;
  uVar23 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0xf7fffc27)) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xefdfd31f)) ^ uVar24) - uVar21 ^ uVar23;
  uVar12 = DAT_182670ae4;
  lVar2 = DAT_1826707a0;
  uVar18 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar37 = ~uVar10;
  DAT_1826707ac = uVar37;
  *(ulonglong *)(lVar3 + -0xc18) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x588)) - (CONCAT44(uVar4,uVar10) ^ 0x5f15de4e4aad6145) ^
       uVar18;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar33 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(uVar33 ^ *(ulonglong *)(lVar2 + -0xa98)) =
       uVar21 ^ uVar20 ^ *(ulonglong *)(lVar2 + -0x6f0);
  uVar19 = CONCAT44(DAT_182670a24,DAT_182670a24);
  *(ulonglong *)(lVar2 + -0xc78) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xa98)) +
       (CONCAT44(uVar37,uVar10) ^ 0xbcfc02984303fd66) * 8 ^ uVar19;
  uVar22 = CONCAT44(uVar10,uVar37);
  *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xbcfc0ee0)) ^ uVar19) =
       uVar21 ^ CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar2 + -0x400);
  lVar2 = DAT_1826707a0;
  uVar19 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (CONCAT44(uVar10,uVar10) ^ 0x23c2e7e2f4d5c731) <<
       (((byte)uVar9 ^ *(byte *)(DAT_1826707a0 + -0xce0)) & 0x3f);
  lVar3 = DAT_1826707a0;
  puVar16 = (ulonglong *)(lVar2 - (uVar31 ^ 0x4303f7b7));
  *puVar16 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar37 ^ 0xbcfc0800)) ^ uVar33) +
             (uVar22 ^ 0x4303fd67bcfc029a) * 8 ^ uVar19;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = 0x18d43b971df81df - (uVar22 ^ 0xf6b5331719954239);
  uVar9 = DAT_182670af4;
  *(ulonglong *)(uVar19 ^ *puVar16) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar37 ^ 0xbcfc0540)) ^ uVar21 ^ uVar23;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar37 ^ 0xbcfc0638)) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0xa98)) + (uVar22 ^ 0x4303fd67bcfc029b) * 8 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar37,uVar37) ^ 0x67a3c5340bd770dd) << (((byte)uVar10 ^ 0x7f) & 0x3f);
  uVar9 = DAT_1826707e0;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x4a0) ^ uVar19) =
       uVar21 ^ uVar18 ^ *(ulonglong *)(lVar3 + -0xc18);
  uVar12 = DAT_1826709d8;
  puVar16 = (ulonglong *)
            (*(longlong *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0xede3a2e)) +
            (CONCAT44(uVar10,uVar9) ^ 0x4303fd67cc5c8989) * 0x60);
  *(ulonglong *)(lVar3 + -0xb78) = (ulonglong)puVar16 ^ CONCAT44(DAT_182670914,DAT_182670914);
  uVar9 = DAT_182670a88;
  bVar15 = (byte)DAT_182670a40;
  uVar6 = DAT_1826707c8;
  uVar19 = CONCAT44(uVar12,uVar12);
  uVar18 = *puVar16 ^ uVar19 ^ uVar21;
  uVar22 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 + -0x660) = uVar18;
  uVar4 = DAT_1826707b0;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xf523c9b9)) =
       (uVar19 ^ uVar18) >> ((bVar29 ^ 0xdc) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  bVar29 = (byte)uVar9 ^ (byte)uVar13 ^ *(byte *)(lVar3 + -0x6b8);
  uVar22 = (ulonglong)DAT_182670a28;
  uVar18 = CONCAT44(DAT_1826707f0,uVar4);
  *(byte *)(lVar3 + -0x6c9) = bVar29;
  uVar4 = DAT_1826707e8;
  *(ulonglong *)(lVar3 + -0x588) = uVar18 ^ CONCAT44(uVar37,DAT_1826707d0) ^ 0x78f543c8a2b6853c;
  *(ulonglong *)(lVar3 + -0xb60) =
       (CONCAT44(DAT_1826707b8,uVar4) ^ 0xefbd598a93ad7f27) + *(longlong *)(lVar3 + -0x168) ^ uVar22
  ;
  uVar20 = CONCAT44(uVar6,DAT_1826707b4);
  uVar18 = CONCAT44(uVar7,DAT_1826707b4);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar17 ^ 0xcf01fe43)) ^ uVar22) = bVar15 ^ (byte)uVar13 ^ bVar29
  ;
  *(ulonglong *)(lVar3 + -0x588) =
       (uVar18 ^ 0xaa3f1d46b8882e4e) + (uVar28 ^ *(ulonglong *)(lVar3 + -0xd88));
  uVar18 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)(lVar3 + -0xc0) =
       (uVar20 ^ 0xf523cf010ede38fe) * 0x60 + *(longlong *)(lVar3 + -0x2d0) ^ uVar18;
  uVar28 = (ulonglong)DAT_1826707d4;
  uVar22 = CONCAT44(DAT_182670884,DAT_182670884);
  uVar24 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  bVar15 = (byte)DAT_1826708d8;
  uVar20 = (ulonglong)DAT_182670984;
  uVar17 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar28 ^ 0x7b3c2cb7)) ^ uVar18) ^ uVar22 ^ uVar21;
  uVar18 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0xf7fffd47)) ^ uVar22) >>
       (((byte)DAT_1826707dc ^ 0xd7) & 0x3f) ^ uVar24;
  uVar9 = DAT_182670b00;
  *(ulonglong *)(lVar3 + -0x588) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0xab381651)) ^ uVar23) -
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x660));
  uVar18 = CONCAT44(uVar5,DAT_1826707d0);
  *(byte *)(lVar3 + -0x361) = *(byte *)(lVar3 - (uVar36 ^ 0xadc3d76)) ^ bVar15 ^ (byte)uVar9;
  uVar17 = (ulonglong)DAT_1826707bc;
  pbVar27 = (byte *)((uVar18 ^ 0xadc30fe0c020801) + *(longlong *)(lVar3 + -0x168));
  *(ulonglong *)(lVar3 + -0x498) = (ulonglong)pbVar27 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0x600a0538)) ^ uVar24) + 0x716d5e9902f9a5d5;
  *pbVar27 = *(byte *)(lVar3 - (uVar28 ^ 0x7b3c2f16)) ^ (byte)uVar9 ^ (byte)DAT_182670a40;
  uVar9 = DAT_182670aec;
  uVar17 = CONCAT44(uVar30,DAT_1826707e0);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0xa1a58660)) =
       (uVar24 ^ *puVar26) - (CONCAT44(uVar8,uVar10) ^ 0x902d3c7bdf4bd2ed);
  puVar16 = (ulonglong *)(*(longlong *)(lVar3 + -0x2d0) + (uVar17 ^ 0xc1fc0814cc5c8989) * 8);
  *(ulonglong *)(lVar3 + -0xb78) = (ulonglong)puVar16 ^ CONCAT44(DAT_182670864,DAT_182670864);
  uVar21 = *puVar16 ^ uVar33 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x588) = uVar21;
  uVar17 = (uVar33 ^ uVar21) >> (((byte)uVar37 ^ 0x88) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(byte *)(lVar3 + -0x763) = (byte)uVar9 ^ (byte)uVar17 ^ DAT_1826708bc;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar17;
  *(undefined1 *)(lVar3 + -0x10a) = **(undefined1 **)(lVar3 + -0x4f8);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar1 ^ uVar30;
  return;
}



############ FUN_ 180ca3040 size=5736 ############

void FUN_180ca3040(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  int *piVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_f8;
  byte local_e8;
  
  uVar13 = DAT_1826707f4;
  uVar10 = DAT_1826707dc;
  uVar18 = DAT_1826707bc;
  uVar6 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707b8;
  uVar37 = (ulonglong)DAT_1826707dc;
  uVar24 = DAT_1826707b8 ^ DAT_1826707e0;
  uVar28 = (ulonglong)DAT_1826707f4;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670db0);
  uVar25 = DAT_1826707bc ^ DAT_1826707f4;
  uVar34 = DAT_1826707dc << 0x10 | DAT_1826707dc >> 0x10;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670db0) ^ DAT_1826707bc;
  uVar30 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  uVar21 = (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xe600d971)) ^
            CONCAT44(DAT_182670b04,DAT_182670b04) |
           CONCAT44(DAT_182670aa0,DAT_182670aa0) ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) ^ uVar30;
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x610);
  DAT_1826707a8 = uVar25;
  DAT_1826707b0 = uVar34;
  DAT_1826707d0 = uVar24;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       0x347cd7b26a05b6e5 -
       (CONCAT44(DAT_182670b04,DAT_182670b04) ^ *(ulonglong *)(DAT_1826707a0 + -0x9c8));
  uVar14 = DAT_182670a5c;
  *(ulonglong *)(lVar2 + -0x658) = uVar21;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar22 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar23 ^ uVar22 ^ uVar44 ^ uVar30 ^ uVar21;
  uVar15 = DAT_182670a0c;
  uVar14 = DAT_1826709a0;
  uVar4 = DAT_182670824;
  uVar11 = DAT_1826707e0;
  uVar21 = (ulonglong)uVar24;
  uVar35 = (ulonglong)DAT_182670824;
  uVar38 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar2 + -0xd38) =
       (CONCAT44(uVar34,uVar10) ^ 0x270348e99c2c901a) -
       (CONCAT44(uVar24,uVar6) ^ 0xb6b1d23ea3b5f18e);
  uVar45 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xb8d3312f)) ^ uVar38) +
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar2 + -0xb70)) ^ uVar45;
  *(ulonglong *)(lVar2 + -0x630) = CONCAT44(uVar6,uVar18) ^ 0xb61ff67ba6734d84 | uVar23 ^ uVar22;
  uVar8 = DAT_1826707c8;
  bVar42 = (byte)(uVar10 >> 0x10);
  uVar31 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar2 + -0x660) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0xf0)) << ((bVar42 ^ 0x24) & 0x3f) ^ uVar31;
  *(ulonglong *)(lVar2 + -0x548) = *(ulonglong *)(lVar2 + -0x4c8) | 0x831525a4d0423122;
  uVar30 = CONCAT44(DAT_182670a08,DAT_182670a08);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x42012875)) =
       ((ulonglong)(uVar4 >> 0x1b) | uVar35 << 5) ^
       *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x42012c95)) >> 0x1b ^ uVar30;
  uVar35 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar23 = (ulonglong)uVar25;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xfb8c870b)) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x410) | uVar31 ^ *(ulonglong *)(lVar2 + -0x660)) ^ uVar35;
  uVar12 = DAT_1826707ec;
  uVar9 = DAT_1826707c8;
  uVar7 = DAT_1826707c4;
  uVar5 = DAT_1826707c0;
  uVar4 = DAT_1826707b4;
  uVar17 = uVar8 & 3;
  if (uVar17 < 2) {
    uVar29 = DAT_1826707b4;
    if (uVar17 == 0) {
      uVar29 = uVar8;
    }
  }
  else {
    uVar29 = DAT_1826707c4;
    if (uVar17 < 3) {
      uVar29 = DAT_1826707c0;
    }
  }
  uVar27 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar31 = (ulonglong)DAT_1826707c4;
  DAT_1826707d8 = uVar29;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0x76fde5dd)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b4 ^ 0xcd9e1625)) ^ uVar27 ^ uVar35 ^ uVar45 ^
       *(ulonglong *)(lVar2 + -0x588);
  uVar30 = (ulonglong)uVar29;
  uVar35 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xcacab5a7)) =
       (CONCAT44(uVar29,uVar12) ^ 0x6843f554524697e5) + (uVar27 ^ *(ulonglong *)(lVar2 + -0x438)) ^
       uVar35;
  uVar31 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xcacab907)) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0x610)) + (CONCAT44(uVar9,uVar5) ^ 0x425513160506ca47) ^
       uVar31;
  uVar14 = DAT_182670964;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar2 + -0xa18);
  uVar26 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar2 + -0x1b8) = (uVar31 ^ *(ulonglong *)(lVar2 + -0x6b8)) + uVar35 ^ uVar26;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar14,uVar14);
  bVar20 = (byte)uVar5;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar35 << (((byte)uVar4 ^ 0x1c) & 0x3f) ^ uVar36;
  uVar47 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xcacab237)) =
       uVar35 >> ((bVar20 ^ 0xc2) & 0x3f) ^ uVar47;
  uVar14 = DAT_182670a50;
  uVar31 = CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar22 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x712fa418)) ^ uVar36 |
           uVar47 ^ *(ulonglong *)(lVar3 + -0xd88)) ^ uVar31;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar22;
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xe600d299)) =
       uVar27 ^ uVar22 ^ uVar31 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x1b8);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xfb8c8bbb)) =
       (CONCAT44(uVar29,uVar10) ^ 0x7fcc0ef69661c0e0) >>
       ((*(byte *)(lVar3 - ((ulonglong)uVar9 ^ 0xf8777127)) ^ (byte)uVar14) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_182670a94,DAT_182670a94);
  uVar31 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xcacab65f)) ^ uVar44) +
           (CONCAT44(uVar12,DAT_1826707c0) ^ 0x4e3079567f537dc2);
  uVar22 = (CONCAT44(uVar6,uVar7) ^ 0x519b9977b6e23347) + (uVar45 ^ *(ulonglong *)(lVar3 + -0x588));
  *(ulonglong *)(lVar3 + -0x9c8) = uVar31 ^ uVar32;
  uVar14 = DAT_1826708a4;
  *(ulonglong *)(lVar3 + -0xac0) = uVar22 ^ uVar27;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x658) = uVar22 + uVar31 ^ uVar35;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xe600dd81)) = uVar31 << ((bVar42 ^ 0x20) & 0x3f) ^ uVar36;
  uVar31 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x9c8)) >> ((byte)DAT_1826707e0 & 0x3f);
  uVar22 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(lVar2 + -0xb70) = uVar31 ^ CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xf8777537)) =
       (uVar36 ^ *(ulonglong *)(lVar2 + -0xd38) | uVar31) ^ uVar22;
  uVar44 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar40 = CONCAT44(DAT_182670838,DAT_182670838);
  uVar31 = *(ulonglong *)(lVar2 + -0x658) ^ *(ulonglong *)(lVar2 + -0x630) ^ uVar44 ^ uVar22 ^
           uVar35;
  uVar22 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar2 + -0x4c8) = uVar31;
  *(ulonglong *)(lVar2 + -0x548) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0x1b8)) + (uVar31 ^ uVar44) ^ uVar40;
  *(uint *)(lVar2 - (uVar23 ^ 0xfb8c8f2f)) =
       *(uint *)(lVar2 - (uVar22 ^ 0x76fde365)) >> (((byte)uVar29 ^ 0xba) & 0x1f);
  uVar14 = DAT_1826709d4;
  lVar3 = DAT_1826707a0;
  local_e8 = (byte)uVar18;
  uVar31 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0xfb8c87e3)) ^ uVar44) << ((local_e8 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar2 + -0xf0) = uVar31 ^ uVar44;
  uVar15 = DAT_182670ab0;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0xe600d471)) ^ uVar44) >>
           (((byte)DAT_1826707e0 ^ 0xcd) & 0x3f);
  *(ulonglong *)(lVar3 + -0x660) = uVar23 ^ CONCAT44(uVar14,uVar14);
  lVar2 = DAT_1826707a0;
  uVar22 = CONCAT44(uVar15,uVar15);
  uVar44 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(DAT_1826707a0 + -0x410) = (uVar31 | uVar23) ^ uVar22;
  uVar4 = DAT_1826707b4;
  *(ulonglong *)(lVar2 + -0x420) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0x2c654611)) ^ *(ulonglong *)(lVar2 + -0x548) ^
       uVar44 ^ uVar22 ^ uVar40;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar34 ^ 0x2c654639)) = 0;
  uVar26 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(lVar2 + -0x610) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x220)) + (*(ulonglong *)(lVar2 + -0x658) ^ uVar35) ^
       uVar26;
  *(ulonglong *)(lVar2 + -0x6b8) = ((ulonglong)uVar4 ^ 0x5c000000) >> 0x1a;
  uVar35 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xcd9e181d)) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x220)) << ((bVar20 ^ 0xe9) & 0x3f) ^ uVar35;
  uVar14 = DAT_182670914;
  uVar22 = (uVar27 ^ *(ulonglong *)(lVar2 + -0x220)) >> ((local_e8 ^ 0xa6) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar2 + -0xd88) = uVar22 ^ CONCAT44(DAT_1826709dc,DAT_1826709dc);
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0xcacab40f)) =
       (*(ulonglong *)(DAT_1826707a0 + -0xa18) ^ uVar35 | uVar22) ^ uVar31;
  uVar5 = DAT_1826707b4;
  uVar22 = CONCAT44(DAT_182670af4,DAT_182670af4);
  uVar23 = *(ulonglong *)(lVar2 - (uVar30 ^ 0xcacab40f)) ^ *(ulonglong *)(lVar2 + -0x610) ^ uVar22 ^
           uVar31 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar23;
  uVar14 = DAT_182670a40;
  *(ulonglong *)(lVar2 + -0x890) =
       CONCAT44(uVar11,uVar10) ^ 0x45c27bd13dff5df |
       CONCAT44(uVar12,DAT_1826707ec) ^ 0x5eefac41867ffa6e;
  uVar15 = DAT_182670b14;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x9e0) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x85113bd1)) ^ uVar22) +
       (*(ulonglong *)(lVar2 + -0x548) ^ uVar40) ^ uVar31;
  lVar2 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xf877768f)) =
       (uVar23 ^ uVar22) << 0x3a ^ uVar27;
  uVar14 = DAT_18267090c;
  uVar45 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar2 + -0xac0) =
       (*(ulonglong *)(lVar2 + -0x5c0) ^ uVar22) >> (((byte)uVar6 ^ 0x17) & 0x3f) ^ uVar45;
  uVar15 = DAT_182670ae4;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (CONCAT44(uVar25,uVar6) ^ 0xcbe21d1eef5016a0) - (CONCAT44(uVar5,uVar13) ^ 0xf299e438ada24d10)
  ;
  uVar7 = DAT_1826707cc;
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar23 = (ulonglong)DAT_1826707c4;
  uVar22 = (*(ulonglong *)(lVar2 - (uVar30 ^ 0xcacaba37)) ^ uVar27 |
           *(ulonglong *)(lVar2 - (uVar33 ^ 0x851134d1)) ^ uVar45) ^ uVar35;
  *(ulonglong *)(lVar2 + -0xd38) = uVar22;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xcacab4cf)) = *(ulonglong *)(lVar2 + -0x9e0) ^ uVar22 ^ uVar35;
  uVar4 = DAT_1826707ac;
  uVar36 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar39 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x3dc209fe)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x1d8c57b2)) ^ uVar44) +
       (*(ulonglong *)(lVar2 + -0x610) ^ uVar26) ^ uVar36;
  uVar15 = DAT_1826709d8;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0x3dc20bee)) ^ uVar44) << 0x16 ^ uVar47;
  local_f8 = (byte)uVar25;
  uVar23 = (uVar44 ^ *(ulonglong *)(lVar2 + -0x420)) >> ((local_f8 ^ 1) & 0x3f);
  *(ulonglong *)(lVar2 + -0x4c8) = uVar23 ^ CONCAT44(uVar15,uVar15);
  uVar18 = uVar4 - uVar7;
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(uVar5,uVar34) ^ 0x971e576fe3fec62c) <<
       ((*(byte *)(lVar2 + -0xac0) ^ (byte)uVar14) & 0x3f);
  uVar6 = DAT_182670880;
  uVar22 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar44 = (ulonglong)DAT_182670880;
  uVar23 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0xebdbbe78)) ^ uVar47 | uVar23) ^ uVar22;
  uVar32 = CONCAT44(DAT_18267085c,DAT_18267085c);
  DAT_1826707d4 = uVar18;
  *(ulonglong *)(lVar2 + -0x660) = uVar23;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x484a260d)) =
       uVar23 ^ uVar32 ^ uVar22 ^ *(ulonglong *)(lVar2 + -0x630) ^ uVar36;
  uVar26 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar2 + -0x438) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x410)) + (*(ulonglong *)(lVar2 + -0x9e0) ^ uVar31) ^
       uVar26;
  bVar20 = (byte)uVar18;
  uVar23 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(lVar2 + -0x658) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x410)) << ((bVar20 ^ 0xe0) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x484a24a5)) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x410)) >> (((byte)uVar7 ^ 0x7d) & 0x3f) ^
       CONCAT44(uVar6,uVar6);
  lVar3 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar35 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x5c6e64e5)) ^ CONCAT44(uVar6,uVar6) |
           *(ulonglong *)(lVar2 + -0x658) ^ uVar23) ^ uVar27;
  *(ulonglong *)(lVar2 + -0x220) = uVar35;
  uVar14 = DAT_182670ab4;
  uVar23 = *(ulonglong *)(lVar3 + -0x630);
  uVar22 = *(ulonglong *)(lVar3 + -0x438);
  *(ulonglong *)(lVar2 + -0xa18) =
       ((ulonglong)(uVar6 >> 0x15) | uVar44 << 0xb) ^
       *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0xebdbb978)) >> 0x15;
  uVar43 = CONCAT44(uVar14,uVar14);
  uVar44 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar41 = uVar22 ^ uVar35 ^ uVar43 ^ uVar27 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xd88) = uVar41;
  uVar14 = DAT_1826708c4;
  uVar27 = (uVar23 ^ uVar36) + (uVar31 ^ *(ulonglong *)(lVar3 + -0xb70)) ^ uVar44;
  *(ulonglong *)(lVar3 + -0xbb0) = uVar27;
  uVar15 = DAT_1826709fc;
  uVar46 = CONCAT44(uVar14,uVar14);
  uVar35 = (*(ulonglong *)(lVar3 - (uVar39 ^ 0x484a296d)) ^ uVar31) << (((byte)uVar7 ^ 0x7d) & 0x3f)
  ;
  uVar23 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(lVar3 + -0x890) = uVar35 ^ uVar46;
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar3 + -0xb70)) >> ((bVar20 ^ 0xe0) & 0x3f);
  *(ulonglong *)(lVar3 + -0x548) = uVar31 ^ uVar23;
  uVar6 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar15,uVar15);
  uVar35 = (uVar35 | uVar31) ^ uVar23;
  piVar19 = (int *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c0 ^ 0x76fdede9));
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar35;
  uVar15 = DAT_182670a80;
  *(int *)(lVar2 + -0x68c) = *piVar19 + *(int *)(lVar2 + -0x398);
  uVar14 = DAT_182670960;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar23 = uVar35 ^ uVar31 ^ uVar23 ^ uVar27 ^ uVar44;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar23;
  uVar23 = (CONCAT44(uVar4,uVar4) ^ 0x9cc0857b3462aee5) + (uVar23 ^ uVar31);
  *(ulonglong *)(lVar2 + -0x588) = uVar23 ^ CONCAT44(uVar14,uVar14);
  lVar2 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670934,DAT_182670934);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (CONCAT44(uVar29,uVar18) ^ 0x6f3e577d90fbc90d) + (uVar22 ^ uVar26) ^ uVar35;
  *(uint *)(lVar2 + -0xa34) = (DAT_1826707ac ^ 0x8e4741b3) + 0x5fe24a84;
  uVar27 = CONCAT44(DAT_182670850,DAT_182670850);
  uVar36 = uVar23 << (((byte)DAT_1826707c8 ^ 9) & 0x3f);
  uVar47 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0x484a2f25)) ^ uVar35) + uVar23 ^ uVar27;
  uVar22 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  *(ulonglong *)(lVar2 + -0x610) = uVar47;
  *(ulonglong *)(lVar2 + -0x420) = uVar36 ^ uVar22;
  uVar14 = DAT_182670ac4;
  uVar4 = DAT_1826707ec;
  lVar3 = DAT_1826707a0;
  uVar23 = uVar23 >> ((bVar20 ^ 0xf2) & 0x3f);
  *(ulonglong *)(lVar2 + -0xac0) = uVar23 ^ CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar22 = (ulonglong)DAT_1826707b4;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar23 = (uVar23 | uVar36) ^ uVar26;
  *(ulonglong *)(lVar2 + -0xf0) = uVar23;
  *(ulonglong *)(lVar2 + -0x4c8) =
       -0x2fd9a3cb84b946cc - (CONCAT44(uVar25,uVar6) ^ 0xea25f9f1dfabc3d);
  uVar35 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar23 ^ uVar35 ^ uVar26 ^ uVar27 ^ uVar47;
  uVar23 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xcd9e1465)) =
       (CONCAT44(uVar5,uVar10) ^ 0xa86bbe1e3aebcdf4) + (uVar41 ^ uVar43) ^ uVar40;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xb8d3383f)) =
       (CONCAT44(uVar7,uVar34) ^ 0xc46198bea88c423d) + 0x1e0fba10f4f6a409;
  uVar23 = (CONCAT44(uVar24,uVar4) ^ 0xf5eab9817c13801e) + (uVar44 ^ *(ulonglong *)(lVar3 + -0xbb0))
  ;
  uVar26 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar3 + -0x410) = uVar23 ^ CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar3 + -0x658) = (*(ulonglong *)(lVar3 + -0x660) ^ uVar40) + uVar23 ^ uVar26;
  uVar6 = DAT_182670aec;
  uVar23 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 + -0x660) ^ uVar40) << (((byte)uVar4 ^ 0xb8) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xe600daa1)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xe600d6d9)) ^ uVar40) >> ((local_e8 ^ 0xa2) & 0x3f) ^
       uVar46;
  uVar23 = (uVar23 ^ *(ulonglong *)(lVar3 + -0x6b8) | uVar46 ^ *(ulonglong *)(lVar3 + -0xa18)) ^
           uVar32;
  uVar36 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0x220) = uVar23;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xcacab98f)) =
       *(ulonglong *)(lVar3 + -0x658) ^ CONCAT44(uVar6,uVar6) ^ uVar23 ^ uVar26 ^ uVar32;
  uVar14 = DAT_18267087c;
  uVar28 = CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0x630);
  uVar22 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(lVar3 + -0xb70) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x85113801)) ^ uVar27) + uVar28 ^ uVar22;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar23 = CONCAT44(DAT_182670854,DAT_182670854);
  *(ulonglong *)(lVar3 + -0x548) = uVar28 << (((byte)uVar29 ^ 0x8b) & 0x3f) ^ uVar44;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x85113681)) =
       *(ulonglong *)(lVar3 - (uVar33 ^ 0x85113821)) >> 0xc ^
       ((ulonglong)uVar6 << 0x14 | (ulonglong)(uVar6 >> 0xc)) ^ uVar23;
  uVar28 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar3 + -0x5c0) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x890) | uVar44 ^ *(ulonglong *)(lVar3 + -0x548)) ^ uVar28;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c0 ^ 0x76fde82d)) =
       *(ulonglong *)(lVar3 - (uVar39 ^ 0x484a27dd)) ^ CONCAT44(DAT_1826708dc,DAT_1826708dc) ^
       uVar28 ^ uVar22 ^ *(ulonglong *)(lVar3 + -0xb70);
  uVar44 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xcacabb87)) =
       (*(ulonglong *)(lVar3 + -0x658) ^ uVar26) + (*(ulonglong *)(lVar3 + -0x1b8) ^ uVar35) ^
       uVar44;
  *(uint *)(lVar3 + -0x9ec) = (DAT_1826707e0 ^ 0x10a88061) * *(int *)(lVar3 + -0x68c);
  uVar4 = DAT_1826709c0;
  uVar14 = DAT_182670868;
  uVar27 = (ulonglong)DAT_1826709c0;
  *(ulonglong *)(lVar3 + -0xd38) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0x42012ddd)) ^ uVar35) << ((bVar42 ^ 0x38) & 0x3f) ^ uVar38
  ;
  uVar15 = DAT_182670898;
  uVar28 = (*(ulonglong *)(lVar3 + -0x1b8) ^ uVar35) >> (((byte)uVar13 ^ 0xbe) & 0x3f);
  *(ulonglong *)(lVar3 + -0x588) = uVar28 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_18267096c;
  uVar23 = CONCAT44(uVar15,uVar15);
  uVar33 = (*(ulonglong *)(lVar3 - (uVar21 ^ 0x3dc202f6)) ^ uVar38 | uVar28) ^ uVar23;
  *(ulonglong *)(lVar3 + -0x420) = uVar33;
  uVar21 = CONCAT44(uVar4,uVar4);
  uVar28 = CONCAT44(uVar14,uVar14);
  uVar44 = uVar33 ^ *(ulonglong *)(lVar3 + -0x438) ^ uVar21 ^ uVar23 ^ uVar44;
  *(ulonglong *)(lVar3 + -0xac0) = uVar44;
  uVar14 = DAT_1826707f8;
  *(ulonglong *)(lVar3 + -0x4c8) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0xb70)) + (uVar44 ^ uVar21) ^ uVar28;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xcacabf4f)) =
       (uVar21 ^ uVar44) << ((bVar20 ^ 0xd7) & 0x3f) ^ uVar22;
  uVar15 = DAT_182670a9c;
  uVar23 = (*(ulonglong *)(lVar3 + -0xac0) >> 0x20 ^ uVar27) >> 9;
  *(ulonglong *)(lVar3 + -0xd88) = uVar23 ^ CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar14 = DAT_182670950;
  *(ulonglong *)(lVar3 + -0x9e0) =
       CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(*(ulonglong *)(lVar3 + -0x7b8) ^ uVar45);
  uVar23 = *(ulonglong *)(lVar3 + -0xf0) ^ uVar22 | uVar23;
  *(ulonglong *)(lVar3 + -0xbb0) = uVar23 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x410) = uVar23 ^ uVar28 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0x4c8);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar1 ^ uVar25;
  return;
}



############ FUN_ 180c9e860 size=4789 ############

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

void FUN_180c9e860(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte *pbVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint *puVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  uint uVar42;
  ulonglong uVar43;
  
  uVar11 = DAT_182670ae8;
  uVar8 = DAT_1826707ec;
  uVar7 = DAT_1826707e4;
  uVar33 = DAT_1826707e0;
  uVar41 = DAT_1826707dc;
  uVar32 = DAT_1826707c4;
  uVar37 = DAT_1826707a8;
  lVar5 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707ec;
  uVar25 = (ulonglong)DAT_1826707e0;
  uVar38 = (ulonglong)DAT_1826707a8;
  uVar43 = (ulonglong)DAT_1826707dc;
  uVar19 = DAT_1826707bc | DAT_1826707dc;
  uVar42 = DAT_1826707c4 * DAT_1826707a8;
  uVar28 = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  uVar23 = (DAT_1826707e4 << 0x10 | DAT_1826707e4 & 0xff00) << 8 | DAT_1826707e4 >> 8 & 0xff00 |
           DAT_1826707e4 >> 0x18;
  uVar10 = DAT_1826707ec ^ DAT_1826707e0;
  uVar29 = *(uint *)(&DAT_18260f758 + DAT_182670da0) ^ DAT_1826707bc;
  uVar3 = *(uint *)(&DAT_18260f760 + DAT_182670da0);
  uVar13 = (ulonglong)DAT_1826707c4;
  bVar4 = (byte)DAT_1826707dc;
  uVar14 = (ulonglong)DAT_1826707c4;
  uVar30 = (*(uint *)(DAT_1826707a0 + -0x42c) ^ DAT_182670814) << ((bVar4 ^ 0xae) & 0x1f) ^
           DAT_182670958;
  DAT_1826707b0 = uVar10;
  DAT_1826707b8 = uVar42;
  DAT_1826707d0 = uVar19;
  DAT_1826707f0 = uVar23;
  DAT_1826707f4 = uVar28;
  *(uint *)(DAT_1826707a0 + -0x540) = uVar30;
  lVar6 = DAT_1826707a0;
  uVar18 = (ulonglong)uVar42;
  uVar35 = (*(uint *)(lVar5 - (uVar14 ^ 0xaff6f173)) ^ DAT_182670a94) - (uVar30 ^ DAT_182670958) ^
           DAT_182670a1c;
  *(uint *)(lVar5 + -0x2d4) = uVar35;
  uVar35 = uVar35 ^ DAT_182670a1c;
  uVar20 = *(uint *)(lVar6 + -0x3d4) ^ DAT_1826709a0;
  *(longlong *)(lVar6 + -0x588) =
       *(longlong *)(lVar6 - (uVar18 ^ 0xb99b6114)) << (((byte)(uVar7 >> 0x18) ^ 0xf7) & 0x3f);
  uVar30 = DAT_182670840;
  uVar14 = (ulonglong)uVar28;
  uVar24 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xf7bb7819)) = uVar20 * uVar35 ^ _DAT_182670b10;
  *(uint *)(lVar6 - (uVar24 ^ 0x7ffdfbbf)) =
       (*(uint *)(lVar6 + -0x42c) ^ DAT_182670814) << 4 ^ uVar11;
  uVar20 = (*(uint *)(lVar6 + -0xc04) ^ uVar11) + (*(uint *)(lVar6 + -0x7e4) ^ _DAT_182670b10);
  *(uint *)(lVar6 + -0x9ec) = uVar20 ^ uVar30;
  *(uint *)(lVar6 + -0xa34) = uVar20 << (((byte)uVar33 ^ 0xe4) & 0x1f) ^ DAT_1826708d0;
  uVar28 = DAT_182670988;
  uVar36 = (ulonglong)uVar19;
  *(uint *)(lVar6 - (uVar43 ^ 0xbffff933)) =
       (*(uint *)(lVar6 - ((ulonglong)uVar8 ^ 0x40248d6c)) ^ uVar30) >> 0x13 ^ DAT_18267088c;
  *(uint *)(lVar6 - (uVar38 ^ 0x84804830)) =
       (*(uint *)(lVar6 + -0x68c) ^ DAT_18267088c | *(uint *)(lVar6 + -0xa34) ^ DAT_1826708d0) ^
       DAT_182670968;
  puVar1 = (uint *)(lVar6 + -0x280);
  uVar30 = (*(uint *)(lVar6 - (uVar26 ^ 0x40248fd4)) ^ DAT_182670848) +
           (*(uint *)(lVar6 + -0x3d4) ^ DAT_1826709a0) ^ DAT_182670948;
  *puVar1 = uVar30;
  uVar30 = uVar30 ^ DAT_182670990 ^ DAT_182670948;
  *(uint *)(lVar6 + -0x398) = uVar30;
  uVar20 = uVar30 ^ uVar28 ^ DAT_182670990;
  puVar34 = (uint *)(lVar6 - ((ulonglong)uVar7 ^ 0xd3c8ee35));
  uVar30 = *puVar34 ^ DAT_182670900 ^ DAT_182670968;
  uVar24 = (ulonglong)DAT_182670830;
  *(uint *)(lVar6 + -0x8e0) = uVar30;
  *(uint *)(lVar6 + -0xc34) = uVar20;
  *(uint *)(lVar6 - ((ulonglong)uVar10 ^ 0x7a2dee65)) = DAT_1826708e0 ^ DAT_182670900 ^ uVar30;
  uVar20 = DAT_1826707d8;
  pbVar22 = (byte *)(*(longlong *)(lVar6 - (uVar13 ^ 0xaff6fd4f)) +
                    (CONCAT44(uVar41,uVar19) ^ 0xbfffffbfffffffa4));
  uVar39 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar6 + -0x4f8) = (ulonglong)pbVar22 ^ uVar24;
  bVar9 = *pbVar22 ^ (byte)DAT_182670adc ^ (byte)uVar11;
  *(byte *)(lVar6 + -0xc35) = bVar9;
  uVar30 = DAT_1826709b8;
  *(uint *)(lVar6 - (uVar25 ^ 0x3a0963a9)) = uVar11 & 0xff ^ (uint)bVar9 ^ DAT_1826709b8;
  *(uint *)(lVar6 - ((ulonglong)uVar7 ^ 0xd3c8e4f5)) =
       (*(uint *)(lVar6 + -0xc0c) ^ DAT_1826708e0) + (uVar10 ^ 0xb109af4a) ^ DAT_182670984;
  uVar11 = *(uint *)(lVar6 + -0x2d4) ^ DAT_182670984;
  uVar35 = (*(uint *)(lVar6 + -0x540) ^ uVar30) << (((byte)uVar7 ^ 0x30) & 0x1f) ^ DAT_1826708b8;
  *(uint *)(lVar6 + -0x42c) = uVar35;
  *(uint *)(lVar6 + -0xc04) = uVar11 - (uVar35 ^ DAT_1826708b8) ^ DAT_18267085c;
  uVar24 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar6 - (uVar18 ^ 0xb99b6d4c)) = *(ulonglong *)(lVar6 + -0x7d8) >> 0x2a;
  *(uint *)(lVar6 - (uVar24 ^ 0x7ffdf05f)) =
       (*(uint *)(lVar6 + -0xc04) ^ DAT_18267085c) * (*(uint *)(lVar6 + -0xc34) ^ uVar28) ^
       DAT_18267086c;
  uVar15 = (uVar20 << 0x10 | uVar20 & 0xff00) << 8 | uVar20 >> 8 & 0xff00 | DAT_1826707d8 >> 0x18;
  uVar40 = (ulonglong)uVar15;
  uVar11 = *(uint *)(lVar6 + -0x7e4) ^ DAT_18267086c;
  DAT_1826707c8 = uVar15;
  *(ulonglong *)(lVar6 + -0xa18) =
       (CONCAT44(uVar15,uVar20) ^ 0x430b1db5b4e93de4) + *(longlong *)(lVar6 + -0x660);
  uVar30 = (*(uint *)(lVar6 + -0x540) ^ uVar30) * 0x1b ^ DAT_1826708c4;
  *(uint *)(lVar6 + -0x9ec) = uVar30;
  *(uint *)(lVar6 - (uVar26 ^ 0x40248eb4)) = uVar11 + (uVar30 ^ DAT_1826708c4) ^ DAT_182670824;
  *(ulonglong *)(lVar6 - (uVar40 ^ 0xd6da609d)) =
       CONCAT44(uVar37,uVar20) ^ 0xfdfb69fffcfb6f74 | 0xbdd9685fdcfb6d14;
  uVar11 = *(uint *)(lVar6 + -0xa34) ^ DAT_182670824;
  uVar30 = uVar11 << ((bVar4 ^ 0xb2) & 0x1f) ^ DAT_182670898;
  uVar11 = uVar11 >> (((byte)uVar20 ^ 0xc5) & 0x1f) ^ DAT_182670a44;
  *(uint *)(lVar6 + -0x3d4) = uVar11;
  uVar11 = uVar11 ^ DAT_182670a44;
  *(uint *)(lVar6 + -0x68c) = uVar30;
  *(uint *)(lVar6 - (uVar14 ^ 0xf7bb7d7d)) = (uVar11 | uVar30 ^ DAT_182670898) ^ DAT_182670a7c;
  *(longlong *)(lVar6 + -0x2b0) =
       *(longlong *)(lVar6 + -0x610) << ((byte)*(longlong *)(lVar6 + -0x610) & 0x3f);
  uVar11 = DAT_1826707bc;
  lVar5 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707bc;
  *(uint *)(DAT_1826707a0 - (uVar26 ^ 0x5ed47da5)) =
       (*(uint *)(DAT_1826707a0 - (uVar36 ^ 0xfffff4eb)) ^ DAT_182670848) +
       (*(uint *)(DAT_1826707a0 - (uVar14 ^ 0xf7bb73c9)) ^ uVar28) ^ DAT_1826709b0;
  uVar30 = *(uint *)(lVar5 + -0x814) ^ _DAT_1826708f8 ^ DAT_1826709b0;
  *(uint *)(lVar5 + -0x398) = uVar30;
  uVar30 = uVar30 ^ DAT_182670994 ^ _DAT_1826708f8;
  *(uint *)(lVar5 + -0x8e0) = *puVar1 ^ DAT_182670a80 ^ DAT_182670a7c;
  *(uint *)(lVar5 + -0xc0c) = uVar30;
  uVar24 = (ulonglong)DAT_182670a84;
  *(longlong *)(lVar5 - ((ulonglong)uVar10 ^ 0x7a2dee89)) =
       *(longlong *)(lVar5 + -0x588) + -0x3a1681790cc25bd7;
  uVar30 = DAT_1826707d4;
  *(uint *)(lVar5 + -0x42c) = DAT_182670938 ^ DAT_182670a80 ^ *(uint *)(lVar5 + -0x8e0);
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x270) =
       (CONCAT44(uVar23,uVar19) ^ 0x21e6c8d3ffffffbf) * 0x20 +
       (CONCAT44(uVar15,uVar33) ^ 0xd6da668d3a0966ef) + *(longlong *)(DAT_1826707a0 + -0x30) ^
       uVar24;
  bVar4 = (byte)DAT_1826707fc;
  *(ulonglong *)(lVar5 + -0x1b8) =
       (CONCAT44(uVar41,uVar30) ^ 0xa5483448ae8b4337) +
       (CONCAT44(uVar19,uVar42) ^ 0xc13e2821bcb3cf44);
  bVar9 = *(byte *)(*(ulonglong *)(lVar5 - (uVar43 ^ 0xbffffdcf)) ^ uVar24) ^ bVar4 ^
          (byte)DAT_182670adc;
  *(byte *)(lVar5 + -0x619) = bVar9;
  uVar35 = DAT_182670a50;
  *(uint *)(lVar5 + -0x2d4) = (bVar9 ^ bVar4) ^ DAT_182670a50;
  uVar28 = DAT_182670800;
  *(ulonglong *)(lVar5 - (uVar13 ^ 0xaff6f947)) = CONCAT44(uVar30,uVar7) ^ 0x189d7eacc4727516;
  uVar16 = DAT_1826707ec ^ 0x40248491;
  *(uint *)(lVar5 - (uVar25 ^ 0x3a096aed)) =
       (*(uint *)(lVar5 - (uVar38 ^ 0x84804408)) ^ DAT_182670938) + (DAT_1826707f4 ^ 0x3c9f32de) ^
       DAT_182670964;
  uVar30 = (*(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0x21e6ca07)) ^ uVar35) << ((byte)uVar16 & 0x1f) ^
           DAT_18267099c;
  *(uint *)(lVar5 + -0x540) = uVar30;
  lVar6 = DAT_1826707a0;
  uVar31 = (*(uint *)(lVar5 + -0xc04) ^ DAT_182670964) - (uVar30 ^ DAT_18267099c) ^ DAT_1826708d8;
  uVar30 = *(uint *)(DAT_1826707a0 + -0xc0c) ^ DAT_182670994;
  *(uint *)(DAT_1826707a0 + -0x7e4) = uVar31;
  *(uint *)(lVar6 - (uVar39 ^ 0x8d66d33a)) = (uVar31 ^ DAT_1826708d8) * uVar30 ^ uVar28;
  lVar5 = DAT_1826707a0;
  uVar24 = CONCAT44(uVar8,uVar11);
  *(uint *)(DAT_1826707a0 - (uVar13 ^ 0xaff6f74b)) =
       (*(uint *)(lVar6 - ((ulonglong)uVar15 ^ 0xd6da6459)) ^ uVar35) * (uVar11 ^ 0x5ed475b7) ^
       DAT_182670928;
  uVar31 = DAT_182670a08;
  uVar35 = DAT_1826709cc;
  uVar8 = DAT_182670850;
  *(ulonglong *)(lVar5 + -0xd38) =
       (CONCAT44(uVar7,uVar42) ^ 0x6c8b9efe660c3ce) + (uVar24 ^ 0xc28c1dc293317c2b);
  uVar17 = (*(uint *)(lVar5 - (uVar40 ^ 0xd6da6cb9)) ^ DAT_182670928) +
           (*(uint *)(lVar5 + -0x9ec) ^ uVar28);
  *(uint *)(lVar5 + -0x68c) = uVar17 ^ uVar35;
  uVar30 = *(uint *)(lVar5 - (uVar25 ^ 0x3a096065));
  uVar12 = DAT_1826708e8 ^ *(uint *)(lVar5 + -0x43c);
  uVar21 = uVar17 >> (((byte)DAT_1826707c4 ^ 0x6c) & 0x1f) ^ DAT_1826708a0;
  uVar17 = DAT_18267089c ^ *(uint *)(lVar5 + -0xcec);
  *(uint *)(lVar5 + -0xc34) = uVar21;
  uVar12 = uVar17 + uVar12 ^ DAT_1826709d4;
  uVar21 = uVar21 ^ DAT_1826708a0;
  uVar30 = (uVar30 ^ uVar35) << 0xd;
  *(uint *)(lVar5 + -0x3d4) = uVar30 ^ uVar8;
  *puVar1 = uVar12;
  *(uint *)(lVar5 + -0x814) = (uVar30 | uVar21) ^ uVar31;
  uVar12 = DAT_182670aa0;
  uVar27 = (ulonglong)DAT_182670aa0;
  uVar13 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar5 - (uVar36 ^ 0xfffffae7)) =
       *(ulonglong *)(lVar5 - (uVar14 ^ 0xf7bb72c5)) | *(ulonglong *)(lVar5 + -0x1b8);
  uVar35 = DAT_182670a90;
  lVar5 = DAT_1826707a0;
  puVar2 = (uint *)(*(longlong *)(DAT_1826707a0 - (uVar13 ^ 0x7ffdf183)) +
                   ((CONCAT44(uVar23,uVar10) ^ 0x21e6c8d37a2de26a) +
                   (uVar24 ^ 0x402484805ed475b1) * 5) * 4);
  *(ulonglong *)(DAT_1826707a0 + -0x268) = (ulonglong)puVar2 ^ uVar27;
  *puVar2 = *puVar34 ^ uVar35 ^ uVar31;
  uVar17 = *puVar1 ^ DAT_1826709f4 ^ DAT_1826709d4;
  uVar30 = *(uint *)(lVar5 + -0x814) ^ DAT_182670a34;
  *(uint *)(lVar5 + -0x398) = uVar17;
  uVar17 = uVar17 ^ DAT_1826709f4;
  *(uint *)(lVar5 + -0x8e0) = uVar30 ^ uVar31;
  *(uint *)(lVar5 + -0x42c) = uVar17 ^ uVar35;
  *(ulonglong *)(lVar5 + -0xcf8) =
       *(ulonglong *)(lVar5 - (uVar39 ^ 0x8d66da26)) | *(ulonglong *)(lVar5 + -0xbb0);
  *(uint *)(lVar5 + -0xc04) =
       *(uint *)(lVar5 - (uVar36 ^ 0xfffff75f)) ^ DAT_182670ac8 ^ DAT_182670a34;
  *(ulonglong *)(lVar5 + -0x6f0) =
       (CONCAT44(uVar23,uVar37) ^ 0x6f0a0023ccb062bd) + 0xae53aee82ececd04;
  *(uint *)(lVar5 - (uVar43 ^ 0xbffffaff)) =
       *(uint *)(lVar5 - (uVar40 ^ 0xd6da62a1)) ^ DAT_182670ac0 ^ uVar35;
  *(uint *)(lVar5 - (uVar25 ^ 0x3a09610d)) =
       DAT_182670a3c ^ DAT_182670ac8 ^ *(uint *)(lVar5 + -0xc04);
  *(ulonglong *)(lVar5 + -0x220) = *(ulonglong *)(lVar5 + -0x6f0) >> (((byte)uVar10 ^ 0x4d) & 0x3f);
  uVar31 = DAT_182670af8;
  bVar9 = (byte)DAT_182670adc;
  bVar4 = (byte)DAT_182670970;
  lVar6 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826709e4;
  *(uint *)(DAT_1826707a0 - (uVar38 ^ 0x84804c28)) =
       *(uint *)(lVar5 - (uVar38 ^ 0x84804564)) ^ DAT_182670af8 ^ DAT_182670ac0;
  *(uint *)(lVar6 + -0x2d4) = DAT_182670a10 ^ DAT_182670a3c ^ *(uint *)(lVar6 + -0x7e4);
  *(ulonglong *)(lVar6 + -0xd88) =
       -0x11dc03a4261a731d - (CONCAT44(uVar41,uVar32) ^ 0xf3d0a3acc62f47cc);
  uVar30 = DAT_1826707d4;
  *(ulonglong *)(lVar6 - (uVar36 ^ 0xfffffdf7)) =
       (CONCAT44(uVar32,uVar10) ^ 0xaff6fd7f7a2de269) * 0x20 +
       (CONCAT44(uVar20,uVar33) ^ 0x8d66dad63a0966f8) + *(longlong *)(lVar6 + -0x30) ^ uVar24;
  *(byte *)(lVar6 - ((ulonglong)uVar30 ^ 0x7ffdfb8e)) =
       *(byte *)(*(ulonglong *)(lVar6 + -0xdb8) ^ (ulonglong)DAT_182670888) ^ bVar9;
  uVar13 = (ulonglong)DAT_182670af0;
  *(byte *)(lVar6 + -0x619) = *(byte *)(*(ulonglong *)(lVar6 + -0x248) ^ uVar24) ^ bVar9 ^ bVar4;
  *(byte *)(*(ulonglong *)(lVar6 + -0x218) ^ uVar13) = (byte)uVar42 ^ 0x9e;
  uVar32 = DAT_1826709a4;
  lVar5 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar43 ^ 0xbffff653)) =
       (*(byte *)(lVar6 + -0x619) ^ bVar4) ^ DAT_1826709a4;
  bVar4 = (byte)DAT_1826707b4;
  *(uint *)(lVar5 + -0xa34) =
       (*(uint *)(lVar5 + -0x2d4) ^ DAT_182670a10) + (uVar42 ^ 0x72bf28ff) ^ DAT_1826708c0;
  *(uint *)(DAT_1826707a0 - (uVar18 ^ 0xb99b6350)) =
       (*(uint *)(lVar5 + -0x9ec) ^ uVar32) << ((bVar4 ^ 0xf7) & 0x1f) ^ DAT_182670a64;
  lVar5 = DAT_1826707a0;
  uVar17 = (*(uint *)(DAT_1826707a0 + -0xa34) ^ DAT_1826708c0) -
           (*(uint *)(DAT_1826707a0 + -0x68c) ^ DAT_182670a64);
  *(uint *)(DAT_1826707a0 + -0x3d4) = uVar17 ^ uVar28;
  uVar33 = DAT_182670a98;
  uVar41 = DAT_182670a14;
  *(ulonglong *)(lVar5 + -0x658) =
       (CONCAT44(uVar11,uVar11) ^ 0x76ba83fd2d435f1) +
       (CONCAT44(uVar15,uVar37) ^ 0x8c7c26dc20c9b88c);
  *(uint *)(lVar5 + -0xc34) = (*(uint *)(lVar5 - (uVar26 ^ 0x5ed479bd)) ^ uVar31) * uVar17 ^ uVar8;
  *(ulonglong *)(lVar5 + -0x3b0) = CONCAT44(uVar15,uVar20) ^ 0x56f3dfc47474ff65;
  *(uint *)(lVar5 - (uVar14 ^ 0xf7bb7311)) = (*(uint *)(lVar5 + -0x9ec) ^ uVar32) * uVar16 ^ uVar33;
  uVar20 = DAT_182670980;
  uVar32 = (*(uint *)(lVar5 - (uVar18 ^ 0xb99b69e8)) ^ uVar8) + (uVar33 ^ *(uint *)(lVar5 + -0xcec))
  ;
  *(uint *)(lVar5 + -0x43c) = uVar32 ^ uVar41;
  uVar11 = DAT_182670874;
  uVar37 = DAT_182670848;
  uVar14 = (ulonglong)DAT_182670874;
  *(uint *)(lVar5 - (uVar36 ^ 0xfffffd3f)) = uVar32 << (((byte)uVar10 ^ 100) & 0x1f) ^ uVar20;
  uVar13 = (ulonglong)DAT_182670b08;
  uVar30 = (uVar41 ^ *(uint *)(lVar5 + -0x43c)) >> (((byte)uVar30 ^ 0xa8) & 0x1f);
  *(uint *)(lVar5 + -0x398) = uVar30 ^ uVar12;
  lVar6 = DAT_1826707a0;
  *(uint *)(lVar5 + -0x8e0) =
       (*(uint *)(lVar5 - ((ulonglong)uVar7 ^ 0xd3c8e4a1)) ^ uVar20 | uVar30) ^ DAT_182670900;
  lVar5 = DAT_1826707a0;
  uVar41 = ~uVar19 ^ 0xf993b1e3;
  DAT_1826707c0 = uVar41;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar41 ^ 0xf993b58f)) =
       (*(uint *)(lVar6 + -0xb54) ^ uVar37) + (*(uint *)(lVar6 + -0xc0c) ^ uVar31) ^ uVar11;
  uVar30 = DAT_182670a28 ^ DAT_182670900;
  *(ulonglong *)(lVar5 + -0x548) =
       CONCAT44(uVar19,uVar19) ^ 0x15f56581cfde9e71 | *(ulonglong *)(lVar5 + -0x9c8);
  *(uint *)(lVar5 + -0xc04) = *(uint *)(lVar5 + -0x42c) ^ uVar11 ^ uVar37;
  *(uint *)(lVar5 - ((ulonglong)uVar41 ^ 0xf993b4e3)) = uVar30 ^ *(uint *)(lVar5 + -0x8e0);
  *(uint *)(lVar5 + -0x7e4) = *(uint *)(lVar5 + -0xc04) ^ DAT_18267099c ^ uVar37;
  *(uint *)(lVar5 + -0x2d4) = *(uint *)(lVar5 + -0x540) ^ DAT_182670a28 ^ DAT_182670938;
  uVar30 = DAT_1826707cc;
  *(ulonglong *)(lVar5 + -0x2e8) =
       *(longlong *)(lVar5 - ((ulonglong)uVar41 ^ 0xf993b193)) +
       (CONCAT44(uVar19,~uVar19) ^ 0xffffffbf0000005c) ^ uVar13;
  bVar4 = (byte)DAT_1826709f8;
  uVar32 = DAT_182670964;
  *(byte *)(lVar5 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar5 - (uVar36 ^ 0xfffffd57)) ^ uVar13) ^ bVar9 ^
       (byte)DAT_1826709f8;
  *(byte *)(*(ulonglong *)(lVar5 + -0x3e0) ^ uVar14) = (byte)uVar41 ^ 0x5b;
  uVar37 = (uint)(*(byte *)(lVar5 + -0xc35) ^ bVar4);
  uVar33 = *(uint *)(lVar5 + -0x2d4) ^ DAT_182670938;
  *(uint *)(lVar5 + -0xa34) = uVar37 ^ uVar32;
  *(uint *)(lVar5 + -0x3d4) = uVar37 << (((byte)uVar30 ^ 0x47) & 0x1f) ^ DAT_18267080c;
  uVar37 = DAT_1826707cc;
  uVar41 = (uVar30 << 0x10 | uVar30 & 0xff00) << 8 | uVar30 >> 8 & 0xff00 | DAT_1826707cc >> 0x18;
  uVar33 = uVar33 + (uVar41 ^ 0x9dbdbba6);
  DAT_1826707e8 = uVar41;
  *(uint *)(lVar5 + -0x68c) = uVar33 ^ uVar20;
  uVar11 = DAT_1826708f4;
  *(uint *)(lVar5 - ((ulonglong)uVar30 ^ 0x85f690ba)) =
       uVar33 - (*(uint *)(lVar5 - ((ulonglong)uVar30 ^ 0x85f69a82)) ^ DAT_18267080c) ^
       DAT_1826709bc;
  *(uint *)(lVar5 + -0xc34) =
       (*(uint *)(lVar5 + -0x7e4) ^ DAT_18267099c) * (*(uint *)(lVar5 + -0x9ec) ^ DAT_1826709bc) ^
       DAT_1826709ac;
  uVar32 = (*(uint *)(lVar5 - ((ulonglong)uVar41 ^ 0x5699fcb1)) ^ uVar32) * 0x1c;
  *(uint *)(lVar5 + -0xcec) = uVar32 ^ uVar11;
  *(uint *)(lVar5 + -0x43c) =
       (*(uint *)(lVar5 - ((ulonglong)uVar30 ^ 0x85f69562)) ^ DAT_1826709ac) + uVar32 ^
       DAT_182670944;
  *puVar1 = (*(uint *)(lVar5 - ((ulonglong)uVar30 ^ 0x85f69d6a)) ^ DAT_182670944) <<
            (((byte)(uVar37 >> 0x18) ^ 0x88) & 0x1f) ^ uVar35;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar3 ^ uVar19) * 4) = uVar29;
  return;
}



############ FUN_ 180ce17c0 size=4713 ############

void FUN_180ce17c0(void)

{
  uint uVar1;
  uint uVar2;
  int iVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  byte bVar20;
  ulonglong *puVar21;
  byte *pbVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  byte bVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  byte local_res20;
  
  uVar18 = DAT_182670ae4;
  uVar15 = DAT_1826707e0;
  uVar11 = DAT_1826707c8;
  uVar7 = DAT_1826707b0;
  lVar4 = DAT_1826707a0;
  uVar35 = (ulonglong)DAT_1826707b0;
  uVar24 = (ulonglong)DAT_1826707c8;
  uVar33 = DAT_1826707b0 | DAT_1826707e0;
  uVar34 = ~DAT_1826707c8;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar24 ^ 0xf523cf09) + (longlong)DAT_182670b78);
  uVar2 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707b0 ^ 0xefdfdfef) + (longlong)DAT_182670b78);
  uVar37 = (ulonglong)DAT_1826707e0;
  uVar38 = (ulonglong)uVar33;
  uVar36 = DAT_1826707c8 ^ 0x8dada576;
  pbVar22 = (byte *)(*(longlong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e0 ^ 0xcc5c88e1)) + 0x1b);
  bVar20 = *(byte *)(DAT_1826707a0 + -0xd02) ^ (byte)DAT_182670aa0 ^ (byte)DAT_182670a40;
  DAT_1826707b4 = uVar34;
  DAT_1826707e8 = uVar33;
  *(ulonglong *)(DAT_1826707a0 + -0x278) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182670824;
  *pbVar22 = bVar20;
  uVar8 = DAT_1826709ac;
  lVar5 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  *(ulonglong *)(lVar4 + -0xb78) =
       *(longlong *)(lVar4 + -0x2d0) + (CONCAT44(uVar11,uVar33) ^ 0xf523cf01efdfdffc) * 8 ^ uVar23;
  uVar17 = DAT_182670878;
  uVar29 = CONCAT44(uVar18,uVar18);
  uVar25 = CONCAT44(uVar8,uVar8);
  uVar31 = (ulonglong)uVar34;
  *(ulonglong *)(lVar5 + -0x6b8) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xefdfd487)) ^ uVar23) ^ uVar29 ^
       uVar25;
  lVar4 = DAT_1826707a0;
  *(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0xadc3566)) =
       uVar36 << ((byte)*(undefined4 *)(lVar5 + -0x2d4) & 0x1f);
  bVar20 = (byte)DAT_182670a50;
  uVar23 = (ulonglong)DAT_18267086c;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xefdfd31f)) =
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar25) >> (((byte)uVar7 ^ 0xdf) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x588) =
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar25) -
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0xcc5c8fe9)) ^ CONCAT44(DAT_182670a98,DAT_182670a98));
  bVar32 = bVar20 ^ (byte)DAT_182670a40;
  *(byte *)(lVar4 + -0xc35) = *(byte *)(lVar4 - (uVar24 ^ 0xf523c3e1)) ^ bVar20 ^ (byte)uVar17;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xefdfd41f)) =
       *(longlong *)(lVar4 - (uVar31 ^ 0xadc3196)) + (CONCAT44(uVar33,uVar15) ^ 0xefdfdfffcc5c8995)
       ^ uVar23;
  uVar8 = DAT_1826708c0;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar24 ^ 0xf523c4e1)) ^ uVar23) =
       bVar32 ^ *(byte *)(lVar4 + -0xc35);
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0xc0) = *(longlong *)(lVar4 - (uVar38 ^ 0xefdfdd2f)) + 0x18U ^ uVar23;
  uVar8 = DAT_182670a90;
  uVar14 = DAT_1826707d8;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xadc32de)) = CONCAT44(uVar34,uVar15) ^ 0x271aab778d48551b;
  bVar20 = (byte)uVar8 ^ (byte)DAT_182670840;
  uVar23 = *(ulonglong *)(uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0xc0)) ^ uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar23 ^ CONCAT44(DAT_182670a9c,DAT_182670a9c);
  lVar4 = DAT_1826707a0;
  uVar23 = uVar23 >> (((byte)DAT_1826707c0 ^ 0xa1) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar23;
  *(byte *)(lVar4 - (uVar24 ^ 0xf523c408)) = bVar20 ^ (byte)uVar23;
  uVar37 = (ulonglong)DAT_1826708fc;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xefdfd707)) = *(longlong *)(lVar4 + -0x168) + 0x1dU ^ uVar37;
  uVar6 = DAT_1826707c0;
  uVar23 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xcc5c8c01)) =
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar25) >>
       (((byte)uVar8 ^ *(byte *)(lVar4 + -0x660)) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar4 + -0x8f8) ^ uVar37) =
       *(byte *)(lVar4 - (uVar23 ^ 0xab381a80)) ^ (byte)DAT_182670840 ^ (byte)DAT_182670a40;
  uVar8 = DAT_182670900;
  uVar27 = (ulonglong)DAT_182670888;
  uVar23 = CONCAT44(DAT_182670930,DAT_182670930);
  uVar37 = CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar4 + -0xb78) =
       *(longlong *)(lVar4 + -0x2d0) + (CONCAT44(uVar33,uVar7) ^ 0xefdfdfffefdfdffc) * 8 ^ uVar23;
  lVar5 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826709f8;
  uVar23 = *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0xadc3b86)) ^ uVar23) ^ uVar29
  ;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar23 ^ uVar37;
  lVar4 = DAT_1826707a0;
  puVar21 = (ulonglong *)(lVar5 + -0x220);
  uVar23 = uVar23 >> (((byte)uVar7 ^ 0xcf) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  *(byte *)(DAT_1826707a0 + -0x61a) = (byte)uVar8 ^ (byte)DAT_182670834 ^ (byte)uVar23;
  *puVar21 = uVar23;
  pbVar22 = (byte *)((CONCAT44(uVar15,uVar15) ^ 0xcc5c8989cc5c8997) + *(longlong *)(lVar4 + -0x168))
  ;
  *(ulonglong *)(lVar4 + -0xd48) = (ulonglong)pbVar22 ^ uVar25;
  *(ulonglong *)(lVar4 + -0xd88) = (CONCAT44(uVar15,uVar33) ^ 0x19bcd95270ff27d) << 6;
  uVar13 = DAT_182670ab0;
  *pbVar22 = *(byte *)(DAT_1826707a0 - (uVar24 ^ 0xf523c91b)) ^ (byte)DAT_182670834 ^
             (byte)DAT_182670a40;
  uVar8 = DAT_1826709e8;
  lVar5 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar37 = (ulonglong)DAT_182670964;
  *(ulonglong *)(DAT_1826707a0 + -0xc0) =
       *(longlong *)(DAT_1826707a0 + -0x2d0) +
       ((CONCAT44(uVar15,uVar7) ^ 0xcc5c8989efdfdffc) +
       (CONCAT44(uVar6,uVar7) ^ 0xab381189efdfdfff) * 0xc) * 8 ^ uVar23;
  bVar20 = (byte)DAT_182670918;
  bVar26 = (byte)uVar18 ^ (byte)DAT_182670918;
  uVar23 = *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar14 ^ 0x1189abf8)) ^ uVar23) ^
           uVar29;
  local_res20 = (byte)uVar11;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar23 ^ CONCAT44(uVar8,uVar8);
  uVar23 = uVar23 >> ((local_res20 ^ 0x39) & 0x3f);
  pbVar22 = (byte *)(*(longlong *)(lVar5 + -0x168) + 0x1f);
  uVar25 = uVar23 ^ uVar29;
  *(ulonglong *)(lVar5 + -0x660) = uVar25;
  bVar26 = bVar26 ^ (byte)uVar25;
  *(ulonglong *)(lVar5 + -0x3f0) = (ulonglong)pbVar22 ^ uVar37;
  *(byte *)(lVar5 + -0x41) = bVar26;
  bVar32 = (byte)DAT_182670a40;
  bVar20 = bVar20 ^ bVar26 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar5 + -0x588) =
       uVar23 << ((byte)*(undefined8 *)(lVar5 - (uVar31 ^ 0xadc3d76)) & 0x3f);
  uVar8 = DAT_182670854;
  *pbVar22 = bVar20;
  uVar9 = DAT_1826707c0;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0xf523c479)) =
       *(longlong *)(lVar5 - (uVar31 ^ 0xadc322e)) +
       ((CONCAT44(uVar11,uVar34) ^ 0xf523cf010adc30fa) +
       (CONCAT44(uVar33,uVar15) ^ 0xefdfdfffcc5c8989) * 0xc) * 8 ^ uVar23;
  uVar18 = DAT_182670af8;
  uVar8 = DAT_182670a20;
  uVar39 = CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar23 = *(ulonglong *)(uVar23 ^ *(ulonglong *)(lVar5 + -0xb78)) ^ uVar29 ^ uVar39;
  *(ulonglong *)(lVar5 + -0xce0) = uVar23;
  uVar13 = DAT_1826708a8;
  lVar4 = *(longlong *)(lVar5 + -0x168);
  uVar23 = CONCAT44(uVar8,uVar8) ^ uVar39 ^ uVar23;
  iVar3 = *(int *)(lVar5 - (uVar38 ^ 0xefdfd5cb));
  *puVar21 = uVar23;
  *(byte *)(lVar5 + -0x729) = (byte)uVar8 ^ (byte)uVar13 ^ (byte)uVar23;
  uVar23 = (ulonglong)DAT_182670864;
  *(int *)(lVar5 + -0xcec) = iVar3 * -0x6579a944;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar14 ^ 0x1189ad10)) = lVar4 + 0x20U ^ uVar23;
  uVar36 = DAT_1826707bc;
  uVar24 = CONCAT44(uVar15,DAT_1826707f4);
  *(byte *)(*(ulonglong *)(lVar5 + -0x628) ^ uVar23) =
       (byte)uVar13 ^ *(byte *)(lVar5 + -0x729) ^ bVar32;
  lVar4 = DAT_1826707a0;
  uVar24 = uVar24 ^ 0xcc5c898930fe0adc;
  uVar23 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar36 ^ 0x468e30e6)) =
       *(longlong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xab381359)) +
       ((CONCAT44(uVar15,uVar11) ^ 0xcc5c8989f523cf05) + uVar24 * 0xc) * 8 ^ uVar23;
  uVar8 = DAT_182670860;
  uVar12 = DAT_1826707d0;
  uVar28 = (ulonglong)DAT_1826707d0;
  uVar25 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xb3adf99f)) =
       *(ulonglong *)(uVar23 ^ *(ulonglong *)(lVar4 + -0xc0)) ^ uVar25 ^ uVar29;
  uVar10 = DAT_1826707c4;
  lVar5 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d8 ^ 0x1189a6b0)) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x6b8)) <<
       (((byte)uVar18 ^ *(byte *)(lVar4 + -0xce0)) & 0x3f);
  *(ulonglong *)(lVar5 + -0x660) =
       (uVar25 ^ *(ulonglong *)(lVar5 + -0x6b8)) >> (((byte)uVar36 ^ 0x2e) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  uVar23 = (ulonglong)DAT_1826709a8;
  *(byte *)(lVar5 + -0xc69) =
       *(byte *)(lVar5 - ((ulonglong)uVar9 ^ 0xab3817e9)) ^ (byte)uVar8 ^ (byte)DAT_1826708f0;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xefdfd3df)) = *(longlong *)(lVar5 + -0x168) + 0x21U ^ uVar23;
  uVar9 = DAT_1826707e4;
  uVar31 = (ulonglong)DAT_1826707e4;
  *puVar21 = *(longlong *)(lVar5 - ((ulonglong)DAT_1826707ac ^ 0xfffffa77)) -
             (CONCAT44(uVar6,uVar15) ^ 0xfedfee3507d9b348);
  uVar16 = DAT_18267081c;
  uVar6 = DAT_1826707f0;
  uVar36 = DAT_1826707dc;
  uVar13 = DAT_1826707d4;
  uVar25 = (ulonglong)DAT_18267081c;
  *(byte *)(*(ulonglong *)(lVar5 + -0xc20) ^ uVar23) =
       *(byte *)(lVar5 - (uVar31 ^ 0xbcfc0ef1)) ^ (byte)DAT_1826708f0 ^ bVar32;
  *(ulonglong *)(lVar5 + -0xd88) =
       (CONCAT44(uVar6,uVar36) ^ 0xd4696ac4a97b4ade) -
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0xefdfd99f)) ^ CONCAT44(uVar8,uVar8));
  puVar30 = (ulonglong *)
            ((CONCAT44(uVar6,uVar11) ^ 0x4e92d9a4f523cf01) * 0x60 +
            *(longlong *)(lVar5 - ((ulonglong)uVar9 ^ 0xbcfc0048)) + 0x20);
  *(ulonglong *)(lVar5 + -0xb78) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar23 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (CONCAT44(uVar34,uVar11) ^ 0x7e12dbc45847f61f) +
       (CONCAT44(uVar14,uVar15) ^ 0xd4e39bada469e38c);
  uVar18 = DAT_1826709a0;
  *(ulonglong *)(lVar5 - (uVar23 ^ 0x9802f934)) = CONCAT44(uVar16,uVar16) ^ *puVar30 ^ uVar29;
  *(ulonglong *)(lVar5 + -0x660) =
       ((ulonglong)(uVar16 >> 0x10) | uVar25 << 0x10) ^ *(ulonglong *)(lVar5 + -0x588) >> 0x10 ^
       CONCAT44(uVar18,uVar18);
  uVar19 = DAT_182670a64;
  uVar8 = DAT_1826707b8;
  lVar4 = DAT_1826707a0;
  pbVar22 = (byte *)(*(longlong *)(DAT_1826707a0 + -0x168) + 0x22);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (CONCAT44(DAT_1826707b8,uVar13) ^ 0x903d81a090302227) - *puVar21;
  *(ulonglong *)(lVar4 + -0x728) = (ulonglong)pbVar22 ^ uVar27;
  bVar26 = (byte)uVar19;
  bVar20 = (byte)uVar18 ^ bVar26 ^ *(byte *)(lVar4 + -0x660);
  *(byte *)(lVar4 + -0xb81) = bVar20;
  lVar5 = DAT_1826707a0;
  *pbVar22 = bVar26 ^ bVar20 ^ bVar32;
  uVar18 = DAT_18267099c;
  uVar36 = DAT_1826707ec;
  uVar27 = (ulonglong)DAT_1826707ec;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x2d0) +
            (CONCAT44(DAT_1826707ec,DAT_1826707ac) ^ 0xfbfff7fffffffffb) * 8);
  *(ulonglong *)(lVar5 + -0xc0) = (ulonglong)puVar30 ^ CONCAT44(DAT_1826709e4,DAT_1826709e4);
  uVar23 = CONCAT44(uVar18,uVar18);
  uVar31 = *puVar30 ^ uVar23 ^ uVar29;
  bVar20 = (byte)DAT_1826707c0;
  *(ulonglong *)(lVar5 + -0x588) = uVar31;
  *(uint *)(lVar5 + -0x8e0) = (uVar10 ^ 0x9756cd70) * *(int *)(lVar5 + -0x68c);
  uVar25 = (ulonglong)DAT_1826707a8;
  *puVar21 = (uVar31 ^ uVar23) >> ((bVar20 ^ 0x91) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  bVar20 = (byte)DAT_18267095c;
  bVar32 = (byte)DAT_18267095c ^ *(byte *)puVar21 ^ (byte)uVar17;
  *(byte *)(lVar5 + -0x2bd) = bVar32;
  uVar23 = (ulonglong)DAT_1826707f8;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0x9802f05c)) ^ uVar39) -
       (CONCAT44(uVar12,uVar34) ^ 0xa403529cbf33e05c);
  bVar20 = bVar20 ^ bVar32 ^ (byte)DAT_182670a40;
  pbVar22 = (byte *)((CONCAT44(uVar36,uVar34) ^ 0xfbfff7ff0adc30dd) + *(longlong *)(lVar5 + -0x168))
  ;
  *(ulonglong *)(lVar5 + -0x230) = (ulonglong)pbVar22 ^ uVar23;
  uVar25 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *pbVar22 = bVar20;
  uVar23 = (ulonglong)DAT_1826707f0;
  puVar30 = (ulonglong *)(*(longlong *)(lVar5 + -0x2d0) + 0x20);
  *(ulonglong *)(lVar5 + -0xc0) = (ulonglong)puVar30 ^ uVar25;
  puVar40 = (ulonglong *)(lVar5 - (uVar23 ^ 0x4e92dfc4));
  uVar25 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar31 = (ulonglong)DAT_182670afc;
  bVar20 = (byte)DAT_182670960;
  uVar23 = (ulonglong)DAT_1826707d8;
  *puVar40 = *puVar30 ^ uVar25 ^ uVar29;
  lVar4 = DAT_1826707a0;
  uVar25 = (*(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x1189ad58)) ^ uVar25) >>
           (((byte)uVar8 ^ 0xaa) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  uVar23 = CONCAT44(uVar15,DAT_1826707d8);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar25;
  *(byte *)(lVar4 + -0x7f3) = bVar26 ^ bVar20 ^ (byte)uVar25;
  *(ulonglong *)(lVar4 + -0x850) =
       (uVar23 ^ 0xcc5c89891189ab1c) + *(longlong *)(lVar4 + -0x168) ^ uVar31;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar28 ^ 0xb3adf777)) ^ uVar31) =
       *(byte *)(lVar4 - (uVar35 ^ 0xefdfd80c)) ^ bVar20 ^ (byte)DAT_182670a40;
  uVar17 = DAT_1826709fc;
  uVar36 = DAT_1826707dc;
  uVar28 = (ulonglong)DAT_1826707dc;
  *(int *)(lVar4 + -0x398) =
       *(int *)(lVar4 - (uVar38 ^ 0xefdfdd2b)) <<
       ((byte)*(undefined4 *)(lVar4 - (uVar38 ^ 0xefdfd613)) & 0x1f);
  uVar8 = DAT_182670850;
  uVar10 = DAT_1826707f4;
  uVar23 = (ulonglong)DAT_1826707f4;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x2d0) +
            ((CONCAT44(uVar34,uVar9) ^ 0xadc30febcfc029c) +
            (CONCAT44(uVar36,DAT_1826707cc) ^ 0xdfffefdfc1fc0814) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xc0) = (ulonglong)puVar30 ^ CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar36 = DAT_1826707a8;
  lVar5 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar8,uVar8);
  uVar25 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x30fe08fc)) = *puVar30 ^ uVar35 ^ uVar29;
  uVar23 = *puVar21;
  *(ulonglong *)(lVar5 + -0xce0) =
       *(longlong *)(lVar5 - (uVar25 ^ 0x9802f134)) -
       (CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar5 + -0x588));
  uVar9 = DAT_1826707c0;
  uVar25 = (ulonglong)DAT_182670ad0;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (uVar35 ^ uVar23) >> (((byte)uVar13 ^ 0x5f) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  bVar20 = (byte)DAT_1826708f4;
  lVar4 = DAT_1826707a0;
  bVar32 = (byte)uVar17 ^ (byte)DAT_1826708f4 ^ *(byte *)(DAT_1826707a0 + -0x6b8);
  pbVar22 = (byte *)(*(longlong *)(DAT_1826707a0 + -0x168) + 0x25);
  *(byte *)(DAT_1826707a0 + -0x871) = bVar32;
  *(ulonglong *)(lVar4 + -0xa68) = (ulonglong)pbVar22 ^ uVar25;
  uVar6 = DAT_1826707ac;
  uVar31 = (ulonglong)DAT_1826707ac;
  bVar20 = bVar20 ^ bVar32 ^ (byte)DAT_182670a40;
  *(uint *)(lVar4 + -0x540) = (uVar9 ^ 0xcd12183) * *(int *)(lVar4 + -0xc04);
  *pbVar22 = bVar20;
  *(ulonglong *)(lVar4 + -0x660) =
       -0x541100e3f06e8f68 - (CONCAT44(uVar33,uVar6) ^ 0x79b906b82d1419ac);
  uVar8 = DAT_1826709a4;
  uVar23 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar4 + -0xc0) = uVar24 * 0x60 + *(longlong *)(lVar4 + -0x2d0) + 0x20 ^ uVar23;
  uVar35 = (ulonglong)DAT_1826707c0;
  uVar23 = *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar27 ^ 0xfbfff73f)) ^ uVar23) ^ uVar29;
  *(ulonglong *)(lVar4 + -0xd88) = uVar23 ^ CONCAT44(uVar8,uVar8);
  lVar4 = DAT_1826707a0;
  bVar20 = (byte)DAT_182670964 ^ (byte)DAT_182670af4;
  uVar23 = uVar23 >> (((byte)uVar10 ^ 0xec) & 0x3f) ^ CONCAT44(DAT_182670964,DAT_182670964);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar23;
  uVar25 = (ulonglong)DAT_182670988;
  *(byte *)(lVar4 - (uVar35 ^ 0xab381788)) = bVar20 ^ (byte)uVar23;
  lVar5 = DAT_1826707a0;
  pbVar22 = (byte *)(*(longlong *)(lVar4 + -0x168) + 0x26);
  *(ulonglong *)(DAT_1826707a0 + -0xda0) = (ulonglong)pbVar22 ^ uVar25;
  lVar4 = DAT_1826707a0;
  bVar20 = *(byte *)(DAT_1826707a0 + -0x601) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670af4;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       *(ulonglong *)(lVar5 - (uVar28 ^ 0xdfffe967)) ^ CONCAT44(uVar17,uVar17) |
       CONCAT44(uVar11,uVar11) ^ 0x31d466abe6688c10;
  *pbVar22 = bVar20;
  uVar8 = DAT_182670874;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar4 - (uVar37 ^ 0xbac026b3)) +
            ((CONCAT44(uVar12,uVar33) ^ 0xb3adff27efdfdffb) +
            (CONCAT44(uVar36,uVar7) ^ 0x9802fcbcefdfdfff) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xc0) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670898,DAT_182670898);
  uVar13 = DAT_182670b08;
  uVar23 = CONCAT44(uVar8,uVar8);
  *puVar21 = *puVar30 ^ uVar29 ^ uVar23;
  bVar20 = (byte)DAT_1826707f0;
  *(undefined1 *)(lVar4 - (uVar31 ^ 0xfffffd7d)) = **(undefined1 **)(lVar4 - (uVar35 ^ 0xab381571));
  *puVar40 = (*puVar21 ^ uVar23) >> ((bVar20 ^ 0x9c) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar33) * 4) = uVar1 ^ uVar34;
  return;
}



############ FUN_ 180c52140 size=5789 ############

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

void FUN_180c52140(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  int iVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  byte bVar18;
  byte bVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  byte local_res20;
  byte local_110;
  byte local_d0;
  byte local_c8;
  
  uVar15 = DAT_182670988;
  uVar14 = DAT_1826707e8;
  uVar12 = DAT_1826707d4;
  uVar11 = DAT_1826707d0;
  uVar10 = DAT_1826707c4;
  uVar9 = DAT_1826707bc;
  uVar8 = DAT_1826707a8;
  lVar6 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707d4;
  uVar48 = (ulonglong)DAT_1826707bc;
  uVar40 = (ulonglong)DAT_1826707a8;
  uVar32 = (ulonglong)DAT_1826707e8;
  uVar36 = (ulonglong)DAT_1826707c4;
  uVar21 = DAT_1826707e8 | DAT_1826707c4;
  uVar30 = *(uint *)(&DAT_18260f758 + DAT_182670cb0) ^ DAT_1826707bc;
  uVar42 = DAT_1826707e4 * DAT_1826707a8;
  uVar24 = DAT_1826707b4 << 0x10 | DAT_1826707b4 >> 0x10;
  uVar29 = (DAT_1826707d4 << 0x10 | DAT_1826707d4 & 0xff00) << 8 | DAT_1826707d4 >> 8 & 0xff00 |
           DAT_1826707d4 >> 0x18;
  uVar35 = (ulonglong)DAT_1826707d0;
  uVar46 = DAT_1826707bc ^ DAT_1826707d0;
  uVar4 = *(uint *)(&DAT_18260f750 + (uVar35 ^ 0xfcc943c4) + (longlong)DAT_182670cb0);
  uVar31 = CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar41 = (ulonglong)uVar21;
  DAT_1826707ac = uVar42;
  DAT_1826707c8 = uVar21;
  DAT_1826707cc = uVar46;
  DAT_1826707dc = uVar29;
  DAT_1826707f4 = uVar24;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0x13d5d147)) =
       (CONCAT44(DAT_182670ab8,DAT_182670ab8) ^ *(ulonglong *)(DAT_1826707a0 + -0x420)) << 0xc ^
       uVar31;
  puVar2 = (ulonglong *)(lVar6 + -0x4c8);
  uVar51 = CONCAT44(DAT_182670970,DAT_182670970);
  puVar3 = (ulonglong *)(lVar6 + -0x9c8);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0x8448a62)) =
       (CONCAT44(uVar15,uVar15) ^ *puVar2 | uVar31 ^ *(ulonglong *)(lVar6 + -0x6b8)) ^ uVar51;
  uVar24 = DAT_1826707b4;
  uVar25 = CONCAT44(DAT_182670904,DAT_182670904);
  *puVar3 = (CONCAT44(DAT_182670944,DAT_182670944) ^ *(ulonglong *)(lVar6 + -0x6f0)) -
            (uVar51 ^ *(ulonglong *)(lVar6 + -0x660)) ^ uVar25;
  lVar6 = DAT_1826707a0;
  bVar18 = (byte)uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (CONCAT44(uVar24,uVar10) ^ 0x1e05f6cac1be67a7) << ((bVar18 ^ 0x77) & 0x3f);
  lVar7 = DAT_1826707a0;
  uVar33 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  puVar20 = (ulonglong *)(lVar6 + -0x220);
  uVar37 = CONCAT44(DAT_182670870,DAT_182670870);
  uVar43 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xe90dc86d)) =
       uVar43 ^ uVar37 ^ uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x400) ^ *puVar20;
  uVar13 = DAT_1826707e4;
  uVar45 = (ulonglong)DAT_1826707e4;
  bVar28 = (byte)(uVar12 >> 0x18);
  *(ulonglong *)(lVar7 - (uVar32 ^ 0x11959f7b)) =
       CONCAT44(DAT_1826707e4,uVar10) ^ uVar51 ^ *(ulonglong *)(lVar7 + -0x660) ^ 0x8481dce6abb57d0c
  ;
  uVar22 = (ulonglong)uVar29;
  uVar38 = CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar27 = (ulonglong)uVar46;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xf7fb7e3f)) =
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) >> ((bVar28 ^ 0xce) & 0x3f) ^ uVar38;
  lVar6 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0x844898a)) =
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) << (((byte)uVar46 ^ 7) & 0x3f) ^ uVar31;
  lVar7 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xe90dc3bd)) =
       (*(ulonglong *)(lVar6 - (uVar22 ^ 0xff7bfe7f)) ^ uVar31 |
       *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x1195965b)) ^ uVar38) ^ uVar34;
  uVar33 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar31 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(lVar7 + -0xa18) =
       (uVar43 ^ *(ulonglong *)(lVar7 + -0x400)) - (uVar34 ^ *(ulonglong *)(lVar7 + -0x658)) ^
       uVar33;
  uVar38 = uVar31 ^ uVar34 ^ uVar25 ^ *(ulonglong *)(lVar7 + -0x658) ^ *puVar3;
  *(ulonglong *)(lVar7 + -0x7d8) = uVar38;
  local_c8 = (byte)uVar13;
  *(ulonglong *)(lVar7 + -0xc18) = CONCAT44(uVar24,uVar46) ^ 0xcc55011a9f6c7a7b;
  uVar43 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar7 + -0x438) = (uVar38 ^ uVar31) >> ((local_c8 ^ 0xa8) & 0x3f) ^ uVar43;
  uVar34 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *(ulonglong *)(lVar7 - (uVar41 ^ 0x13d5d3df)) = (uVar38 ^ uVar31) << 0x32 ^ uVar34;
  lVar6 = DAT_1826707a0;
  puVar23 = (ulonglong *)(lVar7 - (uVar35 ^ 0xfcc947f4));
  uVar39 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xb3b973ec)) ^ uVar43 |
            uVar34 ^ *puVar23) ^ uVar39;
  *(uint *)(lVar6 + -0x2d4) = *(uint *)(lVar6 + -0x68c) | *(uint *)(lVar6 + -0xa34);
  uVar31 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (*(ulonglong *)(lVar6 - (uVar36 ^ 0x1345dcaf)) ^ uVar25) -
       (CONCAT44(uVar14,uVar29) ^ 0x74603f8087911a7c) ^ uVar31;
  *(ulonglong *)(lVar6 - (uVar40 ^ 0xe90dc315)) =
       CONCAT44(uVar9,uVar12) ^ 0xfffdbfff574afefc | 0xfc0497f945423eec;
  uVar15 = DAT_182670978;
  uVar39 = uVar39 ^ *puVar2;
  uVar49 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(lVar6 + -0x998) =
       (*(ulonglong *)(lVar6 - (uVar36 ^ 0x1345d3df)) ^ uVar31) - uVar39 ^ uVar49;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar25 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *puVar20 = uVar39 - (CONCAT44(uVar13,uVar42) ^ 0x310cd7c4cda06548) ^ uVar38;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xfcc94f34)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xe90dc385)) ^ uVar25 ^ uVar33 ^ uVar51 ^
       *(ulonglong *)(DAT_1826707a0 + -0xa18);
  uVar39 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar43 = CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(lVar6 + -0xd88) =
       (*(ulonglong *)(lVar6 - (uVar26 ^ 0xf7fb771f)) ^ uVar25) >> ((bVar18 ^ 0x6e) & 0x3f) ^ uVar39
  ;
  puVar52 = (ulonglong *)(lVar6 + -0xce0);
  uVar31 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 - (uVar48 ^ 0xb3b97214)) =
       (uVar25 ^ *puVar52) << (((byte)uVar14 ^ 0xab) & 0x3f) ^ uVar43;
  lVar6 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xfcc9465c)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0x8c0205cc)) ^ uVar39 |
       *(ulonglong *)(DAT_1826707a0 + -0x5c0) ^ uVar43) ^ uVar25;
  uVar15 = DAT_1826707f8;
  uVar31 = (uVar33 ^ *(ulonglong *)(lVar6 + -0xa18)) -
           (CONCAT44(uVar21,uVar13) ^ 0xb15c9d14514ed0eb);
  uVar25 = *(ulonglong *)(lVar6 + -0x588) ^ uVar25;
  *(ulonglong *)(lVar6 + -0x400) = uVar31 ^ CONCAT44(DAT_182670858,DAT_182670858);
  uVar16 = DAT_182670908;
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x658) = uVar31 - uVar25 ^ uVar43;
  uVar15 = DAT_182670a94;
  lVar7 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar16,uVar16);
  iVar5 = *(int *)(DAT_1826707a0 + -0x398);
  uVar25 = (CONCAT44(uVar13,uVar8) ^ 0xd335feb5c69100fd) + uVar25 ^ uVar33;
  *(ulonglong *)(lVar6 + -0xc18) = uVar25;
  uVar31 = *(ulonglong *)(lVar6 + -0x998);
  uVar51 = CONCAT44(uVar15,uVar15);
  *(uint *)(lVar7 + -0x280) = (uVar46 ^ 0x40a0791e) * iVar5;
  uVar15 = DAT_1826709ec;
  uVar33 = uVar49 ^ uVar31 ^ uVar51 ^ uVar25 ^ uVar33;
  *(ulonglong *)(lVar7 + -0x7d8) = uVar33;
  uVar39 = CONCAT44(uVar15,uVar15);
  uVar44 = (uVar33 ^ uVar51) << 0x20;
  uVar33 = (*(ulonglong *)(lVar7 - (uVar45 ^ 0x7227ef7e)) ^ uVar51) >>
           (((byte)DAT_1826707f4 ^ 0x22) & 0x3f);
  uVar25 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar7 + -0x438) = uVar33 ^ uVar39;
  uVar15 = DAT_1826707fc;
  *(ulonglong *)(lVar7 + -0x420) = uVar44 ^ uVar25;
  lVar6 = DAT_1826707a0;
  uVar44 = uVar44 | uVar33;
  uVar33 = CONCAT44(uVar15,uVar15);
  *puVar3 = uVar44 ^ uVar33;
  uVar25 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x1345d397)) = (uVar49 ^ uVar31) - uVar44 ^ uVar25;
  uVar51 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  local_res20 = (byte)uVar21;
  uVar38 = *(ulonglong *)(lVar6 - (uVar32 ^ 0x119591bb)) ^ uVar38 ^ *(ulonglong *)(lVar6 + -0x658) ^
           uVar51 ^ uVar43;
  *(ulonglong *)(lVar6 + -0x6b8) = uVar38;
  *puVar2 = (*(ulonglong *)(lVar6 + -0x438) ^ uVar39) << ((local_res20 ^ 0xd0) & 0x3f);
  puVar47 = (ulonglong *)(lVar6 - (uVar32 ^ 0x11959523));
  uVar31 = (uVar51 ^ *puVar47) >> ((bVar28 ^ 0xd7) & 0x3f);
  *(ulonglong *)(lVar6 + -0x660) = uVar31 ^ CONCAT44(DAT_182670928,DAT_182670928);
  uVar15 = DAT_182670aac;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 + -0x4f8);
  local_d0 = (byte)uVar9;
  uVar38 = (uVar38 ^ uVar51) << ((local_d0 ^ 0xf4) & 0x3f);
  uVar39 = CONCAT44(DAT_182670840,DAT_182670840);
  *puVar52 = uVar38 ^ CONCAT44(uVar15,uVar15);
  lVar6 = DAT_1826707a0;
  local_110 = (byte)uVar11;
  uVar51 = (uVar38 | uVar31) ^ uVar39;
  uVar38 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar51;
  *(ulonglong *)(lVar6 + -0x5c0) =
       (*(ulonglong *)(lVar6 + -0x658) ^ uVar43) -
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0x13d5da77)) ^ uVar39) ^ uVar38;
  uVar31 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  uVar39 = uVar51 ^ uVar31 ^ uVar39 ^ uVar25 ^ *(ulonglong *)(lVar6 + -0x6f0);
  uVar43 = CONCAT44(DAT_182670878,DAT_182670878);
  bVar19 = (byte)DAT_1826707b4;
  *(ulonglong *)(lVar6 + -0xa18) = uVar39;
  *(ulonglong *)(lVar6 - (uVar40 ^ 0xe90dc1e5)) =
       (uVar39 ^ uVar31) >> ((bVar19 ^ 0x7e) & 0x3f) ^ uVar43;
  uVar15 = DAT_182670a14;
  lVar7 = DAT_1826707a0;
  uVar39 = (*(ulonglong *)(lVar6 + -0xa18) ^ uVar31) << ((local_110 ^ 0xd2) & 0x3f);
  uVar31 = *(ulonglong *)(DAT_1826707a0 + -0x6f0);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar39 ^ CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar51 = CONCAT44(uVar15,uVar15);
  uVar39 = uVar39 | *(ulonglong *)(lVar7 + -0x400) ^ uVar43;
  uVar43 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar7 + -0xc18) = uVar39 ^ uVar51;
  uVar15 = DAT_182670a90;
  *(ulonglong *)(lVar7 + -0x7d8) = (uVar25 ^ uVar31) - uVar39 ^ uVar43;
  uVar24 = DAT_182670824;
  uVar31 = (ulonglong)DAT_182670824;
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar7 - (uVar22 ^ 0xff7bffd7)) =
       *(ulonglong *)(lVar7 + -0x5c0) ^ *puVar3 ^ uVar25 ^ uVar38 ^ uVar33;
  *(ulonglong *)(lVar7 - (uVar35 ^ 0xfcc94a4c)) =
       (CONCAT44(uVar13,uVar46) ^ 0xdf0a44f5a692df41) -
       (CONCAT44(uVar10,uVar12) ^ 0x287ed30f8a7072f4);
  uVar25 = uVar25 ^ *(ulonglong *)(lVar7 + -0x420);
  *puVar20 = uVar25 >> ((bVar28 ^ 0xe1) & 0x3f) ^ CONCAT44(uVar24,uVar24);
  uVar33 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x13d5d3c7)) = uVar25 << 0x2a ^ uVar33;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x4f7030c8)) =
       (uVar31 << 0x1c | (ulonglong)(uVar24 >> 4)) ^ *puVar20 >> 4;
  puVar50 = (ulonglong *)(lVar6 - (uVar35 ^ 0xfcc941f4));
  uVar25 = CONCAT44(DAT_182670afc,DAT_182670afc);
  uVar31 = CONCAT44(uVar14,DAT_1826707f4);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar42 ^ 0xba28de46)) ^ uVar33 |
       *puVar50 ^ CONCAT44(uVar24,uVar24)) ^ uVar25;
  uVar35 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar6 + -0x660) = (uVar31 ^ 0xc2660d52ce31745c) + *(longlong *)(lVar6 + -0x998);
  lVar7 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *puVar52 = (*(ulonglong *)(lVar6 + -0x5c0) ^ uVar38) -
             (*(ulonglong *)(lVar6 - (uVar35 ^ 0x8c020efc)) ^ uVar25) ^ uVar39;
  uVar35 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar38 = CONCAT44(DAT_182670940,DAT_182670940);
  uVar31 = *(ulonglong *)(lVar7 - (uVar27 ^ 0x4f7032b8)) ^ *(ulonglong *)(lVar7 + -0x7d8) ^ uVar35 ^
           uVar25 ^ uVar43;
  *(ulonglong *)(lVar7 + -0x658) = uVar31;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x4f703988)) =
       (uVar31 ^ uVar35) >> ((bVar28 ^ 0xd9) & 0x3f) ^ uVar38;
  uVar15 = DAT_182670960;
  *(ulonglong *)(lVar7 + -0xa18) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar42 ^ 0xba28dcc6)) ^ uVar25) >>
       (((byte)DAT_1826707b4 ^ 100) & 0x3f);
  uVar31 = (*(ulonglong *)(lVar7 + -0x658) ^ uVar35) << (((byte)DAT_1826707f4 ^ 0x10) & 0x3f);
  *(ulonglong *)(lVar7 + -0x400) = uVar31 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar7 - (uVar40 ^ 0xe90dc06d)) =
       (uVar31 | uVar38 ^ *(ulonglong *)(lVar7 + -0xd88)) ^ uVar38;
  uVar24 = DAT_1826708b0;
  lVar6 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar35 = CONCAT44(DAT_182670968,DAT_182670968);
  uVar31 = *(ulonglong *)(DAT_1826707a0 - (uVar48 ^ 0xb3b9700c));
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x588);
  *(uint *)(DAT_1826707a0 + -0x8e0) =
       (DAT_1826707b4 ^ 0xf77a56f2) + *(int *)(DAT_1826707a0 + -0x3d4);
  *(ulonglong *)(lVar6 + -0x6f0) = (uVar31 ^ uVar43) - (*puVar1 ^ uVar38) ^ uVar35;
  *puVar3 = *(ulonglong *)(lVar6 + -0xc18) ^ uVar25 ^ uVar39 ^ uVar51 ^ *puVar52;
  *puVar23 = (CONCAT44(uVar8,uVar29) ^ 0x6d14957f195d96a6) +
             (*(ulonglong *)(lVar6 + -0x588) ^ uVar38);
  uVar31 = ((ulonglong)uVar24 << 0x14 | (ulonglong)(uVar24 >> 0xc)) ^ *puVar3 >> 0xc;
  *puVar2 = uVar31 ^ CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar16 = DAT_1826709e8;
  uVar15 = DAT_1826708a4;
  uVar25 = (uVar25 ^ *puVar3) << 0x34;
  *(ulonglong *)(lVar6 + -0x438) = uVar25 ^ CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar40 = CONCAT44(uVar16,uVar16);
  uVar25 = (uVar31 | uVar25) ^ uVar40;
  *puVar20 = uVar25;
  uVar31 = *puVar52;
  *(ulonglong *)(lVar6 + -0x660) =
       *(ulonglong *)(CONCAT44(DAT_1826708b4,DAT_1826708b4) ^ *(ulonglong *)(lVar6 + -0x6c8)) ^
       CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182670814;
  uVar33 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar6 + -0x998) = (uVar39 ^ uVar31) - (uVar40 ^ *puVar50) ^ uVar33;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x5c0) =
       uVar25 ^ uVar31 ^ uVar40 ^ uVar35 ^ *(ulonglong *)(lVar6 + -0x6f0);
  uVar15 = DAT_182670a10;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 + -0x4f8);
  uVar16 = DAT_182670b08;
  uVar25 = CONCAT44(uVar15,uVar15);
  bVar19 = (byte)DAT_1826707b4;
  *puVar47 = (*(ulonglong *)(lVar6 - (uVar41 ^ 0x13d5d23f)) ^ uVar31) >> ((local_110 ^ 0xcd) & 0x3f)
             ^ uVar25;
  uVar31 = (*(ulonglong *)(lVar6 + -0x5c0) ^ uVar31) << ((bVar19 ^ 99) & 0x3f);
  *(ulonglong *)(lVar6 + -0xa18) = uVar31 ^ CONCAT44(uVar16,uVar16);
  uVar15 = DAT_1826708f4;
  *(ulonglong *)(lVar6 + -0x658) = (uVar25 ^ *(ulonglong *)(lVar6 + -0x6b8) | uVar31) ^ uVar38;
  uVar40 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707f4 ^ 0x844818a)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707f4 ^ 0x8448af2)) ^ uVar35) -
       (CONCAT44(uVar21,uVar42) ^ 0x2cca0101b386465c) ^ uVar40;
  uVar15 = DAT_18267081c;
  uVar44 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar6 + -0x400) =
       (uVar40 ^ *(ulonglong *)(lVar6 + -0xd88)) - (*(ulonglong *)(lVar6 + -0x658) ^ uVar38) ^
       uVar44;
  uVar51 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x7d8) =
       (*(ulonglong *)(lVar6 + -0x658) ^ uVar38) - (CONCAT44(uVar11,uVar10) ^ 0x275b2a4137f5e6f8) ^
       uVar51;
  lVar7 = DAT_1826707a0;
  *(undefined1 *)(lVar6 - (uVar32 ^ 0x11959552)) = **(undefined1 **)(lVar6 + -0x418);
  uVar15 = DAT_1826709b0;
  uVar31 = *(ulonglong *)(lVar7 + -0x998);
  uVar25 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar35 = CONCAT44(DAT_18267093c,DAT_18267093c);
  uVar43 = *(ulonglong *)(lVar7 + -0x588) ^ uVar25 ^ uVar33 ^ uVar38 ^ uVar31;
  *(ulonglong *)(lVar7 + -0xc18) = uVar43;
  uVar16 = DAT_182670ae8;
  lVar6 = DAT_1826707a0;
  uVar38 = (uVar43 ^ uVar25) >> (((byte)uVar46 ^ 0x21) & 0x3f);
  *(ulonglong *)(lVar7 + -0x420) = uVar38 ^ uVar35;
  uVar35 = *(ulonglong *)(lVar6 + -0xd88);
  uVar43 = (uVar43 ^ uVar25) << ((local_c8 ^ 0xb9) & 0x3f);
  *puVar3 = uVar43 ^ CONCAT44(uVar16,uVar16);
  uVar17 = DAT_182670a7c;
  uVar25 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *puVar2 = (uVar38 | uVar43) ^ uVar25;
  uVar16 = DAT_1826709cc;
  uVar31 = (uVar33 ^ uVar31) - (CONCAT44(uVar12,uVar29) ^ 0xb4d0449d88f344c1);
  *(ulonglong *)(lVar6 + -0x660) = uVar40 ^ CONCAT44(uVar9,uVar14) ^ uVar35 ^ 0xedd7f197cb3a643b;
  *(ulonglong *)(lVar6 + -0x438) = uVar31 ^ CONCAT44(uVar17,uVar17);
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x13d5db1f)) =
       uVar31 - (*(ulonglong *)(lVar6 - (uVar22 ^ 0xff7bff3f)) ^ uVar25) ^ uVar33;
  uVar31 = *puVar2;
  *puVar20 = uVar31 ^ uVar33 ^ uVar25 ^ *puVar52;
  uVar16 = DAT_182670a70;
  uVar24 = DAT_1826707f4;
  uVar41 = CONCAT44(DAT_18267091c,DAT_18267091c);
  uVar35 = (CONCAT44(uVar42,uVar21) ^ 0xe023cd43970a5ecf) + (uVar31 ^ uVar25) ^ uVar41;
  uVar31 = (ulonglong)DAT_1826707f4;
  *(longlong *)(lVar6 + -0x6b8) =
       -0x37c36f20527fa475 << ((*(byte *)(lVar6 + -0xc18) ^ (byte)uVar15) & 0x3f);
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 + -0x5c0) = uVar35;
  lVar6 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar16,uVar16);
  uVar31 = *(ulonglong *)(lVar7 - (uVar31 ^ 0x8448802)) ^ uVar25 ^ uVar35 ^ uVar41 ^ uVar44;
  *(ulonglong *)(lVar7 + -0xa18) = uVar31;
  *(ulonglong *)(lVar6 + -0x6f0) =
       (*(ulonglong *)(lVar7 - (uVar36 ^ 0x1345df7f)) ^ uVar25) >> (((byte)uVar14 ^ 0x9e) & 0x3f) ^
       uVar39;
  *(ulonglong *)(lVar6 + -0x658) = (uVar25 ^ uVar31) << ((bVar18 ^ 0x45) & 0x3f) ^ uVar34;
  uVar31 = (ulonglong)DAT_1826707b4;
  *(int *)(lVar6 - (uVar48 ^ 0xb3b97694)) =
       *(int *)(lVar6 + -0x280) >> ((byte)*(undefined4 *)(lVar6 + -0xa34) & 0x1f);
  uVar35 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x8c020dcc)) =
       (uVar34 ^ *(ulonglong *)(lVar6 + -0x658) | uVar39 ^ *(ulonglong *)(lVar6 + -0x6f0)) ^ uVar35;
  *(ulonglong *)(lVar6 + -0x420) =
       (CONCAT44(uVar8,uVar21) ^ 0xce937c78d9cd51d1) + 0x3c6e0f44efad26d5;
  uVar25 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar31 = *(ulonglong *)(lVar6 + -0x7d8);
  *puVar3 = (*(ulonglong *)(lVar6 + -0x400) ^ uVar44) -
            (*(ulonglong *)(lVar6 - (uVar27 ^ 0x4f703188)) ^ uVar35) ^ uVar25;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x4f703d98)) = uVar37 ^ uVar31 ^ uVar33 ^ uVar51 ^ *puVar52;
  *(uint *)(lVar6 - (uVar45 ^ 0x7227ede6)) = (uVar24 ^ 0x1cfda55e) + (DAT_1826707e4 ^ 0xb903a585);
  uVar15 = DAT_182670818;
  uVar37 = uVar37 ^ *(ulonglong *)(lVar6 + -0x998);
  uVar31 = *puVar52;
  uVar35 = uVar37 >> ((bVar28 ^ 0xd2) & 0x3f);
  uVar37 = uVar37 << 0x1b;
  *(ulonglong *)(lVar6 + -0xd88) = uVar35 ^ CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar16 = DAT_182670a44;
  *(ulonglong *)(lVar6 + -0x660) = uVar37 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_182670af0;
  uVar41 = CONCAT44(uVar16,uVar16);
  uVar45 = (uVar37 | uVar35) ^ uVar41;
  *(ulonglong *)(lVar6 + -0x438) = uVar45;
  uVar35 = CONCAT44(DAT_182670838,DAT_182670838);
  *puVar20 = (uVar33 ^ uVar31) - (*(ulonglong *)(lVar6 - (uVar26 ^ 0xf7fb7fc7)) ^ uVar41) ^
             CONCAT44(uVar15,uVar15);
  *puVar2 = uVar35 ^ uVar41 ^ uVar25 ^ uVar45 ^ *puVar3;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar46) * 4) = uVar30;
  return;
}



############ FUN_ 180c8d350 size=5791 ############

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

void FUN_180c8d350(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte bVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  byte local_res20;
  byte local_128;
  byte local_f0;
  byte local_e0;
  
  uVar7 = DAT_182670a58;
  uVar13 = DAT_182670934;
  uVar12 = DAT_1826707f4;
  uVar11 = DAT_1826707ec;
  uVar10 = DAT_1826707d8;
  uVar9 = DAT_1826707d0;
  uVar8 = DAT_1826707cc;
  lVar5 = DAT_1826707a0;
  uVar43 = (ulonglong)DAT_1826707d8;
  uVar29 = (ulonglong)DAT_1826707ec;
  uVar22 = (ulonglong)DAT_1826707d0;
  uVar27 = DAT_1826707ec ^ DAT_1826707d8;
  uVar25 = DAT_1826707c4 | DAT_1826707f4;
  uVar38 = DAT_1826707d0 << 0x10 | DAT_1826707d0 >> 0x10;
  uVar36 = ~DAT_1826707cc;
  uVar16 = *(uint *)(&DAT_18260f750 + (uVar43 ^ 0x3534c588) + (longlong)DAT_182670d70) ^
           DAT_1826707ec;
  uVar4 = *(uint *)(&DAT_18260f760 + DAT_182670d70);
  uVar26 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  uVar34 = (ulonglong)uVar38;
  uVar32 = (ulonglong)DAT_182670a58;
  DAT_1826707a8 = uVar27;
  DAT_1826707ac = uVar38;
  DAT_1826707bc = uVar25;
  DAT_1826707c8 = uVar36;
  *puVar2 = (CONCAT44(uVar38,DAT_1826707d0) ^ 0x560a019ea6ac9a0c) +
            (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x3b0));
  puVar3 = (ulonglong *)(lVar5 + -0xd38);
  uVar46 = CONCAT44(uVar13,uVar13);
  uVar48 = CONCAT44(DAT_182670838,DAT_182670838);
  uVar50 = CONCAT44(DAT_18267098c,DAT_18267098c);
  uVar35 = (ulonglong)uVar8;
  puVar17 = (ulonglong *)(lVar5 - (uVar35 ^ 0x307c0e60));
  *(ulonglong *)(lVar5 + -0xf0) =
       uVar50 ^ uVar48 ^ uVar46 ^ *puVar17 ^ *(ulonglong *)(lVar5 + -0xd88);
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(lVar5 + -0x660) =
       (CONCAT44(_DAT_182670b10,_DAT_182670b10) ^ *puVar3) +
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar5 + -0x2b0)) ^ uVar50;
  uVar15 = DAT_182670ae0;
  uVar21 = DAT_1826707c4;
  uVar42 = (ulonglong)uVar36;
  uVar18 = (ulonglong)uVar12;
  *(byte *)(DAT_1826707a0 - (uVar42 ^ 0xcf83f4dd)) =
       *(byte *)((ulonglong)DAT_182670ae0 ^ *(ulonglong *)(lVar6 + -0x5e0)) ^ (byte)DAT_182670a40;
  lVar5 = DAT_1826707a0;
  uVar31 = (ulonglong)uVar25;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x5e0);
  uVar37 = (*(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0xfffc2c4f)) ^ CONCAT44(uVar7,uVar7)) <<
           (((byte)uVar21 ^ 0x42) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar37 ^ uVar26;
  uVar13 = DAT_182670a6c;
  *(byte *)(lVar5 + -0x9b9) = *(byte *)((ulonglong)uVar15 ^ *puVar1) ^ (byte)DAT_182670a40;
  uVar14 = DAT_182670ac8;
  uVar41 = (ulonglong)uVar27;
  uVar26 = *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0xbcffd128)) >> 0x1b ^
           ((ulonglong)(uVar7 >> 0x1b) | uVar32 << 5);
  *(ulonglong *)(lVar5 + -0x630) = uVar26 ^ CONCAT44(uVar13,uVar13);
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar37 = (uVar37 | uVar26) ^ uVar32;
  *(ulonglong *)(lVar5 + -0x9e0) = uVar37;
  *(ulonglong *)(lVar5 + -0x6b8) = CONCAT44(uVar36,uVar27) ^ 0x6a2eb84565ebe7cc;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670954,DAT_182670954);
  *(ulonglong *)(lVar5 + -0x558) =
       uVar26 ^ uVar32 ^ uVar50 ^ uVar37 ^ *(ulonglong *)(lVar5 + -0x660);
  uVar13 = DAT_1826708dc;
  puVar1 = (ulonglong *)(lVar6 + -0x118);
  uVar37 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *puVar1 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0x89cb1340)) ^ uVar26) +
            (CONCAT44(uVar8,uVar11) ^ 0xebee6b0d984fe007) ^ uVar37;
  uVar26 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xbb0) =
       (CONCAT44(uVar9,uVar8) ^ 0x48fa2b0039d29eba) + (uVar48 ^ *(ulonglong *)(lVar6 + -0xd88)) ^
       uVar26;
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x89cb1208)) =
       (CONCAT44(uVar10,uVar38) ^ 0x4b9dc8460f83f49c) +
       (CONCAT44(uVar12,uVar25) ^ 0x62a1593af0de1a3d);
  uVar13 = DAT_182670af8;
  uVar32 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x89cb1700)) ^ uVar37) +
       (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0)) ^ uVar32;
  uVar7 = DAT_1826707c4;
  bVar28 = (byte)uVar36;
  uVar49 = CONCAT44(uVar13,uVar13);
  local_e0 = (byte)(uVar9 >> 0x10);
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x307c0e78)) =
       (uVar37 ^ *puVar1) << ((bVar28 ^ 0x7e) & 0x3f) ^ uVar49;
  uVar13 = DAT_182670a64;
  lVar5 = DAT_1826707a0;
  uVar37 = (uVar37 ^ *puVar1) >> ((local_e0 ^ 0xc2) & 0x3f);
  uVar30 = CONCAT44(DAT_182670804,DAT_182670804);
  puVar19 = (ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0x77e5f11e));
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) = uVar37 ^ uVar30;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar13,uVar13);
  puVar23 = (ulonglong *)(lVar5 - (uVar18 ^ 0xfffc23c7));
  *puVar23 = (uVar49 ^ *puVar19 | uVar37) ^ uVar26;
  uVar44 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar6 - (uVar43 ^ 0x3534c730)) =
       *(ulonglong *)(lVar6 - (uVar31 ^ 0xfffffc4f)) ^ uVar44 ^ uVar26 ^ uVar32 ^ *puVar3;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707c4 ^ 0x4303fb57)) =
       (CONCAT44(uVar11,uVar12) ^ 0xb428cc148791caf7) + 0x5b6c71820bc68558;
  uVar37 = CONCAT44(DAT_182670840,DAT_182670840);
  uVar46 = (uVar46 ^ *(ulonglong *)(lVar6 + -0xf0)) + (CONCAT44(uVar25,uVar21) ^ 0x5a0b173d38238bb7)
  ;
  uVar26 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(ulonglong *)(lVar6 + -0x610) = uVar46 ^ uVar37;
  uVar13 = DAT_182670808;
  uVar48 = (uVar50 ^ *(ulonglong *)(lVar6 + -0x660)) +
           (CONCAT44(uVar10,uVar25) ^ 0x761ffae2887740c9);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar48 ^ uVar26;
  uVar50 = CONCAT44(uVar13,uVar13);
  local_128 = (byte)uVar27;
  *(ulonglong *)(lVar6 - (uVar22 ^ 0x77e5f41e)) = uVar48 + uVar46 ^ uVar50;
  uVar13 = DAT_182670958;
  uVar37 = *(ulonglong *)(lVar6 + -0x610) ^ uVar37;
  uVar46 = uVar37 << ((local_128 ^ 0x39) & 0x3f);
  *(ulonglong *)(lVar6 + -0x558) = uVar46 ^ CONCAT44(DAT_182670ae8,DAT_182670ae8);
  bVar45 = (byte)uVar8;
  uVar37 = uVar37 >> ((bVar45 ^ 0x87) & 0x3f);
  *(ulonglong *)(lVar6 + -0x410) = CONCAT44(uVar11,uVar36) ^ 0xcab079230bc76dff;
  uVar14 = DAT_182670964;
  *(ulonglong *)(lVar6 + -0xd88) = uVar37 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670924;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0xbb0) = (uVar37 | uVar46) ^ uVar26;
  lVar5 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar46 = *(ulonglong *)(lVar6 - (uVar18 ^ 0xfffc254f)) ^ *(ulonglong *)(lVar6 + -0x9e0) ^ uVar37 ^
           uVar26 ^ uVar50;
  *puVar1 = uVar46;
  uVar13 = DAT_182670928;
  uVar48 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar39 = (*(ulonglong *)(lVar5 - (uVar22 ^ 0x77e5fce6)) ^ uVar37) +
           (uVar32 ^ *(ulonglong *)(lVar5 + -0x3b0)) ^ uVar48;
  *puVar2 = uVar39;
  local_f0 = (byte)uVar25;
  uVar26 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar46 = (uVar46 ^ uVar37) << ((local_f0 ^ 0xd1) & 0x3f);
  *(ulonglong *)(lVar5 + -0xcf8) = uVar46 ^ CONCAT44(uVar13,uVar13);
  uVar32 = (*(ulonglong *)(lVar5 - (uVar43 ^ 0x3534c498)) ^ uVar37) >> ((bVar45 ^ 0x8a) & 0x3f);
  *puVar3 = uVar32 ^ uVar26;
  uVar13 = DAT_1826709f8;
  lVar5 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  uVar32 = (uVar32 | uVar46) ^ uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar32;
  uVar51 = CONCAT44(uVar13,uVar13);
  puVar47 = (ulonglong *)(lVar5 - (uVar29 ^ 0xbcffd368));
  uVar46 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *puVar47 = uVar32 ^ uVar39 ^ uVar51 ^ uVar26 ^ uVar48;
  uVar13 = DAT_1826709c8;
  *(ulonglong *)(lVar5 + -0x660) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0x307c0b78)) ^ uVar50) +
       (uVar44 ^ *(ulonglong *)(lVar5 + -0x2b0)) ^ uVar46;
  bVar20 = (byte)uVar11;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar26 = (uVar44 ^ *(ulonglong *)(lVar5 + -0x2b0)) << ((bVar20 ^ 0x94) & 0x3f);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar26 ^ uVar32;
  uVar21 = DAT_1826707c4;
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0x2b0);
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       CONCAT44(uVar36,DAT_1826707c4) ^ 0xc02000f0e248922 | 0x13c5ace0f140265d;
  lVar5 = DAT_1826707a0;
  uVar40 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (uVar44 ^ *puVar24) >> ((local_f0 ^ 0xcb) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar5 - (uVar42 ^ 0xcf83f83f)) = *puVar1 ^ uVar37 | uVar26;
  uVar37 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar26 = (*(ulonglong *)(lVar5 + -0x6b8) ^ uVar32 | uVar40 ^ *(ulonglong *)(lVar5 + -0x410)) ^
           uVar37;
  uVar39 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *(ulonglong *)(lVar5 + -0xd88) = uVar26;
  uVar26 = *(ulonglong *)(lVar5 + -0x660) ^ uVar39 ^ uVar26 ^ uVar37 ^ uVar46;
  *(ulonglong *)(lVar5 + -0xbb0) = uVar26;
  uVar13 = DAT_182670adc;
  local_res20 = (byte)uVar12;
  *(ulonglong *)(lVar5 + -0x3b0) =
       (CONCAT44(uVar7,uVar21) ^ 0x71457965a0ef3de8) << ((local_res20 ^ 0xfb) & 0x3f);
  uVar7 = DAT_182670a5c;
  lVar5 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar50 = (ulonglong)DAT_182670a5c;
  *puVar3 = (*puVar2 ^ uVar48) + (uVar26 ^ uVar39) ^ uVar32;
  uVar13 = DAT_182670a24;
  uVar48 = CONCAT44(DAT_182670aac,DAT_182670aac);
  puVar24 = (ulonglong *)(lVar5 - (uVar18 ^ 0xfffc2207));
  *puVar24 = (uVar26 ^ uVar39) << ((local_128 ^ 0x22) & 0x3f) ^ uVar48;
  uVar14 = DAT_182670a54;
  lVar5 = DAT_1826707a0;
  uVar26 = (*(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xcf83f6d7)) ^ uVar39) >>
           ((bVar20 ^ 0x9e) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar26 ^ CONCAT44(uVar13,uVar13);
  uVar21 = DAT_1826707c4;
  uVar37 = CONCAT44(uVar14,uVar14);
  puVar33 = (ulonglong *)(lVar5 - (uVar34 ^ 0xfdfe71f5));
  *(ulonglong *)(lVar5 + -0x9e0) = (uVar26 | uVar48 ^ *puVar17) ^ uVar37;
  *puVar33 = (CONCAT44(uVar12,uVar21) ^ 0x9adfac91c633119d) << (((byte)uVar21 ^ 0x66) & 0x3f);
  uVar48 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xfdfe7555)) =
       *(ulonglong *)(lVar5 - (uVar41 ^ 0x89cb1b20)) ^ *(ulonglong *)(lVar5 + -0x9e0) ^ uVar48 ^
       uVar37 ^ uVar32;
  uVar44 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *(ulonglong *)(lVar5 - (uVar31 ^ 0xfffffee7)) =
       (*(ulonglong *)(lVar5 - (uVar41 ^ 0x89cb1078)) ^ uVar46) +
       (uVar51 ^ *(ulonglong *)(lVar5 + -0xf0)) ^ uVar44;
  uVar51 = uVar51 ^ *(ulonglong *)(lVar5 + -0xf0);
  uVar37 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar5 + -0x558) = uVar51 << ((local_f0 ^ 0xe9) & 0x3f) ^ uVar37;
  uVar26 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x89cb10a0)) =
       uVar51 >> ((local_res20 ^ 0xd5) & 0x3f) ^ uVar26;
  uVar13 = DAT_182670a7c;
  lVar5 = DAT_1826707a0;
  uVar46 = CONCAT44(DAT_182670a48,DAT_182670a48);
  uVar37 = (*(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xfffffaa7)) ^ uVar37 |
           *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0x77e5fb46)) ^ uVar26) ^ uVar46;
  *(ulonglong *)(DAT_1826707a0 + -0x410) = uVar37;
  uVar39 = CONCAT44(uVar13,uVar13);
  uVar26 = *puVar3;
  uVar37 = *puVar1 ^ uVar39 ^ uVar37 ^ uVar46 ^ uVar44;
  *(ulonglong *)(lVar5 + -0xd88) = uVar37;
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x3534c630)) = (uVar26 ^ uVar32) + (uVar37 ^ uVar39) ^ uVar40;
  uVar32 = CONCAT44(DAT_182670980,DAT_182670980);
  *puVar2 = (uVar39 ^ *(ulonglong *)(lVar5 + -0xd88)) << ((bVar28 ^ 0x47) & 0x3f) ^ uVar32;
  uVar26 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x307c0928)) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0x307c0f10)) ^ uVar39) >> ((bVar45 ^ 0xb8) & 0x3f) ^ uVar26
  ;
  uVar13 = DAT_182670af0;
  uVar37 = CONCAT44(DAT_182670910,DAT_182670910);
  uVar26 = (uVar32 ^ *puVar2 | *(ulonglong *)(lVar5 + -0xbb0) ^ uVar26) ^ uVar37;
  *(ulonglong *)(lVar5 + -0xcf8) = uVar26;
  uVar14 = DAT_182670a40;
  uVar51 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x630) =
       *(ulonglong *)(lVar5 + -0x3b0) ^ uVar51 ^ uVar26 ^ uVar37 ^ uVar40;
  uVar13 = DAT_182670900;
  *(ulonglong *)(lVar5 + -0x610) =
       *(ulonglong *)(lVar5 - (uVar43 ^ 0x3534c3b0)) ^ uVar51 ^ 0x50bd06c73b8c95f1;
  uVar21 = DAT_1826707c4;
  uVar46 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707c4 ^ 0x4303f487)) =
       (*(ulonglong *)(lVar5 - (uVar42 ^ 0xcf83fc7f)) ^ uVar44) +
       (uVar48 ^ *(ulonglong *)(lVar5 + -0x2b0)) ^ uVar46;
  uVar26 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar37 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar5 + -0x660) = (uVar48 ^ *(ulonglong *)(lVar5 + -0x2b0)) << 0x20 ^ uVar26;
  *puVar47 = *(ulonglong *)(lVar5 + -0x2b0) >> 0x20 ^ uVar37 ^ uVar50;
  *(byte *)(lVar5 + -0xad1) =
       *(byte *)((ulonglong)DAT_182670ae0 ^ *(ulonglong *)(lVar5 + -0x5e0)) ^ (byte)uVar14;
  uVar48 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x3534c0d8)) =
       (uVar37 ^ *(ulonglong *)(lVar5 + -0xf0) | *(ulonglong *)(lVar5 + -0x660) ^ uVar26) ^ uVar48;
  uVar7 = DAT_182670870;
  uVar26 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar50 = (ulonglong)DAT_182670870;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x307c0420)) =
       *(ulonglong *)(lVar5 - (uVar18 ^ 0xfffc271f)) ^ uVar26 ^ uVar48 ^ uVar46 ^
       *(ulonglong *)(lVar5 + -0x558);
  uVar48 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x4303f977)) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0x6b8)) + (CONCAT44(uVar38,uVar27) ^ 0xbed54887fe43a92e) ^
       uVar48;
  uVar26 = (CONCAT44(uVar9,uVar21) ^ 0x121051e53be91cec) + (*(ulonglong *)(lVar5 + -0x3b0) ^ uVar40)
  ;
  *puVar3 = uVar26 ^ CONCAT44(DAT_18267088c,DAT_18267088c);
  puVar17 = (ulonglong *)(lVar5 - (uVar34 ^ 0xfdfe73f5));
  uVar21 = DAT_1826707c4 ^ 0xcba5a90e;
  uVar37 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar41 = (*puVar17 ^ uVar48) + uVar26 ^ uVar37;
  *(ulonglong *)(lVar5 + -0xd88) = uVar41;
  *(uint *)(lVar5 + -0x9ec) = *(int *)(lVar5 - (uVar18 ^ 0xfffc2b67)) * uVar21;
  uVar39 = CONCAT44(DAT_18267096c,DAT_18267096c);
  *puVar2 = (uVar48 ^ *(ulonglong *)(lVar5 + -0x410)) << ((local_128 ^ 0x16) & 0x3f) ^ uVar39;
  uVar13 = DAT_182670824;
  uVar26 = (*(ulonglong *)(lVar5 + -0x410) >> 0x20 ^ uVar50) >> 0x12;
  *(ulonglong *)(lVar5 + -0xbb0) = uVar26 ^ CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar26 = (*puVar19 ^ uVar39 | uVar26) ^ uVar34;
  *(ulonglong *)(lVar5 + -0xcf8) = uVar26;
  uVar7 = DAT_182670a80;
  lVar5 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xcf83fb77)) = uVar26 ^ uVar39 ^ uVar34 ^ uVar37 ^ uVar41
  ;
  uVar26 = *(ulonglong *)(lVar5 + -0x630);
  *puVar1 = *(ulonglong *)(lVar5 - (uVar31 ^ 0xfffff9ef)) ^ uVar39 | *puVar17 ^ uVar48;
  uVar42 = CONCAT44(DAT_182670868,DAT_182670868);
  uVar26 = (uVar51 ^ uVar26) + (CONCAT44(uVar8,uVar36) ^ 0x6e91eb741fe0c78f);
  *(ulonglong *)(lVar5 + -0x2b0) = uVar26 ^ uVar42;
  *(ulonglong *)(lVar5 - (uVar29 ^ 0xbcffd5f8)) = uVar26 ^ uVar37 ^ *(ulonglong *)(lVar5 + -0xd88);
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x3534c570)) =
       (*(ulonglong *)(lVar5 + -0x9e0) ^ uVar46) + (CONCAT44(uVar36,uVar27) ^ 0x6d0ab78caaa22e55) ^
       uVar26;
  uVar34 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(uint *)(lVar6 + -0x68c) = *(uint *)(lVar6 + -0x43c) | DAT_1826707ac ^ 0x639967b8;
  uVar13 = DAT_182670a34;
  *(ulonglong *)(lVar6 + -0x558) =
       (uVar26 ^ *(ulonglong *)(lVar6 + -0xf0)) + (uVar42 ^ *(ulonglong *)(lVar6 + -0x2b0)) ^ uVar34
  ;
  uVar26 = (uVar42 ^ *(ulonglong *)(lVar6 + -0x2b0)) << ((bVar28 ^ 0x77) & 0x3f);
  uVar48 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar26 ^ CONCAT44(uVar13,uVar13);
  uVar46 = CONCAT44(DAT_182670af4,DAT_182670af4);
  uVar43 = (uVar42 ^ *(ulonglong *)(lVar6 + -0x2b0)) >> ((local_f0 ^ 0xcf) & 0x3f);
  *(ulonglong *)(lVar6 + -0x3b0) = uVar43 ^ uVar48;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0xfffff2c7)) = (uVar26 | uVar43) ^ uVar46;
  uVar26 = *(ulonglong *)(lVar6 + -0xd88);
  uVar42 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar43 = uVar34 ^ uVar42 ^ uVar46 ^ *puVar3 ^ *(ulonglong *)(lVar6 + -0x558);
  *puVar2 = uVar43;
  uVar31 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar6 + -0xbb0) = (uVar43 ^ uVar42) + (uVar37 ^ uVar26) ^ uVar31;
  uVar26 = *puVar3;
  uVar50 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar6 + -0xcf8) = (uVar42 ^ uVar43) << 0x34 ^ uVar50;
  uVar21 = DAT_1826707c4;
  uVar43 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar6 - (uVar22 ^ 0x77e5f9ee)) =
       *(ulonglong *)(lVar6 - (uVar18 ^ 0xfffc2d4f)) ^ uVar48 | uVar46 ^ uVar26;
  uVar26 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x4303fc7f)) =
       (uVar42 ^ *puVar2) >> ((local_128 ^ 0x14) & 0x3f) ^ uVar26;
  uVar37 = CONCAT44(DAT_182670828,DAT_182670828);
  uVar26 = (*puVar1 ^ uVar26 | uVar50 ^ *puVar24) ^ uVar37;
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar26;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       CONCAT44(DAT_1826709a8,DAT_1826709a8) ^ uVar26 ^ uVar37 ^ uVar31 ^
       *(ulonglong *)(DAT_1826707a0 + -0xbb0);
  uVar37 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0x307c07c0)) ^ uVar34) +
           (*(ulonglong *)(lVar5 + -0x610) ^ uVar39) ^ uVar49;
  *(ulonglong *)(lVar5 + -0x9e0) = uVar37;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(lVar5 + -0xf0) =
       (CONCAT44(uVar27,uVar21) ^ 0x7b0097b5a7ed1427) + (*(ulonglong *)(lVar5 + -0xcf8) ^ uVar50);
  uVar34 = (*puVar33 ^ uVar39) << ((local_128 ^ 0x21) & 0x3f);
  *(ulonglong *)(lVar6 + -0x2b0) = uVar34 ^ uVar30;
  lVar5 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       ((ulonglong)uVar7 << 0x19 | (ulonglong)(uVar7 >> 7)) ^
       *(ulonglong *)(DAT_1826707a0 + -0x610) >> 7 ^ uVar26;
  uVar13 = DAT_1826708d4;
  puVar24 = (ulonglong *)(lVar5 - (uVar29 ^ 0xbcffd520));
  *(ulonglong *)(lVar5 + -0xd88) = CONCAT44(uVar25,uVar38) ^ 0xd0264bb5a55ae175 | uVar26 ^ *puVar24;
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x3b0) = (uVar34 | uVar26 ^ *puVar24) ^ uVar32;
  *puVar23 = *(ulonglong *)(lVar5 - (uVar43 ^ 0x4303fed7)) ^ uVar49 ^ uVar37 ^ uVar35 ^ uVar32;
  uVar13 = DAT_18267090c;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707e8 ^ 0x727d2aed)) =
       (*(ulonglong *)(lVar5 - (uVar22 ^ 0x77e5f0c6)) ^ uVar35) +
       (uVar31 ^ *(ulonglong *)(lVar5 + -0xbb0)) ^ CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar26 = *puVar3;
  *puVar2 = (uVar35 ^ *puVar3) << 0x17 ^ CONCAT44(uVar13,uVar13);
  *puVar1 = (uVar35 ^ uVar26) >> ((bVar20 ^ 0xb1) & 0x3f) ^ CONCAT44(DAT_182670b00,DAT_182670b00);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar27) * 4) = uVar16;
  return;
}



############ FUN_ 180cd0c60 size=5224 ############

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

void FUN_180cd0c60(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  byte bVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  ulonglong *puVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong *puVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res20;
  
  uVar13 = DAT_18267091c;
  uVar12 = DAT_1826707e8;
  uVar11 = DAT_1826707c8;
  uVar9 = DAT_1826707b8;
  uVar8 = DAT_1826707b0;
  lVar6 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707c8;
  uVar21 = DAT_1826707c8 & DAT_1826707e8;
  uVar29 = ~DAT_1826707b0;
  uVar24 = *(uint *)(&DAT_18260f758 + DAT_182670e38) ^ DAT_1826707b8;
  uVar3 = *(uint *)(&DAT_18260f760 + DAT_182670e38);
  uVar35 = DAT_1826707b8 << 0x10 | DAT_1826707b8 >> 0x10;
  bVar5 = (byte)DAT_1826707c8;
  uVar42 = (ulonglong)uVar21;
  DAT_1826707c0 = uVar29;
  DAT_1826707dc = uVar21;
  DAT_1826707e4 = uVar35;
  *(int *)(DAT_1826707a0 + -0x14) = *(int *)(DAT_1826707a0 + -0x2d4) << ((bVar5 ^ 0x67) & 0x1f);
  uVar44 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar23 = (ulonglong)uVar29;
  puVar30 = (ulonglong *)(lVar6 - (uVar23 ^ 0xf7fcba77));
  uVar34 = (ulonglong)uVar8;
  uVar40 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *puVar30 = (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar6 + -0x410)) >>
             (((byte)uVar21 ^ 99) & 0x3f) ^ uVar44;
  uVar13 = DAT_1826709f4;
  uVar14 = DAT_1826708ec;
  uVar18 = (*(ulonglong *)(lVar6 - (uVar34 ^ 0x8034588)) ^ uVar44 |
           CONCAT44(DAT_1826708c0,DAT_1826708c0) ^ *(ulonglong *)(lVar6 + -0x998)) ^ uVar40;
  *(ulonglong *)(lVar6 + -0x610) = uVar18;
  uVar43 = CONCAT44(uVar13,uVar13);
  uVar25 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar6 + -0x658) =
       uVar25 ^ *(ulonglong *)(lVar6 + -0x630) ^ uVar43 ^ uVar18 ^ uVar40;
  uVar15 = DAT_182670a64;
  *(ulonglong *)(lVar6 + -0xa18) =
       CONCAT44(DAT_18267088c,DAT_18267088c) ^ *(ulonglong *)(lVar6 + -0x660) | 0x1433d8b296932849;
  uVar13 = DAT_1826708a8;
  lVar6 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar26 = CONCAT44(DAT_18267098c,DAT_18267098c);
  uVar18 = (ulonglong)uVar35;
  puVar31 = (ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0xc180345c));
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xcf8);
  *puVar31 = (*(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0x42012fd5)) ^ uVar37) +
             (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) ^ uVar26;
  lVar7 = DAT_1826707a0;
  uVar32 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0x727d2d4d)) ^ uVar37) << 0x16;
  puVar16 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0x3434c790));
  *puVar2 = uVar32 ^ CONCAT44(uVar13,uVar13);
  uVar40 = *puVar16 ^ uVar40 | CONCAT44(uVar29,uVar11) ^ 0x4c1d209bf40581c6;
  local_res20 = (byte)uVar29;
  uVar41 = CONCAT44(DAT_182670958,DAT_182670958);
  *(ulonglong *)(lVar7 + -0xf0) = uVar40;
  uVar38 = (uVar37 ^ *(ulonglong *)(lVar7 + -0x3b0)) >> ((local_res20 ^ 0xd5) & 0x3f);
  *(ulonglong *)(lVar7 + -0xbb0) = uVar38 ^ uVar41;
  uVar37 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar7 + -0x9e0) = (uVar38 | uVar32) ^ uVar37;
  puVar33 = (ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xcf83fbdf));
  *puVar33 = *(longlong *)(lVar7 + -0xa18) - uVar40;
  uVar13 = DAT_1826709d0;
  uVar40 = CONCAT44(DAT_182670a20,DAT_182670a20);
  puVar16 = (ulonglong *)(lVar7 + -0x68);
  uVar37 = *(ulonglong *)(lVar7 + -0x9e0) ^ *(ulonglong *)(lVar7 + -0x68) ^ uVar40 ^ uVar37 ^ uVar26
  ;
  *(ulonglong *)(lVar7 + -0xd38) = uVar37;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 + -0x9c8) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xcf83fb57)) ^ uVar25) +
       (*(ulonglong *)(lVar7 - (uVar42 ^ 0x4201215d)) ^ uVar40) ^ uVar32;
  bVar4 = (byte)(uVar9 >> 0x10);
  puVar22 = (ulonglong *)(lVar7 - (uVar34 ^ 0x8034ac0));
  *puVar22 = (uVar37 ^ uVar40) << ((bVar4 ^ 0x14) & 0x3f) ^ uVar44;
  *(byte *)(lVar7 + -0x699) =
       *(byte *)(*(ulonglong *)(lVar7 - (uVar23 ^ 0xf7fcbc6f)) ^ (ulonglong)DAT_182670b14) ^
       (byte)DAT_182670a40;
  puVar19 = (ulonglong *)(lVar7 - (uVar34 ^ 0x8034d38));
  uVar40 = (uVar40 ^ *puVar19) >> (((byte)uVar21 ^ 0x45) & 0x3f);
  uVar37 = (ulonglong)DAT_1826707e8;
  puVar1 = (ulonglong *)(lVar7 + -0xd88);
  *puVar1 = uVar40 ^ CONCAT44(DAT_182670a10,DAT_182670a10);
  uVar39 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0xcf83f977)) =
       (*(ulonglong *)(lVar7 - (uVar37 ^ 0x727d243d)) ^ uVar44 | uVar40) ^ uVar39;
  uVar9 = DAT_1826707b8;
  lVar6 = DAT_1826707a0;
  uVar45 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  puVar17 = (ulonglong *)(DAT_1826707a0 + -0x658);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0x3434c590)) ^
       *(ulonglong *)(DAT_1826707a0 + -0x9c8) ^ uVar45 ^ uVar39 ^ uVar32;
  uVar13 = DAT_182670918;
  uVar44 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar26 = (*puVar17 ^ uVar43) + (*puVar16 ^ uVar26);
  *(ulonglong *)(lVar6 + -0x588) = uVar26 ^ uVar44;
  uVar14 = DAT_182670a2c;
  uVar10 = DAT_1826707e8;
  lVar7 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707e8 ^ 0x727d28a5)) ^ uVar43) <<
       ((bVar4 ^ 0x14) & 0x3f) ^ uVar25;
  lVar6 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar40 = (*(ulonglong *)(lVar7 - (uVar34 ^ 0x8034658)) ^ uVar43) >> ((bVar4 ^ 0x14) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar40 ^ uVar37;
  lVar7 = DAT_1826707a0;
  puVar20 = (ulonglong *)(lVar6 - (uVar34 ^ 0x8034660));
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0x3434c910)) ^ uVar37 | uVar25 ^ *puVar20
       ) ^ uVar25;
  *(ulonglong *)(lVar7 - (uVar34 ^ 0x80343b0)) = uVar40 | uVar26;
  uVar36 = DAT_182670898;
  uVar37 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar43 = (ulonglong)DAT_182670898;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0xcf83f19f)) =
       *(ulonglong *)(lVar7 + -0x610) ^ *(ulonglong *)(lVar7 + -0x588) ^ uVar37 ^ uVar25 ^ uVar44;
  uVar40 = (CONCAT44(uVar12,uVar35) ^ 0x49c917db70776996) + (uVar37 ^ *puVar2);
  uVar26 = CONCAT44(DAT_182670828,DAT_182670828);
  uVar38 = CONCAT44(uVar36,uVar36);
  uVar25 = uVar40 ^ uVar38;
  uVar37 = (*(ulonglong *)(lVar7 + -0x9c8) ^ uVar32) +
           (CONCAT44(uVar29,uVar11) ^ 0xa91156131fe0c783);
  *(ulonglong *)(lVar7 + -0xf0) = uVar25;
  uVar13 = DAT_1826709c0;
  *(ulonglong *)(lVar7 + -0xa18) = uVar37 ^ uVar26;
  uVar14 = DAT_182670a4c;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 + -0x6b8) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0x727d2e0d)) ^ uVar38) + uVar37 ^ uVar32;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar37 = CONCAT44(DAT_182670964,DAT_182670964);
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar40 << ((bVar4 ^ 0x3a) & 0x3f) ^ uVar26;
  uVar10 = DAT_1826707b8;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707b8 ^ 0x3434c7b0)) =
       (uVar25 >> 0x20 ^ uVar43) >> 0x12 ^ uVar37;
  uVar13 = DAT_182670af0;
  uVar40 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar37 = (*(ulonglong *)(lVar6 + -0x9e0) ^ uVar26 | uVar37 ^ *(ulonglong *)(lVar6 + -0x630)) ^
           uVar40;
  *(ulonglong *)(lVar6 + -0xd38) = uVar37;
  uVar26 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xac0) =
       uVar26 ^ uVar37 ^ uVar40 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x6b8);
  *puVar1 = CONCAT44(uVar35,uVar8) ^ uVar41 ^ *(ulonglong *)(lVar6 + -0xbb0) ^ 0xd407cb53bcf4fedc;
  uVar13 = DAT_182670ac4;
  uVar37 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar6 + -0x410) =
       (CONCAT44(uVar21,uVar11) ^ 0xf8234c74bc78d6c3) + (*(ulonglong *)(lVar6 + -0x998) ^ uVar45) ^
       uVar37;
  uVar25 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - (uVar23 ^ 0xf7fcbf97)) =
       (CONCAT44(uVar12,uVar10) ^ 0xa9ef47681084f21f) + (*puVar30 ^ uVar44) ^ uVar25;
  uVar13 = _DAT_1826709e0;
  lVar7 = DAT_1826707a0;
  uVar37 = *(ulonglong *)(lVar6 + -0x410) ^ uVar37;
  bVar28 = (byte)uVar8;
  uVar40 = CONCAT44(DAT_182670b08,DAT_182670b08);
  uVar41 = (uVar25 ^ *puVar16) + uVar37 ^ uVar40;
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar41;
  lVar6 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 + -0x660) = uVar37 << ((bVar28 ^ 0x10) & 0x3f) ^ uVar25;
  uVar23 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar6 + -0x890) = uVar37 >> (((byte)uVar10 ^ 0xb0) & 0x3f) ^ uVar23;
  uVar10 = DAT_182670afc;
  puVar30 = (ulonglong *)(lVar6 - (uVar34 ^ 0x8034890));
  uVar37 = CONCAT44(DAT_182670a80,DAT_182670a80);
  uVar23 = (*(ulonglong *)(lVar6 - (uVar42 ^ 0x42012a05)) ^ uVar25 | uVar23 ^ *puVar30) ^ uVar37;
  *(ulonglong *)(lVar6 + -0x3b0) = uVar23;
  uVar38 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x8034610)) = uVar38 ^ uVar23 ^ uVar37 ^ uVar41 ^ uVar40;
  uVar23 = *(ulonglong *)(lVar6 + -0x610);
  uVar25 = CONCAT44(DAT_182670824,DAT_182670824);
  *puVar2 = (uVar32 ^ *(ulonglong *)(lVar6 + -0x6b8)) + (*(ulonglong *)(lVar6 + -0x610) ^ uVar38) ^
            uVar25;
  uVar41 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar6 - (uVar18 ^ 0xc1803dfc)) =
       (uVar23 ^ uVar38) << ((local_res20 ^ 0xcb) & 0x3f) ^ uVar41;
  uVar13 = DAT_182670a58;
  uVar36 = DAT_1826707e8;
  uVar37 = ((ulonglong)uVar10 << 0x14 | (ulonglong)(uVar10 >> 0xc)) ^
           *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x727d28ed)) >> 0xc;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar37 ^ CONCAT44(DAT_182670a74,DAT_182670a74);
  lVar6 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0xc18034c4)) =
       (uVar37 | *(ulonglong *)(DAT_1826707a0 + -0x9c8) ^ uVar41) ^ uVar23;
  uVar38 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar37 = *(ulonglong *)(lVar6 + -0xac0) ^ uVar26;
  *(ulonglong *)(lVar6 + -0x9e0) =
       uVar38 ^ uVar23 ^ uVar25 ^ *(ulonglong *)(lVar6 + -0xf0) ^ *puVar2;
  uVar32 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar6 + -0x630) = (*(ulonglong *)(lVar6 + -0x658) ^ uVar40) + uVar37 ^ uVar32;
  uVar40 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar6 + -0xd38) = uVar37 << ((bVar5 ^ 0x5e) & 0x3f) ^ uVar40;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x8034bb0)) =
       (*(ulonglong *)(lVar6 + -0x9c8) ^ uVar41) >> ((bVar28 ^ 0x38) & 0x3f);
  uVar23 = *(ulonglong *)(lVar7 + -0xd38);
  uVar37 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *puVar1 = (*(ulonglong *)(lVar7 - (uVar18 ^ 0xc1803ef4)) ^ uVar26) >> ((bVar28 ^ 7) & 0x3f) ^
            uVar37;
  uVar18 = (*(ulonglong *)(lVar7 - (uVar42 ^ 0x420121ed)) ^ uVar37 | uVar40 ^ uVar23) ^ uVar39;
  *(ulonglong *)(lVar7 + -0x998) = uVar18;
  uVar10 = DAT_182670ae8;
  uVar37 = (ulonglong)DAT_182670ae8;
  *(ulonglong *)(lVar7 + -0x588) = CONCAT44(uVar12,uVar29) ^ 0x2020051079102520 | 0x55dc7ac086c3c046
  ;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar18 = uVar23 ^ uVar32 ^ uVar18 ^ uVar39 ^ *(ulonglong *)(lVar7 + -0x630);
  *puVar16 = uVar18;
  uVar18 = uVar18 ^ uVar23;
  uVar26 = CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar40 = uVar18 << ((bVar4 ^ 0x23) & 0x3f);
  uVar23 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar7 + -0x410) = (uVar25 ^ *puVar2) + uVar18 ^ uVar26;
  uVar13 = DAT_182670978;
  *(ulonglong *)(lVar7 + -0x660) = uVar40 ^ uVar23;
  uVar37 = (*puVar31 >> 0x20 ^ uVar37) >> 9;
  uVar18 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  *(ulonglong *)(lVar7 + -0x890) = uVar37 ^ CONCAT44(uVar13,uVar13);
  uVar23 = (ulonglong)DAT_1826707b4;
  uVar25 = (uVar37 | uVar40) ^ uVar18;
  uVar40 = CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar7 + -0x3b0) = uVar25;
  uVar10 = DAT_1826707b8;
  uVar37 = (ulonglong)DAT_1826707b8;
  *puVar33 = *(ulonglong *)(lVar7 - (uVar23 ^ 0x79fbd220)) ^ uVar40 ^ uVar18 ^ uVar26 ^ uVar25;
  uVar41 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar7 + -0x610) =
       (uVar32 ^ *(ulonglong *)(lVar7 + -0x630)) + (*(ulonglong *)(lVar7 + -0x9e0) ^ uVar38) ^
       uVar41;
  uVar12 = DAT_1826707e8;
  *(uint *)(lVar7 - (uVar37 ^ 0x3434cdb4)) = DAT_1826707e8 ^ 0xeffdbff9 | 0x2ff9b3c8;
  uVar13 = DAT_18267080c;
  uVar18 = (*(ulonglong *)(lVar7 + -0x9e0) ^ uVar38) << (((byte)uVar36 ^ 0xd5) & 0x3f);
  *(ulonglong *)(lVar7 + -0xa18) = uVar18 ^ CONCAT44(DAT_182670840,DAT_182670840);
  uVar23 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707ac ^ 0x28d46ee0)) ^ uVar38) >>
           ((local_res20 ^ 0xe7) & 0x3f);
  *(uint *)(lVar7 + -0xc04) = (DAT_1826707e0 ^ 0x36dfb8) & (uVar10 ^ 0x8bbaa067);
  uVar14 = DAT_1826708a4;
  *(ulonglong *)(lVar7 + -0xf0) = uVar23 ^ CONCAT44(uVar13,uVar13);
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x658) = (uVar23 | uVar18) ^ uVar37;
  uVar10 = DAT_1826707cc;
  uVar32 = (ulonglong)DAT_1826707cc;
  uVar36 = DAT_1826707cc * DAT_1826707b0;
  uVar38 = (ulonglong)uVar36;
  *(int *)(lVar7 - (uVar42 ^ 0x42012ee5)) =
       (int)(uVar12 ^ 0x4c8ac548) >> ((byte)*(undefined4 *)(lVar7 + -0xaf0) & 0x1f);
  uVar13 = DAT_182670a40;
  lVar6 = DAT_1826707a0;
  uVar18 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar23 = uVar18 ^ uVar37 ^ uVar41 ^ *(ulonglong *)(lVar7 + -0x658) ^
           *(ulonglong *)(lVar7 + -0x610);
  DAT_1826707ac = uVar36;
  *(ulonglong *)(lVar7 + -0x9c8) = uVar23;
  uVar14 = DAT_182670a78;
  uVar25 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xbb0) =
       (uVar23 ^ uVar18) + (*(ulonglong *)(lVar6 + -0x410) ^ uVar26) ^ uVar25;
  uVar26 = CONCAT44(uVar14,uVar14);
  *puVar22 = (uVar18 ^ uVar23) << 5 ^ uVar26;
  uVar13 = DAT_182670aec;
  uVar37 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0x31dfb11c)) ^ uVar18) >> ((bVar28 ^ 0x3b) & 0x3f);
  *(ulonglong *)(lVar6 + -0xd38) = uVar37 ^ CONCAT44(DAT_18267089c,DAT_18267089c);
  lVar6 = DAT_1826707a0;
  uVar18 = CONCAT44(uVar13,uVar13);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x610);
  uVar39 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar37 = (uVar37 | uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0xac0)) ^ uVar18;
  puVar17 = (ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0xb8b10bb0));
  *puVar1 = uVar37;
  uVar26 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar6 + -0x588) = *puVar17 ^ uVar39 ^ uVar18 ^ uVar25 ^ uVar37;
  puVar17 = (ulonglong *)(lVar6 - ((ulonglong)uVar36 ^ 0xb8b10998));
  uVar37 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *puVar17 = (uVar41 ^ uVar23) + (uVar40 ^ *(ulonglong *)(lVar6 + -0x6b8)) ^ uVar26;
  uVar40 = uVar40 ^ *(ulonglong *)(lVar6 + -0x6b8);
  uVar18 = uVar40 << 0x25;
  *puVar2 = uVar18 ^ uVar37;
  lVar6 = DAT_1826707a0;
  uVar40 = uVar40 >> ((bVar28 ^ 0x1b) & 0x3f);
  *puVar16 = uVar40 ^ CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar13 = DAT_182670a00;
  uVar23 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar37 = (uVar40 | uVar18) ^ uVar23;
  *(ulonglong *)(lVar6 + -0x660) = uVar37;
  uVar18 = CONCAT44(uVar13,uVar13);
  *puVar30 = uVar18 ^ uVar23 ^ uVar26 ^ *puVar17 ^ uVar37;
  uVar37 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  uVar40 = (CONCAT44(uVar10,uVar36) ^ 0xea4dd1419c01339f) +
           (uVar18 ^ *(ulonglong *)(lVar6 + -0x890));
  uVar23 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar6 + -0x3b0) = uVar40 ^ uVar37;
  *(ulonglong *)(lVar6 + -0x630) =
       (CONCAT44(uVar8,uVar8) ^ 0x371c96fe01addc22) + (uVar25 ^ *(ulonglong *)(lVar6 + -0xbb0)) ^
       uVar23;
  uVar14 = DAT_182670984;
  *(ulonglong *)(lVar6 + -0x9e0) =
       (CONCAT44(uVar10,uVar8) ^ 0xe65ff1098d5fd28b) + 0x1bb1ae7b8814820d;
  uVar13 = DAT_18267092c;
  uVar18 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0xa18) =
       (*(ulonglong *)(lVar6 - (uVar32 ^ 0x31dfbee4)) ^ uVar23) +
       (*(ulonglong *)(lVar6 - (uVar38 ^ 0xb8b103b0)) ^ uVar37) ^ uVar18;
  lVar6 = DAT_1826707a0;
  uVar40 = uVar40 << (((byte)uVar10 ^ 0xcd) & 0x3f);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x3b0);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar40 ^ CONCAT44(uVar13,uVar13);
  uVar14 = DAT_182670a48;
  *(ulonglong *)(lVar6 + -0x658) = ((ulonglong)(uVar10 >> 0xe) | uVar34 << 0x12) ^ 0x2b828a7678df3;
  uVar13 = DAT_1826709cc;
  uVar23 = (uVar37 ^ uVar23) >> ((bVar28 ^ 0x27) & 0x3f);
  *(ulonglong *)(lVar6 + -0x9c8) =
       CONCAT44(uVar10,uVar10) ^ CONCAT44(uVar36,uVar8) ^ 0xf419bffe2159fedf;
  uVar15 = DAT_182670b0c;
  *(ulonglong *)(lVar6 + -0x410) = uVar23 ^ CONCAT44(uVar14,uVar14);
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar23 = (uVar40 | uVar23) ^ uVar34;
  *(ulonglong *)(lVar6 + -0xac0) = uVar23;
  uVar12 = DAT_1826709d8;
  uVar40 = (ulonglong)DAT_1826709d8;
  uVar37 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  *puVar19 = *(ulonglong *)(lVar6 - (uVar27 ^ 0xcf83f77f)) ^ CONCAT44(uVar15,uVar15) ^ uVar23 ^
             uVar34 ^ uVar18;
  uVar18 = (CONCAT44(uVar36,uVar36) ^ 0x1d45e8c2c39176d0) +
           (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0x588));
  *puVar1 = uVar18 ^ uVar37;
  uVar14 = DAT_182670b04;
  lVar6 = DAT_1826707a0;
  uVar23 = (CONCAT44(uVar9,uVar10) ^ 0x771ffee2465707e2) +
           (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x998));
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar23 ^ CONCAT44(DAT_1826708e4,DAT_1826708e4);
  uVar13 = DAT_1826709ac;
  *(ulonglong *)(lVar6 - (uVar38 ^ 0xb8b106b8)) = uVar18 + uVar23 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182670a50;
  *puVar2 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0x31dfb55c)) ^ uVar37) <<
            ((local_res20 ^ 0xde) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  uVar23 = CONCAT44(DAT_1826707ec,uVar8);
  *puVar16 = ((ulonglong)(uVar12 >> 0x1f) | uVar40 * 2) ^ *puVar1 >> 0x1f ^ CONCAT44(uVar14,uVar14);
  *puVar20 = (uVar23 ^ 0x473a0d99982319b8) + (CONCAT44(uVar36,uVar11) ^ 0x1e8c84da1be70448);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar3 ^ uVar35) * 4) = uVar24;
  return;
}



############ FUN_ 180d3ff90 size=4776 ############

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

void FUN_180d3ff90(void)

{
  uint uVar1;
  longlong lVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint *puVar18;
  uint uVar19;
  uint uVar20;
  uint *puVar21;
  byte *pbVar22;
  uint *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  uint uVar42;
  uint uVar43;
  byte local_68;
  
  uVar16 = DAT_182670ac8;
  uVar8 = DAT_1826707f0;
  uVar7 = DAT_1826707ec;
  uVar36 = DAT_1826707dc;
  uVar6 = DAT_1826707d0;
  uVar17 = DAT_1826707cc;
  uVar38 = DAT_1826707c4;
  lVar2 = DAT_1826707a0;
  uVar11 = (ulonglong)DAT_1826707d0;
  uVar27 = (ulonglong)DAT_1826707ec;
  uVar43 = DAT_1826707c4 | DAT_1826707d0;
  uVar39 = (ulonglong)DAT_1826707f0;
  uVar25 = (ulonglong)DAT_1826707dc;
  uVar26 = (ulonglong)DAT_1826707cc;
  uVar41 = DAT_1826707f0 & DAT_1826707b0;
  uVar29 = DAT_1826707ec << 0x10 | DAT_1826707ec >> 0x10;
  uVar32 = DAT_1826707dc ^ DAT_1826707cc;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar11 ^ 0xebb6f8d5) + (longlong)DAT_182670c98);
  uVar10 = *(uint *)(&DAT_18260f760 + DAT_182670c98) ^ DAT_1826707c4;
  uVar30 = *(uint *)(DAT_1826707a0 + -0xc04) ^ DAT_182670abc;
  bVar3 = (byte)DAT_1826707dc;
  uVar19 = (*(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0x85f690ba)) ^ DAT_182670b04) <<
           ((bVar3 ^ 0xae) & 0x1f) ^ DAT_182670860;
  uVar13 = (ulonglong)DAT_1826707b0;
  DAT_1826707a8 = uVar29;
  DAT_1826707d8 = uVar41;
  DAT_1826707e0 = uVar32;
  DAT_1826707f4 = uVar43;
  *(uint *)(DAT_1826707a0 + -0xa34) = uVar19;
  uVar12 = (ulonglong)uVar32;
  uVar30 = uVar30 - (uVar19 ^ DAT_182670860) ^ DAT_182670a54;
  *(uint *)(lVar2 + -0x42c) = uVar30;
  uVar19 = DAT_182670854;
  puVar21 = (uint *)(lVar2 - (uVar12 ^ 0x3a096ae5));
  *(uint *)(lVar2 + -0x540) = (*puVar21 ^ DAT_182670934) * (uVar30 ^ DAT_182670a54) ^ DAT_18267081c;
  *(uint *)(lVar2 - (uVar13 ^ 0xad6fd872)) =
       (*(uint *)(lVar2 + -0x9ec) ^ DAT_182670b04) * 0x19 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x558) =
       *(ulonglong *)(lVar2 + -0x9e0) ^ CONCAT44(uVar43,uVar8) ^ 0x76669fcf28c88b44;
  uVar13 = (ulonglong)uVar41;
  uVar19 = (*(uint *)(lVar2 - ((ulonglong)uVar41 ^ 0x8d66df96)) ^ DAT_18267081c) +
           (uVar19 ^ *(uint *)(lVar2 + -0x68c));
  *(uint *)(lVar2 + -0x2d4) = uVar19 ^ uVar16;
  uVar30 = uVar19 << (((byte)uVar38 ^ 0x72) & 0x1f) ^ DAT_1826709bc;
  *(uint *)(lVar2 + -0x3d4) = uVar30;
  uVar19 = (*(uint *)(lVar2 + -0x2d4) ^ uVar16) >> 0x13 ^ DAT_182670998;
  uVar30 = uVar30 ^ DAT_1826709bc;
  *(uint *)(lVar2 + -0xc34) = uVar19;
  *(uint *)(lVar2 + -0x280) = (uVar19 ^ DAT_182670998 | uVar30) ^ DAT_1826709a8;
  uVar14 = (ulonglong)uVar29;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0x40248878)) =
       (CONCAT44(uVar7,uVar36) ^ 0xe9d9d277ce85a372) << (((byte)uVar17 ^ 0x47) & 0x3f);
  *(uint *)(lVar2 + -0x814) =
       (*(uint *)(lVar2 - (uVar12 ^ 0x3a096dbd)) ^ DAT_182670848) +
       (*(uint *)(lVar2 + -0xc0c) ^ DAT_182670934) ^ DAT_182670a18;
  *(uint *)(lVar2 - ((ulonglong)uVar36 ^ 0xbffff85b)) =
       (*(uint *)(lVar2 - (uVar11 ^ 0xebb6fa09)) ^ uVar16) << (((byte)uVar17 ^ 0x4e) & 0x1f);
  uVar16 = *(uint *)(lVar2 + -0x814) ^ DAT_182670a5c ^ DAT_182670a18;
  uVar19 = *(uint *)(lVar2 + -0x280) ^ DAT_18267090c ^ DAT_1826709a8;
  *(uint *)(lVar2 + -0x398) = uVar16;
  *(uint *)(lVar2 + -0x8e0) = uVar19;
  uVar19 = DAT_182670904;
  *(uint *)(lVar2 + -0xc04) = uVar16 ^ DAT_182670904 ^ DAT_182670a5c;
  uVar35 = DAT_182670a0c;
  uVar20 = DAT_1826707e8;
  uVar28 = (ulonglong)DAT_1826707e8;
  uVar24 = (ulonglong)DAT_182670a70;
  *(uint *)(lVar2 - ((ulonglong)uVar43 ^ 0xeff6f7cb)) =
       *(uint *)(lVar2 - (uVar11 ^ 0xebb6f03d)) ^ DAT_182670a60 ^ DAT_18267090c;
  uVar16 = DAT_1826707bc;
  pbVar22 = (byte *)((CONCAT44(uVar8,uVar32) ^ 0x9df6dbd63a0966ed) + *(longlong *)(lVar2 + -0x30));
  *(ulonglong *)(lVar2 + -0x4f8) = (ulonglong)pbVar22 ^ uVar24;
  bVar15 = (byte)DAT_182670858;
  uVar31 = uVar16 | uVar20;
  DAT_1826707d4 = uVar31;
  *(ulonglong *)(lVar2 + -0x6f0) = CONCAT44(uVar16,uVar20) ^ 0xe84e3d51f3f2fc42;
  lVar4 = DAT_1826707a0;
  bVar9 = *pbVar22 ^ bVar15 ^ (byte)DAT_182670adc;
  uVar33 = (uint)(bVar15 ^ bVar9);
  *(byte *)(lVar2 + -0x619) = bVar9;
  uVar30 = DAT_182670a04;
  *(uint *)(lVar4 + -0x42c) = uVar33 ^ DAT_182670a04;
  uVar24 = (ulonglong)uVar31;
  uVar34 = uVar33 << 0x11 ^ DAT_182670948;
  uVar33 = *(uint *)(lVar4 - ((ulonglong)uVar31 ^ 0x7ffdfd8f)) ^ DAT_182670a60;
  *(uint *)(lVar4 + -0x540) = uVar34;
  lVar2 = DAT_1826707a0;
  uVar33 = uVar33 + (uVar20 ^ 0xf4598ba9) ^ DAT_1826708e0;
  uVar34 = uVar34 ^ DAT_182670948;
  *(uint *)(lVar4 + -0x9ec) = uVar33;
  lVar5 = DAT_1826707a0;
  uVar33 = (uVar33 ^ DAT_1826708e0) - uVar34 ^ DAT_182670ae4;
  *(uint *)(lVar4 + -0x68c) = uVar33;
  *(uint *)(lVar2 - ((ulonglong)uVar16 ^ 0x5ed47665)) =
       (*(uint *)(lVar4 + -0xc04) ^ uVar19) * (uVar33 ^ DAT_182670ae4) ^ uVar35;
  uVar34 = DAT_182670ab8;
  uVar42 = DAT_182670a68;
  uVar33 = _DAT_18267097c;
  lVar2 = DAT_1826707a0;
  puVar18 = (uint *)(lVar5 - ((ulonglong)uVar20 ^ 0x3f7dc2a6));
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x5ed47985)) =
       (*puVar18 ^ uVar30) * (uVar31 ^ 0x7ffdf7bf) ^ _DAT_18267097c;
  bVar15 = (byte)DAT_1826707bc;
  uVar30 = (*(uint *)(lVar2 - (uVar13 ^ 0x8d66d902)) ^ uVar35) +
           (*(uint *)(lVar2 + -0xc34) ^ uVar33);
  *(uint *)(lVar2 + -0xc0c) = uVar30 ^ uVar34;
  uVar37 = uVar30 << ((bVar15 ^ 0xbc) & 0x1f) ^ DAT_182670ab4;
  *(uint *)(lVar2 + -0x2d4) = uVar37;
  uVar37 = uVar37 ^ DAT_182670ab4;
  uVar30 = (*(uint *)(lVar2 - (uVar14 ^ 0x84804c28)) ^ uVar34) >> (((byte)uVar20 ^ 0x99) & 0x1f);
  *(uint *)(lVar2 + -0x7e4) = uVar30 ^ uVar42;
  puVar23 = (uint *)(lVar2 - ((ulonglong)uVar38 ^ 0xaff6f17b));
  *(uint *)(lVar2 + -0x814) = (uVar37 | uVar30) ^ DAT_1826708a4;
  *(uint *)(lVar2 - (uVar27 ^ 0x40248600)) =
       (*(uint *)(lVar2 - (uVar24 ^ 0x7ffdfcef)) ^ DAT_182670848) + (uVar19 ^ *puVar23) ^
       DAT_1826708e4;
  uVar19 = *(uint *)(lVar2 + -0x814) ^ DAT_1826709e8 ^ DAT_1826708a4;
  *(uint *)(lVar2 + -0x398) = *(uint *)(lVar2 + -0x280) ^ DAT_182670864 ^ DAT_1826708e4;
  *(uint *)(lVar2 + -0x8e0) = uVar19;
  uVar37 = _DAT_1826709e0;
  uVar34 = DAT_1826709b4;
  bVar15 = (byte)DAT_182670918;
  lVar4 = DAT_1826707a0;
  uVar19 = uVar19 ^ DAT_1826709e8;
  uVar27 = (ulonglong)DAT_182670888;
  uVar40 = (ulonglong)_DAT_1826709e0;
  *(uint *)(DAT_1826707a0 + -0xa34) =
       *(uint *)(lVar2 - (uVar24 ^ 0x7ffdf423)) ^ _DAT_1826709e0 ^ DAT_182670864;
  *(uint *)(lVar4 - (uVar24 ^ 0x7ffdfe57)) = uVar19 ^ uVar35;
  pbVar22 = (byte *)(*(longlong *)(lVar4 + -0x30) + 0xf +
                    (CONCAT44(uVar16,uVar32) ^ 0x5ed475b13a0966e9) * 0x20);
  *(ulonglong *)(lVar4 + -0xdb8) = (ulonglong)pbVar22 ^ uVar27;
  *(byte *)(lVar4 + -0xc35) = *pbVar22 ^ bVar15 ^ (byte)DAT_182670adc;
  uVar30 = (uint)(*(byte *)(lVar4 - (uVar12 ^ 0x3a096adc)) ^ bVar15);
  *(uint *)(lVar4 + -0x540) = uVar30 ^ uVar34;
  *(uint *)(lVar4 + -0x68c) =
       (*(uint *)(lVar4 + -0x9ec) ^ uVar35) + (uVar41 ^ 0x464297f5) ^ DAT_182670890;
  uVar19 = DAT_1826707b0;
  lVar2 = DAT_1826707a0;
  bVar15 = (byte)uVar20 ^ 0x9b;
  uVar27 = (ulonglong)DAT_1826707b0;
  uVar24 = CONCAT44(DAT_1826707b0,uVar17);
  uVar35 = uVar30 << (bVar15 & 0x1f) ^ DAT_18267098c;
  *(uint *)(DAT_1826707a0 + -0x42c) = uVar35;
  uVar35 = uVar35 ^ DAT_18267098c;
  *(ulonglong *)(lVar2 + -0x220) = (uVar24 ^ 0xedd08237388242ad) >> ((bVar3 ^ 0x9c) & 0x3f);
  uVar30 = DAT_1826707bc;
  lVar4 = DAT_1826707a0;
  lVar2 = *(longlong *)(DAT_1826707a0 + -0x658);
  *(uint *)(DAT_1826707a0 + -0x3d4) =
       (*(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0x5ed4733d)) ^ DAT_182670890) - uVar35
       ^ DAT_1826707fc;
  *(longlong *)(lVar4 + -0x5c0) = -0x25b1bfb8b21e04f9 - lVar2;
  uVar35 = (*(uint *)(lVar4 - (uVar25 ^ 0xbffffc6b)) ^ DAT_1826707fc) *
           (*(uint *)(lVar4 + -0xa34) ^ uVar37);
  *(uint *)(lVar4 + -0xc34) = uVar35 ^ uVar42;
  *(uint *)(lVar4 + -0xc0c) =
       (*(uint *)(lVar4 - (uVar12 ^ 0x3a0963a9)) ^ uVar34) * (uVar20 ^ 0x3f7dc685) ^ DAT_182670b0c;
  uVar20 = DAT_18267083c;
  uVar35 = uVar35 + (*puVar21 ^ DAT_182670b0c);
  *(uint *)(lVar4 + -0x2d4) = uVar35 ^ DAT_18267083c;
  *(longlong *)(lVar4 + -0x3b0) =
       lVar2 << ((byte)*(undefined8 *)(lVar4 - (uVar26 ^ 0x85f694de)) & 0x3f);
  uVar20 = (*(uint *)(lVar4 + -0x2d4) ^ uVar20) >> (((byte)DAT_1826707f0 ^ 0xc5) & 0x1f) ^
           DAT_182670a90;
  *(uint *)(lVar4 + -0x7e4) = uVar35 << (((byte)uVar43 ^ 0xf2) & 0x1f) ^ DAT_182670af0;
  *(uint *)(lVar4 - (uVar11 ^ 0xebb6f4d9)) = uVar20;
  *(ulonglong *)(lVar4 + -0x4c8) =
       CONCAT44(uVar29,uVar36) ^ CONCAT44(uVar8,uVar31) ^ 0xe29af3fb4634654d;
  uVar20 = DAT_1826709e8;
  *(uint *)(lVar4 + -0x280) =
       (*(uint *)(lVar4 - (uVar13 ^ 0x8d66d6d2)) ^ DAT_182670a90 |
       *(uint *)(lVar4 + -0x7e4) ^ DAT_182670af0) ^ DAT_182670a28;
  *(ulonglong *)(lVar4 + -0x548) =
       (CONCAT44(uVar7,uVar17) ^ 0x8a87c4d58bc1928a) -
       (CONCAT44(uVar38,uVar43) ^ 0xea8dfbbe41c4a87d);
  uVar17 = (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) + (*(uint *)(lVar4 + -0xa34) ^ uVar37) ^
           DAT_182670a78;
  *(uint *)(lVar4 + -0x814) = uVar17;
  *(uint *)(lVar4 + -0x398) = uVar17 ^ DAT_18267091c ^ DAT_182670a78;
  uVar17 = DAT_182670814;
  uVar36 = *(uint *)(lVar4 - ((ulonglong)uVar30 ^ 0x5ed47731)) ^ DAT_182670958 ^ DAT_182670a28;
  *(uint *)(lVar4 + -0x8e0) = uVar36;
  uVar30 = *(uint *)(lVar4 - (uVar27 ^ 0xad6fdd66)) ^ DAT_18267091c;
  *(uint *)(lVar4 + -0x68c) = uVar36 ^ uVar17 ^ DAT_182670958;
  uVar24 = (ulonglong)DAT_182670828;
  *(uint *)(lVar4 + -0x9ec) = uVar30 ^ uVar20;
  bVar3 = (byte)DAT_182670aec;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x9df6d93e)) =
       (CONCAT44(uVar16,uVar7) ^ 0x5ed475b140248480) * 0x20 +
       (CONCAT44(uVar31,uVar29) ^ 0x7ffdf7bb8480403e) + *(longlong *)(lVar4 + -0x30) ^ uVar24;
  *(byte *)(lVar4 + -0x619) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar27 ^ 0xad6fdc16)) ^ uVar24) ^ (byte)DAT_182670adc ^
       bVar3;
  uVar35 = DAT_182670a30;
  uVar34 = DAT_1826709ec;
  uVar36 = DAT_1826708dc;
  uVar30 = DAT_1826707c0;
  uVar24 = (ulonglong)DAT_182670a30;
  uVar42 = DAT_1826707c0 << 0x10 | DAT_1826707c0 >> 0x10;
  uVar32 = uVar42 ^ 0x1918d6ad;
  DAT_1826707c8 = uVar32;
  *(uint *)(lVar4 + -0x42c) =
       (*(byte *)(lVar4 - ((ulonglong)uVar43 ^ 0xeff6fbe6)) ^ bVar3) ^ DAT_1826708dc;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x85f6993e)) = CONCAT44(uVar31,uVar38) ^ 0x8bbe4656d1f493de;
  uVar16 = DAT_182670808;
  *(uint *)(lVar4 + -0x3d4) =
       (uVar17 ^ *(uint *)(lVar4 + -0x68c)) + (DAT_1826707bc ^ 0x95f03892) ^ DAT_182670808;
  *(uint *)(lVar4 - (uVar11 ^ 0xebb6fd9d)) =
       (*(uint *)(lVar4 + -0x42c) ^ uVar36) << (bVar15 & 0x1f) ^ uVar33;
  local_68 = (byte)uVar8;
  *(uint *)(lVar4 - (uVar14 ^ 0x84804c10)) =
       (uVar16 ^ *(uint *)(lVar4 + -0x3d4)) - (*(uint *)(lVar4 + -0x540) ^ uVar33) ^ uVar34;
  *(ulonglong *)(lVar4 - (uVar12 ^ 0x3a096d99)) =
       *(ulonglong *)(lVar4 + -0x5c0) >> ((local_68 ^ 0xd1) & 0x3f);
  *(uint *)(lVar4 - (uVar28 ^ 0x3f7dca86)) =
       (uVar34 ^ *(uint *)(lVar4 + -0xc34)) * (*(uint *)(lVar4 + -0x9ec) ^ uVar20) ^ uVar35;
  uVar16 = DAT_1826708e8;
  *(uint *)(lVar4 + -0x2d4) =
       (*(uint *)(lVar4 + -0x42c) ^ uVar36) * (uVar42 ^ 0xc5ea) ^ DAT_18267096c;
  *(uint *)(lVar4 + -0x7e4) =
       (*(uint *)(lVar4 - ((ulonglong)uVar30 ^ 0xc5f002d4)) ^ DAT_18267096c) +
       (uVar35 ^ *(uint *)(lVar4 + -0xc0c)) ^ uVar16;
  uVar36 = DAT_182670824;
  uVar34 = (*(uint *)(lVar4 - ((ulonglong)uVar30 ^ 0xc5f007e4)) ^ uVar16) <<
           (((byte)uVar30 ^ 0xd) & 0x1f) ^ DAT_182670a5c;
  uVar33 = (*(uint *)(lVar4 + -0x7e4) ^ uVar16) >> (((byte)uVar32 ^ 0x4e) & 0x1f);
  uVar16 = uVar33 ^ DAT_182670834;
  *(uint *)(lVar4 + -0xc04) = uVar34;
  uVar34 = uVar34 ^ DAT_182670a5c;
  *(uint *)(lVar4 + -0xa34) = uVar16;
  uVar16 = DAT_182670a04;
  *(uint *)(lVar4 + -0x814) = (uVar34 | uVar33) ^ DAT_1826709d0;
  uVar33 = DAT_182670a74;
  uVar20 = (*(uint *)(lVar4 - ((ulonglong)uVar30 ^ 0xc5f009ec)) ^ uVar20) +
           (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) ^ DAT_1826709bc;
  *(uint *)(lVar4 + -0x280) = uVar20;
  *(uint *)(lVar4 - ((ulonglong)uVar32 ^ 0x191810c5)) = uVar16 ^ uVar20 ^ DAT_1826709bc;
  puVar21 = (uint *)(lVar4 - ((ulonglong)uVar30 ^ 0xc5f00814));
  *(uint *)(lVar4 - ((ulonglong)uVar32 ^ 0x19181bbd)) = *puVar21 ^ _DAT_1826708c8 ^ DAT_1826709d0;
  *(uint *)(lVar4 + -0x68c) = *(uint *)(lVar4 + -0x398) ^ uVar33 ^ DAT_182670a04;
  lVar2 = DAT_1826707a0;
  *(uint *)(lVar4 + -0x3d4) = *(uint *)(lVar4 + -0x8e0) ^ uVar36 ^ _DAT_1826708c8;
  uVar20 = DAT_1826709e8;
  bVar3 = (byte)DAT_182670928;
  uVar16 = DAT_1826707bc;
  *(ulonglong *)(lVar2 + -0x270) =
       (CONCAT44(uVar30,uVar6) ^ 0xc5f00000ebb6f8dd) * 0x20 +
       (CONCAT44(uVar30,uVar7) ^ 0xc5f0000040248485) + *(longlong *)(lVar2 + -0x30) ^ uVar40;
  *(byte *)(lVar2 - (uVar25 ^ 0xbffff38a)) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x5ed477c1)) ^ (ulonglong)uVar37) ^
       (byte)DAT_182670adc ^ bVar3;
  *(uint *)(lVar2 - (uVar26 ^ 0x85f69c16)) = (*(byte *)(lVar2 + -0xc35) ^ bVar3) ^ uVar20;
  uVar30 = DAT_182670a8c;
  *(uint *)(DAT_1826707a0 + -0xc34) =
       (uVar36 ^ *(uint *)(lVar2 + -0x3d4)) + (DAT_1826707b0 ^ 0x664b93dd) ^ DAT_182670a8c;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       CONCAT44(uVar8,uVar29) ^ *(ulonglong *)(DAT_1826707a0 + -0x400) ^ 0xd576bdbfe5c5db78;
  *puVar18 = (*(uint *)(lVar2 - ((ulonglong)uVar32 ^ 0x1918161d)) ^ uVar20) <<
             (((byte)uVar32 ^ 0x4c) & 0x1f) ^ DAT_1826709d4;
  lVar4 = DAT_1826707a0;
  *(uint *)(lVar2 + -0xc0c) =
       (uVar30 ^ *(uint *)(lVar2 + -0xc34)) -
       (*(uint *)(lVar2 - (uVar13 ^ 0x8d66defa)) ^ DAT_1826709d4) ^ DAT_182670afc;
  uVar6 = DAT_1826708d4;
  lVar5 = DAT_1826707a0;
  uVar36 = (*(uint *)(lVar2 - (uVar25 ^ 0xbffff3b3)) ^ DAT_182670afc) *
           (*(uint *)(lVar4 - (uVar13 ^ 0x8d66dc5a)) ^ uVar33) ^ _DAT_1826708f8;
  *(uint *)(lVar4 + -0x2d4) = uVar36;
  uVar36 = uVar36 ^ _DAT_1826708f8;
  uVar11 = *(ulonglong *)(lVar5 + -0x270);
  *(uint *)(lVar4 + -0x7e4) =
       (*(uint *)(lVar4 + -0x540) ^ uVar20) * (uVar42 ^ 0xc5f5) ^ DAT_182670850;
  uVar30 = DAT_182670810;
  *(uint *)(lVar5 + -0xc04) =
       (*(uint *)(lVar4 - (uVar28 ^ 0x3f7dc16e)) ^ DAT_182670850) + uVar36 ^ uVar6;
  *(uint *)(lVar5 + -0xa34) = (uVar6 ^ *puVar23) << (((byte)uVar31 ^ 0xb6) & 0x1f) ^ uVar30;
  *(uint *)(lVar5 + -0x9ec) =
       (*(uint *)(lVar5 - (uVar14 ^ 0x84804c20)) ^ uVar6) >> (((byte)uVar16 ^ 0xa2) & 0x1f) ^
       DAT_182670838;
  bVar3 = (byte)DAT_182670adc;
  *(byte *)(lVar5 - (uVar13 ^ 0x8d66dccf)) = *(byte *)(uVar37 ^ uVar11) ^ (byte)DAT_182670adc;
  *(uint *)(lVar5 + -0x280) =
       (*(uint *)(lVar5 - ((ulonglong)uVar32 ^ 0x19181ab1)) ^ DAT_182670838 |
       uVar30 ^ *(uint *)(lVar5 + -0xa34)) ^ uVar20;
  *puVar21 = (*(uint *)(lVar5 - ((ulonglong)uVar32 ^ 0x19181809)) ^ DAT_182670848) +
             (uVar33 ^ *(uint *)(lVar5 + -0x68c)) ^ DAT_182670a24;
  uVar16 = DAT_182670920 ^ *(uint *)(lVar5 + -0x280);
  *(uint *)(lVar5 + -0x398) =
       *(uint *)(lVar5 - ((ulonglong)uVar43 ^ 0xeff6f5eb)) ^ DAT_182670a44 ^ DAT_182670a24;
  *(uint *)(lVar5 + -0x8e0) = uVar16 ^ uVar20;
  *(ulonglong *)(lVar5 - (uVar39 ^ 0x9df6dd6e)) =
       (CONCAT44(uVar29,uVar38) ^ 0xeb954362ce1387f4) +
       (CONCAT44(uVar19,uVar31) ^ 0x625f60f5a119de37);
  uVar19 = DAT_1826707b4;
  uVar11 = (ulonglong)DAT_1826707b4;
  *(uint *)(lVar5 + -0x3d4) = *(uint *)(lVar5 + -0x398) ^ DAT_1826709a0 ^ DAT_182670a44;
  uVar38 = (uVar19 << 0x10 | uVar19 & 0xff00) << 8 | uVar19 >> 8 & 0xff00 | DAT_1826707b4 >> 0x18;
  *(uint *)(lVar5 + -0xc34) = *(uint *)(lVar5 + -0x8e0) ^ DAT_182670920 ^ DAT_18267098c;
  uVar16 = DAT_182670ae4;
  uVar30 = DAT_182670ae4 & 0xff;
  pbVar22 = (byte *)((CONCAT44(uVar19,uVar38) ^ 0x7d3faae6e6aa3f7d) * 0x20 +
                     (CONCAT44(uVar38,uVar19) ^ 0xe6aa3f7d7d3faaf6) + *(longlong *)(lVar5 + -0x30));
  DAT_1826707ac = uVar38;
  *(ulonglong *)(lVar5 + -0x248) = (ulonglong)pbVar22 ^ uVar24;
  bVar15 = *pbVar22 ^ bVar3 ^ (byte)uVar16;
  *(byte *)(lVar5 + -0xc35) = bVar15;
  *(uint *)(lVar5 + -0x42c) = bVar15 ^ uVar30 ^ uVar17;
  *(uint *)(lVar5 - ((ulonglong)uVar38 ^ 0xe6aa3371)) =
       (*(uint *)(lVar5 - (uVar11 ^ 0x7d3fa6d2)) ^ DAT_18267098c) + (uVar38 ^ 0x2d8e725e) ^
       DAT_182670a94;
  *(byte *)(lVar5 - ((ulonglong)uVar38 ^ 0xe6aa3964)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x2e8) ^ (ulonglong)DAT_182670828) ^ bVar3;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar1 ^ uVar43;
  return;
}



############ FUN_ 180c67970 size=5050 ############

void FUN_180c67970(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong *puVar41;
  ulonglong *puVar42;
  uint uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong *puVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte bVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong *puVar58;
  ulonglong uVar59;
  byte bVar60;
  ulonglong uVar61;
  ulonglong uVar62;
  byte local_158;
  byte local_138;
  byte local_110;
  
  uVar13 = DAT_1826707f0;
  uVar12 = DAT_1826707c8;
  uVar11 = DAT_1826707c0;
  uVar19 = DAT_1826707bc;
  uVar10 = DAT_1826707b8;
  uVar18 = DAT_1826707b0;
  lVar6 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707b0;
  uVar32 = (ulonglong)DAT_1826707c0;
  uVar36 = DAT_1826707c0 | DAT_1826707b0;
  uVar55 = (ulonglong)DAT_1826707b8;
  uVar27 = (ulonglong)DAT_1826707c8;
  uVar37 = (ulonglong)DAT_1826707bc;
  uVar43 = DAT_1826707f0 & DAT_1826707bc;
  uVar47 = DAT_1826707b8 + DAT_1826707c8;
  uVar4 = *(uint *)(&DAT_18260f750 + (uVar26 ^ 0xda0d927c) + (longlong)DAT_182670cf4);
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670cf4) ^ DAT_1826707c0;
  uVar29 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  uVar20 = CONCAT44(DAT_182670adc,DAT_182670adc);
  uVar51 = CONCAT44(DAT_182670a00,DAT_182670a00);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x658);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0xd38) ^ *puVar1 ^ uVar51 ^ uVar20;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xa18);
  DAT_1826707dc = uVar36;
  DAT_1826707e4 = uVar43;
  DAT_1826707f4 = uVar47;
  *puVar2 = uVar23 ^ uVar29;
  uVar15 = DAT_18267090c;
  bVar60 = (byte)uVar18;
  uVar38 = CONCAT44(DAT_182670970,DAT_182670970);
  uVar50 = (ulonglong)uVar43;
  uVar45 = (ulonglong)uVar13;
  puVar44 = (ulonglong *)(lVar6 - (uVar50 ^ 0x9249aecd));
  uVar59 = (ulonglong)uVar47;
  *puVar44 = uVar23 >> ((bVar60 ^ 0x78) & 0x3f) ^ uVar38;
  uVar9 = DAT_1826709f0;
  lVar6 = DAT_1826707a0;
  uVar54 = CONCAT44(uVar15,uVar15);
  uVar39 = (*(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xb649b1f5)) ^ uVar29) <<
           (((byte)uVar10 ^ 0x9a) & 0x3f);
  uVar46 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar39 ^ uVar54;
  uVar8 = DAT_182670898;
  uVar39 = uVar38 ^ *(ulonglong *)(lVar6 + -0x420) | uVar39;
  uVar21 = CONCAT44(uVar9,uVar9);
  puVar3 = (ulonglong *)(lVar6 + -0xf0);
  uVar23 = *puVar1;
  uVar56 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar24 = uVar39 ^ uVar56;
  *(ulonglong *)(lVar6 + -0xd38) = uVar24;
  uVar9 = DAT_182670a90;
  uVar30 = CONCAT44(uVar8,uVar8);
  *puVar3 = (uVar23 ^ uVar51) - uVar39 ^ uVar30;
  lVar6 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       uVar39 ^ uVar24 ^ uVar56 ^ uVar46 ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0);
  puVar48 = (ulonglong *)(lVar6 - (uVar55 ^ 0xad39e2ce));
  bVar5 = (byte)uVar13;
  *puVar48 = (CONCAT44(uVar36,uVar19) ^ 0x7768304fc424b527) + 0xd3a7ab53258a51e5;
  uVar39 = uVar39 ^ *(ulonglong *)(lVar6 + -0x420);
  uVar23 = uVar39 >> ((bVar5 ^ 0xf4) & 0x3f);
  uVar33 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(DAT_1826707a0 + -0x118) = uVar23 ^ uVar33;
  uVar9 = DAT_182670a64;
  lVar6 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar39 = uVar39 << ((bVar60 ^ 0x53) & 0x3f);
  *puVar2 = uVar39 ^ uVar34;
  *puVar1 = (uVar39 | uVar23) ^ uVar51;
  uVar8 = DAT_182670888;
  lVar7 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar23 = (uVar46 ^ *(ulonglong *)(lVar6 + -0xbb0)) -
           (*(ulonglong *)(lVar6 - (uVar59 ^ 0x29ac9847)) ^ uVar24);
  *(ulonglong *)(lVar6 + -0xd38) = uVar23 ^ uVar20;
  uVar61 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 - (uVar32 ^ 0x34b0d7b8)) =
       uVar23 - (*(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xb649bdb5)) ^ uVar51) ^ uVar61;
  uVar8 = DAT_182670a8c;
  *(ulonglong *)(lVar7 + -0x420) =
       CONCAT44(DAT_182670980,DAT_182670980) ^
       *(ulonglong *)(*(ulonglong *)(lVar7 + -0x58) ^ uVar54);
  uVar16 = DAT_182670b00;
  uVar25 = CONCAT44(uVar8,uVar8);
  uVar23 = (*(ulonglong *)(lVar7 + -0x438) ^ uVar56) + (*(ulonglong *)(lVar7 + -0xce0) ^ uVar51);
  *(ulonglong *)(lVar7 + -0x118) = uVar23 ^ uVar25;
  lVar6 = DAT_1826707a0;
  *puVar2 = (*puVar1 ^ uVar51) - uVar23 ^ CONCAT44(uVar16,uVar16);
  puVar22 = (ulonglong *)(lVar6 - ((ulonglong)uVar36 ^ 0xfebdd30c));
  *(ulonglong *)(lVar6 + -0xbb0) =
       uVar34 ^ uVar30 ^ *puVar22 ^ uVar21 ^ *(ulonglong *)(lVar6 + -0x890);
  uVar35 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  local_158 = (byte)uVar43;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (*(ulonglong *)(lVar6 - (uVar37 ^ 0xd249e15d)) ^ uVar34) >> ((local_158 ^ 0xcc) & 0x3f) ^
       uVar35;
  lVar6 = DAT_1826707a0;
  *(int *)(DAT_1826707a0 + -0x43c) =
       -0x1888aae9 << ((byte)*(undefined4 *)(DAT_1826707a0 - (uVar45 ^ 0xb649b96d)) & 0x1f);
  uVar23 = (*(ulonglong *)(lVar6 - (uVar26 ^ 0xda0d99c4)) ^ uVar34) <<
           (((byte)uVar47 ^ 0xe0) & 0x3f);
  local_138 = (byte)uVar12;
  *puVar44 = uVar23 ^ uVar38;
  lVar6 = DAT_1826707a0;
  *puVar1 = uVar23 >> ((local_138 ^ 0x6a) & 0x3f);
  uVar19 = DAT_182670840;
  puVar40 = (ulonglong *)(lVar6 - (uVar32 ^ 0x34b0d5f8));
  uVar62 = (ulonglong)DAT_182670840;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xda0d9ae4)) =
       (*(ulonglong *)(lVar6 - (uVar55 ^ 0xad39e996)) ^ uVar35 | *puVar40 ^ uVar38) ^ uVar56;
  puVar44 = (ulonglong *)(lVar6 - (uVar37 ^ 0xd249ea1d));
  uVar28 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar23 = (uVar30 ^ *puVar44) - (uVar20 ^ *(ulonglong *)(lVar6 + -0x220));
  *(ulonglong *)(lVar6 + -0xbb0) = uVar23 ^ uVar28;
  *puVar1 = -0x59d443fd11782b28 << ((*(byte *)puVar2 ^ (byte)uVar16) & 0x3f);
  *(ulonglong *)(lVar6 + -0xd38) = uVar23 - (uVar56 ^ *(ulonglong *)(lVar6 + -0x890)) ^ uVar30;
  uVar23 = (CONCAT44(uVar36,uVar47) ^ 0x1422c03d653610c) - (*(ulonglong *)(lVar6 + -0x630) ^ uVar56)
  ;
  uVar31 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar6 + -0x420) = uVar23 ^ uVar31;
  *(ulonglong *)(lVar6 - (uVar45 ^ 0xb649b9cd)) =
       uVar23 + (uVar56 ^ *(ulonglong *)(lVar6 + -0x890)) ^ uVar54;
  uVar8 = DAT_1826708e0;
  uVar57 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar23 = uVar57 ^ uVar61 ^ uVar54 ^ *puVar48 ^ *(ulonglong *)(lVar6 + -0x220);
  *puVar3 = uVar23;
  uVar14 = DAT_182670aa0;
  uVar45 = CONCAT44(uVar8,uVar8);
  puVar41 = (ulonglong *)(DAT_1826707a0 - (uVar50 ^ 0x9249acb5));
  *puVar41 = (uVar23 ^ uVar57) >> ((bVar5 ^ 0xe8) & 0x3f) ^ uVar45;
  uVar23 = (uVar57 ^ *puVar3) << (((byte)uVar10 ^ 0x95) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar23 ^ CONCAT44(uVar14,uVar14);
  uVar19 = DAT_1826707c4;
  lVar6 = DAT_1826707a0;
  uVar56 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar23 = *puVar1 ^ uVar45 | uVar23;
  uVar52 = CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar39 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar23 ^ uVar56;
  puVar58 = (ulonglong *)(lVar6 - ((ulonglong)uVar36 ^ 0xfebdd7dc));
  *puVar58 = (*(ulonglong *)(lVar6 + -0x660) ^ uVar61) - uVar23 ^ uVar52;
  bVar53 = (byte)uVar19;
  *(ulonglong *)(lVar6 + -0x220) = 0x1efd363965c8dd8a >> ((bVar53 ^ 0xf1) & 0x3f);
  uVar45 = CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar23 = *(ulonglong *)(lVar6 - (uVar55 ^ 0xad39eeb6)) ^ *(ulonglong *)(DAT_1826707a0 + -0xd38) ^
           uVar45 ^ CONCAT44(uVar16,uVar16) ^ uVar30;
  *puVar3 = uVar23;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (uVar23 ^ uVar45) >> (((byte)uVar47 ^ 0xda) & 0x3f) ^ uVar51;
  lVar7 = DAT_1826707a0;
  *puVar1 = (*(ulonglong *)(lVar6 - (uVar39 ^ 0x1488c126)) ^ uVar45) << ((bVar5 ^ 0xf6) & 0x3f) ^
            uVar33;
  lVar6 = DAT_1826707a0;
  puVar42 = (ulonglong *)(lVar7 - (uVar27 ^ 0x7c72b1e1));
  uVar45 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x7c72bc31)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x34b0d780)) ^ uVar33 | *puVar42 ^ uVar51) ^ uVar45
  ;
  *(undefined8 *)(lVar6 - (uVar50 ^ 0x9249a8cd)) = 0x3c4f6e0d7aacaea;
  uVar23 = *(ulonglong *)(lVar6 + -0x420);
  uVar51 = CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar30 = (*(ulonglong *)(lVar6 + -0xd38) ^ uVar30) - (uVar45 ^ *(ulonglong *)(lVar6 + -0x660));
  uVar45 = uVar45 ^ uVar52 ^ uVar28 ^ uVar23 ^ *(ulonglong *)(lVar6 + -0x660);
  *puVar2 = uVar30 ^ uVar51;
  *puVar3 = uVar45;
  lVar6 = DAT_1826707a0;
  uVar39 = (uVar28 ^ uVar45) << 0x29;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = (uVar28 ^ *puVar22) >> ((bVar53 ^ 0xc1) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar6 + -0x220) = uVar39 << (((byte)uVar9 ^ *(byte *)(lVar6 + -0xbb0)) & 0x3f);
  *puVar1 = uVar39 ^ uVar61;
  uVar8 = DAT_18267088c;
  uVar45 = *(ulonglong *)(lVar6 + -0x890);
  uVar39 = *(ulonglong *)(lVar6 - (uVar59 ^ 0x29ac954f)) ^ uVar34 | uVar39;
  *(ulonglong *)(lVar6 + -0xd38) = uVar39 ^ uVar52;
  uVar28 = CONCAT44(uVar8,uVar8);
  *puVar3 = (uVar52 ^ uVar23) - uVar39 ^ uVar28;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xda0d9054)) = uVar30 ^ uVar56 ^ uVar31 ^ uVar45;
  uVar45 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar6 + -0xbb0) = (*(ulonglong *)(lVar6 + -0x220) >> 0x20 ^ uVar62) >> 8 ^ uVar45;
  uVar23 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  puVar48 = (ulonglong *)(lVar6 - (uVar26 ^ 0xda0d942c));
  *puVar48 = (uVar31 ^ *(ulonglong *)(lVar6 + -0x220)) << ((local_158 ^ 0xf5) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar6 + -0x660) = (uVar51 ^ *puVar2) << ((bVar5 ^ 0xe6) & 0x3f);
  uVar13 = DAT_182670a10;
  uVar30 = (ulonglong)DAT_182670a10;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xda0d9654)) =
       (*(ulonglong *)(lVar6 - (uVar37 ^ 0xd249ecb5)) ^ uVar23 |
       uVar45 ^ *(ulonglong *)(lVar6 + -0xbb0)) ^ uVar46;
  uVar45 = (uVar51 ^ *puVar2) - (uVar46 ^ *(ulonglong *)(lVar6 + -0x420)) ^ uVar29;
  puVar49 = (ulonglong *)(lVar6 - (uVar27 ^ 0x7c72baa1));
  *(ulonglong *)(lVar6 + -0x890) = uVar45;
  uVar39 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar46 = uVar28 ^ *puVar58 ^ *puVar49 ^ uVar21 ^ uVar46;
  *(ulonglong *)(lVar6 + -0x220) = uVar46;
  uVar12 = DAT_1826707d0;
  uVar23 = (uVar46 ^ uVar21) >> (bVar60 & 0x3f);
  uVar46 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar6 + -0xbb0) = CONCAT44(uVar10,uVar19) ^ uVar29 ^ uVar45 ^ 0x2352e5a8be606a50;
  *(ulonglong *)(lVar6 + -0x660) = uVar23 ^ uVar39;
  lVar7 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar45 = (*(ulonglong *)(lVar6 - (uVar46 ^ 0xd6c18a34)) ^ uVar21) <<
           (((byte)uVar36 ^ 0xf0) & 0x3f);
  *puVar1 = uVar45 ^ uVar31;
  uVar45 = uVar45 | uVar23;
  uVar62 = CONCAT44(DAT_182670864,DAT_182670864);
  uVar23 = uVar45 ^ uVar62;
  *puVar2 = uVar23;
  *(ulonglong *)(lVar7 + -0x420) = CONCAT44(uVar43,uVar12) ^ uVar62 ^ uVar23 ^ 0x633c64c82156514;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0xd6c183a4)) =
       (*(ulonglong *)(lVar7 - (uVar26 ^ 0xda0d9284)) ^ uVar28) - uVar45 ^ uVar24;
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xd249e8cd)) =
       uVar31 ^ *(ulonglong *)(lVar7 + -0xd38) ^ uVar52 ^ uVar29 ^ *(ulonglong *)(lVar7 + -0x890);
  uVar23 = *(ulonglong *)(lVar7 + -0x220);
  uVar45 = (*(ulonglong *)(lVar7 + -0x220) >> 0x20 ^ uVar30) >> 0x19;
  *puVar1 = uVar45 ^ uVar57;
  *(ulonglong *)(lVar7 + -0x420) =
       (CONCAT44(uVar11,uVar18) ^ 0x8d201bf14ca9f5da) -
       (CONCAT44(uVar47,uVar47) ^ 0x96cd7573087b6482);
  uVar8 = DAT_182670950;
  *puVar3 = (uVar31 ^ uVar23) << ((bVar5 ^ 0xea) & 0x3f) ^ uVar38;
  uVar9 = DAT_1826707b4;
  lVar6 = DAT_1826707a0;
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x890);
  uVar45 = *puVar22 ^ uVar38 | uVar45;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar45 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 + -0x420) = *puVar49 ^ uVar38 | 0xadea345a4efda8b7;
  uVar46 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar26 = uVar45 ^ uVar24 ^ uVar54 ^ *(ulonglong *)(lVar6 + -0xbb0);
  *puVar1 = uVar26;
  *(ulonglong *)(lVar6 + -0x220) = (uVar29 ^ uVar23) - uVar45 ^ uVar46;
  uVar14 = DAT_182670a60;
  uVar8 = DAT_1826707e0;
  *puVar3 = CONCAT44(uVar10,uVar43) ^ 0x7e198c2ad8853834 | *puVar48 ^ uVar54;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x420) = (uVar26 ^ uVar54) >> (((byte)uVar8 ^ 0xf1) & 0x3f) ^ uVar23;
  uVar21 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar6 - (uVar32 ^ 0x34b0d948)) =
       (*puVar41 ^ uVar54) << (((byte)uVar9 ^ 0xcd) & 0x3f) ^ uVar21;
  *(longlong *)(lVar6 + -0xd38) = 0x55a70075ffd6dd64 << ((byte)*puVar3 & 0x3f);
  uVar18 = DAT_1826707a8;
  puVar22 = (ulonglong *)(lVar6 - (uVar37 ^ 0xd249e27d));
  uVar26 = (ulonglong)DAT_1826707a8;
  uVar45 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0x600a2010)) =
       (uVar21 ^ *puVar22 | uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x420)) ^ uVar45;
  *puVar40 = CONCAT44(uVar36,uVar12) ^ 0xf5763477effaff49 | 0xc4362457469afc41;
  lVar6 = DAT_1826707a0;
  uVar23 = (*(ulonglong *)(DAT_1826707a0 - (uVar50 ^ 0x9249a15d)) ^ uVar24) -
           (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x34b0d060)) ^ uVar20);
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar23 ^ CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar10 = DAT_1826707d4;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0xe9c1da1c)) =
       uVar23 - (uVar45 ^ *(ulonglong *)(lVar6 + -0xd38)) ^ uVar39;
  lVar6 = DAT_1826707a0;
  *puVar42 = (*(ulonglong *)(DAT_1826707a0 + -0x660) ^ uVar39) -
             *(longlong *)(DAT_1826707a0 - (uVar59 ^ 0x29ac9e0f));
  *(ulonglong *)(lVar6 + -0x890) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707ec ^ 0x6febf797)) ^ uVar21) +
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x600a2b90)) ^ uVar24) ^ uVar35;
  uVar14 = DAT_182670a70;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 + -0x660) =
       (uVar45 ^ *(ulonglong *)(lVar6 + -0xd38)) - (uVar35 ^ *puVar22) ^
       CONCAT44(DAT_182670894,DAT_182670894);
  uVar50 = CONCAT44(uVar14,uVar14);
  *puVar44 = uVar50 ^ uVar46 ^ uVar62 ^ *puVar2 ^ *(ulonglong *)(lVar6 + -0x220);
  uVar14 = DAT_18267082c;
  *(ulonglong *)(lVar6 + -0xbb0) =
       (CONCAT44(uVar8,DAT_1826707e8) ^ 0xcf157c997b7b4155) << ((bVar5 ^ 0xde) & 0x3f);
  uVar8 = DAT_1826707ac;
  uVar45 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0xe9c1decc)) ^ uVar50) >>
           (((byte)uVar9 ^ 0xef) & 0x3f);
  uVar18 = DAT_1826707cc ^ 0xd26ce6db;
  uVar19 = DAT_1826707b8 ^ 0xe3026230;
  *(ulonglong *)(lVar7 + -0xd38) = uVar45 ^ CONCAT44(uVar14,uVar14);
  *(uint *)(lVar7 + -0xaf0) = uVar18 | uVar19;
  lVar6 = DAT_1826707a0;
  puVar22 = (ulonglong *)(DAT_1826707a0 + -0x220);
  uVar45 = (uVar50 ^ *puVar3) << (((byte)uVar8 ^ 0x3a) & 0x3f) | uVar45;
  uVar23 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar45 ^ CONCAT44(DAT_182670914,DAT_182670914);
  uVar59 = (uVar46 ^ *puVar22) - (uVar25 ^ *(ulonglong *)(lVar6 + -0x118));
  *puVar3 = uVar59 ^ uVar23;
  uVar23 = *(ulonglong *)(lVar6 + -0x6f0);
  *(ulonglong *)(lVar6 + -0xd38) = uVar59 - uVar45 ^ uVar50;
  local_110 = (byte)uVar15;
  *puVar2 = -0x5a954e64e8fcbb1c << ((*(byte *)puVar1 ^ local_110) & 0x3f);
  uVar14 = DAT_182670ad8;
  *(ulonglong *)(lVar6 + -0x118) =
       (CONCAT44(uVar36,uVar10) ^ 0x1422c03163e21c8) - (uVar23 ^ uVar34) ^ uVar38;
  uVar9 = DAT_182670854;
  uVar23 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0x34b0d0c0)) ^ uVar38) + uVar45 ^ uVar33;
  *(ulonglong *)(lVar6 + -0x220) = uVar23;
  uVar45 = CONCAT44(uVar9,uVar9);
  *puVar44 = *(ulonglong *)(lVar6 - (uVar27 ^ 0x7c72be71)) ^ uVar45 ^ uVar23 ^ uVar39 ^ uVar33;
  *puVar2 = (uVar45 ^ *puVar3) >> (((byte)uVar8 ^ 0x2a) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar4 ^ uVar36;
  *puVar1 = (uVar26 ^ 0x90b80000) >> 0x13;
  return;
}



############ FUN_ 180cc8810 size=5204 ############

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

void FUN_180cc8810(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  ulonglong *puVar18;
  byte bVar19;
  byte bVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  byte bVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  byte local_100;
  
  uVar11 = DAT_1826707f0;
  uVar14 = DAT_1826707e8;
  uVar9 = DAT_1826707c8;
  uVar8 = DAT_1826707ac;
  lVar5 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707c8;
  uVar29 = (ulonglong)DAT_1826707f0;
  uVar47 = (ulonglong)DAT_1826707ac;
  uVar30 = DAT_1826707f0 & DAT_1826707c8;
  uVar24 = (ulonglong)DAT_1826707e8;
  uVar33 = DAT_1826707ac & DAT_1826707e8;
  uVar17 = *(uint *)(&DAT_18260f750 + (uVar28 ^ 0x7c72ba59) + (longlong)DAT_182670e1c) ^
           DAT_1826707f0;
  uVar4 = *(uint *)(&DAT_18260f760 + DAT_182670e1c);
  uVar39 = (ulonglong)uVar33;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  uVar48 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar34 = CONCAT44(DAT_182670a78,DAT_182670a78);
  DAT_1826707d0 = uVar33;
  DAT_1826707e4 = uVar30;
  *puVar1 = (uVar48 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) << (((byte)uVar33 ^ 0x22) & 0x3f) ^
            uVar34;
  puVar21 = (ulonglong *)(lVar5 - (uVar47 ^ 0x2d286bba));
  uVar40 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar37 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar34 = *puVar21 ^ uVar34 | *(ulonglong *)(lVar5 + -0xa18) ^ uVar40;
  puVar2 = (ulonglong *)(lVar5 + -0x118);
  *puVar2 = uVar34 ^ uVar37;
  uVar50 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar35 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar32 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x2d28642a)) ^ uVar50) - uVar34 ^ uVar35;
  uVar36 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar5 + -0x220) = uVar32;
  uVar45 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar34 = *(ulonglong *)(lVar5 + -0xd38);
  uVar22 = CONCAT44(DAT_182670894,DAT_182670894);
  puVar3 = (ulonglong *)(lVar5 + -0x660);
  uVar42 = uVar34 ^ uVar22 ^ uVar45 ^ uVar36 ^ *puVar3;
  puVar46 = (ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x7c72bc09));
  bVar19 = (byte)uVar30;
  uVar38 = (uVar42 ^ uVar36) >> ((bVar19 ^ 0x61) & 0x3f);
  uVar26 = (ulonglong)uVar30;
  uVar31 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar38 ^ uVar31;
  uVar23 = CONCAT44(DAT_182670adc,DAT_182670adc);
  local_100 = (byte)uVar14;
  uVar25 = CONCAT44(DAT_182670a04,DAT_182670a04);
  puVar18 = (ulonglong *)(DAT_1826707a0 + -0x420);
  uVar42 = (uVar42 ^ uVar36) << ((local_100 ^ 0x52) & 0x3f) | uVar38;
  uVar43 = uVar42 ^ uVar25;
  *puVar18 = uVar43;
  uVar36 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = (uVar34 ^ uVar45) - uVar42 ^ uVar36;
  lVar5 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar43 ^ uVar34 ^ uVar25 ^ uVar35 ^ uVar32;
  bVar20 = (byte)uVar11;
  *puVar1 = (uVar34 ^ *(ulonglong *)(lVar5 + -0x658)) >> ((local_100 ^ 0x48) & 0x3f) ^ uVar22;
  *puVar3 = uVar38 + 0xd2b30f5eb4dc7156;
  *(ulonglong *)(lVar5 + -0xd38) = CONCAT44(uVar8,uVar33) ^ 0x23d28a1d7c083b4e;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x3440be61)) =
       (uVar34 ^ *puVar46) << ((bVar20 ^ 0xeb) & 0x3f) ^ uVar48;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xba51766a)) =
       (CONCAT44(uVar33,uVar33) ^ 0x8a15ad03bcaa6f79) >> ((bVar20 ^ 0xec) & 0x3f);
  uVar7 = DAT_1826707f8;
  uVar34 = *(ulonglong *)(lVar5 + -0x220);
  uVar25 = *puVar1 ^ uVar22 | *puVar18 ^ uVar48;
  *puVar3 = uVar25 ^ uVar45;
  uVar12 = DAT_182670b00;
  uVar38 = CONCAT44(uVar7,uVar7);
  uVar32 = (ulonglong)DAT_182670b00;
  uVar42 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x3440b779)) = (uVar35 ^ uVar34) - uVar25 ^ uVar38;
  uVar34 = *puVar2 ^ uVar42 ^ uVar36 ^ uVar37 ^ *(ulonglong *)(lVar5 + -0xf0);
  *(ulonglong *)(lVar5 + -0x658) = uVar34;
  uVar25 = (uVar42 ^ uVar34) << 0x2a;
  *(ulonglong *)(lVar5 + -0xa18) =
       (CONCAT44(uVar11,uVar8) ^ 0xa94508afd87478e8) + 0x3f312dab0b2bb0ba;
  uVar7 = DAT_182670ab4;
  uVar34 = ((ulonglong)(uVar12 >> 0x16) | uVar32 << 10) ^
           *(ulonglong *)(lVar5 - (uVar29 ^ 0xb649bdb5)) >> 0x16;
  uVar44 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *puVar18 = uVar25 ^ uVar44;
  uVar32 = CONCAT44(uVar7,uVar7);
  *puVar1 = uVar34 ^ uVar50;
  uVar12 = DAT_182670a50;
  uVar43 = (ulonglong)DAT_182670a50;
  *(ulonglong *)(lVar5 + -0x220) = (uVar25 | uVar34) ^ uVar32;
  uVar48 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x2d286112)) =
       (CONCAT44(uVar9,uVar8) ^ 0x851619314166e76c) << ((bVar19 ^ 0x7d) & 0x3f);
  uVar42 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar5 + -0xa18) =
       (uVar36 ^ *(ulonglong *)(lVar5 + -0xf0)) - (uVar32 ^ *(ulonglong *)(lVar5 + -0x220)) ^ uVar42
  ;
  uVar34 = uVar48 ^ uVar32 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0x220) ^
           *(ulonglong *)(lVar5 + -0xd38);
  uVar32 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  puVar41 = (ulonglong *)(lVar5 - (uVar28 ^ 0x7c72bb49));
  *puVar1 = uVar34;
  uVar7 = DAT_1826708d0;
  lVar6 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670868,DAT_182670868);
  *puVar41 = (uVar34 >> 0x20 ^ uVar43) >> 0xe ^ uVar32;
  uVar34 = (*puVar1 ^ uVar48) << 0x12;
  *(ulonglong *)(lVar5 + -0xf0) = uVar34 ^ uVar25;
  uVar50 = CONCAT44(uVar7,uVar7);
  bVar49 = (byte)uVar9;
  *(ulonglong *)(lVar6 + -0x658) = (*puVar2 ^ uVar32 | uVar34) ^ uVar50;
  *(ulonglong *)(lVar6 - (uVar26 ^ 0x3440b861)) =
       (CONCAT44(uVar14,uVar8) ^ 0x390869c5f039be54) >> ((bVar49 ^ 0x46) & 0x3f);
  puVar27 = (ulonglong *)(lVar6 - (uVar47 ^ 0x2d286d32));
  uVar43 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar34 = (*puVar27 ^ uVar38) - (uVar50 ^ *(ulonglong *)(lVar6 + -0x658)) ^ uVar43;
  *puVar1 = uVar34;
  *puVar41 = *puVar18 ^ uVar34 ^ uVar43 ^ uVar44;
  uVar34 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar6 + -0xf0) =
       uVar34 ^ uVar42 ^ *(ulonglong *)(lVar6 + -0xa18) ^ uVar45 ^ *puVar3;
  uVar48 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar6 - (uVar39 ^ 0x28006d3a)) =
       (*(ulonglong *)(lVar6 - (uVar29 ^ 0xb649bb1d)) ^ uVar34) >> ((bVar49 ^ 0x5d) & 0x3f) ^ uVar48
  ;
  uVar7 = DAT_182670a48;
  lVar5 = DAT_1826707a0;
  uVar25 = (uVar34 ^ *(ulonglong *)(lVar6 + -0xf0)) << ((local_100 ^ 0x46) & 0x3f);
  uVar34 = *(ulonglong *)(DAT_1826707a0 + -0xa18);
  uVar44 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *puVar18 = uVar25 ^ uVar44;
  uVar38 = CONCAT44(uVar7,uVar7);
  uVar25 = *(ulonglong *)(lVar5 - (uVar28 ^ 0x7c72b769)) ^ uVar48 | uVar25;
  *puVar2 = uVar25 ^ uVar38;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x3440bc21)) = (uVar42 ^ uVar34) - uVar25 ^ uVar40;
  uVar10 = DAT_182670afc;
  lVar5 = DAT_1826707a0;
  uVar42 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar34 = *puVar21 ^ *puVar2 ^ uVar42 ^ uVar38 ^ uVar43;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar34;
  uVar7 = DAT_182670ae0;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 + -0xd38) = (uVar34 ^ uVar42) >> ((bVar19 ^ 0x58) & 0x3f) ^ uVar25;
  *puVar18 = (CONCAT44(uVar9,uVar33) ^ 0xdb8977a580dd760c) >>
             ((byte)*(undefined8 *)(lVar5 + -0x220) & 0x3f);
  uVar26 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0xba517c82)) ^ uVar42) << ((bVar20 ^ 0xca) & 0x3f);
  uVar34 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar5 + -0xa18) = uVar26 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x1488c0ce)) = (uVar25 ^ *puVar27 | uVar26) ^ uVar44;
  uVar7 = DAT_182670af0;
  lVar6 = DAT_1826707a0;
  puVar27 = (ulonglong *)(lVar5 - (uVar28 ^ 0x7c72b871));
  *puVar27 = (*puVar1 ^ uVar43) - (*(ulonglong *)(lVar5 + -0x630) ^ uVar31) ^ uVar37;
  uVar34 = *(ulonglong *)(lVar6 + -0x1b8);
  uVar38 = CONCAT44(uVar7,uVar7);
  *puVar18 = (uVar37 ^ *(ulonglong *)(lVar6 + -0x220)) - (*puVar2 ^ uVar44) ^ uVar38;
  uVar7 = DAT_182670ae8;
  uVar43 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar34 = (uVar34 ^ uVar23) + (*(ulonglong *)(lVar6 + -0x588) ^ uVar43);
  *(ulonglong *)(lVar6 + -0xf0) = uVar34 ^ CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar48 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar6 + -0xd38) = (*puVar2 ^ uVar44) - uVar34 ^ uVar48;
  uVar23 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *(ulonglong *)(lVar6 - (uVar39 ^ 0x28006a1a)) =
       *(ulonglong *)(lVar6 - (uVar47 ^ 0x2d28666a)) ^ uVar23 ^ uVar50 ^ uVar40 ^ *puVar46;
  uVar34 = CONCAT44(DAT_182670838,DAT_182670838);
  *puVar1 = (uVar23 ^ *(ulonglong *)(lVar6 + -0xa18)) >> (((byte)uVar8 ^ 0x2b) & 0x3f) ^ uVar34;
  uVar7 = DAT_1826707b4;
  *(int *)(lVar6 - (uVar24 ^ 0xba517ea6)) = *(int *)(lVar6 + -0xc04) + 0x6b88f689;
  uVar26 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar6 + -0x220) =
       (uVar23 ^ *(ulonglong *)(lVar6 + -0xa18)) << ((bVar20 ^ 0xf2) & 0x3f) ^ uVar26;
  uVar10 = DAT_182670898;
  uVar25 = *(ulonglong *)(lVar6 - (uVar29 ^ 0xb649b9cd)) ^ uVar26 | *puVar1 ^ uVar34;
  *puVar2 = uVar25 ^ uVar48;
  uVar34 = CONCAT44(uVar10,uVar10);
  puVar21 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707f4 ^ 0x29ac98a7));
  *(ulonglong *)(lVar6 + -0x658) =
       (uVar40 ^ *puVar3) - (uVar32 ^ *(ulonglong *)(lVar6 + -0x890)) ^ uVar34;
  uVar13 = DAT_182670a98;
  lVar5 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = (uVar34 ^ *puVar21) - uVar25 ^ uVar32;
  uVar10 = DAT_182670a2c;
  uVar12 = DAT_1826707d8;
  uVar34 = CONCAT44(uVar13,uVar13);
  *puVar1 = (CONCAT44(uVar11,uVar30) ^ 0x49b64412cbbf45b4) -
            (*(ulonglong *)(lVar5 + -0x438) ^ uVar31) ^ uVar34;
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x2d28622a)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707b0 ^ 0xda0d99c4)) ^ uVar34) + uVar25 ^ uVar23;
  uVar34 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar5 + -0x890) =
       uVar34 ^ uVar23 ^ *puVar18 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0x220);
  *(uint *)(lVar5 + -0x9ec) = (uVar12 ^ 0x4413b127) + 0xedffcb6e;
  uVar15 = DAT_1826707ec;
  lVar5 = DAT_1826707a0;
  uVar23 = (uVar34 ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) >> ((bVar49 ^ 0x54) & 0x3f);
  *puVar3 = uVar23 ^ CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar5 + -0x658) =
       (CONCAT44(uVar9,uVar14) ^ 0x8535d20b9d20ca29) >> (((byte)DAT_1826707e0 ^ 0xec) & 0x3f);
  uVar11 = DAT_1826707c4;
  uVar34 = (*(ulonglong *)(lVar5 - (uVar29 ^ 0xb649b37d)) ^ uVar34) <<
           (((byte)uVar15 ^ 0xc4) & 0x3f);
  *puVar1 = uVar34 ^ CONCAT44(DAT_18267092c,DAT_18267092c);
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = (uVar34 | uVar23) ^ uVar43;
  *puVar2 = 0x1f818ce68862ff8e << (((byte)uVar11 ^ 0xfa) & 0x3f);
  uVar10 = DAT_1826708a0;
  puVar46 = (ulonglong *)(lVar5 - (uVar39 ^ 0x28006222));
  uVar37 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *puVar21 = (*puVar18 ^ uVar38) - (uVar43 ^ *puVar46) ^ uVar37;
  uVar13 = DAT_182670aa0;
  uVar15 = DAT_1826707ec;
  uVar9 = DAT_1826707b0;
  uVar31 = CONCAT44(uVar10,uVar10);
  puVar41 = (ulonglong *)(lVar5 - ((ulonglong)DAT_1826707bc ^ 0xd249e27d));
  uVar25 = (ulonglong)DAT_1826707ec;
  *puVar41 = *(ulonglong *)(lVar5 - (uVar47 ^ 0x2d286a12)) ^ uVar31 ^ uVar32 ^ uVar48 ^
             *(ulonglong *)(lVar5 + -0xd38);
  lVar5 = DAT_1826707a0;
  uVar34 = *(ulonglong *)(DAT_1826707a0 + -0x890);
  uVar23 = (uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) >> (((byte)uVar9 ^ 0x51) & 0x3f);
  *puVar2 = uVar23 ^ CONCAT44(uVar13,uVar13);
  puVar21 = *(ulonglong **)(lVar5 + -0x7b8);
  uVar34 = (uVar31 ^ uVar34) << (((byte)uVar15 ^ 0xe4) & 0x3f);
  *puVar3 = uVar34 ^ uVar38;
  *puVar1 = *puVar21 ^ uVar36;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x6febf3df)) = (uVar23 | uVar34) ^ uVar37;
  uVar47 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar25 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar5 + -0xd38) =
       (uVar32 ^ *(ulonglong *)(lVar5 + -0xa18)) -
       (*(ulonglong *)(lVar5 - (uVar39 ^ 0x28006422)) ^ uVar37) ^ uVar47;
  uVar32 = (ulonglong)DAT_1826707d4;
  puVar51 = (ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xda0d9ae4));
  *puVar51 = uVar25 ^ *puVar18 ^ *(ulonglong *)(lVar5 + -0x658);
  uVar9 = DAT_1826707b8;
  uVar31 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar36 = (ulonglong)DAT_1826707cc;
  uVar23 = (ulonglong)DAT_1826707b8;
  bVar20 = (byte)DAT_1826707dc;
  *puVar1 = (uVar25 ^ *puVar41) >> (((byte)uVar12 ^ 0x1d) & 0x3f) ^ uVar31;
  uVar34 = CONCAT44(DAT_182670840,DAT_182670840);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b0 ^ 0xda0d936c)) =
       (uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) << ((bVar20 ^ 0xd5) & 0x3f) ^ uVar34;
  *puVar3 = CONCAT44(uVar11,uVar15) ^ 0x9b73c84fcf72e007 | uVar34 ^ *puVar2;
  lVar5 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670a74,DAT_182670a74);
  uVar34 = *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0x7c72b1e1)) ^ uVar31 | uVar34 ^ *puVar2;
  uVar25 = CONCAT44(DAT_18267095c,DAT_18267095c);
  puVar21 = (ulonglong *)(DAT_1826707a0 + -0x658);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar34 ^ uVar38;
  *(ulonglong *)(lVar5 - (uVar23 ^ 0xad39e08e)) = (uVar37 ^ *puVar21) - uVar34 ^ uVar25;
  uVar34 = uVar47 ^ uVar26 ^ uVar43 ^ *puVar46 ^ *(ulonglong *)(lVar5 + -0xd38);
  uVar31 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar5 + -0x890) = uVar34;
  uVar15 = DAT_1826707f4;
  uVar11 = DAT_1826707c4;
  uVar43 = (ulonglong)DAT_1826707b0;
  uVar37 = (ulonglong)DAT_1826707c4;
  uVar23 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0xe9c1d85c)) =
       (uVar34 ^ uVar26) >> (((byte)uVar33 ^ 0x2a) & 0x3f) ^ uVar31;
  *puVar1 = (CONCAT44(uVar30,uVar14) ^ 0x6fac26009ed42a46) + 0x49924e94317775b;
  uVar34 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x29ac966f)) ^ uVar26) <<
            (((byte)uVar15 ^ 0xe7) & 0x3f) ^ uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       (CONCAT44(uVar7,uVar8) ^ 0x48a8436893e1315f) << (((byte)uVar11 ^ 0xfd) & 0x3f);
  uVar10 = DAT_1826707c0;
  uVar26 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar28 = CONCAT44(uVar9,DAT_1826707c0);
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xba517e52)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0xb649baf5)) ^ uVar34 | uVar31 ^ *puVar3) ^ uVar26;
  lVar5 = DAT_1826707a0;
  uVar34 = *(ulonglong *)(DAT_1826707a0 + -0xd38);
  *puVar1 = uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0x658) ^ 0x76d030686d8efc6f;
  uVar7 = DAT_1826707e0;
  uVar13 = DAT_1826707dc;
  *puVar51 = (uVar47 ^ uVar34) - (uVar26 ^ *puVar27) ^ uVar22;
  *puVar3 = uVar25 ^ *puVar18 ^ uVar35 ^ uVar26 ^ *(ulonglong *)(lVar5 + -0x220);
  uVar32 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0x7d6e7b13)) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0x1488c7b6)) ^ uVar35) >> (((byte)uVar7 ^ 0xcb) & 0x3f) ^
       uVar32;
  uVar26 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xba5177c2)) =
       (uVar35 ^ *puVar3) << (((byte)uVar10 ^ 0xd4) & 0x3f) ^ uVar26;
  lVar5 = DAT_1826707a0;
  uVar34 = *puVar18;
  uVar28 = CONCAT44(DAT_182670998,DAT_182670998);
  puVar21 = (ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xba517a2a));
  *(ulonglong *)(DAT_1826707a0 + -0x658) = (*puVar1 ^ uVar26 | *puVar2 ^ uVar32) ^ uVar28;
  uVar7 = DAT_1826707a8;
  *(ulonglong *)(lVar5 - (uVar43 ^ 0xda0d9f4c)) = (uVar25 ^ uVar34) - (*puVar21 ^ uVar28) ^ uVar42;
  uVar16 = DAT_18267084c;
  *(ulonglong *)(lVar5 + -0x220) = CONCAT44(uVar7,uVar10) ^ 0x912c3962db6d2f08 | *puVar2 ^ uVar32;
  uVar26 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - (uVar23 ^ 0x29ac989f)) =
       uVar38 ^ *(ulonglong *)(lVar5 + -0xa18) ^ *(ulonglong *)(lVar5 + -0x890) ^ uVar22 ^ uVar26;
  uVar7 = DAT_182670884;
  uVar34 = *puVar3;
  uVar28 = (*puVar3 ^ uVar26) >> ((bVar19 ^ 0x78) & 0x3f);
  *puVar1 = uVar28 ^ CONCAT44(DAT_182670934,DAT_182670934);
  *puVar18 = (uVar34 ^ uVar26) << (((byte)uVar13 ^ 0xfb) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *puVar2 = CONCAT44(uVar12,uVar33) ^ 0x14b4643da39e6237 | uVar28;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar30) * 4) = uVar17;
  return;
}



############ FUN_ 180c59770 size=5615 ############

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

void FUN_180c59770(void)

{
  ulonglong *puVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  byte local_res20;
  byte local_d0;
  ulonglong uVar17;
  
  uVar33 = DAT_1826707f4;
  uVar22 = DAT_1826707f0;
  uVar12 = DAT_1826707ec;
  uVar10 = DAT_1826707dc;
  uVar9 = DAT_1826707cc;
  uVar7 = DAT_1826707bc;
  uVar5 = DAT_1826707ac;
  uVar24 = (ulonglong)DAT_1826707cc;
  uVar32 = (ulonglong)DAT_1826707bc;
  uVar37 = (ulonglong)DAT_1826707f0;
  uVar31 = (ulonglong)DAT_1826707ec;
  uVar39 = (ulonglong)DAT_1826707dc;
  uVar23 = (ulonglong)DAT_1826707ac;
  uVar26 = DAT_1826707dc + DAT_1826707ac;
  uVar25 = (DAT_1826707cc << 0x10 | DAT_1826707cc & 0xff00) << 8 | DAT_1826707cc >> 8 & 0xff00 |
           DAT_1826707cc >> 0x18;
  uVar20 = DAT_1826707e0;
  if ((DAT_1826707bc & 1) == 0) {
    uVar20 = DAT_1826707bc;
  }
  uVar14 = DAT_1826707f0 * DAT_1826707ec;
  uVar17 = (ulonglong)uVar14;
  uVar15 = *(uint *)(&DAT_18260f750 + (uVar17 ^ 0xab931cea) + (longlong)DAT_182670cc8) ^
           DAT_1826707ec;
  uVar18 = (ulonglong)uVar20;
  uVar16 = *(uint *)(&DAT_18260f750 + (uVar18 ^ 0xb8d331cf) + (longlong)DAT_182670cc8) ^
           DAT_1826707f0;
  uVar40 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  DAT_1826707b0 = uVar20;
  DAT_1826707c0 = uVar26;
  DAT_1826707c8 = uVar14;
  DAT_1826707d4 = uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       (CONCAT44(DAT_182670ad0,DAT_182670ad0) ^ *(ulonglong *)(DAT_1826707a0 + -0xcf8)) >>
       (((byte)DAT_1826707e0 ^ 0xed) & 0x3f) ^ uVar40;
  lVar3 = DAT_1826707a0;
  uVar21 = (ulonglong)uVar26;
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xb9162c99)) =
       (CONCAT44(uVar33,uVar5) ^ 0x7d2ee7a49f38c90c) << (((byte)uVar33 ^ 0x19) & 0x3f);
  uVar34 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar29 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  puVar1 = (ulonglong *)(lVar3 + -0x9c8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x5c6e6b95)) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x447e26d2)) ^ uVar34 |
       uVar40 ^ *(ulonglong *)(lVar3 + -0x890)) ^ uVar29;
  uVar6 = DAT_182670860;
  uVar42 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar41 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar44 = (ulonglong)uVar25;
  *(ulonglong *)(lVar3 + -0x588) =
       uVar41 ^ uVar42 ^ uVar29 ^ *puVar1 ^ *(ulonglong *)(lVar3 + -0x6b8);
  uVar8 = DAT_1826708fc;
  uVar38 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  uVar35 = (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar3 + -0xac0)) +
           (CONCAT44(uVar7,uVar25) ^ 0x1c6acdef26421889);
  uVar29 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *(ulonglong *)(lVar3 + -0x630) = uVar35 ^ uVar38;
  uVar6 = DAT_182670afc;
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar29 = (uVar29 ^ *(ulonglong *)(lVar3 + -0xd88)) + (CONCAT44(uVar7,uVar25) ^ 0x962138a642a213ea)
  ;
  *(ulonglong *)(lVar3 + -0xf0) = uVar29 ^ uVar27;
  lVar3 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x420127d5)) = uVar29 + uVar35 ^ uVar40;
  uVar33 = DAT_1826707e0;
  puVar46 = (ulonglong *)(lVar3 - (uVar21 ^ 0x447e2afa));
  uVar35 = (ulonglong)DAT_1826707e0;
  bVar19 = (byte)DAT_1826707e0;
  uVar30 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x5c6e644d)) =
       (*puVar46 ^ uVar38) << ((bVar19 ^ 0xcf) & 0x3f) ^ uVar30;
  uVar6 = DAT_182670a34;
  uVar11 = DAT_1826707f4;
  uVar29 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar3 + -0x68) =
       CONCAT44(DAT_182670a60,DAT_182670a60) ^ *(ulonglong *)(lVar3 + -0x410) |
       CONCAT44(uVar14,uVar12) ^ 0x445339b50d934d53;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x5d6267bc)) =
       (uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) >> (((byte)uVar10 ^ 0x55) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x660) =
       CONCAT44(uVar5,uVar11) ^ CONCAT44(uVar20,uVar33) ^ 0x716d02684b865ace;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xb8d33787)) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0xc17c2a10)) ^ uVar30 |
       *(ulonglong *)(lVar3 + -0x9e0) ^ uVar36) ^ uVar36;
  uVar35 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  uVar29 = *(ulonglong *)(lVar3 - (uVar31 ^ 0xb9162eb1)) ^ *(ulonglong *)(lVar3 + -0x658) ^ uVar35 ^
           uVar36 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xd38) = uVar29;
  *(ulonglong *)(lVar3 + -0x3b0) =
       CONCAT44(uVar10,uVar20) ^ *(ulonglong *)(lVar3 + -0x658) ^ uVar36 ^ 0x9941871d9ab4161e;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x4201209d)) =
       (uVar35 ^ uVar29) + (uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) ^ uVar36;
  uVar43 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(lVar3 + -0x998) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0xb8d33ce7)) ^ uVar35) << 0x34 ^ uVar43;
  local_res20 = (byte)uVar26;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0x5d626444)) =
       0x9fba091a6dfd915a >> ((local_res20 ^ 0xe2) & 0x3f);
  uVar41 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x2d8c7a72)) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0xd38)) >> (((byte)uVar9 ^ 0x51) & 0x3f) ^ uVar41;
  uVar35 = CONCAT44(DAT_182670a14,DAT_182670a14);
  bVar2 = (byte)DAT_1826707f4;
  uVar29 = (*(ulonglong *)(lVar3 - (uVar39 ^ 0x420125fd)) ^ uVar43 |
           uVar41 ^ *(ulonglong *)(lVar3 + -0x890)) ^ uVar35;
  uVar33 = DAT_1826707c8 ^ 0x2cea623d;
  *puVar1 = uVar29;
  uVar11 = DAT_182670aa0;
  uVar45 = (ulonglong)DAT_182670aa0;
  *(uint *)(lVar3 + -0x814) = uVar33 >> ((bVar2 ^ 2) & 0x1f);
  uVar30 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xac0) =
       uVar30 ^ uVar35 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0xcf8) ^ uVar29;
  uVar38 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0x588)) + (uVar40 ^ *(ulonglong *)(lVar3 + -0xbb0)) ^
       uVar38;
  uVar40 = CONCAT44(DAT_182670abc,DAT_182670abc);
  local_d0 = (byte)uVar22;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x27d0095)) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0x588)) << (((byte)uVar5 ^ 0x5c) & 0x3f) ^ uVar40;
  uVar35 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0xb8d335cf)) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0x588)) >> ((local_d0 ^ 0xe5) & 0x3f) ^ uVar35;
  uVar29 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar35 = (uVar35 ^ *(ulonglong *)(lVar3 + -0x410) | uVar40 ^ *(ulonglong *)(lVar3 + -0xf0)) ^
           uVar29;
  *(ulonglong *)(lVar3 + -0x68) = uVar35;
  *(int *)(lVar3 + -0xc04) = *(int *)(lVar3 - (uVar31 ^ 0xb9162515)) + *(int *)(lVar3 + -0xc0c);
  lVar3 = DAT_1826707a0;
  uVar42 = (ulonglong)DAT_1826709ec;
  uVar40 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xb9162331)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x420121ed)) ^ uVar40 ^ uVar35 ^ uVar29 ^ uVar38;
  uVar22 = DAT_1826707f4 ^ 0xb387e9f6;
  uVar35 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar3 + -0x660) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0xcf8)) + (uVar40 ^ *(ulonglong *)(lVar3 + -0x630)) ^
       uVar35;
  *(uint *)(lVar3 - (uVar17 ^ 0xab931612)) = uVar22 | *(uint *)(lVar3 + -0xc04);
  uVar36 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x27d0985)) = (uVar40 ^ *puVar46) << 0x17 ^ uVar36;
  uVar40 = (*(ulonglong *)(lVar3 + -0x630) >> 0x20 ^ uVar42) >> 9;
  *(ulonglong *)(lVar3 + -0x610) = uVar40 ^ CONCAT44(DAT_182670920,DAT_182670920);
  *(int *)(lVar3 + -0x280) =
       *(int *)(lVar3 - (uVar21 ^ 0x447e279e)) << ((byte)*(undefined4 *)(lVar3 + -0x9ec) & 0x1f);
  uVar29 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar40 = (uVar40 | uVar36 ^ *(ulonglong *)(lVar3 + -0x9e0)) ^ uVar29;
  uVar47 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar3 + -0x3b0) = uVar40;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x658) =
       uVar47 ^ uVar29 ^ uVar35 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x660);
  uVar33 = DAT_1826707e0;
  uVar42 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x5d6268e4)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xb8d33c57)) ^ uVar38) +
       (uVar30 ^ *(ulonglong *)(lVar4 + -0xac0)) ^ uVar42;
  uVar6 = DAT_18267087c;
  *(byte *)(lVar4 + -0x281) =
       *(byte *)((ulonglong)DAT_182670b14 ^ *(ulonglong *)(lVar4 + -0x390)) ^ (byte)DAT_182670a40;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xb99e2f35)) =
       (uVar30 ^ *(ulonglong *)(lVar4 + -0xac0)) << 0x28 ^ uVar36;
  uVar6 = DAT_182670888;
  lVar3 = DAT_1826707a0;
  puVar46 = (ulonglong *)(DAT_1826707a0 + -0xa18);
  uVar38 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar40 = ((ulonglong)(uVar11 >> 0x18) | uVar45 << 8) ^
           *(ulonglong *)(DAT_1826707a0 + -0xac0) >> 0x18;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar40 ^ uVar38;
  uVar8 = DAT_182670964;
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar40 = (uVar36 ^ *puVar46 | uVar40) ^ uVar29;
  *(ulonglong *)(lVar3 + -0x890) = uVar40;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar29 = uVar36 ^ uVar29 ^ uVar42 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x6b8);
  *puVar1 = uVar29;
  uVar30 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar29 = uVar36 ^ uVar29;
  *(ulonglong *)(lVar3 + -0xbb0) =
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0x5d626794)) ^ uVar36) +
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x660)) ^ uVar30;
  uVar6 = DAT_1826708e4;
  *(ulonglong *)(lVar3 + -0x588) =
       *(ulonglong *)(lVar3 - (uVar24 ^ 0x5c6e6bc5)) ^ uVar43 ^ 0xd1828fa976b6f3d9;
  uVar35 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0xf0) = uVar29 << ((local_d0 ^ 0xe7) & 0x3f) ^ uVar35;
  uVar40 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x447e28da)) = uVar29 >> (((byte)uVar20 ^ 0xe4) & 0x3f) ^ uVar40;
  uVar36 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  uVar35 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0xb8d3312f)) ^ uVar35 |
           *(ulonglong *)(lVar3 - (uVar24 ^ 0x5c6e664d)) ^ uVar40) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x68) = uVar35;
  *(ulonglong *)(lVar3 + -0xcf8) =
       (CONCAT44(uVar14,uVar5) ^ 0xbf1c4a224e72c2d4) + 0x67794022255688eb;
  uVar8 = DAT_182670994;
  uVar11 = DAT_1826707e8;
  lVar3 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670844,DAT_182670844);
  uVar47 = uVar47 ^ *(ulonglong *)(DAT_1826707a0 + -0x658);
  puVar46 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  uVar40 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(DAT_1826707a0 + -0x630) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x406c2bb0)) ^ uVar29 ^ uVar36 ^
       uVar30 ^ uVar35;
  uVar6 = DAT_1826708f0;
  uVar13 = DAT_1826707f4;
  uVar36 = uVar47 << ((local_res20 ^ 0xef) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9e0) = (uVar42 ^ *puVar46) + uVar47 ^ uVar40;
  *(ulonglong *)(lVar3 + -0x610) = uVar36 ^ CONCAT44(uVar8,uVar8);
  uVar47 = uVar47 >> (((byte)uVar13 ^ 0x1b) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) = uVar47 ^ CONCAT44(uVar6,uVar6);
  lVar3 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670a94,DAT_182670a94);
  puVar46 = (ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x2d8c7b02));
  uVar36 = (uVar47 | uVar36) ^ uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar36;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xb9162fc1)) = *puVar46 ^ uVar35 ^ uVar40 ^ uVar41 ^ uVar36;
  *(uint *)(lVar3 + -0xc0c) =
       *(uint *)(lVar3 + -0xc34) >> ((byte)*(undefined4 *)(lVar3 + -0x3d4) & 0x1f);
  uVar22 = DAT_1826707b4;
  uVar42 = CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar43 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x406c2d38)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0xc17c26c0)) ^ uVar41) +
       (CONCAT44(uVar33,uVar25) ^ 0x976c2c5442a213ea) ^ uVar42;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  bVar2 = (byte)uVar22;
  *(ulonglong *)(DAT_1826707a0 - (uVar17 ^ 0xab9316fa)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x5d6265ec)) ^ uVar30) +
       (CONCAT44(uVar7,uVar22) ^ 0xdc6b89360c4a000b) ^ uVar36;
  uVar35 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar3 + -0x890) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x5c6e6845)) ^ uVar36) +
       (*(ulonglong *)(lVar3 + -0xd38) ^ uVar42) ^ uVar35;
  *(int *)(lVar3 - (uVar37 ^ 0x2d8c72f6)) =
       *(int *)(lVar3 - (uVar44 ^ 0x5d6262b0)) << ((bVar2 ^ 0x82) & 0x1f);
  uVar37 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xb9162361)) =
       (*(ulonglong *)(lVar3 + -0xd38) ^ uVar42) << 0x19 ^ uVar37;
  uVar31 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar30 = CONCAT44(uVar9,DAT_1826707e8);
  *(ulonglong *)(lVar3 + -0x998) =
       (*(ulonglong *)(lVar3 + -0xd38) ^ uVar42) >> ((bVar2 ^ 0xa7) & 0x3f) ^ uVar31;
  puVar28 = (ulonglong *)(lVar3 - (uVar23 ^ 0x27d09fd));
  uVar23 = CONCAT44(DAT_18267081c,DAT_18267081c);
  uVar36 = CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar31 = (*puVar28 ^ uVar31 | uVar37 ^ *(ulonglong *)(lVar3 + -0x660)) ^ uVar23;
  *(ulonglong *)(lVar3 + -0x588) = uVar31;
  uVar9 = _DAT_1826708f8;
  uVar37 = (ulonglong)_DAT_1826708f8;
  *puVar1 = uVar36 ^ uVar31 ^ uVar23 ^ uVar35 ^ *(ulonglong *)(lVar3 + -0x890);
  uVar44 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xb99e25dd)) =
       (CONCAT44(uVar10,uVar12) ^ 0x1cecc58969751fec) +
       (uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) ^ uVar44;
  lVar3 = DAT_1826707a0;
  puVar46 = (ulonglong *)(DAT_1826707a0 + -0x9e0);
  *(ulonglong *)(DAT_1826707a0 + -0x410) = (CONCAT44(uVar12,uVar5) ^ 0x14a92f0dfb12) << 0x12;
  uVar31 = (uVar30 ^ 0x7293aa4e3ec22a61) + (uVar40 ^ *puVar46);
  *(ulonglong *)(lVar3 + -0xcf8) = uVar31 ^ CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar3 + -0x68) = CONCAT44(uVar7,uVar7) ^ 0x10104413407066e1 | 0x4ca7bbecbf0f881a;
  uVar30 = (uVar44 ^ *(ulonglong *)(lVar3 + -0xf0)) << ((bVar19 ^ 0xfe) & 0x3f);
  uVar40 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar3 + -0x658) = uVar30 ^ uVar27;
  uVar6 = DAT_182670af0;
  uVar23 = uVar31 + (uVar44 ^ *(ulonglong *)(lVar3 + -0xf0)) ^ uVar40;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar23;
  lVar3 = DAT_1826707a0;
  uVar31 = *(ulonglong *)(DAT_1826707a0 + -0x890);
  uVar29 = ((ulonglong)(uVar9 >> 0x1f) | uVar37 * 2) ^ *(ulonglong *)(DAT_1826707a0 + -0xf0) >> 0x1f
  ;
  uVar37 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar29 ^ CONCAT44(uVar6,uVar6);
  uVar29 = (uVar30 | uVar29) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x3b0) = uVar29;
  uVar23 = uVar38 ^ uVar29 ^ uVar37 ^ uVar40 ^ uVar23;
  uVar38 = uVar38 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xd88) = uVar23;
  uVar37 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar23 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(lVar3 + -0xac0) = (uVar35 ^ uVar31) + uVar38 ^ uVar37;
  *(ulonglong *)(lVar3 + -0xbb0) = uVar38 << (((byte)uVar20 ^ 0xf1) & 0x3f) ^ uVar23;
  uVar31 = CONCAT44(DAT_182670878,DAT_182670878);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xe52d5be0)) =
       uVar38 >> ((local_res20 ^ 0xd8) & 0x3f) ^ uVar31;
  uVar8 = DAT_182670918;
  uVar6 = DAT_1826707b8;
  uVar31 = (*(ulonglong *)(lVar3 + -0xa18) ^ uVar31 | *(ulonglong *)(lVar3 + -0xbb0) ^ uVar23) ^
           uVar41;
  *(ulonglong *)(lVar3 + -0xd38) = uVar31;
  uVar27 = CONCAT44(uVar8,uVar8);
  *puVar28 = uVar41 ^ *(ulonglong *)(lVar3 + -0xac0) ^ uVar27 ^ uVar31 ^ uVar37;
  uVar8 = DAT_1826707c4;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e0 ^ 0xb8d337bf)) =
       (CONCAT44(uVar26,uVar25) ^ 0x42c8065243132aca) +
       (CONCAT44(uVar6,DAT_1826707f4) ^ 0x4e7876b16a3ec207);
  uVar23 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x420129ed)) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0x6b8)) + (uVar36 ^ *puVar1) ^ uVar23;
  uVar31 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x74a0e7b0)) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xb99e2ce5)) ^ uVar36) << (((byte)uVar6 ^ 0x8c) & 0x3f) ^
       uVar31;
  uVar32 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d0 ^ 0xff77f64b)) ^ uVar36) >>
           (((byte)uVar8 ^ 0x14) & 0x3f);
  uVar30 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)(lVar3 + -0x410) = uVar32 ^ CONCAT44(DAT_1826708b8,DAT_1826708b8);
  uVar6 = DAT_182670a3c;
  uVar32 = (uVar32 | *(ulonglong *)(lVar3 + -0x630) ^ uVar31) ^ uVar30;
  *(ulonglong *)(lVar3 + -0x9e0) = uVar32;
  lVar3 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar6,uVar6);
  uVar32 = *(ulonglong *)(DAT_1826707a0 - (uVar17 ^ 0xab93196a)) ^ uVar32 ^ uVar35 ^ uVar30 ^ uVar23
  ;
  uVar40 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  puVar46 = (ulonglong *)(DAT_1826707a0 + -0xac0);
  *(ulonglong *)(DAT_1826707a0 + -0x68) = uVar32;
  uVar20 = DAT_1826707e8;
  uVar29 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xab93101a)) = (*puVar46 ^ uVar37) + (uVar32 ^ uVar35) ^ uVar40;
  uVar31 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar3 + -0x68) ^ uVar35) << (((byte)uVar12 ^ 0x3b) & 0x3f) ^ uVar31;
  lVar3 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x447e2a92)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x68) ^ uVar35) >> (((byte)uVar20 ^ 6) & 0x3f) ^ uVar32;
  uVar6 = DAT_182670800;
  *(ulonglong *)(lVar3 + -0x610) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0xf0) | *(ulonglong *)(lVar3 + -0x658) ^ uVar32) ^ uVar34;
  uVar32 = CONCAT44(DAT_1826707a8,uVar14);
  *(ulonglong *)(lVar3 + -0x3b0) =
       *(ulonglong *)(lVar3 - (uVar39 ^ 0x42012a75)) ^ CONCAT44(uVar6,uVar6) ^ uVar34 ^
       *(ulonglong *)(lVar3 + -0xcf8) ^ uVar40;
  uVar31 = *(ulonglong *)(lVar3 + -0x998) ^ uVar27;
  *(ulonglong *)(lVar3 + -0x890) =
       (uVar32 ^ 0xd01034cd07ee6a76) + (*(ulonglong *)(lVar3 + -0x68) ^ uVar35);
  uVar37 = (*(ulonglong *)(lVar3 - (uVar24 ^ 0x5c6e67d5)) ^ uVar23) + uVar31 ^ uVar44;
  uVar39 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar3 + -0xd88) = uVar37;
  uVar6 = DAT_182670a84;
  uVar32 = (*(ulonglong *)(lVar3 - (uVar18 ^ 0xb8d33847)) ^ uVar27) << ((local_d0 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar32 ^ uVar39;
  *(longlong *)(lVar3 + -0xa18) = 0x70333d10a87bcdb8 << (((byte)uVar8 ^ 5) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707d8;
  uVar31 = uVar31 >> (((byte)uVar12 ^ 0x2b) & 0x3f);
  uVar20 = DAT_1826707e0 ^ 0x73f77cfc;
  *(ulonglong *)(lVar3 + -0xd38) = uVar31 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_1826708e0;
  *(uint *)(lVar3 + -0xc04) = uVar20 + *(int *)(lVar3 - (uVar29 ^ 0x406c2814));
  uVar24 = CONCAT44(uVar6,uVar6);
  uVar39 = (ulonglong)DAT_182670b14;
  uVar32 = (uVar32 | uVar31) ^ uVar24;
  *(ulonglong *)(lVar3 + -0x660) = uVar32;
  *(byte *)(lVar3 + -0x521) =
       *(byte *)(uVar39 ^ *(ulonglong *)(lVar3 + -0x390)) ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar3 + -0x6b8) =
       CONCAT44(DAT_1826709dc,DAT_1826709dc) ^ uVar32 ^ uVar37 ^ uVar24 ^ uVar44;
  *puVar1 = *(ulonglong *)(lVar3 - (uVar23 ^ 0x407c25e0)) ^ uVar30 | uVar31;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar15;
  return;
}



############ FUN_ 180c8fef0 size=5283 ############

void FUN_180c8fef0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  byte bVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  byte *pbVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  byte bVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  byte *pbVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  byte bVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  byte bVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_res20;
  byte local_80;
  
  uVar12 = DAT_182670924;
  uVar10 = DAT_1826707e8;
  uVar7 = DAT_1826707c4;
  uVar19 = DAT_1826707bc;
  uVar5 = DAT_1826707b4;
  lVar2 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707e8;
  uVar36 = (ulonglong)DAT_1826707b4;
  uVar26 = (ulonglong)DAT_1826707c4;
  uVar40 = DAT_1826707e8 * DAT_1826707b4;
  uVar21 = DAT_1826707bc + DAT_1826707c4;
  uVar37 = *(uint *)(&DAT_18260f758 + DAT_182670b5c) ^ DAT_1826707e8;
  uVar18 = *(uint *)(&DAT_18260f760 + DAT_182670b5c) ^ DAT_1826707b4;
  uVar42 = (ulonglong)uVar21;
  uVar38 = CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar31 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar29 = CONCAT44(DAT_182670a98,DAT_182670a98);
  DAT_1826707c8 = uVar40;
  DAT_1826707d4 = uVar21;
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       uVar29 ^ uVar38 ^ uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0) ^
       *(ulonglong *)(DAT_1826707a0 + -0x1b8);
  bVar35 = (byte)uVar7;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x8895fb9f)) =
       (CONCAT44(uVar40,uVar19) ^ 0x5249cb93263d3442) << ((bVar35 ^ 0x83) & 0x3f);
  uVar9 = DAT_182670ae4;
  uVar22 = CONCAT44(DAT_18267091c,DAT_18267091c);
  uVar33 = CONCAT44(DAT_182670874,DAT_182670874);
  uVar27 = (CONCAT44(uVar5,uVar40) ^ 0xc768a53908484c2b) +
           (uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x658)) ^ uVar33;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar27;
  lVar2 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar41 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0xb50)) = uVar23 ^ uVar27 ^ uVar33;
  uVar9 = DAT_182670848;
  uVar11 = DAT_1826707f0;
  uVar33 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar2 + -0xa18) =
       (*(ulonglong *)(lVar2 - (uVar42 ^ 0xe30bc590)) ^ uVar38) +
       (CONCAT44(uVar40,uVar5) ^ 0xda74b99cdcc74058) ^ uVar33;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x8895f6a7)) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0xb50)) +
       (CONCAT44(uVar19,uVar40) ^ 0x184101c101e6d008) * 8 ^ uVar27;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 + -0xb08) ^ uVar27) =
       uVar33 ^ uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0xa18);
  lVar3 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(uVar7,uVar10) ^ 0x89e180ddff1d4299) + (uVar29 ^ *(ulonglong *)(lVar2 + -0x9e0)) ^
       uVar27;
  puVar28 = (ulonglong *)
            ((*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xe30bcad0)) ^ uVar41) +
            (CONCAT44(uVar5,uVar7) ^ 0xf87773c7cacabfbd) * 8);
  *(ulonglong *)(lVar3 + -0xd00) = (ulonglong)puVar28 ^ CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar1 = DAT_1826709bc;
  uVar8 = DAT_1826707d8;
  *puVar28 = *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xe273ae4d)) ^ uVar23 ^ uVar27;
  uVar9 = DAT_182670ac0;
  uVar33 = CONCAT44(uVar1,uVar1);
  *(ulonglong *)(lVar3 + -0xb70) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0x8895fbbf)) ^ CONCAT44(DAT_1826709f8,DAT_1826709f8)) +
       (CONCAT44(uVar8,uVar40) ^ 0xbdb5e9037ac6a6d6) ^ uVar33;
  lVar2 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 + -0x6c8) =
       (uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0xb50)) +
       (CONCAT44(uVar11,uVar19) ^ 0xe273ac6d184101c2) * 8 ^ uVar27;
  lVar3 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar40 ^ 0x1e6d6c1)) ^ uVar27) =
       *(ulonglong *)(lVar2 - (uVar42 ^ 0xe30bcaf0)) ^ uVar23 ^ uVar33;
  uVar13 = DAT_1826709a0;
  puVar28 = *(ulonglong **)(lVar3 - (uVar36 ^ 0xf8777117));
  *(ulonglong *)(lVar3 + -0x180) = (ulonglong)puVar28 ^ uVar29;
  uVar9 = DAT_18267081c;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xe30bc5a0)) = *puVar28 ^ uVar23 ^ uVar29;
  uVar14 = DAT_182670888;
  uVar1 = DAT_1826707ec;
  uVar27 = (ulonglong)DAT_1826707ec;
  uVar33 = (ulonglong)DAT_182670888;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xcacabb9f)) ^ uVar29) >>
       (((byte)uVar19 ^ 0xc1) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (CONCAT44(uVar10,uVar1) ^ 0xe2a18fe3574c3f86) << (((byte)uVar19 ^ 0xfc) & 0x3f);
  lVar3 = DAT_1826707a0;
  bVar24 = *(byte *)(lVar2 - (uVar27 ^ 0x37889b4e)) ^ (byte)uVar9 ^ (byte)DAT_18267082c;
  pbVar20 = (byte *)((CONCAT44(uVar5,uVar7) ^ 0xf87773c7cacabfbf) +
                    *(longlong *)(DAT_1826707a0 + -0x10));
  *(byte *)(DAT_1826707a0 + -0x6f9) = bVar24;
  bVar24 = bVar24 ^ DAT_1826709e0 ^ (byte)DAT_18267082c;
  *(ulonglong *)(lVar3 + -0x168) = (ulonglong)pbVar20 ^ uVar33;
  *pbVar20 = bVar24;
  uVar17 = DAT_182670afc;
  puVar28 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 + -0x2d0) +
            ((CONCAT44(uVar8,uVar19) ^ 0x184101c1184101c1) +
            (CONCAT44(uVar40,uVar10) ^ 0x1e6d0098895fdaf) * 0xc) * 8);
  uVar27 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(DAT_1826707a0 + -0x4e0) =
       (ulonglong)puVar28 ^ CONCAT44(DAT_1826708d0,DAT_1826708d0);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x579888fd)) =
       *puVar28 ^ uVar23 ^ CONCAT44(uVar17,uVar17);
  uVar25 = DAT_1826707e4;
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 + -0x890) ^ CONCAT44(uVar17,uVar17)) >> ((bVar35 ^ 0xb7) & 0x3f) ^
       uVar31;
  uVar27 = (ulonglong)DAT_182670960;
  *(byte *)(lVar2 - (uVar42 ^ 0xe30bc9b9)) =
       *(byte *)(lVar2 - ((ulonglong)uVar40 ^ 0x1e6d581)) ^ (byte)uVar12 ^ (byte)DAT_182670a08;
  pbVar20 = (byte *)((CONCAT44(uVar25,uVar5) ^ 0x186e2244f87773c6) + *(longlong *)(lVar2 + -0x10));
  bVar24 = *(byte *)(lVar2 + -0x839) ^ (byte)DAT_182670a08 ^ DAT_1826709e0;
  *(ulonglong *)(lVar2 + -0x708) = (ulonglong)pbVar20 ^ uVar27;
  *pbVar20 = bVar24;
  uVar4 = DAT_1826707b0;
  uVar33 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  puVar28 = (ulonglong *)
            ((CONCAT44(uVar11,uVar7) ^ 0xe273ac6dcacabfbf) * 0x60 + *(longlong *)(lVar2 + -0x2d0));
  *(ulonglong *)(lVar2 + -0x7b0) = (ulonglong)puVar28 ^ uVar33;
  uVar13 = DAT_18267095c;
  uVar9 = DAT_1826708b4;
  uVar12 = DAT_1826707f4;
  uVar6 = DAT_1826707b8;
  uVar1 = DAT_1826707ac;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x548) =
       (CONCAT44(DAT_1826707f4,uVar21) ^ 0xeb9649244ba7e315) -
       (CONCAT44(uVar4,DAT_1826707bc) ^ 0x89b236a045292423);
  lVar3 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x8895f967)) = *puVar28 ^ uVar23 ^ uVar27;
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x186e268c)) ^ uVar27) >>
       (((byte)DAT_1826707f0 ^ 0x7d) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  puVar34 = (ulonglong *)(lVar3 - (uVar26 ^ 0xcacab9df));
  local_res20 = (byte)uVar10;
  uVar27 = (ulonglong)DAT_1826708c0;
  *puVar34 = (CONCAT44(DAT_1826707c0,uVar5) ^ 0x9c13fbf5d2e82e9f) << ((local_res20 ^ 0x97) & 0x3f);
  pbVar20 = (byte *)((CONCAT44(uVar6,uVar12) ^ 0x85113e11f060c197) + *(longlong *)(lVar3 + -0x10));
  bVar39 = (byte)uVar13 ^ (byte)DAT_18267092c ^ *(byte *)(lVar3 + -0xd88);
  bVar24 = (byte)DAT_18267092c ^ DAT_1826709e0;
  *(ulonglong *)(lVar3 + -0x418) = (ulonglong)pbVar20 ^ uVar27;
  *(byte *)(lVar3 + -0x911) = bVar39;
  *pbVar20 = bVar24 ^ bVar39;
  *(undefined8 *)(lVar3 + -0x6b8) = 0xfde6af7edfd5fb3f;
  uVar9 = DAT_182670938;
  uVar6 = DAT_1826707ec;
  lVar2 = DAT_1826707a0;
  puVar28 = (ulonglong *)
            (*(longlong *)(lVar3 - ((ulonglong)uVar40 ^ 0x1e6d2d9)) +
            (CONCAT44(uVar11,uVar1) ^ 0xe273ac6dcacabfbf) * 8);
  *(ulonglong *)(lVar3 + -0x58) = (ulonglong)puVar28 ^ CONCAT44(DAT_182670af4,DAT_182670af4);
  uVar27 = *puVar28 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xac0) = uVar27 ^ CONCAT44(uVar9,uVar9);
  bVar24 = (byte)DAT_182670964;
  uVar25 = DAT_1826707d8 ^ 0xca691caa;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x3788900e)) =
       uVar27 >> (((byte)uVar6 ^ 0xe6) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  pbVar30 = (byte *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0xbfbfca3a));
  uVar27 = CONCAT44(uVar19,DAT_1826707e0);
  bVar39 = bVar24 ^ DAT_1826709e0;
  *(byte *)(lVar2 + -0x8b9) = (byte)uVar14 ^ *pbVar30 ^ bVar24;
  uVar9 = DAT_1826707dc;
  *(uint *)(lVar2 - (uVar42 ^ 0xe30bc300)) =
       uVar25 << ((byte)*(undefined4 *)(lVar2 + -0x68c) & 0x1f);
  pbVar20 = (byte *)((uVar27 ^ 0x184101c1bfbfcac9) + *(longlong *)(lVar2 + -0x10));
  *(ulonglong *)(lVar2 + -0xae8) = (ulonglong)pbVar20 ^ (ulonglong)DAT_182670a7c;
  uVar19 = DAT_1826707c8 ^ 0xb06725e1;
  *pbVar20 = bVar39 ^ *(byte *)(lVar2 + -0x8b9);
  uVar6 = DAT_1826707d0;
  *(uint *)(lVar2 + -0x398) = uVar19 + *(int *)(lVar2 + -0xc0c);
  uVar15 = DAT_1826708dc;
  uVar13 = DAT_182670844;
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670a44,DAT_182670a44);
  puVar28 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xf9f3cba)) +
            ((CONCAT44(uVar4,uVar7) ^ 0x1f7f77fccacabfbf) +
            (CONCAT44(uVar8,uVar9) ^ 0x184101c19d523fd2) * 0xc) * 8);
  uVar29 = CONCAT44(uVar11,DAT_1826707e4);
  *(ulonglong *)(DAT_1826707a0 + -0x5c8) = (ulonglong)puVar28 ^ uVar31;
  uVar27 = *puVar28 ^ uVar23;
  bVar24 = (byte)DAT_1826707a8;
  *(ulonglong *)(lVar2 + -0x438) = uVar27 ^ CONCAT44(uVar15,uVar15);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       uVar27 >> ((bVar24 ^ 0x9f) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  uVar7 = DAT_1826707d0;
  uVar19 = DAT_1826707cc;
  uVar6 = DAT_1826707c0;
  uVar27 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (uVar29 ^ 0x3153bdd2b066a9c6) >> ((*pbVar30 ^ (byte)uVar14) & 0x3f);
  pbVar20 = (byte *)((CONCAT44(uVar7,uVar6) ^ 0xf9f3e6a57988069) + *(longlong *)(lVar2 + -0x10));
  bVar24 = *(byte *)(lVar2 - (uVar27 ^ 0x7737e30)) ^ (byte)uVar13 ^ (byte)DAT_1826709a8;
  uVar27 = (ulonglong)DAT_182670a40;
  *(byte *)(lVar2 + -0xd2b) = bVar24;
  bVar24 = bVar24 ^ (byte)DAT_1826709a8 ^ DAT_1826709e0;
  *(ulonglong *)(lVar2 + -0x450) = (ulonglong)pbVar20 ^ uVar27;
  *pbVar20 = bVar24;
  uVar13 = DAT_1826708f4;
  uVar25 = DAT_1826707ec;
  lVar2 = DAT_1826707a0;
  puVar28 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 + -0x2d0) +
            ((CONCAT44(uVar4,DAT_1826707ec) ^ 0x1f7f77fc378890fe) +
            (CONCAT44(uVar19,uVar9) ^ 0x77377f89d523fd2) * 0xc) * 8);
  uVar29 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(DAT_1826707a0 + -0x240) = (ulonglong)puVar28 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x630) = *puVar28 ^ uVar23 ^ uVar29;
  uVar38 = (ulonglong)DAT_1826709bc;
  uVar27 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0xf87775f7)) ^ uVar29) >>
       (((byte)DAT_1826707b8 ^ 0x39) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  bVar24 = (byte)DAT_182670880;
  *(byte *)(lVar2 + -0x941) =
       *(byte *)(lVar2 - (uVar27 ^ 0xcacab9e7)) ^ (byte)uVar13 ^ (byte)DAT_182670880;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0xcacab94f)) =
       (CONCAT44(uVar9,uVar9) ^ 0xc50218d4fc17ef6) - (CONCAT44(uVar4,uVar7) ^ 0x4e84cadd4300c649);
  uVar7 = DAT_1826707e0;
  uVar29 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar2 + -0x390) = *(longlong *)(lVar2 + -0x10) + 5U ^ uVar38;
  lVar3 = DAT_1826707a0;
  bVar24 = bVar24 ^ DAT_1826709e0;
  uVar27 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xbfbfceda)) =
       (CONCAT44(uVar5,uVar25) ^ 0x2ed54947a2b28e53) << (((byte)uVar1 ^ 0xab) & 0x3f);
  uVar13 = DAT_1826707fc;
  uVar31 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar43 = CONCAT44(uVar11,uVar6) ^ 0xe273ac6d5798806d;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar27 ^ 0x186e21d4)) ^ uVar38) =
       bVar24 ^ *(byte *)(lVar2 + -0x941);
  uVar15 = DAT_182670ae0;
  puVar28 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar12,uVar40) ^ 0xf060c19501e6d009) + uVar43 * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xbe8) = (ulonglong)puVar28 ^ uVar31;
  uVar29 = *puVar28 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x400) = uVar29 ^ CONCAT44(uVar15,uVar15);
  lVar2 = DAT_1826707a0;
  bVar24 = (byte)DAT_182670aa0;
  uVar27 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) =
       uVar29 >> ((bVar35 ^ 0x8f) & 0x3f) ^ CONCAT44(DAT_182670aa0,DAT_182670aa0);
  uVar29 = (ulonglong)DAT_182670a14;
  *(byte *)(lVar2 - ((ulonglong)DAT_1826707bc ^ 0x18410098)) =
       *(byte *)(lVar2 - (uVar27 ^ 0x3788991e)) ^ bVar24 ^ (byte)DAT_18267096c;
  bVar24 = *(byte *)(lVar2 + -0x159) ^ (byte)DAT_18267096c ^ DAT_1826709e0;
  pbVar20 = (byte *)(*(longlong *)(lVar2 + -0x10) + 6);
  *(ulonglong *)(lVar2 + -0x5e0) = (ulonglong)pbVar20 ^ uVar29;
  *pbVar20 = bVar24;
  uVar12 = DAT_182670900;
  uVar4 = DAT_1826708e8;
  lVar3 = DAT_1826707a0;
  local_80 = (byte)uVar17;
  *(ulonglong *)(lVar2 + -0x7d8) =
       0x143bb27a95b72c35 >> ((*(byte *)(lVar2 - (uVar42 ^ 0xe30bc910)) ^ local_80) & 0x3f);
  *(ulonglong *)(lVar2 + -0x428) = uVar22 ^ (ulonglong)*(ulonglong **)(lVar2 + -0x2d0);
  uVar15 = DAT_1826709d0;
  *(ulonglong *)(lVar2 + -0x610) = CONCAT44(uVar4,uVar4) ^ **(ulonglong **)(lVar2 + -0x2d0) ^ uVar23
  ;
  *(ulonglong *)(CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar2 + -0xa58)) =
       CONCAT44(uVar21,uVar10) ^ 0x2196260aeb2b156a;
  bVar24 = (byte)DAT_1826708b8;
  uVar27 = (ulonglong)DAT_1826708fc;
  uVar22 = CONCAT44(uVar8,DAT_1826707f0);
  *(ulonglong *)(lVar3 + -0xc18) =
       (ulonglong)*(byte *)(lVar3 + -0x609) ^ (ulonglong)(uVar4 >> 0x18) ^ CONCAT44(uVar12,uVar12);
  bVar39 = (byte)uVar12 ^ *(byte *)(lVar3 + -0xc18);
  bVar35 = bVar39 ^ DAT_1826709e0;
  *(ulonglong *)(lVar3 + -0x458) =
       (uVar22 ^ 0x184101c1e273ac6a) + *(longlong *)(lVar3 + -0x10) ^ uVar27;
  uVar38 = (ulonglong)DAT_1826707d0;
  *(byte *)(lVar3 + -0x331) = bVar39 ^ bVar24;
  uVar8 = DAT_1826707e4;
  uVar42 = CONCAT44(uVar19,DAT_1826707e4);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0xf9f3a32)) ^ uVar27) = bVar35;
  *(ulonglong *)(lVar3 + -0x420) = uVar42 ^ 0xf1ffefefaff23ff5 | 0x90baee6ba4e22135;
  uVar6 = DAT_1826707b8;
  uVar4 = DAT_1826707b0;
  uVar22 = (ulonglong)DAT_1826707b0;
  uVar41 = (ulonglong)DAT_1826707b8;
  puVar28 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar10,DAT_1826707d8) ^ 0x8895fdaf184101c0) +
            (CONCAT44(uVar5,uVar9) ^ 0xf87773c79d523fd2) * 0xc) * 8);
  uVar27 = CONCAT44(uVar7,DAT_1826707b0);
  *(ulonglong *)(lVar3 + -0x370) = (ulonglong)puVar28 ^ CONCAT44(DAT_182670abc,DAT_182670abc);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0xd38) = 0x6bb8f8dd5ee8a476 - (uVar27 ^ 0xc54f1055bfeace23);
  bVar35 = DAT_1826709e0;
  uVar27 = *puVar28 ^ uVar23;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar27 ^ CONCAT44(DAT_182670af8,DAT_182670af8);
  bVar16 = (byte)DAT_182670aa4;
  bVar24 = (byte)DAT_1826707bc;
  *(ulonglong *)(lVar2 + -0x588) = uVar27 >> (((byte)uVar6 ^ 0x11) & 0x3f) ^ uVar33;
  bVar39 = (byte)DAT_182670a20;
  uVar27 = (ulonglong)DAT_1826707d8;
  *(byte *)(lVar2 + -0x861) = bVar16 ^ (byte)DAT_182670a20 ^ *(byte *)(lVar2 + -0x588);
  *(int *)(lVar2 - (uVar27 ^ 0x18410215)) = -0x419fede2 << ((bVar24 ^ 0xce) & 0x1f);
  uVar12 = DAT_1826707f8;
  pbVar20 = (byte *)(*(longlong *)(lVar2 - (uVar22 ^ 0x1f7f77ec)) + 8);
  *(ulonglong *)(lVar2 + -0xab8) = (ulonglong)pbVar20 ^ (ulonglong)DAT_18267087c;
  uVar9 = DAT_1826707f4;
  *pbVar20 = bVar39 ^ *(byte *)(lVar2 + -0x861) ^ bVar35;
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar27 = (ulonglong)DAT_1826709f8;
  *(ulonglong *)(lVar2 + -0x310) =
       *(longlong *)(lVar2 + -0x2d0) +
       ((CONCAT44(uVar1,uVar9) ^ 0xcacabfbff060c194) +
       (CONCAT44(uVar40,uVar4) ^ 0x1e6d0091f7f77fc) * 0xc) * 8 ^ uVar22;
  lVar3 = DAT_1826707a0;
  *(byte *)(lVar2 - (uVar41 ^ 0x851138d8)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xdd0) ^ uVar27) ^ (byte)DAT_182670a40;
  uVar9 = DAT_182670a80;
  uVar27 = (ulonglong)DAT_1826709ac;
  uVar1 = DAT_1826709ac >> 8;
  uVar29 = CONCAT44(DAT_1826709ac,DAT_1826709ac) ^
           *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar3 + -0x310)) ^ uVar23;
  *(ulonglong *)(lVar3 + -0x548) = uVar29;
  uVar22 = (ulonglong)DAT_182670988;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xf9f3aa2)) =
       (uVar27 << 0x18 | (ulonglong)uVar1) ^ uVar29 >> 8 ^ CONCAT44(uVar9,uVar9);
  *(byte *)(lVar3 - (uVar32 ^ 0x8895fece)) =
       (byte)uVar9 ^ *(byte *)(lVar3 + -0x4c8) ^ (byte)DAT_182670840;
  uVar1 = DAT_1826707a8;
  *(ulonglong *)(lVar3 + -0x9d0) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0xcacabfaf)) + 9U ^ uVar22;
  uVar9 = DAT_182670810;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c0 ^ 0x579889bd)) ^ uVar22) =
       *(byte *)(lVar3 - (uVar36 ^ 0xf87770a6)) ^ (byte)DAT_182670840 ^ bVar35;
  uVar4 = DAT_182670894;
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar27 = (ulonglong)DAT_182670894;
  *(ulonglong *)(lVar3 + -0x7b8) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_1826707cc ^ 0x7737528)) +
       ((uVar42 ^ 0x77377f8186e2245) + (CONCAT44(uVar1,uVar8) ^ 0xcacabfbf186e2244) * 0xc) * 8 ^
       uVar22;
  *puVar34 = *(ulonglong *)
              (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707ec ^ 0x37889746)) ^ uVar22) ^
             CONCAT44(uVar4,uVar4) ^ uVar23;
  *(ulonglong *)(lVar3 + -0xd88) =
       ((ulonglong)(uVar4 >> 0x10) | uVar27 << 0x10) ^ *(ulonglong *)(lVar3 + -0x660) >> 0x10 ^
       uVar31;
  uVar27 = (ulonglong)DAT_182670878;
  *(byte *)(lVar3 - (uVar26 ^ 0xcacab8dc)) =
       *(byte *)(lVar3 - (uVar41 ^ 0x85113399)) ^ (byte)uVar13 ^ (byte)DAT_182670a74;
  pbVar20 = (byte *)(*(longlong *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0xe273ac7d)) +
                    (CONCAT44(uVar40,uVar8) ^ 0x1e6d009186e224e));
  bVar24 = *(byte *)(lVar3 + -0x763) ^ (byte)DAT_182670a74;
  *(ulonglong *)(lVar3 + -0xb28) = (ulonglong)pbVar20 ^ uVar27;
  *pbVar20 = bVar24 ^ bVar35;
  *(ulonglong *)(lVar3 + -0xae0) =
       CONCAT44(DAT_1826709d8,DAT_1826709d8) ^ uVar43 * 0x60 + *(longlong *)(lVar3 + -0x2d0) + 8;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar18 * 4) = uVar37;
  return;
}



############ FUN_ 180cd5f70 size=5647 ############

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

void FUN_180cd5f70(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  byte bVar21;
  byte bVar22;
  uint uVar23;
  uint uVar24;
  byte *pbVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte bVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  
  uVar16 = DAT_1826707f0;
  uVar9 = DAT_1826707c4;
  uVar6 = DAT_1826707b0;
  uVar5 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707b0;
  uVar34 = (ulonglong)DAT_1826707c4;
  uVar29 = DAT_1826707a8 & DAT_1826707b0;
  uVar27 = DAT_1826707c4 & DAT_1826707f0;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar26 ^ 0x3aed8c0e) + (longlong)DAT_182670e40);
  uVar23 = *(uint *)(&DAT_18260f760 + DAT_182670e40) ^ DAT_1826707a8;
  uVar31 = (ulonglong)uVar27;
  uVar41 = CONCAT44(DAT_182670920,DAT_182670920);
  uVar38 = CONCAT44(DAT_182670a34,DAT_182670a34);
  DAT_1826707d4 = uVar29;
  DAT_1826707dc = uVar27;
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0x5c2c6f98)) =
       (CONCAT44(DAT_182670978,DAT_182670978) ^ *(ulonglong *)(DAT_1826707a0 + -0x220) |
       uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) ^ uVar38;
  *(uint *)(lVar3 - (uVar34 ^ 0xde3ce331)) = (uVar16 ^ 0xb7093561) + 0x3701dc9f;
  uVar33 = CONCAT44(DAT_182670a28,DAT_182670a28);
  uVar42 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar3 + -0xbb0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0x5c2c64a0)) ^
       CONCAT44(DAT_1826709c0,DAT_1826709c0)) - (uVar38 ^ *(ulonglong *)(lVar3 + -0x7d8)) ^ uVar33;
  uVar2 = DAT_182670974;
  uVar28 = (ulonglong)DAT_182670974;
  uVar35 = CONCAT44(DAT_182670974,DAT_182670974);
  uVar38 = *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x3aed8bde)) ^ uVar42 ^ uVar35 ^ uVar38 ^
           *(ulonglong *)(lVar3 + -0x400);
  uVar39 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar3 + -0x610) = uVar38;
  puVar51 = (ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x7c2d7e72));
  *puVar51 = ((ulonglong)(uVar2 >> 0x17) | uVar28 << 9) ^ uVar38 >> 0x17 ^ uVar39;
  lVar4 = DAT_1826707a0;
  uVar30 = (ulonglong)uVar5;
  uVar28 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0x5c2c6958)) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x610)) << (((byte)uVar27 ^ 0x69) & 0x3f) ^ uVar28;
  uVar2 = DAT_1826709c8;
  uVar17 = DAT_182670910;
  uVar38 = *(ulonglong *)(lVar4 + -0x400);
  uVar35 = (ulonglong)DAT_1826709c8;
  uVar49 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  uVar28 = uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0x630) |
           uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0x118);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar28 ^ uVar49;
  uVar18 = DAT_182670afc;
  uVar32 = CONCAT44(DAT_182670afc,DAT_182670afc);
  uVar40 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x856b543)) = (uVar42 ^ uVar38) - uVar28 ^ uVar32;
  *(ulonglong *)(lVar4 + -0x1b8) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xde3ce271)) ^ CONCAT44(uVar17,uVar17) ^ uVar33 ^
       uVar40 ^ *(ulonglong *)(lVar4 + -0x588);
  uVar17 = DAT_182670968;
  *(ulonglong *)(lVar4 + -0x558) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x856bee3)) ^ uVar40) >>
       (((byte)uVar29 ^ 0x28) & 0x3f);
  uVar12 = DAT_1826707d0;
  uVar38 = CONCAT44(uVar17,uVar17);
  uVar39 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x3aed8a66)) =
       (*(ulonglong *)(lVar4 + -0x1b8) >> 0x20 ^ uVar35) >> 8 ^ uVar38;
  uVar14 = DAT_1826707e0;
  lVar3 = DAT_1826707a0;
  uVar40 = uVar40 ^ *(ulonglong *)(lVar4 + -0x1b8);
  uVar35 = (ulonglong)DAT_1826707e0;
  uVar24 = uVar12 * DAT_1826707e0;
  uVar47 = (ulonglong)uVar24;
  uVar36 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  pbVar25 = (byte *)(DAT_1826707a0 + -0xa18);
  DAT_1826707ec = uVar24;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar40 << (((byte)uVar12 ^ 0x59) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xd8a952d8)) = uVar40 << ((*pbVar25 ^ (byte)uVar18) & 0x3f);
  uVar28 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x656d5a19)) =
       (*(ulonglong *)(lVar3 + -0x660) ^ uVar38 | uVar36 ^ *(ulonglong *)(lVar3 + -0x4c8)) ^ uVar28;
  uVar2 = DAT_1826708a0;
  lVar4 = DAT_1826707a0;
  uVar40 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  uVar38 = (ulonglong)DAT_1826708a0;
  *(ulonglong *)(lVar3 + -0x438) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0xbb0)) - (*(ulonglong *)(lVar3 + -0x658) ^ uVar28) ^
       uVar40;
  uVar42 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xd8a95910)) =
       *(ulonglong *)(lVar3 - (uVar47 ^ 0x13d5ddf8)) ^ *(ulonglong *)(lVar3 + -0x658) ^ uVar42 ^
       uVar28 ^ uVar32;
  uVar13 = DAT_1826707d8;
  uVar44 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar33 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xd8a95bc0)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x656d5ab1)) >> 0x20 ^ uVar38) >> 0x14 ^ uVar44;
  uVar38 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar4 + -0xb70) = (*(ulonglong *)(lVar4 + -0x6f0) ^ uVar42) << 0xc ^ uVar38;
  uVar11 = DAT_1826707cc;
  uVar28 = (ulonglong)DAT_1826707cc;
  uVar37 = DAT_1826707cc + uVar13;
  puVar48 = (ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xe9c1dbfc));
  DAT_1826707e8 = uVar37;
  *puVar48 = (CONCAT44(DAT_1826707cc,uVar13) ^ 0x4d4daa05af162276) -
             (CONCAT44(uVar37,DAT_1826707cc) ^ 0x89daa8982937aaa8);
  uVar17 = DAT_182670a80;
  lVar3 = DAT_1826707a0;
  uVar46 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar38 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar37 ^ 0xabab263a)) ^ uVar44 |
           *(ulonglong *)(DAT_1826707a0 + -0xb70) ^ uVar38;
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar38 ^ uVar46;
  uVar42 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xe9c1d424)) ^ uVar32) - uVar38 ^ uVar42;
  *(int *)(lVar3 - (uVar33 ^ 0xe9c1d408)) = -0x3b43464b << ((byte)uVar37 & 0x1f);
  uVar38 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar3 + -0x9c8) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0xc1e947e6)) ^ *(ulonglong *)(lVar3 + -0x998) ^ uVar38 ^
       uVar40 ^ uVar49;
  uVar32 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar3 + -0x220) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar37 ^ 0xabab2bd2)) ^ uVar38) >>
       (((byte)uVar11 ^ 0xe7) & 0x3f) ^ uVar32;
  *(uint *)(lVar3 - (uVar28 ^ 0xc1e94046)) =
       0xab9e7f1b >> ((byte)*(undefined4 *)(lVar3 + -0x2d4) & 0x1f);
  uVar17 = DAT_1826707fc;
  uVar38 = (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar38) << 7;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar38 ^ CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar44 = CONCAT44(uVar17,uVar17);
  uVar38 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x856bd7b)) ^ uVar32 | uVar38;
  uVar50 = CONCAT44(DAT_182670af4,DAT_182670af4);
  *(ulonglong *)(lVar3 + -0xce0) = uVar38 ^ uVar44;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xd8a95838)) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0x438)) - uVar38 ^ uVar50;
  uVar17 = DAT_182670a98;
  uVar38 = *(ulonglong *)(lVar3 + -0xf0);
  *(ulonglong *)(lVar3 + -0x610) =
       CONCAT44(uVar14,uVar37) ^ 0x557fba8bd7d515e0 | *(ulonglong *)(lVar3 + -0xce0) ^ uVar44;
  uVar32 = (ulonglong)DAT_182670a48;
  uVar49 = CONCAT44(DAT_182670a48,DAT_182670a48);
  uVar2 = DAT_182670a48 >> 0xe;
  uVar40 = *(ulonglong *)(lVar3 + -0xce0) ^ uVar38 ^ uVar49 ^ uVar44 ^ uVar42;
  *(ulonglong *)(lVar3 + -0x630) = uVar40;
  uVar19 = DAT_182670a68;
  uVar32 = (uVar32 << 0x12 | (ulonglong)uVar2) ^ *puVar51 >> 0xe;
  *(ulonglong *)(lVar3 + -0x118) = uVar32 ^ CONCAT44(uVar17,uVar17);
  uVar18 = DAT_1826709b0;
  uVar17 = DAT_182670844;
  lVar3 = DAT_1826707a0;
  uVar44 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar49 = (uVar49 ^ uVar40) << (((byte)uVar9 ^ 0xf3) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x400) = uVar49 ^ CONCAT44(uVar19,uVar19);
  uVar40 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar3 + -0x588) = (uVar49 | uVar32) ^ uVar44;
  *(ulonglong *)(lVar3 - (uVar47 ^ 0x13d5d2b8)) =
       (uVar38 ^ uVar42) - (CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0xac0)) ^ uVar40;
  uVar32 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar3 + -0x1b8) =
       (*(ulonglong *)(lVar3 + -0x558) ^ uVar40) -
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x656d59c9)) ^ uVar44) ^ uVar32;
  uVar40 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar3 + -0xd38) =
       (CONCAT44(uVar13,uVar9) ^ 0xddec9383214a6033) >> (((byte)uVar27 ^ 0x59) & 0x3f);
  uVar18 = DAT_182670a74;
  *(ulonglong *)(lVar3 + -0x660) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar37 ^ 0xabab2792)) ^ uVar44) -
       (CONCAT44(DAT_18267088c,DAT_18267088c) ^ *(ulonglong *)(lVar3 + -0xc18)) ^ uVar40;
  uVar17 = DAT_1826708a4;
  uVar19 = DAT_182670880;
  uVar44 = CONCAT44(uVar18,uVar18);
  uVar38 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar46 = *(ulonglong *)(lVar3 + -0x890) ^ *(ulonglong *)(lVar3 + -0x7d8) ^ uVar44 ^ uVar50 ^
           uVar46;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar46;
  uVar42 = (uVar46 ^ uVar44) >> (((byte)uVar6 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar42 ^ uVar38;
  uVar20 = DAT_182670a54;
  *(ulonglong *)(lVar3 + -0x658) =
       CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(*(ulonglong *)(lVar3 + -0xa58) ^ uVar36);
  uVar18 = DAT_1826708c0;
  uVar38 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar3 + -0x6f0) = (uVar44 ^ uVar46) << (((byte)uVar37 ^ 0x2a) & 0x3f) ^ uVar38;
  uVar17 = DAT_182670810;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xd8a95a20)) =
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0xde3cef31)) ^ uVar38 | uVar42) ^ uVar36;
  uVar38 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x7c2d7c62)) =
       (*(ulonglong *)(lVar3 + -0x7d8) ^ uVar50) -
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0x5c2c65c8)) ^ CONCAT44(uVar17,uVar17)) ^ uVar38;
  uVar18 = DAT_182670848;
  uVar17 = DAT_1826707f8;
  uVar7 = DAT_1826707bc;
  uVar46 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(lVar3 + -0xb70) =
       (*(ulonglong *)(lVar3 + -0x420) ^ uVar38) - (uVar36 ^ *puVar48) ^ uVar46;
  uVar49 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar3 + -0xa18) =
       (*(ulonglong *)(lVar3 + -0x5c0) ^ uVar36) -
       (CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0x68)) ^ uVar49;
  uVar17 = DAT_182670a64;
  uVar2 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar35 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (CONCAT44(uVar24,uVar24) ^ 0x1ddbd09bdb49a84) -
       (CONCAT44(DAT_1826707ac,uVar12) ^ 0xf165ac76f95d7933);
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar17,uVar17);
  uVar44 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar38 = CONCAT44(uVar6,DAT_1826707c0);
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x5c8) ^ uVar44) =
       uVar36 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0x1b8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xcc7d2ef4)) =
       (uVar38 ^ 0x4a6652a56c6c5153) >>
       ((*(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0xc4c78181)) ^ (byte)uVar19) & 0x3f);
  uVar7 = DAT_1826707b4;
  uVar32 = (ulonglong)DAT_1826707b4;
  uVar38 = (ulonglong)DAT_1826707b8;
  uVar42 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(lVar4 + -0x6c8) =
       (*(ulonglong *)(lVar4 + -0x5c8) ^ uVar44) +
       (CONCAT44(DAT_1826707b4,uVar29) ^ 0xdf7efdc108448c03) * 8 ^ uVar42;
  uVar18 = DAT_182670864;
  *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar28 ^ 0xc1e94516)) ^ uVar42) =
       *(ulonglong *)(lVar4 + -0x660) ^ uVar36 ^ uVar40;
  *(ulonglong *)(lVar4 + -0x220) =
       (CONCAT44(uVar13,uVar5) ^ 0xa70cd5ce3f69af66) + (CONCAT44(uVar13,uVar6) ^ 0xc8fdea9744955eb8)
  ;
  uVar17 = DAT_1826707f4;
  uVar15 = DAT_1826707e4;
  uVar10 = DAT_1826707c8;
  uVar42 = (ulonglong)DAT_1826707c8;
  uVar40 = CONCAT44(uVar9,DAT_1826707f4);
  puVar48 = (ulonglong *)
            ((*(ulonglong *)(lVar4 + -0x5c8) ^ uVar44) + (uVar40 ^ 0xde3ce9c1068ced38) * 8);
  *(ulonglong *)(lVar4 + -0x58) = (ulonglong)puVar48 ^ CONCAT44(uVar18,uVar18);
  *puVar48 = *(ulonglong *)(lVar4 - (uVar28 ^ 0xc1e948ae)) ^ uVar36 ^ uVar46;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0x9984589c)) =
       (*(ulonglong *)(lVar4 + -0x5c8) ^ uVar44) +
       (CONCAT44(uVar15,DAT_1826707b8) ^ 0xc4c78a310a9f0eff) * 8 ^ uVar41;
  *(ulonglong *)(*(ulonglong *)(lVar4 + -0x310) ^ uVar41) =
       *(ulonglong *)(lVar4 + -0xa18) ^ uVar36 ^ uVar49;
  puVar48 = (ulonglong *)
            (*(longlong *)(lVar4 - (uVar28 ^ 0xc1e948de)) +
            ((CONCAT44(uVar17,uVar12) ^ 0x68ced3a656d5c41) +
            (CONCAT44(DAT_1826707b8,uVar37) ^ 0xa9f0efcabab221a) * 4) * 8);
  *(ulonglong *)(lVar4 + -0x240) = (ulonglong)puVar48 ^ CONCAT44(DAT_1826708cc,DAT_1826708cc);
  uVar17 = DAT_182670948;
  uVar8 = DAT_1826707bc;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (CONCAT44(uVar14,DAT_1826707bc) ^ 0x10ddf033e1573cb6) -
       *(longlong *)(lVar4 - (uVar39 ^ 0x656d55d9));
  uVar28 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar3 + -0x438) = *puVar48 ^ uVar28 ^ uVar36;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0xc4c78e09)) ^ uVar28) >>
       (((byte)DAT_1826707b8 ^ 0xfc) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  uVar18 = DAT_1826709cc;
  uVar15 = _DAT_1826708c8;
  uVar45 = uVar2 & DAT_1826707a8;
  uVar28 = (ulonglong)_DAT_1826708c8;
  *(byte *)(lVar3 - (uVar32 ^ 0xdf7ef063)) =
       *(byte *)(lVar3 - (uVar26 ^ 0x3aed8a16)) ^ (byte)uVar17 ^ (byte)DAT_182670ab4;
  *(ulonglong *)(lVar3 + -0xce0) =
       (CONCAT44(uVar27,uVar29) ^ 0x8a33aca2132d815d) <<
       ((*(byte *)(lVar3 + -0x610) ^ (byte)uVar17) & 0x3f);
  pbVar25 = (byte *)((CONCAT44(uVar37,uVar5) ^ 0xabab221a0856bf5b) * 0x20 +
                     (CONCAT44(uVar10,uVar11) ^ 0x99845b8cc1e943de) + *(longlong *)(lVar3 + -0x30));
  bVar22 = *(byte *)(lVar3 + -0xda2) ^ (byte)DAT_182670adc ^ (byte)DAT_182670ab4;
  DAT_1826707b8 = uVar45;
  *(ulonglong *)(lVar3 + -0x4d0) = (ulonglong)pbVar25 ^ uVar28;
  *pbVar25 = bVar22;
  uVar17 = DAT_182670a8c;
  lVar4 = DAT_1826707a0;
  puVar48 = (ulonglong *)
            (*(longlong *)(lVar3 - (uVar38 ^ 0xa9f05fc)) +
            ((CONCAT44(uVar2,uVar13) ^ 0x3e16bc21e9c1de3c) +
            (CONCAT44(uVar16,uVar8) ^ 0x7c2d7842cc7d273c) * 4) * 8);
  *(ulonglong *)(lVar3 + -0x518) = (ulonglong)puVar48 ^ CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar28 = CONCAT44(uVar17,uVar17);
  uVar26 = *puVar48 ^ uVar28 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x630) = uVar26;
  uVar38 = *(ulonglong *)(lVar4 + -0x630);
  *(ulonglong *)(lVar3 + -0x118) = (uVar28 ^ uVar26) << (((byte)uVar9 ^ 0xd5) & 0x3f);
  uVar26 = (uVar28 ^ uVar38) >> (((byte)uVar2 ^ 0x29) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 + -0x400) = uVar26;
  lVar3 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_18267096c;
  *(byte *)(lVar4 + -0xa36) = (byte)uVar18 ^ (byte)uVar26 ^ (byte)DAT_182670884;
  bVar21 = (byte)DAT_182670adc;
  uVar9 = DAT_18267091c;
  uVar28 = (ulonglong)DAT_18267091c;
  pbVar25 = (byte *)(*(longlong *)(lVar4 + -0x30) + 1 +
                    (CONCAT44(uVar45,uVar5) ^ 0x816bc010856bf5b) * 0x20);
  *(ulonglong *)(lVar4 + -0xac0) =
       (*(ulonglong *)(lVar4 + -0xa18) ^ uVar49) << (((byte)uVar45 ^ 1) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc90) = (ulonglong)pbVar25 ^ uVar38;
  uVar26 = CONCAT44(uVar15,uVar15);
  uVar38 = CONCAT44(uVar5,uVar45) ^ 0x856bf5b0816bc01;
  *pbVar25 = *(byte *)(lVar4 - (uVar35 ^ 0x3e16b617)) ^ (byte)DAT_182670884 ^ bVar21;
  *(ulonglong *)(lVar3 + -0xd00) =
       *(longlong *)(lVar3 - (uVar35 ^ 0x3e16b721)) + uVar38 * 0x20 ^ uVar26;
  uVar17 = DAT_182670a88;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x856bfab)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar35 ^ 0x3e16b121)) ^ uVar26) ^
       CONCAT44(uVar9,uVar9) ^ uVar36;
  lVar3 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826709f4;
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       ((ulonglong)(uVar9 >> 0x10) | uVar28 << 0x10) ^ *(ulonglong *)(DAT_1826707a0 + -0xf0) >> 0x10
       ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0xd38) =
       (CONCAT44(uVar5,uVar45) ^ 0x374cb3adb24b9923) >> (((byte)uVar2 ^ 9) & 0x3f);
  *(byte *)(lVar3 + -0xa73) =
       *(byte *)(lVar3 - (uVar30 ^ 0x856ba03)) ^ (byte)uVar17 ^ (byte)DAT_182670980;
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar45,uVar2) ^ 0x1fbe68f367e85e16) + *(longlong *)(lVar3 + -0x220);
  *(ulonglong *)(lVar3 + -0x28) =
       (CONCAT44(uVar14,uVar45) ^ 0xd8a95fe00816bc03) +
       (CONCAT44(uVar5,uVar2) ^ 0x856bf5b3e16bc21) * 0x20 + *(longlong *)(lVar3 + -0x30) ^ uVar26;
  uVar5 = DAT_1826707c8;
  uVar28 = CONCAT44(DAT_182670984,DAT_182670984);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0x816bc29)) ^ uVar26) =
       *(byte *)(lVar3 - (uVar30 ^ 0x856b528)) ^ (byte)DAT_182670980 ^ bVar21;
  uVar18 = DAT_1826709f0;
  puVar48 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb00) +
            (uVar38 + (CONCAT44(uVar2,uVar5) ^ 0x3e16bc2199845b8c) * 4) * 8);
  *(ulonglong *)(lVar3 + -0x428) = (ulonglong)puVar48 ^ uVar28;
  uVar17 = DAT_18267084c;
  uVar38 = CONCAT44(uVar18,uVar18);
  uVar26 = (ulonglong)DAT_182670aac;
  *(ulonglong *)(lVar3 + -0x588) = *puVar48 ^ uVar38 ^ uVar36;
  bVar22 = (byte)DAT_182670900;
  lVar4 = DAT_1826707a0;
  bVar43 = (byte)uVar17 ^ (byte)DAT_182670900;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x5c2c60d0)) =
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0xde3cec49)) ^ uVar38) >> (((byte)uVar12 ^ 0x59) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  *(byte *)(lVar4 + -0x1b9) = bVar43 ^ *(byte *)(lVar4 + -0x890);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x5c2c6998)) =
       *(longlong *)(lVar4 + -0x30) + 3 + (uVar40 ^ 0xde3ce9c1068ced3a) * 0x20 ^ uVar26;
  uVar8 = DAT_182670840;
  uVar38 = (ulonglong)DAT_182670840;
  uVar28 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar30 ^ 0x856be83)) ^ uVar26) =
       bVar22 ^ *(byte *)(lVar4 + -0x1b9) ^ bVar21;
  uVar17 = DAT_18267095c;
  lVar3 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar8,uVar8);
  puVar48 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 + -0xb00) +
            ((CONCAT44(uVar2,uVar24) ^ 0x3e16bc2113d5d7e0) +
            (CONCAT44(uVar10,uVar37) ^ 0x99845b8cabab221a) * 4) * 8);
  *(ulonglong *)(DAT_1826707a0 + -0xb50) = (ulonglong)puVar48 ^ uVar28;
  uVar36 = *puVar48 ^ uVar35 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x658) = uVar36;
  uVar26 = (ulonglong)DAT_182670850;
  *(ulonglong *)(lVar3 + -0x4c8) = CONCAT44(uVar17,uVar17) ^ uVar36 >> 0x20 ^ uVar38;
  *(ulonglong *)(lVar3 + -0x6f0) = (CONCAT44(uVar7,uVar5) ^ 0x7d45bbe6ac1dc660) + (uVar35 ^ uVar36);
  uVar2 = DAT_1826707bc;
  *(byte *)(lVar3 - (uVar31 ^ 0x5c2c6961)) =
       *(byte *)(lVar3 - (uVar33 ^ 0xe9c1daf4)) ^ (byte)uVar17 ^ (byte)DAT_1826708d0;
  bVar22 = *(byte *)(lVar3 + -0x121) ^ (byte)DAT_1826708d0;
  *(ulonglong *)(lVar3 + -0x6a8) =
       *(longlong *)(lVar3 - (uVar47 ^ 0x13d5d7d0)) +
       (CONCAT44(uVar2,uVar12) ^ 0xcc7d273c656d5c41) * 0x20 +
       (CONCAT44(uVar6,uVar16) ^ 0x3aed8c067c2d7846) ^ uVar26;
  uVar38 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0x7d8) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0xf0)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c0 ^ 0x3e16ba79)) ^ uVar35);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0xc4c78c99)) ^ uVar26) = bVar22 ^ bVar21;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar23 * 4) = uVar1 ^ uVar29;
  return;
}



############ FUN_ 180d1a050 size=4212 ############

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

void FUN_180d1a050(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint *puVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  byte *pbVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint *puVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint *puVar35;
  uint *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  uint *puVar45;
  
  uVar34 = DAT_1826707f0;
  uVar17 = DAT_1826707dc;
  uVar23 = DAT_1826707c0;
  uVar12 = DAT_1826707b4;
  uVar18 = DAT_1826707a8;
  lVar5 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707b4;
  uVar42 = (ulonglong)DAT_1826707c0;
  uVar28 = (ulonglong)DAT_1826707dc;
  uVar39 = DAT_1826707b4 - DAT_1826707f0;
  uVar40 = DAT_1826707c0 << 0x10 | DAT_1826707c0 >> 0x10;
  uVar31 = DAT_1826707a8 - DAT_1826707dc;
  uVar44 = (DAT_1826707b8 << 0x10 | DAT_1826707b8 & 0xff00) << 8 | DAT_1826707b8 >> 8 & 0xff00 |
           DAT_1826707b8 >> 0x18;
  uVar3 = *(uint *)(&DAT_18260f758 + DAT_182670c24);
  uVar10 = *(uint *)(&DAT_18260f760 + DAT_182670c24) ^ DAT_1826707b8;
  uVar26 = (ulonglong)uVar31;
  DAT_1826707b0 = uVar39;
  DAT_1826707d8 = uVar40;
  DAT_1826707e0 = uVar44;
  DAT_1826707e8 = uVar31;
  *(uint *)(DAT_1826707a0 + -0x280) =
       (*(uint *)(DAT_1826707a0 + -0xa34) ^ DAT_182670904) + (DAT_1826707dc ^ 0x4b664963) ^
       DAT_182670a70;
  uVar7 = DAT_182670884;
  uVar13 = (ulonglong)uVar40;
  uVar32 = DAT_182670884 ^ *(uint *)(lVar5 + -0x598);
  bVar4 = (byte)DAT_1826707a8;
  *(ulonglong *)(lVar5 + -0x68) =
       (CONCAT44(uVar18,uVar31) ^ 0xe73833023c2fcf06) << (((byte)uVar12 ^ 0x7d) & 0x3f);
  uVar21 = DAT_182670a54;
  *(uint *)(lVar5 - ((ulonglong)uVar23 ^ 0x40046db5)) =
       uVar32 << ((bVar4 ^ 0xdb) & 0x1f) ^ DAT_182670af0;
  *(uint *)(lVar5 + -0x43c) =
       (*(uint *)(lVar5 + -0x280) ^ DAT_182670a70) - (*(uint *)(lVar5 + -0xc34) ^ DAT_182670af0) ^
       DAT_182670848;
  puVar35 = (uint *)(lVar5 - (uVar42 ^ 0x400464c1));
  uVar43 = (ulonglong)uVar39;
  puVar36 = (uint *)(lVar5 + -0xc0c);
  *puVar35 = (*(uint *)(lVar5 - ((ulonglong)uVar39 ^ 0x60b47f05)) ^ DAT_182670848) *
             (*(uint *)(lVar5 + -0x3d4) ^ DAT_182670a50) ^ uVar21;
  uVar32 = DAT_1826708fc;
  lVar5 = DAT_1826707a0;
  *puVar36 = (*(uint *)(DAT_1826707a0 - (uVar26 ^ 0x3f7dc312)) ^ uVar7) * (uVar34 ^ 0xf49db51d) ^
             DAT_1826708fc;
  uVar19 = _DAT_18267097c;
  puVar1 = (uint *)(lVar5 + -0xc04);
  puVar20 = (uint *)(lVar5 - ((ulonglong)uVar44 ^ 0x2940ac2e));
  puVar2 = (uint *)(lVar5 + -0x540);
  uVar32 = (uVar32 ^ *puVar20) + (uVar21 ^ *puVar2);
  bVar4 = (byte)DAT_1826707a8;
  *puVar1 = uVar32 ^ _DAT_18267097c;
  *(uint *)(lVar5 + -0x398) = uVar32 << ((bVar4 ^ 199) & 0x1f) ^ DAT_18267088c;
  uVar37 = *(ulonglong *)(lVar5 + -0x68);
  *(ulonglong *)(lVar5 + -0x1b8) =
       uVar37 << ((byte)*(undefined8 *)(lVar5 - ((ulonglong)uVar34 ^ 0xf49db3fa)) & 0x3f);
  *(uint *)(lVar5 + -0x814) = (*puVar1 ^ uVar19) >> 0x13 ^ DAT_18267091c;
  uVar19 = DAT_1826707b8;
  uVar27 = (ulonglong)DAT_1826707b8;
  uVar29 = CONCAT44(DAT_1826707b8,uVar17);
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       uVar29 ^ 0x339ad00ffa7e6130 | *(ulonglong *)(DAT_1826707a0 + -0xac0);
  lVar5 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x68c) =
       (*(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707a8 ^ 0xbfbfc952)) ^ DAT_18267088c |
       *(uint *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0x22a0483d)) ^ DAT_18267091c) ^ DAT_182670b04;
  uVar32 = DAT_182670874;
  uVar21 = (*(uint *)(lVar5 - ((ulonglong)uVar39 ^ 0x60b478ed)) ^ DAT_182670a50) +
           (*(uint *)(lVar5 + -0xb54) ^ DAT_182670848) ^ DAT_182670874;
  *(uint *)(lVar5 + -0x7e4) = uVar21;
  uVar11 = DAT_1826709e4;
  *(uint *)(lVar5 + -0x42c) = uVar32 ^ uVar7 ^ uVar21;
  *(ulonglong *)(lVar5 + -0x410) = uVar37 >> ((byte)*(undefined8 *)(lVar5 + -0x9c8) & 0x3f);
  *(uint *)(lVar5 - ((ulonglong)DAT_1826707a8 ^ 0xbfbfc326)) =
       *(uint *)(lVar5 - (uVar26 ^ 0x3f7dc006)) ^ DAT_182670a30 ^ DAT_182670b04;
  uVar32 = *(uint *)(lVar5 + -0x9ec) ^ DAT_182670ad0 ^ DAT_182670a30;
  uVar41 = (ulonglong)DAT_182670ad8;
  *(uint *)(lVar5 + -0x14) = *(uint *)(lVar5 + -0x42c) ^ uVar11 ^ uVar7;
  *(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0xf49db7de)) = uVar32;
  bVar4 = (byte)DAT_18267089c;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar34 ^ 0xf49db77a)) =
       (CONCAT44(uVar40,uVar12) ^ 0x6181400455523041) + *(longlong *)(lVar5 + -0x30) ^ uVar41;
  uVar22 = DAT_182670a44;
  bVar14 = *(byte *)(uVar41 ^ *(ulonglong *)(lVar5 + -0x270)) ^ bVar4 ^ (byte)DAT_182670adc;
  *(byte *)(lVar5 + -0x619) = bVar14;
  uVar32 = (uint)(bVar14 ^ bVar4);
  *(uint *)(lVar5 + -0xa34) = uVar32 ^ uVar22;
  uVar32 = uVar32 << 0x11 ^ DAT_1826708b4;
  *(uint *)(lVar5 + -0x280) =
       (*(uint *)(lVar5 - (uVar24 ^ 0x55523297)) ^ DAT_182670ad0) + (uVar23 ^ 0x8b202ca2) ^
       DAT_18267086c;
  *(uint *)(lVar5 - (uVar43 ^ 0x60b4770d)) = uVar32;
  uVar21 = DAT_182670a34;
  uVar7 = DAT_1826708e0;
  *(uint *)(lVar5 + -0x43c) =
       (*(uint *)(lVar5 - (uVar28 ^ 0x804206c0)) ^ DAT_18267086c) -
       (*(uint *)(lVar5 + -0xc34) ^ DAT_1826708b4) ^ DAT_182670a4c;
  uVar37 = *(ulonglong *)(lVar5 - (uVar28 ^ 0x80420218)) |
           *(ulonglong *)(lVar5 - (uVar13 ^ 0x618146bc));
  *(ulonglong *)(lVar5 + -0x588) = uVar37;
  *(uint *)(lVar5 + -0x598) =
       (*(uint *)(lVar5 - ((ulonglong)uVar44 ^ 0x2940a41e)) ^ DAT_182670a4c) *
       (*(uint *)(lVar5 + -0x14) ^ uVar11) ^ DAT_182670814;
  *(ulonglong *)(lVar5 + -0xa18) = CONCAT44(uVar23,uVar19) ^ uVar37 ^ 0x546570ec358f8ce6;
  *puVar2 = (*(uint *)(lVar5 - ((ulonglong)uVar44 ^ 0x2940aa16)) ^ uVar22) * (uVar44 ^ 0x2940a020) ^
            DAT_182670968;
  puVar45 = (uint *)(lVar5 - (uVar26 ^ 0x3f7dc3ca));
  *(uint *)(lVar5 - (uVar43 ^ 0x60b47735)) =
       (*(uint *)(lVar5 - ((ulonglong)DAT_1826707a8 ^ 0xbfbfcf52)) ^ DAT_182670814) +
       (*puVar45 ^ DAT_182670968) ^ uVar21;
  uVar8 = DAT_18267090c;
  uVar38 = (ulonglong)DAT_1826707f8;
  *(uint *)(lVar5 - (uVar27 ^ 0x22a04c2d)) =
       (uVar21 ^ *puVar36) << (((byte)uVar34 ^ 7) & 0x1f) ^ uVar7;
  uVar33 = DAT_182670ab4;
  uVar32 = *puVar1;
  uVar15 = (*(uint *)(lVar5 - (uVar24 ^ 0x55523c4f)) ^ uVar21) >> 0x13 ^ DAT_1826709cc;
  *(uint *)(lVar5 + -0x398) = uVar15;
  uVar15 = uVar15 ^ DAT_1826709cc;
  *(ulonglong *)(lVar5 + -0x890) = uVar29 ^ 0x823c53170061a87a | *(ulonglong *)(lVar5 + -0xcf8);
  uVar21 = DAT_1826708e4;
  uVar16 = DAT_1826707c0 ^ 0xb7c01089;
  *(uint *)(lVar5 - (uVar43 ^ 0x60b4732d)) = (uVar32 ^ uVar7 | uVar15) ^ DAT_182670800;
  *(uint *)(lVar5 + -0x3d4) = uVar16 + (uVar31 ^ 0xf4598ba9);
  bVar4 = (byte)DAT_182670adc;
  *(uint *)(lVar5 + -0x7e4) =
       (*(uint *)(lVar5 + -0xb54) ^ DAT_182670848) + (*(uint *)(lVar5 + -0x14) ^ uVar11) ^ uVar33;
  uVar11 = DAT_182670928;
  uVar32 = DAT_1826707b8 ^ 0x75e847ff;
  *(byte *)(lVar5 - ((ulonglong)DAT_1826707e0 ^ 0x2940ac17)) =
       *(byte *)(uVar41 ^ *(ulonglong *)(lVar5 + -0x270)) ^ bVar4;
  uVar33 = uVar33 ^ uVar7 ^ *(uint *)(lVar5 + -0x7e4);
  *(uint *)(lVar5 + -0x68c) = uVar33;
  *(uint *)(lVar5 + -0x42c) = uVar32 | uVar40 ^ 0xd0557213;
  lVar6 = DAT_1826707a0;
  uVar32 = *(uint *)(lVar5 + -0x814) ^ uVar8 ^ DAT_182670800;
  *(uint *)(DAT_1826707a0 + -0x9ec) = uVar32;
  uVar15 = uVar32 ^ uVar11 ^ uVar8;
  *(uint *)(lVar6 + -0x2d4) = uVar33 ^ uVar21 ^ uVar7;
  uVar32 = DAT_1826707a8;
  *(uint *)(lVar6 + -0x280) = uVar15;
  lVar5 = DAT_1826707a0;
  pbVar25 = (byte *)(*(longlong *)(lVar6 - ((ulonglong)uVar34 ^ 0xf49db53a)) +
                    (CONCAT44(uVar12,uVar32) ^ 0x55523043bfbfcac7));
  uVar37 = *(ulonglong *)(DAT_1826707a0 + -0x248);
  *(ulonglong *)(DAT_1826707a0 + -0xdb8) = (ulonglong)pbVar25 ^ uVar38;
  uVar32 = DAT_182670ab0;
  *(byte *)(lVar5 + -0x619) = *pbVar25 ^ (byte)uVar22 ^ bVar4;
  lVar6 = DAT_1826707a0;
  *(byte *)(lVar5 + -0xc35) = *(byte *)(uVar37 ^ DAT_182670850) ^ bVar4;
  uVar33 = (uint)*(byte *)(lVar5 + -0x619) ^ uVar22 & 0xff ^ DAT_182670924;
  *(uint *)(lVar5 + -0xc34) = uVar33;
  uVar33 = uVar33 ^ DAT_182670924;
  uVar15 = (uVar11 ^ uVar15) + (uVar40 ^ 0xaaa50d27);
  uVar22 = uVar33 << (((byte)uVar34 ^ 0x1b) & 0x1f);
  *(uint *)(lVar5 + -0x43c) = uVar15 ^ uVar32;
  uVar11 = DAT_182670a88;
  uVar32 = DAT_182670a38;
  *(uint *)(lVar6 + -0xa34) = uVar22 ^ DAT_182670a88;
  uVar22 = uVar15 - uVar22 ^ DAT_182670960;
  *(ulonglong *)(lVar6 + -0x660) = CONCAT44(uVar18,uVar17) ^ 0xffeeadf03ff3ded7 | 0xb7ee24b00ce2d6c2
  ;
  *(uint *)(lVar6 + -0x598) = uVar22;
  uVar22 = uVar22 ^ DAT_182670960;
  uVar37 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar6 + -0x2b0) =
       *(ulonglong *)(lVar6 - (uVar28 ^ 0x80420ff0)) >>
       ((byte)*(undefined8 *)(lVar6 + -0x420) & 0x3f);
  uVar17 = uVar33 * 0xd ^ DAT_182670810;
  uVar22 = (*(uint *)(lVar6 - (uVar37 ^ 0x2940a2f6)) ^ uVar21) * uVar22;
  *puVar36 = uVar17;
  uVar17 = uVar17 ^ DAT_182670810;
  *puVar2 = uVar22 ^ uVar32;
  uVar22 = uVar22 + uVar17;
  bVar4 = (byte)(uVar23 >> 0x10);
  *puVar1 = uVar22 ^ uVar11;
  uVar17 = uVar22 << ((bVar4 ^ 9) & 0x1f) ^ DAT_182670a5c;
  bVar14 = (byte)DAT_1826707c0;
  *(uint *)(lVar6 + -0x398) = uVar17;
  uVar17 = uVar17 ^ DAT_182670a5c;
  uVar32 = (*(uint *)(lVar6 - (uVar13 ^ 0x61814c00)) ^ uVar11) >> ((bVar14 ^ 0x92) & 0x1f) ^
           DAT_1826709e8;
  uVar37 = (ulonglong)DAT_1826707a8;
  *(uint *)(lVar6 + -0x3d4) = uVar32;
  uVar32 = (uVar17 | uVar32 ^ DAT_1826709e8) ^ DAT_182670a10;
  *(ulonglong *)(lVar6 + -0xf0) =
       *(ulonglong *)(lVar6 - (uVar37 ^ 0xbfbfc25a)) >>
       ((byte)*(undefined8 *)(lVar6 + -0x9e0) & 0x3f);
  *(uint *)(lVar6 + -0x14) = uVar32;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar6 - (uVar24 ^ 0x55523ca3)) =
       CONCAT44(uVar31,uVar34) ^ 0x4f117e0ae06bed16 | *(ulonglong *)(lVar6 + -0xb70);
  lVar6 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707b8;
  puVar30 = (uint *)(lVar5 - ((ulonglong)DAT_1826707b8 ^ 0x22a047cd));
  *puVar30 = (*(uint *)(lVar5 + -0x2d4) ^ uVar21) +
             (*(uint *)(DAT_1826707a0 + -0xb54) ^ DAT_182670848) ^ DAT_182670894;
  *(longlong *)(lVar6 + -0x3b0) = *(longlong *)(lVar6 - (uVar42 ^ 0x40046171)) << 0x21;
  *(uint *)(lVar6 + -0x42c) =
       *(uint *)(lVar6 - (uVar26 ^ 0x3f7dc16e)) ^ DAT_1826708d8 ^ DAT_182670894;
  uVar21 = DAT_182670964;
  uVar17 = DAT_182670900;
  bVar14 = (byte)DAT_1826708a0;
  uVar37 = CONCAT44(uVar18,DAT_1826707e0);
  *(uint *)(lVar6 - ((ulonglong)DAT_1826707e0 ^ 0x2940a836)) =
       *(uint *)(lVar6 - (uVar42 ^ 0x40046195)) ^ DAT_182670aac ^ DAT_182670a10;
  *(uint *)(lVar6 - (uVar24 ^ 0x555236cf)) = *(uint *)(lVar6 + -0x42c) ^ uVar21 ^ DAT_1826708d8;
  *(uint *)(lVar6 - (uVar43 ^ 0x60b472d5)) =
       *(uint *)(lVar6 - (uVar13 ^ 0x61814810)) ^ DAT_1826709d4 ^ DAT_182670aac;
  uVar18 = DAT_1826709dc;
  pbVar25 = (byte *)(*(longlong *)(lVar6 - (uVar28 ^ 0x80420470)) + (uVar37 ^ 0xbfbfcaca2940a03a));
  *(ulonglong *)(lVar6 + -0x270) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182670a28;
  bVar9 = *pbVar25 ^ bVar14 ^ (byte)DAT_182670adc;
  uVar22 = (uint)(bVar14 ^ bVar9);
  uVar11 = *(uint *)(lVar6 + -0x9ec) ^ DAT_1826709d4;
  *(byte *)(lVar6 + -0xc35) = bVar9;
  uVar32 = DAT_1826707b0;
  *(uint *)(lVar6 + -0x280) = uVar22 ^ uVar18;
  *(uint *)(lVar6 + -0x43c) = uVar11 + (uVar32 ^ 0xab90361a) ^ DAT_182670844;
  bVar14 = (byte)DAT_1826707dc;
  *(uint *)(lVar6 - (uVar27 ^ 0x22a04a1d)) = uVar22 << ((bVar14 ^ 0x51) & 0x1f) ^ DAT_18267091c;
  *(uint *)(lVar6 - ((ulonglong)uVar34 ^ 0xf49db092)) =
       (*(uint *)(lVar6 + -0x43c) ^ DAT_182670844) - (*(uint *)(lVar6 + -0xa34) ^ DAT_18267091c) ^
       uVar17;
  uVar32 = DAT_182670890;
  uVar18 = (uVar18 ^ *(uint *)(lVar6 + -0x280)) * 0x18 ^ DAT_182670a20;
  *(uint *)(lVar6 + -0xc34) =
       (uVar17 ^ *(uint *)(lVar6 + -0x598)) * (*(uint *)(lVar6 + -0x68c) ^ uVar21) ^ uVar8;
  *puVar45 = uVar18;
  *puVar20 = (*puVar35 ^ DAT_182670a20) + (*(uint *)(lVar6 + -0xc34) ^ uVar8) ^ uVar32;
  *(ulonglong *)(lVar6 + -0x5c0) =
       CONCAT44(uVar31,uVar39) ^ 0x6410034e31453ca7 | *(ulonglong *)(lVar6 + -0x588);
  uVar18 = DAT_1826707c8;
  uVar13 = (ulonglong)DAT_1826707c8;
  *puVar1 = (*(uint *)(lVar6 - (uVar42 ^ 0x40046d8d)) ^ uVar32) << ((bVar14 ^ 0x4d) & 0x1f) ^
            DAT_182670aa0;
  uVar17 = *(uint *)(lVar6 + -0xb54) ^ DAT_182670848;
  uVar32 = (*(uint *)(lVar6 - (uVar13 ^ 0xa1cf8945)) ^ uVar32) >> (((byte)uVar31 ^ 0x99) & 0x1f) ^
           DAT_18267080c;
  *(uint *)(lVar6 + -0x398) = uVar32;
  *(uint *)(lVar6 + -0x3d4) =
       (*(uint *)(lVar6 - (uVar24 ^ 0x55523c47)) ^ DAT_182670aa0 | uVar32 ^ DAT_18267080c) ^
       DAT_182670a1c;
  uVar32 = uVar17 + (*(uint *)(lVar6 + -0x68c) ^ uVar21) ^ DAT_182670ac0;
  *(uint *)(lVar6 + -0x2d4) = uVar32;
  *puVar30 = uVar32 ^ DAT_18267093c ^ DAT_182670ac0;
  *(uint *)(lVar6 + -0x14) = *(uint *)(lVar6 + -0x3d4) ^ DAT_182670888 ^ DAT_182670a1c;
  uVar37 = (ulonglong)DAT_182670990;
  *(uint *)(lVar6 + -0x42c) = DAT_182670834 ^ DAT_18267093c ^ *(uint *)(lVar6 + -0x7e4);
  *(uint *)(lVar6 + -0x814) =
       *(uint *)(lVar6 - (uVar28 ^ 0x80420454)) ^ DAT_1826708c4 ^ DAT_182670888;
  uVar17 = DAT_182670818;
  *(ulonglong *)(lVar6 + -0xdb8) =
       (CONCAT44(uVar34,uVar31) ^ 0xf49db50a3f7dc68a) * 0x20 +
       (CONCAT44(uVar19,uVar12) ^ 0x22a0402955523040) + *(longlong *)(lVar6 + -0x30) ^ uVar37;
  uVar32 = DAT_1826707a8;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707a8 ^ 0xbfbfc8ea)) =
       CONCAT44(DAT_182670820,DAT_182670820) ^ *(ulonglong *)(lVar6 + -0xd88) |
       CONCAT44(uVar23,uVar34) ^ 0xd0fe828ef5ced1bd;
  uVar19 = DAT_1826708b4 & 0xff;
  uVar23 = *(uint *)(lVar6 + -0x814) ^ DAT_1826708c4;
  *(byte *)(lVar6 + -0x619) =
       *(byte *)(uVar37 ^ *(ulonglong *)(lVar6 + -0xdb8)) ^ (byte)DAT_1826708b4 ^
       (byte)DAT_182670adc;
  *(undefined8 *)(lVar6 + -0x400) = 0x1c1f74d36;
  uVar12 = DAT_1826707e0 ^ 0xe264ed01;
  *(uint *)(lVar6 + -0x9ec) = uVar19 ^ *(byte *)(lVar6 + -0x619) ^ uVar17;
  *(uint *)(lVar6 - (uVar28 ^ 0x8042007c)) = uVar23 + uVar12 ^ DAT_182670878;
  *(uint *)(lVar6 + -0xa34) =
       (*(uint *)(lVar6 + -0x9ec) ^ uVar17) << ((bVar4 ^ 0x15) & 0x1f) ^ uVar7;
  uVar34 = (*(uint *)(lVar6 - (uVar26 ^ 0x3f7dc2b6)) ^ DAT_182670878) -
           (*(uint *)(lVar6 - (uVar24 ^ 0x55523a77)) ^ uVar7);
  *(uint *)(lVar6 + -0x598) = uVar34 ^ DAT_182670a18;
  uVar19 = DAT_182670b0c;
  uVar12 = DAT_1826708b8;
  uVar23 = *(uint *)(lVar6 + -0x42c) ^ DAT_182670834;
  *(ulonglong *)(lVar6 + -0x630) =
       (CONCAT44(uVar18,uVar40) ^ 0xdfb87f6b093575a2) - *(longlong *)(lVar6 - (uVar42 ^ 0x40046791))
  ;
  *(uint *)(lVar6 - (uVar13 ^ 0xa1cf87c9)) = uVar23 * uVar34 ^ uVar12;
  uVar18 = (*(uint *)(lVar6 + -0x9ec) ^ uVar17) * (DAT_1826707b8 ^ 0x22a0402a) ^ DAT_1826709c4;
  *(uint *)(lVar6 + -0xc34) = uVar18;
  *(uint *)(lVar6 - (uVar24 ^ 0x55523503)) =
       (uVar12 ^ *(uint *)(lVar6 + -0x280)) + (uVar18 ^ DAT_1826709c4) ^ uVar19;
  uVar19 = uVar19 ^ *puVar2;
  uVar32 = uVar19 >> (((byte)uVar32 ^ 0xd9) & 0x1f) ^ DAT_1826708a8;
  *puVar36 = uVar19 << 0xd ^ DAT_182670970;
  *puVar1 = uVar32;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar3 ^ uVar44;
  return;
}



############ FUN_ 180c805b0 size=3404 ############

void FUN_180c805b0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte bVar19;
  ulonglong uVar20;
  uint uVar21;
  byte *pbVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  
  bVar19 = DAT_1826709e0;
  uVar9 = DAT_1826707cc;
  uVar10 = DAT_1826707c8;
  lVar4 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707c8;
  uVar24 = (ulonglong)DAT_1826707cc;
  uVar23 = (ulonglong)DAT_1826707c8;
  uVar28 = DAT_1826707cc * DAT_1826707c8;
  uVar17 = *(uint *)(&DAT_18260f750 + (uVar18 ^ 0xfbfbf9d4) + (longlong)DAT_182670d44) ^
           DAT_1826707cc;
  uVar3 = *(uint *)(&DAT_18260f760 + DAT_182670d44);
  uVar20 = (ulonglong)DAT_18267083c;
  uVar25 = (ulonglong)DAT_18267084c;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x9a0);
  uVar26 = CONCAT44(DAT_1826707c8,DAT_1826707cc);
  uVar29 = (ulonglong)DAT_1826707cc;
  DAT_1826707e8 = uVar28;
  *(undefined8 *)(DAT_1826707a0 + -0xb18) =
       *(undefined8 *)(DAT_1826707a0 - ((ulonglong)uVar28 ^ 0x3a528030));
  *(ulonglong *)(lVar4 + -0xaa0) = *(ulonglong *)(lVar4 + -0xdb8) ^ uVar25;
  uVar29 = *(ulonglong *)(lVar4 - (uVar29 ^ 0xb99b6ec4));
  uVar26 = uVar26 ^ 0xfbfbf9dcb99b65dd;
  *(ulonglong *)(lVar4 + -0x330) = uVar29 ^ uVar20;
  *(ulonglong *)(lVar4 + -0x8d8) = uVar29 + uVar26;
  *(byte *)(lVar4 + -0x3b1) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x3a528620)) ^ uVar20) ^
       (byte)DAT_18267080c ^ bVar19;
  *(byte *)((ulonglong)DAT_182670838 ^ *(ulonglong *)(lVar4 + -0x4b8)) = (byte)uVar28 ^ 0x41;
  pbVar22 = (byte *)(*(ulonglong *)(lVar4 + -0xaa0) ^ uVar25);
  *(byte **)(lVar4 + -0xab8) = pbVar22 + uVar26;
  *pbVar22 = *(byte *)(lVar4 - ((ulonglong)uVar28 ^ 0x3a5286a1)) ^ (byte)DAT_18267080c;
  *(int *)(lVar4 + -0x540) = *(int *)(lVar4 - ((ulonglong)uVar10 ^ 0xfbfbfa08)) * -0x718e3581;
  *puVar1 = *(ulonglong *)(lVar4 + -0xab8);
  *(undefined8 *)(lVar4 + -0x238) = *(undefined8 *)(lVar4 + -0x8d8);
  uVar12 = DAT_182670a90;
  uVar31 = (ulonglong)DAT_182670830;
  uVar26 = (ulonglong)DAT_182670a90;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x3a5287a0)) =
       CONCAT44(uVar9,uVar10) ^ 0x35da7ddbb33e4594 | *(ulonglong *)(lVar4 + -0x6f0);
  uVar29 = (ulonglong)DAT_182670af4;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xfbfbf88c)) = *puVar1 ^ uVar31;
  uVar8 = DAT_1826707bc;
  uVar25 = (ulonglong)DAT_1826707bc;
  pbVar22 = *(byte **)(lVar4 - ((ulonglong)uVar28 ^ 0x3a528728));
  *(ulonglong *)(lVar4 + -0x1f0) = (ulonglong)pbVar22 ^ uVar29;
  *(byte **)(lVar4 + -0x5a8) = pbVar22 + (CONCAT44(uVar10,uVar10) ^ 0xfbfbf9dcfbfbf9dd);
  uVar6 = DAT_1826707f4;
  uVar20 = (ulonglong)DAT_1826707f4;
  *(byte *)(lVar4 + -0x839) = *pbVar22 ^ (byte)DAT_18267089c ^ bVar19;
  *(byte *)((ulonglong)DAT_1826709a8 ^ *(ulonglong *)(lVar4 + -0x870)) = (byte)uVar9 ^ 0x93;
  uVar21 = DAT_1826707f0 ^ 0x4aad9980;
  *(ulonglong *)(lVar4 + -0x5a0) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x40000110)) ^ uVar31) +
       (CONCAT44(uVar9,uVar6) ^ 0xb99b65dca3b193f8);
  *(byte *)(*(ulonglong *)(lVar4 + -0x150) ^ uVar31) =
       *(byte *)(lVar4 + -0x839) ^ (byte)DAT_18267089c;
  *(undefined8 *)(lVar4 + -0x9d0) = *(undefined8 *)(lVar4 + -0x5a0);
  *(uint *)(lVar4 - ((ulonglong)uVar9 ^ 0xb99b6fe8)) = uVar21 + 0xc81555be;
  *(undefined8 *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x82c05501)) = *(undefined8 *)(lVar4 + -0x5a8)
  ;
  *(ulonglong *)(lVar4 + -0xc40) = uVar26 ^ *(ulonglong *)(lVar4 + -0x9d0);
  uVar7 = DAT_1826707b4;
  uVar6 = DAT_1826707a8;
  lVar5 = DAT_1826707a0;
  pbVar22 = *(byte **)(lVar4 + -0x1d8);
  uVar23 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar4 + -0x6a8) = (ulonglong)pbVar22 ^ (ulonglong)DAT_1826708cc;
  *(byte **)(lVar4 + -0xc58) = pbVar22 + (CONCAT44(uVar9,uVar6) ^ 0xb99b65dc54d982c1);
  *(uint *)(lVar4 + -0x68c) = (DAT_1826707b8 ^ 0xc7fc79f0) * *(int *)(lVar4 + -0xc0c);
  uVar13 = DAT_1826707dc;
  uVar31 = (ulonglong)DAT_1826707dc;
  *(byte *)(lVar4 + -0x619) = (byte)DAT_182670a0c ^ *pbVar22 ^ bVar19;
  *(byte *)(*(ulonglong *)(lVar4 + -0xbd8) ^ (ulonglong)DAT_182670934) = (byte)uVar6 ^ 0x70;
  uVar14 = DAT_1826707e0;
  uVar21 = DAT_1826707ac;
  uVar29 = CONCAT44(uVar9,DAT_1826707e0);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xbffff287)) =
       (CONCAT44(DAT_1826707d0,uVar28) ^ 0x726d039f141f1b7b) + 0xe81adeb10b040548;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x9bf9fb33)) =
       (CONCAT44(uVar10,uVar21) ^ 0xfbfbf9dc890240d5) +
       ((ulonglong)uVar12 ^ *(ulonglong *)(lVar5 + -0xc40));
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x9bf9fddb)) =
       uVar29 ^ 0xc816d07ec9da186c | *(ulonglong *)(lVar5 + -0x548);
  *(byte *)(uVar26 ^ *(ulonglong *)(lVar5 + -0xc40)) =
       *(byte *)(lVar5 + -0x619) ^ (byte)DAT_182670a0c;
  *(ulonglong *)(lVar5 + -0x7d8) = *(ulonglong *)(lVar5 + -0xd88) | 0x56a08aef43a7637f;
  *(undefined8 *)(lVar5 - ((ulonglong)DAT_1826707c0 ^ 0xf993ba8b)) = *(undefined8 *)(lVar5 + -0x88);
  uVar11 = DAT_182670ae4;
  uVar31 = (ulonglong)DAT_182670ae8;
  uVar30 = (ulonglong)DAT_1826707d8;
  uVar27 = (ulonglong)DAT_1826709e4;
  *(undefined8 *)(lVar5 - (uVar30 ^ 0x8d66db1e)) =
       *(undefined8 *)(lVar5 - ((ulonglong)uVar13 ^ 0xbffff3e7));
  *(ulonglong *)(lVar5 + -0x960) = *(ulonglong *)(lVar5 + -0xb28) ^ uVar27;
  uVar7 = DAT_1826707b0;
  lVar4 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (CONCAT44(DAT_1826707b0,uVar28) ^ 0xd843d52b1c62b675) <<
       ((byte)*(undefined8 *)(DAT_1826707a0 + -0xd38) & 0x3f);
  uVar12 = DAT_1826707d4;
  uVar26 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar4 + -0x170) = *(ulonglong *)(lVar4 - (uVar24 ^ 0xb99b6414)) ^ uVar31;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0xfbfbfde4)) =
       *(ulonglong *)
        (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xa3b193a1)) ^
        CONCAT44(DAT_1826708f4,DAT_1826708f4)) ^ CONCAT44(uVar11,uVar11);
  *(undefined8 *)(lVar4 + -0x58) = 0x2d55c232f9999849;
  *(ulonglong *)(lVar4 + -0xd70) = (*(ulonglong *)(lVar4 + -0x170) ^ uVar31) + 1;
  uVar15 = DAT_1826707ec;
  lVar5 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_1826707ec;
  *(byte *)(DAT_1826707a0 - (uVar26 ^ 0xb9bbf0ce)) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x890241a4)) ^ uVar31) ^
       (byte)DAT_182670988 ^ DAT_1826709e0;
  uVar21 = DAT_1826707cc ^ 0x40c45626;
  *(byte *)(*(ulonglong *)(lVar5 + -0x808) ^ (ulonglong)DAT_182670a48) = (byte)uVar8 ^ 0xd9;
  uVar9 = DAT_1826707c4;
  *(uint *)(lVar5 - (uVar20 ^ 0xb1a3f07f)) = uVar21 - (DAT_1826707c4 ^ 0x2037a6e1);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x480) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0xfbfbf0bc)) ^ uVar27) +
       (CONCAT44(uVar15,uVar6) ^ 0xb1a3f99354d982c1);
  uVar16 = DAT_1826707f0;
  uVar32 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xb9bbfbef)) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x82c05301)) >>
       ((byte)*(undefined8 *)(DAT_1826707a0 + -0xd38) & 0x3f);
  uVar21 = DAT_1826707c0;
  lVar4 = DAT_1826707a0;
  *(byte *)(uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x960)) =
       *(byte *)(DAT_1826707a0 - (uVar18 ^ 0xfbfbf4cd)) ^ (byte)DAT_182670988;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (CONCAT44(uVar21,uVar12) ^ 0xb82542db7114648a) + *(longlong *)(lVar4 + -0x220);
  *(ulonglong *)(lVar4 + -0x4a8) = *(ulonglong *)(lVar4 + -0x480);
  *(ulonglong *)(lVar4 + -0x270) = *(ulonglong *)(lVar4 + -0xd70);
  *(ulonglong *)(lVar4 + -0x610) =
       CONCAT44(uVar28,uVar16) ^ 0x6aa3980f8679cb67 | *(ulonglong *)(lVar4 + -0x7d8);
  uVar18 = (ulonglong)DAT_182670ac8;
  *(ulonglong *)(lVar4 + -0x5f8) = uVar18 ^ *(ulonglong *)(lVar4 + -0x480);
  lVar5 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_182670820;
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0x8d66d946)) = uVar20 ^ *(ulonglong *)(lVar4 + -0xd70);
  *(ulonglong *)(lVar5 + -0x7f0) = (*(ulonglong *)(lVar5 - (uVar24 ^ 0xb99b664c)) ^ uVar20) + 1;
  bVar19 = (byte)DAT_1826709bc;
  lVar4 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x911) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x390) ^ uVar20) ^ (byte)DAT_1826709bc ^
       DAT_1826709e0;
  lVar5 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x3a5284c0)) ^ uVar20) = (byte)uVar14 ^ 0x86
  ;
  uVar11 = DAT_1826707d0;
  pbVar22 = (byte *)(uVar18 ^ *(ulonglong *)(lVar5 + -0x5f8));
  *(byte **)(lVar5 + -0x5d8) = pbVar22 + (CONCAT44(uVar13,DAT_1826707d0) ^ 0xbfffffbfffffffbe);
  *pbVar22 = bVar19 ^ *(byte *)(lVar5 + -0x911);
  lVar4 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 - (uVar24 ^ 0xb99b603c)) = *(undefined8 *)(DAT_1826707a0 + -0x5d8);
  *(undefined8 *)(lVar4 + -0x560) = *(undefined8 *)(lVar4 + -0x7f0);
  uVar31 = (ulonglong)DAT_1826708d8;
  *(byte *)(lVar4 + -0xb55) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar25 ^ 0x400003d0)) ^ uVar20) ^ DAT_1826709e0;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xb9bbf4a7)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x3a5280f0)) ^ uVar31;
  uVar21 = DAT_1826707b8;
  lVar4 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826708d4;
  uVar20 = (ulonglong)DAT_1826707ac;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x560);
  *(ulonglong *)(DAT_1826707a0 + -0x38) = uVar18 ^ *puVar2;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x8902428c)) =
       (CONCAT44(uVar14,uVar6) ^ 0x95a49f3454d982c1) + *puVar2;
  *(byte *)(lVar4 - (uVar24 ^ 0xb99b6d65)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x38) ^ uVar18) ^ (byte)DAT_1826708c4 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar4 + -0xa20) ^ (ulonglong)DAT_182670a30) = (byte)uVar7 ^ 0x81;
  uVar12 = DAT_1826707e4;
  pbVar22 = (byte *)(*(ulonglong *)(lVar4 + -0x978) ^ uVar31);
  uVar26 = (ulonglong)DAT_182670810;
  *(byte **)(lVar4 + -0x718) = pbVar22 + (CONCAT44(DAT_1826707e4,uVar11) ^ 0x82c054d9ffffffbe);
  *pbVar22 = *(byte *)(lVar4 - (uVar20 ^ 0x8902486d)) ^ (byte)DAT_1826708c4;
  *(ulonglong *)(lVar4 + -0x458) = *(ulonglong *)(lVar4 + -0x718);
  *(ulonglong *)(lVar4 + -0xc18) = CONCAT44(uVar16,uVar21) ^ 0xff1bffaeedb7afbf | 0xdb12dd8ae9b22cb2
  ;
  *(undefined8 *)(lVar4 + -0x520) = *(undefined8 *)(lVar4 + -600);
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0xdb8) = uVar26 ^ *(ulonglong *)(lVar4 + -0x718);
  uVar6 = DAT_1826707b4;
  lVar4 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707c0;
  uVar31 = CONCAT44(uVar15,DAT_1826707c0);
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xb99b652c)) =
       (CONCAT44(DAT_1826707b4,uVar16) ^ 0x6375ef847d07cd85) <<
       ((byte)*(undefined8 *)(lVar5 - ((ulonglong)uVar9 ^ 0x1027298f)) & 0x3f);
  uVar18 = (ulonglong)DAT_182670a08;
  uVar20 = (ulonglong)DAT_182670a08 ^ *(ulonglong *)(lVar4 + -0x520);
  *(ulonglong *)(lVar4 + -0xb18) = uVar20;
  uVar7 = DAT_1826707d4;
  pbVar22 = (byte *)(uVar20 ^ uVar18);
  *(ulonglong *)(lVar4 + -0x658) = *(ulonglong *)(lVar4 + -0x7d8) | 0x4a02a3bab8914cb3;
  *(byte **)(lVar4 + -0x4b8) = pbVar22 + (CONCAT44(uVar21,uVar8) ^ 0x7d3faae640000041);
  bVar19 = (byte)DAT_182670924;
  *(byte *)(lVar4 + -0x2d5) = (byte)DAT_182670924 ^ *pbVar22 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar4 + -0xc68) ^ (ulonglong)DAT_182670824) = (byte)uVar7 ^ 0xef;
  *(ulonglong *)(lVar4 + -0x330) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f4 ^ 0xa3b19e41)) ^ uVar26) +
       (uVar31 ^ 0xb1a3f993f993b1a2);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0x82c05401)) =
       *(ulonglong *)(lVar4 + -0x658) | 0xaa2af9d64651f16c;
  *(byte *)(uVar26 ^ *(ulonglong *)(lVar4 + -0xdb8)) = bVar19 ^ *(byte *)(lVar4 + -0x2d5);
  uVar21 = *(uint *)(lVar4 + -0x42c) ^ DAT_182670a6c;
  *(ulonglong *)(lVar4 + -0x410) =
       *(longlong *)(lVar4 + -0x438) - (CONCAT44(uVar10,uVar11) ^ 0xc55316ffdd0c702);
  *(undefined8 *)(lVar4 + -0xab8) = *(undefined8 *)(lVar4 + -0x330);
  *(uint *)(lVar4 + -0x8e0) = uVar21 + (*(uint *)(lVar4 + -0x398) ^ DAT_182670858);
  uVar21 = DAT_182670a50;
  uVar20 = (ulonglong)DAT_182670a50;
  *(undefined8 *)(lVar4 - (uVar25 ^ 0xf993b97b)) = *(undefined8 *)(lVar4 + -0x4b8);
  uVar18 = (ulonglong)DAT_182670a44;
  *puVar1 = uVar20 ^ *(ulonglong *)(lVar4 + -0xab8);
  pbVar22 = *(byte **)(lVar4 - (uVar29 ^ 0x24175673));
  *(ulonglong *)(lVar4 + -0x238) = (ulonglong)pbVar22 ^ uVar18;
  *(byte **)(lVar4 + -0x870) = pbVar22 + (CONCAT44(uVar16,uVar9) ^ 0x82c0551910272fee);
  *(byte *)(lVar4 - (uVar32 ^ 0x82c05832)) = *pbVar22 ^ (byte)DAT_182670a74 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar4 + -0x738) ^ (ulonglong)DAT_182670ab4) = (byte)uVar28 ^ 0xad;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x54d98330)) =
       (CONCAT44(uVar6,uVar12) ^ 0x9bf9fbbb82c054d8) + ((ulonglong)uVar21 ^ *puVar1);
  bVar19 = *(byte *)(lVar4 - ((ulonglong)uVar9 ^ 0x102722c4)) ^ (byte)DAT_182670a74;
  uVar29 = *puVar1;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar3 ^ uVar28) * 4) = uVar17;
  *(byte *)(uVar20 ^ uVar29) = bVar19;
  return;
}



############ FUN_ 180c63ac0 size=5386 ############

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

void FUN_180c63ac0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte *pbVar38;
  ulonglong uVar39;
  byte bVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  byte local_e0;
  byte local_68;
  ulonglong uVar45;
  
  uVar15 = DAT_18267084c;
  uVar14 = DAT_1826707f4;
  uVar13 = DAT_1826707f0;
  uVar10 = DAT_1826707dc;
  uVar9 = DAT_1826707d8;
  uVar8 = DAT_1826707c8;
  uVar7 = DAT_1826707c4;
  uVar46 = (ulonglong)DAT_1826707c4;
  uVar28 = (ulonglong)DAT_1826707f4;
  uVar41 = *(uint *)(&DAT_18260f758 + DAT_182670ce8) ^ DAT_1826707a8;
  uVar32 = DAT_1826707f4 - DAT_1826707bc;
  uVar36 = (ulonglong)DAT_1826707d8;
  uVar47 = (ulonglong)DAT_1826707dc;
  uVar44 = DAT_1826707c4 ^ DAT_1826707c8;
  uVar45 = (ulonglong)uVar44;
  uVar48 = DAT_1826707f0 & DAT_1826707dc;
  uVar23 = DAT_1826707b8 * DAT_1826707d8;
  DAT_1826707e4 = DAT_1826707a8 << 0x10 | DAT_1826707a8 >> 0x10;
  uVar20 = *(uint *)(&DAT_18260f760 + DAT_182670ce8) ^ DAT_1826707e4;
  uVar26 = (ulonglong)uVar23;
  uVar24 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar42 = *(ulonglong *)
            (*(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xbd8ed131)) ^
            CONCAT44(DAT_1826709d8,DAT_1826709d8)) ^ uVar24;
  DAT_1826707b0 = uVar32;
  DAT_1826707c0 = uVar48;
  DAT_1826707cc = uVar44;
  DAT_1826707e8 = uVar23;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar42 ^ CONCAT44(DAT_182670a00,DAT_182670a00);
  lVar1 = DAT_1826707a0;
  bVar35 = (byte)uVar15 ^ (byte)DAT_182670900;
  uVar42 = uVar42 >> (((byte)DAT_1826707b8 ^ 9) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  uVar22 = (ulonglong)DAT_1826709c4;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar42;
  uVar25 = (ulonglong)uVar8;
  *(byte *)(lVar1 - ((ulonglong)uVar14 ^ 0xf060c09f)) = bVar35 ^ (byte)uVar42;
  uVar21 = DAT_1826707bc;
  uVar42 = (ulonglong)uVar32;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0x1e6d921)) =
       (CONCAT44(uVar32,DAT_1826707bc) ^ 0xd81fbfd4184101ca) + *(longlong *)(lVar1 + -0x10) ^ uVar22
  ;
  *(byte *)(*(ulonglong *)(lVar1 + -0x928) ^ uVar22) =
       *(byte *)(lVar1 + -0x10a) ^ DAT_1826709e0 ^ (byte)DAT_182670900;
  uVar18 = DAT_1826709d0;
  uVar22 = (ulonglong)uVar13;
  uVar29 = (ulonglong)DAT_1826709a8;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) +
            ((CONCAT44(uVar48,DAT_1826707a8) ^ 0x80522c40cacabfbe) +
            (CONCAT44(uVar13,uVar10) ^ 0xe273ac6d9d523fd2) * 0xc) * 8);
  uVar34 = (ulonglong)DAT_1826708a8;
  uVar37 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  *(ulonglong *)(lVar1 + -0x3c0) = (ulonglong)puVar27 ^ CONCAT44(DAT_182670854,DAT_182670854);
  uVar19 = DAT_182670af8;
  uVar37 = uVar37 ^ *puVar27 ^ uVar24;
  *(ulonglong *)(lVar1 + -0x438) = uVar37;
  uVar16 = DAT_1826708e8;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar44 ^ 0xcb2c6f46)) =
       uVar37 >> 0x20 ^ uVar34 ^ CONCAT44(uVar18,uVar18);
  bVar35 = (byte)uVar18 ^ *(byte *)(lVar1 + -0xf0) ^ (byte)DAT_1826708e0;
  *(byte *)(lVar1 + -0xd2a) = bVar35;
  pbVar38 = (byte *)((CONCAT44(uVar7,uVar7) ^ 0xcacabfbfcacabfb3) + *(longlong *)(lVar1 + -0x10));
  *(ulonglong *)(lVar1 + -0x38) = (ulonglong)pbVar38 ^ uVar29;
  uVar17 = DAT_182670978;
  uVar15 = DAT_1826708d4;
  uVar11 = DAT_1826707e4;
  bVar35 = bVar35 ^ (byte)DAT_1826708e0 ^ DAT_1826709e0;
  uVar29 = CONCAT44(DAT_1826707e4,uVar32);
  *(ulonglong *)(lVar1 + -0x1b8) =
       *(ulonglong *)(lVar1 - (uVar28 ^ 0xf060c785)) ^ CONCAT44(uVar16,uVar16) |
       CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar1 + -0xbb0);
  uVar33 = CONCAT44(uVar15,uVar15);
  *pbVar38 = bVar35;
  uVar5 = DAT_1826707bc;
  uVar4 = DAT_1826707b8;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) + 8 +
            (CONCAT44(DAT_1826707b8,uVar7) ^ 0x85113e11cacabfbf) * 0x60);
  uVar30 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar1 + -0xa98) = (ulonglong)puVar27 ^ uVar33;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x18410809)) = *puVar27 ^ uVar24 ^ uVar30;
  bVar31 = (byte)uVar10;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x85113821)) =
       (*(ulonglong *)(lVar1 - (uVar36 ^ 0x18410131)) ^ CONCAT44(uVar18,uVar18)) >>
       (((byte)uVar32 ^ 0xcc) & 0x3f);
  *(ulonglong *)(lVar1 + -0x658) =
       (*(ulonglong *)(lVar1 + -0x9c8) ^ uVar30) >> ((bVar31 ^ 0xfa) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  uVar6 = DAT_1826708ac;
  uVar39 = (ulonglong)DAT_1826708ac;
  bVar35 = *(byte *)(lVar1 - ((ulonglong)uVar48 ^ 0x80522a18)) ^ (byte)uVar17 ^ (byte)DAT_182670984;
  *(byte *)(lVar1 + -0x5b1) = bVar35;
  *(ulonglong *)(lVar1 + -0x6f0) =
       (CONCAT44(uVar32,uVar23) ^ 0xa1d1de2549058643) -
       (CONCAT44(uVar8,uVar44) ^ 0x2ce14728bbd8e3d6);
  pbVar38 = (byte *)((CONCAT44(uVar13,uVar14) ^ 0xe273ac6df060c198) + *(longlong *)(lVar1 + -0x10));
  bVar35 = DAT_1826709e0 ^ bVar35;
  *(ulonglong *)(lVar1 + -0xb18) = (ulonglong)pbVar38 ^ (ulonglong)DAT_18267090c;
  *pbVar38 = bVar35 ^ (byte)DAT_182670984;
  uVar3 = DAT_1826707a8;
  uVar34 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar37 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar1 + -0xc78) =
       *(longlong *)(lVar1 - ((ulonglong)uVar5 ^ 0x18410311)) +
       ((CONCAT44(DAT_1826707a8,DAT_1826707b8) ^ 0xcacabfbf85113e10) +
       (CONCAT44(uVar10,uVar8) ^ 0x9d523fd201e6d009) * 0xc) * 8 ^ uVar34;
  uVar34 = *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar22 ^ 0xe273a015)) ^ uVar34) ^ uVar24 ^ uVar37;
  *(ulonglong *)(lVar1 + -0x410) = uVar34;
  uVar6 = DAT_182670a58;
  uVar15 = DAT_182670894;
  lVar1 = DAT_1826707a0;
  uVar43 = (ulonglong)DAT_182670a58;
  bVar35 = (byte)DAT_182670858;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0xcacabbbf)) =
       (uVar34 >> 0x20 ^ uVar39) >> 0x10 ^ CONCAT44(DAT_182670858,DAT_182670858);
  pbVar38 = (byte *)((CONCAT44(uVar13,uVar10) ^ 0xe273ac6d9d523fdc) + *(longlong *)(lVar1 + -0x10));
  bVar40 = bVar35 ^ *(byte *)(lVar1 + -0x400) ^ (byte)DAT_1826708ec;
  *(ulonglong *)(lVar1 + -0x150) = (ulonglong)pbVar38 ^ uVar43;
  bVar35 = DAT_1826709e0 ^ (byte)DAT_1826708ec;
  *(ulonglong *)(lVar1 + -0x9e0) =
       (*(ulonglong *)(lVar1 + -0x410) ^ uVar37) <<
       (((byte)uVar15 ^ *(byte *)(lVar1 + -0x660)) & 0x3f);
  uVar5 = DAT_1826707e4;
  *(byte *)(lVar1 + -0xfa) = bVar40;
  lVar1 = DAT_1826707a0;
  *pbVar38 = bVar35 ^ bVar40;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) +
            ((CONCAT44(uVar44,uVar5) ^ 0xcb2c6fb6bfbfcacb) +
            (CONCAT44(uVar7,uVar8) ^ 0xcacabfbf01e6d009) * 0xc) * 8);
  uVar34 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar1 + -0xad0) = (ulonglong)puVar27 ^ CONCAT44(DAT_182670974,DAT_182670974);
  *(ulonglong *)(lVar1 - (uVar34 ^ 0x18410951)) = CONCAT44(uVar6,uVar6) ^ *puVar27 ^ uVar24;
  *(ulonglong *)
   (*(ulonglong *)(lVar1 - (uVar26 ^ 0xbd8edd39)) ^ CONCAT44(DAT_1826709c8,DAT_1826709c8)) =
       CONCAT44(uVar48,DAT_1826707b8) ^ 0xde8ee8f13d1cae17;
  bVar35 = (byte)DAT_182670834;
  *(ulonglong *)(lVar1 + -0x7d8) =
       (ulonglong)*(byte *)(lVar1 + -0x889) ^ (ulonglong)(uVar6 >> 0x18) ^
       CONCAT44(DAT_182670834,DAT_182670834);
  bVar35 = *(byte *)(lVar1 - (uVar36 ^ 0x18410619)) ^ bVar35 ^ (byte)DAT_182670994;
  uVar39 = (ulonglong)_DAT_18267097c;
  *(ulonglong *)(lVar1 + -0xc40) =
       (CONCAT44(uVar8,uVar7) ^ 0x1e6d009cacabfb0) + *(longlong *)(lVar1 + -0x10) ^ uVar39;
  uVar34 = CONCAT44(uVar14,DAT_1826707e4);
  *(byte *)(lVar1 + -0x1da) = bVar35;
  *(ulonglong *)(lVar1 + -0x2b0) =
       uVar34 ^ 0x31313ea2aff191f1 | CONCAT44(uVar44,DAT_1826707a8) ^ 0x7c0141b6e8eb7cd;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar28 ^ 0xf060cdd5)) ^ uVar39) =
       DAT_1826709e0 ^ bVar35 ^ (byte)DAT_182670994;
  *(ulonglong *)(lVar1 + -0xc18) =
       CONCAT44(uVar48,uVar10) ^ *(ulonglong *)(lVar1 + -0x9c8) ^ uVar30 ^ 0x592fb65f4ab4b685;
  uVar16 = DAT_1826708e4;
  uVar15 = DAT_182670854;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) + 0x10 +
            (CONCAT44(uVar4,uVar13) ^ 0x85113e11e273ac6d) * 0x60);
  *(ulonglong *)(lVar1 + -0x4a0) = (ulonglong)puVar27 ^ CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar1 + -0x420) =
       *(ulonglong *)(lVar1 + -0x410) ^ uVar37 ^ uVar29 ^ 0xd2a1189a89850fb9;
  local_e0 = (byte)uVar8;
  uVar37 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar34 = *puVar27 ^ uVar24;
  *(ulonglong *)(lVar1 + -0xd38) = uVar34 ^ uVar37;
  uVar34 = uVar34 >> ((local_e0 ^ 9) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 + -0x588) = uVar34;
  *(byte *)(lVar1 + -0x2b9) = (byte)uVar16 ^ (byte)uVar15 ^ (byte)uVar34;
  uVar34 = (ulonglong)DAT_182670ae8;
  *(ulonglong *)(lVar1 - (uVar46 ^ 0xcacabaf7)) =
       (CONCAT44(uVar9,uVar48) ^ 0xdab6d1c9d96f779c) <<
       ((byte)*(undefined8 *)(lVar1 - (uVar26 ^ 0xbd8edff1)) & 0x3f);
  pbVar38 = (byte *)(*(longlong *)(lVar1 - (uVar45 ^ 0xcb2c6fa6)) +
                    (CONCAT44(uVar48,uVar14) ^ 0x80522c40f060c185));
  bVar35 = DAT_1826709e0 ^ *(byte *)(lVar1 + -0x2b9);
  *(ulonglong *)(lVar1 + -0x960) = (ulonglong)pbVar38 ^ uVar34;
  *pbVar38 = bVar35 ^ (byte)uVar15;
  uVar15 = DAT_182670860;
  lVar2 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670a84,DAT_182670a84);
  bVar35 = (byte)uVar23;
  *(ulonglong *)(lVar1 + -0x180) = *(longlong *)(lVar1 + -0x2d0) + 0x10U ^ uVar34;
  uVar16 = DAT_1826709f4;
  uVar12 = DAT_1826707e4;
  uVar5 = DAT_1826707bc;
  uVar30 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar1 + -0x4c8) =
       (CONCAT44(uVar13,uVar44) ^ 0xb48414dee52c1489) >> ((bVar35 ^ 0xc4) & 0x3f);
  uVar6 = DAT_1826707bc;
  uVar29 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xbd8ed659)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar22 ^ 0xe273aded)) ^ uVar34) ^ uVar24 ^ uVar29;
  lVar1 = DAT_1826707a0;
  *(uint *)(lVar2 + -0x14) = (uVar6 ^ 0x1ebaa8dd) + (uVar6 ^ 0xd3654ce2);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (*(ulonglong *)(lVar1 + -0xd88) ^ uVar29) >> ((bVar31 ^ 0xda) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0xac0) = CONCAT44(uVar3,uVar10) ^ 0x54ba90039c06001f;
  lVar1 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - (uVar46 ^ 0xcacab33e)) =
       *(byte *)(lVar2 - (uVar36 ^ 0x18410779)) ^ (byte)uVar15 ^ (byte)DAT_182670b08;
  uVar16 = DAT_182670990;
  pbVar38 = (byte *)((CONCAT44(uVar5,uVar12) ^ 0x184101c1bfbfcadb) + *(longlong *)(lVar1 + -0x10));
  *(ulonglong *)(lVar1 + -0x5f8) = (ulonglong)pbVar38 ^ (ulonglong)DAT_1826709ac;
  uVar15 = DAT_182670870;
  *pbVar38 = *(byte *)(lVar1 - (uVar25 ^ 0x1e6dc88)) ^ DAT_1826709e0 ^ (byte)DAT_182670b08;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 - (uVar42 ^ 0xd81fbd04)) +
            ((CONCAT44(uVar3,uVar14) ^ 0xcacabfbff060c197) +
            (CONCAT44(uVar8,uVar13) ^ 0x1e6d009e273ac6d) * 0xc) * 8);
  uVar34 = CONCAT44(uVar32,DAT_1826707a8);
  *(ulonglong *)(lVar1 + -0x4e0) = (ulonglong)puVar27 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 + -0x438) = uVar34 ^ 0x22b37c2c1dee42c1 | *(ulonglong *)(lVar1 + -0x9e0);
  uVar15 = DAT_182670888;
  uVar34 = *puVar27 ^ uVar24;
  *(ulonglong *)(lVar1 + -0x610) = uVar34 ^ CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar1 + -0xbb0) =
       uVar34 >> (((byte)uVar44 ^ 0xa6) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar34 = (ulonglong)DAT_182670ac8;
  *(byte *)(lVar1 - (uVar45 ^ 0xcb2c6583)) =
       (byte)uVar16 ^ *(byte *)(lVar1 + -0xbb0) ^ (byte)DAT_182670818;
  *(ulonglong *)(lVar1 + -0x1b8) = uVar37 ^ *(ulonglong *)(lVar1 + -0xd38) ^ 0x8dae690d91ecf01e;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x85113769)) =
       (CONCAT44(uVar10,DAT_1826707b8) ^ 0x9d523fd285113e03) + *(longlong *)(lVar1 + -0x10) ^ uVar34
  ;
  *(byte *)(*(ulonglong *)(lVar1 + -0x978) ^ uVar34) =
       *(byte *)(lVar1 + -0xa35) ^ DAT_1826709e0 ^ (byte)DAT_182670818;
  uVar29 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar1 + -0x7b0) =
       *(longlong *)(lVar1 + -0x2d0) +
       ((CONCAT44(uVar11,DAT_1826707bc) ^ 0xbfbfcaca184101c3) +
       (CONCAT44(uVar9,uVar14) ^ 0x184101c1f060c195) * 0xc) * 8 ^ uVar29;
  uVar18 = DAT_182670aec;
  uVar34 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(lVar1 - (uVar42 ^ 0xd81fbf24)) =
       (CONCAT44(uVar11,uVar8) ^ 0x1b35b55aadb979ac) + (uVar37 ^ *(ulonglong *)(lVar1 + -0xd38));
  uVar17 = DAT_182670a98;
  local_68 = (byte)uVar21;
  uVar37 = *(ulonglong *)(uVar29 ^ *(ulonglong *)(lVar1 + -0x7b0)) ^ uVar24;
  *(ulonglong *)(lVar1 + -0x630) = uVar37 ^ uVar34;
  *(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xcb2c69ee)) =
       uVar37 >> ((local_68 ^ 0xd9) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  bVar40 = (byte)uVar17 ^ (byte)DAT_1826708a0;
  uVar34 = (ulonglong)DAT_182670ab0;
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xf060c765)) =
       CONCAT44(uVar10,uVar23) ^ CONCAT44(uVar48,uVar48) ^ 0x52ff2c9b796968da;
  lVar1 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0xb0a) = bVar40 ^ *(byte *)(DAT_1826707a0 + -0x658);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       *(ulonglong *)(lVar1 + -0xbb0) ^ CONCAT44(uVar16,uVar16) | 0x692307536b9ee121;
  *(ulonglong *)(lVar2 + -0x520) = *(longlong *)(lVar2 + -0x10) + 0x13U ^ uVar34;
  uVar29 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar22 ^ 0xe273a94d)) ^ uVar34) =
       *(byte *)(lVar2 - (uVar30 ^ 0xbfbfc1c0)) ^ DAT_1826709e0 ^ (byte)DAT_1826708a0;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x2d0) + 0x10 +
            (CONCAT44(uVar8,uVar48) ^ 0x1e6d00980522c40) * 0x60);
  uVar37 = CONCAT44(DAT_182670968,DAT_182670968);
  *(ulonglong *)(lVar2 + -0x58) = (ulonglong)puVar27 ^ uVar29;
  uVar34 = *puVar27 ^ uVar24;
  *(ulonglong *)(lVar2 + -0x660) = uVar34 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x558) = uVar34 >> ((bVar35 ^ 0xf1) & 0x3f) ^ uVar33;
  uVar37 = (ulonglong)DAT_182670a28;
  *(byte *)(lVar2 + -0x729) =
       *(byte *)(lVar2 - (uVar47 ^ 0x9d523a8a)) ^ (byte)DAT_1826708d4 ^ (byte)uVar18;
  uVar3 = DAT_1826707a8;
  pbVar38 = (byte *)((CONCAT44(uVar32,DAT_1826707b8) ^ 0xd81fbfd485113e05) +
                    *(longlong *)(lVar2 + -0x10));
  uVar34 = CONCAT44(uVar5,DAT_1826707a8);
  *(ulonglong *)(lVar2 + -0x8d8) = (ulonglong)pbVar38 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x890) =
       (uVar34 ^ 0x5b9914154320c862) << (((byte)uVar15 ^ *(byte *)(lVar2 + -0x610)) & 0x3f);
  bVar40 = DAT_1826709e0;
  uVar21 = DAT_1826707b8 ^ 0xb41808ac;
  *pbVar38 = *(byte *)(lVar2 - (uVar42 ^ 0xd81fb8fd)) ^ DAT_1826709e0 ^ (byte)uVar18;
  *(uint *)(lVar2 + -0xa34) = uVar21 + *(int *)(lVar2 + -0x68c);
  uVar42 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xf060c45d)) =
       *(longlong *)(lVar2 + -0x2d0) + 0x10 + (CONCAT44(uVar7,uVar7) ^ 0xcacabfbfcacabfbf) * 0x60 ^
       uVar42;
  uVar34 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar2 + -0x7d8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x5c8) ^ uVar42) ^ uVar24 ^ uVar34;
  uVar15 = DAT_1826709c0;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (CONCAT44(uVar44,uVar9) ^ 0x2b2acef6b28fa37d) - (CONCAT44(uVar9,uVar7) ^ 0x91e37fbc3474f1d1);
  *(ulonglong *)(lVar2 + -0x9c8) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0x7d8)) >> ((bVar35 ^ 0xf9) & 0x3f) ^
       CONCAT44(uVar15,uVar15);
  uVar21 = DAT_182670a8c;
  uVar16 = DAT_182670a6c;
  lVar1 = DAT_1826707a0;
  uVar42 = (ulonglong)DAT_182670a8c;
  *(byte *)(DAT_1826707a0 - (uVar22 ^ 0xe273a004)) =
       *(byte *)(lVar2 - (uVar28 ^ 0xf060c85d)) ^ (byte)uVar15 ^ (byte)DAT_182670a30;
  *(ulonglong *)(lVar1 + -0xc18) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xcacab9e7)) ^ CONCAT44(uVar17,uVar17)) <<
       (((byte)uVar15 ^ *(byte *)(lVar1 + -0x9c8)) & 0x3f);
  pbVar38 = (byte *)((CONCAT44(uVar4,uVar10) ^ 0x85113e119d523fc7) + *(longlong *)(lVar1 + -0x10));
  *(ulonglong *)(lVar1 + -0x5a0) = (ulonglong)pbVar38 ^ uVar42;
  uVar15 = DAT_182670864;
  *pbVar38 = *(byte *)(lVar1 - (uVar45 ^ 0xcb2c63df)) ^ bVar40 ^ (byte)DAT_182670a30;
  puVar27 = (ulonglong *)(*(longlong *)(lVar1 + -0x2d0) + 0x10);
  *(ulonglong *)(lVar1 + -0x240) = (ulonglong)puVar27 ^ CONCAT44(uVar21,uVar21);
  uVar34 = *puVar27 ^ uVar24;
  *(ulonglong *)(lVar1 + -0x410) = uVar34 ^ CONCAT44(uVar15,uVar15);
  uVar15 = DAT_1826708a4;
  lVar1 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707bc;
  bVar35 = (byte)uVar16 ^ (byte)DAT_1826708b0;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       uVar34 >> (((byte)uVar48 ^ 0x70) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar42 = (ulonglong)DAT_182670a3c;
  *(byte *)(lVar1 + -0x761) = bVar35 ^ *(byte *)(lVar1 + -0x588);
  uVar3 = DAT_1826707a8;
  *(ulonglong *)(lVar1 + -0x420) = uVar34 - (CONCAT44(uVar5,uVar14) ^ 0x4f7cf1b45fe20c2f);
  *(ulonglong *)(lVar1 - (uVar37 ^ 0x18410149)) = *(longlong *)(lVar1 + -0x10) + 0x16U ^ uVar42;
  uVar34 = CONCAT44(DAT_182670808,DAT_182670808);
  *(byte *)(*(ulonglong *)(lVar1 - (uVar22 ^ 0xe273ace5)) ^ uVar42) =
       bVar40 ^ *(byte *)(lVar1 + -0x761) ^ (byte)DAT_1826708b0;
  uVar16 = DAT_1826709bc;
  puVar27 = (ulonglong *)
            ((CONCAT44(uVar8,uVar3) ^ 0x1e6d009cacabfbf) * 0x60 +
            *(longlong *)(lVar1 + -0x2d0) + 0x10);
  *(ulonglong *)(lVar1 + -0xbe8) = (ulonglong)puVar27 ^ uVar34;
  uVar42 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 - (uVar26 ^ 0xbd8ede99)) = *puVar27 ^ uVar24 ^ uVar42;
  *(ulonglong *)
   (*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x85113b09)) ^ CONCAT44(uVar15,uVar15)) =
       CONCAT44(uVar10,uVar3) ^ 0x92a0f75ae675a46c;
  *(uint *)(lVar1 - (uVar46 ^ 0xcacaba27)) =
       (*(uint *)(lVar1 - (uVar25 ^ 0x1e6d425)) ^ DAT_182670904) >> (((byte)uVar3 ^ 0xb8) & 0x1f);
  *(ulonglong *)(lVar1 + -0x4c8) =
       (*(ulonglong *)(lVar1 + -0x548) ^ uVar42) >> ((bVar31 ^ 0xea) & 0x3f) ^
       CONCAT44(DAT_18267086c,DAT_18267086c);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar41;
  return;
}



############ FUN_ 180cad310 size=5107 ############

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

void FUN_180cad310(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte local_a0;
  byte local_88;
  ulonglong uVar23;
  ulonglong uVar35;
  
  uVar12 = DAT_182670a78;
  uVar10 = _DAT_1826708bc;
  uVar9 = DAT_1826707f0;
  uVar7 = DAT_1826707d4;
  uVar6 = DAT_1826707c8;
  uVar4 = DAT_1826707ac;
  lVar2 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_1826707f0;
  uVar16 = (ulonglong)DAT_1826707ac;
  uVar37 = (ulonglong)DAT_1826707c8;
  uVar32 = (ulonglong)DAT_1826707d4;
  uVar34 = DAT_1826707ac * DAT_1826707c8;
  uVar35 = (ulonglong)uVar34;
  uVar20 = DAT_1826707f0 - DAT_1826707d4;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670dcc);
  uVar13 = *(uint *)(&DAT_18260f758 + DAT_182670dcc) ^ DAT_1826707f0;
  uVar39 = CONCAT44(DAT_182670828,DAT_182670828);
  DAT_1826707a8 = uVar34;
  DAT_1826707b8 = uVar20;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       0x719544547f88d54d >> ((*(byte *)(DAT_1826707a0 + -0x410) ^ (byte)DAT_182670828) & 0x3f);
  uVar11 = DAT_1826709dc;
  uVar29 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar15 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x5c0)) >>
           (((byte)uVar6 ^ 0x33) & 0x3f);
  *(ulonglong *)(lVar2 + -0x220) = uVar15 ^ CONCAT44(uVar10,uVar10);
  uVar25 = (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar2 + -0xb70) | uVar15) ^ uVar29;
  *(ulonglong *)(lVar2 + -0x660) = uVar25;
  *(ulonglong *)(lVar2 + -0x588) = (CONCAT44(uVar34,uVar4) ^ 0x1e1bd319203451f) << 4;
  uVar15 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar17 = CONCAT44(DAT_182670a94,DAT_182670a94);
  uVar28 = (ulonglong)uVar20;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x85113399)) =
       *(ulonglong *)(lVar2 + -0xd38) ^ uVar17 ^ uVar15 ^ uVar29 ^ uVar25;
  lVar2 = DAT_1826707a0;
  uVar18 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x3f8b67f3)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0xf8777727)) ^
       CONCAT44(DAT_182670aec,DAT_182670aec)) + (*(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar15) ^
       uVar18;
  uVar10 = DAT_18267087c;
  uVar21 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  bVar24 = (byte)uVar9;
  uVar30 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x5d6263d4)) ^ uVar15) <<
           ((bVar24 ^ 0x57) & 0x3f);
  uVar36 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar30 ^ uVar21;
  uVar8 = DAT_1826707e4;
  uVar5 = DAT_1826707c4;
  uVar25 = (ulonglong)DAT_1826707e4;
  uVar26 = (*(ulonglong *)(lVar2 - (uVar16 ^ 0x27d0ded)) ^ uVar15) >> ((bVar24 ^ 0x6b) & 0x3f);
  uVar29 = (ulonglong)DAT_1826707c4;
  uVar22 = DAT_1826707e4 & DAT_1826707c4;
  uVar23 = (ulonglong)uVar22;
  uVar15 = CONCAT44(DAT_1826707e4,DAT_1826707c4);
  uVar27 = uVar26 ^ uVar36;
  DAT_1826707bc = uVar22;
  *(ulonglong *)(lVar2 + -0x438) = uVar27;
  uVar11 = DAT_182670ac8;
  *(ulonglong *)(lVar2 + -0x610) =
       (uVar15 ^ 0x2a0851ba67e9dc44) >> (((byte)uVar27 ^ (byte)uVar10) & 0x3f);
  uVar10 = DAT_18267093c;
  uVar15 = CONCAT44(uVar11,uVar11);
  uVar26 = (uVar30 | uVar26) ^ uVar15;
  *(ulonglong *)(lVar2 + -0xac0) = uVar26;
  uVar38 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x9c8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x42c8a795)) ^ uVar38 ^ uVar26 ^ uVar15 ^ uVar18;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x76fde05d)) =
       (CONCAT44(uVar22,uVar5) ^ 0x16e5ac90258ef16f) + 0x59ca9a07a08c5f72;
  uVar10 = DAT_18267098c;
  uVar39 = *(ulonglong *)(lVar2 + -0x410) ^ uVar39;
  uVar27 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar30 = (*(ulonglong *)(lVar2 - (uVar37 ^ 0xf8777e3f)) ^ uVar17) + uVar39 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x4c8) = uVar30;
  uVar17 = uVar39 << (((byte)uVar8 ^ 0xf3) & 0x3f);
  local_a0 = (byte)uVar20;
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar17 ^ CONCAT44(uVar10,uVar10);
  uVar15 = CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar39 >> ((local_a0 ^ 0x3b) & 0x3f) ^ uVar15;
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar17 = (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x3f8b6133)) ^ uVar15 | uVar17) ^ uVar31;
  uVar26 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar15 = *(ulonglong *)(DAT_1826707a0 + -0x630);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar17;
  uVar17 = uVar26 ^ uVar31 ^ uVar30 ^ uVar27 ^ uVar17;
  *(ulonglong *)(lVar2 + -0x548) = uVar17;
  uVar10 = DAT_182670918;
  *(ulonglong *)(lVar2 + -0xbb0) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0x3f8b648b)) ^ uVar26) + (uVar18 ^ uVar15) ^ uVar38;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xf877791f)) =
       (uVar26 ^ uVar17) << (((byte)uVar8 ^ 0xc5) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 - (uVar16 ^ 0x27d052d)) ^ uVar26) >> (((byte)uVar4 ^ 0x45) & 0x3f) ^
       uVar26;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x85113bd1)) =
       (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar31) - (CONCAT44(uVar7,uVar8) ^ 0x4ce27f3f829d5168);
  uVar15 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x27d0b15)) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0xa18) | uVar26 ^ *(ulonglong *)(lVar2 + -0x658)) ^ uVar15;
  *(ulonglong *)(lVar2 + -0x220) = CONCAT44(uVar7,uVar34) ^ 0x70b0196e671b0cad;
  lVar3 = DAT_1826707a0;
  uVar26 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x42c8a42d)) =
       *(ulonglong *)(lVar2 + -0xbb0) ^ uVar26 ^ uVar15 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0xb70);
  *(undefined8 *)(lVar2 + -0x660) = *(undefined8 *)(lVar2 + -0x220);
  uVar10 = _DAT_1826708f8;
  uVar18 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x27d0445)) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0xf87777cf)) ^ uVar27) +
       (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar38) ^ uVar18;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x76fdec6d)) =
       *(ulonglong *)(lVar3 + -0x5c0) >> (((byte)uVar5 ^ 0xae) & 0x3f);
  uVar39 = *(ulonglong *)(lVar3 + -0x9c8) ^ uVar38;
  uVar17 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar3 + -0x610) = uVar39 << (((byte)uVar4 ^ 0x45) & 0x3f) ^ uVar17;
  uVar11 = DAT_18267099c;
  lVar2 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar39 = uVar39 >> (((byte)uVar34 ^ 0xe3) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9e0) = uVar39 ^ uVar27;
  uVar12 = DAT_1826709b0;
  lVar3 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar15 = *(ulonglong *)(DAT_1826707a0 + -0x420);
  uVar39 = (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x76fde7f5)) ^ uVar17 | uVar39) ^ uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar39;
  uVar17 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x1b8) =
       (CONCAT44(uVar22,uVar4) ^ 0x9fa616f65d8cf9ae) << (((byte)uVar15 ^ (byte)uVar10) & 0x3f);
  uVar10 = DAT_1826708d8;
  uVar39 = uVar39 ^ uVar17 ^ uVar15 ^ uVar30 ^ uVar18;
  *(ulonglong *)(lVar3 + -0xd38) = uVar39;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar15 = (*(ulonglong *)(lVar3 + -0xbb0) ^ uVar38) + (CONCAT44(uVar9,uVar5) ^ 0xbc9e45811aa9855b);
  *(ulonglong *)(lVar3 + -0x890) = uVar15 ^ uVar21;
  *(ulonglong *)(lVar3 + -0xf0) = CONCAT44(uVar20,uVar6) ^ 0x92186fb5b495a492;
  uVar10 = DAT_182670958;
  *(ulonglong *)(lVar3 + -0x410) =
       (CONCAT44(uVar4,uVar7) ^ 0x39c93943ec9533fe) + (uVar39 ^ uVar17) ^ uVar30;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x630) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0x5d626a4c)) ^ uVar30) + uVar15 ^ uVar21;
  uVar10 = DAT_1826708c0;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x548) =
       CONCAT44(uVar20,uVar34) ^ 0xe43c04968ac84494 | *(ulonglong *)(lVar2 + -0x438) ^ uVar36;
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xf87775bf)) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0x42c8a5b5)) ^ uVar30) << ((bVar24 ^ 99) & 0x3f) ^ uVar32;
  uVar10 = DAT_182670adc;
  *(uint *)(lVar2 + -0x598) =
       *(uint *)(lVar2 - (uVar29 ^ 0xcacab58b)) | *(uint *)(lVar2 - (uVar16 ^ 0x27d02e5));
  local_88 = (byte)uVar7;
  uVar15 = (*(ulonglong *)(lVar2 + -0x410) ^ uVar30) >> ((local_88 ^ 0x6e) & 0x3f);
  uVar17 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar2 + -0xa18) = uVar15 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0xe273aad5)) ^ uVar32 | uVar15) ^ uVar17;
  uVar22 = DAT_182670afc;
  uVar32 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x42c8aad5)) =
       *(ulonglong *)(lVar3 - (uVar28 ^ 0x85113849)) ^ uVar32 ^ uVar17 ^ uVar21 ^
       *(ulonglong *)(lVar3 + -0x630);
  uVar30 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x27d0245)) =
       (CONCAT44(uVar8,uVar6) ^ 0xccdf81f48b8c58a3) + (*(ulonglong *)(lVar3 + -0x588) ^ uVar26) ^
       uVar30;
  uVar10 = DAT_182670878;
  uVar17 = *(ulonglong *)(lVar3 + -0x220) ^ uVar30;
  uVar15 = (CONCAT44(uVar34,uVar5) ^ 0xe4190856ee7a8c20) + (*(ulonglong *)(lVar3 + -0x420) ^ uVar18)
  ;
  *(ulonglong *)(lVar3 + -0x660) = uVar15 ^ CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar11 = DAT_182670a30;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar15 + uVar17 ^ uVar19;
  uVar37 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x76fde425)) = uVar17 << ((bVar24 ^ 0x7d) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x42c8ac2d)) =
       0xa4b99d32860daff >> ((byte)*(undefined8 *)(lVar3 + -0xf0) & 0x3f);
  uVar9 = DAT_1826708e8;
  uVar7 = DAT_1826707cc;
  uVar15 = CONCAT44(DAT_182670988,DAT_182670988);
  uVar26 = (ulonglong)DAT_1826707cc;
  uVar39 = (ulonglong)DAT_1826707cc;
  uVar18 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(lVar3 + -0x9c8) =
       (*(ulonglong *)(lVar3 + -0x220) ^ uVar30) >> ((bVar24 ^ 0x5d) & 0x3f) ^ uVar15;
  uVar15 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x5c6e6b95)) ^ uVar15 |
           uVar37 ^ *(ulonglong *)(lVar3 + -0x5c0)) ^ uVar18;
  *(ulonglong *)(lVar3 + -0x610) = uVar15;
  uVar8 = DAT_1826707ec;
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar23 = (ulonglong)DAT_1826707ec;
  uVar17 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar15 = *(ulonglong *)(lVar3 - (uVar29 ^ 0xcacabb77)) ^ uVar30 ^ uVar15 ^ uVar18 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x9e0) = uVar15;
  lVar2 = DAT_1826707a0;
  uVar14 = uVar8 + uVar7;
  DAT_1826707b4 = uVar14;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0xcd9e13bd)) =
       (uVar30 ^ uVar15) + (uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) ^ uVar17;
  uVar10 = DAT_182670a00;
  *(int *)(lVar2 + -0xcec) = *(int *)(lVar2 - (uVar23 ^ 0x712fa644)) + *(int *)(lVar2 + -0xc34);
  lVar3 = DAT_1826707a0;
  uVar29 = (*(ulonglong *)(lVar2 - (uVar26 ^ 0x5c6e6bbd)) ^ uVar30) << 0x34;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar29 ^ CONCAT44(uVar10,uVar10);
  uVar11 = DAT_182670a88;
  uVar10 = DAT_18267090c;
  uVar15 = ((ulonglong)uVar9 << 0x14 | (ulonglong)(uVar9 >> 0xc)) ^
           *(ulonglong *)(lVar3 + -0x9e0) >> 0xc;
  *(ulonglong *)(lVar3 + -0xd38) = uVar15 ^ uVar27;
  uVar18 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xcd9e19b5)) = (uVar29 | uVar15) ^ uVar18;
  uVar12 = DAT_182670af0;
  uVar11 = DAT_182670a9c;
  puVar33 = (ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xcd9e16cd));
  *(ulonglong *)(lVar3 + -0x890) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x5c6e63e5)) ^ uVar17) - (uVar19 ^ *puVar33);
  uVar27 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x438) =
       uVar27 ^ uVar18 ^ uVar17 ^ *(ulonglong *)(lVar3 + -0xbb0) ^ *(ulonglong *)(lVar3 + -0x1b8);
  uVar15 = uVar32 ^ *(ulonglong *)(lVar3 + -0xb70);
  *(ulonglong *)(lVar3 + -0x548) =
       *(ulonglong *)
        (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x712fa810)) ^ CONCAT44(uVar10,uVar10)) ^
       CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x410) = (uVar19 ^ *puVar33) + uVar15 ^ uVar19;
  uVar18 = CONCAT44(DAT_18267096c,DAT_18267096c);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar15 << (((byte)uVar8 ^ 0x91) & 0x3f) ^ uVar18;
  uVar29 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x712fa5b0)) =
       *(ulonglong *)(lVar3 - (uVar39 ^ 0x5c6e692d)) >> 7 ^
       ((ulonglong)uVar22 << 0x19 | (ulonglong)(uVar22 >> 7)) ^ uVar29;
  uVar15 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xcd9e145d)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x5c6e64e5)) ^ uVar18 |
       uVar29 ^ *(ulonglong *)(lVar3 + -0xa18)) ^ uVar15;
  uVar29 = CONCAT44(DAT_182670920,DAT_182670920);
  uVar15 = *(ulonglong *)(lVar3 - (uVar23 ^ 0x712fa9f0)) ^ *(ulonglong *)(lVar3 + -0x410) ^ uVar29 ^
           uVar15 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x588) = uVar15;
  lVar2 = DAT_1826707a0;
  puVar33 = (ulonglong *)(DAT_1826707a0 + -0x1b8);
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       CONCAT44(uVar14,uVar7) ^ 0x1358ee463f4a6635 | CONCAT44(uVar7,uVar8) ^ 0xe58bdf1c68c60bb9;
  uVar26 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x5c6e643d)) =
       (uVar15 ^ uVar29) + (uVar17 ^ *puVar33) ^ uVar26;
  uVar9 = DAT_18267081c;
  uVar18 = (ulonglong)DAT_18267081c;
  *(int *)(lVar2 + -0x14) = *(int *)(lVar2 + -0x3d4) + 0x3d8dd089;
  uVar17 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x5c6e67d5)) ^ uVar29) <<
           (((byte)uVar8 ^ 0xbf) & 0x3f);
  *(ulonglong *)(lVar2 + -0xf0) = uVar17 ^ CONCAT44(DAT_1826709ac,DAT_1826709ac);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (CONCAT44(uVar14,uVar7) ^ 0x851b9d7cce5f892a) - (CONCAT44(uVar8,uVar7) ^ 0xe4ac123cf730f890);
  *(ulonglong *)(lVar2 + -0x220) =
       (*(ulonglong *)(lVar2 + -0x588) ^ uVar29) >> (((byte)uVar34 ^ 0xea) & 0x3f) ^ uVar32;
  uVar22 = DAT_182670b14;
  uVar15 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar29 = (ulonglong)DAT_182670b14;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x712faa68)) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0x5c6e607d)) ^ uVar32 | uVar17) ^ uVar15;
  *(byte *)(lVar2 + -0xf9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x390) ^ uVar29) ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar2 + -0x9c8) =
       CONCAT44(uVar9,uVar9) ^ uVar15 ^ *(ulonglong *)(lVar2 + -0x660) ^ uVar26 ^
       *(ulonglong *)(lVar2 + -0x5c0);
  uVar10 = DAT_182670ae0;
  uVar17 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 + -0x410) ^ uVar19) + (*(ulonglong *)(lVar2 + -0x438) ^ uVar27) ^
       uVar17;
  uVar21 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0x712fab90)) ^ uVar27) << ((local_88 ^ 0x74) & 0x3f);
  uVar15 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar2 + -0x630) = uVar21 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_1826708fc;
  uVar29 = (*(ulonglong *)(lVar2 + -0x438) ^ uVar27) >> (((byte)uVar14 ^ 0x1d) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar29 ^ uVar15;
  uVar8 = DAT_182670910;
  uVar15 = CONCAT44(uVar10,uVar10);
  uVar19 = (ulonglong)DAT_182670910;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x76fdeb25)) = (uVar21 | uVar29) ^ uVar15;
  uVar29 = CONCAT44(uVar8,uVar8);
  uVar25 = uVar29 ^ uVar15 ^ uVar17 ^ *(ulonglong *)(lVar2 + -0xac0) ^
           *(ulonglong *)(lVar2 + -0x610);
  *(ulonglong *)(lVar2 + -0xd38) = uVar25;
  uVar21 = (uVar29 ^ uVar25) << 5;
  uVar15 = (*(ulonglong *)(lVar2 + -0xd38) >> 0x20 ^ uVar19) >> 0x1b;
  uVar29 = (uVar25 ^ uVar29) + (*(ulonglong *)(lVar2 + -0x660) ^ uVar26) ^ uVar31;
  uVar25 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(ulonglong *)(lVar2 + -0x890) = uVar29;
  uVar10 = DAT_1826708f4;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar21 ^ uVar25;
  uVar11 = DAT_182670a08;
  *(ulonglong *)(lVar2 + -0x548) = uVar15 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182670a84;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x4c8) = (uVar21 | uVar15) ^ uVar25;
  uVar12 = DAT_182670abc;
  uVar19 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar2 + -0xb70) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0x85113ad9)) ^ CONCAT44(uVar10,uVar10) ^ uVar25 ^ uVar29 ^
       uVar31;
  uVar11 = DAT_182670908;
  uVar25 = CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0x9c8);
  uVar29 = CONCAT44(uVar12,uVar12);
  uVar26 = uVar25 << (((byte)uVar5 ^ 0x9a) & 0x3f);
  uVar28 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar15 = ((ulonglong)(uVar9 >> 0x1b) | uVar18 << 5) ^ *(ulonglong *)(lVar2 + -0x9c8) >> 0x1b;
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar17 ^ *(ulonglong *)(lVar2 + -0x610)) + uVar25 ^ uVar29;
  *(ulonglong *)(lVar2 + -0xa18) = uVar26 ^ uVar28;
  uVar10 = DAT_182670814;
  *(ulonglong *)(lVar2 + -0x658) = uVar15 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182670864;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x420) = (uVar15 | uVar26) ^ uVar28;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar15 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar2 + -0x1b8) =
       *(ulonglong *)(lVar2 - (uVar19 ^ 0xe600d499)) ^ *(ulonglong *)(lVar2 - (uVar23 ^ 0x712fa910))
       ^ uVar25 ^ uVar28 ^ uVar29;
  uVar25 = (*(ulonglong *)(lVar2 - (uVar15 ^ 0xd0b9e7b8)) ^ uVar25) +
           (CONCAT44(uVar7,uVar4) ^ 0x87fc0bc826cd33fa);
  uVar15 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar2 + -0xd88) = uVar25 ^ CONCAT44(uVar22,uVar22);
  uVar10 = DAT_1826708dc;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar19 ^ 0xe600d829)) ^ uVar31) +
           (CONCAT44(DAT_1826707b0,uVar6) ^ 0x123a4847f1d9ef25);
  *(ulonglong *)(lVar2 + -0x588) = uVar28 ^ uVar15;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x27d0095)) = uVar28 + uVar25 ^ CONCAT44(uVar10,uVar10);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar20) * 4) = uVar13;
  return;
}



############ FUN_ 180d25ad0 size=4833 ############

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

void FUN_180d25ad0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  byte *pbVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  uint *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  byte bVar34;
  uint uVar35;
  ulonglong uVar36;
  byte local_res18;
  
  uVar18 = DAT_182670a74;
  uVar20 = DAT_182670a40;
  uVar21 = DAT_18267082c;
  uVar5 = DAT_1826707e8;
  uVar6 = DAT_1826707d4;
  uVar25 = DAT_1826707b4;
  uVar4 = DAT_1826707ac;
  lVar1 = DAT_1826707a0;
  uVar15 = (ulonglong)DAT_1826707ac;
  DAT_1826707f0 =
       (DAT_1826707ec << 0x10 | DAT_1826707ec & 0xff00) << 8 | DAT_1826707ec >> 8 & 0xff00 |
       DAT_1826707ec >> 0x18;
  DAT_1826707dc = DAT_1826707c0 << 0x10 | DAT_1826707c0 >> 0x10;
  DAT_1826707c4 = ~DAT_1826707e0;
  uVar13 = DAT_1826707ac & 3;
  if (uVar13 < 2) {
    uVar26 = DAT_1826707e8;
    if (uVar13 == 0) {
      uVar26 = DAT_1826707ac;
    }
  }
  else {
    uVar26 = DAT_1826707a8;
    if (uVar13 < 3) {
      uVar26 = DAT_1826707b4;
    }
  }
  uVar22 = (ulonglong)DAT_1826707d4;
  uVar35 = ~DAT_1826707d4;
  uVar13 = *(uint *)(&DAT_18260f758 + DAT_182670c48);
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670c48) ^ DAT_1826707d4;
  uVar29 = (ulonglong)DAT_1826707e8;
  uVar24 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  DAT_1826707bc = uVar35;
  DAT_1826707e4 = uVar26;
  *(ulonglong *)(CONCAT44(DAT_182670a20,DAT_182670a20) ^ *(ulonglong *)(DAT_1826707a0 + -0x378)) =
       CONCAT44(DAT_182670a40,DAT_182670a40) ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8) ^ uVar24;
  uVar3 = DAT_1826707a8;
  *(uint *)(lVar1 - (uVar15 ^ 0xf523c305)) =
       *(uint *)(lVar1 - (uVar29 ^ 0x727d2ac1)) ^ uVar18 ^ uVar21 ^ uVar25 ^ 0x2000;
  uVar15 = (ulonglong)DAT_182670af4;
  uVar25 = (*(uint *)(lVar1 + -0x8e0) ^ DAT_182670a8c) & (*(uint *)(lVar1 + -0xc04) ^ uVar18) ^
           DAT_182670a5c;
  *(uint *)(lVar1 + -0x14) = uVar25;
  uVar25 = uVar25 ^ DAT_182670a5c;
  *(uint *)(lVar1 + -0x7e4) =
       (*(uint *)(lVar1 - ((ulonglong)uVar26 ^ 0x727d2ac1)) ^ uVar21) &
       *(uint *)(((ulonglong)uVar3 ^ 0xfeb09b87) + lVar1) ^ DAT_182670a10;
  uVar3 = DAT_1826707cc;
  uVar25 = (*(uint *)(lVar1 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc057c)) ^ DAT_182670a10 | uVar25) ^
           DAT_182670888;
  uVar29 = (ulonglong)DAT_1826709f4;
  *(uint *)(lVar1 + -0x280) = uVar25;
  *(uint *)(*(ulonglong *)(lVar1 + -0xbd0) ^ uVar15) = uVar25 ^ DAT_182670888 ^ uVar20;
  uVar8 = DAT_1826707f0;
  uVar26 = DAT_1826707c4;
  puVar27 = (uint *)(*(longlong *)(lVar1 + -0x1a0) + 4 +
                    (CONCAT44(uVar3,uVar5) ^ 0x12d90f88727d2efd) * 0x10);
  uVar15 = CONCAT44(DAT_1826707c4,uVar4);
  *(ulonglong *)(lVar1 + -0x958) = (ulonglong)puVar27 ^ uVar29;
  *(ulonglong *)(lVar1 + -0x1a0) = uVar15 ^ 0xe8421b6867a577e;
  uVar20 = *puVar27 ^ DAT_182670904 ^ uVar20;
  *(uint *)(lVar1 + -0x814) = DAT_1826707dc ^ 0x90d800 | 0x996e05fd;
  *(uint *)(lVar1 + -0x42c) = uVar20;
  uVar5 = DAT_1826707c0;
  uVar25 = DAT_1826707b4;
  uVar29 = (ulonglong)DAT_1826707c0;
  *(uint *)(lVar1 + -0xc0c) =
       (uVar20 ^ DAT_182670904) & (*(uint *)(lVar1 + -0xc04) ^ uVar18) ^ DAT_1826709e4;
  uVar16 = CONCAT44(uVar6,uVar25);
  *(ulonglong *)(lVar1 + -0xbb0) =
       (CONCAT44(uVar5,uVar3) ^ 0x6f6332f2e28812de) - (uVar16 ^ 0xbdc7faba45e5018);
  uVar15 = (ulonglong)DAT_1826707e4;
  uVar21 = (*(uint *)(lVar1 + -0x43c) ^ uVar21) & (uVar35 ^ 0xf523cf05) ^ DAT_1826708b8;
  *(uint *)(lVar1 + -0x8e0) = uVar21;
  uVar9 = DAT_1826708a4;
  uVar21 = (*(uint *)(lVar1 - (uVar15 ^ 0x727d22f1)) ^ DAT_1826709e4 | uVar21 ^ DAT_1826708b8) ^
           DAT_182670984;
  *(uint *)(lVar1 + -0x14) = uVar21;
  *puVar27 = uVar21 ^ DAT_182670984 ^ DAT_182670a40;
  uVar7 = DAT_1826707ec;
  *(ulonglong *)(lVar1 + -0x548) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar1 + -0x3b0)) >> (((byte)uVar8 ^ 0x28) & 0x3f);
  uVar11 = DAT_182670b0c;
  uVar8 = DAT_182670944;
  uVar15 = (ulonglong)DAT_1826708ac;
  uVar28 = (ulonglong)DAT_182670944;
  *(uint *)(lVar1 + -0x7e4) =
       (*(uint *)(lVar1 + -0x3d4) ^ DAT_182670988) & (*(uint *)(lVar1 + -0x398) ^ DAT_182670ae0) ^
       DAT_182670aac;
  uVar20 = DAT_182670a40;
  uVar21 = DAT_1826707e0;
  pbVar19 = (byte *)((CONCAT44(uVar25,uVar3) ^ 0xffffdfff12d90f88) + *(longlong *)(lVar1 + -0x168));
  *(ulonglong *)(lVar1 + -0x390) = (ulonglong)pbVar19 ^ uVar15;
  uVar9 = DAT_1826708f4;
  *(byte *)(lVar1 + -0x941) = *pbVar19 ^ (byte)uVar8 ^ (byte)uVar20;
  uVar10 = _DAT_1826708f8;
  uVar25 = DAT_1826707a8;
  *(ulonglong *)(lVar1 + -0x660) =
       (*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707c4 ^ 0x4303f487)) ^ CONCAT44(uVar9,uVar9)) >>
       (((byte)uVar11 ^ *(byte *)(lVar1 - ((ulonglong)uVar21 ^ 0xbcfc0710))) & 0x3f);
  bVar17 = (byte)DAT_18267099c;
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xf881e21)) =
       uVar28 & 0xff ^ (ulonglong)*(byte *)(lVar1 + -0x941) ^ uVar23;
  uVar18 = DAT_1826707e8;
  uVar15 = (ulonglong)DAT_182670840;
  *(ulonglong *)(lVar1 + -0xbb0) =
       CONCAT44(DAT_1826707e8,uVar25) ^ 0x39fea4df58a852ad | *(ulonglong *)(lVar1 + -0x6b8) ^ uVar24
  ;
  pbVar19 = (byte *)(*(longlong *)(lVar1 + -0x168) + 1);
  *(ulonglong *)(lVar1 + -0x418) = (ulonglong)pbVar19 ^ uVar15;
  uVar20 = DAT_1826707dc;
  uVar15 = (ulonglong)DAT_1826707dc;
  *(byte *)(lVar1 - ((ulonglong)DAT_1826707e4 ^ 0x727d2fa4)) =
       *pbVar19 ^ bVar17 ^ (byte)DAT_182670a40;
  uVar28 = (ulonglong)(*(byte *)(lVar1 + -0x159) ^ bVar17);
  uVar24 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(lVar1 + -0x3b0) = uVar28 ^ CONCAT44(uVar8,uVar8);
  uVar9 = DAT_182670a68;
  puVar33 = (ulonglong *)(lVar1 - ((ulonglong)uVar21 ^ 0xbcfc07d0));
  *puVar33 = uVar28 << ((byte)DAT_1826707cc & 0x3f) ^ uVar24;
  uVar28 = (ulonglong)DAT_18267088c;
  uVar31 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x588) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0xadc3c06)) ^ uVar23 |
       *(ulonglong *)(lVar1 + -0x548) ^ uVar24) ^ uVar31;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707ec ^ 0x14f6db0)) =
       *(ulonglong *)(lVar1 + -0x548) ^ uVar24 ^ 0x6d77bd2ba13abe3;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar35 ^ 0xf523cbf9)) =
       *(longlong *)(lVar1 - (uVar15 ^ 0x12d90ee0)) + 2U ^ uVar28;
  bVar17 = (byte)DAT_1826708e8;
  uVar15 = (ulonglong)DAT_1826707b4;
  *(uint *)(lVar1 - (uVar29 ^ 0xf881eed)) =
       *(uint *)(*(ulonglong *)(lVar1 + -0x590) ^ (ulonglong)DAT_182670a70) ^ DAT_182670a40;
  *(byte *)(lVar1 - (uVar15 ^ 0xffffdcce)) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x4f8) ^ uVar28) ^ bVar17 ^ (byte)DAT_182670a40;
  uVar15 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(lVar1 + -0x660) = (*(byte *)(lVar1 + -0x331) ^ bVar17) ^ uVar15;
  uVar3 = DAT_1826707f0;
  uVar23 = (*(ulonglong *)(lVar1 - (uVar29 ^ 0xf8814b9)) ^ uVar15) << 0x10;
  *(ulonglong *)(lVar1 + -0xbb0) = uVar23 ^ CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar1 + -0x3b0) =
       CONCAT44(uVar3,DAT_1826707c4) ^ CONCAT44(uVar18,uVar4) ^ 0xc45f7e8319a0fe6e;
  bVar17 = (byte)DAT_182670964;
  lVar2 = DAT_1826707a0;
  bVar12 = (byte)DAT_1826707e0;
  uVar15 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0x12d90370)) =
       (uVar23 | uVar31 ^ *(ulonglong *)(lVar1 + -0x588)) ^ uVar31;
  uVar23 = (ulonglong)DAT_182670a98;
  *(longlong *)(lVar2 + -0x548) = 0x380e882d874ebf7 << ((bVar12 ^ 0xb8) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xbcfc0870)) = *(longlong *)(lVar2 + -0x168) + 3U ^ uVar23;
  uVar21 = DAT_1826708b8;
  *(byte *)(lVar2 + -0x861) =
       *(byte *)(uVar23 ^ *(ulonglong *)(lVar2 + -0xae8)) ^ bVar17 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar35 ^ 0xf523c6e1)) =
       (CONCAT44(DAT_182670a34,DAT_182670a34) ^ *(ulonglong *)(lVar2 + -0xd88)) << 0x28;
  uVar10 = DAT_1826709ac;
  uVar15 = (ulonglong)(bVar17 ^ *(byte *)(lVar2 + -0x861));
  *(ulonglong *)(lVar2 + -0x660) = uVar15 ^ CONCAT44(DAT_182670860,DAT_182670860);
  uVar9 = DAT_1826708c4;
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0x3b0) = uVar15 << 0x18 ^ uVar23;
  uVar18 = DAT_1826707e8;
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar24 = (ulonglong)DAT_182670a6c;
  uVar15 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707cc ^ 0x12d90a00)) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0xadc334e)) ^ uVar23 |
       uVar31 ^ *(ulonglong *)(lVar2 + -0xcf8)) ^ uVar30;
  uVar23 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x727d2d6d)) = *(longlong *)(lVar2 + -0x168) + 4U ^ uVar24;
  *(byte *)(lVar2 - (uVar23 ^ 0x14f6299)) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar2 + -0x390)) ^ (byte)uVar21 ^ (byte)DAT_182670a40;
  uVar10 = DAT_182670998;
  uVar25 = DAT_1826707a8;
  lVar1 = DAT_1826707a0;
  uVar15 = *(ulonglong *)(DAT_1826707a0 + -0x588);
  uVar31 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar23 = (ulonglong)*(byte *)(DAT_1826707a0 + -0x6c9) ^ (ulonglong)(uVar21 & 0xff);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (CONCAT44(uVar26,uVar35) ^ 0xea92a271685eb694) >> (((byte)DAT_1826707c4 ^ 0x77) & 0x3f);
  uVar21 = DAT_1826707e4;
  *(ulonglong *)(lVar1 + -0x548) = uVar23 ^ uVar31;
  uVar9 = DAT_182670910;
  uVar23 = uVar23 << 0x20;
  *(ulonglong *)(lVar1 + -0x9e0) = uVar23 ^ CONCAT44(uVar10,uVar10);
  uVar28 = CONCAT44(uVar9,uVar9);
  uVar23 = uVar23 | uVar30 ^ uVar15;
  *(ulonglong *)(lVar1 + -0x660) = uVar23 ^ uVar28;
  lVar2 = DAT_1826707a0;
  uVar15 = (ulonglong)_DAT_1826709e0;
  *(ulonglong *)(lVar1 + -0xcf8) =
       (CONCAT44(uVar25,uVar21) ^ 0xaf861d8861e745a8) << (((byte)uVar18 ^ 0xe4) & 0x3f);
  bVar17 = (byte)DAT_182670934;
  pbVar19 = (byte *)(*(longlong *)(lVar1 + -0x168) + 5);
  *(ulonglong *)(lVar2 + -0x3b0) = CONCAT44(uVar20,uVar4) ^ 0xed110cb97d7a0e28 | uVar23;
  *(ulonglong *)(lVar2 + -0x418) = (ulonglong)pbVar19 ^ uVar15;
  uVar25 = DAT_1826707b4;
  *(byte *)(lVar2 + -0x361) = *pbVar19 ^ bVar17 ^ (byte)DAT_182670a40;
  uVar9 = DAT_1826709a0;
  uVar21 = DAT_1826707e4;
  *(ulonglong *)(lVar2 + -0xbb0) =
       CONCAT44(uVar35,DAT_1826707e4) ^ 0xdd1e440dec99e94d |
       CONCAT44(uVar3,uVar25) ^ 0xc2aa8aadafa7c4de;
  uVar36 = CONCAT44(uVar9,uVar9);
  local_res18 = (byte)uVar5;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar35 ^ 0xf523ca49)) =
       (bVar17 ^ *(byte *)(lVar2 + -0x361)) ^ uVar36;
  bVar17 = (byte)DAT_182670854;
  uVar23 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar2 + -0x588) = (uVar36 ^ *puVar33) << ((local_res18 ^ 0xf1) & 0x3f) ^ uVar23;
  uVar32 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar15 = (ulonglong)DAT_1826707a8;
  uVar24 = (ulonglong)DAT_182670a10;
  uVar30 = *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x727d2b75)) ^ uVar23 |
           uVar28 ^ *(ulonglong *)(lVar2 + -0x660);
  *(ulonglong *)(lVar2 + -0xae8) = *(longlong *)(lVar2 + -0x168) + 6U ^ uVar24;
  *(ulonglong *)(lVar2 + -0x9e0) = uVar30 ^ uVar32;
  *(byte *)(lVar2 + -0x763) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar15 ^ 0xfeb09147)) ^ uVar24) ^ bVar17 ^
       (byte)DAT_182670a40;
  uVar10 = DAT_182670b14;
  bVar12 = (byte)DAT_1826707b4;
  uVar28 = (ulonglong)(*(byte *)(lVar2 - (uVar22 ^ 0xadc379d)) ^ bVar17);
  *(ulonglong *)(lVar2 + -0xcf8) = uVar28 ^ CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar28 = uVar28 << ((bVar12 ^ 0xcf) & 0x3f);
  *(undefined8 *)(lVar2 + -0xbb0) = 0x3194a8bca10817f5;
  uVar9 = DAT_1826707fc;
  *(ulonglong *)(lVar2 + -0x3b0) = uVar28 ^ CONCAT44(uVar10,uVar10);
  bVar17 = (byte)DAT_1826709a4;
  uVar21 = DAT_1826707cc;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar24 = (ulonglong)DAT_182670804;
  uVar15 = CONCAT44(uVar26,DAT_1826707cc);
  uVar32 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar2 + -0x660) = uVar30 + uVar28 ^ uVar23;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x588) = uVar15 ^ 0x407b20c480020068 | 0x3a848f0a325dbb80;
  uVar26 = DAT_1826707ec;
  uVar15 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707ec ^ 0x14f67c0)) =
       *(longlong *)(lVar2 - (uVar32 ^ 0x12d90ee0)) + 7U ^ uVar24;
  *(byte *)(lVar1 - (uVar15 ^ 0x14f655a)) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar1 + -0x390)) ^ (byte)DAT_182670a40 ^ bVar17;
  uVar28 = (ulonglong)DAT_1826707e8;
  uVar15 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  uVar18 = DAT_1826707c0 ^ 0xc4ac5ffa;
  *(ulonglong *)(lVar1 - (uVar28 ^ 0x727d2205)) = (*(byte *)(lVar1 + -0x10a) ^ bVar17) ^ uVar15;
  uVar25 = DAT_182670878;
  uVar30 = (ulonglong)DAT_182670878;
  *(uint *)(lVar1 + -0x814) = (DAT_182670888 ^ *(uint *)(lVar1 + -0x280)) + uVar18;
  uVar15 = (uVar15 ^ *(ulonglong *)(lVar1 + -0xcf8)) << 0x38;
  *(ulonglong *)(lVar1 + -0xbb0) = uVar15 ^ CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar24 = CONCAT44(uVar25,uVar25);
  *(ulonglong *)(lVar1 + -0x9e0) = (*(ulonglong *)(lVar1 + -0x660) ^ uVar23) + uVar15 ^ uVar24;
  uVar18 = DAT_1826707e4;
  lVar2 = DAT_1826707a0;
  uVar15 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(lVar1 + -0xb08) =
       *(longlong *)(lVar1 + -0xa58) + (CONCAT44(uVar20,DAT_1826707e4) ^ 0x12d90f88727d2efd) * 8 ^
       uVar15;
  bVar12 = (byte)DAT_182670a48;
  *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc0990)) ^ uVar15) =
       *(ulonglong *)(lVar1 - (uVar28 ^ 0x727d271d)) ^ uVar31 ^ uVar24;
  bVar17 = (byte)DAT_1826709b0;
  pbVar19 = (byte *)(*(longlong *)(lVar2 - (uVar22 ^ 0xadc3196)) +
                    (CONCAT44(uVar4,uVar35) ^ 0xf523cf01f523cf09));
  *(ulonglong *)(lVar2 + -0x418) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182670a20;
  uVar25 = DAT_1826707a8;
  *(byte *)(lVar2 + -0xd2a) = *pbVar19 ^ (byte)DAT_182670a40 ^ bVar17;
  uVar9 = DAT_182670968;
  uVar15 = (ulonglong)DAT_182670a80;
  *(ulonglong *)(lVar2 + -0x3b0) =
       (CONCAT44(uVar7,uVar21) ^ 0x5087b6d9c63e3834) -
       (CONCAT44(uVar18,uVar25) ^ 0xf62cafe22f47a0a9);
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x588) = (*(byte *)(lVar2 + -0xd2a) ^ bVar17) ^ uVar23;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0x727d2415)) =
       (CONCAT44(uVar3,uVar6) ^ 0x50644f010adc30f7) + *(longlong *)(DAT_1826707a0 + -0x168) ^ uVar15
  ;
  *(byte *)(lVar1 + -0xfa) =
       *(byte *)(*(ulonglong *)(lVar1 - (uVar29 ^ 0xf881831)) ^ uVar15) ^ (byte)DAT_182670a40 ^
       bVar12;
  *(uint *)(lVar1 + -0xc04) = DAT_1826707cc ^ 0x21804024 | 0x9e3bbb98;
  uVar9 = DAT_182670a7c;
  uVar29 = (ulonglong)(bVar12 ^ *(byte *)(lVar1 + -0xfa));
  *(ulonglong *)(lVar1 + -0xcf8) = uVar29 ^ CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar6 = DAT_182670888;
  uVar15 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x660) = uVar29 << (((byte)DAT_1826707b4 ^ 0xf7) & 0x3f) ^ uVar15;
  bVar17 = (byte)DAT_182670884;
  uVar25 = DAT_1826707e0;
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar28 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar1 + -0xbb0) =
       (*(ulonglong *)(lVar1 - (uVar22 ^ 0xadc369e)) ^ uVar15 |
       *(ulonglong *)(lVar1 + -0x588) ^ uVar23) ^ uVar29;
  uVar15 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar1 + -0x2b0) =
       CONCAT44(uVar25,uVar35) ^ 0xfa7343ae5f01d8d7 | uVar16 ^ 0xa346291878252f21;
  *(ulonglong *)(lVar1 - (uVar15 ^ 0x12d90c18)) = *(longlong *)(lVar1 + -0x168) + 10U ^ uVar30;
  uVar15 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar1 + -0x3b0) =
       (CONCAT44(uVar3,uVar26) ^ 0x96fb5591c17740b8) - (uVar36 ^ *(ulonglong *)(lVar1 + -0x548));
  bVar34 = (byte)DAT_182670a40;
  *(byte *)(lVar1 - ((ulonglong)uVar35 ^ 0xf523cdb8)) =
       *(byte *)(*(ulonglong *)(lVar1 - (uVar15 ^ 0x4303fef7)) ^ uVar30) ^ bVar34 ^ bVar17;
  uVar10 = DAT_182670a08;
  uVar15 = (ulonglong)(*(byte *)(lVar1 + -0x2b9) ^ bVar17);
  bVar17 = (byte)DAT_1826707b8;
  *(ulonglong *)(lVar1 + -0xcf8) =
       (CONCAT44(uVar4,DAT_1826707d8) ^ 0x4d5f8377b6abce72) >> ((local_res18 ^ 0xed) & 0x3f);
  uVar9 = DAT_18267089c;
  *(ulonglong *)(lVar1 + -0x588) = uVar15 ^ CONCAT44(uVar10,uVar10);
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x660) = uVar15 << ((bVar17 ^ 0xe5) & 0x3f) ^ uVar16;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b4 ^ 0xffffdd4f)) =
       (*(ulonglong *)(lVar1 - (uVar28 ^ 0xbcfc0b78)) ^ uVar24) +
       (CONCAT44(DAT_1826707b0,uVar5) ^ 0x482b821e39ef2653);
  uVar15 = (ulonglong)DAT_1826707a8;
  uVar24 = *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707f0 ^ 0x506444b1)) ^ uVar29 |
           *(ulonglong *)(lVar1 + -0x660) ^ uVar16;
  *(ulonglong *)(lVar1 + -0x548) = uVar24 ^ CONCAT44(DAT_182670a3c,DAT_182670a3c);
  bVar17 = (byte)DAT_1826709fc;
  pbVar19 = (byte *)(*(longlong *)(lVar1 - (uVar15 ^ 0xfeb09ac7)) +
                    (CONCAT44(uVar4,uVar5) ^ 0xf523cf010f8812d2));
  *(ulonglong *)(lVar1 + -0x418) = (ulonglong)pbVar19 ^ (ulonglong)DAT_18267088c;
  uVar9 = DAT_182670ad8;
  bVar12 = *pbVar19 ^ bVar34;
  *(byte *)(lVar1 + -0xa35) = bVar12 ^ bVar17;
  uVar15 = CONCAT44(DAT_182670af4,DAT_182670af4);
  *(ulonglong *)(lVar1 + -0x3b0) = (ulonglong)bVar12 ^ CONCAT44(uVar9,uVar9);
  uVar4 = DAT_182670a8c;
  uVar16 = CONCAT44(uVar3,DAT_1826707f4);
  uVar23 = (ulonglong)bVar12 << 0x18;
  *(ulonglong *)(lVar1 + -0xcf8) = uVar23 ^ uVar15;
  uVar29 = (ulonglong)DAT_182670a44;
  *(ulonglong *)(lVar1 + -0x588) = (uVar24 | uVar23) ^ CONCAT44(uVar4,uVar4);
  pbVar19 = (byte *)((uVar16 ^ 0x50644f01fffc2ef3) + *(longlong *)(lVar1 + -0x168));
  uVar15 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar1 + -0xae8) = (ulonglong)pbVar19 ^ uVar29;
  bVar17 = *pbVar19 ^ (byte)DAT_182670960;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar13 ^ uVar35;
  *(byte *)(lVar1 - (uVar15 ^ 0x727d29d4)) = bVar17 ^ bVar34;
  return;
}



############ FUN_ 180cce660 size=5497 ############

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

void FUN_180cce660(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  byte bVar21;
  int iVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  byte local_d8;
  
  uVar15 = DAT_1826709ac;
  uVar3 = DAT_1826707e4;
  uVar10 = DAT_1826707c0;
  uVar9 = DAT_1826707b8;
  uVar7 = DAT_1826707ac;
  lVar4 = DAT_1826707a0;
  DAT_1826707e0 = DAT_1826707ec * DAT_1826707dc;
  uVar17 = DAT_1826707c4 & 7;
  if (uVar17 < 4) {
    if (uVar17 < 2) {
      uVar45 = DAT_1826707ac;
      if (uVar17 == 0) {
        uVar45 = DAT_1826707c4;
      }
    }
    else {
      uVar45 = DAT_1826707e4;
      if (uVar17 < 3) {
        uVar45 = DAT_1826707f4;
      }
    }
  }
  else if (uVar17 < 6) {
    uVar45 = DAT_1826707d4;
    if (uVar17 < 5) {
      uVar45 = DAT_1826707c8;
    }
  }
  else {
    uVar45 = DAT_1826707f0;
    if (uVar17 < 7) {
      uVar45 = DAT_1826707b4;
    }
  }
  uVar33 = (ulonglong)DAT_1826707b8;
  uVar28 = (ulonglong)DAT_1826707c0;
  uVar42 = DAT_1826707b8 - DAT_1826707c0;
  uVar18 = *(uint *)(&DAT_18260f750 + (uVar28 ^ 0xe625e06a) + (longlong)DAT_182670e30) ^
           DAT_1826707b8;
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670e30);
  uVar31 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar25 = (CONCAT44(DAT_1826708b4,DAT_1826708b4) ^ *(ulonglong *)(DAT_1826707a0 + -0x660)) <<
           (((byte)DAT_1826707f4 ^ 0x27) & 0x3f);
  uVar37 = (ulonglong)DAT_1826707c8;
  DAT_1826707b0 = uVar45;
  DAT_1826707e8 = uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar25 ^ CONCAT44(DAT_1826707f8,DAT_1826707f8);
  uVar16 = DAT_182670938;
  uVar8 = DAT_1826707b4;
  uVar41 = CONCAT44(uVar15,uVar15);
  uVar25 = *(ulonglong *)(lVar4 - (uVar37 ^ 0x2000482d)) ^ uVar31 | uVar25;
  uVar36 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar4 + -0x588) = uVar25 ^ uVar41;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0x76cc0662)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x8c020c64)) ^ CONCAT44(uVar16,uVar16)) - uVar25
       ^ uVar36;
  uVar15 = DAT_182670afc;
  uVar29 = CONCAT44(DAT_18267081c,DAT_18267081c);
  uVar25 = CONCAT44(DAT_182670a34,DAT_182670a34);
  puVar24 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c4 ^ 0x1345d0ef));
  uVar41 = uVar25 ^ uVar29 ^ uVar41 ^ *puVar24 ^ *(ulonglong *)(lVar4 + -0x5c0);
  uVar37 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar4 + -0xc18) = uVar41;
  uVar3 = DAT_1826707ec;
  puVar1 = (ulonglong *)(lVar4 + -0x220);
  uVar37 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0x8048818)) ^ uVar29) >> (((byte)uVar45 ^ 0x36) & 0x3f)
  ;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar37 ^ CONCAT44(uVar15,uVar15);
  uVar8 = DAT_1826707d4;
  *(longlong *)(lVar4 + -0x4c8) = 0xadfa52c3fe2997d << ((byte)*puVar1 & 0x3f);
  uVar30 = (uVar29 ^ uVar41) << (((byte)uVar3 ^ 0x3e) & 0x3f);
  puVar2 = (ulonglong *)(lVar4 + -0x6f0);
  *puVar2 = uVar30 ^ CONCAT44(DAT_182670a60,DAT_182670a60);
  lVar5 = DAT_1826707a0;
  uVar30 = uVar30 | uVar37;
  *(ulonglong *)(lVar4 + -0xd88) = uVar37 | 0x1bff39588f31e20f;
  uVar43 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar41 = uVar30 ^ uVar43;
  uVar26 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(ulonglong *)(lVar5 + -0x998) = uVar41;
  uVar30 = (*(ulonglong *)(lVar5 - (uVar33 ^ 0xf7bb763d)) ^ uVar25) - uVar30;
  uVar46 = uVar30 ^ uVar26;
  uVar34 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar5 + -0xce0) = uVar46;
  uVar13 = DAT_1826707e0;
  uVar3 = DAT_1826707b4;
  uVar29 = CONCAT44(DAT_182670810,DAT_182670810);
  uVar37 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar5 + -0x438) =
       uVar29 ^ uVar34 ^ *(ulonglong *)(lVar5 + -0xa18) ^ *(ulonglong *)(lVar5 + -0x9c8) ^ uVar36;
  uVar45 = DAT_1826707c4;
  lVar4 = DAT_1826707a0;
  uVar40 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  bVar21 = (byte)uVar3;
  uVar38 = (*(ulonglong *)(lVar5 - (uVar37 ^ 0x4c3fbbc7)) ^ uVar34) >> ((bVar21 ^ 0x48) & 0x3f) ^
           uVar40;
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar38;
  lVar5 = DAT_1826707a0;
  uVar37 = *(ulonglong *)(DAT_1826707a0 + -0xa18);
  uVar25 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xf7bb77c5)) ^ uVar34) <<
       (((byte)DAT_1826707cc ^ 0x34) & 0x3f) ^ uVar31;
  uVar15 = DAT_18267080c;
  puVar27 = (ulonglong *)(lVar5 - (uVar25 ^ 0x20004a75));
  uVar35 = CONCAT44(DAT_182670974,DAT_182670974);
  uVar25 = *(ulonglong *)(lVar5 - (uVar25 ^ 0x20004a4d)) ^ uVar31 | uVar40 ^ *puVar27;
  uVar31 = uVar25 ^ uVar35;
  *(ulonglong *)(lVar5 + -0x400) = uVar31;
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar38 ^ CONCAT44(uVar45,uVar3) ^ uVar40 ^ 0x75d6279525d383c1;
  uVar15 = DAT_1826709b8;
  uVar25 = (uVar37 ^ uVar36) - uVar25;
  uVar38 = uVar25 ^ uVar32;
  *(ulonglong *)(lVar5 + -0x420) = uVar38;
  uVar16 = DAT_182670a10;
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar37 = uVar46 ^ uVar34 ^ uVar31 ^ uVar35 ^ uVar26;
  bVar20 = (byte)DAT_1826707f4;
  *(ulonglong *)(lVar5 + -0x588) = uVar37;
  uVar12 = DAT_1826707d8;
  lVar4 = DAT_1826707a0;
  uVar40 = (uVar37 ^ uVar34) >> ((bVar20 ^ 0x14) & 0x3f);
  uVar35 = (ulonglong)DAT_1826707d8;
  iVar22 = (DAT_1826707ac ^ 0x291db0df) * (uVar10 ^ 0xf63a6674);
  *(int *)(DAT_1826707a0 + -0x540) = iVar22;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar40 ^ CONCAT44(uVar16,uVar16);
  uVar15 = DAT_182670a44;
  uVar34 = (uVar34 ^ uVar37) << (((byte)DAT_1826707b4 ^ 99) & 0x3f);
  uVar48 = CONCAT44(DAT_182670988,DAT_182670988);
  *puVar1 = uVar34 ^ CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar45 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707a8;
  uVar34 = uVar34 | uVar40;
  uVar46 = CONCAT44(uVar15,uVar15);
  uVar39 = DAT_1826707a8 ^ uVar12;
  uVar37 = CONCAT44(DAT_1826707a8,uVar12);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar34 ^ uVar48;
  uVar15 = DAT_182670850;
  uVar30 = uVar30 - (uVar37 ^ 0x8cf869fe96cf05e8);
  DAT_1826707d0 = uVar39;
  *(ulonglong *)(lVar4 + -0xd88) = uVar30 ^ uVar46;
  uVar49 = CONCAT44(uVar15,uVar15);
  *puVar2 = uVar30 - uVar34 ^ uVar49;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = CONCAT44(uVar39,uVar39) ^ 0x370ea090f84c66e6;
  uVar47 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar4 + -0x5c0) = uVar34 - (CONCAT44(uVar12,uVar45) ^ 0xc19af9e8f6cdb853) ^ uVar47;
  *(uint *)(lVar4 + -0xcec) = 0x4b108104 >> ((byte)iVar22 & 0x1f);
  uVar15 = DAT_182670844;
  uVar30 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar37 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar41 = uVar30 ^ uVar38 ^ uVar32 ^ uVar43 ^ uVar41;
  uVar34 = (uVar30 ^ uVar41) >> (((byte)uVar39 ^ 0xa7) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar41;
  *(ulonglong *)(lVar4 + -0x438) = uVar34 ^ uVar26;
  uVar41 = (uVar30 ^ uVar41) << ((bVar21 ^ 0x5b) & 0x3f);
  *(ulonglong *)(lVar4 + -0x660) = uVar41 ^ uVar37;
  uVar16 = DAT_182670a0c;
  uVar14 = DAT_1826707e0;
  uVar11 = DAT_1826707cc;
  uVar38 = CONCAT44(uVar15,uVar15);
  uVar30 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar4 + -0x658) = (uVar41 | uVar34) ^ uVar38;
  uVar41 = CONCAT44(uVar16,uVar16);
  uVar37 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x80482b8)) =
       uVar25 - (CONCAT44(uVar8,uVar12) ^ 0x39826fed908bee02) ^ uVar41;
  uVar8 = DAT_1826707b0;
  uVar38 = *(ulonglong *)(lVar4 + -0x658) ^ uVar38;
  uVar34 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(ulonglong *)(lVar4 + -0xa18) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0x4c3fb947)) ^ uVar41) - uVar38 ^ uVar34;
  uVar25 = CONCAT44(DAT_182670840,DAT_182670840);
  uVar37 = (CONCAT44(uVar8,uVar14) ^ 0xff43820b842836c7) + uVar38 ^ uVar25;
  uVar41 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar4 + -0x400) = uVar37;
  uVar3 = DAT_1826707c4;
  uVar37 = *puVar2 ^ uVar41 ^ uVar37 ^ uVar25 ^ uVar49;
  uVar40 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar4 + -0x588) = uVar37;
  uVar23 = DAT_1826707cc + uVar14;
  DAT_1826707bc = uVar23;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x5e5190d0)) =
       (uVar41 ^ uVar37) >> (((byte)uVar3 ^ 0x62) & 0x3f) ^ uVar40;
  uVar25 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0xb3b975f4)) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xabb4f65c)) ^ uVar41) << 0x3b ^ uVar25;
  lVar4 = DAT_1826707a0;
  uVar44 = CONCAT44(uVar11,uVar23);
  uVar37 = *(ulonglong *)(DAT_1826707a0 + -0xd88);
  uVar32 = CONCAT44(DAT_18267093c,DAT_18267093c);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       CONCAT44(uVar13,uVar23) ^ 0xc0f0c669a4f0c645 | uVar44 ^ 0x1d7f848a874134ae;
  uVar25 = *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xabb4f1f4)) ^ uVar25 |
           uVar40 ^ *(ulonglong *)(lVar4 + -0x4c8);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar25 ^ uVar32;
  uVar15 = DAT_182670ab0;
  *(ulonglong *)(lVar4 + -0xc18) = uVar46 ^ uVar37 | 0x4fc56b570699ea69;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar25 = (*puVar2 ^ uVar49) - uVar25;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar44 ^ 0x4bdb9e9b30e9033e;
  uVar16 = DAT_182670970;
  *(ulonglong *)(lVar4 + -0x998) = uVar25 ^ uVar30;
  uVar15 = DAT_182670800;
  uVar13 = DAT_1826707ec;
  lVar5 = DAT_1826707a0;
  uVar41 = CONCAT44(uVar16,uVar16);
  uVar38 = uVar41 ^ uVar34 ^ uVar47 ^ *(ulonglong *)(lVar4 + -0xa18) ^
           *(ulonglong *)(lVar4 + -0x5c0);
  uVar43 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar4 + -0x660) = uVar25 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0x4c8);
  uVar37 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar4 + -0x438) = uVar38;
  lVar6 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar15,uVar15);
  uVar46 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(lVar5 + -0x420) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0x5e519020)) ^ uVar41) >> (((byte)uVar39 ^ 0xa3) & 0x3f) ^
       uVar40;
  puVar50 = (ulonglong *)(lVar5 - (uVar33 ^ 0xf7bb7545));
  uVar37 = (ulonglong)DAT_1826707f0;
  *puVar50 = (uVar38 ^ uVar41) << (((byte)uVar23 ^ 0xcf) & 0x3f) ^ uVar46;
  uVar25 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707cc ^ 0x8048258)) =
       *(ulonglong *)(lVar6 - (uVar37 ^ 0x5e519038)) ^ uVar40 | 0x68f5edee98887208;
  uVar37 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar6 - (uVar25 ^ 0xabb4f7d4)) =
       (uVar46 ^ *(ulonglong *)(lVar6 + -0x6b8) | uVar40 ^ *(ulonglong *)(lVar6 + -0x420)) ^ uVar37;
  uVar33 = CONCAT44(DAT_182670af4,DAT_182670af4);
  uVar41 = (ulonglong)DAT_18267089c;
  uVar25 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar3 = DAT_18267089c >> 0x17;
  *(ulonglong *)(lVar6 + -0x588) =
       (uVar34 ^ *(ulonglong *)(lVar6 + -0xa18)) -
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707d4 ^ 0x177fa3fe)) ^ uVar37) ^ uVar33;
  lVar4 = DAT_1826707a0;
  uVar38 = uVar25 ^ uVar37 ^ uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x998) ^
           *(ulonglong *)(DAT_1826707a0 + -0x400);
  uVar37 = *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *puVar1 = uVar38;
  uVar15 = DAT_182670a88;
  lVar5 = DAT_1826707a0;
  uVar34 = (uVar25 ^ uVar38) << 0x29;
  uVar40 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0x998);
  *(ulonglong *)(lVar4 + -0xd88) = ((ulonglong)uVar3 | uVar41 << 9) ^ uVar38 >> 0x17 ^ uVar40;
  uVar41 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar4 + -0xc18) =
       (uVar46 ^ uVar37) << ((byte)*(undefined8 *)(lVar4 + -0x660) & 0x3f);
  uVar3 = DAT_1826707cc;
  *puVar2 = uVar34 ^ CONCAT44(uVar15,uVar15);
  uVar38 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar34 = *(ulonglong *)(lVar5 - (uVar41 ^ 0x4c3fb277)) ^ uVar40 | uVar34;
  *(ulonglong *)(lVar5 + -0x9c8) = uVar34 ^ uVar38;
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x6c4009ec)) = (uVar30 ^ uVar25) - uVar34 ^ uVar26;
  lVar4 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670820,DAT_182670820);
  uVar37 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0x8048188)) ^ uVar25 ^ uVar33 ^ uVar32
           ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar19 = ~DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar37;
  uVar41 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  DAT_1826707d4 = uVar19;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xf7fb7fc7)) =
       (uVar37 ^ uVar25) >> (((byte)uVar3 ^ 0x28) & 0x3f) ^ uVar41;
  *puVar27 = uVar44 ^ 0x874ee4b8a464fa67;
  uVar14 = DAT_1826707f4;
  uVar37 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar42 ^ 0x119597bb)) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x4c8)) << (((byte)uVar19 ^ 0xe7) & 0x3f) ^ uVar37;
  uVar15 = DAT_1826708ec;
  uVar37 = uVar41 ^ *(ulonglong *)(lVar4 + -0x438) | uVar37 ^ *(ulonglong *)(lVar4 + -0x420);
  uVar34 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *(ulonglong *)(lVar4 + -0xa18) = uVar37 ^ uVar34;
  lVar5 = DAT_1826707a0;
  uVar41 = CONCAT44(uVar15,uVar15);
  uVar25 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0xe625e5ea)) ^ uVar33) - uVar37 ^ uVar41;
  uVar32 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar37 = *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  puVar27 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0x20004635));
  *(ulonglong *)(DAT_1826707a0 + -0x400) = uVar25;
  uVar15 = DAT_182670ad0;
  uVar34 = *puVar27 ^ uVar32 ^ uVar34 ^ uVar26 ^ uVar37;
  bVar21 = (byte)uVar7;
  *(ulonglong *)(lVar5 + -0xc18) = uVar34;
  local_d8 = (byte)uVar12;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar33 = CONCAT44(uVar23,DAT_1826707cc);
  *(ulonglong *)(lVar5 + -0x660) = (uVar34 ^ uVar32) >> ((bVar21 ^ 0x35) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar5 + -0x6b8) = (uVar32 ^ uVar34) << ((local_d8 ^ 0x6f) & 0x3f) ^ uVar29;
  *puVar1 = *(longlong *)(lVar5 + -0xce0) - (uVar33 ^ 0x77e390e5788163a2);
  uVar15 = DAT_182670b14;
  uVar32 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar5 + -0xd88) =
       (*(ulonglong *)(lVar5 - (uVar31 ^ 0xe90dc385)) ^ uVar30 | uVar29 ^ *puVar50) ^ uVar32;
  uVar29 = CONCAT44(uVar15,uVar15);
  *puVar2 = (uVar26 ^ uVar37) -
            (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707f4 ^ 0x3a763685)) ^ uVar32) ^ uVar29;
  uVar31 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(lVar5 + -0x998) =
       uVar41 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0x9c8) ^ uVar25 ^ uVar31;
  uVar3 = DAT_1826707b4;
  uVar34 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar26 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar5 + -0x7d8) =
       (*(ulonglong *)(lVar5 - (uVar28 ^ 0xe625e9fa)) ^ uVar31) >> ((bVar20 ^ 0x34) & 0x3f) ^ uVar34
  ;
  uVar28 = (ulonglong)DAT_1826707d4;
  bVar20 = (byte)DAT_1826707d4;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x1345d33f)) =
       (CONCAT44(uVar45,uVar10) ^ 0x62dec7cdd00edef8) - (CONCAT44(uVar8,uVar3) ^ 0x95937e71ce5d63bf)
  ;
  uVar37 = CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar5 + -0x4c8) =
       (*(ulonglong *)(lVar5 + -0x998) ^ uVar31) << ((bVar20 ^ 0xf8) & 0x3f) ^ uVar37;
  uVar15 = DAT_182670828;
  *(ulonglong *)(lVar5 + -0x438) =
       CONCAT44(DAT_182670a9c,DAT_182670a9c) ^ **(ulonglong **)(lVar5 + -0x4e0);
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x1345d147)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707e4 ^ 0x76cc08b2)) ^ uVar37 |
       *(ulonglong *)(lVar5 + -0x7d8) ^ uVar34) ^ uVar25;
  uVar37 = *puVar2;
  uVar34 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *(ulonglong *)(lVar5 + -0x588) =
       (uVar41 ^ *(ulonglong *)(lVar5 + -0x400)) - (*(ulonglong *)(lVar5 + -0x420) ^ uVar25) ^
       uVar36;
  lVar4 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707b0 ^ 0x5e519e00)) =
       uVar37 ^ *(ulonglong *)(lVar5 + -0x420) ^ uVar34 ^ uVar25 ^ uVar29;
  uVar31 = (*(ulonglong *)(lVar5 + -0xa18) ^ uVar34) >> ((bVar21 ^ 0xf) & 0x3f);
  uVar25 = (*(ulonglong *)(lVar5 + -0xa18) ^ uVar34) << 0x32;
  uVar37 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar5 + -0xc18) = uVar31 ^ CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar10 = DAT_1826707dc;
  *puVar1 = uVar25 ^ uVar37;
  uVar8 = DAT_1826707f0;
  uVar30 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar4 + -0xce0) = CONCAT44(uVar19,uVar10) ^ 0x8369ceb2ea23a8f2;
  uVar41 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar4 + -0x660) = (uVar25 | uVar31) ^ uVar41;
  *(undefined8 *)(lVar4 - ((ulonglong)uVar23 ^ 0xb3b9716c)) = 0x20b8bb205114b1a2;
  uVar16 = DAT_182670adc;
  uVar37 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(lVar4 + -0x5c0) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0x5e5192e8)) ^ uVar29) -
       (CONCAT44(uVar11,uVar42) ^ 0x371b52fe183b0fb9) ^ uVar37;
  uVar3 = DAT_1826709b4;
  uVar15 = DAT_182670998;
  uVar34 = CONCAT44(uVar16,uVar16);
  uVar25 = (ulonglong)DAT_1826709b4;
  *(ulonglong *)(lVar4 + -0x9c8) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x5e5191d8)) ^ uVar37) -
       (*(ulonglong *)(lVar4 + -0x660) ^ uVar41) ^ uVar34;
  *(ulonglong *)(lVar4 + -0x998) =
       uVar32 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x588) ^ CONCAT44(uVar3,uVar3) ^
       *(ulonglong *)(lVar4 + -0xd88);
  uVar37 = CONCAT44(uVar14,DAT_1826707c8);
  *(ulonglong *)(lVar4 + -0x658) =
       (*(ulonglong *)(lVar4 + -0x660) ^ uVar41) - (CONCAT44(uVar13,uVar8) ^ 0xeca02687f623713) ^
       CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x438) = -0x616e169d20d9bc1c - (uVar37 ^ 0x51dd8bb4492bfa10);
  uVar29 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xee25e3bb)) =
       *(ulonglong *)(lVar4 - (uVar35 ^ 0xee25edfb)) >> 0x10 ^
       ((ulonglong)(uVar3 >> 0x10) | uVar25 << 0x10) ^ uVar29;
  uVar25 = CONCAT44(DAT_182670934,DAT_182670934);
  uVar37 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar4 + -0x4c8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar39 ^ 0x728281e)) ^ CONCAT44(uVar3,uVar3)) << 0x30 ^
       uVar25;
  uVar3 = DAT_1826707e4;
  *(ulonglong *)(lVar4 + -0x400) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0xf7fb7f37)) ^ uVar25 |
       *(ulonglong *)(lVar4 + -0x7d8) ^ uVar29) ^ uVar37;
  *(ulonglong *)(lVar4 + -0x420) =
       (uVar36 ^ *puVar24) - (CONCAT44(uVar9,uVar3) ^ 0x598641b232ab61a0);
  uVar25 = CONCAT44(DAT_182670830,DAT_182670830);
  uVar31 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xabb4f9cc)) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x588)) - (CONCAT44(uVar7,uVar10) ^ 0x27bb998a53ffc249) ^
       uVar25;
  uVar37 = *(ulonglong *)(lVar4 + -0x400) ^ uVar37;
  *(ulonglong *)(lVar4 + -0xce0) = (*(ulonglong *)(lVar4 + -0xa18) ^ uVar25) - uVar37 ^ uVar48;
  uVar15 = DAT_182670a20;
  uVar28 = CONCAT44(DAT_182670a18,DAT_182670a18);
  uVar25 = (ulonglong)DAT_1826707b4;
  uVar37 = (CONCAT44(uVar45,uVar8) ^ 0xb306d2d8da8e1d33) + uVar37 ^ uVar28;
  *(ulonglong *)(lVar4 + -0xc18) = uVar37;
  uVar16 = DAT_182670a50;
  uVar29 = CONCAT44(uVar15,uVar15);
  *puVar1 = *(ulonglong *)(lVar4 + -0x9c8) ^ uVar29 ^ uVar37 ^ uVar28 ^ uVar34;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xabb4f56c)) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x8c020a64)) ^ uVar29) >> ((local_d8 ^ 0x43) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  *puVar2 = (*puVar1 ^ uVar29) << (((byte)uVar3 ^ 0x5a) & 0x3f) ^
            CONCAT44(DAT_182670908,DAT_182670908);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar17 ^ uVar42) * 4) = uVar18;
  return;
}



############ FUN_ 180d1c5e0 size=2859 ############

void FUN_180d1c5e0(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  uint uVar16;
  byte *pbVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  undefined8 *puVar23;
  ulonglong uVar24;
  longlong *plVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte local_res20;
  
  uVar9 = DAT_182670940;
  uVar10 = DAT_1826708f0;
  uVar8 = DAT_1826707e8;
  uVar7 = DAT_1826707e4;
  uVar6 = DAT_1826707e0;
  uVar16 = DAT_1826707d0;
  uVar19 = DAT_1826707bc;
  uVar4 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707b8;
  uVar15 = (ulonglong)DAT_1826707e8;
  uVar13 = DAT_1826707b8 & 7;
  uVar30 = (ulonglong)DAT_1826707d0;
  if (uVar13 < 4) {
    if (uVar13 < 2) {
      uVar27 = DAT_1826707e8;
      if (uVar13 == 0) {
        uVar27 = DAT_1826707b8;
      }
    }
    else {
      uVar27 = DAT_1826707ac;
      if (uVar13 < 3) {
        uVar27 = DAT_1826707b0;
      }
    }
  }
  else if (uVar13 < 6) {
    uVar27 = DAT_1826707bc;
    if (uVar13 < 5) {
      uVar27 = DAT_1826707a8;
    }
  }
  else {
    uVar27 = DAT_1826707d0;
    if (uVar13 < 7) {
      uVar27 = DAT_1826707f4;
    }
  }
  uVar18 = DAT_1826707d4 & DAT_1826707e4;
  uVar13 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707d4 ^ 0x7fbfafe7) + (longlong)DAT_182670c2c);
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670c2c) ^ DAT_1826707e4;
  uVar24 = (ulonglong)DAT_182670954;
  uVar20 = (ulonglong)DAT_1826708f0;
  DAT_1826707c4 = uVar18;
  DAT_1826707dc = uVar27;
  *(byte *)(DAT_1826707a0 + -0xb0a) = (byte)DAT_1826707f4 ^ 0x41;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar6 ^ 0xd5fef3fc)) = *(undefined8 *)(lVar2 + -0x1d0);
  uVar20 = uVar20 ^ *(ulonglong *)(lVar2 + -0x688);
  *(ulonglong *)(lVar2 + -0x2f8) = *(ulonglong *)(lVar2 + -0x688);
  *(ulonglong *)(lVar2 + -0x560) = *(ulonglong *)(lVar2 + -0xd80) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x38) = uVar20;
  *(ulonglong *)(lVar2 + -0x220) = *(ulonglong *)(lVar2 + -0x1b8) ^ 0x7e9a56f874056674;
  pbVar17 = (byte *)(uVar10 ^ uVar20);
  bVar29 = (byte)uVar16;
  *(byte **)(lVar2 + -0x5b0) = pbVar17 + 1;
  *(byte *)(lVar2 + -0xa72) = (byte)uVar9 ^ DAT_1826709e0 ^ *pbVar17;
  uVar5 = DAT_1826707ac;
  uVar22 = (ulonglong)DAT_1826707ac;
  *(byte *)(lVar2 - ((ulonglong)uVar27 ^ 0xa3b1917b)) = bVar29 ^ 0x6e;
  *(byte *)((ulonglong)DAT_182670924 ^ *(ulonglong *)(lVar2 + -0x770)) = (byte)uVar19 ^ 0xc5;
  pbVar17 = (byte *)(uVar24 ^ *(ulonglong *)(lVar2 + -0x560));
  uVar20 = CONCAT44(uVar4,DAT_1826707a8);
  *(byte **)(lVar2 + -0x340) = pbVar17 + 1;
  *(ulonglong *)(lVar2 + -0x9e0) = (uVar20 ^ 0xf3124ec6407946b9) << (((byte)uVar5 ^ 0x19) & 0x3f);
  *pbVar17 = (byte)uVar9 ^ *(byte *)(lVar2 + -0xa72);
  *(byte *)(lVar2 + -0xa72) = (byte)DAT_1826707b0 ^ 0xc9;
  *(ulonglong *)(lVar2 + -0x610) = *(ulonglong *)(lVar2 + -0x998) ^ *(ulonglong *)(lVar2 + -0x558);
  *(ulonglong *)(lVar2 + -0x520) = *(ulonglong *)(lVar2 + -0x340);
  uVar4 = DAT_182670b00;
  uVar26 = (ulonglong)DAT_182670b00;
  uVar24 = (ulonglong)DAT_1826709bc;
  uVar20 = *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xd5fefbcc));
  *(ulonglong *)(lVar2 + -600) = uVar20;
  *(ulonglong *)(lVar2 + -0xd70) = uVar24 ^ *(ulonglong *)(lVar2 + -0x340);
  *(ulonglong *)(lVar2 + -0xc60) = uVar26 ^ uVar20;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x80405a98)) = uVar20 + 1;
  uVar9 = DAT_1826707f4;
  uVar26 = (ulonglong)DAT_1826707f4;
  uVar20 = (ulonglong)DAT_1826708c0;
  *(byte *)(lVar2 + -0x729) =
       *(byte *)((ulonglong)uVar4 ^ *(ulonglong *)(lVar2 + -0xc60)) ^ (byte)DAT_1826708a4 ^
       DAT_1826709e0;
  *(undefined1 *)(lVar2 + -0x7f4) = 10;
  *(byte *)(*(ulonglong *)(lVar2 + -0x70) ^ uVar20) = bVar29 ^ 0xf0;
  uVar4 = DAT_1826707bc;
  pbVar17 = (byte *)(uVar24 ^ *(ulonglong *)(lVar2 + -0xd70));
  uVar31 = (ulonglong)DAT_1826707bc;
  *(byte **)(lVar2 + -0x570) = pbVar17 + (CONCAT44(uVar7,DAT_1826707bc) ^ 0x82c054d940000041);
  *pbVar17 = *(byte *)(lVar2 - (uVar30 ^ 0x6c3729be)) ^ (byte)DAT_1826708a4;
  uVar27 = DAT_182670964;
  uVar22 = (ulonglong)DAT_182670964;
  *(longlong *)(lVar2 + -0x438) = *(longlong *)(lVar2 + -0x548) << 0x1e;
  *(ulonglong *)(lVar2 + -0x8d8) = *(ulonglong *)(lVar2 + -0x570);
  *(ulonglong *)(lVar2 + -0x4b8) = (ulonglong)uVar10 ^ *(ulonglong *)(lVar2 + -0x570);
  *(ulonglong *)(lVar2 + -0x698) = *(ulonglong *)(lVar2 + -0xa88);
  *(undefined1 *)(lVar2 + -0x729) = 0x17;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x260) = (ulonglong)uVar27 ^ *(ulonglong *)(lVar2 + -0xa88);
  uVar19 = DAT_1826707b0;
  uVar28 = (ulonglong)DAT_1826707b0;
  plVar25 = (longlong *)(lVar3 - ((ulonglong)uVar6 ^ 0xd5fef8cc));
  uVar20 = (ulonglong)DAT_1826708f0;
  *plVar25 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0xa3b19199)) ^ uVar22) +
             (CONCAT44(uVar9,DAT_1826707b0) ^ 0xa3b193f924175eaa);
  bVar11 = *(byte *)(uVar22 ^ *(ulonglong *)(lVar3 + -0x260)) ^ DAT_1826709e0;
  bVar12 = (byte)uVar27;
  *(undefined1 *)(lVar3 + -0x171) = 0x87;
  *(byte *)(lVar3 + -0xda1) = bVar11 ^ bVar12;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0xcd0) ^ (ulonglong)DAT_182670a18) = 0xe2;
  *(longlong *)(lVar3 - (uVar21 ^ 0x7d3faef6)) = 0x3e5ef5ef4e8a7790 << ((bVar29 ^ 0xa2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x858) =
       (CONCAT44(uVar19,uVar5) ^ 0x24175eab80405011) + (uVar20 ^ *(ulonglong *)(lVar3 + -0x4b8));
  uVar6 = DAT_1826707d4;
  bVar11 = (byte)DAT_1826707e8;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0x7fbfab57)) ^ uVar20) =
       *(byte *)(lVar3 - ((ulonglong)uVar18 ^ 0x2800968)) ^ bVar12;
  *(byte *)(lVar3 + -0xda1) = bVar11 ^ 0x82;
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar16,uVar18) ^ 0x2c89f6264e327bfc) + (CONCAT44(uVar6,uVar9) ^ 0xfdb2ee954d69cffd)
  ;
  *(undefined8 *)(lVar3 + -0xc58) = *(undefined8 *)(lVar3 - ((ulonglong)uVar7 ^ 0x82c05c81));
  *(longlong *)(lVar3 + -0xf0) =
       *(longlong *)(lVar3 + -0xb70) << ((byte)*(undefined8 *)(lVar3 + -0x548) & 0x3f);
  local_res20 = (byte)uVar8;
  uVar22 = (ulonglong)DAT_182670930;
  *(longlong *)(lVar3 - ((ulonglong)DAT_1826707dc ^ 0xa3b19ee9)) = *plVar25;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x6c3726e7)) = *(ulonglong *)(lVar3 + -0xc58) ^ uVar22;
  uVar20 = (ulonglong)DAT_182670ae0;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x7d3faf4e)) = *(ulonglong *)(lVar3 + -0xd10) ^ uVar20;
  pbVar17 = (byte *)(*(ulonglong *)(lVar3 + -0x5a8) ^ uVar20);
  *(byte **)(lVar3 + -0x790) = pbVar17 + (CONCAT44(uVar6,DAT_1826707d4) ^ 0x7fbfafef7fbfafee);
  bVar12 = DAT_1826709e0 ^ (byte)DAT_1826709c8;
  *(ulonglong *)(lVar3 + -0x6f0) =
       (CONCAT44(uVar18,uVar4) ^ 0x693a1920fca8f5fe) << ((local_res20 ^ 0x24) & 0x3f);
  bVar11 = (byte)DAT_1826707d0;
  *(byte *)(lVar3 + -0xc69) = bVar12 ^ *pbVar17;
  *(byte *)(lVar3 + -0xdd9) = (byte)DAT_1826707b0 ^ 0x50;
  uVar4 = DAT_1826707ac;
  uVar20 = (ulonglong)DAT_1826707ac;
  *(byte *)(*(ulonglong *)(lVar3 + -0xd0) ^ (ulonglong)DAT_182670934) = bVar11 ^ 0x3b;
  lVar2 = DAT_1826707a0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x870);
  *(ulonglong *)(DAT_1826707a0 + -0xd50) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xa3b19b89)) ^ uVar22) +
       (CONCAT44(uVar4,DAT_1826707a8) ^ 0x80405010a97435ec);
  *(byte *)(*puVar1 ^ uVar22) = *(byte *)(lVar2 + -0xc69) ^ (byte)DAT_1826709c8;
  *(byte *)(lVar2 + -0xc69) = (byte)DAT_1826707f4 ^ 0x6b;
  *(longlong *)(lVar2 + -0x588) = *(longlong *)(lVar2 + -0xbb0) + *(longlong *)(lVar2 + -0xb70);
  uVar6 = DAT_1826707dc;
  uVar26 = (ulonglong)DAT_182670adc;
  uVar21 = *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x2800999));
  bVar11 = (byte)DAT_1826707d4;
  *(undefined8 *)(lVar2 + -0x788) = *(undefined8 *)(lVar2 + -0x790);
  *(longlong *)(lVar2 + -0xce0) = *(longlong *)(lVar2 + -0x410) << ((bVar11 ^ 0xd7) & 0x3f);
  *(ulonglong *)(lVar2 + -0x390) = uVar21;
  uVar22 = (ulonglong)DAT_182670a04;
  uVar24 = (ulonglong)DAT_182670a04;
  uVar16 = DAT_1826707f4 ^ 0x6f06187a;
  *(ulonglong *)(DAT_1826707a0 - (uVar15 ^ 0x82c05ac1)) = uVar26 ^ uVar21;
  bVar12 = DAT_18267097c;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar31 ^ 0x400003d8)) = uVar16 | DAT_1826707e0 ^ 0x444e88dc;
  uVar24 = uVar24 ^ *(ulonglong *)(lVar2 + -0x788);
  uVar16 = DAT_1826707d0 ^ 0xbd5053e6;
  *(ulonglong *)(lVar2 + -0xdc8) = uVar24;
  *(uint *)(lVar2 + -0x398) = uVar16;
  *(ulonglong *)(lVar2 + -0x118) =
       (CONCAT44(uVar4,uVar18) ^ 0xdf22431336716655) - (CONCAT44(uVar7,uVar7) ^ 0xfbe66b85fa3eb3d1);
  bVar29 = DAT_1826709e0;
  uVar16 = DAT_1826707bc;
  uVar15 = *(ulonglong *)(lVar2 - (uVar20 ^ 0x80405dd8));
  *(uint *)(lVar2 + -0xc04) = DAT_1826707d4 ^ 0x26c184d2;
  *(ulonglong *)(lVar2 + -0xb98) = (uVar15 ^ uVar22) + 1;
  *(byte *)(lVar2 + -0x7a1) = *(byte *)(uVar24 ^ uVar22) ^ bVar29 ^ bVar12;
  *(byte *)(lVar2 + -0xa1) = (byte)uVar16 ^ 0xb9;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x838) ^ (ulonglong)DAT_1826708c4) = 0x94;
  bVar11 = DAT_1826708f8;
  uVar4 = DAT_1826707a8;
  pbVar17 = (byte *)(*(ulonglong *)(lVar2 + -0xbd8) ^ uVar26);
  uVar15 = (ulonglong)DAT_1826707a8;
  uVar20 = (ulonglong)DAT_182670a74;
  *(byte **)(lVar2 + -0x650) = pbVar17 + (CONCAT44(uVar6,DAT_1826707e0) ^ 0xa3b193f9d5fefe7d);
  *pbVar17 = bVar12 ^ *(byte *)(lVar2 + -0x7a1);
  *(undefined1 *)(lVar2 + -0x7a1) = 200;
  *(undefined8 *)(lVar2 - (uVar28 ^ 0x24175fdb)) = *(undefined8 *)(lVar2 - (uVar15 ^ 0xa97433bd));
  *(ulonglong *)(lVar2 + -0x318) = *(ulonglong *)(lVar2 + -0xb98);
  *(ulonglong *)(lVar2 + -0x970) = *(ulonglong *)(lVar2 + -0x170) ^ uVar20;
  uVar15 = (ulonglong)DAT_182670940;
  uVar21 = (ulonglong)DAT_182670940 ^ *(ulonglong *)(lVar2 + -0xb98);
  *(undefined8 *)(lVar2 + -0xd88) = 0xcb47bff4e4f5dbaf;
  *(ulonglong *)(lVar2 + -0x950) = uVar21;
  pbVar17 = (byte *)(uVar21 ^ uVar15);
  *(byte **)(lVar2 + -0x8d0) = pbVar17 + (CONCAT44(uVar7,uVar8) ^ 0x82c054d982c05118);
  *(byte *)(lVar2 + -0x761) = bVar29 ^ bVar11 ^ *pbVar17;
  *(byte *)(lVar2 + -0x739) = (byte)DAT_1826707f4 ^ 0x52;
  bVar12 = (byte)DAT_1826707ac;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar30 ^ 0x6c372c97)) ^ (ulonglong)DAT_182670a50) =
       (byte)uVar18 ^ 0xa4;
  uVar15 = (ulonglong)DAT_1826707dc;
  *(byte *)(lVar2 + -0xac1) = bVar12 ^ 0xf6;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0xa3b19229)) =
       (CONCAT44(uVar19,uVar4) ^ 0x24175eaba97435ec) + (*(ulonglong *)(lVar2 + -0x970) ^ uVar20);
  *(uint *)(lVar2 + -0x43c) = (DAT_1826707b8 ^ 0x332211e4) - (uVar16 ^ 0x46fe7b10);
  uVar4 = DAT_1826707ec;
  uVar15 = (ulonglong)DAT_1826709d0;
  uVar21 = (ulonglong)DAT_182670878;
  uVar19 = DAT_1826707ec << 0x10 | DAT_1826707ec >> 0x10;
  *(byte *)(*(ulonglong *)(lVar2 + -0x970) ^ uVar20) = bVar11 ^ *(byte *)(lVar2 + -0x761);
  *(byte *)(lVar2 + -0x761) = (byte)DAT_1826707e4 ^ 0x32;
  *(undefined8 *)(lVar2 + -0x688) = *(undefined8 *)(lVar2 + -0x1d0);
  DAT_1826707f0 = uVar19;
  *(ulonglong *)(lVar2 + -0x6b8) =
       ((ulonglong)uVar19 << 0xe | (ulonglong)(uVar4 >> 0x12)) ^ 0x1408faf58981;
  puVar23 = (undefined8 *)(lVar2 - ((ulonglong)uVar19 ^ 0xf993bc23));
  *puVar23 = *(undefined8 *)(lVar2 + -0x8d0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xb1a3fb6b)) = uVar21 ^ *(ulonglong *)(lVar2 + -0x688);
  pbVar17 = (byte *)*puVar23;
  *(ulonglong *)(lVar2 + -0x770) = (ulonglong)pbVar17 ^ uVar15;
  *(byte **)(lVar2 + -0x38) = pbVar17 + (CONCAT44(uVar19,uVar4) ^ 0xf993b1a3b1a3f992);
  uVar15 = (ulonglong)DAT_182670b00;
  bVar11 = *pbVar17;
  *(undefined1 *)(lVar2 + -0x249) = 0x92;
  *(byte *)(lVar2 + -0x2bd) = bVar11 ^ bVar29 ^ (byte)DAT_1826708d4;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x530) ^ uVar15) = 0xf3;
  *(ulonglong *)(lVar2 + -0x340) =
       (CONCAT44(uVar4,uVar19) ^ 0xb1a3f993f993b1a2) + (uVar21 ^ *(ulonglong *)(lVar2 + -0x2f8));
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar13 ^ uVar18;
  return;
}



############ FUN_ 180cf4470 size=4082 ############

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

void FUN_180cf4470(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  byte bVar8;
  byte bVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  byte *pbVar15;
  uint uVar16;
  uint uVar17;
  uint *puVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  uint *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte local_68;
  
  uVar12 = DAT_182670970;
  uVar17 = DAT_1826708d4;
  uVar14 = DAT_1826708a8;
  uVar19 = DAT_1826707ec;
  uVar24 = DAT_1826707c8;
  lVar4 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707c8;
  uVar21 = (ulonglong)DAT_1826707ec;
  uVar16 = DAT_1826707c8 | DAT_1826707ec;
  uVar13 = *(uint *)(&DAT_18260f758 + DAT_182670bb4) ^ DAT_1826707c8;
  uVar11 = *(uint *)(&DAT_18260f760 + DAT_182670bb4) ^ DAT_1826707ec;
  puVar32 = (uint *)(DAT_1826707a0 - (uVar21 ^ 0x8ac8012e));
  uVar31 = (ulonglong)uVar16;
  puVar1 = (uint *)(DAT_1826707a0 + -0x2d4);
  DAT_1826707d0 = uVar16;
  *puVar32 = (DAT_1826707ec ^ 0x3a99c813) + (uVar16 ^ 0xf2c015c1);
  uVar26 = *(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0xa1cf894d));
  uVar3 = *(uint *)(lVar4 - (uVar31 ^ 0xabcf8bf3));
  *(longlong *)(lVar4 + -0x118) = *(longlong *)(lVar4 + -0x4c8) + -0x38a449e48d6d3d70;
  *(uint *)(lVar4 + -0x68c) = (uVar26 ^ uVar14 | uVar3 ^ uVar12) ^ uVar17;
  puVar2 = (uint *)(lVar4 + -0x42c);
  uVar26 = (*(uint *)(lVar4 - ((ulonglong)uVar16 ^ 0xabcf8cab)) ^ DAT_182670848) +
           (*puVar2 ^ DAT_182670834) ^ uVar14;
  *puVar1 = uVar26;
  *(ulonglong *)(lVar4 + -0x6f0) =
       (CONCAT44(uVar19,uVar19) ^ 0x7b2deff7003af58b) + *(longlong *)(lVar4 + -0x610);
  uVar3 = DAT_1826708d8;
  lVar4 = DAT_1826707a0;
  uVar26 = uVar26 ^ DAT_1826708d8 ^ uVar14;
  *(uint *)(DAT_1826707a0 + -0x3d4) = uVar26;
  lVar5 = DAT_1826707a0;
  uVar22 = *(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0xa1cf83c5)) ^ DAT_1826708ec ^ uVar17;
  *(uint *)(DAT_1826707a0 + -0x7e4) = uVar22;
  uVar27 = DAT_182670910;
  uVar26 = uVar26 ^ DAT_182670910;
  *(ulonglong *)(lVar5 + -0x1b8) =
       CONCAT44(uVar24,uVar19) ^ *(ulonglong *)(lVar5 + -0x220) ^ 0xe613300f08946a4;
  *(uint *)(lVar5 + -0x14) = uVar26 ^ uVar3;
  uVar26 = DAT_18267084c;
  lVar4 = DAT_1826707a0;
  uVar22 = uVar22 ^ DAT_18267084c ^ DAT_1826708ec;
  *(uint *)(DAT_1826707a0 + -0x814) =
       *(uint *)(DAT_1826707a0 - (uVar31 ^ 0xabcf852b)) ^ uVar14 | uVar19 ^ 0xca09f064;
  *(uint *)(lVar4 - (uVar33 ^ 0xa1cf8175)) = uVar22;
  uVar28 = (ulonglong)DAT_182670b04;
  uVar14 = DAT_182670adc & 0xff;
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xabcf85b7)) =
       (CONCAT44(uVar16,uVar16) ^ 0xabcf87ffabcf87ff) * 0x20 +
       (CONCAT44(uVar19,uVar16) ^ 0x8ac802b6abcf87f1) + *(longlong *)(DAT_1826707a0 + -0x30) ^
       uVar28;
  lVar4 = DAT_1826707a0;
  uVar26 = (uVar26 ^ *(uint *)(DAT_1826707a0 + -0x43c)) + (uVar24 ^ 0x6aebc86a) ^ DAT_182670a6c;
  bVar10 = *(byte *)(uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0x248));
  *(byte *)(DAT_1826707a0 + -0xc35) = bVar10;
  *(uint *)(lVar4 + -0xa34) = uVar14 ^ bVar10 ^ uVar17;
  *(uint *)(lVar4 - (uVar21 ^ 0x8ac8072e)) = uVar26;
  puVar30 = (ulonglong *)(CONCAT44(uVar3,uVar3) ^ *(ulonglong *)(lVar4 + -0xbe8));
  uVar28 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar4 + -0xac0) = uVar28 ^ *puVar30;
  uVar26 = *(uint *)(lVar4 + -0xa34) ^ uVar17;
  uVar31 = (ulonglong)DAT_1826707c0;
  *(uint *)(lVar4 + -0x9ec) = uVar26 * 0x20000 ^ uVar12;
  uVar3 = DAT_1826708e0;
  lVar5 = DAT_1826707a0;
  uVar26 = (*(uint *)(lVar4 - (uVar31 ^ 0x40046419)) ^ DAT_182670a6c) + uVar26 * -0x20000 ^
           DAT_18267081c;
  puVar18 = (uint *)(DAT_1826707a0 + -0x14);
  *(uint *)(DAT_1826707a0 + -0x280) = uVar26;
  uVar12 = DAT_182670aa4;
  *(uint *)(lVar5 + -0xc34) = (*puVar18 ^ uVar27) * (uVar26 ^ DAT_18267081c) ^ DAT_18267083c;
  *(uint *)(lVar5 + -0x540) =
       (*(uint *)(lVar5 - ((ulonglong)DAT_1826707d4 ^ 0xc5b6d91d)) ^ uVar17) * (uVar16 ^ 0xabcf87f1)
       ^ uVar12;
  uVar26 = DAT_1826707c4;
  *(ulonglong *)(lVar5 + -0x558) = uVar28 ^ *puVar30;
  uVar14 = DAT_1826707b8;
  *(ulonglong *)(lVar5 - (uVar21 ^ 0x8ac8095e)) = CONCAT44(uVar24,uVar16) ^ 0x79599cb3308606d8;
  uVar17 = DAT_182670af4;
  *puVar32 = (*(uint *)(lVar5 - ((ulonglong)uVar26 ^ 0xd329c982)) ^ DAT_18267083c) +
             (uVar12 ^ *(uint *)(lVar5 + -0x540)) ^ DAT_182670af4;
  uVar12 = (uVar17 ^ *(uint *)(lVar5 + -0x398)) << (((byte)uVar16 ^ 0xf2) & 0x1f) ^ _DAT_1826709e0;
  *(ulonglong *)(lVar5 + -0x9c8) =
       CONCAT44(DAT_1826707d4,uVar24) ^ 0xd59f55ea2eaa817e | *(ulonglong *)(lVar5 + -0x630);
  *(uint *)(lVar5 + -0xc04) =
       (uVar17 ^ *(uint *)(lVar5 + -0x398)) >> (((byte)uVar14 ^ 0x3a) & 0x1f) ^ uVar3;
  *(uint *)(lVar5 + -0xc0c) = uVar12;
  uVar29 = DAT_1826709ec;
  uVar17 = DAT_1826707e4;
  uVar35 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar24 ^ 0xa1cf8521)) =
       0xb89217e816d6ed45 >> ((byte)*(undefined8 *)(lVar5 + -0x1b8) & 0x3f);
  lVar4 = DAT_1826707a0;
  *puVar2 = (*(uint *)(lVar5 + -0xc0c) ^ _DAT_1826709e0 | uVar3 ^ *(uint *)(lVar5 + -0xc04)) ^
            DAT_18267093c;
  uVar12 = DAT_182670a58;
  uVar22 = DAT_182670928;
  *(uint *)(lVar5 - ((ulonglong)uVar14 ^ 0x22a046a5)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar26 ^ 0xd329c5a2)) ^ uVar27) +
       (*(uint *)(lVar5 + -0xb54) ^ DAT_182670848) ^ DAT_182670994;
  uVar3 = DAT_1826707a8;
  *(uint *)(lVar5 + -0x3d4) = DAT_182670838 ^ DAT_182670994 ^ *(uint *)(lVar5 + -0x68c);
  *(ulonglong *)(lVar5 + -0x410) = 0x70681aec4d5db9ec >> (((byte)uVar19 ^ 0xb1) & 0x3f);
  uVar20 = uVar3 * uVar17;
  puVar32 = (uint *)(lVar4 - ((ulonglong)uVar3 ^ 0xbfbfc81e));
  uVar28 = (ulonglong)uVar20;
  DAT_1826707d4 = uVar20;
  *puVar32 = *(uint *)(lVar4 - (uVar35 ^ 0xa3efc145)) ^ uVar12 ^ DAT_18267093c;
  *(ulonglong *)(lVar4 + -0x6b8) =
       (CONCAT44(uVar22,uVar22) ^ *(ulonglong *)(lVar4 + -0x7d8)) + 0xe9ed110de2328adb;
  *(uint *)(lVar4 + -0x814) = *(uint *)(lVar4 + -0x3d4) ^ uVar29 ^ DAT_182670838;
  uVar27 = DAT_1826709c4;
  *(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x2d4d993e)) = *puVar1 ^ DAT_1826709c0 ^ uVar12;
  uVar31 = (ulonglong)DAT_182670a94;
  *(ulonglong *)(lVar4 + -0xdb8) =
       (CONCAT44(uVar17,uVar17) ^ 0xa3efc569a3efc569) * 0x20 + *(longlong *)(lVar4 + -0x30) + 0x19 ^
       uVar31;
  bVar10 = (byte)DAT_1826708b0;
  lVar4 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x619) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar17 ^ 0xa3efc8d1)) ^ uVar31) ^
       (byte)DAT_1826708b0 ^ (byte)DAT_182670adc;
  *(uint *)(lVar4 + -0x43c) = (DAT_1826707a8 ^ 0xff40b797) << 7;
  lVar5 = DAT_1826707a0;
  puVar18 = (uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x2d4d9b42));
  *puVar18 = (*(byte *)(lVar4 + -0x619) ^ bVar10) ^ uVar27;
  *(uint *)(lVar5 + -0x9ec) =
       (*(uint *)(lVar5 - ((ulonglong)uVar3 ^ 0xbfbfcd2e)) ^ DAT_1826709c0) + (uVar20 ^ 0xe669d3f9)
       ^ uVar12;
  uVar26 = DAT_1826707a8;
  *(ulonglong *)(lVar5 + -0x658) =
       (CONCAT44(uVar3,uVar17) ^ 0x9fa59d3446e73266) - *(longlong *)(lVar5 - (uVar28 ^ 0x2d4d9862));
  *(uint *)(lVar5 + -0x280) = (*puVar18 ^ uVar27) << (((byte)uVar26 ^ 0xdb) & 0x1f) ^ DAT_18267086c;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar17 ^ 0xa3efcf71)) =
       CONCAT44(uVar17,uVar20) ^ CONCAT44(uVar3,uVar3) ^ 0x3664e76fca196cdc;
  uVar31 = (ulonglong)DAT_182670900;
  uVar12 = (*(uint *)(lVar5 - (uVar35 ^ 0xa3efcc85)) ^ DAT_182670a58) -
           (*(uint *)(lVar5 + -0x280) ^ DAT_18267086c) ^ DAT_1826709a4;
  *(uint *)(lVar5 + -0xa34) = uVar12;
  uVar12 = uVar12 ^ DAT_1826709a4;
  *(byte *)(lVar5 + -0xc35) =
       *(byte *)(uVar31 ^ *(ulonglong *)(lVar5 + -0x2e8)) ^ (byte)DAT_182670adc;
  puVar18 = (uint *)(lVar5 - ((ulonglong)uVar3 ^ 0xbfbfc6fe));
  uVar31 = (ulonglong)DAT_182670a10;
  uVar26 = DAT_182670a10 >> 0xe;
  *puVar18 = uVar12 * (uVar29 ^ *(uint *)(lVar5 + -0x814)) ^ _DAT_1826708bc;
  uVar12 = DAT_1826708a4;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x2d4d98ba)) =
       (uVar31 << 0x12 | (ulonglong)uVar26) ^ *(ulonglong *)(lVar5 + -0x998) >> 0xe;
  *(uint *)(lVar5 + -0x540) =
       (*(uint *)(lVar5 + -0x598) ^ uVar27) * (uVar20 ^ 0x2d4d9ec3) ^ DAT_182670878;
  uVar23 = (*(uint *)(lVar5 - ((ulonglong)uVar17 ^ 0xa3efc029)) ^ DAT_182670878) +
           (*puVar18 ^ _DAT_1826708bc);
  *(uint *)(lVar5 + -0x398) = uVar23 ^ uVar12;
  uVar27 = DAT_182670868;
  uVar26 = DAT_182670848;
  uVar7 = DAT_1826707e8;
  uVar31 = (ulonglong)DAT_182670848;
  *(uint *)(lVar5 + -0xc0c) = uVar23 << (((byte)uVar20 ^ 0xd7) & 0x1f) ^ DAT_182670980;
  lVar4 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826709d0;
  *(uint *)(lVar5 - ((ulonglong)uVar17 ^ 0xa3efc96d)) =
       (uVar12 ^ *(uint *)(lVar5 + -0x398)) >> (((byte)uVar17 ^ 0x7a) & 0x1f) ^ uVar27;
  uVar12 = DAT_182670898;
  lVar6 = DAT_1826707a0;
  uVar27 = (uVar27 ^ *(uint *)(lVar5 + -0xc04) | *(uint *)(lVar5 + -0xc0c) ^ DAT_182670980) ^
           DAT_182670af8;
  uVar26 = (*(uint *)(lVar5 + -0xb54) ^ uVar26) + (uVar29 ^ *(uint *)(lVar5 + -0x814)) ^
           DAT_182670964;
  *(uint *)(lVar5 + -0x68c) = uVar26;
  uVar26 = uVar26 ^ DAT_182670a9c ^ DAT_182670964;
  *(uint *)(lVar5 + -0x14) = uVar27;
  uVar27 = uVar27 ^ DAT_1826709e4 ^ DAT_182670af8;
  *puVar2 = uVar26;
  *(uint *)(lVar6 - (uVar28 ^ 0x2d4d9d0e)) = uVar27;
  *puVar32 = *puVar2 ^ uVar12 ^ DAT_182670a9c;
  local_68 = (byte)uVar24;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x2d4d9afa)) =
       (CONCAT44(uVar7,uVar3) ^ 0x88e0f5a967dac051) << ((local_68 ^ 0x75) & 0x3f);
  uVar26 = *(uint *)(lVar4 + -0x3d4) ^ DAT_18267098c ^ DAT_1826709e4;
  *(uint *)(lVar4 + -0x43c) = uVar26;
  bVar10 = (byte)DAT_182670adc;
  *(byte *)(lVar4 + -0x619) = *(byte *)(*(ulonglong *)(lVar4 + -0x4f8) ^ uVar31) ^ bVar10;
  uVar24 = DAT_182670940;
  bVar8 = (byte)DAT_182670854;
  uVar3 = DAT_1826707e0;
  uVar26 = uVar26 ^ DAT_18267098c;
  uVar34 = (ulonglong)DAT_1826707e0;
  pbVar15 = (byte *)((CONCAT44(uVar20,uVar19) ^ 0x2d4d9eda8ac802b6) * 0x20 + 4 +
                    *(longlong *)(lVar4 - ((ulonglong)uVar17 ^ 0xa3efc559)));
  *(ulonglong *)(lVar4 + -0x248) = (ulonglong)pbVar15 ^ uVar25;
  bVar9 = *pbVar15 ^ bVar8 ^ bVar10;
  *(byte *)(lVar4 + -0xc35) = bVar9;
  uVar19 = uVar26 + (uVar17 ^ 0x68cb884a) ^ DAT_182670adc;
  uVar27 = (bVar8 ^ bVar9) ^ DAT_182670978;
  *(uint *)(lVar4 + -0x9ec) = uVar19;
  uVar19 = uVar19 ^ DAT_182670adc;
  *(longlong *)(lVar4 + -0xbb0) = 0x1c0b8c33d9abf731 - *(longlong *)(lVar4 + -0x410);
  *(uint *)(lVar4 + -0x7e4) = uVar27;
  uVar27 = uVar27 ^ DAT_182670978;
  uVar26 = uVar27 << 0x11 ^ DAT_182670a7c;
  *(uint *)(lVar4 + -0x280) = uVar26;
  uVar27 = (uVar17 ^ 0xa3efc56d) * uVar27 ^ DAT_182670a8c;
  uVar19 = uVar19 - (uVar26 ^ DAT_182670a7c) ^ DAT_1826709e8;
  *(uint *)(lVar4 + -0xa34) = uVar19;
  uVar26 = *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xa3efc7bd));
  uVar19 = uVar19 ^ DAT_1826709e8;
  *(uint *)(lVar4 + -0xc34) = uVar27;
  uVar19 = (uVar26 ^ uVar12) * uVar19;
  *(ulonglong *)(lVar4 + -0x2b0) =
       *(longlong *)(lVar4 + -0x6b8) - (CONCAT44(uVar14,uVar3) ^ 0xa4117361c4c601a5);
  *(uint *)(lVar4 + -0x598) = uVar19 ^ uVar24;
  uVar3 = _DAT_18267097c;
  uVar26 = DAT_1826707b0;
  uVar31 = (ulonglong)DAT_182670a28;
  uVar19 = (*(uint *)(lVar4 - (uVar35 ^ 0xa3efc95d)) ^ DAT_182670a8c) + uVar19;
  uVar28 = (ulonglong)DAT_1826707b0;
  *(uint *)(lVar4 + -0x540) = uVar19 ^ _DAT_18267097c;
  *(byte *)(lVar4 + -0x619) = *(byte *)(*(ulonglong *)(lVar4 + -0x270) ^ uVar31) ^ bVar10;
  uVar29 = DAT_182670944;
  uVar17 = DAT_1826708f4;
  uVar24 = DAT_182670808;
  uVar7 = DAT_1826707cc;
  lVar4 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar28 ^ 0x60b478a1)) =
       uVar19 << (((byte)DAT_1826707bc ^ 5) & 0x1f) ^ DAT_1826708f4;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (CONCAT44(uVar26,DAT_1826707c0) ^ 0x15ab7d6421fa2ac1) >>
       ((byte)*(undefined8 *)(lVar4 + -0x410) & 0x3f);
  uVar26 = (uVar3 ^ *(uint *)(lVar4 + -0x540)) >> (((byte)uVar7 ^ 0x85) & 0x1f) ^ DAT_182670a70;
  *(uint *)(lVar4 + -0xc0c) = uVar26;
  *(uint *)(lVar4 + -0xc04) =
       (uVar26 ^ DAT_182670a70 | uVar17 ^ *(uint *)(lVar4 + -0x398)) ^ DAT_1826709f8;
  uVar31 = (ulonglong)DAT_1826707f4;
  *(uint *)(lVar4 + -0x814) =
       (*(uint *)(lVar4 - (uVar21 ^ 0x8ac80062)) ^ uVar12) +
       (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) ^ DAT_182670958;
  uVar26 = *(uint *)(lVar4 - (uVar35 ^ 0xa3efcd7d)) ^ uVar24 ^ DAT_182670958;
  uVar24 = uVar24 ^ DAT_182670adc;
  *(uint *)(lVar4 + -0x68c) = uVar26;
  *(uint *)(lVar4 + -0x14) =
       *(uint *)(lVar4 - (uVar31 ^ 0x967f26ac)) ^ DAT_182670814 ^ DAT_1826709f8;
  uVar3 = DAT_1826707dc;
  *puVar2 = uVar24 ^ uVar26;
  uVar27 = DAT_182670924;
  uVar26 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar3,DAT_1826707d8);
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0x80420794)) =
       *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x61814010)) ^ uVar29 ^ DAT_182670814;
  uVar19 = DAT_182670920;
  pbVar15 = (byte *)((CONCAT44(uVar7,uVar16) ^ 0xa82a7f96abcf87ff) * 0x20 +
                     (uVar28 ^ 0x804204406181400b) + *(longlong *)(lVar4 + -0x30));
  *(ulonglong *)(lVar4 + -0x2e8) = (ulonglong)pbVar15 ^ (ulonglong)DAT_1826709dc;
  bVar10 = *pbVar15 ^ (byte)uVar17 ^ (byte)DAT_182670adc;
  uVar12 = uVar17 & 0xff ^ (uint)bVar10;
  *(byte *)(lVar4 + -0xc35) = bVar10;
  uVar29 = (uVar29 ^ *(uint *)(lVar4 + -0x3d4)) + (uVar26 ^ 0x749b87e9);
  *(uint *)(lVar4 + -0x43c) = uVar12 ^ uVar27;
  uVar24 = DAT_182670858;
  *(uint *)(lVar4 + -0x9ec) = uVar29 ^ uVar19;
  uVar17 = DAT_182670918;
  uVar12 = uVar12 << (((byte)uVar3 ^ 0x51) & 0x1f);
  *(uint *)(lVar4 + -0x280) = uVar12 ^ uVar22;
  uVar29 = uVar29 - uVar12;
  uVar19 = *puVar2 ^ DAT_182670adc;
  *(uint *)(lVar4 + -0xa34) = uVar29 ^ uVar24;
  *(uint *)(lVar4 - (uVar31 ^ 0x967f2d4c)) = uVar19 * uVar29 ^ uVar17;
  *(longlong *)(lVar4 - (uVar34 ^ 0x2940a8b2)) =
       *(longlong *)(lVar4 + -0x558) - *(longlong *)(lVar4 - (uVar35 ^ 0xa3efc3d1));
  uVar19 = DAT_182670a48;
  uVar24 = DAT_182670890;
  uVar31 = CONCAT44(uVar20,DAT_1826707f0);
  *(uint *)(lVar4 - ((ulonglong)DAT_1826707f0 ^ 0xf49db092)) =
       (uVar27 ^ *(uint *)(lVar4 + -0x43c)) * (uVar3 ^ 0x8042044f) ^ DAT_182670890;
  uVar3 = DAT_182670afc;
  uVar17 = (uVar24 ^ *(uint *)(lVar4 + -0x598)) + (uVar17 ^ *(uint *)(lVar4 + -0x7e4));
  *(ulonglong *)(lVar4 + -0xb70) = *(ulonglong *)(lVar4 + -0x2b0) | 0x2cfd138507c0b2c2;
  *(uint *)(lVar4 + -0xc34) = uVar17 ^ uVar3;
  uVar3 = DAT_1826708fc;
  *(uint *)(lVar4 + -0x540) = uVar17 << (((byte)uVar26 ^ 199) & 0x1f) ^ DAT_1826708fc;
  *(uint *)(lVar4 - (uVar33 ^ 0xa1cf86d1)) = uVar17 >> 0x13 ^ uVar19;
  *(ulonglong *)(lVar4 + -0xce0) = (uVar31 ^ 0x7132ddcb7c521170) << (((byte)uVar14 ^ 0x2d) & 0x3f);
  *(uint *)(lVar4 - (uVar21 ^ 0x8ac80eba)) =
       (uVar19 ^ *(uint *)(lVar4 + -0x398) | uVar3 ^ *(uint *)(lVar4 + -0x540)) ^ uVar24;
  *puVar1 = (*(uint *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0x40046ad5)) ^ DAT_182670848) +
            (*puVar2 ^ DAT_182670adc) ^ DAT_182670a38;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar11 * 4) = uVar13;
  return;
}



############ FUN_ 180cd4ae0 size=5255 ############

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

void FUN_180cd4ae0(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_e8;
  byte local_c8;
  ulonglong uVar24;
  
  uVar7 = DAT_1826707f4;
  uVar6 = DAT_1826707dc;
  uVar5 = DAT_1826707c0;
  uVar4 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_1826707f4;
  uVar36 = DAT_1826707bc | DAT_1826707f4;
  uVar28 = (ulonglong)DAT_1826707c0;
  uVar18 = (ulonglong)DAT_1826707dc;
  uVar22 = DAT_1826707c0 | DAT_1826707dc;
  uVar24 = (ulonglong)uVar22;
  uVar31 = *(uint *)(&DAT_18260f758 + DAT_182670b70) ^ DAT_1826707f4;
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670b70) ^ DAT_1826707bc;
  uVar34 = (ulonglong)DAT_1826707bc;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x220);
  DAT_1826707b0 = uVar22;
  DAT_1826707b8 = uVar36;
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xcecf5133)) =
       CONCAT44(DAT_1826707dc,DAT_1826707f4) ^ 0xb22d6fb55448ab3c |
       CONCAT44(uVar36,uVar22) ^ 0x5607007ecc2c869e;
  uVar29 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar16 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar25 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xefdfda77));
  *(ulonglong *)(lVar2 + -0x6b8) = CONCAT44(uVar22,uVar22) ^ 0x1d3302051f28366b;
  uVar8 = DAT_182670944;
  *(ulonglong *)(lVar2 + -0x6f0) = (uVar25 ^ uVar16) << 0x29 ^ uVar29;
  uVar9 = DAT_182670a34;
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar25 = *(ulonglong *)(lVar2 - (uVar34 ^ 0xe4d15357)) ^ uVar29 |
           CONCAT44(DAT_1826708dc,DAT_1826708dc) ^ *puVar1;
  uVar21 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *(ulonglong *)(lVar2 + -0x660) = uVar25 ^ uVar39;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0xd88) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0xce0)) - uVar25 ^ uVar21;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar36 ^ 0xfcfb7077)) =
       (CONCAT44(uVar5,uVar6) ^ 0xffff205aabc2f166) << 0xc;
  uVar8 = DAT_182670850;
  uVar29 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar33 = CONCAT44(DAT_182670af4,DAT_182670af4);
  uVar25 = *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0xe4d151a7)) ^
           CONCAT44(DAT_182670990,DAT_182670990) ^ *(ulonglong *)(lVar3 + -0x7d8) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar25 ^ uVar29;
  uVar15 = DAT_1826707e4;
  uVar5 = DAT_1826707cc;
  uVar37 = (ulonglong)DAT_1826707e4;
  uVar20 = CONCAT44(uVar8,uVar8);
  uVar16 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xb8eb675f)) =
       uVar25 >> (((byte)uVar4 ^ 0x8f) & 0x3f) ^ uVar20;
  uVar13 = uVar15 + uVar5;
  uVar25 = CONCAT44(DAT_182670958,DAT_182670958);
  DAT_1826707e0 = uVar13;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x87d74778)) =
       (uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) << (((byte)uVar5 ^ 0x19) & 0x3f) ^ uVar25;
  lVar2 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar25 = uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0) | uVar20 ^ *puVar1;
  uVar29 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar25 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x588) = (*(ulonglong *)(lVar2 + -0x400) ^ uVar33) - uVar25 ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x87d74650)) =
       (CONCAT44(DAT_182670934,DAT_182670934) ^ *(ulonglong *)(lVar2 + -0xc18)) &
       (CONCAT44(uVar13,uVar5) ^ 0x1370149c362aa3ad);
  uVar33 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(uint *)(lVar2 + -0x814) = (uVar15 ^ 0xfff187f) * *(int *)(lVar2 + -0x8e0);
  uVar25 = *(ulonglong *)(lVar2 + -0xce0) ^ uVar33 ^ uVar26 ^ uVar21 ^
           *(ulonglong *)(lVar2 + -0xd88);
  uVar32 = CONCAT44(DAT_182670854,DAT_182670854);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar25;
  uVar26 = (uVar33 ^ uVar25) >> (((byte)uVar15 ^ 0xbc) & 0x3f);
  local_c8 = (byte)uVar13;
  *puVar1 = uVar26 ^ uVar32;
  uVar25 = (uVar33 ^ uVar25) << ((local_c8 ^ 0x85) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar25 ^ CONCAT44(DAT_182670840,DAT_182670840);
  lVar2 = DAT_1826707a0;
  uVar25 = uVar25 | uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       (CONCAT44(uVar15,uVar6) ^ 0x7e019d838a05f5aa) + (CONCAT44(uVar5,uVar15) ^ 0x73309db43e0b506b)
  ;
  uVar8 = DAT_182670b14;
  uVar26 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar2 + -0xc18) = uVar25 ^ uVar26;
  uVar32 = CONCAT44(uVar8,uVar8);
  uVar25 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar36 ^ 0xfcfb7877)) ^ uVar21) - uVar25;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar25 ^ uVar32;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xefdfd31f)) =
       uVar25 - (CONCAT44(uVar7,uVar4) ^ 0xe70d67f8ab349ad6);
  uVar25 = (ulonglong)DAT_182670844;
  uVar33 = CONCAT44(DAT_182670844,DAT_182670844);
  uVar39 = *(ulonglong *)(lVar2 - (uVar16 ^ 0x44854e61)) ^ *(ulonglong *)(lVar2 + -0x588) ^ uVar33 ^
           uVar29 ^ uVar39;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar39;
  *(ulonglong *)(lVar2 + -0x400) =
       *(longlong *)(lVar2 + -0xce0) - (CONCAT44(uVar7,uVar13) ^ 0x72d50d36932851e5);
  lVar2 = DAT_1826707a0;
  local_e8 = (byte)uVar36;
  uVar21 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *puVar1 = (*(ulonglong *)(DAT_1826707a0 + -0x6b8) >> 0x20 ^ uVar25) >> 0x19 ^ uVar21;
  uVar25 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x255dd907)) =
       (uVar33 ^ uVar39) << ((local_e8 ^ 0xf8) & 0x3f) ^ uVar25;
  uVar8 = DAT_182670adc;
  uVar33 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar25 = *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x87d743a8)) ^ uVar21 |
           uVar25 ^ *(ulonglong *)(lVar2 + -0x6f0);
  *(ulonglong *)(lVar2 + -0xd88) = uVar25 ^ uVar33;
  uVar40 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xb8eb631f)) =
       (*(ulonglong *)(lVar2 + -0x588) ^ uVar29) - uVar25 ^ uVar40;
  uVar21 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x448544e1)) =
       *(ulonglong *)(lVar2 - (uVar34 ^ 0xe4d1527f)) ^ uVar21 ^ uVar33 ^ uVar32 ^
       *(ulonglong *)(lVar2 + -0xd88);
  uVar33 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  uVar25 = *(ulonglong *)(lVar2 - (uVar28 ^ 0xcecf505b));
  *(ulonglong *)(lVar2 + -0x6b8) = uVar40 ^ *(ulonglong *)(lVar2 + -0x660);
  uVar19 = (uVar25 ^ uVar21) >> (((byte)uVar22 ^ 0xf1) & 0x3f);
  uVar25 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar2 + -0x400) = uVar19 ^ uVar33;
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar2 + -0xce0)) << 0x32;
  *puVar1 = uVar21 ^ uVar25;
  uVar8 = DAT_1826708d8;
  lVar3 = DAT_1826707a0;
  uVar21 = uVar21 | uVar19;
  *(ulonglong *)(lVar2 + -0x6f0) = uVar21 ^ CONCAT44(DAT_182670a44,DAT_182670a44);
  uVar19 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x588) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x7d8)) - (CONCAT44(uVar7,uVar22) ^ 0xdd1ec96497353e74) ^
       uVar19;
  uVar38 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar25 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x255dda7f));
  *(uint *)(lVar3 + -0x140) = (uVar36 ^ 0xf4b39b7c) + 0x72faa3bb;
  uVar15 = DAT_1826707d0;
  uVar33 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar3 + -0xd88) = (uVar25 ^ uVar19) - uVar21 ^ uVar38;
  uVar8 = DAT_1826709d4;
  uVar22 = DAT_1826707e8;
  lVar2 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_1826707e8;
  uVar14 = DAT_1826707e8 & uVar15;
  uVar41 = CONCAT44(DAT_182670994,DAT_182670994);
  uVar25 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  DAT_1826707d4 = uVar14;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       uVar21 - (CONCAT44(uVar14,DAT_1826707e8) ^ 0xb4a2c23a5f577fa2) ^ uVar41;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x2a1e05fc)) =
       uVar25 ^ uVar40 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0x660) ^ *(ulonglong *)(lVar2 + -0xc18);
  uVar34 = (uVar25 ^ *(ulonglong *)(lVar2 + -0xce0)) >> (((byte)uVar15 ^ 0xc) & 0x3f);
  uVar21 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar25 = (uVar25 ^ *(ulonglong *)(lVar2 + -0xce0)) << 0x30;
  uVar26 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar2 + -0x400) = uVar34 ^ uVar21;
  uVar5 = DAT_1826707b4;
  uVar39 = (ulonglong)DAT_1826707b4;
  *puVar1 = uVar25 ^ uVar26;
  uVar4 = DAT_1826707a8;
  lVar2 = DAT_1826707a0;
  uVar23 = DAT_1826707a8 + uVar5;
  DAT_1826707c4 = uVar23;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707a8 ^ 0x7eda2f62)) =
       (uVar34 | uVar25) ^ uVar21;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x8c020dcc)) =
       (CONCAT44(uVar23,uVar5) ^ 0xff6d1eb77878ff6c) >>
       (((byte)uVar8 ^ *(byte *)(lVar2 + -0xce0)) & 0x3f);
  uVar26 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x8c020eb4)) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x660)) - (CONCAT44(uVar23,uVar4) ^ 0x114d96c2583fe05b) ^
       uVar26;
  *(ulonglong *)(lVar2 + -0xc18) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x8c0205cc)) ^ CONCAT44(uVar23,uVar14) ^ uVar38 ^
       0xef084e209418730e;
  uVar34 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar25 = *(ulonglong *)(lVar2 + -0x7d8);
  *(ulonglong *)(lVar2 + -0x400) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0x6f0)) -
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x2a1e0ec4)) ^ uVar21) ^ uVar34;
  *puVar1 = CONCAT44(uVar22,uVar23) ^ 0x6a0eebc56d51acb3;
  uVar8 = DAT_1826709b8;
  uVar26 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar25 = (CONCAT44(uVar5,uVar22) ^ 0x2d101e576c88578e) + (uVar21 ^ uVar25) ^ uVar26;
  *(ulonglong *)(lVar2 + -0xce0) = uVar25;
  lVar3 = DAT_1826707a0;
  uVar21 = CONCAT44(uVar8,uVar8);
  puVar30 = (ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xadc3d76));
  uVar26 = *puVar30 ^ uVar21 ^ uVar25 ^ uVar26 ^ uVar38;
  uVar39 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar26;
  uVar8 = DAT_182670a40;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0x43149708)) ^ uVar21) >> (((byte)uVar15 ^ 0x3c) & 0x3f) ^
       uVar39;
  uVar25 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x2140c18)) =
       (uVar26 ^ uVar21) << (((byte)uVar23 ^ 0xde) & 0x3f) ^ uVar25;
  uVar8 = DAT_1826708e8;
  uVar25 = *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x8c02045c)) ^ uVar25 |
           uVar39 ^ *(ulonglong *)(lVar2 + -0x660);
  *(ulonglong *)(lVar2 + -0x6f0) = uVar25 ^ uVar29;
  uVar39 = CONCAT44(uVar8,uVar8);
  *puVar1 = (uVar38 ^ *(ulonglong *)(lVar2 + -0xd88)) - uVar25 ^ uVar39;
  lVar2 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670964,DAT_182670964);
  uVar25 = uVar34 ^ uVar41 ^ uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x400) ^
           *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar25;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x87d74d68)) =
       (uVar25 ^ uVar32) >> (((byte)uVar22 ^ 0xa0) & 0x3f) ^ uVar26;
  uVar25 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x7d8)) << ((local_e8 ^ 0xdf) & 0x3f);
  uVar21 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  *(ulonglong *)(lVar2 + -0x588) = uVar25 ^ CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar2 + -0x660) = (uVar26 ^ *(ulonglong *)(lVar2 + -0xce0) | uVar25) ^ uVar21;
  *(undefined1 *)(lVar2 - ((ulonglong)uVar5 ^ 0x8c020e8d)) = **(undefined1 **)(lVar2 + -0x4f8);
  puVar17 = (ulonglong *)(lVar2 - (uVar19 ^ 0x43149680));
  uVar26 = CONCAT44(DAT_182670830,DAT_182670830);
  uVar32 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar34 ^ *puVar17) - (uVar21 ^ *(ulonglong *)(lVar2 + -0x660)) ^ uVar26;
  uVar8 = DAT_182670a58;
  uVar25 = uVar32 ^ uVar21 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x660) ^ *puVar1;
  *(ulonglong *)(lVar2 + -0xd88) = uVar25;
  uVar9 = DAT_182670ae4;
  uVar38 = CONCAT44(uVar8,uVar8);
  puVar27 = (ulonglong *)(lVar2 - (uVar16 ^ 0x44854eb9));
  *puVar27 = (uVar25 ^ uVar32) >> (((byte)uVar5 ^ 0x7e) & 0x3f) ^ uVar38;
  uVar8 = DAT_1826709cc;
  uVar25 = (uVar32 ^ *(ulonglong *)(lVar2 + -0xd88)) << 6;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar25 ^ CONCAT44(uVar9,uVar9);
  uVar11 = DAT_182670aa0;
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar25 = *(ulonglong *)(lVar2 - (uVar33 ^ 0x2a1e0fa4)) ^ uVar38 | uVar25;
  *(ulonglong *)(lVar2 + -0xce0) = uVar25 ^ uVar21;
  uVar10 = DAT_18267094c;
  uVar14 = DAT_1826707f0;
  uVar15 = DAT_1826707c8;
  uVar37 = CONCAT44(uVar11,uVar11);
  uVar16 = (ulonglong)DAT_18267094c;
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xadc32de)) ^ uVar39) - uVar25 ^ uVar37;
  uVar8 = DAT_182670800;
  uVar23 = uVar14 - uVar15;
  uVar19 = (ulonglong)uVar23;
  uVar25 = CONCAT44(uVar10,uVar10) ^ uVar26 ^ uVar29 ^ *(ulonglong *)(lVar2 + -0xc18) ^
           *(ulonglong *)(lVar2 + -0x6f0);
  DAT_1826707d8 = uVar23;
  *(ulonglong *)(lVar2 + -0x400) = uVar25;
  uVar9 = DAT_1826709e4;
  uVar33 = CONCAT44(uVar8,uVar8);
  uVar25 = (CONCAT44(uVar10,uVar10) ^ uVar25) << 0x2a;
  *(ulonglong *)(lVar2 + -0x660) =
       *(ulonglong *)(lVar2 - (uVar19 ^ 0x602f9ab0)) >> 0x16 ^
       ((ulonglong)(uVar10 >> 0x16) | uVar16 << 10) ^ uVar33;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar25 ^ CONCAT44(uVar9,uVar9);
  *puVar1 = (ulonglong)*(ushort *)((lVar2 - ((ulonglong)uVar14 ^ 0xbceb68f7)) + 6) ^
            (ulonglong)(uVar11 >> 0x10);
  lVar3 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_182670a68;
  uVar39 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xbceb6b8f)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x5cbbc8af)) ^ uVar33 | uVar25) ^ uVar20;
  uVar25 = *(ulonglong *)(lVar3 + -0xd88);
  uVar34 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar33 = (uVar26 ^ *(ulonglong *)(lVar3 + -0xc18)) - (uVar20 ^ *(ulonglong *)(lVar3 + -0x6f0));
  *(ulonglong *)(lVar3 + -0x400) = uVar33 ^ uVar34;
  *puVar1 = uVar39 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x588) ^ uVar20 ^
            *(ulonglong *)(lVar3 + -0x6f0);
  uVar16 = *puVar1;
  *(ulonglong *)(lVar3 + -0x660) = uVar33 | uVar32 ^ uVar25;
  uVar25 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x5cbbc917)) =
       (uVar16 >> 0x20 ^ uVar29) >> 0xe ^ uVar25;
  puVar35 = (ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x5cbbc877));
  *(ulonglong *)(lVar3 + -0xc18) = (uVar34 ^ *(ulonglong *)(lVar3 + -0x400)) - (uVar38 ^ *puVar35);
  uVar16 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (uVar39 ^ *puVar1) << (((byte)uVar15 ^ 0xdd) & 0x3f) ^ uVar16;
  lVar2 = DAT_1826707a0;
  uVar20 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0x602f9338)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0x602f9840)) ^ uVar16 |
       uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) ^ uVar20;
  uVar8 = DAT_18267091c;
  uVar33 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(lVar2 + -0x660) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x588)) - (uVar20 ^ *(ulonglong *)(lVar2 + -0xd88)) ^
       uVar33;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar16 ^ *(ulonglong *)(lVar2 + -0x6f0)) >> (((byte)uVar23 ^ 0x90) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6b8) =
       uVar29 ^ uVar34 ^ uVar21 ^ *(ulonglong *)(lVar2 + -0xce0) ^ *(ulonglong *)(lVar2 + -0x400);
  uVar26 = CONCAT44(DAT_182670804,DAT_182670804);
  uVar25 = (uVar29 ^ *puVar35) >> (((byte)uVar14 ^ 0x73) & 0x3f);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xbceb6f5f)) = uVar25 ^ uVar26;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x602f9968)) = uVar25 ^ 0xfbb234864f377281;
  uVar25 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar16 = (uVar29 ^ *(ulonglong *)(lVar2 + -0x6b8)) << (((byte)uVar14 ^ 0x4b) & 0x3f);
  *(ulonglong *)(lVar2 + -0xce0) = (uVar26 ^ *puVar1) << 6;
  *(ulonglong *)(lVar2 + -0x588) = uVar16 ^ uVar25;
  lVar2 = DAT_1826707a0;
  puVar35 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  uVar19 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0x400);
  uVar16 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x5cbbccef)) ^ uVar26 | uVar16;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar16 ^ uVar19;
  *(ulonglong *)(lVar2 + -0xc18) =
       (CONCAT44(uVar4,uVar23) ^ 0x1569ee43f3122488) + (uVar29 ^ *puVar35);
  *(ulonglong *)(lVar2 + -0x7d8) = (uVar34 ^ uVar25) - uVar16 ^ uVar33;
  *(ulonglong *)(lVar2 + -0xce0) = CONCAT44(uVar23,uVar7) ^ 0xd3e224879ec82df4;
  uVar16 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *puVar1 = *(ulonglong *)(lVar2 - (uVar24 ^ 0xefdfd90f)) ^ uVar33 ^ *(ulonglong *)(lVar2 + -0x660)
            ^ uVar16 ^ uVar19;
  uVar8 = DAT_18267099c;
  uVar25 = *puVar1;
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x5cbbc83f)) ^ uVar19) -
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xd88));
  uVar19 = CONCAT44(uVar8,uVar8);
  uVar15 = DAT_1826707f0 ^ 0x52108759;
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar16 ^ uVar25) >> ((local_c8 ^ 0x90) & 0x3f) ^ uVar19;
  *(uint *)(lVar2 - (uVar28 ^ 0xcecf568f)) = (DAT_1826707bc ^ 0x93923ac0) + uVar15;
  uVar25 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar36 ^ 0xfcfb77df)) ^ uVar16) <<
           (((byte)uVar22 ^ 0xa7) & 0x3f);
  uVar16 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar2 + -0xc18) = uVar25 ^ CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar2 + -0x400) = (*puVar27 ^ uVar19 | uVar25) ^ uVar16;
  uVar8 = DAT_1826708b4;
  uVar25 = (uVar33 ^ *(ulonglong *)(lVar2 + -0x660)) - (CONCAT44(uVar6,uVar4) ^ 0x1a4209097774b498);
  *(ulonglong *)(lVar2 + -0xce0) = uVar25 ^ CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar9 = DAT_1826708fc;
  *(ulonglong *)(lVar2 + -0x6f0) = uVar25 - (uVar16 ^ *puVar17) ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182670930;
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 - (uVar18 ^ 0x255ddbf7)) ^ uVar16) -
       (CONCAT44(uVar5,uVar23) ^ 0x62fc83281c57ebaf) ^ CONCAT44(uVar9,uVar9);
  *puVar1 = *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xcc5c8e51)) ^ CONCAT44(uVar8,uVar8) ^
            uVar33 ^ uVar20 ^ *puVar30;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar31;
  return;
}



############ FUN_ 180cfd620 size=5342 ############

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

void FUN_180cfd620(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  uint uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  byte local_118;
  byte local_110;
  byte local_108;
  byte local_f0;
  byte local_b8;
  
  uVar12 = DAT_182670ac4;
  uVar11 = DAT_1826707f4;
  uVar10 = DAT_1826707dc;
  uVar9 = DAT_1826707d8;
  uVar8 = DAT_1826707d0;
  uVar14 = DAT_1826707c4;
  uVar7 = DAT_1826707bc;
  uVar6 = DAT_1826707a8;
  uVar37 = (ulonglong)DAT_1826707c4;
  uVar31 = (ulonglong)DAT_1826707dc;
  uVar42 = (ulonglong)DAT_1826707d0;
  uVar27 = (ulonglong)DAT_1826707d8;
  uVar39 = DAT_1826707bc & DAT_1826707d0;
  uVar20 = DAT_1826707a8 << 0x10;
  uVar32 = DAT_1826707dc ^ DAT_1826707d8;
  uVar45 = (DAT_1826707f4 << 0x10 | DAT_1826707f4 & 0xff00) << 8 | DAT_1826707f4 >> 8 & 0xff00 |
           DAT_1826707f4 >> 0x18;
  uVar49 = ~DAT_1826707c4;
  uVar46 = uVar45 ^ 0xe5012d39;
  uVar21 = (uVar20 | DAT_1826707a8 & 0xff00) << 8 | DAT_1826707a8 >> 8 & 0xff00 |
           DAT_1826707a8 >> 0x18;
  uVar3 = *(uint *)(&DAT_18260f760 + DAT_182670bd0);
  uVar17 = *(uint *)(&DAT_18260f758 + DAT_182670bd0) ^ DAT_1826707c4;
  uVar24 = (ulonglong)uVar32;
  DAT_1826707ac = uVar32;
  DAT_1826707e0 = uVar49;
  DAT_1826707e4 = uVar46;
  DAT_1826707ec = uVar39;
  DAT_1826707f0 = uVar21;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x407c26c0)) =
       (CONCAT44(DAT_1826707dc,uVar32) ^ 0x3f07f316e754e1a1) <<
       (((byte)DAT_182670a7c ^ *(byte *)(DAT_1826707a0 + -0xd88)) & 0x3f);
  lVar4 = DAT_1826707a0;
  bVar15 = (byte)uVar8;
  uVar33 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar23 = (ulonglong)uVar7;
  uVar25 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0)) >>
       ((bVar15 ^ 0x84) & 0x3f) ^ uVar33;
  uVar19 = (ulonglong)uVar21;
  uVar36 = (ulonglong)uVar11;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xc17c2c68)) =
       *(ulonglong *)(lVar4 - (uVar23 ^ 0xb99e25dd)) ^ uVar25 |
       CONCAT44(uVar14,uVar21) ^ 0x7bcb68221740b8e9;
  uVar30 = (ulonglong)uVar6;
  puVar40 = (ulonglong *)(lVar4 - (uVar30 ^ 0xe2728f9d));
  uVar28 = CONCAT44(DAT_182670af4,DAT_182670af4);
  *(ulonglong *)(lVar4 + -0xcf8) =
       (CONCAT44(DAT_182670838,DAT_182670838) ^ *puVar40 | *(ulonglong *)(lVar4 + -0xbb0) ^ uVar33)
       ^ uVar28;
  uVar12 = DAT_182670af0;
  uVar29 = (ulonglong)DAT_182670898;
  uVar41 = CONCAT44(DAT_182670898,DAT_182670898);
  uVar28 = *(ulonglong *)(lVar4 - (uVar42 ^ 0xff77f37b)) ^
           *(ulonglong *)(lVar4 - (uVar27 ^ 0x407c2cf0)) ^ uVar41 ^ uVar28 ^ uVar25;
  uVar22 = CONCAT44(DAT_182670934,DAT_182670934);
  *(ulonglong *)(lVar4 + -0x588) = uVar28;
  *(ulonglong *)(lVar4 + -0x410) =
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0x420129ed)) ^ uVar41) +
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0x658)) ^ uVar22;
  bVar16 = (byte)(uVar11 >> 0x18);
  uVar33 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar46 ^ 0xe52d5798)) =
       (uVar41 ^ uVar28) << ((bVar16 ^ 0xd6) & 0x3f) ^ uVar33;
  uVar12 = DAT_1826709bc;
  uVar48 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar28 = (*(ulonglong *)(lVar4 + -0x588) >> 0x20 ^ uVar29) >> 9;
  *(ulonglong *)(lVar4 + -0x610) = uVar28 ^ uVar48;
  uVar29 = CONCAT44(uVar12,uVar12);
  puVar1 = (ulonglong *)(lVar4 + -0x6b8);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xc17c2490)) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x660) | uVar28) ^ uVar29;
  *(ulonglong *)(lVar4 + -0x9c8) = (ulonglong)((uVar20 & 0xffffff) >> 0x16);
  uVar47 = CONCAT44(DAT_182670808,DAT_182670808);
  *puVar1 = *(ulonglong *)(lVar4 + -0x890) ^ *(ulonglong *)(lVar4 + -0x410) ^ uVar47 ^ uVar29 ^
            uVar22;
  lVar4 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar41 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x407c2138)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar39 ^ 0xb91625f1)) ^ uVar25) +
       (*(ulonglong *)(DAT_1826707a0 + -0x630) ^ uVar34) ^ uVar41;
  uVar12 = DAT_18267095c;
  uVar43 = CONCAT44(DAT_18267092c,DAT_18267092c);
  bVar38 = (byte)uVar7;
  uVar25 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0xe2728a1d)) ^ uVar34) << ((bVar38 ^ 5) & 0x3f);
  local_108 = (byte)uVar14;
  *(ulonglong *)(lVar4 + -0x998) = uVar25 ^ uVar43;
  uVar28 = (*(ulonglong *)(lVar4 + -0x630) ^ uVar34) >> ((local_108 ^ 0x38) & 0x3f);
  uVar33 = CONCAT44(uVar12,uVar12);
  puVar2 = (ulonglong *)(lVar4 + -0xa18);
  *puVar2 = uVar28 ^ uVar33;
  uVar35 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(lVar4 + -0xd88) = (uVar25 | uVar28) ^ uVar35;
  uVar13 = DAT_182670978;
  *(ulonglong *)(lVar4 + -0xac0) =
       (CONCAT44(uVar11,uVar45) ^ 0x9f8d837d9b11ffbd) >> ((byte)uVar9 & 0x3f);
  uVar12 = DAT_18267083c;
  uVar44 = CONCAT44(uVar13,uVar13);
  uVar50 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar28 = *(ulonglong *)(lVar4 - (uVar23 ^ 0xb99e28a5)) ^ *(ulonglong *)(lVar4 + -0xd38) ^ uVar44 ^
           uVar35 ^ uVar41;
  *(ulonglong *)(lVar4 + -0x9e0) = uVar28;
  uVar13 = DAT_182670858;
  *(ulonglong *)(lVar4 + -0x68) =
       (*(ulonglong *)(lVar4 + -0x410) ^ uVar22) + (uVar28 ^ uVar44) ^ uVar50;
  local_b8 = (byte)uVar49;
  uVar25 = CONCAT44(uVar13,uVar13);
  local_118 = (byte)(uVar6 >> 0x18);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x27d03d5)) =
       (uVar44 ^ uVar28) << ((local_b8 ^ 0xda) & 0x3f) ^ uVar25;
  uVar28 = (uVar44 ^ *(ulonglong *)(lVar4 + -0x9e0)) >> ((local_118 ^ 0xd9) & 0x3f);
  uVar22 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar28 ^ CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar13 = DAT_182670a84;
  uVar28 = (*(ulonglong *)(lVar4 + -0x3b0) ^ uVar25 | uVar28) ^ uVar22;
  *(ulonglong *)(lVar4 + -0x658) =
       CONCAT44(uVar11,uVar14) ^ 0xc0b1b12d8d78d664 | *(ulonglong *)(lVar4 + -0x610) ^ uVar48;
  *(ulonglong *)(lVar4 + -0xcf8) = uVar28;
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x588) = uVar28 ^ *(ulonglong *)(lVar4 + -0x68) ^ uVar35 ^ uVar22 ^ uVar50
  ;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xc17c2a60)) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xe2728a95)) ^ uVar47) <<
       ((*(byte *)(lVar4 + -0x68) ^ (byte)uVar12) & 0x3f);
  uVar12 = DAT_182670a18;
  uVar22 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(lVar4 + -0x9c8) =
       (uVar47 ^ *puVar1) + (*(ulonglong *)(lVar4 + -0xd38) ^ uVar41) ^ uVar22;
  uVar28 = CONCAT44(uVar12,uVar12);
  bVar26 = (byte)uVar10;
  *(ulonglong *)(lVar4 + -0x890) = (uVar47 ^ *puVar1) << (bVar26 & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x42012c95)) =
       (*puVar2 ^ uVar33) - (CONCAT44(uVar14,uVar39) ^ 0x4d5359869e2088fe);
  uVar33 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar4 + -0x630) = (uVar47 ^ *puVar1) >> ((bVar15 ^ 0x98) & 0x3f) ^ uVar33;
  uVar7 = DAT_182670b14;
  *(byte *)(lVar4 - (uVar36 ^ 0xc17c2e79)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x390) ^ (ulonglong)DAT_182670b14) ^ (byte)DAT_182670a40;
  uVar12 = DAT_182670a9c;
  uVar30 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x407c2598)) =
       (*(ulonglong *)(lVar4 + -0x630) ^ uVar33 | *(ulonglong *)(lVar4 + -0x890) ^ uVar28) ^ uVar30;
  uVar28 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar4 + -0xac0) =
       uVar28 ^ uVar30 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0x9c8) ^ *(ulonglong *)(lVar4 + -0x998);
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar46 ^ 0xe52d5c70)) =
       *(ulonglong *)(CONCAT44(DAT_182670a30,DAT_182670a30) ^ *(ulonglong *)(lVar4 + -0x3c0)) ^
       CONCAT44(uVar12,uVar12);
  uVar30 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar5 + -0x410) =
       (*(ulonglong *)(lVar5 + -0xac0) ^ uVar28) + (CONCAT44(uVar14,uVar21) ^ 0x8f04786f20b05d54) ^
       uVar30;
  uVar12 = DAT_182670a64;
  *(ulonglong *)(lVar5 + -0x9e0) =
       (CONCAT44(uVar32,uVar49) ^ 0x8915a7c118cb8287) << (((byte)uVar46 ^ 0xdc) & 0x3f);
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x472ccd90)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0xb99e2545)) ^ uVar50) +
       (CONCAT44(uVar11,uVar8) ^ 0x9f91c5ec2f14c567) ^ uVar31;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (*(ulonglong *)(DAT_1826707a0 + -0x630) ^ uVar33) + 0x9e3cec77bc63d181;
  uVar12 = DAT_182670864;
  uVar28 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar46 ^ 0xe52d55e8)) ^ uVar30) +
       (*(ulonglong *)(lVar4 + -0x3b0) ^ uVar31) ^ uVar28;
  uVar41 = (*(ulonglong *)(lVar4 + -0x410) ^ uVar30) << ((local_b8 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar4 + -0x658) = uVar41 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xcf8) =
       (CONCAT44(uVar11,uVar39) ^ 0x68a880c5921aedc) + 0x25713150eff1ebc3;
  uVar12 = DAT_182670818;
  lVar5 = DAT_1826707a0;
  uVar30 = (*(ulonglong *)(lVar4 + -0x410) ^ uVar30) >> ((bVar38 ^ 10) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar30 ^ CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar31 = CONCAT44(uVar12,uVar12);
  puVar18 = (ulonglong *)(lVar5 - (uVar36 ^ 0xc17c2138));
  uVar25 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *puVar18 = (uVar30 | uVar41) ^ uVar31;
  *(ulonglong *)(lVar5 - (uVar19 ^ 0x2d8c78fa)) =
       *(ulonglong *)(lVar5 - (uVar24 ^ 0x27d0d5d)) ^ *(ulonglong *)(lVar5 + -0x610) ^ uVar25 ^
       uVar31 ^ uVar28;
  uVar41 = CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar30 = (CONCAT44(uVar9,uVar32) ^ 0xfa5e4c1171862bcc) + (uVar35 ^ *(ulonglong *)(lVar5 + -0x588))
  ;
  *(ulonglong *)(lVar5 + -0xf0) = uVar30 ^ uVar41;
  uVar31 = (CONCAT44(uVar49,uVar14) ^ 0xda593f9b661f6d2b) +
           (uVar22 ^ *(ulonglong *)(lVar5 + -0x9c8));
  *puVar1 = uVar31 ^ CONCAT44(uVar7,uVar7);
  uVar22 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  local_110 = (byte)uVar39;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x407c2490)) = uVar31 + uVar30 ^ uVar22;
  uVar41 = uVar41 ^ *(ulonglong *)(lVar5 + -0xf0);
  uVar36 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar5 + -0x998) = uVar41 << ((local_110 ^ 0x20) & 0x3f) ^ uVar36;
  uVar31 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x407c2188)) = uVar41 >> ((bVar26 ^ 0x7a) & 0x3f) ^ uVar31;
  uVar30 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar36 = (uVar36 ^ *(ulonglong *)(lVar5 + -0x998) | *(ulonglong *)(lVar5 + -0xd88) ^ uVar31) ^
           uVar30;
  uVar41 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar5 + -0xac0) = uVar36;
  *(ulonglong *)(lVar5 - (uVar23 ^ 0xb99e2ccd)) =
       *(ulonglong *)(lVar5 + -0x890) ^ uVar41 ^ uVar36 ^ uVar30 ^ uVar22;
  uVar12 = DAT_182670938;
  *(ulonglong *)(lVar5 + -0x68) =
       (*(ulonglong *)(lVar5 + -0xd88) ^ uVar31) >> ((bVar26 ^ 100) & 0x3f);
  uVar13 = DAT_18267086c;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 + -0x630) =
       (*(ulonglong *)(lVar5 - (uVar19 ^ 0x2d8c74f2)) ^ uVar28) +
       (uVar41 ^ *(ulonglong *)(lVar5 + -0x9e0)) ^ uVar23;
  uVar12 = DAT_1826707fc;
  uVar31 = CONCAT44(uVar13,uVar13);
  puVar51 = (ulonglong *)(lVar5 - (uVar42 ^ 0xff77f433));
  *puVar51 = (uVar41 ^ *(ulonglong *)(lVar5 + -0x9e0)) << ((bVar16 ^ 0xef) & 0x3f) ^ uVar31;
  uVar30 = CONCAT44(uVar12,uVar12);
  *puVar40 = (uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0)) >> (((byte)uVar46 ^ 0xea) & 0x3f) ^
             uVar30;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670948,DAT_182670948);
  uVar30 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar49 ^ 0xb8d33a6f)) ^ uVar31 |
           uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x3b0)) ^ uVar28;
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) = uVar30;
  uVar12 = DAT_182670828;
  *(ulonglong *)(lVar4 + -0x410) =
       (CONCAT44(uVar32,uVar45) ^ 0x847a3213771a1bef) - (CONCAT44(uVar10,uVar9) ^ 0xe42f18316f8d036)
  ;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x658) =
       uVar36 ^ uVar28 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x630) ^ uVar23;
  local_f0 = (byte)uVar6;
  uVar31 = CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar30 = *puVar2;
  *(ulonglong *)(lVar4 + -0x660) =
       (*(ulonglong *)(lVar4 + -0x890) ^ uVar22) + (uVar25 ^ uVar30) ^ uVar31;
  uVar28 = CONCAT44(DAT_182670a24,DAT_182670a24);
  *(ulonglong *)(lVar4 + -0xd38) = (uVar25 ^ uVar30) << ((local_f0 ^ 0x21) & 0x3f) ^ uVar28;
  *(int *)(lVar4 - (uVar42 ^ 0xff77f38f)) =
       -0x55fd8c2a << ((byte)*(undefined4 *)(lVar4 + -0x280) & 0x1f);
  uVar30 = (uVar25 ^ *puVar2) >> ((local_118 ^ 0xd6) & 0x3f);
  *(ulonglong *)(lVar4 + -0x588) = uVar30 ^ CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar28 ^ *puVar18 ^ 0x730ea9675173d9e;
  uVar41 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  uVar30 = (uVar30 | uVar28 ^ *(ulonglong *)(lVar4 + -0xd38)) ^ uVar41;
  *puVar1 = uVar30;
  uVar28 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar4 - (uVar19 ^ 0x2d8c7212)) =
       uVar28 ^ uVar41 ^ uVar31 ^ *(ulonglong *)(lVar4 + -0x660) ^ uVar30;
  uVar19 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar30 = (uVar28 ^ *(ulonglong *)(lVar4 + -0xf0)) + (*(ulonglong *)(lVar4 + -0x630) ^ uVar23) ^
           uVar19;
  *(ulonglong *)(lVar4 + -0x998) = uVar30;
  uVar12 = DAT_182670830;
  lVar4 = DAT_1826707a0;
  uVar23 = (uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) << (((byte)uVar9 ^ 0x3a) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar23 ^ CONCAT44(DAT_18267088c,DAT_18267088c);
  lVar5 = DAT_1826707a0;
  uVar28 = (*(ulonglong *)(lVar4 - (uVar24 ^ 0x27d0095)) ^ uVar28) >> ((local_110 ^ 7) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar28 ^ CONCAT44(uVar12,uVar12);
  uVar23 = (uVar28 | uVar23) ^ uVar43;
  *(ulonglong *)(lVar5 + -0x68) = uVar23;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar23 = uVar28 ^ uVar30 ^ uVar19 ^ uVar43 ^ uVar23;
  uVar30 = *(ulonglong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar23;
  uVar24 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(lVar4 + -0x9e0) = (CONCAT44(uVar6,uVar32) ^ 0x67f7bdf3f842898f) + (uVar28 ^ uVar23)
  ;
  uVar12 = DAT_182670a94;
  *puVar51 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0x472cc878)) ^ uVar36) + (uVar31 ^ uVar30) ^ uVar24;
  uVar37 = (uVar36 ^ *(ulonglong *)(lVar4 + -0x658)) << ((local_118 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar4 + -0x3b0) = uVar37 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670ac8;
  uVar7 = DAT_1826707e8;
  uVar6 = DAT_1826707b8;
  uVar31 = (ulonglong)DAT_1826707b8;
  uVar22 = (ulonglong)DAT_1826707e8;
  uVar14 = DAT_1826707b8 + DAT_1826707e8;
  uVar30 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x74a0e7d8)) ^ uVar36) >>
           (((byte)DAT_1826707b8 ^ 0xaa) & 0x3f);
  DAT_1826707b4 = uVar14;
  *(ulonglong *)(lVar4 + -0x410) = uVar30 ^ CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(lVar4 + -0xcf8) = uVar30 >> ((byte)uVar30 & 0x3f);
  uVar23 = CONCAT44(uVar12,uVar12);
  uVar36 = (uVar30 | uVar37) ^ uVar23;
  *(ulonglong *)(lVar4 + -0x890) = uVar36;
  uVar12 = DAT_182670ab8;
  uVar30 = *(ulonglong *)(lVar4 + -0xbb0);
  *puVar2 = (uVar41 ^ *puVar1) + 0x3dcc957721398d5;
  uVar37 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar23 ^ uVar24 ^ uVar36 ^ uVar30 ^ uVar29;
  uVar12 = DAT_182670860;
  puVar18 = (ulonglong *)(lVar4 - (uVar31 ^ 0x3434ccb8));
  *puVar18 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x74a0e848)) ^ uVar29) +
             (*(ulonglong *)(lVar4 - (uVar31 ^ 0x3434c818)) ^ uVar19) ^ uVar37;
  uVar19 = CONCAT44(uVar12,uVar12);
  uVar29 = uVar29 ^ *(ulonglong *)(lVar4 + -0x9c8);
  uVar23 = uVar29 << 0x20;
  *(ulonglong *)(lVar4 + -0x588) = uVar23 ^ uVar19;
  bVar16 = (byte)uVar7 ^ 0x20;
  uVar29 = uVar29 >> (bVar16 & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar29 ^ uVar33;
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0x3434c170)) = (uVar23 | uVar29) ^ uVar30;
  uVar12 = DAT_182670a88;
  *(ulonglong *)(lVar4 + -0xac0) =
       uVar30 ^ uVar19 ^ uVar37 ^ *puVar18 ^ *(ulonglong *)(lVar4 + -0xf0);
  uVar13 = DAT_1826709b0;
  uVar19 = CONCAT44(uVar12,uVar12);
  uVar23 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x406c2610)) ^ uVar28) +
       (uVar24 ^ *(ulonglong *)(lVar4 + -0xbb0)) ^ uVar19;
  uVar12 = DAT_182670824;
  uVar24 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x610)) << (bVar16 & 0x3f);
  uVar30 = (uVar28 ^ *(ulonglong *)(lVar4 + -0x610)) >> (bVar16 & 0x3f);
  *(ulonglong *)(lVar4 + -0x68) = uVar24 ^ uVar23;
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x9e0) = uVar30 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x3434c7e0)) = (uVar24 | uVar30) ^ uVar23;
  uVar30 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x3434c7d8)) =
       uVar30 ^ uVar23 ^ uVar19 ^ *(ulonglong *)(lVar4 + -0xd88) ^ *(ulonglong *)(lVar4 + -0x660);
  uVar12 = DAT_1826708a8;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x74a0ed78)) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0x406c2658)) ^ uVar30) +
       (CONCAT44(uVar6,uVar6) ^ 0x56becfc41507628b) ^ uVar34;
  uVar30 = (CONCAT44(uVar6,uVar14) ^ 0xb2b177e7d0e7da2) + (uVar37 ^ *(ulonglong *)(lVar4 + -0xd38));
  *(ulonglong *)(lVar4 + -0x3b0) = uVar30 ^ CONCAT44(DAT_1826707f8,DAT_1826707f8);
  puVar18 = (ulonglong *)(lVar4 - (uVar31 ^ 0x3434cd78));
  *puVar1 = (uVar34 ^ *puVar18) + uVar30 ^ CONCAT44(uVar12,uVar12);
  *puVar2 = (uVar34 ^ *puVar18) << 0xe ^ CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar3 ^ uVar49) * 4) = uVar17;
  return;
}



############ FUN_ 180cfffd0 size=4295 ############

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

void FUN_180cfffd0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uint uVar10;
  ulonglong uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  byte *pbVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint *puVar37;
  ulonglong uVar21;
  
  uVar34 = DAT_1826707d0;
  uVar15 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar20 = (DAT_1826707b8 << 0x10 | DAT_1826707b8 & 0xff00) << 8 | DAT_1826707b8 >> 8 & 0xff00 |
           DAT_1826707b8 >> 0x18;
  uVar21 = (ulonglong)uVar20;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670bd8);
  uVar14 = *(uint *)(&DAT_18260f758 + DAT_182670bd8) ^ DAT_1826707b8;
  uVar19 = (ulonglong)DAT_1826707d0;
  uVar11 = (ulonglong)DAT_1826707d0;
  uVar30 = DAT_1826708b8 ^ *(uint *)(DAT_1826707a0 + -0x42c);
  uVar23 = ~DAT_1826707d0;
  bVar13 = (byte)DAT_1826707b8;
  bVar12 = bVar13 ^ 0xc4;
  DAT_1826707c4 = uVar20;
  DAT_1826707ec = uVar23;
  *(uint *)(DAT_1826707a0 + -0x280) =
       (*(uint *)(DAT_1826707a0 + -0x540) ^ DAT_182670824) + (DAT_1826707b8 ^ 0x2036b5f6) ^
       DAT_182670ab0;
  uVar31 = uVar30 << (bVar12 & 0x1f) ^ DAT_182670998;
  *(uint *)(lVar2 + -0xa34) = uVar31;
  uVar31 = uVar31 ^ DAT_182670998;
  *(longlong *)(lVar2 + -0x420) =
       *(longlong *)(lVar2 + -0x220) - *(longlong *)(lVar2 - ((ulonglong)uVar23 ^ 0x54307e60));
  uVar30 = *(uint *)(lVar2 + -0x68c) ^ DAT_182670b08;
  uVar18 = (*(uint *)(lVar2 - (uVar19 ^ 0xabcf857f)) ^ DAT_182670ab0) - uVar31 ^ DAT_182670908;
  *(uint *)(lVar2 + -0x43c) = uVar18;
  uVar31 = DAT_182670a84;
  *(uint *)(lVar2 + -0x814) = uVar30 * (uVar18 ^ DAT_182670908) ^ DAT_182670a5c;
  uVar30 = *(uint *)(lVar2 - ((ulonglong)uVar23 ^ 0x54307c2c)) ^ DAT_1826708b8;
  *(longlong *)(lVar2 + -0x410) = *(longlong *)(lVar2 + -0x9c8) + *(longlong *)(lVar2 + -0x2b0);
  uVar30 = uVar30 * (uVar23 ^ 0x54307806) ^ DAT_182670828;
  puVar37 = (uint *)(lVar2 - (uVar21 ^ 0xd5f812ff));
  *(uint *)(lVar2 + -0x9ec) = uVar30;
  *puVar37 = (*(uint *)(lVar2 - (uVar11 ^ 0xabcf8feb)) ^ DAT_182670a5c) + (uVar30 ^ DAT_182670828) ^
             uVar31;
  uVar36 = DAT_182670ae4;
  uVar30 = DAT_182670934;
  uVar18 = *(uint *)(lVar2 + -0xcec) ^ DAT_18267089c;
  bVar13 = bVar13 ^ 0xc6;
  uVar35 = (*(uint *)(lVar2 + -0x14) ^ uVar31) << (((byte)uVar23 ^ 0xd) & 0x1f) ^ DAT_1826709a8;
  uVar28 = (*(uint *)(lVar2 + -0x14) ^ uVar31) >> (bVar13 & 0x1f) ^ DAT_1826709ac;
  *(uint *)(lVar2 + -0x7e4) = uVar28;
  uVar28 = uVar28 ^ DAT_1826709ac;
  *(longlong *)(lVar2 + -0x558) = *(longlong *)(lVar2 + -0x6b8) << (((byte)uVar34 ^ 0xe8) & 0x3f);
  uVar31 = *(uint *)(lVar2 + -0x8e0) ^ DAT_182670ad0;
  *(uint *)(lVar2 + -0x3d4) = uVar35;
  *(uint *)(lVar2 + -0x598) = (uVar28 | uVar35 ^ DAT_1826709a8) ^ uVar30;
  uVar22 = (ulonglong)DAT_182670950;
  *(uint *)(lVar2 - ((ulonglong)uVar34 ^ 0xabcf852b)) = uVar18 + uVar31 ^ uVar36;
  uVar31 = DAT_182670a90 ^ uVar30;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0xeb12f465)) =
       *(longlong *)(lVar2 + -0x638) + ((CONCAT44(uVar23,uVar15) ^ 0x54307800eb12f8d5) * 5 + 1) * 4
       ^ uVar22;
  *(uint *)(*(ulonglong *)(lVar2 + -0xcb0) ^ uVar22) = uVar31 ^ *(uint *)(lVar2 + -0x598);
  *(uint *)(lVar2 + -0xc0c) = *(uint *)(lVar2 + -0x2d4) ^ DAT_1826708a4 ^ uVar36;
  *(uint *)(lVar2 + -0xc34) = DAT_182670a60 ^ uVar30 ^ *(uint *)(lVar2 + -0x598);
  *(uint *)(lVar2 + -0xc04) =
       *(uint *)(lVar2 - ((ulonglong)uVar15 ^ 0xeb12f4d9)) ^ DAT_182670a44 ^ DAT_1826708a4;
  uVar29 = DAT_1826707f4;
  uVar15 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_182670ad8;
  uVar22 = (ulonglong)DAT_1826707f4;
  *(longlong *)(lVar2 - (uVar11 ^ 0xabcf8f6f)) = *(longlong *)(lVar2 + -0x5c0) + 0x292647158779ee90;
  *(uint *)(lVar2 - ((ulonglong)uVar20 ^ 0xd5f81173)) =
       *(uint *)(lVar2 + -0xc34) ^ DAT_182670a64 ^ DAT_182670a60;
  *(uint *)(lVar2 + -0x540) = *(uint *)(lVar2 + -0xc04) ^ DAT_182670a70 ^ DAT_182670a44;
  uVar11 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0x54307370)) =
       (CONCAT44(uVar29,uVar34) ^ 0x3db91dd1d107521e) <<
       ((byte)*(undefined8 *)(lVar2 + -0x410) & 0x3f);
  *(uint *)(lVar2 + -0x280) = *(uint *)(lVar2 + -0x398) ^ DAT_1826709f4 ^ DAT_182670a64;
  *(uint *)(lVar2 + -0xa34) = *(uint *)(lVar2 + -0x540) ^ DAT_18267098c ^ DAT_182670a70;
  uVar18 = DAT_1826707dc;
  *(uint *)(lVar2 - ((ulonglong)uVar15 ^ 0xbfbfcc46)) =
       *(uint *)(lVar2 - (uVar11 ^ 0x404037b5)) ^ _DAT_182670ad4 ^ DAT_1826709f4;
  uVar15 = DAT_182670a74;
  uVar28 = DAT_1826707cc;
  uVar31 = DAT_1826707b4;
  uVar25 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0x80420630)) =
       *(longlong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xc957e485)) +
       (CONCAT44(uVar34,DAT_1826707cc) ^ 0xabcf87ffa82a7f87) ^ uVar24;
  bVar17 = (byte)DAT_182670904;
  uVar30 = *(uint *)(lVar3 + -0x68c) ^ _DAT_182670ad4;
  bVar9 = *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x54307a70)) ^ uVar24) ^
          (byte)DAT_182670904 ^ (byte)DAT_182670adc;
  uVar10 = DAT_1826707d8 ^ 0xf459ab89;
  *(byte *)(lVar3 + -0x619) = bVar9;
  uVar23 = DAT_182670a8c;
  uVar35 = uVar30 + uVar10 ^ DAT_18267092c;
  uVar32 = (uint)(bVar9 ^ bVar17);
  *(uint *)(lVar3 + -0x43c) = uVar32 ^ uVar15;
  *(uint *)(lVar3 + -0x42c) = uVar35;
  uVar30 = DAT_1826707bc;
  uVar35 = uVar35 ^ DAT_18267092c;
  uVar27 = (ulonglong)DAT_1826707bc;
  uVar32 = uVar32 << (((byte)DAT_1826707bc ^ 0x19) & 0x1f) ^ DAT_182670980;
  *(uint *)(lVar3 + -0x814) = uVar32;
  *(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0x3e5f185)) =
       uVar35 - (uVar32 ^ DAT_182670980) ^ DAT_1826709f8;
  *(ulonglong *)(lVar3 + -0xce0) =
       *(ulonglong *)
        (*(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0x804205a8)) ^ CONCAT44(uVar23,uVar23)) ^
       CONCAT44(uVar36,uVar36);
  *(uint *)(lVar3 + -0x14) =
       (*(uint *)(lVar3 - (uVar19 ^ 0xabcf8e13)) ^ DAT_1826709f8) *
       (*(uint *)(lVar3 - (uVar19 ^ 0xabcf8dcb)) ^ DAT_18267098c) ^ DAT_182670818;
  uVar23 = _DAT_182670b10;
  uVar18 = DAT_1826707c0;
  uVar26 = (ulonglong)DAT_182670884;
  uVar15 = (*(uint *)(lVar3 + -0x43c) ^ uVar15) * (uVar28 ^ 0xa82a7f87) ^ DAT_182670aec;
  *(uint *)(lVar3 + -0x3d4) = uVar15;
  uVar4 = DAT_1826707f0;
  uVar36 = (*puVar37 ^ DAT_182670818) + (uVar15 ^ DAT_182670aec);
  uVar11 = CONCAT44(DAT_1826707f0,uVar18);
  *(uint *)(lVar3 + -0x7e4) = uVar36 ^ uVar23;
  uVar15 = DAT_1826707ac;
  *(ulonglong *)(lVar3 + -0xac0) = uVar11 ^ 0x1c6878983413afa2 | *(ulonglong *)(lVar3 + -0x558);
  uVar15 = uVar36 << (((byte)uVar15 ^ 0xb2) & 0x1f) ^ DAT_182670830;
  *(uint *)(lVar3 + -0x8e0) = uVar15;
  uVar15 = uVar15 ^ DAT_182670830;
  bVar17 = *(byte *)(uVar26 ^ *(ulonglong *)(lVar3 + -0xdb8)) ^ (byte)DAT_182670adc;
  uVar11 = (ulonglong)DAT_1826707e4;
  *(uint *)(lVar3 + -0x2d4) =
       (*(uint *)(lVar3 + -0x7e4) ^ uVar23) >> (bVar13 & 0x1f) ^ DAT_182670808;
  *(byte *)(lVar3 + -0xc35) = bVar17;
  uVar32 = DAT_18267098c;
  *(uint *)(lVar3 - (uVar22 ^ 0x9eda2141)) =
       (*(uint *)(lVar3 - (uVar11 ^ 0xc957e661)) ^ DAT_182670808 | uVar15) ^ DAT_182670a24;
  uVar36 = *(uint *)(lVar3 + -0xc0c) ^ DAT_18267095c;
  uVar15 = (*(uint *)(lVar3 - (uVar21 ^ 0xd5f819bf)) ^ DAT_182670848) +
           (*(uint *)(lVar3 + -0xa34) ^ uVar32) ^ DAT_182670934;
  *(uint *)(lVar3 + -0xc34) = uVar15;
  uVar36 = uVar36 ^ DAT_182670a24;
  *(uint *)(lVar3 + -0x398) = uVar15 ^ DAT_182670804 ^ DAT_182670934;
  *(longlong *)(lVar3 + -0x3b0) = -0x52bc92e23c1284d4 - *(longlong *)(lVar3 + -0x558);
  uVar6 = DAT_1826709c8;
  uVar23 = DAT_1826707ec;
  uVar15 = DAT_1826707e8;
  uVar35 = DAT_1826707e0;
  uVar24 = (ulonglong)DAT_1826707e0;
  uVar11 = (ulonglong)DAT_1826709bc;
  *(uint *)(lVar3 + -0x540) = uVar36;
  uVar8 = DAT_182670aa4;
  uVar33 = uVar36 ^ uVar6 ^ DAT_18267095c;
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar31,uVar23) ^ 0xcd3cb07255e08ee2) << (((byte)uVar15 ^ 0xbe) & 0x3f);
  uVar36 = DAT_1826707d8;
  *(uint *)(lVar3 + -0x280) =
       *(uint *)(lVar3 - ((ulonglong)uVar35 ^ 0x2940a3ba)) ^ uVar8 ^ DAT_182670804;
  *(uint *)(lVar3 + -0x68c) = uVar33;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0x2d4d9c32)) =
       *(longlong *)(lVar3 + -0x30) + 0x1c + (CONCAT44(uVar36,uVar34) ^ 0x3f7de6aaabcf87ff) * 0x20 ^
       uVar11;
  uVar23 = DAT_1826707c8;
  uVar22 = (ulonglong)DAT_1826707c8;
  bVar13 = *(byte *)(*(ulonglong *)(lVar3 + -0x2e8) ^ uVar11) ^ (byte)uVar32 ^ (byte)DAT_182670adc;
  *(byte *)(lVar3 + -0x619) = bVar13;
  uVar7 = DAT_1826709f0;
  *(uint *)(lVar3 + -0x42c) = (uint)bVar13 ^ uVar32 & 0xff ^ DAT_1826709f0;
  *(longlong *)(lVar3 - ((ulonglong)DAT_1826707ec ^ 0x54307218)) =
       *(longlong *)(lVar3 - (uVar21 ^ 0xd5f817b3)) <<
       ((byte)*(undefined8 *)(lVar3 - (uVar22 ^ 0x8c6ec87e)) & 0x3f);
  uVar33 = DAT_1826708cc;
  uVar11 = (ulonglong)DAT_1826707b0;
  *(uint *)(lVar3 + -0x814) =
       (uVar6 ^ *(uint *)(lVar3 + -0x68c)) + (DAT_1826707cc ^ 0x630e32b5) ^ DAT_182670a90;
  *(uint *)(lVar3 - ((ulonglong)uVar30 ^ 0x1a6c9e4)) =
       (*(uint *)(lVar3 - (uVar11 ^ 0x40403119)) ^ uVar7) << (((byte)uVar31 ^ 0x78) & 0x1f) ^ uVar33
  ;
  uVar15 = *(uint *)(lVar3 + -0x814) ^ DAT_182670a90;
  *(byte *)(lVar3 + -0xc35) =
       *(byte *)(uVar26 ^ *(ulonglong *)(lVar3 + -0xdb8)) ^ (byte)DAT_182670adc;
  uVar30 = uVar15 - (*(uint *)(lVar3 + -0x9ec) ^ uVar33) ^ DAT_1826709c4;
  *(uint *)(lVar3 + -0x43c) = uVar30;
  uVar30 = uVar30 ^ DAT_1826709c4;
  *(ulonglong *)(lVar3 + -0x9e0) = *(ulonglong *)(lVar3 + -0xce0) ^ *(ulonglong *)(lVar3 + -0x2b0);
  uVar15 = DAT_1826707b8;
  uVar30 = uVar30 * (*(uint *)(lVar3 + -0x280) ^ uVar8) ^ DAT_182670a48;
  *(uint *)(lVar3 + -0x14) = uVar30;
  uVar30 = uVar30 ^ DAT_182670a48;
  uVar23 = (*(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0x8c6ec692)) ^ uVar7) * (uVar35 ^ 0x2940a03e) ^
           DAT_182670930;
  *(uint *)(lVar3 + -0x3d4) = uVar23;
  uVar6 = DAT_182670a08;
  *(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0x40046665)) =
       (uVar23 ^ DAT_182670930) + uVar30 ^ DAT_182670a08;
  *(uint *)(lVar3 + -0x8e0) =
       (*(uint *)(lVar3 + -0x7e4) ^ uVar6) << (((byte)uVar15 ^ 0xd8) & 0x1f) ^ DAT_182670a40;
  uVar7 = DAT_182670968;
  uVar32 = DAT_182670848;
  uVar23 = DAT_1826707e8;
  uVar30 = DAT_1826707ac;
  uVar11 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar3 - (uVar22 ^ 0x8c6ec06a)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0x3e5ff8d)) ^ uVar6) >>
       (((byte)uVar35 ^ 0x31) & 0x1f) ^ DAT_182670840;
  uVar6 = DAT_1826708e4;
  uVar31 = DAT_1826707dc;
  lVar2 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707dc;
  puVar37 = (uint *)(DAT_1826707a0 - (uVar27 ^ 0x1a6c390));
  uVar15 = *(uint *)(DAT_1826707a0 + -0xb54);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       CONCAT44(uVar30,uVar18) ^ 0x6937853845fd9c85 |
       CONCAT44(uVar30,DAT_1826707a8) ^ 0x99e717a027432754;
  uVar18 = uVar7 ^ DAT_182670810;
  *(uint *)(lVar2 + -0xa34) =
       (*(uint *)(lVar2 - ((ulonglong)uVar30 ^ 0xcacab75f)) ^ DAT_182670a40 |
       *(uint *)(lVar2 + -0x2d4) ^ DAT_182670840) ^ DAT_182670ae0;
  uVar15 = (uVar32 ^ uVar15) + (*(uint *)(lVar2 + -0x280) ^ uVar8) ^ DAT_182670894;
  *(uint *)(lVar2 + -0xc34) = uVar15;
  uVar15 = uVar15 ^ DAT_182670810 ^ DAT_182670894;
  *(uint *)(lVar2 + -0xc0c) = uVar15;
  *(uint *)(lVar2 + -0x398) = *(uint *)(lVar2 - (uVar21 ^ 0x80420e74)) ^ uVar6 ^ DAT_182670ae0;
  uVar30 = DAT_1826707d8 ^ 0x2ba89809;
  *(uint *)(lVar2 - (uVar11 ^ 0x3f7dc3ca)) = uVar18 ^ uVar15;
  uVar5 = DAT_1826707f0;
  uVar18 = uVar6 ^ uVar33 ^ *puVar37;
  uVar15 = DAT_1826707a8 ^ 0xb3d44900;
  *(uint *)(lVar2 + -0x68c) = uVar18;
  uVar11 = (ulonglong)DAT_182670abc;
  *(uint *)(lVar2 + -0x814) = uVar30 + uVar15;
  pbVar16 = (byte *)(*(longlong *)(lVar2 + -0x30) + 7);
  *(ulonglong *)(lVar2 + -0x248) = (ulonglong)pbVar16 ^ uVar11;
  uVar15 = DAT_182670a8c;
  uVar33 = (uVar33 ^ uVar18) + uVar10 ^ DAT_182670860;
  *(ulonglong *)(lVar2 + -0xbb0) =
       (CONCAT44(uVar34,uVar5) ^ 0x1e5849a41320fdef) + 0xb91b075dacc6c249;
  bVar13 = (byte)DAT_1826708ec;
  uVar11 = (ulonglong)DAT_1826707ec;
  *(byte *)(lVar2 + -0x619) = *pbVar16 ^ (byte)DAT_1826708ec ^ (byte)DAT_182670adc;
  uVar30 = DAT_1826707e4;
  uVar18 = (uint)(*(byte *)(lVar2 - (uVar11 ^ 0x54307e19)) ^ bVar13);
  *(uint *)(lVar2 + -0x9ec) = uVar18 ^ uVar15;
  uVar15 = DAT_1826707b0;
  lVar2 = DAT_1826707a0;
  uVar11 = CONCAT44(uVar30,DAT_1826707b0);
  *(uint *)(DAT_1826707a0 + -0x43c) = uVar33;
  uVar33 = uVar33 ^ DAT_182670860;
  *(ulonglong *)(lVar2 + -0x400) =
       (uVar11 ^ 0x35f0a712f2db03db) + (CONCAT44(uVar29,uVar23) ^ 0xbc54646fe2729ba1);
  uVar34 = DAT_18267095c;
  *(uint *)(lVar2 + -0x42c) = uVar18 << ((byte)(uVar28 ^ 0xa82a7f87) & 0x1f) ^ DAT_182670a1c;
  lVar3 = DAT_1826707a0;
  uVar30 = uVar33 - (*(uint *)(lVar2 - (uVar19 ^ 0xabcf83d3)) ^ DAT_182670a1c) ^ _DAT_18267097c;
  *(uint *)(lVar2 + -0x14) = uVar30;
  uVar29 = DAT_1826709d0;
  uVar28 = (uVar30 ^ _DAT_18267097c) * (*(uint *)(lVar2 + -0x540) ^ uVar7);
  uVar30 = DAT_1826707c8 ^ 0x8c6ec2b9;
  *(uint *)(lVar3 + -0x3d4) = uVar28 ^ DAT_1826709d0;
  uVar30 = uVar18 * uVar30 ^ DAT_1826708d0;
  *(uint *)(lVar3 + -0x7e4) = uVar30;
  uVar28 = (uVar30 ^ DAT_1826708d0) + uVar28;
  *(uint *)(lVar3 + -0x2d4) = uVar28 ^ uVar34;
  uVar30 = DAT_1826707d4;
  *(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0x80420ca0)) = uVar28 * 0x2000 ^ DAT_182670ae4;
  uVar18 = DAT_18267084c;
  *(ulonglong *)(lVar3 + -0x4c8) =
       CONCAT44(uVar4,uVar30) ^ *(ulonglong *)(lVar3 + -0x588) ^ 0xd774fb9dfb1ac9da;
  uVar32 = (*(uint *)(lVar3 + -0x540) ^ uVar7) + (uVar32 ^ *(uint *)(lVar3 + -0xb54)) ^ uVar29;
  uVar31 = *(uint *)(lVar3 + -0x8e0) ^ DAT_182670ae4;
  *(ulonglong *)(lVar3 + -0x118) = (uVar24 ^ 0x7c200000) >> 0x15;
  *(uint *)(lVar3 + -0xa34) = uVar32;
  uVar28 = DAT_182670914;
  uVar29 = uVar32 ^ DAT_182670ab8 ^ uVar29;
  uVar34 = (*(uint *)(lVar3 + -0x2d4) ^ uVar34) >> 0x13 ^ DAT_182670864;
  *(uint *)(lVar3 + -0x280) = uVar34;
  uVar34 = uVar34 ^ DAT_182670864;
  *(uint *)(lVar3 + -0xc0c) = uVar29;
  uVar34 = (uVar34 | uVar31) ^ DAT_182670928;
  uVar31 = uVar29 ^ uVar18 ^ DAT_182670ab8;
  uVar29 = uVar28 ^ DAT_182670820;
  *(uint *)(lVar3 + -0xc34) = uVar34;
  uVar34 = uVar34 ^ DAT_182670820 ^ DAT_182670928;
  *(uint *)(lVar3 + -0x814) = uVar31;
  uVar19 = (ulonglong)DAT_182670984;
  *(uint *)(lVar3 + -0x398) = uVar34;
  uVar34 = DAT_182670aa8;
  uVar31 = DAT_1826707ec;
  uVar11 = (ulonglong)DAT_1826707ec;
  *(uint *)(lVar3 + -0x68c) = uVar29 ^ *puVar37;
  bVar13 = (byte)DAT_182670b04;
  *(ulonglong *)(lVar3 - (uVar11 ^ 0x54307cf8)) =
       (CONCAT44(uVar35,uVar15) ^ 0x2940a02240403535) * 0x20 + *(longlong *)(lVar3 + -0x30) + 0x12 ^
       uVar19;
  *(ulonglong *)(lVar3 + -0x610) = CONCAT44(uVar23,uVar20) ^ 0x481824490042800 | 0xf37e542b6062d42f;
  bVar17 = *(byte *)(*(ulonglong *)(lVar3 + -0x4f8) ^ uVar19) ^ bVar13 ^ (byte)DAT_182670adc;
  *(byte *)(lVar3 + -0xc35) = bVar17;
  uVar11 = (ulonglong)DAT_1826707e4;
  *(uint *)(lVar3 - (uVar21 ^ 0x8042007c)) = (bVar17 ^ bVar13) ^ uVar34;
  *(ulonglong *)(lVar3 - (uVar11 ^ 0xc957e445)) =
       CONCAT44(uVar36,uVar30) ^ 0xd9da3dd20e3b00ea | *(ulonglong *)(lVar3 + -0xd88);
  uVar31 = (uVar28 ^ *(uint *)(lVar3 + -0x68c)) + (uVar31 ^ 0x9f143523) ^ DAT_182670994;
  uVar15 = (*(uint *)(lVar3 + -0x43c) ^ uVar34) << (bVar12 & 0x1f);
  uVar30 = uVar15 ^ DAT_182670a0c;
  *(uint *)(lVar3 + -0x42c) = uVar31;
  uVar31 = uVar31 ^ DAT_182670994;
  *(uint *)(lVar3 + -0x14) = uVar30;
  uVar15 = uVar31 - uVar15 ^ DAT_18267098c;
  *(uint *)(lVar3 + -0x9ec) = uVar15;
  *(uint *)(lVar3 + -0x3d4) =
       (uVar18 ^ *(uint *)(lVar3 + -0x814)) * (uVar15 ^ DAT_18267098c) ^ DAT_182670b14;
  uVar11 = (ulonglong)DAT_1826707a8;
  uVar15 = (*(uint *)(lVar3 - (uVar25 ^ 0xa82a7baa)) ^ uVar34) * (DAT_1826707a8 ^ 0xbfbfcad8) ^
           DAT_1826708c0;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar20) * 4) = uVar14;
  *(uint *)(lVar3 - (uVar11 ^ 0xbfbfcd2e)) = uVar15;
  return;
}



############ FUN_ 180ce4e80 size=3812 ############

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

void FUN_180ce4e80(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  byte *pbVar26;
  undefined8 *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  uint uVar42;
  byte local_res8;
  
  uVar13 = DAT_1826707e8;
  uVar12 = DAT_1826707e4;
  uVar11 = DAT_1826707dc;
  uVar10 = DAT_1826707d8;
  uVar9 = DAT_1826707d0;
  uVar7 = DAT_1826707b8;
  uVar6 = DAT_1826707b0;
  uVar28 = (ulonglong)DAT_1826707e8;
  uVar36 = (ulonglong)DAT_1826707dc;
  uVar29 = (ulonglong)DAT_1826707d0;
  uVar35 = (ulonglong)DAT_1826707d8;
  uVar18 = DAT_1826707d0 - DAT_1826707ec;
  uVar32 = (ulonglong)DAT_1826707e4;
  uVar39 = (ulonglong)DAT_1826707b0;
  uVar33 = DAT_1826707dc ^ DAT_1826707b0;
  uVar42 = ~DAT_1826707b8;
  uVar40 = DAT_1826707d8 * DAT_1826707e4;
  uVar25 = (DAT_1826707e8 << 0x10 | DAT_1826707e8 & 0xff00) << 8 | DAT_1826707e8 >> 8 & 0xff00 |
           DAT_1826707e8 >> 0x18;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670b84);
  uVar19 = *(uint *)(&DAT_18260f760 + DAT_182670b84) ^ DAT_1826707dc;
  uVar22 = (ulonglong)DAT_18267095c;
  DAT_1826707b4 = uVar25;
  DAT_1826707bc = uVar18;
  DAT_1826707c4 = uVar40;
  DAT_1826707e0 = uVar33;
  DAT_1826707f0 = uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0x8b8) = uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0xdb8);
  bVar17 = (byte)(uVar13 >> 0x18);
  uVar23 = (ulonglong)DAT_182670a20;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0xbbfbfd9b)) =
       0x11aebf83e84498ae >> ((bVar17 ^ 0xb2) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x8d66ddde)) =
       *(ulonglong *)(DAT_1826707a0 + -0xa30) ^ uVar23;
  bVar38 = (byte)DAT_182670a00;
  lVar3 = DAT_1826707a0;
  uVar20 = (ulonglong)uVar33;
  *(ulonglong *)(DAT_1826707a0 + -0x9e8) =
       (CONCAT44(uVar40,uVar9) ^ 0x7debd8e8ffffffbe) +
       (uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x708));
  local_res8 = (byte)uVar18;
  *(byte *)(lVar3 + -1) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x95a4983c)) ^ uVar23) ^ bVar38 ^
       DAT_1826709e0;
  uVar21 = (ulonglong)uVar7;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x66c4a04)) ^ (ulonglong)DAT_1826708fc) =
       local_res8 ^ 0x4d;
  uVar16 = DAT_182670ab4;
  uVar5 = DAT_18267088c;
  pbVar26 = (byte *)(*(ulonglong *)(lVar3 + -0x8b8) ^ uVar22);
  uVar24 = (ulonglong)DAT_18267088c;
  *(byte **)(lVar3 + -0xaa0) = pbVar26 + (CONCAT44(uVar10,uVar7) ^ 0x8d66dad67d3faae7);
  *pbVar26 = bVar38 ^ *(byte *)(lVar3 + -1);
  *(undefined8 *)(lVar3 + -0x9a0) = *(undefined8 *)(lVar3 + -0xaa0);
  uVar8 = DAT_1826709f0;
  uVar14 = DAT_1826707ec;
  uVar22 = (ulonglong)DAT_1826707ec;
  uVar30 = (ulonglong)uVar18;
  uVar31 = (ulonglong)DAT_1826709f0;
  uVar34 = (ulonglong)uVar42;
  *(longlong *)(lVar3 - ((ulonglong)DAT_1826707ec ^ 0xb1a3f38b)) =
       *(longlong *)(lVar3 + -0x558) << 0x2b;
  *(ulonglong *)(lVar3 + -0x4f8) = uVar24 ^ *(ulonglong *)(lVar3 + -0x9a0);
  uVar23 = (ulonglong)uVar8 ^ *(ulonglong *)(lVar3 + -0x9e8);
  *(ulonglong *)(lVar3 + -0x8a8) = *(ulonglong *)(lVar3 + -0x9e8);
  *(ulonglong *)(lVar3 + -0x418) = uVar23;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar42 ^ 0x82c056f9)) = (uVar31 ^ uVar23) + 1;
  lVar4 = DAT_1826707a0;
  bVar38 = (byte)uVar16;
  *(byte *)(lVar3 + -0x549) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x418) ^ uVar31) ^ bVar38 ^ DAT_1826709e0;
  uVar15 = DAT_18267087c;
  uVar41 = (ulonglong)DAT_18267087c;
  *(undefined1 *)(uVar41 ^ *(ulonglong *)(lVar4 + -0xab8)) = 0x50;
  uVar23 = *(ulonglong *)(lVar4 - (uVar36 ^ 0xbffff98f)) | *(ulonglong *)(lVar4 + -0x9e0);
  *(ulonglong *)(lVar4 + -0x410) = uVar23;
  *(ulonglong *)(lVar4 + -0x1f0) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x4e5c02d4)) ^ uVar24) +
       (CONCAT44(uVar6,uVar42) ^ 0x2a5b608b82c05518);
  *(ulonglong *)(lVar4 + -0x118) = *(ulonglong *)(lVar4 + -0x548) | uVar23;
  *(byte *)((ulonglong)uVar5 ^ *(ulonglong *)(lVar4 + -0x4f8)) = bVar38 ^ *(byte *)(lVar4 + -0x549);
  puVar27 = (undefined8 *)(lVar4 - ((ulonglong)uVar25 ^ 0x9bf9fa4b));
  *(undefined8 *)(lVar4 + -0x1d8) = *puVar27;
  uVar31 = (ulonglong)DAT_182670818;
  *(ulonglong *)(lVar4 + -0xf0) =
       CONCAT44(uVar12,uVar42) ^ CONCAT44(uVar40,uVar10) ^ 0xcc61885d6f6e4a59;
  *(undefined8 *)(lVar4 - ((ulonglong)uVar40 ^ 0x7debdc58)) = *(undefined8 *)(lVar4 + -0x3e0);
  *(ulonglong *)(lVar4 + -0x600) = uVar31 ^ *(ulonglong *)(lVar4 + -0x1d8);
  uVar23 = (ulonglong)DAT_182670804;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xbffff557)) = *(ulonglong *)(lVar4 + -0x4b0) ^ uVar23
  ;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x82c050f1)) =
       (CONCAT44(uVar7,uVar13) ^ 0x7d3faae6bbfbf99a) + (uVar23 ^ *(ulonglong *)(lVar4 + -0xae8));
  *(byte *)(lVar4 + -0x591) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar22 ^ 0xb1a3f37b)) ^ uVar23) ^ (byte)DAT_182670ac0 ^
       DAT_1826709e0;
  *(char *)((ulonglong)DAT_182670988 ^ *(ulonglong *)(lVar4 + -0x9d0)) = (char)uVar6;
  *(ulonglong *)(lVar4 + -0x610) = 0x466d141033a8405f - (CONCAT44(uVar9,uVar7) ^ 0xec0c7b8cdc747bb2)
  ;
  lVar3 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_182670860;
  *(ulonglong *)(lVar4 + -0x6a8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xbffff9bf)) ^ uVar31) + 1;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x95a49f5c)) =
       (CONCAT44(uVar13,uVar33) ^ 0xa804e6ee56f9c984) + *(longlong *)(lVar4 + -0xbb0);
  *(byte *)(uVar31 ^ *(ulonglong *)(lVar4 + -0x600)) =
       *(byte *)(lVar4 - ((ulonglong)uVar18 ^ 0x4e5c03bd)) ^ (byte)DAT_182670ac0;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xfffff9e7)) =
       (CONCAT44(uVar11,uVar9) ^ 0x8d5b80fd28ebe833) << ((bVar17 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar3 + -0x660) =
       (CONCAT44(uVar11,uVar6) ^ 0x83943d2dd2af25e4) <<
       ((byte)*(undefined8 *)(lVar3 + -0x118) & 0x3f);
  *(ulonglong *)(lVar3 + -0x1c8) = *(ulonglong *)(lVar3 + -0x6a8);
  uVar23 = *(ulonglong *)(lVar3 - (uVar21 ^ 0x7d3faf0e));
  *(ulonglong *)(lVar3 + -0xa60) = uVar23;
  uVar5 = DAT_182670864;
  uVar31 = (ulonglong)DAT_182670864;
  *(ulonglong *)(DAT_1826707a0 + -0x228) = uVar31 ^ *(ulonglong *)(lVar3 + -0x6a8);
  *(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x95a49b64)) = uVar24 ^ uVar23;
  lVar3 = DAT_1826707a0;
  pbVar26 = (byte *)(*(ulonglong *)(DAT_1826707a0 + -0x450) ^ uVar24);
  *(byte **)(DAT_1826707a0 + -0x20) = pbVar26 + (CONCAT44(uVar14,uVar18) ^ 0xb1a3f9934e5c062d);
  *(byte *)(lVar3 + -0xd01) = DAT_182670b10 ^ *pbVar26 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0xb28) ^ (ulonglong)DAT_182670878) = (byte)uVar40 ^ 0xd1
  ;
  lVar3 = DAT_1826707a0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x228);
  *(longlong *)(DAT_1826707a0 + -0x6b8) =
       *(longlong *)(DAT_1826707a0 - (uVar32 ^ 0x66c4a4c)) << ((bVar17 ^ 0x87) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xfffffecf)) = ((ulonglong)uVar5 ^ *puVar1) + 1;
  *(uint *)(lVar3 + -0x43c) =
       (*(uint *)(lVar3 - (uVar39 ^ 0x2a5b6bdf)) ^ DAT_182670a30) * -0x3fc4a7eb;
  *(byte *)(uVar31 ^ *(ulonglong *)(lVar3 + -0x228)) =
       *(byte *)(lVar3 - (uVar32 ^ 0x66c435d)) ^ DAT_182670b10;
  *(undefined8 *)(lVar3 + -0x270) = *(undefined8 *)(lVar3 - (uVar34 ^ 0x82c05469));
  *(ulonglong *)(lVar3 + -0x890) = *(ulonglong *)(lVar3 + -0x660) ^ 0x31e4fd6db7137e9f;
  uVar23 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x4e5c060c));
  *(ulonglong *)(lVar3 + -0x4a8) = uVar23;
  lVar3 = DAT_1826707a0;
  uVar36 = (ulonglong)uVar16;
  uVar24 = (ulonglong)DAT_182670970;
  *(ulonglong *)(DAT_1826707a0 + -0x500) =
       *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xb1a3fbe3)) ^ uVar36;
  uVar5 = DAT_182670900;
  uVar31 = (ulonglong)DAT_182670900;
  *(byte *)(lVar3 + -0xc35) = *(byte *)(*(ulonglong *)(lVar3 + -0x248) ^ uVar24) ^ DAT_1826709e0;
  *(ulonglong *)(lVar3 + -0x390) = uVar31 ^ uVar23;
  bVar38 = (byte)DAT_182670a3c;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xb1a3fbb3)) =
       (CONCAT44(uVar13,uVar7) ^ 0xa3f7cfafd8df65bc) - *(longlong *)(lVar3 + -0x3b0);
  *(ulonglong *)(lVar3 + -0x560) =
       (CONCAT44(uVar13,uVar11) ^ 0xbbfbf99bbfffffbe) +
       ((ulonglong)uVar5 ^ *(ulonglong *)(lVar3 + -0x390));
  *(byte *)(lVar3 + -0x1b9) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0x7d3fa976)) ^ uVar31) ^ bVar38 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar39 ^ 0x2a5b69a3)) ^ (ulonglong)DAT_1826709c4) =
       (byte)uVar40 ^ 0xed;
  uVar8 = DAT_1826707c8;
  uVar31 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 + -0xa28) = (*(ulonglong *)(lVar3 - (uVar39 ^ 0x2a5b658b)) ^ uVar36) + 1;
  *(longlong *)(lVar3 - (uVar35 ^ 0x8d66def6)) = *(longlong *)(lVar3 + -0xa18) << 0x1c;
  uVar37 = CONCAT44(uVar8,uVar33);
  *(byte *)(*(ulonglong *)(lVar3 + -0x500) ^ uVar36) = bVar38 ^ *(byte *)(lVar3 + -0x1b9);
  *(undefined8 *)(lVar3 + -0x238) = *(undefined8 *)(lVar3 + -0x560);
  *(ulonglong *)(lVar3 + -0x148) = *(ulonglong *)(lVar3 + -0xa28);
  *(ulonglong *)(lVar3 + -0xb70) = (uVar37 ^ 0xfe8eb8ee2d236632) << 6;
  *(ulonglong *)(lVar3 + -0x10) = *(ulonglong *)(lVar3 + -0xa28) ^ uVar41;
  uVar24 = (ulonglong)_DAT_1826708f8;
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar25,uVar10) ^ 0x874914763817d6ba) + 0x676597f2c4f8cfd0;
  uVar23 = *(ulonglong *)(lVar3 - (uVar32 ^ 0x66c4c64));
  *(ulonglong *)(lVar3 + -0x5e0) = uVar23 ^ uVar24;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x82c057b9)) =
       (CONCAT44(uVar13,uVar9) ^ 0xbbfbf99bffffffbe) + uVar23;
  uVar5 = DAT_1826707a8;
  uVar36 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar3 + -0x5c0) =
       (CONCAT44(uVar40,uVar33) ^ 0x686df6263817cdc3) <<
       ((byte)*(undefined8 *)(lVar3 + -0x558) & 0x3f);
  lVar4 = DAT_1826707a0;
  *(byte *)(lVar3 + -0x181) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x5e0)) ^ (byte)DAT_182670950 ^ DAT_1826709e0;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x38) ^ (ulonglong)DAT_1826709a8) = 0xde;
  *(ulonglong *)(lVar4 + -0xd28) =
       (CONCAT44(uVar5,uVar12) ^ 0xb89cd80d066c4e5d) +
       ((ulonglong)uVar15 ^ *(ulonglong *)(lVar4 + -0x10));
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x82c059e1)) =
       CONCAT44(uVar5,uVar11) ^ 0x3aaf65f524599bb1 | uVar37 ^ 0x635e17d1ed01a9cb;
  uVar12 = DAT_182670968;
  uVar34 = (ulonglong)DAT_182670968;
  *(byte *)(uVar41 ^ *(ulonglong *)(lVar4 + -0x10)) =
       *(byte *)(lVar4 - (uVar35 ^ 0x8d66db57)) ^ (byte)DAT_182670950;
  *(ulonglong *)(lVar4 + -0x168) = *(ulonglong *)(lVar4 + -0xd28);
  bVar38 = (byte)DAT_18267085c;
  *(undefined8 *)(lVar4 + -0xdb8) = *(undefined8 *)(lVar4 - (uVar28 ^ 0xbbfbfb3b));
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x66c446c)) = uVar34 ^ *(ulonglong *)(lVar4 + -0xd28);
  uVar23 = (ulonglong)_DAT_1826708c8;
  *(ulonglong *)(lVar4 + -0x458) = uVar23 ^ *(ulonglong *)(lVar4 + -0xdb8);
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x2a5b6783)) =
       (CONCAT44(uVar11,uVar42) ^ 0xbfffffbf82c05518) + *(ulonglong *)(lVar4 + -0xdb8);
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       CONCAT44(uVar13,uVar6) ^ 0xf58bd732757fbe58 | CONCAT44(uVar10,uVar25) ^ 0x97e4dcc38047c30f;
  lVar4 = DAT_1826707a0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xb18);
  *(byte *)(DAT_1826707a0 + -0x9f9) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar39 ^ 0x2a5b64d3)) ^ uVar23) ^ bVar38 ^ DAT_1826709e0;
  *(byte *)(*puVar1 ^ (ulonglong)DAT_18267090c) = local_res8 ^ 0xbd;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xb1a3f333)) =
       (CONCAT44(uVar7,uVar8) ^ 0x7d3faae6476327f3) +
       ((ulonglong)uVar12 ^ *(ulonglong *)(lVar4 + -0xa30));
  uVar24 = (ulonglong)DAT_182670b08;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (CONCAT44(uVar42,uVar14) ^ 0x142d708b2425ddaa) +
       (CONCAT44(uVar18,uVar13) ^ 0xa6cd017e0383d840);
  *(byte *)(uVar34 ^ *(ulonglong *)(lVar4 + -0xa30)) = bVar38 ^ *(byte *)(lVar4 + -0x9f9);
  uVar28 = (ulonglong)DAT_1826708e0;
  *(undefined8 *)(lVar4 + -0x9e8) = *(undefined8 *)(lVar4 - ((ulonglong)uVar40 ^ 0x7debd248));
  *(undefined8 *)(lVar4 + -0x9a0) = *(undefined8 *)(lVar4 + -0x708);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x66c48ac)) = uVar31 << 0x39 ^ 0xf200000000000000;
  uVar23 = *(ulonglong *)(lVar4 - (uVar30 ^ 0x4e5c0fc4));
  *(ulonglong *)(lVar4 + -0xab8) = uVar24 ^ *(ulonglong *)(lVar4 + -0x9a0);
  *(ulonglong *)(lVar4 + -0x8a8) = uVar23 ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xfffffba7)) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x4e5c0c94)) ^ uVar24) +
       (CONCAT44(uVar9,uVar18) ^ 0xffffffbf4e5c062d);
  uVar6 = DAT_1826707ec;
  *(byte *)(lVar4 + -0x471) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar4 + -0xab8)) ^ (byte)DAT_182670a40 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar4 + -0x150) ^ (ulonglong)DAT_182670a58) = (byte)uVar6 ^ 0xed;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x7d3fab16)) = (uVar28 ^ *(ulonglong *)(lVar4 + -0x8a8)) + 1;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar36 ^ 0xb89cd0a5)) ^ uVar28) =
       *(byte *)(lVar4 - ((ulonglong)uVar5 ^ 0xb89cdc7c)) ^ (byte)DAT_182670a40;
  *(undefined8 *)(lVar4 + -0x3e0) = *puVar27;
  *(undefined8 *)(lVar4 - (uVar22 ^ 0xb1a3f84b)) = *(undefined8 *)(lVar4 + -0x418);
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x95a49b84)) =
       *(ulonglong *)(lVar4 - (uVar20 ^ 0x95a49cd4)) ^ (ulonglong)DAT_18267088c;
  *(ulonglong *)(lVar4 + -0x9d0) = *(ulonglong *)(lVar4 + -0x1d8) ^ (ulonglong)DAT_18267093c;
  bVar38 = (byte)DAT_182670898;
  *(ulonglong *)(lVar4 + -0xae8) =
       (CONCAT44(uVar10,uVar40) ^ 0x8d66dad67debd8e9) + *(ulonglong *)(lVar4 + -0x1d8);
  *(uint *)(lVar4 + -0xc0c) =
       (*(uint *)(lVar4 + -0x398) ^ DAT_182670858) <<
       (((byte)*(undefined4 *)(lVar4 + -0x2d4) ^ bVar38) & 0x1f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar2 ^ uVar33;
  return;
}



############ FUN_ 180c8e9f0 size=5375 ############

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

void FUN_180c8e9f0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  
  uVar17 = DAT_1826707f4;
  uVar11 = DAT_1826707ec;
  uVar7 = DAT_1826707dc;
  lVar2 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707f4;
  uVar31 = (ulonglong)DAT_1826707ec;
  uVar40 = DAT_1826707ec - DAT_1826707dc;
  uVar16 = (DAT_1826707f4 << 0x10 | DAT_1826707f4 & 0xff00) << 8 | DAT_1826707f4 >> 8 & 0xff00 |
           DAT_1826707f4 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670d74);
  uVar26 = *(uint *)(&DAT_18260f758 + DAT_182670d74) ^ DAT_1826707ec;
  uVar34 = (ulonglong)DAT_1826707dc;
  bVar15 = (byte)DAT_1826707f4;
  puVar18 = (ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x92b37e9e));
  uVar22 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar25 = (ulonglong)uVar16;
  uVar27 = CONCAT44(DAT_182670a10,DAT_182670a10);
  DAT_1826707d8 = uVar40;
  DAT_1826707f0 = uVar16;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0x1d42a879)) =
       (*puVar18 ^ uVar22) >> ((bVar15 ^ 99) & 0x3f) ^ uVar27;
  uVar5 = DAT_182670af0;
  uVar22 = (*(ulonglong *)(lVar2 + -0xc18) ^ uVar22) << 6;
  *(ulonglong *)(lVar2 + -0x400) = uVar22 ^ CONCAT44(DAT_182670848,DAT_182670848);
  uVar4 = DAT_18267087c;
  uVar23 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x6f0) = (*(ulonglong *)(lVar2 + -0x220) ^ uVar27 | uVar22) ^ uVar23;
  uVar20 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar2 + -0xce0)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x92b37476)) ^ uVar23) ^ uVar20;
  uVar12 = DAT_182670adc;
  uVar4 = DAT_1826708fc;
  uVar27 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar38 = (ulonglong)uVar40;
  puVar39 = (ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x1d42afd1));
  uVar22 = (ulonglong)DAT_182670adc;
  *puVar39 = (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) -
             (CONCAT44(uVar16,uVar11) ^ 0x149ea2d0be994399);
  lVar2 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar4,uVar4);
  puVar28 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar40 ^ 0x694c8961));
  *puVar28 = CONCAT44(DAT_182670874,DAT_182670874) ^ uVar32 ^ CONCAT44(uVar12,uVar12) ^
             *(ulonglong *)(DAT_1826707a0 + -0xd88) ^ *(ulonglong *)(DAT_1826707a0 + -0x660);
  *(undefined4 *)(lVar2 - (uVar38 ^ 0x694c8145)) = 0x411c0000;
  uVar4 = DAT_1826709c8;
  uVar33 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar2 + -0x220) =
       ((ulonglong)(uVar12 >> 0x16) | uVar22 << 10) ^ *puVar18 >> 0x16 ^ uVar33;
  uVar22 = CONCAT44(uVar4,uVar4);
  bVar19 = (byte)uVar11;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x1d42ae59)) =
       (CONCAT44(uVar12,uVar12) ^ *puVar28) << (((byte)uVar7 ^ 0xac) & 0x3f) ^ uVar22;
  uVar4 = DAT_182670ad8;
  *(ulonglong *)(lVar2 + -0xce0) =
       (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar20) >> ((bVar19 ^ 0xc1) & 0x3f);
  uVar5 = DAT_1826709e8;
  uVar29 = CONCAT44(uVar4,uVar4);
  uVar22 = *(ulonglong *)(lVar2 + -0x400) ^ uVar22 | *(ulonglong *)(lVar2 + -0x220) ^ uVar33;
  uVar33 = uVar22 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar33;
  uVar4 = DAT_1826709c0;
  uVar35 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 - (uVar34 ^ 0x92b37f0e)) ^ uVar32) - uVar22 ^ uVar35;
  uVar5 = DAT_1826709d8;
  uVar34 = CONCAT44(uVar4,uVar4);
  uVar22 = *(ulonglong *)(lVar2 + -0x6b8) ^ uVar34 ^ uVar33 ^ uVar29 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x660) = uVar22;
  uVar33 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x1d42a641)) =
       (uVar34 ^ uVar22) >> ((bVar15 ^ 0x77) & 0x3f) ^ uVar33;
  uVar4 = DAT_18267092c;
  uVar22 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x92b374e6)) ^ uVar34) <<
           (((byte)uVar7 ^ 0x94) & 0x3f);
  *(ulonglong *)(lVar2 + -0xce0) = uVar22 ^ CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar6 = DAT_182670930;
  uVar29 = CONCAT44(uVar4,uVar4);
  uVar22 = uVar22 | uVar33 ^ *(ulonglong *)(lVar2 + -0xc18);
  *(ulonglong *)(lVar2 + -0x220) = uVar22 ^ uVar29;
  uVar5 = DAT_182670904;
  uVar34 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x400) = (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar20) - uVar22 ^ uVar34;
  uVar4 = DAT_1826709c4;
  uVar12 = DAT_1826707dc;
  lVar2 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar5,uVar5);
  uVar42 = CONCAT44(uVar7,DAT_1826707dc);
  uVar22 = uVar33 ^ uVar35 ^ uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x588) ^
           *(ulonglong *)(DAT_1826707a0 + -0x6f0);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar22;
  uVar20 = CONCAT44(uVar4,uVar4);
  puVar24 = (ulonglong *)(lVar2 - (uVar38 ^ 0x694c82a1));
  *puVar24 = (uVar22 ^ uVar33) >> (((byte)uVar12 ^ 0x8a) & 0x3f) ^ uVar20;
  lVar2 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x694c8319)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x1d42a7d1)) ^ uVar33) << ((bVar19 ^ 0xcb) & 0x3f)
       ^ uVar22;
  uVar4 = DAT_182670a5c;
  uVar22 = uVar22 ^ *(ulonglong *)(lVar2 + -0x660) | uVar20 ^ *(ulonglong *)(lVar2 + -0x7d8);
  uVar20 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar2 + -0xc18) = uVar22 ^ uVar20;
  uVar6 = DAT_182670a90;
  uVar21 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0xce0) = (uVar35 ^ *(ulonglong *)(lVar2 + -0x588)) - uVar22 ^ uVar21;
  uVar35 = CONCAT44(uVar6,uVar6);
  uVar33 = *(ulonglong *)(lVar2 - (uVar31 ^ 0xfbfffbe7)) ^ *(ulonglong *)(DAT_1826707a0 + -0x400) ^
           uVar35 ^ uVar20 ^ uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar33;
  uVar30 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = (uVar33 ^ uVar35) >> ((bVar19 ^ 0xe6) & 0x3f) ^ uVar30;
  lVar2 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x1d42ac39)) =
       (uVar33 ^ uVar35) << (((byte)(uVar17 >> 0x18) ^ 0x3a) & 0x3f) ^ uVar22;
  uVar4 = DAT_18267096c;
  uVar33 = CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(lVar2 + -0x7d8) =
       (uVar22 ^ *(ulonglong *)(lVar2 + -0x660) | uVar30 ^ *(ulonglong *)(lVar2 + -0x6f0)) ^ uVar33;
  uVar22 = CONCAT44(uVar4,uVar4);
  *puVar39 = (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x59aa461d)) ^ uVar34) -
             (CONCAT44(uVar40,uVar16) ^ 0xcb929622140a396) ^ uVar22;
  lVar2 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) -
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) ^ uVar34;
  uVar4 = DAT_1826708d4;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xfbfff10f)) ^ uVar30) <<
       (((byte)uVar5 ^ *(byte *)(lVar2 + -0xd88)) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar4,uVar4);
  puVar28 = (ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xfbfff3ff));
  puVar18 = (ulonglong *)(DAT_1826707a0 + -0x220);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) -
       (CONCAT44(uVar40,uVar7) ^ 0x46f398f28d730f30) ^ uVar36;
  uVar22 = (ulonglong)DAT_182670840;
  uVar30 = CONCAT44(DAT_182670840,DAT_182670840);
  *puVar28 = *puVar18 ^ uVar30 ^ uVar21 ^ uVar29 ^ *(ulonglong *)(lVar2 + -0xce0);
  uVar33 = CONCAT44(DAT_182670af4,DAT_182670af4);
  *puVar39 = (*(ulonglong *)(lVar2 + -0x400) >> 0x20 ^ uVar22) >> 1 ^ uVar33;
  uVar5 = DAT_18267090c;
  uVar22 = (*(ulonglong *)(lVar2 + -0x400) ^ uVar30) << 0x1f;
  *(ulonglong *)(lVar2 + -0xd88) = uVar22 ^ CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar2 + -0x6f0) = (uVar22 | uVar33 ^ *(ulonglong *)(lVar2 + -0x588)) ^ uVar27;
  uVar12 = DAT_1826707d0;
  uVar29 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar22 = CONCAT44(uVar16,DAT_1826707dc);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x694c83c1)) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0xce0)) - (CONCAT44(uVar16,uVar40) ^ 0x77578a0e17e28f18) ^
       uVar29;
  uVar4 = DAT_1826708ac;
  bVar13 = (byte)DAT_1826707ac;
  *(ulonglong *)(lVar2 + -0x7d8) =
       (uVar22 ^ 0xf45f42524f422371) << (((byte)uVar5 ^ *(byte *)(lVar2 + -0xd88)) & 0x3f);
  uVar33 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x220) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x6b8)) - (uVar27 ^ *(ulonglong *)(lVar2 + -0x6f0)) ^
       uVar33;
  bVar14 = (byte)DAT_1826707cc;
  uVar22 = CONCAT44(uVar11,DAT_1826707cc);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x2a1e0d1c)) =
       (uVar42 ^ 0x7ca21d1f4c5823c7) >> ((bVar13 ^ 0xf8) & 0x3f);
  uVar30 = CONCAT44(DAT_182670934,DAT_182670934);
  uVar22 = (uVar22 ^ 0x5aede1ec6b198d12) + (uVar27 ^ *(ulonglong *)(lVar2 + -0x6f0)) ^ uVar30;
  *(ulonglong *)(lVar2 + -0xce0) =
       (CONCAT44(uVar16,uVar11) ^ 0xff82b5772f5ea7e6) << ((bVar14 ^ 8) & 0x3f);
  uVar4 = _DAT_182670ad4;
  *(ulonglong *)(lVar2 + -0x588) = uVar22;
  uVar21 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x2a1e0494)) =
       uVar21 ^ uVar22 ^ uVar30 ^ uVar34 ^ *(ulonglong *)(lVar2 + -0xc18);
  uVar12 = DAT_1826707b0;
  uVar29 = CONCAT44(DAT_182670984,DAT_182670984);
  uVar27 = (ulonglong)DAT_1826707b0;
  *puVar24 = (uVar21 ^ *(ulonglong *)(lVar2 + -0xd88)) >> ((bVar19 ^ 0xfa) & 0x3f) ^ uVar29;
  uVar5 = DAT_1826709ec;
  lVar3 = DAT_1826707a0;
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar2 + -0xd88)) << ((bVar15 ^ 0x62) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar21 ^ uVar36;
  uVar4 = DAT_182670940;
  uVar22 = *(ulonglong *)(lVar3 + -0xc18);
  uVar21 = uVar29 ^ *(ulonglong *)(lVar2 + -0x7d8) | uVar21;
  uVar42 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x400) = uVar21 ^ uVar42;
  uVar41 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x59aa44ed)) = (uVar34 ^ uVar22) - uVar21 ^ uVar41;
  uVar11 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x1d42a6b9)) =
       uVar29 ^ uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar36 ^
       *(ulonglong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(lVar2 + -0xd88) =
       (CONCAT44(uVar16,DAT_1826707a8) ^ 0x812f048c2558e1c) -
       (CONCAT44(uVar11,DAT_1826707dc) ^ 0xf2078c7ed43a531f);
  lVar3 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0xefdfd947)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0xce0)) >> ((bVar19 ^ 0xda) & 0x3f) ^ uVar22;
  uVar4 = DAT_1826709dc;
  uVar37 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *puVar24 = (uVar29 ^ *(ulonglong *)(lVar3 + -0xce0)) << 0x1b ^ uVar37;
  uVar5 = DAT_1826707b8;
  uVar22 = uVar37 ^ *(ulonglong *)(lVar3 + -0x7d8) | uVar22 ^ *(ulonglong *)(lVar3 + -0x6b8);
  uVar29 = CONCAT44(uVar4,uVar4);
  uVar21 = uVar22 ^ uVar29;
  *(ulonglong *)(lVar3 + -0xc18) = uVar21;
  uVar9 = DAT_182670afc;
  uVar6 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x660) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0xfbfff277)) ^ uVar30) >> (((byte)uVar5 ^ 0xb5) & 0x3f);
  uVar4 = DAT_1826707ac;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar11 = DAT_1826707d8 ^ 0xc042812;
  *(ulonglong *)(lVar3 + -0xd88) = (uVar33 ^ *(ulonglong *)(lVar3 + -0x220)) - uVar22 ^ uVar37;
  *(uint *)(lVar3 + -0x598) = uVar11 | 0xb35357c9;
  uVar17 = DAT_182670838;
  lVar3 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_182670838;
  puVar18 = (ulonglong *)(lVar2 - (uVar27 ^ 0xefdfd31f));
  uVar34 = CONCAT44(DAT_182670838,DAT_182670838);
  *puVar18 = uVar34 ^ uVar29 ^ uVar41 ^ uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0);
  uVar10 = DAT_182670964;
  uVar11 = DAT_1826707b4;
  *(ulonglong *)(lVar3 + -0x6b8) =
       CONCAT44(uVar6,uVar4) ^ 0x7eba9cd33522baa4 | CONCAT44(uVar5,uVar5) ^ 0x3394fd856de19e74;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xfbfff027)) =
       ((ulonglong)(uVar17 >> 0x17) | uVar22 << 9) ^ *(ulonglong *)(lVar3 + -0xce0) >> 0x17 ^ uVar21
  ;
  uVar8 = DAT_1826709b0;
  uVar27 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar22 = (ulonglong)DAT_1826707dc;
  uVar33 = (ulonglong)DAT_1826709b0;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x694c80f1)) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0xce0)) << 0x29 ^ uVar27;
  uVar9 = DAT_18267089c;
  uVar4 = DAT_182670888;
  uVar17 = DAT_1826707cc;
  uVar36 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar22 = *(ulonglong *)(lVar3 - (uVar22 ^ 0x92b3755e)) ^ uVar21 |
           uVar27 ^ *(ulonglong *)(lVar3 + -0x588);
  *(ulonglong *)(lVar3 + -0x660) = uVar22 ^ uVar36;
  uVar29 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x8c020a64)) =
       (uVar41 ^ *(ulonglong *)(lVar3 + -0x6f0)) - uVar22 ^ uVar29;
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar17,DAT_1826707e4) ^ 0x9ac9e996047a772d) <<
       (((byte)uVar9 ^ *(byte *)(lVar3 + -0x660)) & 0x3f);
  uVar17 = DAT_1826707c4;
  uVar34 = CONCAT44(uVar8,uVar8);
  uVar27 = CONCAT44(uVar7,DAT_1826707c0);
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c0 ^ 0xcecf5133)) ^ uVar34 ^ uVar37 ^ uVar42 ^
       *(ulonglong *)(lVar3 + -0x400);
  uVar22 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x8c0204a4)) =
       uVar27 ^ 0x358ce29d7135b59a | uVar21 ^ *(ulonglong *)(lVar3 + -0x7d8);
  uVar27 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar30 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xadc3576)) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0x7eda2e02)) >> 0x20 ^ uVar33) >> 8 ^ uVar27;
  uVar4 = DAT_182670a44;
  uVar22 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar3 + -0x6f0) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x6b8)) << ((bVar19 ^ 0xe7) & 0x3f) ^ uVar22;
  uVar9 = DAT_1826709bc;
  lVar2 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar4,uVar4);
  uVar22 = *(ulonglong *)(lVar3 - (uVar30 ^ 0x21406f0)) ^ uVar22 |
           uVar27 ^ *(ulonglong *)(lVar3 + -0x588);
  uVar27 = uVar22 ^ uVar34;
  *(ulonglong *)(lVar3 + -0xc18) = uVar27;
  uVar4 = DAT_182670890;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x400) = (uVar37 ^ *(ulonglong *)(lVar2 + -0xd88)) - uVar22 ^ uVar33;
  uVar11 = DAT_1826707c8;
  lVar2 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar4,uVar4);
  bVar13 = (byte)DAT_1826707d0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0xb09e2380)) =
       uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar27 ^ uVar37 ^ uVar34;
  uVar27 = (*(ulonglong *)(lVar2 + -0xce0) ^ uVar37) >> ((bVar13 ^ 0x28) & 0x3f);
  uVar34 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar27 ^ uVar34;
  uVar4 = DAT_182670810;
  *(ulonglong *)(lVar2 + -0x6f0) = CONCAT44(uVar11,uVar6) ^ 0x7b43f3cc35b9be8f | uVar27;
  uVar22 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 + -0xce0) ^ uVar37) << ((bVar15 ^ 0x55) & 0x3f) ^ uVar22;
  uVar8 = DAT_1826707e0;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x59aa4f95)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0xcc5c8c01)) ^ uVar22 | uVar27) ^ uVar23;
  uVar22 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x220)) - (*(ulonglong *)(lVar2 + -0xd88) ^ uVar23) ^
       uVar35;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x44854ef1)) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x44854eb9)) ^ uVar34) +
       (CONCAT44(DAT_1826707a8,uVar16) ^ 0x7c35847df2fa3229);
  *puVar18 = *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0xadc369e)) ^ uVar36 ^
             *(ulonglong *)(lVar2 + -0x400) ^ uVar20 ^ uVar33;
  uVar6 = DAT_1826709fc;
  uVar4 = DAT_1826707ac;
  *(ulonglong *)(lVar3 + -0x588) =
       0x6a56fef82b8e1dd7 >> (((byte)uVar10 ^ *(byte *)(lVar3 + -0x7d8)) & 0x3f);
  uVar37 = (*(ulonglong *)(lVar3 + -0xce0) >> 0x20 ^ (ulonglong)DAT_182670a80) >> 0x19;
  uVar27 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *(ulonglong *)(lVar3 + -0x220) = uVar37 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182670a00;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar20 ^ *(ulonglong *)(lVar3 + -0xce0)) << (((byte)uVar4 ^ 0xf8) & 0x3f) ^ uVar27;
  lVar2 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar22 = CONCAT44(uVar12,DAT_1826707c0);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xfbfff147)) ^ uVar27 | uVar37) ^ uVar29;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xcc5c8fe9)) =
       (CONCAT44(uVar5,uVar17) ^ 0xf47f6cc0f86db96a) - (uVar22 ^ 0x1a14a31c62c56da5);
  uVar12 = DAT_1826707b4;
  uVar20 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b4 ^ 0x8c020f9c)) =
       (*(ulonglong *)(lVar2 + -0x400) ^ uVar33) - (uVar29 ^ *(ulonglong *)(lVar2 + -0x6f0)) ^
       uVar20;
  uVar4 = DAT_182670950;
  uVar7 = DAT_1826707d0;
  uVar22 = uVar35 ^ uVar32 ^ *(ulonglong *)(lVar2 + -0xc18) ^ uVar29 ^
           *(ulonglong *)(lVar2 + -0x6f0);
  *(ulonglong *)(lVar2 + -0x588) = uVar22;
  lVar2 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar4,uVar4);
  uVar27 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x43149e60)) =
       (uVar32 ^ uVar22) >> (((byte)uVar7 ^ 0x12) & 0x3f) ^ uVar33;
  uVar22 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x59aa403d)) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x588)) << (((byte)uVar17 ^ 0xcc) & 0x3f) ^ uVar22;
  lVar2 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0x21406b8)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x431490a0)) ^ uVar22 |
       *(ulonglong *)(DAT_1826707a0 + -0xce0) ^ uVar33) ^ uVar37;
  uVar4 = DAT_1826708e4;
  uVar25 = (uVar35 ^ *(ulonglong *)(lVar2 + -0xc18)) - (CONCAT44(uVar8,uVar16) ^ 0xf3435f775004de3f)
  ;
  *(ulonglong *)(lVar2 + -0x660) = uVar25 ^ CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar17 = DAT_1826707e4;
  uVar22 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 + -0x400) =
       uVar25 - (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar37) ^ CONCAT44(uVar4,uVar4);
  bVar15 = (byte)DAT_1826707b8;
  *(uint *)(lVar2 + -0x2d4) =
       (DAT_1826707b0 ^ 0x9439f765) << ((byte)*(undefined4 *)(lVar2 - (uVar22 ^ 0x87d74410)) & 0x1f)
  ;
  *(ulonglong *)(lVar2 + -0x6f0) =
       (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar37) - (CONCAT44(uVar12,uVar17) ^ 0xee880600a6e4e283) ^
       uVar29;
  uVar22 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar12 = DAT_1826707e8 ^ 0x164878c2;
  uVar25 = *(ulonglong *)(lVar2 + -0xd88) ^ uVar23 ^ uVar22 ^ uVar20 ^
           *(ulonglong *)(lVar2 + -0x7d8);
  *(ulonglong *)(lVar2 + -0x588) = uVar25;
  uVar17 = DAT_1826707dc ^ 0x45d70047;
  *(ulonglong *)(lVar2 + -0xce0) = (uVar25 ^ uVar22) >> ((bVar15 ^ 0xa0) & 0x3f) ^ uVar21;
  uVar4 = DAT_182670868;
  *(uint *)(lVar2 + -0x280) = uVar17 + uVar12;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar40) * 4) = uVar26;
  *(ulonglong *)(lVar2 + -0x220) =
       (uVar25 ^ uVar22) << (((byte)uVar11 ^ 0x50) & 0x3f) ^ CONCAT44(uVar4,uVar4);
  return;
}



############ FUN_ 180cc1630 size=5237 ############

void FUN_180cc1630(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  undefined8 *puVar4;
  undefined8 uVar5;
  longlong lVar6;
  ulonglong *puVar7;
  uint uVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  uint uVar41;
  longlong *plVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  
  uVar24 = DAT_1826707e8;
  uVar23 = DAT_1826707cc;
  uVar20 = DAT_1826707c0;
  lVar6 = DAT_1826707a0;
  DAT_1826707bc = DAT_1826707c4 + DAT_1826707c0;
  uVar34 = DAT_1826707ac * DAT_1826707a8;
  uVar29 = DAT_1826707b0 ^ DAT_1826707e4;
  uVar8 = DAT_1826707d4;
  if ((DAT_1826707cc & 1) == 0) {
    uVar8 = DAT_1826707cc;
  }
  uVar39 = DAT_182670800 + DAT_182670ad0;
  uVar15 = ~DAT_182670a8c;
  uVar22 = DAT_182670898 & 3;
  uVar41 = DAT_182670a38 >> 0x10;
  uVar16 = ~DAT_182670a50;
  if (uVar22 < 2) {
    uVar17 = DAT_1826709f0;
    if (uVar22 == 0) {
      uVar17 = DAT_182670898;
    }
  }
  else {
    uVar17 = DAT_182670a70;
    if (uVar22 < 3) {
      uVar17 = DAT_182670aa0;
    }
  }
  uVar22 = *(uint *)(&DAT_18260f758 + DAT_182670e08);
  uVar18 = *(uint *)(&DAT_18260f760 + DAT_182670e08) ^ DAT_1826707d4;
  puVar4 = *(undefined8 **)(DAT_1826707a0 + -0x428);
  uVar26 = (ulonglong)DAT_1826707cc;
  DAT_1826707c8 = uVar8;
  DAT_1826707d8 = uVar29;
  DAT_1826707dc = uVar34;
  *(undefined8 *)(DAT_1826707a0 + -0xf0) =
       **(undefined8 **)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0xba517a9a));
  uVar13 = DAT_1826707e4;
  puVar25 = (ulonglong *)(lVar6 - (uVar26 ^ 0x234bb2c4));
  uVar47 = DAT_182670970 ^ (uint)*puVar25;
  *(ulonglong *)(lVar6 + -0x610) =
       (CONCAT44(DAT_1826707e4,DAT_1826707b0) ^ 0x13a2c51d4530cc9e) >>
       ((byte)*(undefined8 *)(lVar6 + -0x558) & 0x3f);
  *(undefined8 *)(lVar6 - ((ulonglong)uVar29 ^ 0xf182a80)) = *puVar4;
  uVar35 = *(ulonglong *)(lVar6 + -0x610) ^ *(ulonglong *)(lVar6 + -0xf0);
  uVar26 = (ulonglong)DAT_1826707ac;
  uVar40 = DAT_18267088c ^ *(uint *)(lVar6 - ((ulonglong)uVar34 ^ 0x38d9d10b));
  *(ulonglong *)(lVar6 + -0x558) = uVar35;
  uVar12 = DAT_1826707c4;
  uVar11 = DAT_1826707bc;
  uVar44 = DAT_182670900 ^ *(uint *)(lVar6 - (uVar26 ^ 0x7e915efb));
  uVar31 = (ulonglong)DAT_1826707c4;
  uVar26 = CONCAT44(uVar29,uVar20);
  *(ulonglong *)(lVar6 + -0x428) =
       *(longlong *)(lVar6 - ((ulonglong)DAT_1826707c4 ^ 0x1488c61e)) + 0x90 +
       ((CONCAT44(DAT_1826707bc,DAT_1826707c4) ^ 0x493993ae1488c1d4) +
       (uVar26 ^ 0xf182c9034b0d1d8) * 0x15) * 8;
  uVar14 = DAT_182670980;
  *(ulonglong *)(lVar6 + -0xf0) =
       (CONCAT44(uVar8,uVar34) ^ 0xc3487377221a735d) <<
       (((byte)DAT_182670850 ^ *(byte *)(lVar6 + -0xac0)) & 0x3f);
  uVar34 = DAT_1826707a8;
  uVar27 = CONCAT44(uVar14,uVar14);
  **(ulonglong **)(lVar6 - ((ulonglong)uVar29 ^ 0xf1828b8)) = uVar35 ^ uVar27;
  uVar19 = uVar40 & 0xff;
  DAT_18267088c = ((uVar40 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar52 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar35 = CONCAT44(uVar23,uVar34);
  uVar33 = CONCAT44(DAT_18267088c,DAT_18267088c);
  puVar28 = (ulonglong *)
            ((uVar52 ^ *(ulonglong *)(lVar6 + -0xae0)) + (uVar35 ^ 0x234bb2344227ce29) * 8);
  uVar34 = uVar44 & 0xff;
  *(ulonglong *)(lVar6 + -0xb78) = (ulonglong)puVar28 ^ uVar33;
  uVar19 = DAT_1826707d4;
  lVar6 = DAT_1826707a0;
  DAT_182670900 = ((uVar44 << 8 | uVar34) << 8 | uVar34) << 8 | uVar34;
  uVar51 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar32 = CONCAT44(DAT_182670900,DAT_182670900);
  uVar50 = CONCAT44(uVar8,uVar20);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0xdcb44bdb)) =
       *puVar28 ^ uVar32 ^ uVar51;
  lVar9 = DAT_1826707a0;
  uVar20 = uVar47 & 0xff;
  DAT_182670970 = ((uVar47 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  plVar42 = (longlong *)(lVar6 - ((ulonglong)DAT_1826707bc ^ 0x49399466));
  uVar36 = CONCAT44(DAT_182670970,DAT_182670970);
  puVar28 = (ulonglong *)
            (*plVar42 + 8 +
            ((CONCAT44(uVar13,uVar24) ^ 0xd8d1b034ba517c72) * 0x15 + (uVar50 ^ 0x234bb23434b0d1d8))
            * 8);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  *puVar1 = *(ulonglong *)(DAT_1826707a0 + -0xf0);
  *(ulonglong *)(lVar9 + -0x798) = (ulonglong)puVar28 ^ uVar36;
  *puVar28 = *(ulonglong *)(lVar9 + -0x610) ^ uVar32 ^ uVar27;
  uVar20 = uVar17 & 0xff;
  DAT_1826708a0 = ((uVar17 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar36 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar9 + -0xf0) =
       *(ulonglong *)(*(ulonglong *)(lVar9 - ((ulonglong)DAT_1826707a8 ^ 0x4227c551)) ^ uVar33) ^
       uVar36 ^ uVar51;
  *(ulonglong *)(uVar52 ^ *(ulonglong *)(lVar9 + -0xae0)) =
       CONCAT44(uVar12,DAT_1826707ac) ^ 0x931989cb82bce68e;
  uVar49 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_1826707cc ^ 0x234bb4c4)) =
       CONCAT44(uVar19,DAT_1826707d8) ^ uVar49 ^ uVar36 ^ *(ulonglong *)(lVar9 + -0xf0) ^
       0xc7655611a6e436b2;
  uVar20 = DAT_182670a70;
  uVar30 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  puVar37 = (ulonglong *)(lVar9 - ((ulonglong)DAT_1826707e8 ^ 0xba517a82));
  uVar36 = uVar30 ^ uVar49 ^ *puVar37;
  *(ulonglong *)(lVar9 + -0x9c8) = uVar36;
  lVar6 = DAT_1826707a0;
  uVar38 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar9 + -0xf0) = uVar38 ^ uVar36 ^ uVar30;
  uVar40 = DAT_182670aa0;
  uVar20 = DAT_182670898 & 0xff;
  DAT_182670898 = ((DAT_182670898 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar48 = CONCAT44(DAT_182670898,DAT_182670898);
  puVar28 = (ulonglong *)
            ((uVar52 ^ *(ulonglong *)(lVar6 + -0xae0)) +
            (CONCAT44(uVar8,uVar12) ^ 0x234bb2341488c1d7) * 8);
  *(ulonglong *)(lVar6 + -0xb78) = (ulonglong)puVar28 ^ uVar48;
  uVar45 = CONCAT44(uVar40,uVar40);
  uVar20 = uVar16 & 0xff;
  uVar36 = *puVar28 ^ uVar45 ^ uVar51;
  *(ulonglong *)(lVar6 + -0x9c8) = uVar36;
  lVar6 = DAT_1826707a0;
  DAT_182670888 = ((uVar16 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  puVar28 = (ulonglong *)(*plVar42 + 0x10);
  *(ulonglong *)(DAT_1826707a0 + -0x370) =
       (ulonglong)puVar28 ^ CONCAT44(DAT_182670888,DAT_182670888);
  puVar2 = (ulonglong *)(lVar6 + -0x890);
  *puVar28 = uVar45 ^ uVar27 ^ uVar36;
  uVar14 = DAT_182670998;
  uVar36 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *puVar2 = *(ulonglong *)(uVar48 ^ *(ulonglong *)(lVar6 + -0xb78)) ^ uVar36 ^ uVar51;
  *(undefined8 *)(CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0x1e8)) = 0x499e280cd6d0793e;
  uVar20 = uVar41 & 0xff;
  DAT_182670a10 = ((uVar41 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar43 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       uVar43 ^ uVar36 ^ uVar38 ^ *puVar2 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0);
  lVar6 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar36 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ac ^ 0x7e91523b)) ^ uVar30 ^ uVar43
  ;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar36;
  *puVar2 = uVar36 ^ uVar30 ^ uVar38;
  uVar16 = DAT_1826707c0;
  uVar20 = uVar15 & 0xff;
  DAT_182670a14 = ((uVar15 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar46 = CONCAT44(DAT_182670a14,DAT_182670a14);
  puVar28 = (ulonglong *)
            ((uVar52 ^ *(ulonglong *)(lVar6 + -0xae0)) +
            (CONCAT44(DAT_1826707c0,DAT_1826707b0) ^ 0x34b0d1d8d7c99ca6) * 8);
  uVar20 = uVar39 & 0xff;
  *(ulonglong *)(lVar6 + -0x1e8) = (ulonglong)puVar28 ^ uVar46;
  lVar6 = DAT_1826707a0;
  DAT_182670868 = ((uVar39 * 0x100 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar30 = CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = *puVar28 ^ uVar30 ^ uVar51;
  lVar9 = DAT_1826707a0;
  plVar42 = (longlong *)(lVar6 + -0x7c8);
  uVar20 = DAT_1826709a8 & 0xff;
  DAT_1826709a8 = ((DAT_1826709a8 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar36 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707a8 ^ 0x4227cbe1)) =
       *plVar42 + 8 +
       ((CONCAT44(uVar12,DAT_1826707c8) ^ 0x1488c1d6234bb234) * 0x15 +
       (CONCAT44(uVar29,DAT_1826707a8) ^ 0xf182c904227ce2b)) * 8 ^ uVar36;
  *(ulonglong *)(*(ulonglong *)(lVar9 + -0x5c8) ^ uVar36) =
       uVar30 ^ uVar27 ^ *(ulonglong *)(lVar9 + -0x998);
  uVar14 = DAT_1826709d8;
  uVar30 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar36 = CONCAT44(uVar13,DAT_1826707c8);
  *(ulonglong *)(lVar9 + -0xf0) =
       *(ulonglong *)(uVar46 ^ *(ulonglong *)(lVar9 + -0x1e8)) ^ uVar30 ^ uVar51;
  *(ulonglong *)(CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar9 + -0x240)) =
       uVar36 ^ 0x20db5c077f864483;
  uVar17 = DAT_1826707dc;
  uVar36 = uVar30 ^ uVar38 ^ uVar32 ^ *puVar2 ^ *(ulonglong *)(lVar9 + -0xf0);
  *(ulonglong *)(lVar9 + -0xac0) = uVar36;
  *puVar25 = uVar48 ^ uVar32 ^ uVar36;
  uVar36 = (ulonglong)DAT_1826707a8;
  *puVar2 = uVar43 ^ uVar48 ^ *(ulonglong *)(lVar9 + -0xf0);
  uVar34 = DAT_1826707ac;
  *(ulonglong *)(lVar9 + -0x240) =
       (*(ulonglong *)(lVar9 - (uVar36 ^ 0x4227c4c9)) ^ uVar52) +
       (CONCAT44(uVar13,uVar24) ^ 0xd8d1b034ba517c71) * 8 ^ uVar33;
  uVar20 = DAT_182670ad0 & 0xff;
  DAT_182670ad0 = ((DAT_182670ad0 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar32 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  bVar21 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar9 + -0xac0) =
       *(ulonglong *)(*(ulonglong *)(lVar9 - ((ulonglong)DAT_1826707b0 ^ 0xd7c99ee4)) ^ uVar33) ^
       uVar32 ^ uVar51;
  *(ulonglong *)(lVar9 + -0xf0) =
       (CONCAT44(uVar17,DAT_1826707c0) ^ 0xdb61e0c4ec08e1c) >> ((bVar21 ^ 0x8e) & 0x3f);
  uVar30 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0xd8d1b1dc)) =
       *(longlong *)(DAT_1826707a0 - ((ulonglong)uVar34 ^ 0x7e915c6b)) +
       ((CONCAT44(uVar11,DAT_1826707dc) ^ 0x493993ae38d9d718) + 1) * 8 ^ uVar30;
  *(ulonglong *)(uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x1e8)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0x1488cb16)) ^ uVar32 ^ uVar27;
  lVar6 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (CONCAT44(uVar19,uVar12) ^ 0x383ec6b9709f77cd) - (uVar50 ^ 0xf51f92404a6a213);
  uVar14 = DAT_1826709cc;
  uVar15 = DAT_1826707e8;
  *(ulonglong *)(lVar6 + -0xd88) =
       *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar36 ^ 0x234bb074)) ^ uVar33) ^ uVar49 ^ uVar51;
  uVar41 = DAT_1826707bc;
  uVar36 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0x180)) =
       CONCAT44(uVar19,DAT_1826707bc) ^ 0xa104eab4f12e17a9;
  uVar24 = DAT_1826707ac;
  *(ulonglong *)(lVar6 + -0x4c8) =
       (CONCAT44(uVar15,DAT_1826707c8) ^ 0x2a28a1ca7ef47582) -
       (*(ulonglong *)(lVar6 - (uVar36 ^ 0x7e915163)) ^ uVar32);
  lVar9 = DAT_1826707a0;
  *(ulonglong *)(lVar6 + -0x4c8) =
       *(ulonglong *)(lVar6 - (uVar31 ^ 0x1488cc5e)) ^ uVar32 ^ uVar43 ^ uVar49 ^ *puVar2;
  uVar20 = DAT_1826707a8;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707dc ^ 0x38d9da93)) =
       *(ulonglong *)(lVar9 - ((ulonglong)DAT_1826707d8 ^ 0xf182a60)) ^ uVar49 |
       CONCAT44(DAT_1826707a8,uVar41) ^ 0xa7303b661abc5ae3;
  uVar39 = DAT_1826707d4;
  uVar36 = CONCAT44(uVar11,DAT_1826707b0);
  *(ulonglong *)(lVar6 + -0x4c8) =
       uVar30 ^ uVar45 ^ *(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0x7e915f6b)) ^ uVar30 ^ uVar32;
  uVar41 = DAT_1826707b0;
  *(ulonglong *)(lVar6 + -0xd88) = uVar36 ^ CONCAT44(uVar15,uVar12) ^ 0xf672fc0953e016e6;
  uVar15 = DAT_1826707c0;
  uVar36 = CONCAT44(uVar16,DAT_1826707c0);
  *puVar1 = CONCAT44(uVar29,uVar39) ^ 0x7034b24ff158238a |
            CONCAT44(uVar19,uVar41) ^ 0xc652622fbc934aa6;
  uVar29 = DAT_1826707cc;
  lVar6 = DAT_1826707a0;
  puVar28 = (ulonglong *)
            (*plVar42 + 8 +
            ((uVar36 ^ 0x34b0d1d834b0d1d8) * 0x15 +
            (CONCAT44(uVar17,DAT_1826707c8) ^ 0x38d9d71b234bb230)) * 8);
  uVar36 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0xae0) = (ulonglong)puVar28 ^ uVar38;
  *puVar28 = *(ulonglong *)(lVar6 - (uVar36 ^ 0x234bb6fc)) ^ uVar45 ^ uVar27;
  uVar41 = DAT_1826707e4;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x180) =
       (CONCAT44(uVar20,DAT_1826707e4) ^ 0x4227ce29d8d1b034) * 0x20 +
       *(longlong *)(DAT_1826707a0 + -0x778);
  *(undefined8 *)(lVar6 - ((ulonglong)uVar41 ^ 0xd8d1b74c)) = 0xa55ec0bbdb71ecb4;
  uVar20 = DAT_1826707b0;
  *(ulonglong *)(lVar6 + -0x240) =
       (CONCAT44(uVar17,DAT_1826707b0) ^ 0x38d9d71bd7c99ca4) * 0x20 + *(longlong *)(lVar6 + -0x360);
  uVar41 = DAT_1826707e4;
  uVar36 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar6 + -0x360) = CONCAT44(uVar20,uVar29) ^ 0xcdb7cf838802ecb1;
  *(undefined8 *)(lVar6 + -0x6c8) = *(undefined8 *)(lVar6 + -0xa58);
  lVar9 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 - ((ulonglong)uVar39 ^ 0xdcb44793)) =
       *(undefined8 *)(lVar6 - (uVar31 ^ 0x1488c536));
  *(undefined8 *)(lVar9 + -0x4e0) = *(undefined8 *)(lVar9 + -0x6c8);
  *puVar1 = CONCAT44(uVar19,uVar41) ^ 0x9e9ee9d2bfe1903;
  uVar20 = DAT_1826707bc;
  uVar30 = (ulonglong)DAT_1826707bc;
  *(undefined8 *)(lVar9 + -0x6c8) = *(undefined8 *)(lVar9 - ((ulonglong)DAT_1826707bc ^ 0x493999f6))
  ;
  puVar25 = (ulonglong *)(lVar9 + -0x3d0);
  *(undefined8 *)(lVar9 - ((ulonglong)DAT_1826707a8 ^ 0x4227c471)) =
       *(undefined8 *)(lVar9 - ((ulonglong)uVar24 ^ 0x7e9159e3));
  puVar28 = (ulonglong *)(lVar9 + -0x58);
  *puVar25 = *(ulonglong *)(lVar9 + -0x4e0);
  uVar33 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar9 - (uVar36 ^ 0xd8d1b6c4)) =
       (CONCAT44(uVar23,uVar20) ^ 0xeb65124a3a4f64c0) - (uVar32 ^ *(ulonglong *)(lVar9 + -0xac0));
  *puVar28 = *(ulonglong *)(lVar9 + -0xa58);
  *(undefined8 **)(lVar9 + -0xa58) = (undefined8 *)*puVar25;
  uVar5 = *(undefined8 *)*puVar25;
  uVar23 = DAT_182670af0 ^ (uint)uVar5;
  *(undefined8 *)(lVar9 + -0x400) = uVar5;
  uVar20 = uVar23 & 0xff;
  DAT_182670af0 = ((uVar23 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar36 = CONCAT44(DAT_182670af0,DAT_182670af0);
  uVar32 = (ulonglong)DAT_1826707d8;
  **(ulonglong **)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0xf182cc8)) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x34b0d5d8)) ^ uVar36;
  lVar9 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 - (uVar33 ^ 0xba517fa2)) =
       *(undefined8 *)(DAT_1826707a0 - (uVar33 ^ 0xba517df2));
  *(undefined8 *)(lVar9 - ((ulonglong)DAT_1826707ac ^ 0x7e9151fb)) = *(undefined8 *)(lVar9 + -0x240)
  ;
  *(undefined8 *)(lVar9 - (uVar32 ^ 0xf182778)) = *(undefined8 *)(lVar9 - (uVar30 ^ 0x4939907e));
  uVar20 = DAT_1826707a8;
  uVar30 = (ulonglong)DAT_1826707a8;
  *puVar25 = *(ulonglong *)(lVar9 + -0xa58);
  *(uint *)(lVar9 + -0x9ec) = (DAT_1826707c4 ^ 0xc9356eee) * *(int *)(lVar9 + -0x7e4);
  *(ulonglong *)(lVar9 + -0x7d8) = **(ulonglong **)(lVar9 - (uVar30 ^ 0x4227cdf9)) ^ uVar36;
  uVar24 = DAT_1826709f4 ^ *(uint *)(lVar9 + -0x7d8);
  *(ulonglong *)*puVar28 = uVar35 ^ 0x2c4555a10be24323;
  uVar23 = uVar24 & 0xff;
  DAT_1826709f4 = ((uVar24 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar35 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  **(ulonglong **)(lVar9 + -0xbe8) = *(ulonglong *)(lVar9 + -0x7d8) ^ uVar35;
  lVar6 = *(longlong *)(lVar9 - ((ulonglong)DAT_1826707b0 ^ 0xd7c99844));
  *puVar25 = *(longlong *)(lVar9 + -0x6c8) + (uVar26 ^ 0xf182c9034b0d1dc) * 8;
  lVar10 = DAT_1826707a0;
  *(ulonglong *)(lVar9 - ((ulonglong)DAT_1826707cc ^ 0x234bb26c)) =
       lVar6 + (CONCAT44(uVar17,uVar20) ^ 0x38d9d71b4227ce2d) * 8;
  uVar26 = *puVar25;
  puVar7 = (ulonglong *)*puVar28;
  *(ulonglong *)(lVar9 + -0x4e0) = uVar26;
  *(ulonglong *)(lVar9 + -0xa58) = uVar35 ^ uVar26;
  *(ulonglong **)(lVar9 + -0x6c8) = puVar7;
  *(ulonglong *)(lVar9 + -0x400) = *puVar7 ^ uVar38;
  uVar23 = DAT_1826707c8;
  uVar26 = (ulonglong)DAT_1826707c8;
  uVar41 = DAT_182670a90 ^ *(uint *)(lVar10 + -0x400);
  *puVar25 = (ulonglong)(puVar7 + (CONCAT44(uVar19,uVar20) ^ 0xdcb44dcb4227ce28));
  lVar6 = DAT_1826707a0;
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x630);
  *(longlong *)(DAT_1826707a0 + -0x118) =
       *(longlong *)(lVar10 - (uVar26 ^ 0x234bbfbc)) <<
       (((byte)uVar40 ^ *(byte *)(DAT_1826707a0 + -0x4c8)) & 0x3f);
  uVar14 = DAT_1826707ec;
  uVar24 = DAT_1826707dc;
  uVar29 = uVar41 & 0xff;
  DAT_182670a90 = ((uVar41 << 8 | uVar29) << 8 | uVar29) << 8 | uVar29;
  *(ulonglong *)(lVar6 + -0xd88) =
       CONCAT44(DAT_182670a90,DAT_182670a90) ^ puVar7[CONCAT44(uVar19,uVar20) ^ 0xdcb44dcb4227ce28];
  uVar29 = DAT_1826707f0;
  uVar41 = DAT_1826708b8 ^ *(uint *)(lVar6 + -0xd88);
  *puVar3 = CONCAT44(uVar14,uVar24) ^ *(ulonglong *)(lVar6 + -0xf0) ^ 0x3c052f60190f3168;
  uVar20 = DAT_1826707c0;
  *puVar28 = (ulonglong)(puVar7 + (CONCAT44(uVar13,uVar12) ^ 0xd8d1b0341488c1d4));
  uVar24 = uVar41 & 0xff;
  *(uint *)(lVar6 + -0x598) = uVar20 ^ 0xe27eb6b3 | uVar29 ^ 0xf7a27333;
  DAT_1826708b8 = ((uVar41 << 8 | uVar24) << 8 | uVar24) << 8 | uVar24;
  uVar26 = CONCAT44(DAT_1826708b8,DAT_1826708b8) ^
           puVar7[CONCAT44(uVar13,uVar12) ^ 0xd8d1b0341488c1d4];
  *(ulonglong *)(lVar6 + -0xf0) = uVar26;
  uVar24 = DAT_182670a64 ^ (uint)uVar26;
  puVar4 = (undefined8 *)
           (*(longlong *)(lVar6 - (uVar31 ^ 0x1488c71e)) +
           (CONCAT44(DAT_1826707e0,uVar14) ^ 0x34b24b236febf7fc) * 8);
  *(undefined8 **)(lVar6 + -0x4e0) = puVar4;
  *puVar3 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar29 ^ 0xb649b37d)) ^ uVar43) + 0x1e7bdeeec7aebf55
  ;
  *(undefined8 *)(lVar6 - ((ulonglong)DAT_1826707d0 ^ 0x64005990)) = *puVar4;
  lVar6 = *plVar42;
  uVar20 = (DAT_182670840 ^ *(uint *)puVar2) & 0xff;
  DAT_182670840 = (((DAT_182670840 ^ *(uint *)puVar2) << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  uVar26 = CONCAT44(DAT_182670840,DAT_182670840);
  puVar2 = (ulonglong *)
           (lVar6 + ((CONCAT44(DAT_1826707b8,DAT_1826707b0) ^ 0x2324a322d7c99ca4) * 0x15 +
                    (CONCAT44(DAT_1826707b4,uVar23) ^ 0xdd5cdbdc234bb234) + 1) * 8);
  bVar21 = (byte)DAT_1826707d4;
  uVar20 = uVar24 & 0xff;
  *puVar25 = (ulonglong)puVar2 ^ uVar26;
  *puVar3 = *puVar37 >> ((bVar21 ^ 0xe7) & 0x3f);
  DAT_182670a64 = ((uVar24 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  *puVar1 = CONCAT44(DAT_182670a64,DAT_182670a64) ^ *puVar2 ^ uVar27;
  uVar27 = CONCAT44(uVar34,DAT_1826707e4);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar18 * 4) = uVar22 ^ uVar8;
  *puVar28 = lVar6 + ((uVar27 ^ 0x7e915ba3d8d1b035) + 1) * 8 ^ uVar26;
  return;
}



############ FUN_ 180d11410 size=5521 ############

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

void FUN_180d11410(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  byte bVar12;
  ulonglong uVar13;
  ulonglong *puVar14;
  ulonglong *puVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  byte bVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  byte local_res20;
  byte local_e0;
  
  uVar29 = DAT_1826707f0;
  uVar7 = DAT_1826707e8;
  uVar5 = DAT_1826707e4;
  uVar4 = DAT_1826707d8;
  lVar2 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707e4;
  uVar17 = (ulonglong)DAT_1826707e8;
  uVar33 = (ulonglong)DAT_1826707d8;
  uVar24 = DAT_1826707e8 * DAT_1826707e4;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670c0c);
  uVar27 = *(uint *)(&DAT_18260f758 + DAT_182670c0c) ^ DAT_1826707e4;
  uVar16 = DAT_1826707f0 * DAT_1826707d8;
  uVar38 = (ulonglong)uVar16;
  uVar18 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar13 = CONCAT44(DAT_1826707e8,uVar16);
  bVar12 = (byte)uVar16;
  uVar28 = (*(ulonglong *)(DAT_1826707a0 + -0x890) ^ uVar18) << ((bVar12 ^ 6) & 0x3f);
  uVar19 = CONCAT44(DAT_182670878,DAT_182670878);
  DAT_1826707b8 = uVar24;
  DAT_1826707d4 = uVar16;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar28 ^ CONCAT44(DAT_182670990,DAT_182670990);
  uVar22 = (ulonglong)uVar29;
  uVar37 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xa9f7a250)) =
       (uVar28 | uVar19 ^ *(ulonglong *)(lVar2 + -0xd38)) ^ uVar37;
  uVar8 = DAT_1826709bc;
  uVar20 = (ulonglong)DAT_1826709bc;
  uVar21 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(longlong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe9c1d85c)) =
       0x567a9987565a3955 - *(longlong *)(lVar2 + -0x588);
  uVar23 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar2 + -0x7d8) =
       (CONCAT44(DAT_182670ab8,DAT_182670ab8) ^ *(ulonglong *)(lVar2 + -0x4c8)) -
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0xe9c1d82c)) ^ uVar37) ^ uVar23;
  uVar28 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar30 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar2 + -0xb70) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0xaab9fe18)) ^ uVar30 ^ uVar28 ^ uVar21 ^
       *(ulonglong *)(lVar2 + -0x9c8);
  *(int *)(lVar2 + -0x398) =
       *(int *)(lVar2 + -0xb54) << ((byte)*(undefined4 *)(lVar2 + -0xa34) & 0x1f);
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0xed3a0734)) =
       ((ulonglong)(uVar8 >> 0x16) | uVar20 << 10) ^ *(ulonglong *)(DAT_1826707a0 + -0xb70) >> 0x16
       ^ uVar31;
  *(ulonglong *)(lVar2 + -0x658) =
       CONCAT44(uVar4,uVar7) ^ CONCAT44(uVar16,uVar4) ^ 0x83fb9bab10795e9f;
  uVar35 = (ulonglong)uVar24;
  puVar14 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0xf636cac8));
  uVar25 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xa9f7a180)) = (*puVar14 ^ uVar21) << 0x2a ^ uVar25;
  uVar6 = DAT_18267091c;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar4 ^ 0xe9c1decc)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xa9f7a978)) ^ uVar31 ^ uVar19 ^
       *(ulonglong *)(DAT_1826707a0 + -0x1b8);
  uVar19 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *(ulonglong *)(lVar2 + -0x6f0) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x5c0) | uVar31 ^ *(ulonglong *)(lVar2 + -0x1b8)) ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x72a6829a)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xed3a00d4)) |
       CONCAT44(uVar7,uVar24) ^ 0xd1230cb0c6551bbf;
  puVar26 = (ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xed3a0f44));
  uVar36 = CONCAT44(DAT_182670af4,DAT_182670af4);
  *(ulonglong *)(lVar2 + -0xbb0) =
       (*puVar26 ^ uVar30) - (*(ulonglong *)(lVar2 - (uVar38 ^ 0xaab9f9f0)) ^ uVar19) ^ uVar36;
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(CONCAT44(DAT_1826709fc,DAT_1826709fc) ^ *(ulonglong *)(lVar2 + -0x4e0)) ^
       CONCAT44(uVar6,uVar6);
  uVar9 = DAT_182670ad8;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar32 = uVar31 ^ uVar19 ^ uVar23 ^ *(ulonglong *)(lVar2 + -0x7d8) ^
           *(ulonglong *)(lVar2 + -0x6f0);
  *(ulonglong *)(lVar2 + -0x890) = uVar32;
  uVar6 = DAT_182670814;
  uVar20 = CONCAT44(uVar9,uVar9);
  bVar40 = (byte)uVar5;
  uVar19 = (*(ulonglong *)(lVar3 - (uVar35 ^ 0xf636c928)) ^ uVar31) >> ((bVar40 ^ 0xa2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x420) = uVar19 ^ uVar20;
  uVar9 = DAT_182670a0c;
  uVar31 = (uVar32 ^ uVar31) << ((bVar12 ^ 0x12) & 0x3f);
  uVar41 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x588) = uVar31 ^ uVar41;
  uVar6 = DAT_18267096c;
  uVar43 = CONCAT44(uVar9,uVar9);
  uVar19 = uVar19 | uVar31;
  *(ulonglong *)(lVar3 + -0x660) = uVar19 ^ uVar43;
  uVar9 = DAT_182670b08;
  uVar32 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x4c8) = (uVar23 ^ *(ulonglong *)(lVar3 + -0x7d8)) - uVar19 ^ uVar32;
  uVar6 = DAT_182670a24;
  uVar19 = CONCAT44(uVar9,uVar9);
  puVar15 = (ulonglong *)(lVar3 - (uVar33 ^ 0xe9c1d58c));
  uVar37 = uVar19 ^ uVar36 ^ *puVar15 ^ *(ulonglong *)(lVar3 + -0x610) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x118) = uVar37;
  lVar2 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar6,uVar6);
  local_res20 = (byte)uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0xb70) =
       (uVar37 ^ uVar19) >> ((local_res20 ^ 0x4c) & 0x3f) ^ uVar23;
  uVar31 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xa9f7a4b0)) =
       (uVar19 ^ uVar37) << ((bVar40 ^ 0xb8) & 0x3f) ^ uVar31;
  uVar19 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar31 = uVar31 ^ *(ulonglong *)(lVar2 + -0xf0) | uVar23 ^ *(ulonglong *)(lVar2 + -0xb70);
  *(ulonglong *)(lVar2 + -0xd38) = uVar31 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x1b8) =
       CONCAT44(uVar4,uVar24) ^ uVar41 ^ *(ulonglong *)(lVar2 + -0x588) ^ 0x2bd77b3edc6920c4;
  uVar6 = DAT_1826709f0;
  uVar37 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar2 + -0x5c0) = (uVar36 ^ *(ulonglong *)(lVar2 + -0xbb0)) - uVar31 ^ uVar37;
  uVar31 = CONCAT44(uVar6,uVar6);
  local_e0 = (byte)uVar4;
  uVar19 = *(ulonglong *)(lVar2 - (uVar17 ^ 0x72a68d82)) ^ uVar31 ^ uVar19 ^ uVar32 ^
           *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar19;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xf636c398)) =
       (uVar19 ^ uVar31) >> ((local_e0 ^ 0x25) & 0x3f) ^ uVar20;
  uVar6 = DAT_1826708e4;
  lVar2 = DAT_1826707a0;
  *puVar26 = (CONCAT44(uVar5,uVar24) ^ 0x2783db9ba59e4f7d) -
             (CONCAT44(uVar29,uVar7) ^ 0x68fc935c9812dfdd);
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x658)) << ((bVar40 ^ 0xab) & 0x3f);
  puVar26 = (ulonglong *)(lVar2 - (uVar33 ^ 0xe9c1dc1c));
  *(ulonglong *)(lVar2 + -0x6b8) = uVar31 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182670844;
  uVar19 = CONCAT44(DAT_18267085c,DAT_18267085c);
  *(ulonglong *)(lVar2 + -0x6f0) = (uVar31 | uVar20 ^ *puVar26) ^ uVar28;
  uVar20 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x4c8)) -
           (*(ulonglong *)(lVar2 - (uVar33 ^ 0xe9c1d4fc)) ^ CONCAT44(uVar6,uVar6));
  *(ulonglong *)(lVar2 + -0x890) = uVar20 ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xaab9fb20)) =
       (CONCAT44(uVar24,uVar4) ^ 0x2bbd3c89aab429f2) - uVar20;
  uVar6 = DAT_182670a48;
  uVar36 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar2 + -0x7d8) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x890)) - (uVar28 ^ *(ulonglong *)(lVar2 + -0x6f0)) ^
       uVar36;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x72a686aa)) =
       (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0x400)) +
       (CONCAT44(uVar16,uVar16) ^ 0x746fedb31d21921c) ^ uVar41;
  uVar6 = DAT_1826709d4;
  *(ulonglong *)(lVar2 + -0x118) = (CONCAT44(uVar16,uVar4) ^ 0x32c16f42cebc) << 0x11;
  uVar39 = CONCAT44(uVar6,uVar6);
  uVar20 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar2 + -0xb70) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x6f0)) - (uVar41 ^ *(ulonglong *)(lVar2 + -0x610)) ^
       uVar39;
  lVar2 = DAT_1826707a0;
  puVar42 = (ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xed3a067c));
  *puVar42 = uVar20 ^ uVar37 ^ uVar43 ^ *(ulonglong *)(DAT_1826707a0 + -0x660) ^
             *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  *(int *)(lVar2 + -0x2d4) = *(int *)(lVar2 + -0x814) + 0x64110fa;
  uVar19 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xf636c430)) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xf0)) >> (((byte)uVar7 ^ 0x9b) & 0x3f) ^ uVar19;
  uVar6 = DAT_1826708cc;
  uVar28 = (uVar20 ^ *puVar42) << 0x1f;
  uVar31 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar2 + -0x1b8) = uVar28 ^ uVar31;
  lVar2 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0xaab9f4b0)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x588) ^ uVar19 | uVar28) ^ uVar32;
  uVar6 = DAT_182670804;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xed3a0bb4)) =
       (CONCAT44(uVar16,uVar24) ^ 0xcf674b880f477d5b) -
       (CONCAT44(uVar29,uVar24) ^ 0x73dddba86cf7a467);
  uVar9 = DAT_182670ac4;
  uVar19 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar28 = (uVar37 ^ *(ulonglong *)(lVar2 + -0x5c0)) -
           (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0xce0));
  *(ulonglong *)(lVar2 + -0x9c8) = uVar28 ^ uVar19;
  uVar20 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x658) = uVar28 - (*(ulonglong *)(lVar2 + -0xbb0) ^ uVar32) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(uVar16,uVar7) ^ 0x554600ff8d597f41) -
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0xa9f7a428)) ^ uVar31) ^ uVar18;
  lVar2 = DAT_1826707a0;
  uVar37 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (*(ulonglong *)(DAT_1826707a0 + -0xbb0) ^ uVar32) + (uVar18 ^ *puVar26) ^ uVar37;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xed3a0244)) =
       CONCAT44(uVar16,uVar7) ^ 0xf4bfbeeff7fdefd8 | 0x8037b6a845bc6748;
  uVar31 = CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar37 = *(ulonglong *)(lVar2 - (uVar38 ^ 0xaab9f8d8)) ^
           *(ulonglong *)(lVar2 - (uVar33 ^ 0xe9c1d884)) ^ uVar36 ^ uVar31 ^ uVar37;
  uVar28 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar2 + -0x420) = uVar37;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xe9c1d6ac)) =
       (uVar37 ^ uVar31) >> ((bVar40 ^ 0x89) & 0x3f) ^ uVar28;
  uVar18 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar2 + -0x118) =
       (*(ulonglong *)(lVar2 + -0x420) ^ uVar31) << ((local_res20 ^ 0x7b) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xed3a007c)) =
       *(ulonglong *)(lVar2 + -0x890) ^ uVar28 | uVar13 ^ 0x7ad63f0463b94675;
  lVar3 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670848,DAT_182670848);
  uVar13 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar2 + -0x660) =
       (*(ulonglong *)(lVar2 + -0x118) ^ uVar18 | *(ulonglong *)(lVar2 + -0x890) ^ uVar28) ^ uVar37;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b4 ^ 0xdf7efd31)) =
       *(ulonglong *)(lVar2 - (uVar13 ^ 0xbc213876)) ^ *(ulonglong *)(lVar2 + -0x118) ^ uVar37 ^
       uVar18;
  uVar32 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar13 = (uVar36 ^ *(ulonglong *)(lVar2 + -0x7d8)) - (*(ulonglong *)(lVar2 + -0x660) ^ uVar37);
  *(ulonglong *)(lVar2 + -0x588) = uVar13 ^ uVar32;
  uVar6 = DAT_182670b00;
  *(ulonglong *)(lVar2 + -0x1b8) = (*(ulonglong *)(lVar2 - (uVar35 ^ 0xf636c7d8)) ^ uVar37) - uVar13
  ;
  uVar13 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xaab9f238)) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0xe9c1d54c)) ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x658) ^
       uVar13 ^ uVar20;
  uVar9 = DAT_18267084c;
  *(ulonglong *)(lVar2 + -0xce0) =
       (*(ulonglong *)(lVar2 + -0x660) ^ uVar37) >>
       ((*(byte *)(lVar2 + -0xd38) ^ (byte)uVar6) & 0x3f);
  uVar6 = DAT_1826707fc;
  uVar18 = (*(ulonglong *)(lVar3 - (uVar35 ^ 0xf636cc80)) ^ uVar13) >> ((local_e0 ^ 0x19) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar18 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_1826709c4;
  uVar8 = DAT_1826707f4;
  uVar29 = DAT_1826707b0;
  uVar5 = DAT_1826707ac;
  uVar4 = DAT_1826707a8;
  uVar34 = (ulonglong)DAT_1826707a8;
  uVar28 = (ulonglong)DAT_1826707b0;
  uVar13 = (*(ulonglong *)(lVar3 + -0xd38) ^ uVar13) << 0x1b;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar13 ^ CONCAT44(uVar6,uVar6);
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar13 = uVar13 | uVar18;
  *(ulonglong *)(lVar3 + -0x220) = uVar13 ^ uVar31;
  *puVar15 = (*(ulonglong *)(lVar3 + -0x658) ^ uVar20) - uVar13 ^ uVar30;
  uVar18 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar31 = *(ulonglong *)(lVar3 + -0x220) ^ *(ulonglong *)(lVar3 + -0x588) ^ uVar18 ^ uVar31 ^
           uVar32;
  uVar20 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar31;
  uVar6 = DAT_182670a80;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0x72a68472)) ^ uVar18) >> (((byte)uVar5 ^ 0x36) & 0x3f) ^
       uVar20;
  uVar13 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x3aed8826)) =
       (uVar31 ^ uVar18) << (((byte)uVar4 ^ 0x72) & 0x3f) ^ uVar13;
  uVar18 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x72a6864a)) =
       (*(ulonglong *)(lVar3 + -0x420) ^ uVar13 | uVar20 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^ uVar18;
  uVar10 = DAT_182670a04;
  lVar2 = DAT_1826707a0;
  uVar36 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  puVar15 = (ulonglong *)(DAT_1826707a0 + -0x660);
  uVar13 = CONCAT44(DAT_182670870,DAT_182670870);
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       (*(ulonglong *)(DAT_1826707a0 + -0x588) ^ uVar32) -
       (*(ulonglong *)(DAT_1826707a0 + -0x6f0) ^ uVar18) ^ uVar36;
  uVar6 = DAT_1826707d0;
  uVar37 = *puVar15 ^ uVar30 ^ *puVar26 ^ uVar13 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x118) = uVar37;
  uVar9 = DAT_18267095c;
  uVar20 = CONCAT44(uVar10,uVar10);
  *puVar42 = (uVar37 ^ uVar13) >> (((byte)DAT_1826707e0 ^ 0xd5) & 0x3f) ^ uVar20;
  uVar10 = DAT_18267083c;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar17 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0xe9c1df24)) ^ uVar13) <<
           (((byte)DAT_1826707cc ^ 0xc6) & 0x3f);
  uVar13 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar17 ^ uVar37;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xaab9feb8)) =
       (*(ulonglong *)(lVar2 - (uVar13 ^ 0xbc213ee6)) ^ uVar20 | uVar17) ^ uVar28;
  uVar11 = DAT_182670afc;
  uVar32 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(lVar2 + -0xb70) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0xbb0)) - (uVar28 ^ *(ulonglong *)(lVar2 + -0x1b8)) ^
       uVar32;
  uVar9 = DAT_182670824;
  uVar13 = CONCAT44(uVar11,uVar11);
  uVar17 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0x3e16bd99)) ^
           *(ulonglong *)(lVar2 + -0x890) ^ uVar13 ^ uVar28 ^ uVar36;
  *(ulonglong *)(lVar2 + -0xce0) = uVar17;
  uVar20 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (uVar17 ^ uVar13) >> (((byte)uVar8 ^ 0xe) & 0x3f) ^ uVar20;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (CONCAT44(DAT_1826707c8,uVar24) ^ 0x486d1397900cd64d) -
       (CONCAT44(uVar6,uVar29) ^ 0xf15a4c69f498d7c5);
  uVar28 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xa9f7ad88)) = (uVar17 ^ uVar13) << 0xc ^ uVar28;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xf636c7e0)) =
       (*(ulonglong *)(lVar2 + -0xd38) ^ uVar20) + 0x5ee021f92eac6206;
  uVar30 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar17 = *(ulonglong *)(lVar2 - (uVar34 ^ 0x856b693)) ^ uVar28 |
           *(ulonglong *)(lVar2 + -0xd38) ^ uVar20;
  uVar31 = (ulonglong)DAT_1826707ec;
  uVar13 = CONCAT44(DAT_1826707c4,DAT_1826707ec);
  *(ulonglong *)(lVar2 + -0x220) = uVar17 ^ uVar30;
  uVar6 = DAT_182670ac0;
  *(ulonglong *)(lVar2 + -0x4c8) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x9c8)) - (uVar13 ^ 0x3ea5729b06ab068e);
  uVar22 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x420) = (*(ulonglong *)(lVar2 + -0x890) ^ uVar36) - uVar17 ^ uVar22;
  uVar28 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xf636c700)) =
       0x163b62f84225cc1c - (*(ulonglong *)(lVar2 + -0x7d8) ^ uVar37);
  uVar20 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar2 + -0x660) =
       0xac89220baf25bcba >> (((byte)uVar10 ^ *(byte *)(lVar2 + -0x1b8)) & 0x3f);
  uVar9 = DAT_1826709e4;
  uVar17 = CONCAT44(DAT_182670830,DAT_182670830);
  uVar37 = *(ulonglong *)(lVar2 + -0x6f0) ^ uVar20 ^ uVar32 ^ uVar18 ^
           *(ulonglong *)(lVar2 + -0xb70);
  uVar13 = (uVar20 ^ uVar37) >> ((bVar12 ^ 0x39) & 0x3f);
  *(ulonglong *)(lVar2 + -0xf0) = (uVar20 ^ uVar37) << 7 ^ uVar17;
  *(ulonglong *)(lVar2 + -0x118) = uVar13 ^ uVar21;
  *(ulonglong *)(lVar2 + -0x588) = uVar37;
  uVar6 = DAT_18267082c;
  uVar18 = CONCAT44(uVar9,uVar9);
  uVar13 = *(ulonglong *)(lVar2 - (uVar28 ^ 0x68cedca)) ^ uVar17 | uVar13;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar13 ^ uVar18;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xbc213bd6)) = (*puVar14 ^ uVar32) - uVar13 ^ uVar17;
  uVar5 = DAT_1826707ec;
  uVar4 = DAT_1826707ac;
  uVar37 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar13 = *(ulonglong *)(lVar2 - (uVar28 ^ 0x68ce91a)) ^ uVar37 ^ uVar18 ^ uVar22 ^
           *(ulonglong *)(lVar2 + -0xbb0);
  *(int *)(lVar2 + -0xc0c) = *(int *)(lVar2 + -0xb54) - *(int *)(lVar2 + -0x2d4);
  uVar6 = DAT_1826708ec;
  *(ulonglong *)(lVar2 + -0xce0) = uVar13;
  uVar28 = (uVar13 ^ uVar37) >> (((byte)uVar7 ^ 0xb4) & 0x3f);
  *(ulonglong *)(lVar2 + -0x658) = uVar28 ^ uVar23;
  uVar13 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x3e16b0c1)) ^ uVar37) << 0x32;
  uVar29 = DAT_1826707ac & uVar5;
  uVar37 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar2 + -0xd38) = uVar13 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182670a1c;
  uVar28 = uVar28 | uVar13;
  DAT_1826707e0 = uVar29;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar28 ^ uVar19;
  uVar13 = (uVar22 ^ *(ulonglong *)(lVar2 + -0x420)) -
           (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0x558));
  *(uint *)(lVar2 + -0xc34) = (uVar5 ^ 0x9fe903e7) >> (((byte)uVar29 ^ 0x11) & 0x1f);
  *(ulonglong *)(lVar2 + -0x4c8) = uVar13 ^ uVar37;
  uVar9 = DAT_1826709a0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x3e16b4b1)) = uVar13 - uVar28 ^ uVar25;
  uVar13 = *(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0x3c003618));
  *(uint *)(lVar2 + -0xa34) = (uVar5 ^ 0x72d7c671) * *(int *)(lVar2 + -0xaf0);
  uVar10 = DAT_182670a00;
  uVar6 = DAT_18267090c;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x9c8)) - (uVar13 ^ uVar39) ^ CONCAT44(uVar9,uVar9);
  uVar13 = CONCAT44(uVar10,uVar10);
  uVar17 = *(ulonglong *)(lVar2 + -0x220) ^ uVar13 ^ uVar17 ^ uVar30 ^
           *(ulonglong *)(lVar2 + -0x5c0);
  *(ulonglong *)(lVar2 + -0x7d8) = uVar17;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar24) * 4) = uVar27;
  *(ulonglong *)(lVar2 + -0x6f0) =
       (uVar17 ^ uVar13) >> (((byte)uVar4 ^ 0x31) & 0x3f) ^ CONCAT44(uVar6,uVar6);
  return;
}



############ FUN_ 180d3a770 size=3396 ############

void FUN_180d3a770(void)

{
  byte *pbVar1;
  ulonglong *puVar2;
  byte bVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte *pbVar18;
  ulonglong uVar19;
  undefined1 *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  longlong lVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  longlong lVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte *pbVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte local_b8;
  byte local_b0;
  
  uVar15 = DAT_1826707f4;
  uVar8 = DAT_1826707ec;
  uVar14 = DAT_1826707e0;
  uVar13 = DAT_1826707dc;
  uVar12 = DAT_1826707c8;
  uVar11 = DAT_1826707c4;
  uVar10 = DAT_1826707c0;
  uVar9 = DAT_1826707bc;
  uVar25 = (ulonglong)DAT_1826707dc;
  uVar35 = (ulonglong)DAT_1826707c8;
  uVar27 = (ulonglong)DAT_1826707bc;
  uVar34 = DAT_1826707ec | DAT_1826707c4;
  uVar4 = *(uint *)(&DAT_18260f758 + DAT_182670b44);
  uVar36 = (ulonglong)DAT_1826707c0;
  uVar22 = (ulonglong)DAT_1826707f4;
  uVar31 = (ulonglong)DAT_1826707e0;
  uVar21 = DAT_1826707c8 - DAT_1826707e0;
  uVar30 = DAT_1826707dc * DAT_1826707bc;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670b44) ^ DAT_1826707c4;
  uVar24 = DAT_1826707c0 + DAT_1826707f4;
  pbVar1 = (byte *)(DAT_1826707a0 + -0x6c9);
  DAT_1826707cc = uVar24;
  DAT_1826707d8 = uVar34;
  DAT_1826707e8 = uVar21;
  DAT_1826707f0 = uVar30;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ec ^ 0xc479de0a)) = (ulonglong)*pbVar1;
  lVar7 = DAT_1826707a0;
  uVar32 = (ulonglong)uVar21;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xc479d6da)) =
       (CONCAT44(uVar13,uVar9) ^ 0x51d8b3a3c5c83595) + 0x75fee38717ac11cc;
  uVar19 = *(longlong *)(lVar7 + -0xd88) << (((byte)uVar30 ^ 8) & 0x3f);
  uVar17 = (ulonglong)uVar30;
  puVar2 = (ulonglong *)(lVar7 + -0x588);
  *puVar2 = uVar19;
  *(ulonglong *)(lVar7 + -0x610) =
       (CONCAT44(uVar12,uVar21) ^ 0x6e83900d3feb0e45) >>
       ((byte)*(undefined8 *)(lVar7 + -0x558) & 0x3f);
  uVar19 = *(ulonglong *)(lVar7 - (uVar36 ^ 0xe625e8f2)) | uVar19;
  *(ulonglong *)(lVar7 + -0x5c0) = uVar19;
  pbVar18 = (byte *)((CONCAT44(uVar24,uVar15) ^ 0xecb2cd9c068ced31) + *(longlong *)(lVar7 + 0x30));
  *(byte **)(lVar7 + -0x4f8) = pbVar18;
  bVar3 = *pbVar18;
  *pbVar1 = bVar3;
  *(ulonglong *)(lVar7 + -0x4c8) = (ulonglong)bVar3;
  *(ulonglong *)(lVar7 + -0x9c8) = (ulonglong)bVar3 << 0x18;
  uVar8 = DAT_1826707ec;
  iVar5 = *(int *)(lVar7 + -0x9ec);
  *(ulonglong *)(lVar7 + -0x7d8) =
       *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707ec ^ 0xc479da4a)) | uVar19;
  pbVar18 = (byte *)((CONCAT44(uVar30,uVar24) ^ 0x5e519418ecb2cd90) + *(longlong *)(lVar7 + 0x30));
  *(byte **)(lVar7 + -0x350) = pbVar18;
  *pbVar1 = *pbVar18;
  *(uint *)(lVar7 - ((ulonglong)uVar8 ^ 0xc479d466)) = (uVar10 ^ 0x1fa84b2a) * iVar5;
  puVar28 = (ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xde3cef99));
  *puVar28 = (ulonglong)*pbVar1;
  *(longlong *)(lVar7 - (uVar27 ^ 0xcc7d2ea4)) = *(longlong *)(lVar7 + -0x658) << 0x20;
  *(ulonglong *)(lVar7 + -0x438) =
       *(ulonglong *)(lVar7 - (uVar25 ^ 0x16f23382)) | *(ulonglong *)(lVar7 + -0x7d8);
  *(ulonglong *)(lVar7 + -0x4f8) =
       (CONCAT44(uVar21,uVar15) ^ 0x442d1ffe068ced37) + *(longlong *)(lVar7 + 0x30);
  lVar7 = DAT_1826707a0;
  uVar23 = (ulonglong)uVar34;
  pbVar33 = (byte *)(DAT_1826707a0 - ((ulonglong)uVar34 ^ 0xde7dfd0a));
  *pbVar33 = **(byte **)(DAT_1826707a0 - (uVar35 ^ 0x4c2d24f8));
  *(ulonglong *)(lVar7 - (uVar23 ^ 0xde7df1db)) = (ulonglong)*pbVar1;
  *(uint *)(lVar7 + -0x2d4) = (uVar10 ^ 0xc695a87b) * (DAT_1826707ec ^ 0x54ad8072);
  *(longlong *)(lVar7 - (uVar31 ^ 0x8000222)) =
       *(longlong *)(lVar7 - (uVar25 ^ 0x16f23002)) << (((byte)uVar12 ^ 0x28) & 0x3f);
  *(ulonglong *)(lVar7 - (uVar17 ^ 0x5e519f68)) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar15 ^ 0x68cef1a)) | *(ulonglong *)(lVar7 + -0x438);
  *(ulonglong *)(lVar7 + -0x350) =
       (CONCAT44(uVar12,uVar24) ^ 0x4c2d2000ecb2cd92) + *(longlong *)(lVar7 + 0x30);
  *(longlong *)(lVar7 - (uVar32 ^ 0x442d13e6)) =
       -0x7e7303876d874b09 << ((byte)*(undefined8 *)(lVar7 + -0x998) & 0x3f);
  *pbVar1 = **(byte **)(lVar7 + -0x350);
  local_b0 = (byte)uVar10;
  *(ulonglong *)(lVar7 + -0x118) =
       *(longlong *)(lVar7 + -0x400) - (CONCAT44(uVar21,uVar15) ^ 0xa43307897b364c4);
  *(ulonglong *)(lVar7 + -0x6f0) = (ulonglong)*pbVar1;
  lVar26 = *(longlong *)(lVar7 - (uVar32 ^ 0x442d190e)) << ((local_b0 ^ 0x52) & 0x3f);
  *(longlong *)(lVar7 + -0xce0) = lVar26;
  *(longlong *)(lVar7 - ((ulonglong)uVar11 ^ 0xde3ce879)) = *(longlong *)(lVar7 + -0xb70) + lVar26;
  pbVar18 = (byte *)(*(longlong *)(((ulonglong)uVar34 ^ 0xde7dfbf3) + lVar7) + 0xf);
  *(byte **)(lVar7 + -0x4f8) = pbVar18;
  bVar3 = *pbVar18;
  *(ulonglong *)(lVar7 + -0xf0) = (ulonglong)bVar3;
  *pbVar1 = bVar3;
  local_b8 = (byte)uVar13;
  lVar26 = *(longlong *)(lVar7 - (uVar17 ^ 0x5e5194e8)) << ((local_b8 ^ 0x22) & 0x3f);
  *(longlong *)(lVar7 + -0x420) = lVar26;
  *(longlong *)(lVar7 + -0x6b8) = *(longlong *)(lVar7 + -0x118) << ((byte)*puVar28 & 0x3f);
  uVar8 = DAT_1826707ec;
  *(longlong *)(lVar7 + -0x68) = *(longlong *)(lVar7 - ((ulonglong)uVar12 ^ 0x4c2d21b8)) + lVar26;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar24 ^ 0xecb2c884)) =
       *(longlong *)(lVar7 + -0xa58) + (CONCAT44(uVar9,uVar8) ^ 0xcc7d273cc479d383) * 8;
  *(ulonglong *)(lVar7 + -0x630) =
       (CONCAT44(uVar14,uVar9) ^ 0x1db5afd6c9ad69f7) -
       (CONCAT44(uVar11,uVar14) ^ 0xa526d00e6a52c696);
  uVar35 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  **(ulonglong **)(lVar7 + -0x518) = uVar35 ^ *(ulonglong *)(lVar7 + -0x68);
  pbVar18 = (byte *)((CONCAT44(uVar24,uVar15) ^ 0xecb2cd9c068ced2a) + *(longlong *)(lVar7 + 0x30));
  *(byte **)(lVar7 + -0x350) = pbVar18;
  *(ulonglong *)(lVar7 + -0x660) =
       (CONCAT44(uVar14,uVar11) ^ 0xdafbf4ce1c6f2c0f) >> (((byte)uVar34 ^ 0xd7) & 0x3f);
  *pbVar1 = *pbVar18;
  bVar3 = *pbVar1;
  *(int *)(lVar7 + -0x540) = *(int *)(lVar7 + -0x68c) - *(int *)(lVar7 + -0xaf0);
  *(ulonglong *)(lVar7 - (uVar22 ^ 0x68ce002)) = (ulonglong)bVar3;
  pbVar18 = (byte *)((CONCAT44(uVar21,uVar11) ^ 0x442d1ffede3ce9d0) + *(longlong *)(lVar7 + 0x30));
  *(byte **)(lVar7 + -0x4f8) = pbVar18;
  *pbVar1 = *pbVar18;
  *(uint *)(lVar7 - ((ulonglong)uVar8 ^ 0xc479da6e)) = (uVar12 ^ 0x998495d9) + 0x881e36fa;
  uVar19 = (ulonglong)*pbVar33;
  *(ulonglong *)(lVar7 + -0xac0) = uVar19;
  uVar19 = uVar19 << 8;
  *(ulonglong *)(lVar7 + -0xd88) =
       *(ulonglong *)(lVar7 - (uVar25 ^ 0x16f23a72)) | CONCAT44(uVar30,uVar9) ^ 0x3692c34c13f50ddd;
  *(ulonglong *)(lVar7 + -0x558) = uVar19;
  *(ulonglong *)(lVar7 + -0x610) = uVar19 | *(ulonglong *)(lVar7 + -0xd38);
  *(ulonglong *)(lVar7 - (uVar31 ^ 0x8000352)) =
       (CONCAT44(uVar30,uVar13) ^ 0x5e51941816f23a08) + *(longlong *)(lVar7 + 0x30);
  *(int *)(lVar7 + -0x2d4) = *(int *)(lVar7 + -0x398) + *(int *)(lVar7 + -0x68c);
  *(undefined1 *)(lVar7 - (uVar36 ^ 0xe625e6ab)) = **(undefined1 **)(lVar7 + -0x350);
  *(ulonglong *)(lVar7 - (uVar17 ^ 0x5e519c88)) = (ulonglong)*pbVar1;
  *(longlong *)(lVar7 - (uVar23 ^ 0xde7dfe4b)) =
       *(longlong *)(lVar7 + -0x890) << (((byte)uVar11 ^ 0xd1) & 0x3f);
  pbVar18 = (byte *)(*(longlong *)(lVar7 + 0x30) + 0x13);
  *(byte **)(lVar7 + -0x350) = pbVar18;
  uVar19 = *(ulonglong *)(lVar7 + -0x610) | *puVar2;
  *(ulonglong *)(lVar7 + -0x4c8) = uVar19;
  *(ulonglong *)(lVar7 + -0x5c0) =
       (CONCAT44(uVar11,uVar13) ^ 0x94d8ac131bf39df0) + *(longlong *)(lVar7 + -0x558);
  *pbVar1 = *pbVar18;
  *(ulonglong *)(lVar7 + -0x9c8) = CONCAT44(uVar13,uVar12) ^ uVar19 ^ 0x7f267221ef5042b8;
  *(ulonglong *)(lVar7 + -0x7d8) = (ulonglong)*pbVar1;
  *pbVar1 = **(byte **)(lVar7 + -0x4f8);
  uVar8 = DAT_1826707ac;
  uVar19 = (ulonglong)DAT_1826707ac;
  *(longlong *)(lVar7 + -0xa18) =
       *(longlong *)(lVar7 - (uVar27 ^ 0xcc7d20e4)) << (((byte)uVar15 ^ 0x22) & 0x3f);
  *(ulonglong *)(lVar7 - (uVar19 ^ 0xa02629a7)) =
       (CONCAT44(uVar24,uVar34) ^ 0x255c2a3e46b311c9) >>
       ((byte)*(undefined8 *)(lVar7 + -0x1b8) & 0x3f);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xa0262fbf)) =
       *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707ec ^ 0xc479d99a)) |
       *(ulonglong *)(lVar7 + -0x4c8);
  lVar26 = (CONCAT44(uVar10,uVar12) ^ 0x2cd1a6f5491c402b) << (((byte)uVar8 ^ 0x99) & 0x3f);
  *(longlong *)(lVar7 + -0x998) = lVar26;
  uVar10 = DAT_1826707ec;
  *(ulonglong *)(lVar7 + -0x350) =
       (CONCAT44(uVar12,uVar14) ^ 0x4c2d200008000016) + *(longlong *)((uVar17 ^ 0x5e519428) + lVar7)
  ;
  *(longlong *)(lVar7 - ((ulonglong)uVar10 ^ 0xc479df9a)) =
       *(longlong *)(lVar7 + -0xa18) << ((byte)lVar26 & 0x3f);
  bVar3 = **(byte **)(lVar7 - (uVar36 ^ 0xe625e332));
  *pbVar1 = bVar3;
  *(ulonglong *)(lVar7 + -0x400) = (ulonglong)bVar3;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0xcc7d21cc)) = (ulonglong)bVar3 << (((byte)uVar12 ^ 0x20) & 0x3f)
  ;
  *(int *)(lVar7 - (uVar31 ^ 0x8000af2)) = *(int *)(lVar7 + -0xc34) - *(int *)(lVar7 + -0x140);
  *(ulonglong *)(lVar7 - (uVar32 ^ 0x442d148e)) =
       *(ulonglong *)(lVar7 + -0x220) | *(ulonglong *)(lVar7 + -0x6f0);
  puVar20 = (undefined1 *)
            ((CONCAT44(uVar30,uVar8) ^ 0x5e519418a0262d8a) + *(longlong *)(lVar7 + 0x30));
  *(undefined1 **)(lVar7 + -0x4f8) = puVar20;
  *(undefined1 *)(lVar7 - (uVar22 ^ 0x68cebf3)) = *puVar20;
  uVar8 = DAT_1826707d4;
  uVar19 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0xc479df62)) = (ulonglong)*pbVar1;
  *(longlong *)(lVar7 + -0xf0) = *(longlong *)(lVar7 + -0xce0) << (((byte)uVar30 ^ 0x30) & 0x3f);
  *(ulonglong *)(lVar7 + -0x658) =
       *(ulonglong *)(lVar7 - (uVar27 ^ 0xcc7d27cc)) | *(ulonglong *)(lVar7 + -0xb70);
  *(ulonglong *)(lVar7 + -0x118) =
       CONCAT44(uVar11,uVar8) ^ *(ulonglong *)(lVar7 + -0xd38) ^ 0x6f1ba1f7e046bea6;
  *(ulonglong *)(lVar7 - (uVar23 ^ 0xde7df893)) =
       (CONCAT44(uVar24,uVar34) ^ 0xecb2cd9cde7dfbd5) + *(longlong *)(lVar7 + 0x30);
  uVar17 = (ulonglong)DAT_1826707d0;
  *(undefined1 *)(lVar7 - (uVar19 ^ 0xd5a003a1)) = **(undefined1 **)(lVar7 - (uVar22 ^ 0x68cee6a));
  *(ulonglong *)(lVar7 + -0x6b8) =
       (CONCAT44(uVar21,uVar14) ^ 0x3108dfd5a90bafea) << ((local_b0 ^ 0x66) & 0x3f);
  *(ulonglong *)(lVar7 - (uVar32 ^ 0x442d1bde)) = (ulonglong)*pbVar1;
  pbVar18 = (byte *)(*(longlong *)(lVar7 + 0x30) + 0x17);
  lVar26 = *(longlong *)(lVar7 + -0x420) << 0x30;
  lVar29 = *(longlong *)(lVar7 + -0x658) + lVar26;
  *(byte **)(lVar7 + -0x4f8) = pbVar18;
  *(longlong *)(lVar7 + -0x660) = lVar29;
  *(longlong *)(lVar7 + -0x630) = lVar26;
  bVar3 = *pbVar18;
  *pbVar1 = bVar3;
  *(ulonglong *)(lVar7 + -0xd88) = (ulonglong)bVar3;
  *(longlong *)(lVar7 + -0xac0) =
       *(longlong *)(lVar7 - (uVar17 ^ 0x5fd9dfe8)) << (((byte)uVar24 ^ 0xa4) & 0x3f);
  *(longlong *)(lVar7 + -0x890) = *(longlong *)(lVar7 - (uVar17 ^ 0x5fd9d8a0)) + lVar29;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707b8 ^ 0x816b101)) =
       *(longlong *)(lVar7 + -0xa58) + (CONCAT44(uVar9,uVar30) ^ 0xcc7d273c5e51941a) * 8;
  **(ulonglong **)(lVar7 - ((ulonglong)uVar24 ^ 0xecb2c09c)) =
       uVar35 ^ *(ulonglong *)(lVar7 + -0x890);
  *(uint *)(lVar7 + -0x9ec) = (DAT_1826707ec ^ 0xf5d9ea1) + *(int *)(lVar7 + -0x540);
  pbVar18 = (byte *)((CONCAT44(uVar13,uVar13) ^ 0x16f23a1a16f23a02) + *(longlong *)(lVar7 + 0x30));
  *(byte **)(lVar7 + -0x350) = pbVar18;
  bVar3 = *pbVar18;
  uVar17 = CONCAT44(uVar14,DAT_1826707b4);
  *pbVar1 = bVar3;
  *(ulonglong *)(lVar7 + -0x610) = (ulonglong)bVar3;
  uVar6 = *(undefined4 *)(lVar7 + -0x398);
  *(ulonglong *)(lVar7 + -0x4f8) = (uVar17 ^ 0x80000023aed8c1f) + *(longlong *)(lVar7 + 0x30);
  bVar3 = **(byte **)(lVar7 - (uVar19 ^ 0xd5a00190));
  *puVar2 = (ulonglong)bVar3;
  *pbVar1 = bVar3;
  *(int *)(lVar7 + -0xc34) = (uVar8 ^ 0x1d4cfacc) << ((byte)uVar6 & 0x1f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar4 ^ uVar34;
  return;
}



############ FUN_ 180ca24b0 size=2955 ############

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

void FUN_180ca24b0(void)

{
  byte *pbVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  byte *pbVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar24;
  
  uVar11 = DAT_1826707f4;
  uVar10 = DAT_1826707ec;
  uVar7 = DAT_1826707dc;
  uVar6 = DAT_1826707d0;
  uVar5 = DAT_1826707c4;
  uVar4 = DAT_1826707b4;
  lVar2 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707dc;
  uVar19 = DAT_1826707d0 ^ DAT_1826707c0;
  uVar13 = DAT_1826707dc - DAT_1826707e0;
  uVar26 = (ulonglong)DAT_1826707ec;
  uVar30 = (ulonglong)DAT_1826707c4;
  uVar27 = DAT_1826707f0 | DAT_1826707c4;
  uVar23 = DAT_1826707ec & DAT_1826707b4;
  uVar24 = (ulonglong)uVar23;
  uVar31 = (DAT_1826707f4 << 0x10 | DAT_1826707f4 & 0xff00) << 8 | DAT_1826707f4 >> 8 & 0xff00 |
           DAT_1826707f4 >> 0x18;
  uVar28 = *(uint *)(&DAT_18260f758 + DAT_182670dac) ^ DAT_1826707d0;
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670dac) ^ DAT_1826707c0;
  uVar15 = *(ulonglong *)(DAT_1826707a0 + -0x418);
  bVar12 = (byte)DAT_1826708cc;
  DAT_1826707a8 = uVar27;
  DAT_1826707b0 = uVar13;
  DAT_1826707b8 = uVar31;
  DAT_1826707bc = uVar23;
  DAT_1826707d4 = uVar19;
  *(byte *)(DAT_1826707a0 + -0xd2b) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0xfb19135b)) ^
                (ulonglong)DAT_182670ac8) ^ bVar12 ^ (byte)DAT_182670a90;
  *(ulonglong *)(lVar2 + -0xaa0) = CONCAT44(uVar31,uVar23) ^ 0xbc981d18f66e90ff;
  pbVar20 = (byte *)(uVar15 ^ DAT_18267096c);
  *(byte **)(lVar2 + -0x4f8) = pbVar20 + 1;
  *pbVar20 = *(byte *)(lVar2 - ((ulonglong)uVar11 ^ 0xafef7294)) ^ bVar12;
  *(byte *)(lVar2 + -0xd2b) = (byte)uVar6 ^ 0x42;
  uVar8 = DAT_1826707e0;
  uVar15 = (ulonglong)DAT_1826707e0;
  uVar25 = CONCAT44(uVar10,uVar7);
  uVar16 = (ulonglong)DAT_182670ad8;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar4 ^ 0xf99b6c2c)) = *(undefined8 *)(lVar2 + -0x4f8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x6a01057c)) = uVar25 ^ 0xfde1407adb2f329f;
  *(undefined8 *)(lVar2 + -0x148) = *(undefined8 *)(lVar2 + -0x1f8);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar15 ^ 0xd5feff84)) =
       CONCAT44(uVar23,uVar27) ^ 0xda05afebe627bbdc;
  pbVar20 = *(byte **)(lVar2 + -0x148);
  pbVar1 = *(byte **)(lVar2 - ((ulonglong)uVar5 ^ 0x4fd04a70));
  uVar15 = CONCAT44(DAT_1826707d0,DAT_1826707f0);
  *(ulonglong *)(lVar2 + -0xae8) = (ulonglong)DAT_182670aac ^ (ulonglong)pbVar20;
  *(ulonglong *)(lVar2 + -0x20) = (ulonglong)pbVar1 ^ uVar16;
  *(ulonglong *)(lVar2 + -0xa30) = uVar15 ^ 0x64d6c8a8ea055d33;
  *(undefined8 *)(lVar2 + -0x148) = 0xa7fc1e6258cd8021;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (CONCAT44(uVar11,uVar5) ^ 0x5d8f4aa2a2ae8013) >> (((byte)uVar19 ^ 0xeb) & 0x3f);
  bVar12 = (byte)DAT_182670a98 ^ (byte)DAT_182670a90;
  *(byte **)(lVar2 + -0xcc8) = pbVar20 + (CONCAT44(uVar10,uVar27) ^ 0xb1a3f993dffefefc);
  *(byte *)(lVar2 + -0xd9) = bVar12 ^ *pbVar20;
  *(undefined8 *)(lVar2 + -0xae8) = 0x81b0b040e563a7f6;
  uVar5 = DAT_1826707c0;
  uVar15 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar2 + -0x600) = (*(ulonglong *)(lVar2 - (uVar24 ^ 0xb1836030)) ^ uVar16) + 1;
  *(ulonglong *)(lVar2 + -0xa18) = CONCAT44(uVar31,uVar7) ^ 0xd0ce4e2bf982a758;
  uVar4 = DAT_1826707b4;
  uVar16 = (ulonglong)DAT_1826707b4;
  *pbVar1 = *(byte *)(lVar2 - ((ulonglong)uVar19 ^ 0xfb191922)) ^ (byte)DAT_182670a98;
  *(undefined1 *)(lVar2 + -0xd9) = 0x4d;
  *(undefined8 *)(lVar2 - (uVar16 ^ 0xf99b6eb4)) = *(undefined8 *)(lVar2 + -0x600);
  *(ulonglong *)(lVar2 + -0x600) = uVar25 ^ 0x7631baffdeeab15f;
  *(undefined8 *)(lVar2 + -0x168) = *(undefined8 *)(lVar2 + -0xcc8);
  uVar16 = (ulonglong)DAT_1826709b4;
  *(undefined8 *)(lVar2 + -0xcc8) = 0x15a60c0a1c787fe7;
  uVar7 = DAT_1826707f0;
  uVar29 = (ulonglong)DAT_182670a84;
  uVar25 = (ulonglong)_DAT_182670ad4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xdffef4d5)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xd5fef6d4)) ^ uVar16;
  pbVar20 = *(byte **)(lVar2 + -0x168);
  *(undefined8 *)(lVar2 + -0x8a8) = 0xfe0e0b28aa2b3ac6;
  *(ulonglong *)(lVar2 + -0x450) = uVar25 ^ (ulonglong)pbVar20;
  uVar6 = DAT_1826707d0;
  uVar32 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar2 + -0x5c0) =
       *(ulonglong *)(lVar2 + -0xbb0) >> ((byte)*(undefined8 *)(lVar2 + -0x4c8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x168) = CONCAT44(uVar31,uVar11) ^ 0x9b10275ecc949fe8;
  *(ulonglong *)(lVar2 + -0x4c8) = CONCAT44(uVar7,uVar8) ^ 0xc3998672390a05fa;
  *(byte **)(lVar2 + -0x150) = pbVar20 + (CONCAT44(uVar23,uVar5) ^ 0xb1836010972e376d);
  *(byte *)(lVar2 + -0xa73) = (byte)DAT_182670a8c ^ (byte)DAT_182670a90 ^ *pbVar20;
  *(uint *)(lVar2 + -0x14) = uVar6 ^ 0x8c672ceb;
  *(uint *)(*(ulonglong *)(lVar2 + -0x848) ^ uVar29) = uVar31 ^ 0x622845a5;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar13 ^ 0x6a0109cc)) = 0xa8c15d8f55a5d7e0;
  *(ulonglong *)(lVar2 + -0x450) = CONCAT44(uVar27,uVar6) ^ 0x215f815728ae8158;
  lVar3 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_1826709b4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xf99b6ba4)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x6a010bac)) ^ uVar22) + 1;
  *(ulonglong *)(lVar2 + -0x68) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar19 ^ 0xfb191b4b)) | *(ulonglong *)(lVar2 + -0x5c0);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0x4fd042f0)) =
       CONCAT44(uVar23,uVar27) ^ 0xa7d9138b261a3574;
  uVar5 = DAT_1826707f4;
  *(byte *)(*(ulonglong *)(lVar3 + -0xa28) ^ uVar22) =
       *(byte *)(DAT_1826707a0 - ((ulonglong)uVar31 ^ 0xbf7fe5dc)) ^ (byte)DAT_182670a8c;
  bVar12 = (byte)uVar5;
  *(byte *)(lVar3 - ((ulonglong)uVar13 ^ 0x6a010bf7)) = bVar12 ^ 0x7c;
  *(undefined4 *)(lVar3 + -0xb54) = 0xcd7b91e6;
  *(undefined4 *)(lVar3 + -0xc0c) = 0xaf56b06a;
  *(undefined8 *)(lVar3 - (uVar30 ^ 0x4fd045a0)) = *(undefined8 *)(lVar3 + -0xdb8);
  *(ulonglong *)(lVar3 - (uVar15 ^ 0x972e3ad4)) = CONCAT44(uVar19,uVar31) ^ 0x37bfaeabd2b2d795;
  *(uint *)(lVar3 - (uVar21 ^ 0x400003d4)) = (uVar13 ^ 0xce03947e) * (uVar31 ^ 0x146795f6);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar4 ^ 0xf99b629c)) = *(undefined8 *)(lVar3 + -0x150);
  uVar6 = DAT_1826707dc;
  *(undefined8 *)(lVar3 + -0x150) = 0xc155803789dff7a7;
  uVar4 = DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0x6a8) = (ulonglong)DAT_1826708a0 ^ *(ulonglong *)(lVar3 + -0x5e0);
  uVar5 = DAT_1826707d0;
  *(ulonglong *)(lVar3 + -0x5e0) = CONCAT44(uVar7,uVar10) ^ 0x97cbc7227139da1b;
  *(uint *)(lVar3 + -0xc34) =
       *(uint *)(*(ulonglong *)(lVar3 + -0x6c0) ^ (ulonglong)DAT_182670acc) ^ DAT_182670a40;
  uVar16 = (ulonglong)DAT_182670984;
  *(byte *)(*(ulonglong *)(lVar3 + -0xb60) ^ (ulonglong)DAT_182670a28) = (byte)uVar6 ^ 0x15;
  uVar25 = (ulonglong)DAT_182670a94;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0xdffefa65)) ^ uVar16) =
       (byte)DAT_1826707c0 ^ 0x65;
  uVar16 = (ulonglong)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar3 + -0x930) ^ uVar25) = (byte)DAT_1826707e0 ^ 0xe1;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc28) ^ uVar16) = bVar12 ^ 0xbb;
  bVar17 = (byte)uVar4;
  uVar16 = (ulonglong)DAT_182670a9c;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xb1836340)) ^ (ulonglong)_DAT_1826708f8) =
       bVar17 ^ 0xd1;
  uVar25 = (ulonglong)DAT_182670894;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x40) ^ uVar16) = 0xe5;
  uVar16 = (ulonglong)DAT_1826708e4;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -800) ^ uVar25) = 0x25;
  uVar25 = (ulonglong)DAT_182670a74;
  *(byte *)(*(ulonglong *)(lVar3 + -0x4c0) ^ uVar16) = (byte)uVar5 ^ 0xca;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x80) ^ uVar25) = 0x26;
  uVar16 = (ulonglong)DAT_1826707fc;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xb18365e0)) ^ (ulonglong)DAT_182670940) =
       (byte)uVar27 ^ 0xc4;
  uVar25 = (ulonglong)DAT_182670a20;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0xcb8) ^ uVar16) = 0xdf;
  uVar16 = (ulonglong)DAT_1826709d4;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x940) ^ uVar25) = 0x65;
  uVar25 = (ulonglong)DAT_182670990;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc30) ^ uVar16) = bVar12 ^ 0x12;
  uVar16 = (ulonglong)DAT_182670880;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x8c8) ^ uVar25) = (byte)uVar23 ^ 0x23;
  lVar2 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_182670858;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xb1a3fffb)) ^ uVar16) =
       (byte)DAT_1826707b4 ^ 0xa4;
  uVar16 = (ulonglong)DAT_182670994;
  *(byte *)(*(ulonglong *)(lVar2 + -0x98) ^ uVar25) = (byte)DAT_1826707e0 ^ 0x35;
  uVar25 = (ulonglong)DAT_182670a00;
  *(byte *)(*(ulonglong *)(lVar2 + -0xc80) ^ uVar16) = (byte)uVar19 ^ 0x2d;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0x6c372727)) ^ uVar25) = 0xe3;
  *(byte *)(*(ulonglong *)(lVar2 + -0xa70) ^ (ulonglong)DAT_182670ac8) = (byte)uVar6 ^ 0x2b;
  uVar16 = (ulonglong)DAT_1826708cc;
  *(byte *)(*(ulonglong *)(lVar2 + -0x618) ^ (ulonglong)DAT_182670978) = (byte)uVar5 ^ 0xf;
  uVar25 = (ulonglong)DAT_1826709ec;
  *(byte *)(*(ulonglong *)(lVar2 + -0x1a8) ^ uVar16) = bVar17 ^ 0x21;
  uVar16 = (ulonglong)DAT_182670980;
  *(byte *)(*(ulonglong *)(lVar2 + -0x120) ^ uVar25) = (byte)uVar13 ^ 0x1d;
  uVar25 = (ulonglong)DAT_1826708d4;
  bVar18 = (byte)DAT_1826707b4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x580) ^ uVar16) = bVar12 ^ 0x53;
  uVar16 = (ulonglong)DAT_182670b04;
  *(byte *)(*(ulonglong *)(lVar2 + -0x800) ^ uVar25) = bVar17 ^ 0x53;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar15 ^ 0x972e3264)) ^ uVar16) = 0xd4;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar21 ^ 0x40000888)) ^ uVar22) = (byte)uVar23 ^ 0xeb;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x648) ^ uVar29) = 0x77;
  uVar15 = (ulonglong)DAT_18267086c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x278) ^ (ulonglong)DAT_182670824) = bVar18 ^ 0xf5;
  bVar12 = (byte)(uVar11 >> 0x18);
  uVar16 = (ulonglong)DAT_1826708fc;
  *(byte *)(*(ulonglong *)(lVar2 + -0xbe0) ^ uVar15) = (byte)uVar13 ^ 0xcc;
  uVar15 = (ulonglong)DAT_1826709f8;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8f8) ^ uVar16) = bVar12 ^ 0xd5;
  uVar16 = (ulonglong)DAT_182670964;
  *(byte *)(*(ulonglong *)(lVar2 + -0xd48) ^ uVar15) = (byte)DAT_1826707f0 ^ 0xa0;
  uVar15 = (ulonglong)DAT_182670864;
  bVar17 = (byte)DAT_1826707e0;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x3f0) ^ uVar16) = 0xb2;
  uVar16 = (ulonglong)DAT_1826709a8;
  *(byte *)(*(ulonglong *)(lVar2 + -0x628) ^ uVar15) = bVar12 ^ 0x4e;
  iVar9 = DAT_1826707e4;
  lVar3 = DAT_1826707a0;
  uVar15 = (ulonglong)DAT_182670888;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar24 ^ 0xb1836c30)) ^ uVar16) = bVar17 ^ 0x66;
  DAT_1826707d8 = iVar9 * DAT_1826707cc;
  *(byte *)(*(ulonglong *)(lVar3 + -0x728) ^ uVar15) = (byte)DAT_1826707d8 ^ 0x40;
  uVar15 = (ulonglong)DAT_182670afc;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x230) ^ (ulonglong)DAT_1826707f8) = 0xf2;
  *(byte *)(*(ulonglong *)(lVar3 + -0x850) ^ uVar15) = (byte)iVar9 ^ 0xbe;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar28;
  return;
}



############ FUN_ 180c50f30 size=4613 ############

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

void FUN_180c50f30(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  byte bVar14;
  byte bVar15;
  byte bVar16;
  ulonglong uVar17;
  longlong *plVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  byte *pbVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_res20;
  byte local_e0;
  
  uVar10 = DAT_1826708c4;
  uVar7 = DAT_1826707f0;
  uVar6 = DAT_1826707ec;
  uVar31 = DAT_1826707d0;
  uVar5 = DAT_1826707cc;
  uVar32 = DAT_1826707c0;
  uVar4 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707ec;
  uVar25 = (ulonglong)DAT_1826707d0;
  uVar37 = (ulonglong)DAT_1826707f0;
  uVar24 = DAT_1826707bc + DAT_1826707ec;
  uVar30 = *(uint *)(&DAT_18260f758 + DAT_182670b48) ^ DAT_1826707bc;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670b48);
  uVar28 = DAT_1826707d0 - DAT_1826707cc;
  uVar23 = DAT_1826707f0 ^ DAT_1826707c0;
  uVar40 = (ulonglong)DAT_1826708c4;
  pbVar34 = (byte *)(*(longlong *)(DAT_1826707a0 + -0x168) + 0x44);
  uVar20 = CONCAT44(DAT_1826707ec,DAT_1826707f0);
  DAT_1826707c8 = uVar28;
  DAT_1826707d8 = uVar24;
  DAT_1826707dc = uVar23;
  *(ulonglong *)(DAT_1826707a0 + -0x4f8) = (ulonglong)pbVar34 ^ (ulonglong)DAT_18267083c;
  uVar8 = DAT_182670824;
  uVar19 = (ulonglong)DAT_182670824;
  *(ulonglong *)(lVar2 + -0xbb0) =
       (uVar20 ^ 0x6374d1426ec45888) << (((byte)uVar10 ^ *(byte *)(lVar2 + -0x558)) & 0x3f);
  uVar9 = DAT_182670818;
  bVar14 = *pbVar34 ^ DAT_1826708c8 ^ (byte)DAT_182670a40;
  bVar16 = DAT_1826708c8 ^ bVar14;
  *(byte *)(lVar2 + -0x911) = bVar14;
  uVar33 = CONCAT44(uVar9,uVar9);
  uVar22 = (ulonglong)uVar5;
  *(ulonglong *)(lVar2 + -0x1b8) = bVar16 ^ uVar33;
  puVar21 = (ulonglong *)(lVar2 - (uVar22 ^ 0x12d90d38));
  uVar38 = (ulonglong)uVar23;
  *(ulonglong *)(lVar2 + -0x410) = (uVar19 << 0x19 | (ulonglong)(uVar8 >> 7)) ^ *puVar21 >> 7;
  uVar9 = DAT_18267085c;
  lVar2 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar33 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar23 ^ 0x3d7d914)) ^ uVar33) <<
           (((byte)uVar23 ^ 0x8c) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x548) = uVar33 ^ uVar35;
  uVar17 = CONCAT44(uVar9,uVar9);
  uVar41 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar2 + -0xb70) = (uVar33 | uVar17 ^ *(ulonglong *)(lVar2 + -0xd88)) ^ uVar41;
  bVar16 = (byte)DAT_182670ab0;
  uVar36 = (ulonglong)DAT_182670924;
  plVar18 = (longlong *)(lVar2 - ((ulonglong)uVar28 ^ 0x650cef1e));
  *(ulonglong *)(lVar2 + -0x390) =
       (CONCAT44(uVar31,uVar23) ^ 0x77e5fdfe03d7d8e9) + *plVar18 ^ uVar36;
  uVar33 = (ulonglong)uVar4;
  uVar19 = CONCAT44(DAT_18267095c,DAT_18267095c) ^ *(ulonglong *)(lVar2 + -0xce0);
  puVar26 = (ulonglong *)(lVar2 - (uVar33 ^ 0x33e56310));
  uVar43 = (ulonglong)uVar24;
  *puVar26 = uVar19 >> ((byte)uVar19 & 0x3f);
  *(byte *)(lVar2 - ((ulonglong)uVar31 ^ 0x77e5f547)) =
       *(byte *)(uVar36 ^ *(ulonglong *)(lVar2 + -0x390)) ^ bVar16 ^ (byte)DAT_182670a40;
  uVar19 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x3534c498)) =
       (*(byte *)(lVar2 + -0x8b9) ^ bVar16) ^ uVar19;
  bVar16 = (byte)DAT_1826709ec;
  uVar11 = DAT_1826708f0;
  uVar19 = (*(ulonglong *)(lVar2 - (uVar29 ^ 0x14f6548)) ^ uVar19) << 0x28;
  uVar39 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar2 + -0x558) = uVar19 ^ CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(uint *)(lVar2 + -0x3d4) = *(uint *)(lVar2 + -0x814) ^ *(uint *)(lVar2 + -0x43c);
  *(ulonglong *)(lVar2 + -0xbb0) = (uVar41 ^ *(ulonglong *)(lVar2 + -0xb70) | uVar19) ^ uVar39;
  uVar13 = DAT_182670a40;
  pbVar34 = (byte *)((CONCAT44(uVar23,uVar5) ^ 0x3d7d8ac12d90fce) + *(longlong *)(lVar2 + -0x168));
  *(ulonglong *)(lVar2 + -0x418) = (ulonglong)pbVar34 ^ uVar40;
  uVar9 = DAT_182670858;
  lVar3 = DAT_1826707a0;
  bVar14 = *pbVar34 ^ bVar16 ^ (byte)uVar13;
  *(byte *)(lVar2 + -0xd2b) = bVar14;
  uVar36 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x1b8) = (bVar16 ^ bVar14) ^ uVar36;
  *(int *)(lVar3 - (uVar29 ^ 0x14f67c8)) =
       *(int *)(lVar2 - ((ulonglong)uVar32 ^ 0x14f606c)) <<
       ((byte)*(undefined4 *)(lVar2 + -0x140) & 0x1f);
  uVar19 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar41 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x1b8)) << ((byte)uVar4 & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x548) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0x77e5f076)) ^ uVar19) +
       (uVar39 ^ *(ulonglong *)(lVar3 + -0xbb0)) ^ uVar41;
  bVar16 = (byte)DAT_182670abc;
  lVar2 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_182670934;
  *(ulonglong *)(lVar3 + -0xce0) =
       (CONCAT44(uVar7,uVar4) ^ 0xe2daea3ead48580c) >>
       (((byte)uVar11 ^ *(byte *)(lVar3 + -0x558)) & 0x3f);
  pbVar34 = (byte *)((CONCAT44(uVar28,uVar7) ^ 0x650cee760298bcbb) + *(longlong *)(lVar2 + -0x168));
  *(ulonglong *)(lVar2 + -0xae8) = (ulonglong)pbVar34 ^ uVar19;
  *(byte *)(lVar2 - (uVar29 ^ 0x14f6d11)) = *pbVar34 ^ (byte)DAT_182670a40 ^ bVar16;
  uVar36 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0x3d7da8c)) = (*(byte *)(lVar2 + -0x941) ^ bVar16) ^ uVar36;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x77e5fce6)) =
       CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0x2b0) ^ 0x8a485315953bd2d0;
  uVar19 = CONCAT44(DAT_182670964,DAT_182670964);
  *(ulonglong *)(lVar2 + -0xb70) =
       (*(ulonglong *)(lVar2 + -0x220) ^ uVar36) << (((byte)uVar31 ^ 0xc6) & 0x3f) ^ uVar19;
  uVar39 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0x77e5fc46)) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x12d904f8)) ^ uVar19) +
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x548)) ^ uVar39;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xa58) + (CONCAT44(uVar32,uVar23) ^ 0x14f645003d7d8a4) * 8);
  uVar36 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar2 + -0x58) = (ulonglong)puVar27 ^ CONCAT44(DAT_182670a14,DAT_182670a14);
  lVar3 = DAT_1826707a0;
  uVar41 = (ulonglong)DAT_182670994;
  *puVar27 = uVar36 ^ *(ulonglong *)(lVar2 + -0x1b8) ^ uVar39;
  *(ulonglong *)(lVar3 + -0xbb0) = *(ulonglong *)(lVar3 + -0x118) >> (((byte)uVar24 ^ 0x82) & 0x3f);
  *(ulonglong *)(lVar3 + -0x4f8) =
       *(longlong *)(lVar3 - (uVar22 ^ 0x12d90ee0)) + (CONCAT44(uVar28,uVar32) ^ 0x650cee76014f6418)
       ^ uVar41;
  bVar16 = (byte)DAT_1826709f0;
  *(undefined8 *)(lVar3 - (uVar38 ^ 0x3d7d524)) = 0x3fffeff4dfdf9fe6;
  uVar9 = DAT_182670a40;
  *(byte *)(DAT_1826707a0 - (uVar29 ^ 0x14f6509)) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x298b804)) ^ uVar41) ^
       (byte)DAT_182670a40 ^ bVar16;
  uVar40 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar39 = (ulonglong)DAT_182670954;
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x77e5f8a6)) =
       (*(byte *)(DAT_1826707a0 + -0x159) ^ bVar16) ^ uVar40;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       *(ulonglong *)
        (CONCAT44(DAT_182670a2c,DAT_182670a2c) ^ *(ulonglong *)(DAT_1826707a0 + -0xba0)) ^
       CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182670a40;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x298bf6c)) =
       *(longlong *)(lVar2 - (uVar33 ^ 0x33e56058)) + (CONCAT44(uVar32,uVar23) ^ 0x14f645003d7d8e5)
       ^ uVar39;
  bVar16 = (byte)DAT_182670a3c;
  *puVar21 = *(ulonglong *)(lVar2 - (uVar43 ^ 0x3534cef0)) ^ uVar19 |
             *(ulonglong *)(lVar2 - (uVar43 ^ 0x3534c190));
  lVar2 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - (uVar29 ^ 0x14f6761)) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x390) ^ uVar39) ^ (byte)uVar9 ^ bVar16;
  uVar41 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  bVar15 = (byte)uVar32;
  uVar19 = (ulonglong)(*(byte *)(lVar2 - ((ulonglong)uVar28 ^ 0x650ced47)) ^ bVar16);
  uVar39 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(lVar2 + -0x220) = uVar19 ^ uVar41;
  uVar19 = uVar19 << ((bVar15 ^ 0x58) & 0x3f);
  *(ulonglong *)(lVar2 + -0x548) = uVar19 ^ uVar39;
  uVar8 = DAT_1826708ec;
  uVar39 = (ulonglong)DAT_1826708ec;
  *(ulonglong *)(lVar2 + -0x610) =
       CONCAT44(uVar4,uVar7) ^ CONCAT44(uVar31,uVar23) ^ 0xbc69fc643c80552f;
  uVar42 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar28 ^ 0x650cef6e)) =
       (uVar19 | uVar40 ^ *(ulonglong *)(lVar2 + -0x558)) ^ uVar42;
  pbVar34 = (byte *)(*(longlong *)(lVar2 - (uVar43 ^ 0x3534c4e8)) + 0x4a);
  *(ulonglong *)(lVar2 + -0x418) = (ulonglong)pbVar34 ^ uVar39;
  *(byte *)(lVar2 - (uVar37 ^ 0x298b49d)) = *pbVar34 ^ (byte)uVar9 ^ (byte)uVar8;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar37 << 0x39 ^ 0x5a00000000000000;
  uVar40 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar2 + -0xd88) = (byte)(*(byte *)(lVar2 + -0x861) ^ (byte)uVar8) ^ uVar40;
  uVar19 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x14f68b0)) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x12d90200)) ^ uVar40) << (bVar15 & 0x3f) ^ uVar19;
  uVar39 = (ulonglong)DAT_18267090c;
  *(ulonglong *)(lVar3 + -0x410) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x33e56dd0)) ^ uVar19 |
       *(ulonglong *)(lVar3 + -0x118) ^ uVar42) ^ uVar35;
  uVar8 = DAT_1826707fc;
  uVar44 = (ulonglong)DAT_1826707fc;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x77e5f716)) =
       (CONCAT44(uVar31,uVar32) ^ 0x77e5fdfe014f641b) + *(longlong *)(lVar3 + -0x168) ^ uVar39;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x77e5f68e)) =
       *(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar40 |
       CONCAT44(uVar23,uVar28) ^ 0x2beee985779216b9;
  uVar9 = DAT_182670870;
  *(byte *)(lVar2 + -0x6c9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xae8) ^ uVar39) ^ (byte)DAT_182670a40 ^ (byte)uVar8;
  uVar12 = DAT_1826709b8;
  uVar42 = (ulonglong)DAT_1826709b8;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(undefined8 *)(lVar2 + -0x2b0) = 0;
  uVar9 = DAT_182670af0;
  *puVar26 = (ulonglong)*(byte *)(lVar2 - (uVar22 ^ 0x12d90941)) ^ uVar44 & 0xff ^ uVar19;
  uVar39 = (uVar19 ^ *(ulonglong *)(lVar2 + -0x220)) << ((bVar15 ^ 0x48) & 0x3f);
  *(ulonglong *)(lVar2 + -0x610) = uVar39 ^ CONCAT44(uVar12,uVar12);
  lVar3 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar9,uVar9);
  uVar19 = (ulonglong)DAT_18267082c;
  *(ulonglong *)(lVar2 + -0x558) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x12d90b98)) ^ uVar35 | uVar39) ^ uVar40;
  bVar16 = (byte)DAT_18267081c;
  pbVar34 = (byte *)((CONCAT44(uVar31,uVar31) ^ 0x77e5fdfe77e5fdb2) + *(longlong *)(lVar2 + -0x168))
  ;
  *(ulonglong *)(lVar2 + -0x4f8) = (ulonglong)pbVar34 ^ uVar19;
  bVar14 = *pbVar34 ^ (byte)DAT_182670a40;
  *(byte *)(lVar2 + -0x361) = bVar14 ^ bVar16;
  uVar9 = DAT_1826709d8;
  puVar27 = (ulonglong *)(lVar2 - (uVar29 ^ 0x14f6118));
  *puVar27 = bVar14 ^ uVar41;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x3d7d31c)) =
       (uVar41 ^ *(ulonglong *)(lVar3 + -0x548)) << ((bVar15 ^ 0x70) & 0x3f) ^ uVar19;
  bVar16 = (byte)DAT_1826709b0;
  uVar41 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar39 = (ulonglong)DAT_182670850;
  uVar37 = *(ulonglong *)(lVar3 - (uVar37 ^ 0x298b9a4)) ^ uVar40 |
           *(ulonglong *)(lVar3 + -0xbb0) ^ uVar19;
  uVar19 = CONCAT44(DAT_1826707ac,uVar28);
  *(ulonglong *)(lVar3 + -0x118) = uVar37 ^ uVar41;
  *(ulonglong *)(lVar3 + -0x390) = (uVar19 ^ 0x62202cfc650cee3b) + *plVar18 ^ uVar39;
  uVar9 = DAT_182670940;
  bVar14 = *(byte *)(*(ulonglong *)(lVar3 - (uVar43 ^ 0x3534c610)) ^ uVar39) ^ (byte)DAT_182670a40;
  lVar2 = *(longlong *)(lVar3 + -0x168);
  *(byte *)(lVar3 + -0x763) = bVar14 ^ bVar16;
  uVar11 = DAT_1826709b4;
  *(ulonglong *)(lVar3 + -0xce0) = (ulonglong)bVar14 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182670960;
  pbVar34 = (byte *)(lVar2 + 0x4e);
  uVar39 = (ulonglong)bVar14 << (((byte)uVar31 ^ 0xd6) & 0x3f);
  local_res20 = (byte)uVar5;
  *(ulonglong *)(lVar3 + -0xd88) = uVar39 ^ CONCAT44(uVar11,uVar11);
  uVar39 = uVar39 | uVar37;
  *(ulonglong *)(lVar3 + -0x418) = (ulonglong)pbVar34 ^ (ulonglong)DAT_182670a48;
  *(ulonglong *)(lVar3 + -0x220) =
       (CONCAT44(uVar7,uVar4) ^ 0x22b741645cf67d99) << ((local_res20 ^ 0x8b) & 0x3f);
  *(ulonglong *)(lVar3 + -0x2b0) = uVar39 ^ CONCAT44(uVar9,uVar9);
  uVar11 = DAT_1826709e8;
  lVar3 = DAT_1826707a0;
  bVar16 = (byte)DAT_1826709e8;
  *(byte *)(DAT_1826707a0 + -0x10a) = *pbVar34 ^ (byte)DAT_182670a40 ^ bVar16;
  *(ulonglong *)(lVar3 + -0x410) =
       (CONCAT44(uVar32,uVar24) ^ 0x28ab00b934698911) <<
       ((byte)*(undefined8 *)(lVar3 + -0xb70) & 0x3f);
  uVar9 = _DAT_1826709e0;
  uVar37 = (ulonglong)(bVar16 ^ *(byte *)(lVar3 + -0x10a));
  *(ulonglong *)(lVar3 + -0x610) = uVar37 ^ CONCAT44(DAT_182670924,DAT_182670924);
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x548) = uVar37 << 0x30 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x558) = uVar37 ^ 0x3f8facd75862f75f;
  uVar13 = DAT_182670a40;
  uVar37 = (ulonglong)DAT_182670930;
  *(ulonglong *)(lVar3 + -0xbb0) = (*puVar27 ^ uVar19) + uVar39 ^ CONCAT44(uVar10,uVar10);
  uVar32 = DAT_182670a14;
  uVar31 = DAT_182670a14 & 0xff;
  uVar39 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x12d90560)) =
       (CONCAT44(uVar23,uVar28) ^ 0x3d7d8ac650cee39) + lVar2 ^ uVar37;
  uVar9 = DAT_182670a20;
  lVar2 = DAT_1826707a0;
  uVar22 = *(ulonglong *)(DAT_1826707a0 + -0xbb0);
  bVar15 = (byte)uVar13;
  bVar16 = *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0xae8) ^ uVar37) ^ bVar15 ^ (byte)uVar32;
  *(byte *)(DAT_1826707a0 + -0xd2a) = bVar16;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xce0) = (ulonglong)bVar16 ^ (ulonglong)uVar31 ^ uVar19;
  uVar37 = (*(ulonglong *)(lVar2 - (uVar43 ^ 0x3534c960)) ^ uVar19) <<
           (((byte)uVar24 ^ 0xb8) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd88) = uVar37 ^ uVar39;
  uVar9 = DAT_18267086c;
  uVar19 = CONCAT44(uVar5,DAT_1826707b4);
  *(ulonglong *)(lVar2 + -0x220) =
       (*(ulonglong *)(lVar2 - (uVar29 ^ 0x14f69d8)) ^ uVar39) << (((byte)uVar23 ^ 0x85) & 0x3f);
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar29 = (CONCAT44(uVar10,uVar10) ^ uVar22) + uVar37 ^ uVar39;
  *(ulonglong *)(lVar2 + -0xb70) = uVar29;
  *(ulonglong *)(lVar2 + -0x5c8) =
       *(longlong *)(lVar2 + -0xa58) + (uVar19 ^ 0x12d90f885597ac79) * 8 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x410) =
       (CONCAT44(DAT_1826707f4,uVar6) ^ 0xf719d340ed666dd2) +
       (CONCAT44(uVar6,uVar4) ^ 0x824bd1532d6fd7b);
  uVar22 = (ulonglong)DAT_182670af8;
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar25 ^ 0x77e5f836)) ^ CONCAT44(uVar8,uVar8)) =
       uVar36 ^ uVar39 ^ uVar29;
  uVar4 = DAT_182670a9c;
  uVar32 = DAT_182670a9c & 0xff;
  *(ulonglong *)(lVar2 + -0x4f8) =
       (uVar20 ^ 0x14f64500298bcac) + *(longlong *)(lVar2 + -0x168) ^ uVar22;
  uVar9 = _DAT_1826708bc;
  bVar14 = *(byte *)(*(ulonglong *)(lVar2 - (uVar38 ^ 0x3d7dc54)) ^ uVar22) ^ bVar15 ^ (byte)uVar4;
  *(byte *)(lVar2 + -0xfa) = bVar14;
  bVar16 = (byte)DAT_182670978;
  uVar36 = (ulonglong)bVar14 ^ (ulonglong)uVar32;
  uVar22 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar2 + -0x610) = uVar36 ^ CONCAT44(uVar9,uVar9);
  pbVar34 = (byte *)(*(longlong *)(lVar2 - (uVar22 ^ 0x727d2f95)) +
                    (CONCAT44(uVar24,DAT_1826707b8) ^ 0x3534c5800f881288));
  *(ulonglong *)(lVar2 + -0x418) = (ulonglong)pbVar34 ^ uVar42;
  *(ulonglong *)(lVar2 + -0x558) = *(ulonglong *)(lVar2 + -0x118) ^ uVar41 | 0x9e1ef6424e2c27bf;
  uVar9 = DAT_18267089c;
  bVar15 = *pbVar34 ^ bVar15;
  *(byte *)(lVar2 + -0x2b9) = bVar15 ^ bVar16;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar19 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(lVar2 + -0x2b0) = bVar15 ^ uVar29;
  local_e0 = (byte)uVar7;
  uVar22 = *(ulonglong *)(lVar2 - (uVar33 ^ 0x33e56380));
  *(undefined8 *)(lVar2 + -0x6b8) = 0xa858027850a4d3df;
  uVar22 = (uVar22 ^ uVar29) << ((local_e0 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar2 + -0x548) = uVar22 ^ uVar19;
  *(ulonglong *)(lVar2 + -0xce0) = (uVar36 | uVar22) ^ uVar17;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar24) * 4) = uVar30;
  return;
}



############ FUN_ 180c9d7a0 size=4279 ############

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

void FUN_180c9d7a0(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  longlong lVar30;
  ulonglong uVar31;
  uint *puVar32;
  ulonglong uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  longlong lVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint *puVar46;
  
  uVar35 = DAT_182670aa0;
  uVar18 = DAT_182670a40;
  uVar5 = DAT_1826709a0;
  uVar8 = DAT_1826707ec;
  uVar6 = DAT_1826707e0;
  uVar27 = DAT_1826707d8;
  uVar15 = DAT_1826707c8;
  uVar4 = DAT_1826707b4;
  uVar3 = DAT_1826707ac;
  lVar30 = DAT_1826707a0;
  uVar16 = DAT_1826707cc & 3;
  if (uVar16 < 2) {
    DAT_1826707c4 = DAT_1826707f4;
    if (uVar16 == 0) {
      DAT_1826707c4 = DAT_1826707cc;
    }
  }
  else {
    DAT_1826707c4 = DAT_1826707b0;
    if (uVar16 < 3) {
      DAT_1826707c4 = DAT_1826707b8;
    }
  }
  uVar41 = (ulonglong)DAT_1826707d8;
  uVar17 = DAT_1826707e0 | DAT_1826707b4;
  uVar13 = DAT_1826707d8 - DAT_1826707ac;
  uVar34 = ~DAT_1826707ec;
  uVar24 = ~DAT_1826707c8;
  uVar16 = *(uint *)(&DAT_18260f758 + DAT_182670b60);
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670b60) ^ DAT_1826707e0;
  DAT_1826707a8 = uVar34;
  DAT_1826707d0 = uVar17;
  DAT_1826707d4 = uVar24;
  DAT_1826707e8 = uVar13;
  *(uint *)(DAT_1826707a0 + -0x9ec) =
       (DAT_1826707b4 ^ 0x8e1caa7d) - (*(uint *)(DAT_1826707a0 + -0xaf0) ^ DAT_1826709a0);
  *(longlong *)(lVar30 + -0x1a0) = *(longlong *)(lVar30 + -0xd58);
  puVar19 = (uint *)((CONCAT44(uVar24,uVar15) ^ 0xadc30fef523cf01) * 0x10 +
                    *(longlong *)(lVar30 + -0xd58));
  *(ulonglong *)(lVar30 + -0x6c0) = (ulonglong)puVar19 ^ (ulonglong)DAT_182670acc;
  uVar7 = DAT_182670a38;
  *(uint *)(lVar30 - ((ulonglong)uVar34 ^ 0xfeb09bbb)) = *puVar19 ^ uVar35 ^ uVar18;
  uVar25 = (int)(*(uint *)(lVar30 + -0x14) ^ uVar35) >> (((byte)uVar8 ^ 0x4f) & 0x1f) ^
           _DAT_182670b10;
  *(uint *)(lVar30 + -0x814) = uVar25;
  uVar9 = DAT_182670940;
  uVar26 = (uVar25 ^ _DAT_182670b10) & (*(uint *)(lVar30 + -0xaf0) ^ uVar5) ^ uVar7;
  *(uint *)(lVar30 + -0x42c) = uVar26;
  uVar25 = DAT_1826707b0;
  *(uint *)(lVar30 + -0xc0c) = *(uint *)(lVar30 + -0xaf0) ^ uVar26 ^ DAT_18267085c ^ uVar7 ^ uVar5;
  uVar10 = DAT_182670a24;
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar20 = (ulonglong)uVar4;
  *(ulonglong *)(lVar30 + -0x3b0) =
       (longlong)(int)(*(uint *)(lVar30 - (uVar20 ^ 0xffffdbd3)) ^ uVar7) ^ uVar31;
  uVar26 = DAT_1826707f4;
  uVar7 = DAT_1826707e4;
  uVar5 = DAT_1826707c4;
  lVar30 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707c4;
  uVar37 = (ulonglong)uVar17;
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar28 = (ulonglong)DAT_1826707f4;
  uVar22 = CONCAT44(uVar18,uVar18);
  uVar40 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0xffffdec7)) =
       *(longlong *)(DAT_1826707a0 + -0x1a0) + 8 +
       (CONCAT44(uVar25,DAT_1826707c4) ^ 0x7b3c2c7712d90f88) * 0x10 ^ uVar33;
  uVar44 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar30 - (uVar28 ^ 0xfffc2207)) =
       *(ulonglong *)(uVar33 ^ *(ulonglong *)(lVar30 + -0x138)) ^ uVar22 ^ uVar44;
  uVar9 = DAT_1826708d4;
  uVar28 = CONCAT44(DAT_1826707b8,uVar7);
  *(undefined1 *)(lVar30 + -0x489) = **(undefined1 **)(lVar30 + -0xae8);
  uVar42 = (ulonglong)uVar3;
  uVar38 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar30 - (uVar42 ^ 0xf523c289)) =
       uVar28 ^ *(ulonglong *)(lVar30 + -0x3b0) ^ uVar38 ^ uVar31 ^ 0xfe30dc0aab381189;
  uVar9 = DAT_182670938;
  uVar29 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar30 + -0x6b8) =
       *(ulonglong *)(lVar30 + -0xce0) ^ uVar29 |
       CONCAT44(uVar26,DAT_1826707cc) ^ 0xe4e1b6400d915a9f;
  uVar10 = DAT_182670a84;
  lVar39 = DAT_1826707a0;
  uVar38 = (*(ulonglong *)(lVar30 - ((ulonglong)uVar6 ^ 0xbcfc0e60)) ^ uVar44) &
           (*(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar38);
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar38 ^ CONCAT44(uVar9,uVar9);
  uVar31 = *(ulonglong *)((uVar41 ^ 0x67a0fdde) + lVar39) &
           (*(ulonglong *)(lVar39 + -0x3b0) ^ uVar31);
  uVar28 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(lVar39 + -0x548) = uVar31 ^ CONCAT44(uVar10,uVar10);
  uVar31 = (uVar38 | uVar31) ^ uVar28;
  *(ulonglong *)(lVar39 + -0x220) = uVar31;
  uVar12 = DAT_182670a74;
  *(ulonglong *)(uVar33 ^ *(ulonglong *)(lVar39 + -0x138)) = uVar28 ^ uVar22 ^ uVar31;
  uVar11 = DAT_182670a38;
  puVar1 = (ulonglong *)(lVar39 + -0xcf8);
  *(ulonglong *)(lVar39 + -0x6b8) =
       (CONCAT44(uVar15,uVar17) ^ 0x366b7c5d720fbf99) + (uVar44 ^ *puVar1);
  uVar31 = (ulonglong)uVar8;
  *(uint *)(lVar39 + -0x280) =
       *(uint *)(lVar39 - (uVar40 ^ 0x54c7ea5a)) ^ uVar12 ^ uVar11 ^ DAT_1826707b8 ^ 0xfe30dc0a;
  *(ulonglong *)(lVar39 + -0xd88) = CONCAT44(uVar7,uVar8) ^ 0x16329cadbc0ed636;
  uVar36 = DAT_182670a40;
  uVar26 = DAT_1826709f8;
  lVar30 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826708b4;
  uVar28 = (ulonglong)DAT_1826707b8;
  *(uint *)(lVar39 - (uVar21 ^ 0x12d90904)) =
       (*(uint *)(lVar39 - (uVar20 ^ 0xffffdd7f)) ^ uVar12) &
       (*(uint *)(lVar39 - ((ulonglong)uVar13 ^ 0x727d2ee9)) ^ uVar35) ^ DAT_182670a6c;
  *(uint *)(lVar39 - (uVar42 ^ 0xf523ca99)) =
       (*(uint *)(lVar39 - (uVar28 ^ 0x1cf27d9)) ^ uVar11) & *(uint *)(lVar39 + 0x28) ^ uVar26;
  uVar18 = DAT_182670968;
  puVar32 = (uint *)(lVar39 - ((ulonglong)uVar34 ^ 0xfeb09d23));
  uVar28 = (ulonglong)DAT_182670acc;
  *(uint *)(lVar30 - (uVar42 ^ 0xf523c455)) =
       (*(uint *)(DAT_1826707a0 + -0x598) ^ uVar26 | *puVar32 ^ DAT_182670a6c) ^ DAT_182670810;
  *(uint *)(uVar28 ^ *(ulonglong *)(lVar30 + -0x6c0)) =
       *(uint *)(lVar30 + -0xb54) ^ DAT_182670810 ^ uVar36;
  puVar19 = (uint *)(*(longlong *)(lVar30 + -0x1a0) + 4);
  *(ulonglong *)(lVar30 + -400) = (ulonglong)puVar19 ^ uVar33;
  uVar35 = *puVar19 ^ uVar18 ^ uVar36;
  *(uint *)(lVar30 + -0x43c) = uVar35;
  *(uint *)(lVar30 + -0xc04) = (uVar18 ^ uVar35) + (uVar17 ^ 0xdb9af888);
  *(uint *)(lVar30 + -0x9ec) =
       (*(uint *)(lVar30 + -0x280) ^ uVar12) & (uVar35 ^ uVar18) ^ DAT_18267084c;
  *(uint *)(lVar30 + -0x814) =
       (*(uint *)(lVar30 + -0x42c) ^ uVar11) & (uVar7 ^ 0x54c7ee72) ^ DAT_1826708f0;
  uVar11 = DAT_182670a58;
  uVar18 = DAT_182670834;
  uVar28 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar30 - ((ulonglong)uVar15 ^ 0xf523ccb1)) =
       *(ulonglong *)(CONCAT44(DAT_182670a58,DAT_182670a58) ^ *(ulonglong *)(lVar30 + -0x78)) ^
       uVar22;
  uVar9 = DAT_182670afc;
  puVar46 = (uint *)(lVar30 - ((ulonglong)DAT_1826707cc ^ 0x12d90664));
  uVar35 = (*(uint *)(lVar30 - (uVar28 ^ 0xfffc26eb)) ^ DAT_1826708f0 | *puVar46 ^ DAT_18267084c) ^
           DAT_182670a0c;
  *(uint *)(lVar30 + -0xaf0) = uVar35;
  uVar35 = uVar35 ^ DAT_182670a0c;
  *(ulonglong *)(lVar30 + -0x9e0) =
       *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar30 + -0xaa8)) ^ uVar22;
  *(uint *)(*(ulonglong *)(lVar30 + -400) ^ uVar33) = uVar35 ^ uVar36;
  lVar39 = (CONCAT44(uVar27,uVar27) ^ 0x67a0fdfe67a0fdff) * 0x10 + *(longlong *)(lVar30 + -0x1a0);
  *(ulonglong *)(lVar30 + -0x548) =
       (CONCAT44(uVar25,uVar3) ^ 0x4e118a2021e26f96) <<
       ((byte)*(undefined8 *)(lVar30 + -0xd88) & 0x3f);
  *(uint *)(lVar30 + -0x14) = *(uint *)(lVar30 + -0xc0c) ^ DAT_182670928 ^ DAT_18267085c;
  *(longlong *)(lVar30 + -0x860) = lVar39;
  *puVar1 = 0x27de8c517d6dd54f;
  *(longlong *)(lVar30 - (uVar20 ^ 0xffffd2a7)) = lVar39;
  *(uint *)(lVar30 + -0x68c) = *(uint *)(lVar30 + -0x14) ^ uVar18 ^ DAT_182670928;
  *(undefined8 *)(lVar30 + -0x1a0) = *(undefined8 *)(lVar30 + -0xd58);
  *(ulonglong *)(lVar30 + -0x6b8) =
       *(ulonglong *)(lVar30 + -0x3b0) | *(ulonglong *)(lVar30 + -0x588);
  uVar35 = DAT_182670858;
  uVar44 = (ulonglong)DAT_182670af8;
  *(ulonglong *)(lVar30 - (uVar31 ^ 0x14f67d8)) =
       *(longlong *)(lVar30 - (uVar31 ^ 0x14f65f0)) +
       (CONCAT44(uVar5,uVar24) ^ 0x12d90f880adc30fe) * 0x10 ^ uVar44;
  uVar25 = DAT_18267096c;
  uVar28 = (ulonglong)DAT_1826707b0;
  uVar36 = *(uint *)(uVar44 ^ *(ulonglong *)(lVar30 + -0x388)) ^ uVar11 ^ DAT_182670a40;
  *(uint *)(lVar30 + -0x598) = uVar36;
  uVar36 = (int)(uVar36 ^ uVar11) >> (((byte)uVar13 ^ 0xe2) & 0x1f);
  *(uint *)(lVar30 + -0x7e4) = uVar36 ^ uVar25;
  lVar39 = DAT_1826707a0;
  *(ulonglong *)(lVar30 + -0x9e0) =
       *(ulonglong *)(lVar30 - (uVar28 ^ 0x7b3c27c7)) | *(ulonglong *)(lVar30 + -0x660);
  uVar25 = (*puVar32 ^ uVar18) & uVar36 ^ uVar35;
  uVar28 = CONCAT44(DAT_1826707cc,uVar5);
  *(uint *)(lVar39 + -0xc04) = uVar25;
  uVar25 = uVar25 ^ DAT_182670af0;
  *(ulonglong *)(lVar39 + -0xd88) = (uVar28 ^ 0x1892ea3a38a7a4df) >> (((byte)uVar34 ^ 0x96) & 0x3f);
  *(uint *)(lVar39 + -0x280) = uVar25 ^ uVar35 ^ uVar18 ^ *(uint *)(lVar39 + -0x68c);
  uVar28 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar39 + -0x548) =
       -0xa91d7ee2e9eb5bf - (CONCAT44(uVar27,uVar15) ^ 0x5433ad10e4896844);
  uVar45 = CONCAT44(DAT_182670870,DAT_182670870);
  puVar23 = (ulonglong *)(*(longlong *)(lVar39 + -0x1a0) + 8);
  uVar43 = (ulonglong)(int)(*(uint *)(lVar39 - (uVar28 ^ 0x7b3c2073)) ^ uVar35);
  uVar28 = uVar43 ^ uVar45;
  *puVar1 = uVar28;
  uVar9 = DAT_182670b0c;
  uVar38 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar39 + -0xba0) = (ulonglong)puVar23 ^ uVar38;
  lVar30 = DAT_1826707a0;
  uVar41 = CONCAT44(uVar9,uVar9);
  uVar40 = *puVar23 ^ uVar41 ^ uVar22;
  uVar33 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar40;
  uVar5 = DAT_1826707cc;
  *(ulonglong *)(lVar30 + -0x3b0) =
       CONCAT44(uVar7,uVar17) ^ uVar33 ^ uVar45 ^ uVar28 ^ 0xab38118900002000;
  lVar30 = DAT_1826707a0;
  uVar28 = *(ulonglong *)(DAT_1826707a0 + 0x20);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xffffdc4f)) ^ uVar33) & (uVar41 ^ uVar40) ^ uVar38
  ;
  *(ulonglong *)(lVar30 + -0x660) =
       (CONCAT44(uVar24,DAT_1826707b8) ^ 0x336a752f6187beaa) -
       (CONCAT44(uVar6,uVar13) ^ 0x5c0d2e95deb5bd18);
  uVar33 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar30 + -0xbb0) = uVar43 & uVar28 ^ uVar33;
  uVar25 = DAT_182670a34;
  uVar28 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar30 - (uVar21 ^ 0x12d90668)) =
       (*(ulonglong *)(lVar30 - ((ulonglong)uVar5 ^ 0x12d90368)) ^ uVar29) -
       (CONCAT44(uVar3,uVar4) ^ 0x4a7fc209f316dcc1);
  lVar30 = DAT_1826707a0;
  puVar23 = (ulonglong *)(DAT_1826707a0 + -0xba0);
  uVar29 = uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0) |
           uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar29 ^ uVar28;
  uVar18 = DAT_1826708d0;
  *(ulonglong *)(uVar38 ^ *puVar23) = uVar29 ^ uVar22;
  uVar28 = (ulonglong)DAT_1826707b8;
  *(uint *)(DAT_1826707a0 - (uVar31 ^ 0x14f606c)) =
       *(uint *)(lVar30 - ((ulonglong)uVar5 ^ 0x12d9038c)) ^ uVar18 ^ uVar35 ^ DAT_1826707c8 ^
       0xadc30fe;
  lVar30 = DAT_1826707a0;
  puVar32 = (uint *)(DAT_1826707a0 + -0xc04);
  puVar19 = (uint *)(DAT_1826707a0 + 0x28);
  *(uint *)(DAT_1826707a0 + -0x42c) =
       (*(uint *)(DAT_1826707a0 - (uVar28 ^ 0x1cf266d)) ^ uVar11) &
       (*(uint *)(DAT_1826707a0 + -0x43c) ^ uVar18) ^ uVar25;
  *(uint *)(lVar30 - ((ulonglong)uVar34 ^ 0xfeb093bb)) = (*puVar32 ^ uVar35) & *puVar19 ^ uVar26;
  uVar29 = (ulonglong)DAT_182670a70;
  *(uint *)(lVar30 + -0x9ec) =
       (*(uint *)(lVar30 + -0x42c) ^ uVar25 | uVar26 ^ *(uint *)(lVar30 + -0x814)) ^ DAT_18267088c;
  uVar25 = DAT_182670a40;
  *(uint *)(uVar44 ^ *(ulonglong *)(lVar30 + -0x388)) = *puVar46 ^ DAT_18267088c ^ DAT_182670a40;
  *(ulonglong *)(lVar30 + -0x548) =
       (CONCAT44(uVar3,uVar7) ^ 0x93b288249ef69752) >> (((byte)uVar34 ^ 0x86) & 0x3f);
  uVar3 = DAT_1826707b0;
  uVar28 = (ulonglong)DAT_1826707f4;
  uVar33 = (ulonglong)DAT_1826707b0;
  puVar19 = (uint *)((CONCAT44(uVar24,uVar34) ^ 0xadc30fefeb09baf) * 0x10 +
                    *(longlong *)(lVar30 + -0x1a0) + 4);
  *(ulonglong *)(lVar30 + -0x590) = (ulonglong)puVar19 ^ uVar29;
  *(uint *)(lVar30 - (uVar37 ^ 0xffffd3f3)) = *puVar19 ^ DAT_18267095c ^ uVar25;
  uVar5 = DAT_1826707b8;
  lVar39 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_1826707b8;
  *(uint *)(DAT_1826707a0 - (uVar38 ^ 0x1cf23e1)) =
       (*(uint *)(lVar30 + -0xc0c) ^ DAT_18267095c) & (*(uint *)(lVar30 + -0x43c) ^ uVar18) ^
       DAT_1826707fc;
  uVar18 = *(uint *)(lVar39 + -0x14) ^ DAT_1826707fc;
  uVar35 = (*(uint *)(lVar39 + -0xc04) ^ uVar35) & (DAT_1826707c4 ^ 0x12d90f8c) ^ DAT_182670920;
  *(uint *)(lVar39 + -0x7e4) = uVar35;
  uVar26 = DAT_182670908 ^ uVar25;
  *(uint *)(lVar39 - (uVar28 ^ 0xfffc2873)) = (uVar18 | uVar35 ^ DAT_182670920) ^ DAT_182670908;
  *(uint *)(*(ulonglong *)(lVar39 - (uVar20 ^ 0xffffda6f)) ^ uVar29) =
       uVar26 ^ *(uint *)(lVar39 + -0x68c);
  lVar2 = DAT_1826707a0;
  lVar30 = (CONCAT44(uVar6,uVar15) ^ 0xbcfc0298f523cf00) * 0x10 +
           *(longlong *)(lVar39 - (uVar33 ^ 0x7b3c2dd7));
  uVar15 = DAT_182670ab8 ^ *(uint *)(DAT_1826707a0 + -0x280) ^ DAT_182670af0;
  *(longlong *)(DAT_1826707a0 + -0x860) = lVar30;
  *(uint *)(lVar2 + -0x42c) = uVar15;
  uVar18 = DAT_1826709e8;
  uVar15 = DAT_1826707cc;
  uVar20 = (ulonglong)DAT_1826707cc;
  *(longlong *)(lVar2 + -0xd58) = lVar30;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0xf523c761)) = CONCAT44(uVar27,uVar8) ^ 0x6f837625edf82f95;
  *(uint *)(lVar2 + -0x814) =
       *(uint *)(lVar2 - ((ulonglong)uVar24 ^ 0xadc34d2)) ^ uVar18 ^ DAT_182670ab8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0x7b3c2a17)) =
       CONCAT44(uVar13,uVar15) ^ 0xc972960af6595906 | CONCAT44(uVar6,uVar27) ^ 0x455b7148f9b594c3;
  lVar30 = *(longlong *)(lVar2 - (uVar31 ^ 0x14f6908));
  *(longlong *)(lVar2 + -0x1a0) = lVar30;
  uVar28 = (ulonglong)DAT_182670af4;
  *(ulonglong *)(lVar2 + -0xd58) = CONCAT44(uVar7,uVar5) ^ 0x360f1b8314f3b8c4;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x7b3c27a7)) =
       (CONCAT44(uVar27,uVar8) ^ 0x67a0fdfe014f6450) * 0x10 + lVar30 ^ uVar28;
  uVar15 = DAT_182670a94;
  uVar25 = *(uint *)(*(ulonglong *)(lVar2 + -0xbd0) ^ uVar28) ^ DAT_182670a8c ^ uVar25;
  *(uint *)(lVar2 + -0x8e0) = uVar25;
  uVar3 = DAT_18267082c;
  uVar27 = (int)(uVar25 ^ DAT_182670a8c) >> ((byte)uVar17 & 0x1f);
  *(uint *)(lVar2 + -0xc0c) = uVar27 ^ uVar15;
  *(uint *)(lVar2 + -0x43c) = uVar27 & (uVar18 ^ *(uint *)(lVar2 + -0x814)) ^ uVar3;
  uVar29 = CONCAT44(DAT_182670824,DAT_182670824);
  lVar30 = *(longlong *)(lVar2 + -0x1a0);
  uVar28 = CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar42 = (longlong)(int)(*(uint *)(lVar2 - (uVar37 ^ 0xffffdbc3)) ^ uVar3) ^ uVar29;
  *puVar1 = uVar42;
  uVar9 = DAT_1826708f4;
  puVar23 = (ulonglong *)(lVar30 + 8 + (CONCAT44(uVar24,uVar13) ^ 0xadc30fe727d2efd) * 0x10);
  *(ulonglong *)(lVar2 + -0x378) = (ulonglong)puVar23 ^ uVar28;
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar22 = *puVar23 ^ uVar31 ^ uVar22;
  uVar28 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar22;
  uVar10 = DAT_182670a30;
  uVar9 = DAT_1826708e4;
  *(ulonglong *)(lVar2 + -0x6b8) =
       CONCAT44(uVar4,uVar34) ^ uVar28 ^ uVar29 ^ uVar42 ^ 0x2000014f6450;
  uVar22 = (*(ulonglong *)(lVar2 - (uVar38 ^ 0x1cf254d)) ^ uVar28) & (uVar31 ^ uVar22);
  uVar31 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar22 ^ CONCAT44(uVar10,uVar10);
  uVar28 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0x12d90370)) ^ uVar29) & *(ulonglong *)(lVar2 + 0x20);
  *(ulonglong *)(lVar2 + -0x548) = uVar28 ^ uVar31;
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar22 | uVar28) ^ CONCAT44(uVar9,uVar9);
  *puVar1 = 0xd30920611bae2185 - *(longlong *)(lVar2 - (uVar21 ^ 0x12d909e8));
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar16 ^ uVar17;
  return;
}



############ FUN_ 180c89d80 size=4026 ############

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

void FUN_180c89d80(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  byte bVar11;
  byte bVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte bVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte *pbVar24;
  uint *puVar25;
  uint uVar26;
  longlong *plVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  uint uVar40;
  uint *puVar41;
  
  bVar12 = (byte)DAT_182670960;
  uVar22 = DAT_1826707b4;
  uVar19 = DAT_1826707b0;
  uVar34 = DAT_1826707a8;
  lVar5 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707a8;
  uVar30 = (ulonglong)DAT_1826707b0;
  uVar29 = (ulonglong)DAT_1826707b4;
  uVar40 = DAT_1826707b0 & DAT_1826707b4;
  uVar26 = (DAT_1826707a8 << 0x10 | DAT_1826707a8 & 0xff00) << 8 | DAT_1826707a8 >> 8 & 0xff00 |
           DAT_1826707a8 >> 0x18;
  uVar4 = *(uint *)(&DAT_18260f758 + DAT_182670d64);
  uVar13 = *(uint *)(&DAT_18260f750 + (uVar30 ^ 0x574761fb) + (longlong)DAT_182670d64) ^
           DAT_1826707a8;
  uVar31 = (ulonglong)DAT_1826707a8;
  puVar1 = (uint *)(DAT_1826707a0 + -0x2d4);
  uVar36 = *puVar1 ^ DAT_1826708e8 ^ DAT_182670834;
  uVar32 = *(uint *)(DAT_1826707a0 + -0x814) ^ DAT_182670aa0 ^ DAT_182670aac;
  uVar14 = CONCAT44(DAT_1826707b4,DAT_1826707a8);
  bVar11 = (byte)DAT_1826707a8;
  DAT_1826707c0 = uVar40;
  DAT_1826707f4 = uVar26;
  *(uint *)(DAT_1826707a0 + -0x280) = uVar36;
  *(uint *)(lVar5 + -0x43c) = uVar32;
  lVar6 = DAT_1826707a0;
  uVar32 = uVar32 ^ DAT_18267090c ^ DAT_182670aa0;
  uVar20 = (ulonglong)uVar40;
  *(ulonglong *)(lVar5 + -0x660) =
       (CONCAT44(uVar34,uVar40) ^ 0xeddc8e5aad28dd8c) >> ((bVar11 ^ 0xff) & 0x3f);
  uVar37 = DAT_182670ac4;
  *(uint *)(lVar6 + -0x14) = uVar36 ^ DAT_182670ac4 ^ DAT_1826708e8;
  lVar5 = DAT_1826707a0;
  uVar39 = (ulonglong)uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar26 ^ 0xcacabbbf)) ^ CONCAT44(uVar22,uVar40) ^
       0xf9ac3c12681e82cd;
  *(uint *)(lVar5 + -0x7e4) = uVar32;
  uVar28 = (ulonglong)DAT_182670b0c;
  pbVar24 = (byte *)((CONCAT44(uVar40,uVar22) ^ 0x40046181681cff91) * 0x20 + 0x10 +
                    *(longlong *)(lVar5 - ((ulonglong)uVar26 ^ 0xcacabf8f)));
  uVar15 = CONCAT44(uVar19,uVar34);
  *(ulonglong *)(lVar5 + -0x68) = (uVar15 ^ 0x8f18b4bfacb16dad) + *(longlong *)(lVar5 + -0x4c8);
  *(ulonglong *)(lVar5 + -0x270) = (ulonglong)pbVar24 ^ uVar28;
  uVar36 = DAT_1826708a8;
  lVar6 = DAT_1826707a0;
  bVar16 = (byte)uVar40 ^ 0x90;
  *(byte *)(lVar5 - (uVar30 ^ 0x57476dde)) = *pbVar24 ^ bVar12 ^ (byte)DAT_182670adc;
  *(uint *)(lVar5 - (uVar31 ^ 0xbfbfc952)) = (*(byte *)(lVar5 + -0xc35) ^ bVar12) ^ uVar36;
  uVar33 = (*(uint *)(lVar5 + -0x7e4) ^ DAT_18267090c) + (uVar26 ^ 0x1eef29c) ^ DAT_1826709d8;
  *(uint *)(lVar5 + -0x3d4) = uVar33;
  plVar27 = (longlong *)(lVar5 + -0x5c0);
  uVar33 = uVar33 ^ DAT_1826709d8;
  *plVar27 = -0x1be82d13df89697;
  uVar32 = (*(uint *)(lVar6 - (uVar39 ^ 0xcacabc27)) ^ uVar36) << (bVar16 & 0x1f) ^ DAT_182670a24;
  *(uint *)(lVar6 + -0x540) = uVar32;
  *(uint *)(lVar6 - (uVar23 ^ 0xbfbfc6fe)) = uVar33 - (uVar32 ^ DAT_182670a24) ^ DAT_182670a88;
  *(uint *)(lVar6 - (uVar30 ^ 0x574760ab)) =
       (*(uint *)(lVar6 - (uVar29 ^ 0x681cf3a5)) ^ DAT_182670a88) *
       (*(uint *)(lVar6 + -0x14) ^ uVar37) ^ DAT_182670930;
  uVar32 = DAT_182670818;
  uVar36 = (uVar36 ^ *(uint *)(lVar6 + -0x398)) * (uVar40 ^ 0x40046191) ^ DAT_1826708ac;
  *(uint *)(lVar6 + -0xa34) = uVar36;
  uVar35 = (*(uint *)(lVar6 + -0x140) ^ DAT_182670930) + (uVar36 ^ DAT_1826708ac);
  bVar17 = (byte)DAT_1826707b0 ^ 0xe6;
  uVar36 = DAT_182670a28 ^ _DAT_1826708f8;
  uVar33 = uVar35 << (bVar17 & 0x1f) ^ DAT_1826708a4;
  *(uint *)(lVar6 + -0xc04) = uVar35 ^ uVar32;
  puVar2 = (uint *)(lVar6 + -0x9ec);
  *puVar2 = uVar33;
  uVar33 = uVar33 ^ DAT_1826708a4;
  *(uint *)(lVar6 + -0x8e0) = uVar35 >> (((byte)(uVar34 >> 0x18) ^ 0xac) & 0x1f) ^ DAT_1826709cc;
  uVar32 = *(uint *)(lVar6 + -0xb54) ^ DAT_182670848;
  uVar35 = (*(uint *)(lVar6 - ((ulonglong)uVar22 ^ 0x681cf771)) ^ DAT_1826709cc | uVar33) ^
           _DAT_1826708f8;
  uVar36 = uVar36 ^ uVar35;
  *(uint *)(lVar6 + -0x68c) = uVar36;
  uVar8 = DAT_182670ab8;
  uVar33 = (*(uint *)(lVar6 + -0x14) ^ uVar37) + uVar32 ^ _DAT_18267097c;
  uVar32 = uVar36 ^ DAT_182670864 ^ DAT_182670a28;
  uVar28 = (ulonglong)DAT_182670ab8;
  *(longlong *)(lVar6 + -0xa18) = *plVar27 + *(longlong *)(lVar6 + -0x588);
  *(longlong *)(lVar6 + -0xce0) = 0x1f8dc022753d00a2 - *(longlong *)(lVar6 + -0x660);
  *(uint *)(lVar6 + -0xc0c) = uVar33;
  uVar36 = uVar33 ^ DAT_18267083c ^ _DAT_18267097c;
  *(ulonglong *)(lVar6 + -0xdb8) = *(longlong *)(lVar6 + -0x30) + 0x1bU ^ uVar28;
  *(uint *)(lVar6 + -0x814) = uVar32;
  *(uint *)(lVar6 + -0x42c) = uVar36;
  *(uint *)(lVar6 + -0x598) = uVar35;
  uVar38 = DAT_182670968;
  *puVar1 = uVar36 ^ DAT_182670968 ^ DAT_18267083c;
  *(longlong *)(lVar6 - (uVar20 ^ 0x40046039)) =
       *(longlong *)(lVar6 - (uVar23 ^ 0xbfbfcbd2)) << (((byte)uVar19 ^ 0xd4) & 0x3f);
  uVar32 = DAT_182670a94;
  bVar12 = (byte)DAT_182670924;
  bVar18 = *(byte *)(uVar28 ^ *(ulonglong *)(lVar6 + -0xdb8)) ^ (byte)DAT_182670924 ^
           (byte)DAT_182670adc;
  *(byte *)(lVar6 + -0xc35) = bVar18;
  *(uint *)(lVar6 + -0x280) = (bVar18 ^ bVar12) ^ uVar32;
  uVar36 = *(uint *)(lVar6 + -0x814) ^ DAT_182670864;
  *(ulonglong *)(lVar6 + -0x410) =
       (CONCAT44(uVar19,uVar40) ^ 0x51d26dfb0db22061) - *(longlong *)(lVar6 - (uVar30 ^ 0x5747671b))
  ;
  *(uint *)(lVar6 - ((ulonglong)uVar22 ^ 0x681cfbad)) =
       uVar36 + (DAT_1826707a8 ^ 0x749b87e9) ^ DAT_182670af8;
  *(uint *)(lVar6 + -0x7e4) =
       (*(uint *)(lVar6 + -0x280) ^ uVar32) << ((byte)uVar22 & 0x1f) ^ DAT_182670a34;
  puVar25 = (uint *)(lVar6 - (uVar23 ^ 0xbfbfcef6));
  uVar21 = (*puVar25 ^ DAT_182670af8) - (*(uint *)(lVar6 - (uVar20 ^ 0x40046665)) ^ DAT_182670a34) ^
           DAT_182670990;
  uVar36 = DAT_1826707b0 ^ 0x347fbce7;
  *(uint *)(lVar6 + -0x3d4) = uVar21;
  uVar21 = uVar21 ^ DAT_182670990;
  *(uint *)(lVar6 + -0x540) = uVar22 ^ 0x70808217 | uVar36;
  uVar35 = DAT_182670950;
  uVar21 = uVar21 * (*puVar1 ^ uVar38);
  uVar36 = (*(uint *)(lVar6 + -0x280) ^ uVar32) * 0x1b;
  *(uint *)(lVar6 + -0xc34) = uVar21 ^ DAT_182670950;
  *(uint *)(lVar6 + -0x398) = uVar36 ^ uVar37;
  uVar10 = DAT_182670af0;
  uVar33 = DAT_182670934;
  uVar37 = DAT_18267092c;
  uVar32 = DAT_1826708d8;
  uVar36 = uVar36 + uVar21;
  bVar18 = (byte)uVar40 ^ 0x8c;
  *(uint *)(lVar6 + -0x140) = uVar36 ^ DAT_1826708d8;
  *(uint *)(lVar6 + -0xa34) = uVar36 << (bVar18 & 0x1f) ^ DAT_182670984;
  uVar36 = DAT_1826708dc;
  *(uint *)(lVar6 - ((ulonglong)uVar22 ^ 0x681cf395)) =
       (*(uint *)(lVar6 - (uVar39 ^ 0xcacabeff)) ^ uVar32) >> 0x13 ^ DAT_1826709e4;
  uVar32 = (*(uint *)(lVar6 + -0xc04) ^ DAT_1826709e4 | *(uint *)(lVar6 + -0xa34) ^ DAT_182670984) ^
           uVar10;
  *puVar2 = uVar32;
  uVar21 = uVar32 ^ uVar33 ^ uVar10;
  *(undefined8 *)(lVar6 + -0x658) = *(undefined8 *)(lVar6 + -0x410);
  uVar37 = uVar37 ^ uVar33 ^ uVar21;
  uVar32 = (*puVar1 ^ uVar38) + (*(uint *)(lVar6 + -0xb54) ^ DAT_182670848) ^ DAT_182670828;
  *(uint *)(lVar6 + -0x8e0) = uVar32;
  uVar32 = uVar32 ^ uVar36 ^ DAT_182670828;
  *(uint *)(lVar6 + -0x14) = uVar32;
  *(uint *)(lVar6 + -0x598) = uVar36 ^ uVar8 ^ uVar32;
  *(uint *)(lVar6 + -0xc0c) = uVar21;
  uVar31 = (ulonglong)DAT_182670acc;
  pbVar24 = (byte *)(*(longlong *)(lVar6 + -0x30) + 6 + (uVar15 ^ 0x574761ebbfbfcaca) * 0x20);
  *(uint *)(lVar6 + -0x42c) = uVar37;
  *(ulonglong *)(lVar6 + -0x2e8) = (ulonglong)pbVar24 ^ uVar31;
  *(ulonglong *)(lVar6 + -0x2b0) =
       (CONCAT44(uVar22,uVar22) ^ 0x8f122eecd0496de4) + (uVar15 ^ 0xe3f0e84c65868d76);
  uVar36 = DAT_182670940;
  uVar38 = (uVar37 ^ DAT_18267092c) + (uVar26 ^ 0x1eef29c) ^ DAT_182670b08;
  bVar12 = *pbVar24 ^ (byte)DAT_182670908 ^ (byte)DAT_182670adc;
  uVar32 = (uint)((byte)DAT_182670908 ^ bVar12);
  uVar37 = uVar32 ^ DAT_182670940;
  *(byte *)(lVar6 + -0xc35) = bVar12;
  *(uint *)(lVar6 + -0x68c) = uVar37;
  *(uint *)(lVar6 + -0x814) = uVar38;
  *(uint *)(lVar6 - (uVar39 ^ 0xcacabb83)) = uVar32 << (bVar16 & 0x1f) ^ DAT_182670978;
  uVar15 = *(ulonglong *)(lVar6 - (uVar23 ^ 0xbfbfcf92));
  uVar38 = (*(uint *)(lVar6 + -0x814) ^ DAT_182670b08) - (*(uint *)(lVar6 + -0x43c) ^ DAT_182670978)
           ^ DAT_182670ab0;
  *(uint *)(lVar6 + -0x7e4) = uVar38;
  uVar38 = uVar38 ^ DAT_182670ab0;
  *(ulonglong *)(lVar6 + -0x220) = uVar15 >> ((bVar11 ^ 0xe5) & 0x3f);
  *(byte *)(lVar6 + -0xc35) =
       *(byte *)(uVar28 ^ *(ulonglong *)(lVar6 + -0xdb8)) ^ (byte)DAT_182670adc;
  puVar41 = (uint *)(lVar6 - (uVar29 ^ 0x681cfa09));
  uVar32 = *puVar41;
  *(ulonglong *)(lVar6 + -0x610) =
       (CONCAT44(uVar19,uVar40) ^ 0x84fe33011d76219) + *(longlong *)(lVar6 + -0x9e0);
  uVar38 = (uVar32 ^ uVar8) * uVar38;
  *(uint *)(lVar6 + -0x540) = uVar38 ^ uVar35;
  uVar32 = (*(uint *)(lVar6 - (uVar29 ^ 0x681cf91d)) ^ uVar36) * 6 ^ DAT_1826708f4;
  *(uint *)(lVar6 + -0x3d4) = uVar32;
  uVar35 = DAT_182670ae0;
  uVar37 = _DAT_1826709e0;
  uVar36 = DAT_182670820;
  lVar5 = DAT_1826707a0;
  uVar32 = (uVar32 ^ DAT_1826708f4) + uVar38 ^ _DAT_1826709e0;
  *(longlong *)(lVar6 + -0x890) =
       *(longlong *)(lVar6 - (uVar39 ^ 0xcacabae7)) - (uVar14 ^ 0x59c485e66c69a7a6);
  *(uint *)(lVar5 - (uVar39 ^ 0xcacabd3f)) = uVar32;
  uVar32 = DAT_1826707a8;
  *(uint *)(lVar5 + -0xc34) =
       (*(uint *)(lVar5 + -0x280) ^ uVar37) << (bVar18 & 0x1f) ^ DAT_182670a20;
  uVar38 = DAT_1826707b0 ^ 0x135e3ed3;
  *(uint *)(lVar5 - (uVar29 ^ 0x681cfc09)) =
       (*(uint *)(lVar5 + -0x280) ^ uVar37) >> (((byte)uVar32 ^ 0xd9) & 0x1f) ^ uVar36;
  uVar15 = (ulonglong)DAT_182670858;
  uVar36 = (uVar36 ^ *(uint *)(lVar5 + -0x398) | *(uint *)(lVar5 + -0xc34) ^ DAT_182670a20) ^ uVar35
  ;
  uVar32 = *(uint *)(lVar5 + -0xcec) ^ DAT_18267089c;
  *(uint *)(lVar5 + -0x140) = uVar36;
  uVar36 = uVar36 ^ DAT_182670a90;
  *(uint *)(lVar5 + -0xa34) = uVar32 + uVar38 ^ uVar10;
  puVar3 = (uint *)(*(longlong *)(lVar5 - (uVar20 ^ 0x400467b9)) +
                   (CONCAT44(uVar26,uVar22) ^ 0xcacabfbf681cff91) * 4);
  *(ulonglong *)(lVar5 + -0x2c8) = (ulonglong)puVar3 ^ uVar15;
  *puVar3 = uVar36 ^ uVar35;
  bVar11 = (byte)DAT_182670adc;
  *(uint *)(lVar5 - (uVar39 ^ 0xcacab3bb)) = *(uint *)(lVar5 + -0xa34) ^ DAT_182670b00 ^ uVar10;
  uVar32 = DAT_1826707dc;
  uVar14 = (ulonglong)DAT_1826707dc;
  *(byte *)(lVar5 - (uVar39 ^ 0xcacab38a)) =
       *(byte *)(uVar28 ^ *(ulonglong *)(lVar5 + -0xdb8)) ^ bVar11;
  uVar22 = DAT_182670ad0 ^ *(uint *)(lVar5 + -0xc04) ^ DAT_182670b00;
  *puVar1 = *(uint *)(lVar5 + -0x140) ^ DAT_182670884 ^ uVar35;
  *(uint *)(lVar5 - (uVar39 ^ 0xcacab75f)) = uVar22;
  uVar36 = DAT_182670a8c;
  *puVar2 = *puVar1 ^ DAT_182670af4 ^ DAT_182670884;
  *(ulonglong *)(lVar5 + -0x9c8) =
       (CONCAT44(DAT_1826707cc,uVar34) ^ 0x91fff65f07c04a0d) + 0x85c3b3840bfc33ec;
  *(uint *)(lVar5 + -0x14) =
       *(uint *)(lVar5 - (uVar30 ^ 0x5747690b)) ^ DAT_182670928 ^ DAT_182670ad0;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar5 - (uVar39 ^ 0xcacabaf7)) =
       *(ulonglong *)(lVar5 + -0x410) | 0xb2000e2a875bcb53;
  uVar15 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar5 + -0xc0c) = uVar36 ^ DAT_182670af4 ^ *puVar2;
  uVar35 = DAT_182670ab4;
  *(uint *)(lVar7 + -0x42c) = *(uint *)(lVar5 + -0x14) ^ DAT_182670ab4 ^ DAT_182670928;
  *(uint *)(lVar7 - (uVar14 ^ 0x80420c54)) =
       *(uint *)(lVar7 - (uVar15 ^ 0xc5b6df25)) ^ uVar36 ^ uVar33;
  bVar12 = (byte)DAT_182670a78;
  uVar22 = DAT_182670964;
  pbVar24 = (byte *)((CONCAT44(uVar40,uVar19) ^ 0x40046181574761eb) * 0x20 +
                     (CONCAT44(uVar26,uVar19) ^ 0xcacabfbf574761fa) + *(longlong *)(lVar7 + -0x30));
  *(ulonglong *)(lVar7 + -0x2e8) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182670ad8;
  *(byte *)(lVar7 + -0xc35) = *pbVar24 ^ bVar12 ^ bVar11;
  uVar15 = (ulonglong)DAT_1826707bc;
  *(byte *)(lVar7 - (uVar20 ^ 0x40046798)) =
       *(byte *)((ulonglong)DAT_182670b0c ^ *(ulonglong *)(lVar7 + -0x270)) ^ bVar11;
  uVar19 = DAT_1826707e8;
  *(uint *)(lVar7 + -0x43c) = (*(byte *)(lVar7 - (uVar15 ^ 0x1a6cc3d)) ^ bVar12) ^ uVar36;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar19 ^ 0xcacabbbf)) =
       *(ulonglong *)(lVar7 - (uVar20 ^ 0x40046af1)) ^ CONCAT44(uVar32,uVar34) ^ 0x28be64b0ad9105cc;
  uVar9 = DAT_182670ae4;
  uVar32 = DAT_1826708d8;
  *(uint *)(lVar7 + -0x598) =
       (*(uint *)(lVar7 - (uVar23 ^ 0xbfbfc2de)) ^ uVar33) + (uVar19 ^ 0x1eef29c) ^ DAT_182670a6c;
  *(ulonglong *)(lVar7 + -0x4c8) =
       *(ulonglong *)(CONCAT44(uVar32,uVar32) ^ *(ulonglong *)(lVar7 + -0xbe8)) ^
       CONCAT44(uVar9,uVar9);
  uVar19 = (*(uint *)(lVar7 + -0x43c) ^ uVar36) << 0x11 ^ DAT_18267083c;
  *(uint *)(lVar7 + -0x7e4) = uVar19;
  uVar32 = DAT_182670918;
  uVar33 = (*puVar41 ^ DAT_182670a6c) - (uVar19 ^ DAT_18267083c);
  uVar15 = (ulonglong)DAT_1826707b8;
  *(uint *)(lVar7 + -0x68c) = uVar33 ^ uVar22;
  uVar33 = uVar33 * (uVar35 ^ *(uint *)(lVar7 + -0x42c));
  *(uint *)(lVar7 + -0x540) = uVar33 ^ uVar32;
  uVar19 = DAT_182670860;
  uVar32 = DAT_1826707e0;
  *(uint *)(lVar7 + -0x3d4) = (uVar36 ^ *puVar25) * (DAT_1826707e0 ^ 0x8fc902a7) ^ DAT_1826708a0;
  uVar22 = DAT_1826708c0;
  uVar33 = (*(uint *)(lVar7 - (uVar15 ^ 0x22a043fd)) ^ DAT_1826708a0) + uVar33;
  *(uint *)(lVar7 + -0x280) = uVar33 ^ uVar19;
  uVar36 = uVar33 << (bVar17 & 0x1f) ^ DAT_182670a94;
  *(uint *)(lVar7 + -0xc34) = uVar36;
  uVar36 = uVar36 ^ DAT_182670a94;
  uVar15 = (ulonglong)DAT_1826707f0;
  uVar19 = (*(uint *)(lVar7 - (uVar30 ^ 0x5747636b)) ^ uVar19) >> 0x13;
  uVar14 = CONCAT44(DAT_1826707ac,uVar34);
  *(uint *)(lVar7 + -0x398) = uVar19 ^ uVar22;
  uVar34 = (uVar19 | uVar36) ^ DAT_182670a4c;
  bVar12 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar7 + -0x68) =
       (uVar14 ^ 0x898fdaf0b2fc5a55) <<
       ((byte)*(undefined8 *)(lVar7 - (uVar15 ^ 0xe273a675)) & 0x3f);
  uVar15 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar7 + -0x588) = *(ulonglong *)(lVar7 + -0xf0) >> ((bVar12 ^ 0x9e) & 0x3f);
  *(uint *)(lVar7 + -0xa34) = uVar34;
  *(uint *)(lVar7 + -0xc04) =
       (*(uint *)(lVar7 - (uVar15 ^ 0x5b13f0bf)) ^ uVar35) +
       (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) ^ DAT_182670830;
  uVar34 = uVar34 ^ DAT_182670a4c;
  uVar15 = CONCAT44(DAT_1826707c8,uVar32);
  *puVar1 = *(uint *)(lVar7 - (uVar20 ^ 0x40046d85)) ^ DAT_18267081c ^ DAT_182670830;
  *plVar27 = (uVar15 ^ 0x14427b8dcb63ced9) - *(longlong *)(lVar6 + -0x890);
  *puVar2 = uVar34 ^ uVar37;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar4 ^ uVar26;
  return;
}



############ FUN_ 180ce9330 size=5357 ############

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

void FUN_180ce9330(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  ulonglong *puVar7;
  ulonglong *puVar8;
  ulonglong *puVar9;
  uint uVar10;
  longlong lVar11;
  longlong lVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  uint uVar24;
  uint uVar25;
  byte bVar26;
  ulonglong *puVar27;
  byte bVar28;
  ulonglong *puVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  
  uVar13 = DAT_1826707a8;
  lVar11 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707a8;
  uVar30 = DAT_1826707a8 << 0x10 | DAT_1826707a8 >> 0x10;
  uVar47 = (ulonglong)uVar30;
  uVar10 = *(uint *)(&DAT_18260f758 + DAT_182670b94);
  uVar25 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar30 ^ 0x28ba7eca) + (longlong)DAT_182670b94) ^
           DAT_1826707a8;
  uVar33 = (ulonglong)DAT_1826707a8;
  bVar28 = (byte)DAT_1826707a8;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x220);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x5c0);
  DAT_1826707ac = uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = 0x8f6bc536aede7ee2 >> ((bVar28 ^ 0x8f) & 0x3f);
  uVar32 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  uVar34 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar31 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *puVar1 = (*(ulonglong *)(lVar11 - ((ulonglong)uVar30 ^ 0x28ba7ae2)) ^ uVar32) -
            (*(ulonglong *)(lVar11 + -0x6f0) ^ uVar34) ^ uVar31;
  puVar3 = (ulonglong *)(lVar11 + -0x588);
  *(ulonglong *)(lVar11 + -0xc18) =
       **(ulonglong **)(lVar11 - ((ulonglong)uVar30 ^ 0x28ba7a3a)) ^
       CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar39 = CONCAT44(DAT_182670904,DAT_182670904);
  bVar26 = (byte)(uVar13 >> 0x10);
  puVar4 = (ulonglong *)(lVar11 + -0x4c8);
  uVar42 = CONCAT44(DAT_182670968,DAT_182670968);
  uVar37 = *(ulonglong *)(lVar11 - (uVar33 ^ 0x7eda2e4a)) ^ uVar39 ^ uVar34 ^ uVar32 ^
           *(ulonglong *)(lVar11 + -0x660);
  *puVar3 = (*puVar4 ^ uVar42) >> ((bVar26 ^ 0xcf) & 0x3f);
  *puVar2 = uVar37;
  uVar15 = DAT_1826707c8;
  puVar5 = (ulonglong *)(lVar11 + -0x6b8);
  uVar35 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *puVar5 = (uVar39 ^ uVar37) >> ((bVar28 ^ 0xb4) & 0x3f) ^ uVar35;
  uVar34 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar11 - ((ulonglong)uVar30 ^ 0x28ba7ada)) = (uVar39 ^ uVar37) << 0x32 ^ uVar34;
  puVar27 = (ulonglong *)(lVar11 - ((ulonglong)uVar13 ^ 0x7eda2cba));
  puVar43 = (ulonglong *)(lVar11 - (uVar33 ^ 0x7eda2e02));
  *(ulonglong *)(lVar11 + -0x7d8) = (*puVar27 ^ uVar34 | uVar35 ^ *puVar43) ^ uVar42;
  *(uint *)(lVar11 - (uVar47 ^ 0x28ba7d42)) = (uVar30 ^ 0x16947fea) + *(int *)(lVar11 + -0x3d4);
  uVar34 = (uVar32 ^ *(ulonglong *)(lVar11 + -0x660)) -
           (CONCAT44(uVar15,uVar30) ^ 0xdea963d550509f51);
  puVar6 = (ulonglong *)(lVar11 + -0xce0);
  *puVar6 = uVar34 ^ CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar32 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(lVar11 - ((ulonglong)uVar13 ^ 0x7eda2c9a)) =
       uVar34 - (*(ulonglong *)(lVar11 + -0x7d8) ^ uVar42) ^ uVar32;
  lVar11 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707d8;
  uVar45 = CONCAT44(DAT_182670a10,DAT_182670a10);
  puVar7 = (ulonglong *)(DAT_1826707a0 + -0x438);
  uVar34 = (ulonglong)DAT_1826707d8;
  *puVar7 = (*(ulonglong *)(DAT_1826707a0 + -0x7d8) ^ uVar42) -
            (CONCAT44(DAT_1826707d8,DAT_1826707d8) ^ 0x8de463d9b947e38d) ^ uVar45;
  uVar37 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar38 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar11 - ((ulonglong)uVar13 ^ 0x7eda24a2)) =
       *(ulonglong *)(lVar11 - (uVar34 ^ 0xcecf5133)) ^ uVar38 ^ uVar37 ^ uVar31 ^ *puVar1;
  uVar35 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(lVar11 + -0x6f0) =
       (uVar37 ^ *(ulonglong *)(lVar11 + -0xc18)) >> (((byte)uVar15 ^ 0xde) & 0x3f) ^ uVar35;
  uVar22 = DAT_1826708a0;
  uVar18 = DAT_182670824;
  uVar34 = CONCAT44(DAT_182670824,DAT_182670824);
  puVar29 = (ulonglong *)(lVar11 - (uVar33 ^ 0xcecf5873));
  *puVar29 = (uVar37 ^ *(ulonglong *)(lVar11 + -0xc18)) << ((bVar28 ^ 0x8a) & 0x3f) ^ uVar34;
  uVar14 = DAT_1826707b8;
  uVar40 = CONCAT44(uVar22,uVar22);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0x7eda2d32)) =
       (*(ulonglong *)(lVar11 - ((ulonglong)uVar15 ^ 0xbb5cc93e)) ^ uVar35 | uVar34 ^ *puVar4) ^
       uVar40;
  uVar23 = DAT_182670a88;
  lVar11 = DAT_1826707a0;
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 + -0x6f0) ^ uVar35) >>
            (((byte)uVar18 ^ *(byte *)puVar4) & 0x3f);
  uVar18 = DAT_182670804;
  uVar34 = CONCAT44(uVar23,uVar23);
  puVar8 = (ulonglong *)(lVar11 + -0x400);
  *puVar5 = (uVar31 ^ *puVar1) - (CONCAT44(uVar14,uVar13) ^ 0x5dc9b0f5db310f7) ^ uVar34;
  uVar23 = DAT_182670ac8;
  uVar16 = DAT_1826707f4;
  uVar24 = DAT_1826707f0;
  uVar37 = CONCAT44(uVar18,uVar18);
  uVar33 = (*(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707cc ^ 0x44854eb9)) ^ uVar34) -
           (uVar40 ^ *puVar3) ^ uVar37;
  *puVar8 = uVar33;
  uVar35 = CONCAT44(uVar23,uVar23);
  uVar31 = (*(ulonglong *)(lVar11 - ((ulonglong)uVar30 ^ 0x28ba7b52)) ^ uVar40) +
           (CONCAT44(uVar24,uVar16) ^ 0xa41fd9c59777a067) ^ uVar35;
  uVar34 = *(ulonglong *)(lVar11 + -0x420);
  *(ulonglong *)(lVar11 + -0x660) = uVar31;
  *puVar6 = (uVar34 ^ uVar32) >>
            ((*(byte *)(lVar11 - ((ulonglong)uVar15 ^ 0xbb5cca46)) ^ (byte)uVar22) & 0x3f);
  uVar39 = CONCAT44(DAT_182670af4,DAT_182670af4);
  puVar9 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  uVar31 = uVar39 ^ uVar34 ^ uVar35 ^ uVar32 ^ uVar31;
  uVar35 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar31;
  lVar11 = DAT_1826707a0;
  *puVar9 = (uVar31 ^ uVar39) >> (((byte)uVar15 ^ 0xee) & 0x3f) ^ uVar35;
  uVar34 = (uVar31 ^ uVar39) << ((bVar26 ^ 0xfa) & 0x3f);
  uVar48 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar11 + -0xc18) = uVar34 ^ CONCAT44(DAT_182670934,DAT_182670934);
  uVar34 = *(ulonglong *)(lVar11 - ((ulonglong)uVar14 ^ 0xa755dc6c)) ^ uVar35 | uVar34;
  *puVar2 = uVar34 ^ uVar48;
  puVar44 = (ulonglong *)(lVar11 - ((ulonglong)DAT_1826707b4 ^ 0x8c020c64));
  uVar39 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar11 + -0x6f0) = (uVar32 ^ *puVar44) - uVar34 ^ uVar39;
  uVar18 = DAT_182670890;
  *(undefined1 *)(lVar11 + -0x6c9) = **(undefined1 **)(lVar11 + -0x4f8);
  uVar35 = CONCAT44(uVar18,uVar18);
  uVar33 = uVar33 ^ uVar35 ^ uVar37 ^ uVar45 ^ *puVar7;
  *puVar4 = uVar33;
  uVar45 = CONCAT44(DAT_182670900,DAT_182670900);
  *puVar1 = (uVar33 ^ uVar35) >> ((bVar26 ^ 0xfa) & 0x3f) ^ uVar45;
  uVar22 = DAT_1826707ec;
  uVar31 = CONCAT44(DAT_182670848,DAT_182670848);
  uVar34 = (ulonglong)DAT_1826707f4;
  *puVar5 = (uVar33 ^ uVar35) << ((bVar28 ^ 0x9a) & 0x3f) ^ uVar31;
  uVar14 = DAT_182670a60;
  lVar11 = DAT_1826707a0;
  uVar41 = CONCAT44(DAT_182670870,DAT_182670870);
  uVar33 = (ulonglong)DAT_1826707d8;
  uVar42 = (ulonglong)DAT_182670a60;
  uVar34 = *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xb8eb675f)) ^ uVar45 | uVar31 ^ *puVar43;
  uVar31 = uVar34 ^ uVar41;
  *puVar3 = uVar31;
  uVar46 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *puVar6 = (*(ulonglong *)(lVar11 - (uVar33 ^ 0xcecf58bb)) ^ uVar37) - uVar34 ^ uVar46;
  uVar16 = DAT_1826707c4;
  uVar15 = DAT_1826707c0;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707d4 ^ 0xbe2adc1e)) =
       *(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707c0 ^ 0x509c927)) ^ uVar37 ^ uVar41 ^ uVar39 ^
       uVar31;
  uVar18 = DAT_182670a78;
  uVar34 = *(ulonglong *)(lVar11 + -0x660);
  *(ulonglong *)(lVar11 + -0x7d8) = (uVar35 ^ *puVar4) << (((byte)DAT_1826707e0 ^ 0xbe) & 0x3f);
  uVar14 = DAT_1826707bc;
  uVar33 = CONCAT44(uVar18,uVar18);
  *puVar9 = (*(ulonglong *)(lVar11 + -0x660) >> 0x20 ^ uVar42) >> 0x1a ^ uVar33;
  uVar18 = DAT_182670a58;
  uVar41 = CONCAT44(DAT_182670884,DAT_182670884);
  uVar31 = (uVar37 ^ uVar34) << (((byte)DAT_1826707c8 ^ 200) & 0x3f);
  uVar34 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar11 + -0xc18) = uVar31 ^ uVar41;
  lVar11 = DAT_1826707a0;
  uVar42 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0xb3b973f4)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x255dd27f)) ^ uVar33 | uVar31) ^ uVar42;
  uVar33 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *puVar7 = (*(ulonglong *)(lVar11 + -0x6f0) ^ uVar39) - (uVar42 ^ *(ulonglong *)(lVar11 + -0x420))
            ^ uVar33;
  uVar18 = DAT_182670920;
  uVar17 = DAT_1826707d4;
  uVar31 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *puVar1 = *(ulonglong *)(lVar11 - ((ulonglong)uVar16 ^ 0x40004e0)) ^ uVar31 ^ uVar46 ^ uVar48 ^
            *puVar2;
  uVar37 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707c8 ^ 0xbb5cc976)) =
       (*(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707e8 ^ 0x119591bb)) ^ uVar31) >>
       (((byte)uVar17 ^ 0x68) & 0x3f) ^ uVar37;
  uVar17 = DAT_1826707f0;
  uVar34 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707f0 ^ 0x50dcbd6)) =
       (uVar31 ^ *puVar1) << (((byte)uVar14 ^ 0xfe) & 0x3f) ^ uVar34;
  uVar31 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar34 = *puVar8 ^ uVar34 | uVar37 ^ *puVar5;
  uVar39 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *puVar3 = uVar34 ^ uVar31;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar17 ^ 0x50dcb1e)) =
       (uVar46 ^ *puVar6) - uVar34 ^ uVar39;
  lVar11 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x280) =
       *(int *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0xb8eb6d9f)) *
       (DAT_1826707e4 ^ 0x4eb54bf2);
  uVar35 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar11 - (uVar47 ^ 0x28ba7902)) =
       *(ulonglong *)(lVar11 - ((ulonglong)uVar14 ^ 0xb3b973ec)) ^ uVar35 ^ uVar31 ^ uVar33 ^
       *puVar3;
  uVar34 = *puVar5;
  uVar46 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar31 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar11 + -0x660) =
       (uVar35 ^ *(ulonglong *)(lVar11 + -0x7d8)) >> (((byte)DAT_1826707b8 ^ 0xca) & 0x3f) ^ uVar46;
  uVar14 = DAT_1826707b0;
  lVar11 = DAT_1826707a0;
  bVar26 = (byte)DAT_1826707b4;
  *puVar9 = (uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) <<
            (((byte)DAT_1826707b0 ^ 0xc5) & 0x3f) ^ uVar31;
  uVar17 = DAT_1826707c4;
  *(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707c4 ^ 0x4000418)) =
       (uVar37 ^ uVar34) >> ((bVar26 ^ 0x6b) & 0x3f);
  uVar18 = DAT_182670984;
  lVar11 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar34 = uVar46 ^ *(ulonglong *)(DAT_1826707a0 + -0x660) | *puVar9 ^ uVar31;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar34 ^ uVar37;
  uVar19 = DAT_1826708f4;
  uVar31 = CONCAT44(uVar18,uVar18);
  *puVar2 = (*(ulonglong *)(lVar11 - ((ulonglong)uVar17 ^ 0x4000c38)) ^ uVar33) - uVar34 ^ uVar31;
  uVar21 = DAT_1826707e8;
  lVar12 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707e8;
  uVar34 = *(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707b8 ^ 0xa755d52c)) ^
           CONCAT44(uVar19,uVar19) ^ uVar39 ^ uVar42 ^ *puVar44;
  *puVar1 = uVar34;
  *puVar8 = ((ulonglong)uVar19 << 0x14 | (ulonglong)(uVar19 >> 0xc)) ^ uVar34 >> 0xc ^ uVar31;
  *(ulonglong *)(lVar12 - ((ulonglong)uVar14 ^ 0x41888b37)) =
       (CONCAT44(uVar19,uVar19) ^ uVar34) << (((byte)DAT_1826707d8 ^ 0x8f) & 0x3f) ^ uVar38;
  uVar18 = DAT_1826708f0;
  uVar42 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar34 = *(ulonglong *)(lVar12 - (uVar33 ^ 0x11959f7b)) ^ uVar38 | *puVar8 ^ uVar31;
  uVar33 = uVar34 ^ uVar42;
  *puVar3 = uVar33;
  uVar19 = DAT_1826707dc;
  uVar35 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar12 + -0x7d8) =
       (*(ulonglong *)(lVar12 - ((ulonglong)DAT_1826707c8 ^ 0xbb5ccb06)) ^ uVar39) - uVar34 ^ uVar35
  ;
  uVar33 = uVar42 ^ uVar31 ^ uVar40 ^ *puVar2 ^ uVar33;
  uVar40 = uVar40 ^ uVar33;
  *(ulonglong *)(lVar12 + -0xc18) = uVar46 ^ *(ulonglong *)(lVar12 + -0x660) ^ 0xcf8f7031f1926478;
  uVar18 = DAT_1826707d0;
  bVar26 = (byte)DAT_1826707d0;
  *puVar5 = uVar33;
  uVar23 = DAT_1826709d0;
  uVar33 = uVar40 >> ((bVar26 ^ 0x5c) & 0x3f);
  *puVar9 = uVar33 ^ CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar40 = uVar40 << (((byte)uVar19 ^ 0xd0) & 0x3f);
  *puVar7 = uVar40 ^ CONCAT44(uVar23,uVar23);
  uVar14 = DAT_1826707cc;
  lVar11 = DAT_1826707a0;
  uVar34 = *puVar2;
  uVar40 = uVar40 | uVar33;
  uVar33 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar40 ^ CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar34 = (uVar31 ^ uVar34) - (CONCAT44(uVar24,uVar14) ^ 0x3a1219284d2bd423);
  *puVar1 = uVar34 ^ uVar33;
  uVar23 = DAT_1826707ec;
  *puVar6 = uVar34 - uVar40 ^ uVar45;
  uVar14 = DAT_1826707b4;
  uVar33 = (ulonglong)DAT_1826707b4;
  uVar46 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  uVar34 = (ulonglong)DAT_1826707f0;
  *puVar27 = uVar40 - (CONCAT44(uVar18,uVar23) ^ 0x5ab7bed060317b9f) ^ uVar46;
  lVar12 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670928,DAT_182670928);
  uVar37 = *(ulonglong *)(lVar11 - (uVar47 ^ 0x28ba782a)) ^
           *(ulonglong *)(lVar11 - (uVar34 ^ 0x50dc80e)) ^ uVar31 ^ uVar35 ^ uVar37;
  *puVar4 = uVar37;
  uVar17 = DAT_1826707d4;
  uVar34 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *puVar3 = (uVar37 ^ uVar31) >> (((byte)uVar14 ^ 0x65) & 0x3f) ^ uVar34;
  uVar20 = DAT_1826707e4;
  *(uint *)(lVar12 + -0x540) = (DAT_1826707e4 ^ 0xee701996) + (uVar17 ^ 0x2fc1c9f2);
  uVar37 = (uVar31 ^ uVar37) << (((byte)uVar19 ^ 0xe8) & 0x3f);
  uVar31 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar12 + -0x660) = uVar37 ^ CONCAT44(DAT_182670918,DAT_182670918);
  uVar23 = DAT_182670ae8;
  uVar17 = DAT_1826707f4;
  uVar14 = DAT_1826707b8;
  uVar37 = *(ulonglong *)(lVar12 - (uVar33 ^ 0x8c020dcc)) ^ uVar34 | uVar37;
  *(ulonglong *)(lVar12 + -0xc18) = uVar37 ^ uVar31;
  uVar31 = CONCAT44(uVar23,uVar23);
  uVar33 = (uVar35 ^ *(ulonglong *)(lVar12 + -0x7d8)) -
           (CONCAT44(uVar21,DAT_1826707c4) ^ 0x52beacf97388b736);
  *puVar5 = uVar33 ^ uVar31;
  *puVar7 = (CONCAT44(uVar22,uVar14) ^ 0x6962236ff2349637) -
            (CONCAT44(uVar18,uVar17) ^ 0x3b1025972efcb3d9);
  uVar14 = DAT_1826707b0;
  uVar35 = CONCAT44(DAT_182670858,DAT_182670858);
  uVar34 = CONCAT44(DAT_1826707b0,DAT_1826707b0);
  *puVar9 = uVar33 - uVar37 ^ uVar35;
  uVar18 = DAT_182670894;
  uVar33 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0x7eda2d7a)) =
       (uVar34 ^ 0x1b8390eac5570ee7) + uVar37 ^ uVar33;
  *puVar1 = CONCAT44(uVar17,DAT_1826707cc) ^ 0x639d75465fd21246 |
            CONCAT44(uVar15,DAT_1826707d8) ^ 0x844a9c7dbeeb2762;
  uVar15 = DAT_1826707d4;
  uVar39 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar42 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707dc ^ 0x255ddbd7)) =
       uVar39 ^ uVar33 ^ *puVar6 ^ uVar45 ^ *puVar2;
  lVar11 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (CONCAT44(uVar30,uVar15) ^ 0x280411fcf655e9db) +
       (CONCAT44(uVar16,uVar13) ^ 0x255b84f5db675941);
  lVar12 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar34 = *(ulonglong *)(DAT_1826707a0 + -0x420);
  uVar36 = (ulonglong)DAT_1826707cc;
  *puVar4 = (*(ulonglong *)(lVar11 - (uVar33 ^ 0x44854c21)) ^ uVar39) >>
            (((byte)DAT_1826707ec ^ 5) & 0x3f) ^ uVar37;
  uVar22 = DAT_1826709ec;
  uVar38 = (ulonglong)DAT_1826707c8;
  *(uint *)(lVar12 + -0x42c) =
       *(uint *)(lVar12 - (uVar36 ^ 0x448541ed)) >> ((byte)*(undefined4 *)(lVar12 + -0x540) & 0x1f);
  uVar33 = CONCAT44(uVar22,uVar22);
  *puVar3 = (uVar39 ^ uVar34) << (((byte)uVar20 ^ 0x8e) & 0x3f) ^ uVar33;
  uVar34 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar12 + -0x660) =
       (CONCAT44(uVar24,DAT_1826707f0) ^ 0x956d23295c97676c) <<
       ((*(byte *)(lVar12 - (uVar38 ^ 0xbb5cca0e)) ^ (byte)uVar18) & 0x3f);
  uVar22 = DAT_1826708a4;
  uVar34 = *(ulonglong *)(lVar12 - (uVar34 ^ 0xb8eb60f7)) ^ uVar33 | uVar37 ^ *puVar29;
  *(ulonglong *)(lVar12 + -0x7d8) = uVar34 ^ uVar41;
  uVar39 = CONCAT44(uVar22,uVar22);
  *puVar7 = (*puVar6 ^ uVar45) - uVar34 ^ uVar39;
  uVar33 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar33 ^ uVar35 ^ uVar46 ^ *puVar9 ^ *puVar8;
  lVar11 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0xbb5ccdee)) =
       (uVar31 ^ *puVar5) >> (((byte)DAT_1826707bc ^ 0xc4) & 0x3f);
  uVar36 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(lVar11 + -0x6f0) =
       (uVar33 ^ *(ulonglong *)(lVar11 + -0xc18)) >> ((bVar28 ^ 0x9f) & 0x3f) ^ uVar36;
  uVar34 = CONCAT44(uVar30,DAT_1826707d8);
  uVar33 = (*(ulonglong *)(lVar11 - (uVar42 ^ 0xbe2ad666)) ^ uVar33) << 0x1b;
  *(ulonglong *)(lVar11 + -0x420) = uVar33 ^ uVar32;
  *(ulonglong *)(lVar11 + -0x660) = (uVar34 ^ 0x6e8f64a30cdad8fe) + 0xc75820de5ae53fa0;
  uVar31 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar33 = *(ulonglong *)(lVar11 - ((ulonglong)DAT_1826707c4 ^ 0x4000ef0)) ^ uVar36 | uVar33;
  uVar36 = uVar33 ^ uVar31;
  uVar34 = *puVar9;
  uVar37 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *puVar4 = uVar36;
  uVar32 = (uVar35 ^ uVar34) - uVar33;
  *puVar3 = uVar32 ^ uVar37;
  *puVar6 = uVar33;
  uVar22 = DAT_1826709d4;
  uVar34 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar33 = uVar34 ^ uVar31 ^ uVar39 ^ uVar36 ^ *puVar7;
  *puVar8 = uVar33;
  *puVar5 = (uVar33 ^ uVar34) >> ((byte)uVar14 & 0x3f) ^ CONCAT44(uVar22,uVar22);
  *puVar1 = uVar32 << (((byte)uVar18 ^ *(byte *)puVar2) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar25 * 4) = uVar10 ^ uVar30;
  return;
}



############ FUN_ 180cf8d70 size=3399 ############

void FUN_180cf8d70(void)

{
  longlong *plVar1;
  ulonglong *puVar2;
  byte bVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  uint uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  undefined1 *puVar24;
  longlong lVar25;
  longlong *plVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  byte bVar33;
  longlong lVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  byte *pbVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_b8;
  
  uVar14 = DAT_1826707f4;
  uVar5 = DAT_1826707e4;
  uVar11 = DAT_1826707dc;
  uVar10 = DAT_1826707d0;
  uVar9 = DAT_1826707c8;
  uVar8 = DAT_1826707c0;
  uVar7 = DAT_1826707bc;
  uVar6 = DAT_1826707b8;
  uVar35 = (ulonglong)DAT_1826707dc;
  uVar37 = (ulonglong)DAT_1826707c8;
  uVar17 = ~DAT_1826707dc;
  uVar28 = (ulonglong)uVar17;
  uVar36 = (ulonglong)DAT_1826707c0;
  uVar22 = (ulonglong)DAT_1826707d0;
  uVar40 = (ulonglong)DAT_1826707f4;
  uVar31 = DAT_1826707e8 ^ DAT_1826707bc;
  uVar38 = DAT_1826707c8 & DAT_1826707f4;
  uVar30 = DAT_1826707c0 ^ DAT_1826707e4;
  uVar32 = DAT_1826707d0 ^ DAT_1826707b8;
  uVar18 = *(uint *)(&DAT_18260f750 + (uVar28 ^ 0xe90dc5ed) + (longlong)DAT_182670bc0) ^
           DAT_1826707dc;
  uVar4 = *(uint *)(&DAT_18260f760 + DAT_182670bc0);
  DAT_1826707a8 = uVar17;
  DAT_1826707ac = uVar32;
  DAT_1826707b4 = uVar30;
  DAT_1826707cc = uVar31;
  DAT_1826707e0 = uVar38;
  *(longlong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0x5fd9d7a0)) =
       *(longlong *)(DAT_1826707a0 + -0x588) << 8;
  lVar25 = DAT_1826707a0;
  plVar1 = (longlong *)(DAT_1826707a0 + 0x30);
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       *(ulonglong *)(DAT_1826707a0 + -0x5c0) | *(ulonglong *)(DAT_1826707a0 + -0x610);
  pbVar21 = (byte *)(*plVar1 + 0x1a);
  *(byte **)(lVar25 + -0x350) = pbVar21;
  *(longlong *)(lVar25 + -0x9c8) = *(longlong *)(lVar25 + -0x420) << 4;
  lVar34 = DAT_1826707a0;
  bVar3 = *pbVar21;
  uVar27 = (ulonglong)uVar6;
  *(byte *)(lVar25 + -0x6c9) = bVar3;
  *(ulonglong *)(lVar34 - (uVar27 ^ 0x816bbd9)) = (ulonglong)bVar3;
  uVar19 = (ulonglong)uVar5;
  uVar23 = *(longlong *)(lVar34 + -0x7d8) << 0x10;
  *(ulonglong *)(lVar34 + -0x1b8) = uVar23;
  *(ulonglong *)(lVar34 - ((ulonglong)uVar5 ^ 0xc4c78e09)) =
       uVar23 | *(ulonglong *)(lVar34 + -0x558);
  puVar24 = (undefined1 *)(*(longlong *)(lVar34 + 0x30) + 0x1b);
  *(uint *)(lVar34 + -0x9ec) =
       (uVar30 ^ 0xa041b841) >> ((byte)*(undefined4 *)(lVar34 + -0x43c) & 0x1f);
  *(undefined1 **)(lVar34 + -0x4f8) = puVar24;
  *(undefined1 *)(lVar34 - (uVar22 ^ 0x5fd9d4a9)) = *puVar24;
  uVar23 = (ulonglong)*(byte *)(lVar34 - ((ulonglong)uVar8 ^ 0xe625e6ab));
  *(ulonglong *)(lVar34 + -0x4c8) = uVar23;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar23 << (((byte)uVar7 ^ 0x24) & 0x3f);
  uVar12 = DAT_1826707e8;
  lVar25 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (CONCAT44(uVar38,DAT_1826707e8) ^ 0xa4c5c79a31a7e4a4) -
       (CONCAT44(uVar9,uVar8) ^ 0x6a50e054782614dd);
  *(ulonglong *)(lVar25 + -0xc18) =
       *(ulonglong *)(lVar25 - ((ulonglong)uVar31 ^ 0x88503cfa)) |
       *(ulonglong *)(lVar25 - ((ulonglong)uVar12 ^ 0x442d15e6));
  pbVar21 = (byte *)((CONCAT44(uVar17,uVar32) ^ 0xe90dc5e557cf6e7d) +
                    *(longlong *)(((ulonglong)uVar38 ^ 0x40c2030) + lVar25));
  *(byte **)(lVar25 + -0x350) = pbVar21;
  bVar3 = *pbVar21;
  *(byte *)(lVar25 + -0x6c9) = bVar3;
  *(ulonglong *)(lVar25 + -0x400) = (ulonglong)bVar3;
  *(longlong *)(lVar25 - (uVar40 ^ 0x68cef1a)) =
       *(longlong *)(lVar25 - (uVar19 ^ 0xc4c78e31)) << 0x20;
  local_b8 = (byte)uVar6;
  *(ulonglong *)(lVar25 - ((ulonglong)uVar32 ^ 0x57cf6891)) =
       *(ulonglong *)(lVar25 + -0x220) | *(ulonglong *)(lVar25 + -0xc18);
  *(longlong *)(lVar25 + -0xce0) = *(longlong *)(lVar25 + -0x6f0) << ((local_b8 ^ 0x15) & 0x3f);
  lVar25 = DAT_1826707a0;
  pbVar21 = (byte *)((CONCAT44(uVar30,uVar31) ^ 0x22e26a53885038df) +
                    *(longlong *)(DAT_1826707a0 + 0x30));
  *(byte **)(DAT_1826707a0 + -0x4f8) = pbVar21;
  bVar3 = *pbVar21;
  *(byte *)(lVar25 + -0x6c9) = bVar3;
  *(ulonglong *)(lVar25 + -0xb70) = (ulonglong)bVar3;
  *(ulonglong *)(lVar25 + -0xf0) = (ulonglong)bVar3 << (((byte)uVar32 ^ 0x49) & 0x3f);
  *(uint *)(lVar25 - (uVar28 ^ 0xe90dc67d)) = (uVar7 ^ 0x7596a1f) + (uVar14 ^ 0x450a7367);
  lVar25 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x16f23cea)) |
       *(ulonglong *)(DAT_1826707a0 + -0xf0);
  puVar24 = (undefined1 *)
            ((CONCAT44(uVar9,uVar31) ^ 0x4c2d2000885038dc) +
            *(longlong *)((uVar19 ^ 0xc4c78a01) + lVar25));
  *(undefined1 **)(lVar25 + -0x350) = puVar24;
  *(undefined1 *)(lVar25 + -0x6c9) = *puVar24;
  *(ulonglong *)(lVar25 + -0x118) =
       (CONCAT44(uVar38,uVar6) ^ 0xfa01772f97374326) >> (((byte)uVar38 ^ 0x11) & 0x3f);
  lVar34 = DAT_1826707a0;
  pbVar39 = (byte *)(lVar25 - (uVar19 ^ 0xc4c78cf8));
  uVar23 = (ulonglong)*pbVar39;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar23;
  lVar25 = uVar23 << (((byte)uVar30 ^ 99) & 0x3f);
  *(longlong *)(lVar34 + -0x630) = lVar25;
  *(longlong *)(lVar34 + -0x658) = *(longlong *)(lVar34 - ((ulonglong)uVar32 ^ 0x57cf6359)) + lVar25
  ;
  *(ulonglong *)(lVar34 + -0x4f8) =
       (CONCAT44(uVar5,uVar10) ^ 0xc4c78a315fd9d27f) + *(longlong *)(lVar34 + 0x30);
  *(undefined1 *)(lVar34 + -0x6c9) = **(undefined1 **)(lVar34 - (uVar35 ^ 0x16f23ee2));
  *(ulonglong *)(lVar34 - ((ulonglong)uVar32 ^ 0x57cf63e9)) =
       (ulonglong)*(byte *)(lVar34 - (uVar27 ^ 0x816bac8));
  lVar25 = DAT_1826707a0;
  lVar34 = *(longlong *)(lVar34 - (uVar40 ^ 0x68ce0b2)) << ((local_b8 ^ 0x39) & 0x3f);
  plVar26 = (longlong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0xcc7d2d64));
  plVar1 = (longlong *)(DAT_1826707a0 + -0x658);
  *(longlong *)(DAT_1826707a0 + -0x660) = lVar34;
  uVar15 = DAT_182670a64;
  uVar23 = *plVar1 + lVar34;
  *(ulonglong *)(lVar25 + -0xac0) = uVar23;
  uVar16 = DAT_182670ad0;
  lVar25 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x428) =
       *plVar26 + (CONCAT44(uVar8,uVar8) ^ 0xe625e062e625e061) * 8;
  *(ulonglong *)(lVar25 - (uVar36 ^ 0xe625e5ea)) =
       CONCAT44(uVar5,uVar17) ^ uVar23 ^ 0x422ffc830bed9728;
  uVar41 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  **(ulonglong **)(lVar25 + -0x428) = uVar41 ^ *(ulonglong *)(lVar25 + -0xac0);
  *(ulonglong *)(lVar25 + -0x610) =
       *(ulonglong *)(*(ulonglong *)(lVar25 - (uVar29 ^ 0x442d1486)) ^ CONCAT44(uVar16,uVar16)) ^
       CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar25 - (uVar27 ^ 0x816bf51)) =
       (CONCAT44(uVar31,uVar8) ^ 0x885038c2e625e042) + *(longlong *)(lVar25 + 0x30);
  *(uint *)(lVar25 - ((ulonglong)uVar32 ^ 0x57cf6255)) =
       *(int *)(lVar25 - ((ulonglong)uVar31 ^ 0x88503f26)) * (uVar38 ^ 0x5f61d97);
  bVar3 = **(byte **)(lVar25 + -0x350);
  *(byte *)(lVar25 + -0x6c9) = bVar3;
  *(ulonglong *)(lVar25 + -0x5c0) = (ulonglong)bVar3;
  *(longlong *)(lVar25 - (uVar35 ^ 0x16f2394a)) = *(longlong *)(lVar25 + 0x30) + 0x21;
  lVar34 = DAT_1826707a0;
  *(undefined1 *)(lVar25 - ((ulonglong)uVar32 ^ 0x57cf68a8)) = **(undefined1 **)(lVar25 + -0x350);
  uVar5 = DAT_1826707b0;
  *(ulonglong *)(lVar25 - (uVar40 ^ 0x68ce91a)) = (ulonglong)*(byte *)(lVar25 + -0x6c9);
  uVar17 = DAT_1826707d4;
  DAT_1826707c4 = uVar5 & DAT_1826707d4;
  uVar27 = (ulonglong)DAT_1826707d4;
  uVar35 = (ulonglong)DAT_1826707c4;
  uVar23 = CONCAT44(DAT_1826707d4,DAT_1826707c4);
  bVar33 = (byte)DAT_1826707c4;
  *(longlong *)(lVar34 + -0x9c8) =
       *(longlong *)(lVar34 - ((ulonglong)uVar5 ^ 0x3aed8826)) << ((bVar33 ^ 10) & 0x3f);
  *(ulonglong *)(lVar34 - (uVar27 ^ 0x8448bda)) =
       uVar23 ^ *(ulonglong *)(lVar34 + -0x610) ^ 0xbaa98a54283bd0bb;
  *(ulonglong *)(lVar34 + -0x558) =
       *(ulonglong *)(lVar34 + -0x5c0) | *(ulonglong *)(lVar34 + -0x9c8);
  *(ulonglong *)(lVar34 + -0x350) =
       (CONCAT44(uVar17,uVar5) ^ 0x8448c023aed8c24) + *(longlong *)(lVar34 + 0x30);
  *(ulonglong *)(lVar34 - ((ulonglong)uVar17 ^ 0x8448dba)) =
       (CONCAT44(uVar5,uVar17) ^ 0x6aaa0e1a9d8d1410) >>
       ((byte)*(undefined8 *)(lVar34 + -0x660) & 0x3f);
  bVar3 = **(byte **)(lVar34 + -0x350);
  *(byte *)(lVar34 + -0x6c9) = bVar3;
  *(ulonglong *)(lVar34 + -0x4c8) = (ulonglong)bVar3;
  *(ulonglong *)(lVar34 - ((ulonglong)uVar5 ^ 0x3aed859e)) =
       (ulonglong)bVar3 << ((bVar33 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar34 + -0x438) =
       *(ulonglong *)(lVar34 - (uVar35 ^ 0x844859a)) | *(ulonglong *)(lVar34 + -0x558);
  *(longlong *)(lVar34 + -0x350) = *(longlong *)(lVar34 + 0x30) + 0x23;
  *(undefined1 *)(lVar34 - ((ulonglong)uVar31 ^ 0x88503e0b)) =
       **(undefined1 **)(lVar34 - (uVar22 ^ 0x5fd9d130));
  uVar27 = (ulonglong)*(byte *)(lVar34 - (uVar27 ^ 0x8448acb));
  *(ulonglong *)(lVar34 + -0xa18) = uVar27;
  uVar27 = uVar27 << (((byte)uVar7 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar34 + -0x400) = uVar27;
  *(ulonglong *)(lVar34 + -0xc18) = CONCAT44(uVar11,uVar5) ^ 0xbefe5ceffffffbf5 | 0x3e6c58cf1fe5f9b5
  ;
  *(ulonglong *)(lVar34 + -0x220) = *(ulonglong *)(lVar34 + -0x438) | uVar27;
  uVar13 = DAT_1826707f0;
  uVar22 = (ulonglong)DAT_1826707f0;
  uVar20 = (DAT_1826707f0 << 0x10 | DAT_1826707f0 & 0xff00) << 8 | DAT_1826707f0 >> 8 & 0xff00 |
           DAT_1826707f0 >> 0x18;
  uVar27 = CONCAT44(DAT_1826707f0,uVar20);
  DAT_1826707d8 = uVar20;
  *(ulonglong *)(lVar34 + -0xce0) =
       *(longlong *)(lVar34 + -0x998) - (CONCAT44(uVar20,DAT_1826707f0) ^ 0x942295f7e0c9fa65);
  *(ulonglong *)(lVar34 - (uVar22 ^ 0x5e519748)) =
       (uVar27 ^ 0x5e5194181894517a) + *(longlong *)(lVar34 + 0x30);
  *(undefined1 *)(lVar34 + -0x6c9) = **(undefined1 **)(lVar34 + -0x350);
  *(ulonglong *)(lVar34 - ((ulonglong)uVar13 ^ 0x5e519f68)) =
       (ulonglong)*(byte *)(lVar34 - ((ulonglong)uVar20 ^ 0x18945797));
  *(longlong *)(lVar34 - ((ulonglong)uVar30 ^ 0x22e26ca3)) =
       *(longlong *)(lVar34 + -0xb70) << (((byte)(uVar13 >> 0x18) ^ 0x7e) & 0x3f);
  *(ulonglong *)(lVar34 + -0xf0) =
       *(ulonglong *)(lVar34 - (uVar28 ^ 0xe90dc315)) | *(ulonglong *)(lVar34 + -0x220);
  *(longlong *)(lVar34 - (uVar37 ^ 0x4c2d2350)) = *(longlong *)(lVar34 + 0x30) + 0x25;
  *(undefined1 *)(lVar34 - (uVar29 ^ 0x442d1937)) = **(undefined1 **)(lVar34 + -0x350);
  uVar15 = DAT_1826708a4;
  lVar25 = DAT_1826707a0;
  *(ulonglong *)(lVar34 - (uVar22 ^ 0x5e519500)) = (ulonglong)*(byte *)(lVar34 + -0x6c9);
  lVar34 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       *(ulonglong *)
        (*(ulonglong *)(lVar25 - ((ulonglong)uVar38 ^ 0x40c26c8)) ^
        CONCAT44(DAT_1826708b4,DAT_1826708b4)) ^ CONCAT44(uVar15,uVar15);
  lVar25 = DAT_1826707a0;
  *(longlong *)(DAT_1826707a0 - (uVar22 ^ 0x5e519920)) =
       *(longlong *)(lVar34 - ((ulonglong)uVar7 ^ 0xcc7d2624)) << (((byte)uVar5 ^ 0x2e) & 0x3f);
  *(undefined1 *)(lVar25 + -0x6c9) = **(undefined1 **)(lVar25 + -0x4f8);
  *(ulonglong *)(lVar25 + -0x630) = *(ulonglong *)(lVar25 + -0xf0) | *(ulonglong *)(lVar25 + -0xd38)
  ;
  pbVar21 = (byte *)(*(longlong *)(lVar25 + 0x30) + 0x26);
  *(byte **)(lVar25 + -0x350) = pbVar21;
  *pbVar39 = *pbVar21;
  *(ulonglong *)(lVar25 + -0x658) = (ulonglong)*(byte *)(lVar25 + -0x6c9);
  lVar34 = (ulonglong)*(byte *)(lVar25 + -0x6c9) << (((byte)uVar30 ^ 99) & 0x3f);
  *(ulonglong *)(lVar25 + -0xd88) =
       (CONCAT44(uVar32,uVar20) ^ 0x509ea2a45db8e673) + *(longlong *)(lVar25 + -0x630);
  *(longlong *)(lVar25 + -0x420) = *(longlong *)(lVar25 + -0x630) + lVar34;
  *(longlong *)(lVar25 + -0x588) = lVar34;
  puVar24 = (undefined1 *)
            ((CONCAT44(uVar7,uVar10) ^ 0xcc7d273c5fd9d247) + *(longlong *)(lVar25 + 0x30));
  *(undefined1 **)(lVar25 + -0x4f8) = puVar24;
  *(undefined1 *)(lVar25 + -0x6c9) = *puVar24;
  uVar28 = (ulonglong)*(byte *)(lVar25 - (uVar28 ^ 0xe90dc32c));
  *(ulonglong *)(lVar25 + -0x610) = uVar28;
  *(ulonglong *)(lVar25 + -0x7d8) =
       (CONCAT44(uVar6,uVar12) ^ 0xb72969672182631e) << (((byte)uVar17 ^ 0x3b) & 0x3f);
  *(ulonglong *)(lVar25 + -0x5c0) = uVar28 << (((byte)uVar12 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar25 - (uVar19 ^ 0xc4c783f9)) =
       (CONCAT44(uVar38,uVar9) ^ 0x93405ec502afb369) <<
       ((byte)*(undefined8 *)(lVar25 + -0xd38) & 0x3f);
  uVar28 = *(longlong *)(lVar25 - (uVar36 ^ 0xe625e5a2)) + *(longlong *)(lVar25 + -0x420);
  *(ulonglong *)(lVar25 + -0x1b8) = uVar28;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar25 + -0xa58) + (CONCAT44(uVar8,uVar31) ^ 0xe625e062885038c6) * 8);
  *(ulonglong **)(lVar25 + -0xb50) = puVar2;
  *puVar2 = uVar41 ^ uVar28;
  puVar24 = (undefined1 *)
            ((CONCAT44(uVar8,uVar11) ^ 0xe625e06216f23a32) + *(longlong *)(lVar25 + 0x30));
  *(undefined1 **)(lVar25 + -0x350) = puVar24;
  *(ulonglong *)(lVar25 + -0x660) =
       (CONCAT44(uVar12,uVar5) ^ 0x40d177c00b94ab2) - (CONCAT44(uVar12,uVar14) ^ 0x62c9c3335ffcfd77)
  ;
  *(undefined1 *)(lVar25 + -0x6c9) = *puVar24;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar32) * 4) = uVar18;
  return;
}



############ FUN_ 180d0b7c0 size=5021 ############

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

void FUN_180d0b7c0(void)

{
  ulonglong *puVar1;
  undefined8 *puVar2;
  byte *pbVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_c8;
  
  uVar11 = DAT_1826707cc;
  uVar9 = DAT_1826707bc;
  lVar4 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707cc;
  uVar20 = DAT_1826707bc | DAT_1826707cc;
  uVar18 = *(uint *)(&DAT_18260f758 + DAT_182670bf8) ^ DAT_1826707cc;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670bf8) ^ DAT_1826707bc;
  uVar31 = (ulonglong)DAT_1826707bc;
  uVar40 = (ulonglong)uVar20;
  uVar32 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar45 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  DAT_1826707d8 = uVar20;
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xd36dfbe7)) =
       CONCAT44(DAT_182670934,DAT_182670934) ^ *(ulonglong *)(DAT_1826707a0 + -0xa18) ^
       *(ulonglong *)(DAT_1826707a0 + -0x890) ^ uVar45 ^ uVar32;
  puVar19 = (ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xd249ebf5));
  uVar38 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar35 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar4 + -0x658) = (uVar32 ^ *puVar19) >> (((byte)uVar20 ^ 0xe6) & 0x3f) ^ uVar38;
  uVar6 = DAT_18267084c;
  lVar5 = DAT_1826707a0;
  puVar43 = (ulonglong *)(lVar4 + -0xf0);
  uVar26 = (*(ulonglong *)(lVar4 + -0x118) ^ uVar32) << (((byte)uVar9 ^ 0xca) & 0x3f);
  *puVar43 = uVar26 ^ uVar35;
  uVar15 = DAT_1826709a4;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar5 + -0xbb0) =
       *(ulonglong *)(lVar5 - (uVar31 ^ 0xd249eecd)) ^ CONCAT44(uVar6,uVar6) ^
       CONCAT44(uVar20,uVar11) ^ 0x6b937087f65993a4;
  uVar26 = *(ulonglong *)(lVar5 - (uVar40 ^ 0xd36dfca7)) ^ uVar38 | uVar26;
  uVar21 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar4 + -0x890) = uVar26 ^ CONCAT44(uVar15,uVar15);
  uVar27 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar35 = *(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0xd36dfb47));
  uVar41 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *(ulonglong *)(lVar4 + -0x420) = CONCAT44(uVar11,uVar20) << 0x29 ^ 0x1c7ece0000000000;
  uVar6 = DAT_182670ab4;
  uVar35 = (*(ulonglong *)(lVar4 + -0xa18) ^ uVar45) - (uVar35 ^ uVar21);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar35 ^ uVar27;
  *puVar43 = uVar35 - uVar26 ^ uVar41;
  uVar33 = CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar28 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar35 = (CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar4 + -0x6b8)) +
           (*(ulonglong *)(lVar4 + -0xce0) ^ uVar33);
  *(ulonglong *)(lVar4 + -0x658) = uVar35 ^ uVar28;
  uVar6 = DAT_1826708d0;
  uVar13 = DAT_1826707f0;
  *(ulonglong *)(lVar4 + -0xa18) =
       (CONCAT44(uVar11,uVar9) ^ 0x7606aa2999b77831) + 0x2831dc9c47abb22c;
  uVar44 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xd32c561a)) = uVar26 - uVar35 ^ uVar44;
  uVar35 = (ulonglong)DAT_182670908;
  uVar26 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xd32c598a)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xd32c5322)) ^ uVar32) <<
       (((byte)uVar9 ^ 0xe9) & 0x3f);
  uVar6 = DAT_182670a04;
  uVar22 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar38 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  puVar1 = (ulonglong *)(lVar4 + -0xd38);
  uVar34 = *puVar1 ^ *(ulonglong *)(lVar4 + -0x660) ^ uVar38 ^ uVar22;
  uVar26 = uVar34 ^ uVar26;
  *(ulonglong *)(lVar4 + -0xce0) = uVar26;
  uVar7 = DAT_1826707b4;
  uVar29 = (uVar26 >> 0x20 ^ uVar35) >> 1;
  *(uint *)(lVar4 + -0x280) =
       (uVar13 ^ 0x5ee8bd27) >> ((byte)*(undefined4 *)(lVar4 + -0x42c) & 0x1f);
  uVar15 = DAT_182670840;
  *(ulonglong *)(lVar4 + -0xa18) = uVar29 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_18267081c;
  uVar26 = CONCAT44(uVar15,uVar15);
  uVar35 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar4 + -0x890) = uVar34 << (((byte)uVar7 ^ 0x21) & 0x3f) ^ uVar26;
  uVar34 = CONCAT44(uVar6,uVar6);
  uVar29 = *(ulonglong *)(lVar4 - (uVar35 ^ 0x600a25b8)) ^ uVar26 | uVar29;
  uVar30 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar4 + -0x118) = uVar29 ^ uVar34;
  uVar12 = DAT_182670854;
  lVar4 = DAT_1826707a0;
  uVar47 = (ulonglong)DAT_182670854;
  uVar46 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar26 = (*(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xd36dfc9f)) ^ uVar38) -
           (*(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar30);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar26 ^ uVar46;
  uVar6 = DAT_182670a8c;
  uVar35 = CONCAT44(DAT_1826707d0,uVar20);
  *(uint *)(lVar4 + -0x43c) =
       (uVar11 ^ 0xc270920d) + *(int *)(lVar4 - ((ulonglong)uVar7 ^ 0xede9f20a));
  uVar23 = CONCAT44(uVar6,uVar6);
  *puVar1 = uVar26 - uVar29 ^ uVar23;
  uVar26 = (uVar35 ^ 0xf050a92c920506) -
           (*(ulonglong *)(lVar4 + -0x6f0) ^ CONCAT44(DAT_182670a64,DAT_182670a64));
  uVar29 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar4 + -0xce0) = uVar26 ^ CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar7 = DAT_1826707c4;
  uVar26 = (uVar34 ^ *puVar19) + uVar26;
  uVar34 = uVar26 ^ uVar29;
  *(ulonglong *)(lVar4 + -0xa18) = uVar34;
  uVar35 = *puVar43;
  *(ulonglong *)(lVar4 + -0x890) = uVar26 ^ 0x42716c0251647c83;
  uVar15 = DAT_182670980;
  uVar24 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar38 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(lVar4 + -0x220) = uVar34 ^ uVar35 ^ uVar24 ^ uVar29 ^ uVar41;
  uVar6 = DAT_1826707a8;
  uVar42 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xedea4fb2)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0xb50) ^ uVar38) ^ uVar42;
  uVar39 = CONCAT44(DAT_18267098c,DAT_18267098c);
  uVar29 = (*(ulonglong *)(lVar4 + -0x220) ^ uVar24) >> (((byte)uVar6 ^ 0x2d) & 0x3f);
  uVar26 = (ulonglong)DAT_1826707f4;
  uVar34 = CONCAT44(DAT_182670960,DAT_182670960);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar29 ^ uVar39;
  local_c8 = (byte)uVar11;
  uVar35 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar4 + -0xce0) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0x29ac9cdf)) ^ uVar24) << ((local_c8 ^ 1) & 0x3f) ^ uVar34;
  lVar5 = DAT_1826707a0;
  puVar19 = (ulonglong *)(lVar4 - (uVar35 ^ 0x92005cd2));
  uVar29 = *puVar19 ^ uVar34 | uVar29;
  uVar34 = CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar35 = *(ulonglong *)(DAT_1826707a0 + -0x420);
  *(ulonglong *)(DAT_1826707a0 + -0x118) = uVar29 ^ uVar34;
  uVar8 = DAT_1826707ec;
  *(ulonglong *)(lVar5 + -0x890) = (*puVar43 ^ uVar41) - uVar29 ^ uVar45;
  uVar6 = DAT_182670914;
  *(undefined8 *)(lVar5 + -0xa18) = **(undefined8 **)(lVar5 - ((ulonglong)uVar7 ^ 0xedea4f3a));
  uVar15 = DAT_182670ae0;
  uVar36 = CONCAT44(uVar6,uVar6);
  uVar26 = *puVar1;
  uVar44 = uVar35 ^ uVar36 ^ uVar23 ^ *puVar1 ^ uVar44;
  *(ulonglong *)(lVar5 + -0x660) = uVar44;
  uVar29 = (uVar44 ^ uVar36) >> (((byte)uVar8 ^ 0x18) & 0x3f);
  uVar35 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar5 + -0x220) = uVar29 ^ CONCAT44(uVar15,uVar15);
  *(int *)(lVar5 + -0x9ec) = *(int *)(lVar5 - (uVar35 ^ 0x600a2904)) - *(int *)(lVar5 + -0x42c);
  uVar29 = (uVar44 ^ uVar36) << 0x1b | uVar29;
  uVar41 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar5 + -0xbb0) = uVar29 ^ uVar24;
  uVar7 = DAT_1826707c0;
  *(ulonglong *)(lVar5 + -0xa18) = (uVar23 ^ uVar26) - uVar29 ^ uVar41;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x5040ae61)) = uVar44 ^ uVar36 | 0x4d7c74e6f9b0724e;
  uVar6 = DAT_182670aa0;
  uVar10 = DAT_1826707c8;
  lVar4 = DAT_1826707a0;
  uVar35 = *(ulonglong *)(lVar5 + -0x890) ^ uVar24 ^ uVar46 ^ uVar45 ^
           *(ulonglong *)(lVar5 + -0xbb0);
  *(ulonglong *)(lVar5 + -0xce0) = uVar35;
  uVar24 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707dc ^ 0x544a9549)) =
       ((ulonglong)(uVar12 >> 0x17) | uVar47 << 9) ^ uVar35 >> 0x17 ^ uVar24;
  uVar26 = (*(ulonglong *)(lVar5 + -0xce0) ^ uVar46) << (((byte)uVar10 ^ 0x78) & 0x3f);
  uVar35 = CONCAT44(DAT_1826707e4,DAT_1826707d0);
  *puVar43 = uVar26 ^ CONCAT44(DAT_182670800,DAT_182670800);
  uVar12 = DAT_182670818;
  uVar6 = DAT_1826707f8;
  uVar23 = (ulonglong)DAT_182670818;
  *puVar1 = (uVar35 ^ 0xa9e9e35efa3e3568) - (*(ulonglong *)(lVar4 + -0xa18) ^ uVar41);
  uVar29 = CONCAT44(uVar6,uVar6);
  uVar26 = *(ulonglong *)(lVar4 + -0x220) ^ uVar24 | uVar26;
  uVar47 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar4 + -0x420) = uVar26 ^ uVar29;
  *(ulonglong *)(lVar4 + -0x660) = (*(ulonglong *)(lVar4 + -0x890) ^ uVar45) - uVar26 ^ uVar47;
  uVar8 = DAT_1826707f4;
  uVar7 = DAT_1826707ac;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xbb0) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f4 ^ 0x29ac94e7)) ^
       *(ulonglong *)(lVar4 + -0x118) ^ uVar36 ^ uVar41 ^ uVar34;
  uVar24 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x2d286cea)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x7c72b1e1)) >> 0x20 ^ uVar23) >> 8 ^ uVar24;
  lVar4 = DAT_1826707a0;
  puVar2 = (undefined8 *)(DAT_1826707a0 + -0x6e8);
  uVar35 = *(ulonglong *)(DAT_1826707a0 + -0xce0);
  uVar26 = (uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0)) << (((byte)uVar8 ^ 0xe7) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar26 ^ uVar42;
  uVar6 = DAT_1826709a8;
  *puVar43 = *(ulonglong *)*puVar2;
  uVar15 = DAT_1826709f0;
  uVar12 = DAT_1826707e8;
  uVar42 = (ulonglong)DAT_1826707e8;
  uVar23 = CONCAT44(uVar6,uVar6);
  uVar26 = (uVar35 ^ uVar24 | uVar26) ^ uVar23;
  *(ulonglong *)(lVar4 + -0x890) = uVar26;
  uVar45 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x118) =
       (*(ulonglong *)(lVar4 + -0xa18) ^ uVar41) -
       (*(ulonglong *)(lVar4 - (uVar42 ^ 0xba5174e2)) ^ uVar23) ^ uVar45;
  uVar7 = DAT_1826707c4;
  uVar8 = DAT_1826707b8;
  uVar41 = CONCAT44(DAT_182670a78,DAT_182670a78);
  uVar26 = *(ulonglong *)(DAT_1826707a0 + -0x660) ^ uVar41 ^ uVar23 ^ uVar47 ^ uVar26;
  uVar23 = (ulonglong)DAT_1826707c4;
  *puVar43 = uVar26;
  lVar4 = DAT_1826707a0;
  uVar44 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar35 = (uVar26 ^ uVar41) >> (((byte)uVar7 ^ 0xe6) & 0x3f) ^ uVar44;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar35;
  *(ulonglong *)(lVar4 + -0xce0) = CONCAT44(uVar10,uVar13) ^ uVar44 ^ uVar35 ^ 0x4ac6dc555be66d0b;
  uVar35 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xd36df0e7)) =
       (uVar41 ^ uVar26) << (((byte)DAT_1826707b4 ^ 0x32) & 0x3f) ^ uVar35;
  uVar14 = DAT_1826707f4;
  uVar46 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(lVar4 + -0xbb0) =
       (*(ulonglong *)(lVar4 + -0x220) ^ uVar44 | uVar35 ^ *(ulonglong *)(lVar4 + -0xa18)) ^ uVar46;
  uVar35 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar4 + -0x890) =
       (CONCAT44(uVar9,DAT_1826707e0) ^ 0x2a5f175759cc4e03) + 0x28db17fe230029e;
  uVar6 = DAT_182670a60;
  uVar7 = DAT_1826707ac;
  uVar41 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar35 = (*(ulonglong *)(lVar4 + -0x660) ^ uVar47) -
           (*(ulonglong *)(lVar4 - (uVar35 ^ 0x3440b1f1)) ^ uVar46) ^ uVar41;
  *(ulonglong *)(lVar4 + -0xce0) = uVar35;
  *puVar43 = (CONCAT44(uVar14,uVar7) ^ 0xaa6b0bdd615d3646) << (((byte)uVar35 ^ (byte)uVar6) & 0x3f);
  uVar7 = DAT_1826707ec;
  *(ulonglong *)(lVar4 + -0x220) =
       *(ulonglong *)(lVar4 + -0x118) ^ uVar45 ^ uVar29 ^ *(ulonglong *)(lVar4 + -0x420) ^ uVar39;
  uVar24 = CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xba51766a)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0xedea4bf2)) >> 0x20 ^ (ulonglong)DAT_18267098c) >>
       0x19 ^ uVar24;
  uVar9 = DAT_1826707f4;
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  uVar35 = *(ulonglong *)(DAT_1826707a0 + -0xa18);
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x17969f1d)) ^ uVar39) <<
       ((local_c8 ^ 0x3d) & 0x3f) ^ uVar29;
  uVar6 = DAT_182670984;
  uVar26 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar4 + -0x660) =
       (CONCAT44(uVar10,uVar11) ^ 0xe94454787b121fa0) >> (((byte)uVar9 ^ 0xc6) & 0x3f);
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0x5040aab1)) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0x3440b2d1)) ^ uVar29 | uVar24 ^ uVar35) ^ uVar23;
  uVar9 = DAT_18267089c;
  uVar29 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar4 + -0x420) =
       (*(ulonglong *)(lVar4 + -0x118) ^ uVar45) - (uVar23 ^ *puVar43) ^ uVar29;
  uVar24 = CONCAT44(uVar9,uVar9);
  uVar35 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0x600a2dd8)) ^ *puVar19 ^ uVar24 ^
           uVar23 ^ uVar41;
  *(ulonglong *)(lVar4 + -0x220) = uVar35;
  bVar17 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar4 + -0x660) = (uVar35 ^ uVar24) + *(longlong *)(lVar4 - (uVar37 ^ 0xd32c5f02));
  uVar6 = DAT_1826709d8;
  uVar26 = ((ulonglong)uVar9 << 0x12 | (ulonglong)(uVar9 >> 0xe)) ^ uVar35 >> 0xe;
  uVar35 = (uVar35 ^ uVar24) << ((bVar17 ^ 0x46) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa18) = uVar26 ^ CONCAT44(DAT_182670804,DAT_182670804);
  pbVar3 = (byte *)(DAT_1826707a0 + -0x118);
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar35 ^ CONCAT44(uVar6,uVar6);
  *puVar43 = uVar26 << ((*pbVar3 ^ (byte)uVar15) & 0x3f);
  uVar15 = DAT_182670ae8;
  uVar37 = CONCAT44(DAT_182670970,DAT_182670970);
  puVar25 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x17969005));
  *puVar25 = (uVar35 | uVar26) ^ uVar37;
  lVar4 = DAT_1826707a0;
  puVar19 = (ulonglong *)(DAT_1826707a0 + -0x68);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707dc ^ 0x544a9109)) =
       (*(ulonglong *)(DAT_1826707a0 + -0xce0) ^ uVar41) -
       (*(ulonglong *)(DAT_1826707a0 + -0x630) ^ uVar36) ^ CONCAT44(uVar15,uVar15);
  uVar35 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xd36df8df)) =
       (*(ulonglong *)(lVar4 + -0x660) ^ CONCAT44(uVar15,uVar15)) - (*puVar1 ^ uVar37) ^ uVar30;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x29ac9fe7)) =
       (*(ulonglong *)(lVar4 + -0x1b8) ^ uVar21) + (uVar44 ^ *puVar19) ^ uVar32;
  uVar21 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xd249e0f5)) =
       (*puVar1 ^ uVar37) - (*(ulonglong *)(lVar4 + -0x118) ^ uVar32) ^ uVar21;
  uVar11 = DAT_1826708b0;
  uVar26 = (ulonglong)DAT_1826708b0;
  *(ulonglong *)(lVar4 + -0x890) = *puVar43 ^ 0x69bcb7b5165eaf5c;
  lVar5 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar23 = *(ulonglong *)(lVar4 - (uVar42 ^ 0xba517852)) ^ CONCAT44(uVar11,uVar11) ^ uVar29 ^ uVar46
           ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar23;
  uVar6 = DAT_1826707a8;
  uVar35 = *(ulonglong *)(lVar5 + -0x420);
  uVar41 = ((ulonglong)(uVar11 >> 0x10) | uVar26 << 0x10) ^ uVar23 >> 0x10;
  uVar26 = CONCAT44(DAT_182670838,DAT_182670838);
  *puVar19 = uVar41 ^ uVar37;
  uVar9 = DAT_1826707c8;
  uVar7 = DAT_1826707c0;
  uVar37 = (ulonglong)DAT_1826707c0;
  uVar35 = (uVar29 ^ uVar35) - (*(ulonglong *)(lVar5 + -0x658) ^ uVar28);
  bVar17 = *(byte *)(lVar5 + -0x660);
  *puVar1 = (CONCAT44(uVar11,uVar11) ^ uVar23) << (((byte)uVar6 ^ 0x18) & 0x3f) ^ uVar26;
  uVar41 = uVar41 | uVar26 ^ *puVar25;
  *(ulonglong *)(lVar5 + -0x890) = uVar35 ^ uVar33;
  *puVar43 = uVar41 ^ uVar34;
  *(ulonglong *)(lVar5 + -0xce0) = uVar35 - uVar41 ^ uVar47;
  uVar35 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar5 + -0xbb0) =
       (CONCAT44(uVar7,uVar9) ^ 0xe85e6bf1aafaee0c) >> ((bVar17 ^ (byte)uVar15) & 0x3f);
  uVar26 = (CONCAT44(uVar20,uVar13) ^ 0x2c92050062eba7f3) -
           (*(ulonglong *)(lVar5 - (uVar35 ^ 0x2d286432)) ^ uVar36);
  *(ulonglong *)(lVar5 - (uVar31 ^ 0xd249ea85)) = uVar26 ^ uVar27;
  uVar35 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  uVar31 = (ulonglong)DAT_182670a84;
  uVar41 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *puVar1 = (*puVar43 ^ uVar34) + uVar26 ^ uVar35;
  uVar6 = DAT_1826708cc;
  uVar29 = (ulonglong)DAT_1826707e4;
  uVar26 = *(ulonglong *)(lVar5 - (uVar37 ^ 0x5040a779)) ^ uVar41 ^ uVar35 ^
           *(ulonglong *)(lVar5 + -0x220) ^ uVar30;
  *(ulonglong *)(lVar5 + -0x420) = uVar26;
  uVar37 = CONCAT44(uVar6,uVar6);
  uVar31 = *(ulonglong *)(lVar5 - (uVar29 ^ 0x3440be61)) >> 0x20 ^ uVar37 ^ uVar31;
  bVar17 = (byte)DAT_1826707ec;
  *(ulonglong *)(lVar5 + -0x658) = uVar31;
  uVar34 = (ulonglong)DAT_1826707b8;
  uVar35 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar5 + -0x660) = (uVar41 ^ uVar26) << ((bVar17 ^ 0x1d) & 0x3f) ^ uVar22;
  uVar7 = DAT_18267092c;
  uVar26 = CONCAT44(DAT_182670900,DAT_182670900);
  uVar41 = (ulonglong)DAT_18267092c;
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x92005b82)) =
       (*(ulonglong *)(lVar5 - (uVar35 ^ 0xda0d9414)) ^ uVar22 | uVar37 ^ uVar31) ^ uVar26;
  uVar35 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar5 + -0x890) =
       (*(ulonglong *)(lVar5 + -0x220) ^ uVar30) - (uVar26 ^ *(ulonglong *)(lVar5 + -0xbb0)) ^
       uVar38;
  *puVar43 = *(ulonglong *)(lVar5 - (uVar35 ^ 0xff0fa54e)) ^
             *(ulonglong *)(lVar5 - (uVar29 ^ 0x3440b6a1)) ^ CONCAT44(uVar7,uVar7) ^ uVar21 ^ uVar47
  ;
  uVar35 = CONCAT44(DAT_182670890,DAT_182670890);
  *puVar19 = (CONCAT44(uVar10,DAT_1826707d4) ^ 0x9422a0e93c59e9b) -
             (CONCAT44(uVar8,DAT_1826707b4) ^ 0x28c57a85f223cf89);
  *puVar1 = uVar35 ^ *puVar43 >> 0x20 ^ uVar41;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar18;
  return;
}



############ FUN_ 180d16760 size=5502 ############

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

void FUN_180d16760(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  byte bVar17;
  ulonglong *puVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_e0;
  byte local_d8;
  
  uVar11 = DAT_1826707ec;
  uVar10 = DAT_1826707d8;
  uVar9 = DAT_1826707d4;
  uVar15 = DAT_1826707c0;
  lVar5 = DAT_1826707a0;
  uVar40 = (ulonglong)DAT_1826707ec;
  uVar27 = (ulonglong)DAT_1826707d4;
  uVar39 = (ulonglong)DAT_1826707d8;
  uVar37 = (ulonglong)DAT_1826707c0;
  uVar24 = DAT_1826707ec * DAT_1826707d4;
  uVar34 = DAT_1826707d8 - DAT_1826707c0;
  uVar4 = *(uint *)(&DAT_18260f758 + DAT_182670c18);
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670c18) ^ DAT_1826707ec;
  uVar33 = (ulonglong)DAT_1826707d8;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  DAT_1826707c4 = uVar24;
  DAT_1826707f0 = uVar34;
  *puVar1 = CONCAT44(DAT_1826707d4,DAT_1826707c0) ^ 0xbf9bdbfdfdf73feb | 0x350a5acde58707e2;
  uVar7 = DAT_182670990;
  uVar28 = (CONCAT44(DAT_18267087c,DAT_18267087c) ^ *(ulonglong *)(lVar5 + -0x660)) << 0x2a;
  uVar41 = (ulonglong)uVar34;
  *(ulonglong *)(lVar5 + -0x588) = uVar28 ^ CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar21 = CONCAT44(uVar7,uVar7);
  puVar2 = (ulonglong *)(lVar5 + -0x5c0);
  uVar26 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar24 ^ 0xfcc94614)) =
       (*(ulonglong *)(lVar5 - (uVar39 ^ 0xec4208a4)) ^ uVar21 | uVar28) ^ uVar26;
  uVar12 = DAT_182670a44;
  *(ulonglong *)(lVar5 + -0xd88) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar34 ^ 0x7aa72b43)) ^ uVar21) + 0xfd064e310cf9ef3;
  uVar7 = DAT_182670a30;
  uVar42 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 + -0xc18) =
       (CONCAT44(DAT_1826707f8,DAT_1826707f8) ^ *(ulonglong *)(lVar5 + -0x420)) - (*puVar2 ^ uVar26)
       ^ uVar42;
  uVar29 = CONCAT44(uVar7,uVar7);
  uVar35 = CONCAT44(DAT_18267082c,DAT_18267082c);
  puVar3 = (ulonglong *)(lVar5 + -0xce0);
  uVar28 = *(ulonglong *)(lVar5 - (uVar27 ^ 0xf7fb79df)) ^ *puVar2 ^ uVar35 ^ uVar29 ^ uVar26;
  *puVar3 = uVar28;
  uVar32 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  puVar22 = (ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0x719adb39));
  *puVar22 = (uVar28 ^ uVar29) >> (((byte)uVar10 ^ 0x42) & 0x3f) ^ uVar32;
  lVar6 = DAT_1826707a0;
  *(undefined1 *)(lVar5 - (uVar41 ^ 0x7aa72942)) =
       **(undefined1 **)(lVar5 - ((ulonglong)uVar24 ^ 0xfcc9472c));
  uVar23 = CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar28 = (*(ulonglong *)(lVar6 - (uVar40 ^ 0x6c4000cc)) ^ uVar29) <<
           (((byte)uVar24 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar6 + -0x438) = uVar28 ^ uVar23;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       (CONCAT44(uVar24,uVar24) ^ 0x8195ce53b48827c7) -
       (CONCAT44(uVar34,uVar10) ^ 0x67e3344c37ab94b2);
  uVar7 = DAT_1826709b4;
  uVar30 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar28 = uVar28 | *(ulonglong *)(lVar5 + -0x7d8) ^ uVar32;
  *puVar1 = uVar28 ^ uVar30;
  lVar5 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar7,uVar7);
  puVar18 = (ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xec420a0c));
  *puVar18 = (*(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar35) - uVar28 ^ uVar32;
  uVar7 = DAT_1826709c8;
  uVar28 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar29 = CONCAT44(DAT_182670848,DAT_182670848);
  uVar33 = *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x6c400034)) ^ uVar29 ^ uVar28 ^ uVar42 ^
           *(ulonglong *)(lVar5 + -0x6b8);
  uVar36 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar5 + -0x588) = uVar33;
  bVar17 = (byte)uVar9;
  uVar38 = CONCAT44(uVar7,uVar7);
  uVar35 = (uVar33 ^ uVar28) >> ((bVar17 ^ 0xf3) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar35 ^ uVar36;
  uVar7 = DAT_182670abc;
  lVar5 = DAT_1826707a0;
  uVar28 = (uVar28 ^ uVar33) << ((bVar17 ^ 0xcb) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar28 ^ uVar38;
  uVar36 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0x420) = (uVar28 | uVar35) ^ uVar36;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xec4209ac)) = **(ulonglong **)(lVar5 + -0x4a0) ^ uVar26;
  uVar8 = DAT_1826707c4;
  uVar28 = *(ulonglong *)(lVar6 + -0x420);
  uVar26 = (ulonglong)DAT_1826707c4;
  puVar31 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707c4 ^ 0xfcc94fcc));
  uVar35 = (ulonglong)DAT_182670a90;
  uVar33 = CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar20 = DAT_182670a90 >> 0x19;
  *puVar3 = (uVar42 ^ *puVar31) - (uVar36 ^ uVar28) ^ uVar21;
  uVar7 = DAT_182670884;
  uVar28 = *(ulonglong *)(lVar6 + -0x660) ^ uVar33 ^ uVar36 ^ uVar32 ^ uVar28;
  uVar36 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar6 + -0x400) = uVar28;
  uVar35 = ((ulonglong)uVar20 | uVar35 << 7) ^ uVar28 >> 0x19;
  *(ulonglong *)(lVar6 + -0x7d8) = uVar35 ^ uVar36;
  uVar12 = DAT_182670a98;
  local_e0 = (byte)uVar15;
  uVar28 = (*(ulonglong *)(lVar6 - (uVar26 ^ 0xfcc947d4)) ^ uVar33) << ((local_e0 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar6 + -0x438) = uVar28 ^ CONCAT44(uVar7,uVar7);
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x7aa72dab)) = (uVar28 | uVar35) ^ uVar36;
  uVar33 = CONCAT44(DAT_18267093c,DAT_18267093c);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (*(ulonglong *)(lVar6 + -0x660) ^ uVar32) - (CONCAT44(uVar9,uVar24) ^ 0xa91692132caa7930) ^
       uVar33;
  *(ulonglong *)(lVar6 - (uVar40 ^ 0x6c4009a4)) = CONCAT44(uVar34,uVar8) ^ 0x126efebfd43eb738;
  lVar5 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xec420ad4)) ^ uVar33) -
       (*(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xec420e4c)) ^ uVar36) ^ uVar35;
  uVar7 = DAT_182670af4;
  *(ulonglong *)(lVar5 + -0xd88) =
       (CONCAT44(uVar11,uVar11) ^ 0x176a95ff0d9393d2) >> ((local_e0 ^ 0xc5) & 0x3f);
  uVar26 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0x7aa72a4b)) =
       (*(ulonglong *)(lVar5 + -0x220) ^ uVar36) - (CONCAT44(uVar9,uVar11) ^ 0xcc4f42d9ddb7518e) ^
       uVar26;
  lVar5 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x719ad8c1)) =
       *puVar3 ^ uVar36 ^ uVar30 ^ *puVar1 ^ uVar21;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xec42086c)) =
       (uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0x420)) >> (((byte)uVar24 ^ 0xf5) & 0x3f) ^ uVar38;
  *puVar22 = *(ulonglong *)(lVar6 + -0xc18) ^ uVar36 ^ *(ulonglong *)(lVar6 + -0x420) ^ uVar42;
  uVar7 = DAT_182670930;
  uVar28 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar6 + -0x438) = (uVar36 ^ *(ulonglong *)(lVar6 + -0x420)) << 0x1f ^ uVar28;
  uVar12 = DAT_182670aec;
  uVar42 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0x588) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x7aa72bb3)) ^ uVar28 |
       uVar38 ^ *(ulonglong *)(lVar5 + -0x400)) ^ uVar42;
  uVar20 = DAT_1826707c4;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707c4 ^ 0xfcc94e5c)) =
       (*puVar3 ^ uVar21) - (CONCAT44(uVar24,uVar15) ^ 0x275b2a41552aef7e) ^ uVar28;
  *(uint *)(lVar5 + -0x280) = *(uint *)(lVar5 + -0x398) | *(uint *)(lVar5 + -0x2d4);
  puVar19 = (ulonglong *)(lVar5 - (uVar41 ^ 0x7aa72a03));
  puVar25 = (ulonglong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (uVar28 ^ *(ulonglong *)(lVar5 + -0xd88)) - (*puVar19 ^ uVar42) ^ uVar30;
  uVar8 = DAT_1826709b8;
  lVar5 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *puVar1 = CONCAT44(uVar34,uVar34) ^ *puVar25 ^ uVar32 ^ 0x64ac98761b16e2aa;
  uVar28 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar39 = (CONCAT44(uVar24,uVar9) ^ 0xb914dc3a7bffafb2) + (uVar42 ^ *(ulonglong *)(lVar5 + -0x588))
           ^ uVar28;
  *(ulonglong *)(lVar5 + -0xc18) = uVar39;
  *(ulonglong *)(lVar5 - (uVar40 ^ 0x6c400bf4)) =
       uVar36 ^ uVar39 ^ uVar28 ^ uVar35 ^ *(ulonglong *)(lVar5 + -0x4c8);
  *(undefined8 *)(lVar5 + -0x420) = 0xfffdfaff77ff8e7f;
  uVar21 = *(ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0xfcc9440c)) >> 5 ^
           ((ulonglong)uVar8 << 0x1b | (ulonglong)(uVar8 >> 5));
  uVar39 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar5 + -0x400) = uVar21 ^ CONCAT44(DAT_182670af0,DAT_182670af0);
  uVar7 = DAT_182670a84;
  local_d8 = (byte)uVar34;
  uVar28 = *(ulonglong *)(lVar5 + -0x4c8);
  uVar32 = (uVar36 ^ *(ulonglong *)(lVar5 + -0x7d8)) << ((local_d8 ^ 0xb0) & 0x3f);
  *(ulonglong *)(lVar5 + -0x438) = uVar32 ^ uVar39;
  uVar36 = CONCAT44(uVar7,uVar7);
  uVar39 = CONCAT44(uVar15,DAT_1826707bc);
  uVar21 = uVar21 | uVar32;
  *puVar3 = uVar21 ^ uVar36;
  uVar7 = DAT_1826709cc;
  uVar41 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  *(ulonglong *)(lVar5 + -0xd88) = (uVar35 ^ uVar28) - uVar21 ^ uVar41;
  uVar20 = DAT_182670870;
  uVar32 = (ulonglong)DAT_182670870;
  *puVar18 = (uVar39 ^ 0x1268e9b69062bbee) >> ((local_e0 ^ 0xfc) & 0x3f);
  lVar5 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e0 ^ 0xfffb7d0f)) =
       uVar40 ^ *puVar2 ^ *(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar26 ^ uVar30;
  uVar12 = DAT_182670a68;
  uVar28 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar5 + -0x588) =
       (CONCAT44(uVar11,uVar10) ^ 0xffe52713c983d4f9) >>
       (((byte)uVar7 ^ *(byte *)(lVar5 + -0xd88)) & 0x3f);
  uVar21 = CONCAT44(uVar12,uVar12);
  *puVar31 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0xfcc94524)) ^ uVar40) >> (((byte)uVar11 ^ 9) & 0x3f)
             ^ uVar21;
  uVar8 = DAT_1826707f4;
  uVar20 = DAT_1826707e4;
  *(ulonglong *)(lVar5 + -0x420) = (uVar33 ^ *(ulonglong *)(lVar5 + -0x6b8)) >> (bVar17 & 0x3f);
  uVar28 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *puVar22 = (uVar40 ^ *puVar1) << (((byte)uVar11 ^ 0x37) & 0x3f) ^ uVar28;
  uVar7 = DAT_1826708c0;
  lVar6 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar5 + -0x400) =
       (uVar28 ^ *(ulonglong *)(lVar5 + -0x7d8) | uVar21 ^ *(ulonglong *)(lVar5 + -0xc18)) ^ uVar39;
  uVar26 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar6 + -0x438) =
       (*(ulonglong *)(lVar6 + -0x220) ^ uVar30) -
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x8448802)) ^ uVar39) ^ uVar26;
  lVar5 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_182670854,DAT_182670854);
  bVar16 = (byte)DAT_1826707c8;
  uVar35 = CONCAT44(DAT_182670824,DAT_182670824);
  uVar28 = *(ulonglong *)(lVar6 - ((ulonglong)uVar20 ^ 0x67d54113)) ^ uVar21 ^ uVar39 ^ uVar41 ^
           *(ulonglong *)(DAT_1826707a0 + -0xd88);
  puVar25 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x119595fb));
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar28;
  uVar33 = (ulonglong)DAT_1826707a8;
  *puVar25 = (uVar28 ^ uVar21) >> ((bVar16 ^ 0xe8) & 0x3f) ^ uVar35;
  uVar28 = *(ulonglong *)(lVar5 + -0x660);
  uVar39 = *(ulonglong *)(lVar5 + -0xd88);
  uVar30 = (uVar21 ^ *(ulonglong *)(lVar5 + -0x4c8)) << (((byte)uVar8 ^ 0x2b) & 0x3f);
  uVar21 = (ulonglong)DAT_1826707d0;
  *puVar2 = uVar30 ^ uVar42;
  uVar7 = DAT_1826708e4;
  uVar30 = uVar35 ^ uVar28 | uVar30;
  *(undefined8 *)(lVar5 + -0x588) = 0x6e5301c;
  uVar12 = DAT_1826708fc;
  uVar42 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar30 ^ uVar42;
  uVar35 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 - (uVar21 ^ 0xfcc947f4)) = (uVar41 ^ uVar39) - uVar30 ^ uVar35;
  uVar39 = uVar26 ^ uVar40 ^ uVar36 ^ *puVar3 ^ *(ulonglong *)(lVar5 + -0x438);
  *puVar1 = uVar39;
  uVar36 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar28 = *(ulonglong *)(lVar5 - (uVar37 ^ 0x719ada11));
  uVar37 = CONCAT44(DAT_182670988,DAT_182670988);
  *(undefined4 *)(lVar5 + -0x140) = 0xe27a28e8;
  *(ulonglong *)(lVar5 + -0xc18) = (uVar28 >> 0x20 ^ uVar32) >> 8 ^ uVar36;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0xe90dc23d)) =
       (uVar40 ^ uVar39) << ((bVar17 ^ 0xe7) & 0x3f) ^ uVar37;
  lVar6 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar32 = uVar37 ^ *(ulonglong *)(lVar5 + -0x7d8) | uVar36 ^ *(ulonglong *)(lVar5 + -0xc18);
  uVar28 = (ulonglong)DAT_1826707c4;
  uVar20 = DAT_1826707c4 ^ 0x1084e445;
  uVar37 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  uVar30 = uVar32 ^ uVar21;
  *(ulonglong *)(lVar5 + -0x220) = uVar30;
  uVar28 = *(ulonglong *)(lVar5 - (uVar28 ^ 0xfcc947ec));
  *(uint *)(lVar5 + -0x540) = uVar20 | 0xe7b0a08;
  uVar12 = DAT_182670a1c;
  uVar39 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar5 + -0x400) = (uVar28 ^ uVar26) - uVar32 ^ uVar37;
  uVar7 = DAT_1826709e8;
  bVar17 = (byte)DAT_1826707e8;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar28 = uVar26 ^ uVar21 ^ uVar35 ^ uVar30 ^ *(ulonglong *)(lVar6 + -0x420);
  *(ulonglong *)(lVar6 + -0x4c8) = uVar28;
  uVar21 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar6 - (uVar39 ^ 0xfcc9465c)) =
       (uVar28 ^ uVar26) >> ((bVar17 ^ 0xaf) & 0x3f) ^ uVar21;
  uVar28 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xe90dc385)) =
       (*(ulonglong *)(lVar6 - (uVar39 ^ 0xfcc9471c)) ^ uVar26) <<
       (((byte)DAT_1826707b8 ^ 0xd) & 0x3f) ^ uVar28;
  uVar20 = DAT_1826707b0;
  lVar5 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar30 = (ulonglong)DAT_1826707ac;
  uVar26 = uVar28 ^ *puVar25 | uVar21 ^ *puVar19;
  uVar39 = (ulonglong)DAT_1826707b0;
  *puVar2 = uVar26 ^ uVar33;
  uVar21 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar28 = *(ulonglong *)(lVar5 - (uVar30 ^ 0xba28de5e));
  *(uint *)(lVar5 + -0x814) = (DAT_1826707cc ^ 0x8fa10522) + 0x70700adf;
  uVar7 = DAT_182670938;
  *(ulonglong *)(lVar5 + -0xd88) = (uVar28 ^ uVar35) - uVar26 ^ uVar21;
  uVar13 = DAT_1826709fc;
  uVar28 = (ulonglong)DAT_1826707c8;
  uVar26 = CONCAT44(uVar7,uVar7);
  uVar32 = uVar37 ^ uVar42 ^ uVar26 ^ *(ulonglong *)(lVar5 + -0x6b8) ^
           *(ulonglong *)(lVar5 + -0x400);
  *puVar3 = uVar32;
  uVar12 = DAT_182670804;
  uVar8 = DAT_1826707e0;
  uVar35 = CONCAT44(uVar13,uVar13);
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0xb08fc71f)) ^ uVar26) >>
            (((byte)DAT_1826707e4 ^ 0x2a) & 0x3f) ^ uVar35;
  uVar7 = DAT_1826707b4;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xba28dda6)) =
       (uVar32 ^ uVar26) << (((byte)uVar8 ^ 0xf8) & 0x3f) ^ uVar28;
  uVar12 = DAT_182670994;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x438) =
       CONCAT44(uVar7,uVar34) ^ 0xd2d9a38a3f6ad832 | *puVar1 ^ uVar35;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707e4 ^ 0x67d54733)) =
       (*(ulonglong *)(lVar5 + -0x7d8) ^ uVar28 | *puVar1 ^ uVar35) ^ uVar26;
  uVar7 = DAT_182670808;
  uVar28 = (ulonglong)DAT_1826707dc;
  uVar30 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar5 + -0x4c8) =
       (uVar37 ^ *(ulonglong *)(lVar5 + -0x400)) - (*(ulonglong *)(lVar5 + -0x220) ^ uVar26) ^
       uVar30;
  uVar35 = CONCAT44(uVar7,uVar7);
  uVar32 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar5 + -0x588) =
       *(ulonglong *)(lVar5 - (uVar28 ^ 0x5ffb7630)) ^ *(ulonglong *)(lVar5 + -0x220) ^ uVar35 ^
       uVar26 ^ uVar21;
  *(ulonglong *)(lVar5 - (uVar39 ^ 0x4cc5ca63)) =
       *(ulonglong *)(lVar5 - (uVar32 ^ 0xb3b97bcc)) ^ CONCAT44(DAT_1826707e8,uVar15) ^ uVar36 ^
       0x17049e5ac26d5b7e;
  uVar37 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar5 - (uVar32 ^ 0xb3b973f4)) =
       (uVar35 ^ *(ulonglong *)(lVar5 + -0x588)) >> ((local_d8 ^ 0x85) & 0x3f) ^ uVar37;
  uVar7 = DAT_1826708d4;
  uVar15 = DAT_1826707d4 + uVar20;
  uVar28 = (*(ulonglong *)(lVar5 - (uVar27 ^ 0xf7fb7e77)) ^ uVar35) <<
           (((byte)uVar20 ^ 0x31) & 0x3f);
  DAT_1826707e4 = uVar15;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar28 ^ CONCAT44(DAT_182670a58,DAT_182670a58);
  lVar5 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x44c144e2)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x420) ^ uVar37 | uVar28) ^ uVar26;
  uVar28 = CONCAT44(DAT_18267096c,DAT_18267096c);
  *(ulonglong *)(lVar5 + -0x438) =
       (*(ulonglong *)(lVar5 + -0xd88) ^ uVar21) - (CONCAT44(uVar9,uVar15) ^ 0x520f933d3fe13ecf) ^
       uVar28;
  puVar18 = (ulonglong *)(lVar5 - (uVar27 ^ 0xf7fb7fc7));
  *(ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0x44c14ef2)) =
       (uVar28 ^ *puVar18) - (*puVar3 ^ uVar26) ^ uVar29;
  *(ulonglong *)(lVar5 + -0x7d8) = CONCAT44(uVar20,uVar20) ^ 0xff6da7aa9013f6e9 | 0xc40d86829002f4c1
  ;
  uVar28 = (*(ulonglong *)(lVar5 - (uVar39 ^ 0x4cc5c0e3)) ^ uVar26) -
           (CONCAT44(uVar15,uVar9) ^ 0xa337813f240bb587);
  *(ulonglong *)(lVar5 + -0x400) = uVar28 ^ CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar5 + -0xc18) =
       *(ulonglong *)(lVar5 - (uVar27 ^ 0xf7fb7f37)) ^ uVar33 ^ *puVar2 ^ uVar38 ^ uVar30;
  *(undefined1 *)(lVar5 + -0x6c9) = **(undefined1 **)(lVar5 + -0x4f8);
  lVar6 = DAT_1826707a0;
  uVar21 = (*(ulonglong *)(lVar5 - (uVar39 ^ 0x4cc5c01b)) ^ uVar38) >>
           (((byte)uVar20 ^ 0x13) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar28 | CONCAT44(uVar20,uVar20) ^ 0xe24dab4de6e04531;
  *(ulonglong *)(lVar6 + -0x660) = uVar21 ^ uVar37;
  lVar5 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670b00,DAT_182670b00);
  puVar25 = (ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x4cc5c823));
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x44c1441a)) ^ uVar38) <<
       (((byte)uVar15 ^ 0x32) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0x44c14eba)) = (*puVar25 ^ uVar28 | uVar21) ^ uVar23;
  *(ulonglong *)(lVar5 + -0xd88) =
       CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar5 + -0xc18) ^ uVar38 ^ 0x8cb51b73cf9c1513;
  uVar12 = DAT_182670984;
  uVar28 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *puVar18 = (*(ulonglong *)(lVar5 + -0x4c8) ^ uVar30) -
             (CONCAT44(uVar15,uVar20) ^ 0x7f757124fd3291a1) ^ uVar28;
  uVar7 = DAT_182670954;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar15 ^ 0x44c14fda)) =
       (*(ulonglong *)(lVar5 + -0x438) ^ uVar28) - (uVar23 ^ *(ulonglong *)(lVar5 + -0x6b8)) ^
       CONCAT44(uVar12,uVar12);
  uVar37 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar28 = (*(ulonglong *)(lVar5 - (uVar39 ^ 0x4cc5cabb)) ^ uVar23) +
           (CONCAT44(uVar20,uVar9) ^ 0xd6cf9fe770ee659a) ^ uVar37;
  *puVar3 = uVar28;
  *puVar2 = CONCAT44(uVar7,uVar7) ^ uVar29 ^ *puVar1 ^ uVar28 ^ uVar37;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar4 ^ uVar24;
  return;
}



############ FUN_ 180d29270 size=4548 ############

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

void FUN_180d29270(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint *puVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  byte *pbVar37;
  uint *puVar38;
  uint *puVar39;
  uint uVar40;
  uint uVar41;
  ulonglong uVar42;
  uint *puVar43;
  ulonglong uVar44;
  uint *puVar45;
  ulonglong uVar17;
  ulonglong uVar32;
  
  uVar22 = DAT_182670848;
  uVar9 = DAT_1826707ec;
  uVar23 = DAT_1826707d0;
  uVar35 = DAT_1826707cc;
  uVar28 = DAT_1826707c8;
  uVar27 = DAT_1826707c0;
  uVar16 = DAT_1826707b4;
  lVar6 = DAT_1826707a0;
  uVar42 = (ulonglong)DAT_1826707d0;
  uVar44 = (ulonglong)DAT_1826707b4;
  uVar13 = ~DAT_1826707d0;
  uVar17 = (ulonglong)uVar13;
  uVar36 = (ulonglong)DAT_1826707c8;
  uVar29 = DAT_1826707c0 & DAT_1826707ec;
  uVar31 = DAT_1826707cc << 0x10 | DAT_1826707cc >> 0x10;
  uVar32 = (ulonglong)uVar31;
  uVar30 = DAT_1826707c8 * DAT_1826707b4;
  uVar40 = DAT_1826707e8 << 0x10 | DAT_1826707e8 >> 0x10;
  uVar14 = *(uint *)(&DAT_18260f750 + (uVar17 ^ 0x22a04021) + (longlong)DAT_182670c54) ^
           DAT_1826707d0;
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670c54) ^ DAT_1826707b4;
  puVar4 = (uint *)(DAT_1826707a0 + -0x14);
  DAT_1826707a8 = uVar30;
  DAT_1826707b8 = uVar13;
  DAT_1826707dc = uVar31;
  DAT_1826707e0 = uVar29 ^ 0x2fbdd863;
  DAT_1826707f4 = uVar40;
  *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0xcb2c6c2e)) =
       (*(uint *)(DAT_1826707a0 + -0x3d4) ^ DAT_18267094c |
       *(uint *)(DAT_1826707a0 + -0x814) ^ DAT_182670824) ^ DAT_182670988;
  uVar24 = *(uint *)(lVar6 + -0x398) ^ DAT_182670ac4 ^ DAT_182670988;
  *puVar4 = (uVar22 ^ *(uint *)(lVar6 + -0xb54)) + (DAT_182670aec ^ *(uint *)(lVar6 + -0x43c)) ^
            DAT_182670a94;
  *(uint *)(lVar6 + -0x68c) =
       *(uint *)(lVar6 - ((ulonglong)uVar28 ^ 0xbfbfcade)) ^ DAT_182670950 ^ DAT_182670a94;
  *(uint *)(lVar6 - ((ulonglong)uVar30 ^ 0xe4b9158e)) = uVar24;
  puVar5 = (uint *)(lVar6 + -0x42c);
  *(ulonglong *)(lVar6 + -0x9c8) = 0xb5e4d5966a661cd0 >> ((byte)uVar28 & 0x3f);
  uVar10 = DAT_182670a34;
  *puVar5 = *(uint *)(lVar6 - (uVar44 ^ 0x681cf91d)) ^ DAT_182670a34 ^ DAT_182670950;
  *(uint *)(lVar6 - ((ulonglong)uVar40 ^ 0xbfbfc0fe)) =
       *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0x80522ba4)) ^ DAT_1826707f8 ^ DAT_182670ac4;
  uVar41 = DAT_1826709cc;
  uVar22 = DAT_1826709c8;
  uVar33 = (ulonglong)DAT_1826709cc;
  uVar18 = (ulonglong)(uVar29 ^ 0x2fbdd863);
  *(ulonglong *)(lVar6 + -0xcf8) =
       CONCAT44(DAT_182670a88,DAT_182670a88) ^ *(ulonglong *)(lVar6 + -0xbb0) |
       CONCAT44(uVar9,uVar23) ^ 0xf02f590f2cf840a0;
  uVar27 = DAT_182670878;
  uVar24 = DAT_1826707e8;
  uVar19 = (ulonglong)DAT_1826707e8;
  uVar25 = DAT_182670878 & 0xff;
  pbVar37 = (byte *)((CONCAT44(uVar29,uVar31) ^ 0x1224006fb6cb2c) * 0x20 +
                     (CONCAT44(DAT_1826707e8,uVar9) ^ 0xcacabfbf5b13f481) +
                    *(longlong *)(lVar6 + -0x30));
  *(ulonglong *)(lVar6 + -0x4f8) = (ulonglong)pbVar37 ^ uVar33;
  bVar12 = *pbVar37 ^ (byte)uVar27 ^ (byte)DAT_182670adc;
  puVar1 = (uint *)(lVar6 + -0x9ec);
  *(byte *)(lVar6 + -0xc35) = bVar12;
  *puVar1 = uVar25 ^ bVar12 ^ uVar22;
  uVar33 = (ulonglong)DAT_1826707c0;
  *(longlong *)(lVar6 - ((ulonglong)uVar16 ^ 0x681cfb81)) =
       0x6c355284099000ba << ((byte)*(undefined8 *)(lVar6 + -0x9e0) & 0x3f);
  uVar27 = DAT_1826707cc;
  uVar26 = DAT_1826707e8 ^ 0x1eef29c;
  *(uint *)(lVar6 + -0x598) =
       (*(uint *)(lVar6 - (uVar33 ^ 0x80522674)) ^ DAT_1826707f8) + uVar26 ^ DAT_18267087c;
  uVar11 = DAT_182670af8;
  bVar20 = (byte)uVar30 ^ 0x7b;
  *(ulonglong *)(lVar6 + -0x660) =
       (CONCAT44(uVar29,uVar13) ^ 0xa2ee641c54f31068) -
       (CONCAT44(uVar27,uVar28) ^ 0xff6b41d7ef3655a4);
  *(uint *)(lVar6 - ((ulonglong)uVar40 ^ 0xbfbfc81e)) =
       (*puVar1 ^ uVar22) << (bVar20 & 0x1f) ^ uVar11;
  uVar27 = (*(uint *)(lVar6 - ((ulonglong)uVar23 ^ 0xdd5fba4e)) ^ DAT_18267087c) -
           (*(uint *)(lVar6 + -0x2d4) ^ uVar11) ^ DAT_182670990;
  *(uint *)(lVar6 + -0x8e0) = uVar27;
  *(uint *)(lVar6 - (uVar36 ^ 0xbfbfc6fe)) =
       (uVar27 ^ DAT_182670990) * (uVar10 ^ *puVar5) ^ DAT_182670af0;
  *(uint *)(lVar6 - (uVar18 ^ 0x2faffd23)) = (*puVar1 ^ uVar22) * 0x12 ^ DAT_182670854;
  uVar22 = DAT_18267096c;
  bVar21 = (byte)DAT_1826707c0 ^ 0x4d;
  puVar39 = (uint *)(lVar6 - ((ulonglong)uVar40 ^ 0xbfbfcf8a));
  puVar2 = (uint *)(lVar6 + -0x140);
  *puVar39 = (*puVar2 ^ DAT_182670854) + (*(uint *)(lVar6 + -0xc34) ^ DAT_182670af0) ^ DAT_18267096c
  ;
  uVar25 = _DAT_18267097c;
  puVar3 = (uint *)(lVar6 + -0x540);
  uVar34 = (*(uint *)(lVar6 - (uVar32 ^ 0x6fb6ce6c)) ^ uVar22) << (bVar21 & 0x1f);
  *(uint *)(lVar6 + -0x280) = uVar34 ^ DAT_1826709a8;
  uVar27 = DAT_182670848;
  uVar22 = (*puVar3 ^ uVar22) >> 0x13 ^ DAT_182670a6c;
  *(uint *)(lVar6 + -0xc04) = uVar22;
  *(uint *)(lVar6 + -0xc0c) = (uVar34 | uVar22 ^ DAT_182670a6c) ^ DAT_182670954;
  *(ulonglong *)(lVar6 + -0x118) = CONCAT44(uVar9,uVar13) ^ 0xe22840180004449 | 0x71d033e416fd91a6;
  uVar33 = CONCAT44(uVar31,DAT_1826707cc);
  *(uint *)(lVar6 + -0x814) =
       (*(uint *)(lVar6 - ((ulonglong)uVar16 ^ 0x681cf4c5)) ^ uVar27) +
       (*(uint *)(lVar6 - ((ulonglong)uVar23 ^ 0xdd5fbbfa)) ^ uVar10) ^ uVar41;
  uVar22 = DAT_1826708ac ^ DAT_182670954;
  *(ulonglong *)(lVar6 - (uVar19 ^ 0xcacabb9f)) =
       (CONCAT44(uVar27,uVar27) ^ *(ulonglong *)(lVar6 + -0x658)) + (uVar33 ^ 0x5eaec58b3be954a5);
  uVar27 = DAT_1826707c0;
  uVar22 = uVar22 ^ *(uint *)(lVar6 + -0xc0c);
  uVar19 = (ulonglong)DAT_1826707c0;
  uVar23 = *(uint *)(lVar6 - ((ulonglong)uVar9 ^ 0x5b13fc87)) ^ DAT_1826708c4;
  *(uint *)(lVar6 + -0x43c) = uVar22;
  puVar38 = (uint *)(lVar6 - (uVar19 ^ 0x80522f94));
  *(uint *)(lVar6 + -0x3d4) = uVar23 ^ uVar41;
  bVar12 = (byte)DAT_182670a18;
  uVar23 = uVar22 ^ DAT_1826709f8 ^ DAT_1826708ac;
  *puVar4 = *puVar38 ^ uVar25 ^ DAT_1826708c4;
  uVar19 = (ulonglong)DAT_182670920;
  *(uint *)(lVar6 + -0x398) = uVar23;
  pbVar37 = (byte *)((CONCAT44(uVar29,uVar30) ^ 0x122400e4b9126a) * 0x20 +
                    *(longlong *)(lVar6 + -0x30) + 0x1d);
  *(ulonglong *)(lVar6 + -0x4f8) = (ulonglong)pbVar37 ^ uVar19;
  *(byte *)(lVar6 - (uVar32 ^ 0x6fb6c719)) = *pbVar37 ^ bVar12 ^ (byte)DAT_182670adc;
  *(ulonglong *)(lVar6 + -0xb70) = uVar36 << 0x32 ^ 0x29c4000000000000;
  uVar41 = (bVar12 ^ *(byte *)(lVar6 + -0xc35)) ^ DAT_182670a9c;
  *(uint *)(lVar6 + -0x7e4) =
       (*(uint *)(lVar6 + -0x398) ^ DAT_1826709f8) + (uVar16 ^ 0xa338b2b2) ^ DAT_182670804;
  *(uint *)(lVar6 + -0x68c) = uVar41;
  uVar41 = uVar41 ^ DAT_182670a9c;
  uVar23 = uVar41 << (bVar20 & 0x1f) ^ DAT_182670a28;
  *(uint *)(lVar6 + -0xa34) = uVar23;
  lVar7 = DAT_1826707a0;
  uVar23 = (*(uint *)(lVar6 - (uVar17 ^ 0x22a047cd)) ^ DAT_182670804) - (uVar23 ^ DAT_182670a28) ^
           DAT_18267085c;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (CONCAT44(uVar9,uVar31) ^ 0xc3e66ccc6d71591) - (CONCAT44(uVar13,uVar16) ^ 0xfe06d1b44b46c2c9)
  ;
  *(uint *)(lVar7 + -0x598) = uVar23;
  uVar31 = (*(uint *)(lVar7 - (uVar42 ^ 0xdd5fbfc2)) ^ uVar25) * (uVar23 ^ DAT_18267085c) ^
           DAT_182670908;
  *(uint *)(lVar7 + -0x2d4) = uVar31;
  uVar23 = DAT_1826707bc;
  uVar31 = uVar31 ^ DAT_182670908;
  uVar33 = (ulonglong)DAT_1826707bc;
  uVar42 = CONCAT44(uVar9,DAT_1826707cc);
  uVar19 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar7 + -0x3b0) =
       (CONCAT44(uVar27,uVar29) ^ 0xad361c59e2a2b173) >> (((byte)uVar16 ^ 0x9a) & 0x3f);
  uVar41 = (DAT_1826707a8 ^ 0xe4b91277) * uVar41;
  *(ulonglong *)(lVar7 + -0x548) =
       (uVar42 ^ 0x6eb2107748f281a6) + (CONCAT44(uVar23,uVar24) ^ 0x84d2123dbc22dfa4);
  uVar22 = DAT_1826707c4;
  *(uint *)(lVar7 + -0x8e0) = uVar41 ^ uVar11;
  uVar10 = DAT_182670abc;
  uVar8 = DAT_1826707b0;
  *(uint *)(lVar7 - (uVar19 ^ 0xcb2c665a)) = uVar41 + uVar31 ^ DAT_182670abc;
  uVar41 = DAT_182670a78;
  uVar35 = (*(uint *)(lVar7 - ((ulonglong)uVar22 ^ 0xcacab653)) ^ uVar10) <<
           (((byte)(uVar35 >> 0x10) ^ 0x21) & 0x1f) ^ DAT_18267086c;
  uVar27 = *puVar1;
  *(uint *)(lVar7 + -0xc34) = uVar35;
  uVar35 = uVar35 ^ DAT_18267086c;
  uVar27 = (uVar27 ^ uVar10) >> 0x13;
  *puVar2 = uVar27 ^ uVar41;
  *puVar3 = (uVar27 | uVar35) ^ DAT_18267091c;
  uVar27 = DAT_1826707f0;
  uVar19 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar7 + -0x400) =
       (CONCAT44(uVar40,uVar28) ^ 0x65367bb50fe96811) << (((byte)uVar22 ^ 0x81) & 0x3f);
  uVar10 = DAT_182670a30;
  *(uint *)(lVar7 - (uVar19 ^ 0xe273aeed)) =
       (*(uint *)(lVar7 - ((ulonglong)uVar22 ^ 0xcacab4eb)) ^ DAT_182670848) + (*puVar4 ^ uVar25) ^
       DAT_182670980;
  *(uint *)(lVar7 - ((ulonglong)uVar23 ^ 0x1a6cc0c)) =
       *(uint *)(lVar7 - ((ulonglong)uVar30 ^ 0xe4b910ea)) ^ DAT_1826709b8 ^ DAT_182670980;
  *puVar5 = *puVar3 ^ DAT_18267098c ^ DAT_18267091c;
  uVar25 = DAT_182670a34;
  uVar19 = (ulonglong)DAT_1826707d4;
  puVar43 = (uint *)(lVar7 - ((ulonglong)DAT_1826707c0 ^ 0x80522454));
  *puVar43 = uVar10 ^ DAT_1826709b8 ^ *(uint *)(lVar7 + -0xc04);
  *(uint *)(lVar7 - (uVar17 ^ 0x22a04c25)) =
       *(uint *)(lVar7 - (uVar19 ^ 0xcc717beb)) ^ DAT_18267098c ^ uVar25;
  *(ulonglong *)(lVar7 - (uVar18 ^ 0x2faff67b)) =
       (CONCAT44(uVar27,uVar8) ^ 0x2f67ed731e0e4ff9) + 0x7de4e077a3c5adf6;
  uVar41 = DAT_182670acc;
  bVar12 = (byte)DAT_182670898;
  uVar35 = DAT_18267084c;
  uVar27 = DAT_1826707d0;
  pbVar37 = (byte *)((CONCAT44(uVar23,uVar16) ^ 0x1a6c008681cff91) * 0x20 +
                     (CONCAT44(uVar13,uVar24) ^ 0x22a04029cacabfb7) + *(longlong *)(lVar7 + -0x30));
  *(ulonglong *)(lVar7 + -0x4f8) = (ulonglong)pbVar37 ^ (ulonglong)DAT_182670878;
  bVar20 = *pbVar37 ^ (byte)DAT_182670adc;
  uVar16 = DAT_1826707ec ^ 0x9037b9b0;
  *(byte *)(lVar7 + -0xc35) = bVar20 ^ bVar12;
  uVar16 = (uVar25 ^ *(uint *)(lVar7 + -0xc0c)) + uVar16 ^ DAT_182670a04;
  *(uint *)(lVar7 + -0x3d4) = bVar20 ^ uVar41;
  *(uint *)(lVar7 + -0x43c) = uVar16;
  uVar16 = (uint)bVar20 << (((byte)uVar27 ^ 199) & 0x1f);
  uVar17 = (ulonglong)DAT_1826707cc;
  *(uint *)(lVar7 + -0x398) = uVar16 ^ uVar35;
  uVar16 = (*(uint *)(lVar7 - (uVar17 ^ 0xcb2c6b8a)) ^ DAT_182670a04) - uVar16;
  *(uint *)(lVar7 + -0x7e4) = uVar16 ^ DAT_182670938;
  *(longlong *)(lVar7 + -0x220) = *(longlong *)(lVar7 + -0x1b8) + -0xcdd417fae163b32;
  uVar23 = DAT_1826707d4;
  *(uint *)(lVar7 - ((ulonglong)DAT_1826707d4 ^ 0xcc7175f3)) =
       (*(uint *)(lVar7 - (uVar33 ^ 0x1a6c81c)) ^ uVar10) * uVar16 ^ uVar35;
  *(ulonglong *)(lVar7 + -0xf0) =
       CONCAT44(uVar40,uVar30) ^ *(ulonglong *)(lVar7 + -0x9c8) ^ 0x5d60ec6d4ca8a217;
  *(uint *)(lVar7 + -0x598) = (*puVar38 ^ uVar41) << 3 ^ DAT_1826709a4;
  uVar41 = DAT_182670964;
  uVar25 = DAT_182670884;
  uVar16 = DAT_1826707c0;
  uVar35 = (*(uint *)(lVar7 - (uVar32 ^ 0x6fb6ceb4)) ^ DAT_1826709a4) +
           (*(uint *)(lVar7 + -0xa34) ^ uVar35) ^ DAT_182670850;
  uVar17 = (ulonglong)DAT_1826707c0;
  *(longlong *)(lVar7 + -0x558) = *(longlong *)(lVar7 + -0x118) << ((byte)uVar22 & 0x3f);
  *(uint *)(lVar7 + -0x68c) = uVar35;
  uVar35 = uVar35 ^ DAT_182670850;
  uVar27 = uVar35 >> (((byte)uVar27 ^ 0xc5) & 0x1f);
  *(uint *)(lVar7 + -0x2d4) = uVar35 << (((byte)uVar8 ^ 0xe6) & 0x1f) ^ uVar25;
  *(uint *)(lVar7 + -0x8e0) = uVar27 ^ uVar41;
  puVar45 = (uint *)(lVar7 - (uVar17 ^ 0x80522e94));
  uVar41 = (uVar27 | uVar25 ^ *puVar45) ^ DAT_182670b00;
  *puVar1 = uVar41;
  uVar22 = DAT_18267088c;
  uVar27 = (*puVar43 ^ uVar10) + (DAT_182670848 ^ *(uint *)(lVar7 + -0xb54)) ^ DAT_182670b14;
  *(uint *)(lVar7 + -0xc34) = uVar27;
  uVar25 = uVar27 ^ DAT_182670a8c ^ DAT_182670b14;
  uVar35 = DAT_182670958 ^ DAT_182670b00;
  *(ulonglong *)(lVar7 + -0x5c0) = CONCAT44(uVar24,uVar23) ^ 0x1ed5b7dada0175ed;
  uVar35 = uVar35 ^ uVar41;
  uVar27 = DAT_182670a08 ^ DAT_182670958;
  *puVar2 = uVar25;
  *puVar4 = uVar35;
  *(uint *)(lVar7 + -0x280) = uVar22 ^ DAT_182670a8c ^ uVar25;
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x5b13f1d3)) = uVar27 ^ uVar35;
  uVar35 = DAT_1826709fc;
  uVar17 = (ulonglong)DAT_182670994;
  *(ulonglong *)(lVar7 + -0x4f8) =
       (CONCAT44(DAT_1826707e4,uVar9) ^ 0x8b2c4a825b13f480) +
       (CONCAT44(uVar29,uVar28) ^ 0x122400bfbfcaca) * 0x20 + *(longlong *)(lVar7 + -0x30) ^ uVar17;
  bVar12 = (byte)DAT_1826708c0;
  *(byte *)(lVar7 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar7 - (uVar36 ^ 0xbfbfce32)) ^ uVar17) ^ (byte)DAT_182670adc ^
       (byte)DAT_1826708c0;
  *(ulonglong *)(lVar7 - (uVar44 ^ 0x681cf929)) =
       (CONCAT44(uVar23,uVar30) ^ 0x459ba816ba2c2816) <<
       (((byte)DAT_1826709f4 ^ *(byte *)(lVar7 + -0x438)) & 0x3f);
  lVar6 = DAT_1826707a0;
  uVar27 = (uint)(*(byte *)(lVar7 + -0xc35) ^ bVar12);
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       CONCAT44(DAT_182670ab4,DAT_182670ab4) ^ *(ulonglong *)(DAT_1826707a0 + -0xc18) |
       *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  *(uint *)(lVar6 + -0xc04) = uVar27 ^ uVar35;
  *puVar5 = (*puVar39 ^ DAT_182670a08) + uVar26 ^ DAT_182670a98;
  *(uint *)(lVar6 - (uVar18 ^ 0x2faff06f)) =
       uVar27 << (((byte)DAT_1826707cc ^ 0xa7) & 0x1f) ^ DAT_1826709ac;
  uVar27 = DAT_1826707ac;
  *(ulonglong *)(lVar6 + -0x2b0) =
       CONCAT44(uVar28,uVar29) ^ 0x2fbdd863 ^ CONCAT44(uVar24,uVar16) ^ 0x3ca1ded90ed7f7da;
  uVar23 = DAT_182670a70;
  lVar6 = DAT_1826707a0;
  uVar24 = uVar27 - uVar16;
  uVar17 = (ulonglong)uVar27;
  puVar39 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0x4a7891ff));
  uVar16 = (*(uint *)(DAT_1826707a0 - (uVar17 ^ 0xcacabb93)) ^ DAT_182670a98) -
           (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x8052204c)) ^ DAT_1826709ac);
  DAT_1826707d8 = uVar24;
  *(uint *)(DAT_1826707a0 + -0x43c) = uVar16 ^ DAT_18267089c;
  lVar7 = DAT_1826707a0;
  *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0xcacab85b)) = (*puVar39 ^ uVar22) * uVar16 ^ uVar23;
  uVar16 = DAT_1826707c0 ^ 0xdc6c99af;
  *(uint *)(DAT_1826707a0 + -0x3d4) =
       (uVar35 ^ *(uint *)(DAT_1826707a0 + -0xc04)) * (uVar24 ^ 0x4a78936c) ^ DAT_182670868;
  *(uint *)(lVar7 - (uVar17 ^ 0xcacab58b)) = uVar16 << (((byte)uVar24 ^ 0x7a) & 0x1f);
  *(uint *)(lVar7 + -0x598) =
       (uVar23 ^ *(uint *)(lVar7 + -0x7e4)) + (*puVar38 ^ DAT_182670868) ^ DAT_1826709d8;
  *(uint *)(lVar7 - ((ulonglong)uVar27 ^ 0xcacab933)) =
       (*(uint *)(lVar7 - ((ulonglong)uVar24 ^ 0x4a7890e7)) ^ DAT_18267084c) + 0x2796fd23;
  uVar23 = DAT_182670990;
  uVar16 = DAT_182670944;
  uVar28 = *(uint *)(lVar7 + -0x598) ^ DAT_1826709d8;
  *(uint *)(lVar7 + -0x2d4) = uVar28 << (bVar21 & 0x1f) ^ DAT_182670990;
  uVar28 = uVar28 >> ((byte)(uVar24 ^ 0x4a78936c) & 0x1f);
  *(uint *)(lVar7 + -0x8e0) = uVar28 ^ DAT_1826707fc;
  *(uint *)(lVar7 + -0x814) = (uVar28 | uVar23 ^ *puVar45) ^ DAT_182670ab8;
  *(uint *)(lVar7 + -0xc34) =
       (*(uint *)(lVar7 - ((ulonglong)uVar27 ^ 0xcacab4eb)) ^ DAT_182670848) +
       (uVar22 ^ *(uint *)(lVar7 + -0x280)) ^ DAT_1826709d0;
  *(uint *)(lVar7 - (uVar17 ^ 0xcacab653)) =
       *(uint *)(lVar7 - ((ulonglong)uVar27 ^ 0xcacab38b)) ^ uVar16 ^ DAT_1826709d0;
  uVar23 = DAT_182670aec;
  *(ulonglong *)(lVar7 + -0x4c8) =
       CONCAT44(uVar24,uVar27) ^ 0x27805eb70ac61426 | *(ulonglong *)(lVar7 + -0x5c0);
  uVar16 = uVar16 ^ *puVar1 ^ uVar23;
  uVar27 = *(uint *)(lVar7 - ((ulonglong)uVar24 ^ 0x4a789b6b)) ^ DAT_1826708e4 ^ DAT_182670ab8;
  *puVar2 = uVar27;
  uVar27 = uVar27 ^ DAT_182670a10 ^ DAT_1826708e4;
  *puVar4 = uVar16;
  *puVar3 = -0x389e8fcf << (((byte)uVar23 ^ (byte)uVar16) & 0x1f);
  *puVar5 = uVar27;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar14;
  return;
}



############ FUN_ 180c55e90 size=4013 ############

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

void FUN_180c55e90(void)

{
  uint *puVar1;
  uint *puVar2;
  uint uVar3;
  byte bVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint *puVar18;
  byte *pbVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint *puVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  uint *puVar36;
  
  uVar26 = DAT_182670ab8;
  uVar16 = DAT_1826708a4;
  uVar8 = DAT_1826707d8;
  uVar7 = DAT_1826707c0;
  lVar5 = DAT_1826707a0;
  uVar14 = (ulonglong)DAT_1826707c0;
  uVar30 = (ulonglong)DAT_1826707d8;
  uVar3 = *(uint *)(&DAT_18260f758 + DAT_182670cbc);
  uVar34 = DAT_1826707c0 + DAT_1826707d8;
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670cbc) ^ DAT_1826707c0;
  bVar4 = (byte)DAT_1826707d8;
  bVar15 = bVar4 ^ 0x6e;
  uVar31 = *(uint *)(DAT_1826707a0 + -0x68c) ^ DAT_18267080c;
  uVar25 = uVar31 << (bVar15 & 0x1f) ^ DAT_182670a6c;
  bVar28 = (byte)DAT_1826707c0;
  DAT_1826707e4 = uVar34;
  *(uint *)(DAT_1826707a0 + -0x43c) = uVar25;
  uVar25 = uVar25 ^ DAT_182670a6c;
  *(longlong *)(lVar5 + -0x588) = -0x55fa644a12c7d165 << ((bVar28 ^ 0xbe) & 0x3f);
  uVar13 = (ulonglong)uVar8;
  puVar36 = (uint *)(lVar5 - (uVar13 ^ 0x4a7890e7));
  puVar1 = (uint *)(lVar5 + -0x7e4);
  *(uint *)(lVar5 + -0x540) = (*puVar36 ^ uVar16) - uVar25 ^ DAT_182670990;
  *puVar1 = (*(uint *)(lVar5 - (uVar14 ^ 0x400464c1)) ^ DAT_182670990) *
            (uVar26 ^ *(uint *)(lVar5 + -0xa34)) ^ DAT_1826709b4;
  lVar6 = DAT_1826707a0;
  uVar31 = (uVar34 ^ 0x8a7cf508) * uVar31 ^ DAT_1826708ec;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       CONCAT44(uVar34,uVar8) ^ 0xffbbfafafbaf3ffd | 0xdeb3aaaae8a93fbd;
  puVar2 = (uint *)(lVar6 + -0x3d4);
  *puVar2 = uVar31;
  uVar25 = DAT_1826708cc;
  *(uint *)(lVar5 + -0x42c) =
       (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x40046665)) ^ DAT_1826709b4) +
       (uVar31 ^ DAT_1826708ec) ^ DAT_1826708cc;
  uVar31 = DAT_182670adc;
  lVar6 = DAT_1826707a0;
  puVar18 = (uint *)(lVar5 - ((ulonglong)uVar7 ^ 0x400465ad));
  *(uint *)(DAT_1826707a0 + -0x14) =
       (uVar25 ^ *puVar18) << (((byte)DAT_1826707c0 ^ 0x8c) & 0x1f) ^ DAT_1826708c0;
  lVar5 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0x4a789f4b)) =
       (*(uint *)(lVar6 - (uVar30 ^ 0x4a789753)) ^ uVar25) >> 0x13 ^ uVar16;
  *(ulonglong *)(lVar5 + -0x5c0) = *(ulonglong *)(lVar5 + -0x890) | *(ulonglong *)(lVar5 + -0xf0);
  *(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0x8a7cf780)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0x8a7cf514)) ^ DAT_1826708c0 |
       *(uint *)(lVar5 + -0xc34) ^ uVar16) ^ DAT_182670884;
  uVar25 = DAT_182670918;
  uVar20 = *(uint *)(lVar5 + -0x280) ^ DAT_1826709a0 ^ DAT_182670884;
  uVar16 = (*(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0x4a78982b)) ^ DAT_182670848) +
           (uVar26 ^ *(uint *)(lVar5 + -0xa34)) ^ DAT_182670a64;
  *(uint *)(lVar5 + -0x2d4) = uVar16;
  *(uint *)(lVar5 + -0x598) = uVar16 ^ uVar31 ^ DAT_182670a64;
  *(uint *)(lVar5 - ((ulonglong)uVar7 ^ 0x40046995)) = uVar20;
  *(uint *)(lVar5 + -0x9ec) = *(uint *)(lVar5 + -0x598) ^ uVar25 ^ uVar31;
  *(uint *)(lVar5 + -0xc04) = *(uint *)(lVar5 + -0x814) ^ DAT_182670860 ^ DAT_1826709a0;
  uVar20 = DAT_1826709fc;
  pbVar19 = (byte *)((CONCAT44(uVar7,uVar8) ^ 0x400461814a78937f) * 0x20 +
                     (CONCAT44(uVar34,uVar34) ^ 0x8a7cf5008a7cf513) + *(longlong *)(lVar5 + -0x30));
  *(ulonglong *)(lVar5 + -0x248) = (ulonglong)pbVar19 ^ (ulonglong)DAT_18267089c;
  uVar26 = DAT_182670ab0 & 0xff;
  *(byte *)(lVar5 - (uVar30 ^ 0x4a789f4a)) = *pbVar19 ^ (byte)DAT_182670ab0 ^ (byte)uVar31;
  uVar16 = DAT_182670a80;
  *(byte *)(lVar5 + -0x619) =
       *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x400463f1)) ^ (ulonglong)DAT_182670958)
       ^ (byte)uVar31;
  *(uint *)(lVar5 + -0xc0c) = *(byte *)(lVar5 - ((ulonglong)uVar34 ^ 0x8a7cf935)) ^ uVar26 ^ uVar16;
  uVar26 = DAT_1826707c0;
  uVar17 = DAT_1826707c0 ^ 0x8b202ca2;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x400467e1)) =
       (CONCAT44(uVar7,uVar34) ^ 0x3b973c57ccd60732) << (((byte)uVar34 ^ 7) & 0x3f);
  lVar5 = DAT_1826707a0;
  *puVar36 = (*(uint *)(DAT_1826707a0 + -0xc04) ^ DAT_182670860) + uVar17 ^ uVar20;
  *(uint *)(lVar5 - ((ulonglong)uVar7 ^ 0x400465bd)) =
       (*(uint *)(lVar5 + -0xc0c) ^ uVar16) << (bVar15 & 0x1f) ^ DAT_182670938;
  uVar22 = DAT_182670adc;
  uVar31 = (*(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0x8a7cf698)) ^ uVar20) -
           (*(uint *)(lVar5 + -0x43c) ^ DAT_182670938) ^ DAT_18267085c;
  *(uint *)(lVar5 + -0x540) = uVar31;
  *(uint *)(lVar5 + -0x68c) =
       (uVar31 ^ DAT_18267085c) * (uVar25 ^ *(uint *)(lVar5 + -0x9ec)) ^ DAT_182670a14;
  *puVar1 = (*(uint *)(lVar5 + -0xc0c) ^ uVar16) * (uVar26 ^ 0x40046192) ^ DAT_182670a0c;
  *(ulonglong *)(lVar5 + -0x6f0) =
       (CONCAT44(uVar8,uVar34) ^ 0xa29a033815f1ab0d) >>
       ((byte)*(undefined8 *)(lVar5 + -0x5c0) & 0x3f);
  uVar16 = DAT_182670970;
  uVar31 = (*(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0x8a7cf38c)) ^ DAT_182670a14) +
           (*(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0x8a7cf2e4)) ^ DAT_182670a0c);
  *puVar2 = uVar31 ^ DAT_182670970;
  *(uint *)(lVar5 + -0x42c) = uVar31 << ((bVar4 ^ 0x72) & 0x1f) ^ DAT_1826709f0;
  *(uint *)(lVar5 - (uVar13 ^ 0x4a78936b)) =
       (*puVar2 ^ uVar16) >> (((byte)uVar34 ^ 0x13) & 0x1f) ^ _DAT_1826708c8;
  *(byte *)(lVar5 + -0x619) =
       *(byte *)((ulonglong)DAT_18267095c ^ *(ulonglong *)(lVar5 + -0x4f8)) ^ (byte)uVar22;
  uVar9 = DAT_182670a7c;
  uVar31 = DAT_1826707cc;
  uVar16 = DAT_1826707b8;
  lVar6 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707cc;
  uVar33 = (ulonglong)DAT_1826707b8;
  uVar35 = (ulonglong)DAT_1826707cc;
  *(uint *)(lVar5 - ((ulonglong)uVar34 ^ 0x8a7cf934)) =
       (*(uint *)(lVar5 - ((ulonglong)uVar7 ^ 0x40046195)) ^ _DAT_1826708c8 |
       *(uint *)(lVar5 + -0x42c) ^ DAT_1826709f0) ^ DAT_182670814;
  uVar25 = (uVar25 ^ *(uint *)(lVar5 + -0x9ec)) + (DAT_182670848 ^ *(uint *)(lVar5 + -0xb54)) ^
           DAT_182670960;
  *(uint *)(lVar5 + -0xa34) = uVar25;
  uVar25 = uVar25 ^ DAT_182670a20 ^ DAT_182670960;
  *(uint *)(lVar5 + -0x2d4) = uVar25;
  uVar24 = uVar31 - uVar16;
  uVar30 = CONCAT44(uVar31,uVar24);
  uVar21 = *(uint *)(lVar6 - ((ulonglong)uVar24 ^ 0x858a3359)) ^ DAT_182670814;
  DAT_1826707b0 = uVar24;
  *(uint *)(lVar6 + -0x814) = uVar25 ^ uVar9 ^ DAT_182670a20;
  uVar25 = DAT_1826707f8;
  uVar21 = uVar21 ^ uVar20;
  *(uint *)(lVar6 + -0x280) = uVar21;
  uVar21 = uVar21 ^ DAT_182670850;
  *(uint *)(lVar6 + -0x598) = uVar16 ^ 0xe225a2ac | uVar31 ^ 0xfc7344d9;
  uVar14 = (ulonglong)DAT_182670840;
  *(uint *)(lVar6 + -0xc04) = uVar21 ^ uVar20;
  bVar4 = (byte)DAT_18267096c;
  pbVar19 = (byte *)((uVar30 ^ 0xa82a7f96858a3f73) + *(longlong *)(lVar6 + -0x30));
  *(ulonglong *)(lVar6 + -0x248) = (ulonglong)pbVar19 ^ uVar14;
  bVar15 = *pbVar19 ^ bVar4 ^ (byte)uVar22;
  *(byte *)(lVar6 + -0xc35) = bVar15;
  *(uint *)(lVar6 - ((ulonglong)uVar24 ^ 0x858a3cf5)) = (bVar4 ^ bVar15) ^ uVar25;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar31 ^ 0xa82a79ce)) =
       *(ulonglong *)(lVar6 + -0x6b8) ^ 0xcbb28e6b07dff0f4;
  puVar36 = (uint *)(lVar6 - (uVar33 ^ 0x22a04415));
  *puVar36 = (*(uint *)(lVar6 + -0xc04) ^ DAT_182670850) + (uVar24 ^ 0x4eae724e) ^ DAT_1826708c4;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar31 ^ 0xa82a7c26)) =
       (CONCAT44(uVar24,uVar24) ^ 0x8bf7d97c5dece666) +
       (CONCAT44(uVar16,uVar24) ^ 0x3492a2e38c182c2f);
  uVar11 = DAT_182670aac;
  uVar22 = (*(uint *)(lVar6 + -0x398) ^ uVar25) << (((byte)uVar31 ^ 0x87) & 0x1f) ^ DAT_182670880;
  uVar20 = *(uint *)(lVar6 + -0x43c) ^ DAT_1826708c4;
  *(uint *)(lVar6 + -0x540) = uVar22;
  *(uint *)(lVar6 + -0xc0c) = uVar20 - (uVar22 ^ DAT_182670880) ^ DAT_1826709d0;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar16 ^ 0x22a04299)) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar6 + -0x7b0)) ^
       CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar20 = (*(uint *)(lVar6 - ((ulonglong)uVar24 ^ 0x858a3361)) ^ DAT_1826709d0) *
           (*(uint *)(lVar6 + -0x814) ^ uVar9) ^ DAT_182670a3c;
  *(uint *)(lVar6 + -0x68c) = uVar20;
  uVar20 = uVar20 ^ DAT_182670a3c;
  *(ulonglong *)(lVar6 + -0xce0) = (uVar30 ^ 0x9c67db8ba25c5cc9) - (uVar30 ^ 0x19a7c23e1dc70acb);
  uVar22 = (*(uint *)(lVar6 + -0x398) ^ uVar25) * (uVar16 ^ 0x22a04037) ^ DAT_182670984;
  *puVar1 = uVar22;
  lVar5 = DAT_1826707a0;
  uVar20 = (uVar22 ^ DAT_182670984) + uVar20;
  *puVar2 = uVar20 ^ uVar25;
  uVar10 = DAT_182670a84;
  *(ulonglong *)(lVar5 + -0x220) =
       (CONCAT44(uVar24,uVar16) ^ 0x48958bbce8ef62a3) <<
       ((byte)*(undefined8 *)(lVar5 + -0x5c0) & 0x3f);
  uVar22 = DAT_1826709e8;
  uVar23 = DAT_1826709e8 ^ uVar10;
  *(uint *)(lVar5 - (uVar35 ^ 0xa82a7bba)) = uVar20 << ((byte)uVar24 & 0x1f) ^ DAT_182670ab0;
  *(ulonglong *)(lVar5 + -0xac0) = CONCAT44(uVar16,uVar31) << 0x39 ^ 0x7e00000000000000;
  uVar21 = DAT_182670a50;
  uVar25 = (*(uint *)(lVar5 - ((ulonglong)uVar31 ^ 0xa82a7c42)) ^ uVar25) >> 0x13 ^ DAT_182670a94;
  uVar29 = *(uint *)(lVar5 + -0x42c) ^ DAT_182670ab0;
  uVar20 = (*(uint *)(lVar5 + -0x814) ^ uVar9) + (DAT_182670848 ^ *(uint *)(lVar5 + -0xb54)) ^
           DAT_182670afc;
  *(uint *)(lVar5 + -0xa34) = uVar20;
  uVar20 = uVar20 ^ DAT_1826708dc ^ DAT_182670afc;
  *(uint *)(lVar5 + -0x14) = uVar25;
  uVar25 = uVar25 ^ DAT_182670a94;
  *(uint *)(lVar5 + -0xc34) = uVar20;
  uVar25 = (uVar29 | uVar25) ^ uVar10;
  *(ulonglong *)(lVar5 + -0x1b8) = *(ulonglong *)(lVar5 + -0x9e0) ^ *(ulonglong *)(lVar5 + -0x658);
  uVar23 = uVar23 ^ uVar25;
  *(uint *)(lVar5 + -0x9ec) = uVar25;
  *(uint *)(lVar5 + -0x598) = uVar23;
  uVar25 = DAT_1826707b8;
  uVar23 = uVar23 ^ DAT_182670854;
  uVar30 = (ulonglong)DAT_1826709d0;
  *(uint *)(lVar5 + -0x2d4) = uVar20 ^ uVar21 ^ DAT_1826708dc;
  uVar20 = DAT_182670adc;
  *(ulonglong *)(lVar5 + -0x610) = CONCAT44(uVar16,uVar31) ^ 0xf9924f730eeb2c6d;
  *(uint *)(lVar5 - (uVar32 ^ 0xa82a7d16)) = uVar23 ^ uVar22;
  uVar9 = DAT_182670a58;
  uVar14 = (ulonglong)DAT_182670abc;
  *(byte *)(lVar5 + -0x619) = *(byte *)(*(ulonglong *)(lVar5 + -0xdb8) ^ uVar30) ^ (byte)uVar20;
  bVar4 = (byte)DAT_1826709b0;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0xa82a7b6e)) =
       (CONCAT44(uVar24,uVar31) ^ 0x858a3f6da82a7f96) * 0x20 +
       (CONCAT44(uVar16,uVar24) ^ 0x22a04029858a3f64) + *(longlong *)(lVar5 + -0x30) ^ uVar14;
  uVar23 = (*(uint *)(lVar5 + -0x280) ^ DAT_182670854) + (uVar24 ^ 0x4eae724e) ^ DAT_182670838;
  bVar15 = *(byte *)(uVar14 ^ *(ulonglong *)(lVar5 + -0x4f8)) ^ bVar4 ^ (byte)uVar20;
  *(uint *)(lVar5 + -0x43c) = uVar23;
  uVar23 = uVar23 ^ DAT_182670838;
  *(byte *)(lVar5 + -0xc35) = bVar15;
  uVar20 = (uint)(bVar15 ^ bVar4);
  *(uint *)(lVar5 + -0xc04) = uVar20 ^ uVar9;
  bVar4 = (byte)uVar25;
  uVar20 = uVar20 << ((bVar4 ^ 0x38) & 0x1f) ^ DAT_182670948;
  *(uint *)(lVar5 + -0x540) = uVar20;
  uVar23 = uVar23 - (uVar20 ^ DAT_182670948) ^ DAT_182670a80;
  *(uint *)(lVar5 - (uVar32 ^ 0xa82a739a)) = uVar23;
  uVar20 = DAT_1826708fc;
  lVar6 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x398) =
       (*(uint *)(lVar5 + -0x2d4) ^ uVar21) * (uVar23 ^ DAT_182670a80) ^ DAT_1826708fc;
  uVar23 = DAT_182670aec;
  puVar27 = (uint *)(lVar6 - ((ulonglong)uVar24 ^ 0x858a39e1));
  *puVar27 = (*(uint *)(lVar6 - (uVar32 ^ 0xa82a7392)) ^ uVar9) * (uVar25 ^ 0x22a04020) ^
             DAT_182670aec;
  *(ulonglong *)(lVar6 + -0x548) = CONCAT44(uVar8,uVar16) ^ 0xbffd7b979f7bbfe7 | 0x1d9d4b871f783fc6;
  uVar16 = DAT_182670964;
  uVar25 = (uVar23 ^ *puVar27) + (*(uint *)(lVar6 + -0x398) ^ uVar20);
  *puVar1 = uVar25 ^ DAT_182670964;
  *puVar2 = uVar25 << ((bVar4 ^ 0x24) & 0x1f) ^ DAT_182670ab4;
  *puVar18 = (*(uint *)(lVar6 - (uVar33 ^ 0x22a047cd)) ^ uVar16) >>
             ((byte)(uVar26 ^ 0x40046192) & 0x1f) ^ DAT_1826709a4;
  uVar16 = DAT_182670848;
  puVar18 = (uint *)(lVar6 - (uVar32 ^ 0xa82a7f82));
  *puVar18 = (*(uint *)(lVar6 - ((ulonglong)uVar24 ^ 0x858a3b41)) ^ DAT_1826709a4 |
             *puVar2 ^ DAT_182670ab4) ^ DAT_1826709f8;
  uVar25 = DAT_182670894;
  *(uint *)(lVar6 - (uVar32 ^ 0xa82a7782)) =
       (*(uint *)(lVar6 + -0x2d4) ^ uVar21) + (uVar16 ^ *(uint *)(lVar6 + -0xb54)) ^ DAT_182670884;
  uVar21 = DAT_18267094c ^ DAT_1826709f8;
  *(longlong *)(lVar6 - (uVar13 ^ 0x4a789317)) =
       *(longlong *)(lVar6 - ((ulonglong)uVar24 ^ 0x858a35ad)) - *(longlong *)(lVar6 + -0x9c8);
  *(uint *)(lVar6 + -0xa34) = *(uint *)(lVar6 + -0x814) ^ DAT_18267087c ^ DAT_182670884;
  uVar26 = DAT_182670adc;
  uVar16 = DAT_182670a40;
  *(uint *)(lVar6 - ((ulonglong)uVar24 ^ 0x858a3681)) = uVar21 ^ *puVar18;
  uVar30 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar6 + -0xc34) = uVar25 ^ DAT_18267087c ^ *(uint *)(lVar6 + -0xa34);
  uVar14 = (ulonglong)DAT_182670954;
  *(uint *)(lVar6 + -0x598) =
       *(uint *)(lVar6 - (uVar30 ^ 0x8fc90b5a)) ^ DAT_182670968 ^ DAT_18267094c;
  pbVar19 = (byte *)((CONCAT44(uVar31,uVar7) ^ 0xa82a7f9640046181) * 0x20 +
                     (CONCAT44(uVar31,uVar8) ^ 0xa82a7f964a78936b) + *(longlong *)(lVar6 + -0x30));
  *(ulonglong *)(lVar6 + -0x248) = (ulonglong)pbVar19 ^ uVar14;
  *(byte *)(lVar6 - (uVar13 ^ 0x4a789566)) = *pbVar19 ^ (byte)uVar20 ^ (byte)uVar26;
  *(uint *)(lVar6 - (uVar33 ^ 0x22a042a9)) =
       uVar20 & 0xff ^ (uint)*(byte *)(lVar6 + -0x619) ^ uVar16;
  *(uint *)(lVar6 + -0x43c) = (*(uint *)(lVar6 + -0x598) ^ DAT_182670968) + uVar17 ^ DAT_182670800;
  uVar26 = DAT_182670ae8;
  *(uint *)(lVar6 - (uVar13 ^ 0x4a78963f)) =
       (uVar16 ^ *(uint *)(lVar6 + -0x280)) << (((byte)uVar24 ^ 0x7c) & 0x1f) ^ DAT_182670ae8;
  *(uint *)(lVar6 - ((ulonglong)DAT_1826707f4 ^ 0xcacab3b3)) =
       (*puVar36 ^ DAT_182670800) - (uVar26 ^ *(uint *)(lVar6 + -0x540)) ^ uVar10;
  uVar13 = (ulonglong)DAT_1826707d0;
  uVar16 = (uVar16 ^ *(uint *)(lVar6 + -0x280)) * 0x14;
  uVar25 = (uVar25 ^ *(uint *)(lVar6 + -0xc34)) * (*(uint *)(lVar6 + -0xc0c) ^ uVar10) ^
           DAT_182670aa0;
  *(uint *)(lVar6 + -0xc04) = uVar25;
  uVar25 = uVar25 ^ DAT_182670aa0;
  *(uint *)(lVar6 + -0x398) = uVar16 ^ uVar22;
  *(ulonglong *)(lVar6 + -0x400) =
       (CONCAT44(uVar7,uVar34) ^ 0x48d84c92397c5ef0) <<
       ((byte)*(undefined8 *)(lVar6 + -0x558) & 0x3f);
  *(uint *)(lVar6 + -0x68c) = uVar25 + uVar16 ^ DAT_182670a8c;
  *puVar1 = (*(uint *)(lVar6 - (uVar13 ^ 0x9989c6fb)) ^ DAT_182670a8c) << 0xd ^ DAT_182670a0c;
  *puVar2 = uVar16 >> (((byte)DAT_1826707e8 ^ 0x8b) & 0x1f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar3 ^ uVar34;
  return;
}



############ FUN_ 180d150d0 size=5772 ############

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

void FUN_180d150d0(void)

{
  undefined4 *puVar1;
  byte bVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong *puVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  byte local_c8;
  
  uVar16 = DAT_1826707f0;
  uVar8 = DAT_1826707d8;
  lVar4 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707f0;
  uVar25 = (ulonglong)DAT_1826707d8;
  DAT_1826707b8 = DAT_1826707d8 & DAT_1826707f0;
  uVar32 = *(uint *)(&DAT_18260f758 + DAT_182670c14) ^ DAT_1826707b8;
  uVar21 = *(uint *)(&DAT_18260f760 + DAT_182670c14) ^ DAT_1826707f0;
  uVar38 = (ulonglong)DAT_1826707d8;
  uVar29 = (ulonglong)DAT_1826707b8;
  puVar26 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x4685401b));
  uVar35 = CONCAT44(DAT_182670a40,DAT_182670a40);
  bVar2 = (byte)DAT_1826707b8;
  uVar33 = CONCAT44(DAT_182670850,DAT_182670850);
  bVar24 = (byte)DAT_1826707f0;
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x468548cb)) =
       (uVar35 ^ *puVar26) >> ((bVar2 ^ 0x11) & 0x3f) ^ uVar33;
  uVar19 = _DAT_182670ad4;
  uVar18 = DAT_182670954;
  uVar35 = (uVar35 ^ *(ulonglong *)(lVar4 + -0xc18)) << ((bVar24 ^ 0x3d) & 0x3f);
  *(ulonglong *)(lVar4 + -0x420) = uVar35 ^ CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar37 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 + -0xa18) = (*(ulonglong *)(lVar4 + -0x4c8) ^ uVar33 | uVar35) ^ uVar37;
  uVar18 = DAT_18267091c;
  uVar10 = DAT_1826707c0;
  uVar41 = (ulonglong)DAT_1826707c0;
  uVar28 = CONCAT44(DAT_1826707c0,uVar8);
  uVar33 = (CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar4 + -0x400)) -
           (uVar28 ^ 0x2e0d562d4bb963b5);
  *(ulonglong *)(lVar4 + -0x438) = uVar33 ^ CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar45 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x44854d89)) =
       uVar33 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0xc5e5e315)) ^ uVar37) ^ uVar45;
  *(undefined1 *)(lVar4 - (uVar38 ^ 0x46854aca)) = **(undefined1 **)(lVar4 + -0x930);
  uVar3 = DAT_182670a98;
  uVar18 = DAT_182670a68;
  uVar14 = DAT_1826707e4;
  uVar30 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar35 = (ulonglong)DAT_182670a98;
  uVar33 = (CONCAT44(DAT_1826707e4,DAT_1826707b4) ^ 0xe82dbb420b17162b) +
           (uVar37 ^ *(ulonglong *)(lVar4 + -0xa18)) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x5c0) = uVar33;
  uVar38 = CONCAT44(uVar3,uVar3);
  uVar40 = CONCAT44(uVar18,uVar18);
  puVar47 = (ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x46854e23));
  *puVar47 = *(ulonglong *)(lVar4 + -0xce0) ^ uVar40 ^ uVar38 ^ uVar33 ^ uVar30;
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670a80,DAT_182670a80);
  puVar1 = (undefined4 *)(DAT_1826707a0 + -0x8e0);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       *(ulonglong *)(DAT_1826707a0 + -0x220) >> 0x20 ^ uVar36 ^ uVar35;
  *(uint *)(lVar4 - (uVar29 ^ 0x448542f1)) = (uVar16 ^ 0x9001db4f) << ((byte)*puVar1 & 0x1f);
  uVar6 = DAT_1826707e4;
  lVar5 = DAT_1826707a0;
  uVar33 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x44854e61)) =
       (*(ulonglong *)(lVar4 + -0x220) ^ uVar38) << 0x20 ^ uVar33;
  uVar38 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0xe625e692)) =
       (uVar33 ^ *(ulonglong *)(lVar5 + -0x660) | uVar36 ^ *(ulonglong *)(lVar5 + -0x998)) ^ uVar38;
  uVar19 = DAT_18267092c;
  uVar18 = DAT_1826708b8;
  uVar42 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar5 + -0x6b8) =
       (*(ulonglong *)(lVar5 + -0xce0) ^ uVar40) - (*(ulonglong *)(lVar5 + -0x6f0) ^ uVar38) ^
       uVar42;
  uVar20 = _DAT_1826709e0;
  uVar39 = CONCAT44(uVar18,uVar18);
  uVar33 = *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x7227ed2e));
  *(uint *)(lVar5 + -0xc34) = (uVar10 ^ 0xed9b0dca) * *(int *)(lVar5 + -0x140);
  uVar3 = DAT_1826707b4;
  uVar33 = uVar33 ^ CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar5 + -0x9c8) ^ uVar39 ^ uVar45;
  *(ulonglong *)(lVar5 + -0xd88) = uVar33;
  uVar36 = CONCAT44(uVar20,uVar20);
  bVar24 = (byte)uVar6;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x4685418b)) ^ uVar39) >> ((bVar24 ^ 0x86) & 0x3f)
       ^ uVar36;
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xc5e5eed5)) =
       (uVar33 ^ uVar39) << ((bVar24 ^ 0x86) & 0x3f) ^ uVar35;
  uVar18 = DAT_182670948;
  puVar27 = (ulonglong *)(lVar4 - (uVar29 ^ 0x44854419));
  *puVar27 = (uVar28 ^ 0x5b2d4670ae59cf15) << ((bVar2 ^ 0x36) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar18,uVar18);
  uVar33 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0x8c020e1c)) ^ uVar36 |
           uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  puVar23 = (ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xc5e5eccd));
  uVar35 = uVar33 ^ uVar40;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar35;
  uVar18 = DAT_1826709a4;
  *(ulonglong *)(lVar4 + -0x420) = *puVar23 ^ uVar30 | *puVar27;
  uVar19 = DAT_182670a9c;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 + -0x400) = (*(ulonglong *)(lVar4 + -0x588) ^ uVar45) - uVar33 ^ uVar36;
  uVar28 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ac ^ 0x518bc90f)) =
       uVar28 ^ uVar40 ^ uVar35 ^ uVar42 ^ *(ulonglong *)(lVar4 + -0x6b8);
  uVar17 = DAT_1826707f4;
  uVar11 = DAT_1826707e8;
  uVar9 = DAT_1826707cc;
  uVar30 = (ulonglong)DAT_1826707cc;
  uVar33 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar4 + -0xa18) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x438)) >> ((bVar2 ^ 0x3b) & 0x3f) ^ uVar33;
  uVar18 = DAT_182670a48;
  uVar6 = DAT_1826707b4;
  uVar35 = (ulonglong)DAT_1826707b4;
  bVar34 = (byte)uVar10;
  *puVar47 = (*(ulonglong *)(lVar4 - (uVar25 ^ 0x4685483b)) ^ uVar28) << ((bVar34 ^ 100) & 0x3f) ^
             uVar37;
  uVar45 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 + -0x998) =
       (*(ulonglong *)(lVar4 + -0x220) ^ uVar37 | uVar33 ^ *(ulonglong *)(lVar4 + -0xa18)) ^ uVar45;
  uVar28 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x119595fb)) =
       (uVar42 ^ *(ulonglong *)(lVar4 + -0x6b8)) -
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x8c0201dc)) ^ uVar45) ^ uVar28;
  uVar18 = DAT_182670924;
  uVar33 = CONCAT44(DAT_182670930,DAT_182670930);
  uVar37 = uVar33 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x6f0) ^ *(ulonglong *)(lVar4 + -0x400) ^
           uVar38;
  *(ulonglong *)(lVar4 + -0xce0) = uVar37;
  uVar15 = DAT_1826707ec;
  uVar37 = uVar37 ^ uVar33;
  uVar35 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar37 >> ((bVar2 ^ 0x17) & 0x3f) ^ uVar35;
  uVar37 = uVar37 << (((byte)DAT_1826707c4 ^ 0x4d) & 0x3f);
  uVar33 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xe625edea)) = uVar37 ^ uVar42;
  uVar7 = DAT_1826707dc;
  uVar3 = DAT_1826707a8;
  uVar42 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar37 = (*(ulonglong *)(lVar4 - (uVar33 ^ 0xabb4fa1c)) ^ uVar35 | uVar37) ^ uVar42;
  uVar33 = CONCAT44(DAT_1826707a8,uVar6);
  *(ulonglong *)(lVar4 + -0x658) = uVar37;
  *(ulonglong *)(lVar4 + -0x7d8) =
       (CONCAT44(uVar16,uVar7) ^ 0x8f36e6247ec43c86) + (uVar33 ^ 0x5f2c168603cf5924);
  lVar5 = DAT_1826707a0;
  puVar27 = (ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0xe90dc1e5));
  uVar35 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar40 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (uVar36 ^ *puVar27) -
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0xf7fb7da7)) ^ uVar42) ^ uVar35;
  *puVar26 = uVar40 ^ uVar42 ^ uVar28 ^ *(ulonglong *)(lVar5 + -0x660) ^ uVar37;
  uVar33 = (ulonglong)DAT_1826707d0;
  *(uint *)(lVar5 + -0x540) =
       *(uint *)(lVar5 - ((ulonglong)uVar7 ^ 0x4c3fba67)) & (uVar9 ^ 0x702bff1b);
  uVar18 = DAT_182670a34;
  uVar37 = CONCAT44(DAT_182670958,DAT_182670958);
  *(ulonglong *)(lVar5 + -0x420) =
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0xfcc94fcc)) ^ uVar40) >>
       (((byte)DAT_1826707c4 ^ 0x49) & 0x3f) ^ uVar37;
  uVar6 = DAT_1826707e4;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707ac ^ 0x518bc8bf)) =
       (uVar40 ^ *(ulonglong *)(lVar5 + -0xc18)) << ((bVar2 ^ 0x13) & 0x3f) ^ uVar36;
  uVar33 = (ulonglong)DAT_1826707d4;
  *(longlong *)(lVar5 - ((ulonglong)DAT_1826707b0 ^ 0xabb4f71c)) =
       0x7b9b7905d22f77ca << (((byte)uVar6 ^ 0xb5) & 0x3f);
  uVar18 = DAT_182670974;
  lVar4 = DAT_1826707a0;
  uVar37 = uVar36 ^ *(ulonglong *)(lVar5 + -0x588) | uVar37 ^ *(ulonglong *)(lVar5 + -0x420);
  *(ulonglong *)(lVar5 + -0x438) = uVar37 ^ uVar39;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xf7fb71e7)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x660)) - uVar37 ^ uVar36;
  uVar7 = DAT_1826707c8;
  uVar6 = DAT_1826707ac;
  uVar40 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  puVar23 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xabb4f1f4));
  *puVar23 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x7227ed66)) ^ uVar40 ^ uVar35 ^
             uVar45 ^ *(ulonglong *)(lVar4 + -0x998);
  bVar24 = (byte)uVar6;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x11959523)) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x220)) >> ((bVar24 ^ 0x23) & 0x3f);
  uVar37 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar28 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (uVar40 ^ *puVar23) >> (((byte)DAT_1826707e4 ^ 0xaa) & 0x3f) ^ uVar37;
  uVar33 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar4 + -0xce0) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x220)) << ((bVar24 ^ 3) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xe90dcc2d)) = CONCAT44(uVar8,uVar7) ^ 0xd6f31dc648bf7a57;
  uVar43 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar28 = (uVar28 ^ *(ulonglong *)(lVar4 + -0xce0) | uVar37 ^ *(ulonglong *)(lVar4 + -0x6f0)) ^
           uVar43;
  uVar37 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar4 + -0xd88) = uVar28;
  uVar13 = DAT_182670818;
  uVar33 = (ulonglong)DAT_182670818;
  uVar40 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(lVar4 + -0x7d8) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x5c0)) -
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ec ^ 0x6c4001a4)) ^ uVar43) ^ uVar37;
  uVar12 = DAT_1826707dc;
  uVar35 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *puVar27 = *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x20004635)) ^ uVar28 ^ uVar43 ^ uVar36 ^
             uVar40;
  uVar19 = DAT_182670a1c;
  uVar11 = DAT_1826707c4;
  uVar28 = (*(ulonglong *)(lVar4 + -0x400) ^ uVar40) << (((byte)uVar12 ^ 0xd8) & 0x3f);
  uVar33 = ((ulonglong)(uVar13 >> 0x19) | uVar33 << 7) ^ *(ulonglong *)(lVar4 + -0x400) >> 0x19;
  *(ulonglong *)(lVar4 + -0x658) = uVar33 ^ uVar35;
  uVar18 = DAT_182670884;
  uVar35 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar4 + -0xc18) = uVar28 ^ uVar35;
  lVar4 = DAT_1826707a0;
  uVar44 = CONCAT44(uVar18,uVar18);
  uVar28 = uVar28 | uVar33;
  uVar33 = CONCAT44(uVar8,DAT_1826707b4);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar28 ^ uVar44;
  *(ulonglong *)(lVar4 + -0x420) = (uVar33 ^ 0xa7ab2fa010821435) + uVar28;
  uVar13 = DAT_1826707e0;
  uVar8 = DAT_1826707d0;
  lVar5 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar22 = DAT_1826707f4 ^ 0x75d026;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x1345df7f)) ^ uVar36) -
       (CONCAT44(uVar16,DAT_1826707ec) ^ 0x7fc7891c1fbb278e) ^ uVar33;
  *(uint *)(lVar5 + -0xcec) = uVar22 | 0x770a2f98;
  uVar45 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar5 + -0x660) =
       (*(ulonglong *)(lVar5 - (uVar31 ^ 0xc5e5ec85)) ^ uVar33) - uVar28 ^ uVar44;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xfcc94a4c)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x4c3fbb37)) ^ uVar44) -
       (CONCAT44(uVar7,uVar13) ^ 0x828906c688ddcb99) ^ uVar45;
  *(ulonglong *)(lVar5 + -0x6b8) =
       CONCAT44(uVar11,uVar12) ^ *(ulonglong *)(lVar5 + -0xc18) ^ uVar35 ^ 0x3ff6b3c7edc15072;
  uVar40 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar5 - (uVar41 ^ 0xe625e242)) =
       uVar39 ^ *(ulonglong *)(lVar5 + -0x7d8) ^ uVar40 ^ uVar37 ^ *(ulonglong *)(lVar5 + -0x438);
  uVar18 = DAT_182670844;
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(lVar5 + -0x9c8) =
       (*(ulonglong *)(lVar5 + -0x220) ^ uVar40) >> (((byte)uVar8 ^ 0xf5) & 0x3f) ^ uVar36;
  uVar8 = DAT_1826707bc;
  uVar33 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar4 + -0x6f0) =
       (CONCAT44(uVar9,DAT_1826707bc) ^ 0xea7c6bb4f8bbc330) + 0x99ee0a1595e6379b;
  uVar19 = DAT_18267086c;
  uVar35 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  puVar26 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e8 ^ 0x11959f7b));
  *(ulonglong *)(lVar4 + -0xce0) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x518bcf17)) ^ uVar40) << ((bVar34 ^ 0x7d) & 0x3f) ^ uVar35
  ;
  lVar4 = DAT_1826707a0;
  uVar42 = CONCAT44(uVar19,uVar19);
  uVar28 = *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x448541c9)) ^ uVar36 | *puVar26 ^ uVar35;
  uVar33 = CONCAT44(uVar14,DAT_1826707d4);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar28 ^ uVar42;
  uVar7 = DAT_1826707b0;
  lVar5 = DAT_1826707a0;
  uVar35 = (*(ulonglong *)(lVar4 + -0x7d8) ^ uVar37) - (uVar33 ^ 0xa6ad4fc08bd3f707);
  uVar33 = CONCAT44(DAT_1826707b0,uVar8);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar35 ^ uVar43;
  *(ulonglong *)(lVar5 + -0x400) = (uVar33 ^ 0x54e4982048b65724) + 0xb322d71a91a8fe10;
  uVar39 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xabb4f58c)) = uVar35 - uVar28 ^ uVar39;
  uVar19 = DAT_1826708d0;
  uVar35 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar33 = (CONCAT44(uVar10,uVar13) ^ 0x26c5c9635de5900d) +
           (*(ulonglong *)(lVar5 + -0x5c0) ^ uVar42) ^ uVar35;
  *(ulonglong *)(lVar5 + -0x420) = uVar33;
  uVar20 = DAT_182670a78;
  uVar43 = CONCAT44(uVar19,uVar19);
  bVar24 = (byte)DAT_1826707f4;
  uVar37 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar33 = *(ulonglong *)(lVar5 + -0x660) ^ uVar43 ^ uVar33 ^ uVar35 ^ uVar44;
  *(ulonglong *)(lVar5 + -0xa18) = uVar33;
  uVar42 = (uVar33 ^ uVar43) >> ((bVar24 ^ 8) & 0x3f);
  uVar28 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar5 + -0x588) = uVar42 ^ uVar37;
  uVar33 = *(ulonglong *)(lVar5 + -0x998);
  uVar35 = CONCAT44(uVar15,DAT_1826707d4);
  uVar28 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0x8c02025c)) ^ uVar43) <<
           (((byte)DAT_1826707ac ^ 0xc) & 0x3f);
  *(ulonglong *)(lVar5 + -0x4c8) = uVar28 ^ CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar5 + -0xc18) = uVar35 ^ uVar33 ^ uVar45 ^ 0xdc7af699bcbb3c4f;
  uVar19 = DAT_182670ab0;
  uVar42 = uVar42 | uVar28;
  uVar46 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar42 ^ uVar46;
  lVar4 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar19,uVar19);
  uVar35 = *(ulonglong *)(DAT_1826707a0 + -0x658);
  puVar23 = (ulonglong *)(DAT_1826707a0 + -0x220);
  *(ulonglong *)(DAT_1826707a0 + -0x438) =
       (*(ulonglong *)(lVar5 + -0x660) ^ uVar44) - uVar42 ^ uVar37;
  bVar24 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar4 + -0x6f0) = (*puVar23 ^ uVar40) >> ((bVar2 ^ 3) & 0x3f);
  uVar19 = DAT_182670a6c;
  uVar9 = DAT_1826707bc;
  uVar28 = CONCAT44(DAT_182670918,DAT_182670918);
  uVar40 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar45 = uVar33 ^ uVar35 ^ uVar28 ^ uVar39 ^ uVar45;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar45;
  *(ulonglong *)(lVar4 + -0xce0) = (uVar45 ^ uVar28) >> ((bVar24 ^ 0x42) & 0x3f) ^ uVar40;
  uVar20 = DAT_182670a84;
  uVar12 = DAT_1826707e0;
  uVar35 = (*(ulonglong *)(lVar4 - (uVar41 ^ 0xe625e9aa)) ^ uVar28) <<
           (((byte)DAT_1826707f4 ^ 0x16) & 0x3f);
  uVar33 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar35 ^ CONCAT44(uVar19,uVar19);
  uVar41 = CONCAT44(uVar20,uVar20);
  uVar28 = CONCAT44(uVar11,DAT_1826707a8);
  *(ulonglong *)(lVar4 + -0x400) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x200040cd)) ^ uVar40 | uVar35) ^ uVar41;
  uVar11 = DAT_1826707d0;
  uVar35 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x7227e52e)) =
       (uVar28 ^ 0x1072b992f4501767) >> (((byte)uVar9 ^ 0xd7) & 0x3f);
  uVar7 = DAT_1826707b0;
  uVar28 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar4 + -0x5c0) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x8048258)) ^ uVar39) -
       (*(ulonglong *)(lVar4 + -0x400) ^ uVar41) ^ uVar28;
  *(uint *)(lVar4 + -0xa34) = *(uint *)(lVar4 - (uVar31 ^ 0xc5e5e5e1)) | *(uint *)(lVar4 + -0x7e4);
  uVar19 = DAT_1826708b4;
  uVar33 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar4 + -0x420) =
       *(ulonglong *)(lVar4 - (uVar30 ^ 0x8048000)) ^ *(ulonglong *)(lVar4 - (uVar29 ^ 0x44854c39))
       ^ uVar33 ^ uVar41 ^ uVar37;
  uVar41 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f4 ^ 0x3a763f2d)) ^ uVar33) >>
       (((byte)uVar11 ^ 0xc3) & 0x3f) ^ uVar41;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b4 ^ 0x8c020dcc)) =
       CONCAT44(uVar12,uVar7) ^ 0x49ac12cddf7bdf44 |
       CONCAT44(uVar3,DAT_1826707ac) ^ 0xbdf477b015ac8d5c;
  lVar4 = DAT_1826707a0;
  uVar33 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xb3b973f4)) ^ uVar33) << 0x29;
  uVar3 = DAT_1826707dc >> 10;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar33 ^ CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar19 = DAT_182670870;
  *(ulonglong *)(lVar4 + -0x660) = (uVar35 << 0x16 | (ulonglong)uVar3) ^ 0xc01e753bf589c;
  uVar20 = DAT_182670944;
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar19,uVar19);
  puVar23 = (ulonglong *)(DAT_1826707a0 + -0x438);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0xc18) | uVar33) ^ uVar35;
  uVar40 = CONCAT44(uVar20,uVar20);
  uVar33 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (uVar37 ^ *puVar23) - (*(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xb3b975f4)) ^ uVar35) ^
       uVar40;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x4685459b)) =
       uVar33 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0x5c0) ^ uVar46 ^ *(ulonglong *)(lVar4 + -0x6b8);
  local_c8 = (byte)uVar8;
  *(ulonglong *)(lVar4 + -0x9c8) = *(ulonglong *)(lVar4 + -0x660) >> (((byte)uVar9 ^ 0xfd) & 0x3f);
  *puVar26 = (uVar33 ^ *(ulonglong *)(lVar4 + -0x998)) >> ((local_c8 ^ 0xfc) & 0x3f) ^ uVar38;
  *(ulonglong *)(lVar4 + -0x7d8) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x998)) << ((bVar34 ^ 0x7a) & 0x3f) ^ uVar36;
  uVar19 = DAT_182670894;
  uVar35 = (ulonglong)DAT_1826707a8;
  uVar41 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar4 + -0xd88) =
       CONCAT44(uVar17,uVar7) ^ 0x875008cf2cf0bc33 | CONCAT44(uVar10,uVar6) ^ 0x432ce16cf85d5269;
  uVar20 = DAT_1826709f8;
  uVar25 = (ulonglong)DAT_1826707c8;
  uVar37 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x44854e59)) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xe90dc23d)) ^ uVar36 |
       *(ulonglong *)(lVar4 + -0xce0) ^ uVar38) ^ uVar37;
  uVar3 = DAT_1826707dc;
  uVar33 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar4 + -0x400) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x5c0)) -
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x20004a75)) ^ uVar37) ^ CONCAT44(uVar20,uVar20);
  uVar6 = DAT_182670ab8;
  uVar28 = (ulonglong)DAT_182670ab8;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x1345d0ef)) =
       (CONCAT44(uVar11,uVar3) ^ 0x74c7b81796c67bd8) + 0x4bd7acbeecfa9329;
  *(ulonglong *)(lVar4 + -0x420) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x7227eefe)) ^
       *(ulonglong *)(lVar4 - (uVar33 ^ 0x4c3fb90f)) ^ CONCAT44(uVar6,uVar6) ^ uVar37 ^ uVar40;
  uVar33 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x20004035)) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x8048e18)) ^ uVar43) <<
       ((*(byte *)(lVar4 - (uVar30 ^ 0x80483d8)) ^ (byte)uVar18) & 0x3f);
  uVar3 = DAT_1826707ec;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0xf7fb7fdf)) >> 0x20 ^ uVar28) >> 0x14 ^
       CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xe90dc1dd)) =
       0x760eea71e0b132bb >> (((byte)uVar3 ^ 0x29) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar21 * 4) = uVar32;
  return;
}



############ FUN_ 180cc9c70 size=2952 ############

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

void FUN_180cc9c70(void)

{
  byte bVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  byte bVar15;
  byte *pbVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  uint uVar28;
  
  bVar1 = (byte)DAT_1826708e8;
  uVar9 = DAT_1826707ec;
  uVar6 = DAT_1826707d8;
  uVar5 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_1826707ac;
  uVar24 = (ulonglong)DAT_1826707ec;
  uVar21 = ~DAT_1826707ac;
  uVar18 = DAT_1826707d8 * DAT_1826707ec;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670e20);
  uVar14 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar18 ^ 0x35ebdd62) + (longlong)DAT_182670e20) ^
           DAT_1826707ac;
  uVar17 = (ulonglong)DAT_182670854;
  uVar19 = (ulonglong)_DAT_1826708f8;
  puVar23 = (ulonglong *)(DAT_1826707a0 + -0x170);
  DAT_1826707c8 = uVar18;
  DAT_1826707d4 = uVar21;
  *(ulonglong *)(DAT_1826707a0 + -0x950) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x5c4e6d76)) ^ uVar17) +
       (CONCAT44(DAT_1826707ec,DAT_1826707d8) ^ 0xb1a3f9935c4e6c07);
  bVar15 = (byte)uVar18;
  *(byte *)(lVar3 - ((ulonglong)uVar18 ^ 0x35ebd6c3)) =
       *(byte *)(*puVar23 ^ uVar17) ^ bVar1 ^ DAT_1826709e0;
  bVar12 = (byte)uVar21;
  *(byte *)(lVar3 + -0x279) = bVar12 ^ 0xa7;
  *(byte *)((ulonglong)DAT_18267089c ^ *(ulonglong *)(lVar3 + -0x318)) = bVar15 ^ 0x6a;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0x35ebd402)) =
       (*(ulonglong *)(lVar3 + -0x2b8) ^ uVar19) + 1;
  lVar3 = DAT_1826707a0;
  pbVar16 = (byte *)(DAT_1826707a0 + -0xbb1);
  *(ulonglong *)(DAT_1826707a0 + -0x630) =
       (CONCAT44(uVar21,uVar5) ^ 0x52c61ec70c9df3be) << (((byte)uVar6 ^ 0x14) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar3 + -0x2b8) ^ uVar19) = bVar1 ^ *pbVar16;
  lVar3 = DAT_1826707a0;
  bVar26 = (byte)uVar9;
  *(byte *)(DAT_1826707a0 + -0xbb1) = bVar26 ^ 0xf3;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x80405078)) =
       ((ulonglong)uVar5 << 0x1e | (ulonglong)(uVar21 >> 2)) ^ 0x22c23b55bdaf3007;
  uVar19 = (ulonglong)DAT_182670978;
  *(undefined8 *)(lVar3 + -0xb0) = *(undefined8 *)(lVar3 + -0x970);
  uVar22 = (ulonglong)DAT_182670a5c;
  *(ulonglong *)(lVar3 + -0x270) = *(ulonglong *)(lVar3 + -0x950);
  uVar17 = *(ulonglong *)(lVar3 - (uVar24 ^ 0xb1a3f923));
  *(ulonglong *)(lVar3 + -0x1d0) = uVar19 ^ *(ulonglong *)(lVar3 + -0x950);
  *(ulonglong *)(lVar3 + -0x5d8) = uVar17 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x2f8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d8 ^ 0x5c4e6dd6)) ^ uVar19) +
       (CONCAT44(uVar9,uVar18) ^ 0xb1a3f99335ebdd73);
  *(int *)(lVar3 + -0x68c) =
       *(int *)(lVar3 - ((ulonglong)uVar5 ^ 0x804053c4)) +
       *(int *)(lVar3 - ((ulonglong)uVar9 ^ 0xb1a3f5a7));
  *(byte *)(lVar3 + -0x2b9) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x7fbfae3f)) ^ uVar19) ^
       (byte)DAT_1826708d8 ^ DAT_1826709e0;
  *(byte *)(lVar3 + -0x281) = bVar12 ^ 0xad;
  *(byte *)((ulonglong)DAT_1826709f8 ^ *(ulonglong *)(lVar3 + -0x688)) = bVar15 ^ 0xed;
  uVar6 = DAT_1826707d8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d8 ^ 0x5c4e6186)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xb1a3fc4b)) ^ uVar22) +
       (CONCAT44(uVar5,uVar18) ^ 0x8040501035ebdd73);
  uVar17 = (ulonglong)DAT_18267080c;
  *(ulonglong *)(lVar3 + -0x420) =
       ((ulonglong)(uVar9 >> 0xe) | (ulonglong)uVar6 << 0x12) ^ 0x39aa45b13aa7e;
  *(byte *)(uVar22 ^ *(ulonglong *)(lVar3 + -0x5d8)) =
       *(byte *)(lVar3 - ((ulonglong)uVar18 ^ 0x35ebdfcb)) ^ (byte)DAT_1826708d8;
  uVar22 = (ulonglong)DAT_182670828;
  *(byte *)(lVar3 + -0x2b9) = bVar15 ^ 0x47;
  bVar13 = DAT_1826709e0;
  *(undefined8 *)(lVar3 + -0x560) = *(undefined8 *)(lVar3 - ((ulonglong)uVar9 ^ 0xb1a3f413));
  *(undefined8 *)(lVar3 + -0x38) = *(undefined8 *)(lVar3 + -0x2f8);
  uVar8 = DAT_1826707d8;
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x80405a30));
  *puVar23 = *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x7fbfaa8f)) ^ uVar22;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0x5c4e6f46)) =
       *(ulonglong *)(lVar3 + -0x38) ^ uVar17;
  bVar10 = (byte)DAT_18267098c;
  lVar3 = DAT_1826707a0;
  pbVar16 = (byte *)(*(ulonglong *)(DAT_1826707a0 + -0x340) ^ uVar17);
  *(byte **)(DAT_1826707a0 + -600) = pbVar16 + (CONCAT44(uVar18,uVar18) ^ 0x35ebdd7235ebdd73);
  bVar1 = *pbVar16;
  *(byte *)(lVar3 + -0x521) = bVar12 ^ 0x3f;
  lVar4 = DAT_1826707a0;
  *(byte *)(lVar3 + -0xda2) = bVar1 ^ bVar10 ^ bVar13;
  *(byte *)(*(ulonglong *)(lVar4 + -0x5b0) ^ (ulonglong)DAT_1826709b8) = bVar26 ^ 0x34;
  *(ulonglong *)(lVar4 + -0x558) = 0x54d5c0bbb3f8a6bc >> ((bVar15 ^ 100) & 0x3f);
  uVar19 = (ulonglong)DAT_1826709a8;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x7fbfaacf)) = (*puVar23 ^ uVar22) + 1;
  *(byte *)(*(ulonglong *)(lVar4 + -0xa20) ^ uVar22) = bVar10 ^ *(byte *)(lVar4 + -0xda2);
  uVar6 = DAT_1826707d8;
  pbVar16 = *(byte **)(lVar4 + -600);
  *(byte *)(lVar4 + -0xda2) = (byte)uVar5 ^ 0xc5;
  uVar17 = *(ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x35ebd852));
  *(byte **)(lVar4 + -0xc60) = pbVar16;
  *(ulonglong *)(lVar4 + -0xb18) = uVar19 ^ uVar17;
  *(ulonglong *)(lVar4 + -0xd70) = uVar17;
  *(ulonglong *)(lVar4 + -0x570) = (ulonglong)DAT_182670ab8 ^ (ulonglong)pbVar16;
  bVar1 = (byte)DAT_182670948;
  *(byte **)(lVar4 + -0x698) = pbVar16 + (CONCAT44(uVar21,uVar6) ^ 0x7fbfafef5c4e6c07);
  *(byte *)(lVar4 + -0xc81) = bVar1 ^ bVar13 ^ *pbVar16;
  uVar17 = (ulonglong)_DAT_1826708bc;
  *(byte *)(lVar4 + -0xae9) = (byte)uVar5 ^ 0x8f;
  uVar6 = DAT_1826707cc;
  uVar25 = (ulonglong)DAT_1826707cc;
  *(byte *)(*(ulonglong *)(lVar4 + -0xa88) ^ uVar17) = bVar26 ^ 0x8c;
  uVar7 = DAT_1826707d0;
  *(ulonglong *)(lVar4 + -0x8d8) = (*(ulonglong *)(lVar4 + -0xb18) ^ uVar19) + 1;
  *(ulonglong *)(lVar4 + -0xbb0) =
       CONCAT44(uVar8,uVar21) ^ 0x209b850408456d27 | *(ulonglong *)(lVar4 + -0x400);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xb99b666c)) =
       CONCAT44(uVar7,uVar5) ^ 0xeff6771bfcdfccfb | 0x6db45613f0c5c8c9;
  bVar10 = (byte)DAT_182670a30;
  uVar22 = (ulonglong)DAT_182670b0c;
  *(byte *)(*(ulonglong *)(lVar4 + -0xb18) ^ uVar19) = bVar1 ^ *(byte *)(lVar4 + -0xc81);
  uVar19 = (ulonglong)_DAT_182670ad4;
  *(undefined8 *)(lVar4 + -0x4b8) = *(undefined8 *)(lVar4 + -0x8d8);
  *(ulonglong *)(lVar4 + -0x260) = *(ulonglong *)(lVar4 + -0x698);
  *(byte *)(lVar4 + -0xc81) = bVar26 ^ 0x27;
  uVar17 = *(ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x35ebd9ca));
  *(ulonglong *)(lVar4 + -0x858) = uVar19 ^ *(ulonglong *)(lVar4 + -0x698);
  *(ulonglong *)(lVar4 + -0x238) = uVar17 ^ uVar22;
  lVar3 = DAT_1826707a0;
  *(uint *)(lVar4 - (uVar20 ^ 0x804059fc)) =
       *(uint *)(lVar4 + -0x8e0) >> ((byte)*(undefined4 *)(lVar4 - (uVar20 ^ 0x80405c24)) & 0x1f);
  pbVar16 = (byte *)(uVar19 ^ *(ulonglong *)(lVar4 + -0x858));
  uVar17 = *(ulonglong *)(lVar3 + -0x6b0);
  *(byte **)(lVar4 + -0xd10) = pbVar16 + 1;
  bVar1 = *pbVar16;
  *(undefined1 *)(lVar4 + -0x7f1) = 0x94;
  *(byte *)(lVar4 + -0x2e9) = bVar1 ^ bVar10 ^ bVar13;
  uVar8 = DAT_1826707f0;
  uVar19 = (ulonglong)DAT_1826707f0;
  uVar28 = DAT_1826707f0 * uVar6;
  uVar27 = (ulonglong)DAT_1826707f0;
  *(undefined1 *)(uVar17 ^ DAT_18267095c) = 0xc2;
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xb99b67e4));
  DAT_1826707e0 = uVar28;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x82c05941)) =
       (CONCAT44(uVar28,uVar8) ^ 0xd5fefe7c82c05518) + (*puVar23 ^ uVar22);
  *(byte *)(*puVar23 ^ uVar22) = bVar10 ^ *(byte *)(lVar3 + -0x2e9);
  bVar13 = (byte)uVar28;
  *(byte *)(lVar3 + -0x2e9) = bVar13 ^ 0x57;
  pbVar16 = *(byte **)(lVar3 + -0xd10);
  uVar22 = (ulonglong)DAT_18267090c;
  *(byte **)(lVar3 + -0x5a8) = pbVar16;
  uVar19 = CONCAT44(uVar8,uVar28);
  *(ulonglong *)(lVar3 + -0x870) = *(ulonglong *)(lVar3 + -0xc58);
  *(ulonglong *)(lVar3 + -0xd38) =
       CONCAT44(uVar8,uVar6) ^ 0x7bc6d747f4af5f7c | uVar19 ^ 0x8eae8d894fec5792;
  *(ulonglong *)(lVar3 + -0x998) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x82c05379)) ^ uVar19 ^ 0xf280f625a8dd790c;
  uVar17 = (ulonglong)DAT_182670980;
  *(ulonglong *)(lVar3 + -0x9a8) = uVar22 ^ *(ulonglong *)(lVar3 + -0xc58);
  bVar10 = (byte)DAT_182670adc;
  *(ulonglong *)(lVar3 + -0xd50) = uVar17 ^ (ulonglong)pbVar16;
  *(byte **)(DAT_1826707a0 + -0x788) = pbVar16 + (CONCAT44(uVar6,uVar28) ^ 0xb99b65dcd5fefe7d);
  *(byte *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xb99b6fe9)) = *pbVar16 ^ bVar10 ^ DAT_1826709e0;
  *(byte *)(DAT_1826707a0 + -0x7f3) = (byte)uVar6 ^ 0x33;
  lVar3 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0x82c05289)) ^
           (ulonglong)_DAT_182670b10) = bVar13 ^ 0xe4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar28 ^ 0xd5fefdec)) =
       (*(ulonglong *)(lVar3 + -0x9a8) ^ uVar22) + 1;
  bVar1 = (byte)DAT_182670abc;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar25 ^ 0xb99b6c74)) ^ uVar22) =
       bVar10 ^ *(byte *)(lVar3 + -0xa35);
  uVar11 = DAT_182670a94;
  uVar22 = (ulonglong)DAT_182670a94;
  *(undefined8 *)(lVar3 + -0xbd8) = *(undefined8 *)(lVar3 + -0x390);
  *(ulonglong *)(lVar3 + -0xdc8) = *(ulonglong *)(lVar3 + -0x788);
  *(byte *)(lVar3 + -0xa35) = (byte)uVar8 ^ 0xee;
  *(ulonglong *)(lVar3 + -0x548) = (CONCAT44(uVar8,uVar8) ^ 0xb768d0f8788d42d) + 0xa261b82ff5ed95a5;
  uVar24 = (ulonglong)DAT_182670ab0;
  *(ulonglong *)(lVar3 + -0x9c8) = -0x1664af3d827c3b94 - (uVar19 ^ 0x7c38e3d7d0699763);
  *(ulonglong *)(lVar3 + -0x1c8) = *(ulonglong *)(lVar3 - (uVar27 ^ 0x82c05ec1)) ^ uVar24;
  uVar17 = (ulonglong)uVar11 ^ *(ulonglong *)(lVar3 + -0x788);
  *(ulonglong *)(lVar3 + -0x650) = uVar17;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xb99b66c4)) =
       (CONCAT44(uVar6,uVar6) ^ 0xb99b65dcb99b65dd) + (uVar22 ^ uVar17);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar28 ^ 0xd5fef50c)) = 0x79d7df756ef9df5e;
  *(byte *)(lVar3 - ((ulonglong)uVar8 ^ 0x82c05438)) =
       *(byte *)(uVar22 ^ *(ulonglong *)(lVar3 + -0x650)) ^ bVar1 ^ DAT_1826709e0;
  uVar17 = (ulonglong)DAT_18267082c;
  *(undefined1 *)(lVar3 + -0x871) = 0x1b;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0xb98) ^ uVar17) = 0x27;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x82c05469)) =
       (CONCAT44(uVar21,uVar9) ^ 0x7fbfafefb1a3f992) + (*(ulonglong *)(lVar3 + -0x1c8) ^ uVar24);
  uVar6 = DAT_1826707d8;
  *(byte *)(*(ulonglong *)(lVar3 + -0x1c8) ^ uVar24) = bVar1 ^ *(byte *)(lVar3 + -0x121);
  uVar19 = (ulonglong)DAT_182670868;
  *(byte *)(lVar3 + -0x121) = bVar13 ^ 1;
  uVar17 = *(ulonglong *)(lVar3 - (uVar20 ^ 0x80405160));
  *(ulonglong *)(lVar3 + -0x970) = uVar17;
  *(undefined8 *)(lVar3 + -0x950) = *(undefined8 *)(lVar3 + -0x318);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0x7fbfaf5f)) = uVar19 ^ uVar17;
  uVar17 = (ulonglong)DAT_182670880;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xb99b67ac)) = *(ulonglong *)(lVar3 + -0x950) ^ uVar17;
  *(ulonglong *)(lVar3 + -0x688) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x5c4e6e76)) ^ uVar17) +
       (CONCAT44(uVar18,uVar5) ^ 0x35ebdd7280405011);
  bVar1 = (byte)DAT_1826707e8;
  *(byte *)(lVar3 + -0xb0a) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x270) ^ uVar17) ^ (byte)DAT_1826709cc ^ DAT_1826709e0;
  uVar17 = (ulonglong)DAT_182670a44;
  *(byte *)(lVar3 + -0x601) = bVar1 ^ 0x2c;
  *(byte *)(*(ulonglong *)(lVar3 + -0x8d0) ^ uVar17) = (byte)uVar6 ^ 0x4d;
  pbVar16 = (byte *)(*(ulonglong *)(lVar3 + -0xb0) ^ uVar19);
  *(byte **)(lVar3 + -0x1d0) = pbVar16 + 1;
  *pbVar16 = *(byte *)(lVar3 + -0xb0a) ^ (byte)DAT_1826709cc;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar2 ^ uVar21;
  return;
}



############ FUN_ 180d433f0 size=5024 ############

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

void FUN_180d433f0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong *puVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  byte bVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  byte bVar41;
  byte bVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_118;
  
  uVar9 = DAT_1826707ec;
  uVar7 = DAT_1826707e4;
  uVar6 = DAT_1826707cc;
  uVar5 = DAT_1826707c8;
  lVar3 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_1826707cc;
  uVar14 = (ulonglong)DAT_1826707e4;
  uVar37 = (ulonglong)DAT_1826707c8;
  uVar27 = DAT_1826707cc | DAT_1826707e4;
  uVar25 = (ulonglong)DAT_1826707ec;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670ca4);
  uVar32 = DAT_1826707c8 + DAT_1826707ec;
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670ca4) ^ DAT_1826707cc;
  uVar20 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar22 = CONCAT44(DAT_182670940,DAT_182670940);
  puVar19 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0xcf83fd97));
  DAT_1826707a8 = uVar27;
  DAT_1826707d4 = uVar32;
  *puVar19 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0x727d289d)) ^ uVar20) +
             (CONCAT44(DAT_182670858,DAT_182670858) ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) ^
             uVar22;
  bVar41 = (byte)uVar32;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x8c83dc1f)) =
       (*(ulonglong *)(lVar3 + -0xf0) ^ uVar22) - (CONCAT44(uVar9,uVar32) ^ 0xbec43a0b7ccec3c0);
  puVar1 = (ulonglong *)(lVar3 + -0x660);
  uVar17 = (ulonglong)uVar27;
  uVar33 = CONCAT44(DAT_182670918,DAT_182670918);
  uVar28 = (ulonglong)DAT_1826709cc;
  *(ulonglong *)(lVar3 + -0xcf8) = (*puVar1 ^ uVar20) << ((bVar41 ^ 0xef) & 0x3f) ^ uVar33;
  uVar8 = DAT_1826709e8;
  *(byte *)(lVar3 + -0xd02) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x450) ^ uVar28) ^ (byte)DAT_182670a40;
  uVar28 = CONCAT44(uVar8,uVar8);
  bVar18 = (byte)uVar9;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xcf83f487)) =
       (*puVar1 ^ uVar20) >> ((bVar18 ^ 0xa8) & 0x3f) ^ uVar28;
  uVar8 = DAT_182670a6c;
  puVar15 = (ulonglong *)(lVar3 - (uVar25 ^ 0xbcffdf60));
  uVar26 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar28 = (*(ulonglong *)(lVar3 + -0x9e0) ^ uVar28 | *puVar15 ^ uVar33) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x118) = uVar28;
  uVar10 = DAT_182670b14;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x3b0) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0xbcffd368)) ^ uVar29 ^ uVar28 ^ uVar26 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x610) = 0x6cd6264989f7baff - (CONCAT44(uVar7,uVar6) ^ 0xc5224862928e939e)
  ;
  puVar40 = (ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x8c83d34f));
  uVar33 = CONCAT44(DAT_182670840,DAT_182670840);
  *(ulonglong *)(lVar3 + -0x2b0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xcf83f0ef)) ^ CONCAT44(uVar10,uVar10)) +
       (uVar29 ^ *puVar40) ^ uVar33;
  puVar16 = (ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x727d2d4d));
  bVar24 = (byte)uVar6;
  uVar46 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  local_118 = (byte)uVar27;
  *(ulonglong *)(lVar3 + -0x558) = (uVar29 ^ *puVar16) << ((bVar24 ^ 0xac) & 0x3f) ^ uVar46;
  uVar10 = DAT_182670994;
  uVar34 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xbcffd828)) =
       (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar29) >> ((local_118 ^ 0xf1) & 0x3f) ^ uVar34;
  *(int *)(lVar3 - ((ulonglong)uVar7 ^ 0x727d25a9)) = *(int *)(lVar3 + -0xc0c) + 0x2e3cba53;
  uVar8 = DAT_1826708a8;
  uVar26 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  uVar28 = (uVar34 ^ *(ulonglong *)(lVar3 + -0xbb0) | uVar46 ^ *(ulonglong *)(lVar3 + -0x558)) ^
           uVar26;
  *(ulonglong *)(lVar3 + -0x410) = uVar28;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xd38) =
       uVar29 ^ uVar28 ^ uVar26 ^ uVar33 ^ *(ulonglong *)(lVar3 + -0x2b0);
  *(longlong *)(lVar3 + -0x630) =
       -0x4298d3f8b0459409 << ((*(byte *)(lVar3 - (uVar37 ^ 0xcf83f6d7)) ^ (byte)uVar10) & 0x3f);
  uVar28 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar35 = *(ulonglong *)(lVar3 + -0x6b8) ^ uVar28;
  uVar23 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (*(ulonglong *)(DAT_1826707a0 + -0xf0) ^ uVar22) + uVar35 ^ uVar23;
  lVar3 = DAT_1826707a0;
  uVar35 = uVar35 << (((byte)uVar5 ^ 0x5e) & 0x3f);
  uVar26 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *puVar1 = uVar35 ^ uVar26;
  uVar8 = DAT_1826709a4;
  uVar12 = _DAT_1826708f8;
  uVar39 = (ulonglong)_DAT_1826708f8;
  uVar28 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x8c83d647)) ^ uVar28) >>
           ((bVar24 ^ 0x9f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9e0) = uVar28 ^ CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar35 = (uVar28 | uVar35) ^ uVar30;
  *(ulonglong *)(lVar3 + -0xcf8) = uVar35;
  uVar8 = DAT_18267083c;
  puVar36 = (ulonglong *)(lVar3 - (uVar38 ^ 0x307c0380));
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar43 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *puVar36 = *(ulonglong *)(lVar3 - (uVar25 ^ 0xbcffdf78)) ^ uVar28 ^ uVar30 ^ uVar23 ^ uVar35;
  lVar3 = DAT_1826707a0;
  puVar21 = (ulonglong *)(DAT_1826707a0 + -0x118);
  uVar35 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xbcffd280)) ^ uVar28) +
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x2b0)) ^ uVar43;
  *(ulonglong *)(lVar3 + -0xd88) = (uVar28 ^ *puVar21) << ((local_118 ^ 0xea) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x3b0) =
       *(ulonglong *)(lVar3 - (uVar38 ^ 0x307c0e60)) ^ *puVar1 ^ uVar30 ^ uVar26;
  lVar3 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xbcffd6c0)) = (*puVar36 >> 0x20 ^ uVar39) >> 9 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x410) = (CONCAT44(uVar5,uVar7) ^ 0xe49f807f8bd2b813) + 0xdc39d95e913a4946
  ;
  uVar28 = CONCAT44(DAT_182670844,DAT_182670844);
  uVar26 = (uVar26 ^ *(ulonglong *)(lVar3 + -0x558) | *(ulonglong *)(lVar3 + -0xd88) ^ uVar35) ^
           uVar28;
  uVar35 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar26;
  *(ulonglong *)(lVar3 + -0x630) =
       uVar35 ^ uVar26 ^ uVar28 ^ uVar43 ^ *(ulonglong *)(lVar3 + -0x610);
  uVar10 = DAT_1826708d4;
  puVar36 = (ulonglong *)(lVar3 - (uVar37 ^ 0xcf83f05f));
  uVar39 = *(ulonglong *)(lVar3 + -0xd38) ^ uVar29;
  uVar33 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar3 + -0xce0) ^ uVar23) + (*puVar36 ^ uVar29) ^ uVar33;
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar39 << 0x28 ^ uVar29;
  uVar12 = DAT_182670974;
  uVar39 = uVar39 >> ((local_118 ^ 0xe5) & 0x3f);
  uVar28 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar3 + -0x9e0) = uVar39 ^ CONCAT44(DAT_182670974,DAT_182670974);
  *(ulonglong *)(lVar3 + -0x2b0) = *(ulonglong *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xb08)) ^ uVar46;
  uVar26 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar28 = *(ulonglong *)(lVar3 + -0x9e0);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar17 ^ 0x727d2845)) ^ uVar29 | uVar39) ^ uVar26;
  *puVar15 = ((ulonglong)uVar12 << 0x1c | (ulonglong)(uVar12 >> 4)) ^ uVar28 >> 4;
  uVar39 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *puVar40 = uVar39 ^ uVar26 ^ uVar33 ^ *puVar1 ^ *(ulonglong *)(lVar3 + -0xf0);
  uVar28 = uVar39 ^ *(ulonglong *)(lVar3 + -0x3b0);
  uVar44 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar3 + -0x118) = (uVar43 ^ *(ulonglong *)(lVar3 + -0x610)) + uVar28 ^ uVar44;
  uVar10 = DAT_182670a30;
  uVar23 = CONCAT44(DAT_182670b08,DAT_182670b08);
  puVar15 = (ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x8c83d4ef));
  *puVar15 = uVar28 << 5 ^ uVar23;
  uVar26 = (uVar39 ^ *(ulonglong *)(lVar3 + -0x3b0)) >> ((bVar41 ^ 0xc4) & 0x3f);
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xd88) = uVar26 ^ uVar33;
  uVar10 = DAT_182670a94;
  uVar26 = (uVar26 | uVar23 ^ *(ulonglong *)(lVar3 + -0x410)) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x558) = uVar26;
  uVar11 = DAT_182670ad8;
  uVar47 = CONCAT44(uVar10,uVar10);
  puVar31 = (ulonglong *)(lVar3 - (uVar14 ^ 0x727d2fe5));
  uVar26 = uVar47 ^ uVar28 ^ uVar44 ^ *puVar31 ^ uVar26;
  uVar28 = uVar35 ^ *(ulonglong *)(lVar3 + -0x630);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar26;
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) + uVar28 ^ uVar29;
  uVar33 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar28 << (((byte)uVar5 ^ 0x42) & 0x3f) ^ uVar33;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0xcf83ffd7)) =
       (uVar47 ^ uVar26) + (CONCAT44(uVar9,uVar27) ^ 0x51567dde5d13214c);
  uVar28 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x727d2845)) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x630)) >> ((local_118 ^ 0xe6) & 0x3f) ^ uVar28;
  uVar35 = CONCAT44(DAT_182670a40,DAT_182670a40);
  uVar28 = (*(ulonglong *)(lVar3 + -0xd38) ^ uVar33 | uVar28 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^
           uVar35;
  uVar26 = CONCAT44(DAT_182670960,DAT_182670960);
  *(ulonglong *)(lVar3 + -0xcf8) = uVar28;
  uVar10 = DAT_182670a88;
  uVar28 = *(ulonglong *)(lVar3 + -0xce0) ^ uVar26 ^ uVar29 ^ uVar28 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x9e0) = uVar28;
  uVar46 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x307c04f8)) =
       (uVar26 ^ uVar28) + (CONCAT44(uVar5,uVar7) ^ 0x7ab4b287f41014b) ^ uVar46;
  uVar45 = (uVar44 ^ *(ulonglong *)(lVar3 + -0x118)) + (CONCAT44(uVar9,uVar27) ^ 0xe2123a74a21e1419)
  ;
  *(ulonglong *)(lVar3 + -0x610) = uVar45 ^ CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar28 = *puVar1;
  uVar45 = uVar45 + (uVar46 ^ uVar28);
  *(ulonglong *)(lVar3 + -0x3b0) = uVar45 ^ uVar22;
  lVar4 = DAT_1826707a0;
  puVar40 = (ulonglong *)(lVar3 - (uVar17 ^ 0x727d2205));
  bVar42 = (byte)uVar7;
  uVar26 = (ulonglong)DAT_182670a38;
  *(ulonglong *)(DAT_1826707a0 + -0x410) = (*puVar40 ^ uVar35) << ((bVar18 ^ 0xa0) & 0x3f);
  uVar33 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar4 + -0xd88) = (uVar46 ^ uVar28) << ((bVar42 ^ 0xe4) & 0x3f) ^ uVar33;
  uVar10 = DAT_182670aec;
  *(byte *)(lVar4 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x418) ^ uVar26) ^ (byte)DAT_182670a40;
  uVar44 = CONCAT44(uVar10,uVar10);
  uVar28 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0xcf83fb07)) ^ uVar46) >> ((bVar24 ^ 0xbf) & 0x3f);
  uVar26 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar4 + -0x558) = uVar28 ^ uVar44;
  *(ulonglong *)(lVar4 + -0xf0) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xbcffde10)) ^ uVar33 | uVar28) ^ uVar26;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0x8c83d24f)) = uVar45 | 0x59184796110d4913;
  uVar5 = DAT_182670ac0;
  uVar35 = (ulonglong)DAT_182670ac0;
  uVar28 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar4 - (uVar17 ^ 0x727d28cd)) =
       uVar26 ^ uVar39 ^ *(ulonglong *)(lVar4 + -0xf0) ^ uVar22 ^ *puVar16;
  lVar3 = DAT_1826707a0;
  puVar21 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(uint *)(DAT_1826707a0 + -0xaf0) = (DAT_1826707c8 ^ 0xb4400e26) >> ((bVar41 ^ 0xee) & 0x1f);
  uVar10 = DAT_182670ae4;
  uVar33 = (uVar47 ^ *puVar21) + (CONCAT44(uVar32,uVar27) ^ 0x36a1b0ee01860554);
  *(ulonglong *)(lVar3 + -0xd38) = uVar33 ^ uVar28;
  uVar46 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 + -0xce0) ^ uVar29) + (CONCAT44(uVar7,uVar32) ^ 0x10f720b9adb073f4) ^
       uVar46;
  uVar26 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xbcffda78)) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x307c0420)) ^ uVar46) + uVar33 ^ uVar26;
  uVar33 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x727d2fe5)) =
       (*(ulonglong *)(lVar3 + -0xd38) ^ uVar28) << ((bVar24 ^ 0xb9) & 0x3f) ^ uVar33;
  uVar28 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x307c0488)) =
       ((ulonglong)(uVar5 >> 0x1f) | uVar35 * 2) ^ *(ulonglong *)(lVar3 + -0xd38) >> 0x1f ^ uVar28;
  uVar10 = DAT_18267099c;
  uVar28 = uVar33 ^ *(ulonglong *)(lVar3 + -0x118) | uVar28 ^ *(ulonglong *)(lVar3 + -0x610);
  *(ulonglong *)(lVar3 + -0x410) = uVar28 ^ CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar3 + -0xcf8) = uVar28 ^ *(ulonglong *)(lVar3 + -0x9e0) ^ uVar26 ^ uVar23;
  uVar33 = CONCAT44(uVar10,uVar10);
  *puVar1 = (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar22) + (uVar23 ^ *puVar40) ^ uVar33;
  uVar35 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 - (uVar14 ^ 0x727d2205)) ^ uVar23) << 0x2e ^ uVar35;
  *(int *)(lVar3 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc0700)) = *(int *)(lVar3 + -0xaf0) << 0xb;
  uVar11 = DAT_182670884;
  uVar28 = ((ulonglong)(DAT_182670b08 >> 0x12) | (ulonglong)DAT_182670b08 << 0xe) ^
           *(ulonglong *)(lVar3 + -0xcf8) >> 0x12;
  *(ulonglong *)(lVar3 + -0x558) = uVar28 ^ CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar10 = DAT_18267084c;
  uVar22 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x2b0) = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x3c0) ^ uVar22) ^ uVar46;
  uVar5 = DAT_182670830;
  uVar29 = CONCAT44(uVar10,uVar10);
  uVar23 = (ulonglong)DAT_182670830;
  *puVar19 = (uVar28 | uVar35 ^ *(ulonglong *)(lVar3 + -0xd88)) ^ uVar29;
  *(ulonglong *)(lVar3 + -0xbb0) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0xf0)) << ((bVar42 ^ 0xed) & 0x3f);
  uVar35 = CONCAT44(uVar5,uVar5);
  uVar28 = CONCAT44(uVar7,DAT_1826707b8);
  *(ulonglong *)(lVar3 + -0xce0) =
       *(ulonglong *)(lVar3 - (uVar17 ^ 0x727d2e0d)) ^ *(ulonglong *)(lVar3 - (uVar25 ^ 0xbcffd5f8))
       ^ uVar35 ^ uVar29 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x630)) + (*(ulonglong *)(lVar3 + -0x9e0) ^ uVar26) ^
       uVar34;
  *puVar36 = (uVar28 ^ 0x32a90ace18b521a) >> ((bVar24 ^ 0x84) & 0x3f);
  uVar39 = uVar39 ^ *(ulonglong *)(lVar3 + -0x630);
  uVar28 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar3 + -0x118) = uVar39 << 0xc ^ uVar28;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x727d28ed)) = uVar39 >> ((bVar42 ^ 0xc9) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar3 + -0x410) =
       (CONCAT44(uVar7,uVar6) ^ 0x4d7a7ad48089d414) >>
       ((*(byte *)(lVar3 - (uVar37 ^ 0xcf83fb77)) ^ (byte)uVar8) & 0x3f);
  uVar8 = DAT_1826707e8;
  uVar5 = DAT_1826707d8;
  uVar14 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar3 + -0x3b0) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0x727d28ed)) ^ uVar43 | uVar28 ^ *puVar31) ^ uVar20;
  lVar4 = DAT_1826707a0;
  puVar21 = (ulonglong *)(lVar3 - (uVar37 ^ 0xcf83f19f));
  *puVar21 = 0x76f495fb363bd6ef - (CONCAT44(DAT_1826707ac,uVar8) ^ 0x5ffbfdef357831ad);
  uVar10 = DAT_182670a24;
  uVar28 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar20 = uVar28 ^ *(ulonglong *)(lVar4 + -0x6b8) ^ *(ulonglong *)(lVar4 + -0x3b0) ^ uVar34 ^
           uVar20;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar20;
  uVar8 = DAT_18267091c;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0xd88) = (uVar33 ^ *puVar1) + (uVar20 ^ uVar28) ^ uVar26;
  lVar3 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar8,uVar8);
  uVar37 = (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xbcffd128)) ^ uVar28) <<
           ((bVar18 ^ 0xa2) & 0x3f);
  uVar20 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar37 ^ uVar33;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar14 ^ 0x3534c730)) ^ uVar28) >>
           (((byte)DAT_1826707b0 ^ 0x9e) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar28 ^ uVar20;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x3534c570)) = (uVar37 | uVar28) ^ uVar26;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar3 + -0xce0);
  *(ulonglong *)(lVar3 + -0x9e0) =
       CONCAT44(uVar6,DAT_1826707f4) ^ uVar33 ^ *(ulonglong *)(lVar3 + -0x558) ^ 0x4f6a31985403c596;
  uVar28 = *(ulonglong *)(lVar3 - (uVar17 ^ 0x727d2375));
  *(ulonglong *)(lVar3 + -0x630) = (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar34) + uVar35 ^ uVar30;
  uVar8 = DAT_1826709f0;
  *(ulonglong *)(lVar3 + -0xd38) = uVar28 ^ uVar44 ^ *(ulonglong *)(lVar3 + -0xf0);
  uVar17 = CONCAT44(uVar8,uVar8);
  *puVar15 = uVar35 << ((local_118 ^ 0xeb) & 0x3f) ^ uVar17;
  uVar28 = (*(ulonglong *)(lVar3 + -0xce0) >> 0x20 ^ uVar23) >> 10;
  *(ulonglong *)(lVar3 + -0x118) = uVar28 ^ CONCAT44(DAT_182670904,DAT_182670904);
  uVar8 = DAT_1826708d8;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0x3534c390)) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0x410) | uVar28) ^ uVar22;
  uVar17 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar28 = uVar17 ^ uVar22 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0x610) ^
           *(ulonglong *)(lVar3 + -0x630);
  *(ulonglong *)(lVar3 + -0xcf8) = uVar28;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0xe81bd5a)) =
       (uVar28 ^ uVar17) + (uVar26 ^ *(ulonglong *)(lVar3 + -0xd88)) ^ CONCAT44(uVar8,uVar8);
  *puVar1 = (uVar17 ^ *puVar21) << ((bVar41 ^ 0xdf) & 0x3f) ^ CONCAT44(DAT_182670abc,DAT_182670abc);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar2 ^ uVar27;
  return;
}



############ FUN_ 180cb5e20 size=5197 ############

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

void FUN_180cb5e20(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong *puVar39;
  byte bVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  
  uVar9 = DAT_1826707c0;
  uVar10 = DAT_1826707b0;
  lVar6 = DAT_1826707a0;
  uVar44 = (ulonglong)DAT_1826707c0;
  uVar42 = (ulonglong)DAT_1826707b0;
  uVar19 = DAT_1826707c0 & DAT_1826707b0;
  uVar20 = uVar19 ^ 0xe313efa;
  uVar23 = *(uint *)(&DAT_18260f758 + DAT_182670de8) ^ DAT_1826707c0;
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670de8) ^ DAT_1826707b0;
  uVar32 = (ulonglong)uVar20;
  uVar33 = CONCAT44(DAT_182670b00,DAT_182670b00);
  puVar36 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar20 ^ 0xe81b20a));
  uVar31 = CONCAT44(DAT_182670a14,DAT_182670a14);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x630);
  uVar21 = (*(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xbcfbe380)) ^ uVar33 |
           CONCAT44(DAT_18267090c,DAT_18267090c) ^ *puVar36) ^ uVar31;
  DAT_1826707b4 = uVar20;
  *puVar1 = uVar21;
  uVar14 = DAT_182670af8;
  uVar25 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  uVar30 = CONCAT44(DAT_182670a38,DAT_182670a38);
  puVar2 = (ulonglong *)(lVar6 + -0x410);
  *(ulonglong *)(lVar6 + -0x558) = *puVar2 ^ uVar30 ^ uVar25 ^ uVar21 ^ uVar31;
  uVar8 = DAT_1826707f8;
  puVar3 = (ulonglong *)(lVar6 + -0x660);
  uVar37 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar29 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x41b495ee)) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0x9e0)) + (*puVar3 ^ uVar37) ^ uVar29;
  lVar7 = DAT_1826707a0;
  uVar21 = *(ulonglong *)(lVar6 + -0xcf8);
  uVar31 = *puVar3;
  uVar28 = -0x2f02b5579f07b007 << (((byte)uVar21 ^ (byte)uVar8) & 0x3f);
  uVar34 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar28;
  lVar6 = DAT_1826707a0;
  uVar26 = (*(ulonglong *)(lVar7 - (uVar32 ^ 0xe81b88a)) ^ uVar37) << 0x28;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar26 ^ uVar34;
  uVar37 = (uVar31 ^ uVar37) >> (((byte)uVar9 ^ 0xe) & 0x3f);
  bVar41 = (byte)uVar10;
  uVar34 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar6 + -0x2b0) = 0xd2d559e5008a24e0 >> ((bVar41 ^ 0xae) & 0x3f);
  uVar8 = DAT_182670994;
  *(ulonglong *)(lVar6 + -0xd88) = uVar37 ^ uVar34;
  uVar14 = _DAT_182670b10;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar26 = (uVar37 | uVar26) ^ uVar31;
  *(ulonglong *)(lVar6 + -0x6b8) = uVar26;
  uVar43 = (ulonglong)DAT_1826708d8;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar35 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar26 = uVar35 ^ uVar31 ^ uVar21 ^ uVar29 ^ uVar26;
  puVar4 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) = uVar26;
  *puVar4 = (uVar35 ^ uVar26) + (*puVar2 ^ uVar30) ^ uVar37;
  lVar6 = DAT_1826707a0;
  bVar40 = (byte)uVar20;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0x41b4942e)) =
       uVar28 >> ((bVar40 ^ 0xcf) & 0x3f);
  uVar8 = _DAT_18267097c;
  uVar28 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(lVar6 + -0x118) =
       (*(ulonglong *)(lVar6 + -0x3b0) ^ uVar35) << ((bVar40 ^ 0xef) & 0x3f) ^ uVar28;
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x41b495f6)) =
       (*(ulonglong *)(lVar6 + -0x3b0) >> 0x20 ^ uVar43) >> 0x1b ^ uVar31;
  uVar21 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar6 + -0xce0) | uVar28 ^ *(ulonglong *)(lVar6 + -0x118)) ^
           uVar21;
  *puVar1 = uVar31;
  uVar26 = CONCAT44(DAT_182670830,DAT_182670830);
  puVar27 = (ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0xbcfbeb78));
  *puVar27 = uVar26 ^ uVar31 ^ uVar21 ^ uVar37 ^ *puVar4;
  lVar7 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar35 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0xe81bbb2)) ^ uVar25) +
           (uVar29 ^ *(ulonglong *)(lVar6 + -0xcf8)) ^ uVar30;
  uVar31 = *(ulonglong *)(lVar6 + -0x558) ^ uVar25;
  *puVar3 = uVar35;
  uVar29 = uVar31 >> ((bVar40 ^ 0xf1) & 0x3f);
  uVar31 = uVar31 << 0x25;
  uVar21 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar7 + -0x2b0) = uVar31 ^ CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar14 = DAT_182670ae4;
  *(ulonglong *)(lVar7 + -0x610) = uVar29 ^ uVar21;
  uVar8 = DAT_182670a20;
  *(ulonglong *)(lVar7 + -0xd88) =
       CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(*(ulonglong *)(lVar7 + -0xc0) ^ uVar28);
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar29 = (uVar29 | uVar31) ^ uVar21;
  uVar31 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar29;
  uVar29 = uVar35 ^ uVar31 ^ uVar21 ^ uVar30 ^ uVar29;
  *puVar2 = uVar29;
  uVar35 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar7 - (uVar32 ^ 0xe81be1a)) =
       (uVar31 ^ uVar29) + (CONCAT44(uVar10,uVar19) ^ 0x1e72a87323d9b85d) ^ uVar35;
  uVar21 = CONCAT44(DAT_182670820,DAT_182670820);
  *(uint *)(lVar7 + -0x280) =
       (uVar10 ^ 0x35eec4) >> (((byte)*(undefined4 *)(lVar7 + -0x8e0) ^ (byte)DAT_1826708b8) & 0x1f)
  ;
  uVar31 = (uVar37 ^ *puVar4) + (CONCAT44(uVar9,uVar19) ^ 0xfb96f907734babb2);
  puVar5 = (ulonglong *)(lVar7 + -0xd38);
  *puVar5 = uVar31 ^ uVar21;
  *(ulonglong *)(lVar7 + -0x3b0) =
       (CONCAT44(uVar10,uVar10) ^ 0xa33643e00ce77a27) + 0xd7a6e920bf2a069b;
  uVar37 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  puVar38 = (ulonglong *)(lVar7 - (uVar32 ^ 0xe81bff2));
  *puVar38 = (*(ulonglong *)(lVar7 - (uVar44 ^ 0x41b499e6)) ^ uVar35) + uVar31 ^ uVar37;
  *(uint *)(lVar7 - (uVar44 ^ 0x41b49102)) =
       (uVar9 ^ 0x498ed40e) >> ((byte)*(undefined4 *)(lVar7 + -0xc0c) & 0x1f);
  uVar8 = DAT_182670a3c;
  uVar29 = (uVar35 ^ *(ulonglong *)(lVar7 + -0xf0)) << ((bVar41 ^ 0x81) & 0x3f);
  bVar18 = (byte)DAT_1826707c8;
  *(ulonglong *)(lVar7 + -0xce0) = uVar29 ^ uVar33;
  uVar35 = (uVar35 ^ *(ulonglong *)(lVar7 + -0xf0)) >> (bVar18 & 0x3f);
  *puVar1 = uVar35 ^ CONCAT44(uVar8,uVar8);
  uVar31 = (ulonglong)DAT_182670b14;
  uVar33 = CONCAT44(DAT_18267099c,DAT_18267099c);
  uVar21 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar7 - (uVar32 ^ 0xe81b212)) = (uVar29 | uVar35) ^ uVar33;
  *(byte *)(lVar7 - (uVar21 ^ 0x3534c8e1)) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x390) ^ uVar31) ^ (byte)DAT_182670a40;
  uVar20 = DAT_1826708e8;
  lVar6 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826708e8;
  uVar45 = (ulonglong)DAT_182670a04;
  puVar22 = (ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xbcfbe7c0));
  uVar35 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  uVar43 = CONCAT44(DAT_182670a04,DAT_182670a04);
  *puVar22 = uVar43 ^ uVar33 ^ uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0x118) ^
             *(ulonglong *)(DAT_1826707a0 + -0xcf8);
  uVar21 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar6 + -0xd88) =
       uVar33 ^ *(ulonglong *)(lVar6 + -0xcf8) | *(ulonglong *)(lVar6 + -0x3b0);
  uVar8 = DAT_1826709ec;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 + -0x2b0) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xfffc271f)) ^ uVar26) +
       (CONCAT44(uVar9,uVar19) ^ 0x7eab4fe8091e1c37) ^ uVar35;
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 - (uVar32 ^ 0xe81b8fa)) =
       (CONCAT44(uVar9,uVar9) ^ 0x953e3e703d9c15ee) + (*puVar3 ^ uVar30) ^ uVar31;
  uVar8 = DAT_1826708b0;
  uVar21 = *(ulonglong *)(lVar7 + -0x2b0);
  uVar35 = uVar35 ^ uVar21;
  uVar26 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar30 = uVar35 << 0x21;
  *(ulonglong *)(lVar7 + -0x6b8) = (uVar31 ^ *(ulonglong *)(lVar7 + -0x610)) + uVar35 ^ uVar26;
  *puVar2 = uVar30 ^ CONCAT44(uVar8,uVar8);
  *puVar4 = ((ulonglong)(uVar20 >> 0x1f) | uVar29 * 2) ^ uVar21 >> 0x1f ^ uVar34;
  lVar6 = DAT_1826707a0;
  *puVar5 = (CONCAT44(uVar10,uVar19) ^ 0x92adf7c8989466bb) >> ((bVar40 ^ 0xf0) & 0x3f);
  uVar8 = DAT_182670acc;
  uVar32 = CONCAT44(DAT_18267093c,DAT_18267093c);
  uVar21 = (*(ulonglong *)(lVar6 - (uVar42 ^ 0xbcfbe928)) ^ uVar34 | uVar30) ^ uVar32;
  *(ulonglong *)(lVar6 + -0xf0) = uVar21;
  uVar14 = DAT_182670a50;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar29 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(ulonglong *)(lVar6 + -0xce0) =
       *(ulonglong *)(lVar6 - (uVar42 ^ 0xbcfbe420)) ^ uVar31 ^ uVar32 ^ uVar26 ^ uVar21;
  uVar37 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707cc ^ 0x307c0380)) ^ uVar37) +
           (*puVar36 ^ uVar31) ^ uVar29;
  uVar21 = CONCAT44(DAT_182670990,DAT_182670990);
  *puVar1 = uVar37;
  uVar8 = DAT_182670b0c;
  uVar32 = (*puVar36 ^ uVar31) << (((byte)uVar9 ^ 0x38) & 0x3f);
  *(ulonglong *)(lVar6 + -0x3b0) = uVar32 ^ uVar21;
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar6 + -0xce0)) >> ((bVar41 ^ 0x8a) & 0x3f);
  *(ulonglong *)(lVar6 + -0xcf8) = uVar31 ^ CONCAT44(uVar8,uVar8);
  uVar20 = DAT_1826709c0;
  uVar8 = DAT_182670834;
  uVar35 = (ulonglong)DAT_1826709c0;
  *(ulonglong *)(lVar6 + -0xd88) = 0x5f4de36d9ae0bbe2 >> (((byte)uVar37 ^ (byte)uVar14) & 0x3f);
  uVar9 = DAT_1826707d8;
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar34 = (uVar31 | uVar32) ^ uVar21;
  *(ulonglong *)(lVar6 + -0x9e0) = uVar34;
  uVar32 = CONCAT44(uVar20,uVar20);
  uVar31 = CONCAT44(uVar9,DAT_1826707e0);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707c8 ^ 0xcf83fb07)) =
       uVar37 ^ uVar32 ^ uVar34 ^ uVar21 ^ uVar29;
  uVar43 = uVar43 ^ *(ulonglong *)(lVar6 + -0x558);
  uVar33 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar21 = (uVar26 ^ *(ulonglong *)(lVar6 + -0x6b8)) + uVar43;
  uVar26 = uVar21 ^ uVar33;
  uVar37 = (*(ulonglong *)(lVar6 + -0x558) >> 0x20 ^ uVar45) >> 0x14;
  *(ulonglong *)(lVar6 + -0x610) = uVar26;
  bVar18 = (byte)DAT_1826707b8;
  uVar34 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) = (uVar31 ^ 0x1545016c743e4b10) << ((bVar18 ^ 0x45) & 0x3f)
  ;
  *puVar5 = uVar43 << 0xc ^ uVar34;
  uVar9 = DAT_1826707ac;
  *puVar2 = uVar37 ^ CONCAT44(DAT_182670934,DAT_182670934);
  *puVar4 = uVar21 - (*puVar3 ^ uVar32);
  uVar11 = DAT_1826707c8;
  lVar6 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_182670894,DAT_182670894);
  uVar30 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xfdfe7add)) ^ uVar34 | uVar37) ^ uVar21;
  uVar34 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(ulonglong *)(lVar6 + -0x118) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0xcf83fd97)) ^ uVar30 ^ uVar21 ^ uVar26 ^ uVar33;
  uVar20 = DAT_1826707c4;
  uVar8 = DAT_1826707a8;
  uVar24 = DAT_1826707c4 ^ 0x2b0d73d5;
  *(ulonglong *)(lVar6 - (uVar42 ^ 0xbcfbee78)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0xcf83fc7f)) ^ uVar30) + (*puVar1 ^ uVar29) ^
       uVar34;
  uVar21 = (ulonglong)DAT_1826707e4;
  *(uint *)(lVar6 - (uVar44 ^ 0x41b49ac2)) = uVar24 + (DAT_1826707b4 ^ 0xb90f470);
  uVar24 = DAT_1826708ec;
  uVar11 = DAT_1826707d0;
  uVar37 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar26 = (ulonglong)DAT_1826708ec;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xfdfe7a6d)) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0x727d2fe5)) ^ uVar30) << ((bVar18 ^ 0x42) & 0x3f) ^ uVar37
  ;
  *(ulonglong *)(lVar6 + -0x3b0) =
       (CONCAT44(DAT_1826707d4,uVar8) ^ 0xf617606eae078ac4) + 0xeb5f6be092b8683;
  uVar8 = DAT_182670850;
  uVar31 = CONCAT44(DAT_182670988,DAT_182670988);
  puVar36 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707cc ^ 0x307c0e60));
  *puVar36 = (uVar30 ^ *(ulonglong *)(lVar6 + -0x118)) >> (((byte)uVar11 ^ 0xf8) & 0x3f) ^ uVar31;
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar6 - (uVar44 ^ 0x41b490f6)) =
       (uVar31 ^ *(ulonglong *)(lVar6 + -0xcf8) | *(ulonglong *)(lVar6 + -0xd88) ^ uVar37) ^ uVar21;
  *(uint *)(lVar6 + -0x2d4) = (*(uint *)(lVar6 + -0x14) ^ DAT_182670984) + 0x6af176ef;
  lVar7 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar24,uVar24);
  *(ulonglong *)(lVar6 + -0x2b0) = (*(ulonglong *)(lVar6 + -0xd88) ^ uVar37) << 0x29;
  uVar8 = DAT_182670ae0;
  uVar29 = uVar30 ^ uVar21 ^ uVar34 ^ *(ulonglong *)(lVar6 + -0xce0) ^
           *(ulonglong *)(lVar6 + -0x9e0);
  uVar21 = *(ulonglong *)(lVar7 + -0x610);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar29;
  uVar31 = *puVar3;
  uVar37 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 + -0x558) = (*puVar3 ^ uVar32) + (uVar33 ^ uVar21) ^ uVar37;
  *(ulonglong *)(lVar7 - (uVar44 ^ 0x41b492a6)) = uVar30 ^ uVar31 ^ uVar32 ^ uVar29;
  lVar6 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670b04,DAT_182670b04);
  uVar31 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x77e5fb9e)) ^ uVar32) << 0x16;
  *puVar5 = uVar31 ^ uVar29;
  uVar21 = (ulonglong)DAT_1826707e4;
  *puVar2 = uVar31 << ((byte)*puVar4 & 0x3f);
  uVar8 = DAT_1826707e8;
  uVar32 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar31 = CONCAT44(uVar10,DAT_1826707e8);
  *(ulonglong *)(lVar6 + -0xf0) = (*puVar3 >> 0x20 ^ uVar35) >> 10 ^ uVar32;
  uVar24 = DAT_1826707e0;
  *(ulonglong *)(lVar6 - (uVar21 ^ 0x727d28cd)) =
       uVar31 ^ CONCAT44(DAT_1826707e0,uVar19) ^ 0xe313efa ^ 0x6e0be33acd3a4721;
  puVar39 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707bc ^ 0xffffff0f));
  uVar21 = uVar29 ^ *puVar5 | uVar32 ^ *puVar39;
  *(ulonglong *)(lVar6 + -0x3b0) = uVar21 ^ CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar14 = DAT_182670854;
  uVar21 = uVar21 ^ uVar37 ^ uVar25 ^ *puVar22;
  *(ulonglong *)(lVar6 + -0x118) = uVar21;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0xcf8) =
       (uVar21 ^ uVar25) + (uVar34 ^ *(ulonglong *)(lVar6 + -0xce0)) ^ uVar32;
  uVar15 = DAT_1826709f4;
  uVar14 = DAT_1826707ec;
  uVar29 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(ulonglong *)(lVar6 + -0x9e0) = (uVar21 ^ uVar25) << 0x20 ^ uVar29;
  lVar6 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar21 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar20 ^ 0x4303f0ef)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x118) ^ uVar25) >> (((byte)uVar14 ^ 0xb8) & 0x3f) ^ uVar31;
  uVar34 = CONCAT44(DAT_18267091c,DAT_18267091c);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707c8 ^ 0xcf83ffd7)) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xed26fdf0)) ^ uVar31 |
       uVar29 ^ *(ulonglong *)(lVar6 + -0x9e0)) ^ uVar34;
  uVar9 = DAT_1826707f0;
  *(ulonglong *)(lVar6 + -0x610) =
       *(ulonglong *)(CONCAT44(DAT_18267095c,DAT_18267095c) ^ *(ulonglong *)(lVar6 + -0x240)) ^
       CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar11 = DAT_1826707dc;
  uVar25 = CONCAT44(DAT_182670afc,DAT_182670afc);
  bVar18 = (byte)DAT_1826707dc;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x255031c)) =
       uVar25 ^ uVar34 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x2b0) ^ *(ulonglong *)(lVar6 + -0xcf8);
  uVar14 = DAT_182670810;
  lVar7 = DAT_1826707a0;
  *(uint *)(lVar6 + -0xc34) = (DAT_1826707f4 ^ 0xc0ad2ce9) << ((bVar18 ^ 0xbf) & 0x1f);
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar33 = (uVar30 ^ *(ulonglong *)(lVar7 + -0x6b8)) << 0x20;
  *puVar2 = (uVar30 ^ *(ulonglong *)(lVar7 + -0x6b8)) + (uVar37 ^ *(ulonglong *)(lVar7 + -0x558)) ^
            uVar34;
  uVar21 = *(ulonglong *)(lVar7 + -0x6b8);
  *puVar3 = uVar33 ^ uVar29;
  uVar12 = DAT_1826707e0;
  uVar31 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar26 = uVar21 >> 0x20 ^ uVar31 ^ uVar26;
  *puVar1 = uVar26;
  uVar13 = DAT_1826707e4;
  uVar37 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x2550594)) = (uVar26 ^ uVar31 | uVar33) ^ uVar28;
  *(int *)(lVar7 + -0x398) =
       *(int *)(lVar7 + -0x280) << ((byte)*(undefined4 *)(lVar7 + -0x140) & 0x1f);
  uVar14 = DAT_182670a44;
  uVar21 = CONCAT44(DAT_182670900,DAT_182670900);
  *puVar39 = *(ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0xbcfc0688)) ^ uVar21 ^ uVar34 ^ uVar28 ^
             *puVar5;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x3b0) =
       (*(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707d0 ^ 0x77e5fd0e)) ^ uVar21) +
       (CONCAT44(uVar19,DAT_1826707d8) ^ 0xd43a2776491c4978) ^ uVar26;
  uVar9 = DAT_1826707b8;
  *(ulonglong *)(lVar7 + -0xce0) = CONCAT44(uVar20,uVar13) << 0x26 ^ 0xb8392e0000000000;
  uVar10 = DAT_1826707c8;
  uVar31 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar7 + -0x118) =
       (CONCAT44(uVar24,uVar9) ^ 0x1908ea5a960686b5) + (uVar32 ^ *puVar36) ^ uVar31;
  uVar21 = (ulonglong)DAT_1826707cc;
  *puVar27 = (CONCAT44(uVar8,DAT_1826707bc) ^ 0x79bbe5df84e4dc93) >> (((byte)uVar12 ^ 0xb3) & 0x3f);
  uVar8 = DAT_182670ad0;
  uVar32 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar7 + -0xd88) =
       (*(ulonglong *)(lVar7 - (uVar21 ^ 0x307c0128)) ^ uVar26) + (uVar31 ^ *puVar38) ^ uVar32;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707f0 ^ 0x2550ebc)) =
       (uVar26 ^ *(ulonglong *)(lVar7 + -0x3b0)) << ((bVar18 ^ 0xa2) & 0x3f) ^ uVar28;
  uVar8 = DAT_1826709d8;
  uVar31 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar7 + -0x2b0) =
       (uVar26 ^ *(ulonglong *)(lVar7 + -0x3b0)) >> (((byte)uVar10 ^ 0x55) & 0x3f) ^ uVar31;
  uVar26 = CONCAT44(uVar8,uVar8);
  uVar21 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)(lVar7 + -0x558) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0x3d7da1c)) ^ uVar31 |
       uVar28 ^ *(ulonglong *)(lVar7 + -0x610)) ^ uVar26;
  uVar16 = DAT_1826708a0;
  uVar14 = DAT_1826707ec;
  uVar8 = DAT_1826707d4;
  *(ulonglong *)(lVar7 - (uVar37 ^ 0x727d2845)) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar20 ^ 0x4303f83f)) ^ uVar21 ^ uVar26 ^ uVar32 ^
       *(ulonglong *)(lVar7 + -0xd88);
  uVar15 = DAT_182670858;
  *puVar3 = (CONCAT44(uVar14,uVar8) ^ 0xd90a7f83c6a18778) + (uVar25 ^ *puVar4) ^
            CONCAT44(uVar16,uVar16);
  *puVar1 = (CONCAT44(uVar10,DAT_1826707a8) ^ 0x7ab4b2884f739ae) + (uVar34 ^ *puVar2) ^
            CONCAT44(uVar15,uVar15);
  *puVar5 = CONCAT44(uVar13,DAT_1826707ac) ^ 0xfd4ee95bc574eb41 |
            CONCAT44(uVar24,uVar14) ^ 0x90212aff263f67a6;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar23;
  return;
}



############ FUN_ 180c6f0c0 size=5156 ############

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

void FUN_180c6f0c0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  int *piVar17;
  byte *pbVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  byte bVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  
  uVar8 = DAT_182670a88;
  uVar7 = DAT_18267088c;
  uVar12 = DAT_1826707e4;
  uVar11 = DAT_1826707e0;
  lVar4 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707e0;
  uVar25 = DAT_1826707e0 & DAT_1826707e4;
  uVar16 = *(uint *)(&DAT_18260f750 + (uVar27 ^ 0xbfbfcac2) + (longlong)DAT_182670d08) ^
           DAT_1826707e4;
  uVar2 = *(uint *)(&DAT_18260f760 + DAT_182670d08);
  uVar29 = (ulonglong)DAT_1826707e4;
  uVar35 = (ulonglong)uVar25;
  uVar33 = CONCAT44(uVar25,DAT_1826707e4);
  uVar21 = CONCAT44(DAT_1826707e0,DAT_1826707e4);
  DAT_1826707f4 = uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e0 ^ 0xbfbfc742)) ^
       CONCAT44(DAT_182670aa4,DAT_182670aa4)) + (uVar33 ^ 0x1160ff983d1d3b1);
  uVar3 = DAT_182670aec;
  uVar32 = CONCAT44(uVar7,uVar7);
  uVar22 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar4 + -0x9e0) =
       *(ulonglong *)(CONCAT44(DAT_182670a14,DAT_182670a14) ^ *(ulonglong *)(lVar4 + -0x7b8)) ^
       uVar22 ^ uVar32;
  *(ulonglong *)(CONCAT44(uVar3,uVar3) ^ *(ulonglong *)(lVar4 + -0x1e8)) =
       uVar21 ^ 0xf6f4fc6387e4e50b;
  lVar4 = DAT_1826707a0;
  bVar23 = (byte)uVar25;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0xbfbfcb72)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xbfbfc32a)) ^ uVar32) >> ((bVar23 ^ 0xf2) & 0x3f)
       ^ CONCAT44(uVar8,uVar8);
  bVar24 = (byte)DAT_18267087c;
  uVar32 = (ulonglong)DAT_18267085c;
  bVar30 = (byte)uVar8 ^ (byte)DAT_18267087c ^ *(byte *)(lVar4 + -0x1b8);
  *(ulonglong *)(lVar4 + -0x650) =
       (uVar21 ^ 0xbfbfcacabfbfcae5) + *(longlong *)(lVar4 + -0x10) ^ uVar32;
  bVar24 = bVar24 ^ bVar30 ^ DAT_1826709e0;
  *(byte *)(lVar4 + -0xad1) = bVar30;
  uVar8 = DAT_1826709b4;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0xbfbfcc9a)) ^ uVar32) = bVar24;
  uVar7 = DAT_18267091c;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 - ((ulonglong)uVar25 ^ 0xbfbfc81a)) +
           (uVar21 ^ 0xbfbfcacabfbfcacc) * 8);
  *(ulonglong *)(lVar4 + -0xae0) = (ulonglong)puVar1 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182670950;
  lVar5 = DAT_1826707a0;
  uVar32 = *puVar1 ^ uVar22;
  *(ulonglong *)(lVar4 + -0x890) = uVar32 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar5 + -0xd38) = uVar32 >> (((byte)uVar11 ^ 0xca) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  bVar24 = (byte)uVar8 ^ *(byte *)(lVar5 + -0xd38) ^ (byte)DAT_1826709dc;
  *(byte *)(lVar5 + -0xd61) = bVar24;
  pbVar18 = (byte *)(*(longlong *)(lVar5 - (uVar29 ^ 0xbfbfcada)) + 0x30);
  *(ulonglong *)(lVar5 + -0x970) = (ulonglong)pbVar18 ^ (ulonglong)DAT_1826709fc;
  bVar24 = bVar24 ^ (byte)DAT_1826709dc ^ DAT_1826709e0;
  *(ulonglong *)(lVar5 + -0xf0) = uVar33 ^ 0xfffffebdb787fbfd | 0xfdee7e9db707f385;
  uVar7 = DAT_1826709c0;
  uVar3 = DAT_1826707b0;
  uVar29 = (ulonglong)DAT_1826707b0;
  *pbVar18 = bVar24;
  uVar6 = DAT_182670a20;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar32 = CONCAT44(DAT_182670a20,DAT_182670a20);
  puVar1 = (ulonglong *)
           (*(longlong *)(DAT_1826707a0 + -0x2d0) +
           ((uVar21 ^ 0xbfbfcacabfbfcacc) + (CONCAT44(uVar25,uVar3) ^ 0xbfbfcaca90fe3788) * 0xc) * 8
           );
  *(ulonglong *)(DAT_1826707a0 + -0x3c0) = (ulonglong)puVar1 ^ uVar28;
  uVar7 = DAT_1826709b8;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xbfbfcf82)) = uVar32 ^ *puVar1 ^ uVar22;
  uVar26 = (ulonglong)DAT_182670874;
  uVar21 = ((ulonglong)uVar6 << 0x18 | (ulonglong)(uVar6 >> 8)) ^
           *(ulonglong *)(lVar4 + -0x548) >> 8 ^ CONCAT44(uVar7,uVar7);
  uVar32 = (ulonglong)DAT_182670acc;
  bVar24 = (byte)uVar7 ^ (byte)uVar21 ^ (byte)DAT_182670928;
  *(ulonglong *)(lVar4 + -0x420) = uVar21;
  *(byte *)(lVar4 + -0xd02) = bVar24;
  uVar6 = DAT_182670a40;
  *(uint *)(lVar4 + -0xc34) = *(uint *)(*(ulonglong *)(lVar4 + -0x6c0) ^ uVar32) ^ DAT_182670a40;
  *(ulonglong *)(lVar4 + -0xaf8) =
       (CONCAT44(uVar12,uVar11) ^ 0xbfbfcacabfbfcafb) + *(longlong *)(lVar4 + -0x10) ^ uVar26;
  uVar13 = DAT_1826707ec;
  uVar21 = (ulonglong)DAT_1826707ec;
  *(int *)(lVar4 + -0x814) =
       *(int *)(lVar4 + -0xb54) << ((byte)*(undefined4 *)(lVar4 - (uVar21 ^ 0x37889a0e)) & 0x1f);
  lVar5 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_182670af8;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0x37889a06)) ^ uVar26) =
       *(byte *)(lVar4 - ((ulonglong)uVar12 ^ 0xbfbfc7c8)) ^ (byte)DAT_182670928 ^ DAT_1826709e0;
  *(byte *)(lVar5 + -0xc35) = *(byte *)(*(ulonglong *)(lVar5 + -0x4f8) ^ uVar32) ^ (byte)uVar6;
  uVar7 = DAT_182670978;
  uVar26 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar5 + -0xb78) =
       *(longlong *)(lVar5 + -0x2d0) +
       ((CONCAT44(uVar25,uVar25) ^ 0xbfbfcacabfbfcacc) +
       (CONCAT44(uVar11,uVar25) ^ 0xbfbfcacabfbfcaca) * 0xc) * 8 ^ uVar26;
  uVar8 = DAT_182670a24;
  uVar32 = (ulonglong)DAT_1826708f4;
  uVar26 = *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar29 ^ 0x90fe3cf0)) ^ uVar26) ^ uVar22;
  *(ulonglong *)(lVar5 + -0x400) = uVar26 ^ CONCAT44(uVar7,uVar7);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       uVar26 >> (((byte)uVar3 ^ 0x98) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  bVar24 = (byte)uVar8 ^ *(byte *)(lVar4 + -0x558);
  *(byte *)(lVar4 + -0xb09) = bVar24 ^ (byte)DAT_182670938;
  *(ulonglong *)(lVar4 + -0x538) =
       (CONCAT44(uVar13,uVar25) ^ 0x378890febfbfcaf8) + *(longlong *)(lVar4 + -0x10) ^ uVar32;
  uVar8 = DAT_182670a7c;
  uVar14 = DAT_182670970;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar27 ^ 0xbfbfcff2)) ^ uVar32) = bVar24 ^ DAT_1826709e0;
  uVar7 = DAT_182670a00;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x2d0) +
           ((CONCAT44(uVar11,uVar3) ^ 0xbfbfcaca90fe378e) + (uVar33 ^ 0xbfbfcacabfbfcaca) * 0xc) * 8
           );
  *(ulonglong *)(lVar4 + -0xa98) = (ulonglong)puVar1 ^ CONCAT44(uVar8,uVar8);
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar32 = *puVar1 ^ uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar32 ^ uVar31;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0x90fe3198)) =
       uVar32 >> ((bVar23 ^ 0xd2) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  *(byte *)(lVar4 - ((ulonglong)uVar25 ^ 0xbfbfccd0)) =
       *(byte *)(lVar4 + -0x610) ^ (byte)DAT_1826709b0 ^ (byte)uVar14;
  bVar24 = DAT_1826709e0;
  uVar7 = DAT_1826707b4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x37889646)) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0x90fe3200)) ^ uVar31) >> (((byte)uVar13 ^ 200) & 0x3f);
  pbVar18 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar13 ^ 0x378890ee)) + 0x33);
  bVar30 = *(byte *)(lVar4 + -0x61a) ^ (byte)DAT_1826709b0;
  *(ulonglong *)(lVar4 + -0x698) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670974;
  *pbVar18 = bVar30 ^ bVar24;
  uVar8 = DAT_182670960;
  uVar32 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar4 + -0xc78) =
       (uVar33 ^ 0xbfbfcacabfbfcaca) * 0x60 + *(longlong *)(lVar4 + -0x2d0) + 0x30 ^ uVar32;
  uVar29 = CONCAT44(uVar8,uVar8);
  bVar19 = (byte)DAT_182670ac4;
  uVar34 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar26 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar4 + -0x630) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xbfbfc6b2)) ^ uVar32) ^ uVar22 ^
       uVar29;
  bVar30 = (byte)DAT_1826707f0;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xbfbfc302)) = (uVar31 ^ *(ulonglong *)(lVar4 + -0x588)) << 0x17;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (*(ulonglong *)(lVar4 + -0x630) ^ uVar29) >> ((bVar30 ^ 0x4d) & 0x3f) ^ uVar34;
  *(byte *)(lVar4 - (uVar26 ^ 0xbd8edb90)) =
       *(byte *)(lVar4 - ((ulonglong)DAT_1826707d4 ^ 0x6fb6c99c)) ^ bVar19 ^ (byte)DAT_182670838;
  uVar9 = DAT_1826708ec;
  uVar3 = DAT_1826707a8;
  uVar33 = (ulonglong)DAT_1826707a8;
  pbVar18 = (byte *)((CONCAT44(uVar11,DAT_1826707a8) ^ 0xbfbfcacadd5fbfe2) +
                    *(longlong *)(lVar4 + -0x10));
  *(ulonglong *)(lVar4 + -0xd10) = (ulonglong)pbVar18 ^ (ulonglong)DAT_1826708b4;
  uVar8 = DAT_182670864;
  uVar6 = DAT_1826707b8;
  uVar36 = (ulonglong)DAT_1826707b8;
  *pbVar18 = *(byte *)(lVar4 - ((ulonglong)uVar13 ^ 0x378890bf)) ^ (byte)DAT_182670838 ^ bVar24;
  lVar4 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar8,uVar8);
  piVar17 = (int *)(DAT_1826707a0 - (uVar21 ^ 0x37889baa));
  *(ulonglong *)(DAT_1826707a0 + -0x6e8) =
       *(longlong *)(DAT_1826707a0 + -0x2d0) +
       (CONCAT44(uVar6,DAT_1826707d0) ^ 0x85113e11e8d8355a) * 8 ^ uVar32;
  uVar29 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(int *)(lVar4 + -0xc04) = *piVar17 * *(int *)(lVar4 + -0x8e0);
  uVar20 = DAT_1826707b0;
  uVar21 = *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar35 ^ 0xbfbfcc22)) ^ uVar32) ^ uVar22;
  uVar32 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar21 ^ uVar29;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       uVar21 >> ((bVar23 ^ 0xe2) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  lVar5 = DAT_1826707a0;
  bVar19 = (byte)DAT_18267085c;
  bVar30 = *(byte *)(lVar4 - (uVar32 ^ 0x18410799)) ^ (byte)uVar9 ^ bVar19;
  *(byte *)(DAT_1826707a0 + -0xd89) = bVar30;
  uVar9 = DAT_1826707c4;
  uVar8 = DAT_1826707c0;
  pbVar18 = (byte *)((CONCAT44(uVar20,DAT_1826707c0) ^ 0x90fe378880522c75) +
                    *(longlong *)(lVar5 + -0x10));
  *(ulonglong *)(lVar5 + -0xdc8) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670ad8;
  *pbVar18 = bVar19 ^ bVar24 ^ bVar30;
  bVar24 = (byte)DAT_182670abc;
  uVar15 = DAT_182670a80;
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xbfbfcd12)) =
       CONCAT44(uVar9,uVar8) ^ *(ulonglong *)(lVar5 + -0x6f0) ^ uVar29 ^ 0xc3a5de0312ec764b;
  uVar6 = DAT_1826707ac;
  uVar31 = (ulonglong)DAT_1826707bc;
  bVar30 = (byte)DAT_1826707bc;
  uVar29 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0xbd8ed101)) =
       *(longlong *)(lVar5 + -0x2d0) + (CONCAT44(uVar7,uVar11) ^ 0xf87773c7bfbfcacc) * 8 ^ uVar34;
  uVar32 = *(ulonglong *)(*(ulonglong *)(lVar5 + -0xad0) ^ uVar34) ^ uVar22;
  *(ulonglong *)(lVar5 + -0xc18) = uVar32 ^ uVar28;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0x1e6d419)) =
       uVar32 >> ((bVar30 ^ 0x38) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  *(byte *)(lVar4 + -0x1a9) =
       *(byte *)(DAT_1826707a0 - (uVar27 ^ 0xbfbfceda)) ^ (byte)uVar15 ^ bVar24;
  uVar10 = DAT_1826707cc;
  uVar32 = (ulonglong)DAT_182670800;
  uVar21 = CONCAT44(DAT_1826707cc,uVar6);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xbfbfc39a)) =
       (uVar21 ^ 0xcb2c6fb6d4835148) + *(longlong *)(lVar4 + -0x10) ^ uVar32;
  bVar24 = bVar24 ^ *(byte *)(lVar4 + -0x1a9) ^ DAT_1826709e0;
  *(ulonglong *)(lVar4 + -0x660) = ((ulonglong)DAT_1826707c8 ^ 0x70000000) >> 0x1c;
  *(byte *)(*(ulonglong *)(lVar4 + -0x950) ^ uVar32) = bVar24;
  uVar32 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x85113ab1)) =
       *(longlong *)(lVar4 + -0x2d0) + 0x30 +
       (CONCAT44(DAT_1826707dc,uVar12) ^ 0x9d523fd2bfbfcaca) * 0x60 ^ uVar32;
  lVar5 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar4 + -0xbb0) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x4a0) ^ uVar32) ^ uVar22 ^ uVar26;
  uVar7 = DAT_182670af4;
  *(ulonglong *)(CONCAT44(DAT_182670a94,DAT_182670a94) ^ *(ulonglong *)(lVar4 + -0x798)) =
       CONCAT44(uVar13,uVar3) ^ 0x1d64e65c1e0a69ff;
  bVar24 = DAT_1826709e0;
  uVar32 = (ulonglong)DAT_1826708f0;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xbfbfc62a)) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0xbb0)) >> (((byte)uVar9 ^ 0x87) & 0x3f) ^
       CONCAT44(uVar7,uVar7);
  *(byte *)(lVar5 + -0x539) = (byte)uVar7 ^ *(byte *)(lVar5 + -0xce0) ^ (byte)DAT_182670adc;
  *(ulonglong *)(lVar5 - (uVar31 ^ 0x1a6c2f0)) = *(longlong *)(lVar5 + -0x10) + 0x37U ^ uVar32;
  uVar3 = DAT_1826707b0;
  *(byte *)(*(ulonglong *)(lVar5 + -0x2f8) ^ uVar32) =
       *(byte *)(lVar5 + -0x539) ^ (byte)DAT_182670adc ^ bVar24;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0xdd5fbe56)) =
       *(longlong *)(lVar5 + -0x2d0) +
       ((CONCAT44(uVar6,uVar3) ^ 0xd483517e90fe378f) +
       (CONCAT44(uVar20,DAT_1826707c8) ^ 0x90fe378801e6d009) * 0xc) * 8 ^ uVar22;
  uVar7 = DAT_182670a10;
  uVar32 = CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar3 = DAT_1826707e0 & 1;
  uVar26 = *(ulonglong *)(uVar22 ^ *(ulonglong *)(lVar5 + -0x180)) ^ uVar22 ^ uVar32;
  *(ulonglong *)(lVar5 + -0x4c8) = uVar26;
  uVar20 = uVar6;
  if (uVar3 == 0) {
    uVar20 = DAT_1826707e0;
  }
  uVar33 = (ulonglong)uVar20;
  uVar31 = (ulonglong)DAT_182670930;
  uVar32 = CONCAT44(uVar7,uVar7) ^ uVar26 ^ uVar32;
  DAT_1826707c8 = uVar20;
  *(ulonglong *)(lVar5 + -0x438) = uVar32;
  bVar30 = (byte)uVar7 ^ (byte)uVar32;
  *(byte *)(lVar5 + -0xb1a) = bVar30 ^ (byte)DAT_182670950;
  *(ulonglong *)(lVar5 + -0x340) =
       (CONCAT44(uVar11,uVar20) ^ 0xbfbfcacabfbfcaf2) + *(longlong *)(lVar5 + -0x10) ^ uVar31;
  uVar3 = DAT_1826707cc;
  uVar32 = CONCAT44(uVar6,DAT_1826707cc);
  uVar35 = uVar32 ^ 0xd483517ecb2c6fb1;
  uVar26 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707cc ^ 0xcb2c6cf6)) ^ uVar31) =
       bVar30 ^ bVar24;
  uVar7 = DAT_182670814;
  *(ulonglong *)(lVar5 - (uVar33 ^ 0xbfbfc9ba)) =
       *(longlong *)(lVar5 + -0x2d0) +
       (uVar35 + (CONCAT44(uVar6,uVar11) ^ 0xd483517ebfbfcaca) * 0xc) * 8 ^ uVar26;
  uVar34 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar31 = (ulonglong)DAT_182670a90;
  *(ulonglong *)(lVar5 + -0x118) =
       *(ulonglong *)(*(ulonglong *)(lVar5 + -0x370) ^ uVar26) ^ uVar22 ^ uVar34;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar20 ^ 0xbfbfc00a)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0xcb2c6eae)) ^ uVar34) >>
       (((byte)uVar6 ^ 0x76) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *(byte *)(lVar4 - (uVar27 ^ 0xbfbfcc53)) =
       (byte)uVar7 ^ *(byte *)(lVar4 + -0xac0) ^ (byte)DAT_18267094c;
  uVar7 = DAT_182670848;
  lVar5 = DAT_1826707a0;
  bVar30 = *(byte *)(lVar4 + -0x699) ^ (byte)DAT_18267094c;
  *(ulonglong *)(lVar4 + -0x570) = *(longlong *)(lVar4 + -0x10) + 0x39U ^ uVar31;
  uVar8 = DAT_182670b00;
  uVar26 = CONCAT44(uVar20,DAT_1826707cc);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0xd483540e)) ^ uVar31) = bVar30 ^ bVar24;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar5 + -0x2d0) +
           ((uVar26 ^ 0xbfbfcacacb2c6fb1) + (uVar32 ^ 0xd483517ecb2c6fb6) * 0xc) * 8);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xbfbfce2a)) = (ulonglong)puVar1 ^ CONCAT44(uVar8,uVar8);
  uVar32 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0xbfbfc742)) = *puVar1 ^ uVar22 ^ uVar32;
  uVar3 = DAT_1826707cc;
  bVar24 = (byte)uVar7 ^ (byte)DAT_182670858;
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) =
       (*(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar32) >> (((byte)uVar6 ^ 0x6e) & 0x3f) ^
       CONCAT44(uVar7,uVar7);
  lVar4 = DAT_1826707a0;
  pbVar18 = (byte *)(DAT_1826707a0 + -0x3b0);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       *(ulonglong *)(uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x180)) ^ uVar22;
  *(byte *)(lVar4 - ((ulonglong)uVar3 ^ 0xcb2c6b3f)) = bVar24 ^ *pbVar18;
  uVar31 = (ulonglong)DAT_182670aec;
  *(ulonglong *)(lVar4 + -0x858) =
       *(longlong *)(lVar4 - ((ulonglong)uVar20 ^ 0xbfbfcada)) + (uVar26 ^ 0xbfbfcacacb2c6f8c) ^
       uVar31;
  uVar32 = CONCAT44(DAT_182670818,DAT_182670818);
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0xcb2c67ee)) ^ uVar31) =
       *(byte *)(lVar4 + -0x489) ^ (byte)DAT_182670858 ^ DAT_1826709e0;
  uVar7 = DAT_182670ac0;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xbfbfcd7a)) =
       *(longlong *)(DAT_1826707a0 + -0x2d0) +
       ((CONCAT44(uVar6,uVar6) ^ 0xd483517ed4835179) + (uVar26 ^ 0xbfbfcacacb2c6fb6) * 0xc) * 8 ^
       uVar32;
  uVar27 = *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0xbfbfcd7a)) ^ uVar32) ^
           uVar22;
  *(ulonglong *)(lVar4 + -0x9e0) = uVar27 ^ CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar3 = DAT_1826707cc;
  uVar26 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar4 + -0x1b8) = uVar27 >> (((byte)uVar20 ^ 0xd2) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  uVar27 = (ulonglong)DAT_182670a1c;
  bVar24 = *(byte *)(lVar4 - (uVar26 ^ 0xcb2c6e0e)) ^ (byte)uVar7;
  pbVar18 = (byte *)(*(longlong *)(lVar4 + -0x10) + 0x3b);
  *(byte *)(lVar4 + -0xbf1) = bVar24 ^ (byte)DAT_182670a94;
  *(ulonglong *)(lVar4 + -0xd50) = (ulonglong)pbVar18 ^ uVar27;
  *pbVar18 = bVar24 ^ DAT_1826709e0;
  uVar12 = DAT_182670898;
  uVar27 = (ulonglong)DAT_182670898;
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xbfbfca0a)) =
       *(longlong *)(lVar4 + -0x2d0) +
       (uVar35 + (CONCAT44(uVar11,uVar11) ^ 0xbfbfcacabfbfcaca) * 0xc) * 8 ^ uVar28;
  uVar32 = CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(*(ulonglong *)(lVar4 + -0xc0) ^ uVar28) ^ uVar22
  ;
  *(ulonglong *)(lVar4 + -0x890) = uVar32;
  *(ulonglong *)(lVar4 + -0xd38) = uVar32 >> 0x20 ^ uVar27 ^ CONCAT44(uVar14,uVar14);
  uVar27 = (ulonglong)DAT_18267089c;
  *(ulonglong *)(lVar4 + -0xf0) = (uVar21 ^ 0x8fcc9c5afb425c5c) + 0x4aec45a8660e096a;
  *(byte *)(lVar4 - (uVar29 ^ 0xd4835307)) =
       *(byte *)(lVar4 - ((ulonglong)uVar3 ^ 0xcb2c628e)) ^ (byte)DAT_182670878 ^ (byte)uVar14;
  pbVar18 = (byte *)((CONCAT44(uVar20,uVar11) ^ 0xbfbfcacabfbfcaf6) + *(longlong *)(lVar4 + -0x10));
  *(ulonglong *)(lVar4 + -0x318) = (ulonglong)pbVar18 ^ uVar27;
  uVar7 = DAT_1826709bc;
  *pbVar18 = *(byte *)(lVar4 - (uVar33 ^ 0xbfbfc8b3)) ^ (byte)DAT_182670878 ^ DAT_1826709e0;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar4 - (uVar26 ^ 0xcb2c6d66)) +
           ((CONCAT44(uVar10,uVar11) ^ 0xcb2c6fb6bfbfcacd) +
           (CONCAT44(uVar11,uVar6) ^ 0xbfbfcacad483517e) * 0xc) * 8);
  uVar27 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar4 + -0x58) = (ulonglong)puVar1 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0x548) = uVar27 ^ *puVar1 ^ uVar22;
  *(longlong *)(lVar4 + -0x420) = *(longlong *)(lVar4 + -0xf0) + 0x612e715da5fa1763;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar25) * 4) = uVar16;
  return;
}



############ FUN_ 180ca71c0 size=5594 ############

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

void FUN_180ca71c0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  byte bVar13;
  uint uVar14;
  ulonglong *puVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte bVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte bVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  byte local_108;
  byte local_c8;
  
  uVar8 = DAT_1826707f0;
  uVar6 = DAT_1826707e4;
  uVar4 = DAT_1826707b8;
  uVar27 = DAT_1826707b4;
  lVar1 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707e4;
  uVar38 = (ulonglong)DAT_1826707b4;
  uVar16 = (ulonglong)DAT_1826707b8;
  uVar45 = (ulonglong)DAT_1826707f0;
  uVar14 = DAT_1826707e4 + DAT_1826707b4;
  uVar34 = DAT_1826707b8 + DAT_1826707f0;
  uVar19 = *(uint *)(&DAT_18260f758 + DAT_182670dbc) ^ DAT_1826707e4;
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670dbc) ^ DAT_1826707b4;
  uVar24 = (ulonglong)DAT_1826707b8;
  uVar23 = (ulonglong)uVar14;
  uVar17 = (ulonglong)uVar34;
  puVar49 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0x163e27ac));
  uVar20 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar35 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  DAT_1826707a8 = uVar34;
  DAT_1826707c0 = uVar14;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (uVar20 ^ *puVar49) >> (((byte)uVar34 ^ 0x36) & 0x3f) ^ uVar35;
  uVar10 = DAT_1826709cc;
  puVar18 = (ulonglong *)(lVar1 - (uVar17 ^ 0xf20a79f2));
  *puVar18 = CONCAT44(uVar8,uVar6) ^ 0xe092b1029faa27bd | CONCAT44(uVar8,uVar4) ^ 0xd4d717024cf4cefc
  ;
  uVar9 = DAT_182670958;
  bVar13 = (byte)uVar27;
  uVar20 = (uVar20 ^ *(ulonglong *)(lVar1 + -0x610)) << ((bVar13 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar1 + -0x7d8) = uVar20 ^ CONCAT44(uVar10,uVar10);
  uVar40 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0x373e2f00)) =
       (*(ulonglong *)(lVar1 + -0xc18) ^ uVar35 | uVar20) ^ uVar40;
  uVar9 = DAT_182670864;
  *(int *)(lVar1 + -0xcec) = *(int *)(lVar1 + -0x7e4) + -0x7380ac52;
  uVar44 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x9200518a)) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar1 + -0x9c8)) -
       (uVar40 ^ *(ulonglong *)(lVar1 + -0xac0)) ^ uVar44;
  *(ulonglong *)(lVar1 + -0x658) =
       (CONCAT44(uVar34,uVar14) ^ 0x8e4cc46e6e109d48) + 0xce03d21801c88289;
  uVar10 = DAT_18267084c;
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar35 = CONCAT44(DAT_182670a54,DAT_182670a54);
  puVar21 = (ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xdefffe74));
  uVar29 = CONCAT44(DAT_182670810,DAT_182670810);
  uVar39 = uVar35 ^ uVar24 ^ uVar40 ^ *puVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0xac0);
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar39;
  uVar9 = DAT_182670814;
  uVar40 = (uVar39 ^ uVar24) >> ((bVar13 ^ 0xd9) & 0x3f);
  uVar20 = CONCAT44(DAT_18267093c,DAT_18267093c);
  uVar24 = (uVar39 ^ uVar24) << (((byte)uVar34 ^ 0x1d) & 0x3f);
  *(ulonglong *)(lVar2 + -0xf0) = uVar40 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x4c8) = uVar24 ^ uVar20;
  uVar29 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x600a2b18)) = (uVar40 | uVar24) ^ uVar29;
  uVar24 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar30 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar35 ^ *puVar21) - (*(ulonglong *)(lVar2 - (uVar17 ^ 0xf20a7c22)) ^ uVar24) ^ uVar30;
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x600a2ad0)) =
       0x8d8c0a61c77ffa1d >> ((*(byte *)(lVar2 + -0x558) ^ (byte)uVar10) & 0x3f);
  uVar48 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar2 + -0x9c8) =
       (*(ulonglong *)(lVar2 + -0xc18) ^ uVar30) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0x373e23d0)) ^ uVar29) ^ uVar48;
  uVar9 = DAT_182670878;
  uVar20 = CONCAT44(DAT_182670838,DAT_182670838);
  uVar31 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  uVar36 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x92005cd2)) ^ uVar20) +
       (*(ulonglong *)(lVar2 + -0xbb0) ^ uVar31) ^ uVar36;
  uVar11 = DAT_182670aac;
  puVar15 = (ulonglong *)(lVar2 - (uVar45 ^ 0x600a2b50));
  uVar39 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(ulonglong *)(lVar2 + -0xac0) = (uVar29 ^ *puVar49) - (uVar36 ^ *puVar15) ^ uVar39;
  uVar10 = DAT_182670978;
  uVar46 = CONCAT44(uVar11,uVar11);
  local_108 = (byte)uVar6;
  uVar35 = *(ulonglong *)(lVar2 - (uVar38 ^ 0x373e2478)) ^ CONCAT44(uVar9,uVar9) ^ uVar46 ^ uVar44 ^
           *(ulonglong *)(lVar2 + -0x5c0);
  *(ulonglong *)(lVar2 + -0xf0) = uVar35;
  uVar29 = (uVar35 ^ uVar46) >> ((local_108 ^ 0xdd) & 0x3f);
  uVar35 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(lVar2 + -0x4c8) = uVar29 ^ CONCAT44(uVar10,uVar10);
  uVar10 = _DAT_182670b10;
  uVar9 = DAT_182670998;
  local_c8 = (byte)uVar4;
  uVar40 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0x163e214c)) ^ uVar46) << ((local_c8 ^ 0x2d) & 0x3f);
  *(ulonglong *)(lVar2 + -0x588) = uVar40 ^ uVar35;
  uVar40 = uVar40 | uVar29;
  uVar35 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar2 + -0x558) = uVar40 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182670a2c;
  uVar5 = DAT_1826707cc;
  uVar29 = (uVar44 ^ *(ulonglong *)(lVar2 + -0x1b8)) -
           (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar2 + -0xd38));
  *(ulonglong *)(lVar2 + -0x7d8) = uVar29 ^ uVar35;
  uVar3 = DAT_1826707f4;
  uVar41 = (ulonglong)DAT_1826707f4;
  uVar50 = CONCAT44(uVar9,uVar9);
  uVar26 = DAT_1826707f4 + uVar5;
  DAT_1826707dc = uVar26;
  *(ulonglong *)(lVar2 + -0xc18) = uVar29 - uVar40 ^ uVar50;
  *(ulonglong *)(lVar2 + -0x610) = 0x72c78ab0a1a3615d >> (((byte)uVar14 ^ 0xa7) & 0x3f);
  uVar9 = DAT_182670a14;
  uVar35 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  uVar29 = -(*(ulonglong *)(lVar2 + -0x890) ^ uVar35) - 0xd;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar29 ^ CONCAT44(DAT_18267080c,DAT_18267080c);
  lVar1 = DAT_1826707a0;
  uVar44 = (ulonglong)uVar26;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar26 ^ 0xd9b93f84)) = uVar29 + uVar40 ^ uVar37;
  uVar9 = DAT_182670980;
  uVar29 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar37 = *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xd32c5bf2)) ^ uVar29 ^ uVar37 ^
           *(ulonglong *)(lVar1 + -0xf0) ^ uVar48;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar37;
  lVar1 = DAT_1826707a0;
  bVar22 = (byte)uVar26;
  bVar43 = (byte)uVar5;
  *(uint *)(DAT_1826707a0 + -0x43c) = uVar5 ^ 0xff13e33f | 0xbb01423d;
  lVar2 = DAT_1826707a0;
  uVar40 = (uVar37 ^ uVar29) >> ((bVar22 ^ 0x71) & 0x3f);
  *(ulonglong *)(lVar1 + -0x588) = uVar40 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182670990;
  uVar29 = (uVar29 ^ uVar37) << ((bVar43 ^ 1) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd38) = uVar29 ^ CONCAT44(DAT_182670a74,DAT_182670a74);
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar40 = uVar40 | uVar29;
  uVar37 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar2 + -0x1b8) = uVar40 ^ uVar32;
  uVar9 = DAT_18267092c;
  *(ulonglong *)(lVar2 + -0x7d8) = (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar48) - uVar40 ^ uVar37;
  uVar29 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x610) =
       uVar29 ^ uVar50 ^ uVar39 ^ *(ulonglong *)(lVar2 + -0xc18) ^ *(ulonglong *)(lVar2 + -0xac0);
  uVar42 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar2 + -0x5c0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xd32c542a)) ^ uVar29) >>
       ((bVar43 ^ 0x1f) & 0x3f) ^ uVar42;
  bVar47 = (byte)uVar3;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0x68ce862)) =
       (CONCAT44(uVar26,uVar3) ^ 0xa5e3f587cb7e01c8) >> ((bVar22 ^ 0x5d) & 0x3f);
  uVar40 = (uVar29 ^ *(ulonglong *)(lVar2 + -0x610)) << ((bVar47 ^ 0x21) & 0x3f);
  uVar29 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(longlong *)(lVar2 + -0x4c8) = -0x1faa84f5a81db63c << (((byte)uVar8 ^ 0x23) & 0x3f);
  *(ulonglong *)(lVar2 + -0xf0) = uVar40 ^ uVar29;
  puVar49 = (ulonglong *)(lVar2 - (uVar23 ^ 0x163e247c));
  *(ulonglong *)(lVar2 + -0xd38) = (uVar40 | uVar42 ^ *puVar49) ^ uVar20;
  puVar25 = (ulonglong *)(lVar2 - (uVar45 ^ 0x600a2030));
  uVar40 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar50 = (uVar50 ^ *(ulonglong *)(lVar2 + -0xc18)) - (*puVar25 ^ uVar20) ^ uVar40;
  uVar29 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(lVar2 + -0x588) = uVar50;
  uVar20 = *(ulonglong *)(lVar2 - (uVar38 ^ 0x373e2218)) ^
           *(ulonglong *)(lVar2 - (uVar41 ^ 0x68ce002)) ^ uVar29 ^ uVar37 ^ uVar20;
  *(uint *)(lVar2 + -0x540) = (DAT_1826707f0 ^ 0xc26fffff) >> 0x12;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar20;
  uVar9 = DAT_182670a7c;
  uVar29 = uVar29 ^ uVar20;
  uVar20 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar2 + -0xac0) = uVar29 >> ((bVar43 ^ 0x2d) & 0x3f) ^ uVar46;
  uVar29 = uVar29 << ((bVar13 ^ 0xe9) & 0x3f);
  *(ulonglong *)(lVar2 + -0x558) = uVar29 ^ uVar20;
  lVar1 = DAT_1826707a0;
  uVar45 = (ulonglong)DAT_1826709a4;
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar48 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar29 = *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x68ce7fa)) ^ uVar46 | uVar29;
  uVar46 = CONCAT44(DAT_182670910,DAT_182670910);
  puVar21 = (ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0xd9b938ac));
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar29 ^ uVar39;
  *(ulonglong *)(lVar1 + -0x4c8) = (*puVar21 ^ uVar37) - uVar29 ^ uVar46;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 - (uVar16 ^ 0x920055f2)) =
       uVar40 ^ uVar32 ^ *(ulonglong *)(lVar1 + -0x1b8) ^ uVar48 ^ uVar50;
  uVar20 = *(ulonglong *)(lVar2 + -0x5c0);
  uVar29 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *(ulonglong *)(lVar2 + -0xf0) = (uVar20 >> 0x20 ^ uVar45) >> 8 ^ uVar29;
  uVar9 = DAT_1826709e4;
  uVar16 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  puVar33 = (ulonglong *)(DAT_1826707a0 - (uVar17 ^ 0xf20a7122));
  *puVar33 = (uVar20 ^ uVar48) << 0x18 ^ uVar16;
  lVar1 = DAT_1826707a0;
  uVar20 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0xd9b9324c)) =
       (*(ulonglong *)(DAT_1826707a0 + -0xc18) ^ uVar16 |
       *(ulonglong *)(DAT_1826707a0 + -0xf0) ^ uVar29) ^ uVar20;
  uVar37 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar1 - (uVar17 ^ 0xf20a74f2)) =
       (uVar40 ^ *(ulonglong *)(lVar1 + -0x588)) -
       (*(ulonglong *)(lVar1 - (uVar23 ^ 0x163e2c84)) ^ uVar20) ^ uVar37;
  uVar9 = DAT_18267087c;
  lVar1 = DAT_1826707a0;
  uVar16 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar20 = *puVar25 ^ *puVar18 ^ uVar16 ^ uVar20 ^ uVar46;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar20;
  uVar29 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar17 ^ 0xf20a7862)) =
       (uVar20 ^ uVar16) >> ((local_c8 ^ 6) & 0x3f) ^ uVar29;
  uVar9 = DAT_18267095c;
  uVar20 = (uVar16 ^ *(ulonglong *)(lVar1 + -0xac0)) << ((bVar47 ^ 0x36) & 0x3f);
  *(ulonglong *)(lVar1 + -0x7d8) = uVar20 ^ uVar31;
  uVar3 = DAT_1826707ac;
  lVar2 = DAT_1826707a0;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar17 ^ 0xf20a7c82)) =
       (uVar20 | *(ulonglong *)(lVar1 + -0x558) ^ uVar29) ^ uVar16;
  uVar29 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar1 + -0x5c0) =
       (*(ulonglong *)(lVar1 + -0x4c8) ^ uVar46) - (*(ulonglong *)(lVar1 + -0x1b8) ^ uVar16) ^
       uVar29;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xe9c1decc)) =
       *(ulonglong *)(lVar1 + -0x9c8) ^ uVar24 ^ uVar37 ^ uVar39 ^ *(ulonglong *)(lVar1 + -0x610);
  uVar20 = *(ulonglong *)(lVar2 + -0xf0);
  *(ulonglong *)(lVar1 + -0xc18) =
       CONCAT44(DAT_1826707c8,uVar5) ^ CONCAT44(uVar14,uVar6) ^ 0x6692bc0459f45315;
  uVar5 = DAT_1826707bc;
  lVar1 = DAT_1826707a0;
  bVar13 = (byte)DAT_1826707d0;
  *(ulonglong *)(lVar2 - (uVar44 ^ 0xd9b93afc)) =
       (uVar20 ^ uVar24) >> (((byte)DAT_1826707bc ^ 4) & 0x3f) ^ uVar35;
  uVar7 = DAT_1826707e8;
  uVar26 = DAT_1826707d4;
  uVar20 = CONCAT44(DAT_182670904,DAT_182670904);
  uVar44 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xedc4f205)) =
       (*(ulonglong *)(lVar1 + -0xf0) ^ uVar24) << (bVar13 & 0x3f) ^ uVar20;
  uVar40 = CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar7 ^ 0xcbbf4f7e)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0xe9c1dbb4)) ^ uVar35 |
       *(ulonglong *)(lVar1 + -0xd38) ^ uVar20) ^ uVar40;
  uVar39 = CONCAT44(DAT_182670a04,DAT_182670a04);
  *(ulonglong *)(lVar1 - (uVar44 ^ 0xfbfcdba7)) =
       (*(ulonglong *)(lVar1 + -0x9c8) ^ uVar37) - (uVar40 ^ *(ulonglong *)(lVar1 + -0xac0)) ^
       uVar39;
  *(ulonglong *)(lVar1 - (uVar41 ^ 0x68ceae2)) =
       uVar31 ^ uVar40 ^ uVar29 ^ *(ulonglong *)(lVar1 + -0xac0) ^ *(ulonglong *)(lVar1 + -0x5c0);
  uVar9 = DAT_1826708b0;
  *(ulonglong *)(lVar1 + -0x4c8) =
       ((ulonglong)DAT_1826708e8 << 0x12 | (ulonglong)(DAT_1826708e8 >> 0xe)) ^
       *(ulonglong *)(lVar1 + -0x7d8) >> 0xe ^ uVar16;
  uVar3 = DAT_1826707b0;
  uVar45 = CONCAT44(uVar9,uVar9);
  uVar20 = (uVar31 ^ *(ulonglong *)(lVar1 + -0x7d8)) << (((byte)DAT_1826707c4 ^ 0xd2) & 0x3f);
  uVar35 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar1 + -0x610) = uVar20 ^ uVar45;
  *(ulonglong *)(lVar1 + -0xc18) = (CONCAT44(uVar27,uVar26) ^ 0x13af874dd) << 0x1b;
  uVar10 = DAT_182670a60;
  uVar44 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar1 + -0xf0) =
       (*(ulonglong *)(lVar1 - (uVar38 ^ 0x373e2108)) ^ uVar16 | uVar20) ^ uVar44;
  uVar9 = DAT_182670968;
  uVar20 = (uVar29 ^ *(ulonglong *)(lVar1 + -0x5c0)) -
           (CONCAT44(DAT_1826709c8,DAT_1826709c8) ^ *(ulonglong *)(lVar1 + -0x660));
  *(ulonglong *)(lVar1 + -0x588) = uVar20 ^ CONCAT44(uVar10,uVar10);
  uVar29 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar28 ^ 0xdefff6c4)) =
       uVar20 - (*(ulonglong *)(lVar1 - (uVar35 ^ 0xe9c1decc)) ^ uVar44) ^ uVar29;
  uVar35 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  uVar20 = (*(ulonglong *)(lVar1 + -0x420) ^ uVar35) + (*(ulonglong *)(lVar1 + -0x118) ^ uVar24);
  *(ulonglong *)(lVar1 + -0x9c8) = uVar20 ^ CONCAT44(DAT_182670890,DAT_182670890);
  uVar9 = DAT_182670ae8;
  uVar20 = (*(ulonglong *)(lVar1 - (uVar17 ^ 0xf20a7dca)) ^ uVar44) - uVar20 ^ uVar30;
  *(ulonglong *)(lVar1 + -0xac0) = uVar20;
  uVar27 = DAT_1826707d0;
  uVar44 = CONCAT44(uVar9,uVar9);
  uVar16 = *(ulonglong *)(lVar1 + -0x558) ^ *(ulonglong *)(lVar1 + -0x1b8) ^ uVar44 ^ uVar39 ^
           uVar16;
  uVar28 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar1 + -0xc18) = uVar30 ^ CONCAT44(uVar6,uVar34) ^ uVar20 ^ 0xf6a46acc6c7f5fb2;
  uVar9 = DAT_182670afc;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar16;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x610) = (uVar44 ^ uVar16) >> (((byte)uVar27 ^ 0x17) & 0x3f) ^ uVar24;
  uVar9 = DAT_18267091c;
  uVar37 = (ulonglong)DAT_1826707e0;
  uVar16 = (uVar44 ^ uVar16) << (((byte)DAT_1826707c8 ^ 0xc) & 0x3f);
  uVar20 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar16 ^ uVar42;
  uVar44 = CONCAT44(uVar9,uVar9);
  *puVar49 = (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x82d0c70)) ^ uVar24 | uVar16) ^ uVar44;
  uVar9 = DAT_182670834;
  lVar1 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_1826707e8;
  uVar16 = (*(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x6dffaa95)) ^ uVar39) -
           (uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0x658));
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar16 ^ CONCAT44(DAT_182670850,DAT_182670850);
  uVar10 = DAT_1826709c4;
  uVar31 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar20 ^ 0xcbbf454e)) =
       uVar16 - (uVar44 ^ *(ulonglong *)(lVar1 + -0x5c0)) ^ uVar31;
  uVar16 = (CONCAT44(uVar14,DAT_1826707ac) ^ 0xe9c1de43163e21c8) -
           (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar1 + -0x400));
  uVar20 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar1 + -0x1b8) = uVar16 ^ CONCAT44(DAT_182670a40,DAT_182670a40);
  uVar16 = uVar16 + (uVar44 ^ *(ulonglong *)(lVar1 + -0x5c0)) ^ uVar20;
  *(ulonglong *)(lVar1 + -0xc18) = uVar16;
  uVar9 = DAT_18267083c;
  uVar20 = *(ulonglong *)(lVar1 - (uVar28 ^ 0x412c0f3f)) ^ uVar16 ^ uVar20 ^ uVar29;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar20 ^ uVar45;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x610) = uVar20 >> ((bVar22 ^ 0x54) & 0x3f) ^ uVar16;
  *(ulonglong *)(lVar1 - (uVar37 ^ 0x6dffab05)) = uVar20 << 0x20 ^ uVar40;
  *puVar15 = (CONCAT44(uVar4,uVar3) ^ 0xf57fe1109dd26cae) >> (((byte)uVar8 ^ 0x31) & 0x3f);
  uVar3 = DAT_1826707e8;
  uVar39 = (ulonglong)DAT_1826707e8;
  uVar27 = DAT_1826707e8 | DAT_1826707a8;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0x163e24e4)) =
       (*(ulonglong *)(lVar1 + -0x4c8) ^ uVar40 | uVar16 ^ *(ulonglong *)(lVar1 + -0x610)) ^ uVar35;
  uVar9 = DAT_182670854;
  puVar21 = (ulonglong *)(lVar1 - (uVar17 ^ 0xf20a7002));
  bVar13 = (byte)uVar27;
  DAT_1826707c8 = uVar27;
  *(ulonglong *)(lVar1 + -0x588) =
       (*puVar21 ^ uVar29) - (*(ulonglong *)(lVar1 + -0x558) ^ uVar35) ^ uVar32;
  uVar10 = DAT_1826708a0;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar20 = *(ulonglong *)(lVar1 + -0xf0) ^ uVar30 ^ uVar16 ^ uVar31 ^ *(ulonglong *)(lVar1 + -0xac0)
  ;
  *(ulonglong *)(lVar1 + -0x1b8) = uVar20;
  lVar1 = DAT_1826707a0;
  *puVar33 = (uVar20 ^ uVar16) >> ((bVar13 ^ 0x9e) & 0x3f) ^ CONCAT44(uVar10,uVar10);
  lVar2 = DAT_1826707a0;
  uVar20 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0xcbbf4266)) =
       (*(ulonglong *)(lVar1 + -0x1b8) ^ uVar16) << ((bVar13 ^ 0x9e) & 0x3f) ^ uVar20;
  uVar24 = CONCAT44(DAT_182670950,DAT_182670950);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0xcbbf43e6)) =
       (*(ulonglong *)(lVar2 + -0xc18) ^ CONCAT44(uVar10,uVar10) |
       uVar20 ^ *(ulonglong *)(lVar2 + -0x7d8)) ^ uVar24;
  uVar11 = DAT_182670aa8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xcbbf43ae)) =
       (CONCAT44(uVar27,uVar34) ^ 0x70c1ae852bee845) >>
       ((*(byte *)(lVar2 - ((ulonglong)uVar3 ^ 0xcbbf49a6)) ^ (byte)uVar10) & 0x3f);
  uVar9 = DAT_18267081c;
  *(ulonglong *)(lVar2 + -0x4c8) =
       (*(ulonglong *)(lVar2 + -0xf0) ^ uVar31) - (uVar24 ^ *(ulonglong *)(lVar2 + -0x658)) ^
       CONCAT44(uVar11,uVar11);
  uVar10 = DAT_18267089c;
  uVar16 = CONCAT44(uVar9,uVar9);
  uVar20 = CONCAT44(DAT_182670844,DAT_182670844);
  *puVar21 = *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xfbbf7836)) ^ uVar32 ^ uVar16 ^ uVar24 ^
             *(ulonglong *)(lVar2 + -0x658);
  *(ulonglong *)(lVar2 - (uVar17 ^ 0xf20a77fa)) =
       (uVar16 ^ *(ulonglong *)(lVar2 + -0xd38)) >> ((bVar13 ^ 0x84) & 0x3f) ^ uVar20;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0xcbbf4406)) =
       (CONCAT44(uVar3,uVar3) ^ 0x36e440ce5867800d) <<
       (((byte)uVar9 ^ *(byte *)(lVar2 + -0xd38)) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar17 ^ 0xf20a7ae2)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xfbbf7086)) ^ uVar16) <<
       ((bVar13 ^ 0xb8) & 0x3f) ^ CONCAT44(uVar10,uVar10);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar19;
  return;
}



############ FUN_ 180d39020 size=5964 ############

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

void FUN_180d39020(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  uint uVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  byte bVar26;
  longlong lVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong *puVar42;
  uint uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong *puVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  byte local_130;
  byte local_e0;
  
  uVar16 = DAT_182670a94;
  uVar15 = DAT_182670808;
  uVar14 = DAT_1826707f0;
  uVar11 = DAT_1826707d0;
  uVar10 = DAT_1826707c8;
  uVar8 = DAT_1826707b0;
  uVar24 = DAT_1826707a8;
  uVar48 = (ulonglong)DAT_1826707c8;
  uVar30 = (ulonglong)DAT_1826707f0;
  uVar49 = (ulonglong)DAT_1826707b0;
  uVar46 = (ulonglong)DAT_1826707d0;
  lVar27 = (longlong)DAT_182670c84;
  uVar53 = (ulonglong)DAT_1826707a8;
  uVar17 = DAT_182670808 * DAT_182670abc;
  uVar37 = DAT_1826707c8 * DAT_1826707f0;
  uVar43 = DAT_1826707b0 * DAT_1826707d0;
  *(undefined8 *)(DAT_182670798 + -8) = DAT_1826707a0;
  uVar4 = *(uint *)(&DAT_18260f758 + lVar27);
  uVar5 = *(uint *)(&DAT_18260f760 + lVar27);
  puVar1 = (ulonglong *)(DAT_182670798 + -0x618);
  uVar31 = CONCAT44(uVar14,uVar43);
  DAT_1826707a0 = (undefined8 *)(DAT_182670798 + -8);
  DAT_1826707ac = uVar43;
  DAT_1826707f4 = uVar37;
  *puVar1 = (uVar31 ^ 0x7ee25a629cd3db3d) >> (((byte)uVar10 ^ 0x82) & 0x3f);
  puVar6 = DAT_1826707a0;
  *(longlong *)((longlong)DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xbb6961c4)) = DAT_182670798 + -0xe48;
  uVar25 = CONCAT44(uVar24,DAT_1826707d8);
  puVar6[-0x5a] = DAT_182670798 + -0xea8;
  puVar6[-0x1e] = uVar25 ^ 0x44043820ce809d | 0x7b3bfb465e216e40;
  uVar23 = DAT_1826707dc;
  puVar2 = puVar6 + -0x139;
  uVar18 = DAT_182670a94 >> 0x10 & 0xff;
  uVar18 = (((DAT_182670a94 >> 0x10) << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  DAT_1826708c4 = uVar18;
  puVar6[-0x121] = (ulonglong)uVar18 ^ DAT_182670798 - 0xf08U;
  uVar19 = DAT_1826707c4 ^ 0x93194c;
  puVar6[-0x142] = DAT_182670798 + -0xfb0;
  uVar41 = DAT_1826707cc;
  *(uint *)((longlong)puVar6 + -0x14) = uVar19 & 0x21d3195c;
  puVar6[-0xef] = DAT_182670798 + -0xfd0;
  uVar20 = DAT_182670a94 & 0xff;
  uVar20 = ((DAT_182670a94 << 8 | uVar20) << 8 | uVar20) << 8 | uVar20;
  puVar6[-0x180] = (ulonglong)uVar20 ^ DAT_182670798 - 0x1050U;
  uVar9 = DAT_1826707b8;
  uVar57 = (ulonglong)DAT_1826707b8;
  DAT_182670a94 = uVar20;
  *(longlong *)((longlong)puVar6 - ((ulonglong)uVar41 ^ 0x32889fc4)) = DAT_182670798 + -0x1070;
  *puVar2 = CONCAT44(DAT_1826707bc,uVar10) ^ 0x29a580bd8aded549 | puVar6[-0x1e];
  *(longlong *)((longlong)puVar6 - ((ulonglong)uVar23 ^ 0xa11201b8)) = DAT_182670798 + -0x1090;
  *(longlong *)((longlong)puVar6 - (uVar57 ^ 0xe335ed1a)) = DAT_182670798 + -0x10f0;
  DAT_182670798 = DAT_182670798 + -0x1110;
  *(longlong *)((longlong)puVar6 - ((ulonglong)uVar37 ^ 0xb47798da)) = DAT_182670798;
  uVar23 = DAT_1826707e8;
  uVar13 = DAT_1826707e4;
  uVar19 = DAT_1826707b4;
  uVar21 = DAT_182670808 & 0xff;
  DAT_182670808 = ((DAT_182670808 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar38 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar25 = (ulonglong)DAT_1826707e4;
  puVar6[-0x15c] =
       puVar6[-0xef] +
       ((CONCAT44(DAT_1826707ec,DAT_1826707d4) ^ 0x3bef7fbbaa887b69) +
       (CONCAT44(uVar43,DAT_1826707b4) ^ 0x9c063b886e7fd889) * 4) * 8 ^ uVar38;
  puVar6[-0x1e] = *puVar2 ^ *puVar1;
  uVar12 = DAT_1826707dc;
  uVar21 = DAT_1826707c0;
  uVar22 = DAT_182670abc & 0xff;
  DAT_182670abc = ((DAT_182670abc << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar39 = CONCAT44(DAT_182670abc,DAT_182670abc);
  puVar32 = (ulonglong *)((longlong)puVar6 - (uVar25 ^ 0xf07e5a52));
  uVar58 = (ulonglong)DAT_1826707dc;
  uVar25 = (ulonglong)DAT_1826707c0;
  *puVar32 = **(ulonglong **)(((ulonglong)uVar23 ^ 0xd8da94c1) + (longlong)puVar6) ^ uVar39;
  uVar23 = *(uint *)puVar1;
  *(ulonglong *)((longlong)DAT_1826707a0 - (uVar25 ^ 0xce9d07f)) =
       DAT_1826707a0[2] + (CONCAT44(uVar9,uVar12) ^ 0xe335eb6aa1120189) * 8;
  puVar6 = DAT_1826707a0;
  uVar22 = (DAT_18267094c ^ uVar23) & 0xff;
  DAT_18267094c = (((DAT_18267094c ^ uVar23) << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar33 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar22 = DAT_18267089c ^ (uint)(*(ulonglong *)DAT_1826707a0[-0x30] ^ uVar33);
  *puVar2 = *(ulonglong *)DAT_1826707a0[-0x30] ^ uVar33;
  *(ulonglong *)((longlong)DAT_1826707a0 - ((ulonglong)uVar24 ^ 0x23aca172)) =
       *(longlong *)((uVar30 ^ 0x41fcaca5) + (longlong)puVar6) +
       (CONCAT44(DAT_1826707e0,uVar11) ^ 0xce9d1ffd5aca1c4) * 8;
  puVar6 = DAT_1826707a0;
  uVar23 = uVar22 & 0xff;
  DAT_18267089c = ((uVar22 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar28 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)((longlong)DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0xaa887b99)) =
       *(ulonglong *)DAT_1826707a0[-0x48] ^ uVar28;
  puVar29 = (ulonglong *)((longlong)puVar6 - ((ulonglong)DAT_1826707ec ^ 0x3bef7f4b));
  uVar22 = DAT_1826709a0 ^ (uint)*puVar29;
  puVar6[-0x3d] = puVar6[2] + (CONCAT44(uVar12,uVar21) ^ 0xa11201880ce9d1fc) * 8;
  puVar44 = puVar6 + -0x158;
  puVar36 = DAT_1826707a0 + -0xab;
  uVar25 = **(ulonglong **)((longlong)DAT_1826707a0 - (uVar46 ^ 0xd5aca02e));
  *puVar44 = uVar25;
  puVar6 = DAT_1826707a0;
  uVar21 = DAT_182670a58 ^ (uint)*puVar44;
  uVar23 = uVar22 & 0xff;
  DAT_1826709a0 = ((uVar22 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar34 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *puVar36 = (uVar39 ^ *puVar1) - (CONCAT44(uVar41,uVar37) ^ 0x346304dd8c00756b) ^ uVar34;
  uVar23 = uVar21 & 0xff;
  DAT_182670a58 = ((uVar21 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar35 = (ulonglong)DAT_182670a58;
  uVar40 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *puVar1 = (*(ulonglong *)((longlong)puVar6 - (uVar48 ^ 0x2be71b52)) ^ uVar33) -
            (CONCAT44(DAT_1826707bc,uVar19) ^ 0xf43187f5b497235d) ^ uVar40;
  *puVar2 = (uVar28 ^ puVar6[-0x1e]) - (CONCAT44(DAT_1826707e8,uVar13) ^ 0x2abe1bc2efbb798f) ^
            uVar40;
  puVar6 = DAT_1826707a0;
  uVar41 = uVar9 & uVar24;
  uVar25 = (CONCAT44(uVar8,DAT_1826707d8) ^ 0x449695939176932a) + uVar25;
  uVar47 = uVar25 ^ CONCAT44(uVar18,uVar18);
  uVar19 = DAT_182670a20 ^ (uint)uVar47;
  DAT_1826707bc = uVar41;
  *puVar44 = (CONCAT44(uVar9,uVar37) ^ 0xa12f45b19c358834) <<
             (((byte)uVar47 ^ (byte)(uVar16 >> 0x10)) & 0x3f);
  puVar7 = DAT_1826707a0;
  uVar23 = uVar19 & 0xff;
  DAT_182670a20 = ((uVar19 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar56 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)((longlong)puVar6 - ((ulonglong)uVar41 ^ 0x2324a9e2)) =
       uVar25 - (CONCAT44(uVar24,uVar9) ^ 0x5d730ce82c17d60) ^ uVar56;
  *(uint *)((longlong)puVar7 + -0x2d4) = (uVar41 ^ 0xa4c86adc) + (uVar24 ^ 0xe888ee11);
  uVar25 = uVar56 ^ uVar40 ^ uVar34 ^ *puVar44 ^ *puVar36;
  uVar23 = uVar17 & 0xff;
  puVar6[-0x1e] = uVar25;
  DAT_182670830 = ((uVar17 * 0x100 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar50 = CONCAT44(DAT_182670830,DAT_182670830);
  *puVar44 = uVar25 >> 0x20 ^ uVar50 ^ uVar35;
  puVar3 = puVar7 + -0x183;
  *(ulonglong *)((longlong)puVar7 - ((ulonglong)uVar43 ^ 0x9c063790)) =
       (*(ulonglong *)((longlong)puVar7 - (uVar57 ^ 0xe335eb9a)) ^ uVar40) <<
       (((byte)uVar24 ^ 0x12) & 0x3f) ^ uVar40;
  uVar23 = DAT_182670a3c >> 0x10 & 0xff;
  DAT_182670a98 = (((DAT_182670a3c >> 0x10) << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar45 = CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar25 = uVar40 ^ *puVar3 | uVar50 ^ *puVar44;
  uVar23 = DAT_182670a3c & 0xff;
  puVar7[-0x1e] = uVar25 ^ uVar45;
  DAT_182670a3c = ((DAT_182670a3c << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar54 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *puVar44 = (uVar34 ^ *puVar36) - uVar25 ^ uVar54;
  puVar6 = DAT_1826707a0;
  *(ulonglong *)((longlong)DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xa1120d90)) =
       uVar39 ^ *puVar2 ^ *puVar1;
  uVar23 = DAT_1826707c4;
  uVar19 = DAT_182670a8c & 0xff;
  DAT_182670a8c = ((DAT_182670a8c << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar25 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  puVar51 = (ulonglong *)((longlong)puVar6 - ((ulonglong)DAT_1826707c4 ^ 0xa33226f4));
  *puVar51 = (*(ulonglong *)((longlong)puVar6 - ((ulonglong)DAT_1826707e4 ^ 0xf07e505a)) ^ uVar39)
             >> (((byte)DAT_1826707d8 ^ 0xe4) & 0x3f) ^ uVar25;
  uVar19 = DAT_18267083c;
  uVar35 = (*(ulonglong *)((longlong)puVar6 - (uVar57 ^ 0xe335e772)) ^ uVar39) << 0x20;
  *puVar1 = uVar35 ^ uVar54;
  uVar21 = DAT_18267083c & 0xff;
  uVar35 = uVar35 | uVar25 ^ *puVar36;
  DAT_18267083c = ((DAT_18267083c << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar25 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar47 = uVar35 ^ uVar25;
  *puVar3 = uVar47;
  puVar42 = (ulonglong *)((longlong)puVar6 - (uVar53 ^ 0x23acaafa));
  *puVar1 = (uVar40 ^ *puVar42) - uVar35 ^ uVar56;
  uVar40 = uVar34 ^ uVar47 ^ *puVar44 ^ uVar25 ^ uVar54;
  *puVar36 = uVar40;
  uVar21 = _DAT_182670b10 & 0xff;
  *puVar2 = (uVar31 ^ 0xe93ad6a1a7cc7300) >> (((byte)uVar47 ^ (byte)uVar19) & 0x3f);
  _DAT_182670b10 = ((_DAT_182670b10 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar35 = (uVar34 ^ *puVar51) >> (((byte)DAT_1826707e8 ^ 0xeb) & 0x3f);
  uVar25 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  bVar26 = (byte)DAT_1826707e0;
  *puVar2 = uVar35 ^ uVar25;
  uVar31 = (uVar34 ^ uVar40) << ((bVar26 ^ 0xf9) & 0x3f);
  uVar19 = DAT_182670a7c & 0xff;
  *puVar3 = uVar31 ^ uVar38;
  puVar6 = DAT_1826707a0;
  DAT_182670a7c = ((DAT_182670a7c << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar40 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)((longlong)DAT_1826707a0 - (uVar30 ^ 0x41fca9ed)) = (uVar31 | uVar35) ^ uVar40;
  uVar19 = DAT_1826708c0 & 0xff;
  DAT_1826708c0 = ((DAT_1826708c0 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  puVar51 = (ulonglong *)((longlong)puVar6 - (uVar48 ^ 0x2be717c2));
  uVar35 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  puVar6[-0x133] =
       (*(ulonglong *)((longlong)puVar6 - ((ulonglong)DAT_1826707c0 ^ 0xce9db3f)) ^ uVar54) -
       (uVar40 ^ *puVar51) ^ uVar35;
  uVar19 = DAT_182670acc & 0xff;
  DAT_182670acc = ((DAT_182670acc << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar55 = CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar21 = DAT_182670940 * DAT_182670988;
  *puVar44 = uVar45 ^ uVar56 ^ uVar55 ^ *puVar1 ^ puVar6[-0x1e];
  local_e0 = (byte)uVar15;
  DAT_1826707a0[-0x1e] =
       (*(ulonglong *)((longlong)DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0xaa8872a1)) ^ uVar25)
       >> ((local_e0 ^ (byte)*puVar3) & 0x3f);
  uVar19 = DAT_182670988 & 0xff;
  DAT_182670988 = ((DAT_182670988 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar52 = CONCAT44(DAT_182670988,DAT_182670988);
  local_130 = (byte)uVar11;
  *puVar3 = (*puVar44 ^ uVar55) >> ((local_130 ^ 0xd0) & 0x3f) ^ uVar52;
  *puVar42 = (uVar58 ^ 0x95eb8380) >> 7;
  uVar19 = DAT_182670940 & 0xff;
  DAT_182670940 = ((DAT_182670940 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar47 = CONCAT44(DAT_182670940,DAT_182670940);
  uVar31 = (*puVar44 ^ uVar55) << (((byte)uVar12 ^ 0xa2) & 0x3f);
  uVar25 = *puVar3;
  DAT_1826707a0[-0x1e] = uVar31 ^ uVar47;
  puVar6 = DAT_1826707a0;
  uVar19 = uVar21 & 0xff;
  DAT_182670ac4 = ((uVar21 * 0x100 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar58 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)((longlong)DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0x32889d0c)) =
       (uVar25 ^ uVar52 | uVar31) ^ uVar58;
  uVar21 = DAT_1826707d8;
  uVar19 = DAT_1826707d4;
  *puVar44 = (*(ulonglong *)((longlong)puVar6 - (uVar49 ^ 0xbb696c7c)) ^ uVar56) -
             (uVar58 ^ *puVar2) ^ uVar58;
  *puVar29 = *(ulonglong *)((longlong)puVar6 - ((ulonglong)uVar23 ^ 0xa3322a64)) ^ puVar6[-0x133] ^
             uVar58 ^ uVar52 ^ uVar35;
  *puVar3 = (CONCAT44(uVar41,uVar21) ^ 0x190053af9bd0ade0) >> (((byte)uVar19 ^ 0x6c) & 0x3f);
  puVar6 = DAT_1826707a0;
  uVar23 = DAT_182670858 & 0xff;
  DAT_182670858 = ((DAT_182670858 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar31 = CONCAT44(DAT_182670858,DAT_182670858);
  *puVar1 = (uVar52 ^ DAT_1826707a0[-0x1e]) >> (((byte)uVar37 ^ 0xcc) & 0x3f) ^ uVar31;
  uVar23 = DAT_1826707e4;
  uVar21 = DAT_182670ab8 & 0xff;
  DAT_182670ab8 = ((DAT_182670ab8 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar56 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar25 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)((longlong)puVar6 - ((ulonglong)DAT_1826707e4 ^ 0xf07e558a)) =
       (*(ulonglong *)((longlong)puVar6 - ((ulonglong)uVar43 ^ 0x9c063b78)) ^ uVar52) <<
       (((byte)DAT_1826707c0 ^ 0xed) & 0x3f) ^ uVar56;
  uVar25 = *(ulonglong *)((longlong)puVar6 - (uVar25 ^ 0x3bef7673)) ^ uVar56 | uVar31 ^ *puVar1;
  *puVar3 = uVar25 ^ uVar58;
  puVar6[-0x1e] = (puVar6[-0x133] ^ uVar35) - uVar25 ^ uVar34;
  puVar6 = DAT_1826707a0;
  uVar21 = DAT_1826709ec & 0xff;
  DAT_1826709ec = ((DAT_1826709ec << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar31 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar21 = DAT_1826709fc & 0xff;
  uVar40 = *(ulonglong *)((longlong)DAT_1826707a0 - (uVar49 ^ 0xbb696f34)) ^
           *(ulonglong *)((longlong)DAT_1826707a0 - (uVar57 ^ 0xe335e1aa)) ^ uVar31 ^ uVar58 ^
           uVar40;
  DAT_1826709fc = ((DAT_1826709fc << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar25 = (uVar40 ^ uVar31) >> (((byte)uVar23 ^ 0x4e) & 0x3f);
  uVar31 = (uVar31 ^ uVar40) << (((byte)uVar19 ^ 0x5d) & 0x3f);
  *puVar1 = uVar25 ^ CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar25 = uVar31 | uVar25;
  *(undefined4 *)((longlong)puVar6 + -0x2d4) = *(undefined4 *)((longlong)puVar6 + -0x14);
  puVar6[-0x133] = uVar31 ^ uVar39;
  uVar40 = CONCAT44(uVar20,uVar20);
  *puVar36 = uVar25 ^ uVar47;
  *puVar2 = (*puVar44 ^ uVar58) - uVar25 ^ uVar40;
  uVar23 = DAT_182670aa4 & 0xff;
  DAT_182670aa4 = ((DAT_182670aa4 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar57 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  puVar29 = (ulonglong *)((longlong)puVar6 - (uVar30 ^ 0x41fcac45));
  uVar25 = uVar34 ^ *puVar29 ^ uVar57 ^ uVar47 ^ *puVar51;
  *puVar1 = uVar25;
  puVar6 = DAT_1826707a0;
  uVar23 = DAT_182670ad8 & 0xff;
  DAT_182670ad8 = ((DAT_182670ad8 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar39 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  DAT_1826707a0[-0x133] = (uVar25 ^ uVar57) >> (((byte)uVar41 ^ 0x3b) & 0x3f) ^ uVar39;
  *(ulonglong *)((longlong)puVar6 - (uVar46 ^ 0xd5aca49e)) =
       CONCAT44(uVar12,uVar37) ^ 0x10418ee94f2cdd4c | *puVar44 ^ uVar58;
  uVar25 = puVar6[-0x133];
  uVar31 = (*(ulonglong *)((longlong)puVar6 - (uVar30 ^ 0x41fcaaa5)) ^ uVar57) <<
           (((byte)DAT_1826707e8 ^ 0xf6) & 0x3f);
  *puVar44 = uVar31 ^ uVar28;
  uVar23 = DAT_1826709d4 & 0xff;
  DAT_1826709d4 = ((DAT_1826709d4 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar47 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar23 = DAT_182670a18 & 0xff;
  *puVar36 = (uVar39 ^ uVar25 | uVar31) ^ uVar47;
  puVar6 = DAT_1826707a0;
  DAT_182670a18 = ((DAT_182670a18 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar39 = (ulonglong)DAT_182670a18;
  uVar31 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *puVar32 = (uVar34 ^ DAT_1826707a0[-0x1e]) - (CONCAT44(uVar14,DAT_1826707d8) ^ 0x9690545aadbf69bc)
             ^ uVar31;
  uVar23 = DAT_1826707ec;
  uVar25 = *(ulonglong *)((longlong)puVar6 - (uVar53 ^ 0x23aca66a));
  uVar28 = *puVar1;
  *(uint *)((longlong)puVar6 + -0x2d4) = DAT_1826707b4 ^ 0xf7f7bfe4 | 0x84f4a644;
  puVar6[-0x133] = (uVar31 ^ uVar28) - (uVar25 ^ uVar47) ^ uVar47;
  *puVar44 = (uVar47 ^ *puVar36) - (CONCAT44(uVar10,uVar23) ^ 0xbe13c3e9cd605bf0) ^ uVar56;
  puVar6 = DAT_1826707a0;
  uVar19 = DAT_182670854 & 0xff;
  DAT_182670854 = ((DAT_182670854 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar34 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar25 = (ulonglong)DAT_1826707c0;
  DAT_1826707a0[-0x1e] = *puVar3 ^ uVar34 ^ uVar40 ^ uVar58 ^ *puVar2;
  *(ulonglong *)((longlong)puVar6 - (uVar25 ^ 0xce9d4a7)) = (*puVar1 >> 0x20 ^ uVar39) >> 1;
  uVar25 = puVar6[-0x1e];
  uVar28 = (ulonglong)DAT_1826707e0;
  *puVar3 = (uVar34 ^ puVar6[-0x1e]) >> (((byte)uVar23 ^ 0x9a) & 0x3f) ^ uVar54;
  uVar31 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)((longlong)puVar6 - (uVar28 ^ 0xce9d4a7)) = (uVar34 ^ uVar25) << 0x1f ^ uVar33;
  uVar28 = *(ulonglong *)((longlong)puVar6 - (uVar31 ^ 0xa3322fb4)) ^ uVar54 | uVar33 ^ *puVar36;
  *puVar1 = uVar28 ^ uVar55;
  uVar23 = DAT_1826709b0 & 0xff;
  DAT_1826709b0 = ((DAT_1826709b0 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar25 = (uVar40 ^ *puVar2) - (CONCAT44(uVar11,uVar24) ^ 0x5af48cbbf94458e6);
  DAT_1826707a0[-0x1e] = uVar25 ^ CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar23 = DAT_182670930 & 0xff;
  DAT_182670930 = ((DAT_182670930 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar33 = CONCAT44(DAT_182670930,DAT_182670930);
  uVar23 = DAT_182670860 & 0xff;
  *puVar3 = uVar25 - uVar28 ^ uVar33;
  DAT_182670860 = ((DAT_182670860 << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar25 = CONCAT44(DAT_182670860,DAT_182670860);
  *puVar36 = (CONCAT44(uVar43,uVar8) ^ 0x9d5a5da95199f789) + uVar28 ^ uVar25;
  *puVar2 = CONCAT44(uVar41,uVar41) ^ 0xd2fe29dc01039962 |
            CONCAT44(uVar9,uVar12) ^ 0x2f2b26d864c74fd0;
  uVar23 = DAT_182670a4c & 0xff;
  DAT_182670a4c = ((DAT_182670a4c << 8 | uVar23) << 8 | uVar23) << 8 | uVar23;
  uVar31 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  puVar32 = (ulonglong *)((longlong)DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x6e89699c));
  uVar25 = uVar31 ^ *puVar32 ^ uVar25 ^ uVar47 ^ DAT_1826707a0[-0x133];
  DAT_1826707a0[-0x1e] = uVar25;
  uVar23 = DAT_1826707e8;
  uVar24 = DAT_182670a80 & 0xff;
  DAT_182670a80 = ((DAT_182670a80 << 8 | uVar24) << 8 | uVar24) << 8 | uVar24;
  uVar28 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)((longlong)DAT_1826707a0 - (uVar48 ^ 0x2be7148a)) =
       (uVar25 ^ uVar31) >> (((byte)uVar37 ^ 0xe7) & 0x3f) ^ uVar28;
  bVar26 = (byte)DAT_1826707e0;
  *puVar36 = (CONCAT44(DAT_1826707c0,DAT_1826707d4) ^ 0xdfe69f65184b6ce4) <<
             (((byte)uVar23 ^ 0xe2) & 0x3f);
  puVar6 = DAT_1826707a0;
  uVar25 = *puVar1;
  *puVar36 = (*puVar29 ^ uVar31) << ((bVar26 ^ 0xc4) & 0x3f) ^ uVar57;
  puVar6[-0x1e] = (uVar28 ^ uVar25 | *puVar32 ^ uVar57) ^ uVar50;
  *puVar1 = -0x6f7da1439c889fb2 <<
            ((byte)*(undefined8 *)((longlong)puVar6 - (uVar30 ^ 0x41fca57d)) & 0x3f);
  uVar25 = *puVar3;
  *puVar36 = (*(ulonglong *)((longlong)puVar6 - (uVar49 ^ 0xbb6963f4)) ^ uVar47) -
             (*(ulonglong *)((longlong)puVar6 - (uVar46 ^ 0xd5aca136)) ^ uVar50) ^ uVar45;
  uVar25 = uVar38 ^ uVar25 ^ uVar33 ^ uVar56 ^ *puVar44;
  *puVar2 = uVar25;
  *puVar1 = (uVar38 ^ uVar25) >> (((byte)uVar41 ^ 7) & 0x3f) ^ uVar35;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar5 ^ uVar10) * 4) = uVar4 ^ uVar37;
  return;
}



############ FUN_ 180d05360 size=5257 ############

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

void FUN_180d05360(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_b0;
  
  uVar9 = DAT_1826707e8;
  uVar6 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_1826707e8;
  uVar23 = (ulonglong)DAT_1826707b8;
  uVar15 = DAT_1826707e8 * DAT_1826707b8;
  uVar36 = (ulonglong)uVar15;
  uVar19 = *(uint *)(&DAT_18260f758 + DAT_182670b34) ^ DAT_1826707b8;
  uVar16 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar15 ^ 0x177fa7ee) + (longlong)DAT_182670b34) ^
           DAT_1826707e8;
  uVar20 = (ulonglong)DAT_1826707b8;
  uVar24 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar17 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  DAT_1826707d4 = uVar15;
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0x177fa10e)) =
       (uVar24 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) <<
       (((byte)DAT_182670a5c ^ *(byte *)(DAT_1826707a0 + -0x4c8)) & 0x3f);
  bVar35 = (byte)uVar15;
  uVar25 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0x816b019)) ^ CONCAT44(DAT_1826708a0,DAT_1826708a0)) <<
           ((bVar35 ^ 0xe6) & 0x3f);
  uVar27 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar20 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar2 + -0x400) = uVar25 ^ CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x442d1a3e)) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x220) | uVar25) ^ uVar27;
  uVar33 = CONCAT44(DAT_182670840,DAT_182670840);
  *(ulonglong *)(lVar2 + -0x660) = (*(ulonglong *)(lVar2 + -0x438) ^ uVar33) + 0x2b1d9ac6a0ff3f7e;
  uVar4 = DAT_182670980;
  uVar29 = CONCAT44(DAT_182670804,DAT_182670804);
  uVar25 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar2 + -0x420) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x7d8)) - (uVar27 ^ *(ulonglong *)(lVar2 + -0x5c0)) ^
       uVar25;
  uVar26 = CONCAT44(uVar4,uVar4);
  uVar22 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  puVar18 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x816b619));
  uVar20 = uVar22 ^ uVar26 ^ uVar27 ^ *puVar18 ^ *(ulonglong *)(lVar2 + -0x5c0);
  *(ulonglong *)(lVar2 + -0x998) = uVar20;
  puVar39 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  uVar27 = (uVar26 ^ uVar20) << 0xc;
  uVar28 = CONCAT44(DAT_182670a34,DAT_182670a34);
  uVar20 = (uVar20 ^ uVar26) >> (((byte)uVar6 ^ 0x35) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar27 ^ uVar29;
  uVar4 = DAT_182670930;
  lVar2 = DAT_1826707a0;
  *puVar39 = uVar20 ^ uVar28;
  uVar40 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x442d19a6)) = (uVar27 | uVar20) ^ uVar40;
  uVar5 = DAT_182670b04;
  uVar26 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar22 ^ *puVar18) - (uVar40 ^ *(ulonglong *)(lVar2 + -0x658)) ^ uVar26;
  uVar4 = _DAT_18267097c;
  bVar21 = (byte)uVar9;
  uVar20 = CONCAT44(uVar5,uVar5);
  uVar24 = uVar20 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0x420) ^ uVar24 ^
           *(ulonglong *)(lVar2 + -0x588);
  *(ulonglong *)(lVar2 + -0x9c8) = uVar24;
  lVar2 = DAT_1826707a0;
  uVar27 = (uVar24 ^ uVar20) >> ((bVar21 ^ 199) & 0x3f);
  uVar30 = CONCAT44(uVar4,uVar4);
  uVar20 = (uVar24 ^ uVar20) << ((bVar35 ^ 0xf9) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar27 ^ uVar30;
  uVar4 = DAT_1826709d4;
  *(ulonglong *)(lVar2 + -0x6f0) = uVar20 ^ CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar24 = CONCAT44(uVar4,uVar4);
  uVar20 = uVar20 | uVar27;
  *(ulonglong *)(lVar2 + -0xc18) = uVar20 ^ uVar24;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0x177fa5de)) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x420)) - uVar20 ^ uVar33;
  uVar27 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x442d1bfe)) =
       uVar27 ^ uVar24 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x6b8) ^ *(ulonglong *)(lVar3 + -0xc18);
  uVar4 = DAT_18267094c;
  uVar25 = CONCAT44(DAT_182670978,DAT_182670978);
  *(ulonglong *)(lVar3 + -0x438) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x816b801)) ^ uVar27) >> ((bVar35 ^ 0xf0) & 0x3f) ^ uVar25;
  uVar24 = CONCAT44(uVar4,uVar4);
  puVar31 = (ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x177fa19e));
  uVar20 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *puVar31 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x400)) << ((bVar21 ^ 0xcc) & 0x3f) ^ uVar24;
  uVar4 = DAT_182670988;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x7d8) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x660) | *(ulonglong *)(lVar3 + -0x438) ^ uVar25) ^ uVar20;
  uVar5 = DAT_182670a14;
  uVar34 = CONCAT44(uVar4,uVar4);
  uVar25 = (uVar26 ^ *(ulonglong *)(lVar2 + -0x6b8)) - (CONCAT44(uVar6,uVar6) ^ 0x6de3101a70fc5d8a);
  *(ulonglong *)(lVar2 + -0x5c0) = uVar25 ^ uVar34;
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x998) =
       uVar25 - (*(ulonglong *)(lVar2 - (uVar36 ^ 0x177fa026)) ^ uVar20) ^ uVar37;
  *puVar39 = CONCAT44(uVar6,uVar15) ^ 0x2c13606908b02210 | 0x93ec9906a74ec869;
  uVar29 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(lVar2 + -0xce0) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x442d1826)) ^ uVar20) -
       (CONCAT44(uVar6,uVar9) ^ 0xbea07e3b586ef2dc) ^ uVar29;
  uVar8 = DAT_182670a0c;
  lVar2 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_182670a0c;
  uVar25 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar1 = DAT_182670a0c >> 0x10;
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x442d15e6)) =
       uVar25 ^ uVar40 ^ uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x658) ^
       *(ulonglong *)(DAT_1826707a0 + -0x220);
  uVar4 = DAT_1826708c0;
  uVar26 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar20 = ((ulonglong)uVar1 | uVar20 << 0x10) ^ *(ulonglong *)(lVar2 + -0xa18) >> 0x10 ^ uVar26;
  *(ulonglong *)(lVar2 + -0x588) = uVar20;
  uVar11 = DAT_1826707dc;
  uVar32 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x9c8) = (uVar24 ^ *puVar31) >> (((byte)uVar20 ^ (byte)uVar4) & 0x3f);
  puVar31 = (ulonglong *)(lVar2 - (uVar36 ^ 0x177fade6));
  uVar24 = (*puVar31 ^ uVar25) << ((bVar21 ^ 0xce) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x177fa336)) = uVar24 ^ CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar24 = uVar26 ^ *(ulonglong *)(lVar2 + -0x588) | uVar24;
  *(ulonglong *)(lVar2 + -0x6f0) = uVar24 ^ uVar22;
  uVar20 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar2 + -0x420) =
       (CONCAT44(uVar15,uVar6) ^ 0x52c2364271674b9e) >> (((byte)*puVar31 ^ (byte)uVar8) & 0x3f);
  uVar4 = DAT_182670834;
  uVar1 = DAT_1826707e4;
  uVar22 = (uVar33 ^ *(ulonglong *)(lVar2 + -0x220)) - (CONCAT44(uVar9,uVar11) ^ 0x5fbcb9c26ada771e)
  ;
  *(ulonglong *)(lVar2 + -0xc18) = uVar22 ^ uVar20;
  uVar5 = DAT_182670a68;
  uVar26 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x400) = uVar22 - uVar24 ^ uVar26;
  lVar2 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar6,DAT_1826707b4);
  uVar22 = CONCAT44(uVar5,uVar5);
  uVar20 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x442d1bc6)) =
       uVar24 + (uVar27 ^ 0xa904aa12a39ecd4a) ^ uVar22;
  uVar8 = DAT_1826707cc;
  *(ulonglong *)(lVar2 + -0x6b8) =
       uVar22 ^ *(ulonglong *)(lVar2 + -0x438) ^ uVar25 ^ *(ulonglong *)(lVar2 + -0xa18);
  uVar33 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar20 = *(ulonglong *)(lVar2 - (uVar20 ^ 0xf34580a2)) ^ uVar33 ^ uVar22 ^
           *(ulonglong *)(lVar2 + -0x438) ^ uVar37;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar20;
  uVar7 = DAT_1826707c4;
  *puVar39 = CONCAT44(uVar6,uVar8) ^ 0xaf5da3daedab00f6 |
             CONCAT44(uVar9,DAT_1826707c4) ^ 0xff093c3a70206a03;
  uVar9 = DAT_1826708b0;
  uVar24 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar22 = (ulonglong)DAT_1826708b0;
  local_b0 = (byte)uVar7;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0)) >> (((byte)DAT_1826707e0 ^ 0xd) & 0x3f) ^
       uVar24;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x68c) = (DAT_1826707b8 ^ 0xfed6de52) + (uVar11 ^ 0x871bf2dc);
  puVar31 = (ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0x76cc0a22));
  uVar41 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *puVar31 = (uVar33 ^ uVar20) << ((local_b0 ^ 0x47) & 0x3f) ^ uVar34;
  uVar10 = DAT_1826707d0;
  uVar20 = uVar24 ^ *(ulonglong *)(lVar2 + -0x7d8) | uVar34 ^ *(ulonglong *)(lVar2 + -0x658);
  *(ulonglong *)(lVar2 + -0x660) = uVar20 ^ uVar41;
  uVar4 = DAT_182670818;
  uVar1 = DAT_1826707a8;
  uVar40 = CONCAT44(uVar9,uVar9);
  *(undefined1 *)(lVar2 + -0x6c9) = **(undefined1 **)(lVar2 + -0x350);
  uVar24 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x816b5c9)) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x998)) - uVar20 ^ uVar24;
  uVar20 = CONCAT44(uVar15,DAT_1826707d8);
  *(ulonglong *)(lVar2 + -0x588) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0xe90dc905)) ^ uVar40 ^ uVar26 ^ uVar29 ^
       *(ulonglong *)(lVar2 + -0x400);
  uVar9 = DAT_1826707c8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0xe90dc12d)) =
       (CONCAT44(DAT_1826707c8,uVar10) ^ 0x278a5feabecb8c6d) - (uVar20 ^ 0xabae993563e81162);
  lVar2 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       *(ulonglong *)(DAT_1826707a0 + -0x588) >> 0x20 ^ uVar33 ^ uVar22;
  uVar5 = DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0x220) = CONCAT44(DAT_1826707b0,uVar6) ^ uVar27 ^ 0x6dda7170f2c892bc;
  uVar20 = (*(ulonglong *)(lVar2 - (uVar36 ^ 0x177fa276)) ^ uVar40) << 0x20;
  uVar27 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar2 + -0xc18) = uVar20 ^ CONCAT44(DAT_18267093c,DAT_18267093c);
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x816baf1)) =
       (*(ulonglong *)(lVar2 - (uVar38 ^ 0x442d1bde)) ^ uVar33 | uVar20) ^ uVar27;
  uVar4 = DAT_182670900;
  *(ulonglong *)(lVar3 + -0xa18) = uVar29 ^ *(ulonglong *)(lVar3 + -0xce0) ^ 0x15a64e804af1b5f3;
  uVar29 = CONCAT44(uVar4,uVar4);
  uVar23 = (uVar26 ^ *(ulonglong *)(lVar3 + -0x400)) - (uVar27 ^ *(ulonglong *)(lVar3 + -0x6f0));
  uVar33 = uVar23 ^ uVar29;
  uVar22 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar33;
  uVar4 = DAT_1826707ac;
  uVar27 = uVar22 ^ uVar27 ^ uVar24 ^ *(ulonglong *)(lVar3 + -0x6f0) ^
           *(ulonglong *)(lVar3 + -0x9c8);
  *(ulonglong *)(lVar3 + -0x438) = uVar27;
  uVar20 = *(ulonglong *)(lVar3 + -0x9c8);
  uVar34 = (uVar27 ^ uVar22) << 6;
  *puVar39 = (CONCAT44(uVar6,uVar7) ^ 0x6ea41d17656f0f9d) >> (((byte)uVar10 ^ 0x59) & 0x3f);
  uVar7 = DAT_1826707ec;
  bVar21 = (byte)DAT_1826707ec;
  uVar27 = (uVar27 ^ uVar22) >> ((bVar21 ^ 0x3a) & 0x3f);
  uVar22 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar27 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x7d8) = uVar34 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x658) = (CONCAT44(uVar7,uVar8) ^ 0x8c72892810b4398b) + 0xb4728abb0ccf5ad0
  ;
  uVar14 = DAT_1826709b0;
  uVar28 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar3 + -0x998) = (uVar34 | uVar27) ^ uVar28;
  uVar12 = DAT_1826708e8;
  uVar10 = DAT_182670890;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar38 = (uVar24 ^ uVar20) - (*(ulonglong *)(lVar3 - (uVar38 ^ 0x442d1666)) ^ uVar28);
  uVar20 = (ulonglong)DAT_1826708e8;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar38 ^ uVar34;
  uVar24 = CONCAT44(uVar12,uVar12) ^ uVar29 ^ uVar41 ^ uVar33 ^ *(ulonglong *)(lVar3 + -0x660);
  *(ulonglong *)(lVar3 + -0x220) = uVar24;
  uVar1 = DAT_1826707f0;
  uVar8 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar22 = ((ulonglong)(uVar12 >> 0x16) | uVar20 << 10) ^ uVar24 >> 0x16;
  uVar20 = CONCAT44(DAT_1826707c0,uVar7);
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar22 ^ CONCAT44(uVar10,uVar10);
  uVar13 = DAT_1826707f4;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0xc18) =
       (CONCAT44(uVar6,uVar8) ^ 0x6da4a6b205970a9a) - (uVar20 ^ 0xadd60d158477d1fa);
  uVar7 = DAT_18267095c;
  uVar20 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar3 + -0xce0) =
       (CONCAT44(uVar12,uVar12) ^ uVar24) << ((bVar21 ^ 0x2a) & 0x3f) ^ uVar20;
  uVar10 = DAT_182670a80;
  uVar12 = DAT_18267085c;
  lVar2 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar7,uVar7);
  uVar24 = (ulonglong)DAT_18267085c;
  uVar20 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar1 ^ 0x5e5198f8)) ^ uVar20 | uVar22) ^ uVar29;
  *(ulonglong *)(lVar3 + -0xa18) = uVar20;
  uVar7 = DAT_182670968;
  uVar27 = CONCAT44(uVar10,uVar10);
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar38 = uVar38 ^ uVar20 ^ uVar22 ^ uVar29;
  uVar20 = *(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0x5e519e00));
  *(ulonglong *)(lVar2 + -0x6f0) = uVar38;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x400) = uVar23 - (uVar20 ^ uVar29) ^ uVar27;
  uVar7 = DAT_1826707bc;
  uVar29 = CONCAT44(uVar15,DAT_1826707bc);
  *puVar39 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x3a763dfd)) >> 0x20 ^ uVar24) >> 0xe ^
             uVar33;
  uVar10 = DAT_1826707d0;
  *(ulonglong *)(lVar2 + -0x438) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x3a763e85)) ^ uVar40 ^ 0xa14a1fd85a80dd2b;
  uVar14 = DAT_182670950;
  uVar29 = uVar29 ^ 0x4730bf6a48c849d5;
  uVar24 = (uVar38 ^ uVar22) << (((byte)uVar10 ^ 0x72) & 0x3f);
  *(ulonglong *)(lVar2 + -0x658) = uVar24 ^ uVar30;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar29;
  lVar2 = DAT_1826707a0;
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar24 = *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x4c3fb277)) ^ uVar33 | uVar24;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar24 ^ uVar22;
  uVar20 = CONCAT44(uVar5,DAT_1826707a8);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707a8 ^ 0xe90dcc2d)) = uVar24 + uVar29;
  uVar24 = (uVar34 ^ *(ulonglong *)(lVar2 + -0x4c8)) - (*(ulonglong *)(lVar2 + -0x7d8) ^ uVar22);
  *(ulonglong *)(lVar2 + -0x660) = uVar24 ^ uVar25;
  uVar5 = DAT_1826707fc;
  *(ulonglong *)(lVar2 + -0xc18) = (uVar20 ^ 0x95d6623663036265) + uVar24;
  uVar14 = DAT_182670a04;
  uVar29 = CONCAT44(uVar5,uVar5);
  uVar33 = uVar28 ^ *(ulonglong *)(lVar2 + -0x998) ^ *(ulonglong *)(lVar2 + -0x400) ^ uVar29 ^
           uVar27;
  *(ulonglong *)(lVar2 + -0x220) = uVar33;
  uVar15 = DAT_1826707f0;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar24 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar20 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar2 + -0x420) =
       (uVar33 ^ uVar29) >> (((byte)DAT_1826707f0 ^ 0x14) & 0x3f) ^ uVar23;
  uVar33 = (ulonglong)DAT_1826707cc;
  bVar21 = (byte)DAT_1826707cc;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x4c3fb31f)) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0xf3458b1a)) ^ uVar29) << ((bVar21 ^ 0x34) & 0x3f) ^ uVar24
  ;
  uVar1 = DAT_1826707a8;
  uVar29 = CONCAT44(DAT_182670844,DAT_182670844);
  uVar20 = (*(ulonglong *)(lVar2 + -0xce0) ^ uVar24 | *(ulonglong *)(lVar2 + -0x420) ^ uVar23) ^
           uVar29;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar20;
  uVar5 = DAT_182670a40;
  uVar12 = DAT_1826707e4;
  lVar3 = DAT_1826707a0;
  uVar24 = (*(ulonglong *)(lVar2 + -0x400) ^ uVar27) -
           (*(ulonglong *)(lVar2 - (uVar32 ^ 0x4c3fb947)) ^ uVar29);
  *(ulonglong *)(lVar2 + -0xa18) = uVar24 ^ uVar26;
  uVar14 = DAT_182670aa4;
  uVar23 = CONCAT44(uVar5,uVar5);
  uVar20 = uVar25 ^ uVar20 ^ uVar23 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x660);
  uVar27 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(ulonglong *)(lVar3 + -0x588) = uVar20;
  uVar29 = (uVar20 ^ uVar23) >> (((byte)uVar12 ^ 99) & 0x3f);
  *(ulonglong *)(lVar3 + -0x438) = uVar29 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x6f0) =
       (*(ulonglong *)(lVar3 + -0x7d8) ^ uVar22) >>
       ((*(byte *)(lVar3 - (uVar33 ^ 0x8048038)) ^ (byte)uVar14) & 0x3f);
  uVar27 = (ulonglong)DAT_1826707c8;
  uVar33 = (uVar23 ^ uVar20) << (((byte)uVar13 ^ 0x2a) & 0x3f);
  *puVar39 = uVar33 ^ CONCAT44(DAT_182670ab8,DAT_182670ab8);
  lVar2 = DAT_1826707a0;
  uVar33 = uVar33 | uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       0x1702166567cddf7b - (CONCAT44(uVar4,uVar11) ^ 0xe76aa9f79d550934);
  uVar29 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar2 + -0x5c0) = uVar33 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x660)) - (CONCAT44(uVar15,uVar6) ^ 0x614e42e601b82023) ^
       uVar17;
  uVar23 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar20 = CONCAT44(uVar7,DAT_1826707e0);
  *(ulonglong *)(lVar2 + -0x4c8) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0x200045e5)) ^ uVar17) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0xe625e5a2)) ^ uVar29) ^ uVar23;
  uVar4 = DAT_1826709c0;
  *(ulonglong *)(lVar2 + -0xc18) =
       uVar33 - (uVar20 ^ 0xe6ba076e5c783932) ^ CONCAT44(DAT_182670908,DAT_182670908);
  uVar17 = CONCAT44(uVar4,uVar4);
  uVar22 = uVar24 ^ *(ulonglong *)(lVar2 + -0x7d8) ^ uVar17 ^ uVar22;
  *(ulonglong *)(lVar2 + -0x998) = uVar22;
  uVar25 = (uVar22 ^ uVar17) >> (((byte)uVar7 ^ 0x23) & 0x3f);
  uVar20 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar2 + -0x220) = uVar25 ^ uVar30;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xf3458d1a)) =
       CONCAT44(uVar9,uVar1) ^ 0xe3035895a95f30b1 | uVar25;
  uVar4 = DAT_18267082c;
  uVar20 = (*(ulonglong *)(lVar2 + -0x998) ^ uVar17) << ((bVar21 ^ 0x1f) & 0x3f);
  *(ulonglong *)(lVar2 + -0xce0) = uVar20 ^ CONCAT44(DAT_182670850,DAT_182670850);
  uVar5 = DAT_182670a8c;
  uVar17 = CONCAT44(uVar4,uVar4);
  uVar20 = uVar20 | uVar30 ^ *(ulonglong *)(lVar2 + -0x220);
  *(ulonglong *)(lVar2 + -0x400) = uVar20 ^ uVar17;
  uVar4 = DAT_1826708a8;
  uVar25 = (uVar26 ^ *puVar18) - (CONCAT44(uVar8,DAT_1826707e4) ^ 0x509322586a8fe158);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar25 ^ CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x6f0) = uVar25 - uVar20 ^ CONCAT44(uVar4,uVar4);
  uVar25 = CONCAT44(uVar6,DAT_1826707ec);
  *(undefined1 *)(lVar2 - (uVar32 ^ 0x4c3fb936)) = **(undefined1 **)(lVar2 + -0x350);
  uVar4 = DAT_182670914;
  uVar20 = CONCAT44(DAT_182670a94,DAT_182670a94);
  uVar25 = (uVar25 ^ 0x521dab3cc8f2a926) + (*(ulonglong *)(lVar2 + -0x400) ^ uVar17) ^ uVar20;
  *(ulonglong *)(lVar2 + -0x588) = uVar25;
  uVar17 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x658) =
       *(ulonglong *)(lVar2 + -0x4c8) ^ uVar17 ^ uVar25 ^ uVar20 ^ uVar23;
  *(longlong *)(lVar2 - (uVar27 ^ 0x20004815)) = -0x26c5673ba6eeac0b << ((local_b0 ^ 0x72) & 0x3f);
  *puVar39 = (*puVar31 ^ uVar17) >> (((byte)uVar10 ^ 0x65) & 0x3f) ^
             CONCAT44(DAT_182670858,DAT_182670858);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar19;
  return;
}



############ FUN_ 180cae710 size=5258 ############

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

void FUN_180cae710(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  byte local_res18;
  byte local_f8;
  byte local_e0;
  byte local_a0;
  
  uVar14 = DAT_1826707e4;
  uVar8 = DAT_1826707e0;
  uVar7 = DAT_1826707dc;
  uVar6 = DAT_1826707d0;
  uVar15 = DAT_1826707cc;
  uVar18 = DAT_1826707c8;
  uVar5 = DAT_1826707bc;
  lVar3 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707dc;
  uVar12 = DAT_1826707dc ^ DAT_1826707c4;
  uVar44 = (ulonglong)DAT_1826707e4;
  uVar46 = (ulonglong)DAT_1826707cc;
  uVar24 = DAT_1826707e4 | DAT_1826707cc;
  uVar38 = (ulonglong)DAT_1826707c8;
  uVar41 = DAT_1826707bc | DAT_1826707c8;
  uVar21 = ~DAT_1826707d0;
  DAT_1826707a8 = DAT_1826707e0 << 0x10 | DAT_1826707e0 >> 0x10;
  uVar25 = *(uint *)(&DAT_18260f758 + DAT_182670dd0) ^ DAT_1826707a8;
  uVar13 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar12 ^ 0x5798807d) + (longlong)DAT_182670dd0) ^
           DAT_1826707e0;
  uVar29 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  bVar17 = (byte)DAT_1826707c4;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x548);
  DAT_1826707b0 = uVar24;
  DAT_1826707b4 = uVar41;
  DAT_1826707c0 = uVar12;
  DAT_1826707f4 = uVar21;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       *(ulonglong *)
        (CONCAT44(DAT_182670acc,DAT_182670acc) ^ *(ulonglong *)(DAT_1826707a0 + -0xae0)) ^ uVar29;
  uVar9 = DAT_182670898;
  uVar30 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar34 = (*puVar1 ^ uVar30) << ((bVar17 ^ 0x8b) & 0x3f);
  uVar28 = (ulonglong)uVar5;
  *(ulonglong *)(lVar3 + -0xf0) = uVar34 ^ CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar3 + -0x5c0) = (uVar28 ^ 0xbb800000) >> 0x16;
  lVar4 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar33 = (ulonglong)uVar41;
  uVar16 = (ulonglong)uVar6;
  puVar19 = (ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0xf9f380a));
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xf877768f)) ^ uVar30) >> (((byte)uVar21 ^ 0x99) & 0x3f) ^
       uVar22;
  uVar30 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x18410779)) = (uVar34 | uVar22 ^ *puVar19) ^ uVar30;
  *(uint *)(lVar4 + -0xcec) = 0xdbbd54f6 >> ((byte)*(undefined4 *)(lVar4 + -0x68c) & 0x1f);
  uVar34 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar27 = CONCAT44(DAT_182670940,DAT_182670940);
  uVar30 = *(ulonglong *)(lVar4 + -0xd38) ^ uVar27 ^ uVar34 ^ uVar30 ^
           *(ulonglong *)(lVar4 + -0x6b8);
  *(ulonglong *)(lVar4 + -0x9e0) = uVar30;
  uVar11 = DAT_18267099c;
  *(ulonglong *)(lVar4 + -0x630) =
       (CONCAT44(DAT_1826708f4,DAT_1826708f4) ^ *(ulonglong *)(lVar4 + -0x4c8)) >>
       (((byte)uVar9 ^ *(byte *)(lVar4 + -0xf0)) & 0x3f);
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar31 = uVar35 ^ *(ulonglong *)(lVar4 + -0x9c8);
  uVar42 = CONCAT44(DAT_182670988,DAT_182670988);
  uVar23 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar24 ^ 0x1f7f7f6c)) ^
           CONCAT44(DAT_18267093c,DAT_18267093c)) + uVar31 ^ uVar42;
  uVar37 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar4 + -0x610) = uVar23;
  uVar9 = DAT_182670a5c;
  *(ulonglong *)(lVar4 + -0x420) = uVar31 << 0x39 ^ uVar37;
  lVar3 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar9,uVar9);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x438);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0x9d52361a)) ^ uVar35) >>
       (((byte)uVar15 ^ 0xff) & 0x3f) ^ uVar32;
  puVar26 = (ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x186e2064));
  puVar20 = (ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xbfbfceea));
  uVar43 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *puVar1 = (uVar32 ^ *puVar26 | *puVar20 ^ uVar37) ^ uVar43;
  uVar9 = DAT_182670814;
  local_a0 = (byte)uVar18;
  *(ulonglong *)(lVar3 + -0x410) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0xf87777e7)) ^ uVar37) >> ((local_a0 ^ 10) & 0x3f);
  uVar39 = CONCAT44(uVar9,uVar9);
  puVar2 = (ulonglong *)(lVar3 + -0x1b8);
  uVar23 = *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x57988455)) ^ uVar39 ^ uVar43 ^ uVar42 ^
           uVar23;
  uVar35 = CONCAT44(DAT_182670960,DAT_182670960);
  *(ulonglong *)(lVar3 + -0xb70) = uVar23;
  uVar9 = DAT_18267080c;
  uVar31 = (*(ulonglong *)(lVar3 + -0xd38) ^ uVar27) + (uVar23 ^ uVar39) ^ uVar35;
  *puVar2 = uVar31;
  lVar4 = DAT_1826707a0;
  uVar37 = (uVar39 ^ uVar23) << (((byte)uVar12 ^ 0x7a) & 0x3f);
  local_res18 = (byte)uVar6;
  *(ulonglong *)(lVar3 + -0x658) = uVar37 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_1826708ac;
  puVar47 = (ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x1f7f7c8c));
  uVar23 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar4 + -0xbb0) = (*puVar47 ^ uVar39) >> ((local_res18 ^ 0x43) & 0x3f) ^ uVar23;
  uVar11 = DAT_182670a80;
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar23 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x7737c48)) ^ uVar23 | uVar37) ^ uVar27;
  *(ulonglong *)(lVar4 + -0xa18) = uVar23;
  uVar45 = CONCAT44(uVar11,uVar11);
  uVar27 = uVar31 ^ uVar45 ^ uVar23 ^ uVar27 ^ uVar35;
  *(ulonglong *)(lVar4 + -0xac0) = uVar27;
  uVar23 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar4 + -0x588) = uVar45 ^ uVar27 | 0x40f16a062d24a2b2;
  uVar9 = DAT_1826709fc;
  uVar40 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0xcacab9af)) ^ uVar42) + (uVar30 ^ uVar34) ^ uVar40;
  *(ulonglong *)(lVar4 + -0x5c0) = (uVar32 ^ *puVar26) << (((byte)uVar27 ^ (byte)uVar11) & 0x3f);
  uVar14 = DAT_1826707a8;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar23 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(lVar4 + -0x548) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0x9d523632)) ^ uVar34) << 0x28 ^ uVar37;
  uVar30 = (uVar30 ^ uVar34) >> (((byte)uVar41 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar4 + -0x660) = uVar30 ^ uVar23;
  uVar10 = DAT_182670920;
  uVar39 = (ulonglong)DAT_182670920;
  *(ulonglong *)(lVar4 + -0x6b8) =
       (CONCAT44(uVar14,uVar24) ^ 0xe65463f5d2889803) + 0x290b5109a8786f8;
  uVar23 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0xcacabb77)) =
       (*(ulonglong *)(lVar4 - (uVar16 ^ 0xf9f3b22)) ^ uVar37 | uVar30) ^ uVar23;
  uVar30 = *(ulonglong *)(lVar4 + -0xd88);
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar27 = uVar30 ^ uVar34 ^ uVar23 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0x4c8);
  *(ulonglong *)(lVar4 + -0xf0) = uVar27;
  lVar3 = DAT_1826707a0;
  uVar34 = uVar27 ^ uVar34;
  uVar31 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = (*puVar2 ^ uVar35) + uVar34 ^ uVar31;
  uVar11 = DAT_182670a54;
  local_f8 = (byte)uVar7;
  uVar34 = uVar34 << ((local_f8 ^ 0xd7) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0x890) = uVar34 ^ CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar3 + -0x9c8) = (uVar27 >> 0x20 ^ uVar39) >> 0x1b ^ uVar43;
  uVar9 = DAT_182670a24;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar23 = (*(ulonglong *)(lVar3 - (uVar23 ^ 0xcacab677)) ^ uVar43 | uVar34) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x410) =
       uVar32 ^ *(ulonglong *)(lVar3 + -0x220) | *(ulonglong *)(lVar3 + -0x548) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x420) = uVar23;
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar34 = *(ulonglong *)(lVar3 + -0xac0);
  *puVar1 = *(ulonglong *)(lVar3 - (uVar38 ^ 0xf8777537)) ^ uVar27 ^ uVar35 ^ uVar31 ^ uVar23;
  uVar23 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(lVar3 + -0xd38) =
       (*(ulonglong *)(lVar3 + -0xac0) ^ uVar45) + (uVar30 ^ uVar40) ^ uVar23;
  uVar35 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar37 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *puVar47 = (uVar34 ^ uVar45) << ((local_res18 ^ 0x4f) & 0x3f) ^ uVar35;
  uVar14 = DAT_1826707a8;
  local_e0 = (byte)uVar5;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0xcacab40f)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xf060cb55)) ^ uVar45) >>
       ((local_e0 ^ 0xda) & 0x3f) ^ uVar37;
  uVar9 = DAT_182670808;
  uVar30 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar35 = (uVar37 ^ *(ulonglong *)(lVar3 + -0xbb0) | uVar35 ^ *(ulonglong *)(lVar3 + -0xb70)) ^
           uVar30;
  *(ulonglong *)(lVar3 + -0x658) = uVar35;
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar39 = CONCAT44(DAT_182670b14,DAT_182670b14);
  uVar30 = uVar34 ^ uVar35 ^ uVar30 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0xd38);
  *(ulonglong *)(lVar3 + -0xa18) = uVar30;
  uVar9 = DAT_1826708a4;
  lVar3 = DAT_1826707a0;
  uVar35 = (CONCAT44(uVar6,uVar41) ^ 0x342b074c49802e65) + (uVar34 ^ uVar30);
  uVar30 = CONCAT44(DAT_18267096c,DAT_18267096c);
  uVar34 = (CONCAT44(uVar12,uVar18) ^ 0x9756981281449e3) +
           (uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x630));
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar35 ^ uVar39;
  *(ulonglong *)(lVar3 + -0x610) = uVar34 ^ uVar30;
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar31 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar34 + uVar35 ^ uVar32;
  uVar30 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0x9e0) = uVar35 * 0x2000000 ^ uVar31;
  uVar9 = DAT_1826708e8;
  uVar30 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xcacaba37)) ^ uVar39) >>
           (((byte)uVar14 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar30 ^ uVar39;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar9,uVar9);
  *puVar19 = (uVar30 | uVar35 * 0x2000000) ^ uVar31;
  uVar14 = DAT_1826707ac;
  uVar30 = *(ulonglong *)(lVar3 + -0xd38);
  *(uint *)(lVar3 + -0x8e0) =
       (DAT_1826707b4 ^ 0x33533ee4) + *(int *)(lVar3 - ((ulonglong)uVar8 ^ 0xbfbfcef6));
  uVar34 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(lVar3 + -0x4c8) =
       uVar34 ^ uVar31 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0x5c0) ^ *(ulonglong *)(lVar3 + -0x660);
  uVar37 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar35 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *puVar2 = (CONCAT44(uVar5,uVar15) ^ 0xa26361d074885c4b) + (*puVar1 ^ uVar27) ^ uVar37;
  uVar9 = DAT_1826709d8;
  uVar5 = DAT_1826707b8;
  uVar18 = uVar14 * DAT_1826707b8;
  uVar42 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar3 + -0xf0) =
       (CONCAT44(uVar41,uVar15) ^ 0x23e51a5223c34467) + (uVar23 ^ uVar30) ^ uVar35;
  lVar4 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar9,uVar9);
  DAT_1826707e8 = uVar18;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xcacab72f)) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x85113ee1)) ^ uVar35) +
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0x8895fc17)) ^ uVar37) ^ uVar31;
  uVar30 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  uVar27 = (uVar37 ^ *puVar2) >> (((byte)uVar14 ^ 0xa0) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9c8) = (uVar37 ^ *puVar2) << 0x21 ^ uVar30;
  uVar9 = DAT_182670b04;
  *(ulonglong *)(lVar3 + -0x410) = uVar27 ^ CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar30 = (*(ulonglong *)(lVar4 - (uVar42 ^ 0x851137d9)) ^ uVar30 | uVar27) ^ uVar23;
  *(ulonglong *)(lVar4 + -0x220) = uVar30;
  *(ulonglong *)(lVar4 + -0x548) =
       CONCAT44(uVar14,uVar18) ^ uVar39 ^ *(ulonglong *)(lVar4 + -0x6b8) ^ 0xde397b240d550082;
  uVar9 = DAT_182670838;
  uVar37 = CONCAT44(DAT_182670868,DAT_182670868);
  uVar30 = *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x85113681)) ^ uVar37 ^ uVar23 ^ uVar31 ^
           uVar30;
  *(ulonglong *)(lVar4 + -0x420) = uVar30;
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar35 = (uVar37 ^ uVar30) << (((byte)uVar5 ^ 0x3f) & 0x3f);
  uVar32 = (uVar32 ^ *(ulonglong *)(lVar4 + -0x5c0)) + (uVar30 ^ uVar37) ^ uVar27;
  uVar30 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar4 + -0xd88) = uVar32;
  *(undefined8 *)(lVar4 + -0xb70) = 0x17c463445898c;
  uVar9 = DAT_18267089c;
  *(ulonglong *)(lVar4 + -0xac0) = uVar35 ^ uVar30;
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar4 + -0x420)) >> (((byte)uVar14 ^ 0xad) & 0x3f);
  uVar30 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar37 ^ CONCAT44(uVar9,uVar9);
  uVar23 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar4 + -0x658) = (uVar37 | uVar35) ^ uVar30;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x85113409)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x8895fbf7)) ^ uVar23 ^ uVar30 ^ uVar27 ^ uVar32;
  uVar34 = uVar34 ^ *(ulonglong *)(lVar4 + -0x4c8);
  uVar14 = DAT_1826707ac ^ 0x927a1b6;
  *(ulonglong *)(lVar4 + -0x630) = (uVar31 ^ *(ulonglong *)(lVar4 + -0x890)) + uVar34 ^ uVar40;
  *(uint *)(lVar4 + -0xc34) = uVar14 + *(int *)(lVar4 + -0xb54);
  uVar14 = DAT_182670a40;
  uVar30 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar4 + -0x610) = uVar34 << (((byte)uVar8 ^ 0xc6) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x588) =
       CONCAT44(uVar18,uVar8) ^ uVar23 ^ *(ulonglong *)(lVar4 + -0xa18) ^ 0xe87b20b09e8dc9f1;
  uVar9 = DAT_18267085c;
  uVar34 = uVar34 >> (((byte)uVar12 ^ 0x59) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9e0) = uVar34 ^ CONCAT44(DAT_182670830,DAT_182670830);
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x186e2424)) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0x9d5239c2)) ^ uVar30 | uVar34) ^ uVar35;
  uVar30 = (ulonglong)DAT_1826707a8;
  uVar31 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *puVar1 = uVar31 ^ uVar35 ^ *(ulonglong *)(lVar4 + -0x630) ^ uVar40 ^
            *(ulonglong *)(lVar4 + -0x660);
  *(uint *)(lVar4 - (uVar42 ^ 0x85113605)) =
       *(uint *)(*(ulonglong *)(lVar4 - (uVar30 ^ 0xcacab97f)) ^ (ulonglong)DAT_182670acc) ^ uVar14;
  lVar3 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0xf060ccad)) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0xd88)) + (uVar31 ^ *puVar1) ^ uVar37;
  uVar30 = *(ulonglong *)(lVar3 + -0x660);
  uVar34 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar27 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0x9d523bea)) ^ uVar31) << (((byte)uVar15 ^ 0xc2) & 0x3f) ^
       uVar34;
  *puVar2 = (uVar31 ^ *puVar1) >> ((local_f8 ^ 0xd4) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0xf8777a0f)) =
       CONCAT44(uVar5,uVar24) ^ 0x8a1e3e72958c6efd | uVar35 ^ uVar30;
  uVar30 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar3 + -0x410) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x18410079)) ^ uVar27 |
       uVar34 ^ *(ulonglong *)(lVar3 + -0xf0)) ^ uVar30;
  uVar18 = DAT_182670ae0;
  bVar17 = (byte)uVar14;
  *(byte *)(lVar3 - (uVar46 ^ 0x7737cb9)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x5e0) ^ (ulonglong)DAT_182670ae0) ^ bVar17;
  uVar5 = DAT_1826709f8;
  uVar34 = (ulonglong)DAT_1826709f8;
  uVar35 = CONCAT44(DAT_182670904,DAT_182670904);
  uVar32 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar30 = uVar35 ^ uVar30 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x410) ^
           *(ulonglong *)(lVar3 + -0xd38);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar30;
  *(ulonglong *)(lVar3 + -0x548) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0xf9f385a)) ^ uVar40) +
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xa18)) ^ uVar32;
  uVar9 = DAT_1826709e4;
  uVar14 = DAT_1826707c4;
  *(byte *)(lVar3 + -0x8a9) = *(byte *)(*(ulonglong *)(lVar3 + -0xdd0) ^ uVar34) ^ bVar17;
  lVar3 = DAT_1826707a0;
  puVar19 = (ulonglong *)(DAT_1826707a0 + -0xa18);
  uVar33 = (uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0xa18)) << (((byte)uVar14 ^ 0xa9) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = (uVar35 ^ uVar30) + 0x4d88bc3d6e3f3828;
  uVar28 = (uVar23 ^ *puVar19) >> ((local_f8 ^ 0xf8) & 0x3f);
  uVar30 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar3 + -0x220) = uVar33 ^ CONCAT44(uVar9,uVar9);
  uVar15 = DAT_1826707ac ^ 0x1d8698ac;
  *(ulonglong *)(lVar3 + -0xb70) = uVar28 ^ uVar30;
  uVar9 = DAT_1826709b4;
  *(uint *)(lVar3 + -0xc04) = uVar14 ^ 0xc8e53054 | uVar15;
  uVar34 = CONCAT44(uVar9,uVar9);
  *puVar20 = (uVar28 | uVar33) ^ uVar34;
  uVar9 = DAT_182670a30;
  uVar23 = CONCAT44(DAT_182670850,DAT_182670850);
  uVar30 = *(ulonglong *)(lVar3 + -0x548);
  uVar34 = uVar23 ^ uVar34 ^ uVar32 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0x420);
  *(ulonglong *)(lVar3 + -0xac0) = uVar34;
  *(ulonglong *)(lVar3 + -0xbb0) =
       *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0x3c0)) ^ uVar29;
  uVar9 = DAT_18267088c;
  uVar33 = CONCAT44(DAT_18267091c,DAT_18267091c);
  bVar17 = (byte)uVar21 ^ 0xb5;
  uVar37 = (uVar37 ^ *(ulonglong *)(lVar3 + -0xd38)) + (uVar23 ^ uVar34) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x658) = uVar37;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar28 = (uVar23 ^ *(ulonglong *)(lVar3 + -0xac0)) >> (bVar17 & 0x3f);
  *(ulonglong *)(lVar3 + -0x890) = (uVar23 ^ uVar34) << (bVar17 & 0x3f) ^ uVar36;
  uVar9 = DAT_182670934;
  *(ulonglong *)(lVar3 + -0x588) = uVar28 ^ CONCAT44(DAT_1826708e4,DAT_1826708e4);
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0xf9f36fa)) ^ uVar36 | uVar28;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar28 ^ uVar31;
  lVar4 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       *(ulonglong *)(lVar3 - (uVar38 ^ 0xf87777cf)) ^ CONCAT44(uVar5,uVar5) ^ uVar37 ^ uVar31 ^
       uVar33;
  uVar14 = DAT_1826707d8;
  uVar16 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0xcacab907)) ^ uVar35) + (uVar32 ^ uVar30) ^ uVar22;
  uVar5 = DAT_1826707f0;
  uVar15 = DAT_1826707f0 & uVar14;
  *(ulonglong *)(lVar4 + -0xd88) = uVar28 + 0x66e5f8c0a0b7caf;
  DAT_1826707ec = uVar15 ^ 0x37c990bf;
  uVar30 = CONCAT44(uVar18,uVar18);
  uVar34 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xe273a855)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x6b8)) << 0x20 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x660) =
       CONCAT44(uVar14,uVar14) ^ CONCAT44(uVar15,uVar14) ^ 0x37c990bf00000000 ^ 0xe9a4f1d686c79ac1;
  uVar9 = DAT_182670924;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x37889936)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x6b8)) >> (((byte)uVar5 ^ 0x4d) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0xac0)) - (uVar22 ^ *(ulonglong *)(lVar4 + -0x9e0));
  *puVar2 = (*(ulonglong *)(lVar4 - (uVar16 ^ 0x18410809)) ^ uVar27 | *puVar1 ^ uVar30) ^
            CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar25;
  return;
}



############ FUN_ 180cd3550 size=5514 ############

void FUN_180cd3550(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong *plVar4;
  ulonglong *puVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  byte bVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong *puVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  ulonglong uVar64;
  byte bVar65;
  uint uVar66;
  ulonglong uVar67;
  byte local_180;
  byte local_168;
  byte local_160;
  
  uVar16 = DAT_1826707f4;
  uVar15 = DAT_1826707e8;
  uVar14 = DAT_1826707dc;
  uVar13 = DAT_1826707cc;
  uVar11 = DAT_1826707c0;
  uVar10 = DAT_1826707b8;
  uVar8 = DAT_1826707a8;
  lVar6 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707a8;
  uVar64 = (ulonglong)DAT_1826707cc;
  DAT_1826707e0 = DAT_1826707c4 ^ DAT_1826707a8;
  uVar29 = (ulonglong)DAT_1826707e8;
  uVar30 = (ulonglong)DAT_1826707dc;
  uVar28 = (ulonglong)DAT_1826707f4;
  DAT_1826707b0 = DAT_1826707ac ^ DAT_1826707f4;
  uVar51 = (ulonglong)DAT_1826707c0;
  uVar66 = DAT_1826707cc & DAT_1826707b8;
  uVar53 = DAT_1826707dc ^ DAT_1826707c0;
  uVar33 = DAT_1826707e8 << 0x10 | DAT_1826707e8 >> 0x10;
  uVar43 = *(uint *)(&DAT_18260f758 + DAT_182670b28) ^ DAT_1826707b0;
  uVar20 = *(uint *)(&DAT_18260f760 + DAT_182670b28) ^ DAT_1826707ac;
  uVar44 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar36 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar62 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar45 = uVar44 ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0) |
           uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0xb70);
  puVar5 = (ulonglong *)(DAT_1826707a0 + -0x660);
  uVar46 = uVar45 ^ uVar62;
  DAT_1826707c8 = uVar33;
  DAT_1826707d4 = uVar53;
  DAT_1826707d8 = uVar66;
  *puVar5 = uVar46;
  uVar17 = DAT_182670970;
  uVar9 = DAT_18267090c;
  puVar22 = (ulonglong *)(lVar6 - ((ulonglong)uVar16 ^ 0xa49ccf8f));
  uVar23 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar37 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar26 = (ulonglong)DAT_18267090c;
  *(ulonglong *)(DAT_1826707a0 + -0x118) = (uVar23 ^ *puVar22) - uVar45 ^ uVar37;
  lVar6 = DAT_1826707a0;
  uVar45 = CONCAT44(uVar17,uVar17);
  uVar59 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0x38d9d7eb)) =
       uVar45 ^ uVar59 ^ uVar46 ^ uVar62 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38);
  uVar46 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  puVar1 = (ulonglong *)(lVar6 + -0xf0);
  uVar47 = ((ulonglong)(uVar9 >> 0x17) | uVar26 << 9) ^ *puVar1 >> 0x17;
  *(ulonglong *)(DAT_1826707a0 + -0xb70) = uVar47 ^ uVar46;
  uVar52 = (ulonglong)uVar53;
  uVar38 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar26 = (uVar59 ^ *puVar1) << (((byte)uVar53 ^ 0xea) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar26 ^ uVar38;
  lVar6 = DAT_1826707a0;
  uVar26 = uVar26 | uVar47;
  uVar54 = CONCAT44(DAT_182670860,DAT_182670860);
  puVar48 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x658);
  *puVar2 = uVar26 ^ uVar54;
  puVar3 = (ulonglong *)(lVar6 + -0x890);
  uVar39 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *puVar5 = (uVar45 ^ *puVar48) - uVar26 ^ uVar39;
  uVar55 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar47 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *puVar1 = *puVar3 ^ uVar47 ^ uVar55 ^ uVar37 ^ *(ulonglong *)(lVar6 + -0x118);
  uVar18 = DAT_182670a00;
  uVar9 = DAT_1826707e0;
  uVar12 = DAT_1826707c4;
  lVar7 = DAT_1826707a0;
  puVar48 = (ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0xad39efde));
  uVar34 = (ulonglong)DAT_1826707c4;
  bVar21 = (byte)(uVar15 >> 0x10);
  *puVar48 = (*(ulonglong *)(DAT_1826707a0 - (uVar52 ^ 0xc690633)) ^ uVar55) >>
             ((bVar21 ^ 0x79) & 0x3f) ^ uVar44;
  uVar40 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 + -0xbb0) = (uVar55 ^ *puVar1) << 0x18 ^ uVar40;
  uVar32 = (ulonglong)DAT_182670818;
  uVar24 = CONCAT44(DAT_182670818,DAT_182670818);
  *(uint *)(lVar7 - ((ulonglong)uVar8 ^ 0x4227c9cd)) = (uVar9 ^ 0x9d8b42dc) + (uVar12 ^ 0xfbf784d1);
  lVar6 = DAT_1826707a0;
  uVar25 = (ulonglong)uVar66;
  *(ulonglong *)(DAT_1826707a0 - (uVar64 ^ 0x7d6e7733)) =
       (uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0) |
       uVar44 ^ *(ulonglong *)(DAT_1826707a0 + -0xb70)) ^ uVar24;
  uVar27 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *puVar3 = (uVar37 ^ *(ulonglong *)(lVar6 + -0x118)) -
            (*(ulonglong *)(lVar6 - (uVar25 ^ 0x2d286d32)) ^ uVar24) ^ uVar27;
  uVar9 = DAT_1826707ac;
  uVar50 = (ulonglong)DAT_1826707ac;
  *puVar1 = (*(ulonglong *)(lVar6 - (uVar51 ^ 0x34b0daa8)) ^ uVar44) << 0x28;
  uVar41 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar26 = uVar41 ^ uVar24 ^ uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38) ^ *puVar5;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar26;
  uVar19 = DAT_182670a14;
  lVar6 = DAT_1826707a0;
  uVar67 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(DAT_1826707a0 + -0x118) =
       (uVar26 ^ uVar41) >> (((byte)uVar15 ^ 0x46) & 0x3f) ^ uVar67;
  uVar60 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *puVar48 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0x7d6e71bb)) ^ uVar41) << 0xc ^ uVar60;
  *(int *)(lVar6 + -0x2d4) = *(int *)(lVar6 + -0xaf0) - *(int *)(lVar6 + -0x43c);
  uVar26 = uVar67 ^ *(ulonglong *)(lVar6 + -0x118) | uVar60 ^ *(ulonglong *)(lVar6 + -0xb70);
  *puVar1 = uVar26 ^ uVar40;
  puVar48 = (ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x4227c871));
  uVar49 = (uVar39 ^ *puVar5) - uVar26 ^ uVar60;
  *(ulonglong *)(lVar6 + -0xd38) = uVar49;
  uVar17 = DAT_1826709f4;
  uVar42 = uVar27 ^ *puVar3 ^ uVar24 ^ uVar54 ^ *puVar48;
  *(ulonglong *)(lVar6 + -0xbb0) = uVar42;
  lVar6 = DAT_1826707a0;
  uVar56 = CONCAT44(uVar17,uVar17);
  uVar26 = *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0xba5177c2));
  *(int *)(DAT_1826707a0 + -0x9ec) = *(int *)(DAT_1826707a0 + -0xc04) + 0x40916b90;
  uVar53 = DAT_1826707b0;
  uVar41 = (uVar26 >> 0x20 ^ uVar32) >> 0x19;
  *(ulonglong *)(lVar6 + -0x118) = uVar41 ^ uVar56;
  uVar26 = (uVar24 ^ uVar42) << (((byte)uVar53 ^ 0x73) & 0x3f);
  *(ulonglong *)(lVar6 + -0xb70) = uVar26 ^ uVar62;
  uVar41 = uVar41 | uVar26;
  *puVar5 = uVar41 ^ uVar45;
  uVar17 = DAT_182670af0;
  lVar6 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_182670898,DAT_182670898);
  *puVar2 = (uVar27 ^ *puVar3) - uVar41 ^ uVar32;
  uVar57 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 - (uVar51 ^ 0x34b0da68)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0x1488c7b6)) ^ uVar57 ^ uVar60 ^ uVar45 ^ uVar49;
  uVar63 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar6 + -0xb70) =
       (uVar57 ^ *(ulonglong *)(lVar6 + -0xbb0)) >> (((byte)uVar66 ^ 4) & 0x3f) ^ uVar63;
  uVar62 = CONCAT44(DAT_182670900,DAT_182670900);
  uVar42 = (*(ulonglong *)(lVar6 - (uVar28 ^ 0xa49cc267)) ^ uVar57) <<
           (((byte)uVar12 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar6 + -0x118) = uVar42 ^ uVar62;
  lVar7 = DAT_1826707a0;
  uVar42 = *(ulonglong *)(lVar6 - (uVar52 ^ 0xc690db3)) ^ uVar63 | uVar42;
  *puVar3 = uVar42 ^ uVar47;
  uVar41 = (uVar60 ^ *(ulonglong *)(lVar7 + -0xd38)) - (*(ulonglong *)(lVar7 + -0x630) ^ uVar24);
  uVar26 = *(ulonglong *)(lVar7 + -0x1b8);
  *puVar5 = uVar41 ^ uVar23;
  *(ulonglong *)(lVar7 + -0xbb0) = uVar41 - uVar42 ^ uVar67;
  uVar26 = (*(ulonglong *)(lVar7 + -0xce0) ^ uVar40) + (uVar26 ^ uVar27);
  *(ulonglong *)(lVar7 + -0xb70) = uVar26 ^ uVar45;
  uVar17 = DAT_18267089c;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x118) =
       CONCAT44(uVar15,uVar8) ^ CONCAT44(uVar33,uVar16) ^ 0xcfc05f65eab289da;
  uVar15 = DAT_182670b00;
  uVar49 = CONCAT44(uVar17,uVar17);
  uVar41 = (ulonglong)DAT_182670b00;
  *(ulonglong *)(lVar6 + -0xd38) =
       (*(ulonglong *)(lVar6 - (uVar50 ^ 0x7e915333)) ^ uVar47) - uVar26 ^ uVar49;
  uVar26 = uVar32 ^ uVar40 ^ uVar36 ^ *puVar1 ^ *puVar2;
  *puVar5 = uVar26;
  uVar50 = CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar6 + -0x118) =
       ((ulonglong)(uVar15 >> 0x10) | uVar41 << 0x10) ^ uVar26 >> 0x10 ^ uVar50;
  *puVar3 = (CONCAT44(uVar33,uVar14) ^ 0xe0ad6bd19490d42c) >>
            ((*(byte *)(lVar6 - (uVar30 ^ 0x38d9dcab)) ^ (byte)uVar19) & 0x3f);
  uVar42 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  local_160 = (byte)uVar10;
  *(ulonglong *)(lVar6 - (uVar34 ^ 0x1488c126)) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0x38d9d17b)) ^ uVar36) << ((local_160 ^ 0x9e) & 0x3f) ^
       uVar42;
  puVar61 = (ulonglong *)(lVar6 - ((ulonglong)uVar53 ^ 0xda0d936c));
  uVar50 = uVar42 ^ *puVar1 | uVar50 ^ *puVar61;
  *puVar3 = uVar50 ^ CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar26 = (uVar32 ^ *puVar2) - (*(ulonglong *)(lVar6 - (uVar51 ^ 0x34b0d368)) ^ uVar45);
  *puVar5 = uVar26 ^ uVar57;
  puVar35 = (ulonglong *)(lVar6 - (uVar25 ^ 0x2d2860fa));
  *(ulonglong *)(lVar6 + -0x118) = (uVar42 ^ *puVar35) + 0xca48804234917127;
  uVar15 = DAT_182670b0c;
  lVar6 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *puVar2 = uVar26 - uVar50 ^ uVar30;
  uVar57 = CONCAT44(uVar15,uVar15);
  uVar26 = (CONCAT44(uVar53,uVar8) ^ 0x25f26d8bbdd831d9) -
           (*(ulonglong *)(DAT_1826707a0 + -0x438) ^ uVar24);
  *puVar1 = uVar26 ^ uVar57;
  uVar41 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar33 ^ 0x7c72bb49)) = uVar50 + uVar26 ^ uVar41;
  uVar41 = uVar56 ^ uVar67 ^ *(ulonglong *)(lVar6 + -0xbb0) ^ uVar41 ^
           *(ulonglong *)(lVar6 + -0x118);
  *puVar5 = uVar41;
  local_180 = (byte)uVar14;
  uVar32 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar10 ^ 0xad39e2ce)) ^ uVar56) >>
           (((byte)uVar16 ^ 0xf7) & 0x3f);
  *puVar3 = uVar32 ^ CONCAT44(DAT_182670868,DAT_182670868);
  uVar17 = DAT_182670ad0;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar41 = (uVar56 ^ uVar41) << ((local_180 ^ 0x3b) & 0x3f);
  *puVar1 = uVar41 ^ uVar26;
  *(ulonglong *)(lVar6 + -0x118) = (uVar32 | uVar41) ^ uVar27;
  uVar32 = CONCAT44(uVar17,uVar17);
  *puVar5 = (*(ulonglong *)(lVar6 - (uVar52 ^ 0xc690d73)) ^ uVar67) -
            (*(ulonglong *)(lVar6 - (uVar29 ^ 0xba517d6a)) ^ uVar27) ^ uVar32;
  uVar50 = CONCAT44(DAT_182670840,DAT_182670840);
  *(ulonglong *)(lVar6 - (uVar25 ^ 0x2d28689a)) =
       uVar49 ^ *(ulonglong *)(lVar6 + -0xd38) ^ *puVar2 ^ uVar50 ^ uVar30;
  *(ulonglong *)(lVar6 + -0xbb0) =
       (*(ulonglong *)(lVar6 - (uVar51 ^ 0x34b0d948)) ^ uVar50) >> ((bVar21 ^ 0x71) & 0x3f) ^ uVar55
  ;
  bVar65 = (byte)DAT_1826707b0;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b0 ^ 0xda0d9ae4)) ^ uVar50) << 0x20 ^
       uVar49;
  uVar10 = DAT_1826707e0;
  lVar6 = DAT_1826707a0;
  uVar58 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e0 ^ 0x56af076f)) =
       (*puVar1 ^ uVar26) - (CONCAT44(uVar13,uVar16) ^ 0x9c0ee4ea60ded105);
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0x4227ced9)) =
       (uVar49 ^ *(ulonglong *)(lVar6 + -0xd38) | uVar55 ^ *(ulonglong *)(lVar6 + -0xbb0)) ^ uVar23;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xa49cc147)) =
       (*puVar2 ^ uVar30) - (uVar23 ^ *puVar1) ^ uVar47;
  uVar17 = DAT_18267094c;
  uVar25 = uVar42 ^ uVar23 ^ *puVar5 ^ *puVar35 ^ uVar32;
  *(ulonglong *)(lVar6 + -0xbb0) = uVar25;
  uVar25 = (uVar42 ^ uVar25) >> ((bVar21 ^ 0x6b) & 0x3f);
  *(ulonglong *)(lVar6 + -0xd38) = uVar25 ^ CONCAT44(uVar17,uVar17);
  *puVar2 = (*(ulonglong *)(lVar6 - (uVar34 ^ 0x1488ca66)) ^ uVar42) << ((bVar65 ^ 0x72) & 0x3f) ^
            uVar37;
  *puVar1 = (CONCAT44(uVar12,uVar11) ^ 0x30dd583aca6ac3e5) + 0xeedb86ce930958d2;
  uVar25 = *(ulonglong *)(lVar6 - (uVar52 ^ 0xc69009b)) ^ uVar37 | uVar25;
  *(ulonglong *)(lVar6 + -0xbb0) = uVar25 ^ uVar62;
  *puVar1 = (*puVar5 ^ uVar32) - uVar25 ^ uVar60;
  puVar35 = (ulonglong *)(lVar6 - (uVar29 ^ 0xba51714a));
  uVar25 = *(ulonglong *)(lVar6 - (uVar64 ^ 0x7d6e729b)) ^ uVar49 ^ uVar27 ^ uVar47 ^
           *(ulonglong *)(lVar6 + -0x118);
  local_168 = (byte)uVar8;
  *(ulonglong *)(lVar6 + -0xd38) = uVar25;
  *puVar2 = (uVar49 ^ *puVar35) >> ((local_168 ^ 0x3f) & 0x3f) ^ uVar26;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar52 ^ 0xc6900a3)) =
       (uVar49 ^ uVar25) << ((local_160 ^ 0x84) & 0x3f) ^ uVar59;
  *puVar61 = (uVar59 ^ *puVar5) - (CONCAT44(uVar14,uVar9) ^ 0xcc17f7a78f05f14e);
  uVar17 = DAT_182670980;
  uVar25 = uVar59 ^ *puVar5 | *puVar2 ^ uVar26;
  *(ulonglong *)(lVar6 + -0xd38) = uVar25 ^ uVar40;
  uVar41 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x1488c0ce)) = (*puVar3 ^ uVar47) - uVar25 ^ uVar41;
  *puVar2 = CONCAT44(uVar53,uVar8) ^ 0xa1111008303105a | 0xa5ec66ef78b42f05;
  uVar25 = uVar60 ^ *puVar35 ^ uVar40 ^ uVar38 ^ *puVar1;
  uVar47 = (uVar38 ^ uVar25) >> (((byte)uVar10 ^ 0xd1) & 0x3f);
  *puVar5 = uVar25;
  uVar25 = (uVar38 ^ uVar25) << (((byte)uVar66 ^ 0x18) & 0x3f);
  *puVar3 = uVar47 ^ uVar46;
  *puVar2 = uVar25 ^ uVar62;
  *puVar5 = (uVar25 | uVar47) ^ uVar27;
  *puVar3 = (uVar60 ^ *puVar1) - (*(ulonglong *)(DAT_1826707a0 - (uVar58 ^ 0x56af099f)) ^ uVar27) ^
            uVar39;
  lVar6 = DAT_1826707a0;
  *puVar48 = *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xa49cc8cf)) ^ uVar62 ^ uVar60 ^
             *(ulonglong *)(DAT_1826707a0 + -0xbb0) ^ uVar41;
  uVar46 = (uVar60 ^ *puVar2) << (((byte)uVar12 ^ 0xe2) & 0x3f);
  uVar28 = ((ulonglong)DAT_1826708b8 << 0x14 | (ulonglong)(DAT_1826708b8 >> 0xc)) ^ *puVar2 >> 0xc;
  *(ulonglong *)(lVar6 + -0xbb0) = uVar46 ^ uVar67;
  *puVar1 = uVar28 ^ uVar36;
  lVar7 = DAT_1826707a0;
  bVar21 = *(byte *)(lVar6 + -0xd38);
  uVar47 = uVar46 - (CONCAT44(uVar11,uVar9) ^ 0xcdfae7c0dd1cb9d);
  *puVar2 = uVar47;
  uVar28 = (uVar46 | uVar28) ^ uVar50;
  *(ulonglong *)(lVar6 + -0x220) = uVar28;
  *(ulonglong *)(lVar6 + -0xbb0) = *puVar22 << (((byte)uVar18 ^ bVar21) & 0x3f);
  *puVar1 = (uVar41 ^ *(ulonglong *)(lVar6 + -0x118)) -
            (*(ulonglong *)(lVar6 - (uVar51 ^ 0x34b0d3f8)) ^ uVar50) ^ uVar56;
  uVar8 = DAT_1826707e4;
  DAT_1826707b4 = DAT_1826707ec | DAT_1826707e4;
  uVar30 = (ulonglong)DAT_1826707e4;
  uVar46 = (ulonglong)DAT_1826707ec;
  uVar25 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar7 + -0xd38) =
       CONCAT44(DAT_1826707ec,DAT_1826707e4) ^ 0x3136f86370a3559f | uVar47;
  lVar6 = DAT_1826707a0;
  bVar21 = (byte)uVar8;
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xfffbf6e7)) =
       *puVar3 ^ uVar24 ^ uVar39 ^ uVar28 ^ uVar50;
  puVar48 = (ulonglong *)(lVar6 - (uVar46 ^ 0x6febfac7));
  *puVar2 = (uVar24 ^ *(ulonglong *)(lVar6 + -0x118)) >> ((bVar21 ^ 0x2d) & 0x3f) ^ uVar54;
  lVar6 = DAT_1826707a0;
  *puVar48 = *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 + -0x58) ^ uVar59) ^ uVar41;
  *(ulonglong *)(lVar6 + -0x220) =
       (uVar24 ^ *(ulonglong *)(lVar6 + -0x118)) << ((bVar21 ^ 0x13) & 0x3f) ^ uVar49;
  lVar7 = DAT_1826707a0;
  plVar4 = (longlong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (*(ulonglong *)(lVar6 - (uVar30 ^ 0xd8d1b214)) ^ uVar49 | uVar54 ^ *puVar2) ^ uVar63;
  *(longlong *)(lVar7 - ((ulonglong)uVar8 ^ 0xd8d1b12c)) = *plVar4 << 6;
  *(ulonglong *)(lVar7 - (uVar25 ^ 0xfffbf1a7)) =
       (*(ulonglong *)(lVar7 - (uVar25 ^ 0xfffbff6f)) ^ uVar39) -
       (*(ulonglong *)(lVar7 + -0x6f0) ^ uVar55) ^ uVar45;
  *(ulonglong *)(lVar7 + -0x220) =
       (uVar45 ^ *puVar2) - (uVar63 ^ *(ulonglong *)(lVar7 + -0xd38)) ^ uVar23;
  uVar28 = (*(ulonglong *)(lVar7 + -0x68) ^ uVar57) + (*(ulonglong *)(lVar7 + -0x630) ^ uVar24);
  *(ulonglong *)(lVar7 + -0xbb0) = uVar28 ^ uVar26;
  *(ulonglong *)(lVar7 + -0x118) = (uVar63 ^ *(ulonglong *)(lVar7 + -0xd38)) - uVar28 ^ uVar24;
  uVar28 = (ulonglong)DAT_182670b0c;
  uVar26 = *(ulonglong *)(lVar7 - (uVar30 ^ 0xd8d1b654)) ^ uVar56 ^ uVar27 ^ *puVar1 ^ uVar57;
  *puVar3 = uVar26;
  *puVar2 = (uVar26 >> 0x20 ^ uVar28) >> 1 ^ uVar32;
  *puVar48 = 0xb6db59d757031bb << ((bVar21 ^ 0x1f) & 0x3f);
  *puVar5 = (*puVar3 ^ uVar57) << 0x1f ^ uVar44;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar43;
  return;
}



############ FUN_ 180c7a080 size=5621 ############

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

void FUN_180c7a080(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  byte bVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  byte local_res20;
  byte local_e0;
  ulonglong uVar35;
  
  uVar10 = DAT_1826707e4;
  uVar7 = DAT_1826707cc;
  uVar6 = DAT_1826707c8;
  lVar2 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707e4;
  uVar33 = (ulonglong)DAT_1826707cc;
  uVar43 = (ulonglong)DAT_1826707c8;
  uVar37 = DAT_1826707cc ^ DAT_1826707c8;
  uVar34 = (DAT_1826707e4 << 0x10 | DAT_1826707e4 & 0xff00) << 8 | DAT_1826707e4 >> 8 & 0xff00 |
           DAT_1826707e4 >> 0x18;
  uVar35 = (ulonglong)uVar34;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670d2c);
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670d2c) ^ DAT_1826707e4;
  uVar18 = (ulonglong)DAT_1826707cc;
  uVar23 = (ulonglong)DAT_1826707e4;
  uVar44 = (ulonglong)uVar37;
  DAT_1826707dc = uVar37;
  **(ulonglong **)(DAT_1826707a0 + -0x518) = CONCAT44(DAT_1826707cc,uVar37) ^ 0x88d1b3a1ddf88007;
  uVar9 = DAT_182670838;
  *(ulonglong *)(lVar2 + -0x370) =
       *(longlong *)(lVar2 - (uVar43 ^ 0xe9c1d9f4)) + 0x90 +
       ((CONCAT44(uVar10,uVar34) ^ 0x529ebaaaaaba9e52) * 0x15 +
       (CONCAT44(uVar34,uVar37) ^ 0xaaba9e523aed8c07)) * 8;
  uVar38 = CONCAT44(uVar9,uVar9);
  uVar27 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xaaba92b2)) =
       **(ulonglong **)(lVar2 - (uVar23 ^ 0x529eb9da)) ^ uVar27 ^ uVar38;
  **(ulonglong **)(lVar2 + -0xd00) = CONCAT44(uVar6,uVar37) ^ 0x324a6eb549749ddc;
  *(ulonglong *)(lVar2 + -0x310) =
       *(longlong *)(lVar2 + -0x7c8) + 0x90 + (CONCAT44(uVar34,uVar10) ^ 0xaaba9e52529ebaa8) * 8;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xd32c55f2)) = CONCAT44(uVar6,uVar37) ^ 0x9d23feb04f2c3de4;
  uVar9 = DAT_18267082c;
  uVar22 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar2 + -0xd88) = **(ulonglong **)(lVar2 + -0x310) ^ uVar22 ^ uVar27;
  **(ulonglong **)(lVar2 + -0x428) = CONCAT44(uVar34,uVar7) ^ 0xcf5e86bafbf3a594;
  uVar14 = DAT_182670a1c;
  uVar13 = DAT_182670908;
  uVar12 = DAT_1826708e8;
  uVar28 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar25 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar2 + -0xf0) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0xaaba9a6a)) ^ CONCAT44(uVar9,uVar9)) -
       (*(ulonglong *)(lVar2 + -0x118) ^ uVar28) ^ uVar25;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar23 = CONCAT44(DAT_182670960,DAT_182670960);
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0xbb0)) +
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar2 + -0x420)) ^ uVar36;
  uVar11 = DAT_1826707ec;
  uVar17 = DAT_1826707b4;
  lVar3 = DAT_1826707a0;
  puVar29 = (ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x529ebcba));
  *puVar29 = (CONCAT44(DAT_182670b00,DAT_182670b00) ^ *(ulonglong *)(lVar2 + -0x588)) -
             (*(ulonglong *)(lVar2 - (uVar44 ^ 0x3aed8e26)) ^ uVar36) ^ uVar23;
  uVar8 = DAT_1826707d4;
  uVar18 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar30 = (*(ulonglong *)(lVar2 + -0xce0) ^ uVar38) + (uVar18 ^ *(ulonglong *)(lVar2 + -0x400));
  uVar38 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar45 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  *(ulonglong *)(lVar2 + -0x68) = uVar30 ^ CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xfbfcd737)) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x6b8)) - uVar30 ^ uVar45;
  uVar5 = DAT_1826707bc;
  *(int *)(lVar2 + -0x43c) = *(int *)(lVar2 - ((ulonglong)uVar6 ^ 0xe9c1d208)) * -0x7ce91026;
  uVar9 = DAT_1826709c0;
  uVar4 = DAT_1826707b8;
  uVar38 = CONCAT44(DAT_182670978,DAT_182670978);
  *(ulonglong *)(lVar3 + -0x7d8) =
       (CONCAT44(DAT_1826707b8,uVar17) ^ 0x6dffafcd1f66354f) + *(longlong *)(lVar3 + -0xd38) ^
       uVar38;
  uVar26 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xfbfcd8a7)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xd249ed35)) ^ uVar38) -
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0x890)) ^ uVar26;
  uVar38 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xe9c1d7a4)) =
       uVar38 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x658) ^ *(ulonglong *)(lVar3 + -0xf0) ^ uVar25;
  uVar9 = _DAT_1826708f8;
  local_e0 = (byte)uVar10;
  uVar30 = (uVar38 ^ *(ulonglong *)(lVar3 + -0x998)) >> ((local_e0 ^ 0x8a) & 0x3f);
  *(ulonglong *)(lVar3 + -0xac0) = uVar30 ^ CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar12 = DAT_182670ad8;
  lVar2 = DAT_1826707a0;
  local_res20 = (byte)(uVar10 >> 0x18);
  uVar31 = (*(ulonglong *)(lVar3 - (uVar33 ^ 0xd32c5ba2)) ^ uVar38) << ((local_res20 ^ 0x72) & 0x3f)
  ;
  uVar38 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar31 ^ CONCAT44(uVar9,uVar9);
  uVar31 = uVar31 | uVar30;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x1b8) = uVar31 ^ uVar38;
  uVar5 = DAT_1826707d0;
  uVar31 = (*(ulonglong *)(lVar2 + -0xf0) ^ uVar25) - uVar31;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar31 ^ uVar30;
  uVar9 = DAT_1826708a0;
  *(ulonglong *)(lVar2 + -0xc18) =
       (CONCAT44(uVar5,uVar4) ^ 0xb14f25dfbc0d045c) - (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar45);
  uVar41 = CONCAT44(uVar9,uVar9);
  bVar16 = (byte)DAT_1826707d8;
  uVar23 = *(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0xe099c369)) ^ uVar41 ^ uVar45 ^ uVar23 ^
           *(ulonglong *)(lVar2 + -0x610);
  uVar25 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar2 + -0x558) = uVar23;
  uVar39 = (uVar23 ^ uVar41) >> ((bVar16 ^ 0x76) & 0x3f);
  *(ulonglong *)(lVar2 + -0x438) = uVar39 ^ uVar25;
  uVar9 = DAT_1826709e8;
  *(ulonglong *)(lVar2 + -0x588) =
       *(ulonglong *)(lVar2 - (uVar44 ^ 0x3aed89c6)) ^ uVar30 |
       uVar26 ^ *(ulonglong *)(lVar2 + -0x658);
  uVar23 = (uVar41 ^ uVar23) << (((byte)uVar4 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar23 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xd38) = 0x5c394aa8bc30dc1b - uVar31;
  uVar26 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  puVar46 = (ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xfbfcd927));
  *puVar46 = (uVar39 | uVar23) ^ uVar26;
  uVar9 = DAT_1826709d8;
  puVar19 = (ulonglong *)(lVar2 - (uVar35 ^ 0xaaba998a));
  uVar31 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar23 = (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar45) - (uVar26 ^ *puVar19);
  *(ulonglong *)(lVar2 + -0x998) = uVar23 ^ uVar31;
  lVar3 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar26 = *(ulonglong *)(lVar2 - (uVar35 ^ 0xaaba9b92)) ^ uVar39 ^ uVar26 ^ uVar30 ^
           *(ulonglong *)(lVar2 + -0x7d8);
  *(ulonglong *)(lVar2 + -0xac0) = uVar26;
  uVar9 = DAT_1826709ec;
  *(ulonglong *)(lVar2 + -0x4c8) = uVar23 | uVar26 ^ uVar39;
  uVar5 = DAT_1826707c0;
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0xac0)) >> (((byte)DAT_1826707c0 ^ 0x76) & 0x3f) ^ uVar23;
  uVar17 = DAT_1826707bc;
  bVar16 = (byte)uVar7;
  uVar41 = CONCAT44(DAT_182670a78,DAT_182670a78);
  uVar26 = (uVar39 ^ uVar26) << ((bVar16 ^ 0x3c) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc18) = uVar26 ^ uVar41;
  uVar6 = DAT_1826707d8;
  *(ulonglong *)(lVar3 + -0x610) =
       CONCAT44(uVar5,uVar17) ^ 0x17ac8d9ae5195f20 | uVar25 ^ *(ulonglong *)(lVar3 + -0x438);
  puVar24 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xfb0c8ea6));
  uVar45 = CONCAT44(DAT_182670af4,DAT_182670af4);
  *(ulonglong *)(lVar3 + -0x658) = (uVar26 | uVar23 ^ *puVar24) ^ uVar45;
  uVar10 = DAT_1826709ac;
  puVar32 = (ulonglong *)(lVar3 - (uVar43 ^ 0xe9c1d864));
  puVar20 = (ulonglong *)(lVar3 - (uVar21 ^ 0x529ebf6a));
  uVar39 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar23 = (ulonglong)DAT_1826709ac;
  uVar26 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xd32c57b2)) =
       (uVar30 ^ *puVar20) - (uVar45 ^ *puVar32) ^ uVar39;
  uVar21 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xfb0c8b0e)) =
       uVar26 ^ uVar31 ^ uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0x1b8) ^
       *(ulonglong *)(DAT_1826707a0 + -0x998);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = (uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0)) << 0x39
  ;
  lVar2 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0x9200568a)) =
       ((ulonglong)(uVar10 >> 0x16) | uVar23 << 10) ^
       *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xd249efb5)) >> 0x16 ^ uVar25;
  uVar21 = (uVar26 ^ *(ulonglong *)(lVar2 + -0x558)) << 0x2a;
  *(uint *)(lVar2 + -0x598) = (uVar34 ^ 0x619ed371) + *(int *)(lVar2 + -0xc0c);
  uVar9 = DAT_182670840;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar21 ^ CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar23 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x32d02794)) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x6b8) | uVar21) ^ uVar23;
  uVar26 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar2 + -0x4c8) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x998)) - (*puVar46 ^ uVar23) ^ uVar26;
  uVar9 = DAT_182670870;
  *(ulonglong *)(lVar2 + -0xac0) =
       *(ulonglong *)(lVar2 - (uVar44 ^ 0x3aed898e)) ^ uVar39 ^ uVar41 ^
       *(ulonglong *)(lVar2 + -0x7d8) ^ uVar23;
  uVar17 = DAT_1826707d0;
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar30 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d0 ^ 0xff0fa596)) ^ uVar41) >>
           (((byte)DAT_1826707b4 ^ 0x8f) & 0x3f);
  uVar23 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar2 + -0x438) = uVar30 ^ uVar31;
  uVar25 = (*(ulonglong *)(lVar2 - (uVar43 ^ 0xe9c1d4fc)) ^ uVar41) <<
           (((byte)uVar17 ^ 0x44) & 0x3f);
  uVar21 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar2 + -0x610) = uVar25 ^ uVar23;
  uVar9 = DAT_1826708cc;
  uVar25 = uVar25 | uVar30;
  *(ulonglong *)(lVar2 + -0xc18) = uVar25 ^ uVar21;
  uVar12 = DAT_182670a80;
  uVar23 = (ulonglong)DAT_1826707f0;
  uVar30 = CONCAT44(uVar9,uVar9);
  *puVar24 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x588)) - uVar25 ^ uVar30;
  uVar8 = DAT_1826707f0;
  uVar25 = CONCAT44(uVar12,uVar12);
  uVar39 = *(ulonglong *)(lVar2 - (uVar23 ^ 0x600a29c0)) ^ uVar45 ^ *(ulonglong *)(lVar2 + -0x658) ^
           uVar25 ^ uVar26;
  uVar40 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar2 + -0x1b8) = uVar39;
  uVar9 = DAT_1826709cc;
  uVar23 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x600a2cb0)) ^ uVar25) >>
           ((bVar16 ^ 0x36) & 0x3f);
  uVar41 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar2 + -0x5c0) = uVar23 ^ uVar40;
  uVar7 = DAT_1826707ec;
  uVar42 = (uVar39 ^ uVar25) << (((byte)uVar8 ^ 0x3c) & 0x3f);
  uVar45 = CONCAT44(uVar9,uVar9);
  uVar39 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar2 + -0xd38) = uVar23 + (uVar31 ^ *(ulonglong *)(lVar2 + -0x438));
  *(ulonglong *)(lVar2 + -0x6b8) = uVar42 ^ uVar41;
  uVar6 = DAT_1826707d4;
  uVar17 = DAT_1826707b8;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d4 ^ 0xfbfcd737)) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0xfbfcdb3f)) ^ uVar40 | uVar42) ^ uVar45;
  *(ulonglong *)(lVar2 + -0x998) =
       *(ulonglong *)(lVar2 + -0x6b8) ^ *(ulonglong *)(lVar2 + -0x1b8) ^ uVar41 ^ uVar25;
  uVar9 = DAT_182670a8c;
  uVar40 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar2 + -0x7d8) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0x4c8)) - (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar45) ^
       uVar40;
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar26 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar23 = *(ulonglong *)(lVar2 + -0x9c8) ^ *(ulonglong *)(lVar2 + -0xf0) ^ uVar39 ^ uVar45 ^ uVar30
  ;
  *(ulonglong *)(lVar2 + -0xac0) = uVar23;
  *puVar29 = (uVar23 ^ uVar39) >> (((byte)uVar17 ^ 0x2b) & 0x3f) ^ uVar26;
  uVar9 = DAT_182670994;
  uVar25 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0xaaba9492)) ^ uVar39) << 0x27 ^ uVar25;
  uVar31 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b0 ^ 0xe9c1dbb4)) ^ uVar25 |
       uVar26 ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar31;
  uVar9 = DAT_1826709c8;
  uVar26 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfbfcdac7)) =
       (CONCAT44(uVar5,uVar7) ^ 0x6bce972c83134bb8) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar7 ^ 0xfbfcdba7)) ^ (byte)uVar10) & 0x3f);
  uVar23 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar2 - (uVar43 ^ 0xe9c1d304)) =
       (*(ulonglong *)(lVar2 + -0xf0) ^ uVar30) -
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0x660)) ^ uVar23;
  uVar41 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x600a28c8)) =
       (*(ulonglong *)(lVar2 + -0xd38) ^ uVar23) - (*(ulonglong *)(lVar2 + -0x658) ^ uVar31) ^
       uVar41;
  uVar12 = DAT_182670920;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfbfcdb3f)) ^ uVar41) <<
       ((local_e0 ^ 0x93) & 0x3f);
  uVar9 = DAT_18267081c;
  uVar23 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x600a2c10)) ^ uVar28) +
           (*(ulonglong *)(lVar2 + -0xd88) ^ uVar22);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar23 ^ CONCAT44(uVar12,uVar12);
  uVar17 = DAT_182670a68;
  lVar3 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_1826707c0;
  uVar45 = CONCAT44(uVar9,uVar9);
  uVar22 = (ulonglong)DAT_182670a68;
  *(ulonglong *)(lVar2 + -0x998) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0xf20a7b02)) ^ uVar31) - uVar23 ^ uVar45;
  uVar28 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar2 + -0x4c8) =
       *(ulonglong *)(lVar2 + -0x7d8) ^ uVar28 ^ uVar40 ^ uVar21 ^ *(ulonglong *)(lVar2 + -0xc18);
  uVar17 = DAT_1826707bc;
  uVar21 = CONCAT44(DAT_1826707bc,uVar34);
  uVar23 = (*(ulonglong *)(lVar2 - (uVar30 ^ 0x32d02484)) >> 0x20 ^ uVar22) >> 1;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar23 ^ CONCAT44(DAT_18267096c,DAT_18267096c);
  uVar12 = DAT_182670828;
  uVar9 = DAT_1826707e0;
  *(ulonglong *)(lVar3 + -0xac0) =
       (uVar21 ^ 0x3496872de2218a03) - (CONCAT44(DAT_1826707e0,uVar17) ^ 0xb080faa28daa3827);
  uVar21 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d0 ^ 0xff0fab9e)) ^ uVar28) <<
           (((byte)DAT_1826707d8 ^ 0x49) & 0x3f);
  *(ulonglong *)(lVar3 + -0x610) = uVar21 ^ CONCAT44(uVar12,uVar12);
  uVar43 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar3 + -0x588) = **(ulonglong **)(lVar3 + -0x310) ^ uVar27;
  uVar5 = DAT_1826707c4;
  uVar17 = DAT_1826707b4;
  uVar31 = (ulonglong)DAT_1826707b4;
  uVar26 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x32d02514)) = (uVar21 | uVar23) ^ uVar43;
  uVar13 = DAT_182670acc;
  uVar30 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0xa1ca9e38)) ^ uVar40) -
           (uVar36 ^ *(ulonglong *)(lVar3 + -0x220));
  *(ulonglong *)(lVar3 + -0x438) = uVar30 ^ uVar25;
  uVar12 = DAT_182670a3c;
  lVar2 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar13,uVar13);
  uVar21 = *(ulonglong *)(DAT_1826707a0 + -0x558);
  uVar30 = uVar30 - (uVar43 ^ *(ulonglong *)(DAT_1826707a0 + -0x558));
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar30 ^ uVar25;
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar23 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar2 + -0xd38) =
       (CONCAT44(uVar37,uVar17) ^ 0xc51273f91f66354e) - (uVar18 ^ *(ulonglong *)(lVar2 + -0x400)) ^
       uVar22;
  uVar12 = DAT_182670ac4;
  uVar6 = DAT_1826707d0;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0xfb0c836e)) ^ uVar22) + (uVar43 ^ uVar21) ^ uVar39;
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x658) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0xd32c5382)) ^ *puVar20 ^ uVar21 ^ uVar41 ^ uVar39;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xe099c6b9)) =
       (CONCAT44(uVar9,uVar6) ^ 0x688f08bac42ee860) - uVar30;
  uVar9 = DAT_182670af8;
  uVar18 = (uVar21 ^ *puVar32) >> (((byte)DAT_1826707bc ^ 0xe8) & 0x3f);
  uVar33 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar2 + -0xac0) = uVar18 ^ CONCAT44(DAT_182670b04,DAT_182670b04);
  uVar17 = DAT_1826707b0;
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar21 = (*(ulonglong *)(lVar2 + -0x658) ^ uVar21) << (((byte)uVar6 ^ 0x6d) & 0x3f);
  *(ulonglong *)(lVar2 + -0x4c8) = uVar21 ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0xaaba9bda)) = (uVar18 | uVar21) ^ uVar22;
  uVar21 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (*(ulonglong *)(lVar2 + -0x5c0) ^ uVar41) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xa1ca9c68)) ^ uVar22) ^ uVar27;
  lVar3 = DAT_1826707a0;
  puVar20 = (ulonglong *)(lVar2 - (uVar44 ^ 0x3aed8a16));
  *puVar20 = *(ulonglong *)(DAT_1826707a0 + -0xf0) ^ uVar25 ^ uVar28 ^ uVar45 ^
             *(ulonglong *)(DAT_1826707a0 + -0x998);
  uVar5 = DAT_1826707e8;
  uVar18 = CONCAT44(DAT_182670a28,DAT_182670a28);
  uVar23 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0x600a2af0)) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x600a2b18)) ^ uVar28) >>
       (((byte)DAT_1826707d0 ^ 0x73) & 0x3f) ^ uVar18;
  uVar33 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar21 = CONCAT44(uVar4,DAT_1826707d4);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xcbbf4186)) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x610)) << ((bVar16 ^ 0x21) & 0x3f) ^ uVar33;
  uVar23 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar3 + -0x558) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x438) | uVar18 ^ *puVar19) ^ uVar23;
  uVar4 = DAT_1826707dc;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xa1ca94d8)) =
       uVar21 ^ 0x1fc35e783d6b2eb9 | CONCAT44(uVar5,uVar17) ^ 0x5e661d8f4a317a0f;
  uVar21 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(lVar3 + -0x1b8) =
       (*(ulonglong *)(lVar3 + -0xf0) ^ uVar25) - (uVar23 ^ *(ulonglong *)(lVar3 + -0x558)) ^ uVar21
  ;
  *(ulonglong *)(lVar3 + -0xc18) = CONCAT44(uVar5,uVar37) ^ 0x20430810a212c000 | 0xcbcb78f48041fcf;
  uVar17 = (uVar4 & 0xff0000 | uVar4 >> 0x10) >> 8 | (uVar4 << 0x10 | uVar4 & 0xff00) << 8;
  uVar33 = CONCAT44(DAT_182670aec,DAT_182670aec);
  DAT_1826707f4 = uVar17;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0x3aed8a5e)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x68ce4f2)) ^ uVar27 ^ uVar33 ^ uVar23 ^
       *(ulonglong *)(lVar3 + -0x558);
  uVar9 = DAT_182670904;
  uVar23 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar3 + -0xac0) =
       (*(ulonglong *)(lVar3 + -0x658) ^ uVar33) >> (((byte)uVar37 ^ 0x11) & 0x3f) ^ uVar23;
  uVar18 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x68ceb62)) ^ uVar33) <<
       (((byte)uVar37 ^ 0x2f) & 0x3f) ^ uVar18;
  uVar9 = DAT_182670948;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x68ce8fa)) =
       (CONCAT44(uVar17,uVar37) ^ 0xffbc77b7d6071f5e) -
       (CONCAT44(uVar37,uVar17) ^ 0xff262ce77032f9d2);
  uVar33 = uVar18 ^ *(ulonglong *)(lVar3 + -0x4c8) | uVar23 ^ *(ulonglong *)(lVar3 + -0xac0);
  *(ulonglong *)(lVar3 + -0x998) = uVar33 ^ CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *puVar20 = (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar27) - uVar33 ^ uVar38;
  *(ulonglong *)(lVar3 - (uVar44 ^ 0x3aed8bde)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x68ce8b2)) ^ CONCAT44(uVar9,uVar9) ^
       *(ulonglong *)(lVar3 + -0x1b8) ^ uVar21 ^ uVar22;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar34;
  return;
}



############ FUN_ 180c93600 size=5379 ############

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

void FUN_180c93600(void)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  
  uVar13 = DAT_1826707f0;
  uVar4 = DAT_1826707e8;
  uVar6 = DAT_1826707c0;
  lVar1 = DAT_1826707a0;
  DAT_1826707e0 = DAT_1826707d4 | DAT_1826707d0;
  uVar34 = (ulonglong)DAT_1826707f0;
  DAT_1826707dc = DAT_1826707bc ^ DAT_1826707d8;
  uVar16 = DAT_1826707e8 & 3;
  if (uVar16 < 2) {
    uVar30 = DAT_1826707e4;
    if (uVar16 == 0) {
      uVar30 = DAT_1826707e8;
    }
  }
  else {
    uVar30 = DAT_1826707b8;
    if (uVar16 < 3) {
      uVar30 = DAT_1826707f0;
    }
  }
  uVar33 = (ulonglong)DAT_1826707c0;
  uVar19 = *(uint *)(&DAT_18260f758 + DAT_182670d80) ^ DAT_1826707c0;
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670d80) ^ DAT_1826707e4;
  uVar38 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar41 = CONCAT44(DAT_182670a38,DAT_182670a38);
  DAT_1826707cc = uVar30;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x119595fb)) =
       (CONCAT44(_DAT_1826708c8,_DAT_1826708c8) ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) -
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0x44854a21)) ^ uVar38) ^ uVar41;
  uVar5 = DAT_1826707bc;
  uVar20 = CONCAT44(DAT_182670868,DAT_182670868);
  uVar24 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar37 = (ulonglong)uVar30;
  uVar28 = CONCAT44(DAT_182670aec,DAT_182670aec) ^ *(ulonglong *)(lVar1 + -0xce0) ^ uVar24 ^ uVar20
           ^ *(ulonglong *)(lVar1 + -0x998);
  *(ulonglong *)(lVar1 + -0x420) = uVar28;
  uVar11 = DAT_1826707e0;
  uVar28 = uVar28 ^ uVar20;
  uVar22 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar20 = uVar28 >> (((byte)uVar13 ^ 0x28) & 0x3f);
  uVar21 = (ulonglong)DAT_1826707e0;
  bVar18 = (byte)DAT_1826707e0;
  uVar27 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar1 + -0xd88) = uVar20 ^ uVar22;
  uVar10 = DAT_1826707dc;
  uVar7 = DAT_1826707d0;
  uVar28 = uVar28 << ((bVar18 ^ 0xe4) & 0x3f);
  uVar31 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar1 + -0x9c8) = uVar28 ^ uVar27;
  uVar14 = DAT_18267086c;
  uVar28 = uVar28 | uVar20;
  *(ulonglong *)(lVar1 + -0x5c0) = uVar28 ^ uVar31;
  uVar9 = DAT_1826707d8;
  uVar8 = DAT_1826707d4;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar27 = (ulonglong)DAT_1826707d4;
  uVar20 = CONCAT44(uVar10,DAT_1826707d8);
  *(ulonglong *)(lVar1 + -0x6f0) = (*(ulonglong *)(lVar1 + -0xce0) ^ uVar24) - uVar28 ^ uVar23;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0xb3b97bcc)) =
       (uVar20 ^ 0x5a67775a7b760c95) << (((byte)uVar8 ^ 0xef) & 0x3f);
  uVar14 = DAT_182670a0c;
  lVar1 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_1826708e0;
  uVar29 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar16 = DAT_1826708e0 >> 0x17;
  uVar31 = uVar29 ^ uVar31 ^ uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0) ^
           *(ulonglong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar31;
  *(ulonglong *)(lVar1 + -0x4c8) =
       (CONCAT44(uVar6,uVar4) ^ 0x7547b1af786f2a76) - (CONCAT44(uVar5,uVar9) ^ 0x8f467896622190d7);
  lVar1 = DAT_1826707a0;
  uVar28 = ((ulonglong)uVar16 | uVar20 << 9) ^ uVar31 >> 0x17;
  uVar31 = (uVar31 ^ uVar29) << (((byte)uVar4 ^ 0xb2) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x400) = uVar28 ^ CONCAT44(uVar14,uVar14);
  uVar20 = CONCAT44(uVar8,DAT_1826707b8);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar31 ^ CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar9 = DAT_1826707e4;
  *(ulonglong *)(lVar1 + -0x438) =
       (CONCAT44(uVar5,uVar4) ^ 0x95f9ea2c53f70d69) - (uVar20 ^ 0x1f83a1fd5652272b);
  uVar29 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar1 - (uVar37 ^ 0x44854219)) = (uVar31 | uVar28) ^ uVar29;
  uVar14 = DAT_182670900;
  uVar25 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar1 + -0x658) =
       (uVar41 ^ *(ulonglong *)(lVar1 + -0x660)) - (*(ulonglong *)(lVar1 + -0xa18) ^ uVar29) ^
       uVar25;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0x67d5409b)) =
       *(ulonglong *)(lVar1 + -0x6f0) ^ uVar31 ^ uVar23 ^ uVar38 ^ *(ulonglong *)(lVar1 + -0x220);
  uVar16 = DAT_1826707dc;
  lVar1 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670adc,DAT_182670adc);
  uVar32 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar20 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) >> (((byte)uVar6 ^ 0xc9) & 0x3f) ^ uVar38;
  uVar15 = _DAT_1826709e0;
  uVar28 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar1 + -0x420) =
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0x5ffb7e30)) ^ uVar31) << (((byte)uVar13 ^ 0x15) & 0x3f) ^
       uVar32;
  uVar14 = DAT_18267084c;
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar20 = *(ulonglong *)(lVar1 - (uVar28 ^ 0x11959a03)) ^ uVar38 |
           *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707d8 ^ 0xec42084c)) ^ uVar32;
  *(ulonglong *)(lVar1 + -0xd88) = uVar20 ^ uVar35;
  lVar1 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x5ffb7270)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x6f0) ^ uVar23) - uVar20 ^ uVar31;
  *(ulonglong *)(lVar1 + -0xce0) = *(ulonglong *)(lVar1 + -0xc18) ^ 0x3902fb2cfe9218b7;
  uVar4 = DAT_1826707bc;
  uVar23 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar39 = CONCAT44(uVar11,DAT_1826707bc);
  uVar28 = *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707d0 ^ 0xfcc94e5c)) ^
           *(ulonglong *)(lVar1 - ((ulonglong)uVar16 ^ 0x5ffb7de0)) ^ uVar23 ^ uVar35 ^ uVar25;
  uVar35 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar1 + -0x5c0) = uVar28;
  uVar14 = DAT_1826708a4;
  *(ulonglong *)(lVar1 + -0x4c8) =
       (*(ulonglong *)(lVar1 - (uVar37 ^ 0x44854dc1)) ^ uVar23) >> (((byte)uVar4 ^ 0xe0) & 0x3f) ^
       uVar35;
  uVar15 = DAT_182670a50;
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0x7d8) = (uVar23 ^ uVar28) << 0xc ^ uVar20;
  uVar14 = _DAT_182670b10;
  lVar2 = DAT_1826707a0;
  uVar42 = CONCAT44(uVar15,uVar15);
  uVar20 = *(ulonglong *)(lVar1 - (uVar27 ^ 0xf7fb7f37)) ^ uVar35 |
           *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x44854fd9)) ^ uVar20;
  *(ulonglong *)(lVar1 + -0x438) = uVar20 ^ uVar42;
  uVar4 = DAT_182670b0c;
  uVar28 = (ulonglong)DAT_182670b0c;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x400) = (uVar25 ^ *(ulonglong *)(lVar2 + -0x658)) - uVar20 ^ uVar23;
  uVar25 = CONCAT44(uVar4,uVar4);
  uVar29 = *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x67d54f0b)) ^ uVar25 ^
           *(ulonglong *)(lVar2 + -0x9c8) ^ uVar31 ^ uVar29;
  uVar38 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar29;
  uVar20 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar2 + -0x660) = (uVar29 >> 0x20 ^ uVar28) >> 0x19 ^ uVar38;
  uVar9 = DAT_1826707d8;
  uVar28 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xb3b975f4)) = (uVar25 ^ uVar29) << 7 ^ uVar28;
  uVar20 = (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar31) << (((byte)uVar9 ^ 0x5a) & 0x3f);
  *(ulonglong *)(lVar2 + -0x588) = uVar20;
  puVar26 = (ulonglong *)(lVar2 - (uVar21 ^ 0xfffb7d9f));
  uVar29 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar2 + -0x998) =
       (uVar38 ^ *puVar26 | uVar28 ^ *(ulonglong *)(lVar2 + -0x220)) ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x719ad8c1)) = uVar20 ^ 0x5c1b2b44b9f70645;
  uVar14 = DAT_1826709c0;
  uVar36 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar2 + -0x6f0) =
       (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar31) - (uVar29 ^ *(ulonglong *)(lVar2 + -0x998)) ^
       uVar36;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d0 ^ 0xfcc94fcc)) =
       *(ulonglong *)(lVar2 - (uVar37 ^ 0x44854199)) ^ uVar28 ^ uVar29 ^ uVar23 ^
       *(ulonglong *)(lVar2 + -0x400);
  uVar16 = DAT_1826707e8;
  uVar4 = DAT_1826707b8;
  uVar20 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0x11959f7b)) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xc18)) >> (((byte)DAT_1826707b8 ^ 0xf) & 0x3f) ^ uVar20;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xc5e5e485)) =
       CONCAT44(uVar6,uVar13) ^ 0x10a00a065c406002 | 0x4a0e75f8a3b19ef9;
  uVar14 = DAT_182670950;
  lVar1 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0xc18)) << (((byte)uVar8 ^ 0xcd) & 0x3f) ^ uVar25;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar20 = *(ulonglong *)(lVar1 - ((ulonglong)uVar16 ^ 0x1195965b)) ^ uVar25 |
           uVar20 ^ *(ulonglong *)(lVar1 + -0xce0);
  uVar38 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *(ulonglong *)(lVar1 + -0x4c8) = uVar20 ^ uVar29;
  uVar31 = (uVar23 ^ *(ulonglong *)(lVar1 + -0x400)) - (uVar39 ^ 0x45d91beec0425c76);
  uVar40 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar1 + -0x7d8) = uVar31 ^ uVar38;
  uVar14 = DAT_182670a80;
  uVar28 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar1 + -0x658) = uVar31 - uVar20 ^ uVar40;
  lVar2 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar20 = *(ulonglong *)(lVar1 + -0x6f0);
  *(ulonglong *)(lVar1 + -0xa18) =
       (*(ulonglong *)(lVar1 - (uVar28 ^ 0x5ffb7f70)) ^ uVar29) -
       (CONCAT44(uVar4,uVar6) ^ 0x5f14ee3d577f1400) ^ uVar39;
  lVar1 = DAT_1826707a0;
  bVar18 = (byte)DAT_1826707e4;
  uVar29 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e4 ^ 0x67d5412b)) ^ uVar36 ^ uVar42 ^
           uVar20;
  uVar31 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar29 ^ uVar41;
  *(ulonglong *)(lVar1 + -0x660) = uVar29 >> ((bVar18 ^ 3) & 0x3f) ^ uVar31;
  uVar14 = DAT_1826708d0;
  *(ulonglong *)(lVar1 + -0x220) = uVar29 << 0x30 ^ CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar16 = DAT_1826707e8;
  uVar28 = (ulonglong)DAT_1826707e8;
  uVar31 = uVar31 ^ *puVar26 | uVar29 << 0x30;
  uVar29 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar1 + -0x588) = uVar31 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_1826708c0;
  *(ulonglong *)(lVar1 + -0x420) =
       (uVar36 ^ uVar20) - (CONCAT44(uVar9,uVar16) ^ 0xbb4c551c2655de3) ^ uVar29;
  uVar36 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0x9c8) =
       (*(ulonglong *)(lVar1 - (uVar28 ^ 0x119597bb)) ^ uVar29) - uVar31 ^ uVar36;
  uVar28 = (ulonglong)DAT_182670ae4;
  uVar20 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar41 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x44854199)) =
       uVar31 - (CONCAT44(uVar5,uVar30) ^ 0x8ca6a12a4d2bd423) ^ uVar20;
  lVar1 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x44854b11)) ^ uVar23) =
       uVar41 ^ uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x658);
  *(int *)(lVar1 + -0x2d4) = *(int *)(lVar1 + -0xc34) + 0x443c5966;
  *(ulonglong *)(lVar1 + -0x1e8) = (uVar23 ^ *(ulonglong *)(lVar1 + -0x310)) + 8 ^ uVar24;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0xd88) =
       uVar39 ^ uVar25 ^ *(ulonglong *)(lVar1 + -0xa18) ^ *(ulonglong *)(lVar1 + -0x5c0);
  *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar34 ^ 0xc5e5e8e5)) ^ uVar24) =
       uVar41 ^ uVar39 ^ *(ulonglong *)(lVar1 + -0xa18);
  *(ulonglong *)(lVar1 + -0xc18) =
       (CONCAT44(uVar10,uVar11) ^ 0x2c6486f6f32af7e3) <<
       ((byte)*(undefined8 *)(lVar1 + -0xd88) & 0x3f);
  uVar29 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  bVar18 = (byte)DAT_1826707d4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707dc ^ 0x5ffb7c20)) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0x310)) +
       (CONCAT44(uVar13,DAT_1826707d0) ^ 0xc5e5e90dfcc943d6) * 8 ^ uVar29;
  *(int *)(lVar2 + -0x398) = 0x4a6484bd << ((bVar18 ^ 0xf7) & 0x1f);
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0x798) ^ uVar29) =
       uVar41 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0x9c8);
  uVar12 = DAT_1826707e8;
  uVar16 = DAT_1826707bc;
  uVar31 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar29 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0x1195904b)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b8 ^ 0x44854b11)) ^ uVar23) +
       (CONCAT44(DAT_1826707e8,uVar13) ^ 0x1195939bc5e5e90e) * 8 ^ uVar31;
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0x3d0) ^ uVar31) =
       uVar41 ^ uVar20 ^ *(ulonglong *)(lVar2 + -0x998);
  *(ulonglong *)(lVar2 + -0xb78) =
       *(longlong *)(lVar2 + -0xba8) +
       ((CONCAT44(uVar30,uVar16) ^ 0x44854801b3b977d0) +
       (CONCAT44(uVar7,uVar6) ^ 0xfcc943d4719adce1) * 0xc) * 8;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x719ada29)) =
       *(longlong *)(lVar2 + -0x2d0) +
       ((CONCAT44(uVar6,uVar16) ^ 0x719adce1b3b977d0) +
       (CONCAT44(uVar13,uVar6) ^ 0xc5e5e90d719adce1) * 0xc) * 8 ^ uVar40;
  lVar3 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar20 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xfffb771f)) = **(ulonglong **)(lVar2 + -0xb78) ^ uVar20 ^ uVar33
  ;
  uVar14 = DAT_182670964;
  uVar5 = DAT_1826707e4;
  lVar1 = *(longlong *)(lVar2 + -0xb78);
  puVar26 = (ulonglong *)(lVar1 + (CONCAT44(uVar10,DAT_1826707e4) ^ 0x5ffb7bb867d54512) * 8);
  *(ulonglong **)(lVar3 + -0x180) = puVar26;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x400) = uVar31 ^ uVar20 ^ *puVar26;
  *(longlong *)(lVar3 - ((ulonglong)uVar5 ^ 0x67d541b3)) = lVar1 + 0x10;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x11959443)) =
       CONCAT44(uVar4,uVar16) ^ CONCAT44(uVar9,uVar13) ^ 0xad2c083df8f49418;
  *(ulonglong *)(lVar3 + -0x4c8) = **(ulonglong **)(lVar3 + -0x4a0) ^ uVar20 ^ uVar32;
  *(longlong *)(lVar3 - ((ulonglong)DAT_1826707d8 ^ 0xec4208cc)) =
       *(longlong *)(lVar3 + -0xb78) + 0x18;
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 + -0x4f8);
  uVar16 = DAT_1826707cc ^ 0xfd5655af;
  *(ulonglong *)(lVar3 + -0x438) = **(ulonglong **)(lVar3 + -0x4a0) ^ uVar20;
  *(uint *)(lVar3 + -0x3d4) = uVar16 + (DAT_1826707e0 ^ 0x34df36dc);
  uVar16 = DAT_1826707e4;
  uVar23 = CONCAT44(DAT_182670a28,DAT_182670a28);
  uVar24 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xf7fb7d47)) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0xce0)) - (CONCAT44(uVar8,uVar12) ^ 0xc8e4ad01183b0fb9) ^
       uVar23;
  *(ulonglong *)(lVar3 + -0x660) =
       CONCAT44(uVar16,uVar8) ^ 0x20f90b279ecb2d1 | uVar33 ^ *(ulonglong *)(lVar3 + -0xce0);
  uVar29 = CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar33 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar3 + -0x220) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x400)) - (CONCAT44(uVar8,uVar12) ^ 0x2c69126a3525a004) ^
       uVar29;
  uVar16 = DAT_1826707d0;
  *(ulonglong *)(lVar3 + -0x6f0) =
       (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar32) - (CONCAT44(uVar30,uVar13) ^ 0x7ae7763b26d563b) ^
       uVar33;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xfcc947f4)) =
       *(longlong *)(lVar3 - (uVar37 ^ 0x44854c39)) +
       (CONCAT44(uVar4,DAT_1826707dc) ^ 0xbb7ab7fea0048456) ^ uVar39;
  uVar20 = CONCAT44(DAT_182670b08,DAT_182670b08);
  uVar37 = (uVar39 ^ *(ulonglong *)(lVar3 + -0x420)) -
           (CONCAT44(uVar30,uVar11) ^ 0xe171a0c384db0d32) ^ uVar20;
  *(ulonglong *)(lVar3 + -0x588) = uVar37;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xfcc94614)) =
       *(ulonglong *)(lVar3 - (uVar24 ^ 0x67d543ab)) ^ uVar37 ^ uVar20 ^ uVar23 ^ uVar41;
  uVar14 = DAT_18267082c;
  uVar37 = uVar33 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x6f0) ^ *(ulonglong *)(lVar3 + -0x220);
  *(ulonglong *)(lVar3 + -0xc18) =
       (uVar41 ^ *(ulonglong *)(lVar3 + -0x5c0)) << (((byte)uVar30 ^ 0x21) & 0x3f) ^ uVar35;
  uVar24 = (ulonglong)DAT_1826707d8;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar28 = *(ulonglong *)(lVar3 + -0x5c0) >> 0x20 ^ uVar29 ^ uVar28;
  *(ulonglong *)(lVar3 + -0xd88) = uVar28;
  uVar15 = DAT_182670a24;
  uVar20 = *(ulonglong *)(lVar3 - (uVar24 ^ 0xec420074)) ^ uVar35 | uVar29 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x7d8) = uVar20 ^ uVar38;
  uVar14 = DAT_182670a20;
  uVar4 = DAT_1826707b8;
  uVar28 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0xce0) = (uVar23 ^ *(ulonglong *)(lVar3 + -0x6b8)) - uVar20 ^ uVar28;
  uVar15 = DAT_18267099c;
  *(ulonglong *)(lVar3 + -0x660) = uVar37 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182670908;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x400) = uVar37 >> (((byte)uVar4 ^ 0x21) & 0x3f) ^ uVar31;
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xec4208a4)) = uVar37 << (((byte)uVar6 ^ 0xc1) & 0x3f) ^ uVar20;
  uVar6 = DAT_1826707bc;
  uVar37 = (ulonglong)DAT_1826707bc;
  *(uint *)(lVar3 + -0x8e0) = (DAT_1826707f0 ^ 0xbff34136) + 0xdaffe312;
  uVar23 = CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xb3b973ec)) =
       (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar20 | *(ulonglong *)(lVar3 + -0x400) ^ uVar31) ^ uVar23;
  uVar4 = DAT_1826707d0;
  uVar31 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xc5e5ed2d)) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x6f0)) - (uVar23 ^ *(ulonglong *)(lVar3 + -0x438)) ^
       uVar31;
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar8,uVar6) ^ 0x6e88cbef1c27756b) - (CONCAT44(uVar11,uVar4) ^ 0xee29dd19409cb960);
  uVar20 = (ulonglong)DAT_1826707b0;
  uVar37 = *(ulonglong *)(lVar3 - (uVar27 ^ 0xf7fb7fc7)) ^ uVar28 ^ uVar22 ^ uVar23 ^
           *(ulonglong *)(lVar3 + -0xce0);
  uVar27 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar34 = (ulonglong)DAT_182670a84;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar37;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x4cc5c18b)) = (uVar37 >> 0x20 ^ uVar34) >> 0x1a ^ uVar27;
  uVar34 = (uVar22 ^ *(ulonglong *)(lVar3 + -0x5c0)) << 6;
  uVar20 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar3 + -0xc18) = uVar34 ^ CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar14 = DAT_182670990;
  uVar34 = *(ulonglong *)(lVar3 + -0xd88) ^ uVar27 | uVar34;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar34 ^ uVar20;
  uVar37 = CONCAT44(uVar10,DAT_1826707dc);
  bVar18 = (byte)DAT_1826707c8;
  uVar20 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar3 + -0x220) = (uVar28 ^ *(ulonglong *)(lVar3 + -0xce0)) - uVar34 ^ uVar29;
  uVar34 = uVar38 ^ *(ulonglong *)(lVar3 + -0x7d8) ^ uVar20 ^ uVar31 ^
           *(ulonglong *)(lVar3 + -0x420);
  *(ulonglong *)(lVar3 + -0x660) = uVar34;
  *(ulonglong *)(lVar3 + -0x400) =
       uVar37 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x438) ^ 0x1ccda9d6ff32bbbc;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xfffb7f37)) =
       (uVar20 ^ uVar34) >> ((bVar18 ^ 0xe9) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar19;
  return;
}



############ FUN_ 180ca87a0 size=3907 ############

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

void FUN_180ca87a0(void)

{
  uint *puVar1;
  undefined8 *puVar2;
  uint uVar3;
  longlong lVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  uint *puVar16;
  uint uVar17;
  uint uVar18;
  uint *puVar19;
  byte *pbVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint *puVar35;
  ulonglong uVar36;
  byte local_60;
  
  uVar17 = DAT_182670a3c;
  uVar18 = DAT_18267091c;
  uVar10 = DAT_1826708f4;
  uVar28 = DAT_1826707d8;
  uVar26 = DAT_1826707d0;
  uVar32 = DAT_1826707c8;
  lVar4 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707d8;
  uVar33 = (ulonglong)DAT_1826707c8;
  uVar21 = (ulonglong)DAT_1826707d0;
  uVar24 = DAT_1826707c8 + DAT_1826707d0;
  uVar22 = (DAT_1826707d8 << 0x10 | DAT_1826707d8 & 0xff00) << 8 | DAT_1826707d8 >> 8 & 0xff00 |
           DAT_1826707d8 >> 0x18;
  uVar3 = *(uint *)(&DAT_18260f750 + (uVar33 ^ 0x8c6ec2b6) + (longlong)DAT_182670dc0);
  uVar9 = *(uint *)(&DAT_18260f760 + DAT_182670dc0) ^ DAT_1826707d0;
  puVar1 = (uint *)(DAT_1826707a0 + -0x540);
  puVar19 = (uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0xebb6fb09));
  uVar27 = (*(uint *)(DAT_1826707a0 + -0x3d4) ^ DAT_1826708f4) << 0xd ^ DAT_182670ac4;
  DAT_1826707b4 = uVar24;
  DAT_1826707e0 = uVar22;
  *(uint *)(DAT_1826707a0 + -0x398) = uVar27;
  uVar27 = uVar27 ^ DAT_182670ac4;
  *(uint *)(lVar4 + -0x9ec) = (uVar10 ^ *puVar19) >> 0x13 ^ DAT_182670b04;
  uVar15 = DAT_182670848 ^ *(uint *)(lVar4 + -0xb54);
  uVar10 = DAT_182670a48 ^ *(uint *)(lVar4 + -0xa34);
  uVar27 = (*(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0x3f7def46)) ^ DAT_182670b04 | uVar27) ^ uVar18;
  *(uint *)(lVar4 + -0x8e0) = uVar27;
  uVar27 = uVar27 ^ DAT_18267095c;
  *puVar1 = uVar15 + uVar10 ^ DAT_182670ae8;
  uVar27 = uVar27 ^ uVar18;
  uVar29 = (ulonglong)uVar22;
  uVar10 = *(uint *)(lVar4 - ((ulonglong)uVar22 ^ 0xaae6787f)) ^ DAT_1826709c0 ^ DAT_182670ae8;
  *(uint *)(lVar4 + -0xc0c) = uVar10;
  uVar10 = uVar10 ^ uVar17 ^ DAT_1826709c0;
  *(uint *)(lVar4 + -0xc34) = uVar27;
  uVar15 = uVar27 ^ DAT_182670a88 ^ DAT_18267095c;
  *(uint *)(lVar4 + -0x280) = uVar10;
  uVar11 = (ulonglong)uVar24;
  uVar12 = (ulonglong)DAT_18267089c;
  *(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0x7825bd17)) = uVar15;
  uVar10 = DAT_182670ae0;
  pbVar20 = (byte *)((CONCAT44(uVar28,uVar22) ^ 0x3f7de6aaaae67d3f) * 0x20 +
                     (CONCAT44(uVar32,uVar28) ^ 0x8c6ec2be3f7de6bd) + *(longlong *)(lVar4 + -0x30));
  uVar15 = DAT_182670ae0 & 0xff;
  *(longlong *)(lVar4 + -0xd88) = *(longlong *)(lVar4 + -0x7d8) - *(longlong *)(lVar4 + -0x4c8);
  *(ulonglong *)(lVar4 + -0xdb8) = (ulonglong)pbVar20 ^ uVar12;
  *(byte *)(lVar4 - (uVar33 ^ 0x8c6ec4a7)) = *pbVar20 ^ (byte)uVar10 ^ (byte)DAT_182670adc;
  bVar5 = (byte)(uVar28 >> 0x18);
  bVar13 = bVar5 ^ 0x2e;
  uVar30 = *(byte *)(lVar4 + -0x619) ^ uVar15 ^ DAT_182670a10;
  uVar27 = (*(uint *)(lVar4 + -0x68c) ^ DAT_182670a88) + (uVar26 ^ 0x2092b5fe) ^ DAT_182670af0;
  *(uint *)(lVar4 + -0x43c) = uVar30;
  uVar30 = uVar30 ^ DAT_182670a10;
  *(uint *)(lVar4 + -0x14) = uVar27;
  uVar10 = DAT_182670a6c;
  uVar27 = uVar27 ^ DAT_182670af0;
  uVar15 = uVar30 << (bVar13 & 0x1f);
  *(uint *)(lVar4 + -0x42c) = uVar15 ^ DAT_182670a6c;
  uVar27 = uVar27 - uVar15;
  *(uint *)(lVar4 + -0x814) = uVar27 ^ uVar10;
  uVar10 = (uVar32 ^ 0x8c6ec2a9) * uVar30 ^ DAT_182670834;
  *(uint *)(lVar4 + -0x2d4) = (*(uint *)(lVar4 + -0x280) ^ uVar17) * uVar27 ^ DAT_182670860;
  *(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0x3f7de14e)) = uVar10;
  uVar27 = (*(uint *)(lVar4 + -0x7e4) ^ DAT_182670834) + (*(uint *)(lVar4 + -0x2d4) ^ DAT_182670860)
  ;
  *(uint *)(lVar4 + -0x3d4) = uVar27 ^ DAT_182670928;
  uVar15 = uVar27 << ((byte)(uVar24 ^ 0x7825bb96) & 0x1f) ^ DAT_182670a18;
  *(uint *)(lVar4 + -0x398) = uVar15;
  uVar10 = DAT_182670840;
  uVar15 = uVar15 ^ DAT_182670a18;
  uVar27 = uVar27 >> (((byte)uVar32 ^ 0xad) & 0x1f) ^ DAT_1826709e4;
  *(uint *)(lVar4 + -0x9ec) = uVar27;
  *(uint *)(lVar4 - (uVar11 ^ 0x7825b1af)) = (uVar27 ^ DAT_1826709e4 | uVar15) ^ DAT_182670a84;
  uVar17 = (*(uint *)(lVar4 + -0x280) ^ uVar17) + (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^
           DAT_182670b08;
  *puVar1 = uVar17;
  puVar35 = (uint *)(lVar4 - (uVar25 ^ 0x3f7dee4a));
  puVar16 = (uint *)(lVar4 - ((ulonglong)uVar32 ^ 0x8c6ec88a));
  *puVar35 = uVar17 ^ DAT_182670800 ^ DAT_182670b08;
  uVar17 = *puVar16 ^ uVar10 ^ DAT_182670a84;
  *(uint *)(lVar4 + -0xc0c) = uVar17;
  *(uint *)(lVar4 + -0xc34) = (uVar28 ^ 0x372b1bc8) >> (((byte)uVar17 ^ (byte)uVar10) & 0x1f);
  uVar17 = DAT_18267084c;
  lVar6 = DAT_1826707a0;
  puVar2 = (undefined8 *)(DAT_1826707a0 + -0x890);
  *(uint *)(DAT_1826707a0 + -0x68c) = *(uint *)(lVar4 + -0x8e0) ^ DAT_18267084c ^ DAT_182670800;
  *(ulonglong *)(lVar6 - (uVar29 ^ 0xaae67b0f)) = 0xede073a450fe22d3 >> ((byte)*puVar2 & 0x3f);
  uVar12 = (ulonglong)_DAT_1826708c8;
  *(uint *)(lVar6 + -0x14) = *(uint *)(lVar6 + -0xc0c) ^ DAT_182670ab4 ^ uVar10;
  *(ulonglong *)(lVar6 + -0x6f0) =
       CONCAT44(uVar24,uVar26) ^ CONCAT44(uVar26,uVar24) ^ 0xfdb4397db8765c46;
  bVar14 = (byte)DAT_1826709cc;
  *(ulonglong *)(lVar6 - (uVar29 ^ 0xaae67f4f)) =
       (CONCAT44(uVar22,uVar26) ^ 0xaae67d3febb6f8dd) * 0x20 +
       (CONCAT44(uVar32,uVar22) ^ 0x8c6ec2beaae67d3d) + *(longlong *)(lVar6 + -0x30) ^ uVar12;
  uVar28 = DAT_1826707ac;
  lVar7 = DAT_1826707a0;
  *(byte *)(lVar6 - (uVar25 ^ 0x3f7dea9f)) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x270) ^ uVar12) ^ bVar14 ^ (byte)DAT_182670adc;
  uVar10 = DAT_1826709b4;
  *(uint *)(lVar7 + -0x42c) = (bVar14 ^ *(byte *)(lVar6 + -0xc35)) ^ DAT_1826709b4;
  uVar12 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar7 - (uVar11 ^ 0x7825b77b)) =
       *(longlong *)(lVar7 - (uVar21 ^ 0xebb6ff05)) - (CONCAT44(uVar28,uVar22) ^ 0xf0e35308f18a054e)
  ;
  uVar27 = (*(uint *)(lVar7 + -0x14) ^ DAT_182670ab4) + (uVar32 ^ 0x474a8f9d) ^ DAT_1826709c8;
  *(uint *)(lVar7 + -0x814) = uVar27;
  *(ulonglong *)(lVar7 + -0x610) =
       CONCAT44(uVar22,uVar22) ^ 0x8a6b962edfa8ce77 | *(ulonglong *)(lVar7 + -0xb70);
  uVar28 = (*(uint *)(lVar7 - (uVar12 ^ 0xbf7fe2c6)) ^ uVar10) << (((byte)uVar32 ^ 0xaf) & 0x1f) ^
           DAT_182670884;
  bVar14 = (byte)DAT_1826707e8;
  *(uint *)(lVar7 + -0x43c) = uVar28;
  *(longlong *)(lVar7 + -0xa18) =
       *(longlong *)(lVar7 - (uVar25 ^ 0x3f7de172)) << ((bVar14 ^ 0x85) & 0x3f);
  uVar15 = DAT_1826708e8;
  uVar32 = DAT_1826707e4;
  uVar12 = (ulonglong)DAT_1826707e4;
  *(uint *)(lVar7 - ((ulonglong)DAT_1826707b8 ^ 0xeb12fa01)) =
       (uVar27 ^ DAT_1826709c8) - (uVar28 ^ DAT_182670884) ^ DAT_182670974;
  uVar28 = DAT_1826707b0;
  uVar22 = DAT_1826707b4 ^ 0x7825bb99;
  *(uint *)(lVar7 - (uVar33 ^ 0x8c6ec55a)) =
       (*(uint *)(lVar7 - (uVar12 ^ 0x4124801e)) ^ uVar17) *
       (*(uint *)(lVar7 + -0x2d4) ^ DAT_182670974) ^ uVar18;
  *(uint *)(lVar7 + -0x3d4) = (*(uint *)(lVar7 + -0x42c) ^ uVar10) * uVar22 ^ DAT_182670a34;
  *(uint *)(lVar7 + -0x398) =
       (*(uint *)(lVar7 + -0x7e4) ^ uVar18) + (DAT_182670a34 ^ *puVar19) ^ uVar15;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar32 ^ 0x41248f72)) =
       (CONCAT44(uVar26,uVar24) ^ 0xdbf63dceb1c4fefd) + 0x1839cf5459f28f9e;
  *(uint *)(lVar7 + -0x9ec) =
       (uVar15 ^ *(uint *)(lVar7 + -0x398)) << ((bVar5 ^ 0x32) & 0x1f) ^ DAT_1826708dc;
  *(uint *)(lVar7 - ((ulonglong)uVar28 ^ 0xad6fdc7e)) =
       (uVar15 ^ *(uint *)(lVar7 + -0x398)) >> 0x13 ^ DAT_182670a20;
  uVar26 = DAT_1826707ec;
  uVar32 = DAT_1826707bc;
  lVar4 = *(longlong *)(lVar7 + -0x30);
  uVar10 = (*(uint *)(lVar7 - (uVar21 ^ 0xebb6f131)) ^ DAT_1826708dc |
           *(uint *)(lVar7 + -0x280) ^ DAT_182670a20) ^ DAT_182670a14;
  uVar12 = (ulonglong)DAT_1826707cc;
  uVar23 = (ulonglong)DAT_1826707bc;
  *puVar1 = uVar10;
  uVar18 = DAT_182670ae0;
  uVar22 = uVar10 ^ DAT_182670998 ^ DAT_182670a14;
  *(uint *)(lVar7 + -0xa34) =
       (*(uint *)(lVar7 - (uVar12 ^ 0x85f69fda)) ^ uVar17) +
       (*(uint *)(lVar7 - ((ulonglong)uVar28 ^ 0xad6fd5aa)) ^ DAT_182670848) ^ DAT_182670af4;
  uVar28 = DAT_182670810 ^ DAT_182670a3c;
  uVar10 = *(uint *)(lVar7 - (uVar23 ^ 0x1a6ca3c)) ^ DAT_182670810 ^ DAT_182670af4;
  *(uint *)(lVar7 + -0xc34) = uVar10;
  uVar12 = (ulonglong)DAT_182670acc;
  *(uint *)(lVar7 + -0xc0c) = uVar28 ^ uVar10;
  *(uint *)(lVar7 + -0x8e0) = uVar22;
  *(uint *)(lVar7 + -0x14) = *puVar35 ^ DAT_182670988 ^ DAT_182670998;
  bVar5 = (byte)DAT_1826707f8;
  *(ulonglong *)(lVar7 - (uVar11 ^ 0x7825b9d3)) = lVar4 + 0xdU ^ uVar12;
  *(byte *)(lVar7 - ((ulonglong)uVar26 ^ 0x80420259)) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x248) ^ uVar12) ^ bVar5 ^ (byte)DAT_182670adc;
  uVar17 = (uint)(bVar5 ^ *(byte *)(lVar7 + -0x619));
  *(uint *)(lVar7 + -0x814) = uVar17 ^ uVar18;
  uVar28 = DAT_1826707b8;
  lVar4 = DAT_1826707a0;
  uVar22 = (*(uint *)(lVar7 - (uVar25 ^ 0x3f7de6be)) ^ DAT_182670988) + (uVar26 ^ 0x4b664963) ^
           DAT_182670a28;
  uVar12 = (ulonglong)DAT_1826707c0;
  uVar31 = (ulonglong)DAT_1826707b8;
  bVar5 = (byte)DAT_1826707c0;
  uVar34 = (ulonglong)DAT_1826707a8;
  *(uint *)(lVar7 + -0x43c) = uVar22;
  uVar10 = DAT_1826709f8;
  uVar22 = uVar22 ^ DAT_182670a28;
  uVar27 = uVar17 * (uVar24 ^ 0x7825bb96) ^ DAT_182670938;
  *(ulonglong *)(lVar7 + -0x548) =
       *(ulonglong *)(lVar7 + -0x410) >>
       ((byte)*(undefined8 *)(lVar7 - (uVar12 ^ 0x3f7de6c2)) & 0x3f);
  uVar17 = (*(uint *)(lVar7 - (uVar11 ^ 0x7825b38f)) ^ uVar18) << ((bVar5 ^ 0xbb) & 0x1f);
  uVar18 = uVar17 ^ DAT_182670af8;
  *(uint *)(lVar4 + -0x3d4) = uVar27;
  uVar27 = uVar27 ^ DAT_182670938;
  uVar22 = uVar22 - uVar17;
  *(uint *)(lVar7 + -0x2d4) = uVar18;
  uVar18 = DAT_182670a00;
  *(uint *)(lVar7 + -0x42c) = uVar22 ^ uVar10;
  uVar17 = DAT_182670948;
  uVar10 = DAT_1826707f4;
  *(ulonglong *)(lVar4 + -0x660) =
       (CONCAT44(DAT_1826707f4,uVar28) ^ 0xb11ff3832e833223) <<
       ((byte)*(undefined8 *)(lVar4 + -0xa18) & 0x3f);
  uVar28 = DAT_1826707dc;
  uVar22 = uVar22 * (*(uint *)(lVar4 + -0xc0c) ^ DAT_182670a3c);
  uVar23 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar4 + -0x658) = uVar34 << 0x2b ^ 0xedbfc80000000000;
  *(uint *)(lVar4 + -0x7e4) = uVar22 ^ uVar18;
  uVar22 = uVar22 + uVar27;
  *(uint *)(lVar4 + -0x398) = uVar22 ^ uVar17;
  *(uint *)(lVar4 + -0x9ec) = uVar22 * 0x2000 ^ DAT_182670a9c;
  *(ulonglong *)(lVar4 + -0x2b0) = (CONCAT44(DAT_1826707d4,uVar28) ^ 0xfff8a85f22315706) << 0xc;
  uVar8 = DAT_1826707f0;
  uVar36 = (ulonglong)DAT_1826707c4;
  *(uint *)(lVar4 - (uVar21 ^ 0xebb6fa5d)) = (uVar17 ^ *(uint *)(lVar4 + -0x398)) >> 0x13 ^ uVar15;
  uVar17 = DAT_182670978;
  *(ulonglong *)(lVar4 - (uVar11 ^ 0x7825be13)) =
       CONCAT44(uVar8,DAT_1826707e4) ^ *(ulonglong *)(lVar4 + -0xf0) ^ 0xf3349f1d735a3c53;
  uVar18 = DAT_182670984;
  *(uint *)(lVar4 - (uVar36 ^ 0xd5f81467)) =
       (*(uint *)(lVar4 + -0x280) ^ uVar15 | *(uint *)(lVar4 + -0x9ec) ^ DAT_182670a9c) ^
       DAT_182670a08;
  *(ulonglong *)(lVar4 + -0x420) = *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x7d7114c2)) >> 0x25;
  *puVar16 = (*(uint *)(lVar4 - (uVar31 ^ 0xeb12f4d9)) ^ DAT_182670a3c) +
             (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^ DAT_18267081c;
  *puVar1 = *(uint *)(lVar4 - (uVar29 ^ 0xaae6770b)) ^ DAT_1826708d4 ^ DAT_18267081c;
  *(uint *)(lVar4 - (uVar29 ^ 0xaae6710b)) = *(uint *)(lVar4 + -0x68c) ^ uVar18 ^ DAT_182670a08;
  *(uint *)(lVar4 + -0x8e0) = *puVar1 ^ uVar17 ^ DAT_1826708d4;
  uVar15 = DAT_182670a18;
  bVar5 = (byte)DAT_182670818;
  uVar11 = (ulonglong)DAT_182670ac0;
  uVar21 = (ulonglong)DAT_1826707cc;
  bVar14 = (byte)DAT_1826707cc;
  uVar22 = *(uint *)(lVar4 - (uVar33 ^ 0x8c6ece8a)) ^ DAT_1826708cc ^ uVar18;
  *(uint *)(lVar4 + -0x14) = uVar22;
  lVar6 = DAT_1826707a0;
  uVar22 = uVar22 ^ DAT_1826708cc;
  pbVar20 = (byte *)(*(longlong *)(lVar4 + -0x30) + 0x18 +
                    (CONCAT44(uVar32,uVar10) ^ 0x1a6c0087d711822) * 0x20);
  *(longlong *)(DAT_1826707a0 + -0xd38) =
       *(longlong *)(DAT_1826707a0 + -0xac0) << ((bVar14 ^ 0x68) & 0x3f);
  *(ulonglong *)(lVar6 + -0x4f8) = (ulonglong)pbVar20 ^ uVar11;
  uVar8 = DAT_1826707e8;
  *(byte *)(lVar6 + -0xc35) = *pbVar20 ^ bVar5 ^ (byte)DAT_182670adc;
  local_60 = (byte)uVar26;
  *(ulonglong *)(lVar6 + -0x558) =
       0xd73ca4620c7e6f77 >>
       ((byte)*(undefined8 *)(lVar6 - ((ulonglong)DAT_1826707b0 ^ 0xad6fd54e)) & 0x3f);
  uVar11 = (ulonglong)DAT_1826707ac;
  uVar32 = uVar22 + (DAT_1826707bc ^ 0xca828d2b) ^ _DAT_1826708f8;
  *(ulonglong *)(lVar6 + -0x3b0) =
       (CONCAT44(uVar8,uVar28) ^ 0x1f6ffca859fbcd9f) << ((local_60 ^ 0x5b) & 0x3f);
  *(uint *)(lVar6 + -0x43c) = (bVar5 ^ *(byte *)(lVar6 + -0xc35)) ^ uVar15;
  *(uint *)(lVar6 + -0x2d4) = uVar32;
  uVar28 = DAT_182670848;
  uVar10 = (*(uint *)(lVar6 - (uVar11 ^ 0x3c58455)) ^ uVar15) << (bVar13 & 0x1f);
  uVar11 = (ulonglong)DAT_1826707e4;
  *(uint *)(lVar6 + -0x42c) = uVar10 ^ DAT_182670848;
  uVar32 = DAT_182670858;
  uVar10 = (*(uint *)(lVar6 - (uVar11 ^ 0x41248446)) ^ _DAT_1826708f8) - uVar10;
  *(uint *)(lVar6 + -0x814) = uVar10 ^ DAT_182670a50;
  uVar26 = DAT_1826708a4;
  *(uint *)(lVar6 + -0x7e4) = (*(uint *)(lVar6 - (uVar12 ^ 0x3f7dee4a)) ^ uVar17) * uVar10 ^ uVar32;
  bVar5 = (byte)DAT_1826707f4;
  *(uint *)(lVar6 - (uVar21 ^ 0x85f69a82)) =
       (*(uint *)(lVar6 - (uVar23 ^ 0x8042007c)) ^ uVar15) * 0x18 ^ DAT_182670808;
  uVar32 = (*(uint *)(lVar6 - (uVar34 ^ 0xaae67eeb)) ^ DAT_182670808) +
           (uVar32 ^ *(uint *)(lVar6 + -0x7e4));
  *(uint *)(lVar6 + -0x398) = uVar32 ^ uVar26;
  *(uint *)(lVar6 - (uVar33 ^ 0x8c6ecb52)) = uVar32 << ((bVar5 ^ 0x2f) & 0x1f) ^ DAT_182670ae0;
  uVar32 = *(uint *)(lVar6 + -0x9ec) ^ DAT_182670ae0;
  uVar26 = (uVar26 ^ *(uint *)(lVar6 + -0x398)) >> 0x13 ^ DAT_182670a68;
  *(uint *)(lVar6 + -0x280) = uVar26;
  *(uint *)(lVar6 - (uVar36 ^ 0xd5f81ee7)) = (uVar26 ^ DAT_182670a68 | uVar32) ^ DAT_182670850;
  *(uint *)(lVar6 + -0xa34) =
       (*(uint *)(lVar6 + -0x8e0) ^ uVar17) + (uVar28 ^ *(uint *)(lVar6 + -0xb54)) ^ DAT_182670a34;
  *(uint *)(lVar6 + -0x68c) =
       *(uint *)(lVar6 - (uVar25 ^ 0x3f7dec9e)) ^ _DAT_1826708bc ^ DAT_182670a34;
  *puVar1 = *(uint *)(lVar6 - (uVar12 ^ 0x3f7deaa6)) ^ DAT_182670850 ^ uVar18;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar9 * 4) = uVar3 ^ uVar24;
  return;
}



############ FUN_ 180cb1bf0 size=5314 ############

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

void FUN_180cb1bf0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_res18;
  byte local_res20;
  byte local_120;
  byte local_118;
  
  uVar12 = DAT_1826707f0;
  uVar11 = DAT_1826707ec;
  uVar10 = DAT_1826707e8;
  uVar9 = DAT_1826707e0;
  uVar8 = DAT_1826707d8;
  uVar7 = DAT_1826707cc;
  uVar6 = DAT_1826707c8;
  uVar44 = DAT_1826707bc;
  uVar5 = DAT_1826707b0;
  uVar26 = (ulonglong)DAT_1826707b0;
  uVar47 = (ulonglong)DAT_1826707bc;
  DAT_1826707a8 = DAT_1826707e0 ^ DAT_1826707b0 ^ 0x407c50b5;
  uVar25 = (ulonglong)DAT_1826707c8;
  uVar43 = ~DAT_1826707f0;
  uVar32 = (ulonglong)DAT_1826707ec;
  uVar29 = (ulonglong)DAT_1826707d8;
  uVar22 = DAT_1826707ec & DAT_1826707d8;
  uVar46 = (ulonglong)uVar22;
  uVar28 = (ulonglong)DAT_1826707cc;
  uVar40 = *(uint *)(&DAT_18260f758 + DAT_182670ddc) ^ DAT_1826707f0;
  uVar27 = DAT_1826707bc & DAT_1826707cc;
  uVar36 = DAT_1826707c8 * DAT_1826707e8;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar28 ^ 0x307c0288) + (longlong)DAT_182670ddc);
  DAT_1826707ac = uVar43;
  DAT_1826707b8 = uVar22;
  DAT_1826707dc = uVar27;
  DAT_1826707e4 = uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) =
       (CONCAT44(DAT_1826707bc,uVar27) ^ 0x24eeaa1bfb4760cd) + 0x93bac3fd82bf6709;
  uVar14 = DAT_182670abc;
  uVar13 = DAT_1826708d0;
  lVar2 = DAT_1826707a0;
  uVar17 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar18 = (uVar17 ^ *(ulonglong *)(DAT_1826707a0 + -0xcf8)) >> (((byte)uVar11 ^ 0xb8) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar18 ^ CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x558) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar2 + -0x660) | uVar18) ^ uVar30;
  uVar13 = DAT_1826709a4;
  uVar19 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar41 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar21 = (ulonglong)uVar36;
  *(ulonglong *)(lVar2 + -0x9e0) =
       *(ulonglong *)(lVar2 - (uVar21 ^ 0x6644f593)) ^ *(ulonglong *)(lVar2 + -0x3b0) ^ uVar41 ^
       uVar19 ^ uVar30;
  uVar30 = CONCAT44(DAT_182670aec,DAT_182670aec);
  uVar37 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xcf83fd97)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x3434c7b0)) ^ CONCAT44(uVar13,uVar13)) +
       (uVar30 ^ *(ulonglong *)(lVar2 + -0xd38)) ^ uVar37;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0xd38)) << (((byte)uVar10 ^ 0xdd) & 0x3f) ^ uVar31;
  bVar16 = (byte)uVar9;
  uVar20 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar18 = CONCAT44(DAT_1826707a8,uVar43);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x3534c960)) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0xd38)) >> ((bVar16 ^ 0xb8) & 0x3f) ^ uVar20;
  uVar13 = DAT_182670978;
  uVar30 = (ulonglong)uVar12;
  puVar24 = (ulonglong *)(lVar2 - (uVar30 ^ 0x2550cbc));
  *puVar24 = uVar18 ^ 0x92b873b879d6a08d | CONCAT44(uVar36,uVar7) ^ 0xfaf8e3ddee2940c1;
  uVar14 = DAT_182670a90;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar18 = (*(ulonglong *)(lVar3 - (uVar46 ^ 0x3434cd60)) ^ uVar20 |
           uVar31 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x118) = uVar18;
  uVar13 = DAT_1826708ac;
  uVar20 = CONCAT44(uVar14,uVar14);
  uVar18 = *(ulonglong *)(lVar3 + -0xf0) ^ uVar20 ^ uVar18 ^ uVar33 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x610) = uVar18;
  uVar14 = DAT_182670b04;
  uVar23 = (CONCAT44(uVar43,uVar6) ^ 0x9f20f917eeb05e6c) + (uVar20 ^ uVar18);
  uVar31 = uVar23 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xd88) = uVar31;
  uVar18 = (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar41) +
           (CONCAT44(uVar11,uVar36) ^ 0x83e005666fea6ce9);
  uVar20 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(lVar3 + -0x2b0) = uVar18 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0xcf8) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x118)) >> (((byte)uVar31 ^ (byte)uVar13) & 0x3f);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x660) = uVar23 + uVar18 ^ uVar20;
  local_120 = (byte)uVar5;
  uVar23 = uVar23 << ((local_120 ^ 0x96) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar23 ^ CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar14 = DAT_1826708e8;
  *(ulonglong *)(lVar2 + -0x558) =
       CONCAT44(uVar7,uVar44) ^ 0x791900da0d50c6db | CONCAT44(uVar8,uVar10) ^ 0xff5627469e025b5d;
  lVar3 = DAT_1826707a0;
  uVar18 = (*(ulonglong *)(lVar2 + -0xd88) ^ CONCAT44(uVar13,uVar13)) >> ((bVar16 ^ 0xaa) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar18 ^ CONCAT44(uVar14,uVar14);
  uVar13 = DAT_182670808;
  lVar2 = DAT_1826707a0;
  *(uint *)(lVar3 + -0x9ec) = *(uint *)((uVar28 ^ 0x307c02b0) + lVar3) & *(uint *)(lVar3 + -0xb54);
  uVar33 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xcf83f05f)) = (uVar18 | uVar23) ^ uVar33;
  uVar31 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *puVar24 = uVar31 ^ uVar33 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0x660) ^
             *(ulonglong *)(lVar3 + -0xd38);
  uVar38 = CONCAT44(DAT_182670a08,DAT_182670a08);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar43 ^ 0xfdaaf1eb)) =
       (CONCAT44(uVar11,uVar44) ^ 0x190b3b5a84df892a) + (*(ulonglong *)(lVar2 + -0x9e0) ^ uVar19) ^
       uVar38;
  uVar4 = DAT_1826707a8;
  uVar18 = (*(ulonglong *)(lVar2 + -0xf0) ^ uVar37) + (CONCAT44(uVar11,uVar36) ^ 0x9340ce1379848d7d)
  ;
  uVar23 = CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(lVar2 + -0xce0) = uVar18 ^ CONCAT44(DAT_1826708b0,DAT_1826708b0);
  puVar24 = (ulonglong *)(lVar2 - (uVar21 ^ 0x6644f673));
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x727d2845)) ^ uVar38) + uVar18 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x3b0) = (*puVar24 ^ uVar38) << (((byte)uVar4 ^ 0xa5) & 0x3f) ^ uVar19;
  uVar13 = DAT_18267098c;
  *(ulonglong *)(lVar2 + -0x118) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0xcf83fed7)) ^ uVar19) -
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xd38));
  uVar14 = DAT_182670a0c;
  uVar18 = CONCAT44(uVar13,uVar13);
  puVar34 = (ulonglong *)(lVar2 - (uVar25 ^ 0xcf83f19f));
  local_res20 = (byte)uVar8;
  *puVar34 = (*(ulonglong *)(lVar2 - (uVar46 ^ 0x3434c738)) ^ uVar38) >>
             ((local_res20 ^ 0xb0) & 0x3f) ^ uVar18;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar18 = (*(ulonglong *)(lVar2 + -0x3b0) ^ uVar19 | uVar18 ^ *(ulonglong *)(lVar2 + -0xcf8)) ^
           uVar41;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar18;
  uVar36 = DAT_182670a20;
  lVar2 = DAT_1826707a0;
  uVar19 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       (CONCAT44(uVar12,uVar9) ^ 0x674b4c5c80ea8c7e) - (CONCAT44(uVar27,uVar5) ^ 0x2b0a9064a569f3c2)
  ;
  *(ulonglong *)(lVar2 + -0xd88) =
       *(ulonglong *)(lVar2 + -0x610) ^ uVar19 ^ uVar18 ^ uVar41 ^ uVar23;
  lVar2 = DAT_1826707a0;
  local_118 = (byte)uVar44;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar4 ^ 0x407bbb05)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar23) >> ((local_118 ^ 0xf9) & 0x3f);
  uVar14 = DAT_182670ab4;
  uVar13 = DAT_182670a4c;
  uVar45 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar18 = *(ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(lVar2 + -0x630) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x660)) + (*(ulonglong *)(lVar2 + -0xd88) ^ uVar19) ^
       uVar45;
  lVar2 = DAT_1826707a0;
  local_res18 = (byte)uVar43;
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar46 ^ 0x3434c860)) =
       (uVar18 ^ uVar19) << ((local_res18 ^ 0x67) & 0x3f) ^ uVar35;
  uVar33 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar2 + -0xf0) =
       ((ulonglong)uVar36 << 0x14 | (ulonglong)(uVar36 >> 0xc)) ^
       *(ulonglong *)(lVar2 + -0xd88) >> 0xc ^ uVar33;
  uVar4 = _DAT_1826708c8;
  uVar42 = (ulonglong)_DAT_1826708c8;
  *(ulonglong *)(lVar2 + -0xce0) =
       (CONCAT44(uVar7,uVar43) ^ 0x7ee6e5b1e808d40a) >>
       ((*(byte *)(lVar2 - (uVar30 ^ 0x2550e9c)) ^ (byte)uVar14) & 0x3f);
  uVar37 = CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar21 = (*(ulonglong *)(lVar2 - (uVar26 ^ 0xbcfbe268)) ^ uVar33 |
           *(ulonglong *)(lVar2 - (uVar21 ^ 0x6644f92b)) ^ uVar35) ^ uVar37;
  *(ulonglong *)(lVar2 + -0x118) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0x2b0)) << ((local_120 ^ 0xba) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd38) = uVar21;
  lVar3 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707a8;
  uVar19 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar21 = *(ulonglong *)(lVar2 - (uVar32 ^ 0xbcffd5a8)) ^ CONCAT44(uVar4,uVar4) ^ uVar37 ^ uVar45 ^
           uVar21;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar21;
  uVar14 = DAT_182670ab8;
  lVar2 = DAT_1826707a0;
  uVar23 = (uVar31 ^ *(ulonglong *)(lVar3 + -0x410)) + (*(ulonglong *)(lVar3 + -0x610) ^ uVar23);
  uVar26 = uVar23 ^ uVar19;
  uVar39 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) = uVar26;
  uVar41 = (*(ulonglong *)(lVar2 - (uVar18 ^ 0x407bb4a5)) ^ uVar31) <<
           (((byte)uVar10 ^ 0xc4) & 0x3f);
  uVar18 = uVar41 ^ uVar39;
  *(ulonglong *)(lVar2 + -0xcf8) = uVar18;
  uVar13 = DAT_1826709f0;
  lVar3 = DAT_1826707a0;
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar2 + -0x410)) >> ((bVar16 ^ 0x9f) & 0x3f);
  *(ulonglong *)(lVar2 + -0x558) =
       (*(ulonglong *)(lVar2 + -0x9e0) ^ uVar35) << (((byte)uVar18 ^ (byte)uVar14) & 0x3f);
  uVar18 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar31 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_1826708f4;
  uVar31 = (uVar31 | uVar41) ^ uVar18;
  *(ulonglong *)(lVar2 + -0x660) = uVar31;
  uVar14 = _DAT_182670b10;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar31 = uVar41 ^ uVar18 ^ uVar19 ^ uVar26 ^ uVar31;
  *(ulonglong *)(lVar2 + -0xd88) = uVar31;
  uVar13 = DAT_182670868;
  uVar19 = CONCAT44(uVar14,uVar14);
  uVar18 = (uVar41 ^ uVar31) << ((local_120 ^ 0x8f) & 0x3f);
  uVar35 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0x307c04a8)) ^ uVar45) + (uVar41 ^ uVar31) ^
           uVar19;
  *(ulonglong *)(lVar3 + -0xce0) = uVar35;
  uVar14 = DAT_182670884;
  *(ulonglong *)(lVar3 + -0xf0) = uVar18 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670a64;
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar14,uVar14);
  uVar26 = (*(ulonglong *)(DAT_1826707a0 - (uVar46 ^ 0x3434cc08)) ^ uVar41) >>
           ((local_res18 ^ 0x7a) & 0x3f);
  uVar21 = CONCAT44(uVar4,uVar4) ^ uVar21;
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) = uVar26 ^ uVar31;
  uVar41 = uVar21 << ((local_res20 ^ 0xa8) & 0x3f);
  uVar26 = (uVar26 | uVar18) ^ uVar17;
  uVar18 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar2 + -0x118) = uVar26;
  *(ulonglong *)(lVar2 + -0x610) = uVar23 + uVar21 ^ uVar37;
  uVar45 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xd38) = uVar45 ^ uVar19 ^ uVar17 ^ uVar26 ^ uVar35;
  uVar35 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar2 + -0x558) = uVar41 ^ uVar35;
  uVar13 = _DAT_1826709e0;
  *(ulonglong *)(lVar2 + -0x9e0) = uVar41 | 0x815631234757fc0a;
  uVar21 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x727d2aed)) =
       *(ulonglong *)(lVar2 - (uVar18 ^ 0x407bb60d)) >> 0x18 ^
       ((ulonglong)(uVar4 >> 0x18) | uVar42 << 8) ^ uVar21;
  uVar14 = DAT_182670864;
  uVar18 = CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar2 + -0x410) | uVar35 ^ *(ulonglong *)(lVar2 + -0x558)) ^
           uVar18;
  *(ulonglong *)(lVar2 + -0xcf8) = uVar21;
  uVar17 = (ulonglong)DAT_1826708a8;
  uVar26 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar21 = uVar26 ^ uVar21 ^ uVar18 ^ uVar37 ^ *(ulonglong *)(lVar2 + -0x610);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar21;
  uVar13 = DAT_182670820;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x630) = uVar31 ^ *(ulonglong *)(lVar2 + -0x2b0) ^ 0x28d01ed40aaefa28;
  *(ulonglong *)(lVar2 + -0x660) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0xce0)) + (uVar26 ^ uVar21) ^ uVar23;
  uVar31 = (uVar26 ^ uVar21) << (((byte)uVar6 ^ 0x62) & 0x3f);
  uVar18 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(lVar2 + -0xd88) = uVar31 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xf0) = (uVar21 >> 0x20 ^ uVar17) >> 0x1b ^ uVar18;
  uVar21 = CONCAT44(DAT_182670a80,DAT_182670a80);
  uVar17 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  uVar18 = (*(ulonglong *)(lVar2 - (uVar46 ^ 0x3434c170)) ^ uVar18 | uVar31) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x118) = uVar18;
  uVar31 = CONCAT44(DAT_182670878,DAT_182670878);
  *(ulonglong *)(lVar2 + -0x3b0) =
       *(ulonglong *)(lVar2 - (uVar29 ^ 0x3534c3e0)) ^ uVar17 ^ uVar18 ^ uVar21 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x9e0) =
       (uVar45 ^ *(ulonglong *)(lVar2 + -0xd38)) + (uVar37 ^ *(ulonglong *)(lVar2 + -0x610)) ^
       uVar31;
  uVar14 = DAT_182670a44;
  lVar3 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar45 ^ *(ulonglong *)(lVar2 + -0xd38)) << ((bVar16 ^ 0xbd) & 0x3f) ^ uVar21;
  uVar13 = DAT_1826708ec;
  uVar46 = (uVar45 ^ *(ulonglong *)(lVar2 + -0xd38)) >> ((local_120 ^ 0x83) & 0x3f);
  *(ulonglong *)(lVar2 + -0x558) = uVar46 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182670a7c;
  uVar19 = CONCAT44(uVar13,uVar13);
  uVar18 = (ulonglong)DAT_1826707a8;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0x2550e14)) ^ uVar21 | uVar46) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x410) = uVar21;
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar21 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x407bb955)) ^ uVar30 ^ uVar19 ^ uVar31 ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x307c0e60)) = uVar21;
  uVar19 = (CONCAT44(uVar22,uVar27) ^ 0x1b8bdc0b2fbc7f2e) + (uVar30 ^ uVar21);
  *(ulonglong *)(lVar3 + -0xce0) = uVar19 ^ CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar13 = DAT_182670824;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xcf83fb07)) ^ uVar23) +
       (CONCAT44(uVar11,uVar12) ^ 0xd90a7f837abfe927) ^ uVar35;
  lVar2 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar18 = *(ulonglong *)(DAT_1826707a0 + -0x3b0);
  uVar46 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0x307c0028)) ^ uVar35) + uVar19 ^ uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar46;
  uVar28 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar19 << (((byte)uVar7 ^ 0x81) & 0x3f) ^ uVar28;
  *(undefined8 *)(lVar2 + -0xd88) = 0xec3f71c6d40a68d0;
  uVar19 = uVar19 >> ((local_res18 ^ 0x74) & 0x3f);
  uVar21 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar2 + -0xf0) = uVar19 ^ uVar39;
  uVar14 = DAT_182670a9c;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0xbcffd828)) ^ uVar28 | uVar19) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x118) = uVar28;
  uVar13 = DAT_182670984;
  uVar21 = uVar46 ^ uVar20 ^ uVar28 ^ uVar21 ^ uVar30;
  *(ulonglong *)(lVar2 + -0x610) = uVar21;
  *(ulonglong *)(lVar2 + -0xd38) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar47 ^ 0xfffff4f7)) ^ CONCAT44(uVar13,uVar13)) ^
       CONCAT44(uVar14,uVar14);
  uVar28 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (CONCAT44(uVar8,uVar8) ^ 0x6bd92c6ce557ff6d) + (uVar17 ^ uVar18) ^ uVar28;
  uVar31 = (CONCAT44(uVar22,uVar12) ^ 0x1ac909937cfb02cd) +
           (uVar31 ^ *(ulonglong *)(lVar2 + -0x9e0));
  *(ulonglong *)(lVar2 + -0x558) = uVar31 ^ uVar38;
  uVar18 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar2 + -0x410) = (uVar21 ^ uVar20) - (CONCAT44(uVar5,uVar9) ^ 0x4058d5f4a579143c);
  uVar47 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar2 + -0xcf8) = (*puVar24 ^ uVar28) + uVar31 ^ uVar47;
  uVar13 = DAT_182670aa4;
  *(ulonglong *)(lVar2 + -0x660) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0x307c0420)) ^ uVar28 | uVar21 ^ uVar20;
  uVar21 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - (uVar18 ^ 0x407bb205)) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0xbcffd520)) ^ uVar28) << 0x21 ^ uVar21;
  uVar13 = DAT_182670ab0;
  uVar18 = (uVar28 ^ *(ulonglong *)(lVar2 + -0x6b8)) >> ((local_res18 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar2 + -0xce0) = uVar18 ^ CONCAT44(DAT_182670950,DAT_182670950);
  uVar21 = (uVar18 | uVar21 ^ *(ulonglong *)(lVar2 + -0x2b0)) ^ uVar28;
  uVar18 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xd88) = uVar21;
  uVar13 = DAT_18267086c;
  uVar5 = DAT_1826707d4;
  uVar4 = DAT_1826707c4;
  uVar28 = *puVar34 ^ uVar21 ^ uVar18 ^ uVar47 ^ uVar28;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar28;
  uVar21 = CONCAT44(uVar13,uVar13);
  uVar44 = uVar5 | uVar4;
  DAT_1826707b4 = uVar44;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar44 ^ 0xcf83fd0f)) =
       (*(ulonglong *)(lVar2 + -0x630) ^ uVar30) + (uVar28 ^ uVar18) ^ uVar21;
  uVar13 = DAT_182670aa0;
  *(ulonglong *)(lVar2 + -0x118) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x8c83db4f)) ^ uVar18) << 0x2e ^ uVar33;
  lVar2 = DAT_1826707a0;
  uVar18 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar4 ^ 0x4303f6d7)) ^ uVar18) >>
           (((byte)uVar5 ^ 0xed) & 0x3f);
  uVar30 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar18 ^ CONCAT44(uVar13,uVar13);
  uVar28 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar44 ^ 0xcf83fce7)) ^ uVar33 | uVar18) ^ uVar30;
  uVar18 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar2 + -0x3b0) = uVar28;
  *(ulonglong *)(lVar2 + -0x9e0) = uVar18 ^ *(ulonglong *)(lVar2 + -0xf0) ^ uVar28 ^ uVar30 ^ uVar21
  ;
  uVar18 = CONCAT44(DAT_182670800,DAT_182670800);
  *(uint *)(lVar2 + -0x43c) = (uVar44 ^ 0x4a7b0dc) + *(int *)(lVar2 + -0x280);
  uVar13 = DAT_182670930;
  *(ulonglong *)(lVar2 + -0x410) =
       (*(ulonglong *)(lVar2 + -0x610) ^ uVar20) + (*(ulonglong *)(lVar2 + -0xcf8) ^ uVar47) ^
       uVar18;
  uVar15 = DAT_182670a48;
  uVar14 = DAT_1826709a0;
  uVar18 = (*(ulonglong *)(lVar2 + -0x610) ^ uVar20) >> (((byte)uVar5 ^ 0xcb) & 0x3f);
  uVar28 = (*(ulonglong *)(lVar2 + -0x610) ^ uVar20) << 0xc;
  *(ulonglong *)(lVar2 + -0x558) = uVar28 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x660) = uVar18 ^ CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar43) * 4) = uVar40;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x4303fbdf)) =
       (uVar18 | uVar28) ^ CONCAT44(uVar14,uVar14);
  return;
}



############ FUN_ 180d2a440 size=4242 ############

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

void FUN_180d2a440(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  byte bVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint *puVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  uint *puVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint *puVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  
  uVar32 = DAT_18267085c;
  uVar7 = DAT_1826707e4;
  uVar6 = DAT_1826707e0;
  uVar5 = DAT_1826707dc;
  uVar4 = DAT_1826707d8;
  uVar36 = DAT_1826707b8;
  uVar18 = DAT_1826707a8;
  lVar2 = DAT_1826707a0;
  uVar40 = (ulonglong)DAT_1826707dc;
  uVar19 = (ulonglong)DAT_1826707e0;
  uVar24 = (ulonglong)DAT_1826707e4;
  uVar38 = (ulonglong)DAT_1826707d8;
  uVar25 = (ulonglong)DAT_1826707b8;
  uVar12 = DAT_1826707dc * DAT_1826707e0;
  uVar21 = DAT_1826707d8 | DAT_1826707b8;
  uVar39 = DAT_1826707e4 << 0x10 | DAT_1826707e4 >> 0x10;
  DAT_1826707ec =
       (DAT_1826707a8 << 0x10 | DAT_1826707a8 & 0xff00) << 8 | DAT_1826707a8 >> 8 & 0xff00 |
       DAT_1826707a8 >> 0x18;
  uVar31 = *(uint *)(&DAT_18260f758 + DAT_182670c58) ^ DAT_1826707ec;
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670c58) ^ DAT_1826707a8;
  uVar28 = (uint)((byte)DAT_182670928 ^ *(byte *)(DAT_1826707a0 + -0x619));
  uVar14 = DAT_18267089c ^ *(uint *)(DAT_1826707a0 + -0x814);
  DAT_1826707c0 = uVar12;
  DAT_1826707c8 = uVar39;
  DAT_1826707d4 = uVar21;
  *(uint *)(DAT_1826707a0 + -0x42c) = uVar28 ^ DAT_18267085c;
  *(uint *)(lVar2 + -0x7e4) = uVar14 + (uVar39 ^ 0x4db60c07) ^ DAT_182670870;
  lVar2 = DAT_1826707a0;
  uVar15 = (ulonglong)uVar21;
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       CONCAT44(uVar21,uVar4) ^ 0x9f48b427c92c385e | CONCAT44(uVar36,uVar6) ^ 0x216a2129adbe8f6f;
  *(uint *)(lVar2 + -0x43c) = uVar28 << (((byte)uVar7 ^ 0x83) & 0x1f) ^ DAT_1826708f0;
  uVar28 = *(uint *)(lVar2 + -0x8e0) ^ _DAT_182670ad4;
  *(uint *)(lVar2 + -0x2d4) = uVar28 | 0x45975e12;
  puVar26 = (uint *)(lVar2 - (uVar25 ^ 0xeb12ff31));
  uVar14 = (*puVar26 ^ DAT_182670870) -
           (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0x8042007c)) ^ DAT_1826708f0) ^
           DAT_18267084c;
  *(uint *)(DAT_1826707a0 + -0x3d4) = uVar14;
  uVar33 = DAT_1826708d8;
  lVar2 = DAT_1826707a0;
  puVar34 = (uint *)(DAT_1826707a0 - (uVar24 ^ 0x4124850a));
  *puVar34 = (uVar14 ^ DAT_18267084c) * uVar28 ^ DAT_1826708d8;
  uVar28 = DAT_182670804;
  uVar32 = (*(uint *)(lVar2 + -0x42c) ^ uVar32) * (uVar12 ^ 0x1dd24bcf) ^ DAT_182670994;
  *(ulonglong *)(lVar2 + -0x4c8) =
       CONCAT44(uVar12,uVar5) ^ 0x66c39d883742e07d | *(ulonglong *)(lVar2 + -0x68);
  *(uint *)(lVar2 + -0x9ec) = uVar32;
  uVar35 = DAT_182670a5c;
  uVar14 = DAT_1826707a8;
  uVar33 = (uVar32 ^ DAT_182670994) + (uVar33 ^ *(uint *)(lVar2 + -0x398));
  *(uint *)(lVar2 + -0x280) = uVar33 ^ DAT_182670a5c;
  uVar32 = *(uint *)(lVar2 - (uVar38 ^ 0xed5dba65));
  uVar16 = (ulonglong)DAT_182670acc;
  uVar33 = uVar33 >> (((byte)(uVar18 >> 0x18) ^ 0xb9) & 0x1f) ^ DAT_18267093c;
  uVar18 = (*(uint *)(lVar2 + -0x8e0) ^ _DAT_182670ad4) +
           (DAT_182670848 ^ *(uint *)(lVar2 + -0xb54)) ^ DAT_182670944;
  *(uint *)(lVar2 + -0x14) = uVar18;
  uVar18 = uVar18 ^ DAT_182670968 ^ DAT_182670944;
  uVar32 = (uVar32 ^ uVar35) << 0xd ^ DAT_182670ae8;
  *(uint *)(lVar2 + -0x540) = uVar32;
  uVar32 = uVar32 ^ DAT_182670ae8;
  *(uint *)(lVar2 + -0xa34) = uVar18;
  *(uint *)(lVar2 + -0x68c) = uVar33;
  uVar32 = (uVar32 | uVar33 ^ DAT_18267093c) ^ DAT_182670a54;
  *(uint *)(lVar2 + -0xc0c) = uVar32;
  *(uint *)(lVar2 - (uVar19 ^ 0xaae6710b)) = uVar32 ^ DAT_182670a1c ^ DAT_182670a54;
  *(uint *)(lVar2 + -0x814) = *(uint *)(lVar2 + -0xa34) ^ uVar28 ^ DAT_182670968;
  uVar32 = DAT_182670824;
  uVar35 = *(uint *)(lVar2 + -0xc34) ^ DAT_182670824 ^ DAT_182670a1c;
  *(uint *)(DAT_1826707a0 + -0x2d4) = uVar35;
  uVar33 = DAT_182670a8c;
  bVar1 = (byte)DAT_18267082c;
  lVar2 = DAT_1826707a0;
  uVar23 = (ulonglong)uVar39;
  *(ulonglong *)(DAT_1826707a0 + -0xdb8) =
       (CONCAT44(uVar14,uVar7) ^ 0xaae67d3f41248692) * 0x20 +
       (CONCAT44(uVar39,uVar21) ^ 0x86924124ef5ff8ef) + *(longlong *)(DAT_1826707a0 + -0x30) ^
       uVar16;
  lVar3 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar36 ^ 0xeb12f56d)) ^ uVar16) ^ bVar1 ^
       (byte)DAT_182670adc;
  uVar18 = DAT_1826707ec ^ 0xf459ab89;
  *(uint *)(lVar3 + -0x7e4) = (*(byte *)(lVar3 - (uVar15 ^ 0xef5ff4c0)) ^ bVar1) ^ uVar33;
  *(uint *)(lVar3 + -0x43c) = (uVar35 ^ uVar32) + uVar18 ^ DAT_182670a0c;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xaae675af)) =
       (CONCAT44(uVar21,uVar5) ^ 0xaaad2d9bba3a5769) + 0x91616dfe9c827081;
  *(uint *)(lVar3 + -0x3d4) =
       (*(uint *)(lVar3 + -0x7e4) ^ uVar33) << (((byte)uVar36 ^ 0xc4) & 0x1f) ^ DAT_1826708b8;
  *(uint *)(lVar3 + -0x42c) =
       (*(uint *)(lVar3 + -0x43c) ^ DAT_182670a0c) -
       (*(uint *)(lVar3 - (uVar19 ^ 0xaae67eeb)) ^ DAT_1826708b8) ^ DAT_182670850;
  uVar18 = DAT_182670980;
  uVar35 = (*(uint *)(lVar3 - ((ulonglong)uVar12 ^ 0x1dd24fec)) ^ DAT_182670850) *
           (uVar28 ^ *(uint *)(lVar3 + -0x814));
  *(uint *)(lVar3 + -0x398) = uVar35 ^ _DAT_182670b10;
  uVar33 = (*puVar26 ^ uVar33) * 0x1a ^ DAT_182670b00;
  *(uint *)(lVar3 + -0x9ec) = uVar33;
  *(uint *)(lVar3 + -0x280) = (uVar33 ^ DAT_182670b00) + uVar35 ^ uVar18;
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x86924a54)) =
       (CONCAT44(uVar4,uVar14) ^ 0x95613a158a70678e) >>
       ((byte)*(undefined8 *)(lVar3 + -0x220) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar33 = (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0x804206c0)) ^ uVar18) <<
           (((byte)(uVar7 >> 0x10) ^ 0x29) & 0x1f) ^ DAT_18267088c;
  uVar18 = (*(uint *)(DAT_1826707a0 + -0x280) ^ uVar18) >> (((byte)uVar5 ^ 0x53) & 0x1f) ^
           DAT_1826708dc;
  *(uint *)(DAT_1826707a0 + -0x68c) = uVar18;
  uVar18 = uVar18 ^ DAT_1826708dc;
  *(uint *)(lVar2 + -0x540) = uVar33;
  *(uint *)(lVar2 + -0x8e0) = (uVar18 | uVar33 ^ DAT_18267088c) ^ DAT_182670a58;
  *(uint *)(lVar2 + -0x14) =
       (*(uint *)(lVar2 - ((ulonglong)uVar4 ^ 0xed5db0f1)) ^ uVar28) +
       (DAT_182670848 ^ *(uint *)(lVar2 + -0xb54)) ^ uVar32;
  *(uint *)(lVar2 + -0xc0c) =
       *(uint *)(lVar2 - ((ulonglong)uVar14 ^ 0xaae67d2b)) ^ DAT_1826709e8 ^ uVar32;
  uVar10 = DAT_182670ae4;
  uVar28 = DAT_182670ab8;
  uVar32 = *(uint *)(lVar2 - (uVar24 ^ 0x41248e72)) ^ DAT_182670864 ^ DAT_182670a58;
  *(uint *)(lVar2 + -0xa34) = uVar32;
  uVar32 = uVar32 ^ DAT_182670854 ^ DAT_182670864;
  uVar16 = (ulonglong)DAT_1826709b0;
  *(uint *)(lVar2 + -0xc34) = *(uint *)(lVar2 - (uVar25 ^ 0xeb12f4d9)) ^ uVar10 ^ DAT_1826709e8;
  *(uint *)(lVar2 + -0x2d4) = uVar32;
  bVar1 = (byte)DAT_182670808;
  pbVar20 = (byte *)(*(longlong *)(lVar2 + -0x30) + 5);
  *(ulonglong *)(lVar2 + -0x4f8) = (ulonglong)pbVar20 ^ uVar16;
  *(byte *)(lVar2 + -0x619) = *pbVar20 ^ bVar1 ^ (byte)DAT_182670adc;
  *(uint *)(lVar2 + -0x43c) = (*(byte *)(lVar2 - (uVar15 ^ 0xef5ffeec)) ^ bVar1) ^ uVar28;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xaae67b5f)) =
       *(ulonglong *)(lVar2 + -0x610) >> ((byte)*(undefined8 *)(lVar2 + -0xbb0) & 0x3f);
  *(uint *)(lVar2 - ((ulonglong)uVar4 ^ 0xed5dbb31)) =
       (*(uint *)(lVar2 + -0x2d4) ^ DAT_182670854) + (uVar12 ^ 0xd6f606e3) ^ _DAT_1826708bc;
  uVar18 = *(uint *)(lVar2 + -0x3d4) ^ _DAT_1826708bc;
  uVar32 = (*(uint *)(lVar2 + -0x43c) ^ uVar28) << (((byte)uVar4 ^ 0xf4) & 0x1f) ^ _DAT_1826709e0;
  *(uint *)(lVar2 + -0x42c) = uVar32;
  uVar29 = uVar18 - (uVar32 ^ _DAT_1826709e0) ^ DAT_182670a78;
  *(uint *)(lVar2 + -0x7e4) = uVar29;
  uVar33 = DAT_182670a04;
  uVar32 = DAT_1826707ec;
  uVar29 = uVar29 ^ DAT_182670a78;
  uVar27 = (ulonglong)DAT_1826707ec;
  *(longlong *)(lVar2 + -0x588) =
       *(longlong *)(lVar2 - ((ulonglong)uVar12 ^ 0x1dd24070)) + *(longlong *)(lVar2 + -0xbb0);
  uVar18 = DAT_182670874;
  uVar35 = DAT_1826707e0 ^ 0xaae67d3a;
  *(uint *)(lVar2 + -0x398) = (*(uint *)(lVar2 - (uVar15 ^ 0xef5ff4c1)) ^ uVar10) * uVar29 ^ uVar33;
  uVar28 = (*(uint *)(lVar2 + -0x43c) ^ uVar28) * uVar35 ^ DAT_182670838;
  *(uint *)(lVar2 + -0x9ec) = uVar28;
  *(uint *)(lVar2 + -0x280) =
       (*(uint *)(lVar2 - (uVar40 ^ 0x804207d8)) ^ uVar33) + (uVar28 ^ DAT_182670838) ^ uVar18;
  bVar17 = (byte)DAT_1826707a8 ^ 0x2c;
  uVar28 = (*(uint *)(lVar2 - (uVar23 ^ 0x869243a4)) ^ uVar18) << (((byte)uVar21 ^ 0xf8) & 0x1f) ^
           DAT_182670a20;
  uVar18 = (*(uint *)(lVar2 + -0x280) ^ uVar18) >> (bVar17 & 0x1f) ^ DAT_182670a84;
  *(uint *)(lVar2 + -0x68c) = uVar18;
  uVar18 = uVar18 ^ DAT_182670a84;
  *(ulonglong *)(lVar2 + -0x9e0) =
       (CONCAT44(uVar32,uVar32) ^ 0x513c3396c78cce64) >>
       ((byte)*(undefined8 *)(lVar2 + -0x420) & 0x3f);
  *(uint *)(lVar2 + -0x540) = uVar28;
  puVar30 = (uint *)(lVar2 - (uVar23 ^ 0x86924930));
  *puVar30 = (*(uint *)(lVar2 - (uVar19 ^ 0xaae6787f)) ^ DAT_182670a20 | uVar18) ^ DAT_18267094c;
  uVar29 = DAT_182670b08;
  uVar28 = DAT_1826708a8;
  uVar18 = DAT_182670898;
  lVar3 = DAT_1826707a0;
  uVar35 = (*(uint *)(lVar2 + -0xc34) ^ uVar10) + (DAT_182670848 ^ *(uint *)(lVar2 + -0xb54)) ^
           DAT_182670a74;
  uVar22 = DAT_182670828 ^ DAT_18267094c;
  *(uint *)(lVar2 + -0x14) = uVar35;
  *(uint *)(lVar2 + -0x8e0) = uVar35 ^ DAT_1826708c4 ^ DAT_182670a74;
  *(uint *)(lVar2 - (uVar24 ^ 0x41248a9e)) = uVar22 ^ *(uint *)(lVar2 + -0x814);
  uVar23 = (ulonglong)DAT_182670944;
  *(uint *)(lVar2 + -0xa34) = uVar28 ^ *(uint *)(lVar2 + -0x8e0) ^ DAT_1826708c4;
  *(uint *)(lVar2 + -0x2d4) = *(uint *)(lVar2 + -0xc0c) ^ DAT_182670818 ^ DAT_182670828;
  *(ulonglong *)(lVar3 + -0xd38) =
       *(ulonglong *)(CONCAT44(uVar29,uVar29) ^ *(ulonglong *)(lVar3 + -0x428)) ^
       CONCAT44(uVar10,uVar10);
  uVar35 = DAT_182670a40;
  uVar22 = DAT_182670a40 & 0xff;
  *(ulonglong *)(lVar3 + -0x428) = CONCAT44(uVar5,uVar12) ^ 0x1ae0b22c8e8a7934;
  *(ulonglong *)(lVar3 + -0x2e8) = *(longlong *)(lVar3 + -0x30) + 0x10U ^ uVar23;
  uVar16 = (ulonglong)DAT_1826707a8;
  *(byte *)(lVar3 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0xed5dba0d)) ^ uVar23) ^ (byte)uVar35 ^
       (byte)DAT_182670adc;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xaae67877)) =
       CONCAT44(uVar4,uVar36) ^ 0x115072c41e18eccc | *(ulonglong *)(lVar3 + -0x660);
  uVar22 = uVar22 ^ *(byte *)(lVar3 + -0xc35);
  uVar36 = *(uint *)(lVar3 + -0x2d4) ^ DAT_182670818;
  *(uint *)(lVar3 + -0x3d4) = uVar22 ^ uVar18;
  bVar1 = (byte)uVar12;
  uVar37 = uVar36 + (DAT_1826707e4 ^ 0x8a00cbb1) ^ DAT_182670a94;
  uVar22 = uVar22 << ((bVar1 ^ 0xd1) & 0x1f) ^ DAT_182670914;
  uVar23 = 0x9e8e39a8b7564c3 >> ((byte)*(undefined8 *)(lVar3 + -0xcf8) & 0x3f);
  *(uint *)(lVar3 + -0x42c) = uVar37;
  uVar37 = uVar37 ^ DAT_182670a94;
  *(ulonglong *)(lVar3 + -0xa18) = uVar23;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar23 << 0xb;
  uVar36 = DAT_182670a64;
  *(uint *)(lVar3 + -0x7e4) = uVar22;
  uVar37 = uVar37 - (uVar22 ^ DAT_182670914);
  *(uint *)(lVar3 + -0x43c) = uVar37 ^ DAT_182670af8;
  uVar37 = uVar37 * (*(uint *)(lVar3 + -0xa34) ^ uVar28);
  puVar26 = (uint *)(lVar3 - (uVar27 ^ 0x3f7de026));
  *(ulonglong *)(lVar3 + -0xd88) =
       0x2319985c13724253 - (CONCAT44(uVar4,uVar32) ^ 0x63162bf30e2ff7ce);
  *(uint *)(lVar3 + -0x398) = uVar37 ^ uVar36;
  uVar32 = (*(uint *)(lVar3 - (uVar24 ^ 0x41248546)) ^ uVar18) * (DAT_1826707ec ^ 0x3f7de6ba) ^
           _DAT_1826708c8;
  *(uint *)(lVar3 + -0x9ec) = uVar32;
  *(uint *)(lVar3 + -0x280) = uVar37 + (uVar32 ^ _DAT_1826708c8) ^ uVar29;
  *puVar26 = (*(uint *)(lVar3 - (uVar25 ^ 0xeb12fa55)) ^ uVar29) <<
             (((byte)DAT_1826707a8 ^ 0x32) & 0x1f) ^ uVar33;
  lVar2 = DAT_1826707a0;
  *(uint *)(lVar3 - (uVar40 ^ 0x80420100)) =
       (*(uint *)(lVar3 + -0x280) ^ uVar29) >> ((bVar1 ^ 0xd3) & 0x1f) ^ DAT_1826708d0;
  *(ulonglong *)(lVar3 + -0xf0) =
       CONCAT44(uVar39,uVar39) ^ *(ulonglong *)(lVar3 + -0x220) ^ 0x817cee4ba383e188;
  lVar3 = DAT_1826707a0;
  uVar32 = DAT_182670848 ^ *(uint *)(lVar2 + -0xb54);
  *(uint *)(lVar2 + -0xc34) =
       (*(uint *)(lVar2 - ((ulonglong)uVar12 ^ 0x1dd24e80)) ^ DAT_1826708d0 |
       *(uint *)(lVar2 - (uVar38 ^ 0xed5dbe69)) ^ uVar33) ^ DAT_1826709f4;
  uVar18 = (*(uint *)(lVar2 + -0xa34) ^ uVar28) + uVar32 ^ DAT_182670a30;
  *(uint *)(lVar2 + -0x14) = uVar18;
  uVar32 = *puVar26;
  *(uint *)(lVar2 + -0x8e0) = uVar18 ^ DAT_182670a30 ^ DAT_182670864;
  *(uint *)(lVar2 + -0x814) = (uVar32 ^ uVar33) + 0xc2c8e06f;
  *(uint *)(lVar3 - (uVar15 ^ 0xef5ff4f9)) =
       *(uint *)(lVar2 - (uVar24 ^ 0x41248aa6)) ^ DAT_182670aa8 ^ DAT_1826709f4;
  uVar32 = *(uint *)(lVar3 + -0xc0c) ^ DAT_18267081c ^ DAT_182670aa8;
  *(uint *)(lVar3 + -0x2d4) = uVar35 ^ *(uint *)(lVar3 + -0x8e0) ^ DAT_182670864;
  *(uint *)(lVar3 - (uVar19 ^ 0xaae67913)) = uVar32;
  bVar9 = (byte)DAT_182670ab0;
  uVar18 = DAT_18267087c;
  pbVar20 = (byte *)(*(longlong *)(lVar3 - ((ulonglong)uVar12 ^ 0x1dd24bf0)) +
                     (CONCAT44(uVar14,uVar4) ^ 0xaae67d3fed5db8e5) * 0x20 +
                    (CONCAT44(uVar21,uVar5) ^ 0xef5ff8f58042045b));
  *(ulonglong *)(lVar3 + -0x270) = (ulonglong)pbVar20 ^ (ulonglong)DAT_182670a3c;
  bVar11 = *pbVar20 ^ bVar9 ^ (byte)DAT_182670adc;
  *(byte *)(lVar3 + -0x619) = bVar11;
  uVar36 = (uint)(bVar9 ^ bVar11);
  *(uint *)(lVar3 + -0x43c) =
       (*(uint *)(lVar3 + -0x42c) ^ DAT_18267081c) + (uVar39 ^ 0x4db60c07) ^ DAT_1826709d4;
  *(uint *)(lVar3 + -0x7e4) = uVar36 ^ uVar18;
  uVar32 = DAT_1826709cc;
  lVar2 = DAT_1826707a0;
  puVar26 = (uint *)(DAT_1826707a0 - (uVar40 ^ 0x80420794));
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (CONCAT44(uVar4,uVar14) ^ 0x7480495f1e7d6669) >> (((byte)uVar21 ^ 0xe0) & 0x3f);
  *puVar26 = uVar36 << 0x11 ^ uVar32;
  uVar15 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar2 + -0x398) =
       (*(uint *)(lVar2 + -0x43c) ^ DAT_1826709d4) - (uVar32 ^ *(uint *)(lVar2 + -0x3d4)) ^
       DAT_182670a78;
  uVar32 = *(uint *)(lVar2 - (uVar15 ^ 0xd720fb28));
  uVar14 = *puVar34 ^ DAT_182670a78;
  *(ulonglong *)(lVar2 + -0x3b0) =
       (CONCAT44(uVar7,uVar6) ^ 0x6be5c4d70213c46a) - (CONCAT44(uVar5,uVar4) ^ 0x1c207d0cb3c95069);
  uVar32 = (uVar32 ^ uVar35) * uVar14 ^ DAT_1826709b8;
  *(uint *)(lVar2 + -0x9ec) = uVar32;
  uVar18 = (*(uint *)(lVar2 + -0x7e4) ^ uVar18) * (uVar12 ^ 0x1dd24bdb) ^ DAT_182670a00;
  *(uint *)(lVar2 + -0x280) = uVar18;
  uVar8 = DAT_182670a7c;
  uVar32 = (uVar18 ^ DAT_182670a00) + (uVar32 ^ DAT_1826709b8) ^ DAT_182670908;
  *(uint *)(lVar2 + -0x540) = uVar32;
  uVar32 = uVar32 ^ DAT_182670908;
  uVar18 = uVar32 << ((bVar1 ^ 0xcd) & 0x1f) ^ DAT_1826709c4;
  uVar15 = *(ulonglong *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0xa58));
  *(uint *)(lVar2 + -0xa34) = uVar18;
  uVar18 = uVar18 ^ DAT_1826709c4;
  *(ulonglong *)(lVar2 + -0x658) = uVar15 ^ CONCAT44(uVar10,uVar10);
  uVar14 = uVar32 >> (bVar17 & 0x1f) ^ DAT_182670878;
  *(uint *)(lVar2 + -0x68c) = uVar32 + 0x22260626;
  *(uint *)(lVar2 + -0x814) = uVar14;
  uVar32 = *puVar30 ^ DAT_182670878;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar31;
  *(uint *)(lVar2 + -0x14) = (uVar18 | uVar32) ^ DAT_182670aac;
  return;
}



############ FUN_ 180d3c220 size=6003 ############

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

void FUN_180d3c220(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte bVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  byte local_f0;
  byte local_e0;
  
  uVar10 = DAT_1826707f0;
  uVar11 = DAT_1826707ec;
  uVar18 = DAT_1826707dc;
  uVar9 = DAT_1826707d4;
  uVar8 = DAT_1826707d0;
  lVar6 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707f0;
  uVar46 = (ulonglong)DAT_1826707dc;
  uVar41 = (ulonglong)DAT_1826707ec;
  uVar22 = (ulonglong)DAT_1826707f4;
  uVar24 = (ulonglong)DAT_1826707d4;
  uVar40 = DAT_1826707dc | DAT_1826707f4;
  uVar27 = DAT_1826707ec ^ DAT_1826707d0;
  uVar25 = DAT_1826707b0 | DAT_1826707d4;
  uVar44 = (DAT_1826707f0 << 0x10 | DAT_1826707f0 & 0xff00) << 8 | DAT_1826707f0 >> 8 & 0xff00 |
           DAT_1826707f0 >> 0x18;
  uVar5 = *(uint *)(&DAT_18260f758 + DAT_182670c8c);
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670c8c) ^ DAT_1826707dc;
  uVar32 = CONCAT44(DAT_182670a34,DAT_182670a34);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x220);
  uVar21 = (ulonglong)DAT_1826707d0;
  DAT_1826707ac = uVar27;
  DAT_1826707c8 = uVar44;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ec ^ 0x856bd7b)) =
       (CONCAT44(DAT_182670af8,DAT_182670af8) ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) <<
       (((byte)uVar27 ^ 0x4e) & 0x3f) ^ uVar32;
  uVar19 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  uVar35 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar28 = *(ulonglong *)(lVar6 - (uVar21 ^ 0x412c0417)) ^ uVar19 | uVar32 ^ *puVar1;
  uVar20 = CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar42 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar32 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar6 + -0x1b8) = uVar28 ^ uVar35;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0x163e2c84)) =
       (uVar20 ^ *(ulonglong *)(lVar6 + -0x6f0)) - uVar28 ^ uVar42;
  uVar12 = DAT_182670a94;
  uVar20 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar32 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar26 = CONCAT44(DAT_182670888,DAT_182670888);
  puVar2 = (ulonglong *)(lVar6 + -0xce0);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xde3cefa1)) =
       uVar26 ^ uVar32 ^ uVar20 ^ *(ulonglong *)(lVar6 + -0xc18) ^ *(ulonglong *)(lVar6 + -0xf0);
  uVar13 = DAT_182670ab4;
  puVar3 = (ulonglong *)(lVar6 + -0x660);
  *(ulonglong *)(lVar6 + -0x9c8) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0x412c045f)) ^ CONCAT44(DAT_182670954,DAT_182670954)) +
       (CONCAT44(uVar12,uVar12) ^ *puVar2);
  uVar12 = DAT_182670a44;
  uVar38 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x7d8) = (*puVar3 ^ uVar20) >> (((byte)uVar10 ^ 0x4c) & 0x3f) ^ uVar38;
  lVar6 = DAT_1826707a0;
  uVar28 = (*puVar3 ^ uVar20) << (((byte)uVar10 ^ 0x74) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x118) = uVar28 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0xbb0) =
       CONCAT44(uVar8,uVar27) ^ 0xa2290df3411f43c2 | CONCAT44(uVar25,uVar10) ^ 0x44f7ec68068d4af1;
  lVar7 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670828,DAT_182670828);
  puVar34 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  puVar17 = (ulonglong *)(DAT_1826707a0 - (uVar46 ^ 0xbc213876));
  uVar28 = *(ulonglong *)(lVar6 - (uVar22 ^ 0x68ceae2)) ^ uVar38 | uVar28;
  puVar4 = (ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar28 ^ uVar36;
  uVar12 = DAT_1826709cc;
  *puVar4 = *puVar17 ^ uVar20 | uVar42 ^ *(ulonglong *)(lVar7 + -0xd38);
  uVar20 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707b0 ^ 0x163e247c)) =
       (uVar26 ^ *puVar34) - uVar28 ^ uVar20;
  uVar39 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  puVar17 = (ulonglong *)(lVar7 - (uVar41 ^ 0x856b7cb));
  *puVar17 = uVar39 ^ uVar36 ^ uVar42 ^ *(ulonglong *)(lVar7 + -0xd38) ^
             *(ulonglong *)(lVar7 + -0x6b8);
  uVar28 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  *(ulonglong *)(lVar7 - (uVar24 ^ 0xde3ce2b1)) =
       (*(ulonglong *)(lVar7 - (uVar31 ^ 0xa9f7acd0)) ^ uVar39) >> (((byte)uVar8 ^ 0x1e) & 0x3f) ^
       uVar28;
  lVar6 = DAT_1826707a0;
  bVar23 = (byte)uVar18;
  uVar26 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar44 ^ 0x40a4f389)) =
       (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) << ((bVar23 ^ 0x31) & 0x3f) ^ uVar26;
  uVar26 = uVar26 ^ *(ulonglong *)(lVar6 + -0x420) | uVar28 ^ *(ulonglong *)(lVar6 + -0xb70);
  uVar36 = CONCAT44(DAT_182670820,DAT_182670820);
  uVar28 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(lVar6 + -0x588) = uVar26 ^ uVar36;
  uVar16 = DAT_1826707b0;
  *(ulonglong *)(lVar6 + -0x610) =
       (uVar42 ^ *(ulonglong *)(lVar6 + -0xd38)) -
       (*(ulonglong *)(lVar6 - (uVar22 ^ 0x68ce7fa)) ^ uVar28) ^ uVar32;
  bVar43 = (byte)(uVar10 >> 0x18);
  *puVar1 = (CONCAT44(uVar16,uVar25) ^ 0xf062c6e536fb426f) << ((bVar43 ^ 0xa6) & 0x3f);
  uVar45 = CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0x497abbac)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0xbc213806)) ^ uVar32) - uVar26 ^ uVar45;
  uVar12 = DAT_1826708b0;
  lVar6 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar21 = (*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x412c0607)) ^
           CONCAT44(DAT_182670a48,DAT_182670a48)) + (CONCAT44(uVar9,uVar11) ^ 0x3eea9d0395369a8e);
  puVar47 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar40 ^ 0xbeadfab6));
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar21 ^ uVar29;
  uVar18 = DAT_18267089c;
  uVar24 = CONCAT44(uVar12,uVar12);
  uVar32 = (ulonglong)DAT_18267089c;
  *puVar2 = (*puVar47 ^ uVar36) - uVar21 ^ uVar24;
  uVar26 = CONCAT44(uVar18,uVar18);
  uVar35 = *(ulonglong *)(lVar6 - ((ulonglong)uVar44 ^ 0x40a4f269)) ^ uVar26 ^
           *(ulonglong *)(lVar6 + -0x1b8) ^ uVar20 ^ uVar35;
  uVar21 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(lVar6 + -0x658) = uVar35;
  *(ulonglong *)(lVar6 + -0x9c8) = (uVar35 >> 0x20 ^ uVar32) >> 1 ^ uVar21;
  uVar12 = DAT_182670ad0;
  uVar32 = (uVar26 ^ uVar35) << 0x1f;
  *(ulonglong *)(lVar6 + -0xbb0) = uVar32 ^ CONCAT44(DAT_182670a40,DAT_182670a40);
  uVar13 = DAT_182670afc;
  lVar6 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar12,uVar12);
  puVar34 = (ulonglong *)(DAT_1826707a0 + -0x5c0);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar25 ^ 0xde3ee035)) ^ uVar21 | uVar32) ^ uVar35
  ;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - (uVar31 ^ 0xa9f7a558)) =
       (*puVar34 ^ uVar20) -
       (CONCAT44(DAT_182670810,DAT_182670810) ^ *(ulonglong *)(lVar6 + -0xd88)) ^ uVar32;
  lVar6 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar38 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar40 ^ 0xbeadfe26)) ^ uVar32) -
           (uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8));
  uVar42 = uVar38 ^ uVar36;
  *puVar3 = uVar42;
  uVar39 = (CONCAT44(uVar9,uVar44) ^ 0x21c3163ebf5b0858) - (*(ulonglong *)(lVar6 + -0x68) ^ uVar39);
  *puVar4 = uVar39 ^ CONCAT44(DAT_182670860,DAT_182670860);
  uVar26 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar32 = *(ulonglong *)(lVar6 + -0x6f0);
  uVar35 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0x497aba84)) ^ uVar35) + uVar39 ^ uVar26;
  uVar37 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar6 + -0xf0) = uVar35;
  uVar12 = DAT_182670928;
  uVar39 = uVar37 ^ uVar26 ^ uVar45 ^ uVar35 ^ uVar32;
  *(ulonglong *)(lVar6 + -0x6b8) = uVar39;
  uVar13 = DAT_182670a88;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar12,uVar12);
  uVar33 = (uVar37 ^ uVar39) >> (((byte)uVar9 ^ 0xc4) & 0x3f);
  uVar35 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar33 ^ uVar26;
  lVar7 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar39 = (uVar37 ^ uVar39) << ((bVar23 ^ 0x2d) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xb70) = uVar39 ^ uVar35;
  *(ulonglong *)(lVar7 + -0x420) = (*puVar17 ^ uVar26 | uVar39) ^ uVar30;
  *(ulonglong *)(lVar7 + -0xd38) = uVar38 | uVar33;
  uVar9 = DAT_182670848;
  uVar26 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar35 = (ulonglong)DAT_182670848;
  *puVar1 = (uVar45 ^ uVar32) - (*(ulonglong *)(lVar7 - (uVar46 ^ 0xbc213a36)) ^ uVar30) ^ uVar26;
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar39 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar24 = *puVar2 ^ uVar42 ^ uVar32 ^ uVar36 ^ uVar24;
  *(ulonglong *)(lVar6 + -0x610) = uVar24;
  uVar36 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar6 + -0x588) =
       (*(ulonglong *)(lVar6 - (uVar31 ^ 0xa9f7a250)) >> 0x20 ^ uVar35) >> 5 ^ uVar39;
  uVar12 = DAT_182670940;
  uVar31 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *(ulonglong *)(lVar6 + -0x1b8) = uVar33 << 0x30;
  uVar32 = (uVar24 ^ uVar32) << (((byte)uVar25 ^ 0xe6) & 0x3f);
  *(ulonglong *)(lVar6 + -0x658) = uVar32 ^ uVar36;
  uVar32 = *puVar47 ^ uVar39 | uVar32;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x9c8) = uVar32 ^ uVar31;
  uVar35 = CONCAT44(uVar16,DAT_1826707b0);
  *(ulonglong *)(lVar6 + -0xbb0) = uVar38 - uVar32 ^ uVar36;
  *(ulonglong *)(lVar6 - (uVar22 ^ 0x68ce8fa)) =
       (uVar35 ^ 0x96048f1e9dab586) - (CONCAT44(uVar11,uVar8) ^ 0x711851a38cd03f20);
  uVar12 = DAT_18267084c;
  uVar38 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar24 = CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar22 = uVar38 ^ uVar31 ^ uVar26 ^ *(ulonglong *)(lVar6 + -0x9c8) ^ *puVar1;
  *(ulonglong *)(lVar6 + -0x118) = uVar22;
  uVar16 = DAT_1826707b4;
  uVar32 = (ulonglong)DAT_1826707b4;
  *puVar4 = (uVar22 ^ uVar38) >> ((bVar43 ^ 0xbe) & 0x3f) ^ uVar24;
  uVar10 = DAT_1826707e8;
  uVar18 = DAT_1826707d8;
  uVar9 = DAT_1826707cc;
  uVar8 = DAT_1826707bc;
  uVar22 = (ulonglong)DAT_1826707e8;
  uVar25 = uVar16 & 3;
  uVar31 = (ulonglong)DAT_1826707d8;
  uVar35 = (ulonglong)DAT_1826707bc;
  if (uVar25 < 2) {
    uVar27 = DAT_1826707bc;
    if (uVar25 == 0) {
      uVar27 = uVar16;
    }
  }
  else {
    uVar27 = DAT_1826707d8;
    if (uVar25 < 3) {
      uVar27 = DAT_1826707e8;
    }
  }
  uVar39 = CONCAT44(DAT_182670a84,DAT_182670a84);
  DAT_1826707e4 = uVar27;
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xbfffa224)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707cc ^ 0x156a7559)) ^ uVar38) <<
       (((byte)uVar16 ^ 0x93) & 0x3f) ^ uVar39;
  uVar13 = DAT_1826709d8;
  uVar42 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(lVar6 + -0xf0) =
       (uVar39 ^ *(ulonglong *)(lVar6 + -0x7d8) | uVar24 ^ *puVar4) ^ uVar42;
  uVar14 = DAT_182670a64;
  uVar39 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (uVar26 ^ *puVar1) - (*(ulonglong *)(lVar6 - (uVar31 ^ 0x88348ef1)) ^ uVar42) ^ uVar39;
  uVar13 = DAT_182670890;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar30 = uVar33 ^ uVar36 ^ *(ulonglong *)(lVar6 + -0xbb0) ^ uVar30 ^
           *(ulonglong *)(lVar6 + -0x420);
  *(ulonglong *)(lVar6 + -0xb70) = uVar30;
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (uVar30 ^ uVar33) >> (((byte)uVar27 ^ 0xa4) & 0x3f) ^ uVar37;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (uVar33 ^ uVar30) << (((byte)uVar18 ^ 0x19) & 0x3f) ^ uVar26;
  local_f0 = (byte)uVar12;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0xcedd995a)) =
       (uVar33 ^ uVar30) << ((local_f0 ^ *(byte *)puVar4) & 0x3f);
  uVar30 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xbfffad6c)) =
       (uVar26 ^ *(ulonglong *)(lVar6 + -0x6f0) | uVar37 ^ *(ulonglong *)(lVar6 + -0xd38)) ^ uVar30;
  uVar33 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0x156a75f9)) =
       (uVar36 ^ *(ulonglong *)(lVar6 + -0xbb0)) -
       (*(ulonglong *)(lVar6 - (uVar22 ^ 0xed3a0e1c)) ^ uVar30) ^ uVar33;
  uVar32 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xbfffa3ec)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0xed3a0e1c)) ^ uVar32 ^ uVar30 ^ uVar39 ^
       *(ulonglong *)(lVar6 + -0x6b8);
  uVar30 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar6 + -0x658) =
       (*(ulonglong *)(lVar6 + -0x610) ^ uVar32) >> (((byte)uVar10 ^ 0xb8) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0x88348b89)) =
       (*(ulonglong *)(lVar6 + -0x610) ^ uVar32) << 0xc ^ uVar20;
  uVar32 = *(ulonglong *)(lVar6 + -0x6b8);
  uVar35 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar20 = *(ulonglong *)(lVar6 + -0x588) ^ uVar20 | uVar30 ^ *(ulonglong *)(lVar6 + -0x658);
  *puVar3 = uVar20 ^ uVar35;
  uVar12 = DAT_1826708a4;
  uVar26 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(lVar6 + -0x5c0) = (uVar39 ^ uVar32) - uVar20 ^ uVar26;
  uVar13 = DAT_182670a70;
  lVar6 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar20 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0xed3a0734)) ^
           *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0x156a74b1)) ^ uVar39 ^ uVar33 ^
           uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar20;
  uVar12 = DAT_1826708b8;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0x118) = (uVar20 ^ uVar39) >> (((byte)uVar9 ^ 0x78) & 0x3f) ^ uVar36;
  uVar32 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0xed3a0154)) =
       (uVar39 ^ uVar20) << (((byte)uVar8 ^ 0xfb) & 0x3f) ^ uVar32;
  uVar20 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(lVar6 - (uVar22 ^ 0xed3a04ac)) =
       (uVar32 ^ *(ulonglong *)(lVar6 + -0x7d8) | *(ulonglong *)(lVar6 + -0x118) ^ uVar36) ^ uVar20;
  uVar16 = DAT_182670864;
  uVar22 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar6 + -0x420) =
       (uVar33 ^ *(ulonglong *)(lVar6 + -0x1b8)) - (uVar20 ^ *puVar1) ^ uVar22;
  uVar32 = *(ulonglong *)(lVar6 - (uVar31 ^ 0x88348bc1)) ^ CONCAT44(uVar16,uVar16) ^ uVar20 ^ uVar26
           ^ *puVar1;
  *puVar4 = uVar32;
  uVar20 = *(ulonglong *)(lVar6 - (uVar31 ^ 0x88348ac9)) >> 0xe ^
           ((ulonglong)uVar16 << 0x12 | (ulonglong)(uVar16 >> 0xe));
  *(ulonglong *)(lVar6 + -0xb70) = uVar20 ^ uVar21;
  *puVar2 = (CONCAT44(uVar9,uVar8) ^ 0xa6e7ccd434e07842) >> (((byte)uVar10 ^ 0xb4) & 0x3f);
  uVar10 = DAT_1826707e0;
  uVar8 = DAT_1826707c4;
  lVar6 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707e0;
  uVar25 = DAT_1826707e0 - DAT_1826707c4;
  uVar21 = *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  uVar39 = (CONCAT44(uVar16,uVar16) ^ uVar32) << 0x32;
  uVar31 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar39 ^ CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar32 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  DAT_1826707c0 = uVar25;
  *(ulonglong *)(lVar6 + -0x6f0) = (uVar20 | uVar39) ^ uVar38;
  uVar12 = DAT_18267099c;
  lVar7 = DAT_1826707a0;
  uVar21 = (uVar21 ^ uVar26) - (uVar32 ^ *(ulonglong *)(lVar6 + -0x558));
  uVar16 = DAT_1826707ec << 0x10 | DAT_1826707ec >> 0x10;
  uVar20 = (ulonglong)uVar16;
  DAT_1826707b8 = uVar16;
  *(ulonglong *)(lVar6 + -0xbb0) = uVar21 ^ uVar31;
  uVar13 = DAT_182670ab8;
  uVar39 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar6 + -0x890) =
       uVar21 - (*(ulonglong *)(lVar6 - (uVar20 ^ 0xbf5b0ea6)) ^ uVar38) ^ uVar39;
  uVar21 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar25 ^ 0xe11e1885)) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0xbf5b0296)) ^ uVar28) +
       (CONCAT44(uVar11,uVar8) ^ 0xd680ade869a484dd) ^ uVar21;
  uVar33 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar25 ^ 0xe11e18cd)) =
       (*(ulonglong *)(lVar7 - (uVar41 ^ 0x856b9ab)) ^ uVar38) -
       (uVar21 ^ *(ulonglong *)(lVar7 + -0x610)) ^ uVar33;
  uVar32 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar18 = DAT_1826707ec ^ 0xc372f278;
  *(ulonglong *)(lVar7 + -0x588) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xde3cede1)) ^
       *(ulonglong *)(lVar7 - (uVar20 ^ 0xbf5b0e36)) ^ uVar32 ^ uVar22 ^ uVar35;
  *(uint *)(lVar7 - ((ulonglong)uVar16 ^ 0xbf5b0916)) = uVar18 + (uVar10 ^ 0x90a3c1c3);
  uVar14 = DAT_182670ac4;
  uVar21 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar31 = CONCAT44(DAT_182670a24,DAT_182670a24);
  *(ulonglong *)(lVar7 + -0x6b8) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0xbf5b0dde)) ^ uVar32) >>
       (((byte)uVar8 ^ 0xd1) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar7 - (uVar41 ^ 0x856bfab)) =
       (uVar32 ^ *(ulonglong *)(lVar7 + -0x588)) << 0x30 ^ uVar31;
  uVar26 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xde3ce009)) =
       (uVar31 ^ *(ulonglong *)(lVar7 + -0xf0) | uVar21 ^ *(ulonglong *)(lVar7 + -0x6b8)) ^ uVar26;
  uVar18 = DAT_1826707cc;
  *(ulonglong *)(lVar7 - (uVar20 ^ 0xbf5b094e)) =
       CONCAT44(uVar25,uVar8) ^ uVar26 ^ *(ulonglong *)(lVar7 + -0x9c8) ^ 0xbfe42b41caa06d91;
  uVar12 = DAT_1826708b4;
  uVar21 = (uVar22 ^ *(ulonglong *)(lVar7 + -0x420)) - (uVar29 ^ *(ulonglong *)(lVar7 + -0xc18));
  *(ulonglong *)(lVar7 + -0x7d8) = uVar21 ^ CONCAT44(DAT_182670a2c,DAT_182670a2c);
  uVar13 = DAT_182670a38;
  uVar20 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xde3ce879)) =
       uVar21 - (uVar26 ^ *(ulonglong *)(lVar7 + -0x9c8)) ^ uVar20;
  uVar21 = *(ulonglong *)(lVar7 + -0x9c8);
  uVar32 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *puVar1 = (CONCAT44(uVar16,uVar8) ^ 0x40a4f7a921c31633) -
            (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar7 + -0x438)) ^ uVar32;
  lVar6 = DAT_1826707a0;
  uVar27 = DAT_1826707cc | DAT_1826707b0;
  DAT_1826707a8 = uVar27;
  *puVar2 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar18 ^ 0x156a7661)) ^ uVar32) + (uVar26 ^ uVar21)
            ^ uVar19;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0x177e7135)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707b0 ^ 0x163e214c)) ^ uVar31) +
       0x96eeef7ca653c2bf;
  uVar12 = DAT_182670ae4;
  uVar19 = uVar39 ^ *puVar2 ^ uVar30 ^ *(ulonglong *)(lVar6 + -0x890) ^ uVar19;
  *(ulonglong *)(lVar6 + -0xb70) = uVar19;
  uVar16 = DAT_1826707b0;
  uVar21 = CONCAT44(uVar12,uVar12);
  bVar23 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x156a7979)) =
       (uVar19 ^ uVar30) >> (((byte)uVar27 ^ 0xdd) & 0x3f) ^ uVar21;
  uVar22 = (uVar30 ^ *(ulonglong *)(lVar6 + -0xb70)) << ((bVar23 ^ 0x9c) & 0x3f);
  uVar32 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar6 + -0x5c0) = uVar22 ^ CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar6 + -0xbb0) = (uVar21 ^ *(ulonglong *)(lVar6 + -0xd38) | uVar22) ^ uVar32;
  uVar21 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar16 ^ 0x163e274c)) =
       -0x1f62e24396d57dc3 - (CONCAT44(uVar9,uVar27) ^ 0xdba0130a95514715);
  uVar19 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar22 = (ulonglong)DAT_182670894;
  uVar26 = (uVar39 ^ *(ulonglong *)(lVar6 + -0x890)) -
           (*(ulonglong *)(lVar6 - (uVar21 ^ 0x156a7ff1)) ^ uVar32);
  uVar21 = (ulonglong)DAT_1826707b0;
  uVar32 = CONCAT44(DAT_182670894,DAT_182670894);
  *puVar3 = uVar26 ^ uVar19;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xde3cec49)) =
       uVar26 << ((*(byte *)(lVar6 - ((ulonglong)uVar25 ^ 0xe11e182d)) ^ (byte)uVar14) & 0x3f);
  puVar34 = (ulonglong *)(lVar6 - (uVar36 ^ 0xbf5b094e));
  *puVar34 = *(ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0x177e73a5)) ^
             *(ulonglong *)(lVar6 - (uVar21 ^ 0x163e2004)) ^ uVar32 ^ uVar20 ^ uVar33;
  uVar21 = *(ulonglong *)(lVar6 + -0x1b8);
  *(ulonglong *)(lVar6 + -0x420) = *(ulonglong *)(lVar6 + -0x118) >> 0x20 ^ uVar22 ^ uVar28;
  uVar32 = (uVar32 ^ *puVar34) << 0x20;
  uVar22 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar26 = uVar32 ^ uVar22;
  *(ulonglong *)(lVar6 + -0x7d8) = uVar26;
  *(ulonglong *)(lVar6 + -0x9c8) = CONCAT44(uVar9,uVar10) ^ uVar26 ^ uVar22 ^ 0x70288bb0dcbe82e3;
  uVar32 = *(ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0x177e71dd)) ^ uVar28 | uVar32;
  *puVar1 = uVar32 ^ uVar35;
  uVar12 = DAT_182670870;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707e4 ^ 0xed3a067c)) =
       (uVar20 ^ uVar21) - uVar32 ^ uVar42;
  uVar21 = uVar19 ^ uVar35 ^ uVar24 ^ *puVar3 ^ *puVar1;
  *puVar4 = uVar21;
  local_e0 = (byte)uVar11;
  *puVar2 = (uVar24 ^ uVar21) >> ((local_e0 ^ 0x61) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar5 ^ uVar40;
  return;
}



############ FUN_ 180c6b370 size=5273 ############

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

void FUN_180c6b370(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  byte bVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  
  uVar11 = DAT_1826707e8;
  uVar6 = DAT_1826707b4;
  lVar3 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707b4;
  uVar18 = (ulonglong)DAT_1826707e8;
  uVar20 = DAT_1826707b4 - DAT_1826707e8;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670b50);
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670b50) ^ DAT_1826707b4;
  uVar27 = CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar31 = (ulonglong)uVar20;
  uVar19 = CONCAT44(DAT_1826707e8,DAT_1826707e8);
  bVar17 = (byte)DAT_1826707e8;
  uVar24 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar29 = CONCAT44(uVar20,DAT_1826707b4);
  DAT_1826707e0 = uVar20;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x400)) >> ((bVar17 ^ 0xe7) & 0x3f) ^ uVar24;
  uVar13 = DAT_182670898;
  bVar28 = (byte)uVar6;
  uVar22 = CONCAT44(DAT_182670830,DAT_182670830);
  *(ulonglong *)(lVar3 + -0x660) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x400)) << ((bVar28 ^ 99) & 0x3f) ^ uVar22;
  uVar9 = DAT_182670824;
  *(longlong *)(lVar3 + -0xd88) =
       0x164233d06345ea6c << (((byte)uVar13 ^ *(byte *)(lVar3 + -0x438)) & 0x3f);
  uVar13 = DAT_182670930;
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar22 = *(ulonglong *)(lVar3 - (uVar18 ^ 0x442d1a3e)) ^ uVar24 |
           *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0x8c020e24)) ^ uVar22;
  uVar34 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar22 ^ uVar36;
  uVar9 = DAT_182670aa0;
  uVar19 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0x47d4e4a6)) ^ CONCAT44(uVar13,uVar13)) -
           (uVar19 ^ 0xe1d9f73c3f0d6933);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar19 ^ uVar34;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x220) =
       (uVar24 ^ *(ulonglong *)(lVar4 + -0x588)) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x8c020c44)) ^ uVar27);
  uVar32 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar4 + -0x420) =
       uVar19 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x8c020efc)) ^ uVar36) ^ uVar32;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x8c020e1c)) =
       uVar22 - (CONCAT44(uVar11,uVar20) ^ 0x1faf53eb3f7f1422) ^ uVar36;
  uVar19 = *(ulonglong *)(lVar4 + -0x588);
  uVar37 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(uint *)(lVar4 + -0xb54) = (uVar11 ^ 0x8f0952dd) + (uVar20 ^ 0x3035e67b);
  uVar13 = DAT_182670a6c;
  uVar27 = CONCAT44(DAT_182670a98,DAT_182670a98) ^ *(ulonglong *)(lVar4 + -0xc18) ^ uVar37 ^ uVar19
           ^ uVar24;
  *(ulonglong *)(lVar4 + -0xa18) = uVar27;
  uVar9 = DAT_182670a44;
  lVar3 = DAT_1826707a0;
  bVar21 = (byte)uVar20;
  uVar22 = (uVar27 ^ uVar37) >> ((bVar21 ^ 0x67) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       (CONCAT44(DAT_182670aec,DAT_182670aec) ^ *(ulonglong *)(DAT_1826707a0 + -0x998)) <<
       ((bVar21 ^ 0x76) & 0x3f);
  uVar27 = (uVar27 ^ uVar37) << ((bVar17 ^ 0xe1) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9c8) = uVar22 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670a88;
  *(ulonglong *)(lVar3 + -0x6f0) = uVar27 ^ CONCAT44(uVar9,uVar9);
  lVar3 = DAT_1826707a0;
  uVar27 = uVar27 | uVar22;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(undefined8 *)(DAT_1826707a0 + -0xd88) = 0x1aeccc14f015059c;
  uVar9 = DAT_18267084c;
  *(ulonglong *)(lVar3 + -0x438) = uVar27 ^ uVar22;
  uVar24 = (uVar19 ^ uVar24) - (uVar29 ^ 0xf3687c313971e672);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar24 ^ CONCAT44(uVar9,uVar9);
  puVar30 = (ulonglong *)(lVar3 - (uVar31 ^ 0x47d4ec8e));
  *(ulonglong *)(lVar3 + -0x660) = CONCAT44(uVar6,uVar6) ^ uVar34 ^ *puVar30 ^ 0x16318d2fd2ef0690;
  uVar29 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar19 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar3 + -0xce0) =
       uVar24 - (*(ulonglong *)(lVar3 - (uVar18 ^ 0x442d1bc6)) ^ uVar22) ^ uVar29;
  uVar22 = uVar27 + (CONCAT44(uVar11,uVar20) ^ 0xde274c1ac0c1f62c) ^ uVar19;
  uVar24 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar3 + -0x400) = uVar22;
  uVar9 = DAT_182670900;
  uVar22 = *(ulonglong *)(lVar3 - (uVar31 ^ 0x47d4ec66)) ^ uVar24 ^ uVar19 ^ uVar32 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x220) = uVar22;
  lVar4 = DAT_1826707a0;
  uVar19 = (uVar24 ^ uVar22) >> ((bVar17 ^ 0xfb) & 0x3f);
  bVar16 = (byte)DAT_1826707c8;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar19 ^ uVar37;
  uVar22 = (uVar24 ^ uVar22) << ((bVar16 ^ 0x16) & 0x3f);
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar27 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *(ulonglong *)(lVar4 + -0xc18) = uVar22 ^ uVar37;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x8c020f9c)) = (uVar19 | uVar22) ^ uVar27;
  uVar34 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  puVar1 = (ulonglong *)(lVar4 + -0x658);
  *(ulonglong *)(lVar4 + -0x998) =
       (*(ulonglong *)(lVar4 + -0x420) ^ uVar32) - (uVar27 ^ *(ulonglong *)(lVar4 + -0x7d8)) ^
       uVar34;
  uVar9 = DAT_182670aa4;
  uVar19 = (ulonglong)DAT_18267091c;
  uVar24 = CONCAT44(DAT_18267091c,DAT_18267091c);
  uVar22 = *(ulonglong *)(lVar4 + -0xce0) ^ uVar24 ^ uVar29 ^ uVar36 ^ *puVar1;
  *(ulonglong *)(lVar4 + -0xa18) = uVar22;
  uVar13 = DAT_182670a78;
  uVar7 = DAT_1826707c0;
  uVar32 = (uVar22 >> 0x20 ^ uVar19) >> 5;
  uVar24 = (uVar24 ^ uVar22) << ((bVar28 ^ 0x5f) & 0x3f);
  uVar19 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar32 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_1826708f0;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar24 ^ CONCAT44(uVar13,uVar13);
  uVar8 = DAT_182670868;
  uVar22 = (ulonglong)DAT_182670868;
  uVar24 = uVar24 | uVar32;
  uVar32 = CONCAT44(uVar9,uVar9);
  uVar33 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar4 + -0xd88) = uVar24 ^ uVar32;
  uVar24 = (*(ulonglong *)(lVar4 + -0xce0) ^ uVar29) - uVar24;
  puVar26 = (ulonglong *)(lVar4 - (uVar19 ^ 0x8048989));
  *(ulonglong *)(lVar4 + -0x588) = uVar24 ^ uVar33;
  uVar29 = *(ulonglong *)(lVar4 - (uVar19 ^ 0x8048d99)) ^ CONCAT44(uVar8,uVar8) ^ uVar32 ^ uVar34 ^
           *puVar26;
  uVar36 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar29;
  uVar12 = DAT_1826707ec;
  *(ulonglong *)(lVar4 + -0x660) =
       ((ulonglong)(uVar8 >> 0x17) | uVar22 << 9) ^ *puVar30 >> 0x17 ^ uVar36;
  uVar9 = DAT_182670a74;
  uVar5 = DAT_1826707bc;
  lVar3 = DAT_1826707a0;
  uVar38 = CONCAT44(uVar12,uVar20);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar24 - (uVar38 ^ 0x75b3c87603ce4167);
  uVar13 = DAT_182670ae0;
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar19 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 + -0x438) =
       (CONCAT44(uVar8,uVar8) ^ uVar29) << ((bVar28 ^ 0x6d) & 0x3f) ^ uVar22;
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x47d4ec46)) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0x20004a4d)) ^ uVar36 |
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x844883a)) ^ uVar22) ^ uVar35;
  uVar14 = DAT_182670978;
  uVar29 = CONCAT44(DAT_182670888,DAT_182670888);
  puVar30 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b8 ^ 0xf7bb71dd));
  *puVar30 = (uVar34 ^ *(ulonglong *)(lVar3 + -0x998)) - (uVar35 ^ *(ulonglong *)(lVar3 + -0x400)) ^
             uVar29;
  uVar19 = *(ulonglong *)(lVar3 + -0x588);
  uVar22 = (ulonglong)DAT_182670940;
  uVar24 = CONCAT44(DAT_182670940,DAT_182670940);
  uVar27 = uVar24 ^ uVar33 ^ uVar27 ^ uVar19 ^ *(ulonglong *)(lVar3 + -0x7d8);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar27;
  uVar9 = DAT_182670ae8;
  lVar3 = DAT_1826707a0;
  uVar24 = (uVar27 ^ uVar24) << ((bVar28 ^ 0x5c) & 0x3f);
  uVar22 = (uVar27 >> 0x20 ^ uVar22) >> 8;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar24 ^ CONCAT44(DAT_182670a28,DAT_182670a28);
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xc18) = uVar22 ^ CONCAT44(uVar14,uVar14);
  uVar22 = uVar22 | uVar24;
  uVar24 = uVar22 ^ uVar34;
  *puVar1 = uVar24;
  uVar27 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar22 = (uVar33 ^ uVar19) - uVar22 ^ uVar27;
  uVar33 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar3 + -0xa18) = uVar22;
  uVar9 = DAT_1826709d4;
  uVar13 = DAT_18267082c;
  uVar36 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar19 = uVar33 ^ uVar34 ^ uVar29 ^ uVar24 ^ *(ulonglong *)(lVar3 + -0x220);
  *(ulonglong *)(lVar3 + -0x6f0) = uVar19;
  uVar10 = DAT_1826707dc;
  *(ulonglong *)(lVar3 + -0x9c8) = (uVar19 ^ uVar33) >> ((bVar17 ^ 0xca) & 0x3f) ^ uVar36;
  uVar24 = (uVar33 ^ uVar19) << ((bVar21 ^ 0x4a) & 0x3f);
  *(ulonglong *)(lVar3 + -0xce0) = uVar24 ^ CONCAT44(uVar9,uVar9);
  uVar8 = DAT_1826707bc;
  uVar5 = DAT_1826707ac;
  uVar19 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar3 + -0xd88) =
       CONCAT44(DAT_1826707ac,uVar10) ^ uVar27 ^ uVar22 ^ 0x2364f576bd9d3862;
  uVar39 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar3 + -0x5c0) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0xf7bb7a35)) ^ uVar36 | uVar24) ^ uVar39;
  uVar9 = DAT_182670808;
  *(ulonglong *)(lVar3 + -0x4c8) =
       uVar24 << ((*(byte *)(lVar3 - ((ulonglong)DAT_1826707c0 ^ 0xe625ec7a)) ^ (byte)uVar14) & 0x3f
                 );
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x438) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x220)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x84489c2)) ^ uVar39) ^ uVar24;
  uVar14 = DAT_182670ac0;
  *(ulonglong *)(lVar3 + -0x660) =
       (CONCAT44(uVar6,uVar8) ^ 0x202f6a311baaddd3) <<
       (((byte)uVar13 ^ *(byte *)(lVar3 + -0x9c8)) & 0x3f);
  uVar9 = DAT_182670960;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar22 = uVar34 ^ uVar27 ^ uVar35 ^ *(ulonglong *)(lVar3 + -0x400) ^ uVar22;
  *(ulonglong *)(lVar3 + -0x998) = uVar22;
  lVar3 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       (uVar22 ^ uVar34) >> (((byte)uVar8 ^ 0x3b) & 0x3f) ^ uVar33;
  uVar10 = DAT_1826707ec;
  uVar19 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar36 = CONCAT44(uVar12,DAT_1826707ec);
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar34 ^ uVar22) << (((byte)uVar5 ^ 6) & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x8c020c64)) =
       uVar36 ^ 0x1dd6ab5ed5b56bda | CONCAT44(uVar7,uVar20) ^ 0x4a574fbe3fe07ec;
  uVar7 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0xf7bb7675)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x6b8) ^ uVar19 |
       uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) ^ uVar36;
  puVar23 = (ulonglong *)(lVar3 - (uVar31 ^ 0x47d4edce));
  uVar34 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x47d4ee1e)) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0xa18)) - (*puVar23 ^ uVar36) ^ uVar34;
  uVar13 = DAT_182670ab4;
  uVar22 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar19 = uVar24 ^ *puVar23 ^ uVar22 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0x438);
  *(ulonglong *)(lVar3 + -0x6f0) = uVar19;
  uVar9 = DAT_1826708e4;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xd88) = (uVar19 ^ uVar22) >> (((byte)uVar8 ^ 0xc) & 0x3f) ^ uVar27;
  uVar13 = DAT_182670a8c;
  uVar19 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707ac ^ 0x80482f1)) ^ uVar22) <<
           (((byte)uVar10 ^ 0x1e) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc18) = uVar19 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_1826707d8;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xce0) = (*puVar26 ^ uVar27 | uVar19) ^ uVar22;
  uVar19 = CONCAT44(uVar9,DAT_1826707c8);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x442d19a6)) ^ uVar34) <<
       (((byte)DAT_1826707c0 ^ 0x4c) & 0x3f);
  *puVar30 = (uVar24 ^ *(ulonglong *)(lVar3 + -0x438)) - (uVar19 ^ 0x5407847253fb678f) ^ uVar37;
  uVar13 = DAT_1826709bc;
  uVar24 = CONCAT44(DAT_182670854,DAT_182670854);
  *(ulonglong *)(lVar3 + -0x9c8) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0x220)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xf7bb7f1d)) ^ uVar22) ^ uVar24;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(DAT_1826707a0 + -0xce0) ^ uVar22) -
       (CONCAT44(uVar6,uVar11) ^ 0xa2ffc0573a83159f) ^ uVar36;
  uVar27 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar22 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar19 = uVar39 ^ *(ulonglong *)(lVar3 + -0x5c0) ^ *puVar1 ^ uVar27 ^ uVar34;
  *(ulonglong *)(lVar3 + -0x400) = uVar19;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x8c0201dc)) =
       (uVar19 ^ uVar27) >> ((bVar21 ^ 0x56) & 0x3f) ^ uVar22;
  uVar8 = DAT_1826707c8;
  uVar7 = DAT_1826707bc;
  uVar33 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar19 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707bc ^ 0x8448822)) =
       (*(ulonglong *)(lVar3 + -0x400) ^ uVar27) << ((bVar28 ^ 0x74) & 0x3f) ^ uVar33;
  uVar13 = DAT_182670920;
  uVar35 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0x200045b5)) ^ uVar22 |
       *(ulonglong *)(DAT_1826707a0 + -0x420) ^ uVar33) ^ uVar35;
  lVar3 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0x20004a95)) =
       (*puVar1 ^ uVar34) - (CONCAT44(uVar9,uVar11) ^ 0xb5a7a8763c86e39a) ^ uVar19;
  uVar8 = DAT_1826707ec;
  uVar27 = CONCAT44(DAT_182670874,DAT_182670874);
  uVar34 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x6c400634)) =
       (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar19) - (uVar35 ^ *(ulonglong *)(lVar3 + -0x7d8)) ^
       uVar27;
  uVar19 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x844898a)) =
       (CONCAT44(uVar6,uVar9) ^ 0x4ce22145187487b7) + (uVar35 ^ *(ulonglong *)(lVar3 + -0x7d8)) ^
       uVar19;
  uVar6 = DAT_1826707ac;
  uVar37 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar19 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b0 ^ 0x3aed898e)) ^
           *(ulonglong *)(lVar3 + -0x9c8) ^ uVar37 ^ uVar19 ^ uVar24;
  uVar25 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar3 + -0x6f0) = uVar19;
  *(ulonglong *)(lVar3 + -0xd88) = (uVar19 ^ uVar37) >> (((byte)uVar6 ^ 0x21) & 0x3f) ^ uVar25;
  uVar6 = DAT_1826707b8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b8 ^ 0xf7bb7fe5)) =
       (*(ulonglong *)(lVar3 + -0x420) ^ uVar33) - (uVar19 ^ uVar37);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0x6c4008e4)) =
       (*(ulonglong *)(lVar3 + -0x6f0) ^ uVar37) << ((bVar28 ^ 100) & 0x3f) ^ uVar29;
  uVar13 = DAT_182670a38;
  *(ulonglong *)(lVar3 + -0x220) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x998)) << (((byte)DAT_1826707dc ^ 0xda) & 0x3f);
  uVar9 = DAT_182670944;
  lVar4 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_1826707c8;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar19 = uVar29 ^ *(ulonglong *)(lVar3 + -0x4c8) | *(ulonglong *)(lVar3 + -0xd88) ^ uVar25;
  *(ulonglong *)(lVar3 + -0x438) = uVar19 ^ uVar33;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0xce0) = (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar24) - uVar19 ^ uVar37;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xf7bb763d)) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0xa18)) - (uVar38 ^ 0xfb548914143ffeea);
  uVar9 = DAT_182670928;
  bVar16 = (byte)DAT_1826707c0;
  uVar36 = *(ulonglong *)(lVar4 - (uVar22 ^ 0x20004635)) ^ uVar32 ^ *(ulonglong *)(lVar4 + -0x660) ^
           uVar27 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x400) = uVar36;
  lVar3 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar9,uVar9);
  bVar17 = (byte)DAT_1826707ac;
  *puVar1 = (uVar32 ^ uVar36) >> ((bVar16 ^ 0x42) & 0x3f) ^ uVar25;
  uVar19 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x6c400a94)) =
       (uVar32 ^ uVar36) << ((bVar17 ^ 0x21) & 0x3f) ^ uVar19;
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 + -0x418);
  uVar6 = DAT_1826707f0;
  uVar7 = DAT_1826707dc;
  lVar4 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707f0;
  uVar34 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar24 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 - (uVar22 ^ 0x20004bf5)) =
       (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar19 | *puVar1 ^ uVar25) ^ uVar34;
  uVar22 = CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar5,uVar11) ^ 0x15b7b549bdc2916) >> (((byte)uVar6 ^ 0xd) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x4c3fbbdf)) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0xa18)) - (uVar34 ^ *(ulonglong *)(lVar3 + -0x7d8)) ^
       uVar22;
  uVar27 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar3 + -0xc18) =
       CONCAT44(DAT_1826708a4,DAT_1826708a4) ^
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x6c8) ^ uVar27);
  uVar19 = (ulonglong)DAT_182670a9c;
  uVar25 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x47d4eeb6)) =
       *(ulonglong *)(lVar4 - (uVar24 ^ 0x1345d2bf)) ^ *(ulonglong *)(lVar4 + -0xce0) ^ uVar25 ^
       uVar34 ^ uVar37;
  uVar6 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c0 ^ 0xe625edea)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x6f0) >> 0x20 ^ uVar19) >> 0x1a ^ uVar34;
  uVar9 = DAT_1826708d0;
  *(ulonglong *)(lVar3 + -0x4c8) = **(ulonglong **)(lVar3 + -0x4e0) ^ uVar25;
  lVar3 = DAT_1826707a0;
  puVar30 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  uVar19 = (uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0)) << (((byte)uVar7 ^ 0xf9) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar19 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x220) = uVar25 ^ *puVar30;
  uVar9 = DAT_182670a34;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x5e519dd0)) = (uVar34 ^ *puVar26 | uVar19) ^ uVar35;
  uVar5 = DAT_1826707b8;
  *(ulonglong *)(lVar3 + -0x5c0) =
       (*(ulonglong *)(lVar3 + -0xce0) ^ uVar37) -
       (*(ulonglong *)(lVar3 - (uVar18 ^ 0x442d1636)) ^ uVar35) ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_1826709cc;
  uVar19 = *(ulonglong *)(lVar3 + -0x420) ^ uVar27 ^ uVar22 ^ uVar33 ^
           *(ulonglong *)(lVar3 + -0x438);
  *(ulonglong *)(lVar3 + -0x660) = uVar19;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x1345d167)) =
       (uVar19 ^ uVar27) >> (((byte)uVar5 ^ 0xeb) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *puVar1 = (CONCAT44(uVar5,uVar11) ^ 0xc3d2185dd645f3b8) << (((byte)uVar6 ^ 0x68) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar2 ^ uVar20;
  return;
}



############ FUN_ 180c81300 size=5328 ############

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

void FUN_180c81300(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar56;
  byte local_res20;
  byte local_130;
  
  uVar9 = DAT_1826709f0;
  uVar16 = DAT_1826707e0;
  uVar15 = DAT_1826707dc;
  uVar14 = DAT_1826707d8;
  uVar13 = DAT_1826707cc;
  uVar12 = DAT_1826707c4;
  uVar11 = DAT_1826707c0;
  uVar10 = DAT_1826707b8;
  uVar8 = DAT_1826707b0;
  lVar6 = DAT_1826707a0;
  uVar51 = (ulonglong)DAT_1826707dc;
  uVar53 = (ulonglong)DAT_1826707c4;
  uVar52 = (ulonglong)DAT_1826707b0;
  uVar30 = (ulonglong)DAT_1826707d8;
  uVar28 = (ulonglong)DAT_1826707b8;
  uVar48 = DAT_1826707cc & DAT_1826707d8;
  uVar5 = *(uint *)(&DAT_18260f758 + DAT_182670d48);
  uVar55 = DAT_1826707e0 & DAT_1826707b8;
  DAT_1826707b4 = DAT_1826707b0 << 0x10 | DAT_1826707b0 >> 0x10;
  uVar35 = (DAT_1826707dc << 0x10 | DAT_1826707dc & 0xff00) << 8 | DAT_1826707dc >> 8 & 0xff00 |
           DAT_1826707dc >> 0x18;
  uVar22 = (ulonglong)DAT_1826707c0;
  uVar31 = DAT_1826707c4 | DAT_1826707c0;
  uVar21 = *(uint *)(&DAT_18260f750 + (uVar22 ^ 0xf7fcbfef) + (longlong)DAT_182670d48) ^
           DAT_1826707c4;
  uVar24 = (ulonglong)DAT_1826707e0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x9e0);
  bVar29 = (byte)DAT_1826707b8;
  uVar38 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar27 = (ulonglong)DAT_1826709f0;
  DAT_1826707ac = uVar31;
  DAT_1826707c8 = uVar55;
  DAT_1826707d4 = uVar35;
  DAT_1826707e8 = uVar48;
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       (CONCAT44(DAT_182670ad8,DAT_182670ad8) ^ *puVar1) >> ((bVar29 ^ 0xb3) & 0x3f);
  uVar17 = DAT_18267096c;
  uVar41 = (ulonglong)uVar55;
  uVar27 = ((ulonglong)(uVar9 >> 0x1b) | uVar27 << 5) ^
           *(ulonglong *)(lVar6 - ((ulonglong)uVar55 ^ 0x30044658)) >> 0x1b;
  uVar42 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(lVar6 + -0x660) = uVar27 ^ uVar38;
  lVar7 = DAT_1826707a0;
  puVar32 = (ulonglong *)(lVar6 + -0xf0);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = (CONCAT44(uVar17,uVar17) ^ *puVar32 | uVar27) ^ uVar42;
  uVar38 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar33 = CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar37 = (ulonglong)uVar13;
  puVar25 = (ulonglong *)(lVar7 - (uVar37 ^ 0x5c6e64e5));
  uVar44 = (ulonglong)uVar48;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar48 ^ 0x406c2630)) =
       uVar33 ^ uVar38 ^ uVar42 ^ *puVar25 ^ *(ulonglong *)(lVar7 + -0x68);
  uVar17 = DAT_1826709cc;
  uVar27 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  uVar49 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar42 = (ulonglong)uVar35;
  uVar38 = (CONCAT44(uVar14,uVar15) ^ 0xe2f566eb61681428) +
           (uVar38 ^ *(ulonglong *)(lVar7 + -0x630));
  *(ulonglong *)(lVar7 + -0x998) = uVar38 ^ uVar49;
  uVar19 = DAT_182670a5c;
  lVar6 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar17,uVar17);
  uVar27 = (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) +
           (CONCAT44(uVar35,uVar8) ^ 0xdf0e61537bf86ba2);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar27 ^ uVar39;
  uVar9 = DAT_1826707b4;
  uVar36 = CONCAT44(uVar19,uVar19);
  uVar23 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707b4 ^ 0x400001cb)) = uVar27 + uVar38 ^ uVar36;
  uVar45 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar6 - (uVar24 ^ 0x394f68f8)) =
       (*(ulonglong *)(lVar6 + -0x998) ^ uVar49) << ((bVar29 ^ 0x99) & 0x3f) ^ uVar45;
  uVar18 = DAT_18267084c;
  uVar27 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar43 = (ulonglong)DAT_18267084c;
  *(ulonglong *)(lVar6 + -0xac0) =
       (*(ulonglong *)(lVar6 + -0x998) ^ uVar49) >> (((byte)uVar13 ^ 0x7a) & 0x3f) ^ uVar27;
  *(undefined8 *)(lVar6 - (uVar22 ^ 0xf7fcbc4f)) = 0xcee072f5da000000;
  uVar38 = CONCAT44(DAT_182670884,DAT_182670884);
  uVar40 = CONCAT44(uVar18,uVar18);
  uVar27 = (*(ulonglong *)(lVar6 + -0xac0) ^ uVar27 | *(ulonglong *)(lVar6 + -0xcf8) ^ uVar45) ^
           uVar38;
  puVar2 = (ulonglong *)(lVar6 + -0xa18);
  *puVar2 = uVar27;
  uVar17 = DAT_182670a9c;
  lVar6 = DAT_1826707a0;
  uVar45 = (ulonglong)uVar31;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       CONCAT44(uVar12,uVar8) ^ CONCAT44(uVar31,uVar15) ^ 0xff5a992837b36f3c;
  uVar49 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0xbb0) =
       *(ulonglong *)(lVar6 + -0x9c8) ^ uVar49 ^ uVar27 ^ uVar38 ^ uVar36;
  uVar17 = DAT_1826709d4;
  uVar38 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar6 + -0x410) =
       (CONCAT44(uVar35,uVar14) ^ 0x5a33d7bc49d2b027) + (*(ulonglong *)(lVar6 + -0x588) ^ uVar38) ^
       uVar40;
  uVar54 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0x472cc7c0)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x406c2068)) ^ uVar33) +
       (CONCAT44(uVar8,uVar9) ^ 0xdc89e7663c2884fb) ^ uVar54;
  lVar6 = DAT_1826707a0;
  uVar27 = *(ulonglong *)(DAT_1826707a0 + -0x410);
  uVar34 = CONCAT44(DAT_18267085c,DAT_18267085c);
  *(uint *)(DAT_1826707a0 + -0xaf0) = (uVar15 ^ 0x24074c68) + (uVar55 ^ 0xfed3612b);
  uVar17 = DAT_182670970;
  *(ulonglong *)(lVar6 + -0x890) = (uVar27 ^ uVar40) + (uVar54 ^ *puVar1) ^ uVar34;
  uVar19 = _DAT_182670ad4;
  uVar46 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x658) =
       (*(ulonglong *)(lVar6 - (uVar23 ^ 0x40000c13)) ^ uVar40) << 0x21 ^ uVar46;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0x472cced0)) =
       ((ulonglong)(uVar18 >> 0x1f) | uVar43 * 2) ^ uVar27 >> 0x1f ^ CONCAT44(uVar19,uVar19);
  uVar33 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar6 + -0x660) =
       (*(ulonglong *)(lVar6 - (uVar42 ^ 0x652c071a)) ^ uVar46 | *puVar32 ^ CONCAT44(uVar19,uVar19))
       ^ uVar33;
  uVar17 = DAT_182670a50;
  *(ulonglong *)(lVar6 + -0x6b8) =
       (CONCAT44(uVar12,uVar11) ^ 0x1eadd5aa060cdf3b) >> ((*(byte *)puVar32 ^ (byte)uVar19) & 0x3f);
  uVar27 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 - (uVar28 ^ 0x3434c7b0)) =
       *(ulonglong *)(lVar6 - (uVar45 ^ 0xf7fcf99f)) ^ *(ulonglong *)(lVar6 + -0x890) ^ uVar27 ^
       uVar33 ^ uVar34;
  uVar17 = DAT_182670874;
  bVar29 = (byte)uVar11;
  *(ulonglong *)(lVar6 + -0x610) =
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0x394f6c90)) ^ uVar34) << ((bVar29 ^ 0xd5) & 0x3f);
  uVar33 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 - (uVar51 ^ 0x4201215d)) =
       (*(ulonglong *)(lVar6 + -0x9c8) ^ uVar36) + (uVar27 ^ *(ulonglong *)(lVar6 + -0x630)) ^
       uVar33;
  puVar26 = (ulonglong *)(lVar6 - (uVar24 ^ 0x394f6230));
  *(ulonglong *)(lVar6 - (uVar44 ^ 0x406c2998)) =
       (uVar27 ^ *puVar26) << (((byte)uVar12 ^ 0xe) & 0x3f) ^ uVar39;
  uVar27 = (uVar27 ^ *(ulonglong *)(lVar6 + -0x630)) >> (((byte)uVar9 ^ 0x11) & 0x3f);
  puVar3 = (ulonglong *)(lVar6 + -0x3b0);
  *puVar3 = uVar27 ^ CONCAT44(DAT_1826708f4,DAT_1826708f4);
  lVar7 = DAT_1826707a0;
  uVar46 = CONCAT44(DAT_182670958,DAT_182670958);
  *(ulonglong *)(lVar6 + -0xcf8) = (*(ulonglong *)(lVar6 + -0x998) ^ uVar39 | uVar27) ^ uVar46;
  uVar56 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(undefined8 *)(lVar6 - (uVar30 ^ 0x407c26c0)) = 0;
  *(ulonglong *)(lVar6 + -0xd88) =
       *(ulonglong *)(lVar6 - (uVar41 ^ 0x30044d38)) ^ *(ulonglong *)(lVar6 + -0xcf8) ^ uVar56 ^
       uVar46 ^ uVar33;
  uVar40 = *(ulonglong *)(lVar6 + -0xbb0) ^ uVar49;
  uVar36 = CONCAT44(DAT_182670a08,DAT_182670a08);
  *puVar2 = (*(ulonglong *)(lVar7 + -0x890) ^ uVar34) + uVar40 ^ uVar36;
  uVar17 = DAT_182670854;
  *(uint *)(lVar7 + -0x280) = DAT_1826707b0 ^ 0x776849ef | DAT_1826707e0 ^ 0x9db521ac;
  uVar19 = DAT_1826709a4;
  uVar27 = uVar40 << (((byte)uVar13 ^ 0x51) & 0x3f);
  local_res20 = (byte)uVar31;
  *(ulonglong *)(lVar7 + -0x588) = uVar27 ^ CONCAT44(uVar17,uVar17);
  uVar40 = uVar40 >> ((local_res20 ^ 0xcb) & 0x3f);
  uVar47 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar7 + -0x68) = uVar40 ^ CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar7 - (uVar42 ^ 0x652c0552)) = (uVar40 | uVar27) ^ uVar47;
  uVar17 = DAT_182670a60;
  uVar27 = *(ulonglong *)(lVar7 + -0x410);
  uVar40 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar43 = *(ulonglong *)(lVar7 - (uVar28 ^ 0x3434cb98)) ^ uVar40 ^ uVar47 ^ uVar36 ^ uVar27;
  *(ulonglong *)(lVar7 + -0x658) = uVar43;
  uVar34 = CONCAT44(uVar17,uVar17);
  uVar50 = (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x406c2d38)) ^ uVar33) + (uVar43 ^ uVar40) ^
           uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar50;
  *puVar32 = CONCAT44(uVar8,uVar31) ^ uVar47 ^ uVar27 ^ 0x6f7dae2be6074f3f;
  uVar19 = DAT_1826708a0;
  lVar6 = DAT_1826707a0;
  uVar33 = (uVar43 ^ uVar40) << (((byte)(uVar15 >> 0x18) ^ 0x78) & 0x3f);
  uVar27 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  puVar4 = (ulonglong *)(DAT_1826707a0 + -0x658);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar33 ^ uVar38;
  *(ulonglong *)(lVar6 + -0x610) = (*puVar4 ^ uVar40) >> (((byte)uVar48 ^ 6) & 0x3f) ^ uVar27;
  uVar38 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *(ulonglong *)(lVar6 + -0x9c8) =
       (*(ulonglong *)(lVar6 - (uVar41 ^ 0x30044610)) ^ uVar27 | uVar33) ^ uVar38;
  uVar18 = DAT_182670a64;
  uVar43 = (ulonglong)DAT_182670a64;
  *(ulonglong *)(lVar6 + -0x630) =
       *(ulonglong *)(lVar6 - (uVar28 ^ 0x3434c818)) ^ uVar39 | uVar54 ^ *puVar1;
  uVar54 = CONCAT44(uVar18,uVar18);
  *puVar3 = *(ulonglong *)(lVar6 - (uVar53 ^ 0x472cc7e8)) ^ uVar54 ^ uVar38 ^ uVar34 ^ uVar50;
  uVar17 = DAT_1826709bc;
  *(ulonglong *)(lVar6 + -0xac0) =
       CONCAT44(uVar55,uVar14) ^ CONCAT44(uVar16,uVar9) ^ 0xff013b9bd25b9db;
  uVar20 = DAT_1826709c0;
  lVar7 = DAT_1826707a0;
  uVar47 = CONCAT44(uVar17,uVar17);
  uVar27 = uVar56 ^ *(ulonglong *)(lVar6 + -0xd88);
  *(ulonglong *)(lVar6 + -0xcf8) =
       (*(ulonglong *)(lVar6 - (uVar51 ^ 0x420121ed)) ^ uVar56) +
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0x394f6e18)) ^ uVar36) ^ uVar47;
  uVar53 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar7 + -0x890) = uVar27 << 0x16 ^ uVar53;
  uVar20 = DAT_182670a44;
  uVar33 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar7 - (uVar23 ^ 0x400003b3)) = uVar27 >> ((local_res20 ^ 0xd5) & 0x3f) ^ uVar33;
  uVar27 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar7 - (uVar37 ^ 0x5c6e67d5)) =
       (uVar53 ^ *(ulonglong *)(lVar7 + -0x890) | uVar33 ^ *(ulonglong *)(lVar7 + -0xbb0)) ^ uVar27;
  uVar17 = DAT_1826708b4;
  *(ulonglong *)(lVar7 + -0x68) =
       (CONCAT44(uVar11,uVar15) ^ 0x6bb38ab1b9c196fc) <<
       (((byte)uVar20 ^ *(byte *)(lVar7 + -0xbb0)) & 0x3f);
  uVar40 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar7 - (uVar30 ^ 0x407c2138)) =
       *(ulonglong *)(lVar7 + -0xcf8) ^ uVar40 ^ uVar27 ^ uVar47 ^ *(ulonglong *)(lVar7 + -0x588);
  uVar36 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar7 - (uVar41 ^ 0x30044410)) =
       (uVar34 ^ *(ulonglong *)(lVar7 + -0x6b8)) + (uVar40 ^ *(ulonglong *)(lVar7 + -0xd38)) ^
       uVar36;
  uVar33 = CONCAT44(DAT_182670834,DAT_182670834);
  *puVar32 = (*(ulonglong *)(lVar7 - (uVar52 ^ 0x8034d38)) ^ uVar40) << 0x20 ^ uVar33;
  *(uint *)(lVar7 + -0xb54) = (DAT_1826707b4 ^ 0x784cd8f2) & *(uint *)(lVar7 + -0x280);
  uVar17 = DAT_182670890;
  uVar27 = (uVar40 ^ *(ulonglong *)(lVar7 + -0xd38)) >> ((byte)uVar12 & 0x3f);
  uVar34 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar7 + -0x660) =
       (uVar38 ^ *(ulonglong *)(lVar7 + -0x9c8)) <<
       ((*(byte *)(lVar7 + -0x610) ^ (byte)uVar19) & 0x3f);
  *(ulonglong *)(lVar7 + -0x658) = uVar27 ^ uVar34;
  lVar6 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar17,uVar17);
  uVar38 = (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0x3434c170)) ^ uVar33 | uVar27) ^ uVar39;
  uVar27 = *(ulonglong *)(DAT_1826707a0 + -0xd38);
  *puVar1 = uVar38;
  *(ulonglong *)(lVar6 + -0x998) =
       (CONCAT44(uVar31,uVar48) ^ 0x843e13e990ab7670) - (uVar40 ^ uVar27);
  uVar33 = CONCAT44(DAT_182670894,DAT_182670894);
  *puVar26 = uVar33 ^ uVar39 ^ uVar36 ^ *(ulonglong *)(lVar6 + -0x410) ^ uVar38;
  uVar39 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar27 = *puVar3;
  uVar38 = CONCAT44(DAT_182670994,DAT_182670994);
  uVar50 = (uVar54 ^ uVar27) << 0x20;
  *(ulonglong *)(lVar6 + -0xac0) =
       (*(ulonglong *)(lVar6 - (uVar44 ^ 0x406c23b0)) ^ uVar54) +
       (*(ulonglong *)(lVar6 + -0xcf8) ^ uVar47) ^ uVar39;
  *puVar2 = uVar50 ^ uVar38;
  uVar40 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar6 + -0xbb0) =
       (CONCAT44(uVar8,uVar16) ^ 0x6ca3cb0dbd7745b1) >> ((local_res20 ^ 0xde) & 0x3f);
  uVar19 = DAT_18267094c;
  uVar43 = uVar27 >> 0x20 ^ uVar40 ^ uVar43;
  *(ulonglong *)(lVar6 + -0xd88) = uVar43;
  uVar17 = DAT_182670878;
  uVar38 = CONCAT44(uVar19,uVar19);
  uVar27 = (uVar43 ^ uVar40 | uVar50) ^ uVar38;
  *(ulonglong *)(lVar6 + -0x68) = uVar27;
  uVar40 = CONCAT44(uVar17,uVar17);
  uVar43 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar27 = *(ulonglong *)(lVar6 - (uVar42 ^ 0x652c0b82)) ^ uVar40 ^ uVar38 ^ uVar39 ^ uVar27;
  *(ulonglong *)(lVar6 + -0x588) = uVar27;
  *(ulonglong *)(lVar6 + -0x6b8) =
       (CONCAT44(uVar11,uVar10) ^ 0x23761899481c4d78) + (uVar40 ^ uVar27) ^ uVar43;
  *(ulonglong *)(lVar6 - (uVar28 ^ 0x3434c7e0)) =
       (uVar36 ^ *(ulonglong *)(lVar6 + -0x410)) + (CONCAT44(uVar55,uVar13) ^ 0x95f0a8c2274e1490) ^
       uVar46;
  uVar36 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar6 - (uVar42 ^ 0x652c0752)) =
       (uVar43 ^ *(ulonglong *)(lVar6 + -0x6b8)) + (*(ulonglong *)(lVar6 + -0x660) ^ uVar46) ^
       uVar36;
  uVar27 = *(ulonglong *)(lVar6 + -0x890);
  uVar38 = *(ulonglong *)(lVar6 + -0x6b8);
  *(ulonglong *)(lVar6 + -0x9c8) =
       CONCAT44(uVar9,uVar14) ^ uVar33 ^ *(ulonglong *)(lVar6 + -0x630) ^ 0x7c3281e34948969b;
  uVar40 = CONCAT44(DAT_182670814,DAT_182670814);
  local_130 = (byte)uVar16;
  uVar28 = (uVar43 ^ *puVar25) << ((local_130 ^ 0xe) & 0x3f);
  *puVar32 = uVar28 ^ uVar40;
  uVar17 = DAT_182670948;
  *(ulonglong *)(lVar6 + -0x658) = uVar28 - (uVar53 ^ uVar27);
  uVar27 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 - (uVar37 ^ 0x5c6e6f65)) =
       (uVar43 ^ uVar38) >> ((bVar29 ^ 0xcd) & 0x3f) ^ uVar27;
  lVar6 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0x652c08da)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xf7fcf2c7)) ^ uVar27 | uVar40 ^ *puVar32) ^ uVar38
  ;
  uVar27 = *(ulonglong *)(lVar6 + -0x630);
  uVar28 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *puVar1 = *(ulonglong *)(lVar6 + -0x610) ^ uVar28 ^ uVar38 ^ uVar36 ^
            *(ulonglong *)(lVar6 + -0x998);
  uVar17 = DAT_1826709e4;
  uVar38 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar6 + -0xcf8) =
       (uVar33 ^ uVar27) + (CONCAT44(uVar8,uVar12) ^ 0x6df6ec1b3fc62fb1) ^ uVar38;
  lVar6 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar17,uVar17);
  *puVar3 = 0;
  *(ulonglong *)(lVar6 - (uVar44 ^ 0x406c2bb0)) =
       (CONCAT44(uVar9,uVar8) ^ 0x8828be4c053f6fb6) + (uVar39 ^ *(ulonglong *)(lVar6 + -0xac0)) ^
       uVar27;
  *(ulonglong *)(lVar6 - (uVar23 ^ 0x4000021b)) =
       (uVar27 ^ *(ulonglong *)(lVar6 + -0xbb0)) + (*(ulonglong *)(lVar6 + -0xcf8) ^ uVar38) ^
       uVar40;
  uVar37 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar6 - (uVar52 ^ 0x8034068)) =
       *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar6 + -0xd00)) ^ uVar49;
  uVar42 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar6 - (uVar41 ^ 0x30044588)) =
       (*(ulonglong *)(lVar6 + -0xcf8) ^ uVar38) << (((byte)uVar48 ^ 0x10) & 0x3f) ^ uVar42;
  *(byte *)(lVar6 + -0xbf1) =
       *(byte *)(*(ulonglong *)(lVar6 - (uVar24 ^ 0x394f66b8)) ^ (ulonglong)DAT_182670a8c) ^
       (byte)DAT_182670a40;
  uVar17 = DAT_182670950;
  uVar27 = (*(ulonglong *)(lVar6 + -0xcf8) ^ uVar38) >> ((local_130 ^ 0x30) & 0x3f);
  *(ulonglong *)(lVar6 + -0x410) = uVar27 ^ CONCAT44(DAT_182670974,DAT_182670974);
  uVar19 = DAT_182670ae8;
  lVar7 = DAT_1826707a0;
  uVar44 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x660) = (uVar42 ^ *(ulonglong *)(lVar6 + -0x588) | uVar27) ^ uVar44;
  uVar38 = CONCAT44(uVar19,uVar19);
  uVar27 = *(ulonglong *)(lVar7 - (uVar51 ^ 0x42012a05)) ^
           *(ulonglong *)(lVar7 - (uVar30 ^ 0x407c2618)) ^ uVar38 ^ uVar44 ^ uVar40;
  uVar42 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar7 + -0x9c8) = uVar27;
  uVar44 = (uVar38 ^ uVar27) << 0x34;
  *(ulonglong *)(lVar7 + -0x658) =
       (uVar27 ^ uVar38) + (*(ulonglong *)(lVar7 + -0x610) ^ uVar36) ^ uVar42;
  *(ulonglong *)(lVar7 + -0x890) = *(ulonglong *)(uVar37 ^ *(ulonglong *)(lVar7 + -0xd00)) ^ uVar49;
  uVar17 = DAT_18267091c;
  uVar38 = (uVar38 ^ *(ulonglong *)(lVar7 + -0x9c8)) >> (((byte)uVar9 ^ 0xf) & 0x3f);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar44 ^ CONCAT44(DAT_182670868,DAT_182670868);
  uVar27 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(lVar7 + -0xd38) = uVar38 ^ CONCAT44(uVar17,uVar17);
  uVar38 = (uVar44 | uVar38) ^ uVar27;
  *(ulonglong *)(lVar7 + -0x998) = uVar38;
  *(ulonglong *)(lVar7 + -0x630) =
       *(ulonglong *)(lVar7 - (uVar45 ^ 0xf7fcf9a7)) ^ uVar27 ^ uVar42 ^ uVar34 ^ uVar38;
  uVar17 = DAT_182670838;
  *puVar32 = (*(ulonglong *)(lVar7 - (uVar22 ^ 0xf7fcb61f)) ^ uVar28) + (uVar40 ^ *puVar2) ^
             CONCAT44(DAT_182670940,DAT_182670940);
  *puVar3 = (uVar28 ^ *puVar1) << ((bVar29 ^ 0xc6) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar21 * 4) = uVar5 ^ uVar31;
  return;
}



############ FUN_ 180ce5d70 size=4529 ############

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

void FUN_180ce5d70(void)

{
  uint *puVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  byte bVar15;
  byte bVar16;
  byte bVar17;
  ulonglong uVar18;
  uint *puVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  byte *pbVar25;
  uint *puVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  uint *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint *puVar41;
  uint *puVar42;
  byte local_c0;
  byte local_58;
  
  uVar36 = DAT_18267085c;
  uVar7 = DAT_1826707f4;
  uVar32 = DAT_1826707e8;
  uVar6 = DAT_1826707cc;
  uVar23 = DAT_1826707c0;
  uVar33 = DAT_1826707ac;
  lVar2 = DAT_1826707a0;
  uVar14 = (ulonglong)DAT_1826707cc;
  uVar37 = (ulonglong)DAT_1826707e8;
  uVar10 = DAT_1826707cc & 3;
  uVar27 = DAT_1826707f4 + DAT_1826707e8;
  uVar30 = (ulonglong)DAT_1826707ac;
  if (uVar10 < 2) {
    uVar24 = DAT_1826707b0;
    if (uVar10 == 0) {
      uVar24 = DAT_1826707cc;
    }
  }
  else {
    uVar24 = DAT_1826707ac;
    if (uVar10 < 3) {
      uVar24 = DAT_1826707a8;
    }
  }
  uVar11 = *(uint *)(&DAT_18260f758 + DAT_182670b88) ^ DAT_1826707b0;
  uVar12 = *(uint *)(&DAT_18260f750 + (uVar14 ^ 0x85f69946) + (longlong)DAT_182670b88) ^
           DAT_1826707c0;
  bVar15 = (byte)DAT_1826707a8 ^ 0x2c;
  uVar40 = (ulonglong)uVar27;
  uVar20 = *(uint *)(DAT_1826707a0 + -0xb54) ^ DAT_182670848;
  uVar28 = (ulonglong)DAT_1826707f4;
  uVar29 = (*(uint *)(DAT_1826707a0 + -0x398) ^ DAT_1826708e4) >> (bVar15 & 0x1f) ^ DAT_1826707fc;
  DAT_1826707d4 = uVar27;
  DAT_1826707dc = uVar24;
  *(uint *)(DAT_1826707a0 + -0x3d4) = uVar29;
  uVar5 = DAT_1826707b0;
  uVar39 = (ulonglong)uVar24;
  uVar35 = (ulonglong)DAT_1826707b0;
  uVar10 = *(uint *)(lVar2 + -0x7e4) ^ DAT_1826709ac;
  *(uint *)(lVar2 + -0x9ec) =
       (*(uint *)(lVar2 - ((ulonglong)uVar24 ^ 0xaae67bb3)) ^ DAT_182670970 | uVar29 ^ DAT_1826707fc
       ) ^ uVar36;
  *(uint *)(lVar2 - (uVar30 ^ 0x22187551)) = uVar20 + uVar10 ^ DAT_182670a14;
  *(ulonglong *)(lVar2 + -0x558) =
       (CONCAT44(uVar32,uVar7) ^ 0x52517817133dace) >>
       ((byte)*(undefined8 *)(lVar2 - (uVar40 ^ 0xfefda638)) & 0x3f);
  puVar38 = (uint *)(lVar2 - (uVar35 ^ 0xad6fdad2));
  *(uint *)(lVar2 - ((ulonglong)DAT_1826707a8 ^ 0xaae67fbf)) =
       *puVar38 ^ DAT_1826708cc ^ DAT_182670a14;
  uVar8 = DAT_182670aec;
  uVar22 = DAT_1826709b8;
  *(uint *)(lVar2 - ((ulonglong)uVar7 ^ 0xbf7fdbbe)) =
       *(uint *)(lVar2 - ((ulonglong)uVar5 ^ 0xad6fd712)) ^ DAT_182670928 ^ uVar36;
  uVar13 = (ulonglong)uVar23;
  *(ulonglong *)(lVar2 + -0xac0) =
       *(ulonglong *)(lVar2 - (uVar13 ^ 0x1dd24d78)) | 0x9c871d2ef885eb87;
  *(uint *)(lVar2 + -0xa34) = *(uint *)(lVar2 + -0x280) ^ uVar22 ^ DAT_1826708cc;
  uVar10 = DAT_1826707a8;
  uVar18 = (ulonglong)DAT_182670a5c;
  *(uint *)(lVar2 - (uVar30 ^ 0x22187969)) =
       *(uint *)(lVar2 - (uVar37 ^ 0x3f7dc3ca)) ^ DAT_18267090c ^ DAT_182670928;
  uVar20 = DAT_1826709c8;
  pbVar25 = (byte *)((CONCAT44(uVar27,uVar27) ^ 0xfefda588fefda588) * 0x20 +
                     (CONCAT44(uVar10,uVar32) ^ 0xaae67d3f3f7dc698) + *(longlong *)(lVar2 + -0x30));
  *(undefined8 *)(lVar2 + -0x890) = *(undefined8 *)(lVar2 + -0x3b0);
  *(ulonglong *)(lVar2 + -0x248) = (ulonglong)pbVar25 ^ uVar18;
  bVar16 = *pbVar25;
  *(byte *)(lVar2 + -0x619) = bVar16;
  uVar31 = (uint)((byte)DAT_182670adc ^ bVar16);
  *(uint *)(lVar2 + -0xc34) = uVar31 ^ uVar20;
  uVar29 = uVar31 << 0x11 ^ DAT_182670a90;
  uVar21 = *(uint *)(lVar2 - (uVar39 ^ 0xaae6752b)) ^ DAT_18267090c;
  uVar20 = DAT_1826707f4 ^ 0x745b93dd;
  *(uint *)(lVar2 + -0x2d4) = uVar29;
  uVar21 = uVar21 + uVar20;
  uVar29 = uVar29 ^ DAT_182670a90;
  *(uint *)(lVar2 + -0xc04) = uVar21 ^ uVar8;
  lVar3 = DAT_1826707a0;
  *(uint *)(lVar2 + -0x8e0) = uVar21 - uVar29 ^ DAT_182670a00;
  lVar2 = DAT_1826707a0;
  local_c0 = (byte)uVar7;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (CONCAT44(uVar24,uVar6) ^ 0x8ffbb7cb180d5cc3) << ((local_c0 ^ 0xf1) & 0x3f);
  puVar1 = (uint *)(lVar2 + -0xc0c);
  *puVar1 = (*(uint *)(DAT_1826707a0 - (uVar30 ^ 0x2218799d)) ^ DAT_182670a00) *
            (*(uint *)(lVar3 + -0xa34) ^ uVar22) ^ DAT_1826709e4;
  uVar20 = DAT_1826707a8;
  uVar30 = (ulonglong)DAT_182670a3c;
  *(uint *)(lVar3 + -0x398) = uVar31 * (uVar23 ^ 0x1dd24bd2) ^ DAT_182670830;
  uVar21 = DAT_1826709b4;
  *(byte *)(DAT_1826707a0 - ((ulonglong)uVar20 ^ 0xaae6710a)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x270) ^ uVar30) ^ (byte)DAT_182670adc;
  lVar2 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 + -0xb70) = 3;
  *(uint *)(lVar2 + -0x68c) =
       (*puVar1 ^ DAT_1826709e4) + (*(uint *)(lVar2 + -0x398) ^ DAT_182670830) ^ uVar21;
  puVar26 = (uint *)(lVar2 - (uVar39 ^ 0xaae67eeb));
  *puVar26 = (*(uint *)(lVar2 - (uVar40 ^ 0xfefda304)) ^ uVar21) << 0xd ^ DAT_182670920;
  uVar29 = DAT_182670800;
  uVar30 = (ulonglong)DAT_182670a68;
  uVar21 = (uVar21 ^ *(uint *)(lVar2 + -0x68c)) >> (((byte)DAT_1826707e8 ^ 0x99) & 0x1f) ^
           DAT_182670974;
  *(uint *)(lVar2 + -0x7e4) = uVar21;
  *puVar38 = (*(uint *)(lVar2 - ((ulonglong)uVar20 ^ 0xaae67eeb)) ^ DAT_182670920 |
             uVar21 ^ DAT_182670974) ^ DAT_182670914;
  uVar31 = DAT_1826709bc;
  *(uint *)(lVar2 - (uVar14 ^ 0x85f69bd6)) =
       (*(uint *)(lVar2 + -0xa34) ^ uVar22) + (*(uint *)(lVar2 + -0xb54) ^ DAT_182670848) ^
       DAT_18267093c;
  uVar21 = DAT_1826708ec;
  uVar22 = *(uint *)(lVar2 + -0x42c) ^ uVar29 ^ DAT_182670914;
  *(ulonglong *)(lVar2 + -0x610) =
       (CONCAT44(uVar7,uVar6) ^ 0x4d5c959e61b910b1) <<
       ((byte)*(undefined8 *)(lVar2 + -0xcf8) & 0x3f);
  uVar20 = *(uint *)(lVar2 - (uVar39 ^ 0xaae67fbf)) ^ DAT_18267093c ^ uVar8;
  *(uint *)(lVar2 + -0x540) = uVar20;
  *(uint *)(lVar2 + -0x814) = uVar22;
  *(uint *)(lVar2 + -0xc04) = uVar20 ^ uVar21 ^ uVar8;
  *(uint *)(lVar2 + -0x8e0) = uVar22 ^ uVar31 ^ uVar29;
  *(ulonglong *)(lVar2 + -0xbb0) =
       (CONCAT44(uVar33,uVar27) ^ 0xced0c03203bb9fa7) -
       (CONCAT44(uVar23,uVar5) ^ 0xc9de8f46f2a0a6da);
  uVar8 = DAT_182670a90;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707cc ^ 0x85f694ee)) =
       (CONCAT44(uVar5,uVar32) ^ 0xad6fdefe3f7dc68a) * 0x20 +
       (CONCAT44(uVar33,DAT_1826707cc) ^ 0x2218717d85f6994b) + *(longlong *)(lVar2 + -0x30) ^ uVar30
  ;
  uVar20 = DAT_1826707a8;
  *(uint *)(lVar2 + -0xc34) =
       (DAT_1826707b0 ^ 0xf94c6e0f) >>
       (((byte)uVar36 ^ (byte)*(undefined4 *)(lVar2 + -0x9ec)) & 0x1f);
  bVar16 = *(byte *)(*(ulonglong *)(lVar2 + -0xdb8) ^ uVar30) ^ (byte)uVar8 ^ (byte)DAT_182670adc;
  *(byte *)(lVar2 + -0x619) = bVar16;
  uVar36 = _DAT_182670ad4;
  lVar2 = DAT_1826707a0;
  uVar34 = (uint)bVar16 ^ uVar8 & 0xff;
  *puVar1 = uVar34 ^ _DAT_182670ad4;
  *(uint *)(lVar2 + -0x398) =
       (*(uint *)(lVar2 + -0x8e0) ^ uVar31) + (uVar27 ^ 0x35d9e8ab) ^ DAT_1826709ec;
  *(ulonglong *)(lVar2 + -0x7d8) =
       *(longlong *)(lVar2 - ((ulonglong)uVar20 ^ 0xaae675af)) -
       (CONCAT44(uVar24,uVar23) ^ 0x82dc78f4554f3d75);
  *(uint *)(lVar2 + -0x68c) =
       (*(uint *)(lVar2 - (uVar35 ^ 0xad6fd2f2)) ^ uVar36) << (((byte)DAT_1826707e8 ^ 0x9b) & 0x1f)
       ^ DAT_18267087c;
  uVar36 = DAT_1826709a4;
  uVar22 = (*(uint *)(lVar2 - (uVar28 ^ 0xbf7fdd66)) ^ DAT_1826709ec) -
           (*(uint *)(lVar2 - ((ulonglong)uVar20 ^ 0xaae67bb3)) ^ DAT_18267087c);
  uVar23 = uVar22 ^ DAT_182670b14;
  *(longlong *)(lVar2 + -0x9e0) = 0x7a59c32ebe6aab5e << (((byte)uVar20 ^ 0x29) & 0x3f);
  uVar20 = DAT_1826707b0 ^ 0xad6fdee3;
  *(uint *)(lVar2 + -0x3d4) = uVar23;
  uVar23 = DAT_182670898;
  *(uint *)(lVar2 + -0x7e4) = uVar22 * (uVar21 ^ *(uint *)(lVar2 + -0xc04)) ^ DAT_1826708e0;
  *(uint *)(lVar2 - (uVar39 ^ 0xaae6770b)) = uVar34 * uVar20 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x588) = *(ulonglong *)(lVar2 + -0xbb0) >> 0x1e;
  puVar19 = (uint *)(lVar2 - (uVar37 ^ 0x3f7dccbe));
  *(uint *)(lVar2 + -0x280) =
       (*(uint *)(lVar2 + -0x7e4) ^ DAT_1826708e0) + (uVar23 ^ *puVar19) ^ uVar36;
  uVar20 = (*(uint *)(lVar2 - (uVar40 ^ 0xfefda708)) ^ uVar36) <<
           (((byte)DAT_1826707ac ^ 0x70) & 0x1f) ^ DAT_182670a7c;
  bVar16 = (byte)DAT_1826707c0;
  *(uint *)(lVar2 + -0x42c) = uVar20;
  uVar20 = uVar20 ^ DAT_182670a7c;
  uVar23 = (*(uint *)(lVar2 + -0x280) ^ uVar36) >> ((bVar16 ^ 0xd3) & 0x1f) ^ DAT_182670a4c;
  uVar36 = *(uint *)(lVar2 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar2 + -0x540) = uVar23;
  uVar23 = uVar23 ^ DAT_182670a4c;
  *(ulonglong *)(lVar2 + -0x420) = *(ulonglong *)(lVar2 + -0x3b0) >> 0x1b;
  *(uint *)(lVar2 + -0x814) = (uVar20 | uVar23) ^ DAT_1826708b0;
  uVar22 = DAT_1826709f8;
  uVar23 = DAT_1826707b4;
  uVar36 = uVar36 + (uVar21 ^ *(uint *)(lVar2 + -0xc04)) ^ DAT_182670824;
  uVar14 = (ulonglong)DAT_182670958;
  *(uint *)(lVar2 + -0x9ec) = uVar36;
  uVar36 = uVar36 ^ DAT_1826709fc ^ DAT_182670824;
  *(uint *)(lVar2 + -0xc34) = uVar36;
  uVar20 = uVar36 ^ uVar22 ^ DAT_1826709fc;
  uVar36 = *(uint *)(lVar2 - (uVar13 ^ 0x1dd243d4)) ^ DAT_182670ad0 ^ DAT_1826708b0;
  *(ulonglong *)(lVar2 + -0x658) =
       (CONCAT44(uVar7,uVar27) ^ 0xf9f82fc1820267fb) >>
       ((byte)*(undefined8 *)(lVar2 + -0xd88) & 0x3f);
  *(uint *)(lVar2 + -0x8e0) = uVar36;
  uVar36 = uVar36 ^ DAT_182670ad0;
  *(uint *)(lVar2 + -0x398) = uVar20;
  uVar20 = DAT_1826707f0;
  uVar37 = (ulonglong)DAT_1826707f0;
  uVar30 = CONCAT44(uVar23,DAT_1826707cc);
  *(uint *)(lVar2 - ((ulonglong)DAT_1826707f0 ^ 0xd720ff70)) = uVar36 ^ uVar29;
  pbVar25 = (byte *)((uVar30 ^ 0xffe6fdff85f6995e) +
                     (CONCAT44(uVar10,uVar5) ^ 0xaae67d3fad6fdefe) * 0x20 +
                    *(longlong *)(lVar2 + -0x30));
  *(ulonglong *)(lVar2 + -0x4f8) = (ulonglong)pbVar25 ^ uVar14;
  *(ulonglong *)(lVar2 + -0x400) =
       *(ulonglong *)(lVar2 - (uVar35 ^ 0xad6fd376)) ^ 0x95f3ffbff16f1dad;
  uVar34 = DAT_182670af0;
  uVar14 = (ulonglong)DAT_182670af0;
  *(byte *)(lVar2 - (uVar39 ^ 0xaae6710a)) = *pbVar25 ^ (byte)DAT_182670af0 ^ (byte)DAT_182670adc;
  uVar10 = DAT_182670918;
  uVar36 = DAT_1826707e0;
  uVar30 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar2 - (uVar28 ^ 0xbf7fdd2a)) =
       (*(uint *)(lVar2 + -0x2d4) ^ uVar8) * (DAT_1826707e8 ^ 0x2757e1d7);
  uVar23 = uVar34 & 0xff ^ (uint)*(byte *)(lVar2 + -0xc35);
  *puVar1 = uVar23 ^ uVar10;
  lVar3 = DAT_1826707a0;
  puVar42 = (uint *)(DAT_1826707a0 - (uVar35 ^ 0xad6fd872));
  uVar21 = uVar23 << (((byte)uVar27 ^ 0x99) & 0x1f) ^ DAT_1826709a8;
  uVar29 = (*puVar42 ^ DAT_182670800) + (uVar20 ^ 0x1c04b4df) ^ DAT_182670a94;
  puVar41 = (uint *)(DAT_1826707a0 - (uVar13 ^ 0x1dd24940));
  puVar38 = (uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707a8 ^ 0xaae67ea7));
  *(uint *)(DAT_1826707a0 + -0x7e4) = uVar29;
  uVar29 = uVar29 ^ DAT_182670a94;
  *(uint *)(lVar3 + -0xa34) = uVar21;
  uVar23 = DAT_1826707b4;
  *puVar41 = uVar29 - (uVar21 ^ DAT_1826709a8) ^ uVar31;
  *(uint *)(lVar3 + -0x42c) =
       (*puVar38 ^ uVar22) * (*(uint *)(lVar3 - (uVar30 ^ 0xaae67fbf)) ^ uVar31) ^ DAT_18267090c;
  *(uint *)(lVar3 + -0x540) =
       (*(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xffe6f1f3)) ^ uVar10) * (DAT_1826707c0 ^ 0x1dd24bc8)
       ^ DAT_182670a24;
  uVar21 = DAT_182670a8c;
  uVar29 = DAT_182670930;
  uVar31 = (*(uint *)(lVar3 - ((ulonglong)uVar36 ^ 0xaae6787f)) ^ DAT_182670a24) +
           (*(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xffe6f9d3)) ^ DAT_18267090c);
  bVar17 = (byte)uVar24 ^ 0x32;
  *(uint *)(lVar3 + -0xc04) = uVar31 ^ DAT_18267092c;
  uVar10 = DAT_182670894;
  uVar24 = uVar31 << (bVar17 & 0x1f);
  *(uint *)(lVar3 + -0x9ec) = uVar24 ^ uVar29;
  *(uint *)(lVar3 + -0x814) = uVar31 >> 0x13 ^ uVar10;
  *(uint *)(lVar3 - (uVar39 ^ 0xaae6710b)) = (uVar31 >> 0x13 | uVar24) ^ DAT_1826709b8;
  uVar10 = DAT_182670ae4;
  uVar29 = (*(uint *)(lVar3 + -0x398) ^ uVar22) + (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) ^
           DAT_182670ae4;
  uVar24 = DAT_182670ae4 ^ DAT_182670800;
  *(uint *)(lVar3 + -0x8e0) = uVar29;
  *(uint *)(lVar3 + -0x2d4) = uVar24 ^ uVar29;
  *(uint *)(lVar3 + -0x3d4) = *(uint *)(lVar3 + -0xc34) ^ DAT_182670984 ^ DAT_1826709b8;
  *(ulonglong *)(lVar3 + -0x660) = CONCAT44(uVar36,uVar27) ^ 0xc8a437f2340cacc4;
  *(uint *)(lVar3 - (uVar13 ^ 0x1dd24d4c)) =
       *(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xffe6ff2b)) ^ uVar21 ^ DAT_182670800;
  *(uint *)(lVar3 + -0x7e4) = _DAT_182670b10 ^ DAT_182670984 ^ *(uint *)(lVar3 + -0x3d4);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0xfefda0c0)) =
       (CONCAT44(uVar33,uVar27) ^ 0x9ca50095b7f7ef17) >>
       ((byte)*(undefined8 *)(lVar3 + -0x400) & 0x3f);
  bVar16 = (byte)DAT_1826709cc;
  *(ulonglong *)(lVar3 + -0x2e8) =
       (CONCAT44(uVar32,uVar32) ^ 0x3f7dc68a3f7dc68a) * 0x20 +
       (CONCAT44(uVar6,uVar36) ^ 0x85f69956aae67d2c) + *(longlong *)(lVar3 + -0x30) ^ uVar14;
  uVar32 = DAT_18267094c;
  bVar9 = *(byte *)(*(ulonglong *)(lVar3 - (uVar40 ^ 0xfefda760)) ^ (ulonglong)uVar34) ^
          (byte)DAT_182670adc;
  *(byte *)(lVar3 + -0x619) = bVar9 ^ bVar16;
  *(uint *)(lVar3 + -0xa34) = bVar9 ^ uVar32;
  uVar23 = DAT_1826707b4;
  lVar4 = DAT_1826707a0;
  uVar14 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar40 ^ 0xfefda460)) ^ CONCAT44(uVar21,uVar21)) ^
       CONCAT44(uVar10,uVar10);
  *(uint *)(lVar4 + -0x280) =
       (*(uint *)(lVar4 - ((ulonglong)uVar36 ^ 0xaae67adb)) ^ _DAT_182670b10) +
       (DAT_1826707ac ^ 0xe93c3c5e) ^ DAT_182670acc;
  bVar16 = (byte)DAT_1826707cc;
  *(longlong *)(lVar4 + -0x630) =
       *(longlong *)(lVar4 - (uVar37 ^ 0xd720ff9c)) << (((byte)uVar23 ^ 0xe0) & 0x3f);
  uVar23 = (uint)bVar9 << ((bVar16 ^ 0x47) & 0x1f);
  *puVar1 = uVar23 ^ DAT_182670ae0;
  *(uint *)(lVar4 + -0x42c) = (*puVar41 ^ DAT_182670acc) - uVar23 ^ DAT_182670aa4;
  *(uint *)(lVar4 + -0x540) =
       (*(uint *)(lVar4 - (uVar28 ^ 0xbf7fdad2)) ^ DAT_182670aa4) * (*puVar42 ^ uVar21) ^
       DAT_182670a80;
  *(uint *)(lVar4 + -0xc04) = (uVar32 ^ *puVar19) * (DAT_1826707ac ^ 0x2218716e) ^ DAT_182670924;
  uVar23 = DAT_182670818;
  uVar32 = (*(uint *)(lVar4 - (uVar13 ^ 0x1dd24e80)) ^ DAT_182670a80) +
           (*(uint *)(lVar4 - (uVar30 ^ 0xaae6713b)) ^ DAT_182670924);
  *(uint *)(lVar4 + -0x9ec) = uVar32 ^ DAT_182670818;
  *(uint *)(lVar4 + -0x814) = uVar32 << (bVar17 & 0x1f) ^ DAT_1826709e4;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xd720fbdc)) =
       (CONCAT44(uVar33,uVar20) ^ 0xfffff74091f4f04e) << 0x12;
  *(uint *)(lVar4 + -0x398) =
       (uVar23 ^ *(uint *)(lVar4 + -0x9ec)) >> (bVar15 & 0x1f) ^ DAT_18267095c;
  uVar33 = (*(uint *)(lVar4 - (uVar14 ^ 0xffe6fe67)) ^ DAT_18267095c |
           *(uint *)(lVar4 + -0x814) ^ DAT_1826709e4) ^ DAT_182670a28;
  *(uint *)(lVar4 + -0x8e0) = uVar33;
  uVar32 = uVar33 ^ _DAT_1826708f8 ^ DAT_182670a28;
  *(uint *)(lVar4 + -0xc34) =
       (*(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0xd720f2a8)) ^ DAT_182670848) +
       (uVar21 ^ *(uint *)(lVar4 + -0x68c)) ^ DAT_182670914;
  uVar33 = DAT_182670af8 ^ _DAT_1826708f8;
  uVar23 = *(uint *)(lVar4 - (uVar37 ^ 0xd720f5c8)) ^ DAT_182670908 ^ DAT_182670914;
  *(uint *)(lVar4 + -0x2d4) = uVar23;
  *(uint *)(lVar4 + -0x7e4) = uVar23 ^ DAT_1826708e8 ^ DAT_182670908;
  uVar30 = (ulonglong)DAT_18267089c;
  *(uint *)(lVar4 + -0x3d4) = uVar32;
  *(uint *)(lVar4 - (uVar14 ^ 0xffe6ff7f)) = uVar33 ^ *puVar26;
  local_58 = (byte)uVar6;
  *(ulonglong *)(lVar4 + -0x248) =
       (CONCAT44(uVar5,uVar7) ^ 0xad6fdefebf7fdee0) + *(longlong *)(lVar4 + -0x30) ^ uVar30;
  uVar14 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (CONCAT44(uVar6,uVar5) ^ 0x564e90059f8cd730) << ((local_58 ^ 0x6e) & 0x3f);
  uVar33 = _DAT_182670ad4 & 0xff;
  bVar16 = *(byte *)(*(ulonglong *)(lVar4 - (uVar14 ^ 0xaae67f77)) ^ uVar30) ^ (byte)DAT_182670adc ^
           (byte)_DAT_182670ad4;
  *(byte *)(lVar2 + -0xc35) = bVar16;
  *puVar1 = bVar16 ^ uVar33 ^ DAT_1826708a8;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar11;
  return;
}



############ FUN_ 180cf5470 size=4446 ############

void FUN_180cf5470(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong *puVar49;
  uint uVar50;
  byte local_res18;
  byte local_100;
  
  uVar10 = DAT_182670a54;
  uVar7 = DAT_182670a30;
  uVar9 = DAT_1826707f4;
  uVar8 = DAT_1826707ec;
  uVar6 = DAT_1826707d8;
  uVar36 = DAT_1826707cc;
  uVar20 = DAT_1826707c0;
  lVar1 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707f4;
  uVar34 = (ulonglong)DAT_1826707d8;
  DAT_1826707d0 = DAT_1826707d8 & DAT_1826707ac;
  uVar35 = (ulonglong)DAT_1826707cc;
  uVar41 = DAT_182670a54 - DAT_182670a30;
  uVar45 = ~DAT_1826707cc;
  uVar50 = (DAT_1826707f4 << 0x10 | DAT_1826707f4 & 0xff00) << 8 | DAT_1826707f4 >> 8 & 0xff00 |
           DAT_1826707f4 >> 0x18;
  uVar48 = (DAT_1826707c0 << 0x10 | DAT_1826707c0 & 0xff00) << 8 | DAT_1826707c0 >> 8 & 0xff00 |
           DAT_1826707c0 >> 0x18;
  uVar30 = (ulonglong)DAT_1826707ec;
  DAT_1826707dc = DAT_1826707a8 | DAT_1826707ec;
  uVar12 = *(uint *)(&DAT_18260f750 + (uVar30 ^ 0x6febf7f7) + (longlong)DAT_182670bb8) ^
           DAT_1826707a8;
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670bb8) ^ DAT_1826707dc;
  uVar23 = (ulonglong)DAT_182670a30;
  uVar46 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar21 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar15 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar14 = DAT_182670a54 & 0xff;
  uVar22 = (ulonglong)DAT_1826707c0;
  DAT_182670a54 = ((DAT_182670a54 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar25 = uVar15 ^ uVar21 ^ uVar46 ^ *(ulonglong *)(DAT_1826707a0 + -0xc18) ^
           *(ulonglong *)(DAT_1826707a0 + -0x9c8);
  DAT_1826707b0 = uVar50;
  DAT_1826707d4 = uVar45;
  DAT_1826707e4 = uVar48;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar25;
  uVar16 = (ulonglong)uVar48;
  uVar37 = (ulonglong)uVar45;
  bVar17 = (byte)uVar20;
  uVar39 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar1 - (uVar37 ^ 0xdcb44453)) =
       (uVar25 ^ uVar15) >> ((bVar17 ^ 0xf9) & 0x3f) ^ uVar39;
  lVar1 = DAT_1826707a0;
  uVar14 = uVar41 & 0xff;
  DAT_1826709bc = ((uVar41 * 0x100 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar25 = (uVar15 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) << 0x1f;
  uVar47 = (ulonglong)DAT_1826709bc;
  uVar42 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar25 ^ uVar42;
  uVar3 = DAT_1826707ac;
  uVar25 = uVar25 | uVar39 ^ *(ulonglong *)(lVar1 + -0x998);
  uVar31 = (ulonglong)DAT_1826707ac;
  *(int *)(lVar1 + -0xc0c) =
       *(int *)(lVar1 + -0x9ec) << ((byte)*(undefined4 *)(lVar1 + -0x7e4) & 0x1f);
  *(ulonglong *)(lVar1 + -0x610) = uVar25 ^ uVar15;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0xc18) =
       (uVar21 ^ *(ulonglong *)(lVar1 + -0x9c8)) - (CONCAT44(uVar6,uVar36) ^ 0xf0b8a03fd5c4967f) ^
       uVar42;
  uVar5 = DAT_1826707d0;
  uVar43 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0x7e915efb)) =
       (*(ulonglong *)(lVar1 - (uVar30 ^ 0x6febfbe7)) ^ uVar42) - uVar25 ^ uVar15;
  *(undefined8 *)(lVar2 + -0xf0) = 0xf380000000000000;
  uVar41 = DAT_1826707dc;
  puVar26 = (ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xa49ccc17));
  *puVar26 = (*(ulonglong *)(lVar2 - (uVar43 ^ 0x64005710)) ^ uVar15) +
             (CONCAT44(uVar8,uVar5) ^ 0x829a710ebdb9ae2c) ^ uVar39;
  uVar14 = DAT_1826707a8;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       CONCAT44(uVar48,uVar41) ^ 0x7c955b0b1b307b45 |
       CONCAT44(DAT_1826707a8,uVar3) ^ 0x700225d0df4a9ad0;
  iVar11 = DAT_182670a98;
  lVar2 = DAT_1826707a0;
  uVar25 = *(ulonglong *)(lVar1 + -0x5c0) ^ uVar39 ^ uVar15 ^ uVar21 ^
           *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (*(ulonglong *)(lVar1 + -0x5c0) ^ uVar39) + 0xf6427dc6ff42bf90;
  uVar19 = iVar11 + DAT_182670a44;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar25;
  uVar41 = uVar19 & 0xff;
  uVar44 = (uVar25 ^ uVar15) << 0x3b;
  DAT_1826709cc = ((uVar19 * 0x100 | uVar41) << 8 | uVar41) << 8 | uVar41;
  uVar40 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar41 = DAT_182670a44 & 0xff;
  *(ulonglong *)(lVar2 + -0xf0) =
       *(ulonglong *)(lVar2 - (uVar22 ^ 0x34b0d810)) >> 5 ^
       (uVar23 << 0x1b | (ulonglong)(uVar7 >> 5)) ^ uVar40;
  uVar23 = CONCAT44(iVar11,iVar11);
  DAT_182670a44 = ((DAT_182670a44 << 8 | uVar41) << 8 | uVar41) << 8 | uVar41;
  *(ulonglong *)(lVar2 + -0x610) = uVar44 ^ uVar23;
  lVar1 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_182670a44;
  uVar32 = CONCAT44(DAT_182670a44,DAT_182670a44);
  uVar44 = *(ulonglong *)(lVar2 - ((ulonglong)uVar50 ^ 0xd7c99c54)) ^ uVar40 | uVar44;
  uVar29 = uVar44 ^ uVar32;
  puVar38 = (ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar29;
  uVar25 = (ulonglong)DAT_1826707a8;
  uVar44 = (uVar21 ^ *puVar38) - uVar44;
  *(ulonglong *)(lVar1 + -0x5c0) = uVar44 ^ uVar23;
  uVar25 = *(ulonglong *)(lVar1 - (uVar25 ^ 0x4227cb71)) ^ uVar32 ^ uVar15 ^ uVar21 ^
           *(ulonglong *)(lVar1 + -0xac0);
  *(ulonglong *)(lVar1 + -0xc18) = uVar25;
  *(uint *)(lVar1 + -0x598) = (uVar48 ^ 0xa5073d4b) + 0x3ccc87aa;
  bVar18 = (byte)DAT_1826707dc;
  *(ulonglong *)(lVar1 + -0x9c8) = CONCAT44(uVar45,uVar5) ^ uVar25 ^ uVar32 ^ 0xd320640207ee812e;
  uVar27 = (uVar25 >> 0x20 ^ uVar27) >> 5;
  uVar25 = (uVar32 ^ uVar25) << ((bVar18 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar1 + -0xf0) = uVar25 ^ uVar40;
  *(ulonglong *)(lVar1 + -0x610) = uVar27 ^ uVar40;
  uVar4 = DAT_182670ad8;
  lVar2 = DAT_1826707a0;
  uVar27 = uVar27 | uVar25;
  puVar49 = (ulonglong *)(lVar1 - (uVar35 ^ 0x234bb76c));
  uVar25 = uVar27 ^ uVar23;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar25;
  uVar33 = CONCAT44(uVar4,uVar4);
  uVar27 = (*puVar49 ^ uVar15) - uVar27 ^ uVar33;
  *(ulonglong *)(lVar2 + -0xac0) = uVar27;
  uVar25 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x34b0d418)) ^ uVar40 ^ uVar25;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar25;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0x7e91526b)) ^ uVar40) >> (((byte)uVar3 ^ 0xb4) & 0x3f) ^
       uVar40;
  *(ulonglong *)(lVar1 + -0x610) = (uVar40 ^ uVar25) << (((byte)uVar8 ^ 0xd6) & 0x3f) ^ uVar32;
  uVar25 = *(ulonglong *)(lVar1 - (uVar30 ^ 0x6febf1ef)) ^ uVar32 |
           *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707a8 ^ 0x4227c231)) ^ uVar40;
  uVar41 = DAT_1826707a8 ^ 0xeb5ae777;
  *(ulonglong *)(lVar1 + -0xf0) = uVar25 ^ uVar23;
  *(uint *)(lVar1 + -0xc0c) = uVar41 * -0x1908f91;
  *(ulonglong *)(lVar1 + -0x558) = uVar44 - uVar25 ^ uVar32;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar33 ^ uVar32 ^ uVar42 ^ uVar27 ^ uVar29;
  *(ulonglong *)(lVar1 - (uVar35 ^ 0x234bbbfc)) =
       (CONCAT44(uVar6,uVar50) ^ 0x4405bbf22fa81b60) - (CONCAT44(uVar6,uVar48) ^ 0x5f0605fc6c1e2234)
  ;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0x610) =
       (*(ulonglong *)(lVar1 - (uVar16 ^ 0xd8d1b4fc)) >> 0x20 ^ uVar47) >> 8 ^ uVar39;
  *(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0xd8d1b5f4)) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x34b0d510)) ^ uVar42) << (bVar17 & 0x3f) ^ uVar15;
  lVar1 = DAT_1826707a0;
  puVar24 = (ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0x7e915db3));
  uVar27 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar25 = (uVar15 ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0) | uVar39 ^ *puVar24) ^ uVar27;
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar25;
  *(ulonglong *)(lVar1 + -0x9c8) =
       (uVar33 ^ *(ulonglong *)(lVar1 + -0xac0)) -
       (*(ulonglong *)(lVar1 - (uVar16 ^ 0xd8d1b9ac)) ^ uVar27) ^ uVar39;
  uVar25 = uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar32 ^ uVar23 ^ uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar25;
  uVar7 = DAT_1826707dc;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x654c748c)) =
       (uVar25 ^ uVar23) >> ((bVar17 ^ 0xec) & 0x3f) ^ uVar40;
  lVar1 = DAT_1826707a0;
  puVar38 = (ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(uint *)(DAT_1826707a0 + -0x9ec) = DAT_1826707d0 ^ 0x205ced18;
  uVar25 = (uVar23 ^ *puVar38) << 0xc;
  *(ulonglong *)(lVar1 + -0x610) = uVar25 ^ uVar33;
  *(ulonglong *)(lVar1 + -0xac0) = (uVar40 ^ *(ulonglong *)(lVar1 + -0x5c0) | uVar25) ^ uVar15;
  lVar1 = DAT_1826707a0;
  uVar25 = uVar23 ^ uVar39 ^ uVar15 ^ *(ulonglong *)(DAT_1826707a0 + -0x9c8) ^
           *(ulonglong *)(DAT_1826707a0 + -0xf0);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (*(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar32) -
       (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xa49cc317)) ^ uVar15) ^ uVar40;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0x610) = uVar25;
  uVar44 = (uVar25 ^ uVar15) >> (((byte)uVar9 ^ 0xee) & 0x3f);
  *(ulonglong *)(lVar2 + -0x5c0) = uVar44 ^ uVar27;
  uVar25 = (uVar15 ^ uVar25) << ((bVar17 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar2 + -0x558) = uVar25 ^ uVar32;
  *(ulonglong *)(lVar2 + -0xf0) = (uVar44 | uVar25) ^ uVar23;
  puVar38 = (ulonglong *)(lVar2 - (uVar37 ^ 0xdcb44bdb));
  *puVar38 = CONCAT44(uVar3,uVar7) ^ 0xfef3967d6ec2fde7 |
             CONCAT44(uVar36,uVar8) ^ 0x2d2fe6a366b472f7;
  *(ulonglong *)(lVar2 + -0x5c0) =
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0x640058c8)) ^ uVar39) -
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0xa49cc927)) ^ uVar23) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x558) =
       *(ulonglong *)(lVar2 - (uVar30 ^ 0x6febfe67)) ^ uVar23 ^ uVar40 ^ uVar42 ^
       *(ulonglong *)(lVar2 + -0xf0);
  *puVar38 = CONCAT44(uVar48,uVar9) ^ uVar40 ^ *(ulonglong *)(lVar2 + -0xc18) ^ 0x1a910b2549da505c;
  lVar1 = DAT_1826707a0;
  puVar38 = (ulonglong *)(DAT_1826707a0 + -0x558);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (*(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar42) >> (((byte)uVar9 ^ 0xd9) & 0x3f) ^ uVar42;
  uVar25 = (*puVar38 ^ uVar42) << 0x32;
  *(ulonglong *)(lVar1 + -0xf0) = uVar25 ^ uVar33;
  uVar41 = DAT_1826707a8;
  lVar2 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707a8;
  uVar44 = CONCAT44(uVar50,DAT_1826707a8);
  uVar25 = *(ulonglong *)(lVar1 - (uVar37 ^ 0xdcb44403)) ^ uVar42 | uVar25;
  puVar38 = (ulonglong *)(DAT_1826707a0 + -0x998);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar25 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x558) =
       (uVar40 ^ *puVar38) - (CONCAT44(uVar5,uVar5) ^ 0x9aa3c8de710f330a) ^ uVar42;
  *(ulonglong *)(lVar2 + -0x9c8) = (*puVar49 ^ uVar42) - uVar25 ^ uVar40;
  local_100 = (byte)uVar45;
  uVar30 = *(ulonglong *)(lVar2 + -0x5c0);
  *(ulonglong *)(lVar2 + -0x998) = uVar25 - (uVar44 ^ 0x748cd4c854b05f22) ^ uVar42;
  uVar44 = uVar30 ^ uVar21 ^ *(ulonglong *)(lVar2 + -0xac0);
  uVar29 = CONCAT44(DAT_182670a04,DAT_182670a04);
  *(ulonglong *)(lVar2 + -0x558) = uVar44;
  lVar1 = DAT_1826707a0;
  uVar25 = (uVar44 ^ uVar15) >> ((local_100 ^ 0xdb) & 0x3f);
  uVar15 = (uVar44 ^ uVar15) << 0x30;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar15 ^ uVar39;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar25 ^ uVar29;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       (CONCAT44(uVar20,uVar5) ^ 0xba4095a250f41126) -
       (CONCAT44(uVar48,uVar20) ^ 0xeb3c015e43fecb08);
  uVar25 = uVar25 | uVar15;
  *(ulonglong *)(lVar1 + -0xf0) = uVar25 ^ uVar40;
  uVar4 = DAT_182670850;
  uVar15 = (uVar30 ^ uVar21) - (CONCAT44(uVar45,uVar3) ^ 0x1799a3efb37a9298);
  *(ulonglong *)(lVar1 + -0x558) = uVar15 ^ uVar32;
  uVar30 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar1 - (uVar43 ^ 0x64005bc0)) = uVar15 - uVar25 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x4c8) =
       (uVar40 ^ *(ulonglong *)(lVar1 + -0xf0)) - (CONCAT44(uVar20,uVar6) ^ 0x325b41c15d3b9ac5) ^
       uVar30;
  uVar21 = (ulonglong)DAT_1826707dc;
  *puVar26 = CONCAT44(uVar8,DAT_1826707dc) ^ 0x3b44d198bb3123b2 |
             CONCAT44(uVar8,uVar45) ^ 0x9bb6e0b03b283f2d;
  lVar1 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar15 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(uVar15 ^ *(ulonglong *)(DAT_1826707a0 + -0xae0)) =
       uVar25 ^ uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x9c8);
  puVar38 = (ulonglong *)
            ((uVar15 ^ *(ulonglong *)(lVar1 + -0xae0)) +
            (CONCAT44(uVar5,uVar36) ^ 0x64005100234bb235) * 8);
  *(ulonglong *)(lVar1 + -0x1e8) = (ulonglong)puVar38 ^ uVar27;
  *puVar38 = uVar25 ^ uVar42 ^ *(ulonglong *)(lVar1 + -0x998);
  puVar38 = (ulonglong *)
            ((*(ulonglong *)(lVar1 - (uVar31 ^ 0x7e915143)) ^ uVar15) +
            (CONCAT44(uVar6,uVar50) ^ 0x654c714cd7c99ca6) * 8);
  *(ulonglong *)(lVar1 + -0x240) = (ulonglong)puVar38 ^ uVar46;
  uVar3 = DAT_1826707e8;
  uVar27 = (ulonglong)DAT_1826707e8;
  *puVar38 = *(ulonglong *)(lVar1 - (uVar35 ^ 0x234bb8f4)) ^ uVar25 ^ uVar30;
  puVar38 = (ulonglong *)((*(ulonglong *)(lVar1 - (uVar21 ^ 0x6feff51f)) ^ uVar15) + 0x18);
  *(ulonglong *)(lVar1 + -0x180) = (ulonglong)puVar38 ^ uVar40;
  *puVar38 = *(ulonglong *)(lVar1 - (uVar37 ^ 0xdcb44903)) ^ uVar25 ^ uVar30;
  *(undefined8 *)(lVar1 + -0x6e8) = *(undefined8 *)(lVar1 + 8);
  *(ulonglong *)(lVar1 + -0x4d0) =
       (CONCAT44(uVar7,uVar36) ^ 0x6fefffff234bb224) + *(longlong *)((uVar23 ^ 0x4227ce21) + lVar1);
  *(undefined8 *)(lVar1 - (uVar27 ^ 0xba51762a)) = *(undefined8 *)(lVar1 - (uVar16 ^ 0xd8d1b4e4));
  local_res18 = (byte)uVar10;
  *(ulonglong *)(lVar1 + -0x4e0) =
       (CONCAT44(uVar14,uVar41) ^ 0x4227ce294227ce29) * 0x80 +
       (*(ulonglong *)(lVar1 + -0xc00) ^ (ulonglong)DAT_182670a94);
  *(longlong *)(lVar1 - (uVar35 ^ 0x234bb5fc)) = DAT_182670798 + -0xa8;
  *(longlong *)(lVar1 - ((ulonglong)uVar50 ^ 0xd7c999fc)) =
       *(longlong *)(lVar1 + -0x610) << ((local_res18 ^ *(byte *)(lVar1 + -0xc18)) & 0x3f);
  *(longlong *)(lVar1 + -0x778) = DAT_182670798 + -200;
  DAT_182670798 = DAT_182670798 + -0xe8;
  *(longlong *)(lVar1 + -0x360) = DAT_182670798;
  uVar36 = DAT_1826707d0 ^ 0xaf241c23;
  uVar30 = **(ulonglong **)(lVar1 - ((ulonglong)uVar3 ^ 0xba517a9a));
  uVar20 = DAT_182670980 ^ (uint)uVar30;
  uVar41 = DAT_1826707dc ^ 0x493e09ab;
  *(ulonglong *)(lVar1 + -0x5c0) = uVar30;
  *(uint *)(lVar1 + -0x598) = uVar41 + uVar36;
  *(longlong *)(lVar1 + -0x518) = *(longlong *)(lVar1 + -0x7c8) + 0x90;
  *(ulonglong *)(lVar1 + -0x558) = (uVar40 ^ *(ulonglong *)(lVar1 + -0xf0)) << 0x37;
  uVar4 = DAT_1826707bc;
  uVar41 = uVar20 & 0xff;
  DAT_182670980 = ((uVar20 << 8 | uVar41) << 8 | uVar41) << 8 | uVar41;
  uVar15 = CONCAT44(DAT_182670980,DAT_182670980);
  **(ulonglong **)(lVar1 - (uVar43 ^ 0x64005418)) = uVar15 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x428) =
       *(longlong *)(lVar1 + -0x6e8) + (CONCAT44(uVar7,uVar3) ^ 0x6fefffffba517c73) * 8;
  *puVar24 = (CONCAT44(uVar48,uVar4) ^ 0xdbfc4a761a0abdfc) >>
             (((byte)uVar19 ^ *(byte *)(lVar1 + -0xf0)) & 0x3f);
  uVar30 = **(ulonglong **)(lVar1 - (uVar28 ^ 0xa49ccdff));
  *(ulonglong *)(lVar1 + -0xc18) = uVar30;
  DAT_1826709a8 = DAT_1826709a8 ^ *(uint *)(lVar1 - (uVar22 ^ 0x34b0ddc0));
  puVar38 = (ulonglong *)
            (*(longlong *)(lVar1 - (uVar34 ^ 0x654c7684)) +
            ((CONCAT44(uVar14,uVar8) ^ 0x4227ce296febf7fe) + 0x12) * 8);
  *(ulonglong **)(lVar1 + -0xd00) = puVar38;
  *puVar38 = uVar30 ^ uVar15;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar12;
  return;
}



############ FUN_ 180d45bc0 size=4122 ############

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

void FUN_180d45bc0(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint *puVar8;
  byte bVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  byte *pbVar14;
  uint uVar15;
  uint *puVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  
  uVar27 = DAT_18267086c;
  uVar26 = DAT_182670848;
  uVar5 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_1826707c0;
  uVar17 = DAT_1826707c0 << 0x10 | DAT_1826707c0 >> 0x10;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670cac);
  uVar7 = *(uint *)(&DAT_18260f760 + DAT_182670cac) ^ DAT_1826707c0;
  uVar20 = (ulonglong)DAT_18267081c;
  uVar15 = *(uint *)(DAT_1826707a0 + -0x42c) ^ DAT_1826708b4;
  uVar11 = (*(uint *)(DAT_1826707a0 + -0x280) ^ DAT_182670948) * 0x17;
  DAT_1826707ec = uVar17;
  *(uint *)(DAT_1826707a0 + -0xa34) = uVar11 ^ DAT_18267081c;
  uVar15 = uVar15 + uVar11;
  *(uint *)(lVar3 + -0x68c) = uVar15 ^ uVar27;
  *(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0xf993b277)) = uVar15 * 0x2000 ^ DAT_182670a74;
  bVar9 = (byte)(uVar5 >> 0x10);
  *(uint *)(lVar3 + -0x9ec) = (*(uint *)(lVar3 + -0x68c) ^ uVar27) >> (bVar9 & 0x1f) ^ DAT_182670a48
  ;
  uVar27 = (*(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0xf993b84f)) ^ DAT_182670a48 |
           *(uint *)(lVar3 + -0x3d4) ^ DAT_182670a74) ^ DAT_182670a18;
  *(uint *)(lVar3 + -0xcec) = uVar27;
  *(uint *)(lVar3 + -0x398) = uVar27 ^ DAT_1826708d4 ^ DAT_182670a18;
  uVar27 = (*(uint *)(lVar3 + -0xb54) ^ uVar26) + (*(uint *)(lVar3 + -0x43c) ^ DAT_182670980) ^
           DAT_182670858;
  *(uint *)(lVar3 + -0xc34) = uVar27;
  uVar15 = uVar27 ^ _DAT_1826708c8 ^ DAT_182670858;
  *(uint *)(lVar3 + -0xc0c) = uVar15;
  *(ulonglong *)(lVar3 + -0xd38) =
       (CONCAT44(uVar17,uVar5) ^ 0xba6efd4b89200e08) >> ((bVar9 ^ 0xaf) & 0x3f);
  *(ulonglong *)(lVar3 + -0x9c8) =
       CONCAT44(uVar5,uVar17) ^ 0x41e054226158a6ca | *(ulonglong *)(lVar3 + -0xf0);
  uVar11 = DAT_182670aa8;
  uVar24 = DAT_18267096c;
  uVar27 = DAT_182670838;
  lVar3 = DAT_1826707a0;
  puVar8 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar17 ^ 0xb1a3fa0b));
  *(uint *)(DAT_1826707a0 + -0xc04) = uVar15 ^ DAT_18267096c ^ _DAT_1826708c8;
  uVar13 = (ulonglong)DAT_182670924;
  *(uint *)(lVar3 + -0x540) = *puVar8 ^ uVar11 ^ DAT_1826708d4;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x4f8) =
       (CONCAT44(uVar5,uVar5) ^ 0xf993b1a3f993b1a1) + *(longlong *)(lVar3 + -0x30) ^ uVar13;
  *(ulonglong *)(lVar3 + -0x658) = 0x772a558d473018ed >> (((byte)uVar5 ^ 0xa7) & 0x3f);
  *(byte *)(lVar4 + -0x942) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xb1a3fd6b)) ^ uVar13) ^ (byte)uVar27 ^
       (byte)DAT_182670adc;
  uVar13 = (ulonglong)DAT_1826708d8;
  *(byte *)(*(ulonglong *)(lVar4 + -0x28) ^ (ulonglong)DAT_1826709f4) = bVar9 ^ 0x2b;
  uVar12 = DAT_182670aac;
  uVar15 = (uint)*(byte *)(lVar4 + -0x942) ^ uVar27 & 0xff;
  *(uint *)(lVar4 + -0x7e4) = uVar15 ^ DAT_182670aac;
  *(byte *)(lVar4 + -0x639) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xaa0) ^ uVar13) ^ (byte)DAT_182670adc;
  uVar15 = uVar15 << ((bVar9 ^ 0x82) & 0x1f) ^ DAT_182670ae8;
  *(uint *)(lVar4 + -0x2d4) =
       (uVar11 ^ *(uint *)(lVar4 + -0x540)) + (uVar5 ^ 0x32b7fc80) ^ DAT_182670ac0;
  *(uint *)(lVar4 + -0x8e0) = uVar15;
  uVar11 = DAT_1826708ec;
  uVar15 = DAT_1826707cc;
  uVar28 = (ulonglong)DAT_1826707cc;
  uVar23 = (*(uint *)(lVar4 - (uVar19 ^ 0xf993b377)) ^ DAT_182670ac0) -
           (*(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xb1a3f173)) ^ DAT_182670ae8) ^ DAT_1826708a8;
  *(uint *)(lVar4 + -0x280) = uVar23;
  *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xb1a3fdbf)) =
       (uVar23 ^ DAT_1826708a8) * (uVar24 ^ *(uint *)(lVar4 + -0xc04)) ^ DAT_182670a78;
  uVar23 = DAT_1826709f0;
  uVar12 = (*(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xb1a3fe77)) ^ uVar12) * (uVar5 ^ 0xf993b1a1);
  *(uint *)(lVar4 + -0xa34) = uVar12 ^ uVar27;
  uVar13 = (ulonglong)DAT_1826707dc;
  *(uint *)(lVar4 - ((ulonglong)uVar5 ^ 0xf993b72f)) =
       (*(uint *)(lVar4 + -0x42c) ^ DAT_182670a78) + uVar12 ^ uVar11;
  puVar8 = (uint *)(lVar4 - (uVar28 ^ 0x4664900f));
  *(uint *)(lVar4 + -0x3d4) =
       (*(uint *)(lVar4 - (uVar13 ^ 0xbffff933)) ^ uVar11) << (((byte)DAT_1826707f0 ^ 0xde) & 0x1f)
       ^ uVar23;
  *puVar8 = (*(uint *)(lVar4 + -0x68c) ^ uVar11) >> 0x13 ^ DAT_182670a24;
  lVar3 = DAT_1826707a0;
  uVar27 = (*(uint *)(lVar4 + -0x9ec) ^ DAT_182670a24 | *(uint *)(lVar4 + -0x3d4) ^ uVar23) ^
           DAT_182670ad8;
  *(uint *)(lVar4 + -0x43c) = uVar27;
  uVar25 = (*(uint *)(lVar4 + -0xb54) ^ uVar26) + (uVar24 ^ *(uint *)(lVar3 + -0xc04)) ^
           DAT_182670810;
  *(uint *)(lVar3 + -0xc34) = uVar25;
  uVar12 = DAT_182670954;
  uVar24 = DAT_182670884;
  uVar11 = DAT_1826707c0;
  uVar25 = uVar25 ^ DAT_182670958 ^ DAT_182670810;
  puVar16 = (uint *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0x21e6cb47));
  uVar18 = uVar27 ^ DAT_182670ad8 ^ uVar26;
  uVar22 = DAT_182670884 & 0xff;
  uVar27 = *puVar16;
  *(uint *)(lVar3 + -0xc0c) = uVar25;
  *(uint *)(lVar3 + -0xcec) = (uVar27 ^ uVar23) + 0x12978914;
  *(uint *)(lVar3 + -0x398) = uVar18;
  uVar23 = DAT_1826707f4;
  uVar27 = uVar25 ^ uVar12 ^ DAT_182670958;
  uVar18 = uVar18 ^ DAT_182670984;
  *(uint *)(lVar3 + -0x540) = uVar27;
  uVar13 = CONCAT44(uVar5,DAT_1826707c4);
  *(ulonglong *)(lVar3 + -0x438) = CONCAT44(uVar15,uVar11) << 0x22 ^ 0xa3836e5000000000;
  *(uint *)(lVar3 + -0x2d4) = (uVar27 ^ uVar12) + 0x760ce102;
  uVar25 = DAT_182670ae0;
  pbVar14 = (byte *)((uVar13 ^ 0xf993b1a3aff6fd7f) * 0x20 + *(longlong *)(lVar3 + -0x30) + 0xd);
  *(uint *)(lVar3 + -0x8e0) = uVar18 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x9a0) = (ulonglong)pbVar14 ^ uVar20;
  *(byte *)(lVar3 + -0x549) = *pbVar14 ^ (byte)uVar24 ^ (byte)DAT_182670adc;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x9e8) ^ (ulonglong)DAT_1826709dc) = 0xe;
  *(uint *)(lVar3 - ((ulonglong)uVar11 ^ 0xf993b323)) =
       *(byte *)(lVar3 - ((ulonglong)DAT_1826707e0 ^ 0xa3b196b0)) ^ uVar22 ^ uVar25;
  uVar13 = (ulonglong)DAT_1826707c8;
  *(longlong *)(lVar3 + -0x68) = *(longlong *)(lVar3 + -0x400) + -0x62cd9d92b004a3db;
  uVar15 = DAT_1826707bc;
  uVar20 = (ulonglong)DAT_1826707d0;
  uVar19 = (ulonglong)DAT_1826707bc;
  uVar24 = (*(uint *)(lVar3 - (uVar13 ^ 0xd6da6e6d)) ^ DAT_182670984) + (uVar23 ^ 0x6895deda) ^
           DAT_182670a50;
  *(uint *)(lVar3 + -0x7e4) = uVar24;
  uVar27 = DAT_1826707d8;
  uVar24 = uVar24 ^ DAT_182670a50;
  bVar10 = (byte)uVar15;
  uVar11 = (*(uint *)(lVar3 - (uVar20 ^ 0xfffffd3f)) ^ uVar25) << (bVar10 & 0x1f) ^ DAT_182670af0;
  uVar13 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar3 + -0xa34) = uVar11;
  uVar26 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  uVar11 = uVar24 - (uVar11 ^ DAT_182670af0) ^ DAT_182670930;
  *(ulonglong *)(DAT_1826707a0 + -0x410) = CONCAT44(uVar27,DAT_1826707b8) ^ 0xcd180890212027a4;
  *(uint *)(lVar3 + -0x42c) = uVar11;
  uVar27 = DAT_182670a04;
  *(uint *)(lVar3 + -0x68c) =
       (*(uint *)(lVar3 - (uVar13 ^ 0xa3b197d5)) ^ DAT_182670930) *
       (uVar12 ^ *(uint *)(lVar3 + -0x540)) ^ DAT_1826709c4;
  *puVar8 = (*(uint *)(lVar3 + -0x280) ^ uVar25) * 0xd ^ DAT_1826708e4;
  uVar24 = DAT_1826707c0;
  uVar11 = (*(uint *)(lVar3 + -0x9ec) ^ DAT_1826708e4) + (*(uint *)(lVar3 + -0x68c) ^ DAT_1826709c4)
  ;
  bVar2 = (byte)DAT_1826707c0;
  *(uint *)(lVar3 + -0xc04) = uVar11 ^ uVar27;
  uVar18 = uVar11 << ((bVar2 ^ 0xae) & 0x1f) ^ DAT_1826709c0;
  bVar2 = (byte)DAT_1826707cc;
  *(uint *)(lVar3 + -0x3d4) = uVar18;
  uVar18 = uVar18 ^ DAT_1826709c0;
  uVar13 = (ulonglong)DAT_1826707a8;
  *(uint *)(lVar3 + -0xcec) =
       (uVar27 ^ *(uint *)(lVar3 + -0xc04)) >> ((bVar2 ^ 0xf0) & 0x1f) ^ DAT_1826708b8;
  uVar25 = DAT_1826708e8;
  uVar6 = DAT_1826707d4;
  lVar4 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826708e8;
  uVar20 = CONCAT44(uVar26,DAT_1826707d4);
  puVar8 = (uint *)(DAT_1826707a0 + -0x540);
  uVar11 = *(uint *)(DAT_1826707a0 + -0xb54) ^ DAT_182670848;
  *(uint *)(DAT_1826707a0 + -0xc34) =
       (*(uint *)(lVar3 - (uVar13 ^ 0x84804cc8)) ^ DAT_1826708b8 | uVar18) ^ DAT_1826708e8;
  uVar27 = DAT_1826707b0;
  uVar12 = uVar11 + (uVar12 ^ *puVar8) ^ DAT_182670894;
  uVar13 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar4 + -0x43c) = uVar12;
  uVar11 = DAT_1826707b0;
  *(uint *)(lVar4 - (uVar13 ^ 0xe6aa3371)) = uVar12 ^ DAT_1826709cc ^ DAT_182670894;
  uVar12 = DAT_1826708cc;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar24 ^ 0xf993b01b)) =
       (CONCAT44(uVar11,uVar15) ^ 0xac4ab7262e7af720) -
       (CONCAT44(uVar6,DAT_1826707c8) ^ 0x750843d3a5d3ba11);
  *(uint *)(lVar4 - (uVar28 ^ 0x46649a7b)) = *(uint *)(lVar4 + -0xc34) ^ DAT_182670ac4 ^ uVar25;
  *(uint *)(lVar4 - ((ulonglong)DAT_1826707ac ^ 0xe6aa3da9)) =
       *(uint *)(lVar4 + -0xc0c) ^ uVar12 ^ DAT_1826709cc;
  uVar15 = DAT_1826707b4;
  bVar2 = (byte)DAT_1826707b4;
  *(uint *)(lVar4 + -0x8e0) = *(uint *)(lVar4 + -0x398) ^ DAT_1826708a0 ^ DAT_182670ac4;
  uVar13 = (ulonglong)DAT_182670878;
  *(int *)(lVar4 + -0x7e4) = (int)(uVar26 ^ 0x4b4eddc4) >> ((bVar2 ^ 0x8f) & 0x1f);
  uVar25 = DAT_182670980;
  uVar24 = DAT_1826707f0;
  pbVar14 = (byte *)((uVar20 ^ 0xb99b65dc4f6a19e5) * 0x20 +
                     (CONCAT44(uVar15,uVar27) ^ 0x21e6c8932a5b6093) + *(longlong *)(lVar4 + -0x30));
  uVar15 = DAT_182670980 & 0xff;
  *(ulonglong *)(lVar4 + -0x2e8) = (ulonglong)pbVar14 ^ uVar13;
  uVar26 = DAT_1826707e4;
  uVar20 = (ulonglong)DAT_1826707e4;
  *(byte *)(lVar4 + -0xd01) = *pbVar14 ^ (byte)uVar25 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar4 + -0x8a8) ^ uVar21) = (byte)uVar6 ^ 0x7c;
  uVar25 = DAT_1826709d4;
  uVar13 = (ulonglong)DAT_1826707c8;
  *(uint *)(lVar4 + -0xa34) =
       *(byte *)(lVar4 - ((ulonglong)DAT_1826707dc ^ 0xbffff2be)) ^ uVar15 ^ DAT_1826709d4;
  uVar13 = *(ulonglong *)(lVar4 - (uVar13 ^ 0xd6da62ad));
  *(uint *)(lVar4 + -0x42c) =
       (*(uint *)(lVar4 + -0x8e0) ^ DAT_1826708a0) + (uVar5 ^ 0x32b7fc80) ^ DAT_182670ab0;
  *(ulonglong *)(lVar4 + -0x890) = uVar13 >> ((bVar9 ^ 0x8b) & 0x3f);
  uVar5 = DAT_182670ae4;
  uVar15 = DAT_1826707d8;
  uVar21 = (ulonglong)DAT_1826707d8;
  *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0xb1a3fb13)) =
       (*(uint *)(lVar4 - (uVar20 ^ 0xd3c8ec15)) ^ uVar25) << 0x11 ^ DAT_182670ae4;
  *(longlong *)(lVar4 + -0x118) =
       *(longlong *)(lVar4 + -0xa18) <<
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)uVar26 ^ 0xd3c8eeb1)) & 0x3f);
  *(uint *)(lVar4 + -0x68c) =
       (*(uint *)(lVar4 + -0x42c) ^ DAT_182670ab0) - (uVar5 ^ *(uint *)(lVar4 + -0x280)) ^
       DAT_182670a24;
  *(ulonglong *)(lVar4 + -0x610) =
       (CONCAT44(uVar6,uVar15) ^ 0x5b8459bf49102015) - *(longlong *)(lVar4 + -0x658);
  uVar15 = DAT_182670864;
  uVar13 = (ulonglong)DAT_1826707c4;
  bVar2 = (byte)DAT_1826707c4;
  *(uint *)(lVar4 + -0x9ec) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xa3b19575)) ^ DAT_182670a24) *
       (*(uint *)(lVar4 + -0x2d4) ^ uVar12) ^ DAT_18267082c;
  uVar18 = DAT_182670a38;
  uVar5 = DAT_1826707e8;
  *(uint *)(DAT_1826707a0 - (uVar13 ^ 0xaff6f17b)) =
       (*(uint *)(lVar4 + -0xa34) ^ uVar25) * (DAT_1826707e8 ^ 0xf6fa7fe5) ^ uVar15;
  lVar3 = DAT_1826707a0;
  puVar8 = (uint *)(DAT_1826707a0 + -0xc04);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       CONCAT44(uVar23,uVar27) ^ 0x530ccc479125c1c5 | *(ulonglong *)(DAT_1826707a0 + -0x658);
  lVar4 = DAT_1826707a0;
  uVar27 = (uVar15 ^ *puVar8) + (*(uint *)(lVar3 + -0x9ec) ^ DAT_18267082c);
  *(uint *)(lVar3 + -0x3d4) = uVar27 ^ uVar18;
  uVar25 = DAT_182670afc;
  uVar13 = (ulonglong)DAT_182670afc;
  *(uint *)(lVar3 - (uVar19 ^ 0x5ed4795d)) = uVar27 * 0x2000 ^ DAT_182670978;
  *(byte *)(lVar4 - ((ulonglong)DAT_1826707dc ^ 0xbffff38a)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x3e0) ^ uVar13) ^ (byte)DAT_182670adc;
  lVar3 = DAT_1826707a0;
  uVar15 = (uVar18 ^ *(uint *)(lVar4 + -0x3d4)) >> ((bVar2 ^ 0x6c) & 0x1f) ^ DAT_182670ae0;
  uVar13 = (ulonglong)DAT_1826707d0;
  uVar27 = *(uint *)(DAT_1826707a0 + -0xcec) ^ DAT_182670978;
  *(uint *)(DAT_1826707a0 + -0x540) = uVar15;
  *(uint *)(lVar3 - (uVar13 ^ 0xfffffb83)) = (uVar27 | uVar15 ^ DAT_182670ae0) ^ DAT_182670910;
  bVar2 = (byte)DAT_182670854;
  uVar27 = DAT_1826707c0;
  uVar13 = (ulonglong)DAT_182670ab4;
  uVar20 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar3 + -0xc34) =
       (*(uint *)(lVar3 - (uVar21 ^ 0x8d66d802)) ^ uVar12) +
       (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) ^ DAT_182670abc;
  *(uint *)(lVar3 - (uVar20 ^ 0xa3b19ff5)) =
       *(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x21e6c4e7)) ^ DAT_1826709bc ^ DAT_182670abc;
  uVar15 = *(uint *)(lVar3 + -0xc0c) ^ DAT_18267093c ^ DAT_1826709bc;
  *(uint *)(lVar3 + -0x398) = *(uint *)(lVar3 + -0x43c) ^ DAT_182670800 ^ DAT_182670910;
  *(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0xa3b1941d)) = uVar15;
  *(uint *)(lVar3 + -0x8e0) = *(uint *)(lVar3 + -0x398) ^ DAT_182670938 ^ DAT_182670800;
  uVar15 = DAT_1826707d0;
  *(ulonglong *)(lVar3 + -0x548) =
       (CONCAT44(uVar17,uVar23) ^ 0x2bf4f1b6c399f49f) >> (((byte)DAT_1826707ac ^ 0x7e) & 0x3f);
  uVar20 = (ulonglong)DAT_1826707ac;
  pbVar14 = (byte *)(*(longlong *)(lVar3 - (uVar20 ^ 0xe6aa3f4d)) +
                     (CONCAT44(uVar26,DAT_1826707c8) ^ 0xd3c8e621d6da668d) * 0x20 +
                    (CONCAT44(uVar15,uVar27) ^ 0xffffffbff993b1a0));
  *(ulonglong *)(lVar3 + -0x1f0) = (ulonglong)pbVar14 ^ uVar13;
  uVar21 = (ulonglong)DAT_1826707b0;
  *(byte *)(lVar3 + -0x181) = *pbVar14 ^ bVar2 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar3 + -0x1d8) ^ (ulonglong)DAT_182670aac) = (byte)uVar27 ^ 0x32;
  uVar27 = DAT_1826707b4;
  uVar13 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar3 + -0x5c0) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0x2a5b6133)) ^ CONCAT44(uVar11,uVar6) ^ 0xa6f6e1c9e8b40d90;
  uVar11 = DAT_1826707cc;
  *(uint *)(lVar3 + -0x42c) = (bVar2 ^ *(byte *)(lVar3 + -0x181)) ^ DAT_182670a3c;
  uVar26 = DAT_1826709e8;
  *(uint *)(lVar3 - (uVar19 ^ 0x5ed47731)) =
       (*(uint *)(lVar3 - (uVar13 ^ 0x21e6c073)) ^ DAT_182670938) + (uVar27 ^ 0xeac285b0) ^
       DAT_1826709e8;
  uVar23 = *(uint *)(lVar3 + -0x42c) ^ DAT_182670a3c;
  *(uint *)(lVar3 + -0x68c) = uVar23 << (((byte)uVar11 ^ 0xf2) & 0x1f) ^ DAT_182670884;
  *(ulonglong *)(lVar3 + -0x660) =
       *(ulonglong *)(lVar3 + -0x410) >> ((byte)*(longlong *)(lVar3 + -0x5c0) & 0x3f);
  uVar11 = (uVar26 ^ *(uint *)(lVar3 + -0x280)) -
           (*(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0xf6fa7971)) ^ DAT_182670884);
  uVar27 = *(uint *)(lVar3 + -0x7e4) ^ DAT_18267093c;
  *(uint *)(lVar3 + -0xa34) = uVar11 ^ uVar25;
  uVar13 = (ulonglong)DAT_1826707a8;
  *(longlong *)(lVar3 + -0xb70) = *(longlong *)(lVar3 + -0x5c0) << ((bVar10 ^ 0xad) & 0x3f);
  uVar26 = uVar11 * uVar27 ^ DAT_1826708e4;
  *(uint *)(lVar3 + -0x9ec) = uVar26;
  uVar11 = DAT_182670a48;
  uVar27 = DAT_182670a44;
  uVar26 = uVar26 ^ DAT_1826708e4;
  *(ulonglong *)(lVar3 + -0xce0) =
       *(ulonglong *)(lVar3 - (uVar13 ^ 0x8480456c)) ^ CONCAT44(uVar15,uVar24) ^ 0xc3f958f03dee77d0;
  uVar23 = (uVar17 ^ 0xb1a3f990) * uVar23;
  *(ulonglong *)(lVar3 + -0x558) = (uVar20 ^ 0xdc57cb50) >> 3;
  *(uint *)(lVar3 + -0xc04) = uVar23 ^ uVar11;
  uVar26 = uVar26 + uVar23;
  *(uint *)(lVar3 + -0x3d4) = uVar26 ^ uVar27;
  *(uint *)(lVar3 + -0xcec) = uVar26 * 0x2000 ^ DAT_182670ac8;
  uVar27 = (uVar27 ^ *puVar16) >> (((byte)uVar5 ^ 0xee) & 0x1f);
  *(uint *)(lVar3 + -0x540) = uVar27 ^ DAT_182670818;
  *(uint *)(lVar3 - ((ulonglong)DAT_1826707dc ^ 0xbffffd6b)) =
       (*(uint *)(lVar3 - (uVar21 ^ 0x2a5b6c67)) ^ DAT_182670ac8 | uVar27) ^ DAT_182670af4;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar7 * 4) = uVar1 ^ uVar17;
  return;
}



############ FUN_ 180c913a0 size=4224 ############

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

void FUN_180c913a0(void)

{
  uint uVar1;
  longlong lVar2;
  uint uVar3;
  undefined4 uVar4;
  uint uVar5;
  byte bVar6;
  byte bVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  byte *pbVar15;
  ulonglong uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  uint *puVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint *puVar28;
  ulonglong uVar29;
  uint uVar30;
  uint *puVar31;
  ulonglong uVar32;
  uint *puVar33;
  
  uVar27 = DAT_1826709dc;
  bVar21 = (byte)DAT_1826709a8;
  uVar9 = DAT_1826707ec;
  uVar19 = DAT_1826707e4;
  lVar2 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_1826707e4;
  uVar32 = (ulonglong)DAT_1826707ec;
  uVar25 = DAT_1826707e4 * DAT_1826707ec;
  uVar8 = *(uint *)(&DAT_18260f758 + DAT_182670d78) ^ DAT_1826707ec;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar20 ^ 0xcadabfef) + (longlong)DAT_182670d78);
  uVar30 = DAT_1826707e4 ^ 0x1fef2dc;
  uVar14 = (ulonglong)uVar25;
  bVar6 = *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x5b13f6e3)) ^ (ulonglong)DAT_18267082c
                   ) ^ (byte)DAT_1826709a8 ^ (byte)DAT_182670adc;
  uVar10 = CONCAT44(uVar25,DAT_1826707ec);
  DAT_1826707c0 = uVar25;
  *(byte *)(DAT_1826707a0 + -0xc35) = bVar6;
  uVar17 = (uint)(bVar6 ^ bVar21);
  uVar12 = *(uint *)(lVar2 + -0x42c) ^ DAT_182670a34;
  bVar21 = (byte)uVar25;
  *(ulonglong *)(lVar2 + -0x588) = uVar10 ^ 0xc53d65e0402a80e7 | *(ulonglong *)(lVar2 + -0x660);
  uVar12 = uVar12 + uVar30 ^ DAT_1826709ac;
  *(uint *)(lVar2 + -0x2d4) = uVar12;
  uVar12 = uVar12 ^ DAT_1826709ac;
  puVar28 = (uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x5b13f487));
  *(uint *)(lVar2 + -0x398) = uVar17 ^ uVar27;
  uVar17 = uVar17 << ((bVar21 ^ 0x7c) & 0x1f) ^ DAT_182670804;
  *(uint *)(lVar2 + -0x7e4) = uVar17;
  *puVar28 = uVar12 - (uVar17 ^ DAT_182670804) ^ DAT_182670858;
  *(uint *)(lVar2 + -0x540) =
       (*(uint *)(lVar2 + -0x43c) ^ DAT_182670910) * (*(uint *)(lVar2 + -0x14) ^ DAT_182670858) ^
       DAT_182670974;
  *(uint *)(lVar2 + -0x68c) =
       (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0xcadabc67)) ^ uVar27) * (uVar9 ^ 0x5b13f48a) ^
       DAT_1826709d0;
  uVar12 = DAT_182670920;
  puVar24 = (uint *)(lVar2 - ((ulonglong)uVar25 ^ 0xdf884de1));
  uVar17 = (*(uint *)(lVar2 - ((ulonglong)uVar25 ^ 0xdf884e2d)) ^ DAT_182670974) +
           (*puVar24 ^ DAT_1826709d0);
  *(uint *)(lVar2 + -0x140) = uVar17 ^ DAT_182670920;
  *(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0xcadab3cb)) =
       uVar17 << (((byte)uVar9 ^ 0x9e) & 0x1f) ^ DAT_182670ab8;
  puVar33 = (uint *)(lVar2 - (uVar32 ^ 0x5b13f8a7));
  *(uint *)(lVar2 + -0x598) =
       (uVar12 ^ *(uint *)(lVar2 + -0x140)) >> ((bVar21 ^ 0x7e) & 0x1f) ^ DAT_182670940;
  uVar4 = DAT_182670960;
  *(uint *)(lVar2 + -0x3d4) =
       (*(uint *)(lVar2 - ((ulonglong)uVar19 ^ 0xcadaba67)) ^ DAT_182670940 |
       *puVar33 ^ DAT_182670ab8) ^ DAT_1826708b4;
  uVar10 = CONCAT44(uVar4,uVar4);
  uVar12 = *(uint *)(lVar2 + -0x43c) ^ DAT_182670910;
  *(ulonglong *)(lVar2 + -0xbb0) =
       *(ulonglong *)(lVar2 + -0x68) ^ CONCAT44(uVar25,uVar25) ^ uVar10 ^ 0x8d126cb80ae30ac8;
  *(uint *)(lVar2 + -0xa34) = uVar12 + (*(uint *)(lVar2 + -0xb54) ^ DAT_182670848) ^ DAT_182670aa4;
  *(ulonglong *)(lVar2 - (uVar14 ^ 0xdf884f7d)) =
       CONCAT44(uVar9,uVar9) ^ CONCAT44(uVar25,uVar19) ^ 0xd25a337e1b4f5489;
  uVar13 = DAT_182670a80;
  uVar17 = DAT_1826709d8;
  *(uint *)(lVar2 - (uVar20 ^ 0xcadab613)) =
       *(uint *)(lVar2 - (uVar20 ^ 0xcadab5cb)) ^ DAT_182670808 ^ DAT_182670aa4;
  uVar12 = *(uint *)(lVar2 + -0x3d4) ^ DAT_182670934 ^ DAT_1826708b4;
  *(longlong *)(lVar2 + -0x4c8) = *(longlong *)(lVar2 + -0x5c0) + -0x6bfcd218f7de06b6;
  *(uint *)(lVar2 + -0x814) = uVar12;
  uVar12 = uVar12 ^ DAT_182670934;
  *(uint *)(lVar2 + -0xc04) = *(uint *)(lVar2 - (uVar32 ^ 0x5b13fd7f)) ^ uVar13 ^ DAT_182670808;
  *(uint *)(lVar2 + -0x8e0) = uVar12 ^ uVar27;
  *(undefined8 *)(lVar2 + -0xa18) = 0x4c10be;
  pbVar15 = (byte *)((CONCAT44(uVar25,uVar25) ^ 0xdf884b6ddf884b6d) * 0x20 +
                     (CONCAT44(uVar25,uVar19) ^ 0xdf884b6dcadabffb) + *(longlong *)(lVar2 + -0x30));
  *(ulonglong *)(lVar2 + -0x270) = (ulonglong)pbVar15 ^ (ulonglong)DAT_182670838;
  uVar12 = DAT_1826709b4 & 0xff;
  *(byte *)(lVar2 - (uVar20 ^ 0xcadab3ca)) = *pbVar15 ^ (byte)DAT_1826709b4 ^ (byte)DAT_182670adc;
  uVar27 = (uVar27 ^ *(uint *)(lVar2 + -0x8e0)) + uVar30 ^ DAT_182670a2c;
  *(uint *)(lVar2 + -0x280) = uVar12 ^ *(byte *)(lVar2 + -0xc35) ^ uVar17;
  *(ulonglong *)(lVar2 + -0x6b8) = *(ulonglong *)(lVar2 + -0xce0) ^ uVar10 ^ 0x2fea0993247a73e1;
  *(uint *)(lVar2 - (uVar32 ^ 0x5b13f89f)) = uVar27;
  uVar27 = DAT_182670a90;
  uVar30 = *(uint *)(lVar2 + -0xc0c) ^ DAT_182670a2c;
  *(ulonglong *)(lVar2 + -0x1b8) =
       CONCAT44(uVar9,uVar25) ^ 0x2eac30585f8f8f0c | *(ulonglong *)(lVar2 + -0x3b0);
  uVar12 = (*(uint *)(lVar2 + -0x280) ^ uVar17) << 0x11 ^ DAT_182670a00;
  *(uint *)(lVar2 + -0x42c) = uVar12;
  uVar12 = uVar30 - (uVar12 ^ DAT_182670a00) ^ DAT_18267086c;
  *(uint *)(lVar2 + -0x2d4) = uVar12;
  uVar10 = (ulonglong)DAT_1826707d8;
  uVar30 = (*(uint *)(lVar2 - (uVar32 ^ 0x5b13f897)) ^ uVar13) * (uVar12 ^ DAT_18267086c) ^
           DAT_182670830;
  *(uint *)(lVar2 + -0x7e4) = uVar30;
  uVar12 = DAT_182670854;
  uVar30 = uVar30 ^ DAT_182670830;
  *(uint *)(lVar2 + -0x14) =
       (*(uint *)(lVar2 - (uVar10 ^ 0x4a7891ff)) ^ uVar17) * (uVar25 ^ 0xdf884b69) ^ DAT_182670854;
  uVar30 = (uVar12 ^ *puVar28) + uVar30;
  bVar6 = (byte)DAT_1826707d0;
  *(uint *)(lVar2 + -0x398) = uVar30 ^ uVar27;
  *(uint *)(lVar2 + -0x540) = uVar30 << ((bVar6 ^ 0x7a) & 0x1f) ^ DAT_182670ac0;
  uVar12 = (*(uint *)(lVar2 + -0x398) ^ uVar27) >> 0x13 ^ DAT_182670828;
  *(uint *)(lVar2 + -0x68c) = uVar12;
  uVar26 = (*(uint *)(lVar2 - (uVar32 ^ 0x5b13f1d3)) ^ DAT_182670ac0 | uVar12 ^ DAT_182670828) ^
           DAT_182670880;
  puVar31 = (uint *)(lVar2 - (uVar20 ^ 0xcadab4ab));
  *(uint *)(lVar2 + -0x140) = uVar26;
  *(uint *)(lVar2 + -0xc34) =
       (*(uint *)(lVar2 + -0xc04) ^ uVar13) + (*puVar31 ^ DAT_182670848) ^ DAT_1826709cc;
  *(uint *)(lVar2 + -0x598) = *puVar33 ^ DAT_1826709f4 ^ DAT_1826709cc;
  uVar30 = DAT_1826708d0;
  uVar27 = DAT_1826707e0;
  uVar17 = DAT_1826707d4;
  uVar12 = DAT_1826707a8;
  uVar13 = DAT_18267095c ^ DAT_182670880;
  uVar10 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar2 + -0x43c) = (uVar25 ^ 0xa877cdeb) + 0x50b637f8;
  *(uint *)(lVar2 - (uVar10 ^ 0x8fc90882)) = uVar13 ^ uVar26;
  uVar13 = DAT_1826707f4;
  uVar10 = (ulonglong)DAT_182670974;
  puVar28 = (uint *)(lVar2 - (uVar20 ^ 0xcadabc2b));
  *puVar28 = *(uint *)(lVar2 + -0x598) ^ uVar30 ^ DAT_1826709f4;
  bVar6 = (byte)DAT_182670a54;
  uVar22 = *(uint *)(lVar2 + -0xa34) ^ DAT_182670958 ^ DAT_18267095c;
  pbVar15 = (byte *)((CONCAT44(uVar9,uVar12) ^ 0x5b13f493bfbfcaca) * 0x20 +
                     (CONCAT44(uVar17,DAT_1826707b4) ^ 0xc5b6d329681cff9e) +
                    *(longlong *)(lVar2 + -0x30));
  *(uint *)(lVar2 + -0x9ec) = uVar22;
  uVar22 = uVar22 ^ DAT_182670958;
  *(ulonglong *)(lVar2 + -0x270) = (ulonglong)pbVar15 ^ uVar10;
  uVar9 = DAT_1826708b8;
  uVar17 = DAT_1826707ec;
  bVar7 = *pbVar15 ^ bVar6 ^ (byte)DAT_182670adc;
  uVar26 = (uint)(bVar6 ^ bVar7);
  *(byte *)(lVar2 + -0xc35) = bVar7;
  uVar22 = uVar22 + (uVar17 ^ 0x9037b9b0) ^ DAT_1826709f0;
  *(uint *)(lVar2 + -0x8e0) = uVar22;
  uVar22 = uVar22 ^ DAT_1826709f0;
  *(uint *)(lVar2 + -0x814) = uVar26 ^ uVar9;
  uVar17 = (*(uint *)(lVar2 - ((ulonglong)uVar13 ^ 0x5cbabc8f)) ^ uVar9) << 0x11 ^ DAT_1826709e8;
  *(uint *)(lVar2 + -0xc0c) = uVar17;
  uVar22 = uVar22 - (uVar17 ^ DAT_1826709e8) ^ DAT_1826708f4;
  *(uint *)(lVar2 + -0x42c) = uVar22;
  uVar17 = DAT_1826707f0;
  uVar9 = DAT_1826707e4 ^ 0xcadabff0;
  uVar10 = CONCAT44(DAT_1826707b8,uVar12);
  uVar22 = (uVar22 ^ DAT_1826708f4) * (*(uint *)(lVar2 + -0x3d4) ^ uVar30) ^ DAT_182670a1c;
  *(uint *)(lVar2 + -0x2d4) = uVar22;
  uVar9 = uVar26 * uVar9 ^ DAT_182670aec;
  uVar22 = uVar22 ^ DAT_182670a1c;
  *(uint *)(lVar2 + -0x280) = uVar9;
  *(uint *)(lVar2 + -0x7e4) = uVar22 + (uVar9 ^ DAT_182670aec) ^ DAT_1826709ac;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (uVar10 ^ 0x1a5af125a8388ff7) + (CONCAT44(uVar17,uVar19) ^ 0xf96605c418db63b7);
  uVar22 = _DAT_1826708bc;
  uVar17 = *(uint *)(lVar2 + -0x7e4) ^ DAT_1826709ac;
  *(uint *)(lVar2 + -0x14) =
       (*(uint *)(lVar2 - (uVar20 ^ 0xcadab81b)) ^ DAT_1826709ac) << (((byte)uVar27 ^ 0xbb) & 0x1f)
       ^ DAT_1826708cc;
  *(uint *)(lVar2 - ((ulonglong)uVar13 ^ 0x5cbab703)) = uVar17 >> 0x13 ^ DAT_182670874;
  *(uint *)(lVar2 + -0x540) =
       (*(uint *)(lVar2 + -0x14) ^ DAT_1826708cc | *(uint *)(lVar2 + -0x398) ^ DAT_182670874) ^
       uVar22;
  uVar17 = DAT_1826707e8;
  *puVar24 = (*puVar28 ^ uVar30) + (*puVar31 ^ DAT_182670848) ^ DAT_182670814;
  uVar26 = *(uint *)(lVar2 + -0x68c) ^ DAT_182670aa8 ^ DAT_182670814;
  *(uint *)(lVar2 + -0xc04) = uVar26;
  *(ulonglong *)(lVar2 + -0x658) =
       CONCAT44(uVar17,uVar12) ^ 0x1ebf588cd59610f2 | *(ulonglong *)(lVar2 + -0x410);
  uVar11 = DAT_1826709c8;
  uVar30 = DAT_182670994;
  uVar9 = DAT_1826707dc;
  uVar13 = DAT_1826707c8;
  uVar16 = (ulonglong)DAT_1826707bc;
  bVar6 = (byte)DAT_1826707bc;
  uVar29 = (ulonglong)DAT_1826707c8;
  uVar26 = uVar26 ^ DAT_1826709c8 ^ DAT_182670aa8;
  *(uint *)(lVar2 + -0xc34) = uVar22 ^ DAT_1826709b4 ^ *(uint *)(lVar2 + -0x540);
  uVar10 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0x2b0) = *(ulonglong *)(lVar2 + -0x6b8) >> ((bVar6 ^ 0x23) & 0x3f);
  *(uint *)(lVar2 + -0x43c) = uVar26;
  *(uint *)(lVar2 - (uVar14 ^ 0xdf884a2d)) =
       *(uint *)(lVar2 - (uVar10 ^ 0x57476ddf)) ^ DAT_18267099c ^ DAT_1826709b4;
  uVar10 = CONCAT44(DAT_1826707d0,uVar27);
  *(ulonglong *)(lVar2 - (uVar16 ^ 0x1a6c0f8)) = (uVar29 ^ 0xb8520000) >> 0xf;
  pbVar15 = (byte *)((uVar10 ^ 0x9989c0778fc902ac) +
                     (CONCAT44(uVar19,uVar9) ^ 0xcadabfff80420440) * 0x20 +
                    *(longlong *)(lVar2 + -0x30));
  *(ulonglong *)(lVar2 + -0x270) = (ulonglong)pbVar15 ^ (ulonglong)DAT_1826708d8;
  bVar6 = *pbVar15 ^ (byte)uVar11 ^ (byte)DAT_182670adc;
  *(byte *)(lVar2 + -0xc35) = bVar6;
  uVar18 = uVar11 & 0xff ^ (uint)bVar6;
  uVar10 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar2 + -0x598) = uVar18 ^ uVar30;
  uVar23 = (*(uint *)(lVar2 - (uVar10 ^ 0xc5b6d269)) ^ DAT_18267099c) + (uVar12 ^ 0x749b87e9) ^
           DAT_182670af8;
  *(uint *)(lVar2 + -0xa34) = uVar23;
  uVar5 = DAT_182670a38;
  uVar3 = DAT_1826708e4;
  uVar30 = DAT_182670848;
  uVar19 = DAT_1826707c4;
  uVar27 = DAT_1826707b4;
  uVar23 = uVar23 ^ DAT_182670af8;
  uVar29 = (ulonglong)DAT_1826707b4;
  *(uint *)(lVar2 + -0x9ec) = uVar18 << (((byte)DAT_1826707c4 ^ 0xae) & 0x1f) ^ DAT_182670a3c;
  uVar26 = DAT_182670860;
  uVar18 = (uVar17 ^ 0xcacabfa5) * uVar18;
  uVar23 = uVar23 - (*(uint *)(lVar2 - (uVar29 ^ 0x681cf67d)) ^ DAT_182670a3c);
  *(uint *)(lVar2 + -0x8e0) = uVar23 ^ uVar5;
  uVar23 = uVar23 * (*(uint *)(lVar2 + -0x43c) ^ uVar11);
  *(uint *)(lVar2 + -0x42c) = uVar18 ^ DAT_1826709c4;
  *(uint *)(lVar2 + -0xc0c) = uVar23 ^ uVar26;
  *(uint *)(lVar2 + -0x814) = uVar23 + uVar18 ^ uVar3;
  *(uint *)(lVar2 - ((ulonglong)uVar27 ^ 0x681cfd45)) =
       (*(uint *)(lVar2 - ((ulonglong)uVar13 ^ 0xa1cf8d5d)) ^ uVar3) << (bVar21 & 0x1f) ^
       DAT_182670a4c;
  uVar17 = DAT_1826707ac;
  uVar10 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x804206c0)) =
       (*(uint *)(lVar2 - (uVar32 ^ 0x5b13fc87)) ^ uVar3) >> 0x13 ^ DAT_182670a44;
  uVar23 = (*(uint *)(lVar2 - (uVar10 ^ 0xcacabd3f)) ^ DAT_182670a44 |
           *(uint *)(lVar2 + -0x2d4) ^ DAT_182670a4c) ^ uVar30;
  *(uint *)(lVar2 + -0x7e4) = uVar23;
  uVar5 = DAT_1826709f0;
  uVar3 = DAT_18267098c;
  uVar26 = DAT_182670898;
  uVar9 = DAT_1826707b0;
  uVar23 = uVar23 ^ DAT_182670988;
  uVar16 = (ulonglong)DAT_1826707b0;
  uVar11 = (*(uint *)(lVar2 - (uVar20 ^ 0xcadabbc3)) ^ uVar11) +
           (*(uint *)(lVar2 + -0xb54) ^ uVar30) ^ DAT_182670844;
  uVar10 = CONCAT44(DAT_1826707d8,uVar13);
  *(uint *)(lVar2 + -0x14) = uVar11;
  uVar11 = uVar11 ^ DAT_182670844 ^ uVar22;
  *(uint *)(lVar2 + -0x3d4) = uVar23 ^ uVar30;
  *(uint *)(lVar2 + -0x398) = uVar11;
  *(ulonglong *)(lVar2 + -0xcf8) = uVar10 ^ 0xfbfb6f5cd5bffdc6 | 0xd1b32b5cc19df4c0;
  uVar30 = DAT_1826707f4;
  *(uint *)(lVar2 + -0x68c) = uVar26 ^ uVar11 ^ uVar22;
  uVar10 = (ulonglong)DAT_182670934;
  *(uint *)(lVar2 - (uVar29 ^ 0x681cfad1)) =
       *(uint *)(lVar2 - (uVar16 ^ 0x5747623f)) ^ DAT_182670988 ^ uVar5;
  bVar21 = (byte)DAT_182670980;
  pbVar15 = (byte *)((CONCAT44(uVar30,DAT_1826707cc) ^ 0x5cbab49ba82a7f96) * 0x20 +
                     (CONCAT44(uVar25,uVar27) ^ 0xdf884b6d681cff94) + *(longlong *)(lVar2 + -0x30));
  *(ulonglong *)(lVar2 + -0x270) = (ulonglong)pbVar15 ^ uVar10;
  *(byte *)(lVar2 + -0xc35) = *pbVar15 ^ (byte)DAT_182670adc ^ bVar21;
  *(longlong *)(lVar2 + -0x6f0) =
       *(longlong *)(lVar2 - ((ulonglong)uVar19 ^ 0xcacab4cf)) + 0x269178acb97bd4eb;
  uVar19 = DAT_182670800;
  uVar27 = DAT_1826707f0;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826707f0 ^ 0xe273a069)) =
       (*(byte *)(lVar2 + -0xc35) ^ bVar21) ^ uVar3;
  uVar22 = DAT_182670998;
  uVar11 = (uVar5 ^ *(uint *)(lVar2 + -0x540)) + (uVar13 ^ 0x6aebc86a) ^ DAT_182670998;
  *(ulonglong *)(lVar2 + -0x558) = *(ulonglong *)(lVar2 + -0xbb0) ^ *(ulonglong *)(lVar2 + -0x6b8);
  *(uint *)(lVar2 + -0xc34) = uVar11;
  *(uint *)(lVar2 - (uVar20 ^ 0xcadabebf)) = (*(uint *)(lVar2 + -0xc04) ^ uVar3) << 0x11 ^ uVar19;
  *(uint *)(lVar2 + -0xa34) =
       (*(uint *)(lVar2 + -0xc34) ^ uVar22) - (uVar19 ^ *(uint *)(lVar2 + -0x140)) ^ DAT_182670840;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x5b13f6b3)) =
       *(longlong *)(lVar2 - ((ulonglong)DAT_1826707b8 ^ 0x22a040d9)) -
       (CONCAT44(uVar12,DAT_1826707dc) ^ 0xc57cfcfd9d35ef6d);
  uVar19 = (*(uint *)(lVar2 + -0xa34) ^ DAT_182670840) * (*(uint *)(lVar2 + -0x68c) ^ uVar26);
  *(longlong *)(lVar2 + -0x890) = *(longlong *)(lVar2 + -0x610) + -0x24bee09a60c3f94f;
  *(uint *)(lVar2 + -0x9ec) = uVar19 ^ uVar22;
  *(uint *)(lVar2 + -0x8e0) = (*(uint *)(lVar2 - (uVar14 ^ 0xdf884769)) ^ uVar3) * 5 ^ DAT_182670964
  ;
  uVar19 = (*(uint *)(lVar2 - ((ulonglong)uVar9 ^ 0x5747690b)) ^ DAT_182670964) + uVar19;
  uVar14 = (ulonglong)DAT_1826707d0;
  bVar21 = (byte)DAT_1826707d0;
  *(uint *)(lVar2 + -0x598) = uVar19 ^ DAT_1826709ec;
  uVar9 = DAT_182670850;
  *(longlong *)(lVar2 + -0x9e0) =
       *(longlong *)(lVar2 - (uVar16 ^ 0x57476823)) << ((bVar21 ^ 0x5e) & 0x3f);
  uVar12 = DAT_1826707ec;
  *(uint *)(lVar2 + -0xc0c) = uVar19 << ((byte)uVar27 & 0x1f) ^ uVar9;
  uVar10 = CONCAT44(uVar17,DAT_1826707d4);
  *(uint *)(lVar2 + -0x42c) = uVar19 >> ((byte)uVar12 & 0x1f) ^ DAT_182670a10;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x5b13f1db)) =
       (CONCAT44(uVar13,uVar30) ^ 0xf176f370ec0a64b1) - (uVar10 ^ 0x17fab81712aa30e0);
  uVar12 = *(uint *)(lVar2 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar2 + -0x814) =
       (*(uint *)(lVar2 + -0x42c) ^ DAT_182670a10 | uVar9 ^ *(uint *)(lVar2 + -0xc0c)) ^
       DAT_182670aac;
  *(uint *)(lVar2 - (uVar14 ^ 0x9989c2a3)) =
       uVar12 + (*(uint *)(lVar2 + -0x68c) ^ uVar26) ^ DAT_182670834;
  *(ulonglong *)(lVar2 + -0x400) =
       *(ulonglong *)(lVar2 + -0xcf8) >> ((byte)*(undefined8 *)(lVar2 + -0x558) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar25) * 4) = uVar8;
  return;
}



############ FUN_ 180d1fba0 size=4146 ############

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

void FUN_180d1fba0(void)

{
  longlong *plVar1;
  undefined4 uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  byte bVar6;
  uint uVar7;
  uint uVar8;
  ulonglong uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint *puVar14;
  uint uVar15;
  ulonglong uVar16;
  byte *pbVar17;
  uint uVar18;
  ulonglong uVar19;
  uint *puVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint *puVar25;
  uint *puVar26;
  uint uVar27;
  uint uVar28;
  uint *puVar29;
  uint *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  uVar13 = DAT_18267093c;
  uVar22 = DAT_1826708c4;
  uVar5 = DAT_1826707ec;
  uVar24 = DAT_1826707d0;
  lVar3 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_1826707ec;
  uVar31 = (ulonglong)DAT_1826707d0;
  uVar33 = DAT_1826707d0 + DAT_1826707ec;
  uVar11 = *(uint *)(&DAT_18260f758 + DAT_182670b3c) ^ DAT_1826707d0;
  uVar7 = *(uint *)(&DAT_18260f760 + DAT_182670b3c) ^ DAT_1826707ec;
  uVar9 = (ulonglong)DAT_1826709d0;
  uVar35 = (ulonglong)uVar33;
  uVar12 = *(uint *)(DAT_1826707a0 - ((ulonglong)uVar33 ^ 0xf49db7de)) ^ DAT_1826708c4 ^
           DAT_18267081c;
  DAT_1826707f0 = uVar33;
  *(uint *)(DAT_1826707a0 + -0xc0c) =
       DAT_1826709b8 ^ _DAT_1826709e0 ^ *(uint *)(DAT_1826707a0 + -0x9ec);
  *(uint *)(lVar3 + -0x14) = uVar12;
  uVar18 = uVar5 ^ 0x9037b9b0;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0xf49db8b2)) =
       *(longlong *)(lVar3 + -0x30) + 0x1c + (CONCAT44(uVar24,uVar5) ^ 0x9989c0775b13f493) * 0x20 ^
       uVar9;
  uVar12 = DAT_18267088c & 0xff;
  bVar10 = *(byte *)(*(ulonglong *)(lVar3 + -0xdb8) ^ uVar9) ^ (byte)DAT_18267088c ^
           (byte)DAT_182670adc;
  *(byte *)(lVar3 + -0x619) = bVar10;
  *(uint *)(lVar3 - ((ulonglong)uVar33 ^ 0xf49dbd1e)) = bVar10 ^ uVar12 ^ uVar13;
  *(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x9989c5ef)) =
       (*(uint *)(lVar3 + -0xc0c) ^ DAT_1826709b8) + uVar18 ^ DAT_182670a50;
  *(longlong *)(lVar3 + -0x660) =
       *(longlong *)(lVar3 + -0x9c8) << ((byte)*(undefined8 *)(lVar3 + -0x5c0) & 0x3f);
  puVar29 = (uint *)(lVar3 - ((ulonglong)uVar5 ^ 0x5b13f377));
  puVar20 = (uint *)(lVar3 - ((ulonglong)uVar33 ^ 0xf49db386));
  *puVar29 = (*(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x9989c863)) ^ uVar13) <<
             (((byte)uVar33 ^ 0x1b) & 0x1f) ^ DAT_1826709d8;
  uVar23 = DAT_182670954;
  *puVar20 = (*(uint *)(lVar3 + -0x598) ^ DAT_182670a50) -
             (*(uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x9989c793)) ^ DAT_1826709d8) ^ DAT_182670954;
  lVar3 = DAT_1826707a0;
  puVar14 = (uint *)(DAT_1826707a0 + -0x14);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       CONCAT44(uVar5,uVar33) ^ 0x4c080608da0522c0 | 0x1371d9f62062cd17;
  *(uint *)(lVar3 + -0x43c) =
       (*puVar14 ^ uVar22) * (uVar23 ^ *(uint *)(lVar3 + -0x68c)) ^ DAT_1826708f0;
  uVar21 = (*(uint *)(lVar3 + -0x814) ^ uVar13) * 0x1c ^ DAT_1826709f4;
  puVar14 = (uint *)(lVar3 - (uVar31 ^ 0x9989c44b));
  *(uint *)(lVar3 + -0x540) = uVar21;
  uVar12 = DAT_182670820;
  puVar30 = (uint *)(lVar3 - (uVar19 ^ 0x5b13f747));
  *puVar30 = (*puVar14 ^ DAT_1826708f0) + (uVar21 ^ DAT_1826709f4) ^ DAT_182670820;
  uVar27 = (*(uint *)(lVar3 + -0x3d4) ^ uVar12) << (((byte)uVar24 ^ 0x7a) & 0x1f) ^ DAT_1826708e0;
  *(int *)(lVar3 + -0x398) =
       0x30efb99 << (((byte)*(undefined4 *)(lVar3 + -0x280) ^ (byte)DAT_182670860) & 0x1f);
  *(uint *)(lVar3 + -0xc34) = uVar27;
  lVar4 = DAT_1826707a0;
  uVar27 = uVar27 ^ DAT_1826708e0;
  uVar21 = (*(uint *)(lVar3 + -0x3d4) ^ uVar12) >> (((byte)uVar33 ^ 0x19) & 0x1f) ^ DAT_182670afc;
  puVar25 = (uint *)(lVar3 - ((ulonglong)uVar24 ^ 0x9989ca43));
  *(uint *)(lVar3 + -0x42c) = uVar21;
  uVar12 = DAT_1826707dc;
  *(uint *)(lVar3 + -0xc04) = (uVar21 ^ DAT_182670afc | uVar27) ^ DAT_182670ac8;
  *puVar25 = (*(uint *)(lVar3 - (uVar19 ^ 0x5b13f487)) ^ uVar22) +
             (DAT_182670848 ^ *(uint *)(lVar3 + -0xb54)) ^ DAT_182670870;
  uVar22 = DAT_1826707dc;
  lVar3 = DAT_1826707a0;
  uVar34 = (uVar12 << 0x10 | uVar12 & 0xff00) << 8 | uVar12 >> 8 & 0xff00 | DAT_1826707dc >> 0x18;
  *(uint *)(lVar4 + -0x2d4) = *(uint *)(lVar4 + -0xa34) ^ DAT_182670828 ^ DAT_182670870;
  uVar32 = (ulonglong)uVar34;
  DAT_1826707e8 = uVar34;
  *(uint *)(lVar4 + -0xc0c) = *(uint *)(lVar4 + -0xc04) ^ DAT_182670b14 ^ DAT_182670ac8;
  *(uint *)(lVar4 + -0x9ec) = (uVar34 ^ 0x6986069c) + (uVar12 ^ 0x4b664963);
  uVar15 = DAT_182670a24;
  puVar26 = (uint *)(lVar4 - ((ulonglong)uVar34 ^ 0x40044718));
  *puVar26 = *(uint *)(lVar4 - ((ulonglong)uVar12 ^ 0x80420694)) ^ DAT_182670a24 ^ DAT_182670828;
  uVar21 = *(uint *)(lVar3 - ((ulonglong)uVar34 ^ 0x40044e8c)) ^ DAT_182670b14;
  uVar9 = (ulonglong)DAT_182670ab0;
  *(longlong *)(lVar3 + -0x1b8) = *(longlong *)(lVar3 + -0xce0) * 2;
  *(uint *)(lVar3 + -0x7e4) = uVar21 ^ uVar23;
  bVar10 = (byte)DAT_1826708f4;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x804206a8)) =
       (CONCAT44(uVar12,uVar12) ^ 0x8042044080420440) * 0x20 +
       (CONCAT44(uVar34,uVar12) ^ 0x4004428080420447) + *(longlong *)(lVar3 + -0x30) ^ uVar9;
  *(byte *)(lVar4 + -0xc35) =
       *(byte *)(uVar9 ^ *(ulonglong *)(lVar4 + -0x2e8)) ^ bVar10 ^ (byte)DAT_182670adc;
  uVar21 = DAT_182670a60;
  bVar6 = (byte)(uVar22 >> 0x18);
  uVar22 = (bVar10 ^ *(byte *)(lVar4 + -0xc35)) ^ DAT_182670a60;
  bVar10 = (byte)DAT_1826707dc;
  *(ulonglong *)(lVar4 + -0x6f0) =
       (CONCAT44(uVar34,uVar34) ^ 0xd7c44205e709dc4c) << ((bVar6 ^ 0xb0) & 0x3f);
  *puVar20 = uVar22;
  uVar21 = uVar21 ^ *(uint *)(lVar4 + -0x68c);
  uVar28 = (uVar23 ^ *(uint *)(lVar4 + -0x7e4)) + uVar18 ^ DAT_182670868;
  uVar22 = uVar21 << ((bVar10 ^ 0x51) & 0x1f) ^ DAT_182670950;
  *(uint *)(lVar4 + -0x814) = uVar28;
  uVar28 = uVar28 ^ DAT_182670868;
  *(uint *)(lVar4 + -0x43c) = uVar22;
  uVar28 = uVar28 - (uVar22 ^ DAT_182670950);
  *(ulonglong *)(lVar4 + -0x658) = (uVar32 * 8 | (ulonglong)(uVar24 >> 0x1d)) ^ 0x37f1ff73c;
  *(uint *)(lVar4 + -0x540) = uVar28 ^ DAT_182670910;
  uVar27 = DAT_182670834;
  uVar22 = DAT_1826707dc;
  lVar3 = DAT_1826707a0;
  uVar8 = DAT_1826707dc ^ 0x80420447;
  uVar28 = (*(uint *)(lVar4 - (uVar35 ^ 0xf49db092)) ^ uVar15) * uVar28;
  *(uint *)(DAT_1826707a0 + -0x280) = uVar28 ^ DAT_182670834;
  *(uint *)(lVar3 + -0x398) = uVar8 * uVar21 ^ DAT_182670a10;
  uVar21 = DAT_18267085c;
  uVar16 = CONCAT44(uVar33,uVar22);
  *(uint *)(lVar3 - ((ulonglong)uVar12 ^ 0x80420794)) =
       (*(uint *)(lVar3 - (uVar32 ^ 0x40044118)) ^ DAT_182670a10) + uVar28 ^ DAT_18267085c;
  bVar10 = (byte)uVar22;
  uVar28 = (*(uint *)(lVar3 - (uVar31 ^ 0x9989c3a3)) ^ uVar21) << ((bVar10 ^ 0x4d) & 0x1f);
  plVar1 = (longlong *)(DAT_1826707a0 + -0x3b0);
  *(uint *)(DAT_1826707a0 + -0xc34) = uVar28 ^ uVar13;
  lVar3 = DAT_1826707a0;
  uVar2 = *(undefined4 *)(DAT_1826707a0 + -0x7e4);
  *(longlong *)(DAT_1826707a0 + -0x2b0) = *plVar1 << ((bVar10 ^ 0x5d) & 0x3f);
  lVar4 = DAT_1826707a0;
  *(uint *)(lVar3 + -0x42c) =
       (*(uint *)(lVar3 - (uVar35 ^ 0xf49db6de)) ^ uVar21) >> 0x13 ^ DAT_1826709f8;
  *(uint *)(lVar4 + -0x14) = (uVar33 ^ 0xc4c5a41a) >> (((byte)uVar23 ^ (byte)uVar2) & 0x1f);
  *(uint *)(lVar4 + -0xa34) =
       (*(uint *)(lVar4 - (uVar32 ^ 0x400446ac)) ^ DAT_1826709f8 | uVar28) ^ DAT_182670af8;
  uVar21 = DAT_182670a50;
  uVar8 = DAT_1826709d4;
  uVar22 = DAT_1826709bc;
  uVar12 = (*(uint *)(lVar4 + -0x598) ^ uVar15) + (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^
           DAT_182670a54;
  uVar23 = DAT_182670a50 & 0xff;
  *(uint *)(lVar4 + -0x9ec) = uVar28 - (*(uint *)(lVar4 + -0x280) ^ uVar27);
  *(uint *)(lVar4 - (uVar31 ^ 0x9989cc73)) = uVar12;
  *(uint *)(lVar4 + -0x2d4) = *(uint *)(lVar4 + -0xc04) ^ DAT_182670b04 ^ DAT_182670a54;
  *(ulonglong *)(lVar4 + -0x220) = uVar16 ^ *(ulonglong *)(lVar4 + -0xce0) ^ 0xec64648422808547;
  *(uint *)(lVar4 + -0xc0c) = *(uint *)(lVar4 + -0xa34) ^ DAT_18267095c ^ DAT_182670af8;
  uVar12 = DAT_182670914;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x40044b60)) =
       (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar4 + -0xac0)) -
       (CONCAT44(uVar33,uVar24) ^ 0x285f194c83d439c8);
  uVar13 = *(uint *)(lVar4 - (uVar19 ^ 0x5b13f647)) ^ uVar22 ^ DAT_182670b04;
  *(uint *)(lVar4 + -0x43c) = *(uint *)(lVar4 + -0xc0c) ^ DAT_1826708b4 ^ DAT_18267095c;
  uVar9 = (ulonglong)DAT_182670958;
  *(uint *)(lVar4 + -0x814) = uVar13;
  pbVar17 = (byte *)((uVar16 ^ 0xf49db50a80420452) + *(longlong *)(lVar4 + -0x30));
  *(ulonglong *)(lVar4 + -0x270) = (ulonglong)pbVar17 ^ uVar9;
  *(byte *)(lVar4 - (uVar31 ^ 0x9989c66e)) = *pbVar17 ^ (byte)uVar21 ^ (byte)DAT_182670adc;
  uVar13 = DAT_182670a68;
  puVar20 = (uint *)(lVar4 - (uVar19 ^ 0x5b13f1d3));
  *puVar20 = uVar23 ^ *(byte *)(lVar4 + -0x619) ^ uVar12;
  uVar21 = DAT_1826707dc;
  uVar18 = (*puVar14 ^ DAT_1826708b4) + uVar18;
  *(uint *)(lVar4 + -0x68c) = uVar18 ^ uVar13;
  uVar23 = DAT_182670a08;
  uVar13 = (*puVar20 ^ uVar12) << ((bVar6 ^ 0x91) & 0x1f);
  uVar15 = uVar13 ^ _DAT_182670b10;
  *(ulonglong *)(lVar4 + -0x610) = *(ulonglong *)(lVar4 + -0x68) ^ *(ulonglong *)(lVar4 + -0x1b8);
  uVar18 = uVar18 - uVar13 ^ DAT_182670acc;
  *(uint *)(lVar4 + -0x3d4) = uVar18;
  lVar3 = DAT_1826707a0;
  uVar18 = uVar18 ^ DAT_182670acc;
  *(uint *)(lVar4 + -0x398) = uVar15;
  uVar13 = DAT_1826707d8;
  uVar37 = (ulonglong)DAT_1826707d8;
  *puVar29 = (*(uint *)(lVar4 + -0x814) ^ uVar22) * uVar18 ^ DAT_182670a44;
  *(uint *)(lVar3 - (uVar37 ^ 0x4a78936b)) =
       (uVar12 ^ *(uint *)(lVar3 + -0x540)) * (uVar21 ^ 0x80420452) ^ DAT_182670a20;
  uVar12 = (*(uint *)(lVar3 - (uVar32 ^ 0x40044564)) ^ DAT_182670a44) +
           (*(uint *)(DAT_1826707a0 + -0x14) ^ DAT_182670a20);
  *(uint *)(DAT_1826707a0 + -0x42c) = uVar12 ^ uVar23;
  lVar3 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar19 ^ 0x5b13f8a7)) = uVar12 << ((bVar6 ^ 0x8d) & 0x1f) ^ uVar23;
  uVar12 = DAT_1826707b4;
  uVar36 = (ulonglong)DAT_1826707b4;
  uVar9 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar3 - (uVar35 ^ 0xf49db78a)) =
       (*(uint *)(lVar3 - (uVar31 ^ 0x9989c45b)) ^ uVar23) >> (((byte)uVar21 ^ 0x53) & 0x1f) ^
       uVar27;
  uVar15 = DAT_1826708d0;
  uVar18 = DAT_182670894 ^ DAT_182670870;
  *(uint *)(lVar3 + -0x9ec) =
       (*(uint *)(lVar3 - (uVar9 ^ 0x8fc90036)) ^ uVar27 | *(uint *)(lVar3 + -0xc34) ^ uVar23) ^
       DAT_182670938;
  lVar3 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x598) =
       (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0x80420c54)) ^ uVar22) +
       (DAT_182670848 ^ *(uint *)(DAT_1826707a0 + -0xb54)) ^ DAT_182670870;
  *(uint *)(lVar3 - (uVar19 ^ 0x5b13f897)) = uVar18 ^ *puVar26;
  *(longlong *)(lVar3 + -0x548) = *(longlong *)(lVar3 + -0x890) << (((byte)uVar12 ^ 0x93) & 0x3f);
  *puVar25 = DAT_182670b00 ^ DAT_182670938 ^ *(uint *)(lVar3 + -0x9ec);
  *(uint *)(lVar3 + -0x2d4) = *(uint *)(lVar3 + -0xc04) ^ uVar15 ^ DAT_182670894;
  uVar16 = CONCAT44(uVar34,DAT_1826707e4);
  uVar28 = *(uint *)(lVar3 - (uVar35 ^ 0xf49dbf3e)) ^ DAT_18267089c ^ DAT_182670b00;
  uVar9 = (ulonglong)DAT_182670900;
  *(uint *)(lVar3 + -0xc0c) = uVar28;
  bVar10 = (byte)DAT_182670a4c;
  pbVar17 = (byte *)((uVar16 ^ 0x40044280cadabfe2) +
                     (CONCAT44(uVar5,uVar33) ^ 0x5b13f493f49db50a) * 0x20 +
                    *(longlong *)(lVar3 + -0x30));
  *(ulonglong *)(lVar3 + -0x2e8) = (ulonglong)pbVar17 ^ uVar9;
  uVar23 = DAT_182670908;
  uVar22 = DAT_1826707c0;
  uVar28 = uVar28 ^ DAT_18267089c;
  uVar9 = (ulonglong)DAT_1826707c0;
  *(byte *)(lVar3 + -0xc35) = *pbVar17 ^ bVar10 ^ (byte)DAT_182670adc;
  lVar3 = DAT_1826707a0;
  uVar18 = (uint)(*(byte *)(DAT_1826707a0 - (uVar9 ^ 0x40046db4)) ^ bVar10);
  uVar12 = DAT_1826707f4 ^ 0x1eef29c;
  *(uint *)(DAT_1826707a0 + -0x43c) = uVar18 ^ uVar23;
  uVar27 = DAT_1826707fc;
  uVar28 = uVar28 + uVar12 ^ DAT_182670ac8;
  *(uint *)(lVar3 + -0x68c) = uVar28;
  lVar3 = DAT_1826707a0;
  uVar28 = uVar28 ^ DAT_182670ac8;
  uVar12 = uVar18 << ((bVar6 ^ 0x91) & 0x1f) ^ DAT_182670a9c;
  *(uint *)(DAT_1826707a0 + -0x398) = uVar12;
  *puVar30 = uVar28 - (uVar12 ^ DAT_182670a9c) ^ uVar27;
  uVar12 = DAT_1826707bc;
  *(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0x80420100)) =
       (*(uint *)(lVar3 + -0x3d4) ^ uVar27) * (*(uint *)(lVar3 + -0x2d4) ^ uVar15) ^ DAT_182670a60;
  *(uint *)(lVar3 + -0x7e4) =
       (uVar23 ^ *(uint *)(lVar3 + -0x43c)) * (uVar12 ^ 0x1a6c015) ^ DAT_18267088c;
  lVar3 = DAT_1826707a0;
  puVar14 = (uint *)(DAT_1826707a0 - (uVar35 ^ 0xf49db2ee));
  *(longlong *)(DAT_1826707a0 + -0x410) = -0x92fe713cf044a1f << (((byte)uVar21 ^ 0x76) & 0x3f);
  uVar23 = DAT_182670860;
  uVar21 = DAT_1826707dc;
  uVar18 = (*puVar14 ^ DAT_18267088c) + (*(uint *)(lVar3 - (uVar35 ^ 0xf49db04a)) ^ DAT_182670a60);
  *(uint *)(lVar3 + -0x14) = uVar18 ^ DAT_182670860;
  *(uint *)(lVar3 + -0x42c) =
       (uVar21 ^ 0x2b3d71f5) << (((byte)*(undefined4 *)(lVar3 + -0x3d4) ^ (byte)uVar27) & 0x1f);
  *(uint *)(lVar3 - (uVar32 ^ 0x40044eb4)) = uVar18 * 0x2000 ^ uVar8;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x5b13ffe3)) =
       CONCAT44(uVar5,uVar5) ^ 0x8984b49216b5e4c7 | *(ulonglong *)(lVar3 + -0xcf8);
  uVar21 = DAT_1826707c8;
  uVar16 = (ulonglong)DAT_1826707c8;
  uVar9 = (ulonglong)DAT_1826707c4;
  *(uint *)(lVar3 + -0x280) =
       (*(uint *)(lVar3 - ((ulonglong)uVar12 ^ 0x1a6c01c)) ^ uVar23) >>
       (((byte)uVar22 ^ 0x92) & 0x1f) ^ DAT_182670a7c;
  *(longlong *)(lVar3 + -0x400) =
       *(longlong *)(lVar3 - (uVar9 ^ 0xcacab4cf)) + *(longlong *)(lVar3 + -0x68);
  *(uint *)(lVar3 - (uVar19 ^ 0x5b13fc87)) =
       (*(uint *)(lVar3 - (uVar16 ^ 0xa1cf87c9)) ^ DAT_182670a7c | *(uint *)(lVar3 + -0xc34) ^ uVar8
       ) ^ DAT_182670a54;
  uVar9 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar3 + -0x4c8) =
       CONCAT44(uVar21,uVar22) ^ 0x45d45f51efe04426 | CONCAT44(uVar24,uVar5) ^ 0x52858c72759f0442;
  uVar22 = DAT_182670858;
  uVar12 = DAT_1826707cc;
  uVar21 = (*(uint *)(lVar3 - (uVar9 ^ 0x5747633f)) ^ uVar15) +
           (DAT_182670848 ^ *(uint *)(lVar3 + -0xb54)) ^ DAT_182670810;
  uVar24 = *(uint *)(lVar3 + -0x814) ^ DAT_182670a54 ^ DAT_1826709b8;
  uVar9 = (ulonglong)DAT_1826707cc;
  *(uint *)(lVar3 + -0x598) = uVar21;
  *(uint *)(lVar3 + -0x9ec) = uVar21 ^ DAT_1826708a0 ^ DAT_182670810;
  *(uint *)(lVar3 + -0xc04) = uVar24;
  uVar21 = uVar24 ^ uVar22 ^ DAT_1826709b8;
  *(uint *)(lVar3 + -0xa34) =
       *(uint *)(lVar3 - ((ulonglong)uVar13 ^ 0x4a789a93)) ^ DAT_182670ab8 ^ DAT_1826708a0;
  *(uint *)(lVar3 - (uVar37 ^ 0x4a789f73)) = uVar21;
  bVar10 = (byte)DAT_182670a2c;
  pbVar17 = (byte *)(*(longlong *)(lVar3 - (uVar19 ^ 0x5b13f4a3)) +
                    (CONCAT44(uVar12,DAT_1826707d4) ^ 0xa82a7f96c5b6d321));
  *(ulonglong *)(lVar3 + -0x248) = (ulonglong)pbVar17 ^ (ulonglong)DAT_18267081c;
  *(byte *)(lVar3 - (uVar36 ^ 0x681cf988)) = *pbVar17 ^ (byte)DAT_182670adc ^ bVar10;
  *(uint *)(lVar3 + -0x68c) = (*(byte *)(lVar3 + -0x619) ^ bVar10) ^ DAT_18267080c;
  *(uint *)(lVar3 + -0x398) =
       (uVar22 ^ *(uint *)(lVar3 + -0xc0c)) + (DAT_1826707b8 ^ 0xe9840d0a) ^ DAT_1826708a4;
  *(ulonglong *)(lVar3 + -0xa18) = *(ulonglong *)(lVar3 - (uVar9 ^ 0xa82a74e6)) ^ 0xc0a8e383c225061b
  ;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar7 * 4) = uVar11;
  return;
}



############ FUN_ 180cca800 size=4674 ############

void FUN_180cca800(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  byte bVar14;
  ulonglong uVar15;
  byte bVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  uint uVar44;
  ulonglong uVar45;
  byte local_b8;
  byte local_90;
  byte local_88;
  byte local_80;
  
  uVar28 = DAT_1826707e0;
  uVar12 = DAT_1826707bc;
  uVar5 = DAT_1826707a8;
  uVar20 = (ulonglong)DAT_1826707bc;
  uVar40 = DAT_182670a60 | DAT_1826708d8;
  uVar21 = DAT_1826708e0 - DAT_18267081c;
  uVar22 = DAT_1826707b8 * DAT_1826707a8;
  DAT_1826707f0 =
       (DAT_1826707dc << 0x10 | DAT_1826707dc & 0xff00) << 8 | DAT_1826707dc >> 8 & 0xff00 |
       DAT_1826707dc >> 0x18;
  DAT_1826707e4 = DAT_1826707e0 - DAT_1826707ec;
  uVar24 = (DAT_1826707bc << 0x10 | DAT_1826707bc & 0xff00) << 8 | DAT_1826707bc >> 8 & 0xff00 |
           DAT_1826707bc >> 0x18;
  uVar44 = *(uint *)(&DAT_18260f758 + DAT_182670e24) ^ DAT_1826707ec;
  uVar8 = *(uint *)(&DAT_18260f760 + DAT_182670e24) ^ DAT_1826707e4;
  uVar9 = DAT_18267081c & 0xff;
  uVar17 = DAT_18267081c << 8;
  DAT_18267081c = ((uVar17 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar29 = (ulonglong)DAT_18267081c;
  uVar18 = CONCAT44(DAT_18267081c,DAT_18267081c);
  uVar30 = CONCAT44(DAT_18267092c,DAT_18267092c) ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8) |
           CONCAT44(DAT_182670a0c,DAT_182670a0c) ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  uVar10 = DAT_1826708e0 & 0xff;
  uVar33 = DAT_1826708e0 << 8;
  DAT_1826707b4 = uVar24;
  DAT_1826707e8 = uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar30 ^ uVar18;
  uVar7 = DAT_182670afc;
  lVar3 = DAT_1826707a0;
  uVar27 = (ulonglong)uVar28;
  uVar34 = ((uVar33 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar15 = CONCAT44(DAT_182670afc,DAT_182670afc);
  uVar35 = CONCAT44(uVar34,uVar34);
  DAT_1826708e0 = uVar34;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xdcdb5c2d)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x34b24e7b)) ^ uVar15) - uVar30 ^ uVar35;
  uVar11 = uVar21 & 0xff;
  DAT_1826708b4 = ((uVar21 * 0x100 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar39 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar36 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  puVar1 = (ulonglong *)(lVar3 + -0x998);
  uVar23 = (ulonglong)uVar22;
  uVar30 = *(ulonglong *)(lVar3 + -0x9c8) ^ uVar36 ^ uVar39 ^ uVar18 ^ *puVar1;
  *(ulonglong *)(lVar3 + -0xc18) = uVar30;
  uVar11 = DAT_1826707b8;
  uVar21 = DAT_1826708d8 & 0xff;
  DAT_1826708d8 = ((DAT_1826708d8 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar25 = (ulonglong)DAT_1826707b8;
  uVar26 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar3 + -0x610) = (uVar30 ^ uVar36) >> (((byte)uVar22 ^ 0x65) & 0x3f) ^ uVar26;
  puVar31 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x4227cbe9));
  uVar21 = uVar40 & 0xff;
  *puVar31 = ((ulonglong)((uVar33 & 0xffff | uVar10) >> 4) | (ulonglong)uVar34 << 0xc) ^
             *(ulonglong *)(lVar3 - (uVar25 ^ 0x2324a3d2)) >> 0x14;
  uVar10 = DAT_1826707dc;
  DAT_182670850 = ((uVar40 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar30 = (uVar36 ^ *(ulonglong *)(lVar3 + -0xc18)) << 0x29;
  uVar19 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar30 ^ uVar19;
  *(uint *)(lVar3 + -0xc0c) = (uVar10 ^ 0xc5007bbb) + 0xfbee4f83;
  uVar21 = DAT_182670a60 & 0xff;
  DAT_182670a60 = ((DAT_182670a60 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar45 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar30 = uVar30 | uVar26 ^ *(ulonglong *)(lVar3 + -0x610);
  uVar21 = DAT_182670984 >> 0x10 & 0xff;
  *(ulonglong *)(lVar3 + -0x558) = uVar30 ^ uVar45;
  DAT_182670914 = (((DAT_182670984 >> 0x10) << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  uVar42 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar21 = DAT_182670984 & 0xff;
  *(ulonglong *)(lVar3 + -0x9c8) = (uVar39 ^ *puVar1) - uVar30 ^ uVar42;
  DAT_182670984 = ((DAT_182670984 << 8 | uVar21) << 8 | uVar21) << 8 | uVar21;
  puVar43 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xc4c656e4));
  uVar13 = (ulonglong)DAT_182670984;
  puVar2 = (ulonglong *)(lVar3 + -0xac0);
  uVar41 = CONCAT44(DAT_182670984,DAT_182670984);
  *puVar43 = CONCAT44(DAT_182670894,DAT_182670894) ^ uVar41 ^ uVar35 ^ *puVar2 ^
             *(ulonglong *)(lVar3 + -0xf0);
  uVar21 = DAT_1826707f0;
  lVar3 = DAT_1826707a0;
  bVar14 = (byte)DAT_1826707f0;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = (*puVar31 ^ uVar41) >> ((bVar14 ^ 0xc5) & 0x3f) ^ uVar26;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x34b24d33)) =
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0x34b24ee3)) ^ uVar41) << 0x18 ^ uVar35;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0xb649bf25)) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0xba517a62)) ^ uVar35 |
       uVar26 ^ *(ulonglong *)(lVar4 + -0xc18)) ^ uVar18;
  puVar31 = (ulonglong *)(lVar4 - (uVar20 ^ 0xdcdb5545));
  *puVar31 = (uVar35 ^ *(ulonglong *)(lVar4 + -0xf0)) - (*(ulonglong *)(lVar4 + -0x4c8) ^ uVar18) ^
             uVar36;
  bVar16 = (byte)DAT_1826707f0;
  uVar30 = *(ulonglong *)(lVar4 - (uVar25 ^ 0x2324a7ea)) ^
           *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ec ^ 0x6febfe37)) ^ uVar42 ^ uVar19 ^
           uVar18;
  *puVar2 = uVar30;
  *(ulonglong *)(lVar4 + -0x5c0) = (uVar30 ^ uVar19) >> ((bVar16 ^ 0xd9) & 0x3f) ^ uVar42;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0xc4c65534)) =
       (uVar19 ^ uVar30) << (((byte)(uVar12 >> 0x18) ^ 0xd0) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x4227c839)) ^ uVar18 |
       *(ulonglong *)(lVar4 + -0x5c0) ^ uVar42) ^ uVar26;
  uVar30 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ec ^ 0x6febfbe7));
  *(undefined4 *)(lVar4 + -0xc0c) = 0x70ab4b80;
  lVar3 = DAT_1826707a0;
  uVar37 = (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar42) - (uVar30 ^ uVar26) ^ uVar26;
  *(ulonglong *)(lVar4 + -0xf0) = uVar37;
  uVar30 = *puVar1;
  uVar20 = uVar45 ^ uVar36 ^ uVar35 ^ *puVar1 ^ *(ulonglong *)(lVar3 + -0x558);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar20;
  lVar4 = DAT_1826707a0;
  uVar32 = (uVar20 >> 0x20 ^ (ulonglong)uVar34) >> 0x19;
  *puVar2 = *(ulonglong *)(lVar3 + -0x9c8) ^ uVar42 | uVar36 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x5c0) = uVar32 ^ uVar45;
  local_b8 = (byte)uVar11;
  *(ulonglong *)(lVar4 + -0x610) =
       (CONCAT44(uVar28,uVar10) ^ 0xaca5e28bde8cb91) >> ((byte)*puVar2 & 0x3f);
  lVar3 = DAT_1826707a0;
  uVar30 = (uVar20 ^ uVar35) << ((local_b8 ^ 0x25) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar30 ^ uVar42;
  uVar32 = uVar32 | uVar30;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar32 ^ uVar41;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = (*puVar31 ^ uVar36) - uVar32 ^ uVar19;
  lVar3 = DAT_1826707a0;
  uVar37 = uVar32 ^ uVar26 ^ uVar36 ^ uVar37;
  *puVar2 = uVar37;
  uVar30 = (ulonglong)DAT_1826707ec;
  local_90 = (byte)uVar5;
  uVar20 = (uVar37 ^ uVar36) >> ((local_90 ^ 0x27) & 0x3f);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar20 ^ uVar41;
  puVar38 = (ulonglong *)(lVar3 - (uVar30 ^ 0x6febf23f));
  *puVar38 = ((uVar36 ^ uVar37) << 0x32 | uVar20) ^ uVar35;
  uVar30 = (uVar26 ^ *(ulonglong *)(lVar3 + -0xf0)) - (CONCAT44(uVar12,uVar11) ^ 0xbb7a432e012a65a);
  *puVar1 = uVar30 ^ uVar26;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0xdd5cd214)) =
       uVar30 - (*(ulonglong *)(lVar3 + -0x5c0) ^ uVar35) ^ uVar42;
  uVar21 = DAT_1826707f0;
  bVar16 = (byte)DAT_1826707f0;
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 + -0x5c0) ^ uVar35) -
            (CONCAT44(DAT_1826707f0,uVar22) ^ 0x23bd6a9e4cde5839) ^ uVar19;
  lVar3 = DAT_1826707a0;
  uVar30 = uVar19 ^ *(ulonglong *)(DAT_1826707a0 + -0x610) ^ *(ulonglong *)(DAT_1826707a0 + -0xc18);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar30;
  *(ulonglong *)(lVar3 + -0x558) = (uVar30 ^ uVar26) >> ((bVar16 ^ 0xfd) & 0x3f) ^ uVar45;
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar30 ^ uVar26) << (((byte)DAT_1826707ec ^ 0xcf) & 0x3f) ^ uVar42;
  *(int *)(lVar3 + -0x598) = *(int *)(lVar3 + -0x42c) + *(int *)(lVar3 + -0xc0c);
  *puVar31 = (*(ulonglong *)(lVar3 - (uVar23 ^ 0xba517c82)) ^ uVar42 |
             *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0xdd5cde84)) ^ uVar45) ^ uVar35;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (uVar19 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) -
       (CONCAT44(uVar24,uVar10) ^ 0x5204f6a13753b262) ^ uVar42;
  *(ulonglong *)(lVar3 + -0xc18) =
       (uVar42 ^ *puVar38) - (*(ulonglong *)(lVar3 - (uVar25 ^ 0x2324aaba)) ^ uVar35) ^ uVar19;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x34b24feb)) =
       (CONCAT44(uVar5,uVar24) ^ 0x437ba80837ac4628) + (uVar35 ^ *puVar1) ^ uVar19;
  *(ulonglong *)(lVar3 + -0xf0) = uVar45 ^ *(ulonglong *)(lVar3 + -0x558) | 0x57a17a41de05eb2e;
  lVar4 = DAT_1826707a0;
  uVar30 = *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xedbb407e)) ^
           *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xc4c657ec)) ^ uVar41 ^ uVar42 ^
           uVar19;
  uVar13 = uVar30 >> 0x20 ^ uVar13;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar30;
  *(ulonglong *)(lVar4 + -0x5c0) = uVar13 ^ uVar36;
  uVar13 = (uVar41 ^ uVar30) << 0x20 | uVar13;
  *(ulonglong *)(lVar4 + -0x558) = uVar13 ^ uVar42;
  *(ulonglong *)(lVar4 + -0xf0) = (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar42) - uVar13 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x4c8) =
       CONCAT44(uVar12,uVar28) ^ 0x60b0d92d0e4d6219 | CONCAT44(uVar21,uVar24) ^ 0x86c92e1c4c361c4;
  uVar30 = uVar39 ^ *(ulonglong *)(lVar4 + -0xc18) ^ *puVar2;
  *(ulonglong *)(lVar4 + -0x610) = uVar30;
  *puVar1 = (uVar30 ^ uVar39) >> (((byte)uVar10 ^ 0x96) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar4 + -0x5c0) = (uVar39 ^ uVar30) << 0x20 ^ uVar26;
  *(undefined8 *)(lVar4 - (uVar23 ^ 0xba5175ba)) = **(undefined8 **)(lVar4 + 0x10);
  uVar13 = *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x4227c7b1)) ^ uVar18 |
           *(ulonglong *)(lVar4 + -0x5c0) ^ uVar26;
  uVar30 = uVar13 ^ uVar45;
  uVar25 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *puVar2 = uVar30;
  uVar24 = DAT_182670ae0;
  uVar21 = DAT_1826707ec;
  uVar23 = (ulonglong)DAT_182670ae0;
  *(ulonglong *)(lVar4 + -0x610) = (uVar19 ^ *(ulonglong *)(lVar4 + -0xc18)) - uVar13 ^ uVar25;
  *(longlong *)(lVar4 + -0x9c8) = *(longlong *)(lVar4 + -0x4c8) * 2;
  uVar22 = DAT_1826707f4;
  uVar32 = CONCAT44(uVar24,uVar24);
  uVar20 = (ulonglong)DAT_1826707f4;
  uVar30 = *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x6febf70f)) ^ uVar45 ^ uVar26 ^ uVar36 ^
           uVar30;
  local_88 = (byte)uVar12;
  *puVar1 = uVar30;
  uVar6 = DAT_1826709d0;
  *puVar43 = (uVar30 ^ uVar36) >> ((local_88 ^ 0xe7) & 0x3f) ^ uVar41;
  uVar5 = DAT_1826707c8;
  uVar13 = (uVar36 ^ *puVar1) << ((bVar14 ^ 0xeb) & 0x3f);
  uVar30 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar4 + -0xc18) = uVar13 ^ uVar32;
  uVar27 = CONCAT44(uVar6,uVar6);
  uVar33 = uVar22 + uVar5;
  uVar13 = uVar13 | *(ulonglong *)(lVar4 + -0x5c0) ^ uVar41;
  DAT_1826707c4 = uVar33;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar13 ^ uVar27;
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x6febfe37)) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0xf0)) - uVar13 ^ uVar19;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0x1488cb16)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0xa49ccfc7)) ^ uVar32 ^ uVar25 ^ uVar42 ^
       *(ulonglong *)(lVar4 + -0x558);
  uVar6 = DAT_182670938;
  *puVar1 = ((ulonglong)(uVar24 >> 0x16) | uVar23 << 10) ^ *puVar2 >> 0x16 ^ uVar42;
  uVar13 = CONCAT44(uVar6,uVar6);
  uVar30 = (uVar32 ^ *puVar2) << (((byte)uVar5 ^ 0xd5) & 0x3f);
  *(ulonglong *)(lVar4 + -0x5c0) = uVar30 ^ uVar15;
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x6febfe67)) ^ uVar42 | uVar30) ^ uVar13;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0x1488c126)) =
       (CONCAT44(uVar33,uVar22) ^ 0xb99098aef6f7489f) - (uVar32 ^ *puVar2);
  uVar6 = DAT_182670a78;
  *(ulonglong *)(lVar4 + -0x558) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x610)) - (uVar13 ^ *(ulonglong *)(lVar4 + -0xc18)) ^
       uVar26;
  uVar30 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0x1488c84e)) =
       *(ulonglong *)(lVar4 - (uVar20 ^ 0xa49cc5cf)) ^ *(ulonglong *)(lVar4 + -0x9c8) ^ uVar30 ^
       uVar13 ^ uVar19;
  uVar15 = CONCAT44(DAT_182670864,DAT_182670864);
  *puVar2 = (uVar30 ^ *puVar1) >> (((byte)uVar33 ^ 0xf8) & 0x3f) ^ uVar15;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0x6febf70f)) =
       (uVar30 ^ *puVar1) << (((byte)uVar22 ^ 0xc5) & 0x3f) ^ uVar41;
  uVar6 = DAT_1826709d8;
  lVar3 = DAT_1826707a0;
  puVar31 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  local_80 = (byte)uVar7;
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (CONCAT44(uVar33,uVar5) ^ 0xb1d783f4c4b72de1) >>
       ((*(byte *)(DAT_1826707a0 + -0x5c0) ^ local_80) & 0x3f);
  uVar13 = CONCAT44(uVar6,uVar6);
  uVar30 = *(ulonglong *)(lVar3 + -0x9c8);
  *(ulonglong *)(lVar3 + -0xc18) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0xa49cc317)) ^ uVar15 | uVar41 ^ *puVar31) ^ uVar13;
  *puVar1 = (CONCAT44(uVar28,uVar28) ^ 0x3b4b0a43bad0fe19) +
            (uVar26 ^ *(ulonglong *)(lVar3 + -0x558));
  uVar23 = (uVar30 ^ uVar19) - (*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xedbb45ae)) ^ uVar13);
  puVar31 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x6febf2a7));
  *(ulonglong *)(lVar3 + -0x610) = uVar23 ^ uVar25;
  uVar6 = DAT_18267099c;
  lVar4 = DAT_1826707a0;
  uVar30 = *(ulonglong *)(lVar3 - (uVar20 ^ 0xa49ccd1f)) ^ uVar27 ^ uVar26 ^ uVar18 ^ *puVar31;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar30;
  uVar13 = (uVar29 << 0x14 | (ulonglong)(((uVar17 & 0xffff | uVar9) << 8 | uVar9) >> 4)) ^
           uVar30 >> 0xc;
  uVar28 = DAT_182670ad8 * DAT_18267095c;
  uVar25 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar4 + -0xf0) = uVar13 ^ CONCAT44(uVar6,uVar6);
  uVar12 = uVar28 & 0xff;
  uVar30 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0x1488c416)) ^ uVar18) <<
           ((local_b8 ^ 0x16) & 0x3f);
  *puVar2 = uVar30 ^ uVar25;
  DAT_182670998 = ((uVar28 * 0x100 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar13 = uVar13 | uVar30;
  uVar27 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar15 = uVar13 ^ uVar27;
  *puVar1 = uVar15;
  lVar3 = DAT_1826707a0;
  uVar12 = DAT_18267095c & 0xff;
  DAT_18267095c = ((DAT_18267095c << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar18 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = (uVar26 ^ *puVar31) - uVar13 ^ uVar18;
  bVar14 = (byte)DAT_1826707ec;
  uVar15 = uVar23 ^ uVar15;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar15;
  uVar30 = (uVar27 ^ uVar15) << 0x27;
  *puVar2 = uVar30 ^ uVar25;
  uVar30 = (uVar27 ^ uVar15) >> ((bVar14 ^ 0xe6) & 0x3f) | uVar30;
  *(ulonglong *)(lVar3 + -0x558) = uVar30 ^ uVar18;
  uVar23 = uVar23 - (CONCAT44(uVar22,uVar33) ^ 0x82e75a2b757c57dc);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar23 ^ uVar27;
  uVar12 = DAT_1826707e4;
  uVar13 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x6febf337)) = uVar23 - uVar30 ^ uVar18;
  *(ulonglong *)(lVar3 + -0xf0) = (uVar13 ^ 0x30000000) >> 0x1c;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0xb649b12d)) =
       (uVar18 ^ *(ulonglong *)(lVar3 + -0x558)) - (CONCAT44(uVar21,uVar12) ^ 0xa4c619db092d9a1f) ^
       uVar18;
  *puVar1 = CONCAT44(uVar10,uVar11) ^ 0xf58ff2a9d52ab0e0 | uVar18 ^ *puVar2;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar8 * 4) = uVar44;
  return;
}



############ FUN_ 180c7f880 size=3361 ############

void FUN_180c7f880(void)

{
  undefined8 *puVar1;
  byte bVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined1 *puVar15;
  byte *pbVar16;
  byte *pbVar17;
  longlong lVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte local_a0;
  byte local_90;
  
  uVar11 = DAT_1826707e8;
  uVar10 = DAT_1826707e0;
  uVar9 = DAT_1826707c0;
  uVar8 = DAT_1826707b8;
  uVar7 = DAT_1826707b0;
  uVar6 = DAT_1826707ac;
  lVar18 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707e8;
  uVar30 = (ulonglong)DAT_1826707c0;
  uVar19 = (ulonglong)DAT_1826707b8;
  uVar35 = (ulonglong)DAT_1826707e0;
  uVar22 = DAT_1826707b8 | DAT_1826707e8;
  uVar3 = *(uint *)(&DAT_18260f758 + DAT_182670d40);
  uVar28 = (ulonglong)DAT_1826707ac;
  uVar26 = DAT_1826707b0 & DAT_1826707ac;
  uVar31 = DAT_1826707c0 * DAT_1826707e0;
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670d40) ^ DAT_1826707e8;
  uVar25 = (ulonglong)DAT_1826707b0;
  puVar1 = (undefined8 *)(DAT_1826707a0 + -0x400);
  DAT_1826707cc = uVar26;
  DAT_1826707d8 = uVar31;
  DAT_1826707dc = uVar22;
  *(longlong *)(DAT_1826707a0 + -0x6b8) = *(longlong *)(DAT_1826707a0 + -0xa18) << 0x30;
  *(longlong *)(lVar18 + -0xd88) = *(longlong *)(lVar18 + -0xa18) << ((byte)*puVar1 & 0x3f);
  lVar4 = DAT_1826707a0;
  *(longlong *)(lVar18 + -0x6f0) =
       *(longlong *)(lVar18 - (uVar19 ^ 0x816bab9)) + *(longlong *)(lVar18 + -0x9c8);
  puVar15 = (undefined1 *)
            ((CONCAT44(uVar8,uVar7) ^ 0x816bc013aed8c51) + *(longlong *)(lVar18 + 0x30));
  *(undefined1 **)(lVar18 + -0x418) = puVar15;
  *(undefined1 *)(lVar18 + -0x6c9) = *puVar15;
  uVar33 = (ulonglong)uVar26;
  pbVar16 = (byte *)(lVar18 - (uVar28 ^ 0x80482c8));
  uVar27 = (ulonglong)uVar31;
  puVar20 = (ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0x80488e0));
  *puVar20 = (ulonglong)*pbVar16;
  *(undefined8 *)(lVar4 + -0x658) = *(undefined8 *)(lVar4 + -0x6f0);
  *(longlong *)(lVar4 - ((ulonglong)uVar10 ^ 0x20004815)) =
       *(longlong *)(lVar4 + -0xce0) << (((byte)uVar31 ^ 2) & 0x3f);
  *(longlong *)(lVar4 + -0xd38) = *(longlong *)(lVar4 + -0x438) + *(longlong *)(lVar4 + -0x6f0);
  *(longlong *)(lVar4 + -0x420) =
       *(longlong *)(lVar4 + -0x220) << ((byte)*(longlong *)(lVar4 + -0x438) & 0x3f);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x8048770)) =
       *(longlong *)(lVar4 + -0xa58) + (CONCAT44(uVar11,uVar7) ^ 0x442d1ffe3aed8c0c) * 8;
  *(longlong *)(lVar4 + -0x660) =
       -0x38f847e2cec351f9 << ((byte)*(undefined8 *)(lVar4 + -0x7d8) & 0x3f);
  uVar34 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  **(ulonglong **)(lVar4 + -0x370) = uVar34 ^ *(ulonglong *)(lVar4 + -0xd38);
  lVar18 = DAT_1826707a0;
  pbVar17 = (byte *)((CONCAT44(uVar6,uVar9) ^ 0x8048401e625e03a) +
                    *(longlong *)((uVar27 ^ 0xf345890a) + lVar4));
  *(byte **)(lVar4 + -0x418) = pbVar17;
  puVar32 = (ulonglong *)(lVar4 - (uVar33 ^ 0x80484f0));
  *(ulonglong *)(lVar18 + -0x4c8) = *puVar20 ^ *puVar32;
  bVar2 = *pbVar17;
  *(byte *)(lVar18 + -0x6c9) = bVar2;
  *(ulonglong *)(lVar18 + -0xc18) = (ulonglong)bVar2;
  lVar18 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x200049a5)) =
       CONCAT44(uVar11,uVar6) ^ 0x743cd7130fca489b | *(ulonglong *)(DAT_1826707a0 + -0xd38);
  *(longlong *)(lVar18 - (uVar30 ^ 0xe625e47a)) = *(longlong *)(lVar18 + 0x30) + 0x59;
  *(ulonglong *)(lVar18 + -0x5c0) =
       *(ulonglong *)(lVar18 - ((ulonglong)uVar8 ^ 0x816baf1)) | *(ulonglong *)(lVar18 + -0x438);
  bVar2 = **(byte **)(lVar18 + -0x418);
  *(byte *)(lVar18 + -0x6c9) = bVar2;
  *(ulonglong *)(lVar18 + -0x998) = (ulonglong)bVar2;
  lVar18 = DAT_1826707a0;
  bVar29 = (byte)uVar9;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar31 ^ 0xf3458d3a)) =
       (CONCAT44(uVar22,uVar7) ^ 0xb106a794af63e2a6) >>
       ((byte)*(undefined8 *)(DAT_1826707a0 + -0xd88) & 0x3f);
  uVar23 = *(longlong *)(lVar18 - (uVar19 ^ 0x816b599)) << ((bVar29 ^ 0x6a) & 0x3f);
  *(ulonglong *)(lVar18 + -0xa18) = uVar23;
  *(ulonglong *)(lVar18 + -0x9c8) =
       *(ulonglong *)(lVar18 - ((ulonglong)uVar9 ^ 0xe625ec7a)) | uVar23;
  *(ulonglong *)(lVar18 - (uVar19 ^ 0x816b6e9)) =
       (CONCAT44(uVar26,uVar11) ^ 0x8048400442d1fa4) + *(longlong *)(lVar18 + 0x30);
  *(undefined1 *)(lVar18 + -0x6c9) = **(undefined1 **)(lVar18 + -0xae8);
  *(ulonglong *)(lVar18 - ((ulonglong)uVar7 ^ 0x3aed8abe)) =
       CONCAT44(uVar7,uVar31) ^ 0x42793129d5e000ee | *(ulonglong *)(lVar18 + -0x7d8);
  *(ulonglong *)(lVar18 + -0x658) = (ulonglong)*(byte *)(lVar18 + -0x6c9);
  uVar24 = (ulonglong)*(byte *)(lVar18 + -0x6c9) << (((byte)uVar7 ^ 0x16) & 0x3f);
  *(ulonglong *)(lVar18 + -0x420) = uVar24;
  uVar24 = uVar24 | *(ulonglong *)(lVar18 + -0x9c8);
  *(ulonglong *)(lVar18 + -0x220) = uVar24;
  *(undefined1 *)(lVar18 + -0x6c9) = **(undefined1 **)(lVar18 + -0x418);
  pbVar17 = (byte *)(*(longlong *)(lVar18 + 0x30) + 0x5b);
  *(byte **)(lVar18 + -0x418) = pbVar17;
  bVar2 = *pbVar17;
  *(byte *)(lVar18 + -0x6c9) = bVar2;
  *(ulonglong *)(lVar18 + -0x660) = (ulonglong)bVar2;
  lVar4 = DAT_1826707a0;
  uVar23 = (ulonglong)bVar2 << ((bVar29 ^ 0x7a) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar23;
  *puVar20 = uVar24 | uVar23;
  *(longlong *)(lVar4 - (uVar28 ^ 0x80480c9)) =
       -0x719f62fc01adc9aa << ((byte)*(undefined8 *)(lVar4 + -0x658) & 0x3f);
  lVar18 = *(longlong *)(lVar4 + 0x30);
  *(ulonglong *)(lVar4 + -0x418) = (CONCAT44(uVar6,uVar26) ^ 0x80484010804845c) + lVar18;
  lVar5 = DAT_1826707a0;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 - (uVar35 ^ 0x20004835));
  *(ulonglong *)(lVar4 + -0x588) = (ulonglong)*(byte *)(lVar4 - (uVar21 ^ 0x442d1937));
  *(int *)(lVar4 + -0x540) = *(int *)(lVar4 + -0xc34) * 0x6d64e8e5;
  lVar4 = DAT_1826707a0;
  uVar23 = *(longlong *)(lVar5 - (uVar19 ^ 0x816b989)) << ((bVar29 ^ 0x42) & 0x3f);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar23;
  uVar23 = *puVar20 | uVar23;
  *(ulonglong *)(lVar4 + -0x438) = uVar23;
  puVar15 = (undefined1 *)(*(longlong *)((uVar35 ^ 0x20004c1d) + lVar4) + 0x5d);
  *(undefined1 **)(lVar4 + -0x930) = puVar15;
  *(undefined1 *)(lVar4 + -0x6c9) = *puVar15;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (ulonglong)*(byte *)(DAT_1826707a0 - (uVar25 ^ 0x3aed8acf));
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       *(ulonglong *)(lVar4 + -0xc18) >> ((byte)*(undefined8 *)(lVar4 + -0x588) & 0x3f);
  *(longlong *)(DAT_1826707a0 + -0x400) =
       *(longlong *)(DAT_1826707a0 - (uVar27 ^ 0xf3458cfa)) << 0x28;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x2000482d)) | uVar23;
  puVar15 = (undefined1 *)(lVar18 + 0x5e);
  uVar23 = *(ulonglong *)(lVar4 + -0x998);
  local_90 = (byte)uVar6;
  *(undefined1 **)(lVar4 + -0x498) = puVar15;
  *(undefined1 *)(lVar4 + -0x6c9) = *puVar15;
  *(ulonglong *)(lVar4 + -0xa18) = uVar23 >> ((local_90 ^ 0x3c) & 0x3f);
  lVar18 = DAT_1826707a0;
  bVar2 = *(byte *)(lVar4 + -0x6c9);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = (ulonglong)bVar2;
  *(ulonglong *)(lVar18 + -0x6b8) = (ulonglong)bVar2 << (((byte)uVar8 ^ 0x31) & 0x3f);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0x8048dc9)) =
       *(longlong *)(lVar18 - (uVar30 ^ 0xe625e6da)) + uVar23;
  pbVar17 = (byte *)((CONCAT44(uVar7,uVar9) ^ 0x3aed8c06e625e03d) + *(longlong *)(lVar4 + 0x30));
  *(ulonglong *)(lVar4 + -0x420) =
       *(ulonglong *)(lVar4 + -0x998) >> ((byte)*(undefined8 *)(lVar4 + -0xd88) & 0x3f);
  *(byte **)(lVar4 + -0x300) = pbVar17;
  bVar2 = *pbVar17;
  *(byte *)(lVar4 + -0x6c9) = bVar2;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x20004a4d)) = (ulonglong)bVar2;
  lVar18 = *(longlong *)(lVar4 + -0x660) << (((byte)uVar8 ^ 0x39) & 0x3f);
  *(longlong *)(lVar4 + -0x220) = lVar18;
  uVar13 = DAT_1826708b4;
  uVar12 = DAT_1826708a4;
  *(longlong *)(lVar4 + -0xf0) = *(longlong *)(lVar4 - ((ulonglong)uVar7 ^ 0x3aed85ce)) + lVar18;
  lVar18 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       *(ulonglong *)(CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(DAT_1826707a0 + -0x6c8)) ^
       CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670a7c;
  *(ulonglong *)(lVar18 - (uVar25 ^ 0x3aed8aee)) =
       *(longlong *)(lVar18 + -0xa58) + (CONCAT44(uVar7,uVar11) ^ 0x3aed8c06442d1ff5) * 8;
  **(ulonglong **)(lVar18 + -0x6e8) = uVar34 ^ *puVar32;
  uVar23 = *(longlong *)(lVar18 + -0xf0) - (CONCAT44(uVar31,uVar10) ^ 0xd3b10b2f1ca67757);
  *(ulonglong *)(lVar18 + -0x4c8) = uVar23;
  puVar20 = (ulonglong *)
            (*(longlong *)(lVar18 + -0xba8) +
            ((CONCAT44(uVar26,uVar11) ^ 0x8048400442d1ffe) +
            (CONCAT44(uVar6,uVar9) ^ 0x8048401e625e062) * 0xc) * 8);
  *(ulonglong **)(lVar18 + -0x180) = puVar20;
  *(ulonglong *)(lVar18 + -0x6f0) = uVar23 ^ 0xfb9023288eb180a0;
  *(uint *)(lVar18 + -0x398) = (DAT_1826707e0 ^ 0x7b00ba6c) >> (((byte)DAT_1826707b0 ^ 0x16) & 0x1f)
  ;
  uVar23 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar18 + -0x310) =
       *(longlong *)(lVar18 + -0x2d0) +
       ((CONCAT44(uVar6,uVar8) ^ 0x80484010816bc01) +
       (CONCAT44(uVar11,uVar22) ^ 0x442d1ffe4c3fbfff) * 0xc) * 8 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar18 + -0xce0) = uVar34 ^ *puVar20 ^ uVar23;
  uVar12 = DAT_1826708d4;
  *(ulonglong **)(lVar18 + -0x4e0) = puVar20 + (CONCAT44(uVar8,uVar9) ^ 0x816bc01e625e063);
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar18 + -0xc18) =
       uVar34 ^ puVar20[CONCAT44(uVar8,uVar9) ^ 0x816bc01e625e063] ^ uVar28;
  *(ulonglong *)(lVar18 - (uVar27 ^ 0xf3458cb2)) =
       *(ulonglong *)(lVar18 + -0x7d8) | 0xb918778698043332;
  *(ulonglong *)(lVar18 + -0x3d0) =
       *(longlong *)(lVar18 + -0x180) + (CONCAT44(uVar9,uVar26) ^ 0xe625e06208048402) * 8;
  uVar25 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar18 + -0x5c0) =
       **(ulonglong **)(lVar18 - (uVar21 ^ 0x442d1c2e)) ^ uVar34 ^ uVar25;
  *(ulonglong *)(lVar18 + -0x438) =
       (CONCAT44(uVar22,uVar10) ^ 0xbfff81a5c59d540e) - *(longlong *)(lVar18 + -0x658);
  *(ulonglong *)(lVar18 + -0xb78) =
       *(longlong *)(lVar18 + -0x180) + (CONCAT44(uVar9,uVar26) ^ 0xe625e06208048403) * 8;
  *pbVar16 = **(byte **)(lVar18 - (uVar19 ^ 0x816b761));
  uVar34 = **(ulonglong **)(lVar18 + -0xb78) ^ uVar34;
  uVar21 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar18 + -0x400) = uVar34;
  *(ulonglong *)(lVar18 + -0xa18) =
       (*(ulonglong *)(lVar18 + -0xce0) ^ uVar23) - (CONCAT44(uVar22,uVar31) ^ 0x73206901faeb1518) ^
       uVar21;
  lVar4 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar18 + -0x6b8) =
       (*(ulonglong *)(lVar18 + -0xc18) ^ uVar28) - (CONCAT44(uVar22,uVar7) ^ 0x97add66a1e5dbf99) ^
       uVar23;
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 + -0x5c0) ^ uVar25) - (CONCAT44(uVar31,uVar22) ^ 0xb06eb6583bb700c9) ^
       uVar23;
  uVar28 = (ulonglong)DAT_1826707d4;
  uVar34 = uVar34 - 0x12;
  *(ulonglong *)(lVar4 + -0x998) =
       (CONCAT44(uVar8,uVar6) ^ 0x1b876bc1cbf252a4) + (CONCAT44(uVar22,uVar9) ^ 0xc134afe649114fc2);
  uVar12 = DAT_182670a20;
  *(ulonglong *)(lVar4 + -0x420) = uVar34 ^ CONCAT44(DAT_182670838,DAT_182670838);
  uVar23 = CONCAT44(uVar12,uVar12);
  local_a0 = (byte)uVar11;
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xe625e602)) =
       uVar34 - (CONCAT44(uVar11,uVar10) ^ 0xe1d9f73c5b203ae0) ^ uVar23;
  uVar12 = DAT_18267091c;
  uVar25 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar19 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar23 = *(ulonglong *)(lVar4 - (uVar28 ^ 0xf3458f5a)) ^ uVar25 ^ *(ulonglong *)(lVar4 + -0xa18) ^
           uVar23 ^ uVar21;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar23;
  uVar13 = DAT_182670954;
  uVar28 = (uVar23 ^ uVar25) >> ((local_90 ^ 0x21) & 0x3f);
  uVar24 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar28 ^ uVar19;
  *(ulonglong *)(lVar4 + -0x6f0) = (uVar25 ^ uVar23) << ((local_a0 ^ 0xde) & 0x3f) ^ uVar24;
  uVar28 = *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x4c3fb90f)) ^ uVar24 | uVar28;
  uVar23 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar28 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x8048188)) =
       (*(ulonglong *)(lVar4 + -0xa18) ^ uVar21) - uVar28 ^ uVar23;
  *(longlong *)(lVar4 - (uVar35 ^ 0x20004a75)) =
       *(longlong *)(lVar4 + -0x220) << (((byte)uVar31 ^ 0x16) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar3 ^ uVar22;
  return;
}



############ FUN_ 180cdf6c0 size=3038 ############

void FUN_180cdf6c0(void)

{
  ulonglong *puVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  undefined1 *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  longlong *plVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  
  uVar7 = DAT_1826707c4;
  uVar6 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707c4;
  uVar18 = DAT_1826707c4 * DAT_1826707ac;
  uVar19 = *(uint *)(&DAT_18260f758 + DAT_182670e60) ^ DAT_1826707c4;
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670e60) ^ DAT_1826707ac;
  uVar30 = (ulonglong)DAT_1826707c4;
  uVar24 = (ulonglong)uVar18;
  uVar15 = (ulonglong)DAT_1826707ac;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xa18);
  DAT_1826707cc = uVar18;
  *(longlong *)(DAT_1826707a0 + -0x610) =
       *(longlong *)(DAT_1826707a0 + -0x9c8) + *(longlong *)(DAT_1826707a0 + -0x5c0);
  uVar22 = CONCAT44(uVar18,uVar18);
  puVar29 = (ulonglong *)(*(longlong *)(lVar3 + -0xa58) + (uVar22 ^ 0xa07d9402a07d940a) * 8);
  *(ulonglong **)(lVar3 + -0x5c8) = puVar29;
  *puVar1 = 0x3eaa25675f9d84d5 - (CONCAT44(uVar7,uVar6) ^ 0xc2bbeb1c146c216);
  uVar28 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *puVar29 = *(ulonglong *)(lVar3 - (uVar24 ^ 0xa07d9212)) ^ uVar28;
  puVar20 = (undefined1 *)(*(longlong *)(lVar3 + 0x30) + 0x48);
  *(ulonglong *)(lVar3 + -0x420) = CONCAT44(uVar7,uVar7) ^ 0x19201db74763fb19;
  *(undefined1 **)(lVar3 + -0x350) = puVar20;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar6 ^ 0x80482c8)) = *puVar20;
  *(ulonglong *)(lVar3 + -0xce0) = (ulonglong)*(byte *)(lVar3 + -0x6c9);
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x8448f52)) =
       (CONCAT44(uVar18,uVar6) ^ 0xa07d940208048448) + *(longlong *)((uVar15 ^ 0x8048431) + lVar3);
  bVar2 = **(byte **)(lVar3 + -0x350);
  *(byte *)(lVar3 + -0x6c9) = bVar2;
  uVar15 = (ulonglong)bVar2 << ((byte)(uVar22 ^ 0xa07d9402a07d940a) & 0x3f);
  *(ulonglong *)(lVar3 + -0x998) = (ulonglong)bVar2;
  *(ulonglong *)(lVar3 + -0x220) = uVar15;
  *(ulonglong *)(lVar3 + -0x660) = uVar15 | *(ulonglong *)(lVar3 + -0xce0);
  *(ulonglong *)(lVar3 + -0x350) =
       (CONCAT44(uVar7,uVar7) ^ 0x8448c0208448c48) + *(longlong *)(lVar3 + 0x30);
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 - ((ulonglong)uVar18 ^ 0xa07d9752));
  *(ulonglong *)(lVar3 + -0xd88) = (ulonglong)*(byte *)(lVar3 + -0x6c9);
  *(ulonglong *)(lVar3 + -0x658) = CONCAT44(uVar6,uVar6) << 0x30 ^ 0xc568000000000000;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xa07d9002)) =
       (ulonglong)*(byte *)(lVar3 + -0x6c9) << (((byte)uVar6 ^ 0x11) & 0x3f);
  puVar29 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x8048001));
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x8448a32)) = *puVar29 | *(ulonglong *)(lVar3 + -0x660)
  ;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x8048e41)) =
       (uVar22 ^ 0xa07d9402a07d9449) + *(longlong *)(lVar3 + 0x30);
  bVar2 = **(byte **)(lVar3 + -0xa40);
  *(byte *)(lVar3 + -0x6c9) = bVar2;
  *(ulonglong *)(lVar3 + -0xf0) = (ulonglong)bVar2;
  bVar17 = (byte)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0x6f0) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0x8448a12)) >> ((byte)*puVar29 & 0x3f);
  uVar21 = (ulonglong)bVar2 << ((bVar17 ^ 0x62) & 0x3f);
  *(ulonglong *)(lVar3 + -0x438) = uVar21;
  uVar10 = DAT_1826707ec;
  uVar30 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar3 + -0xd38) = (uVar22 ^ 0xf681362d16702d3e) << (((byte)uVar7 ^ 0x16) & 0x3f);
  uVar15 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar3 + -0x588) = *(ulonglong *)(lVar3 - (uVar30 ^ 0x60d2df6f)) | uVar21;
  puVar20 = (undefined1 *)(*(longlong *)((uVar15 ^ 0x3aed8c36) + lVar3) + 0x4c);
  *(undefined1 **)(lVar3 + -0xa40) = puVar20;
  *(undefined1 *)(lVar3 + -0x6c9) = *puVar20;
  bVar17 = *(byte *)(lVar3 + -0x6c9);
  uVar15 = CONCAT44(uVar6,DAT_1826707c0);
  *(ulonglong *)(lVar3 + -0x4c8) = (ulonglong)bVar17;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x7d8) = (uVar15 ^ 0xabdd5a3bc396e0dd) + *(longlong *)(lVar3 + -0x400);
  uVar22 = (ulonglong)uVar10;
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 + -0x350);
  uVar8 = DAT_1826707c8;
  uVar21 = (ulonglong)DAT_1826707c8;
  plVar23 = (longlong *)(lVar3 - (uVar21 ^ 0x4c2d2350));
  *(ulonglong *)(lVar3 + -0x6b8) = (ulonglong)bVar17 << (((byte)uVar10 ^ 0x20) & 0x3f);
  *(undefined1 *)(lVar3 + -0x6c9) = *(undefined1 *)*plVar23;
  uVar13 = DAT_182670a64;
  uVar32 = (ulonglong)DAT_1826707e0;
  uVar30 = *(ulonglong *)(lVar4 - (uVar32 ^ 0x200049a5)) |
           *(ulonglong *)(lVar4 - (uVar24 ^ 0xa07d92ba));
  *(ulonglong *)(lVar4 + -0xc18) = uVar30;
  *(longlong *)(lVar4 + -0xa40) = *(longlong *)(((ulonglong)uVar7 ^ 0x8448c32) + lVar4) + 0x4d;
  uVar11 = DAT_1826708fc;
  bVar17 = **(byte **)(lVar4 - ((ulonglong)DAT_1826707e8 ^ 0x442d15be));
  *(byte *)(lVar4 + -0x6c9) = bVar17;
  *(ulonglong *)(lVar4 + -0x5c0) = (ulonglong)bVar17;
  uVar5 = DAT_1826707a8;
  uVar25 = uVar8 ^ uVar10;
  uVar26 = uVar25 ^ 0x4a685a16;
  DAT_1826707b4 = uVar26;
  *(ulonglong *)(lVar4 + -0x9c8) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar4 + -0x798)) ^
       CONCAT44(uVar13,uVar13);
  uVar9 = DAT_1826707d4;
  uVar15 = (ulonglong)DAT_1826707d4;
  uVar31 = (ulonglong)bVar17 << (((byte)uVar6 ^ 0x29) & 0x3f);
  *puVar1 = uVar31;
  uVar30 = *(ulonglong *)(lVar4 - (uVar15 ^ 0xf3458322)) | uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar30;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       CONCAT44(uVar10,DAT_1826707e8) ^ (ulonglong)bVar2 ^ 0x7d2d553362a009b3;
  pbVar16 = (byte *)((CONCAT44(uVar18,DAT_1826707b0) ^ 0xa07d94023aed8c48) +
                    *(longlong *)(lVar4 + 0x30));
  *(byte **)(lVar4 + -0x350) = pbVar16;
  bVar2 = *pbVar16;
  *(byte *)(lVar4 + -0x6c9) = bVar2;
  *(ulonglong *)(lVar4 + -0x658) = uVar31 + 0x7c67e3ea33e49352;
  *(ulonglong *)(lVar4 + -0x220) = (ulonglong)bVar2;
  *(ulonglong *)(lVar4 + -0xd88) = (ulonglong)bVar2 << 0x30;
  uVar31 = (ulonglong)uVar26;
  *(ulonglong *)(lVar4 + -0x660) = uVar30 + ((ulonglong)bVar2 << 0x30);
  *(ulonglong *)(lVar4 + -0x6f0) = *(ulonglong *)(lVar4 - (uVar21 ^ 0x4c2d2660)) ^ uVar30;
  *plVar23 = (CONCAT44(uVar10,uVar25) ^ 0x4c2d20000000004f) + *(longlong *)(lVar4 + 0x30);
  bVar2 = **(byte **)(lVar4 + -0x350);
  *(byte *)(lVar4 + -0x6c9) = bVar2;
  *(uint *)(lVar4 + -0xa34) = (uVar10 ^ 0x5a3139ab) + (uVar25 ^ 0x5dc586d8);
  *(ulonglong *)(lVar4 + -0xd38) = (ulonglong)bVar2;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x4c2d2438)) =
       (ulonglong)bVar2 << (((byte)uVar8 ^ 0x38) & 0x3f);
  puVar29 = (ulonglong *)(lVar4 - (uVar21 ^ 0x4c2d2630));
  *puVar29 = *(longlong *)(lVar4 - (uVar31 ^ 0x4a685e2e)) + *(longlong *)(lVar4 + -0x660);
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x4c2d2be8)) =
       *(longlong *)(lVar4 + -0xa58) + (CONCAT44(uVar10,uVar8) ^ 0x4c2d20004c2d2009) * 8;
  **(ulonglong **)(lVar4 + -0xbe8) = uVar28 ^ *puVar29;
  lVar3 = *(longlong *)(lVar4 + 0x30);
  puVar20 = (undefined1 *)((CONCAT44(uVar10,uVar25) ^ 0x4c2d200000000050) + lVar3);
  *(undefined1 **)(lVar4 + -0x350) = puVar20;
  *(undefined1 *)(lVar4 + -0x6c9) = *puVar20;
  *(ulonglong *)(lVar4 + -0x400) =
       *(ulonglong *)(lVar4 - (uVar31 ^ 0x4a68572e)) | CONCAT44(uVar10,uVar8) ^ 0x196a4d4736899bdd;
  *(ulonglong *)(lVar4 + -0x7d8) = (ulonglong)*(byte *)(lVar4 - ((ulonglong)uVar26 ^ 0x4a685cdf));
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       (CONCAT44(uVar8,uVar25) ^ 0xb27e80e2115b7bd5) >> (((byte)uVar10 ^ 0x19) & 0x3f);
  lVar4 = DAT_1826707a0;
  puVar20 = (undefined1 *)((CONCAT44(uVar25,uVar8) ^ 0x4c2d2051) + lVar3);
  *(undefined1 **)(DAT_1826707a0 + -0xc28) = puVar20;
  uVar12 = DAT_1826707f4;
  uVar28 = (ulonglong)DAT_1826707f4;
  *(undefined1 *)(lVar4 - ((ulonglong)uVar10 ^ 0x4c2d26c9)) = *puVar20;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x588) = (ulonglong)*(byte *)(lVar4 + -0x6c9);
  uVar15 = *(longlong *)(lVar4 - ((ulonglong)uVar26 ^ 0x4a685f9e)) << (((byte)uVar8 ^ 8) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar15;
  uVar26 = DAT_1826707d0;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x3a7632c5)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xe90dc23d)) | uVar15;
  *(uint *)(lVar3 - (uVar31 ^ 0x4a685622)) = (uVar10 ^ 0x94af367) + 0xce4f9075;
  *(longlong *)(lVar3 - (uVar21 ^ 0x4c2d2c28)) = *(longlong *)((uVar32 ^ 0x20004c1d) + lVar3) + 0x52
  ;
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 + -0xc28);
  *(ulonglong *)(lVar3 + -0x5c0) = *(ulonglong *)(lVar3 + -0x9c8) ^ 0xaabc5d8992c8e99e;
  *(ulonglong *)(lVar3 + -0xc18) = (ulonglong)*(byte *)(lVar3 + -0x6c9);
  *(ulonglong *)(lVar3 + -0xf0) = (ulonglong)*(byte *)(lVar3 + -0x6c9) << 0x10;
  *(ulonglong *)(lVar3 + -0xce0) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0x4c2d20f0)) | *(ulonglong *)(lVar3 + -0x9c8);
  puVar20 = (undefined1 *)
            ((CONCAT44(uVar6,uVar26) ^ 0x80484015fd9d233) + *(longlong *)(lVar3 + 0x30));
  *(undefined1 **)(lVar3 + -0xc28) = puVar20;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar26 ^ 0x5fd9d4a9)) = *puVar20;
  bVar2 = *(byte *)(lVar3 + -0x6c9);
  uVar15 = *(ulonglong *)(lVar3 + -0x6b8);
  uVar30 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707bc ^ 0x8448cf2));
  uVar21 = *(ulonglong *)(lVar3 - (uVar21 ^ 0x4c2d20f0));
  *(ulonglong *)(lVar3 + -0x658) = (ulonglong)bVar2;
  *puVar1 = uVar30 | uVar21;
  bVar17 = (byte)DAT_1826707d8;
  *(ulonglong *)(lVar3 + -0xd88) = CONCAT44(uVar9,uVar12) ^ uVar15 ^ 0xbf73d8965cbe1d59;
  uVar30 = (ulonglong)DAT_1826707c0;
  uVar21 = (ulonglong)bVar2 << ((bVar17 ^ 0x46) & 0x3f);
  uVar15 = CONCAT44(DAT_1826707c0,DAT_1826707b8);
  *(ulonglong *)(lVar3 + -0x420) = uVar21;
  lVar4 = DAT_1826707a0;
  uVar31 = uVar21 | *(ulonglong *)(lVar3 + -0xce0);
  *(ulonglong *)(lVar3 + -0x6f0) =
       (uVar15 ^ 0x31325e68867995d) + (CONCAT44(uVar25,uVar10) ^ 0x21fe9781477f1885);
  *(ulonglong *)(lVar3 + -0x660) = uVar31;
  lVar3 = *(longlong *)(lVar3 + 0x30);
  *(ulonglong *)(lVar4 + -0xc28) = (CONCAT44(uVar7,uVar8) ^ 0x8448c024c2d2054) + lVar3;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 - (uVar22 ^ 0x4c2d2c28));
  *(ulonglong *)(lVar4 + -0x438) = 0xf71226bdc455f414 >> (bVar2 & 0x3f);
  uVar26 = DAT_1826707dc;
  *(ulonglong *)(lVar4 + -0xd38) = (ulonglong)*(byte *)(lVar4 + -0x6c9);
  *(ulonglong *)(lVar4 + -0x400) =
       (CONCAT44(uVar6,uVar18) ^ 0x9a5dc152ee85d5b2) >> ((byte)uVar21 & 0x3f);
  *(ulonglong *)(lVar4 + -0x4c8) =
       (ulonglong)*(byte *)(lVar4 + -0x6c9) << (((byte)uVar5 ^ 0xc5) & 0x3f);
  uVar5 = DAT_1826707e8;
  *(ulonglong *)(lVar4 + -0x588) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e8 ^ 0x442d1b36)) | uVar31;
  pbVar16 = (byte *)((CONCAT44(uVar7,uVar5) ^ 0x8448c02442d1fab) + lVar3);
  *(byte **)(lVar4 + -0xb60) = pbVar16;
  bVar2 = *pbVar16;
  *(byte *)(lVar4 + -0x6c9) = bVar2;
  *(ulonglong *)(lVar4 + -0x7d8) = (ulonglong)bVar2;
  uVar11 = DAT_1826707f0;
  *(longlong *)(lVar4 - (uVar27 ^ 0x84489c2)) =
       *(longlong *)(lVar4 - (uVar30 ^ 0xe625e7ba)) << (((byte)DAT_1826707e4 ^ 0x52) & 0x3f);
  uVar15 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x4c2d2c18)) =
       CONCAT44(uVar11,DAT_1826707b0) ^ CONCAT44(uVar8,uVar10) ^ 0x5979bdf4d0c6c57e;
  *(ulonglong *)(lVar4 - (uVar15 ^ 0x18945896)) =
       *(ulonglong *)(lVar4 + -0x588) | *(ulonglong *)(lVar4 + -0x5c0);
  puVar20 = (undefined1 *)
            ((CONCAT44(uVar8,uVar26) ^ 0x4c2d200060d2d909) +
            *(longlong *)(((ulonglong)uVar26 ^ 0x60d2d96f) + lVar4));
  *(undefined1 **)(lVar4 + -0x418) = puVar20;
  *(longlong *)(lVar4 + -0xf0) = *(longlong *)(lVar4 + -0x998) + -0x4289e6e5e0c8a29;
  *(undefined1 *)(lVar4 - (uVar24 ^ 0xa07d92cb)) = *puVar20;
  *puVar1 = (ulonglong)*(byte *)(lVar4 - (uVar28 ^ 0x3a763dc4));
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar19;
  return;
}



############ FUN_ 180c537e0 size=5118 ############

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

void FUN_180c537e0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  byte bVar17;
  ulonglong uVar18;
  uint uVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte local_c8;
  byte local_b8;
  
  uVar10 = DAT_182670970;
  uVar21 = DAT_1826707f4;
  uVar12 = DAT_1826707d0;
  uVar9 = DAT_1826707ac;
  lVar7 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707ac;
  uVar34 = (ulonglong)DAT_1826707d0;
  uVar25 = (ulonglong)DAT_1826707f4;
  uVar19 = DAT_1826707d0 + DAT_1826707f4;
  uVar28 = (DAT_1826707ac << 0x10 | DAT_1826707ac & 0xff00) << 8 | DAT_1826707ac >> 8 & 0xff00 |
           DAT_1826707ac >> 0x18;
  uVar5 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707ac ^ 0xba28da76) + (longlong)DAT_182670cb4);
  uVar6 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707d0 ^ 0xfcc943c4) + (longlong)DAT_182670cb4);
  uVar30 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar18 = CONCAT44(DAT_1826707f4,DAT_1826707ac);
  bVar16 = (byte)(DAT_1826707ac >> 0x18);
  uVar26 = CONCAT44(DAT_182670970,DAT_182670970);
  uVar24 = (ulonglong)uVar28;
  uVar22 = (*(ulonglong *)(DAT_1826707a0 + -0x5c0) ^ uVar30) >> ((bVar16 ^ 0x9a) & 0x3f) ^ uVar26;
  DAT_1826707a8 = uVar28;
  DAT_1826707f0 = uVar19;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar22;
  uVar14 = DAT_182670974;
  lVar8 = DAT_1826707a0;
  *(ulonglong *)(lVar7 + -0x660) =
       (uVar18 ^ 0x2cb143798122dc7) << (((byte)uVar22 ^ (byte)uVar10) & 0x3f);
  lVar7 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0x8448822)) =
       (*(ulonglong *)(lVar8 + -0x5c0) ^ uVar30) << (((byte)uVar19 ^ 0xf6) & 0x3f) ^ uVar23;
  puVar1 = (ulonglong *)(lVar7 + -0xc18);
  uVar35 = CONCAT44(DAT_182670998,DAT_182670998);
  *puVar1 = (CONCAT44(uVar9,uVar12) ^ 0x76bc0f5e10d58b0f) << (((byte)uVar21 ^ 8) & 0x3f);
  uVar14 = DAT_182670994;
  puVar2 = (ulonglong *)(lVar7 + -0x6f0);
  *(ulonglong *)(lVar7 + -0xd88) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar21 ^ 0x844898a)) ^ uVar26 |
       *(ulonglong *)(lVar7 + -0x420) ^ uVar23) ^ uVar35;
  uVar10 = DAT_182670848;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x4c8) =
       (uVar22 ^ *(ulonglong *)(lVar7 + -0x220)) - (CONCAT44(uVar19,uVar9) ^ 0xb5f1aa0b35223355);
  lVar8 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670950,DAT_182670950);
  puVar20 = (ulonglong *)(lVar7 - (uVar27 ^ 0xba28de46));
  puVar3 = (ulonglong *)(lVar7 + -0x7d8);
  *puVar20 = (CONCAT44(uVar10,uVar10) ^ *puVar2) -
             (*(ulonglong *)(lVar7 - (uVar24 ^ 0x7eda2532)) ^ uVar35) ^ uVar37;
  *(undefined8 *)(lVar7 + -0x6b8) = 0x2bd5a8d320a53887;
  uVar29 = CONCAT44(DAT_182670868,DAT_182670868);
  uVar18 = CONCAT44(DAT_182670984,DAT_182670984);
  uVar30 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar31 = CONCAT44(DAT_182670814,DAT_182670814) ^ uVar18 ^ uVar29 ^ *puVar3 ^
           *(ulonglong *)(lVar8 + -0x400);
  *(ulonglong *)(lVar8 + -0xce0) = uVar31;
  uVar10 = DAT_182670a78;
  local_b8 = (byte)uVar12;
  uVar26 = (*(ulonglong *)(lVar8 - (uVar25 ^ 0x84480e2)) ^ uVar29) >> ((local_b8 ^ 0xf4) & 0x3f);
  *(ulonglong *)(lVar8 + -0x660) = uVar26 ^ uVar30;
  lVar7 = DAT_1826707a0;
  uVar30 = (uVar31 ^ uVar29) << ((bVar16 ^ 0x9a) & 0x3f);
  uVar31 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar30 ^ CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar7 - (uVar25 ^ 0x844801a)) = (uVar30 | uVar26) ^ uVar31;
  uVar30 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *(ulonglong *)(lVar7 + -0x588) = (uVar18 ^ *puVar3) - (uVar31 ^ *puVar1) ^ uVar30;
  uVar10 = DAT_182670824;
  *(ulonglong *)(lVar7 + -0x420) =
       (CONCAT44(uVar9,uVar28) ^ 0xf9974ee886e227e4) + (CONCAT44(uVar12,uVar9) ^ 0xcf2f215a3f64098f)
  ;
  uVar14 = DAT_1826708b0;
  lVar7 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar10,uVar10);
  puVar4 = (ulonglong *)(DAT_1826707a0 + -0x438);
  uVar26 = uVar29 ^ uVar31 ^ uVar37 ^ *puVar4 ^ *puVar1;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar26;
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x4c8) = (uVar26 ^ uVar29) >> (((byte)uVar9 ^ 0x44) & 0x3f) ^ uVar31;
  uVar10 = DAT_182670968;
  *(undefined1 *)(lVar7 + -0x6c9) = **(undefined1 **)(lVar7 + -0xae8);
  uVar18 = CONCAT44(uVar10,uVar10);
  puVar32 = (ulonglong *)(lVar7 - ((ulonglong)uVar19 ^ 0x50dc926));
  *puVar32 = (uVar26 ^ uVar29) << 6 ^ uVar18;
  lVar8 = DAT_1826707a0;
  *(ulonglong *)(lVar7 + -0x6b8) =
       CONCAT44(uVar19,uVar28) ^ CONCAT44(uVar21,uVar19) ^ 0x44570b4de0430574;
  uVar14 = DAT_182670a64;
  uVar33 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar18 = uVar31 ^ *(ulonglong *)(lVar7 + -0x4c8) | *puVar2 ^ uVar18;
  *(ulonglong *)(lVar7 + -0x400) = uVar18 ^ uVar33;
  uVar10 = DAT_182670a60;
  uVar36 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0xce0) = (uVar37 ^ *puVar20) - uVar18 ^ uVar36;
  uVar11 = DAT_1826707e4;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar7 + -0x660) =
       uVar18 ^ uVar30 ^ uVar35 ^ *(ulonglong *)(lVar7 + -0x588) ^ *(ulonglong *)(lVar7 + -0xd88);
  *(ulonglong *)(lVar8 + -0x5c0) =
       CONCAT44(uVar21,uVar12) ^ CONCAT44(uVar28,uVar12) ^ 0x4c985a924e035a34;
  uVar35 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *puVar3 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0x44c14e62)) ^ uVar18) >>
            ((local_b8 ^ 0xc2) & 0x3f) ^ uVar35;
  lVar7 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670844,DAT_182670844);
  bVar17 = (byte)DAT_1826707d4;
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x7eda2c9a)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xba28dc1e)) ^ uVar18) << 0x2a ^ uVar29;
  uVar18 = *(ulonglong *)(lVar7 + -0x588);
  uVar26 = *(ulonglong *)(lVar7 + -0x420) ^ uVar29;
  uVar31 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar35 = uVar35 ^ *puVar3 | uVar26;
  *(ulonglong *)(lVar7 + -0x220) = uVar26 >> ((bVar17 ^ 0xdf) & 0x3f);
  *puVar1 = uVar35 ^ uVar31;
  uVar26 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(lVar7 + -0x6b8) = (uVar30 ^ uVar18) - uVar35 ^ uVar26;
  uVar18 = (ulonglong)DAT_182670ab4;
  uVar30 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(ulonglong *)(lVar7 - (uVar27 ^ 0xba28deb6)) =
       CONCAT44(uVar9,uVar21) ^ CONCAT44(uVar21,uVar21) ^ 0x7fac562bc4374129;
  *puVar32 = uVar30 ^ uVar31 ^ uVar36 ^ *(ulonglong *)(lVar7 + -0xce0) ^ *puVar1;
  uVar18 = (*puVar2 >> 0x20 ^ uVar18) >> 0xe;
  *puVar4 = uVar18 ^ CONCAT44(DAT_182670920,DAT_182670920);
  uVar14 = DAT_182670a20;
  uVar13 = DAT_182670800;
  puVar20 = (ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0x44c14ef2));
  uVar37 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar31 = (uVar30 ^ *puVar20) << ((bVar16 ^ 0xa8) & 0x3f);
  *(ulonglong *)(lVar7 + -0xd88) = uVar31 ^ uVar37;
  uVar10 = DAT_182670910;
  uVar31 = uVar31 | uVar18;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x5c0) = uVar31 ^ uVar38;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 + -0x660) = (uVar36 ^ *(ulonglong *)(lVar7 + -0xce0)) - uVar31 ^ uVar30;
  uVar21 = DAT_1826707d8;
  lVar8 = DAT_1826707a0;
  *(ulonglong *)(lVar7 - (uVar34 ^ 0xfcc9440c)) =
       *(ulonglong *)(lVar7 + -0x6b8) ^ uVar35 ^ uVar26 ^ uVar33 ^ *(ulonglong *)(lVar7 + -0x400);
  *(uint *)(lVar7 + -0xa34) = (uVar21 ^ 0x278c85f) * *(int *)(lVar7 + -0xb54);
  uVar31 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar19 ^ 0x50dcdf6)) =
       ((ulonglong)uVar13 << 0x14 | (ulonglong)(uVar13 >> 0xc)) ^ *puVar3 >> 0xc ^ uVar31;
  uVar18 = (uVar35 ^ *puVar3) << 0x34;
  *(ulonglong *)(lVar8 + -0x588) =
       *(ulonglong *)(lVar8 + -0x420) ^ uVar37 ^ uVar29 ^ *(ulonglong *)(lVar8 + -0xd88);
  uVar14 = DAT_1826708d4;
  uVar10 = DAT_1826707b0;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar18 ^ CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar29 = CONCAT44(uVar14,uVar14);
  *puVar1 = (*(ulonglong *)(lVar7 - (uVar27 ^ 0xba28d85e)) ^ uVar31 | uVar18) ^ uVar29;
  *puVar20 = (*(ulonglong *)(lVar7 + -0x6b8) ^ uVar26) -
             (*(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0x44c1441a)) ^ uVar29) ^ uVar23;
  uVar31 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar18 = *(ulonglong *)(lVar7 - (uVar24 ^ 0x7eda24a2)) ^ uVar31 ^ uVar29 ^ uVar30 ^
           *(ulonglong *)(lVar7 + -0x660);
  *puVar4 = uVar18;
  uVar14 = DAT_182670a04;
  uVar26 = (uVar18 ^ uVar31) >> (((byte)uVar11 ^ 0x1b) & 0x3f);
  uVar29 = (uVar31 ^ uVar18) << 0x27;
  *(ulonglong *)(lVar7 + -0xce0) = uVar26 ^ CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar15 = DAT_182670a44;
  *(ulonglong *)(lVar7 + -0x400) = uVar29 ^ CONCAT44(uVar14,uVar14);
  uVar18 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar7 + -0x420) = (uVar29 | uVar26) ^ uVar18;
  uVar14 = DAT_1826708e4;
  uVar11 = DAT_1826707d4;
  uVar24 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar7 + -0xd88) = uVar29 | CONCAT44(uVar10,uVar12) ^ 0xfae81df97e6a8ecb;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 - (uVar24 ^ 0xf7fb7e77)) =
       (uVar30 ^ *(ulonglong *)(lVar7 + -0x660)) - (CONCAT44(uVar12,uVar9) ^ 0x46eb23c5c9d3f1dc) ^
       uVar26;
  lVar8 = DAT_1826707a0;
  *(ulonglong *)(lVar7 - (uVar25 ^ 0x8448bda)) =
       CONCAT44(uVar28,uVar28) ^ *(ulonglong *)(lVar7 + -0xd88) ^ 0x6de8da6f09c047a0;
  uVar14 = DAT_1826709f0;
  uVar18 = *(ulonglong *)(lVar7 + -0x420) ^ uVar18;
  uVar29 = CONCAT44(DAT_182670878,DAT_182670878);
  *(ulonglong *)(lVar8 + -0x220) = (uVar26 ^ *(ulonglong *)(lVar8 + -0x588)) - uVar18 ^ uVar29;
  uVar31 = CONCAT44(uVar14,uVar14);
  uVar26 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar8 + -0x4c8) =
       uVar18 - (CONCAT44(DAT_1826707b4,DAT_1826707b8) ^ 0x9793ae78626080e0) ^ uVar31;
  *(ulonglong *)(lVar8 - (uVar25 ^ 0x8448aba)) = uVar26 ^ **(ulonglong **)(lVar8 + -0x4a0);
  uVar18 = (ulonglong)DAT_182670890;
  uVar30 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar37 = (ulonglong)DAT_1826707ec;
  uVar26 = *puVar2 ^ *(ulonglong *)(lVar8 + -0x5c0) ^ uVar30 ^ uVar38 ^ uVar23;
  *puVar1 = uVar26;
  uVar24 = CONCAT44(uVar11,uVar9);
  *(ulonglong *)(lVar8 - (uVar37 ^ 0x6c400814)) = (uVar26 >> 0x20 ^ uVar18) >> 1 ^ uVar29;
  uVar14 = DAT_182670af8;
  uVar18 = *puVar1;
  *(ulonglong *)(lVar8 + -0xce0) =
       CONCAT44(uVar11,DAT_1826707e4) ^ 0x738cf6f57d0e6b8c | uVar24 ^ 0x62ab3b3bf0e9de61;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar8 - (uVar34 ^ 0xfcc947d4)) =
       (uVar30 ^ uVar18) << (((byte)uVar21 ^ 0x73) & 0x3f) ^ uVar26;
  lVar7 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0xfcc947ec)) ^ uVar29 |
       uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x400)) ^ uVar30;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0xba28d7f6)) =
       (*puVar2 ^ uVar23) - (uVar24 ^ 0x100db2c269d81406) ^ uVar35;
  uVar37 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar26 = (*(ulonglong *)(lVar7 - (uVar25 ^ 0x844818a)) ^ uVar35) -
           (uVar30 ^ *(ulonglong *)(lVar7 + -0x660)) ^ uVar37;
  *puVar3 = uVar26;
  uVar11 = DAT_1826707cc;
  uVar9 = DAT_1826707c8;
  uVar18 = (ulonglong)DAT_1826707cc;
  uVar24 = (uVar30 ^ *(ulonglong *)(lVar7 + -0x660)) +
           (CONCAT44(uVar10,uVar12) ^ 0x8c25e5020a98201b) ^ uVar22;
  bVar16 = (byte)DAT_1826707dc;
  *(ulonglong *)(lVar7 + -0x588) = uVar24;
  *(ulonglong *)(lVar7 + -0x420) =
       (CONCAT44(uVar12,uVar11) ^ 0x97c2936cf81e6599) + 0x557638ca1d2d88b5;
  uVar10 = DAT_18267086c;
  uVar27 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar22 = uVar27 ^ uVar29 ^ uVar22 ^ uVar24 ^ *(ulonglong *)(lVar7 + -0x220);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar22;
  uVar14 = DAT_182670884;
  uVar30 = (uVar22 ^ uVar27) >> ((bVar16 ^ 0xbd) & 0x3f);
  *(ulonglong *)(lVar7 + -0x5c0) = uVar30 ^ CONCAT44(uVar10,uVar10);
  lVar8 = DAT_1826707a0;
  local_c8 = (byte)uVar9;
  uVar22 = (*(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707c4 ^ 0xfcc9456c)) ^ uVar27) <<
           ((local_c8 ^ 0xc4) & 0x3f);
  uVar24 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar22 ^ CONCAT44(uVar14,uVar14);
  uVar22 = uVar22 | uVar30;
  *puVar1 = uVar22 ^ uVar24;
  uVar27 = CONCAT44(DAT_182670870,DAT_182670870);
  uVar30 = (ulonglong)DAT_1826707b8;
  *puVar4 = (*(ulonglong *)(lVar8 - (uVar18 ^ 0x44854a21)) ^ uVar29) - uVar22 ^ uVar27;
  lVar7 = DAT_1826707a0;
  uVar18 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       uVar18 ^ uVar37 ^ uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar26;
  uVar10 = DAT_18267090c;
  *(uint *)(lVar7 + -0x7e4) = *(uint *)(lVar7 + -0x42c) >> ((byte)*(uint *)(lVar7 + -0x42c) & 0x1f);
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar7 - (uVar30 ^ 0x44854ef1)) =
       (uVar18 ^ *(ulonglong *)(lVar7 + -0x400)) >> (((byte)DAT_1826707c4 ^ 0xf1) & 0x3f) ^ uVar26;
  bVar16 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar7 + -0xd88) = (uVar24 ^ *puVar1) + 0x51ba91b09327294d;
  uVar22 = (uVar18 ^ *(ulonglong *)(lVar7 + -0x400)) << ((bVar16 ^ 0x18) & 0x3f);
  uVar18 = (ulonglong)DAT_1826707c0;
  uVar30 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar7 + -0x660) = uVar22 ^ CONCAT44(DAT_182670964,DAT_182670964);
  uVar10 = DAT_182670960;
  uVar11 = DAT_1826707e0;
  uVar22 = *(ulonglong *)(lVar7 - (uVar18 ^ 0x719ada11)) ^ uVar26 | uVar22;
  *(ulonglong *)(lVar7 + -0x588) = uVar22 ^ uVar30;
  uVar21 = uVar11 + uVar9;
  *(uint *)(lVar7 + -0x68c) = (uVar9 ^ 0xa902d4b6) << ((byte)*(undefined4 *)(lVar7 + -0xa34) & 0x1f)
  ;
  uVar12 = DAT_1826707f8;
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar29 = (ulonglong)DAT_1826707f8;
  uVar18 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  DAT_1826707c4 = uVar21;
  *(ulonglong *)(lVar7 + -0x6b8) = (uVar37 ^ *puVar3) - uVar22 ^ uVar34;
  puVar32 = (ulonglong *)(lVar7 - ((ulonglong)uVar21 ^ 0xb08b423e));
  *puVar32 = *(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xfffb7fc7)) ^
             *(ulonglong *)(lVar7 - ((ulonglong)uVar21 ^ 0xb08b4276)) ^ uVar18 ^ uVar30 ^ uVar27;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0xb08b4b1e)) =
       (CONCAT44(uVar21,uVar21) ^ 0x974352ab954a4eb8) + (CONCAT44(uVar9,uVar9) ^ 0x7e385532874e3eaa)
  ;
  lVar7 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670854,DAT_182670854);
  puVar20 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0xb08b45de));
  *puVar20 = ((ulonglong)(uVar12 >> 0x17) | uVar29 << 9) ^
             *(ulonglong *)(DAT_1826707a0 + -0x5c0) >> 0x17 ^ uVar26;
  *(ulonglong *)(lVar7 + -0x4c8) = *(ulonglong *)(lVar7 + -0x420) | 0xd6c15d7714538aa1;
  uVar10 = DAT_182670818;
  lVar8 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar11 ^ 0xfffb7e3f)) ^ uVar18) <<
       (((byte)uVar11 ^ 0xd6) & 0x3f) ^ uVar22;
  uVar18 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar8 + -0x400) =
       (*(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0xfffb7677)) ^ uVar22 | uVar26 ^ *puVar20) ^
       uVar18;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar21 ^ 0xb08b410e)) =
       CONCAT44(uVar9,uVar21) ^ 0xfe5bbed79f34fc35 | 0xbe5ab6839f347435;
  uVar22 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar8 + -0x660) =
       (uVar27 ^ *puVar4) - (uVar18 ^ *(ulonglong *)(lVar8 + -0x400)) ^ uVar22;
  *puVar3 = CONCAT44(uVar11,uVar11) ^ 0x42ce6c869c5bebe6 |
            CONCAT44(uVar11,uVar9) ^ 0x9e8764a9376e7b0e;
  uVar10 = DAT_182670900;
  uVar26 = *(ulonglong *)(lVar8 - ((ulonglong)uVar21 ^ 0xb08b4be6)) ^ uVar34 ^ uVar24 ^
           *(ulonglong *)(lVar8 + -0x6b8);
  *(ulonglong *)(lVar8 + -0x588) = uVar26 ^ uVar23;
  lVar7 = DAT_1826707a0;
  uVar18 = uVar26 >> ((local_c8 ^ 0xd7) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar18 ^ CONCAT44(uVar10,uVar10);
  lVar8 = DAT_1826707a0;
  uVar26 = uVar26 << ((local_c8 ^ 0xe7) & 0x3f);
  *(ulonglong *)(lVar7 + -0x420) = uVar26 ^ CONCAT44(DAT_182670858,DAT_182670858);
  uVar10 = DAT_182670830;
  *(undefined1 *)(lVar7 + -0x6c9) = **(undefined1 **)(lVar7 + -0xae8);
  uVar14 = DAT_182670958;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar21 ^ 0xb08b4336)) = (uVar18 | uVar26) ^ uVar27;
  uVar10 = DAT_182670a34;
  *puVar32 = (uVar34 ^ *(ulonglong *)(lVar8 + -0x6b8)) - (uVar27 ^ *(ulonglong *)(lVar8 + -0x4c8)) ^
             CONCAT44(uVar14,uVar14);
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar26 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar18 = uVar24 ^ uVar27 ^ uVar22 ^ *(ulonglong *)(lVar8 + -0x4c8) ^
           *(ulonglong *)(lVar8 + -0x660);
  *(ulonglong *)(lVar8 + -0x220) = uVar18;
  uVar27 = (uVar18 ^ uVar24) >> ((local_c8 ^ 0xcb) & 0x3f);
  *(ulonglong *)(lVar8 + -0xd88) = uVar27 ^ uVar26;
  *puVar2 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar11 ^ 0xfffb79df)) ^ uVar24) -
            (CONCAT44(uVar9,uVar11) ^ 0x24e53d24dfc7f4fa);
  uVar18 = (uVar24 ^ uVar18) << (((byte)uVar11 ^ 0xf3) & 0x3f);
  *puVar4 = uVar18 ^ CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *puVar3 = uVar18 << ((local_c8 ^ 0xeb) & 0x3f);
  *puVar1 = (uVar27 | uVar18) ^ CONCAT44(DAT_182670a10,DAT_182670a10);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar6 ^ uVar19) * 4) = uVar5 ^ uVar28;
  return;
}



############ FUN_ 180d21df0 size=5118 ############

void FUN_180d21df0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  byte bVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_108;
  byte local_100;
  byte local_f8;
  byte local_e8;
  byte local_d8;
  byte local_c0;
  byte local_a8;
  byte local_a0;
  
  uVar12 = DAT_1826707f0;
  uVar10 = DAT_1826707dc;
  uVar6 = DAT_1826707c8;
  uVar7 = DAT_1826707b4;
  uVar5 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707c8;
  DAT_1826707d0 = DAT_1826707d8 ^ DAT_1826707bc;
  uVar32 = (ulonglong)DAT_1826707f0;
  DAT_1826707c4 = DAT_1826707e8 ^ DAT_1826707f4;
  uVar26 = (DAT_1826707c8 << 0x10 | DAT_1826707c8 & 0xff00) << 8 | DAT_1826707c8 >> 8 & 0xff00 |
           DAT_1826707c8 >> 0x18;
  uVar17 = DAT_1826707dc & 3;
  if (uVar17 < 2) {
    uVar2 = DAT_1826707ec;
    if (uVar17 == 0) {
      uVar2 = DAT_1826707dc;
    }
    uVar43 = (ulonglong)uVar2;
  }
  else {
    uVar43 = (ulonglong)DAT_1826707e4;
    if (uVar17 < 3) {
      uVar43 = (ulonglong)DAT_1826707f0;
    }
  }
  uVar40 = (ulonglong)DAT_1826707b4;
  DAT_1826707d4 = (uint)uVar43;
  uVar33 = DAT_1826707b4 ^ DAT_1826707a8;
  uVar17 = *(uint *)(&DAT_18260f758 + DAT_182670c3c);
  uVar18 = *(uint *)(&DAT_18260f760 + DAT_182670c3c) ^ DAT_1826707a8;
  uVar29 = CONCAT44(DAT_182670868,DAT_182670868) ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0);
  uVar31 = uVar29 >> (((byte)DAT_1826707b8 ^ 0xc4) & 0x3f);
  uVar23 = CONCAT44(DAT_1826707e4,uVar33);
  uVar38 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar29 = uVar29 << 0x20;
  DAT_1826707b0 = uVar33;
  DAT_1826707c0 = uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar29 ^ CONCAT44(DAT_18267098c,DAT_18267098c);
  puVar1 = (ulonglong *)(lVar3 + -0x400);
  *(ulonglong *)(lVar3 + -0x660) = uVar31 ^ uVar38;
  uVar15 = DAT_182670b0c;
  uVar13 = DAT_1826708b0;
  uVar2 = DAT_182670804;
  uVar41 = (ulonglong)DAT_182670804;
  *puVar1 = uVar23 ^ CONCAT44(uVar10,uVar12) ^ 0x28bbb0dcf8833651;
  uVar14 = DAT_1826709e8;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar23 = (uVar29 | uVar31) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar23;
  uVar29 = CONCAT44(uVar2,uVar2);
  uVar42 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar3 + -0xce0)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0xcecf5a03)) ^ uVar37) ^ uVar42;
  uVar26 = DAT_1826707e8;
  uVar27 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x87d743a8)) =
       uVar27 ^ uVar29 ^ uVar37 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x588);
  uVar13 = DAT_18267087c;
  uVar11 = DAT_1826707ec;
  uVar23 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0x6f0) =
       CONCAT44(DAT_1826707ec,uVar6) ^ 0x2135acfb22609160 |
       CONCAT44(uVar26,DAT_1826707f4) ^ 0x64a155590a0ba451;
  uVar6 = DAT_1826707ac;
  uVar37 = CONCAT44(uVar13,uVar13);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x220);
  uVar34 = (ulonglong)DAT_1826707ac;
  uVar30 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar24 = DAT_1826707cc * DAT_1826707ac;
  puVar21 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0x44854a21));
  uVar31 = (*puVar20 >> 0x20 ^ uVar41) >> 0x1a;
  *puVar1 = uVar31 ^ uVar37;
  lVar3 = DAT_1826707a0;
  uVar41 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  DAT_1826707e0 = uVar24;
  *(ulonglong *)(DAT_1826707a0 + -0x660) = (*puVar21 ^ uVar29) << 6 ^ uVar30;
  uVar13 = DAT_182670a44;
  uVar29 = (ulonglong)uVar24;
  uVar31 = *(ulonglong *)(lVar3 - (uVar29 ^ 0xdbbec997)) ^ uVar30 | uVar31;
  *(ulonglong *)(lVar3 + -0xd88) = uVar31 ^ uVar41;
  uVar9 = DAT_1826707d0;
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xce0) = (uVar27 ^ *(ulonglong *)(lVar3 + -0x588)) - uVar31 ^ uVar28;
  uVar2 = DAT_1826707c4;
  uVar31 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar43 | (ulonglong)uVar6 << 0x20) ^ 0xf1ef79bf6f36cdb6 | 0xe1ee71a96d368c34;
  uVar13 = DAT_1826708b8;
  uVar43 = CONCAT44(DAT_182670950,DAT_182670950);
  *(ulonglong *)(lVar3 + -0x6f0) =
       CONCAT44(DAT_182670960,DAT_182670960) ^ uVar42 ^ *(ulonglong *)(lVar3 + -0xc18) ^
       *(ulonglong *)(lVar3 + -0x7d8) ^ uVar43;
  uVar39 = CONCAT44(uVar13,uVar13);
  local_d8 = (byte)uVar7;
  local_108 = (byte)uVar33;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xa97ef4c4)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d8 ^ 0xcecf5a4b)) ^ uVar43) >>
       ((local_d8 ^ 0x52) & 0x3f) ^ uVar39;
  uVar43 = (*(ulonglong *)(lVar3 + -0x6f0) ^ uVar43) << ((local_108 ^ 0xd4) & 0x3f);
  *puVar1 = uVar43 ^ CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar13 = DAT_182670974;
  uVar14 = DAT_1826708a0;
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar43 = *puVar20 ^ uVar39 | uVar43;
  *(ulonglong *)(lVar3 + -0x660) = uVar43 ^ uVar35;
  uVar26 = DAT_1826707bc;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x588) = (uVar42 ^ *(ulonglong *)(lVar3 + -0xc18)) - uVar43 ^ uVar27;
  uVar7 = DAT_1826707b8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0xa97ef05c)) =
       CONCAT44(uVar26,DAT_1826707b8) ^ 0x2840d83ea04c30 | 0x39d7be26c00f13cd;
  uVar8 = DAT_1826709f8;
  uVar43 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar42 = (ulonglong)DAT_1826709f8;
  bVar16 = (byte)DAT_1826707c0;
  uVar35 = *(ulonglong *)(lVar3 + -0x660) ^ uVar43 ^ uVar35 ^ uVar28 ^
           *(ulonglong *)(lVar4 + -0xce0);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar35;
  *(int *)(lVar4 + -0xc34) = *(int *)(lVar4 - (uVar36 ^ 0xbb5cc82a)) << ((bVar16 ^ 0xaf) & 0x1f);
  local_e8 = (byte)uVar6;
  uVar36 = (uVar35 ^ uVar43) >> ((local_e8 ^ 0xd9) & 0x3f);
  *(ulonglong *)(lVar4 + -0x6f0) = uVar36 ^ CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *puVar20 = (uVar35 ^ uVar43) << 0x12 ^ CONCAT44(uVar8,uVar8);
  lVar3 = DAT_1826707a0;
  local_c0 = (byte)uVar11;
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xbceb697f)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0xdbbecdd7)) ^ CONCAT44(uVar8,uVar8) | uVar36) ^
       uVar30;
  uVar15 = DAT_1826708fc;
  *(ulonglong *)(lVar3 + -0xc18) = ((ulonglong)(uVar8 >> 0x13) | uVar42 << 0xd) ^ *puVar20 >> 0x13;
  uVar13 = DAT_182670854;
  uVar35 = CONCAT44(uVar15,uVar15);
  puVar25 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826707dc ^ 0x255dd94f));
  *puVar25 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xa755dd04)) ^ uVar28) - (*puVar1 ^ uVar30)
             ^ uVar35;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar28 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar41 = *(ulonglong *)(lVar3 + -0xd88) ^ *(ulonglong *)(lVar3 + -0x588) ^ uVar36 ^ uVar27 ^
           uVar41;
  *(ulonglong *)(lVar3 + -0x7d8) = uVar41;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c8 ^ 0xbb5cc93e)) =
       (uVar41 ^ uVar36) >> ((local_c0 ^ 0xf3) & 0x3f) ^ uVar28;
  uVar7 = DAT_1826707e4;
  uVar8 = DAT_1826707cc;
  uVar6 = DAT_1826707c0;
  uVar32 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *puVar20 = (*(ulonglong *)(lVar3 + -0x7d8) ^ uVar36) << (((byte)DAT_1826707bc ^ 0x93) & 0x3f) ^
             uVar32;
  lVar4 = DAT_1826707a0;
  uVar43 = CONCAT44(DAT_1826707f4,uVar5);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xcecf50a3)) =
       CONCAT44(uVar9,uVar7) ^ 0x98107a74ea4f8ba6 | uVar43 ^ 0xdb90d8f61ca0722e;
  uVar32 = *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0xf2d8260e)) ^ uVar28 | *puVar20 ^ uVar32;
  uVar36 = uVar32 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xce0) = uVar36;
  uVar13 = DAT_182670a4c;
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 + -0x4f8);
  uVar7 = DAT_1826707b4;
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xd88) = (*(ulonglong *)(lVar4 + -0x588) ^ uVar27) - uVar32 ^ uVar41;
  *(uint *)(lVar4 + -0xb54) = (uVar7 ^ 0x7f9ff4e) + (DAT_1826707c8 ^ 0x8bab4f19);
  uVar7 = DAT_1826707d4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xcecf5b63)) =
       uVar36 ^ uVar38 ^ *(ulonglong *)(lVar4 + -0x6b8) ^ uVar35 ^ uVar30;
  uVar9 = DAT_1826707d8;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0xc18) =
       (CONCAT44(uVar7,DAT_1826707dc) ^ 0xd207dddc50f5fb8f) -
       (CONCAT44(uVar12,uVar8) ^ 0xecfe09428a0224d);
  uVar13 = DAT_1826709c0;
  local_100 = (byte)uVar24;
  uVar36 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0x7d8)) >> (((byte)uVar9 ^ 0xa2) & 0x3f) ^ uVar36;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar19 = DAT_1826707c0 << 0x10 | DAT_1826707c0 >> 0x10;
  DAT_1826707c8 = uVar19;
  *puVar20 = (uVar38 ^ *(ulonglong *)(lVar4 + -0x7d8)) << ((local_100 ^ 0xd0) & 0x3f) ^ uVar32;
  *(int *)(lVar3 - ((ulonglong)uVar19 ^ 0x5cbbc843)) =
       *(int *)(lVar3 - ((ulonglong)uVar6 ^ 0xcecf5f23)) * 0x9b5c1fc;
  uVar28 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xcecf5933)) =
       (*(ulonglong *)(lVar3 + -0x6f0) ^ uVar36 | *puVar20 ^ uVar32) ^ uVar28;
  puVar21 = (ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0x5cbbc877));
  uVar32 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0x5cbbc2d7)) =
       (*puVar21 ^ uVar35) - (CONCAT44(uVar6,uVar19) ^ 0x9022b5578cd8f42b) ^ uVar32;
  uVar13 = DAT_18267088c;
  uVar42 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar3 + -0x7d8) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0xc18)) - (uVar28 ^ *(ulonglong *)(lVar3 + -0x588)) ^
       uVar42;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x83ae5107)) =
       (uVar28 ^ *(ulonglong *)(lVar3 + -0x588)) - (CONCAT44(uVar33,uVar2) ^ 0xc96c19d81889ab46) ^
       uVar27;
  local_a0 = (byte)uVar14;
  uVar32 = *(ulonglong *)(lVar3 + -0xd88);
  uVar36 = (ulonglong)DAT_1826707e4;
  *puVar20 = (uVar30 ^ *(ulonglong *)(lVar3 + -0xce0)) >>
             ((*(byte *)(lVar3 + -0x660) ^ local_a0) & 0x3f);
  uVar13 = DAT_182670808;
  uVar35 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar30 = uVar32 ^ *puVar1 ^ uVar35 ^ uVar41 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar30;
  uVar7 = DAT_1826707ec;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0x87d74730)) ^ uVar35) >>
           (((byte)DAT_1826707d8 ^ 0x9a) & 0x3f);
  bVar16 = (byte)DAT_1826707f0;
  uVar32 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar30 = (uVar35 ^ uVar30) << 0x1f;
  *(ulonglong *)(lVar3 + -0xc18) = uVar28 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x588) = uVar30 ^ uVar32;
  uVar13 = DAT_1826708e0;
  uVar32 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar3 + -0xc0c) = (uVar7 ^ 0xe33befb9) << ((bVar16 ^ 0x7e) & 0x1f);
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x660) = (uVar30 | uVar28) ^ uVar36;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x11959f7b)) =
       (*(ulonglong *)(lVar3 + -0xd88) ^ uVar41) - (uVar43 ^ 0x63790cea5a6a1b25) ^ uVar37;
  uVar2 = DAT_182670a30;
  uVar6 = DAT_1826709e4;
  uVar30 = (ulonglong)DAT_1826709e4;
  uVar41 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *(uint *)(lVar3 + -0xaf0) =
       (DAT_1826707cc ^ 0xb44f5ef0) - *(int *)(lVar3 - ((ulonglong)uVar19 ^ 0x5cbbcaf3));
  uVar7 = DAT_1826707d0;
  uVar28 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0x8c020a64)) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0xce0)) - (*(ulonglong *)(lVar3 + -0x660) ^ uVar36) ^
       uVar28;
  uVar43 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar32 = (CONCAT44(uVar24,uVar33) ^ 0x9e6350197edcf4b3) +
           (*(ulonglong *)(lVar3 + -0x660) ^ uVar36) ^ uVar43;
  *puVar1 = uVar32;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 + -0x660) ^ uVar36) >> (((byte)uVar7 ^ 0xf) & 0x3f);
  uVar32 = uVar41 ^ uVar32 ^ uVar43 ^ uVar42 ^ *(ulonglong *)(lVar3 + -0x7d8);
  *(ulonglong *)(lVar3 + -0xc18) = uVar32;
  lVar3 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       ((ulonglong)uVar2 << 0x1b | (ulonglong)(uVar2 >> 5)) ^ uVar32 >> 5 ^ uVar37;
  *(longlong *)(lVar3 - (uVar34 ^ 0x83ae5a7f)) = 0x70df458891ff168d << (((byte)uVar9 ^ 0x89) & 0x3f)
  ;
  bVar16 = (byte)DAT_1826707bc;
  uVar32 = *(ulonglong *)(lVar3 - (uVar23 ^ 0xfbfffbe7));
  *(uint *)(lVar3 + -0x598) = DAT_1826707f0 ^ DAT_1826707c0 ^ 0x9272f1be;
  uVar13 = DAT_182670838;
  uVar36 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0xce0) = (uVar32 ^ uVar41) << ((bVar16 ^ 0x9c) & 0x3f) ^ uVar39;
  uVar14 = DAT_182670980;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar32 = *(ulonglong *)(lVar3 - (uVar36 ^ 0x87d74d68)) ^ uVar39 |
           uVar37 ^ *(ulonglong *)(lVar3 + -0x588);
  *(ulonglong *)(lVar3 + -0x660) = uVar32 ^ uVar41;
  uVar13 = DAT_182670948;
  uVar6 = DAT_1826707c4;
  uVar23 = CONCAT44(uVar14,uVar14);
  *puVar21 = (uVar42 ^ *(ulonglong *)(lVar3 + -0x7d8)) - uVar32 ^ uVar23;
  uVar7 = DAT_1826707b4;
  lVar3 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar13,uVar13);
  uVar27 = *puVar20 ^ uVar43 ^ uVar28 ^ uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0);
  *puVar1 = uVar27;
  uVar13 = DAT_182670900;
  lVar4 = DAT_1826707a0;
  *(uint *)(lVar3 + -0x2d4) = (uVar6 ^ 0xdc8c640b) + (uVar7 ^ 0x847a9c60);
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar27 ^ uVar43) >> (((byte)DAT_1826707b8 ^ 0xc1) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar4 + -0xc18) =
       CONCAT44(uVar26,DAT_1826707d0) ^ CONCAT44(uVar26,uVar11) ^ 0x76c3c7137edb7912;
  uVar32 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xa97ef36c)) = (uVar27 ^ uVar43) << 0x1b ^ uVar32;
  uVar43 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar4 + -0xce0) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x588) | *(ulonglong *)(lVar4 + -0xd88) ^ uVar36) ^ uVar43;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xdbbec82f)) =
       CONCAT44(uVar33,DAT_1826707f4) ^ CONCAT44(uVar8,uVar19) ^ 0x5866ffc278d7a210;
  uVar13 = DAT_18267093c;
  uVar29 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (*puVar20 ^ uVar28) - (uVar43 ^ *(ulonglong *)(lVar4 + -0xce0)) ^ uVar29;
  lVar3 = DAT_1826707a0;
  uVar32 = *(ulonglong *)(lVar4 + -0x6b8);
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar36 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0xcecf505b)) ^ uVar32 ^ uVar27
           ^ uVar43 ^ uVar23;
  uVar31 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar36;
  uVar43 = (*(ulonglong *)(lVar3 - (uVar40 ^ 0x8c02045c)) ^ uVar27) >>
           (((byte)DAT_1826707e8 ^ 0x8c) & 0x3f);
  uVar40 = (uVar27 ^ uVar36) << 0x29;
  *puVar1 = uVar43 ^ uVar31;
  uVar13 = DAT_182670828;
  *(ulonglong *)(lVar3 + -0xd88) = uVar40 ^ CONCAT44(DAT_182670adc,DAT_182670adc);
  uVar36 = (ulonglong)DAT_1826707c0;
  uVar40 = uVar40 | uVar43;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar40 ^ uVar27;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  puVar21 = (ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xcecf5a4b));
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = (uVar32 ^ uVar23) - uVar40 ^ uVar31;
  uVar7 = DAT_1826707e4;
  *puVar20 = *puVar21 ^ *(ulonglong *)(lVar3 + -0x660) ^ uVar29 ^ uVar41 ^ uVar37;
  uVar13 = DAT_182670a38;
  uVar32 = *puVar20;
  *(ulonglong *)(lVar3 + -0xce0) =
       (CONCAT44(uVar10,uVar7) ^ 0xc37877f7ab4b06c1) + 0x69bdb97fb2d3a635;
  uVar23 = CONCAT44(uVar13,uVar13);
  local_a8 = (byte)uVar5;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0x87d74d90)) =
       (uVar32 >> 0x20 ^ uVar30) >> 8 ^ uVar23;
  uVar13 = DAT_182670988;
  uVar32 = *(ulonglong *)(lVar3 + -0x6f0);
  uVar43 = (*puVar20 ^ uVar37) << ((local_a8 ^ 0xa2) & 0x3f);
  uVar36 = (ulonglong)DAT_1826707e8;
  uVar40 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *puVar1 = uVar43 ^ uVar40;
  uVar41 = CONCAT44(uVar13,uVar13);
  bVar16 = (byte)DAT_1826707d8;
  uVar43 = *(ulonglong *)(lVar3 - (uVar36 ^ 0x11959f83)) ^ uVar23 | uVar43;
  uVar23 = CONCAT44(uVar5,DAT_1826707d0);
  uVar36 = uVar43 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xd88) = uVar36;
  uVar14 = DAT_18267096c;
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar23 ^ 0x699371637695e398) << ((bVar16 ^ 0x96) & 0x3f);
  uVar13 = DAT_182670874;
  uVar23 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x660) = (uVar29 ^ uVar32) - uVar43 ^ uVar23;
  lVar3 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar33 ^ 0xf2d82c1e)) =
       uVar32 ^ uVar41 ^ uVar31 ^ uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar13 = DAT_18267084c;
  uVar32 = uVar32 ^ *(ulonglong *)(lVar3 + -0xce0);
  uVar43 = CONCAT44(DAT_182670a34,DAT_182670a34);
  local_f8 = (byte)uVar12;
  *puVar20 = uVar32 >> (((byte)DAT_1826707d4 ^ 0xbc) & 0x3f) ^ uVar43;
  uVar14 = DAT_1826708c0;
  uVar36 = CONCAT44(uVar13,uVar13);
  *puVar25 = uVar32 << ((local_f8 ^ 0x73) & 0x3f) ^ uVar36;
  uVar13 = DAT_182670890;
  lVar3 = DAT_1826707a0;
  puVar21 = (ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar32 = *(ulonglong *)(DAT_1826707a0 + -0x660);
  uVar36 = *puVar20 ^ uVar43 | uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar36 ^ CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar15 = DAT_1826709b8;
  bVar16 = (byte)DAT_1826707f4;
  *(ulonglong *)(lVar3 + -0xd88) = (uVar31 ^ *puVar21) - uVar36 ^ CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar32 = uVar32 ^ uVar36 ^ uVar23 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x588);
  *(ulonglong *)(lVar3 + -0xc18) = uVar32;
  bVar22 = (byte)DAT_1826707bc;
  *(ulonglong *)(lVar3 + -0xce0) =
       (uVar32 ^ uVar36) >> ((bVar16 ^ 0x46) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b8 ^ 0xa755d75c)) =
       (uVar36 ^ uVar32) << ((bVar22 ^ 0xa0) & 0x3f) ^ CONCAT44(DAT_182670870,DAT_182670870);
  *puVar20 = CONCAT44(uVar12,uVar12) ^ 0x76aa49cadcedc3b4 | uVar40 ^ *puVar1;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar18 * 4) = uVar17 ^ uVar33;
  return;
}



############ FUN_ 180d35780 size=5461 ############

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

void FUN_180d35780(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  byte bVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong *puVar43;
  byte local_res18;
  byte local_f8;
  
  uVar7 = DAT_18267089c;
  uVar10 = DAT_1826707e0;
  uVar8 = DAT_1826707d4;
  lVar2 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_1826707d4;
  uVar29 = (ulonglong)DAT_1826707e0;
  uVar18 = DAT_1826707d4 & DAT_1826707e0;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670c78);
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670c78) ^ DAT_1826707d4;
  uVar33 = (ulonglong)uVar18;
  uVar20 = CONCAT44(DAT_1826707e0,uVar18);
  uVar30 = CONCAT44(DAT_182670928,DAT_182670928);
  puVar26 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 + -0xba8) + 0x20 + (uVar20 ^ 0x394f640008034000) * 0x60);
  bVar21 = (byte)DAT_1826707d4;
  DAT_1826707b0 = uVar18;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (CONCAT44(DAT_1826708a4,DAT_1826708a4) ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) <<
       ((bVar21 ^ 0xda) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd00) = (ulonglong)puVar26 ^ uVar30;
  uVar9 = DAT_182670b14;
  *(ulonglong *)(lVar2 + -0xc0) =
       *(longlong *)(lVar2 + -0x2d0) + (CONCAT44(uVar10,uVar10) ^ 0x394f6400394f6404) * 8 ^
       CONCAT44(uVar7,uVar7);
  uVar35 = CONCAT44(uVar9,uVar9);
  uVar28 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar2 + -0x630) = *puVar26 ^ uVar28 ^ uVar35;
  *(undefined8 *)(CONCAT44(DAT_182670a40,DAT_182670a40) ^ *(ulonglong *)(lVar2 + -0x428)) =
       0x59e7f972264e8080;
  puVar26 = (ulonglong *)((uVar30 ^ *(ulonglong *)(lVar2 + -0xd00)) + 8);
  uVar23 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar2 + -0x240) = (ulonglong)puVar26 ^ CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar7 = DAT_18267080c;
  uVar11 = DAT_1826707f0;
  uVar27 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x8034bb0)) = *puVar26 ^ uVar23 ^ uVar28;
  uVar6 = DAT_1826707b8;
  uVar34 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0xb50)) =
       CONCAT44(uVar8,uVar18) ^ 0xe7f403561e6785ad;
  uVar7 = DAT_182670878;
  uVar14 = uVar11 - uVar6;
  puVar26 = (ulonglong *)
            ((uVar30 ^ *(ulonglong *)(lVar2 + -0xd00)) +
            (CONCAT44(uVar14,uVar6) ^ 0xce20472c3434c182) * 8);
  DAT_1826707ec = uVar14;
  *(ulonglong *)(lVar2 + -0x3c0) = (ulonglong)puVar26 ^ CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar9 = DAT_182670a20;
  uVar16 = CONCAT44(uVar7,uVar7);
  puVar42 = (ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x2550ef4));
  *puVar42 = *puVar26 ^ uVar16 ^ uVar28;
  *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0x7b8)) =
       CONCAT44(uVar6,uVar14) ^ 0x59da5c16782a5db1;
  uVar7 = DAT_182670a0c;
  uVar17 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  puVar26 = (ulonglong *)((uVar30 ^ *(ulonglong *)(lVar2 + -0xd00)) + 0x18);
  *(ulonglong *)(lVar2 + -0x310) = (ulonglong)puVar26 ^ uVar17;
  lVar2 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) = *puVar26 ^ uVar39 ^ uVar28;
  uVar30 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0xae0) ^ uVar30) =
       CONCAT44(uVar11,uVar14) ^ 0x79d30b2b3f4af01b;
  uVar9 = DAT_182670a1c;
  uVar28 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  uVar24 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x255031c)) ^ uVar23) +
           (CONCAT44(uVar6,uVar11) ^ 0x2fa567bc24b0c04d);
  *(longlong *)(lVar2 + -0x610) = 0x92816e6fa4a8317 << ((byte)uVar11 & 0x3f);
  *(ulonglong *)(lVar2 + -0xa18) = uVar24 ^ uVar28;
  uVar7 = DAT_182670904;
  bVar15 = (byte)uVar6;
  uVar36 = (uVar35 ^ *(ulonglong *)(lVar2 + -0x630)) + (uVar20 ^ 0x836d04117bf86ba2);
  uVar35 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar2 + -0x410) = uVar36 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182670988;
  uVar20 = uVar24 + uVar36 ^ uVar35;
  *(ulonglong *)(lVar2 + -0xd88) = uVar20;
  lVar2 = DAT_1826707a0;
  uVar24 = uVar24 << ((bVar15 ^ 0x8e) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar24 ^ CONCAT44(uVar9,uVar9);
  local_f8 = (byte)uVar14;
  *(ulonglong *)(lVar2 + -0x9e0) = uVar36 >> (((byte)uVar7 ^ (byte)uVar20) & 0x3f);
  uVar7 = DAT_182670938;
  uVar28 = (uVar28 ^ *(ulonglong *)(lVar2 + -0xa18)) >> ((local_f8 ^ 0x1e) & 0x3f);
  *(ulonglong *)(lVar2 + -0xcf8) = uVar28 ^ CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar9 = DAT_182670ae0;
  uVar36 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0xf0) = (uVar28 | uVar24) ^ uVar36;
  uVar7 = DAT_182670a6c;
  uVar4 = DAT_1826707a8;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar25 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar2 + -0xd38) =
       *(ulonglong *)(lVar2 - (uVar22 ^ 0x8c83d00f)) ^ uVar37 ^ uVar36 ^ uVar35 ^ uVar20;
  uVar5 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar31 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0x80343b0)) ^ uVar39) +
           (CONCAT44(uVar8,uVar6) ^ 0xb39c06013d9a5da2);
  uVar20 = (ulonglong)DAT_1826707ac;
  uVar24 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar31 ^ uVar28;
  uVar16 = (uVar16 ^ *puVar42) + (CONCAT44(uVar6,uVar11) ^ 0x6ad9286cd2363248);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar16 ^ uVar24;
  uVar19 = uVar4 - uVar5;
  uVar24 = CONCAT44(DAT_182670818,DAT_182670818);
  DAT_1826707bc = uVar19;
  *(ulonglong *)(lVar3 + -0x660) = uVar16 + uVar31 ^ uVar24;
  lVar2 = DAT_1826707a0;
  uVar40 = (ulonglong)uVar19;
  uVar36 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar39 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x28d46160)) ^ uVar24) +
       (CONCAT44(uVar19,uVar4) ^ 0x3096fa7ce1ff1fb9) ^ uVar36;
  bVar38 = (byte)uVar19;
  *(ulonglong *)(lVar2 + -0x588) = uVar31 << ((bVar38 ^ 0x3d) & 0x3f) ^ uVar39;
  uVar7 = DAT_1826708d4;
  uVar16 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  puVar43 = (ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x28d46f90));
  uVar24 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *puVar43 = (uVar28 ^ *(ulonglong *)(lVar2 + -0x998)) >> (((byte)uVar4 ^ 0x1d) & 0x3f) ^ uVar16;
  uVar16 = (uVar39 ^ *(ulonglong *)(lVar2 + -0x588) | uVar16 ^ *(ulonglong *)(lVar2 + -0x890)) ^
           uVar24;
  *(ulonglong *)(lVar2 + -0x68) = uVar16;
  uVar31 = CONCAT44(uVar7,uVar7);
  puVar42 = (ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe27286ed));
  uVar28 = (ulonglong)DAT_182670a38;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar31 ^ uVar16 ^ uVar24 ^ uVar36 ^ *puVar42;
  *(byte *)(lVar2 - ((ulonglong)uVar5 ^ 0x28d46239)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x418) ^ uVar28) ^ (byte)DAT_182670a40;
  uVar32 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar2 + -0x630) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe272879d)) ^ uVar31) +
       (uVar35 ^ *(ulonglong *)(lVar2 + -0xd88)) ^ uVar32;
  uVar7 = DAT_182670860;
  *(ulonglong *)(lVar2 + -0x610) =
       (CONCAT44(uVar19,uVar5) ^ 0xe30f6672453da243) +
       (CONCAT44(uVar19,uVar19) ^ 0xc88b27c002360c28);
  uVar28 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xb99e213d)) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0xbb0)) << ((bVar15 ^ 0xb4) & 0x3f) ^ uVar28;
  uVar35 = (uVar31 ^ *(ulonglong *)(lVar2 + -0xbb0)) >> (((byte)uVar4 ^ 0x21) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar35 ^ CONCAT44(DAT_182670924,DAT_182670924);
  uVar19 = DAT_18267090c;
  uVar41 = (ulonglong)DAT_18267090c;
  uVar16 = CONCAT44(DAT_182670a94,DAT_182670a94);
  uVar35 = (uVar28 ^ *(ulonglong *)(lVar2 + -0x410) | uVar35) ^ uVar16;
  *(ulonglong *)(lVar2 + -0xa18) = uVar35;
  lVar3 = DAT_1826707a0;
  puVar26 = (ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x28d46bf8));
  uVar28 = CONCAT44(uVar19,uVar19);
  *puVar26 = uVar28 ^ uVar16 ^ uVar32 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x630);
  uVar16 = *(ulonglong *)(lVar3 + -0xac0);
  *(ulonglong *)(lVar2 + -0x9c8) = CONCAT44(uVar10,uVar5) ^ 0xfbbdfbffd7daafb9 | 0xf2a8ab8794120fb9;
  uVar31 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar16 = (uVar36 ^ uVar16) + (uVar37 ^ *(ulonglong *)(lVar3 + -0xd38));
  *(ulonglong *)(lVar3 + -0xf0) = uVar16 ^ uVar31;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0x2550b1c)) =
       CONCAT44(uVar14,uVar10) ^ 0xa8dc55c8c600acc9 | uVar16;
  uVar24 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar3 + -0x658) = (uVar37 ^ *(ulonglong *)(lVar3 + -0xd38)) << 0x39 ^ uVar24;
  lVar2 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  local_res18 = (byte)uVar18;
  *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x394f62b8)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xe2728115)) ^ uVar37) >>
       ((local_res18 ^ 7) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x660) = (CONCAT44(uVar14,uVar14) ^ 0xfffffff6a46f2af1) << 0x1b;
  uVar16 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar2 + -0x998) =
       (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar35 | uVar24 ^ *(ulonglong *)(lVar2 + -0x658)) ^ uVar16;
  uVar16 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x8c83d967)) ^ uVar30 ^ uVar16 ^ uVar31 ^
           *(ulonglong *)(lVar2 + -0xf0);
  uVar35 = CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar2 + -0x588) = uVar16;
  *puVar43 = (uVar32 ^ *(ulonglong *)(lVar2 + -0x630)) + (uVar30 ^ uVar16) ^ uVar35;
  *(longlong *)(lVar2 + -0x68) =
       *(longlong *)(lVar2 - (uVar25 ^ 0xe2728a4d)) <<
       ((byte)*(undefined8 *)(lVar2 + -0x9c8) & 0x3f);
  uVar24 = (uVar30 ^ *(ulonglong *)(lVar2 + -0x588)) << ((bVar38 ^ 0x3a) & 0x3f);
  uVar36 = (uVar30 ^ *(ulonglong *)(lVar2 + -0x588)) >> ((bVar21 ^ 0xd6) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd88) = uVar24 ^ CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar30 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar16 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar2 + -0x610) = uVar36 ^ uVar30;
  uVar24 = (uVar24 | uVar36) ^ uVar16;
  uVar37 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar24;
  puVar43 = (ulonglong *)(lVar2 - (uVar40 ^ 0xb99e2dbd));
  uVar32 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar24 ^ uVar37 ^ uVar16 ^ uVar35 ^ *puVar43;
  *(ulonglong *)(lVar2 + -0x410) =
       (uVar28 ^ *puVar26) + (uVar31 ^ *(ulonglong *)(lVar2 + -0xf0)) ^ uVar32;
  uVar7 = DAT_182670adc;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x8c83dc07)) ^ uVar28) << ((bVar21 ^ 0xd7) & 0x3f) ^ uVar17
  ;
  uVar28 = CONCAT44(uVar7,uVar7);
  *puVar42 = ((ulonglong)(uVar19 >> 0x18) | uVar41 << 8) ^ *(ulonglong *)(lVar3 + -0xcf8) >> 0x18 ^
             uVar28;
  uVar16 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar3 + -0x3b0) =
       (*(ulonglong *)(lVar3 + -0xac0) ^ uVar28 | uVar17 ^ *(ulonglong *)(lVar3 + -0xa18)) ^ uVar16;
  uVar28 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar24 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar36 = *(ulonglong *)(lVar3 - (uVar20 ^ 0x28d464b0)) ^ uVar28 ^ uVar16 ^ uVar32 ^
           *(ulonglong *)(lVar3 + -0x410);
  *(ulonglong *)(lVar3 + -0xd38) = uVar36;
  uVar9 = DAT_182670a64;
  uVar27 = (uVar36 ^ uVar28) << ((bVar38 ^ 0x28) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar27 ^ uVar39;
  uVar7 = DAT_1826708e4;
  lVar2 = DAT_1826707a0;
  uVar20 = (*(ulonglong *)(lVar3 + -0xd38) ^ uVar28) >> (((byte)uVar5 ^ 0x3b) & 0x3f);
  uVar39 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x998) = uVar20 ^ uVar39;
  uVar9 = DAT_182670a90;
  uVar16 = *(ulonglong *)(lVar2 + -0x410);
  uVar17 = CONCAT44(uVar7,uVar7);
  uVar20 = (uVar20 | uVar27) ^ uVar17;
  *(ulonglong *)(lVar3 + -0x630) = uVar20;
  uVar35 = (uVar36 ^ uVar28) + (*(ulonglong *)(lVar3 + -0x890) ^ uVar35) ^ uVar24;
  uVar28 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x658) = uVar35;
  uVar7 = DAT_1826709d8;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar20 ^ uVar28 ^ uVar17 ^ uVar24 ^ uVar35;
  uVar17 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x660) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xce204ecc)) ^ uVar37) + (uVar32 ^ uVar16) ^
       uVar17;
  uVar9 = DAT_182670a68;
  uVar20 = (*(ulonglong *)(lVar2 - (uVar34 ^ 0x3434c860)) ^ uVar37) << ((local_f8 ^ 9) & 0x3f);
  *(ulonglong *)(lVar2 + -0x68) = uVar20 ^ uVar39;
  uVar7 = DAT_182670830;
  uVar16 = (uVar37 ^ *(ulonglong *)(lVar2 + -0x9e0)) >> ((bVar21 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar2 + -0x588) = uVar16 ^ CONCAT44(uVar9,uVar9);
  uVar35 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xb99e28a5)) = (uVar20 | uVar16) ^ uVar35;
  uVar16 = CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x8034610)) =
       *(ulonglong *)(lVar2 - (uVar34 ^ 0x3434c7e0)) ^ *(ulonglong *)(lVar2 + -0xd88) ^ uVar16 ^
       uVar35 ^ uVar17;
  lVar2 = DAT_1826707a0;
  uVar20 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar36 = (CONCAT44(uVar6,uVar10) ^ 0xd3c208bdeabfaa78) +
           (uVar16 ^ *(ulonglong *)(DAT_1826707a0 + -0x610));
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar36 ^ uVar20;
  uVar16 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(uVar5,uVar18) ^ 0x8d208fc2732336cd) + (uVar24 ^ *(ulonglong *)(lVar2 + -0x658)) ^
       uVar16;
  *(ulonglong *)(lVar2 + -0xcf8) =
       (*(ulonglong *)(lVar2 + -0x68) ^ uVar39) -
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0xe27281a5)) ^ uVar35);
  uVar9 = DAT_182670954;
  uVar7 = DAT_1826707c4;
  puVar26 = (ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xce204d34));
  *puVar26 = (*(ulonglong *)(lVar2 - (uVar25 ^ 0xe2728cdd)) ^ uVar16) + uVar36 ^ uVar37;
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x3434cb40)) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xbb0)) << (((byte)uVar5 ^ 0x19) & 0x3f) ^ uVar35;
  uVar12 = DAT_182670af4;
  uVar20 = (uVar20 ^ *(ulonglong *)(lVar2 + -0xbb0)) >> ((local_res18 ^ 0x27) & 0x3f);
  *(ulonglong *)(lVar2 + -0x3b0) = uVar20 ^ uVar30;
  uVar9 = DAT_182670aac;
  uVar6 = DAT_1826707f4;
  uVar16 = CONCAT44(uVar12,uVar12);
  *puVar43 = (*(ulonglong *)(lVar2 - (uVar29 ^ 0x394f6ec0)) ^ uVar35 | uVar20) ^ uVar16;
  uVar24 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xd38) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xc17c2490)) ^ *puVar26 ^ uVar24 ^ uVar16 ^ uVar37
  ;
  uVar5 = DAT_1826707b4;
  uVar20 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xc17c26c0)) ^ CONCAT44(uVar4,uVar7) ^ uVar35 ^
       0x9a768baf2dfd934d;
  uVar7 = DAT_182670890;
  uVar4 = DAT_1826707d8;
  uVar35 = CONCAT44(DAT_18267096c,DAT_18267096c);
  uVar25 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar2 + -0x998) =
       (CONCAT44(uVar5,uVar8) ^ 0x1c0e7a2bf4693173) + (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar28) ^
       uVar35;
  uVar16 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xb99e231d)) =
       (CONCAT44(uVar10,uVar11) ^ 0x2fb5d26b3a2550e) + (*(ulonglong *)(lVar2 + -0x660) ^ uVar17) ^
       uVar16;
  *(ulonglong *)(lVar2 + -0x410) = CONCAT44(uVar18,uVar4) ^ 0xc99aff97f0fdffee | 0x4908e714f0fdf78c;
  uVar7 = DAT_18267091c;
  uVar28 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar2 + -0x9e0) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0x79fbdfa8)) ^ uVar35) +
       (*(ulonglong *)(lVar2 + -0x630) ^ uVar16) ^ uVar28;
  uVar27 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0x87137498)) ^ uVar35) <<
       ((bVar15 ^ 0xa1) & 0x3f) ^ uVar27;
  uVar4 = DAT_1826707e4;
  uVar30 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x8c83d6ef)) =
       (*(ulonglong *)(lVar2 + -0x998) ^ uVar35) >> ((local_res18 ^ 0x1f) & 0x3f) ^ uVar23;
  uVar7 = DAT_182670994;
  uVar17 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar16 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xc17c2a10)) ^ uVar23 |
           uVar27 ^ *(ulonglong *)(lVar2 + -0x588)) ^ uVar17;
  *(ulonglong *)(lVar2 + -0x658) = uVar16;
  uVar36 = CONCAT44(uVar7,uVar7);
  uVar20 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar35 = uVar36 ^ uVar16 ^ uVar17 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x9e0);
  *(ulonglong *)(lVar2 + -0x68) = uVar35;
  uVar7 = DAT_18267099c;
  *(ulonglong *)(lVar2 + -0xd88) =
       (*(ulonglong *)(lVar2 + -0xa18) ^ uVar37) + (uVar35 ^ uVar36) ^ uVar20;
  uVar5 = DAT_1826707e8;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar17 = (ulonglong)DAT_1826707e8;
  uVar16 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0xd4b8d3c9)) = (uVar35 ^ uVar36) << 0x2e ^ uVar33;
  uVar7 = DAT_1826708dc;
  lVar2 = DAT_1826707a0;
  uVar16 = (*(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0xff77ffeb)) ^ uVar36) >>
           (((byte)uVar5 ^ 0xef) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar16 ^ CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar35 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x8c83db4f)) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0xcf8) | uVar16) ^ uVar35;
  uVar7 = DAT_1826708ec;
  *(ulonglong *)(lVar2 + -0x3b0) =
       *(ulonglong *)(lVar2 - (uVar34 ^ 0x3434ca30)) ^ *(ulonglong *)(lVar2 + -0xd88) ^ uVar35 ^
       uVar20 ^ uVar39;
  uVar34 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x394f6c90)) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0xd38)) + (uVar28 ^ *(ulonglong *)(lVar2 + -0x9e0)) ^
       uVar34;
  uVar9 = DAT_1826707dc;
  uVar29 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar2 + -0xac0) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0xd38)) << ((local_f8 ^ 0x20) & 0x3f) ^ uVar29;
  uVar12 = DAT_182670850;
  uVar7 = DAT_1826707c8;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (CONCAT44(uVar4,uVar9) ^ 0xce4b4deb4fc4afd4) >> ((bVar15 ^ 0xab) & 0x3f);
  uVar16 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x727d2735)) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0xd38)) >> (((byte)uVar7 ^ 0x53) & 0x3f) ^ uVar16;
  uVar16 = *(ulonglong *)(lVar2 - (uVar25 ^ 0x407c26c0)) ^ uVar29 |
           *(ulonglong *)(lVar2 + -0x9c8) ^ uVar16;
  *(ulonglong *)(lVar2 + -0x660) = uVar16 ^ CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar7 = DAT_182670838;
  uVar29 = uVar16 ^ uVar34 ^ uVar27 ^ *(ulonglong *)(lVar2 + -0x890);
  *(byte *)(lVar2 + -0xb1a) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar30 ^ 0xd4b8db29)) ^ (ulonglong)DAT_182670a38) ^
       (byte)DAT_182670a40;
  *(ulonglong *)(lVar2 + -0x410) = uVar29;
  bVar15 = (byte)DAT_1826707f4;
  *(ulonglong *)(lVar2 + -0x630) =
       (*(ulonglong *)(lVar2 + -0xd88) ^ uVar20) + (uVar29 ^ uVar27) ^ CONCAT44(uVar7,uVar7);
  uVar16 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar18;
  *(ulonglong *)(lVar2 + -0x998) = (uVar27 ^ uVar29) << ((bVar15 ^ 0x3a) & 0x3f) ^ uVar16;
  return;
}



############ FUN_ 180d2d850 size=6084 ############

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

void FUN_180d2d850(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  int iVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  byte bVar48;
  uint uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  uint uVar53;
  ulonglong *puVar54;
  ulonglong *puVar55;
  byte local_140;
  byte local_130;
  byte local_118;
  byte local_f8;
  byte local_f0;
  
  uVar10 = DAT_1826707e4;
  uVar7 = DAT_1826707c4;
  uVar6 = DAT_1826707c0;
  uVar5 = DAT_1826707b4;
  DAT_1826707ec = ~DAT_1826707f0;
  uVar51 = (ulonglong)DAT_1826707b4;
  DAT_1826707e8 = DAT_1826707e4 + DAT_1826707d8;
  uVar49 = DAT_1826707c4 - DAT_1826707b4;
  uVar46 = ~DAT_1826707c8;
  uVar30 = DAT_1826707bc * DAT_1826707c0;
  uVar42 = DAT_182670b08 >> 0x18;
  uVar22 = DAT_182670b0c >> 0x18;
  uVar53 = *(uint *)(&DAT_18260f758 + DAT_182670c60) ^ DAT_1826707e8;
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670c60) ^ DAT_1826707d8;
  uVar16 = DAT_182670b0c & 0xff;
  puVar23 = (ulonglong *)(DAT_1826707a0 + -0x9c8);
  DAT_182670b0c = ((DAT_182670b0c << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar40 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar19 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  puVar17 = (ulonglong *)(DAT_1826707a0 + -0x998);
  uVar24 = (*puVar23 ^ uVar40) << 0x1b;
  DAT_1826707a8 = uVar30;
  DAT_1826707dc = uVar46;
  DAT_1826707e0 = uVar49;
  *puVar17 = uVar24 ^ uVar19;
  uVar16 = DAT_1826707ac;
  uVar45 = (ulonglong)DAT_1826707ac;
  uVar18 = DAT_1826707ac | DAT_1826707b0;
  uVar27 = (ulonglong)uVar18;
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0xac0);
  DAT_1826707cc = uVar18;
  *puVar20 = CONCAT44(DAT_1826707ac,uVar18) ^ 0x9a254048f9de1369;
  lVar3 = DAT_1826707a0;
  DAT_182670824 = ((uVar22 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar21 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar34 = CONCAT44(DAT_182670824,DAT_182670824);
  bVar48 = (byte)DAT_1826707bc;
  uVar24 = (uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0x610) | uVar24) ^ uVar34;
  uVar22 = DAT_1826707b0 ^ 0xa98a3e54;
  *puVar23 = uVar24;
  *(uint *)(lVar3 + -0x2d4) = uVar22 << ((bVar48 ^ 0x26) & 0x1f);
  DAT_182670ab4 = ((uVar42 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  puVar35 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xce9d837));
  uVar37 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *puVar20 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0xf07e505a)) ^
             CONCAT44(DAT_182670930,DAT_182670930)) - (uVar34 ^ *puVar35) ^ uVar37;
  lVar3 = DAT_1826707a0;
  uVar22 = DAT_182670b08 & 0xff;
  uVar42 = DAT_182670b08 << 8;
  DAT_182670b08 = ((uVar42 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar43 = (ulonglong)DAT_182670b08;
  uVar38 = CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar28 = (ulonglong)uVar30;
  uVar31 = CONCAT44(DAT_182670b08,DAT_182670b08);
  uVar24 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar30 ^ 0xfc9f4586)) ^ uVar31 ^ uVar38 ^
           uVar24 ^ uVar34;
  *puVar17 = uVar24;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xa33225bc)) =
       ((ulonglong)((uVar42 & 0xffff | uVar22) >> 7) | uVar43 << 9) ^ uVar24 >> 0x17 ^ uVar31;
  uVar8 = DAT_1826707c8;
  uVar39 = (ulonglong)DAT_1826707c8;
  local_118 = (byte)uVar10;
  puVar1 = (ulonglong *)(lVar3 + -0xc18);
  uVar24 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xbf6f7274)) ^ uVar31) << ((local_118 ^ 0x6b) & 0x3f);
  *puVar1 = uVar24 ^ uVar37;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0x2be71b52)) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x610) | uVar24) ^ uVar34;
  *puVar17 = (uVar38 ^ *(ulonglong *)(lVar3 + -0x558)) - (uVar34 ^ *puVar23) ^ uVar19;
  puVar2 = (ulonglong *)(lVar4 + -0xf0);
  uVar22 = DAT_182670814 & 0xff;
  DAT_182670814 = ((DAT_182670814 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar24 = (ulonglong)DAT_182670814;
  uVar43 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar4 + -0x610) =
       CONCAT44(DAT_182670830,DAT_182670830) ^ uVar43 ^ uVar37 ^ *puVar2 ^ *puVar20;
  *(ulonglong *)(lVar4 + -0x558) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar46 ^ 0xd418eb75)) >> 0x20 ^ uVar24) >> 8 ^ uVar34;
  lVar3 = DAT_1826707a0;
  uVar22 = DAT_182670a28 & 0xff;
  DAT_182670a28 = ((DAT_182670a28 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar36 = CONCAT44(DAT_182670a28,DAT_182670a28);
  puVar54 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f0 ^ 0x41fcac45));
  uVar24 = (ulonglong)DAT_1826707e8;
  *puVar54 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar49 ^ 0x34b24d33)) ^ uVar43) <<
             (((byte)uVar6 ^ 0xe7) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xfc9f46ce)) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x5f07cc5e)) ^ uVar34 | uVar36 ^ *puVar2) ^ uVar43;
  uVar22 = DAT_1826707ec;
  *puVar2 = (uVar43 ^ *(ulonglong *)(lVar3 + -0x610)) - (uVar37 ^ *puVar1);
  uVar9 = DAT_1826707d0;
  uVar42 = DAT_182670af4 & 0xff;
  DAT_182670af4 = ((DAT_182670af4 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar29 = CONCAT44(DAT_182670af4,DAT_182670af4);
  uVar52 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707bc ^ 0x2324a67a)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x6e7fd249)) ^ uVar37) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xbe03555a)) ^ uVar43) ^ uVar29;
  uVar24 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar43 = uVar24 ^ uVar43 ^ uVar19 ^ *(ulonglong *)(lVar3 + -0x610) ^ *puVar17;
  *puVar1 = uVar43;
  uVar13 = DAT_1826707f4;
  uVar22 = DAT_1826707b0;
  uVar38 = (uVar43 ^ uVar24) >> (((byte)uVar46 ^ 0x51) & 0x3f);
  uVar43 = (ulonglong)DAT_1826707f4;
  uVar47 = (ulonglong)DAT_1826707b0;
  *puVar2 = uVar38 ^ uVar37;
  uVar42 = DAT_182670ac8 & 0xff;
  iVar33 = uVar13 + uVar9;
  DAT_182670ac8 = ((DAT_182670ac8 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar25 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  bVar48 = (byte)iVar33;
  uVar24 = (*(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0xb47792fa)) ^ uVar24) <<
           ((bVar48 ^ 0xa4) & 0x3f);
  DAT_1826707d4 = iVar33;
  *puVar20 = uVar24 ^ uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       CONCAT44(uVar9,uVar22) ^ CONCAT44(uVar9,uVar13) ^ 0x85c29760a5f1dccb;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xd5acadde)) = (uVar24 | uVar38) ^ uVar19;
  uVar42 = DAT_1826709b4 & 0xff;
  DAT_1826709b4 = ((DAT_1826709b4 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar44 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xb47798f2)) =
       (uVar19 ^ *puVar17) - (*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xbb696674)) ^ uVar19) ^
       uVar44;
  *puVar20 = (uVar19 ^ *puVar17) - (CONCAT44(uVar5,DAT_1826707d8) ^ 0x7e91f93b569c24eb);
  uVar42 = DAT_1826708f0 & 0xff;
  DAT_1826708f0 = ((DAT_1826708f0 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar38 = (ulonglong)DAT_1826708f0;
  uVar41 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *puVar2 = uVar29 ^ uVar34 ^ *puVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar41;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x2be71b02)) =
       CONCAT44(uVar18,uVar7) ^ 0x5c4dd5f2893ff0a8 | CONCAT44(iVar33,uVar18) ^ 0xd25b770abd3e44c1;
  uVar24 = *(ulonglong *)(lVar3 + -0x558);
  uVar39 = (*puVar2 >> 0x20 ^ uVar38) >> 0x19;
  *puVar20 = uVar39 ^ uVar31;
  uVar42 = DAT_182670880 & 0xff;
  DAT_182670880 = ((DAT_182670880 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar38 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ec ^ 0xbe0353ba)) ^ uVar41) << 7;
  *puVar23 = uVar38 ^ CONCAT44(DAT_182670880,DAT_182670880);
  uVar39 = uVar39 | uVar38;
  *puVar2 = uVar39 ^ uVar31;
  uVar32 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *puVar17 = (uVar29 ^ uVar24) - uVar39 ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xbf6f712c)) =
       *(ulonglong *)(lVar3 - (uVar45 ^ 0x9c063b78)) ^ uVar31 ^ uVar40 ^
       *(ulonglong *)(lVar3 + -0x610) ^ uVar44;
  uVar11 = DAT_1826707e8;
  uVar24 = CONCAT44(DAT_182670854,DAT_182670854);
  *puVar23 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e8 ^ 0x5f07c3c6)) ^ uVar40) >>
             (((byte)uVar49 ^ 0x2d) & 0x3f) ^ uVar24;
  puVar26 = (ulonglong *)(lVar3 - ((ulonglong)uVar49 ^ 0x34b24e7b));
  uVar38 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  uVar49 = DAT_182670874 & 0xff;
  *puVar26 = (uVar40 ^ *puVar20) << (((byte)uVar22 ^ 0x5e) & 0x3f) ^ uVar38;
  uVar42 = DAT_1826707bc;
  lVar4 = DAT_1826707a0;
  DAT_182670874 = ((DAT_182670874 << 8 | uVar49) << 8 | uVar49) << 8 | uVar49;
  puVar50 = (ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0xf07e558a));
  uVar29 = CONCAT44(DAT_182670874,DAT_182670874);
  *puVar54 = (*(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar38 | *puVar50 ^ uVar24) ^ uVar29;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar46 ^ 0xd418e7a5)) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar44) - (CONCAT44(uVar16,uVar42) ^ 0xba7da87442d03528) ^
       uVar41;
  uVar49 = DAT_1826707d8;
  uVar39 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar24 = *puVar20;
  *puVar23 = (uVar41 ^ *puVar20) - (*puVar2 ^ uVar29) ^ uVar39;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xbf6f7eb4)) = (uVar41 ^ uVar24) << 0x3f;
  uVar31 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - (uVar43 ^ 0xb4779e12)) ^ uVar29) -
       (CONCAT44(DAT_1826707f0,uVar6) ^ 0x8ad14291c10218c4) ^ uVar31;
  *(uint *)(lVar4 - (uVar52 ^ 0xd5acadf2)) = (uVar22 ^ 0xb69442b7) - (uVar9 ^ 0xa0dabc8e);
  *(ulonglong *)(lVar4 + -0x558) = uVar19 ^ *puVar1 ^ uVar31 ^ uVar32 ^ *puVar17;
  uVar19 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *puVar20 = (*(ulonglong *)(lVar4 - (uVar51 ^ 0x6e7fd111)) ^ uVar32) -
             (*(ulonglong *)(lVar4 - ((ulonglong)uVar49 ^ 0x6e89650c)) ^ uVar39);
  lVar3 = DAT_1826707a0;
  local_130 = (byte)uVar7;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xbf6f7b1c)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar31) >> ((local_130 ^ 0xbc) & 0x3f) ^ uVar19;
  uVar14 = DAT_182670a58;
  uVar49 = DAT_1826707e8;
  uVar24 = (*(ulonglong *)(lVar3 - (uVar45 ^ 0x9c063ed0)) ^ uVar31) <<
           (((byte)uVar18 ^ 0xdc) & 0x3f);
  *puVar1 = uVar24 ^ CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar12 = DAT_1826707ec;
  uVar29 = CONCAT44(uVar14,uVar14);
  *puVar20 = (*puVar2 ^ uVar19 | uVar24) ^ uVar29;
  uVar14 = DAT_1826708c4;
  uVar24 = *puVar17;
  *(ulonglong *)(lVar3 + -0x558) =
       (CONCAT44(uVar42,uVar12) ^ 0x2f54bdc1f2ea7298) << (((byte)uVar49 ^ 0x2c) & 0x3f);
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xfc9f402e)) =
       (uVar32 ^ uVar24) - (CONCAT44(uVar42,uVar10) ^ 0xb6d0725106f17809) ^ uVar27;
  puVar55 = (ulonglong *)(lVar3 - (uVar43 ^ 0xb4779422));
  *puVar1 = (*puVar2 ^ uVar27) - (*puVar55 ^ uVar29) ^ uVar27;
  uVar14 = DAT_182670858;
  uVar19 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar24 = (CONCAT44(uVar9,uVar6) ^ 0x38dd2737d5502ee2) + (uVar29 ^ *puVar20) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x558) = uVar24;
  uVar43 = CONCAT44(uVar14,uVar14);
  uVar42 = DAT_182670a38 & 0xff;
  uVar24 = *puVar23 ^ uVar43 ^ uVar24 ^ uVar19 ^ uVar39;
  *puVar17 = uVar24;
  DAT_182670a38 = ((DAT_182670a38 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar29 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar3 - (uVar47 ^ 0xbb696a9c)) =
       (uVar24 ^ uVar43) >> (((byte)DAT_1826707bc ^ 2) & 0x3f) ^ uVar29;
  uVar42 = DAT_1826709dc & 0xff;
  DAT_1826709dc = ((DAT_1826709dc << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar19 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar24 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xfc9f4a1e)) =
       (uVar43 ^ *puVar17) << (((byte)uVar18 ^ 0xcc) & 0x3f) ^ uVar19;
  uVar43 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x41fca9ed)) = (uVar29 ^ *puVar2 | uVar19 ^ *puVar20) ^ uVar43;
  uVar42 = DAT_182670a88 & 0xff;
  DAT_182670a88 = ((DAT_182670a88 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar32 = CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar19 = (*puVar23 ^ uVar39) - (uVar43 ^ *puVar26) ^ uVar32;
  *puVar17 = uVar19;
  uVar42 = DAT_182670a68 & 0xff;
  uVar31 = uVar36 ^ *puVar1 ^ *(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar27 ^ uVar31;
  *puVar2 = uVar31;
  DAT_182670a68 = ((DAT_182670a68 << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  local_f8 = (byte)uVar16;
  uVar24 = CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar28 = (uVar36 ^ uVar31) >> ((local_f8 ^ 0xa8) & 0x3f);
  *puVar23 = (uVar36 ^ uVar31) << 0x20 ^ uVar25;
  uVar14 = DAT_182670a8c;
  *puVar20 = uVar28 ^ uVar24;
  lVar3 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar24 = *puVar1;
  uVar28 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f0 ^ 0x41fca57d)) ^ uVar25 | uVar28
  ;
  uVar29 = uVar28 ^ uVar39;
  uVar25 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar29;
  *puVar2 = (uVar24 ^ uVar27) - uVar28 ^ uVar25;
  uVar16 = DAT_182670a9c;
  uVar42 = DAT_182670a9c & 0xff;
  DAT_182670a9c = ((DAT_182670a9c << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar28 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar19 = uVar29 ^ uVar28 ^ uVar39 ^ uVar32 ^ uVar19;
  *puVar20 = uVar19;
  *puVar23 = (uVar19 ^ uVar28) >> ((bVar48 ^ 0x92) & 0x3f) ^ uVar32;
  uVar14 = DAT_18267083c;
  *puVar1 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar46 ^ 0xd418e4ad)) ^ uVar32) + 0xb7ac06cb5e6f64f2
  ;
  local_140 = (byte)uVar30;
  uVar24 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar47 ^ 0xbb696c7c)) =
       (uVar28 ^ uVar19) << ((local_140 ^ 0xd8) & 0x3f) ^ uVar24;
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar28 = *(ulonglong *)(lVar3 + -0x610) ^ uVar24 | *puVar50 ^ uVar32;
  uVar24 = *puVar17;
  *puVar1 = uVar28 ^ uVar29;
  uVar24 = (uVar32 ^ uVar24) << (((byte)uVar16 ^ *(byte *)puVar20) & 0x3f);
  *puVar23 = uVar24;
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - (uVar47 ^ 0xbb6963f4)) ^ uVar32) - uVar28 ^ uVar38;
  uVar28 = CONCAT44(iVar33,DAT_1826707ec);
  *puVar20 = (CONCAT44(uVar5,uVar46) ^ 0xa80187d54cf5a5bc) - uVar24;
  uVar16 = DAT_1826707bc;
  uVar42 = DAT_182670adc & 0xff;
  DAT_182670adc = ((DAT_182670adc << 8 | uVar42) << 8 | uVar42) << 8 | uVar42;
  uVar24 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *puVar17 = *(ulonglong *)(lVar4 - (uVar51 ^ 0x6e7fd879)) ^ *(ulonglong *)(lVar4 + -0x558) ^ uVar24
             ^ uVar25 ^ uVar43;
  local_f0 = (byte)uVar9;
  *puVar23 = (uVar28 ^ 0x2266e6756248c827) << (((byte)uVar16 ^ 0x18) & 0x3f);
  *puVar55 = (uVar24 ^ *puVar17) >> ((local_f0 ^ 0xd0) & 0x3f) ^ uVar21;
  uVar16 = DAT_1826709f8 & 0xff;
  DAT_1826709f8 = ((DAT_1826709f8 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  *puVar35 = ((uVar24 ^ *puVar17) << ((bVar48 ^ 0x82) & 0x3f) | uVar21 ^ *puVar20) ^ uVar32;
  uVar24 = *puVar2;
  *puVar17 = 0x6cab7735a165d29b;
  uVar14 = DAT_1826709ec;
  uVar16 = DAT_182670954 & 0xff;
  DAT_182670954 = ((DAT_182670954 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar39 = CONCAT44(DAT_182670954,DAT_182670954);
  *puVar20 = (uVar25 ^ uVar24) - (*puVar23 ^ uVar32) ^ uVar39;
  uVar19 = uVar34 ^ *puVar23 ^ *(ulonglong *)(lVar4 + -0x610) ^ uVar32 ^ uVar38;
  *(ulonglong *)(lVar4 + -0x558) = uVar19;
  uVar21 = CONCAT44(uVar14,uVar14);
  *puVar2 = (uVar34 ^ uVar19) >> ((local_140 ^ 0xf0) & 0x3f) ^ uVar21;
  *puVar23 = (CONCAT44(uVar18,uVar5) ^ 0x8c481be0fc87f87f) + 0x127c827fc1374471;
  lVar3 = DAT_1826707a0;
  uVar16 = DAT_182670878 & 0xff;
  DAT_182670878 = ((DAT_182670878 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar24 = CONCAT44(uVar7,DAT_1826707e8);
  uVar28 = CONCAT44(DAT_182670878,DAT_182670878);
  *puVar35 = (uVar34 ^ uVar19) << 0x12 ^ uVar28;
  *puVar26 = *puVar17 - (uVar24 ^ 0xda1abd452e6cbcd);
  uVar16 = DAT_182670a70 & 0xff;
  DAT_182670a70 = ((DAT_182670a70 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar28 = uVar21 ^ *puVar2 | *puVar23 ^ uVar28;
  uVar24 = CONCAT44(uVar22,DAT_1826707d8);
  *(ulonglong *)(lVar3 + -0x558) = uVar28 ^ CONCAT44(DAT_182670a70,DAT_182670a70);
  *puVar17 = uVar24 ^ 0x3cd9610dd1ee467f;
  uVar16 = DAT_18267093c & 0xff;
  DAT_18267093c = ((DAT_18267093c << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar21 = CONCAT44(DAT_18267093c,DAT_18267093c);
  *puVar2 = (*(ulonglong *)(lVar3 + -0x610) ^ uVar38) - uVar28 ^ uVar21;
  uVar28 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar24 = uVar28 ^ *puVar1 ^ uVar39 ^ uVar29 ^ *puVar20;
  *puVar23 = uVar24;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0x41fca52d)) =
       (uVar24 ^ uVar28) >> ((local_f8 ^ 0x84) & 0x3f) ^ uVar34;
  uVar24 = *puVar23;
  *(ulonglong *)(lVar3 + -0x610) =
       CONCAT44(uVar11,uVar13) ^ 0x83fc8faed01efb05 | CONCAT44(uVar11,uVar22) ^ 0x7cc5cca149a4da14;
  uVar14 = DAT_182670acc;
  uVar22 = DAT_182670a50 & 0xff;
  DAT_182670a50 = ((DAT_182670a50 << 8 | uVar22) << 8 | uVar22) << 8 | uVar22;
  uVar28 = (uVar24 ^ uVar28) << (((byte)DAT_1826707ec ^ 0x7e) & 0x3f);
  *puVar1 = uVar28 ^ CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar22 = DAT_182670a94;
  uVar43 = CONCAT44(uVar14,uVar14);
  uVar28 = *(ulonglong *)(lVar3 - (uVar52 ^ 0xd5aca85e)) ^ uVar34 | uVar28;
  uVar24 = (ulonglong)DAT_182670a94;
  uVar19 = uVar28 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x610) = uVar19;
  uVar19 = CONCAT44(uVar22,uVar22) ^ uVar43 ^ uVar21 ^ uVar19 ^ *puVar2;
  *puVar23 = (*(ulonglong *)(lVar3 - (uVar45 ^ 0x9c063148)) ^ uVar39) - uVar28 ^ uVar27;
  uVar16 = DAT_182670a24 & 0xff;
  DAT_182670a24 = ((DAT_182670a24 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar24 = ((ulonglong)(uVar22 >> 0x19) | uVar24 << 7) ^ uVar19 >> 0x19;
  uVar16 = DAT_1826709f0 & 0xff;
  *puVar1 = uVar24 ^ CONCAT44(DAT_182670a24,DAT_182670a24);
  DAT_1826709f0 = ((DAT_1826709f0 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar45 = (CONCAT44(uVar22,uVar22) ^ uVar19) << ((local_140 ^ 0xf9) & 0x3f);
  *puVar20 = uVar45 ^ CONCAT44(DAT_1826709f0,DAT_1826709f0);
  uVar14 = DAT_18267089c;
  *puVar17 = (uVar45 | uVar24) ^ uVar37;
  uVar24 = *puVar54;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar53;
  *puVar1 = uVar28 << 0x12;
  *puVar20 = (uVar21 ^ uVar24) - (CONCAT44(uVar5,uVar8) ^ 0x90dc41573ee87090) ^
             CONCAT44(uVar14,uVar14);
  return;
}



############ FUN_ 180c98440 size=5008 ############

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

void FUN_180c98440(void)

{
  int *piVar1;
  uint uVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  undefined4 uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  uint uVar17;
  uint uVar18;
  ulonglong *puVar19;
  int *piVar20;
  ulonglong uVar21;
  uint uVar22;
  longlong *plVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  byte bVar38;
  longlong lVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_c8;
  byte local_b0;
  byte local_68;
  
  uVar10 = DAT_1826707ec;
  uVar8 = DAT_1826707d0;
  uVar6 = DAT_1826707c8;
  uVar5 = DAT_1826707b8;
  uVar4 = DAT_1826707a8;
  lVar39 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707c8;
  uVar21 = (ulonglong)DAT_1826707d0;
  uVar36 = (ulonglong)DAT_1826707b8;
  uVar34 = DAT_1826707c8 ^ DAT_1826707d0;
  uVar24 = DAT_1826707ec | DAT_1826707b8;
  uVar26 = (DAT_1826707a8 << 0x10 | DAT_1826707a8 & 0xff00) << 8 | DAT_1826707a8 >> 8 & 0xff00 |
           DAT_1826707a8 >> 0x18;
  uVar2 = *(uint *)(&DAT_18260f760 + DAT_182670d90);
  uVar22 = *(uint *)(&DAT_18260f758 + DAT_182670d90) ^ DAT_1826707a8;
  uVar35 = (ulonglong)DAT_1826707ec;
  uVar31 = (ulonglong)DAT_182670858;
  uVar40 = (ulonglong)uVar26;
  DAT_1826707ac = uVar24;
  DAT_1826707bc = uVar34;
  DAT_1826707e4 = uVar26;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0xefbd5f32)) =
       (CONCAT44(DAT_1826707ec,uVar24) ^ 0xb1b893795711280c) - *(longlong *)(DAT_1826707a0 + -0x588)
  ;
  *(ulonglong *)(lVar39 - ((ulonglong)uVar26 ^ 0xbcfc0200)) =
       *(longlong *)(lVar39 - (uVar25 ^ 0xf523ce69)) + (CONCAT44(uVar8,uVar34) ^ 0xb3adff27468e3029)
       ^ uVar31;
  *(ulonglong *)(lVar39 + -0x660) =
       CONCAT44(DAT_182670a48,DAT_182670a48) ^ *(ulonglong *)(lVar39 + -0xce0) | 0xa86dc2144fc43be;
  *(byte *)(*(ulonglong *)(lVar39 + -0x98) ^ uVar31) =
       *(byte *)(lVar39 + -0x9ba) ^ (byte)DAT_1826709c0 ^ (byte)DAT_182670a40;
  uVar14 = DAT_182670a90;
  uVar12 = DAT_182670944;
  uVar31 = CONCAT44(DAT_182670808,DAT_182670808);
  puVar28 = (ulonglong *)(lVar39 - ((ulonglong)uVar26 ^ 0xbcfc09e0));
  *puVar28 = *(longlong *)(lVar39 + -0x2d0) +
             ((CONCAT44(uVar4,uVar10) ^ 0x9802fcbcfbfff7fd) +
             (CONCAT44(uVar6,uVar8) ^ 0xf523cf01b3adff27) * 0xc) * 8 ^ uVar31;
  lVar3 = DAT_1826707a0;
  uVar15 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar31 = *(ulonglong *)(uVar31 ^ *(ulonglong *)(lVar39 + -0xb78)) ^ uVar15;
  bVar37 = (byte)uVar14 ^ (byte)DAT_18267088c;
  *(ulonglong *)(lVar39 + -0x220) = uVar31 ^ CONCAT44(uVar12,uVar12);
  uVar9 = DAT_1826707d4;
  uVar30 = (ulonglong)DAT_1826707d4;
  local_c8 = (byte)uVar24;
  *(ulonglong *)(lVar3 - (uVar40 ^ 0xbcfc0710)) =
       uVar31 >> ((local_c8 ^ 0xff) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  uVar32 = (ulonglong)DAT_182670994;
  *(byte *)(lVar3 - (uVar36 ^ 0xefbd54a0)) = bVar37 ^ *(byte *)(lVar3 + -0x588);
  *(ulonglong *)(lVar3 + -0x6b8) = 0x49a4dc24dc14235 - (CONCAT44(uVar4,uVar8) ^ 0xeb137a4df2a33cb3);
  uVar7 = DAT_1826707cc;
  uVar31 = (ulonglong)DAT_1826707cc;
  uVar27 = uVar9 ^ DAT_1826707cc;
  DAT_1826707c4 = uVar27;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0xc1fc0494)) =
       *(longlong *)(lVar3 + -0x168) + 0x10U ^ uVar32;
  uVar29 = CONCAT44(DAT_182670960,DAT_182670960);
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar27 ^ 0xbac028e3)) ^ uVar32) =
       *(byte *)(DAT_1826707a0 + -0xd2a) ^ (byte)DAT_18267088c ^ (byte)DAT_182670a40;
  lVar39 = DAT_1826707a0;
  puVar19 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0x7b3c2ea7)) + 0x10 +
            (CONCAT44(uVar7,uVar9) ^ 0xc1fc08147b3c2c77) * 0x60);
  uVar32 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(DAT_1826707a0 + -0xc0) = (ulonglong)puVar19 ^ uVar29;
  uVar12 = DAT_18267081c;
  uVar29 = (ulonglong)DAT_182670a00;
  *(ulonglong *)(lVar39 + -0xce0) = *puVar19 ^ uVar32 ^ uVar15;
  lVar39 = DAT_1826707a0;
  bVar38 = (byte)uVar27;
  puVar19 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  *(longlong *)(DAT_1826707a0 + -0x660) = -0x33b7e380c48e74e1 << ((bVar38 ^ 0x46) & 0x3f);
  *(ulonglong *)(lVar39 - (uVar25 ^ 0xf523cd21)) =
       (uVar32 ^ *puVar19) >> (((byte)uVar7 ^ 0x1c) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  bVar37 = (byte)DAT_182670aac;
  bVar33 = (byte)uVar12 ^ (byte)DAT_182670aac ^ *(byte *)(lVar39 + -0x220);
  *(byte *)(lVar39 + -0xfa) = bVar33;
  uVar12 = DAT_182670a08;
  bVar37 = bVar37 ^ (byte)DAT_182670a40;
  pbVar16 = (byte *)(*(longlong *)(lVar39 - ((ulonglong)uVar7 ^ 0xc1fc097c)) + 0x11);
  *(ulonglong *)(lVar39 + -0x9b0) = (ulonglong)pbVar16 ^ uVar29;
  uVar14 = DAT_182670a68;
  *pbVar16 = bVar37 ^ bVar33;
  lVar3 = DAT_1826707a0;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar39 - (uVar35 ^ 0xfbfff52f)) +
            ((CONCAT44(uVar9,uVar27) ^ 0x7b3c2c77bac02461) +
            (CONCAT44(uVar5,uVar26) ^ 0xefbd598abcfc0298) * 0xc) * 8);
  *(ulonglong *)(lVar39 + -0xb78) = (ulonglong)puVar19 ^ CONCAT44(uVar12,uVar12);
  uVar13 = DAT_182670908;
  uVar29 = (ulonglong)DAT_182670908;
  uVar32 = CONCAT44(DAT_182670908,DAT_182670908) ^ *puVar19 ^ uVar15;
  uVar18 = DAT_182670908 >> 0x10;
  *(ulonglong *)(lVar3 + -0x588) = uVar32;
  uVar32 = ((ulonglong)uVar18 | uVar29 << 0x10) ^ uVar32 >> 0x10 ^ CONCAT44(uVar14,uVar14);
  uVar29 = (ulonglong)DAT_182670ac8;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar32;
  bVar33 = (byte)uVar14 ^ (byte)DAT_1826708c0 ^ (byte)uVar32;
  bVar37 = (byte)DAT_1826708c0 ^ bVar33 ^ (byte)DAT_182670a40;
  pbVar16 = (byte *)((CONCAT44(uVar5,uVar24) ^ 0xefbd598affffffed) + *(longlong *)(lVar3 + -0x168));
  *(byte *)(lVar3 + -0x2b9) = bVar33;
  *(ulonglong *)(lVar3 + -0xa70) = (ulonglong)pbVar16 ^ uVar29;
  uVar14 = DAT_182670ab4;
  *pbVar16 = bVar37;
  uVar12 = DAT_182670850;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar35 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar3 + -0xc0) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((CONCAT44(uVar4,uVar9) ^ 0x9802fcbc7b3c2c75) +
       (CONCAT44(uVar34,uVar34) ^ 0x468e3026468e3026) * 0xc) * 8 ^ uVar29;
  uVar32 = (ulonglong)DAT_182670978;
  uVar29 = *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar30 ^ 0x7b3c2cb7)) ^ uVar29) ^ uVar35 ^ uVar15;
  local_b0 = (byte)uVar8;
  bVar37 = (byte)uVar12 ^ (byte)DAT_182670990;
  *(ulonglong *)(lVar3 + -0x660) = uVar29;
  uVar29 = (uVar29 ^ uVar35) >> ((local_b0 ^ 0x3f) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xce0) = uVar29;
  lVar39 = DAT_1826707a0;
  *(byte *)(lVar3 - ((ulonglong)uVar26 ^ 0xbcfc08ad)) = bVar37 ^ (byte)uVar29;
  bVar37 = *(byte *)(lVar3 + -0xa35) ^ (byte)DAT_182670990 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar3 + -0x618) =
       (CONCAT44(uVar24,uVar34) ^ 0xffffffff468e3035) + *(longlong *)(lVar3 + -0x168) ^ uVar32;
  uVar29 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(byte *)(*(ulonglong *)(lVar39 - (uVar25 ^ 0xf523c919)) ^ uVar32) = bVar37;
  uVar12 = DAT_182670810;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar39 - (uVar40 ^ 0xbcfc0048)) +
            ((CONCAT44(uVar7,uVar6) ^ 0xc1fc0814f523cf03) +
            (CONCAT44(uVar7,uVar7) ^ 0xc1fc0814c1fc0814) * 0xc) * 8);
  *(ulonglong *)(lVar39 + -0xb78) = (ulonglong)puVar19 ^ uVar29;
  uVar14 = DAT_18267091c;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar39 - (uVar21 ^ 0xb3adfd07)) = *puVar19 ^ uVar29 ^ uVar15;
  bVar37 = (byte)uVar14 ^ (byte)DAT_182670958;
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xf523ca89)) =
       (uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) >> ((bVar38 ^ 0x43) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  lVar39 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826708cc;
  *(byte *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0xfffff276)) =
       bVar37 ^ *(byte *)(DAT_1826707a0 + -0x588);
  plVar23 = (longlong *)(lVar39 - ((ulonglong)uVar34 ^ 0x468e314e));
  bVar37 = *(byte *)(lVar39 + -0xd89) ^ (byte)DAT_182670958 ^ (byte)DAT_182670a40;
  pbVar16 = (byte *)((CONCAT44(uVar9,uVar10) ^ 0x7b3c2c77fbfff7eb) + *plVar23);
  *(ulonglong *)(lVar39 + -0x1a8) = (ulonglong)pbVar16 ^ uVar29;
  *pbVar16 = bVar37;
  uVar12 = DAT_182670800;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar39 + -0x2d0) +
            ((CONCAT44(uVar4,uVar7) ^ 0x9802fcbcc1fc0816) +
            (CONCAT44(uVar6,uVar9) ^ 0xf523cf017b3c2c77) * 0xc) * 8);
  *(ulonglong *)(lVar39 + -0xc0) = (ulonglong)puVar19 ^ CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar39 + -0x6b8) = *puVar19 ^ uVar29 ^ uVar15;
  *(undefined8 *)(lVar39 + -0x660) = 0xea4762ea6f83e6d2;
  uVar11 = DAT_1826707f4;
  lVar39 = DAT_1826707a0;
  local_68 = (byte)uVar4;
  bVar37 = (byte)DAT_18267080c;
  piVar20 = (int *)(DAT_1826707a0 - ((ulonglong)uVar34 ^ 0x468e39ca));
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) >> ((bVar38 ^ 0x4b) & 0x3f) ^
       CONCAT44(DAT_18267080c,DAT_18267080c);
  bVar37 = bVar37 ^ (byte)uVar13 ^ *(byte *)(lVar39 + -0xce0);
  uVar29 = (ulonglong)DAT_1826709ec;
  *(ulonglong *)(lVar39 + -0x220) = 0x71c92524d8714795 >> ((local_68 ^ 0xba) & 0x3f);
  *(byte *)(lVar39 + -0x1a9) = bVar37;
  *(int *)(lVar39 + -0xb54) = *piVar20 * *(int *)(lVar39 - (uVar36 ^ 0xefbd5066));
  *(ulonglong *)(lVar39 + -0x120) =
       *(longlong *)(lVar39 - (uVar40 ^ 0xbcfc03f0)) + (CONCAT44(uVar5,uVar10) ^ 0xefbd598afbfff7ea)
       ^ uVar29;
  uVar18 = DAT_1826707dc;
  *(ulonglong *)(lVar39 + -0x660) =
       CONCAT44(uVar8,uVar24) ^ *(ulonglong *)(lVar39 + -0x588) ^ CONCAT44(uVar14,uVar14) ^
       0x87029af00c9a0b95;
  uVar12 = DAT_182670a60;
  uVar17 = uVar18 * uVar11;
  uVar41 = (ulonglong)uVar18;
  uVar40 = (ulonglong)uVar17;
  uVar32 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  DAT_1826707f0 = uVar17;
  *(byte *)(*(ulonglong *)(lVar39 - (uVar41 ^ 0xdfffeeff)) ^ uVar29) =
       (byte)uVar13 ^ bVar37 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar39 - (uVar40 ^ 0x4e92d2dc)) =
       *(longlong *)(lVar39 + -0x2d0) +
       ((CONCAT44(uVar11,uVar11) ^ 0x30fe0adc30fe0ade) +
       (CONCAT44(uVar17,uVar11) ^ 0x4e92d9a430fe0adc) * 0xc) * 8 ^ uVar32;
  uVar29 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar39 + -0x6b8) =
       *(ulonglong *)(*(ulonglong *)(lVar39 + -0xb78) ^ uVar32) ^ uVar15 ^ uVar29;
  *(ulonglong *)(lVar39 - (uVar41 ^ 0xdfffe33f)) =
       *(ulonglong *)(lVar39 - ((ulonglong)uVar18 ^ 0xdfffe9bf)) |
       *(ulonglong *)(lVar39 - ((ulonglong)uVar17 ^ 0x4e92db84));
  *(ulonglong *)(lVar39 - ((ulonglong)uVar18 ^ 0xdfffea57)) =
       (*(ulonglong *)(lVar39 + -0x6b8) ^ uVar29) >> (((byte)uVar18 ^ 0xef) & 0x3f) ^
       CONCAT44(uVar12,uVar12);
  uVar32 = (ulonglong)DAT_182670980;
  *(byte *)(lVar39 + -0x539) =
       *(byte *)(lVar39 - ((ulonglong)uVar11 ^ 0x30fe0f54)) ^ (byte)uVar12 ^ (byte)DAT_18267084c;
  *(ulonglong *)(lVar39 + -0x220) =
       *(longlong *)(lVar39 - (uVar40 ^ 0x4e92dfc4)) -
       (CONCAT44(uVar11,uVar11) ^ 0xc154292b4540d01f);
  *(ulonglong *)(lVar39 - ((ulonglong)uVar17 ^ 0x4e92dc24)) =
       (CONCAT44(uVar17,uVar6) ^ 0x4e92d9a4f523cf17) + *(longlong *)(lVar39 + -0x168) ^ uVar32;
  *(ulonglong *)(lVar39 - ((ulonglong)uVar17 ^ 0x4e92d544)) =
       CONCAT44(uVar34,uVar18) ^ 0x8e0084ee5284d408 | *(ulonglong *)(lVar39 + -0x6b8) ^ uVar29;
  *(byte *)(*(ulonglong *)(lVar39 - ((ulonglong)uVar18 ^ 0xdfffea5f)) ^ uVar32) =
       *(byte *)(lVar39 - ((ulonglong)uVar17 ^ 0x4e92dc9d)) ^ (byte)DAT_182670a40 ^
       (byte)DAT_18267084c;
  uVar12 = DAT_182670904;
  uVar29 = (*(ulonglong *)(lVar39 - ((ulonglong)uVar11 ^ 0x30fe0754)) ^
           CONCAT44(_DAT_1826708c8,_DAT_1826708c8)) - (CONCAT44(uVar10,uVar11) ^ 0xac3009b1b00e1ab5)
  ;
  *(ulonglong *)(lVar39 + -0x588) = uVar29;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar39 + -0x2d0) +
            ((CONCAT44(uVar7,uVar9) ^ 0xc1fc08147b3c2c75) +
            (CONCAT44(uVar18,uVar17) ^ 0xdfffefdf4e92d9a4) * 0xc) * 8);
  *(ulonglong *)(lVar39 + -0xc0) = (ulonglong)puVar19 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_1826709f0;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar39 + -0x660) = CONCAT44(uVar34,uVar5) ^ uVar29 ^ 0x4c1ab2c44f4a4f4a;
  uVar25 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar39 - ((ulonglong)uVar11 ^ 0x30fe08fc)) = *puVar19 ^ uVar15 ^ uVar25;
  *(uint *)(lVar39 + -0x42c) = DAT_1826707d0 ^ 0xea2c10d7 | *(uint *)(lVar39 + -0xaf0);
  uVar29 = (uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) >> (((byte)uVar7 ^ 0x2c) & 0x3f) ^
           CONCAT44(uVar12,uVar12);
  bVar37 = (byte)uVar12 ^ (byte)uVar29 ^ (byte)DAT_1826709cc;
  *(byte *)(lVar3 + -0xb1a) = bVar37;
  bVar37 = bVar37 ^ (byte)DAT_182670a40 ^ (byte)DAT_1826709cc;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar29;
  uVar29 = (ulonglong)DAT_1826708d4;
  *(ulonglong *)(lVar3 + -0x800) = (CONCAT44(uVar4,uVar27) ^ 0x9802fcbcbac02474) + *plVar23 ^ uVar29
  ;
  uVar12 = DAT_182670828;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar41 ^ 0xdfffe7df)) ^ uVar29) = bVar37;
  lVar39 = (CONCAT44(uVar34,uVar6) ^ 0x468e3026f523cf01) * 0xc;
  uVar29 = CONCAT44(uVar12,uVar12);
  *puVar28 = *(longlong *)(lVar3 + -0x2d0) +
             ((CONCAT44(uVar24,uVar5) ^ 0xffffffffefbd5989) + lVar39) * 8 ^ uVar29;
  uVar18 = DAT_1826707ac;
  bVar37 = (byte)DAT_1826708b4;
  uVar30 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0xb78) ^ uVar29) ^ uVar15;
  uVar32 = (ulonglong)DAT_182670b04;
  uVar35 = uVar30 ^ CONCAT44(DAT_182670858,DAT_182670858);
  uVar29 = CONCAT44(DAT_1826708b4,DAT_1826708b4) ^ uVar35 ^ CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar3 + -0xce0) = uVar35;
  *(ulonglong *)(lVar3 + -0xd88) = uVar29;
  bVar37 = bVar37 ^ (byte)uVar29 ^ (byte)DAT_182670a18;
  *(uint *)(lVar3 + -0x814) = (uVar18 ^ 0xbefc) << 0xe;
  *(byte *)(lVar3 + -0x9b9) = bVar37;
  bVar37 = bVar37 ^ (byte)DAT_182670a40 ^ (byte)DAT_182670a18;
  *(ulonglong *)(lVar3 + -0x508) =
       (CONCAT44(uVar4,uVar9) ^ 0x9802fcbc7b3c2c6f) + *(longlong *)(lVar3 + -0x168) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x588) = uVar30 - (CONCAT44(uVar9,uVar24) ^ 0x9f078e8a4b650e5c);
  uVar29 = CONCAT44(DAT_182670954,DAT_182670954);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar36 ^ 0xefbd5c82)) ^ uVar32) = bVar37;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar7,uVar4) ^ 0xc1fc08149802fcbf) + lVar39) * 8);
  *(ulonglong *)(lVar3 + -0xc0) = (ulonglong)puVar19 ^ uVar29;
  uVar12 = DAT_182670ac0;
  uVar18 = DAT_182670a84;
  lVar39 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_182670a84;
  piVar20 = (int *)(DAT_1826707a0 + -0x9ec);
  piVar1 = (int *)(DAT_1826707a0 + -0x42c);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = CONCAT44(DAT_182670a84,DAT_182670a84) ^ *puVar19 ^ uVar15
  ;
  uVar29 = (ulonglong)DAT_1826709b4;
  *(int *)(lVar39 - ((ulonglong)uVar27 ^ 0xbac02523)) = *piVar20 - *piVar1;
  *(ulonglong *)(lVar39 + -0x6b8) =
       ((ulonglong)uVar18 << 0x18 | (ulonglong)(uVar18 >> 8)) ^ *(ulonglong *)(lVar39 + -0x660) >> 8
       ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar39 + -0xd88) =
       CONCAT44(uVar17,uVar8) ^ 0xc216e2a155267c5c | uVar25 ^ *(ulonglong *)(lVar39 + -0x220);
  bVar37 = (byte)uVar12 ^ *(byte *)(lVar39 + -0x6b8) ^ (byte)DAT_18267087c;
  *(byte *)(lVar39 + -0xad1) = bVar37;
  uVar12 = DAT_182670934;
  bVar37 = bVar37 ^ (byte)DAT_182670a40 ^ (byte)DAT_18267087c;
  pbVar16 = (byte *)(*(longlong *)(lVar39 - (uVar40 ^ 0x4e92d8cc)) + 0x19);
  *(ulonglong *)(lVar39 + -0x888) = (ulonglong)pbVar16 ^ uVar29;
  uVar29 = CONCAT44(uVar12,uVar12);
  *pbVar16 = bVar37;
  uVar12 = DAT_182670a5c;
  *(ulonglong *)(lVar39 + -0xb78) =
       (CONCAT44(uVar10,uVar9) ^ 0xfbfff7ff7b3c2c77) * 0x60 + *(longlong *)(lVar39 + -0x2d0) + 0x18
       ^ uVar29;
  uVar14 = DAT_182670abc;
  uVar4 = DAT_1826707c0;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar39 - (uVar21 ^ 0xb3adf3c7)) =
       *(ulonglong *)(*(ulonglong *)(lVar39 - (uVar41 ^ 0xdfffe4a7)) ^ uVar29) ^ uVar15 ^ uVar36;
  uVar29 = (*(ulonglong *)(lVar39 + -0xce0) ^ uVar36) >> (((byte)uVar11 ^ 0xcc) & 0x3f) ^
           CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar39 + -0x588) = uVar29;
  bVar37 = (byte)uVar14 ^ (byte)uVar29 ^ (byte)DAT_1826709c4;
  uVar18 = *(uint *)(lVar39 - (uVar31 ^ 0xc1fc0800));
  *(byte *)(lVar39 + -0xd61) = bVar37;
  bVar37 = bVar37 ^ (byte)DAT_182670a40 ^ (byte)DAT_1826709c4;
  *(uint *)(lVar39 + -0xa34) = uVar18 | 0xf514fdf8;
  uVar18 = uVar4 << 0x10 | uVar4 >> 0x10;
  *(ulonglong *)(lVar39 + -0x648) =
       (CONCAT44(uVar11,uVar5) ^ 0x30fe0adcefbd5990) + *(longlong *)(lVar39 + -0x168) ^ uVar32;
  DAT_1826707d8 = uVar18;
  *(byte *)(*(ulonglong *)(lVar39 - ((ulonglong)uVar11 ^ 0x30fe0c94)) ^ uVar32) = bVar37;
  uVar12 = DAT_1826709c0;
  *(undefined1 *)(lVar39 + -0xd02) = **(undefined1 **)(lVar39 - ((ulonglong)uVar4 ^ 0xab381289));
  uVar14 = DAT_182670a98;
  puVar19 = (ulonglong *)
            (*(longlong *)(lVar39 + -0x2d0) +
            ((CONCAT44(uVar18,uVar4) ^ 0x1189ab38ab38118a) +
            (CONCAT44(uVar18,uVar18) ^ 0x1189ab381189ab38) * 0xc) * 8);
  *(ulonglong *)(lVar39 + -0xc0) = (ulonglong)puVar19 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670a20;
  uVar15 = *puVar19 ^ uVar15;
  *(ulonglong *)(lVar39 + -0x660) = uVar15 ^ CONCAT44(uVar14,uVar14);
  bVar37 = (byte)uVar12 ^ (byte)DAT_182670aa0;
  *(ulonglong *)(lVar39 - ((ulonglong)uVar18 ^ 0x1189a918)) =
       uVar15 >> (((byte)(uVar4 >> 0x10) ^ 0x20) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  *(byte *)(lVar39 + -0xd02) = bVar37 ^ *(byte *)(lVar39 + -0x220);
  *(ulonglong *)(lVar39 + -0xd88) =
       0x20466d87ec672154 - (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar39 + -0x220));
  *(uint *)(lVar39 + -0x3d4) =
       (uVar4 ^ 0x658f79e8) << ((byte)*(undefined4 *)(lVar39 + -0x42c) & 0x1f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar26) * 4) = uVar22;
  return;
}



############ FUN_ 180c77680 size=5819 ############

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

void FUN_180c77680(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  uint uVar15;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte bVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  byte local_res20;
  byte local_118;
  byte local_110;
  ulonglong uVar16;
  
  uVar8 = DAT_182670864;
  uVar35 = DAT_1826707d0;
  uVar9 = DAT_1826707c8;
  uVar7 = DAT_1826707c0;
  uVar6 = DAT_1826707b8;
  uVar5 = DAT_1826707b0;
  uVar41 = (ulonglong)DAT_1826707b0;
  uVar44 = (ulonglong)DAT_1826707b8;
  uVar47 = (ulonglong)DAT_1826707d0;
  uVar24 = (ulonglong)DAT_1826707c8;
  uVar49 = DAT_1826707d0 & DAT_1826707c0;
  uVar18 = DAT_1826707c8 << 0x10 | DAT_1826707c8 >> 0x10;
  uVar15 = DAT_1826707b8 - DAT_1826707f0;
  uVar16 = (ulonglong)uVar15;
  uVar29 = (DAT_1826707b0 << 0x10 | DAT_1826707b0 & 0xff00) << 8 | DAT_1826707b0 >> 8 & 0xff00 |
           DAT_1826707b0 >> 0x18;
  uVar25 = *(uint *)(&DAT_18260f758 + DAT_182670b54) ^ DAT_1826707b8;
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670b54) ^ DAT_1826707f0;
  uVar46 = CONCAT44(DAT_18267099c,DAT_18267099c);
  DAT_1826707ac = uVar29;
  DAT_1826707cc = uVar15;
  DAT_1826707dc = uVar18;
  DAT_1826707f4 = uVar49;
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0x31dfb134)) ^ uVar46) >>
       (((byte)DAT_182670ae0 ^ *(byte *)(DAT_1826707a0 + -0x3b0)) & 0x3f);
  uVar11 = DAT_18267086c;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar20 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar34 = (ulonglong)uVar29;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  uVar26 = *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x98e2ffac)) ^
           CONCAT44(DAT_1826709a0,DAT_1826709a0) ^ uVar20 ^ uVar36 ^
           *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *puVar1 = uVar26;
  uVar8 = DAT_182670b04;
  lVar3 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) + (uVar26 ^ uVar36) ^
       uVar30;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar40 = (ulonglong)uVar18;
  *(ulonglong *)(lVar3 + -0x630) = (uVar36 ^ uVar26) << 0x3a ^ uVar31;
  uVar10 = DAT_182670ad0;
  lVar3 = DAT_1826707a0;
  uVar27 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  bVar17 = (byte)(uVar9 >> 0x10);
  uVar33 = (ulonglong)DAT_182670ad0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xcf83f6d7)) =
       (uVar36 ^ *puVar1) >> ((bVar17 ^ 0x85) & 0x3f) ^ uVar27;
  uVar19 = CONCAT44(uVar10,uVar10);
  uVar36 = CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar26 = (uVar27 ^ *(ulonglong *)(lVar3 + -0xbb0) | uVar31 ^ *(ulonglong *)(lVar3 + -0x630)) ^
           uVar36;
  *(ulonglong *)(lVar3 + -0x118) = uVar26;
  *(ulonglong *)(lVar3 + -0xd38) =
       uVar19 ^ uVar26 ^ uVar36 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0xd88);
  uVar8 = DAT_182670a84;
  uVar36 = (ulonglong)uVar7;
  *(ulonglong *)(lVar3 + -0xcf8) =
       (CONCAT44(uVar7,uVar5) ^ 0x3d8e9d1fda7d201) - (CONCAT44(uVar35,uVar49) ^ 0x101efdf18fbce981);
  uVar26 = (ulonglong)DAT_182670b14;
  uVar42 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x610) =
       (uVar20 ^ *(ulonglong *)(lVar3 + -0x410)) + (uVar46 ^ *(ulonglong *)(lVar3 + -0x9e0)) ^
       uVar42;
  uVar8 = DAT_18267085c;
  *(byte *)(lVar3 + -0xb09) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x390) ^ uVar26) ^ (byte)DAT_182670a40;
  lVar3 = DAT_1826707a0;
  bVar43 = (byte)uVar6;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       (uVar46 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0)) << ((bVar43 ^ 0x96) & 0x3f) ^ uVar26;
  lVar4 = DAT_1826707a0;
  local_res20 = (byte)uVar15;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x31dfbeb4)) =
       (CONCAT44(uVar9,uVar29) ^ 0x5304dfb791a013cc) - *(longlong *)(lVar3 - (uVar40 ^ 0xfd67c37b));
  uVar11 = DAT_182670aec;
  uVar31 = (uVar46 ^ *(ulonglong *)(lVar4 + -0x9e0)) >> ((local_res20 ^ 0xfe) & 0x3f);
  uVar32 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar4 + -0x3b0) = uVar31 ^ uVar32;
  uVar8 = DAT_182670860;
  uVar20 = CONCAT44(uVar11,uVar11);
  uVar31 = (uVar31 | uVar26 ^ *(ulonglong *)(lVar4 + -0x558)) ^ uVar20;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar31;
  uVar11 = DAT_1826708d8;
  uVar26 = CONCAT44(uVar8,uVar8);
  uVar20 = *(ulonglong *)(lVar4 - (uVar41 ^ 0xbcfbe488)) ^ uVar42 ^ uVar31 ^ uVar26 ^ uVar20;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar20;
  uVar20 = uVar20 ^ uVar26;
  uVar46 = CONCAT44(uVar11,uVar11);
  uVar31 = (*(ulonglong *)(lVar4 - (uVar40 ^ 0xfd67c93b)) ^ uVar26) +
           (uVar30 ^ *(ulonglong *)(lVar4 + -0xd88)) ^ uVar46;
  *(ulonglong *)(lVar4 + -0xf0) = uVar31;
  uVar10 = DAT_1826707f0;
  uVar26 = *(ulonglong *)(lVar4 + -0x610);
  uVar21 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *puVar1 = uVar20 << (((byte)uVar35 ^ 0xde) & 0x3f) ^ uVar21;
  uVar11 = DAT_1826708c0;
  uVar37 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar20 = uVar20 >> ((local_res20 ^ 0xf4) & 0x3f);
  uVar28 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  *(ulonglong *)(lVar4 + -0x630) = uVar20 ^ uVar37;
  uVar12 = DAT_182670a74;
  uVar20 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0x41b495f6)) ^ uVar21 | uVar20) ^ uVar28;
  *(ulonglong *)(lVar4 + -0xbb0) = uVar20;
  uVar8 = DAT_1826708a0;
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x118) = uVar20 ^ uVar31 ^ uVar22 ^ uVar28 ^ uVar46;
  uVar12 = DAT_1826708cc;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x410) =
       (uVar42 ^ uVar26) + (uVar19 ^ *(ulonglong *)(lVar4 + -0xd38)) ^ uVar28;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0xcf8) =
       (CONCAT44(uVar10,uVar49) ^ 0x78d10fee1dd460e4) <<
       ((*(byte *)(lVar4 + -0xbb0) ^ (byte)uVar11) & 0x3f);
  uVar42 = (ulonglong)DAT_1826707b4;
  uVar20 = CONCAT44(uVar12,uVar12);
  local_110 = (byte)(uVar5 >> 0x18);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xcf83fb07)) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0xcf83f0c7)) ^ uVar19) << ((local_110 ^ 0x9c) & 0x3f) ^
       uVar20;
  uVar8 = DAT_1826707c4;
  uVar33 = *(ulonglong *)(lVar3 + -0xd38) >> 0x20 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x9e0) = uVar33 ^ CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar23 = DAT_1826707f0;
  *(ulonglong *)(lVar3 + -0x558) =
       CONCAT44(uVar6,uVar5) ^ *(ulonglong *)(lVar3 + -0x630) ^ uVar37 ^ 0x6c27c7b977340c68;
  uVar12 = DAT_182670990;
  uVar26 = CONCAT44(DAT_182670898,DAT_182670898);
  uVar31 = (uVar33 | uVar20 ^ *(ulonglong *)(lVar3 + -0x660)) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x3b0) = uVar31;
  uVar11 = _DAT_1826708f8;
  uVar20 = CONCAT44(uVar12,uVar12);
  uVar26 = uVar31 ^ *(ulonglong *)(lVar3 + -0x410) ^ uVar20 ^ uVar26 ^ uVar28;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar26;
  lVar3 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (CONCAT44(uVar7,uVar15) ^ 0x6f4951054f71b2b5) + (uVar26 ^ uVar20) ^ uVar19;
  uVar26 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar35,uVar23) ^ 0xcdc79def71ae230e) + (*(ulonglong *)(lVar3 + -0xf0) ^ uVar46) ^
       uVar26;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xbcfbee78)) =
       CONCAT44(uVar10,uVar35) ^ 0x658a439aaafdbe5c | CONCAT44(uVar8,uVar49) ^ 0xc2bc1ac4dcaa07cf;
  uVar11 = DAT_18267080c;
  uVar48 = CONCAT44(DAT_182670950,DAT_182670950);
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0xbcfbe420)) ^ uVar26) +
       (*(ulonglong *)(lVar3 + -0xd88) ^ uVar19) ^ uVar48;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xbb0) =
       (*(ulonglong *)(lVar3 + -0xd88) ^ uVar19) << (((byte)uVar23 ^ 0xa2) & 0x3f) ^ uVar31;
  uVar12 = DAT_182670b0c;
  uVar26 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar3 + -0xcf8) =
       (*(ulonglong *)(lVar3 + -0xd88) ^ uVar19) >> ((bVar43 ^ 0xb2) & 0x3f) ^ uVar26;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x98e2f684)) =
       (CONCAT44(uVar7,uVar6) ^ 0xa3084d73ce775c4c) + (CONCAT44(uVar6,uVar6) ^ 0xadc566fee2a80c17);
  uVar20 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x41b49c4e)) =
       (*(ulonglong *)(lVar3 + -0xbb0) ^ uVar31 | *(ulonglong *)(lVar3 + -0xcf8) ^ uVar26) ^ uVar20;
  uVar11 = DAT_182670890;
  *(ulonglong *)(lVar3 + -0x630) =
       (CONCAT44(DAT_1826707b4,uVar9) ^ 0x59d2887a20cbe23c) << (((byte)uVar49 ^ 8) & 0x3f);
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar33 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar3 + -0x660) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar49 ^ 0x41a49f06)) ^ uVar31 ^ uVar20 ^ uVar48 ^
       *(ulonglong *)(lVar3 + -0x558);
  *(ulonglong *)(lVar3 + -0x9e0) =
       (CONCAT44(uVar8,uVar15) ^ 0x7c1c2b99387124f8) + (uVar22 ^ *(ulonglong *)(lVar3 + -0x118)) ^
       uVar33;
  uVar26 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0xcf83fe4f)) =
       (CONCAT44(uVar18,DAT_1826707d4) ^ 0xa6e58396f4282c9b) +
       (*(ulonglong *)(lVar3 + -0x410) ^ uVar28) ^ uVar26;
  uVar10 = DAT_1826707e0;
  uVar45 = CONCAT44(DAT_18267081c,DAT_18267081c);
  bVar14 = (byte)*(undefined8 *)(lVar3 + -0xcf8) ^ (byte)uVar12;
  uVar19 = (*(ulonglong *)(lVar3 - (uVar40 ^ 0xfd67c663)) ^ uVar33) +
           (*(ulonglong *)(lVar3 - (uVar24 ^ 0xcf83fed7)) ^ uVar26) ^ uVar45;
  uVar38 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar19;
  *(ulonglong *)(lVar3 + -0xf0) = (CONCAT44(uVar8,uVar18) ^ 0x3779a169e3346d75) >> (bVar14 & 0x3f);
  uVar28 = (*(ulonglong *)(lVar3 + -0x9e0) ^ uVar33) << ((bVar43 ^ 0x90) & 0x3f);
  *puVar1 = uVar28 ^ CONCAT44(DAT_182670944,DAT_182670944);
  uVar23 = DAT_1826707f0;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar9,DAT_1826707c4) ^ 0x6367eddadc981d98) << (bVar14 & 0x3f);
  uVar9 = DAT_1826707ec;
  uVar37 = (ulonglong)DAT_1826707ec;
  uVar26 = (*(ulonglong *)(lVar3 - (uVar42 ^ 0xcf83f41f)) ^ uVar33) >>
           (((byte)uVar23 ^ 0x9c) & 0x3f);
  uVar20 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar3 + -0xd88) = uVar26 ^ CONCAT44(DAT_182670958,DAT_182670958);
  uVar11 = DAT_1826708d0;
  lVar4 = DAT_1826707a0;
  uVar23 = uVar9 + uVar10;
  uVar28 = (uVar26 | uVar28) ^ uVar20;
  DAT_1826707b4 = uVar23;
  *(ulonglong *)(lVar3 + -0xd38) = uVar28;
  uVar8 = _DAT_1826708c8;
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar26 = *(ulonglong *)(lVar4 + -0x610);
  uVar19 = uVar19 ^ uVar22 ^ uVar28 ^ uVar20 ^ uVar45;
  *(ulonglong *)(lVar3 + -0xbb0) = uVar19;
  uVar11 = DAT_182670a14;
  uVar20 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0x630) = (uVar26 ^ uVar48) + (uVar19 ^ uVar22) ^ uVar20;
  uVar8 = DAT_1826708b8;
  lVar3 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar42 = (ulonglong)uVar23;
  bVar14 = (byte)uVar10;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0x558) = (uVar22 ^ uVar19) << ((bVar14 ^ 0xac) & 0x3f) ^ uVar26;
  puVar39 = (ulonglong *)(lVar3 - (uVar38 ^ 0xbcfc0380));
  *puVar39 = (uVar22 ^ *puVar2) >> (((byte)uVar9 ^ 0x94) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  uVar11 = DAT_182670a90;
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar23 ^ 0x79fbd728)) ^ CONCAT44(uVar8,uVar8) |
           uVar26 ^ *(ulonglong *)(lVar3 + -0x558)) ^ uVar27;
  uVar31 = uVar31 ^ *(ulonglong *)(lVar3 + -0x660);
  *(ulonglong *)(lVar3 + -0x410) = uVar26;
  uVar48 = CONCAT44(uVar11,uVar11);
  uVar22 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar3 + -0x3b0) =
       uVar27 ^ uVar48 ^ uVar26 ^ uVar20 ^ *(ulonglong *)(lVar3 + -0x630);
  uVar26 = (*(ulonglong *)(lVar3 - (uVar42 ^ 0x79fbd480)) ^ uVar45) + uVar31 ^ uVar22;
  *(ulonglong *)(lVar3 + -0xf0) = uVar26;
  uVar11 = DAT_182670920;
  uVar45 = (CONCAT44(uVar9,uVar9) ^ 0x2cefadba0d1b5a2c) >>
           (((byte)uVar8 ^ *(byte *)(lVar3 + -0x118)) & 0x3f);
  *(ulonglong *)(lVar3 + -0xcf8) = uVar45;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar31 << 0x39 ^ uVar28;
  uVar27 = uVar31 >> (((byte)uVar23 ^ 0x37) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar27 ^ CONCAT44(DAT_182670968,DAT_182670968);
  lVar3 = DAT_1826707a0;
  uVar19 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *puVar1 = (uVar27 | uVar31 << 0x39) ^ uVar19;
  uVar27 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar31 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar26 = *(ulonglong *)(lVar3 - (uVar42 ^ 0x79fbdad0)) ^ uVar27 ^ uVar19 ^ uVar22 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xd88) = uVar26;
  *(ulonglong *)(lVar3 + -0xd38) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0xbcffd5a8)) ^ uVar20) + (uVar26 ^ uVar27) ^ uVar31;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x79fbd020)) = uVar45 ^ 0x3a6b3c38a685bcf8;
  uVar8 = DAT_1826709f4;
  uVar20 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar3 + -0xbb0) =
       (*(ulonglong *)(lVar3 - (uVar42 ^ 0x79fbdbb8)) ^ uVar27) << ((bVar14 ^ 0x8f) & 0x3f) ^ uVar20
  ;
  uVar26 = (*(ulonglong *)(lVar3 + -0xd88) ^ uVar27) >> (((byte)uVar23 ^ 0x19) & 0x3f);
  *(ulonglong *)(lVar3 + -0x558) = uVar26 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x410) =
       CONCAT44(uVar5,uVar35) ^ *(ulonglong *)(lVar3 + -0xd88) ^ uVar27 ^ 0xa1a26021648259ec;
  uVar26 = (*(ulonglong *)(lVar3 - (uVar37 ^ 0xbcffd828)) ^ uVar20 | uVar26) ^ uVar19;
  uVar20 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar3 + -0x2b0) = uVar26;
  local_118 = (byte)uVar5;
  *(ulonglong *)(lVar3 + -0x118) =
       *(ulonglong *)(lVar3 + -0xd38) ^ uVar20 ^ uVar26 ^ uVar31 ^ uVar19;
  uVar26 = (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar48) >> (local_118 & 0x3f);
  uVar27 = CONCAT44(DAT_182670814,DAT_182670814);
  uVar19 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  *(ulonglong *)(lVar3 + -0x660) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0xf0)) + (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar48) ^ uVar27
  ;
  *(ulonglong *)(lVar3 + -0x6b8) = (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar48) << 0x28 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x9e0) = uVar26 ^ CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar26 = (*(ulonglong *)(lVar3 - (uVar37 ^ 0xbcffd520)) ^ uVar19 | uVar26) ^ uVar30;
  *puVar1 = uVar26;
  uVar5 = DAT_1826707e4;
  uVar19 = CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar35 = DAT_1826707e4 << 0x10 | DAT_1826707e4 >> 0x10;
  uVar22 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar26 = *(ulonglong *)(lVar3 - (uVar47 ^ 0x77e5fb9e)) ^ uVar26 ^ uVar30 ^ uVar19 ^ uVar27;
  DAT_1826707d8 = uVar35;
  *(ulonglong *)(lVar3 + -0x630) = uVar26;
  *(ulonglong *)(lVar3 - (uVar36 ^ 0x41b49f06)) =
       (uVar26 ^ uVar19) + (*(ulonglong *)(lVar3 + -0xd38) ^ uVar31) ^ uVar22;
  uVar26 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar3 + -0xcf8) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x630)) << ((bVar17 ^ 0x86) & 0x3f) ^ uVar26;
  lVar4 = DAT_1826707a0;
  *(int *)(lVar3 - (uVar38 ^ 0xbcfc0414)) = *(int *)(lVar3 + -0xa34) * *(int *)(lVar3 + -0x9ec);
  uVar8 = DAT_1826709d8;
  uVar36 = (uVar19 ^ *(ulonglong *)(lVar4 + -0x630)) >> (((byte)uVar5 ^ 0xf0) & 0x3f);
  *(ulonglong *)(lVar4 + -0x410) = uVar36 ^ uVar32;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar8,uVar8);
  bVar14 = (byte)(uVar5 >> 0x10);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar35 ^ 0xf0cb6bcc)) =
       (*(ulonglong *)(lVar4 + -0xcf8) ^ uVar26 | uVar36) ^ uVar31;
  *(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0x6644f8df)) =
       (uVar5 ^ 0x483172af) << ((bVar14 ^ 0x59) & 0x1f);
  uVar8 = DAT_182670a08;
  *(ulonglong *)(lVar3 + -0xbb0) =
       uVar31 ^ *(ulonglong *)(lVar3 + -0xd88) ^ *(ulonglong *)(lVar3 + -0x610) ^ uVar22 ^ uVar33;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar26 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x660)) + (uVar20 ^ *(ulonglong *)(lVar3 + -0x118));
  *(ulonglong *)(lVar3 + -0x558) = uVar26 ^ uVar31;
  uVar8 = DAT_182670a78;
  *(ulonglong *)(lVar3 + -0x2b0) = uVar26 ^ CONCAT44(uVar35,uVar5) ^ 0x5bfa81a85ea069fc;
  uVar19 = CONCAT44(uVar8,uVar8);
  uVar26 = (uVar20 ^ *(ulonglong *)(lVar3 + -0x118)) >> ((bVar14 ^ 0x5f) & 0x3f);
  *(ulonglong *)(lVar3 + -0xf0) = (uVar20 ^ *(ulonglong *)(lVar3 + -0x118)) << 0x25 ^ uVar19;
  uVar11 = DAT_182670abc;
  *(ulonglong *)(lVar3 + -0x3b0) = uVar26 ^ CONCAT44(DAT_182670844,DAT_182670844);
  uVar8 = DAT_182670984;
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar11,uVar11);
  uVar26 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x6644f03b)) ^ uVar19 | uVar26) ^ uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar26;
  uVar20 = CONCAT44(uVar8,uVar8);
  uVar26 = *(ulonglong *)(lVar4 - (uVar37 ^ 0xbcffd6c0)) ^ uVar26 ^ uVar20 ^ uVar36 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar26;
  lVar3 = DAT_1826707a0;
  *puVar1 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar35 ^ 0xf0cb60fc)) ^ uVar20) +
            (CONCAT44(uVar5,uVar23) ^ 0x3dc6bcde01502a54) ^ uVar28;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f0 ^ 0x2550594)) =
       (uVar20 ^ uVar26) << ((local_110 ^ 0xba) & 0x3f);
  uVar26 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xfd67c9b3)) =
       (CONCAT44(uVar23,uVar5) ^ 0xdc0f3ef21d648606) + (*(ulonglong *)(lVar4 + -0x610) ^ uVar22) ^
       uVar26;
  uVar8 = DAT_18267096c;
  uVar20 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar3 + -0xcf8) =
       (*(ulonglong *)(lVar3 - (uVar41 ^ 0xbcfbe4a8)) ^ uVar26) + (*puVar1 ^ uVar28) ^ uVar20;
  uVar36 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x410) = (*puVar1 ^ uVar28) << 0x19 ^ uVar36;
  uVar26 = CONCAT44(uVar7,DAT_1826707e8);
  *(ulonglong *)(lVar3 + -0xd88) = (*puVar1 ^ uVar28) >> ((bVar14 ^ 99) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar35 ^ 0xf0cb6024)) =
       (uVar26 ^ 0x7ce9f6556770944b) - (CONCAT44(uVar29,uVar9) ^ 0xbd2944a8d18385c5);
  uVar19 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar26 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar3 + -0x2b0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0x8c83dd77)) ^ uVar46 |
       uVar36 ^ *(ulonglong *)(lVar3 + -0x410)) ^ uVar19;
  *puVar39 = *(ulonglong *)(lVar3 - (uVar40 ^ 0xfd67cd33)) ^ uVar26 ^ *(ulonglong *)(lVar3 + -0xcf8)
             ^ uVar19 ^ uVar20;
  uVar36 = (CONCAT44(uVar5,uVar7) ^ 0x3b15cd0395e7880) + (*(ulonglong *)(lVar3 + -0xbb0) ^ uVar33);
  uVar26 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar3 + -0xf0) = uVar36 ^ uVar21;
  uVar8 = DAT_1826707fc;
  uVar40 = (CONCAT44(uVar29,uVar6) ^ 0x2c5e6fcb81472fb6) + (uVar31 ^ *(ulonglong *)(lVar3 + -0x558))
  ;
  *(ulonglong *)(lVar3 + -0x3b0) = uVar40 ^ uVar26;
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xcf83f487)) = uVar36 + uVar40 ^ uVar31;
  uVar36 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x98e2fd04)) =
       (*(ulonglong *)(lVar3 + -0xf0) ^ uVar21) << (((byte)DAT_1826707c4 ^ 0x46) & 0x3f) ^ uVar36;
  uVar11 = DAT_182670af4;
  uVar26 = (*(ulonglong *)(lVar3 + -0xf0) ^ uVar21) >> (((byte)uVar9 ^ 0x87) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd38) = uVar26 ^ CONCAT44(DAT_182670974,DAT_182670974);
  uVar8 = DAT_182670ab0;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x31dfbec4)) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0x6b8) | uVar26) ^ uVar34;
  uVar26 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(lVar3 + -0x630) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar49 ^ 0x41a490f6)) ^ uVar26 ^ uVar34 ^ uVar31 ^
       *(ulonglong *)(lVar3 + -0x610);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar41 ^ 0xbcfbee60)) ^ uVar20) +
            (*(ulonglong *)(lVar3 - (uVar44 ^ 0x3434c7b0)) ^ uVar26) ^ CONCAT44(uVar8,uVar8);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar25;
  return;
}



############ FUN_ 180d41240 size=3037 ############

void FUN_180d41240(void)

{
  byte *pbVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  byte bVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  undefined1 *puVar28;
  longlong lVar29;
  longlong lVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  
  uVar14 = DAT_1826707dc;
  uVar11 = DAT_1826707d4;
  uVar10 = DAT_1826707d0;
  uVar9 = DAT_1826707c0;
  uVar8 = DAT_1826707b4;
  lVar29 = DAT_1826707a0;
  uVar18 = DAT_1826707cc + DAT_1826707e8;
  uVar31 = DAT_1826707b4 ^ DAT_1826707d8;
  uVar34 = (ulonglong)DAT_1826707c0;
  DAT_1826707e0 = DAT_1826707c8 << 0x10 | DAT_1826707c8 >> 0x10;
  uVar19 = DAT_1826707b0 & 3;
  if (uVar19 < 2) {
    uVar27 = DAT_1826707c4;
    if (uVar19 == 0) {
      uVar27 = DAT_1826707b0;
    }
  }
  else {
    uVar27 = DAT_1826707c0;
    if (uVar19 < 3) {
      uVar27 = DAT_1826707d4;
    }
  }
  uVar19 = DAT_1826707dc + DAT_1826707d0;
  uVar25 = *(uint *)(&DAT_18260f758 + DAT_182670c9c) ^ DAT_1826707d0;
  uVar20 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar19 ^ 0x76cc0c6a) + (longlong)DAT_182670c9c) ^
           DAT_1826707dc;
  pbVar1 = (byte *)(DAT_1826707a0 + -0x6c9);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x438);
  DAT_1826707bc = uVar27;
  DAT_1826707e4 = uVar19;
  DAT_1826707f4 = uVar31;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0x84488ca)) = (ulonglong)*pbVar1;
  pbVar21 = (byte *)(*(longlong *)(lVar29 + 0x30) + 0x29);
  *(byte **)(lVar29 + -0x350) = pbVar21;
  uVar32 = DAT_1826707b0;
  bVar24 = *pbVar21;
  *pbVar1 = bVar24;
  *(ulonglong *)(lVar29 - ((ulonglong)uVar32 ^ 0x3aed895e)) = (ulonglong)bVar24;
  uVar12 = DAT_1826707d8;
  uVar33 = (ulonglong)DAT_1826707d8;
  *(longlong *)(lVar29 + -0xa18) =
       0x64cc0f8f3121b1d7 - *(longlong *)(lVar29 - ((ulonglong)uVar27 ^ 0x8448a12));
  uVar27 = DAT_1826707f0;
  *(longlong *)(lVar29 - ((ulonglong)uVar8 ^ 0x22e2664b)) =
       *(longlong *)(lVar29 + -0x558) << (((byte)uVar9 ^ 0x6a) & 0x3f);
  uVar35 = *(ulonglong *)(lVar29 + -0xc18);
  uVar22 = *(ulonglong *)(lVar29 + -0x4c8) | uVar35;
  *puVar2 = uVar22;
  *(ulonglong *)(lVar29 + -0x400) = uVar35 - uVar22;
  pbVar21 = (byte *)((CONCAT44(uVar31,uVar14) ^ 0x3a763b0d16f23a30) +
                    *(longlong *)(((ulonglong)uVar27 ^ 0x5e519428) + lVar29));
  *(byte **)(lVar29 + -0x350) = pbVar21;
  bVar24 = *pbVar21;
  *pbVar1 = bVar24;
  puVar3 = (ulonglong *)(lVar29 + -0x998);
  *puVar3 = (ulonglong)bVar24;
  *(ulonglong *)(lVar29 - (uVar33 ^ 0x18945dbe)) = (ulonglong)bVar24 << 0x10;
  uVar33 = *(ulonglong *)(lVar29 + -0xce0) | *puVar2;
  puVar4 = (ulonglong *)(lVar29 + -0xb70);
  *puVar4 = uVar33;
  uVar35 = (ulonglong)DAT_1826707cc;
  *(longlong *)(lVar29 + -0x350) = *(longlong *)(lVar29 + 0x30) + 0x2b;
  *pbVar1 = **(byte **)(lVar29 - (uVar35 ^ 0x88503b92));
  uVar15 = DAT_1826707e0;
  uVar32 = DAT_1826707c8;
  uVar22 = (ulonglong)*(byte *)(lVar29 - ((ulonglong)DAT_1826707c8 ^ 0x4c2d26c9));
  puVar5 = (ulonglong *)(lVar29 + -0x220);
  *puVar5 = uVar22;
  puVar23 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  uVar22 = uVar22 << (((byte)uVar12 ^ 0x46) & 0x3f);
  uVar35 = (ulonglong)DAT_1826707c4;
  *puVar23 = uVar22;
  lVar30 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x8448aba)) = uVar22 | uVar33;
  uVar16 = DAT_1826707e8;
  uVar33 = (ulonglong)DAT_1826707e8;
  pbVar21 = (byte *)((CONCAT44(uVar18,uVar11) ^ 0xcc7d58c008448c2e) + *(longlong *)(lVar30 + 0x30));
  *(byte **)(lVar30 + -0x350) = pbVar21;
  *pbVar1 = **(byte **)(lVar30 + -0x4f8);
  bVar24 = *pbVar21;
  *pbVar1 = bVar24;
  *(ulonglong *)(lVar30 + -0x118) = (ulonglong)bVar24;
  *(ulonglong *)(lVar30 - (uVar34 ^ 0xe625e092)) = (ulonglong)bVar24 << 0x20;
  *(ulonglong *)(lVar30 - (uVar33 ^ 0x442d1276)) =
       *(ulonglong *)(lVar30 - ((ulonglong)DAT_1826707d4 ^ 0x8448aba)) |
       *(ulonglong *)(lVar30 + -0xf0);
  lVar29 = *(longlong *)(lVar30 + 0x30);
  *(ulonglong *)(lVar30 + -0x658) = CONCAT44(uVar19,DAT_1826707bc) << 0x21 ^ 0x3938550400000000;
  uVar27 = DAT_1826707b0;
  pbVar21 = (byte *)((CONCAT44(uVar9,DAT_1826707b0) ^ 0xe625e0623aed8c2b) + lVar29);
  *(byte **)(lVar30 + -0x4f8) = pbVar21;
  bVar24 = *pbVar21;
  *(ulonglong *)(lVar30 + -0x630) = (ulonglong)bVar24;
  *pbVar1 = bVar24;
  lVar7 = DAT_1826707a0;
  uVar34 = *(longlong *)(lVar30 - ((ulonglong)uVar8 ^ 0x22e26c63)) << (((byte)uVar15 ^ 5) & 0x3f);
  uVar26 = DAT_1826707cc ^ 0x62a34338;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar34;
  uVar13 = DAT_1826707d8;
  *(ulonglong *)(lVar7 + -0x7d8) =
       *(longlong *)(lVar7 + -0x118) - (CONCAT44(uVar32,uVar16) ^ 0x97a1739192f32ecf);
  *(ulonglong *)(lVar7 + -0xd38) = *(ulonglong *)(lVar7 + -0xd88) | uVar34;
  *(uint *)(lVar7 + -0x9ec) = uVar26 << (((byte)uVar13 ^ 0x52) & 0x1f);
  puVar28 = (undefined1 *)((CONCAT44(uVar8,uVar15) ^ 0x22e26a5320004c03) + lVar29);
  *(undefined1 **)(lVar7 + -0x350) = puVar28;
  *(undefined1 *)(lVar7 - ((ulonglong)uVar10 ^ 0x5fd9d4a9)) = *puVar28;
  bVar24 = *pbVar1;
  uVar34 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar7 + -0x9c8) = (ulonglong)bVar24;
  *(ulonglong *)(lVar7 - (uVar34 ^ 0x8448822)) = (ulonglong)bVar24 << 0x30;
  *(ulonglong *)(lVar7 + -0x5c0) =
       0x65a30fbeb6013ba2 - (CONCAT44(uVar27,uVar18) ^ 0x7f7c8511bb5748a7);
  *(longlong *)(lVar7 + -0x660) =
       *(longlong *)(lVar7 - ((ulonglong)uVar18 ^ 0xcc7d55f8)) + *(longlong *)(lVar7 + -0x420);
  pbVar21 = (byte *)((CONCAT44(uVar11,uVar14) ^ 0x8448c0216f23a35) + *(longlong *)(lVar7 + 0x30));
  *(byte **)(lVar7 + -0x4f8) = pbVar21;
  bVar24 = *pbVar21;
  *pbVar1 = bVar24;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0x22e26c43)) = (ulonglong)bVar24;
  uVar18 = DAT_1826707b8;
  uVar8 = DAT_1826707a8;
  uVar34 = (ulonglong)DAT_1826707a8;
  uVar36 = (ulonglong)DAT_1826707a8;
  lVar29 = *(longlong *)(lVar7 - ((ulonglong)uVar19 ^ 0x76cc0a6a)) << (((byte)uVar16 ^ 0xc6) & 0x3f)
  ;
  uVar35 = *(longlong *)(lVar7 + -0x660) + lVar29;
  *(longlong *)(lVar7 + -0xa18) = lVar29;
  *(ulonglong *)(lVar7 + -0x558) = uVar35;
  uVar27 = uVar8 & uVar18;
  DAT_1826707ac = uVar27;
  *(ulonglong *)(lVar7 + -0x4c8) =
       (CONCAT44(uVar27,uVar18) ^ 0x48cb6af60ab64eb1) <<
       ((byte)*(undefined8 *)(lVar7 - (uVar34 ^ 0xe90dcffd)) & 0x3f);
  uVar17 = DAT_182670a9c;
  puVar6 = (ulonglong *)
           (*(longlong *)(lVar7 + -0xa58) + (CONCAT44(uVar8,uVar8) ^ 0xe90dc5e5e90dc5e0) * 8);
  *(ulonglong **)(lVar7 + -0x7b8) = puVar6;
  *(ulonglong *)(lVar7 + -0x400) = *(longlong *)(lVar7 + -0x420) + uVar35;
  *puVar6 = CONCAT44(uVar17,uVar17) ^ uVar35;
  *(longlong *)(lVar7 + -0xc18) = *(longlong *)(lVar7 + -0x9c8) + -0x1ee38781f829663c;
  uVar32 = DAT_1826707e0 << 0x10 | DAT_1826707e0 >> 0x10;
  DAT_1826707ec = uVar32;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar8 ^ 0xe90dc6b5)) =
       (CONCAT44(uVar18,uVar18) ^ 0x816bc010816bc31) +
       *(longlong *)(((ulonglong)uVar27 ^ 0x8048431) + lVar7);
  uVar34 = *(ulonglong *)(lVar7 + -0x420);
  uVar35 = *(ulonglong *)(lVar7 + -0x660);
  *pbVar1 = **(byte **)(lVar7 + -0x350);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar15 ^ 0x200045b5)) = uVar34 ^ uVar35;
  *puVar2 = (ulonglong)*pbVar1;
  *(ulonglong *)(lVar7 + -0x4f8) =
       (CONCAT44(uVar32,uVar15) ^ 0x4c2d200020004c1c) + *(longlong *)(lVar7 + 0x30);
  uVar34 = (ulonglong)DAT_1826707bc;
  *(uint *)(lVar7 + -0x398) =
       *(int *)(lVar7 - ((ulonglong)uVar32 ^ 0x4c2d2814)) - *(uint *)(lVar7 + -0x280);
  bVar24 = **(byte **)(lVar7 - (uVar34 ^ 0x84488fa));
  *pbVar1 = bVar24;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar32 ^ 0x4c2d2ce0)) = (ulonglong)bVar24;
  uVar35 = *(longlong *)(lVar7 + -0xce0) << 8;
  *puVar5 = uVar35;
  uVar22 = (ulonglong)DAT_1826707f0;
  uVar34 = (ulonglong)DAT_1826707e0;
  lVar29 = *(longlong *)(lVar7 + 0x30);
  *puVar4 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707f0 ^ 0x5e519020)) | uVar35;
  puVar28 = (undefined1 *)(lVar29 + 0x32);
  *(undefined1 **)(lVar7 + -0x350) = puVar28;
  *(undefined1 *)(lVar7 - (uVar34 ^ 0x20004ae4)) = *puVar28;
  bVar24 = *pbVar1;
  *puVar23 = (ulonglong)bVar24;
  uVar34 = (ulonglong)bVar24 << (((byte)uVar12 ^ 0x4e) & 0x3f);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar34;
  uVar34 = uVar34 | *puVar4;
  *(ulonglong *)(lVar7 + -0xf0) = uVar34;
  *(ulonglong *)(lVar7 + -0x658) =
       (CONCAT44(uVar31,uVar9) ^ 0xf9ee56be4335be0a) +
       (CONCAT44(uVar18,uVar27) ^ 0xf04ce9056a4c9038);
  pbVar21 = (byte *)(*(longlong *)((uVar36 ^ 0xe90dc5d5) + lVar7) + 0x33);
  *(byte **)(lVar7 + -0x4f8) = pbVar21;
  *pbVar1 = *pbVar21;
  uVar22 = (ulonglong)*(byte *)(lVar7 - (uVar22 ^ 0x5e5192d1));
  bVar24 = (byte)DAT_1826707d4;
  *(ulonglong *)(lVar7 + -0x630) = uVar22;
  lVar29 = DAT_1826707a0;
  uVar22 = uVar22 << ((bVar24 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar7 + -0x118) = uVar22;
  uVar18 = DAT_1826707e0;
  uVar34 = *(ulonglong *)(lVar7 - (uVar33 ^ 0x442d1ee6)) | uVar34;
  uVar35 = CONCAT44(DAT_1826707c4,DAT_1826707e0);
  *(ulonglong *)(lVar7 + -0x7d8) = uVar34;
  pbVar21 = (byte *)((uVar35 ^ 0x8448c0220004c19) + *(longlong *)(lVar7 + 0x30));
  *(byte **)(lVar29 + -0x350) = pbVar21;
  lVar30 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (CONCAT44(uVar10,uVar19) ^ 0xfd320f5fc78de91) >>
       ((byte)*(undefined8 *)(lVar29 + -0x630) & 0x3f);
  *pbVar1 = *pbVar21;
  bVar24 = *pbVar1;
  *(uint *)(lVar30 + -0xc34) = (DAT_1826707d8 ^ 0x857a70e9) + (uVar9 ^ 0x747cc694);
  *(ulonglong *)(lVar30 + -0x588) = (ulonglong)bVar24;
  *(ulonglong *)(lVar30 + -0x5c0) = CONCAT44(uVar8,uVar14) ^ 0xa2759f1622975d9a | uVar22;
  lVar29 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_1826707d4;
  uVar35 = (ulonglong)bVar24 << (((byte)uVar9 ^ 0x42) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar35;
  *(ulonglong *)(lVar29 + -0x4c8) = uVar35 | uVar34;
  uVar9 = DAT_1826707bc;
  uVar34 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar29 + -0xa18) =
       (CONCAT44(uVar14,uVar18) ^ 0xd138f8c219870da3) -
       (CONCAT44(uVar31,DAT_1826707bc) ^ 0xb8f99e08d99f224d);
  uVar35 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar29 + -0x4f8) =
       (CONCAT44(uVar10,DAT_1826707f4) ^ 0x5fd9d2603a763b38) + *(longlong *)(lVar29 + 0x30);
  uVar18 = DAT_1826707c8;
  *(undefined1 *)(lVar29 - (uVar35 ^ 0x3a763dc4)) =
       **(undefined1 **)(lVar29 - (uVar34 ^ 0x22e26eab));
  uVar34 = (ulonglong)*(byte *)(lVar29 - (uVar22 ^ 0x8448acb));
  *(ulonglong *)(lVar29 + -0x400) = uVar34;
  uVar34 = uVar34 << 0x28;
  *(ulonglong *)(lVar29 + -0x9c8) = uVar34;
  *(ulonglong *)(lVar29 + -0xc18) = *(ulonglong *)(lVar29 + -0x4c8) | uVar34;
  *(ulonglong *)(lVar29 - ((ulonglong)uVar18 ^ 0x4c2d2350)) =
       (CONCAT44(uVar8,uVar32) ^ 0xe90dc5e54c2d2036) + *(longlong *)(lVar29 + 0x30);
  *(undefined1 *)(lVar29 - ((ulonglong)uVar27 ^ 0x80482c8)) = **(undefined1 **)(lVar29 + -0x350);
  bVar24 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar29 + -0x660) = (ulonglong)*pbVar1;
  lVar30 = *(longlong *)(lVar29 - (uVar22 ^ 0x8448a62)) << ((bVar24 ^ 0x36) & 0x3f);
  *(longlong *)(lVar29 + -0x420) = lVar30;
  uVar10 = DAT_1826707c4;
  *puVar3 = *(longlong *)(lVar29 + -0xc18) + lVar30;
  *(ulonglong *)(lVar29 + -0xce0) =
       (CONCAT44(uVar12,uVar10) ^ 0x39629bd7729efa24) +
       (CONCAT44(uVar11,uVar12) ^ 0xb22e78536b7eb564);
  puVar28 = (undefined1 *)(*(longlong *)(lVar29 + 0x30) + 0x37);
  *(undefined1 **)(lVar29 + -0x4f8) = puVar28;
  *(undefined1 *)(lVar29 - ((ulonglong)uVar14 ^ 0x16f23cd3)) = *puVar28;
  *puVar2 = (ulonglong)*pbVar1;
  uVar34 = (ulonglong)*pbVar1 << 0x38;
  *puVar5 = (CONCAT44(uVar9,uVar8) ^ 0x546abefac7681bc9) >> (((byte)uVar18 ^ 4) & 0x3f);
  *puVar23 = uVar34;
  uVar8 = DAT_1826707f0;
  *puVar4 = uVar34 + *puVar3;
  *(uint *)(lVar7 + -0x280) = DAT_1826707e0 ^ 0x82c4c71c | uVar8 ^ 0x2e668099;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar25;
  return;
}



############ FUN_ 180d010a0 size=5524 ############

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

void FUN_180d010a0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte bVar23;
  byte bVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  uint uVar52;
  ulonglong uVar53;
  uint uVar54;
  byte local_res20;
  byte local_138;
  byte local_130;
  byte local_118;
  byte local_f0;
  byte local_d8;
  ulonglong uVar22;
  
  uVar6 = DAT_1826707d8;
  uVar10 = DAT_1826707cc;
  uVar9 = DAT_1826707c4;
  uVar8 = DAT_1826707c0;
  uVar7 = DAT_1826707bc;
  lVar4 = DAT_1826707a0;
  uVar3 = DAT_1826707e8;
  if ((DAT_1826707dc & 1) == 0) {
    uVar3 = DAT_1826707dc;
  }
  uVar18 = DAT_1826707d8 & DAT_1826707e4;
  uVar22 = (ulonglong)uVar18;
  uVar47 = (ulonglong)DAT_1826707c4;
  uVar27 = (ulonglong)DAT_1826707c0;
  uVar52 = DAT_1826707bc | DAT_1826707c0;
  uVar40 = DAT_1826707c4 | DAT_1826707cc;
  uVar54 = DAT_1826707ac << 0x10 | DAT_1826707ac >> 0x10;
  uVar19 = *(uint *)(&DAT_18260f750 + (uVar22 ^ 0xe9000604) + (longlong)DAT_182670bdc) ^
           DAT_1826707e4;
  uVar20 = *(uint *)(&DAT_18260f760 + DAT_182670bdc) ^ DAT_1826707d8;
  uVar35 = CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar32 = CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar30 = CONCAT44(DAT_182670a18,DAT_182670a18);
  uVar39 = (ulonglong)DAT_1826707cc;
  DAT_1826707b4 = uVar40;
  DAT_1826707c8 = uVar18;
  DAT_1826707d4 = uVar54;
  DAT_1826707e0 = uVar52;
  DAT_1826707ec = uVar3;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar40 ^ 0xdf7efb31)) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0xde3ce271)) ^
       *(ulonglong *)(DAT_1826707a0 + -0x658) ^ uVar30 ^ uVar32 ^ uVar35;
  bVar26 = (byte)uVar6;
  uVar35 = *(ulonglong *)(DAT_1826707a0 + -0x6f0) ^ uVar35;
  uVar44 = CONCAT44(DAT_182670918,DAT_182670918);
  *(ulonglong *)(lVar4 + -0xf0) = uVar35 >> ((bVar26 ^ 8) & 0x3f) ^ uVar44;
  uVar6 = DAT_1826707b8;
  uVar29 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar4 + -0xce0) = (ulonglong)uVar8 << 0x38 ^ 0xf00000000000000;
  uVar21 = uVar6 << 0x10 | uVar6 >> 0x10;
  uVar36 = (ulonglong)uVar21;
  DAT_1826707a8 = uVar21;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x856b693)) = uVar35 << (((byte)uVar6 ^ 0x5a) & 0x3f) ^ uVar32;
  uVar37 = CONCAT44(DAT_182670b04,DAT_182670b04);
  uVar34 = (ulonglong)uVar52;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xbfffa344)) =
       (uVar44 ^ *(ulonglong *)(lVar4 + -0xf0) | uVar32 ^ *(ulonglong *)(lVar4 + -0x9c8)) ^ uVar37;
  uVar16 = DAT_182670a94;
  uVar28 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar4 + -0x1b8) =
       (*(ulonglong *)(lVar4 + -0xbb0) ^ uVar30) -
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0xbfffbb45)) ^ uVar37) ^ uVar28;
  uVar15 = DAT_1826708ec;
  uVar14 = DAT_1826707f0;
  uVar12 = DAT_1826707dc;
  lVar4 = DAT_1826707a0;
  uVar45 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  uVar48 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar32 = (ulonglong)uVar54;
  uVar43 = (ulonglong)DAT_1826707f0;
  uVar25 = (ulonglong)DAT_1826707dc;
  uVar41 = *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xbd5c420a)) ^ CONCAT44(uVar16,uVar16) ^
           *(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar48;
  bVar23 = (byte)DAT_1826707dc;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar41 ^ uVar45;
  uVar30 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x420) = uVar41 >> ((bVar23 ^ 0x2f) & 0x3f) ^ uVar30;
  uVar15 = DAT_1826708b8;
  uVar11 = DAT_1826707d0;
  uVar35 = (ulonglong)DAT_1826707d0;
  DAT_1826707b0 = uVar14 * DAT_1826707d0;
  uVar53 = (ulonglong)DAT_1826707b0;
  bVar23 = (byte)DAT_1826707b0;
  uVar41 = uVar41 << ((bVar23 ^ 7) & 0x3f);
  uVar50 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar4 + -0x588) = uVar41 ^ uVar50;
  lVar4 = DAT_1826707a0;
  uVar46 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0xbcbd9ba4)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0xa9f7a060)) ^ uVar30 | uVar41) ^ uVar46
  ;
  uVar13 = DAT_1826707e8;
  uVar33 = CONCAT44(DAT_182670830,DAT_182670830);
  *(ulonglong *)(lVar4 + -0x660) =
       (uVar48 ^ *(ulonglong *)(lVar4 + -0xb70)) -
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ac ^ 0x497abb4c)) ^ uVar46) ^ uVar33;
  *(ulonglong *)(lVar4 + -0x220) = 0x66bee8c180a60b38 >> (((byte)uVar13 ^ 0xaf) & 0x3f);
  uVar41 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar30 = *(ulonglong *)(lVar4 + -0x1b8) ^ uVar41 ^ uVar46 ^ uVar28 ^
           *(ulonglong *)(lVar4 + -0x610);
  *(ulonglong *)(lVar4 + -0x890) = uVar30;
  uVar46 = (ulonglong)DAT_182670900;
  uVar51 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar4 + -0x118) = CONCAT44(uVar14,uVar7) ^ 0x26bdff73f78742a3;
  local_130 = (byte)(DAT_1826707ac >> 0x10);
  uVar48 = (uVar30 ^ uVar41) >> ((local_130 ^ 0x74) & 0x3f);
  uVar30 = (ulonglong)DAT_1826707f4;
  puVar1 = (ulonglong *)(lVar4 + -0xd38);
  *puVar1 = uVar48 ^ CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar16 = DAT_182670a98;
  uVar30 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0x68ce5aa)) ^ uVar41) <<
           (((byte)DAT_1826707ac ^ 0x6e) & 0x3f);
  *(ulonglong *)(lVar4 + -0x658) = uVar30 ^ uVar51;
  uVar15 = DAT_182670844;
  uVar42 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0xce0) = (uVar30 | uVar48) ^ uVar42;
  uVar16 = DAT_182670a14;
  uVar41 = CONCAT44(uVar15,uVar15);
  uVar30 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (*(ulonglong *)(lVar4 - (uVar39 ^ 0x156a75f9)) ^ uVar28) -
       (uVar41 ^ *(ulonglong *)(lVar4 + -0xac0)) ^ uVar30;
  uVar15 = DAT_182670878;
  lVar5 = DAT_1826707a0;
  uVar48 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x9c8) =
       (*(ulonglong *)(lVar4 - (uVar53 ^ 0xa51abbf0)) ^ uVar30) -
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0xed3a0a6c)) ^ uVar42) ^ uVar48;
  uVar38 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xbf5b08a6)) =
       (CONCAT44(DAT_182670a48,DAT_182670a48) ^ *(ulonglong *)(lVar4 + -0x400)) +
       (CONCAT44(uVar3,uVar11) ^ 0x822158679645d57d) ^ uVar38;
  uVar31 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar30 = *(ulonglong *)(lVar4 - (uVar36 ^ 0x856b3bb));
  *(undefined8 *)(lVar4 + -0x4c8) = 0x7a7aeb7000000000;
  uVar15 = DAT_182670abc;
  *(ulonglong *)(lVar4 + -0xbb0) =
       (uVar30 ^ uVar42) - (uVar38 ^ *(ulonglong *)(lVar4 + -0xf0)) ^ uVar31;
  uVar42 = CONCAT44(uVar15,uVar15);
  uVar30 = CONCAT44(uVar8,DAT_1826707f4);
  uVar28 = uVar42 ^ *(ulonglong *)(lVar5 + -0x660) ^ uVar33 ^ uVar37 ^
           *(ulonglong *)(lVar5 + -0x6b8);
  *(ulonglong *)(lVar5 + -0x7d8) = uVar28;
  *(ulonglong *)(lVar5 + -0x420) = (uVar28 ^ uVar42) - (uVar30 ^ 0x9b6317ee8f9e7cbe);
  uVar15 = DAT_18267093c;
  uVar30 = (uVar42 ^ uVar28) >> ((bVar26 ^ 0x2c) & 0x3f);
  *(ulonglong *)(lVar5 + -0x588) = uVar30 ^ CONCAT44(DAT_182670860,DAT_182670860);
  lVar4 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar15,uVar15);
  uVar28 = (uVar42 ^ uVar28) << ((bVar26 ^ 0xc) & 0x3f);
  bVar24 = (byte)DAT_1826707e8;
  *(ulonglong *)(DAT_1826707a0 + -0xb70) = uVar28 ^ uVar37;
  uVar15 = DAT_18267081c;
  *(ulonglong *)(lVar4 + -0x220) =
       (CONCAT44(uVar21,uVar3) ^ 0x5edeea76973180bb) << ((bVar24 ^ 0xbd) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar49 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x156a7251)) = (uVar28 | uVar30) ^ uVar49;
  uVar30 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar4 + -0x540) =
       *(uint *)(lVar4 + -0x43c) >> ((byte)*(undefined4 *)(lVar4 + -0x2d4) & 0x1f);
  uVar16 = DAT_182670908;
  uVar42 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar30 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0x72a686da)) ^ uVar33) -
           (uVar44 ^ *(ulonglong *)(lVar4 + -0x5c0));
  *(ulonglong *)(lVar4 + -0x118) = uVar30 ^ uVar42;
  uVar17 = DAT_182670a3c;
  uVar15 = DAT_1826707f8;
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x890) =
       uVar30 - (*(ulonglong *)(lVar4 - (uVar34 ^ 0xbfffbbed)) ^ uVar49) ^ uVar28;
  uVar30 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - (uVar53 ^ 0xa51ab038)) =
       (CONCAT44(uVar12,uVar3) ^ 0x43dec1e943dec1e0) -
       (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar4 + -0x68)) ^ uVar30;
  uVar33 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar4 - (uVar47 ^ 0xde3cef99)) =
       (uVar49 ^ *(ulonglong *)(lVar4 + -0x610)) + (*puVar1 ^ uVar30) ^ uVar33;
  *(ulonglong *)(lVar4 - (uVar43 ^ 0xa9f7a5f8)) =
       uVar49 ^ *(ulonglong *)(lVar4 + -0x610) ^ 0x9995cbbe91aea34b;
  lVar4 = DAT_1826707a0;
  uVar47 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xbd5c4f8a)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x156a7219)) ^ uVar47 ^ uVar33 ^ uVar48 ^
       *(ulonglong *)(DAT_1826707a0 + -0x9c8);
  uVar39 = (*(ulonglong *)(lVar4 + -0x6f0) ^ uVar47) >> (((byte)uVar6 ^ 0x76) & 0x3f);
  uVar30 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *(ulonglong *)(lVar4 + -0xce0) = uVar39 ^ CONCAT44(DAT_182670828,DAT_182670828);
  uVar16 = DAT_1826709e8;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (*(ulonglong *)(lVar4 - (uVar43 ^ 0xa9f7a2b0)) ^ uVar47) << 0x20 ^ uVar30;
  uVar11 = DAT_1826707f4;
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x6b8) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0xbfffb935)) ^ uVar30 | uVar39) ^ uVar33;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x68ceae2)) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ac ^ 0x497ab97c)) ^ 0xf5cb91566b7c3651;
  uVar15 = DAT_182670934;
  uVar6 = DAT_1826707e4;
  uVar47 = uVar28 ^ uVar31 ^ *(ulonglong *)(lVar5 + -0xbb0) ^ *(ulonglong *)(lVar5 + -0x890);
  uVar31 = CONCAT44(DAT_182670930,DAT_182670930);
  uVar30 = *(ulonglong *)(lVar5 - (uVar34 ^ 0xbfffb435));
  uVar39 = *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707e4 ^ 0xed3a0034));
  *(ulonglong *)(lVar5 + -0x588) = uVar47 ^ uVar51;
  *(ulonglong *)(lVar5 + -0x220) = (uVar30 ^ uVar48) - (uVar39 ^ uVar33) ^ uVar31;
  uVar17 = DAT_182670a64;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar46 = *(ulonglong *)(lVar5 - ((ulonglong)uVar40 ^ 0xdf7ef849)) >> 0x20 ^ uVar30 ^ uVar46;
  *(ulonglong *)(lVar5 + -0xb70) = uVar46;
  uVar48 = CONCAT44(uVar17,uVar17);
  local_res20 = (byte)uVar52;
  uVar47 = uVar47 << ((local_res20 ^ 0xdd) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar47 ^ uVar48;
  lVar4 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xed3a00ec)) =
       (uVar47 | uVar30 ^ uVar46) ^ uVar39;
  uVar15 = DAT_18267099c;
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar8,uVar7) ^ 0x91072aca973c8abd) >> (((byte)uVar3 ^ 6) & 0x3f);
  uVar8 = DAT_1826707e8;
  uVar46 = CONCAT44(uVar15,uVar15);
  uVar30 = CONCAT44(DAT_1826707e8,uVar7);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0xbc21332e)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x890)) - (uVar39 ^ *(ulonglong *)(lVar4 + -0x660)) ^
       uVar46;
  uVar15 = DAT_18267082c;
  *(ulonglong *)(lVar4 + -0x610) =
       (uVar30 ^ 0xbc746495a21a1576) >> (((byte)uVar16 ^ *(byte *)(lVar4 + -0x6b8)) & 0x3f);
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar47 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  uVar39 = uVar30 ^ uVar39 ^ uVar31 ^ *(ulonglong *)(lVar4 + -0x660) ^
           *(ulonglong *)(lVar4 + -0x220);
  *(ulonglong *)(lVar4 + -0x1b8) = uVar39;
  uVar39 = uVar39 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x658) = uVar39 >> (((byte)uVar6 ^ 0xb6) & 0x3f) ^ uVar47;
  uVar30 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar4 + -0x6f0) = uVar39 << ((bVar23 ^ 6) & 0x3f) ^ uVar30;
  *(undefined4 *)(lVar4 - (uVar43 ^ 0xa9f7a7d8)) = 6;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xbd5c459a)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x68ceb62)) ^ uVar47 |
       uVar30 ^ *(ulonglong *)(lVar4 + -0x6f0)) ^ uVar37;
  lVar5 = DAT_1826707a0;
  uVar47 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x5c0);
  uVar39 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0xe900042c)) ^ uVar31) -
           (uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0)) ^ uVar47;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar39;
  uVar16 = DAT_1826709f4;
  *(ulonglong *)(lVar5 + -0x420) = (uVar48 ^ *puVar2) + 0x6069808dd4ae03e5;
  uVar28 = CONCAT44(uVar16,uVar16);
  uVar32 = *(ulonglong *)(lVar5 - (uVar35 ^ 0xbcbd908c)) ^ uVar28 ^ uVar46 ^ uVar33 ^
           *(ulonglong *)(lVar5 + -0x6b8);
  uVar43 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar5 + -0x7d8) = uVar32;
  uVar15 = DAT_182670a44;
  lVar4 = DAT_1826707a0;
  uVar30 = (*(ulonglong *)(lVar5 - (uVar34 ^ 0xbfffba25)) ^ uVar28) >> ((bVar26 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar5 + -0x9c8) = uVar30 ^ uVar43;
  uVar28 = (uVar28 ^ uVar32) << (((byte)uVar7 ^ 0xd6) & 0x3f);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar28 ^ uVar41;
  uVar28 = uVar28 | uVar30;
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar30 = uVar28 ^ uVar32;
  *(ulonglong *)(lVar4 + -0x588) = uVar30;
  uVar15 = DAT_182670990;
  *(ulonglong *)(lVar4 + -0xb70) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x72a68532)) ^ uVar32) >>
       (((byte)uVar16 ^ *(byte *)(lVar4 + -0x7d8)) & 0x3f);
  uVar34 = CONCAT44(uVar15,uVar15);
  bVar23 = (byte)DAT_1826707e4;
  uVar43 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar4 + -0x118) = (uVar46 ^ *puVar1) - uVar28 ^ uVar34;
  uVar15 = DAT_182670848;
  uVar30 = uVar43 ^ uVar32 ^ uVar47 ^ uVar39 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x890) = uVar30;
  uVar39 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xe900001c)) =
       (uVar30 ^ uVar43) >> ((bVar23 ^ 0xa2) & 0x3f) ^ uVar39;
  uVar30 = CONCAT44(DAT_182670980,DAT_182670980);
  local_138 = (byte)uVar10;
  local_f0 = (byte)uVar40;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xe900006c)) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0x3e16b4b1)) ^ uVar43) << ((local_138 ^ 0x53) & 0x3f) ^
       uVar30;
  *(int *)(lVar4 + -0x814) = *(int *)(lVar4 + -0x3d4) << (((byte)uVar18 ^ 8) & 0x1f);
  uVar15 = DAT_182670850;
  uVar46 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar30 = *(ulonglong *)(lVar4 - (uVar29 ^ 0xbf5b0e36)) ^ uVar30 |
           uVar39 ^ *(ulonglong *)(lVar4 + -0x610);
  *(ulonglong *)(lVar4 + -0x1b8) = uVar30 ^ uVar46;
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar39 = (uVar47 ^ *(ulonglong *)(lVar4 + -0x4c8)) - uVar30 ^ uVar32;
  uVar28 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar4 + -0x6f0) = uVar39;
  uVar15 = DAT_182670888;
  lVar5 = DAT_1826707a0;
  uVar43 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar47 = uVar28 ^ uVar34 ^ *(ulonglong *)(lVar4 + -0x118) ^ uVar37 ^
           *(ulonglong *)(lVar4 + -0xce0);
  *(ulonglong *)(lVar4 + -0x658) = uVar47;
  uVar30 = (uVar47 ^ uVar28) >> ((local_f0 ^ 0xcd) & 0x3f);
  uVar47 = (uVar28 ^ uVar47) << 0x34;
  *(ulonglong *)(lVar5 + -0x220) = uVar30 ^ uVar43;
  uVar16 = DAT_182670a60;
  *(ulonglong *)(lVar5 + -0x5c0) = uVar47 ^ CONCAT44(uVar15,uVar15);
  uVar43 = CONCAT44(uVar16,uVar16);
  uVar47 = uVar47 | uVar30;
  uVar30 = uVar47 ^ uVar43;
  *(ulonglong *)(lVar5 + -0x420) = uVar30;
  uVar16 = DAT_182670950;
  uVar3 = DAT_1826707e8;
  uVar28 = CONCAT44(DAT_182670978,DAT_182670978);
  *(ulonglong *)(lVar5 + -0x6b8) = (uVar34 ^ *(ulonglong *)(lVar5 + -0x118)) - uVar47 ^ uVar28;
  uVar15 = _DAT_1826708c8;
  uVar47 = CONCAT44(uVar16,uVar16);
  uVar30 = uVar47 ^ uVar43 ^ uVar32 ^ uVar39 ^ uVar30;
  *(ulonglong *)(lVar5 + -0x9c8) = uVar30;
  uVar39 = CONCAT44(uVar15,uVar15);
  uVar34 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar5 + -0xbb0) = (uVar30 ^ uVar47) >> (((byte)uVar3 ^ 0xa3) & 0x3f) ^ uVar39;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar53 ^ 0xa51abad8)) =
       (uVar47 ^ uVar30) << ((local_130 ^ 0x5d) & 0x3f) ^ uVar34;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xbf5b0326)) =
       *(ulonglong *)(lVar4 - (uVar36 ^ 0x856bb7b)) ^ uVar39 ^ uVar43 ^
       *(ulonglong *)(lVar4 + -0xbb0);
  lVar5 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  uVar39 = *(ulonglong *)(lVar4 - (uVar35 ^ 0xbcbd9604)) ^ uVar39 |
           uVar34 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar30 = *(ulonglong *)(DAT_1826707a0 + -0x6f0);
  *puVar1 = uVar39 ^ uVar29;
  uVar16 = _DAT_1826709e0;
  uVar35 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  uVar30 = (uVar32 ^ uVar30) -
           (CONCAT44(DAT_182670a1c,DAT_182670a1c) ^ *(ulonglong *)(lVar5 + -0x558));
  *(ulonglong *)(lVar5 + -0x588) = uVar30 ^ uVar35;
  uVar32 = CONCAT44(uVar54,DAT_1826707e4);
  *(ulonglong *)(lVar5 + -0x890) = uVar30 - uVar39 ^ uVar45;
  uVar32 = (uVar32 ^ 0x5d8a3db8705a2359) + (uVar41 ^ *(ulonglong *)(lVar5 + -0xac0));
  *(ulonglong *)(lVar5 + -0x610) = uVar32 ^ uVar42;
  uVar15 = DAT_18267084c;
  *(ulonglong *)(lVar5 + -0x660) = uVar39 - uVar32 ^ CONCAT44(uVar16,uVar16);
  uVar39 = CONCAT44(uVar15,uVar15);
  local_d8 = (byte)uVar9;
  uVar30 = *(ulonglong *)(lVar5 - (uVar22 ^ 0xe90007b4)) ^ uVar28 ^ uVar46 ^ uVar39 ^
           *(ulonglong *)(lVar5 + -0x6b8);
  *(ulonglong *)(lVar5 + -0x4c8) = uVar30;
  local_118 = (byte)uVar14;
  *(ulonglong *)(lVar5 + -0xce0) = (uVar30 ^ uVar39) >> ((local_d8 ^ 0xe0) & 0x3f) ^ uVar34;
  uVar30 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar5 + -0x658) = uVar32 >> ((local_118 ^ 0x51) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar30 ^ 0x68cef1a)) =
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0xbc213ade)) ^ uVar39) << 0x1f ^ uVar50;
  uVar3 = DAT_1826707dc;
  uVar32 = uVar34 ^ *(ulonglong *)(lVar5 + -0xce0) | uVar50 ^ *(ulonglong *)(lVar5 + -0x220);
  uVar39 = CONCAT44(DAT_182670958,DAT_182670958);
  DAT_1826707ac = DAT_1826707dc << 0x10 | DAT_1826707dc >> 0x10;
  uVar22 = (ulonglong)DAT_1826707ac;
  uVar30 = (ulonglong)DAT_1826707ac;
  uVar47 = CONCAT44(uVar12,DAT_1826707ac);
  *(ulonglong *)(lVar5 + -0x5c0) = uVar32 ^ uVar39;
  uVar16 = DAT_182670ac8;
  uVar15 = DAT_182670954;
  *(ulonglong *)(lVar5 + -0x118) =
       *(ulonglong *)(lVar5 - (uVar30 ^ 0x3e16b0c1)) ^ uVar34 | uVar47 ^ 0x633b26c450221974;
  uVar30 = (uVar28 ^ *(ulonglong *)(lVar5 + -0x6b8)) - (uVar38 ^ *(ulonglong *)(lVar5 + -0xf0));
  *(ulonglong *)(lVar5 + -0x9c8) = uVar30 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x420) = (uVar47 ^ 0x7a7edb4c39a36162) + 0xb6c1bd3eeb6c9a0c;
  uVar16 = DAT_182670a20;
  *(ulonglong *)(lVar5 + -0xb70) =
       uVar30 - (*(ulonglong *)(lVar5 - (uVar22 ^ 0x3e16b9e1)) ^ uVar39) ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0xbb0) = uVar32 << (((byte)(uVar3 >> 0x10) ^ 0x1c) & 0x3f);
  uVar15 = DAT_18267088c;
  lVar4 = DAT_1826707a0;
  uVar39 = -(*(ulonglong *)(lVar5 - (uVar22 ^ 0x3e16b819)) ^ CONCAT44(DAT_182670a38,DAT_182670a38))
           - 9;
  uVar30 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar39 ^ CONCAT44(uVar16,uVar16);
  uVar39 = uVar39 + uVar32 ^ uVar30;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar39;
  *(ulonglong *)(lVar4 + -0x588) = *(ulonglong *)(*(ulonglong *)(lVar4 + -0xa58) ^ uVar29) ^ uVar35;
  *puVar1 = *(ulonglong *)(lVar4 - (uVar25 ^ 0xbc213686)) ^ CONCAT44(uVar15,uVar15) ^ uVar39 ^
            uVar45 ^ uVar30;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar19;
  return;
}



############ FUN_ 180c75960 size=4266 ############

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

void FUN_180c75960(void)

{
  ulonglong *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  ulonglong *puVar5;
  uint *puVar6;
  undefined8 uVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  uint *puVar18;
  byte bVar19;
  byte bVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint *puVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  longlong lVar28;
  ulonglong uVar29;
  uint uVar30;
  longlong lVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  uint uVar45;
  uint uVar46;
  ulonglong uVar47;
  uint uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  
  uVar45 = DAT_182670894;
  uVar38 = DAT_182670868;
  uVar41 = DAT_1826707e4;
  uVar9 = DAT_1826707d4;
  uVar23 = DAT_1826707cc;
  uVar16 = DAT_1826707b8;
  lVar8 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707e4;
  uVar21 = DAT_1826707ac & 7;
  uVar14 = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  DAT_1826707e8 = DAT_1826707e0 | DAT_1826707bc;
  if (uVar21 < 4) {
    if (uVar21 < 2) {
      DAT_1826707c0 = DAT_1826707d8;
      if (uVar21 == 0) {
        DAT_1826707c0 = DAT_1826707ac;
      }
    }
    else {
      DAT_1826707c0 = DAT_1826707e4;
      if (uVar21 < 3) {
        DAT_1826707c0 = DAT_1826707b0;
      }
    }
  }
  else if (uVar21 < 6) {
    DAT_1826707c0 = DAT_1826707f0;
    if (uVar21 < 5) {
      DAT_1826707c0 = DAT_1826707cc;
    }
  }
  else {
    DAT_1826707c0 = DAT_1826707c8;
    if (uVar21 < 7) {
      DAT_1826707c0 = DAT_1826707dc;
    }
  }
  uVar39 = (ulonglong)DAT_1826707b8;
  uVar30 = DAT_1826707d0 | DAT_1826707b4;
  DAT_1826707a8 = DAT_1826707b8 << 0x10 | DAT_1826707b8 >> 0x10;
  uVar44 = *(uint *)(&DAT_18260f758 + DAT_182670d20) ^ DAT_1826707a8;
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670d20) ^ DAT_1826707b8;
  bVar19 = (byte)DAT_1826707d0 ^ 0x38;
  uVar26 = (ulonglong)DAT_1826707cc;
  uVar21 = ~DAT_182670808;
  uVar32 = *(uint *)(DAT_1826707a0 + -0x42c) ^ DAT_1826708b4;
  uVar48 = (int)(*(uint *)(DAT_1826707a0 + -0x14) ^ DAT_182670998) >> ((byte)DAT_1826707b4 & 0x1f);
  uVar49 = uVar48 ^ DAT_182670894;
  DAT_1826707c4 = uVar30;
  DAT_1826707ec = uVar14;
  *(uint *)(DAT_1826707a0 + -0xa34) = uVar49;
  uVar45 = uVar21 ^ uVar49 ^ uVar45;
  *(uint *)(lVar8 + -0x8e0) = uVar45;
  uVar45 = uVar45 ^ DAT_182670808;
  *(uint *)(lVar8 + -0x3d4) =
       (*(uint *)(lVar8 - ((ulonglong)uVar30 ^ 0xfffff50f)) ^ DAT_182670864) - uVar32 ^
       DAT_1826708a8;
  uVar10 = DAT_18267096c;
  uVar21 = DAT_18267086c;
  uVar49 = (int)(*(uint *)(lVar8 - ((ulonglong)uVar16 ^ 0xffb3dc71)) ^ DAT_1826708a8) >>
           (bVar19 & 0x1f);
  uVar37 = uVar49 ^ DAT_18267086c;
  *(uint *)(lVar8 + -0x398) = uVar37;
  uVar22 = DAT_182670950;
  *(uint *)(lVar8 + -0xb54) = uVar49 & uVar45 ^ uVar10;
  *(uint *)(lVar8 + -0xc0c) = ~DAT_182670aec ^ uVar21 ^ uVar37;
  uVar21 = DAT_1826707b0;
  uVar17 = (ulonglong)DAT_1826707b0;
  uVar48 = *(uint *)(lVar8 - (uVar26 ^ 0xcc49c397)) ^ DAT_182670aec | uVar48;
  uVar26 = (ulonglong)DAT_1826707b0;
  *(uint *)(lVar8 + -0xc34) = uVar48 ^ uVar22;
  *(uint *)(lVar8 + -0x598) =
       (*(uint *)(lVar8 - (uVar26 ^ 0x7b3c2687)) ^ DAT_182670864) & uVar48 ^ uVar38;
  uVar37 = DAT_182670b08;
  uVar24 = DAT_182670960;
  uVar48 = DAT_1826708c4;
  uVar49 = DAT_1826707c8;
  uVar45 = DAT_1826707ac;
  uVar50 = (ulonglong)DAT_1826707c8;
  uVar26 = (ulonglong)DAT_1826707ac;
  uVar27 = (ulonglong)DAT_182670960;
  uVar33 = (ulonglong)DAT_1826708c4;
  *(uint *)(lVar8 - (uVar50 ^ 0xf523cb3d)) =
       (*(uint *)(lVar8 - ((ulonglong)DAT_1826707f4 ^ 0xfffc25ab)) ^ uVar10) & uVar32 ^
       DAT_182670b08;
  *(uint *)(lVar8 - (uVar26 ^ 0xf523ce41)) =
       (uVar37 ^ *(uint *)(lVar8 + -0x43c) | uVar38 ^ *(uint *)(lVar8 + -0x598)) ^ DAT_182670900;
  uVar37 = DAT_18267083c;
  puVar6 = (uint *)(lVar8 + -0xc04);
  uVar32 = (*(uint *)(lVar8 - ((ulonglong)uVar16 ^ 0xffb3d391)) ^ uVar22) &
           (*puVar6 ^ DAT_18267083c);
  puVar25 = (uint *)(lVar8 - ((ulonglong)DAT_1826707d8 ^ 0xf88198d));
  *(uint *)(lVar8 + -0x68c) = uVar32 ^ uVar24;
  uVar11 = DAT_1826709d8;
  uVar22 = (*puVar25 ^ uVar10) & (DAT_1826707dc ^ 0xbcfc029c) ^ DAT_182670930;
  *(uint *)(lVar8 + -0x7e4) = uVar22;
  uVar38 = DAT_182670954;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(uint *)(lVar8 + -0xcec) = (uVar22 ^ DAT_182670930 | uVar32) ^ DAT_182670954;
  uVar26 = (ulonglong)(int)(*(uint *)(lVar8 - (uVar29 ^ 0x54c7e29a)) ^ uVar38);
  uVar42 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(ulonglong *)(lVar8 + -0x548) = uVar26 ^ uVar36;
  uVar22 = DAT_1826707f0;
  puVar40 = (ulonglong *)(((ulonglong)uVar48 ^ *(ulonglong *)(lVar8 + -0x908)) + 8 + uVar26 * 0x10);
  uVar26 = CONCAT44(DAT_1826707f0,uVar14);
  *(ulonglong *)(lVar8 + -0x78) = (ulonglong)puVar40 ^ uVar42;
  uVar38 = DAT_1826707d4;
  puVar52 = (ulonglong *)(lVar8 + -0x588);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = (uVar26 ^ 0x9ce5227b4696a55a) >> ((byte)*puVar52 & 0x3f);
  uVar51 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0x468e3206)) =
       CONCAT44(DAT_182670a40,DAT_182670a40) ^ *puVar40 ^ uVar51;
  lVar8 = DAT_1826707a0;
  puVar40 = (ulonglong *)(DAT_1826707a0 + -0x3b0);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar38 ^ 0x645007f7)) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0xfefe309e)) ^
       CONCAT44(uVar37,uVar37) ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0);
  uVar38 = DAT_1826707e0;
  puVar1 = (ulonglong *)(lVar8 + -0x6b8);
  uVar26 = *puVar1;
  uVar42 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *puVar40 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar30 ^ 0xfffffddf)) ^ uVar51) >>
             (((byte)uVar41 ^ 0x75) & 0x3f);
  uVar32 = DAT_1826709d0;
  lVar8 = DAT_1826707a0;
  uVar47 = (CONCAT44(uVar38,uVar45) ^ 0xbcfc0298f523cf01) - (uVar51 ^ uVar26);
  uVar43 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar47 ^ uVar42;
  uVar37 = DAT_1826707dc;
  uVar47 = uVar47 | uVar51 ^ uVar26;
  uVar51 = (ulonglong)DAT_1826707dc;
  *puVar52 = uVar47 ^ uVar43;
  *(ulonglong *)(lVar8 + -0xce0) =
       (longlong)uVar47 >> (((byte)uVar23 ^ 0xa4) & 0x3f) ^ CONCAT44(uVar32,uVar32);
  uVar10 = DAT_182670974;
  uVar38 = uVar32 ^ *(uint *)(lVar8 + -0xce0) ^ DAT_182670974;
  puVar2 = (uint *)(lVar8 + -0x814);
  uVar26 = *(ulonglong *)(lVar8 + -0x908);
  *(ulonglong *)(lVar8 + -0x908) = CONCAT44(uVar41,uVar23) ^ 0xf6cadb4b5dfc5553;
  *(uint *)(lVar8 + -0x540) = uVar38;
  uVar12 = DAT_182670a30;
  uVar27 = (uVar33 ^ uVar26) + 4 + (uVar36 ^ *(ulonglong *)(lVar8 + -0x548)) * 0x10 ^ uVar27;
  uVar38 = DAT_1826707e4 ^ 0x54c7ee76;
  *(ulonglong *)(lVar8 + -0xa48) = uVar27;
  uVar23 = *(uint *)(uVar24 ^ uVar27) ^ uVar12 ^ DAT_182670a40;
  *puVar2 = uVar23;
  *(uint *)(lVar8 - ((ulonglong)DAT_1826707d8 ^ 0xf881b35)) =
       uVar38 - (uVar23 ^ uVar12) ^ DAT_1826709f0;
  uVar45 = DAT_1826707c0;
  uVar34 = (*(uint *)(lVar8 + -0x9ec) ^ DAT_1826709f0 | *puVar2 ^ uVar12) ^ DAT_182670854;
  *(uint *)(lVar8 + -0x2d4) = uVar34;
  uVar13 = _DAT_182670ad4;
  uVar48 = DAT_1826707f4;
  lVar28 = DAT_1826707a0;
  uVar34 = uVar34 ^ DAT_182670854;
  puVar3 = (uint *)(lVar8 + -0x280);
  *(ulonglong *)(lVar8 + -0xbb0) =
       CONCAT44(uVar45,DAT_1826707e8) ^ CONCAT44(uVar37,uVar22) ^ 0x7b5c1f2dc134b72e;
  uVar34 = (int)uVar34 >> (((byte)DAT_1826707b0 ^ 0x68) & 0x1f);
  uVar35 = uVar34 ^ uVar13;
  *puVar3 = uVar35;
  uVar23 = *puVar2;
  *(uint *)(lVar8 + -0x14) =
       (*(uint *)(lVar8 - (uVar50 ^ 0xf523cd81)) ^ uVar13) & (*puVar2 ^ uVar12);
  lVar31 = DAT_1826707a0;
  uVar38 = *(uint *)(lVar8 + -0x540);
  *(uint *)(lVar28 + -0x3d4) = uVar38 ^ DAT_182670988 ^ uVar10 ^ DAT_1826707d0 ^ 0x4c5200d8;
  uVar22 = DAT_1826707c8 ^ 0xadc30fe;
  *(ulonglong *)(lVar28 + -0x220) =
       CONCAT44(uVar30,DAT_1826707bc) ^ 0xf0058c614c68fa4d |
       CONCAT44(uVar48,uVar45) ^ 0xa057961ce6ef7550;
  uVar46 = (uVar23 ^ uVar12) + uVar22 ^ DAT_182670a0c;
  *(uint *)(lVar28 + -0x8e0) = uVar46;
  *puVar40 = 0xffbff277befdbbdf;
  *(uint *)(lVar28 + -0x398) = uVar35 ^ DAT_182670ae0 ^ uVar13 ^ DAT_1826707ac ^ 0xadc30fe;
  uVar23 = (*(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0xcc49cc03)) ^ DAT_182670ae0 |
           uVar38 ^ uVar10) ^ DAT_18267094c;
  *(uint *)(lVar31 + -0xa34) = uVar23;
  uVar46 = uVar46 ^ DAT_182670a0c;
  *(uint *)(lVar31 + -0xc0c) = (*puVar2 ^ uVar12) & (uVar23 ^ DAT_18267094c) ^ DAT_1826708d0;
  uVar22 = DAT_1826707e0;
  uVar38 = DAT_1826707dc;
  *(uint *)(lVar31 - (uVar50 ^ 0xf523c5f1)) = uVar46 & uVar34 ^ DAT_182670884;
  uVar23 = DAT_1826707c8 + uVar38;
  DAT_1826707cc = uVar23;
  *(uint *)(lVar31 - ((ulonglong)uVar23 ^ 0xb21fd5b5)) =
       (uVar38 ^ 0x58f02b20) * (DAT_1826707c8 ^ 0x31373b47);
  uVar12 = DAT_182670a50;
  uVar10 = DAT_182670a40;
  uVar26 = (ulonglong)DAT_182670a50;
  *(uint *)(lVar31 + -0x598) =
       (*(uint *)(lVar31 + -0xaf0) ^ DAT_182670884) & (*(uint *)(lVar31 + -0x3d4) ^ DAT_182670988) ^
       DAT_182670a9c;
  *puVar1 = CONCAT44(uVar37,uVar49) ^ CONCAT44(uVar37,uVar23) ^ 0xe2c4118cc262488e;
  *(uint *)(lVar31 - ((ulonglong)uVar22 ^ 0xbcfc06a4)) =
       (*(uint *)(lVar31 - (uVar39 ^ 0xffb3da3d)) ^ DAT_182670a9c |
       *(uint *)(lVar31 + -0xc0c) ^ DAT_1826708d0) ^ uVar12;
  *(uint *)((ulonglong)uVar24 ^ *(ulonglong *)(lVar31 + -0xa48)) =
       uVar12 ^ uVar10 ^ *(uint *)(lVar31 + -0x43c);
  uVar7 = *(undefined8 *)(lVar31 - ((ulonglong)uVar23 ^ 0xb21fd9f9));
  *(undefined8 *)(lVar31 + -0xd58) = uVar7;
  uVar37 = DAT_18267098c;
  puVar4 = (uint *)(lVar31 + -0x140);
  *(undefined8 *)(lVar31 - ((ulonglong)uVar23 ^ 0xb21fd039)) = uVar7;
  puVar18 = (uint *)(*(longlong *)(lVar31 - (uVar50 ^ 0xf523cea1)) +
                    (CONCAT44(uVar23,DAT_1826707d4) ^ 0xb21fd1996450014f) * 0x10);
  bVar20 = (byte)DAT_1826707c8;
  *(ulonglong *)(lVar31 + -0x2a8) = (ulonglong)puVar18 ^ uVar26;
  uVar38 = *puVar18 ^ uVar37 ^ uVar10;
  *puVar6 = uVar38;
  uVar38 = (int)(uVar38 ^ uVar37) >> ((bVar20 ^ 0x1e) & 0x1f) ^ DAT_182670a84;
  *(uint *)(lVar31 + -0xc34) = uVar38;
  *(uint *)(lVar31 - ((ulonglong)uVar30 ^ 0xfffff4ab)) =
       uVar38 ^ DAT_182670a84 ^ DAT_182670998 ^ DAT_1826707a8 ^ 0x205a004c;
  uVar38 = DAT_1826709a8;
  uVar24 = (*puVar6 ^ uVar37) - (*puVar4 ^ DAT_182670900);
  bVar20 = (byte)DAT_1826707f0 ^ 0xbb;
  *(uint *)(lVar31 + -0x68c) = uVar24 ^ DAT_182670a1c;
  lVar8 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0x14f63b4)) =
       (int)uVar24 >> (bVar20 & 0x1f) ^ uVar38;
  uVar24 = (uVar38 ^ *(uint *)(lVar8 + -0x7e4)) & (*puVar25 ^ DAT_182670998);
  *(uint *)(lVar8 + -0xcec) = uVar24 ^ DAT_182670870;
  uVar38 = DAT_1826707a8;
  lVar8 = DAT_1826707a0;
  uVar24 = (*puVar6 ^ uVar37 | uVar24) ^ DAT_182670958;
  uVar26 = CONCAT44(uVar41,DAT_1826707f4);
  puVar5 = (ulonglong *)(DAT_1826707a0 + -0x2a8);
  *(uint *)(DAT_1826707a0 + -0x9ec) = uVar24;
  uVar37 = DAT_182670978;
  uVar42 = (ulonglong)DAT_1826709bc;
  *(uint *)(*puVar5 ^ (ulonglong)uVar12) = uVar24 ^ DAT_182670958 ^ uVar10;
  lVar28 = *(longlong *)(lVar8 + -0x1a0) + 0x10;
  *(longlong *)(lVar8 + -0x1a0) = lVar28;
  *(longlong *)(lVar8 + -0xd58) = lVar28;
  *puVar52 = CONCAT44(uVar49,uVar41) ^ uVar26 ^ 0x1620fffbe179da49;
  *puVar40 = CONCAT44(DAT_1826707d0,uVar38) ^ CONCAT44(uVar32,uVar32) ^
             *(ulonglong *)(lVar8 + -0xce0) ^ 0x5c83a7ef0702ddac;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar22 ^ 0xbcfc0918)) =
       (CONCAT44(uVar48,DAT_1826707e8) ^ 0xfffc2efffefe32be) * 0x10 + lVar28 ^ uVar42;
  *(uint *)(lVar8 - (uVar51 ^ 0xbcfc004c)) =
       *(uint *)(*(ulonglong *)(lVar8 + -0xb80) ^ uVar42) ^ uVar37 ^ DAT_182670a40;
  uVar26 = (ulonglong)DAT_1826707bc;
  *(uint *)(lVar8 - (uVar17 ^ 0x7b3c2c63)) =
       (int)(uVar37 ^ *(uint *)(lVar8 + -0x2d4)) >> 0x1f ^ DAT_182670864;
  uVar41 = DAT_1826708d8;
  lVar28 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar26 ^ 0x468e3832)) =
       *(uint *)(lVar8 + -0x14) ^ DAT_1826708d8 ^ DAT_182670864 ^ uVar23 ^ 0x4de02e66;
  uVar37 = uVar37 ^ *(uint *)(lVar28 + -0x2d4);
  uVar38 = uVar37 - (*puVar4 ^ DAT_182670900);
  *(uint *)(lVar28 + -0xa34) = uVar38 ^ DAT_182670aa4;
  uVar26 = *puVar40;
  uVar17 = *puVar1;
  uVar48 = (int)uVar38 >> (bVar19 & 0x1f) ^ DAT_182670acc;
  *puVar3 = uVar48;
  uVar48 = uVar48 ^ DAT_182670acc;
  *puVar52 = uVar26 << ((byte)uVar17 & 0x3f);
  uVar38 = DAT_182670834;
  uVar41 = (uVar41 ^ *puVar2) & uVar48 ^ DAT_182670908;
  *(uint *)(DAT_1826707a0 + -0x8e0) = uVar41;
  lVar8 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0xffffdbd3)) =
       (uVar41 ^ DAT_182670908 | uVar37) ^ DAT_182670830;
  *(uint *)(*(ulonglong *)(lVar8 + -0xb80) ^ uVar42) =
       *(uint *)(lVar8 + -0x42c) ^ DAT_182670830 ^ DAT_182670a40;
  uVar26 = (ulonglong)DAT_182670914;
  puVar18 = (uint *)(*(longlong *)(lVar8 - ((ulonglong)uVar22 ^ 0xbcfc0fc0)) +
                    (CONCAT44(uVar16,uVar14) ^ 0xffb3dfa5014f6451) * 0x10);
  *puVar1 = 0x5c635aa49f520708 - *(ulonglong *)(lVar8 + -0x9e0);
  *(uint **)(lVar8 + -0xd58) = puVar18;
  *(uint **)(lVar8 + -0x1a0) = puVar18;
  *(ulonglong *)(lVar8 + -0x9f8) = (ulonglong)puVar18 ^ uVar26;
  *(uint *)(lVar8 - ((ulonglong)DAT_1826707ac ^ 0xf523c5f1)) = *puVar18 ^ uVar38 ^ DAT_182670a40;
  uVar14 = DAT_182670a88;
  uVar41 = DAT_1826707d8;
  lVar28 = DAT_1826707a0;
  uVar17 = (ulonglong)DAT_1826707d8;
  *(uint *)(lVar8 - (uVar51 ^ 0xbcfc0e94)) =
       (int)(*(uint *)(lVar8 - ((ulonglong)DAT_1826707f4 ^ 0xfffc240f)) ^ uVar38) >> (bVar20 & 0x1f)
       ^ DAT_18267085c;
  *(uint *)(lVar8 + -0x598) = ~DAT_182670990 ^ DAT_18267085c ^ *(uint *)(lVar8 + -0xc0c);
  uVar16 = DAT_182670894;
  uVar38 = *(uint *)(lVar8 + -0xaf0) ^ uVar38;
  uVar22 = uVar38 - (*puVar4 ^ DAT_182670900);
  *(uint *)(lVar28 + -0xc34) = uVar22 ^ uVar14;
  uVar37 = DAT_182670aac;
  lVar31 = DAT_1826707a0;
  *puVar40 = (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar28 + -0xd88)) +
             (CONCAT44(uVar49,uVar23) ^ 0x7e83f22284243f35);
  uVar22 = (int)uVar22 >> (bVar20 & 0x1f);
  *(uint *)(lVar31 + -0x68c) = uVar22 ^ uVar37;
  uVar16 = DAT_1826707bc;
  uVar23 = (*(uint *)(lVar31 - (uVar17 ^ 0xf881741)) ^ DAT_182670990) & uVar22 ^ DAT_1826708dc;
  *(uint *)(lVar28 + -0xb54) = uVar23;
  uVar23 = (uVar23 ^ DAT_1826708dc | uVar38) ^ DAT_182670a74;
  *(uint *)(lVar28 + -0x7e4) = uVar23;
  *(uint *)(*(ulonglong *)(lVar28 + -0x9f8) ^ uVar26) = uVar23 ^ DAT_182670a74 ^ DAT_182670a40;
  lVar31 = (CONCAT44(uVar16,uVar41) ^ 0x468e30260f8812d8) * 0x10 + *(longlong *)(lVar28 + -0x1a0);
  *(longlong *)(lVar28 + -0xd58) = lVar31;
  *(longlong *)(lVar28 + -0x1a0) = lVar31;
  *puVar52 = (CONCAT44(uVar21,DAT_1826707d4) ^ 0xb2d606a9b2743c4c) <<
             ((byte)*(undefined8 *)(lVar28 - (uVar29 ^ 0x54c7e5c6)) & 0x3f);
  uVar26 = (ulonglong)DAT_18267094c;
  uVar16 = DAT_1826707c0 ^ 0x5afed58;
  *(longlong *)(lVar28 - (uVar50 ^ 0xf523c259)) = lVar31;
  uVar29 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar28 + -0xcec) = (uVar14 ^ *(uint *)(lVar28 + -0xc34)) * uVar16;
  lVar31 = DAT_1826707a0;
  *(ulonglong *)(lVar28 + -0x880) =
       (CONCAT44(uVar45,uVar30) ^ 0xf8812d9ffffffff) * 0x10 + *(longlong *)(lVar28 + -0xd58) ^
       uVar26;
  uVar41 = DAT_182670a7c;
  uVar16 = *(uint *)(*(ulonglong *)(lVar28 - (uVar29 ^ 0xbcfc0a18)) ^ uVar26) ^ DAT_182670a7c ^
           DAT_182670a40;
  *puVar6 = uVar16;
  *(uint *)(lVar31 - (uVar39 ^ 0xffb3dfb1)) =
       (int)(uVar41 ^ uVar16) >> (((byte)(uVar9 >> 0x10) ^ 0x4f) & 0x1f) ^ DAT_182670890;
  uVar23 = DAT_18267082c;
  uVar16 = *puVar6;
  uVar29 = *puVar40;
  uVar26 = *puVar1;
  *(uint *)(lVar31 + -0xa34) =
       *(uint *)(lVar31 + -0x14) ^ DAT_182670ac0 ^ DAT_182670890 ^ DAT_1826707a8 ^ 0x205a004c;
  *(ulonglong *)(lVar8 + -0x9e0) = *(ulonglong *)(lVar31 - (uVar50 ^ 0xf523c3f9)) | *puVar52;
  uVar16 = (uVar16 ^ uVar41) - (*puVar4 ^ DAT_182670900);
  *(ulonglong *)(lVar28 + -0xd88) = uVar29 >> ((byte)uVar26 & 0x3f);
  *puVar2 = uVar16 ^ uVar23;
  *puVar3 = (int)uVar16 >> 0x1f ^ DAT_182670abc;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar44;
  return;
}



############ FUN_ 180d2b4e0 size=3616 ############

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

void FUN_180d2b4e0(void)

{
  longlong *plVar1;
  ulonglong *puVar2;
  uint *puVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  byte *pbVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  byte bVar35;
  
  uVar23 = DAT_182670824;
  uVar10 = DAT_1826707cc;
  uVar8 = DAT_1826707b4;
  uVar33 = DAT_1826707ac;
  lVar5 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707ac;
  uVar28 = (ulonglong)DAT_1826707b4;
  uVar21 = DAT_1826707b4 & DAT_1826707cc;
  uVar27 = (DAT_1826707ac << 0x10 | DAT_1826707ac & 0xff00) << 8 | DAT_1826707ac >> 8 & 0xff00 |
           DAT_1826707ac >> 0x18;
  uVar31 = (ulonglong)DAT_1826707cc;
  uVar18 = *(uint *)(&DAT_18260f750 + (uVar31 ^ 0xb99b65d4) + (longlong)DAT_182670c5c) ^
           DAT_1826707b4;
  uVar4 = *(uint *)(&DAT_18260f760 + DAT_182670c5c);
  uVar25 = (ulonglong)uVar21;
  DAT_1826707b8 = uVar27;
  DAT_1826707f0 = uVar21;
  *(undefined8 *)(DAT_1826707a0 + -0x30) = 0x1898dbd4ca476a7b;
  bVar17 = (byte)DAT_182670afc;
  lVar6 = DAT_1826707a0;
  uVar34 = (ulonglong)uVar27;
  *(ulonglong *)(lVar5 + -0x588) =
       (CONCAT44(uVar27,uVar33) ^ 0x44a9f4bacb4106b1) -
       (CONCAT44(uVar21,uVar8) ^ 0x93023e58950f6e04);
  bVar35 = (byte)uVar10;
  *(byte *)(lVar5 + -0x8d9) =
       *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar33 ^ 0xe6aa3d45)) ^ (ulonglong)DAT_1826709d0
                ) ^ (byte)DAT_182670adc ^ bVar17;
  *(byte *)((ulonglong)DAT_1826709e4 ^ *(ulonglong *)(lVar5 + -0xa28)) = ~bVar35;
  *(uint *)(lVar5 + -0x540) = (*(byte *)(lVar5 + -0x8d9) ^ bVar17) ^ uVar23;
  uVar22 = DAT_182670888;
  uVar26 = (ulonglong)DAT_182670888;
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x21824680)) =
       (CONCAT44(uVar21,uVar27) ^ 0x38ba5bca3261f636) >>
       ((byte)*(undefined8 *)(lVar5 + -0xf0) & 0x3f);
  uVar30 = (*(uint *)(lVar5 + -0x3d4) ^ DAT_1826709f4) + (uVar10 ^ 0x72bf28ff);
  *(uint *)(lVar5 + -0x7e4) = uVar30 ^ uVar22;
  uVar16 = DAT_182670898;
  uVar22 = (*(uint *)(lVar5 + -0x540) ^ uVar23) << (((byte)uVar8 ^ 0x82) & 0x1f);
  *(uint *)(lVar6 + -0x2d4) = uVar22 ^ DAT_182670898;
  *(uint *)(lVar6 - ((ulonglong)uVar27 ^ 0x7d3fa6d2)) = uVar30 - uVar22 ^ DAT_182670990;
  *(uint *)(lVar6 - ((ulonglong)uVar33 ^ 0xe6aa3549)) =
       (*(uint *)(lVar6 + -0xcec) ^ DAT_182670a54) * (*(uint *)(lVar6 + -0xc34) ^ DAT_182670990) ^
       DAT_1826708ec;
  uVar30 = *(uint *)(lVar6 + -0xa34) ^ DAT_1826708ec;
  uVar22 = (*(uint *)(lVar6 + -0x540) ^ uVar23) * (uVar27 ^ 0x7d3faae0) ^ DAT_182670a8c;
  *(uint *)(lVar6 + -0x68c) = uVar22;
  uVar23 = DAT_182670a6c;
  *(uint *)(lVar6 - (uVar25 ^ 0x218244bc)) = uVar30 + (uVar22 ^ DAT_182670a8c) ^ DAT_182670a6c;
  *(ulonglong *)(lVar6 + -0x658) =
       *(ulonglong *)(lVar6 - (uVar25 ^ 0x218240f8)) >> ((bVar35 ^ 0xc1) & 0x3f);
  *(uint *)(lVar6 - (uVar29 ^ 0xe6aa3429)) =
       (*(uint *)(lVar6 + -0x42c) ^ uVar23) << (((byte)uVar33 ^ 0x70) & 0x1f) ^ DAT_182670a30;
  *(uint *)(lVar6 + -0x9ec) = uVar27 ^ 0xed7e7fff | 0x617a3c59;
  uVar23 = (*(uint *)(lVar6 + -0x42c) ^ uVar23) >> ((byte)uVar8 & 0x1f) ^ DAT_182670858;
  *(uint *)(lVar6 + -0x398) = uVar23;
  bVar17 = DAT_1826709e0;
  uVar23 = (*(uint *)(lVar6 + -0xb54) ^ DAT_182670a30 | uVar23 ^ DAT_182670858) ^ DAT_1826709cc;
  uVar24 = (ulonglong)DAT_182670818;
  *(ulonglong *)(lVar6 + -0x6b8) =
       CONCAT44(uVar8,uVar10) ^ 0x97b24ebd9f90f6ec | *(ulonglong *)(lVar6 + -0x660);
  *(uint *)(lVar6 + -0x280) = uVar23;
  uVar23 = uVar23 ^ DAT_182670a90 ^ DAT_1826709cc;
  puVar3 = (uint *)(*(longlong *)(lVar6 + -0x638) +
                   (CONCAT44(uVar21,uVar27) ^ 0x218240907d3faae2) * 4);
  *(ulonglong *)(lVar6 + -0xd40) = (ulonglong)puVar3 ^ uVar24;
  *puVar3 = uVar23;
  uVar32 = (ulonglong)DAT_182670b0c;
  *(undefined8 *)(lVar6 + -0x2a0) = *(undefined8 *)(lVar6 + -0x10);
  *(ulonglong *)(lVar6 + -0x218) = *(ulonglong *)(lVar6 + 0x38);
  plVar1 = (longlong *)(lVar6 + -0xdb8);
  *(ulonglong *)(lVar6 - (uVar29 ^ 0xe6aa33ed)) = uVar32 ^ *(ulonglong *)(lVar6 + 0x38);
  uVar24 = (ulonglong)DAT_182670970;
  uVar19 = (ulonglong)DAT_182670970 ^ *(ulonglong *)(lVar6 + -0x2a0);
  *(ulonglong *)(lVar6 + -0x248) = uVar19;
  pbVar20 = (byte *)(uVar19 ^ uVar24);
  *plVar1 = (longlong)(pbVar20 + 1);
  lVar5 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x3b1) = *pbVar20 ^ (byte)DAT_182670944 ^ bVar17;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar34 ^ 0x7d3fab8e)) ^ uVar26) = bVar35 ^ 0xa3;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0xe6aa3b5d)) =
       *(ulonglong *)(DAT_1826707a0 + -0x9c8) ^ *(ulonglong *)(DAT_1826707a0 + -0x588);
  *(ulonglong *)(lVar5 + -0xd28) =
       (CONCAT44(uVar33,uVar8) ^ 0xe6aa3f7d21e6c892) + (*(ulonglong *)(lVar5 + -0xc90) ^ uVar32);
  uVar19 = (ulonglong)DAT_182670ab4;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar25 ^ 0x21824c00)) ^ uVar32) =
       *(byte *)(lVar5 - (uVar25 ^ 0x21824321)) ^ (byte)DAT_182670944;
  *(longlong *)(lVar5 + -0x890) = *(longlong *)(lVar5 + -0x420) << 0x3e;
  *(undefined8 *)(lVar5 + -0xa30) = *(undefined8 *)(lVar5 + -0xd28);
  uVar26 = (ulonglong)DAT_182670a1c;
  *(longlong *)(lVar5 + -0x8b8) = *plVar1;
  *(ulonglong *)(lVar5 + -0x28) = *(ulonglong *)(lVar5 - (uVar31 ^ 0xb99b6fec)) ^ uVar19;
  uVar24 = *(ulonglong *)(lVar5 - ((ulonglong)uVar27 ^ 0x7d3fa25e));
  *(ulonglong *)(lVar5 + -0x4f8) = uVar24 ^ uVar26;
  uVar9 = DAT_1826707c0;
  lVar6 = DAT_1826707a0;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x220);
  *(ulonglong *)(DAT_1826707a0 + -0xaa0) =
       (CONCAT44(uVar8,DAT_1826707c0) ^ 0x21e6c893f993b1a2) + uVar24;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0xb99b6204)) = *puVar2 ^ 0x245944b7ca919c97;
  uVar24 = (ulonglong)DAT_182670960;
  *(byte *)(lVar6 + -0x619) =
       *(byte *)(uVar26 ^ *(ulonglong *)(lVar6 + -0x4f8)) ^ (byte)DAT_182670a9c ^ bVar17;
  *(undefined1 *)(*(ulonglong *)(lVar6 + -0x708) ^ uVar24) = 0xa6;
  pbVar20 = (byte *)(uVar19 ^ *(ulonglong *)(lVar6 + -0x28));
  *(ulonglong *)(lVar6 + -0xb70) =
       *(ulonglong *)(lVar6 + -0x420) >> ((byte)*(ulonglong *)(lVar6 + -0x420) & 0x3f);
  *(byte **)(lVar6 + -0x9e8) = pbVar20 + (CONCAT44(uVar27,uVar10) ^ 0x7d3faae6b99b65dd);
  *pbVar20 = *(byte *)(lVar6 - (uVar34 ^ 0x7d3facff)) ^ (byte)DAT_182670a9c;
  *(undefined8 *)(lVar6 + -0x9a0) = *(undefined8 *)(lVar6 + -0x9e8);
  uVar23 = DAT_182670a14;
  uVar24 = (ulonglong)_DAT_18267097c;
  *(undefined8 *)(lVar6 - (uVar28 ^ 0x21e6c03b)) = *(undefined8 *)(lVar6 + -0xaa0);
  *(ulonglong *)(lVar6 + -0x2e8) = (ulonglong)uVar23 ^ *(ulonglong *)(lVar6 + -0x9a0);
  *(ulonglong *)(lVar6 + -0x3e0) = *(ulonglong *)(lVar6 + -0x8a8) ^ uVar24;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 + -0x1d8) =
       (*(ulonglong *)(lVar6 - (uVar31 ^ 0xb99b663c)) ^ uVar24) +
       (CONCAT44(uVar33,uVar33) ^ 0xe6aa3f7de6aa3f7c);
  *(byte *)(lVar6 + -0xd11) = *(byte *)(uVar26 ^ *(ulonglong *)(lVar6 + -0x4f8)) ^ bVar17;
  uVar30 = DAT_1826707d0;
  *(byte *)(lVar6 - (uVar28 ^ 0x21e6c3c6)) =
       *(byte *)(*(ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0x7d3fa906)) ^ uVar24) ^
       (byte)DAT_1826708cc ^ bVar17;
  *(byte *)(*(ulonglong *)(lVar6 - (uVar25 ^ 0x21824488)) ^ (ulonglong)DAT_1826708c0) =
       (byte)DAT_1826707e8 ^ 0xa1;
  pbVar20 = (byte *)((ulonglong)uVar23 ^ *(ulonglong *)(lVar6 + -0x2e8));
  *(byte **)(lVar6 + -0x1f0) = pbVar20 + (CONCAT44(uVar10,uVar21) ^ 0xb99b65dc21824091);
  uVar11 = DAT_1826707d8;
  *pbVar20 = *(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x8d66d183)) ^
             (byte)DAT_1826708cc;
  *(undefined8 *)(lVar7 + -0x4b0) = *(undefined8 *)(lVar7 + -0x1f0);
  uVar13 = DAT_1826707e4;
  uVar12 = DAT_1826707e0;
  uVar22 = DAT_1826707d4;
  uVar23 = DAT_1826707bc;
  uVar25 = (ulonglong)DAT_182670a48;
  uVar24 = (ulonglong)DAT_1826707e4;
  uVar19 = (ulonglong)DAT_1826707e0;
  uVar32 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar7 + -0x8e0) = 0xed63e9d >> (((byte)uVar30 ^ 0xbe) & 0x1f);
  *(undefined8 *)(lVar7 - (uVar24 ^ 0x66c485c)) = *(undefined8 *)(lVar7 + -0x1d8);
  *(ulonglong *)(lVar7 - (uVar19 ^ 0xa3b19639)) =
       CONCAT44(uVar33,uVar33) ^ *(ulonglong *)(lVar7 + -0x588) ^ 0xc9e0f67f8681867b;
  uVar14 = DAT_1826707ec;
  uVar19 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar7 + -0x1f8) = *(ulonglong *)(lVar7 + -0x4b0) ^ uVar25;
  *(uint *)(lVar7 - ((ulonglong)uVar23 ^ 0xc0000c04)) =
       *(uint *)(lVar7 + -0x2d4) ^ uVar14 ^ uVar16 ^ 0x6e72dd02;
  uVar24 = (ulonglong)DAT_1826709fc;
  *(ulonglong *)(lVar7 + -0x5e8) = *(ulonglong *)(lVar7 + -0x600) ^ uVar24;
  *(ulonglong *)(lVar7 + -0x1c8) =
       (CONCAT44(uVar22,uVar27) ^ 0x729925297d3faae7) + *(ulonglong *)(lVar7 + -0x600);
  uVar15 = DAT_1826707f4;
  *(byte *)(lVar7 + -0x2d5) =
       *(byte *)(*(ulonglong *)(lVar7 - (uVar34 ^ 0x7d3faf0e)) ^ uVar24) ^ (byte)DAT_18267094c ^
       DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar7 - (uVar31 ^ 0xb99b6f34)) ^ (ulonglong)DAT_182670a7c) =
       (byte)uVar21 ^ 0xd8;
  *(ulonglong *)(lVar7 + -0x6a8) =
       (CONCAT44(uVar14,uVar15) ^ 0xb1a3f993a3b193f8) + (uVar25 ^ *(ulonglong *)(lVar7 + -0x1f8));
  uVar22 = DAT_1826707c8;
  uVar31 = (ulonglong)DAT_182670a68;
  *(byte *)(*(ulonglong *)(lVar7 - (uVar28 ^ 0x21e6c96b)) ^ uVar25) =
       *(byte *)(lVar7 - ((ulonglong)uVar13 ^ 0x66c4c89)) ^ (byte)DAT_18267094c;
  lVar6 = DAT_1826707a0;
  uVar24 = CONCAT44(uVar8,DAT_1826707e4);
  *(undefined8 *)(DAT_1826707a0 + -0xa60) = *(undefined8 *)(DAT_1826707a0 + -0x6a8);
  *(ulonglong *)(lVar6 + -0xcf8) = (uVar24 ^ 0xad456e918b5a2171) >> (((byte)uVar9 ^ 0x9a) & 0x3f);
  *(undefined8 *)(lVar6 - ((ulonglong)uVar11 ^ 0x8d66d8fe)) = *(undefined8 *)(lVar6 + -0x1c8);
  *(ulonglong *)(lVar6 + -0xcc8) = uVar31 ^ *(ulonglong *)(lVar6 + -0xa60);
  uVar24 = (ulonglong)DAT_182670850;
  pbVar20 = *(byte **)(lVar6 + -0x228);
  *(ulonglong *)(lVar6 + -0xce0) =
       (CONCAT44(uVar8,uVar33) ^ 0x5b4706dbf16aa350) >> (((byte)uVar23 ^ 7) & 0x3f);
  *(ulonglong *)(lVar6 + -0x20) = (ulonglong)pbVar20 ^ uVar24;
  bVar17 = (byte)DAT_1826709a0 ^ DAT_1826709e0;
  *(byte **)(lVar6 + -0x270) = pbVar20 + (CONCAT44(uVar11,uVar21) ^ 0x8d66dad621824091);
  *(byte *)(lVar6 + -0xa73) = bVar17 ^ *pbVar20;
  uVar11 = DAT_182670a40;
  *(undefined1 *)(*(ulonglong *)(lVar6 + -0x450) ^ (ulonglong)DAT_182670a40) = 0xba;
  pbVar20 = (byte *)(uVar31 ^ *(ulonglong *)(lVar6 + -0xcc8));
  *(ulonglong *)(lVar6 + -0x2b0) =
       *(ulonglong *)(lVar6 + -0x7d8) ^ CONCAT44(uVar10,uVar21) ^ 0xa7398a35101a64da;
  *(byte **)(lVar6 + -0x170) = pbVar20 + (CONCAT44(uVar12,uVar10) ^ 0xa3b193f9b99b65dd);
  uVar23 = DAT_1826707dc;
  lVar7 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707dc;
  *pbVar20 = *(byte *)(lVar6 - ((ulonglong)uVar30 ^ 0xfffff5cc)) ^ (byte)DAT_1826709a0;
  *(undefined8 *)(lVar6 + -0x4a8) = *(undefined8 *)(lVar6 + -0x170);
  uVar8 = DAT_1826707b0;
  uVar26 = (ulonglong)DAT_1826709c0;
  uVar24 = (ulonglong)DAT_1826707b0;
  *(undefined8 *)(lVar6 - (uVar29 ^ 0xe6aa3a7d)) = *(undefined8 *)(lVar6 - (uVar31 ^ 0xbffffdcf));
  uVar25 = (ulonglong)DAT_182670a50;
  *(ulonglong *)(lVar7 - (uVar19 ^ 0xb1a3fd43)) = uVar26 ^ *(ulonglong *)(lVar7 + -0x4a8);
  *(ulonglong *)(lVar7 + -0x6f0) =
       (CONCAT44(uVar21,uVar15) ^ 0x82630f680ce6ec00) + 0xf5eb5c7e73a11a6d;
  uVar31 = (ulonglong)DAT_1826707e8;
  pbVar20 = *(byte **)(lVar7 - (uVar24 ^ 0x2a5b658b));
  uVar24 = CONCAT44(uVar27,DAT_1826707e8);
  *(ulonglong *)(lVar7 + -0x560) = (ulonglong)pbVar20 ^ uVar25;
  *(ulonglong *)(lVar7 + -0xd38) = uVar24 ^ CONCAT44(uVar33,uVar21) ^ 0x269b0011020843d7;
  *(byte **)(lVar7 + -0x148) = pbVar20 + (CONCAT44(uVar8,uVar10) ^ 0x2a5b608bb99b65dd);
  lVar6 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - ((ulonglong)uVar22 ^ 0x47632eb0)) =
       (byte)DAT_182670828 ^ DAT_1826709e0 ^ *pbVar20;
  *(byte *)(*(ulonglong *)(lVar6 + -0x390) ^ (ulonglong)DAT_1826709bc) = (byte)DAT_1826707d8 ^ 0x32;
  pbVar20 = (byte *)(*(ulonglong *)(lVar6 + -0x4d0) ^ uVar26);
  uVar33 = ~uVar22;
  uVar19 = (ulonglong)DAT_182670a60;
  DAT_1826707a8 = uVar33;
  *(byte **)(lVar6 + -0xa28) = pbVar20 + (CONCAT44(uVar30,uVar23) ^ 0xffffffbfbfffffbe);
  *pbVar20 = *(byte *)(lVar6 - (uVar32 ^ 0x72992c6b)) ^ (byte)DAT_182670828;
  uVar24 = *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707e4 ^ 0x66c4474));
  *(undefined8 *)(lVar6 + -0x10) = *(undefined8 *)(lVar6 + -0x148);
  *(ulonglong *)(lVar6 + -0x238) = uVar24;
  *(ulonglong *)(lVar6 - (uVar31 ^ 0xbbfbfb83)) = uVar19 ^ uVar24;
  uVar24 = (ulonglong)DAT_18267085c;
  uVar31 = (ulonglong)DAT_18267085c ^ *(ulonglong *)(lVar6 + -0x10);
  *(ulonglong *)(lVar6 + -0x2a0) = uVar31;
  pbVar20 = (byte *)(uVar31 ^ uVar24);
  uVar24 = (ulonglong)DAT_182670a14;
  *(ulonglong *)(lVar6 + -0x1b8) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar33 ^ 0xb89cdfd5)) ^ 0x9c1cf672667aeedb;
  *(undefined8 *)(lVar6 + -0x168) = pbVar20 + (CONCAT44(uVar22,uVar22) ^ 0x476327f2476327f3);
  *(byte *)(lVar6 + -0x639) = (byte)uVar11 ^ *pbVar20 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar6 + -0x5e0) ^ uVar24) = (byte)uVar33 ^ 0x4f;
  pbVar20 = (byte *)(uVar19 ^ *(ulonglong *)(lVar6 + -0x218));
  *(byte **)(lVar6 + -0xd28) = pbVar20 + 1;
  *(ulonglong *)(lVar6 + -0x438) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar22 ^ 0x47632e3a)) |
       CONCAT44(uVar33,uVar33) ^ 0xff6934800efc38f4;
  *pbVar20 = *(byte *)(lVar6 - ((ulonglong)uVar22 ^ 0x476321cb)) ^ (byte)uVar11;
  *plVar1 = *(longlong *)(lVar6 - ((ulonglong)uVar33 ^ 0xb89cd525));
  *(undefined8 *)(lVar5 + -0xa30) = *(undefined8 *)(lVar6 + -0x168);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar21) * 4) = uVar18;
  return;
}



############ FUN_ 180ce6f30 size=3579 ############

void FUN_180ce6f30(void)

{
  longlong lVar1;
  longlong lVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  
  uVar14 = DAT_1826707ec;
  uVar13 = DAT_1826707d8;
  uVar12 = DAT_1826707d0;
  uVar11 = DAT_1826707cc;
  uVar9 = DAT_1826707c0;
  uVar7 = DAT_1826707b8;
  uVar6 = DAT_1826707b4;
  uVar5 = DAT_1826707b0;
  uVar23 = (ulonglong)DAT_1826707d0;
  uVar19 = DAT_1826707d0 - DAT_1826707b0;
  uVar22 = (ulonglong)DAT_1826707b8;
  uVar32 = DAT_1826707b8 ^ DAT_1826707c4;
  uVar31 = (ulonglong)DAT_1826707b4;
  uVar29 = *(uint *)(&DAT_18260f758 + DAT_182670b8c) ^ DAT_1826707d0;
  uVar26 = (ulonglong)DAT_1826707cc;
  uVar20 = DAT_1826707ec & DAT_1826707cc;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670b8c) ^ DAT_1826707b0;
  uVar24 = DAT_1826707c0 + DAT_1826707b4;
  uVar21 = ~DAT_1826707d8;
  DAT_1826707c8 = uVar20;
  DAT_1826707dc = uVar19;
  DAT_1826707e0 = uVar24;
  DAT_1826707e8 = uVar32;
  DAT_1826707f0 = uVar21;
  *(undefined8 *)(DAT_1826707a0 + -0xc30) = 0x493498c59f649f31;
  uVar10 = DAT_1826707c4;
  uVar30 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(DAT_1826707a0 + -0x8c8) = CONCAT44(uVar19,uVar20) ^ 0xa41478dd2fb0a9c;
  lVar1 = DAT_1826707a0;
  uVar17 = (ulonglong)uVar14;
  *(undefined8 *)(DAT_1826707a0 - (uVar17 ^ 0xb1a3fffb)) = 0x405c3076de44d406;
  *(ulonglong *)(lVar1 + -0x98) = CONCAT44(uVar11,uVar13) ^ 0x3ed63578fb7e5181;
  uVar18 = (ulonglong)uVar5;
  *(ulonglong *)(lVar1 + -0xc80) = CONCAT44(uVar19,uVar5) ^ 0xa178bb0eb1b6fe4;
  *(ulonglong *)(lVar1 + -0x9b0) = CONCAT44(uVar21,uVar24) ^ 0xbe28a1c5f8f1d5f0;
  *(ulonglong *)(lVar1 + -0xa70) = CONCAT44(uVar7,uVar9) ^ 0xe03a424a79f4d3d8;
  *(ulonglong *)(lVar1 + -0x618) = CONCAT44(uVar32,uVar6) ^ 0xb15fe0377bb51799;
  *(undefined8 *)(lVar1 + -0x1a8) = 0x5e601cda8811fb71;
  *(ulonglong *)(DAT_1826707a0 + -0x120) = CONCAT44(uVar6,uVar11) ^ 0xebe9f309b25fd661;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0x91c55c7f)) =
       CONCAT44(uVar10,uVar12) ^ 0xb0f69481e3acaba5;
  *(ulonglong *)(lVar1 + -0x800) = CONCAT44(uVar6,uVar21) ^ 0x3cd604de63922686;
  *(ulonglong *)(lVar1 + -0x508) = CONCAT44(uVar13,uVar14) ^ 0x1c75750e0acb1dc6;
  *(undefined8 *)(lVar1 + -0x888) = 0x781db4d7aaa5b5dc;
  *(ulonglong *)(lVar1 + -0x648) = CONCAT44(uVar19,uVar6) ^ 0x4f5c944928121bcb;
  *(ulonglong *)(lVar1 + -0x278) = CONCAT44(uVar32,uVar20) ^ 0xa5a5b55f2636fb42;
  *(ulonglong *)(lVar1 + -0xbe0) = CONCAT44(uVar21,uVar19) ^ 0xd1be12befb6bbe4b;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0x6a01097c)) = CONCAT44(uVar9,uVar10) ^ 0x8a4255ffccabaccf;
  uVar28 = CONCAT44(uVar12,uVar20);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xbf7fe2e7)) = CONCAT44(uVar13,uVar24) ^ 0x2334a2b4e5e0ad81;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x3f0) = uVar28 ^ 0xa268f40e5ae1d81f;
  *(ulonglong *)(lVar1 + -0x628) = CONCAT44(uVar14,uVar6) ^ 0x31935190ab37dc14;
  *(ulonglong *)(lVar1 + -0xc20) = CONCAT44(uVar21,uVar32) ^ 0x92b1e34554734508;
  *(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0x6a0106ac)) =
       CONCAT44(uVar21,uVar12) ^ 0x16a0259adf19fc4d;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x230) = CONCAT44(uVar20,uVar24) ^ 0xeaa19ebd7ff56230;
  *(undefined8 *)(lVar1 + -0x850) = 0xc7a03715c6549b56;
  *(ulonglong *)(lVar1 + -0xa68) = CONCAT44(uVar10,uVar20) ^ 0xea1ba227ec56d37b;
  *(ulonglong *)(lVar1 + -0xda0) = CONCAT44(uVar9,uVar11) ^ 0x47ab0eec858ed166;
  *(ulonglong *)(lVar1 + -0xa40) = CONCAT44(uVar7,uVar7) ^ 0xf4a59322ac0bbb52;
  *(ulonglong *)(lVar1 + -0x488) = CONCAT44(uVar19,uVar19) ^ 0xd2e665a13557f5da;
  *(ulonglong *)(lVar1 + -0xce8) = CONCAT44(uVar5,uVar6) ^ 0xb88ed493fee73f5f;
  *(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0x6a01096c)) =
       CONCAT44(uVar14,uVar13) ^ 0xe823a7f997e0afeb;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0x91c55eaf)) =
       CONCAT44(uVar11,uVar32) ^ 0x378af11a69eb0d2a;
  lVar1 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 - (uVar23 ^ 0x56741b33)) = 0xc2cbf389be9cc9b0;
  uVar23 = CONCAT44(uVar10,uVar24);
  *(undefined8 *)(lVar1 + -0x680) = 0xf787e119b0e23ea;
  *(ulonglong *)(lVar1 + -0x50) = CONCAT44(uVar10,uVar13) ^ 0xd2a44df262a4ce46;
  *(ulonglong *)(lVar1 + -0x748) = CONCAT44(uVar14,uVar11) ^ 0xb0dba74e4569508d;
  *(ulonglong *)(lVar1 + -0x300) = uVar23 ^ 0xb34a0d8e613682d7;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0xec73103f)) =
       CONCAT44(uVar9,uVar20) ^ 0xf4ab87704e285a96;
  lVar1 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 + -0xb90) = 0x836b67c2851d2ef6;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0xf99b6d24)) = CONCAT44(uVar5,uVar13) ^ 0xabdfd21cee269111;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -1000) = CONCAT44(uVar9,uVar6) ^ 0x99add9c4ce3602e4;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar9 ^ 0x972e3d64)) = 0x8de025ed6021ceda;
  *(undefined8 *)(lVar1 - (uVar17 ^ 0xb1a3f0b3)) = 0x3a2d38776760461e;
  *(undefined8 *)(lVar1 + -0x130) = 0x5250f1be6a84db17;
  *(ulonglong *)(lVar1 + -0xbf0) = CONCAT44(uVar14,uVar19) ^ 0x886d70d5b4be4b8a;
  *(ulonglong *)(lVar1 + -0x830) = CONCAT44(uVar32,uVar12) ^ 0x48245f8765243d51;
  *(ulonglong *)(lVar1 + -0x308) = uVar28 ^ 0x359072fde5d3fcbd;
  *(ulonglong *)(lVar1 + -0xbc0) = CONCAT44(uVar20,uVar32) ^ 0xcbbff13227b7712;
  *(ulonglong *)(lVar1 + -0xc50) = CONCAT44(uVar19,uVar7) ^ 0xff4483354f2b24fb;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xb99b6974)) =
       CONCAT44(uVar5,uVar19) ^ 0x2dd29ac18ca21192;
  *(undefined8 *)(lVar1 + -0x348) = 0xfb4698d17a309957;
  *(ulonglong *)(lVar1 + -0xd20) = uVar23 ^ 0x697a96bfb880627;
  *(ulonglong *)(lVar1 + -0xca0) = CONCAT44(uVar10,uVar10) ^ 0x7fa8555cb5c02672;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar32 ^ 0xf0afa88f)) =
       CONCAT44(uVar12,uVar13) ^ 0x8b27bf7b1a9581cd;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0xb1a3f2d3)) = CONCAT44(uVar5,uVar6) ^ 0xaac8b2e3b2293ac8;
  *(ulonglong *)(lVar2 + -0xb68) = CONCAT44(uVar21,uVar9) ^ 0x7512b3256fadda62;
  uVar8 = DAT_1826707bc;
  uVar25 = (ulonglong)DAT_1826707bc;
  *(undefined8 *)(lVar2 + -0x810) = 0x95bd1ffb7868cd8c;
  *(ulonglong *)(lVar2 + -0x6f8) = CONCAT44(uVar10,uVar12) ^ 0x3fbded9ac387b7aa;
  *(ulonglong *)(lVar2 + -0x158) = CONCAT44(uVar13,uVar11) ^ 0x49cf7d2c738f2d82;
  *(ulonglong *)(lVar2 + -0xd60) = CONCAT44(uVar9,uVar7) ^ 0x594556789ba29de2;
  *(ulonglong *)(lVar2 + -0x9b8) = CONCAT44(uVar13,uVar21) ^ 0xac89858269a893f4;
  *(ulonglong *)(lVar2 + -0x4f0) = CONCAT44(uVar10,uVar6) ^ 0x2cc4f679c640755c;
  uVar10 = DAT_1826707e4;
  uVar27 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xb1836188)) = CONCAT44(uVar24,uVar21) ^ 0x362f15813a89c85;
  *(ulonglong *)(lVar2 + -0x6e0) = CONCAT44(uVar19,uVar14) ^ 0x8be48947c2bc4374;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xb1836930)) =
       CONCAT44(uVar21,uVar5) ^ 0xce0099d1a3346e4f;
  *(ulonglong *)(lVar2 + -0x90) = CONCAT44(uVar7,uVar13) ^ 0x9b309253f259037b;
  *(undefined8 *)(lVar2 - (uVar30 ^ 0x4fd04408)) = 0x30880d482f9bfd99;
  uVar3 = DAT_1826707a8;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xb99b64d4)) = CONCAT44(uVar20,uVar6) ^ 0x6ee82a015280165c;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -2000) = CONCAT44(uVar3,uVar11) ^ 0xce9d64364121afee;
  *(ulonglong *)(lVar1 + -0x7e0) = CONCAT44(uVar7,uVar14) ^ 0xb20758893c2af502;
  *(undefined8 *)(lVar1 - (uVar27 ^ 0x4c90f40)) = 0x66ea32502b35b800;
  *(undefined8 *)(lVar1 + -0x3a0) = 0x8f8ed4ee6cc46c26;
  *(ulonglong *)(lVar1 + -0x968) = CONCAT44(uVar32,uVar14) ^ 0x7baa1753a3a6209d;
  *(ulonglong *)(lVar1 + -0x470) = CONCAT44(uVar5,uVar11) ^ 0x9eed2ed83c604ba5;
  *(ulonglong *)(lVar1 + -0x910) = CONCAT44(uVar19,uVar24) ^ 0xb48f76a0e733651e;
  uVar15 = DAT_1826707f4;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0xa0) = CONCAT44(uVar9,uVar19) ^ 0x4e11099cd4f57de1;
  *(undefined8 *)(lVar1 + -0xdb0) = 0x8fad98f5cb3914cf;
  uVar6 = DAT_1826707d4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d4 ^ 0xfb191d93)) =
       CONCAT44(uVar15,uVar14) ^ 0xdaed080bdf6aacb3;
  *(undefined8 *)(lVar2 + -0x900) = 0xd17f84cb45c95620;
  *(ulonglong *)(lVar2 + -0x510) = CONCAT44(uVar3,uVar10) ^ 0xd65afa6ad24f8018;
  uVar4 = DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 - (uVar17 ^ 0xb1a3f003)) =
       CONCAT44(uVar9,DAT_1826707ac) ^ 0x9f87515a6f47c009;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x460) = CONCAT44(uVar4,uVar21) ^ 0x9eb887c6198798af;
  *(ulonglong *)(lVar1 + -0x898) = CONCAT44(uVar15,uVar12) ^ 0xe29cd6ff672aaafd;
  *(ulonglong *)(lVar1 + -0x938) = CONCAT44(uVar9,uVar5) ^ 0xca65964b09ff8de8;
  *(ulonglong *)(lVar1 + -0xa48) = uVar28 ^ 0x7fc913c8316f365c;
  *(undefined8 *)(lVar1 - (uVar22 ^ 0xbf7fed07)) = 0xed41ec175c276e4b;
  *(ulonglong *)(lVar1 + -0xb80) = CONCAT44(uVar32,uVar7) ^ 0xfa9584b21c3e9abb;
  *(ulonglong *)(lVar1 + -0x9f8) = uVar23 ^ 0xaab5cd9f8e9e31a;
  *(ulonglong *)(lVar1 + -0x880) = CONCAT44(uVar10,uVar4) ^ 0x872dac9b00844274;
  *(ulonglong *)(lVar1 - (uVar18 ^ 0x6a010c1c)) = CONCAT44(uVar32,uVar6) ^ 0xaa1550ca83311002;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0xf99b65d4)) = CONCAT44(uVar13,uVar4) ^ 0xd23700010b4ae334;
  *(ulonglong *)(lVar1 + -0x78) = CONCAT44(uVar21,uVar19) ^ 0x493608c1f698bf0a;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar24 ^ 0x90c99960)) =
       CONCAT44(uVar3,uVar21) ^ 0xbe320356dad7701b;
  *(undefined8 *)(lVar1 + -0xaa8) = 0x6ad40ce25a989620;
  *(ulonglong *)(lVar1 + -0xcc0) = CONCAT44(uVar4,uVar10) ^ 0x3493051750e6a4c8;
  *(ulonglong *)(lVar1 + -0x60) = CONCAT44(uVar19,uVar19) ^ 0xb329dff2f2586ded;
  *(ulonglong *)(lVar1 - (uVar30 ^ 0x4fd04680)) = CONCAT44(uVar14,uVar8) ^ 0x4cce222bbdd321c1;
  *(ulonglong *)(lVar1 - (uVar17 ^ 0xb1a3f8ab)) = CONCAT44(uVar11,uVar20) ^ 0x8d2cd8813a6b8898;
  *(ulonglong *)(lVar1 + -400) = CONCAT44(uVar11,uVar5) ^ 0x408748b0811cb5bc;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar29;
  return;
}



############ FUN_ 180d17ce0 size=3790 ############

void FUN_180d17ce0(void)

{
  ulonglong *puVar1;
  undefined8 uVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  undefined8 *puVar20;
  uint uVar21;
  uint uVar22;
  longlong *plVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  undefined8 *puVar28;
  uint uVar29;
  longlong *plVar30;
  undefined8 *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  
  uVar9 = DAT_1826707f4;
  uVar11 = DAT_1826707d8;
  uVar10 = DAT_1826707d0;
  lVar4 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707d0;
  uVar34 = (ulonglong)DAT_1826707f4;
  uVar19 = DAT_1826707d0 * DAT_1826707f4;
  uVar29 = ~DAT_1826707d8;
  uVar21 = *(uint *)(&DAT_18260f758 + DAT_182670c1c) ^ DAT_1826707f4;
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670c1c) ^ DAT_1826707d0;
  uVar26 = (ulonglong)DAT_1826707f4;
  DAT_1826707dc = uVar29;
  DAT_1826707e4 = uVar19;
  *(longlong *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0x529ebaf2)) =
       *(longlong *)(DAT_1826707a0 + -0x6e8) + 8;
  *(int *)(lVar4 + -0x3d4) = *(int *)(lVar4 + -0x280) + *(int *)(lVar4 + -0x14);
  puVar20 = (undefined8 *)(lVar4 - ((ulonglong)uVar29 ^ 0x4f37741));
  uVar2 = *(undefined8 *)*puVar20;
  *(ulonglong **)(lVar4 + -0x4e0) = *(ulonglong **)(lVar4 + -0x6c8) + 1;
  uVar15 = DAT_182670af0;
  *(undefined8 *)(lVar4 + -0xf0) = uVar2;
  uVar25 = CONCAT44(uVar15,uVar15);
  **(ulonglong **)(lVar4 + -0x6c8) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xfb0c8ea6)) ^ uVar25;
  *(undefined8 *)(lVar4 + -0x310) = *(undefined8 *)(lVar4 + -0x4e0);
  *(undefined8 *)(lVar4 + -0xb50) = *(undefined8 *)(lVar4 + -0x58);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x29ac9377)) =
       (CONCAT44(uVar11,uVar19) ^ 0x51686f0cbb4e9be1) - *(longlong *)(lVar4 + -0x6b8);
  *(undefined8 *)(lVar4 + -0x6e8) = *(undefined8 *)(lVar4 + -0x310);
  *(undefined8 *)(lVar4 - ((ulonglong)uVar19 ^ 0x529ebe4a)) = *(undefined8 *)(lVar4 + -0xb50);
  plVar30 = (longlong *)(lVar4 - ((ulonglong)uVar11 ^ 0xfb0c8ab6));
  *(longlong *)(lVar4 - ((ulonglong)uVar29 ^ 0x4f371f1)) = *plVar30 + 8;
  *(undefined8 *)(lVar4 + -0x658) = **(undefined8 **)(lVar4 + -0x4e0);
  *(longlong *)(lVar4 - (uVar32 ^ 0xff0fac46)) = *(longlong *)(lVar4 + -0x6e8) + 8;
  **(ulonglong **)(lVar4 + -0x6e8) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xfb0c880e)) ^ uVar25;
  puVar28 = (undefined8 *)(lVar4 - ((ulonglong)uVar19 ^ 0x529eb1fa));
  *puVar28 = *(undefined8 *)(lVar4 - ((ulonglong)uVar11 ^ 0xfb0c8d46));
  *(undefined8 *)(lVar4 + -0x310) = *(undefined8 *)(lVar4 + -0xb50);
  *(undefined8 **)(lVar4 + -0x4e0) = *(undefined8 **)(lVar4 + -0x58);
  *(undefined8 *)(lVar4 - (uVar26 ^ 0x29ac954f)) = **(undefined8 **)(lVar4 + -0x58);
  **(ulonglong **)(lVar4 + -0x310) = uVar25 ^ *(ulonglong *)(lVar4 + -0xbb0);
  uVar15 = DAT_1826709f0;
  *(undefined8 *)(lVar4 + -0x58) = *(undefined8 *)(lVar4 - ((ulonglong)uVar9 ^ 0x29ac9f7f));
  puVar1 = (ulonglong *)(lVar4 + -0x240);
  puVar3 = (ulonglong *)*puVar1;
  *puVar1 = (ulonglong)puVar3;
  *(ulonglong **)(lVar4 + -0x4e0) = puVar3;
  *(ulonglong *)(lVar4 + -0xd38) =
       0x366db407b8b331a1 >> (((byte)uVar15 ^ *(byte *)(lVar4 + -0x660)) & 0x3f);
  *(ulonglong **)(lVar4 + -0xb50) = puVar3 + (CONCAT44(uVar19,uVar9) ^ 0x529ebaaa29ac9efe);
  *(ulonglong *)(lVar4 + -0x6f0) = *puVar3 ^ uVar25;
  **(ulonglong **)(lVar4 + -0xa58) = CONCAT44(uVar10,uVar10) ^ 0x59c57794033d2515;
  lVar5 = DAT_1826707a0;
  *(longlong *)(lVar4 + -0x4e0) = *(longlong *)(lVar4 - (uVar26 ^ 0x29ac9ea7)) + 8;
  uVar18 = DAT_1826707c4;
  uVar33 = (ulonglong)DAT_1826707c4;
  uVar22 = (DAT_1826707c4 << 0x10 | DAT_1826707c4 & 0xff00) << 8 | DAT_1826707c4 >> 8 & 0xff00 |
           DAT_1826707c4 >> 0x18;
  uVar27 = CONCAT44(uVar22,DAT_1826707c4);
  uVar26 = *(ulonglong *)(lVar5 + -0x6f0);
  DAT_1826707b4 = uVar22;
  *(ulonglong *)(lVar4 + -0x400) = (uVar27 ^ 0x8041f8d246f) << 0x10;
  uVar24 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  **(ulonglong **)(lVar5 + -0x58) = uVar26 ^ uVar24;
  plVar23 = (longlong *)(lVar5 - (uVar33 ^ 0xa1ca9ba0));
  *plVar23 = *(longlong *)(lVar5 + -0x4e0);
  *(undefined8 *)(lVar5 + -0xa58) = *(undefined8 *)(lVar5 - ((ulonglong)uVar18 ^ 0xa1ca92b0));
  *(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0xe099ce41)) = *puVar1;
  *(longlong *)(lVar5 + -0xb50) = *(longlong *)(lVar5 + -0xa58);
  *plVar23 = *(longlong *)(lVar5 + -0xa58) + (CONCAT44(uVar22,uVar22) ^ 0xe099caa1e099caa0) * 8;
  *(ulonglong *)(lVar5 + -0x7d8) =
       (CONCAT44(uVar22,uVar10) ^ 0x68a0a586d0bc96a) >>
       ((byte)*(undefined8 *)(lVar5 + -0x400) & 0x3f);
  *(ulonglong *)(lVar5 + -0xb70) = **(ulonglong **)(lVar5 + -0xb50) ^ uVar25;
  **(ulonglong **)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0xe099cc69)) =
       CONCAT44(uVar29,uVar19) ^ 0x43999ca67b96da09;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xa58) =
       *(longlong *)(DAT_1826707a0 + -0x4e0) + (CONCAT44(uVar18,uVar29) ^ 0xa1ca99e004f371a8) * 8;
  *(ulonglong *)*plVar30 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b4 ^ 0xe099c1d1)) ^ uVar24;
  uVar12 = DAT_1826707d8;
  lVar6 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707d8;
  *(undefined8 *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0x529ebc62)) =
       *(undefined8 *)(lVar4 - ((ulonglong)uVar18 ^ 0xa1ca93b8));
  puVar31 = (undefined8 *)(lVar6 - (uVar32 ^ 0xff0fad16));
  *puVar28 = *puVar31;
  *(undefined8 *)(lVar6 - (uVar26 ^ 0xfb0c840e)) = *(undefined8 *)(lVar6 + -0x6c8);
  uVar26 = *(ulonglong *)(lVar6 + -0xb50);
  *puVar1 = uVar26;
  *(ulonglong *)(lVar6 + -0x6c8) = uVar26 + (CONCAT44(uVar29,uVar9) ^ 0x4f371a929ac9efe) * 8;
  uVar7 = DAT_1826707b4;
  uVar26 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar6 + -0x890) =
       (CONCAT44(uVar11,uVar19) ^ 0xad1beb40e5988da9) +
       (CONCAT44(uVar22,uVar10) ^ 0x8ef515c74823a4b4);
  *(ulonglong *)(lVar6 + -0x630) = **(ulonglong **)(lVar6 - (uVar26 ^ 0xe099c8e1)) ^ uVar25;
  **(ulonglong **)(lVar6 + -0x6e8) = CONCAT44(uVar11,uVar12) ^ 0xb5c6f68634ab00eb;
  *(ulonglong **)(lVar6 + -0xb50) = *(ulonglong **)(lVar6 + -0xa58) + 1;
  **(ulonglong **)(lVar6 + -0xa58) = *(ulonglong *)(lVar6 + -0x630) ^ uVar24;
  uVar2 = *(undefined8 *)(lVar6 + -0xb50);
  *(uint *)(lVar6 + -0x43c) = (DAT_1826707e4 ^ 0x7f53d972) + *(int *)(lVar6 + -0x598);
  *puVar1 = *(ulonglong *)(lVar6 + -0x6c8);
  *(undefined8 *)(lVar6 + -0x6e8) = uVar2;
  *(undefined8 *)(lVar6 - ((ulonglong)uVar29 ^ 0x4f37af9)) = uVar2;
  uVar13 = DAT_1826707e8;
  puVar3 = (ulonglong *)*puVar31;
  uVar26 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar6 + -0x118) =
       CONCAT44(uVar11,uVar18) ^ 0x540fe9b52d72a52a |
       CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0x660);
  *(ulonglong **)(lVar6 + -0x6c8) = puVar3;
  uVar8 = DAT_1826707cc;
  *(ulonglong *)(lVar6 + -0xa18) = *puVar3 ^ uVar25;
  **(ulonglong **)(lVar6 - (uVar33 ^ 0xa1ca9af0)) = CONCAT44(uVar19,uVar9) ^ 0x75d323a58925559f;
  uVar9 = DAT_1826707bc;
  *(uint *)(lVar6 + -0x598) = (uVar8 ^ 0xf23e232) + (DAT_1826707ec ^ 0x30d893dc);
  **(ulonglong **)(lVar6 - (uVar34 ^ 0x29ac95af)) =
       *(ulonglong *)(lVar6 - (uVar26 ^ 0xcbbf4fa6)) ^ uVar24;
  uVar14 = DAT_1826707ec;
  uVar8 = DAT_1826707b8;
  uVar24 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar6 + -0x6e8) =
       *(longlong *)(lVar6 + -0xb78) + (CONCAT44(uVar9,uVar29) ^ 0xd249eaed04f371ad) * 8;
  uVar26 = *(longlong *)(lVar6 - ((ulonglong)DAT_1826707d4 ^ 0xe9c1d5d4)) +
           (uVar27 ^ 0xe099caa1a1ca99e4) * 8;
  *puVar1 = uVar26;
  uVar2 = *puVar20;
  *(undefined8 *)(lVar6 + -0xbe8) = uVar2;
  *(undefined8 *)(lVar6 + -0x310) = uVar2;
  uVar15 = DAT_182670854;
  *(ulonglong *)(lVar6 + -0xb78) = uVar26;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0xff0fa9be)) = CONCAT44(uVar15,uVar15) ^ uVar26;
  uVar15 = DAT_18267082c;
  uVar26 = CONCAT44(uVar18,DAT_1826707d8);
  *(ulonglong *)(lVar6 + -0x1b8) =
       (CONCAT44(uVar8,DAT_1826707d8) ^ 0x9f73c57daa6b774d) << (((byte)DAT_1826707d4 ^ 0x3d) & 0x3f)
  ;
  uVar27 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0xfbfcdac7)) =
       **(ulonglong **)(lVar6 + -0xbe8) ^ uVar27;
  *(ulonglong *)(lVar6 + -0x420) =
       CONCAT44(uVar13,DAT_1826707e0) ^ 0x8af41972bc9b2f0 |
       CONCAT44(DAT_1826707c0,uVar8) ^ 0x39d670b956c62253;
  lVar4 = *(longlong *)(lVar6 + -0xbe8);
  *puVar1 = lVar4 + (uVar26 ^ 0xa1ca99e0fb0c8e57) * 8;
  uVar25 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar6 + -0x588) =
       **(ulonglong **)(lVar6 - (uVar25 ^ 0xe9c1dc7c)) ^ CONCAT44(DAT_182670b00,DAT_182670b00);
  puVar3 = (ulonglong *)(lVar4 + (CONCAT44(uVar11,uVar8) ^ 0xfb0c8e5692005030) * 8);
  *(ulonglong **)(lVar6 + -0x310) = puVar3;
  *(ulonglong *)(lVar6 + -0xce0) =
       *(ulonglong *)(lVar6 + -0x438) ^ uVar27 | CONCAT44(uVar19,uVar10) ^ 0xb29c55eb1a800813;
  *(ulonglong *)(lVar6 + -0x6b8) = CONCAT44(DAT_1826709d4,DAT_1826709d4) ^ *puVar3;
  uVar13 = DAT_1826707f0;
  uVar26 = (ulonglong)DAT_1826707f0;
  lVar5 = *(longlong *)(lVar6 - (uVar25 ^ 0xe9c1decc));
  *(undefined8 **)(lVar6 + -0xb78) = (undefined8 *)(lVar4 + 0x18);
  *(longlong *)(lVar6 + -0xd88) = lVar5 << 0xe;
  *(undefined8 *)(lVar6 + -0xd38) = *(undefined8 *)(lVar4 + 0x18);
  uVar18 = DAT_1826707d8;
  uVar25 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar19 = DAT_1826707d8 & 3;
  *puVar1 = (CONCAT44(uVar9,uVar13) ^ 0xd249eaed600a2d08) * 0xa8 + 8 +
            *(longlong *)(lVar6 - ((ulonglong)uVar13 ^ 0x600a2ac0)) ^ uVar25;
  uVar15 = DAT_1826709c4;
  if (uVar19 < 2) {
    uVar29 = uVar8;
    if (uVar19 == 0) {
      uVar29 = uVar18;
    }
  }
  else {
    uVar29 = uVar13;
    if (uVar19 < 3) {
      uVar29 = DAT_1826707ec;
    }
  }
  DAT_1826707d4 = uVar29;
  *(ulonglong *)(lVar6 + -0x220) =
       (CONCAT44(uVar29,uVar8) ^ 0x9111a9a6a7ce26dc) << (((byte)uVar14 ^ 0xe4) & 0x3f);
  uVar16 = DAT_182670970;
  uVar27 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar18 = DAT_1826707bc ^ DAT_1826707b4;
  DAT_1826707c0 = uVar18;
  *(ulonglong *)(lVar6 + -0x400) =
       CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(*puVar1 ^ uVar25) ^ uVar27;
  *(ulonglong *)(CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar6 + -0x798)) =
       CONCAT44(uVar22,uVar18) ^ 0xca778cf4b3f89126;
  uVar15 = DAT_1826708d8;
  *(ulonglong *)(lVar6 + -0x7d8) =
       CONCAT44(DAT_1826709e8,DAT_1826709e8) ^ *(ulonglong *)(lVar6 + -0x68) |
       CONCAT44(uVar9,uVar10) ^ 0xdcd21fab56ff057e;
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707ec ^ 0xfbfcddef)) =
       *(longlong *)(lVar6 - ((ulonglong)DAT_1826707d8 ^ 0xfb0c899e)) + 0x10 +
       (CONCAT44(uVar18,uVar7) ^ 0x32d0204ce099caa1) * 0xa8 ^ uVar25;
  *(ulonglong *)(lVar6 + -0x890) =
       *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar24 ^ 0x92005322)) ^ uVar25) ^
       CONCAT44(DAT_1826709c0,DAT_1826709c0) ^ uVar27;
  *(undefined8 *)(CONCAT44(DAT_182670888,DAT_182670888) ^ *(ulonglong *)(lVar6 + -0x370)) =
       0x9c55c5ad2f1ba07d;
  uVar34 = CONCAT44(uVar13,DAT_1826707bc);
  uVar25 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *(ulonglong *)(lVar6 + -0xbe8) =
       *(longlong *)(lVar6 - (uVar32 ^ 0xff0fa89e)) + 8 +
       ((CONCAT44(uVar29,uVar18) ^ 0xfbfcdeff32d0204c) * 0x15 + (uVar34 ^ 0x600a2d08d249eaef)) * 8 ^
       uVar25;
  *(ulonglong *)(lVar6 - (uVar32 ^ 0xff0fa90e)) =
       *(longlong *)(lVar6 + -0x7d8) - (CONCAT44(uVar8,uVar7) ^ 0x7edb8db016c0bcab);
  uVar15 = DAT_1826709a8;
  *(ulonglong *)(lVar6 + -0x660) =
       CONCAT44(DAT_1826709c8,DAT_1826709c8) ^
       *(ulonglong *)(*(ulonglong *)(lVar6 + -0xbe8) ^ uVar25) ^ uVar27;
  *(undefined8 *)(CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0x5c8)) = 0xf159c72cf66dc505;
  uVar16 = DAT_182670a5c;
  uVar25 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar6 + -0xb78) =
       *(longlong *)(lVar6 + -0x7c8) + 8 + (CONCAT44(uVar11,uVar18) ^ 0xfb0c8e5632d0204f) * 8 ^
       uVar25;
  uVar15 = DAT_182670800;
  *(ulonglong *)(lVar6 + -0x118) =
       *(ulonglong *)(*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707ec ^ 0xfbfcd587)) ^ uVar25) ^
       CONCAT44(uVar16,uVar16) ^ uVar27;
  uVar16 = DAT_1826708e8;
  *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar24 ^ 0x920051da)) ^ CONCAT44(uVar15,uVar15)) =
       uVar34 ^ 0xdc28c0dfd9bd4a73;
  uVar24 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar7 ^ 0xe099cd39)) =
       *(longlong *)(lVar6 + -0x7c8) + 8 +
       ((CONCAT44(uVar11,uVar12) ^ 0xfb0c8e56fb0c8e56) * 0x15 +
       (CONCAT44(uVar18,uVar8) ^ 0x32d0204c92005036)) * 8 ^ uVar24;
  uVar15 = DAT_182670a70;
  *(ulonglong *)(lVar6 + -0xbb0) =
       *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar26 ^ 0x600a2a90)) ^ uVar24) ^
       CONCAT44(uVar16,uVar16) ^ uVar27;
  uVar26 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0xae0)) =
       CONCAT44(uVar9,uVar10) ^ 0x713bc8940427fd6;
  *puVar1 = *(longlong *)(lVar6 - (uVar26 ^ 0xd249ed25)) + 0x90;
  uVar26 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar18 ^ 0x32d021f4)) =
       (CONCAT44(uVar11,uVar29) ^ 0x6e397fb398bea28d) -
       (CONCAT44(uVar22,uVar13) ^ 0xd793d209a27e0dbf);
  *(ulonglong *)(lVar6 + -0x420) = uVar26 ^ *(ulonglong *)*puVar1 ^ uVar27;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar21;
  return;
}



############ FUN_ 180cb88d0 size=4103 ############

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

void FUN_180cb88d0(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint *puVar19;
  uint *puVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint *puVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  byte *pbVar29;
  uint *puVar30;
  uint uVar31;
  uint uVar32;
  uint *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint *puVar37;
  byte local_d8;
  byte local_c8;
  
  uVar16 = DAT_182670848;
  uVar7 = DAT_1826707f0;
  uVar27 = DAT_1826707b8;
  uVar22 = DAT_1826707b4;
  uVar5 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707b8;
  uVar36 = (ulonglong)DAT_1826707a8;
  uVar26 = ~DAT_1826707a8;
  uVar31 = (DAT_1826707f0 << 0x10 | DAT_1826707f0 & 0xff00) << 8 | DAT_1826707f0 >> 8 & 0xff00 |
           DAT_1826707f0 >> 0x18;
  uVar24 = DAT_1826707b4;
  if ((DAT_1826707b8 & 1) == 0) {
    uVar24 = DAT_1826707b8;
  }
  uVar11 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707b8 ^ 0xb99b65d4) + (longlong)DAT_182670b68) ^
           DAT_1826707ac;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670b68);
  uVar35 = (ulonglong)uVar26;
  DAT_1826707c4 = uVar31;
  DAT_1826707cc = uVar24;
  DAT_1826707d4 = uVar26;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707a8 ^ 0x848046d4)) =
       CONCAT44(DAT_1826707b4,uVar26) ^ *(ulonglong *)(DAT_1826707a0 + -0x558) ^ 0xd65437df2cd7a999;
  uVar12 = (ulonglong)uVar7;
  uVar16 = (uVar16 ^ *(uint *)(lVar3 + -0xb54)) + (DAT_18267093c ^ *(uint *)(lVar3 + -0x7e4)) ^
           DAT_18267094c;
  *(uint *)(lVar3 + -0xc34) = uVar16;
  *(uint *)(lVar3 + -0x43c) = uVar16 ^ DAT_182670ac4 ^ DAT_18267094c;
  puVar19 = (uint *)(lVar3 - (uVar12 ^ 0x21e6c4df));
  *puVar19 = *(uint *)(lVar3 + -0x2d4) ^ DAT_1826708dc ^ DAT_182670af4;
  uVar28 = DAT_182670a40;
  uVar6 = DAT_1826707ac;
  uVar13 = (ulonglong)uVar31;
  uVar15 = (ulonglong)DAT_182670a60;
  puVar20 = (uint *)(lVar3 - (uVar13 ^ 0xd3c8e21d));
  *(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0xb99b6644)) = DAT_182670a40 ^ DAT_182670ac4 ^ *puVar20;
  *(uint *)(lVar3 + -0x8e0) = DAT_1826709f4 ^ DAT_1826708dc ^ *(uint *)(lVar3 + -0xc0c);
  uVar14 = (ulonglong)uVar6;
  pbVar29 = (byte *)(*(longlong *)(lVar3 + -0x30) + 0xe +
                    (CONCAT44(uVar22,uVar22) ^ 0x21e6c89321e6c893) * 0x20);
  *(ulonglong *)(lVar3 + -0x600) = (ulonglong)pbVar29 ^ uVar15;
  uVar18 = DAT_18267092c;
  uVar16 = DAT_182670830;
  local_c8 = (byte)(uVar7 >> 0x18);
  uVar34 = (ulonglong)DAT_182670830;
  *(ulonglong *)(lVar3 + -0xcf8) =
       (CONCAT44(uVar6,uVar26) ^ 0xeafcbfd9d55f46e3) << ((local_c8 ^ 0x21) & 0x3f);
  uVar10 = DAT_182670b08;
  bVar2 = (byte)DAT_182670914;
  lVar3 = DAT_1826707a0;
  uVar15 = (ulonglong)DAT_182670b08;
  *(byte *)(DAT_1826707a0 + -0x471) = *pbVar29 ^ (byte)DAT_182670914 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x21e6cc23)) ^ uVar15) = (byte)uVar6 ^ 0x26;
  uVar21 = *(uint *)(lVar3 + -0x8e0) ^ DAT_1826709f4;
  *(uint *)(lVar3 + -0x280) = (bVar2 ^ *(byte *)(lVar3 + -0x471)) ^ uVar18;
  *(uint *)(lVar3 - (uVar36 ^ 0x848046a8)) = uVar21 + (uVar7 ^ 0xeac285f0) ^ uVar16;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0x21e6cd1b)) =
       *(ulonglong *)(lVar3 + -0xce0) >> (((byte)uVar24 ^ 0xf4) & 0x3f);
  bVar2 = (byte)uVar26;
  *(uint *)(lVar3 + -0xa34) =
       (*(uint *)(lVar3 - (uVar13 ^ 0xd3c8e4a1)) ^ uVar18) << ((bVar2 ^ 0xca) & 0x1f) ^
       DAT_182670870;
  uVar21 = (*(uint *)(lVar3 + -0x68c) ^ uVar16) -
           (*(uint *)(lVar3 - (uVar23 ^ 0xb99b6fe8)) ^ DAT_182670870) ^ DAT_1826709dc;
  *(uint *)(lVar3 + -0x42c) = uVar21;
  uVar16 = DAT_182670884;
  lVar4 = DAT_1826707a0;
  puVar30 = (uint *)(lVar3 - ((ulonglong)uVar22 ^ 0x21e6c17f));
  *puVar30 = (*(uint *)(DAT_1826707a0 + -0x398) ^ uVar28) * (uVar21 ^ DAT_1826709dc) ^ DAT_182670884
  ;
  uVar17 = *(uint *)(lVar4 + -0x2d4) ^ DAT_182670af4;
  *(uint *)(lVar4 + -0xc04) =
       (*(uint *)(lVar4 + -0x280) ^ uVar18) * (uVar7 ^ 0x21e6c8dd) ^ DAT_18267082c;
  uVar21 = DAT_182670850;
  *(uint *)(lVar4 + -0x3d4) = uVar17 + (uVar5 ^ 0x4fa40d07);
  puVar37 = (uint *)(lVar4 - (uVar35 ^ 0x7b7fb3df));
  uVar18 = (*(uint *)(lVar4 - (uVar14 ^ 0xe6aa3691)) ^ uVar16) + (*puVar37 ^ DAT_18267082c);
  *(uint *)(lVar4 + -0xcec) = uVar18 ^ uVar21;
  *(uint *)(lVar4 + -0x540) = uVar18 * 0x2000 ^ DAT_1826708c4;
  *(uint *)(lVar4 + -0x7e4) = uVar18 + (uVar16 ^ *(uint *)(lVar4 + -0x9ec));
  uVar16 = uVar18 >> ((bVar2 ^ 200) & 0x1f) ^ DAT_182670b14;
  *(uint *)(lVar4 + -0xc34) = uVar16;
  uVar32 = (*(uint *)(lVar4 - (uVar13 ^ 0xd3c8e361)) ^ DAT_1826708c4 | uVar16 ^ DAT_182670b14) ^
           DAT_182670940;
  uVar16 = DAT_182670848 ^ *(uint *)(lVar4 + -0xb54);
  *(uint *)(lVar4 + -0x43c) = uVar32;
  uVar16 = (*(uint *)(lVar4 + -0x398) ^ uVar28) + uVar16 ^ DAT_182670a0c;
  uVar32 = uVar32 ^ DAT_1826709c8;
  *(uint *)(lVar4 + -0xc0c) = uVar16;
  uVar16 = uVar16 ^ DAT_182670840 ^ DAT_182670a0c;
  uVar32 = uVar32 ^ DAT_182670940;
  *(uint *)(lVar4 + -0x8e0) = uVar16;
  bVar8 = (byte)DAT_182670888;
  uVar28 = DAT_182670854;
  uVar18 = DAT_1826707b8;
  *(uint *)(lVar4 + -0x42c) = (uVar26 ^ 0x3f1fe2c1) + (DAT_1826707b8 ^ 0xab212d13);
  uVar15 = (ulonglong)DAT_1826707b4;
  uVar16 = uVar16 ^ uVar28 ^ DAT_182670840;
  *(uint *)(lVar4 + -0x68c) = uVar32;
  *(uint *)(lVar4 + -0xa34) = uVar16;
  uVar17 = DAT_182670858;
  *(uint *)(lVar4 + -0x280) = uVar32 ^ DAT_182670858 ^ DAT_1826709c8;
  pbVar29 = (byte *)(*(longlong *)(lVar4 - (uVar15 ^ 0x21e6c8a3)) + 0x19);
  *(ulonglong *)(lVar4 + -0x5e8) = (ulonglong)pbVar29 ^ uVar34;
  *(byte *)(lVar4 + -0xda2) = *pbVar29 ^ bVar8 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar4 + -0x1f8) ^ (ulonglong)DAT_182670820) = (byte)uVar18 ^ 0x71;
  *(uint *)(lVar4 + -0x2d4) = (bVar8 ^ *(byte *)(lVar4 + -0xda2)) ^ DAT_182670aa0;
  local_d8 = (byte)uVar27;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (CONCAT44(uVar5,uVar7) ^ 0xc4f1c0788d1df27f) >> ((local_d8 ^ 0xc1) & 0x3f);
  lVar3 = DAT_1826707a0;
  puVar25 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0xb99b6608));
  *puVar25 = (*(uint *)(DAT_1826707a0 + -0x280) ^ uVar17) + (uVar18 ^ 0x72bf28ff) ^ uVar17;
  uVar32 = *(uint *)(lVar3 + -0x2d4) ^ DAT_182670aa0;
  *(ulonglong *)(lVar3 + -0x3b0) = CONCAT44(uVar26,uVar6) ^ 0x35172280e1293109;
  *(uint *)(lVar3 + -0xc04) = uVar32 << ((local_c8 ^ 0x30) & 0x1f) ^ DAT_182670ad8;
  uVar16 = DAT_18267080c;
  uVar32 = (uVar18 ^ 0xb99b65c5) * uVar32 ^ DAT_182670af0;
  uVar17 = (*(uint *)(lVar3 + -0x3d4) ^ uVar17) -
           (*(uint *)(lVar3 - (uVar12 ^ 0x21e6c4d7)) ^ DAT_182670ad8) ^ DAT_182670a20;
  *(uint *)(lVar3 + -0x9ec) = uVar17;
  uVar17 = uVar17 ^ DAT_182670a20;
  *(uint *)(lVar3 + -0xcec) = uVar32;
  lVar4 = DAT_1826707a0;
  uVar17 = (*(uint *)(lVar3 + -0xa34) ^ uVar28) * uVar17;
  *(uint *)(lVar3 + -0x7e4) = uVar17 ^ uVar16;
  uVar16 = DAT_182670b00;
  uVar15 = (ulonglong)DAT_182670a5c;
  *(uint *)(lVar4 + -0x540) =
       (*(uint *)(lVar4 - (uVar23 ^ 0xb99b6930)) ^ DAT_182670af0) + uVar17 ^ DAT_182670b00;
  *(byte *)(lVar4 + -0x2e9) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x1c8) ^ uVar15) ^ (byte)DAT_182670adc;
  puVar33 = (uint *)(lVar4 - ((ulonglong)uVar24 ^ 0xb99b69e8));
  *puVar33 = (*(uint *)(lVar4 - (uVar14 ^ 0xe6aa3a3d)) ^ uVar16) << 0xd ^ _DAT_1826708f8;
  uVar9 = DAT_182670a58;
  lVar3 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar14 ^ 0xe6aa3ce5)) =
       (*(uint *)(lVar4 - (uVar36 ^ 0x84804564)) ^ uVar16) >> 0x13 ^ DAT_182670a58;
  *puVar19 = (*puVar33 ^ _DAT_1826708f8 | *(uint *)(lVar3 + -0x398) ^ uVar9) ^ DAT_182670960;
  uVar32 = DAT_18267096c;
  *(uint *)(lVar3 - (uVar23 ^ 0xb99b61e0)) =
       (*(uint *)(lVar3 + -0xa34) ^ uVar28) + (DAT_182670848 ^ *(uint *)(lVar3 + -0xb54)) ^ uVar10;
  uVar16 = DAT_182670988 ^ DAT_182670960;
  puVar19 = (uint *)(lVar3 - (uVar35 ^ 0x7b7fbbe7));
  *(uint *)(lVar3 + -0x8e0) = *puVar19 ^ DAT_182670908 ^ uVar10;
  *(uint *)(lVar3 - (uVar13 ^ 0xd3c8e20d)) = uVar16 ^ *(uint *)(lVar3 + -0xc0c);
  uVar10 = DAT_182670a84;
  uVar16 = DAT_1826707b4;
  uVar15 = (ulonglong)DAT_182670a84;
  *(ulonglong *)(lVar3 + -0xd38) =
       (CONCAT44(uVar22,uVar24) ^ 0x27bcb25dbf79b627) >>
       ((byte)*(undefined8 *)(lVar3 - (uVar35 ^ 0x7b7fba53)) & 0x3f);
  *(uint *)(lVar3 + -0x68c) = *(uint *)(lVar3 + -0x8e0) ^ uVar32 ^ DAT_182670908;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x21e6c863)) =
       (CONCAT44(uVar26,uVar24) ^ 0x57f2308f15eb7ae5) >> (((byte)uVar16 ^ 0x9f) & 0x3f);
  uVar17 = DAT_18267089c;
  uVar34 = (ulonglong)DAT_18267089c;
  *(uint *)(lVar4 + -0x280) = *(uint *)(lVar3 + -0x42c) ^ DAT_18267089c ^ DAT_182670988;
  bVar8 = DAT_1826708bc;
  uVar28 = DAT_18267084c;
  pbVar29 = (byte *)((CONCAT44(uVar31,uVar27) ^ 0xd3c8e621b99b65dc) * 0x20 +
                     (CONCAT44(uVar5,uVar6) ^ 0x84804024e6aa3f79) + *(longlong *)(lVar4 + -0x30));
  *(ulonglong *)(lVar4 + -0xa60) = (ulonglong)pbVar29 ^ uVar15;
  *(byte *)(lVar4 + -0xa72) = *pbVar29 ^ bVar8 ^ (byte)DAT_182670adc;
  *(undefined1 *)(*(ulonglong *)(lVar4 + -0x6a8) ^ (ulonglong)uVar21) = 0x83;
  uVar31 = DAT_182670900;
  *(uint *)(lVar4 + -0x3d4) = (*(byte *)(lVar4 - (uVar36 ^ 0x84804a56)) ^ bVar8) ^ uVar28;
  uVar16 = DAT_1826707a8;
  *puVar37 = (*(uint *)(lVar4 + -0x280) ^ uVar17) + (uVar7 ^ 0xeac285f0) ^ DAT_182670aa8;
  uVar17 = *puVar25 ^ uVar28;
  uVar21 = *(uint *)(lVar4 + -0xc04) ^ DAT_182670aa8;
  *(int *)(lVar4 + -0x2d4) = 0x7864b59a << (((byte)uVar16 ^ 0x23) & 0x1f);
  *(ulonglong *)(lVar4 + -0x9c8) = (ulonglong)(uVar27 >> 0x1e);
  *(uint *)(lVar4 + -0x9ec) = uVar17 * 0x20000 ^ uVar31;
  uVar27 = DAT_1826707b4;
  uVar16 = uVar21 + uVar17 * -0x20000 ^ DAT_182670a6c;
  uVar15 = (ulonglong)DAT_1826707b4;
  *(uint *)(lVar4 + -0x7e4) = uVar16;
  *(uint *)(lVar4 + -0xcec) =
       (*(uint *)(lVar4 + -0x68c) ^ uVar32) * (uVar16 ^ DAT_182670a6c) ^ DAT_182670aa4;
  uVar27 = (*(uint *)(lVar4 - ((ulonglong)uVar27 ^ 0x21e6cb47)) ^ uVar28) * (uVar27 ^ 0x21e6c897) ^
           DAT_1826708f0;
  *(uint *)(lVar4 + -0x540) = uVar27;
  uVar31 = DAT_182670990;
  *(uint *)(lVar4 - (uVar14 ^ 0xe6aa3349)) =
       (*(uint *)(lVar4 - (uVar12 ^ 0x21e6c43f)) ^ DAT_182670aa4) + (uVar27 ^ DAT_1826708f0) ^ uVar9
  ;
  uVar16 = DAT_18267083c;
  uVar27 = DAT_1826707fc;
  *(uint *)(lVar4 + -0x398) = (*(uint *)(lVar4 + -0xc34) ^ uVar9) << 0xd ^ DAT_182670a34;
  uVar28 = (*(uint *)(lVar4 + -0xc34) ^ uVar9) >> 0x13 ^ DAT_18267081c;
  *(ulonglong *)(lVar4 + -0x438) =
       CONCAT44(uVar26,uVar7) ^ *(ulonglong *)(lVar4 + -0x68) ^ 0x4994e473566922ac;
  *(uint *)(lVar4 + -0xa34) = uVar28;
  uVar21 = (*(uint *)(lVar4 + -0x68c) ^ uVar32) + (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^
           uVar27;
  *(uint *)(lVar4 + -0x43c) =
       (*(uint *)(lVar4 - (uVar12 ^ 0x21e6cb4b)) ^ DAT_182670a34 | uVar28 ^ DAT_18267081c) ^
       DAT_18267098c;
  *(uint *)(lVar4 + -0xc0c) = uVar21;
  uVar21 = uVar21 ^ DAT_182670ae0;
  *(longlong *)(lVar4 + -0x400) = -0x5e2b56d83d4d78ab << (((byte)uVar24 ^ 0xe2) & 0x3f);
  uVar28 = DAT_1826709d8 ^ DAT_18267098c;
  *(uint *)(lVar4 + -0x8e0) = uVar21 ^ uVar27;
  *(uint *)(lVar4 + -0x42c) = uVar28 ^ *puVar20;
  puVar20 = (uint *)(lVar4 - (uVar23 ^ 0xb99b6d3c));
  *(uint *)(lVar4 + -0x280) = uVar16 ^ DAT_182670ae0 ^ *puVar20;
  *(ulonglong *)(lVar4 + -0xa18) = (CONCAT44(uVar5,uVar24) ^ 0x76caf3c8e4694) << 0xb;
  bVar8 = DAT_18267097c;
  uVar28 = *(uint *)(lVar4 - (uVar15 ^ 0x21e6ccbf)) ^ uVar31 ^ DAT_1826709d8;
  uVar15 = (ulonglong)DAT_182670a90;
  *(undefined8 *)(lVar4 + -0x118) = 0x996d9a598798c76;
  *(uint *)(lVar4 + -0x2d4) = uVar28;
  pbVar29 = (byte *)(*(longlong *)(lVar4 + -0x30) + 0xf +
                    (CONCAT44(uVar22,uVar7) ^ 0x21e6c89321e6c8d3) * 0x20);
  *(ulonglong *)(lVar4 + -0xcc8) = (ulonglong)pbVar29 ^ uVar15;
  *(byte *)(lVar4 + -0x7a1) = *pbVar29 ^ bVar8 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar35 ^ 0x7b7fbdf3)) ^ (ulonglong)DAT_18267086c) = bVar2 ^ 0x2f
  ;
  uVar31 = (uVar31 ^ *(uint *)(lVar4 + -0x2d4)) + (uVar18 ^ 0x72bf28ff) ^ DAT_182670a94;
  uVar22 = (uint)(*(byte *)(lVar4 - (uVar23 ^ 0xb99b627d)) ^ bVar8);
  *(uint *)(lVar4 + -0xc04) = uVar22 ^ uVar10;
  *(ulonglong *)(lVar4 + -0x610) =
       *(ulonglong *)(lVar4 + -0x588) >> ((byte)*(undefined8 *)(lVar4 + -0x68) & 0x3f);
  *(uint *)(lVar4 + -0x9ec) = uVar31;
  *(uint *)(lVar4 - (uVar13 ^ 0xd3c8e1c5)) = uVar22 << 0x11 ^ uVar27;
  *(uint *)(lVar4 - (uVar14 ^ 0xe6aa3ca9)) =
       (*puVar30 ^ DAT_182670a94) - (uVar27 ^ *(uint *)(lVar4 + -0x7e4)) ^ DAT_182670844;
  *(ulonglong *)(lVar4 + -0x658) =
       (CONCAT44(uVar24,uVar6) ^ 0x48d212fb78f59e34) >> (((byte)uVar7 ^ 0xd0) & 0x3f);
  uVar31 = DAT_1826709b4;
  uVar27 = DAT_182670948;
  uVar22 = DAT_1826707ac;
  *(uint *)(lVar4 - (uVar13 ^ 0xd3c8eacd)) =
       (*(uint *)(lVar4 - (uVar13 ^ 0xd3c8e5f5)) ^ DAT_182670844) *
       (uVar16 ^ *(uint *)(lVar4 + -0x280)) ^ DAT_1826709b4;
  bVar2 = (byte)uVar22;
  uVar18 = (*(uint *)(lVar4 - (uVar36 ^ 0x84804c20)) ^ uVar10) * (uVar22 ^ 0xe6aa3f72);
  *(uint *)(lVar4 + -0x540) = uVar18 ^ DAT_1826709b8;
  uVar22 = DAT_1826707b4;
  uVar31 = (uVar31 ^ *(uint *)(lVar4 + -0xcec)) + uVar18;
  *(uint *)(lVar4 + -0xc34) = uVar31 ^ uVar27;
  *(int *)(lVar4 + -0x398) = (int)uVar18 >> ((bVar2 ^ 0x6b) & 0x1f);
  uVar31 = uVar31 << (((byte)uVar22 ^ 0x9e) & 0x1f) ^ DAT_18267095c;
  *(uint *)(lVar4 + -0xa34) = uVar31;
  uVar31 = uVar31 ^ DAT_18267095c;
  uVar22 = (*(uint *)(lVar4 - (uVar13 ^ 0xd3c8ea15)) ^ uVar27) >> ((bVar2 ^ 0x6e) & 0x1f) ^
           DAT_18267092c;
  *(uint *)(lVar4 + -0x68c) = uVar22;
  uVar27 = (uVar31 | uVar22 ^ DAT_18267092c) ^ DAT_182670a2c;
  *(longlong *)(lVar4 + -0x6b8) = *(longlong *)(lVar4 + -0x890) << (((byte)uVar6 ^ 0x4c) & 0x3f);
  uVar22 = DAT_182670848 ^ *(uint *)(lVar4 + -0xb54);
  *(uint *)(lVar4 + -0xc0c) = uVar27;
  *(uint *)(lVar4 + -0x43c) = (uVar16 ^ *(uint *)(lVar4 + -0x280)) + uVar22 ^ DAT_18267090c;
  *(uint *)(lVar4 + -0x8e0) = *puVar19 ^ DAT_182670ad0 ^ DAT_18267090c;
  uVar27 = *(uint *)(lVar4 - (uVar13 ^ 0xd3c8ea2d)) ^ DAT_182670a2c ^ DAT_182670aa0;
  uVar22 = DAT_182670a1c ^ DAT_182670ad0;
  *(uint *)(lVar4 + -0x42c) = uVar27;
  uVar27 = uVar27 ^ DAT_182670930 ^ DAT_182670aa0;
  *(uint *)(lVar4 + -0x2d4) = uVar22 ^ *puVar20;
  *(uint *)(lVar4 - (uVar12 ^ 0x21e6c13f)) = uVar27;
  *(ulonglong *)(lVar4 + -0x270) =
       (CONCAT44(uVar7,uVar5) ^ 0x21e6c8d384804024) * 0x20 +
       (CONCAT44(uVar26,uVar5) ^ 0x7b7fbfdb8480403e) + *(longlong *)(lVar4 + -0x30) ^ uVar34;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar24) * 4) = uVar11;
  return;
}



############ FUN_ 180d18bb0 size=5275 ############

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

void FUN_180d18bb0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong *puVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  int *piVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res18;
  ulonglong uVar26;
  
  uVar10 = DAT_182670a04;
  uVar9 = DAT_18267098c;
  uVar8 = DAT_1826707f0;
  uVar17 = DAT_1826707e4;
  uVar6 = DAT_1826707c4;
  uVar13 = DAT_1826707b8;
  uVar7 = DAT_1826707ac;
  lVar4 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_1826707ac;
  uVar44 = (ulonglong)DAT_1826707c4;
  uVar20 = (ulonglong)DAT_1826707f0;
  uVar23 = (ulonglong)DAT_1826707b8;
  uVar22 = DAT_1826707ac ^ DAT_1826707b8;
  uVar25 = DAT_1826707bc + DAT_1826707cc;
  uVar26 = (ulonglong)uVar25;
  DAT_1826707d0 = DAT_1826707f0 - DAT_1826707e4;
  uVar29 = DAT_1826707c4 << 0x10 | DAT_1826707c4 >> 0x10;
  DAT_1826707e0 =
       (DAT_1826707a8 << 0x10 | DAT_1826707a8 & 0xff00) << 8 | DAT_1826707a8 >> 8 & 0xff00 |
       DAT_1826707a8 >> 0x18;
  uVar11 = *(uint *)(&DAT_18260f758 + DAT_182670c20) ^ DAT_1826707e0;
  uVar24 = (ulonglong)DAT_1826707e4;
  uVar12 = *(uint *)(&DAT_18260f750 + (uVar24 ^ 0xed3a069c) + (longlong)DAT_182670c20) ^
           DAT_1826707a8;
  uVar33 = (ulonglong)DAT_1826707d0;
  uVar34 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar28 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f0 ^ 0xa9f7a428)) ^
           CONCAT44(DAT_1826707f8,DAT_1826707f8)) +
           (CONCAT44(DAT_1826707d0,uVar29) ^ 0x5c6be97674a1fbe9);
  DAT_1826707b4 = uVar22;
  DAT_1826707c8 = uVar25;
  DAT_1826707d8 = uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar28 ^ uVar34;
  uVar42 = CONCAT44(uVar10,uVar10);
  uVar30 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar4 + -0x660) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xde3ce151)) ^ CONCAT44(uVar9,uVar9)) - uVar28 ^
       uVar42;
  uVar19 = CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar21 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar4 + -0xbb0) =
       *(ulonglong *)(lVar4 - (uVar20 ^ 0xa9f7a8a0)) ^ uVar21 ^ uVar19 ^ uVar30 ^
       *(ulonglong *)(lVar4 + -0x588);
  uVar9 = DAT_182670af8;
  *(int *)(lVar4 + -0x814) =
       *(int *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0xbfffaea8)) + *(int *)(lVar4 + -0xa34);
  bVar37 = (byte)uVar7;
  uVar31 = (uVar30 ^ *(ulonglong *)(lVar4 + -0xbb0)) >> ((bVar37 ^ 0x4c) & 0x3f);
  puVar1 = (ulonglong *)(lVar4 + -0xb70);
  *puVar1 = uVar31 ^ CONCAT44(uVar9,uVar9);
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670894,DAT_182670894);
  uVar27 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xa9f7aff0)) ^ uVar30) <<
       (((byte)uVar25 ^ 0xd) & 0x3f) ^ uVar28;
  uVar30 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar31 = *(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xed3a034c)) ^ uVar28 | uVar31;
  uVar32 = (ulonglong)uVar22;
  uVar28 = CONCAT44(DAT_182670a24,DAT_182670a24);
  *(ulonglong *)(lVar4 + -0x420) = uVar31 ^ uVar27;
  uVar10 = DAT_18267091c;
  uVar28 = (*(ulonglong *)(lVar4 + -0xce0) ^ uVar21) - (uVar28 ^ *(ulonglong *)(lVar4 + -0x6f0));
  *(ulonglong *)(lVar4 + -0x4c8) = uVar28 ^ uVar30;
  uVar9 = DAT_182670844;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar21 = (ulonglong)DAT_182670818;
  bVar16 = (byte)uVar17;
  uVar35 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0xf621b352)) = uVar28 - uVar31 ^ uVar30;
  uVar10 = DAT_1826708e0;
  *(uint *)(lVar4 + -0x398) = (uVar6 ^ 0xbaa871b6) << ((bVar16 ^ 0x98) & 0x1f);
  uVar31 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0xf0) =
       (CONCAT44(uVar7,uVar13) ^ 0xb68542a340a4f7a2) -
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar4 + -0xac0)) ^ uVar31;
  uVar28 = CONCAT44(DAT_182670944,DAT_182670944);
  uVar27 = (*(ulonglong *)(lVar4 - (uVar20 ^ 0xa9f7a4b0)) ^ uVar31) +
           (uVar27 ^ *(ulonglong *)(lVar4 + -0x420));
  puVar2 = (ulonglong *)(lVar4 + -0xd38);
  uVar39 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar4 + -0x118) = uVar27 ^ uVar28;
  uVar28 = *(ulonglong *)(lVar4 - (uVar33 ^ 0xbcbd9cac)) ^ uVar39 ^ uVar35 ^ uVar28 ^
           *(ulonglong *)(lVar4 + -0x220);
  uVar31 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(ulonglong *)(lVar4 + -0x610) = uVar28;
  uVar35 = (uVar35 ^ uVar28) << 0x20;
  uVar21 = *(ulonglong *)(lVar4 - (uVar44 ^ 0xde3cefd1)) >> 0x20 ^ uVar31 ^ uVar21;
  uVar28 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *puVar2 = uVar21;
  uVar9 = DAT_182670ae8;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar35 ^ uVar28;
  lVar5 = DAT_1826707a0;
  uVar35 = uVar31 ^ uVar21 | uVar35;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar35 ^ uVar19;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar35 = (uVar39 ^ *(ulonglong *)(lVar5 + -0x220)) - uVar35;
  uVar31 = uVar35 ^ uVar21;
  uVar28 = CONCAT44(DAT_1826707e0,uVar25);
  *(ulonglong *)(lVar5 + -0x9c8) = uVar31;
  uVar6 = DAT_1826707a8;
  bVar15 = (byte)DAT_1826707bc;
  *(ulonglong *)(lVar5 + -0x890) = (uVar28 ^ 0x39146ba3e4951948) - uVar27;
  uVar9 = DAT_182670968;
  uVar27 = CONCAT44(DAT_182670b00,DAT_182670b00);
  puVar3 = (ulonglong *)(lVar5 + -0x658);
  uVar42 = *(ulonglong *)(lVar5 + -0x660) ^ uVar27 ^ uVar30 ^ *puVar3 ^ uVar42;
  *(ulonglong *)(lVar5 + -0x588) = uVar42;
  uVar10 = DAT_182670aa4;
  uVar28 = (uVar42 ^ uVar27) >> ((bVar15 ^ 0xdc) & 0x3f);
  *(ulonglong *)(lVar5 + -0xbb0) = uVar28 ^ CONCAT44(uVar9,uVar9);
  uVar36 = CONCAT44(uVar10,uVar10);
  uVar42 = (uVar42 ^ uVar27) << (((byte)uVar6 ^ 0xdd) & 0x3f);
  *puVar1 = uVar42 ^ uVar36;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar28 = (uVar42 | uVar28) ^ uVar27;
  piVar18 = (int *)(DAT_1826707a0 - (uVar33 ^ 0xbcbd9554));
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar28;
  *(uint *)(lVar4 + -0xb54) = (DAT_1826707ac ^ 0xd95f73ad) + *piVar18;
  uVar43 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  uVar17 = DAT_1826707bc ^ 0x84b5b6e;
  *(ulonglong *)(lVar4 + -0x6f0) =
       (uVar30 ^ *puVar3) - (*(ulonglong *)(lVar4 - (uVar32 ^ 0xf621b0ca)) ^ uVar27) ^ uVar43;
  uVar9 = DAT_182670964;
  uVar39 = CONCAT44(DAT_182670994,DAT_182670994);
  *(uint *)(lVar4 + -0xa34) = uVar17 + (DAT_1826707cc ^ 0x808dbb30);
  lVar5 = DAT_1826707a0;
  uVar31 = uVar39 ^ uVar27 ^ uVar21 ^ uVar28 ^ uVar31;
  *(ulonglong *)(lVar4 + -0xce0) = uVar31;
  uVar42 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x177e791d)) ^ uVar39) >>
           ((bVar37 ^ 0x66) & 0x3f);
  *(ulonglong *)(lVar5 + -0x4c8) = uVar42 ^ CONCAT44(uVar9,uVar9);
  uVar6 = DAT_1826707cc;
  uVar21 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar5 + -0xf0) =
       *(ulonglong *)(lVar5 - (uVar44 ^ 0xde3cee19)) ^ uVar27 ^ uVar19 ^ uVar28;
  uVar28 = CONCAT44(DAT_1826707bc,uVar6);
  *(ulonglong *)(lVar5 + -0x420) = (uVar39 ^ uVar31) << (((byte)uVar6 ^ 0x47) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar5 + -0x610) =
       (uVar28 ^ 0xa546580374248568) + (CONCAT44(uVar7,uVar13) ^ 0x886608a4f1f8b1d8);
  uVar13 = DAT_1826707e8;
  uVar45 = CONCAT44(DAT_182670984,DAT_182670984);
  uVar27 = (ulonglong)DAT_1826707e8;
  *puVar2 = (*(ulonglong *)(lVar5 - (uVar20 ^ 0xa9f7a060)) ^ uVar21 | uVar42) ^ uVar45;
  uVar6 = DAT_1826707d4;
  uVar21 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar28 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar5 - (uVar26 ^ 0xd56a1c85)) =
       uVar35 - (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707a8 ^ 0x177e78c5)) ^ uVar45) ^ uVar21;
  uVar9 = DAT_182670a1c;
  uVar13 = uVar6 - uVar13;
  uVar35 = (ulonglong)uVar13;
  DAT_1826707b0 = uVar13;
  *(ulonglong *)(lVar5 + -0x220) =
       (CONCAT44(uVar13,uVar6) ^ 0xea0f05f8b9c21893) + (uVar43 ^ *(ulonglong *)(lVar5 + -0x6f0));
  uVar42 = CONCAT44(uVar9,uVar9);
  uVar19 = uVar42 ^ uVar43 ^ *(ulonglong *)(lVar5 + -0x7d8) ^ *(ulonglong *)(lVar5 + -0x6f0) ^
           uVar19;
  *(ulonglong *)(lVar5 + -0x118) = uVar19;
  lVar4 = DAT_1826707a0;
  bVar15 = (byte)uVar6;
  uVar31 = (uVar19 ^ uVar42) << 0x2a;
  uVar20 = (uVar19 ^ uVar42) >> ((bVar15 ^ 0xd7) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar20 ^ uVar30;
  uVar30 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(uint *)(lVar4 + -0x814) = *(uint *)(lVar4 + -0x140) | 0x49ca5c47;
  uVar9 = _DAT_1826708f8;
  uVar20 = uVar20 | uVar31;
  *(ulonglong *)(lVar4 + -0x660) = uVar31 ^ uVar30;
  uVar10 = DAT_182670a68;
  uVar40 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x588) = uVar20 ^ uVar40;
  uVar31 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x72a68b0a)) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x6b966ff7)) ^ uVar43) - uVar20 ^ uVar31;
  uVar39 = CONCAT44(DAT_18267087c,DAT_18267087c);
  uVar30 = uVar39 ^ uVar40 ^ uVar21 ^ *(ulonglong *)(lVar4 + -0x6b8) ^
           *(ulonglong *)(lVar4 + -0x588);
  *puVar1 = uVar30;
  uVar19 = (uVar30 ^ uVar39) >> (((byte)uVar13 ^ 0x29) & 0x3f);
  *puVar3 = uVar19 ^ CONCAT44(DAT_182670988,DAT_182670988);
  uVar9 = DAT_182670950;
  lVar4 = DAT_1826707a0;
  uVar20 = (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x6b966277)) ^ uVar39) <<
           ((bVar15 ^ 0xd3) & 0x3f);
  uVar30 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar20 ^ CONCAT44(DAT_182670b08,DAT_182670b08);
  uVar43 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0x156a74b1)) = (uVar20 | uVar19) ^ uVar43;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0x6b9665e7)) = (uVar39 ^ *puVar1) + 0x621361a096347a61;
  uVar9 = DAT_182670af4;
  uVar20 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar4 + -0x610) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0x6b8)) - (uVar43 ^ *(ulonglong *)(lVar4 + -0xf0)) ^ uVar20
  ;
  uVar6 = DAT_1826707e0;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0xe9c1daf4)) =
       uVar21 ^ uVar31 ^ uVar45 ^ *puVar2 ^ *(ulonglong *)(lVar4 + -0xbb0);
  uVar9 = DAT_182670910;
  uVar19 = (uVar21 ^ *(ulonglong *)(lVar4 + -0x4c8)) >> (((byte)uVar6 ^ 0x1b) & 0x3f);
  *(ulonglong *)(lVar4 + -0x420) = uVar19 ^ CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar10 = DAT_182670924;
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar9,uVar9);
  local_res18 = (byte)uVar8;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x497ab994)) ^ uVar21) <<
       ((local_res18 ^ 0x74) & 0x3f) ^ uVar30;
  uVar21 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xde3cebe1)) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0x72a68972)) ^ uVar30 | uVar19) ^ uVar21;
  uVar9 = DAT_182670ac8;
  uVar19 = CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar39 = uVar21 ^ uVar20 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0x610) ^
           *(ulonglong *)(lVar4 + -0x220);
  *(ulonglong *)(lVar4 + -0x118) = uVar39;
  uVar27 = CONCAT44(uVar9,uVar9);
  uVar30 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar4 + -0x7d8) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0xbb0)) - (uVar21 ^ *(ulonglong *)(lVar4 + -0x220)) ^
       uVar19;
  *(ulonglong *)(lVar4 + -0x890) = (uVar39 ^ uVar40) >> (((byte)uVar13 ^ 0x1e) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xbcbd9bd4)) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xf621b412)) ^ uVar40) << (((byte)uVar6 ^ 0x30) & 0x3f) ^
       uVar30;
  uVar31 = CONCAT44(DAT_182670970,DAT_182670970);
  uVar21 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707cc ^ 0x156a72b1)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0xbfffa39c)) ^ uVar30 |
       uVar27 ^ *(ulonglong *)(lVar4 + -0x890)) ^ uVar31;
  uVar39 = CONCAT44(DAT_182670a48,DAT_182670a48);
  uVar30 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xd56a1fb5)) =
       (uVar20 ^ *(ulonglong *)(lVar4 + -0x610)) -
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0xbcbd99b4)) ^ uVar39) ^ uVar30;
  uVar40 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *puVar3 = (uVar30 ^ *(ulonglong *)(lVar4 + -0x588)) - (uVar31 ^ *(ulonglong *)(lVar4 + -0x6f0)) ^
            uVar40;
  uVar30 = CONCAT44(DAT_182670918,DAT_182670918);
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x177e703d)) =
       (CONCAT44(uVar8,uVar13) ^ 0x7721b6f3dc0e041b) + (*(ulonglong *)(lVar4 + -0x438) ^ uVar19) ^
       uVar30;
  uVar13 = DAT_1826707e0;
  uVar6 = DAT_1826707dc;
  uVar38 = (ulonglong)DAT_1826707dc;
  uVar17 = DAT_1826707dc << 0x10 | DAT_1826707dc >> 0x10;
  uVar27 = CONCAT44(DAT_182670978,DAT_182670978);
  bVar41 = (byte)DAT_1826707dc;
  DAT_1826707c0 = uVar17;
  *puVar1 = (uVar31 ^ *(ulonglong *)(lVar4 + -0x6f0)) -
            (*(ulonglong *)(lVar4 - (uVar38 ^ 0xbc213bd6)) ^ uVar30) ^ uVar27;
  uVar20 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar21 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar30 = uVar20 ^ uVar19 ^ uVar43 ^ *(ulonglong *)(lVar4 + -0x7d8) ^ *(ulonglong *)(lVar4 + -0xf0)
  ;
  *(ulonglong *)(lVar4 + -0xce0) = uVar30;
  *(ulonglong *)(lVar4 + -0x6b8) = (uVar30 ^ uVar20) >> ((bVar41 ^ 0x37) & 0x3f) ^ uVar21;
  *(uint *)(lVar4 + -0x398) =
       *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0x3e16b961)) | uVar17 ^ 0x9581ef67;
  uVar30 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xbc21332e)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xbc2132f6)) ^ uVar20) <<
       ((bVar37 ^ 0x43) & 0x3f) ^ uVar30;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xfd757adf)) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0xed3a0bb4)) ^ uVar30 |
       uVar21 ^ *(ulonglong *)(lVar4 + -0x6b8)) ^ uVar36;
  uVar9 = DAT_1826708c0;
  uVar24 = (uVar19 ^ *(ulonglong *)(lVar4 + -0x7d8)) - (uVar34 ^ *(ulonglong *)(lVar4 + -0x1b8));
  *(ulonglong *)(lVar4 + -0x420) = uVar24 ^ CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar10 = DAT_182670b14;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x9c8) = uVar24 - (*(ulonglong *)(lVar5 + -0x4c8) ^ uVar36) ^ uVar19;
  uVar9 = DAT_182670ab0;
  uVar24 = -(*(ulonglong *)(lVar5 - ((ulonglong)uVar17 ^ 0x3e16b979)) ^ uVar42) - 0xb;
  *(ulonglong *)(lVar5 + -0xbb0) = uVar24 ^ CONCAT44(uVar10,uVar10);
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar24 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0xbc213ade)) ^ uVar36) + uVar24 ^ uVar30;
  uVar20 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  puVar14 = (ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0xbf5b0e0e));
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar24;
  uVar9 = DAT_1826708dc;
  uVar24 = *puVar14 ^ uVar20 ^ uVar30 ^ uVar40 ^ uVar24;
  *(ulonglong *)(lVar4 + -0x118) = uVar24;
  uVar30 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0xfd757877)) =
       (uVar20 ^ uVar24) >> ((bVar16 ^ 0x89) & 0x3f) ^ uVar30;
  uVar24 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar20 = (uVar20 ^ *(ulonglong *)(lVar4 + -0x118)) << 0x3b;
  *(int *)(lVar4 + -0xb54) = *(int *)(lVar4 + -0x3d4) + *(int *)(lVar4 + -0x814);
  uVar9 = DAT_1826709a4;
  uVar30 = uVar20 | uVar30 ^ *(ulonglong *)(lVar4 + -0x660);
  *(ulonglong *)(lVar4 + -0x890) = uVar20 ^ uVar24;
  uVar10 = DAT_1826709f0;
  uVar21 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x610) = uVar30 ^ uVar21;
  uVar20 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x588) = (uVar40 ^ *puVar3) - uVar30 ^ uVar20;
  uVar9 = DAT_182670960;
  uVar6 = DAT_1826707bc;
  lVar5 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_182670898,DAT_182670898);
  uVar24 = *(ulonglong *)(lVar4 - (uVar28 ^ 0xde3ce009)) ^ uVar30 ^ uVar19 ^ uVar27 ^ *puVar1;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar24;
  uVar10 = DAT_182670aec;
  uVar28 = (uVar24 ^ uVar30) >> (((byte)uVar6 ^ 0xd9) & 0x3f);
  uVar42 = (uVar30 ^ uVar24) << ((local_res18 ^ 0x5b) & 0x3f);
  *(ulonglong *)(lVar5 + -0xce0) = uVar42 ^ CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar5 + -0xf0) = uVar28 ^ CONCAT44(uVar9,uVar9);
  uVar24 = (ulonglong)DAT_1826707cc;
  uVar31 = CONCAT44(uVar10,uVar10);
  *(int *)(lVar5 + -0xa34) = *(int *)(lVar5 + -0x7e4) - *(int *)(lVar5 + -0xc0c);
  uVar9 = DAT_182670a50;
  uVar42 = uVar42 | uVar28;
  uVar28 = uVar42 ^ uVar31;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar28;
  uVar30 = CONCAT44(uVar9,uVar9);
  uVar27 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *puVar2 = (*(ulonglong *)(lVar5 - (uVar24 ^ 0x156a7d89)) ^ uVar19) - uVar42 ^ uVar30;
  bVar16 = (byte)DAT_1826707e0;
  uVar28 = *(ulonglong *)(lVar5 - (uVar33 ^ 0xbcbd983c)) ^ uVar27 ^ uVar31 ^ uVar20 ^ uVar28;
  *(ulonglong *)(lVar5 + -0x1b8) = uVar28;
  *(ulonglong *)(lVar5 + -0x7d8) = (uVar28 ^ uVar27) >> (bVar16 & 0x3f) ^ uVar39;
  uVar9 = DAT_182670a18;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0xf621b12a)) =
       (*(ulonglong *)(lVar5 - (uVar44 ^ 0xde3ce879)) ^ uVar27) << 0x29 ^ uVar40;
  lVar4 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x6b966dcf)) =
       (uVar40 ^ *(ulonglong *)(lVar5 + -0x420) | uVar39 ^ *(ulonglong *)(lVar5 + -0x7d8)) ^ uVar24;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xd56a118d)) =
       (uVar20 ^ *(ulonglong *)(lVar4 + -0x588)) - (uVar24 ^ *(ulonglong *)(lVar4 + -0x4c8)) ^
       CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182670a08;
  uVar28 = CONCAT44(DAT_182670948,DAT_182670948);
  uVar24 = uVar30 ^ uVar21 ^ uVar28 ^ *puVar2 ^ *(ulonglong *)(lVar4 + -0x610);
  *(ulonglong *)(lVar4 + -0x220) = uVar24;
  uVar33 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0xbf5b0a76)) ^ uVar28) >> ((bVar15 ^ 0xe9) & 0x3f);
  *(ulonglong *)(lVar4 + -0x118) = uVar33 ^ CONCAT44(uVar9,uVar9);
  uVar6 = DAT_1826707bc;
  *(ulonglong *)(lVar4 + -0x660) =
       (CONCAT44(uVar29,uVar7) ^ 0x353f966c47bd8fb3) + 0x5fc4fe5cade956e6;
  uVar10 = DAT_182670aac;
  uVar28 = (uVar28 ^ uVar24) << (((byte)uVar6 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar4 + -0x890) = uVar28 ^ CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar9 = DAT_182670834;
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0x3e16ba79)) = (uVar33 | uVar28) ^ uVar24;
  *puVar1 = (uVar30 ^ *puVar2) - (*puVar3 ^ uVar24) ^ CONCAT44(uVar9,uVar9);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar11;
  return;
}



############ FUN_ 180c5ad60 size=4418 ############

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

void FUN_180c5ad60(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong *puVar12;
  ulonglong uVar13;
  longlong lVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  longlong *plVar17;
  byte bVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  uVar11 = DAT_1826707f0;
  uVar5 = DAT_1826707d8;
  uVar3 = DAT_1826707ac;
  lVar1 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707f0;
  uVar32 = (ulonglong)DAT_1826707d8;
  uVar21 = (ulonglong)DAT_1826707ac;
  uVar23 = (DAT_1826707f0 << 0x10 | DAT_1826707f0 & 0xff00) << 8 | DAT_1826707f0 >> 8 & 0xff00 |
           DAT_1826707f0 >> 0x18;
  uVar8 = DAT_1826707d8 ^ DAT_1826707ac;
  uVar16 = (ulonglong)uVar8;
  uVar9 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar8 ^ 0x8926ae09) + (longlong)DAT_182670ccc) ^
          DAT_1826707ac;
  uVar10 = *(uint *)(&DAT_18260f760 + DAT_182670ccc) ^ DAT_1826707d8;
  uVar37 = (ulonglong)uVar23;
  uVar19 = CONCAT44(DAT_1826707f0,uVar23);
  uVar36 = CONCAT44(DAT_182670acc,DAT_182670acc);
  bVar18 = (byte)(DAT_1826707f0 >> 0x18);
  DAT_1826707c4 = uVar8;
  DAT_1826707ec = uVar23;
  *(longlong *)(DAT_1826707a0 + -0xc18) = -0x324eac43bf46a84a << ((bVar18 ^ 0xaf) & 0x3f);
  *(ulonglong *)(lVar1 + -0x798) = *(ulonglong *)(lVar1 - (uVar16 ^ 0x8926a579)) ^ uVar36;
  plVar17 = (longlong *)(lVar1 - ((ulonglong)uVar23 ^ 0x40a4f2b1));
  *plVar17 = *(longlong *)(lVar1 + -0xae0);
  *(ulonglong **)(lVar1 + -0xd00) = *(ulonglong **)(lVar1 + -0x518) + 1;
  uVar24 = CONCAT44(DAT_182670920,DAT_182670920);
  uVar15 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar1 + -0x420) = uVar15 ^ uVar24 ^ **(ulonglong **)(lVar1 + -0x518);
  **(undefined8 **)(lVar1 + -0x58) = 0x9315a975d2cbbd08;
  puVar12 = (ulonglong *)(uVar36 ^ *(ulonglong *)(lVar1 + -0x798));
  *(ulonglong **)(lVar1 + -0x370) = puVar12 + (CONCAT44(uVar3,uVar8) ^ 0x11220008926ae00);
  uVar4 = DAT_182670964;
  uVar22 = CONCAT44(DAT_182670964,DAT_182670964);
  uVar35 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0xa9f7a040)) = uVar35 ^ uVar22 ^ *puVar12;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x883485b1)) =
       (CONCAT44(uVar23,uVar8) ^ 0x787e853e22d106c2) >>
       ((*(byte *)(DAT_1826707a0 + -0x400) ^ (byte)uVar4) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar13 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       *(ulonglong *)(lVar1 - (uVar21 ^ 0x1122420)) ^ *(ulonglong *)(DAT_1826707a0 + -0x400) ^
       uVar13 ^ uVar22 ^ uVar24;
  *(ulonglong *)(uVar36 ^ *(ulonglong *)(lVar2 + -0x798)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x88348811)) ^ uVar13 ^ uVar35;
  *(undefined8 *)(lVar2 + -0x428) = *(undefined8 *)(lVar2 + -0x370);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar5 ^ 0x88348c41)) = *(undefined8 *)(lVar2 + -0xd00);
  puVar12 = *(ulonglong **)(lVar2 + -0x240);
  *(ulonglong **)(lVar2 + -0x310) = puVar12;
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(uVar5,uVar23) ^ 0xb3c513cba55f562d) + (CONCAT44(uVar11,uVar8) ^ 0xb8906ef304b4b0ec)
  ;
  uVar24 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar2 + -0x6c8) = *(ulonglong *)(lVar2 + -0x428) ^ uVar24;
  uVar13 = CONCAT44(uVar3,uVar11) ^ 0x1122000a9f7a441;
  *(ulonglong **)(lVar2 + -0x7b8) = puVar12 + uVar13;
  uVar4 = DAT_182670a24;
  *(ulonglong *)(lVar2 + -0xac0) =
       (CONCAT44(uVar23,uVar8) ^ 0x31ce7dedd88c041e) - (CONCAT44(uVar3,uVar11) ^ 0x42e2cc0a6bb6f6c9)
  ;
  uVar28 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x438) = uVar28 ^ uVar15 ^ *puVar12;
  **(ulonglong **)(lVar2 - (uVar27 ^ 0xa9f7a0a0)) = uVar19 ^ 0x6365cafe1f69dcac;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x88348f81)) = (*(ulonglong *)(lVar2 + -0x6c8) ^ uVar24) + 8;
  lVar1 = DAT_1826707a0;
  puVar12 = (ulonglong *)(*(ulonglong *)(lVar2 + -0x6c8) ^ uVar24);
  uVar19 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar19 ^ uVar35 ^ *puVar12;
  uVar4 = DAT_182670800;
  uVar22 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar19 = *(ulonglong *)(lVar1 - (uVar16 ^ 0x8926aef1)) ^ uVar22 ^ uVar19 ^ uVar28 ^
           *(ulonglong *)(lVar1 + -0x438);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar19;
  *puVar12 = uVar19 ^ uVar22 ^ uVar35;
  uVar29 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar1 + -0xb78) = *(ulonglong *)(lVar1 + -0x180);
  *(ulonglong *)(lVar1 + -0x58) = uVar29 ^ *(ulonglong *)(lVar1 + -0x180);
  *(undefined8 *)(lVar1 + -0xae0) = *(undefined8 *)(lVar1 + -0x7b8);
  *(undefined8 *)(lVar1 + -0x518) = *(undefined8 *)(lVar1 + -0x7b8);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x11226e8)) = *plVar17 + uVar13 * 8;
  uVar33 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  *(ulonglong *)(lVar1 + -0x558) = **(ulonglong **)(lVar1 + -0x518) ^ uVar33 ^ uVar15;
  **(undefined8 **)(lVar1 - ((ulonglong)uVar23 ^ 0x40a4fdf1)) = 0xc9f6f56b346c5d96;
  *(ulonglong *)(lVar1 + -0x370) =
       (*(ulonglong *)(lVar1 - (uVar27 ^ 0xa9f7a418)) ^ uVar29) +
       (CONCAT44(uVar5,uVar3) ^ 0x88348e0101122001) * 8;
  uVar4 = DAT_1826709c8;
  uVar22 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar13 = *(ulonglong *)(uVar29 ^ *(ulonglong *)(lVar1 + -0x58)) ^ uVar22 ^ uVar35;
  *(ulonglong *)(lVar1 + -0x588) = uVar13;
  uVar19 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar1 - (uVar16 ^ 0x8926ae69)) =
       uVar19 ^ uVar13 ^ uVar22 ^ uVar33 ^ *(ulonglong *)(lVar1 + -0x558);
  *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar37 ^ 0x40a4f7f1)) ^ uVar29) =
       *(ulonglong *)(lVar1 + -0x68) ^ uVar19 ^ uVar35;
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x883489d9)) = **(ulonglong **)(lVar1 + -0x518) ^ uVar15;
  uVar11 = DAT_1826707d4;
  uVar5 = DAT_1826707cc;
  lVar2 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_1826707cc;
  uVar19 = (ulonglong)DAT_1826707d4;
  uVar31 = DAT_1826707cc * DAT_1826707d4;
  *(undefined8 *)(lVar1 - ((ulonglong)DAT_1826707e0 ^ 0xedc4f23d)) = *(undefined8 *)(lVar1 + -0x370)
  ;
  uVar4 = DAT_1826708f0;
  puVar12 = *(ulonglong **)(lVar1 + -0x6e8);
  *(ulonglong **)(lVar1 + -0x428) = puVar12;
  *(ulonglong **)(lVar1 + -0x4e0) = puVar12;
  uVar25 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar1 + -0x240) = uVar25 ^ *(ulonglong *)(lVar1 + -0xd00);
  uVar28 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  DAT_1826707b0 = uVar31;
  *(ulonglong *)(lVar1 + -0x1b8) = uVar28 ^ uVar15 ^ *puVar12;
  **(ulonglong **)(lVar2 + -0xb50) = CONCAT44(uVar5,uVar11) ^ 0xd327c2bd4fda6cca;
  uVar4 = DAT_182670968;
  puVar12 = (ulonglong *)(uVar25 ^ *(ulonglong *)(lVar2 + -0x240));
  uVar15 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar13 = uVar15 ^ uVar35 ^ *puVar12;
  *(ulonglong *)(lVar2 + -0x998) = uVar13;
  lVar1 = DAT_1826707a0;
  uVar22 = CONCAT44(uVar4,uVar4);
  uVar13 = uVar22 ^ uVar13 ^ uVar15 ^ uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0x1b8);
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar13;
  *puVar12 = uVar22 ^ uVar35 ^ uVar13;
  lVar2 = DAT_1826707a0;
  uVar20 = ~uVar23;
  DAT_1826707e0 = uVar20;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar31 ^ 0x1cd8cf2a)) =
       (CONCAT44(uVar31,uVar11) ^ 0xbc6f55f7bff64f8) >> (((byte)uVar5 ^ 0x39) & 0x3f);
  *(ulonglong *)(lVar1 + -0x310) =
       (CONCAT44(uVar5,uVar11) ^ 0xd32c523ade3ce9c1) * 0x80 +
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0xde3ce5c1)) ^ (ulonglong)DAT_182670a94) + 0x60;
  uVar4 = DAT_182670a30;
  *(ulonglong *)(lVar1 + -0x5c8) =
       CONCAT44(DAT_1826709ac,DAT_1826709ac) ^ *(ulonglong *)(lVar1 + -0xb00);
  uVar34 = CONCAT44(uVar4,uVar4);
  lVar14 = (CONCAT44(uVar11,uVar31) ^ 0xbc18d5d3abcd3ec9) << (((byte)uVar31 ^ 0xab) & 0x3f);
  *(longlong *)(lVar1 + -0x118) = lVar14;
  uVar4 = DAT_182670978;
  puVar12 = *(ulonglong **)(lVar1 - (uVar37 ^ 0x40a4f4b9));
  *(ulonglong *)(lVar1 + -0x180) = (ulonglong)puVar12 ^ uVar34;
  *(longlong *)(lVar1 + -0xd38) = lVar14 << 0x1a;
  uVar15 = CONCAT44(uVar4,uVar4);
  puVar26 = (ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xbf5b0e36));
  uVar13 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *puVar26 = *puVar12 ^ uVar15 ^ uVar35;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x7b8) =
       *(longlong *)(DAT_1826707a0 - (uVar37 ^ 0x40a4fdb9)) + 8 +
       ((CONCAT44(uVar23,uVar20) ^ 0x40a4f7a9bf5b0856) * 0x15 +
       (CONCAT44(uVar20,uVar23) ^ 0xbf5b085640a4f7a9)) * 8 ^ uVar13;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar20 ^ 0xbf5b019e)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0xbf5b0e0e)) ^ uVar22) -
       (CONCAT44(uVar5,uVar23) ^ 0x1bb60a9c1f7e54e7);
  lVar1 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_18267091c,DAT_18267091c);
  *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 + -0x7b8) ^ uVar13) = uVar15 ^ uVar28 ^ *puVar26;
  *(ulonglong *)(lVar1 - (uVar37 ^ 0x40a4fbb1)) =
       CONCAT44(uVar11,uVar31) ^ CONCAT44(uVar5,uVar5) ^ 0x5b53c8871e097153;
  lVar2 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xd32c54ca)) =
       *(ulonglong *)(uVar34 ^ *(ulonglong *)(lVar1 + -0x180)) ^ uVar35 ^ uVar22;
  *(ulonglong *)(uVar36 ^ *(ulonglong *)(lVar2 + -0x798)) =
       CONCAT44(uVar20,uVar11) ^ 0x5b6c511959ef189a;
  uVar13 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar2 + -0xbb0) =
       CONCAT44(uVar31,uVar23) ^ *(ulonglong *)(lVar2 + -0x6f0) ^ uVar13 ^ uVar22 ^
       0x709dc60e958ed8b;
  uVar4 = DAT_18267098c;
  uVar22 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar13 = *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xbf5b03e6)) ^ uVar22 ^ uVar13;
  *(ulonglong *)(lVar2 + -0x420) = uVar13;
  lVar1 = DAT_1826707a0;
  uVar15 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0x400) = uVar15 ^ uVar13 ^ uVar22;
  uVar4 = DAT_1826707fc;
  uVar34 = CONCAT44(DAT_182670914,DAT_182670914);
  puVar12 = (ulonglong *)
            (*(longlong *)(lVar1 - (uVar30 ^ 0xd32c512a)) +
            (CONCAT44(uVar11,uVar5) ^ 0xde3ce9c1d32c523b) * 8);
  *(ulonglong *)(lVar1 + -0xb78) = (ulonglong)puVar12 ^ uVar34;
  uVar30 = *puVar12 ^ uVar35;
  uVar13 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar1 + -0xd88) = uVar30 ^ CONCAT44(uVar4,uVar4);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xae0) =
       *(longlong *)(lVar1 + -0xa10) + 0x10 + (CONCAT44(uVar20,uVar8) ^ 0xbf5b08568926ae01) * 0xa8 ^
       uVar13;
  uVar22 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xbf5b02b6)) ^ uVar13) =
       uVar30 ^ uVar28;
  lVar1 = DAT_1826707a0;
  uVar13 = CONCAT44(DAT_1826707a8,uVar5);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar31 ^ 0x1cd8ccc2)) ^ uVar34) ^
       uVar35 ^ uVar22;
  *(ulonglong *)(*(ulonglong *)(lVar1 + -0x6c8) ^ uVar24) =
       CONCAT44(uVar31,uVar20) ^ 0xf67a9e6aef931800;
  uVar4 = DAT_182670824;
  *(ulonglong *)(lVar1 + -0xac0) = (uVar13 ^ 0xfee6eaf18cac97fd) >> ((bVar18 ^ 0x8f) & 0x3f);
  uVar24 = CONCAT44(uVar4,uVar4);
  uVar13 = *(ulonglong *)(lVar1 - (uVar32 ^ 0x88348a01)) ^ uVar24 ^ uVar22 ^ uVar15 ^
           *(ulonglong *)(lVar1 + -0x220);
  uVar22 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar1 + -0xb70) = uVar13;
  *(ulonglong *)(lVar1 - (uVar16 ^ 0x8926aa39)) = uVar22 ^ uVar13 ^ uVar24;
  uVar13 = CONCAT44(uVar31,DAT_1826707e4);
  uVar24 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar1 + -0xf0) = *(ulonglong *)(lVar1 + -0x438) ^ uVar24 ^ uVar22;
  puVar12 = (ulonglong *)(*(longlong *)(lVar1 + -0x310) + 0x10);
  uVar15 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar1 + -0x5c0) = (uVar13 ^ 0x73b590bacf597614) << (((byte)uVar11 ^ 0xcf) & 0x3f);
  uVar4 = DAT_18267085c;
  *(ulonglong *)(lVar1 + -0xa58) = (ulonglong)puVar12 ^ uVar15;
  lVar1 = DAT_1826707a0;
  uVar13 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = *puVar12 ^ uVar35 ^ uVar13;
  lVar2 = DAT_1826707a0;
  puVar12 = (ulonglong *)
            (*(longlong *)(lVar1 - ((ulonglong)uVar31 ^ 0x1cd8cdaa)) +
            ((CONCAT44(uVar23,uVar11) ^ 0x40a4f7a9de3ce9c1) * 0x15 +
             (CONCAT44(uVar31,uVar8) ^ 0x1cd8c7ba8926ae03) + 1) * 8);
  *(ulonglong *)(DAT_1826707a0 + -0xbe8) =
       (ulonglong)puVar12 ^ CONCAT44(DAT_182670a14,DAT_182670a14);
  lVar1 = DAT_1826707a0;
  uVar11 = DAT_1826707cc ^ 0xe0b00f5e;
  *puVar12 = *(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0x1cd8c18a)) ^ uVar13 ^ uVar28;
  *(uint *)(lVar1 + -0x140) = uVar11 | uVar20 ^ 0x782c8799;
  uVar4 = DAT_1826707b4;
  uVar22 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar1 + -0x588) =
       *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar19 ^ 0xde3ce399)) ^ uVar15) ^ uVar35 ^ uVar22;
  *(ulonglong *)(uVar29 ^ *(ulonglong *)(lVar1 + -0x58)) =
       CONCAT44(uVar5,uVar5) ^ 0x1ef7c4fc932b5433;
  uVar7 = DAT_182670904;
  *(ulonglong *)(lVar1 + -0x558) =
       CONCAT44(uVar4,uVar5) ^ 0x23fd48e751f135bc |
       CONCAT44(uVar3,DAT_1826707e8) ^ 0xf4672f63ff3e615c;
  uVar6 = DAT_1826707f4;
  uVar13 = CONCAT44(uVar7,uVar7);
  uVar24 = *(ulonglong *)(lVar1 + -0x588) ^ *(ulonglong *)(lVar1 + -0xf0) ^ uVar13 ^ uVar22 ^ uVar24
  ;
  uVar22 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar1 + -0x4c8) = uVar24;
  uVar13 = uVar22 ^ uVar24 ^ uVar13;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar13;
  uVar4 = DAT_1826707c8;
  *(ulonglong *)(lVar1 + -0xa18) = uVar33 ^ uVar13 ^ uVar22;
  uVar22 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar1 - (uVar27 ^ 0xa9f7a158)) =
       *(longlong *)(lVar1 + -0x310) + (CONCAT44(uVar4,uVar5) ^ 0xbb231257d32c5239) * 8 ^ uVar22;
  uVar4 = DAT_1826707d0;
  uVar13 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar1 + -0x1b8) =
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0x518) ^ uVar22) ^ uVar35 ^ uVar13;
  *(ulonglong *)(lVar1 + -0x998) =
       (CONCAT44(DAT_1826707dc,uVar6) ^ 0x4ab2ca5a6ae1d06) << (((byte)uVar4 ^ 0x2a) & 0x3f);
  puVar12 = (ulonglong *)
            ((CONCAT44(uVar31,uVar5) ^ 0x1cd8c7bad32c523a) * 0xa8 +
            *(longlong *)(lVar1 - (uVar19 ^ 0xde3ce3d1)) + 0x20);
  *(ulonglong *)(lVar1 + -0x370) = (ulonglong)puVar12 ^ CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar4 = DAT_182670a44;
  *puVar12 = *(ulonglong *)(lVar1 - (uVar21 ^ 0x11221b8)) ^ uVar13 ^ uVar28;
  uVar13 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b8 ^ 0x57122f5b)) =
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0x518) ^ uVar22) ^ uVar35 ^ uVar13;
  *(ulonglong *)(uVar25 ^ *(ulonglong *)(lVar1 + -0x240)) =
       CONCAT44(DAT_1826707c0,uVar6) ^ 0x37861adf1d00191a;
  uVar4 = DAT_1826709a8;
  uVar27 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar13 = *(ulonglong *)(lVar1 + -0xce0) ^ uVar33 ^ *(ulonglong *)(lVar1 + -0xa18) ^ uVar27 ^
           uVar13;
  *(ulonglong *)(lVar1 + -0x890) = uVar13;
  uVar19 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x88348f19)) = uVar19 ^ uVar13 ^ uVar27;
  uVar4 = DAT_182670984;
  *(ulonglong *)(lVar1 + -0xd38) = *(ulonglong *)(lVar1 + -0x890) ^ uVar27 ^ 0x766c2c7e2c045e4d;
  *(ulonglong *)(lVar1 - (uVar16 ^ 0x8926a7c9)) =
       CONCAT44(uVar4,uVar4) ^ uVar19 ^ *(ulonglong *)(lVar1 + -0x118);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar9;
  return;
}



############ FUN_ 180c5db90 size=5503 ############

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

void FUN_180c5db90(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  byte bVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  uint uVar50;
  uint uVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  uint uVar54;
  ulonglong uVar55;
  ulonglong *puVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  byte local_128;
  
  uVar13 = DAT_1826707f0;
  uVar12 = DAT_1826707ec;
  uVar9 = DAT_1826707c4;
  uVar41 = (ulonglong)DAT_1826707ec;
  uVar59 = (ulonglong)DAT_1826707c4;
  uVar4 = DAT_1826707f0 + DAT_1826707c8;
  uVar45 = _DAT_1826708f8 ^ DAT_182670a74;
  DAT_1826707bc = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  DAT_1826707b8 = DAT_1826707a8 << 0x10 | DAT_1826707a8 >> 0x10;
  uVar5 = DAT_1826708ec >> 0x10;
  uVar34 = DAT_1826707ec * DAT_1826707c4;
  uVar54 = *(uint *)(&DAT_18260f758 + DAT_182670b4c) ^ DAT_1826707f0;
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670b4c) ^ DAT_1826707c8;
  uVar16 = DAT_182670a74 & 0xff;
  DAT_182670a74 = ((DAT_182670a74 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar29 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar22 = CONCAT44(DAT_182670a74,DAT_182670a74);
  uVar30 = (uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) << 7;
  DAT_1826707dc = uVar34;
  DAT_1826707f4 = uVar4;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar30 ^ uVar22;
  lVar6 = DAT_1826707a0;
  uVar17 = _DAT_1826708f8 & 0xff;
  uVar37 = _DAT_1826708f8 << 8;
  _DAT_1826708f8 = ((uVar37 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar23 = CONCAT44(DAT_182670864,DAT_182670864);
  uVar20 = (ulonglong)_DAT_1826708f8;
  uVar24 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar33 = (ulonglong)uVar4;
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xa49ccfc7)) =
       (uVar30 | uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x9c8)) ^ uVar24;
  uVar16 = DAT_1826707a8;
  uVar18 = uVar45 & 0xff;
  DAT_18267098c = ((uVar45 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar25 = CONCAT44(DAT_18267086c,DAT_18267086c);
  puVar1 = (ulonglong *)(lVar6 + -0xf0);
  puVar43 = (ulonglong *)(lVar6 + -0x5c0);
  uVar30 = (ulonglong)DAT_18267098c;
  uVar31 = CONCAT44(DAT_18267098c,DAT_18267098c);
  uVar55 = (ulonglong)DAT_1826707a8;
  uVar18 = DAT_1826708d0 + DAT_182670944 & 0xff;
  *puVar43 = (uVar25 ^ *puVar1) - (uVar24 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) ^ uVar31;
  lVar6 = DAT_1826707a0;
  uVar50 = (DAT_1826708d0 + DAT_182670944) * 0x100;
  uVar51 = ((uVar50 | uVar18) << 8 | uVar18) << 8 | uVar18;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xac0);
  uVar46 = CONCAT44(uVar51,uVar51);
  uVar26 = uVar24 ^ uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x610) ^
           *(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar46;
  DAT_1826708b0 = uVar51;
  *puVar2 = uVar26;
  uVar45 = DAT_1826708d0 & 0xff;
  DAT_1826708d0 = ((DAT_1826708d0 << 8 | uVar45) << 8 | uVar45) << 8 | uVar45;
  uVar38 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  uVar27 = (ulonglong)uVar34;
  *(ulonglong *)(lVar6 + -0x558) =
       ((ulonglong)uVar51 << 0x12 | (ulonglong)(((uVar50 & 0xffff | uVar18) << 8 | uVar18) >> 6)) ^
       uVar26 >> 0xe ^ uVar38;
  lVar6 = DAT_1826707a0;
  uVar18 = DAT_182670944 & 0xff;
  DAT_182670944 = ((DAT_182670944 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar52 = CONCAT44(DAT_182670944,DAT_182670944);
  bVar42 = (byte)uVar9;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xedbb4376)) ^ uVar46) << ((bVar42 ^ 0x78) & 0x3f)
       ^ uVar52;
  uVar45 = DAT_1826707bc;
  uVar18 = DAT_1826707b8;
  uVar35 = (ulonglong)DAT_1826707bc;
  uVar44 = (ulonglong)uVar13;
  puVar28 = (ulonglong *)(lVar6 - (uVar55 ^ 0xa322267c));
  uVar57 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0x34b0d810)) =
       (*puVar28 ^ uVar38) + 0x92b0af767b445ea2;
  uVar51 = DAT_1826707d4;
  uVar50 = DAT_1826707c8;
  lVar7 = DAT_1826707a0;
  uVar19 = DAT_182670a2c >> 0x10 & 0xff;
  DAT_182670960 = (((DAT_182670a2c >> 0x10) << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar47 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar26 = *(ulonglong *)(lVar6 - (uVar57 ^ 0x2324af3a)) ^ uVar52 |
           uVar38 ^ *(ulonglong *)(lVar6 + -0x558);
  uVar32 = (ulonglong)DAT_1826707c8;
  *puVar1 = uVar26 ^ uVar47;
  uVar19 = DAT_182670a2c & 0xff;
  DAT_182670a2c = ((DAT_182670a2c << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar36 = (ulonglong)DAT_182670a2c;
  uVar60 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar7 + -0x610) =
       (uVar23 ^ *(ulonglong *)(lVar7 + -0x4c8)) - (CONCAT44(uVar51,uVar45) ^ 0x7aa64f27bd2fcad7) ^
       uVar60;
  puVar39 = (ulonglong *)(lVar7 - (uVar32 ^ 0x6febf1ef));
  *puVar2 = (*puVar39 ^ uVar60) - uVar26 ^ uVar60;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       uVar26 - (CONCAT44(uVar18,uVar4) ^ 0x77120e7dd345c9ae) ^ uVar46;
  uVar19 = DAT_1826708ec & 0xff;
  DAT_1826708ec = ((DAT_1826708ec << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar48 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x998);
  uVar32 = *(ulonglong *)(DAT_1826707a0 - (uVar59 ^ 0x214a638a)) ^ uVar31 ^ uVar29 ^ *puVar3;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar32 ^ uVar48;
  uVar19 = uVar5 & 0xff;
  DAT_182670a48 = ((uVar5 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar26 = CONCAT44(DAT_182670a48,DAT_182670a48);
  local_128 = (byte)uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar32 >> ((local_128 ^ 0xa6) & 0x3f) ^ uVar26;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x6febf337)) =
       uVar32 << (((byte)uVar12 ^ 0xcf) & 0x3f) ^ uVar52;
  *(ulonglong *)(lVar6 + -0x610) =
       (*(ulonglong *)(lVar6 + -0x4c8) ^ uVar52 | uVar26 ^ *(ulonglong *)(lVar6 + -0x558)) ^ uVar38;
  uVar32 = (*(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xa49ccc17)) ^ uVar31) -
           (CONCAT44(uVar45,uVar45) ^ 0x2677d9939ff6f391);
  *puVar1 = uVar32 ^ uVar48;
  puVar56 = (ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xedbb4fa6));
  *puVar3 = uVar32 - (*puVar56 ^ uVar38) ^ uVar26;
  lVar6 = DAT_1826707a0;
  uVar32 = (*puVar39 ^ uVar38) + (CONCAT44(uVar12,uVar9) ^ 0x829a710ef8f3996d) ^ uVar52;
  puVar49 = (ulonglong *)(DAT_1826707a0 - (uVar57 ^ 0x2324a9e2));
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar32;
  *(ulonglong *)(lVar6 + -0x4c8) = uVar24 ^ *puVar49 ^ uVar32 ^ uVar60 ^ uVar52;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x34b0d480)) =
       (CONCAT44(uVar18,uVar16) ^ 0x7e90fece85011aa2) >> (((byte)uVar16 ^ 0x16) & 0x3f);
  puVar39 = (ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0x34b0d418));
  *puVar39 = (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xdcdb5815)) ^ uVar24) >>
             (((byte)DAT_1826707d4 ^ 0xfb) & 0x3f) ^ uVar60;
  lVar6 = DAT_1826707a0;
  puVar40 = (ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xedbb4946));
  *puVar40 = (uVar24 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) << (((byte)uVar18 ^ 2) & 0x3f) ^
             uVar31;
  *(ulonglong *)(lVar6 + -0x610) =
       (CONCAT44(uVar45,uVar12) ^ 0x6b69b0e00ad6088e) -
       (CONCAT44(uVar9,uVar50) ^ 0xc931b852325a0c04);
  *(ulonglong *)(lVar6 + -0xc18) = (uVar31 ^ *puVar1 | *puVar43 ^ uVar60) ^ uVar38;
  *puVar28 = CONCAT44(uVar12,uVar4) ^ 0x3189da6833de4fda;
  *(ulonglong *)(lVar6 + -0x4c8) =
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707d4 ^ 0x5cddd61b)) ^ uVar60) -
       (*(ulonglong *)(lVar6 + -0xc18) ^ uVar38) ^ uVar47;
  puVar53 = (ulonglong *)(lVar6 - (uVar55 ^ 0xa3222aec));
  *(ulonglong *)(DAT_1826707a0 - (uVar59 ^ 0x214a605a)) = *puVar3 ^ uVar26 ^ *puVar53;
  uVar50 = DAT_1826707c8;
  uVar32 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(DAT_1826707a0 - (uVar55 ^ 0xa32226e4)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x34b0d7c8)) ^ uVar46) >>
       (((byte)DAT_1826707c8 ^ 0xdf) & 0x3f) ^ uVar52;
  *puVar1 = (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x5cdddacb)) ^ uVar46) <<
            ((bVar42 ^ 0x6a) & 0x3f) ^ uVar22;
  lVar6 = DAT_1826707a0;
  uVar32 = (uVar22 ^ *puVar40 | *puVar43 ^ uVar52) ^ uVar46;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar32;
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xedbb402e)) ^ uVar26) -
            (*(ulonglong *)(lVar6 - ((ulonglong)uVar45 ^ 0xdcdb5985)) ^ uVar46) ^ uVar60;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (CONCAT44(uVar13,DAT_1826707d4) ^ 0x15d68565140c7b53) +
       (CONCAT44(uVar51,uVar18) ^ 0xa02cf2ba970dfa48);
  puVar40 = (ulonglong *)(lVar6 - (uVar55 ^ 0xa3222534));
  *puVar40 = uVar22 ^ *(ulonglong *)(lVar6 + -0x4c8) ^ uVar47 ^ uVar46 ^ uVar32;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0xedbb4c76)) =
       (uVar22 ^ *(ulonglong *)(lVar6 + -0x610)) >> (((byte)uVar13 ^ 0xe2) & 0x3f) ^ uVar24;
  uVar5 = DAT_1826707c8;
  uVar32 = (uVar22 ^ *puVar40) << 6;
  uVar58 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *puVar1 = uVar32 ^ uVar58;
  uVar32 = uVar32 | uVar24 ^ *puVar43;
  *puVar3 = uVar32 ^ uVar29;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (*(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar47) - uVar32 ^ uVar48;
  *(ulonglong *)(lVar6 - (uVar59 ^ 0x214a6312)) =
       uVar31 ^ *puVar49 ^ *(ulonglong *)(lVar6 + -0xc18) ^ uVar60 ^ uVar38;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0x6febf2a7)) ^ uVar31) >>
       (((byte)uVar45 ^ 0xcb) & 0x3f) ^ uVar23;
  uVar32 = (uVar31 ^ *(ulonglong *)(lVar6 + -0x558)) << ((local_128 ^ 0x9c) & 0x3f);
  *puVar43 = uVar32 ^ uVar58;
  lVar7 = DAT_1826707a0;
  *puVar1 = CONCAT44(uVar4,uVar45) ^ 0x2c80a000400c60 | 0x6690785bd42b731b;
  lVar8 = DAT_1826707a0;
  puVar49 = (ulonglong *)(lVar6 - (uVar41 ^ 0x6febf1ef));
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xedbb4d7e)) = (uVar32 | uVar23 ^ *puVar49) ^ uVar22;
  *(ulonglong *)(lVar7 + -0xc18) =
       (*puVar2 ^ uVar60) - (uVar22 ^ *(ulonglong *)(lVar8 + -0x4c8)) ^ uVar52;
  lVar6 = DAT_1826707a0;
  puVar40 = (ulonglong *)(lVar7 - ((ulonglong)uVar5 ^ 0x6febfe37));
  uVar32 = uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ *puVar40 ^ uVar48 ^ uVar60;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar32;
  *(ulonglong *)(lVar6 - (uVar44 ^ 0x34b0d128)) = (uVar32 >> 0x20 ^ uVar36) >> 0xe ^ uVar58;
  lVar6 = DAT_1826707a0;
  uVar32 = (uVar60 ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) << 0x12;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar32 ^ uVar38;
  uVar32 = *(ulonglong *)(lVar6 - (uVar35 ^ 0xdcdb5c2d)) ^ uVar58 | uVar32;
  *puVar43 = uVar32 ^ uVar58;
  *puVar2 = (uVar48 ^ *puVar53) - uVar32 ^ uVar60;
  lVar6 = DAT_1826707a0;
  uVar44 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0x2324aaba)) ^ uVar29 ^
           *(ulonglong *)(DAT_1826707a0 + -0xc18) ^ uVar47 ^ uVar52;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar44;
  lVar7 = DAT_1826707a0;
  uVar32 = (uVar44 ^ uVar47) >> (((byte)uVar13 ^ 0xd4) & 0x3f);
  *(ulonglong *)(lVar6 + -0x558) = uVar32 ^ uVar29;
  *puVar1 = (uVar44 ^ uVar47) << (((byte)uVar12 ^ 0xcb) & 0x3f) ^ uVar31;
  *puVar56 = uVar32 - (uVar44 ^ uVar47);
  uVar4 = DAT_1826707ac;
  uVar57 = (ulonglong)DAT_1826707ac;
  uVar32 = *(ulonglong *)(lVar7 - (uVar41 ^ 0x6febf70f)) ^ uVar31 | uVar29 ^ *puVar28;
  *(ulonglong *)(lVar7 + -0x610) = (*(ulonglong *)(lVar7 + -0xc18) ^ uVar52) - uVar32 ^ uVar48;
  uVar36 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar7 - (uVar33 ^ 0xa49ccc8f)) = uVar32 ^ *puVar2 ^ uVar60 ^ uVar38;
  uVar32 = (uVar38 ^ *(ulonglong *)(lVar7 + -0x558)) >> ((bVar42 ^ 0x53) & 0x3f);
  *puVar1 = uVar32 ^ uVar60;
  bVar21 = (byte)DAT_1826707d4;
  *(ulonglong *)(lVar7 + -0x4c8) = uVar36 << 0x33 ^ 0xb940000000000000;
  uVar18 = DAT_1826707b4;
  uVar5 = DAT_1826707b0;
  lVar6 = DAT_1826707a0;
  uVar44 = (ulonglong)DAT_1826707b0;
  uVar35 = (uVar38 ^ *(ulonglong *)(lVar7 + -0x558)) << ((bVar21 ^ 0xfc) & 0x3f);
  uVar33 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar7 + -0xc18) = uVar35 ^ uVar26;
  uVar11 = DAT_1826707e8;
  uVar35 = uVar35 | uVar32;
  *(ulonglong *)(lVar7 + -0x9c8) = uVar35 ^ uVar31;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x6e7fd111)) ^ uVar29 |
       CONCAT44(uVar16,uVar11) ^ 0x514cdd8dcdaad135;
  *(ulonglong *)(lVar7 + -0x558) =
       (*puVar2 ^ uVar60) - (CONCAT44(uVar5,uVar13) ^ 0xcc4c2a4e21bfb3d2) ^ uVar46;
  lVar7 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar41 ^ 0x6febf2a7)) ^ uVar46) - uVar35 ^ uVar32;
  *puVar3 = (*(ulonglong *)(lVar7 - (uVar59 ^ 0x214a6f82)) ^ uVar31) -
            (CONCAT44(uVar4,DAT_1826707e4) ^ 0xcb158ef46a28de4c) ^ uVar29;
  bVar21 = (byte)DAT_1826707c0;
  uVar33 = *puVar43 ^ *puVar56 ^ uVar48;
  *(ulonglong *)(lVar6 + -0x4c8) = uVar33;
  uVar41 = (*(ulonglong *)(lVar6 - (uVar36 ^ 0x6febf337)) ^ uVar58) >> ((bVar21 ^ 0xf9) & 0x3f);
  *puVar2 = uVar41 ^ uVar52;
  *(ulonglong *)(lVar6 + -0x558) = (uVar33 ^ uVar58) << 0x1f ^ uVar22;
  uVar14 = DAT_1826709c4;
  lVar7 = DAT_1826707a0;
  *puVar40 = uVar41 - (*(ulonglong *)(lVar6 - (uVar55 ^ 0xa32223d4)) ^ uVar60);
  uVar10 = DAT_1826707d8;
  uVar33 = CONCAT44(uVar14,uVar14);
  *puVar39 = (uVar22 ^ *(ulonglong *)(lVar7 + -0x558) | *puVar2 ^ uVar52) ^ uVar33;
  uVar22 = (*(ulonglong *)(lVar7 + -0x610) ^ uVar48) -
           (CONCAT44(uVar45,DAT_1826707e0) ^ 0x88edf182436b4b5a);
  *(ulonglong *)(lVar7 + -0x4c8) = uVar22 ^ uVar26;
  uVar41 = uVar22 - (*puVar43 ^ uVar33) ^ uVar23;
  *puVar1 = uVar41;
  lVar6 = DAT_1826707a0;
  uVar22 = (CONCAT44(uVar10,DAT_1826707d4) ^ 0x9c581eaa9b55c8a9) + (*puVar43 ^ uVar33);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar22 ^ uVar47;
  *puVar2 = uVar22 + 0x15d312d3855e365d;
  lVar7 = DAT_1826707a0;
  uVar35 = (ulonglong)DAT_1826707d0;
  uVar47 = *(ulonglong *)(lVar6 - (uVar35 ^ 0xdc58f8bc)) ^ uVar32 ^
           *(ulonglong *)(DAT_1826707a0 + -0xc18) ^ uVar47;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar47 ^ uVar46;
  lVar6 = DAT_1826707a0;
  uVar22 = uVar47 >> (((byte)uVar18 ^ 0x8c) & 0x3f);
  *(ulonglong *)(lVar7 + -0x610) = uVar22 ^ uVar58;
  *(ulonglong *)(lVar6 + -0x4c8) = uVar47 << 0x3b ^ uVar24;
  uVar22 = uVar22 | uVar47 << 0x3b;
  *puVar43 = uVar22 ^ uVar52;
  uVar47 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *puVar2 = (uVar32 ^ *(ulonglong *)(lVar6 + -0xc18)) - uVar22 ^ uVar47;
  *(ulonglong *)(lVar6 + -0x9c8) = uVar31 ^ uVar23 ^ uVar29 ^ *puVar3 ^ uVar41;
  uVar30 = (*(ulonglong *)(lVar6 - (uVar44 ^ 0x32efba58)) >> 0x20 ^ uVar30) >> 5;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar30 ^ uVar25;
  lVar6 = DAT_1826707a0;
  *puVar49 = 0x5784d83510aa06a4 - uVar30;
  uVar22 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0xedbb45ae)) =
       ((uVar31 ^ *(ulonglong *)(lVar6 + -0x9c8)) << 0x1b | uVar25 ^ *(ulonglong *)(lVar6 + -0x558))
       ^ uVar22;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xdc58f8ec)) =
       (uVar23 ^ *puVar1) - (uVar22 ^ *(ulonglong *)(lVar6 + -0xc18)) ^ uVar60;
  *(ulonglong *)(lVar7 + -0x610) =
       uVar24 ^ uVar22 ^ uVar47 ^ *puVar2 ^ *(ulonglong *)(lVar7 + -0xc18);
  *(undefined8 *)(lVar7 + -0x9c8) = 0xd4d66b885af8763a;
  uVar4 = DAT_1826707cc;
  uVar30 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  uVar23 = (ulonglong)DAT_1826707cc;
  *puVar28 = ((ulonglong)((uVar37 & 0xffff | uVar17) >> 7) | uVar20 << 9) ^
             *(ulonglong *)(lVar7 + -0x610) >> 0x17 ^ uVar30;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x234bbbfc)) =
       ((uVar24 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) << (((byte)uVar11 ^ 0xd6) & 0x3f) |
       uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) ^ uVar22;
  uVar20 = *puVar3;
  *(ulonglong *)(lVar6 + -0x4c8) =
       (uVar47 ^ *puVar2) - (*(ulonglong *)(lVar6 + -0x9c8) ^ uVar22) ^ uVar32;
  lVar6 = DAT_1826707a0;
  uVar52 = uVar20 ^ *puVar43 ^ uVar47 ^ uVar60 ^ uVar52;
  *puVar1 = uVar52;
  uVar30 = (uVar52 ^ uVar47) >> ((bVar42 ^ 0x62) & 0x3f);
  *(ulonglong *)(lVar6 + -0x610) = uVar30 ^ uVar33;
  *(ulonglong *)(lVar6 + -0x558) = (uVar47 ^ uVar52) << ((local_128 ^ 0xae) & 0x3f) ^ uVar24;
  uVar20 = *puVar3;
  *(ulonglong *)(lVar6 + -0xc18) =
       CONCAT44(uVar45,uVar4) ^ CONCAT44(uVar50,uVar9) ^ 0xb91e3ccad1fbda7;
  uVar30 = *(ulonglong *)(lVar6 - (uVar57 ^ 0x7e915efb)) ^ uVar24 | uVar30;
  *puVar2 = uVar30 ^ uVar26;
  *puVar43 = (uVar20 ^ uVar60) - uVar30 ^ uVar25;
  *puVar1 = uVar30 + 0x60d3dc5611f8bd58;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar54;
  return;
}



############ FUN_ 180c997d0 size=5328 ############

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

void FUN_180c997d0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte bVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte bVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  byte local_100;
  byte local_f8;
  
  uVar10 = DAT_182670850;
  uVar13 = DAT_1826707f4;
  uVar5 = DAT_1826707d8;
  uVar12 = DAT_1826707d4;
  uVar9 = DAT_1826707b0;
  uVar8 = DAT_1826707a8;
  lVar6 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707d4;
  uVar27 = (ulonglong)DAT_1826707b0;
  uVar36 = (ulonglong)DAT_1826707a8;
  uVar35 = (ulonglong)DAT_1826707f4;
  uVar29 = (ulonglong)DAT_1826707d8;
  uVar37 = DAT_1826707f4 | DAT_1826707d8;
  uVar21 = (DAT_1826707d4 << 0x10 | DAT_1826707d4 & 0xff00) << 8 | DAT_1826707d4 >> 8 & 0xff00 |
           DAT_1826707d4 >> 0x18;
  uVar16 = DAT_1826707b0 | DAT_1826707a8;
  uVar43 = (ulonglong)uVar16;
  uVar17 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar16 ^ 0xfa0fbf74) + (longlong)DAT_182670d94) ^
           DAT_1826707a8;
  uVar24 = (ulonglong)uVar21;
  uVar18 = *(uint *)(&DAT_18260f750 + (uVar24 ^ 0x3cdec1f9) + (longlong)DAT_182670d94) ^
           DAT_1826707b0;
  uVar28 = CONCAT44(DAT_182670960,DAT_182670960);
  bVar19 = (byte)DAT_1826707f4;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x658);
  uVar45 = (ulonglong)uVar37;
  DAT_1826707c0 = uVar21;
  DAT_1826707dc = uVar16;
  DAT_1826707ec = uVar37;
  *puVar1 = (CONCAT44(_DAT_1826708c8,_DAT_1826708c8) ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) <<
            ((bVar19 ^ 0xcd) & 0x3f) ^ uVar28;
  puVar2 = (ulonglong *)(lVar6 + -0xa18);
  uVar30 = *(ulonglong *)(lVar6 - ((ulonglong)uVar5 ^ 0xfa7cd2b7)) ^ uVar28 |
           CONCAT44(DAT_1826708b8,DAT_1826708b8) ^ *(ulonglong *)(lVar6 + -0xf0);
  puVar3 = (ulonglong *)(lVar6 + -0x588);
  uVar28 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar6 + -0x220) = uVar30 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182670818;
  *puVar2 = uVar28 ^ CONCAT44(uVar37,uVar16) ^ *puVar3 ^ 0xf4cb423f128ecdf2;
  uVar14 = DAT_1826709f4;
  uVar38 = CONCAT44(uVar10,uVar10);
  uVar28 = (CONCAT44(DAT_1826708e0,DAT_1826708e0) ^ *(ulonglong *)(lVar6 + -0xbb0)) -
           (*(ulonglong *)(lVar6 + -0x438) ^ uVar38);
  *(ulonglong *)(lVar6 + -0x118) = uVar28 ^ CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar15 = DAT_182670a00;
  puVar22 = (ulonglong *)(DAT_1826707a0 + -0x68);
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0xce0) = uVar28 - uVar30 ^ uVar44;
  uVar10 = DAT_182670938;
  lVar7 = DAT_1826707a0;
  puVar4 = (ulonglong *)(lVar6 + -0xd88);
  uVar20 = CONCAT44(uVar15,uVar15);
  uVar26 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *puVar22 = uVar30 - (uVar20 ^ *puVar4) ^ uVar26;
  uVar39 = CONCAT44(uVar10,uVar10);
  uVar33 = CONCAT44(DAT_182670974,DAT_182670974);
  *(ulonglong *)(lVar7 - (uVar24 ^ 0x3cdeccd1)) =
       *(ulonglong *)(lVar7 - (uVar36 ^ 0x600a2b48)) ^ CONCAT44(DAT_182670844,DAT_182670844) ^
       uVar33 ^ uVar39 ^ *(ulonglong *)(lVar7 + -0x420);
  lVar6 = DAT_1826707a0;
  uVar30 = (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) >> (((byte)uVar5 ^ 0xff) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar30 ^ CONCAT44(DAT_182670a78,DAT_182670a78);
  lVar7 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670928,DAT_182670928);
  bVar48 = (byte)uVar12;
  *puVar1 = (uVar39 ^ *(ulonglong *)(lVar6 + -0xd38)) << ((bVar48 ^ 0xc) & 0x3f) ^ uVar28;
  uVar25 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *puVar3 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0xe9c1d864)) ^ uVar28 | uVar30) ^ uVar25;
  uVar10 = DAT_182670884;
  *(int *)(lVar7 + -0x598) = *(int *)(lVar7 - ((ulonglong)uVar9 ^ 0xda0d9590)) * 0x6f3fcb85;
  uVar28 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar7 - (uVar29 ^ 0xfa7cdef7)) =
       (*(ulonglong *)(lVar7 + -0x660) ^ uVar33) -
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar7 + -0x890)) ^ uVar28;
  *(ulonglong *)(lVar7 - (uVar45 ^ 0xfbfcd54f)) = uVar43 << 0x32 ^ 0xc6fc000000000000;
  puVar40 = (ulonglong *)(lVar7 - (uVar24 ^ 0x3cdec461));
  puVar49 = (ulonglong *)(lVar7 - (uVar24 ^ 0x3cdecbf1));
  uVar46 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar7 + -0x118) = (*puVar49 ^ uVar28) - (*puVar40 ^ uVar25) ^ uVar46;
  uVar10 = DAT_182670adc;
  lVar6 = DAT_1826707a0;
  bVar31 = (byte)uVar16;
  *(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xfbfcdcdf)) =
       (CONCAT44(uVar9,uVar12) ^ 0xece58a38ccaceb39) << ((bVar31 ^ 0x77) & 0x3f);
  uVar28 = (CONCAT44(uVar13,uVar21) ^ 0xd6536100c3213e15) -
           (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar6 + -0x1b8));
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x600a2908)) = uVar28 ^ CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar33 = CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar28 = (uVar25 ^ *puVar3) + uVar28;
  uVar30 = uVar28 ^ uVar33;
  uVar34 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar6 + -0xd38) = uVar30;
  uVar30 = uVar34 ^ uVar33 ^ uVar44 ^ uVar30 ^ *(ulonglong *)(lVar6 + -0xce0);
  *(ulonglong *)(lVar6 + -0xf0) = uVar30;
  *puVar1 = (*puVar40 ^ uVar25) - uVar28;
  lVar7 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar25 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       (*(ulonglong *)(lVar6 - (uVar32 ^ 0xe9c1decc)) ^ uVar34) >> ((bVar31 ^ 0x5c) & 0x3f) ^ uVar28
  ;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0xda0d9414)) = (uVar34 ^ uVar30) << 0x20 ^ uVar25;
  uVar10 = DAT_182670958;
  *(int *)(lVar7 + -0x7e4) = *(int *)(lVar7 - (uVar36 ^ 0x600a2904)) + -0x570f5c39;
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar28 = *(ulonglong *)(lVar7 - (uVar32 ^ 0xe9c1d85c)) ^ uVar25 |
           *(ulonglong *)(lVar7 - (uVar45 ^ 0xfbfcd66f)) ^ uVar28;
  *(ulonglong *)(lVar7 + -0xbb0) = uVar28 ^ uVar33;
  uVar50 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(int *)(lVar7 + -0x598) = *(int *)(lVar7 - (uVar29 ^ 0xfa7cdd03)) << 0x13;
  uVar11 = DAT_182670968;
  uVar30 = (ulonglong)DAT_182670968;
  *puVar2 = (uVar44 ^ *(ulonglong *)(lVar7 + -0xce0)) - uVar28 ^ uVar50;
  uVar10 = DAT_1826707f8;
  lVar6 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar11,uVar11);
  puVar40 = (ulonglong *)(lVar7 - (uVar35 ^ 0x29ac9e97));
  uVar28 = uVar34 ^ *puVar40 ^ uVar46 ^ uVar26 ^ *(ulonglong *)(lVar7 + -0x118);
  *(ulonglong *)(lVar7 + -0x220) = uVar28;
  uVar41 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar6 + -0x420) = uVar28 >> 0x20 ^ uVar41 ^ uVar30;
  uVar26 = CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0x29ac9b77)) = (uVar34 ^ uVar28) << 0x20 ^ uVar26;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0xda0d9f4c)) =
       CONCAT44(uVar9,uVar16) ^ CONCAT44(uVar5,uVar9) ^ 0xb329c08eeceaead4;
  lVar7 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar28 = *(ulonglong *)(DAT_1826707a0 + -0x118);
  uVar34 = uVar26 ^ *puVar3 | uVar41 ^ *(ulonglong *)(lVar6 + -0x420);
  *puVar1 = uVar34 ^ uVar30;
  uVar26 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar7 - (uVar24 ^ 0x3cdec119)) = (uVar46 ^ uVar28) - uVar34 ^ uVar26;
  uVar11 = DAT_1826707c8;
  uVar42 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  local_f8 = (byte)uVar37;
  *(ulonglong *)(lVar7 + -0x890) = *puVar49 ^ uVar42 ^ uVar30 ^ uVar50 ^ *puVar1;
  *(ulonglong *)(lVar7 - (uVar24 ^ 0x3cdecd09)) =
       (CONCAT44(uVar37,uVar13) ^ 0x612dab3441af194) - (*(ulonglong *)(lVar7 + -0x660) ^ uVar25);
  uVar30 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  *puVar22 = (*(ulonglong *)(lVar7 + -0x890) ^ uVar42) >> (((byte)(uVar12 >> 0x18) ^ 0xd3) & 0x3f) ^
             uVar30;
  uVar10 = DAT_182670b0c;
  uVar5 = DAT_1826707d4;
  uVar28 = (*(ulonglong *)(lVar7 + -0x890) ^ uVar42) << ((local_f8 ^ 0xf9) & 0x3f);
  *(ulonglong *)(lVar7 + -0x220) = uVar28 ^ CONCAT44(DAT_182670970,DAT_182670970);
  uVar47 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar7 + -0xd38) = (uVar28 | uVar30 ^ *puVar40) ^ uVar47;
  *(int *)(lVar7 - (uVar27 ^ 0xda0d9b98)) = -0x73f2fc50 << (((byte)uVar5 ^ 0x3d) & 0x1f);
  uVar10 = DAT_1826708d4;
  puVar49 = (ulonglong *)(lVar7 - ((ulonglong)DAT_1826707e8 ^ 0xba51766a));
  uVar25 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(ulonglong *)(lVar7 + -0x420) =
       (uVar50 ^ *puVar49) - (uVar47 ^ *(ulonglong *)(lVar7 + -0xd38)) ^ uVar25;
  lVar6 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_182670a14;
  uVar44 = CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar34 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar5 = DAT_182670a14 >> 0x16;
  uVar28 = uVar44 ^ uVar26 ^ uVar33 ^ *(ulonglong *)(lVar7 + -0xbb0) ^ *(ulonglong *)(lVar7 + -0xf0)
  ;
  *puVar3 = uVar28;
  *puVar1 = ((ulonglong)uVar5 | uVar30 << 10) ^ uVar28 >> 0x16 ^ uVar34;
  uVar14 = DAT_1826708fc;
  uVar5 = DAT_1826707e4;
  puVar23 = (ulonglong *)(lVar7 - (uVar43 ^ 0xfa0fb39c));
  uVar30 = (ulonglong)DAT_1826707e4;
  *puVar23 = (CONCAT44(uVar9,uVar8) ^ 0xeb756d41fd4c02bb) -
             (*(ulonglong *)(lVar7 + -0x890) ^ uVar42);
  uVar15 = DAT_1826709e4;
  uVar33 = (uVar44 ^ *puVar3) << (((byte)uVar5 ^ 0x6b) & 0x3f);
  *(ulonglong *)(lVar6 + -0x660) = uVar33 ^ CONCAT44(uVar14,uVar14);
  uVar28 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707d0 ^ 0xff0faf3e)) =
       (uVar33 | uVar34 ^ *puVar1) ^ uVar28;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707c4 ^ 0xedea4bf2)) =
       CONCAT44(uVar16,uVar5) ^ uVar50 ^ *puVar2 ^ 0x4bfe0c11abb938d2;
  uVar34 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar33 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(lVar6 + -0xbb0) =
       (uVar26 ^ *(ulonglong *)(lVar6 + -0xf0)) -
       (*(ulonglong *)(lVar6 - (uVar29 ^ 0xfa7cd487)) ^ uVar28) ^ uVar34;
  uVar5 = DAT_1826707bc;
  uVar28 = uVar33 ^ uVar28 ^ uVar25 ^ *puVar22 ^ *(ulonglong *)(lVar6 + -0x420);
  *(ulonglong *)(lVar6 + -0x890) = uVar28;
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x600a21c8)) =
       (uVar28 ^ uVar33) >> ((bVar19 ^ 0xd1) & 0x3f) ^ uVar46;
  lVar7 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *puVar3 = (*(ulonglong *)(lVar6 + -0x890) ^ uVar33) << ((bVar48 ^ 0x2e) & 0x3f) ^ uVar28;
  uVar44 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(lVar7 - (uVar35 ^ 0x29ac98a7)) =
       (*(ulonglong *)(lVar7 - (uVar30 ^ 0x3440bfc9)) ^ uVar28 |
       uVar46 ^ *(ulonglong *)(lVar7 + -0xce0)) ^ uVar44;
  *(ulonglong *)(lVar7 + -0x660) = CONCAT44(uVar21,uVar11) ^ 0x2004014882011114 | 0x509b0cb64dfc282b
  ;
  lVar6 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar33 = (uVar25 ^ *(ulonglong *)(lVar7 + -0x420)) - (uVar44 ^ *puVar1);
  uVar30 = uVar33 ^ uVar28;
  *(ulonglong *)(lVar7 + -0x220) = uVar30;
  *puVar2 = (uVar46 ^ *(ulonglong *)(lVar7 + -0x118)) >>
            (((byte)uVar10 ^ *(byte *)(lVar7 + -0x420)) & 0x3f);
  uVar11 = DAT_1826709a0;
  uVar25 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar35 = uVar25 ^ uVar34 ^ uVar47 ^ *(ulonglong *)(lVar7 + -0xbb0) ^
           *(ulonglong *)(lVar7 + -0xd38);
  *(ulonglong *)(lVar7 + -0xf0) = uVar35;
  uVar26 = ((ulonglong)uVar11 << 0x14 | (ulonglong)(uVar11 >> 0xc)) ^ uVar35 >> 0xc;
  *puVar22 = uVar26 ^ uVar47;
  local_100 = (byte)uVar8;
  *(ulonglong *)(lVar6 + -0x890) = uVar35 ^ uVar25 ^ 0x4faf1a489ad92264;
  uVar25 = (uVar35 ^ uVar25) << ((local_100 ^ 0x1c) & 0x3f);
  uVar42 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *(ulonglong *)(lVar6 + -0xce0) = uVar25 ^ CONCAT44(DAT_182670820,DAT_182670820);
  uVar26 = (uVar26 | uVar25) ^ uVar42;
  *puVar3 = uVar26;
  uVar14 = DAT_182670b04;
  uVar46 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar6 + -0x660) =
       (*(ulonglong *)(lVar6 - (uVar24 ^ 0x3cdeca59)) ^ uVar34) -
       (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707c4 ^ 0xedea4c5a)) ^ uVar42) ^ uVar46;
  uVar10 = DAT_1826708a0;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar25 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar26 = uVar35 ^ uVar42 ^ uVar28 ^ uVar30 ^ uVar26;
  *(ulonglong *)(lVar6 + -0x118) = uVar26;
  uVar8 = DAT_1826707c4;
  uVar28 = (uVar35 ^ uVar26) >> ((bVar31 ^ 0x65) & 0x3f);
  *(ulonglong *)(lVar6 + -0x420) = uVar28 ^ uVar25;
  uVar30 = (uVar35 ^ uVar26) << (((byte)uVar8 ^ 0xf5) & 0x3f);
  *puVar2 = uVar30 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182670ab4;
  lVar6 = DAT_1826707a0;
  uVar30 = uVar30 | uVar28;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       CONCAT44(uVar9,uVar13) ^ 0x96509869eb2fed1c | CONCAT44(uVar21,uVar16) ^ 0xea3ed766c52478d2;
  uVar25 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *(ulonglong *)(lVar6 + -0x890) = uVar30 ^ uVar25;
  *(ulonglong *)(lVar6 + -0xf0) =
       (*(ulonglong *)(lVar6 - (uVar45 ^ 0xfbfcdb77)) ^ uVar42) - (uVar35 ^ uVar26);
  uVar16 = DAT_1826707cc;
  uVar8 = DAT_1826707bc;
  uVar33 = uVar33 - (*(ulonglong *)(lVar6 - (uVar32 ^ 0xe9c1d884)) ^ CONCAT44(uVar10,uVar10));
  uVar28 = (ulonglong)DAT_1826707e8;
  *puVar22 = uVar33 ^ uVar39;
  uVar14 = DAT_182670980;
  uVar10 = DAT_182670854;
  uVar34 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *(ulonglong *)(lVar6 + -0xce0) =
       uVar33 - (*(ulonglong *)(lVar6 - (uVar28 ^ 0xba5174e2)) ^ uVar25) ^ uVar34;
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xd249e15d)) =
       uVar30 - (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar6 + -0x400)) ^ uVar25;
  uVar11 = DAT_1826707c8;
  uVar30 = CONCAT44(DAT_182670864,DAT_182670864);
  uVar35 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar6 + -0xd38) =
       uVar30 ^ uVar46 ^ *(ulonglong *)(lVar6 + -0x660) ^ uVar44 ^ *puVar1;
  *puVar2 = (CONCAT44(uVar16,DAT_1826707e4) ^ 0x7e365a4f364d6878) >>
            (((byte)DAT_1826707e4 ^ 0x7f) & 0x3f);
  uVar10 = DAT_1826709bc;
  uVar33 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar6 - (uVar24 ^ 0x3cdec5c9)) =
       (*(ulonglong *)(lVar6 - (uVar29 ^ 0xfa7cd9d7)) ^ uVar30) >> (((byte)uVar11 ^ 0x53) & 0x3f) ^
       uVar33;
  uVar28 = (uVar30 ^ *(ulonglong *)(lVar6 + -0xd38)) << ((bVar48 ^ 0x23) & 0x3f);
  *(ulonglong *)(lVar6 + -0x118) = uVar28 ^ uVar41;
  uVar14 = DAT_182670924;
  *(ulonglong *)(lVar6 + -0xf0) =
       (uVar42 ^ *puVar3) >> (((byte)uVar10 ^ *(byte *)(lVar6 + -0x420)) & 0x3f);
  uVar10 = DAT_182670838;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar14,uVar14);
  puVar40 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  *puVar40 = (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xda0d9654)) ^ uVar33 | uVar28) ^ uVar26;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x600a2f08)) =
       (uVar46 ^ *(ulonglong *)(lVar6 + -0x660)) -
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar16 ^ 0xd32c5fb2)) ^ uVar20) ^ uVar28;
  uVar10 = DAT_18267081c;
  uVar26 = uVar26 ^ *puVar40;
  uVar20 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *puVar22 = (uVar28 ^ *(ulonglong *)(lVar6 + -0x220)) - uVar26 ^ uVar20;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar6 + -0x890) =
       (CONCAT44(uVar13,uVar9) ^ 0x8962f14a2dd9e1b8) >> (((byte)uVar8 ^ 0xc1) & 0x3f);
  *puVar1 = (CONCAT44(uVar5,uVar37) ^ 0x2db6151204032102) -
            (*(ulonglong *)(lVar6 + -0x630) ^ uVar38) ^ uVar28;
  uVar24 = CONCAT44(uVar9,DAT_1826707e8);
  uVar28 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707d0 ^ 0xff0fa90e)) ^ uVar28) + uVar26 ^
           uVar30;
  *puVar49 = uVar28;
  lVar7 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar30 = uVar36 ^ uVar28 ^ uVar30 ^ uVar34 ^ *puVar23;
  *(ulonglong *)(lVar6 + -0xd38) = uVar30;
  uVar10 = DAT_182670874;
  *puVar3 = (uVar24 ^ 0xaf8669d6d0ccabe5) >> (((byte)uVar16 ^ 0x2e) & 0x3f);
  uVar14 = DAT_182670a5c;
  uVar24 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar7 + -0xf0) =
       (uVar36 ^ *(ulonglong *)(lVar7 + -0xd38)) >> ((bVar31 ^ 0x79) & 0x3f) ^ uVar24;
  uVar28 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 - (uVar29 ^ 0xfa7cd5f7)) = (uVar36 ^ uVar30) << 0x3b ^ uVar28;
  uVar14 = DAT_182670a2c;
  uVar28 = uVar28 ^ *(ulonglong *)(lVar7 + -0x118) | uVar24 ^ *(ulonglong *)(lVar7 + -0xf0);
  *(ulonglong *)(lVar7 + -0x420) = uVar28 ^ CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar10 = DAT_1826707b4;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar24 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar30 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *puVar4 = (uVar34 ^ *(ulonglong *)(lVar7 + -0xce0)) - uVar28 ^ uVar33;
  uVar14 = DAT_182670a8c;
  lVar6 = DAT_1826707a0;
  uVar28 = uVar24 ^ uVar20 ^ uVar25 ^ *puVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar28;
  uVar36 = (uVar28 ^ uVar24) >> (((byte)uVar10 ^ 0xf6) & 0x3f);
  *(ulonglong *)(lVar6 + -0x220) = uVar36 ^ uVar30;
  uVar28 = (*(ulonglong *)(lVar6 - (uVar35 ^ 0xba517a12)) ^ uVar24) << 0x1b;
  uVar24 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(lVar6 + -0x890) = uVar28 ^ CONCAT44(uVar14,uVar14);
  uVar10 = DAT_182670810;
  *(ulonglong *)(lVar6 - (uVar43 ^ 0xfa0fb9c4)) = (uVar28 | uVar36) ^ uVar24;
  *puVar1 = (uVar20 ^ *puVar22) - (*puVar40 ^ uVar24) ^ CONCAT44(uVar10,uVar10);
  *puVar2 = CONCAT44(DAT_18267086c,DAT_18267086c) ^ uVar33 ^ *puVar40 ^ *puVar4 ^ uVar24;
  *puVar3 = CONCAT44(uVar12,uVar21) ^ 0x10436100003a50a0 | 0xaebc9ecf7ec08a0a;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar18 * 4) = uVar17;
  return;
}



############ FUN_ 180c69de0 size=5505 ############

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

void FUN_180c69de0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  int iVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  byte bVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_b8;
  byte local_88;
  
  uVar13 = DAT_18267093c;
  uVar12 = DAT_1826707f4;
  uVar7 = DAT_1826707e0;
  uVar10 = DAT_1826707c8;
  uVar8 = DAT_1826707b8;
  uVar6 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707a8;
  uVar24 = DAT_1826707a8 & DAT_1826707b4;
  uVar22 = (ulonglong)DAT_1826707b8;
  uVar16 = DAT_1826707e0 & 3;
  if (uVar16 < 2) {
    DAT_1826707bc = DAT_1826707b8;
    if (uVar16 == 0) {
      DAT_1826707bc = DAT_1826707e0;
    }
  }
  else {
    DAT_1826707bc = DAT_1826707c8;
    if (uVar16 < 3) {
      DAT_1826707bc = DAT_1826707b0;
    }
  }
  uVar38 = (ulonglong)DAT_1826707f4;
  uVar45 = ~DAT_1826707f4;
  uVar16 = *(uint *)(&DAT_18260f758 + DAT_182670cfc);
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670cfc) ^ DAT_1826707f4;
  uVar43 = CONCAT44(DAT_182670890,DAT_182670890);
  bVar34 = (byte)DAT_1826707b8;
  DAT_1826707d0 = uVar24;
  DAT_1826707d8 = uVar45;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0x600a0ed0)) ^
       CONCAT44(DAT_1826707c8,DAT_1826707c0) ^ uVar43 ^ 0xaacea414aec1663e;
  uVar14 = DAT_182670a5c;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar35 = (uVar29 ^ *(ulonglong *)(lVar4 + -0xd88)) >> ((bVar34 ^ 0x89) & 0x3f);
  uVar39 = CONCAT44(DAT_182670958,DAT_182670958);
  *(ulonglong *)(lVar4 + -0x588) = uVar35 ^ uVar39;
  uVar13 = DAT_182670924;
  lVar5 = DAT_1826707a0;
  uVar27 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xcc5c8401)) ^ uVar29) <<
           (((byte)uVar24 ^ 7) & 0x3f);
  uVar29 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar27 ^ CONCAT44(uVar14,uVar14);
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0x8c02045c)) = (uVar27 | uVar35) ^ uVar30;
  uVar11 = DAT_1826707dc;
  uVar9 = DAT_1826707c4;
  uVar21 = CONCAT44(DAT_182670a24,DAT_182670a24);
  puVar1 = (ulonglong *)(lVar5 + -0xc18);
  uVar47 = CONCAT44(DAT_182670994,DAT_182670994);
  uVar35 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar5 + -0x400) =
       (uVar21 ^ *(ulonglong *)(lVar5 + -0x7d8)) -
       (*(ulonglong *)(lVar5 - (uVar33 ^ 0x7eda24a2)) ^ uVar30) ^ uVar47;
  uVar24 = DAT_1826707c0;
  uVar20 = uVar9 - uVar11;
  uVar36 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar31 = (ulonglong)uVar20;
  DAT_1826707f0 = uVar20;
  *(ulonglong *)(lVar5 + -0x6f0) =
       *(ulonglong *)(lVar5 - (uVar35 ^ 0xadc3646)) ^ uVar30 ^ uVar39 ^ *puVar1 ^ uVar36;
  puVar19 = (ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0x7828b888));
  uVar29 = (ulonglong)uVar11;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x92b37e66)) = uVar39 ^ *puVar19 ^ 0xe7c85abd414c0bc0;
  lVar4 = DAT_1826707a0;
  uVar39 = uVar39 ^ *(ulonglong *)(lVar5 + -0x6f0);
  uVar25 = CONCAT44(uVar20,DAT_1826707b0);
  uVar30 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar28 = CONCAT44(DAT_182670824,DAT_182670824);
  uVar39 = uVar39 << (((byte)DAT_1826707c8 ^ 0x5b) & 0x3f) |
           uVar39 >> (((byte)DAT_1826707b0 ^ 0xf1) & 0x3f);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  uVar27 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar39 ^ uVar28;
  uVar13 = DAT_182670a70;
  uVar37 = (uVar36 ^ *puVar2) - (CONCAT44(uVar12,uVar7) ^ 0x950ae21eb77cff44);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar37 ^ uVar27;
  uVar7 = DAT_1826707e0;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar36 = (ulonglong)uVar45;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x7828b260)) = uVar37 - uVar39 ^ uVar41;
  uVar14 = DAT_182670aa8;
  uVar20 = DAT_1826709fc;
  uVar27 = (ulonglong)DAT_1826709fc;
  *(ulonglong *)(lVar4 + -0xce0) =
       (CONCAT44(uVar11,uVar45) ^ 0x86e620692c2638b7) >> (((byte)uVar7 ^ 0xb7) & 0x3f);
  uVar13 = DAT_182670848;
  uVar46 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x220)) - (CONCAT44(uVar6,uVar8) ^ 0xaa508fdc1c228448) ^
       uVar46;
  uVar39 = CONCAT44(uVar20,uVar20);
  uVar28 = uVar43 ^ *(ulonglong *)(lVar4 + -0x660) ^ uVar39 ^ uVar47 ^
           *(ulonglong *)(lVar4 + -0x400);
  *(ulonglong *)(lVar4 + -0xd88) = uVar28;
  uVar14 = DAT_182670834;
  uVar27 = ((ulonglong)(uVar20 >> 0x10) | uVar27 << 0x10) ^ uVar28 >> 0x10;
  bVar23 = (byte)uVar9;
  *(ulonglong *)(lVar4 + -0x588) = uVar27 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_1826707f8;
  lVar5 = DAT_1826707a0;
  uVar37 = (uVar28 ^ uVar39) << ((bVar23 ^ 0xce) & 0x3f);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar37 ^ CONCAT44(uVar14,uVar14);
  uVar20 = DAT_1826707e0;
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x30fe0d04)) = (uVar37 | uVar27) ^ uVar28;
  uVar13 = DAT_182670afc;
  uVar27 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x30fe0edc)) ^ uVar47) -
           (CONCAT44(uVar20,uVar8) ^ 0x4743fc66d362706);
  *(ulonglong *)(lVar5 + -0xce0) = uVar27 ^ CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar37 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x220) = uVar27 - (*(ulonglong *)(lVar5 + -0x7d8) ^ uVar28) ^ uVar37;
  *(ulonglong *)(lVar5 + -0x660) =
       (CONCAT44(uVar12,uVar9) ^ 0xe23bd5a03b0d3260) - (uVar39 ^ *(ulonglong *)(lVar5 + -0xd88));
  lVar4 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar27 = (*(ulonglong *)(DAT_1826707a0 + -0x7d8) ^ uVar28) + (uVar25 ^ 0xe222ed9c68cac190) ^
           uVar39;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar27;
  uVar7 = DAT_1826707b4;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0x600a0e08)) =
       CONCAT44(uVar24,DAT_1826707b4) ^ uVar27 ^ uVar39 ^ 0x7d1b2eecde7040e8;
  uVar14 = DAT_182670a98;
  uVar25 = CONCAT44(DAT_182670910,DAT_182670910);
  uVar39 = *(ulonglong *)(lVar4 - (uVar38 ^ 0x30fe0f54)) ^ *puVar1 ^ uVar25 ^ uVar39 ^ uVar41;
  uVar27 = (uVar39 ^ uVar25) >> (((byte)DAT_1826707d0 ^ 0x20) & 0x3f);
  uVar39 = (uVar25 ^ uVar39) << 0x20;
  *(ulonglong *)(lVar4 + -0xce0) = uVar27 ^ CONCAT44(DAT_182670918,DAT_182670918);
  uVar13 = DAT_182670808;
  *(ulonglong *)(lVar4 + -0xd88) = uVar39 ^ CONCAT44(uVar14,uVar14);
  uVar24 = DAT_1826707a8 ^ 0x30689201;
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x660) = (uVar39 | uVar27) ^ uVar28;
  *(uint *)(lVar4 - (uVar29 ^ 0x92b378b2)) = uVar24 | 0x8997249c;
  uVar39 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar25 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *(ulonglong *)(lVar4 + -0x7d8) =
       (*puVar1 ^ uVar41) - (*(ulonglong *)(lVar4 + -0x660) ^ uVar28) ^ uVar39;
  uVar27 = *(ulonglong *)(lVar4 + -0x6f0) ^ uVar25 ^ uVar37 ^ uVar46 ^
           *(ulonglong *)(lVar4 + -0x220);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar27;
  bVar18 = (byte)DAT_1826707e0;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0x7c28b3ff)) =
       (uVar27 ^ uVar25) >> (((byte)uVar7 ^ 100) & 0x3f) ^ uVar30;
  uVar13 = DAT_182670a08;
  uVar41 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x6b8)) << ((bVar18 ^ 0xa9) & 0x3f);
  *(ulonglong *)(lVar4 + -0x400) = uVar41 ^ CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar14 = DAT_182670a54;
  lVar5 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar41 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x7828bbf0)) ^ uVar30 | uVar41;
  uVar43 = uVar41 ^ uVar27;
  *(ulonglong *)(lVar4 + -0xce0) = uVar43;
  uVar13 = DAT_182670a64;
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xd88) = (uVar37 ^ *(ulonglong *)(lVar5 + -0x220)) - uVar41 ^ uVar25;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar41 = uVar43 ^ *(ulonglong *)(lVar5 + -0x7d8) ^ uVar30 ^ uVar27 ^ uVar39;
  uVar37 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  *puVar1 = uVar41;
  *(ulonglong *)(lVar5 + -0x6f0) = (uVar41 ^ uVar30) >> ((bVar23 ^ 0xc4) & 0x3f) ^ uVar37;
  uVar27 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  puVar32 = (ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x8c020efc));
  *puVar32 = (uVar41 ^ uVar30) << 6 ^ uVar27;
  uVar13 = DAT_1826708c4;
  lVar4 = DAT_1826707a0;
  puVar44 = (ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0x600a0e08));
  uVar41 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar22 = *puVar44 ^ uVar27 | *(ulonglong *)(DAT_1826707a0 + -0x6f0) ^ uVar37;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar22 ^ uVar41;
  uVar14 = DAT_182670a80;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x400) =
       (*(ulonglong *)(lVar4 - (uVar36 ^ 0xcf01f2fb)) ^ uVar39) - uVar22 ^ uVar30;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xadc32de)) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0x92b374e6)) ^ uVar22 ^ uVar25 ^ uVar28 ^
       *(ulonglong *)(lVar4 + -0xd88);
  local_b8 = (byte)uVar6;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x7828b298)) =
       0x388e51ad176b798d - (CONCAT44(uVar10,DAT_1826707e0) ^ 0xaa1cf6dc0d88ff56);
  uVar27 = (uVar22 ^ *(ulonglong *)(lVar4 + -0x220)) >> ((local_b8 ^ 0xac) & 0x3f);
  uVar35 = (uVar22 ^ *(ulonglong *)(lVar4 + -0x220)) << 0x2a;
  *puVar1 = uVar27 ^ CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar22 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar35 ^ CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar35 = uVar35 | uVar27;
  iVar3 = *(int *)(lVar4 - (uVar22 ^ 0x600a0b64));
  *(ulonglong *)(lVar4 + -0x7d8) = 0xa6d75be7defc0b60 >> ((bVar23 ^ 0xef) & 0x3f);
  *(int *)(lVar4 + -0xcec) = iVar3 - *(int *)(lVar4 + -0x598);
  uVar13 = DAT_182670858;
  uVar46 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar35 ^ uVar46;
  uVar37 = CONCAT44(uVar13,uVar13);
  bVar18 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xcf01f343)) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0xd88)) - uVar35 ^ uVar37;
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x7eda245a)) =
       (*(ulonglong *)(lVar4 + -0x660) ^ uVar37) << (bVar18 & 0x3f);
  uVar35 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar28 = CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar27 = uVar35 ^ uVar46 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x6b8) ^
           *(ulonglong *)(lVar4 + -0x400);
  *(ulonglong *)(lVar4 + -0x220) = uVar27;
  uVar39 = (uVar27 ^ uVar35) >> ((bVar23 ^ 0xd0) & 0x3f);
  uVar22 = (ulonglong)DAT_1826707d0;
  *puVar1 = uVar39 ^ uVar28;
  uVar14 = DAT_182670a20;
  *(ulonglong *)(lVar4 + -0x6f0) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0xc020418)) ^ uVar28) +
       (uVar30 ^ *(ulonglong *)(lVar4 + -0x400));
  uVar13 = DAT_18267092c;
  uVar10 = DAT_1826707e4;
  uVar6 = DAT_1826707ac;
  uVar22 = CONCAT44(uVar14,uVar14);
  puVar42 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x87d74650));
  *(ulonglong *)(lVar4 + -0x7d8) = (uVar35 ^ uVar27) << ((bVar34 ^ 0xa2) & 0x3f) ^ uVar22;
  lVar5 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar39 = uVar22 ^ *puVar42 | uVar39;
  uVar28 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar4 + -0xd88) = uVar39 ^ uVar35;
  uVar7 = DAT_182670a04;
  uVar24 = uVar6 ^ uVar10;
  *(ulonglong *)(lVar4 + -0xce0) = (uVar30 ^ *(ulonglong *)(lVar4 + -0x400)) - uVar39 ^ uVar28;
  uVar22 = (ulonglong)uVar24;
  puVar40 = (ulonglong *)(lVar4 - (uVar22 ^ 0x7b3c29ff));
  puVar26 = (ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0xfceb6b47));
  DAT_1826707d4 = uVar24;
  *puVar26 = *puVar40 ^ *(ulonglong *)(lVar5 + -0x660) ^ CONCAT44(uVar7,uVar7) ^ uVar37 ^ uVar41;
  uVar13 = DAT_1826708f0;
  *(uint *)(lVar5 + -0x8e0) = (uVar10 ^ 0xa58bd027) << (((byte)uVar24 ^ 100) & 0x1f);
  lVar4 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x87d74730)) >> 0xc ^
       ((ulonglong)uVar7 << 0x14 | (ulonglong)(uVar7 >> 0xc)) ^ uVar39;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x7b3c2e57)) =
       (CONCAT44(uVar6,uVar24) ^ 0xd76d3553afdcc04a) << (((byte)uVar10 ^ 0x97) & 0x3f);
  uVar27 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x7b3c206f)) =
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar4 + -0x6b8)) << 0x34 ^ uVar27;
  uVar13 = DAT_1826708f4;
  uVar30 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar27 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x87d74d90)) ^ uVar27 |
           *(ulonglong *)(lVar4 + -0x6f0) ^ uVar39) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar27;
  uVar14 = DAT_182670a2c;
  lVar4 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar13,uVar13);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x87d747e8)) ^ uVar37) -
       (uVar30 ^ *puVar42) ^ uVar39;
  uVar27 = uVar21 ^ *puVar2 ^ uVar27 ^ uVar30 ^ uVar28;
  *(ulonglong *)(lVar4 + -0x588) = uVar27;
  uVar37 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x220) = (uVar21 ^ uVar27) >> ((local_b8 ^ 0xa3) & 0x3f) ^ uVar37;
  uVar27 = (ulonglong)DAT_1826707b0;
  uVar30 = CONCAT44(DAT_182670960,DAT_182670960);
  *puVar32 = (uVar21 ^ *puVar40) << (((byte)uVar10 ^ 0xaf) & 0x3f) ^ uVar30;
  uVar14 = DAT_182670aa4;
  uVar43 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0xefdfdddf)) ^ uVar37 | *puVar26 ^ uVar30) ^ uVar43;
  uVar13 = DAT_182670874;
  uVar27 = (*(ulonglong *)(lVar4 + -0xce0) ^ uVar28) -
           (CONCAT44(uVar8,DAT_1826707d0) ^ 0xda2868a17ff923a2);
  *puVar1 = uVar27 ^ CONCAT44(uVar14,uVar14);
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x660) =
       uVar27 - (*(ulonglong *)(lVar4 - (uVar22 ^ 0x7b3c2a87)) ^ uVar43) ^ uVar30;
  uVar10 = DAT_182670a34;
  uVar8 = DAT_1826707bc;
  lVar5 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_182670a34;
  *(ulonglong *)(lVar4 + -0x7d8) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0x7c28b087)) ^ uVar43) -
       (CONCAT44(uVar11,DAT_1826707bc) ^ 0x303a386d436330fd) ^ uVar46;
  uVar14 = DAT_182670af8;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar22 = *(ulonglong *)(lVar5 - (uVar36 ^ 0xcf01f123)) ^
           *(ulonglong *)(lVar5 - (uVar38 ^ 0x30fe0754)) ^ uVar28 ^ uVar39 ^ uVar35;
  *(ulonglong *)(lVar5 + -0x588) = uVar22;
  uVar13 = DAT_182670864;
  uVar27 = CONCAT44(uVar14,uVar14);
  *puVar44 = (uVar22 >> 0x20 ^ uVar21) >> 1 ^ uVar27;
  uVar15 = DAT_182670a48;
  uVar38 = (uVar28 ^ *(ulonglong *)(lVar5 + -0x588)) << 0x1f;
  *(ulonglong *)(lVar5 + -0x220) = uVar38 ^ CONCAT44(uVar13,uVar13);
  uVar14 = DAT_18267094c;
  uVar28 = CONCAT44(uVar15,uVar15);
  uVar38 = uVar38 | uVar27 ^ *(ulonglong *)(lVar5 + -0x6b8);
  *(ulonglong *)(lVar5 + -0xce0) = uVar38 ^ uVar28;
  uVar13 = DAT_182670928;
  uVar27 = (uVar39 ^ *(ulonglong *)(lVar5 + -0x400)) - (CONCAT44(uVar9,uVar6) ^ 0xde56979880c3e107);
  *puVar1 = uVar27 ^ CONCAT44(uVar14,uVar14);
  uVar21 = CONCAT44(uVar13,uVar13);
  uVar22 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x600a0e40)) = uVar27 - uVar38 ^ uVar21;
  uVar10 = DAT_182670820;
  uVar39 = (CONCAT44(uVar12,uVar24) ^ 0xf01e23dd8d6d4fae) +
           (*(ulonglong *)(lVar5 + -0xce0) ^ uVar28) ^ uVar25;
  *(ulonglong *)(lVar5 + -0xd88) = uVar39;
  uVar27 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xcf01f0ab)) =
       *(ulonglong *)(lVar5 - (uVar22 ^ 0x7c28b017)) ^ CONCAT44(uVar10,uVar10) ^ uVar39 ^ uVar30 ^
       uVar25;
  lVar4 = DAT_1826707a0;
  uVar22 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x79854ad1)) =
       ((ulonglong)uVar10 << 0x1b | (ulonglong)(uVar10 >> 5)) ^
       *(ulonglong *)(DAT_1826707a0 + -0x588) >> 5 ^ uVar22;
  uVar13 = DAT_182670a60;
  uVar39 = (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar4 + -0x588)) <<
           (((byte)uVar8 ^ 0x8b) & 0x3f);
  *(ulonglong *)(lVar4 + -0x220) = uVar39 ^ CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar39 = uVar39 | uVar22 ^ *(ulonglong *)(lVar4 + -0x6b8);
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar27 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar4 + -0x400) = uVar39 ^ uVar36;
  uVar25 = (ulonglong)DAT_1826707e0;
  uVar22 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xcc5c8591)) =
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0x7828b818)) ^ uVar30) - uVar39 ^ uVar27;
  uVar30 = CONCAT44(DAT_182670854,DAT_182670854);
  *(ulonglong *)(lVar4 + -0xce0) =
       *(ulonglong *)(lVar4 - (uVar22 ^ 0x8c020eb4)) ^ uVar30 ^ uVar21 ^ uVar46 ^ *puVar42;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x92b37f0e)) =
       ((ulonglong)(uVar6 >> 0x1f) | (ulonglong)uVar6 * 2) ^ 0x16dd7c415;
  uVar13 = DAT_182670800;
  uVar28 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(lVar4 + -0x588) =
       (*(ulonglong *)(lVar4 + -0xce0) ^ uVar30) >> (((byte)uVar45 ^ 6) & 0x3f) ^ uVar28;
  uVar29 = (ulonglong)DAT_1826707bc;
  uVar22 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x220) = (*(ulonglong *)(lVar4 + -0xce0) ^ uVar30) << 0x1b ^ uVar22;
  uVar39 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x7eda2e02)) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0x600a0a90)) ^ uVar22 |
       *(ulonglong *)(lVar4 - (uVar25 ^ 0xcc5c8c01)) ^ uVar28) ^ uVar39;
  uVar13 = DAT_1826709a0;
  uVar25 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar4 + -0x660) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0x6f0)) - (uVar39 ^ *(ulonglong *)(lVar4 + -0x6b8)) ^
       uVar25;
  uVar21 = CONCAT44(uVar13,uVar13);
  uVar30 = (ulonglong)DAT_1826707c0;
  bVar18 = (byte)DAT_1826707c0;
  uVar39 = uVar39 ^ uVar28 ^ uVar27 ^ *puVar1 ^ *(ulonglong *)(lVar4 + -0x6b8);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar39;
  uVar13 = DAT_182670974;
  uVar6 = DAT_1826707c8;
  uVar22 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x7eda2f62)) ^ uVar28) >> ((bVar23 ^ 0xe9) & 0x3f) ^ uVar21
  ;
  uVar14 = DAT_182670a4c;
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x79854089)) =
       (uVar39 ^ uVar28) << ((bVar18 ^ 0x5e) & 0x3f) ^ uVar29;
  uVar33 = *puVar1;
  uVar29 = uVar21 ^ *(ulonglong *)(lVar4 + -0xd88) | *(ulonglong *)(lVar4 + -0xce0) ^ uVar29;
  *(ulonglong *)(lVar4 + -0x220) = uVar29 ^ uVar41;
  uVar22 = CONCAT44(uVar20,DAT_1826707d0);
  *(ulonglong *)(lVar4 + -0x588) = (uVar27 ^ uVar33) - uVar29 ^ CONCAT44(uVar14,uVar14);
  *puVar19 = uVar22 ^ uVar36 ^ *(ulonglong *)(lVar4 + -0x400) ^ 0xe43de1ca5fa2a121;
  local_88 = (byte)uVar12;
  uVar33 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *puVar32 = *(ulonglong *)(lVar4 + -0x660) ^ uVar33 ^ uVar25 ^ uVar36 ^
             *(ulonglong *)(lVar4 + -0x400);
  uVar13 = DAT_182670818;
  uVar22 = (uVar33 ^ *(ulonglong *)(lVar4 + -0x6b8)) >> ((local_88 ^ 0xf4) & 0x3f);
  uVar29 = CONCAT44(DAT_182670b14,DAT_182670b14);
  uVar27 = (uVar33 ^ *(ulonglong *)(lVar4 + -0x6b8)) << (((byte)uVar6 ^ 0x71) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd88) = uVar27 ^ uVar35;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar22 ^ uVar29;
  uVar33 = CONCAT44(uVar11,DAT_1826707b0);
  *(ulonglong *)(lVar4 + -0xce0) = (uVar27 | uVar22) ^ CONCAT44(uVar13,uVar13);
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar30 ^ 0x7c28b1af)) ^ uVar29) - (uVar33 ^ 0x29fa60a579a35f13)
  ;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar16 ^ uVar45;
  return;
}



############ FUN_ 180cd8ca0 size=4084 ############

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

void FUN_180cd8ca0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  byte bVar27;
  ulonglong uVar28;
  uint uVar29;
  uint *puVar30;
  ulonglong uVar31;
  
  uVar6 = DAT_1826708d0;
  uVar19 = DAT_1826707ec;
  uVar18 = DAT_1826707cc;
  lVar3 = DAT_1826707a0;
  uVar15 = (ulonglong)DAT_1826707ec;
  uVar16 = DAT_1826707ec + DAT_1826707cc;
  uVar2 = *(uint *)(&DAT_18260f760 + DAT_182670e48);
  uVar12 = *(uint *)(&DAT_18260f758 + DAT_182670e48) ^ DAT_1826707cc;
  uVar14 = CONCAT44(DAT_1826707ec,DAT_1826707ec);
  uVar20 = (DAT_1826708d0 ^ *(uint *)(DAT_1826707a0 + -0xc04)) *
           (DAT_182670988 ^ *(uint *)(DAT_1826707a0 + -0x8e0)) ^ DAT_1826709f0;
  uVar28 = CONCAT44(uVar16,DAT_1826707cc);
  uVar9 = DAT_182670a48 ^ *(uint *)(DAT_1826707a0 + -0x280);
  bVar27 = (byte)DAT_1826707cc;
  uVar10 = (ulonglong)DAT_1826707ec;
  DAT_1826707d4 = uVar16;
  *(uint *)(DAT_1826707a0 + -0xa34) = uVar20;
  uVar20 = uVar20 ^ DAT_1826709f0;
  *(ulonglong *)(lVar3 + -0x2b0) = (uVar14 ^ 0x6fd40075bc760ec4) >> ((bVar27 ^ 0xfd) & 0x3f);
  uVar23 = DAT_182670a18;
  bVar27 = (byte)uVar16;
  uVar9 = uVar9 * 0xb ^ DAT_18267084c;
  *(uint *)(lVar3 + -0x42c) = uVar9;
  uVar20 = (uVar9 ^ DAT_18267084c) + uVar20;
  *(uint *)(lVar3 + -0x68c) = uVar20 ^ uVar23;
  uVar9 = uVar20 << ((bVar27 ^ 0xe8) & 0x1f) ^ DAT_1826709ec;
  uVar23 = uVar20 >> ((bVar27 ^ 0xf6) & 0x1f) ^ DAT_182670918;
  *(uint *)(lVar3 + -0x3d4) = uVar9;
  uVar9 = uVar9 ^ DAT_1826709ec;
  *(uint *)(lVar3 + -0x9ec) = uVar23;
  lVar4 = DAT_1826707a0;
  puVar30 = (uint *)(lVar3 - (uVar10 ^ 0x90589ee));
  uVar23 = *(uint *)(DAT_1826707a0 + -0xb54) ^ DAT_182670848;
  *(uint *)(DAT_1826707a0 + -0x43c) = (*puVar30 ^ DAT_182670918 | uVar9) ^ DAT_182670a50;
  *(uint *)(lVar4 - (uVar15 ^ 0x9058c36)) =
       uVar23 + (uVar6 ^ *(uint *)(lVar4 + -0xc04)) ^ DAT_182670814;
  uVar23 = *(uint *)(lVar4 + -0x43c) ^ DAT_182670aac ^ DAT_182670a50;
  *(uint *)(lVar4 + -0xcec) = DAT_18267082c ^ DAT_182670814 ^ *(uint *)(lVar4 + -0xc34);
  uVar21 = DAT_182670ab8;
  uVar14 = (ulonglong)DAT_182670a5c;
  *(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x466495ef)) = uVar23;
  *(uint *)(lVar4 + -0x398) = *(uint *)(lVar4 + -0xcec) ^ uVar21 ^ DAT_18267082c;
  *(uint *)(lVar4 + -0x540) = *(uint *)(lVar4 + -0xc0c) ^ DAT_1826708c0 ^ DAT_182670aac;
  uVar25 = DAT_182670b04;
  uVar13 = DAT_182670870;
  uVar10 = (ulonglong)DAT_182670b04;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x4664982b)) =
       (CONCAT44(uVar18,uVar19) ^ 0x466499e309058002) * 0x20 + (uVar28 ^ 0x4f6a19e5466499f5) +
       *(longlong *)(lVar4 + -0x30) ^ uVar14;
  bVar11 = (byte)DAT_182670808;
  *(byte *)(lVar4 + -0x751) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x1c8) ^ uVar14) ^ (byte)DAT_182670808 ^
       (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar4 + -0x2a0) ^ uVar10) = (byte)uVar19 ^ 0xa0;
  uVar9 = *(uint *)(lVar4 + -0x540) ^ DAT_1826708c0;
  *(ulonglong *)(lVar4 + -0x3b0) =
       *(ulonglong *)(lVar4 + -0xcf8) >> ((byte)*(undefined8 *)(lVar4 + -0x420) & 0x3f);
  *(uint *)(lVar4 + -0x7e4) = (bVar11 ^ *(byte *)(lVar4 + -0x751)) ^ uVar13;
  uVar23 = DAT_1826707cc;
  *(uint *)(lVar4 + -0x2d4) = uVar9 + (uVar16 ^ 0x844e54c6) ^ DAT_1826708ac;
  uVar20 = DAT_182670af4;
  uVar14 = (ulonglong)uVar23;
  *(uint *)(lVar4 + -0x8e0) =
       (*(uint *)(lVar4 - ((ulonglong)uVar23 ^ 0x46649e07)) ^ uVar13) << ((bVar27 ^ 0xf4) & 0x1f) ^
       DAT_182670af4;
  *(ulonglong *)(lVar4 - (uVar14 ^ 0x46649de3)) =
       (CONCAT44(uVar19,uVar16) ^ 0xd66cf3899d7838b0) + 0x57e69c93a1f3b711;
  uVar29 = DAT_182670934;
  uVar9 = DAT_1826707a8;
  *(uint *)(lVar4 - ((ulonglong)uVar16 ^ 0x4f6a1b65)) =
       (*(uint *)(lVar4 + -0x2d4) ^ DAT_1826708ac) - (uVar20 ^ *(uint *)(lVar4 + -0x8e0)) ^
       DAT_182670a30;
  uVar20 = DAT_1826707b0;
  *(uint *)(lVar4 + -0xa34) =
       (*(uint *)(lVar4 - (uVar15 ^ 0x9058282)) ^ DAT_182670a30) *
       (uVar21 ^ *(uint *)(lVar4 + -0x398)) ^ uVar6;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar23 ^ 0x4664902b)) =
       *(ulonglong *)(lVar4 - (uVar15 ^ 0x9058d3a)) ^ CONCAT44(uVar9,uVar23) ^ 0x3786eb11299792ac;
  *(uint *)(lVar4 - (uVar15 ^ 0x905842e)) =
       (*(uint *)(lVar4 + -0x7e4) ^ uVar13) * (DAT_1826707cc ^ 0x466499f5) ^ DAT_182670a88;
  *(ulonglong *)(lVar4 + -0x658) =
       (CONCAT44(uVar16,uVar19) ^ 0x8f9cada7ad657a07) >> ((bVar27 ^ 0xe1) & 0x3f);
  *(uint *)(lVar4 + -0x68c) =
       (*(uint *)(lVar4 - (uVar14 ^ 0x466493d7)) ^ DAT_1826708d0) +
       (*(uint *)(lVar4 + -0x42c) ^ DAT_182670a88) ^ uVar29;
  uVar7 = DAT_1826707f4;
  uVar6 = DAT_1826707dc;
  uVar10 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar4 + -0x68) =
       *(longlong *)(lVar4 - (uVar15 ^ 0x905843a)) -
       (CONCAT44(DAT_1826707e0,DAT_1826707e4) ^ 0x2fa5746ef8428c76);
  uVar13 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  bVar27 = (byte)DAT_1826707c0;
  *(uint *)(DAT_1826707a0 + -0x3d4) =
       (*(uint *)(lVar4 - (uVar10 ^ 0xbffff933)) ^ uVar29) << ((bVar27 ^ 0xae) & 0x1f) ^
       DAT_182670898;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (CONCAT44(DAT_1826707d8,uVar23) ^ 0xc4e1490e3de0dfd) -
       *(longlong *)(lVar3 - ((ulonglong)uVar7 ^ 0xa3b19391));
  *puVar30 = (*(uint *)(lVar4 - ((ulonglong)uVar7 ^ 0xa3b19575)) ^ uVar29) >> 0x13 ^ DAT_182670a48;
  uVar24 = (*(uint *)(lVar4 + -0x3d4) ^ DAT_182670898 | *(uint *)(lVar4 + -0x9ec) ^ DAT_182670a48) ^
           uVar25;
  *(uint *)(lVar4 + -0xc04) = uVar24;
  uVar10 = (ulonglong)uVar13;
  uVar21 = (*(uint *)(lVar4 - (uVar14 ^ 0x46649a7b)) ^ uVar21) +
           (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) ^ DAT_182670a80;
  *(uint *)(lVar4 + -0xc34) = uVar21;
  uVar8 = DAT_18267087c;
  uVar29 = DAT_182670854;
  uVar7 = DAT_1826707d0;
  uVar23 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar25 = uVar24 ^ DAT_1826708a4 ^ uVar25;
  uVar31 = CONCAT44(uVar20,DAT_1826707a8);
  uVar14 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(DAT_1826707a0 + -0x118) =
       (CONCAT44(DAT_1826707c8,uVar6) ^ 0xbef9e8248ee13c73) >> ((bVar27 ^ 0xa8) & 0x3f);
  uVar21 = DAT_1826708e0 ^ DAT_182670a80 ^ uVar21;
  *(uint *)(lVar3 + -0xcec) = uVar25;
  uVar20 = uVar25 ^ DAT_18267098c ^ DAT_1826708a4;
  uVar28 = (ulonglong)DAT_182670894;
  *(uint *)(lVar3 + -0x43c) = uVar21;
  *(uint *)(lVar3 + -0xc0c) = uVar21 ^ uVar29 ^ DAT_1826708e0;
  *(uint *)(lVar3 + -0x540) = uVar20;
  uVar26 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xfffffdf7)) =
       (CONCAT44(DAT_1826707e8,uVar23) ^ 0xf6fa7ffd84804025) + *(longlong *)(lVar3 + -0x30) ^ uVar28
  ;
  bVar11 = (byte)DAT_1826707b4;
  uVar14 = (ulonglong)DAT_18267096c;
  *(byte *)(lVar3 + -0xaea) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x248) ^ uVar28) ^ (byte)uVar8 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc90) ^ uVar14) = bVar11 ^ 0x4a;
  uVar24 = DAT_182670a10;
  uVar6 = DAT_1826707c4;
  lVar4 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar26 ^ 0xf6fa7d29)) =
       (uint)*(byte *)(lVar3 - ((ulonglong)DAT_1826707e0 ^ 0xb175deb4)) ^ uVar8 & 0xff ^
       DAT_182670a10;
  uVar23 = *(uint *)(lVar4 + -0x540) ^ DAT_18267098c;
  *(ulonglong *)(lVar4 + -0x1b8) = uVar31 ^ 0xe3bcd2b4493c13e3;
  uVar20 = uVar23 + (uVar6 ^ 0x64d2b05c) ^ DAT_182670970;
  *(uint *)(lVar4 + -0x8e0) = uVar20;
  uVar25 = DAT_1826708b0;
  uVar21 = DAT_182670874;
  uVar20 = uVar20 ^ DAT_182670970;
  uVar23 = (*(uint *)(lVar4 + -0x2d4) ^ uVar24) << (((byte)uVar7 ^ 0xae) & 0x1f) ^ _DAT_182670ad4;
  *(uint *)(lVar4 + -0x280) = uVar23;
  uVar22 = uVar20 - (uVar23 ^ _DAT_182670ad4) ^ DAT_182670928;
  *(longlong *)(lVar4 + -0x890) = *(longlong *)(lVar4 + -0x118) + 0x368a26bf5adfaa5;
  uVar23 = DAT_1826707f0;
  *(uint *)(lVar4 + -0x7e4) = uVar22;
  uVar20 = DAT_18267083c;
  uVar22 = uVar22 ^ DAT_182670928;
  uVar24 = (*(uint *)(lVar4 + -0x2d4) ^ uVar24) * (uVar23 ^ 0x21e6c8d2);
  uVar14 = CONCAT44(uVar18,DAT_1826707b8);
  *(uint *)(lVar4 + -0x42c) = uVar24 ^ uVar8;
  uVar18 = (*(uint *)(lVar4 + -0xc0c) ^ uVar29) * uVar22 ^ DAT_182670aa8;
  *(uint *)(lVar4 + -0xa34) = uVar18;
  uVar24 = (uVar18 ^ DAT_182670aa8) + uVar24;
  *(uint *)(lVar4 + -0x68c) = uVar24 ^ uVar20;
  *(uint *)(lVar4 + -0x3d4) = uVar24 << (((byte)DAT_1826707cc ^ 0xee) & 0x1f) ^ uVar21;
  *(ulonglong *)(lVar4 + -0x610) =
       CONCAT44(uVar7,DAT_1826707e0) ^ 0xe378c8cea5858694 | uVar14 ^ 0x7366754c21b9f31e;
  uVar26 = (ulonglong)DAT_1826707bc;
  *(uint *)(lVar4 + -0x9ec) =
       (*(uint *)(lVar4 + -0x68c) ^ uVar20) >> (((byte)DAT_1826707bc ^ 0xa2) & 0x1f) ^ DAT_1826709a0
  ;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x5ed47309)) =
       *(longlong *)(lVar4 + -0xa18) - (CONCAT44(uVar6,uVar19) ^ 0xf9d3cd559864475c);
  *(uint *)(lVar4 + -0x398) =
       (*(uint *)(lVar4 + -0x9ec) ^ DAT_1826709a0 | *(uint *)(lVar4 + -0x3d4) ^ uVar21) ^ uVar25;
  uVar31 = (ulonglong)DAT_1826707ac;
  *(longlong *)(lVar4 + -0x660) =
       *(longlong *)(lVar4 + -0x548) << ((byte)*(undefined8 *)(lVar4 + -0x5c0) & 0x3f);
  uVar8 = DAT_1826709c0;
  uVar20 = (*(uint *)(lVar4 + -0xc0c) ^ uVar29) + (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) ^
           DAT_182670a50;
  uVar14 = (ulonglong)DAT_182670a38;
  uVar28 = (ulonglong)DAT_182670964;
  *(uint *)(lVar4 + -0xc34) = uVar20;
  uVar20 = uVar20 ^ _DAT_18267097c ^ DAT_182670a50;
  *(byte *)(lVar4 + -0x8d9) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xdb8) ^ uVar14) ^ (byte)DAT_182670adc;
  *(uint *)(lVar4 + -0xc04) = uVar20;
  *(longlong *)(lVar4 - ((ulonglong)DAT_1826707b0 ^ 0x2a5b65d3)) =
       *(longlong *)(lVar4 - (uVar31 ^ 0xe6aa339d)) <<
       ((byte)*(undefined8 *)(lVar4 - ((ulonglong)DAT_1826707c8 ^ 0xd6da6dfd)) & 0x3f);
  uVar20 = DAT_182670ad8;
  *(uint *)(lVar4 + -0x43c) = DAT_182670ad8 ^ uVar25 ^ *(uint *)(lVar4 + -0x398);
  *(uint *)(lVar4 - (uVar26 ^ 0x5ed4795d)) =
       *(uint *)(lVar4 - ((ulonglong)uVar23 ^ 0x21e6c4d7)) ^ uVar8 ^ _DAT_18267097c;
  uVar23 = DAT_1826707c0;
  uVar18 = DAT_1826707c0 & 0xff00;
  uVar29 = DAT_1826707c0 << 0x10;
  *(uint *)(lVar4 + -0x540) = uVar20 ^ *(uint *)(lVar4 + -0x43c) ^ DAT_182670918;
  uVar24 = DAT_1826709d8;
  uVar20 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  uVar22 = (uVar29 | uVar18) << 8 | uVar23 >> 8 & 0xff00 | DAT_1826707c0 >> 0x18;
  uVar14 = CONCAT44(uVar22,uVar13);
  uVar26 = (ulonglong)DAT_1826709d8;
  DAT_1826707e0 = uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0xa30) =
       (uVar14 ^ 0xa3b193f9f993b1a3) * 0x20 + (uVar14 ^ 0xa3b193f9f993b1af) +
       *(longlong *)(DAT_1826707a0 + -0x30) ^ uVar28;
  uVar29 = DAT_1826709c8;
  *(ulonglong *)(lVar3 - (uVar10 ^ 0xf993b153)) =
       CONCAT44(uVar22,uVar22) ^ 0x498900502a883041 | 0x3436b3a55101cbba;
  uVar18 = DAT_182670810;
  bVar11 = (byte)(uVar20 >> 0x18);
  *(byte *)(lVar3 + -0x619) =
       *(byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0xa30)) ^ (byte)uVar21 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar3 + -0xd28) ^ uVar26) = bVar11 ^ 0x88;
  uVar21 = uVar21 & 0xff ^ (uint)*(byte *)(lVar3 + -0x619);
  *(uint *)(lVar3 + -0x8e0) = uVar21 ^ uVar29;
  uVar23 = DAT_1826707c0;
  *(ulonglong *)(lVar3 + -0x6f0) = (uVar14 ^ 0xd1631d99998ad9f0) >> ((bVar27 ^ 0xbc) & 0x3f);
  *(uint *)(lVar3 + -0x280) =
       (*(uint *)(lVar3 + -0x540) ^ DAT_182670918) + (uVar23 ^ 0x32b7fc80) ^ uVar18;
  uVar20 = DAT_1826709e4;
  *(uint *)(DAT_1826707a0 - (uVar10 ^ 0xf993b647)) =
       uVar21 << (((byte)uVar23 ^ 0xb2) & 0x1f) ^ DAT_1826709e4;
  lVar3 = DAT_1826707a0;
  uVar20 = (uVar18 ^ *(uint *)(DAT_1826707a0 + -0x280)) -
           (uVar20 ^ *(uint *)(DAT_1826707a0 + -0x7e4)) ^ DAT_182670880;
  puVar30 = (uint *)(DAT_1826707a0 + -0xcec);
  *(uint *)(DAT_1826707a0 + -0x2d4) = uVar20;
  uVar23 = DAT_182670958;
  *(uint *)(lVar3 - (uVar10 ^ 0xf993b58f)) =
       (uVar8 ^ *puVar30) * (uVar20 ^ DAT_182670880) ^ DAT_182670994;
  uVar18 = DAT_182670980;
  uVar20 = (uVar29 ^ *(uint *)(lVar3 + -0x8e0)) * (uVar22 ^ 0xa3b193f5);
  *(ulonglong *)(lVar3 + -0x2b0) = CONCAT44(uVar13,uVar22) ^ uVar14 ^ 0x4a264d6b1c963084;
  uVar10 = (ulonglong)DAT_1826708d8;
  *(uint *)(lVar3 + -0xa34) = uVar20 ^ uVar24;
  uVar5 = DAT_1826707b4;
  lVar4 = DAT_1826707a0;
  uVar20 = (*(uint *)(lVar3 + -0x42c) ^ DAT_182670994) + uVar20;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xaa0);
  *(uint *)(DAT_1826707a0 + -0x68c) = uVar20 ^ uVar23;
  *(byte *)(lVar4 + -0xd11) = *(byte *)(*puVar1 ^ uVar10) ^ (byte)DAT_182670adc;
  *(uint *)(lVar4 + -0x3d4) = uVar20 << ((bVar11 ^ 0xf4) & 0x1f) ^ DAT_182670a0c;
  lVar3 = DAT_1826707a0;
  uVar29 = (*(uint *)(lVar4 + -0x68c) ^ uVar23) >> ((bVar11 ^ 0xea) & 0x1f) ^ DAT_182670a40;
  uVar23 = *(uint *)(DAT_1826707a0 + -0xcec);
  uVar10 = (ulonglong)DAT_1826707dc;
  *(uint *)(lVar4 + -0x9ec) = uVar29;
  uVar20 = DAT_182670adc;
  uVar29 = (*(uint *)(lVar4 - ((ulonglong)uVar22 ^ 0xa3b1902d)) ^ DAT_182670a0c |
           uVar29 ^ DAT_182670a40) ^ DAT_18267088c;
  *(uint *)(lVar3 + -0xc0c) = uVar29;
  uVar23 = (*(uint *)(lVar3 - (uVar10 ^ 0xbffff4eb)) ^ DAT_182670848) + (uVar8 ^ uVar23) ^
           DAT_18267080c;
  uVar29 = uVar29 ^ DAT_182670a04 ^ DAT_18267088c;
  *(uint *)(lVar3 + -0xc34) = uVar23;
  uVar23 = uVar23 ^ DAT_18267080c ^ uVar20;
  *(uint *)(lVar3 + -0xc04) = uVar29;
  uVar29 = uVar29 ^ DAT_182670a04;
  *(uint *)(lVar3 + -0x398) = uVar23;
  *(uint *)(lVar3 + -0x540) = uVar29 ^ uVar25;
  *(uint *)(lVar3 + -0x43c) = uVar18 ^ uVar20 ^ uVar23;
  uVar14 = (ulonglong)DAT_182670afc;
  bVar17 = (byte)DAT_1826707e4;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xe6aa3c9d)) =
       (CONCAT44(DAT_1826707b8,uVar5) ^ 0xb99b65dc21e6c884) +
       (CONCAT44(uVar22,uVar19) ^ 0xa3b193f909058002) * 0x20 + *(longlong *)(lVar3 + -0x30) ^ uVar14
  ;
  bVar27 = (byte)DAT_182670a1c;
  uVar10 = (ulonglong)DAT_182670a20;
  *(byte *)(lVar3 + -0x2d5) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x3e0) ^ uVar14) ^ (byte)DAT_182670a1c ^ (byte)uVar20;
  uVar23 = DAT_182670a6c;
  uVar14 = CONCAT44(uVar22,DAT_1826707d8);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar15 ^ 0x90588ba)) ^ uVar10) = bVar17 ^ 5;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0x84804cdc)) =
       CONCAT44(uVar13,uVar13) ^ uVar14 ^ 0x69ec665f203a28e1;
  *(uint *)(lVar3 + -0x280) = (bVar27 ^ *(byte *)(lVar3 + -0x2d5)) ^ DAT_182670948;
  uVar10 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 + -0x3b0) =
       *(ulonglong *)(lVar3 + -0x588) >>
       ((byte)*(undefined8 *)(lVar3 - ((ulonglong)uVar16 ^ 0x4f6a1b55)) & 0x3f);
  uVar19 = (*(uint *)(lVar3 - (uVar10 ^ 0xd6da63cd)) ^ uVar25) + (DAT_1826707e8 ^ 0x3dde32de);
  *(uint *)(lVar3 + -0x7e4) = uVar19 ^ uVar23;
  uVar20 = DAT_1826707fc;
  uVar23 = *(uint *)(lVar3 + -0x43c);
  uVar13 = (*(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0xaff6ffff)) ^ DAT_182670948) <<
           ((bVar11 ^ 0xe8) & 0x1f) ^ DAT_182670840;
  uVar10 = CONCAT44(uVar9,DAT_1826707f4);
  *(uint *)(lVar3 + -0x2d4) = uVar13;
  uVar19 = uVar19 - (uVar13 ^ DAT_182670840);
  *(uint *)(lVar3 + -0x8e0) = uVar19 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x400) =
       (CONCAT44(uVar5,uVar7) ^ 0x26c76696e50158a1) - (uVar10 ^ 0x6e2439600fe49770);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar16) * 4) = uVar12;
  *(uint *)(lVar3 + -0x42c) = (uVar18 ^ uVar23) * uVar19 ^ DAT_1826708b4;
  return;
}



############ FUN_ 180cb30c0 size=5966 ############

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

void FUN_180cb30c0(void)

{
  byte *pbVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  longlong *plVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  byte bVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  uint uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong *puVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong uVar61;
  ulonglong *puVar62;
  ulonglong uVar63;
  ulonglong *puVar64;
  byte local_148;
  byte local_140;
  byte local_110;
  
  uVar10 = DAT_182670a30;
  uVar7 = DAT_1826707d0;
  uVar6 = DAT_1826707c0;
  uVar17 = DAT_1826707bc;
  uVar5 = DAT_1826707b0;
  uVar58 = (ulonglong)DAT_1826707b0;
  uVar60 = (ulonglong)DAT_1826707bc;
  uVar51 = DAT_182670a30 | DAT_1826708a4;
  uVar33 = DAT_1826707bc << 0x10 | DAT_1826707bc >> 0x10;
  uVar29 = (DAT_1826707b0 << 0x10 | DAT_1826707b0 & 0xff00) << 8 | DAT_1826707b0 >> 8 & 0xff00 |
           DAT_1826707b0 >> 0x18;
  uVar11 = DAT_1826707c0 & DAT_1826707d0;
  uVar19 = DAT_182670a6c * DAT_182670a40;
  uVar14 = DAT_182670818 >> 0x10;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670de0);
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670de0) ^ DAT_1826707bc;
  uVar13 = DAT_182670818 & 0xff;
  DAT_182670818 = ((DAT_182670818 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar40 = (ulonglong)DAT_1826707d0;
  puVar23 = (ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xd5acab06));
  uVar36 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar20 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar13 = uVar14 & 0xff;
  DAT_1826707a8 = uVar33;
  DAT_1826707b8 = uVar11;
  DAT_1826707c8 = uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (CONCAT44(DAT_18267089c,DAT_18267089c) ^ *puVar23) -
       (*(ulonglong *)(DAT_1826707a0 + -0x998) ^ uVar36) ^ uVar20;
  lVar3 = DAT_1826707a0;
  uVar57 = (ulonglong)uVar11;
  DAT_1826708e4 = ((uVar14 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar27 = (ulonglong)uVar6;
  uVar24 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  uVar14 = uVar51 & 0xff;
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar57 ^ 0x4a8885e)) ^ uVar36) -
       (CONCAT44(uVar6,uVar5) ^ 0xafac9993adfefb67) ^ uVar24;
  DAT_18267087c = ((uVar51 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar42 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  uVar37 = CONCAT44(DAT_18267087c,DAT_18267087c);
  uVar14 = DAT_1826708a4 & 0xff;
  uVar36 = CONCAT44(DAT_182670a70,DAT_182670a70) ^ *(ulonglong *)(lVar3 + -0x9c8) ^
           *(ulonglong *)(lVar3 + -0x558) ^ uVar37 ^ uVar42;
  *(ulonglong *)(lVar3 + -0xc18) = uVar36;
  DAT_1826708a4 = ((DAT_1826708a4 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar52 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  uVar28 = (ulonglong)uVar29;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar29 ^ 0x6c6a637b)) =
       (uVar36 ^ uVar37) >> (((byte)uVar6 ^ 0xde) & 0x3f) ^ uVar52;
  lVar3 = DAT_1826707a0;
  uVar15 = DAT_182670820 - DAT_182670aec & 0xff;
  uVar32 = (DAT_182670820 - DAT_182670aec) * 0x100;
  DAT_182670994 = ((uVar32 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar41 = (ulonglong)DAT_182670994;
  uVar38 = CONCAT44(DAT_182670994,DAT_182670994);
  uVar36 = *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xce9dde7));
  uVar14 = DAT_182670a30 & 0xff;
  *(uint *)(DAT_1826707a0 + -0x42c) = (uVar5 ^ 0xde6248bf) >> (((byte)uVar7 ^ 0xc1) & 0x1f);
  DAT_182670a30 = ((DAT_182670a30 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar63 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar36 = (uVar36 ^ uVar37) << (((byte)(uVar5 >> 0x18) ^ 0xa4) & 0x3f) |
           *(ulonglong *)(lVar3 + -0xac0) ^ uVar52;
  *(ulonglong *)(lVar3 + -0x558) = uVar36 ^ uVar63;
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar7,uVar29) ^ 0xc84e317ba8f9ee94) >> (((byte)uVar17 ^ 0xb) & 0x3f);
  uVar14 = DAT_182670aec & 0xff;
  DAT_182670aec = ((DAT_182670aec << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar53 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(lVar3 + -0x998) =
       (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar42) - (CONCAT44(uVar11,uVar11) ^ 0xcf856fe2c94348fd) ^
       uVar53;
  uVar14 = DAT_182670820 & 0xff;
  DAT_182670820 = ((DAT_182670820 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar42 = (ulonglong)DAT_182670820;
  uVar43 = CONCAT44(DAT_182670820,DAT_182670820);
  puVar46 = (ulonglong *)(lVar3 - (uVar27 ^ 0xce9db3f));
  *puVar46 = (*(ulonglong *)(lVar3 - (uVar60 ^ 0x2324aaba)) ^ uVar53) - uVar36 ^ uVar43;
  uVar13 = DAT_1826707d4;
  uVar21 = (ulonglong)DAT_1826707d4;
  uVar49 = (ulonglong)DAT_1826707d4;
  uVar22 = (DAT_1826707d4 << 0x10 | DAT_1826707d4 & 0xff00) << 8 | DAT_1826707d4 >> 8 & 0xff00 |
           DAT_1826707d4 >> 0x18;
  uVar14 = DAT_182670a6c & 0xff;
  uVar47 = (ulonglong)uVar22;
  DAT_182670a6c = ((DAT_182670a6c << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar61 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar14 = DAT_182670a40 & 0xff;
  uVar36 = (CONCAT44(DAT_1826707d4,uVar22) ^ 0x73302f4e6fc830e2) +
           (*(ulonglong *)(lVar3 + -0x558) ^ uVar63) ^ uVar61;
  DAT_1826707f4 = uVar22;
  *(ulonglong *)(lVar3 + -0xc18) = uVar36;
  DAT_182670a40 = ((DAT_182670a40 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar59 = CONCAT44(DAT_182670a40,DAT_182670a40);
  uVar54 = *(ulonglong *)(lVar3 + -0xf0) ^ uVar59 ^ uVar36 ^ uVar61 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar54;
  uVar25 = (uVar59 ^ uVar54) >> (((byte)uVar13 ^ 0xad) & 0x3f);
  uVar16 = uVar19 & 0xff;
  *(ulonglong *)(lVar3 + -0x998) = uVar25 ^ uVar63;
  uVar14 = DAT_1826707ac;
  DAT_182670b00 = ((uVar19 * 0x100 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar26 = (ulonglong)DAT_182670b00;
  uVar44 = (ulonglong)DAT_1826707ac;
  uVar30 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar19 = (DAT_182670a08 | DAT_182670ae4) & 0xff;
  uVar36 = (*(ulonglong *)(lVar3 - (uVar49 ^ 0x8a244960)) ^ uVar59) << 0x3b;
  *(ulonglong *)(lVar3 + -0x558) = uVar36 ^ uVar30;
  uVar16 = DAT_1826707e4;
  lVar3 = DAT_1826707a0;
  uVar35 = uVar14 - DAT_1826707e4;
  DAT_182670974 = (((DAT_182670a08 | DAT_182670ae4) << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar48 = (ulonglong)DAT_182670974;
  uVar49 = CONCAT44(DAT_182670974,DAT_182670974);
  DAT_1826707c4 = uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = (uVar25 | uVar36) ^ uVar49;
  uVar19 = DAT_182670a08 & 0xff;
  DAT_182670a08 = ((DAT_182670a08 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  puVar64 = (ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xf07e505a));
  uVar31 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar50 = (*(ulonglong *)(lVar3 + -0xf0) ^ uVar20) - (uVar49 ^ *puVar64) ^ uVar31;
  *(ulonglong *)(lVar3 + -0x998) = uVar50;
  uVar19 = DAT_182670ae4 & 0xff;
  *(ulonglong *)(lVar3 + -0x558) = uVar54 ^ CONCAT44(uVar35,uVar14) ^ uVar59 ^ 0x3bbe8b494adf2d72;
  lVar3 = DAT_1826707a0;
  DAT_182670ae4 = ((DAT_182670ae4 << 8 | uVar19) << 8 | uVar19) << 8 | uVar19;
  uVar25 = (ulonglong)DAT_182670ae4;
  uVar55 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar54 = *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x9c063148)) ^
           *(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar55 ^ uVar43 ^ uVar24;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar54;
  lVar4 = DAT_1826707a0;
  local_148 = (byte)uVar16;
  uVar36 = *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x9c063b78));
  uVar54 = (uVar54 ^ uVar55) << ((local_148 ^ 0x59) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar54 ^ uVar53;
  uVar25 = (uVar36 >> 0x20 ^ uVar25) >> 5;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar25 ^ uVar24;
  uVar25 = uVar25 | uVar54;
  uVar54 = uVar25 ^ uVar53;
  *(ulonglong *)(lVar4 + -0xf0) = uVar54;
  puVar39 = (ulonglong *)(lVar4 - ((ulonglong)uVar35 ^ 0xab87d586));
  uVar36 = *puVar39;
  uVar50 = uVar54 ^ uVar31 ^ uVar61 ^ uVar53 ^ uVar50;
  *(ulonglong *)(lVar4 + -0x610) = uVar50;
  *(ulonglong *)(lVar4 + -0x9c8) = (uVar36 ^ uVar43) - uVar25 ^ uVar55;
  lVar3 = DAT_1826707a0;
  local_110 = (byte)(uVar17 >> 0x10);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0x8a2446b8)) ^ uVar61) >> ((local_110 ^ 0x33) & 0x3f) ^
       uVar31;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x6c6a694b)) = (uVar50 ^ uVar61) << 0x29 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 + -0xac0) ^ uVar31) + *(longlong *)(lVar3 + -0x558);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*(ulonglong *)(lVar3 + -0xac0) ^ uVar31 | *(ulonglong *)(lVar3 + -0xf0) ^ uVar43) ^ uVar52;
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0x998)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0xf07e588a)) ^ uVar52) ^ uVar24;
  *(ulonglong *)(lVar3 - (uVar47 ^ 0xa84021d2)) =
       *(ulonglong *)(lVar3 + -0xc18) ^ *(ulonglong *)(lVar3 + -0x9c8) ^ uVar55 ^ uVar49 ^ uVar30;
  *(ulonglong *)(lVar3 + -0xac0) = (*(ulonglong *)(lVar3 + -0x558) >> 0x20 ^ uVar26) >> 8 ^ uVar20;
  uVar36 = (*(ulonglong *)(lVar3 + -0x558) ^ uVar30) << (((byte)uVar35 ^ 0x5e) & 0x3f);
  *(ulonglong *)(lVar3 + -0x610) = uVar36 ^ uVar49;
  uVar36 = uVar36 | *puVar23 ^ uVar20;
  *(ulonglong *)(lVar3 + -0x998) = uVar36 ^ uVar59;
  *(ulonglong *)(lVar3 + -0xc18) = CONCAT44(uVar17,uVar13) ^ 0x3a8dff3fe1cbb1b7 | *puVar39 ^ uVar20;
  lVar4 = DAT_1826707a0;
  puVar45 = (ulonglong *)(lVar3 - (uVar60 ^ 0x2324a67a));
  *puVar45 = (*(ulonglong *)(lVar3 - (uVar47 ^ 0xa8402d42)) ^ uVar55) - uVar36 ^ uVar55;
  puVar23 = (ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0xa3222abc));
  *(ulonglong *)(lVar4 + -0x610) =
       *(ulonglong *)(lVar4 - (uVar58 ^ 0xbb696a9c)) ^ uVar59 ^ uVar37 ^ uVar24 ^ *puVar23;
  lVar3 = DAT_1826707a0;
  local_140 = (byte)uVar14;
  *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x8a244a68)) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0xce9d7ef)) ^ uVar37) >> (((byte)uVar17 ^ 0x16) & 0x3f) ^
       uVar63;
  uVar17 = DAT_1826707d8;
  uVar19 = DAT_1826707d8 << 0x10;
  *puVar64 = (*(ulonglong *)(lVar3 + -0x610) ^ uVar37) << ((local_140 ^ 0x84) & 0x3f) ^ uVar61;
  uVar36 = *(ulonglong *)(lVar3 + -0xc18) ^ uVar61 | *(ulonglong *)(lVar3 + -0xac0) ^ uVar63;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar36 ^ uVar20;
  uVar16 = DAT_1826707d8;
  uVar19 = (uVar19 | uVar17 & 0xff00) << 8 | uVar17 >> 8 & 0xff00 | DAT_1826707d8 >> 0x18;
  uVar25 = (ulonglong)uVar19;
  DAT_1826707e8 = uVar19;
  *(ulonglong *)(lVar3 + -0x998) = (*(ulonglong *)(lVar3 + -0xf0) ^ uVar24) - uVar36 ^ uVar55;
  *(ulonglong *)(lVar3 + -0x610) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0xc46c8da6)) ^ *(ulonglong *)(lVar3 + -0x558) ^ uVar55;
  lVar3 = DAT_1826707a0;
  bVar34 = (byte)(uVar16 >> 0x18);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (*(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar52) >> ((bVar34 ^ 0x57) & 0x3f) ^ uVar61;
  lVar4 = DAT_1826707a0;
  puVar62 = (ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x6e896c34));
  *puVar62 = (CONCAT44(uVar17,uVar17) ^ 0x1dc3c799fc87eb43) -
             (CONCAT44(uVar19,uVar19) ^ 0x3e25faf278d39151);
  uVar36 = (*(ulonglong *)(lVar4 + -0x610) ^ uVar52) << 7;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar36 ^ uVar38;
  uVar36 = *(ulonglong *)(lVar4 + -0xc18) ^ uVar61 | uVar36;
  *(ulonglong *)(lVar4 + -0xac0) = uVar36 ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar57 ^ 0x4a887d6)) =
       (*(ulonglong *)(lVar4 + -0x558) ^ uVar55) - uVar36 ^ uVar37;
  *(ulonglong *)(lVar4 + -0xc18) =
       *(ulonglong *)(lVar4 + -0xac0) ^ uVar55 ^ uVar43 ^ *(ulonglong *)(lVar4 + -0x998) ^ uVar20;
  *(ulonglong *)(lVar4 + -0x4c8) =
       *(ulonglong *)(lVar4 - (uVar47 ^ 0xa840247a)) ^ CONCAT44(uVar17,uVar35) ^ 0xbf43618e4de8baaa;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x9c063790)) ^ uVar43) >> ((bVar34 ^ 0x60) & 0x3f)
       ^ uVar31;
  lVar4 = DAT_1826707a0;
  uVar26 = (*(ulonglong *)(lVar3 - (uVar60 ^ 0x2324af3a)) ^ uVar43) << ((bVar34 ^ 0x5c) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar26 ^ uVar59;
  lVar3 = DAT_1826707a0;
  uVar26 = *(ulonglong *)(lVar4 - (uVar27 ^ 0xce9d4a7)) ^ uVar31 | uVar26;
  puVar39 = (ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xc46c80f6));
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar26 ^ uVar52;
  lVar4 = DAT_1826707a0;
  uVar36 = (uVar55 ^ *puVar39) - (CONCAT44(uVar33,uVar17) ^ 0xb1ac5a2a48cf6c17);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar36 ^ uVar24;
  puVar56 = (ulonglong *)(lVar4 - (uVar27 ^ 0xce9d10f));
  *(ulonglong *)(lVar3 + -0xac0) = uVar36 - (uVar52 ^ *puVar56) ^ uVar49;
  *(ulonglong *)(lVar3 + -0x558) = uVar26 - (CONCAT44(uVar22,uVar13) ^ 0x25ecffb25902da64) ^ uVar37;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x6c6a6023)) =
       (*(ulonglong *)(lVar3 - (uVar58 ^ 0xbb696c7c)) ^ uVar37) >>
       (((byte)uVar51 ^ *(byte *)(lVar3 + -0x610)) & 0x3f);
  *puVar64 = *(ulonglong *)(lVar3 + -0x9c8) ^ *(ulonglong *)(lVar3 + -0x610) ^ uVar63 ^ uVar37 ^
             uVar20;
  lVar3 = DAT_1826707a0;
  uVar27 = (*(ulonglong *)(DAT_1826707a0 + -0xc18) ^ uVar63) >> (((byte)uVar17 ^ 0xd4) & 0x3f);
  uVar36 = (*(ulonglong *)(DAT_1826707a0 + -0xc18) ^ uVar63) << 0x30;
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar27 ^ uVar61;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar36 ^ uVar63;
  *(ulonglong *)(lVar3 + -0x4c8) = (uVar27 | uVar36) ^ uVar59;
  lVar3 = DAT_1826707a0;
  uVar17 = DAT_1826709b8 & 0xff;
  DAT_1826709b8 = ((DAT_1826709b8 << 8 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar36 = (*(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar37) -
           (CONCAT44(uVar7,uVar13) ^ 0x76e9e9aa9cb3d1a3);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar36 ^ CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar3 + -0xc18) =
       CONCAT44(uVar29,uVar19) ^ 0x2a6f0d9bab5aef62 | CONCAT44(uVar35,uVar14) ^ 0x4b16b9b2221347b;
  *puVar23 = uVar36 - (*(ulonglong *)(lVar3 - (uVar28 ^ 0x6c6a6d73)) ^ uVar59) ^ uVar53;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar58 ^ 0xbb6963a4)) =
       (CONCAT44(uVar14,uVar22) ^ 0xb4953c989489def0) +
       (uVar59 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) ^ uVar55;
  uVar8 = DAT_182670af4;
  uVar36 = *(ulonglong *)(lVar3 + -0x9c8) ^ *(ulonglong *)(lVar3 + -0xac0) ^ uVar55 ^ uVar49;
  uVar43 = uVar36 ^ uVar43;
  *(ulonglong *)(lVar3 + -0x610) = uVar43;
  uVar42 = uVar43 >> 0x20 ^ uVar31 ^ uVar42;
  *(ulonglong *)(lVar3 + -0xc18) = uVar42;
  lVar3 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar36 << (((byte)uVar5 ^ 0x4c) & 0x3f) ^ uVar27;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar58 ^ 0xbb696ea4)) =
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0xd5aca136)) ^ uVar27 | uVar42 ^ uVar31) ^ uVar30;
  *(longlong *)(lVar4 - (uVar44 ^ 0x9c063240)) =
       -0x7de0df8c5471e679 << (((byte)uVar8 ^ *(byte *)(lVar4 + -0xf0)) & 0x3f);
  uVar14 = DAT_1826707e4;
  *(ulonglong *)(lVar4 + -0x610) =
       (*puVar46 ^ uVar49) - (uVar30 ^ *(ulonglong *)(lVar4 + -0x4c8)) ^ uVar52;
  *(uint *)(lVar4 + -0xc04) = (uVar14 ^ 0xe48c0642) << (((byte)uVar11 ^ 0xd0) & 0x1f);
  uVar14 = DAT_182670b04 & 0xff;
  DAT_182670b04 = ((DAT_182670b04 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar36 = (ulonglong)DAT_182670b04;
  uVar40 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar4 + -0xc18) =
       uVar40 ^ *(ulonglong *)(lVar4 + -0x558) ^ uVar53 ^ uVar37 ^ *(ulonglong *)(lVar4 + -0x998);
  *puVar56 = *(ulonglong *)(lVar4 - (uVar21 ^ 0x8a244cb0)) >> 0x20 ^ uVar36 ^ uVar30;
  uVar8 = DAT_182670854;
  uVar36 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f0 ^ 0x41fca0ad)) ^ uVar40) <<
           ((local_110 ^ 4) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar36 ^ uVar38;
  uVar40 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 + -0xac0) = (uVar36 | *(ulonglong *)(lVar4 + -0xf0) ^ uVar30) ^ uVar40;
  *puVar45 = (*puVar62 ^ uVar30) << (((byte)uVar11 ^ 0xcc) & 0x3f);
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0xc18) =
       (uVar53 ^ *(ulonglong *)(lVar4 + -0x998)) - (uVar40 ^ *(ulonglong *)(lVar4 + -0xac0)) ^
       uVar53;
  uVar36 = (ulonglong)DAT_182670860;
  uVar42 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(lVar3 + -0x9c8) =
       uVar42 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x610) ^ *(ulonglong *)(lVar3 + -0xac0) ^ uVar52;
  uVar40 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar3 - (uVar44 ^ 0x9c063ed0)) =
       (*(ulonglong *)(lVar3 - (uVar57 ^ 0x4a8880e)) >> 0x20 ^ uVar36) >> 0x1a ^ uVar40;
  uVar8 = DAT_182670830;
  uVar36 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar42 ^ *(ulonglong *)(lVar3 + -0x9c8)) << (((byte)(uVar13 >> 0x18) ^ 0x8c) & 0x3f) ^
       uVar37;
  uVar9 = DAT_1826709b0;
  lVar3 = DAT_1826707a0;
  uVar42 = CONCAT44(uVar8,uVar8);
  *puVar39 = (*(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xbe0353ba)) ^ uVar37 |
             uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) ^ uVar42;
  uVar57 = CONCAT44(uVar9,uVar9);
  uVar36 = *(ulonglong *)(lVar3 - (uVar36 ^ 0xbe035ad2));
  uVar40 = *(ulonglong *)(lVar3 + -0xc18) ^ uVar30 ^ uVar53 ^ uVar38 ^
           *(ulonglong *)(lVar3 + -0x4c8);
  *(ulonglong *)(lVar3 + -0x9c8) = uVar40;
  *(ulonglong *)(lVar3 + -0xac0) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar52) - (uVar36 ^ uVar42) ^ uVar57;
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       ((ulonglong)((uVar32 & 0xffff | uVar15) >> 6) | uVar41 << 10) ^ uVar40 >> 0x16 ^ uVar63;
  lVar3 = DAT_1826707a0;
  uVar41 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  plVar18 = (longlong *)(DAT_1826707a0 - (uVar44 ^ 0x9c063f40));
  pbVar1 = (byte *)(DAT_1826707a0 + -0x558);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = (uVar40 ^ uVar38) << ((local_148 ^ 0x68) & 0x3f) ^ uVar41
  ;
  *plVar18 = (*(ulonglong *)(lVar3 + -0xf0) ^ uVar37) << ((*pbVar1 ^ (byte)uVar10) & 0x3f);
  uVar8 = DAT_1826709b4;
  uVar14 = DAT_182670b14 & 0xff;
  DAT_182670b14 = ((DAT_182670b14 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar36 = CONCAT44(DAT_182670b14,DAT_182670b14);
  uVar41 = uVar41 ^ *(ulonglong *)(lVar3 + -0x610) | *(ulonglong *)(lVar3 + -0x558) ^ uVar63;
  uVar40 = uVar41 ^ uVar36;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar40;
  uVar20 = CONCAT44(uVar8,uVar8);
  uVar40 = uVar36 ^ uVar57 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0xac0);
  *(ulonglong *)(lVar3 + -0xf0) = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar53) - uVar41 ^ uVar20;
  uVar49 = uVar40 ^ uVar49;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar49;
  *(ulonglong *)(lVar3 + -0x558) = (uVar49 >> 0x20 ^ uVar48) >> 0xe ^ uVar27;
  uVar14 = DAT_182670964 & 0xff;
  DAT_182670964 = ((DAT_182670964 << 8 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar36 = CONCAT44(DAT_182670964,DAT_182670964);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0xa3222534)) = uVar40 << 0x12 ^ uVar36;
  uVar8 = DAT_182670ac8;
  uVar36 = uVar27 ^ *puVar45 | uVar36 ^ *(ulonglong *)(lVar3 + -0x610);
  uVar41 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar3 + -0xc18) = uVar36 ^ CONCAT44(DAT_182670930,DAT_182670930);
  uVar27 = (ulonglong)DAT_1826707e0;
  uVar40 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x6e7fd141)) =
       (*(ulonglong *)(lVar3 - (uVar25 ^ 0xc46c83ae)) ^ uVar57) - uVar36 ^ CONCAT44(uVar8,uVar8);
  uVar36 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar3 - (uVar40 ^ 0xbf6f7f24)) =
       *(ulonglong *)(lVar3 - (uVar27 ^ 0x34b242bb)) ^ uVar20 ^ uVar42 ^
       *(ulonglong *)(lVar3 + -0xf0) ^ uVar36;
  uVar8 = _DAT_182670b10;
  uVar41 = (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar36) >> (((byte)uVar7 ^ 0xca) & 0x3f);
  uVar40 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar3 + -0x558) = uVar41 ^ CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar36 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0x34b24feb)) ^ uVar36) << (((byte)uVar6 ^ 0xcb) & 0x3f)
  ;
  *(ulonglong *)(lVar3 + -0xac0) = uVar36 ^ uVar40;
  *(ulonglong *)(lVar3 - (uVar47 ^ 0xa8402d12)) = (uVar41 | uVar36) ^ CONCAT44(uVar8,uVar8);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar2 ^ uVar33;
  return;
}



############ FUN_ 180c9c100 size=5780 ############

void FUN_180c9c100(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  ulonglong *puVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  byte bVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  byte local_res18;
  byte local_res20;
  byte local_100;
  
  uVar15 = DAT_1826707f0;
  uVar7 = DAT_1826707cc;
  uVar6 = DAT_1826707c8;
  uVar4 = DAT_1826707c4;
  lVar2 = DAT_1826707a0;
  uVar39 = (ulonglong)DAT_1826707c8;
  uVar33 = (ulonglong)DAT_1826707f0;
  uVar17 = (ulonglong)DAT_1826707c4;
  uVar34 = (ulonglong)DAT_1826707cc;
  uVar24 = DAT_1826707c4 & DAT_1826707cc;
  uVar21 = ~DAT_1826707f0;
  uVar18 = (DAT_1826707c8 << 0x10 | DAT_1826707c8 & 0xff00) << 8 | DAT_1826707c8 >> 8 & 0xff00 |
           DAT_1826707c8 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670d9c);
  uVar27 = *(uint *)(&DAT_18260f758 + DAT_182670d9c) ^ DAT_1826707f0;
  uVar35 = CONCAT44(DAT_182670b14,DAT_182670b14);
  uVar28 = CONCAT44(DAT_182670970,DAT_182670970);
  puVar20 = (ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x5c6e607d));
  DAT_1826707ac = uVar24;
  DAT_1826707bc = uVar21;
  DAT_1826707d8 = uVar18;
  *puVar20 = (uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) << 0x19 ^ uVar28;
  bVar13 = (byte)uVar24;
  uVar36 = (uVar35 ^ *(ulonglong *)(lVar2 + -0xd88)) >> ((bVar13 ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xf87776c7)) =
       uVar36 ^ CONCAT44(DAT_182670968,DAT_182670968);
  uVar35 = (ulonglong)uVar18;
  puVar44 = (ulonglong *)(lVar2 - (uVar35 ^ 0x77375d8));
  uVar25 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x5c6e664d)) = (uVar36 | uVar28 ^ *puVar44) ^ uVar25;
  uVar5 = DAT_182670a84;
  uVar36 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar19 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar2 + -0x438) =
       uVar19 ^ uVar36 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0x410) ^ *(ulonglong *)(lVar2 + -0xf0);
  uVar8 = DAT_182670abc;
  lVar2 = DAT_1826707a0;
  uVar29 = (ulonglong)uVar21;
  uVar40 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x5c6e646d)) =
       (CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(DAT_1826707a0 + -0xb70)) +
       (CONCAT44(uVar7,uVar18) ^ 0xf99a8a9f7c530128) ^ uVar40;
  uVar5 = DAT_182670944;
  uVar30 = uVar40 ^ *(ulonglong *)(lVar2 + -0x630);
  uVar28 = (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0x6b8)) +
           (CONCAT44(uVar15,uVar21) ^ 0xa158930f6a04eca4);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar28 ^ CONCAT44(DAT_182670900,DAT_182670900);
  uVar9 = DAT_182670b08;
  uVar22 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0xac0) = uVar28 + uVar30 ^ uVar22;
  local_res20 = (byte)uVar4;
  puVar23 = (ulonglong *)(lVar2 - (uVar39 ^ 0xf8777567));
  uVar28 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *puVar23 = uVar30 << ((local_res20 ^ 0x9e) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  uVar5 = DAT_182670894;
  lVar2 = DAT_1826707a0;
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0x630);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (CONCAT44(uVar7,uVar15) ^ 0x1a7f8eb548e8f8bb) >>
       (((byte)uVar9 ^ *(byte *)(DAT_1826707a0 + -0x660)) & 0x3f);
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0xd38) = (uVar40 ^ *puVar26) >> ((bVar13 ^ 2) & 0x3f) ^ uVar28;
  uVar8 = DAT_1826709cc;
  uVar31 = CONCAT44(uVar5,uVar5);
  uVar28 = (*(ulonglong *)(lVar3 - (uVar35 ^ 0x7737ac0)) ^ uVar28 | CONCAT44(uVar9,uVar9) ^ *puVar23
           ) ^ uVar31;
  *(ulonglong *)(lVar3 + -0x548) = uVar28;
  lVar2 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar8,uVar8);
  uVar40 = CONCAT44(DAT_182670a68,DAT_182670a68);
  puVar41 = (ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x1d8c5582));
  uVar28 = uVar30 ^ uVar28 ^ uVar31 ^ uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0xac0);
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar28;
  *puVar41 = (uVar30 ^ uVar28) + (uVar19 ^ *puVar26) ^ uVar40;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar34 ^ 0x5c6e6695)) ^ uVar30) << ((bVar13 ^ 0x33) & 0x3f);
  bVar46 = (byte)(uVar6 >> 0x18);
  uVar19 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar2 + -0x9c8) = uVar28 ^ CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar10 = DAT_182670948;
  uVar47 = (ulonglong)DAT_182670948;
  *(ulonglong *)(lVar2 + -0xa18) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x4c8)) >> ((bVar46 ^ 0xea) & 0x3f) ^ uVar19;
  puVar14 = (ulonglong *)(lVar2 - (uVar33 ^ 0xe273a675));
  uVar48 = CONCAT44(uVar10,uVar10);
  uVar37 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  uVar28 = (uVar19 ^ *puVar14 | uVar28) ^ uVar37;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0xcacab9e7)) = uVar28;
  lVar3 = DAT_1826707a0;
  uVar30 = uVar36 ^ *(ulonglong *)(lVar2 + -0x438);
  *(ulonglong *)(lVar2 + -0x420) = uVar40 ^ *puVar41 ^ uVar48 ^ uVar28 ^ uVar37;
  uVar19 = CONCAT44(DAT_182670954,DAT_182670954);
  *(ulonglong *)(lVar3 + -0x1b8) = (uVar22 ^ *(ulonglong *)(lVar3 + -0xac0)) + uVar30 ^ uVar19;
  uVar38 = CONCAT44(DAT_182670868,DAT_182670868);
  local_res18 = (byte)uVar15;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x5c6e6acd)) = uVar30 << (((byte)uVar6 ^ 0xb) & 0x3f) ^ uVar38;
  uVar5 = DAT_182670ae8;
  lVar2 = DAT_1826707a0;
  uVar42 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar28 = (uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0x438)) >> ((local_res18 ^ 0x59) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar28 ^ uVar42;
  lVar3 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar5,uVar5);
  uVar28 = (*(ulonglong *)(lVar2 + -0x890) ^ uVar38 | uVar28) ^ uVar30;
  uVar43 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar28;
  uVar5 = DAT_1826708b4;
  *puVar20 = *(ulonglong *)(lVar3 - (uVar33 ^ 0xe273add5)) ^ uVar28 ^ uVar43 ^ uVar30 ^ uVar19;
  uVar8 = DAT_182670a98;
  uVar30 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x5c0) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0x610)) + (*(ulonglong *)(lVar3 + -0x220) ^ uVar43) ^
       uVar30;
  lVar2 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x1d8c5782)) = (*puVar44 ^ uVar43) << 0x3a ^ uVar40;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0xe273ae4d)) ^ uVar43) >> ((local_res20 ^ 0xb9) & 0x3f)
  ;
  *(ulonglong *)(lVar2 + -0xb70) = uVar28 ^ CONCAT44(DAT_182670848,DAT_182670848);
  uVar8 = DAT_1826709b4;
  uVar38 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (CONCAT44(uVar18,uVar7) ^ 0x6bf362ce8f3fd401) << ((bVar13 ^ 0x32) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9e0) = (*(ulonglong *)(lVar2 + -0x410) ^ uVar40 | uVar28) ^ uVar38;
  *(byte *)(lVar2 + -700) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar29 ^ 0x1d8c5e42)) ^ (ulonglong)DAT_1826709f8) ^
       (byte)DAT_182670a40;
  uVar45 = CONCAT44(DAT_182670980,DAT_182670980);
  puVar26 = (ulonglong *)(lVar2 - (uVar34 ^ 0x5c6e6bbd));
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x1d8c55a2)) =
       *puVar26 ^ *(ulonglong *)(lVar2 + -0x5c0) ^ uVar45 ^ uVar38 ^ uVar30;
  uVar5 = DAT_182670830;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0xbb0) =
       (CONCAT44(uVar21,uVar18) ^ 0xe825f79e5bd0a487) >> (((byte)*puVar26 ^ (byte)uVar8) & 0x3f);
  uVar50 = CONCAT44(uVar5,uVar5);
  uVar19 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0xe273a84d)) ^ uVar48) +
           (*(ulonglong *)(lVar2 + -0x1b8) ^ uVar19) ^ uVar50;
  uVar38 = CONCAT44(DAT_182670a04,DAT_182670a04);
  *(ulonglong *)(lVar2 + -0x660) = uVar19;
  uVar18 = DAT_1826707f4;
  uVar28 = *(ulonglong *)(lVar2 + -0x420);
  uVar32 = (ulonglong)DAT_1826707f4;
  uVar48 = (uVar28 ^ uVar48) << ((bVar13 ^ 0xb) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd38) = uVar48 ^ uVar38;
  uVar15 = ~uVar18;
  *(ulonglong *)(lVar3 + -0x548) = CONCAT44(uVar24,uVar21) ^ 0x5ea391941c8ab113;
  uVar8 = DAT_182670a74;
  uVar28 = (uVar28 >> 0x20 ^ uVar47) >> 10;
  DAT_1826707e8 = uVar15;
  *(ulonglong *)(lVar3 + -0xf0) = uVar28 ^ CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar5 = DAT_18267091c;
  uVar47 = (ulonglong)uVar15;
  uVar40 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x4c8) = (uVar28 | uVar48) ^ uVar40;
  uVar48 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x9c8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x19ff2b8e)) ^ uVar19 ^ uVar48 ^ uVar40 ^ uVar50;
  uVar5 = DAT_1826708fc;
  puVar26 = (ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xe600d971));
  uVar49 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar3 + -0xa18) =
       (*(ulonglong *)(lVar3 + -0x5c0) ^ uVar30) + (*puVar26 ^ uVar48) ^ uVar49;
  uVar30 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 + -0x658) = (*puVar26 ^ uVar48) << 0x20 ^ uVar30;
  lVar2 = DAT_1826707a0;
  bVar13 = (byte)uVar15 ^ 0x66;
  uVar28 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0xe600da79)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x9c8) ^ uVar48) >> (bVar13 & 0x3f) ^ uVar28;
  uVar19 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar2 + -0x438) =
       (*(ulonglong *)(lVar2 + -0xac0) ^ uVar28 | uVar30 ^ *(ulonglong *)(lVar2 + -0x658)) ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar47 ^ 0x19ff27d6)) =
       (*(ulonglong *)(lVar2 + -0xd38) ^ uVar38) + 0xfa411913c5aa67ec;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x19ff2ace)) =
       *(ulonglong *)(lVar2 - (uVar32 ^ 0xe600d481)) ^ uVar25 ^ *(ulonglong *)(lVar2 + -0xa18) ^
       uVar19 ^ uVar49;
  uVar19 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xe600dd31)) =
       (uVar45 ^ *(ulonglong *)(lVar2 + -0x630)) + (*(ulonglong *)(lVar2 + -0x660) ^ uVar50) ^
       uVar19;
  uVar45 = uVar45 ^ *(ulonglong *)(lVar2 + -0x630);
  uVar28 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar2 + -0x610) = uVar45 << (bVar13 & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x220) =
       *(ulonglong *)(CONCAT44(DAT_18267090c,DAT_18267090c) ^ *(ulonglong *)(lVar2 + -0x7b8)) ^
       uVar36;
  *(ulonglong *)(lVar2 - (uVar47 ^ 0x19ff29fe)) = uVar45 >> (bVar13 & 0x3f) ^ uVar37;
  uVar5 = DAT_182670898;
  lVar2 = DAT_1826707a0;
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0x610);
  uVar38 = CONCAT44(uVar18,uVar4) ^ 0xf6757aa6c02174c5 | uVar50 ^ *puVar23;
  *(ulonglong *)(DAT_1826707a0 + -0x410) = uVar38;
  uVar30 = CONCAT44(uVar5,uVar5);
  uVar28 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0xe273aad5)) ^ uVar37 | uVar28 ^ *puVar26) ^ uVar30;
  *(ulonglong *)(lVar2 + -0xb70) = uVar28;
  uVar5 = DAT_182670ac0;
  *(ulonglong *)(lVar2 + -0x9e0) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x484a26d5)) ^ uVar40 ^ 0x69b5f28b6c926a9d;
  uVar36 = CONCAT44(uVar5,uVar5);
  uVar28 = *(ulonglong *)(lVar2 - (uVar33 ^ 0xe273a1e5)) ^ uVar36 ^ uVar30 ^ uVar19 ^ uVar28;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar28;
  *(ulonglong *)(lVar2 + -0x1b8) = CONCAT44(uVar15,uVar15) ^ 0x6c3abe3241eef2ce | uVar38;
  uVar38 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0xe600d5f1)) =
       (CONCAT44(uVar24,uVar18) ^ 0xb611d7f91886f8f) + (uVar28 ^ uVar36) ^ uVar38;
  uVar5 = DAT_1826708e0;
  uVar36 = CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar28 = (CONCAT44(uVar7,uVar7) ^ 0x399bce46248483d6) + (*(ulonglong *)(lVar2 + -0xa18) ^ uVar49);
  *(ulonglong *)(lVar2 + -0x420) = uVar28 ^ uVar36;
  uVar10 = DAT_1826707e4;
  uVar30 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0xf0) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0xf877764f)) ^ uVar38) + uVar28 ^ uVar30;
  uVar15 = DAT_1826707d4;
  uVar16 = uVar10 & DAT_1826707d4;
  uVar32 = (ulonglong)DAT_1826707d4;
  bVar13 = (byte)DAT_1826707d4;
  uVar40 = CONCAT44(DAT_182670a28,DAT_182670a28);
  uVar33 = (uVar38 ^ *(ulonglong *)(lVar2 + -0x548)) << ((bVar13 ^ 0x52) & 0x3f);
  uVar28 = (ulonglong)uVar16;
  DAT_1826707a8 = uVar16;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar33 ^ uVar36;
  uVar36 = (*(ulonglong *)(lVar2 - (uVar28 ^ 0x5460650c)) ^ uVar38) >> ((bVar13 ^ 0x6e) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9c8) = uVar36 ^ uVar40;
  *(ulonglong *)(lVar2 + -0x658) = -0x6c6650b6682829e8 - uVar36;
  uVar36 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(lVar2 + -0xac0) =
       (*(ulonglong *)(lVar2 - (uVar32 ^ 0x5d626794)) ^ uVar40 | uVar33) ^ uVar36;
  lVar3 = DAT_1826707a0;
  *(byte *)(lVar2 - ((ulonglong)uVar10 ^ 0x76fdeb4c)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x390) ^ (ulonglong)DAT_182670b14) ^ (byte)DAT_182670a40;
  uVar48 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(lVar3 + -0x890) =
       *(ulonglong *)(lVar3 + -0xf0) ^ uVar48 ^ uVar36 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0xac0);
  uVar5 = DAT_1826708e4;
  uVar38 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar3 + -0xd38) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x76fde46d)) ^ uVar25) +
       (CONCAT44(uVar15,uVar10) ^ 0x38f87b0a69edb0d) ^ uVar38;
  uVar33 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x76fde5dd)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x5d6263d4)) ^ uVar19) +
       (CONCAT44(uVar15,uVar16) ^ 0xffeb24b777095809) ^ uVar33;
  uVar8 = DAT_1826709d4;
  lVar2 = DAT_1826707a0;
  uVar25 = uVar38 ^ *(ulonglong *)(lVar3 + -0xd38);
  uVar36 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar33 = (*(ulonglong *)(lVar3 + -0x438) ^ uVar33) + uVar25 ^ uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar33;
  uVar5 = DAT_182670888;
  uVar25 = uVar25 << ((bVar13 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x630) = uVar25 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_1826708d4;
  lVar2 = DAT_1826707a0;
  bVar13 = (byte)uVar10;
  uVar19 = (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0x54606d7c)) ^ uVar38) >>
           ((bVar13 ^ 0xd5) & 0x3f);
  uVar38 = CONCAT44(DAT_182670a24,DAT_182670a24);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar19 ^ CONCAT44(uVar5,uVar5);
  uVar19 = (uVar19 | uVar25) ^ uVar38;
  *(ulonglong *)(lVar2 + -0x610) = uVar19;
  uVar25 = CONCAT44(uVar8,uVar8);
  uVar19 = uVar19 ^ uVar25 ^ uVar38 ^ uVar33 ^ uVar36;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar19;
  *(ulonglong *)(lVar2 + -0x4c8) = CONCAT44(uVar16,uVar16) ^ 0xabc81fac2810509b;
  lVar2 = DAT_1826707a0;
  uVar19 = uVar19 ^ uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x5d626eac)) ^ uVar30) + uVar19 ^ uVar31
  ;
  local_100 = (byte)uVar21;
  *(ulonglong *)(lVar2 + -0xb70) =
       (CONCAT44(uVar15,uVar15) ^ 0x7635059cfd03a556) + 0xe5592942732b7ec0;
  uVar33 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x5d626a4c)) = uVar19 << ((local_100 ^ 0xa6) & 0x3f) ^ uVar33;
  uVar9 = DAT_1826707e0;
  uVar30 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x546061fc)) =
       (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar25) >> ((bVar13 ^ 0xe9) & 0x3f) ^ uVar30;
  uVar8 = DAT_1826707dc;
  uVar19 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar2 + -0xbb0) =
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0x54606454)) ^ uVar33 |
       uVar30 ^ *(ulonglong *)(lVar2 + -0x1b8)) ^ uVar19;
  *puVar14 = (CONCAT44(uVar15,uVar4) ^ 0xd09296efad66c2c) << ((local_res18 ^ 0x73) & 0x3f);
  uVar5 = DAT_18267088c;
  uVar25 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  uVar30 = uVar48 ^ *(ulonglong *)(lVar2 + -0x890);
  *(ulonglong *)(lVar2 + -0x420) =
       *(ulonglong *)(lVar2 - (uVar39 ^ 0xf87778b7)) ^ uVar31 ^ uVar25 ^ uVar19 ^
       *(ulonglong *)(lVar2 + -0x9e0);
  uVar33 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x548) = (uVar36 ^ *(ulonglong *)(lVar2 + -0x220)) + uVar30 ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x5d626804)) = uVar30 << ((bVar46 ^ 0xc1) & 0x3f) ^ uVar22;
  uVar11 = DAT_182670a64;
  *(ulonglong *)(lVar2 + -0x5c0) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x610)) - (CONCAT44(uVar7,uVar9) ^ 0xdc5f935a9a2f8253);
  uVar5 = DAT_1826707b8;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x5460698c)) =
       (uVar48 ^ *(ulonglong *)(lVar2 + -0x890)) >> (((byte)uVar8 ^ 0x62) & 0x3f) ^ uVar19;
  uVar11 = DAT_1826708ac;
  *(ulonglong *)(lVar2 + -0xac0) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0x77371a0)) ^ uVar22 |
       *(ulonglong *)(lVar2 + -0x9c8) ^ uVar19) ^ uVar42;
  uVar12 = DAT_182670920;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar30 = *(ulonglong *)(lVar2 - (uVar47 ^ 0x19ff2586)) ^ uVar28 ^ uVar33 ^ uVar42 ^
           *(ulonglong *)(lVar2 + -0x548);
  *(ulonglong *)(lVar2 + -0x588) = uVar30;
  uVar19 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x5c6e6fd5)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x1d8c5a72)) ^ uVar31) + (uVar30 ^ uVar28) ^ uVar19
  ;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x814) =
       *(uint *)(DAT_1826707a0 + -0xc34) | *(uint *)(DAT_1826707a0 + -0x43c);
  uVar30 = CONCAT44(DAT_182670810,DAT_182670810);
  uVar38 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x484a2795)) ^ uVar28) <<
           ((bVar13 ^ 0xf2) & 0x3f);
  *(ulonglong *)(lVar2 + -0x438) = uVar38 ^ uVar30;
  *(longlong *)(lVar2 + -0xd38) = -0x7caff8450d246e4a << (((byte)uVar8 ^ 0x66) & 0x3f);
  uVar8 = DAT_182670af8;
  uVar34 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar2 + -0x630) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0x588)) >> (((byte)uVar9 ^ 0xf6) & 0x3f) ^ uVar34;
  lVar3 = DAT_1826707a0;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar17 = (*(ulonglong *)(lVar2 - (uVar17 ^ 0xcacab98f)) ^ uVar34 | uVar38) ^ uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar17;
  uVar8 = DAT_182670824;
  lVar2 = DAT_1826707a0;
  uVar28 = *(ulonglong *)(DAT_1826707a0 + -0x548);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       *(ulonglong *)(lVar3 - (uVar47 ^ 0x19ff2976)) ^ CONCAT44(uVar5,uVar7) ^ uVar34 ^
       0x985ab345c53c809f;
  uVar4 = DAT_1826707b0;
  uVar34 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0xf0) =
       uVar17 ^ CONCAT44(uVar8,uVar8) ^ uVar22 ^ uVar19 ^ *(ulonglong *)(lVar2 + -0xd88);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0x2d2595c9)) =
       (*(ulonglong *)(lVar2 + -0x420) ^ uVar25) + (uVar33 ^ uVar28) ^ uVar43;
  uVar25 = *(ulonglong *)(lVar2 + -0x420) ^ uVar25;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar25 << (((byte)uVar4 ^ 0x91) & 0x3f) ^ uVar40;
  uVar5 = DAT_182670884;
  *(ulonglong *)(lVar2 + -0x410) =
       CONCAT44(uVar9,uVar21) ^ 0x9628201761a3f527 |
       CONCAT44(uVar18,DAT_1826707b4) ^ 0x28f1c6e7929624f9;
  uVar25 = uVar25 >> (((byte)uVar6 ^ 0x1f) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1b8) = uVar25 ^ CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0xa18) =
       (*(ulonglong *)(lVar2 + -0x438) ^ uVar30) >>
       ((*(byte *)(lVar2 + -0xf0) ^ (byte)uVar8) & 0x3f);
  uVar8 = DAT_182670aa0;
  uVar5 = DAT_182670800;
  uVar34 = (ulonglong)DAT_1826707d0;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar34 ^ 0x80e1a6cc)) ^ uVar40 | uVar25) ^ uVar36;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar28;
  uVar17 = CONCAT44(uVar5,uVar5);
  uVar36 = uVar17 ^ uVar28 ^ uVar36 ^ uVar43 ^ *(ulonglong *)(lVar2 + -0xb70);
  *(ulonglong *)(lVar2 + -0x220) = uVar36;
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 - (uVar34 ^ 0x80e1adfc)) ^ uVar19) + (uVar36 ^ uVar17) ^ uVar37;
  *(undefined8 *)(lVar2 + -0x5c0) = 0x328de66384162954;
  *(ulonglong *)(lVar2 + -0x890) =
       (uVar17 ^ uVar36) << ((local_res18 ^ 0x68) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  uVar28 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar21) * 4) = uVar27;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x7737e30)) =
       (uVar17 ^ uVar36) >> (((byte)uVar18 ^ 0x82) & 0x3f) ^ uVar28;
  return;
}



############ FUN_ 180d0cb60 size=5101 ############

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

void FUN_180d0cb60(void)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte *pbVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  byte bVar38;
  byte bVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  int iVar48;
  ulonglong uVar49;
  byte local_118;
  byte local_f8;
  byte local_80;
  
  uVar5 = DAT_18267090c;
  uVar13 = DAT_1826707f4;
  uVar11 = DAT_1826707e0;
  uVar10 = DAT_1826707dc;
  uVar9 = DAT_1826707d4;
  uVar8 = DAT_1826707d0;
  uVar7 = DAT_1826707cc;
  uVar6 = DAT_1826707c4;
  uVar4 = DAT_1826707ac;
  lVar1 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707d0;
  uVar34 = (ulonglong)DAT_1826707e0;
  uVar18 = DAT_1826707d0 & DAT_1826707e0;
  uVar40 = (ulonglong)uVar18;
  uVar45 = (ulonglong)DAT_1826707c4;
  uVar47 = (ulonglong)DAT_1826707ac;
  uVar28 = (ulonglong)DAT_1826707dc;
  uVar29 = (ulonglong)DAT_1826707d4;
  iVar48 = DAT_1826707c4 - DAT_1826707d4;
  uVar41 = DAT_1826707cc & DAT_1826707f4;
  uVar33 = DAT_1826707ac + DAT_1826707dc;
  uVar19 = *(uint *)(&DAT_18260f750 + (uVar40 ^ 0x9d1f8aca) + (longlong)DAT_182670bfc) ^
           DAT_1826707d0;
  uVar20 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707cc ^ 0xcb2c6fa6) + (longlong)DAT_182670bfc) ^
           DAT_1826707e0;
  uVar36 = (ulonglong)DAT_18267090c;
  uVar25 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar21 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar22 = (ulonglong)DAT_1826707f4;
  DAT_1826707b0 = uVar18;
  DAT_1826707b4 = uVar33;
  DAT_1826707e4 = uVar41;
  DAT_1826707ec = iVar48;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       CONCAT44(DAT_18267090c,DAT_18267090c) ^
       *(ulonglong *)(uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0x180)) ^ uVar25;
  *(ulonglong *)(lVar1 + -0x180) = CONCAT44(uVar11,uVar13) ^ 0xac212fdc9dde63a;
  uVar42 = CONCAT44(DAT_18267081c,DAT_18267081c);
  uVar35 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x9d5233ca)) =
       (*(ulonglong *)(lVar1 + -0x9c8) ^ uVar35) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar41 ^ 0x8b2c4212)) ^ uVar42);
  uVar14 = DAT_182670900;
  uVar46 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar1 + -0x410) =
       ((ulonglong)(uVar5 >> 0x10) | uVar36 << 0x10) ^ *(ulonglong *)(lVar1 + -0x658) >> 0x10 ^
       uVar46;
  uVar36 = (ulonglong)DAT_18267080c;
  *(byte *)(lVar1 + -0x2ba) =
       *(byte *)(lVar1 - ((ulonglong)uVar33 ^ 0x681cfb81)) ^ (byte)uVar14 ^ (byte)DAT_182670a98;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0xdd5fb41e)) = *(longlong *)(lVar1 + -0x10) + 0x52U ^ uVar36;
  *(int *)(lVar1 + -0x43c) = *(int *)(lVar1 - ((ulonglong)uVar9 ^ 0x6fb6c2c0)) + -0x4c0a1d86;
  *(byte *)(*(ulonglong *)(lVar1 + -0xbc8) ^ uVar36) =
       DAT_1826709e0 ^ (byte)DAT_182670a98 ^ *(byte *)(lVar1 + -0x2ba);
  *(undefined8 *)(lVar1 - (uVar47 ^ 0xcacab867)) = 0x3fb0ba7;
  uVar14 = DAT_1826708a4;
  uVar26 = CONCAT44(uVar9,uVar18) ^ 0x6fb6cb2c9d1f8ac2;
  uVar36 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *(ulonglong *)(lVar1 + -0x7b0) =
       *(longlong *)(lVar1 - (uVar45 ^ 0xcacabd6f)) +
       ((CONCAT44(iVar48,iVar48) ^ 0x5b13f4935b13f499) + uVar26 * 0xc) * 8 ^ uVar36;
  uVar16 = DAT_1826709f0;
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar36 = *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar22 ^ 0xbfbfcd7a)) ^ uVar36) ^ uVar30 ^ uVar25;
  *(ulonglong *)(lVar1 + -0x660) = uVar36;
  lVar1 = DAT_1826707a0;
  uVar43 = (uVar36 ^ uVar30) >> (((byte)uVar18 ^ 0xda) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  bVar37 = (byte)uVar16 ^ (byte)DAT_182670a50;
  uVar36 = (ulonglong)DAT_182670850;
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) = uVar43;
  *(byte *)(lVar1 - (uVar40 ^ 0x9d1f81db)) = bVar37 ^ (byte)uVar43;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xbfbfc8da)) =
       (CONCAT44(uVar33,uVar8) ^ 0x681cff91dd5fbf85) + *(longlong *)(DAT_1826707a0 + -0x10) ^ uVar36
  ;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar40 ^ 0x9d1f88d2)) ^ uVar36) =
       *(byte *)(lVar1 + -0xb19) ^ (byte)DAT_182670a50 ^ DAT_1826709e0;
  uVar14 = DAT_182670b14;
  *(ulonglong *)(lVar1 + -0xbb0) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar9 ^ 0x6fb6ccf4)) >>
       ((byte)*(undefined8 *)(lVar1 - ((ulonglong)uVar6 ^ 0xcacab867)) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 - (uVar28 ^ 0x9d523f12)) =
       *(longlong *)(lVar1 + -0x2d0) +
       ((CONCAT44(uVar4,uVar33) ^ 0xcacabfbf681cff9b) +
       (CONCAT44(uVar7,uVar41) ^ 0xcb2c6fb68b2c4a82) * 0xc) * 8 ^ uVar40;
  *(ulonglong *)(lVar1 + -0xce0) = *(ulonglong *)(lVar1 + -0xd38) ^ *(ulonglong *)(lVar1 + -0x7d8);
  uVar14 = DAT_182670ac4;
  uVar43 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar1 + -0x438) =
       *(ulonglong *)(uVar40 ^ *(ulonglong *)(lVar1 + -0xc0)) ^ uVar43 ^ uVar25;
  uVar40 = *(ulonglong *)(lVar2 + -0x438);
  uVar36 = (ulonglong)DAT_18267088c;
  *(ulonglong *)(lVar1 + -0xc0) = CONCAT44(uVar4,uVar33) ^ 0xbdc9787f1e26c1ea;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x400) = (uVar43 ^ uVar40) >> (((byte)uVar6 ^ 0x9f) & 0x3f) ^ uVar32;
  bVar38 = (byte)uVar14 ^ (byte)DAT_182670a9c ^ *(byte *)(lVar2 + -0x400);
  bVar37 = (byte)DAT_182670a9c ^ bVar38 ^ DAT_1826709e0;
  *(byte *)(lVar2 + -0x68d) = bVar38;
  pbVar23 = (byte *)((CONCAT44(uVar41,iVar48) ^ 0x8b2c4a825b13f4c7) + *(longlong *)(lVar2 + -0x10));
  *(ulonglong *)(lVar2 + -0xdd8) = (ulonglong)pbVar23 ^ uVar36;
  *pbVar23 = bVar37;
  *(ulonglong *)(lVar2 + -0x118) =
       (*(ulonglong *)(lVar2 + -0x410) ^ uVar46) >> (((byte)uVar41 ^ 0x99) & 0x3f);
  uVar36 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  bVar37 = (byte)DAT_182670828;
  local_118 = (byte)uVar11;
  *(ulonglong *)(lVar2 + -0x58) =
       *(longlong *)(lVar2 + -0x2d0) +
       ((CONCAT44(uVar13,uVar33) ^ 0xbfbfcaca681cff9b) +
       (CONCAT44(uVar6,uVar10) ^ 0xcacabfbf9d523fd2) * 0xc) * 8 ^ uVar36;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xbfbfc00a)) =
       (CONCAT44(uVar6,uVar4) ^ 0xb73c7da01a366c50) >> ((local_118 ^ 0xd5) & 0x3f);
  uVar40 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar2 + -0x998) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar29 ^ 0x6fb6cb74)) ^ uVar36) ^ uVar40 ^ uVar25;
  uVar5 = DAT_1826707b8;
  *(ulonglong *)(lVar2 + -0x4c8) =
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0x9d52364a)) ^ uVar40) >> (((byte)uVar18 ^ 0xea) & 0x3f) ^
       uVar35;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xdd5fbf26)) =
       *(ulonglong *)(lVar2 + -0x410) ^ uVar32 ^ uVar46 ^ *(ulonglong *)(lVar2 + -0x400);
  uVar12 = DAT_1826707e8;
  lVar3 = DAT_1826707a0;
  uVar40 = (ulonglong)DAT_1826707e8;
  uVar24 = uVar5 | DAT_1826707e8;
  uVar43 = (ulonglong)uVar5;
  DAT_1826707a8 = uVar24;
  *(byte *)(lVar2 + -0xb41) =
       *(byte *)(lVar2 - (uVar40 ^ 0xcacabb77)) ^ bVar37 ^ (byte)DAT_182670ac8;
  lVar2 = DAT_1826707a0;
  uVar44 = (ulonglong)uVar24;
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x660) | CONCAT44(uVar24,uVar5) ^ 0xda604070de18c94;
  uVar46 = (ulonglong)DAT_182670af8;
  pbVar23 = (byte *)((CONCAT44(uVar24,uVar24) ^ 0xeecbbfffeecbbfaa) + *(longlong *)(lVar2 + -0x10));
  *(ulonglong *)(lVar2 + -0x8f0) = (ulonglong)pbVar23 ^ uVar46;
  *(ulonglong *)(lVar2 + -0xd88) =
       (uVar32 ^ *(ulonglong *)(lVar2 + -0x400)) + *(longlong *)(lVar2 - (uVar43 ^ 0x2ec19f5a));
  *pbVar23 = *(byte *)(lVar2 - ((ulonglong)uVar12 ^ 0xcacab4fe)) ^ (byte)DAT_182670ac8 ^
             DAT_1826709e0;
  uVar14 = DAT_182670824;
  lVar1 = *(longlong *)(lVar3 + -0x2d0);
  *(ulonglong *)(lVar2 + -0x1b8) =
       (*(ulonglong *)(lVar2 + -0x4c8) ^ uVar35) - (CONCAT44(uVar12,uVar24) ^ 0x4060fc24de748e5f);
  puVar27 = (ulonglong *)(lVar1 + 0x50 + (CONCAT44(uVar24,uVar24) ^ 0xeecbbfffeecbbfff) * 0x60);
  uVar36 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar3 + -0x5c8) = (ulonglong)puVar27 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x3b0) = *puVar27 ^ uVar25 ^ uVar36;
  lVar1 = DAT_1826707a0;
  local_f8 = (byte)uVar24;
  *(ulonglong *)(lVar3 + -0x5c8) = CONCAT44(uVar5,uVar12) ^ 0x3769e5bbabc05c05;
  uVar30 = (*(ulonglong *)(lVar1 + -0x3b0) ^ uVar36) >> ((local_f8 ^ 0xcf) & 0x3f) ^
           CONCAT44(DAT_182670810,DAT_182670810);
  uVar36 = (ulonglong)DAT_1826709c0;
  bVar37 = (byte)DAT_182670810 ^ (byte)uVar30 ^ (byte)DAT_182670998;
  *(ulonglong *)(lVar1 + -0x548) = uVar30;
  *(byte *)(lVar1 + -0x8a9) = bVar37;
  pbVar23 = (byte *)((CONCAT44(uVar24,uVar5) ^ 0xeecbbfff2ec19314) + *(longlong *)(lVar1 + -0x10));
  bVar37 = bVar37 ^ DAT_1826709e0 ^ (byte)DAT_182670998;
  *(ulonglong *)(lVar1 + -0x980) = (ulonglong)pbVar23 ^ uVar36;
  *pbVar23 = bVar37;
  *(ulonglong *)(lVar1 - (uVar47 ^ 0xcacab5a7)) =
       (CONCAT44(uVar12,uVar7) ^ 0x35344b98165b36c2) + (uVar32 ^ *(ulonglong *)(lVar1 + -0x400));
  uVar14 = DAT_182670a30;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) +
            ((CONCAT44(uVar12,iVar48) ^ 0xcacabfbf5b13f499) +
            (CONCAT44(uVar4,iVar48) ^ 0xcacabfbf5b13f493) * 0xc) * 8);
  *(ulonglong *)(lVar1 + -0x3d0) = (ulonglong)puVar27 ^ CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar1 + -0x558) = *puVar27 ^ uVar21 ^ uVar25;
  *(ulonglong *)(CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar1 + -0xd00)) =
       CONCAT44(uVar5,uVar11) ^ 0x5d881765338c6c23;
  *(undefined8 *)(lVar1 + -0xd00) = 0x1bdb9d8ae37c96f;
  uVar17 = DAT_182670a40;
  uVar15 = DAT_182670840;
  uVar30 = (ulonglong)DAT_182670840;
  *(ulonglong *)(lVar1 - (uVar44 ^ 0xeecbbc2f)) = CONCAT44(uVar10,uVar18) ^ 0xfb00ef2289c37293;
  uVar14 = _DAT_1826708c8;
  *(longlong *)(lVar1 + -0x6b8) = *(longlong *)(lVar1 + -0xf0) << 0x23;
  lVar2 = DAT_1826707a0;
  uVar21 = (ulonglong)*(byte *)(lVar1 + -0x551) ^ (ulonglong)(DAT_1826709b4 >> 0x18) ^
           CONCAT44(uVar14,uVar14);
  uVar36 = (ulonglong)DAT_1826709f4;
  bVar37 = (byte)uVar15;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar21;
  *(byte *)(lVar2 + -0x6c9) = (byte)uVar14 ^ (byte)uVar21 ^ bVar37;
  uVar21 = (ulonglong)_DAT_182670b10;
  *(uint *)(lVar2 - ((ulonglong)uVar33 ^ 0x681cfa09)) =
       *(uint *)(*(ulonglong *)(lVar2 + -0x958) ^ uVar36) ^ uVar17;
  lVar1 = DAT_1826707a0;
  pbVar23 = (byte *)(*(longlong *)(DAT_1826707a0 - (uVar45 ^ 0xcacabfaf)) +
                    (CONCAT44(uVar18,uVar8) ^ 0x9d1f8ac2dd5fbf81));
  *(ulonglong *)(DAT_1826707a0 + -0x7a0) = (ulonglong)pbVar23 ^ uVar21;
  *pbVar23 = *(byte *)(lVar1 + -0x6c9) ^ DAT_1826709e0 ^ bVar37;
  lVar1 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar41 ^ 0x8b2c48c2)) =
       *(longlong *)(DAT_1826707a0 - (uVar44 ^ 0xeecbbd2f)) +
       ((CONCAT44(uVar11,uVar4) ^ 0xbfbfcacacacabfb4) +
       (CONCAT44(uVar18,uVar24) ^ 0x9d1f8ac2eecbbfff) * 0xc) * 8 ^ uVar32;
  uVar36 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar49 = uVar25 ^ uVar36;
  uVar21 = *(ulonglong *)(*(ulonglong *)(lVar1 + -0x240) ^ uVar32) ^ uVar49;
  *(ulonglong *)(lVar1 + -0x68) = uVar21;
  *(ulonglong *)(lVar1 + -0x5c0) =
       CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar1 + -0x610) |
       *(ulonglong *)(lVar1 + -0x4c8) ^ uVar35;
  bVar37 = (byte)DAT_182670ae0;
  *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xcacabd0f)) =
       CONCAT44(DAT_182670ae0,DAT_182670ae0) ^ uVar21 ^ uVar36;
  lVar1 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - (uVar29 ^ 0x6fb6c30d)) =
       bVar37 ^ *(byte *)(DAT_1826707a0 + -0x2b0) ^ DAT_1826708f8;
  lVar2 = DAT_1826707a0;
  uVar30 = *(longlong *)(lVar1 - (uVar34 ^ 0xbfbfcada)) +
           (CONCAT44(uVar24,uVar7) ^ 0xeecbbfffcb2c6fee) ^ uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0xd8) = uVar30;
  lVar1 = DAT_1826707a0;
  bVar37 = *(byte *)(DAT_1826707a0 + -0x821) ^ DAT_1826709e0 ^ DAT_1826708f8;
  *(byte *)(DAT_1826707a0 + -0x109) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x4f8) ^ uVar46) ^ (byte)uVar17;
  *(byte *)(uVar15 ^ uVar30) = bVar37;
  uVar14 = DAT_182670874;
  uVar21 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xbfbfcfd2)) =
       *(longlong *)(lVar1 + -0x2d0) + 0x58 + uVar26 * 0x60 ^ uVar21;
  uVar16 = DAT_182670a38;
  *(ulonglong *)(lVar1 + -0x630) = *(ulonglong *)(*(ulonglong *)(lVar1 + -0x240) ^ uVar32) ^ uVar25;
  uVar36 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar1 - (uVar28 ^ 0x9d523a5a)) =
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0x518) ^ uVar21) ^ uVar25 ^ uVar36;
  uVar21 = (uVar36 ^ *(ulonglong *)(lVar1 + -0x588)) >> (((byte)uVar12 ^ 0xb7) & 0x3f) ^
           CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0x9e0) = uVar21;
  *(byte *)(lVar1 + -0x719) = (byte)uVar14 ^ (byte)uVar21 ^ (byte)DAT_1826708e8;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0x6f0) = CONCAT44(uVar33,uVar7) ^ 0x935c873290fbfff7;
  uVar8 = DAT_182670a88;
  uVar21 = (ulonglong)DAT_182670a88;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x6fb6cd54)) =
       (CONCAT44(uVar9,uVar4) ^ 0x6fb6cb2ccacabfe6) + *(longlong *)(lVar2 + -0x10) ^ uVar21;
  *(byte *)(*(ulonglong *)(lVar2 + -0x678) ^ uVar21) =
       DAT_1826709e0 ^ (byte)DAT_1826708e8 ^ *(byte *)(lVar2 + -0x719);
  *(ulonglong *)(lVar2 + -0x890) =
       CONCAT44(uVar33,iVar48) ^ uVar36 ^ *(ulonglong *)(lVar2 + -0x588) ^ 0xd541112c08c60f5e;
  bVar37 = DAT_1826709e0;
  uVar14 = DAT_182670934;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x2d0) +
            ((CONCAT44(uVar5,uVar12) ^ 0x2ec19342cacabfb4) +
            (CONCAT44(uVar12,uVar11) ^ 0xcacabfbfbfbfcaca) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0xbe8) = (ulonglong)puVar27 ^ CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar21 = *puVar27 ^ uVar25;
  *(ulonglong *)(lVar2 + -0x9c8) = uVar21 ^ CONCAT44(uVar14,uVar14);
  local_80 = (byte)iVar48;
  bVar38 = (byte)DAT_182670848;
  *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xcacab9e7)) =
       uVar21 >> ((local_80 ^ 0x83) & 0x3f) ^ CONCAT44(DAT_182670848,DAT_182670848);
  lVar1 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_182670a20;
  *(byte *)(DAT_1826707a0 - (uVar43 ^ 0x2ec194fb)) =
       bVar38 ^ *(byte *)(DAT_1826707a0 + -0x658) ^ (byte)DAT_182670944;
  pbVar23 = (byte *)((CONCAT44(uVar33,uVar13) ^ 0x681cff91bfbfca90) + *(longlong *)(lVar1 + -0x10));
  bVar38 = *(byte *)(lVar1 + -0x7b9) ^ bVar37 ^ (byte)DAT_182670944;
  *(ulonglong *)(lVar1 + -0x208) = (ulonglong)pbVar23 ^ uVar21;
  *pbVar23 = bVar38;
  uVar21 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar1 - (uVar40 ^ 0xcacab5e7)) =
       *(longlong *)(lVar1 + -0x2d0) + (CONCAT44(uVar9,uVar41) ^ 0x6fb6cb2c8b2c4a89) * 8 ^ uVar21;
  uVar21 = *(ulonglong *)(*(ulonglong *)(lVar1 + -0xa58) ^ uVar21) ^ uVar25;
  *(ulonglong *)(lVar1 + -0xcf8) = uVar21 ^ CONCAT44(DAT_1826708c0,DAT_1826708c0);
  *(ulonglong *)(lVar1 + -0xbb0) = uVar21 >> (((byte)uVar10 ^ 0xca) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  uVar21 = (ulonglong)DAT_182670854;
  *(byte *)(lVar1 + -0xb1) =
       *(byte *)(lVar1 - (uVar28 ^ 0x9d523462)) ^ (byte)uVar8 ^ (byte)DAT_182670a64;
  *(ulonglong *)(lVar1 - (uVar45 ^ 0xcacaba6f)) = *(longlong *)(lVar1 + -0x10) + 0x5bU ^ uVar21;
  uVar36 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(byte *)(*(ulonglong *)(lVar1 - (uVar40 ^ 0xcacaba6f)) ^ uVar21) =
       bVar37 ^ (byte)DAT_182670a64 ^ *(byte *)(lVar1 + -0xb1);
  uVar4 = DAT_182670a3c;
  uVar21 = (ulonglong)DAT_182670a3c;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 - (uVar34 ^ 0xbfbfc81a)) +
            ((CONCAT44(uVar18,uVar6) ^ 0x9d1f8ac2cacabfb4) +
            (CONCAT44(uVar33,iVar48) ^ 0x681cff915b13f493) * 0xc) * 8);
  *(ulonglong *)(lVar1 + -0x428) = (ulonglong)puVar27 ^ uVar36;
  *(ulonglong *)(lVar1 + -0xd38) = CONCAT44(uVar4,uVar4) ^ *puVar27 ^ uVar25;
  bVar38 = (byte)DAT_182670928;
  *(ulonglong *)(lVar1 + -0x7d8) =
       *(ulonglong *)(lVar1 - (uVar43 ^ 0x2ec19e7a)) >> 0x20 ^ CONCAT44(DAT_182670928,DAT_182670928)
       ^ uVar21;
  bVar39 = (byte)DAT_1826708f4;
  *(byte *)(lVar1 - (uVar47 ^ 0xcacabe66)) =
       *(byte *)(lVar1 - (uVar31 ^ 0xdd5fb80e)) ^ bVar38 ^ bVar39;
  uVar21 = (ulonglong)DAT_182670a54;
  *(ulonglong *)(lVar1 - (uVar44 ^ 0xeecbbf37)) =
       (CONCAT44(uVar12,uVar24) ^ 0xcacabfbfeecbbfa3) + *(longlong *)(lVar1 + -0x10) ^ uVar21;
  *(byte *)(*(ulonglong *)(lVar1 + -200) ^ uVar21) =
       *(byte *)(lVar1 - (uVar40 ^ 0xcacabe66)) ^ bVar37 ^ bVar39;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) + (CONCAT44(uVar7,uVar5) ^ 0xcb2c6fb62ec19349) * 8);
  uVar40 = (ulonglong)DAT_1826709f8;
  *(ulonglong *)(lVar1 + -0x310) = (ulonglong)puVar27 ^ uVar42;
  *(byte *)(lVar1 + -0xc35) =
       *(byte *)(uVar40 ^ *(ulonglong *)(lVar1 + -0xdd0)) ^ (byte)DAT_182670a40;
  uVar4 = DAT_1826709f4;
  *(ulonglong *)(lVar1 + -0xce0) = *puVar27 ^ uVar49;
  *(ulonglong *)(lVar1 + -0x310) = CONCAT44(uVar18,uVar13) ^ 0x2f58a35dbefe87b8;
  bVar37 = (byte)DAT_1826709f4;
  *(ulonglong *)(lVar1 - (uVar22 ^ 0xbfbfcef2)) =
       (*(ulonglong *)(lVar1 + -0xce0) >> 0x20 ^ (ulonglong)DAT_182670960) >> 8 ^
       CONCAT44(uVar4,uVar4);
  bVar37 = bVar37 ^ *(byte *)(lVar1 + -0x438) ^ (byte)DAT_1826709ec;
  *(uint *)(lVar1 + -0x2d4) = (DAT_1826707b0 ^ 0x563bc7e1) + *(int *)(lVar1 + -0x598);
  *(byte *)(lVar1 + -0x7f2) = bVar37;
  *(ulonglong *)(lVar1 + -0xdd0) =
       *(longlong *)(lVar1 - (uVar47 ^ 0xcacabfaf)) + (CONCAT44(iVar48,uVar6) ^ 0x5b13f493cacabfe2)
       ^ (ulonglong)DAT_182670804;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar19;
  return;
}



############ FUN_ 180c66470 size=5365 ############

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

void FUN_180c66470(void)

{
  longlong *plVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte *pbVar25;
  uint uVar26;
  uint uVar27;
  ulonglong *puVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  byte bVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  byte local_128;
  byte local_120;
  
  uVar15 = DAT_1826707f0;
  uVar10 = DAT_1826707c8;
  uVar9 = DAT_1826707c4;
  uVar8 = DAT_1826707c0;
  uVar7 = DAT_1826707b0;
  uVar21 = DAT_1826707ac;
  uVar6 = DAT_1826707a8;
  uVar40 = (ulonglong)DAT_1826707ac;
  uVar43 = (ulonglong)DAT_1826707c4;
  uVar45 = DAT_1826707d8 + DAT_1826707c4;
  uVar27 = DAT_1826707ac & DAT_1826707b0;
  uVar29 = ~DAT_1826707c0;
  uVar48 = (DAT_1826707a8 << 0x10 | DAT_1826707a8 & 0xff00) << 8 | DAT_1826707a8 >> 8 & 0xff00 |
           DAT_1826707a8 >> 0x18;
  uVar36 = (ulonglong)DAT_1826707c8;
  uVar26 = DAT_1826707c8 | DAT_1826707f0;
  uVar3 = *(uint *)(&DAT_18260f750 + (uVar36 ^ 0xf523cf09) + (longlong)DAT_182670cf0);
  uVar41 = (ulonglong)uVar26;
  uVar20 = *(uint *)(&DAT_18260f750 + (uVar41 ^ 0xffb3dfb5) + (longlong)DAT_182670cf0) ^
           DAT_1826707f0;
  uVar22 = (ulonglong)DAT_1826707b0;
  uVar24 = (ulonglong)DAT_182670b08;
  uVar33 = (ulonglong)DAT_18267089c;
  DAT_1826707b8 = uVar26;
  DAT_1826707cc = uVar45;
  DAT_1826707dc = uVar48;
  DAT_1826707e4 = uVar29;
  DAT_1826707f4 = uVar27;
  *(byte *)(DAT_1826707a0 - (uVar22 ^ 0xefdfdd7d)) =
       (byte)DAT_182670b08 ^ DAT_1826708c8 ^ *(byte *)(DAT_1826707a0 + -0x660);
  lVar4 = DAT_1826707a0;
  plVar1 = (longlong *)(DAT_1826707a0 + -0x168);
  *(undefined1 *)(DAT_1826707a0 + -0x699) = **(undefined1 **)(DAT_1826707a0 + -0xa40);
  uVar23 = (ulonglong)uVar29;
  *(ulonglong *)(lVar4 + -0xa40) = *plVar1 + 0x27U ^ uVar33;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0xfffffa77)) =
       (CONCAT44(uVar8,uVar21) ^ 0xad3b81202abd090b) >> (((byte)uVar27 ^ 0xc6) & 0x3f);
  uVar32 = CONCAT44(DAT_182670980,DAT_182670980);
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0xefdfd5bf)) ^ uVar33) =
       *(byte *)(lVar4 + -0x282) ^ (byte)DAT_182670a40 ^ DAT_1826708c8;
  uVar17 = DAT_182670a98;
  uVar16 = DAT_18267091c;
  lVar5 = DAT_1826707a0;
  uVar47 = (ulonglong)uVar45;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x2d0) +
           ((CONCAT44(uVar45,uVar48) ^ 0xcc49cf9bbcfc029d) +
           (CONCAT44(uVar15,uVar6) ^ 0x4e92d9a49802fcbc) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xc0) = (ulonglong)puVar2 ^ uVar32;
  uVar49 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar33 = *puVar2 ^ uVar49;
  *(ulonglong *)(lVar5 + -0xce0) = uVar33 ^ CONCAT44(uVar17,uVar17);
  uVar12 = DAT_1826707d8;
  bVar37 = (byte)uVar16 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar5 + -0x6b8) =
       uVar33 >> (((byte)uVar15 ^ 0xa4) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  *(byte *)(lVar5 - ((ulonglong)uVar8 ^ 0xab381710)) = bVar37 ^ *(byte *)(lVar5 + -0x6b8);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar12 ^ 0x1189ad58)) =
       (CONCAT44(DAT_1826709a4,DAT_1826709a4) ^ *(ulonglong *)(lVar5 + -0xd88)) <<
       (((byte)uVar29 ^ 99) & 0x3f);
  *(ulonglong *)(lVar5 + -0x488) =
       (CONCAT44(uVar6,uVar27) ^ 0x9802fcbcefdfdfd7) + *(longlong *)(lVar5 + -0x168) ^ uVar24;
  *(undefined1 *)(*(ulonglong *)(lVar5 - (uVar23 ^ 0x54c7eafe)) ^ uVar24) =
       *(undefined1 *)(lVar5 + -0x699);
  bVar39 = (byte)(uVar6 >> 0x18);
  uVar32 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(lVar5 + -0x588) =
       (CONCAT44(DAT_182670874,DAT_182670874) ^ *(ulonglong *)(lVar5 + -0x220)) <<
       ((bVar39 ^ 0x9d) & 0x3f);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xbac024a3)) =
       *(longlong *)(lVar5 - (uVar36 ^ 0xf523cdd1)) +
       (CONCAT44(uVar26,uVar8) ^ 0xffb3dfa5ab38118c) * 8 ^ uVar32;
  *(ulonglong *)(lVar5 + -0xce0) =
       *(ulonglong *)(CONCAT44(DAT_182670a30,DAT_182670a30) ^ *(ulonglong *)(lVar5 + -0xb78)) ^
       uVar49;
  uVar16 = DAT_182670a28;
  uVar33 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar34 = *(ulonglong *)(uVar32 ^ *(ulonglong *)(lVar5 + -0xc0)) ^ uVar33 ^ uVar49;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar34;
  uVar14 = DAT_1826707e8;
  uVar11 = DAT_1826707d4;
  uVar24 = (ulonglong)DAT_1826707e8;
  uVar32 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar5 + -0xd88) =
       (uVar34 ^ uVar33) >> (((byte)uVar29 ^ 0x7e) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar30 = uVar14 * uVar11;
  uVar31 = uVar30 ^ 0x75a3475c;
  bVar38 = (byte)uVar16 ^ (byte)DAT_1826709bc ^ *(byte *)(lVar5 + -0xd88);
  bVar37 = (byte)DAT_1826709bc ^ bVar38 ^ (byte)DAT_182670a40;
  uVar33 = (ulonglong)DAT_1826709c4;
  DAT_1826707ec = uVar31;
  *(byte *)(lVar5 + -0xbf1) = bVar38;
  uVar17 = DAT_182670830;
  pbVar25 = (byte *)((CONCAT44(uVar11,uVar14) ^ 0x7b3c2c77efdfdfd6) + *(longlong *)(lVar5 + -0x168))
  ;
  *(ulonglong *)(lVar5 + -0xce8) = (ulonglong)pbVar25 ^ uVar33;
  uVar16 = DAT_1826708e0;
  *pbVar25 = bVar37;
  uVar33 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar14 ^ 0xefdfd487)) =
       *(longlong *)(lVar5 + -0x2d0) + (CONCAT44(uVar30,uVar30) ^ 0x54f3890054f38c) * 8 ^ uVar33;
  uVar33 = *(ulonglong *)(uVar33 ^ *(ulonglong *)(lVar5 + -0xb78));
  uVar34 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(undefined4 *)(lVar5 + -0x7e4) = 0xf74d6100;
  uVar35 = uVar33 ^ uVar34 ^ uVar49;
  *(ulonglong *)(lVar5 + -0x220) = uVar35;
  uVar33 = (ulonglong)DAT_182670848;
  *(ulonglong *)(lVar5 + -0x588) =
       (uVar35 ^ uVar34) >> (((byte)uVar11 ^ 0x67) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  bVar38 = (byte)DAT_18267081c;
  *(byte *)(lVar5 + -0x279) = (byte)uVar17 ^ *(byte *)(lVar5 + -0x588) ^ bVar38;
  bVar37 = (byte)DAT_182670a40;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar14 ^ 0xefdfd717)) =
       (CONCAT44(uVar11,uVar11) ^ 0x7b3c2c777b3c2c5d) + *(longlong *)(lVar5 + -0x168) ^ uVar33;
  uVar13 = DAT_1826707d8;
  lVar4 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(lVar5 + -0x8e8) ^ uVar33) = bVar37 ^ *(byte *)(lVar5 + -0x279) ^ bVar38;
  uVar46 = CONCAT44(uVar15,uVar9) ^ 0x4e92d9a4bac02466;
  uVar34 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar33 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *(ulonglong *)(lVar4 + -0xc0) =
       *(longlong *)(lVar4 - (uVar47 ^ 0xcc49cd4b)) +
       (uVar46 + (CONCAT44(uVar7,uVar14) ^ 0xefdfdfffefdfdfff) * 0xc) * 8 ^ uVar34;
  uVar18 = _DAT_1826708f8;
  *(ulonglong *)(lVar4 + -0xce0) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar31 ^ 0x75f7b415)) ^ uVar34) ^ uVar49 ^
       uVar33;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x54c7e8ce)) =
       (CONCAT44(uVar27,uVar13) ^ 0xc8a481b4aec79a0e) + *(longlong *)(lVar4 - (uVar22 ^ 0xefdfd99f))
  ;
  uVar16 = DAT_1826708c4;
  lVar5 = DAT_1826707a0;
  puVar28 = (ulonglong *)(lVar4 - (uVar36 ^ 0xf523c3e1));
  local_128 = (byte)uVar21;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (*puVar28 ^ uVar33) >> ((local_128 ^ 0xe7) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  *(byte *)(lVar5 - ((ulonglong)uVar14 ^ 0xefdfdd7e)) =
       (byte)uVar18 ^ *(byte *)(lVar5 + -0xd88) ^ (byte)DAT_182670a10;
  lVar4 = DAT_1826707a0;
  pbVar25 = (byte *)(*(longlong *)(lVar5 - (uVar23 ^ 0x54c7ef1e)) +
                    (CONCAT44(uVar26,uVar8) ^ 0xffb3dfa5ab3811a2));
  bVar37 = *(byte *)(DAT_1826707a0 + -0x281) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670a10;
  *(ulonglong *)(DAT_1826707a0 + -0x750) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182670818;
  *pbVar25 = bVar37;
  lVar5 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0xffb3d4dd)) =
       *(longlong *)(lVar4 + -0x2d0) +
       ((CONCAT44(uVar21,uVar8) ^ 0xffffffffab38118c) +
       (CONCAT44(uVar11,uVar13) ^ 0x7b3c2c771189ab38) * 0xc) * 8 ^ uVar34;
  uVar35 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(lVar4 - (uVar47 ^ 0xcc49cdbb)) =
       *(ulonglong *)(uVar34 ^ *(ulonglong *)(lVar4 + -0xb78)) ^ uVar49 ^ uVar35;
  uVar13 = DAT_182670920;
  lVar4 = DAT_1826707a0;
  puVar44 = (ulonglong *)(lVar5 - (uVar47 ^ 0xcc49ca13));
  uVar34 = (ulonglong)DAT_182670920;
  *puVar44 = (*(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0xbac02643)) ^ uVar35) >>
             ((local_128 ^ 0xdf) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  bVar37 = (byte)uVar16 ^ *(byte *)(lVar4 + -0x588) ^ (byte)DAT_182670a8c;
  *(byte *)(lVar4 + -0x521) = bVar37;
  pbVar25 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar6 ^ 0x9802fdd4)) +
                    (CONCAT44(uVar30,uVar27) ^ 0x54f389efdfdfd3));
  bVar37 = bVar37 ^ (byte)DAT_182670a40 ^ (byte)DAT_182670a8c;
  *(ulonglong *)(lVar4 + -0x290) = (ulonglong)pbVar25 ^ uVar34;
  uVar16 = DAT_1826709d8;
  *(ulonglong *)(lVar4 + -0x6b8) =
       (CONCAT44(uVar26,uVar48) ^ 0xc35a358f02520548) - (*(ulonglong *)(lVar4 + -0xce0) ^ uVar33);
  lVar5 = DAT_1826707a0;
  *pbVar25 = bVar37;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar4 - (uVar22 ^ 0xefdfdd2f)) +
           ((CONCAT44(uVar29,uVar11) ^ 0x54c7ee767b3c2c72) +
           (CONCAT44(uVar48,uVar14) ^ 0xbcfc0298efdfdfff) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xc0) = (ulonglong)puVar2 ^ CONCAT44(uVar16,uVar16);
  uVar19 = _DAT_182670ad4;
  puVar42 = (ulonglong *)(lVar5 - (uVar47 ^ 0xcc49c9fb));
  uVar33 = CONCAT44(uVar13,uVar13);
  *puVar42 = *puVar2 ^ uVar49 ^ uVar33;
  uVar16 = DAT_18267082c;
  lVar4 = DAT_1826707a0;
  uVar33 = (*(ulonglong *)(DAT_1826707a0 + -0x660) ^ uVar33) >> (((byte)uVar11 ^ 0x5f) & 0x3f) ^
           CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar33;
  *(byte *)(lVar4 + -0xae9) = (byte)uVar19 ^ (byte)uVar33 ^ (byte)DAT_182670a04;
  uVar33 = (ulonglong)DAT_18267093c;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x54c7e8f6)) =
       (CONCAT44(uVar7,uVar27) ^ 0xefdfdfffefdfdfd2) + *(longlong *)(lVar4 + -0x168) ^ uVar33;
  bVar37 = (byte)DAT_182670a40 ^ *(byte *)(lVar4 + -0xae9) ^ (byte)DAT_182670a04;
  *(ulonglong *)(lVar4 + -0x588) =
       (CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar4 + -0xd88)) -
       (CONCAT44(uVar15,uVar26) ^ 0xeb700e5a1d9d8d33);
  *(byte *)(*(ulonglong *)(lVar4 + -0x680) ^ uVar33) = bVar37;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x2d0) +
           (uVar46 + (CONCAT44(uVar6,uVar29) ^ 0x9802fcbc54c7ee76) * 0xc) * 8);
  uVar47 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar4 + -0xb78) = (ulonglong)puVar2 ^ CONCAT44(DAT_182670a44,DAT_182670a44);
  *puVar28 = *puVar2 ^ uVar49 ^ uVar47;
  uVar13 = DAT_182670ae0;
  uVar33 = *(ulonglong *)(lVar4 - (uVar40 ^ 0xfffff31f));
  uVar34 = (ulonglong)DAT_1826709f8;
  *(undefined8 *)(lVar4 + -0x660) = 0xff3f7d5efbec3fb5;
  *(ulonglong *)(lVar4 + -0x6b8) =
       (uVar33 ^ uVar47) >> ((bVar39 ^ 0xa8) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  *(byte *)(lVar4 - (uVar36 ^ 0xf523c8f0)) =
       (byte)uVar16 ^ *(byte *)(lVar4 + -0x6b8) ^ (byte)DAT_182670954;
  bVar37 = *(byte *)(lVar4 + -0x7f1) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670954;
  uVar33 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar4 + -0x50) =
       *(longlong *)(lVar4 - (uVar24 ^ 0xefdfde97)) + (CONCAT44(uVar8,uVar30) ^ 0xab3811890054f3a7)
       ^ uVar34;
  uVar36 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar33 ^ 0x1189ab68)) ^ uVar34) = bVar37;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x2d0) + (CONCAT44(uVar12,uVar45) ^ 0x1189ab38cc49cf9e) * 8);
  *(ulonglong *)(lVar4 + -0xc0) = (ulonglong)puVar2 ^ uVar36;
  uVar18 = DAT_18267087c;
  *(ulonglong *)(lVar4 + -0xd88) =
       *(ulonglong *)(lVar4 + -0x220) ^ CONCAT44(uVar19,uVar19) | 0x34fd48fbef36b7d1;
  *(ulonglong *)(lVar4 + -0x588) = CONCAT44(uVar13,uVar13) ^ *puVar2 ^ uVar49;
  lVar5 = DAT_1826707a0;
  bVar37 = (byte)uVar18 ^ (byte)DAT_182670a14;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar31 ^ 0x75f7b2b5)) =
       (ulonglong)*(byte *)((lVar4 - ((ulonglong)uVar48 ^ 0xbcfc0710)) + 7) ^
       (ulonglong)(uVar13 >> 0x18) ^ CONCAT44(uVar18,uVar18);
  uVar33 = (ulonglong)DAT_182670a70;
  *(byte *)(lVar5 - (uVar43 ^ 0xbac02391)) = bVar37 ^ *(byte *)(lVar5 + -0x660);
  lVar4 = DAT_1826707a0;
  pbVar25 = (byte *)(*(longlong *)(DAT_1826707a0 - ((ulonglong)uVar27 ^ 0xefdfde97)) +
                    (CONCAT44(uVar10,uVar15) ^ 0xf523cf014e92d98b));
  *(ulonglong *)(DAT_1826707a0 + -0x748) = (ulonglong)pbVar25 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x6b8) = 0x31ad6fc04bd53da >> (((byte)uVar6 ^ 0x95) & 0x3f);
  *pbVar25 = *(byte *)(lVar4 - (uVar22 ^ 0xefdfd80d)) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670a14;
  uVar16 = DAT_182670804;
  *(undefined1 *)(lVar4 + -699) = **(undefined1 **)(lVar4 - (uVar41 ^ 0xffb3dca5));
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar4 - (uVar32 ^ 0x7b3c2ea7)) +
           ((CONCAT44(uVar14,uVar30) ^ 0xefdfdfff0054f38f) +
           (CONCAT44(uVar45,uVar29) ^ 0xcc49cf9b54c7ee76) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xb78) = (ulonglong)puVar2 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_1826707f8;
  lVar5 = DAT_1826707a0;
  uVar33 = *puVar2;
  local_120 = (byte)uVar7;
  *(ulonglong *)(lVar4 + -0xd88) = uVar33;
  uVar36 = (ulonglong)DAT_182670a60;
  *(ulonglong *)(lVar5 + -0x220) =
       (uVar33 ^ uVar49) >> ((local_120 ^ 0xff) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar19 = DAT_1826709d0;
  *(byte *)(lVar5 - (uVar23 ^ 0x54c7eccd)) =
       (byte)uVar16 ^ *(byte *)(lVar5 + -0x220) ^ (byte)DAT_182670868;
  pbVar25 = (byte *)((CONCAT44(uVar14,uVar45) ^ 0xefdfdfffcc49cfab) + *(longlong *)(lVar5 + -0x168))
  ;
  *(ulonglong *)(lVar5 + -0x300) = (ulonglong)pbVar25 ^ uVar36;
  *pbVar25 = *(byte *)(lVar5 - (uVar32 ^ 0x7b3c2ecc)) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670868;
  *puVar44 = (CONCAT44(uVar27,uVar7) ^ 0x876e69a347b747c7) >> (((byte)DAT_1826707d8 ^ 0x1e) & 0x3f);
  uVar7 = DAT_182670ad8;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar5 + -0x2d0) + (CONCAT44(uVar11,uVar48) ^ 0x7b3c2c77bcfc029e) * 8);
  uVar33 = (ulonglong)DAT_182670ad8;
  *(ulonglong *)(lVar5 + -0xc0) = (ulonglong)puVar2 ^ CONCAT44(uVar17,uVar17);
  uVar36 = CONCAT44(uVar7,uVar7) ^ *puVar2 ^ uVar49;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar36;
  bVar39 = (byte)uVar19 ^ (byte)DAT_182670948;
  uVar33 = (uVar33 << 0x18 | (ulonglong)(uVar7 >> 8)) ^ uVar36 >> 8 ^ CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar5 + -0xd88) = uVar33;
  bVar39 = bVar39 ^ (byte)uVar33;
  uVar33 = (ulonglong)DAT_182670ac4;
  *(byte *)(lVar5 + -0x321) = bVar39;
  pbVar25 = (byte *)((CONCAT44(uVar12,uVar26) ^ 0x1189ab38ffb3df94) + *(longlong *)(lVar5 + -0x168))
  ;
  bVar37 = (byte)DAT_182670a40 ^ (byte)DAT_182670948;
  *(ulonglong *)(lVar5 + -0x820) = (ulonglong)pbVar25 ^ uVar33;
  lVar4 = DAT_1826707a0;
  *pbVar25 = bVar37 ^ bVar39;
  uVar16 = DAT_1826709cc;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x2d0) +
           ((CONCAT44(uVar6,uVar21) ^ 0x9802fcbcffffffff) * 0xc +
           (CONCAT44(uVar12,uVar8) ^ 0x1189ab38ab38118f)) * 8);
  *(ulonglong *)(lVar4 + -0xb78) = (ulonglong)puVar2 ^ CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar33 = *puVar2 ^ uVar49;
  *(ulonglong *)(lVar4 + -0x220) = uVar33 ^ CONCAT44(uVar16,uVar16);
  uVar36 = (ulonglong)DAT_18267094c;
  bVar37 = (byte)DAT_182670a74;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       uVar33 >> (((byte)uVar15 ^ 0xb4) & 0x3f) ^ CONCAT44(DAT_182670a74,DAT_182670a74);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xab381731)) =
       (CONCAT44(uVar27,uVar21) ^ 0xa9125afbd511e16b) - (*puVar42 ^ CONCAT44(uVar18,uVar18));
  bVar39 = bVar37 ^ *(byte *)(lVar4 + -0x588) ^ (byte)DAT_182670970;
  *(byte *)(lVar4 + -0x561) = bVar39;
  bVar37 = (byte)DAT_182670a40 ^ (byte)DAT_182670970;
  *(ulonglong *)(lVar4 + -0xb90) =
       (CONCAT44(uVar8,uVar10) ^ 0xab381189f523cf33) + *(longlong *)(lVar4 + -0x168) ^ uVar36;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d8 ^ 0x1189a0a8)) ^ uVar36) =
       bVar37 ^ bVar39;
  *(ulonglong *)(lVar4 + -0xd88) =
       CONCAT44(uVar14,uVar29) ^ 0x3f229ee4a0b75db0 | CONCAT44(uVar11,uVar8) ^ 0x29698612d79aa5d3;
  uVar6 = DAT_1826707bc;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x2d0) +
           ((CONCAT44(uVar15,uVar21) ^ 0x4e92d9a4fffffff9) +
           (CONCAT44(uVar48,uVar15) ^ 0xbcfc02984e92d9a4) * 0xc) * 8);
  uVar33 = (ulonglong)DAT_1826707bc;
  uVar21 = DAT_1826707bc << 0x10 | DAT_1826707bc >> 0x10;
  DAT_1826707b4 = uVar21;
  *(ulonglong *)(lVar4 + -0xc0) = (ulonglong)puVar2 ^ CONCAT44(DAT_18267081c,DAT_18267081c);
  uVar17 = DAT_182670a34;
  uVar16 = _DAT_1826708bc;
  *(ulonglong *)(lVar4 + -0x220) =
       (CONCAT44(uVar21,uVar6) ^ 0x9c165a4ea1beb7c6) - (CONCAT44(uVar6,uVar21) ^ 0x4f2293fd16f9f07f)
  ;
  uVar41 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x660) = *puVar2 ^ uVar49 ^ uVar41;
  bVar37 = (byte)uVar17 ^ (byte)DAT_182670acc;
  uVar33 = (*(ulonglong *)(lVar4 - (uVar33 ^ 0x468e3646)) ^ uVar41) >>
           (((byte)(uVar6 >> 0x10) ^ 0x96) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar33;
  uVar36 = (ulonglong)DAT_182670a80;
  *(byte *)(lVar4 - ((ulonglong)uVar6 ^ 0x468e3c67)) = bVar37 ^ (byte)uVar33;
  *(ulonglong *)(lVar4 + -0x588) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x30264a6e)) ^ uVar47) +
       (uVar41 ^ *(ulonglong *)(lVar4 + -0x660));
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x30264db6)) =
       (CONCAT44(uVar6,uVar21) ^ 0x468e3026302646bd) + *(longlong *)(lVar4 + -0x168) ^ uVar36;
  *(byte *)(*(ulonglong *)(lVar4 + -0xb38) ^ uVar36) =
       *(byte *)(lVar4 + -0xc41) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670acc;
  uVar16 = DAT_1826708b8;
  puVar2 = (ulonglong *)
           (*(longlong *)(lVar4 + -0x2d0) +
           ((CONCAT44(uVar21,uVar30) ^ 0x3026468e0054f38f) +
           (CONCAT44(uVar9,uVar6) ^ 0xbac02463468e3026) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xb78) = (ulonglong)puVar2 ^ CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar4 + -0xd88) = CONCAT44(uVar16,uVar16) ^ *puVar2 ^ uVar49;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar3 ^ uVar26;
  return;
}



############ FUN_ 180c7b680 size=2992 ############

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

void FUN_180c7b680(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  byte bVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  byte bVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  uVar9 = DAT_1826707e4;
  uVar7 = DAT_1826707d8;
  uVar21 = DAT_1826707cc;
  uVar5 = DAT_1826707c8;
  uVar4 = DAT_1826707ac;
  lVar2 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707c8;
  uVar32 = (ulonglong)DAT_1826707ac;
  uVar26 = DAT_1826707ac - DAT_1826707c8;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670d30);
  uVar14 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707c8 ^ 0xa1a37983) + (longlong)DAT_182670d30) ^
           DAT_1826707ac;
  bVar28 = (byte)uVar26;
  bVar17 = (byte)DAT_1826707cc;
  DAT_1826707e8 = uVar26;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0xa68) ^ (ulonglong)DAT_182670ad0) = bVar17 ^ 0x6d;
  bVar18 = (byte)uVar9;
  uVar15 = (ulonglong)DAT_18267089c;
  *(byte *)(*(ulonglong *)(lVar2 + -0xda0) ^ (ulonglong)DAT_182670988) = bVar18 ^ 0xb2;
  uVar16 = (ulonglong)DAT_182670b08;
  *(byte *)(*(ulonglong *)(lVar2 + -0xa40) ^ uVar15) = bVar28 ^ 0xe1;
  bVar31 = (byte)uVar4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x488) ^ uVar16) = bVar31 ^ 0x38;
  uVar15 = (ulonglong)DAT_182670848;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0xa1a3757b)) ^ (ulonglong)DAT_1826709c4) = 0xb3;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x8e8) ^ uVar15) = 0x19;
  *(undefined1 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x6e3aa150)) ^ (ulonglong)DAT_182670818) = 0x6f;
  *(byte *)(*(ulonglong *)(lVar2 + -0x290) ^ (ulonglong)DAT_182670920) = bVar28 ^ 0x36;
  *(byte *)(*(ulonglong *)(lVar2 + -0x680) ^ (ulonglong)DAT_18267093c) = bVar18 ^ 0x80;
  bVar19 = (byte)uVar5;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xb99b658c)) ^ (ulonglong)DAT_1826709f8) =
       bVar19 ^ 0x74;
  *(byte *)(*(ulonglong *)(lVar2 + -0x748) ^ (ulonglong)DAT_182670a70) = bVar31 ^ 0xaa;
  uVar30 = (ulonglong)DAT_182670ab8;
  uVar24 = (ulonglong)DAT_182670aa4;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar26 ^ 0x9ab84263)) ^ (ulonglong)DAT_182670a60) =
       bVar19 ^ 0xde;
  uVar15 = (ulonglong)DAT_18267094c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x820) ^ (ulonglong)DAT_182670ac4) = bVar18 ^ 0x94;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb90) ^ uVar15) = bVar31 ^ 0x33;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb38) ^ (ulonglong)DAT_182670a80) = bVar18 ^ 0x2f;
  *(byte *)(*(ulonglong *)(lVar2 + -1000) ^ uVar30) = bVar19 ^ 0x12;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0xa08) ^ (ulonglong)DAT_1826708ec) = 0x1b;
  uVar22 = (ulonglong)DAT_1826709a4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x920) ^ uVar24) = bVar17 ^ 0x30;
  uVar15 = (ulonglong)DAT_182670a30;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x3c5bbbc6)) ^ uVar22) = bVar17 ^ 0x5c;
  lVar2 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0xbf0) ^ uVar15) = bVar17 ^ 0xc9;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x6e3aae30)) ^ (ulonglong)DAT_182670af0) =
       bVar19 ^ 0x3c;
  lVar2 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x308) ^ (ulonglong)DAT_182670828) = bVar28 ^ 0x3d;
  uVar27 = (ulonglong)DAT_1826708d8;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0xbc0) ^ (ulonglong)DAT_182670ae8) = 0x4c;
  bVar17 = (byte)uVar7;
  *(byte *)(*(ulonglong *)(lVar2 + -0xc50) ^ uVar27) = bVar17 ^ 0x68;
  lVar2 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar26 ^ 0x9ab84dcb)) ^
           (ulonglong)DAT_182670838) = bVar31 ^ 0x48;
  uVar15 = (ulonglong)DAT_18267099c;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0xb99b6694)) ^ (ulonglong)DAT_182670914) =
       bVar28 ^ 0x36;
  uVar29 = (ulonglong)DAT_1826708b0;
  uVar16 = (ulonglong)DAT_182670968;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0xd20) ^ uVar15) = 0x99;
  *(byte *)(*(ulonglong *)(lVar2 + -0xca0) ^ uVar16) = bVar17 ^ 0xc1;
  uVar15 = (ulonglong)DAT_182670af8;
  *(byte *)(*(ulonglong *)(lVar2 + -0x760) ^ (ulonglong)DAT_182670acc) = bVar18 ^ 0x9c;
  bVar6 = (byte)DAT_1826707b8;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb40) ^ uVar15) = bVar17 ^ 0x2c;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb68) ^ uVar29) = bVar6 ^ 0x57;
  uVar8 = DAT_1826707e0;
  lVar3 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(lVar2 + -0x810) ^ uVar24) = bVar31 ^ 0xdd;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xd5fef884)) ^ (ulonglong)DAT_182670844) =
       bVar31 ^ 0xaf;
  uVar24 = (ulonglong)DAT_182670874;
  uVar33 = (ulonglong)DAT_182670ac0;
  *(byte *)(*(ulonglong *)(lVar3 + -0x158) ^ (ulonglong)DAT_1826708dc) = bVar19 ^ 0x45;
  bVar17 = (byte)DAT_1826707c0;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0xd60) ^ uVar24) = 0x15;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xb99b6c64)) ^ uVar33) = bVar17 ^ 5;
  *(undefined1 *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x4c90670)) ^ (ulonglong)DAT_182670840)
       = 0x76;
  uVar21 = DAT_1826707d4;
  *(byte *)(*(ulonglong *)(lVar3 + -0x198) ^ uVar27) = (byte)DAT_1826707cc ^ 0x15;
  *(byte *)(*(ulonglong *)(lVar3 + -0x6e0) ^ (ulonglong)DAT_182670934) = bVar18 ^ 0xb;
  uVar11 = DAT_1826707f0;
  bVar17 = (byte)DAT_1826707a8;
  bVar19 = (byte)DAT_1826707f0;
  uVar15 = (ulonglong)DAT_18267096c;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar21 ^ 0xfb19115b)) ^ (ulonglong)DAT_182670a38) =
       bVar19 ^ 0x4b;
  uVar16 = (ulonglong)DAT_182670860;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x90) ^ uVar15) = bVar17 ^ 0x93;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x448) ^ uVar16) = (byte)DAT_1826707cc ^ 0xfc;
  bVar18 = (byte)DAT_1826707d8;
  uVar15 = (ulonglong)DAT_182670a18;
  *(undefined1 *)
   (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0x4c90388)) ^ (ulonglong)DAT_182670994) =
       0xd8;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -2000) ^ uVar15) = bVar18 ^ 0x47;
  lVar2 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x7e0) ^ (ulonglong)DAT_1826709d8) =
       (byte)DAT_1826707f4 ^ 0x65;
  *(byte *)(*(ulonglong *)(lVar2 + -0xdc0) ^ (ulonglong)DAT_182670920) = bVar28 ^ 0xb7;
  lVar2 = DAT_1826707a0;
  uVar15 = (ulonglong)DAT_182670928;
  *(undefined1 *)(*(ulonglong *)(DAT_1826707a0 + -0x3a0) ^ (ulonglong)DAT_182670a28) = 0xa1;
  *(byte *)(*(ulonglong *)(lVar2 + -0x968) ^ uVar15) = bVar28 ^ 0x3d;
  uVar25 = DAT_1826707cc;
  *(undefined1 *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0x3c5bbe86)) ^ (ulonglong)DAT_182670a94) = 0x81;
  bVar18 = (byte)DAT_1826707bc ^ 0x90;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x910) ^ uVar22) = 0x84;
  uVar5 = DAT_1826707b4;
  *(byte *)(*(ulonglong *)(lVar2 + -0xa0) ^ uVar29) = bVar17 ^ 0xf4;
  *(byte *)(*(ulonglong *)(lVar2 + -0xdb0) ^ uVar30) = bVar18;
  bVar17 = (byte)DAT_1826707c8;
  *(byte *)(*(ulonglong *)(lVar2 + -0x468) ^ (ulonglong)DAT_1826709fc) = (byte)uVar21 ^ 0x5a;
  uVar15 = (ulonglong)DAT_18267090c;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xb99b6cdc)) ^ (ulonglong)_DAT_1826708c8) =
       bVar17 ^ 0x32;
  uVar16 = (ulonglong)DAT_182670a74;
  *(byte *)(*(ulonglong *)(lVar2 + -0x510) ^ uVar15) = (byte)DAT_1826707ac ^ 0x57;
  *(byte *)(*(ulonglong *)(lVar2 + -0x990) ^ uVar16) = (byte)uVar5 ^ 0x79;
  *(byte *)(*(ulonglong *)(lVar2 + -0x460) ^ (ulonglong)DAT_182670ac4) = bVar6 ^ 0x99;
  uVar12 = DAT_1826707f4;
  uVar21 = DAT_1826707c4;
  uVar15 = (ulonglong)DAT_182670a6c;
  uVar22 = (ulonglong)DAT_1826707f4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x898) ^ (ulonglong)DAT_182670ac8) = (byte)DAT_1826707d0 ^ 0x26;
  uVar16 = (ulonglong)DAT_182670960;
  *(byte *)(*(ulonglong *)(lVar2 + -0x938) ^ uVar15) = bVar19 ^ 5;
  *(uint *)(*(ulonglong *)(lVar2 + -0xa48) ^ uVar16) = uVar5 ^ 0x8bdf9517;
  uVar15 = (ulonglong)DAT_1826709bc;
  *(uint *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0xa1a37b3b)) ^ (ulonglong)DAT_182670a50) =
       uVar21 ^ 0xdeaa525f;
  *(uint *)(*(ulonglong *)(lVar2 + -0xb80) ^ uVar15) = uVar25 ^ 0xd91ec676;
  uVar10 = DAT_1826707ec;
  uVar15 = (ulonglong)DAT_1826707ec;
  uVar20 = DAT_1826707ec ^ 0x65e29a9b;
  *(uint *)(*(ulonglong *)(lVar2 + -0x9f8) ^ (ulonglong)DAT_182670914) = uVar12 ^ 0x9a243a4f;
  *(uint *)(*(ulonglong *)(lVar2 - (uVar15 ^ 0xb1a3f113)) ^ (ulonglong)DAT_18267094c) = uVar20;
  uVar13 = DAT_182670a58;
  *(uint *)(*(ulonglong *)(lVar2 + -0xd98) ^ uVar24) = uVar8 ^ 0x27909fca;
  *(ulonglong *)(CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar2 + -0x78)) =
       CONCAT44(uVar21,uVar9) ^ 0x4c275aa205a15edf;
  uVar21 = DAT_1826707b0 ^ 0xae2d8c81;
  *(uint *)(*(ulonglong *)(lVar2 + -0x3c8) ^ (ulonglong)DAT_1826709c0) = uVar25 ^ 0x7780cea;
  *(uint *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x6e3aa2e8)) ^ uVar33) = uVar21;
  uVar21 = DAT_1826707c0 ^ 0x62d4e37a;
  *(ulonglong *)
   (*(ulonglong *)(lVar2 - (uVar23 ^ 0xa1a3733b)) ^ CONCAT44(DAT_182670afc,DAT_182670afc)) =
       CONCAT44(uVar4,uVar10) ^ 0x45a4d24c4a45ff0;
  uVar25 = uVar5 ^ uVar12;
  DAT_1826707d0 = uVar25;
  *(uint *)(*(ulonglong *)(lVar2 + -0xcc0) ^ (ulonglong)DAT_182670a08) = uVar21;
  uVar13 = DAT_182670a24;
  *(uint *)(*(ulonglong *)(lVar2 + -0x60) ^ (ulonglong)DAT_182670828) = uVar11 ^ 0xdcdd2dbe;
  *(ulonglong *)(CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar2 + -0x138)) =
       CONCAT44(uVar5,uVar25) ^ 0x571d12f01ea5de5c;
  *(uint *)(*(ulonglong *)(lVar2 + -0x6c0) ^ (ulonglong)DAT_182670acc) = uVar12 ^ 0x3a7c55c2;
  *(uint *)(*(ulonglong *)(lVar2 + -400) ^ (ulonglong)DAT_1826708b4) = uVar25 ^ 0x64175be6;
  uVar15 = (ulonglong)DAT_182670a70;
  *(undefined8 *)
   (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xf99b6dbc)) ^ CONCAT44(DAT_182670a2c,DAT_182670a2c))
       = 0x6ac07600d5da4cb4;
  *(undefined4 *)(*(ulonglong *)(lVar2 + -0x388) ^ (ulonglong)DAT_182670af8) = 0x262ad5d2;
  *(uint *)(*(ulonglong *)(lVar2 + -0x590) ^ uVar15) = uVar12 ^ 0xcca040ad;
  *(ulonglong *)(CONCAT44(DAT_182670a20,DAT_182670a20) ^ *(ulonglong *)(lVar2 + -0x378)) =
       CONCAT44(uVar25,uVar25) ^ 0x49b97251fcce155;
  uVar15 = (ulonglong)DAT_1826709f4;
  *(uint *)(*(ulonglong *)(lVar2 + -0xbd0) ^ (ulonglong)DAT_182670af4) = uVar5 ^ 0xa971b933;
  *(uint *)(*(ulonglong *)(lVar2 + -0x958) ^ uVar15) = uVar12 ^ 0x4f2c27b7;
  *(undefined4 *)(lVar2 + -0xc34) = 0x1d9e89e;
  *(ulonglong *)(lVar2 + -0xb60) = CONCAT44(uVar12,uVar25) ^ 0xe7a163cf4284fcb6;
  *(undefined8 *)(lVar2 + -0x498) = 0xf1a9f9f06a6f5079;
  *(ulonglong *)(lVar2 + -0x930) = CONCAT44(uVar25,uVar5) ^ 0x5bcbae732a79ba30;
  *(ulonglong *)(lVar2 + -0xc28) = CONCAT44(uVar5,uVar25) ^ 0x6d60444f3f2aab98;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xf99b654c)) =
       CONCAT44(uVar12,uVar5) ^ 0xcd38182d5831e51;
  *(ulonglong *)(lVar2 + -0x40) = CONCAT44(uVar12,uVar5) ^ 0x9362b19c0962fbab;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xafef7c9f)) = CONCAT44(uVar26,uVar25) ^ 0x1acaf5a96416a86b;
  *(undefined8 *)(lVar2 + -0x4c0) = 0x9eb16d25d6b80126;
  *(ulonglong *)(lVar2 + -0x80) = CONCAT44(uVar25,uVar4) ^ 0xa1a60b876ce391bd;
  *(ulonglong *)(lVar2 + -0x5f0) = CONCAT44(uVar12,uVar25) ^ 0xfd840fc358514125;
  *(ulonglong *)(lVar2 + -0xcb8) = CONCAT44(uVar7,uVar12) ^ 0xbf5c26e3a834ac8e;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar1 ^ uVar26;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xd5fef73c)) =
       CONCAT44(uVar5,uVar5) ^ 0x6fe1ca594ca0adcf;
  return;
}



############ FUN_ 180d067f0 size=5060 ############

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

void FUN_180d067f0(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  byte local_80;
  
  uVar5 = DAT_1826707ec;
  uVar4 = DAT_1826707c4;
  lVar2 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_1826707c4;
  uVar20 = (ulonglong)DAT_1826707ec;
  uVar15 = DAT_1826707c4 ^ DAT_1826707ec;
  uVar24 = *(uint *)(&DAT_18260f758 + DAT_182670be8) ^ DAT_1826707ec;
  uVar10 = *(uint *)(&DAT_18260f760 + DAT_182670be8) ^ DAT_1826707c4;
  uVar38 = (ulonglong)uVar15;
  uVar27 = *(ulonglong *)(DAT_1826707a0 + -0xce0);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  uVar25 = CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar16 = CONCAT44(uVar15,DAT_1826707ec);
  uVar32 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  bVar12 = (byte)DAT_1826707ec;
  uVar19 = (*puVar1 ^ uVar25) << ((bVar12 ^ 0x1d) & 0x3f);
  DAT_1826707d8 = uVar15;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar19 ^ uVar32;
  *(ulonglong *)(lVar2 + -0x660) = uVar19 << 0x24;
  puVar35 = (ulonglong *)(lVar2 - (uVar38 ^ 0xfa7cd0cf));
  puVar28 = (ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x17969005));
  uVar26 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar17 = CONCAT44(DAT_182670890,DAT_182670890) ^ *puVar28 | uVar32 ^ *puVar35;
  uVar18 = uVar17 ^ uVar26;
  uVar32 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar2 + -0x658) = uVar18;
  uVar21 = CONCAT44(DAT_182670864,DAT_182670864);
  uVar23 = (uVar27 ^ uVar32) - uVar17 ^ uVar21;
  uVar30 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar2 + -0x220) = uVar23;
  uVar7 = DAT_182670828;
  uVar17 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar18 = *(ulonglong *)(lVar2 + -0x890) ^ uVar17 ^ uVar30 ^ uVar26 ^ uVar18;
  *(ulonglong *)(lVar2 + -0xa18) = uVar18;
  bVar13 = (byte)uVar4;
  uVar26 = CONCAT44(uVar7,uVar7);
  uVar27 = (uVar18 ^ uVar30) >> ((bVar13 ^ 0xe8) & 0x3f);
  uVar18 = (uVar30 ^ uVar18) << 6;
  *(ulonglong *)(lVar2 + -0x68) = uVar27 ^ uVar26;
  lVar3 = DAT_1826707a0;
  *puVar1 = uVar19 - (CONCAT44(uVar4,uVar5) ^ 0x33cb4336e4122e91);
  uVar8 = DAT_182670920;
  *(ulonglong *)(lVar2 + -0x660) = uVar18 ^ CONCAT44(DAT_18267098c,DAT_18267098c);
  uVar6 = DAT_182670910;
  uVar7 = DAT_182670904;
  uVar19 = (ulonglong)DAT_182670910;
  uVar34 = CONCAT44(uVar8,uVar8);
  uVar27 = uVar27 | uVar18;
  *(ulonglong *)(lVar3 + -0xd38) = uVar27 ^ uVar34;
  uVar30 = CONCAT44(uVar7,uVar7);
  uVar29 = CONCAT44(uVar6,uVar6);
  puVar39 = (ulonglong *)(lVar3 - (uVar38 ^ 0xfa7cdf5f));
  *(ulonglong *)(lVar3 + -0xce0) = (*(ulonglong *)(lVar3 + -0x890) ^ uVar17) - uVar27 ^ uVar30;
  *(ulonglong *)(lVar3 + -0x658) =
       CONCAT44(DAT_182670900,DAT_182670900) ^ *puVar39 ^ uVar29 ^ uVar21 ^ uVar23;
  *puVar35 = CONCAT44(uVar5,uVar4) ^ 0xff7afff2f9f63efd | 0x8f623f52b9962e7d;
  uVar27 = *(ulonglong *)(lVar3 + -0x220);
  uVar18 = (uVar29 ^ *(ulonglong *)(lVar3 + -0x658)) << 0x2a;
  uVar31 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar23 = ((ulonglong)(uVar6 >> 0x16) | uVar19 << 10) ^ *(ulonglong *)(lVar3 + -0x658) >> 0x16;
  *puVar1 = uVar23 ^ uVar31;
  uVar7 = DAT_1826707fc;
  *(ulonglong *)(lVar3 + -0xa18) = uVar18 ^ CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar8 = DAT_1826708b4;
  uVar19 = CONCAT44(uVar7,uVar7);
  uVar33 = (uVar23 | uVar18) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x68) = uVar33;
  uVar18 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x660) =
       (uVar21 ^ uVar27) - (*(ulonglong *)(lVar3 - (uVar20 ^ 0x17969d55)) ^ uVar19) ^ uVar18;
  uVar27 = (ulonglong)DAT_18267082c;
  uVar23 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(lVar3 + -0x890) =
       *(ulonglong *)(lVar3 + -0xce0) ^ uVar23 ^ uVar19 ^ uVar30 ^ uVar33;
  *(longlong *)(lVar3 - (uVar22 ^ 0xedea4262)) =
       *(longlong *)(lVar3 + -0x420) << (((byte)uVar8 ^ *(byte *)(lVar3 + -0x660)) & 0x3f);
  uVar21 = CONCAT44(DAT_182670a10,DAT_182670a10);
  uVar19 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar3 + -0x658) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xfa7cdc7f)) >> 0x20 ^ uVar27) >> 0xe ^ uVar21;
  uVar27 = (*(ulonglong *)(lVar3 + -0x890) ^ uVar23) << ((bVar12 ^ 0x2f) & 0x3f);
  *puVar1 = uVar27 ^ uVar19;
  *(ulonglong *)(lVar3 + -0xa18) = uVar27 << ((bVar12 ^ 0x3f) & 0x3f);
  uVar9 = DAT_182670980;
  lVar2 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar27 = *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xedea4f8a)) ^ uVar21 | uVar27;
  *(ulonglong *)(DAT_1826707a0 + -0x68) =
       CONCAT44(uVar5,uVar15) ^ 0x60ae632890a80c6 | 0x982419c554512d29;
  uVar8 = DAT_182670a0c;
  *(ulonglong *)(lVar2 + -0x220) = uVar27 ^ uVar36;
  uVar7 = DAT_182670894;
  uVar21 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x420) = (*(ulonglong *)(lVar2 + -0xce0) ^ uVar30) - uVar27 ^ uVar21;
  uVar8 = DAT_18267090c;
  uVar23 = CONCAT44(uVar7,uVar7);
  uVar30 = *(ulonglong *)(lVar2 - (uVar38 ^ 0xfa7cd28f)) ^ uVar23 ^ uVar18 ^ uVar34 ^ *puVar28;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar30;
  *(ulonglong *)(lVar2 + -0x890) =
       *(ulonglong *)(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0x58)) ^ CONCAT44(uVar9,uVar9)
  ;
  lVar2 = DAT_1826707a0;
  uVar19 = (*puVar39 ^ uVar23) >> ((bVar13 ^ 0xde) & 0x3f);
  uVar27 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar19 ^ CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar8 = DAT_182670adc;
  *(ulonglong *)(lVar2 + -0x658) = (uVar30 ^ uVar23) << (((byte)uVar15 ^ 0xdb) & 0x3f) ^ uVar27;
  uVar7 = DAT_182670978;
  uVar33 = CONCAT44(uVar8,uVar8);
  puVar39 = (ulonglong *)(lVar2 - (uVar22 ^ 0xedea4922));
  *puVar39 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0x17969b65)) ^ uVar27 | uVar19) ^ uVar33;
  uVar19 = CONCAT44(uVar7,uVar7);
  uVar20 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(lVar2 + -0x68) =
       (uVar18 ^ *(ulonglong *)(lVar2 + -0x660)) - (uVar33 ^ *puVar1) ^ uVar19;
  uVar7 = DAT_1826707f0;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xedea4532)) =
       uVar20 ^ uVar33 ^ *puVar1 ^ uVar21 ^ *(ulonglong *)(lVar2 + -0x420);
  uVar30 = (uVar20 ^ *(ulonglong *)(lVar2 + -0xce0)) >> ((bVar12 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd38) = uVar30 ^ CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar2 + -0x890) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xce0)) - (uVar16 ^ 0x5f3c5c499fa23051);
  uVar16 = (ulonglong)DAT_1826707d0;
  puVar35 = (ulonglong *)(lVar2 - (uVar38 ^ 0xfa7cd80f));
  uVar40 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  bVar12 = (byte)DAT_1826707d0;
  uVar27 = CONCAT44(DAT_1826707b0,uVar15);
  uVar18 = (uVar20 ^ *puVar35) << ((bVar12 ^ 0x71) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar18 ^ uVar40;
  uVar9 = DAT_182670af0;
  uVar30 = uVar18 | uVar30;
  *(ulonglong *)(lVar2 + -0xa18) = uVar18 - (uVar27 ^ 0x4783c138651948a4);
  uVar8 = DAT_182670a64;
  *(ulonglong *)(lVar2 + -0x658) = uVar30 ^ uVar20;
  uVar18 = (uVar21 ^ *(ulonglong *)(lVar2 + -0x420)) -
           (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0x5040acb1)) ^ CONCAT44(uVar8,uVar8))
  ;
  uVar27 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar2 + -0x660) = uVar18 ^ CONCAT44(uVar9,uVar9);
  uVar8 = DAT_18267089c;
  uVar20 = CONCAT44(DAT_182670818,DAT_182670818);
  *puVar1 = uVar18 - uVar30 ^ uVar27;
  uVar9 = DAT_182670afc;
  uVar18 = (ulonglong)DAT_1826707e4;
  uVar20 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x630)) +
           (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0x588));
  *(ulonglong *)(lVar2 + -0x890) = uVar20 ^ uVar32;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar23 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *puVar35 = uVar30 - uVar20 ^ uVar21;
  uVar32 = *(ulonglong *)(lVar2 - (uVar18 ^ 0x3440ba29)) ^ uVar23 ^ uVar19 ^ uVar36 ^
           *(ulonglong *)(lVar2 + -0x220);
  uVar18 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar2 + -0xd38) = uVar32;
  *(ulonglong *)(lVar2 + -0xbb0) = (uVar32 ^ uVar23) >> (((byte)uVar7 ^ 0x28) & 0x3f) ^ uVar18;
  *(ulonglong *)(lVar2 - (uVar16 ^ 0xff0fa54e)) =
       (uVar27 ^ *puVar1) << (((byte)uVar7 ^ 0x21) & 0x3f);
  uVar7 = _DAT_1826708bc;
  bVar14 = (byte)DAT_1826707dc;
  uVar32 = (*(ulonglong *)(lVar2 - (uVar22 ^ 0xedea44ea)) ^ uVar23) << ((bVar14 ^ 0x76) & 0x3f);
  puVar37 = (ulonglong *)(lVar2 - (uVar16 ^ 0xff0fa936));
  *(ulonglong *)(lVar2 + -0x420) = uVar32 ^ CONCAT44(DAT_182670a90,DAT_182670a90);
  *puVar37 = (*(ulonglong *)(lVar2 + -0xbb0) ^ uVar18 | uVar32) ^ uVar26;
  uVar9 = DAT_182670a38;
  uVar6 = DAT_1826707e8;
  uVar32 = (ulonglong)DAT_1826707e8;
  uVar18 = (uVar19 ^ *(ulonglong *)(lVar2 + -0x68)) -
           (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0x118));
  *(ulonglong *)(lVar2 + -0x588) = uVar18 ^ CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar8 = DAT_182670a2c;
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0x658) = uVar18 - (uVar26 ^ *(ulonglong *)(lVar2 + -0x660)) ^ uVar34;
  uVar7 = DAT_182670888;
  uVar5 = DAT_1826707cc;
  lVar2 = DAT_1826707a0;
  uVar18 = (CONCAT44(DAT_1826707cc,DAT_1826707b4) ^ 0x2cd3adc5121601c5) -
           (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xba517aca)) ^ uVar40);
  puVar35 = (ulonglong *)(DAT_1826707a0 + -0x660);
  uVar23 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar18 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xa18) = (uVar26 ^ *puVar35) + uVar18 ^ uVar23;
  uVar26 = CONCAT44(uVar7,uVar7);
  uVar20 = (ulonglong)DAT_1826707ac;
  *puVar28 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e4 ^ 0x3440b059)) ^ uVar26 ^ uVar23 ^
             uVar27 ^ *puVar1;
  uVar19 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar2 + -0xbb0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b8 ^ 0x92005d0a)) ^ uVar26) >>
       ((bVar13 ^ 0xd7) & 0x3f) ^ uVar19;
  lVar3 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0xd32c561a)) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0x2d286d32)) ^ uVar26) << 0x3b ^ uVar25;
  uVar20 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0xda0d921c)) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x420) | *(ulonglong *)(lVar3 + -0xbb0) ^ uVar19) ^ uVar20;
  *(int *)(lVar3 + -0x598) = *(int *)(lVar3 + -0x43c) << ((bVar14 ^ 0x7f) & 0x1f);
  uVar18 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar3 + -0x118) =
       (uVar27 ^ *puVar1) - (uVar20 ^ *(ulonglong *)(lVar3 + -0x68)) ^ uVar18;
  uVar27 = (ulonglong)DAT_182670ac0;
  uVar30 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xfa7cd167)) =
       uVar30 ^ uVar34 ^ uVar21 ^ *(ulonglong *)(lVar3 + -0xce0) ^ *(ulonglong *)(lVar3 + -0x658);
  uVar7 = DAT_182670aa0;
  *puVar37 = (uVar23 ^ *(ulonglong *)(lVar3 + -0xa18)) - (uVar30 ^ *(ulonglong *)(lVar3 + -0x588));
  uVar19 = CONCAT44(uVar7,uVar7);
  puVar35 = (ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xd32c501a));
  *puVar35 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f4 ^ 0x29ac9b77)) >> 0x20 ^ uVar27) >> 5
             ^ uVar19;
  *(uint *)(lVar3 + -0x7e4) = *(int *)(lVar3 + -0x280) - (DAT_1826707b4 ^ 0xfd20c245);
  uVar15 = (uVar5 << 0x10 | uVar5 & 0xff00) << 8 | uVar5 >> 8 & 0xff00 | DAT_1826707cc >> 0x18;
  bVar14 = (byte)(DAT_1826707cc >> 0x18);
  uVar27 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  DAT_1826707b4 = uVar15;
  *(ulonglong *)(lVar3 + -0xd38) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0x588)) << ((bVar14 ^ 200) & 0x3f) ^ uVar27;
  *(uint *)(lVar3 - ((ulonglong)uVar5 ^ 0xd32c55de)) =
       (uVar5 ^ 0x856aadd5) + *(int *)(lVar3 + -0x598);
  uVar7 = DAT_182670990;
  uVar26 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar19 = uVar27 ^ *(ulonglong *)(lVar3 + -0xd38) | uVar19 ^ *(ulonglong *)(lVar3 + -0x220);
  uVar23 = uVar19 ^ uVar26;
  *(ulonglong *)(lVar3 + -0xbb0) = uVar23;
  uVar25 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x420) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x3a522a8b)) ^ uVar34) - uVar19 ^ uVar25;
  uVar27 = *(ulonglong *)(lVar3 + -0x588);
  *puVar1 = uVar19 | CONCAT44(uVar5,uVar15) ^ 0x7b33fcf2f534818e;
  uVar8 = DAT_182670950;
  uVar7 = DAT_18267086c;
  uVar38 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar19 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar26 = uVar38 ^ uVar26 ^ uVar18 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x118);
  *(ulonglong *)(lVar3 + -0xce0) = uVar26;
  *(ulonglong *)(lVar3 + -0x660) = (uVar26 ^ uVar38) >> (((byte)uVar5 ^ 0x2d) & 0x3f) ^ uVar19;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xa18) = (uVar30 ^ uVar27) >> ((bVar14 ^ 0xed) & 0x3f);
  *puVar35 = (uVar38 ^ uVar26) << ((bVar14 ^ 0xfa) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar3 + -0xd38) =
       (CONCAT44(uVar15,uVar5) ^ 0xfa9ce053cdcf0dcd) >> ((bVar14 ^ 0xff) & 0x3f);
  uVar5 = DAT_1826707e4;
  uVar15 = DAT_1826707d0 & 3;
  if (uVar15 < 2) {
    uVar11 = DAT_1826707bc;
    if (uVar15 == 0) {
      uVar11 = DAT_1826707d0;
    }
  }
  else {
    uVar11 = DAT_1826707e4;
    if (uVar15 < 3) {
      uVar11 = DAT_1826707e8;
    }
  }
  uVar15 = DAT_1826707d0 ^ 0x4a1d1fb;
  DAT_1826707c8 = uVar11;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xba517a2a)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0x3440b861)) ^ uVar23 |
       uVar19 ^ *(ulonglong *)(lVar3 + -0x660)) ^ uVar29;
  uVar26 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(uint *)(lVar3 + -0x598) = uVar15 * (DAT_1826707e8 ^ 0x7ceb8971);
  *puVar39 = (uVar18 ^ *(ulonglong *)(lVar3 + -0x118)) - (uVar29 ^ *(ulonglong *)(lVar3 + -0x658)) ^
             uVar26;
  local_80 = (byte)uVar7;
  uVar27 = (ulonglong)DAT_1826707bc;
  *(longlong *)(lVar3 + -0xbb0) =
       -0xbadd9f7a151b785 << ((local_80 ^ *(byte *)(lVar3 + -0xce0)) & 0x3f);
  puVar35 = (ulonglong *)(lVar3 - (uVar27 ^ 0xd249eecd));
  uVar18 = uVar25 ^ uVar20 ^ *puVar35 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0x68);
  *(ulonglong *)(lVar3 + -0x588) = uVar18;
  uVar7 = DAT_18267080c;
  *(undefined8 *)(lVar3 + -0xa18) = **(undefined8 **)(lVar3 - (uVar27 ^ 0xd249ee0d));
  uVar8 = DAT_1826709f0;
  uVar20 = (uVar31 ^ uVar18) >> (((byte)uVar5 ^ 0x69) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd38) = uVar20 ^ CONCAT44(uVar7,uVar7);
  uVar27 = (uVar31 ^ uVar18) << ((bVar12 ^ 0x4e) & 0x3f);
  *(ulonglong *)(lVar3 + -0x660) = uVar27 ^ CONCAT44(uVar8,uVar8);
  uVar20 = uVar20 | uVar27;
  uVar27 = uVar20 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x118) = CONCAT44(uVar4,uVar6) ^ 0x30f94f0a263d00e2;
  uVar7 = DAT_182670840;
  *(ulonglong *)(lVar3 + -0x220) = uVar27;
  uVar8 = DAT_1826708d4;
  uVar18 = CONCAT44(uVar7,uVar7);
  uVar20 = (uVar25 ^ *puVar35) - uVar20 ^ uVar18;
  *(ulonglong *)(lVar3 + -0xce0) = uVar20;
  uVar5 = DAT_1826707e4;
  uVar23 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0xbb0) =
       (CONCAT44(uVar4,uVar11) ^ 0x5c3ff39bcf66ab4f) << (((byte)uVar20 ^ (byte)uVar7) & 0x3f);
  uVar20 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xff0faf3e)) = uVar20 ^ uVar26 ^ *puVar39 ^ uVar21 ^ uVar27;
  uVar27 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar3 + -0xa18) =
       (CONCAT44(uVar4,uVar5) ^ 0xb25b089c0833f8f1) <<
       ((byte)*(undefined8 *)(lVar3 + -0x118) & 0x3f);
  uVar7 = DAT_182670944;
  uVar30 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xd249ea85)) ^ uVar20) >> ((bVar12 ^ 0x62) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd38) = uVar30 ^ CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar19 = CONCAT44(uVar7,uVar7);
  uVar27 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(lVar3 + -0x660) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xba517c1a)) ^ uVar20) << (((byte)uVar11 ^ 0x7e) & 0x3f) ^
       uVar19;
  uVar7 = DAT_1826708e0;
  *(ulonglong *)(lVar3 + -0x420) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0xedea4fb2)) ^ uVar19 | uVar30) ^ uVar27;
  uVar8 = DAT_182670a30;
  uVar19 = uVar18 ^ *(ulonglong *)(lVar3 + -0xce0) ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x658);
  uVar30 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0xbb0) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0xff0fafa6)) ^ uVar26) -
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x3440be61)) ^ uVar27) ^ uVar30;
  *(ulonglong *)(lVar3 + -0x220) = uVar19 ^ CONCAT44(uVar8,uVar8);
  uVar27 = uVar19 >> ((bVar13 ^ 0xeb) & 0x3f);
  *(ulonglong *)(lVar3 + -0x118) = uVar27 ^ uVar33;
  *(ulonglong *)(lVar3 + -0xa18) = uVar19 << ((bVar12 ^ 0x51) & 0x3f) ^ uVar20;
  uVar7 = DAT_182670974;
  uVar27 = *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xba51766a)) ^ uVar20 | uVar27;
  *(ulonglong *)(lVar3 + -0x68) = uVar27 ^ uVar17;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xba517a12)) =
       (uVar18 ^ *(ulonglong *)(lVar3 + -0xce0)) - uVar27 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_1826708b8;
  uVar27 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar3 + -0xd38) =
       *(ulonglong *)(lVar3 + -0xbb0) ^ uVar17 ^ *(ulonglong *)(lVar3 + -0x68) ^ uVar27 ^ uVar30;
  *puVar1 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707bc ^ 0xd249e7d5)) ^ uVar27) >>
            ((bVar12 ^ 0x58) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar24;
  return;
}



############ FUN_ 180c704f0 size=4444 ############

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

void FUN_180c704f0(void)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte bVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  byte *pbVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_res20;
  byte local_70;
  
  uVar9 = DAT_182670a40;
  uVar14 = DAT_182670884;
  uVar11 = DAT_1826707e0;
  uVar7 = DAT_1826707bc;
  lVar1 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_1826707bc;
  uVar18 = DAT_1826707e0 * DAT_1826707bc;
  uVar19 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar18 ^ 0x86341488) + (longlong)DAT_182670d0c) ^
           DAT_1826707bc;
  uVar20 = *(uint *)(&DAT_18260f760 + DAT_182670d0c) ^ DAT_1826707e0;
  uVar33 = (ulonglong)DAT_1826707bc;
  uVar34 = (ulonglong)DAT_1826707e0;
  uVar25 = CONCAT44(DAT_182670884,DAT_182670884);
  uVar31 = CONCAT44(DAT_1826707bc,uVar18);
  uVar26 = (ulonglong)DAT_1826708ac;
  uVar22 = (ulonglong)DAT_1826707e0;
  uVar35 = (CONCAT44(DAT_18267081c,DAT_18267081c) ^ *(ulonglong *)(DAT_1826707a0 + -0x2b0) |
           CONCAT44(DAT_182670abc,DAT_182670abc) ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) ^ uVar25;
  DAT_1826707c8 = uVar18;
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar35;
  bVar16 = (byte)uVar9;
  *(byte *)(lVar1 + -0xcd1) =
       *(byte *)(*(ulonglong *)(lVar1 - (uVar22 ^ 0xbcfc0108)) ^ (ulonglong)DAT_1826709a4) ^ bVar16;
  pbVar32 = (byte *)((uVar31 ^ 0x33e561308634149b) + *(longlong *)(lVar1 + -0x168));
  uVar22 = CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar1 + -0x418) = (ulonglong)pbVar32 ^ uVar26;
  bVar21 = (byte)DAT_18267094c;
  *(ulonglong *)(lVar1 + -0x410) =
       (CONCAT44(uVar11,uVar18) ^ 0x53ee6acd828c9ce9) - (uVar22 ^ *(ulonglong *)(lVar1 + -0x3b0));
  *(byte *)(lVar1 + -0x9ba) = *pbVar32 ^ bVar21 ^ bVar16;
  uVar9 = DAT_182670860;
  *(ulonglong *)(lVar1 + -0x68) =
       (CONCAT44(uVar7,uVar11) ^ 0x19bb4eac5315fbf1) >> (((byte)uVar35 ^ (byte)uVar14) & 0x3f);
  uVar22 = CONCAT44(uVar9,uVar9);
  uVar26 = (ulonglong)DAT_182670948;
  *(ulonglong *)(lVar1 - (uVar33 ^ 0x33e56478)) = (bVar21 ^ *(byte *)(lVar1 + -0x9ba)) ^ uVar22;
  uVar29 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar35 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar1 + -0xbb0) = (uVar22 ^ *(ulonglong *)(lVar1 + -0x548)) << 0x18 ^ uVar29;
  *(ulonglong *)(lVar1 - (uVar34 ^ 0xbcfc0710)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar18 ^ 0x86341f30)) ^ uVar29 |
       uVar25 ^ *(ulonglong *)(lVar1 + -0x890)) ^ uVar35;
  bVar21 = (byte)DAT_182670a38;
  pbVar32 = (byte *)(*(longlong *)(lVar1 - ((ulonglong)uVar18 ^ 0x863415e8)) +
                    (CONCAT44(uVar11,uVar7) ^ 0xbcfc029833e5612c));
  *(ulonglong *)(lVar1 + -0x4f8) = (ulonglong)pbVar32 ^ uVar26;
  *(byte *)(lVar1 + -0x9b9) = *pbVar32 ^ bVar21 ^ bVar16;
  uVar22 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0xbcfc0028)) =
       (*(byte *)(lVar1 - ((ulonglong)uVar7 ^ 0x33e56889)) ^ bVar21) ^ uVar22;
  uVar25 = (uVar22 ^ *(ulonglong *)(lVar1 + -0x2b0)) << 0x20;
  *(ulonglong *)(lVar1 + -0x3b0) = uVar25 ^ CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar5 = DAT_1826707c0;
  lVar1 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (CONCAT44(uVar18,uVar18) ^ 0x225da0d23de4a00b) + 0x4bc09da454562e4a;
  uVar23 = DAT_182670a90;
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar33 = (ulonglong)DAT_182670a90;
  uVar26 = (ulonglong)DAT_182670aec;
  *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xffffdf97)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar18 ^ 0x86341108)) ^ uVar35 | uVar25) ^ uVar31;
  puVar24 = (ulonglong *)(lVar2 - (uVar34 ^ 0xbcfc0870));
  *puVar24 = *(longlong *)(lVar2 + -0x168) + 0x1dU ^ uVar26;
  uVar9 = _DAT_182670b10;
  bVar21 = *(byte *)(uVar26 ^ *(ulonglong *)(lVar2 + -0xae8)) ^ (byte)uVar23 ^ (byte)DAT_182670a40;
  *(byte *)(lVar2 + -0xad1) = bVar21;
  uVar25 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xbcfc07d0)) =
       (ulonglong)bVar21 ^ uVar33 & 0xff ^ uVar25;
  uVar9 = DAT_182670a48;
  bVar28 = (byte)uVar7;
  uVar26 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar22 = (uVar25 ^ *(ulonglong *)(lVar2 + -0x548)) << ((bVar28 ^ 0x18) & 0x3f);
  *(ulonglong *)(lVar2 + -0x890) = uVar22 ^ uVar26;
  uVar12 = DAT_1826707e4;
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar2 + -0xbb0) = (uVar22 | uVar31 ^ *(ulonglong *)(lVar2 + -0x68)) ^ uVar35;
  uVar4 = DAT_1826707a8;
  uVar22 = (ulonglong)DAT_18267084c;
  *(ulonglong *)(lVar2 + -0x2b0) =
       (CONCAT44(uVar5,uVar7) ^ 0xf42e21a9ab82ee7d) - (CONCAT44(uVar18,uVar18) ^ 0xbf2ae4f5b9511f9);
  bVar21 = (byte)DAT_182670a54;
  uVar9 = DAT_1826707d0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xfeb0983f)) =
       (CONCAT44(uVar12,uVar11) ^ 0x727d2efdbcfc0286) + *(longlong *)(lVar2 + -0x168) ^ uVar22;
  lVar1 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0xd61) =
       *(byte *)(uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x390)) ^ bVar21 ^ (byte)DAT_182670a40;
  uVar15 = DAT_1826709ec;
  uVar13 = DAT_1826707e8;
  uVar22 = (ulonglong)DAT_1826707e8;
  uVar39 = CONCAT44(DAT_18267087c,DAT_18267087c);
  uVar33 = (ulonglong)(bVar21 ^ *(byte *)(lVar1 + -0xd61));
  *(ulonglong *)(lVar1 + -0x588) = uVar33 ^ uVar39;
  uVar14 = DAT_1826708a4;
  uVar33 = uVar33 << (((byte)uVar11 ^ 0xa8) & 0x3f);
  *(ulonglong *)(lVar1 + -0x68) = uVar33 ^ CONCAT44(uVar15,uVar15);
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar1 + -0x2b0) = uVar33 + (uVar35 ^ *(ulonglong *)(lVar1 + -0xbb0)) ^ uVar31;
  uVar4 = DAT_1826707b8;
  *(undefined8 *)(lVar1 + -0x3b0) = 0xea4ba537af5fffdf;
  uVar33 = (ulonglong)DAT_1826708b0;
  *(ulonglong *)(lVar1 - (uVar30 ^ 0x33e56528)) =
       (CONCAT44(uVar18,uVar4) ^ 0x8634148001cf23ea) + *(longlong *)(lVar1 + -0x168) ^ uVar33;
  bVar21 = (byte)DAT_182670988;
  uVar10 = DAT_1826707d4;
  uVar8 = DAT_1826707cc;
  uVar41 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar1 + -0x410) =
       (CONCAT44(uVar7,uVar4) ^ 0x8805a09f17903070) - (uVar26 ^ *(ulonglong *)(lVar1 + -0x890));
  *(byte *)(lVar1 + -0xd02) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x418) ^ uVar33) ^ (byte)DAT_182670a40 ^ bVar21;
  uVar14 = DAT_18267080c;
  *(ulonglong *)(lVar1 + -0x588) = CONCAT44(uVar12,uVar11) ^ 0x3011580000c0491 | 0xf8308a7747123b4e;
  uVar15 = DAT_182670aa0;
  uVar6 = DAT_1826707b4;
  uVar33 = (ulonglong)DAT_1826707b4;
  uVar26 = (ulonglong)(*(byte *)(lVar1 - (uVar22 ^ 0x727d23ff)) ^ bVar21);
  *(ulonglong *)(lVar1 + -0xbb0) = uVar26 ^ CONCAT44(uVar14,uVar14);
  uVar22 = CONCAT44(uVar15,uVar15);
  uVar35 = CONCAT44(uVar23,uVar23);
  *(ulonglong *)(lVar1 + -0x68) = uVar26 << (((byte)uVar11 ^ 0xa0) & 0x3f) ^ uVar22;
  uVar14 = DAT_182670880;
  *(ulonglong *)(lVar1 + -0x3b0) =
       (*(ulonglong *)(lVar1 - (uVar33 ^ 0xffffdf97)) ^ uVar22) +
       (*(ulonglong *)(lVar1 + -0x2b0) ^ uVar31) ^ uVar35;
  lVar1 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707c4;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0xadc3dfe)) =
       *(longlong *)(DAT_1826707a0 + -0xa58) +
       (CONCAT44(uVar8,DAT_1826707c4) ^ 0x12d90f884303fd64) * 8 ^ uVar22;
  uVar5 = DAT_1826707ac;
  uVar26 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar38 = (ulonglong)DAT_1826707ac;
  uVar33 = (ulonglong)DAT_182670a28;
  *(ulonglong *)(*(ulonglong *)(lVar1 - (uVar34 ^ 0xbcfc0f98)) ^ uVar22) =
       uVar35 ^ *(ulonglong *)(lVar1 + -0x3b0) ^ uVar26;
  uVar14 = DAT_182670a40;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0xadc3406)) =
       *(longlong *)(lVar1 - ((ulonglong)uVar10 ^ 0xadc3196)) + 0x20U ^ uVar33;
  bVar21 = (byte)DAT_182670970;
  *(ulonglong *)(lVar1 + -0x890) = (CONCAT44(uVar13,uVar5) ^ 0x1231b114a) << 0x1e;
  uVar13 = DAT_1826707ec;
  *(byte *)(lVar1 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar1 + -0x4f8) ^ uVar33) ^ (byte)uVar14 ^ bVar21;
  uVar22 = (ulonglong)DAT_182670960;
  *(ulonglong *)(lVar1 + -0x410) =
       uVar25 ^ *(ulonglong *)(lVar1 + -0x548) | CONCAT44(uVar11,uVar13) ^ 0xf409512c74fe51c2;
  uVar10 = DAT_1826707dc;
  uVar33 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar1 + -0xce0) = (*(byte *)(lVar1 + -0xc35) ^ bVar21) ^ uVar39;
  *(ulonglong *)(lVar1 + -0x588) =
       (CONCAT44(uVar11,uVar18) ^ 0xa5579c828c51cdfe) + 0xf70776558fa363a7;
  uVar4 = DAT_1826707d8;
  *(ulonglong *)(lVar1 - (uVar38 ^ 0xf523cc91)) =
       (CONCAT44(uVar10,uVar8) ^ 0x12d90f8812d90fa9) + *(longlong *)(lVar1 + -0x168) ^ uVar22;
  uVar8 = DAT_1826709a4;
  uVar23 = DAT_1826709a4 & 0xff;
  *(ulonglong *)(lVar1 + -0xbb0) =
       (CONCAT44(DAT_1826707b0,uVar4) ^ 0x1585cde017d3d8fd) + 0xf3b1a8a18272ee76;
  uVar15 = DAT_182670ab4;
  bVar21 = *(byte *)(*(ulonglong *)(lVar1 + -0x390) ^ uVar22) ^ (byte)uVar14 ^ (byte)uVar8;
  *(byte *)(lVar1 + -0xb09) = bVar21;
  uVar14 = DAT_1826709bc;
  uVar34 = (ulonglong)bVar21 ^ (ulonglong)uVar23;
  *(ulonglong *)(lVar1 + -0x68) = uVar34 ^ CONCAT44(uVar15,uVar15);
  lVar2 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707f4;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xfffc243f)) =
       uVar34 << ((bVar28 ^ 0x38) & 0x3f) ^ uVar22;
  uVar36 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar40 = (ulonglong)DAT_182670a58;
  *(ulonglong *)(lVar2 + -0x890) =
       (*(ulonglong *)(lVar2 + -0xac0) ^ uVar22 | *(ulonglong *)(lVar2 + -0xce0) ^ uVar39) ^ uVar36;
  uVar4 = DAT_1826707a8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x727d2ae5)) =
       (CONCAT44(uVar11,uVar7) ^ 0xbcfc029833e56112) + *(longlong *)(lVar2 + -0x168) ^ uVar40;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x4303f82f)) =
       (*(ulonglong *)(lVar2 + -0x2b0) ^ uVar31) << (((byte)uVar4 ^ 0x95) & 0x3f);
  uVar14 = DAT_182670818;
  bVar21 = *(byte *)(*(ulonglong *)(lVar2 + -0x418) ^ uVar40) ^ (byte)DAT_182670a40;
  *(byte *)(lVar2 + -0x61a) = bVar21 ^ (byte)DAT_1826708b4;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar22 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x12d90b98)) = bVar21 ^ uVar34;
  uVar4 = DAT_1826707b0;
  uVar31 = CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar39 = (ulonglong)DAT_1826707b0;
  bVar21 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0x588) =
       (*(ulonglong *)(lVar2 - (uVar22 ^ 0x14f6040)) ^ uVar34) << (((byte)uVar12 ^ 0xed) & 0x3f) ^
       uVar31;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x7b3c27c7)) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x3b0)) << ((bVar21 ^ 0x59) & 0x3f);
  uVar14 = DAT_182670a40;
  lVar3 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xfffc2e97)) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x588) | uVar36 ^ *(ulonglong *)(lVar2 + -0x890)) ^ uVar35;
  lVar1 = *(longlong *)(lVar3 + -0x168);
  bVar17 = (byte)uVar14;
  *(byte *)(lVar2 + -0x41) =
       *(byte *)((ulonglong)DAT_182670aec ^ *(ulonglong *)(lVar2 + -0xae8)) ^ bVar17;
  bVar21 = (byte)DAT_182670908;
  uVar8 = DAT_1826707f0;
  pbVar32 = (byte *)((CONCAT44(DAT_1826707f0,uVar4) ^ 0x50644f017b3c2c54) + lVar1);
  *(ulonglong *)(lVar3 + -0x390) = (ulonglong)pbVar32 ^ (ulonglong)DAT_182670a20;
  uVar14 = DAT_182670ac0;
  bVar16 = *pbVar32 ^ bVar17;
  *(byte *)(lVar3 + -0xd89) = bVar16 ^ bVar21;
  uVar15 = DAT_182670974;
  *(ulonglong *)(lVar3 + -0xce0) = (ulonglong)bVar16 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182670938;
  uVar4 = DAT_1826707d8;
  local_70 = (byte)uVar18;
  uVar25 = (ulonglong)bVar16 << ((local_70 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar3 + -0xac0) = uVar25 ^ CONCAT44(uVar15,uVar15);
  lVar2 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar22 = CONCAT44(DAT_1826707ec,uVar4);
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) =
       (uVar25 | *(ulonglong *)(DAT_1826707a0 + -0x68) ^ uVar35) ^ uVar36;
  bVar21 = (byte)DAT_1826708f4;
  *(ulonglong *)(lVar2 + -0x548) = (uVar22 ^ 0x5a2b436fb70984e0) + 0x5f47924348a4c502;
  uVar22 = (ulonglong)DAT_182670a98;
  *(ulonglong *)(lVar2 + -0xae8) = (CONCAT44(uVar9,uVar10) ^ 0xffffdfff12d90fac) + lVar1 ^ uVar22;
  uVar4 = DAT_182670948;
  bVar17 = *(byte *)(*(ulonglong *)(lVar2 - (uVar41 ^ 0x12d90560)) ^ uVar22) ^ bVar17;
  *(byte *)(lVar2 + -0x1a9) = bVar17 ^ bVar21;
  uVar34 = CONCAT44(uVar4,uVar4);
  uVar35 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar2 + -0x410) = bVar17 ^ uVar34;
  uVar4 = DAT_1826707d4;
  uVar25 = (ulonglong)DAT_1826708e4;
  uVar41 = (ulonglong)DAT_1826707ec;
  uVar22 = (ulonglong)bVar17 << ((bVar28 ^ 0x10) & 0x3f);
  uVar37 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar22 ^ uVar35;
  bVar21 = (byte)DAT_182670820;
  uVar7 = DAT_1826707d8;
  uVar31 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x12d90718)) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0xadc324e)) ^ uVar36 | uVar22) ^ uVar29;
  *(ulonglong *)(lVar2 + -0x588) =
       (CONCAT44(uVar5,DAT_1826707c0) ^ 0x25e97537a956f6b2) +
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x890));
  pbVar32 = (byte *)(*(longlong *)(lVar2 - (uVar41 ^ 0x14f6538)) +
                    (CONCAT44(uVar11,uVar13) ^ 0xbcfc0298014f6475));
  *(ulonglong *)(lVar2 + -0x390) = (ulonglong)pbVar32 ^ uVar25;
  *(ulonglong *)(lVar2 + -0xce0) =
       (CONCAT44(uVar6,uVar4) ^ 0x66878e8da3f1bc74) - (*(ulonglong *)(lVar2 + -0x410) ^ uVar34);
  uVar4 = DAT_1826707a8;
  uVar33 = (ulonglong)DAT_1826707a8;
  *(byte *)(lVar2 - (uVar38 ^ 0xf523ca38)) = *pbVar32 ^ (byte)DAT_182670a40 ^ bVar21;
  uVar6 = DAT_1826707b8;
  uVar22 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar2 + -0x68) =
       (CONCAT44(uVar9,uVar4) ^ 0x82c92bb2ba2acc71) + *(longlong *)(lVar2 - (uVar31 ^ 0x67a0f11e));
  lVar1 = DAT_1826707a0;
  uVar25 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar2 + -0xac0) = (*(byte *)(lVar2 - (uVar22 ^ 0x1cf26cc)) ^ bVar21) ^ uVar25;
  puVar27 = (ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x67a0f73e));
  uVar25 = (*puVar27 ^ uVar25) << (((byte)uVar6 ^ 0xdd) & 0x3f);
  uVar34 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar1 + -0x548) = uVar25 ^ CONCAT44(DAT_182670a80,DAT_182670a80);
  bVar21 = (byte)DAT_18267096c;
  uVar22 = (ulonglong)DAT_18267092c;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0x50644db1)) =
       (uVar29 ^ *(ulonglong *)(lVar1 + -0x890) | uVar25) ^ uVar34;
  *(ulonglong *)(lVar1 + -0xae8) =
       (CONCAT44(uVar18,DAT_1826707d0) ^ 0x86341480ffffdfd9) + *(longlong *)(lVar1 + -0x168) ^
       uVar22;
  *(byte *)(lVar1 - (uVar33 ^ 0xfeb090b5)) =
       *(byte *)(*puVar24 ^ uVar22) ^ (byte)DAT_182670a40 ^ bVar21;
  uVar25 = CONCAT44(DAT_182670864,DAT_182670864);
  local_res20 = (byte)uVar5;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0x67a0f64e)) =
       (*(byte *)(lVar1 - (uVar30 ^ 0x33e56a2a)) ^ bVar21) ^ uVar25;
  uVar9 = DAT_182670a78;
  uVar4 = DAT_1826707e8;
  uVar22 = (ulonglong)DAT_182670828;
  uVar25 = (uVar25 ^ *(ulonglong *)(lVar1 + -0xbb0)) << ((local_res20 ^ 0x31) & 0x3f);
  *(ulonglong *)(lVar1 + -0x588) = uVar25 ^ CONCAT44(DAT_182670ab0,DAT_182670ab0);
  bVar21 = (byte)DAT_182670810;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x410) = (*(ulonglong *)(lVar1 + -0x2b0) ^ uVar34) + uVar25 ^ uVar33;
  pbVar32 = (byte *)((CONCAT44(uVar12,uVar8) ^ 0x727d2efd50644f26) + *(longlong *)(lVar1 + -0x168));
  *(int *)(lVar1 + -0x140) =
       (int)(*(uint *)(lVar1 + -0x14) ^ DAT_182670984) >> (((byte)uVar4 ^ 0xf8) & 0x1f);
  *(ulonglong *)(lVar1 + -0x390) = (ulonglong)pbVar32 ^ uVar22;
  uVar14 = DAT_182670a40;
  bVar16 = (byte)DAT_182670a40;
  *(byte *)(lVar1 + -0x489) = *pbVar32 ^ bVar16 ^ bVar21;
  uVar9 = DAT_182670874;
  *(byte *)(lVar1 + -0x699) = *(byte *)(*(ulonglong *)(lVar1 + -0x418) ^ uVar40) ^ bVar16;
  uVar22 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar39 ^ 0x7b3c2097)) = (*(byte *)(lVar1 + -0x489) ^ bVar21) ^ uVar22;
  uVar22 = (*(ulonglong *)(lVar1 - (uVar41 ^ 0x14f68b0)) ^ uVar22) << 0x38;
  *(ulonglong *)(lVar1 + -0x68) = uVar22 ^ CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(lVar1 + -0xac0) = (*(ulonglong *)(lVar1 + -0x410) ^ uVar33) + uVar22 ^ uVar35;
  *(undefined8 *)(lVar1 + -0x890) = 0x27943834247fabf8;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xa58) +
            (CONCAT44(uVar7,DAT_1826707d0) ^ 0x67a0fdfeffffdffb) * 8);
  *(ulonglong *)(lVar1 + -0x428) = (ulonglong)puVar24 ^ CONCAT44(uVar14,uVar14);
  *puVar24 = *puVar27 ^ uVar35 ^ uVar26;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar19;
  return;
}



############ FUN_ 180d30110 size=5706 ############

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

void FUN_180d30110(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  byte bVar15;
  byte bVar16;
  byte bVar17;
  ulonglong *puVar18;
  longlong lVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  
  uVar11 = DAT_18267080c;
  uVar9 = DAT_1826707d0;
  uVar6 = DAT_1826707cc;
  uVar8 = DAT_1826707c8;
  uVar7 = DAT_1826707bc;
  lVar19 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707bc;
  uVar20 = (ulonglong)DAT_1826707c8;
  uVar32 = (ulonglong)DAT_1826707cc;
  uVar37 = DAT_1826707bc * DAT_1826707c8;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670c68);
  uVar22 = DAT_1826707cc + DAT_1826707d0;
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670c68) ^ DAT_1826707bc;
  uVar24 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar30 = CONCAT44(DAT_182670868,DAT_182670868);
  uVar27 = (CONCAT44(DAT_182670954,DAT_182670954) ^ *(ulonglong *)(DAT_1826707a0 + -0xa18) |
           *(ulonglong *)(DAT_1826707a0 + -0xac0) ^ uVar24) ^ uVar30;
  DAT_1826707c0 = uVar37;
  DAT_1826707c4 = uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar27;
  uVar39 = CONCAT44(uVar11,uVar11);
  uVar45 = (ulonglong)uVar22;
  uVar25 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar30 = *(ulonglong *)(lVar19 - (uVar20 ^ 0xfff7f9ef)) ^ uVar25 ^ uVar39 ^ uVar27 ^ uVar30;
  uVar27 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar19 + -0xcf8) = uVar30;
  uVar12 = DAT_1826709d4;
  uVar11 = DAT_18267085c;
  puVar33 = (ulonglong *)(DAT_1826707a0 + -0x660);
  uVar40 = (ulonglong)uVar37;
  *puVar33 = (CONCAT44(uVar6,uVar22) ^ 0x47ffc461ec2f775e) + (uVar39 ^ uVar30) ^ uVar27;
  lVar19 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar22 ^ 0xcacabf4f)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xe9353e83)) ^ CONCAT44(uVar12,uVar12)) +
       (CONCAT44(uVar9,uVar6) ^ 0xd47e3d732f9549ff) ^ uVar34;
  uVar11 = DAT_182670a4c;
  uVar43 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar19 + -0x9e0) =
       (*puVar33 ^ uVar27) + (uVar34 ^ *(ulonglong *)(lVar19 + -0xf0)) ^ uVar43;
  puVar46 = (ulonglong *)(lVar19 + -0x68);
  uVar31 = CONCAT44(uVar11,uVar11);
  puVar18 = (ulonglong *)(lVar19 - ((ulonglong)uVar6 ^ 0x5c6e644d));
  *puVar18 = (*puVar33 ^ uVar27) << 0x19 ^ uVar31;
  uVar35 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar28 = CONCAT44(DAT_182670828,DAT_182670828);
  *puVar46 = (*puVar33 ^ uVar27) >> (((byte)uVar37 ^ 0x14) & 0x3f) ^ uVar35;
  lVar19 = DAT_1826707a0;
  uVar41 = (ulonglong)DAT_182670ab8;
  uVar30 = (ulonglong)DAT_182670b14;
  uVar48 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0xb99e269d)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xfff7ffb7)) ^ uVar35 |
       uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) ^ uVar28;
  uVar4 = DAT_1826707f4;
  *(byte *)(lVar19 + -0x282) =
       *(byte *)(*(ulonglong *)(lVar19 + -0x390) ^ uVar30) ^ (byte)DAT_182670a40;
  uVar5 = DAT_1826709cc;
  uVar31 = CONCAT44(DAT_182670af0,DAT_182670af0);
  uVar44 = (ulonglong)DAT_1826709cc;
  *(ulonglong *)(lVar19 + -0xd88) =
       *(ulonglong *)(lVar19 - (uVar45 ^ 0xcacab65f)) ^ uVar48 ^ uVar28 ^ uVar43 ^
       *(ulonglong *)(lVar19 + -0x3b0);
  uVar27 = (CONCAT44(DAT_1826708d0,DAT_1826708d0) ^ *(ulonglong *)(lVar19 + -0x410)) +
           (CONCAT44(uVar4,uVar9) ^ 0xd91f064767f2c153);
  *(ulonglong *)(lVar19 + -0x998) = uVar27 ^ uVar31;
  uVar11 = DAT_182670850;
  uVar30 = (CONCAT44(uVar8,uVar6) ^ 0x180136e28f9eac25) + (uVar25 ^ *(ulonglong *)(lVar19 + -0x630))
  ;
  *(ulonglong *)(lVar19 + -0x9c8) = uVar30 ^ CONCAT44(uVar5,uVar5);
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar23 = CONCAT44(DAT_182670840,DAT_182670840);
  *(ulonglong *)(lVar19 + -0x890) = uVar30 + uVar27 ^ uVar28;
  *(ulonglong *)(lVar19 - (uVar40 ^ 0xe935336b)) = uVar27 << 0x21 ^ uVar23;
  uVar4 = DAT_1826707b8;
  uVar5 = DAT_1826707b0;
  uVar25 = (ulonglong)DAT_1826707b8;
  bVar15 = (byte)DAT_1826707b8;
  uVar27 = (uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x998)) >> ((bVar15 ^ 0x1f) & 0x3f);
  uVar30 = CONCAT44(DAT_182670920,DAT_182670920);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  *(int *)(DAT_1826707a0 + -0xc04) = (int)(uVar22 ^ 0xfad1922d) >> ((bVar15 ^ 7) & 0x1f);
  lVar19 = DAT_1826707a0;
  *puVar1 = uVar27 ^ uVar30;
  uVar30 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar19 - ((ulonglong)uVar9 ^ 0x6e5c58ea)) =
       (*(ulonglong *)(lVar19 - (uVar32 ^ 0x5c6e6405)) ^ uVar23 | uVar27) ^ uVar30;
  uVar38 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar26 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar36 = *(ulonglong *)(lVar19 + -0x890) ^ uVar38 ^ uVar30 ^ uVar28 ^
           *(ulonglong *)(lVar19 + -0x588);
  *(ulonglong *)(lVar19 + -0xac0) = uVar36;
  uVar12 = DAT_182670b08;
  *(ulonglong *)(lVar19 + -0xa18) =
       (uVar36 ^ uVar38) + (uVar43 ^ *(ulonglong *)(lVar19 + -0x9e0)) ^ uVar26;
  uVar11 = _DAT_18267097c;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar19 + -0x6b8) =
       (*(ulonglong *)(lVar19 - (uVar20 ^ 0xfff7f51f)) ^ uVar38) << 0x2e ^ uVar31;
  uVar12 = DAT_182670a78;
  uVar27 = CONCAT44(uVar11,uVar11);
  puVar29 = (ulonglong *)(lVar19 - (uVar40 ^ 0xe93539cb));
  uVar30 = (ulonglong)DAT_1826707f4;
  *puVar29 = (uVar36 ^ uVar38) >> (((byte)uVar7 ^ 0x3f) & 0x3f) ^ uVar27;
  uVar36 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar19 + -0xbb0) =
       (*(ulonglong *)(lVar19 - (uVar30 ^ 0xe600d601)) ^ uVar31 |
       uVar27 ^ *(ulonglong *)(lVar19 + -0xcf8)) ^ uVar36;
  *(ulonglong *)(lVar19 - (uVar40 ^ 0xe93535c3)) =
       (CONCAT44(uVar4,DAT_1826707b0) ^ 0xddcb0945949941c9) -
       (CONCAT44(uVar22,uVar22) ^ 0xfd19a9f430343125);
  uVar31 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar19 - (uVar45 ^ 0xcacab9df)) =
       *(ulonglong *)(lVar19 + -0xbb0) ^ uVar31 ^ uVar36 ^ uVar26 ^ *(ulonglong *)(lVar19 + -0xa18);
  uVar47 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  uVar36 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar19 + -0x610) =
       (*(ulonglong *)(lVar19 + -0x890) ^ uVar28) + (uVar48 ^ *(ulonglong *)(lVar19 + -0xd88)) ^
       uVar47;
  uVar11 = DAT_1826707fc;
  *(ulonglong *)(lVar19 + -0x3b0) =
       CONCAT44(uVar4,uVar37) ^ *(ulonglong *)(lVar19 + -0xac0) ^ uVar38 ^ 0x34ed84184b43f52e;
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar30 = *(ulonglong *)(lVar19 + -0xd88);
  *puVar46 = (uVar48 ^ *(ulonglong *)(lVar19 + -0xd88)) << 0xc ^ uVar36;
  *(ulonglong *)(lVar19 + -0x410) = (uVar30 >> 0x20 ^ uVar41) >> 0x14 ^ uVar27;
  uVar4 = DAT_1826707d0;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar19 - ((ulonglong)DAT_1826707f4 ^ 0xe600d689)) =
       *(ulonglong *)(lVar19 - ((ulonglong)DAT_1826707d0 ^ 0x6e5c5b3a)) ^ uVar23 | 0xbb81f08920efcba
  ;
  uVar30 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xb99e2ce5)) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x410) | *puVar46 ^ uVar36) ^ uVar30;
  uVar23 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x4724c798)) =
       *(ulonglong *)(lVar3 - (uVar32 ^ 0x5c6e6b95)) ^ uVar23 ^ uVar30 ^ uVar47 ^
       *(ulonglong *)(lVar3 + -0x610);
  uVar27 = uVar23 ^ *(ulonglong *)(lVar3 + -0x998);
  uVar21 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar20 ^ 0xfff7f5c7)) ^ uVar26) + uVar27 ^ uVar21;
  uVar11 = DAT_182670870;
  lVar19 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670970,DAT_182670970);
  uVar30 = (ulonglong)DAT_1826707e0;
  uVar28 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar23 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar4 ^ 0x6e5c54fa)) ^ uVar23) << 0x3a;
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar27 >> ((bVar15 ^ 6) & 0x3f) ^ uVar28;
  uVar27 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar19 + -0x588) = uVar23 ^ uVar26;
  *(ulonglong *)(lVar19 - (uVar25 ^ 0x4724c8b8)) =
       (*(ulonglong *)(lVar19 - (uVar30 ^ 0xb8d3383f)) ^ uVar28 | uVar23) ^ uVar27;
  uVar26 = CONCAT44(DAT_182670af4,DAT_182670af4);
  *(ulonglong *)(lVar19 + -0xcf8) =
       uVar26 ^ uVar27 ^ uVar21 ^ *puVar1 ^ *(ulonglong *)(lVar19 + -0x6b8);
  uVar36 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar23 = (uVar47 ^ *puVar18) + (*puVar33 ^ uVar31) ^ uVar36;
  *(ulonglong *)(lVar19 + -0xf0) = uVar23;
  uVar11 = DAT_182670a24;
  *(byte *)(lVar19 + -0x7f4) =
       *(byte *)(*(ulonglong *)(lVar19 + -0x450) ^ uVar44) ^ (byte)DAT_182670a40;
  lVar19 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar30 = *puVar33;
  bVar16 = (byte)DAT_1826707e8;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (*puVar33 ^ uVar31) << (((byte)uVar8 ^ 0xc9) & 0x3f) ^ uVar27;
  uVar12 = DAT_1826709e8;
  uVar30 = (uVar30 ^ uVar31) >> ((bVar16 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar19 + -0x890) = uVar30 ^ CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar11 = DAT_182670948;
  lVar19 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xfff7f46f)) ^ uVar27 | uVar30) ^ uVar31;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar38 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *(ulonglong *)(lVar19 + -0x3b0) =
       *(ulonglong *)(lVar19 - (uVar32 ^ 0x5c6e689d)) ^ uVar28 ^ uVar31 ^ uVar36 ^ uVar23;
  *(ulonglong *)(lVar19 - (uVar25 ^ 0x4724c388)) =
       (*(ulonglong *)(lVar19 - (uVar45 ^ 0xcacabc0f)) ^ uVar28) + (uVar21 ^ *puVar1) ^ uVar38;
  lVar19 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar30 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       (uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0x3b0)) << (((byte)uVar7 ^ 0xd) & 0x3f) ^ uVar27;
  *(ulonglong *)(lVar19 - (uVar40 ^ 0xe9353303)) =
       (*(ulonglong *)(lVar19 - (uVar30 ^ 0x42012fd5)) ^ uVar28) >> (((byte)uVar6 ^ 0x7d) & 0x3f) ^
       uVar35;
  uVar13 = DAT_182670a08;
  uVar30 = *(ulonglong *)(lVar19 + -0xf0);
  uVar23 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar21 = (uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x630) |
           uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x658)) ^ uVar23;
  *puVar46 = uVar21;
  uVar11 = DAT_1826708fc;
  *(ulonglong *)(lVar19 + -0x410) =
       *(ulonglong *)(lVar19 - (uVar45 ^ 0xcacab57f)) ^ uVar31 ^ 0xad727c12b50e1199;
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar28 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar19 + -0x9c8) =
       *(ulonglong *)(lVar19 - ((ulonglong)DAT_1826707b0 ^ 0x2d259331)) ^ uVar27 ^ uVar21 ^ uVar23 ^
       uVar38;
  *(ulonglong *)(lVar19 - ((ulonglong)DAT_1826707e4 ^ 0x76fdebfd)) =
       (uVar36 ^ uVar30) + (uVar26 ^ *(ulonglong *)(lVar19 + -0xcf8)) ^ uVar28;
  uVar10 = DAT_1826707f0;
  uVar21 = CONCAT44(DAT_18267098c,DAT_18267098c);
  uVar31 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar19 - (uVar32 ^ 0x5c6e6bc5)) =
       (uVar26 ^ *(ulonglong *)(lVar19 + -0xcf8)) << ((bVar15 ^ 0x20) & 0x3f) ^ uVar21;
  uVar12 = DAT_182670928;
  uVar4 = DAT_1826707a8;
  bVar16 = (byte)DAT_1826707d8;
  uVar36 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *(ulonglong *)(lVar19 - ((ulonglong)DAT_1826707f4 ^ 0xe600d531)) =
       (uVar26 ^ *(ulonglong *)(lVar19 + -0xcf8)) >> ((bVar16 ^ 0xdb) & 0x3f) ^ uVar36;
  uVar11 = DAT_1826708c4;
  uVar9 = DAT_1826707e0;
  *(ulonglong *)(lVar19 + -0x9e0) =
       *(ulonglong *)
        (*(ulonglong *)(lVar19 - ((ulonglong)uVar4 ^ 0xe272812d)) ^ CONCAT44(uVar12,uVar12)) ^
       uVar24;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar24 = (uVar36 ^ *(ulonglong *)(lVar19 + -0x588) | uVar21 ^ *(ulonglong *)(lVar19 + -0x998)) ^
           uVar30;
  *(ulonglong *)(lVar19 + -0x6b8) = uVar24;
  uVar6 = DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       CONCAT44(DAT_1826707b4,uVar10) ^ 0x9ac0e47df1c54ca8 |
       CONCAT44(uVar5,uVar9) ^ 0x981b41516b582972;
  uVar12 = DAT_1826709dc;
  uVar4 = DAT_1826707ac;
  lVar19 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar32 = (ulonglong)DAT_1826707ac;
  uVar24 = uVar21 ^ uVar24 ^ uVar30 ^ uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0xa18);
  uVar30 = *(ulonglong *)(DAT_1826707a0 + -0xd88);
  *puVar33 = uVar24;
  uVar11 = DAT_1826709bc;
  uVar35 = CONCAT44(uVar6,DAT_1826707d0);
  *(ulonglong *)(lVar19 + -0x890) =
       (CONCAT44(uVar10,DAT_1826707ec) ^ 0x139f5ac0f00153de) <<
       (((byte)uVar13 ^ *(byte *)puVar46) & 0x3f);
  uVar36 = CONCAT44(uVar11,uVar11);
  uVar21 = (uVar21 ^ uVar24) + (uVar35 ^ 0x935628bdbdac931a);
  *(ulonglong *)(lVar19 + -0xbb0) = uVar21 ^ uVar36;
  *puVar1 = uVar21 >> (((byte)uVar12 ^ (byte)uVar24) & 0x3f);
  uVar21 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar19 + -0x3b0) =
       (CONCAT44(uVar4,uVar22) ^ 0xa789e8a7b1eac972) + (uVar38 ^ uVar30) ^ uVar21;
  *(ulonglong *)(lVar19 - (uVar25 ^ 0x4724c830)) =
       CONCAT44(uVar9,uVar8) ^ 0xc90f9c1a877d7d6c |
       CONCAT44(uVar7,DAT_1826707dc) ^ 0xbf4e3b3ba2f2279d;
  uVar38 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar19 + -0x658) =
       (*(ulonglong *)(lVar19 + -0xbb0) ^ uVar36) + (uVar21 ^ *(ulonglong *)(lVar19 + -0x3b0)) ^
       uVar38;
  uVar5 = DAT_1826707d4;
  lVar3 = DAT_1826707a0;
  bVar42 = (byte)uVar4;
  *(int *)(lVar19 - ((ulonglong)DAT_1826707d4 ^ 0x5d626a60)) =
       *(int *)(lVar19 + -0xb54) - *(int *)(lVar19 - (uVar25 ^ 0x4724c88c));
  uVar11 = DAT_182670aac;
  uVar26 = (*(ulonglong *)(lVar3 + -0xbb0) ^ uVar36) << ((bVar42 ^ 0x6b) & 0x3f);
  bVar17 = (byte)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0xac0) = uVar26 ^ CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar4 = DAT_1826709c4;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar25 = (ulonglong)DAT_1826709c4;
  *(ulonglong *)(lVar3 + -0x410) =
       (*(ulonglong *)(lVar3 + -0xbb0) ^ uVar36) >> ((bVar17 ^ 0xd7) & 0x3f) ^ uVar30;
  uVar11 = DAT_1826707f8;
  uVar36 = CONCAT44(uVar4,uVar4);
  uVar24 = CONCAT44(DAT_18267091c,DAT_18267091c);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x5d626a4c)) ^ uVar30 | uVar26) ^ uVar24;
  uVar26 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xcf8) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0xfff7ff2f)) ^ *(ulonglong *)(lVar3 + -0x658) ^ uVar26 ^
       uVar24 ^ uVar38;
  uVar6 = DAT_1826707d8;
  uVar4 = DAT_1826707b4;
  uVar24 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f4 ^ 0xe600d959)) =
       (*(ulonglong *)(lVar3 - (uVar31 ^ 0xe273a5a5)) ^ uVar27) +
       (CONCAT44(uVar9,uVar37) ^ 0xdd269dc491dfd4a8) ^ uVar36;
  uVar9 = DAT_1826707e8;
  uVar5 = DAT_1826707d4;
  lVar19 = (uVar35 ^ 0xc637739757975b2e) + (uVar21 ^ *(ulonglong *)(lVar3 + -0x3b0));
  uVar20 = (ulonglong)DAT_1826707d4;
  *(longlong *)(lVar3 + -0x998) = lVar19;
  uVar30 = (CONCAT44(uVar9,uVar6) ^ 0x7bd81926b2c2f159) + (uVar28 ^ *(ulonglong *)(lVar3 + -0xa18));
  *(ulonglong *)(lVar3 + -0x588) = uVar30 ^ uVar43;
  uVar11 = DAT_182670874;
  *(ulonglong *)(lVar3 + -0x610) = lVar19 - (CONCAT44(uVar7,uVar4) ^ 0x54bd140ee0bced79);
  uVar27 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0xe2728a95)) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0x5d6267bc)) ^ uVar36) + uVar30 ^ uVar27;
  lVar19 = DAT_1826707a0;
  uVar30 = *(ulonglong *)(lVar3 + -0x9e0);
  uVar21 = (uVar30 ^ uVar36) << ((bVar42 ^ 0x75) & 0x3f);
  uVar20 = (ulonglong)DAT_1826707ec;
  *puVar46 = uVar21 ^ CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar11 = DAT_182670854;
  *(ulonglong *)(lVar19 + -0x890) =
       *(ulonglong *)(lVar19 - (uVar20 ^ 0xd2d264ee)) ^ uVar43 ^ 0x851308ebd262e7c6;
  uVar25 = (uVar30 >> 0x20 ^ uVar25) >> 0x10;
  *puVar33 = uVar25 ^ CONCAT44(uVar11,uVar11);
  uVar20 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar30 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar19 - (uVar40 ^ 0xe935380b)) = (uVar25 | uVar21) ^ uVar20;
  uVar25 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar30 = *(ulonglong *)(lVar19 - (uVar30 ^ 0x4201215d)) ^ *(ulonglong *)(lVar19 + -0x6b8) ^ uVar25
           ^ uVar20 ^ uVar27;
  *(ulonglong *)(lVar19 + -0xd88) = uVar30;
  *(ulonglong *)(lVar19 - ((ulonglong)uVar4 ^ 0x74a0e7b0)) =
       (*(ulonglong *)(lVar19 + -0x658) ^ uVar38) + (uVar30 ^ uVar25) ^ uVar39;
  uVar21 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar19 - (uVar32 ^ 0x27d0bd5)) =
       (uVar25 ^ *(ulonglong *)(lVar19 + -0xd88)) << ((bVar16 ^ 0xcf) & 0x3f) ^ uVar21;
  uVar11 = DAT_1826709f8;
  uVar30 = (ulonglong)DAT_1826707e0;
  uVar20 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar19 + -0xac0) =
       (uVar25 ^ *(ulonglong *)(lVar19 + -0xd88)) >> ((bVar15 ^ 0xc) & 0x3f) ^ uVar20;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar19 - ((ulonglong)DAT_1826707f4 ^ 0xe600d4a9)) =
       (*(ulonglong *)(lVar19 - (uVar30 ^ 0xb8d33b1f)) ^ uVar20 |
       *(ulonglong *)(lVar19 + -0xbb0) ^ uVar21) ^ uVar25;
  uVar30 = (ulonglong)DAT_182670b14;
  *(ulonglong *)(lVar19 - ((ulonglong)DAT_1826707e4 ^ 0x76fde115)) =
       uVar34 ^ uVar39 ^ *(ulonglong *)(lVar19 + -0x410) ^ uVar25 ^ *(ulonglong *)(lVar19 + -0x630);
  *(byte *)(lVar19 + -0x171) =
       *(byte *)(*(ulonglong *)(lVar19 + -0x390) ^ uVar30) ^ (byte)DAT_182670a40;
  uVar30 = (*(ulonglong *)(lVar19 - (uVar45 ^ 0xcacab347)) ^ uVar26) +
           (*(ulonglong *)(lVar19 + -0x6b8) ^ uVar27);
  *(ulonglong *)(lVar19 + -0x9c8) = uVar30 ^ uVar23;
  uVar11 = DAT_1826709c0;
  *(ulonglong *)(lVar19 + -0x3b0) = (CONCAT44(uVar22,uVar5) ^ 0x778a6dd72683889c) + uVar30;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar19 + -0xa18) =
       (*(ulonglong *)(lVar19 + -0xcf8) ^ uVar26) << (((byte)uVar5 ^ 0x65) & 0x3f) ^ uVar28;
  lVar19 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (*puVar29 ^ uVar26) >> (((byte)uVar8 ^ 0xd8) & 0x3f) ^ uVar30;
  uVar27 = (ulonglong)DAT_1826707e8;
  uVar25 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar19 - (uVar25 ^ 0xd2d26776)) =
       (CONCAT44(uVar5,uVar8) ^ 0x8b392252b7a9bf4) >>
       (((byte)uVar13 ^ *(byte *)(lVar19 + -0x9c8)) & 0x3f);
  uVar12 = DAT_182670a54;
  uVar20 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar21 = (ulonglong)DAT_1826707b0;
  uVar30 = (*(ulonglong *)(lVar19 - (uVar27 ^ 0x406c2a18)) ^ uVar28 |
           *(ulonglong *)(lVar19 + -0x998) ^ uVar30) ^ uVar20;
  *(ulonglong *)(lVar19 + -0x588) = uVar30;
  uVar11 = DAT_182670810;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar20 = *(ulonglong *)(lVar19 - (uVar21 ^ 0x2d259771)) ^ uVar23 ^ uVar28 ^ uVar30 ^ uVar20;
  *(uint *)(lVar19 + -0x9ec) =
       (DAT_1826707d0 ^ 0xa1421344) >> ((byte)*(undefined4 *)(lVar19 + -0x14) & 0x1f);
  *(ulonglong *)(lVar19 + -0x890) = uVar20;
  *(ulonglong *)(lVar19 - (uVar40 ^ 0xe9353cd3)) =
       (*(ulonglong *)(lVar19 - (uVar24 ^ 0x335aacb)) ^ uVar39) + (uVar20 ^ uVar28) ^
       CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182670884;
  uVar20 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *puVar46 = (*(ulonglong *)(lVar19 - (uVar27 ^ 0x406c2890)) ^ uVar28) <<
             (((byte)uVar4 ^ 0x97) & 0x3f) ^ uVar20;
  uVar30 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar19 - (uVar25 ^ 0xd2d26706)) =
       (*(ulonglong *)(lVar19 + -0x890) ^ uVar28) >> (((byte)uVar37 ^ 0x1a) & 0x3f) ^ uVar30;
  *puVar1 = (*puVar33 ^ uVar30 | *puVar46 ^ uVar20) ^ CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar2 ^ uVar37;
  return;
}



############ FUN_ 180cbff80 size=5801 ############

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

void FUN_180cbff80(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  byte bVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  int iVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  uint uVar52;
  ulonglong uVar53;
  byte local_res20;
  byte local_108;
  byte local_c8;
  ulonglong uVar32;
  
  uVar12 = DAT_182670a5c;
  uVar18 = DAT_1826707d8;
  uVar10 = DAT_1826707c8;
  iVar9 = DAT_1826707c4;
  uVar7 = DAT_1826707b0;
  uVar6 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar50 = (ulonglong)DAT_1826707c8;
  uVar16 = DAT_1826707b4 - DAT_1826707c8;
  uVar30 = DAT_1826707cc & DAT_1826707b0;
  uVar44 = (ulonglong)DAT_1826707d8;
  uVar31 = uVar30 ^ 0x65845c47;
  uVar32 = (ulonglong)uVar31;
  uVar52 = DAT_1826707e4 ^ DAT_1826707e0;
  DAT_1826707f0 = DAT_1826707c0 + DAT_1826707ac;
  iVar27 = DAT_1826707c4 * DAT_1826707d8;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670e04);
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670e04) ^ DAT_1826707cc;
  uVar34 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar49 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar29 = (ulonglong)DAT_1826707b0;
  DAT_1826707bc = iVar27;
  DAT_1826707d0 = uVar31;
  DAT_1826707dc = uVar52;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (CONCAT44(_DAT_182670ad4,_DAT_182670ad4) ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) -
       (*(ulonglong *)(DAT_1826707a0 + -0xd38) ^ uVar34) ^ uVar49;
  puVar37 = (ulonglong *)(lVar3 - (uVar29 ^ 0x3aed80e6));
  uVar24 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x656d5df9)) =
       (CONCAT44(DAT_18267089c,DAT_18267089c) ^ *puVar37) <<
       ((*(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c0 ^ 0x3e16b119)) ^ (byte)uVar12) & 0x3f);
  lVar3 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar33 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f0 ^ 0x7c2d7c8a)) =
       uVar24 ^ uVar33 ^ uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0) ^
       *(ulonglong *)(DAT_1826707a0 + -0x610);
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar35 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x3e16b8e9)) ^ uVar38) >>
           (((byte)iVar27 ^ 5) & 0x3f);
  uVar24 = (ulonglong)DAT_1826707c0;
  uVar25 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar35 ^ uVar28;
  uVar13 = DAT_182670aa0;
  uVar5 = DAT_1826707f4;
  lVar3 = DAT_1826707a0;
  uVar40 = (ulonglong)DAT_1826707f4;
  uVar45 = (*(ulonglong *)(lVar4 - (uVar24 ^ 0x3e16b8e9)) ^ uVar38) << 7;
  *(ulonglong *)(lVar4 + -0x588) = uVar45 ^ uVar25;
  uVar12 = DAT_182670814;
  uVar11 = DAT_1826707e8;
  uVar24 = *(ulonglong *)(lVar3 + -0x610);
  uVar38 = CONCAT44(uVar13,uVar13);
  uVar45 = (uVar45 | uVar35) ^ uVar38;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar45;
  DAT_1826707b8 = uVar5 - uVar11;
  uVar25 = (ulonglong)DAT_1826707b8;
  uVar35 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0xb70) =
       (CONCAT44(DAT_1826707b8,uVar5) ^ 0xe915252059e13be7) >>
       ((*(byte *)(lVar3 - ((ulonglong)uVar11 ^ 0xfbedd7f6)) ^ (byte)uVar12) & 0x3f);
  uVar12 = DAT_18267086c;
  uVar26 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(lVar3 + -0x118) =
       (uVar33 ^ uVar24) - (*(ulonglong *)(lVar3 - (uVar35 ^ 0xed3a034c)) ^ uVar38) ^ uVar26;
  lVar4 = DAT_1826707a0;
  local_res20 = (byte)uVar5;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar38 = *(ulonglong *)(lVar3 + -0xbb0) ^ uVar45 ^ uVar33 ^ uVar38 ^ uVar49;
  uVar41 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar38;
  uVar12 = DAT_182670874;
  *(ulonglong *)(lVar4 + -0x420) = (uVar38 ^ uVar33) >> ((local_res20 ^ 0x34) & 0x3f) ^ uVar41;
  lVar3 = DAT_1826707a0;
  bVar21 = (byte)uVar10;
  uVar24 = CONCAT44(uVar12,uVar12);
  uVar46 = (ulonglong)uVar52;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar52 ^ 0xd13a3a7c)) =
       (uVar38 ^ uVar33) << ((bVar21 ^ 0xbe) & 0x3f) ^ uVar24;
  uVar5 = DAT_1826707a8;
  uVar33 = (ulonglong)DAT_1826707a8;
  uVar22 = DAT_1826707a8 * DAT_1826707e4;
  uVar38 = (ulonglong)uVar22;
  puVar36 = (ulonglong *)(lVar3 - (uVar33 ^ 0x856bb7b));
  uVar39 = CONCAT44(DAT_182670b04,DAT_182670b04);
  DAT_1826707ec = uVar22;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x318ac5e4)) =
       (uVar24 ^ *(ulonglong *)(lVar3 + -0xf0) | uVar41 ^ *puVar36) ^ uVar39;
  uVar45 = CONCAT44(DAT_182670aec,DAT_182670aec);
  uVar24 = (*(ulonglong *)(lVar3 + -0xbb0) ^ uVar49) -
           (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xed3a02b4)) ^
           CONCAT44(DAT_182670a38,DAT_182670a38));
  *(int *)(lVar3 + -0x2d4) =
       *(int *)(lVar3 + -0x540) >> ((byte)*(undefined4 *)(lVar3 + -0x814) & 0x1f);
  uVar12 = DAT_1826709ac;
  *(ulonglong *)(lVar3 + -0x660) = uVar24 ^ uVar45;
  uVar8 = DAT_1826707b4;
  uVar53 = CONCAT44(uVar12,uVar12);
  uVar48 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xed3a0034)) =
       uVar24 - (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xed3a04ac)) ^ uVar39) ^ uVar53;
  uVar45 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  uVar49 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar23 = DAT_1826707d0 ^ 0xd2da6d88;
  *(ulonglong *)(lVar3 + -0x7d8) =
       (uVar39 ^ *(ulonglong *)(lVar3 + -0x220)) -
       (*(ulonglong *)(lVar3 - (uVar48 ^ 0xdf7efbf1)) ^ uVar45) ^ uVar49;
  *(uint *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xed3a0a80)) =
       uVar23 << (((byte)uVar11 ^ 0x2c) & 0x1f);
  uVar24 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0xed3a0e1c)) =
       *(ulonglong *)(lVar3 + -0xd38) ^ *(ulonglong *)(lVar3 + -0x118) ^ uVar24 ^ uVar26 ^ uVar34;
  uVar42 = CONCAT44(DAT_18267093c,DAT_18267093c);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0x856b3bb)) =
       (uVar24 ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) >> (((byte)iVar27 ^ 0x2c) & 0x3f) ^ uVar42;
  lVar3 = DAT_1826707a0;
  uVar39 = (*(ulonglong *)(DAT_1826707a0 - (uVar46 ^ 0xd13a321c)) ^ uVar24) <<
           (((byte)DAT_1826707cc ^ 0xee) & 0x3f);
  uVar47 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar39 ^ CONCAT44(DAT_182670884,DAT_182670884);
  uVar12 = DAT_182670860;
  lVar4 = DAT_1826707a0;
  uVar39 = *(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x9984576c)) ^ uVar42 | uVar39;
  uVar24 = *(ulonglong *)(DAT_1826707a0 + -0x118);
  *(undefined8 *)(DAT_1826707a0 + -0x4c8) = 0x25de4c4d64dcc974;
  uVar13 = DAT_182670898;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar39 ^ uVar47;
  uVar24 = (uVar24 ^ uVar26) - (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0x998));
  uVar51 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar4 + -0xa18) = uVar24 ^ CONCAT44(uVar13,uVar13);
  uVar12 = DAT_182670844;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x3aed898e)) = uVar24 - uVar39 ^ uVar51;
  lVar3 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (CONCAT44(uVar6,iVar9) ^ 0xc1e943de21c3163f) -
       (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(DAT_1826707a0 + -0xac0)) ^ uVar24;
  uVar26 = CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar24 = (*(ulonglong *)(lVar3 - (uVar25 ^ 0xa9f080c)) ^ uVar47) +
           (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xdf7ef409)) ^ uVar24) ^ uVar26;
  *(uint *)(lVar3 + -0xc34) = (DAT_1826707f4 ^ 0xcda8a019) + *(int *)(lVar3 + -0xb54);
  uVar12 = DAT_182670830;
  *(ulonglong *)(lVar3 + -0xb70) = uVar24;
  uVar25 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e0 ^ 0x3c003a10)) =
       *(ulonglong *)(lVar3 - (uVar29 ^ 0x3aed8abe)) ^ uVar25 ^ uVar26 ^ uVar53 ^ uVar24;
  uVar26 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar24 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar3 + -0x5c0) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0x610)) >> (((byte)uVar22 ^ 0xe4) & 0x3f) ^ uVar26;
  uVar12 = DAT_1826709d0;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c0 ^ 0x3e16ba79)) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x318ac1d4)) ^ uVar25) << 0x20 ^ uVar24;
  uVar43 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0x7c2d78b2)) =
       *(ulonglong *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0xa58)) ^ uVar43;
  uVar42 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  uVar25 = (ulonglong)DAT_182670a44;
  puVar1 = (ulonglong *)(lVar3 + -0x6b8);
  uVar39 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xed3a02ac)) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x318ac19c)) ^ uVar24 |
       uVar26 ^ *(ulonglong *)(lVar3 + -0x5c0)) ^ uVar42;
  uVar47 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar3 + -0x438) =
       (uVar53 ^ *puVar1) - (uVar42 ^ *(ulonglong *)(lVar3 + -0x420)) ^ uVar47;
  uVar12 = DAT_182670988;
  uVar24 = *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x45faa5ed)) ^ uVar39 ^ uVar51 ^ uVar49 ^
           *(ulonglong *)(lVar3 + -0x588);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar24;
  uVar53 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xe9c1d85c)) = uVar24 >> 0x20 ^ uVar53 ^ uVar25;
  puVar19 = (ulonglong *)(DAT_1826707a0 - (uVar46 ^ 0xd13a3cec));
  uVar24 = (*(ulonglong *)(lVar3 - (uVar33 ^ 0x856b4eb)) ^ uVar39) << 0x20;
  *(ulonglong *)(lVar3 + -0x220) = uVar24 ^ CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar10 = DAT_182670ab4;
  lVar3 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_182670ab4;
  uVar39 = CONCAT44(DAT_182670934,DAT_182670934);
  uVar49 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  puVar20 = (ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0x68ce002));
  uVar40 = (*puVar19 ^ uVar53 | uVar24) ^ uVar49;
  puVar19 = (ulonglong *)(DAT_1826707a0 + -0x588);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar40;
  uVar12 = DAT_182670abc;
  uVar8 = DAT_182670a94;
  uVar24 = (ulonglong)DAT_182670a94;
  *(ulonglong *)(lVar3 + -0x890) = (uVar51 ^ *puVar19) - (*puVar20 ^ uVar49) ^ uVar39;
  lVar3 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar8,uVar8);
  uVar40 = uVar25 ^ uVar49 ^ uVar47 ^ uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x438);
  uVar49 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar40;
  *(ulonglong *)(lVar3 + -0x1b8) = (uVar40 >> 0x20 ^ uVar24) >> 0x1a ^ uVar49;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x318ac30c)) =
       (uVar40 ^ uVar25) << (((byte)uVar18 ^ 0x3a) & 0x3f) ^ uVar34;
  uVar40 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar3 + -0x998) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x4c8) | uVar49 ^ *(ulonglong *)(lVar3 + -0x1b8)) ^ uVar40;
  uVar12 = DAT_182670940;
  *(ulonglong *)(lVar3 + -0x118) =
       ((ulonglong)(uVar10 >> 0x14) | uVar26 << 0xc) ^ *(ulonglong *)(lVar3 + -0xd38) >> 0x14;
  uVar24 = uVar39 ^ uVar42 ^ *(ulonglong *)(lVar3 + -0x420) ^ *(ulonglong *)(lVar3 + -0x890);
  uVar34 = CONCAT44(uVar12,uVar12);
  local_c8 = (byte)uVar6;
  uVar26 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *(ulonglong *)(lVar3 + -0xa18) =
       (uVar47 ^ *(ulonglong *)(lVar3 + -0x438)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0x7c2d71da)) ^ uVar40) ^ uVar34;
  uVar12 = _DAT_1826709e0;
  *(ulonglong *)(lVar3 + -0x6f0) = uVar24 ^ uVar26;
  uVar42 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x656d5589)) = uVar24 >> ((local_c8 ^ 0x37) & 0x3f) ^ uVar42;
  uVar25 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e0 ^ 0x3c003770)) =
       (*(ulonglong *)(lVar3 - (uVar48 ^ 0xdf7efb31)) ^ uVar26) << (((byte)iVar9 ^ 0xeb) & 0x3f) ^
       uVar25;
  uVar12 = DAT_182670840;
  *(ulonglong *)(lVar3 + -0x610) =
       (CONCAT44(uVar7,iVar27) ^ 0x75939b144b803b77) << (((byte)DAT_1826707e4 ^ 0xae) & 0x3f);
  lVar3 = DAT_1826707a0;
  uVar49 = CONCAT44(uVar12,uVar12);
  uVar24 = *(ulonglong *)(DAT_1826707a0 + -0x890);
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0xb70) ^ uVar25 |
           *(ulonglong *)(DAT_1826707a0 + -0x9c8) ^ uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar25 ^ uVar49;
  uVar12 = DAT_182670ab8;
  *(ulonglong *)(lVar3 + -0x5c0) =
       (CONCAT44(uVar16,uVar52) ^ 0x688e6c81f2373451) -
       (CONCAT44(iVar27,uVar5) ^ 0xe31b9fa103649f87);
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x658) = (uVar39 ^ uVar24) - uVar25 ^ uVar26;
  *(longlong *)(lVar3 - (uVar46 ^ 0xd13a3c34)) = 0x652d64a58f8dea44 << ((bVar21 ^ 0x99) & 0x3f);
  uVar25 = CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar24 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar3 + -0x7d8) =
       *(ulonglong *)(lVar3 + -0xf0) ^ uVar25 ^ uVar49 ^ uVar34 ^ *(ulonglong *)(lVar3 + -0xa18);
  uVar39 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(lVar3 - (uVar44 ^ 0xe9c1d58c)) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x7c2d7f9a)) ^ uVar25) >> (((byte)uVar31 ^ 0x6f) & 0x3f) ^
       uVar39;
  uVar24 = (*(ulonglong *)(lVar3 - (uVar33 ^ 0x856b883)) ^ uVar25) << (((byte)uVar5 ^ 0x49) & 0x3f);
  *(ulonglong *)(lVar3 + -0x660) = uVar24 ^ CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x45faa015)) =
       (*(ulonglong *)(lVar3 + -0xbb0) ^ uVar39 | uVar24) ^ uVar43;
  uVar24 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *(ulonglong *)(lVar3 - (uVar50 ^ 0x99845e04)) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0xa18)) - (uVar43 ^ *(ulonglong *)(lVar3 + -0x220)) ^
       uVar24;
  uVar12 = DAT_1826708d0;
  uVar49 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar40 = *(ulonglong *)(lVar3 + -0x998) ^ *(ulonglong *)(lVar3 + -0x658) ^ uVar49 ^ uVar26 ^
           uVar40;
  *(ulonglong *)(lVar3 + -0xce0) = uVar40;
  uVar10 = DAT_1826707f0;
  uVar33 = CONCAT44(uVar12,uVar12);
  local_108 = (byte)uVar7;
  uVar42 = (ulonglong)DAT_1826707f0;
  uVar16 = DAT_1826707b0 | DAT_1826707f0;
  DAT_1826707d4 = uVar16;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xed3a0734)) =
       (uVar40 ^ uVar49) >> ((local_108 ^ 10) & 0x3f) ^ uVar33;
  uVar25 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x7eedf88e)) = (*puVar37 ^ uVar49) << 0x34 ^ uVar25;
  uVar33 = *(ulonglong *)(lVar3 - (uVar42 ^ 0x7c2d79fa)) ^ uVar33 |
           *(ulonglong *)(lVar3 + -0x4c8) ^ uVar25;
  *(ulonglong *)(lVar3 + -0xd38) = uVar33 ^ uVar41;
  uVar12 = DAT_182670a70;
  *(ulonglong *)(lVar3 + -0x118) = (*(ulonglong *)(lVar3 + -0x658) ^ uVar26) - uVar33 ^ uVar39;
  uVar25 = CONCAT44(uVar12,uVar12);
  uVar40 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar33 = uVar33 ^ uVar25 ^ uVar24 ^ *(ulonglong *)(lVar3 + -0x588);
  *(ulonglong *)(lVar3 + -0x438) = uVar33;
  *(ulonglong *)(lVar3 + -0x420) = (uVar33 ^ uVar25) >> ((local_108 ^ 0x1f) & 0x3f) ^ uVar40;
  uVar15 = DAT_182670b0c;
  uVar33 = (uVar33 ^ uVar25) << (((byte)uVar16 ^ 0x61) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6f0) = uVar33 ^ CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar13 = DAT_182670a4c;
  uVar12 = DAT_182670a48;
  lVar4 = DAT_1826707a0;
  uVar33 = *(ulonglong *)(lVar3 - (uVar29 ^ 0x3aed8826)) ^ uVar40 | uVar33;
  *(ulonglong *)(lVar3 + -0x610) = uVar33 ^ CONCAT44(uVar15,uVar15);
  uVar14 = DAT_182670a74;
  puVar20 = (ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x7eedf846));
  uVar24 = (uVar24 ^ *(ulonglong *)(lVar4 + -0x588)) - (CONCAT44(uVar12,uVar12) ^ *puVar20);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar24 ^ CONCAT44(uVar13,uVar13);
  uVar5 = DAT_1826708ac;
  uVar12 = DAT_182670810;
  uVar25 = (ulonglong)DAT_1826708ac;
  uVar47 = CONCAT44(uVar14,uVar14);
  uVar49 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(lVar4 + -0xb70) =
       uVar24 - (*(ulonglong *)(lVar4 - (uVar29 ^ 0x3aed8a16)) ^ CONCAT44(uVar15,uVar15)) ^ uVar47;
  *(ulonglong *)(lVar4 - (uVar42 ^ 0x7c2d7d82)) =
       uVar33 - (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0xd88)) ^ uVar49;
  uVar18 = DAT_1826707c0 - DAT_1826707d0;
  uVar40 = CONCAT44(uVar5,uVar5);
  DAT_1826707e0 = uVar18;
  *(ulonglong *)(lVar4 + -0x890) =
       (CONCAT44(uVar18,DAT_1826707c0) ^ 0x6a22de9c6169b8c7) +
       (*(ulonglong *)(lVar4 + -0x118) ^ uVar39);
  *puVar1 = *(ulonglong *)(lVar4 - (uVar32 ^ 0x656d5d59)) ^ uVar43 ^ uVar40 ^ uVar39 ^
            *(ulonglong *)(lVar4 + -0x220);
  lVar3 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar18,uVar30);
  uVar24 = *puVar1;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar29 ^ 0x5a760c74ea0814f;
  uVar35 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar3 + -0x7d8) = (uVar24 >> 0x20 ^ uVar25) >> 1 ^ uVar35;
  lVar3 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0xd8a95450)) =
       (uVar24 ^ uVar40) << (((byte)uVar31 ^ 0x5e) & 0x3f) ^ uVar25;
  uVar33 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar25 = uVar35 ^ *(ulonglong *)(lVar3 + -0x7d8) | *(ulonglong *)(lVar3 + -0xbb0) ^ uVar25;
  *(ulonglong *)(lVar3 + -0x660) = uVar25 ^ uVar33;
  uVar26 = (uVar29 ^ 0x38afa4e635ccde28) >> (((byte)uVar15 ^ *(byte *)(lVar3 + -0x610)) & 0x3f);
  uVar24 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar3 + -0xa18) = uVar26;
  uVar12 = DAT_1826709c0;
  *(ulonglong *)(lVar3 + -0x998) =
       (*(ulonglong *)(lVar3 + -0x118) ^ uVar39) - (*(ulonglong *)(lVar3 + -0x630) ^ uVar45) ^
       uVar24;
  uVar8 = DAT_1826707ec;
  uVar5 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c0 ^ 0x3e16b5b9)) ^ uVar24) - uVar25 ^
       uVar29;
  *(ulonglong *)(lVar3 + -0x1b8) = CONCAT44(uVar7,uVar5) ^ uVar26 ^ 0xb109922104b52796;
  uVar12 = DAT_182670a40;
  lVar3 = DAT_1826707a0;
  DAT_1826707e4 = (uVar8 & 0xff0000 | uVar8 >> 0x10) >> 8 | (uVar8 << 0x10 | uVar8 & 0xff00) << 8;
  uVar24 = (ulonglong)DAT_1826707e4;
  uVar45 = CONCAT44(DAT_182670964,DAT_182670964);
  uVar25 = CONCAT44(uVar22,DAT_1826707e4) ^ *(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar45 ^ uVar35
           ^ 0xce75383b3b3875ce;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar25;
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar24 = (*(ulonglong *)(lVar3 - (uVar38 ^ 0x318ac1a4)) ^ uVar33) +
           (*(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xc4c78ef9)) ^ uVar45) ^ uVar35;
  puVar19 = (ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x318acb24));
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar24;
  uVar33 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar4 + -0xd38) = (uVar25 ^ uVar45) - (*puVar19 ^ uVar29);
  uVar24 = *(ulonglong *)(lVar4 - (uVar38 ^ 0x318accb4)) ^ uVar24 ^ uVar33 ^ uVar35 ^ uVar47;
  *(ulonglong *)(lVar4 + -0x438) = uVar24;
  uVar12 = DAT_182670824;
  *(ulonglong *)(lVar4 + -0x6f0) =
       (uVar24 ^ uVar33) >> (((byte)(uVar8 >> 0x18) ^ 0x34) & 0x3f) ^ uVar28;
  *puVar36 = (uVar24 ^ uVar33) << 0x3b ^ uVar40;
  uVar24 = uVar28 ^ *(ulonglong *)(lVar4 + -0x6f0) | *(ulonglong *)(lVar4 + -0x420) ^ uVar40;
  *(ulonglong *)(lVar4 + -0x588) = uVar24 ^ CONCAT44(DAT_182670910,DAT_182670910);
  uVar14 = DAT_182670978;
  uVar13 = DAT_1826708c4;
  *puVar20 = (*(ulonglong *)(lVar4 + -0xb70) ^ uVar47) - uVar24 ^ CONCAT44(uVar12,uVar12);
  uVar24 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x9c8) =
       *(ulonglong *)(lVar4 - (uVar32 ^ 0x656d5981)) ^ uVar24 ^ uVar29 ^ uVar49 ^
       *(ulonglong *)(lVar4 + -0xce0);
  bVar21 = (byte)DAT_1826707c0;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707cc ^ 0xc1e94b4e)) =
       CONCAT44(uVar18,uVar52) ^ 0xa0004afd63d08b5c | CONCAT44(uVar11,uVar6) ^ 0xe4006ee2cc523415;
  uVar12 = DAT_182670920;
  *(ulonglong *)(lVar4 + -0x220) =
       (uVar24 ^ *(ulonglong *)(lVar4 + -0x9c8)) >> ((bVar21 ^ 4) & 0x3f) ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar24 ^ *(ulonglong *)(lVar4 + -0x9c8)) - (CONCAT44(uVar10,uVar16) ^ 0xcb8c3b20ab2cd36a);
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar38 ^ 0x318ace0c)) ^ uVar24) <<
            ((local_res20 ^ 0x21) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar2 ^ uVar31;
  return;
}



############ FUN_ 180c68d30 size=4259 ############

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

void FUN_180c68d30(void)

{
  longlong *plVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  uint *puVar15;
  ulonglong uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar22;
  uint uVar23;
  byte bVar24;
  uint *puVar25;
  uint uVar26;
  uint uVar27;
  byte *pbVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar21;
  
  uVar30 = DAT_182670944;
  uVar27 = DAT_18267093c;
  uVar20 = DAT_182670900;
  uVar11 = DAT_1826707e8;
  uVar7 = DAT_1826707c4;
  uVar12 = DAT_1826707bc;
  uVar32 = DAT_1826707b8;
  uVar6 = DAT_1826707b4;
  lVar3 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707e8;
  uVar14 = (ulonglong)DAT_1826707b8;
  uVar26 = DAT_1826707b4 - DAT_1826707bc;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670cf8);
  uVar23 = DAT_1826707b8 + DAT_1826707e8;
  uVar10 = *(uint *)(&DAT_18260f760 + DAT_182670cf8) ^ DAT_1826707e8;
  uVar22 = (ulonglong)DAT_1826707bc;
  uVar17 = *(uint *)(DAT_1826707a0 + -0x8e0) ^ DAT_182670830 ^ DAT_182670ac4;
  DAT_1826707c8 = uVar26;
  DAT_1826707d4 = uVar23;
  *(byte *)(DAT_1826707a0 + -0x619) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar14 ^ 0xd69b41ed)) ^ (ulonglong)DAT_182670900) ^
       (byte)DAT_182670adc;
  *(uint *)(lVar3 + -0x9ec) = uVar17;
  uVar13 = (ulonglong)uVar6;
  uVar29 = DAT_1826707ac ^ 0xd9344d23;
  puVar35 = (uint *)(lVar3 - (uVar13 ^ 0x7d3fafa6));
  uVar19 = *puVar35;
  *(uint *)(lVar3 + -0x280) = uVar17 ^ uVar30 ^ DAT_182670830;
  uVar18 = DAT_1826707ac * uVar7;
  uVar21 = (ulonglong)uVar18;
  *(uint *)(lVar3 + -0x42c) = uVar19 ^ uVar27 ^ DAT_182670878;
  puVar15 = (uint *)(lVar3 - ((ulonglong)uVar7 ^ 0xaff6ffab));
  DAT_1826707c0 = uVar18;
  *puVar15 = uVar29 + 0x8a021bec;
  bVar24 = (byte)DAT_182670a3c;
  pbVar28 = (byte *)((CONCAT44(uVar18,uVar7) ^ 0xc5f00000aff6fd7f) * 0x20 +
                     (CONCAT44(uVar12,uVar26) ^ 0x5ed475b11e6b3538) +
                    *(longlong *)(DAT_1826707a0 + -0x30));
  *(ulonglong *)(DAT_1826707a0 + -0x4f8) = (ulonglong)pbVar28 ^ (ulonglong)DAT_1826708b4;
  lVar3 = DAT_1826707a0;
  bVar9 = *pbVar28 ^ bVar24 ^ (byte)DAT_182670adc;
  uVar19 = (bVar24 ^ bVar9) ^ DAT_182670adc;
  *(byte *)(DAT_1826707a0 + -0xc35) = bVar9;
  *(uint *)(lVar3 + -0x3d4) = uVar19;
  uVar19 = DAT_1826707ac;
  uVar30 = (uVar30 ^ *(uint *)(lVar3 + -0x280)) + uVar29 ^ DAT_182670914;
  uVar16 = (ulonglong)DAT_1826707ac;
  bVar24 = (byte)uVar23;
  *(uint *)(lVar3 + -0x814) = (uVar12 ^ 0x5024fd60) << ((bVar24 ^ 0x2c) & 0x1f);
  *(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0xaff6fbf3)) = uVar30;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x12100410)) =
       (CONCAT44(uVar11,uVar32) ^ 0xd5198ac7334a841) + 0x1fc4cb0e1043cece;
  uVar30 = *(uint *)(lVar3 + -0x68c) ^ DAT_182670914;
  uVar29 = *(uint *)(lVar3 + -0x3d4) ^ DAT_182670adc;
  uVar17 = uVar29 << ((bVar24 ^ 0x3e) & 0x1f) ^ DAT_182670a34;
  *(uint *)(lVar3 + -0xa34) = uVar17;
  *(uint *)(lVar3 + -0xc0c) = uVar30 - (uVar17 ^ DAT_182670a34) ^ uVar20;
  uVar17 = (*(uint *)(lVar3 - ((ulonglong)uVar23 ^ 0x16190e03)) ^ uVar27) *
           (*(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0xaff6f173)) ^ uVar20);
  *(uint *)(lVar3 + -0xc04) = uVar17 ^ DAT_182670a80;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       *(longlong *)(lVar3 - (uVar21 ^ 0xc5f003b0)) - (CONCAT44(uVar6,uVar19) ^ 0xbdd8c59fa6e4c5e8);
  uVar30 = DAT_182670954;
  lVar3 = DAT_1826707a0;
  uVar20 = DAT_1826707c0 ^ 0x1c43f2a3;
  uVar19 = (DAT_1826707c4 ^ 0xaff6fd72) * uVar29 ^ DAT_182670a08;
  *(uint *)(lVar4 + -0xc34) = uVar19;
  uVar29 = (uVar19 ^ DAT_182670a08) + uVar17 ^ DAT_1826707f8;
  *(uint *)(lVar4 + -0x7e4) = uVar29;
  uVar29 = uVar29 ^ DAT_1826707f8;
  uVar17 = uVar29 << 0xd ^ DAT_18267085c;
  uVar19 = DAT_1826707c4 ^ 0xd52018f6;
  *(ulonglong *)(lVar3 + -0x588) =
       CONCAT44(uVar26,uVar11) ^ 0x873629516a22f5e0 | CONCAT44(uVar12,uVar11) ^ 0x33c7b030a0e7813c;
  bVar9 = (byte)DAT_1826707b4;
  *(uint *)(lVar3 + -0x398) = uVar17;
  uVar17 = uVar17 ^ DAT_18267085c;
  uVar29 = uVar29 >> ((bVar9 ^ 0xf5) & 0x1f) ^ DAT_1826709cc;
  *(uint *)(lVar3 + -0x8e0) = uVar29;
  *(uint *)(lVar3 + -0x540) = (uVar29 ^ DAT_1826709cc | uVar17) ^ DAT_182670978;
  *(uint *)(lVar3 - (uVar14 ^ 0xd69b4a49)) = uVar20 - uVar19;
  uVar19 = DAT_182670848;
  uVar27 = (*(uint *)(lVar3 - (uVar22 ^ 0x5ed4719d)) ^ uVar27) +
           (*(uint *)(lVar3 - ((ulonglong)uVar12 ^ 0x5ed47ee5)) ^ DAT_182670848) ^ DAT_182670a58;
  uVar20 = *(uint *)(lVar3 + -0x540) ^ DAT_1826708c0 ^ DAT_182670978;
  *(uint *)(lVar3 + -0x2d4) = uVar27;
  uVar27 = uVar27 ^ DAT_18267082c ^ DAT_182670a58;
  *(uint *)(lVar3 + -0x280) = uVar20;
  *(ulonglong *)(lVar3 + -0xb70) = CONCAT44(uVar11,uVar32) ^ 0x12c4354016010787;
  *(uint *)(lVar3 + -0x814) = uVar27;
  lVar4 = DAT_1826707a0;
  puVar25 = (uint *)(lVar3 - (uVar34 ^ 0x3f7dccbe));
  uVar16 = (ulonglong)DAT_1826709dc;
  uVar11 = DAT_182670930 ^ DAT_1826708c0;
  *puVar25 = uVar27 ^ uVar30 ^ DAT_18267082c;
  *(uint *)(lVar3 + -0x68c) = uVar11 ^ *(uint *)(lVar3 + -0x280);
  bVar9 = (byte)DAT_182670a50;
  uVar36 = CONCAT44(uVar26,DAT_1826707ac);
  pbVar28 = (byte *)((CONCAT44(uVar26,uVar23) ^ 0x1e6b353516190a2f) * 0x20 +
                     (uVar36 ^ 0x1e6b353512100018) + *(longlong *)(DAT_1826707a0 + -0x30));
  *(ulonglong *)(DAT_1826707a0 + -0xdb8) = (ulonglong)pbVar28 ^ uVar16;
  lVar3 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x619) = *pbVar28 ^ bVar9 ^ (byte)DAT_182670adc;
  uVar11 = DAT_1826708b0;
  lVar5 = DAT_1826707a0;
  plVar1 = (longlong *)(DAT_1826707a0 + -0x548);
  *(uint *)(DAT_1826707a0 + -0xc0c) =
       (*(byte *)(lVar3 - (uVar34 ^ 0x3f7dc093)) ^ bVar9) ^ DAT_1826708b0;
  *(longlong *)(lVar5 - (uVar21 ^ 0xc5f00068)) = *plVar1 << 10;
  bVar9 = (byte)DAT_1826707b4;
  *(uint *)(lVar4 - ((ulonglong)uVar23 ^ 0x161909fb)) =
       (*(uint *)(DAT_1826707a0 - (uVar34 ^ 0x3f7dc006)) ^ DAT_182670930) +
       (DAT_1826707b4 ^ 0xb61be7c5) ^ DAT_1826709c0;
  uVar20 = (*(uint *)(lVar4 + -0xc0c) ^ uVar11) << ((bVar9 ^ 0xf7) & 0x1f);
  uVar16 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar4 + -0xc04) = uVar20 ^ uVar30;
  uVar27 = (*(uint *)(lVar4 - (uVar16 ^ 0x121003d4)) ^ DAT_1826709c0) - uVar20 ^ DAT_18267083c;
  *(uint *)(lVar4 + -0xc34) = uVar27;
  uVar20 = DAT_1826708d4;
  *(uint *)(lVar4 - ((ulonglong)uVar7 ^ 0xaff6fa9b)) =
       (*(uint *)(lVar4 - (uVar14 ^ 0xd69b4991)) ^ uVar30) * (uVar27 ^ DAT_18267083c) ^
       DAT_182670828;
  uVar11 = (*(uint *)(lVar4 + -0xc0c) ^ uVar11) * (DAT_1826707bc ^ 0x5ed475a9) ^ DAT_182670874;
  *(uint *)(lVar4 + -0x398) = uVar11;
  uVar11 = (*(uint *)(lVar4 + -0x7e4) ^ DAT_182670828) + (uVar11 ^ DAT_182670874);
  *(uint *)(lVar4 + -0x8e0) = uVar11 ^ uVar20;
  uVar27 = uVar11 << ((bVar24 ^ 0x22) & 0x1f) ^ DAT_182670904;
  *(ulonglong *)(lVar4 + -0x420) =
       *(ulonglong *)(lVar4 - (uVar14 ^ 0xd69b48d5)) >>
       ((byte)*(undefined8 *)(lVar4 + -0x410) & 0x3f);
  bVar24 = (byte)DAT_1826707c0;
  *(uint *)(lVar4 + -0x9ec) = uVar27;
  uVar27 = uVar27 ^ DAT_182670904;
  uVar11 = (*(uint *)(lVar4 - (uVar22 ^ 0x5ed47d51)) ^ uVar20) >> ((bVar24 ^ 0x13) & 0x1f) ^
           DAT_1826708b8;
  *(uint *)(lVar4 + -0x42c) = uVar11;
  *(uint *)(lVar4 - (uVar13 ^ 0x7d3fa832)) = (uVar27 | uVar11 ^ DAT_1826708b8) ^ DAT_182670a4c;
  uVar37 = uVar36 ^ 0x2e24885538e20341 | 0x519b778ac715fcbc;
  *(ulonglong *)(lVar4 + -0x400) = uVar37;
  *(uint *)(lVar4 + -0x540) =
       (*puVar25 ^ uVar30) + (*(uint *)(lVar4 + -0xb54) ^ uVar19) ^ DAT_182670980;
  uVar11 = DAT_1826708d0;
  bVar24 = (byte)DAT_1826708c4;
  *(ulonglong *)(lVar4 + -0x6b8) =
       (CONCAT44(uVar23,uVar32) ^ 0xff14859640145d03) >> (((byte)uVar7 ^ 0x5c) & 0x3f);
  uVar7 = DAT_1826707d0;
  uVar20 = *puVar35 ^ uVar11 ^ DAT_182670980;
  uVar27 = *(uint *)(lVar4 + -0x2d4) ^ uVar11 ^ DAT_182670a4c;
  uVar36 = (ulonglong)DAT_1826707d0;
  *(uint *)(lVar4 + -0x68c) = uVar11 ^ uVar19 ^ uVar20;
  *(uint *)(lVar4 + -0x280) = uVar27;
  uVar27 = uVar27 ^ DAT_182670834;
  *(uint *)(lVar4 + -0x814) = uVar20;
  uVar16 = (ulonglong)DAT_182670820;
  *(uint *)(lVar4 + -0x3d4) = uVar27 ^ uVar11;
  uVar11 = DAT_1826707f4;
  uVar22 = CONCAT44(DAT_1826707ac,uVar6);
  pbVar28 = (byte *)((CONCAT44(uVar32,uVar26) ^ 0xd69b43a51e6b3535) * 0x20 +
                     (CONCAT44(DAT_1826707ac,uVar12) ^ 0x121000005ed475b2) +
                    *(longlong *)(lVar4 + -0x30));
  *(ulonglong *)(lVar4 + -0x2e8) = (ulonglong)pbVar28 ^ uVar16;
  *(ulonglong *)(lVar4 + -0x610) = (uVar22 ^ 0x437fe5ef41421703) + *(longlong *)(lVar4 + -0xbb0);
  *(byte *)(lVar4 + -0xc35) = *pbVar28 ^ bVar24 ^ (byte)DAT_182670adc;
  uVar31 = uVar11 - uVar7;
  DAT_1826707e4 = uVar31;
  *(longlong *)(lVar4 - ((ulonglong)uVar31 ^ 0xd3c8eeb1)) =
       *(longlong *)(lVar4 - ((ulonglong)uVar7 ^ 0xebb6fd55)) << ((byte)uVar37 & 0x3f);
  uVar29 = DAT_182670a38;
  uVar27 = DAT_1826709bc;
  uVar20 = DAT_182670868;
  uVar19 = DAT_182670848;
  lVar3 = DAT_1826707a0;
  uVar30 = (uint)(bVar24 ^ *(byte *)(lVar4 + -0xc35));
  *(uint *)(DAT_1826707a0 + -0xc04) = uVar30 ^ DAT_1826709bc;
  bVar24 = (byte)uVar7;
  *(longlong *)(lVar3 + -0xd88) = -0x3e7d8b8d4a774b9d << ((bVar24 ^ 0xd4) & 0x3f);
  *(uint *)(lVar3 + -0xc34) =
       (*(uint *)(lVar3 + -0x3d4) ^ DAT_182670834) + (uVar31 ^ 0x18ecab02) ^ uVar20;
  uVar30 = uVar30 << 0x11 ^ DAT_1826708fc;
  *(uint *)(lVar3 + -0xc0c) = uVar30;
  uVar30 = uVar30 ^ DAT_1826708fc;
  *(ulonglong *)(lVar3 + -0x658) = CONCAT44(uVar11,uVar31) ^ 0xfe3d75f5efffbbef | 0xfc3851f0e879b9cb
  ;
  puVar25 = (uint *)(lVar3 - ((ulonglong)uVar11 ^ 0xbf7fd2ca));
  *(uint *)(lVar3 + -0x7e4) = (uVar20 ^ *puVar25) - uVar30 ^ _DAT_1826708bc;
  *(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0xd3c8e5b9)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0xebb6ff39)) ^ _DAT_1826708bc) *
       (*(uint *)(lVar3 - ((ulonglong)uVar11 ^ 0xbf7fd872)) ^ uVar19) ^ uVar29;
  *(uint *)(lVar3 + -0x8e0) =
       (uVar27 ^ *(uint *)(lVar3 + -0xc04)) * (uVar7 ^ 0xebb6f8de) ^ DAT_182670924;
  uVar30 = DAT_1826708cc;
  uVar20 = (*(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0xd3c8eec1)) ^ DAT_182670924) +
           (*(uint *)(lVar3 + -0x398) ^ uVar29) ^ DAT_18267096c;
  *(uint *)(lVar3 + -0x9ec) = uVar20;
  uVar20 = uVar20 ^ DAT_18267096c;
  *(ulonglong *)(lVar3 + -0xa18) =
       CONCAT44(uVar7,uVar7) ^ CONCAT44(uVar23,uVar31) ^ 0xe37d016c59744786;
  uVar17 = DAT_1826709f4;
  *(uint *)(lVar3 + -0x42c) = uVar20 << ((bVar24 ^ 0xd0) & 0x1f) ^ DAT_18267094c;
  *(uint *)(lVar3 - (uVar21 ^ 0xc5f00a34)) = uVar20 >> ((bVar24 ^ 0xce) & 0x1f) ^ DAT_182670a64;
  *(uint *)(lVar3 + -0x540) =
       (*(uint *)(lVar3 + -0xa34) ^ DAT_182670a64 | *(uint *)(lVar3 + -0x42c) ^ DAT_18267094c) ^
       DAT_182670a40;
  *(uint *)(lVar3 - ((ulonglong)uVar31 ^ 0xd3c8e4f5)) =
       (*(uint *)(lVar3 + -0x68c) ^ uVar19) + (*(uint *)(lVar3 + -0xb54) ^ uVar19) ^ DAT_1826709c8;
  uVar27 = *(uint *)(lVar3 + -0x540) ^ DAT_182670a44 ^ DAT_182670a40;
  uVar19 = uVar30 ^ DAT_1826709ac;
  uVar20 = *puVar15 ^ DAT_1826709ac ^ DAT_1826709c8;
  *(uint *)(lVar3 + -0x280) = uVar27;
  *(uint *)(lVar3 + -0x3d4) = uVar19 ^ uVar20;
  uVar19 = uVar27 ^ uVar17 ^ DAT_182670a44;
  *(uint *)(lVar3 + -0x814) = uVar20;
  uVar16 = (ulonglong)DAT_182670804;
  *puVar25 = uVar19;
  pbVar28 = (byte *)((CONCAT44(uVar6,uVar32) ^ 0x7d3faae6d69b43a5) * 0x20 +
                    *(longlong *)(lVar3 + -0x30) + 0xe);
  *(ulonglong *)(lVar3 + -0x270) = (ulonglong)pbVar28 ^ uVar16;
  *(ulonglong *)(lVar3 + -0xf0) = *(ulonglong *)(lVar3 + -0x610) ^ 0x1a8bef1ca850c1b9;
  uVar8 = DAT_182670aac;
  uVar27 = DAT_182670890;
  uVar20 = DAT_1826707f4;
  uVar19 = DAT_182670828 & 0xff;
  *(byte *)(lVar3 + -0x619) = *pbVar28 ^ (byte)DAT_182670828 ^ (byte)DAT_182670adc;
  puVar15 = (uint *)(lVar3 - ((ulonglong)uVar23 ^ 0x16190dcb));
  *(uint *)(lVar3 + -0xc0c) = *(byte *)(lVar3 - ((ulonglong)uVar26 ^ 0x1e6b332c)) ^ uVar19 ^ uVar27;
  *puVar15 = (*(uint *)(lVar3 - (uVar36 ^ 0xebb6f4e9)) ^ uVar17) + (uVar20 ^ 0x745b93dd) ^
             DAT_1826709c4;
  uVar19 = DAT_1826707bc;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (CONCAT44(uVar12,uVar26) ^ 0xe42146e8da94aa21) >>
       ((byte)*(undefined8 *)(lVar3 + -0xf0) & 0x3f);
  uVar33 = (uVar27 ^ *(uint *)(lVar3 + -0xc0c)) << ((byte)uVar19 & 0x1f);
  *(uint *)(DAT_1826707a0 + -0xc04) = uVar33 ^ DAT_182670ac0;
  lVar3 = DAT_1826707a0;
  uVar26 = (*puVar15 ^ DAT_1826709c4) - uVar33;
  uVar19 = *(uint *)(DAT_1826707a0 + -0xc0c);
  puVar15 = (uint *)(DAT_1826707a0 + -0x3d4);
  *(uint *)(DAT_1826707a0 + -0x398) = uVar26 ^ DAT_18267090c;
  uVar32 = DAT_1826707ac;
  uVar26 = (*puVar15 ^ uVar30) * uVar26;
  uVar12 = DAT_1826707b4 ^ 0x7d3faae8;
  *(uint *)(lVar3 + -0x8e0) = uVar26 ^ uVar8;
  uVar19 = (uVar27 ^ uVar19) * uVar12 ^ DAT_182670af4;
  *(uint *)(lVar3 + -0x9ec) = uVar19;
  uVar26 = uVar26 + (uVar19 ^ DAT_182670af4);
  *(uint *)(lVar3 + -0x42c) = uVar26 ^ uVar29;
  *(uint *)(lVar3 + -0xa34) = uVar33 * 0x3d8aa4c9;
  uVar8 = DAT_182670adc;
  uVar27 = DAT_182670948;
  uVar12 = DAT_1826707c4;
  uVar19 = (*(uint *)(lVar3 + -0x42c) ^ uVar29) >> (((byte)DAT_1826707b8 ^ 0xb6) & 0x1f) ^
           DAT_182670a8c;
  *(uint *)(lVar3 + -0x68c) = uVar26 << (((byte)uVar32 ^ 0xd) & 0x1f) ^ DAT_1826708e0;
  *(uint *)(lVar3 - ((ulonglong)uVar11 ^ 0xbf7fdc2a)) = uVar19;
  uVar32 = DAT_1826708d8;
  *(uint *)(lVar3 + -0x540) = uVar20 ^ 0xff7763fd | 0xa3670344;
  uVar19 = DAT_1826707ac;
  uVar16 = (ulonglong)DAT_1826707ac;
  uVar11 = *(uint *)(lVar3 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar3 + -0x814) =
       (*(uint *)(lVar3 - (uVar16 ^ 0x1210068c)) ^ DAT_1826708e0 |
       *(uint *)(lVar3 + -0x2d4) ^ DAT_182670a8c) ^ uVar27;
  uVar29 = uVar32 ^ DAT_1826708b0;
  uVar20 = DAT_1826707c0 ^ 0x4a50f3;
  *(uint *)(lVar3 - (uVar36 ^ 0xebb6fa5d)) = (*(uint *)(lVar3 + -0x3d4) ^ uVar30) + uVar11 ^ uVar32;
  lVar4 = DAT_1826707a0;
  uVar32 = uVar27 ^ uVar8 ^ *(uint *)(lVar3 + -0x814);
  *(uint *)(lVar3 + -0x7e4) = uVar29 ^ *(uint *)(lVar3 + -0x280);
  *(uint *)(lVar3 + -0xc34) = (uVar12 ^ 0x34094109) * uVar20;
  *(ulonglong *)(lVar3 + -0x1b8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0x12100658)) | *(ulonglong *)(lVar3 + -0xce0);
  *(uint *)(lVar3 + -0x398) = uVar32;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x3f7dc2b2)) ^ CONCAT44(uVar17,uVar17)) <<
       (((byte)uVar18 ^ 0x1e) & 0x3f);
  uVar19 = DAT_1826708ec;
  uVar21 = (ulonglong)DAT_1826709cc;
  *(uint *)(lVar4 + -0xc0c) =
       *(uint *)(lVar4 - (uVar13 ^ 0x7d3fad02)) ^ DAT_182670934 ^ DAT_1826708b0;
  *(uint *)(lVar4 + -0x8e0) = uVar19 ^ uVar32 ^ uVar8;
  *(ulonglong *)(lVar4 + -0xd38) =
       (CONCAT44(uVar31,uVar18) ^ 0x8b9cd0ff3ce309da) >> ((bVar24 ^ 0xe4) & 0x3f);
  bVar24 = (byte)DAT_1826708a8;
  pbVar28 = (byte *)(*(longlong *)(lVar4 - (uVar34 ^ 0x3f7dc6ba)) +
                     (CONCAT44(uVar7,uVar6) ^ 0xebb6f8dd7d3faae6) * 0x20 +
                    (CONCAT44(uVar23,uVar31) ^ 0x16190a2fd3c8e638));
  *(ulonglong *)(lVar4 + -0x248) = (ulonglong)pbVar28 ^ uVar21;
  bVar9 = *pbVar28 ^ (byte)uVar8;
  *(byte *)(lVar4 + -0xc35) = bVar9 ^ bVar24;
  *(uint *)(lVar4 + -0x9ec) = bVar9 ^ DAT_182670b04;
  *(uint *)(lVar4 - (uVar14 ^ 0xd69b4fa1)) =
       (*(uint *)(lVar4 - (uVar16 ^ 0x121008e0)) ^ DAT_1826708ec) + (uVar12 ^ 0x64d2b05c) ^
       DAT_182670abc;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar2 ^ uVar23;
  return;
}



############ FUN_ 180cb7270 size=5720 ############

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

void FUN_180cb7270(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  undefined4 uVar21;
  uint uVar22;
  byte bVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  uint uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar56;
  byte local_res18;
  byte local_128;
  byte local_118;
  byte local_108;
  byte local_e0;
  
  uVar17 = DAT_1826707f4;
  uVar15 = DAT_1826707e4;
  uVar13 = DAT_1826707d8;
  uVar10 = DAT_1826707c4;
  uVar9 = DAT_1826707b0;
  uVar8 = DAT_1826707ac;
  uVar27 = (ulonglong)DAT_1826707d8;
  uVar50 = (ulonglong)DAT_1826707c4;
  uVar32 = (ulonglong)DAT_1826707f4;
  uVar55 = DAT_1826707f0 + DAT_1826707d8;
  uVar28 = (ulonglong)DAT_1826707ac;
  uVar54 = (ulonglong)DAT_1826707b0;
  uVar40 = (ulonglong)DAT_1826707e4;
  uVar34 = DAT_1826707dc * DAT_1826707ac;
  uVar30 = DAT_1826707c4 * DAT_1826707b0;
  uVar49 = DAT_1826707f4 << 0x10 | DAT_1826707f4 >> 0x10;
  uVar41 = DAT_1826707e4 << 0x10 | DAT_1826707e4 >> 0x10;
  uVar4 = *(uint *)(&DAT_18260f750 + (uVar27 ^ 0x8ebc0333) + (longlong)DAT_182670dec);
  uVar22 = *(uint *)(&DAT_18260f760 + DAT_182670dec) ^ DAT_1826707f0;
  uVar47 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar36 = CONCAT44(DAT_18267090c,DAT_18267090c);
  DAT_1826707b4 = uVar41;
  DAT_1826707bc = uVar34;
  DAT_1826707c8 = uVar30;
  DAT_1826707e8 = uVar49;
  DAT_1826707ec = uVar55;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0x76fde65d)) =
       (uVar47 ^ *(ulonglong *)(DAT_1826707a0 + -0x428)) + 0x10 ^ uVar36;
  uVar25 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar51 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 + -0x7b8) ^ uVar36) ^ uVar51 ^ uVar25;
  lVar6 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670974,DAT_182670974);
  *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 + -0xbe8) ^ uVar26) =
       CONCAT44(uVar41,uVar9) ^ 0x352652f3d3585c75;
  uVar18 = DAT_182670acc;
  *(uint *)(lVar6 + -0xcec) = (DAT_1826707dc ^ 0x89256146) + (uVar30 ^ 0xe98127c8);
  uVar36 = CONCAT44(uVar18,uVar18);
  uVar46 = (ulonglong)uVar55;
  *(ulonglong *)(lVar6 + -0xae0) = (uVar47 ^ *(ulonglong *)(lVar6 + -0x428)) + 0x18 ^ uVar36;
  *(uint *)(lVar6 - ((ulonglong)uVar55 ^ 0x712fa7bc)) =
       (uVar10 ^ 0x1eef29c) + *(int *)(lVar6 + -0x14);
  uVar29 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar6 + -0x660) =
       *(ulonglong *)(*(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x27d0a85)) ^ uVar36) ^ uVar29 ^
       uVar51;
  uVar19 = DAT_1826709b0;
  lVar7 = DAT_1826707a0;
  uVar47 = (ulonglong)uVar49;
  uVar37 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar42 = (ulonglong)uVar30;
  *(ulonglong *)(*(ulonglong *)(lVar6 - (uVar32 ^ 0xe600d3c9)) ^ uVar37) =
       CONCAT44(uVar49,uVar34) ^ 0x49660d8e50845076;
  uVar18 = DAT_182670848;
  uVar45 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar7 + -0xa18) =
       (CONCAT44(DAT_182670820,DAT_182670820) ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) +
       (CONCAT44(uVar13,uVar30) ^ 0x952da507de92bbe6) ^ uVar45;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 - (uVar46 ^ 0x712faf58)) =
       (CONCAT44(DAT_18267096c,DAT_18267096c) ^ *(ulonglong *)(lVar7 + -0xd88)) +
       (CONCAT44(uVar34,uVar8) ^ 0x3be5e3c871862bc7) ^ uVar36;
  puVar1 = (ulonglong *)(lVar7 + -0xd38);
  uVar36 = *(ulonglong *)(lVar7 + -0xf0) ^ uVar36;
  *puVar1 = (uVar29 ^ *(ulonglong *)(lVar7 + -0x660)) >> ((byte)uVar36 & 0x3f);
  lVar6 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar7 + -0x9c8) = (uVar45 ^ *(ulonglong *)(lVar7 + -0xa18)) + uVar36 ^ uVar31;
  uVar43 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar6 + -0x630) = (uVar45 ^ *(ulonglong *)(lVar6 + -0xa18)) << 0xe ^ uVar43;
  lVar7 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0xe600daa1)) ^ uVar45) >>
       (((byte)uVar9 ^ 0x8b) & 0x3f) ^ uVar38;
  *(uint *)(lVar7 - (uVar47 ^ 0xd0b9ea04)) = uVar55 ^ 0x5fe9cee | uVar49 ^ 0x64c5fdae;
  lVar6 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0x76fde805)) =
       (uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0x410) |
       uVar43 ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) ^ uVar36;
  uVar11 = DAT_1826707dc;
  *(ulonglong *)(lVar6 + -0x610) =
       *(ulonglong *)(lVar6 - (uVar28 ^ 0x27d0605)) ^ uVar29 |
       CONCAT44(uVar10,uVar34) ^ 0x5adf7de2ca8f553b;
  uVar16 = DAT_1826707f0;
  *(ulonglong *)(lVar6 + -0x438) =
       *(ulonglong *)(lVar6 + -0x9e0) ^ uVar36 ^ uVar31 ^ uVar51 ^ *(ulonglong *)(lVar6 + -0x9c8);
  uVar45 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar6 + -0x420) =
       (CONCAT44(uVar16,uVar15) ^ 0xdd6c7a937f537dc7) + (uVar29 ^ *(ulonglong *)(lVar6 + -0x660)) ^
       uVar45;
  uVar18 = DAT_182670aa0;
  uVar36 = (CONCAT44(uVar9,uVar17) ^ 0x73c877553663ea5d) + (*(ulonglong *)(lVar6 + -0x890) ^ uVar25)
  ;
  *(ulonglong *)(lVar6 + -0x658) = uVar36 ^ CONCAT44(DAT_182670a84,DAT_182670a84);
  lVar6 = DAT_1826707a0;
  uVar56 = CONCAT44(uVar18,uVar18);
  uVar36 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x42012845)) ^ uVar45) + uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar36 ^ uVar56;
  *(ulonglong *)(lVar6 + -0x6b8) =
       (CONCAT44(uVar30,uVar8) ^ 0x5baa2e219f1489d5) + 0x739d990164132314;
  lVar7 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670914,DAT_182670914);
  local_128 = (byte)(uVar15 >> 0x10);
  local_res18 = (byte)(uVar17 >> 0x10);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x8ebc06fb)) =
       (CONCAT44(uVar10,uVar9) ^ 0x43c260ee2ea80d2d) + uVar36 ^ uVar35;
  uVar19 = DAT_182670a78;
  uVar12 = DAT_1826707f0;
  uVar43 = (uVar45 ^ *(ulonglong *)(lVar6 + -0x420)) << ((local_128 ^ 0xed) & 0x3f);
  uVar38 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar6 + -0x4c8) =
       (*(ulonglong *)(lVar6 + -0xbb0) ^ uVar56) << (((byte)uVar9 ^ 0x95) & 0x3f);
  *(ulonglong *)(lVar6 + -0xac0) = uVar43 ^ uVar38;
  uVar14 = DAT_182670a5c;
  uVar18 = DAT_1826708d0;
  uVar29 = CONCAT44(uVar19,uVar19);
  uVar25 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0xe273a84d)) ^ uVar45) >>
           ((local_res18 ^ 0x30) & 0x3f);
  *(ulonglong *)(lVar7 + -0x1b8) = uVar25 ^ uVar29;
  uVar36 = CONCAT44(uVar18,uVar18);
  uVar45 = CONCAT44(uVar14,uVar14);
  puVar3 = (ulonglong *)(lVar7 + -0xb70);
  uVar25 = (uVar25 | uVar43) ^ uVar36;
  *puVar3 = uVar25;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar34 ^ 0x81c781f9)) =
       uVar45 ^ uVar36 ^ uVar35 ^ uVar25 ^ *(ulonglong *)(lVar7 + -0x5c0);
  lVar6 = DAT_1826707a0;
  puVar33 = (ulonglong *)(DAT_1826707a0 + -0x9c8);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x220);
  *(ulonglong *)(DAT_1826707a0 + -0x548) =
       (*(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar45) >> ((local_128 ^ 0xf2) & 0x3f);
  uVar18 = DAT_182670ab4;
  uVar36 = (*puVar2 ^ uVar45) << 0x34;
  uVar43 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *(ulonglong *)(lVar6 + -0x588) =
       (*(ulonglong *)(lVar6 - (uVar40 ^ 0x76fde3c5)) ^ uVar45) + (uVar31 ^ *puVar33) ^ uVar43;
  uVar31 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 + -0xd88) = uVar36 ^ uVar31;
  *(ulonglong *)(DAT_1826707a0 - (uVar50 ^ 0xcacab287)) =
       *(ulonglong *)(lVar6 - (uVar28 ^ 0x27d0245)) ^ uVar45 | uVar36;
  lVar6 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xd0b9e6f0)) =
       ((ulonglong)uVar14 << 0x14 | (ulonglong)(uVar14 >> 0xc)) ^
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x42012e45)) >> 0xc ^ uVar36;
  uVar25 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar36 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0xe273ac9d)) ^ uVar36 |
           uVar31 ^ *(ulonglong *)(lVar6 + -0xd88)) ^ uVar25;
  uVar31 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar6 + -0xa18) = uVar36;
  uVar12 = DAT_1826707d4;
  uVar11 = DAT_1826707d0;
  uVar39 = (ulonglong)DAT_1826707d0;
  uVar53 = (ulonglong)DAT_1826707d0;
  uVar44 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar6 + -0x630) =
       uVar31 ^ uVar36 ^ uVar25 ^ uVar43 ^ *(ulonglong *)(lVar6 + -0x588);
  uVar45 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  local_108 = (byte)uVar17;
  *(ulonglong *)(lVar6 - (uVar42 ^ 0xf8777717)) =
       (*(ulonglong *)(lVar6 - (uVar50 ^ 0xcacabb87)) ^ uVar51) +
       (uVar35 ^ *(ulonglong *)(lVar6 + -0x5c0)) ^ uVar45;
  uVar24 = uVar11 * uVar12;
  uVar36 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar6 + -0x610) =
       (uVar51 ^ *(ulonglong *)(lVar6 + -0x438)) << (local_108 & 0x3f) ^ uVar36;
  uVar52 = (ulonglong)uVar24;
  DAT_1826707b8 = uVar24;
  *(byte *)(lVar6 + -0x739) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x450) ^ (ulonglong)DAT_1826709cc) ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar6 + -0x9e0) =
       ((ulonglong)DAT_182670a9c << 0x19 | (ulonglong)(DAT_182670a9c >> 7)) ^
       *(ulonglong *)(lVar6 + -0x438) >> 7 ^ uVar37;
  bVar5 = (byte)uVar12;
  *(uint *)(lVar6 - (uVar52 ^ 0xd46f873c)) = (uVar11 ^ 0x3523f65f) << ((bVar5 ^ 0x44) & 0x1f);
  uVar25 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar36 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar24 ^ 0xd46f8850)) ^ uVar37 |
           *(ulonglong *)(lVar6 - (uVar53 ^ 0x80e1a664)) ^ uVar36) ^ uVar25;
  uVar37 = CONCAT44(DAT_182670890,DAT_182670890);
  *(ulonglong *)(lVar6 + -0x660) = uVar36;
  uVar35 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar6 + -0x890) =
       *(ulonglong *)(lVar6 - (uVar44 ^ 0x5d626a4c)) ^ uVar37 ^ uVar36 ^ uVar25 ^ uVar45;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar12 ^ 0x5d626804)) =
       (*(ulonglong *)(lVar6 - (uVar52 ^ 0xd46f8920)) ^ uVar37) +
       (uVar43 ^ *(ulonglong *)(lVar6 + -0x588)) ^ uVar35;
  uVar18 = DAT_182670a18;
  uVar36 = *(ulonglong *)(lVar7 + -0x890);
  uVar25 = (uVar37 ^ *(ulonglong *)(lVar6 + -0x890)) << (((byte)uVar24 ^ 0xa7) & 0x3f);
  uVar48 = CONCAT44(DAT_182670854,DAT_182670854);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar25 ^ uVar48;
  uVar43 = (uVar37 ^ uVar36) >> ((bVar5 ^ 0x75) & 0x3f);
  uVar36 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(ulonglong *)(lVar7 + -0xbb0) = uVar43 ^ CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar7 - (uVar53 ^ 0x80e1a4bc)) = (uVar43 | uVar25) ^ uVar36;
  uVar53 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar7 + -0x420) =
       (CONCAT44(uVar24,uVar11) ^ 0x9ee5c1b0b301ab48) >> ((bVar5 ^ 0x56) & 0x3f);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707dc ^ 0x420126a5)) =
       *(ulonglong *)(lVar7 - (uVar40 ^ 0x76fde7bd)) ^ uVar53 ^ uVar36 ^ uVar35 ^
       *(ulonglong *)(lVar7 + -0x4c8);
  uVar36 = uVar31 ^ *(ulonglong *)(lVar7 + -0x630);
  uVar43 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar25 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar7 + -0x1b8) = (uVar45 ^ *(ulonglong *)(lVar7 + -0x410)) + uVar36 ^ uVar43;
  *puVar3 = *(ulonglong *)(*(ulonglong *)(lVar7 + -0x310) ^ uVar25) ^ uVar51;
  local_e0 = (byte)uVar34;
  uVar45 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar7 - (uVar44 ^ 0x5d626b14)) = uVar36 << ((local_e0 ^ 0xf1) & 0x3f) ^ uVar45;
  puVar33 = (ulonglong *)(lVar7 - (uVar42 ^ 0xf87775bf));
  *(ulonglong *)(lVar7 + -0x9c8) = (uVar48 ^ *puVar33) - (uVar48 ^ *(ulonglong *)(lVar7 + -0x6b8));
  uVar36 = CONCAT44(DAT_182670884,DAT_182670884);
  *puVar1 = (uVar31 ^ *(ulonglong *)(lVar7 + -0x630)) >> ((local_108 ^ 0xa1) & 0x3f) ^ uVar36;
  uVar18 = DAT_182670950;
  lVar6 = DAT_1826707a0;
  uVar48 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar36 = (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x5d626364)) ^ uVar36 |
           uVar45 ^ *(ulonglong *)(DAT_1826707a0 + -0x548)) ^ uVar48;
  uVar31 = CONCAT44(DAT_182670950,DAT_182670950);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar36;
  uVar37 = CONCAT44(DAT_182670b14,DAT_182670b14);
  uVar36 = *(ulonglong *)(lVar6 - (uVar47 ^ 0xd0b9e7b8)) ^ uVar31 ^ uVar36 ^ uVar48 ^ uVar43;
  *(ulonglong *)(lVar6 + -0xd88) = uVar36;
  *(ulonglong *)(lVar6 + -0xf0) =
       (*(ulonglong *)(lVar6 - (uVar54 ^ 0x2d2598e1)) ^ uVar35) + (uVar31 ^ uVar36) ^ uVar37;
  *(ulonglong *)(lVar6 + -0xa18) =
       CONCAT44(uVar9,uVar8) ^ uVar53 ^ *(ulonglong *)(lVar6 + -0xac0) ^ 0x2814ef0564b1e27a;
  local_118 = (byte)uVar30;
  *(ulonglong *)(lVar6 - (uVar46 ^ 0x712faa68)) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar41 ^ 0xe1e57b75)) ^ uVar31) <<
       (((byte)uVar10 ^ 0xba) & 0x3f) ^ uVar56;
  uVar19 = DAT_182670984;
  uVar36 = (uVar31 ^ *(ulonglong *)(lVar6 + -0xd88)) >> ((local_118 ^ 0x3c) & 0x3f);
  *(ulonglong *)(lVar6 + -0x438) = uVar36 ^ CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar21 = DAT_182670aa4;
  uVar45 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar6 + -0x9e0) = (uVar36 | uVar56 ^ *(ulonglong *)(lVar6 + -0x5c0)) ^ uVar45;
  *(ulonglong *)(lVar6 + -0x610) =
       *(ulonglong *)(lVar6 + -0xa18) >> (((byte)uVar18 ^ *(byte *)(lVar6 + -0xd88)) & 0x3f);
  uVar18 = DAT_182670ac0;
  uVar31 = CONCAT44(uVar21,uVar21);
  *(ulonglong *)(lVar6 + -0x660) =
       *(ulonglong *)(lVar6 - (uVar44 ^ 0x5d6267bc)) ^ uVar31 ^ uVar45 ^ uVar37 ^
       *(ulonglong *)(lVar6 + -0xf0);
  uVar54 = CONCAT44(uVar18,uVar18);
  uVar45 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar6 + -0x588) =
       (uVar43 ^ *(ulonglong *)(lVar6 + -0x1b8)) + (uVar53 ^ *(ulonglong *)(lVar6 + -0xac0)) ^
       uVar54;
  uVar14 = DAT_1826707dc;
  *(ulonglong *)(lVar6 + -0x890) =
       (*(ulonglong *)(lVar6 - (uVar40 ^ 0x76fdeb25)) ^ uVar53) << ((local_res18 ^ 0x25) & 0x3f) ^
       uVar45;
  uVar20 = DAT_182670a8c;
  uVar30 = DAT_1826707f0;
  uVar43 = (ulonglong)DAT_182670a8c;
  uVar36 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x8ebc088b)) =
       (uVar53 ^ *(ulonglong *)(lVar6 + -0xac0)) >> (((byte)uVar55 ^ 0xb3) & 0x3f) ^ uVar38;
  uVar18 = DAT_18267095c;
  uVar35 = CONCAT44(DAT_182670968,DAT_182670968);
  uVar27 = (*(ulonglong *)(lVar6 + -0xbb0) ^ uVar38 | uVar45 ^ *(ulonglong *)(lVar6 + -0x890)) ^
           uVar35;
  *(ulonglong *)(lVar6 + -0x420) = uVar27;
  uVar40 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 + -0x4c8) =
       *(ulonglong *)(lVar6 - (uVar36 ^ 0xe273a9e5)) ^ uVar40 ^ uVar27 ^ uVar35 ^ uVar54;
  uVar45 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar6 + -0x410) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0x420128ad)) ^ uVar40) +
       (CONCAT44(uVar24,uVar13) ^ 0x3399488d5d4ccd43) ^ uVar26;
  *puVar3 = (CONCAT44(uVar8,uVar41) ^ 0xa789e8a79ac50030) + (uVar37 ^ *(ulonglong *)(lVar6 + -0xf0))
            ^ uVar45;
  lVar6 = DAT_1826707a0;
  *puVar33 = CONCAT44(uVar15,uVar30) ^ CONCAT44(uVar11,uVar10) ^ 0xf4bb22ad4b07f91;
  uVar26 = uVar26 ^ *(ulonglong *)(lVar6 + -0x410);
  uVar40 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar6 + -0x9c8) = (*puVar3 ^ uVar45) + uVar26 ^ uVar40;
  uVar19 = DAT_182670a7c;
  uVar35 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar6 + -0x630) = uVar26 << 0x19 ^ uVar35;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar34 ^ 0x81c78691)) =
       (CONCAT44(uVar13,uVar15) ^ 0xa71993506ac4e345) + (*(ulonglong *)(lVar6 + -0xbb0) ^ uVar38);
  uVar36 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xd0b9eb38)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar52 ^ 0xd46f85a0)) >> 0x20 ^ (ulonglong)DAT_182670974) >>
       7 ^ uVar36;
  lVar6 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar26 = (uVar36 ^ *puVar1 | uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) ^ uVar27;
  uVar36 = *puVar3;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar26;
  *(ulonglong *)(lVar6 + -0x658) = CONCAT44(uVar9,uVar41) ^ uVar36 ^ uVar45 ^ 0x591066c727eee001;
  uVar38 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar6 + -0x5c0) =
       uVar26 ^ uVar29 ^ *(ulonglong *)(lVar6 + -0x9c8) ^ uVar27 ^ uVar40;
  uVar18 = DAT_1826708b0;
  uVar27 = (*(ulonglong *)(lVar6 - (uVar32 ^ 0xe600d6d9)) ^ uVar31) +
           (CONCAT44(uVar49,uVar11) ^ 0xb54c4a1bf80b41f8);
  *(ulonglong *)(lVar6 + -0x438) = uVar27 ^ uVar38;
  uVar36 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar6 + -0xd88) =
       (uVar54 ^ *(ulonglong *)(lVar6 + -0x588)) + (CONCAT44(uVar49,uVar34) ^ 0xeb0ddf263030de7b) ^
       uVar36;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar52 ^ 0xd46f8ba8)) =
       (*(ulonglong *)(lVar6 - (uVar44 ^ 0x5d6263d4)) ^ uVar36) + uVar27 ^ uVar25;
  uVar36 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar7 + -0x610) =
       (*(ulonglong *)(lVar7 - (uVar52 ^ 0xd46f8588)) ^ uVar38) << (((byte)uVar13 ^ 0x1a) & 0x3f) ^
       uVar36;
  bVar23 = (byte)DAT_1826707dc;
  *(longlong *)(lVar7 - (uVar46 ^ 0x712fa648)) =
       (longlong)(CONCAT44(uVar17,DAT_1826707a8) ^ 0xe4409e35b3023a15) >>
       ((*(byte *)(lVar7 - (uVar47 ^ 0xd0b9e030)) ^ (byte)uVar19) & 0x3f);
  uVar46 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(lVar7 + -0x1b8) =
       (*(ulonglong *)(lVar7 + -0x438) ^ uVar38) >> ((bVar23 ^ 0x7a) & 0x3f) ^ uVar46;
  *(byte *)(lVar7 - (uVar42 ^ 0xf877714e)) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x2b8) ^ uVar43) ^ (byte)DAT_182670a40;
  uVar18 = DAT_182670aec;
  uVar36 = (*(ulonglong *)(lVar7 - (uVar28 ^ 0x27d0675)) ^ uVar36 |
           uVar46 ^ *(ulonglong *)(lVar7 + -0x1b8)) ^ uVar48;
  *(ulonglong *)(lVar7 + -0xac0) = uVar36;
  uVar8 = DAT_182670860;
  uVar47 = (ulonglong)DAT_182670860;
  uVar27 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar26 = CONCAT44(uVar18,uVar18);
  uVar36 = uVar48 ^ uVar25 ^ *(ulonglong *)(lVar7 + -0xa18) ^ uVar27 ^ uVar36;
  *(ulonglong *)(lVar7 + -0x890) = uVar36;
  *(ulonglong *)(lVar7 + -0x420) =
       (*(ulonglong *)(lVar7 - (uVar39 ^ 0x80e1a9bc)) ^ uVar40) + (uVar36 ^ uVar27) ^ uVar26;
  *(ulonglong *)(lVar7 + -0x4c8) =
       (CONCAT44(uVar16,uVar41) ^ 0x910d065fca3b5550) + (uVar46 ^ *(ulonglong *)(lVar7 + -0x1b8));
  uVar46 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar7 + -0xf0) = (uVar36 ^ uVar27) << ((local_res18 ^ 0x2e) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar7 - (uVar50 ^ 0xcacab907)) =
       ((ulonglong)(uVar8 >> 0x12) | uVar47 << 0xe) ^ *(ulonglong *)(lVar7 + -0x890) >> 0x12 ^
       uVar53;
  uVar27 = CONCAT44(DAT_182670874,DAT_182670874);
  uVar46 = (uVar53 ^ *(ulonglong *)(lVar7 + -0x6b8) | *(ulonglong *)(lVar7 + -0xf0) ^ uVar46) ^
           uVar27;
  uVar36 = CONCAT44(uVar24,DAT_1826707f0);
  *(ulonglong *)(lVar7 + -0xbb0) = uVar46;
  uVar18 = DAT_182670828;
  uVar29 = uVar29 ^ *(ulonglong *)(lVar7 + -0x5c0);
  *(ulonglong *)(lVar7 + -0x548) =
       (CONCAT44(uVar12,uVar41) ^ 0x90ee555526f988d0) + (uVar36 ^ 0x6e5796451fa1d736);
  uVar19 = DAT_182670a94;
  uVar36 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar7 + -0x410) =
       CONCAT44(uVar18,uVar18) ^ uVar46 ^ uVar27 ^ uVar26 ^ *(ulonglong *)(lVar7 + -0x420);
  uVar18 = DAT_1826709dc;
  *puVar1 = (*(ulonglong *)(lVar7 - (uVar36 ^ 0x5c6e6845)) ^ uVar25) + uVar29 ^
            CONCAT44(uVar19,uVar19);
  *puVar3 = uVar29 << ((bVar5 ^ 0x50) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar22 * 4) = uVar4 ^ uVar55;
  return;
}



############ FUN_ 180ca5d40 size=5233 ############

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

void FUN_180ca5d40(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong *plVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  byte *pbVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong uVar32;
  longlong *plVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  ulonglong uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  int *piVar41;
  ulonglong *puVar42;
  byte local_90;
  ulonglong uVar23;
  
  uVar14 = DAT_1826707d4;
  uVar7 = DAT_1826707d0;
  uVar32 = (ulonglong)DAT_1826707d4;
  uVar22 = ~DAT_1826707d4;
  uVar23 = (ulonglong)uVar22;
  uVar24 = (DAT_1826707d0 << 0x10 | DAT_1826707d0 & 0xff00) << 8 | DAT_1826707d0 >> 8 & 0xff00 |
           DAT_1826707d0 >> 0x18;
  uVar21 = *(uint *)(&DAT_18260f758 + DAT_182670db8) ^ DAT_1826707d4;
  uVar4 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar24 ^ 0x27ffada3) + (longlong)DAT_182670db8);
  uVar26 = (ulonglong)DAT_1826707d0;
  uVar27 = (ulonglong)DAT_1826708b8;
  uVar30 = (ulonglong)DAT_1826707d4;
  puVar42 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0xb3adf947));
  uVar40 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  uVar25 = (ulonglong)DAT_182670ab8;
  DAT_1826707e0 = uVar24;
  DAT_1826707ec = uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       *(longlong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0xb3adfd07)) -
       (CONCAT44(_DAT_1826708bc,_DAT_1826708bc) ^ *puVar42);
  lVar5 = DAT_1826707a0;
  bVar36 = (byte)DAT_182670b14 ^ (byte)DAT_1826708a4;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0x7b3c21ff)) ^ uVar40) >>
       (((byte)(uVar7 >> 0x18) ^ 0x93) & 0x3f) ^ CONCAT44(DAT_182670b14,DAT_182670b14);
  *(byte *)(lVar5 - (uVar26 ^ 0xb3adfd9b)) = bVar36 ^ *(byte *)(lVar5 + -0xce0);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0x84c3d060)) =
       *(longlong *)(lVar5 + -0x168) + 0x34U ^ uVar25;
  plVar33 = (longlong *)(lVar5 + -0x2d0);
  *(byte *)(*(ulonglong *)(lVar5 + -1000) ^ uVar25) =
       *(byte *)(lVar5 + -700) ^ (byte)DAT_182670a40 ^ (byte)DAT_1826708a4;
  lVar5 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_18267080c;
  puVar28 = (ulonglong *)
            (*plVar33 +
            ((CONCAT44(uVar22,uVar7) ^ 0x84c3d388b3adff21) +
            (CONCAT44(uVar22,uVar14) ^ 0x84c3d3887b3c2c77) * 0xc) * 8);
  uVar37 = CONCAT44(DAT_18267080c,DAT_18267080c);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xc0);
  *puVar1 = (ulonglong)puVar28 ^ CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar11 = _DAT_18267097c;
  puVar2 = (ulonglong *)(lVar5 + -0x588);
  uVar34 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *puVar2 = *puVar28 ^ uVar34 ^ uVar37;
  piVar41 = (int *)(lVar5 - ((ulonglong)uVar14 ^ 0x7b3c207b));
  *piVar41 = (uVar24 ^ 0x25cf7088) + 0x29e8247a;
  bVar36 = (byte)DAT_182670974;
  *(ulonglong *)(DAT_1826707a0 + -0x660) = (*puVar2 >> 0x20 ^ uVar25) >> 8 ^ CONCAT44(uVar11,uVar11)
  ;
  lVar5 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826708ec;
  uVar35 = CONCAT44(uVar14,uVar14);
  bVar31 = bVar36 ^ (byte)DAT_182670a40;
  *(byte *)(DAT_1826707a0 + -0xaa9) = (byte)uVar11 ^ bVar36 ^ *(byte *)(DAT_1826707a0 + -0x660);
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar22 ^ 0x84c3d980)) =
       (uVar35 ^ 0x7b3c2c777b3c2c42) + *(longlong *)(lVar5 + -0x168) ^ uVar25;
  uVar7 = DAT_1826707d0;
  *(byte *)(*(ulonglong *)(lVar6 + -0xa08) ^ uVar25) = bVar31 ^ *(byte *)(lVar6 + -0xaa9);
  bVar36 = (byte)DAT_182670a78;
  uVar25 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(uint *)(lVar6 + -0x43c) = uVar24 ^ 0x1404200 | 0xf23b3cdf;
  lVar5 = DAT_1826707a0;
  puVar28 = (ulonglong *)
            (*plVar33 +
            ((uVar35 ^ 0x7b3c2c777b3c2c71) + (CONCAT44(uVar24,uVar7) ^ 0x27ffadb3b3adff27) * 0xc) *
            8);
  *(ulonglong *)(DAT_1826707a0 + -0xb78) = (ulonglong)puVar28 ^ uVar25;
  uVar12 = DAT_182670a2c;
  uVar26 = *puVar28 ^ uVar34 ^ uVar40;
  *(ulonglong *)(lVar5 + -0x220) = uVar26;
  uVar25 = CONCAT44(uVar12,uVar12);
  uVar27 = (uVar26 >> 0x20 ^ uVar27) >> 0x10 ^ uVar25;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar27;
  bVar31 = bVar36 ^ (byte)uVar12 ^ (byte)uVar27;
  uVar27 = (ulonglong)DAT_182670aa4;
  bVar36 = bVar36 ^ bVar31 ^ (byte)DAT_182670a40;
  *(byte *)(lVar5 + -0x3f1) = bVar31;
  uVar10 = DAT_1826707bc;
  *(ulonglong *)(lVar5 + -0x920) = *(longlong *)(lVar5 + -0x168) + 0x36U ^ uVar27;
  *(undefined1 *)(lVar5 + -0x391) = **(undefined1 **)(lVar5 + -0x4f8);
  uVar11 = DAT_18267088c;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar30 ^ 0x7b3c2557)) ^ uVar27) = bVar36;
  uVar15 = DAT_1826707dc;
  uVar7 = DAT_1826707d0;
  uVar26 = CONCAT44(uVar11,uVar11);
  puVar28 = (ulonglong *)(lVar5 - (uVar23 ^ 0x84c3d348));
  uVar39 = (ulonglong)DAT_1826707dc;
  *puVar28 = *plVar33 + (CONCAT44(uVar10,uVar10) ^ 0x468e3026468e3020) * 8 ^ uVar26;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (CONCAT44(uVar7,DAT_1826707b4) ^ 0xf6979851d45b5d38) + (uVar37 ^ *puVar2);
  uVar27 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar5 + -0x660) = *(ulonglong *)(uVar26 ^ *puVar28) ^ uVar27 ^ uVar34;
  uVar17 = DAT_1826707f4;
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xbcfc00b8)) =
       (uVar27 ^ *puVar42) >> (((byte)DAT_1826707b0 ^ 199) & 0x3f) ^ uVar25;
  lVar5 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826709a4;
  plVar3 = (longlong *)(DAT_1826707a0 + -0x168);
  *(byte *)(DAT_1826707a0 + -0x391) =
       (byte)DAT_1826708a0 ^ (byte)uVar12 ^ *(byte *)(DAT_1826707a0 + -0x220);
  pbVar29 = (byte *)(*plVar3 + 0x37);
  *(ulonglong *)(lVar5 + -0x130) = (ulonglong)pbVar29 ^ uVar27;
  uVar12 = DAT_1826708fc;
  *pbVar29 = *(byte *)(lVar5 - ((ulonglong)uVar24 ^ 0x27ffae22)) ^ (byte)DAT_1826708a0 ^
             (byte)DAT_182670a40;
  uVar18 = DAT_1826709f4;
  uVar11 = DAT_182670870;
  uVar9 = DAT_1826707b4;
  puVar28 = (ulonglong *)
            (*plVar33 +
            ((CONCAT44(DAT_1826707f4,uVar7) ^ 0xefdfdfffb3adff20) +
            (CONCAT44(uVar24,uVar22) ^ 0x27ffadb384c3d388) * 0xc) * 8);
  uVar27 = (ulonglong)DAT_1826707d0;
  uVar30 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar5 + -0xb78) = (ulonglong)puVar28 ^ CONCAT44(uVar12,uVar12);
  uVar26 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 + -0x6b8) = *puVar28 ^ uVar34 ^ uVar26;
  lVar5 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_182670a30;
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xb3adf99f)) ^ uVar26) >>
            (((byte)DAT_1826707c8 ^ 1) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  bVar31 = *(byte *)(lVar5 - ((ulonglong)DAT_1826707bc ^ 0x468e35ae)) ^ (byte)uVar11 ^
           (byte)DAT_182670888;
  *(byte *)(lVar5 + -0x7f4) = bVar31;
  *(uint *)(lVar5 + -0xc34) = *(uint *)(lVar5 - (uVar23 ^ 0x84c3d7b4)) >> ((byte)*piVar41 & 0x1f);
  bVar36 = (byte)DAT_182670a40;
  *(ulonglong *)(lVar5 + -0xbf0) = *(longlong *)(lVar5 + -0x168) + 0x38U ^ uVar37;
  uVar8 = DAT_1826707d8;
  uVar27 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(byte *)(*(ulonglong *)(lVar5 - (uVar30 ^ 0x30264d7e)) ^ uVar37) =
       bVar36 ^ bVar31 ^ (byte)DAT_182670888;
  uVar20 = DAT_182670b00;
  uVar7 = DAT_1826707a8;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x1189abf8)) =
       *plVar33 + (CONCAT44(DAT_1826707f0,DAT_1826707b8) ^ 0x4e92d9a4ffb3dfa2) * 8 ^ uVar27;
  uVar12 = DAT_1826708c0;
  *(ulonglong *)(lVar5 + -0xce0) =
       (uVar40 ^ *(ulonglong *)(lVar5 + -0xd88)) -
       (CONCAT44(uVar9,DAT_1826707e8) ^ 0x493a1642c3f0d9bd);
  lVar5 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x84c3d5e8)) =
       *(ulonglong *)(*puVar1 ^ uVar27) ^ uVar34 ^ uVar26;
  uVar8 = DAT_1826707e4;
  *(ulonglong *)(lVar5 + -0x6b8) =
       CONCAT44(uVar10,DAT_1826707d0) ^ 0x9a436488ca0aca3f | *(ulonglong *)(lVar5 + -0x220) ^ uVar25
  ;
  uVar27 = (ulonglong)DAT_182670af0;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x9802f134)) =
       (uVar26 ^ *(ulonglong *)(lVar5 + -0x660)) >> (((byte)uVar8 ^ 0x7e) & 0x3f) ^
       CONCAT44(uVar20,uVar20);
  uVar7 = DAT_1826707b4;
  *(byte *)(lVar5 - ((ulonglong)DAT_1826707b4 ^ 0x302647ff)) =
       (byte)uVar20 ^ *(byte *)(lVar5 + -0xd88) ^ (byte)DAT_182670a4c;
  uVar19 = DAT_182670ad0;
  uVar13 = DAT_1826707cc;
  uVar40 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707e8 ^ 0xefdfd7cf)) =
       *(longlong *)(lVar5 - ((ulonglong)DAT_1826707bc ^ 0x468e314e)) +
       (CONCAT44(uVar9,uVar7) ^ 0x3026468e302646b7) ^ uVar27;
  *(byte *)(*(ulonglong *)(lVar5 + -0x830) ^ uVar27) =
       *(byte *)(lVar5 + -0x171) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670a4c;
  uVar12 = DAT_182670924;
  uVar7 = DAT_1826707ac;
  uVar25 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar30 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar5 + -0xb78) =
       *plVar33 + (CONCAT44(uVar14,uVar8) ^ 0x7b3c2c7754c7ee71) * 8 ^ uVar25;
  uVar37 = CONCAT44(uVar12,uVar12);
  uVar27 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar5 + -0xce0) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar30 ^ 0xfffff487)) ^ uVar25) ^ uVar34 ^ uVar37;
  uVar12 = DAT_1826707c4;
  bVar36 = (byte)uVar19 ^ (byte)DAT_182670a94;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xf523cd21)) =
       CONCAT44(uVar10,uVar13) ^ 0xd32c14dd34044df | CONCAT44(uVar11,uVar11) ^ *puVar2;
  uVar16 = DAT_1826707f0;
  lVar5 = DAT_1826707a0;
  local_90 = (byte)uVar14;
  uVar25 = (ulonglong)DAT_1826707f0;
  uVar27 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0xefdfd31f)) ^ uVar37) >>
           ((local_90 ^ 0x67) & 0x3f) ^ CONCAT44(uVar19,uVar19);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar27;
  lVar6 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_182670828;
  uVar38 = uVar15 | DAT_1826707d4;
  *(byte *)(lVar5 - (uVar25 ^ 0x4e92d89d)) = bVar36 ^ (byte)uVar27;
  uVar8 = DAT_1826707b0;
  lVar5 = DAT_1826707a0;
  DAT_1826707f4 = uVar38;
  *(ulonglong *)(DAT_1826707a0 + -0x308) =
       *(longlong *)(lVar6 - ((ulonglong)DAT_1826707b0 ^ 0xefdfde97)) +
       (CONCAT44(uVar9,uVar22) ^ 0x3026468e84c3d3b2) ^ uVar30;
  uVar37 = (ulonglong)DAT_182670ae8;
  uVar27 = (ulonglong)DAT_1826707b8;
  uVar25 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *(ulonglong *)(lVar5 + -0x220) =
       CONCAT44(DAT_1826707a8,uVar16) ^ uVar26 ^ *(ulonglong *)(lVar5 + -0x660) ^ 0xb5ebebfe23f286ce
  ;
  uVar18 = DAT_182670a60;
  uVar11 = DAT_182670a58;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar40 ^ 0xcc49cc93)) ^ uVar30) =
       *(byte *)(lVar5 - (uVar27 ^ 0xffb3de9c)) ^ (byte)DAT_182670a40 ^ (byte)DAT_182670a94;
  puVar28 = (ulonglong *)
            (*plVar33 +
            ((CONCAT44(uVar7,uVar22) ^ 0xffffffff84c3d38f) +
            (CONCAT44(uVar8,uVar17) ^ 0xefdfdfffefdfdfff) * 0xc) * 8);
  *puVar1 = (ulonglong)puVar28 ^ CONCAT44(uVar18,uVar18);
  *puVar2 = *puVar28 ^ uVar34 ^ uVar25;
  bVar36 = (byte)DAT_182670a2c;
  uVar27 = (*(ulonglong *)(lVar5 - (uVar32 ^ 0x7b3c29ff)) ^ uVar25) >>
           (((byte)uVar38 ^ 0xe7) & 0x3f);
  uVar25 = uVar27 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0xce0) = uVar25;
  *(byte *)(lVar5 + -0xdd9) = (byte)uVar11 ^ bVar36 ^ (byte)uVar25;
  puVar42 = (ulonglong *)(lVar5 - ((ulonglong)uVar38 ^ 0xfffc289f));
  *puVar42 = uVar27 >> ((local_90 ^ 0x72) & 0x3f);
  pbVar29 = (byte *)(*(longlong *)(lVar5 - ((ulonglong)uVar38 ^ 0xfffc2f97)) +
                    (CONCAT44(uVar15,uVar15) ^ 0xbcfc0298bcfc02a3));
  *(ulonglong *)(lVar5 + -0xbc0) = (ulonglong)pbVar29 ^ uVar37;
  *(ulonglong *)(lVar5 + -0x220) =
       (CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar5 + -0x6b8)) >> (((byte)uVar38 ^ 0xfa) & 0x3f);
  uVar11 = DAT_182670a1c;
  *pbVar29 = *(byte *)(lVar5 - (uVar39 ^ 0xbcfc0f41)) ^ bVar36 ^ (byte)DAT_182670a40;
  uVar27 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0xb78) =
       *plVar33 +
       ((uVar35 ^ 0x7b3c2c777b3c2c70) + (CONCAT44(uVar38,uVar14) ^ 0xfffc2eff7b3c2c77) * 0xc) * 8 ^
       uVar27;
  uVar11 = DAT_182670a6c;
  uVar25 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar38 ^ 0xfffc2b77)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)uVar38 ^ 0xfffc2587)) ^ uVar27) ^ uVar34 ^
       uVar25;
  uVar7 = DAT_182670a0c;
  lVar5 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826708d8;
  bVar36 = (byte)uVar11 ^ (byte)DAT_182670830;
  uVar26 = (ulonglong)DAT_182670a0c;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (uVar25 ^ *puVar2) >> (((byte)uVar15 ^ 0xb8) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  bVar36 = bVar36 ^ *(byte *)(lVar5 + -0x660);
  *(byte *)(lVar5 + -0xa1) = bVar36;
  bVar36 = bVar36 ^ (byte)DAT_182670a40 ^ (byte)DAT_182670830;
  *(ulonglong *)(lVar5 + -0xc50) = *(longlong *)(lVar5 - (uVar39 ^ 0xbcfc03f0)) + 0x3cU ^ uVar27;
  uVar25 = CONCAT44(DAT_182670850,DAT_182670850);
  *(byte *)(*(ulonglong *)(lVar5 - (uVar32 ^ 0x7b3c2027)) ^ uVar27) = bVar36;
  uVar16 = DAT_1826707e4;
  lVar6 = DAT_1826707a0;
  lVar5 = *plVar33;
  uVar30 = (ulonglong)DAT_1826707e4;
  *puVar1 = (ulonglong)(lVar5 + 0x38) ^ uVar25;
  *(ulonglong *)(lVar6 + -0xce0) =
       CONCAT44(uVar16,uVar38) ^ 0x8862e6a692d74392 |
       *(ulonglong *)(lVar6 + -0xd88) ^ CONCAT44(uVar20,uVar20);
  uVar11 = DAT_182670aec;
  uVar35 = (ulonglong)DAT_1826707a8;
  puVar28 = (ulonglong *)(lVar6 - (uVar39 ^ 0xbcfc0420));
  *puVar28 = CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar5 + 0x38) ^ uVar34;
  *(ulonglong *)(lVar6 - (uVar35 ^ 0x9802f934)) =
       CONCAT44(uVar38,uVar22) ^ 0x2c29753b8ccf7b64 | *(ulonglong *)(lVar6 + -0x220);
  lVar5 = DAT_1826707a0;
  bVar36 = (byte)uVar11 ^ (byte)DAT_18267098c;
  uVar25 = (ulonglong)DAT_182670838;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*puVar28 >> 0x20 ^ uVar26) >> 8 ^ CONCAT44(uVar11,uVar11);
  *(byte *)(lVar5 + -0x739) = bVar36 ^ *(byte *)(lVar5 + -0x660);
  uVar27 = CONCAT44(uVar15,DAT_1826707bc);
  *(ulonglong *)(lVar5 + -0xce0) =
       CONCAT44(uVar9,uVar14) ^ 0x3ec53419caf63656 | CONCAT44(uVar8,uVar14) ^ 0xe01c70499041103f;
  *(undefined1 *)(lVar5 + -0x249) = **(undefined1 **)(lVar5 + -0x4f8);
  *(ulonglong *)(lVar5 - (uVar32 ^ 0x7b3c20df)) =
       (uVar27 ^ 0xbcfc0298468e301b) + *(longlong *)(lVar5 + -0x168) ^ uVar25;
  uVar18 = DAT_182670ab4;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar39 ^ 0xbcfc0e30)) ^ uVar25) =
       *(byte *)(lVar5 - ((ulonglong)uVar38 ^ 0xfffc29c6)) ^ (byte)DAT_182670a40 ^
       (byte)DAT_18267098c;
  uVar8 = DAT_182670998;
  uVar7 = DAT_1826707d8;
  uVar11 = DAT_1826707c0;
  lVar6 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_182670998;
  uVar27 = CONCAT44(uVar18,uVar18);
  puVar28 = (ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x7b3c270f));
  *(ulonglong *)(DAT_1826707a0 + -0xb78) =
       (CONCAT44(uVar13,DAT_1826707d8) ^ 0xcc49cf9b1189ab38) * 0x60 +
       *(longlong *)(lVar5 - ((ulonglong)DAT_1826707e8 ^ 0xefdfdd2f)) + 0x38 ^ uVar27;
  uVar19 = DAT_182670ac8;
  uVar25 = *(ulonglong *)(*puVar28 ^ uVar27) ^ CONCAT44(uVar8,uVar8) ^ uVar34;
  *(ulonglong *)(lVar6 + -0xd88) = uVar25;
  bVar31 = (byte)DAT_182670aa4;
  uVar27 = (ulonglong)DAT_1826707d0;
  uVar25 = (uVar25 >> 0x20 ^ uVar26) >> 0x10 ^ CONCAT44(uVar19,uVar19);
  *puVar2 = uVar25;
  uVar26 = (ulonglong)DAT_182670914;
  *(byte *)(DAT_1826707a0 - (uVar27 ^ 0xb3adfd6e)) = (byte)uVar19 ^ bVar31 ^ (byte)uVar25;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xbcfc01d0)) =
       (CONCAT44(uVar10,uVar11) ^ 0x468e3026ab3811b7) + *(longlong *)(DAT_1826707a0 + -0x168) ^
       uVar26;
  bVar36 = (byte)DAT_182670a40 ^ *(byte *)(lVar5 + -0x249);
  *(uint *)(lVar5 + -0xb54) = *(uint *)(lVar5 + -0x540) | 0x23ad7c14;
  *(byte *)(*(ulonglong *)(lVar5 + -0x348) ^ uVar26) = bVar36 ^ bVar31;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (CONCAT44(uVar14,uVar11) ^ 0xdfb1cf41b91988a0) - *(longlong *)(lVar5 + -0x220);
  uVar8 = DAT_182670ac4;
  puVar28 = (ulonglong *)
            (*plVar33 +
            ((CONCAT44(uVar7,DAT_1826707b8) ^ 0x1189ab38ffb3dfa2) +
            (CONCAT44(uVar38,uVar13) ^ 0xfffc2effcc49cf9b) * 0xc) * 8);
  uVar27 = (ulonglong)DAT_182670ac4;
  uVar25 = (ulonglong)DAT_1826707b4;
  *puVar1 = (ulonglong)puVar28 ^ CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar37 = CONCAT44(uVar8,uVar8) ^ *puVar28 ^ uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar37;
  lVar5 = DAT_1826707a0;
  bVar36 = (byte)DAT_182670934;
  uVar26 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (uVar37 >> 0x20 ^ uVar27) >> 0x18 ^ CONCAT44(DAT_182670934,DAT_182670934);
  bVar31 = (byte)_DAT_18267097c;
  *(byte *)(lVar5 - (uVar25 ^ 0x30264677)) = bVar36 ^ bVar31 ^ *(byte *)(lVar5 + -0x660);
  uVar27 = (ulonglong)DAT_18267099c;
  *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xf523c221)) =
       *(longlong *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x54c7ef1e)) + 0x3fU ^ uVar27;
  uVar20 = DAT_182670b08;
  uVar18 = DAT_1826708f4;
  lVar5 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x9802f19c)) ^ uVar27) =
       *(byte *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0x27ffad4a)) ^ bVar31 ^ (byte)DAT_182670a40;
  uVar27 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar5 + -0xb78) =
       *plVar33 + (CONCAT44(uVar38,uVar38) ^ 0xfffc2efffffc2ef7) * 8 ^ uVar27;
  uVar18 = DAT_182670a3c;
  *(ulonglong *)(lVar5 + -0x220) = CONCAT44(uVar19,uVar19) ^ *puVar2 | 0xdb8b3d5ea83792dc;
  uVar7 = DAT_1826707d0;
  uVar25 = CONCAT44(uVar18,uVar18);
  bVar31 = (byte)uVar20 ^ DAT_182670b10;
  uVar27 = *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar30 ^ 0x54c7e50e)) ^ uVar27) ^ uVar34 ^ uVar25;
  *(ulonglong *)(lVar5 + -0xce0) = (uVar23 ^ 0xcae5c000) >> 0xe;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar27;
  *puVar42 = CONCAT44(uVar20,uVar20) ^ uVar25 ^ uVar27;
  bVar31 = bVar31 ^ *(byte *)(lVar5 + -0x660);
  uVar27 = (ulonglong)DAT_182670968;
  *(int *)(lVar5 + -0xaf0) = *(int *)(lVar5 + -0xcec) << (((byte)uVar7 ^ 0x37) & 0x1f);
  *(byte *)(lVar5 + -0xc05) = bVar31;
  bVar36 = (byte)DAT_182670a40 ^ DAT_182670b10;
  *(ulonglong *)(lVar5 + -0xca0) =
       (CONCAT44(uVar22,uVar14) ^ 0x84c3d3887b3c2c37) + *(longlong *)(lVar5 + -0x168) ^ uVar27;
  *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707f0 ^ 0x4e92d504)) ^ uVar27) =
       bVar36 ^ bVar31;
  puVar28 = (ulonglong *)(*plVar33 + (CONCAT44(uVar12,uVar11) ^ 0xbac02463ab381181) * 8);
  *puVar1 = (ulonglong)puVar28 ^ CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *puVar2 = CONCAT44(DAT_18267091c,DAT_18267091c) ^ *puVar28 ^ uVar34;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar22) * 4) = uVar21;
  return;
}



############ FUN_ 180c827d0 size=2530 ############

uint FUN_180c827d0(void)

{
  uint *puVar1;
  undefined8 *puVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  uint uVar27;
  ulonglong uVar12;
  
  uVar10 = DAT_1826707f4;
  uVar9 = DAT_1826707e8;
  uVar8 = DAT_1826707e0;
  uVar7 = DAT_1826707d0;
  uVar5 = DAT_1826707bc;
  uVar4 = DAT_1826707b4;
  puVar2 = DAT_1826707a0;
  uVar17 = (ulonglong)DAT_1826707b4;
  uVar19 = (ulonglong)DAT_1826707e8;
  uVar27 = DAT_1826707f4 ^ DAT_1826707e0;
  uVar21 = (ulonglong)DAT_1826707bc;
  uVar11 = DAT_1826707b4 & DAT_1826707e8;
  uVar12 = (ulonglong)uVar11;
  uVar24 = DAT_1826707bc | DAT_1826707d0;
  uVar20 = (ulonglong)DAT_182670a4c;
  uVar25 = (ulonglong)DAT_1826707f4;
  uVar23 = (ulonglong)DAT_18267091c;
  DAT_1826707b0 = uVar11;
  DAT_1826707c0 = uVar27;
  DAT_1826707ec = uVar24;
  DAT_1826707a0[-0x15f] = CONCAT44(DAT_1826707bc,uVar11) ^ 0x671a831f93c5ad92;
  puVar2[-0x4b] = puVar2[-0x135] ^ uVar20;
  *(undefined8 *)((longlong)puVar2 - ((ulonglong)uVar4 ^ 0xf99b6fb4)) = 0x73afd64dbc055a83;
  uVar22 = *(ulonglong *)((longlong)puVar2 - ((ulonglong)uVar9 ^ 0xf0afab57));
  puVar2[-0x97] = CONCAT44(uVar10,uVar27) ^ 0x4d9ecbf6d9bcfc6c;
  puVar2[-0xd1] = uVar22 ^ uVar23;
  DAT_1826707a0[-0x1d] = (CONCAT44(uVar8,uVar5) ^ 0x6c372e97b1836011) + uVar22;
  *(ulonglong *)((longlong)DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x5674155b)) =
       ((ulonglong)uVar8 << 0x15 | (ulonglong)(uVar27 >> 0xb)) ^ 0x31799b6b16834;
  bVar14 = (byte)DAT_182670a70;
  *(ulonglong *)((longlong)DAT_1826707a0 - (uVar19 ^ 0xf0afa317)) =
       CONCAT44(uVar10,uVar24) ^ 0x35a056fb44fda874;
  puVar2 = DAT_1826707a0;
  *(byte *)((longlong)DAT_1826707a0 + -0x159) =
       *(byte *)(uVar23 ^ DAT_1826707a0[-0xd1]) ^ bVar14 ^ (byte)DAT_182670a90;
  puVar2[-0xd1] = CONCAT44(uVar5,uVar27) ^ 0xa88845ac5923603a;
  puVar2[-0xf2] = (CONCAT44(uVar11,uVar10) ^ 0xf08b260cafef7fbe) + (uVar20 ^ puVar2[-0x4b]);
  puVar2[-0xfb] = *(ulonglong *)((longlong)puVar2 - (uVar17 ^ 0xf99b6e8c)) | puVar2[-0x82];
  *(ulonglong *)((longlong)puVar2 - (uVar12 ^ 0xf08b2e9c)) =
       CONCAT44(uVar7,uVar5) ^ 0xa663e0db6e502081;
  puVar2[-0x82] = CONCAT44(uVar27,uVar8) ^ 0x47585fc512d4f518;
  *(ulonglong *)((longlong)puVar2 - ((ulonglong)uVar24 ^ 0xf7f77e6b)) =
       CONCAT44(uVar5,uVar9) ^ 0x86ac1545505a0c75;
  *(byte *)(*(ulonglong *)((longlong)puVar2 - (uVar25 ^ 0xafef7de7)) ^ uVar20) =
       bVar14 ^ *(byte *)((longlong)puVar2 + -0x159);
  *(byte *)((longlong)puVar2 + -0x159) = (byte)uVar27 ^ 0x5d;
  puVar2[-0x4c] = puVar2[-0xf2];
  *(uint *)((longlong)puVar2 + -0x9ec) = uVar5 ^ 0x542aabce;
  uVar3 = DAT_1826707a8;
  uVar22 = (ulonglong)DAT_1826707a8;
  uVar23 = (ulonglong)DAT_182670ad8;
  uVar20 = (ulonglong)DAT_182670888;
  *(ulonglong *)((longlong)puVar2 - ((ulonglong)uVar8 ^ 0x6c372907)) =
       CONCAT44(uVar7,uVar27) ^ 0x86784dbf50340b03;
  uVar6 = DAT_1826707c8;
  puVar2[-0xbf] = puVar2[-0x1d];
  uVar15 = uVar3 * uVar6;
  uVar25 = (ulonglong)uVar15;
  DAT_1826707c4 = uVar15;
  puVar2[-0x1d] = CONCAT44(uVar15,uVar6) ^ 0xd02a28f83063a5db;
  puVar18 = (ulonglong *)((longlong)puVar2 - (uVar22 ^ 0xdffefc9d));
  puVar2[-0x165] = uVar23 ^ *puVar18;
  *puVar18 = 0x26e81155c41a1f1;
  puVar2[-0x1a7] = CONCAT44(uVar6,uVar3) ^ 0xf0ad397373739422;
  puVar2[-0xde] = 0x22d08ed12fef66c;
  puVar2[-0xc2] = 0xdf281db38c0b58b5;
  puVar18 = (ulonglong *)((longlong)puVar2 - ((ulonglong)uVar3 ^ 0xdffefb5d));
  *puVar18 = *(ulonglong *)((longlong)puVar2 - (uVar25 ^ 0x6844ea8)) ^ uVar20;
  *(ulonglong *)((longlong)puVar2 - (uVar12 ^ 0xf08b23f4)) =
       CONCAT44(uVar15,uVar15) ^ 0xd82ecdf2b9fe1b9f;
  puVar2[-0x66] = (CONCAT44(uVar6,uVar6) ^ 0xb1836190b1836191) + (uVar20 ^ *puVar18);
  *(ulonglong *)((longlong)puVar2 - (uVar25 ^ 0x68446d8)) =
       (CONCAT44(uVar9,uVar7) ^ 0x719e7e253af41aee) + puVar2[-0x176];
  bVar14 = (byte)DAT_182670950;
  puVar2[-0x176] = CONCAT44(uVar4,uVar6) ^ 0xc35647a1b0308ba0;
  puVar18 = DAT_1826707a0 + -0xb4;
  DAT_1826707a0[-0x1b1] = CONCAT44(uVar5,uVar24) ^ 0x2763e9f6fe091883;
  puVar2 = DAT_1826707a0;
  bVar13 = *(byte *)(uVar20 ^ *puVar18) ^ bVar14 ^ (byte)DAT_182670a90;
  pbVar26 = (byte *)(uVar23 ^ DAT_1826707a0[-0x165]);
  DAT_1826707a0[-0xb4] = CONCAT44(uVar8,uVar24) ^ 0xba193fd8f7b045af;
  *(byte *)((longlong)puVar2 + -0xcd1) = bVar13;
  uVar20 = (ulonglong)DAT_1826708ac;
  puVar2[-0xa7] = pbVar26 + (CONCAT44(uVar10,uVar4) ^ 0xafef7fbff99b661d);
  *pbVar26 = bVar14 ^ bVar13;
  *(byte *)((longlong)puVar2 - (uVar12 ^ 0xf08b2add)) = (byte)uVar27 ^ 0x19;
  puVar2[-0xbb] = puVar2[-0xa7];
  puVar2[-0xa7] = CONCAT44(uVar3,uVar6) ^ 0xea9af5eb081b3657;
  puVar2[-0x39] = *(undefined8 *)((longlong)puVar2 - ((ulonglong)uVar6 ^ 0xb18362a0));
  *(undefined8 *)((longlong)puVar2 - (uVar22 ^ 0xdffefdcd)) = 0x19cf76ebd40a6e28;
  puVar2[-0x10e] = uVar20 ^ puVar2[-0xbb];
  puVar2[-0xbb] = CONCAT44(uVar9,uVar8) ^ 0x1a67b4c14f332c47;
  pbVar26 = (byte *)puVar2[-0x39];
  puVar2[-0xd3] = (ulonglong)DAT_1826708fc ^ (ulonglong)pbVar26;
  puVar2[-0x39] = 0x31995f4a8a073fef;
  uVar16 = DAT_1826707d0 ^ 0x1834bcd7;
  *(byte *)((longlong)DAT_1826707a0 - (uVar21 ^ 0xb1836629)) =
       *pbVar26 ^ (byte)DAT_182670a90 ^ (byte)DAT_182670af8;
  *(uint *)(DAT_1826707a0 + -0x50) = DAT_1826707e0 ^ 0xd96497;
  *(uint *)((ulonglong)DAT_182670818 ^ DAT_1826707a0[-0x1a8]) = uVar16;
  bVar14 = *(byte *)((longlong)DAT_1826707a0 + -0x639) ^ (byte)DAT_182670af8;
  DAT_1826707a0[-0x1a8] = 0x628e30de9fc7b1db;
  DAT_1826707a0[-0xd3] = CONCAT44(uVar15,uVar11) ^ 0xf453c4975456e3f1;
  *(byte *)(DAT_1826707a0[-0x10e] ^ uVar20) = bVar14;
  *(byte *)((longlong)DAT_1826707a0 + -0x639) = (byte)DAT_1826707e8 ^ 0x18;
  DAT_1826707a0[-0xaf] = CONCAT44(uVar24,uVar11) ^ 0x46ff5ef70b8474e8;
  DAT_1826707a0[-0xdb] = CONCAT44(uVar10,uVar27) ^ 0xaf1e5a47d67c8051;
  *(ulonglong *)((longlong)DAT_1826707a0 - ((ulonglong)uVar27 ^ 0xc3d85328)) =
       CONCAT44(uVar15,uVar6) ^ 0xd57e4f338c1c44fe;
  DAT_1826707a0[-0x1b0] = 0x6e6843ce1deca4e1;
  *(undefined8 *)((longlong)DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xb1836210)) = 0x2af47e3b8a226da8;
  DAT_1826707a0[-0x150] = CONCAT44(uVar27,uVar15) ^ 0x8646a21bf81aa479;
  DAT_1826707a0[-0x9a] = CONCAT44(uVar5,uVar24) ^ 0x70724700567057d3;
  DAT_1826707a0[-5] = CONCAT44(uVar9,uVar7) ^ 0x107a1ddee55283d;
  DAT_1826707a0[-0x1a5] = CONCAT44(uVar4,uVar8) ^ 0xe847596788dc24f2;
  DAT_1826707a0[-0x83] = CONCAT44(uVar10,uVar7) ^ 0x76a81dc494074b04;
  DAT_1826707a0[-4] = CONCAT44(uVar3,uVar8) ^ 0x2feb2f3f7fbb4264;
  *(undefined8 *)((longlong)DAT_1826707a0 - (uVar17 ^ 0xf99b6c34)) = 0x4d4c66e1f396cfc1;
  DAT_1826707a0[-0xd5] = CONCAT44(uVar7,uVar11) ^ 0x87d7c0c2d1493e02;
  DAT_1826707a0[-0xfe] = CONCAT44(uVar11,uVar5) ^ 0x4a74cc899d39a59a;
  DAT_1826707a0[-0x18b] = CONCAT44(uVar10,uVar4) ^ 0x4a13d80b90a3eda;
  *(ulonglong *)((longlong)DAT_1826707a0 - (uVar19 ^ 0xf0afacf7)) =
       CONCAT44(uVar11,uVar7) ^ 0xe7137511140afe7f;
  DAT_1826707a0[-0x157] = 0x525dd0b56dfc3d80;
  DAT_1826707a0[-0x4b] = 0xccaf9b3c1f576e78;
  DAT_1826707a0[-0x165] = 0x2b16a6b1e869315a;
  DAT_1826707a0[-0x10e] = CONCAT44(uVar24,uVar24) ^ 0xf694b11ac70b4607;
  puVar1 = *(uint **)((uVar19 ^ 0xf0afafbf) + (longlong)DAT_1826707a0);
  if (puVar1 != (uint *)0x0) {
    *puVar1 = *(uint *)((longlong)DAT_1826707a0 - (uVar17 ^ 0xf99b6cec)) ^ DAT_182670a00;
  }
  uVar3 = DAT_1826707a8;
  *(undefined4 *)((longlong)DAT_1826707a0 - (uVar25 ^ 0x68441a0)) = 0;
  DAT_182670798 = DAT_1826707a0 + 1;
  DAT_1826707a0 = (undefined8 *)*DAT_1826707a0;
  return uVar3 ^ 0xdffefefd;
}



############ FUN_ 180d1e5c0 size=5593 ############

void FUN_180d1e5c0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  byte bVar49;
  ulonglong *puVar50;
  ulonglong *puVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  ulonglong uVar54;
  byte local_128;
  
  uVar12 = DAT_182670ae0;
  uVar10 = DAT_1826707e8;
  uVar9 = DAT_1826707e4;
  uVar16 = DAT_1826707cc;
  uVar6 = DAT_1826707bc;
  uVar5 = DAT_1826707b4;
  uVar4 = DAT_1826707ac;
  uVar3 = DAT_1826707a8;
  uVar25 = (ulonglong)DAT_1826707e4;
  DAT_1826707dc = DAT_1826707e4 ^ DAT_1826707a8;
  uVar52 = (ulonglong)DAT_1826707e8;
  uVar47 = DAT_1826707e8 & DAT_1826707cc;
  uVar33 = DAT_1826707ac << 0x10 | DAT_1826707ac >> 0x10;
  uVar32 = (ulonglong)DAT_1826707b4;
  DAT_1826707c4 =
       (DAT_1826707bc << 0x10 | DAT_1826707bc & 0xff00) << 8 | DAT_1826707bc >> 8 & 0xff00 |
       DAT_1826707bc >> 0x18;
  uVar27 = (ulonglong)DAT_1826707c4;
  DAT_1826707ec = DAT_1826707f4 + DAT_1826707b4;
  uVar22 = *(uint *)(&DAT_18260f758 + DAT_182670c34) ^ DAT_1826707f4;
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670c34) ^ DAT_1826707ec;
  uVar45 = CONCAT44(DAT_182670900,DAT_182670900);
  uVar19 = CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar29 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  puVar50 = (ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xede9f58e));
  DAT_1826707b8 = uVar47;
  DAT_1826707e0 = uVar33;
  *puVar50 = (uVar19 ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) -
             (uVar45 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) ^ uVar29;
  lVar1 = DAT_1826707a0;
  bVar17 = (byte)(uVar4 >> 0x10);
  uVar30 = CONCAT44(uVar12,uVar12);
  uVar23 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar20 = CONCAT44(DAT_182670978,DAT_182670978) ^ uVar23 ^ uVar30 ^
           *(ulonglong *)(DAT_1826707a0 + -0x220) ^ *(ulonglong *)(DAT_1826707a0 + -0xf0);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar20;
  uVar34 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  bVar18 = (byte)uVar10;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar47 ^ 0x92005652)) =
       (uVar20 ^ uVar30) >> ((bVar17 ^ 0xd) & 0x3f) ^ uVar34;
  uVar20 = (ulonglong)uVar16;
  puVar53 = (ulonglong *)(lVar1 - (uVar20 ^ 0xd32c5822));
  uVar35 = CONCAT44(DAT_182670914,DAT_182670914);
  puVar21 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar4 ^ 0x2d286652));
  uVar28 = (ulonglong)uVar3;
  *puVar21 = (uVar30 ^ *puVar53) << ((bVar18 ^ 0x69) & 0x3f) ^ uVar35;
  lVar1 = DAT_1826707a0;
  puVar41 = (ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0x600a2b48));
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0x220);
  uVar34 = uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x658) | uVar34 ^ *puVar41;
  uVar30 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar36 = uVar34 ^ uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0x118) = uVar36;
  uVar12 = DAT_182670850;
  *(ulonglong *)(lVar1 + -0x890) = (uVar23 ^ *puVar24) - uVar34 ^ uVar29;
  lVar2 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar12,uVar12);
  bVar26 = (byte)(uVar6 >> 0x18);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0xd249ea1d)) =
       *(ulonglong *)(lVar1 - (uVar20 ^ 0xd32c598a)) ^ uVar35 ^ uVar30 ^ uVar29 ^ uVar36;
  uVar6 = DAT_1826707ec;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar2 + -0xf0);
  uVar23 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar2 + -0xa18) = uVar35 >> ((bVar26 ^ 0xc5) & 0x3f) ^ uVar23;
  uVar8 = DAT_1826707dc;
  lVar1 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707dc;
  uVar34 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *puVar41 = uVar35 << (((byte)uVar6 ^ 0x14) & 0x3f) ^ uVar34;
  uVar6 = DAT_1826708b4;
  puVar24 = (ulonglong *)(lVar1 - (uVar27 ^ 0xedea4fb2));
  uVar30 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar36 = (ulonglong)DAT_1826708b4;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707f4 ^ 0x29ac98a7)) =
       (uVar34 ^ *puVar24 | uVar23 ^ *(ulonglong *)(lVar1 + -0xa18)) ^ uVar30;
  uVar42 = CONCAT44(uVar6,uVar6);
  uVar35 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar1 + -0x220) =
       (uVar29 ^ *puVar50) - (uVar30 ^ *(ulonglong *)(lVar1 + -0x658)) ^ uVar35;
  *(ulonglong *)(lVar1 + -0x118) = (CONCAT44(uVar4,uVar47) ^ 0xaaf61331f8809d1) + 0xc219158a5c63e714
  ;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0x3440bab1)) =
       uVar42 ^ uVar29 ^ uVar45 ^ *(ulonglong *)(lVar1 + -0xd38) ^ *(ulonglong *)(lVar1 + -0x890);
  *(int *)(lVar1 + -0x43c) = *(int *)(lVar1 + -0xc0c) + *(int *)(lVar1 + -0x2d4);
  uVar45 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(lVar1 + -0xa18) = (*(ulonglong *)(lVar1 + -0xf0) >> 0x20 ^ uVar36) >> 8 ^ uVar45;
  uVar6 = DAT_1826707bc;
  puVar41 = (ulonglong *)(lVar1 - ((ulonglong)DAT_1826707bc ^ 0xd249ec8d));
  *puVar41 = CONCAT44(DAT_1826707bc,uVar10) ^ 0x9a184180808500a | 0x96186bc7d6e6af91;
  uVar23 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar33 ^ 0x600a2698)) =
       (uVar42 ^ *(ulonglong *)(lVar1 + -0xf0)) << (((byte)uVar8 ^ 0x71) & 0x3f) ^ uVar23;
  lVar2 = DAT_1826707a0;
  uVar36 = uVar23 ^ *(ulonglong *)(lVar1 + -0xbb0) | uVar45 ^ *puVar53;
  uVar46 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(uint *)(lVar1 + -0x9ec) = DAT_1826707b8 ^ uVar8 ^ 0xa91eb841;
  uVar12 = DAT_182670a90;
  uVar23 = uVar36 ^ uVar46;
  *(ulonglong *)(lVar1 + -0x118) = uVar23;
  uVar13 = DAT_182670ae8;
  uVar45 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0xd38) = (uVar29 ^ *(ulonglong *)(lVar2 + -0x890)) - uVar36 ^ uVar45;
  uVar12 = DAT_182670b0c;
  lVar1 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar43 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  uVar23 = uVar36 ^ uVar46 ^ uVar35 ^ *(ulonglong *)(lVar2 + -0x220) ^ uVar23;
  *(ulonglong *)(lVar2 + -0x660) = uVar23;
  uVar38 = (uVar36 ^ *puVar24) >> ((bVar18 ^ 0x46) & 0x3f);
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0xf0) = uVar38 ^ uVar43;
  *(ulonglong *)(lVar1 + -0xbb0) = (uVar36 ^ uVar23) << 0xc ^ uVar31;
  uVar12 = DAT_182670a44;
  *(ulonglong *)(lVar1 + -0x890) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0x3440bb59)) ^ uVar46) << ((bVar18 ^ 0x7b) & 0x3f);
  uVar36 = CONCAT44(uVar12,uVar12);
  puVar53 = (ulonglong *)(lVar1 - ((ulonglong)uVar33 ^ 0x600a2b48));
  uVar23 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar1 + -0x660) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x2d286bba)) ^ uVar31 | uVar38) ^ uVar36;
  uVar12 = DAT_182670a98;
  uVar11 = DAT_1826707f4;
  puVar50 = (ulonglong *)(lVar1 - (uVar23 ^ 0x179695ad));
  *puVar50 = CONCAT44(DAT_1826707f4,uVar16) ^ 0x69d84af062602d26 | uVar36 ^ *puVar53;
  lVar1 = DAT_1826707a0;
  uVar48 = CONCAT44(uVar12,uVar12);
  uVar31 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(DAT_1826707a0 + -0x118) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xd32c501a)) ^ uVar35) -
       (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xede9f85e)) ^ uVar36) ^ uVar48;
  *(ulonglong *)(lVar1 + -0xf0) =
       uVar31 ^ uVar45 ^ uVar30 ^ *(ulonglong *)(lVar1 + -0xd38) ^ *puVar21;
  uVar31 = uVar31 ^ *(ulonglong *)(lVar1 + -0xf0);
  *(longlong *)(lVar1 + -0xbb0) = -0x340df039463c5297 << (((byte)uVar9 ^ 0x62) & 0x3f);
  uVar7 = DAT_1826707bc;
  bVar49 = (byte)uVar3;
  uVar30 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar1 + -0x890) = uVar31 >> ((bVar49 ^ 0x11) & 0x3f) ^ uVar30;
  *(uint *)(lVar1 + -0xaf0) = (DAT_1826707e8 ^ 0x2de08f03) >> (((byte)uVar7 ^ 0xe3) & 0x1f);
  uVar23 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar1 - (uVar27 ^ 0xedea4bf2)) = uVar31 << (((byte)uVar16 ^ 0x3d) & 0x3f) ^ uVar23;
  uVar12 = DAT_1826709d8;
  uVar23 = uVar23 ^ *(ulonglong *)(lVar1 + -0x220) | uVar30 ^ *(ulonglong *)(lVar1 + -0x890);
  uVar35 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar1 + -0x658) = uVar23 ^ uVar35;
  lVar1 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x3440b1f1)) =
       (uVar45 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) - uVar23 ^ uVar30;
  uVar39 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  puVar24 = (ulonglong *)(lVar1 - (uVar37 ^ 0x544a9131));
  local_128 = (byte)uVar47;
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xede9fece)) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar47 ^ 0x9200512a)) ^ uVar39 ^ uVar35 ^ uVar48 ^
       *puVar24;
  lVar1 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) >> ((local_128 ^ 0x3c) & 0x3f) ^ uVar35;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar11 ^ 0x29ac93c7)) = 0;
  lVar1 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_182670888,DAT_182670888);
  *puVar24 = (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) << ((bVar17 ^ 0x1a) & 0x3f) ^ uVar23;
  uVar45 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar1 - (uVar28 ^ 0x600a2730)) =
       (uVar23 ^ *(ulonglong *)(lVar1 + -0x658) | uVar35 ^ *(ulonglong *)(lVar1 + -0x220)) ^ uVar45;
  uVar12 = DAT_182670ab4;
  *(ulonglong *)(lVar1 + -0x890) = (uVar45 ^ *(ulonglong *)(lVar1 + -0xa18)) + 0xf6099a4b92ba1779;
  uVar13 = DAT_18267089c;
  puVar51 = (ulonglong *)(lVar1 - ((ulonglong)DAT_1826707ec ^ 0x17969c25));
  uVar23 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar1 - (uVar20 ^ 0xd32c5f02)) =
       (uVar48 ^ *puVar51) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0x29ac9847)) ^ CONCAT44(uVar12,uVar12)) ^ uVar23
  ;
  uVar12 = DAT_182670818;
  *(ulonglong *)(lVar1 + -0xf0) =
       (uVar23 ^ *(ulonglong *)(lVar1 + -0xd38)) - (uVar45 ^ *(ulonglong *)(lVar1 + -0xa18)) ^
       uVar48;
  uVar14 = DAT_182670ad8;
  uVar38 = CONCAT44(uVar12,uVar12);
  uVar23 = (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar1 + -0x588)) +
           (*(ulonglong *)(lVar1 + -0x438) ^ uVar38);
  *(ulonglong *)(lVar1 + -0x220) = uVar23 ^ CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar1 + -0x658) = (uVar45 ^ *(ulonglong *)(lVar1 + -0xa18)) - uVar23 ^ uVar19;
  uVar12 = DAT_1826709f0;
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar45 = uVar30 ^ uVar36 ^ *(ulonglong *)(lVar1 + -0x660) ^ uVar23 ^
           *(ulonglong *)(lVar1 + -0xbb0);
  *(ulonglong *)(lVar1 + -0x890) = uVar45;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 + -0x118) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xede9f6ae)) ^ uVar23) >> ((bVar49 ^ 0x38) & 0x3f)
       ^ uVar31;
  lVar1 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = (uVar45 ^ uVar23) << ((bVar26 ^ 0xe2) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar1 + -0xa18) =
       CONCAT44(uVar4,uVar5) ^ CONCAT44(uVar10,uVar10) ^ 0x33a2d656b610c849;
  uVar7 = DAT_1826707f4;
  lVar1 = DAT_1826707a0;
  puVar21 = (ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xedea44ea));
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  uVar44 = CONCAT44(DAT_182670864,DAT_182670864);
  uVar43 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0x29ac9fe7)) ^ uVar31 |
           *puVar21 ^ uVar35;
  uVar23 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar43 ^ uVar44;
  uVar5 = DAT_18267082c;
  uVar54 = (ulonglong)DAT_18267082c;
  uVar31 = (uVar30 ^ *puVar24) - (*(ulonglong *)(lVar1 + -0x420) ^ uVar23);
  uVar30 = CONCAT44(uVar3,DAT_1826707ec);
  *(ulonglong *)(lVar1 + -0x118) = uVar31 ^ CONCAT44(DAT_182670998,DAT_182670998);
  uVar12 = DAT_1826709a4;
  uVar40 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar1 + -0xd38) = (uVar30 ^ 0x2c032b0abc937686) + uVar31;
  lVar1 = DAT_1826707a0;
  uVar45 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar31 - uVar43 ^ uVar45;
  uVar5 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar10,DAT_1826707bc);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x29ac9adf)) =
       (CONCAT44(uVar47,uVar9) ^ 0x6dffafcdcbbf45b9) -
       (*(ulonglong *)(lVar1 - (uVar20 ^ 0xd32c540a)) ^ uVar38) ^ uVar40;
  uVar12 = DAT_1826709cc;
  *(ulonglong *)(lVar2 + -0xbb0) =
       (uVar30 ^ 0x126479bceaa801cb) - (CONCAT44(uVar9,uVar8) ^ 0xa933868c6ee358ec);
  lVar1 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar12,uVar12);
  uVar30 = (*(ulonglong *)(lVar2 + -0x420) ^ uVar40) + (*puVar41 ^ uVar44) ^ uVar31;
  uVar43 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar30;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0xd249ebf5)) =
       *(ulonglong *)(lVar1 - (uVar28 ^ 0x600a2dd8)) ^ uVar48 ^ uVar43 ^ uVar30 ^ uVar31;
  uVar30 = (*(ulonglong *)(lVar1 + -0x118) ^ uVar43) >> ((bVar18 ^ 0x52) & 0x3f);
  uVar28 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar1 + -0xbb0) = uVar30 ^ CONCAT44(DAT_182670adc,DAT_182670adc);
  uVar12 = DAT_182670a60;
  *(ulonglong *)(lVar1 + -0x660) =
       (*(ulonglong *)(lVar1 + -0x118) ^ uVar43) << ((local_128 ^ 0x12) & 0x3f) ^ uVar28;
  uVar5 = DAT_1826707c8;
  uVar40 = CONCAT44(uVar12,uVar12);
  *puVar21 = (uVar28 ^ *puVar53 | uVar30) ^ uVar40;
  lVar1 = DAT_1826707a0;
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       *puVar51 ^ *(ulonglong *)(DAT_1826707a0 + -0xa18) ^ uVar43;
  uVar16 = uVar5 ^ DAT_1826707ec;
  uVar31 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  DAT_1826707d8 = uVar16;
  *(ulonglong *)(lVar1 + -0xa18) =
       (uVar48 ^ *puVar24) - (*(ulonglong *)(lVar1 - ((ulonglong)uVar16 ^ 0x6be42a54)) ^ uVar40) ^
       uVar31;
  uVar7 = DAT_1826709e8;
  uVar30 = (ulonglong)DAT_1826709e8;
  *(ulonglong *)(lVar1 + -0x118) =
       (*(ulonglong *)(lVar1 + -0x660) ^ uVar28) << (((byte)uVar5 ^ 0x72) & 0x3f);
  uVar43 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0xbb0) =
       uVar19 ^ *(ulonglong *)(lVar1 + -0x890) ^ uVar43 ^ uVar45 ^ *(ulonglong *)(lVar1 + -0x658);
  puVar21 = (ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x7c72bc31));
  puVar24 = (ulonglong *)(lVar1 - ((ulonglong)uVar16 ^ 0x6be4279c));
  *puVar24 = *puVar21 ^ uVar28 ^ 0xcd81e8b3153a95f2;
  uVar12 = DAT_182670a04;
  puVar41 = (ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x7c72b1e1));
  uVar30 = *(ulonglong *)(lVar1 - ((ulonglong)uVar16 ^ 0x6be42cdc)) >> 0x20 ^ uVar42 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x118) = uVar30;
  uVar19 = CONCAT44(uVar12,uVar12);
  uVar28 = (ulonglong)DAT_1826707ec;
  bVar18 = (byte)uVar16;
  *(ulonglong *)(lVar1 + -0x658) = (*puVar41 ^ uVar43) << ((bVar18 ^ 0x4c) & 0x3f) ^ uVar19;
  lVar2 = DAT_1826707a0;
  puVar53 = (ulonglong *)(lVar1 - (uVar28 ^ 0x17969b65));
  uVar28 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *puVar21 = (uVar42 ^ uVar30 | *puVar53 ^ uVar19) ^ uVar28;
  uVar12 = DAT_182670944;
  *puVar24 = (*(ulonglong *)(lVar2 + -0x890) ^ uVar45) - (*(ulonglong *)(lVar2 + -0x660) ^ uVar28) ^
             uVar35;
  uVar13 = DAT_182670a8c;
  uVar19 = CONCAT44(uVar12,uVar12);
  uVar28 = *(ulonglong *)(lVar2 + -0x660) ^ *(ulonglong *)(lVar2 + -0xa18) ^ uVar19 ^ uVar28 ^
           uVar31;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar28;
  lVar1 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x118) = (uVar28 ^ uVar19) >> ((bVar18 ^ 0x56) & 0x3f) ^ uVar30;
  *puVar53 = (*(ulonglong *)(lVar2 + -0x420) >> 0x20 ^ uVar54) >> 0x11;
  uVar28 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar1 - (uVar27 ^ 0xedea4142)) =
       (*puVar41 ^ uVar19) << ((bVar18 ^ 0x6a) & 0x3f) ^ uVar28;
  uVar7 = DAT_1826707ec;
  uVar19 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar27 = (ulonglong)DAT_1826707ec;
  uVar28 = uVar28 ^ *(ulonglong *)(lVar1 + -0x890) | *(ulonglong *)(lVar1 + -0x118) ^ uVar30;
  uVar45 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar1 + -0x660) = uVar28 ^ uVar19;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 + -0x420) = (*(ulonglong *)(lVar1 + -0xa18) ^ uVar31) - uVar28 ^ uVar45;
  *(int *)(lVar1 + -0x598) = *(int *)(lVar1 + -0x9ec) * *(int *)(lVar1 + -0x9ec);
  *(ulonglong *)(lVar1 + -0x658) =
       *(ulonglong *)(lVar1 - (uVar27 ^ 0x17969005)) ^
       *(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x7c72baa1)) ^ uVar40 ^ uVar35 ^ uVar38;
  bVar18 = (byte)DAT_1826707f4;
  *(ulonglong *)(lVar2 + -0xbb0) = CONCAT44(uVar16,uVar33) ^ 0x244044899401194 | 0xcd8a1b9362ba8a28;
  uVar30 = CONCAT44(DAT_182670840,DAT_182670840);
  uVar28 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar2 + -0x118) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x658)) >> ((bVar18 ^ 0xe9) & 0x3f) ^ uVar30;
  *puVar50 = uVar28 ^ **(ulonglong **)(lVar2 + -0x7b8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar47 ^ 0x92005a2a)) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x658)) << (((byte)uVar5 ^ 0x7b) & 0x3f) ^ uVar36;
  *(uint *)(lVar2 + -0x7e4) = (DAT_1826707f4 ^ 0xabdfeac3) + (DAT_1826707b8 ^ 0xe461db4a);
  uVar28 = *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x17969725)) ^ uVar36 |
           uVar30 ^ *(ulonglong *)(lVar2 + -0x118);
  uVar30 = uVar28 ^ uVar23;
  uVar36 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(lVar2 + -0xd38) = uVar30;
  *(ulonglong *)(lVar2 + -0xbb0) = (*(ulonglong *)(lVar2 + -0xf0) ^ uVar35) - uVar28 ^ uVar36;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x658) =
       CONCAT44(uVar10,uVar8) ^ 0x556db9c8c8a85f14 | CONCAT44(uVar9,uVar16) ^ 0xe4004c46443bfad0;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 - (uVar32 ^ 0xede9ff26)) =
       uVar34 ^ uVar30 ^ uVar45 ^ *(ulonglong *)(lVar1 + -0x420) ^ uVar23;
  uVar28 = (ulonglong)DAT_182670ad0;
  *(ulonglong *)(lVar2 + -0xa18) =
       CONCAT44(uVar6,uVar4) ^ *(ulonglong *)(lVar2 + -0x890) ^ 0xab263767ea841c85;
  lVar1 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(lVar2 + -0xf0) = (*(ulonglong *)(lVar2 + -0x118) >> 0x20 ^ uVar28) >> 0xe ^ uVar32;
  uVar23 = (uVar34 ^ *(ulonglong *)(lVar1 + -0x118)) << ((bVar49 ^ 0x3a) & 0x3f);
  *puVar53 = uVar23 ^ CONCAT44(DAT_1826708d0,DAT_1826708d0);
  uVar23 = uVar32 ^ *(ulonglong *)(lVar1 + -0xf0) | uVar23;
  uVar28 = CONCAT44(DAT_1826707b0,uVar4);
  *(ulonglong *)(lVar1 + -0xd38) = uVar23 ^ uVar29;
  uVar12 = DAT_1826708ac;
  uVar4 = DAT_1826707bc;
  *(ulonglong *)(lVar1 + -0x890) =
       uVar28 ^ 0x75c856973111d5ac | CONCAT44(uVar3,uVar5) ^ 0x2616889bb4c3d5b0;
  *(ulonglong *)(lVar1 - (uVar52 ^ 0xba51766a)) =
       (uVar45 ^ *(ulonglong *)(lVar1 + -0x420)) - uVar23 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 - (uVar37 ^ 0x544a9671)) =
       *(ulonglong *)(lVar1 - (uVar20 ^ 0xd32c545a)) ^
       *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0xd249e15d)) ^ uVar36 ^ uVar19 ^ uVar40;
  uVar12 = DAT_182670934;
  uVar32 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar1 + -0xf0) =
       (*(ulonglong *)(lVar1 + -0x118) ^ uVar40) >> (((byte)uVar4 ^ 0xe1) & 0x3f) ^ uVar32;
  uVar28 = (*(ulonglong *)(lVar1 + -0x118) ^ uVar40) << ((local_128 ^ 6) & 0x3f);
  uVar23 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0x658) = uVar28 ^ uVar46;
  uVar20 = *(ulonglong *)(lVar1 + -0xbb0);
  *(ulonglong *)(lVar1 + -0x890) =
       (*(ulonglong *)(lVar1 - (uVar27 ^ 0x17969dcd)) ^ uVar32 | uVar28) ^ uVar23;
  uVar28 = *(ulonglong *)(lVar1 - (uVar37 ^ 0x544a9ff9));
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar22;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0x3440bc21)) = (uVar36 ^ uVar20) - (uVar28 ^ uVar23) ^ uVar39;
  return;
}



############ FUN_ 180c97270 size=4557 ############

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

void FUN_180c97270(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  ulonglong *puVar20;
  byte *pbVar21;
  byte bVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  byte bVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  uVar12 = DAT_1826707e4;
  uVar6 = DAT_1826707c8;
  lVar2 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707c8;
  uVar28 = (DAT_1826707c8 << 0x10 | DAT_1826707c8 & 0xff00) << 8 | DAT_1826707c8 >> 8 & 0xff00 |
           DAT_1826707c8 >> 0x18;
  uVar19 = (DAT_1826707e4 << 0x10 | DAT_1826707e4 & 0xff00) << 8 | DAT_1826707e4 >> 8 & 0xff00 |
           DAT_1826707e4 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670d8c);
  uVar31 = *(uint *)(&DAT_18260f758 + DAT_182670d8c) ^ DAT_1826707e4;
  uVar34 = (ulonglong)DAT_1826707c8;
  uVar26 = (ulonglong)uVar28;
  uVar33 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  DAT_1826707a8 = uVar19;
  DAT_1826707ac = uVar28;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0x95368818)) =
       CONCAT44(DAT_1826707c8,uVar28) << 0x3a ^ 0x5400000000000000;
  *(byte *)(lVar2 - ((ulonglong)uVar12 ^ 0xa88a3634)) =
       *(byte *)(lVar2 - ((ulonglong)uVar28 ^ 0xcacab98f)) ^ (byte)DAT_1826707f8 ^
       (byte)DAT_182670a10;
  uVar29 = (ulonglong)DAT_1826708c4;
  bVar22 = *(byte *)(lVar2 + -0xa1) ^ DAT_1826709e0 ^ (byte)DAT_182670a10;
  *(ulonglong *)(lVar2 + -0x838) =
       (CONCAT44(uVar6,uVar6) ^ 0xbfbfcacabfbfca82) + *(longlong *)(lVar2 + -0x10) ^ uVar29;
  uVar15 = DAT_182670af4;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar26 ^ 0xcacab787)) ^ uVar29) = bVar22;
  uVar11 = DAT_182670ad0;
  puVar20 = (ulonglong *)(*(longlong *)(lVar2 + -0x2d0) + 0x48);
  *(ulonglong *)(lVar2 + -0xb78) = (ulonglong)puVar20 ^ CONCAT44(uVar15,uVar15);
  uVar29 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x588) = *puVar20 ^ uVar33 ^ uVar29;
  *(undefined8 *)(lVar2 + -0xb78) = 0x751cdc900644665c;
  uVar11 = _DAT_1826709e0;
  bVar22 = (byte)(uVar12 >> 0x18);
  bVar30 = (byte)DAT_182670968;
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 + -0x588) ^ uVar29) >> ((bVar22 ^ 0xa0) & 0x3f) ^
       CONCAT44(DAT_182670968,DAT_182670968);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       CONCAT44(uVar12,uVar6) ^ CONCAT44(uVar12,uVar28) ^ 0xf6f575a7133e158d;
  lVar3 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_182670a50;
  bVar23 = *(byte *)(lVar2 - (uVar26 ^ 0xcacab9e7)) ^ bVar30 ^ (byte)DAT_1826709c4;
  pbVar21 = (byte *)((CONCAT44(uVar6,uVar19) ^ 0xbfbfcaca95368ae1) +
                    *(longlong *)(DAT_1826707a0 + -0x10));
  *(byte *)(DAT_1826707a0 + -0x739) = bVar23;
  bVar23 = bVar23 ^ (byte)DAT_1826709c4;
  *(ulonglong *)(lVar3 + -0x200) = (ulonglong)pbVar21 ^ uVar29;
  *pbVar21 = bVar23 ^ (byte)uVar11;
  uVar29 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar3 + -0xc18) =
       (CONCAT44(uVar12,uVar28) ^ 0x950cb4e65d7bf801) <<
       ((bVar30 ^ *(byte *)(lVar3 + -0x658)) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xbfbfc052)) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((CONCAT44(uVar12,uVar19) ^ 0xa88a369595368aa1) +
       (CONCAT44(uVar6,uVar12) ^ 0xbfbfcacaa88a3695) * 0xc) * 8 ^ uVar29;
  bVar23 = (byte)DAT_182670b0c;
  uVar11 = DAT_1826709e8;
  uVar32 = DAT_1826707dc;
  lVar2 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0x95368d70)) =
       *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xa88a3c0d)) ^ uVar29) ^
       uVar34 ^ uVar33;
  *(undefined8 *)(lVar2 + -0xa98) = 0x594ae00640784c1b;
  uVar9 = DAT_1826707d0;
  lVar2 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_1826707d4,uVar28);
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (CONCAT44(uVar6,uVar32) ^ 0xc34a8b80b7970b29) << (((byte)(uVar6 >> 0x18) ^ 0xa5) & 0x3f);
  uVar4 = DAT_1826707e4;
  uVar5 = DAT_1826707b4;
  uVar34 = (*(ulonglong *)(lVar2 + -0x7d8) ^ uVar34) >> ((bVar22 ^ 0xb8) & 0x3f) ^
           CONCAT44(uVar11,uVar11);
  uVar29 = CONCAT44(uVar9,DAT_1826707e4);
  *(ulonglong *)(lVar2 + -0x660) = uVar34;
  uVar25 = (ulonglong)DAT_182670b00;
  bVar22 = (byte)uVar11 ^ (byte)uVar34 ^ bVar23;
  *(byte *)(lVar2 + -0x249) = bVar22;
  *(ulonglong *)(lVar2 + -0xcf8) = 0x599c6cef79dc69ed - (uVar29 ^ 0x92083c5f21e7e853);
  *(ulonglong *)(lVar2 + -0x530) =
       *(longlong *)(lVar2 - ((ulonglong)uVar4 ^ 0xa88a3685)) + (uVar35 ^ 0x6fb6cb2ccacabff5) ^
       uVar25;
  uVar16 = _DAT_1826709e0;
  uVar4 = DAT_1826707f0;
  uVar11 = DAT_1826707e0;
  bVar30 = (byte)_DAT_1826709e0;
  *(ulonglong *)(lVar2 + -0xbb0) =
       CONCAT44(uVar5,DAT_1826707c0) ^ CONCAT44(DAT_1826707e0,DAT_1826707d4) ^ 0x3d53cc7382f30f61;
  uVar15 = DAT_1826707f4;
  uVar7 = DAT_1826707c4;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe273a95d)) ^ uVar25) =
       bVar23 ^ bVar30 ^ bVar22;
  uVar14 = DAT_1826707ec;
  uVar29 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xe273a08d)) =
       (CONCAT44(uVar19,uVar28) ^ 0xcd8ec927a4f664c5) +
       (CONCAT44(DAT_1826707ec,uVar15) ^ 0xc4f85d87afb341d2);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xcacab3c7)) =
       *(longlong *)(lVar2 + -0x2d0) + (CONCAT44(uVar19,uVar6) ^ 0x95368aa8bfbfcac3) * 8 ^ uVar29;
  uVar4 = DAT_1826707bc;
  uVar34 = CONCAT44(DAT_182670814,DAT_182670814);
  uVar29 = *(ulonglong *)(*(ulonglong *)(lVar2 + -0xc78) ^ uVar29);
  *(undefined8 *)(lVar2 + -0xc78) = 0x6c22b522024f5e73;
  *(ulonglong *)(lVar2 + -0x400) = uVar29 ^ uVar34 ^ uVar33;
  uVar17 = DAT_182670ab4;
  uVar13 = DAT_1826707e8;
  uVar10 = DAT_1826707d8;
  uVar8 = DAT_1826707cc;
  lVar2 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_182670ae4;
  uVar25 = (ulonglong)DAT_182670ab4;
  uVar35 = (ulonglong)DAT_1826707d8;
  bVar22 = (byte)DAT_1826707e8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xbfbfcef2)) =
       (CONCAT44(uVar19,uVar4) ^ 0x9fd9609723c9bc51) >> (((byte)uVar32 ^ 0xda) & 0x3f);
  uVar29 = (*(ulonglong *)(lVar2 + -0x400) ^ uVar34) >> ((bVar22 ^ 0xa7) & 0x3f) ^
           CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar2 + -0x118) = uVar29;
  *(byte *)(lVar2 + -0xf9) = (byte)uVar17 ^ (byte)uVar29 ^ (byte)DAT_182670904;
  pbVar21 = (byte *)(*(longlong *)(lVar2 - (uVar35 ^ 0x184101d1)) + 0x4b);
  *(ulonglong *)(lVar2 + -0x380) = (ulonglong)pbVar21 ^ uVar27;
  *(ulonglong *)(lVar2 + -0xac0) = ((ulonglong)(uVar17 >> 0x19) | uVar25 << 7) ^ uVar29 >> 0x19;
  uVar4 = DAT_1826707b8;
  *pbVar21 = *(byte *)(lVar2 - ((ulonglong)uVar10 ^ 0x18410138)) ^ (byte)DAT_182670904 ^
             DAT_1826709e0;
  uVar6 = DAT_1826707b4;
  *(uint *)(lVar2 + -0x14) = (uVar4 ^ 0x523c8d6c) - *(int *)(lVar2 + -0xc04);
  uVar4 = DAT_1826707b0;
  uVar37 = (ulonglong)DAT_1826707b0;
  uVar34 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xdd5fb93e)) =
       *(longlong *)(lVar2 + -0x2d0) + 0x48 +
       (CONCAT44(DAT_1826707b0,uVar6) ^ 0x90fe378835e1d0f6) * 0x60 ^ uVar34;
  uVar18 = DAT_182670ac0;
  uVar25 = (ulonglong)DAT_1826708d0;
  uVar27 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  uVar29 = CONCAT44(uVar7,DAT_1826707d0);
  *(ulonglong *)(lVar2 + -0xd88) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x6e8) ^ uVar34) ^ uVar27 ^ uVar33;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xcacab957)) = uVar29 ^ 0x6f9d207331866f35;
  *(ulonglong *)(lVar2 + -0x3b0) =
       *(ulonglong *)(lVar2 + -0xd88) >> 0x20 ^ CONCAT44(uVar18,uVar18) ^ uVar25;
  uVar34 = (ulonglong)DAT_182670870;
  *(byte *)(lVar2 + -700) =
       *(byte *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0x80522ff0)) ^ (byte)uVar18 ^
       (byte)DAT_182670920;
  uVar6 = DAT_1826707bc;
  lVar3 = DAT_1826707a0;
  pbVar21 = (byte *)(*(longlong *)(lVar2 - (uVar26 ^ 0xcacabfaf)) +
                    (CONCAT44(uVar28,DAT_1826707d4) ^ 0xcacabfbf6fb6cb60));
  uVar29 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       *(ulonglong *)(lVar2 + -0xd88) ^ uVar27 ^ 0xba98b8d570d5fab3;
  *(ulonglong *)(lVar3 + -0xa80) = (ulonglong)pbVar21 ^ uVar34;
  uVar15 = DAT_182670934;
  *pbVar21 = *(byte *)(lVar3 - (uVar29 ^ 0x1a6c2b4)) ^ (byte)DAT_182670920 ^ DAT_1826709e0;
  uVar16 = DAT_182670994;
  puVar20 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) + 0x48 +
            (CONCAT44(DAT_1826707f4,uVar6) ^ 0xbfbfcaca01a6c008) * 0x60);
  uVar25 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(lVar3 + -0xad0) = (ulonglong)puVar20 ^ CONCAT44(uVar15,uVar15);
  uVar34 = CONCAT44(uVar11,DAT_1826707ec);
  *(ulonglong *)(lVar3 + -0x9e0) = *puVar20 ^ uVar25 ^ uVar33;
  uVar32 = DAT_1826707f0;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar8 ^ 0xcb2c6566)) = 0x94f60f3af673f489;
  lVar2 = DAT_1826707a0;
  pbVar21 = (byte *)(DAT_1826707a0 + -0x3b0);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0)) >> (((byte)uVar10 ^ 0xe9) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar15 = DAT_182670940;
  uVar29 = (ulonglong)DAT_182670b04;
  bVar22 = (byte)DAT_182670940;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0xcacabb77)) =
       (uVar34 ^ 0x74e59ddd11df9783) >> (((byte)uVar18 ^ *pbVar21) & 0x3f);
  uVar11 = _DAT_1826709e0;
  lVar2 = DAT_1826707a0;
  pbVar21 = (byte *)((CONCAT44(uVar32,uVar8) ^ 0xe273ac6dcb2c6ffb) +
                    *(longlong *)(DAT_1826707a0 + -0x10));
  bVar23 = (byte)uVar16 ^ bVar22 ^ *(byte *)(DAT_1826707a0 + -0x1b8);
  *(ulonglong *)(DAT_1826707a0 + -0x578) = (ulonglong)pbVar21 ^ uVar29;
  *(byte *)(lVar2 + -0xaa9) = bVar23;
  *pbVar21 = bVar22 ^ bVar23 ^ (byte)uVar11;
  uVar6 = DAT_18267081c;
  lVar2 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0x6fb6ccb4)) =
       *(longlong *)(DAT_1826707a0 + -0x2d0) + 0x48 +
       (CONCAT44(uVar14,DAT_1826707d0) ^ 0x378890fedd5fbfd6) * 0x60 ^ uVar29;
  uVar11 = DAT_182670ab8;
  *(ulonglong *)(lVar2 + -0x890) =
       CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(uVar29 ^ *(ulonglong *)(lVar2 + -0x798)) ^ uVar33;
  *(ulonglong *)(lVar2 + -0x798) = CONCAT44(uVar9,uVar8) ^ 0xd9d5ca423b4d75dd;
  bVar22 = (byte)DAT_182670aa8;
  lVar2 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (ulonglong)*(ushort *)((DAT_1826707a0 - (uVar24 ^ 0xbfbfc25a)) + 6) ^
       (ulonglong)(uVar6 >> 0x10) ^ uVar35;
  uVar7 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  bVar23 = *(byte *)(lVar2 - (uVar24 ^ 0xbfbfca3a)) ^ (byte)uVar11 ^ bVar22;
  bVar22 = bVar22 ^ DAT_1826709e0;
  pbVar21 = (byte *)((CONCAT44(uVar28,DAT_1826707c0) ^ 0xcacabfbf80522c0e) +
                    *(longlong *)(DAT_1826707a0 + -0x10));
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       CONCAT44(uVar16,uVar16) ^ uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88) ^
       *(ulonglong *)(DAT_1826707a0 + -0x1b8);
  *(byte *)(lVar3 + -0x3f1) = bVar23;
  *(ulonglong *)(lVar3 + -0x6d8) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182670a48;
  uVar6 = DAT_1826707bc;
  *pbVar21 = bVar22 ^ bVar23;
  uVar16 = DAT_182670a28;
  *(ulonglong *)(lVar3 + -0x548) =
       (CONCAT44(uVar5,uVar6) ^ 0x2505738138cbb42) -
       (CONCAT44(uVar18,uVar18) ^ *(ulonglong *)(lVar3 + -0x3b0));
  puVar20 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) + 0x48 +
            (CONCAT44(uVar5,uVar10) ^ 0x35e1d0f6184101c1) * 0x60);
  uVar27 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(ulonglong *)(lVar3 + -0x4a0) = (ulonglong)puVar20 ^ CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar11 = DAT_182670848;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x90fe3248)) = *puVar20 ^ uVar27 ^ uVar33;
  uVar9 = DAT_1826707e4;
  *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0xb08)) =
       CONCAT44(uVar32,uVar4) ^ 0x604bceb633988510;
  uVar4 = DAT_1826707dc;
  uVar36 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar3 + -0xb08) = CONCAT44(uVar10,uVar19) ^ 0x8e758619f49d510f;
  lVar2 = DAT_1826707a0;
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x5c0);
  *(ulonglong *)(DAT_1826707a0 + -0x4a0) = CONCAT44(uVar5,uVar9) ^ 0x50db26f794e15e3d;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x90fe3ab0)) =
       (uVar27 ^ *puVar20) - (CONCAT44(uVar12,uVar7) ^ 0x37469459cd84c1ce);
  *(ulonglong *)(lVar2 + -0x558) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x5c0)) >> (((byte)uVar4 ^ 0xea) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar11 = DAT_1826707f4;
  uVar7 = DAT_1826707c4;
  uVar29 = (ulonglong)DAT_182670a84;
  uVar24 = CONCAT44(uVar12,DAT_1826707f4);
  uVar34 = CONCAT44(uVar8,DAT_1826707c4);
  *(byte *)(lVar2 - (uVar36 ^ 0x9d523c43)) =
       (byte)uVar16 ^ (byte)DAT_18267086c ^ *(byte *)(lVar2 + -0x558);
  pbVar21 = (byte *)((uVar24 ^ 0xa88a3695bfbfca85) + *(longlong *)(lVar2 + -0x10));
  bVar22 = *(byte *)(lVar2 + -0x391) ^ (byte)DAT_18267086c ^ DAT_1826709e0;
  *(ulonglong *)(lVar2 + -0xe8) = (ulonglong)pbVar21 ^ uVar29;
  uVar24 = CONCAT44(uVar15,uVar15);
  *pbVar21 = bVar22;
  uVar29 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar2 + -0x370) =
       *(longlong *)(lVar2 + -0x2d0) +
       ((uVar34 ^ 0xcb2c6fb6cacabfb5) + (CONCAT44(uVar14,uVar19) ^ 0x378890fe95368aa8) * 0xc) * 8 ^
       uVar24;
  uVar29 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar29 ^ 0xe273af1d)) ^ uVar24) ^ uVar35 ^ uVar33;
  *(ulonglong *)(lVar2 + -0x610) = uVar29;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar29 ^ uVar35 | 0x54245fa5bdea9ae3;
  uVar15 = DAT_182670828;
  uVar6 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  uVar29 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0x95368cb8)) ^ uVar35) >>
           (((byte)DAT_1826707bc ^ 8) & 0x3f) ^ CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar29;
  *(undefined8 *)(lVar2 + -0x68) = 0x37df2dfca2352e6b;
  uVar10 = DAT_1826707ec;
  uVar4 = DAT_1826707b8;
  bVar22 = (byte)uVar15 ^ (byte)uVar29;
  uVar29 = (ulonglong)DAT_182670a04;
  uVar35 = (ulonglong)DAT_1826707b8;
  *(byte *)(lVar2 + -0x9d2) = bVar22 ^ (byte)DAT_182670aec;
  bVar23 = (byte)_DAT_1826709e0;
  *(uint *)(lVar2 + -0x68c) = (uVar10 ^ 0xd9f020a8) + (uVar6 ^ 0x1aed298a);
  uVar6 = DAT_1826707e8;
  *(ulonglong *)(lVar2 + -0x3a8) = *(longlong *)(lVar2 + -0x10) + 0x50U ^ uVar29;
  uVar15 = DAT_1826708dc;
  *(ulonglong *)(lVar2 + -0x2b0) =
       uVar27 ^ *(ulonglong *)(lVar2 + -0x5c0) | CONCAT44(uVar6,uVar4) ^ 0x72c0777582ac92b9;
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xcacabc17)) ^ uVar29) = bVar22 ^ bVar23;
  uVar32 = DAT_182670998;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x2ec197a2)) =
       *(longlong *)(lVar2 + -0x2d0) + (CONCAT44(uVar5,DAT_1826707e0) ^ 0x35e1d0f6bfbfcac0) * 8 ^
       uVar24;
  uVar29 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar2 + -0x630) =
       CONCAT44(uVar32,uVar32) ^ *(ulonglong *)(*(ulonglong *)(lVar2 + -0x4e0) ^ uVar24) ^ uVar33;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xdd5fbb36)) = CONCAT44(uVar28,uVar28) ^ 0x19810b0c8aab9597;
  bVar22 = (byte)DAT_182670a74;
  uVar29 = ((ulonglong)uVar32 << 0x18 | (ulonglong)(uVar32 >> 8)) ^
           *(ulonglong *)(lVar2 + -0x630) >> 8 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x588) = uVar29;
  *(byte *)(lVar2 + -0x709) = (byte)uVar15 ^ bVar22 ^ (byte)uVar29;
  uVar24 = (ulonglong)DAT_1826707d4;
  uVar32 = DAT_1826707d4 ^ 0xa2d25b5b;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x3788960e)) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x9e0)) - (uVar34 ^ 0x22ec6455fbbeab97);
  uVar29 = (ulonglong)DAT_182670a9c;
  uVar34 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x6fb6c2a4)) =
       (CONCAT44(uVar8,uVar11) ^ 0xcb2c6fb6bfbfca9b) + *(longlong *)(lVar2 + -0x10) ^ uVar29;
  uVar11 = DAT_1826709b4;
  *(uint *)(lVar2 - (uVar34 ^ 0x35e1dac2)) = (uVar10 ^ 0x431578fe) + (DAT_1826707e4 ^ 0x63ae7bb6);
  *(byte *)(*(ulonglong *)(lVar2 + -0x988) ^ uVar29) = bVar22 ^ *(byte *)(lVar2 + -0x709) ^ bVar23;
  *(ulonglong *)(lVar2 + -0x180) =
       *(longlong *)(lVar2 + -0x2d0) +
       ((CONCAT44(uVar6,uVar4) ^ 0xcacabfbf2ec19348) +
       (CONCAT44(uVar5,uVar9) ^ 0x35e1d0f6a88a3695) * 0xc) * 8 ^ CONCAT44(uVar11,uVar11);
  *(uint *)(lVar2 - (uVar26 ^ 0xcacabb93)) = uVar32 + (uVar7 ^ 0x1eef29c);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar19) * 4) = uVar31;
  return;
}



############ FUN_ 180d08f60 size=5233 ############

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

void FUN_180d08f60(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  undefined4 uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  byte bVar34;
  byte *pbVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  byte local_f0;
  byte local_a8;
  
  uVar3 = DAT_1826707ec;
  uVar14 = DAT_1826707e8;
  uVar11 = DAT_1826707dc;
  uVar5 = DAT_1826707d4;
  uVar9 = DAT_1826707d0;
  uVar6 = DAT_1826707b8;
  lVar1 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707b8;
  uVar44 = (ulonglong)DAT_1826707d4;
  uVar23 = DAT_1826707b8 & 7;
  uVar36 = (ulonglong)DAT_1826707d0;
  uVar28 = (ulonglong)DAT_1826707dc;
  if (uVar23 < 4) {
    if (uVar23 < 2) {
      uVar42 = DAT_1826707e8;
      if (uVar23 == 0) {
        uVar42 = DAT_1826707b8;
      }
    }
    else {
      uVar42 = DAT_1826707d0;
      if (uVar23 < 3) {
        uVar42 = DAT_1826707d4;
      }
    }
  }
  else if (uVar23 < 6) {
    uVar42 = DAT_1826707c0;
    if (uVar23 < 5) {
      uVar42 = DAT_1826707e0;
    }
  }
  else {
    uVar42 = DAT_1826707dc;
    if (uVar23 < 7) {
      uVar42 = DAT_1826707f4;
    }
  }
  uVar32 = (ulonglong)DAT_1826707ec;
  uVar40 = ~DAT_1826707ec;
  uVar24 = *(uint *)(&DAT_18260f758 + DAT_182670bf0) ^ DAT_1826707ec;
  uVar23 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707e8 ^ 0xefdfdfef) + (longlong)DAT_182670bf0);
  uVar38 = CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar46 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar45 = (ulonglong)uVar42;
  DAT_1826707b0 = uVar40;
  DAT_1826707b4 = uVar42;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0x468e35ae)) =
       *(ulonglong *)(CONCAT44(DAT_182670934,DAT_182670934) ^ *(ulonglong *)(DAT_1826707a0 + -0xc0))
       ^ uVar46 ^ uVar38;
  uVar17 = DAT_182670930;
  uVar7 = DAT_1826707f4;
  uVar12 = DAT_1826707e0;
  *(ulonglong *)(lVar1 + -0xce0) =
       (CONCAT44(DAT_1826707e0,uVar9) ^ 0x7883d7e2ecbfef1c) -
       (CONCAT44(uVar11,uVar5) ^ 0x8b504120e09f9e8c);
  uVar39 = (ulonglong)DAT_1826707f4;
  uVar38 = (*(ulonglong *)(lVar1 + -0x588) ^ uVar38) >> (((byte)uVar7 ^ 199) & 0x3f) ^
           CONCAT44(uVar17,uVar17);
  bVar34 = (byte)uVar17 ^ (byte)DAT_182670aac;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar38;
  uVar8 = DAT_1826707c0;
  uVar29 = CONCAT44(DAT_1826707c0,uVar42);
  *(byte *)(lVar1 + -0x6f9) = bVar34 ^ (byte)uVar38;
  uVar18 = DAT_18267093c;
  uVar38 = (ulonglong)DAT_182670994;
  *(ulonglong *)(lVar1 - (uVar39 ^ 0xfffc2ff7)) =
       (uVar29 ^ 0xab381189ab3811c6) + *(longlong *)(lVar1 + -0x168) ^ uVar38;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar28 ^ 0xbcfc0390)) ^ uVar38) =
       *(byte *)(lVar1 - ((ulonglong)uVar42 ^ 0xab381770)) ^ (byte)DAT_182670a40 ^
       (byte)DAT_182670aac;
  uVar7 = DAT_1826707bc;
  *(ulonglong *)(lVar1 + -0x548) =
       CONCAT44(uVar3,uVar5) ^ CONCAT44(uVar6,DAT_1826707e0) ^ 0xd8b6e67c943c1960;
  uVar38 = CONCAT44(uVar14,uVar7) ^ 0xefdfdfff468e3026;
  uVar39 = CONCAT44(DAT_182670940,DAT_182670940);
  puVar30 = (ulonglong *)(*(longlong *)(lVar1 + -0x2d0) + 0x50 + uVar38 * 0x60);
  uVar29 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(lVar1 + -0xb78) = (ulonglong)puVar30 ^ uVar39;
  *(ulonglong *)(lVar1 + -0x220) = *puVar30 ^ uVar29 ^ uVar46;
  puVar27 = (ulonglong *)(lVar1 - (uVar28 ^ 0xbcfc0f10));
  bVar34 = (byte)uVar18 ^ (byte)DAT_182670828;
  *puVar27 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar3 ^ 0x84c3d1a8)) ^ uVar29) >>
             (((byte)DAT_1826707e0 ^ 0xe7) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar1 - (uVar36 ^ 0xb3adf947)) =
       *(ulonglong *)(uVar39 ^ *(ulonglong *)(lVar1 + -0xb78)) ^ uVar46;
  uVar28 = (ulonglong)DAT_182670a18;
  uVar36 = (ulonglong)DAT_1826707c0;
  *(byte *)(lVar1 - (uVar45 ^ 0xab381438)) = bVar34 ^ *(byte *)(lVar1 + -0xd88);
  pbVar35 = (byte *)((CONCAT44(uVar6,uVar5) ^ 0xffb3dfa5ffffffaf) + *(longlong *)(lVar1 + -0x168));
  *(ulonglong *)(lVar1 + -2000) = (ulonglong)pbVar35 ^ uVar28;
  uVar13 = DAT_1826707e4;
  uVar39 = (ulonglong)DAT_1826707e4;
  *(int *)(lVar1 + -0x14) = *(int *)(lVar1 - (uVar36 ^ 0xab3814c9)) * 0x560f378d;
  *pbVar35 = *(byte *)(lVar1 + -0x5b1) ^ (byte)DAT_182670828 ^ (byte)DAT_182670a40;
  uVar15 = DAT_1826707f0;
  uVar36 = (ulonglong)DAT_1826707f0;
  uVar25 = uVar13 ^ DAT_1826707f0;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) +
            ((CONCAT44(uVar13,uVar3) ^ 0x54c7ee7684c3d382) +
            (CONCAT44(DAT_1826707f0,uVar25) ^ 0x4e92d9a41a5537d2) * 0xc) * 8);
  uVar41 = CONCAT44(DAT_182670968,DAT_182670968);
  DAT_1826707c4 = uVar25;
  *(ulonglong *)(lVar1 + -0xc0) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670858,DAT_182670858);
  uVar18 = DAT_182670aa8;
  uVar28 = *puVar30 ^ uVar41 ^ uVar46;
  *(ulonglong *)(lVar1 + -0xce0) = uVar28;
  uVar7 = DAT_1826707bc;
  local_a8 = (byte)uVar15;
  puVar30 = (ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0x1a55325a));
  *puVar30 = (uVar41 ^ uVar28) >> ((local_a8 ^ 0xac) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  bVar34 = (byte)DAT_182670a38 ^ (byte)DAT_182670a40;
  *(byte *)(lVar1 + -0x1da) = (byte)uVar18 ^ (byte)DAT_182670a38 ^ (byte)*puVar30;
  uVar16 = DAT_1826707f4;
  *(ulonglong *)(lVar1 - (uVar39 ^ 0x54c7eb3e)) =
       CONCAT44(uVar7,uVar9) ^ 0xd5da921638f20be8 | uVar29 ^ *(ulonglong *)(lVar1 + -0x220);
  pbVar35 = (byte *)(*(longlong *)(lVar1 + -0x168) + 0x51);
  *(ulonglong *)(lVar1 + -0x7e0) = (ulonglong)pbVar35 ^ (ulonglong)DAT_1826709d8;
  *pbVar35 = bVar34 ^ *(byte *)(lVar1 + -0x1da);
  uVar4 = DAT_1826707c0;
  *(ulonglong *)(lVar1 - (uVar36 ^ 0x4e92dfc4)) =
       (CONCAT44(uVar16,uVar7) ^ 0xc9d46493cbb24a46) -
       (*(ulonglong *)(lVar1 + -0x6b8) ^ CONCAT44(uVar17,uVar17));
  uVar28 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(uint *)(lVar1 + -0x42c) = (uVar3 ^ 0xab5c755b) - *(int *)(lVar1 + -0x280);
  uVar17 = _DAT_1826709e0;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) +
            ((CONCAT44(uVar9,uVar16) ^ 0xb3adff27fffc2ef5) +
            (CONCAT44(uVar42,uVar4) ^ 0xab381189ab381189) * 0xc) * 8);
  *(ulonglong *)(lVar1 + -0xb78) = (ulonglong)puVar30 ^ uVar28;
  uVar4 = DAT_1826707d8;
  uVar3 = DAT_1826707a8;
  uVar28 = (ulonglong)DAT_1826707a8;
  uVar29 = CONCAT44(uVar17,uVar17);
  uVar26 = DAT_1826707d8 & 3;
  *(ulonglong *)(lVar1 + -0xd88) = *puVar30 ^ uVar29 ^ uVar46;
  uVar10 = DAT_1826707d8;
  lVar2 = DAT_1826707a0;
  if (uVar26 < 2) {
    DAT_1826707ac = DAT_1826707c8;
    if (uVar26 == 0) {
      DAT_1826707ac = uVar4;
    }
  }
  else {
    DAT_1826707ac = DAT_1826707cc;
    if (uVar26 < 3) {
      DAT_1826707ac = uVar3;
    }
  }
  uVar31 = (ulonglong)DAT_1826707ac;
  uVar43 = CONCAT44(DAT_182670900,DAT_182670900);
  bVar34 = (byte)DAT_182670900 ^ (byte)DAT_182670a3c;
  *(ulonglong *)(lVar1 + -0xce0) =
       (CONCAT44(uVar13,DAT_1826707ac) ^ 0xf26bdb9b64987f25) -
       (CONCAT44(uVar3,DAT_1826707d8) ^ 0x43e719fe03058de1);
  uVar19 = DAT_18267092c;
  uVar26 = DAT_1826707c8;
  uVar33 = CONCAT44(DAT_1826707c8,DAT_1826707cc);
  uVar41 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707cc ^ 0xcc49c213)) ^ uVar29) >>
           (((byte)DAT_1826707cc ^ 0x8b) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar2 + -0x220) = uVar41;
  uVar29 = (ulonglong)DAT_182670920;
  *(byte *)(lVar2 - (uVar31 ^ 0xf523c380)) = bVar34 ^ (byte)uVar41;
  pbVar35 = (byte *)((CONCAT44(uVar3,uVar13) ^ 0x9802fcbc54c7ee24) + *(longlong *)(lVar2 + -0x168));
  *(ulonglong *)(lVar2 + -0xdc0) = (ulonglong)pbVar35 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x548) =
       (CONCAT44(uVar13,uVar10) ^ 0xbb521b3a85d6815) + 0xd2ce1d5d5c603f39;
  *pbVar35 = *(byte *)(lVar2 + -0xc81) ^ (byte)DAT_182670a3c ^ (byte)DAT_182670a40;
  uVar17 = DAT_1826709dc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xf881219)) =
       *(longlong *)(lVar2 + -0x2d0) + 0x50 + (CONCAT44(uVar26,uVar13) ^ 0xf523cf0154c7ee76) * 0x60
       ^ CONCAT44(uVar19,uVar19);
  uVar21 = DAT_18267099c;
  uVar4 = DAT_1826707cc;
  uVar29 = CONCAT44(DAT_1826707ac,uVar13);
  uVar41 = CONCAT44(DAT_18267099c,DAT_18267099c);
  uVar31 = (ulonglong)DAT_182670a28;
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0xc0) ^ CONCAT44(uVar19,uVar19)) ^ uVar41 ^ uVar46;
  bVar34 = (byte)DAT_1826707ac;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xcc49c9fb)) =
       uVar29 ^ *(ulonglong *)(lVar2 + -0x220) ^ uVar43 ^ 0x3b39c1015f43aebe;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) >> ((bVar34 ^ 0x19) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  bVar34 = (byte)uVar17 ^ *(byte *)(lVar1 + -0xce0) ^ (byte)uVar19;
  *(byte *)(lVar1 + -0xb0a) = bVar34;
  bVar34 = bVar34 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar1 + -0xd88) =
       (CONCAT44(uVar13,uVar3) ^ 0xbbd8946234ee2f42) <<
       ((*(byte *)(lVar1 + -0x588) ^ (byte)uVar18) & 0x3f);
  *(ulonglong *)(lVar1 + -0x3a0) =
       *(longlong *)(lVar1 - ((ulonglong)uVar10 ^ 0xf8813b1)) +
       (CONCAT44(uVar3,uVar4) ^ 0x9802fcbccc49cfc8) ^ uVar31;
  uVar22 = DAT_182670a90;
  uVar20 = DAT_182670948;
  uVar17 = DAT_182670884;
  uVar4 = DAT_1826707ac;
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707ac ^ 0xf523cca1)) ^ uVar31) =
       bVar34 ^ (byte)uVar19;
  uVar18 = DAT_1826708f4;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar1 + -0x2d0) +
            ((CONCAT44(uVar16,uVar11) ^ 0xfffc2effbcfc0292) +
            (CONCAT44(uVar13,uVar15) ^ 0x54c7ee764e92d9a4) * 0xc) * 8);
  *(ulonglong *)(lVar1 + -0xb78) = (ulonglong)puVar30 ^ CONCAT44(uVar22,uVar22);
  uVar29 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar1 + -0x548) = *puVar30 ^ uVar46 ^ uVar29;
  *(longlong *)(lVar1 + -0x220) =
       -0x1603759cec5bd639 << (((byte)uVar21 ^ *(byte *)(lVar1 + -0x6b8)) & 0x3f);
  *(ulonglong *)(lVar1 - (uVar28 ^ 0x9802fadc)) =
       (*(ulonglong *)(lVar1 + -0x548) ^ uVar29) >> (((byte)uVar26 ^ 0x21) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  uVar29 = (ulonglong)DAT_1826707c0;
  *(byte *)(lVar1 - (uVar39 ^ 0x54c7e917)) = (byte)uVar17 ^ *(byte *)(lVar1 + -0x660) ^ (byte)uVar20
  ;
  uVar10 = DAT_182670928;
  uVar41 = (ulonglong)DAT_182670928;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xab3818e1)) = *(longlong *)(lVar1 + -0x168) + 0x54U ^ uVar41;
  uVar17 = DAT_1826708e8;
  uVar29 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0xf523c669)) ^ uVar41) =
       *(byte *)(lVar1 + -0x761) ^ (byte)DAT_182670a40 ^ (byte)uVar20;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707bc ^ 0x468e30e6)) =
       *(longlong *)(lVar1 + -0x2d0) +
       ((CONCAT44(uVar12,uVar5) ^ 0x85cbd3e7fffffff5) +
       (CONCAT44(uVar13,uVar5) ^ 0x54c7ee76ffffffff) * 0xc) * 8 ^ uVar29;
  *(undefined8 *)(lVar1 + -0xce0) =
       *(undefined8 *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar40 ^ 0x7b3c2cb7)) ^ uVar29);
  *(ulonglong *)(lVar1 - (uVar37 ^ 0xffb3da2d)) =
       0x6fa32721d5df8f0c >> ((byte)*(undefined8 *)(lVar1 + -0x220) & 0x3f);
  *puVar27 = (uVar46 ^ *(ulonglong *)(lVar1 + -0xce0)) >> ((local_a8 ^ 0x8c) & 0x3f) ^
             CONCAT44(uVar17,uVar17);
  pbVar35 = (byte *)((CONCAT44(uVar40,uVar25) ^ 0x7b3c2c771a553787) + *(longlong *)(lVar1 + -0x168))
  ;
  *(ulonglong *)(lVar1 + -0x470) = (ulonglong)pbVar35 ^ (ulonglong)DAT_182670a94;
  *(byte *)(lVar1 + -0x821) = (byte)uVar17 ^ (byte)uVar10 ^ *(byte *)(lVar1 + -0xd88);
  *(ulonglong *)(lVar1 + -0x6b8) = CONCAT44(uVar13,uVar42) ^ uVar33 ^ 0x9fcf87944fc323b9;
  *pbVar35 = *(byte *)(lVar1 - (uVar39 ^ 0x54c7e657)) ^ (byte)DAT_182670a40 ^ (byte)uVar10;
  uVar18 = _DAT_182670ad4;
  uVar17 = DAT_182670a4c;
  uVar42 = DAT_1826707cc;
  *(ulonglong *)(lVar1 + -0x548) =
       CONCAT44(DAT_1826707d8,DAT_1826707e0) ^ 0x556cccf2b97076c4 |
       CONCAT44(DAT_1826707cc,uVar40) ^ 0xb839e7766f524f74;
  uVar5 = DAT_1826709e4;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar1 - ((ulonglong)uVar42 ^ 0xcc49cd4b)) +
            ((CONCAT44(uVar25,DAT_1826707f4) ^ 0x1a5537d2fffc2ef5) + uVar38 * 0xc) * 8);
  uVar38 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar1 + -0xb78) = (ulonglong)puVar30 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x84c3d5e8)) = uVar38 ^ *puVar30 ^ uVar46;
  uVar41 = CONCAT44(uVar15,DAT_1826707e0);
  uVar29 = (ulonglong)*(ushort *)(lVar1 + -0x65a) ^ (ulonglong)(uVar5 >> 0x10) ^
           CONCAT44(uVar18,uVar18);
  uVar38 = (ulonglong)DAT_1826709a4;
  bVar34 = (byte)uVar18 ^ (byte)uVar29 ^ (byte)DAT_1826709ac;
  *(byte *)(lVar1 + -0x351) = bVar34;
  pbVar35 = (byte *)((uVar41 ^ 0x4e92d9a485cbd3b1) + *(longlong *)(lVar1 + -0x168));
  bVar34 = bVar34 ^ (byte)DAT_182670a40 ^ (byte)DAT_1826709ac;
  *(ulonglong *)(lVar1 + -0x910) = (ulonglong)pbVar35 ^ uVar38;
  uVar18 = DAT_1826709bc;
  *(ulonglong *)(lVar1 + -0x220) = uVar29;
  *pbVar35 = bVar34;
  uVar19 = DAT_1826709c4;
  uVar17 = DAT_182670800;
  uVar38 = CONCAT44(uVar18,uVar18);
  uVar41 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar1 - (uVar44 ^ 0xffffff3f)) =
       *(longlong *)(lVar1 + -0x2d0) +
       ((CONCAT44(uVar7,uVar11) ^ 0x468e3026bcfc0292) +
       (CONCAT44(uVar26,uVar40) ^ 0xf523cf017b3c2c77) * 0xc) * 8 ^ uVar38;
  uVar29 = (ulonglong)DAT_1826708b0;
  *(ulonglong *)(lVar1 + -0x588) =
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0xc0) ^ uVar38) ^ uVar46 ^ uVar41;
  lVar2 = DAT_1826707a0;
  local_f0 = (byte)uVar25;
  puVar27 = (ulonglong *)(lVar1 - (uVar44 ^ 0xfffff31f));
  bVar34 = (byte)uVar17 ^ (byte)DAT_18267082c;
  *puVar27 = (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0x9802f934)) ^ uVar41) >>
             ((local_f0 ^ 0xea) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  *(byte *)(lVar2 - (uVar45 ^ 0xab381b62)) = bVar34 ^ *(byte *)(lVar2 + -0xce0);
  *(ulonglong *)(lVar2 - (uVar45 ^ 0xab381129)) =
       (CONCAT44(uVar9,uVar15) ^ 0xb3adff274e92d9f3) + *(longlong *)(lVar2 + -0x168) ^ uVar29;
  *(byte *)(*(ulonglong *)(lVar2 + -0xa0) ^ uVar29) =
       *(byte *)(lVar2 + -0xaeb) ^ (byte)DAT_182670a40 ^ (byte)DAT_18267082c;
  uVar18 = DAT_18267086c;
  uVar17 = DAT_182670814;
  uVar28 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar2 + -0xb78) =
       (CONCAT44(uVar3,uVar25) ^ 0x9802fcbc1a5537d2) * 0x60 + *(longlong *)(lVar2 + -0x2d0) + 0x58 ^
       uVar28;
  uVar44 = CONCAT44(uVar18,uVar18);
  uVar28 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar39 ^ 0x54c7e50e)) ^ uVar28) ^ uVar46 ^ uVar44;
  *(ulonglong *)(lVar2 + -0xd88) = uVar28;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x4e92dcec)) = CONCAT44(uVar17,uVar17) ^ uVar28 ^ uVar44;
  uVar5 = DAT_1826707ac;
  uVar38 = (ulonglong)DAT_1826707ac;
  uVar36 = (ulonglong)DAT_182670ab8;
  *(byte *)(lVar2 - ((ulonglong)DAT_1826707ac ^ 0xf523c588)) =
       (byte)uVar17 ^ *(byte *)(lVar2 + -0x548) ^ (byte)DAT_182670a80;
  *(ulonglong *)(lVar2 + -0x660) =
       0x6876a7f1a81106ba >> ((byte)*(undefined8 *)(lVar2 + -0x6b8) & 0x3f);
  pbVar35 = (byte *)((CONCAT44(uVar8,DAT_1826707c0) ^ 0xab381189ab3811d1) +
                    *(longlong *)(lVar2 + -0x168));
  *(ulonglong *)(lVar2 + -0xdb0) = (ulonglong)pbVar35 ^ uVar36;
  uVar3 = DAT_1826707cc;
  *pbVar35 = *(byte *)(lVar2 - ((ulonglong)DAT_1826707cc ^ 0xcc49c512)) ^ (byte)DAT_182670a40 ^
             (byte)DAT_182670a80;
  uVar17 = DAT_1826708dc;
  uVar8 = DAT_1826707d8;
  uVar28 = CONCAT44(uVar20,uVar20);
  *(ulonglong *)(lVar2 + -0x220) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar40 ^ 0x7b3c21ff)) ^ uVar44 |
       CONCAT44(uVar9,uVar11) ^ 0x5384a5b6457cb690;
  uVar36 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar2 + -0xc0) =
       *(longlong *)(lVar2 - ((ulonglong)DAT_1826707c8 ^ 0xf523cdd1)) +
       ((CONCAT44(uVar14,uVar40) ^ 0xefdfdfff7b3c2c7c) +
       (CONCAT44(uVar13,uVar11) ^ 0x54c7ee76bcfc0298) * 0xc) * 8 ^ uVar36;
  uVar17 = DAT_18267094c;
  uVar36 = *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar32 ^ 0x84c3d348)) ^ uVar36) ^ uVar46 ^ uVar28;
  *(ulonglong *)(lVar2 + -0xce0) = uVar36;
  *(ulonglong *)(lVar2 + -0x6b8) = CONCAT44(uVar25,uVar5) ^ uVar36 ^ uVar28 ^ 0x12ca3a17fb321679;
  *(ulonglong *)(lVar2 + -0x660) =
       (uVar28 ^ *(ulonglong *)(lVar2 + -0xce0)) >> (((byte)uVar8 ^ 0xd1) & 0x3f) ^
       CONCAT44(uVar17,uVar17);
  uVar36 = CONCAT44(uVar14,uVar6) ^ 0xff4b2951fdac15ee |
           CONCAT44(uVar7,DAT_1826707f4) ^ 0x4a8a0d9470e4b728;
  *(ulonglong *)(lVar2 + -0xd88) = uVar36;
  *(byte *)(lVar2 + -0x762) =
       *(byte *)(lVar2 - (uVar45 ^ 0xab3817e9)) ^ (byte)uVar17 ^ (byte)DAT_182670960;
  uVar28 = (ulonglong)DAT_1826709fc;
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(uVar42,uVar8) ^ 0x49572e37680a66d2) << ((byte)uVar36 & 0x3f);
  uVar6 = DAT_1826707e0;
  bVar34 = (byte)DAT_182670a40 ^ (byte)DAT_182670960;
  *(ulonglong *)(lVar2 - (uVar37 ^ 0xffb3dbcd)) =
       (CONCAT44(uVar11,uVar3) ^ 0xbcfc0298cc49cfc2) + *(longlong *)(lVar2 + -0x168) ^ uVar28;
  *(byte *)(*(ulonglong *)(lVar2 + -0x468) ^ uVar28) = bVar34 ^ *(byte *)(lVar2 + -0x762);
  *(undefined1 *)(lVar2 - (uVar32 ^ 0x84c3d491)) = **(undefined1 **)(lVar2 + -0x418);
  uVar37 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x2d0) +
            (CONCAT44(uVar9,DAT_1826707c0) ^ 0xb3adff27ab381182) * 8);
  *(uint *)(lVar2 + -0x3d4) =
       (DAT_1826707e8 ^ 0xa7c22b1e) << ((byte)*(undefined4 *)(lVar2 + -0xa34) & 0x1f);
  uVar17 = DAT_182670838;
  *(ulonglong *)(lVar2 + -0xc0) = (ulonglong)puVar30 ^ uVar37;
  uVar18 = DAT_182670a34;
  uVar46 = *puVar30 ^ uVar46;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar46 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xf523c3e1)) =
       uVar46 >> (((byte)uVar6 ^ 0xf7) & 0x3f) ^ CONCAT44(uVar18,uVar18);
  uVar37 = (ulonglong)_DAT_1826708c8;
  *(byte *)(lVar2 + -0x719) = (byte)uVar18 ^ (byte)uVar19 ^ (byte)*puVar27;
  *(ulonglong *)(lVar2 + -0x900) =
       (CONCAT44(uVar13,uVar25) ^ 0x54c7ee761a553788) + *(longlong *)(lVar2 + -0x168) ^ uVar37;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar23 ^ uVar40) * 4) = uVar24;
  return;
}



############ FUN_ 180c76a10 size=3175 ############

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

void FUN_180c76a10(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte *pbVar16;
  ulonglong uVar17;
  byte bVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  
  uVar6 = DAT_1826707f4;
  uVar9 = DAT_1826707ec;
  uVar4 = DAT_1826707cc;
  uVar5 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707f4;
  uVar22 = DAT_1826707c0 - DAT_1826707f4;
  uVar19 = (ulonglong)DAT_1826707cc;
  uVar28 = DAT_1826707ec | DAT_1826707cc;
  uVar13 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707f4 ^ 0xa3b193f1) + (longlong)DAT_182670d24) ^
           DAT_1826707c0;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670d24);
  uVar17 = (ulonglong)DAT_1826707ec;
  uVar14 = (ulonglong)DAT_1826709d4;
  uVar23 = CONCAT44(DAT_1826707ec,uVar28);
  DAT_1826707ac = uVar22;
  DAT_1826707d4 = uVar28;
  *(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0xb99b6e6d)) =
       *(byte *)((ulonglong)DAT_18267093c ^ *(ulonglong *)(DAT_1826707a0 + -0x9d0)) ^
       (byte)DAT_182670adc ^ DAT_1826709e0;
  *(undefined1 *)((ulonglong)_DAT_18267097c ^ *(ulonglong *)(lVar2 + -0xc40)) = 0x96;
  pbVar16 = (byte *)(*(ulonglong *)(lVar2 + -0x4b0) ^ (ulonglong)DAT_18267088c);
  *(byte **)(lVar2 + -0x6a8) = pbVar16 + (uVar23 ^ 0xb1a3f993b9bbfdde);
  *(undefined8 *)(lVar2 + -0xd38) = 0x8be82d2d98f6a254;
  *pbVar16 = *(byte *)(lVar2 + -0xbb1) ^ (byte)DAT_182670adc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xb99b6204)) =
       0xa218e34307a9151a >> ((byte)*(undefined8 *)(lVar2 + -0x660) & 0x3f);
  *(ulonglong *)(lVar2 + -0x5e8) = *(ulonglong *)(lVar2 + -0x6a8);
  *(ulonglong *)(lVar2 + -0x1b8) = CONCAT44(uVar22,uVar22) ^ 0xab87452eb6d4cd6e;
  *(ulonglong *)(lVar2 + -0x1c8) = *(ulonglong *)(lVar2 + -0xae8);
  uVar15 = (ulonglong)DAT_182670840;
  *(ulonglong *)(lVar2 + -0xa60) = uVar14 ^ *(ulonglong *)(lVar2 + -0x6a8);
  *(ulonglong *)(lVar2 + -0xb28) = uVar15 ^ *(ulonglong *)(lVar2 + -0xae8);
  lVar2 = DAT_1826707a0;
  puVar26 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar28 ^ 0xb9bbf98f));
  *puVar26 = (*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xa3b198d1)) ^ uVar15) +
             (CONCAT44(uVar5,uVar4) ^ 0xf993b1a3b99b65dd);
  *(byte *)(lVar2 - ((ulonglong)uVar6 ^ 0xa3b19e5b)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar17 ^ 0xb1a3f2bb)) ^ uVar15) ^ (byte)DAT_182670974 ^
       DAT_1826709e0;
  *(byte *)((ulonglong)DAT_182670ae8 ^ *(ulonglong *)(lVar2 + -0x960)) = (byte)uVar5 ^ 0x6b;
  lVar2 = DAT_1826707a0;
  bVar18 = *(byte *)(DAT_1826707a0 + -0xda2) ^ (byte)DAT_182670974;
  *(ulonglong *)(DAT_1826707a0 + -0x170) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xb1a3f3f3)) ^ uVar14) +
       (CONCAT44(uVar22,uVar6) ^ 0x55e21daaa3b193f8);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xf993bbc3)) ^ uVar14) = bVar18;
  *(ulonglong *)(lVar2 + -0x20) = *(ulonglong *)(lVar2 + -0x170);
  uVar15 = *puVar26;
  uVar27 = (ulonglong)DAT_182670a10;
  *(ulonglong *)(lVar2 + -0x270) = uVar15;
  *(ulonglong *)(lVar2 + -0x248) = uVar27 ^ *(ulonglong *)(lVar2 + -0x170);
  uVar14 = (ulonglong)DAT_18267080c;
  uVar17 = (ulonglong)DAT_18267080c;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (uVar23 ^ 0xb8d6d35a068fa52a) - (CONCAT44(uVar22,uVar9) ^ 0xb642bbf2f09c05c3);
  uVar17 = uVar17 ^ uVar15;
  *(ulonglong *)(lVar2 + -0x4a8) = uVar17;
  uVar7 = DAT_1826709ac;
  uVar23 = CONCAT44(uVar4,uVar6) ^ 0xb99b65dca3b193f8;
  pbVar16 = (byte *)(uVar17 ^ uVar14);
  uVar15 = (ulonglong)DAT_1826709ac;
  *(byte **)(lVar2 + -0x928) = pbVar16 + uVar23;
  *(byte *)(lVar2 + -0x2e9) = *pbVar16 ^ (byte)uVar7 ^ DAT_1826709e0;
  bVar18 = (byte)DAT_182670a60;
  uVar29 = (ulonglong)DAT_18267091c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x5f8) ^ uVar15) = (byte)uVar22 ^ 0x2d;
  *(ulonglong *)(lVar2 + -0x390) = (*(ulonglong *)(lVar2 + -0x248) ^ uVar27) + uVar23;
  uVar8 = DAT_1826707e8;
  uVar23 = (ulonglong)DAT_1826707e8;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xf993b3eb)) ^ uVar27) =
       (byte)uVar7 ^ *(byte *)(lVar2 + -0x2e9);
  uVar15 = (ulonglong)DAT_182670854;
  *(undefined8 *)(lVar2 - (uVar19 ^ 0xb99b6ff4)) = *(undefined8 *)(lVar2 + -0x390);
  *(undefined8 *)(lVar2 + -0x560) = *(undefined8 *)(lVar2 + -0x928);
  *(ulonglong *)(lVar2 + -0x148) = *(ulonglong *)(lVar2 + -0xa28) ^ uVar29;
  pbVar16 = *(byte **)(lVar2 - (uVar21 ^ 0xa3b19699));
  *(longlong *)(lVar2 + -0x438) = *(longlong *)(lVar2 + -0xd88) << 0x29;
  *(ulonglong *)(lVar2 + -0x238) = (ulonglong)pbVar16 ^ uVar15;
  *(byte **)(lVar2 + -0x38) = pbVar16 + (CONCAT44(uVar9,uVar5) ^ 0xb1a3f993f993b1a2);
  *(byte *)(lVar2 + -0x121) = bVar18 ^ DAT_1826709e0 ^ *pbVar16;
  uVar7 = DAT_1826707dc;
  uVar14 = (ulonglong)DAT_1826707dc;
  uVar24 = uVar8 - DAT_1826707dc;
  uVar17 = (ulonglong)uVar24;
  uVar15 = (ulonglong)DAT_1826707dc;
  DAT_1826707c8 = uVar24;
  *(byte *)(*(ulonglong *)(lVar2 + -0x978) ^ (ulonglong)DAT_182670ac8) = (byte)uVar8 ^ 0x9f;
  *(ulonglong *)(lVar2 + -0x630) =
       (CONCAT44(uVar24,uVar7) ^ 0xa9874164012d3eb4) <<
       ((byte)*(undefined8 *)(lVar2 - (uVar15 ^ 0xbffff94f)) & 0x3f);
  uVar21 = (ulonglong)DAT_182670a38;
  *(ulonglong *)(lVar2 + -0x5e0) = (uVar29 ^ *(ulonglong *)(lVar2 + -0x148)) + 1;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar23 ^ 0xbbfbf8d3)) ^ uVar29) =
       bVar18 ^ *(byte *)(lVar2 + -0x121);
  pbVar16 = *(byte **)(lVar2 + -0x38);
  *(ulonglong *)(lVar2 + -0x168) = uVar21 ^ *(ulonglong *)(lVar2 + -0x5e0);
  *(ulonglong *)(lVar2 + -0xd28) = *(ulonglong *)(lVar2 + -0x5e0);
  uVar15 = (ulonglong)DAT_182670978;
  *(byte **)(lVar2 + -0x2a0) = pbVar16;
  *(ulonglong *)(lVar2 + -0xdb8) = uVar15 ^ (ulonglong)pbVar16;
  *(byte **)(lVar2 + -0xb18) = pbVar16 + (CONCAT44(uVar24,uVar8) ^ 0xfbfbf9dcbbfbf99a);
  bVar18 = (byte)DAT_182670988;
  *(byte *)(lVar2 + -0xa72) = (byte)DAT_182670988 ^ *pbVar16 ^ DAT_1826709e0;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x520) ^ (ulonglong)DAT_182670ab0) = 0x1c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xbbfbfdc3)) =
       (*(ulonglong *)(lVar2 - (uVar17 ^ 0xfbfbf8b4)) ^ uVar21) + 1;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xbffffed7)) ^ uVar21) =
       bVar18 ^ *(byte *)(lVar2 + -0xa72);
  uVar4 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_182670a54;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar8 ^ 0xbbfbf33b)) =
       *(undefined8 *)(lVar2 - (uVar17 ^ 0xfbfbfd84));
  uVar15 = (ulonglong)DAT_182670a50;
  *(undefined8 *)(lVar2 + -0x708) = *(undefined8 *)(lVar2 + -0xb18);
  *(ulonglong *)(lVar2 + -0x9e8) = *(ulonglong *)(lVar2 + -0xaa0) ^ uVar15;
  *(ulonglong *)(lVar3 + -0x9e0) =
       (CONCAT44(uVar7,uVar24) ^ 0x21d67a06ef941280) >> (((byte)uVar24 ^ 0xd9) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xbbfbf03b)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xf993b6ab)) ^ uVar21;
  uVar5 = DAT_1826707d0;
  uVar23 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar3 + -0x548) =
       (CONCAT44(uVar22,uVar28) ^ 0xfe803fe57fba7a5c) << (((byte)uVar6 ^ 0xda) & 0x3f);
  uVar25 = uVar5 - uVar4;
  DAT_1826707e4 = uVar25;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xfffffeef)) =
       (CONCAT44(uVar4,uVar25) ^ 0x7d3faae682c054d8) + (*(ulonglong *)(lVar3 + -0x9a0) ^ uVar21);
  *(byte *)(lVar3 - ((ulonglong)uVar4 ^ 0x7d3fa747)) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x82c05d79)) ^ uVar21) ^
       (byte)DAT_182670910 ^ DAT_1826709e0;
  uVar6 = DAT_182670a4c;
  uVar23 = (ulonglong)DAT_182670a4c;
  *(byte *)(*(ulonglong *)(lVar3 + -0x8d8) ^ (ulonglong)DAT_182670a28) = (byte)uVar25 ^ 0x40;
  pbVar16 = (byte *)(uVar15 ^ *(ulonglong *)(lVar3 + -0x9e8));
  *(ulonglong *)(lVar3 + -0xf0) =
       (CONCAT44(uVar5,uVar5) ^ 0x6e6deb56a964b205) << (((byte)uVar4 ^ 0xc2) & 0x3f);
  *(byte **)(lVar3 + -0xab8) = pbVar16 + (CONCAT44(uVar4,uVar5) ^ 0x7d3faae6ffffffbe);
  *pbVar16 = *(byte *)(lVar3 + -0xda1) ^ (byte)DAT_182670910;
  *(ulonglong *)(lVar3 + -0x1f0) = *(ulonglong *)(lVar3 + -0xab8);
  pbVar16 = *(byte **)(lVar3 - ((ulonglong)uVar25 ^ 0x82c05589));
  *(byte **)(lVar3 + -0x418) = pbVar16;
  *(ulonglong *)(lVar3 + -0x3e0) = uVar23 ^ *(ulonglong *)(lVar3 + -0xab8);
  *(ulonglong *)(lVar3 + -0x1d8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182670814;
  *(byte **)(lVar3 + -0xc40) = pbVar16 + (CONCAT44(uVar25,uVar4) ^ 0x82c054d97d3faae7);
  *(byte *)(lVar3 - ((ulonglong)uVar4 ^ 0x7d3fad47)) =
       *pbVar16 ^ (byte)DAT_182670984 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar3 + -0x5a0) ^ (ulonglong)DAT_182670a8c) = (byte)uVar4 ^ 0xb3;
  bVar18 = *(byte *)(lVar3 + -0x7a1) ^ (byte)DAT_182670984;
  *(ulonglong *)(lVar3 + -0x9d0) =
       (CONCAT44(uVar7,uVar4) ^ 0xbfffffbf7d3faae7) +
       ((ulonglong)uVar6 ^ *(ulonglong *)(lVar3 + -0x3e0));
  uVar10 = DAT_182670994;
  uVar24 = DAT_1826707f0;
  uVar6 = DAT_1826707d8;
  uVar29 = (ulonglong)DAT_1826707f0;
  uVar21 = (ulonglong)DAT_1826707d8;
  uVar27 = (ulonglong)DAT_1826708c0;
  uVar15 = (ulonglong)DAT_182670994;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xfffffc5f)) ^ uVar23) = bVar18;
  uVar20 = uVar24 + uVar6;
  *(longlong *)(lVar3 + -0x610) = *(longlong *)(lVar3 + -0x1b8) << (((byte)uVar5 ^ 0x88) & 0x3f);
  *(undefined8 *)(lVar3 + -0xae8) = *(undefined8 *)(lVar3 + -0xc40);
  *(ulonglong *)(lVar3 + -0x5e8) = uVar15 ^ *(ulonglong *)(lVar3 + -0x9d0);
  *(ulonglong *)(lVar3 + -0x6a8) = *(ulonglong *)(lVar3 + -0x9d0);
  DAT_1826707c4 = uVar20;
  *(ulonglong *)(lVar3 + -0x1c8) = *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x82c05ff1)) ^ uVar27
  ;
  lVar2 = DAT_1826707a0;
  puVar26 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x8d66db1e));
  *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x8d66d3b6)) =
       (CONCAT44(uVar20,uVar24) ^ 0x10272fef82c05518) + (uVar27 ^ *puVar26);
  *(byte *)(lVar2 + -0xac1) = *(byte *)(uVar27 ^ *puVar26) ^ DAT_1826708c8 ^ DAT_1826709e0;
  lVar3 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar29 ^ 0x82c05591)) ^ (ulonglong)DAT_182670a3c) =
       (byte)uVar20 ^ 0xfb;
  *(uint *)(lVar3 - (uVar21 ^ 0x8d66d902)) = (uVar20 ^ 0xdb0362cc) + (uVar24 ^ 0xedfb8c86);
  uVar12 = DAT_182670ab4;
  uVar11 = DAT_1826709a8;
  uVar23 = (ulonglong)DAT_1826709a8;
  *(ulonglong *)(lVar3 + -0xb28) =
       (CONCAT44(uVar9,uVar5) ^ 0xb1a3f993ffffffbe) +
       ((ulonglong)uVar10 ^ *(ulonglong *)(lVar3 + -0x5e8));
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x82c05ea9)) =
       CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar3 + -0xc18) |
       CONCAT44(uVar7,uVar20) ^ 0x9658ca504bd170b1;
  *(byte *)(uVar15 ^ *(ulonglong *)(lVar3 + -0x5e8)) =
       *(byte *)(lVar3 - (uVar29 ^ 0x82c05fd8)) ^ DAT_1826708c8;
  *(ulonglong *)(lVar3 + -0x68) =
       CONCAT44(uVar6,uVar20) ^ 0x44707fd2892472f | *(ulonglong *)(lVar3 + -0xbb0);
  *(undefined8 *)(lVar3 + -0x170) = *(undefined8 *)(lVar3 + -0xb28);
  *(undefined8 *)(lVar3 - (uVar21 ^ 0x8d66de86)) = *(undefined8 *)(lVar3 + -0x960);
  uVar15 = (ulonglong)DAT_1826709ec;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xfbfbf9fc)) = uVar23 ^ *(ulonglong *)(lVar3 + -0x170);
  *(longlong *)(lVar3 + -0x658) =
       *(longlong *)(lVar3 + -0xf0) << ((byte)*(undefined8 *)(lVar3 + -0x548) & 0x3f);
  *(ulonglong *)(lVar3 + -0x270) = *(ulonglong *)(lVar3 + -0x450) ^ uVar15;
  bVar18 = (byte)DAT_18267084c;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x82c050e1)) =
       (CONCAT44(uVar24,uVar25) ^ 0x82c0551982c054d8) + *(ulonglong *)(lVar3 + -0x450);
  uVar6 = DAT_1826707dc;
  *(byte *)(lVar3 + -0x15a) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar19 ^ 0xb99b67ac)) ^ uVar15) ^ bVar18 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar3 + -0x480) ^ (ulonglong)DAT_182670af0) = (byte)uVar6 ^ 0xa1;
  *(ulonglong *)(lVar3 + -0x118) =
       CONCAT44(uVar8,uVar20) ^ CONCAT44(uVar28,uVar4) ^ 0xb9bfae234d90ba7d;
  *(ulonglong *)(lVar3 + -0x4a8) =
       ((ulonglong)uVar11 ^ *(ulonglong *)(lVar3 + -0x20)) +
       (CONCAT44(uVar5,uVar4) ^ 0xffffffbf7d3faae7);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar14 ^ 0xbfffff9f)) ^ uVar23) =
       bVar18 ^ *(byte *)(lVar3 + -0x15a);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar22) * 4) = uVar13;
  return;
}



############ FUN_ 180c88130 size=4022 ############

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

void FUN_180c88130(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  byte bVar9;
  uint uVar10;
  uint *puVar11;
  ulonglong uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint *puVar16;
  longlong *plVar17;
  ulonglong uVar18;
  uint *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  byte *pbVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  
  uVar15 = DAT_182670a68;
  bVar2 = (byte)DAT_182670a0c;
  uVar14 = DAT_182670848;
  uVar29 = DAT_1826707c8;
  uVar32 = DAT_1826707c0;
  uVar7 = DAT_1826707bc;
  uVar6 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_1826707c0;
  uVar23 = (ulonglong)DAT_1826707bc;
  uVar21 = (ulonglong)DAT_1826707ac;
  uVar22 = DAT_1826707c8 | DAT_1826707ac;
  uVar33 = (DAT_1826707bc << 0x10 | DAT_1826707bc & 0xff00) << 8 | DAT_1826707bc >> 8 & 0xff00 |
           DAT_1826707bc >> 0x18;
  uVar34 = (DAT_1826707c0 << 0x10 | DAT_1826707c0 & 0xff00) << 8 | DAT_1826707c0 >> 8 & 0xff00 |
           DAT_1826707c0 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670d5c);
  uVar13 = *(uint *)(&DAT_18260f758 + DAT_182670d5c) ^ DAT_1826707c0;
  uVar18 = (ulonglong)DAT_182670914;
  pbVar30 = (byte *)(*(longlong *)(DAT_1826707a0 + -0x30) + 0x13);
  uVar12 = *(ulonglong *)(DAT_1826707a0 + -0x1c8);
  uVar24 = (ulonglong)DAT_182670848;
  DAT_1826707e0 = uVar33;
  DAT_1826707e8 = uVar22;
  DAT_1826707f4 = uVar34;
  *(int *)(DAT_1826707a0 + -0xa34) =
       0x324ce48c << (((byte)*(undefined4 *)(DAT_1826707a0 + -0x9ec) ^ (byte)DAT_182670a68) & 0x1f);
  *(ulonglong *)(lVar3 + -0x248) = (ulonglong)pbVar30 ^ uVar18;
  *(byte *)(lVar3 + -0x2e9) = *pbVar30 ^ bVar2 ^ (byte)DAT_182670adc;
  *(byte *)(uVar12 ^ uVar24) = (byte)uVar29 ^ 0xda;
  uVar10 = DAT_182670a74;
  uVar25 = DAT_182670900;
  lVar4 = DAT_1826707a0;
  puVar11 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xe6aa3ca9));
  uVar27 = (uint)(*(byte *)(lVar3 + -0x2e9) ^ bVar2);
  *(uint *)(DAT_1826707a0 + -0x43c) = uVar27 ^ DAT_182670a74;
  uVar12 = (ulonglong)uVar22;
  *(uint *)(lVar4 + -0x280) = (*puVar11 ^ DAT_182670a00) + (uVar22 ^ 0x3dde32de) ^ uVar25;
  lVar3 = DAT_1826707a0;
  *(int *)(DAT_1826707a0 + -0x42c) =
       0x2cf2838c << (((byte)*(undefined4 *)(lVar4 + -0xc34) ^ (byte)DAT_182670814) & 0x1f);
  puVar19 = (uint *)(lVar3 - (uVar12 ^ 0xf6fa7311));
  bVar2 = (byte)(uVar7 >> 0x18);
  *puVar19 = uVar27 << ((bVar2 ^ 0x4f) & 0x1f) ^ DAT_182670a9c;
  lVar3 = DAT_1826707a0;
  uVar25 = (uVar25 ^ *(uint *)(DAT_1826707a0 + -0x280)) -
           (*(uint *)(DAT_1826707a0 + -0xcec) ^ DAT_182670a9c) ^ DAT_182670af4;
  puVar11 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x5ed47c5d));
  *(uint *)(DAT_1826707a0 + -0x398) = uVar25;
  *(uint *)(lVar3 + -0x7e4) = (*puVar11 ^ uVar15) * (uVar25 ^ DAT_182670af4) ^ DAT_182670a6c;
  uVar25 = DAT_1826709ac;
  *(uint *)(lVar3 + -0xc04) = (*(uint *)(lVar3 + -0x43c) ^ uVar10) * 0x13 ^ DAT_1826708a4;
  *(uint *)(lVar3 + -0x540) =
       (*(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0x5ed47255)) ^ DAT_182670a6c) +
       (*(uint *)(lVar3 - (uVar21 ^ 0xe6aa3379)) ^ DAT_1826708a4) ^ uVar25;
  uVar10 = _DAT_1826709e0;
  puVar11 = (uint *)(lVar3 - ((ulonglong)uVar32 ^ 0xf993b4e3));
  uVar27 = (*puVar11 ^ uVar25) << (((byte)uVar22 ^ 0xf0) & 0x1f);
  *(uint *)(lVar3 + -0x8e0) = uVar27 ^ DAT_1826708b4;
  uVar25 = (*(uint *)(lVar3 + -0x540) ^ uVar25) >> 0x13 ^ DAT_182670ab4;
  *(uint *)(lVar3 + -0x2d4) = uVar25;
  uVar25 = (uVar25 ^ DAT_182670ab4 | uVar27) ^ DAT_182670a4c;
  *(uint *)(lVar3 + -0x68c) = uVar25;
  uVar14 = (*(uint *)(lVar3 + -0x9ec) ^ uVar15) + (*(uint *)(lVar3 + -0xb54) ^ uVar14) ^
           DAT_182670868;
  *(uint *)(lVar3 + -0xc0c) = uVar14;
  *(uint *)(lVar3 + -0xa34) = uVar14 ^ DAT_182670a30 ^ DAT_182670868;
  uVar27 = DAT_1826709dc;
  *(uint *)(lVar3 - ((ulonglong)uVar34 ^ 0xa3b1902d)) = uVar25 ^ DAT_1826709dc ^ DAT_182670a4c;
  *(ulonglong *)(lVar3 + -0xd38) = *(ulonglong *)(lVar3 + -0x588) >> 0x15;
  bVar9 = (byte)DAT_18267082c;
  *(uint *)(lVar3 + -0x42c) =
       *(uint *)(lVar3 - ((ulonglong)uVar29 ^ 0xd6da6cb9)) ^ uVar10 ^ DAT_182670a30;
  puVar16 = (uint *)(lVar3 - ((ulonglong)uVar33 ^ 0xb175d86a));
  *puVar16 = DAT_182670aa4 ^ uVar27 ^ *(uint *)(lVar3 + -0x3d4);
  pbVar30 = (byte *)((CONCAT44(uVar33,uVar7) ^ 0xb175d45e5ed475af) + *(longlong *)(lVar3 + -0x30));
  *(ulonglong *)(lVar3 + -0x3e0) = (ulonglong)pbVar30 ^ (ulonglong)DAT_182670ad0;
  *(byte *)(lVar3 + -0x751) = *pbVar30 ^ bVar9 ^ (byte)DAT_182670adc;
  uVar25 = DAT_182670880;
  *(undefined1 *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0xe6aa354d)) ^ (ulonglong)DAT_182670958) = 0x44;
  uVar15 = *(uint *)(lVar3 + -0xc34) ^ DAT_182670aa4;
  *(ulonglong *)(lVar3 + -0x558) =
       CONCAT44(uVar22,uVar7) ^ 0xdbf946ce7e6df0c8 | *(ulonglong *)(lVar3 + -0x548);
  uVar28 = (bVar9 ^ *(byte *)(lVar3 + -0x751)) ^ DAT_182670ad8;
  uVar14 = DAT_1826707f4 ^ 0x6895deda;
  *(uint *)(lVar3 + -0x280) = uVar28;
  uVar28 = uVar28 ^ DAT_182670ad8;
  *(uint *)(lVar3 + -0xcec) = uVar15 + uVar14 ^ uVar25;
  uVar14 = uVar28 << (((byte)DAT_1826707ac ^ 0x6c) & 0x1f) ^ DAT_182670abc;
  *(uint *)(lVar3 + -0x398) = uVar14;
  uVar14 = (*(uint *)(lVar3 - ((ulonglong)uVar29 ^ 0xd6da6a61)) ^ uVar25) - (uVar14 ^ DAT_182670abc)
           ^ DAT_18267093c;
  *(uint *)(lVar3 + -0x43c) = uVar14;
  uVar26 = DAT_182670a2c;
  uVar15 = DAT_18267092c;
  lVar4 = DAT_1826707a0;
  uVar31 = (*(uint *)(lVar3 + -0x42c) ^ uVar10) * (uVar14 ^ DAT_18267093c) ^ DAT_182670b14;
  *(uint *)(DAT_1826707a0 + -0x7e4) = uVar31;
  uVar31 = uVar31 ^ DAT_182670b14;
  *(uint *)(lVar4 + -0xc04) = (uVar32 ^ 0xf993b1bd) * uVar28 ^ DAT_182670908;
  uVar14 = DAT_1826707e8;
  uVar31 = (*(uint *)(lVar4 - (uVar23 ^ 0x5ed479b5)) ^ DAT_182670908) + uVar31;
  *(uint *)(lVar4 + -0x540) = uVar31 ^ uVar15;
  *(uint *)(lVar4 - (uVar12 ^ 0xf6fa771d)) = uVar31 * 0x2000 ^ uVar26;
  plVar17 = (longlong *)(DAT_1826707a0 - ((ulonglong)uVar34 ^ 0xa3b19731));
  *(uint *)(lVar4 + -0x2d4) =
       (*(uint *)(lVar4 + -0x540) ^ uVar15) >> (((byte)uVar14 ^ 0xee) & 0x1f) ^ DAT_182670990;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0xb175d4ae)) =
       *plVar17 - (CONCAT44(uVar6,uVar7) ^ 0x58f17d532a78502f);
  uVar14 = (*(uint *)(lVar4 + -0x42c) ^ uVar10) + (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) ^
           DAT_182670844;
  uVar15 = (*(uint *)(lVar4 + -0x2d4) ^ DAT_182670990 | uVar26 ^ *(uint *)(lVar4 + -0x8e0)) ^
           DAT_182670a1c;
  *(uint *)(lVar4 + -0x9ec) = uVar15;
  *(uint *)(lVar4 + -0xc0c) = uVar14;
  *(byte *)(lVar4 + -0xaea) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar29 ^ 0xd6da6275)) ^ (ulonglong)DAT_18267095c
                ) ^ (byte)DAT_182670adc;
  uVar10 = DAT_182670948;
  uVar29 = uVar14 ^ DAT_1826709b0 ^ DAT_182670844;
  uVar15 = uVar15 ^ DAT_182670a1c;
  uVar24 = (ulonglong)DAT_182670944;
  *(uint *)(lVar4 + -0x68c) = uVar29;
  uVar14 = DAT_1826707b4;
  uVar21 = (ulonglong)DAT_1826707b4;
  uVar29 = uVar29 ^ uVar10 ^ DAT_1826709b0;
  *(uint *)(lVar4 + -0xa34) = uVar15 ^ uVar25;
  uVar15 = DAT_182670804;
  *(uint *)(lVar4 + -0x3d4) = uVar29;
  uVar29 = DAT_1826707f0;
  uVar18 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar4 + -0xc34) = *(uint *)(lVar4 - (uVar20 ^ 0xf993bb97)) ^ DAT_1826709e8 ^ uVar25;
  lVar3 = DAT_1826707a0;
  plVar17 = (longlong *)(DAT_1826707a0 + -0xce0);
  *(ulonglong *)(DAT_1826707a0 + -0x2e8) =
       (CONCAT44(uVar34,uVar29) ^ 0xa3b193f921e6c8d3) * 0x20 +
       (CONCAT44(uVar33,uVar32) ^ 0xb175d45ef993b1aa) + *(longlong *)(DAT_1826707a0 + -0x30) ^
       uVar24;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x21e6c46b)) =
       (CONCAT44(uVar6,uVar34) ^ 0x5256352e35f5b59) - *plVar17;
  bVar9 = (byte)DAT_1826708fc;
  *(byte *)(lVar3 + -0x619) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x2e8)) ^ (byte)DAT_1826708fc ^
       (byte)DAT_182670adc;
  uVar29 = DAT_1826707bc ^ 0xa7bb5805;
  *(byte *)(*(ulonglong *)(lVar3 + -0x9a0) ^ (ulonglong)DAT_182670928) = bVar2 ^ 0x87;
  *(uint *)(lVar3 + -0xcec) = uVar29 * 0x10b5bf4b;
  *(uint *)(lVar3 + -0x398) = (*(byte *)(lVar3 + -0x619) ^ bVar9) ^ uVar15;
  uVar25 = *(uint *)(lVar3 + -0xc34) ^ DAT_1826709e8;
  *(ulonglong *)(lVar3 + -0x6f0) =
       *(longlong *)(lVar3 + -0x2b0) - (CONCAT44(uVar32,uVar6) ^ 0x4a3b005a9b8c6007);
  uVar29 = DAT_182670924;
  lVar4 = DAT_1826707a0;
  *(uint *)(lVar3 + -0x43c) = uVar25 + (DAT_1826707c8 ^ 0x1dfe2bae) ^ DAT_1826708d8;
  uVar25 = DAT_1826707dc;
  lVar3 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707dc;
  uVar26 = (*(uint *)(DAT_1826707a0 - (uVar36 ^ 0xbffffc27)) ^ uVar15) <<
           (((byte)DAT_1826707c0 ^ 0xb2) & 0x1f) ^ DAT_18267081c;
  *(uint *)(DAT_1826707a0 + -0x280) = uVar26;
  uVar26 = (*(uint *)(lVar3 - ((ulonglong)uVar33 ^ 0xb175d062)) ^ DAT_1826708d8) -
           (uVar26 ^ DAT_18267081c) ^ DAT_182670a58;
  *(uint *)(lVar4 + -0x7e4) = uVar26;
  *(uint *)(lVar4 - (uVar18 ^ 0x21e6c4d7)) =
       (uVar26 ^ DAT_182670a58) * (uVar10 ^ *(uint *)(lVar4 + -0x3d4)) ^ DAT_182670904;
  *(ulonglong *)(lVar4 + -0x220) =
       (CONCAT44(uVar7,uVar6) ^ 0xa0c35132ca4ffa31) - (CONCAT44(uVar6,uVar34) ^ 0x7cc62e68265dee8e);
  *puVar11 = (*(uint *)(lVar4 + -0x398) ^ uVar15) * 9 ^ uVar27;
  lVar3 = DAT_1826707a0;
  uVar15 = (*(uint *)(lVar4 + -0x540) ^ uVar27) +
           (*(uint *)(DAT_1826707a0 + -0xc04) ^ DAT_182670904);
  uVar24 = (ulonglong)DAT_1826707c8;
  uVar18 = CONCAT44(DAT_1826707c8,DAT_1826707c8);
  *(uint *)(DAT_1826707a0 + -0x8e0) = uVar15 ^ uVar29;
  *(ulonglong *)(lVar3 + -0xd88) = uVar18 ^ CONCAT44(uVar25,uVar22) ^ 0x83ac82b8b93c02e;
  uVar29 = DAT_1826707e8;
  uVar8 = DAT_1826707d0;
  lVar4 = DAT_1826707a0;
  uVar26 = DAT_1826707bc ^ 0x2e8fc669;
  uVar27 = uVar15 >> (((byte)DAT_1826707bc ^ 0xa2) & 0x1f) ^ DAT_182670ae0;
  *(uint *)(lVar3 + -0x2d4) = uVar15 << (((byte)DAT_1826707f0 ^ 0xde) & 0x1f) ^ DAT_182670854;
  *(uint *)(lVar3 - ((ulonglong)uVar14 ^ 0x21e6ccbf)) = uVar27;
  uVar15 = *(uint *)(lVar3 + -0x42c) ^ DAT_182670ae0;
  *(ulonglong *)(lVar3 + -0x658) =
       CONCAT44(uVar8,uVar33) ^ 0xc8eaacb2764f0f66 | CONCAT44(uVar33,uVar34) ^ 0xd78c529d655955e0;
  *(uint *)(lVar3 + -0xc0c) = (*(uint *)(lVar3 + -0x2d4) ^ DAT_182670854 | uVar15) ^ DAT_1826708b0;
  lVar5 = DAT_1826707a0;
  uVar15 = (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) + (uVar10 ^ *(uint *)(lVar3 + -0x3d4)) ^
           DAT_182670a54;
  *(uint *)(lVar3 + -0x9ec) = uVar15;
  uVar10 = _DAT_18267097c;
  uVar35 = (ulonglong)_DAT_18267097c;
  *(uint *)(lVar5 + -0x68c) = uVar15 ^ _DAT_18267097c ^ DAT_182670a54;
  *(uint *)(lVar5 + -0xa34) =
       *(uint *)(lVar5 - (uVar21 ^ 0x21e6c49f)) ^ DAT_1826708b0 ^ DAT_182670aa4;
  *(uint *)(lVar5 - (uVar36 ^ 0xbffff353)) = uVar29 ^ 0x830f3fa | uVar26;
  uVar27 = DAT_182670a20;
  uVar15 = DAT_182670850;
  *puVar16 = *(uint *)(lVar5 - (uVar20 ^ 0xf993b72f)) ^ DAT_182670850 ^ uVar10;
  *(uint *)(lVar4 + -0x43c) = uVar27 ^ DAT_182670aa4 ^ *(uint *)(lVar4 + -0xa34);
  uVar29 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  pbVar30 = (byte *)((CONCAT44(uVar34,uVar14) ^ 0xa3b193f921e6c893) * 0x20 +
                     (CONCAT44(uVar25,uVar7) ^ 0xbfffffbf5ed475a5) + *(longlong *)(lVar4 + -0x30));
  *(ulonglong *)(lVar4 + -0x600) = (ulonglong)pbVar30 ^ (ulonglong)DAT_1826708f4;
  uVar26 = _DAT_182670b10;
  bVar2 = (byte)DAT_1826709b4;
  *(byte *)(lVar3 - (uVar20 ^ 0xf993b376)) = *pbVar30 ^ (byte)DAT_1826709b4 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar3 + -0x1f0) ^ (ulonglong)DAT_1826708a4) = (byte)uVar29 ^ 0x6d;
  *(uint *)(lVar3 + -0x280) = (*(byte *)(lVar3 + -0x2d5) ^ bVar2) ^ uVar26;
  uVar7 = DAT_1826707d8;
  uVar21 = (ulonglong)DAT_1826707d8;
  *(longlong *)(lVar3 - (uVar24 ^ 0xd6da653d)) = *(longlong *)(lVar3 + -0x2b0) + -0x19398cd697376996
  ;
  uVar20 = (ulonglong)DAT_1826707ec;
  uVar18 = CONCAT44(DAT_1826707ec,uVar25);
  *(uint *)(lVar3 + -0x7e4) = (uVar27 ^ *(uint *)(lVar3 + -0x43c)) + (uVar14 ^ 0xeac285b0) ^ uVar26;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x5ed47c79)) =
       uVar18 ^ *(ulonglong *)(lVar3 + -0x400) ^ 0x7b00a161caabec7c;
  uVar25 = (*(uint *)(lVar3 - (uVar12 ^ 0xf6fa7d7d)) ^ uVar26) << 0x11 ^ DAT_182670abc;
  uVar12 = (ulonglong)DAT_1826707cc;
  *(uint *)(lVar3 + -0x398) = uVar25;
  uVar29 = DAT_182670828;
  *(uint *)(lVar3 - (uVar12 ^ 0x85f69552)) =
       (*(uint *)(lVar3 - (uVar21 ^ 0x8d66dd32)) ^ uVar26) - (uVar25 ^ DAT_182670abc) ^
       DAT_182670890;
  uVar10 = DAT_182670898;
  uVar27 = (*(uint *)(lVar3 - (uVar36 ^ 0xbffff3bb)) ^ DAT_182670890) *
           (*(uint *)(lVar3 + -0xc34) ^ uVar15);
  uVar25 = DAT_1826707f4 ^ 0xa3b193ed;
  *(longlong *)(lVar3 + -0x68) = *(longlong *)(lVar3 + -0x658) + 0x1076b73214ef7153;
  *(uint *)(lVar3 + -0x540) = uVar27 ^ uVar29;
  *(uint *)(lVar3 + -0x8e0) = (uVar26 ^ *(uint *)(lVar3 + -0x280)) * uVar25 ^ DAT_182670a64;
  uVar29 = DAT_1826707c8;
  uVar27 = (*(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0x8d66d236)) ^ DAT_182670a64) + uVar27;
  *(uint *)(lVar3 + -0x2d4) = uVar27 ^ uVar10;
  uVar25 = DAT_1826707f0;
  uVar29 = uVar27 << ((byte)uVar29 & 0x1f) ^ DAT_182670a60;
  *(longlong *)(lVar3 + -0x118) =
       *(longlong *)(lVar3 + -0x410) << ((byte)*(undefined8 *)(lVar3 + -0xb70) & 0x3f);
  *(uint *)(lVar3 + -0x42c) = uVar29;
  *(uint *)(lVar3 + -0x3d4) =
       (*(uint *)(lVar3 + -0x2d4) ^ uVar10) >> ((byte)uVar25 & 0x1f) ^ DAT_182670a08;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x40248538)) =
       -0x2970e64698a0271d - (CONCAT44(uVar32,uVar14) ^ 0x5bc5814f8875032b);
  uVar32 = (*(uint *)(lVar3 - ((ulonglong)DAT_1826707c4 ^ 0xaff6feab)) ^ DAT_182670a08 |
           *(uint *)(lVar3 + -0x42c) ^ DAT_182670a60) ^ DAT_182670998;
  uVar29 = *(uint *)(lVar3 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar3 + -0x9ec) = uVar32;
  uVar18 = (ulonglong)DAT_1826707b0;
  uVar14 = uVar29 + (*(uint *)(lVar3 + -0xc34) ^ uVar15) ^ DAT_182670980;
  uVar32 = uVar32 ^ DAT_1826708e8 ^ DAT_182670998;
  *(longlong *)(lVar3 + -0x5c0) =
       *(longlong *)(lVar3 + -0x9e0) << (((byte)DAT_1826707b0 ^ 0x4b) & 0x3f);
  uVar29 = DAT_1826709d4 ^ DAT_182670a10;
  *(uint *)(lVar3 + -0xc0c) = uVar14;
  *(uint *)(lVar3 + -0xcec) = uVar14 ^ DAT_182670a10 ^ DAT_182670980;
  *(uint *)(lVar3 + -0x68c) = uVar32;
  *(uint *)(lVar3 + -0xa34) = uVar29 ^ *puVar19;
  uVar12 = CONCAT44(DAT_1826707b8,uVar22);
  *(uint *)(lVar3 + -0x43c) =
       *(uint *)(lVar3 - ((ulonglong)uVar34 ^ 0xa3b19575)) ^ DAT_1826709c4 ^ DAT_1826708e8;
  *(ulonglong *)(lVar3 + -0x420) = uVar12 ^ *(ulonglong *)(lVar3 + -0x548) ^ 0x3326dc5cf5f8434c;
  pbVar30 = (byte *)((CONCAT44(uVar7,uVar6) ^ 0x8d66dad6e6aa3f7d) * 0x20 +
                     (CONCAT44(uVar8,DAT_1826707d4) ^ 0xffffffbf7ffdf7a4) +
                    *(longlong *)(lVar3 + -0x30));
  *(ulonglong *)(lVar3 + -0xa60) = (ulonglong)pbVar30 ^ uVar35;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar34) * 4) = uVar13;
  *(byte *)(lVar3 - (uVar18 ^ 0x7a2de450)) = *pbVar30 ^ (byte)DAT_182670a4c ^ (byte)DAT_182670adc;
  return;
}



############ FUN_ 180d14000 size=4295 ############

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

void FUN_180d14000(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  byte bVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  byte *pbVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte bVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  byte bVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint *puVar32;
  ulonglong uVar33;
  uint *puVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  bVar9 = DAT_1826709e0;
  uVar7 = DAT_1826709c4;
  uVar19 = DAT_1826707f0;
  lVar3 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707f0;
  uVar12 = DAT_1826707f0 << 0x10 | DAT_1826707f0 >> 0x10;
  uVar22 = *(uint *)(&DAT_18260f758 + DAT_182670c10) ^ DAT_1826707f0;
  uVar30 = uVar27 ^ 0xe273ac7d;
  uVar2 = *(uint *)(&DAT_18260f750 + uVar30 + (longlong)DAT_182670c10);
  uVar36 = (ulonglong)uVar12;
  uVar20 = CONCAT44(uVar12,DAT_1826707f0);
  DAT_1826707d8 = uVar12;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xac6defa3)) ^
           (ulonglong)DAT_182670804) =
       *(byte *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xac6de581)) ^ DAT_1826709e0 ^
       (byte)DAT_1826709ec;
  uVar8 = DAT_182670a8c;
  uVar14 = CONCAT44(uVar7,uVar7);
  uVar21 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar3 + -0x118) = *(ulonglong *)(uVar14 ^ *(ulonglong *)(lVar3 + -0x518)) ^ uVar21;
  uVar23 = CONCAT44(uVar8,uVar8);
  bVar35 = (byte)(uVar19 >> 0x10);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xac6de39b)) =
       *(longlong *)(lVar3 - (uVar27 ^ 0xe273aebd)) + (uVar20 ^ 0xac6de273e273ac66) * 8 ^ uVar23;
  uVar33 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar27 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x1e8) ^ uVar23) ^ uVar33 ^ uVar21;
  *(ulonglong *)(lVar3 + -0xac0) = uVar27;
  uVar25 = DAT_1826709a0;
  uVar26 = DAT_1826707d0;
  lVar3 = DAT_1826707a0;
  bVar24 = (byte)DAT_182670a10;
  uVar31 = (ulonglong)DAT_1826709a0;
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x118);
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (uVar27 ^ uVar33) >> ((bVar35 ^ 0x43) & 0x3f) ^ CONCAT44(DAT_182670a10,DAT_182670a10);
  bVar28 = bVar24 ^ (byte)DAT_1826708cc ^ *(byte *)(lVar3 + -0x998);
  bVar24 = (byte)DAT_1826708cc ^ bVar9;
  *(byte *)(lVar3 + -0x139) = bVar28;
  *(ulonglong *)(lVar3 + -0x410) = uVar23 >> (((byte)uVar19 ^ 0x49) & 0x3f);
  uVar7 = DAT_1826707dc;
  uVar27 = CONCAT44(uVar12,DAT_1826707dc);
  pbVar15 = (byte *)(*(longlong *)(lVar3 - uVar30) + 0x5e);
  *(ulonglong *)(lVar3 + -0xf8) = (ulonglong)pbVar15 ^ uVar31;
  *pbVar15 = bVar24 ^ bVar28;
  uVar8 = DAT_182670ad8;
  uVar17 = DAT_1826707b8;
  uVar23 = CONCAT44(uVar26,DAT_1826707b4);
  *(ulonglong *)(lVar3 + -0x660) =
       (CONCAT44(uVar19,uVar19) ^ 0x2eb09f1a781012c3) - (uVar27 ^ 0x8160d8bc9ac3300b);
  uVar27 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x2ec194fa)) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((uVar23 ^ 0xdd5fbfd6681cff9a) + (uVar20 ^ 0xac6de273e273ac6d) * 0xc) * 8 ^ uVar27;
  *(undefined8 *)(lVar3 + -0x2d0) = 0x45f88f578da7a9e2;
  *(ulonglong *)(lVar3 + -0x420) =
       (CONCAT44(uVar7,DAT_1826707d4) ^ 0xde4bc6d3602933a2) >>
       ((byte)*(undefined8 *)(lVar3 + -0x118) & 0x3f);
  uVar5 = DAT_182670ab4;
  uVar11 = DAT_1826707e4;
  uVar18 = DAT_1826707e0;
  uVar17 = DAT_1826707b0;
  uVar30 = CONCAT44(DAT_182670820,DAT_182670820);
  uVar31 = CONCAT44(uVar7,DAT_1826707e0);
  uVar23 = CONCAT44(DAT_1826707e4,DAT_1826707b0);
  *(ulonglong *)(lVar3 + -0xd88) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x7b8) ^ uVar27) ^ uVar30 ^ uVar21;
  uVar10 = DAT_1826707cc;
  *(ulonglong *)(CONCAT44(DAT_182670ac0,DAT_182670ac0) ^ *(ulonglong *)(lVar3 + -0x6c8)) =
       uVar23 ^ 0xcca3010e600547e9;
  uVar29 = DAT_182670af8;
  uVar20 = (ulonglong)DAT_182670af8;
  *(ulonglong *)(lVar3 + -0x6c8) = CONCAT44(uVar10,uVar18) ^ 0xf2bbe98ce1b1a6b6;
  uVar6 = DAT_1826707c4;
  lVar3 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) >> (((byte)uVar7 ^ 0xea) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar3 + -0x1b8) =
       CONCAT44(uVar6,DAT_1826707f0) ^ 0xfffc1fe73feffffb | 0xfef80e833eee567b;
  *(byte *)(lVar3 - ((ulonglong)uVar17 ^ 0x9d1f8bcb)) =
       *(byte *)(lVar3 - ((ulonglong)DAT_1826707ac ^ 0xcacab3a7)) ^ (byte)uVar5 ^
       (byte)DAT_1826708e0;
  pbVar15 = (byte *)((uVar31 ^ 0x9d523fd2bfbfca95) + *(longlong *)(lVar3 + -0x10));
  uVar23 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0x408) = (ulonglong)pbVar15 ^ (ulonglong)DAT_18267084c;
  *(byte *)(lVar3 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0x8b2c4e7a)) ^ uVar20) ^ (byte)DAT_182670a40;
  uVar17 = DAT_1826709d8;
  uVar5 = DAT_1826707f4;
  uVar18 = DAT_1826707b4;
  uVar20 = (ulonglong)DAT_1826707f4;
  *pbVar15 = *(byte *)(lVar3 - (uVar36 ^ 0xac6de37a)) ^ bVar9 ^ (byte)DAT_1826708e0;
  uVar7 = DAT_1826707ec;
  uVar13 = (*(uint *)(lVar3 - (uVar20 ^ 0xbfbfcd2e)) ^ DAT_182670aac |
           DAT_182670974 ^ *(uint *)(lVar3 + -0x540)) ^ DAT_182670a00;
  uVar10 = DAT_1826707a8 ^ 0xeecbbe78;
  uVar16 = *(uint *)(lVar3 + 0x40) ^ uVar17 ^ DAT_182670a00 ^ uVar13;
  *(uint *)(lVar3 + -0xaf0) = uVar13;
  *(uint *)(lVar3 + -0x8e0) = uVar16;
  *(undefined8 *)(lVar3 + -0x3b0) = 0x18a660ca929715bc;
  uVar10 = (uVar16 ^ uVar17 | uVar10) ^ DAT_182670848;
  *(uint *)(lVar3 + -0xb54) = uVar10;
  *(uint *)(lVar3 + -0xcec) =
       (uVar10 ^ DAT_182670848) << (((byte)uVar7 ^ 0x96) & 0x1f) ^ DAT_18267089c;
  uVar10 = DAT_1826707e0;
  uVar23 = (ulonglong)DAT_1826707d4;
  uVar17 = *(uint *)(lVar3 - (uVar36 ^ 0xac6dea93)) ^ DAT_182670ab0 ^ uVar17;
  *(uint *)(lVar3 + -0xc34) = DAT_1826708f0 ^ DAT_182670ab0 ^ uVar17;
  *(uint *)(lVar3 + -0x280) = uVar17;
  lVar4 = DAT_1826707a0;
  uVar13 = *(uint *)(lVar3 - (uVar23 ^ 0x6fb6c718)) ^ DAT_1826709e4 ^ DAT_1826708f0;
  *(uint *)(DAT_1826707a0 + -0xc0c) = uVar13;
  uVar17 = DAT_1826707c4;
  uVar27 = (ulonglong)DAT_1826707c4;
  uVar23 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(DAT_1826707a0 + -0x548) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xbfbfc6d2)) ^ CONCAT44(uVar18,uVar7) ^ uVar37 ^
       0xfa2e1cedc7fbe05d;
  lVar3 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar26,DAT_1826707e8);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xac0);
  *(uint *)(DAT_1826707a0 + -0x140) = DAT_182670808 ^ DAT_1826709e4 ^ uVar13;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xe273a86d)) = uVar33 ^ *puVar1 ^ 0x5dae7021b52e652;
  pbVar15 = (byte *)((CONCAT44(uVar10,uVar17) ^ 0xbfbfcacacacabfae) +
                     (uVar30 ^ 0xdd5fbfd6cacabfbf) * 0x20 + *(longlong *)(lVar3 + -0x30));
  *(ulonglong *)(lVar3 + -0x4f8) = (ulonglong)pbVar15 ^ (ulonglong)DAT_1826709cc;
  *(byte *)(lVar3 + -0xc35) = *pbVar15 ^ (byte)DAT_182670adc ^ (byte)uVar25;
  *(uint *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0x8b2c491a)) =
       (uint)*(byte *)(lVar3 - ((ulonglong)uVar5 ^ 0xbfbfc6ff)) ^ uVar25 & 0xff ^ uVar29;
  uVar23 = (ulonglong)DAT_1826707b4;
  *(uint *)(lVar3 - (uVar27 ^ 0xcacab7ab)) =
       (*(uint *)(lVar3 + -0x140) ^ DAT_182670808) + (DAT_1826707c4 ^ 0x1eef29c) ^ DAT_182670a4c;
  uVar17 = DAT_18267094c;
  uVar29 = *(uint *)(lVar3 + -0x398) ^ uVar29;
  *(uint *)(lVar3 + -0x3d4) = uVar29 * 0x20000 ^ DAT_182670844;
  uVar5 = DAT_1826707c0;
  uVar26 = DAT_1826707b8;
  uVar25 = (*(uint *)(lVar3 - (uVar23 ^ 0x681cf785)) ^ DAT_182670a4c) + uVar29 * -0x20000;
  uVar23 = (ulonglong)DAT_1826707c0;
  uVar27 = (ulonglong)DAT_1826707cc;
  *(uint *)(lVar3 + -0xc04) = uVar25 ^ uVar17;
  *(ulonglong *)(lVar3 + -0xa18) = *(ulonglong *)(uVar14 ^ *(ulonglong *)(lVar3 + -0x518)) ^ uVar21;
  uVar17 = DAT_1826707d0;
  uVar10 = uVar29 * 0x11 ^ DAT_182670a24;
  *(uint *)(lVar3 + -0x14) = uVar25 * (DAT_1826707d0 ^ 0x9946e0ee) ^ _DAT_182670ad4;
  *(uint *)(lVar3 - (uVar23 ^ 0x80522acc)) = uVar10;
  uVar10 = DAT_1826707ac;
  uVar21 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xcb2c6d96)) =
       (CONCAT44(DAT_182670928,DAT_182670928) ^ *(ulonglong *)(lVar3 + -0x7d8)) -
       (uVar37 ^ *(ulonglong *)(lVar3 + -0xc18));
  *(uint *)(lVar3 + -0xa34) =
       (*(uint *)(lVar3 + -0x68c) ^ DAT_182670a24) + (*(uint *)(lVar3 + -0x14) ^ _DAT_182670ad4) ^
       DAT_182670a38;
  *(longlong *)(lVar3 - (uVar20 ^ 0xbfbfca3a)) =
       -0x77d10460c6423c05 << (((byte)uVar17 ^ 0xe9) & 0x3f);
  uVar17 = DAT_1826707b0;
  uVar25 = *(uint *)(lVar3 + -0xa34) ^ DAT_182670a38;
  *(uint *)(lVar3 + -0x42c) = uVar25 << ((bVar35 ^ 0x7e) & 0x1f) ^ DAT_1826708b0;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar18,uVar26) ^ 0x9a90e26c71c3f57b) << (((byte)uVar17 ^ 0xf4) & 0x3f);
  uVar18 = DAT_1826707e4;
  uVar26 = uVar25 >> (((byte)DAT_1826707b0 ^ 0xd1) & 0x1f) ^ DAT_182670864;
  uVar23 = (ulonglong)DAT_1826707e4;
  uVar17 = DAT_1826707b0 ^ 0xd906d5fa;
  uVar14 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar3 + -0x9ec) = uVar26;
  puVar34 = (uint *)(lVar3 - (uVar23 ^ 0x8b2c4eae));
  uVar25 = (uVar26 ^ DAT_182670864 | *puVar34 ^ DAT_1826708b0) ^ DAT_182670a78;
  uVar26 = DAT_1826709c0 ^ DAT_1826709d8;
  *(uint *)(lVar3 + -0x598) = (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) + uVar17 ^ DAT_1826709c0;
  uVar23 = CONCAT44(uVar7,DAT_1826707e0);
  *(uint *)(lVar3 + -0x43c) = uVar25;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xcacabae7)) =
       uVar23 ^ CONCAT44(uVar19,uVar7) ^ 0xbb54852ede5bfce7;
  puVar32 = (uint *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0xe273aeb9));
  uVar23 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *puVar32 = uVar26 ^ *(uint *)(lVar4 + -0x598);
  uVar17 = DAT_1826707a8;
  uVar20 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar4 + -0x5c0) =
       (CONCAT44(uVar11,uVar18) ^ 0x2ffe9b22f3905b48) - (uVar23 ^ *(ulonglong *)(lVar4 + -0xbb0));
  *(uint *)(lVar4 + -0x540) =
       *(uint *)(lVar4 - (uVar36 ^ 0xac6de64f)) ^ DAT_1826708d0 ^ DAT_182670a78;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0xeecbbb37)) = CONCAT44(uVar12,uVar5) ^ 0x8ab9475642d2f9ec;
  uVar25 = DAT_182670adc;
  uVar11 = DAT_182670a6c;
  uVar18 = DAT_182670a20;
  uVar26 = DAT_182670924;
  lVar3 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_182670adc;
  uVar29 = DAT_182670830 ^ DAT_1826708d0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0xcacab85b)) =
       *(uint *)(lVar4 - (uVar27 ^ 0xcb2c6d62)) ^ DAT_182670924 ^ DAT_1826709d8;
  bVar24 = (byte)DAT_182670890;
  uVar29 = uVar29 ^ *(uint *)(lVar3 + -0x540);
  pbVar15 = (byte *)(*(longlong *)(lVar3 + -0x30) + 0x1c);
  *(uint *)(lVar3 + -0x8e0) = uVar29;
  uVar29 = uVar29 ^ DAT_182670830;
  *(ulonglong *)(lVar3 + -0x4f8) = (ulonglong)pbVar15 ^ uVar23;
  uVar5 = DAT_18267093c;
  bVar28 = *pbVar15 ^ bVar24 ^ (byte)uVar25;
  bVar9 = (byte)DAT_1826707e8;
  uVar25 = DAT_1826707d4 ^ 0xa492860f;
  *(byte *)(lVar3 + -0xc35) = bVar28;
  uVar29 = uVar29 + uVar25;
  uVar25 = (uint)(bVar28 ^ bVar24);
  *(uint *)(lVar3 + -0x280) = uVar25 ^ uVar18;
  *(uint *)(lVar3 + -0xc34) = uVar29 ^ uVar11;
  uVar7 = DAT_1826707dc;
  lVar4 = DAT_1826707a0;
  uVar18 = uVar25 << ((bVar9 ^ 0xae) & 0x1f);
  *(uint *)(lVar3 + -0xc0c) = uVar18 ^ uVar5;
  uVar29 = uVar29 - uVar18 ^ DAT_182670a40;
  *(uint *)(lVar3 + -0x140) = uVar29;
  uVar29 = uVar29 ^ DAT_182670a40;
  *(ulonglong *)(lVar4 + -0x610) =
       (CONCAT44(DAT_1826707b0,uVar7) ^ 0x358f152e80346be2) >>
       ((byte)*(undefined8 *)(lVar4 + -0x6b8) & 0x3f);
  uVar18 = DAT_182670858;
  uVar11 = DAT_1826707e4 ^ 0x8b2c4a9e;
  *(uint *)(lVar4 + -0x3d4) =
       (*(uint *)(lVar4 - ((ulonglong)uVar10 ^ 0xcacab85b)) ^ uVar26) * uVar29 ^ DAT_182670858;
  uVar10 = DAT_1826707f0;
  lVar4 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f0 ^ 0xe273a479)) =
       uVar25 * uVar11 ^ DAT_1826709b0;
  uVar11 = DAT_1826709bc;
  uVar23 = (ulonglong)DAT_1826707d0;
  bVar9 = (byte)DAT_1826707d0;
  *(uint *)(lVar4 + -0xc04) = (uVar5 ^ *(uint *)(lVar4 + -0xc0c)) * (uVar10 ^ 0xba2f0cfd);
  uVar10 = DAT_182670a0c;
  *(uint *)(lVar4 + -0x398) =
       (*(uint *)(lVar4 - (uVar21 ^ 0xcacab7ab)) ^ DAT_1826709b0) +
       (uVar18 ^ *(uint *)(lVar4 + -0x3d4)) ^ uVar11;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xdd5fbd66)) =
       CONCAT44(uVar17,DAT_1826707d4) ^ 0xe690803163a75db5;
  uVar23 = CONCAT44(DAT_1826707d4,DAT_1826707b4);
  uVar18 = (*(uint *)(lVar4 - (uVar14 ^ 0xcacabc27)) ^ uVar11) << 0xd;
  *(uint *)(lVar4 + -0x14) = uVar18 ^ uVar10;
  *(ulonglong *)(lVar4 + -0x630) = uVar23 ^ 0xa0462108a482c51 | 0x747994a705b593a8;
  uVar17 = DAT_1826707bc;
  uVar14 = (ulonglong)DAT_1826707c4;
  *(uint *)(lVar4 + -0x68c) =
       (*(uint *)(lVar4 - (uVar14 ^ 0xcacabc27)) ^ uVar11) >> ((bVar9 ^ 0xc5) & 0x1f) ^
       DAT_182670aa0;
  uVar11 = DAT_1826707c4 + uVar17;
  *(uint *)(lVar4 + -0xa34) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_1826707b0 ^ 0x9d1f8c4e)) ^ DAT_182670aa0 | uVar18) ^
       DAT_182670a50;
  uVar18 = DAT_1826707f0;
  uVar23 = (ulonglong)DAT_1826707f0;
  DAT_1826707d4 = uVar11;
  *(ulonglong *)(lVar4 + -0x6f0) =
       (CONCAT44(uVar11,uVar17) ^ 0xbd26b7db508e8229) >>
       ((byte)*(undefined8 *)(lVar4 - (uVar14 ^ 0xcacabb77)) & 0x3f);
  uVar18 = uVar18 - DAT_1826707e4;
  uVar10 = DAT_182670aec ^ DAT_1826708f4;
  uVar14 = (ulonglong)DAT_182670908;
  DAT_1826707b0 = uVar18;
  *puVar34 = (*(uint *)(lVar4 - (uVar23 ^ 0xe273ab89)) ^ uVar26) +
             (*(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x57476abf)) ^ DAT_182670848) ^ DAT_1826708a0;
  uVar26 = *(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0xcc717beb)) ^ DAT_1826708f4 ^ DAT_1826708a0;
  *(uint *)(lVar4 + -0x598) = *(uint *)(lVar4 + -0xa34) ^ DAT_182670834 ^ DAT_182670a50;
  *(uint *)(lVar4 + -0x9ec) = uVar26;
  uVar23 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar4 + -0x9e0) =
       0x3ca61c06a11efd32 >> ((byte)*(undefined8 *)(lVar4 + -0x630) & 0x3f);
  *(uint *)(lVar4 - (uVar23 ^ 0xe273a851)) = uVar10 ^ uVar26;
  *puVar32 = DAT_182670914 ^ DAT_182670834 ^ *(uint *)(lVar4 + -0x598);
  bVar9 = (byte)DAT_1826708a4;
  pbVar15 = (byte *)((CONCAT44(uVar6,uVar18) ^ 0xcacabfbf574761eb) * 0x20 +
                     (CONCAT44(uVar19,uVar17) ^ 0xe273ac6d01a6c00f) + *(longlong *)(lVar4 + -0x30));
  *(ulonglong *)(lVar4 + -0x4f8) = (ulonglong)pbVar15 ^ uVar14;
  uVar5 = DAT_182670a2c;
  uVar26 = DAT_1826707f0;
  uVar10 = DAT_1826707e4;
  bVar28 = (byte)DAT_182670adc;
  bVar24 = *pbVar15 ^ bVar9 ^ bVar28;
  *(byte *)(lVar4 + -0xc35) = bVar24;
  uVar19 = *(uint *)(lVar4 + -0x2d4) ^ DAT_182670914;
  *(uint *)(lVar4 + -0x540) = (bVar24 ^ bVar9) ^ uVar5;
  *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0x1a6c8e8)) =
       uVar19 + (uVar10 ^ 0x400807a1) ^ DAT_182670998;
  bVar9 = (byte)DAT_1826707e4;
  uVar29 = (uVar5 ^ *(uint *)(lVar4 + -0x540)) << 0x11 ^ DAT_182670894;
  *(uint *)(lVar4 + -0xc34) = uVar29;
  uVar29 = uVar29 ^ DAT_182670894;
  uVar19 = *(uint *)(lVar4 + -0x43c) ^ DAT_182670aec;
  uVar25 = *(uint *)(lVar4 + -0x8e0) ^ DAT_182670998;
  *(ulonglong *)(lVar4 + -0x890) =
       (CONCAT44(uVar6,uVar11) ^ 0xc2f9edbcfe6a7abb) << ((bVar9 ^ 0xa2) & 0x3f);
  uVar10 = DAT_182670870;
  uVar25 = uVar25 - uVar29 ^ DAT_18267082c;
  *(uint *)(lVar4 + -0x140) = uVar25;
  *(uint *)(lVar4 - ((ulonglong)uVar17 ^ 0x1a6c288)) =
       (uVar25 ^ DAT_18267082c) * uVar19 ^ DAT_182670ab4;
  uVar17 = (*(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0xe273a92d)) ^ uVar5) * (uVar18 ^ 0x574761ec) ^
           DAT_182670a68;
  *(uint *)(lVar4 + -0xc04) = uVar17;
  uVar17 = (*(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0xcc717d47)) ^ DAT_182670ab4) +
           (uVar17 ^ DAT_182670a68);
  *(uint *)(lVar4 + -0xc0c) = uVar17 ^ uVar10;
  *(byte *)(lVar4 + -0xc35) = *(byte *)(*(ulonglong *)(lVar4 + -0x4f8) ^ uVar14) ^ bVar28;
  uVar10 = uVar17 >> (((byte)uVar18 ^ 0xf8) & 0x1f) ^ DAT_18267094c;
  *(uint *)(lVar4 + -0x814) = uVar17 << ((byte)uVar26 & 0x1f) ^ DAT_182670824;
  uVar23 = (ulonglong)DAT_1826707e4;
  *(uint *)(lVar4 + -0x3d4) = uVar10;
  lVar3 = *(longlong *)(lVar4 - (uVar23 ^ 0x8b2c4cb2));
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar12) * 4) = uVar22;
  *(ulonglong *)(lVar4 + -0x588) = lVar3 - (CONCAT44(uVar6,uVar11) ^ 0xd4f26e765d925510);
  return;
}



############ FUN_ 180c92420 size=4562 ############

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

void FUN_180c92420(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  byte bVar20;
  byte bVar21;
  uint uVar22;
  byte *pbVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar14;
  
  uVar33 = DAT_182670878;
  uVar10 = DAT_1826707ec;
  uVar25 = DAT_1826707e8;
  uVar26 = DAT_1826707dc;
  uVar9 = DAT_1826707d8;
  uVar35 = DAT_1826707c8;
  uVar22 = DAT_1826707bc;
  uVar8 = DAT_1826707b8;
  lVar6 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707e0;
  uVar40 = (ulonglong)DAT_1826707ec;
  uVar29 = (ulonglong)DAT_1826707dc;
  uVar30 = (ulonglong)DAT_1826707c8;
  uVar42 = DAT_1826707d4 | DAT_1826707c8;
  uVar31 = DAT_1826707dc ^ DAT_1826707b8;
  uVar32 = *(uint *)(&DAT_18260f758 + DAT_182670d7c) ^ DAT_1826707e8;
  uVar38 = (DAT_1826707d8 << 0x10 | DAT_1826707d8 & 0xff00) << 8 | DAT_1826707d8 >> 8 & 0xff00 |
           DAT_1826707d8 >> 0x18;
  DAT_1826707f4 = DAT_1826707e0 + DAT_1826707ec;
  uVar11 = DAT_1826707bc + DAT_1826707e8;
  uVar14 = (ulonglong)uVar11;
  uVar12 = *(uint *)(&DAT_18260f750 + (uVar14 ^ 0x41248682) + (longlong)DAT_182670d7c) ^
           DAT_1826707bc;
  puVar2 = (uint *)(DAT_1826707a0 + -0x3d4);
  uVar36 = DAT_1826708c0 ^ *(uint *)(DAT_1826707a0 + -0x7e4);
  DAT_1826707a8 = uVar38;
  DAT_1826707b0 = uVar42;
  DAT_1826707e4 = uVar11;
  DAT_1826707f0 = uVar31;
  *(ulonglong *)(DAT_1826707a0 + -0x630) =
       CONCAT44(DAT_1826707ec,DAT_1826707e0) ^ 0x68dabce5cb5daccd |
       *(ulonglong *)(DAT_1826707a0 + -0x610);
  uVar36 = uVar36 + (DAT_182670b14 ^ *puVar2);
  uVar15 = (ulonglong)DAT_1826707f4;
  *(uint *)(lVar6 + -0x2d4) = uVar36 ^ uVar33;
  *(uint *)(DAT_1826707a0 + -0x8e0) =
       (*(uint *)(lVar6 - (uVar15 ^ 0x7d711af6)) ^ uVar33) << (((byte)uVar9 ^ 0xa7) & 0x1f) ^
       _DAT_1826708bc;
  lVar6 = DAT_1826707a0;
  uVar15 = (ulonglong)uVar38;
  *(ulonglong *)(DAT_1826707a0 + -0x68) =
       (CONCAT44(uVar38,uVar26) ^ 0x4f8ea37e71baab18) <<
       ((byte)*(undefined8 *)(DAT_1826707a0 + -0x6f0) & 0x3f);
  uVar37 = DAT_1826707f4;
  uVar16 = (ulonglong)DAT_1826707f4;
  *(uint *)(lVar6 + -0x280) = uVar36 >> (((byte)uVar42 ^ 0xed) & 0x1f) ^ DAT_182670a8c;
  lVar6 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar35 ^ 0x8c6ec7fe)) =
       (*(uint *)(DAT_1826707a0 - (uVar16 ^ 0x7d711aa2)) ^ DAT_182670a8c |
       *(uint *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xeb12f035)) ^ _DAT_1826708bc) ^ DAT_1826709d8;
  uVar13 = DAT_182670b08;
  uVar36 = DAT_182670938;
  uVar33 = (*(uint *)(lVar6 + -0xb54) ^ DAT_182670848) + (*(uint *)(lVar6 + -0x814) ^ DAT_18267084c)
           ^ DAT_182670988;
  *(uint *)(lVar6 + -0xa34) = uVar33;
  uVar34 = uVar33 ^ DAT_182670888 ^ DAT_182670988;
  uVar16 = (ulonglong)uVar42;
  puVar3 = (uint *)(lVar6 + -0x540);
  uVar33 = *puVar3 ^ DAT_182670844 ^ DAT_1826709d8;
  *(ulonglong *)(lVar6 + -0x658) =
       *(ulonglong *)(lVar6 - (uVar16 ^ 0xad6fd43e)) | 0xc844305528967b1e;
  *(uint *)(lVar6 + -0xc0c) = uVar33;
  uVar24 = uVar33 ^ DAT_182670afc ^ DAT_182670844;
  *(uint *)(lVar6 + -0xc34) = uVar34;
  *(uint *)(lVar6 + -0x398) = uVar34 ^ uVar13 ^ DAT_182670888;
  uVar33 = DAT_1826707d4;
  pbVar23 = (byte *)(*(longlong *)(lVar6 + -0x30) + 0x1d);
  uVar19 = (ulonglong)uVar31;
  *(ulonglong *)(lVar6 + -0x220) =
       (CONCAT44(uVar31,uVar37) ^ 0xd3b6476b4dd69825) + 0x1e81a108b38b37a3;
  puVar4 = (uint *)(lVar6 + -0x68c);
  *puVar4 = uVar24;
  bVar5 = (byte)DAT_182670970;
  *(ulonglong *)(lVar6 + -0x270) = (ulonglong)pbVar23 ^ (ulonglong)DAT_182670a4c;
  *(byte *)(lVar6 + -0x619) = *pbVar23 ^ bVar5 ^ (byte)DAT_182670adc;
  uVar24 = DAT_182670aa8;
  *(ulonglong *)(lVar6 + -0x660) =
       CONCAT44(uVar33,uVar9) ^ 0x6a3a8b4b5815e3ec | *(ulonglong *)(lVar6 + -0x610);
  *(uint *)(lVar6 + -0x42c) = (*(byte *)(lVar6 + -0x619) ^ bVar5) ^ uVar36;
  uVar37 = DAT_182670874;
  uVar39 = (ulonglong)DAT_182670874;
  *(uint *)(lVar6 - (uVar14 ^ 0x41248686)) =
       (*(uint *)(lVar6 - ((ulonglong)uVar25 ^ 0x3f7dc006)) ^ DAT_182670afc) + (uVar42 ^ 0x664b93dd)
       ^ uVar24;
  uVar17 = (ulonglong)uVar22;
  puVar28 = (uint *)(lVar6 - (uVar17 ^ 0x1a6c9e4));
  *puVar28 = (*(uint *)(lVar6 + -0x42c) ^ uVar36) << 0x11 ^ DAT_18267099c;
  puVar1 = (uint *)(lVar6 + -0x14);
  *(uint *)(lVar6 + -0x43c) =
       (*puVar1 ^ uVar24) - (*(uint *)(lVar6 + -0x9ec) ^ DAT_18267099c) ^ DAT_182670ac8;
  lVar7 = DAT_1826707a0;
  uVar36 = (*(uint *)(lVar6 + -0x42c) ^ uVar36) * (uVar42 ^ 0xad6fdee3) ^ DAT_182670a64;
  uVar22 = *(uint *)(lVar6 - ((ulonglong)uVar33 ^ 0x2d4d9ae6)) ^ DAT_182670ac8;
  *(uint *)(lVar6 + -0x7e4) = uVar36;
  uVar31 = DAT_1826709bc;
  uVar36 = uVar36 ^ DAT_182670a64;
  uVar18 = (ulonglong)DAT_1826709bc;
  *puVar2 = uVar22 * (*(uint *)(lVar6 + -0x398) ^ uVar13) ^ DAT_182670a30;
  *(byte *)(lVar7 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar7 + -0x2e8) ^ uVar18) ^ (byte)DAT_182670adc;
  uVar36 = (*(uint *)(lVar7 - (uVar29 ^ 0x80420794)) ^ DAT_182670a30) + uVar36;
  bVar20 = (byte)DAT_1826707e0 ^ 0x2f;
  *(uint *)(lVar7 + -0x2d4) = uVar36 ^ uVar37;
  *(uint *)(lVar7 + -0x8e0) = uVar36 << (bVar20 & 0x1f) ^ DAT_1826708fc;
  uVar37 = (*(uint *)(lVar7 + -0x2d4) ^ uVar37) >> (((byte)uVar10 ^ 0x13) & 0x1f) ^ DAT_182670af0;
  *(uint *)(lVar7 + -0x280) = uVar37;
  uVar22 = DAT_1826707f4;
  uVar37 = (*(uint *)(lVar7 - (uVar15 ^ 0xaae675df)) ^ DAT_1826708fc | uVar37 ^ DAT_182670af0) ^
           DAT_182670990;
  *(uint *)(lVar7 + -0xa34) =
       (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) + (*(uint *)(lVar7 + -0x398) ^ uVar13) ^ uVar24;
  *(uint *)(lVar7 + -0x814) = uVar37;
  uVar37 = uVar37 ^ DAT_1826709c4 ^ DAT_182670990;
  *puVar3 = *(uint *)(lVar7 - (uVar15 ^ 0xaae6770b)) ^ DAT_182670868 ^ uVar24;
  uVar36 = DAT_18267089c;
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x3f7dea9e)) = uVar37;
  *(uint *)(lVar7 - (uVar14 ^ 0x41248a9e)) = *puVar3 ^ DAT_18267080c ^ DAT_182670868;
  *(uint *)(lVar7 - (uVar29 ^ 0x804202cc)) = *(uint *)(lVar7 + -0xc34) ^ uVar36 ^ DAT_1826709c4;
  bVar5 = (byte)DAT_1826708a8;
  uVar18 = (ulonglong)_DAT_18267097c;
  *(ulonglong *)(lVar7 - (uVar40 ^ 0x543075b8)) =
       (CONCAT44(uVar33,uVar38) ^ 0x2d4d9edaaae67d3f) * 0x20 +
       (CONCAT44(uVar8,uVar22) ^ 0xeb12f8d57d71182a) + *(longlong *)(lVar7 + -0x30) ^ uVar18;
  uVar24 = DAT_1826708a0;
  uVar37 = DAT_1826707d0;
  uVar41 = (ulonglong)DAT_1826707d0;
  *(byte *)(lVar7 - (uVar16 ^ 0xad6fd8e7)) =
       *(byte *)(*(ulonglong *)(lVar7 + -0xdb8) ^ uVar18) ^ bVar5 ^ (byte)DAT_182670adc;
  *(uint *)(lVar7 - (uVar19 ^ 0x6b50fc81)) =
       *(uint *)(*(ulonglong *)(lVar7 + -0xd98) ^ uVar39) ^ DAT_182670a40;
  uVar33 = DAT_1826707b4;
  uVar29 = (ulonglong)DAT_1826707b4;
  uVar18 = (ulonglong)DAT_1826707b4;
  *(uint *)(lVar7 - (uVar30 ^ 0x8c6ecb52)) = (bVar5 ^ *(byte *)(lVar7 + -0x619)) ^ uVar24;
  uVar13 = uVar33 & uVar37;
  DAT_1826707ac = uVar13;
  *(ulonglong *)(lVar7 + -0x420) =
       (CONCAT44(uVar33,uVar37) ^ 0xcda8429a3cc45fad) -
       (CONCAT44(uVar13,uVar33) ^ 0x99d04838c3d42c0c);
  *(uint *)(lVar7 + -0x43c) = (*puVar4 ^ uVar36) + (uVar33 ^ 0xc8c1b54a) ^ uVar31;
  *(uint *)(lVar7 + -0x42c) =
       (*(uint *)(lVar7 + -0x9ec) ^ uVar24) << (((byte)uVar37 ^ 0xee) & 0x1f) ^ DAT_182670808;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar13 ^ 0x3c585a9)) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar13 ^ 0x3c58449)) ^ 0x9b156383453ec040;
  uVar9 = DAT_1826707c0;
  uVar31 = (*(uint *)(lVar7 - (uVar18 ^ 0x3e5fc55)) ^ uVar31) -
           (*(uint *)(lVar7 + -0x42c) ^ DAT_182670808);
  *puVar2 = uVar31 ^ uVar36;
  uVar22 = DAT_1826707c4;
  uVar30 = (ulonglong)DAT_1826707c4;
  *(longlong *)(lVar7 + -0x890) = *(longlong *)(lVar7 + -0x220) << 0x1b;
  uVar34 = uVar9 ^ uVar22;
  uVar18 = CONCAT44(DAT_1826707d8,uVar33);
  DAT_1826707cc = uVar34;
  *(uint *)(lVar7 + -0x7e4) = uVar31 * (DAT_18267080c ^ *(uint *)(lVar7 + -0xc0c)) ^ DAT_182670894;
  *(ulonglong *)(lVar7 + -0x410) = uVar18 ^ CONCAT44(uVar33,uVar13) ^ 0xe96886ea0064de4c;
  *(uint *)(lVar7 - ((ulonglong)uVar37 ^ 0xabcf852b)) =
       (*(uint *)(lVar7 + -0x9ec) ^ uVar24) * (uVar11 ^ 0x4124869a) ^ DAT_182670934;
  uVar24 = DAT_182670aa4;
  uVar31 = (*(uint *)(lVar7 - ((ulonglong)uVar34 ^ 0x95fc748e)) ^ DAT_182670894) +
           (*(uint *)(lVar7 + -0x2d4) ^ DAT_182670934);
  *(uint *)(lVar7 + -0x8e0) = uVar31 ^ DAT_182670aa4;
  uVar31 = uVar31 << (((byte)uVar9 ^ 0x8c) & 0x1f) ^ DAT_1826708f4;
  *(uint *)(lVar7 + -0x280) = uVar31;
  uVar31 = uVar31 ^ DAT_1826708f4;
  uVar24 = (*(uint *)(lVar7 + -0x8e0) ^ uVar24) >> (((byte)uVar22 ^ 0xf8) & 0x1f) ^ DAT_182670804;
  *(uint *)(lVar7 + -0x398) = uVar24;
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x40046bb5)) =
       (uVar24 ^ DAT_182670804 | uVar31) ^ DAT_182670a50;
  uVar24 = DAT_182670994;
  lVar6 = DAT_1826707a0;
  uVar31 = (*(uint *)(lVar7 - (uVar30 ^ 0xd5f819bf)) ^ DAT_182670848) +
           (DAT_18267080c ^ *(uint *)(lVar7 + -0xc0c)) ^ DAT_182670908;
  *(uint *)(lVar7 + -0x814) = uVar31;
  *puVar3 = uVar31 ^ DAT_182670b0c ^ DAT_182670908;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar22 ^ 0xd5f8199b)) =
       *(ulonglong *)(CONCAT44(DAT_1826709d0,DAT_1826709d0) ^ *(ulonglong *)(lVar7 + -0x240)) ^
       CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(uint *)(lVar7 + -0xc34) = uVar24 ^ DAT_182670a50 ^ *(uint *)(lVar7 + -0xa34);
  uVar31 = DAT_1826709ac;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar34 ^ 0x95fc70da)) =
       CONCAT44(uVar9,uVar22) ^ *(ulonglong *)(DAT_1826707a0 + -0x660) ^ 0xf9ec2aa8463f06b7;
  uVar24 = uVar24 ^ *(uint *)(lVar6 + -0xc34) ^ DAT_182670888;
  *puVar1 = *puVar3 ^ uVar31 ^ DAT_182670b0c;
  *(uint *)(lVar6 - (uVar17 ^ 0x1a6c684)) = uVar24;
  uVar18 = (ulonglong)DAT_18267086c;
  *(ulonglong *)(lVar6 + -0x2b0) =
       CONCAT44(uVar10,uVar25) ^ CONCAT44(uVar9,uVar34) ^ 0xaf6fc8c37287f9ef;
  uVar24 = DAT_182670a10;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar37 ^ 0xabcf85b7)) =
       (CONCAT44(uVar11,uVar35) ^ 0x412486928c6ec2be) * 0x20 +
       (CONCAT44(uVar8,uVar26) ^ 0xeb12f8d580420453) + *(longlong *)(lVar6 + -0x30) ^ uVar18;
  bVar5 = (byte)DAT_1826709b8;
  bVar21 = *(byte *)(*(ulonglong *)(lVar6 + -0x248) ^ uVar18) ^ (byte)DAT_1826709b8 ^
           (byte)DAT_182670adc;
  *(byte *)(lVar6 + -0xc35) = bVar21;
  uVar35 = (uint)(bVar21 ^ bVar5);
  *(uint *)(lVar6 + -0x43c) = uVar35 ^ uVar24;
  lVar7 = DAT_1826707a0;
  uVar35 = uVar35 << 0x11 ^ DAT_182670a2c;
  uVar22 = (*(uint *)(lVar6 - ((ulonglong)uVar34 ^ 0x95fc75e6)) ^ DAT_182670888) +
           (uVar22 ^ 0x1edc5fc8) ^ DAT_182670938;
  *(uint *)(DAT_1826707a0 + -0x42c) = uVar22;
  uVar22 = uVar22 ^ DAT_182670938;
  *puVar2 = uVar35;
  uVar18 = (ulonglong)DAT_1826707f4;
  *puVar28 = uVar22 - (*(uint *)(DAT_1826707a0 - (uVar19 ^ 0x6b50ff41)) ^ DAT_182670a2c) ^
             DAT_182670864;
  uVar22 = DAT_182670948;
  *(uint *)(lVar7 + -0x7e4) =
       (*(uint *)(lVar7 - (uVar18 ^ 0x7d7111ce)) ^ DAT_182670864) * (uVar31 ^ *puVar1) ^
       DAT_182670948;
  *(longlong *)(lVar7 - (uVar19 ^ 0x6b50f075)) =
       *(longlong *)(lVar7 - (uVar40 ^ 0x54307e60)) <<
       ((byte)*(undefined8 *)(lVar7 + -0x410) & 0x3f);
  uVar35 = (*(uint *)(lVar7 + -0x43c) ^ uVar24) * (uVar37 ^ 0xabcf87ec) ^ DAT_1826709c0;
  *(uint *)(lVar7 + -0x2d4) = uVar35;
  lVar6 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707d8;
  uVar19 = CONCAT44(uVar13,DAT_1826707d4);
  *(uint *)(lVar7 + -0x8e0) =
       (uVar35 ^ DAT_1826709c0) + (uVar22 ^ *(uint *)(lVar7 + -0x7e4)) ^ uVar36;
  *(ulonglong *)(lVar7 + -0x9e0) = (uVar19 ^ 0xb4c789c4dac3b3c7) - *(longlong *)(lVar7 + -0xb70);
  *(uint *)(lVar7 - (uVar29 ^ 0x3e5fae9)) =
       (*(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x40046961)) ^ uVar36) << (bVar20 & 0x1f) ^
       DAT_182670ac0;
  uVar24 = DAT_182670afc;
  uVar22 = *puVar1;
  uVar35 = (*(uint *)(lVar7 + -0x8e0) ^ uVar36) >> (((byte)uVar11 ^ 0x81) & 0x1f);
  *(uint *)(lVar7 + -0x398) = uVar35 ^ DAT_182670ae0;
  uVar36 = (uVar31 ^ uVar22) + (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) ^ DAT_182670a28;
  uVar37 = (*(uint *)(lVar7 - (uVar18 ^ 0x3f7de42a)) ^ DAT_182670ac0 | uVar35) ^ DAT_182670944;
  uVar22 = DAT_182670900 ^ DAT_182670a28 ^ uVar36;
  *(uint *)(lVar7 + -0x814) = uVar36;
  uVar31 = DAT_18267087c ^ uVar24;
  uVar35 = DAT_18267087c ^ DAT_182670944 ^ uVar37;
  *(uint *)(lVar7 + -0xa34) = uVar22;
  *puVar3 = uVar35;
  *(uint *)(lVar7 + -0xc0c) = uVar37;
  uVar36 = DAT_182670acc;
  *(uint *)(lVar6 + -0xc34) = DAT_182670acc ^ DAT_182670900 ^ uVar22;
  *(ulonglong *)(lVar6 + -0xbb0) = CONCAT44(uVar26,uVar25) ^ 0x4025000d10c82c6 | 0x1b52cbf2c303939;
  uVar37 = DAT_182670a20;
  uVar19 = (ulonglong)DAT_1826709b4;
  *(uint *)(lVar6 - (uVar16 ^ 0xad6fd872)) = uVar31 ^ uVar35;
  uVar35 = DAT_182670aa8;
  uVar22 = DAT_1826707f4;
  uVar25 = DAT_182670aa8 & 0xff;
  pbVar23 = (byte *)(*(longlong *)(lVar6 - ((ulonglong)DAT_1826707f4 ^ 0x7d711812)) +
                     (CONCAT44(uVar34,uVar10) ^ 0x95fc736a54307800) * 0x20 +
                    (CONCAT44(uVar26,uVar42) ^ 0x80420440ad6fdee0));
  *(ulonglong *)(DAT_1826707a0 + -0x4f8) = (ulonglong)pbVar23 ^ uVar19;
  lVar6 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x619) = *pbVar23 ^ (byte)DAT_182670adc ^ (byte)uVar35;
  *(uint *)(lVar6 + -0x42c) = *(byte *)(lVar6 - (uVar29 ^ 0x3e5fe70)) ^ uVar25 ^ uVar37;
  uVar35 = DAT_182670918;
  lVar6 = DAT_1826707a0;
  bVar5 = (byte)DAT_1826707d4;
  *(uint *)(DAT_1826707a0 - (uVar17 ^ 0x1a6c3dc)) =
       (*puVar4 ^ uVar24) + (uVar34 ^ 0x5ed83e49) ^ DAT_182670918;
  uVar26 = (*(uint *)(lVar6 + -0x42c) ^ uVar37) << ((bVar5 ^ 0xcb) & 0x1f);
  uVar25 = uVar26 ^ DAT_182670958;
  *(ulonglong *)(lVar6 + -0x400) =
       CONCAT44(uVar9,uVar8) ^ 0x95040087a27b440c | *(ulonglong *)(lVar6 + -0x548);
  *(uint *)(lVar6 + -0x9ec) = uVar25;
  *(uint *)(lVar6 + -0x43c) = (uVar35 ^ *puVar2) - uVar26 ^ _DAT_1826708bc;
  uVar8 = DAT_1826707f4;
  *(uint *)(lVar6 + -0x7e4) =
       (*(uint *)(lVar6 - ((ulonglong)uVar34 ^ 0x95fc7756)) ^ _DAT_1826708bc) *
       (uVar36 ^ *(uint *)(lVar6 + -0xc34)) ^ DAT_182670a54;
  *(ulonglong *)(lVar6 - (uVar15 ^ 0xaae678b7)) =
       *(ulonglong *)(lVar6 + -0x3b0) >> ((byte)*(undefined8 *)(lVar6 + -0x658) & 0x3f);
  *(ulonglong *)(lVar6 + -0x4c8) =
       (CONCAT44(uVar10,uVar33) ^ 0xaa453cff21dea874) -
       (CONCAT44(uVar13,uVar22) ^ 0x60f2bdc61f0693f4);
  uVar22 = (*(uint *)(lVar6 + -0x42c) ^ uVar37) * (uVar8 ^ 0x7d71183c) ^ DAT_18267093c;
  *(uint *)(lVar6 + -0x2d4) = uVar22;
  uVar33 = (*(uint *)(lVar6 - (uVar15 ^ 0xaae67adb)) ^ DAT_182670a54) + (uVar22 ^ DAT_18267093c);
  *(uint *)(lVar6 + -0x8e0) = uVar33 ^ uVar24;
  uVar22 = DAT_1826707d8;
  *(uint *)(lVar6 - (uVar27 ^ 0x2940a2a2)) = uVar33 << (((byte)uVar8 ^ 0x2f) & 0x1f) ^ DAT_1826708b8
  ;
  *(uint *)(lVar6 + -0x398) =
       (*(uint *)(lVar6 + -0x8e0) ^ uVar24) >> (((byte)uVar22 ^ 0xb9) & 0x1f) ^ DAT_182670a40;
  *puVar1 = (*(uint *)(lVar6 - (uVar41 ^ 0xabcf8467)) ^ DAT_182670a40 |
            *(uint *)(lVar6 + -0x280) ^ DAT_1826708b8) ^ DAT_182670ac4;
  *(int *)(lVar6 + -0x814) =
       0x311b1466 << (((byte)*(undefined4 *)(lVar6 + -0x8e0) ^ (byte)uVar24) & 0x1f);
  *(uint *)(lVar6 + -0xc0c) =
       (*(uint *)(lVar6 - (uVar14 ^ 0x41248dc6)) ^ DAT_182670848) +
       (uVar36 ^ *(uint *)(lVar6 + -0xc34)) ^ DAT_1826708a4;
  *(uint *)(lVar6 - (uVar16 ^ 0xad6fd4ca)) =
       (*(uint *)(lVar6 + -0x42c) ^ uVar37) + (uVar8 ^ 0xb6555501);
  *(uint *)(lVar6 - (uVar41 ^ 0xabcf82bf)) =
       *(uint *)(lVar6 - (uVar27 ^ 0x2940ac2e)) ^ DAT_182670974 ^ DAT_1826708a4;
  *puVar4 = DAT_182670ab4 ^ DAT_182670ac4 ^ *puVar1;
  *puVar2 = *puVar3 ^ DAT_182670974 ^ DAT_18267080c;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar32;
  return;
}



############ FUN_ 180c8c230 size=4373 ############

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

void FUN_180c8c230(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint uVar5;
  byte bVar6;
  longlong lVar7;
  longlong lVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  int *piVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint *puVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  byte *pbVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  uVar17 = DAT_182670aa4;
  uVar13 = DAT_1826707f4;
  uVar35 = DAT_1826707b0;
  lVar7 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_1826707f4;
  uVar36 = (ulonglong)DAT_1826707b0;
  uVar21 = DAT_1826707b0 * DAT_1826707f4;
  uVar5 = *(uint *)(&DAT_18260f760 + DAT_182670d6c);
  uVar26 = *(uint *)(&DAT_18260f758 + DAT_182670d6c) ^ DAT_1826707f4;
  uVar19 = (ulonglong)uVar21;
  puVar1 = (uint *)(DAT_1826707a0 + -0x68c);
  uVar18 = CONCAT44(DAT_1826707b0,uVar21);
  uVar22 = *(uint *)(DAT_1826707a0 + -0x140) ^ DAT_182670aa0;
  DAT_1826707c8 = uVar21;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) =
       (uVar18 ^ 0xe37d38236ce8085c) + *(longlong *)(DAT_1826707a0 + -0x588);
  uVar16 = *(uint *)(lVar7 + -0xa34) ^ DAT_182670810;
  *puVar1 = uVar22 * (*(uint *)(lVar7 + -0x14) ^ DAT_182670aac) ^ uVar17;
  *(uint *)(lVar7 - (uVar30 ^ 0x5cbab103)) = uVar16 * 0x16 ^ _DAT_1826708f8;
  uVar16 = DAT_182670824;
  *(uint *)(lVar7 - (uVar19 ^ 0xa1cf8009)) =
       (*(uint *)(lVar7 + -0x598) ^ _DAT_1826708f8) + (uVar17 ^ *puVar1) ^ DAT_182670824;
  uVar12 = DAT_182670924;
  uVar16 = uVar16 ^ *(uint *)(lVar7 + -0x540);
  uVar22 = *(uint *)(lVar7 + -0x140) ^ DAT_182670aa0;
  uVar34 = uVar16 >> (((byte)uVar13 ^ 0x88) & 0x1f) ^ DAT_18267090c;
  *(ulonglong *)(lVar7 + -0x220) =
       CONCAT44(uVar35,uVar35) ^ *(ulonglong *)(lVar7 + -0x1b8) ^ 0xd73125ae503e9ba1;
  uVar17 = *(uint *)(lVar7 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar7 + -0xc34) = uVar34;
  uVar34 = uVar34 ^ DAT_18267090c;
  uVar17 = uVar22 + uVar17 ^ DAT_182670ad8;
  uVar16 = uVar16 << 0xd ^ DAT_182670904;
  *(uint *)(lVar7 + -0x280) = uVar16;
  *(uint *)(lVar7 + -0x9ec) = (uVar34 | uVar16 ^ DAT_182670904) ^ uVar12;
  *(uint *)(lVar7 - ((ulonglong)uVar13 ^ 0x5cbab64f)) = uVar17;
  *(ulonglong *)(lVar7 + -0x9c8) =
       0xb0fcc3e34ce19c4f >> ((byte)*(undefined8 *)(lVar7 + -0x6b8) & 0x3f);
  uVar32 = DAT_18267096c;
  uVar16 = DAT_182670914;
  uVar34 = DAT_18267089c;
  puVar2 = (uint *)(lVar7 + -0x3d4);
  uVar17 = *(uint *)(lVar7 + -0x9ec) ^ DAT_182670914;
  *puVar2 = DAT_1826708b0 ^ DAT_182670ad8 ^ *(uint *)(lVar7 + -0x2d4);
  *(uint *)(lVar7 - ((ulonglong)uVar13 ^ 0x5cbab897)) = uVar17 ^ uVar12;
  uVar23 = DAT_182670a60;
  puVar24 = (uint *)(lVar7 - (uVar30 ^ 0x5cbabc8f));
  uVar25 = (ulonglong)DAT_182670a60;
  *puVar24 = *puVar2 ^ uVar34 ^ DAT_1826708b0;
  *(uint *)(lVar7 + -0x8e0) = (*(uint *)(lVar7 + -0xc0c) ^ uVar16) + (uVar35 ^ 0xdc83f8af);
  *(uint *)(lVar7 + -0xc04) = *(uint *)(lVar7 - (uVar19 ^ 0xa1cf8945)) ^ uVar32 ^ uVar16;
  bVar6 = (byte)DAT_182670ab8;
  lVar7 = DAT_1826707a0;
  pbVar28 = (byte *)((CONCAT44(uVar13,uVar35) ^ 0x5cbab49b574761eb) * 0x20 +
                     (CONCAT44(uVar21,uVar35) ^ 0xa1cf8549574761ea) +
                    *(longlong *)(DAT_1826707a0 + -0x30));
  *(ulonglong *)(DAT_1826707a0 + -0x270) = (ulonglong)pbVar28 ^ uVar25;
  *(byte *)(lVar7 - ((ulonglong)uVar21 ^ 0xa1cf897c)) = *pbVar28 ^ bVar6 ^ (byte)DAT_182670adc;
  uVar10 = DAT_1826708b4;
  lVar7 = DAT_1826707a0;
  puVar3 = (uint *)(DAT_1826707a0 + -0x43c);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0x5cbab2c3)) =
       (CONCAT44(uVar21,uVar21) ^ 0x21c45db82d005374) +
       (CONCAT44(uVar35,uVar13) ^ 0xfde9b6d538343ecf);
  uVar16 = *(uint *)(lVar7 + -0xc04);
  *puVar3 = (bVar6 ^ *(byte *)(lVar7 + -0xc35)) ^ uVar10;
  uVar11 = DAT_1826708cc;
  uVar22 = DAT_1826707f0;
  uVar31 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar7 + -0x398) = (uVar16 ^ uVar32) + (uVar13 ^ 0x979ef9b8) ^ DAT_182670adc;
  uVar17 = DAT_1826707bc;
  lVar8 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x42c) =
       (*(uint *)(lVar7 - ((ulonglong)uVar35 ^ 0x574765d7)) ^ uVar10) <<
       (((byte)DAT_1826707bc ^ 0x19) & 0x1f) ^ uVar23;
  *(uint *)(DAT_1826707a0 - (uVar19 ^ 0xa1cf82ad)) =
       (*(uint *)(lVar8 - ((ulonglong)uVar21 ^ 0xa1cf86d1)) ^ DAT_182670adc) -
       (*(uint *)(DAT_1826707a0 - (uVar31 ^ 0xe273a841)) ^ uVar23) ^ uVar11;
  lVar7 = DAT_1826707a0;
  uVar23 = (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar35 ^ 0x5747660f)) ^ uVar11) *
           (*(uint *)(DAT_1826707a0 + -0x814) ^ uVar34);
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) =
       CONCAT44(uVar21,DAT_1826707c4) ^ *(ulonglong *)(DAT_1826707a0 + -0xcf8) ^ 0xe6505f3134fee3c1;
  *(uint *)(lVar7 + -0x14) = uVar23 ^ uVar12;
  lVar7 = DAT_1826707a0;
  uVar27 = (*puVar3 ^ uVar10) * (uVar35 ^ 0x574761ea);
  *(uint *)(DAT_1826707a0 + -0xa34) = uVar27 ^ uVar11;
  uVar12 = DAT_182670acc;
  uVar11 = DAT_182670978;
  uVar10 = DAT_1826707dc;
  uVar16 = DAT_1826707b4;
  uVar9 = DAT_1826707ac;
  uVar27 = uVar27 + uVar23;
  uVar29 = (ulonglong)DAT_1826707dc;
  *puVar1 = uVar27 ^ DAT_182670acc;
  bVar6 = (byte)DAT_1826707a8;
  *(ulonglong *)(lVar7 + -0x4c8) =
       CONCAT44(uVar13,DAT_1826707d0) ^ 0x8526adc7e5b2ce5c | *(ulonglong *)(lVar7 + -0xf0);
  *(uint *)(lVar7 + -0x598) = uVar27 << ((bVar6 ^ 199) & 0x1f) ^ uVar11;
  uVar25 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar7 + -0x118) =
       CONCAT44(uVar22,uVar35) ^ CONCAT44(uVar13,uVar10) ^ 0x1211fb71317a705c;
  bVar6 = (byte)uVar9;
  uVar19 = (ulonglong)DAT_1826707c0;
  *(uint *)(lVar7 - ((ulonglong)uVar16 ^ 0x681cfad1)) =
       (*(uint *)(lVar7 - (uVar25 ^ 0x22a046a5)) ^ uVar12) >> ((bVar6 ^ 0xac) & 0x1f) ^
       DAT_18267087c;
  uVar22 = (*(uint *)(lVar7 - (uVar19 ^ 0x805229d8)) ^ uVar11 |
           *(uint *)(lVar7 - ((ulonglong)DAT_1826707cc ^ 0xa82a7ad6)) ^ DAT_18267087c) ^
           _DAT_1826708c8;
  uVar35 = (*(uint *)(lVar7 + -0x814) ^ uVar34) + (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) ^
           DAT_182670890;
  uVar25 = (ulonglong)DAT_1826707ec;
  *(uint *)(lVar7 + -0x280) = uVar22;
  *(uint *)(lVar7 + -0xc34) = uVar35;
  *(uint *)(lVar7 + -0x140) =
       (uVar10 ^ 0x42379d3e) - (*(uint *)(lVar7 - (uVar25 ^ 0x5b13f10b)) ^ uVar11);
  bVar15 = (byte)DAT_182670a0c;
  uVar34 = DAT_182670940;
  uVar16 = DAT_1826708a0;
  uVar12 = DAT_1826707e8;
  lVar8 = DAT_1826707a0;
  uVar22 = uVar22 ^ DAT_182670948 ^ _DAT_1826708c8;
  *(uint *)(lVar7 + -0x2d4) = uVar35 ^ DAT_1826708c0 ^ DAT_182670890;
  uVar25 = (ulonglong)DAT_182670a58;
  *(uint *)(lVar7 - (uVar36 ^ 0x57476807)) = uVar22;
  *puVar2 = *(uint *)(lVar7 - (uVar31 ^ 0xe273aeb9)) ^ uVar34 ^ DAT_1826708c0;
  *(uint *)(lVar7 + -0x8e0) = *(uint *)(lVar7 + -0x9ec) ^ DAT_182670ae4 ^ DAT_182670948;
  uVar11 = DAT_1826707e4;
  uVar19 = (ulonglong)DAT_1826707e4;
  pbVar28 = (byte *)((CONCAT44(uVar21,uVar9) ^ 0xa1cf8549cacabfbf) * 0x20 + 0xc +
                    *(longlong *)(lVar8 - (uVar19 ^ 0xcadabfcf)));
  *(ulonglong *)(lVar8 + -0x4f8) = (ulonglong)pbVar28 ^ uVar25;
  bVar14 = *pbVar28 ^ bVar15 ^ (byte)DAT_182670adc;
  *(byte *)(lVar8 + -0xc35) = bVar14;
  *(uint *)(lVar8 - ((ulonglong)uVar17 ^ 0x1a6cc04)) = (bVar15 ^ bVar14) ^ uVar16;
  lVar7 = DAT_1826707a0;
  *(uint *)(lVar8 + -0xc04) =
       (*(uint *)(lVar8 + -0x8e0) ^ DAT_182670ae4) + (uVar12 ^ 0x1eef29c) ^ DAT_182670ac0;
  uVar22 = (*(uint *)(lVar8 + -0xc0c) ^ uVar16) << (((byte)DAT_1826707e0 ^ 0x72) & 0x1f) ^
           DAT_182670814;
  *(uint *)(lVar7 + -0x398) = uVar22;
  uVar35 = DAT_1826707d8;
  *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0xcacabb93)) =
       (*(uint *)(lVar7 - ((ulonglong)uVar11 ^ 0xcadab3fb)) ^ DAT_182670ac0) -
       (uVar22 ^ DAT_182670814) ^ uVar32;
  uVar23 = DAT_1826708e8;
  uVar22 = DAT_1826707c0;
  lVar7 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707c0;
  puVar4 = (uint *)(DAT_1826707a0 + -0xc0c);
  uVar27 = DAT_1826707ec ^ 0x5b13f49f;
  uVar32 = (*(uint *)(DAT_1826707a0 - (uVar30 ^ 0x5cbab0b7)) ^ uVar32) * (*puVar2 ^ uVar34) ^
           DAT_1826709c0;
  *(uint *)(DAT_1826707a0 + -0x7e4) = uVar32;
  uVar32 = uVar32 ^ DAT_1826709c0;
  uVar16 = (*puVar4 ^ uVar16) * uVar27 ^ DAT_182670838;
  *puVar3 = uVar16;
  uVar25 = (ulonglong)DAT_1826707b8;
  *(uint *)(lVar7 + -0x14) = uVar32 + (uVar16 ^ DAT_182670838) ^ uVar23;
  *(uint *)(lVar7 - (uVar37 ^ 0x80522674)) =
       (*(uint *)(lVar7 - (uVar25 ^ 0x22a0403d)) ^ uVar23) << ((bVar6 ^ 0xb2) & 0x1f) ^
       DAT_182670a44;
  uVar25 = *(ulonglong *)(lVar7 + -0x220);
  uVar16 = (*(uint *)(lVar7 + -0x14) ^ uVar23) >> (((byte)uVar35 ^ 0x6c) & 0x1f) ^ DAT_182670a8c;
  *puVar1 = uVar16;
  uVar16 = uVar16 ^ DAT_182670a8c;
  *(ulonglong *)(lVar7 + -0x6f0) =
       *(longlong *)(lVar7 - (uVar36 ^ 0x57476d13)) -
       (CONCAT44(uVar21,DAT_1826707e0) ^ 0x4a96bc39fa1b2bd6);
  *(uint *)(lVar7 + -0x540) = (*(uint *)(lVar7 + -0xa34) ^ DAT_182670a44 | uVar16) ^ DAT_182670a68;
  lVar8 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar7 + -0x558) = (CONCAT44(uVar17,uVar12) ^ 0xf204e24cfb7b199e) - uVar25;
  uVar32 = DAT_182670a18;
  uVar9 = DAT_1826707d0;
  uVar16 = DAT_1826707a8;
  uVar31 = (ulonglong)DAT_1826707a8;
  uVar34 = (*(uint *)(lVar8 - ((ulonglong)uVar35 ^ 0x4a78982b)) ^ DAT_182670848) +
           (*(uint *)(lVar8 - (uVar31 ^ 0xbfbfc91e)) ^ uVar34) ^ DAT_18267083c;
  *(uint *)(lVar8 + -0x814) = uVar34;
  uVar35 = DAT_1826707c4;
  uVar27 = uVar34 ^ DAT_1826707fc ^ DAT_18267083c;
  *(ulonglong *)(lVar8 + -0x890) = uVar18 ^ 0xb0cf8b89c6b317e9 | uVar25;
  *(uint *)(lVar8 + -0x598) = uVar27;
  uVar34 = DAT_1826707cc;
  uVar27 = uVar27 ^ uVar32 ^ DAT_1826707fc;
  uVar17 = *(uint *)(lVar8 - ((ulonglong)uVar17 ^ 0x1a6c548)) ^ DAT_182670a68 ^ uVar23;
  *(uint *)(lVar8 + -0x140) = uVar17;
  uVar17 = uVar17 ^ DAT_182670a08;
  *(uint *)(lVar8 + -0xc34) = uVar27;
  uVar25 = (ulonglong)DAT_1826708e0;
  *(uint *)(lVar8 + -0x280) = uVar17 ^ uVar23;
  bVar6 = (byte)DAT_1826709e8;
  *(ulonglong *)(lVar8 + -0x270) =
       (CONCAT44(uVar9,uVar34) ^ 0x57a2cb39a82a7f81) +
       (CONCAT44(uVar35,uVar10) ^ 0xcacabfbf1f11d650) * 0x20 + *(longlong *)(lVar8 + -0x30) ^ uVar25
  ;
  uVar34 = DAT_182670b0c;
  bVar15 = *(byte *)(*(ulonglong *)(lVar8 - (uVar30 ^ 0xc5b6d159)) ^ uVar25) ^ bVar6 ^
           (byte)DAT_182670adc;
  *(byte *)(lVar8 + -0xc35) = bVar15;
  uVar35 = DAT_1826707b8;
  *(uint *)(lVar8 + -0x2d4) = (bVar15 ^ bVar6) ^ uVar34;
  *(ulonglong *)(lVar8 - (uVar30 ^ 0xc5b6dac9)) =
       (CONCAT44(DAT_1826707e0,uVar22) ^ 0x3b6f29b7b41c92a3) +
       (CONCAT44(DAT_1826707b4,uVar35) ^ 0xbfa3534dc7b23c97);
  uVar17 = DAT_1826707ec;
  *(uint *)(lVar8 + -0x9ec) =
       (*(uint *)(lVar8 + -0x280) ^ DAT_182670a08) + (DAT_1826707ec ^ 0x9037b9b0) ^ DAT_182670930;
  *(longlong *)(lVar8 + -0x660) = *(longlong *)(lVar8 + -0x4c8) + -0x641b2d08d93f0aa6;
  lVar7 = DAT_1826707a0;
  uVar35 = (uVar34 ^ *(uint *)(DAT_1826707a0 + -0x2d4)) << (((byte)uVar9 ^ 0x28) & 0x1f) ^
           DAT_182670aa8;
  *(uint *)(DAT_1826707a0 + -0x8e0) = uVar35;
  uVar22 = DAT_1826707cc;
  lVar8 = DAT_1826707a0;
  piVar20 = (int *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e0 ^ 0x2faff84f));
  uVar23 = (*(uint *)(lVar7 - (uVar37 ^ 0x805225ac)) ^ DAT_182670930) - (uVar35 ^ DAT_182670aa8) ^
           DAT_182670974;
  uVar35 = *(uint *)(DAT_1826707a0 + -0xc34) ^ uVar32;
  uVar25 = (ulonglong)DAT_1826707cc;
  *(uint *)(DAT_1826707a0 + -0xc04) = uVar23;
  *(uint *)(lVar8 + -0x398) = (uVar23 ^ DAT_182670974) * uVar35 ^ DAT_182670a00;
  *piVar20 = (DAT_1826707c8 ^ 0x1dea4b4a) << ((byte)uVar35 & 0x1f);
  *(uint *)(lVar8 + -0xc0c) =
       (uVar34 ^ *(uint *)(lVar8 + -0x2d4)) * (uVar11 ^ 0xcadabfe8) ^ DAT_182670968;
  uVar23 = DAT_182670a34;
  uVar35 = DAT_1826707c4;
  uVar18 = (ulonglong)DAT_1826707b4;
  uVar30 = (ulonglong)DAT_1826707c4;
  *(uint *)(lVar8 - (uVar18 ^ 0x681cf875)) =
       (*(uint *)(lVar8 - (uVar25 ^ 0xa82a739a)) ^ DAT_182670968) +
       (*(uint *)(lVar8 - (uVar29 ^ 0x1f11d5c8)) ^ DAT_182670a00) ^ DAT_182670a34;
  uVar11 = DAT_1826708e4;
  uVar34 = DAT_1826707f0;
  uVar23 = uVar23 ^ *(uint *)(lVar8 + -0x7e4);
  *(ulonglong *)(lVar8 + -0x3b0) = CONCAT44(DAT_1826707b8,uVar12) ^ 0xdad51b601a512edf;
  *puVar3 = uVar23 << ((byte)uVar34 & 0x1f) ^ DAT_182670804;
  uVar12 = DAT_182670a74;
  *(uint *)(lVar8 + -0x14) = uVar23 >> ((byte)uVar17 & 0x1f) ^ DAT_182670824;
  *(uint *)(lVar8 - (uVar19 ^ 0xcadab5cb)) =
       (*(uint *)(lVar8 - (uVar29 ^ 0x1f11d26c)) ^ DAT_182670804 |
       *(uint *)(lVar8 - (uVar30 ^ 0xcacabfab)) ^ DAT_182670824) ^ uVar12;
  *puVar1 = (*(uint *)(lVar8 + -0xc34) ^ uVar32) + (*(uint *)(lVar8 + -0xb54) ^ DAT_182670848) ^
            DAT_182670a2c;
  uVar27 = *(uint *)(lVar8 - ((ulonglong)uVar22 ^ 0xa82a791a)) ^ DAT_1826707f8 ^ DAT_182670a2c;
  *puVar2 = uVar27;
  *(uint *)(lVar8 + -0x814) = *(uint *)(lVar8 + -0xa34) ^ DAT_1826708d4 ^ uVar12;
  uVar23 = _DAT_182670b10;
  uVar34 = DAT_182670810;
  uVar17 = DAT_1826707c4;
  lVar7 = DAT_1826707a0;
  uVar33 = DAT_182670810 & 0xff;
  *(uint *)(lVar8 + -0x540) = uVar11 ^ DAT_1826707f8 ^ uVar27;
  uVar25 = (ulonglong)DAT_1826709d4;
  *(uint *)(lVar8 + -0x598) = DAT_182670a88 ^ DAT_1826708d4 ^ *puVar24;
  uVar27 = DAT_1826707a8 * uVar17;
  *(ulonglong *)(lVar7 - (uVar18 ^ 0x681cfb69)) =
       (CONCAT44(uVar22,uVar16) ^ 0xa82a7f96bfbfcac8) + *(longlong *)(lVar7 + -0x30) ^ uVar25;
  uVar18 = (ulonglong)DAT_1826707ec;
  DAT_1826707e0 = uVar27;
  *(ulonglong *)(lVar7 + -0x548) =
       *(ulonglong *)(lVar7 + -0x610) | CONCAT44(uVar13,uVar10) ^ 0xd3ae5da621e387c7;
  *(byte *)(lVar7 - (uVar18 ^ 0x5b13f8a6)) =
       *(byte *)(uVar25 ^ *(ulonglong *)(lVar7 + -0x4f8)) ^ (byte)DAT_182670adc ^ (byte)uVar34;
  *(uint *)(lVar7 - (uVar31 ^ 0xbfbfcb8a)) =
       (*(uint *)(lVar7 + -0xa34) ^ uVar12) >>
       (((byte)*(undefined4 *)(lVar7 + -0xc34) ^ (byte)uVar32) & 0x1f);
  uVar22 = DAT_182670a48;
  uVar16 = *(uint *)(DAT_1826707a0 + -0x598) ^ DAT_182670a88;
  *(uint *)(DAT_1826707a0 + -0x280) =
       *(byte *)(lVar7 - ((ulonglong)uVar27 ^ 0x8fc90e83)) ^ uVar33 ^ DAT_182670a48;
  lVar7 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar35 ^ 0xcacab653)) =
       uVar16 + (uVar17 ^ 0x1eef29c) ^ _DAT_1826708c8;
  uVar9 = DAT_182670a7c;
  uVar16 = *(uint *)(lVar7 + -0x280) ^ uVar22;
  *(uint *)(lVar7 + -0x8e0) = uVar16 * 0x20000 ^ uVar23;
  uVar17 = DAT_182670a68;
  uVar16 = (*(uint *)(lVar7 + -0x9ec) ^ _DAT_1826708c8) + uVar16 * -0x20000 ^ DAT_182670ae0;
  *(ulonglong *)(lVar7 + -0xbb0) =
       *(ulonglong *)(CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar7 + -0xa58)) ^
       CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(uint *)(lVar7 - (uVar31 ^ 0xbfbfc6ce)) = uVar16;
  uVar16 = *(uint *)(lVar7 - ((ulonglong)uVar27 ^ 0x8fc907f6));
  uVar34 = *(uint *)(lVar7 - (uVar30 ^ 0xcacab3bb)) ^ DAT_182670ae0;
  uVar35 = (*(uint *)(lVar7 + -0x280) ^ uVar22) * 2;
  *(uint *)(lVar7 + -0x2d4) = uVar35 ^ DAT_182670ad0;
  uVar16 = (uVar16 ^ uVar11) * uVar34 ^ DAT_182670844;
  *(uint *)(lVar7 + -0x42c) = uVar16;
  uVar35 = uVar35 + (uVar16 ^ DAT_182670844);
  *(uint *)(lVar7 + -0x398) = uVar35 ^ uVar17;
  uVar35 = uVar35 * 0x2000 ^ DAT_1826708dc;
  *(uint *)(lVar7 + -0xc0c) = uVar35;
  uVar35 = uVar35 ^ DAT_1826708dc;
  uVar16 = (*(uint *)(lVar7 - (uVar31 ^ 0xbfbfc952)) ^ uVar17) >> (((byte)uVar27 ^ 0xa5) & 0x1f);
  *(uint *)(lVar7 + -0x7e4) = uVar16 ^ DAT_182670894;
  uVar35 = (uVar16 | uVar35) ^ DAT_182670aac;
  *(longlong *)(lVar7 + -0x5c0) = 0x79ede01c04ccc76 << (((byte)uVar27 ^ 0x9b) & 0x3f);
  uVar16 = DAT_18267098c ^ DAT_1826708a8;
  *(uint *)(lVar7 - (uVar31 ^ 0xbfbfcef6)) = uVar35;
  uVar35 = (*(uint *)(lVar7 - (uVar30 ^ 0xcacab4eb)) ^ DAT_182670848) +
           (uVar11 ^ *(uint *)(lVar7 + -0x540)) ^ DAT_1826708a8;
  *(uint *)(lVar7 - ((ulonglong)uVar27 ^ 0x8fc902a2)) = uVar35;
  *puVar1 = uVar16 ^ uVar35;
  *puVar2 = DAT_182670818 ^ *puVar3 ^ DAT_182670aac;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar5 ^ uVar21) * 4) = uVar26;
  return;
}



############ FUN_ 180d28220 size=4169 ############

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

void FUN_180d28220(void)

{
  byte bVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  byte bVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  byte *pbVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint *puVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  uint *puVar41;
  uint uVar42;
  uint *puVar43;
  ulonglong uVar17;
  
  bVar1 = (byte)DAT_182670a68;
  uVar19 = DAT_1826707ec;
  uVar33 = DAT_1826707e8;
  uVar6 = DAT_1826707c8;
  uVar5 = DAT_1826707c4;
  uVar16 = DAT_1826707bc;
  uVar4 = DAT_1826707b8;
  uVar30 = DAT_1826707b4;
  lVar2 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707e8;
  uVar40 = (ulonglong)DAT_1826707bc;
  uVar12 = (ulonglong)DAT_1826707c4;
  uVar38 = (ulonglong)DAT_1826707b4;
  uVar22 = (ulonglong)DAT_1826707b8;
  uVar15 = DAT_1826707bc + DAT_1826707ec;
  uVar17 = (ulonglong)uVar15;
  uVar42 = DAT_1826707c8 - DAT_1826707b4;
  uVar26 = DAT_1826707c4 - DAT_1826707b8;
  uVar39 = (DAT_1826707e8 << 0x10 | DAT_1826707e8 & 0xff00) << 8 | DAT_1826707e8 >> 8 & 0xff00 |
           DAT_1826707e8 >> 0x18;
  uVar28 = *(uint *)(&DAT_18260f758 + DAT_182670c50) ^ DAT_1826707ec;
  uVar9 = *(uint *)(&DAT_18260f760 + DAT_182670c50) ^ DAT_1826707bc;
  uVar24 = (ulonglong)DAT_1826707e8;
  pbVar21 = (byte *)(*(longlong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x5cbab4ab)) +
                     (CONCAT44(DAT_1826707c4,DAT_1826707e8) ^ 0xcacabfbfcacabfa1) +
                    (CONCAT44(DAT_1826707b8,uVar26) ^ 0x22a04029a82a7f96) * 0x20);
  DAT_1826707a8 = uVar39;
  DAT_1826707cc = uVar26;
  DAT_1826707d0 = uVar42;
  DAT_1826707f4 = uVar15;
  *(ulonglong *)(DAT_1826707a0 + -0x4f8) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182670a5c;
  uVar20 = DAT_182670904;
  bVar8 = *pbVar21 ^ bVar1 ^ (byte)DAT_182670adc;
  *(byte *)(lVar2 + -0xc35) = bVar8;
  *(uint *)(lVar2 - ((ulonglong)uVar39 ^ 0xbfbfc6c6)) = (bVar1 ^ bVar8) ^ uVar20;
  uVar32 = (*(uint *)(lVar2 + -0x42c) ^ DAT_182670a10) + (uVar19 ^ 0x9037b9b0) ^ DAT_1826709b8;
  *(uint *)(lVar2 + -0x43c) = uVar32;
  uVar32 = uVar32 ^ DAT_1826709b8;
  uVar19 = *(uint *)(lVar2 + -0xc0c) ^ uVar20;
  *(uint *)(lVar2 + -0xc04) = (*(uint *)(lVar2 - (uVar24 ^ 0xcacabeff)) ^ DAT_1826708e4) - uVar19;
  uVar18 = (ulonglong)uVar6;
  uVar19 = uVar19 << (((byte)uVar42 ^ 0x28) & 0x1f) ^ DAT_1826708a4;
  *(uint *)(lVar2 + -0xa34) = uVar19;
  *(uint *)(lVar2 - (uVar18 ^ 0xbfbfcd2e)) = uVar32 - (uVar19 ^ DAT_1826708a4) ^ DAT_182670a90;
  uVar32 = DAT_182670b00;
  uVar19 = DAT_1826708f0;
  puVar35 = (uint *)(lVar2 - ((ulonglong)uVar30 ^ 0x681cfc45));
  bVar8 = (byte)uVar4;
  *puVar35 = (*(uint *)(lVar2 + -0x14) ^ DAT_182670aec) *
             (*(uint *)(lVar2 + -0x7e4) ^ DAT_182670a90) ^ DAT_182670aa4;
  uVar10 = *(uint *)(lVar2 + -0x3d4) ^ DAT_182670aa4;
  uVar20 = (*(uint *)(lVar2 - (uVar17 ^ 0x5cbab897)) ^ uVar20) * (uVar42 ^ 0x57a2cb27) ^
           DAT_18267092c;
  *(uint *)(lVar2 + -0x398) = uVar20;
  *(uint *)(lVar2 + -0x68c) = uVar10 + (uVar20 ^ DAT_18267092c) ^ uVar19;
  uVar23 = (ulonglong)uVar42;
  uVar20 = (*(uint *)(lVar2 - ((ulonglong)uVar39 ^ 0xbfbfcc46)) ^ uVar19) << ((bVar8 ^ 0x24) & 0x1f)
           ^ DAT_182670afc;
  *(uint *)(lVar2 + -0x598) = uVar20;
  uVar20 = uVar20 ^ DAT_182670afc;
  *(ulonglong *)(lVar2 + -0x6f0) = CONCAT44(uVar42,uVar16) ^ 0x60a08104882428e0 | 0x35a7ee9141bd11b;
  uVar19 = (*(uint *)(lVar2 + -0x68c) ^ uVar19) >> 0x13;
  *(uint *)(lVar2 + -0x2d4) = uVar19 ^ uVar32;
  *(uint *)(lVar2 + -0x8e0) = (uVar19 | uVar20) ^ DAT_18267086c;
  uVar10 = DAT_1826707ec;
  uVar11 = (ulonglong)DAT_1826707ec;
  *(longlong *)(lVar2 - ((ulonglong)DAT_1826707ec ^ 0x5b13fc03)) =
       -0x14f648e0a86962d8 << ((byte)*(undefined8 *)(lVar2 + -0x1b8) & 0x3f);
  uVar24 = (ulonglong)DAT_182670910;
  *(uint *)(lVar2 + -0x280) =
       (*(uint *)(lVar2 - ((ulonglong)uVar39 ^ 0xbfbfcade)) ^ DAT_182670aec) +
       (*(uint *)(lVar2 - (uVar22 ^ 0x22a04b7d)) ^ DAT_182670848) ^ DAT_182670a4c;
  *(longlong *)(lVar2 - ((ulonglong)uVar39 ^ 0xbfbfccfa)) =
       *(longlong *)(lVar2 - (uVar40 ^ 0x1a6c428)) << 0x2b;
  lVar3 = DAT_1826707a0;
  puVar43 = (uint *)(lVar2 - (uVar34 ^ 0xcacab38b));
  uVar20 = DAT_1826707e8 ^ 0x20f3553;
  *puVar43 = *(uint *)(lVar2 - (uVar18 ^ 0xbfbfc84a)) ^ DAT_182670a74 ^ DAT_182670a4c;
  uVar19 = *(uint *)(lVar3 + -0x2d4);
  *(uint *)(lVar2 + -0x814) = uVar20 + 0x4fe186d0;
  *(uint *)(lVar2 + -0x9ec) = *(uint *)(lVar2 + -0x8e0) ^ DAT_1826709e4 ^ DAT_18267086c;
  *(undefined8 *)(lVar2 + -0x588) = 0x99bfab94a7d78c75;
  uVar20 = DAT_182670844;
  *(uint *)(lVar3 + -0x540) = *(uint *)(lVar2 + -0xc34) ^ DAT_182670844 ^ DAT_182670a74;
  *(uint *)(lVar3 + -0x42c) = (uVar19 ^ uVar32) + (uVar26 ^ 0xf3c2b03d);
  puVar41 = (uint *)(lVar3 - (uVar12 ^ 0xcacab653));
  *(uint *)(DAT_1826707a0 - (uVar17 ^ 0x5cbab5db)) = *puVar41 ^ DAT_182670978 ^ DAT_1826709e4;
  bVar1 = (byte)DAT_182670a14;
  uVar19 = DAT_182670928;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xcacabb47)) =
       (CONCAT44(uVar33,uVar6) ^ 0xcacabfbfbfbfcac3) + *(longlong *)(DAT_1826707a0 + -0x30) ^ uVar24
  ;
  lVar2 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0xc35) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x681cfb69)) ^ uVar24) ^ bVar1 ^
       (byte)DAT_182670adc;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x57a2c089)) =
       CONCAT44(DAT_182670820,DAT_182670820) ^ *(ulonglong *)(lVar2 + -0xd88) |
       *(ulonglong *)(lVar2 + -0x6b8);
  uVar27 = (uint)(bVar1 ^ *(byte *)(lVar2 + -0xc35));
  *(uint *)(lVar2 + -0xc04) = uVar27 ^ uVar19;
  uVar37 = DAT_182670ad8;
  uVar7 = DAT_1826709c4;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0xcf8) =
       *(ulonglong *)(lVar2 - (uVar38 ^ 0x681cf9a1)) | CONCAT44(uVar30,uVar26) ^ 0x30e73e24cf2822b6;
  uVar29 = (*(uint *)(lVar2 + -0x140) ^ DAT_182670978) + (uVar39 ^ 0x749b87e9);
  uVar24 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(uint *)(lVar3 + -0x43c) = uVar29 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x9e0) =
       *(ulonglong *)(CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar3 + -0x518)) ^ uVar24;
  *(ulonglong *)(lVar3 + -0x518) = CONCAT44(uVar26,uVar16) ^ 0xfb8e5813ecd78e9e;
  uVar32 = DAT_182670ac8;
  uVar39 = DAT_182670a1c;
  bVar13 = (byte)DAT_1826707ec ^ 0x82;
  uVar27 = uVar27 << (bVar13 & 0x1f) ^ DAT_182670a08;
  *(uint *)(lVar3 + -0xa34) = uVar27;
  bVar14 = (byte)(uVar33 >> 0x18) ^ 199;
  uVar29 = uVar29 - (uVar27 ^ DAT_182670a08);
  *(uint *)(lVar3 + -0x7e4) = uVar29 ^ uVar39;
  *(uint *)(lVar3 - ((ulonglong)uVar26 ^ 0xa82a739a)) =
       uVar29 * (uVar20 ^ *(uint *)(lVar3 + -0x540)) ^ DAT_18267081c;
  uVar19 = (*(uint *)(lVar3 + -0xc04) ^ uVar19) * 9 ^ DAT_182670b0c;
  *(uint *)(lVar3 + -0x3d4) = uVar19;
  puVar25 = (ulonglong *)(lVar3 - (uVar22 ^ 0x22a04439));
  *(uint *)(lVar3 + -0x398) =
       (*(uint *)(lVar3 - (uVar34 ^ 0xcacab3b3)) ^ DAT_18267081c) + (uVar19 ^ DAT_182670b0c) ^
       uVar32;
  *puVar25 = *(ulonglong *)(CONCAT44(uVar37,uVar37) ^ *(ulonglong *)(lVar3 + -0x7b8)) ^ uVar24;
  *(uint *)(lVar3 - (uVar17 ^ 0x5cbab217)) =
       (*(uint *)(lVar3 + -0x398) ^ uVar32) << (bVar14 & 0x1f) ^ DAT_182670ad0;
  uVar19 = DAT_1826707d0;
  *(ulonglong *)(lVar3 - (uVar12 ^ 0xcacab9df)) =
       CONCAT44(DAT_1826709d4,DAT_1826709d4) ^ *(ulonglong *)(lVar3 + -0xac0) ^
       *(ulonglong *)(lVar3 + -0x6b8);
  lVar2 = DAT_1826707a0;
  uVar37 = *(uint *)(lVar3 + -0x68c) ^ DAT_182670ad0;
  uVar24 = (ulonglong)DAT_182670a38;
  uVar36 = (ulonglong)DAT_1826707fc;
  uVar19 = (*(uint *)(lVar3 + -0x398) ^ uVar32) >> (((byte)uVar19 ^ 0x2a) & 0x1f) ^ DAT_1826709bc;
  *(uint *)(lVar3 + -0x598) = uVar19;
  uVar19 = (uVar37 | uVar19 ^ DAT_1826709bc) ^ _DAT_1826708bc;
  *(uint *)(lVar3 + -0x14) = uVar19;
  uVar32 = uVar19 ^ DAT_182670818 ^ _DAT_1826708bc;
  *(byte *)(lVar3 + -0xc35) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x270)) ^ (byte)DAT_182670a40;
  uVar19 = *(uint *)(lVar3 - (uVar12 ^ 0xcacab4eb)) ^ DAT_182670848;
  *(uint *)(lVar3 + -0x8e0) = uVar32;
  uVar19 = uVar19 + (uVar20 ^ *(uint *)(lVar3 + -0x540)) ^ DAT_18267096c;
  uVar20 = uVar32 ^ DAT_182670b14 ^ DAT_182670818;
  *(uint *)(lVar3 + -0x280) = uVar19;
  *(uint *)(lVar3 + -0x814) = uVar19 ^ DAT_182670880 ^ DAT_18267096c;
  uVar26 = DAT_182670964;
  *(uint *)(lVar2 + -0xc34) =
       *(uint *)(lVar3 - (uVar12 ^ 0xcacab7ab)) ^ DAT_182670964 ^ DAT_182670880;
  *(uint *)(lVar2 - (uVar18 ^ 0xbfbfc81e)) = uVar20;
  bVar1 = (byte)DAT_182670970;
  uVar19 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  pbVar21 = (byte *)(*(longlong *)(lVar2 - (uVar18 ^ 0xbfbfcafa)) +
                     (CONCAT44(DAT_1826707a8,uVar33) ^ 0xbfbfcacacacabfbf) * 0x20 +
                    (CONCAT44(DAT_1826707a8,uVar30) ^ 0xbfbfcaca681cff85));
  *(ulonglong *)(DAT_1826707a0 + -0x4f8) = (ulonglong)pbVar21 ^ uVar36;
  *(byte *)(lVar3 + -0xc35) = *pbVar21 ^ bVar1 ^ (byte)DAT_182670adc;
  uVar37 = DAT_182670854;
  uVar32 = DAT_1826707d0;
  uVar20 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x42c) =
       (*(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0xa82a73a3)) ^ bVar1) ^ DAT_182670854;
  *puVar41 = (uVar20 ^ 0xb3664de5) >> (((byte)DAT_1826707a8 ^ 0xc4) & 0x1f);
  uVar20 = DAT_1826707f8;
  *(uint *)(lVar2 - (uVar11 ^ 0x5b13f5d3)) =
       (*(uint *)(lVar2 + -0x2d4) ^ DAT_182670b14) + (uVar32 ^ 0x9c86861a) ^ DAT_1826707f8;
  bVar1 = (byte)DAT_1826707c8;
  *(ulonglong *)(lVar2 + -0xb70) =
       CONCAT44(uVar4,uVar19) ^ 0xb4ae8098574209f | CONCAT44(uVar19,uVar16) ^ 0x5241639bd9230faa;
  uVar32 = DAT_182670af0;
  *(uint *)(lVar2 + -0x43c) =
       (*(uint *)(lVar2 + -0x42c) ^ uVar37) << ((bVar1 ^ 0xdb) & 0x1f) ^ DAT_1826708a8;
  uVar4 = DAT_1826707cc;
  lVar3 = DAT_1826707a0;
  uVar16 = (*(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0xa82a7ed6)) ^ uVar20) -
           (*(uint *)(lVar2 - (uVar22 ^ 0x22a04415)) ^ DAT_1826708a8);
  *(uint *)(DAT_1826707a0 + -0xa34) = uVar16 ^ uVar32;
  *(uint *)(lVar3 - ((ulonglong)uVar4 ^ 0xa82a7872)) = (*puVar43 ^ uVar26) * uVar16 ^ DAT_1826708b8;
  lVar2 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 + -0x3b0) = 0xb7836b405c966111;
  uVar16 = DAT_1826709d0;
  *(uint *)(lVar2 + -0xc04) =
       (*(uint *)(lVar2 + -0x42c) ^ uVar37) * (DAT_1826707a8 ^ 0xbfbfcade) ^ DAT_182670904;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x548) = *puVar25 - (CONCAT44(uVar15,uVar6) ^ 0xbb5b28d206c38c91);
  bVar1 = (byte)DAT_1826707c4;
  *(uint *)(lVar3 - (uVar38 ^ 0x681cf39d)) =
       (*(uint *)(lVar2 - (uVar23 ^ 0x57a2c73d)) ^ DAT_182670904) +
       (*(uint *)(lVar3 + -0x7e4) ^ DAT_1826708b8) ^ uVar16;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x681cfb91)) =
       *(ulonglong *)(lVar3 - (uVar17 ^ 0x5cbabfeb)) | CONCAT44(uVar15,uVar10) ^ 0xaf7447c10be132de;
  *puVar35 = (uVar16 ^ *(uint *)(lVar3 + -0xc0c)) << ((bVar1 ^ 0xb2) & 0x1f) ^ uVar32;
  uVar4 = DAT_1826707c0;
  uVar22 = (ulonglong)DAT_1826707c0;
  uVar12 = CONCAT44(DAT_1826707c0,uVar42);
  uVar10 = (uVar16 ^ *(uint *)(lVar3 + -0xc0c)) >> (((byte)DAT_1826707c0 ^ 0x53) & 0x1f) ^
           DAT_182670810;
  uVar24 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707cc ^ 0xa82a79a6));
  *(uint *)(lVar3 + -0x398) = uVar10;
  uVar10 = uVar10 ^ DAT_182670810;
  *(ulonglong *)(lVar3 + -0xa18) = uVar24 ^ uVar12 ^ 0xdc12debbfb04e0d9;
  uVar16 = (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) + (*(uint *)(lVar3 + -0xc34) ^ uVar26) ^
           DAT_182670ab8;
  *(uint *)(lVar3 + -0x68c) = (uVar10 | *(uint *)(lVar3 + -0x3d4) ^ uVar32) ^ DAT_1826709c0;
  uVar32 = DAT_182670af4;
  *(uint *)(lVar3 - (uVar40 ^ 0x1a6c590)) = uVar16;
  *(uint *)(lVar3 - (uVar18 ^ 0xbfbfcf8a)) =
       *(uint *)(lVar3 - (uVar11 ^ 0x5b13f10b)) ^ DAT_1826708e8 ^ DAT_182670ab8;
  uVar16 = DAT_182670808;
  *(uint *)(lVar3 + -0x280) = *(uint *)(lVar3 + -0x68c) ^ DAT_182670808 ^ DAT_1826709c0;
  *(uint *)(lVar3 + -0x14) = uVar32 ^ DAT_1826708e8 ^ *(uint *)(lVar3 + -0x540);
  *(uint *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0x8b2c4296)) =
       (DAT_1826707e8 ^ 0x741f0af3) - (*(uint *)(lVar3 - (uVar34 ^ 0xcacabd3f)) ^ uVar16);
  bVar1 = (byte)DAT_182670960;
  *(uint *)(lVar3 + -0x8e0) = DAT_182670944 ^ uVar16 ^ *(uint *)(lVar3 + -0x280);
  lVar2 = DAT_1826707a0;
  pbVar31 = (byte *)(DAT_1826707a0 - (uVar40 ^ 0x1a6cc3d));
  pbVar21 = (byte *)((CONCAT44(uVar19,DAT_1826707dc) ^ 0xbfbfcaca6fb6cb33) +
                     (CONCAT44(uVar30,uVar33) ^ 0x681cff91cacabfbf) * 0x20 +
                    *(longlong *)(DAT_1826707a0 + -0x30));
  *(ulonglong *)(DAT_1826707a0 + -0x270) = (ulonglong)pbVar21 ^ (ulonglong)uVar39;
  *pbVar31 = *pbVar21 ^ bVar1 ^ (byte)DAT_182670adc;
  uVar30 = DAT_1826708f0;
  uVar19 = DAT_182670848;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x220) = 0xba1fb71c125a39f3 >> ((bVar8 ^ 0x2e) & 0x3f);
  uVar16 = *(uint *)(lVar2 + -0x8e0) ^ DAT_182670944;
  *(uint *)(lVar2 + -0x9ec) = (bVar1 ^ *pbVar31) ^ uVar30;
  uVar10 = DAT_1826707cc ^ 0xa82a7f89;
  *(uint *)(lVar3 + -0x2d4) = uVar16 + (DAT_1826707cc ^ 0x630e32b5) ^ DAT_182670948;
  uVar16 = DAT_1826709d8;
  *(uint *)(lVar3 + -0x140) = (*puVar41 ^ uVar30) << (bVar13 & 0x1f) ^ DAT_182670988;
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x5cbabd53)) =
       (CONCAT44(uVar33,uVar5) ^ 0xda8e84e7888250fb) >>
       ((byte)*(undefined8 *)(lVar3 + -0x118) & 0x3f);
  uVar33 = (*(uint *)(lVar3 + -0x2d4) ^ DAT_182670948) - (*(uint *)(lVar3 + -0x140) ^ DAT_182670988)
  ;
  *(ulonglong *)(lVar3 + -0xf0) =
       CONCAT44(uVar19,uVar19) ^ *(ulonglong *)(lVar3 + -0x658) ^ 0xa278fbba1390dd57;
  *(uint *)(lVar3 + -0x43c) = uVar33 ^ uVar20;
  lVar2 = DAT_1826707a0;
  puVar35 = (uint *)(DAT_1826707a0 - (uVar22 ^ 0x805225ac));
  uVar20 = (*(uint *)(lVar3 + -0x14) ^ uVar32) * uVar33 ^ DAT_182670984;
  *(uint *)(DAT_1826707a0 + -0xa34) = uVar20;
  uVar20 = uVar20 ^ DAT_182670984;
  uVar30 = (*puVar35 ^ uVar30) * uVar10 ^ DAT_182670a18;
  *(uint *)(lVar2 + -0x42c) = uVar30;
  uVar20 = (uVar30 ^ DAT_182670a18) + uVar20;
  *(uint *)(lVar2 + -0x7e4) = uVar20 ^ uVar16;
  uVar30 = DAT_182670934;
  uVar16 = uVar20 >> (((byte)DAT_1826707d4 ^ 0xd4) & 0x1f) ^ DAT_182670934;
  *(uint *)(lVar2 + -0xc04) = uVar20 << (bVar14 & 0x1f) ^ _DAT_1826708c8;
  *(uint *)(lVar2 - (uVar23 ^ 0x57a2c735)) = uVar16;
  uVar30 = (uVar30 ^ *(uint *)(lVar2 + -0xc0c) | *(uint *)(lVar2 + -0xc04) ^ _DAT_1826708c8) ^
           _DAT_18267097c;
  *(uint *)(lVar2 + -0x3d4) = uVar30;
  uVar30 = uVar30 ^ DAT_182670918;
  uVar19 = (*(uint *)(lVar2 + -0x14) ^ uVar32) + (*(uint *)(lVar2 + -0xb54) ^ uVar19) ^
           DAT_182670878;
  *(uint *)(lVar2 + -0x398) = uVar19;
  *(uint *)(lVar2 + -0xc34) = uVar19 ^ DAT_182670a28 ^ DAT_182670878;
  *(uint *)(lVar2 + -0x598) = uVar30 ^ _DAT_18267097c;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar9 * 4) = uVar28;
  *(ulonglong *)(lVar2 + -0x558) =
       (CONCAT44(uVar4,uVar5) ^ 0x9d39ffebddc55d03) << (((byte)uVar6 ^ 0xdb) & 0x3f);
  return;
}



############ FUN_ 180cbe9b0 size=5582 ############

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

void FUN_180cbe9b0(void)

{
  ulonglong *puVar1;
  byte *pbVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong *puVar18;
  ulonglong *puVar19;
  byte bVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  byte local_100;
  byte local_f8;
  
  uVar17 = DAT_182670a0c;
  uVar21 = DAT_1826709b0;
  uVar10 = DAT_1826707e4;
  uVar9 = DAT_1826707e0;
  uVar8 = DAT_1826707d0;
  uVar7 = DAT_1826707c8;
  uVar6 = DAT_1826707c0;
  lVar4 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707d0;
  uVar14 = DAT_1826707c8 - DAT_1826707d0;
  uVar40 = (ulonglong)uVar14;
  uVar33 = (ulonglong)DAT_1826707e4;
  uVar35 = (ulonglong)DAT_1826707e0;
  uVar32 = (ulonglong)DAT_1826707c0;
  uVar29 = DAT_1826707e4 & DAT_1826707e0;
  uVar46 = ~DAT_1826707c0;
  uVar15 = *(uint *)(&DAT_18260f750 + (uVar40 ^ 0xed26f070) + (longlong)DAT_182670e00) ^
           DAT_1826707c8;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670e00) ^ DAT_1826707d0;
  uVar26 = (ulonglong)DAT_1826709b0;
  uVar43 = (ulonglong)uVar46;
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0xcf8);
  bVar13 = (byte)uVar46;
  uVar22 = (ulonglong)DAT_182670a0c;
  DAT_1826707b8 = uVar14;
  DAT_1826707cc = uVar29;
  DAT_1826707d4 = uVar46;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       *(ulonglong *)(DAT_1826707a0 + -0x610) >> ((bVar13 ^ 0xe8) & 0x3f);
  uVar12 = DAT_182670a28;
  uVar27 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar34 = (ulonglong)uVar29;
  *(ulonglong *)(lVar4 + -0xd88) =
       ((ulonglong)(uVar17 >> 0x1f) | uVar22 * 2) ^ *puVar3 >> 0x1f ^ uVar27;
  uVar11 = _DAT_1826708c8;
  uVar36 = CONCAT44(uVar12,uVar12);
  uVar27 = (*(ulonglong *)(lVar4 - (uVar34 ^ 0x307c0f10)) ^ uVar27 |
           CONCAT44(DAT_182670aa8,DAT_182670aa8) ^ *(ulonglong *)(lVar4 + -0x660)) ^ uVar36;
  *(ulonglong *)(lVar4 + -0x630) = uVar27;
  uVar12 = DAT_182670a98;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar28 = CONCAT44(uVar21,uVar21);
  uVar22 = *(ulonglong *)(lVar4 + -0xf0) ^ uVar25 ^ uVar28 ^ uVar27 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x410) = uVar22;
  uVar11 = DAT_182670a40;
  lVar4 = DAT_1826707a0;
  uVar45 = CONCAT44(uVar12,uVar12);
  uVar23 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xbcfc0b78)) ^ uVar45) +
       (uVar28 ^ uVar22) ^ uVar23;
  uVar12 = DAT_182670ad0;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar27 ^ CONCAT44(uVar10,uVar46) ^ uVar36 ^ 0x8159db8933ab8a24;
  uVar17 = DAT_182670a90;
  uVar36 = CONCAT44(uVar12,uVar12);
  bVar44 = (byte)uVar14;
  uVar39 = (ulonglong)DAT_182670a90;
  uVar27 = (ulonglong)uVar7;
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) =
       (*(ulonglong *)(lVar4 - (uVar40 ^ 0xed26f468)) ^ uVar28) << ((bVar44 ^ 0x56) & 0x3f) ^ uVar36
  ;
  lVar4 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x727d2ba5)) =
       ((ulonglong)(uVar21 >> 0x12) | uVar26 << 0xe) ^
       *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x650cea66)) >> 0x12 ^ uVar22;
  uVar37 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar28 = (uVar36 ^ *(ulonglong *)(lVar4 + -0x2b0) | uVar22 ^ *(ulonglong *)(lVar4 + -0x558)) ^
           uVar37;
  *(ulonglong *)(lVar4 + -0x118) = uVar28;
  *(ulonglong *)(lVar4 + -0x3b0) =
       (CONCAT44(uVar6,uVar8) ^ 0xfe09d5e1304a2603) <<
       (((byte)uVar11 ^ *(byte *)(lVar4 + -0xd38)) & 0x3f);
  uVar12 = DAT_1826709d8;
  uVar36 = CONCAT44(uVar17,uVar17);
  uVar22 = *(ulonglong *)(lVar4 - (uVar35 ^ 0xbcfc0fa0));
  *(uint *)(lVar4 + -0xc34) = uVar46 ^ 0x99263e70 | *(uint *)(lVar4 + -0x598);
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x610) = uVar22 ^ uVar23 ^ uVar36 ^ uVar28 ^ uVar37;
  uVar11 = DAT_18267091c;
  uVar22 = CONCAT44(uVar12,uVar12);
  puVar1 = (ulonglong *)(lVar5 + -0xbb0);
  uVar28 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  *(ulonglong *)(lVar5 + -0xce0) =
       (*puVar1 ^ uVar22) + (*(ulonglong *)(lVar5 + -0xf0) ^ uVar25) ^ uVar28;
  uVar25 = (*(ulonglong *)(lVar5 - (uVar34 ^ 0x307c0928)) ^ uVar22) << ((bVar44 ^ 0x74) & 0x3f);
  *puVar3 = uVar25 ^ CONCAT44(uVar11,uVar11);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (CONCAT44(uVar6,uVar7) ^ 0x95099c1c125441aa) + 0x2b7fe0af57c912ee;
  uVar11 = DAT_1826708dc;
  bVar20 = (byte)uVar7;
  uVar22 = (*puVar1 ^ uVar22) >> ((bVar20 ^ 0x42) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd88) = uVar22 ^ CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar47 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x9e0) = (uVar22 | uVar25) ^ uVar47;
  puVar41 = (ulonglong *)(lVar4 - (uVar32 ^ 0x41b49f26));
  *puVar41 = CONCAT44(uVar46,uVar10) ^ 0x130418c20010184 | 0x3c468c11c7f6de7b;
  uVar22 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar26 = CONCAT44(DAT_182670988,DAT_182670988);
  uVar38 = uVar22 ^ uVar47 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0x9e0) ^
           *(ulonglong *)(lVar4 + -0xce0);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar38;
  uVar11 = DAT_1826709fc;
  *(ulonglong *)(lVar4 + -0x410) =
       (uVar38 ^ uVar22) + (uVar23 ^ *(ulonglong *)(lVar4 + -0xd38)) ^ uVar26;
  local_100 = (byte)uVar29;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar21 = DAT_1826707cc ^ 0xd03d8059;
  local_f8 = (byte)uVar6;
  *(ulonglong *)(lVar4 + -0x2b0) = (uVar38 ^ uVar22) << ((local_100 ^ 0xa2) & 0x3f) ^ uVar30;
  uVar25 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0xbe4b63b1)) =
       (uVar38 ^ uVar22) >> ((local_f8 ^ 0x10) & 0x3f) ^ uVar25;
  lVar4 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar27 ^ 0x650ce522)) = uVar21 + (uVar7 ^ 0x6754762b);
  uVar22 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  uVar25 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x558) | uVar30 ^ *(ulonglong *)(lVar4 + -0x2b0)) ^
           uVar22;
  *(ulonglong *)(lVar4 + -0x3b0) = uVar25;
  *(ulonglong *)(lVar4 - (uVar43 ^ 0xbe4b67f1)) =
       *(ulonglong *)(lVar4 + -0x410) ^ uVar25 ^ uVar22 ^ uVar26 ^ uVar37;
  uVar22 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x307c0268)) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xbcfc0e78)) ^ uVar28) +
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x77e5fbee)) ^ uVar36) ^ uVar22;
  uVar11 = DAT_182670830;
  lVar4 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x650ce866)) ^ uVar36) <<
       (((byte)uVar9 ^ 0x8e) & 0x3f) ^ uVar25;
  uVar28 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x41b492a6)) =
       (*(ulonglong *)(lVar4 + -0x610) >> 0x20 ^ uVar39) >> 10 ^ uVar28;
  uVar7 = DAT_1826707dc;
  uVar36 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar38 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x77e5f106)) =
       (*(ulonglong *)(lVar4 - (uVar43 ^ 0xbe4b6089)) ^ uVar25 | *puVar1 ^ uVar28) ^ uVar36;
  uVar21 = DAT_1826707e8;
  uVar28 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar4 + -0xd88) =
       *(ulonglong *)(lVar4 + -0xf0) ^ uVar36 ^ uVar22 ^ uVar23 ^ *puVar3;
  uVar11 = DAT_182670984;
  *puVar41 = (*(ulonglong *)(lVar4 - (uVar33 ^ 0x727d2375)) ^ uVar23) +
             (*(ulonglong *)(lVar4 + -0x410) ^ uVar26) ^ uVar47;
  lVar5 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar17 = uVar7 & uVar21;
  DAT_1826707f0 = uVar17;
  *(ulonglong *)(lVar4 + -0x9e0) = (*(ulonglong *)(lVar4 + -0xd88) ^ uVar23) << 0x20 ^ uVar30;
  uVar11 = DAT_182670874;
  uVar25 = (ulonglong)uVar17;
  *(ulonglong *)(lVar5 + -0xd38) =
       (*(ulonglong *)(lVar5 + -0x410) ^ uVar26) + (CONCAT44(uVar17,uVar21) ^ 0xe5c5c537da77dcfc);
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar11,uVar11);
  puVar31 = (ulonglong *)(lVar5 - (uVar38 ^ 0x3d7de14));
  *puVar31 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x3d7d524)) ^ uVar23) >>
             (((byte)uVar21 ^ 0xdd) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar21 ^ 0x727d2c4d)) =
       CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar4 + -0xd38) ^ 0x7d90fcb24eaaa7d9;
  uVar23 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x3d7ddf4)) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x6b8) | uVar30 ^ *(ulonglong *)(lVar4 + -0x9e0)) ^ uVar23;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xed26f3c8)) =
       CONCAT44(uVar21,uVar17) ^ 0x34b33b03d411b54a | uVar36 ^ *puVar31;
  uVar36 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar4 + -0xce0) =
       uVar36 ^ uVar23 ^ *(ulonglong *)(lVar4 + -0x630) ^ uVar47 ^ *(ulonglong *)(lVar4 + -0x558);
  uVar26 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar39 = (*(ulonglong *)(lVar4 + -0x118) ^ uVar37) + (*(ulonglong *)(lVar4 + -0xf0) ^ uVar22) ^
           uVar26;
  uVar22 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(lVar4 + -0x610) = uVar39;
  uVar42 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar4 + -0x660) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x25509b4)) ^ uVar37) << (((byte)uVar7 ^ 0x8c) & 0x3f) ^
       uVar22;
  lVar5 = DAT_1826707a0;
  uVar30 = (*(ulonglong *)(lVar4 + -0x118) ^ uVar37) >> (((byte)uVar7 ^ 0x8c) & 0x3f);
  *puVar1 = uVar30 ^ uVar42;
  puVar18 = (ulonglong *)(lVar5 - (uVar28 ^ 0x727d289d));
  uVar23 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar22 = (uVar30 | uVar22 ^ *puVar18) ^ uVar23;
  *puVar3 = uVar22;
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar37 = CONCAT44(DAT_182670914,DAT_182670914);
  uVar22 = uVar30 ^ uVar23 ^ uVar39 ^ uVar26 ^ uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x410) = uVar22;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x650ce3fe)) =
       (uVar30 ^ uVar22) + (CONCAT44(uVar10,uVar46) ^ 0x49c917db0fbc3b4b) ^ uVar37;
  *(ulonglong *)(lVar4 + -0x2b0) =
       uVar37 ^ *(ulonglong *)(lVar4 + -0xd88) | uVar30 ^ *(ulonglong *)(lVar4 + -0x410);
  uVar22 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x41b4942e)) =
       (*(ulonglong *)(lVar4 + -0x630) ^ uVar47) + (CONCAT44(uVar9,uVar14) ^ 0xe211eb743d45ca9c) ^
       uVar22;
  uVar11 = DAT_182670958;
  puVar48 = (ulonglong *)(lVar4 - (uVar24 ^ 0x77e5f076));
  uVar23 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  puVar19 = (ulonglong *)(lVar4 - (uVar34 ^ 0x307c0b78));
  *puVar19 = (uVar22 ^ *(ulonglong *)(lVar4 + -0xd38)) + (uVar37 ^ *puVar48) ^ uVar23;
  lVar4 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x307c0420)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0x727d2375)) ^ uVar37) << 0xe ^ uVar32;
  uVar11 = DAT_1826708c4;
  uVar30 = (uVar37 ^ *(ulonglong *)(lVar4 + -0xd88)) >> ((bVar20 ^ 0x44) & 0x3f);
  *(ulonglong *)(lVar4 + -0x3b0) = uVar30 ^ CONCAT44(DAT_1826707f8,DAT_1826707f8);
  lVar4 = DAT_1826707a0;
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar32 = (uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8) | uVar30) ^ uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar32;
  uVar30 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar4 + -0xf0) =
       *(ulonglong *)(lVar4 - (uVar40 ^ 0xed26f998)) ^ uVar30 ^ uVar22 ^ uVar23 ^ uVar32;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x727d2fe5)) =
       (CONCAT44(uVar29,uVar21) ^ 0x60ba016ab4034125) - (uVar42 ^ *puVar1);
  uVar33 = (*(ulonglong *)(lVar4 - (uVar25 ^ 0x255044c)) ^ uVar36) +
           (CONCAT44(uVar9,uVar7) ^ 0x6de6289702cf308);
  uVar32 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar4 + -0x660) = uVar33 ^ uVar45;
  uVar22 = (*(ulonglong *)(lVar4 - (uVar43 ^ 0xbe4b60f9)) ^ uVar26) +
           (CONCAT44(uVar7,uVar8) ^ 0xd845b1395355ce61);
  *puVar3 = uVar22 ^ uVar32;
  uVar11 = DAT_182670b08;
  uVar32 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar22 + uVar33 ^ uVar32;
  uVar22 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x410) = uVar33 << (((byte)uVar9 ^ 0x88) & 0x3f) ^ uVar22;
  uVar36 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xed26f648)) = uVar33 >> (((byte)uVar10 ^ 0xcd) & 0x3f) ^ uVar36;
  uVar7 = DAT_182670934;
  uVar39 = (ulonglong)DAT_182670a70;
  uVar26 = CONCAT44(DAT_182670934,DAT_182670934);
  uVar33 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar37 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar22 = (uVar36 ^ *puVar41 | uVar22 ^ *(ulonglong *)(lVar4 + -0x410)) ^ uVar33;
  *(ulonglong *)(lVar4 + -0xd38) = uVar22;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x2550524)) =
       uVar26 ^ uVar22 ^ uVar33 ^ uVar32 ^ *(ulonglong *)(lVar4 + -0x2b0);
  lVar5 = DAT_1826707a0;
  puVar31 = (ulonglong *)(lVar4 - (uVar25 ^ 0x2550e14));
  *puVar31 = (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) +
             (uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0)) ^ uVar37;
  uVar23 = (uVar26 ^ *(ulonglong *)(lVar5 + -0xd88)) << ((bVar20 ^ 0x42) & 0x3f);
  *(ulonglong *)(lVar5 + -0x3b0) = uVar23 ^ CONCAT44(DAT_182670aec,DAT_182670aec);
  *(longlong *)(lVar5 + -0x558) =
       *(longlong *)(lVar5 - (uVar34 ^ 0x307c0380)) << (((byte)uVar8 ^ 0xce) & 0x3f);
  uVar8 = DAT_182670a8c;
  uVar26 = (ulonglong)DAT_182670a8c;
  uVar22 = ((ulonglong)uVar7 << 0x14 | (ulonglong)(uVar7 >> 0xc)) ^ *puVar48 >> 0xc;
  *puVar1 = uVar22 ^ CONCAT44(DAT_182670afc,DAT_182670afc);
  uVar22 = (uVar22 | uVar23) ^ uVar33;
  *(ulonglong *)(lVar5 + -0xce0) = uVar22;
  uVar12 = DAT_182670a9c;
  uVar11 = DAT_18267095c;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar5 + -0x610) =
       uVar37 ^ uVar33 ^ uVar22 ^ *(ulonglong *)(lVar5 + -0x6b8) ^ uVar23;
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x3d7d454)) =
       *(ulonglong *)(*(ulonglong *)(lVar5 - (uVar38 ^ 0x3d7daec)) ^ CONCAT44(uVar11,uVar11)) ^
       CONCAT44(uVar12,uVar12);
  uVar36 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar5 - (uVar40 ^ 0xed26f618)) =
       (uVar32 ^ *(ulonglong *)(lVar5 + -0x2b0)) + (uVar30 ^ *(ulonglong *)(lVar5 + -0xf0)) ^ uVar36
  ;
  uVar12 = DAT_182670a00;
  uVar32 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar5 + -0x630) =
       (*(ulonglong *)(lVar5 - (uVar28 ^ 0x727d2e0d)) ^ uVar30) << ((bVar13 ^ 0xd0) & 0x3f) ^ uVar32
  ;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xbcfc0688)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x650cee86)) ^ uVar30) >>
       ((local_f8 ^ 0x11) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x650ce34e)) =
       CONCAT44(uVar10,uVar9) ^ 0x3e4b7d36dc99291 | CONCAT44(uVar17,uVar6) ^ 0x2c5034410f63bd8f;
  uVar22 = CONCAT44(DAT_182670844,DAT_182670844);
  *puVar19 = (*(ulonglong *)(lVar4 + -0x410) ^ CONCAT44(uVar12,uVar12) |
             *(ulonglong *)(lVar4 + -0x630) ^ uVar32) ^ uVar22;
  uVar32 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar22 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x727d271d)) ^ uVar37 ^ *(ulonglong *)(lVar4 + -0x660) ^
           uVar22 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x118) = uVar22;
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x2550df4)) = (uVar37 ^ *puVar31) + (uVar37 ^ uVar22) ^ uVar32;
  *(int *)(lVar4 + -0xaf0) = *(int *)(lVar4 - (uVar34 ^ 0x307c0100)) - *(int *)(lVar4 + -0xb54);
  uVar28 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xbcfc0f10)) =
       (uVar37 ^ *(ulonglong *)(lVar4 + -0x118)) << ((bVar13 ^ 0xfe) & 0x3f) ^ uVar28;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xbcfc0128)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x660) ^ uVar36) >> ((local_100 ^ 0xaf) & 0x3f);
  uVar11 = DAT_1826709c0;
  uVar22 = (*(ulonglong *)(lVar4 + -0x118) >> 0x20 ^ uVar39) >> 9;
  *puVar1 = uVar22 ^ CONCAT44(DAT_182670954,DAT_182670954);
  lVar4 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar11,uVar11);
  puVar31 = (ulonglong *)(DAT_1826707a0 + -0x118);
  pbVar2 = (byte *)(DAT_1826707a0 + -0x410);
  uVar22 = (*(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar28 | uVar22) ^ uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar22;
  *puVar3 = (uVar37 ^ *puVar31) << ((*pbVar2 ^ (byte)uVar12) & 0x3f);
  *(ulonglong *)(lVar4 + -0x2b0) =
       CONCAT44(DAT_182670a58,DAT_182670a58) ^ uVar34 ^ uVar32 ^ uVar22 ^
       *(ulonglong *)(lVar4 + -0x558);
  *(ulonglong *)(lVar4 + -0xf0) = (CONCAT44(uVar29,uVar6) ^ 0xcb777a3928384762) + 0xabd07a1b5817ae4;
  uVar11 = DAT_182670804;
  uVar34 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar4 + -0xd38) =
       (*puVar18 ^ uVar36) + (*(ulonglong *)(lVar4 + -0x610) ^ uVar23) ^ uVar34;
  uVar12 = DAT_182670a40;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0x630) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar23) << ((bVar20 ^ 0x5e) & 0x3f) ^ uVar35;
  lVar4 = DAT_1826707a0;
  uVar22 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *puVar19 = ((ulonglong)(uVar8 >> 0x18) | uVar26 << 8) ^
             *(ulonglong *)(DAT_1826707a0 + -0x610) >> 0x18 ^ uVar22;
  *(byte *)(lVar4 + -0x283) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar24 ^ 0x77e5f02e)) ^ (ulonglong)DAT_1826709f8) ^
       (byte)uVar12;
  uVar28 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar4 - (uVar43 ^ 0xbe4b6051)) =
       (*(ulonglong *)(lVar4 - (uVar43 ^ 0xbe4b60d9)) ^ uVar35 |
       *(ulonglong *)(lVar4 + -0x9e0) ^ uVar22) ^ uVar28;
  uVar11 = DAT_182670838;
  *(byte *)(lVar4 + -0xcd1) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x708) ^ (ulonglong)DAT_182670810) ^ (byte)uVar12;
  uVar43 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar34 = *(ulonglong *)(lVar4 + -0xd38) ^ *(ulonglong *)(lVar4 + -0x6b8) ^ uVar43 ^ uVar28 ^
           uVar34;
  *(ulonglong *)(lVar4 + -0x3b0) = uVar34;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xed26fdf0)) =
       (uVar34 ^ uVar43) + (uVar32 ^ *(ulonglong *)(lVar4 + -0x558)) ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_18267098c;
  uVar40 = CONCAT44(DAT_182670878,DAT_182670878);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x77e5f64e)) =
       (*(ulonglong *)(lVar4 + -0x3b0) ^ uVar43) << ((bVar44 ^ 0x7d) & 0x3f) ^ uVar40;
  uVar22 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar4 + -0x410) =
       (*(ulonglong *)(lVar4 - (uVar38 ^ 0x3d7db1c)) ^ uVar43) >> ((local_f8 ^ 0x2d) & 0x3f) ^
       uVar22;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x650cef6e)) =
       (CONCAT44(uVar29,uVar10) ^ 0xc43292d344afc314) >> ((local_f8 ^ 0x19) & 0x3f);
  *puVar3 = (*(ulonglong *)(lVar4 - (uVar25 ^ 0x2550cbc)) ^ uVar22 | *puVar1 ^ uVar40) ^
            CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar15;
  return;
}



############ FUN_ 180caa810 size=5295 ############

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

void FUN_180caa810(void)

{
  ulonglong *puVar1;
  uint uVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  byte bVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte *pbVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  longlong *plVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  byte local_d0;
  byte local_c8;
  byte local_b8;
  
  uVar8 = DAT_1826709e4;
  uVar13 = DAT_1826707f4;
  uVar12 = DAT_1826707ec;
  uVar11 = DAT_1826707e0;
  uVar10 = DAT_1826707dc;
  uVar9 = DAT_1826707d4;
  uVar7 = DAT_1826707c8;
  uVar6 = DAT_1826707b4;
  uVar20 = DAT_1826707b0;
  uVar44 = (ulonglong)DAT_1826707dc;
  uVar29 = (ulonglong)DAT_1826707f4;
  uVar42 = (ulonglong)DAT_1826707b4;
  uVar26 = (ulonglong)DAT_1826707ec;
  uVar39 = (ulonglong)DAT_1826707c8;
  uVar35 = (ulonglong)DAT_1826707b0;
  uVar25 = (ulonglong)DAT_1826707d4;
  DAT_1826707d0 = DAT_1826707f4 + DAT_1826707b4;
  uVar36 = (ulonglong)DAT_1826707e0;
  uVar41 = DAT_1826707ec ^ DAT_1826707d4;
  uVar30 = DAT_1826707c8 & DAT_1826707e0;
  uVar43 = DAT_1826707b0 | DAT_1826707dc;
  uVar2 = *(uint *)(&DAT_18260f760 + DAT_182670b64);
  uVar19 = *(uint *)(&DAT_18260f758 + DAT_182670b64) ^ DAT_1826707dc;
  uVar21 = (ulonglong)uVar30;
  bVar37 = (byte)DAT_1826709e4;
  DAT_1826707a8 = uVar43;
  DAT_1826707ac = uVar41;
  DAT_1826707bc = uVar30;
  *(byte *)(DAT_1826707a0 + -0x2bd) =
       *(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b0 ^ 0xd81fbb1c)) ^ (byte)DAT_18267086c ^
       bVar37;
  uVar3 = DAT_1826707d0;
  lVar4 = DAT_1826707a0;
  bVar18 = (byte)uVar41;
  uVar31 = (ulonglong)DAT_182670af0;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (CONCAT44(uVar11,uVar7) ^ 0xcd490e1c17d5d6c1) >> ((bVar18 ^ 99) & 0x3f);
  *(ulonglong *)(lVar4 + -0x480) =
       (CONCAT44(uVar6,uVar13) ^ 0xf87773c7f060c182) + *(longlong *)(lVar4 + -0x10) ^ uVar31;
  lVar4 = DAT_1826707a0;
  bVar17 = (byte)uVar30;
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xbfbfc00a)) =
       (CONCAT44(uVar3,uVar9) ^ 0xd97303225e331223) << ((bVar17 ^ 6) & 0x3f);
  *(byte *)(uVar31 ^ *(ulonglong *)(lVar4 + -0x480)) =
       DAT_1826709e0 ^ bVar37 ^ *(byte *)(lVar4 + -0x2bd);
  uVar31 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x37889aa6)) =
       *(longlong *)(lVar4 + -0x2d0) +
       ((CONCAT44(uVar11,uVar12) ^ 0xbfbfcaca378890fd) +
       (CONCAT44(uVar6,uVar7) ^ 0xf87773c701e6d009) * 0xc) * 8 ^ uVar31;
  lVar4 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670a18,DAT_182670a18);
  uVar22 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar34 = (ulonglong)DAT_182670a88;
  uVar36 = (ulonglong)uVar43;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0xe8d83f04)) ^ uVar31) ^
       uVar22 ^ uVar33;
  lVar5 = DAT_1826707a0;
  puVar27 = (ulonglong *)(lVar4 - (uVar25 ^ 0xe30bc5b8));
  local_d0 = (byte)uVar13;
  bVar37 = bVar37 ^ (byte)DAT_182670a34;
  *puVar27 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0xdd5fb96e)) ^ uVar33) >> ((local_d0 ^ 0x95) & 0x3f)
             ^ CONCAT44(uVar8,uVar8);
  bVar37 = bVar37 ^ *(byte *)(lVar5 + -0x438);
  *(byte *)(lVar5 + -0xb81) = bVar37;
  bVar37 = bVar37 ^ (byte)DAT_182670a34 ^ DAT_1826709e0;
  pbVar23 = (byte *)(*(longlong *)(lVar5 - ((ulonglong)uVar9 ^ 0xe30bc190)) +
                    (CONCAT44(uVar13,uVar9) ^ 0xf060c195e30bc198));
  uVar33 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar5 + -0x5d8) = (ulonglong)pbVar23 ^ uVar34;
  *pbVar23 = bVar37;
  uVar8 = DAT_182670a38;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar5 - (uVar44 ^ 0x9d523d02)) +
            ((CONCAT44(uVar11,uVar7) ^ 0xbfbfcaca01e6d00a) +
            (CONCAT44(uVar6,uVar43) ^ 0xf87773c7dd5fbfd6) * 0xc) * 8);
  uVar31 = (ulonglong)DAT_182670a8c;
  *(ulonglong *)(lVar5 + -0x428) = (ulonglong)puVar24 ^ uVar33;
  *(byte *)(lVar5 + -0x821) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x2b8) ^ uVar31) ^ (byte)DAT_182670a40;
  uVar31 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar34 = *puVar24 ^ uVar31 ^ uVar22;
  *(ulonglong *)(lVar5 + -0x9e0) = uVar34;
  bVar37 = (byte)DAT_182670900;
  uVar31 = (uVar34 ^ uVar31) >> ((bVar18 ^ 0x76) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  bVar38 = (byte)uVar8 ^ (byte)DAT_182670900 ^ (byte)uVar31;
  *(ulonglong *)(lVar5 + -0x1b8) = uVar31;
  lVar4 = DAT_1826707a0;
  bVar37 = bVar37 ^ bVar38 ^ DAT_1826709e0;
  *(byte *)(lVar5 + -699) = bVar38;
  uVar14 = DAT_182670830;
  pbVar23 = (byte *)((CONCAT44(uVar11,uVar13) ^ 0xbfbfcacaf060c18c) + *(longlong *)(lVar4 + -0x10));
  *(ulonglong *)(lVar4 + -0x718) = (ulonglong)pbVar23 ^ (ulonglong)DAT_182670830;
  *pbVar23 = bVar37;
  uVar3 = DAT_1826707d0;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar4 - (uVar21 ^ 0x1a6c2d8)) + 0x18 +
            (CONCAT44(uVar41,DAT_1826707d0) ^ 0xd483517ee8d8355c) * 0x60);
  *(ulonglong *)(lVar4 + -0x370) = (ulonglong)puVar24 ^ CONCAT44(DAT_1826708cc,DAT_1826708cc);
  uVar8 = DAT_182670964;
  *(ulonglong *)(lVar4 + -0xd38) =
       (CONCAT44(uVar43,uVar10) ^ 0xdd13cfb10f3bb3d6) + (CONCAT44(uVar7,uVar3) ^ 0x4dc4d10860ed3afe)
  ;
  uVar15 = DAT_1826709c8;
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xe30bc170)) = *puVar24 ^ uVar31 ^ uVar22;
  uVar34 = (uVar31 ^ *(ulonglong *)(lVar4 + -0xf0)) >> ((bVar18 ^ 0x6e) & 0x3f) ^
           CONCAT44(uVar15,uVar15);
  uVar31 = (ulonglong)DAT_1826708b8;
  *(byte *)(lVar4 + -0x351) = (byte)uVar15 ^ (byte)DAT_1826708b0 ^ (byte)uVar34;
  *(ulonglong *)(lVar4 + -0x330) =
       (CONCAT44(uVar6,uVar11) ^ 0xf87773c7bfbfcad0) + *(longlong *)(lVar4 + -0x10) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x630) = uVar34;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x1a6c6f8)) =
       (CONCAT44(uVar12,uVar20) ^ 0x1f436eb00aa5aa94) + 0x734424e2910e718;
  lVar5 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar12,uVar3);
  *(byte *)(uVar31 ^ *(ulonglong *)(lVar4 + -0x330)) =
       *(byte *)(lVar4 - (uVar21 ^ 0x1a6c359)) ^ (byte)DAT_1826708b0 ^ DAT_1826709e0;
  *(ulonglong *)(lVar5 - (uVar36 ^ 0xdd5fb466)) =
       (CONCAT44(uVar13,uVar7) ^ 0x8883514dfbc41b10) - (uVar33 ^ 0x89e8fd44be0761f9);
  uVar32 = (ulonglong)DAT_18267090c;
  uVar40 = CONCAT44(DAT_18267090c,DAT_18267090c);
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar5 + -0x2d0) +
            ((CONCAT44(uVar11,uVar20) ^ 0xbfbfcacad81fbfd7) +
            (CONCAT44(uVar9,uVar20) ^ 0xe30bc180d81fbfd4) * 0xc) * 8);
  uVar3 = DAT_18267090c >> 0x18;
  *(ulonglong *)(lVar5 + -0x310) = (ulonglong)puVar24 ^ CONCAT44(DAT_182670990,DAT_182670990);
  lVar4 = DAT_1826707a0;
  uVar31 = *puVar24 ^ uVar40 ^ uVar22;
  *(ulonglong *)(lVar5 + -0x400) = uVar31;
  uVar8 = DAT_182670ab0;
  uVar34 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(lVar4 + -0x660) = ((ulonglong)uVar3 | uVar32 << 8) ^ uVar31 >> 0x18 ^ uVar34;
  uVar15 = DAT_182670a20;
  bVar37 = (byte)uVar8 ^ *(byte *)(lVar4 + -0x660) ^ (byte)DAT_182670a44;
  local_b8 = (byte)uVar12;
  *(ulonglong *)(lVar4 + -0x558) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar41 ^ 0xd483557e)) ^ uVar40) >>
       ((local_b8 ^ 0xd9) & 0x3f);
  uVar31 = (ulonglong)DAT_182670a90;
  *(byte *)(lVar4 + -0x321) = bVar37;
  bVar37 = bVar37 ^ DAT_1826709e0 ^ (byte)DAT_182670a44;
  *(ulonglong *)(lVar4 + -0x5a8) = *(longlong *)(lVar4 + -0x10) + 0x1bU ^ uVar31;
  uVar32 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar25 ^ 0xe30bc428)) ^ uVar31) = bVar37;
  uVar8 = DAT_182670ac0;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x2d0) +
            ((CONCAT44(uVar41,uVar7) ^ 0xd483517e01e6d00a) +
            (CONCAT44(uVar41,uVar10) ^ 0xd483517e9d523fd2) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0x7b8) = (ulonglong)puVar24 ^ uVar32;
  lVar4 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar40 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x1a6c618)) = *puVar24 ^ uVar22 ^ uVar31;
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x9d523742)) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar31) >> ((bVar17 ^ 0x28) & 0x3f) ^ uVar40;
  uVar3 = DAT_1826707d0;
  bVar37 = (byte)uVar15 ^ *(byte *)(lVar4 + -0x890) ^ (byte)DAT_182670884;
  uVar31 = (ulonglong)DAT_182670848;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (*(ulonglong *)(lVar4 + -0x890) ^ uVar40) -
       *(longlong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0xe8d833ac));
  *(byte *)(lVar4 + -0xaeb) = bVar37;
  *(ulonglong *)(lVar4 + -0x7d8) =
       CONCAT44(uVar43,uVar3) ^ 0xb62478dbe92c71bf | *(ulonglong *)(lVar4 + -0x6f0);
  bVar37 = DAT_1826709e0;
  plVar28 = (longlong *)(lVar4 - (uVar42 ^ 0xf87773d7));
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x1e6dc51)) =
       (CONCAT44(uVar7,uVar13) ^ 0x1e6d009f060c189) + *plVar28 ^ uVar31;
  *(byte *)(*(ulonglong *)(lVar4 + -0xc58) ^ uVar31) =
       bVar37 ^ *(byte *)(lVar4 + -0xaeb) ^ (byte)DAT_182670884;
  uVar8 = DAT_182670914;
  *(uint *)(lVar4 + -0xcec) = (DAT_1826707a8 ^ 0x32a6d499) + (DAT_1826707b0 ^ 0xaf949414);
  uVar31 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xd81fb534)) =
       *(longlong *)(lVar4 + -0x2d0) + 0x18 + (CONCAT44(uVar6,uVar13) ^ 0xf87773c7f060c195) * 0x60 ^
       uVar31;
  uVar8 = DAT_182670814;
  uVar32 = CONCAT44(DAT_182670918,DAT_182670918);
  *(ulonglong *)(lVar4 + -0x658) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0xf060cb75)) ^ uVar31) ^ uVar22 ^ uVar32;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar41 ^ 0xd48358b6)) =
       (CONCAT44(uVar9,uVar7) ^ 0x7fabf2d6e5f53e81) >> ((local_b8 ^ 0xff) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar31 = (*(ulonglong *)(DAT_1826707a0 + -0x658) ^ uVar32) >> ((local_d0 ^ 0xbd) & 0x3f) ^
           CONCAT44(uVar8,uVar8);
  bVar37 = (byte)uVar8 ^ (byte)uVar31 ^ (byte)DAT_182670a0c;
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0x890);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x660);
  *(byte *)(DAT_1826707a0 + -0x561) = bVar37;
  bVar37 = bVar37 ^ DAT_1826709e0 ^ (byte)DAT_182670a0c;
  *(ulonglong *)(lVar4 + -0x410) = (*puVar24 ^ uVar40) + (*puVar1 ^ uVar34);
  *(ulonglong *)(lVar4 + -0xc18) = uVar31;
  uVar31 = (ulonglong)DAT_18267081c;
  *(ulonglong *)(lVar4 + -0xd70) =
       (CONCAT44(uVar11,uVar43) ^ 0xbfbfcacadd5fbfcb) + *(longlong *)(lVar4 + -0x10) ^ uVar31;
  uVar34 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar42 ^ 0xf8777eb7)) ^ uVar31) = bVar37;
  uVar42 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar4 + -0x3c0) =
       (CONCAT44(uVar11,uVar10) ^ 0xbfbfcaca9d523fd2) * 0x60 + *(longlong *)(lVar4 + -0x2d0) + 0x18
       ^ uVar34;
  uVar8 = DAT_182670854;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x1a6c428)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0xf060c255)) ^ uVar34) ^ uVar22 ^ uVar42;
  lVar5 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_18267089c;
  *(ulonglong *)(lVar4 + -0x588) = *(ulonglong *)(*(ulonglong *)(lVar4 + -0x3c0) ^ uVar34) ^ uVar22;
  lVar4 = DAT_1826707a0;
  bVar37 = (byte)DAT_182670a18;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (*(ulonglong *)(lVar5 + -0x420) ^ uVar42) >> ((local_b8 ^ 0xce) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  *(byte *)(lVar4 - (uVar25 ^ 0xe30bcb09)) = (byte)uVar8 ^ bVar37 ^ *(byte *)(lVar4 + -0xce0);
  bVar18 = *(byte *)(lVar4 + -0xa89) ^ DAT_1826709e0;
  *(ulonglong *)(lVar4 + -0x7f0) =
       (CONCAT44(uVar9,uVar20) ^ 0xe30bc180d81fbfca) + *(longlong *)(lVar4 + -0x10) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x548) =
       CONCAT44(uVar12,uVar41) ^ *(ulonglong *)(lVar4 + -0x420) ^ uVar42 ^ 0x7323184c910a5d51;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar39 ^ 0x1e6d7f9)) ^ uVar31) = bVar18 ^ bVar37;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x2d0) +
            ((CONCAT44(uVar6,uVar43) ^ 0xf87773c7dd5fbfd5) +
            (CONCAT44(uVar11,uVar30) ^ 0xbfbfcaca01a6c008) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xa98) = (ulonglong)puVar24 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x4c8) =
       *(longlong *)(lVar4 - (uVar29 ^ 0xf060c4dd)) - (uVar33 ^ 0x98473fbe07906f6e);
  uVar3 = DAT_18267080c >> 0x18;
  uVar42 = (ulonglong)DAT_182670804;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0xe8d838d4)) =
       CONCAT44(DAT_18267080c,DAT_18267080c) ^ *puVar24 ^ uVar22;
  uVar16 = DAT_182670a84;
  *(ulonglong *)(CONCAT44(DAT_182670868,DAT_182670868) ^ *(ulonglong *)(lVar4 + -0xb78)) =
       CONCAT44(uVar13,uVar10) ^ 0xff7545a338e77ada;
  uVar31 = (ulonglong)*(byte *)(lVar4 + -0xd81) ^ (ulonglong)uVar3 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0xac0) = uVar31;
  *(byte *)(lVar4 + -0xc41) = (byte)uVar16 ^ (byte)uVar31 ^ (byte)DAT_182670acc;
  bVar37 = DAT_1826709e0 ^ (byte)DAT_182670acc;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xd81fbd8c)) = *(longlong *)(lVar4 + -0x10) + 0x1fU ^ uVar42;
  *(byte *)(*(ulonglong *)(lVar4 + -600) ^ uVar42) = bVar37 ^ *(byte *)(lVar4 + -0xc41);
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar4 + -0x2d0) + 0x20 +
            (CONCAT44(uVar7,uVar11) ^ 0x1e6d009bfbfcaca) * 0x60);
  *(ulonglong *)(lVar4 + -0xc78) = (ulonglong)puVar24 ^ CONCAT44(DAT_182670800,DAT_182670800);
  uVar8 = DAT_182670b04;
  lVar5 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826709f8;
  uVar42 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xd81fb96c)) = *puVar24 ^ uVar22 ^ uVar42;
  bVar37 = (byte)uVar8 ^ (byte)DAT_182670a3c;
  *(ulonglong *)(lVar5 + -0x438) =
       (*(ulonglong *)(DAT_1826707a0 + -0x6b8) ^ uVar42) >> ((bVar17 ^ 8) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  *(byte *)(lVar5 - (uVar44 ^ 0x9d5238b0)) = bVar37 ^ (byte)*puVar27;
  *(byte *)(lVar5 + -0x109) =
       *(byte *)(*(ulonglong *)(lVar5 + -0xdd0) ^ uVar31) ^ (byte)DAT_182670a40;
  lVar4 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_182670838;
  *(ulonglong *)(DAT_1826707a0 + -0x4b8) =
       (CONCAT44(uVar41,uVar20) ^ 0xd483517ed81fbff4) + *plVar28 ^ uVar31;
  local_c8 = (byte)uVar11;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (CONCAT44(uVar20,uVar41) ^ 0xaf6e36d22af1b7a7) << ((local_c8 ^ 0xdd) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar44 ^ 0x9d523b6a)) ^ uVar31) =
       *(byte *)(lVar4 - (uVar26 ^ 0x3788979c)) ^ DAT_1826709e0 ^ (byte)DAT_182670a3c;
  uVar8 = DAT_1826707e4;
  uVar3 = DAT_1826707d8;
  *(ulonglong *)(lVar4 + -0x1b8) =
       (CONCAT44(uVar9,DAT_1826707c0) ^ 0x9cc1f9a212dc6091) <<
       ((*(byte *)(lVar4 - (uVar36 ^ 0xdd5fb746)) ^ (byte)uVar15) & 0x3f);
  uVar31 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x37889616)) =
       *(longlong *)(lVar4 + -0x2d0) +
       ((CONCAT44(uVar43,uVar6) ^ 0xdd5fbfd6f87773c3) +
       (CONCAT44(uVar9,uVar41) ^ 0xe30bc180d483517e) * 0xc) * 8 ^ uVar31;
  uVar20 = DAT_1826707d0 ^ 0xb20f07e4;
  uVar35 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar4 + -0xd38) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x6e8) ^ uVar31) ^ uVar22 ^ uVar35;
  *(uint *)(lVar4 + -0x43c) = uVar20 >> (((byte)uVar3 ^ 0xd4) & 0x1f);
  bVar37 = (byte)DAT_18267098c;
  uVar31 = (uVar35 ^ *(ulonglong *)(lVar4 + -0xd38)) >> (((byte)uVar8 ^ 0xc2) & 0x3f) ^
           CONCAT44(DAT_18267098c,DAT_18267098c);
  *(byte *)(lVar4 + -0xd29) = bVar37 ^ (byte)uVar31 ^ (byte)DAT_1826708a4;
  uVar35 = (ulonglong)DAT_1826709a8;
  *(ulonglong *)(lVar4 + -0xf0) = uVar31;
  uVar20 = DAT_1826707e8;
  uVar31 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar4 - (uVar29 ^ 0xf060c975)) =
       (uVar3 ^ 0xbe9fd5eb) >> ((byte)*(undefined4 *)(lVar4 + -0x598) & 0x1f);
  lVar4 = DAT_1826707a0;
  pbVar23 = (byte *)(*(longlong *)(DAT_1826707a0 - (uVar31 ^ 0xbd8edbc1)) +
                    (CONCAT44(uVar13,uVar30) ^ 0xf060c19501a6c029));
  *(ulonglong *)(DAT_1826707a0 + -0x870) = (ulonglong)pbVar23 ^ uVar35;
  *pbVar23 = *(byte *)(lVar4 + -0xd29) ^ DAT_1826709e0 ^ (byte)DAT_1826708a4;
  uVar15 = DAT_182670a08;
  uVar35 = CONCAT44(DAT_182670840,DAT_182670840);
  uVar31 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x1e6dad9)) =
       *(longlong *)(lVar4 - (uVar39 ^ 0x1e6d2d9)) + 0x20 +
       (CONCAT44(uVar20,uVar8) ^ 0xbd8edbd1bfbfcaca) * 0x60 ^ uVar35;
  uVar8 = DAT_1826707cc;
  uVar36 = CONCAT44(DAT_182670aac,DAT_182670aac);
  bVar18 = (byte)DAT_1826707cc;
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x85113821)) =
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0xad0) ^ uVar35) ^ uVar22 ^ uVar36;
  lVar4 = DAT_1826707a0;
  uVar35 = (*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x1a6c638)) ^ uVar36) >>
           ((bVar18 ^ 0xa6) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  uVar31 = (ulonglong)DAT_182670af8;
  puVar24 = (ulonglong *)(DAT_1826707a0 + -0x4f8);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar35;
  bVar18 = (byte)uVar15 ^ (byte)DAT_182670974;
  *(byte *)(lVar4 + -0x719) = *(byte *)(*puVar24 ^ uVar31) ^ (byte)DAT_182670a40;
  bVar18 = bVar18 ^ (byte)uVar35;
  *(byte *)(lVar4 + -0xc05) = bVar18;
  uVar31 = (ulonglong)DAT_182670934;
  *(ulonglong *)(lVar4 + -0x400) =
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar42) << ((*(byte *)(lVar4 + -0xf0) ^ bVar37) & 0x3f);
  pbVar23 = (byte *)((CONCAT44(uVar11,uVar11) ^ 0xbfbfcacabfbfcae8) + *(longlong *)(lVar4 + -0x10));
  *(ulonglong *)(lVar4 + -0xbd8) = (ulonglong)pbVar23 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x558) =
       *(ulonglong *)(lVar4 + -0xac0) ^ CONCAT44(uVar16,uVar16) | *(ulonglong *)(lVar4 + -0x588);
  *pbVar23 = DAT_1826709e0 ^ (byte)DAT_182670974 ^ bVar18;
  uVar31 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar4 - (uVar44 ^ 0x9d523b72)) =
       *(longlong *)(lVar4 + -0x2d0) +
       ((CONCAT44(uVar8,uVar20) ^ 0xcb2c6fb6bd8edbd5) +
       (CONCAT44(uVar3,uVar43) ^ 0x184101c1dd5fbfd6) * 0xc) * 8 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x610) =
       CONCAT44(DAT_18267083c,DAT_18267083c) ^
       *(ulonglong *)(*(ulonglong *)(lVar4 + -0x4a0) ^ uVar31) ^ uVar22;
  *(ulonglong *)(lVar4 + -0x2b0) = CONCAT44(uVar43,uVar30) ^ 0x6460a3a401010008 | 0x1b1c184a76ec6dd6
  ;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar43) * 4) = uVar19;
  return;
}



############ FUN_ 180cf65d0 size=5151 ############

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

void FUN_180cf65d0(void)

{
  uint uVar1;
  undefined4 uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte *pbVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong uVar34;
  byte bVar35;
  uint uVar36;
  ulonglong uVar37;
  byte bVar38;
  byte bVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  uint uVar45;
  byte local_e8;
  byte local_d8;
  
  uVar15 = DAT_1826707f4;
  uVar13 = DAT_1826707ec;
  uVar10 = DAT_1826707d8;
  uVar11 = DAT_1826707d4;
  uVar9 = DAT_1826707c0;
  uVar8 = DAT_1826707bc;
  uVar7 = DAT_1826707b0;
  uVar6 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_1826707ec;
  uVar27 = DAT_1826707d8 - DAT_1826707d4;
  uVar34 = (ulonglong)DAT_1826707d4;
  uVar28 = (ulonglong)DAT_1826707a8;
  uVar25 = (ulonglong)DAT_1826707bc;
  uVar45 = DAT_1826707c0 | DAT_1826707a8;
  uVar42 = DAT_1826707ec - DAT_1826707bc;
  uVar36 = DAT_1826707f4 - DAT_1826707b0;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar34 ^ 0x6fb6cb24) + (longlong)DAT_182670bbc);
  uVar19 = *(uint *)(&DAT_18260f760 + DAT_182670bbc) ^ DAT_1826707d8;
  uVar40 = (ulonglong)uVar36;
  uVar37 = (ulonglong)DAT_1826707b0;
  uVar21 = CONCAT44(DAT_18267093c,DAT_18267093c);
  uVar41 = (ulonglong)DAT_1826709f8;
  bVar38 = (byte)uVar36;
  uVar23 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0xbfbfcf82)) ^
           CONCAT44(DAT_182670808,DAT_182670808)) >> ((bVar38 ^ 0x6a) & 0x3f) ^ uVar21;
  uVar2 = *(undefined4 *)(DAT_1826707a0 + -0xcec);
  DAT_1826707b4 = uVar42;
  DAT_1826707b8 = uVar36;
  DAT_1826707d0 = uVar45;
  DAT_1826707e4 = uVar27;
  *(byte *)(DAT_1826707a0 + -0x281) = (byte)DAT_18267093c ^ (byte)DAT_182670868 ^ (byte)uVar23;
  *(ulonglong *)(lVar3 + -0x400) = uVar23;
  *(int *)(DAT_1826707a0 + -0x280) = 0x153c8a42 << ((byte)uVar2 & 0x1f);
  uVar2 = DAT_182670970;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x688) =
       (CONCAT44(uVar42,uVar8) ^ 0x35e1d0f601a6c035) + *(longlong *)(DAT_1826707a0 + -0x10) ^ uVar41
  ;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x378895a6)) =
       0xebffceaf359627b5 >> (((byte)uVar2 ^ *(byte *)(lVar3 + -0xd38)) & 0x3f);
  *(byte *)(uVar41 ^ *(ulonglong *)(lVar3 + -0x688)) =
       *(byte *)(lVar3 - (uVar28 ^ 0xdd5fbd57)) ^ DAT_1826709e0 ^ (byte)DAT_182670868;
  uVar2 = DAT_182670898;
  *(ulonglong *)(lVar3 + -0x610) =
       (CONCAT44(uVar9,uVar45) ^ 0xc39a6cfbbc3ab02a) >> (((byte)uVar27 ^ 0x8a) & 0x3f);
  uVar16 = DAT_182670a34;
  puVar33 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar36,uVar6) ^ 0x2ec19342dd5fbfd1) +
            (CONCAT44(uVar11,uVar15) ^ 0x6fb6cb2cbfbfcaca) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x5c8) = (ulonglong)puVar33 ^ CONCAT44(uVar2,uVar2);
  uVar17 = DAT_182670988;
  uVar29 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar23 = *puVar33 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar23 ^ CONCAT44(uVar16,uVar16);
  bVar39 = (byte)DAT_182670828;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x1a6c580)) =
       uVar23 >> ((bVar38 ^ 0x72) & 0x3f) ^ CONCAT44(uVar17,uVar17);
  uVar23 = (ulonglong)uVar10;
  bVar35 = *(byte *)(lVar3 - (uVar23 ^ 0x18410449)) ^ (byte)uVar17 ^ bVar39;
  *(byte *)(lVar3 + -0x521) = bVar35;
  uVar18 = DAT_1826709a8;
  bVar39 = bVar39 ^ DAT_1826709e0;
  *(ulonglong *)(lVar3 + -0x9c8) =
       (CONCAT44(uVar42,uVar7) ^ 0xe1a2e6ef978fa46b) << (((byte)uVar6 ^ 0xd4) & 0x3f);
  uVar41 = (ulonglong)DAT_1826709b8;
  *(ulonglong *)(lVar3 + -0x5b0) =
       (CONCAT44(uVar11,uVar36) ^ 0x6fb6cb2c2ec1937c) + *(longlong *)(lVar3 + -0x10) ^ uVar41;
  uVar2 = DAT_18267083c;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0xdd5fba66)) ^ uVar41) = bVar39 ^ bVar35;
  uVar16 = DAT_1826708f4;
  uVar31 = CONCAT44(uVar2,uVar2);
  puVar33 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar13,uVar36) ^ 0x378890fe2ec19345) +
            (CONCAT44(uVar8,uVar15) ^ 0x1a6c008bfbfcaca) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x240) = (ulonglong)puVar33 ^ uVar31;
  uVar41 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0x80522a70)) = *puVar33 ^ uVar41 ^ uVar29;
  *(undefined8 *)(CONCAT44(DAT_182670908,DAT_182670908) ^ *(ulonglong *)(lVar3 + -0x3d0)) =
       0x8002f0689cd2128f;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (uVar41 ^ *(ulonglong *)(lVar3 + -0x630)) >> (((byte)uVar10 ^ 0xf9) & 0x3f) ^
       CONCAT44(uVar18,uVar18);
  *(byte *)(lVar3 - ((ulonglong)uVar6 ^ 0xdd5fb53f)) =
       *(byte *)(lVar3 - ((ulonglong)uVar9 ^ 0x80522ef0)) ^ (byte)uVar18 ^ (byte)DAT_182670a5c;
  bVar39 = *(byte *)(lVar3 + -0xae9) ^ (byte)DAT_182670a5c ^ DAT_1826709e0;
  pbVar24 = (byte *)((CONCAT44(uVar6,uVar27) ^ 0xdd5fbfd6a88a36aa) + *(longlong *)(lVar3 + -0x10));
  uVar41 = (ulonglong)_DAT_1826708bc;
  *(uint *)(lVar3 + -0xc0c) = (uVar11 ^ 0x3acb6c39) + *(int *)(lVar3 - (uVar23 ^ 0x18410df5));
  *(ulonglong *)(lVar3 + -0xa88) = (ulonglong)pbVar24 ^ uVar41;
  *pbVar24 = bVar39;
  *(ulonglong *)(lVar3 + -0x658) =
       (*(ulonglong *)(lVar3 + -0x588) ^ CONCAT44(uVar17,uVar17)) -
       (CONCAT44(uVar42,uVar15) ^ 0x4d11f3dd0b9c7d28);
  uVar36 = DAT_182670984;
  puVar33 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar27,uVar13) ^ 0xa88a3695378890f6) +
            (CONCAT44(uVar7,uVar10) ^ 0x90fe3788184101c1) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x518) = (ulonglong)puVar33 ^ CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar3 + -0x6f0) = (uVar40 ^ 0x80800000) >> 0x15;
  uVar2 = DAT_182670ae0;
  uVar32 = (ulonglong)DAT_18267095c;
  uVar26 = CONCAT44(uVar36,uVar36);
  *(ulonglong *)(lVar3 + -0x7d8) = *puVar33 ^ uVar26 ^ uVar29;
  local_d8 = (byte)uVar45;
  uVar41 = (*(ulonglong *)(lVar3 - (uVar37 ^ 0x90fe3050)) ^ uVar26) >> ((local_d8 ^ 0xd6) & 0x3f) ^
           CONCAT44(uVar2,uVar2);
  bVar39 = (byte)uVar2 ^ (byte)DAT_182670afc;
  *(ulonglong *)(lVar3 + -0xc18) = uVar41;
  *(byte *)(lVar3 + -0x7f1) = bVar39 ^ (byte)uVar41;
  *(ulonglong *)(lVar3 + -0x410) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar42 ^ 0x35e1d72e)) ^ CONCAT44(uVar8,uVar42) ^ uVar26 ^
       0x77fc41c26e992100;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x6fb6cd9c)) =
       (CONCAT44(uVar9,uVar9) ^ 0x80522c4080522c00) + *(longlong *)(lVar3 + -0x10) ^ uVar32;
  *(byte *)(*(ulonglong *)(lVar3 + -0x6b0) ^ uVar32) =
       *(byte *)(lVar3 - ((ulonglong)uVar9 ^ 0x80522bb1)) ^ (byte)DAT_182670afc ^ DAT_1826709e0;
  uVar2 = DAT_182670a64;
  puVar33 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar27,uVar15) ^ 0xa88a3695bfbfcac2) +
            (CONCAT44(uVar13,uVar10) ^ 0x378890fe184101c1) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xbe8) = (ulonglong)puVar33 ^ CONCAT44(DAT_182670950,DAT_182670950);
  *(ulonglong *)(lVar3 + -0x660) = *puVar33 ^ uVar26 ^ uVar29;
  uVar34 = (ulonglong)_DAT_182670b10;
  *(ulonglong *)(lVar3 + -0xcf8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0xdd5fb9b6)) >> 8 ^
       ((ulonglong)uVar36 << 0x18 | (ulonglong)(uVar36 >> 8)) ^ CONCAT44(uVar2,uVar2);
  *(byte *)(lVar3 - (uVar28 ^ 0xdd5fb824)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0x184103b1)) ^ (ulonglong)DAT_182670a38) ^
       (byte)DAT_182670a40;
  *(byte *)(lVar3 - (uVar37 ^ 0x90fe307b)) =
       *(byte *)(lVar3 - (uVar28 ^ 0xdd5fb32e)) ^ (byte)uVar2 ^ (byte)DAT_1826708e4;
  pbVar24 = (byte *)(*(longlong *)(lVar3 - (uVar25 ^ 0x1a6c018)) +
                    (CONCAT44(uVar45,uVar27) ^ 0xdd5fbfd6a88a36d4));
  *(ulonglong *)(lVar3 + -0x790) = (ulonglong)pbVar24 ^ uVar34;
  *(ulonglong *)(lVar3 + -0xbb0) =
       (CONCAT44(uVar7,uVar11) ^ 0xbf1ccf9b897801fd) >> (((byte)uVar6 ^ 0xd5) & 0x3f);
  uVar2 = DAT_1826709d4;
  *pbVar24 = *(byte *)(lVar3 + -0x7f3) ^ (byte)DAT_1826708e4 ^ DAT_1826709e0;
  *(int *)(lVar3 - (uVar40 ^ 0x2ec190da)) = *(int *)(lVar3 + -0x140) + 0x10546064;
  uVar10 = DAT_182670864;
  uVar14 = DAT_1826707f0;
  uVar41 = (ulonglong)DAT_1826707f0;
  puVar33 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar6,uVar11) ^ 0xdd5fbfd66fb6cb24) +
            (CONCAT44(uVar7,uVar13) ^ 0x90fe3788378890fe) * 0xc) * 8);
  uVar34 = (ulonglong)DAT_182670864;
  *(ulonglong *)(lVar3 + -0xa58) = (ulonglong)puVar33 ^ CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar37 = CONCAT44(uVar10,uVar10) ^ *puVar33 ^ uVar29;
  *(ulonglong *)(lVar3 + -0xce0) = uVar37;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xdd5fbb1e)) =
       ((ulonglong)(uVar10 >> 0x10) | uVar34 << 0x10) ^ uVar37 >> 0x10 ^ CONCAT44(uVar2,uVar2);
  bVar39 = (byte)DAT_182670b0c;
  uVar12 = DAT_1826707e0;
  uVar45 = DAT_1826707dc;
  uVar36 = DAT_1826707cc;
  uVar10 = DAT_1826707c4;
  uVar22 = DAT_1826707dc & 3;
  if (uVar22 < 2) {
    uVar20 = uVar14;
    if (uVar22 == 0) {
      uVar20 = DAT_1826707dc;
    }
  }
  else {
    uVar20 = DAT_1826707e0;
    if (uVar22 < 3) {
      uVar20 = DAT_1826707c4;
    }
  }
  uVar34 = (ulonglong)DAT_18267082c;
  uVar37 = (ulonglong)DAT_1826707c4;
  DAT_1826707e8 = uVar20;
  *(byte *)(lVar3 + -0x871) = (byte)uVar2 ^ (byte)DAT_182670b0c ^ *(byte *)(lVar3 + -0x4c8);
  lVar3 = DAT_1826707a0;
  uVar43 = (ulonglong)uVar20;
  puVar33 = (ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0xcacab427));
  *puVar33 = (CONCAT44(uVar20,uVar36) ^ 0xcacabfbfcb2c6ff4) + *(longlong *)(DAT_1826707a0 + -0x10) ^
             uVar34;
  uVar44 = CONCAT44(uVar12,uVar36);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0xe273a855)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0x9d523bd2)) ^ uVar21) >>
       (((byte)uVar14 ^ 0x74) & 0x3f);
  uVar16 = DAT_182670854;
  *(byte *)(uVar34 ^ *puVar33) = bVar39 ^ *(byte *)(lVar3 + -0x871) ^ DAT_1826709e0;
  uVar17 = DAT_182670b00;
  lVar4 = DAT_1826707a0;
  puVar33 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 + -0x2d0) +
            ((CONCAT44(uVar45,uVar14) ^ 0x9d523fd2e273ac65) + (uVar44 ^ 0xbfbfcacacb2c6fb6) * 0xc) *
            8);
  *(ulonglong *)(DAT_1826707a0 + -0x428) = (ulonglong)puVar33 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_182670958;
  lVar5 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xcacabea7)) = *puVar33 ^ uVar26 ^ uVar29;
  uVar21 = *(ulonglong *)(lVar5 + -0x118);
  lVar3 = *(longlong *)(lVar5 + -0x10);
  *(uint *)(lVar4 + -0x3d4) = *(uint *)(lVar4 + -0x814) ^ DAT_1826707e8 ^ 0x3a410d2e;
  pbVar24 = (byte *)(lVar3 + 0x43);
  uVar34 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar5 + -0xac0) =
       (uVar21 ^ uVar26) >> (((byte)uVar36 ^ 0xae) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  bVar39 = *(byte *)(lVar5 - (uVar34 ^ 0xbfbfc00a));
  *(ulonglong *)(lVar5 + -0x8d0) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182670a44;
  *(byte *)(lVar5 + -0x601) = bVar39 ^ (byte)uVar16 ^ (byte)DAT_182670860;
  uVar16 = DAT_1826709dc;
  *pbVar24 = *(byte *)(lVar5 - (uVar37 ^ 0xcacab9be)) ^ DAT_1826709e0 ^ (byte)DAT_182670860;
  uVar37 = CONCAT44(uVar16,uVar16);
  uVar34 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar5 + -0x310) =
       *(longlong *)(lVar5 - (uVar43 ^ 0xcacabd6f)) +
       ((CONCAT44(uVar14,DAT_1826707dc) ^ 0xe273ac6d9d523fda) +
       (CONCAT44(uVar45,uVar10) ^ 0x9d523fd2cacabfbf) * 0xc) * 8 ^ uVar37;
  uVar36 = DAT_182670954;
  uVar32 = (ulonglong)DAT_182670954;
  uVar21 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar37 = *(ulonglong *)(*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707cc ^ 0xcb2c6ca6)) ^ uVar37)
           ^ uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar37 ^ uVar34;
  lVar3 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707dc;
  uVar21 = uVar37 >> (((byte)uVar10 ^ 0x9f) & 0x3f) ^ uVar21;
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar21;
  uVar22 = DAT_1826707e0;
  uVar37 = (ulonglong)DAT_182670924;
  uVar26 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x9d523c62)) = (uVar21 >> 0x20 ^ uVar32) >> 0x1b;
  bVar39 = (byte)DAT_182670970;
  *(byte *)(lVar3 + -0x282) = *(byte *)(lVar3 - (uVar41 ^ 0xe273a5f5)) ^ (byte)uVar36 ^ bVar39;
  pbVar24 = (byte *)((CONCAT44(uVar12,uVar22) ^ 0xbfbfcacabfbfca8e) + *(longlong *)(lVar3 + -0x10));
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xbfbfcdba)) = (ulonglong)pbVar24 ^ uVar37;
  uVar16 = DAT_1826708c4;
  *pbVar24 = *(byte *)(lVar3 - (uVar41 ^ 0xe273aeef)) ^ DAT_1826709e0 ^ bVar39;
  uVar34 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707dc ^ 0x9d523e3a)) =
       *(longlong *)(lVar3 + -0x2d0) + (CONCAT44(uVar45,uVar10) ^ 0x9d523fd2cacabfb7) * 8 ^ uVar34;
  uVar16 = DAT_182670938;
  uVar36 = DAT_1826707cc;
  lVar4 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826708c0;
  uVar21 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xbfbfc32a)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 + -0x1e8) ^ uVar34) ^ uVar31 ^ uVar29;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x1b8) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0xcb2c6656)) ^ uVar31) >> (((byte)uVar10 ^ 0x97) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar17 = DAT_182670974;
  bVar39 = (byte)DAT_182670974;
  *(byte *)(lVar3 + -0x7f4) = (byte)uVar16 ^ *(byte *)(lVar3 + -0x1b8) ^ bVar39;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0xcacabfcf)) =
       *(longlong *)(lVar3 + -0x10) + 0x45U ^ uVar37;
  uVar21 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar3 - (uVar43 ^ 0xcacab72f)) =
       (CONCAT44(uVar10,uVar36) ^ 0x2ce3f63d039612f2) <<
       ((*(byte *)(lVar3 + -0x4c8) ^ (byte)uVar2) & 0x3f);
  uVar18 = DAT_182670ad8;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar36 ^ 0xcb2c6fc6)) ^ uVar37) =
       *(byte *)(lVar3 - (uVar21 ^ 0xbfbfcd3e)) ^ DAT_1826709e0 ^ bVar39;
  uVar16 = DAT_182670ab8;
  uVar2 = DAT_1826708e0;
  puVar33 = (ulonglong *)
            (*(longlong *)(lVar3 + -0x2d0) +
            ((CONCAT44(uVar27,DAT_1826707c4) ^ 0xa88a3695cacabfb7) +
            (CONCAT44(uVar14,uVar14) ^ 0xe273ac6de273ac6d) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0x7b8) = (ulonglong)puVar33 ^ CONCAT44(uVar18,uVar18);
  lVar3 = DAT_1826707a0;
  uVar21 = CONCAT44(uVar2,uVar2);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = *puVar33 ^ uVar29 ^ uVar21;
  uVar36 = DAT_1826707dc;
  lVar4 = DAT_1826707a0;
  uVar21 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0x3788900e)) ^ uVar21) >> ((local_d8 ^ 0xe6) & 0x3f) ^
           CONCAT44(uVar16,uVar16);
  bVar39 = (byte)DAT_182670a58;
  bVar35 = (byte)uVar16 ^ (byte)uVar21 ^ bVar39;
  pbVar24 = (byte *)((CONCAT44(uVar8,uVar27) ^ 0x1a6c008a88a36d3) +
                    *(longlong *)(DAT_1826707a0 + -0x10));
  *(byte *)(DAT_1826707a0 + -0x171) = bVar35;
  bVar35 = bVar35 ^ DAT_1826709e0;
  *(ulonglong *)(lVar4 + -0x420) = uVar21;
  *(ulonglong *)(lVar4 + -0xcd0) = (ulonglong)pbVar24 ^ (ulonglong)DAT_182670a18;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x548) =
       (CONCAT44(uVar20,uVar36) ^ 0xc3d57e9fd7bd274e) >> (((byte)uVar20 ^ 0xb3) & 0x3f);
  uVar2 = DAT_182670a74;
  *pbVar24 = bVar35 ^ bVar39;
  uVar16 = DAT_182670918;
  uVar21 = CONCAT44(uVar2,uVar2);
  uVar37 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 + -0xae0) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((uVar44 ^ 0xbfbfcacacb2c6fbe) + (CONCAT44(uVar9,uVar14) ^ 0x80522c40e273ac6d) * 0xc) * 8 ^
       uVar21;
  uVar2 = DAT_182670870;
  *(ulonglong *)(lVar3 + -0xd38) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar23 ^ 0x18410b21)) ^ uVar21) ^ uVar29 ^ uVar37;
  *(undefined8 *)(*(ulonglong *)(lVar3 - (uVar43 ^ 0xcacab4ef)) ^ CONCAT44(uVar2,uVar2)) =
       0x9f122dfad1b48f48;
  uVar34 = CONCAT44(DAT_1826707cc,DAT_1826707c4);
  *(undefined8 *)(lVar3 + -0xae0) = 0x2a265f8cd816faef;
  uVar21 = (ulonglong)DAT_182670af8;
  *(ulonglong *)(lVar3 + -0xb50) = uVar34 ^ 0xae23a90a853f4e9d;
  *(byte *)(lVar3 + -0x139) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x4f8) ^ uVar21) ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xdd5fba8e)) =
       (*(ulonglong *)(lVar3 + -0xd38) ^ uVar37) >> ((bVar38 ^ 0x7a) & 0x3f) ^
       CONCAT44(uVar16,uVar16);
  uVar34 = (ulonglong)DAT_182670934;
  *(byte *)(lVar3 + -0xdd9) = (byte)uVar16 ^ *(byte *)(lVar3 + -0x558) ^ (byte)DAT_182670af0;
  *(ulonglong *)(lVar3 + -0x610) =
       (CONCAT44(uVar14,uVar11) ^ 0x3cbb15c98eea00b) +
       (CONCAT44(uVar42,uVar11) ^ 0x9a8424bb13eb34f6);
  bVar39 = DAT_1826709e0;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xdd5fbf06)) =
       *(longlong *)(lVar3 - (uVar40 ^ 0x2ec19352)) + (CONCAT44(uVar7,uVar15) ^ 0x90fe3788bfbfca8d)
       ^ uVar34;
  uVar21 = CONCAT44(uVar13,DAT_1826707e0);
  *(byte *)(*(ulonglong *)(lVar3 + -0xd0) ^ uVar34) =
       bVar39 ^ *(byte *)(lVar3 + -0xdd9) ^ (byte)DAT_182670af0;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x1a6c6b0)) =
       (uVar21 ^ 0xc3b1cf2388220b05) >> (((byte)uVar15 ^ 0xcd) & 0x3f);
  uVar21 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(lVar3 - (uVar23 ^ 0x18410201)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar36 ^ 0x9d523d02)) + 0x48U ^ uVar21;
  uVar34 = CONCAT44(DAT_182670968,DAT_182670968);
  *(ulonglong *)(lVar3 + -0x9c8) =
       (CONCAT44(uVar27,uVar36) ^ 0x4d9b1b0de44976fd) >> ((bVar38 ^ 0x53) & 0x3f);
  uVar2 = DAT_1826707f8;
  uVar21 = *(ulonglong *)(*(ulonglong *)(lVar3 + -0x3c0) ^ uVar21);
  *(ulonglong *)(lVar3 + -0x3c0) = CONCAT44(uVar10,uVar6) ^ 0x5c31fe62873955c5;
  *(ulonglong *)(lVar3 + -0x68) = uVar21 ^ uVar29 ^ uVar34;
  local_e8 = (byte)uVar13;
  *(ulonglong *)(lVar3 + -0x630) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x68)) >> ((local_e8 ^ 0xfe) & 0x3f) ^
       CONCAT44(uVar2,uVar2);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar1 ^ uVar27;
  return;
}



############ FUN_ 180c502b0 size=3190 ############

void FUN_180c502b0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  ulonglong uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  byte *pbVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  
  uVar9 = DAT_1826707cc;
  uVar16 = DAT_1826707c8;
  uVar6 = DAT_1826707c0;
  uVar5 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707cc;
  uVar26 = (ulonglong)DAT_1826707c0;
  uVar28 = (ulonglong)DAT_1826707bc;
  uVar24 = DAT_1826707c0 * DAT_1826707c8;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670b24);
  uVar22 = DAT_1826707bc + DAT_1826707cc;
  uVar18 = *(uint *)(&DAT_18260f758 + DAT_182670b24) ^ DAT_1826707cc;
  uVar19 = (ulonglong)DAT_1826707c0;
  uVar20 = (ulonglong)DAT_18267088c;
  DAT_1826707b4 = uVar22;
  DAT_1826707d8 = uVar24;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x2f8) ^ (ulonglong)DAT_182670878) =
       (byte)DAT_1826708d4 ^ *(byte *)(DAT_1826707a0 + -0x2bd);
  *(undefined1 *)(lVar2 + -0x2bd) = 0x3e;
  uVar17 = *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x40000300));
  *(ulonglong *)(lVar2 + -0x5b0) = uVar17;
  lVar3 = DAT_1826707a0;
  pbVar25 = *(byte **)(lVar2 - ((ulonglong)uVar24 ^ 0x73bfd1ae));
  *(longlong *)(lVar2 + -0x5c0) =
       -0x2f5bdac5af2052b3 << ((byte)*(undefined8 *)(lVar2 + -0x548) & 0x3f);
  *(byte **)(lVar2 + -0x520) = pbVar25;
  *(ulonglong *)(lVar2 + -600) = uVar17 ^ uVar20;
  uVar17 = (ulonglong)DAT_182670a34;
  *(ulonglong *)(lVar2 + -0x70) = (ulonglong)pbVar25 ^ uVar17;
  *(ulonglong *)(lVar2 + -0xc60) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x35ebdd02)) ^ uVar17) +
       (CONCAT44(uVar6,uVar5) ^ 0xf993b1a340000041);
  *(byte *)(lVar2 + -0x15a) = *pbVar25 ^ (byte)DAT_182670a54 ^ DAT_1826709e0;
  *(byte *)(lVar2 + -0xf9) = (byte)uVar22 ^ 0xe4;
  uVar8 = DAT_182670ae4;
  *(byte *)(*(ulonglong *)(lVar3 + -0x380) ^ (ulonglong)DAT_182670ae4) = (byte)uVar9 ^ 0xd7;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xf993b67b)) =
       *(ulonglong *)(lVar3 + -0x998) | 0x45a3cd89d6648351;
  uVar23 = (ulonglong)DAT_182670968;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x40000530)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x35ebdf2a)) ^ uVar20) +
       (CONCAT44(uVar24,uVar6) ^ 0x73bfd196f993b1a2);
  uVar21 = (ulonglong)DAT_182670a20;
  *(byte *)(*(ulonglong *)(lVar3 + -600) ^ uVar20) =
       *(byte *)(lVar3 - ((ulonglong)uVar5 ^ 0x4000011a)) ^ (byte)DAT_182670a54;
  *(byte *)(lVar3 + -0x15a) = (byte)uVar9 ^ 0xb;
  *(undefined8 *)(lVar3 + -0xa88) = *(undefined8 *)(lVar3 - ((ulonglong)uVar6 ^ 0xf993b4d3));
  uVar20 = (ulonglong)uVar22;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xf993b933)) =
       CONCAT44(uVar24,uVar22) ^ 0xb6dae4be1ceb3e8d | *(ulonglong *)(lVar3 + -0x610);
  uVar17 = *(ulonglong *)(lVar3 + -0xc60);
  *(ulonglong *)(lVar3 + -0x8d8) = uVar17;
  *(ulonglong *)(lVar3 + -0x698) = *(ulonglong *)(lVar3 + -0xa88) ^ uVar23;
  *(ulonglong *)(lVar3 + -0xcd0) = uVar21 ^ uVar17;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x35ebdf12)) = uVar17 + 1;
  uVar17 = (ulonglong)DAT_182670870;
  *(byte *)(lVar3 + -0xb81) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar22 ^ 0xf99b6acc)) ^ uVar21) ^
       (byte)DAT_182670944 ^ DAT_1826709e0;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar9 ^ 0xb99b6760)) = 0x8d;
  uVar7 = DAT_1826707f4;
  uVar21 = (ulonglong)DAT_1826707f4;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xf993bb23)) ^ uVar17) =
       (byte)DAT_1826707c8 ^ 0x5b;
  pbVar25 = (byte *)(*(ulonglong *)(lVar3 + -0x698) ^ uVar23);
  *(longlong *)(lVar3 + -0x630) = *(longlong *)(lVar3 + -0xa18) << (((byte)uVar7 ^ 0xc4) & 0x3f);
  uVar27 = (ulonglong)DAT_1826709dc;
  *(byte **)(lVar3 + -0x858) = pbVar25 + 1;
  bVar14 = *(byte *)(lVar3 + -0xb81) ^ (byte)DAT_182670944;
  *(ulonglong *)(lVar3 + -0x68) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0xf993b793)) |
       *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0x73bfd7ce));
  *pbVar25 = bVar14;
  *(ulonglong *)(lVar3 + -0x6b0) = *(ulonglong *)(lVar3 + -0x858);
  *(byte *)(lVar3 + -0xb81) = (byte)uVar5 ^ 0x21;
  uVar17 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x40000220));
  *(ulonglong *)(lVar3 + -0xc58) = uVar17;
  uVar19 = (ulonglong)DAT_1826709b4;
  *(ulonglong *)(lVar3 + -0xd10) = uVar27 ^ *(ulonglong *)(lVar3 + -0x858);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xb99b650c)) = uVar17 ^ uVar19;
  pbVar25 = (byte *)(*(ulonglong *)(lVar3 + -0xd0) ^ uVar19);
  *(byte **)(lVar3 + -0x5a8) = pbVar25 + (CONCAT44(DAT_1826707dc,uVar9) ^ 0xa3b193f9b99b65dd);
  *(byte *)(lVar3 + -0xc91) = *pbVar25 ^ (byte)DAT_182670aa0 ^ DAT_1826709e0;
  *(undefined1 *)(lVar3 - ((ulonglong)uVar24 ^ 0x73bfdb3f)) = 1;
  uVar13 = DAT_1826707f0;
  uVar7 = DAT_1826707d4;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0x7fbfaa97)) ^
           (ulonglong)DAT_182670b04) = (byte)uVar22 ^ 0x3a;
  uVar10 = DAT_1826707ec;
  uVar4 = DAT_1826707ac;
  uVar23 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x35ebd952)) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0xf99b60ec)) ^ *(ulonglong *)(lVar3 + -0xb70);
  uVar16 = DAT_1826707d0;
  pbVar25 = (byte *)(*(ulonglong *)(lVar3 + -0xd10) ^ uVar27);
  *(byte **)(lVar3 + -0xd50) = pbVar25 + (CONCAT44(uVar10,uVar24) ^ 0xb1a3f99373bfd197);
  bVar15 = *(byte *)(lVar3 + -0xc91) ^ (byte)DAT_182670aa0;
  *(ulonglong *)(lVar3 + -0x400) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0xf99b65ac)) >> (((byte)uVar16 ^ 0xb9) & 0x3f);
  bVar14 = (byte)DAT_1826707c8;
  *pbVar25 = bVar15;
  *(byte *)(lVar3 - ((ulonglong)uVar16 ^ 0x6c372206)) = bVar14 ^ 0xde;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar10 ^ 0xb1a3fe03)) =
       *(undefined8 *)(lVar3 - ((ulonglong)DAT_1826707b0 ^ 0x241753fb));
  *(undefined8 *)(lVar3 + -0x390) = *(undefined8 *)(lVar3 + -0x5a8);
  uVar16 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707b8;
  uVar19 = (ulonglong)DAT_182670818;
  uVar30 = (ulonglong)DAT_1826708fc;
  bVar15 = (byte)DAT_1826707b8;
  *(longlong *)(DAT_1826707a0 - (uVar27 ^ 0x7d3fa7de)) =
       *(longlong *)(DAT_1826707a0 + -0x118) << (((byte)uVar7 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar2 + -0x788) = *(ulonglong *)(lVar2 + -0x790) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x838) = *(ulonglong *)(lVar2 + -0x390) ^ uVar19;
  uVar11 = DAT_1826707e0;
  uVar32 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xb99b63bc)) =
       *(ulonglong *)(CONCAT44(DAT_182670a7c,DAT_182670a7c) ^ *(ulonglong *)(lVar2 + -0xa58)) ^
       CONCAT44(uVar8,uVar8);
  uVar7 = DAT_1826707c4;
  *(undefined8 *)(lVar2 - (uVar21 ^ 0xa3b199a1)) = 0xa3cfcfe04d48e8e7;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xf993bc6b)) = (uVar19 ^ *(ulonglong *)(lVar2 + -0x838)) + 1;
  uVar17 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0xd5fef7b4)) =
       (CONCAT44(DAT_1826707d4,uVar7) ^ 0x8c9d7936fb4bfaa3) -
       (CONCAT44(uVar5,uVar22) ^ 0x5a2ffcca8b09254f);
  *(byte *)(lVar2 - (uVar17 ^ 0x6c372c2c)) =
       *(byte *)(uVar19 ^ *(ulonglong *)(lVar2 + -0x838)) ^ (byte)DAT_182670ac4 ^ DAT_1826709e0;
  uVar17 = (ulonglong)DAT_182670a48;
  bVar14 = (byte)DAT_1826707bc;
  *(byte *)(lVar2 + -0x3f1) = bVar15 ^ 0xd1;
  *(byte *)(*(ulonglong *)(lVar2 + -0x6d8) ^ uVar17) = bVar14 ^ 0x7b;
  uVar12 = DAT_1826707e8;
  uVar8 = DAT_1826707c8;
  uVar28 = CONCAT44(DAT_1826707e8,DAT_1826707c8);
  *(ulonglong *)(lVar2 + -0x650) =
       (CONCAT44(DAT_1826707c8,DAT_1826707e8) ^ 0x35ebdd7282c05118) +
       (*(ulonglong *)(lVar2 + -0x788) ^ uVar30);
  uVar31 = (ulonglong)DAT_1826707e4;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xf993b62b)) ^ uVar30) =
       *(byte *)(lVar2 + -699) ^ (byte)DAT_182670ac4;
  uVar17 = (ulonglong)DAT_1826707d0;
  *(byte *)(lVar2 + -699) = (byte)uVar10 ^ 0x73;
  uVar10 = DAT_182670b00;
  uVar21 = (ulonglong)DAT_182670b00;
  uVar17 = *(ulonglong *)(lVar2 - (uVar17 ^ 0x6c3728c7));
  *(undefined8 *)(lVar2 + -0x170) = *(undefined8 *)(lVar2 + -0xdc8);
  *(ulonglong *)(lVar2 + -0xb98) = uVar17;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x82c057c1)) = uVar21 ^ uVar17;
  uVar17 = (ulonglong)DAT_182670970;
  uVar19 = (ulonglong)DAT_182670970 ^ *(ulonglong *)(lVar2 + -0x170);
  *(ulonglong *)(lVar2 + -0x200) = uVar19;
  pbVar25 = (byte *)(uVar19 ^ uVar17);
  *(byte **)(lVar2 + -0x950) = pbVar25 + 1;
  *(ulonglong *)(lVar2 + -0x220) =
       (uVar28 ^ 0x4a6c8b4a0d0402f9) >> ((byte)*(undefined8 *)(lVar2 + -0x5c0) & 0x3f);
  bVar15 = (byte)uVar10;
  bVar14 = (byte)DAT_1826707f4;
  *(byte *)(lVar2 + -0x751) = *pbVar25 ^ bVar15 ^ DAT_1826709e0;
  *(byte *)(lVar2 - ((ulonglong)uVar13 ^ 0xf993b232)) = (byte)uVar13 ^ 0x60;
  *(byte *)(*(ulonglong *)(lVar2 + -0xe8) ^ (ulonglong)DAT_182670a84) = bVar14 ^ 0xbe;
  uVar10 = DAT_1826707dc;
  uVar19 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x270) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xf993b2bb)) ^ uVar21) +
       (CONCAT44(uVar4,uVar7) ^ 0x80405010028004c8);
  *(byte *)(*(ulonglong *)(lVar2 + -0x318) ^ uVar21) = *(byte *)(lVar2 + -0x751) ^ bVar15;
  *(ulonglong *)(lVar2 + -0x8d0) = *(ulonglong *)(lVar2 + -0x950);
  *(byte *)(lVar2 + -0x751) = (byte)uVar24 ^ 0x4d;
  *(ulonglong *)(lVar2 + -0x1d0) = *(ulonglong *)(lVar2 + -0x270);
  uVar21 = (ulonglong)DAT_1826709d4;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (CONCAT44(uVar16,uVar10) ^ 0xdaacc54aab41dc70) -
       (CONCAT44(uVar12,uVar6) ^ 0x2bc85814de59c369);
  *(byte *)(lVar2 + -0x351) = (byte)DAT_1826707dc ^ 0x10;
  *(ulonglong *)(lVar2 + -0x688) = uVar21 ^ *(ulonglong *)(lVar2 + -0x270);
  uVar16 = DAT_1826707a8;
  uVar17 = (ulonglong)DAT_182670a64;
  uVar28 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x73bfdc16)) = uVar17 ^ *(ulonglong *)(lVar2 + -0x950)
  ;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = CONCAT44(uVar16,uVar5) ^ 0xd4c86d9447987246;
  lVar3 = DAT_1826707a0;
  pbVar25 = (byte *)(*(ulonglong *)(lVar2 + -0xd80) ^ uVar17);
  *(byte **)(DAT_1826707a0 + -0x530) = pbVar25 + (CONCAT44(uVar22,uVar9) ^ 0xf99b661cb99b65dd);
  *(byte *)(lVar3 + -0x291) = (byte)DAT_182670840 ^ *pbVar25 ^ DAT_1826709e0;
  *(undefined1 *)(lVar3 + -0x9d2) = 0x87;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar26 ^ 0xf993b20b)) ^ (ulonglong)DAT_182670a04) =
       (byte)uVar11 ^ 6;
  pbVar25 = (byte *)(uVar21 ^ *(ulonglong *)(lVar3 + -0x688));
  *(uint *)(lVar3 + -0x540) = uVar16 ^ 0xa128eeac;
  *(byte **)(lVar3 + -0x340) = pbVar25 + (CONCAT44(uVar8,uVar9) ^ 0x35ebdd72b99b65dd);
  *(longlong *)(lVar3 + -0x558) =
       *(longlong *)(lVar3 + -0x658) << ((byte)*(undefined8 *)(lVar3 + -0x6f0) & 0x3f);
  uVar17 = (ulonglong)DAT_182670870;
  *pbVar25 = *(byte *)(lVar3 - (uVar32 ^ 0xd5fefced)) ^ (byte)DAT_182670840;
  *(undefined1 *)(lVar3 - (uVar23 ^ 0xb1a3fb02)) = 0xb7;
  *(undefined8 *)(lVar3 + -0x38) = *(undefined8 *)(lVar3 + -0x340);
  uVar21 = (ulonglong)DAT_182670a80;
  *(undefined8 *)(lVar3 - (uVar28 ^ 0xa974305d)) = *(undefined8 *)(lVar3 - (uVar27 ^ 0x7d3fafd6));
  *(ulonglong *)(lVar3 + -0x520) = *(ulonglong *)(lVar3 - (uVar31 ^ 0x82c054e1)) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x380) = *(ulonglong *)(lVar3 + -0x5b0) ^ uVar17;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xb99b65ac)) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0xf993b223)) ^ uVar17) + 1;
  *(byte *)(lVar3 - (uVar20 ^ 0xf99b6c2a)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar19 ^ 0xa3b19079)) ^ uVar17) ^ bVar15 ^ DAT_1826709e0;
  uVar16 = DAT_1826707b0;
  *(byte *)(lVar3 + -0x709) = (byte)DAT_1826707c8 ^ 0x28;
  *(byte *)(*(ulonglong *)(lVar3 + -0x988) ^ (ulonglong)DAT_182670a9c) = (byte)uVar16 ^ 0x43;
  uVar16 = DAT_1826707c4 ^ 0x20f3109f;
  *(uint *)(lVar3 + -0x2d4) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_1826707d0 ^ 0x6c372abb)) ^ DAT_182670a6c) + 0xb30d3867;
  *(uint *)(lVar3 + -0x42c) = uVar16;
  uVar17 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar3 + -0x570) = (uVar21 ^ *(ulonglong *)(lVar3 + -0x520)) + 1;
  *(ulonglong *)(lVar3 + -0x438) =
       *(ulonglong *)(lVar3 + -0x558) >>
       ((byte)*(undefined8 *)(lVar3 - (uVar17 ^ 0x7fbfaab7)) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar22) * 4) = uVar18;
  return;
}



############ FUN_ 180c78d40 size=4918 ############

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

void FUN_180c78d40(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte *pbVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  longlong *plVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte local_50;
  
  uVar8 = DAT_182670aac;
  uVar9 = DAT_1826707cc;
  lVar2 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707cc;
  uVar30 = DAT_1826707cc << 0x10 | DAT_1826707cc >> 0x10;
  uVar24 = (ulonglong)DAT_1826707cc;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar25 ^ 0xcb2c6fbe) + (longlong)DAT_182670d28);
  uVar20 = *(uint *)(&DAT_18260f760 + DAT_182670d28) ^ DAT_1826707cc;
  uVar36 = (ulonglong)uVar30;
  bVar29 = (byte)DAT_182670810;
  uVar35 = CONCAT44(DAT_182670aac,DAT_182670aac);
  DAT_1826707d4 = uVar30;
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xcb2c6946)) =
       ((ulonglong)(DAT_18267083c >> 0x18) | (ulonglong)DAT_18267083c << 8) ^
       *(ulonglong *)(DAT_1826707a0 + -0x610) >> 0x18 ^ CONCAT44(DAT_182670810,DAT_182670810);
  uVar4 = DAT_1826709f8;
  *(byte *)(lVar2 + -0x9d1) = bVar29 ^ *(byte *)(lVar2 + -0x6f0) ^ (byte)DAT_182670a90;
  uVar31 = (ulonglong)DAT_182670a48;
  *(ulonglong *)(lVar2 + -0x7d8) =
       CONCAT44(uVar4,uVar4) ^ CONCAT44(uVar30,uVar30) ^ *(ulonglong *)(lVar2 + -0x6b8) ^
       0x36d5c7976729d205;
  *(ulonglong *)(lVar2 + -0x808) =
       (CONCAT44(uVar9,uVar9) ^ 0xcb2c6fb6cb2c6f95) + *(longlong *)(lVar2 + -0x10) ^ uVar31;
  *(ulonglong *)(lVar2 + -0x9c8) = *(ulonglong *)(lVar2 + -0x630) ^ uVar35 | 0x1bab28bc1246ebcc;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x6fb6c324)) ^ uVar31) =
       *(byte *)(lVar2 - (uVar36 ^ 0x6fb6c2fd)) ^ DAT_1826709e0 ^ (byte)DAT_182670a90;
  *(ulonglong *)(lVar2 + -0x658) =
       *(ulonglong *)(lVar2 + -0x2b0) >> ((byte)*(undefined8 *)(lVar2 + -0x7d8) & 0x3f);
  uVar31 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xcb2c6e36)) = *(longlong *)(lVar2 + -0x2d0) + 0x20U ^ uVar31;
  bVar29 = (byte)DAT_182670a5c;
  uVar33 = CONCAT44(DAT_182670988,DAT_182670988);
  uVar28 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar2 + -0xc18) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x180) ^ uVar31) ^ uVar28 ^ uVar33;
  uVar24 = (ulonglong)DAT_182670820;
  *(ulonglong *)(lVar2 + -0x660) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xcb2c63ae)) ^ uVar33) >>
       (((byte)uVar9 ^ 0x96) & 0x3f) ^ uVar35;
  pbVar22 = (byte *)(*(longlong *)(lVar2 + -0x10) + 0x24);
  bVar23 = *(byte *)(lVar2 - (uVar36 ^ 0x6fb6cd4c)) ^ (byte)uVar8 ^ bVar29;
  bVar29 = bVar29 ^ DAT_1826709e0;
  *(ulonglong *)(lVar2 + -0x1d0) = (ulonglong)pbVar22 ^ uVar24;
  *(byte *)(lVar2 + -0x182) = bVar23;
  uVar4 = DAT_1826708cc;
  *pbVar22 = bVar29 ^ bVar23;
  *(ulonglong *)(lVar2 + -0x410) =
       *(ulonglong *)(CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar2 + -0x370)) ^ uVar28;
  uVar4 = DAT_1826709e4;
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x2d0) + (CONCAT44(uVar9,uVar30) ^ 0xcb2c6fb66fb6cb28) * 8);
  *(ulonglong *)(lVar2 + -0x4e0) = (ulonglong)puVar26 ^ CONCAT44(DAT_182670a94,DAT_182670a94);
  uVar8 = DAT_182670a08;
  uVar7 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar4,uVar4);
  uVar35 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  bVar29 = (byte)DAT_1826708a8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x6fb6c7cc)) = *puVar26 ^ uVar31 ^ uVar28;
  uVar24 = *(ulonglong *)(lVar3 + -0xce0);
  bVar29 = bVar29 ^ DAT_1826708bc;
  uVar32 = (ulonglong)DAT_182670a30;
  *(ulonglong *)(lVar2 + -0x420) =
       (CONCAT44(uVar9,DAT_1826707b0) ^ 0xc84df036d0fac1e3) >>
       (((byte)uVar8 ^ *(byte *)(lVar2 + -0xbb0)) & 0x3f);
  uVar6 = DAT_1826707b4;
  uVar31 = (uVar31 ^ uVar24) >> (((byte)(uVar9 >> 0x10) ^ 4) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar9 ^ 0xcb2c6afe)) = uVar31;
  uVar10 = DAT_1826707d0;
  uVar24 = (ulonglong)DAT_1826707d0;
  *(byte *)(lVar3 + -0x779) = bVar29 ^ (byte)uVar31;
  *(ulonglong *)(lVar3 + -0xa20) =
       *(longlong *)(lVar3 - ((ulonglong)uVar7 ^ 0x80522c50)) +
       (CONCAT44(uVar30,uVar9) ^ 0x6fb6cb2ccb2c6f93) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x4c8) = *(ulonglong *)(lVar3 + -0x548) ^ uVar35 | 0x8e83d545d5de667b;
  uVar19 = DAT_182670af8;
  uVar21 = DAT_1826708b0;
  uVar8 = DAT_1826707f0;
  uVar31 = (ulonglong)DAT_182670af8;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar25 ^ 0xcb2c6596)) ^ uVar32) =
       *(byte *)(lVar3 - (uVar24 ^ 0xe8d83225)) ^ DAT_1826708bc ^ DAT_1826709e0;
  uVar12 = DAT_1826707e4;
  uVar38 = (ulonglong)DAT_1826707e4;
  *(byte *)(lVar3 + -0x7b9) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c4 ^ 0xcacabb47)) ^ uVar31) ^
       (byte)DAT_182670a40;
  uVar5 = DAT_1826707bc;
  uVar32 = CONCAT44(DAT_182670940,DAT_182670940);
  uVar24 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar3 + -0x7b0) =
       *(longlong *)(lVar3 + -0x2d0) +
       ((CONCAT44(uVar12,uVar30) ^ 0xbfbfcaca6fb6cb28) +
       (CONCAT44(uVar9,uVar8) ^ 0xcb2c6fb6e273ac6d) * 0xc) * 8 ^ uVar32;
  uVar31 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0x118) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0xbfbfcd7a)) ^ uVar32) ^
       CONCAT44(uVar21,uVar21) ^ uVar28;
  uVar4 = DAT_1826707a8;
  lVar2 = DAT_1826707a0;
  bVar23 = (byte)_DAT_182670b10;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0x1a6cd80)) =
       (ulonglong)*(ushort *)((DAT_1826707a0 - (uVar31 ^ 0x378891e6)) + 6) ^
       (ulonglong)(uVar21 >> 0x10) ^ CONCAT44(_DAT_182670b10,_DAT_182670b10);
  bVar29 = (byte)DAT_182670a04;
  bVar23 = bVar23 ^ (byte)DAT_182670a04 ^ *(byte *)(lVar2 + -0xd88);
  *(byte *)(lVar2 + -0xa49) = bVar23;
  uVar21 = DAT_1826707b8;
  uVar5 = DAT_1826707ac;
  bVar29 = bVar29 ^ bVar23 ^ DAT_1826709e0;
  uVar37 = (ulonglong)DAT_1826707b8;
  pbVar22 = (byte *)((CONCAT44(uVar4,DAT_1826707ac) ^ 0xdd5fbfd6d4835158) +
                    *(longlong *)(lVar2 + -0x10));
  *(ulonglong *)(lVar2 + -0xc68) = (ulonglong)pbVar22 ^ (ulonglong)DAT_182670824;
  uVar13 = DAT_1826707e8;
  *pbVar22 = bVar29;
  uVar14 = DAT_182670838;
  uVar11 = DAT_1826707e0;
  *(ulonglong *)(lVar2 + -0x438) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x80522680)) ^
       CONCAT44(DAT_182670a84,DAT_182670a84)) + (CONCAT44(uVar5,DAT_1826707e0) ^ 0x5fe5369b82e40a98)
  ;
  uVar31 = CONCAT44(uVar14,uVar14);
  uVar34 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b0 ^ 0xd81fbf8c)) =
       *(longlong *)(lVar2 + -0x2d0) +
       ((CONCAT44(uVar21,uVar10) ^ 0x85113e11e8d83558) +
       (CONCAT44(uVar30,uVar11) ^ 0x6fb6cb2cbfbfcaca) * 0xc) * 8 ^ uVar31;
  uVar24 = CONCAT44(uVar13,DAT_1826707c8);
  *(ulonglong *)(lVar2 + -0x9e0) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x58) ^ uVar31) ^ uVar34 ^ uVar28;
  uVar14 = DAT_182670adc;
  uVar11 = DAT_1826707e0;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(CONCAT44(DAT_18267089c,DAT_18267089c) ^ *(ulonglong *)(lVar2 + -0xc0)) =
       uVar24 ^ 0xdca68ad95cf5bdcc;
  uVar7 = DAT_1826707dc;
  bVar29 = (byte)uVar14 ^ (byte)DAT_18267086c;
  uVar32 = (ulonglong)DAT_182670ab4;
  *(ulonglong *)(lVar3 + -0x890) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x9e0)) >> (((byte)uVar11 ^ 0xf2) & 0x3f) ^
       CONCAT44(uVar14,uVar14);
  lVar2 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xcb2c6e0e)) =
       (CONCAT44(uVar7,DAT_1826707b0) ^ 0x2ebc7f85811a7600) +
       (CONCAT44(uVar8,uVar8) ^ 0xc0994c03f093bc6e);
  *(byte *)(lVar2 - ((ulonglong)uVar13 ^ 0xbd8ed6a0)) = bVar29 ^ *(byte *)(lVar2 + -0x890);
  uVar7 = DAT_1826707bc;
  uVar24 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xd81fb8ec)) = *(longlong *)(lVar2 + -0x10) + 0x27U ^ uVar32;
  *(byte *)(*(ulonglong *)(lVar2 + -0x738) ^ uVar32) =
       *(byte *)(lVar2 - (uVar24 ^ 0x1a6cd79)) ^ (byte)DAT_18267086c ^ DAT_1826709e0;
  uVar15 = DAT_182670a7c;
  uVar14 = DAT_182670948;
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x2d0) +
            ((CONCAT44(uVar5,uVar6) ^ 0xd483517ef87773c2) +
            (CONCAT44(uVar9,uVar7) ^ 0xcb2c6fb601a6c008) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x5c8) = (ulonglong)puVar26 ^ CONCAT44(DAT_182670890,DAT_182670890);
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar24 = *puVar26 ^ uVar28 ^ uVar31;
  *(ulonglong *)(lVar2 + -0xd38) = uVar24;
  lVar2 = DAT_1826707a0;
  uVar31 = uVar24 ^ CONCAT44(uVar14,uVar14) ^ uVar31;
  bVar29 = (byte)uVar14 ^ (byte)DAT_1826708a0;
  *(ulonglong *)(lVar3 + -0xf0) = uVar31;
  uVar24 = (ulonglong)DAT_1826708f0;
  *(byte *)(lVar2 - ((ulonglong)uVar6 ^ 0xf877731e)) = bVar29 ^ (byte)uVar31;
  uVar11 = DAT_1826707e0;
  *(ulonglong *)(lVar2 + -0x400) =
       (*(ulonglong *)(lVar2 + -0x548) ^ uVar35) >> ((byte)*(undefined8 *)(lVar2 + -0x420) & 0x3f);
  pbVar22 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)DAT_1826707d8 ^ 0x184101d1)) +
                    (CONCAT44(uVar7,uVar13) ^ 0x1a6c008bd8edbf9));
  bVar29 = *(byte *)(lVar2 + -0xd9) ^ DAT_1826709e0 ^ (byte)DAT_1826708a0;
  *(ulonglong *)(lVar2 + -0x788) = (ulonglong)pbVar22 ^ uVar24;
  uVar16 = DAT_182670868;
  *pbVar22 = bVar29;
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x2d0) +
            ((CONCAT44(uVar11,DAT_1826707b4) ^ 0xbfbfcacaf87773c2) +
            (CONCAT44(uVar4,uVar12) ^ 0xdd5fbfd6bfbfcaca) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0x240) = (ulonglong)puVar26 ^ CONCAT44(uVar16,uVar16);
  uVar12 = DAT_182670a8c;
  uVar5 = DAT_182670a1c;
  lVar2 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  uVar35 = (ulonglong)DAT_182670a8c;
  uVar24 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0x85113b99)) = *puVar26 ^ uVar28 ^ uVar31;
  *(byte *)(lVar2 - (uVar24 ^ 0xbfbfca7b)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x2b8) ^ uVar35) ^ (byte)DAT_182670a40;
  uVar7 = DAT_1826707ec;
  uVar24 = *(ulonglong *)(lVar2 - (uVar38 ^ 0xbfbfcf42)) >> 8 ^
           ((ulonglong)uVar5 << 0x18 | (ulonglong)(uVar5 >> 8)) ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x558) = uVar24;
  *(byte *)(lVar2 + -0x4d1) = (byte)uVar14 ^ (byte)uVar24 ^ (byte)DAT_182670afc;
  uVar14 = DAT_1826707f4;
  uVar21 = DAT_1826707dc;
  lVar3 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x610) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x37889576)) ^ CONCAT44(uVar8,DAT_1826707c0) ^
       uVar31 ^ 0x6e31670eed4e3683;
  uVar24 = (ulonglong)DAT_182670a70;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x9d523d6a)) = *(longlong *)(lVar3 + -0x10) + 0x29U ^ uVar24;
  *(byte *)(*(ulonglong *)(lVar3 + -0x2b8) ^ uVar24) =
       *(byte *)(lVar3 - (uVar36 ^ 0x6fb6cffd)) ^ DAT_1826709e0 ^ (byte)DAT_182670afc;
  lVar2 = DAT_1826707a0;
  plVar27 = (longlong *)(DAT_1826707a0 - (uVar25 ^ 0xcb2c6d66));
  puVar26 = (ulonglong *)
            (*plVar27 +
            ((CONCAT44(uVar7,DAT_1826707c0) ^ 0x378890fe80522c45) +
            (CONCAT44(uVar14,DAT_1826707c4) ^ 0xf060c195cacabfbf) * 0xc) * 8);
  bVar29 = (byte)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 + -0x518) = (ulonglong)puVar26 ^ uVar33;
  uVar35 = *puVar26 ^ uVar28;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar35 ^ CONCAT44(uVar12,uVar12);
  lVar2 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707ec;
  uVar35 = uVar35 >> ((bVar29 ^ 0xd7) & 0x3f);
  uVar33 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  bVar29 = (byte)DAT_1826708ac;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar35 ^ uVar33;
  uVar31 = (ulonglong)DAT_182670a4c;
  *(byte *)(lVar2 + -0xb29) =
       *(byte *)(lVar2 - (uVar24 ^ 0x3788960e)) ^ bVar29 ^ (byte)DAT_1826709d4;
  uVar5 = DAT_1826707ec;
  *(ulonglong *)(lVar2 + -0x630) = (CONCAT44(uVar9,uVar13) ^ 0x37bb5991e54ac0f8) - uVar35;
  uVar34 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x3788904e)) =
       *(longlong *)(lVar2 + -0x10) + 0x2aU ^ uVar31;
  uVar15 = DAT_1826709d0;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0x1a6c9c0)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xd483578e)) ^ CONCAT44(uVar6,uVar5) ^ uVar33 ^
       0x85fef3685a48b23c;
  uVar6 = DAT_1826707e0;
  uVar35 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar25 ^ 0xcb2c6f06)) ^ uVar31) =
       DAT_1826709e0 ^ (byte)DAT_1826709d4 ^ *(byte *)(lVar2 + -0xb29);
  uVar5 = DAT_1826707c4;
  puVar26 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x2d0) +
            ((CONCAT44(uVar9,uVar8) ^ 0xcb2c6fb6e273ac68) +
            (CONCAT44(uVar11,uVar6) ^ 0xbfbfcacabfbfcaca) * 0xc) * 8);
  uVar24 = CONCAT44(DAT_1826707c4,DAT_1826707b0);
  *(ulonglong *)(lVar2 + -0xbe8) = (ulonglong)puVar26 ^ uVar35;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar24 ^ 0xeddefff1bef97f48 | 0xc5cad3f13ab95f40;
  uVar31 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar2 - (uVar37 ^ 0x851139c9)) = *puVar26 ^ uVar28 ^ uVar31;
  uVar8 = DAT_1826707c8;
  uVar31 = *(ulonglong *)(lVar2 + -0x7d8) ^ uVar31;
  bVar29 = (byte)DAT_1826707c8;
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 + -0x6f0) ^ uVar33) >> ((byte)uVar31 & 0x3f);
  uVar24 = (ulonglong)DAT_182670af8;
  *(ulonglong *)(lVar2 + -0xc18) = uVar31 >> ((bVar29 ^ 0x11) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  *(byte *)(lVar2 + -0x1d9) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x4f8) ^ uVar24) ^ (byte)DAT_182670a40;
  lVar3 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_182670a78;
  bVar29 = *(byte *)(lVar2 - ((ulonglong)uVar21 ^ 0x9d5233ca)) ^ (byte)uVar15 ^ (byte)DAT_182670878;
  uVar31 = CONCAT44(DAT_1826707c0,uVar21);
  *(byte *)(lVar2 + -0x283) = bVar29;
  uVar15 = DAT_182670834;
  pbVar22 = (byte *)((uVar31 ^ 0x80522c409d523ff9) + *(longlong *)(lVar2 + -0x10));
  bVar29 = bVar29 ^ DAT_1826709e0 ^ (byte)DAT_182670878;
  *(ulonglong *)(lVar2 + -0xd80) = (ulonglong)pbVar22 ^ uVar24;
  uVar17 = DAT_1826708b4;
  *pbVar22 = bVar29;
  uVar18 = DAT_1826708fc;
  puVar26 = (ulonglong *)
            (*plVar27 +
            ((CONCAT44(uVar30,uVar8) ^ 0x6fb6cb2c01e6d00c) +
            (CONCAT44(uVar5,DAT_1826707d0) ^ 0xcacabfbfe8d8355c) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0xa58) = (ulonglong)puVar26 ^ CONCAT44(uVar17,uVar17);
  lVar2 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x9d5239b2)) = *puVar26 ^ uVar28 ^ uVar35;
  uVar24 = *(ulonglong *)(lVar2 + -0x660);
  local_50 = (byte)uVar10;
  uVar25 = (uVar24 ^ uVar35) >> ((local_50 ^ 0x7c) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  uVar31 = (ulonglong)DAT_1826709f0;
  bVar29 = (byte)uVar15 ^ (byte)uVar25 ^ (byte)uVar16;
  *(ulonglong *)(lVar3 + -0x410) = uVar25;
  *(byte *)(lVar3 + -0xcd1) = bVar29;
  pbVar22 = (byte *)((CONCAT44(uVar4,DAT_1826707b0) ^ 0xdd5fbfd6d81fbff8) +
                    *(longlong *)(lVar3 + -0x10));
  *(ulonglong *)(lVar3 + -0xc60) = (ulonglong)pbVar22 ^ uVar31;
  uVar8 = DAT_182670a2c;
  uVar4 = DAT_182670920;
  uVar6 = DAT_1826707ec;
  bVar29 = bVar29 ^ DAT_1826709e0;
  uVar32 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0xbb0) =
       CONCAT44(uVar7,DAT_1826707e0) ^ uVar24 ^ uVar35 ^ 0x5d4221fa0120ebfe;
  *pbVar22 = bVar29 ^ (byte)uVar16;
  lVar2 = DAT_1826707a0;
  puVar26 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 + -0x2d0) + 0x28 +
            (CONCAT44(uVar5,DAT_1826707bc) ^ 0xcacabfbf01a6c008) * 0x60);
  uVar24 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(DAT_1826707a0 + -0x428) = (ulonglong)puVar26 ^ CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar2 + -0xce0) = *puVar26 ^ uVar28 ^ uVar24;
  uVar31 = (*(ulonglong *)(lVar2 - (uVar34 ^ 0xd4835d9e)) ^ uVar24) >>
           (((byte)uVar14 ^ 0xbd) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  bVar29 = (byte)uVar8 ^ (byte)DAT_182670818 ^ (byte)uVar31;
  uVar21 = DAT_1826707ec << 0x10 | DAT_1826707ec >> 0x10;
  uVar35 = (ulonglong)uVar21;
  DAT_1826707b0 = uVar21;
  *(uint *)(lVar2 + -0xb54) = *(uint *)(lVar2 + -0x2d4) >> 2;
  *(byte *)(lVar2 + -0x9ba) = bVar29;
  plVar27 = (longlong *)(lVar2 - (uVar32 ^ 0x378890ee));
  uVar24 = (ulonglong)DAT_182670a9c;
  bVar29 = bVar29 ^ DAT_1826709e0 ^ (byte)DAT_182670818;
  *(ulonglong *)(lVar2 + -0x4c8) = uVar31;
  pbVar22 = (byte *)((CONCAT44(uVar21,uVar21) ^ 0x90fe378890fe37a5) + *plVar27);
  *(ulonglong *)(lVar2 + -0x260) = (ulonglong)pbVar22 ^ uVar24;
  uVar5 = DAT_182670aa0;
  uVar4 = DAT_182670a68;
  uVar25 = (ulonglong)DAT_182670aa0;
  *pbVar22 = bVar29;
  uVar24 = CONCAT44(uVar4,uVar4);
  uVar31 = CONCAT44(uVar21,uVar6);
  *(ulonglong *)(lVar2 + -0x310) =
       (CONCAT44(uVar7,uVar6) ^ 0x378890fe378890fe) * 0x60 +
       *(longlong *)(lVar2 - (uVar35 ^ 0x90fe3558)) + 0x28 ^ uVar24;
  uVar4 = DAT_182670aa4;
  lVar3 = DAT_1826707a0;
  uVar24 = *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x90fe3498)) ^ uVar24) ^
           uVar28 ^ CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar2 + -0x118) = uVar24;
  bVar29 = (byte)uVar4 ^ (byte)DAT_182670884;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x90fe3a00)) =
       (uVar24 >> 0x20 ^ uVar25) >> 0x10 ^ CONCAT44(uVar4,uVar4);
  uVar24 = (ulonglong)DAT_1826709ec;
  *(ulonglong *)(lVar3 + -0x438) = uVar31 ^ 0xa7d97fe7f3ff37f6 | 0x45077a5e37b3072;
  *(byte *)(lVar3 + -0x9b9) = bVar29 ^ *(byte *)(lVar3 + -0xd88);
  *(ulonglong *)(lVar3 + -0x9a8) = (CONCAT44(uVar7,uVar21) ^ 0x378890fe90fe37a6) + *plVar27 ^ uVar24
  ;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x37889a3e)) =
       (CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar3 + -0xd88)) <<
       ((*(byte *)(lVar3 + -0x118) ^ (byte)uVar5) & 0x3f);
  uVar25 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(byte *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x9a8)) =
       *(byte *)(lVar3 - ((ulonglong)uVar21 ^ 0x90fe3e31)) ^ DAT_1826709e0 ^ (byte)DAT_182670884;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0x90fe3030)) =
       uVar25 ^ *(longlong *)(lVar3 + -0x2d0) + (uVar31 ^ 0x90fe3788378890fb) * 8;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar1 ^ uVar30;
  return;
}



############ FUN_ 180c7eb20 size=3412 ############

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

void FUN_180c7eb20(void)

{
  longlong *plVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  uint uVar15;
  byte bVar16;
  longlong *plVar17;
  byte *pbVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte local_res8;
  
  uVar9 = DAT_1826707d4;
  uVar7 = DAT_1826707bc;
  uVar5 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707d4;
  uVar21 = (ulonglong)DAT_1826707ac;
  uVar24 = (ulonglong)DAT_1826707bc;
  uVar15 = DAT_1826707ac - DAT_1826707bc;
  uVar31 = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  uVar27 = *(uint *)(&DAT_18260f758 + DAT_182670d3c) ^ DAT_1826707d4;
  uVar2 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar15 ^ 0x40404fc0) + (longlong)DAT_182670d3c);
  uVar19 = (ulonglong)DAT_1826707ac;
  uVar22 = (ulonglong)_DAT_1826709e0;
  bVar20 = (byte)DAT_1826707bc;
  uVar34 = CONCAT44(DAT_1826707d4,DAT_1826707ac);
  DAT_1826707b0 = uVar15;
  DAT_1826707f4 = uVar31;
  *(byte *)(DAT_1826707a0 + -0x8d9) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x80405a90)) ^ (ulonglong)DAT_182670860) ^
       (byte)DAT_182670808 ^ DAT_1826709e0;
  bVar16 = (byte)(uVar9 >> 0x10);
  *(byte *)(lVar3 - ((ulonglong)uVar15 ^ 0x404047f1)) = bVar20 ^ 0xa7;
  *(byte *)((ulonglong)DAT_182670840 ^ *(ulonglong *)(lVar3 + -0xd8)) = bVar16 ^ 0x5a;
  uVar34 = uVar34 ^ 0x7fbfafef80405011;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0x80405848)) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x40000b88)) ^ uVar22) + uVar34;
  uVar23 = (ulonglong)DAT_18267090c;
  *(byte *)(*(ulonglong *)(lVar3 + -0xbc8) ^ uVar22) =
       *(byte *)(lVar3 + -0x8d9) ^ (byte)DAT_182670808;
  *(byte *)(lVar3 + -0x8d9) = bVar16 ^ 0x9c;
  plVar17 = (longlong *)(lVar3 - ((ulonglong)uVar15 ^ 0x40404788));
  *(longlong *)(lVar3 + -0xcd0) = *plVar17;
  *(undefined8 *)(lVar3 + -0x260) = *(undefined8 *)(lVar3 + -0x770);
  *(ulonglong *)(lVar3 + -0xa18) =
       CONCAT44(uVar5,uVar5) ^ 0xfd65510195f68f99 | CONCAT44(uVar9,uVar9) ^ 0xf8552e1281ab0334;
  uVar22 = (ulonglong)DAT_182670908;
  uVar28 = (ulonglong)DAT_182670908;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x400006f0)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x40404300)) ^ uVar23;
  uVar28 = uVar28 ^ *(ulonglong *)(lVar3 + -0x260);
  *(ulonglong *)(lVar3 + -0x210) = uVar28;
  lVar3 = DAT_1826707a0;
  uVar19 = (ulonglong)uVar31;
  *(ulonglong *)(DAT_1826707a0 + -0x630) =
       CONCAT44(uVar5,uVar9) ^ 0xc7bf3bdf6457c3a4 | CONCAT44(uVar15,uVar9) ^ 0xc68c50b7164e8b81;
  uVar8 = DAT_182670a88;
  lVar4 = DAT_1826707a0;
  plVar1 = (longlong *)(DAT_1826707a0 + -0x998);
  *(ulonglong *)(DAT_1826707a0 + -0x578) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar31 ^ 0xafef7daf)) ^ uVar22) +
       (CONCAT44(uVar9,uVar7) ^ 0x7fbfafef40000041);
  *(longlong *)(lVar4 + -0xb70) = *plVar1 + 0x6957416f962d5835;
  bVar20 = (byte)uVar8;
  bVar26 = (byte)_DAT_1826709e0;
  *(byte *)(lVar4 + -0xc41) = *(byte *)(uVar28 ^ uVar22) ^ bVar20 ^ bVar26;
  local_res8 = (byte)uVar15;
  *(byte *)(lVar4 + -0x719) = local_res8 ^ 0x25;
  *(undefined1 *)((ulonglong)uVar8 ^ *(ulonglong *)(lVar4 + -0x678)) = 0xf5;
  pbVar18 = (byte *)(*(ulonglong *)(lVar4 + -0x6b0) ^ uVar23);
  *(byte **)(lVar4 + -0xd50) = pbVar18 + 1;
  *(byte *)(lVar4 + -0x6f9) = bVar16 ^ 0xc5;
  *pbVar18 = *(byte *)(lVar4 + -0xc41) ^ bVar20;
  *(byte *)(lVar4 + -0xc41) = bVar16 ^ 0xee;
  uVar22 = *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x80405d40));
  uVar25 = (ulonglong)DAT_1826709f8;
  *(undefined8 *)(lVar4 + -0x5a8) = *(undefined8 *)(lVar4 + -0x578);
  uVar28 = (ulonglong)DAT_182670844;
  *(ulonglong *)(lVar4 + -0xd0) = uVar22;
  uVar12 = DAT_1826707f0;
  uVar23 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x400007d0)) = uVar28 ^ uVar22;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xd7fef325)) = uVar25 ^ *(ulonglong *)(lVar4 + -0x5a8);
  bVar20 = (byte)DAT_182670a30;
  pbVar18 = (byte *)(*(ulonglong *)(lVar4 + -0xdd8) ^ uVar25);
  *(byte **)(lVar4 + -0x6d8) = pbVar18 + (CONCAT44(uVar9,uVar31) ^ 0x7fbfafefafef7fbe);
  uVar11 = DAT_1826707e0;
  uVar28 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar4 + -0x420) =
       *(longlong *)(lVar4 + -0x630) - (CONCAT44(uVar7,uVar7) ^ 0x680f153924dc6398);
  uVar8 = DAT_1826707c4;
  *(byte *)(lVar4 + -0x762) = bVar20 ^ *pbVar18 ^ bVar26;
  *(byte *)(lVar4 - (uVar28 ^ 0xd5fef9c5)) = (byte)uVar8 ^ 0x5f;
  uVar22 = (ulonglong)DAT_182670844;
  *(byte *)(*(ulonglong *)(lVar4 + -0x208) ^ (ulonglong)DAT_182670a20) = bVar16 ^ 0x17;
  pbVar18 = (byte *)(*(ulonglong *)(lVar4 + -0x790) ^ uVar22);
  *(byte **)(lVar4 + -0xdc8) = pbVar18 + (CONCAT44(uVar5,uVar15) ^ 0x8040501040404fd1);
  *(ulonglong *)(lVar4 + -0x3b0) =
       CONCAT44(uVar15,uVar12) ^ *(ulonglong *)(lVar4 + -0x118) ^ 0x903258f33a39c034;
  *pbVar18 = bVar20 ^ *(byte *)(lVar4 + -0x762);
  uVar10 = DAT_18267096c;
  uVar25 = (ulonglong)DAT_18267096c;
  uVar29 = (ulonglong)DAT_1826708c0;
  *(byte *)(lVar4 + -0x762) = (byte)uVar9 ^ 0x4c;
  *(undefined8 *)(lVar4 - ((ulonglong)uVar12 ^ 0xd7fef8ad)) = *(undefined8 *)(lVar4 + -0xdc8);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xd5fefa7c)) =
       CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar4 + -0x6b8) ^ 0xe832966888095693;
  uVar22 = uVar25 ^ *(ulonglong *)(lVar4 + -0x6d8);
  *(ulonglong *)(lVar4 + -0xb98) = *(ulonglong *)(lVar4 + -0x6d8);
  *(ulonglong *)(lVar4 + -0x170) = *(ulonglong *)(lVar4 + -0x650) ^ uVar29;
  *(ulonglong *)(lVar4 + -0x8f0) = uVar22;
  *(ulonglong *)(lVar4 + -0xd38) =
       (CONCAT44(uVar5,uVar31) ^ 0xc16bcea61f62bc88) - (CONCAT44(uVar7,uVar9) ^ 0xdaf6d1df62606af3);
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x200) =
       (CONCAT44(uVar8,uVar7) ^ 0x28004c940000041) + (uVar10 ^ uVar22);
  *(byte *)(lVar3 + -0x3b1) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0x400008b0)) ^ uVar25) ^ (byte)DAT_182670adc ^
       DAT_1826709e0;
  *(byte *)(lVar3 + -0xb1) = local_res8 ^ 0xb3;
  *(byte *)(*(ulonglong *)(lVar3 + -0x5d0) ^ (ulonglong)DAT_182670854) = (byte)uVar12 ^ 0x3e;
  *(ulonglong *)(lVar3 + -0x660) = *(ulonglong *)(lVar3 + -0xb70) | 0x6286fc72a7604645;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x950) =
       (CONCAT44(uVar9,uVar11) ^ 0x7fbfafefd5fefe7d) + (uVar29 ^ *(ulonglong *)(lVar3 + -0x170));
  *(longlong *)(lVar3 - ((ulonglong)uVar11 ^ 0xd5fef7b4)) =
       *(longlong *)(lVar3 + -0x2b0) - *(longlong *)(lVar3 - (uVar19 ^ 0xafef74cf));
  uVar32 = (ulonglong)DAT_1826707c0;
  uVar30 = (ulonglong)DAT_182670a14;
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0xd7feff8d)) ^ uVar29) =
       *(byte *)(lVar3 - ((ulonglong)uVar12 ^ 0xd7fefd4c)) ^ (byte)DAT_182670adc;
  *(undefined1 *)(lVar3 + -0x3b1) = 0xbf;
  *(undefined8 *)(lVar3 + -0x270) = *(undefined8 *)(lVar3 - (uVar21 ^ 0x80405940));
  *(undefined8 *)(lVar3 + -0x1d0) = *(undefined8 *)(lVar3 + -0x200);
  *(ulonglong *)(lVar3 + -0x5c0) = *(ulonglong *)(lVar3 + -0xa18) >> 0x21;
  uVar25 = (ulonglong)DAT_182670ac4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xd5fef6ac)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x40404da0)) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x980) = *(ulonglong *)(lVar4 + -0x1d0) ^ uVar25;
  uVar14 = _DAT_1826709e0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x2800949)) = *(ulonglong *)(lVar4 + -0x1d0) + uVar34;
  uVar10 = DAT_1826707d8;
  uVar22 = (ulonglong)DAT_1826707d8;
  *(byte *)(lVar4 - (uVar32 ^ 0xf993bc8a)) =
       *(byte *)(uVar25 ^ *(ulonglong *)(lVar4 + -0x980)) ^ (byte)DAT_1826709e4 ^ (byte)uVar14;
  *(byte *)(lVar4 - (uVar24 ^ 0x40000199)) = (byte)uVar11 ^ 0x1e;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c8 ^ 0x35ebddba)) ^
           (ulonglong)DAT_182670a54) = bVar16 ^ 0x8a;
  *(ulonglong *)(lVar4 + -0x530) =
       (CONCAT44(uVar12,uVar5) ^ 0xd7fefefd80405011) + (*(ulonglong *)(lVar4 + -0x8d0) ^ uVar30);
  *(longlong *)(lVar4 - ((ulonglong)uVar11 ^ 0xd5fefc5c)) =
       *(longlong *)(lVar4 + -0x68) + -0x6f505b123bc14886;
  *(byte *)(*(ulonglong *)(lVar4 - (uVar22 ^ 0x73bfd946)) ^ uVar30) =
       *(byte *)(lVar4 + -0xd29) ^ (byte)DAT_1826709e4;
  uVar13 = DAT_1826707ec;
  uVar22 = (ulonglong)DAT_182670af4;
  *(undefined1 *)(lVar4 - (uVar24 ^ 0x40000d69)) = 0x6d;
  *(undefined8 *)(lVar4 + -0x340) = *(undefined8 *)(lVar4 + -0x530);
  *(longlong *)(lVar4 + -0x1b8) = *(longlong *)(lVar4 + -0xb70) << (((byte)uVar9 ^ 0xca) & 0x3f);
  *(undefined8 *)(lVar4 - ((ulonglong)uVar10 ^ 0x73bfd1ae)) = *(undefined8 *)(lVar4 + -0xd80);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707cc ^ 0xb99b606c)) =
       uVar22 ^ *(ulonglong *)(lVar4 + -0x340);
  bVar20 = (byte)DAT_1826709e8;
  uVar24 = (ulonglong)DAT_182670a40;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (CONCAT44(uVar8,uVar12) ^ 0xe86426c1f57e75ee) - (CONCAT44(uVar9,uVar13) ^ 0xf122322d81a321b8)
  ;
  *(ulonglong *)(lVar4 + -0x7a0) = *(ulonglong *)(lVar4 + -0x38) ^ uVar24;
  bVar16 = (byte)DAT_1826707d0;
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x7fbfac6f)) =
       (CONCAT44(DAT_1826707d0,uVar7) ^ 0x6c372e9740000041) + *(ulonglong *)(lVar4 + -0x38);
  uVar12 = DAT_1826707e4;
  uVar5 = DAT_1826707dc;
  uVar25 = (ulonglong)DAT_1826707dc;
  *(byte *)(lVar4 + -0x839) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar4 + -0x7a0)) ^ bVar20 ^ (byte)uVar14;
  *(byte *)(lVar4 - ((ulonglong)uVar15 ^ 0x40404822)) = local_res8 ^ 0x71;
  *(byte *)(*(ulonglong *)(lVar4 + -0xdd0) ^ (ulonglong)DAT_182670804) = bVar16 ^ 0x71;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x658) =
       (CONCAT44(uVar31,uVar8) ^ 0x1b1973273cbea367) + (CONCAT44(uVar11,uVar7) ^ 0x727a0dc9308131d7)
  ;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x4c902f0)) =
       (CONCAT44(uVar5,uVar10) ^ 0xa3b193f973bfd197) + (*(ulonglong *)(lVar3 + -0x5b0) ^ uVar22);
  uVar7 = DAT_1826707e8;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar19 ^ 0xafef7a0f)) ^ uVar22) =
       bVar20 ^ *(byte *)(lVar3 + -0x839);
  uVar6 = DAT_1826707b4;
  *(byte *)(lVar3 - (uVar23 ^ 0xd7fef6c4)) = (byte)uVar7 ^ 0x61;
  *(undefined8 *)(lVar3 - (uVar21 ^ 0x80405560)) = *(undefined8 *)(lVar3 + -0x70);
  uVar21 = (ulonglong)DAT_182670844;
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar6,uVar10) ^ 0xa3bbed170807c4b5) + (CONCAT44(uVar9,uVar6) ^ 0xfa16fc411a866320);
  *(ulonglong *)(lVar3 + -0xa88) = *(ulonglong *)(lVar3 + -0x570) ^ uVar21;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0xc60) = *(ulonglong *)(lVar3 + -0x380);
  uVar9 = DAT_182670b08;
  uVar23 = (ulonglong)DAT_182670b08;
  uVar22 = uVar23 ^ *(ulonglong *)(lVar3 + -0x380);
  *(ulonglong *)(lVar4 + -0xd8) = uVar22;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x7fbfa56f)) =
       (CONCAT44(uVar5,uVar7) ^ 0xa3b193f982c05118) + (uVar9 ^ uVar22);
  uVar9 = _DAT_1826709e0;
  uVar5 = DAT_1826707c8;
  uVar22 = (ulonglong)DAT_1826707c8;
  bVar16 = (byte)_DAT_1826709e0;
  *(byte *)(lVar3 + -0xc05) =
       *(byte *)(uVar23 ^ *(ulonglong *)(lVar3 + -0xd8)) ^ (byte)DAT_182670888 ^ bVar16;
  *(byte *)(lVar3 + -0x139) = local_res8 ^ 0xbe;
  *(byte *)(*(ulonglong *)(lVar3 + -0xf8) ^ (ulonglong)DAT_1826709a0) = (byte)uVar12 ^ 4;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xf993b4fb)) =
       CONCAT44(uVar11,uVar5) ^ 0xbffd4405607fcdea | *(ulonglong *)(DAT_1826707a0 + -0x890);
  *plVar17 = (CONCAT44(uVar8,uVar31) ^ 0x28004c9afef7fbe) +
             (*(ulonglong *)(lVar3 + -0xa88) ^ uVar21);
  bVar20 = (byte)DAT_1826707d8;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar22 ^ 0x35ebd7fa)) ^ uVar21) =
       *(byte *)(lVar3 - (uVar19 ^ 0xafef73ba)) ^ (byte)DAT_182670888;
  *(undefined8 *)(lVar3 + -0xcd0) = *(undefined8 *)(lVar3 + -0xa80);
  *(ulonglong *)(lVar3 + -0x770) = *(ulonglong *)(lVar3 + -0x858);
  *(byte *)(lVar3 + -0xc05) = (byte)uVar12 ^ 0x78;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x82c05379)) =
       *(ulonglong *)(lVar3 + -0x858) ^ (ulonglong)uVar9;
  uVar22 = (ulonglong)DAT_1826709fc;
  uVar19 = (ulonglong)DAT_1826709fc ^ *(ulonglong *)(lVar3 + -0xcd0);
  *(ulonglong *)(lVar3 + -0x678) = uVar19;
  *(byte *)(lVar3 + -0x619) = *(byte *)(uVar19 ^ uVar22) ^ (byte)DAT_182670910 ^ bVar16;
  uVar22 = (ulonglong)DAT_18267084c;
  *(byte *)(lVar3 + -0x109) = (byte)uVar13 ^ 0x2c;
  *(byte *)(*(ulonglong *)(lVar3 + -0x408) ^ uVar22) = bVar20 ^ 0x88;
  *(byte *)(*(ulonglong *)(lVar3 + -0x260) ^ (ulonglong)uVar9) =
       *(byte *)(lVar3 - (uVar28 ^ 0xd5fef865)) ^ (byte)DAT_182670910;
  *(undefined1 *)(lVar3 + -0x619) = 0x8d;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar31) * 4) = uVar27;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xa3b19a81)) = CONCAT44(uVar12,uVar6) ^ 0xf54a99c2861a946b;
  return;
}



############ FUN_ 180cd9ca0 size=5811 ############

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

void FUN_180cd9ca0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  ulonglong *puVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong *puVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  byte bVar30;
  byte bVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  uint uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong *puVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  byte local_f8;
  byte local_a8;
  
  uVar8 = DAT_1826707ec;
  uVar11 = DAT_1826707dc;
  uVar7 = DAT_1826707b8;
  uVar6 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar46 = (ulonglong)DAT_1826707dc;
  uVar49 = (ulonglong)DAT_1826707ec;
  uVar47 = (ulonglong)DAT_1826707b8;
  uVar28 = DAT_1826707ec | DAT_1826707a8;
  uVar40 = DAT_1826707dc - DAT_1826707b8;
  uVar2 = *(uint *)(&DAT_18260f760 + DAT_182670e4c);
  uVar19 = *(uint *)(&DAT_18260f758 + DAT_182670e4c) ^ DAT_1826707dc;
  uVar26 = CONCAT44(DAT_1826707b8,DAT_1826707ec);
  bVar25 = (byte)DAT_1826707ec;
  uVar44 = CONCAT44(DAT_182670944,DAT_182670944);
  uVar20 = (*(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar44) >> ((bVar25 ^ 0x8f) & 0x3f);
  DAT_1826707b4 = uVar28;
  DAT_1826707d8 = uVar40;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar20 ^ CONCAT44(DAT_182670958,DAT_182670958);
  uVar14 = DAT_1826708ec;
  *(ulonglong *)(lVar4 + -0x588) = -0x7947bbda1381a90f - uVar20;
  uVar34 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar4 + -0x9e0) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar4 + -0xb70) | uVar20) ^ uVar34;
  uVar36 = (ulonglong)uVar6;
  uVar33 = (ulonglong)uVar28;
  uVar37 = (ulonglong)uVar40;
  bVar3 = (byte)uVar11;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar40 ^ 0x184107f1)) =
       (CONCAT44(uVar28,uVar6) ^ 0xc89494fe83f74e6d) << (bVar3 & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar41 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       uVar41 ^ uVar27 ^ uVar34 ^ *(ulonglong *)(DAT_1826707a0 + -0xa18) ^
       *(ulonglong *)(DAT_1826707a0 + -0x9e0);
  uVar16 = DAT_182670a58;
  uVar34 = CONCAT44(DAT_182670a58,DAT_182670a58);
  puVar1 = (ulonglong *)(lVar4 + -0x1b8);
  puVar21 = (ulonglong *)(lVar4 + -0xac0);
  uVar35 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *puVar21 = (*puVar1 ^ uVar34) + (CONCAT44(uVar6,uVar11) ^ 0x5e786be9e6724908) ^ uVar35;
  lVar4 = DAT_1826707a0;
  *(int *)(DAT_1826707a0 + -0x814) = *(int *)(DAT_1826707a0 + -0xc34) << ((bVar25 ^ 0xaa) & 0x1f);
  puVar32 = (ulonglong *)(lVar4 - (uVar33 ^ 0xfbafabbb));
  uVar22 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  puVar17 = (ulonglong *)(DAT_1826707a0 + -0x420);
  *puVar17 = (CONCAT44(DAT_182670af0,DAT_182670af0) ^ *puVar32) +
             (CONCAT44(uVar7,uVar40) ^ 0x33a7fc2b0402ece3) ^ uVar22;
  puVar23 = (ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xfbafa73b));
  *puVar23 = (uVar26 ^ 0xbecd14610939cf96) - (CONCAT44(uVar6,uVar40) ^ 0x48efe19fecf828c3);
  lVar4 = DAT_1826707a0;
  uVar35 = uVar35 ^ *puVar21;
  uVar26 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = (uVar22 ^ *puVar17) + uVar35 ^ uVar26;
  uVar38 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  bVar30 = (byte)uVar7;
  *(ulonglong *)(lVar4 + -0xf0) = uVar35 << ((bVar30 ^ 0x30) & 0x3f) ^ uVar38;
  local_f8 = (byte)uVar6;
  uVar20 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar35 >> ((local_f8 ^ 0x34) & 0x3f) ^ uVar20;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x85113a2d)) =
       (uVar28 ^ 0x308be288) + (uVar11 ^ 0x2e120195);
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  puVar18 = (ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x18410401));
  uVar20 = (*(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar20 |
           uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) ^ uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar20;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x851138a9)) =
       *puVar18 ^ uVar20 ^ uVar35 ^ uVar26 ^ uVar22;
  uVar14 = DAT_1826708fc;
  lVar5 = DAT_1826707a0;
  puVar24 = (ulonglong *)(lVar4 - (uVar37 ^ 0x18410bd9));
  uVar35 = CONCAT44(DAT_182670840,DAT_182670840);
  uVar20 = CONCAT44(DAT_182670878,DAT_182670878);
  puVar18 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0x712fa910)) ^ uVar22) +
       (uVar41 ^ *puVar24) ^ uVar35;
  uVar15 = DAT_182670928;
  uVar38 = (*puVar18 ^ uVar22) << ((bVar3 ^ 0xfc) & 0x3f);
  *(ulonglong *)(lVar5 + -0x438) = uVar38 ^ uVar20;
  uVar20 = (*(ulonglong *)(lVar5 + -0x6b8) ^ uVar22) >> ((bVar30 ^ 3) & 0x3f);
  *(ulonglong *)(lVar5 + -0x548) = uVar20 ^ CONCAT44(uVar14,uVar14);
  uVar42 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 - (uVar46 ^ 0x9d52398a)) = (uVar20 | uVar38) ^ uVar42;
  *(uint *)(lVar5 + -0xc04) = (uVar8 ^ 0x2cd1f455) + (uVar7 ^ 0x4e357332);
  uVar10 = DAT_182670a40;
  puVar50 = (ulonglong *)(lVar5 - (uVar37 ^ 0x18410799));
  *(ulonglong *)(lVar5 + -0x4c8) =
       uVar42 ^ uVar35 ^ uVar44 ^ *puVar50 ^ *(ulonglong *)(lVar5 + -0xbb0);
  *(byte *)(lVar5 + -0x68d) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x390) ^ (ulonglong)DAT_182670b14) ^ (byte)uVar10;
  uVar38 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar5 - (uVar46 ^ 0x9d5232ea)) =
       (*(ulonglong *)(lVar5 + -0x5c0) ^ uVar26) + (*(ulonglong *)(lVar5 + -0x660) ^ uVar27) ^
       uVar38;
  uVar26 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar5 + -0xd88) =
       (*(ulonglong *)(lVar5 - (uVar46 ^ 0x9d5239b2)) ^ uVar27) << (((byte)uVar40 ^ 0xcd) & 0x3f) ^
       uVar26;
  *(ulonglong *)(lVar5 - (uVar37 ^ 0x18410449)) =
       CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar5 + -0x4c8) ^ uVar44 ^ 0xa8a622fe89eb5cc6;
  lVar4 = DAT_1826707a0;
  uVar20 = (*(ulonglong *)(DAT_1826707a0 + -0x660) ^ uVar27) >> ((local_f8 ^ 0x1f) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xb70) = uVar20 ^ CONCAT44(DAT_1826709c8,DAT_1826709c8);
  uVar15 = DAT_182670960;
  uVar27 = CONCAT44(DAT_182670960,DAT_182670960);
  *(ulonglong *)(lVar4 + -0x220) = (*(ulonglong *)(lVar4 + -0xd88) ^ uVar26 | uVar20) ^ uVar27;
  uVar26 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0xfb8c851b)) =
       *(ulonglong *)(lVar4 - (uVar33 ^ 0xfbafad8b)) ^ uVar26 ^ uVar27 ^ uVar38 ^
       *(ulonglong *)(lVar4 + -0xd38);
  puVar18 = (ulonglong *)(lVar4 - (uVar33 ^ 0xfbafa99b));
  uVar27 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(lVar4 + -0x9e0) =
       (*(ulonglong *)(lVar4 - (uVar49 ^ 0x712fa418)) ^ uVar35) + (uVar26 ^ *puVar18) ^ uVar27;
  bVar31 = (byte)uVar28;
  uVar41 = CONCAT44(DAT_182670910,DAT_182670910);
  puVar48 = (ulonglong *)(lVar4 + -0x890);
  *puVar1 = (*(ulonglong *)(lVar4 + -0x630) ^ uVar26) << ((bVar31 ^ 0x91) & 0x3f) ^ uVar41;
  *(longlong *)(lVar4 + -0x410) = *(longlong *)(lVar4 + -0x588) + 0x72bf160815c692f4;
  uVar14 = DAT_1826708e8;
  uVar20 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *puVar48 = (uVar26 ^ *puVar18) >> ((local_f8 ^ 0x2d) & 0x3f) ^ uVar20;
  uVar26 = CONCAT44(uVar14,uVar14);
  uVar35 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar47 ^ 0x85113a31)) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0x18410079)) ^ uVar41 |
       *(ulonglong *)(lVar4 - (uVar49 ^ 0x712fa738)) ^ uVar20) ^ uVar26;
  uVar6 = DAT_1826707e0;
  lVar4 = DAT_1826707a0;
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0xd38);
  uVar44 = *(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar44;
  *puVar21 = uVar26 ^ uVar27 ^ uVar35 ^ *puVar17 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0);
  uVar14 = _DAT_182670b10;
  uVar29 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar38 = (uVar38 ^ uVar20) + uVar44 ^ uVar29;
  *(ulonglong *)(lVar4 + -0xf0) = uVar38;
  lVar5 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x610) = uVar44 << ((bVar3 ^ 0xc4) & 0x3f) ^ uVar43;
  uVar14 = DAT_18267088c;
  *(ulonglong *)(lVar5 + -0x9c8) =
       (CONCAT44(uVar8,uVar6) ^ 0xe52eba4af81ea408) >>
       (((byte)uVar15 ^ *(byte *)(lVar5 + -0x220)) & 0x3f);
  uVar15 = DAT_1826709b4;
  uVar20 = (ulonglong)DAT_1826707f4;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xa18) = uVar44 >> ((bVar3 ^ 0xf8) & 0x3f) ^ uVar26;
  uVar44 = CONCAT44(uVar15,uVar15);
  uVar20 = *(ulonglong *)(lVar5 - (uVar20 ^ 0x9cee1747)) ^ uVar43 | uVar26 ^ *puVar24;
  uVar26 = uVar20 ^ uVar44;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar26;
  uVar14 = DAT_182670994;
  *(ulonglong *)(lVar5 + -0x438) = CONCAT44(uVar6,uVar40) ^ 0x1a02004485aedf72 | uVar20;
  uVar6 = DAT_1826707ac;
  lVar4 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar14,uVar14);
  uVar45 = (ulonglong)DAT_1826707ac;
  uVar20 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0x548) = uVar39 ^ uVar44 ^ uVar38 ^ uVar29 ^ uVar26;
  uVar14 = DAT_18267091c;
  *puVar50 = *(ulonglong *)(lVar4 - (uVar36 ^ 0xfb8c8663)) ^
             *(ulonglong *)(lVar4 - (uVar20 ^ 0x7737e18)) ^ uVar39 ^ uVar27;
  uVar15 = DAT_182670964;
  uVar38 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x5c0) =
       (uVar27 ^ *(ulonglong *)(lVar4 + -0x9e0)) + (uVar39 ^ *(ulonglong *)(lVar4 + -0x548)) ^
       uVar38;
  uVar26 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xfbafa9cb)) =
       (*(ulonglong *)(lVar4 - (uVar45 ^ 0x484a2755)) ^ uVar39) << 0x20 ^ uVar26;
  uVar15 = DAT_182670a18;
  uVar7 = DAT_1826707e8;
  uVar27 = (uVar39 ^ *(ulonglong *)(lVar4 + -0x548)) >> ((bVar30 ^ 0x31) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd88) =
       uVar43 ^ *(ulonglong *)(lVar4 + -0x610) | uVar29 ^ *(ulonglong *)(lVar4 + -0xf0);
  uVar14 = DAT_182670978;
  lVar5 = DAT_1826707a0;
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(lVar4 + -0xb70) = uVar27 ^ CONCAT44(uVar15,uVar15);
  uVar9 = DAT_1826707c4;
  uVar44 = CONCAT44(uVar14,uVar14);
  uVar20 = (uVar26 ^ uVar20 | uVar27) ^ uVar44;
  *(ulonglong *)(lVar5 + -0xbb0) = uVar20;
  uVar14 = DAT_182670980;
  *(ulonglong *)(lVar5 + -0x588) =
       (CONCAT44(uVar9,uVar7) ^ 0x390c55b0862af7f0) - (CONCAT44(uVar6,uVar28) ^ 0x4760c189c293aee5);
  uVar15 = DAT_182670a30;
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x410) =
       uVar43 ^ uVar44 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0x5c0) ^ uVar20;
  *(ulonglong *)(lVar5 + -0x630) =
       (*(ulonglong *)(lVar5 - (uVar36 ^ 0xfb8c89eb)) ^ uVar35) +
       (uVar29 ^ *(ulonglong *)(lVar5 + -0xf0)) ^ uVar41;
  uVar20 = *puVar21;
  uVar29 = CONCAT44(DAT_182670810,DAT_182670810);
  *puVar1 = (uVar35 ^ uVar20) << ((bVar31 ^ 0x8b) & 0x3f) ^ uVar29;
  uVar13 = DAT_1826707f0;
  uVar35 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar5 + -0x280) = (DAT_1826707dc ^ 0x69d2471d) + 0x983cefd6;
  uVar14 = DAT_182670a78;
  uVar8 = DAT_1826707c0;
  uVar39 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *puVar48 = uVar20 >> 0x20 ^ uVar39 ^ (ulonglong)uVar10;
  uVar12 = DAT_1826707e4;
  uVar10 = DAT_1826707c8;
  uVar26 = (ulonglong)DAT_1826707c8;
  uVar20 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xe273a84d)) =
       *(ulonglong *)
        (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xfa1d8de9)) ^ CONCAT44(uVar15,uVar15))
       ^ uVar22;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xf8777e3f)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x186e2ad4)) ^ uVar39 | uVar29 ^ *puVar1) ^ uVar27;
  uVar7 = DAT_1826707e8;
  *(ulonglong *)(lVar4 - (uVar49 ^ 0x712fad88)) =
       *(ulonglong *)(lVar4 + -0x630) ^ uVar41 ^ *(ulonglong *)(lVar4 + -0xd38);
  lVar4 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar27 = (CONCAT44(uVar40,uVar7) ^ 0xaef7c3fb0d1471cc) +
           (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x220));
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar27 ^ uVar39;
  *(ulonglong *)(lVar4 + -0x4c8) =
       (uVar43 ^ *puVar32) - (CONCAT44(uVar11,uVar28) ^ 0x8123ccbc7f782194);
  uVar7 = DAT_1826707bc;
  uVar26 = CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar20 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar4 + -0xa18) =
       (CONCAT44(uVar40,uVar12) ^ 0x7db4adda6084c3cf) + (uVar38 ^ *(ulonglong *)(lVar4 + -0x5c0)) ^
       uVar26;
  uVar38 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar4 + -0x438) =
       (*(ulonglong *)(lVar4 - (uVar20 ^ 0x18410bd9)) ^ uVar26) + uVar27 ^ uVar38;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c4 ^ 0xcacab907)) =
       0x2995241c1fac5e8a >> (((byte)uVar14 ^ *(byte *)puVar48) & 0x3f);
  uVar14 = DAT_1826708a4;
  uVar27 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar4 + -0x658) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x186e2b8c)) ^ uVar39) << 0xe ^ uVar27;
  uVar11 = DAT_1826707cc;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar20 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar4 - (uVar46 ^ 0x9d523632)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xbfbfc302)) ^ uVar39) >>
       ((bVar30 ^ 0x23) & 0x3f) ^ uVar29;
  uVar14 = DAT_182670a48;
  lVar4 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x77371a0)) ^ uVar27 |
       uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0)) ^ uVar26;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0xe273a1e5)) =
       (CONCAT44(DAT_1826707d0,uVar10) ^ 0xde2936238c4351a0) >>
       ((*(byte *)(lVar4 - (uVar49 ^ 0x712fa9b8)) ^ (byte)uVar14) & 0x3f);
  uVar10 = DAT_1826707f4;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x18410489)) =
       *(ulonglong *)(lVar5 - (uVar46 ^ 0x9d523bea)) ^ uVar38 ^ *(ulonglong *)(lVar5 + -0x610) ^
       uVar22 ^ uVar26;
  uVar7 = DAT_1826707b0;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  puVar32 = (ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0x85113871));
  *puVar32 = (uVar43 ^ *(ulonglong *)(DAT_1826707a0 + -0x410)) +
             (CONCAT44(uVar11,uVar10) ^ 0x599e9e144c8d2ba5) ^ uVar27;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xfa1d8559)) =
       (*(ulonglong *)(lVar4 + -0x660) ^ uVar27) + 0xfecbf9798ad7165a;
  uVar20 = (*(ulonglong *)(lVar4 - (uVar49 ^ 0x712fa998)) ^ uVar41) +
           (CONCAT44(uVar7,uVar6) ^ 0x5c44ba4b6eafeafc);
  uVar41 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(lVar4 + -0x588) = uVar20 ^ CONCAT44(DAT_182670afc,DAT_182670afc);
  uVar8 = DAT_1826707e8;
  uVar26 = CONCAT44(uVar11,DAT_1826707e4);
  uVar39 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar4 + -0xbb0) = (*(ulonglong *)(lVar4 + -0x660) ^ uVar27) + uVar20 ^ uVar41;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xe273ac9d)) =
       uVar26 ^ uVar29 ^ *(ulonglong *)(lVar4 + -0x9e0) ^ 0x629c636e1a5477af;
  uVar26 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0x660);
  uVar36 = (*(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xfb8c854b)) ^ uVar27) <<
           ((bVar31 ^ 0xbb) & 0x3f);
  *(uint *)(lVar5 + -0x398) = uVar13 ^ 0x7ca76154 | uVar7 ^ 0x8179d156;
  *puVar21 = uVar36 ^ uVar26;
  uVar11 = DAT_182670b00;
  *puVar17 = (uVar20 ^ uVar27) >> (((byte)uVar10 ^ 0x67) & 0x3f) ^ uVar38;
  uVar20 = *(ulonglong *)(lVar5 + -0xbb0);
  uVar26 = CONCAT44(DAT_182670920,DAT_182670920);
  uVar36 = (*(ulonglong *)(lVar5 - (uVar39 ^ 0xf8777727)) ^ uVar38 | uVar36) ^ uVar26;
  uVar27 = CONCAT44(uVar11,uVar11);
  *puVar1 = uVar36;
  uVar14 = DAT_182670934;
  uVar20 = uVar20 ^ uVar27 ^ uVar36 ^ uVar26 ^ uVar41;
  *(ulonglong *)(lVar5 + -0xd38) = uVar20;
  lVar4 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x220) =
       (uVar38 ^ *(ulonglong *)(lVar5 + -0x438)) + (uVar20 ^ uVar27) ^ uVar26;
  uVar7 = DAT_1826707e0;
  uVar29 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar5 - (uVar47 ^ 0x85113ad9)) =
       (*(ulonglong *)(lVar5 - (uVar37 ^ 0x18410cf9)) ^ uVar27) <<
       (((byte)DAT_1826707e0 ^ 0xfe) & 0x3f) ^ uVar29;
  uVar14 = DAT_182670940;
  *(ulonglong *)(lVar5 + -0x5c0) =
       ((ulonglong)uVar11 << 0x14 | (ulonglong)(uVar11 >> 0xc)) ^
       *(ulonglong *)(lVar5 + -0xd38) >> 0xc ^ uVar44;
  uVar20 = CONCAT44(uVar14,uVar14);
  *puVar24 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xbfbfcf0a)) ^ uVar44 |
             *(ulonglong *)(lVar5 + -0x4c8) ^ uVar29) ^ uVar20;
  uVar27 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *puVar48 = *(ulonglong *)(lVar5 + -0x220) ^ uVar27 ^ uVar20 ^ uVar26 ^
             *(ulonglong *)(lVar5 + -0xa18);
  uVar14 = _DAT_182670ad4;
  uVar44 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar4 + -0x6b8) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0xfbafa41b)) ^ uVar41) +
       (*(ulonglong *)(lVar4 + -0x548) ^ uVar22) ^ uVar44;
  uVar7 = DAT_1826707d0;
  uVar35 = (ulonglong)DAT_1826707d0;
  uVar36 = CONCAT44(uVar14,uVar14);
  uVar20 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707cc ^ 0x7737e30)) =
       (*(ulonglong *)(lVar4 + -0x548) ^ uVar22) << (((byte)DAT_1826707c4 ^ 0x86) & 0x3f) ^ uVar36;
  lVar5 = DAT_1826707a0;
  *(undefined4 *)(lVar4 - (uVar20 ^ 0x115790e2)) = 0xa785e10d;
  uVar14 = DAT_182670a04;
  uVar20 = (*(ulonglong *)(lVar4 - (uVar46 ^ 0x9d523a9a)) ^ uVar22) >> ((bVar25 ^ 0xaf) & 0x3f);
  *(ulonglong *)(lVar5 + -0x658) = uVar20 ^ uVar34;
  lVar4 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar22 = (ulonglong)DAT_182670948;
  uVar20 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0xf9f37a2)) ^ uVar36 | uVar20) ^ uVar34;
  uVar33 = CONCAT44(DAT_182670948,DAT_182670948);
  puVar18 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar20;
  lVar5 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar9,DAT_1826707c0);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0xf8777517)) = *puVar18 ^ uVar20 ^ uVar33 ^ uVar34 ^ uVar44;
  uVar14 = DAT_1826708ac;
  local_a8 = (byte)uVar16;
  *(ulonglong *)(lVar5 + -0x410) =
       (uVar36 ^ 0x4da302bcc5b07562) >> ((local_a8 ^ *(byte *)(lVar5 + -0x658)) & 0x3f);
  uVar33 = *(ulonglong *)(lVar5 + -0x610) ^ uVar33;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0xb70) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707c4 ^ 0xcacabd9f)) ^ uVar26) + uVar33 ^ uVar34;
  uVar20 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xf9f385a)) = uVar33 << 0x17 ^ uVar38;
  uVar14 = DAT_18267083c;
  *(ulonglong *)(lVar5 + -0x588) =
       (*(ulonglong *)(lVar5 - (uVar20 ^ 0x7737330)) ^ uVar29) +
       (CONCAT44(uVar6,DAT_1826707e0) ^ 0xb301533f1e93f5c4);
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 + -0x9e0) = (*(ulonglong *)(lVar5 + -0x610) >> 0x20 ^ uVar22) >> 9 ^ uVar20;
  uVar14 = DAT_182670908;
  uVar33 = (*(ulonglong *)(lVar5 - (uVar35 ^ 0xf9f378a)) ^ uVar20 |
           *(ulonglong *)(lVar5 - (uVar46 ^ 0x9d5239e2)) ^ uVar38) ^ uVar42;
  uVar36 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(ulonglong *)(lVar5 + -0xf0) = uVar33;
  uVar20 = (ulonglong)DAT_1826707e4;
  *puVar32 = uVar36 ^ *(ulonglong *)(lVar5 + -0xb70) ^ uVar42 ^ uVar33 ^ uVar34;
  uVar15 = DAT_1826709c0;
  *puVar21 = (*(ulonglong *)(lVar5 - (uVar20 ^ 0x186e24fc)) ^ uVar44) + (*puVar48 ^ uVar27) ^
             CONCAT44(uVar14,uVar14);
  *puVar17 = (CONCAT44(uVar13,DAT_1826707bc) ^ 0x71784931eb4cc8de) +
             (CONCAT44(uVar8,uVar7) ^ 0x730c52a465519ed7);
  *puVar1 = (uVar27 ^ *puVar23) << (((byte)uVar13 ^ 0x45) & 0x3f) ^ CONCAT44(uVar15,uVar15);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar40) * 4) = uVar19;
  return;
}



############ FUN_ 180cfeb00 size=5314 ############

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

void FUN_180cfeb00(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  byte bVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  byte bVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_res20;
  byte local_e0;
  
  uVar22 = DAT_1826707f4;
  uVar10 = DAT_1826707d8;
  uVar9 = DAT_1826707b8;
  lVar7 = DAT_1826707a0;
  uVar39 = (ulonglong)DAT_1826707f4;
  uVar27 = (ulonglong)DAT_1826707b8;
  uVar25 = (ulonglong)DAT_1826707d8;
  uVar33 = DAT_1826707f4 << 0x10 | DAT_1826707f4 >> 0x10;
  uVar18 = DAT_1826707b8 - DAT_1826707d8;
  uVar4 = *(uint *)(&DAT_18260f758 + DAT_182670bd4);
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670bd4) ^ DAT_1826707f4;
  uVar23 = (ulonglong)uVar18;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x588);
  uVar29 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x420);
  DAT_1826707b4 = uVar18;
  DAT_1826707e8 = uVar33;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x88348a21)) =
       (CONCAT44(DAT_182670a28,DAT_182670a28) ^ *(ulonglong *)(DAT_1826707a0 + -0x118)) -
       (*(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0xcedd9c22)) ^
       CONCAT44(DAT_182670860,DAT_182670860)) ^ uVar29;
  uVar15 = DAT_182670b0c;
  uVar20 = CONCAT44(DAT_182670910,DAT_182670910);
  uVar26 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar42 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar36 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar7 + -0x658) =
       (uVar29 ^ *puVar2) - (uVar26 ^ *(ulonglong *)(lVar7 + -0xb70)) ^ uVar42;
  uVar16 = DAT_182670af8;
  uVar13 = DAT_182670844;
  *puVar1 = (uVar20 ^ *(ulonglong *)(lVar7 + -0xd38)) >>
            (((byte)uVar15 ^ *(byte *)(lVar7 + -0x6f0)) & 0x3f);
  uVar15 = DAT_182670914;
  uVar28 = CONCAT44(uVar16,uVar16);
  uVar20 = -(CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar7 + -0xac0)) - 0x11;
  *(ulonglong *)(lVar7 + -0x6b8) = uVar20 ^ uVar28;
  uVar11 = DAT_182670948;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar38 = (ulonglong)uVar33;
  uVar30 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar9 ^ 0x57122e33)) =
       (uVar26 ^ *(ulonglong *)(lVar7 + -0xb70)) + uVar20 ^ uVar29;
  uVar13 = DAT_182670804;
  uVar20 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar29 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar33 ^ 0xed3a0b04)) ^
           *(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar20 ^ uVar30 ^ uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar29;
  lVar7 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar13,uVar13);
  bVar21 = (byte)uVar9;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x88348219)) =
       ((ulonglong)uVar11 << 0x1b | (ulonglong)(uVar11 >> 5)) ^ uVar29 >> 5 ^ uVar34;
  uVar11 = DAT_1826707dc;
  uVar26 = (*(ulonglong *)(lVar7 + -0x4c8) ^ uVar30) << (bVar21 & 0x3f);
  uVar29 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar7 + -0x660) = uVar26 ^ CONCAT44(DAT_182670a78,DAT_182670a78);
  uVar12 = DAT_1826707dc;
  uVar19 = (uVar11 << 0x10 | uVar11 & 0xff00) << 8 | uVar11 >> 8 & 0xff00 | DAT_1826707dc >> 0x18;
  uVar31 = (ulonglong)uVar19;
  uVar30 = CONCAT44(DAT_182670a40,DAT_182670a40);
  DAT_1826707b0 = uVar19;
  *(ulonglong *)(lVar7 - (uVar31 ^ 0x163e2874)) =
       (*(ulonglong *)(lVar7 - (uVar29 ^ 0xbc21320e)) ^ uVar34 | uVar26) ^ uVar30;
  lVar8 = DAT_1826707a0;
  puVar3 = (ulonglong *)(lVar7 + -0x610);
  uVar34 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar26 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar19 ^ 0x163e239c)) ^ uVar20) -
           (uVar30 ^ *(ulonglong *)(lVar7 + -0x9c8)) ^ uVar34;
  uVar20 = CONCAT44(DAT_182670840,DAT_182670840);
  *puVar3 = uVar26;
  uVar13 = DAT_182670990;
  bVar5 = (byte)uVar18;
  uVar32 = *(ulonglong *)(lVar7 - (uVar38 ^ 0xed3a0a6c)) ^ CONCAT44(DAT_182670a08,DAT_182670a08) ^
           uVar20 ^ uVar42 ^ *(ulonglong *)(lVar7 + -0x658);
  *(ulonglong *)(lVar7 + -0x7d8) = uVar32;
  uVar15 = DAT_182670a24;
  uVar35 = (uVar32 ^ uVar20) >> ((bVar5 ^ 0x9f) & 0x3f);
  uVar32 = (uVar32 ^ uVar20) << 0x1b;
  *(ulonglong *)(lVar8 + -0x5c0) = uVar35 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670820;
  *(ulonglong *)(lVar8 + -0xf0) = uVar32 ^ CONCAT44(uVar15,uVar15);
  uVar20 = CONCAT44(uVar13,uVar13);
  uVar35 = uVar35 | uVar32;
  uVar32 = uVar35 ^ uVar20;
  *(ulonglong *)(lVar8 + -0x1b8) = uVar32;
  uVar13 = DAT_182670978;
  *(ulonglong *)(lVar8 + -0xbb0) = (uVar42 ^ *(ulonglong *)(lVar8 + -0x658)) - uVar35 ^ uVar36;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar32 = uVar35 ^ uVar20 ^ uVar34 ^ uVar26 ^ uVar32;
  *(ulonglong *)(lVar8 + -0x890) = uVar32;
  uVar15 = DAT_1826709e8;
  *(ulonglong *)(lVar8 + -0x118) =
       *(ulonglong *)(lVar8 - (uVar25 ^ 0x883485b1)) ^ CONCAT44(uVar11,uVar10) ^ uVar36 ^
       0x7b1dea0e8675721f;
  uVar13 = DAT_182670858;
  uVar26 = CONCAT44(uVar15,uVar15);
  local_res20 = (byte)(uVar22 >> 0x10);
  *puVar2 = (*(ulonglong *)(lVar8 - (uVar25 ^ 0x88348691)) ^ uVar35) >>
            ((local_res20 ^ 0x9b) & 0x3f) ^ uVar26;
  uVar20 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar8 - (uVar27 ^ 0x5712254b)) = (uVar35 ^ uVar32) << 0x29 ^ uVar20;
  *(int *)(lVar8 + -0xa34) =
       *(int *)(lVar8 - (uVar31 ^ 0x163e2ae8)) << ((byte)*(undefined4 *)(lVar8 + -0xcec) & 0x1f);
  uVar13 = DAT_1826709fc;
  uVar26 = uVar26 ^ *puVar2 | uVar20 ^ *(ulonglong *)(lVar8 + -0x6f0);
  uVar20 = *puVar3;
  uVar43 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar8 + -0xd38) = uVar26 ^ uVar43;
  uVar40 = CONCAT44(uVar13,uVar13);
  *puVar1 = (uVar34 ^ uVar20) - uVar26 ^ uVar40;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x88348571)) =
       CONCAT44(uVar10,uVar33) ^ 0x2bdd435fb89e413c | CONCAT44(uVar19,uVar11) ^ 0xb62478129a8d3c1b;
  uVar32 = CONCAT44(DAT_182670944,DAT_182670944);
  local_e0 = (byte)uVar22;
  uVar26 = *(ulonglong *)(lVar7 - (uVar25 ^ 0x883487c9)) ^ uVar32 ^ uVar30 ^ uVar36 ^
           *(ulonglong *)(lVar7 + -0xbb0);
  uVar34 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar7 + -0x6b8) = uVar26;
  uVar30 = (uVar26 ^ uVar32) >> ((local_e0 ^ 0x12) & 0x3f);
  uVar20 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar32 = (uVar32 ^ uVar26) << ((local_res20 ^ 0x94) & 0x3f);
  *(ulonglong *)(lVar7 + -0xd88) = uVar30 ^ uVar34;
  uVar13 = DAT_182670a58;
  *(ulonglong *)(lVar7 + -0x4c8) = uVar32 ^ uVar20;
  uVar14 = DAT_182670918;
  uVar26 = (ulonglong)DAT_182670918;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar32 = *(ulonglong *)(lVar7 - (uVar23 ^ 0xcedd9832)) ^ uVar34 | uVar32;
  uVar20 = uVar32 ^ uVar35;
  uVar34 = CONCAT44(DAT_182670934,DAT_182670934);
  *(ulonglong *)(lVar7 + -0xc18) = uVar20;
  uVar13 = DAT_1826708cc;
  lVar8 = DAT_1826707a0;
  uVar42 = CONCAT44(uVar14,uVar14);
  uVar20 = uVar42 ^ uVar35 ^ uVar40 ^ uVar20 ^ *puVar1;
  uVar32 = (*(ulonglong *)(lVar7 - (uVar31 ^ 0x163e2a0c)) ^ uVar36) - uVar32 ^ uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar20;
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar8 + -0x660) = uVar32;
  *(ulonglong *)(lVar8 + -0xce0) = (uVar20 >> 0x20 ^ uVar26) >> 0x14 ^ uVar35;
  uVar15 = DAT_182670b08;
  *(ulonglong *)(lVar8 + -0x7d8) = uVar30 + (CONCAT44(uVar9,uVar11) ^ 0x92c8d7ac4e58d2e8);
  uVar13 = DAT_1826709f8;
  uVar26 = (*(ulonglong *)(lVar8 - (uVar27 ^ 0x5712219b)) ^ uVar42) << 0xc;
  *(ulonglong *)(lVar8 + -0x5c0) = uVar26 ^ CONCAT44(uVar15,uVar15);
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar26 = *(ulonglong *)(lVar8 - (uVar31 ^ 0x163e2d5c)) ^ uVar35 | uVar26;
  *(uint *)(lVar8 + -0xcec) = (DAT_1826707b8 ^ 0xb95f7bcc) + *(int *)(lVar8 + -0x540);
  uVar13 = _DAT_1826709e0;
  *(ulonglong *)(lVar8 + -0xf0) = uVar26 ^ uVar37;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar20 = *(ulonglong *)(lVar8 - (uVar29 ^ 0xbc213b9e));
  *(undefined8 *)(lVar8 + -0x1b8) = 0xf6f77ff6b75b6d7f;
  uVar13 = DAT_182670884;
  *(ulonglong *)(lVar8 + -0x658) = (uVar20 ^ uVar40) - uVar26 ^ uVar30;
  lVar7 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x68cec22)) =
       uVar32 ^ uVar35 ^ uVar34 ^ uVar43 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38);
  uVar36 = uVar35 ^ *(ulonglong *)(lVar7 + -0x118);
  uVar26 = uVar36 >> ((bVar5 ^ 0x83) & 0x3f);
  uVar36 = uVar36 << 7;
  uVar20 = CONCAT44(DAT_182670878,DAT_182670878);
  *(ulonglong *)(lVar7 + -0x890) = uVar26 ^ CONCAT44(DAT_182670af0,DAT_182670af0);
  *puVar2 = uVar36 ^ uVar20;
  uVar36 = uVar36 | uVar26;
  uVar20 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar40 = uVar36 ^ uVar20;
  uVar32 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar7 + -0x6f0) = uVar40;
  uVar14 = DAT_182670814;
  uVar26 = (ulonglong)DAT_182670814;
  uVar42 = CONCAT44(DAT_182670814,DAT_182670814);
  *puVar3 = (*(ulonglong *)(lVar7 + -0x660) ^ uVar34) - uVar36 ^ uVar32;
  uVar13 = DAT_182670930;
  uVar20 = uVar42 ^ uVar20 ^ uVar30 ^ uVar40 ^ *(ulonglong *)(lVar7 + -0x658);
  *(ulonglong *)(lVar7 + -0xb70) = uVar20;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 - (uVar38 ^ 0xed3a0f44)) =
       (uVar26 << 0x12 | (ulonglong)(uVar14 >> 0xe)) ^ uVar20 >> 0xe ^ uVar34;
  uVar20 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar7 - (uVar38 ^ 0xed3a0034)) =
       (uVar42 ^ *(ulonglong *)(lVar7 + -0xb70)) << (((byte)(uVar12 >> 0x18) ^ 0x8e) & 0x3f) ^
       uVar20;
  uVar16 = DAT_182670a54;
  uVar13 = DAT_182670a48;
  uVar42 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar7 - (uVar25 ^ 0x88348ac9)) =
       (uVar20 ^ *(ulonglong *)(lVar7 + -0x6b8) | uVar34 ^ *(ulonglong *)(lVar7 + -0x9c8)) ^ uVar42;
  uVar20 = (uVar30 ^ *(ulonglong *)(lVar7 + -0x658)) -
           (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar7 + -0x400));
  uVar26 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar7 + -0xbb0) = uVar20 ^ CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar15 = DAT_182670a38;
  uVar13 = DAT_182670810;
  *(ulonglong *)(lVar7 + -0xc18) = uVar20 - (uVar42 ^ *(ulonglong *)(lVar7 + -0x4c8)) ^ uVar26;
  uVar30 = CONCAT44(uVar13,uVar13);
  uVar20 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar7 - (uVar31 ^ 0x163e2c34)) =
       (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar7 + -0x438)) +
       (CONCAT44(uVar10,uVar22) ^ 0xb634e8702c74a5f3) ^ uVar30;
  uVar43 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar7 + -0x7d8) =
       (*(ulonglong *)(lVar7 - (uVar20 ^ 0x163e2574)) ^ uVar42) -
       (uVar30 ^ *(ulonglong *)(lVar7 + -0xd88)) ^ uVar43;
  uVar13 = DAT_182670ae4;
  uVar10 = DAT_1826707f0;
  uVar42 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar7 + -0x220) =
       (*(ulonglong *)(lVar7 - (uVar27 ^ 0x571222a3)) ^ uVar35) <<
       (((byte)uVar16 ^ *(byte *)(lVar7 + -0x4c8)) & 0x3f);
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x5712267b)) =
       *(ulonglong *)(lVar7 - (uVar42 ^ 0xa9f7a250)) ^ uVar35 ^ uVar32 ^ uVar37 ^
       *(ulonglong *)(lVar7 + -0xf0);
  uVar12 = DAT_1826707e0;
  lVar7 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_1826707e0;
  uVar22 = DAT_1826707e0 << 0x10 | DAT_1826707e0 >> 0x10;
  uVar40 = (ulonglong)DAT_1826707e0;
  bVar6 = (byte)(DAT_1826707e0 >> 0x10);
  uVar37 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar30 = CONCAT44(DAT_18267093c,DAT_18267093c);
  DAT_1826707ec = uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       (uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0)) >> ((bVar6 ^ 0x4b) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar7 - (uVar40 ^ 0xbf5b0dde)) =
       (uVar35 ^ *(ulonglong *)(lVar7 + -0x5c0)) << ((bVar6 ^ 0x6b) & 0x3f) ^ uVar30;
  uVar13 = DAT_1826708d4;
  uVar36 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar34 = uVar30 ^ *puVar1 | uVar37 ^ *(ulonglong *)(lVar7 + -0xce0);
  *(ulonglong *)(lVar7 + -0x1b8) = uVar34 ^ uVar36;
  *(ulonglong *)(lVar7 + -0xd38) =
       CONCAT44(uVar22,uVar12) ^ uVar35 ^ *(ulonglong *)(lVar7 + -0x5c0) ^ 0x5199f5482baaf62;
  uVar30 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar41 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar7 + -0x890) =
       (uVar32 ^ *puVar3) -
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar22 ^ 0x856b96b)) ^ CONCAT44(uVar13,uVar13)) ^ uVar30;
  lVar8 = DAT_1826707a0;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar22 ^ 0x856bb7b)) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0xbf5b00c6)) ^ uVar30) - uVar34 ^ uVar41;
  uVar13 = DAT_182670a1c;
  *(int *)(lVar7 + -0xa34) = *(int *)(lVar7 + -0x140) << 0x1c;
  uVar15 = DAT_182670a9c;
  uVar30 = (CONCAT44(uVar12,uVar33) ^ 0x40a4f7a912c5f97c) -
           (*(ulonglong *)(lVar7 - (uVar25 ^ 0x88348b59)) ^ CONCAT44(uVar13,uVar13));
  *(ulonglong *)(lVar7 + -0x660) = uVar30 ^ CONCAT44(DAT_1826708e8,DAT_1826708e8);
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar8 + -0x6f0) =
       (*(ulonglong *)(lVar8 - (uVar39 ^ 0x68cec82)) ^ uVar36) + uVar30 ^ uVar32;
  *(uint *)(lVar8 - (uVar29 ^ 0xbc2132fa)) = (uVar22 ^ 0x2c7768bf) * -0x6db3b1eb;
  uVar16 = DAT_182670a98;
  uVar30 = CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar29 = uVar30 ^ uVar32 ^ uVar26 ^ *(ulonglong *)(lVar8 + -0xc18) ^
           *(ulonglong *)(lVar8 + -0x6f0);
  *(ulonglong *)(lVar8 + -0xb70) = uVar29;
  uVar13 = DAT_182670838;
  *(ulonglong *)(lVar8 + -0x9c8) =
       (uVar29 ^ uVar30) - (CONCAT44(uVar19,uVar22) ^ 0x11c8791bd200cda1);
  lVar7 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x68ceb82)) =
       (uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0xb70)) >> (((byte)uVar11 ^ 0x36) & 0x3f) ^ uVar36;
  uVar15 = DAT_182670998;
  uVar29 = (uVar30 ^ *(ulonglong *)(lVar7 + -0xb70)) << 0x20;
  *(ulonglong *)(lVar7 + -0x658) = uVar29 ^ CONCAT44(DAT_182670920,DAT_182670920);
  uVar29 = uVar36 ^ *(ulonglong *)(lVar7 + -0x6b8) | uVar29;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar7 + -0xbb0) = uVar29 ^ uVar34;
  *(uint *)(lVar7 + -0xa34) = *(int *)(lVar7 + -0x540) - (uVar10 ^ 0xe8094de8);
  uVar15 = DAT_18267087c;
  uVar10 = DAT_1826707bc;
  uVar35 = (ulonglong)DAT_1826707bc;
  uVar30 = (ulonglong)DAT_1826707c0;
  puVar24 = (ulonglong *)(lVar7 - (uVar40 ^ 0xbf5b044e));
  *(ulonglong *)(lVar7 + -0x118) = (uVar26 ^ *puVar24) - uVar29 ^ uVar36;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar7 + -0x4c8) =
       *(ulonglong *)(lVar7 - (uVar30 ^ 0x163e2664)) ^ uVar29 ^ uVar41 ^ uVar43 ^ *puVar2;
  *(ulonglong *)(lVar7 - (uVar42 ^ 0xa9f7a660)) =
       (uVar32 ^ *(ulonglong *)(lVar7 + -0x6f0)) <<
       (((byte)uVar13 ^ *(byte *)(lVar7 + -0x6b8)) & 0x3f);
  uVar30 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(lVar7 + -0xf0) =
       (uVar29 ^ *(ulonglong *)(lVar7 + -0x4c8)) >> (((byte)uVar10 ^ 0xdc) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar22 ^ 0x856b3bb)) =
       CONCAT44(uVar33,uVar33) ^ 0x2a50d12732f8c26f;
  uVar26 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar7 - (uVar25 ^ 0x88348b89)) =
       (uVar29 ^ *(ulonglong *)(lVar7 + -0x4c8)) << ((bVar5 ^ 0x9a) & 0x3f) ^ uVar26;
  uVar13 = DAT_182670b14;
  *(ulonglong *)(lVar7 + -0x5c0) =
       (CONCAT44(uVar19,uVar33) ^ 0x2bcda504c9c2a0de) >>
       (((byte)uVar16 ^ *(byte *)(lVar7 + -0xb70)) & 0x3f);
  lVar8 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar29 = *puVar1 ^ uVar26 | *(ulonglong *)(lVar7 + -0xf0) ^ uVar30;
  uVar26 = uVar29 ^ uVar32;
  *(ulonglong *)(lVar7 + -0xd38) = uVar26;
  *puVar3 = CONCAT44(uVar9,uVar19) ^ 0x25108d57fc9116cd;
  uVar13 = DAT_182670974;
  uVar30 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar8 + -0x890) =
       (*(ulonglong *)(lVar8 - (uVar35 ^ 0xbfffa1dc)) ^ uVar41) - uVar29 ^ uVar30;
  *(ulonglong *)(lVar8 + -0x1b8) = uVar29 << ((byte)*(undefined8 *)(lVar8 + -0x220) & 0x3f);
  uVar29 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar10 ^ 0xbfffa39c)) =
       uVar36 ^ uVar26 ^ uVar29 ^ uVar32 ^ *(ulonglong *)(lVar8 + -0x118);
  uVar13 = DAT_182670954;
  uVar32 = (*(ulonglong *)(lVar8 - (uVar27 ^ 0x571225db)) ^ uVar29) >> ((bVar21 ^ 0x81) & 0x3f);
  *(ulonglong *)(lVar8 + -0x9c8) = uVar32 ^ CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar15 = DAT_18267095c;
  uVar26 = CONCAT44(uVar13,uVar13);
  uVar29 = (*(ulonglong *)(lVar8 - (uVar23 ^ 0xcedd93da)) ^ uVar29) <<
           (((byte)uVar11 ^ 0x10) & 0x3f);
  *(ulonglong *)(lVar8 + -0x658) = uVar29 ^ uVar26;
  uVar13 = DAT_182670a20;
  uVar27 = CONCAT44(uVar15,uVar15);
  *puVar24 = (uVar29 | uVar32) ^ uVar27;
  *(longlong *)(lVar8 + -0x7d8) = -0x3d0b4365a0bba9ca << ((bVar6 ^ 0x58) & 0x3f);
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar29 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar8 + -0x6f0) =
       (*(ulonglong *)(lVar8 - (uVar38 ^ 0xed3a0794)) ^ uVar36) -
       (*(ulonglong *)(lVar8 - (uVar31 ^ 0x163e2da4)) ^ uVar27) ^ uVar32;
  *(ulonglong *)(lVar8 - (uVar29 ^ 0x163e2704)) =
       *(ulonglong *)(lVar8 - (uVar23 ^ 0xcedd9e0a)) ^ uVar34 ^ *(ulonglong *)(lVar8 + -0x890) ^
       uVar26 ^ uVar30;
  uVar15 = DAT_182670a60;
  uVar13 = DAT_18267091c;
  uVar27 = (uVar26 ^ *(ulonglong *)(lVar8 + -0x6b8)) >> ((bVar21 ^ 0xad) & 0x3f);
  uVar29 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  uVar26 = (uVar26 ^ *(ulonglong *)(lVar8 + -0x6b8)) << (((byte)DAT_1826707d0 ^ 0x2d) & 0x3f);
  *(ulonglong *)(lVar8 + -0xce0) = uVar27 ^ CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar8 + -0x4c8) = uVar26 ^ uVar29;
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar29 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar8 + -0xb70) = (uVar27 | uVar26) ^ uVar34;
  *(ulonglong *)(lVar8 - (uVar20 ^ 0xbf5b0d96)) =
       *(ulonglong *)(uVar29 ^ *(ulonglong *)(lVar8 + -0x1e8)) ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar8 - (uVar25 ^ 0x88348ef1)) =
       (*(ulonglong *)(lVar8 + -0x890) ^ uVar30) - (uVar34 ^ *(ulonglong *)(lVar8 + -0xb70)) ^
       uVar37;
  uVar13 = DAT_1826709d0;
  *(ulonglong *)(lVar8 - (uVar39 ^ 0x68ce8b2)) =
       uVar28 ^ *(ulonglong *)(lVar8 + -0x6f0) ^ uVar34 ^ uVar32 ^ *(ulonglong *)(lVar8 + -0xb70);
  *puVar3 = (*puVar1 ^ uVar28) >> (((byte)DAT_1826707c4 ^ 0xef) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *puVar2 = CONCAT44(uVar18,uVar10) ^ CONCAT44(uVar12,uVar11) ^ 0xb4bce4b9a624a4e2;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar4 ^ uVar33;
  return;
}



############ FUN_ 180d32c90 size=5491 ############

void FUN_180d32c90(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  int iVar13;
  int iVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  uint uVar41;
  ulonglong uVar43;
  ulonglong uVar44;
  longlong *plVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte local_118;
  byte local_f0;
  byte local_e8;
  ulonglong uVar42;
  
  iVar14 = DAT_182670adc;
  iVar13 = DAT_182670ab4;
  uVar11 = DAT_1826707f4;
  uVar9 = DAT_1826707e4;
  uVar5 = DAT_1826707d0;
  uVar3 = DAT_1826707bc;
  lVar1 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707e4;
  uVar47 = (ulonglong)DAT_1826707f4;
  uVar39 = (ulonglong)DAT_1826707d0;
  uVar52 = (ulonglong)DAT_1826707bc;
  DAT_1826707cc = DAT_1826707e4 + DAT_1826707f4;
  uVar41 = DAT_1826707d0 + DAT_1826707bc;
  uVar42 = (ulonglong)uVar41;
  uVar31 = DAT_182670adc + DAT_182670ab4;
  uVar18 = DAT_182670818 >> 0x18;
  uVar50 = *(uint *)(&DAT_18260f758 + DAT_182670c70) ^ DAT_1826707cc;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670c70) ^ DAT_1826707e4;
  uVar44 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar20 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar21 = CONCAT44(DAT_182670840,DAT_182670840);
  DAT_1826707b8 = uVar41;
  *(ulonglong *)(DAT_1826707a0 + -0x630) =
       *(ulonglong *)(uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0x58)) ^ uVar20 ^ uVar44;
  uVar17 = DAT_182670a90;
  lVar2 = DAT_1826707a0;
  DAT_182670908 = ((uVar18 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  plVar45 = (longlong *)(lVar1 - ((ulonglong)uVar11 ^ 0xa49cce1f));
  uVar49 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar22 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(DAT_1826707a0 + -0x3d0) =
       *plVar45 + 0x18 + (CONCAT44(uVar5,uVar41) ^ 0x64005100ad39e4ae) * 0xa8 ^ uVar49;
  uVar36 = CONCAT44(iVar14,iVar14);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x640050b8)) =
       (CONCAT44(uVar11,uVar41) ^ 0x70a970f54064c8f2) <<
       (((byte)uVar17 ^ *(byte *)(lVar2 + -0xd88)) & 0x3f);
  uVar18 = DAT_182670860;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xd8d1b3e4)) ^ uVar49) ^
       uVar36 ^ uVar44;
  uVar4 = DAT_1826707cc;
  uVar17 = uVar31 & 0xff;
  uVar43 = (ulonglong)DAT_1826707cc;
  DAT_18267090c = ((uVar31 * 0x100 | uVar17) << 8 | uVar17) << 8 | uVar17;
  uVar26 = (ulonglong)DAT_18267090c;
  uVar37 = CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar32 = CONCAT44(iVar13,iVar13);
  uVar46 = CONCAT44(uVar18,uVar18);
  puVar35 = (ulonglong *)
            (*plVar45 + 8 +
            ((CONCAT44(uVar9,uVar11) ^ 0xd8d1b034a49cc9d7) * 0x15 +
            (CONCAT44(uVar41,DAT_1826707cc) ^ 0xad39e4ae7d6e7a08)) * 8);
  *(ulonglong *)(DAT_1826707a0 + -0x58) = (ulonglong)puVar35 ^ uVar37;
  lVar2 = DAT_1826707a0;
  lVar1 = *(longlong *)(DAT_1826707a0 + -0x7c8);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = *puVar35 ^ uVar32 ^ uVar44;
  *(int *)(lVar2 + -0x7e4) = *(int *)(lVar2 + -0xc0c) * *(int *)(lVar2 + -0xaf0);
  puVar35 = (ulonglong *)
            (lVar1 + ((CONCAT44(uVar4,uVar5) ^ 0x7d6e7a0b64005100) * 0x15 +
                     (CONCAT44(uVar11,uVar3) ^ 0xa49cc9d7493993aa) + 1) * 8);
  *(ulonglong *)(lVar2 + -0xb50) = (ulonglong)puVar35 ^ uVar46;
  uVar19 = *puVar35;
  *(ulonglong **)(lVar2 + -0x310) = (ulonglong *)(lVar1 + 0x90);
  *(ulonglong *)(lVar2 + -0x438) = uVar19 ^ uVar20 ^ uVar44;
  uVar51 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar19 = uVar51 ^ uVar44 ^ *(ulonglong *)(lVar1 + 0x90);
  uVar17 = uVar18 ^ DAT_182670b0c ^ (uint)uVar19;
  *(ulonglong *)(DAT_1826707a0 + -0x68) = uVar19;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0x49399416)) =
       lVar1 + 0x90 +
       ((CONCAT44(uVar9,uVar4) ^ 0xd8d1b0347d6e7a0b) * 0x15 +
       (CONCAT44(uVar11,uVar4) ^ 0xa49cc9d77d6e7a0a)) * 8;
  uVar18 = uVar17 & 0xff;
  *(int *)(lVar2 + -0x9ec) = *(int *)(lVar2 - (uVar52 ^ 0x4939917a)) + *(int *)(lVar2 + -0xc04);
  DAT_182670a00 = ((uVar17 << 8 | uVar18) << 8 | uVar18) << 8 | uVar18;
  uVar27 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x64005de0)) = **(ulonglong **)(lVar2 + -0x7b8) ^ uVar27 ^ uVar44
  ;
  uVar18 = DAT_182670b00;
  puVar35 = (ulonglong *)
            (*(longlong *)(lVar2 - (uVar42 ^ 0xad39e366)) + 0x90 +
            ((CONCAT44(uVar41,uVar5) ^ 0xad39e4ae64005100) * 0x15 +
            (CONCAT44(uVar9,uVar3) ^ 0xd8d1b034493993ac)) * 8);
  uVar28 = (ulonglong)DAT_182670b00;
  *(ulonglong **)(lVar2 + -0x7b8) = puVar35;
  uVar8 = DAT_18267089c;
  uVar53 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar2 + -0x588) = *(ulonglong *)(uVar46 ^ *(ulonglong *)(lVar2 + -0xb50)) ^ uVar44;
  uVar19 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xd8d1b5bc)) = *puVar35 ^ uVar19 ^ uVar44;
  *(ulonglong *)(lVar2 - (uVar42 ^ 0xad39efde)) =
       CONCAT44(uVar11,uVar4) ^ 0x37733b2360fb45d2 | *(ulonglong *)(lVar2 + -0x118);
  uVar24 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(ulonglong *)(lVar2 + -0xb70) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x400)) -
       (*(ulonglong *)(lVar2 - (uVar43 ^ 0x7d6e7cb3)) ^ uVar32) ^ uVar53;
  uVar8 = DAT_182670854;
  *(ulonglong *)(lVar2 + -0x118) = **(ulonglong **)(lVar2 - (uVar34 ^ 0xd8d1b324)) ^ uVar44;
  uVar25 = CONCAT44(uVar8,uVar8);
  puVar35 = (ulonglong *)(lVar2 - (uVar39 ^ 0x64005018));
  *(ulonglong *)(lVar2 + -0x400) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0x64005168)) ^ uVar51) +
       (*(ulonglong *)(lVar2 + -0x438) ^ uVar20) ^ uVar25;
  *puVar35 = (uVar22 ^ *(ulonglong *)(lVar2 + -0xd88)) -
             (*(ulonglong *)(lVar2 - (uVar47 ^ 0xa49ccdd7)) ^ uVar25) ^ uVar32;
  uVar8 = DAT_1826708b8;
  puVar40 = (ulonglong *)(lVar2 - (uVar42 ^ 0xad39e84e));
  uVar33 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar23 = (*(ulonglong *)(lVar2 - (uVar43 ^ 0x7d6e7cfb)) ^ uVar33) + (uVar27 ^ *puVar40);
  *(ulonglong *)(lVar2 + -0xd88) = uVar23 ^ uVar27;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x2b0) = (uVar29 ^ *(ulonglong *)(lVar2 + -0xf0)) - uVar23 ^ uVar49;
  uVar23 = (CONCAT44(uVar3,uVar9) ^ 0xb6c66c51272e4fda) + *(longlong *)(DAT_1826707a0 + -0x890);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar23 ^ uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       (CONCAT44(uVar5,uVar11) ^ 0x5c04d7263c0a61f2) >> (((byte)uVar17 ^ (byte)*puVar40) & 0x3f);
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xad39ec3e)) =
       uVar23 - (*(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xa49ccfe7)) ^ uVar20) ^ uVar29;
  *(ulonglong *)(lVar1 + -0xd38) =
       *(ulonglong *)(lVar1 - (uVar43 ^ 0x7d6e717b)) ^ uVar29 ^ *(ulonglong *)(lVar1 + -0x890);
  *(ulonglong *)(lVar1 - (uVar52 ^ 0x49399b3e)) =
       (*(ulonglong *)(lVar1 + -0xf0) ^ uVar36) + (uVar32 ^ *(ulonglong *)(lVar1 + -0x118));
  *(ulonglong *)(lVar1 - (uVar42 ^ 0xad39e45e)) =
       *(ulonglong *)(lVar1 + -0xd38) >> 0x20 ^ uVar28 ^ uVar27;
  *(ulonglong *)(lVar1 - (uVar34 ^ 0xd8d1bd0c)) =
       ((uVar53 ^ *(ulonglong *)(lVar1 + -0xd38)) << 0x20 | *(ulonglong *)(lVar1 + -0xf0) ^ uVar27)
       ^ uVar53;
  *(ulonglong *)(lVar1 + -0xf0) =
       CONCAT44(uVar41,uVar41) ^ uVar51 ^ *(ulonglong *)(lVar1 + -0x68) ^ 0xc24c31dba87e00e0;
  *(ulonglong *)(lVar1 + -0x890) =
       (uVar53 ^ *(ulonglong *)(lVar1 + -0xb70)) - (uVar53 ^ *(ulonglong *)(lVar1 + -0xd38)) ^
       uVar37;
  bVar15 = (byte)DAT_1826707dc;
  uVar23 = *(ulonglong *)(lVar1 - (uVar42 ^ 0xad39e61e)) ^ uVar51 ^ uVar32 ^ uVar49 ^
           *(ulonglong *)(lVar1 + -0x118);
  *(ulonglong *)(lVar1 + -0xf0) = uVar23;
  uVar18 = DAT_1826707d4;
  *(ulonglong *)(lVar1 + -0xb70) = (uVar23 ^ uVar51) >> ((bVar15 ^ 0x3b) & 0x3f) ^ uVar33;
  uVar31 = DAT_1826707c4;
  uVar30 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar18 ^ 0xdcb44cd3)) =
       (uVar23 ^ uVar51) << (((byte)uVar9 ^ 0x14) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar1 - (uVar52 ^ 0x4939935e)) =
       (*(ulonglong *)(lVar1 - (uVar52 ^ 0x493992b6)) ^ uVar30 |
       uVar33 ^ *(ulonglong *)(lVar1 + -0xb70)) ^ uVar51;
  puVar40 = (ulonglong *)(lVar1 - ((ulonglong)DAT_1826707a8 ^ 0x4227cc99));
  *(ulonglong *)(lVar1 + -0xb70) =
       (uVar49 ^ *puVar40) - (*(ulonglong *)(lVar1 - ((ulonglong)uVar31 ^ 0x1488c126)) ^ uVar51) ^
       uVar46;
  uVar8 = DAT_1826707ec;
  *(ulonglong *)(lVar1 + -0x118) =
       *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e8 ^ 0xba5174e2)) ^
       *(ulonglong *)(lVar1 + -0xf0) ^ uVar51 ^ uVar37 ^ uVar49;
  uVar18 = DAT_1826707ac;
  uVar54 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  puVar38 = (ulonglong *)(lVar1 - (uVar43 ^ 0x7d6e78bb));
  *puVar38 = (uVar49 ^ *puVar35) >> (((byte)uVar8 ^ 0xc5) & 0x3f) ^ uVar54;
  uVar7 = DAT_1826707d8;
  uVar6 = DAT_1826707d4;
  uVar17 = DAT_1826707b4;
  lVar1 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707d8;
  uVar23 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0xdd5cdb2c)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0x7e915abb)) ^ uVar49) <<
       (((byte)uVar18 ^ 0xa5) & 0x3f) ^ uVar53;
  *(ulonglong *)(lVar1 - (uVar27 ^ 0xf182d88)) =
       (*(ulonglong *)(lVar1 - (uVar23 ^ 0xdcb44d3b)) ^ uVar53 | uVar54 ^ *puVar38) ^ uVar19;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (*(ulonglong *)(lVar1 - (uVar34 ^ 0xd8d1b8a4)) ^ uVar37) -
       (uVar19 ^ *(ulonglong *)(lVar1 + -0x118)) ^ uVar20;
  lVar2 = DAT_1826707a0;
  local_e8 = (byte)uVar3;
  uVar49 = *(ulonglong *)(lVar1 - (uVar42 ^ 0xad39e996)) ^
           *(ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0xdd5cd0ac)) ^ uVar53 ^ uVar46;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar49 ^ uVar37;
  uVar23 = uVar49 >> ((local_e8 ^ 0xb8) & 0x3f);
  *(ulonglong *)(lVar2 + -0x890) = uVar23 ^ uVar51;
  uVar8 = DAT_182670a10;
  uVar49 = uVar49 << (((byte)uVar31 ^ 0xfc) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd38) = uVar49 ^ uVar36;
  uVar17 = DAT_1826707dc;
  uVar51 = CONCAT44(uVar8,uVar8);
  uVar49 = uVar49 | uVar23;
  *(ulonglong *)(lVar2 + -0xf0) = uVar49 ^ uVar51;
  uVar3 = DAT_1826707f0;
  uVar28 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xdcb4455b)) =
       (*(ulonglong *)(lVar2 - (uVar28 ^ 0xb649b09d)) ^ uVar46) - uVar49 ^ uVar33;
  uVar8 = DAT_1826709f4;
  uVar18 = DAT_1826707c8;
  uVar49 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar51 = *(ulonglong *)(lVar2 + -0xf0) ^ uVar20 ^ *(ulonglong *)(lVar2 + -0x2b0) ^ uVar49 ^ uVar51
  ;
  uVar48 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar2 + -0xd38) = uVar51;
  local_118 = (byte)uVar11;
  uVar23 = (uVar51 ^ uVar49) >> ((local_118 ^ 0xf9) & 0x3f);
  bVar15 = (byte)uVar17;
  *(ulonglong *)(lVar2 + -0xb70) = uVar23 ^ uVar48;
  lVar1 = DAT_1826707a0;
  uVar23 = (uVar51 ^ uVar49) << ((bVar15 ^ 9) & 0x3f) | uVar23;
  uVar51 = CONCAT44(uVar8,uVar8);
  puVar35 = (ulonglong *)(DAT_1826707a0 + -0x2b0);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar23 ^ uVar51;
  *(ulonglong *)(lVar1 + -0xf0) = (uVar20 ^ *puVar35) - uVar23 ^ uVar54;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xf182e20)) =
       (CONCAT44(uVar7,uVar7) ^ 0xae8df30d30b7a84e) - (uVar19 ^ *(ulonglong *)(lVar1 + -0x118));
  uVar6 = DAT_182670a90;
  uVar27 = (ulonglong)DAT_182670a90;
  uVar23 = *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x234bbaa4)) ^ uVar33 ^ uVar19 ^ uVar22 ^
           *(ulonglong *)(lVar2 + -0x118);
  *(ulonglong *)(lVar2 + -0x2b0) = uVar23;
  *(ulonglong *)(lVar2 + -0x118) =
       (uVar27 << 0x14 | (ulonglong)(uVar6 >> 0xc)) ^ uVar23 >> 0xc ^ uVar30;
  uVar22 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x38d9d5ab)) ^ uVar22) << 0x34;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar22 ^ uVar53;
  uVar12 = DAT_1826709f0;
  uVar22 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x234bb32c)) ^ uVar30 | uVar22) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar22;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 + -0x118) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x890)) - (uVar21 ^ *puVar40) ^ uVar30;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar54 ^ *(ulonglong *)(lVar2 + -0xf0) ^ uVar21 ^ uVar22 ^ uVar30
  ;
  uVar10 = DAT_182670a38;
  uVar8 = DAT_1826707e0;
  uVar49 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar27 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xb649b05d)) ^ uVar30) >>
           ((bVar15 ^ 2) & 0x3f);
  *(ulonglong *)(lVar2 + -0x890) = uVar27 ^ uVar49;
  local_f0 = (byte)uVar4;
  uVar23 = (*(ulonglong *)(lVar2 - (uVar42 ^ 0xad39ef1e)) ^ uVar30) << ((local_f0 ^ 0x2c) & 0x3f);
  uVar21 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar23 ^ CONCAT44(uVar10,uVar10);
  uVar18 = DAT_1826707b4;
  uVar22 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 + -0xb70) ^ uVar48) >>
       ((*(byte *)(lVar2 - (uVar21 ^ 0xba517ec2)) ^ (byte)uVar10) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar22 ^ 0x7e915dfb)) = (uVar27 | uVar23) ^ uVar20;
  *(ulonglong *)(lVar2 + -0xb70) = CONCAT44(uVar5,DAT_1826707b0) ^ 0x10891147aefbb664;
  uVar10 = DAT_182670888;
  uVar21 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0x640051f0)) ^ uVar54) -
           (uVar36 ^ *(ulonglong *)(lVar2 + -0x1b8));
  *(ulonglong *)(lVar2 + -0x2b0) = uVar21 ^ CONCAT44(DAT_182670868,DAT_182670868);
  uVar54 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar2 + -0xb70) = uVar21 - (uVar20 ^ *(ulonglong *)(lVar2 + -0x658)) ^ uVar54;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xb649bb1d)) =
       (CONCAT44(uVar18,uVar3) ^ 0x337b88b771281c14) <<
       ((*(byte *)(lVar2 - ((ulonglong)DAT_1826707c8 ^ 0x234bb984)) ^ (byte)uVar12) & 0x3f);
  uVar10 = DAT_18267088c;
  uVar22 = CONCAT44(uVar4,DAT_1826707ec);
  uVar27 = CONCAT44(DAT_182670970,DAT_182670970);
  uVar19 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0x640057b8)) ^ uVar32) +
           (uVar19 ^ *(ulonglong *)(lVar2 + -0x588));
  *(ulonglong *)(lVar2 + -0x2b0) = uVar19 ^ uVar27;
  lVar1 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar21 = CONCAT44(uVar9,DAT_1826707d4);
  *(ulonglong *)(lVar2 + -0xf0) =
       *(ulonglong *)(lVar2 + -0xd38) ^ uVar37 ^ *(ulonglong *)(lVar2 + -0x118) ^ uVar30 ^ uVar51;
  *(ulonglong *)(lVar2 + -0xbb0) = (uVar20 ^ *(ulonglong *)(lVar2 + -0x658)) - uVar19 ^ uVar23;
  *(ulonglong *)(lVar2 + -0xd38) = (*(ulonglong *)(lVar2 + -0xf0) >> 0x20 ^ uVar26) >> 1 ^ uVar24;
  *(ulonglong *)(lVar2 + -0x658) =
       (uVar21 ^ 0x3f4589fd8892df89) + (*(ulonglong *)(lVar2 + -0x890) ^ uVar49);
  uVar17 = DAT_1826707c0;
  uVar21 = (ulonglong)DAT_1826707c0;
  bVar15 = (byte)DAT_1826707dc;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d8 ^ 0xf182400)) =
       (uVar22 ^ 0x94c1c2a830a1defe) + 0x1b5d419934eeb64a;
  uVar19 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e8 ^ 0xba517a2a)) =
       (*(ulonglong *)(lVar1 + -0xf0) ^ uVar37) << ((bVar15 ^ 4) & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar1 - (uVar34 ^ 0xd8d1b0c4)) =
       *(ulonglong *)(lVar1 + -0xbb0) ^ *(ulonglong *)(lVar1 + -0x890) ^ uVar23;
  uVar18 = DAT_1826707cc ^ 0xe1fc9f3;
  *(ulonglong *)(lVar1 + -0xf0) =
       (*(ulonglong *)(lVar1 - (uVar47 ^ 0xa49cc4ef)) ^ uVar24 |
       uVar19 ^ *(ulonglong *)(lVar1 + -0x658)) ^ uVar44;
  uVar19 = (ulonglong)DAT_1826707c4;
  *(uint *)(lVar1 + -0x598) = uVar18 * 0x6517787c;
  lVar1 = DAT_1826707a0;
  uVar47 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar26 = (*(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0x1488c0ce)) ^ uVar30) -
           (*(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0xad39e0ae)) ^ uVar25);
  uVar19 = (ulonglong)DAT_1826707e8;
  uVar22 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar26 ^ uVar47;
  uVar18 = DAT_1826707a8 ^ 0x61e2cacd;
  *(ulonglong *)(lVar1 + -0x658) =
       uVar26 - (*(ulonglong *)(lVar1 - (uVar19 ^ 0xba517c82)) ^ uVar44) ^ uVar22;
  *(uint *)(lVar1 - ((ulonglong)DAT_1826707d8 ^ 0xf18209c)) = uVar18 * 0x35aee605;
  uVar20 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar1 + -0x118) = -(*(ulonglong *)(lVar1 + -0x6f0) ^ uVar33) - 0x11 ^ uVar20;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x34b0dce0)) =
       0x409005b23ebe1b4c - (CONCAT44(uVar8,uVar8) ^ 0x32e66c32818dfb3d);
  uVar26 = (ulonglong)DAT_1826707b0;
  uVar19 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xd7c9919c)) =
       (*(ulonglong *)(lVar1 + -0xf0) ^ uVar44) + (uVar20 ^ *(ulonglong *)(lVar1 + -0x118)) ^ uVar29
  ;
  bVar15 = (byte)DAT_1826707d4;
  uVar19 = *(ulonglong *)(lVar2 - (uVar19 ^ 0x1488caa6)) ^ uVar29 ^ *(ulonglong *)(lVar2 + -0xd38) ^
           uVar36 ^ uVar54;
  *(ulonglong *)(lVar2 + -0x118) = uVar19;
  uVar10 = DAT_1826707ec;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x7d6e7afb)) =
       (uVar36 ^ uVar19) >> ((bVar15 ^ 0xce) & 0x3f) ^ uVar23;
  lVar1 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       CONCAT44(uVar10,uVar9) ^ 0x1e7f7b7be3b8e872 | uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)
  ;
  uVar19 = (*(ulonglong *)(lVar1 - (uVar19 ^ 0x4227cf31)) ^ uVar36) << 0x3b;
  *(ulonglong *)(lVar1 + -0x660) = uVar19 ^ uVar46;
  uVar19 = *(ulonglong *)(lVar1 + -0xf0) ^ uVar23 | uVar19;
  *(ulonglong *)(lVar1 + -0x890) = uVar19 ^ uVar24;
  uVar18 = DAT_1826707ac;
  *(ulonglong *)(lVar1 + -0xd38) = (*(ulonglong *)(lVar1 + -0xb70) ^ uVar54) - uVar19 ^ uVar27;
  uVar10 = DAT_18267094c;
  *(ulonglong *)(lVar1 + -0x118) =
       CONCAT44(uVar18,uVar41) ^ 0xa5ffa9355879de69 | *(ulonglong *)(lVar1 + -0x2b0) ^ uVar27;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0xf0) =
       *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b4 ^ 0xdd5cd06c)) ^ uVar19 ^ uVar22 ^
       *(ulonglong *)(lVar1 + -0x658) ^ uVar23;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707c8 ^ 0x234bb454)) =
       CONCAT44(uVar17,uVar8) ^ 0xd13b8795a25f99e | CONCAT44(uVar31,uVar8) ^ 0xa9b034d8230110cc;
  *(ulonglong *)(lVar1 - (uVar52 ^ 0x493998de)) =
       (*(ulonglong *)(lVar1 + -0xf0) ^ uVar19) >> ((local_e8 ^ 0x8b) & 0x3f) ^ uVar53;
  *(ulonglong *)(lVar1 + -0x118) =
       CONCAT44(DAT_1826709e8,DAT_1826709e8) ^
       *(ulonglong *)(*(ulonglong *)(lVar1 + -0xb78) ^ uVar48);
  *(ulonglong *)(lVar1 - (uVar26 ^ 0xd7c99714)) =
       (*(ulonglong *)(lVar1 + -0xf0) ^ uVar19) << (((byte)uVar5 ^ 0x1b) & 0x3f) ^ uVar47;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar50;
  return;
}



############ FUN_ 180c96170 size=4339 ############

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

void FUN_180c96170(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  byte bVar11;
  byte bVar12;
  uint uVar13;
  ulonglong uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  byte *pbVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  
  uVar21 = DAT_1826709ac;
  bVar11 = (byte)DAT_1826708ec;
  uVar24 = DAT_182670818;
  uVar8 = DAT_1826707c8;
  uVar6 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707c0;
  uVar17 = (ulonglong)DAT_1826707c8;
  uVar15 = DAT_1826707c0 & DAT_1826707c8;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670d88);
  uVar13 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707c0 ^ 0x80522c50) + (longlong)DAT_182670d88) ^
           DAT_1826707c8;
  uVar25 = CONCAT44(DAT_1826707c8,uVar15);
  uVar14 = (ulonglong)uVar15;
  bVar2 = (byte)DAT_1826707c0;
  DAT_1826707dc = uVar15;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0xa1cf8e39)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0x805227f0)) >> (((byte)uVar15 ^ 0x4b) & 0x3f);
  pbVar26 = (byte *)((uVar25 ^ 0xa1cf85498042044d) + *(longlong *)(lVar3 + -0x30));
  *(uint *)(lVar3 + -0x814) = *(uint *)(lVar3 + -0x68c) ^ uVar21 ^ DAT_18267098c;
  *(uint *)(lVar3 + -0xc34) = *(uint *)(lVar3 + -0x3d4) ^ DAT_1826709f8 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x270) = (ulonglong)pbVar26 ^ (ulonglong)DAT_182670840;
  bVar12 = *pbVar26;
  *(int *)(lVar3 + -0xa34) = 0x5d163060 << ((bVar2 ^ 0x47) & 0x1f);
  bVar12 = bVar12 ^ bVar11 ^ (byte)DAT_182670adc;
  *(byte *)(lVar3 + -0xc35) = bVar12;
  uVar28 = (bVar11 ^ bVar12) ^ DAT_182670998;
  *(uint *)(lVar3 + -0x140) = uVar28;
  uVar28 = uVar28 ^ DAT_182670998;
  *(uint *)(lVar3 + -0x598) =
       (*(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0x80420874)) ^ DAT_1826709f8) + (uVar15 ^ 0x4b664963)
       ^ DAT_182670ab4;
  uVar19 = uVar28 << ((bVar2 ^ 0x51) & 0x1f) ^ DAT_182670984;
  *(uint *)(lVar3 + -0x9ec) = uVar19;
  uVar7 = DAT_1826707c4;
  uVar25 = (ulonglong)DAT_1826707c4;
  uVar19 = (*(uint *)(lVar3 - ((ulonglong)uVar8 ^ 0xa1cf80d1)) ^ DAT_182670ab4) -
           (uVar19 ^ DAT_182670984) ^ DAT_18267094c;
  *(uint *)(lVar3 + -0x8e0) = uVar19;
  uVar20 = (*(uint *)(lVar3 - ((ulonglong)uVar15 ^ 0x80420c54)) ^ uVar21) * (uVar19 ^ DAT_18267094c)
           ^ DAT_1826708c0;
  *(uint *)(lVar3 + -0xc04) = uVar20;
  uVar18 = DAT_1826708d8;
  uVar10 = DAT_1826707e0;
  uVar19 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar20 = uVar20 ^ DAT_1826708c0;
  uVar29 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       (CONCAT44(DAT_1826707a8,uVar6) ^ 0x3a3fc452abe723de) -
       (CONCAT44(uVar15,uVar7) ^ 0xf3b94b3b669efd4b);
  uVar28 = (uVar15 ^ 0x8042044d) * uVar28 ^ DAT_1826709fc;
  *(uint *)(lVar3 + -0x280) = uVar28;
  uVar20 = uVar20 + (uVar28 ^ DAT_1826709fc);
  *(uint *)(lVar3 + -0x42c) = uVar20 ^ uVar18;
  *(uint *)(lVar3 - (uVar29 ^ 0x8fc90062)) = uVar20 * 0x2000 ^ DAT_182670a30;
  *(longlong *)(lVar3 - (uVar14 ^ 0x804201c8)) =
       *(longlong *)(lVar3 + -0x660) << (((byte)uVar8 ^ 0x79) & 0x3f);
  uVar28 = DAT_182670abc ^ DAT_1826709bc;
  *(uint *)(lVar3 - ((ulonglong)uVar6 ^ 0x80522fd8)) =
       (*(uint *)(lVar3 + -0x42c) ^ uVar18) >> (((byte)uVar15 ^ 0x53) & 0x1f) ^ DAT_182670904;
  *(uint *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0xbfbfc6c6)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0xcacabc27)) ^ DAT_182670904 |
       *(uint *)(lVar3 + -0x2d4) ^ DAT_182670a30) ^ DAT_1826709bc;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x80522658)) =
       (CONCAT44(uVar19,uVar7) ^ 0x90407d71adb3014b) <<
       ((byte)*(undefined8 *)(lVar3 + -0xbb0) & 0x3f);
  uVar28 = uVar28 ^ *(uint *)(lVar3 + -0xc0c);
  uVar20 = *(uint *)(lVar3 - ((ulonglong)uVar7 ^ 0xcacab4eb)) ^ DAT_182670848;
  *(uint *)(lVar3 + -0x14) = uVar28;
  uVar20 = uVar20 + (*(uint *)(lVar3 + -0x814) ^ uVar21) ^ DAT_182670900;
  uVar21 = uVar28 ^ DAT_1826708d0 ^ DAT_182670abc;
  *(longlong *)(lVar3 + -0x1b8) =
       *(longlong *)(lVar3 + -0x410) << ((byte)*(undefined8 *)(lVar3 + -0x4c8) & 0x3f);
  *(uint *)(lVar3 + -0x7e4) = uVar20;
  uVar28 = uVar20 ^ DAT_182670ae8 ^ DAT_182670900;
  *(uint *)(lVar3 + -0x540) = uVar28;
  uVar28 = uVar28 ^ DAT_182670a90 ^ DAT_182670ae8;
  *(uint *)(lVar3 + -0x3d4) = uVar8 ^ 0x984e15dd | uVar10 ^ 0x45f14ebe;
  *(uint *)(lVar3 + -0x68c) = uVar21;
  uVar16 = (ulonglong)DAT_18267095c;
  *(uint *)(lVar3 + -0x43c) = uVar28;
  bVar12 = DAT_182670ad4;
  pbVar26 = (byte *)(*(longlong *)(lVar3 - (uVar17 ^ 0xa1cf8579)) +
                    (CONCAT44(uVar19,uVar10) ^ 0xbfbfcaca8fc902ae));
  *(ulonglong *)(lVar3 + -0x4f8) = (ulonglong)pbVar26 ^ uVar16;
  *(byte *)(lVar3 - ((ulonglong)uVar7 ^ 0xcacab38a)) = *pbVar26 ^ bVar12 ^ (byte)DAT_182670adc;
  uVar20 = DAT_182670a14;
  lVar3 = DAT_1826707a0;
  pbVar26 = (byte *)(DAT_1826707a0 + -0xc35);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       *(ulonglong *)(DAT_1826707a0 - (uVar14 ^ 0x80420e58)) ^ CONCAT44(uVar10,uVar6) ^
       0x9d6181ea7361ee85;
  *(uint *)(lVar3 + -0xa34) = (bVar12 ^ *pbVar26) ^ uVar20;
  uVar21 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707a8 ^ 0xbfbfc302)) =
       (CONCAT44(uVar15,uVar8) ^ 0x609f6caa3b40d497) + *(longlong *)(lVar3 + -0x1b8);
  *(uint *)(lVar4 - (uVar17 ^ 0xa1cf897d)) =
       (*(uint *)(lVar4 + -0x68c) ^ DAT_1826708d0) + (uVar15 ^ 0x4b664963) ^ DAT_182670888;
  uVar28 = DAT_1826707c4;
  *(ulonglong *)(lVar4 + -0x658) =
       (CONCAT44(uVar7,uVar21) ^ 0x95365266c4a5d43e) + 0x5e6088dab94641c9;
  *(uint *)(lVar4 - (uVar14 ^ 0x804201d8)) =
       (*(uint *)(lVar4 + -0xa34) ^ uVar20) << (((byte)uVar28 ^ 0xae) & 0x1f) ^ DAT_182670880;
  uVar28 = DAT_182670a48;
  uVar21 = DAT_1826707a8;
  uVar27 = *(uint *)(lVar4 + -0x43c) ^ DAT_182670a90;
  uVar14 = (ulonglong)DAT_1826707a8;
  *(uint *)(lVar4 + -0x9ec) =
       (*(uint *)(lVar4 + -0xc34) ^ DAT_182670888) - (*(uint *)(lVar4 + -0x598) ^ DAT_182670880) ^
       _DAT_1826708bc;
  uVar23 = (*(uint *)(lVar4 - (uVar14 ^ 0xbfbfc326)) ^ _DAT_1826708bc) * uVar27;
  *(ulonglong *)(lVar4 + -0x2b0) =
       (CONCAT44(uVar10,uVar6) ^ 0xad17850f5145500a) + 0x82e2317e6cd6e89f;
  *(uint *)(lVar4 + -0x8e0) = uVar23 ^ uVar28;
  uVar22 = DAT_18267092c;
  bVar12 = (byte)DAT_1826707c4;
  *(uint *)(lVar4 + -0x140) =
       (*(uint *)(lVar4 - (uVar17 ^ 0xa1cf8f7d)) ^ uVar20) * 0x18 ^ DAT_18267092c;
  uVar28 = DAT_182670b00;
  uVar23 = (*(uint *)(lVar4 - (uVar25 ^ 0xcacabeff)) ^ uVar22) + uVar23;
  *(uint *)(lVar4 + -0xc04) = uVar23 ^ DAT_182670b00;
  bVar2 = (byte)DAT_1826707c0;
  *(uint *)(lVar4 + -0x280) = uVar23 << ((bVar12 ^ 0xb2) & 0x1f) ^ _DAT_182670b10;
  uVar28 = (*(uint *)(lVar4 + -0xc04) ^ uVar28) >> ((bVar2 ^ 0x53) & 0x1f) ^ DAT_1826709a0;
  *(uint *)(lVar4 + -0x42c) = uVar28;
  *(uint *)(lVar4 + -0x2d4) =
       (*(uint *)(lVar4 - (uVar17 ^ 0xa1cf87c9)) ^ _DAT_182670b10 | uVar28 ^ DAT_1826709a0) ^ uVar24
  ;
  uVar20 = DAT_1826707bc;
  uVar28 = DAT_1826707b4;
  uVar17 = (ulonglong)DAT_1826707bc;
  uVar16 = (ulonglong)DAT_182670820;
  *(uint *)(lVar4 - ((ulonglong)uVar21 ^ 0xbfbfc952)) =
       (*(uint *)(lVar4 - ((ulonglong)DAT_1826707ac ^ 0xcacab4eb)) ^ DAT_182670848) + uVar27 ^
       uVar18;
  uVar23 = DAT_182670980;
  *(uint *)(lVar4 - (uVar29 ^ 0x8fc90aa2)) = DAT_182670a78 ^ uVar18 ^ *(uint *)(lVar4 + -0x398);
  uVar24 = *(uint *)(lVar4 + -0x2d4) ^ DAT_182670b08 ^ uVar24;
  uVar14 = CONCAT44(uVar19,DAT_1826707d4);
  *(uint *)(lVar4 + -0x7e4) = uVar24;
  uVar19 = uVar24 ^ DAT_1826708a0 ^ DAT_182670b08;
  uVar25 = CONCAT44(uVar6,DAT_1826707d8);
  *(ulonglong *)(lVar4 + -0xf0) = uVar14 ^ CONCAT44(uVar8,uVar8) ^ 0xb55232812d7a347;
  *(uint *)(lVar4 + -0x540) = uVar19;
  uVar18 = uVar20 - uVar28;
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar10,uVar21) ^ 0x3f6693a6280b8362) - (uVar25 ^ 0x5580e3a19da16cde);
  uVar19 = *(uint *)(lVar4 + -0x814) ^ uVar23 ^ DAT_182670a78;
  *(uint *)(lVar4 + -0xc0c) = uVar19;
  DAT_1826707d0 = uVar18;
  *(uint *)(lVar4 - (uVar17 ^ 0x1a6c01c)) = (uVar19 ^ uVar23) * (uVar22 ^ *(uint *)(lVar4 + -0x140))
  ;
  bVar12 = (byte)DAT_182670af4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar28 ^ 0x681cfde1)) =
       (CONCAT44(uVar20,uVar18) ^ 0x1a6c0089989c077) * 0x20 +
       (CONCAT44(uVar28,uVar20) ^ 0x681cff9101a6c00b) + *(longlong *)(lVar4 + -0x30) ^ uVar16;
  *(byte *)(lVar4 - ((ulonglong)uVar18 ^ 0x9989cc42)) =
       *(byte *)(uVar16 ^ *(ulonglong *)(lVar4 + -0x270)) ^ bVar12 ^ (byte)DAT_182670adc;
  uVar21 = (bVar12 ^ *(byte *)(lVar4 + -0xc35)) ^ DAT_182670a90;
  uVar19 = *(uint *)(lVar4 + -0x540) ^ DAT_1826708a0;
  *(uint *)(lVar4 + -0x3d4) = uVar21;
  uVar21 = uVar21 ^ DAT_182670a90;
  *(uint *)(lVar4 + -0x68c) = uVar19 + (uVar28 ^ 0xa338b2b2) ^ DAT_182670a38;
  *(ulonglong *)(lVar4 + -0xcf8) =
       (CONCAT44(uVar28,uVar20) ^ 0x4203e6c98f77379e) >> (((byte)uVar18 ^ 0x78) & 0x3f);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (CONCAT44(uVar28,uVar18) ^ 0x81aaad7f7c1abbb1) + 0x816cee149504095b;
  *(uint *)(lVar4 + -0xc34) = uVar21 << (((byte)uVar20 ^ 0x19) & 0x1f) ^ DAT_18267085c;
  *(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x1a6c590)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0x681cf91d)) ^ DAT_182670a38) -
       (*(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x1a6cc3c)) ^ DAT_18267085c) ^ DAT_1826709fc;
  uVar21 = DAT_182670ac0;
  uVar19 = DAT_18267099c;
  uVar22 = (*(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x9989cc7b)) ^ uVar23) *
           (*(uint *)(lVar4 + -0x598) ^ DAT_1826709fc) ^ DAT_182670a84;
  uVar24 = *(uint *)(lVar4 + -0x3d4) ^ DAT_182670a90;
  *(uint *)(lVar4 + -0x9ec) = uVar22;
  uVar22 = uVar22 ^ DAT_182670a84;
  uVar24 = uVar24 * (uVar18 ^ 0x9989c074);
  *(uint *)(lVar4 + -0xa34) = uVar24 ^ uVar21;
  *(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x9989c897)) = uVar22 + uVar24 ^ uVar19;
  uVar22 = DAT_182670a74;
  uVar21 = (uVar19 ^ *(uint *)(lVar4 + -0x8e0)) << (((byte)uVar20 ^ 5) & 0x1f) ^ DAT_1826709b0;
  *(uint *)(lVar4 + -0xc04) = uVar21;
  uVar21 = uVar21 ^ DAT_1826709b0;
  *(uint *)(lVar4 + -0x280) =
       (*(uint *)(lVar4 - ((ulonglong)uVar28 ^ 0x681cf771)) ^ uVar19) >>
       (((byte)uVar28 ^ 0x82) & 0x1f) ^ _DAT_1826709e0;
  uVar19 = (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) + (uVar23 ^ *(uint *)(lVar4 + -0xc0c)) ^
           DAT_182670944;
  uVar24 = DAT_182670a18 ^ DAT_182670944 ^ uVar19;
  uVar21 = (*(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x1a6c288)) ^ _DAT_1826709e0 | uVar21) ^
           DAT_182670908;
  *(ulonglong *)(lVar4 + -0x558) = *(ulonglong *)(lVar4 + -0x5c0) >> 0x39;
  *(uint *)(lVar4 + -0x43c) = uVar19;
  *(uint *)(lVar4 + -0x42c) = uVar21;
  uVar19 = uVar21 ^ DAT_182670884 ^ DAT_182670908;
  *(uint *)(lVar4 + -0x398) = uVar24;
  *(uint *)(lVar4 + -0x2d4) = uVar19;
  *(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x9989c863)) = uVar24 ^ uVar22 ^ DAT_182670a18;
  uVar19 = DAT_182670a54;
  uVar14 = (ulonglong)DAT_1826709a4;
  uVar30 = (ulonglong)DAT_1826707ac;
  uVar25 = CONCAT44(uVar20,DAT_1826707ac);
  *(ulonglong *)(lVar4 + -0x220) =
       (CONCAT44(uVar20,uVar28) ^ 0xe29156e5f630aad0) >> (((byte)uVar28 ^ 0xaf) & 0x3f);
  *(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x9989c793)) =
       *(uint *)(lVar4 - ((ulonglong)uVar18 ^ 0x9989c2a3)) ^ uVar19 ^ DAT_182670884;
  *(ulonglong *)(lVar4 + -0x890) = (uVar25 ^ 0xe0fcd69c733914f3) + 0xb4024faa0c499510;
  *(ulonglong *)(lVar4 + -0x270) =
       (CONCAT44(uVar6,uVar18) ^ 0x80522c409989c077) * 0x20 +
       *(longlong *)(lVar4 - ((ulonglong)uVar28 ^ 0x681cffa1)) + 0xe ^ uVar14;
  *(ulonglong *)(lVar4 + -0x9e0) =
       CONCAT44(uVar20,uVar28) ^ 0x1cdbaa286112bcfe | CONCAT44(uVar15,uVar7) ^ 0xe8ff68d8f73151d6;
  bVar12 = (byte)DAT_182670ad8;
  *(byte *)(lVar4 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar17 ^ 0x1a6c278)) ^ uVar14) ^ (byte)DAT_182670adc ^
       (byte)DAT_182670ad8;
  uVar5 = DAT_1826707b0;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x8fc90106)) =
       (CONCAT44(DAT_1826707b0,uVar28) ^ 0x2f6ea34a94005cd3) -
       (CONCAT44(uVar15,uVar28) ^ 0xea8cea3d0efdf1de);
  uVar24 = DAT_18267081c;
  uVar9 = DAT_1826707cc;
  uVar25 = CONCAT44(DAT_1826707b8,uVar15);
  uVar14 = CONCAT44(DAT_1826707cc,uVar20);
  *(uint *)(lVar4 + -0x140) = (*(byte *)(lVar4 - (uVar31 ^ 0x80522075)) ^ bVar12) ^ DAT_18267081c;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d4 ^ 0xc5b6d539)) =
       uVar25 ^ uVar14 ^ 0x4bc7c8a86ddb0e80;
  uVar19 = (uVar19 ^ *(uint *)(lVar4 + -0x7e4)) + (DAT_1826707c0 ^ 0x4b766163) ^ DAT_1826708f0;
  *(uint *)(lVar4 + -0x540) = (uVar24 ^ *(uint *)(lVar4 + -0x140)) << 0x11 ^ DAT_182670a0c;
  *(uint *)(lVar4 + -0x14) = uVar19;
  uVar21 = DAT_1826707e4;
  lVar3 = DAT_1826707a0;
  uVar16 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(DAT_1826707a0 + -0x548) =
       *(longlong *)(DAT_1826707a0 + -0x118) - (CONCAT44(uVar5,DAT_1826707e4) ^ 0x712fa6214e7fd88e);
  uVar19 = DAT_1826707e0;
  *(uint *)(lVar3 + -0x68c) =
       (*(uint *)(lVar3 - ((ulonglong)uVar28 ^ 0x681cff85)) ^ DAT_1826708f0) -
       (*(uint *)(lVar3 - (uVar30 ^ 0xcacabaff)) ^ DAT_182670a0c) ^ DAT_182670a98;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x5cbabfeb)) =
       (CONCAT44(uVar10,uVar18) ^ 0x45eef86cc32c3de8) >> (((byte)uVar8 ^ 0x56) & 0x3f);
  uVar23 = (*(uint *)(lVar3 + -0x814) ^ uVar22) * (*(uint *)(lVar3 + -0x68c) ^ DAT_182670a98);
  *(uint *)(lVar3 + -0xc34) = uVar23 ^ DAT_1826708fc;
  uVar18 = DAT_1826709ec;
  uVar19 = (uVar24 ^ *(uint *)(lVar3 + -0x140)) * (uVar19 ^ 0x8fc902b8);
  *(uint *)(lVar3 + -0x598) = uVar19 ^ DAT_182670800;
  uVar20 = DAT_1826709c4;
  uVar28 = DAT_1826707e8;
  uVar14 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar3 - ((ulonglong)uVar21 ^ 0xcadabc2b)) = uVar19 + uVar23 ^ uVar18;
  uVar19 = DAT_1826707c4;
  uVar18 = uVar18 ^ *(uint *)(lVar3 + -0x3d4);
  *(uint *)(lVar3 + -0x9ec) = uVar18 << (((byte)uVar9 ^ 0x9b) & 0x1f) ^ DAT_182670830;
  uVar18 = uVar18 >> (((byte)uVar19 ^ 0xac) & 0x1f);
  *(uint *)(lVar3 + -0xa34) = uVar18 ^ uVar20;
  *(uint *)(lVar3 + -0x8e0) =
       (*(uint *)(lVar3 - (uVar14 ^ 0xcacab653)) ^ DAT_182670830 | uVar18) ^ DAT_18267080c;
  uVar14 = (ulonglong)DAT_1826707d4;
  uVar20 = (*(uint *)(lVar3 - (uVar17 ^ 0x1a6c81c)) ^ uVar22) +
           (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) ^ DAT_1826709f4;
  uVar19 = DAT_182670874 ^ DAT_1826709f4;
  *(uint *)(lVar3 + -0xc04) = uVar20;
  *(uint *)(lVar3 + -0x280) = uVar19 ^ uVar20;
  uVar25 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar3 - ((ulonglong)DAT_1826707ec ^ 0x5b13f89f)) =
       *(uint *)(lVar3 - (uVar14 ^ 0xc5b6dbc9)) ^ DAT_1826708d4 ^ DAT_18267080c;
  *(uint *)(lVar3 - (uVar25 ^ 0xe273a851)) =
       *(uint *)(lVar3 - (uVar16 ^ 0x5cbab61b)) ^ DAT_182670910 ^ DAT_182670874;
  *(uint *)(lVar3 + -0x42c) = DAT_182670a34 ^ DAT_1826708d4 ^ *(uint *)(lVar3 + -0xc0c);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x8fc900c6)) =
       (CONCAT44(uVar7,uVar6) ^ 0xcacabfbf80522c59) + *(longlong *)(lVar3 + -0x30) ^
       (ulonglong)DAT_18267082c;
  uVar14 = (ulonglong)DAT_1826707a8;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar15;
  *(ulonglong *)(lVar3 - (uVar14 ^ 0xbfbfceca)) =
       CONCAT44(uVar10,uVar28) ^ 0xcb76467db927ea75 | CONCAT44(uVar8,uVar21) ^ 0xc2939e68ddb1d573;
  return;
}



############ FUN_ 180cea820 size=5338 ############

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

void FUN_180cea820(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  byte bVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  byte bVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_58;
  
  uVar15 = DAT_1826707e8;
  uVar9 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  uVar35 = (ulonglong)DAT_1826707e8;
  uVar23 = (ulonglong)DAT_1826707b8;
  uVar30 = DAT_1826707b8 ^ DAT_1826707e8;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670b2c);
  uVar20 = *(uint *)(&DAT_18260f758 + DAT_182670b2c) ^ DAT_1826707e8;
  uVar26 = (ulonglong)DAT_1826707b8;
  uVar37 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  uVar33 = CONCAT44(DAT_1826707b8,DAT_1826707e8);
  uVar43 = (ulonglong)uVar30;
  DAT_1826707f4 = uVar30;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (CONCAT44(DAT_1826709f4,DAT_1826709f4) ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) +
       (uVar33 ^ 0x3f335e006a0404e4) ^ uVar37;
  *(uint *)(lVar2 + -0x398) = (uVar30 ^ 0x57ca5c74) + *(int *)(lVar2 + -0x280);
  puVar19 = (ulonglong *)(lVar2 - (uVar26 ^ 0x851138a9));
  uVar27 = CONCAT44(DAT_1826709b4,DAT_1826709b4) ^ *(ulonglong *)(lVar2 + -0x438);
  uVar24 = CONCAT44(DAT_182670a20,DAT_182670a20);
  bVar32 = (byte)uVar15;
  *(ulonglong *)(lVar2 + -0x5c0) = (*puVar19 ^ uVar37) + uVar27 ^ uVar24;
  uVar38 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar27 << ((bVar32 ^ 0x48) & 0x3f) ^ uVar38;
  uVar21 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x9cee1547)) =
       uVar27 >> (((byte)uVar30 ^ 0x65) & 0x3f) ^ uVar21;
  uVar7 = DAT_182670874;
  uVar27 = CONCAT44(DAT_182670a24,DAT_182670a24);
  *(ulonglong *)(lVar2 + -0x658) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x410) | *(ulonglong *)(lVar2 + -0x9e0) ^ uVar38) ^ uVar27;
  uVar41 = CONCAT44(uVar7,uVar7);
  puVar22 = (ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x19ff2a86));
  *(ulonglong *)(lVar2 + -0x4c8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x19ff291e)) ^ *puVar22 ^ uVar41 ^ uVar27 ^
       uVar24;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x19ff2b66)) =
       *(ulonglong *)(lVar2 + -0x9e0) ^ uVar38 ^ uVar33 ^ 0xfb2bc2a8a0563fbf;
  uVar7 = DAT_182670940;
  uVar27 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar2 + -0x890) =
       (CONCAT44(DAT_182670854,DAT_182670854) ^ *(ulonglong *)(lVar2 + -0x548)) +
       (CONCAT44(uVar15,uVar9) ^ 0x26e0f9b88cbfa23d) ^ uVar27;
  uVar21 = CONCAT44(uVar7,uVar7);
  uVar39 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar2 + -0x1b8) =
       (CONCAT44(DAT_182670818,DAT_182670818) ^ *(ulonglong *)(lVar2 + -0x660)) +
       (CONCAT44(uVar15,uVar30) ^ 0x427d6353e445ed33) ^ uVar21;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0x9cee11a7)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x85113329)) ^ uVar39) << 0xb;
  uVar7 = DAT_182670870;
  lVar2 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  puVar34 = (ulonglong *)(lVar3 - (uVar26 ^ 0x85113561));
  *puVar34 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar30 ^ 0x9cee19c7)) ^ uVar27) +
             (*(ulonglong *)(DAT_1826707a0 + -0x1b8) ^ uVar21) ^ uVar33;
  uVar5 = DAT_1826707d4;
  uVar21 = CONCAT44(uVar7,uVar7);
  bVar25 = (byte)uVar9;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar15 ^ 0x19ff22ce)) =
       (*(ulonglong *)(lVar2 + -0x890) ^ uVar27) << (((byte)uVar30 ^ 0x47) & 0x3f) ^ uVar21;
  uVar7 = DAT_182670808;
  *(undefined4 *)(lVar2 + -0xc0c) = 0xaefe40b5;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (*(ulonglong *)(lVar2 + -0x890) ^ uVar27) >> ((bVar25 ^ 0x21) & 0x3f) ^ uVar39;
  uVar21 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xebdbb608)) ^ uVar39 |
           *(ulonglong *)(lVar2 + -0xd88) ^ uVar21) ^ CONCAT44(uVar7,uVar7);
  uVar40 = CONCAT44(DAT_182670830,DAT_182670830);
  *(ulonglong *)(lVar2 + -0x220) = uVar21;
  uVar8 = DAT_182670a2c;
  uVar21 = uVar40 ^ uVar21 ^ CONCAT44(uVar7,uVar7) ^ uVar33 ^ *puVar34;
  *(ulonglong *)(lVar2 + -0xa18) = uVar21;
  uVar17 = DAT_182670aa0;
  uVar4 = DAT_1826707b0;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 + -0x5c0) ^ uVar24) + (uVar40 ^ uVar21) ^ uVar28;
  uVar11 = DAT_1826707c4;
  uVar27 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar2 + -0xac0) = (uVar21 ^ uVar40) << (((byte)uVar4 ^ 0x35) & 0x3f) ^ uVar27;
  uVar10 = DAT_1826707bc;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x19ff24f6)) =
       (CONCAT44(uVar9,uVar30) ^ 0x4bb7b74cddec8955) <<
       (((byte)uVar7 ^ *(byte *)(lVar2 + -0x220)) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x19ff2ace)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x9cee1b4f)) ^ uVar40) >> ((bVar25 ^ 0x1d) & 0x3f)
       ^ uVar24;
  uVar7 = DAT_1826708e4;
  uVar21 = CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar24 = (uVar27 ^ *(ulonglong *)(lVar2 + -0xac0) | uVar24 ^ *(ulonglong *)(lVar2 + -0x588)) ^
           uVar21;
  *(ulonglong *)(lVar2 + -0x630) = uVar24;
  uVar8 = DAT_182670928;
  uVar13 = DAT_1826707dc;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x85113801)) ^ uVar29 ^ uVar24 ^ uVar21 ^ uVar28;
  uVar7 = DAT_1826707b4;
  uVar4 = DAT_1826707a8;
  uVar21 = *(ulonglong *)(lVar2 + -0x4c8) ^ uVar41;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x438) = (uVar33 ^ *(ulonglong *)(lVar2 + -0xb70)) + uVar21 ^ uVar26;
  uVar6 = DAT_1826707e0;
  bVar18 = (byte)DAT_1826707e0;
  uVar35 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar2 + -0x410) = uVar21 << ((bVar32 ^ 0x7f) & 0x3f) ^ uVar35;
  uVar8 = DAT_182670910;
  *(ulonglong *)(lVar2 + -0x658) =
       (CONCAT44(uVar13,uVar7) ^ 0x8b0eeed700fd013a) << ((bVar18 ^ 0x57) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0x851137f1)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x9cee159f)) ^ uVar41) >>
       (((byte)uVar10 ^ 0xc6) & 0x3f) ^ uVar24;
  uVar12 = DAT_1826707d0;
  uVar21 = CONCAT44(DAT_18267096c,DAT_18267096c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xebdbbbe0)) =
       (uVar24 ^ *(ulonglong *)(lVar2 + -0x9e0) | uVar35 ^ *(ulonglong *)(lVar2 + -0x410)) ^ uVar21;
  uVar5 = DAT_1826707cc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xfb8c8663)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x30c1c74c)) ^ uVar21 ^ uVar26 ^ uVar40 ^
       *(ulonglong *)(lVar2 + -0x438);
  uVar21 = uVar40 ^ *(ulonglong *)(lVar2 + -0x548);
  uVar39 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar2 + -0x660) = (uVar28 ^ *(ulonglong *)(lVar2 + -0x610)) + uVar21 ^ uVar39;
  uVar14 = DAT_1826707e4;
  uVar31 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0xf9f3352)) = uVar21 << ((bVar25 ^ 6) & 0x3f) ^ uVar31
  ;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xd0b9e6f0)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0x30c1c624)) ^ uVar40 |
       CONCAT44(uVar14,uVar10) ^ 0x47b7a12d5b368b24;
  uVar16 = DAT_1826708c0;
  uVar6 = DAT_1826707b0;
  uVar5 = DAT_1826707ac;
  uVar36 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar27 = (ulonglong)DAT_1826707b0;
  uVar35 = CONCAT44(DAT_1826707d4,uVar10);
  uVar42 = (ulonglong)DAT_1826708c0;
  uVar21 = CONCAT44(DAT_1826707ac,uVar15);
  uVar24 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar2 + -0x1b8) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x548)) >> (((byte)uVar7 ^ 0x2c) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x712fa738)) =
       (uVar35 ^ 0xb91591b8012f0c54) - (uVar21 ^ 0x6ad5d807a9253a2);
  uVar15 = DAT_1826707f0;
  lVar3 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_18267098c,DAT_18267098c);
  bVar18 = (byte)DAT_1826707e8;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0xf9f33e2)) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0x2c6543b9)) ^ uVar36 |
       *(ulonglong *)(lVar2 + -0xd38) ^ uVar31) ^ uVar24;
  uVar21 = *(ulonglong *)(lVar3 + -0x6b8);
  *(ulonglong *)(lVar2 + -0x9c8) =
       *(ulonglong *)(lVar2 + -0xd88) ^ *(ulonglong *)(lVar2 + -0x660) ^ CONCAT44(uVar16,uVar16) ^
       uVar24 ^ uVar39;
  *(uint *)(lVar2 + -0xa34) = (uVar15 ^ 0xb76dd76f) << ((bVar18 ^ 0x57) & 0x1f);
  uVar35 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar3 - (uVar43 ^ 0x9cee1497)) =
       (uVar29 ^ uVar21) + (uVar26 ^ *(ulonglong *)(lVar3 + -0x438)) ^ uVar35;
  uVar17 = DAT_182670988;
  uVar8 = DAT_1826707b4;
  *(ulonglong *)(lVar3 + -0x220) =
       (CONCAT44(uVar6,uVar6) ^ 0x86306dce387b0d5e) + (CONCAT44(uVar14,uVar30) ^ 0x8f22037b8e377fde)
  ;
  uVar6 = DAT_1826707c0;
  uVar31 = CONCAT44(uVar17,uVar17);
  uVar40 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707dc ^ 0x420127d5)) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x6b8)) << (((byte)uVar8 ^ 0x2d) & 0x3f) ^ uVar31;
  uVar17 = DAT_1826709ec;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) =
       CONCAT44(uVar13,DAT_1826707a8) ^ CONCAT44(uVar9,uVar6) ^ 0x9aaae13ef48316cf;
  lVar2 = DAT_1826707a0;
  uVar29 = (uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) >> (((byte)uVar8 ^ 0x1d) & 0x3f);
  uVar21 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (CONCAT44(uVar5,uVar6) ^ 0xee741bcedeba679a) -
       (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x438));
  uVar8 = DAT_182670a68;
  *(ulonglong *)(lVar2 + -0xac0) = uVar29 ^ CONCAT44(uVar17,uVar17);
  uVar27 = CONCAT44(uVar8,uVar8);
  uVar24 = CONCAT44(uVar11,DAT_1826707c8);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0xcacab98f)) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0xbb0) | uVar29) ^ uVar27;
  uVar21 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707cc ^ 0xd0b9ed70)) =
       (uVar24 ^ 0x31f500167231bf79) + (CONCAT44(uVar6,uVar6) ^ 0x40db4bd955526766);
  uVar24 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x42012a3d)) =
       uVar24 ^ uVar27 ^ uVar35 ^ *puVar22 ^ *(ulonglong *)(lVar2 + -0x630);
  lVar3 = DAT_1826707a0;
  *(uint *)(lVar2 - (uVar23 ^ 0x8511389d)) = (uVar6 ^ 0x9f321097) + (DAT_1826707bc ^ 0xd3654ce2);
  uVar8 = DAT_182670824;
  uVar12 = DAT_1826707d0;
  uVar29 = uVar24 ^ *(ulonglong *)(lVar2 + -0x658);
  bVar18 = (byte)DAT_1826707d0;
  uVar27 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar39 = (*(ulonglong *)(lVar3 + -0x660) ^ uVar39) + uVar29 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar39;
  lVar2 = DAT_1826707a0;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar40 ^ 0x935ce26b)) ^ uVar24) << ((bVar32 ^ 0x43) & 0x3f);
  uVar26 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(DAT_1826707a0 + -0x410) = uVar23 ^ CONCAT44(uVar8,uVar8);
  uVar17 = _DAT_182670ad4;
  uVar29 = uVar29 >> ((bVar18 ^ 0x51) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar29 ^ uVar26;
  uVar8 = DAT_1826709cc;
  uVar21 = CONCAT44(uVar17,uVar17);
  uVar29 = (uVar29 | uVar23) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x420) = uVar29;
  uVar40 = CONCAT44(uVar8,uVar8);
  puVar34 = (ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d8 ^ 0xcacab9af));
  uVar23 = (ulonglong)DAT_1826707cc;
  uVar24 = CONCAT44(uVar11,DAT_1826707bc);
  *puVar34 = uVar40 ^ uVar21 ^ uVar39 ^ uVar27 ^ uVar29;
  uVar39 = CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar2 + -0x9c8);
  uVar29 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar2 + -0xf0) =
       (*(ulonglong *)(lVar2 - (uVar23 ^ 0xd0b9e3c0)) ^ uVar35) + uVar39 ^ uVar29;
  uVar39 = uVar39 << (((byte)DAT_1826707c8 ^ 0x22) & 0x3f);
  uVar21 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0x548) = uVar39 ^ uVar36;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x2c654a91)) = uVar24 ^ 0x27c1acecffffdf0 | uVar39;
  uVar11 = DAT_1826707e4;
  uVar24 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar21 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e4 ^ 0x186e2f7c)) =
       ((ulonglong)(uVar16 >> 0x1b) | uVar42 << 5) ^ *(ulonglong *)(lVar2 + -0x9c8) >> 0x1b ^ uVar24
  ;
  uVar8 = DAT_182670900;
  uVar23 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar2 + -0x1b8) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0x4201215d)) ^ uVar24 |
       uVar36 ^ *(ulonglong *)(lVar2 + -0x548)) ^ uVar23;
  uVar21 = CONCAT44(uVar8,uVar8);
  uVar24 = CONCAT44(uVar4,DAT_1826707e0);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0x30c1cee4)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0xf9f3fd2)) ^ uVar21 ^ uVar23 ^ uVar29 ^
       *(ulonglong *)(lVar2 + -0xf0);
  uVar39 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(uVar5,uVar15) ^ 0x13c86e089ad85009) + (uVar21 ^ *(ulonglong *)(lVar2 + -0xd88)) ^
       uVar39;
  uVar5 = DAT_1826707b0;
  uVar21 = CONCAT44(uVar4,DAT_1826707a8);
  uVar23 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0xa18) =
       (uVar24 ^ 0x5e786be94be1b5a1) + (uVar27 ^ *(ulonglong *)(lVar2 + -0x4c8)) ^ uVar37;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x186e24fc)) =
       uVar21 ^ 0xef8fd8c48e044382 | CONCAT44(uVar10,uVar9) ^ 0x175339315859a587;
  uVar27 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  bVar18 = (byte)DAT_1826707b4;
  uVar21 = (*(ulonglong *)(lVar2 - (uVar23 ^ 0x2c654021)) ^ uVar39) +
           (*(ulonglong *)(lVar2 + -0xa18) ^ uVar37);
  uVar23 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar2 + -0x438) = uVar21 ^ uVar27;
  *(ulonglong *)(lVar2 + -0x588) =
       (uVar39 ^ *(ulonglong *)(lVar2 + -0x220)) << ((bVar18 ^ 0x1c) & 0x3f) ^ uVar23;
  uVar8 = DAT_182670a0c;
  uVar9 = DAT_1826707ec;
  uVar4 = DAT_1826707c8;
  lVar2 = DAT_1826707a0;
  puVar22 = (ulonglong *)(DAT_1826707a0 + -0x220);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (CONCAT44(DAT_1826707ec,uVar5) ^ 0xda72b34a141ea7ef) + uVar21;
  uVar31 = (ulonglong)DAT_182670b0c;
  uVar24 = CONCAT44(uVar8,uVar8);
  uVar35 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xf87779c7)) =
       (uVar39 ^ *puVar22) >> (((byte)DAT_1826707d4 ^ 0xe7) & 0x3f) ^ uVar24;
  uVar8 = DAT_18267088c;
  uVar24 = uVar24 ^ *(ulonglong *)(lVar2 + -0xac0);
  uVar21 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar39 = (uVar23 ^ *(ulonglong *)(lVar2 + -0x588) | uVar24) ^ uVar21;
  *(ulonglong *)(lVar2 + -0xb70) = uVar39;
  uVar23 = CONCAT44(uVar13,DAT_1826707d0);
  *(ulonglong *)(lVar2 + -0x660) =
       uVar35 ^ uVar39 ^ uVar21 ^ uVar27 ^ *(ulonglong *)(lVar2 + -0x438);
  uVar5 = DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x630) = uVar24 >> (((byte)uVar39 ^ (byte)uVar8) & 0x3f);
  uVar39 = (CONCAT44(uVar7,uVar5) ^ 0xa86bbe1e3aebcdf3) + (uVar40 ^ *puVar34);
  uVar21 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar2 + -0x658) = uVar39 ^ uVar41;
  uVar23 = (uVar23 ^ 0xf6bdb812baecd05c) + (uVar29 ^ *(ulonglong *)(lVar2 + -0xf0));
  uVar24 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar23 ^ uVar21;
  lVar3 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0x484a260d)) = uVar39 + uVar23 ^ uVar24;
  uVar5 = DAT_1826707cc;
  uVar41 = *(ulonglong *)(lVar2 + -0x658) ^ uVar41;
  uVar23 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar3 + -0x420) = uVar41 << (((byte)uVar4 ^ 0x26) & 0x3f) ^ uVar23;
  uVar41 = uVar41 >> (((byte)uVar5 ^ 0x1f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar41 ^ CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar7 = DAT_18267092c;
  uVar39 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0x890) = *(ulonglong *)(*(ulonglong *)(lVar3 + -0xae0) ^ uVar38) ^ uVar33;
  uVar4 = _DAT_1826708f8;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar21 = (ulonglong)DAT_1826707e4;
  uVar29 = (ulonglong)_DAT_1826708f8;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar43 ^ 0x9cee1577)) ^ uVar23 | uVar41) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar23;
  *(ulonglong *)(lVar3 + -0x548) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0x186e2424)) ^ uVar35 ^ 0xb3800059f51e0dca;
  uVar7 = DAT_182670a3c;
  uVar21 = CONCAT44(uVar4,uVar4);
  uVar23 = *(ulonglong *)(lVar3 - (uVar39 ^ 0x712fabb8)) ^ uVar23 ^ uVar21 ^ uVar33 ^ uVar24;
  *(ulonglong *)(lVar3 + -0xd38) = uVar23;
  uVar17 = DAT_182670b04;
  lVar2 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar7,uVar7);
  uVar39 = (uVar23 ^ uVar21) << 0x2e;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x438)) + (uVar23 ^ uVar21) ^ uVar33;
  uVar8 = DAT_182670a54;
  *(ulonglong *)(lVar2 + -0xd88) = uVar39 ^ CONCAT44(uVar17,uVar17);
  uVar7 = DAT_1826708b8;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0x4c8) =
       ((ulonglong)(uVar4 >> 0x12) | uVar29 << 0xe) ^ *(ulonglong *)(lVar2 + -0xd38) >> 0x12 ^
       uVar23;
  uVar21 = CONCAT44(uVar7,uVar7);
  *puVar19 = (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b0 ^ 0x2c6546c9)) ^ uVar23 | uVar39) ^
             uVar21;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar2 + -0x660);
  *(ulonglong *)(lVar2 + -0xa18) =
       CONCAT44(DAT_182670a70,DAT_182670a70) ^ *(ulonglong *)(lVar2 + -0x1b8) ^ uVar21 ^ uVar33 ^
       *(ulonglong *)(lVar2 + -0x6b8);
  *(ulonglong *)(lVar2 + -0xbb0) =
       (CONCAT44(uVar9,DAT_1826707c4) ^ 0x72f214319e1ec63a) >> ((bVar32 ^ 0x41) & 0x3f);
  *(ulonglong *)(lVar2 + -0x220) = (*(ulonglong *)(lVar2 + -0x410) ^ uVar24) + uVar35 ^ uVar28;
  uVar21 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(lVar2 + -0x588) = uVar35 << 0xc ^ uVar21;
  uVar24 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar27 = (*(ulonglong *)(lVar2 + -0x660) >> 0x20 ^ uVar31) >> 0x14;
  *(ulonglong *)(lVar2 + -0xac0) = uVar27 ^ uVar26;
  uVar23 = (ulonglong)DAT_1826707d8;
  uVar35 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  uVar21 = (*(ulonglong *)(lVar2 - (uVar36 ^ 0x484a2795)) ^ uVar21 | uVar27) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x630) = uVar21;
  uVar24 = *(ulonglong *)(lVar2 - (uVar23 ^ 0xcacabd9f)) ^ uVar28 ^ uVar21 ^ uVar35 ^ uVar24;
  uVar27 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar2 + -0xb70) = uVar24;
  *(ulonglong *)(lVar2 + -0x610) =
       (uVar24 ^ uVar35) + (*(ulonglong *)(lVar2 + -0x1b8) ^ uVar33) ^ uVar27;
  uVar7 = DAT_182670b00;
  uVar21 = (uVar24 ^ uVar35) << (((byte)uVar15 ^ 0x57) & 0x3f);
  local_58 = (byte)uVar6;
  uVar23 = (*(ulonglong *)(lVar2 + -0xb70) ^ uVar35) >> ((local_58 ^ 0x35) & 0x3f);
  *(ulonglong *)(lVar2 + -0xf0) = uVar21 ^ CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(lVar2 + -0x9e0) = uVar23 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 + -0x610) ^ uVar27) >> ((byte)uVar21 & 0x3f);
  uVar4 = DAT_1826707e4;
  *(ulonglong *)(lVar2 + -0x890) = CONCAT44(DAT_182670938,DAT_182670938) ^ (uVar23 | uVar21);
  *(uint *)(lVar2 + -0x9ec) = (uVar4 ^ 0xfffff760) << 0x12;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar30) * 4) = uVar20;
  return;
}



############ FUN_ 180cfb010 size=4074 ############

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

void FUN_180cfb010(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  byte bVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  uint uVar17;
  uint uVar18;
  uint *puVar19;
  uint *puVar20;
  uint *puVar21;
  ulonglong uVar22;
  uint *puVar23;
  uint *puVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint *puVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  longlong lVar33;
  uint uVar34;
  byte local_res10;
  
  uVar26 = DAT_182670a90;
  uVar14 = DAT_182670940;
  uVar27 = DAT_1826707f4;
  uVar25 = DAT_1826707e8;
  uVar18 = DAT_1826707d0;
  uVar10 = DAT_1826707c0;
  uVar9 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  uVar16 = (ulonglong)DAT_1826707f4;
  uVar15 = (ulonglong)DAT_1826707b8;
  uVar34 = DAT_1826707d0 - DAT_1826707b8;
  uVar32 = DAT_1826707f4 * DAT_1826707c0;
  uVar30 = ~DAT_1826707e8;
  uVar7 = *(uint *)(&DAT_18260f750 + (uVar16 ^ 0xa3b193f1) + (longlong)DAT_182670bc8) ^
          DAT_1826707c0;
  uVar2 = *(uint *)(&DAT_18260f760 + DAT_182670bc8);
  DAT_1826707b0 = uVar32;
  DAT_1826707cc = uVar34;
  DAT_1826707ec = uVar30;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x5e8) ^ (ulonglong)DAT_182670a24) =
       (byte)DAT_1826707d0 ^ 0xf8;
  uVar17 = (uint)(*(byte *)(lVar3 + -0x639) ^ (byte)DAT_182670a4c);
  uVar8 = DAT_1826709c4 ^ *(uint *)(lVar3 + -0x43c);
  *(uint *)(lVar3 + -0x7e4) = uVar17 ^ uVar14;
  *(uint *)(lVar3 + -0x398) = uVar8 + (uVar34 ^ 0x8d40d4c0) ^ uVar26;
  uVar8 = uVar17 << 0x11 ^ DAT_1826709c0;
  *(byte *)(lVar3 + -0x549) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xdb8) ^ (ulonglong)DAT_182670a38) ^ (byte)DAT_182670adc;
  lVar4 = DAT_1826707a0;
  uVar11 = (ulonglong)uVar9;
  puVar29 = (uint *)(lVar3 - (uVar11 ^ 0xb99b69d8));
  *puVar29 = uVar8;
  puVar23 = (uint *)(lVar3 - ((ulonglong)uVar25 ^ 0xf6fa73f9));
  uVar25 = (uVar26 ^ *(uint *)(lVar3 + -0x398)) - (*puVar23 ^ DAT_1826709c0) ^ DAT_182670ae4;
  puVar19 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar30 ^ 0x9058a36));
  *(uint *)(lVar3 + -0x280) = uVar25;
  *(uint *)(lVar4 + -0x540) = (*puVar19 ^ DAT_1826709d4) * (uVar25 ^ DAT_182670ae4) ^ DAT_18267091c;
  *(undefined8 *)(lVar4 + -0x890) = 0x1779800000000000;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar27 ^ 0xa3b19b19)) =
       (*(uint *)(lVar4 + -0x7e4) ^ uVar14) * (uVar34 ^ 0x466499fc) ^ DAT_182670af8;
  lVar3 = DAT_1826707a0;
  puVar20 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0xf993b4e3));
  uVar12 = (ulonglong)uVar18;
  puVar24 = (uint *)(DAT_1826707a0 - (uVar12 ^ 0xfffffd6b));
  *puVar24 = (*(uint *)(DAT_1826707a0 + -0x8e0) ^ DAT_182670af8) + (*puVar20 ^ DAT_18267091c) ^
             DAT_18267083c;
  uVar25 = *(uint *)(lVar3 + -0x2d4) ^ DAT_18267083c;
  *(uint *)(lVar3 + -0x3d4) = uVar25 >> 0x13 ^ DAT_1826708c4;
  uVar25 = uVar25 << 0xd ^ DAT_18267088c;
  *(uint *)(lVar3 + -0x42c) = uVar25;
  uVar13 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0x2a5b6cbf)) =
       (*(uint *)(lVar3 - ((ulonglong)uVar30 ^ 0x90583d6)) ^ DAT_1826708c4 | uVar25 ^ DAT_18267088c)
       ^ DAT_1826709b8;
  uVar25 = DAT_1826709a8;
  *(uint *)(lVar3 - (uVar13 ^ 0xf6fa73f1)) =
       (*(uint *)(lVar3 + -0xa34) ^ DAT_1826709d4) + (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) ^
       DAT_1826709a8;
  *(uint *)(lVar3 + -0x9ec) = *(uint *)(lVar3 + -0xc0c) ^ DAT_182670acc ^ uVar25;
  lVar4 = DAT_1826707a0;
  puVar21 = (uint *)(lVar3 - (uVar15 ^ 0xb99b6930));
  *puVar21 = (*(uint *)(lVar3 + -0xc0c) ^ uVar25) + (uVar34 ^ 0xc7e7e875);
  *(uint *)(lVar3 + -0x68c) = *(uint *)(lVar4 + -0xc34) ^ DAT_182670998 ^ DAT_1826709b8;
  *(ulonglong *)(lVar3 + -0x6b8) =
       CONCAT44(uVar18,uVar32) ^ *(ulonglong *)(lVar3 + -0x610) ^ 0x1bd36be594b83c6f;
  uVar25 = DAT_18267094c;
  *(uint *)(lVar3 - ((ulonglong)uVar27 ^ 0xa3b197c5)) =
       *(uint *)(lVar3 - ((ulonglong)uVar30 ^ 0x90589ee)) ^ DAT_18267094c ^ DAT_182670acc;
  uVar15 = (ulonglong)uVar34;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar32 ^ 0x2a5b6753)) =
       ((ulonglong)DAT_1826707e8 ^ 0xe93ce700) >> 8;
  *(uint *)(lVar3 + -0x398) = *(uint *)(lVar3 + -0x68c) ^ _DAT_1826708bc ^ DAT_182670998;
  uVar22 = (ulonglong)DAT_1826708c0;
  lVar33 = (CONCAT44(uVar27,uVar9) ^ 0xa3b193f9b99b65dc) * 0x20;
  *(ulonglong *)(DAT_1826707a0 - (uVar15 ^ 0x46649b93)) =
       (CONCAT44(uVar32,uVar10) ^ 0x2a5b608bf993b1a9) + *(longlong *)(DAT_1826707a0 + -0x30) +
       lVar33 ^ uVar22;
  lVar3 = DAT_1826707a0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x270);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (CONCAT44(uVar27,uVar10) ^ 0xa321762f4983bd62) +
       (CONCAT44(uVar10,uVar18) ^ 0xc3fa47d7ef6a5106);
  bVar6 = (byte)DAT_182670918;
  lVar4 = DAT_1826707a0;
  uVar13 = (ulonglong)DAT_1826709e4;
  *(byte *)(lVar3 + -0xc35) =
       *(byte *)(*puVar1 ^ uVar22) ^ (byte)DAT_182670918 ^ (byte)DAT_182670adc;
  local_res10 = (byte)uVar34;
  *(byte *)(*(ulonglong *)(lVar4 + -0xcc8) ^ uVar13) = local_res10 ^ 0x39;
  uVar27 = DAT_182670970;
  *puVar23 = (bVar6 ^ *(byte *)(lVar4 + -0xc35)) ^ DAT_182670970;
  uVar18 = _DAT_1826708c8;
  uVar31 = (ulonglong)_DAT_1826708c8;
  uVar14 = (uVar27 ^ *(uint *)(lVar4 + -0xc04)) << 0x11 ^ DAT_182670960;
  uVar26 = *(uint *)(lVar4 - ((ulonglong)uVar30 ^ 0x905839a)) ^ _DAT_1826708bc;
  *(uint *)(lVar4 + -0x7e4) = uVar14;
  uVar14 = uVar14 ^ DAT_182670960;
  uVar26 = uVar26 + (uVar32 ^ 0xe17f2da8);
  *(uint *)(lVar4 + -0x280) = uVar26 ^ uVar18;
  *(uint *)(lVar4 - ((ulonglong)DAT_1826707ec ^ 0x9058542)) = uVar26 - uVar14 ^ DAT_1826708a4;
  *(uint *)(lVar4 + -0x8e0) =
       (*(uint *)(lVar4 + -0x540) ^ DAT_1826708a4) * (uVar25 ^ *(uint *)(lVar4 + -0x43c)) ^
       DAT_182670a2c;
  *puVar24 = (uVar27 ^ *(uint *)(lVar4 + -0xc04)) * 10 ^ DAT_1826708cc;
  uVar18 = DAT_182670a9c;
  uVar27 = (*(uint *)(lVar4 + -0x2d4) ^ DAT_1826708cc) + (*(uint *)(lVar4 + -0x8e0) ^ DAT_182670a2c)
  ;
  *(uint *)(lVar4 + -0x42c) = uVar27 ^ DAT_182670a9c;
  *(uint *)(lVar4 + -0x3d4) = uVar27 << ((local_res10 ^ 0xee) & 0x1f) ^ DAT_182670820;
  *(uint *)(lVar4 - (uVar16 ^ 0xa3b199cd)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar10 ^ 0xf993b58f)) ^ uVar18) >>
       (((byte)uVar9 ^ 0xcf) & 0x1f) ^ _DAT_182670b10;
  uVar9 = *(uint *)(lVar4 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar4 + -0xc0c) =
       (*(uint *)(lVar4 + -0xa34) ^ _DAT_182670b10 | *(uint *)(lVar4 + -0x3d4) ^ DAT_182670820) ^
       DAT_1826709d0;
  *puVar21 = uVar9 + (uVar25 ^ *(uint *)(lVar4 + -0x43c)) ^ DAT_182670a94;
  uVar27 = DAT_182670aa8;
  uVar14 = DAT_1826709dc;
  uVar9 = DAT_182670a60 ^ DAT_1826709d0;
  uVar13 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar4 + -0xc34) = *(uint *)(lVar4 + -0xcec) ^ DAT_182670950 ^ DAT_182670a94;
  *(uint *)(lVar4 - (uVar13 ^ 0xf6fa7611)) = uVar9 ^ *(uint *)(lVar4 + -0xc0c);
  uVar18 = DAT_1826707ec;
  uVar22 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar4 + -0xa18) = 0x217d8ccbafdba0bf >> (((byte)uVar10 ^ 0xb0) & 0x3f);
  puVar23 = (uint *)(lVar4 - (uVar12 ^ 0xfffff933));
  *puVar23 = *(uint *)(lVar4 + -0xc34) ^ uVar14 ^ DAT_182670950;
  *(uint *)(lVar4 - (uVar16 ^ 0xa3b19061)) = *(uint *)(lVar4 + -0x9ec) ^ uVar27 ^ DAT_182670a60;
  uVar25 = DAT_182670848;
  uVar9 = DAT_1826707e8;
  uVar13 = (ulonglong)DAT_1826708d8;
  uVar8 = DAT_182670848 & 0xff;
  *(ulonglong *)(lVar4 + -0xaa0) =
       (CONCAT44(uVar34,uVar18) ^ 0x466499e309058002) * 0x20 +
       (CONCAT44(uVar34,uVar32) ^ 0x466499e32a5b609e) + *(longlong *)(lVar4 + -0x30) ^ uVar13;
  *(byte *)(lVar4 + -0x471) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar16 ^ 0xa3b19959)) ^ uVar13) ^ (byte)uVar25 ^
       (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar4 + -0x4a8) ^ (ulonglong)DAT_182670958) = (byte)uVar9 ^ 0xca;
  uVar26 = DAT_182670ac0;
  lVar3 = DAT_1826707a0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x558);
  *(uint *)(DAT_1826707a0 + -0x280) = *(byte *)(lVar4 + -0x471) ^ uVar8 ^ DAT_182670ac0;
  *(ulonglong *)(lVar3 - (uVar12 ^ 0xfffffb87)) = *puVar1 ^ 0x883124fc687b7206;
  uVar25 = DAT_182670ab0;
  *(uint *)(lVar3 + -0x7e4) =
       (uVar27 ^ *(uint *)(lVar3 + -0x398)) + (uVar9 ^ 0x3dde32de) ^ DAT_182670990;
  uVar9 = (*(uint *)(lVar3 - ((ulonglong)uVar10 ^ 0xf993b323)) ^ uVar26) << 0x11 ^ DAT_182670abc;
  *(uint *)(lVar3 + -0x540) = uVar9;
  *(uint *)(lVar3 - (uVar16 ^ 0xa3b19ffd)) =
       (*(uint *)(lVar3 - (uVar16 ^ 0xa3b1941d)) ^ DAT_182670990) - (uVar9 ^ DAT_182670abc) ^ uVar25
  ;
  *(uint *)(lVar3 - ((ulonglong)uVar18 ^ 0x90588e2)) =
       (*(uint *)(lVar3 + -0x68c) ^ uVar14) * (uVar25 ^ *(uint *)(lVar3 + -0xc04)) ^ DAT_182670880;
  *(uint *)(lVar3 + -0x2d4) =
       (*(uint *)(lVar3 + -0x280) ^ uVar26) * (DAT_1826707ec ^ 0x9058017) ^ DAT_1826709fc;
  *(ulonglong *)(lVar3 - (uVar12 ^ 0xfffff287)) =
       (CONCAT44(uVar10,uVar32) ^ 0x5ba038b638fc9136) >> ((local_res10 ^ 0xcd) & 0x3f);
  uVar10 = DAT_182670aec;
  uVar9 = DAT_1826707f0;
  puVar21 = (uint *)(lVar3 - (uVar16 ^ 0xa3b1912d));
  uVar13 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar3 - (uVar22 ^ 0x905842e)) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_1826707e8 ^ 0xf6fa771d)) ^ DAT_182670880) +
       (*puVar21 ^ DAT_1826709fc) ^ DAT_182670aec;
  *(uint *)(lVar3 - (uVar11 ^ 0xb99b6608)) =
       (*(uint *)(lVar3 + -0x42c) ^ uVar10) << 0xd ^ DAT_182670a98;
  *(ulonglong *)(lVar3 + -0xf0) = CONCAT44(uVar9,uVar32) ^ 0x1004505b00f59288 | 0x46d98d208f020966;
  *puVar19 = (*(uint *)(lVar3 + -0x42c) ^ uVar10) >> (((byte)uVar32 ^ 0x98) & 0x1f) ^ DAT_182670a3c;
  uVar9 = DAT_182670834;
  uVar10 = *(uint *)(lVar3 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar3 + -0x43c) =
       (*(uint *)(lVar3 + -0xa34) ^ DAT_182670a3c | *(uint *)(lVar3 + -0x3d4) ^ DAT_182670a98) ^
       DAT_1826707f8;
  uVar27 = DAT_182670878;
  uVar10 = (*puVar23 ^ uVar14) + uVar10 ^ DAT_1826709a8;
  *(uint *)(lVar3 + -0xcec) = uVar10;
  *(uint *)(lVar3 - (uVar15 ^ 0x466495ef)) = uVar9 ^ uVar10 ^ DAT_1826709a8;
  uVar18 = DAT_1826709f0 ^ DAT_1826707f8 ^ *(uint *)(lVar3 + -0x43c);
  uVar10 = uVar27 ^ DAT_182670834;
  *(uint *)(lVar3 + -0xc34) = uVar18;
  uVar9 = DAT_182670860;
  uVar5 = DAT_1826707e0;
  uVar28 = (ulonglong)DAT_1826708fc;
  uVar25 = uVar18 ^ DAT_182670860 ^ DAT_1826709f0;
  *(uint *)(lVar3 + -0x9ec) = uVar10 ^ *(uint *)(lVar3 + -0xc0c);
  uVar8 = DAT_1826709ac;
  uVar18 = DAT_1826707dc;
  uVar22 = (ulonglong)DAT_1826707dc;
  uVar16 = CONCAT44(uVar5,DAT_1826707e4);
  *(uint *)(lVar3 + -0x398) = uVar25;
  bVar6 = (byte)DAT_1826709a0;
  uVar25 = DAT_1826707f4;
  *(ulonglong *)(lVar3 + -0x148) =
       (uVar16 ^ 0xb175d45ed3c8e621) + *(longlong *)(lVar3 + -0x30) + lVar33 ^ uVar28;
  *(byte *)(lVar3 + -0x2e9) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar22 ^ 0xbffffef7)) ^ uVar28) ^ bVar6 ^
       (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar3 + -0x4d0) ^ uVar31) = local_res10 ^ 0x4c;
  uVar26 = DAT_182670914;
  *(uint *)(lVar3 + -0x7e4) = (*(byte *)(lVar3 + -0x2e9) ^ bVar6) ^ uVar8;
  uVar16 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar3 - (uVar15 ^ 0x46649ca3)) =
       (uVar9 ^ *(uint *)(lVar3 + -0x398)) + (uVar25 ^ 0x6895deda) ^ DAT_182670acc;
  *(uint *)(lVar3 + -0xc04) = (*(uint *)(lVar3 + -0x7e4) ^ uVar8) << 0x11 ^ DAT_182670a78;
  *(uint *)(lVar3 + -0x280) =
       (*puVar20 ^ DAT_182670acc) - (*puVar29 ^ DAT_182670a78) ^ DAT_182670ac8;
  uVar17 = (*(uint *)(lVar3 - (uVar16 ^ 0xf6fa7d7d)) ^ DAT_182670ac8) *
           (uVar27 ^ *(uint *)(lVar3 + -0x9ec));
  *(uint *)(lVar3 + -0x8e0) = uVar17 ^ uVar26;
  uVar14 = DAT_1826708ec;
  uVar10 = DAT_1826707d4;
  uVar9 = DAT_1826707bc;
  uVar16 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar3 + -0x2d4) =
       (*(uint *)(lVar3 - (uVar11 ^ 0xb99b6238)) ^ uVar8) * (DAT_1826707ec ^ 0x9058002) ^
       DAT_1826708ec;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (CONCAT44(uVar9,uVar32) ^ 0x916cd2f37617633c) +
       (CONCAT44(uVar10,uVar32) ^ 0xfd285894d27bb1a8);
  uVar8 = DAT_182670a5c;
  uVar10 = DAT_1826707d8;
  *(uint *)(lVar3 - (uVar13 ^ 0x21e6ccff)) = (uVar14 ^ *puVar21) + uVar17 ^ DAT_182670a5c;
  *(uint *)(lVar3 - ((ulonglong)uVar32 ^ 0x2a5b635f)) =
       (*(uint *)(lVar3 - (uVar16 ^ 0x7ffdf397)) ^ uVar8) << (((byte)uVar10 ^ 0xdb) & 0x1f) ^ uVar14
  ;
  *(uint *)(lVar3 + -0xa34) = (*(uint *)(lVar3 + -0x8e0) ^ uVar26) + (DAT_1826707c8 ^ 0x3a9f616f);
  *(uint *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0x848046a8)) =
       (*(uint *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0x21e6ccbf)) ^ uVar8) >>
       (((byte)uVar25 ^ 0xea) & 0x1f) ^ DAT_1826709a4;
  *(uint *)(lVar3 + -0xcec) =
       (*(uint *)(lVar3 + -0x3d4) ^ uVar14 | *(uint *)(lVar3 + -0x68c) ^ DAT_1826709a4) ^
       DAT_182670a34;
  *(longlong *)(lVar3 + -0xd88) = *(longlong *)(lVar3 + -0x5c0) + -0x41606bff536381e5;
  uVar25 = DAT_1826707e8;
  uVar16 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar3 - (uVar12 ^ 0xfffffb83)) =
       (uVar27 ^ *(uint *)(lVar3 + -0x9ec)) + (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) ^
       DAT_18267090c;
  uVar14 = *(uint *)(lVar3 + -0xcec) ^ DAT_182670a34 ^ DAT_182670a98;
  *(uint *)(lVar3 + -0xc0c) = DAT_182670904 ^ DAT_18267090c ^ *(uint *)(lVar3 + -0x43c);
  uVar27 = DAT_1826707ec ^ 0x83a01ca2;
  *(uint *)(lVar3 + -0x398) = uVar14;
  *(uint *)(lVar3 + -0xc34) = uVar27 - (uVar9 ^ 0x3fa4d7eb);
  *(uint *)(lVar3 + -0xc04) =
       *(uint *)(lVar3 - (uVar16 ^ 0xe6aa3371)) ^ DAT_1826708d0 ^ DAT_182670904;
  uVar16 = (ulonglong)DAT_182670968;
  *(uint *)(lVar3 - ((ulonglong)uVar25 ^ 0xf6fa7abd)) = DAT_1826708b4 ^ DAT_182670a98 ^ uVar14;
  bVar6 = (byte)DAT_182670884;
  *(ulonglong *)(lVar3 - (uVar11 ^ 0xb99b67c4)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar18 ^ 0xbfffff8f)) + 0xbU ^ uVar16;
  *(byte *)(lVar3 + -0x7a1) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x8d66d8ce)) ^ uVar16) ^ bVar6 ^
       (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar3 + -0x238) ^ (ulonglong)DAT_182670898) = (byte)uVar32 ^ 0xe;
  uVar9 = DAT_182670ab8;
  uVar10 = (bVar6 ^ *(byte *)(lVar3 + -0x7a1)) ^ DAT_182670a48;
  *(uint *)(lVar3 + -0x7e4) =
       (*(uint *)(lVar3 + -0x540) ^ DAT_1826708b4) + (uVar34 ^ 0x8d40d4c0) ^ DAT_182670ab8;
  *(uint *)(lVar3 + -0x280) = uVar10;
  *(uint *)(lVar3 - (uVar15 ^ 0x46649b37)) =
       (uVar10 ^ DAT_182670a48) << (((byte)uVar25 ^ 0xec) & 0x1f) ^ DAT_182670998;
  *(uint *)(lVar3 - (uVar22 ^ 0xbffff75f)) =
       (uVar9 ^ *(uint *)(lVar3 + -0x7e4)) - (*(uint *)(lVar3 + -0x2d4) ^ DAT_182670998) ^
       DAT_182670988;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar32) * 4) = uVar7;
  return;
}



############ FUN_ 180d0df50 size=3080 ############

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

void FUN_180d0df50(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong *puVar17;
  byte *pbVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  
  uVar4 = _DAT_1826709e0;
  uVar9 = DAT_1826707c4;
  lVar2 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_1826707c4;
  uVar25 = DAT_1826707c4 << 0x10 | DAT_1826707c4 >> 0x10;
  uVar15 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar25 ^ 0x4c90288) + (longlong)DAT_182670c00) ^
           DAT_1826707c4;
  uVar1 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707c4 ^ 0x28004d9) + (longlong)DAT_182670c00);
  uVar22 = (ulonglong)DAT_182670904;
  uVar20 = (ulonglong)DAT_182670810;
  DAT_1826707e4 = uVar25;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x520) ^ (ulonglong)DAT_182670a80) =
       (byte)DAT_182670b00 ^ *(byte *)(DAT_1826707a0 + -0xa36);
  *(undefined1 *)(lVar2 + -0xa36) = 0x4e;
  uVar26 = *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x4c907f0));
  *(undefined8 *)(lVar2 + -0xa88) = *(undefined8 *)(lVar2 + -0x70);
  *(ulonglong *)(lVar2 + -0xc18) =
       *(ulonglong *)(lVar2 + -0x588) >> ((byte)*(undefined8 *)(lVar2 + -0x558) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc60) = uVar26;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x2800c11)) = uVar26 ^ uVar22;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x4c90800)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x4c90808)) ^ uVar20;
  pbVar18 = (byte *)(*(ulonglong *)(lVar2 + -0xa80) ^ uVar20);
  *(byte **)(lVar2 + -0xcd0) = pbVar18 + (CONCAT44(uVar9,uVar9) ^ 0x28004c9028004c8);
  bVar23 = (byte)uVar4;
  *(byte *)(lVar2 + -0x321) = *pbVar18 ^ (byte)DAT_18267098c ^ bVar23;
  *(byte *)(lVar2 - (uVar21 ^ 0x2800673)) = (byte)uVar9 ^ 0xdb;
  *(byte *)(*(ulonglong *)(lVar2 + -0xbc8) ^ (ulonglong)DAT_18267080c) =
       (byte)(uVar9 >> 0x10) ^ 0x27;
  uVar26 = (ulonglong)DAT_1826709d0;
  *(ulonglong *)(lVar2 + -0x858) =
       (CONCAT44(DAT_1826707d4,uVar25) ^ 0x7fbfafef04c90281) +
       (*(ulonglong *)(lVar2 + -0x8d8) ^ uVar22);
  *(byte *)(lVar2 + -0x3d5) = *(byte *)(uVar26 ^ *(ulonglong *)(lVar2 + -0x770)) ^ bVar23;
  uVar5 = DAT_1826707b4;
  uVar24 = (ulonglong)DAT_1826707b4;
  *(undefined1 *)(lVar2 - ((ulonglong)uVar9 ^ 0x280071c)) = 0x97;
  uVar20 = (ulonglong)DAT_1826708c4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x8d8) ^ uVar22) =
       *(byte *)(lVar2 + -0x321) ^ (byte)DAT_18267098c;
  *(undefined1 *)(lVar2 + -0x321) = 0xdb;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar9 ^ 0x28006a9)) = *(undefined8 *)(lVar2 + -0x858);
  uVar12 = DAT_1826707dc;
  uVar26 = (ulonglong)DAT_182670858;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar25 ^ 0x4c90430)) =
       *(undefined8 *)(lVar2 - ((ulonglong)uVar9 ^ 0x2800819));
  *(ulonglong *)(lVar2 + -0xc58) = *(ulonglong *)(lVar2 + -0x260) ^ uVar20;
  *(uint *)(lVar2 + -0x43c) = uVar12 ^ 0xf89db273;
  *(uint *)(lVar2 + -0x7e4) = uVar5 ^ 0x80b13297;
  *(ulonglong *)(lVar2 + -0x578) = *(ulonglong *)(lVar2 + -0x6b0) ^ uVar26;
  *(ulonglong *)(lVar2 + -0xd0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x28001b1)) ^ uVar26) + 1;
  uVar10 = DAT_1826707d0;
  bVar19 = (byte)DAT_1826707d0;
  *(byte *)(lVar2 + -0xaeb) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x4c907f8)) ^ uVar26) ^
       (byte)DAT_182670880 ^ bVar23;
  *(byte *)(lVar2 + -0xb19) = (byte)DAT_1826707ec ^ 0x4c;
  *(byte *)(*(ulonglong *)(lVar2 + -0x210) ^ (ulonglong)DAT_182670850) = bVar19 ^ 0xb6;
  pbVar18 = (byte *)(*(ulonglong *)(lVar2 + -0xc58) ^ uVar20);
  *(byte **)(lVar2 + -0xd50) = pbVar18 + 1;
  *pbVar18 = *(byte *)(lVar2 + -0xaeb) ^ (byte)DAT_182670880;
  uVar11 = DAT_1826707d8;
  uVar7 = DAT_1826707bc;
  uVar6 = DAT_1826707b8;
  uVar4 = DAT_1826707a8;
  uVar27 = (ulonglong)DAT_1826707d8;
  uVar29 = (ulonglong)DAT_1826709b0;
  uVar22 = (ulonglong)DAT_1826707b8;
  uVar30 = (ulonglong)DAT_1826707a8;
  *(byte *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0x82c05bf2)) = (byte)uVar5 ^ 6;
  *(undefined8 *)(lVar2 - ((ulonglong)DAT_1826707f4 ^ 0xa3b19651)) = *(undefined8 *)(lVar2 + -0xd50)
  ;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar4 ^ 0xa974327d)) =
       *(undefined8 *)(lVar2 - ((ulonglong)DAT_1826707f0 ^ 0xf993b173));
  uVar20 = (ulonglong)DAT_1826709cc;
  *(ulonglong *)(lVar2 + -0x390) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0xd5fefbd4)) ^ uVar29;
  uVar26 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0x6d8) = *(ulonglong *)(lVar2 + -0x790) ^ uVar20;
  uVar16 = DAT_1826707ac ^ 0x9bb6ccf4;
  *(uint *)(lVar2 + -0xcec) = DAT_1826707f0 ^ 0x1ef431d2;
  *(uint *)(lVar2 + -0x2d4) = uVar16;
  *(undefined4 *)(lVar2 + -0x68c) = 0xba52cad;
  *(ulonglong *)(lVar2 + -0x650) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x24175873)) ^ uVar20) +
       (CONCAT44(uVar5,uVar11) ^ 0xf99b661c73bfd197);
  *(byte *)(lVar2 + -0xaea) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar27 ^ 0x73bfd74e)) ^ uVar20) ^ (byte)DAT_182670848 ^
       bVar23;
  *(byte *)(lVar2 + -0x68d) = (byte)uVar6 ^ 0xad;
  *(byte *)(*(ulonglong *)(lVar2 + -0xdd8) ^ (ulonglong)DAT_18267088c) = (byte)uVar7 ^ 0x29;
  lVar2 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_18267084c;
  bVar19 = (byte)DAT_1826707ec;
  *(ulonglong *)(DAT_1826707a0 + -0xdc8) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0xb99b664c)) ^ uVar29) +
       (CONCAT44(uVar12,uVar10) ^ 0xa3b193f96c372e96);
  *(longlong *)(lVar2 + -0xf0) =
       *(longlong *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0x82c05d01)) + 0x6199f5ee173afde9;
  uVar26 = (ulonglong)DAT_182670aa4;
  *(byte *)(*(ulonglong *)(lVar2 + -0x390) ^ uVar29) =
       *(byte *)(lVar2 + -0xaea) ^ (byte)DAT_182670848;
  *(byte *)(lVar2 - ((ulonglong)DAT_1826707f0 ^ 0xf993bb49)) = bVar19 ^ 0x48;
  *(undefined8 *)(lVar2 + -0x170) = *(undefined8 *)(lVar2 + -0x650);
  *(ulonglong *)(lVar2 + -0xb98) = *(ulonglong *)(lVar2 + -0xdc8);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d4 ^ 0x7fbfaf07)) =
       uVar27 ^ *(ulonglong *)(lVar2 + -0xdc8);
  uVar16 = DAT_1826707b0;
  pbVar18 = *(byte **)(lVar2 - (uVar24 ^ 0xf99b676c));
  *(ulonglong *)(lVar2 + -0x200) = (ulonglong)pbVar18 ^ uVar26;
  uVar13 = DAT_1826707f4;
  lVar2 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar25,DAT_1826707f4);
  *(longlong *)(DAT_1826707a0 + -0xbb0) = 0x464839054afd1b59 << (((byte)uVar16 ^ 0x90) & 0x3f);
  *(byte **)(lVar2 + -0x270) = pbVar18 + (uVar26 ^ 0x4c90280a3b193f8);
  *(byte *)(lVar2 + -0x561) = (byte)DAT_182670a68 ^ DAT_1826709e0 ^ *pbVar18;
  uVar29 = (ulonglong)DAT_1826707ec;
  *(byte *)(lVar2 - (uVar30 ^ 0xa9743eac)) = (byte)uVar4 ^ 0xea;
  uVar14 = DAT_182670af8;
  uVar8 = DAT_1826707c0;
  uVar20 = (ulonglong)DAT_1826707c0;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x8f0) ^ (ulonglong)DAT_182670af8) = 0xc1;
  uVar4 = DAT_1826707e0;
  pbVar18 = (byte *)(*(ulonglong *)(lVar2 + -0xe8) ^ uVar27);
  uVar26 = (ulonglong)DAT_1826707e0;
  *(byte **)(lVar2 + -0x950) = pbVar18 + (CONCAT44(uVar12,uVar25) ^ 0xa3b193f904c90281);
  *pbVar18 = *(byte *)(lVar2 - (uVar26 ^ 0xd5fefb1d)) ^ (byte)DAT_182670a68;
  *(undefined1 *)(lVar2 - (uVar22 ^ 0x7d3faf87)) = 0xe5;
  uVar26 = (ulonglong)DAT_1826707d4;
  *(longlong *)(lVar2 - (uVar20 ^ 0xf993b5b3)) =
       *(longlong *)(lVar2 + -0x438) << (((byte)uVar13 ^ 0xce) & 0x3f);
  *(undefined8 *)(lVar2 + -0x1d0) = *(undefined8 *)(lVar2 + -0x950);
  *(undefined8 *)(lVar2 + -0x8d0) = *(undefined8 *)(lVar2 - (uVar26 ^ 0x7fbfad9f));
  uVar24 = (ulonglong)DAT_1826708b0;
  *(longlong *)(lVar2 - (uVar29 ^ 0xb1a3f573)) =
       -0x8c55ef3c81d2c42 << (((byte)uVar16 ^ 0xb0) & 0x3f);
  uVar26 = (ulonglong)DAT_182670910;
  *(ulonglong *)(lVar2 + -0x3a8) = *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0xd5feffac)) ^ uVar24;
  uVar16 = DAT_1826707cc;
  uVar4 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x6c372317)) = uVar26 ^ *(ulonglong *)(lVar2 + -0x8d0)
  ;
  *(ulonglong *)(lVar2 + -0xd88) =
       (CONCAT44(uVar8,uVar9) ^ 0x7f9baf01fb200073) - *(longlong *)(lVar2 + -0xcf8);
  *(ulonglong *)(lVar2 + -0x340) =
       (CONCAT44(uVar11,uVar7) ^ 0x73bfd19640000041) + (*(ulonglong *)(lVar2 + -0xd80) ^ uVar26);
  uVar11 = _DAT_1826709e0;
  uVar8 = DAT_1826707e8;
  uVar27 = (ulonglong)DAT_1826707b0;
  uVar28 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar16,DAT_1826707b0) ^ 0xf6f3f442b5187164) >>
       ((byte)*(undefined8 *)(lVar2 - (uVar30 ^ 0xa9743e5d)) & 0x3f);
  bVar19 = (byte)DAT_1826707f4;
  bVar23 = (byte)uVar11;
  *(byte *)(lVar3 + -0xa71) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x80405d90)) ^ uVar26) ^ (byte)uVar14 ^
       bVar23;
  uVar10 = DAT_1826707ec;
  lVar2 = DAT_1826707a0;
  *(byte *)(lVar3 - (uVar28 ^ 0x82c059b0)) = bVar19 ^ 0x85;
  lVar3 = DAT_1826707a0;
  puVar17 = (ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0xb1a3fa3b));
  *(byte *)(*(ulonglong *)(lVar2 + -0x980) ^ (ulonglong)DAT_1826709c0) = (byte)uVar10 ^ 0xb0;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0x7fbfaadf)) =
       (*puVar17 ^ uVar24) + (CONCAT44(DAT_1826707c8,uVar9) ^ 0x35ebdd72028004c8);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x7d3fa94e)) ^ uVar24) =
       (byte)uVar14 ^ *(byte *)(lVar3 + -0xa71);
  *(byte *)(lVar3 - (uVar20 ^ 0xf993bbd2)) = (byte)uVar10 ^ 0xc3;
  uVar26 = *(ulonglong *)(lVar3 - (uVar22 ^ 0x7d3fafd6));
  *(ulonglong *)(lVar3 + -0x38) = uVar26;
  uVar22 = (ulonglong)DAT_182670af0;
  *(undefined8 *)(lVar3 + -0x5b0) = *(undefined8 *)(lVar3 - (uVar27 ^ 0x24175deb));
  *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x4c90b08)) = uVar22 ^ uVar26;
  uVar6 = DAT_1826707e0;
  uVar20 = (ulonglong)DAT_1826707e0;
  uVar29 = CONCAT44(uVar8,DAT_1826707f4);
  *(ulonglong *)(lVar3 + -0x548) =
       (CONCAT44(DAT_1826707f0,uVar5) ^ 0xc1e34cf43c934c92) -
       (CONCAT44(uVar16,uVar9) ^ 0x84c3a288ac104144);
  uVar26 = (ulonglong)DAT_182670a5c;
  *(ulonglong *)(lVar3 + -0x380) = *(ulonglong *)(lVar3 + -0x5b0) ^ uVar26;
  uVar16 = DAT_1826707e0 | DAT_1826707c4;
  DAT_1826707f0 = uVar16;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar4 ^ 0x80405560)) =
       (uVar29 ^ 0x82c05119a3b193f8) + *(ulonglong *)(lVar3 + -0x5b0);
  *(byte *)(lVar3 + -0xa89) =
       *(byte *)(uVar26 ^ *(ulonglong *)(lVar3 + -0x380)) ^ (byte)DAT_182670a14 ^ bVar23;
  *(byte *)(lVar3 - (uVar20 ^ 0xd5fef8b5)) = (byte)uVar4 ^ 3;
  *(byte *)(*(ulonglong *)(lVar3 + -0x7a0) ^ (ulonglong)_DAT_182670b10) = (byte)uVar16 ^ 0x32;
  *(ulonglong *)(lVar3 + -0x70) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0x2800d41)) ^ uVar22) +
       (CONCAT44(uVar6,uVar16) ^ 0xd5fefe7cd7fefefc);
  *(ulonglong *)(lVar3 + -0x7d8) =
       (CONCAT44(uVar9,uVar6) ^ 0xd6d6f4d2fd7e1463) - *(longlong *)(lVar3 + -0xd88);
  *(byte *)(*(ulonglong *)(lVar3 + -0x988) ^ uVar22) =
       *(byte *)(lVar3 - (uVar21 ^ 0x2800e40)) ^ (byte)DAT_182670a14;
  *(byte *)(lVar3 + -0xa89) = (byte)uVar16 ^ 0x83;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0xd5fef86c)) =
       *(ulonglong *)(lVar3 + -0xbb0) >> (((byte)uVar6 ^ 0x74) & 0x3f);
  uVar26 = (ulonglong)DAT_182670860;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar16 ^ 0xd7fef29d)) = *(undefined8 *)(lVar3 + -0x70);
  *(uint *)(lVar3 - (uVar21 ^ 0x2800f9d)) = (uVar16 ^ 0x6e174d00) + 0x2a7a3ab1;
  *(undefined8 *)(lVar3 + -0xa88) = *(undefined8 *)(lVar3 + -0x570);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x2800f01)) = (ulonglong)uVar11 ^ *(ulonglong *)(lVar3 + -0xc60);
  *(ulonglong *)(lVar3 - (uVar20 ^ 0xd5fef4fc)) = *(ulonglong *)(lVar3 + -0xa88) ^ uVar26;
  *(ulonglong *)(lVar3 + -0x770) =
       (uVar26 ^ *(ulonglong *)(lVar3 + -0xa80)) + (CONCAT44(uVar9,uVar6) ^ 0x28004c9d5fefe7d);
  *(ulonglong *)(lVar3 + -0x890) = *(ulonglong *)(lVar3 + -0x548) | *(ulonglong *)(lVar3 + -0xd88);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar25) * 4) = uVar15;
  return;
}



############ FUN_ 180d36ce0 size=5586 ############

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

void FUN_180d36ce0(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  byte bVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  byte bVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar25;
  
  uVar10 = DAT_182670a80;
  uVar8 = DAT_1826707e8;
  uVar7 = DAT_1826707d0;
  uVar6 = DAT_1826707cc;
  uVar5 = DAT_1826707c0;
  uVar2 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  uVar17 = (ulonglong)DAT_1826707e8;
  uVar32 = (ulonglong)DAT_1826707c0;
  uVar39 = (ulonglong)DAT_1826707d0;
  uVar21 = (ulonglong)DAT_1826707cc;
  uVar20 = DAT_1826707d0 + DAT_1826707cc;
  uVar24 = (DAT_1826707e8 << 0x10 | DAT_1826707e8 & 0xff00) << 8 | DAT_1826707e8 >> 8 & 0xff00 |
           DAT_1826707e8 >> 0x18;
  uVar25 = (ulonglong)uVar24;
  uVar22 = (DAT_1826707c0 << 0x10 | DAT_1826707c0 & 0xff00) << 8 | DAT_1826707c0 >> 8 & 0xff00 |
           DAT_1826707c0 >> 0x18;
  uVar30 = (DAT_1826707b8 << 0x10 | DAT_1826707b8 & 0xff00) << 8 | DAT_1826707b8 >> 8 & 0xff00 |
           DAT_1826707b8 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670c7c);
  uVar15 = *(uint *)(&DAT_18260f758 + DAT_182670c7c) ^ DAT_1826707b8;
  uVar37 = CONCAT44(DAT_182670990,DAT_182670990);
  DAT_1826707a8 = uVar20;
  DAT_1826707c8 = uVar30;
  DAT_1826707dc = uVar22;
  DAT_1826707e4 = uVar24;
  *(uint *)(DAT_1826707a0 + -0x398) =
       (DAT_1826707c0 ^ 0xbf598c44) >> (((byte)(DAT_1826707c0 >> 0x18) ^ 0x18) & 0x1f);
  uVar9 = DAT_182670820;
  uVar29 = (ulonglong)uVar22;
  uVar35 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar24 ^ 0xbe45b50b)) =
       (CONCAT44(DAT_182670928,DAT_182670928) ^ *(ulonglong *)(lVar3 + -0xce0)) -
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0xbc213e7e)) ^ uVar37) ^ uVar35;
  uVar23 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar34 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  puVar26 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xcbbf4886));
  uVar33 = (ulonglong)uVar30;
  uVar16 = CONCAT44(uVar9,uVar9) ^ uVar34 ^ uVar23 ^ *puVar26 ^
           *(ulonglong *)(DAT_1826707a0 + -0x610);
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar16;
  bVar18 = (byte)uVar6;
  uVar27 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar20 ^ 0x14585181)) =
       (uVar16 ^ uVar23) >> ((bVar18 ^ 0x36) & 0x3f) ^ uVar27;
  uVar9 = DAT_1826709f4;
  lVar3 = DAT_1826707a0;
  uVar23 = (*(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x412c0627)) ^ uVar23) <<
           ((bVar18 ^ 0xe) & 0x3f);
  uVar16 = CONCAT44(DAT_182670af0,DAT_182670af0);
  puVar40 = (ulonglong *)(DAT_1826707a0 + -0x5c0);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar23 ^ CONCAT44(DAT_182670904,DAT_182670904);
  lVar4 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar27 = (uVar23 | uVar27 ^ *puVar40) ^ uVar16;
  *(ulonglong *)(lVar3 + -0xd88) = uVar27;
  lVar3 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x163e27ac)) ^ uVar34) -
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x412c0f8f)) ^ uVar16) ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xbc21320e)) =
       uVar27 ^ uVar23 ^ uVar16 ^ uVar35 ^ *(ulonglong *)(lVar3 + -0xac0);
  uVar23 = uVar23 ^ *(ulonglong *)(lVar3 + -0xc18);
  uVar16 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar3 + -0x558) = uVar23 >> (((byte)uVar2 ^ 0xa2) & 0x3f) ^ uVar16;
  uVar23 = uVar23 << ((bVar18 ^ 0x1d) & 0x3f);
  uVar34 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(lVar3 + -0x658) = uVar23 ^ CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar9 = DAT_1826709c0;
  *(ulonglong *)(lVar3 + -0x9c8) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xd32c5762)) ^ uVar16 | uVar23) ^ uVar34;
  uVar23 = CONCAT44(uVar9,uVar9);
  uVar16 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x163e27dc)) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0xac0)) - (uVar23 ^ *(ulonglong *)(lVar3 + -0x890)) ^
       uVar16;
  uVar34 = uVar34 ^ *(ulonglong *)(lVar3 + -0x9c8);
  uVar16 = uVar16 ^ *(ulonglong *)(lVar3 + -0x660);
  uVar36 = CONCAT44(DAT_182670850,DAT_182670850);
  *(undefined8 *)(lVar3 + -0x4c8) = 0;
  *(ulonglong *)(lVar3 + -0x7d8) = uVar16 - uVar34 ^ uVar36;
  uVar9 = DAT_182670900;
  uVar27 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar28 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar3 + -0xf0) = uVar34 - (uVar27 ^ *(ulonglong *)(lVar3 + -0x998)) ^ uVar28;
  lVar4 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x220) =
       *(ulonglong *)(lVar3 - (uVar17 ^ 0xcbbf45d6)) ^ uVar31 ^ uVar19 ^ uVar37 ^
       *(ulonglong *)(lVar3 + -0x588);
  puVar40 = (ulonglong *)(lVar3 - (uVar29 ^ 0xbc213ee6));
  uVar34 = *(ulonglong *)(lVar4 + -0x220) ^ uVar31;
  *(ulonglong *)(lVar4 + -0xce0) = (uVar28 ^ *puVar40) << ((byte)uVar16 & 0x3f);
  uVar9 = _DAT_1826708bc;
  bVar12 = (byte)(uVar2 >> 0x18);
  uVar16 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(ulonglong *)(lVar4 + -0xd38) = uVar34 >> ((bVar12 ^ 0x76) & 0x3f) ^ uVar16;
  uVar35 = CONCAT44(uVar9,uVar9);
  bVar13 = (byte)uVar20;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xbc213a36)) = uVar34 << ((bVar13 ^ 0x5e) & 0x3f) ^ uVar35;
  uVar9 = DAT_182670920;
  *(uint *)(lVar4 - (uVar21 ^ 0xd32c51a2)) = *(uint *)(lVar4 + -0xcec) | 0x4d7b184c;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar4 + -0x420) | uVar16 ^ *puVar26;
  uVar16 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(lVar4 + -0x5c0) = uVar35 ^ uVar23;
  uVar19 = (uVar19 ^ *(ulonglong *)(lVar4 + -0x588)) -
           (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar4 + -0x6b8));
  *(undefined8 *)(lVar4 + -0x610) = 0x1ab405544ab44627;
  uVar10 = DAT_18267093c;
  *(ulonglong *)(lVar4 + -0x1b8) = uVar19 ^ uVar16;
  uVar9 = DAT_182670818;
  uVar34 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0xd88) = uVar19 - uVar35 ^ uVar34;
  lVar3 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar33 ^ 0xbb231e4f)) =
       CONCAT44(DAT_1826708e8,DAT_1826708e8) ^ CONCAT44(uVar30,uVar24) ^
       *(ulonglong *)(lVar4 + -0xbb0) ^ uVar19 ^ 0x44dceda841ba4034;
  uVar22 = DAT_1826707fc;
  uVar35 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  uVar16 = (uVar19 ^ *(ulonglong *)(lVar3 + -0xc18)) + (uVar23 ^ *(ulonglong *)(lVar3 + -0x5c0)) ^
           uVar35;
  *(ulonglong *)(lVar3 + -0x558) = uVar16;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xbc21384e)) =
       *(ulonglong *)(lVar3 + -0x7d8) ^ CONCAT44(uVar22,uVar22) ^ uVar16 ^ uVar35 ^ uVar36;
  uVar37 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(lVar4 + -0x890) =
       ((ulonglong)uVar22 << 0x1b | (ulonglong)(uVar22 >> 5)) ^ *(ulonglong *)(lVar4 + -0x658) >> 5
       ^ uVar37;
  uVar9 = DAT_1826709bc;
  *(ulonglong *)(lVar4 + -0xac0) =
       (CONCAT44(uVar2,uVar2) ^ 0xa2047db4c447989c) >> ((bVar13 ^ 0x77) & 0x3f);
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x412c06cf)) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0xbb23140f)) ^ CONCAT44(uVar22,uVar22)) << 0x3b ^ uVar16;
  *(ulonglong *)(lVar4 - (uVar17 ^ 0xcbbf4c76)) =
       *(ulonglong *)(lVar4 - (uVar32 ^ 0x163e2da4)) ^ uVar19 ^ 0xa926f2629b88c713;
  uVar9 = DAT_1826709e8;
  uVar35 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar4 + -0x68) =
       (uVar16 ^ *(ulonglong *)(lVar4 + -0x4c8) | uVar37 ^ *(ulonglong *)(lVar4 + -0x890)) ^ uVar35;
  uVar37 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0x14585221)) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0xd32c55e2)) ^ uVar36) -
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xbe45bfa3)) ^ uVar35) ^ uVar37;
  uVar9 = DAT_182670adc;
  lVar3 = DAT_1826707a0;
  uVar16 = *(ulonglong *)(lVar4 + -0xd88);
  uVar19 = (ulonglong)DAT_18267099c;
  uVar36 = CONCAT44(DAT_18267099c,DAT_18267099c);
  uVar28 = uVar36 ^ uVar34 ^ uVar28 ^ uVar16 ^ *puVar40;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar28;
  lVar4 = DAT_1826707a0;
  uVar19 = (uVar28 >> 0x20 ^ uVar19) >> 5;
  bVar14 = (byte)(uVar8 >> 0x18);
  *(ulonglong *)(lVar3 + -0x220) = uVar19 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xd38) = CONCAT44(uVar6,uVar24) ^ 0x313229fb2c5fed86;
  uVar9 = DAT_182670a4c;
  puVar40 = (ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0x57122f5b));
  uVar28 = (uVar36 ^ *puVar40) << ((bVar14 ^ 0xd0) & 0x3f);
  *(ulonglong *)(lVar4 + -0x420) = uVar28 ^ CONCAT44(DAT_182670844,DAT_182670844);
  uVar28 = uVar28 | uVar19;
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar19 = uVar28 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar19;
  *(ulonglong *)(lVar4 + -0x588) = (uVar34 ^ uVar16) - uVar28 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x610) =
       (CONCAT44(uVar5,uVar7) ^ 0x44357e76d7f65bb9) -
       (*(ulonglong *)(lVar4 - (uVar17 ^ 0xcbbf4036)) ^ uVar36);
  uVar9 = DAT_182670960;
  uVar28 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  uVar19 = uVar28 ^ uVar37 ^ uVar27 ^ *(ulonglong *)(lVar4 + -0x660) ^ uVar19;
  *(ulonglong *)(lVar4 + -0x1b8) = uVar19;
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar21 ^ 0xd32c598a)) = (uVar19 ^ uVar28) >> (bVar12 & 0x3f) ^ uVar34;
  uVar16 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x163e247c)) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x1b8)) << ((bVar14 ^ 0xe2) & 0x3f) ^ uVar16;
  uVar10 = DAT_182670af4;
  uVar16 = uVar16 ^ *(ulonglong *)(lVar4 + -0x5c0) | uVar34 ^ *(ulonglong *)(lVar4 + -0xbb0);
  uVar41 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar4 + -0x558) = uVar16 ^ uVar41;
  uVar9 = DAT_182670848;
  uVar34 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0xac0) = (uVar37 ^ *(ulonglong *)(lVar4 + -0x660)) - uVar16 ^ uVar34;
  uVar16 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0xbe45b993)) =
       uVar16 ^ uVar36 ^ uVar35 ^ *(ulonglong *)(lVar4 + -0x68) ^ *(ulonglong *)(lVar4 + -0x588);
  uVar9 = DAT_182670908;
  *(ulonglong *)(lVar4 + -0xc18) = (uVar28 ^ *(ulonglong *)(lVar4 + -0x1b8)) + 0xe55ad1b97db85671;
  lVar3 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) =
       (uVar16 ^ *(ulonglong *)(DAT_1826707a0 + -0x658)) >> ((bVar12 ^ 0x7f) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar3 + -0x890) = uVar36 ^ *(ulonglong *)(lVar3 + -0x588) | 0x7c356ad7879b91b;
  uVar19 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x412c045f)) ^ uVar16) << 0x18 ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0xbc2139ce)) =
       (CONCAT44(uVar20,uVar30) ^ 0x30eabc34ecd3bfa6) -
       (CONCAT44(uVar7,uVar20) ^ 0xb34f127d59762327);
  uVar37 = CONCAT44(DAT_182670964,DAT_182670964);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xcbbf454e)) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x4c8) | uVar35 ^ *(ulonglong *)(lVar3 + -0x9c8)) ^ uVar37;
  uVar35 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar16 = (*(ulonglong *)(lVar3 - (uVar25 ^ 0xbe45ba43)) ^ uVar36) -
           (uVar37 ^ *(ulonglong *)(lVar3 + -0xf0));
  *(ulonglong *)(lVar3 + -0xd38) = uVar16 ^ uVar35;
  uVar9 = DAT_182670808;
  *puVar40 = uVar16 + 0x96b783541cb4da3a;
  uVar16 = CONCAT44(uVar9,uVar9);
  puVar40 = (ulonglong *)(lVar3 - (uVar32 ^ 0x163e239c));
  *puVar40 = uVar16 ^ uVar37 ^ uVar34 ^ *(ulonglong *)(lVar3 + -0xac0) ^
             *(ulonglong *)(lVar3 + -0xf0);
  uVar9 = DAT_1826708a4;
  lVar3 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_182670a08,DAT_182670a08);
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xbb231077)) ^ uVar16) >> ((bVar13 ^ 0x75) & 0x3f)
       ^ uVar32;
  uVar17 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0xd88) = (uVar16 ^ *puVar40) << 0xc ^ uVar17;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0xbc213806)) =
       (uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) >> ((bVar18 ^ 0x3a) & 0x3f);
  uVar9 = DAT_1826709a4;
  uVar16 = uVar17 ^ *(ulonglong *)(lVar3 + -0xd88);
  uVar29 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar32 ^ *(ulonglong *)(lVar3 + -0x420) | uVar16) ^ uVar29;
  lVar3 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar9,uVar9);
  puVar40 = (ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x412c078f));
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (uVar34 ^ *(ulonglong *)(DAT_1826707a0 + -0xac0)) -
       (*(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0xbb2314ef)) ^ uVar29) ^ uVar32;
  *(ulonglong *)(lVar3 - (uVar21 ^ 0xd32c57fa)) = (*puVar40 ^ uVar36) >> ((byte)uVar16 & 0x3f);
  uVar37 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(ulonglong *)(lVar3 + -0x660) =
       uVar35 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0xd38) ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x558);
  uVar5 = DAT_1826707b4;
  uVar34 = (ulonglong)DAT_1826707b4;
  uVar28 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0x571223d3)) =
       (CONCAT44(uVar8,uVar6) ^ 0xd3e22301b2cbc1c) - (CONCAT44(uVar6,uVar8) ^ 0x8c2a1b7a87c34af);
  uVar6 = DAT_1826707bc;
  uVar21 = CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar33 = (*(ulonglong *)(lVar3 - (uVar33 ^ 0xbb231437)) ^ uVar37) >> ((bVar14 ^ 0xf2) & 0x3f);
  uVar16 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar3 + -0xc18) = uVar33 ^ uVar21;
  lVar3 = DAT_1826707a0;
  uVar2 = uVar6;
  if ((uVar5 & 1) == 0) {
    uVar2 = uVar5;
  }
  uVar38 = (ulonglong)uVar2;
  uVar41 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar36 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  DAT_1826707e0 = uVar2;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0xedc4f95d)) ^ uVar37) <<
       (((byte)uVar5 ^ 0xc6) & 0x3f) ^ uVar41;
  uVar9 = DAT_182670a1c;
  uVar8 = DAT_182670a04;
  *(ulonglong *)(lVar3 + -0x890) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0xedc4fe85)) ^ uVar41 | uVar33) ^ uVar36;
  uVar41 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xde3cef99)) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0xd38)) -
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xde3ce151)) ^ uVar36) ^ uVar41;
  uVar7 = DAT_1826707f4;
  uVar33 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar3 + -0x7d8) =
       (*(ulonglong *)(lVar3 + -0x658) ^ uVar41) + *(longlong *)(lVar3 + -0x610);
  puVar40 = (ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xedc4f7ad));
  uVar28 = CONCAT44(DAT_182670a48,DAT_182670a48);
  uVar37 = *(ulonglong *)(lVar3 + -0xbb0) ^ *puVar40 ^ CONCAT44(uVar8,uVar8) ^ uVar36 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar37;
  uVar9 = DAT_182670878;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x9c8) =
       ((ulonglong)uVar8 << 0x12 | (ulonglong)(uVar8 >> 0xe)) ^ uVar37 >> 0xe ^ uVar28;
  uVar35 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0xce0) =
       (uVar37 ^ CONCAT44(uVar8,uVar8)) << (((byte)uVar7 ^ 8) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar4 - (uVar33 ^ 0x68cef1a)) =
       (CONCAT44(uVar5,uVar2) ^ 0x5b6508eb2d347ada) + 0xb80763dfac15cd31;
  *(ulonglong *)(lVar4 + -0xf0) =
       (*(ulonglong *)(lVar4 - (uVar38 ^ 0xedc4f3dd)) ^ uVar35 |
       uVar28 ^ *(ulonglong *)(lVar4 + -0x9c8)) ^ uVar23;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0xedc4fb1d)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x68ce122)) ^ uVar21) <<
       (((byte)uVar5 ^ 0xd0) & 0x3f);
  uVar35 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar33 = (*(ulonglong *)(lVar3 - (uVar16 ^ 0xedc4f48d)) ^ uVar32) -
           (*(ulonglong *)(lVar3 - (uVar33 ^ 0x68ce93a)) ^ uVar19);
  *(ulonglong *)(lVar3 + -0x588) =
       *(ulonglong *)(lVar3 + -0x610) >> ((byte)*(undefined8 *)(lVar3 + -0x220) & 0x3f);
  uVar9 = DAT_182670804;
  *(ulonglong *)(lVar3 + -0xac0) = uVar33 ^ uVar35;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xde3ce449)) =
       uVar33 - (uVar23 ^ *(ulonglong *)(lVar3 + -0xf0)) ^ uVar19;
  uVar6 = DAT_182670a54;
  uVar32 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar35 = (ulonglong)DAT_182670a54;
  *(ulonglong *)(lVar3 + -0x5c0) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xf0)) - (*(ulonglong *)(lVar3 + -0x438) ^ uVar31) ^ uVar32
  ;
  uVar10 = _DAT_1826709e0;
  lVar4 = DAT_1826707a0;
  uVar29 = *(ulonglong *)(lVar3 - (uVar34 ^ 0xde3cef79)) ^
           *(ulonglong *)(lVar3 - ((ulonglong)uVar2 ^ 0xedc4f965)) ^ CONCAT44(uVar6,uVar6) ^ uVar41
           ^ uVar29;
  *(ulonglong *)(lVar3 + -0x558) = uVar29;
  uVar9 = DAT_18267083c;
  uVar33 = (ulonglong)DAT_1826707f4;
  uVar23 = ((ulonglong)(uVar6 >> 0x10) | uVar35 << 0x10) ^ uVar29 >> 0x10;
  *(ulonglong *)(lVar3 + -0x68) = uVar23 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_18267096c;
  *(ulonglong *)(lVar4 + -0x660) = (CONCAT44(uVar6,uVar6) ^ uVar29) << 0x30 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0x1b8) =
       (CONCAT44(uVar2,uVar7) ^ 0xf398ce075d1a8932) + *(longlong *)(lVar4 + -0x588);
  uVar35 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0xde3ce4f9)) =
       (*(ulonglong *)(lVar4 - (uVar33 ^ 0x68ceb5a)) ^ CONCAT44(uVar9,uVar9) | uVar23) ^ uVar35;
  *(longlong *)(lVar4 - (uVar38 ^ 0xedc4f8e5)) =
       *(longlong *)(lVar4 + -0x1b8) << ((*(byte *)(lVar4 + -0x660) ^ (byte)uVar9) & 0x3f);
  lVar3 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar34 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x68ce5aa)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x658) ^ uVar41) -
       (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0x998)) ^ uVar33;
  uVar11 = DAT_182670898;
  uVar29 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*puVar40 ^ uVar33) - (*(ulonglong *)(lVar3 + -0xd38) ^ uVar35) ^ uVar29;
  uVar10 = DAT_182670854;
  uVar33 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xce0) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0xedc4f205)) ^ uVar35) -
       (CONCAT44(DAT_182670a5c,DAT_182670a5c) ^ *(ulonglong *)(lVar3 + -0x118)) ^ uVar33;
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x6e8) ^ uVar23) =
       uVar17 ^ *(ulonglong *)(lVar3 + -0xd88) ^ uVar19;
  puVar40 = (ulonglong *)((*(ulonglong *)(lVar3 + -0x6e8) ^ uVar23) + 8);
  *(ulonglong *)(lVar3 + -0x5c8) = (ulonglong)puVar40 ^ CONCAT44(DAT_18267094c,DAT_18267094c);
  *puVar40 = uVar17 ^ uVar32 ^ *(ulonglong *)(lVar3 + -0x5c0);
  puVar40 = (ulonglong *)
            ((*(ulonglong *)(lVar3 + -0x6e8) ^ uVar23) +
            (CONCAT44(uVar5,uVar30) ^ 0xde3ce9c1bb231255) * 8);
  *(ulonglong *)(lVar3 + -0xbe8) = (ulonglong)puVar40 ^ CONCAT44(DAT_182670a74,DAT_182670a74);
  *puVar40 = uVar17 ^ *(ulonglong *)(lVar3 + -0x4c8) ^ uVar29;
  uVar10 = DAT_182670998;
  *(longlong *)(lVar3 + -0x9c8) =
       0x502f9dfe173e9af7 << ((*(byte *)(lVar3 + -0x660) ^ (byte)uVar9) & 0x3f);
  uVar29 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar25 ^ 0xbe45be23)) =
       (*(ulonglong *)(lVar3 - (uVar39 ^ 0x412c04ef)) ^ uVar23) +
       (CONCAT44(uVar2,uVar5) ^ 0xedc4ff3dde3ce9c2) * 8 ^ uVar29;
  *(ulonglong *)(*(ulonglong *)(lVar3 + -0x1e8) ^ uVar29) =
       *(ulonglong *)(lVar3 - (uVar34 ^ 0x68ce1da)) ^ uVar17 ^ uVar33;
  *(ulonglong *)(lVar3 + -0xb78) = *(ulonglong *)(lVar3 + -0x6e8) ^ uVar23;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar30) * 4) = uVar15;
  *(undefined8 *)(lVar3 + -0xae0) = *(undefined8 *)(lVar3 - (uVar16 ^ 0xedc4febd));
  return;
}



############ FUN_ 180c54be0 size=4771 ############

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

void FUN_180c54be0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte *pbVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  longlong lVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  uint uVar37;
  uint uVar38;
  uint uVar39;
  ulonglong uVar40;
  byte *pbVar41;
  ulonglong uVar42;
  uint uVar43;
  uint uVar44;
  uint uVar45;
  ulonglong uVar46;
  uint *puVar47;
  uint *puVar48;
  
  uVar10 = DAT_182670928;
  uVar36 = DAT_1826707f4;
  uVar32 = DAT_1826707e8;
  uVar25 = DAT_1826707c4;
  uVar31 = DAT_1826707bc;
  uVar20 = DAT_1826707b8;
  lVar6 = DAT_1826707a0;
  uVar17 = (ulonglong)DAT_1826707c4;
  DAT_1826707e0 = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  DAT_1826707f0 = DAT_1826707e4 + DAT_1826707cc;
  uVar13 = DAT_1826707b0 & 3;
  if (uVar13 < 2) {
    uVar15 = DAT_1826707c4;
    if (uVar13 == 0) {
      uVar15 = DAT_1826707b0;
    }
  }
  else {
    uVar15 = DAT_1826707e8;
    if (uVar13 < 3) {
      uVar15 = DAT_1826707dc;
    }
  }
  DAT_1826707b4 = DAT_1826707f4 - DAT_1826707d8;
  uVar24 = DAT_1826707bc | DAT_1826707b8;
  uVar43 = *(uint *)(&DAT_18260f758 + DAT_182670cb8) ^ DAT_1826707b4;
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670cb8) ^ DAT_1826707d8;
  uVar23 = (ulonglong)_DAT_18267097c;
  uVar40 = CONCAT44(DAT_1826707b8,DAT_1826707bc);
  puVar1 = (uint *)(DAT_1826707a0 + -0x9ec);
  DAT_1826707d0 = uVar24;
  DAT_1826707ec = uVar15;
  *puVar1 = *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0x7d711eae)) ^ DAT_182670964 ^
            DAT_182670ab4;
  uVar13 = DAT_182670a3c;
  uVar21 = DAT_1826707dc;
  pbVar41 = (byte *)((uVar40 ^ 0xeb12f8d501a6c008) * 0x20 +
                     (CONCAT44(uVar24,uVar32) ^ 0xebb6f8dd3f7dc683) + *(longlong *)(lVar6 + -0x30));
  *(ulonglong *)(lVar6 + -0x270) = (ulonglong)pbVar41 ^ uVar23;
  uVar44 = DAT_1826708e0;
  uVar23 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar6 + -0x118) =
       (*(ulonglong *)(lVar6 - (uVar17 ^ 0xd5f81fd3)) ^ CONCAT44(uVar13,uVar13)) >>
       (((byte)uVar10 ^ *(byte *)(lVar6 - ((ulonglong)uVar21 ^ 0x80420398))) & 0x3f);
  bVar5 = DAT_182670ad4;
  uVar13 = DAT_1826707b0;
  uVar40 = (ulonglong)DAT_1826707b0;
  *(byte *)(lVar6 - (uVar23 ^ 0x3c58c5c)) = *pbVar41 ^ DAT_182670ad4 ^ (byte)DAT_182670adc;
  uVar42 = (ulonglong)uVar15;
  *(uint *)(lVar6 - (uVar40 ^ 0xad6fdac2)) = (bVar5 ^ *(byte *)(lVar6 + -0xc35)) ^ uVar44;
  uVar9 = DAT_182670b00;
  uVar8 = DAT_1826707e4;
  uVar39 = DAT_1826707e0;
  lVar7 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707e4;
  uVar27 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar6 + -0x7e4) =
       (*(uint *)(lVar6 - ((ulonglong)uVar15 ^ 0x80420dac)) ^ DAT_182670964) +
       (DAT_1826707f0 ^ 0x1c04b4df) ^ DAT_182670b00;
  uVar38 = DAT_1826707cc;
  lVar6 = DAT_1826707a0;
  puVar2 = (uint *)(DAT_1826707a0 + -0x43c);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       CONCAT44(DAT_1826707d4,uVar8) ^ 0xa303b2e5d92b3798 |
       CONCAT44(DAT_1826707cc,uVar39) ^ 0xc94c16e19ee177c2;
  *(uint *)(lVar6 - ((ulonglong)uVar36 ^ 0x7d711af6)) = (*puVar2 ^ uVar44) << 0x11 ^ DAT_182670ad8;
  uVar19 = DAT_1826707d8;
  *(uint *)(lVar7 + -0x280) =
       (uVar9 ^ *(uint *)(lVar7 + -0x7e4)) -
       (*(uint *)(DAT_1826707a0 - (uVar42 ^ 0x80420694)) ^ DAT_182670ad8) ^ DAT_18267082c;
  uVar23 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar7 + -0xf0) = CONCAT44(uVar8,uVar19) ^ 0xfbbbbf5bf1fbd77b | 0x19399912d06b457b;
  *(uint *)(lVar7 + -0x398) =
       (*(uint *)(lVar7 - (uVar23 ^ 0x2d4d9c5a)) ^ DAT_18267082c) *
       (*(uint *)(lVar7 + -0x3d4) ^ DAT_18267080c) ^ DAT_182670904;
  uVar19 = DAT_1826708c0;
  lVar6 = DAT_1826707a0;
  puVar3 = (uint *)(DAT_1826707a0 + -0x68c);
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0x80420ca0)) =
       (*(uint *)(lVar7 + -0x43c) ^ uVar44) * 9 ^ DAT_1826708c0;
  uVar16 = (ulonglong)DAT_1826707b4;
  puVar4 = (uint *)(lVar6 + -0x42c);
  *(uint *)(lVar6 - ((ulonglong)DAT_1826707b4 ^ 0x3df3396c)) =
       (*(uint *)(lVar6 + -0x398) ^ DAT_182670904) + (uVar19 ^ *(uint *)(lVar6 + -0x8e0)) ^ uVar9;
  uVar19 = (uVar9 ^ *(uint *)(lVar6 + -0x814)) << 0xd ^ DAT_182670aac;
  *(uint *)(lVar6 + -0xc34) = uVar19;
  uVar19 = uVar19 ^ DAT_182670aac;
  uVar44 = (uVar9 ^ *(uint *)(lVar6 + -0x814)) >> 0x13 ^ DAT_182670ab8;
  *puVar4 = uVar44;
  puVar2 = (uint *)(lVar6 + -0x14);
  *(uint *)(lVar6 - ((ulonglong)uVar20 ^ 0xeb12f2e1)) =
       (uVar44 ^ DAT_182670ab8 | uVar19) ^ DAT_182670a70;
  uVar19 = (*(uint *)(lVar6 - ((ulonglong)uVar15 ^ 0x80420794)) ^ DAT_18267080c) +
           (*(uint *)(lVar6 + -0xb54) ^ DAT_182670848) ^ DAT_182670854;
  *(uint *)(lVar6 + -0xc0c) = uVar19;
  *(uint *)(lVar6 - (uVar40 ^ 0xad6fdeea)) = uVar19 ^ DAT_182670800 ^ DAT_182670854;
  uVar23 = (ulonglong)DAT_1826707ac;
  uVar19 = *(uint *)(lVar6 - ((ulonglong)uVar39 ^ 0x9eda2779)) ^ DAT_182670950 ^ DAT_182670a70;
  *(uint *)(lVar6 + -0x540) = uVar19;
  uVar44 = DAT_182670880;
  uVar19 = uVar19 ^ DAT_182670880 ^ DAT_182670950;
  *puVar3 = DAT_182670880 ^ DAT_182670800 ^ *puVar2;
  bVar5 = (byte)DAT_182670a1c;
  uVar45 = DAT_1826708b0;
  lVar7 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826708b0;
  *(uint *)(lVar6 - (uVar23 ^ 0x3c58985)) = uVar19;
  uVar11 = DAT_182670a8c;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar36 ^ 0x7d711aca)) =
       *(longlong *)(lVar6 - (uVar17 ^ 0xd5f812db)) + (CONCAT44(uVar31,uVar32) ^ 0x1a6c0083f7dc69e)
       ^ uVar28;
  uVar32 = DAT_182670adc;
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x9eda2b7d)) =
       *(ulonglong *)(lVar6 + -0xd88) >> ((byte)*(undefined8 *)(lVar6 + -0x1b8) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707d8;
  *(byte *)(lVar6 - ((ulonglong)uVar20 ^ 0xeb12fecc)) =
       *(byte *)(*(ulonglong *)(lVar6 + -0x2e8) ^ uVar28) ^ bVar5 ^ (byte)uVar32;
  uVar20 = DAT_182670b08;
  pbVar41 = (byte *)(lVar6 + -0x619);
  *(uint *)(lVar7 + -0x7e4) = (bVar5 ^ *pbVar41) ^ DAT_182670b08;
  uVar36 = (*(uint *)(lVar7 - (uVar23 ^ 0x3f7def46)) ^ uVar44) + (DAT_1826707e0 ^ 0x55fe606e);
  *(uint *)(lVar7 + -0x2d4) = uVar36 ^ uVar11;
  *(uint *)(lVar7 + -0x280) =
       (*(uint *)(lVar7 - (uVar40 ^ 0xad6fd91a)) ^ uVar20) << 0x11 ^ DAT_182670af4;
  uVar9 = DAT_1826708a4;
  uVar32 = DAT_1826707a8;
  uVar46 = (ulonglong)DAT_1826707a8;
  uVar37 = uVar36 - (*(uint *)(lVar7 - ((ulonglong)uVar21 ^ 0x804206c0)) ^ DAT_182670af4) ^
           DAT_1826709ec;
  uVar36 = DAT_1826707a8 & 0xff00;
  uVar19 = DAT_1826707a8 << 0x10;
  *(uint *)(lVar7 + -0x43c) = uVar37;
  uVar21 = DAT_18267087c;
  lVar6 = DAT_1826707a0;
  uVar30 = (uVar19 | uVar36) << 8 | uVar32 >> 8 & 0xff00 | DAT_1826707a8 >> 0x18;
  uVar26 = (ulonglong)uVar30;
  uVar37 = (*(uint *)(lVar7 - ((ulonglong)uVar32 ^ 0xaae67bb3)) ^ uVar44) * (uVar37 ^ DAT_1826709ec)
  ;
  DAT_1826707c0 = uVar30;
  *(uint *)(DAT_1826707a0 + -0x398) = uVar37 ^ uVar9;
  uVar19 = DAT_1826707f0;
  uVar36 = DAT_1826707c4;
  lVar7 = DAT_1826707a0;
  uVar20 = (*(uint *)(lVar6 - ((ulonglong)uVar30 ^ 0x3f7de14e)) ^ uVar20) * (uVar30 ^ 0x3f7de6be) ^
           DAT_182670a4c;
  *(uint *)(DAT_1826707a0 + -0x8e0) = uVar20;
  uVar37 = uVar37 + (uVar20 ^ DAT_182670a4c);
  *(uint *)(lVar7 + -0x814) = uVar37 ^ uVar21;
  uVar20 = DAT_1826707ac;
  lVar33 = (CONCAT44(uVar30,uVar32) ^ 0x7e14f095afa5afbe) -
           (CONCAT44(uVar38,uVar31) ^ 0x80ae32b7110eb174);
  *(uint *)(lVar7 + -0xc34) = uVar37 << (((byte)uVar36 ^ 0xe6) & 0x1f) ^ DAT_18267083c;
  *(longlong *)(lVar7 + -0x6f0) = lVar33;
  lVar6 = DAT_1826707a0;
  bVar18 = (byte)uVar36 ^ 0xf8;
  uVar37 = DAT_1826707ec ^ 0x97f4c204;
  *(ulonglong *)(lVar7 - (uVar16 ^ 0x3df33110)) =
       (CONCAT44(uVar19,uVar20) ^ 0x51aa4549b34e777c) - lVar33;
  uVar30 = DAT_182670adc;
  uVar31 = DAT_182670960;
  *puVar4 = (*(uint *)(lVar7 - (uVar17 ^ 0xd5f81aff)) ^ uVar21) >> (bVar18 & 0x1f) ^ DAT_182670adc;
  *(uint *)(lVar7 + -0x3d4) =
       (*(uint *)(lVar7 - (uVar26 ^ 0x3f7de286)) ^ uVar30 |
       *(uint *)(lVar7 + -0xc34) ^ DAT_18267083c) ^ uVar31;
  uVar21 = (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) + (*puVar3 ^ uVar44) ^ uVar45;
  *(ulonglong *)(lVar7 + -0x5c0) = *(ulonglong *)(lVar7 + -0x630) ^ 0x91f60d6189f78a3f;
  *(uint *)(lVar7 + -0xc0c) = uVar21;
  uVar36 = DAT_1826709dc;
  uVar20 = DAT_1826707e8;
  uVar23 = (ulonglong)DAT_1826708e8;
  puVar48 = (uint *)(lVar7 - ((ulonglong)uVar24 ^ 0xebb6f2e9));
  *puVar48 = DAT_1826707fc ^ uVar45 ^ uVar21;
  uVar21 = *(uint *)(lVar7 + -0x3d4) ^ uVar31 ^ DAT_182670a3c;
  *puVar2 = uVar21;
  uVar44 = uVar21 ^ DAT_182670954 ^ DAT_182670a3c;
  *(uint *)(lVar7 + -0x540) = uVar37 >> (((byte)uVar20 ^ 0x84) & 0x1f);
  uVar20 = *(uint *)(lVar7 + -0xa34);
  *(uint *)(lVar6 + -0x2d4) = uVar44;
  uVar45 = uVar20 ^ uVar36 ^ DAT_1826707fc;
  *puVar1 = uVar45;
  pbVar22 = (byte *)((CONCAT44(uVar24,uVar25) ^ 0xebb6f8ddd5f812eb) * 0x20 +
                    *(longlong *)(lVar6 + -0x30) + 0x1f);
  uVar44 = uVar44 ^ DAT_182670954;
  *(ulonglong *)(lVar6 + -0xdb8) = (ulonglong)pbVar22 ^ uVar23;
  lVar6 = DAT_1826707a0;
  uVar44 = uVar44 + (uVar32 ^ 0x61c2301c);
  bVar12 = (byte)uVar30;
  *(byte *)(DAT_1826707a0 + -0xc35) = *pbVar22 ^ (byte)uVar9 ^ bVar12;
  bVar5 = *(byte *)((ulonglong)_DAT_18267097c ^ *(ulonglong *)(lVar6 + -0x270));
  *(uint *)(lVar6 + -0x43c) = uVar44 ^ uVar31;
  *pbVar41 = bVar5 ^ bVar12;
  uVar21 = DAT_182670ab4;
  uVar25 = DAT_182670920;
  uVar20 = DAT_1826707d4;
  uVar31 = uVar9 & 0xff ^ (uint)*(byte *)(lVar6 + -0xc35);
  bVar5 = (byte)DAT_1826707e4;
  *(uint *)(lVar6 + -0x280) = uVar31 ^ DAT_182670920;
  *(uint *)(lVar6 + -0x7e4) = uVar31 << ((bVar5 ^ 0x83) & 0x1f) ^ DAT_182670878;
  *(uint *)(lVar6 + -0x398) =
       uVar44 - (*(uint *)(lVar6 - ((ulonglong)uVar20 ^ 0x2d4d993e)) ^ DAT_182670878) ^ uVar21;
  uVar32 = DAT_182670988;
  uVar31 = DAT_1826707f4;
  *(uint *)(lVar6 + -0x8e0) =
       (*(uint *)(lVar6 - ((ulonglong)DAT_1826707f4 ^ 0x7d711bba)) ^ uVar21) * (uVar45 ^ uVar36) ^
       DAT_182670850;
  *(uint *)(lVar6 + -0x814) =
       (*(uint *)(lVar6 - ((ulonglong)DAT_1826707bc ^ 0x1a6c288)) ^ uVar25) *
       (DAT_1826707d8 ^ 0x3f7de6b5) ^ DAT_1826709f0;
  uVar23 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar6 + -0xc34) =
       (*(uint *)(lVar6 - ((ulonglong)uVar20 ^ 0x2d4d963a)) ^ DAT_182670850) +
       (*(uint *)(lVar6 - ((ulonglong)DAT_1826707e8 ^ 0x3f7dce9e)) ^ DAT_1826709f0) ^ uVar32;
  *(ulonglong *)(lVar6 - (uVar23 ^ 0x3c58249)) =
       CONCAT44(uVar13,uVar24) ^ 0x1004084cf00a070c | 0xa6d3d7b00bd578f2;
  uVar20 = *(uint *)(lVar6 + -0xc34);
  uVar23 = CONCAT44(uVar38,DAT_1826707b8);
  uVar25 = DAT_1826709a8 ^ DAT_1826708f0;
  uVar38 = (*(uint *)(lVar6 - ((ulonglong)uVar19 ^ 0xd720f5c8)) ^ uVar32) << 0xd ^ DAT_182670890;
  *puVar4 = uVar38;
  uVar38 = uVar38 ^ DAT_182670890;
  bVar5 = (byte)DAT_1826707b4;
  *(ulonglong *)(lVar6 + -0x890) = *(longlong *)(lVar6 + -0x9c8) - (uVar23 ^ 0xc4aed1881ed6af20);
  *puVar3 = (uVar20 ^ uVar32) >> ((bVar5 ^ 0x6b) & 0x1f) ^ DAT_182670a90;
  *(uint *)(lVar6 + -0xc0c) =
       (*(uint *)(lVar6 - (uVar42 ^ 0x804202cc)) ^ DAT_182670a90 | uVar38) ^ DAT_1826709f8;
  uVar20 = (*(uint *)(lVar6 + -0xb54) ^ DAT_182670848) + (*puVar1 ^ uVar36) ^ DAT_1826708f0;
  *(uint *)(lVar6 + -0x3d4) = uVar20;
  *(uint *)(lVar6 - ((ulonglong)uVar31 ^ 0x7d711d62)) = uVar25 ^ uVar20;
  uVar25 = DAT_182670810;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 + -0x2b0) =
       *(ulonglong *)(CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar6 + -0x1e8)) ^
       CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar35 = (ulonglong)DAT_182670a30;
  puVar47 = (uint *)(lVar6 - ((ulonglong)DAT_1826707dc ^ 0x80420e74));
  *puVar47 = *(uint *)(lVar7 - (uVar26 ^ 0x3f7deaa6)) ^ uVar25 ^ DAT_1826709f8;
  uVar38 = DAT_1826709a0;
  uVar23 = *(ulonglong *)(lVar7 + -0xd88);
  uVar40 = *(ulonglong *)(lVar7 + -0x630);
  *puVar2 = *(uint *)(lVar7 - (uVar46 ^ 0xaae6787f)) ^ DAT_1826709a8 ^ uVar21;
  uVar21 = DAT_182670a34;
  uVar29 = CONCAT44(uVar15,uVar31);
  *(ulonglong *)(lVar7 - (uVar42 ^ 0x80420220)) = uVar23 | uVar40;
  *(uint *)(lVar7 - (uVar34 ^ 0x41248446)) = uVar38 ^ uVar25 ^ *(uint *)(lVar7 + -0xa34);
  bVar5 = (byte)DAT_182670a04;
  pbVar22 = (byte *)((uVar29 ^ 0x804204407d711828) + *(longlong *)(DAT_1826707a0 + -0x30));
  *(ulonglong *)(DAT_1826707a0 + -0x248) = (ulonglong)pbVar22 ^ uVar35;
  uVar20 = DAT_182670adc;
  *(ulonglong *)(lVar7 + -0x410) =
       (CONCAT44(uVar39,uVar8) ^ 0x56d8431208177d2c) >>
       ((byte)*(undefined8 *)(lVar7 + -0x6f0) & 0x3f);
  bVar12 = *pbVar22 ^ (byte)uVar20;
  *pbVar41 = bVar12 ^ bVar5;
  uVar20 = DAT_1826707b4;
  *(uint *)(lVar7 + -0x43c) = bVar12 ^ uVar21;
  uVar32 = DAT_182670a58;
  uVar31 = DAT_182670838;
  uVar23 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar7 - ((ulonglong)DAT_1826707d8 ^ 0x3f7de14e)) =
       (uVar38 ^ *(uint *)(lVar7 + -0x2d4)) + (uVar20 ^ 0xf6d77c5b) ^ DAT_182670a58;
  uVar20 = (*(uint *)(lVar7 - (uVar23 ^ 0x3c58455)) ^ uVar21) <<
           (((byte)DAT_1826707b8 ^ 0xc4) & 0x1f);
  *(uint *)(lVar7 + -0x398) = uVar20 ^ DAT_182670968;
  *(uint *)(lVar7 + -0x280) = (uVar32 ^ *(uint *)(lVar7 + -0x7e4)) - uVar20 ^ DAT_182670b14;
  uVar32 = DAT_1826708b4;
  lVar6 = DAT_1826707a0;
  uVar39 = (*(uint *)(lVar7 - (uVar26 ^ 0x3f7de42a)) ^ DAT_182670b14) * (DAT_182670ab4 ^ *puVar2);
  uVar20 = *(uint *)(DAT_1826707a0 + -0x43c);
  *(longlong *)(DAT_1826707a0 + -0xce0) =
       *(longlong *)(DAT_1826707a0 + -0x610) - *(longlong *)(DAT_1826707a0 + -0x420);
  uVar15 = DAT_1826707b0 ^ 0xad6fdef4;
  *(uint *)(lVar6 + -0x8e0) = uVar39 ^ uVar31;
  uVar36 = DAT_18267091c;
  uVar15 = (uVar20 ^ uVar21) * uVar15;
  *(uint *)(lVar6 + -0x814) = uVar15 ^ uVar32;
  uVar31 = DAT_182670864;
  uVar20 = DAT_1826707e8;
  lVar6 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0xc34) = (*puVar48 ^ uVar25) << (((byte)DAT_1826707f4 ^ 0x35) & 0x1f);
  *puVar4 = uVar15 + uVar39 ^ uVar36;
  uVar23 = (ulonglong)DAT_1826707ac;
  uVar32 = (*(uint *)(lVar6 - (uVar17 ^ 0xd5f816c7)) ^ uVar36) << (((byte)uVar20 ^ 0x87) & 0x1f);
  *puVar3 = uVar32 ^ uVar31;
  uVar31 = DAT_182670824;
  uVar20 = (*(uint *)(lVar6 - (uVar23 ^ 0x3c58445)) ^ uVar36) >> (bVar18 & 0x1f);
  uVar25 = *(uint *)(lVar6 + -0xb54) ^ DAT_182670848;
  uVar32 = (uVar32 | uVar20) ^ DAT_182670aac;
  *puVar1 = uVar20 ^ DAT_182670abc;
  uVar20 = DAT_182670ab4;
  *(uint *)(lVar6 + -0x3d4) = uVar32;
  lVar7 = DAT_1826707a0;
  uVar32 = uVar32 ^ DAT_1826708ac ^ DAT_182670aac;
  *(uint *)(lVar6 + -0xc0c) = uVar25 + (uVar20 ^ *puVar2) ^ DAT_182670a6c;
  puVar48 = (uint *)(lVar6 - (uVar27 ^ 0x9eda2141));
  *(uint *)(lVar7 + -0x540) = *puVar48 ^ DAT_1826708e4 ^ DAT_182670a6c;
  *(uint *)(lVar7 + -0x2d4) = uVar32;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) =
       *(longlong *)(DAT_1826707a0 + -0xa18) - (CONCAT44(DAT_1826707d8,uVar19) ^ 0x218b576a68e16b5f)
  ;
  lVar7 = DAT_1826707a0;
  *(uint *)(lVar6 - (uVar46 ^ 0xaae67adb)) =
       *(uint *)(lVar6 - (uVar42 ^ 0x80420100)) ^ uVar31 ^ DAT_1826708e4;
  *(uint *)(lVar7 - (uVar16 ^ 0x3df332e0)) =
       *(uint *)(lVar7 - (uVar17 ^ 0xd5f8103f)) ^ DAT_1826708ac ^ uVar36;
  uVar15 = DAT_182670adc;
  bVar5 = (byte)DAT_18267095c;
  uVar23 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar7 - (uVar26 ^ 0x3f7de252)) =
       (CONCAT44(uVar13,DAT_1826707d4) ^ 0xad6fdefe2d4d9ecf) + (uVar29 ^ 0x804204407d711822) * 0x20
       + *(longlong *)(lVar7 + -0x30) ^ (ulonglong)uVar38;
  uVar32 = DAT_1826709bc;
  uVar25 = DAT_182670848;
  uVar20 = DAT_1826707bc;
  bVar12 = *(byte *)(*(ulonglong *)(lVar7 - (uVar17 ^ 0xd5f81613)) ^ (ulonglong)uVar38) ^
           (byte)uVar15;
  *(byte *)(lVar7 + -0xc35) = bVar12 ^ bVar5;
  uVar20 = (uVar36 ^ *(uint *)(lVar7 + -0x398)) + (uVar20 ^ 0xca828d2b) ^ _DAT_1826708f8;
  *(uint *)(lVar7 + -0x280) = bVar12 ^ uVar32;
  bVar5 = (byte)DAT_1826707ac;
  *(uint *)(lVar7 - ((ulonglong)uVar24 ^ 0xebb6fce1)) = uVar20;
  *puVar47 = (uVar32 ^ *(uint *)(lVar7 + -0x280)) << ((bVar5 ^ 0x78) & 0x1f) ^ DAT_1826709d4;
  uVar20 = DAT_1826707d8;
  *(uint *)(lVar7 - ((ulonglong)DAT_1826707d8 ^ 0x3f7dea9e)) =
       (*(uint *)(lVar7 - (uVar34 ^ 0x412482ae)) ^ _DAT_1826708f8) -
       (*(uint *)(lVar7 - (uVar42 ^ 0x80420e74)) ^ DAT_1826709d4) ^ uVar25;
  uVar31 = uVar31 ^ *(uint *)(lVar7 + -0x7e4);
  uVar36 = (uVar32 ^ *(uint *)(lVar7 + -0x280)) * (DAT_1826707f0 ^ 0xd720f9e9);
  *(uint *)(lVar7 + -0x8e0) =
       (*(uint *)(lVar7 - (uVar23 ^ 0x2d4d92ee)) ^ uVar25) * uVar31 ^ DAT_1826709d0;
  uVar23 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar7 + -0x814) = uVar36 ^ uVar25;
  uVar32 = DAT_182670a98;
  uVar25 = DAT_1826708dc;
  uVar17 = (ulonglong)DAT_1826707cc;
  uVar36 = (*(uint *)(lVar7 - (uVar23 ^ 0x3c58889)) ^ DAT_1826709d0) + uVar36;
  *puVar4 = uVar36 ^ DAT_182670a98;
  uVar36 = uVar36 << (((byte)uVar20 ^ 0xa7) & 0x1f);
  bVar12 = (byte)DAT_1826707b8;
  bVar5 = *(byte *)(*(ulonglong *)(lVar7 - (uVar17 ^ 0x95fc7182)) ^ uVar28);
  *puVar3 = uVar36 ^ uVar25;
  *pbVar41 = bVar5 ^ (byte)uVar15;
  uVar20 = (*puVar4 ^ uVar32) >> ((bVar12 ^ 0xc6) & 0x1f);
  uVar25 = uVar20 ^ DAT_182670a08;
  *puVar1 = uVar31 - (DAT_1826707d4 ^ 0xde1f75d5);
  uVar20 = (uVar20 | uVar36) ^ DAT_182670870;
  *puVar2 = uVar25;
  *puVar48 = uVar20;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar43;
  return;
}



############ FUN_ 180c6db20 size=5534 ############

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

void FUN_180c6db20(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  uint uVar27;
  uint uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong *puVar35;
  byte bVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  uint uVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  ulonglong *puVar56;
  byte local_120;
  byte local_108;
  byte local_100;
  byte local_e8;
  byte local_d8;
  byte local_a8;
  byte local_88;
  
  uVar9 = DAT_182670924;
  uVar7 = DAT_1826707e8;
  uVar6 = DAT_1826707e4;
  uVar14 = DAT_1826707e0;
  uVar16 = DAT_1826707c4;
  lVar3 = DAT_1826707a0;
  DAT_1826707f4 = DAT_1826707bc - DAT_1826707ec;
  uVar49 = (ulonglong)DAT_1826707c4;
  uVar24 = (ulonglong)DAT_1826707e8;
  uVar53 = DAT_1826707d0 * DAT_1826707cc;
  uVar39 = (ulonglong)DAT_1826707e0;
  uVar44 = DAT_1826707e0 ^ DAT_1826707e4;
  uVar50 = DAT_182670884 - DAT_182670978;
  uVar33 = ~DAT_1826707a8;
  DAT_1826707c8 = DAT_1826707e8 | DAT_1826707c4;
  uVar18 = DAT_1826708e8 - DAT_182670838;
  uVar27 = *(uint *)(&DAT_18260f758 + DAT_182670d04) ^ DAT_1826707c8;
  uVar11 = *(uint *)(&DAT_18260f760 + DAT_182670d04) ^ DAT_1826707c4;
  uVar12 = DAT_182670ae8 * DAT_182670890 & 0xff;
  DAT_18267084c = ((DAT_182670ae8 * DAT_182670890 * 0x100 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar43 = (ulonglong)DAT_1826707e4;
  uVar19 = CONCAT44(DAT_18267084c,DAT_18267084c);
  bVar36 = (byte)DAT_1826707e0;
  DAT_1826707ac = uVar44;
  DAT_1826707b0 = uVar53;
  DAT_1826707d4 = uVar33;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar44 ^ 0x7e915163)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x4febf03f)) ^
       CONCAT44(DAT_182670968,DAT_182670968)) << ((bVar36 ^ 0x13) & 0x3f) ^ uVar19;
  uVar10 = DAT_182670990;
  uVar12 = DAT_182670890 & 0xff;
  DAT_182670890 = ((DAT_182670890 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  puVar1 = (ulonglong *)(lVar3 + -0x9c8);
  uVar40 = CONCAT44(DAT_182670890,DAT_182670890);
  puVar2 = (ulonglong *)(lVar3 + -0x558);
  uVar20 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (CONCAT44(uVar9,uVar9) ^ *puVar1 | uVar19 ^ *(ulonglong *)(lVar3 + -0xac0)) ^ uVar40;
  uVar9 = DAT_182670920;
  uVar5 = DAT_1826707ec;
  uVar12 = DAT_1826707a8;
  uVar38 = (ulonglong)DAT_1826707a8;
  uVar34 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0x610) =
       (CONCAT44(DAT_1826707a8,uVar33) ^ 0xb6a8722d83e478d2) >>
       (((byte)uVar10 ^ *(byte *)puVar2) & 0x3f);
  uVar13 = DAT_182670ae8 & 0xff;
  DAT_182670ae8 = ((DAT_182670ae8 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar41 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar53 ^ 0x32efba08)) =
       (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar3 + -0xf0)) -
       (CONCAT44(uVar6,uVar5) ^ 0x314e5ecda659aaf4) ^ uVar41;
  uVar13 = DAT_182670978 & 0xff;
  DAT_182670978 = ((DAT_182670978 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar21 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar13 = DAT_182670884 & 0xff;
  uVar48 = (uVar41 ^ *(ulonglong *)(lVar3 + -0x998)) - (uVar40 ^ *(ulonglong *)(lVar3 + -0x4c8)) ^
           uVar21;
  DAT_182670884 = ((DAT_182670884 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar48;
  uVar8 = DAT_1826707f4;
  uVar25 = CONCAT44(DAT_182670884,DAT_182670884);
  uVar22 = (CONCAT44(uVar16,uVar14) ^ 0xf8ce0a49aab922cd) +
           (uVar40 ^ *(ulonglong *)(lVar3 + -0x4c8)) ^ uVar25;
  *puVar1 = uVar22;
  uVar13 = DAT_1826707cc;
  uVar14 = uVar50 & 0xff;
  DAT_182670910 = ((uVar50 * 0x100 | uVar14) << 8 | uVar14) << 8 | uVar14;
  uVar45 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar54 = CONCAT44(DAT_182670910,DAT_182670910);
  uVar37 = uVar54 ^ uVar45 ^ uVar22 ^ uVar25 ^ *(ulonglong *)(lVar3 + -0xc18);
  *(ulonglong *)(lVar3 + -0xac0) = uVar37;
  uVar14 = DAT_1826707bc;
  uVar50 = DAT_182670804 + DAT_1826707f8 & 0xff;
  DAT_1826708ac = (((DAT_182670804 + DAT_1826707f8) * 0x100 | uVar50) << 8 | uVar50) << 8 | uVar50;
  uVar30 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  uVar22 = (uVar54 ^ uVar37) >> (((byte)uVar13 ^ 0x14) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar22 ^ uVar30;
  uVar50 = DAT_1826707f8 & 0xff;
  DAT_1826707f8 = ((DAT_1826707f8 << 8 | uVar50) << 8 | uVar50) << 8 | uVar50;
  uVar32 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = (uVar54 ^ uVar37) << (((byte)uVar14 ^ 2) & 0x3f) ^ uVar32;
  lVar3 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x7e4) = (DAT_1826707e8 ^ 0x3a7) << 0x15;
  uVar22 = *(ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x234bb2c4)) ^ uVar32 | uVar22;
  uVar50 = DAT_182670804 & 0xff;
  *(ulonglong *)(lVar3 + -0x998) = uVar22 ^ uVar41;
  lVar4 = DAT_1826707a0;
  uVar28 = DAT_182670804 << 8;
  DAT_182670804 = ((uVar28 | uVar50) << 8 | uVar50) << 8 | uVar50;
  uVar37 = (ulonglong)DAT_182670804;
  uVar51 = CONCAT44(DAT_182670804,DAT_182670804);
  uVar22 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar53 ^ 0x32efbf88)) ^ uVar45) - uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar22 ^ uVar51;
  *puVar1 = uVar22 << ((byte)uVar22 & 0x3f);
  uVar14 = DAT_1826707bc;
  uVar13 = DAT_1826708e8 & 0xff;
  DAT_1826708e8 = ((DAT_1826708e8 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar45 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  puVar23 = (ulonglong *)(lVar4 - (uVar38 ^ 0xa322267c));
  puVar26 = (ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xb338a1e3));
  *puVar26 = uVar45 ^ *puVar23 ^ uVar21 ^ uVar20 ^ uVar48;
  uVar13 = DAT_1826707c8;
  local_a8 = (byte)uVar6;
  puVar55 = (ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x6febf1ef));
  *puVar55 = (uVar45 ^ *(ulonglong *)(lVar4 + -0xac0)) >> ((local_a8 ^ 0xa0) & 0x3f) ^ uVar19;
  uVar15 = DAT_182670838 & 0xff;
  DAT_182670838 = ((DAT_182670838 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  local_100 = (byte)uVar33;
  uVar20 = (uVar45 ^ *(ulonglong *)(lVar4 + -0xac0)) << ((local_100 ^ 0xfb) & 0x3f);
  uVar46 = CONCAT44(DAT_182670838,DAT_182670838);
  uVar15 = uVar18 & 0xff;
  *(ulonglong *)(lVar4 + -0xf0) = uVar20 ^ uVar46;
  lVar3 = DAT_1826707a0;
  DAT_182670ac0 = ((uVar18 * 0x100 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar42 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar20 = *(ulonglong *)(lVar4 - ((ulonglong)uVar44 ^ 0x7e915db3)) ^ uVar19 | uVar20;
  uVar22 = (ulonglong)DAT_1826707f4;
  uVar48 = uVar20 ^ uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar48;
  uVar47 = (*(ulonglong *)(lVar3 - (uVar22 ^ 0xb338aee3)) ^ uVar21) - uVar20 ^ uVar45;
  *puVar1 = uVar47;
  lVar3 = DAT_1826707a0;
  *(int *)(DAT_1826707a0 + -0x7e4) =
       *(int *)(DAT_1826707a0 + -0xaf0) << (((byte)uVar5 ^ 0xef) & 0x1f);
  uVar20 = uVar42 ^ uVar51 ^ uVar25 ^ uVar48 ^ *(ulonglong *)(lVar3 + -0x4c8);
  bVar17 = (byte)DAT_1826707f4;
  *puVar2 = uVar20;
  lVar3 = DAT_1826707a0;
  uVar22 = (uVar20 ^ uVar25) >> ((bVar17 ^ 0x19) & 0x3f);
  uVar20 = (uVar25 ^ uVar20) << (((byte)uVar5 ^ 0xf9) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar22 ^ uVar21;
  *(ulonglong *)(lVar3 + -0x610) = uVar20 ^ uVar41;
  *(ulonglong *)(lVar3 + -0xf0) = uVar20 << ((bVar36 ^ 0x15) & 0x3f);
  uVar5 = DAT_1826707d0;
  lVar3 = DAT_1826707a0;
  uVar22 = uVar22 | uVar20;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar22 ^ uVar54;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (*(ulonglong *)(lVar3 - (uVar49 ^ 0x214a6282)) ^ uVar51) - uVar22 ^ uVar40;
  local_e8 = (byte)uVar53;
  *(ulonglong *)(lVar4 + -0xf0) =
       (CONCAT44(uVar14,uVar5) ^ 0xd17481ca3a85993d) << ((local_e8 ^ 0x85) & 0x3f);
  uVar20 = uVar51 ^ uVar41 ^ uVar45 ^ uVar47 ^ *(ulonglong *)(lVar4 + -0x998);
  uVar22 = ((ulonglong)((uVar28 & 0xffff | uVar50) >> 6) | uVar37 << 10) ^ uVar20 >> 0x16;
  *puVar2 = uVar20;
  uVar5 = DAT_1826707cc;
  puVar35 = (ulonglong *)(lVar4 - (uVar34 ^ 0x6febf2a7));
  *(ulonglong *)(lVar4 + -0xac0) = uVar22 ^ uVar19;
  puVar29 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0x2324a3d2));
  *(ulonglong *)(lVar4 + -0x610) = uVar51 ^ uVar41 ^ *(ulonglong *)(lVar4 + -0x998) ^ *puVar35;
  lVar3 = DAT_1826707a0;
  uVar20 = (uVar51 ^ uVar20) << ((bVar36 ^ 9) & 0x3f);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar20 ^ uVar30;
  uVar50 = DAT_182670934;
  *puVar29 = (uVar22 | uVar20) ^ uVar25;
  uVar15 = DAT_182670934 >> 0x10 & 0xff;
  DAT_182670870 = (((DAT_182670934 >> 0x10) << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar48 = CONCAT44(DAT_182670870,DAT_182670870);
  uVar15 = DAT_182670934 & 0xff;
  *(ulonglong *)(lVar3 + -0x998) =
       (*(ulonglong *)(lVar3 - (uVar24 ^ 0x4febfc37)) ^ uVar45) -
       (*(ulonglong *)(lVar3 + -0xf0) ^ uVar25) ^ uVar48;
  lVar4 = DAT_1826707a0;
  DAT_182670934 = ((DAT_182670934 << 8 | uVar15) << 8 | uVar15) << 8 | uVar15;
  uVar37 = CONCAT44(DAT_182670934,DAT_182670934);
  uVar38 = *(ulonglong *)(lVar3 - (uVar38 ^ 0xa3222f3c)) ^
           *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x5cdddc2b)) ^ uVar37 ^ uVar25 ^ uVar40;
  local_d8 = (byte)uVar44;
  *(ulonglong *)(lVar3 + -0x610) = uVar38;
  puVar52 = (ulonglong *)(lVar3 - (uVar39 ^ 0x34b24e7b));
  *puVar52 = (uVar37 ^ uVar38) >> ((local_d8 ^ 0x8d) & 0x3f) ^ uVar37;
  uVar38 = (uVar37 ^ *(ulonglong *)(lVar4 + -0x610)) << (((byte)uVar13 ^ 0xed) & 0x3f);
  *(ulonglong *)(lVar4 + -0xac0) = uVar38 ^ uVar37;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       *(ulonglong *)(lVar4 - (uVar24 ^ 0x4febf0a7)) ^ CONCAT44(uVar53,uVar16) ^ uVar37 ^
       0xba9fae11fd9bde3;
  uVar22 = uVar48 ^ uVar32 ^ uVar54 ^ *(ulonglong *)(lVar3 + -0x998) ^
           *(ulonglong *)(lVar3 + -0x5c0);
  *puVar1 = (uVar38 | uVar37 ^ *puVar2) ^ uVar48;
  puVar31 = (ulonglong *)(lVar3 - ((ulonglong)uVar13 ^ 0x6febfe37));
  uVar38 = *puVar31;
  *(ulonglong *)(lVar3 + -0x610) = uVar22;
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar40 ^ *(ulonglong *)(lVar3 + -0xc18)) - (uVar48 ^ uVar38) ^ uVar45;
  lVar3 = DAT_1826707a0;
  uVar20 = (uVar32 ^ uVar22) >> (((byte)DAT_1826707d0 ^ 0x78) & 0x3f);
  bVar17 = (byte)DAT_1826707f4;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar20 ^ uVar21;
  uVar38 = (uVar32 ^ uVar22) << ((bVar17 ^ 0x17) & 0x3f);
  *(ulonglong *)(lVar3 + -0xac0) = uVar38 ^ uVar37;
  lVar3 = DAT_1826707a0;
  uVar20 = uVar20 | uVar38;
  uVar22 = uVar20 ^ uVar46;
  uVar38 = *(ulonglong *)(DAT_1826707a0 + -0x998);
  *puVar2 = uVar22;
  *(ulonglong *)(lVar3 + -0xc18) = (uVar48 ^ uVar38) - uVar20 ^ uVar54;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0x234bb7f4)) =
       *(ulonglong *)(lVar3 - (uVar24 ^ 0x4febf50f)) ^ uVar42 ^ uVar46 ^ uVar45 ^ uVar22;
  *puVar55 = *(ulonglong *)(lVar4 - (uVar24 ^ 0x4febf137)) ^ uVar21 |
             CONCAT44(uVar8,uVar6) ^ 0xfa7c887e5f47530b;
  uVar20 = (uVar42 ^ *(ulonglong *)(lVar4 + -0x5c0)) >> (((byte)DAT_1826707d0 ^ 0x6d) & 0x3f);
  puVar55 = (ulonglong *)(lVar4 - (uVar49 ^ 0x214a638a));
  *(ulonglong *)(lVar4 + -0xac0) = uVar20 ^ uVar21;
  lVar3 = DAT_1826707a0;
  uVar38 = (uVar42 ^ *puVar55) << ((local_a8 ^ 0xa7) & 0x3f);
  uVar20 = uVar38 | uVar20;
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar38 ^ uVar30;
  *puVar2 = uVar20 ^ uVar48;
  lVar4 = DAT_1826707a0;
  uVar38 = (uVar45 ^ *(ulonglong *)(lVar3 + -0xf0)) - (CONCAT44(uVar12,uVar16) ^ 0x744edbcbe27c6332)
  ;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar38 ^ uVar32;
  puVar56 = (ulonglong *)(lVar4 - (uVar39 ^ 0x34b24ee3));
  *(ulonglong *)(lVar4 + -0x610) = uVar38 - uVar20 ^ uVar21;
  *puVar56 = (*(ulonglong *)(lVar4 - (uVar43 ^ 0x4a2315d8)) ^ uVar48) -
             (CONCAT44(uVar44,uVar53) ^ 0x843ddeed71c21cdc) ^ uVar46;
  *(ulonglong *)(lVar4 + -0xac0) =
       (*(ulonglong *)(lVar4 - (uVar49 ^ 0x214a605a)) ^ uVar21) +
       (CONCAT44(uVar44,DAT_1826707c8) ^ 0xcb615faf0d8ee120);
  *(ulonglong *)(lVar4 + -0x998) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f4 ^ 0xb338a73b)) ^ uVar48 ^ *puVar1;
  *puVar29 = **(ulonglong **)(lVar4 - (uVar34 ^ 0x6febf5bf));
  uVar13 = DAT_1826707d0;
  uVar38 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0xdc58f5bc)) =
       (uVar54 ^ *(ulonglong *)(DAT_1826707a0 + -0x998)) >> ((local_100 ^ 0xfa) & 0x3f) ^ uVar32;
  local_108 = (byte)uVar16;
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x234bbbac)) ^ uVar54) <<
            ((local_108 ^ 0x55) & 0x3f) ^ uVar19;
  lVar3 = DAT_1826707a0;
  uVar38 = uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8) | uVar19 ^ *puVar35;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar38 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xf0) =
       ((uVar54 ^ *(ulonglong *)(lVar3 + -0xc18)) - (CONCAT44(uVar5,uVar44) ^ 0x82dc085c9acc6236)) -
       uVar38 ^ uVar41;
  *(ulonglong *)(lVar3 + -0x4c8) = (CONCAT44(uVar53,uVar33) ^ 0x33b3d5b1b62d4134) + uVar38 ^ uVar25;
  *puVar23 = (CONCAT44(uVar6,uVar44) ^ 0xb29847704338e3c1) +
             (uVar54 ^ *(ulonglong *)(lVar3 + -0x998));
  uVar43 = uVar48 ^ *(ulonglong *)(lVar3 + -0x610) ^ uVar25 ^ uVar21 ^
           *(ulonglong *)(lVar3 + -0x4c8);
  *(ulonglong *)(lVar3 + -0xc18) = uVar43;
  uVar38 = (uVar48 ^ uVar43) >> (((byte)uVar13 ^ 0x71) & 0x3f);
  *puVar1 = uVar38 ^ uVar42;
  *(ulonglong *)(lVar3 + -0xac0) = (uVar48 ^ uVar43) << ((local_a8 ^ 0xbb) & 0x3f) ^ uVar46;
  uVar43 = CONCAT44(uVar16,DAT_1826707c8);
  uVar38 = uVar46 ^ *puVar26 | uVar38;
  *(ulonglong *)(lVar3 + -0x998) = uVar38 ^ uVar37;
  *puVar2 = (uVar43 ^ 0xb416cdef420b5eb1) >>
            (((byte)(uVar50 >> 0x10) ^ *(byte *)(lVar3 + -0xc18)) & 0x3f);
  uVar20 = uVar46 ^ *(ulonglong *)(lVar3 + -0xf0) ^ uVar25 ^ uVar41 ^ *(ulonglong *)(lVar3 + -0x5c0)
  ;
  *(ulonglong *)(lVar3 + -0x4c8) = (*(ulonglong *)(lVar3 + -0x610) ^ uVar21) - uVar38 ^ uVar19;
  local_120 = (byte)uVar7;
  *puVar1 = uVar20;
  uVar43 = (uVar25 ^ uVar20) >> ((local_120 ^ 0xda) & 0x3f);
  local_88 = (byte)uVar12;
  *(ulonglong *)(lVar3 + -0xac0) = uVar43 ^ uVar51;
  uVar20 = (uVar20 ^ uVar25) << ((local_88 ^ 0x3f) & 0x3f);
  uVar38 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar3 + -0xc18) = uVar20 ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x34b0d480)) = (uVar43 | uVar20) ^ uVar30;
  uVar12 = DAT_1826707f4;
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 + -0xf0) ^ uVar41) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f4 ^ 0xb338ae7b)) ^ uVar30) ^ uVar40;
  *(ulonglong *)(lVar3 + -0x5c0) = 0xa41c58957884d27 - (uVar51 ^ *(ulonglong *)(lVar3 + -0xac0));
  uVar38 = uVar45 ^ uVar30 ^ uVar19 ^ *puVar2 ^ *(ulonglong *)(lVar3 + -0x4c8);
  *puVar1 = uVar38;
  uVar38 = (uVar45 ^ uVar38) >> (((byte)uVar12 ^ 0x34) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc18) = uVar38 ^ uVar46;
  uVar43 = (uVar45 ^ *puVar31) << ((local_120 ^ 0xd6) & 0x3f);
  uVar16 = DAT_1826709c4 & 0xff;
  *(ulonglong *)(lVar3 + -0xf0) = uVar43 ^ uVar42;
  uVar38 = uVar38 | uVar43;
  uVar12 = DAT_1826709c4 + DAT_182670aa8;
  DAT_1826709c4 = ((DAT_1826709c4 << 8 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar43 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar16 = uVar12 & 0xff;
  *(ulonglong *)(lVar3 + -0xac0) = uVar38 ^ uVar43;
  DAT_18267086c = ((uVar12 * 0x100 | uVar16) << 8 | uVar16) << 8 | uVar16;
  uVar20 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(lVar3 + -0x5c0) = (uVar19 ^ *(ulonglong *)(lVar3 + -0x4c8)) - uVar38 ^ uVar20;
  uVar16 = DAT_1826707cc;
  uVar13 = DAT_182670aa8 & 0xff;
  DAT_182670aa8 = ((DAT_182670aa8 << 8 | uVar13) << 8 | uVar13) << 8 | uVar13;
  uVar19 = (ulonglong)DAT_182670aa8;
  uVar21 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar38 = (ulonglong)DAT_1826707dc;
  *puVar52 = *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x5cdddacb)) ^ uVar37 ^ uVar40 ^
             *(ulonglong *)(lVar3 + -0x998) ^ uVar21;
  puVar23 = (ulonglong *)(lVar3 - (uVar38 ^ 0xd418e4ad));
  *puVar23 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0x6e7fddd1)) >> 0x20 ^ uVar19) >> 8
             ^ uVar20;
  uVar38 = *puVar2;
  *(ulonglong *)(lVar3 + -0xf0) =
       CONCAT44(uVar14,DAT_1826707b8) ^ 0x682e7854f5ffda4 | uVar21 ^ *puVar2;
  bVar17 = (byte)uVar16;
  uVar19 = (uVar21 ^ uVar38) << ((bVar17 ^ 0x2c) & 0x3f);
  uVar38 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar3 + -0xc18) = uVar19 ^ uVar21;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x2324a7ea)) = (uVar19 | *puVar23 ^ uVar20) ^ uVar20;
  uVar38 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar3 + -0x998) =
       (CONCAT44(DAT_1826707c0,uVar16) ^ 0x5bbae6136434934) <<
       ((*(byte *)(lVar3 - (uVar34 ^ 0x6febf337)) ^ (byte)uVar12) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x654c71bc)) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar40) - (uVar20 ^ *(ulonglong *)(lVar3 + -0x4c8)) ^
       uVar20;
  uVar38 = *puVar56 ^ uVar43 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  *puVar2 = uVar38;
  uVar22 = (uVar38 ^ uVar43) >> ((local_e8 ^ 0xa4) & 0x3f);
  uVar12 = _DAT_1826708bc - DAT_182670864 & 0xff;
  *puVar1 = uVar22 ^ uVar20;
  lVar3 = DAT_1826707a0;
  DAT_1826709e8 = (((_DAT_1826708bc - DAT_182670864) * 0x100 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar25 = (uVar38 ^ uVar43) << ((bVar17 ^ 0x38) & 0x3f);
  uVar38 = (ulonglong)DAT_1826707d0;
  uVar12 = _DAT_1826708bc & 0xff;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar25 ^ CONCAT44(DAT_1826709e8,DAT_1826709e8);
  _DAT_1826708bc = ((_DAT_1826708bc << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar21 = (ulonglong)_DAT_1826708bc;
  uVar19 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xdc58f8ec)) = (uVar22 | uVar25) ^ uVar19;
  uVar12 = DAT_182670864 & 0xff;
  *(ulonglong *)(lVar3 + -0x610) = 0x227ae6698598c394 >> ((local_100 ^ 0xc9) & 0x3f);
  DAT_182670864 = ((DAT_182670864 << 8 | uVar12) << 8 | uVar12) << 8 | uVar12;
  uVar38 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*puVar55 ^ uVar20) - (*(ulonglong *)(lVar3 + -0x998) ^ uVar19) ^ uVar38;
  uVar43 = *(ulonglong *)(lVar3 - (uVar49 ^ 0x214a66ba)) ^
           *(ulonglong *)(lVar3 - (uVar24 ^ 0x4febff3f)) ^ uVar19 ^ uVar20 ^ uVar43;
  *puVar2 = uVar43;
  *puVar1 = (uVar43 >> 0x20 ^ uVar21) >> 0x19 ^ uVar38;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar11 * 4) = uVar27;
  return;
}



############ FUN_ 180cbc3f0 size=5442 ############

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

void FUN_180cbc3f0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  byte bVar7;
  longlong lVar8;
  longlong lVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  uint uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong *puVar53;
  byte local_res18;
  byte local_res20;
  byte local_138;
  byte local_f8;
  ulonglong uVar32;
  
  uVar16 = DAT_1826707f0;
  uVar15 = DAT_1826707e0;
  uVar13 = DAT_1826707d0;
  uVar12 = DAT_1826707cc;
  uVar11 = DAT_1826707c4;
  uVar10 = DAT_1826707b8;
  lVar8 = DAT_1826707a0;
  uVar51 = (ulonglong)DAT_1826707c4;
  uVar30 = (ulonglong)DAT_1826707e0;
  uVar40 = (ulonglong)DAT_1826707d0;
  uVar29 = (ulonglong)DAT_1826707cc;
  uVar50 = (ulonglong)DAT_1826707b8;
  uVar20 = (ulonglong)DAT_1826707f0;
  uVar22 = DAT_1826707cc & DAT_1826707f0;
  uVar36 = DAT_1826707d0 * DAT_1826707b8;
  DAT_1826707d8 = ~DAT_1826707e0;
  uVar31 = (DAT_1826707c4 << 0x10 | DAT_1826707c4 & 0xff00) << 8 | DAT_1826707c4 >> 8 & 0xff00 |
           DAT_1826707c4 >> 0x18;
  uVar32 = (ulonglong)uVar31;
  uVar43 = *(uint *)(&DAT_18260f758 + DAT_182670df8) ^ DAT_1826707d8;
  uVar19 = *(uint *)(&DAT_18260f760 + DAT_182670df8) ^ DAT_1826707e0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x3b0);
  uVar35 = CONCAT44(DAT_182670820,DAT_182670820);
  uVar44 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  uVar45 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  DAT_1826707a8 = uVar22 ^ 0xe22784a9;
  DAT_1826707bc = uVar31;
  DAT_1826707c0 = uVar36;
  *puVar1 = *(ulonglong *)(DAT_1826707a0 + -0x558) ^ *puVar2 ^ uVar45 ^ uVar44 ^ uVar35;
  uVar39 = (ulonglong)(uVar22 ^ 0xe22784a9);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar12 ^ 0x31dfbe6c)) =
       (CONCAT44(uVar16,uVar22) ^ 0x72a680a800c5ad1d) + 0xebe7b879e5fd1a66;
  uVar17 = DAT_182670adc;
  uVar34 = (ulonglong)uVar36;
  uVar37 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar46 = (*puVar1 ^ uVar35) + (CONCAT44(uVar36,uVar36) ^ 0x69edf66cfb6b081f);
  puVar3 = (ulonglong *)(lVar8 + -0x610);
  *puVar3 = uVar46 ^ uVar37;
  uVar14 = DAT_1826708ac;
  lVar9 = DAT_1826707a0;
  puVar4 = (ulonglong *)(lVar8 + -0xcf8);
  uVar35 = CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar48 = (ulonglong)DAT_1826708ac;
  *(ulonglong *)(DAT_1826707a0 + -0x118) =
       (CONCAT44(uVar17,uVar17) ^ *puVar4) + (CONCAT44(uVar13,uVar10) ^ 0x48fa2b003d9a5da2) ^ uVar35
  ;
  puVar21 = (ulonglong *)(lVar9 - ((ulonglong)uVar31 ^ 0x67fd025b));
  uVar23 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  uVar26 = (uVar35 ^ *puVar21) + uVar46 ^ uVar23;
  uVar41 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar9 + -0x2b0) = uVar26;
  uVar17 = DAT_1826709fc;
  local_138 = (byte)uVar16;
  uVar38 = uVar46 << ((local_138 ^ 0xb5) & 0x3f);
  uVar35 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(lVar9 + -0xd88) = uVar38 ^ uVar41;
  bVar28 = (byte)uVar12;
  *(ulonglong *)(lVar9 + -0x630) = uVar46 >> ((bVar28 ^ 0xf3) & 0x3f) ^ uVar35;
  uVar46 = CONCAT44(uVar17,uVar17);
  uVar41 = CONCAT44(uVar14,uVar14);
  puVar5 = (ulonglong *)(lVar9 + -0xf0);
  uVar35 = (*(ulonglong *)(lVar9 - (uVar50 ^ 0x3434c7b0)) ^ uVar35 | uVar38) ^ uVar46;
  *(ulonglong *)(lVar9 + -0x9e0) = uVar35;
  *puVar5 = uVar26 ^ uVar41 ^ uVar46 ^ uVar23 ^ uVar35;
  uVar17 = DAT_1826708a4;
  uVar14 = DAT_1826707d8;
  lVar8 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar9 + -0xbb0) =
       (CONCAT44(uVar36,DAT_1826707d8) ^ 0xf715291923aaec3c) +
       (CONCAT44(uVar15,uVar22) ^ 0x522089a5893b97f);
  uVar52 = CONCAT44(uVar17,uVar17);
  uVar46 = CONCAT44(DAT_182670964,DAT_182670964);
  uVar38 = (CONCAT44(uVar13,uVar11) ^ 0xd211153c38238bbd) +
           (uVar52 ^ *(ulonglong *)(lVar8 + -0x410));
  uVar26 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(lVar8 + -0x660) = uVar38 ^ uVar46;
  uVar35 = (*(ulonglong *)(lVar8 - (uVar34 ^ 0x87137858)) ^ uVar44) +
           (CONCAT44(uVar22,uVar11) ^ 0xb6e3cabe5f401045);
  *(ulonglong *)(lVar8 + -0xce0) = uVar35 ^ uVar26;
  uVar17 = DAT_182670810;
  puVar6 = (ulonglong *)(lVar8 + -0x6b8);
  puVar33 = (ulonglong *)(lVar8 - (uVar51 ^ 0x4303fb07));
  *puVar2 = (*(ulonglong *)(lVar8 - ((ulonglong)uVar31 ^ 0x67fd0523)) ^ uVar46) + uVar35 ^ uVar52;
  local_res20 = (byte)uVar13;
  *(uint *)(lVar8 + -0x398) =
       (uVar12 ^ 0xd7429b64) >>
       (((byte)*(undefined4 *)(lVar8 + -0x8e0) ^ (byte)DAT_1826708b8) & 0x1f);
  uVar18 = DAT_182670a7c;
  uVar35 = (uVar46 ^ *puVar33) << ((local_res20 ^ 0xdf) & 0x3f);
  *puVar6 = uVar35 ^ CONCAT44(uVar17,uVar17);
  uVar22 = _DAT_182670ad4;
  lVar9 = DAT_1826707a0;
  uVar46 = (ulonglong)_DAT_182670ad4;
  uVar26 = CONCAT44(uVar18,uVar18);
  puVar49 = (ulonglong *)(lVar8 - (uVar50 ^ 0x3434cd78));
  *puVar49 = (uVar38 >> ((bVar28 ^ 0xcb) & 0x3f) | uVar35) ^ uVar26;
  uVar17 = DAT_1826708cc;
  uVar24 = CONCAT44(uVar22,uVar22);
  uVar47 = uVar24 ^ uVar26 ^ uVar52 ^ *puVar4 ^ *puVar2;
  uVar35 = uVar47 ^ uVar24;
  *(ulonglong *)(lVar9 + -0xd88) =
       CONCAT44(uVar11,uVar10) ^ CONCAT44(uVar16,uVar31) ^ 0x7260876d3f66c1b1;
  uVar38 = CONCAT44(uVar17,uVar17);
  uVar42 = uVar35 << (((byte)uVar36 ^ 0x2e) & 0x3f);
  *(ulonglong *)(lVar9 + -0x630) = (*(ulonglong *)(lVar9 + -0x2b0) ^ uVar23) + uVar35 ^ uVar38;
  uVar17 = DAT_182670af8;
  *(ulonglong *)(lVar9 + -0x9e0) = uVar42 ^ CONCAT44(DAT_182670930,DAT_182670930);
  lVar8 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar17,uVar17);
  uVar35 = CONCAT44(DAT_182670914,DAT_182670914);
  local_f8 = (byte)uVar15;
  *(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x2550cbc)) =
       (((ulonglong)(uVar22 >> 0x12) | uVar46 << 0xe) ^ uVar47 >> 0x12 | uVar42) ^ uVar35;
  *(ulonglong *)(lVar8 - (uVar39 ^ 0xe2728975)) =
       (CONCAT44(uVar13,uVar14) ^ 0x64ec1380b441561) >> ((local_f8 ^ 0x21) & 0x3f);
  uVar46 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(lVar8 - (uVar32 ^ 0x67fd0fa3)) =
       uVar46 ^ uVar35 ^ uVar38 ^ *(ulonglong *)(lVar8 + -0x630) ^ *(ulonglong *)(lVar8 + -0x410);
  *puVar33 = (uVar46 ^ *(ulonglong *)(lVar8 + -0xce0)) >> ((local_138 ^ 0xae) & 0x3f);
  uVar47 = CONCAT44(DAT_18267083c,DAT_18267083c);
  puVar53 = (ulonglong *)(lVar8 - (uVar32 ^ 0x67fd05fb));
  *puVar53 = (uVar52 ^ *puVar2) + (uVar41 ^ *puVar5) ^ uVar47;
  *puVar1 = 0xe1cf692dc2080000;
  uVar42 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *(ulonglong *)(lVar8 + -0x118) = (uVar41 ^ *puVar5) << ((bVar28 ^ 0xd8) & 0x3f) ^ uVar42;
  uVar35 = CONCAT44(DAT_182670908,DAT_182670908);
  *puVar4 = (*puVar5 >> 0x20 ^ uVar48) >> 0x14 ^ uVar35;
  local_res18 = (byte)uVar11;
  *(ulonglong *)(lVar8 - (uVar40 ^ 0x77e5f076)) =
       (CONCAT44(uVar14,uVar14) ^ 0xc30c10177838362b) >> ((local_res18 ^ 0x4c) & 0x3f);
  uVar48 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar8 - (uVar40 ^ 0x77e5ff4e)) =
       (uVar35 ^ *puVar4 | uVar42 ^ *(ulonglong *)(lVar8 + -0x118)) ^ uVar48;
  lVar9 = DAT_1826707a0;
  uVar52 = uVar48 ^ *(ulonglong *)(lVar8 + -0x2b0) ^ uVar47 ^ *puVar6;
  uVar35 = *(ulonglong *)(DAT_1826707a0 + -0x630);
  uVar48 = uVar52 << ((local_res20 ^ 0xc4) & 0x3f);
  *puVar3 = uVar52 ^ uVar45;
  uVar17 = DAT_182670988;
  uVar42 = CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar45 = uVar52 >> (((byte)uVar14 ^ 0xf9) & 0x3f);
  *(ulonglong *)(lVar9 + -0x9e0) = (uVar38 ^ uVar35) + uVar52 ^ uVar42;
  uVar18 = DAT_182670ac8;
  *(ulonglong *)(lVar9 + -0xbb0) = uVar48 ^ CONCAT44(uVar17,uVar17);
  uVar22 = DAT_1826708e8;
  lVar8 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_1826708e8;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar45 ^ CONCAT44(uVar18,uVar18);
  uVar52 = CONCAT44(uVar22,uVar22);
  uVar35 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(lVar8 - (uVar32 ^ 0x67fd0753)) = (uVar45 | uVar48) ^ uVar35;
  *(ulonglong *)(lVar8 + -0x660) =
       uVar52 ^ uVar35 ^ uVar42 ^ *(ulonglong *)(lVar8 + -0x9e0) ^ *(ulonglong *)(lVar8 + -0x410);
  *(ulonglong *)(lVar8 - (uVar34 ^ 0x87137eb0)) =
       (*(ulonglong *)(lVar8 - (uVar39 ^ 0xe2728a95)) ^ uVar47) +
       (uVar46 ^ *(ulonglong *)(lVar8 + -0xce0)) ^ uVar26;
  uVar48 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar35 = *(ulonglong *)(lVar8 + -0xce0);
  *puVar1 = (uVar46 ^ *(ulonglong *)(lVar8 + -0xce0)) << 0x16 ^ uVar48;
  uVar47 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar8 - (uVar40 ^ 0x77e5fd0e)) =
       (uVar46 ^ uVar35) >> ((bVar28 ^ 0xfe) & 0x3f) ^ uVar47;
  uVar17 = DAT_182670a40;
  lVar9 = DAT_1826707a0;
  puVar33 = (ulonglong *)(lVar8 - (uVar27 ^ 0xc6b096c7));
  uVar46 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar48 = (uVar48 ^ *puVar33 | uVar47 ^ *puVar5) ^ uVar46;
  uVar35 = *(ulonglong *)(DAT_1826707a0 + -0x9e0);
  *(ulonglong *)(lVar8 + -0xd88) = uVar48;
  uVar18 = DAT_182670ac0;
  uVar47 = CONCAT44(uVar17,uVar17);
  uVar46 = *(ulonglong *)(lVar8 - (uVar20 ^ 0x2550b1c)) ^ uVar47 ^ uVar48 ^ uVar46 ^ uVar26;
  *(ulonglong *)(lVar8 + -0x118) = uVar46;
  uVar48 = CONCAT44(uVar18,uVar18);
  *puVar49 = (uVar47 ^ uVar46) + (uVar42 ^ uVar35) ^ uVar48;
  uVar46 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(lVar9 + -0x2b0) =
       (*(ulonglong *)(lVar9 - (uVar39 ^ 0xe2728d35)) ^ uVar47) << ((local_res20 ^ 0xde) & 0x3f) ^
       uVar46;
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x87137b30)) =
       (uVar47 ^ *(ulonglong *)(lVar9 + -0x118)) >> (((byte)uVar10 ^ 0xa0) & 0x3f) ^ uVar41;
  uVar35 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar9 - (uVar34 ^ 0x87137b10)) =
       (uVar41 ^ *(ulonglong *)(lVar9 + -0x630) | uVar46 ^ *(ulonglong *)(lVar9 + -0x2b0)) ^ uVar35;
  *(undefined8 *)(lVar9 - (uVar50 ^ 0x3434ca30)) = 0x51e591b7d11e61f1;
  uVar18 = DAT_182670a6c;
  lVar8 = DAT_1826707a0;
  uVar46 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xe2728a3d)) ^
       *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0x394f68f8)) ^ uVar46 ^ uVar35 ^ uVar48;
  uVar17 = DAT_1826709c0;
  uVar41 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(lVar8 + -0x410) =
       (uVar26 ^ *puVar2) + (uVar52 ^ *(ulonglong *)(lVar8 + -0x660)) ^ uVar41;
  lVar8 = DAT_1826707a0;
  bVar25 = (byte)(uVar11 >> 0x18);
  uVar42 = CONCAT44(uVar17,uVar17);
  uVar35 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *puVar53 = (uVar52 ^ *(ulonglong *)(DAT_1826707a0 + -0x660)) << ((bVar25 ^ 99) & 0x3f) ^ uVar42;
  uVar26 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar38 = *(ulonglong *)(lVar8 + -0x660) >> 0x20 ^ uVar35 ^ uVar38;
  *(ulonglong *)(lVar8 + -0xce0) = uVar38;
  *(ulonglong *)(lVar8 - (uVar20 ^ 0x2550594)) = (uVar42 ^ *puVar6 | uVar38 ^ uVar35) ^ uVar26;
  uVar38 = CONCAT44(DAT_182670840,DAT_182670840);
  bVar7 = (byte)DAT_1826707c4;
  uVar35 = *(ulonglong *)(lVar8 - (uVar51 ^ 0x4303f977)) ^ uVar38 ^ uVar26 ^ uVar41 ^ *puVar1;
  *puVar5 = uVar35;
  uVar47 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar26 = (CONCAT44(uVar14,uVar12) ^ 0x700659c52d9c55f6) + (uVar35 ^ uVar38);
  *(uint *)(lVar8 + -0x598) = *(uint *)(lVar8 + -0x2d4) >> ((bVar7 ^ 0x74) & 0x1f);
  uVar17 = DAT_18267080c;
  *(ulonglong *)(lVar8 + -0xd88) = uVar26 ^ uVar47;
  uVar18 = DAT_182670ac4;
  uVar35 = (CONCAT44(uVar13,uVar31) ^ 0x121051e51f17e2c8) + (uVar48 ^ *puVar4);
  *(ulonglong *)(lVar8 + -0x9e0) = uVar35 ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_1826709b0;
  lVar8 = DAT_1826707a0;
  uVar38 = CONCAT44(uVar18,uVar18);
  uVar35 = uVar26 + uVar35 ^ uVar38;
  *(ulonglong *)(DAT_1826707a0 + -0x118) = uVar35;
  uVar42 = (*(ulonglong *)(lVar8 - (uVar34 ^ 0x87137088)) ^ uVar47) << ((local_res18 ^ 0x69) & 0x3f)
  ;
  uVar22 = DAT_1826707d8 ^ 0x354c34f4;
  uVar31 = DAT_1826707b8 ^ 0x93f90a34;
  *(ulonglong *)(lVar8 + -0x2b0) = uVar42 ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_182670a04;
  *(uint *)(lVar8 + -0xb54) = uVar31 | uVar22;
  uVar26 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar8 + -0x630) =
       (*(ulonglong *)(lVar8 - (uVar30 ^ 0x394f6988)) ^ uVar47) >> ((local_res20 ^ 0xcc) & 0x3f) ^
       uVar26;
  uVar48 = CONCAT44(uVar11,uVar12);
  *(ulonglong *)(lVar8 + -0xbb0) =
       (*(ulonglong *)(lVar8 - (uVar40 ^ 0x77e5fbce)) ^ uVar26 | uVar42) ^ uVar24;
  *puVar3 = uVar48 ^ 0x30a716a85f13b5a1;
  uVar47 = CONCAT44(DAT_182670918,DAT_182670918);
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xc6b0984f)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x67fd08f3)) ^ uVar38 ^ uVar24 ^ uVar47 ^ uVar35;
  lVar8 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670854,DAT_182670854);
  *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x31dfbeb4)) =
       (CONCAT44(uVar14,uVar10) ^ 0x985d7213e457fb72) +
       (uVar46 ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) ^ uVar35;
  puVar49 = (ulonglong *)(lVar8 - (uVar39 ^ 0xe272883d));
  uVar26 = (CONCAT44(uVar11,uVar13) ^ 0x58925b5b5100351f) + (uVar41 ^ *puVar49);
  *puVar6 = uVar26 ^ CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar39 = *(ulonglong *)(lVar8 + -0x660) ^ uVar35;
  *(ulonglong *)(lVar8 + -0xce0) = uVar51 << 0x21 ^ 0x34bc9f6000000000;
  uVar42 = CONCAT44(DAT_182670974,DAT_182670974);
  *puVar1 = uVar26 + uVar39 ^ uVar42;
  uVar11 = DAT_182670a10;
  uVar26 = (*(ulonglong *)(lVar8 - (uVar50 ^ 0x3434c7e0)) ^ uVar35) << ((bVar25 ^ 0x53) & 0x3f);
  *puVar5 = uVar26 ^ uVar37;
  lVar8 = DAT_1826707a0;
  uVar39 = uVar39 >> ((local_f8 ^ 0x30) & 0x3f);
  uVar50 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  uVar35 = *(ulonglong *)(DAT_1826707a0 + -0x118);
  *puVar4 = uVar39 ^ uVar50;
  uVar26 = uVar26 | uVar39;
  uVar46 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar39 = uVar26 ^ uVar46;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar8 + -0x9e0) = uVar39;
  uVar39 = *(ulonglong *)(lVar8 - (uVar34 ^ 0x87137038)) ^ uVar39 ^ uVar24 ^ uVar46 ^ uVar42;
  *(ulonglong *)(lVar8 + -0xd88) = uVar39;
  uVar17 = DAT_182670a50;
  *(ulonglong *)(lVar8 + -0x2b0) = uVar41 ^ *puVar49 ^ uVar48 ^ 0x63b635ac7eb82f6f;
  uVar46 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar8 + -0x630) = (uVar38 ^ uVar35) + (uVar39 ^ uVar24) ^ uVar46;
  lVar9 = DAT_1826707a0;
  *(ulonglong *)(lVar8 - (uVar27 ^ 0xc6b09def)) = uVar26 + 0x26da3aa58efabfcf;
  uVar41 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0x77e5f64e)) =
       (*(ulonglong *)(lVar8 + -0xd88) ^ uVar24) << 0x34 ^ uVar41;
  uVar35 = CONCAT44(DAT_182670828,DAT_182670828);
  uVar39 = ((ulonglong)uVar11 << 0x14 | (ulonglong)(uVar11 >> 0xc)) ^
           *(ulonglong *)(lVar9 + -0xd88) >> 0xc;
  *(uint *)(lVar9 + -0x280) =
       *(uint *)(lVar9 + -0xc04) >> ((byte)*(undefined4 *)(lVar9 + -0x3d4) & 0x1f);
  uVar17 = DAT_1826708ec;
  *(ulonglong *)(lVar9 + -0x558) = uVar39 ^ uVar35;
  uVar35 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar9 - (uVar40 ^ 0x77e5f11e)) =
       (*(ulonglong *)(lVar9 + -0xbb0) ^ uVar41 | uVar39) ^ uVar35;
  uVar34 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  *puVar6 = *(ulonglong *)(lVar9 + -0xce0) ^ uVar34 ^ uVar35 ^ uVar46 ^
            *(ulonglong *)(lVar9 + -0x630);
  *(ulonglong *)(lVar9 - (uVar20 ^ 0x2550ecc)) =
       (uVar48 ^ 0x79fdffac55ff7e06) >> ((bVar28 ^ 0xda) & 0x3f);
  lVar8 = DAT_1826707a0;
  uVar39 = (*(ulonglong *)(lVar9 - (uVar30 ^ 0x394f67b0)) ^ uVar47) + (*puVar33 ^ uVar42);
  *puVar5 = uVar39 ^ uVar23;
  *puVar4 = 0x7b23403d938b6d17 >> ((local_138 ^ 0x9a) & 0x3f);
  uVar24 = CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar38 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar8 + -0x410) = (*puVar2 ^ uVar47) << ((local_f8 ^ 0x39) & 0x3f) ^ uVar24;
  uVar35 = (*(ulonglong *)(lVar8 - (uVar51 ^ 0x4303fed7)) ^ uVar47) >>
           (((byte)DAT_1826707f4 ^ 0x11) & 0x3f);
  uVar26 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar8 + -0x2b0) = uVar35 ^ uVar38;
  *(ulonglong *)(lVar8 + -0x118) = (*puVar49 ^ uVar24 | uVar35) ^ uVar26;
  uVar35 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar8 - (uVar32 ^ 0x67fd0aa3)) = uVar39 ^ uVar35 ^ uVar26 ^ *puVar21;
  *puVar3 = (*(ulonglong *)(lVar8 + -0x9e0) ^ uVar35) + (uVar46 ^ *(ulonglong *)(lVar8 + -0x630)) ^
            uVar41;
  uVar17 = DAT_1826709e4;
  uVar26 = (*(ulonglong *)(lVar8 + -0x9e0) ^ uVar35) << (((byte)DAT_1826707dc ^ 0x94) & 0x3f);
  *(ulonglong *)(lVar8 + -0xd88) = uVar26 ^ CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar39 = (*(ulonglong *)(lVar8 - (uVar29 ^ 0x31dfb134)) ^ uVar35) >>
           (((byte)uVar14 ^ 0xd6) & 0x3f);
  uVar35 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar8 + -0xbb0) = uVar39 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar8 - (uVar51 ^ 0x4303f83f)) = (uVar26 | uVar39) ^ uVar35;
  *(ulonglong *)(lVar8 + -0x660) = CONCAT44(uVar16,uVar15) ^ 0x9b8fa0321254ef28;
  *puVar1 = *(ulonglong *)(lVar8 - (uVar20 ^ 0x2550df4)) ^ *puVar3 ^ uVar35 ^ uVar41 ^ uVar50;
  uVar34 = *puVar6 ^ uVar34;
  *puVar4 = CONCAT44(DAT_18267085c,DAT_18267085c) ^ (uVar23 ^ *puVar5) + uVar34;
  *puVar2 = uVar34 << (((byte)uVar10 ^ 0xa8) & 0x3f) ^ uVar44;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar43;
  return;
}



############ FUN_ 180cc2ab0 size=5507 ############

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

void FUN_180cc2ab0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  ulonglong *puVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  
  uVar15 = DAT_182670978;
  uVar7 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707c0;
  uVar25 = ~DAT_1826707c0;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670e0c);
  uVar20 = *(uint *)(&DAT_18260f758 + DAT_182670e0c) ^ DAT_1826707c0;
  uVar40 = (ulonglong)uVar25;
  uVar31 = CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar33 = CONCAT44(DAT_1826707c0,uVar25);
  uVar24 = CONCAT44(DAT_182670adc,DAT_182670adc);
  uVar22 = (CONCAT44(DAT_1826708cc,DAT_1826708cc) ^ *(ulonglong *)(DAT_1826707a0 + -0x420)) -
           (*(ulonglong *)(DAT_1826707a0 + -0x438) ^ uVar31);
  DAT_1826707cc = uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar22 ^ uVar24;
  uVar14 = DAT_1826707f8;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0xbb0) = (*(ulonglong *)(lVar2 - (uVar28 ^ 0x3e16bcd1)) ^ uVar29) + uVar22
  ;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xce0) =
       uVar22 - (*(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xc1e9432e)) ^ uVar29) ^ uVar35;
  *(ulonglong *)(lVar2 + -0x6b8) =
       CONCAT44(uVar25,uVar7) ^ 0x80d896f2171db989 | CONCAT44(uVar25,uVar25) ^ 0xb43de5be49ad66ce;
  uVar26 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x3e16b9e1)) =
       (*(ulonglong *)(lVar2 + -0x68) ^ uVar35) + (uVar33 ^ 0x16da50eb110b17) ^ uVar26;
  uVar14 = DAT_182670898;
  uVar37 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar2 + -0x118) =
       (*(ulonglong *)(lVar2 + -0xf0) ^ uVar29) - (uVar26 ^ *(ulonglong *)(lVar2 + -0x5c0)) ^ uVar37
  ;
  uVar27 = CONCAT44(uVar14,uVar14);
  bVar18 = (byte)uVar25;
  uVar29 = CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar32 = CONCAT44(DAT_182670864,DAT_182670864);
  uVar22 = CONCAT44(DAT_1826708c4,DAT_1826708c4) ^ uVar29 ^ uVar27 ^ *(ulonglong *)(lVar2 + -0x588)
           ^ *(ulonglong *)(lVar2 + -0x1b8);
  *(ulonglong *)(lVar2 + -0x660) = uVar22;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x3e16b8e9)) =
       (uVar22 ^ uVar27) >> ((bVar18 ^ 0xff) & 0x3f) ^ uVar32;
  uVar21 = DAT_1826707b0;
  uVar30 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar22 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xc1e948ae)) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x660)) << ((bVar18 ^ 0xc1) & 0x3f) ^ uVar30;
  uVar5 = DAT_1826707f0;
  uVar4 = DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xdf7ef0f9)) =
       CONCAT44(DAT_1826707a8,uVar21) ^ 0x79cfefc42c6d7081 | uVar33 ^ 0x813cbfb348389c83;
  lVar2 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_182670874,DAT_182670874);
  uVar22 = (ulonglong)DAT_1826707e0;
  uVar30 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar5 ^ 0xa9f7af30)) ^ uVar30 |
           *(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar32;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar30 ^ uVar27;
  uVar14 = DAT_182670a64;
  *(ulonglong *)(lVar2 + -0x658) =
       *(ulonglong *)(lVar2 - (uVar22 ^ 0xbfffb83d)) ^ uVar26 ^ *(ulonglong *)(lVar2 + -0x890) ^
       uVar24;
  uVar16 = DAT_182670a80;
  uVar22 = (uVar29 ^ *(ulonglong *)(lVar2 + -0x588)) -
           (CONCAT44(DAT_182670854,DAT_182670854) ^ *(ulonglong *)(lVar2 + -0x220));
  *(ulonglong *)(lVar2 + -0x610) = uVar22 ^ CONCAT44(uVar14,uVar14);
  uVar15 = DAT_182670994;
  uVar14 = DAT_182670844;
  uVar29 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar2 + -0x7d8) = uVar22 - uVar30 ^ uVar29;
  uVar30 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x3e16b5e9)) =
       (CONCAT44(uVar7,uVar7) ^ 0xc1e943dec1e943d8) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xa9f7ae80)) ^ CONCAT44(uVar14,uVar14)) ^ uVar30;
  uVar6 = DAT_1826707c4;
  uVar5 = DAT_1826707ac;
  uVar24 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar22 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x420) =
       (uVar30 ^ *(ulonglong *)(lVar2 + -0x9c8)) + (uVar27 ^ *(ulonglong *)(lVar2 + -0x6f0)) ^
       uVar24;
  uVar8 = DAT_1826707d8;
  uVar30 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar2 - (uVar22 ^ 0xbc2135a6)) =
       CONCAT44(uVar6,DAT_1826707b4) ^ CONCAT44(uVar5,uVar6) ^ 0xda792a1d99895a5b;
  uVar14 = DAT_182670890;
  lVar3 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar21 ^ 0x3aed8826)) ^ uVar33 ^ uVar24 ^ uVar35 ^
       *(ulonglong *)(lVar2 + -0xce0);
  uVar15 = DAT_182670960;
  uVar30 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xe9c1d884)) ^ uVar33) >> (((byte)uVar8 ^ 0x39) & 0x3f)
  ;
  uVar22 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar3 + -0xf0) = uVar30 ^ CONCAT44(uVar14,uVar14);
  uVar13 = DAT_1826707f4;
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(uVar15,uVar15);
  uVar32 = (ulonglong)DAT_1826707f4;
  puVar17 = (ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x68cec82));
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (*(ulonglong *)(lVar3 - (uVar22 ^ 0xdf7efb79)) ^ uVar33) << ((bVar18 ^ 0xe5) & 0x3f) ^ uVar24
  ;
  uVar21 = DAT_1826707d0;
  uVar5 = DAT_1826707c8;
  *(ulonglong *)(lVar2 + -0x660) = (*puVar17 ^ uVar24 | uVar30) ^ uVar26;
  uVar12 = DAT_1826707e4;
  uVar6 = DAT_1826707d4;
  uVar36 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0x72a68d82)) =
       CONCAT44(uVar5,uVar8) ^ 0x8d9f83b5e06ac057 | uVar27 ^ *(ulonglong *)(lVar2 + -0x6f0);
  lVar2 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xbd5c420a)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xed3a0a6c)) ^ uVar35) -
       (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x660)) ^ uVar39;
  uVar9 = DAT_1826707d8;
  *(ulonglong *)(lVar2 + -0x4c8) =
       CONCAT44(DAT_1826707bc,uVar25) ^ 0x22b9005840110202 | 0x9c06eba3358cad49;
  uVar5 = DAT_1826707ec;
  uVar22 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar27 = *(ulonglong *)(lVar2 + -0x118) ^ uVar22 ^ uVar29 ^ uVar37 ^
           *(ulonglong *)(lVar2 + -0x7d8);
  uVar24 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(lVar2 + -0x658) = uVar27;
  *(ulonglong *)(lVar2 + -0x890) = (uVar27 ^ uVar22) >> (((byte)uVar5 ^ 0x33) & 0x3f) ^ uVar24;
  *(ulonglong *)(lVar2 + -0x220) =
       uVar39 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0xb70) ^ *(ulonglong *)(lVar2 + -0x6b8);
  uVar14 = DAT_182670aa4;
  uVar5 = DAT_1826707a8;
  uVar30 = CONCAT44(DAT_182670858,DAT_182670858);
  bVar23 = (byte)uVar13;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0x68ce8b2)) =
       (uVar27 ^ uVar22) << ((bVar23 ^ 0x21) & 0x3f) ^ uVar30;
  uVar27 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar33 = (uVar30 ^ *(ulonglong *)(lVar2 + -0x588) | uVar24 ^ *(ulonglong *)(lVar2 + -0x890)) ^
           uVar27;
  uVar30 = CONCAT44(DAT_18267091c,DAT_18267091c);
  *(ulonglong *)(lVar2 + -0x610) = uVar33;
  *(ulonglong *)(lVar2 + -0x9c8) =
       *(ulonglong *)(CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar2 + -0x798)) ^ uVar30;
  puVar17 = (ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xbd5c4f6a));
  uVar37 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  uVar22 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar2 + -0xbb0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x856b883)) ^ uVar29) - (uVar27 ^ *puVar17) ^
       uVar37;
  lVar2 = DAT_1826707a0;
  *(longlong *)(DAT_1826707a0 + -0x420) =
       *(longlong *)(DAT_1826707a0 - (uVar22 ^ 0xbfffa134)) << (((byte)uVar21 ^ 0xb1) & 0x3f);
  uVar21 = DAT_1826707e8;
  uVar24 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xc1e94266)) =
       *(ulonglong *)(lVar2 - (uVar28 ^ 0x3e16b751)) ^ uVar24 ^ uVar27 ^ uVar39 ^ uVar33;
  uVar29 = uVar24 ^ *(ulonglong *)(lVar2 + -0x1b8);
  uVar27 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar2 + -0xf0) = uVar29 >> (((byte)uVar5 ^ 0x4c) & 0x3f) ^ uVar27;
  uVar11 = DAT_1826707e0;
  *(uint *)(lVar2 + -0x2d4) = *(uint *)(lVar2 + -0x398) >> ((bVar23 ^ 0x2e) & 0x1f);
  lVar3 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar33 = uVar37 ^ *(ulonglong *)(lVar2 + -0xbb0);
  uVar22 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707f0 ^ 0xa9f7a5f8));
  *(ulonglong *)(lVar2 + -0xd38) = uVar33 | uVar29;
  uVar14 = DAT_1826708e0;
  uVar24 = (uVar22 ^ uVar24) << (((byte)uVar11 ^ 0xd4) & 0x3f);
  uVar29 = (ulonglong)DAT_1826707ec;
  uVar22 = *(ulonglong *)(lVar3 + -0xb70);
  *(ulonglong *)(lVar2 + -0x6f0) = uVar24 ^ uVar34;
  uVar15 = DAT_182670b0c;
  uVar38 = CONCAT44(uVar14,uVar14);
  uVar24 = *(ulonglong *)(lVar3 - (uVar29 ^ 0xbc213ee6)) ^ uVar27 | uVar24;
  *(ulonglong *)(lVar3 + -0xce0) = uVar24 ^ uVar38;
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar29 = (ulonglong)DAT_1826707e0;
  uVar27 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar39 = (uVar39 ^ uVar22) - uVar24 ^ uVar35;
  *(ulonglong *)(lVar3 + -0x118) = uVar39;
  uVar5 = DAT_1826707b0;
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(lVar3 - (uVar29 ^ 0xbfffb64d)) ^ uVar27 ^ uVar37 ^ uVar26 ^
       *(ulonglong *)(lVar3 + -0x660);
  uVar14 = DAT_1826709b8;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar3 + -0x6b8);
  *(ulonglong *)(lVar3 + -0x220) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b8 ^ 0xbf5b0ea6)) ^ uVar34 |
       CONCAT44(uVar5,DAT_1826707b8) ^ 0xc57616b1fdfc24d8;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar22 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar3 + -0x658) = uVar27 >> (((byte)uVar5 ^ 0x2e) & 0x3f) ^ uVar29;
  uVar14 = DAT_182670830;
  uVar27 = uVar27 << 0x18;
  *(ulonglong *)(lVar3 + -0x890) = uVar27 ^ CONCAT44(DAT_182670820,DAT_182670820);
  uVar15 = DAT_182670914;
  uVar24 = CONCAT44(uVar14,uVar14);
  uVar27 = *(ulonglong *)(lVar3 - (uVar22 ^ 0x3e16ba79)) ^ uVar29 | uVar27;
  uVar22 = uVar27 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x588) = uVar22;
  uVar37 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar33 - uVar27 ^ uVar37;
  lVar2 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_182670a18,DAT_182670a18);
  uVar29 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar27 ^ uVar24 ^ uVar35 ^ uVar39 ^ uVar22;
  bVar18 = (byte)DAT_1826707d4;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xbc213ade)) =
       CONCAT44(uVar21,uVar7) ^ 0xe9e5e7fefefeef4b | 0xc9e1e77cfe6c8e4a;
  uVar29 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  bVar19 = (byte)DAT_1826707a8;
  *(ulonglong *)(lVar2 + -0x420) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x7d8)) >> ((bVar18 ^ 0x4e) & 0x3f) ^ uVar29;
  uVar22 = CONCAT44(DAT_18267087c,DAT_18267087c);
  uVar21 = DAT_1826707c0 ^ 0xc8e1ba0b;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707f0 ^ 0xa9f7a250)) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x7d8)) << ((bVar19 ^ 0x57) & 0x3f) ^ uVar22;
  uVar14 = DAT_182670a70;
  *(uint *)(lVar2 + -0xc0c) = uVar21 + (DAT_1826707b0 ^ 0xf1c9c125);
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x1b8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707ec ^ 0xbc213806)) ^ uVar22 |
       uVar29 ^ *(ulonglong *)(lVar2 + -0x420)) ^ uVar27;
  uVar14 = DAT_1826708f4;
  uVar10 = DAT_1826707d8;
  uVar21 = DAT_1826707b4;
  uVar22 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar2 + -0xd38) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x118)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c8 ^ 0x99845a34)) ^ uVar27) ^ uVar31;
  uVar8 = DAT_1826707d0;
  uVar29 = CONCAT44(uVar14,uVar14);
  bVar18 = (byte)DAT_1826707e8;
  uVar22 = *(ulonglong *)(lVar2 - (uVar22 ^ 0xdf7ef121)) ^ uVar29 ^ uVar37 ^ uVar38 ^
           *(ulonglong *)(lVar2 + -0x9c8);
  uVar24 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  uVar38 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar2 + -0xf0) = uVar22;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xe9c1d54c)) =
       (uVar29 ^ uVar22) >> ((bVar18 ^ 0x83) & 0x3f) ^ uVar24;
  uVar6 = DAT_1826707c4;
  bVar18 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar2 - (uVar36 ^ 0xed3a00ec)) =
       -0x50771bce66db7d48 - (CONCAT44(uVar21,uVar8) ^ 0x39397154656aab0e);
  lVar2 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xde3ce931)) ^ uVar29) <<
       ((bVar18 ^ 0xc6) & 0x3f) ^ uVar22;
  uVar14 = DAT_182670a90;
  uVar29 = (*(ulonglong *)(lVar2 - (uVar32 ^ 0x68cebca)) ^ uVar22 |
           *(ulonglong *)(lVar2 + -0xb70) ^ uVar24) ^ uVar30;
  *(ulonglong *)(lVar2 + -0x220) = uVar29;
  uVar24 = CONCAT44(uVar14,uVar14);
  uVar33 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x9c8)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c8 ^ 0x998459ac)) ^ uVar30) ^ uVar24;
  uVar6 = DAT_1826707b8;
  uVar29 = uVar30 ^ uVar31 ^ *(ulonglong *)(lVar2 + -0xd38) ^ uVar33 ^ uVar29;
  *(ulonglong *)(lVar2 + -0x890) = uVar29;
  uVar22 = CONCAT44(uVar21,DAT_1826707e0);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xc1e94586)) =
       (uVar29 ^ uVar33) >> (((byte)uVar10 ^ 0x32) & 0x3f) ^ uVar24;
  uVar14 = DAT_182670a3c;
  *(ulonglong *)(lVar2 + -0xbb0) =
       uVar22 ^ 0x8a98fe3ae872eead | CONCAT44(uVar4,uVar8) ^ 0x3c64e36eec8574e5;
  uVar15 = DAT_182670a60;
  uVar22 = (*(ulonglong *)(lVar2 + -0x890) ^ uVar33) << 0x32;
  *(ulonglong *)(lVar2 + -0x588) = uVar22 ^ CONCAT44(uVar14,uVar14);
  uVar33 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0x4c8) = (*(ulonglong *)(lVar2 + -0x658) ^ uVar24 | uVar22) ^ uVar33;
  uVar14 = DAT_182670908;
  uVar37 = CONCAT44(DAT_182670a48,DAT_182670a48);
  uVar29 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *(ulonglong *)(lVar2 + -0x7d8) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0xd38)) - (*(ulonglong *)(lVar2 + -0x400) ^ uVar37) ^
       uVar29;
  uVar4 = DAT_1826707ec;
  uVar35 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0xc1e947fe)) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x1e8) ^ uVar35) ^ uVar30;
  lVar2 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670928,DAT_182670928);
  uVar22 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xbf5b0e46)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d4 ^ 0xbd5c4ea2)) ^ uVar29) -
       (*(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ uVar33) ^ uVar34;
  uVar14 = DAT_182670804;
  *(ulonglong *)(lVar2 + -0x118) =
       *(ulonglong *)(lVar2 - (uVar22 ^ 0xbc213806)) ^ uVar34 |
       CONCAT44(uVar13,uVar8) ^ 0xecf6ef905559b1ec;
  uVar22 = (*(ulonglong *)(lVar2 - (uVar28 ^ 0x3e16b819)) ^ uVar31) +
           (CONCAT44(uVar5,uVar4) ^ 0xda3bf8c421411bc3);
  *(ulonglong *)(lVar2 + -0xce0) = uVar22 ^ CONCAT44(uVar14,uVar14);
  lVar3 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0xcec) =
       *(int *)(lVar2 - (uVar38 ^ 0xbcbd9180)) - (DAT_1826707dc ^ 0x63b5d1ec);
  uVar31 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar29 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar3 + -0x660) = (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar33) - uVar22 ^ uVar31;
  lVar2 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar27 = *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x72a68602)) ^ uVar27 ^ uVar30 ^ uVar24 ^
           *(ulonglong *)(DAT_1826707a0 + -0x1b8);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar27;
  uVar29 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar2 + -0xb70) = (uVar27 ^ uVar30) >> (((byte)uVar7 ^ 0x31) & 0x3f) ^ uVar35;
  uVar22 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xbfffa30c)) =
       (uVar27 ^ uVar30) << (((byte)uVar4 ^ 0x26) & 0x3f) ^ uVar22;
  uVar14 = DAT_182670a1c;
  uVar27 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xbfffac34)) =
       (*(ulonglong *)(lVar2 + -0xb70) ^ uVar35 | uVar22 ^ *(ulonglong *)(lVar2 + -0x6f0)) ^ uVar27;
  uVar15 = DAT_182670af0;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar2 + -0x9c8);
  uVar22 = (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar24) - (uVar26 ^ *(ulonglong *)(lVar2 + -0x5c0));
  *(ulonglong *)(lVar2 + -0x220) = uVar22 ^ uVar37;
  uVar40 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar22 - uVar27 ^ uVar40;
  uVar35 = (ulonglong)DAT_1826707ac;
  uVar22 = (CONCAT44(uVar12,uVar11) ^ 0x12c5f97340004207) -
           (*(ulonglong *)(lVar2 - (uVar35 ^ 0x3e16b979)) ^ CONCAT44(uVar14,uVar14));
  uVar24 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *(ulonglong *)(lVar2 + -0x890) = uVar22 ^ CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar14 = DAT_1826709e8;
  uVar29 = uVar22 + uVar27 ^ uVar24;
  *(ulonglong *)(lVar2 + -0x658) = uVar29;
  *(ulonglong *)(lVar2 + -0x588) = uVar22 - (CONCAT44(uVar9,uVar6) ^ 0xb9b40539934c055);
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar33 = uVar29 ^ *puVar17 ^ uVar22 ^ uVar24 ^ uVar34;
  uVar27 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *(ulonglong *)(lVar2 + -0xd38) = uVar33;
  uVar4 = DAT_1826707c4;
  uVar29 = (uVar33 ^ uVar22) >> (((byte)DAT_1826707b4 ^ 0xe1) & 0x3f);
  uVar30 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar2 + -0x420) = uVar29 ^ uVar27;
  uVar14 = DAT_1826709d8;
  uVar27 = (uVar33 ^ uVar22) << (((byte)uVar4 ^ 0xe1) & 0x3f);
  *(ulonglong *)(lVar2 + -0x7d8) = uVar27 ^ uVar30;
  lVar3 = DAT_1826707a0;
  uVar22 = CONCAT44(uVar14,uVar14);
  uVar37 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x3e16bd39)) = (uVar27 | uVar29) ^ uVar22;
  uVar14 = DAT_182670888;
  uVar4 = DAT_1826707c8;
  uVar27 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0x72a686aa)) ^ uVar34) -
       (*(ulonglong *)(lVar3 + -0x118) ^ uVar22) ^ uVar27;
  uVar29 = CONCAT44(uVar14,uVar14);
  uVar35 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar22 = uVar29 ^ uVar40 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0xbb0) ^
           *(ulonglong *)(lVar3 + -0x660);
  uVar26 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0x1b8) = uVar22;
  uVar14 = DAT_18267084c;
  uVar5 = DAT_1826707e0;
  uVar33 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0xbc213fae)) ^ uVar29) >> ((bVar23 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar3 + -0xb70) = (uVar30 ^ *(ulonglong *)(lVar3 + -0x7d8)) + 0x34cfbcf85c00399c;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0xf0) = uVar33 ^ uVar35;
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar22 = (uVar29 ^ uVar22) << (((byte)uVar5 ^ 0xdd) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6f0) = uVar22 ^ uVar30;
  uVar14 = DAT_182670a78;
  *(ulonglong *)(lVar2 + -0x5c0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x99845dd4)) ^ uVar24) <<
       (((byte)uVar4 ^ 0x89) & 0x3f);
  uVar5 = DAT_1826708d8;
  uVar4 = DAT_1826707f0;
  uVar24 = CONCAT44(uVar14,uVar14);
  uVar29 = (ulonglong)DAT_1826708d8;
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar22 | uVar33) ^ uVar24;
  uVar14 = DAT_182670944;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xbc213c36)) =
       (*(ulonglong *)(lVar2 - (uVar37 ^ 0x72a6864a)) ^ uVar30) << (((byte)uVar4 ^ 0x73) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9c8) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0xbb0)) - (*(ulonglong *)(lVar2 + -0x6b8) ^ uVar24) ^
       CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182670878;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x3e16b4b1)) =
       CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar2 + -0x6b8) ^ *(ulonglong *)(lVar2 + -0x4c8) ^
       uVar24 ^ uVar27;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x68ce002)) =
       (*(ulonglong *)(lVar2 + -0x890) >> 0x20 ^ uVar29) >> 0x1a ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar25) * 4) = uVar20;
  return;
}



############ FUN_ 180c5beb0 size=4063 ############

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

void FUN_180c5beb0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  ulonglong *puVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  uVar29 = DAT_182670a58;
  uVar24 = DAT_1826707e4;
  uVar7 = DAT_1826707a8;
  lVar5 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707a8;
  uVar22 = DAT_1826707a8 & DAT_1826707e4;
  uVar12 = *(uint *)(&DAT_18260f758 + DAT_182670cd0) ^ DAT_1826707e4;
  uVar9 = *(uint *)(&DAT_18260f760 + DAT_182670cd0) ^ DAT_1826707a8;
  uVar20 = (ulonglong)DAT_1826707e4;
  puVar1 = (uint *)(DAT_1826707a0 + -0xc0c);
  uVar10 = *(uint *)(DAT_1826707a0 + -0x280) ^ DAT_182670a90;
  uVar16 = (*(uint *)(DAT_1826707a0 + -0x43c) ^ DAT_182670944) >> 0x13 ^ DAT_182670a5c;
  DAT_1826707f4 = uVar22;
  *(uint *)(DAT_1826707a0 + -0x398) = uVar16;
  *puVar1 = (uVar10 | uVar16 ^ DAT_182670a5c) ^ DAT_182670a00;
  *(ulonglong *)(lVar5 + -0x68) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0x80804568)) |
       CONCAT44(uVar22,uVar24) ^ 0xf1df53b9ee20516e;
  uVar10 = (*(uint *)(lVar5 - (uVar18 ^ 0x848047c0)) ^ DAT_18267099c) +
           (*(uint *)(lVar5 + -0xb54) ^ DAT_182670848) ^ DAT_182670938;
  *(uint *)(lVar5 + -0x42c) = uVar10;
  *(uint *)(lVar5 - ((ulonglong)uVar22 ^ 0x808048c0)) = uVar10 ^ DAT_182670888 ^ DAT_182670938;
  uVar26 = DAT_182670a3c;
  uVar23 = *puVar1 ^ DAT_182670a3c ^ DAT_182670a00;
  *(uint *)(lVar5 + -0xc04) = uVar23;
  uVar23 = uVar23 ^ DAT_182670b00;
  uVar10 = *(uint *)(lVar5 - ((ulonglong)uVar22 ^ 0x80804c24));
  *(uint *)(lVar5 + -0x2d4) = uVar29 ^ DAT_182670888 ^ *(uint *)(lVar5 + -0x8e0);
  *(uint *)(lVar5 + -0x540) = (uVar10 ^ uVar26) >> 0xf;
  *(ulonglong *)(lVar5 + -0xb70) =
       (CONCAT44(uVar24,uVar22) ^ 0xb20e711a36f19faf) >>
       ((byte)*(undefined8 *)(lVar5 + -0x118) & 0x3f);
  uVar13 = DAT_182670a70;
  uVar27 = DAT_182670978;
  uVar17 = DAT_182670890;
  uVar16 = DAT_1826707cc;
  uVar14 = (ulonglong)DAT_18267095c;
  *(uint *)(lVar5 + -0x68c) = uVar23 ^ uVar26;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar22 ^ 0x808044d8)) =
       (CONCAT44(uVar7,uVar24) ^ 0x84804024d3c8e626) + *(longlong *)(lVar5 + -0x30) ^ uVar14;
  bVar19 = (byte)uVar7;
  puVar2 = (uint *)(lVar5 + -0x9ec);
  uVar18 = (ulonglong)DAT_182670a68;
  *(byte *)(lVar5 + -0x751) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x4f8) ^ uVar14) ^ (byte)uVar13 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar5 + -0x600) ^ uVar18) = bVar19 ^ 0xc6;
  puVar3 = (uint *)(lVar5 + -0x3d4);
  *puVar3 = (uint)*(byte *)(lVar5 + -0x751) ^ uVar13 & 0xff ^ uVar27;
  uVar26 = DAT_1826707d0;
  *puVar2 = (*(uint *)(lVar5 + -0x68c) ^ DAT_182670b00) + (uVar24 ^ 0x18ecab02) ^ uVar17;
  uVar28 = DAT_1826707e8;
  lVar5 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707e8;
  bVar15 = (byte)DAT_1826707e8;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x85f69362)) =
       (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar26 ^ 0xfffffc6b)) ^ uVar27) <<
       (((byte)uVar24 ^ 0x30) & 0x1f) ^ DAT_18267087c;
  uVar10 = *puVar2;
  *(ulonglong *)(lVar5 + -0x5c0) = *(ulonglong *)(lVar5 + -0x1b8) >> ((bVar15 ^ 0x94) & 0x3f);
  uVar23 = DAT_182670840;
  uVar10 = (uVar10 ^ uVar17) - (*(uint *)(lVar5 + -0xa34) ^ DAT_18267087c);
  puVar4 = (uint *)(lVar5 + -0xc34);
  *puVar4 = uVar10 ^ DAT_182670840;
  uVar30 = DAT_18267094c;
  *(uint *)(DAT_1826707a0 + -0xcec) =
       (*(uint *)(lVar5 - ((ulonglong)uVar16 ^ 0x85f69b82)) ^ uVar29) * uVar10 ^ DAT_18267094c;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x84804418)) =
       (*puVar3 ^ uVar27) * 7 ^ DAT_182670a94;
  uVar27 = DAT_182670aa8;
  *(uint *)(DAT_1826707a0 - (uVar20 ^ 0xd3c8e4a1)) = *puVar4 ^ uVar23 | DAT_1826707f4 ^ 0x6844e048;
  uVar16 = DAT_182670940;
  uVar10 = DAT_1826707c0;
  lVar5 = DAT_1826707a0;
  bVar15 = (byte)DAT_1826707d0;
  uVar23 = (*(uint *)(DAT_1826707a0 - (uVar18 ^ 0x5699f2b9)) ^ DAT_182670a94) +
           (uVar30 ^ *(uint *)(DAT_1826707a0 + -0xcec));
  uVar18 = (ulonglong)DAT_1826707c0;
  *(uint *)(DAT_1826707a0 + -0x398) = uVar23 ^ uVar27;
  lVar6 = DAT_1826707a0;
  uVar30 = uVar23 << ((bVar15 ^ 0xb2) & 0x1f) ^ DAT_18267089c;
  *(uint *)(lVar5 + -0x7e4) = uVar30;
  uVar30 = uVar30 ^ DAT_18267089c;
  uVar23 = (*(uint *)(lVar5 + -0x398) ^ uVar27) >> ((bVar19 ^ 0x37) & 0x1f);
  *(uint *)(lVar6 + -0x42c) = uVar23 ^ uVar16;
  uVar31 = (uVar30 | uVar23) ^ uVar17;
  *puVar1 = uVar31;
  uVar30 = DAT_1826707f0;
  uVar8 = DAT_1826707d4;
  uVar31 = uVar31 ^ DAT_182670870;
  *(uint *)(lVar6 + -0x540) =
       (*(uint *)(lVar6 - (uVar18 ^ 0xf993baf7)) ^ DAT_182670848) +
       (*(uint *)(lVar6 + -0x2d4) ^ uVar29) ^ uVar13;
  uVar27 = DAT_182670a64;
  uVar23 = DAT_1826707e0;
  uVar31 = uVar31 ^ uVar17;
  uVar32 = (ulonglong)DAT_1826707e0;
  uVar25 = (CONCAT44(uVar28,uVar28) ^ 0x71e3b887e526e299) >> ((bVar19 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar6 + -0x400) = uVar25;
  uVar16 = uVar27 ^ DAT_182670a68;
  uVar13 = *(uint *)(lVar6 - ((ulonglong)uVar7 ^ 0x84804564)) ^ DAT_182670a68 ^ uVar13;
  *(uint *)(lVar6 + -0x8e0) = uVar13;
  *(uint *)(lVar6 + -0x68c) = uVar16 ^ uVar13;
  uVar28 = DAT_1826707f4;
  uVar18 = CONCAT44(uVar8,DAT_1826707f4);
  *(uint *)(lVar6 + -0xc04) = uVar31;
  *puVar2 = uVar31 ^ DAT_182670a20 ^ DAT_182670870;
  uVar14 = (ulonglong)uVar30;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar26 ^ 0xfffffb9f)) =
       uVar18 ^ uVar25 ^ 0x892c9367b1584c1a;
  bVar15 = (byte)DAT_182670a28;
  lVar5 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_18267099c;
  puVar11 = (ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xd3c8e451));
  *(ulonglong *)(DAT_1826707a0 + -0x270) =
       (CONCAT44(uVar30,uVar10) ^ 0x21e6c8d3f993b1a3) * 0x20 +
       (CONCAT44(uVar23,DAT_1826707d0) ^ 0x3a0966e9ffffffad) + *(longlong *)(DAT_1826707a0 + -0x30)
       ^ uVar18;
  uVar26 = DAT_182670a88;
  uVar25 = (ulonglong)DAT_182670a88;
  *(byte *)(lVar5 + -0x619) = *(byte *)(*puVar11 ^ uVar18) ^ bVar15 ^ (byte)DAT_182670adc;
  uVar17 = DAT_182670ab8;
  uVar16 = DAT_1826707c4;
  uVar10 = DAT_1826707bc;
  uVar20 = (ulonglong)DAT_1826707c4;
  uVar33 = (ulonglong)DAT_1826707bc;
  *(undefined1 *)(*(ulonglong *)(lVar5 + -0xa60) ^ uVar25) = 0xea;
  uVar8 = DAT_1826707b4;
  *(ulonglong *)(lVar5 + -0x6b8) =
       (CONCAT44(uVar16,uVar10) ^ 0xc79df61c0c836e3) + *(longlong *)(lVar5 + -0x890);
  *(uint *)(lVar5 - ((ulonglong)uVar28 ^ 0x80804a14)) =
       (bVar15 ^ *(byte *)(lVar5 + -0x619)) ^ uVar17;
  *(ulonglong *)(lVar5 + -0x7d8) = CONCAT44(uVar7,uVar8) ^ 0x733e5d86d5c2f9f8;
  uVar16 = DAT_1826707c8;
  uVar10 = *(uint *)(lVar5 + -0xa34);
  uVar25 = (ulonglong)DAT_1826707c8;
  *puVar3 = (*puVar2 ^ DAT_182670a20) + (uVar30 ^ 0xeac285f0) ^ DAT_1826709e4;
  uVar28 = (uVar10 ^ uVar17) << (((byte)DAT_1826707e8 ^ 0x94) & 0x1f) ^ DAT_182670a54;
  *puVar4 = uVar28;
  lVar5 = DAT_1826707a0;
  uVar10 = DAT_1826707e8 ^ 0x5699f697;
  *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0x808042a0)) =
       (*(uint *)(DAT_1826707a0 - (uVar25 ^ 0xd6da6559)) ^ DAT_1826709e4) - (uVar28 ^ DAT_182670a54)
       ^ uVar26;
  uVar26 = (*(uint *)(lVar5 + -0x280) ^ uVar26) * (*(uint *)(lVar5 + -0x68c) ^ uVar27) ^
           DAT_182670830;
  *(uint *)(lVar5 + -0xcec) = uVar26;
  *(uint *)(lVar5 + -0x43c) = (*(uint *)(lVar5 + -0xa34) ^ uVar17) * uVar10 ^ DAT_182670988;
  uVar10 = DAT_1826708d8;
  uVar26 = (*(uint *)(lVar5 - ((ulonglong)DAT_1826707ac ^ 0xe6aa3b41)) ^ DAT_182670988) +
           (uVar26 ^ DAT_182670830);
  *(uint *)(lVar5 + -0x398) = uVar26 ^ DAT_1826708d8;
  uVar26 = uVar26 * 0x2000 ^ DAT_182670910;
  *(ulonglong *)(lVar5 + -0x660) = *(ulonglong *)(lVar5 + -0xbb0) ^ *(ulonglong *)(lVar5 + -0x548);
  *(uint *)(lVar5 + -0x7e4) = uVar26;
  uVar26 = DAT_1826707cc;
  uVar21 = (ulonglong)DAT_1826707cc;
  uVar10 = (*(uint *)(lVar5 + -0x398) ^ uVar10) >> (((byte)DAT_1826707b4 ^ 0xf5) & 0x1f) ^
           DAT_1826708f0;
  uVar18 = (ulonglong)DAT_1826707b0;
  *(uint *)(lVar5 + -0x42c) = uVar10;
  *(uint *)(lVar5 - (uVar18 ^ 0x7a2de0bd)) =
       (*(uint *)(lVar5 - (uVar20 ^ 0xaff6fa9b)) ^ DAT_182670910 | uVar10 ^ DAT_1826708f0) ^
       DAT_1826709c8;
  *(uint *)(lVar5 - ((ulonglong)DAT_1826707d0 ^ 0xfffffaff)) =
       (*(uint *)(lVar5 - (uVar21 ^ 0x85f69202)) ^ DAT_182670848) +
       (*(uint *)(lVar5 + -0x68c) ^ uVar27) ^ DAT_1826708f4;
  *puVar1 = *(uint *)(lVar5 + -0x540) ^ DAT_1826708e8 ^ DAT_1826708f4;
  *(ulonglong *)(lVar5 - (uVar32 ^ 0x3a096cf1)) =
       CONCAT44(uVar23,uVar16) ^ 0xa30c801734cc0c87 |
       CONCAT44(uVar22,DAT_1826707e8) ^ 0x64611e5b197f4259;
  bVar15 = (byte)DAT_182670a84;
  uVar23 = DAT_1826707dc;
  uVar10 = DAT_1826707ac;
  uVar16 = *(uint *)(lVar5 + -0x2d4) ^ DAT_182670b08 ^ DAT_1826709c8;
  uVar21 = (ulonglong)DAT_1826707dc;
  *(uint *)(lVar5 + -0xc04) = *puVar1 ^ DAT_182670b14 ^ DAT_1826708e8;
  *(uint *)(lVar5 + -0x8e0) = uVar16;
  *puVar2 = uVar16 ^ DAT_182670854 ^ DAT_182670b08;
  uVar28 = DAT_182670888;
  lVar5 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_182670a38;
  puVar11 = (ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xd6da6b35));
  *(ulonglong *)(DAT_1826707a0 + -0xdb8) =
       (CONCAT44(uVar23,uVar8) ^ 0xbfffffbf7d3faae6) * 0x20 +
       (CONCAT44(uVar10,uVar26) ^ 0xe6aa3f7d85f6994b) + *(longlong *)(DAT_1826707a0 + -0x30) ^
       uVar18;
  *(byte *)(lVar5 - (uVar33 ^ 0x5ed47388)) =
       *(byte *)(*puVar11 ^ uVar18) ^ bVar15 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707c0 ^ 0xf993bb03)) ^
           (ulonglong)DAT_1826709b0) = (byte)DAT_1826707e4 ^ 0xc0;
  uVar30 = _DAT_1826709e0;
  uVar17 = (uint)(*(byte *)(lVar5 + -0x639) ^ bVar15);
  uVar24 = (*puVar2 ^ DAT_182670854) + (uVar24 ^ 0x18ecab02);
  *puVar3 = uVar17 ^ uVar28;
  lVar5 = DAT_1826707a0;
  uVar17 = uVar17 << (((byte)DAT_1826707b4 ^ 0xf7) & 0x1f);
  *puVar4 = uVar24 ^ uVar30;
  *(uint *)(lVar5 + -0x280) = uVar17 ^ DAT_1826709a4;
  uVar26 = DAT_182670884;
  uVar16 = DAT_1826707d0;
  lVar5 = DAT_1826707a0;
  bVar15 = (byte)DAT_1826707d4;
  *(uint *)(DAT_1826707a0 - (uVar14 ^ 0x21e6c2e7)) = uVar24 - uVar17 ^ DAT_182670884;
  uVar24 = DAT_182670934;
  uVar29 = *(uint *)(lVar5 + -0xc04) ^ DAT_182670b14;
  uVar17 = DAT_1826707e0 ^ 0x3a0966f4;
  uVar27 = (uVar26 ^ *(uint *)(lVar5 + -0xa34)) * uVar29 ^ DAT_1826709d8;
  *(uint *)(lVar5 + -0xcec) = uVar27;
  lVar5 = DAT_1826707a0;
  uVar27 = uVar27 ^ DAT_1826709d8;
  uVar26 = (*puVar3 ^ uVar28) * uVar17 ^ DAT_182670ae4;
  *(uint *)(DAT_1826707a0 + -0x43c) = uVar26;
  uVar27 = (uVar26 ^ DAT_182670ae4) + uVar27;
  *(uint *)(lVar5 + -0x398) = uVar27 ^ uVar24;
  bVar19 = (byte)DAT_1826707d8;
  *(uint *)(lVar5 + -0x42c) = uVar27 << ((bVar15 ^ 0xb6) & 0x1f) ^ DAT_18267099c;
  uVar26 = uVar27 >> ((bVar19 ^ 0xc5) & 0x1f) ^ DAT_182670b00;
  *(uint *)(lVar5 + -0x7e4) = uVar26;
  uVar18 = (ulonglong)DAT_1826707cc;
  *(uint *)(lVar5 + -0x68c) =
       (*(uint *)(lVar5 - ((ulonglong)uVar16 ^ 0xfffffb93)) ^ DAT_18267099c | uVar26 ^ DAT_182670b00
       ) ^ DAT_1826708dc;
  *(uint *)(lVar5 - (uVar18 ^ 0x85f69c16)) =
       (*(uint *)(lVar5 + -0xb54) ^ DAT_182670848) + uVar29 ^ DAT_182670ac4;
  uVar18 = (ulonglong)DAT_1826707f4;
  uVar26 = *(uint *)(lVar5 + -0x540) ^ DAT_182670a14 ^ DAT_182670ac4;
  *(uint *)(lVar5 + -0x2d4) = uVar26;
  uVar24 = DAT_182670920;
  uVar17 = *(uint *)(lVar5 - (uVar18 ^ 0x808046ac)) ^ DAT_182670920 ^ DAT_1826708dc;
  *puVar1 = uVar17;
  uVar28 = DAT_182670954;
  uVar20 = (ulonglong)DAT_1826707e8;
  uVar25 = CONCAT44(uVar23,DAT_1826707ec);
  uVar18 = *(ulonglong *)(lVar5 + -0x4c8);
  *(uint *)(lVar5 + -0x8e0) = uVar26 ^ DAT_182670954 ^ DAT_182670a14;
  uVar26 = DAT_1826707f4;
  *(ulonglong *)(lVar5 + -0x610) =
       (CONCAT44(uVar22,uVar10) ^ 0x41d4c0d110515ba7) >>
       ((byte)*(undefined8 *)(lVar5 + -0xa18) & 0x3f);
  *puVar2 = uVar24 ^ uVar30 ^ uVar17;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707b8 ^ 0xb99b676c)) =
       uVar25 ^ uVar18 ^ 0xc37db717b75c814a;
  uVar24 = DAT_182670950;
  uVar18 = (ulonglong)DAT_182670a44;
  uVar27 = DAT_182670950 & 0xff;
  *(ulonglong *)(lVar5 - (uVar20 ^ 0x5699f49d)) =
       (CONCAT44(uVar10,uVar7) ^ 0xe6aa3f7d8480402c) + *(longlong *)(lVar5 + -0x30) ^ uVar18;
  uVar17 = DAT_182670a7c;
  lVar5 = DAT_1826707a0;
  bVar15 = (byte)uVar23;
  *(byte *)(DAT_1826707a0 - ((ulonglong)uVar26 ^ 0x80804c15)) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x218) ^ uVar18) ^ (byte)uVar24 ^
       (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar5 + -0x148) ^ (ulonglong)DAT_182670998) = bVar15 ^ 0x52;
  *(uint *)(lVar5 - (uVar20 ^ 0x5699fab1)) = (uVar16 ^ 0xa9857975) + (uVar26 ^ 0xe2a4e56c);
  uVar7 = DAT_182670894;
  lVar6 = DAT_1826707a0;
  uVar27 = *(byte *)(lVar5 + -0xc35) ^ uVar27;
  *(uint *)(lVar5 + -0x280) = uVar27 ^ DAT_182670894;
  uVar16 = uVar23 & DAT_1826707f0;
  DAT_1826707b4 = uVar16;
  *(uint *)(lVar6 + -0xa34) = (uVar30 ^ *puVar2) + (uVar16 ^ 0xeac285b0) ^ uVar17;
  *(uint *)(lVar6 - (uVar14 ^ 0x21e6cb07)) = uVar27 << ((bVar15 ^ 0xae) & 0x1f) ^ DAT_182670a2c;
  uVar10 = DAT_182670818;
  uVar26 = (uVar17 ^ *(uint *)(lVar6 + -0xa34)) - (*puVar3 ^ DAT_182670a2c) ^ DAT_1826709a0;
  *(ulonglong *)(lVar6 + -0xce0) = *(ulonglong *)(lVar6 + -0x9e0) | 0x2d4e81ffa45f560c;
  *(uint *)(lVar6 + -0x43c) = uVar26;
  *(uint *)(lVar6 - ((ulonglong)uVar16 ^ 0x21e6c47f)) =
       (*(uint *)(lVar6 - (uVar14 ^ 0x21e6c033)) ^ uVar28) * (uVar26 ^ DAT_1826709a0) ^ uVar10;
  *(uint *)(lVar6 - ((ulonglong)uVar23 ^ 0xbffffc27)) =
       (*(uint *)(lVar6 + -0x280) ^ uVar7) * (uVar16 ^ 0x21e6c89b) ^ DAT_1826709ec;
  *(uint *)(lVar6 + -0x42c) = uVar10 ^ *(uint *)(lVar6 + -0xcec) | uVar16 ^ 0x1b1e4582;
  uVar7 = DAT_182670984;
  uVar10 = (*(uint *)(lVar6 - (uVar14 ^ 0x21e6cb4b)) ^ DAT_1826709ec) +
           (*(uint *)(lVar6 - (uVar14 ^ 0x21e6c43f)) ^ uVar10);
  *(uint *)(lVar6 + -0x7e4) = uVar10 ^ DAT_182670984;
  *(uint *)(lVar6 + -0xc04) = uVar10 << ((bVar15 ^ 0xb2) & 0x1f) ^ DAT_182670824;
  uVar10 = DAT_182670814;
  uVar30 = (*(uint *)(lVar6 - (uVar21 ^ 0xbffff85b)) ^ uVar7) >> 0x13 ^ DAT_182670974;
  *(uint *)(lVar6 + -0x540) = uVar30;
  uVar7 = DAT_18267082c;
  uVar26 = (uVar28 ^ *(uint *)(lVar6 + -0x8e0)) + (*(uint *)(lVar6 + -0xb54) ^ DAT_182670848) ^
           DAT_182670994;
  *(uint *)(lVar6 + -0x68c) =
       (*(uint *)(lVar6 - ((ulonglong)uVar16 ^ 0x21e6c497)) ^ DAT_182670824 | uVar30 ^ DAT_182670974
       ) ^ uVar24;
  *(uint *)(lVar6 - (uVar21 ^ 0xbffffd6b)) = uVar26;
  *puVar1 = uVar7 ^ DAT_182670994 ^ *(uint *)(lVar6 + -0x2d4);
  *puVar4 = *(uint *)(lVar6 + -0x68c) ^ uVar10 ^ uVar24;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar16 ^ 0x21e6ccab)) =
       (CONCAT44(uVar23,uVar16) ^ 0x6d5f26912273ce9c) - *(longlong *)(lVar6 + -0xce0);
  uVar10 = uVar10 ^ *puVar4 ^ DAT_182670a00;
  *puVar2 = uVar7 ^ *puVar1 ^ DAT_182670a68;
  *puVar3 = uVar10;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar9 * 4) = uVar12;
  return;
}



############ FUN_ 180c890f0 size=3203 ############

void FUN_180c890f0(void)

{
  longlong lVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  undefined4 uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte *pbVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  byte bVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  
  uVar10 = DAT_1826707ec;
  uVar9 = DAT_1826707e4;
  uVar7 = DAT_1826707cc;
  uVar6 = DAT_1826707c8;
  uVar5 = DAT_1826707b8;
  uVar4 = DAT_1826707a8;
  lVar1 = DAT_1826707a0;
  uVar17 = (ulonglong)DAT_1826707a8;
  uVar19 = DAT_1826707f0 & DAT_1826707b4;
  uVar14 = DAT_1826707a8 & 7;
  uVar20 = (ulonglong)DAT_1826707c8;
  uVar22 = (ulonglong)DAT_1826707ec;
  if (uVar14 < 4) {
    if (uVar14 < 2) {
      uVar25 = DAT_1826707c8;
      if (uVar14 == 0) {
        uVar25 = DAT_1826707a8;
      }
    }
    else {
      uVar25 = DAT_1826707bc;
      if (uVar14 < 3) {
        uVar25 = DAT_1826707e4;
      }
    }
  }
  else if (uVar14 < 6) {
    uVar25 = DAT_1826707ec;
    if (uVar14 < 5) {
      uVar25 = DAT_1826707b8;
    }
  }
  else {
    uVar25 = DAT_1826707c4;
    if (uVar14 < 7) {
      uVar25 = DAT_1826707cc;
    }
  }
  uVar16 = *(uint *)(&DAT_18260f758 + DAT_182670d60) ^ DAT_1826707bc;
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670d60) ^ DAT_1826707c4;
  pbVar18 = *(byte **)(DAT_1826707a0 + -0xbd8);
  DAT_1826707d4 = uVar25;
  DAT_1826707e8 = uVar19;
  *(ulonglong *)(DAT_1826707a0 + -0xc58) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670ae0;
  uVar21 = (ulonglong)DAT_18267085c;
  *(byte **)(lVar1 + -0x2b8) = pbVar18 + (CONCAT44(uVar10,uVar4) ^ 0xb1a3f993a97435ec);
  *(byte *)(lVar1 + -0x861) = *pbVar18 ^ (byte)DAT_182670920 ^ DAT_1826709e0;
  uVar8 = DAT_1826707d0;
  uVar27 = (ulonglong)DAT_1826707d0;
  *(byte *)(lVar1 + -0xad1) = (byte)uVar5 ^ 0x4c;
  bVar28 = (byte)uVar8;
  *(byte *)(*(ulonglong *)(lVar1 + -0x650) ^ uVar21) = bVar28 ^ 0xa9;
  uVar30 = (ulonglong)uVar19;
  *(ulonglong *)(lVar1 + -0xc18) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0xb1a3fdab)) |
       CONCAT44(uVar7,uVar6) ^ 0xf7e5a6d26f38d617;
  uVar5 = DAT_1826707b4;
  *(longlong *)(lVar1 + -0x1c8) =
       (*(ulonglong *)(lVar1 + -0x88) ^ uVar21) + (CONCAT44(uVar9,uVar19) ^ 0x82c054d982c05118);
  bVar13 = (byte)DAT_1826707f0;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar20 ^ 0xfbfbf954)) ^ uVar21) =
       *(byte *)(lVar1 + -0x861) ^ (byte)DAT_182670920;
  *(byte *)(lVar1 + -0x861) = bVar13 ^ 0xa2;
  bVar11 = (byte)DAT_182670850;
  bVar13 = (byte)DAT_1826707ec;
  uVar23 = (ulonglong)DAT_18267095c;
  uVar14 = DAT_1826707b8 ^ 0x1aec3042;
  uVar21 = (ulonglong)DAT_182670a8c;
  *(undefined8 *)(lVar1 + -0x170) = *(undefined8 *)(lVar1 - ((ulonglong)uVar5 ^ 0x9bf9fa73));
  *(undefined8 *)(lVar1 + -0x808) = *(undefined8 *)(lVar1 + -0x2b8);
  *(uint *)(lVar1 - (uVar17 ^ 0xa97431d1)) = uVar14 << ((bVar13 ^ 0x89) & 0x1f);
  *(ulonglong *)(lVar1 + -0x480) = *(ulonglong *)(lVar1 - (uVar27 ^ 0x6c372fe7)) ^ uVar23;
  uVar14 = DAT_1826707bc;
  pbVar18 = *(byte **)(lVar1 + -0x808);
  uVar31 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar1 + -0xd70) = (ulonglong)pbVar18 ^ uVar21;
  uVar26 = CONCAT44(uVar6,uVar19) ^ 0xfbfbf9dc82c05118;
  *(byte **)(lVar1 + -0xb0) = pbVar18 + uVar26;
  *(byte *)(lVar1 + -0x549) = *pbVar18 ^ bVar11 ^ DAT_1826709e0;
  *(byte *)(lVar1 + -0xd61) = (byte)DAT_1826707b4 ^ 2;
  *(byte *)(*(ulonglong *)(lVar1 - (uVar20 ^ 0xfbfbf0ac)) ^ (ulonglong)DAT_1826709fc) =
       (byte)uVar19 ^ 0x17;
  *(ulonglong *)(lVar1 + -0x270) =
       (*(ulonglong *)(lVar1 - (uVar31 ^ 0x400004c0)) ^ uVar23) +
       (CONCAT44(uVar9,uVar25) ^ 0x82c054d9b1a3f992);
  *(uint *)(lVar1 + -0x2d4) = *(uint *)(lVar1 + -0x540) >> (((byte)DAT_1826707f0 ^ 0x1d) & 0x1f);
  uVar19 = DAT_1826707c4;
  uVar20 = (ulonglong)DAT_182670974;
  uVar24 = (ulonglong)DAT_1826708b8;
  bVar13 = (byte)DAT_1826707ec;
  *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x9bf9ff3b)) ^ uVar23) =
       bVar11 ^ *(byte *)(lVar1 + -0x549);
  *(byte *)(lVar1 + -0x549) = bVar13 ^ 0x7b;
  bVar13 = (byte)DAT_182670a7c;
  *(uint *)(lVar1 + -0x7e4) = (DAT_1826707a8 ^ 0x56d37079) + 0xed4bdc6;
  *(undefined8 *)(lVar1 + -0x5d8) = *(undefined8 *)(lVar1 - (uVar30 ^ 0x82c05369));
  *(undefined8 *)(lVar1 - ((ulonglong)uVar8 ^ 0x6c372f47)) =
       *(undefined8 *)(lVar1 - (uVar30 ^ 0x82c051a9));
  *(ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0x6c372967)) = uVar24 ^ *(ulonglong *)(lVar1 + -0x5d8);
  pbVar18 = *(byte **)(lVar1 + -0x1d0);
  *(ulonglong *)(lVar1 + -0x390) = (ulonglong)pbVar18 ^ uVar20;
  *(ulonglong *)(lVar1 + -0xd80) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0x400003d0)) ^ uVar20) + 1;
  uVar14 = DAT_1826707b8;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (CONCAT44(uVar19,DAT_1826707b8) ^ 0xc779487e833ab769) + 0x67453734c9c4d48c;
  *(byte *)(lVar2 + -0x361) = *pbVar18 ^ bVar13 ^ DAT_1826709e0;
  *(byte *)(lVar2 + -0xd02) = (byte)DAT_1826707cc ^ 0x24;
  *(byte *)(*(ulonglong *)(lVar2 + -0xaf8) ^ (ulonglong)DAT_182670874) = bVar28 ^ 0x54;
  *(ulonglong *)(lVar2 + -0x560) = (*(ulonglong *)(lVar2 - (uVar17 ^ 0xa974321d)) ^ uVar24) + 1;
  *(ulonglong *)(lVar2 + -0x118) =
       CONCAT44(uVar6,uVar19) ^ *(ulonglong *)(lVar2 + -0x588) ^ 0x3f644093c5e23e31;
  *(byte *)(*(ulonglong *)(lVar2 + -0x7f0) ^ uVar24) = bVar13 ^ *(byte *)(lVar2 + -0x361);
  uVar23 = (ulonglong)DAT_1826709ac;
  *(byte *)(lVar2 + -0x361) = (byte)DAT_1826707f0 ^ 0xf1;
  *(undefined8 *)(lVar2 - (uVar31 ^ 0x40000078)) = *(undefined8 *)(lVar2 + -0x560);
  uVar5 = DAT_1826707b4;
  lVar2 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xb1a3fd83)) =
       (CONCAT44(DAT_1826707b4,DAT_1826707d4) ^ 0xbb5fa2e4746e03b0) -
       (CONCAT44(uVar7,DAT_1826707e4) ^ 0xa1bb6b9be731ba1d);
  *(undefined8 *)(lVar2 + -0xa20) = *(undefined8 *)(lVar2 + -0xd80);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0x102728f7)) =
       *(ulonglong *)(lVar2 + -0x38) ^ uVar23;
  lVar2 = DAT_1826707a0;
  pbVar18 = *(byte **)(DAT_1826707a0 + -0xa20);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (CONCAT44(uVar14,uVar4) ^ 0xf8a0660c5c864822) - *(longlong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(lVar2 + -600) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670864;
  uVar6 = DAT_1826707b8;
  *(byte **)(lVar2 + -0xc60) = pbVar18 + uVar26;
  bVar13 = (byte)DAT_182670968;
  lVar2 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x591) = (byte)DAT_182670968 ^ *pbVar18 ^ DAT_1826709e0;
  *(byte *)(lVar2 + -0xb09) = (byte)DAT_1826707a8 ^ 0x83;
  lVar3 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_182670998;
  *(byte *)(*(ulonglong *)(lVar2 + -0x538) ^ (ulonglong)DAT_1826708f4) = (byte)uVar6 ^ 0x92;
  lVar2 = DAT_1826707a0;
  pbVar18 = (byte *)(DAT_1826707a0 + -0x591);
  *(ulonglong *)(DAT_1826707a0 + -0x520) =
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0x6c37298f)) ^ uVar23) + 1;
  uVar6 = DAT_1826707e4;
  uVar24 = (ulonglong)DAT_1826707e4;
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x7d3fadfe)) ^ uVar23) = bVar13 ^ *pbVar18;
  lVar2 = DAT_1826707a0;
  *(undefined1 *)(DAT_1826707a0 - (uVar17 ^ 0xa974307c)) = 0x52;
  *(byte *)(DAT_1826707a0 - (uVar24 ^ 0x82c053ba)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0xd70) ^ uVar21) ^ DAT_1826709e0;
  lVar2 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 + -0xb18) = *(undefined8 *)(DAT_1826707a0 + -0x520);
  *(undefined1 *)(lVar2 + -0x763) = 200;
  *(undefined8 *)(lVar2 - (uVar22 ^ 0xb1a3f5fb)) = *(undefined8 *)(lVar2 + -0xc60);
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x330) = *(ulonglong *)(lVar2 + -0xb18) ^ uVar26;
  *(ulonglong *)(lVar2 + -0x68) = *(ulonglong *)(lVar2 + -0x658) >> 0x12;
  pbVar18 = *(byte **)(lVar2 + -0xc68);
  *(ulonglong *)(lVar3 + -0x4b8) = (ulonglong)pbVar18 ^ (ulonglong)DAT_1826708e0;
  lVar2 = DAT_1826707a0;
  *(byte **)(DAT_1826707a0 + -0x260) = pbVar18 + (CONCAT44(uVar9,uVar19) ^ 0x82c054d910272fee);
  *(ulonglong *)(lVar2 + -0x5c0) =
       (CONCAT44(DAT_1826707d4,uVar6) ^ 0xd68b5babad02685c) -
       *(longlong *)(lVar2 - (uVar27 ^ 0x6c372eff));
  *(byte *)(lVar2 + -0xd01) = *pbVar18 ^ (byte)DAT_182670a00 ^ DAT_1826709e0;
  uVar9 = DAT_1826707f0;
  uVar21 = (ulonglong)DAT_1826707f0;
  uVar27 = (ulonglong)DAT_18267099c;
  uVar22 = CONCAT44(uVar19,DAT_1826707f0);
  *(undefined1 *)(lVar2 - (uVar30 ^ 0x82c05703)) = 0xbe;
  lVar3 = DAT_1826707a0;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x698) ^ uVar20) = 0x33;
  *(ulonglong *)(lVar3 + -0x8d8) =
       (CONCAT44(uVar10,uVar10) ^ 0xb1a3f993b1a3f992) + (uVar26 ^ *(ulonglong *)(lVar3 + -0x330));
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x9bf9fa03)) = uVar22 ^ 0xf3f7ffbddafbffde | 0x63e7b78012f1f552;
  bVar13 = (byte)DAT_1826707cc;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0x40000370)) ^ uVar26) =
       *(byte *)(lVar3 + -0xd01) ^ (byte)DAT_182670a00;
  *(byte *)(lVar3 + -0xd01) = bVar13 ^ 0x6c;
  *(longlong *)(lVar3 + -0x890) = *(longlong *)(lVar3 + -0x68) - *(longlong *)(lVar3 + -0x630);
  *(undefined8 *)(lVar3 + -0x238) = *(undefined8 *)(lVar3 + -0x8d8);
  *(undefined8 *)(lVar3 + -0x738) = *(undefined8 *)(lVar3 + -0x260);
  uVar6 = DAT_1826707d4;
  uVar20 = (ulonglong)DAT_1826707c8;
  uVar24 = (ulonglong)DAT_182670800;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c8 ^ 0xfbfbf82c)) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0x82c05321)) ^ uVar27;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0x9bf9ff9b)) =
       CONCAT44(uVar7,uVar6) ^ 0xea7d6402ffd5e1e1 | *(ulonglong *)(lVar3 + -0xd38);
  lVar2 = DAT_1826707a0;
  uVar22 = *(ulonglong *)(lVar3 + -0x738);
  *(ulonglong *)(lVar3 + -0x870) = uVar24 ^ uVar22;
  uVar5 = DAT_182670ad8;
  uVar23 = (ulonglong)DAT_182670ad8;
  *(ulonglong *)(lVar2 + -0x7d8) =
       CONCAT44(uVar4,uVar14) ^ *(ulonglong *)(lVar2 + -0x558) ^ 0xc8339e1a42c2caea;
  uVar12 = DAT_182670ae4;
  *(ulonglong *)(lVar2 - (uVar20 ^ 0xfbfbf074)) = uVar22 + 1;
  lVar3 = DAT_1826707a0;
  uVar22 = *(ulonglong *)(DAT_1826707a0 + -0x870);
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0xd10);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar29 ^ 0x9bf9fc03)) ^ CONCAT44(uVar5,uVar5)) ^
       CONCAT44(uVar12,uVar12);
  *(undefined8 *)(lVar3 + -0x7b8) = 0xed689ccf8d021fe0;
  *(byte *)(lVar3 + -0xc35) = *(byte *)(uVar24 ^ uVar22) ^ (byte)DAT_182670990 ^ DAT_1826709e0;
  uVar22 = (ulonglong)DAT_1826708b4;
  *(undefined1 *)(lVar3 + -0x41) = 0x1f;
  bVar13 = (byte)DAT_1826707c8;
  *(undefined1 *)(uVar20 ^ uVar22) = 0xe2;
  *(byte *)(lVar3 + -0x10a) = bVar13 ^ 0x38;
  pbVar18 = (byte *)(*(ulonglong *)(lVar3 + -0x1f0) ^ uVar27);
  *(byte **)(lVar3 + -0x5a8) = pbVar18 + (CONCAT44(uVar4,uVar10) ^ 0xa97435edb1a3f992);
  bVar13 = (byte)DAT_1826707bc;
  *pbVar18 = *(byte *)(lVar3 - (uVar17 ^ 0xa97439d8)) ^ (byte)DAT_182670990;
  *(byte *)(lVar3 + -0xc35) = bVar13 ^ 0xc0;
  *(ulonglong *)(lVar3 + -0x3b0) =
       CONCAT44(uVar7,uVar10) ^ 0xd429404f59ff6836 | *(ulonglong *)(lVar3 + -0xbb0);
  uVar5 = DAT_182670a48;
  uVar20 = (ulonglong)DAT_182670a48;
  *(undefined8 *)(lVar3 - (uVar17 ^ 0xa9743435)) = *(undefined8 *)(lVar3 + -0x5a8);
  *(ulonglong *)(lVar3 + -0xcf8) =
       *(ulonglong *)(lVar3 + -0xd38) >> ((byte)*(undefined8 *)(lVar3 + -0x7d8) & 0x3f);
  uVar22 = uVar20 ^ *(ulonglong *)(lVar3 + -0x9a8);
  *(ulonglong *)(lVar3 + -0x788) = *(ulonglong *)(lVar3 + -0x9a8);
  uVar24 = (ulonglong)DAT_18267092c;
  *(ulonglong *)(lVar3 + -0x6a8) = *(ulonglong *)(lVar3 + -0x1d8) ^ uVar24;
  uVar17 = CONCAT44(uVar9,DAT_1826707e4);
  *(ulonglong *)(lVar3 + -0xce0) = *(ulonglong *)(lVar3 + -0x658) >> ((bVar28 ^ 0x8b) & 0x3f);
  *(ulonglong *)(lVar3 + -0xbd8) = uVar22;
  *(ulonglong *)(lVar3 + -0x650) = (uVar17 ^ 0x82c0551982c054d8) + (uVar5 ^ uVar22);
  uVar17 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar3 + -0x400) =
       *(ulonglong *)(lVar3 + -0x658) - (CONCAT44(uVar4,uVar19) ^ 0x753f8d5b8d20e7d8);
  *(byte *)(lVar3 + -0x1b9) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar17 ^ 0xb1a3f24b)) ^ uVar20) ^ (byte)DAT_182670918 ^
       DAT_1826709e0;
  *(undefined1 *)(lVar3 - (uVar21 ^ 0x82c05890)) = 0xcf;
  *(byte *)(*(ulonglong *)(lVar3 + -0xdc8) ^ uVar23) = (byte)DAT_1826707b4 ^ 0x47;
  *(longlong *)(lVar1 + -0x1c8) = (*(ulonglong *)(lVar3 - (uVar30 ^ 0x82c057b1)) ^ uVar24) + 1;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar16;
  return;
}



############ FUN_ 180c735b0 size=3993 ############

void FUN_180c735b0(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  uint *puVar15;
  byte bVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  uint *puVar20;
  uint uVar21;
  uint uVar22;
  uint *puVar23;
  ulonglong uVar24;
  uint uVar25;
  uint *puVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  byte *pbVar30;
  uint uVar31;
  uint uVar32;
  uint *puVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  
  uVar29 = DAT_1826708c4;
  uVar22 = DAT_1826708ac;
  uVar28 = DAT_1826707d8;
  uVar9 = DAT_1826707d0;
  lVar7 = DAT_1826707a0;
  uVar14 = (ulonglong)DAT_1826707d0;
  uVar25 = DAT_1826707d8 ^ DAT_1826707d0;
  uVar6 = *(uint *)(&DAT_18260f760 + DAT_182670d18);
  uVar18 = *(uint *)(&DAT_18260f758 + DAT_182670d18) ^ DAT_1826707d8;
  uVar34 = (ulonglong)DAT_1826707d8;
  uVar27 = (ulonglong)DAT_1826707d0;
  puVar1 = (uint *)(DAT_1826707a0 + -0x398);
  puVar2 = (uint *)(DAT_1826707a0 + -0x8e0);
  uVar35 = (ulonglong)uVar25;
  puVar3 = (uint *)(DAT_1826707a0 + -0xb54);
  uVar21 = DAT_182670848 ^ *puVar3;
  uVar12 = DAT_1826709a4 ^ *(uint *)(DAT_1826707a0 + -0xc34);
  DAT_1826707c0 = uVar25;
  *(uint *)(DAT_1826707a0 + -0x3d4) =
       (*(uint *)(DAT_1826707a0 + -0x814) ^ DAT_182670908 | *puVar1 ^ DAT_1826708ac) ^ DAT_182670870
  ;
  *(uint *)(lVar7 - (uVar14 ^ 0xebb6fe51)) = uVar21 + uVar12 ^ DAT_1826709d8;
  *(ulonglong *)(lVar7 - ((ulonglong)uVar28 ^ 0xed5dbcc5)) =
       CONCAT44(uVar9,uVar9) ^ 0x76937ab01f938920 | CONCAT44(uVar9,uVar25) ^ 0x90b1da5360aeec46;
  *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0xebb6f4d1)) =
       *(uint *)(lVar7 - ((ulonglong)uVar28 ^ 0xed5dbe69)) ^ uVar29 ^ DAT_1826709d8;
  *(ulonglong *)(lVar7 + -0x7d8) =
       (CONCAT44(uVar25,uVar28) ^ 0xd95c1b14ee461ac2) + 0x29c1db77ee49c2ad;
  uVar12 = DAT_18267086c;
  lVar8 = DAT_1826707a0;
  *puVar2 = *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0xebb6fb09)) ^ DAT_182670878 ^ DAT_182670870;
  uVar31 = DAT_18267098c;
  *(uint *)(lVar8 - (uVar34 ^ 0xed5dba31)) = uVar12 ^ uVar29 ^ *(uint *)(lVar8 + -0xc0c);
  *(uint *)(lVar8 + -0xa34) = *puVar2 ^ DAT_182670ae8 ^ DAT_182670878;
  puVar4 = (uint *)(lVar8 + -0x540);
  *(longlong *)(lVar8 + -0x658) =
       *(longlong *)(lVar8 + -0x420) <<
       ((byte)*(undefined8 *)(lVar8 - ((ulonglong)uVar25 ^ 0x6eb4050)) & 0x3f);
  pbVar30 = (byte *)((CONCAT44(uVar25,uVar25) ^ 0x6eb403806eb4039) + *(longlong *)(lVar8 + -0x30));
  *(ulonglong *)(lVar8 + -0xdb8) = (ulonglong)pbVar30 ^ (ulonglong)DAT_182670a94;
  bVar11 = *pbVar30 ^ (byte)DAT_182670adc ^ (byte)uVar22;
  *(byte *)(lVar8 + -0x619) = bVar11;
  uVar22 = (uint)bVar11 ^ uVar22 & 0xff;
  *puVar4 = uVar22 ^ uVar31;
  puVar33 = (uint *)(lVar8 - ((ulonglong)uVar28 ^ 0xed5db2d1));
  *(uint *)(lVar8 + -0x9ec) = (*puVar33 ^ DAT_182670ae8) + (uVar9 ^ 0x2092b5fe) ^ DAT_1826708a4;
  *(uint *)(lVar8 + -0x280) = uVar22 << (((byte)uVar9 ^ 0xcc) & 0x1f) ^ DAT_182670834;
  uVar22 = (*(uint *)(lVar8 - (uVar35 ^ 0x6eb49d4)) ^ DAT_1826708a4) -
           (*(uint *)(lVar8 - (uVar34 ^ 0xed5dba65)) ^ DAT_182670834) ^ DAT_182670a98;
  *(uint *)(lVar8 + -0xc04) = uVar22;
  uVar32 = DAT_1826708dc;
  *(uint *)(lVar8 - ((ulonglong)uVar28 ^ 0xed5dbf01)) =
       (*(uint *)(lVar8 + -0x2d4) ^ uVar12) * (uVar22 ^ DAT_182670a98) ^ DAT_1826709dc;
  uVar10 = DAT_182670824;
  uVar21 = DAT_1826707c8;
  uVar24 = (ulonglong)DAT_1826707c8;
  *(undefined8 *)(lVar8 + -0xd88) = 0x1582122705;
  uVar31 = (uVar31 ^ *puVar4) * (uVar9 ^ 0xebb6f8dc) ^ DAT_18267092c;
  *(uint *)(lVar8 + -0x42c) = uVar31;
  uVar22 = DAT_1826707f4;
  *(uint *)(lVar8 - ((ulonglong)uVar28 ^ 0xed5dbb7d)) =
       (*(uint *)(lVar8 - (uVar27 ^ 0xebb6ff39)) ^ DAT_1826709dc) + (uVar31 ^ DAT_18267092c) ^
       uVar32;
  *(uint *)(lVar8 - ((ulonglong)uVar22 ^ 0xbf7fd6ea)) =
       (*(uint *)(lVar8 - (uVar35 ^ 0x6eb43a0)) ^ uVar32) << (((byte)DAT_1826707ec ^ 0x8d) & 0x1f) ^
       DAT_182670a08;
  bVar16 = (byte)uVar25 ^ 0x2b;
  *(ulonglong *)(lVar8 - ((ulonglong)DAT_1826707a8 ^ 0xaae6793f)) =
       (CONCAT44(uVar9,uVar25) ^ 0x55738fb52f003196) >>
       ((byte)*(undefined8 *)(lVar8 + -0xbb0) & 0x3f);
  uVar19 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar8 + -0xc34) = (*puVar1 ^ uVar32) >> (bVar16 & 0x1f) ^ uVar10;
  uVar22 = DAT_1826707bc;
  lVar7 = DAT_1826707a0;
  uVar14 = CONCAT44(DAT_1826707bc,uVar9);
  uVar32 = (*(uint *)(lVar8 - (uVar19 ^ 0xfefda9bc)) ^ uVar10 |
           *(uint *)(lVar8 - (uVar24 ^ 0x86924930)) ^ DAT_182670a08) ^ DAT_182670a24;
  *(uint *)(lVar8 + -0x68c) = uVar32;
  uVar32 = uVar32 ^ DAT_1826707fc ^ DAT_182670a24;
  *(ulonglong *)(lVar8 + -0x6b8) = uVar14 ^ 0x2710405680208e50 | 0xee2fa84edd708d;
  uVar12 = (*(uint *)(lVar8 - ((ulonglong)uVar9 ^ 0xebb6f389)) ^ DAT_182670848) +
           (*(uint *)(lVar8 + -0x2d4) ^ uVar12) ^ DAT_1826708e8;
  *(uint *)(lVar8 + -0x3d4) = uVar12;
  uVar31 = uVar12 ^ DAT_182670880 ^ DAT_1826708e8;
  *puVar2 = uVar32;
  uVar12 = DAT_1826707c4;
  *(uint *)(lVar8 + -0xc0c) = uVar31;
  uVar32 = DAT_182670a4c;
  *(uint *)(lVar7 + -0xa34) = DAT_182670a4c ^ DAT_182670880 ^ uVar31;
  uVar14 = CONCAT44(uVar9,DAT_1826707a8);
  *(ulonglong *)(lVar7 + -0x2b0) =
       (uVar14 ^ 0x83f2c4ff8feaddba) - (CONCAT44(uVar28,uVar28) ^ 0x1033568fb379d4b0);
  puVar20 = (uint *)(lVar7 - (uVar27 ^ 0xebb6f131));
  puVar15 = (uint *)(lVar7 - (uVar34 ^ 0xed5db005));
  *puVar20 = *puVar15 ^ DAT_182670920 ^ DAT_1826707fc;
  *(ulonglong *)(lVar7 + -0x9e0) = (CONCAT44(uVar12,DAT_1826707dc) ^ 0x13aff2104828) << 0x12;
  bVar11 = (byte)DAT_182670a2c;
  uVar9 = DAT_1826707e4;
  pbVar30 = (byte *)((CONCAT44(DAT_1826707e4,uVar25) ^ 0x4124869206eb4034) +
                    *(longlong *)(lVar7 + -0x30));
  *(ulonglong *)(lVar7 + -0x2e8) = (ulonglong)pbVar30 ^ (ulonglong)DAT_1826709c8;
  *(byte *)(lVar7 + -0xc35) = *pbVar30 ^ bVar11 ^ (byte)DAT_182670adc;
  *(longlong *)(lVar7 + -0x6f0) =
       *(longlong *)(lVar7 + -0x890) << ((byte)*(undefined8 *)(lVar7 + -0x610) & 0x3f);
  *(uint *)(DAT_1826707a0 - (uVar35 ^ 0x6eb42b8)) = (*(byte *)(lVar7 + -0xc35) ^ bVar11) ^ uVar29;
  lVar7 = DAT_1826707a0;
  puVar23 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xaff6f17b));
  puVar5 = (uint *)(DAT_1826707a0 + -0x7e4);
  *puVar23 = (*(uint *)(DAT_1826707a0 + -0x9ec) ^ DAT_182670920) + (DAT_1826707e0 ^ 0x61c2301c) ^
             DAT_182670918;
  uVar12 = *(uint *)(lVar7 - ((ulonglong)uVar9 ^ 0x41248412)) ^ uVar29;
  *puVar4 = uVar12 * 0x20000 ^ DAT_182670ae4;
  uVar28 = *(uint *)(lVar7 + -0xc04) ^ DAT_182670918;
  *(ulonglong *)(lVar7 + -0x220) =
       CONCAT44(uVar22,DAT_1826707f0) ^ 0xb6183e59c1620cd0 | *(ulonglong *)(lVar7 + -0xd88);
  uVar22 = uVar28 + uVar12 * -0x20000 ^ DAT_182670848;
  *puVar5 = uVar22;
  puVar26 = (uint *)(lVar7 - ((ulonglong)uVar21 ^ 0x86924508));
  *puVar26 = (uVar22 ^ DAT_182670848) * (*puVar33 ^ uVar32) ^ DAT_182670a30;
  uVar31 = DAT_182670a9c;
  uVar28 = DAT_1826709fc;
  uVar12 = DAT_1826707b8;
  uVar27 = (ulonglong)DAT_1826707b0;
  uVar13 = *(uint *)(lVar7 + -0x42c) ^ DAT_182670a30;
  uVar29 = (*(uint *)(lVar7 + -0x280) ^ uVar29) * (DAT_1826707b8 ^ 0xd69b43a9) ^ DAT_18267089c;
  *puVar1 = uVar29;
  uVar22 = DAT_1826709f8;
  uVar13 = (uVar29 ^ DAT_18267089c) + uVar13;
  bVar11 = (byte)DAT_1826707d8;
  *(uint *)(lVar7 + -0x814) = uVar13 ^ uVar31;
  uVar29 = uVar13 << ((bVar11 ^ 0xe8) & 0x1f);
  uVar13 = uVar13 >> (((byte)uVar21 ^ 0x37) & 0x1f);
  uVar19 = (ulonglong)DAT_1826707b4;
  *(uint *)(lVar7 + -0x2d4) = uVar29 ^ uVar22;
  *(uint *)(lVar7 + -0x3d4) = uVar13 ^ uVar28;
  *(uint *)(lVar7 - (uVar19 ^ 0x7d3fac6a)) = (uVar13 | uVar29) ^ uVar31;
  uVar21 = DAT_1826707bc;
  uVar31 = *(uint *)(lVar7 + -0x68c) ^ DAT_182670abc ^ uVar31;
  uVar22 = *(uint *)(lVar7 - (uVar27 ^ 0xad6fd4ca));
  uVar28 = DAT_182670848 ^ *puVar3;
  *(uint *)(lVar7 + -0x9ec) = uVar31;
  uVar22 = (uVar22 ^ uVar32) + uVar28 ^ DAT_182670a0c;
  *(uint *)(lVar7 + -0xc0c) = uVar22;
  *puVar2 = uVar22 ^ DAT_182670994 ^ DAT_182670a0c;
  *(ulonglong *)(lVar7 + -0xa18) =
       *(ulonglong *)(lVar7 + -0x658) >> ((byte)*(undefined8 *)(lVar7 + -0x3b0) & 0x3f);
  *(uint *)(lVar7 + -0xc04) = (*(uint *)(lVar7 - ((ulonglong)uVar12 ^ 0xd69b4f91)) ^ uVar10) >> 7;
  uVar29 = DAT_182670828;
  lVar8 = DAT_1826707a0;
  uVar19 = (ulonglong)DAT_182670900;
  *puVar4 = *(uint *)(lVar7 - ((ulonglong)uVar21 ^ 0x5ed47d51)) ^ DAT_182670828 ^ DAT_182670994;
  uVar32 = DAT_182670970;
  uVar22 = uVar31 ^ DAT_182670970 ^ DAT_182670abc;
  *(longlong *)(lVar7 + -0x548) = 0x51d3004415e14333 << (((byte)uVar21 ^ 0xa9) & 0x3f);
  uVar28 = DAT_1826707e8;
  *puVar5 = uVar22;
  uVar21 = DAT_1826707cc ^ 0x4ed2d475;
  *(ulonglong *)(lVar8 - (uVar35 ^ 0x6eb4270)) =
       *(longlong *)(lVar8 - ((ulonglong)DAT_1826707cc ^ 0x85f69966)) +
       (CONCAT44(uVar28,DAT_1826707f4) ^ 0x3f7dc68abf7fdee9) ^ uVar19;
  uVar31 = DAT_1826709b8;
  bVar11 = (byte)DAT_18267084c;
  uVar10 = DAT_1826707ec;
  uVar22 = DAT_1826707c4;
  lVar7 = DAT_1826707a0;
  bVar17 = *(byte *)(*(ulonglong *)(lVar8 + -0x248) ^ uVar19) ^ (byte)DAT_18267084c ^
           (byte)DAT_182670adc;
  *(uint *)(DAT_1826707a0 + -0x42c) = (uVar32 ^ *puVar5) + uVar21 ^ DAT_1826709b8;
  *(byte *)(lVar8 + -0x619) = bVar17;
  uVar21 = DAT_182670864;
  lVar8 = DAT_1826707a0;
  uVar32 = (uint)(bVar17 ^ bVar11);
  *(uint *)(lVar7 + -0x280) = uVar32 ^ DAT_182670864;
  *(ulonglong *)(lVar8 + -0xf0) =
       *(longlong *)(lVar8 + -0x548) - (CONCAT44(uVar9,uVar10) ^ 0x63eee23c49f0ec09);
  *puVar1 = (*(uint *)(lVar8 - (uVar27 ^ 0xad6fdc7e)) ^ uVar21) << (((byte)uVar22 ^ 0x6e) & 0x1f) ^
            DAT_182670a10;
  uVar9 = DAT_1826708fc;
  uVar22 = DAT_1826707b4;
  uVar34 = (ulonglong)DAT_1826707b4;
  uVar27 = (ulonglong)DAT_1826707ac;
  uVar19 = (ulonglong)DAT_1826707bc;
  uVar21 = (uVar31 ^ *puVar26) - (*(uint *)(lVar8 - (uVar24 ^ 0x869242bc)) ^ DAT_182670a10) ^
           DAT_1826708ec;
  *(uint *)(lVar8 + -0x814) = uVar21;
  *(uint *)(lVar8 + -0x2d4) =
       (*(uint *)(lVar8 - (uVar19 ^ 0x5ed470f1)) ^ uVar29) * (uVar21 ^ DAT_1826708ec) ^
       DAT_1826708d8;
  *(longlong *)(lVar8 + -0x1b8) = *(longlong *)(lVar8 + -0x2b0) << (((byte)uVar10 ^ 0x86) & 0x3f);
  uVar21 = DAT_1826707d4;
  uVar19 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar8 + -0x3d4) = uVar32 * (DAT_1826707a8 ^ 0xaae67d28) ^ DAT_1826709c4;
  bVar11 = (byte)DAT_1826707f4;
  uVar32 = (*(uint *)(lVar8 - (uVar19 ^ 0xfefda75c)) ^ DAT_1826708d8) +
           (*(uint *)(lVar8 - (uVar27 ^ 0x121003d4)) ^ DAT_1826709c4);
  *(uint *)(lVar8 + -0xa34) = uVar32 ^ uVar9;
  *(uint *)(lVar8 - (uVar34 ^ 0x7d3fa6ea)) = uVar32 << ((bVar11 ^ 0xf3) & 0x1f) ^ DAT_182670960;
  bVar11 = (byte)DAT_1826707ec;
  uVar19 = (ulonglong)DAT_1826707dc;
  *(uint *)(lVar8 + -0x68c) =
       (*(uint *)(lVar8 - ((ulonglong)uVar22 ^ 0x7d3fa0d2)) ^ uVar9) >> ((bVar11 ^ 0x93) & 0x1f) ^
       DAT_18267088c;
  uVar32 = DAT_182670ad0;
  uVar27 = (ulonglong)DAT_1826707f4;
  *(uint *)(lVar8 + -0xc34) =
       (*(uint *)(lVar8 - (uVar19 ^ 0xbffff3b3)) ^ DAT_182670960 |
       *(uint *)(lVar8 - (uVar24 ^ 0x869247a8)) ^ DAT_18267088c) ^ DAT_1826709f0;
  uVar22 = DAT_182670af4;
  *puVar23 = (*(uint *)(lVar8 - ((ulonglong)uVar10 ^ 0x402481c0)) ^ uVar29) +
             (*(uint *)(lVar8 - ((ulonglong)uVar21 ^ 0xfefdaedc)) ^ DAT_182670848) ^ DAT_182670844;
  uVar21 = *(uint *)(lVar8 + -0xc04) ^ DAT_18267095c ^ DAT_182670844;
  *(ulonglong *)(lVar8 + -0x558) = *(ulonglong *)(lVar8 + -0x7d8) | *(ulonglong *)(lVar8 + -0x9e0);
  *(uint *)(lVar8 - (uVar34 ^ 0x7d3fa206)) = uVar21;
  *puVar20 = *(uint *)(lVar8 - (uVar35 ^ 0x6eb4c0c)) ^ uVar22 ^ DAT_1826709f0;
  lVar7 = DAT_1826707a0;
  *puVar5 = *puVar15 ^ uVar32 ^ DAT_18267095c;
  *(uint *)(lVar7 + -0x42c) = *(uint *)(lVar7 + -0x9ec) ^ DAT_18267093c ^ uVar22;
  lVar8 = DAT_1826707a0;
  *puVar1 = (*(uint *)(lVar7 + -0x9ec) ^ uVar22) + (uVar29 ^ *puVar4);
  uVar19 = (ulonglong)DAT_182670b04;
  *(ulonglong *)(lVar8 - (uVar27 ^ 0xbf7fdc8e)) =
       (uVar14 ^ 0xebb6f8ddaae67d3d) + *(longlong *)(lVar8 + -0x30) ^ uVar19;
  uVar31 = DAT_182670adc;
  uVar29 = DAT_182670ac4;
  uVar9 = DAT_1826709b4;
  uVar21 = DAT_182670968;
  uVar14 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar8 + -0xd38) =
       (CONCAT44(DAT_1826707e0,uVar28) ^ 0xb2fb3bc0a5c17320) - *(longlong *)(lVar8 + -0x558);
  bVar17 = *(byte *)(*(ulonglong *)(lVar8 + -0x270) ^ uVar19) ^ (byte)uVar9 ^ (byte)uVar31;
  *(byte *)(lVar8 + -0xc35) = bVar17;
  uVar22 = *(uint *)(lVar8 + -0x42c) ^ DAT_18267093c;
  *(uint *)(lVar8 + -0x814) = (uint)bVar17 ^ uVar9 & 0xff ^ uVar29;
  uVar13 = DAT_1826707e4 ^ 0x41248690;
  *(uint *)(lVar8 - (uVar14 ^ 0xaff6ffff)) = uVar22 + (uVar28 ^ 0xf4598ba9) ^ DAT_182670880;
  uVar22 = (*(uint *)(lVar8 + -0x814) ^ uVar29) << ((bVar11 ^ 0x91) & 0x1f) ^ DAT_1826708a0;
  uVar14 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar8 + -0xcf8) = *(ulonglong *)(lVar8 + -0x220) >> (((byte)uVar10 ^ 0x93) & 0x3f);
  uVar28 = *(uint *)(lVar8 + -0x280) ^ DAT_182670880;
  *(uint *)(lVar8 + -0x2d4) = uVar22;
  uVar22 = *puVar5;
  uVar28 = uVar28 - (*(uint *)(lVar8 - (uVar14 ^ 0x9df6d902)) ^ DAT_1826708a0) ^ DAT_182670a38;
  *(uint *)(lVar8 + -0x3d4) = uVar28;
  uVar13 = (*(uint *)(lVar8 + -0x814) ^ uVar29) * uVar13;
  uVar28 = (uVar28 ^ DAT_182670a38) * (uVar32 ^ uVar22) ^ DAT_182670a3c;
  *(uint *)(lVar8 + -0xa34) = uVar28;
  uVar28 = uVar28 ^ DAT_182670a3c;
  *(uint *)(lVar8 + -0x68c) = uVar13 ^ uVar31;
  uVar28 = uVar28 + uVar13;
  *(uint *)(lVar8 + -0xc0c) = uVar28 ^ uVar21;
  uVar22 = *puVar5;
  uVar19 = (ulonglong)DAT_1826707e4;
  bVar11 = (byte)DAT_1826707d4;
  *(longlong *)(lVar8 + -0x5c0) =
       *(longlong *)(lVar8 - (uVar35 ^ 0x6eb46c8)) <<
       ((byte)*(undefined8 *)(lVar8 - ((ulonglong)uVar12 ^ 0xd69b4185)) & 0x3f);
  uVar12 = uVar28 << ((bVar11 ^ 0x85) & 0x1f) ^ DAT_18267087c;
  *(uint *)(lVar8 + -0xc04) = uVar12;
  uVar12 = uVar12 ^ DAT_18267087c;
  uVar14 = (ulonglong)DAT_1826707bc;
  *(uint *)(lVar8 + -0xc34) =
       (*(uint *)(lVar8 - (uVar19 ^ 0x41248a9e)) ^ uVar21) >> (bVar16 & 0x1f) ^ DAT_182670910;
  *puVar2 = (*(uint *)(lVar8 - (uVar14 ^ 0x5ed47985)) ^ DAT_182670910 | uVar12) ^ uVar29;
  uVar12 = (uVar32 ^ uVar22) + (DAT_182670848 ^ *puVar3);
  uVar22 = uVar12 ^ DAT_182670878;
  *puVar1 = uVar12 ^ uVar9;
  *puVar4 = uVar22;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar6 ^ uVar25) * 4) = uVar18;
  return;
}



############ FUN_ 180cf19e0 size=5372 ############

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

void FUN_180cf19e0(void)

{
  longlong lVar1;
  longlong lVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  byte local_res18;
  byte local_d0;
  
  uVar8 = DAT_1826707f0;
  uVar14 = DAT_1826707d8;
  uVar11 = DAT_1826707b8;
  lVar1 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707d8;
  uVar25 = (ulonglong)DAT_1826707b8;
  uVar13 = DAT_1826707b8 | DAT_1826707f0;
  DAT_1826707c8 =
       (DAT_1826707d8 << 0x10 | DAT_1826707d8 & 0xff00) << 8 | DAT_1826707d8 >> 8 & 0xff00 |
       DAT_1826707d8 >> 0x18;
  uVar15 = *(uint *)(&DAT_18260f758 + DAT_182670bac) ^ DAT_1826707b8;
  uVar10 = *(uint *)(&DAT_18260f760 + DAT_182670bac) ^ DAT_1826707f0;
  bVar12 = (byte)DAT_1826707d8;
  uVar29 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar37 = CONCAT44(DAT_182670894,DAT_182670894);
  uVar19 = (CONCAT44(_DAT_18267097c,_DAT_18267097c) ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0)) <<
           ((bVar12 ^ 0xa2) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707c8;
  uVar21 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  DAT_1826707ac = uVar13;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar19 ^ uVar29;
  uVar19 = uVar21 ^ *(ulonglong *)(lVar1 + -0xd88) | uVar19;
  *(ulonglong *)(lVar1 + -0x400) = uVar19 ^ uVar37;
  uVar3 = DAT_182670830;
  puVar16 = (ulonglong *)(lVar1 - (uVar23 ^ 0xb09e2378));
  *(ulonglong *)(lVar1 + -0x660) =
       (CONCAT44(DAT_182670978,DAT_182670978) ^ *puVar16) << ((bVar12 ^ 0xb7) & 0x3f);
  uVar21 = CONCAT44(uVar3,uVar3);
  uVar17 = CONCAT44(DAT_182670834,DAT_182670834);
  puVar18 = (ulonglong *)(lVar1 - (uVar25 ^ 0x600a0f68));
  uVar30 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  *puVar18 = (*(ulonglong *)(lVar1 + -0x588) ^ uVar21) - uVar19 ^ uVar17;
  lVar2 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_18267087c,DAT_18267087c);
  uVar19 = CONCAT44(DAT_18267083c,DAT_18267083c);
  puVar31 = (ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0xbceb619f));
  puVar20 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xbceb6b8f));
  uVar23 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *puVar20 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0xb09e2d40)) ^ uVar19 ^
             uVar22 ^ uVar30 ^ *puVar31;
  local_res18 = (byte)uVar13;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (*(ulonglong *)(lVar2 + -0x6f0) ^ uVar30) >> ((bVar12 ^ 0xbc) & 0x3f) ^ uVar23;
  uVar26 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0xb09e22e8)) =
       (uVar30 ^ *puVar20) << ((local_res18 ^ 0xcb) & 0x3f) ^ uVar26;
  uVar3 = DAT_182670a90;
  lVar1 = DAT_1826707a0;
  *puVar16 = (CONCAT44(uVar8,uVar14) ^ 0xadcc7fb3cce569e9) +
             (uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0x400));
  uVar30 = uVar26 ^ *(ulonglong *)(lVar1 + -0xd88) | uVar23 ^ *(ulonglong *)(lVar1 + -0x6b8);
  uVar23 = CONCAT44(uVar3,uVar3);
  uVar27 = uVar30 ^ uVar23;
  uVar26 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar1 + -0x660) = uVar27;
  uVar3 = DAT_182670968;
  *(ulonglong *)(lVar1 + -0x588) = (uVar19 ^ *(ulonglong *)(lVar1 + -0xce0)) - uVar30 ^ uVar26;
  lVar1 = DAT_1826707a0;
  uVar24 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x600a0a90)) =
       uVar24 ^ uVar27 ^ uVar23 ^ uVar17 ^ *puVar18;
  uVar30 = (uVar24 ^ *(ulonglong *)(lVar1 + -0x220)) >> (((byte)uVar8 ^ 0x66) & 0x3f);
  uVar24 = (uVar24 ^ *(ulonglong *)(lVar1 + -0x220)) << 0x27;
  uVar23 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar1 + -0x6f0) = uVar30 ^ CONCAT44(DAT_182670870,DAT_182670870);
  uVar9 = DAT_182670ac8;
  *(ulonglong *)(lVar1 + -0xc18) = uVar24 ^ uVar23;
  uVar3 = DAT_182670a78;
  lVar1 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707c8;
  uVar27 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = (uVar24 | uVar30) ^ uVar27;
  uVar30 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar1 + -0xd88) =
       (*(ulonglong *)(lVar1 - (uVar23 ^ 0xb09e28b8)) ^ uVar17) -
       (CONCAT44(uVar13,uVar11) ^ 0x591f853d1b2a7e7d) ^ uVar30;
  uVar3 = DAT_182670944;
  puVar20 = (ulonglong *)(lVar1 - ((ulonglong)uVar8 ^ 0xbceb6b1f));
  *puVar20 = (uVar19 ^ *(ulonglong *)(lVar1 + -0xce0)) >> ((bVar12 ^ 0xa5) & 0x3f);
  uVar9 = DAT_182670a48;
  uVar32 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar1 + -0x220) =
       (uVar30 ^ *(ulonglong *)(lVar1 + -0xd88)) - (uVar27 ^ *(ulonglong *)(lVar1 + -0x6b8)) ^
       uVar32;
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar36 ^ 0x602f92a8)) =
       (uVar27 ^ *(ulonglong *)(lVar1 + -0x6b8)) - (CONCAT44(uVar14,uVar13) ^ 0x3badd2a58440919b) ^
       uVar34;
  *(undefined8 *)(lVar1 + -0x6f0) = 0xb46c2ef83eeb2d6f;
  uVar3 = DAT_1826709c8;
  uVar30 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar37 = *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707c8 ^ 0xb09e2b60)) ^
           *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707c8 ^ 0xb09e2ae8)) ^ uVar30 ^ uVar26 ^
           uVar37;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar37;
  uVar9 = DAT_182670a28;
  uVar24 = CONCAT44(uVar3,uVar3);
  uVar23 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar1 + -0xce0) = (uVar37 ^ uVar30) >> (((byte)uVar11 ^ 0x91) & 0x3f) ^ uVar24;
  uVar14 = DAT_1826707c8;
  uVar23 = (*(ulonglong *)(lVar1 - (uVar23 ^ 0x92b3755e)) ^ uVar30) << 0x1f;
  *(ulonglong *)(lVar1 + -0x660) = uVar23 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0xd88) =
       (uVar32 ^ *(ulonglong *)(lVar1 + -0x220)) >> (((byte)uVar14 ^ 0x59) & 0x3f);
  puVar16 = (ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0xb09e2380));
  uVar17 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  uVar23 = uVar23 | uVar24 ^ *puVar16;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar23 ^ uVar17;
  *(ulonglong *)(lVar1 - (uVar36 ^ 0x602f9840)) = uVar23 + 0xeb8935f530c4bf31;
  uVar30 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  uVar23 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar1 + -0x400) =
       (*(ulonglong *)(lVar1 + -0x588) ^ uVar26) - (CONCAT44(uVar8,uVar11) ^ 0x857f908d579e686) ^
       uVar30;
  uVar37 = CONCAT44(DAT_182670918,DAT_182670918);
  *(ulonglong *)(lVar1 - (uVar36 ^ 0x602f9968)) =
       (*(ulonglong *)(lVar1 - (uVar23 ^ 0x8c020c44)) ^ uVar30) -
       (uVar17 ^ *(ulonglong *)(lVar1 + -0x6b8)) ^ uVar37;
  uVar30 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar23 = (CONCAT44(uVar11,uVar11) ^ 0xfa005b54e71f16da) +
           (uVar17 ^ *(ulonglong *)(lVar1 + -0x6b8)) ^ uVar30;
  *(ulonglong *)(lVar1 + -0xd88) = uVar23;
  uVar9 = DAT_182670b00;
  lVar2 = DAT_1826707a0;
  uVar17 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar1 + -0xce0) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar13 ^ 0xfceb6fdf)) ^ uVar17 ^ uVar23 ^ uVar30 ^ uVar32;
  uVar3 = DAT_182670a6c;
  uVar30 = (uVar17 ^ *puVar31) >> (((byte)DAT_1826707f4 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x660) = uVar30 ^ CONCAT44(uVar9,uVar9);
  lVar1 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar3,uVar3);
  uVar24 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar13 ^ 0xfceb611f)) ^ uVar17) <<
       ((bVar12 ^ 0x8b) & 0x3f) ^ uVar23;
  uVar38 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar1 + -0x588) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0xb09e2990)) ^ uVar23 | uVar30) ^ uVar24;
  uVar3 = DAT_1826707b0;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e8 ^ 0x43149680)) =
       **(ulonglong **)(lVar1 + -0xc0) ^ uVar38;
  uVar33 = (uVar32 ^ *(ulonglong *)(lVar1 + -0x220)) - (uVar24 ^ *(ulonglong *)(lVar1 + -0x588)) ^
           uVar21;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar33;
  uVar14 = DAT_1826707f0;
  *(ulonglong *)(lVar1 + -0xd88) = 0x5ef2b580e90b4d69 >> ((byte)uVar3 & 0x3f);
  uVar11 = DAT_1826707e4;
  uVar30 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar17 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar23 = uVar30 ^ uVar37 ^ uVar34 ^ *(ulonglong *)(lVar1 + -0x7d8) ^
           *(ulonglong *)(lVar1 + -0xc18);
  *(ulonglong *)(lVar1 + -0xce0) = uVar23;
  uVar3 = DAT_182670a70;
  uVar34 = (uVar23 ^ uVar30) >> (((byte)uVar14 ^ 0x5a) & 0x3f);
  uVar27 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar1 + -0x660) = uVar34 ^ uVar17;
  lVar1 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar3,uVar3);
  bVar12 = (byte)DAT_1826707bc;
  uVar17 = (uVar30 ^ uVar23) << ((bVar12 ^ 0xbc) & 0x3f);
  uVar32 = CONCAT44(DAT_182670b04,DAT_182670b04);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar17 ^ uVar27;
  lVar2 = DAT_1826707a0;
  uVar34 = uVar34 | uVar17;
  uVar17 = uVar34 ^ uVar28;
  *(ulonglong *)(lVar1 + -0x400) = uVar17;
  puVar18 = (ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d0 ^ 0x2a1e0494));
  *(ulonglong *)(lVar1 + -0x220) = (uVar37 ^ uVar23) - uVar34 ^ uVar32;
  uVar3 = DAT_1826709f8;
  uVar4 = DAT_1826709d0;
  uVar23 = (ulonglong)DAT_1826709d0;
  uVar37 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *puVar18 = uVar28 ^ uVar21 ^ uVar33 ^ uVar17 ^ uVar37;
  uVar9 = DAT_182670a3c;
  uVar14 = DAT_1826707c4;
  lVar1 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar3,uVar3);
  uVar17 = (ulonglong)DAT_1826707c4;
  uVar34 = ((ulonglong)(uVar4 >> 0x17) | uVar23 << 9) ^
           *(ulonglong *)(DAT_1826707a0 + -0xd88) >> 0x17 ^ uVar28;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar34;
  uVar23 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar11 ^ 0x87d74c00)) ^ uVar37) <<
           ((bVar12 ^ 0x8e) & 0x3f);
  uVar35 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  *(ulonglong *)(lVar1 + -0xce0) = uVar23 ^ CONCAT44(uVar9,uVar9);
  uVar27 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar1 + -0x660) =
       (*(ulonglong *)(lVar1 - (uVar17 ^ 0xadc3ce6)) ^ uVar28 | uVar23) ^ uVar35;
  uVar33 = (uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) -
           (*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707dc ^ 0x92b374e6)) ^ uVar35) ^ uVar27;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar33;
  lVar1 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       CONCAT44(DAT_1826707c8,DAT_1826707c8) ^ uVar28 ^ uVar34 ^ 0x22b655bfa4f6908c;
  uVar3 = DAT_182670860;
  uVar6 = DAT_1826707e0;
  uVar17 = *(ulonglong *)(lVar1 - (uVar23 ^ 0x7eda2a9a)) ^ uVar32 ^ uVar24 ^
           *(ulonglong *)(lVar1 + -0x588);
  bVar12 = (byte)DAT_1826707c0;
  *(ulonglong *)(lVar1 + -0x400) = uVar17 ^ CONCAT44(DAT_1826708c0,DAT_1826708c0);
  uVar21 = uVar17 >> ((bVar12 ^ 0x93) & 0x3f);
  uVar23 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar1 + -0xd88) = uVar21 ^ CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar1 + -0xce0) = uVar17 << 0x18 ^ uVar23;
  uVar21 = uVar21 | uVar17 << 0x18;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar21 ^ uVar22;
  uVar37 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(int *)(lVar1 + -0xc34) = *(int *)(lVar1 - (uVar36 ^ 0x602f92bc)) * *(int *)(lVar1 + -0xc0c);
  uVar5 = DAT_1826707d4;
  *(ulonglong *)(lVar1 + -0xc18) =
       (*(ulonglong *)(lVar1 - (uVar36 ^ 0x602f9c90)) ^ uVar32) - uVar21 ^ uVar37;
  uVar3 = DAT_182670a7c;
  *(ulonglong *)(lVar1 + -0x7d8) = **(ulonglong **)(lVar1 - ((ulonglong)uVar5 ^ 0x2140b78)) ^ uVar38
  ;
  uVar4 = DAT_1826707cc;
  uVar17 = CONCAT44(uVar3,uVar3);
  uVar38 = (ulonglong)DAT_1826707cc;
  uVar21 = *(ulonglong *)(lVar1 - (uVar25 ^ 0x600a0e08)) ^ uVar33 ^ uVar22 ^ uVar17 ^ uVar27;
  *(ulonglong *)(lVar1 + -0x588) = uVar21;
  uVar11 = DAT_1826707b4;
  local_d0 = (byte)uVar14;
  uVar24 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar23 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707f4 ^ 0x1d42ae59)) =
       (uVar21 ^ uVar17) >> (((byte)DAT_1826707b4 ^ 0x70) & 0x3f) ^ uVar24;
  *(uint *)(lVar1 - ((ulonglong)uVar11 ^ 0x8c020bdc)) =
       *(uint *)(lVar1 - (uVar23 ^ 0xbceb6a9b)) | uVar14 ^ 0xe20e1958;
  uVar3 = DAT_182670abc;
  uVar28 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  uVar23 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar1 + -0xd88) =
       (*(ulonglong *)(lVar1 + -0x588) ^ uVar17) << ((local_d0 ^ 0xf2) & 0x3f) ^ uVar28;
  uVar32 = CONCAT44(uVar3,uVar3);
  uVar21 = (ulonglong)DAT_1826707e4;
  *puVar16 = (*(ulonglong *)(lVar1 - (uVar23 ^ 0xfbfffa77)) ^ uVar28 |
             *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707bc ^ 0xe4d151a7)) ^ uVar24) ^ uVar32;
  uVar33 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0x87d743a8)) =
       (*(ulonglong *)(lVar1 + -0x6f0) ^ uVar27) - (*(ulonglong *)(lVar1 + -0xce0) ^ uVar32) ^
       uVar33;
  uVar27 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar1 + -0x7d8) =
       *puVar20 ^ uVar27 ^ uVar37 ^ uVar35 ^ *(ulonglong *)(lVar1 + -0xc18);
  lVar2 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar23 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar5 ^ 0x21407d8)) ^ uVar27) >>
           (((byte)DAT_1826707f4 ^ 0x60) & 0x3f);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar23 ^ uVar34;
  puVar16 = (ulonglong *)(lVar1 - (uVar36 ^ 0x602f9b38));
  *puVar16 = *(ulonglong *)(lVar2 + -0xd88) ^ uVar28 | uVar23;
  lVar1 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670920,DAT_182670920);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0xc18);
  uVar21 = (ulonglong)DAT_1826707c0;
  uVar17 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       (*(ulonglong *)(lVar2 + -0x7d8) ^ uVar27) << (((byte)uVar4 ^ 6) & 0x3f) ^ uVar24;
  uVar27 = *(ulonglong *)(lVar1 - (uVar21 ^ 0xcecf58bb)) ^ uVar24 |
           *(ulonglong *)(lVar1 + -0x6b8) ^ uVar34;
  uVar21 = uVar27 ^ uVar17;
  uVar36 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar1 + -0x6f0) = uVar21;
  uVar7 = DAT_1826707ec;
  uVar14 = DAT_1826707dc;
  uVar24 = (uVar37 ^ uVar23) - uVar27 ^ uVar36;
  uVar23 = CONCAT44(DAT_1826707ec,DAT_1826707b0);
  *(ulonglong *)(lVar1 + -0x660) = uVar24;
  *(ulonglong *)(lVar1 + -0xd88) = (uVar23 ^ 0xc371f3da5a73bbe3) + 0xa79b67f5aafed901;
  uVar3 = DAT_182670908;
  uVar23 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar21 = uVar21 ^ uVar23 ^ uVar17 ^ uVar33 ^ *(ulonglong *)(lVar1 + -0x220);
  *(ulonglong *)(lVar1 + -0x588) = uVar21;
  uVar17 = (*puVar16 ^ uVar23) >> (((byte)uVar8 ^ 0x71) & 0x3f);
  bVar12 = (byte)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar17 ^ CONCAT44(uVar3,uVar3);
  lVar1 = DAT_1826707a0;
  uVar21 = (uVar21 ^ uVar23) << ((bVar12 ^ 0x76) & 0x3f);
  uVar23 = CONCAT44(DAT_182670858,DAT_182670858);
  uVar17 = uVar21 | uVar17;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar27 * 2;
  *(ulonglong *)(lVar1 + -0x400) = uVar21 ^ uVar23;
  lVar1 = DAT_1826707a0;
  puVar16 = (ulonglong *)(DAT_1826707a0 + -0x220);
  uVar27 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar23 = CONCAT44(uVar6,DAT_1826707e8);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar17 ^ uVar27;
  uVar23 = (uVar33 ^ *puVar16) - (uVar23 ^ 0x767ee99830efb922);
  uVar34 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar1 + -0xd88) = uVar23 ^ uVar19;
  uVar11 = DAT_1826709f0;
  uVar3 = DAT_1826708dc;
  uVar21 = (ulonglong)DAT_1826709f0;
  *(ulonglong *)(lVar1 + -0x588) =
       uVar23 - (*(ulonglong *)(lVar1 - (uVar38 ^ 0x44854419)) ^ uVar27) ^ uVar34;
  uVar6 = DAT_1826707e4;
  uVar27 = CONCAT44(uVar3,uVar3);
  uVar32 = *(ulonglong *)(lVar1 + -0xce0) ^ uVar24 ^ CONCAT44(uVar11,uVar11) ^ uVar36 ^ uVar32;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar32;
  uVar3 = DAT_182670a04;
  *(ulonglong *)(lVar1 + -0x6f0) = uVar17 - (CONCAT44(uVar4,uVar13) ^ 0x6a7880128245679e) ^ uVar27;
  uVar9 = DAT_182670a8c;
  uVar19 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar1 + -0x7d8) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0x87d74730)) >> 0x10 ^
       ((ulonglong)(uVar11 >> 0x10) | uVar21 << 0x10) ^ uVar19;
  uVar23 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar1 + -0x400) =
       (CONCAT44(uVar11,uVar11) ^ uVar32) << ((local_d0 ^ 0xce) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *puVar18 = (uVar33 ^ *(ulonglong *)(lVar1 + -0x220)) <<
             ((*(byte *)(lVar1 - (uVar23 ^ 0x2140400)) ^ (byte)uVar9) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707e0;
  uVar24 = CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar1 + -0x400) |
           uVar19 ^ *(ulonglong *)(lVar1 + -0x7d8);
  *(ulonglong *)(lVar1 + -0xc18) = uVar24 ^ CONCAT44(DAT_182670988,DAT_182670988);
  uVar3 = DAT_182670af8;
  uVar4 = DAT_1826707e8;
  uVar32 = (ulonglong)DAT_1826707e8;
  uVar23 = (*(ulonglong *)(lVar1 - (uVar23 ^ 0xcc5c8fe9)) ^ uVar36) -
           (CONCAT44(uVar5,DAT_1826707c8) ^ 0x59964c15c835d304);
  *(ulonglong *)(lVar1 + -0xce0) = uVar23 ^ uVar37;
  uVar19 = CONCAT44(uVar3,uVar3);
  uVar37 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar23 - uVar24 ^ uVar19;
  uVar3 = DAT_1826709b0;
  *(undefined1 *)(lVar1 + -0x6c9) = **(undefined1 **)(lVar1 + -0xae8);
  uVar11 = DAT_1826707a8;
  uVar21 = CONCAT44(uVar3,uVar3);
  uVar17 = (ulonglong)DAT_1826707a8;
  uVar23 = (CONCAT44(uVar14,uVar4) ^ 0x52535b87b545f154) + uVar24 ^ uVar21;
  *(ulonglong *)(lVar1 + -0x220) = uVar23;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0xe4d1582f)) =
       *(ulonglong *)(lVar1 + -0x588) ^ uVar26 ^ uVar23 ^ uVar21 ^ uVar34;
  uVar9 = DAT_1826709d4;
  uVar23 = (uVar26 ^ *(ulonglong *)(lVar2 + -0xd88)) >> ((local_res18 ^ 0xdf) & 0x3f);
  uVar26 = (uVar26 ^ *(ulonglong *)(lVar2 + -0xd88)) << (((byte)uVar11 ^ 0x9a) & 0x3f);
  *(ulonglong *)(lVar2 + -0x400) = uVar23 ^ CONCAT44(DAT_182670b08,DAT_182670b08);
  uVar3 = DAT_182670874;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar26 ^ CONCAT44(uVar9,uVar9);
  uVar21 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar2 + -0x660) = (uVar23 | uVar26) ^ uVar21;
  uVar23 = *(ulonglong *)(lVar2 - (uVar32 ^ 0x431494e0));
  uVar26 = uVar30 ^ *(ulonglong *)(lVar2 + -0x6f0) ^ uVar19 ^ uVar27 ^
           *(ulonglong *)(lVar2 + -0x6b8);
  *(ulonglong *)(lVar2 + -0xc18) = uVar26;
  *(ulonglong *)(lVar2 + -0xce0) =
       (*(ulonglong *)(lVar2 + -0x588) ^ uVar34) - (uVar23 ^ uVar21) ^ uVar22;
  uVar3 = DAT_1826707fc;
  uVar23 = (uVar30 ^ uVar26) >> (((byte)uVar6 ^ 0xa8) & 0x3f);
  uVar26 = (uVar30 ^ uVar26) << 0x20;
  *(ulonglong *)(lVar2 + -0x220) = uVar23 ^ CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar9 = DAT_182670810;
  *(ulonglong *)(lVar2 + -0x400) = uVar26 ^ CONCAT44(uVar3,uVar3);
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar23 = uVar23 | uVar26;
  uVar26 = uVar23 ^ uVar21;
  bVar12 = (byte)DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x588) = uVar26;
  uVar3 = DAT_1826708fc;
  *(ulonglong *)(lVar2 + -0x6f0) =
       (CONCAT44(uVar7,DAT_1826707d0) ^ 0xc9644ed77634478d) >> ((bVar12 ^ 0xae) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd88) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x6b8)) - uVar23 ^ CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar2 + -0xc18) =
       *(ulonglong *)(lVar2 - (uVar17 ^ 0x7eda245a)) ^ uVar26 ^ uVar22 ^ uVar29 ^ uVar21;
  uVar11 = DAT_1826707c8 ^ 0xb94290ea;
  uVar14 = DAT_1826707f0 ^ 0x77cf205c;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar15;
  *(uint *)(lVar2 - (uVar25 ^ 0x600a0e3c)) = uVar14 + uVar11;
  return;
}



############ FUN_ 180cc6950 size=3539 ############

void FUN_180cc6950(void)

{
  uint uVar1;
  int iVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  byte *pbVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  uint uVar36;
  byte local_50;
  
  uVar16 = DAT_1826707ec;
  uVar15 = DAT_1826707d4;
  uVar13 = DAT_1826707cc;
  uVar12 = DAT_1826707c4;
  uVar11 = DAT_1826707c0;
  uVar9 = DAT_1826707b4;
  lVar4 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707d4;
  uVar34 = (ulonglong)DAT_1826707cc;
  uVar26 = (ulonglong)DAT_1826707ec;
  uVar21 = (ulonglong)DAT_1826707b4;
  uVar36 = DAT_1826707c4 | DAT_1826707b4;
  uVar28 = DAT_1826707a8 * DAT_1826707d4;
  uVar29 = DAT_1826707cc + DAT_1826707ec;
  uVar35 = (DAT_1826707c0 << 0x10 | DAT_1826707c0 & 0xff00) << 8 | DAT_1826707c0 >> 8 & 0xff00 |
           DAT_1826707c0 >> 0x18;
  uVar18 = *(uint *)(&DAT_18260f758 + DAT_182670b6c) ^ DAT_1826707c0;
  uVar19 = (ulonglong)DAT_1826707c4;
  uVar1 = *(uint *)(&DAT_18260f750 + (uVar19 ^ 0x4fd04050) + (longlong)DAT_182670b6c);
  DAT_1826707ac = uVar28;
  DAT_1826707b0 = uVar29;
  DAT_1826707e0 = uVar35;
  DAT_1826707f0 = uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x388) = CONCAT44(DAT_1826707b4,uVar36) ^ 0xd42be93e11f3ac87;
  uVar20 = (ulonglong)uVar29;
  *(ulonglong *)(lVar4 + -0xba0) = CONCAT44(uVar9,uVar29) ^ 0x3965b3d7d524a592;
  uVar6 = DAT_1826707a8;
  uVar24 = (ulonglong)uVar28;
  *(ulonglong *)(lVar4 + -0x590) = CONCAT44(uVar15,uVar28) ^ 0xe2526ebbbc6c795c;
  *(ulonglong *)(lVar4 + -0xbd0) = CONCAT44(uVar16,uVar6) ^ 0x550d018289fc0f5;
  *(ulonglong *)(lVar4 + -0x378) = CONCAT44(uVar13,uVar9) ^ 0x46c1a68ee7c5112b;
  uVar25 = (ulonglong)DAT_1826708d4;
  *(undefined8 *)(lVar4 - ((ulonglong)uVar6 ^ 0xdffef7a5)) = 0x32fb0f08e5406f2;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x972e3054)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x7b9fb38f)) ^ uVar25;
  lVar4 = DAT_1826707a0;
  puVar23 = (ulonglong *)(DAT_1826707a0 + -0x738);
  *(undefined8 *)(DAT_1826707a0 + -0x480) = 0xa79fefd4d0dae585;
  uVar27 = CONCAT44(uVar16,uVar9) ^ 0xb1a3f993f99b661d;
  pbVar22 = (byte *)(*puVar23 ^ uVar25);
  *(byte **)(lVar4 + -0xb18) = pbVar22 + uVar27;
  bVar3 = (byte)DAT_182670abc;
  *(byte *)(lVar4 + -0x4d1) = (byte)DAT_182670abc ^ (byte)DAT_182670a90 ^ *pbVar22;
  *(ulonglong *)(lVar4 + -0x738) = CONCAT44(uVar6,uVar15) ^ 0xd8a5d7f6672c4efe;
  uVar32 = CONCAT44(uVar12,uVar36);
  *(ulonglong *)(lVar4 + -0xb70) =
       (CONCAT44(uVar35,uVar29) ^ 0x32da07948589bafb) - (uVar32 ^ 0x6c09bde78ebb3b7d);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x972e3c1c)) =
       CONCAT44(uVar9,uVar13) ^ 0x257aaab5d6baf96b;
  lVar4 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826708a0;
  pbVar22 = (byte *)(DAT_1826707a0 + -0x4d1);
  *(ulonglong *)(DAT_1826707a0 + -0x560) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar35 ^ 0x6c37283f)) ^ uVar25) +
       (CONCAT44(uVar15,uVar29) ^ 0xfb1919fb6b3f5f6e);
  *(byte *)(*(ulonglong *)(lVar4 + -0x6a8) ^ uVar25) = bVar3 ^ *pbVar22;
  lVar4 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - (uVar24 ^ 0x7b9fb3de)) = (byte)uVar16 ^ 0x5d;
  *(undefined8 *)(lVar4 + -0x970) = *(undefined8 *)(lVar4 + -0x560);
  *(ulonglong *)(lVar4 + -0x560) = CONCAT44(uVar6,uVar13) ^ 0xd9083ad4844647f7;
  *(undefined8 *)(lVar4 + -0x788) = *(undefined8 *)(lVar4 + -0xb18);
  *(ulonglong *)(lVar4 + -0xb18) = uVar32 ^ 0xbff007334574b4cd;
  uVar33 = (ulonglong)DAT_1826708e4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0x4fd04580)) =
       CONCAT44(uVar16,uVar28) ^ 0x21f0015505b6136a;
  uVar8 = DAT_1826707f8;
  uVar30 = (ulonglong)DAT_1826707f8;
  *(ulonglong *)(lVar4 + -0x1b8) = CONCAT44(uVar36,uVar35) ^ 0xc835e8b34757e46a;
  puVar23 = (ulonglong *)(lVar4 - (uVar21 ^ 0xf99b6f6c));
  *(ulonglong *)(lVar4 + -0xc58) = *puVar23 ^ uVar33;
  *puVar23 = CONCAT44(uVar11,uVar12) ^ 0x5383cb9a75e6868d;
  lVar4 = DAT_1826707a0;
  uVar25 = uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x788);
  *(undefined8 *)(DAT_1826707a0 + -0x788) = 0x3293a1271c74161b;
  *(ulonglong *)(lVar4 + -0xbc8) = uVar25;
  uVar7 = DAT_1826707a8;
  *(ulonglong *)(lVar4 + -0x9e0) = (CONCAT44(uVar15,uVar13) ^ 0xb94d25d52082584) + 0xd116c8fa646b129
  ;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x5b0) =
       (CONCAT44(uVar6,uVar28) ^ 0xdffefefd7b9fb70e) + (uVar8 ^ uVar25);
  uVar8 = DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xfb191fa3)) =
       *(ulonglong *)(lVar4 - (uVar20 ^ 0x6b3f568f)) ^ CONCAT44(uVar28,uVar7) ^ 0x5f0b0397b0608d51;
  *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xb1a3f073)) =
       CONCAT44(uVar29,uVar8) ^ 0xac36cf9704557327;
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x7b9fb157)) =
       CONCAT44(uVar15,uVar11) ^ 0x5b0c4e2fb09b822b;
  bVar17 = (byte)DAT_182670934;
  lVar4 = DAT_1826707a0;
  iVar2 = *(int *)(DAT_1826707a0 + -0x3d4);
  *(byte *)(DAT_1826707a0 + -0x941) =
       *(byte *)(uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0xbc8)) ^ (byte)DAT_182670934 ^
       (byte)DAT_182670a90;
  *(ulonglong *)(lVar4 + -0xbc8) = CONCAT44(uVar29,uVar13) ^ 0xdc652bf164bf6832;
  *(uint *)(lVar4 + -0x8e0) = (uVar12 ^ 0x41da19d5) * iVar2;
  *(ulonglong *)(lVar4 + -0xc40) = (uVar33 ^ *(ulonglong *)(lVar4 + -0xc58)) + uVar27;
  *(uint *)(lVar4 + -0x3d4) = DAT_1826707c0 ^ 0xb4a037a0;
  *(uint *)(lVar4 - (uVar31 ^ 0xfb19111b)) = uVar36 ^ 0xb6219247;
  bVar3 = (byte)DAT_1826707a8;
  *(byte *)(uVar33 ^ *(ulonglong *)(lVar4 + -0xc58)) = bVar17 ^ *(byte *)(lVar4 + -0x941);
  *(byte *)(lVar4 + -0x941) = bVar3 ^ 0xe;
  *(undefined8 *)(lVar4 - ((ulonglong)uVar36 ^ 0xffdb6ffc)) = *(undefined8 *)(lVar4 + -0xc40);
  *(ulonglong *)(lVar4 + -0xc40) = CONCAT44(uVar35,uVar29) ^ 0x6ad8d7ad8c8dc8b0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar35 ^ 0x6c372b1f)) =
       (CONCAT44(uVar9,uVar12) ^ 0x95419ddab785c0a2) >> (((byte)uVar15 ^ 0xfa) & 0x3f);
  uVar25 = (ulonglong)DAT_1826708ec;
  uVar27 = (ulonglong)DAT_182670ac0;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x6b3f5ae7)) = CONCAT44(uVar11,uVar36) ^ 0xcf44f130c1debb1e;
  *(undefined8 *)(lVar4 - (uVar24 ^ 0x7b9fb357)) = *(undefined8 *)(lVar4 + -0x5b0);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xfb191c4b)) = CONCAT44(uVar35,uVar11) ^ 0xf53496b82675ca1f;
  *(ulonglong *)(lVar4 + -0x7f0) = uVar27 ^ *(ulonglong *)(lVar4 + -0x9a0);
  *(undefined8 *)(lVar4 + -0x890) = 0x6403d2cc3a24e704;
  *(ulonglong *)(lVar4 + -0x808) = uVar25 ^ *(ulonglong *)(lVar4 + -0x458);
  *(ulonglong *)(lVar4 + -0x9a0) = CONCAT44(uVar36,uVar9) ^ 0x431b2ca36ba055b8;
  *(ulonglong *)(lVar4 + -0x458) = CONCAT44(uVar16,uVar28) ^ 0xec59078b4f847ddb;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0xb1a3f84b)) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x7b9fbf07)) ^ uVar25) +
       (CONCAT44(uVar16,uVar11) ^ 0xb1a3f993972e376d);
  uVar7 = DAT_1826707a8;
  *(byte *)(lVar4 - (uVar24 ^ 0x7b9fbc26)) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0xdffef6f5)) ^ uVar25) ^
       (byte)DAT_18267087c ^ (byte)DAT_182670a90;
  *(ulonglong *)(lVar4 + -0x808) = CONCAT44(uVar6,uVar36) ^ 0x2bd46902ec643612;
  pbVar22 = (byte *)(*(ulonglong *)(lVar4 + -0x7f0) ^ uVar27);
  *(byte **)(lVar4 + -0x238) = pbVar22 + 1;
  uVar8 = DAT_1826707c0;
  *pbVar22 = *(byte *)(lVar4 - ((ulonglong)uVar35 ^ 0x6c3725be)) ^ (byte)DAT_18267087c;
  *(byte *)(lVar4 - (uVar21 ^ 0xf99b6d35)) = (byte)uVar8 ^ 0x95;
  *(undefined8 *)(lVar4 - ((ulonglong)uVar7 ^ 0xdffef38d)) = *(undefined8 *)(lVar4 + -0x238);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xdffefcc5)) =
       CONCAT44(uVar29,uVar29) ^ 0x45569f7660c0f386;
  *(undefined8 *)(lVar4 + -0x2f8) = *(undefined8 *)(lVar4 + -0x1d8);
  *(ulonglong *)(lVar4 + -0x1d8) = CONCAT44(uVar15,uVar16) ^ 0x304af91e449b609e;
  uVar27 = (ulonglong)DAT_182670af4;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0xb99b66c4)) =
       *(ulonglong *)(lVar4 - (uVar34 ^ 0xb99b68ac)) ^ uVar27;
  uVar21 = (ulonglong)DAT_182670a9c;
  *(ulonglong *)(lVar4 + -0xd70) = uVar32 ^ 0x51863329a7c282cd;
  pbVar22 = *(byte **)(lVar4 + -0x2f8);
  *(ulonglong *)(lVar4 + -0x390) = uVar21 ^ (ulonglong)pbVar22;
  *(ulonglong *)(lVar4 + -0x2f8) = CONCAT44(uVar12,uVar28) ^ 0x86d5c2fee2810806;
  uVar28 = DAT_1826708d4;
  *(byte **)(lVar4 + -0x6b0) = pbVar22 + 1;
  *(byte *)(lVar4 + -0x942) = (byte)uVar28 ^ *pbVar22 ^ (byte)DAT_182670a90;
  uVar6 = DAT_1826707a8;
  *(uint *)(lVar4 + -0x814) = DAT_1826707ac ^ 0x5e512d9b;
  uVar14 = DAT_1826707d0;
  *(uint *)((ulonglong)DAT_182670aa0 ^ *(ulonglong *)(lVar4 + -0x268)) = uVar6 ^ 0xf101d728;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x268) = CONCAT44(uVar9,uVar16) ^ 0xee1c8967cc1dfb79;
  *(ulonglong *)(lVar4 + -0x390) = CONCAT44(uVar9,uVar15) ^ 0xb9fc56d8f95e02a6;
  uVar25 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar5 + -0x68) = CONCAT44(uVar13,DAT_1826707f4) ^ 0x7f0ed17e4d6ad326;
  *(ulonglong *)(lVar5 + -0x220) = CONCAT44(uVar35,uVar14) ^ 0xe7d25cf9c69fbf5a;
  uVar7 = DAT_1826707e8;
  uVar30 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar5 + -0xa88) =
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0xb1a3fa8b)) ^ uVar27) +
       (CONCAT44(uVar35,DAT_1826707d8) ^ 0x6c372e976e3aa601);
  *(byte *)(*(ulonglong *)(lVar5 + -0x318) ^ uVar27) =
       *(byte *)(lVar5 - (uVar24 ^ 0x7b9fbe4d)) ^ (byte)uVar28;
  local_50 = (byte)(uVar11 >> 0x18);
  *(byte *)(lVar5 - (uVar20 ^ 0x6b3f562d)) = (byte)uVar8 ^ 0x46;
  *(ulonglong *)(lVar5 + -0xf0) =
       (CONCAT44(uVar11,uVar12) ^ 0xa947b4ef5c20f6fb) >> ((local_50 ^ 0x97) & 0x3f);
  uVar6 = DAT_1826707dc;
  *(undefined8 *)(lVar5 - ((ulonglong)DAT_1826707dc ^ 0xec7318ef)) = 0x45316136e0365f1f;
  uVar21 = *(ulonglong *)(lVar5 + -0xa88);
  *(ulonglong *)(lVar5 + -0x960) = uVar21;
  *(ulonglong *)(lVar5 + -0xa88) = CONCAT44(uVar7,uVar11) ^ 0xbd8ba2333da315b2;
  uVar10 = DAT_1826707bc;
  *(ulonglong *)(lVar5 + -0x438) = CONCAT44(uVar29,uVar36) ^ 0x4876770b34bef7d3;
  uVar26 = (ulonglong)DAT_18267090c;
  *(undefined8 *)(lVar5 + -0x9d0) = *(undefined8 *)(lVar5 - (uVar24 ^ 0x7b9fb1bf));
  *(undefined8 *)(lVar5 + -0x6b0) = 0x9dcde8efd2b8ecc4;
  uVar24 = (ulonglong)DAT_1826707b8;
  *(longlong *)(lVar5 + -0x410) =
       *(longlong *)(lVar5 - (uVar19 ^ 0x4fd048d0)) << (((byte)uVar10 ^ 10) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0xbf7fe517)) = uVar26 ^ uVar21;
  uVar7 = DAT_182670840;
  uVar19 = (ulonglong)DAT_182670840;
  *(ulonglong *)(lVar5 + -0x960) = CONCAT44(uVar16,uVar6) ^ 0x15d6a7b417a33bd7;
  uVar6 = DAT_1826707a8;
  uVar21 = uVar19 ^ *(ulonglong *)(lVar5 + -0x9d0);
  *(ulonglong *)(lVar5 + -0x718) = uVar21;
  *(undefined8 *)(lVar5 + -0x9d0) = 0xa01c3330424aacc7;
  *(ulonglong *)(lVar5 - (uVar31 ^ 0xfb191303)) = (uVar7 ^ uVar21) + 1;
  uVar21 = (ulonglong)DAT_1826707c8;
  *(byte *)(lVar5 + -0x283) =
       *(byte *)(uVar19 ^ *(ulonglong *)(lVar5 + -0x718)) ^ (byte)DAT_182670a7c ^
       (byte)DAT_182670a90;
  *(undefined8 *)(lVar5 + -0x718) = 0xafdb20b90a7945ee;
  *(ulonglong *)(lVar5 + -0x2b8) =
       (*(ulonglong *)(lVar5 - (uVar21 ^ 0xb1836b28)) ^ uVar26) +
       (CONCAT44(uVar9,uVar6) ^ 0xf99b661cdffefefc);
  *(ulonglong *)(lVar5 + -0x6f0) =
       (CONCAT44(uVar14,uVar9) ^ 0xe485ce4311fcdecd) << (((byte)uVar15 ^ 0xeb) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar5 - (uVar25 ^ 0xafef7507)) ^ uVar26) =
       *(byte *)(lVar5 - (uVar20 ^ 0x6b3f5dec)) ^ (byte)DAT_182670a7c;
  *(byte *)(lVar5 + -0x283) = (byte)uVar6 ^ 0xb4;
  *(undefined8 *)(lVar5 + -0x9a8) = *(undefined8 *)(lVar5 - (uVar30 ^ 0xf0afad57));
  *(undefined8 *)(lVar5 - (uVar34 ^ 0xb99b6764)) = 0xd68ee6e0d105c8b5;
  *(undefined8 *)(lVar5 + -0x4b8) = *(undefined8 *)(lVar5 + -0xaf8);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar35) * 4) = uVar18;
  return;
}



############ FUN_ 180cde630 size=4239 ############

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

void FUN_180cde630(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  byte bVar4;
  byte bVar5;
  uint uVar6;
  uint uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  uint uVar10;
  ulonglong *puVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  byte *pbVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint *puVar30;
  uint uVar31;
  ulonglong uVar32;
  
  uVar24 = DAT_1826707e4;
  uVar25 = DAT_1826707d4;
  uVar23 = DAT_1826707d0;
  uVar3 = DAT_1826707c8;
  uVar10 = DAT_1826707c4;
  lVar1 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707d0;
  uVar27 = DAT_1826707d0 * DAT_1826707d8;
  uVar28 = (ulonglong)DAT_1826707c4;
  uVar31 = DAT_1826707c8 - DAT_1826707c4;
  uVar12 = *(uint *)(&DAT_18260f758 + DAT_182670e5c) ^ DAT_1826707d0;
  uVar6 = *(uint *)(&DAT_18260f760 + DAT_182670e5c) ^ DAT_1826707d8;
  uVar14 = (ulonglong)DAT_1826707e4;
  uVar8 = (ulonglong)DAT_1826707d4;
  uVar17 = DAT_1826707d4 & DAT_1826707e4;
  uVar13 = *(uint *)(DAT_1826707a0 + -0x280) ^ DAT_182670af8;
  uVar26 = (ulonglong)uVar17;
  uVar9 = (ulonglong)DAT_1826707e4;
  DAT_1826707b8 = uVar31;
  DAT_1826707bc = uVar27;
  DAT_1826707ec = uVar17;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       *(ulonglong *)(DAT_1826707a0 - (uVar8 ^ 0xfefdaf90)) ^ 0xa0d35d0d0281d088;
  *(uint *)(lVar1 - (uVar9 ^ 0x412482be)) = uVar13 + (uVar17 ^ 0x8b00c9a3) ^ DAT_182670afc;
  uVar7 = *(uint *)(lVar1 + -0x7e4) ^ DAT_1826708e8;
  uVar18 = *(uint *)(lVar1 + -0x42c) ^ DAT_182670afc;
  uVar13 = (DAT_1826708a8 ^ *(uint *)(lVar1 + -0xc0c)) << (((byte)uVar10 ^ 0x6e) & 0x1f) ^
           DAT_182670b04;
  *(uint *)(lVar1 + -0xa34) = uVar13;
  uVar18 = uVar18 - (uVar13 ^ DAT_182670b04) ^ DAT_182670824;
  *(uint *)(lVar1 + -0x540) = uVar18;
  uVar13 = DAT_182670980;
  *(uint *)(lVar1 + -0xc04) = uVar7 * (uVar18 ^ DAT_182670824) ^ DAT_1826709ac;
  *(uint *)(lVar1 - (uVar29 ^ 0xebb6f131)) =
       (*(uint *)(lVar1 - ((ulonglong)uVar27 ^ 0x5ed479bd)) ^ DAT_1826708a8) * (uVar3 ^ 0x8692413a)
       ^ uVar13;
  uVar7 = DAT_1826709f4;
  uVar18 = (*(uint *)(lVar1 + -0xc04) ^ DAT_1826709ac) + (uVar13 ^ *(uint *)(lVar1 + -0x9ec));
  *(uint *)(lVar1 + -0x814) = uVar18 ^ DAT_1826709f4;
  uVar13 = DAT_182670850;
  *(uint *)(lVar1 - ((ulonglong)uVar17 ^ 0x40248718)) =
       uVar18 << (((byte)uVar31 ^ 0xa8) & 0x1f) ^ DAT_182670850;
  uVar18 = DAT_182670aec;
  *(uint *)(lVar1 - ((ulonglong)uVar25 ^ 0xfefda304)) =
       (*(uint *)(lVar1 + -0x814) ^ uVar7) >> (((byte)uVar3 ^ 0x37) & 0x1f) ^ DAT_182670aec;
  uVar7 = DAT_1826707d8;
  puVar30 = (uint *)(lVar1 - ((ulonglong)uVar24 ^ 0x4124801e));
  *(uint *)(lVar1 - (uVar29 ^ 0xebb6f4e9)) =
       (uVar18 ^ *puVar30 | uVar13 ^ *(uint *)(lVar1 + -0x398)) ^ DAT_1826709f8;
  *(ulonglong *)(lVar1 - (uVar14 ^ 0x412486fa)) =
       CONCAT44(uVar17,uVar3) ^ CONCAT44(uVar24,uVar27) ^ 0x99366f37eec0f371;
  uVar13 = (*(uint *)(lVar1 + -0xb54) ^ DAT_182670848) + (*(uint *)(lVar1 + -0x7e4) ^ DAT_1826708e8)
           ^ DAT_182670898;
  *(uint *)(lVar1 + -0x8e0) = uVar13;
  uVar19 = uVar13 ^ DAT_1826708e4 ^ DAT_182670898;
  *(uint *)(lVar1 + -0x2d4) = uVar19;
  *(ulonglong *)(lVar1 + -0x410) = (CONCAT44(uVar3,uVar7) ^ 0x1ae1e0c4a) << 0x1c;
  *(uint *)(lVar1 + -0x3d4) = *(uint *)(lVar1 + -0xc34) ^ DAT_182670988 ^ DAT_1826709f8;
  uVar18 = DAT_18267092c;
  uVar32 = (ulonglong)DAT_18267092c;
  *(uint *)(lVar1 + -0x280) = (uVar25 ^ 0x8aa925f9) << (((byte)uVar17 ^ 0x96) & 0x1f);
  uVar13 = DAT_182670834;
  *(uint *)(lVar1 + -0x42c) = uVar19 ^ DAT_182670834 ^ DAT_1826708e4;
  lVar2 = DAT_1826707a0;
  uVar9 = (ulonglong)DAT_182670888;
  *(uint *)(lVar1 + -0xa34) = *(uint *)(lVar1 - (uVar29 ^ 0xebb6fb09)) ^ uVar18 ^ DAT_182670988;
  *(uint *)(lVar1 + -0x540) =
       *(uint *)(*(ulonglong *)(lVar1 - (uVar26 ^ 0x40248510)) ^ (ulonglong)DAT_1826708b4) ^
       DAT_182670a40;
  uVar19 = DAT_182670978;
  pbVar15 = (byte *)(*(longlong *)(lVar2 - ((ulonglong)uVar31 ^ 0xd69b4395)) + 9);
  *(ulonglong *)(lVar2 + -0x270) = (ulonglong)pbVar15 ^ uVar9;
  *(ulonglong *)(lVar2 + -0xd38) =
       *(longlong *)(lVar2 + -0xb70) - (CONCAT44(uVar10,uVar27) ^ 0x63f1ab1f02696bb);
  bVar5 = (byte)DAT_182670a7c;
  lVar1 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0xaff6fb66)) =
       *pbVar15 ^ (byte)DAT_182670a7c ^ (byte)DAT_182670adc;
  uVar25 = (uint)(bVar5 ^ *(byte *)(lVar1 + -0x619));
  *(uint *)(lVar1 + -0xc0c) = uVar25 ^ uVar19;
  uVar25 = uVar25 << 0x11 ^ DAT_1826708a0;
  *(uint *)(lVar1 + -0xc04) =
       (*(uint *)(lVar1 + -0xa34) ^ uVar18) + (uVar31 ^ 0x1dbf0e86) ^ DAT_1826708d8;
  *(uint *)(lVar1 + -0x9ec) = uVar25;
  uVar16 = DAT_182670a14;
  uVar20 = DAT_1826709e8;
  lVar1 = DAT_1826707a0;
  uVar9 = (ulonglong)DAT_182670958;
  uVar21 = (*(uint *)(DAT_1826707a0 - (uVar29 ^ 0xebb6f4d9)) ^ DAT_1826708d8) -
           (uVar25 ^ DAT_1826708a0) ^ DAT_182670874;
  puVar11 = (ulonglong *)(DAT_1826707a0 + -0x4f8);
  uVar25 = *(uint *)(DAT_1826707a0 + -0x42c);
  *(uint *)(DAT_1826707a0 + -0x814) = uVar21;
  uVar18 = DAT_182670848;
  uVar21 = uVar21 ^ DAT_182670874;
  *(byte *)(lVar1 + -0xc35) = *(byte *)(*puVar11 ^ uVar9) ^ (byte)DAT_182670adc;
  *(uint *)(lVar1 - (uVar8 ^ 0xfefda610)) = (uVar25 ^ uVar13) * uVar21 ^ uVar16;
  uVar25 = DAT_182670a60;
  *puVar30 = (uVar19 ^ *(uint *)(lVar1 + -0xc0c)) * (DAT_1826707d0 ^ 0xebb6f8d4) ^ DAT_182670a60;
  *(uint *)(lVar1 + -0x7e4) =
       (uVar25 ^ *(uint *)(lVar1 + -0x68c)) + (uVar16 ^ *(uint *)(lVar1 + -0x398)) ^ uVar20;
  uVar19 = (*(uint *)(lVar1 - ((ulonglong)uVar7 ^ 0xed5dbf01)) ^ uVar20) <<
           (((byte)DAT_1826707e4 ^ 0x9f) & 0x1f) ^ DAT_182670950;
  *(uint *)(lVar1 + -0x8e0) = uVar19;
  uVar19 = uVar19 ^ DAT_182670950;
  uVar25 = (*(uint *)(lVar1 - (uVar28 ^ 0xaff6fa9b)) ^ uVar20) >> (((byte)uVar7 ^ 0xf6) & 0x1f) ^
           DAT_182670a44;
  *(uint *)(lVar1 + -0xc34) = uVar25;
  uVar25 = uVar25 ^ DAT_182670a44;
  *(uint *)(lVar1 + -0x2d4) =
       (*(uint *)(lVar1 + -0x42c) ^ uVar13) + (*(uint *)(lVar1 + -0xb54) ^ uVar18) ^ DAT_182670a30;
  *(uint *)(lVar1 + -0x280) = (uVar25 | uVar19) ^ uVar18;
  uVar25 = DAT_182670a50;
  *(ulonglong *)(lVar1 - (uVar29 ^ 0xebb6f965)) =
       *(longlong *)(lVar1 + -0xf0) - (CONCAT44(uVar24,uVar3) ^ 0x8a3ea41429cb87b2);
  uVar13 = *(uint *)(lVar1 + -0x2d4) ^ uVar25 ^ DAT_182670a30;
  *(longlong *)(lVar1 + -0x558) = *(longlong *)(lVar1 + -0xac0) << 0x11;
  uVar16 = uVar13 ^ DAT_182670860;
  *(uint *)(lVar1 + -0x540) = *(uint *)(lVar1 + -0x280) ^ DAT_182670870 ^ uVar18;
  uVar16 = uVar16 ^ uVar25;
  *(uint *)(lVar1 + -0x3d4) = uVar13;
  puVar11 = (ulonglong *)(DAT_1826707a0 - (uVar8 ^ 0xfefda198));
  *(uint *)(lVar1 + -0xa34) = uVar16;
  lVar1 = DAT_1826707a0;
  puVar30 = (uint *)(DAT_1826707a0 - (uVar26 ^ 0x402481c0));
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) = *puVar11 ^ CONCAT44(uVar27,uVar3) ^ 0x20a42c80f6658a93;
  uVar18 = *puVar30 ^ DAT_18267083c ^ DAT_182670870;
  pbVar15 = (byte *)(*(longlong *)(lVar1 + -0x30) + 0x14 +
                    (CONCAT44(uVar27,uVar17) ^ 0x5ed475b140248480) * 0x20);
  *(uint *)(lVar1 + -0xc04) = uVar18;
  bVar4 = (byte)DAT_1826708e0;
  uVar19 = (uVar18 ^ DAT_18267083c) + (uVar31 ^ 0x1dbf0e86) ^ DAT_182670940;
  *(ulonglong *)(lVar1 + -0x2e8) = (ulonglong)pbVar15 ^ uVar32;
  uVar18 = DAT_182670a88;
  bVar5 = *pbVar15;
  *(uint *)(lVar1 + -0x814) = uVar19;
  bVar5 = bVar5 ^ bVar4 ^ (byte)DAT_182670adc;
  uVar19 = (uint)(bVar4 ^ bVar5);
  *(byte *)(lVar1 + -0x619) = bVar5;
  *(uint *)(lVar1 + -0x9ec) = uVar19 ^ uVar18;
  *(int *)(lVar1 + -0xc0c) = -0x6c964466 << (((byte)uVar13 ^ (byte)uVar25) & 0x1f);
  uVar25 = DAT_1826707c0;
  uVar19 = uVar19 << 0x11 ^ DAT_182670a9c;
  uVar16 = uVar16 ^ DAT_182670860;
  *(uint *)(lVar1 + -0x398) = uVar19;
  uVar13 = DAT_1826707cc;
  uVar19 = (*(uint *)(lVar1 - (uVar8 ^ 0xfefdad9c)) ^ DAT_182670940) - (uVar19 ^ DAT_182670a9c);
  uVar9 = (ulonglong)DAT_1826707cc;
  uVar32 = CONCAT44(uVar25,DAT_1826707cc);
  *(uint *)(lVar1 + -0x68c) = uVar19 ^ DAT_182670a40;
  lVar1 = DAT_1826707a0;
  uVar22 = uVar13 | uVar25;
  uVar19 = uVar16 * uVar19 ^ DAT_182670914;
  DAT_1826707f0 = uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = CONCAT44(uVar22,uVar22) ^ uVar32 ^ 0x3f2e0268af841849;
  *(uint *)(lVar1 + -0x7e4) = uVar19;
  *(ulonglong *)(lVar1 + -0x890) =
       (CONCAT44(uVar25,uVar22) ^ 0x370ecb22f73e5363) - *(longlong *)(lVar1 - (uVar9 ^ 0x85f69c96));
  uVar16 = DAT_182670aa0;
  *(uint *)(lVar1 - (uVar9 ^ 0x85f691b6)) =
       (*(uint *)(lVar1 - ((ulonglong)uVar13 ^ 0x85f690ba)) ^ uVar18) * (uVar22 ^ 0x9df6dbc2) ^
       DAT_182670aa0;
  uVar19 = DAT_182670968;
  uVar18 = DAT_182670818;
  *(uint *)(lVar1 - ((ulonglong)uVar13 ^ 0x85f69562)) =
       (*(uint *)(lVar1 - ((ulonglong)uVar22 ^ 0x9df6dc32)) ^ DAT_182670914) +
       (*(uint *)(lVar1 + -0x8e0) ^ uVar16) ^ DAT_182670968;
  *(ulonglong *)(lVar1 + -0x7d8) = *(longlong *)(lVar1 + -0x410) - (uVar32 ^ 0xc5e4c395dcda301b);
  uVar21 = (*(uint *)(lVar1 + -0xc34) ^ uVar19) >> (((byte)uVar25 ^ 0xd3) & 0x1f) ^ DAT_182670994;
  *(uint *)(lVar1 + -0x42c) = (*(uint *)(lVar1 + -0xc34) ^ uVar19) << 0xd ^ DAT_182670890;
  *(uint *)(lVar1 - (uVar14 ^ 0x41248446)) = uVar21;
  uVar19 = *(uint *)(lVar1 + -0xb54) ^ DAT_182670848;
  uVar21 = *(uint *)(lVar1 + -0x2d4) ^ DAT_182670994;
  *(ulonglong *)(lVar1 + -0x9e0) =
       *(longlong *)(lVar1 + -0x890) - (CONCAT44(uVar22,uVar17) ^ 0xe73bd7e5cc7e9c61);
  uVar21 = (uVar21 | *(uint *)(lVar1 + -0x42c) ^ DAT_182670890) ^ uVar18;
  *(uint *)(lVar1 + -0x540) = uVar19 + (*(uint *)(lVar1 + -0xa34) ^ DAT_182670860) ^ DAT_182670a20;
  *(uint *)(lVar1 + -0x280) = uVar21;
  uVar20 = *(uint *)(lVar1 - (uVar14 ^ 0x412483d2)) ^ DAT_182670a20 ^ uVar20;
  *(uint *)(lVar1 + -0x3d4) = uVar21 ^ _DAT_1826708c8 ^ uVar18;
  *(uint *)(lVar1 + -0xc04) = uVar20;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (CONCAT44(uVar31,uVar24) ^ 0x90e6e93819b3732e) << (((byte)uVar17 ^ 0x98) & 0x3f);
  uVar24 = DAT_1826708b8;
  uVar9 = (ulonglong)DAT_182670924;
  *(uint *)(lVar1 + -0xc0c) = uVar20 ^ DAT_1826708b8 ^ DAT_1826709e8;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       CONCAT44(uVar23,uVar13) ^ CONCAT44(uVar10,uVar23) ^ 0xb5e3e106b7e1b737;
  *(uint *)(lVar1 + -0x814) =
       *(uint *)(lVar1 - (uVar14 ^ 0x41248546)) ^ DAT_18267098c ^ _DAT_1826708c8;
  *(ulonglong *)(lVar1 + -0x248) =
       (CONCAT44(uVar17,uVar25) ^ 0x402484801dd24bdf) +
       (CONCAT44(uVar3,uVar22) ^ 0x869241249df6dbd6) * 0x20 + *(longlong *)(lVar1 + -0x30) ^ uVar9;
  bVar5 = (byte)DAT_182670ad0;
  uVar19 = DAT_182670960;
  lVar1 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0xed5db4d0)) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar31 ^ 0xd69b41ed)) ^ uVar9) ^
       (byte)DAT_182670ad0 ^ (byte)DAT_182670adc;
  uVar7 = DAT_182670894;
  *(uint *)(lVar1 - (uVar14 ^ 0x4124850a)) =
       (*(byte *)(lVar1 - ((ulonglong)uVar27 ^ 0x5ed47984)) ^ bVar5) ^ DAT_182670894;
  uVar13 = *(uint *)(lVar1 + -0x814) ^ DAT_18267098c;
  *(ulonglong *)(lVar1 + -0x3b0) =
       (uVar32 ^ 0xdd12b5cefa3b2b2d) >>
       ((byte)*(undefined8 *)(lVar1 - (uVar14 ^ 0x41248d22)) & 0x3f);
  uVar20 = DAT_182670a64;
  uVar10 = DAT_1826707e8;
  uVar25 = DAT_1826707e0;
  uVar9 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar1 + -0x68c) = uVar13 + (uVar22 ^ 0x56d296f5) ^ uVar19;
  *(uint *)(lVar1 - (uVar26 ^ 0x40248d6c)) = (uVar7 ^ *(uint *)(lVar1 + -0x398)) << 0x11 ^ uVar16;
  uVar13 = DAT_182670810;
  uVar16 = (uVar19 ^ *(uint *)(lVar1 + -0x68c)) - (*(uint *)(lVar1 - (uVar8 ^ 0xfefdac64)) ^ uVar16)
           ^ DAT_182670a04;
  *(uint *)(lVar1 + -0x7e4) = uVar16;
  uVar21 = (uVar16 ^ DAT_182670a04) * (uVar24 ^ *(uint *)(lVar1 + -0xc0c));
  uVar16 = DAT_1826707cc ^ 0x85f69949;
  *(uint *)(lVar1 + -0x8e0) = uVar21 ^ uVar13;
  uVar13 = (uVar7 ^ *(uint *)(lVar1 + -0x398)) * uVar16 ^ DAT_18267088c;
  *(ulonglong *)(lVar1 + -0x420) =
       CONCAT44(uVar31,uVar23) ^ 0x290bf33ecbbd1cb3 | *(ulonglong *)(lVar1 + -0x890);
  *(uint *)(lVar1 + -0xc34) = uVar13;
  uVar21 = uVar21 + (uVar13 ^ DAT_18267088c);
  *(uint *)(lVar1 + -0x42c) = uVar21 ^ uVar18;
  *(uint *)(lVar1 - (uVar28 ^ 0xaff6ffab)) = uVar21 * 0x2000 ^ uVar20;
  uVar7 = uVar10 | uVar25;
  DAT_1826707dc = uVar7;
  *(ulonglong *)(lVar1 + -0x658) = *(ulonglong *)(lVar1 + -0x7d8) >> (((byte)uVar10 ^ 0xb9) & 0x3f);
  uVar13 = (*(uint *)(lVar1 + -0x42c) ^ uVar18) >> (((byte)uVar25 ^ 0x2c) & 0x1f) ^ DAT_182670a54;
  *(uint *)(lVar1 + -0xa34) = uVar13;
  bVar5 = DAT_18267097c;
  uVar23 = (uVar20 ^ *(uint *)(lVar1 + -0x2d4) | uVar13 ^ DAT_182670a54) ^ DAT_182670a10;
  uVar13 = (*(uint *)(lVar1 + -0xb54) ^ DAT_182670848) + (uVar24 ^ *(uint *)(lVar1 + -0xc0c)) ^
           DAT_1826707f8;
  *(uint *)(lVar1 + -0x280) = uVar13;
  *(uint *)(lVar1 + -0xc04) = uVar13 ^ DAT_1826708f0 ^ DAT_1826707f8;
  *(uint *)(lVar1 + -0x540) = uVar23;
  uVar8 = (ulonglong)DAT_182670990;
  *(uint *)(lVar1 - (uVar9 ^ 0xaae67eeb)) =
       *(uint *)(lVar1 - ((ulonglong)uVar10 ^ 0x3f7dc3ca)) ^ DAT_1826709e4 ^ DAT_182670a10;
  uVar13 = DAT_182670844;
  uVar23 = *(uint *)(lVar1 + -0xc04) ^ DAT_1826708f0 ^ DAT_182670950;
  *(ulonglong *)(lVar1 + -0xd88) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0xaae67007)) ^ CONCAT44(uVar7,uVar10) ^
       0xff753de6a9007aa6;
  *(uint *)(lVar1 - ((ulonglong)uVar10 ^ 0x3f7dce9e)) = uVar23;
  uVar23 = *(uint *)(lVar1 - ((ulonglong)uVar7 ^ 0xbffffc6b)) ^ uVar13 ^ DAT_1826709e4;
  *(uint *)(lVar1 + -0x9ec) = uVar23;
  *(uint *)(lVar1 + -0x7e4) = (uVar13 ^ uVar23) + (uVar19 ^ *(uint *)(lVar1 + -0x68c));
  pbVar15 = (byte *)(*(longlong *)(lVar1 - ((ulonglong)uVar25 ^ 0xaae67d0f)) +
                    (CONCAT44(uVar25,uVar10) ^ 0xaae67d3f3f7dc680));
  *(ulonglong *)(lVar1 + -0x270) = (ulonglong)pbVar15 ^ uVar8;
  *(byte *)(lVar1 + -0x619) = *pbVar15 ^ (byte)DAT_182670adc ^ bVar5;
  *(undefined8 *)(lVar1 - ((ulonglong)uVar25 ^ 0xaae6793f)) = 0x26a17d3ec4800000;
  uVar23 = DAT_1826709b0;
  uVar24 = (uint)(*(byte *)(lVar1 + -0x619) ^ bVar5);
  *(ulonglong *)(lVar1 + -0x548) =
       (CONCAT44(uVar7,uVar7) ^ 0xec0577188523c0d7) - *(longlong *)(lVar1 + -0x6b8);
  *(uint *)(lVar1 + -0x398) = uVar24 ^ uVar23;
  *(uint *)(lVar1 + -0x8e0) =
       (*(uint *)(lVar1 - ((ulonglong)uVar25 ^ 0xaae674d3)) ^ uVar13) + (uVar10 ^ 0xf4598ba9) ^
       DAT_1826708e4;
  *(uint *)(lVar1 - ((ulonglong)uVar10 ^ 0x3f7dcabe)) =
       uVar24 << (((byte)uVar10 ^ 0x9b) & 0x1f) ^ DAT_18267099c;
  uVar10 = *(uint *)(lVar1 + -0x8e0) ^ DAT_1826708e4;
  uVar13 = *(uint *)(lVar1 + -0x814) ^ DAT_182670950;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (CONCAT44(uVar3,uVar22) ^ 0xa23ee831c4be508a) + *(longlong *)(lVar1 + -0x9e0);
  uVar10 = uVar10 - (*(uint *)(lVar1 + -0xc34) ^ DAT_18267099c);
  *(uint *)(lVar1 + -0x42c) = uVar10 ^ DAT_182670ac4;
  *(uint *)(lVar1 - ((ulonglong)uVar7 ^ 0xbffffd6b)) = uVar13 * uVar10 ^ DAT_182670b14;
  *(uint *)(lVar1 + -0xa34) = (uVar23 ^ *(uint *)(lVar1 + -0x398)) * 10 ^ DAT_182670910;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar6 * 4) = uVar12;
  *(ulonglong *)(lVar1 + -0x660) =
       -0x2e2521f3beb6e16e - (CONCAT44(uVar25,uVar25) ^ 0x8e3363edbac7f57c);
  return;
}



############ FUN_ 180d31760 size=5419 ############

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

void FUN_180d31760(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  byte bVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  uint uVar33;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar41;
  byte bVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_88;
  ulonglong uVar34;
  ulonglong uVar40;
  
  uVar8 = DAT_1826707e0;
  uVar6 = DAT_1826707dc;
  lVar4 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707e0;
  uVar26 = (ulonglong)DAT_1826707dc;
  uVar33 = DAT_1826707e0 * DAT_1826707dc;
  uVar34 = (ulonglong)uVar33;
  uVar3 = *(uint *)(&DAT_18260f760 + DAT_182670c6c);
  uVar14 = *(uint *)(&DAT_18260f758 + DAT_182670c6c) ^ DAT_1826707e0;
  uVar15 = (ulonglong)DAT_1826707dc;
  uVar22 = CONCAT44(DAT_182670b14,DAT_182670b14);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x410);
  bVar42 = (byte)DAT_1826707dc;
  DAT_1826707f4 = uVar33;
  *puVar2 = (CONCAT44(DAT_1826708c0,DAT_1826708c0) ^ *puVar1) >> ((bVar42 ^ 0x9b) & 0x3f) ^ uVar22;
  puVar32 = (ulonglong *)(lVar4 - (uVar15 ^ 0xfd67cb93));
  uVar15 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar4 + -0x2b0) =
       (CONCAT44(DAT_1826708e4,DAT_1826708e4) ^ *(ulonglong *)(lVar4 + -0x3b0) | uVar22 ^ *puVar32)
       ^ uVar15;
  uVar22 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar21 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar15 = *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x394f66b0)) ^ uVar21 ^ uVar22 ^ uVar15 ^
           *(ulonglong *)(lVar4 + -0xcf8);
  uVar16 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *(ulonglong *)(lVar4 + -0x118) = uVar15;
  uVar38 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar4 + -0x630) =
       (*(ulonglong *)(lVar4 + -0x610) ^ uVar16) + (uVar15 ^ uVar22) ^ uVar38;
  uVar12 = DAT_182670adc;
  lVar5 = DAT_1826707a0;
  uVar15 = CONCAT44(DAT_182670898,DAT_182670898);
  puVar23 = (ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xfd67c663));
  bVar13 = (byte)uVar33;
  *puVar23 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0xc17c2d18)) ^ uVar22) <<
             ((bVar13 ^ 5) & 0x3f) ^ uVar15;
  uVar11 = DAT_182670a68;
  uVar22 = (uVar22 ^ *(ulonglong *)(lVar5 + -0x118)) >> ((bVar13 ^ 0x3b) & 0x3f);
  *(ulonglong *)(lVar5 + -0xd88) = uVar22 ^ CONCAT44(uVar12,uVar12);
  uVar7 = DAT_182670960;
  uVar22 = uVar15 ^ *(ulonglong *)(lVar5 + -0x9e0) | uVar22;
  uVar15 = CONCAT44(uVar11,uVar11);
  uVar28 = uVar22 ^ uVar15;
  *(ulonglong *)(lVar5 + -0xbb0) = uVar28;
  *(ulonglong *)(lVar5 + -0x660) = uVar22 >> ((bVar13 ^ 0x1e) & 0x3f);
  uVar17 = CONCAT44(uVar7,uVar7);
  puVar29 = (ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x394f6938));
  *(ulonglong *)(lVar5 + -0x558) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0xfd67c9b3)) ^ uVar17 ^ uVar15 ^ uVar38 ^ uVar28;
  uVar11 = DAT_1826708fc;
  lVar4 = DAT_1826707a0;
  uVar15 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  uVar39 = CONCAT44(DAT_18267099c,DAT_18267099c);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0xcf8)) + (uVar15 ^ *puVar29) ^ uVar39;
  uVar22 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xfd67c93b)) =
       (uVar15 ^ *puVar20) << ((bVar13 ^ 0x25) & 0x3f) ^ uVar22;
  *(uint *)(lVar4 - (uVar34 ^ 0xc17c283c)) =
       *(uint *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x394f62c0)) ^ (ulonglong)DAT_182670acc)
       ^ DAT_182670a40;
  lVar4 = DAT_1826707a0;
  uVar28 = (uVar15 ^ *puVar29) >> ((bVar13 ^ 0x1b) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) = uVar28 ^ CONCAT44(DAT_182670a74,DAT_182670a74);
  *puVar2 = (CONCAT44(uVar6,uVar8) ^ 0x9adf447876bfe439) << (((byte)uVar8 ^ 0x3c) & 0x3f);
  uVar11 = DAT_182670930;
  uVar15 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar22 = (uVar22 ^ *puVar1 | uVar28) ^ uVar15;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar22;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar30 = CONCAT44(DAT_182670900,DAT_182670900);
  uVar15 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707cc ^ 0x31dfb824)) ^ uVar24 ^ uVar22 ^
           uVar15 ^ uVar39;
  *(ulonglong *)(lVar4 + -0x610) = uVar15;
  uVar11 = DAT_182670838;
  uVar22 = CONCAT44(DAT_1826707a8,uVar33);
  uVar28 = (uVar24 ^ uVar15) + (CONCAT44(uVar8,uVar6) ^ 0x22dec23cdb820762);
  *(ulonglong *)(lVar4 + -0x118) = uVar28 ^ uVar30;
  uVar12 = DAT_182670a58;
  uVar15 = (uVar22 ^ 0x5850ec3cb28707a2) + (uVar38 ^ *(ulonglong *)(lVar4 + -0x630));
  *(ulonglong *)(lVar4 + -0x9e0) = uVar15 ^ CONCAT44(uVar11,uVar11);
  uVar43 = CONCAT44(uVar12,uVar12);
  uVar35 = uVar28 + uVar15 ^ uVar43;
  uVar18 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar4 + -0xd88) = uVar35;
  uVar7 = DAT_1826707b4;
  lVar4 = DAT_1826707a0;
  uVar31 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0x79fbd728)) ^ uVar30) <<
           (((byte)uVar8 ^ 0x19) & 0x3f);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x118);
  uVar25 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar31 ^ uVar18;
  *(ulonglong *)(lVar4 + -0xbb0) = (uVar30 ^ *puVar20) >> ((bVar42 ^ 0xa4) & 0x3f) ^ uVar25;
  uVar15 = *(ulonglong *)(lVar4 + -0xf0);
  uVar28 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar4 + -0xcf8) =
       (CONCAT44(uVar33,uVar6) ^ 0x3d2d834b6629f225) + (CONCAT44(uVar6,uVar33) ^ 0xa7891851fd72deab)
  ;
  uVar8 = DAT_1826709f0;
  uVar19 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar22 = *(ulonglong *)(lVar4 + -0x558);
  uVar28 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0x6644fb7b)) ^ uVar25 | uVar31) ^ uVar19;
  *(ulonglong *)(lVar4 + -0xd38) = uVar28;
  uVar37 = DAT_1826707d4;
  uVar9 = DAT_1826707c0;
  uVar41 = CONCAT44(uVar8,uVar8);
  uVar25 = CONCAT44(DAT_1826707c0,uVar6);
  *puVar2 = uVar41 ^ uVar28 ^ uVar19 ^ uVar43 ^ uVar35;
  uVar28 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar35 = (uVar17 ^ uVar22) + (CONCAT44(uVar33,uVar33) ^ 0xfe63fafec8d2b031);
  *puVar1 = uVar35 ^ uVar28;
  uVar11 = DAT_18267089c;
  uVar8 = DAT_1826707bc;
  uVar19 = CONCAT44(DAT_182670858,DAT_182670858);
  uVar15 = (uVar25 ^ 0x60e5b43d2e9701fb) + (uVar39 ^ uVar15);
  *(ulonglong *)(lVar4 + -0x3b0) = uVar15 ^ uVar19;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar22 = (ulonglong)uVar8;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar15 + uVar35 ^ uVar25;
  uVar11 = DAT_182670808;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x610) =
       CONCAT44(uVar33,uVar37) ^ CONCAT44(uVar8,uVar6) ^ 0x924aac0013bff1af;
  uVar10 = DAT_1826707d0;
  uVar6 = DAT_1826707ac;
  uVar39 = CONCAT44(uVar11,uVar11);
  uVar31 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar5 + -0x630) =
       (*(ulonglong *)(lVar5 - (uVar34 ^ 0xc17c2ab8)) ^ uVar28) << (((byte)uVar7 ^ 0x11) & 0x3f) ^
       uVar39;
  uVar11 = DAT_1826708ac;
  uVar15 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar5 + -0x9e0) = uVar35 >> (((byte)uVar8 ^ 0x5c) & 0x3f) ^ uVar31;
  uVar35 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar10 ^ 0x77e5fce6)) =
       (*(ulonglong *)(lVar5 - (uVar15 ^ 0x87137b30)) ^ uVar39 | uVar31 ^ *puVar23) ^ uVar35;
  uVar28 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  *(ulonglong *)(lVar5 + -0xcf8) =
       (CONCAT44(uVar6,DAT_1826707c8) ^ 0xdfe344352d6ab420) << (((byte)uVar37 ^ 0xd6) & 0x3f);
  uVar11 = DAT_182670828;
  uVar15 = uVar28 ^ uVar35 ^ uVar25 ^ *(ulonglong *)(lVar5 + -0x2b0) ^
           *(ulonglong *)(lVar5 + -0x118);
  *(ulonglong *)(lVar5 + -0x660) = uVar15;
  uVar31 = CONCAT44(uVar11,uVar11);
  bVar13 = (byte)DAT_1826707f0;
  *(ulonglong *)(lVar5 + -0xbb0) =
       (uVar15 ^ uVar28) + (uVar43 ^ *(ulonglong *)(lVar5 + -0xd88)) ^ uVar31;
  *(undefined8 *)(lVar5 + -0xd38) = 0x5480000000000000;
  uVar39 = (uVar28 ^ uVar15) << 0x2e;
  uVar15 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar5 + -0x558) = uVar39 ^ CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar11 = DAT_182670814;
  *(ulonglong *)(lVar5 + -0xf0) =
       (uVar28 ^ *(ulonglong *)(lVar5 + -0x660)) >> ((bVar13 ^ 0xbe) & 0x3f) ^ uVar15;
  uVar7 = DAT_1826707b0;
  uVar43 = CONCAT44(uVar11,uVar11);
  uVar28 = (ulonglong)DAT_1826707b0;
  uVar35 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  uVar15 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x98e2fb4c)) ^ uVar15 | uVar39) ^ uVar43;
  *(ulonglong *)(lVar5 + -0x3b0) = uVar15;
  uVar39 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar5 + -0x610) =
       *(ulonglong *)(lVar5 - (uVar28 ^ 0xbcfbe928)) ^ uVar31 ^ uVar35 ^ uVar15 ^ uVar43;
  *puVar1 = (CONCAT44(uVar8,uVar7) ^ 0x82a8467cc1157524) + (*(ulonglong *)(lVar5 + -0xce0) ^ uVar39)
  ;
  uVar12 = DAT_182670998;
  uVar15 = *puVar2;
  uVar41 = uVar41 ^ uVar15;
  uVar37 = uVar8 & DAT_1826707c0;
  uVar40 = (ulonglong)uVar37;
  uVar44 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar36 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(lVar5 + -0x630) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707b8 ^ 0x3434c330)) ^ uVar25) + uVar41 ^ uVar44;
  uVar28 = (ulonglong)DAT_1826707c4;
  uVar25 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar5 + -0x9e0) = uVar41 << (((byte)DAT_1826707d8 ^ 0xf3) & 0x3f) ^ uVar36;
  uVar15 = (uVar15 >> 0x20 ^ (ulonglong)DAT_1826709f0) >> 0x14;
  uVar43 = CONCAT44(DAT_182670884,DAT_182670884);
  DAT_1826707c4 = uVar37;
  *(ulonglong *)(lVar5 + -0xcf8) = uVar15 ^ uVar25;
  uVar10 = DAT_182670928;
  uVar15 = (*(ulonglong *)(lVar5 - (uVar28 ^ 0x4303f487)) ^ uVar36 | uVar15) ^ uVar43;
  uVar28 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar5 + -0x118) = uVar15;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar37 ^ 0x7110c88)) =
       *(ulonglong *)(lVar5 - (uVar22 ^ 0x67fd0573)) ^ uVar15 ^ uVar28 ^ uVar43 ^ uVar44;
  uVar25 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar5 + -0xd38) =
       (uVar31 ^ *(ulonglong *)(lVar5 + -0xbb0)) + (uVar28 ^ *(ulonglong *)(lVar5 + -0xd88)) ^
       uVar25;
  uVar15 = CONCAT44(uVar9,DAT_1826707c0);
  *(ulonglong *)(lVar5 + -0x660) = (uVar28 ^ *(ulonglong *)(lVar5 + -0xd88)) << 0x3a ^ uVar21;
  uVar7 = DAT_1826707c0;
  uVar28 = CONCAT44(uVar9,uVar37);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0x67fd061b)) =
       uVar15 ^ CONCAT44(uVar8,uVar37) ^ 0xc24d6ddfe6d98fe8;
  uVar11 = DAT_1826709e8;
  *(ulonglong *)(lVar5 + -0xf0) =
       ((ulonglong)uVar10 << 0x1a | (ulonglong)(uVar10 >> 6)) ^ *(ulonglong *)(lVar5 + -0xd88) >> 6
       ^ uVar24;
  uVar15 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x3b0) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x87137df0)) ^ uVar24 |
       *(ulonglong *)(lVar5 + -0x660) ^ uVar21) ^ uVar15;
  *(ulonglong *)(lVar5 + -0xce0) = -0x1b08195522bf0831 - (uVar28 ^ 0x5777b9ff917aed3d);
  uVar43 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  puVar23 = (ulonglong *)(lVar5 - (uVar40 ^ 0x71102b0));
  *puVar1 = *(ulonglong *)(lVar5 - (uVar22 ^ 0x67fd0e7b)) ^ *puVar23 ^ uVar43 ^ uVar15 ^ uVar25;
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670a98,DAT_182670a98);
  puVar20 = (ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x87137fb0));
  uVar15 = (ulonglong)DAT_182670a38;
  *puVar20 = (*(ulonglong *)(lVar5 + -0x610) ^ uVar35) + (*(ulonglong *)(lVar5 + -0x630) ^ uVar44) ^
             uVar36;
  *(byte *)(lVar5 - ((ulonglong)uVar7 ^ 0x87137089)) =
       *(byte *)(uVar15 ^ *(ulonglong *)(lVar5 + -0x418)) ^ (byte)DAT_182670a40;
  uVar31 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *puVar2 = (*(ulonglong *)(lVar5 + -0x610) ^ uVar35) << 0x16 ^ uVar31;
  uVar9 = DAT_1826707c0;
  uVar15 = CONCAT44(DAT_182670a80,DAT_182670a80);
  puVar29 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x871371f8));
  uVar24 = CONCAT44(uVar8,DAT_1826707c0);
  *puVar29 = (*(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar35) >> (((byte)uVar37 ^ 0x2a) & 0x3f) ^
             uVar15;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0x7110018)) =
       (uVar24 ^ 0xc2ad7a076f69255) - (uVar28 ^ 0x7ee3797de5301598);
  uVar28 = CONCAT44(DAT_182670874,DAT_182670874);
  uVar15 = (*(ulonglong *)(lVar4 + -0xcf8) ^ uVar15 | *puVar2 ^ uVar31) ^ uVar28;
  uVar35 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar15;
  uVar11 = DAT_182670a50;
  uVar28 = uVar35 ^ *(ulonglong *)(lVar4 + -0x2b0) ^ uVar15 ^ uVar28 ^ uVar36;
  uVar15 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar4 + -0x558) = uVar28;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 + -0xd38) ^ uVar25) + (uVar28 ^ uVar35) ^ uVar31;
  uVar11 = DAT_182670818;
  uVar21 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar25 = (*(ulonglong *)(lVar4 - (uVar15 ^ 0x87137858)) ^ uVar35) << (((byte)uVar9 ^ 0x20) & 0x3f)
  ;
  local_88 = (byte)uVar12;
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0xd88)) >> ((local_88 ^ *(byte *)(lVar4 + -0x9e0)) & 0x3f);
  uVar35 = (uVar35 ^ *(ulonglong *)(lVar4 + -0x558)) >> (((byte)uVar8 ^ 99) & 0x3f);
  *(ulonglong *)(lVar4 + -0x660) = uVar25 ^ uVar21;
  uVar12 = DAT_18267081c;
  *(ulonglong *)(lVar4 + -0xce0) = uVar35 ^ CONCAT44(uVar11,uVar11);
  uVar7 = DAT_1826707c0;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar12,uVar12);
  uVar15 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c0 ^ 0x87137eb0)) =
       (uVar35 | uVar25) ^ uVar28;
  uVar35 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar4 + -0x630) =
       *puVar23 ^ uVar35 ^ uVar28 ^ uVar31 ^ *(ulonglong *)(lVar4 + -0xd88);
  uVar11 = DAT_182670924;
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - (uVar15 ^ 0x77e5fbce)) ^ uVar35) - (uVar24 ^ 0xf715e76aea72fffc);
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x118) =
       (*(ulonglong *)(lVar4 + -0x2b0) ^ uVar36) + (*puVar1 ^ uVar43) ^ uVar24;
  uVar28 = (ulonglong)DAT_1826709b0;
  *puVar29 = (*puVar1 ^ uVar43) << (((byte)uVar7 ^ 0x20) & 0x3f) ^ uVar18;
  uVar15 = *(ulonglong *)(lVar4 + -0xd88);
  uVar28 = *puVar1 >> 0x20 ^ uVar28;
  *puVar2 = uVar28 ^ uVar44;
  uVar11 = DAT_1826709a0;
  uVar28 = uVar18 ^ *puVar29 | uVar28;
  *(ulonglong *)(lVar4 + -0xbb0) = uVar28 ^ uVar17;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar28 = uVar28 ^ *(ulonglong *)(lVar4 + -0x118) ^ uVar25 ^ uVar24;
  *(ulonglong *)(lVar4 + -0xd38) = uVar28;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (CONCAT44(uVar37,uVar8) ^ 0xe0e7c83db40dcd3b) + (uVar28 ^ uVar25) ^ uVar30;
  uVar28 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar4 - (uVar40 ^ 0x71101f0)) =
       (uVar31 ^ uVar15) + (CONCAT44(uVar37,uVar37) ^ 0xa2e5e9c27c3177cd) ^ uVar28;
  uVar25 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  puVar23 = (ulonglong *)(lVar4 - (uVar26 ^ 0xfd67cadb));
  bVar13 = (byte)DAT_1826707e8;
  *puVar23 = (uVar30 ^ *(ulonglong *)(lVar5 + -0x9e0)) + (uVar28 ^ *(ulonglong *)(lVar5 + -0xf0)) ^
             uVar25;
  uVar10 = DAT_1826707d4;
  uVar9 = DAT_1826707c0;
  uVar7 = DAT_1826707ac;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707ac ^ 0x98e2fddc)) =
       (uVar30 ^ *(ulonglong *)(lVar5 + -0x9e0)) << ((bVar13 ^ 0xf3) & 0x3f) ^ uVar16;
  uVar11 = DAT_18267093c;
  uVar15 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar5 + -0xce0) =
       (uVar17 ^ *(ulonglong *)(lVar5 + -0xbb0)) >> (((byte)uVar9 ^ 0xb) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar28 = (ulonglong)DAT_182670960;
  *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0x67fd00f3)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar15 ^ 0x6644f92b)) ^ uVar30) >>
       (((byte)DAT_1826707cc ^ 0xe6) & 0x3f) ^ uVar26;
  *(ulonglong *)(lVar4 + -0x610) = (*(ulonglong *)(lVar4 + -0xbb0) >> 0x20 ^ uVar28) >> 0x12;
  uVar15 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *puVar20 = (*(ulonglong *)(lVar4 - (uVar22 ^ 0x67fd0523)) ^ uVar16 |
             uVar26 ^ *(ulonglong *)(lVar4 + -0x3b0)) ^ uVar15;
  uVar9 = DAT_18267098c;
  uVar26 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar28 = CONCAT44(uVar8,DAT_1826707c8);
  *puVar1 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0x77e5f8a6)) ^
            *(ulonglong *)(lVar4 + -0x2b0) ^ uVar26 ^ uVar15 ^ uVar25;
  lVar4 = DAT_1826707a0;
  uVar15 = (uVar28 ^ 0x208af58b7691cfc) + (*(ulonglong *)(DAT_1826707a0 + -0x630) ^ uVar35);
  uVar28 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) = uVar15 ^ CONCAT44(uVar9,uVar9);
  *puVar2 = (CONCAT44(uVar6,DAT_1826707d8) ^ 0xa356c29a7747c65d) +
            (*(ulonglong *)(lVar4 + -0x118) ^ uVar24) ^ uVar28;
  *(undefined8 *)(lVar4 + -0xd38) = 0x6d98ea5859806951;
  *(ulonglong *)(lVar4 + -0xd88) = (*puVar32 ^ uVar28) + uVar15 ^ uVar28;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x67fd03b3)) = uVar15 * 0x10000 ^ uVar39;
  lVar5 = DAT_1826707a0;
  uVar17 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar4 - (uVar40 ^ 0x7110de0)) =
       (ulonglong)*(ushort *)(lVar4 + -0xcf2) ^ (ulonglong)(uVar9 >> 0x10) ^ uVar17;
  uVar6 = DAT_1826707c0;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707c0 ^ 0x871374e0)) =
       (*(ulonglong *)(lVar4 + -0xce0) ^ uVar17 | uVar39 ^ *(ulonglong *)(lVar4 + -0xf0)) ^ uVar21;
  *(ulonglong *)(lVar5 - (uVar27 ^ 0x394f6fb0)) =
       uVar28 ^ *(ulonglong *)(lVar5 + -0xd88) ^ 0x915667b34c9e4fb3;
  uVar22 = uVar19 ^ uVar28 ^ uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88) ^
           *(ulonglong *)(DAT_1826707a0 + -0x9e0);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar22;
  lVar4 = DAT_1826707a0;
  uVar16 = CONCAT44(DAT_182670964,DAT_182670964);
  uVar15 = *puVar23;
  *(uint *)(DAT_1826707a0 + -0xa34) = (DAT_1826707f0 ^ 0xd4ad8f44) & (uVar10 ^ 0xe18fa1f2);
  uVar11 = DAT_1826709c0;
  *(ulonglong *)(lVar4 + -0x660) = (uVar19 ^ uVar22) + (uVar15 ^ uVar25) ^ uVar16;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar15 = (ulonglong)DAT_182670a38;
  *(ulonglong *)(lVar4 + -0x3b0) = (uVar19 ^ uVar22) << (((byte)uVar6 ^ 0x34) & 0x3f) ^ uVar25;
  *(byte *)(lVar4 - (uVar34 ^ 0xc17c2da9)) =
       *(byte *)(uVar15 ^ *(ulonglong *)(lVar4 + -0x418)) ^ (byte)DAT_182670a40;
  uVar15 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(lVar4 - (uVar40 ^ 0x71103b0)) =
       (uVar19 ^ *(ulonglong *)(lVar4 + -0x610)) >> (((byte)uVar7 ^ 0xb0) & 0x3f) ^ uVar15;
  *(ulonglong *)(lVar4 + -0x630) = *(ulonglong *)(lVar4 + -0xce0) ^ uVar17;
  uVar11 = DAT_182670a44;
  uVar22 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x3b0) | *(ulonglong *)(lVar4 + -0x2b0) ^ uVar15) ^
           uVar38;
  *(ulonglong *)(lVar4 + -0x118) = uVar22;
  uVar12 = _DAT_182670ad4;
  uVar15 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar4 + -0xd38) =
       CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar4 + -0x660) ^ uVar38 ^ uVar22 ^ uVar16;
  *puVar2 = (*(ulonglong *)(lVar4 - (uVar15 ^ 0x6644fd43)) ^ uVar28) + (*puVar1 ^ uVar26) ^
            CONCAT44(uVar12,uVar12);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar3 ^ uVar33) * 4) = uVar14;
  return;
}



############ FUN_ 180d0eb60 size=4689 ############

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

void FUN_180d0eb60(void)

{
  ulonglong *puVar1;
  longlong lVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  byte bVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  byte *pbVar35;
  ulonglong *puVar36;
  ulonglong uVar37;
  uint uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res18;
  byte local_a8;
  byte local_98;
  
  uVar33 = DAT_18267082c;
  uVar22 = DAT_1826707ec;
  uVar10 = DAT_1826707d8;
  uVar6 = DAT_1826707d4;
  uVar8 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  DAT_1826707dc = DAT_1826707a8 << 0x10 | DAT_1826707a8 >> 0x10;
  DAT_1826707f0 = DAT_1826707e0 << 0x10 | DAT_1826707e0 >> 0x10;
  uVar20 = DAT_1826707ec & 3;
  if (uVar20 < 2) {
    uVar38 = DAT_1826707c8;
    if (uVar20 == 0) {
      uVar38 = DAT_1826707ec;
    }
  }
  else {
    uVar38 = DAT_1826707f4;
    if (uVar20 < 3) {
      uVar38 = DAT_1826707e4;
    }
  }
  uVar23 = (ulonglong)DAT_1826707bc;
  uVar27 = DAT_1826707bc | DAT_1826707d8;
  uVar20 = *(uint *)(&DAT_18260f758 + DAT_182670c04);
  uVar21 = *(uint *)(&DAT_18260f760 + DAT_182670c04) ^ DAT_1826707d8;
  uVar32 = (ulonglong)DAT_18267082c;
  uVar31 = (ulonglong)DAT_1826707d4;
  uVar34 = CONCAT44(uVar27,DAT_1826707f4);
  DAT_1826707c0 = uVar38;
  DAT_1826707d0 = uVar27;
  *(ulonglong *)(DAT_1826707a0 + -0x548) =
       CONCAT44(DAT_1826707d4,DAT_1826707ec) ^ 0x4cfa4e9ec13beda5 |
       CONCAT44(DAT_1826707bc,uVar38) ^ 0xbadfb1b6d3377dd4;
  bVar19 = (byte)DAT_1826707fc;
  uVar9 = DAT_1826707c4;
  uVar7 = DAT_1826707b4;
  uVar24 = (ulonglong)uVar27;
  pbVar35 = (byte *)((uVar34 ^ 0x77e5fdfefffc2ed7) + *(longlong *)(lVar2 + -0x168));
  uVar34 = (ulonglong)DAT_1826707c4;
  uVar37 = (ulonglong)DAT_1826707b4;
  uVar39 = DAT_1826707b4 - DAT_1826707c4;
  uVar3 = DAT_1826707c4 >> 0xc;
  *(ulonglong *)(lVar2 + -0x390) = (ulonglong)pbVar35 ^ uVar32;
  DAT_1826707b0 = uVar39;
  *(ulonglong *)(lVar2 + -0xbb0) = (uVar37 << 0x14 | (ulonglong)uVar3) ^ 0x927e02d41cad2;
  uVar3 = DAT_1826707e4;
  *(byte *)(lVar2 + -0xbf1) = *pbVar35 ^ bVar19 ^ (byte)DAT_182670a40;
  lVar4 = DAT_1826707a0;
  uVar25 = (ulonglong)uVar39;
  uVar29 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar32 = (ulonglong)uVar10;
  uVar28 = CONCAT44(DAT_1826707c8,uVar3);
  *(ulonglong *)(lVar2 + -0x2b0) = (*(byte *)(lVar2 - (uVar25 ^ 0xbcfbe969)) ^ bVar19) ^ uVar29;
  uVar14 = DAT_182670958;
  uVar11 = DAT_1826707f0;
  uVar26 = (ulonglong)DAT_182670958;
  puVar36 = (ulonglong *)(lVar4 - (uVar32 ^ 0x67a0f9e6));
  *puVar36 = *(longlong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc03f0)) +
             (uVar28 ^ 0x86341480727d2ed4) ^ uVar26;
  bVar19 = (byte)DAT_18267096c;
  uVar3 = DAT_1826707a8;
  lVar2 = DAT_1826707a0;
  puVar30 = (ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x33e56528));
  *(byte *)(lVar4 - ((ulonglong)uVar22 ^ 0x14f6629)) =
       *(byte *)(uVar26 ^ *puVar30) ^ (byte)DAT_18267096c ^ (byte)DAT_182670a40;
  local_a8 = (byte)uVar39;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0xfeb0974f)) =
       (CONCAT44(DAT_182670ab0,DAT_182670ab0) ^ *(ulonglong *)(lVar2 + -0x588)) <<
       (((byte)uVar11 ^ 0xc3) & 0x3f);
  uVar12 = DAT_182670928;
  uVar40 = (ulonglong)(*(byte *)(lVar2 + -0x279) ^ bVar19);
  *(ulonglong *)(lVar2 + -0x410) = uVar40 ^ CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar13 = DAT_182670a10;
  uVar40 = uVar40 << ((local_a8 ^ 0x90) & 0x3f);
  puVar1 = (ulonglong *)(lVar2 + -0x890);
  *(ulonglong *)(lVar2 + -0x68) = uVar40 ^ CONCAT44(uVar12,uVar12);
  uVar3 = DAT_1826707dc;
  lVar4 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707f4;
  uVar40 = *(ulonglong *)(lVar2 - (uVar24 ^ 0x77e5ff4e)) ^ uVar29 | uVar40;
  *puVar1 = uVar40 ^ CONCAT44(uVar13,uVar13);
  uVar29 = CONCAT44(uVar3,DAT_1826707e0);
  *(ulonglong *)(lVar4 + -0x1b8) = (uVar26 ^ 0xbd202000) >> 0xb;
  bVar19 = (byte)DAT_182670844;
  pbVar35 = (byte *)((uVar29 ^ 0x9baffeb0bcfc02b2) + *(longlong *)(lVar4 + -0x168));
  *(ulonglong *)(lVar4 + -0x390) = (ulonglong)pbVar35 ^ (ulonglong)DAT_182670ad8;
  *(byte *)(lVar4 + -0x281) = *pbVar35 ^ bVar19 ^ (byte)DAT_182670a40;
  uVar12 = DAT_182670938;
  lVar2 = DAT_1826707a0;
  uVar41 = (ulonglong)(*(byte *)(lVar4 - ((ulonglong)uVar38 ^ 0x14f66d1)) ^ bVar19);
  uVar26 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(DAT_1826707a0 + -0x548) = uVar41 ^ CONCAT44(_DAT_182670b10,_DAT_182670b10);
  uVar29 = (ulonglong)DAT_1826708a8;
  uVar45 = CONCAT44(uVar12,uVar12);
  uVar41 = uVar41 << 0x10;
  *(ulonglong *)(lVar2 + -0xbb0) = uVar41 ^ uVar26;
  uVar22 = DAT_1826707c8;
  uVar26 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x67a0f876)) = (uVar40 | uVar41) ^ uVar45;
  bVar19 = (byte)DAT_182670858;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x86341098)) =
       (CONCAT44(uVar6,uVar7) ^ 0xadc30feffffdfd4) + *(longlong *)(lVar2 + -0x168) ^ uVar29;
  uVar12 = DAT_182670a38;
  bVar18 = *(byte *)(uVar29 ^ *puVar30) ^ bVar19 ^ (byte)DAT_182670a40;
  *(byte *)(lVar2 + -0x521) = bVar18;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x77e5f11e)) = (bVar18 ^ bVar19) ^ uVar26;
  uVar29 = CONCAT44(uVar33,uVar33);
  uVar40 = (ulonglong)DAT_1826707ec;
  *(uint *)(lVar2 + -0xcec) = (uVar6 ^ 0x7277e47b) * 0x6907494e;
  bVar17 = (byte)DAT_182670a40;
  uVar43 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 - (uVar40 ^ 0x14f6040)) =
       (uVar26 ^ *(ulonglong *)(lVar2 + -0xce0)) << (local_a8 & 0x3f) ^ uVar29;
  uVar26 = CONCAT44(DAT_1826707e4,uVar10);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar11 ^ 0x298be4c)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x410) | uVar45 ^ *(ulonglong *)(lVar2 + -0x588)) ^ uVar43;
  uVar29 = (ulonglong)DAT_182670aa8;
  *(ulonglong *)(lVar2 + -0x68) =
       uVar26 ^ 0x8974092af0a2ba3d | uVar45 ^ *(ulonglong *)(lVar2 + -0x588);
  bVar19 = (byte)DAT_1826708f4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0x86341710)) =
       (CONCAT44(uVar3,uVar7) ^ 0x9baffeb0ffffdfd3) + *(longlong *)(lVar2 + -0x168) ^ uVar29;
  uVar12 = DAT_182670980;
  bVar18 = *(byte *)(uVar29 ^ *(ulonglong *)(lVar2 + -0x390)) ^ bVar19 ^ bVar17;
  *(byte *)(lVar2 + -0xae9) = bVar18;
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc0320)) = (bVar18 ^ bVar19) ^ uVar29;
  *(ulonglong *)(lVar2 + -0x548) =
       CONCAT44(uVar7,DAT_1826707a8) ^ uVar29 ^ *(ulonglong *)(lVar2 + -0x1b8) ^ 0x52defb6b44d19faf;
  uVar40 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar26 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0x33e569a0)) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x1b8)) << 0x20 ^ uVar40;
  bVar18 = (byte)DAT_18267090c;
  uVar22 = DAT_1826707f4;
  uVar29 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar41 = (ulonglong)DAT_182670a28;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x77e5f64e)) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x14f66e0)) ^ uVar43 | *puVar1 ^ uVar40) ^ uVar29;
  uVar26 = (ulonglong)DAT_182670898;
  lVar2 = *(longlong *)(lVar4 + -0x168);
  bVar19 = *(byte *)(*(ulonglong *)(lVar4 + -0x4f8) ^ uVar41);
  *(ulonglong *)(lVar4 + -0x418) = lVar2 + 0x2dU ^ uVar26;
  *(byte *)(lVar4 + -0x7f1) = bVar19 ^ bVar17;
  uVar6 = DAT_1826707f0;
  *(byte *)(lVar4 + -0x7f2) =
       *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0xfffc2ae7)) ^ uVar26) ^ bVar17 ^
       bVar18;
  uVar12 = DAT_182670824;
  uVar26 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar4 + -0xce0) =
       (CONCAT44(uVar6,uVar22) ^ 0xec61181b2b7b5ff3) << (((byte)uVar6 ^ 0xcf) & 0x3f);
  uVar13 = DAT_182670aac;
  bVar19 = (byte)DAT_1826707dc;
  uVar42 = (ulonglong)(*(byte *)(lVar4 - (uVar26 ^ 0x727d290f)) ^ bVar18);
  *(ulonglong *)(lVar4 + -0x410) = uVar42 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_1826707f8;
  lVar4 = DAT_1826707a0;
  uVar44 = (ulonglong)DAT_1826707c0;
  uVar42 = uVar42 << ((bVar19 ^ 0x98) & 0x3f);
  uVar43 = CONCAT44(uVar13,uVar13);
  puVar30 = (ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0x68) = uVar42 ^ CONCAT44(DAT_1826707f8,DAT_1826707f8);
  uVar22 = DAT_1826707ec;
  uVar40 = (ulonglong)DAT_1826707ec;
  uVar26 = (ulonglong)DAT_1826709f0;
  *(ulonglong *)(lVar4 + -0x548) = (uVar42 | *puVar30 ^ uVar29) ^ uVar43;
  bVar19 = (byte)DAT_182670a60;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x14f67c0)) = lVar2 + 0x2eU ^ uVar26;
  *(uint *)(lVar4 + -0xc04) = DAT_1826707b0 ^ 0xca67acdd | DAT_1826707d8 ^ 0x77adc082;
  *(byte *)(lVar4 - (uVar40 ^ 0x14f63a3)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x390) ^ uVar26) ^ (byte)DAT_182670a40 ^ bVar19;
  uVar13 = DAT_182670954;
  uVar29 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(lVar4 + -0x1b8) = (*(byte *)(lVar4 - (uVar25 ^ 0xbcfbe56b)) ^ bVar19) ^ uVar29;
  uVar26 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x727d2f45)) ^ uVar29) <<
           (((byte)DAT_1826707f0 ^ 0xcc) & 0x3f);
  *(ulonglong *)(lVar4 + -0x2b0) = uVar26 ^ CONCAT44(uVar13,uVar13);
  *puVar1 = (CONCAT44(uVar38,uVar9) ^ 0xfceeee39688f2efe) -
            (uVar45 ^ *(ulonglong *)(lVar4 + -0x588));
  uVar16 = DAT_1826709bc;
  uVar44 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0xffffd31f)) =
       uVar26 + (uVar43 ^ *(ulonglong *)(lVar4 + -0x548)) ^ uVar44;
  bVar19 = (byte)DAT_182670ac4;
  uVar26 = (ulonglong)DAT_182670a08;
  uVar42 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707dc ^ 0x9baffa48)) =
       *(longlong *)(lVar4 + -0x168) + 0x2fU ^ uVar26;
  *(byte *)(lVar4 + -0x871) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x4f8) ^ uVar26) ^ (byte)DAT_182670a40 ^ bVar19;
  uVar13 = DAT_182670834;
  uVar6 = DAT_1826707a8;
  *(ulonglong *)(lVar4 + -0x410) =
       *(ulonglong *)(lVar4 - (uVar23 ^ 0x33e56088)) ^ uVar29 |
       CONCAT44(uVar8,DAT_1826707a8) ^ 0x2500416cebf977c4;
  uVar15 = DAT_1826709b4;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar26 = (ulonglong)(*(byte *)(lVar4 - (uVar24 ^ 0x77e5f58f)) ^ bVar19);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar26 ^ uVar37;
  uVar29 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0xadc3096)) = uVar26 << (((byte)uVar6 ^ 0x97) & 0x3f) ^ uVar29;
  uVar13 = DAT_182670a9c;
  lVar2 = DAT_1826707a0;
  uVar40 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  *(ulonglong *)(lVar4 + -0x588) =
       (uVar29 ^ *(ulonglong *)(lVar4 + -0x68)) + (uVar44 ^ *(ulonglong *)(lVar4 + -0xce0)) ^ uVar40
  ;
  uVar44 = (ulonglong)DAT_1826707f4;
  *puVar1 = *(ulonglong *)(lVar2 - (uVar44 ^ 0xfffc254f)) ^ uVar28 ^ uVar37 ^ 0x8c7bb1d0a955f08c;
  uVar26 = (ulonglong)DAT_18267092c;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xa58) + (CONCAT44(uVar39,uVar22) ^ 0xbcfbe298014f6455) * 8);
  *(ulonglong *)(lVar2 + -0xb50) = (ulonglong)puVar30 ^ CONCAT44(DAT_18267080c,DAT_18267080c);
  *(byte *)(lVar2 + -0x601) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar34 ^ 0x4303f78f)) ^ uVar26) ^ (byte)DAT_182670a40;
  bVar18 = (byte)DAT_182670a40;
  *puVar30 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc0710)) ^
             CONCAT44(uVar13,uVar13) ^ uVar40;
  bVar19 = (byte)DAT_182670a18;
  uVar34 = (ulonglong)DAT_1826708d0;
  *puVar36 = *(longlong *)(lVar2 - (uVar23 ^ 0x33e56058)) + 0x30U ^ uVar34;
  lVar4 = DAT_1826707a0;
  *(byte *)(lVar2 - (uVar31 ^ 0xadc327c)) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x418) ^ uVar34) ^ bVar18 ^ bVar19;
  uVar37 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar4 + -0x2b0) = (*(byte *)(lVar4 + -0x282) ^ bVar19) ^ uVar37;
  *(ulonglong *)(lVar4 + -0x390) =
       *(longlong *)(lVar4 - (uVar44 ^ 0xfffc2f97)) + (CONCAT44(uVar7,uVar8) ^ 0xffffdfff33e56101) ^
       uVar41;
  uVar8 = DAT_1826707c8;
  lVar5 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0x727d2909)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar24 ^ 0x77e5fe6e)) ^ uVar41) ^ bVar18 ^ (byte)uVar12;
  uVar13 = DAT_182670a88;
  uVar34 = (ulonglong)(byte)(*(byte *)(lVar5 + -0x7f4) ^ (byte)uVar12);
  *(ulonglong *)(lVar5 + -0x220) =
       (uVar43 ^ *(ulonglong *)(lVar5 + -0x548)) - (CONCAT44(uVar9,uVar8) ^ 0xfd73258f8de8a7b5);
  uVar12 = DAT_182670b14;
  *(ulonglong *)(lVar5 + -0x1b8) = uVar34 ^ CONCAT44(uVar13,uVar13);
  bVar19 = (byte)DAT_182670984;
  uVar8 = DAT_1826707cc;
  local_res18 = (byte)uVar10;
  uVar31 = CONCAT44(uVar12,uVar12);
  uVar23 = (ulonglong)DAT_1826707cc;
  uVar24 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar5 + -0x410) = uVar34 << ((local_res18 ^ 0xf6) & 0x3f) ^ uVar31;
  uVar33 = uVar8 << 0x10 | uVar8 >> 0x10;
  DAT_1826707b8 = uVar33;
  *(byte *)(lVar5 - (uVar42 ^ 0x9bafffc1)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0xae8) ^ uVar26) ^ bVar18;
  lVar2 = *(longlong *)(lVar5 + -0x168);
  uVar26 = uVar31 ^ *(ulonglong *)(lVar5 + -0x410) | *(ulonglong *)(lVar5 + -0x2b0) ^ uVar37;
  uVar31 = (ulonglong)DAT_182670850;
  *(ulonglong *)(lVar5 + -0xbb0) = uVar26 ^ CONCAT44(DAT_1826708d4,DAT_1826708d4);
  pbVar35 = (byte *)(lVar2 + 0x32);
  *(ulonglong *)(lVar5 + -0x4f8) = (ulonglong)pbVar35 ^ uVar31;
  uVar12 = DAT_182670a6c;
  bVar18 = *pbVar35 ^ (byte)DAT_182670a40;
  *(byte *)(lVar5 + -0x139) = bVar18 ^ bVar19;
  *puVar1 = (ulonglong)bVar18 ^ CONCAT44(uVar12,uVar12);
  uVar31 = (ulonglong)bVar18 << (((byte)uVar8 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar5 + -0x558) = uVar31 ^ CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar6 = DAT_1826707e8;
  uVar34 = CONCAT44(DAT_182670918,DAT_182670918);
  uVar22 = DAT_1826707e8 & DAT_1826707d8;
  DAT_1826707ac = uVar22;
  *(ulonglong *)(lVar5 + -0x548) = (uVar31 | uVar26) ^ uVar34;
  bVar19 = (byte)DAT_182670880;
  lVar4 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_182670a20;
  *(ulonglong *)(DAT_1826707a0 + -0x418) =
       (CONCAT44(uVar6,uVar22) ^ 0x727d2efd62202ccf) + lVar2 ^ uVar31;
  uVar12 = DAT_182670934;
  bVar18 = *(byte *)(*puVar36 ^ uVar31) ^ (byte)DAT_182670a40;
  *(byte *)(lVar4 + -0xdd9) = bVar18 ^ bVar19;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x12d90da8)) = bVar18 ^ uVar26;
  *(uint *)(lVar4 - (uVar32 ^ 0x67a0f9c2)) =
       (uVar8 ^ 0xb098e6c2) >> ((byte)*(undefined4 *)(lVar4 + -0x140) & 0x1f);
  uVar31 = CONCAT44(DAT_182670a30,DAT_182670a30);
  local_98 = (byte)uVar16;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0x67a0fc46)) =
       (*(ulonglong *)(lVar4 + -0x220) ^ uVar26) << 0x18 ^ uVar31;
  *(undefined8 *)(lVar4 + -0x2b0) = 0x66e2d1b62e1ed63b;
  uVar32 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  uVar26 = (ulonglong)DAT_182670988;
  *(ulonglong *)(lVar4 + -0x410) =
       (uVar34 ^ *(ulonglong *)(lVar4 + -0x548) | *(ulonglong *)(lVar4 + -0x1b8) ^ uVar31) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x390) =
       (CONCAT44(uVar6,uVar33) ^ 0x727d2efd0f8812ed) + *(longlong *)(lVar4 + -0x168) ^ uVar26;
  *puVar1 = (uVar29 ^ *(ulonglong *)(lVar4 + -0x68)) >>
            ((local_98 ^ *(byte *)(lVar4 + -0xce0)) & 0x3f);
  uVar12 = DAT_1826708a4;
  bVar19 = *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0x62202f6c)) ^ uVar26) ^
           (byte)DAT_182670a40;
  *(byte *)(lVar4 + -0xa1) = bVar19 ^ (byte)DAT_182670910;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xbb0) = bVar19 ^ uVar31;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0xf881781)) =
       CONCAT44(uVar10,uVar6) ^ 0xfaadc13e37ab02c7;
  uVar12 = DAT_182670878;
  uVar31 = (*(ulonglong *)(lVar4 - (uVar24 ^ 0x12d90438)) ^ uVar31) <<
           (((byte)uVar22 ^ 0xdc) & 0x3f);
  *(ulonglong *)(lVar4 + -0x220) = uVar31 ^ CONCAT44(DAT_182670afc,DAT_182670afc);
  bVar19 = (byte)DAT_1826709dc;
  uVar26 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0x12d90d38)) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x410) | uVar31) ^ uVar26;
  pbVar35 = (byte *)((CONCAT44(uVar33,uVar8) ^ 0xf8812d912d90fbd) + *(longlong *)(lVar4 + -0x168));
  *(ulonglong *)(lVar4 + -0xae8) = (ulonglong)pbVar35 ^ (ulonglong)DAT_1826708c0;
  uVar12 = DAT_182670abc;
  bVar18 = *pbVar35 ^ (byte)DAT_182670a40;
  *(byte *)(lVar4 + -0x739) = bVar18 ^ bVar19;
  uVar13 = DAT_182670ac8;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x548) = bVar18 ^ uVar31;
  bVar19 = (byte)DAT_182670af4;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0xce0) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0x12d90ac0)) ^ uVar31) << ((local_res18 ^ 0xd6) & 0x3f) ^
       uVar34;
  uVar12 = DAT_1826708e8;
  uVar31 = (ulonglong)DAT_1826708d8;
  *(ulonglong *)(lVar4 + -0x68) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0xf881e39)) ^ uVar34 |
       *(ulonglong *)(lVar4 + -0x2b0) ^ uVar26) ^ CONCAT44(DAT_182670978,DAT_182670978);
  pbVar35 = (byte *)(*(longlong *)(lVar4 + -0x168) + 0x36);
  *(ulonglong *)(lVar4 + -0x4f8) = (ulonglong)pbVar35 ^ uVar31;
  *(byte *)(lVar4 + -0x249) = *pbVar35 ^ (byte)DAT_182670a40 ^ bVar19;
  *puVar1 = (ulonglong)(*(byte *)(lVar4 - (uVar25 ^ 0xbcfbe0d1)) ^ bVar19) ^ CONCAT44(uVar12,uVar12)
  ;
  bVar19 = (byte)DAT_1826707e4;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar21 * 4) = uVar20 ^ uVar27;
  *(ulonglong *)(lVar5 + -0x558) =
       (CONCAT44(uVar6,uVar22) ^ 0xc3c432815f4d0e81) << ((bVar19 ^ 0xd9) & 0x3f);
  return;
}



############ FUN_ 180cafba0 size=4197 ############

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

void FUN_180cafba0(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  byte *pbVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  uint *puVar39;
  uint *puVar40;
  byte local_d0;
  
  uVar7 = DAT_182670970;
  uVar29 = _DAT_1826708bc;
  uVar6 = DAT_1826707f4;
  uVar5 = DAT_1826707f0;
  uVar30 = DAT_1826707d0;
  uVar33 = DAT_1826707cc;
  uVar13 = DAT_1826707bc;
  lVar3 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707f4;
  uVar31 = (ulonglong)DAT_1826707f0;
  uVar34 = (ulonglong)DAT_1826707cc;
  uVar28 = DAT_1826707a8 | DAT_1826707cc;
  uVar27 = DAT_1826707f0 << 0x10 | DAT_1826707f0 >> 0x10;
  uVar17 = (DAT_1826707f4 << 0x10 | DAT_1826707f4 & 0xff00) << 8 | DAT_1826707f4 >> 8 & 0xff00 |
           DAT_1826707f4 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670dd4);
  uVar18 = *(uint *)(&DAT_18260f758 + DAT_182670dd4) ^ DAT_1826707f0;
  uVar20 = (ulonglong)DAT_1826707d0;
  uVar24 = (ulonglong)DAT_1826707bc;
  DAT_1826707ac = uVar17;
  DAT_1826707c0 = uVar27;
  DAT_1826707c4 = uVar28;
  *(uint *)(DAT_1826707a0 + -0xc34) =
       *(uint *)(DAT_1826707a0 + -0x68c) ^ DAT_182670970 ^ _DAT_1826708bc;
  uVar38 = uVar30 + uVar13;
  DAT_1826707d8 = uVar38;
  *(ulonglong *)(lVar3 + -0x1b8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0xebb6fe85)) >>
       ((byte)*(undefined8 *)(lVar3 - (uVar24 ^ 0x1a6cce8)) & 0x3f);
  *(uint *)(lVar3 + -0x14) = *(uint *)(lVar3 + -0x540) ^ DAT_18267088c ^ DAT_182670984;
  bVar2 = (byte)DAT_182670aa4;
  lVar3 = DAT_1826707a0;
  uVar21 = (ulonglong)uVar28;
  uVar14 = (ulonglong)uVar38;
  pbVar25 = (byte *)(*(longlong *)(DAT_1826707a0 - (uVar14 ^ 0xed5db8d5)) +
                     (CONCAT44(uVar33,DAT_1826707a8) ^ 0x85f69956aae67d3c) +
                    (CONCAT44(uVar30,uVar28) ^ 0xebb6f8ddaff6fd7f) * 0x20);
  *(ulonglong *)(DAT_1826707a0 + -0x2e8) = (ulonglong)pbVar25 ^ (ulonglong)DAT_182670a44;
  *(byte *)(lVar3 + -0x619) = *pbVar25 ^ bVar2 ^ (byte)DAT_182670adc;
  uVar8 = DAT_1826709a4;
  uVar15 = (ulonglong)uVar17;
  bVar11 = (byte)(uVar6 >> 0x18);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x85f69c96)) =
       *(ulonglong *)(lVar3 + -0x1b8) >> ((bVar11 ^ 0x7f) & 0x3f);
  *(uint *)(lVar3 - (uVar24 ^ 0x1a6c2dc)) = (bVar2 ^ *(byte *)(lVar3 + -0x619)) ^ uVar8;
  *(uint *)(lVar3 + -0x42c) =
       (*(uint *)(lVar3 + -0x14) ^ DAT_18267088c) + (uVar38 ^ 0x2679f5c6) ^ DAT_182670878;
  uVar10 = DAT_182670acc;
  uVar19 = DAT_1826707f8;
  bVar2 = (byte)(uVar5 >> 0x10);
  *(uint *)(lVar3 - ((ulonglong)uVar33 ^ 0x85f69142)) =
       (*(uint *)(lVar3 + -0x2d4) ^ uVar8) << ((bVar2 ^ 0x31) & 0x1f) ^ DAT_1826707f8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x7d711a02)) = (uVar20 ^ 0x6d63e000) >> 10;
  uVar12 = DAT_182670a60;
  uVar19 = (*(uint *)(lVar3 + -0x42c) ^ DAT_182670878) - (uVar19 ^ *(uint *)(lVar3 + -0x814)) ^
           DAT_18267094c;
  *(uint *)(lVar3 + -0x43c) = uVar19;
  *(uint *)(lVar3 + -0x7e4) =
       (*(uint *)(lVar3 + -0xc34) ^ uVar7) * (uVar19 ^ DAT_18267094c) ^ uVar29;
  *(byte *)(lVar3 + -0xc35) =
       *(byte *)((ulonglong)uVar10 ^ *(ulonglong *)(lVar3 + -0x248)) ^ (byte)DAT_182670adc;
  uVar23 = DAT_18267096c;
  uVar19 = DAT_182670884;
  *(uint *)(lVar3 - ((ulonglong)DAT_1826707a8 ^ 0xaae67eeb)) =
       (*(uint *)(lVar3 - (uVar21 ^ 0xaff6ffab)) ^ uVar8) * 3 ^ uVar12;
  uVar29 = (uVar12 ^ *(uint *)(lVar3 + -0x3d4)) + (uVar29 ^ *(uint *)(lVar3 + -0x7e4));
  *(uint *)(lVar3 + -0x398) = uVar29 ^ uVar23;
  *(uint *)(lVar3 + -0x9ec) = uVar29 * 0x2000 ^ uVar19;
  uVar37 = (ulonglong)uVar27;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0xf9fcd3e8)) =
       (CONCAT44(uVar28,uVar13) ^ 0x15fa5eef4524d491) +
       (CONCAT44(uVar38,uVar5) ^ 0x3ea3ad60a1abb89f);
  puVar39 = (uint *)(lVar3 - (uVar15 ^ 0x221872e5));
  uVar29 = (*puVar39 ^ uVar23) >> ((bVar11 ^ 0x6e) & 0x1f) ^ DAT_182670a80;
  puVar35 = (uint *)(DAT_1826707a0 + -0x9ec);
  *(uint *)(DAT_1826707a0 + -0x280) = uVar29;
  lVar3 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar34 ^ 0x85f691b6)) =
       (uVar29 ^ DAT_182670a80 | uVar19 ^ *puVar35) ^ DAT_182670860;
  *(ulonglong *)(lVar3 + -0xd88) = ((ulonglong)uVar27 ^ 0x8b685700) >> 8;
  uVar29 = (*(uint *)(lVar3 + -0xc34) ^ uVar7) + (*(uint *)(lVar3 + -0xb54) ^ DAT_182670848) ^
           DAT_18267083c;
  uVar19 = *(uint *)(lVar3 + -0x8e0) ^ DAT_182670934 ^ DAT_182670860;
  *(uint *)(lVar3 + -0xa34) = uVar29;
  uVar29 = uVar29 ^ DAT_182670844 ^ DAT_18267083c;
  *(uint *)(lVar3 + -0x68c) = uVar19;
  *(uint *)(lVar3 + -0xc0c) = uVar29;
  uVar8 = DAT_182670998;
  puVar35 = (uint *)(lVar3 - ((ulonglong)uVar27 ^ 0xf9fcd260));
  *puVar35 = uVar29 ^ DAT_182670998 ^ DAT_182670844;
  uVar9 = DAT_182670a10;
  uVar26 = (ulonglong)DAT_182670958;
  *(uint *)(lVar3 + -0x14) =
       *(uint *)(lVar3 - (uVar15 ^ 0x221877f1)) ^ DAT_182670a40 ^ DAT_182670934;
  *(ulonglong *)(lVar3 + -0x890) =
       CONCAT44(uVar9,uVar9) ^ CONCAT44(uVar17,uVar30) ^ *(ulonglong *)(lVar3 + -0x998) ^
       0x660d7d19076adb6a;
  bVar16 = (byte)DAT_182670a64;
  uVar7 = DAT_182670940;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xaff6f0c7)) =
       (CONCAT44(uVar13,uVar6) ^ 0x1a6c0087d71182c) + *(longlong *)(DAT_1826707a0 + -0x30) ^ uVar26;
  uVar22 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar3 + -0x6f0) =
       (CONCAT44(uVar13,uVar5) ^ 0x1280c7150292bcb2) >> (((byte)uVar28 ^ 0x43) & 0x3f);
  *(byte *)(lVar3 - (uVar22 ^ 0xaae67b26)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0xdb8) ^ uVar26) ^ bVar16 ^ (byte)DAT_182670adc;
  uVar29 = DAT_1826707f4;
  uVar32 = (uint)(bVar16 ^ *(byte *)(lVar3 + -0x619));
  *(ulonglong *)(lVar3 + -0xb70) =
       *(ulonglong *)(lVar3 + -0x660) >> ((byte)*(undefined8 *)(lVar3 + -0x588) & 0x3f);
  uVar12 = *(uint *)(lVar3 + -0x14) ^ DAT_182670a40;
  *(uint *)(lVar3 + -0x42c) = uVar32 ^ uVar7;
  uVar23 = DAT_18267091c;
  uVar19 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  *(uint *)(lVar3 + -0x814) = uVar12 + (uVar29 ^ 0xb6555501) ^ DAT_18267091c;
  bVar16 = (byte)DAT_1826707cc ^ 0x47;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (CONCAT44(uVar19,uVar27) ^ 0x2bcb7d772c67498a) >> (((byte)uVar6 ^ 0x31) & 0x3f);
  *(uint *)(lVar4 - ((ulonglong)uVar19 ^ 0xaae67903)) = uVar32 << (bVar16 & 0x1f) ^ uVar10;
  uVar19 = (uVar23 ^ *(uint *)(lVar4 + -0x814)) - (uVar10 ^ *(uint *)(lVar4 + -0x43c)) ^
           DAT_182670ad8;
  *(uint *)(lVar4 + -0x2d4) = uVar19;
  uVar29 = DAT_182670848;
  *(uint *)(lVar4 + -0x7e4) =
       (*(uint *)(lVar4 - (uVar34 ^ 0x85f69c16)) ^ uVar8) * (uVar19 ^ DAT_182670ad8) ^ DAT_182670848
  ;
  uVar19 = (*(uint *)(lVar4 - (uVar15 ^ 0x22187551)) ^ uVar7) * (uVar38 ^ 0xed5db8eb) ^
           DAT_1826708a0;
  *(uint *)(lVar4 + -0x3d4) = uVar19;
  uVar23 = DAT_18267098c;
  puVar40 = (uint *)(lVar4 - (uVar36 ^ 0x7d7111ce));
  *(uint *)(lVar4 + -0x398) =
       (*(uint *)(lVar4 - (uVar14 ^ 0xed5dbf01)) ^ uVar29) + (uVar19 ^ DAT_1826708a0) ^
       DAT_18267098c;
  uVar12 = DAT_182670a44;
  lVar3 = DAT_1826707a0;
  *puVar40 = (*puVar39 ^ uVar23) << (((byte)DAT_1826707a8 ^ 0x32) & 0x1f) ^ DAT_182670a44;
  uVar7 = DAT_182670a2c;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xd720fdec)) =
       *(ulonglong *)(lVar3 + -0xd38) | *(ulonglong *)(lVar3 + -0x6f0);
  uVar10 = DAT_182670a88;
  lVar4 = DAT_1826707a0;
  uVar19 = *(uint *)(DAT_1826707a0 + -0x9ec);
  *(uint *)(DAT_1826707a0 + -0x280) = (*(uint *)(lVar3 + -0x398) ^ uVar23) >> 0x13 ^ DAT_182670a88;
  *(ulonglong *)(lVar4 + -0x68) =
       (CONCAT44(uVar17,uVar33) ^ 0x6dbce0081c730320) << ((bVar2 ^ 0x2e) & 0x3f);
  *(uint *)(lVar4 + -0xc34) =
       (*(uint *)(lVar4 - (uVar14 ^ 0xed5dba65)) ^ uVar10 | uVar12 ^ uVar19) ^ DAT_18267089c;
  uVar29 = (*(uint *)(lVar4 + -0x540) ^ uVar8) + (*(uint *)(lVar4 + -0xb54) ^ uVar29) ^
           DAT_182670a08;
  uVar19 = DAT_1826707c4 ^ 0x94205c2;
  *(uint *)(lVar4 + -0xa34) = uVar29;
  *(uint *)(lVar4 + -0xc0c) = uVar19 | 0x42908a01;
  *(uint *)(lVar4 + -0x8e0) = uVar29 ^ uVar7 ^ DAT_182670a08;
  *(uint *)(lVar4 - (uVar20 ^ 0xebb6fe51)) =
       *(uint *)(lVar4 - (uVar20 ^ 0xebb6f4e9)) ^ DAT_1826709a0 ^ DAT_18267089c;
  uVar26 = CONCAT44(uVar17,DAT_1826707a8);
  *(longlong *)(lVar4 + -0x548) =
       *(longlong *)(lVar4 - (uVar31 ^ 0xd720ffec)) << (((byte)DAT_1826707a8 ^ 0x12) & 0x3f);
  uVar29 = DAT_182670ad0;
  uVar8 = DAT_182670ab0;
  uVar22 = (ulonglong)DAT_182670a7c;
  *(uint *)(lVar4 + -0x14) = *(uint *)(lVar4 + -0x8e0) ^ DAT_182670ab0 ^ uVar7;
  uVar23 = DAT_182670a48;
  uVar19 = DAT_1826708b4;
  *(ulonglong *)(lVar4 + -0xa18) = CONCAT44(uVar13,uVar5) ^ 0x9e987e7766295ac5;
  *(uint *)(lVar4 + -0x814) = *(uint *)(lVar4 - (uVar36 ^ 0x7d711eae)) ^ uVar29 ^ DAT_1826709a0;
  *(ulonglong *)(lVar4 + -0x4f8) =
       (CONCAT44(uVar27,uVar38) ^ 0xf9fcd720ed5db8fc) +
       (CONCAT44(uVar28,uVar30) ^ 0xaff6fd7febb6f8dd) * 0x20 + *(longlong *)(lVar4 + -0x30) ^ uVar22
  ;
  bVar2 = (byte)DAT_182670814;
  *(byte *)(lVar4 - (uVar37 ^ 0xf9fcdb15)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar34 ^ 0x85f69dae)) ^ uVar22) ^ (byte)DAT_182670814 ^
       (byte)DAT_182670adc;
  uVar30 = (uint)(bVar2 ^ *(byte *)(lVar4 + -0xc35));
  uVar13 = DAT_1826707c4 ^ 0x64d2b05c;
  *(uint *)(lVar4 + -0x43c) = uVar30 ^ uVar19;
  uVar13 = (uVar29 ^ *(uint *)(lVar4 + -0x814)) + uVar13 ^ DAT_182670988;
  uVar30 = uVar30 << (((byte)uVar38 ^ 0xf4) & 0x1f);
  *(uint *)(lVar4 + -0x2d4) = uVar13;
  uVar13 = uVar13 ^ DAT_182670988;
  *(uint *)(lVar4 + -0x42c) = uVar30 ^ uVar23;
  *(ulonglong *)(lVar4 + -0x2b0) = (CONCAT44(uVar33,uVar5) ^ 0xec205612ec8272) + 0x9d4d92f73952aa5e;
  uVar13 = uVar13 - uVar30 ^ DAT_182670880;
  *(uint *)(lVar4 + -0x7e4) = uVar13;
  uVar29 = DAT_182670954;
  uVar30 = (uVar13 ^ DAT_182670880) * (*(uint *)(lVar4 + -0x14) ^ uVar8);
  *(uint *)(lVar4 + -0x3d4) = uVar30 ^ DAT_182670990;
  uVar13 = (*(uint *)(lVar4 - (uVar34 ^ 0x85f69d6a)) ^ uVar19) * 0x19;
  *(uint *)(lVar4 + -0x398) = uVar13 ^ uVar23;
  uVar19 = DAT_1826709ac;
  *(uint *)(lVar4 - (uVar24 ^ 0x1a6c9e4)) = uVar13 + uVar30 ^ DAT_1826709ac;
  uVar30 = *(uint *)(lVar4 + -0xb54) ^ DAT_182670848;
  *(ulonglong *)(lVar4 + -0x420) = *(ulonglong *)(lVar4 + -0xd88) >> 0x37;
  uVar13 = (uVar19 ^ *(uint *)(lVar4 + -0x9ec)) << 0xd;
  *(uint *)(lVar4 + -0x280) = uVar13 ^ uVar29;
  *(uint *)(lVar4 + -0x540) =
       (*(uint *)(lVar4 - (uVar20 ^ 0xebb6f131)) ^ uVar19) >> 0x13 ^ DAT_182670a78;
  uVar19 = (*(uint *)(lVar4 - (uVar21 ^ 0xaff6f83f)) ^ DAT_182670a78 | uVar13) ^ DAT_182670a9c;
  *(uint *)(lVar4 + -0xa34) = uVar19;
  uVar30 = uVar30 + (*(uint *)(lVar4 + -0x14) ^ uVar8) ^ DAT_182670aec;
  uVar13 = uVar19 ^ DAT_1826709c4 ^ DAT_182670a9c;
  *(uint *)(lVar4 + -0xc0c) = uVar30;
  uVar19 = uVar30 ^ DAT_182670aa8 ^ DAT_182670aec;
  *(uint *)(lVar4 + -0xc34) = uVar19;
  uVar19 = uVar19 ^ DAT_182670aa8;
  uVar31 = -0x29dc34c823304d23 << ((byte)*(undefined8 *)(lVar4 - (uVar36 ^ 0x7d7118d2)) & 0x3f);
  *(ulonglong *)(lVar4 + -0xac0) = uVar31;
  *(uint *)(lVar4 + -0x68c) = uVar19 ^ uVar29;
  *(uint *)(lVar4 + -0x8e0) = uVar13;
  uVar19 = DAT_182670ac8;
  uVar22 = (ulonglong)DAT_182670a6c;
  uVar13 = uVar13 ^ DAT_182670abc ^ DAT_1826709c4;
  uVar30 = DAT_182670abc ^ uVar13;
  *(ulonglong *)(lVar4 + -0xbb0) = *(ulonglong *)(lVar4 - (uVar14 ^ 0xed5dbcf5)) | uVar31;
  *(uint *)(lVar4 + -0x814) = uVar13;
  bVar2 = (byte)DAT_182670a70;
  pbVar25 = (byte *)((CONCAT44(uVar17,uVar27) ^ 0x2218717df9fcd720) * 0x20 +
                    *(longlong *)(lVar4 + -0x30) + 4);
  *(ulonglong *)(lVar4 + -0x2e8) = (ulonglong)pbVar25 ^ uVar22;
  *(byte *)(lVar4 + -0x619) = *pbVar25 ^ bVar2 ^ (byte)DAT_182670adc;
  local_d0 = (byte)uVar33;
  uVar33 = (uint)(*(byte *)(lVar4 - (uVar37 ^ 0xf9fcd139)) ^ bVar2);
  *(uint *)(lVar4 + -0x2d4) = uVar33 ^ uVar19;
  *(ulonglong *)(lVar4 + -0x558) = *(ulonglong *)(lVar4 + -0x68) >> ((local_d0 ^ 0x5d) & 0x3f);
  *(uint *)(lVar4 + -0x42c) = uVar30 + (DAT_1826707bc ^ 0xca828d2b) ^ DAT_1826709d8;
  uVar13 = DAT_182670830;
  *(uint *)(lVar4 - (uVar24 ^ 0x1a6c7ec)) = uVar33 << (bVar16 & 0x1f) ^ DAT_182670830;
  uVar23 = *(uint *)(lVar4 + -0x42c) ^ DAT_1826709d8;
  *(ulonglong *)(lVar4 + -0x3b0) = uVar26 ^ 0x6814208f1d67a78a;
  uVar33 = DAT_18267089c;
  uVar23 = uVar23 - (uVar13 ^ *(uint *)(lVar4 + -0x7e4));
  *(uint *)(lVar4 + -0x43c) = uVar23 ^ DAT_18267089c;
  *(ulonglong *)(lVar4 + -0x658) =
       (CONCAT44(uVar6,uVar38) ^ 0xa8def299e0a7e013) << (((byte)uVar28 ^ 0x51) & 0x3f);
  uVar23 = (*(uint *)(lVar4 + -0x68c) ^ uVar29) * uVar23;
  uVar19 = (uVar19 ^ *(uint *)(lVar4 + -0x2d4)) * (DAT_1826707e4 ^ 0x41248696) ^ DAT_1826709e8;
  *(uint *)(lVar4 + -0x3d4) = uVar23 ^ uVar10;
  uVar30 = DAT_1826708e4;
  *(uint *)(lVar4 + -0x398) = uVar19;
  uVar23 = (*(uint *)(lVar4 - (uVar20 ^ 0xebb6fb45)) ^ DAT_1826709e8) + uVar23;
  *(uint *)(lVar4 + -0x9ec) = uVar23 ^ uVar30;
  uVar19 = DAT_1826707a8;
  *(uint *)(lVar4 + -0x280) = (uVar30 ^ *puVar40) << ((bVar11 ^ 0x70) & 0x1f) ^ DAT_182670944;
  *puVar35 = uVar23 >> (((byte)uVar19 ^ 0x2c) & 0x1f) ^ DAT_182670a38;
  uVar30 = (*(uint *)(lVar4 - (uVar15 ^ 0x221873fd)) ^ DAT_182670944 |
           *(uint *)(lVar4 - (uVar20 ^ 0xebb6fd9d)) ^ DAT_182670a38) ^ DAT_1826708fc;
  uVar19 = *(uint *)(lVar4 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar4 + -0x14) = uVar30;
  uVar30 = uVar30 ^ DAT_182670ab4 ^ DAT_1826708fc;
  uVar19 = (*(uint *)(lVar4 + -0x68c) ^ uVar29) + uVar19 ^ uVar13;
  *(uint *)(lVar4 + -0xc0c) = uVar19;
  *(uint *)(lVar4 + -0xc34) = uVar30;
  *(uint *)(lVar4 + -0xa34) = uVar13 ^ uVar7 ^ uVar19;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0xaff6fcc7)) =
       *(ulonglong *)(lVar4 + -0x658) ^ *(ulonglong *)(lVar4 + -0xbb0);
  uVar19 = DAT_1826707a8;
  *(uint *)(lVar4 + -0x8e0) = *(uint *)(lVar4 - (uVar21 ^ 0xaff6f74b)) ^ _DAT_182670ad4 ^ uVar7;
  *(uint *)(lVar4 - (uVar37 ^ 0xf9fcdf34)) = *(uint *)(lVar4 + -0xc34) ^ DAT_182670ab4 ^ uVar33;
  *(byte *)(lVar4 - (uVar14 ^ 0xed5db4d0)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x270) ^ (ulonglong)_DAT_1826708c8) ^ (byte)DAT_182670adc;
  pbVar25 = (byte *)((CONCAT44(uVar5,uVar19) ^ 0xd720f9fcaae67d3f) * 0x20 +
                     (CONCAT44(uVar6,uVar5) ^ 0x7d711822d720f9f3) + *(longlong *)(lVar4 + -0x30));
  *(ulonglong *)(lVar4 + -0x248) = (ulonglong)pbVar25 ^ (ulonglong)DAT_18267094c;
  *(byte *)(lVar4 + -0x619) = *pbVar25 ^ (byte)DAT_182670928 ^ (byte)DAT_182670adc;
  *(ulonglong *)(lVar4 + -0x5c0) =
       *(longlong *)(lVar4 + -0x558) - (CONCAT44(uVar38,uVar5) ^ 0xb7c1c6eb46c29a52);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar27) * 4) = uVar18;
  return;
}



############ FUN_ 180d0a3e0 size=5088 ############

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

void FUN_180d0a3e0(void)

{
  undefined8 *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong uVar14;
  uint uVar15;
  ulonglong uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong *puVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  uVar11 = DAT_1826709b4;
  uVar9 = DAT_1826707f4;
  uVar7 = DAT_1826707ec;
  uVar8 = DAT_1826707e0;
  uVar6 = DAT_1826707bc;
  lVar3 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707ec;
  uVar16 = (ulonglong)DAT_1826707f4;
  uVar20 = (ulonglong)DAT_1826707e0;
  uVar15 = DAT_1826707f4 & DAT_1826707e0;
  uVar24 = (ulonglong)uVar15;
  uVar25 = DAT_1826707ec << 0x10 | DAT_1826707ec >> 0x10;
  uVar17 = DAT_1826707bc << 0x10 | DAT_1826707bc >> 0x10;
  uVar2 = *(uint *)(&DAT_18260f750 + (uVar29 ^ 0x4c2d2008) + (longlong)DAT_182670bf4);
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670bf4) ^ DAT_1826707bc;
  uVar28 = (ulonglong)uVar17;
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0xd88) ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  bVar13 = (byte)DAT_1826707e0;
  uVar33 = (ulonglong)uVar25;
  DAT_1826707b4 = uVar17;
  DAT_1826707c8 = uVar25;
  DAT_1826707d4 = uVar15;
  *(ulonglong *)(DAT_1826707a0 + -0x438) = uVar23 ^ CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar10 = DAT_182670810;
  uVar18 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xce0) = uVar23 >> ((bVar13 ^ 0xd) & 0x3f) ^ uVar18;
  uVar14 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x20004035)) =
       uVar23 << (((byte)uVar9 ^ 0x2d) & 0x3f) ^ uVar14;
  uVar21 = (ulonglong)uVar6;
  *(ulonglong *)(lVar3 + -0x5c0) = CONCAT44(uVar9,uVar6) ^ 0xfd7fefeffdfbfbdd | 0x9c43efe9c5abe3c9;
  puVar35 = (ulonglong *)(lVar3 - (uVar24 ^ 0x20000415));
  uVar23 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar37 = CONCAT44(DAT_182670950,DAT_182670950);
  *(ulonglong *)(lVar3 + -0x998) =
       (uVar14 ^ *puVar35 | uVar18 ^ *(ulonglong *)(lVar3 + -0xce0)) ^ uVar23;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x8c020c44)) =
       (CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar3 + -0xd88)) -
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x200045b5)) ^ uVar23) ^ uVar37;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x420) =
       (*(ulonglong *)(lVar3 + -0x998) ^ uVar23) >> ((byte)*(undefined8 *)(lVar3 + -0x658) & 0x3f);
  lVar5 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  uVar30 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0x3a763d6d)) =
       *(ulonglong *)(lVar4 + -0x588) ^ uVar30 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x998) ^ uVar23;
  uVar23 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  *(ulonglong *)(lVar5 - (uVar24 ^ 0x200001c5)) =
       (*(ulonglong *)(lVar5 + -0x660) ^ uVar26) >> ((bVar13 ^ 0x17) & 0x3f) ^ uVar23;
  lVar3 = DAT_1826707a0;
  uVar14 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  bVar31 = (byte)uVar7;
  *(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0x3a763fc5)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x4c2d2660)) ^ uVar26) << ((bVar31 ^ 6) & 0x3f) ^
       uVar14;
  uVar32 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0x20000efd)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0x8c02018c)) ^ uVar23 |
       *(ulonglong *)(lVar3 + -0x4c8) ^ uVar14) ^ uVar32;
  *(ulonglong *)(lVar3 + -0xa18) =
       *(longlong *)(lVar3 - ((ulonglong)uVar25 ^ 0x2000480d)) -
       (CONCAT44(uVar6,uVar15) ^ 0xfa5975ba10d01afc);
  uVar10 = DAT_182670878;
  uVar26 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar3 + -0x220) =
       (*(ulonglong *)(lVar3 + -0x588) ^ uVar30) - (*(ulonglong *)(lVar3 + -0x6f0) ^ uVar32) ^
       uVar26;
  uVar14 = CONCAT44(uVar10,uVar10);
  uVar30 = CONCAT44(DAT_182670954,DAT_182670954) ^ *(ulonglong *)(lVar3 + -0x7d8) ^
           *(ulonglong *)(lVar3 + -0x400) ^ uVar14 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x438) =
       (CONCAT44(uVar9,uVar17) ^ 0xc9d921526be1ca69) >>
       ((byte)*(undefined8 *)(lVar3 + -0x5c0) & 0x3f);
  uVar10 = DAT_182670a40;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar30;
  uVar27 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = (uVar30 ^ uVar14) >> ((bVar13 ^ 0x3b) & 0x3f) ^ uVar27;
  uVar23 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar19 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *puVar35 = (uVar30 ^ uVar14) << ((bVar31 ^ 0x2a) & 0x3f) ^ uVar23;
  uVar10 = DAT_182670aa0;
  lVar3 = DAT_1826707a0;
  uVar14 = *(ulonglong *)(DAT_1826707a0 + -0x400);
  uVar23 = *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x84480e2)) ^ uVar27 |
           *(ulonglong *)(DAT_1826707a0 + -0xc18) ^ uVar23;
  uVar27 = uVar23 ^ uVar19;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar27;
  uVar30 = CONCAT44(uVar10,uVar10);
  *(uint *)(lVar3 + -0x8e0) = *(uint *)(lVar3 + -0x2d4) >> 0x16;
  uVar10 = DAT_18267085c;
  *(ulonglong *)(lVar3 + -0x658) = (uVar14 ^ uVar37) - uVar23 ^ uVar30;
  uVar14 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0x3a763295)) =
       uVar27 ^ uVar14 ^ uVar19 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x220);
  uVar10 = _DAT_182670ad4;
  uVar14 = *(ulonglong *)(lVar3 + -0x998) ^ uVar14;
  *(ulonglong *)(lVar3 + -0x660) = CONCAT44(uVar8,uVar9) ^ 0xfef45eff3ffd2f1f | 0x6c940e783f7d0f0e;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x9c8) = uVar14 >> ((bVar13 ^ 3) & 0x3f) ^ uVar19;
  uVar23 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar14 << (((byte)uVar15 ^ 0x1f) & 0x3f) ^ uVar23;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0x8c02025c)) =
       (CONCAT44(uVar9,uVar6) ^ 0xdc6a9f0c50779691) >> (((byte)(uVar6 >> 0x10) ^ 0x58) & 0x3f);
  uVar10 = DAT_182670864;
  uVar27 = CONCAT44(DAT_182670968,DAT_182670968);
  uVar14 = *(ulonglong *)(lVar3 - (uVar29 ^ 0x4c2d24c8)) ^ uVar23 |
           *(ulonglong *)(lVar3 + -0x9c8) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x420) = uVar14 ^ uVar27;
  uVar22 = DAT_182670a54;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x588) = (uVar26 ^ *(ulonglong *)(lVar3 + -0x220)) - uVar14 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x7d8) =
       CONCAT44(uVar7,uVar6) ^ 0x3af9fcaa5af06e76 | CONCAT44(uVar17,uVar9) ^ 0xf23bcac2de2a1542;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x200049ed)) =
       *(ulonglong *)(lVar3 + -0x6f0) ^ CONCAT44(uVar22,uVar22) ^ uVar30 ^ uVar32 ^
       *(ulonglong *)(lVar3 + -0x658);
  lVar4 = DAT_1826707a0;
  uVar37 = *(ulonglong *)(lVar3 - (uVar21 ^ 0x84489c2)) >> 0xc ^
           ((ulonglong)uVar22 << 0x14 | (ulonglong)(uVar22 >> 0xc));
  uVar14 = *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  uVar26 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0x658);
  puVar1 = (undefined8 *)(DAT_1826707a0 + -0xb78);
  *(ulonglong *)(DAT_1826707a0 + -0x438) = uVar37 ^ CONCAT44(DAT_182670880,DAT_182670880);
  uVar10 = DAT_182670a14;
  *(ulonglong *)(lVar4 + -0x6b8) = *(ulonglong *)*puVar1 ^ uVar26;
  bVar13 = (byte)(uVar7 >> 0x10);
  uVar32 = (CONCAT44(uVar22,uVar22) ^ uVar14) << ((bVar13 ^ 0x19) & 0x3f);
  uVar14 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(lVar4 + -0xc18) = uVar32 ^ CONCAT44(uVar10,uVar10);
  uVar37 = uVar37 | uVar32;
  uVar32 = uVar37 ^ uVar14;
  uVar36 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar4 + -0xce0) = uVar32;
  uVar10 = _DAT_1826708c8;
  *(ulonglong *)(lVar4 + -0x400) = (uVar30 ^ uVar23) - uVar37 ^ uVar36;
  uVar23 = CONCAT44(uVar10,uVar10);
  uVar30 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar32 = *(ulonglong *)(lVar4 + -0x588) ^ uVar23 ^ uVar14 ^ uVar19 ^ uVar32;
  *(ulonglong *)(lVar4 + -0xd88) = uVar32;
  *(ulonglong *)(lVar4 + -0x660) = (uVar32 ^ uVar23) >> ((bVar31 ^ 0x19) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x8c0201dc)) =
       *(ulonglong *)(lVar4 - (uVar33 ^ 0x200041a5)) ^ uVar23 | uVar32 ^ uVar23;
  uVar14 = (*(ulonglong *)(lVar4 + -0xd88) ^ uVar23) << 0x27;
  uVar22 = DAT_1826707d4 ^ 0x4c3ee7e2;
  *(ulonglong *)(lVar4 + -0xa18) = uVar14 ^ CONCAT44(DAT_182670abc,DAT_182670abc);
  *(uint *)(lVar4 + -0x280) = *(uint *)(lVar4 - (uVar21 ^ 0x84485ee)) | uVar22;
  uVar11 = DAT_182670b08;
  uVar23 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  puVar34 = (ulonglong *)(lVar4 - (uVar16 ^ 0x3a7632c5));
  *puVar34 = (uVar14 | *(ulonglong *)(lVar4 + -0x660) ^ uVar30) ^ uVar23;
  lVar3 = DAT_1826707a0;
  uVar14 = (*(ulonglong *)(DAT_1826707a0 + -0x588) ^ uVar19) -
           (CONCAT44(uVar9,uVar15) ^ 0x649bd2e1f06332e9);
  *(uint *)(DAT_1826707a0 + -0xcec) = (DAT_1826707b4 ^ 0x47264567) + 0x1273bb66;
  uVar10 = DAT_182670a58;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar14 ^ CONCAT44(uVar11,uVar11);
  uVar37 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar21 ^ 0x8448e22)) =
       uVar14 - (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar23) ^ uVar37;
  uVar10 = _DAT_1826708bc;
  *(ulonglong *)(lVar3 + -0x7d8) = **(ulonglong **)(lVar3 + -0x180) ^ uVar26;
  uVar30 = CONCAT44(uVar10,uVar10);
  uVar14 = (ulonglong)DAT_182670aec;
  uVar26 = (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar23) - (CONCAT44(uVar17,uVar9) ^ 0xb7b631628b8166af)
  ;
  uVar32 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(lVar3 + -0x6f0) = uVar26 ^ uVar30;
  uVar19 = *(ulonglong *)(lVar3 + -0x400) ^ uVar32 ^ uVar36 ^ uVar27 ^
           *(ulonglong *)(lVar3 + -0x420);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar19;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0x8c020efc)) >> 0x20 ^ uVar14) >> 1;
  uVar23 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar3 + -0x438) = CONCAT44(uVar6,uVar25) ^ 0xb968c183b4e0943e | uVar26;
  uVar10 = DAT_1826709f0;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar28 ^ uVar18;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(undefined8 *)(lVar3 + -0x658) = 0xe99dcb17503d4c9e;
  uVar10 = DAT_1826709d8;
  *(ulonglong *)(lVar3 + -0xc18) = (uVar32 ^ uVar19) << 0x1f ^ uVar26;
  uVar18 = CONCAT44(uVar10,uVar10);
  uVar14 = CONCAT44(uVar25,DAT_1826707b0);
  *(ulonglong *)(lVar3 + -0xce0) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0xe625ec7a)) ^ uVar26 | uVar28) ^ uVar18;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x200045b5)) =
       (CONCAT44(uVar15,uVar7) ^ 0x5ea52eb355bfdb8e) - (uVar14 ^ 0x2e659248dd41b373);
  uVar10 = DAT_182670a80;
  lVar4 = DAT_1826707a0;
  uVar14 = (*(ulonglong *)(lVar3 + -0x400) ^ uVar36) - (CONCAT44(uVar9,uVar25) ^ 0xe1e4529804b07fb2)
  ;
  *(ulonglong *)(lVar3 + -0xd88) = uVar14 ^ CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar11 = DAT_182670af4;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x660) = uVar14 - (uVar18 ^ *(ulonglong *)(lVar4 + -0xce0)) ^ uVar28;
  uVar6 = DAT_182670a94;
  uVar23 = CONCAT44(uVar11,uVar11);
  uVar14 = (*(ulonglong *)(lVar4 - (uVar20 ^ 0x200040cd)) ^ uVar18) +
           (CONCAT44(uVar15,DAT_1826707f0) ^ 0x65dd97e3d2554055) ^ uVar23;
  *(ulonglong *)(lVar4 + -0xa18) = uVar14;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x844898a)) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0x4c2d2220)) ^ CONCAT44(uVar6,uVar6) ^ uVar14 ^ uVar23 ^
       uVar37;
  uVar26 = ((ulonglong)uVar6 << 0x1b | (ulonglong)(uVar6 >> 5)) ^
           *(ulonglong *)(lVar4 + -0x588) >> 5;
  uVar23 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar26 ^ CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar4 + -0x7d8) =
       (*(ulonglong *)(lVar4 - (uVar16 ^ 0x3a763e85)) ^ CONCAT44(uVar6,uVar6)) << 0x3b ^ uVar23;
  uVar6 = DAT_1826707e8;
  uVar7 = DAT_1826707dc;
  uVar27 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar14 = *(ulonglong *)(lVar4 - (uVar20 ^ 0x20004bf5));
  *(undefined8 *)(lVar4 + -0x420) = 0x8715be0000000000;
  uVar10 = DAT_182670814;
  *(ulonglong *)(lVar4 + -0x9c8) = (uVar14 ^ uVar23 | uVar26) ^ uVar27;
  uVar11 = DAT_182670a30;
  lVar3 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar10,uVar10);
  puVar35 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  uVar18 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0x438) =
       (uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) - (uVar27 ^ *puVar34) ^ uVar23;
  uVar20 = CONCAT44(uVar11,uVar11);
  uVar26 = CONCAT44(DAT_182670948,DAT_182670948);
  uVar14 = *puVar35 ^ uVar20 ^ uVar28 ^ uVar30 ^ *(ulonglong *)(lVar3 + -0x660);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar14;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x442d19a6)) =
       (uVar14 ^ uVar20) >> (((byte)uVar7 ^ 0xda) & 0x3f) ^ uVar26;
  uVar14 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x200049ed)) =
       (uVar20 ^ *(ulonglong *)(lVar3 + -0x6b8)) << 0x1b ^ uVar14;
  puVar34 = (ulonglong *)(lVar3 - (uVar18 ^ 0x80481c0));
  uVar20 = CONCAT44(DAT_182670828,DAT_182670828);
  uVar18 = (uVar14 ^ *puVar34 | uVar26 ^ *(ulonglong *)(lVar3 + -0x658)) ^ uVar20;
  *(ulonglong *)(lVar3 + -0xc18) = uVar18;
  uVar6 = DAT_1826707b8;
  lVar4 = DAT_1826707a0;
  *(uint *)(lVar3 + -0xb54) = (DAT_1826707f4 ^ 0xc76d4245) - *(int *)(lVar3 + -0x68c);
  uVar9 = DAT_182670984;
  uVar26 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar14 = (ulonglong)DAT_182670984;
  *(ulonglong *)(lVar4 + -0x998) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x816ba61)) ^ uVar28) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x4c3fb3e7)) ^ uVar20) ^ uVar26;
  uVar10 = DAT_1826708d8;
  uVar20 = *(ulonglong *)(lVar4 - (uVar16 ^ 0x3a763f35)) ^ uVar18 ^ CONCAT44(uVar9,uVar9) ^ uVar20 ^
           uVar23;
  *(ulonglong *)(lVar4 + -0x400) = uVar20;
  uVar11 = DAT_182670a98;
  uVar28 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0xd88) =
       ((ulonglong)(uVar9 >> 0x17) | uVar14 << 9) ^ uVar20 >> 0x17 ^ uVar28;
  uVar14 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0x200004ed)) = (uVar20 ^ CONCAT44(uVar9,uVar9)) << 0x29 ^ uVar14;
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x844861a)) =
       CONCAT44(uVar15,uVar8) ^ 0xa316203452c62 | 0x9b34c289bc98d098;
  uVar6 = DAT_1826707b0;
  uVar37 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  puVar35 = (ulonglong *)(lVar4 - (uVar33 ^ 0x200049a5));
  uVar18 = (ulonglong)DAT_1826707b0;
  *puVar35 = (uVar14 ^ *(ulonglong *)(lVar4 + -0xce0) | uVar28 ^ *(ulonglong *)(lVar4 + -0xd88)) ^
             uVar37;
  *(ulonglong *)(lVar4 + -0x4c8) = CONCAT44(uVar6,uVar8) ^ 0x8bbaf59bedbff543 | 0x310b490ada34140;
  uVar10 = DAT_1826707f8;
  lVar3 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar14 = *(ulonglong *)(DAT_1826707a0 + -0x998);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       (uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x438)) - (uVar37 ^ *puVar35) ^ uVar28;
  uVar11 = DAT_182670ae4;
  uVar7 = DAT_1826707dc;
  uVar19 = CONCAT44(uVar10,uVar10);
  uVar32 = (ulonglong)DAT_1826707dc;
  uVar24 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar20 = *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c0 ^ 0xe625e9aa)) ^ uVar19 ^ uVar26 ^
           uVar27 ^ uVar14;
  *(ulonglong *)(lVar3 + -0x420) = uVar20;
  uVar23 = (uVar20 ^ uVar19) >> (((byte)uVar15 ^ 0x25) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6f0) = (uVar19 ^ uVar20) << 0x18 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x220) = uVar23 ^ uVar24;
  uVar10 = DAT_182670aa8;
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar23 = *(ulonglong *)(lVar3 - (uVar32 ^ 0x4c3fb90f)) ^ uVar24 | uVar23;
  uVar19 = uVar23 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar19;
  uVar6 = DAT_1826708b0;
  uVar24 = CONCAT44(uVar10,uVar10);
  uVar20 = (ulonglong)DAT_1826708b0;
  *(ulonglong *)(DAT_1826707a0 + -0x658) = (uVar26 ^ uVar14) - uVar23 ^ uVar24;
  uVar10 = _DAT_1826709e0;
  lVar3 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar14 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  *puVar34 = *(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0x3aed8bde)) ^ uVar26 ^ uVar27 ^ uVar28 ^
             uVar19;
  uVar26 = uVar26 ^ *(ulonglong *)(lVar3 + -0x5c0);
  uVar19 = (ulonglong)DAT_1826707e8;
  uVar18 = uVar26 >> ((bVar13 ^ 0x19) & 0x3f);
  bVar13 = (byte)DAT_1826707e8;
  *(ulonglong *)(lVar3 + -0x660) = uVar18 ^ uVar14;
  uVar23 = CONCAT44(uVar6,uVar6);
  uVar14 = uVar26 << ((bVar13 ^ 0xf2) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar3 + -0xc18) = uVar14;
  *(ulonglong *)(lVar3 + -0x400) = (uVar14 >> 0x20 ^ uVar20) >> 0x13;
  uVar11 = DAT_182670a1c;
  uVar6 = DAT_1826707d8;
  lVar4 = DAT_1826707a0;
  uVar14 = CONCAT44(uVar10,uVar10);
  uVar26 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar3 + -0xa18) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d8 ^ 0xf3458522)) ^ uVar23 | uVar18) ^ uVar14;
  uVar20 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0xce0) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x7d8)) -
       (*(ulonglong *)(lVar4 - (uVar16 ^ 0x3a763115)) ^ uVar14) ^ uVar20;
  lVar3 = DAT_1826707a0;
  uVar14 = (ulonglong)DAT_1826709a4;
  uVar23 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ac ^ 0x8048989)) =
       uVar23 ^ uVar24 ^ uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0x588) ^
       *(ulonglong *)(DAT_1826707a0 + -0x658);
  uVar10 = DAT_182670a28;
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 - (uVar21 ^ 0x844889a));
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar21 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0x4c2d2d88)) >> 0x20 ^ uVar14) >> 0x19 ^ uVar28;
  uVar23 = (*(ulonglong *)(lVar3 - (uVar19 ^ 0x442d1276)) ^ uVar23) << (((byte)uVar7 ^ 0xf8) & 0x3f)
  ;
  *(ulonglong *)(lVar3 + -0x438) = uVar23 ^ uVar21;
  uVar10 = DAT_182670854;
  uVar14 = (ulonglong)DAT_1826707c4;
  uVar29 = (*(ulonglong *)(lVar3 - (uVar32 ^ 0x4c3fbb37)) ^ uVar28 | uVar23) ^ uVar30;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar29;
  uVar23 = (ulonglong)DAT_1826707e4;
  *(uint *)(lVar3 + -0xa34) = *(int *)(lVar3 - (uVar14 ^ 0x8448f9a)) * (uVar6 ^ 0x3660c8e3);
  uVar11 = _DAT_182670b10;
  *(ulonglong *)(lVar3 + -0x420) =
       (*(ulonglong *)(lVar3 - (uVar23 ^ 0x76cc0a22)) ^ uVar24) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b8 ^ 0x816b5c9)) ^ uVar30) ^
       CONCAT44(uVar10,uVar10);
  uVar14 = *(ulonglong *)(lVar3 + -0xce0);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar2 ^ uVar25;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0xf3458b1a)) =
       CONCAT44(uVar11,uVar11) ^ uVar20 ^ uVar29 ^ uVar30 ^ uVar14;
  return;
}



############ FUN_ 180c5f110 size=5286 ############

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

void FUN_180c5f110(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  byte *pbVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  uint uVar23;
  ulonglong *puVar24;
  ulonglong *puVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  longlong *plVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong *puVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  uint uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar56;
  uint uVar57;
  ulonglong uVar58;
  ulonglong uVar59;
  byte local_f0;
  byte local_e8;
  byte local_b8;
  
  uVar13 = DAT_1826707ec;
  uVar12 = DAT_1826707e0;
  uVar11 = DAT_1826707d0;
  uVar20 = DAT_1826707cc;
  uVar9 = DAT_1826707c0;
  uVar8 = DAT_1826707b0;
  lVar6 = DAT_1826707a0;
  uVar54 = (ulonglong)DAT_1826707d0;
  uVar51 = (ulonglong)DAT_1826707b0;
  uVar30 = (ulonglong)DAT_1826707cc;
  uVar34 = (ulonglong)DAT_1826707c0;
  uVar57 = *(uint *)(&DAT_18260f758 + DAT_182670cd8) ^ DAT_1826707c4;
  uVar33 = (ulonglong)DAT_1826707e0;
  uVar36 = DAT_1826707cc + DAT_1826707c0;
  uVar55 = DAT_1826707bc - DAT_1826707e0;
  uVar23 = DAT_1826707c4 | DAT_1826707d0;
  uVar40 = (ulonglong)uVar23;
  uVar47 = DAT_1826707ec << 0x10 | DAT_1826707ec >> 0x10;
  uVar41 = DAT_1826707b0 << 0x10 | DAT_1826707b0 >> 0x10;
  uVar19 = *(uint *)(&DAT_18260f760 + DAT_182670cd8) ^ DAT_1826707d0;
  uVar52 = CONCAT44(DAT_182670860,DAT_182670860);
  DAT_1826707a8 = uVar47;
  DAT_1826707b4 = uVar23;
  DAT_1826707b8 = uVar36;
  DAT_1826707dc = uVar41;
  DAT_1826707e8 = uVar55;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b0 ^ 0xefdfda77)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xede3ade)) ^ uVar52) >>
       (((byte)DAT_182670a9c ^ *(byte *)(DAT_1826707a0 + -0xc18)) & 0x3f);
  puVar1 = (ulonglong *)(lVar6 + -0xce0);
  uVar27 = (ulonglong)uVar13;
  bVar26 = (byte)uVar13;
  uVar58 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar28 = *puVar1;
  uVar42 = (*puVar1 ^ uVar58) >> ((bVar26 ^ 0xda) & 0x3f);
  puVar21 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  *puVar21 = uVar42 ^ CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar28 = (uVar28 ^ uVar58) << (((byte)uVar20 ^ 0x1a) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar28 ^ CONCAT44(DAT_182670888,DAT_182670888);
  uVar15 = DAT_182670acc;
  lVar6 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670904,DAT_182670904);
  uVar44 = (ulonglong)uVar36;
  puVar22 = (ulonglong *)(DAT_1826707a0 + -0x220);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x400);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = (uVar28 | uVar42) ^ uVar31;
  puVar3 = (ulonglong *)(lVar6 + -0x660);
  uVar59 = CONCAT44(uVar15,uVar15);
  uVar53 = (uVar52 ^ *puVar22) - (*(ulonglong *)(lVar6 - (uVar44 ^ 0xefbd5e52)) ^ uVar31) ^ uVar59;
  uVar48 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *puVar3 = uVar53;
  uVar15 = DAT_1826709cc;
  uVar14 = DAT_1826707fc;
  uVar28 = (ulonglong)DAT_1826707fc;
  uVar52 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar5 = DAT_1826707fc >> 0x17;
  uVar38 = *(ulonglong *)(lVar6 - (uVar34 ^ 0xab381651)) ^ uVar48 ^ uVar52 ^ uVar31 ^ *puVar2;
  *(ulonglong *)(lVar6 + -0x588) = uVar38;
  uVar45 = CONCAT44(uVar15,uVar15);
  *puVar1 = ((ulonglong)uVar5 | uVar28 << 9) ^ uVar38 >> 0x17 ^ uVar45;
  uVar5 = DAT_1826707bc;
  uVar42 = (ulonglong)DAT_1826707bc;
  local_f0 = (byte)uVar8;
  uVar52 = (uVar52 ^ uVar38) << ((local_f0 ^ 0xd6) & 0x3f);
  *puVar21 = uVar52 ^ CONCAT44(DAT_182670978,DAT_182670978);
  uVar10 = DAT_1826707c4;
  lVar6 = DAT_1826707a0;
  bVar29 = (byte)uVar23;
  uVar28 = *puVar2;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (CONCAT44(uVar12,uVar55) ^ 0x72bfd1d64c42d7b3) >> ((bVar29 ^ 199) & 0x3f);
  uVar15 = DAT_1826708d4;
  uVar56 = CONCAT44(DAT_18267096c,DAT_18267096c);
  uVar52 = *(ulonglong *)(lVar6 - ((ulonglong)uVar41 ^ 0xdfffe33f)) ^ uVar45 | uVar52;
  *(ulonglong *)(lVar6 + -0x220) = uVar52 ^ uVar56;
  uVar17 = DAT_182670a34;
  uVar16 = DAT_182670a0c;
  uVar35 = CONCAT44(uVar15,uVar15);
  uVar38 = (ulonglong)DAT_182670a34;
  *(ulonglong *)(lVar6 + -0xd88) = (uVar48 ^ uVar28) - uVar52 ^ uVar35;
  uVar45 = CONCAT44(uVar16,uVar16);
  uVar28 = CONCAT44(uVar17,uVar17);
  *puVar1 = *(ulonglong *)(lVar6 + -0x6f0) ^ uVar45 ^ uVar28 ^ uVar59 ^ uVar53;
  plVar32 = (longlong *)(lVar6 - (uVar34 ^ 0xab381731));
  *plVar32 = -0x7108a69532000000;
  uVar52 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0xfbfffbe7)) = (*puVar1 >> 0x20 ^ uVar38) >> 8 ^ uVar52;
  lVar6 = DAT_1826707a0;
  uVar38 = (*puVar1 ^ uVar28) << (((byte)uVar36 ^ 0x92) & 0x3f);
  uVar48 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  puVar22 = (ulonglong *)(DAT_1826707a0 + -0xc18);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar38 ^ CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar38 = *puVar22 ^ uVar52 | uVar38;
  *puVar2 = uVar38 ^ uVar48;
  uVar15 = DAT_182670950;
  uVar28 = *puVar3;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 + -0x418);
  uVar52 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0x6f0) = (uVar59 ^ uVar28) - uVar38 ^ uVar52;
  *plVar32 = uVar38 << ((*(byte *)(lVar6 - (uVar54 ^ 0xc020d88)) ^ (byte)uVar14) & 0x3f);
  uVar53 = CONCAT44(DAT_182670900,DAT_182670900);
  puVar39 = (ulonglong *)(lVar6 - (uVar42 ^ 0x600a0538));
  *(ulonglong *)(lVar6 - (uVar30 ^ 0x448544e1)) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar47 ^ 0xf7ffffff)) ^ uVar53 ^ uVar48 ^ uVar35 ^
       *puVar39;
  uVar49 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar38 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar28 = *puVar1;
  uVar48 = (*puVar1 ^ uVar53) >> ((bVar29 ^ 0xca) & 0x3f);
  *(ulonglong *)(lVar6 + -0x7d8) = uVar48 ^ uVar49;
  uVar59 = (uVar28 ^ uVar53) << (((byte)uVar12 ^ 0x85) & 0x3f);
  *(ulonglong *)(lVar6 + -0xc18) = uVar59 ^ uVar38;
  lVar7 = DAT_1826707a0;
  uVar59 = uVar59 | uVar48;
  uVar28 = *(ulonglong *)(DAT_1826707a0 + -0xd88);
  *puVar3 = (CONCAT44(uVar11,uVar55) ^ 0x8e7a3238ae5d984d) << ((byte)*puVar21 & 0x3f);
  uVar15 = DAT_18267099c;
  uVar53 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar6 + -0x588) = uVar59 ^ uVar53;
  uVar48 = CONCAT44(uVar15,uVar15);
  uVar38 = (ulonglong)DAT_182670abc;
  uVar46 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *(ulonglong *)(lVar7 - (uVar30 ^ 0x44854c01)) = (uVar35 ^ uVar28) - uVar59 ^ uVar48;
  puVar37 = (ulonglong *)(lVar7 - (uVar42 ^ 0x600a0a90));
  *(ulonglong *)(lVar7 - (uVar33 ^ 0xcc5c8569)) =
       *(ulonglong *)(lVar7 - (uVar44 ^ 0xefbd5f7a)) ^ uVar46 ^ uVar52 ^ uVar56 ^ *puVar37;
  uVar43 = CONCAT44(DAT_182670834,DAT_182670834);
  *puVar3 = (*puVar1 >> 0x20 ^ uVar38) >> 0x19 ^ uVar43;
  puVar24 = (ulonglong *)(lVar7 - ((ulonglong)DAT_1826707c4 ^ 0xadc3726));
  *puVar24 = 0x3ec558d959280808;
  uVar38 = (*puVar1 ^ uVar46) << (((byte)uVar20 ^ 6) & 0x3f);
  uVar46 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar28 = *puVar3;
  *(ulonglong *)(lVar7 + -0xc18) = uVar38 ^ uVar46;
  *(int *)(lVar7 + -0x7e4) = *(int *)(lVar7 + -0x540) * 0x61356747;
  uVar59 = CONCAT44(DAT_182670850,DAT_182670850);
  puVar25 = (ulonglong *)(lVar7 - (uVar34 ^ 0xab381c01));
  uVar35 = CONCAT44(DAT_182670910,DAT_182670910);
  *puVar25 = (uVar38 | uVar43 ^ uVar28) ^ uVar59;
  lVar6 = DAT_1826707a0;
  puVar22 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (*(ulonglong *)(DAT_1826707a0 + -0x6f0) ^ uVar52) -
       (uVar59 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) ^ uVar35;
  puVar50 = (ulonglong *)(lVar6 - (uVar40 ^ 0xede3f26));
  *(ulonglong *)(lVar6 + -0x7d8) = uVar59 ^ uVar48 ^ uVar56 ^ *puVar22 ^ *puVar2;
  uVar28 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *puVar1 = (uVar56 ^ *puVar50) >> ((bVar29 ^ 0xf0) & 0x3f) ^ uVar28;
  uVar15 = _DAT_1826709e0;
  local_e8 = (byte)(uVar8 >> 0x10);
  uVar38 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar55 ^ 0x93ad78ff)) ^ uVar56) <<
           ((local_e8 ^ 0xed) & 0x3f);
  *puVar3 = uVar38 ^ uVar31;
  lVar6 = DAT_1826707a0;
  uVar59 = CONCAT44(uVar15,uVar15);
  uVar38 = *(ulonglong *)(DAT_1826707a0 - (uVar51 ^ 0xefdfd31f)) ^ uVar28 | uVar38;
  uVar28 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar38 ^ uVar59;
  uVar15 = DAT_182670a50;
  uVar31 = (uVar48 ^ *puVar2) - (CONCAT44(uVar10,uVar47) ^ 0x5431d912279cc11b);
  *(ulonglong *)(lVar6 + -0x6f0) = uVar31 ^ uVar28;
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0xc020588)) = uVar31 - uVar38 ^ uVar43;
  *puVar50 = *puVar21 << (((byte)uVar36 ^ 0xa6) & 0x3f);
  uVar56 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *puVar1 = (uVar59 ^ *(ulonglong *)(lVar6 + -0xc18)) -
            (CONCAT44(uVar47,uVar13) ^ 0xcc4bc2d94a08aa5d) ^ uVar56;
  uVar31 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  puVar50 = (ulonglong *)(lVar6 - (uVar30 ^ 0x44854d89));
  uVar28 = *(ulonglong *)(lVar6 + -0x220);
  uVar38 = uVar31 ^ uVar35 ^ *puVar50 ^ uVar53 ^ *puVar37;
  uVar53 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *puVar3 = uVar38;
  uVar48 = (uVar31 ^ uVar38) << 0x30;
  *puVar2 = (uVar38 ^ uVar31) >> ((bVar26 ^ 0xef) & 0x3f) ^ uVar53;
  puVar37 = (ulonglong *)(lVar6 - (uVar44 ^ 0xefbd5d8a));
  *(ulonglong *)(lVar6 + -0x6f0) = uVar48 ^ CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar48 = uVar53 ^ *puVar37 | uVar48;
  *puVar21 = uVar48 ^ CONCAT44(DAT_182670880,DAT_182670880);
  uVar15 = DAT_182670a80;
  uVar28 = (uVar35 ^ uVar28) - (CONCAT44(uVar12,uVar13) ^ 0x17cee01cdf4fc460);
  *(ulonglong *)(lVar6 + -0x7d8) = uVar28 ^ CONCAT44(DAT_182670828,DAT_182670828);
  uVar35 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar6 + -0xc18) = uVar28 - uVar48 ^ uVar35;
  uVar10 = DAT_1826709d4;
  uVar31 = (ulonglong)DAT_1826709d4;
  *(ulonglong *)(lVar6 + -0x588) = CONCAT44(uVar8,uVar11) ^ 0xeff9fbba5fed6bbb | 0x6fb8f9b057a568ab;
  uVar51 = CONCAT44(uVar10,uVar10);
  uVar38 = CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar28 = (CONCAT44(uVar13,uVar36) ^ 0xbe22681163b98dd6) + uVar48 ^ uVar38;
  puVar22 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar47 ^ 0xf7fff677));
  *puVar3 = uVar28;
  uVar38 = *puVar22 ^ uVar51 ^ uVar28 ^ uVar38 ^ uVar43;
  uVar53 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *puVar2 = uVar38;
  lVar6 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xede3e0e)) = uVar38 >> 0x20 ^ uVar53 ^ uVar31;
  uVar40 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar48 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *(ulonglong *)(lVar6 + -0x220) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0xa1a58400)) ^ uVar51) << (((byte)uVar55 ^ 7) & 0x3f) ^
       uVar40;
  uVar10 = DAT_1826707c4;
  uVar28 = *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707c4 ^ 0xadc32de)) ^ uVar40 |
           uVar53 ^ *(ulonglong *)(lVar6 + -0x6f0);
  *(ulonglong *)(lVar6 + -0x7d8) = uVar28 ^ uVar48;
  uVar31 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar6 - (uVar44 ^ 0xefbd5c02)) =
       (uVar43 ^ *(ulonglong *)(lVar6 + -0xd88)) - uVar28 ^ uVar31;
  *puVar21 = CONCAT44(uVar8,uVar23) ^ CONCAT44(uVar20,uVar9) ^ 0xd8024088e39c6cad;
  lVar7 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xcc5c8fe9)) =
       uVar38 ^ uVar35 ^ uVar56 ^ *puVar1 ^ *(ulonglong *)(lVar6 + -0xc18);
  uVar28 = (ulonglong)DAT_1826707d4;
  uVar40 = CONCAT44(DAT_182670868,DAT_182670868);
  *puVar37 = (uVar38 ^ *puVar3) >> (((byte)uVar10 ^ 0xde) & 0x3f) ^ uVar40;
  *(ulonglong *)(lVar7 - (uVar28 ^ 0x7b3c2a87)) = (uVar38 ^ *puVar3) << 0x20 ^ uVar45;
  uVar15 = DAT_182670954;
  uVar51 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar40 = *(ulonglong *)(lVar7 - (uVar27 ^ 0xfbfff10f)) ^ uVar45 | uVar40 ^ *puVar2;
  uVar38 = uVar40 ^ uVar51;
  *(ulonglong *)(lVar7 + -0x220) = uVar38;
  uVar28 = (ulonglong)DAT_1826709f4;
  uVar53 = CONCAT44(uVar15,uVar15);
  uVar45 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar38 = uVar51 ^ uVar31 ^ *(ulonglong *)(lVar7 + -0x588) ^ uVar45 ^ uVar38;
  uVar59 = (uVar35 ^ *(ulonglong *)(lVar7 + -0xc18)) - uVar40 ^ uVar53;
  *puVar1 = uVar38;
  local_b8 = (byte)uVar11;
  *puVar21 = uVar59;
  uVar16 = DAT_182670878;
  lVar6 = DAT_1826707a0;
  uVar45 = (uVar38 ^ uVar45) << ((local_b8 ^ 6) & 0x3f);
  uVar40 = (uVar38 >> 0x20 ^ uVar28) >> 0x1a;
  uVar38 = CONCAT44(DAT_182670988,DAT_182670988);
  uVar28 = *(ulonglong *)(DAT_1826707a0 + -0x588);
  *puVar3 = uVar40 ^ uVar38;
  uVar15 = DAT_182670830;
  *puVar2 = uVar45 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_182670968;
  uVar51 = CONCAT44(uVar15,uVar15);
  uVar40 = uVar40 | uVar45;
  *(ulonglong *)(lVar6 + -0x6f0) = uVar40 ^ uVar51;
  uVar18 = DAT_182670a38;
  uVar45 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 + -0xd88) = (uVar31 ^ uVar28) - uVar40 ^ uVar45;
  lVar6 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar18,uVar18);
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xab381d91)) =
       uVar53 ^ uVar48 ^ uVar59 ^ uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar28 = *(ulonglong *)(lVar6 + -0xc18);
  uVar48 = (ulonglong)DAT_1826707ac;
  uVar31 = (*(ulonglong *)(lVar6 + -0xc18) ^ uVar40) >> ((bVar26 ^ 0xe9) & 0x3f);
  *(ulonglong *)(lVar6 + -0x220) = uVar31 ^ CONCAT44(DAT_182670a48,DAT_182670a48);
  *puVar1 = *(ulonglong *)(lVar6 - (uVar48 ^ 0xfceb6b47)) ^ uVar53 |
            CONCAT44(uVar20,uVar12) ^ 0xaf9e4e9a6c9fbaa6;
  uVar10 = DAT_1826707c8;
  uVar8 = DAT_1826707bc;
  uVar34 = (ulonglong)DAT_1826707c8;
  uVar20 = DAT_1826707c4 ^ 0x18c756d8;
  uVar28 = (uVar28 ^ uVar40) << (((byte)uVar55 ^ 0xd) & 0x3f);
  *puVar2 = uVar28 ^ uVar58;
  uVar15 = DAT_182670804;
  *(uint *)(lVar6 + -0x68c) = uVar8 ^ 0x77e48585 | uVar20;
  uVar40 = CONCAT44(uVar15,uVar15);
  uVar28 = (uVar28 | uVar31) ^ uVar40;
  *puVar3 = uVar28;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (uVar53 ^ *puVar21) - (*(ulonglong *)(lVar6 - (uVar42 ^ 0x600a0ed0)) ^ uVar40) ^ uVar49;
  lVar6 = DAT_1826707a0;
  uVar48 = CONCAT44(DAT_182670844,DAT_182670844);
  pbVar4 = (byte *)(DAT_1826707a0 + -0xc18);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       *(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar28 ^ uVar48 ^ uVar40 ^ uVar45;
  uVar15 = DAT_18267089c;
  *puVar1 = (CONCAT44(uVar10,uVar5) ^ 0xe5fa7d4d0268bed6) << ((*pbVar4 ^ (byte)uVar18) & 0x3f);
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar40 = CONCAT44(uVar23,DAT_1826707f4);
  *(ulonglong *)(lVar6 - (uVar54 ^ 0xc020a20)) =
       (uVar48 ^ *(ulonglong *)(lVar6 + -0x7d8)) >> ((local_e8 ^ 0xf1) & 0x3f) ^ uVar31;
  uVar28 = *(ulonglong *)(lVar6 + -0x7d8);
  uVar42 = *(ulonglong *)(lVar6 + -0x220);
  *puVar2 = uVar40 ^ CONCAT44(uVar10,uVar13) ^ 0xb7035180cd1b9088;
  lVar7 = DAT_1826707a0;
  uVar40 = (uVar48 ^ uVar28) << ((local_f0 ^ 0xed) & 0x3f);
  uVar28 = *(ulonglong *)(lVar6 + -0xd88);
  *puVar21 = uVar40 ^ CONCAT44(DAT_1826709b8,DAT_1826709b8);
  uVar40 = uVar40 | uVar31 ^ uVar42;
  *puVar3 = uVar40 ^ uVar52;
  uVar15 = DAT_1826708c4;
  uVar42 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  *(ulonglong *)(lVar6 + -0xc18) = (uVar28 ^ uVar45) - uVar40 ^ uVar42;
  uVar5 = DAT_1826707d8;
  uVar45 = CONCAT44(uVar15,uVar15);
  uVar51 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707d8 ^ 0xcf01f3d3)) ^ uVar49 ^
           *(ulonglong *)(lVar7 + -0x588) ^ uVar45 ^ uVar51;
  uVar40 = CONCAT44(DAT_18267093c,DAT_18267093c);
  *puVar1 = uVar51;
  uVar15 = DAT_182670838;
  bVar26 = (byte)DAT_1826707e4;
  uVar28 = (uVar51 ^ uVar45) >> ((bVar26 ^ 0x6b) & 0x3f);
  *(ulonglong *)(lVar7 + -0x7d8) = (uVar51 ^ uVar45) << 0x34 ^ uVar38;
  *puVar2 = uVar28 ^ uVar40;
  uVar16 = DAT_18267087c;
  uVar45 = CONCAT44(uVar15,uVar15);
  uVar28 = *puVar24 ^ uVar38 | uVar28;
  uVar38 = uVar28 ^ uVar45;
  *(ulonglong *)(lVar7 + -0x220) = uVar38;
  uVar40 = CONCAT44(uVar16,uVar16);
  *puVar21 = (uVar49 ^ *(ulonglong *)(lVar7 + -0x588)) - uVar28 ^ uVar40;
  uVar28 = CONCAT44(DAT_182670840,DAT_182670840);
  *(ulonglong *)(lVar7 - (uVar27 ^ 0xfbfffa77)) =
       *(ulonglong *)(lVar7 - (uVar44 ^ 0xefbd5592)) ^ uVar28 ^ uVar45 ^ uVar42 ^ uVar38;
  uVar44 = (uVar28 ^ *puVar25) >> ((bVar26 ^ 0x7e) & 0x3f);
  *(ulonglong *)(lVar7 + -0x6f0) = uVar44 ^ CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *puVar1 = CONCAT44(uVar9,uVar41) ^ 0xac5158709495993b;
  uVar15 = DAT_182670ad0;
  uVar28 = (*(ulonglong *)(lVar7 - (uVar30 ^ 0x44854589)) ^ uVar28) << (((byte)uVar5 ^ 4) & 0x3f);
  *(ulonglong *)(lVar7 + -0x7d8) = uVar28 ^ CONCAT44(DAT_1826708c0,DAT_1826708c0);
  *puVar2 = (uVar28 | uVar44) ^ uVar35;
  uVar16 = DAT_1826709dc;
  uVar28 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar7 + -0x588) =
       (*(ulonglong *)(lVar7 + -0xc18) ^ uVar42) - (CONCAT44(uVar36,uVar23) ^ 0x4a49b14875fe4e33) ^
       uVar28;
  uVar15 = DAT_1826708b0;
  uVar42 = CONCAT44(DAT_1826707d4,uVar47);
  *(ulonglong *)(lVar7 - (uVar33 ^ 0xcc5c8ba9)) =
       (*puVar50 ^ uVar28) - (*(ulonglong *)(lVar7 - (uVar34 ^ 0xf523cb01)) ^ uVar35) ^
       CONCAT44(uVar16,uVar16);
  uVar28 = *puVar21;
  *puVar1 = (uVar35 ^ *puVar2) - (uVar42 ^ 0x9ccae54a240f3587) ^ uVar46;
  *puVar39 = CONCAT44(uVar15,uVar15) ^ uVar52 ^ uVar28 ^ *puVar3 ^ uVar40;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar57;
  return;
}



############ FUN_ 180ccfbe0 size=4213 ############

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

void FUN_180ccfbe0(void)

{
  uint *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  uint uVar15;
  uint uVar16;
  undefined8 *puVar17;
  byte *pbVar18;
  ulonglong uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint *puVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  
  bVar3 = DAT_182670ad4;
  uVar10 = DAT_1826709d4;
  uVar9 = DAT_1826707f4;
  uVar24 = DAT_1826707ec;
  uVar8 = DAT_1826707e0;
  uVar7 = DAT_1826707dc;
  uVar25 = DAT_1826707d0;
  uVar6 = DAT_1826707b0;
  lVar4 = DAT_1826707a0;
  uVar12 = (ulonglong)DAT_1826707e0;
  uVar23 = (ulonglong)DAT_1826707f4;
  uVar14 = (ulonglong)DAT_1826707dc;
  uVar35 = (ulonglong)DAT_1826707d0;
  uVar34 = DAT_1826707f4 + DAT_1826707e0;
  uVar19 = (ulonglong)DAT_1826707b0;
  uVar31 = DAT_1826707dc - DAT_1826707d0;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670e34);
  uVar21 = DAT_1826707ec | DAT_1826707b0;
  uVar11 = *(uint *)(&DAT_18260f750 + (uVar12 ^ 0xa3b193e9) + (longlong)DAT_182670e34) ^
           DAT_1826707f4;
  uVar13 = (ulonglong)DAT_1826707ec;
  uVar28 = (ulonglong)uVar31;
  uVar33 = (ulonglong)uVar21;
  DAT_1826707bc = uVar31;
  DAT_1826707c8 = uVar34;
  DAT_1826707e8 = uVar21;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ec ^ 0xb1a3fd83)) =
       (CONCAT44(DAT_1826707b0,uVar21) ^ 0x8856150188a7dc1b) + 0xd968af0328060a99;
  *(byte *)(lVar4 - ((ulonglong)uVar31 ^ 0xc000015a)) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x270) ^ (ulonglong)DAT_18267089c) ^ bVar3 ^
       (byte)DAT_182670adc;
  uVar16 = DAT_182670924;
  *(undefined1 *)(*(ulonglong *)(lVar4 + -0x20) ^ (ulonglong)DAT_182670960) = 0x56;
  uVar27 = (uint)(*(byte *)(lVar4 + -0x15a) ^ bVar3);
  uVar15 = DAT_182670930 ^ *(uint *)(lVar4 + -0x9ec);
  *(uint *)(lVar4 + -0x7e4) = uVar27 ^ uVar10;
  *(uint *)(lVar4 + -0x3d4) = uVar15 + (uVar25 ^ 0x34dbb29c) ^ DAT_182670ac8;
  *(uint *)(lVar4 - ((ulonglong)uVar9 ^ 0xa3b19ffd)) =
       uVar27 << (((byte)uVar7 ^ 0xae) & 0x1f) ^ uVar16;
  uVar16 = (*(uint *)(lVar4 + -0x3d4) ^ DAT_182670ac8) - (uVar16 ^ *(uint *)(lVar4 + -0xc04)) ^
           DAT_1826709f8;
  *(uint *)(lVar4 + -0xcec) = uVar16;
  *(ulonglong *)(lVar4 + -0x660) =
       (CONCAT44(uVar25,uVar25) ^ 0xa44410c373fae82f) - *(longlong *)(lVar4 + -0x420);
  uVar15 = DAT_182670a1c;
  *(uint *)(lVar4 + -0x398) =
       (uVar16 ^ DAT_1826709f8) * (DAT_182670a1c ^ *(uint *)(lVar4 + -0x2d4)) ^ DAT_182670a00;
  uVar16 = DAT_182670864;
  *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0x2a5b65cb)) =
       (*(uint *)(lVar4 - (uVar14 ^ 0xbffff85b)) ^ uVar10) * 0x1a ^ DAT_182670864;
  uVar10 = DAT_182670878;
  uVar16 = (*(uint *)(lVar4 + -0x398) ^ DAT_182670a00) + (uVar16 ^ *(uint *)(lVar4 + -0x540)) ^
           DAT_182670878;
  *(longlong *)(lVar4 + -0xb70) = *(longlong *)(lVar4 + -0x890) + *(longlong *)(lVar4 + -0x7d8);
  uVar26 = DAT_182670a28;
  *(uint *)(lVar4 - (uVar12 ^ 0xa3b19fcd)) = uVar16;
  lVar5 = DAT_1826707a0;
  *(uint *)(lVar4 + -0xa34) =
       (*(uint *)(lVar4 + -0xc34) ^ uVar10) << (((byte)uVar31 ^ 0xd) & 0x1f) ^ uVar26;
  puVar29 = (uint *)(lVar4 - ((ulonglong)uVar34 ^ 0x4763217e));
  *puVar29 = (*(uint *)(lVar4 + -0xc34) ^ uVar10) >> (((byte)uVar9 ^ 0xea) & 0x1f) ^ DAT_182670a18;
  uVar16 = *(uint *)(lVar5 + -0x2d4);
  *(uint *)(lVar4 + -0x280) =
       (*(uint *)(lVar4 + -0xa34) ^ uVar26 | *(uint *)(lVar4 + -0x68c) ^ DAT_182670a18) ^
       DAT_1826708a8;
  uVar16 = (*(uint *)(lVar4 + -0xb54) ^ DAT_182670848) + (uVar15 ^ uVar16) ^ DAT_182670a6c;
  *(uint *)(lVar5 + -0x43c) = uVar16;
  uVar27 = DAT_182670844;
  uVar10 = DAT_1826707f8;
  uVar22 = (ulonglong)DAT_182670a80;
  uVar30 = uVar16 ^ DAT_182670a6c ^ uVar26;
  *(ulonglong *)(lVar5 + -0x5c0) = 0x7cc259c933c00c11 >> (((byte)uVar21 ^ 0x95) & 0x3f);
  *(uint *)(lVar5 + -0xc0c) = uVar30;
  uVar16 = DAT_1826707c0;
  uVar15 = *(uint *)(lVar5 - (uVar12 ^ 0xa3b19179)) ^ DAT_1826708fc ^ DAT_1826708a8;
  uVar14 = (ulonglong)DAT_1826707c0;
  *(uint *)(lVar5 + -0x8e0) = uVar15;
  *(uint *)(lVar5 + -0x42c) = uVar30 ^ uVar10 ^ uVar26;
  uVar32 = ~uVar16;
  *(uint *)(lVar5 + -0x9ec) = uVar15 ^ uVar27 ^ DAT_1826708fc;
  lVar4 = DAT_1826707a0;
  DAT_1826707e4 = uVar32;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar32 ^ 0x66c4af4)) =
       *(longlong *)(DAT_1826707a0 - ((ulonglong)uVar32 ^ 0x66c4e6c)) +
       (CONCAT44(uVar16,uVar32) ^ 0xf993b1a3066c4e5c) * 0x20 +
       (CONCAT44(uVar32,uVar16) ^ 0x66c4e5cf993b1a6) ^ uVar22;
  uVar15 = DAT_1826708ac;
  bVar3 = (byte)DAT_1826707f4;
  uVar30 = DAT_1826708ac & 0xff;
  *(ulonglong *)(lVar4 + -0x6f0) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar25 ^ 0xfffffaf7)) ^ CONCAT44(uVar16,uVar16) ^
       0x5293ee438c079f9a;
  *(byte *)(lVar4 + -0x751) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x4a8) ^ uVar22) ^ (byte)uVar15 ^ (byte)DAT_182670adc;
  uVar26 = DAT_1826709c8;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xbffffecf)) ^ (ulonglong)DAT_1826708b0) =
       bVar3 ^ 0xf5;
  *(ulonglong *)(lVar4 + -0xcf8) =
       CONCAT44(uVar6,uVar25) ^ 0xa65a5a99335ced20 | CONCAT44(uVar21,uVar24) ^ 0xaae24ecf07668c36;
  uVar15 = DAT_182670834;
  lVar5 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar32 ^ 0x66c4d88)) =
       *(byte *)(lVar4 - (uVar28 ^ 0xc0000751)) ^ uVar30 ^ DAT_182670834;
  *(ulonglong *)(lVar5 + -0xce0) =
       (CONCAT44(uVar34,uVar16) ^ 0x9386b1832bde77e8) - *(longlong *)(lVar5 - (uVar23 ^ 0xa3b196a1))
  ;
  *(uint *)(lVar5 - ((ulonglong)uVar32 ^ 0x66c4258)) =
       (uVar27 ^ *(uint *)(lVar5 + -0x9ec)) + (uVar7 ^ 0x74dbb29c) ^ uVar26;
  uVar27 = DAT_182670944;
  lVar4 = DAT_1826707a0;
  puVar17 = (undefined8 *)(DAT_1826707a0 - (uVar19 ^ 0x2a5b623b));
  *(uint *)(DAT_1826707a0 + -0xcec) =
       (*(uint *)(lVar5 - (uVar12 ^ 0xa3b1902d)) ^ uVar15) << (((byte)uVar21 ^ 0x8a) & 0x1f) ^
       DAT_182670944;
  *puVar17 = 0x3ce57bf245570000;
  uVar16 = DAT_1826708c0;
  uVar27 = (uVar26 ^ *(uint *)(lVar4 + -0xc04)) - (uVar27 ^ *(uint *)(lVar4 + -0xcec)) ^
           DAT_18267085c;
  *(uint *)(lVar4 + -0x7e4) = uVar27;
  uVar27 = uVar27 ^ DAT_18267085c;
  *(ulonglong *)(lVar4 + -0xd38) =
       (CONCAT44(uVar34,uVar8) ^ 0xc732f2e9f3877627) >>
       ((byte)*(undefined8 *)(lVar4 + -0x6f0) & 0x3f);
  *(uint *)(lVar4 - (uVar23 ^ 0xa3b19061)) =
       uVar27 * (*(uint *)(lVar4 + -0x42c) ^ uVar10) ^ DAT_182670a94;
  *(uint *)(lVar4 - (uVar28 ^ 0xc0000540)) =
       (*(uint *)(lVar4 + -0x3d4) ^ uVar15) * (DAT_1826707e0 ^ 0xa3b193fc) ^ uVar16;
  uVar16 = (*(uint *)(lVar4 + -0x398) ^ DAT_182670a94) + (uVar16 ^ *(uint *)(lVar4 + -0x540));
  *(uint *)(lVar4 + -0xc34) = uVar16 ^ _DAT_1826708bc;
  uVar15 = uVar16 << (((byte)uVar7 ^ 0xb2) & 0x1f) ^ DAT_1826709ac;
  *(uint *)(lVar4 + -0xa34) = uVar15;
  uVar15 = uVar15 ^ DAT_1826709ac;
  *(uint *)(lVar4 + -0x2d4) = uVar25 ^ 0x60d6a0e0 | uVar32 ^ 0xeaa8fa52;
  *(uint *)(lVar4 + -0x68c) = uVar16 >> 0x13 ^ DAT_1826709b4;
  *(uint *)(lVar4 - ((ulonglong)uVar34 ^ 0x476323ce)) =
       (*(uint *)(lVar4 - (uVar28 ^ 0xc000068c)) ^ DAT_1826709b4 | uVar15) ^ DAT_182670984;
  uVar26 = DAT_18267099c;
  uVar15 = DAT_18267092c;
  uVar16 = DAT_1826708d0;
  uVar25 = DAT_1826707d8;
  uVar12 = (ulonglong)DAT_1826707d8;
  uVar20 = ~DAT_1826707d8;
  DAT_1826707d4 = uVar20;
  *(uint *)(lVar4 + -0x280) =
       (*(uint *)(lVar4 - ((ulonglong)uVar32 ^ 0x66c4a70)) ^ uVar10) +
       (*(uint *)(lVar4 - (uVar35 ^ 0xfffff4eb)) ^ DAT_182670848) ^ DAT_1826708d0;
  *(uint *)(lVar4 - ((ulonglong)uVar20 ^ 0x72992925)) =
       *(uint *)(lVar4 - (uVar12 ^ 0x8d66d856)) ^ DAT_182670a8c ^ uVar16;
  lVar5 = DAT_1826707a0;
  *(uint *)(lVar4 - ((ulonglong)uVar25 ^ 0x8d66d236)) = *(uint *)(lVar4 + -0x280) ^ uVar16;
  uVar16 = DAT_1826708b8;
  uVar22 = (ulonglong)DAT_1826708b8;
  *(uint *)(lVar5 - ((ulonglong)uVar20 ^ 0x72992cc5)) =
       *(uint *)(lVar4 + -0x43c) ^ DAT_1826708b8 ^ DAT_182670984;
  uVar12 = (ulonglong)DAT_1826709a4;
  *(uint *)(lVar5 + -0xc04) = *(uint *)(lVar5 + -0xc0c) ^ uVar26 ^ DAT_182670a8c;
  *(uint *)(lVar5 + -0xcec) = *(uint *)(lVar5 - ((ulonglong)uVar25 ^ 0x8d66d33a)) ^ uVar15 ^ uVar16;
  bVar3 = (byte)DAT_1826709c4;
  pbVar18 = (byte *)((CONCAT44(uVar20,uVar20) ^ 0x7299252972992529) * 0x20 +
                     (CONCAT44(uVar25,uVar25) ^ 0x8d66dad68d66dac6) + *(longlong *)(lVar5 + -0x30));
  *(ulonglong *)(lVar5 + -0x4d0) = (ulonglong)pbVar18 ^ uVar12;
  uVar27 = DAT_182670950;
  *(byte *)(lVar5 + -0xa36) = *pbVar18 ^ bVar3 ^ (byte)DAT_182670adc;
  *(byte *)(*(ulonglong *)(lVar5 - (uVar19 ^ 0x2a5b658b)) ^ (ulonglong)DAT_18267094c) =
       (byte)uVar25 ^ 0x35;
  uVar10 = _DAT_1826708c8;
  uVar30 = (uint)(bVar3 ^ *(byte *)(lVar5 + -0xa36));
  *(uint *)(lVar5 + -0x7e4) = uVar30 ^ uVar27;
  uVar16 = DAT_1826707c0;
  *(ulonglong *)(lVar5 + -0xf0) =
       (CONCAT44(uVar21,uVar20) ^ 0x6019285667584d95) +
       (CONCAT44(uVar24,uVar21) ^ 0x669203c985dbcc01);
  lVar4 = DAT_1826707a0;
  bVar3 = (byte)uVar16;
  uVar30 = uVar30 << ((bVar3 ^ 0xb2) & 0x1f);
  puVar1 = (uint *)(DAT_1826707a0 + -0xcec);
  *(uint *)(DAT_1826707a0 + -0x398) = uVar30 ^ uVar15;
  uVar15 = (uVar15 ^ *puVar1) + (uVar20 ^ 0xb9bd680a) ^ DAT_182670890;
  *(uint *)(lVar4 + -0x3d4) = uVar15;
  *(uint *)(lVar4 - (uVar33 ^ 0xbbfbfcdb)) = (uVar15 ^ DAT_182670890) - uVar30 ^ uVar10;
  *(ulonglong *)(lVar4 + -0x9c8) =
       (CONCAT44(uVar24,uVar7) ^ 0x7a8a9377d42cb30c) + 0xb1640a04cb9ddee6;
  *(uint *)(lVar4 - (uVar23 ^ 0xa3b19fcd)) =
       (uVar10 ^ *(uint *)(lVar4 + -0x540)) * (uVar26 ^ *(uint *)(lVar4 + -0xc04)) ^ DAT_182670a88;
  uVar15 = DAT_1826709b8;
  uVar10 = DAT_182670894;
  lVar5 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar23 ^ 0xa3b1912d)) =
       (*(uint *)(lVar4 + -0x7e4) ^ uVar27) * (uVar25 ^ 0x8d66dac6) ^ DAT_182670894;
  uVar30 = (*(uint *)(lVar5 - (uVar14 ^ 0xf993bd97)) ^ DAT_182670a88) +
           (uVar10 ^ *(uint *)(lVar5 + -0x2d4));
  *(uint *)(lVar5 + -0xa34) = uVar30 ^ uVar15;
  uVar27 = DAT_182670a2c;
  uVar24 = DAT_1826707e0;
  *puVar29 = uVar30 << ((bVar3 ^ 0xae) & 0x1f) ^ DAT_182670a2c;
  lVar4 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x42c) =
       (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar20 ^ 0x72992f1d)) ^ uVar15) >>
       (((byte)uVar24 ^ 0xea) & 0x1f) ^ DAT_182670abc;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0x72992111)) =
       (CONCAT44(uVar21,uVar7) ^ 0x1206a914472f0462) - *(longlong *)(lVar4 + -0x1b8);
  uVar15 = (uVar27 ^ *(uint *)(lVar5 + -0x68c) | *(uint *)(lVar5 + -0x42c) ^ DAT_182670abc) ^
           DAT_182670ab8;
  uVar24 = (*(uint *)(lVar5 + -0xb54) ^ DAT_182670848) + (uVar26 ^ *(uint *)(lVar5 + -0xc04)) ^
           DAT_182670aec;
  *(uint *)(lVar5 + -0x8e0) = uVar24;
  uVar24 = uVar24 ^ DAT_182670aec ^ DAT_182670960;
  *(uint *)(lVar5 + -0x280) = uVar15;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       CONCAT44(uVar25,uVar31) ^ CONCAT44(uVar20,uVar6) ^ 0xf00d48ff05df8b95;
  *(uint *)(lVar4 + -0x43c) = uVar24;
  uVar27 = DAT_182670a14;
  uVar15 = DAT_1826709a4;
  uVar24 = DAT_1826708ac;
  lVar5 = DAT_1826707a0;
  uVar12 = (ulonglong)DAT_18267090c;
  *(uint *)(DAT_1826707a0 - (uVar33 ^ 0xbbfbf597)) =
       *(uint *)(lVar4 - (uVar33 ^ 0xbbfbfb1b)) ^ DAT_182670904 ^ DAT_182670ab8;
  *(uint *)(lVar5 + -0x9ec) = *(uint *)(lVar5 + -0x43c) ^ uVar27 ^ DAT_182670960;
  *(uint *)(lVar5 + -0xcec) = *(uint *)(lVar5 + -0xc0c) ^ DAT_182670904 ^ uVar24;
  bVar3 = (byte)DAT_182670900;
  pbVar18 = (byte *)((CONCAT44(uVar9,uVar25) ^ 0xa3b193f98d66dacd) +
                     (CONCAT44(uVar32,uVar8) ^ 0x66c4e5ca3b193f9) * 0x20 +
                    *(longlong *)(lVar5 + -0x30));
  *(ulonglong *)(lVar5 + -0x148) = (ulonglong)pbVar18 ^ uVar12;
  *(byte *)(lVar5 + -0xaea) = *pbVar18 ^ bVar3 ^ (byte)DAT_182670adc;
  *(undefined1 *)(*(ulonglong *)(lVar5 + -0x560) ^ uVar22) = 0xb1;
  *(uint *)(lVar5 - ((ulonglong)uVar20 ^ 0x729926b1)) = (bVar3 ^ *(byte *)(lVar5 + -0xaea)) ^ uVar15
  ;
  *(uint *)(lVar5 - (uVar13 ^ 0xb1a3fa47)) =
       (uVar24 ^ *(uint *)(lVar5 + -0xcec)) + (DAT_1826707f4 ^ 0x6895deda) ^ _DAT_1826709e0;
  uVar25 = (*(uint *)(lVar5 - ((ulonglong)uVar25 ^ 0x8d66d94e)) ^ uVar15) << 0x11 ^ DAT_1826708dc;
  *(uint *)(lVar5 + -0x540) = uVar25;
  uVar30 = (*(uint *)(lVar5 - (uVar35 ^ 0xfffffc6b)) ^ _DAT_1826709e0) - (uVar25 ^ DAT_1826708dc) ^
           DAT_182670a58;
  *(uint *)(lVar5 + -0x7e4) = uVar30;
  uVar26 = DAT_182670af8;
  uVar24 = DAT_182670998;
  uVar25 = DAT_182670914;
  uVar30 = (*(uint *)(lVar5 - (uVar35 ^ 0xfffff653)) ^ uVar27) * (uVar30 ^ DAT_182670a58);
  *(ulonglong *)(lVar5 + -0xa18) = uVar19 << 0x2b ^ 0xb991a80000000000;
  *(uint *)(lVar5 + -0x2d4) = uVar30 ^ uVar26;
  uVar16 = (*(uint *)(lVar5 + -0x398) ^ uVar15) * (uVar16 ^ 0xf993b1b8) ^ DAT_182670888;
  *(uint *)(lVar5 + -0xc34) = uVar16;
  *(uint *)(lVar5 - (uVar28 ^ 0xc0000a34)) = (uVar16 ^ DAT_182670888) + uVar30 ^ uVar25;
  uVar26 = (*(uint *)(lVar5 - (uVar33 ^ 0xbbfbf3af)) ^ uVar25) << (((byte)uVar32 ^ 0x51) & 0x1f);
  *(uint *)(lVar5 + -0x68c) = uVar26 ^ uVar24;
  uVar25 = (*(uint *)(lVar5 + -0xa34) ^ uVar25) >> (((byte)uVar34 ^ 0xe1) & 0x1f) ^ DAT_182670aac;
  *(uint *)(lVar5 + -0x42c) = uVar25;
  uVar25 = uVar25 ^ DAT_182670aac;
  *(ulonglong *)(lVar5 + -0x118) =
       CONCAT44(uVar31,uVar8) ^ 0x814a6b4a3be72dac | *(ulonglong *)(lVar5 + -0x410);
  uVar16 = *(uint *)(lVar5 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar5 + -0xc04) = (uVar26 | uVar25) ^ DAT_182670b0c;
  *(uint *)(lVar5 - (uVar28 ^ 0xc00008e0)) = (uVar27 ^ *(uint *)(lVar5 + -0x9ec)) + uVar16 ^ uVar10;
  uVar25 = *(uint *)(lVar5 + -0x8e0) ^ DAT_182670820;
  uVar16 = *(uint *)(lVar5 - (uVar13 ^ 0xb1a3fa0b));
  *(uint *)(lVar5 + -0xc0c) = DAT_182670974 ^ DAT_182670b0c ^ *(uint *)(lVar5 + -0xc04);
  *(uint *)(lVar5 + -0x280) =
       (uVar16 ^ uVar15) >> (((byte)*(uint *)(lVar5 + -0x8e0) ^ (byte)uVar10) & 0x1f);
  *(uint *)(lVar5 + -0x43c) = uVar25 ^ uVar10;
  *(uint *)(lVar5 - (uVar14 ^ 0xf993bd4f)) =
       *(uint *)(lVar5 - (uVar13 ^ 0xb1a3fdaf)) ^ DAT_182670a54 ^ DAT_182670820;
  *(uint *)(lVar5 + -0x3d4) = *(uint *)(lVar5 + -0xc0c) ^ DAT_1826709f4 ^ DAT_182670974;
  *(ulonglong *)(lVar5 + -0x68) =
       (CONCAT44(uVar34,uVar34) ^ 0x301e1685d327be8e) + (CONCAT44(uVar6,uVar7) ^ 0xfec782099df50f68)
  ;
  *(ulonglong *)(lVar5 + -0x238) =
       *(longlong *)(lVar5 - (uVar14 ^ 0xf993b193)) +
       (CONCAT44(uVar20,uVar9) ^ 0x72992529a3b193f9) * 0x20 +
       (CONCAT44(uVar34,uVar8) ^ 0x476327f2a3b193ff) ^ (ulonglong)DAT_1826709d0;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar11 * 4) = uVar2 ^ uVar34;
  return;
}



############ FUN_ 180cb4810 size=5634 ############

void FUN_180cb4810(void)

{
  uint uVar1;
  longlong lVar2;
  uint uVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  ulonglong uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  longlong lVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  uint uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte local_130;
  byte local_110;
  byte local_f0;
  
  uVar29 = DAT_1826709d0;
  uVar6 = DAT_1826707d8;
  uVar5 = DAT_1826707c4;
  uVar3 = DAT_1826707bc;
  lVar2 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707bc;
  uVar26 = (ulonglong)DAT_1826707d8;
  uVar24 = DAT_1826707c4 & DAT_1826707ec;
  DAT_1826707a8 = DAT_1826707bc + DAT_1826707d8;
  uVar51 = DAT_18267092c & DAT_182670950;
  uVar34 = DAT_1826709c0 ^ DAT_182670938;
  uVar15 = DAT_1826709d0 - DAT_18267082c;
  uVar16 = DAT_182670afc ^ DAT_182670894;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670de4);
  uVar8 = *(uint *)(&DAT_18260f760 + DAT_182670de4) ^ DAT_1826707ec;
  uVar9 = DAT_1826709c0 & 0xff;
  DAT_1826709c0 = ((DAT_1826709c0 << 8 | uVar9) << 8 | uVar9) << 8 | uVar9;
  uVar25 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar12 = (ulonglong)DAT_1826709c0;
  uVar19 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  uVar43 = (ulonglong)DAT_1826707c4;
  DAT_1826707d4 = uVar24;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0x214a605a)) =
       CONCAT44(DAT_182670a48,DAT_182670a48) ^ uVar19 ^ uVar25 ^
       *(ulonglong *)(DAT_1826707a0 + -0xac0) ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  uVar9 = DAT_1826707a8;
  uVar10 = uVar34 & 0xff;
  DAT_182670ae0 = ((uVar34 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar17 = CONCAT44(DAT_1826707a8,uVar3);
  bVar13 = (byte)uVar3;
  uVar30 = (uVar19 ^ *(ulonglong *)(lVar2 + -0x610)) >> ((bVar13 ^ 0xe9) & 0x3f);
  uVar38 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar10 = DAT_182670938 & 0xff;
  uVar35 = (ulonglong)uVar24;
  DAT_182670938 = ((DAT_182670938 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  *(ulonglong *)(lVar2 + -0x558) = uVar30 ^ uVar38;
  uVar41 = CONCAT44(DAT_182670938,DAT_182670938);
  local_130 = (byte)uVar5;
  uVar20 = (*(ulonglong *)(lVar2 - (uVar26 ^ 0x654c775c)) ^ uVar19) << ((local_130 ^ 0x46) & 0x3f);
  puVar18 = (ulonglong *)(lVar2 - (uVar35 ^ 0x214a6a52));
  *(ulonglong *)(lVar2 + -0x998) = uVar20 ^ uVar41;
  lVar2 = DAT_1826707a0;
  uVar36 = *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (CONCAT44(uVar6,DAT_1826707a8) ^ 0x550e91e26fbb7d72) + *puVar18;
  uVar4 = DAT_182670870;
  uVar30 = uVar30 | uVar20;
  uVar10 = DAT_18267092c & 0xff;
  *(ulonglong *)(lVar2 + -0xac0) = uVar30 ^ uVar41;
  DAT_18267092c = ((DAT_18267092c << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar20 = CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar10 = uVar51 & 0xff;
  *(ulonglong *)(lVar2 + -0x610) = (uVar25 ^ uVar36) - uVar30 ^ uVar20;
  DAT_1826709d8 = ((uVar51 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar39 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar25 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar10 = DAT_182670950 & 0xff;
  uVar36 = *(ulonglong *)(lVar2 - (uVar33 ^ 0xdcdb591d)) ^ CONCAT44(uVar4,uVar4) ^ uVar25 ^ uVar39 ^
           *(ulonglong *)(lVar2 + -0x9c8);
  *(ulonglong *)(lVar2 + -0xc18) = uVar36;
  uVar7 = DAT_1826707ec;
  lVar23 = DAT_1826707a0;
  uVar45 = (ulonglong)DAT_1826707ec;
  DAT_182670950 = ((DAT_182670950 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  puVar21 = (ulonglong *)(lVar2 - (uVar26 ^ 0x654c7d54));
  uVar30 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar31 = (uVar25 ^ *puVar21) >> ((bVar13 ^ 0xe4) & 0x3f);
  uVar10 = DAT_182670afc & 0xff;
  uVar36 = (uVar25 ^ uVar36) << (((byte)DAT_1826707a8 ^ 0x2e) & 0x3f);
  DAT_182670afc = ((DAT_182670afc << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar31 ^ uVar30;
  uVar27 = CONCAT44(DAT_182670afc,DAT_182670afc);
  uVar10 = DAT_182670894 & 0xff;
  *(ulonglong *)(lVar23 + -0x558) = uVar36 ^ uVar27;
  DAT_182670894 = ((DAT_182670894 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar37 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar23 - (uVar33 ^ 0xdcdb5545)) = (uVar36 | uVar31) ^ uVar37;
  uVar10 = DAT_18267082c & 0xff;
  uVar51 = DAT_18267082c << 8;
  *(ulonglong *)(lVar23 + -0x4c8) =
       (uVar39 ^ *(ulonglong *)(lVar23 + -0x5c0)) -
       (*(ulonglong *)(lVar23 - (uVar43 ^ 0x214a6fd2)) ^ uVar37) ^ uVar25;
  DAT_18267082c = ((uVar51 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar34 = DAT_1826709d0 & 0xff;
  uVar31 = (ulonglong)DAT_18267082c;
  uVar48 = CONCAT44(DAT_18267082c,DAT_18267082c);
  DAT_1826709d0 = ((DAT_1826709d0 << 8 | uVar34) << 8 | uVar34) << 8 | uVar34;
  uVar36 = uVar48 ^ uVar37 ^ uVar20 ^ *(ulonglong *)(lVar23 + -0x998) ^
           *(ulonglong *)(lVar23 + -0x610);
  *(ulonglong *)(lVar23 + -0x9c8) = uVar36;
  uVar46 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar23 - (uVar45 ^ 0x6febfbe7)) =
       (uVar31 << 0x12 | (ulonglong)(((uVar51 & 0xffff | uVar10) << 8 | uVar10) >> 6)) ^
       uVar36 >> 0xe ^ uVar46;
  lVar2 = DAT_1826707a0;
  uVar10 = uVar15 & 0xff;
  DAT_1826708dc = ((uVar15 * 0x100 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar53 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar36 = (uVar48 ^ *(ulonglong *)(DAT_1826707a0 + -0x9c8)) << ((bVar13 ^ 0xef) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar36 ^ uVar53;
  uVar11 = uVar16 & 0xff;
  uVar11 = ((uVar16 << 8 | uVar11) << 8 | uVar11) << 8 | uVar11;
  uVar40 = CONCAT44(uVar11,uVar11);
  DAT_18267099c = uVar11;
  *(ulonglong *)(lVar2 + -0x558) = (uVar46 ^ *(ulonglong *)(lVar2 + -0xc18) | uVar36) ^ uVar40;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0x654c748c)) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0x610)) - (CONCAT44(uVar5,uVar7) ^ 0x33c41f4449adf72c) ^
       uVar27;
  uVar10 = DAT_1826707a8;
  puVar22 = (ulonglong *)(lVar2 - ((ulonglong)DAT_1826707a8 ^ 0x4227cbe9));
  *(ulonglong *)(lVar2 + -0x998) =
       (uVar27 ^ *puVar22) - (*(ulonglong *)(lVar2 - (uVar33 ^ 0xdcdb5985)) ^ uVar40) ^ uVar48;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (uVar40 ^ *(ulonglong *)(lVar2 + -0x558)) - (CONCAT44(uVar6,uVar24) ^ 0x9728fe5f3e8f4387) ^
       uVar46;
  *(int *)(lVar2 + -0xaf0) = *(int *)(lVar2 + -0x14) + 0x625321ac;
  puVar52 = (ulonglong *)(lVar2 - (uVar43 ^ 0x214a6282));
  uVar36 = uVar25 ^ *(ulonglong *)(lVar2 + -0xac0) ^ *puVar52;
  *(ulonglong *)(lVar2 + -0xc18) = uVar36;
  *(ulonglong *)(lVar2 + -0xf0) = (uVar41 ^ uVar36) >> (((byte)uVar6 ^ 0x5c) & 0x3f) ^ uVar20;
  puVar28 = (ulonglong *)(lVar2 - (uVar35 ^ 0x214a605a));
  *puVar28 = (uVar41 ^ uVar36) << 0x30 ^ uVar53;
  uVar31 = *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x4227c839)) ^ uVar53 |
           *(ulonglong *)(lVar2 - (uVar43 ^ 0x214a66ba)) ^ uVar20;
  bVar44 = (byte)uVar29;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar31 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x558) =
       (uVar53 ^ *(ulonglong *)(lVar2 + -0x610)) << ((bVar44 ^ *(byte *)(lVar2 + -0x9c8)) & 0x3f);
  uVar36 = (uVar25 ^ *(ulonglong *)(lVar2 + -0x4c8)) - (CONCAT44(uVar5,uVar6) ^ 0x94ceb31d4547bf80);
  *(ulonglong *)(lVar2 + -0xac0) = uVar36 ^ uVar40;
  lVar23 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0xc18) = (*(ulonglong *)(lVar2 - (uVar35 ^ 0x214a6f82)) ^ uVar46) << 0x3d;
  *(ulonglong *)(lVar2 + -0xf0) = uVar36 - uVar31 ^ uVar38;
  uVar36 = (CONCAT44(uVar3,uVar3) ^ 0xf4485bcde012a659) + uVar31 ^ uVar48;
  *(ulonglong *)(lVar23 + -0x610) = uVar36;
  *(ulonglong *)(lVar23 + -0x558) = uVar30 ^ *(ulonglong *)(lVar23 + -0x998) ^ uVar36;
  lVar2 = DAT_1826707a0;
  puVar32 = (ulonglong *)(lVar23 - ((ulonglong)DAT_1826707a8 ^ 0x4227cb71));
  uVar31 = (uVar30 ^ *puVar32) >> ((bVar13 ^ 0xfd) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar31 ^ uVar20;
  uVar36 = (uVar30 ^ *puVar32) << ((bVar13 ^ 0xfd) & 0x3f);
  *(ulonglong *)(lVar2 + -0xc18) = uVar36 ^ uVar40;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x214a6c8a)) = (uVar31 | uVar36) ^ uVar37;
  *(ulonglong *)(lVar2 + -0x558) =
       uVar48 ^ *(ulonglong *)(lVar2 + -0x610) | uVar17 ^ 0x3ea4bf392205178a;
  uVar31 = uVar46 ^ uVar41 ^ uVar38 ^ *(ulonglong *)(lVar2 + -0x9c8) ^ *(ulonglong *)(lVar2 + -0xf0)
  ;
  uVar36 = *(ulonglong *)(lVar2 - (uVar26 ^ 0x654c7b8c));
  *(ulonglong *)(lVar2 + -0xc18) = uVar31;
  local_f0 = (byte)uVar7;
  *(ulonglong *)(lVar2 + -0x4c8) =
       (uVar48 ^ *(ulonglong *)(lVar2 + -0x998)) - (uVar36 ^ uVar37) ^ uVar27;
  uVar17 = (uVar41 ^ uVar31) >> ((local_f0 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar2 + -0x558) = uVar17 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x610) =
       (uVar19 ^ *(ulonglong *)(lVar2 + -0x5c0)) - (CONCAT44(uVar6,uVar6) ^ 0xadde9124191506af);
  lVar2 = DAT_1826707a0;
  uVar36 = (uVar41 ^ uVar31) << ((local_130 ^ 0x6a) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar36 ^ uVar25;
  lVar23 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x9c8) = (uVar17 | uVar36) ^ uVar19;
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x6febf23f)) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x654c71bc)) ^ uVar38) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707a8 ^ 0x4227c7e1)) ^ uVar19) ^ uVar46;
  uVar4 = DAT_1826707c0;
  uVar29 = DAT_182670a78 - DAT_182670a04;
  uVar10 = DAT_182670a78 & 0xff;
  DAT_182670a78 = ((DAT_182670a78 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar17 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar23 + -0x610) =
       *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0x654c7584)) ^ uVar27 ^
       *(ulonglong *)(lVar23 + -0x9c8) ^ uVar19 ^ uVar17;
  *(ulonglong *)(lVar23 + -0xc18) =
       CONCAT44(uVar4,DAT_1826707ac) ^ 0x84fee8e492728870 |
       CONCAT44(uVar3,uVar3) ^ 0xa3dfbf2be207e8a3;
  uVar15 = DAT_1826707f0;
  uVar16 = DAT_1826707e0;
  lVar2 = DAT_1826707a0;
  uVar10 = DAT_182670a04 & 0xff;
  DAT_182670a04 = ((DAT_182670a04 << 8 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar42 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar31 = (ulonglong)DAT_1826707f0;
  uVar39 = (ulonglong)DAT_1826707e0;
  bVar14 = (byte)DAT_1826707a8;
  *(ulonglong *)(lVar23 - (uVar45 ^ 0x6febf2a7)) =
       (*(ulonglong *)(lVar23 + -0x610) ^ uVar17) >> ((local_130 ^ 0x70) & 0x3f) ^ uVar42;
  uVar10 = uVar29 & 0xff;
  uVar36 = (*puVar28 ^ uVar17) << ((bVar14 ^ 0x2f) & 0x3f);
  DAT_182670a0c = ((uVar29 * 0x100 | uVar10) << 8 | uVar10) << 8 | uVar10;
  uVar49 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar2 + -0x998) = uVar36 ^ uVar49;
  *(ulonglong *)(lVar2 + -0xf0) = (uVar36 | *(ulonglong *)(lVar2 + -0x558) ^ uVar42) ^ uVar49;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (uVar27 ^ *(ulonglong *)(lVar2 + -0x4c8)) -
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0x34b0d128)) ^ uVar49) ^ uVar42;
  uVar10 = DAT_1826707b4;
  uVar47 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar2 + -0xc18) =
       uVar46 ^ uVar37 ^ *(ulonglong *)(lVar2 + -0xac0) ^ uVar42 ^ *(ulonglong *)(lVar2 + -0x5c0);
  *(undefined8 *)(lVar2 - (uVar47 ^ 0x6e7fde99)) = 0xf15a33b89e390000;
  uVar33 = (*puVar18 ^ uVar42) >> (((byte)uVar4 ^ 0xce) & 0x3f);
  *(ulonglong *)(lVar2 + -0x558) = uVar33 ^ uVar42;
  uVar36 = (*(ulonglong *)(lVar2 + -0xc18) ^ uVar42) << ((bVar13 ^ 0xf7) & 0x3f);
  *(ulonglong *)(lVar2 + -0x998) = uVar36 ^ uVar49;
  uVar51 = DAT_1826707e4;
  uVar34 = DAT_1826707d0;
  uVar31 = (ulonglong)DAT_1826707d0;
  uVar50 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 + -0x4c8) = (uVar36 | uVar33) ^ uVar40;
  *(undefined8 *)(lVar2 - (uVar31 ^ 0xdc58fbb4)) = **(undefined8 **)(lVar2 + -0x240);
  *(ulonglong *)(lVar2 + -0x610) =
       (uVar46 ^ *(ulonglong *)(lVar2 + -0x5c0)) - (uVar40 ^ *(ulonglong *)(lVar2 + -0x4c8)) ^
       uVar17;
  *(ulonglong *)(lVar2 + -0xc18) =
       CONCAT44(uVar7,uVar51) ^ 0xf2ef43e45bbe361f | *(ulonglong *)(lVar2 + -0x9c8) ^ uVar42;
  uVar36 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar2 + -0x558) =
       uVar40 ^ *(ulonglong *)(lVar2 + -0x4c8) ^ uVar19 ^ *(ulonglong *)(lVar2 + -0x9c8) ^ uVar42;
  uVar29 = DAT_1826707b8;
  uVar54 = (ulonglong)DAT_1826707b8;
  bVar14 = (byte)DAT_1826707b8;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x214a6fd2)) =
       (*(ulonglong *)(lVar2 - (uVar36 ^ 0x6febf2a7)) >> 0x20 ^ uVar12) >> 0xe ^ uVar37;
  lVar2 = DAT_1826707a0;
  puVar28 = (ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0x34b24e7b));
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       (CONCAT44(uVar10,uVar15) ^ 0xb3e4067585399637) >> ((bVar14 ^ 0x2a) & 0x3f);
  uVar36 = (*puVar28 ^ uVar19) << 0x12;
  *(undefined8 *)(lVar2 + -0xc18) = 0xb3ff578e0091d929;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar36 ^ uVar53;
  *puVar52 = (uVar36 | uVar37 ^ *(ulonglong *)(lVar2 + -0x998)) ^ uVar27;
  uVar15 = DAT_1826707dc;
  uVar12 = (ulonglong)DAT_1826707dc;
  uVar36 = CONCAT44(uVar9,DAT_1826707c0);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707ac ^ 0x7e915163)) =
       (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar42) - (uVar27 ^ *(ulonglong *)(lVar2 + -0x4c8)) ^
       uVar19;
  *(ulonglong *)(lVar2 + -0x558) =
       (uVar36 ^ 0xc36f56bf29d0f9b1) + (CONCAT44(uVar24,uVar6) ^ 0xb0515faa24e34433);
  uVar9 = DAT_1826707cc;
  uVar33 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar2 - (uVar12 ^ 0xedbb45ae)) =
       uVar48 ^ *(ulonglong *)(lVar2 + -0x610) ^ *(ulonglong *)(lVar2 + -0xf0) ^ uVar49 ^ uVar17;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0x654c78d4)) =
       (uVar48 ^ *puVar18) >> (((byte)uVar9 ^ 0x38) & 0x3f) ^ uVar49;
  lVar23 = (uVar27 ^ *(ulonglong *)(lVar2 + -0x4c8)) + 0x3ff9aa740465c625;
  *(longlong *)(lVar2 + -0x5c0) = lVar23;
  uVar36 = (uVar48 ^ *(ulonglong *)(lVar2 + -0xc18)) << ((bVar13 ^ 0xe9) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar36 ^ uVar48;
  lVar2 = DAT_1826707a0;
  *(longlong *)(DAT_1826707a0 + -0x558) = -0x106f37ff4f3269ae << ((byte)lVar23 & 0x3f);
  uVar36 = uVar36 | *(ulonglong *)(lVar2 + -0x998) ^ uVar49;
  *(ulonglong *)(lVar2 + -0xf0) = uVar36 ^ uVar17;
  uVar10 = DAT_1826707c8;
  uVar9 = DAT_1826707b0;
  uVar12 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707f0 ^ 0x34b0d7c8)) ^ uVar17) - uVar36 ^ uVar46;
  *puVar22 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707f4 ^ 0xa49cc927)) ^ uVar53 ^
             *(ulonglong *)(lVar2 + -0xac0) ^ uVar19 ^ uVar17;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x214a6312)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar54 ^ 0x2324a6e2)) ^ uVar53) >>
       (((byte)uVar10 ^ 0xe6) & 0x3f) ^ uVar30;
  bVar13 = (byte)DAT_1826707ac;
  *(ulonglong *)(lVar2 - (uVar12 ^ 0x32efba08)) =
       (CONCAT44(uVar7,uVar29) ^ 0xe5648ec97a66a444) <<
       ((bVar44 ^ *(byte *)(lVar2 + -0xc18)) & 0x3f);
  *(ulonglong *)(lVar2 + -0x9c8) =
       (uVar53 ^ *(ulonglong *)(lVar2 + -0x5c0)) << ((bVar13 ^ 0x84) & 0x3f) ^ uVar25;
  lVar23 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0xdc58f8bc)) ^ uVar25 | uVar30 ^ *puVar28) ^
       uVar49;
  local_110 = (byte)uVar24;
  *(ulonglong *)(lVar23 - (uVar31 ^ 0xdc58f184)) =
       (uVar19 ^ *(ulonglong *)(lVar23 + -0xac0)) - (CONCAT44(uVar16,uVar3) ^ 0x3259db3ae4acb754) ^
       uVar37;
  uVar29 = DAT_1826707e8;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x998) =
       (CONCAT44(uVar7,uVar15) ^ 0x933a625d2ab4a6e4) <<
       ((*(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x4febf9e7)) ^ bVar44) & 0x3f);
  uVar36 = CONCAT44(uVar9,DAT_1826707dc);
  uVar12 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar2 + -0x5c0) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0xf0)) - (*(ulonglong *)(lVar2 + -0x610) ^ uVar49) ^ uVar37
  ;
  *(ulonglong *)(DAT_1826707a0 - (uVar12 ^ 0x34b0d810)) =
       (*(ulonglong *)(lVar2 + -0x610) ^ uVar49) - (uVar36 ^ 0xbdb79eed3753b262) ^ uVar27;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x214a6312)) =
       uVar46 ^ uVar27 ^ uVar20 ^ *(ulonglong *)(DAT_1826707a0 + -0xc18) ^
       *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  lVar2 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 + -0xac0) = **(undefined8 **)(DAT_1826707a0 + -0x180);
  *(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0x6e7fd111)) =
       (uVar20 ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) >> ((local_110 ^ 0x6b) & 0x3f) ^ uVar38;
  lVar23 = DAT_1826707a0;
  uVar36 = (uVar20 ^ *(ulonglong *)(lVar2 + -0x558)) << 0x1f;
  *(ulonglong *)(lVar2 + -0xf0) = uVar36 ^ uVar42;
  *(undefined8 *)(lVar2 + -0x610) = 0x923b3a9;
  *(ulonglong *)(lVar23 - (uVar35 ^ 0x214a6282)) =
       (uVar36 | uVar38 ^ *(ulonglong *)(lVar2 + -0x998)) ^ uVar27;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 + -0x7e4) =
       *(int *)(DAT_1826707a0 - (uVar35 ^ 0x214a665e)) * (uVar29 ^ 0x669adcd7);
  uVar36 = uVar27 ^ *(ulonglong *)(lVar2 + -0x4c8);
  *(ulonglong *)(lVar2 + -0xac0) =
       (uVar46 ^ *puVar21) - (CONCAT44(uVar24,uVar3) ^ 0xd32ee959c31e7910) ^ uVar49;
  *(ulonglong *)(lVar2 + -0x558) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707a8 ^ 0x4227c4e9)) ^ uVar49) - uVar36 ^ uVar27;
  uVar3 = DAT_1826707f4;
  uVar36 = (CONCAT44(uVar6,DAT_1826707f4) ^ 0xbcc81d4f3a97a024) + uVar36 ^ uVar40 ^ uVar37 ^
           *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  *(ulonglong *)(DAT_1826707a0 + -0x998) = uVar36;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       ((ulonglong)uVar11 << 0x1b | (ulonglong)(uVar11 >> 5)) ^ uVar36 >> 5 ^ uVar41;
  *(ulonglong *)(lVar2 + -0xc18) = (uVar40 ^ uVar36) << ((local_130 ^ 0x71) & 0x3f) ^ uVar48;
  *(uint *)(lVar2 - (uVar50 ^ 0x4a231c8c)) =
       (DAT_1826707a8 ^ 0xb95d69fa) * (DAT_1826707b4 ^ 0x144d8112);
  uVar36 = uVar48 ^ *(ulonglong *)(lVar2 + -0xc18) | uVar41 ^ *(ulonglong *)(lVar2 + -0xf0);
  uVar43 = CONCAT44(uVar9,DAT_1826707ac);
  *(ulonglong *)(lVar2 + -0xac0) = uVar36 ^ uVar37;
  *(ulonglong *)(lVar2 + -0x610) =
       (uVar43 ^ 0xe0287d704e7cce1c) - (CONCAT44(uVar16,uVar3) ^ 0xfbaab3454cef90a0);
  *(ulonglong *)(lVar2 + -0x998) = (uVar37 ^ *(ulonglong *)(lVar2 + -0x5c0)) - uVar36 ^ uVar30;
  *(ulonglong *)(lVar2 + -0xc18) =
       uVar27 ^ *(ulonglong *)(lVar2 + -0x4c8) | CONCAT44(uVar51,uVar10) ^ 0xbd74e8767a3026e1;
  *(ulonglong *)(lVar2 - (uVar45 ^ 0x6febf1ef)) =
       uVar53 ^ *(ulonglong *)(lVar2 + -0x558) ^ *(ulonglong *)(lVar2 + -0x9c8);
  uVar36 = *(ulonglong *)(lVar2 + -0x610);
  *(ulonglong *)(lVar2 + -0x5c0) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x234bb424)) ^ uVar53) >> ((local_130 ^ 0x6f) & 0x3f) ^
       uVar49;
  *(ulonglong *)(lVar2 + -0xc18) =
       (uVar41 ^ *(ulonglong *)(lVar2 + -0xf0)) - (CONCAT44(uVar5,uVar29) ^ 0x7a696ad10abec3ef);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar8 * 4) = uVar1 ^ uVar24;
  *(ulonglong *)(lVar2 - (uVar12 ^ 0x34b0d510)) =
       (uVar53 ^ uVar36) << (((byte)uVar3 ^ 0xcc) & 0x3f) ^ uVar20;
  return;
}



############ FUN_ 180cb98e0 size=5479 ############

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

void FUN_180cb98e0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong *puVar23;
  uint uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  byte local_138;
  byte local_118;
  byte local_b8;
  
  uVar17 = DAT_182670a8c;
  uVar16 = DAT_182670894;
  uVar15 = DAT_1826707f4;
  uVar14 = DAT_1826707ec;
  uVar13 = DAT_1826707e8;
  uVar12 = DAT_1826707e0;
  uVar11 = DAT_1826707d8;
  uVar8 = DAT_1826707c8;
  uVar21 = DAT_1826707bc;
  uVar7 = DAT_1826707b8;
  uVar6 = DAT_1826707b0;
  uVar34 = (ulonglong)DAT_1826707e0;
  uVar53 = (ulonglong)DAT_1826707d8;
  uVar50 = (ulonglong)DAT_1826707ec;
  uVar56 = (ulonglong)DAT_1826707f4;
  uVar39 = (ulonglong)DAT_1826707b8;
  uVar48 = (ulonglong)DAT_1826707bc;
  DAT_1826707f0 = DAT_1826707d8 + DAT_1826707ec;
  uVar35 = (ulonglong)DAT_1826707b0;
  DAT_1826707c4 = DAT_1826707f4 | DAT_1826707e8;
  DAT_1826707d0 =
       (DAT_1826707e0 << 0x10 | DAT_1826707e0 & 0xff00) << 8 | DAT_1826707e0 >> 8 & 0xff00 |
       DAT_1826707e0 >> 0x18;
  uVar18 = DAT_1826707bc & DAT_1826707c8;
  DAT_1826707cc = DAT_1826707b8 - DAT_1826707b0;
  uVar24 = *(uint *)(&DAT_18260f758 + DAT_182670df0) ^ DAT_1826707b8;
  uVar19 = *(uint *)(&DAT_18260f760 + DAT_182670df0) ^ DAT_1826707cc;
  uVar28 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar43 = (ulonglong)uVar18;
  uVar36 = CONCAT44(DAT_182670934,DAT_182670934) ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0) |
           CONCAT44(DAT_182670884,DAT_182670884) ^ *(ulonglong *)(DAT_1826707a0 + -0x420);
  DAT_1826707c0 = uVar18;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar36 ^ uVar28;
  uVar3 = DAT_182670a50;
  uVar54 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) - uVar36 ^ uVar54;
  lVar4 = DAT_1826707a0;
  uVar36 = (ulonglong)uVar8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0x56af099f)) =
       CONCAT44(uVar8,uVar18) ^ CONCAT44(uVar6,uVar21) ^ 0xe2a70d4105e3ce5f;
  uVar16 = DAT_1826709c0;
  uVar49 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  puVar25 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c4 ^ 0xbbfdfcdf));
  puVar1 = (ulonglong *)(lVar4 + -0xd38);
  uVar28 = uVar49 ^ CONCAT44(uVar3,uVar3) ^ uVar28 ^ *puVar25 ^ *puVar1;
  *(ulonglong *)(lVar4 + -0x118) = uVar28;
  uVar22 = DAT_1826707d0;
  lVar4 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707d0;
  uVar40 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0xad39ef1e)) =
       ((ulonglong)uVar3 << 0x12 | (ulonglong)(uVar3 >> 0xe)) ^ uVar28 >> 0xe ^ uVar40;
  uVar28 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  puVar26 = (ulonglong *)(lVar4 - (uVar29 ^ 0xff0fab76));
  uVar37 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *puVar26 = (CONCAT44(uVar3,uVar3) ^ *(ulonglong *)(lVar4 + -0x118)) << 0x32 ^ uVar28;
  uVar16 = DAT_182670a64;
  uVar3 = DAT_1826707f0;
  *(ulonglong *)(lVar4 + -0x890) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x420) | *(ulonglong *)(lVar4 + -0xbb0) ^ uVar40) ^ uVar37;
  lVar5 = DAT_1826707a0;
  uVar40 = (ulonglong)uVar13;
  uVar44 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0x29ac989f)) =
       (*(ulonglong *)(lVar4 - (uVar40 ^ 0xba51714a)) ^ uVar49) -
       (*(ulonglong *)(lVar4 + -0x6f0) ^ uVar44) ^ uVar44;
  uVar33 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar5 - (uVar50 ^ 0x6febf5df)) =
       (*(ulonglong *)(lVar5 + -0x660) ^ uVar44) -
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar3 ^ 0x9d145099)) ^ uVar37) ^ uVar33;
  uVar45 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar32 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xda0d936c)) =
       (*(ulonglong *)(lVar5 - (uVar53 ^ 0x2d286cea)) ^ uVar37) +
       (*(ulonglong *)(lVar5 + -0x630) ^ uVar45) ^ uVar32;
  uVar27 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar5 + -0x420) =
       (*(ulonglong *)(lVar5 + -0x890) ^ uVar37) -
       (*(ulonglong *)(lVar5 - (uVar40 ^ 0xba517d6a)) ^ uVar32) ^ uVar27;
  uVar16 = DAT_18267084c;
  lVar4 = DAT_1826707a0;
  local_138 = (byte)uVar15;
  *(ulonglong *)(lVar5 + -0xbb0) =
       (CONCAT44(uVar14,uVar12) ^ 0xed866906f7b780e4) << ((local_138 ^ 0xf2) & 0x3f);
  uVar17 = DAT_18267094c;
  uVar57 = CONCAT44(uVar16,uVar16);
  uVar28 = *(ulonglong *)(lVar4 - (uVar50 ^ 0x6febf1a7)) ^ CONCAT44(DAT_182670998,DAT_182670998) ^
           *(ulonglong *)(lVar4 + -0xa18) ^ uVar57 ^ uVar54;
  *puVar1 = uVar28;
  lVar5 = DAT_1826707a0;
  uVar49 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0x660) = (uVar28 ^ uVar57) >> (((byte)uVar22 ^ 0x46) & 0x3f) ^ uVar49;
  uVar37 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0xff0fa7c6)) = (uVar57 ^ uVar28) << 0x30 ^ uVar37;
  *(uint *)(lVar5 - (uVar35 ^ 0xda0d9e78)) = (DAT_1826707c4 ^ 0xb6001165) * (uVar22 ^ 0x74d3face);
  uVar9 = DAT_1826707cc;
  uVar30 = CONCAT44(DAT_182670a38,DAT_182670a38);
  puVar2 = (ulonglong *)(lVar5 + -0x658);
  uVar50 = *(ulonglong *)(lVar5 - (uVar34 ^ 0x56af076f)) ^ uVar37 |
           *(ulonglong *)(lVar5 + -0x660) ^ uVar49;
  uVar37 = (ulonglong)DAT_1826707cc;
  uVar28 = CONCAT44(DAT_1826707cc,uVar13);
  *(ulonglong *)(lVar5 + -0xbb0) = uVar50 ^ uVar30;
  *puVar2 = uVar28 ^ 0x6be0cdaae6f704a4;
  uVar16 = DAT_1826709f0;
  puVar38 = (ulonglong *)(lVar5 - (uVar43 ^ 0x5040aab1));
  uVar28 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *puVar1 = (*(ulonglong *)(lVar5 + -0xa18) ^ uVar54) - (*puVar38 ^ uVar30) ^ uVar28;
  uVar31 = CONCAT44(uVar16,uVar16);
  uVar55 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(ulonglong *)(lVar5 + -0x890) =
       (*(ulonglong *)(lVar5 - (uVar48 ^ 0xd249e7d5)) ^ uVar28) - uVar50 ^ uVar31;
  uVar54 = CONCAT44(DAT_182670adc,DAT_182670adc);
  uVar49 = -(*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xad39e216)) ^ uVar55) - 10;
  uVar28 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar5 + -0x660) = uVar49 ^ uVar54;
  uVar50 = uVar49 + uVar50 ^ uVar28;
  uVar41 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar5 + -0xf0) = uVar50;
  uVar3 = DAT_1826707ac;
  uVar49 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar5 - (uVar36 ^ 0x7c72b049)) =
       *(ulonglong *)(lVar5 + -0x220) ^ uVar41 ^ uVar28 ^ uVar33 ^ uVar50;
  uVar10 = DAT_1826707d4;
  uVar20 = uVar3 | DAT_1826707d4;
  uVar51 = (ulonglong)uVar20;
  uVar46 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  DAT_1826707b4 = uVar20;
  *puVar1 = (*(ulonglong *)(DAT_1826707a0 + -0xa18) ^ uVar41) >> (((byte)uVar3 ^ 0x2a) & 0x3f) ^
            uVar46;
  uVar28 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(DAT_1826707a0 - (uVar51 ^ 0xede9f85e)) =
       (*(ulonglong *)(DAT_1826707a0 + -0xa18) ^ uVar41) << (((byte)uVar3 ^ 0x2a) & 0x3f) ^ uVar28;
  lVar4 = DAT_1826707a0;
  puVar47 = (ulonglong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = *puVar2 >> (((byte)uVar10 ^ 0x14) & 0x3f);
  uVar16 = _DAT_1826708bc;
  puVar23 = (ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xe9c1d304));
  uVar50 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar4 + -0xf0) = (uVar28 ^ *puVar47 | uVar46 ^ *puVar23) ^ uVar50;
  lVar4 = DAT_1826707a0;
  uVar46 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) =
       (*(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar33) -
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar20 ^ 0xede9fece)) ^ uVar50) ^ uVar46;
  uVar41 = (ulonglong)DAT_182670970;
  uVar28 = *(ulonglong *)(lVar4 + -0x890);
  uVar52 = CONCAT44(DAT_182670970,DAT_182670970);
  *puVar2 = 0x78f958bc73c276da;
  uVar33 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0xba5177c2)) =
       uVar28 ^ uVar52 ^ uVar31 ^ uVar27 ^ *(ulonglong *)(lVar4 + -0x420);
  uVar42 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *puVar1 = *(ulonglong *)(lVar4 - (uVar33 ^ 0x9d1453b9)) >> 0x20 ^ uVar42 ^ uVar41;
  *(ulonglong *)(lVar4 + -0x660) =
       CONCAT44(uVar11,uVar15) ^ uVar52 ^ *(ulonglong *)(lVar4 + -0xbb0) ^ 0x2518100a0eb2ef00;
  uVar16 = DAT_182670ae8;
  uVar28 = (uVar52 ^ *(ulonglong *)(lVar4 + -0xbb0)) << 0x20;
  *(ulonglong *)(lVar4 + -0x220) = uVar28 ^ CONCAT44(DAT_182670804,DAT_182670804);
  uVar33 = CONCAT44(uVar16,uVar16);
  uVar28 = *(ulonglong *)(lVar4 - (uVar37 ^ 0xd32c5f02)) ^ uVar42 | uVar28;
  *puVar2 = uVar28 ^ uVar33;
  *(int *)(lVar4 + -0x598) =
       *(int *)(lVar4 - (uVar36 ^ 0x7c72b0a1)) << (((byte)uVar18 ^ 0x5c) & 0x1f);
  *(ulonglong *)(lVar4 + -0x420) = (*(ulonglong *)(lVar4 + -0x890) ^ uVar31) - uVar28 ^ uVar57;
  lVar4 = DAT_1826707a0;
  uVar41 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar28 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0xbbfdf4e7)) ^
           *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xda0d942c)) ^ uVar41 ^ uVar33 ^ uVar46;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       CONCAT44(uVar9,uVar22) ^ 0x6ed7e10577fdc86d | CONCAT44(uVar14,uVar21) ^ 0xae0760411eb8c3c6;
  uVar16 = DAT_182670a0c;
  *(ulonglong *)(lVar4 + -0x660) = uVar28;
  uVar17 = DAT_182670a48;
  uVar21 = DAT_1826707f0;
  uVar33 = CONCAT44(uVar16,uVar16);
  local_118 = (byte)uVar20;
  *(ulonglong *)(lVar4 + -0x220) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xe9c1d85c)) ^ uVar41) >>
       ((local_118 ^ 4) & 0x3f) ^ uVar33;
  uVar52 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - (uVar36 ^ 0x7c72b769)) =
       (uVar41 ^ uVar28) << (((byte)uVar21 ^ 0xf) & 0x3f) ^ uVar52;
  uVar58 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar28 = uVar52 ^ *puVar1 | uVar33 ^ *(ulonglong *)(lVar4 + -0x220);
  uVar33 = CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(lVar4 + -0x890) = uVar28 ^ uVar58;
  *(ulonglong *)(lVar4 - (uVar56 ^ 0x29ac98a7)) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x56af05e7)) ^ uVar46) - uVar28 ^ uVar33;
  *(ulonglong *)(lVar4 + -0xbb0) =
       (uVar41 ^ *(ulonglong *)(lVar4 + -0x660)) << ((local_138 ^ 0xef) & 0x3f);
  uVar28 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar31 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *(ulonglong *)(lVar4 + -0x220) =
       *(ulonglong *)(lVar4 - (uVar34 ^ 0x56af0bdf)) ^ uVar28 ^ uVar50 ^
       *(ulonglong *)(lVar4 + -0xf0) ^ uVar57;
  uVar16 = DAT_182670a04;
  puVar47 = (ulonglong *)(lVar4 - (uVar49 ^ 0x2d286d32));
  *puVar47 = (*(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0xba517e52)) ^ uVar28) >>
             (((byte)uVar9 ^ 0x2c) & 0x3f) ^ uVar31;
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar16,uVar16);
  uVar40 = (*(ulonglong *)(DAT_1826707a0 - (uVar53 ^ 0x2d28622a)) ^ uVar28) <<
           (((byte)uVar10 ^ 0x16) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar40 ^ uVar35;
  uVar16 = DAT_182670af0;
  uVar40 = uVar31 ^ *puVar1 | uVar40;
  uVar31 = uVar40 ^ uVar52;
  *(ulonglong *)(lVar4 + -0x660) = uVar31;
  uVar42 = CONCAT44(uVar16,uVar16);
  uVar28 = *puVar2;
  *(ulonglong *)(lVar4 + -0xbb0) = (uVar57 ^ *(ulonglong *)(lVar4 + -0x420)) - uVar40 ^ uVar42;
  uVar21 = DAT_1826707f0;
  *(ulonglong *)(lVar4 + -0xf0) = uVar28 ^ uVar33 ^ uVar52 ^ uVar31 ^ uVar55;
  uVar57 = CONCAT44(DAT_182670a14,DAT_182670a14);
  local_b8 = (byte)uVar12;
  *puVar25 = (*(ulonglong *)(lVar4 - (uVar48 ^ 0xd249ea1d)) ^ uVar55) >> ((local_b8 ^ 0xd1) & 0x3f)
             ^ uVar57;
  uVar28 = CONCAT44(DAT_182670888,DAT_182670888);
  *puVar47 = (*(ulonglong *)(lVar4 + -0xf0) ^ uVar55) << ((local_118 ^ 0x2c) & 0x3f) ^ uVar28;
  uVar55 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar4 + -0xa18) =
       (uVar28 ^ *puVar1 | uVar57 ^ *(ulonglong *)(lVar4 + -0x220)) ^ uVar55;
  lVar4 = DAT_1826707a0;
  *puVar26 = CONCAT44(uVar10,uVar22) ^ 0x7f615c27d9750b2d |
             CONCAT44(uVar20,uVar21) ^ 0xa4e51cc055b28a65;
  uVar17 = DAT_1826709e8;
  uVar31 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar33 = (*puVar2 ^ uVar33) - (uVar55 ^ *(ulonglong *)(lVar4 + -0xa18)) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x660) = uVar33;
  uVar16 = DAT_1826709a8;
  lVar5 = DAT_1826707a0;
  uVar28 = *(ulonglong *)(lVar4 + -0xbb0);
  uVar40 = CONCAT44(uVar17,uVar17);
  uVar46 = uVar40 ^ *(ulonglong *)(lVar4 + -0x890) ^ uVar42 ^ uVar58 ^ uVar28;
  *(ulonglong *)(lVar4 + -0xf0) = uVar46;
  *puVar1 = CONCAT44(uVar7,uVar9) ^ 0xefb78efcd312957a;
  uVar17 = DAT_182670a54;
  uVar52 = (*(ulonglong *)(lVar5 - (uVar39 ^ 0xad39e45e)) ^ uVar40) >>
           (((byte)uVar14 ^ 0xf3) & 0x3f);
  uVar40 = (uVar40 ^ uVar46) << (((byte)DAT_1826707c4 ^ 0xcb) & 0x3f);
  *(ulonglong *)(lVar5 + -0x420) = uVar52 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_182670914;
  *puVar2 = uVar40 ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_182670950;
  uVar46 = CONCAT44(uVar16,uVar16);
  uVar40 = (uVar40 | uVar52) ^ uVar46;
  *(ulonglong *)(lVar5 + -0x890) = uVar40;
  uVar52 = CONCAT44(uVar17,uVar17);
  *puVar1 = (uVar42 ^ uVar28) - (*(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xad39ec3e)) ^ uVar46) ^
            uVar52;
  uVar39 = CONCAT44(DAT_182670a30,DAT_182670a30);
  *puVar38 = uVar39 ^ uVar46 ^ uVar40 ^ uVar31 ^ uVar33;
  lVar4 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670838,DAT_182670838);
  puVar47 = (ulonglong *)(DAT_1826707a0 + -0x220);
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0)) << (((byte)uVar13 ^ 0x57) & 0x3f);
  uVar28 = *(ulonglong *)(lVar4 + -0xf0);
  uVar40 = (uVar39 ^ *(ulonglong *)(lVar4 + -0xf0)) >> (((byte)uVar13 ^ 0x6b) & 0x3f);
  *(ulonglong *)(lVar4 + -0xf0) = CONCAT44(uVar20,uVar11) ^ uVar57 ^ *puVar47 ^ 0x3b00b4b27c51f702;
  uVar16 = DAT_182670a78;
  *puVar2 = uVar40 ^ uVar30;
  uVar30 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0xbb0) = (uVar39 ^ uVar28) << 0x27 ^ uVar33;
  puVar47 = (ulonglong *)(lVar4 - (uVar49 ^ 0x2d28622a));
  *puVar47 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0x7c72b1e1)) ^ uVar33 | uVar40) ^ uVar30;
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar46 ^ *(ulonglong *)(lVar4 + -0x890)) - *(longlong *)(lVar4 - (uVar51 ^ 0xede9fa1e));
  *(ulonglong *)(lVar4 - (uVar48 ^ 0xd249ecb5)) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0x660)) - (*(ulonglong *)(lVar4 + -0x438) ^ uVar45) ^
       uVar41;
  uVar16 = DAT_182670b0c;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x890) =
       (*puVar2 ^ uVar41) - (*(ulonglong *)(lVar4 - (uVar48 ^ 0xd249e8cd)) ^ uVar30) ^ uVar27;
  uVar28 = CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar22 = DAT_1826707f0 ^ 0xa2445f87;
  uVar21 = DAT_1826707cc ^ 0xb9f21caa;
  *(ulonglong *)(lVar5 + -0x420) =
       (*(ulonglong *)(lVar5 - (uVar53 ^ 0x2d286062)) ^ CONCAT44(uVar16,uVar16)) +
       (*(ulonglong *)(lVar5 + -0x6f0) ^ uVar44) ^ uVar28;
  uVar16 = DAT_182670978;
  *(uint *)(lVar5 - (uVar51 ^ 0xede9f9da)) = uVar22 + uVar21;
  uVar17 = DAT_182670910;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar56 ^ 0x29ac9cdf)) ^ uVar30) -
       (uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0x420)) ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_1826708ac;
  uVar31 = CONCAT44(uVar17,uVar17);
  uVar28 = uVar31 ^ uVar52 ^ uVar55 ^ *(ulonglong *)(lVar4 + -0xa18) ^ *puVar1;
  *puVar2 = uVar28;
  uVar17 = DAT_182670afc;
  uVar30 = CONCAT44(uVar16,uVar16);
  *puVar47 = (uVar28 ^ uVar31) >> ((local_138 ^ 0xde) & 0x3f) ^ uVar30;
  uVar16 = DAT_182670a10;
  lVar4 = DAT_1826707a0;
  uVar28 = *puVar2;
  uVar40 = (uVar31 ^ *puVar2) << (((byte)uVar14 ^ 0xe0) & 0x3f);
  puVar47 = (ulonglong *)(DAT_1826707a0 + -0x220);
  uVar36 = *(ulonglong *)(DAT_1826707a0 + -0x118);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar40 ^ CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 + -0xa18) = (uVar40 | uVar30 ^ *puVar47) ^ uVar35;
  uVar40 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x220) = (uVar31 ^ uVar28) - (CONCAT44(uVar8,uVar15) ^ 0xaa1a00eaf13b61a6)
  ;
  *(ulonglong *)(lVar4 - (uVar43 ^ 0x5040ac21)) = (uVar52 ^ *puVar23) - (uVar32 ^ uVar36) ^ uVar40;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xff0fa90e)) =
       (CONCAT44(uVar6,uVar12) ^ 0xb65370d3b2018ac0) - (CONCAT44(uVar3,uVar13) ^ 0x1e0fd227c27432eb)
  ;
  uVar16 = DAT_18267081c;
  *(ulonglong *)(lVar4 + -0x220) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0x660)) - (uVar35 ^ *(ulonglong *)(lVar4 + -0xa18)) ^
       CONCAT44(DAT_182670860,DAT_182670860);
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar9,uVar14) ^ 0x2cd3adc590140808) - (*(ulonglong *)(lVar4 + -0x1b8) ^ uVar54) ^
       uVar28;
  *(uint *)(lVar4 + -0x280) = *(uint *)(lVar4 - (uVar53 ^ 0x2d2867ee)) | DAT_1826707c4 ^ 0x78ea041f;
  uVar17 = DAT_182670980;
  uVar16 = DAT_182670908;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar48 ^ 0xd249e0f5)) ^ uVar35) +
            (*(ulonglong *)(lVar4 - (uVar43 ^ 0x5040ab59)) ^ uVar28) ^ uVar50;
  uVar43 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x56af09a7)) =
       *(ulonglong *)(CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar4 + -0x3d0)) ^ uVar43;
  uVar28 = (ulonglong)DAT_182670854;
  uVar40 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar3 = DAT_182670854 >> 5;
  uVar36 = uVar40 ^ *(ulonglong *)(lVar4 + -0x890) ^ uVar50 ^ uVar27 ^ *puVar1;
  *(ulonglong *)(lVar4 + -0x660) = uVar36;
  *(ulonglong *)(lVar4 + -0x118) = (uVar28 << 0x1b | (ulonglong)uVar3) ^ uVar36 >> 5 ^ uVar43;
  *(ulonglong *)(lVar4 + -0xa18) =
       CONCAT44(uVar7,uVar14) ^ 0x2db8e08482a5c9d7 | uVar33 ^ *(ulonglong *)(lVar4 + -0xbb0);
  *(ulonglong *)(lVar4 - (uVar49 ^ 0x2d286652)) = (uVar40 ^ uVar36) << 0x3b ^ uVar42;
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0xd32c5322)) ^ uVar43 | *puVar2 ^ uVar42) ^
            CONCAT44(DAT_182670900,DAT_182670900);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar24;
  return;
}



############ FUN_ 180c7d5f0 size=5413 ############

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

void FUN_180c7d5f0(void)

{
  byte bVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong *puVar14;
  ulonglong *puVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  byte bVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte bVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  
  uVar7 = DAT_1826707e0;
  uVar6 = DAT_1826707d4;
  uVar5 = DAT_1826707d0;
  uVar12 = DAT_1826707c4;
  lVar3 = DAT_1826707a0;
  uVar36 = (ulonglong)DAT_1826707b0;
  uVar23 = (ulonglong)DAT_1826707e0;
  uVar22 = (ulonglong)DAT_1826707d4;
  uVar38 = (ulonglong)DAT_1826707d0;
  uVar26 = DAT_1826707e0 | DAT_1826707d4;
  uVar30 = DAT_1826707c4 & DAT_1826707d0;
  uVar32 = *(uint *)(&DAT_18260f758 + DAT_182670d38) ^ DAT_1826707b0;
  uVar13 = DAT_1826707ec ^ DAT_1826707b0;
  uVar11 = *(uint *)(&DAT_18260f760 + DAT_182670d38) ^ DAT_1826707ec;
  uVar44 = (ulonglong)uVar13;
  uVar33 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  uVar19 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  uVar25 = (ulonglong)uVar30;
  uVar16 = (ulonglong)uVar26;
  DAT_1826707b8 = uVar30;
  DAT_1826707c0 = uVar13;
  DAT_1826707f0 = uVar26;
  *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x1c512ee)) =
       (CONCAT44(DAT_182670ac8,DAT_182670ac8) ^ *(ulonglong *)(DAT_1826707a0 + -0xcf8)) +
       (*(ulonglong *)(DAT_1826707a0 + -0x6b8) ^ uVar33) ^ uVar19;
  uVar9 = DAT_182670984;
  lVar4 = DAT_1826707a0;
  uVar29 = (ulonglong)uVar12;
  bVar1 = (byte)uVar26;
  bVar18 = (byte)uVar5;
  uVar27 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar30 ^ 0x4724c4c0)) =
       (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar33) << ((bVar1 ^ 0xff) & 0x3f) ^ uVar27;
  uVar28 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar4 + -0xf0) =
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar33) >> ((bVar18 ^ 0xa3) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0xff77f9db)) =
       (CONCAT44(uVar7,uVar12) ^ 0x5c33b9603c4276ba) <<
       (((byte)uVar9 ^ *(byte *)(lVar4 + -0xac0)) & 0x3f);
  uVar33 = uVar27 ^ *(ulonglong *)(lVar4 + -0xac0);
  uVar34 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(lVar4 + -0x610) = (uVar28 ^ *(ulonglong *)(lVar4 + -0xf0) | uVar33) ^ uVar34;
  uVar9 = _DAT_1826708f8;
  puVar17 = (ulonglong *)(lVar4 - (uVar16 ^ 0xfdf37fb7));
  uVar21 = CONCAT44(DAT_182670814,DAT_182670814);
  uVar28 = (ulonglong)DAT_1826707ec;
  *puVar17 = uVar33 << (((byte)DAT_1826708b8 ^ *(byte *)(DAT_1826707a0 - (uVar36 ^ 0xb8d335cf))) &
                       0x3f);
  lVar3 = DAT_1826707a0;
  puVar14 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xb9162311)) ^
       *(ulonglong *)(DAT_1826707a0 + -0x630) ^ uVar21 ^ uVar34 ^ uVar19;
  uVar10 = DAT_182670a80;
  uVar28 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar24 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar9,uVar9) ^ *puVar14) + (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar28) ^ uVar24;
  uVar34 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xb8d33bc7)) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0xfdf37c6f)) ^ uVar28) << 0x20 ^ uVar34;
  bVar37 = (byte)uVar6;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x4724c798)) =
       *(ulonglong *)(lVar3 + -0x630) ^ uVar19 ^ 0xe5a6f70e4abc57d2;
  uVar10 = DAT_182670b08;
  uVar31 = (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar28) >> ((bVar37 ^ 0x7c) & 0x3f);
  uVar33 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar31 ^ uVar33;
  uVar9 = DAT_182670ac4;
  uVar28 = CONCAT44(uVar10,uVar10);
  uVar31 = (uVar31 | *(ulonglong *)(lVar3 + -0xa18) ^ uVar34) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x660) = uVar31;
  uVar34 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x472cc7c0)) =
       uVar34 ^ uVar28 ^ uVar24 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0x588);
  uVar9 = DAT_182670aa8;
  uVar31 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  uVar34 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xff77f663)) ^ uVar34) +
           (CONCAT44(DAT_1826707b0,uVar13) ^ 0x962ef9cc7f6b1ebf);
  *(ulonglong *)(lVar3 + -0xd38) = uVar34 ^ uVar31;
  lVar3 = DAT_1826707a0;
  uVar19 = (CONCAT44(uVar13,uVar7) ^ 0xbbe774cfcb281a7d) +
           (*(ulonglong *)(DAT_1826707a0 + -0x630) ^ uVar19);
  uVar41 = CONCAT44(DAT_182670864,DAT_182670864);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar19 ^ CONCAT44(uVar9,uVar9);
  puVar43 = (ulonglong *)(lVar3 - (uVar36 ^ 0xb8d33d27));
  uVar28 = (ulonglong)DAT_1826707ec;
  *puVar43 = uVar19 + uVar34 ^ uVar41;
  puVar14 = (ulonglong *)(lVar3 - (uVar28 ^ 0xb9162839));
  uVar34 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar31 ^ *puVar14) << (((byte)uVar7 ^ 0xd1) & 0x3f) ^ uVar34;
  uVar10 = DAT_182670a28;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar22 ^ 0x5d626364)) ^ uVar31) >> ((bVar1 ^ 0xed) & 0x3f);
  *(ulonglong *)(lVar3 + -0x658) = uVar28 ^ CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar9 = DAT_182670874;
  uVar19 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0xb8d33767)) ^ uVar34 | uVar28) ^ uVar19;
  uVar8 = DAT_1826707ec;
  uVar28 = (ulonglong)DAT_1826707ec;
  uVar34 = CONCAT44(uVar9,uVar9);
  uVar35 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar3 + -0x410) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0x5d626eac)) ^ uVar34 ^ uVar19 ^ uVar41 ^
       *(ulonglong *)(lVar3 + -0xcf8);
  uVar9 = DAT_1826708c0;
  puVar15 = (ulonglong *)(lVar3 - (uVar28 ^ 0xb9162fc1));
  *puVar15 = (CONCAT44(uVar30,uVar8) ^ 0x783b18feb0b8b92d) +
             (*(ulonglong *)(lVar3 + -0x890) ^ uVar21) ^ uVar35;
  uVar21 = CONCAT44(uVar9,uVar9);
  puVar45 = (ulonglong *)(lVar3 - (uVar25 ^ 0x4724ce68));
  *puVar45 = (CONCAT44(uVar26,DAT_1826707b0) ^ 0xa67133cac078cdbb) +
             (uVar24 ^ *(ulonglong *)(lVar3 + -0x588)) ^ uVar21;
  bVar20 = (byte)uVar12;
  uVar35 = uVar35 ^ *(ulonglong *)(lVar3 + -0xac0);
  uVar31 = CONCAT44(DAT_18267092c,DAT_18267092c);
  uVar24 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x68)) + uVar35 ^ uVar31;
  uVar28 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar3 + -0x610) = uVar24;
  *(ulonglong *)(lVar3 + -0xd88) = uVar35 << ((bVar20 ^ 0x30) & 0x3f) ^ uVar28;
  uVar9 = DAT_1826708a8;
  uVar39 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar35 = uVar35 >> ((bVar18 ^ 0xb3) & 0x3f);
  uVar19 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(lVar3 + -0x998) = uVar35 ^ uVar39;
  uVar28 = (*(ulonglong *)(lVar3 - (uVar22 ^ 0x5d6263d4)) ^ uVar28 | uVar35) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x3b0) = uVar28;
  *(ulonglong *)(lVar3 + -0xa18) = CONCAT44(uVar7,uVar13) ^ 0xfdedf6f97fbf337f | 0xe0ecf2d85eb73040;
  *(ulonglong *)(lVar3 - (uVar25 ^ 0x4724c5b0)) = uVar19 ^ uVar39 ^ uVar24 ^ uVar31 ^ uVar28;
  uVar10 = DAT_182670a68;
  uVar28 = uVar39 ^ *(ulonglong *)(lVar3 + -0xbb0);
  uVar35 = uVar28 << 0x34;
  uVar24 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar41 = (uVar41 ^ *(ulonglong *)(lVar3 + -0xcf8)) + uVar28 ^ uVar24;
  *(ulonglong *)(lVar3 + -0x660) = uVar41;
  uVar8 = DAT_1826707ec;
  uVar28 = CONCAT44(DAT_1826707ec,DAT_1826707b0);
  *(ulonglong *)(lVar3 + -0x9e0) = uVar35 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182670960;
  *(ulonglong *)(lVar3 + -0x630) =
       (uVar28 ^ 0x18b96cfb66e7e422) >> (((byte)uVar9 ^ *(byte *)(lVar3 + -0x998)) & 0x3f);
  uVar9 = DAT_1826709d0;
  uVar25 = CONCAT44(uVar10,uVar10);
  uVar39 = (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0xbb0)) >> ((bVar18 ^ 0x8f) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar39 ^ uVar25;
  lVar3 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(DAT_1826707a0 + -0x610);
  uVar46 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = (uVar39 | uVar35) ^ uVar19;
  uVar35 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(lVar3 + -0x6b8) =
       *(ulonglong *)(lVar3 - (uVar29 ^ 0x472cc318)) ^ uVar46 ^ uVar19 ^ uVar41 ^ uVar24;
  uVar41 = uVar34 ^ *(ulonglong *)(lVar3 + -0x410);
  uVar19 = (ulonglong)DAT_182670b14;
  bVar2 = (byte)DAT_1826707b0;
  uVar31 = (uVar31 ^ uVar28) + uVar41 ^ uVar35;
  uVar41 = uVar41 << (((byte)uVar13 ^ 0xe7) & 0x3f);
  *(ulonglong *)(lVar3 + -0xf0) = uVar41 ^ CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar3 + -0x658) = uVar31;
  *(byte *)(lVar3 + -0xae9) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x390) ^ uVar19) ^ (byte)DAT_182670a40;
  uVar9 = DAT_182670870;
  puVar42 = (ulonglong *)(lVar3 - (uVar44 ^ 0x1c510ce));
  uVar28 = (uVar34 ^ *puVar42) >> ((bVar2 ^ 0xd8) & 0x3f);
  *(ulonglong *)(lVar3 + -0x890) = uVar28 ^ CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar39 = CONCAT44(uVar9,uVar9);
  uVar28 = (uVar41 | uVar28) ^ uVar39;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar28;
  lVar3 = DAT_1826707a0;
  uVar19 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *puVar17 = uVar35 ^ uVar28 ^ uVar19 ^ uVar39 ^ uVar31;
  uVar31 = *(ulonglong *)(lVar3 + -0x68) ^ uVar19;
  *(ulonglong *)(lVar3 + -0xac0) = uVar31 << ((bVar2 ^ 0xde) & 0x3f);
  uVar10 = DAT_182670a4c;
  uVar40 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0x1c514b6)) ^ uVar19) +
       (uVar24 ^ *(ulonglong *)(lVar3 + -0x660)) ^ uVar40;
  uVar24 = (*puVar45 ^ uVar19) << (((byte)uVar7 ^ 200) & 0x3f);
  uVar31 = uVar31 >> ((bVar20 ^ 9) & 0x3f);
  uVar12 = DAT_1826707ec ^ 0x65141d8;
  uVar26 = *(uint *)(lVar3 + -0x8e0) ^ DAT_1826708b8;
  *(ulonglong *)(lVar3 + -0xa18) = uVar24 ^ uVar33;
  uVar9 = DAT_18267099c;
  *(uint *)(lVar3 + -0xaf0) = uVar26 + uVar12;
  *(ulonglong *)(lVar3 + -0x3b0) = uVar31 ^ CONCAT44(uVar10,uVar10);
  uVar41 = CONCAT44(uVar9,uVar9);
  uVar28 = (ulonglong)DAT_1826707ec;
  *puVar43 = (uVar24 | uVar31) ^ uVar41;
  puVar17 = (ulonglong *)(lVar3 - (uVar28 ^ 0xb91629f9));
  *(ulonglong *)(lVar3 + -0x998) = -0x4ca969fb19fbb791 - (*puVar17 ^ uVar41);
  uVar24 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x472cc810)) =
       uVar24 ^ uVar41 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0xd88) ^ *(ulonglong *)(lVar3 + -0xcf8);
  uVar10 = DAT_182670a9c;
  uVar9 = DAT_182670944;
  *(undefined8 *)(lVar3 + -0xbb0) = 0;
  uVar33 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xfdf3763f)) =
       (uVar35 ^ *(ulonglong *)(lVar3 + -0x658)) + (uVar46 ^ *(ulonglong *)(lVar3 + -0x6b8)) ^
       uVar33;
  uVar46 = uVar46 ^ *(ulonglong *)(lVar3 + -0x6b8);
  *(ulonglong *)(lVar3 + -0x9c8) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar22 ^ 0x5d626554)) ^ uVar27) ^
       CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xd38) = uVar46 << ((bVar1 ^ 0xf7) & 0x3f) ^ uVar39;
  uVar46 = uVar46 >> ((bVar20 ^ 0x38) & 0x3f);
  *(ulonglong *)(lVar3 + -0x610) = uVar46 ^ uVar27;
  *(ulonglong *)(lVar3 + -0x410) = CONCAT44(uVar7,uVar6) ^ 0xf77defb77ed3fbcf | 0x715dc3212c93f04d;
  uVar12 = DAT_182670afc;
  uVar28 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  uVar29 = (uVar46 | *puVar14 ^ uVar39) ^ uVar28;
  *(ulonglong *)(lVar3 + -0xf0) = uVar29;
  uVar9 = DAT_1826709ac;
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar28 = uVar29 ^ *(ulonglong *)(lVar3 + -0x9e0) ^ uVar22 ^ uVar28 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x890) = uVar28;
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar29 = (uVar28 ^ uVar22) << (((byte)uVar13 ^ 0xdb) & 0x3f);
  uVar36 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0xb8d33c57)) ^ uVar40) + (uVar28 ^ uVar22) ^ uVar31;
  uVar28 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(lVar3 + -0x588) = uVar36;
  *(ulonglong *)(lVar3 + -0x660) = uVar29 ^ uVar28;
  uVar9 = DAT_182670a38;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x68) = uVar29 - (CONCAT44(uVar30,uVar5) ^ 0x9635c5e42dfa50ad);
  uVar10 = DAT_182670af8;
  uVar28 = (*(ulonglong *)(lVar3 + -0x890) ^ uVar22) >> (((byte)uVar30 ^ 0x3b) & 0x3f);
  *(ulonglong *)(lVar3 + -0xa18) = uVar28 ^ CONCAT44(uVar9,uVar9);
  uVar9 = DAT_182670820;
  uVar35 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x3b0) = (uVar28 | uVar29) ^ uVar35;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar27 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar4 + -0x998) =
       *(ulonglong *)(lVar4 - (uVar38 ^ 0xff77fc33)) ^ uVar29 ^ uVar35 ^ uVar31 ^ uVar36;
  uVar9 = DAT_182670810;
  *puVar17 = (*(ulonglong *)(lVar4 + -0x630) ^ uVar24) + (*(ulonglong *)(lVar4 + -0x9e0) ^ uVar33) ^
             uVar27;
  uVar24 = *(ulonglong *)(lVar4 + -0x630) ^ uVar24;
  uVar28 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar4 + -0xac0) = uVar24 << ((bVar37 ^ 0x79) & 0x3f) ^ uVar28;
  uVar9 = DAT_18267091c;
  uVar24 = uVar24 >> ((bVar18 ^ 0x98) & 0x3f);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar24 ^ CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar36 = CONCAT44(uVar9,uVar9);
  uVar28 = (*(ulonglong *)(lVar4 - (uVar44 ^ 0x1c51e1e)) ^ uVar28 | uVar24) ^ uVar36;
  uVar24 = CONCAT44(DAT_18267085c,DAT_18267085c);
  *(ulonglong *)(lVar4 + -0x658) = uVar28;
  uVar33 = CONCAT44(uVar8,DAT_1826707b4);
  *(ulonglong *)(lVar4 - (uVar16 ^ 0xfdf37617)) =
       *(ulonglong *)(lVar4 - (uVar23 ^ 0xb8d33d27)) ^ uVar28 ^ uVar24 ^ uVar36 ^ uVar27;
  uVar36 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ac ^ 0x27d06dd)) =
       (uVar33 ^ 0xe29469140c0b1de4) + (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar24) ^ uVar36;
  uVar6 = DAT_1826707d8;
  uVar12 = DAT_1826707c8;
  uVar39 = (ulonglong)DAT_1826707d8;
  *(uint *)(lVar4 + -0x9ec) = (DAT_1826707c4 ^ 0x8c088303) + *(int *)(lVar4 + -0x43c);
  uVar28 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *puVar42 = (CONCAT44(uVar5,uVar12) ^ 0x5a831741d0b36a2f) +
             (uVar31 ^ *(ulonglong *)(lVar4 + -0x588)) ^ uVar28;
  uVar9 = DAT_182670994;
  uVar33 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0x407c2a10)) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0xb8d335cf)) ^ uVar28) +
       (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar36) ^ uVar33;
  uVar36 = *(ulonglong *)(lVar4 + -0x6b8) ^ uVar36;
  uVar24 = uVar36 << ((bVar2 ^ 0xc6) & 0x3f);
  uVar16 = CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar28 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar4 + -0xd38) = uVar24 ^ CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar4 + -0xf0) = uVar36 >> ((bVar20 ^ 7) & 0x3f) ^ uVar16;
  uVar12 = DAT_1826707ec + uVar6;
  uVar28 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0xb99e25dd)) ^ uVar16 | uVar24) ^ uVar34;
  DAT_1826707b0 = uVar12;
  *(ulonglong *)(lVar4 + -0xd88) = uVar28;
  *(ulonglong *)(lVar4 + -0x68) = uVar34 ^ uVar33 ^ *(ulonglong *)(lVar4 + -0x610) ^ uVar22 ^ uVar28
  ;
  lVar3 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ec ^ 0xb9162d91)) =
       (uVar29 ^ *(ulonglong *)(lVar4 + -0x998)) + (CONCAT44(uVar12,uVar6) ^ 0x9c67fd1a3896cd96) ^
       uVar24;
  uVar28 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x407c2a60)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x407c20f8)) ^ uVar27) +
       (CONCAT44(uVar6,uVar12) ^ 0xf4c0b8774ce1bf37) ^ uVar28;
  lVar4 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  uVar16 = (*(ulonglong *)(lVar3 + -0x890) ^ uVar24) + (uVar28 ^ *(ulonglong *)(lVar3 + -0x660)) ^
           uVar34;
  *(ulonglong *)(lVar3 + -0xa18) = uVar16;
  bVar1 = (byte)uVar12;
  bVar18 = (byte)uVar6;
  *(ulonglong *)(lVar4 + -0x3b0) =
       (*(ulonglong *)(lVar4 + -0x890) ^ uVar24) << ((bVar1 ^ 0x20) & 0x3f) ^ uVar19;
  uVar28 = (*(ulonglong *)(lVar4 + -0x890) ^ uVar24) >> ((bVar18 ^ 0x1f) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9e0) = uVar28 ^ uVar25;
  uVar10 = DAT_182670998;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x630) =
       (*(ulonglong *)(lVar4 - (uVar39 ^ 0x407c2fb0)) ^ uVar19 | uVar28) ^ uVar35;
  uVar28 = CONCAT44(uVar10,uVar10);
  *puVar15 = *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0xf9925731)) ^ uVar16 ^ uVar28 ^ uVar34 ^
             uVar35;
  *(ulonglong *)(lVar3 + -0xbb0) =
       (CONCAT44(uVar8,uVar6) ^ 0x7be433a60a988d9a) >>
       (((byte)uVar9 ^ *(byte *)(lVar3 + -0x610)) & 0x3f);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x407c2a58)) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x610)) + (*(ulonglong *)(lVar3 + -0xac0) ^ uVar28) ^
       uVar41;
  uVar28 = *(ulonglong *)(lVar3 + -0xac0) ^ uVar28;
  uVar19 = uVar28 << ((bVar1 ^ 0x2f) & 0x3f);
  uVar16 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar19 ^ CONCAT44(DAT_182670934,DAT_182670934);
  uVar28 = uVar28 >> ((bVar1 ^ 0x13) & 0x3f);
  *(ulonglong *)(lVar3 + -0x588) = uVar28 ^ uVar29;
  uVar9 = DAT_18267098c;
  *(ulonglong *)(lVar3 + -0x410) = (uVar28 | uVar19) ^ uVar21;
  *(uint *)(lVar3 + -0xb54) = (uVar6 ^ 0x546e634) * 0x62c273b9;
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xb91623b9)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x407c2810)) ^ CONCAT44(uVar9,uVar9) ^ uVar21 ^
       uVar41 ^ *(ulonglong *)(lVar3 + -0x658);
  uVar9 = DAT_182670a2c;
  uVar33 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar3 + -0xd38) =
       (*(ulonglong *)(lVar3 + -0xa18) ^ uVar34) + (*(ulonglong *)(lVar3 + -0x68) ^ uVar22) ^ uVar33
  ;
  uVar29 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0xf9925169)) ^ uVar22) <<
           ((bVar18 ^ 0xc) & 0x3f);
  uVar28 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(lVar3 + -0xf0) = uVar29 ^ CONCAT44(uVar9,uVar9);
  uVar19 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar3 + -0xd88) =
       (*(ulonglong *)(lVar3 + -0x68) >> 0x20 ^ (ulonglong)DAT_182670afc) >> 0x14 ^ uVar28;
  uVar9 = DAT_182670928;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0xf9925899)) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0xb9162889)) ^ uVar28 | uVar29) ^ uVar19;
  uVar28 = (ulonglong)DAT_1826707c8;
  uVar16 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  uVar29 = *(ulonglong *)(lVar3 + -0xd38) ^ uVar16 ^ uVar19 ^ uVar33 ^
           *(ulonglong *)(lVar3 + -0x998);
  *(ulonglong *)(lVar3 + -0xcf8) = uVar29;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0xf9925761)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xab931aba)) ^ uVar41) + (uVar29 ^ uVar16) ^
       CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(lVar3 + -0xcf8);
  uVar29 = CONCAT44(DAT_182670804,DAT_182670804);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar11 * 4) = uVar32;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x407c2490)) =
       (uVar16 ^ uVar28) << ((bVar18 ^ 0x3a) & 0x3f) ^ uVar29;
  return;
}



############ FUN_ 180cf2ee0 size=5512 ############

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

void FUN_180cf2ee0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  int iVar3;
  int iVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  byte bVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  byte bVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong *puVar43;
  uint uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte bVar48;
  ulonglong uVar49;
  ulonglong *puVar50;
  ulonglong *puVar51;
  ulonglong uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong *puVar55;
  ulonglong uVar56;
  byte local_110;
  
  uVar17 = _DAT_1826709e0;
  uVar14 = DAT_182670860;
  uVar13 = DAT_1826707f0;
  uVar12 = DAT_1826707e0;
  uVar11 = DAT_1826707c4;
  uVar9 = DAT_1826707b8;
  uVar8 = DAT_1826707b4;
  lVar6 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707e0;
  uVar39 = (ulonglong)DAT_1826707b4;
  uVar47 = (ulonglong)DAT_1826707f0;
  uVar29 = (ulonglong)DAT_1826707b8;
  uVar44 = DAT_1826707f0 ^ DAT_1826707b8;
  uVar24 = *(uint *)(&DAT_18260f758 + DAT_182670bb0) ^ DAT_1826707b4;
  uVar34 = (DAT_1826707e0 << 0x10 | DAT_1826707e0 & 0xff00) << 8 | DAT_1826707e0 >> 8 & 0xff00 |
           DAT_1826707e0 >> 0x18;
  uVar19 = DAT_1826707b4 * DAT_1826707c4;
  uVar52 = (ulonglong)uVar19;
  uVar20 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar19 ^ 0x6712a585) + (longlong)DAT_182670bb0) ^
           DAT_1826707c4;
  uVar30 = (ulonglong)DAT_1826707f0;
  uVar21 = (ulonglong)uVar34;
  bVar5 = (byte)DAT_1826707b8;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  DAT_1826707ac = uVar34;
  DAT_1826707d4 = uVar44;
  DAT_1826707ec = uVar19;
  *(uint *)(DAT_1826707a0 + -0x68c) = (DAT_1826707e0 ^ 0x73c0fc04) << ((bVar5 ^ 0x1b) & 0x1f);
  uVar18 = DAT_182670a0c;
  uVar15 = DAT_1826709c0;
  bVar22 = (byte)uVar13;
  uVar25 = (CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar6 + -0x890)) >> ((bVar22 ^ 0x75) & 0x3f);
  *(ulonglong *)(lVar6 + -0x438) = uVar25 ^ CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(uVar18,uVar18);
  *puVar2 = (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0x1b8) | uVar25) ^ uVar36;
  uVar49 = (ulonglong)uVar44;
  *(uint *)(lVar6 - ((ulonglong)uVar8 ^ 0xfbafac7f)) =
       (uVar44 ^ 0x47bbc214) >> (((byte)uVar11 ^ 0xaf) & 0x1f);
  lVar6 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar31 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar44 ^ 0x676297bc)) =
       uVar31 ^ uVar25 ^ uVar36 ^ *puVar2 ^ *(ulonglong *)(DAT_1826707a0 + -0xac0);
  uVar14 = DAT_182670a70;
  uVar10 = DAT_1826707c0;
  uVar37 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar6 + -0xa18) =
       (CONCAT44(uVar8,uVar34) ^ 0xe6bca686b4ef753e) >> ((bVar22 ^ 0x78) & 0x3f);
  lVar7 = DAT_1826707a0;
  uVar23 = ~uVar10;
  uVar36 = (ulonglong)uVar23;
  uVar45 = CONCAT44(uVar14,uVar14);
  DAT_1826707a8 = uVar23;
  *(ulonglong *)(lVar6 - (uVar36 ^ 0x5e27a66)) =
       (CONCAT44(DAT_1826708ac,DAT_1826708ac) ^ *(ulonglong *)(lVar6 + -0xb70)) +
       (uVar25 ^ *(ulonglong *)(lVar6 + -0x5c0)) ^ uVar45;
  lVar6 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  puVar1 = (ulonglong *)(lVar7 + -0x548);
  bVar27 = (byte)uVar12;
  *puVar1 = (*(ulonglong *)(lVar7 - ((ulonglong)uVar10 ^ 0xfa1d8be9)) ^ uVar25) <<
            ((bVar27 ^ 0xcf) & 0x3f) ^ uVar35;
  uVar14 = DAT_182670ab4;
  uVar40 = (uVar25 ^ *(ulonglong *)(lVar6 + -0x5c0)) >> (((byte)uVar10 ^ 0x12) & 0x3f);
  *(ulonglong *)(lVar6 + -0x9c8) = uVar40 ^ CONCAT44(DAT_182670840,DAT_182670840);
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0xd88) =
       (*(ulonglong *)(lVar6 - (uVar21 ^ 0xcacabaf7)) ^ uVar35 | uVar40) ^ uVar25;
  *(ulonglong *)(lVar6 - (uVar49 ^ 0x67629424)) =
       uVar40 - (CONCAT44(uVar19,uVar23) ^ 0x1d644f62204b3b19);
  uVar14 = DAT_18267092c;
  uVar56 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar41 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(ulonglong *)(lVar6 + -0x410) =
       *(ulonglong *)(lVar6 - (uVar21 ^ 0xcacab237)) ^ uVar56 ^ uVar25 ^ uVar45 ^
       *(ulonglong *)(lVar6 + -0xbb0);
  uVar53 = CONCAT44(uVar14,uVar14);
  bVar48 = (byte)uVar44;
  *(ulonglong *)(lVar6 - (uVar30 ^ 0xe273ae4d)) =
       (*(ulonglong *)(lVar6 - (uVar39 ^ 0xfbafa56b)) ^ uVar31) +
       (*(ulonglong *)(lVar6 + -0x660) ^ uVar41) ^ uVar53;
  uVar32 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar31 = (*(ulonglong *)(lVar6 + -0x660) ^ uVar41) << ((bVar48 ^ 0x59) & 0x3f);
  uVar35 = (ulonglong)uVar11;
  *(ulonglong *)(lVar6 + -0x588) = uVar31 ^ uVar32;
  uVar16 = DAT_182670970;
  uVar40 = (ulonglong)DAT_182670970;
  uVar33 = CONCAT44(DAT_182670970,DAT_182670970);
  uVar25 = (*(ulonglong *)(lVar6 - (uVar35 ^ 0xcacab9df)) ^ uVar41) >> ((bVar27 ^ 0xd1) & 0x3f);
  uVar42 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar25 ^ CONCAT44(DAT_1826708a8,DAT_1826708a8);
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar52 ^ 0x6712a385)) = (uVar25 | uVar31) ^ uVar42;
  uVar30 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  puVar50 = (ulonglong *)(lVar6 - (uVar36 ^ 0x5e277c6));
  puVar51 = (ulonglong *)(lVar6 - (uVar39 ^ 0xfbafa64b));
  uVar25 = uVar30 ^ uVar42 ^ uVar53 ^ *puVar50 ^ *(ulonglong *)(lVar6 + -0x220);
  *(ulonglong *)(lVar6 + -0x630) = uVar25;
  *puVar51 = (uVar25 ^ uVar30) + (CONCAT44(uVar9,uVar12) ^ 0x9e80982d995a022b) ^ uVar33;
  uVar45 = uVar45 ^ *(ulonglong *)(lVar6 + -0xbb0);
  *(ulonglong *)(lVar6 + -0xf0) = (uVar30 ^ *(ulonglong *)(lVar6 + -0x630)) - uVar45;
  uVar25 = CONCAT44(DAT_182670858,DAT_182670858);
  uVar45 = (CONCAT44(uVar13,uVar23) ^ 0x5851cc7c76195a74) + uVar45;
  uVar41 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar45 ^ uVar25;
  lVar6 = DAT_1826707a0;
  uVar46 = (*(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0x5e2776e)) ^ uVar25) +
           (*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xcacab65f)) ^ uVar33) ^ uVar41;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar46;
  uVar31 = (*(ulonglong *)(lVar6 + -0x9e0) ^ uVar33) << ((bVar22 ^ 0x74) & 0x3f) ^ uVar33;
  uVar40 = (*(ulonglong *)(lVar6 + -0x9e0) >> 0x20 ^ uVar40) >> 7;
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar31;
  uVar14 = DAT_182670924;
  lVar6 = DAT_1826707a0;
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0x630);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (CONCAT44(uVar19,uVar8) ^ 0x4d4322666d9343d2) >> (((byte)uVar31 ^ (byte)uVar16) & 0x3f);
  *(ulonglong *)(lVar6 + -0x438) = uVar40 ^ CONCAT44(uVar14,uVar14);
  lVar6 = DAT_1826707a0;
  *puVar2 = uVar45 | uVar30 ^ uVar25;
  uVar14 = DAT_182670828;
  uVar38 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(lVar6 + -0xa18) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar49 ^ 0x67629aec)) ^ uVar33 | uVar40) ^ uVar38;
  uVar33 = CONCAT44(uVar14,uVar14);
  uVar25 = *(ulonglong *)(lVar6 + -0x220);
  *(ulonglong *)(lVar6 + -0xb70) =
       *(ulonglong *)(lVar6 - (uVar35 ^ 0xcacab5a7)) ^ uVar33 ^ uVar38 ^ uVar41 ^ uVar46;
  *(ulonglong *)(lVar6 + -0x5c0) = CONCAT44(uVar13,uVar8) ^ 0xfee3be5fcfb7aed7 | 0xfae03e5383352e97;
  uVar45 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar40 = (*(ulonglong *)(lVar6 - (uVar28 ^ 0xbfbfceda)) ^ uVar56) +
           (CONCAT44(uVar10,uVar34) ^ 0xc50258d7c364238e);
  *puVar1 = uVar40 ^ uVar45;
  uVar15 = DAT_1826709c8;
  uVar30 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(lVar6 + -0x9c8) =
       (CONCAT44(uVar44,uVar44) ^ 0x80945b41b4925c04) + (uVar53 ^ uVar25) ^ uVar30;
  uVar31 = CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xcacab9e7)) =
       (*(ulonglong *)(lVar6 - (uVar37 ^ 0xfa1d87e1)) ^ uVar30) + uVar40 ^ uVar31;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       CONCAT44(uVar10,uVar11) ^ 0x89f6881d596c2610 | CONCAT44(uVar19,uVar13) ^ 0xc3ac15b8cc6158f1;
  uVar25 = *puVar1;
  uVar30 = (uVar45 ^ *puVar1) << (((byte)(uVar12 >> 0x18) ^ 0x9e) & 0x3f);
  *(ulonglong *)(lVar6 + -0xac0) = uVar30 ^ CONCAT44(DAT_182670884,DAT_182670884);
  uVar14 = DAT_1826708e4;
  *(ulonglong *)(lVar6 + -0x660) =
       (CONCAT44(uVar9,uVar23) ^ 0xad987d6da643d6a3) >>
       (((byte)uVar15 ^ *(byte *)(lVar6 + -0x9c8)) & 0x3f);
  uVar40 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 + -0x588) = (uVar45 ^ uVar25) >> ((bVar48 ^ 99) & 0x3f) ^ uVar40;
  puVar43 = (ulonglong *)(lVar6 - (uVar21 ^ 0xcacaba37));
  uVar25 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = (uVar30 | *puVar43 ^ uVar40) ^ uVar25;
  lVar6 = DAT_1826707a0;
  uVar54 = CONCAT44(DAT_182670914,DAT_182670914);
  puVar26 = (ulonglong *)(DAT_1826707a0 - (uVar52 ^ 0x6712a15d));
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xcacab9af)) =
       *puVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x658) ^ uVar54 ^ uVar25 ^ uVar31;
  uVar14 = _DAT_1826708c8;
  uVar53 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar6 + -0xf0) =
       (*(ulonglong *)(lVar6 - (uVar52 ^ 0x6712a1b5)) ^ uVar41) +
       (*(ulonglong *)(lVar6 + -0x610) ^ uVar54) ^ uVar53;
  uVar46 = CONCAT44(uVar14,uVar14);
  bVar22 = (byte)uVar8;
  *(ulonglong *)(lVar6 - (uVar47 ^ 0xe273a7dd)) =
       (*(ulonglong *)(lVar6 - (uVar28 ^ 0xbfbfccda)) ^ uVar54) << 0x2e ^ uVar46;
  lVar6 = DAT_1826707a0;
  uVar41 = CONCAT44(DAT_182670878,DAT_182670878);
  *(ulonglong *)(DAT_1826707a0 - (uVar52 ^ 0x6712a42d)) =
       (uVar54 ^ *puVar50) >> ((bVar22 ^ 0xb9) & 0x3f) ^ uVar41;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar6 + -0xb70);
  uVar25 = CONCAT44(DAT_18267081c,DAT_18267081c);
  uVar30 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar6 + -0x9e0) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0x1b8) | uVar46 ^ *(ulonglong *)(lVar6 + -0xbb0)) ^ uVar25;
  *(ulonglong *)(lVar6 + -0x630) =
       *(ulonglong *)(lVar6 - (uVar28 ^ 0xbfbfca3a)) ^ *puVar51 ^ uVar30 ^ uVar25 ^ uVar53;
  uVar45 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (*(ulonglong *)(lVar6 - (uVar47 ^ 0xe273aa35)) ^ uVar31) + uVar33 ^ uVar45;
  *puVar2 = (CONCAT44(uVar9,uVar10) ^ 0xa1db61bbb40e2804) -
            (CONCAT44(uVar12,uVar13) ^ 0x75b40b09b3d89e23);
  uVar14 = DAT_182670af8;
  local_110 = (byte)uVar19;
  uVar41 = uVar33 << ((local_110 ^ 0x99) & 0x3f);
  *(ulonglong *)(lVar6 + -0x890) = uVar41 ^ CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 + -0x438) = uVar33 >> (((byte)uVar11 ^ 0x8b) & 0x3f) ^ uVar25;
  uVar14 = DAT_182670880;
  lVar6 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670874,DAT_182670874);
  puVar50 = (ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0x5e27bce));
  *puVar50 = (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xbfbfcef2)) ^ uVar25 | uVar41) ^ uVar31;
  uVar15 = DAT_18267090c;
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar25 = *(ulonglong *)(lVar6 - (uVar52 ^ 0x6712a32d)) ^ uVar41 ^ uVar31 ^
           *(ulonglong *)(lVar6 + -0xa18) ^ uVar45;
  *(ulonglong *)(lVar6 + -0x5c0) = uVar25;
  uVar25 = uVar41 ^ uVar25;
  *(ulonglong *)(lVar6 + -0x410) =
       *(ulonglong *)(CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar6 + -0x7b8)) ^
       CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar6 + -0x220) = (*(ulonglong *)(lVar6 + -0xf0) ^ uVar53) + uVar25 ^ uVar32;
  *(ulonglong *)(lVar6 - (uVar52 ^ 0x6712a81d)) = uVar25 << ((bVar5 ^ 0x2b) & 0x3f) ^ uVar53;
  uVar14 = DAT_182670a74;
  uVar25 = (uVar41 ^ *(ulonglong *)(lVar6 + -0x5c0)) >> ((bVar48 ^ 0x7a) & 0x3f);
  *(ulonglong *)(lVar6 + -0x660) = uVar25 ^ CONCAT44(DAT_182670928,DAT_182670928);
  uVar41 = CONCAT44(uVar14,uVar14);
  uVar25 = (uVar53 ^ *(ulonglong *)(lVar6 + -0xd88) | uVar25) ^ uVar41;
  *(ulonglong *)(lVar6 + -0x9c8) = uVar25;
  lVar7 = DAT_1826707a0;
  *puVar1 = uVar41 ^ uVar54 ^ uVar32 ^ uVar25 ^ *(ulonglong *)(lVar6 + -0x220);
  uVar33 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar56 = (uVar30 ^ *(ulonglong *)(lVar7 + -0x630)) + (uVar45 ^ *(ulonglong *)(lVar7 + -0x6b8)) ^
           uVar33;
  uVar53 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar7 + -0xac0) = uVar56;
  uVar45 = (*(ulonglong *)(lVar7 - (uVar47 ^ 0xe273aa5d)) ^ uVar30) << ((bVar22 ^ 0xbd) & 0x3f);
  uVar31 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar7 + -0x588) = uVar45 ^ uVar53;
  uVar30 = (*(ulonglong *)(lVar7 - (uVar29 ^ 0x85113821)) ^ uVar30) >> ((bVar27 ^ 0xe0) & 0x3f);
  uVar25 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar7 + -0x4c8) = uVar30 ^ uVar31;
  uVar31 = (uVar30 | uVar45) ^ uVar25;
  *(ulonglong *)(lVar7 + -0x420) = uVar31;
  puVar51 = (ulonglong *)(lVar7 - (uVar35 ^ 0xcacaba37));
  *(ulonglong *)(lVar7 + -0x610) = uVar53 ^ *puVar51 ^ 0x7b34c92d0ae4c0a;
  puVar55 = (ulonglong *)(lVar7 - (uVar29 ^ 0x85113fa9));
  *puVar55 = uVar25 ^ uVar33 ^ uVar31 ^ uVar42 ^ uVar56;
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xfa1d87c9)) =
       (uVar42 ^ *(ulonglong *)(lVar7 + -0x1b8)) + (uVar32 ^ *(ulonglong *)(lVar7 + -0x220)) ^
       uVar38;
  *(ulonglong *)(lVar7 + -0x658) =
       *(ulonglong *)(lVar7 - (uVar21 ^ 0xcacab677)) ^ uVar41 |
       CONCAT44(uVar23,uVar12) ^ 0xe9f7df58f39d130;
  uVar42 = uVar42 ^ *(ulonglong *)(lVar7 + -0x1b8);
  uVar25 = *(ulonglong *)(lVar7 + -0xac0);
  uVar41 = uVar42 << (((byte)uVar23 ^ 0xf6) & 0x3f);
  uVar42 = uVar42 >> ((bVar27 ^ 0xea) & 0x3f);
  *puVar2 = uVar41 ^ uVar40;
  uVar31 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(lVar7 + -0xb70) = uVar42 ^ CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar14 = DAT_182670950;
  uVar30 = (uVar42 | uVar41) ^ uVar31;
  *(ulonglong *)(lVar7 + -0x890) = uVar30;
  uVar41 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar7 + -0x438) =
       uVar41 ^ uVar31 ^ uVar38 ^ uVar30 ^ *(ulonglong *)(lVar7 + -0x9e0);
  *(ulonglong *)(lVar7 + -0xa18) =
       CONCAT44(uVar8,uVar11) ^ 0x2564c45dea9b8e73 | uVar46 ^ *(ulonglong *)(lVar7 + -0xbb0);
  uVar10 = DAT_182670844;
  uVar45 = CONCAT44(DAT_182670838,DAT_182670838);
  uVar31 = (ulonglong)DAT_182670844;
  *(ulonglong *)(lVar7 - (uVar35 ^ 0xcacabbaf)) = (uVar33 ^ uVar25) + (uVar54 ^ *puVar1) ^ uVar45;
  uVar30 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = (uVar54 ^ *puVar1) << ((bVar5 ^ 0x31) & 0x3f) ^ uVar30;
  lVar6 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = (uVar54 ^ *puVar1) >> ((bVar27 ^ 0xea) & 0x3f) ^ uVar25;
  *(ulonglong *)(lVar6 - (uVar37 ^ 0xfa1d83a1)) = (uVar40 ^ *puVar2) + 0x2f0a86241a77b12d;
  uVar14 = DAT_182670acc;
  *(ulonglong *)(lVar6 + -0x660) =
       (uVar25 ^ *(ulonglong *)(lVar6 + -0x5c0) | uVar30 ^ *(ulonglong *)(lVar6 + -0xf0)) ^ uVar38;
  uVar25 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar47 ^ 0xe273aad5)) =
       *(ulonglong *)(lVar6 - (uVar52 ^ 0x6712a3f5)) ^ uVar25 ^ uVar45 ^ uVar38 ^
       *(ulonglong *)(lVar6 + -0x410);
  uVar40 = CONCAT44(DAT_182670a08,DAT_182670a08);
  *(ulonglong *)(lVar6 - (uVar35 ^ 0xcacab98f)) =
       (uVar25 ^ *(ulonglong *)(lVar6 + -0x6b8)) + (CONCAT44(uVar8,uVar34) ^ 0x1c596696193a71c7) ^
       uVar40;
  uVar47 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar6 + -0x4c8) =
       (*(ulonglong *)(lVar6 - (uVar49 ^ 0x67629b9c)) ^ uVar38) +
       (CONCAT44(uVar13,uVar12) ^ 0x478744afc49fbc07) ^ uVar47;
  uVar14 = DAT_182670918;
  *(ulonglong *)(lVar6 + -0x588) =
       (*(ulonglong *)(lVar6 - (uVar36 ^ 0x5e277e6)) ^ uVar40) + (uVar47 ^ *puVar26) ^ uVar32;
  uVar33 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x85113801)) =
       (uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) << ((bVar22 ^ 0xa5) & 0x3f) ^ uVar33;
  uVar25 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       (uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x630)) >> (((byte)uVar23 ^ 0xe4) & 0x3f) ^ uVar25;
  uVar40 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar25 = (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xcacabb9f)) ^ uVar25 |
           uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x610)) ^ uVar40;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar25;
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xbfbfc302)) =
       CONCAT44(DAT_18267099c,DAT_18267099c) ^ *puVar43 ^ uVar32 ^ uVar25 ^ uVar40;
  uVar14 = DAT_182670a50;
  lVar6 = DAT_1826707a0;
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0x410);
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0xfa1d8a11)) ^ uVar41) +
       (CONCAT44(uVar9,uVar23) ^ 0xe0e4920a7d08904d) ^ uVar30;
  uVar35 = CONCAT44(uVar14,uVar14);
  *puVar55 = (CONCAT44(uVar12,uVar34) ^ 0x840bf3ec7b3de21d) + (uVar45 ^ *puVar26) ^ uVar35;
  uVar14 = DAT_18267093c;
  *(ulonglong *)(lVar6 + -0xb70) =
       (*(ulonglong *)(lVar6 - (uVar52 ^ 0x6712a01d)) ^ uVar32) << ((bVar5 ^ 0x2c) & 0x3f);
  uVar30 = uVar30 ^ *(ulonglong *)(lVar6 + -0x658);
  uVar25 = CONCAT44(uVar14,uVar14);
  uVar40 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar6 + -0x890) =
       (*(ulonglong *)(lVar6 - (uVar37 ^ 0xfa1d8f91)) ^ uVar35) + uVar30 ^ uVar25;
  uVar30 = uVar30 << (((byte)DAT_1826707e4 ^ 0x54) & 0x3f);
  *(ulonglong *)(lVar6 + -0xbb0) = uVar30 ^ uVar40;
  iVar3 = *(int *)(lVar6 - (uVar36 ^ 0x5e27be2));
  iVar4 = *(int *)(lVar6 - (uVar39 ^ 0xfbafafbf));
  *(ulonglong *)(lVar6 + -0xa18) =
       (*(ulonglong *)(lVar6 + -0x658) >> 0x20 ^ uVar31) >> 0x10 ^ uVar47;
  *(int *)(lVar6 + -0x598) = iVar3 - iVar4;
  uVar31 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar6 + -0xac0) = (uVar47 ^ *puVar50 | uVar30) ^ uVar31;
  uVar14 = DAT_182670940;
  uVar36 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  uVar25 = *(ulonglong *)(lVar6 - (uVar28 ^ 0xbfbfc25a)) ^
           *(ulonglong *)(lVar6 - (uVar21 ^ 0xcacab57f)) ^ uVar36 ^ uVar31 ^ uVar25;
  *puVar1 = uVar25;
  *puVar2 = (*puVar51 ^ uVar32) + (uVar25 ^ uVar36) ^ CONCAT44(uVar14,uVar14);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar24;
  return;
}



############ FUN_ 180cfc000 size=5651 ############

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

void FUN_180cfc000(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  uint uVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  byte bVar23;
  byte bVar24;
  uint uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  uint uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  uint uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong uVar58;
  byte local_res18;
  byte local_110;
  
  uVar11 = DAT_182670838;
  uVar15 = DAT_1826707f4;
  uVar14 = DAT_1826707e4;
  uVar13 = DAT_1826707d4;
  uVar12 = DAT_1826707c4;
  uVar10 = DAT_1826707b8;
  uVar26 = DAT_1826707b4;
  uVar9 = DAT_1826707b0;
  uVar21 = DAT_1826707a8;
  lVar7 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707d4;
  uVar51 = (ulonglong)DAT_1826707b0;
  uVar57 = (ulonglong)DAT_1826707e4;
  uVar28 = (ulonglong)DAT_1826707f4;
  uVar56 = (ulonglong)DAT_1826707a8;
  DAT_1826707bc = DAT_1826707d4 + DAT_1826707b0;
  uVar30 = (ulonglong)DAT_1826707b8;
  uVar55 = DAT_1826707e4 - DAT_1826707b8;
  uVar6 = DAT_1826707dc + DAT_1826707b4;
  uVar37 = (ulonglong)uVar6;
  uVar46 = DAT_1826707f4 << 0x10 | DAT_1826707f4 >> 0x10;
  uVar25 = DAT_1826707a8 - DAT_1826707c4;
  uVar19 = *(uint *)(&DAT_18260f750 + (uVar37 ^ 0xf9f3e62) + (longlong)DAT_182670bcc) ^
           DAT_1826707dc;
  uVar20 = *(uint *)(&DAT_18260f760 + DAT_182670bcc) ^ DAT_1826707b4;
  bVar23 = (byte)uVar25;
  uVar39 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar36 = (ulonglong)uVar25;
  uVar42 = (ulonglong)DAT_182670838;
  DAT_1826707c0 = uVar55;
  DAT_1826707cc = uVar46;
  DAT_1826707d0 = uVar6;
  DAT_1826707e0 = uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       (uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) << ((bVar23 ^ 0x61) & 0x3f);
  lVar8 = DAT_1826707a0;
  puVar52 = (ulonglong *)(lVar7 + -0xd38);
  puVar29 = (ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0xcacab72f));
  uVar22 = CONCAT44(uVar11,uVar11);
  uVar33 = CONCAT44(DAT_182670934,DAT_182670934);
  uVar45 = (ulonglong)uVar46;
  *puVar52 = (uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8) | *puVar29 ^ uVar39) ^ uVar33;
  uVar16 = DAT_1826708d8;
  puVar40 = (ulonglong *)(lVar8 - (uVar45 ^ 0xd0b9e388));
  *puVar40 = ((ulonglong)(uVar11 >> 0x11) | uVar42 << 0xf) ^ *(ulonglong *)(lVar8 + -0x6b8) >> 0x11;
  uVar17 = DAT_1826709c8;
  puVar1 = (ulonglong *)(lVar8 + -0xbb0);
  uVar53 = CONCAT44(uVar16,uVar16);
  uVar39 = CONCAT44(DAT_182670964,DAT_182670964);
  *(ulonglong *)(lVar8 + -0x5c0) =
       *(ulonglong *)(lVar8 - (uVar51 ^ 0x2c6543b9)) ^ *puVar52 ^ uVar39 ^ uVar53 ^ uVar33;
  uVar34 = CONCAT44(DAT_182670a04,DAT_182670a04);
  puVar41 = (ulonglong *)(DAT_1826707a0 + -0x610);
  uVar50 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar15 ^ 0xe600dd31)) =
       (CONCAT44(uVar17,uVar17) ^ *puVar1) + (uVar34 ^ *(ulonglong *)(lVar8 + -0x220)) ^ uVar50;
  uVar11 = DAT_1826707bc;
  lVar7 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_1826707bc;
  bVar24 = (byte)DAT_1826707bc;
  uVar47 = CONCAT44(DAT_182670864,DAT_182670864);
  *puVar41 = (uVar34 ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) << ((bVar24 ^ 0xf8) & 0x3f) ^ uVar47;
  lVar8 = DAT_1826707a0;
  uVar42 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x851137f1)) =
       (*(ulonglong *)(lVar7 - ((ulonglong)uVar12 ^ 0xcacabd9f)) ^ uVar34) >>
       (((byte)uVar13 ^ 199) & 0x3f) ^ uVar42;
  uVar33 = CONCAT44(DAT_182670880,DAT_182670880);
  puVar2 = (ulonglong *)(lVar8 + -0xac0);
  uVar42 = (*(ulonglong *)(lVar8 + -0x9e0) ^ uVar42 | *puVar41 ^ uVar47) ^ uVar33;
  *(ulonglong *)(lVar8 + -0x410) = uVar42;
  *puVar2 = (uVar22 ^ *(ulonglong *)(lVar8 + -0x6b8)) + 0xb4a7bf3d8de7a7ac;
  uVar16 = DAT_1826708e0;
  uVar43 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  uVar35 = (ulonglong)uVar55;
  uVar42 = uVar43 ^ uVar42 ^ uVar33 ^ uVar50 ^ *(ulonglong *)(lVar8 + -0xd88);
  *(ulonglong *)(lVar8 + -0x658) = uVar42;
  uVar31 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar8 - ((ulonglong)uVar55 ^ 0x935ce013)) =
       (uVar43 ^ uVar42) + (*(ulonglong *)(lVar8 + -0x1b8) ^ uVar39) ^ uVar31;
  uVar48 = CONCAT44(DAT_182670994,DAT_182670994);
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x438);
  local_110 = (byte)uVar21;
  *puVar3 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0x186e241c)) ^ uVar43) <<
            ((local_110 ^ 0x3c) & 0x3f) ^ uVar48;
  lVar7 = DAT_1826707a0;
  uVar47 = (ulonglong)uVar26;
  uVar33 = CONCAT44(uVar9,uVar26);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = CONCAT44(uVar55,uVar13) ^ uVar33 ^ 0x4c622fdd137e1828;
  uVar42 = (*(ulonglong *)(lVar7 + -0x658) ^ uVar43) >> ((bVar23 ^ 0x45) & 0x3f);
  uVar44 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar7 + -0x630) = uVar42 ^ uVar39;
  uVar18 = DAT_182670af8;
  uVar26 = DAT_1826707dc;
  uVar58 = (ulonglong)DAT_182670af8;
  uVar43 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar7 - ((ulonglong)uVar14 ^ 0x186e270c)) =
       (*(ulonglong *)(lVar7 - (uVar47 ^ 0xcd9e163d)) ^ uVar48 | uVar42) ^ uVar44;
  uVar16 = DAT_182670ac0;
  *(ulonglong *)(lVar7 + -0xa18) =
       *(ulonglong *)(lVar7 - (uVar30 ^ 0x85113a31)) ^
       *(ulonglong *)(lVar7 - ((ulonglong)uVar26 ^ 0x4201292d)) ^ uVar43 ^ uVar44 ^ uVar31;
  uVar48 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xf9f351a)) =
       (*(ulonglong *)(lVar7 - (uVar27 ^ 0x18410401)) ^ uVar53) +
       (uVar50 ^ *(ulonglong *)(lVar7 + -0xd88)) ^ uVar48;
  uVar21 = DAT_1826707a8;
  uVar49 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *(ulonglong *)(lVar7 + -0x9c8) =
       (uVar53 ^ *(ulonglong *)(lVar7 + -0x5c0)) << ((bVar24 ^ 0xe9) & 0x3f) ^ uVar49;
  lVar8 = DAT_1826707a0;
  *(uint *)(lVar7 - (uVar45 ^ 0xd0b9e23c)) = (uVar21 ^ 0x82e9b9b1) + (DAT_1826707bc ^ 0xddfa722c);
  uVar42 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  bVar38 = (byte)(uVar15 >> 0x10);
  *(ulonglong *)(lVar8 - (uVar37 ^ 0xf9f380a)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xebdbba00)) ^ uVar53) >> ((bVar38 ^ 0x18) & 0x3f)
       ^ uVar42;
  uVar50 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar44 = (ulonglong)DAT_1826708a8;
  uVar39 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar42 = (*(ulonglong *)(lVar8 - (uVar35 ^ 0x935ce253)) ^ uVar42 |
           *(ulonglong *)(lVar8 - (uVar51 ^ 0x2c654bc9)) ^ uVar49) ^ uVar50;
  *(ulonglong *)(lVar8 + -0x4c8) = uVar42;
  puVar4 = (ulonglong *)(lVar8 + -0x588);
  uVar54 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar42 = *(ulonglong *)(lVar8 - (uVar56 ^ 0xfb8c885b)) ^ uVar39 ^ uVar42 ^ uVar50 ^ uVar48;
  *(ulonglong *)(lVar8 + -0x890) = uVar42;
  uVar16 = DAT_182670904;
  uVar50 = (*(ulonglong *)(lVar8 + -0x420) ^ uVar31) + (uVar39 ^ *puVar29) ^ uVar54;
  *puVar4 = uVar50;
  bVar24 = (byte)uVar14;
  uVar39 = (uVar39 ^ uVar42) << ((bVar24 ^ 0x41) & 0x3f);
  *puVar52 = uVar39 ^ CONCAT44(uVar16,uVar16);
  lVar7 = DAT_1826707a0;
  uVar31 = (*(ulonglong *)(DAT_1826707a0 - (uVar47 ^ 0xcd9e1a95)) >> 0x20 ^ uVar44) >> 0x1b;
  *puVar1 = uVar31 ^ CONCAT44(DAT_182670984,DAT_182670984);
  uVar42 = *(ulonglong *)(lVar7 + -0xb70);
  uVar44 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar39 = (uVar31 | uVar39) ^ uVar44;
  *(ulonglong *)(lVar7 + -0x220) = uVar39;
  *puVar41 = (CONCAT44(uVar25,uVar9) ^ 0x9f96b69cde9ea1f2) >>
             ((byte)*(undefined8 *)(lVar7 + -0xf0) & 0x3f);
  uVar31 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar7 + -0x9e0) = uVar31 ^ uVar44 ^ uVar54 ^ uVar39 ^ uVar50;
  uVar39 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar7 + -0x6b8) = CONCAT44(uVar13,uVar15) ^ uVar42 ^ uVar48 ^ 0x6c7e0dffeaa60c90;
  uVar44 = CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar50 = CONCAT44(DAT_182670800,DAT_182670800);
  *puVar2 = (*(ulonglong *)(lVar7 - (uVar39 ^ 0x4201267d)) ^ uVar43) + (uVar42 ^ uVar48) ^ uVar44;
  lVar8 = DAT_1826707a0;
  uVar43 = (*(ulonglong *)(lVar7 - (uVar30 ^ 0x85113409)) ^ uVar43) << ((bVar24 ^ 0x61) & 0x3f);
  uVar39 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(DAT_1826707a0 + -0x410) = uVar43 ^ uVar50;
  uVar42 = *(ulonglong *)(lVar8 - (uVar35 ^ 0x935cee2b)) >> 0x1b ^
           ((ulonglong)(uVar18 >> 0x1b) | uVar58 << 5);
  *(ulonglong *)(lVar8 + -0x1b8) = uVar42 ^ uVar39;
  *(ulonglong *)(lVar8 + -0x658) =
       (CONCAT44(uVar46,uVar12) ^ 0xb3a46ad5a934e444) >> (((byte)uVar13 ^ 0xea) & 0x3f);
  uVar39 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar8 - (uVar57 ^ 0x186e267c)) = (uVar42 | uVar43) ^ uVar39;
  uVar42 = CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar43 = CONCAT44(uVar25,DAT_1826707dc);
  *(ulonglong *)(lVar8 - (uVar45 ^ 0xd0b9e030)) =
       *(ulonglong *)(lVar8 - (uVar27 ^ 0x184105f9)) ^ uVar42 ^ uVar39 ^ uVar44 ^ *puVar2;
  uVar50 = CONCAT44(DAT_182670884,DAT_182670884);
  uVar39 = (uVar43 ^ 0x1f7edee75dc151d3) + (uVar42 ^ *(ulonglong *)(lVar8 + -0x630));
  uVar42 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar8 + -0x548) = uVar39 ^ uVar50;
  *(ulonglong *)(lVar8 + -0xd88) =
       (CONCAT44(uVar14,uVar46) ^ 0x7d9b8e5fa853078b) + (uVar54 ^ *puVar4) ^ uVar42;
  *(ulonglong *)(lVar8 - (uVar36 ^ 0x30c1c6ac)) =
       (*(ulonglong *)(lVar8 - (uVar47 ^ 0xcd9e1f8d)) ^ uVar42) + uVar39 ^ uVar54;
  uVar43 = *(ulonglong *)(lVar8 + -0x548) ^ uVar50;
  uVar39 = uVar43 << ((bVar38 ^ 0x19) & 0x3f);
  uVar42 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar8 + -0x9c8) = uVar39 ^ CONCAT44(DAT_182670894,DAT_182670894);
  puVar29 = (ulonglong *)(lVar8 + -0x660);
  uVar43 = uVar43 >> ((local_110 ^ 0xc) & 0x3f);
  *puVar29 = uVar43 ^ uVar42;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar8 + -0x4c8) = (uVar43 | uVar39) ^ uVar50;
  uVar16 = DAT_18267091c;
  *(ulonglong *)(lVar8 + -0x420) =
       (CONCAT44(uVar9,uVar12) ^ 0x7a4abc7c8eadf699) +
       (CONCAT44(uVar10,uVar11) ^ 0xd5cb3c4a701c4ce6);
  uVar48 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 - (uVar51 ^ 0x2c654a91)) =
       *(ulonglong *)(lVar7 - (uVar35 ^ 0x935ce1f3)) ^ *(ulonglong *)(lVar7 - (uVar27 ^ 0x18410509))
       ^ uVar48 ^ uVar50 ^ uVar54;
  uVar51 = (CONCAT44(uVar13,uVar14) ^ 0xb536562cc80d18a9) +
           (*(ulonglong *)(lVar7 + -0x9e0) ^ uVar31);
  *puVar52 = uVar51 ^ CONCAT44(DAT_182670824,DAT_182670824);
  uVar42 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *puVar1 = (CONCAT44(uVar26,uVar25) ^ 0x6cfce4764e6fc90d) + (uVar44 ^ *puVar2) ^ uVar42;
  uVar16 = DAT_182670810;
  uVar50 = CONCAT44(DAT_182670948,DAT_182670948);
  uVar49 = (*(ulonglong *)(lVar7 - (uVar45 ^ 0xd0b9edb0)) ^ uVar42) + uVar51 ^ uVar50;
  uVar42 = *(ulonglong *)(lVar7 + -0x5c0);
  *(ulonglong *)(lVar7 + -0xf0) = uVar49;
  uVar39 = CONCAT44(uVar16,uVar16);
  *puVar41 = uVar51 << 0x21 ^ uVar39;
  uVar51 = uVar51 >> (((byte)DAT_1826707dc ^ 0x7a) & 0x3f);
  uVar31 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar7 + -0x220) = uVar51 ^ CONCAT44(DAT_182670890,DAT_182670890);
  uVar21 = DAT_182670a10;
  uVar53 = (ulonglong)DAT_182670a10;
  uVar43 = CONCAT44(DAT_182670a10,DAT_182670a10);
  uVar39 = (*(ulonglong *)(lVar7 - (uVar56 ^ 0xfb8c853b)) ^ uVar39 | uVar51) ^ uVar31;
  *(ulonglong *)(lVar7 + -0x6b8) = uVar39;
  *(ulonglong *)(lVar7 + -0xb70) = uVar43 ^ uVar31 ^ uVar50 ^ uVar49 ^ uVar39;
  uVar58 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar7 - (uVar28 ^ 0xe600daa1)) =
       (*(ulonglong *)(lVar7 - (uVar45 ^ 0xd0b9ed70)) ^ uVar43) + (uVar54 ^ uVar42) ^ uVar58;
  uVar39 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar7 + -0x658) =
       (uVar43 ^ *(ulonglong *)(lVar7 + -0xb70)) << (((byte)uVar15 ^ 0x97) & 0x3f) ^ uVar39;
  uVar45 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xf9f3a7a)) =
       ((ulonglong)(uVar21 >> 0x12) | uVar53 << 0xe) ^ *(ulonglong *)(lVar7 + -0xb70) >> 0x12 ^
       uVar45;
  uVar42 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar7 - (uVar32 ^ 0xebdbbe78)) =
       (uVar45 ^ *(ulonglong *)(lVar7 + -0x410) | uVar39 ^ *(ulonglong *)(lVar7 + -0x658)) ^ uVar42;
  uVar51 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(ulonglong *)(lVar7 - (uVar36 ^ 0x30c1c754)) =
       uVar51 ^ uVar42 ^ uVar58 ^ *(ulonglong *)(lVar7 + -0xa18) ^ *(ulonglong *)(lVar7 + -0x1b8);
  lVar8 = DAT_1826707a0;
  uVar48 = uVar48 ^ *(ulonglong *)(lVar7 + -0x890);
  local_res18 = (byte)uVar10;
  *(ulonglong *)(lVar7 + -0x630) =
       CONCAT44(uVar13,uVar6) ^ 0x449f3d35183fd3a7 | uVar33 ^ 0x73e6549556d635d2;
  uVar49 = CONCAT44(DAT_182670930,DAT_182670930);
  uVar42 = (uVar50 ^ *(ulonglong *)(lVar8 + -0xf0)) + uVar48 ^ uVar49;
  *puVar4 = uVar42;
  uVar45 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(ulonglong *)(lVar8 + -0xd88) = uVar48 << ((local_res18 ^ 0x1d) & 0x3f) ^ uVar45;
  lVar7 = DAT_1826707a0;
  uVar48 = uVar48 >> ((bVar23 ^ 0x58) & 0x3f);
  *(ulonglong *)(lVar8 + -0x548) = uVar48 ^ CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(lVar7 + -0x9c8) =
       (CONCAT44(uVar55,uVar12) ^ 0x84b5219fe0f065f5) >>
       (((byte)uVar21 ^ *(byte *)(lVar7 + -0xb70)) & 0x3f);
  uVar16 = DAT_182670844;
  *puVar29 = (*(ulonglong *)(lVar7 - (uVar37 ^ 0xf9f33e2)) ^ uVar45 | uVar48) ^ uVar22;
  uVar17 = DAT_1826708a4;
  uVar31 = CONCAT44(uVar16,uVar16);
  uVar22 = *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707dc ^ 0x42012a05)) ^ uVar31 ^ uVar42 ^
           uVar49 ^ uVar22;
  *(ulonglong *)(lVar7 + -0x420) = uVar22;
  uVar48 = CONCAT44(uVar17,uVar17);
  uVar26 = *(uint *)(lVar7 + -0x8e0) ^ DAT_1826708b8;
  uVar21 = DAT_1826707bc ^ 0xd3654ce2;
  *(ulonglong *)(lVar7 + -0x4c8) =
       (uVar58 ^ *(ulonglong *)(lVar7 + -0xa18)) + (uVar31 ^ uVar22) ^ uVar48;
  lVar8 = DAT_1826707a0;
  *(uint *)(lVar7 - (uVar56 ^ 0xfb8c8b3f)) = uVar26 + uVar21;
  uVar43 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar8 + -0x9e0) =
       (uVar31 ^ *(ulonglong *)(lVar8 + -0x420)) << (((byte)uVar9 ^ 0x3b) & 0x3f) ^ uVar43;
  *(ulonglong *)(lVar8 - (uVar30 ^ 0x851134d1)) =
       (CONCAT44(uVar10,uVar12) ^ 0xc147c537bfd8222e) >> (((byte)uVar6 ^ 0x47) & 0x3f);
  uVar45 = (*(ulonglong *)(lVar8 - (uVar37 ^ 0xf9f3a4a)) ^ uVar31) >> ((bVar24 ^ 0x42) & 0x3f);
  *puVar1 = uVar45 ^ uVar34;
  uVar42 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar8 - (uVar27 ^ 0x18410cf9)) =
       (uVar45 | uVar43 ^ *(ulonglong *)(lVar8 + -0x9e0)) ^ uVar42;
  uVar39 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xebdbb9d0)) =
       uVar39 ^ uVar42 ^ uVar48 ^ *puVar52 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  uVar42 = *puVar3;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = (uVar49 ^ *puVar40) + (uVar51 ^ uVar42) ^ uVar44;
  *(ulonglong *)(DAT_1826707a0 - (uVar56 ^ 0xfb8c8593)) =
       (uVar51 ^ uVar42) << ((bVar24 ^ 0x52) & 0x3f) ^ uVar58;
  uVar6 = DAT_182670a94;
  lVar7 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_182670b14;
  uVar33 = (ulonglong)DAT_182670a94;
  uVar42 = *(ulonglong *)(DAT_1826707a0 + -0x9e0);
  uVar45 = *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  uVar56 = (uVar51 ^ *puVar3) >> ((local_res18 ^ 0x3b) & 0x3f);
  puVar5 = (ulonglong *)(DAT_1826707a0 + -0x390);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar56 ^ CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(byte *)(lVar7 + -0x391) = *(byte *)(*puVar5 ^ uVar22) ^ (byte)DAT_182670a40;
  uVar22 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  uVar45 = (uVar56 | uVar58 ^ uVar45) ^ uVar22;
  *(ulonglong *)(lVar7 + -0x658) = uVar45;
  *(ulonglong *)(lVar7 + -0x410) = CONCAT44(uVar11,uVar9) ^ 0x4d69cd86916d6297 | uVar43 ^ uVar42;
  lVar7 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar6,uVar6);
  uVar42 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       uVar44 ^ uVar45 ^ *(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar43 ^ uVar22;
  uVar45 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(lVar7 + -0x630) =
       (*(ulonglong *)(lVar7 - (uVar42 ^ 0x42012ddd)) ^ uVar43) +
       (*(ulonglong *)(lVar7 - (uVar36 ^ 0x30c1c7a4)) ^ uVar48) ^ uVar45;
  *(int *)(lVar7 - (uVar47 ^ 0xcd9e1e01)) = *(int *)(lVar7 + -0x43c) << 0x19;
  uVar22 = (*(ulonglong *)(lVar7 - (uVar35 ^ 0x935ce58b)) ^ uVar43) << 0x20;
  *(ulonglong *)(lVar7 + -0xf0) = uVar22 ^ CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar42 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar7 + -0x890) = uVar31 ^ *(ulonglong *)(lVar7 + -0x420) ^ 0xd80bab342071190f;
  uVar16 = DAT_182670974;
  uVar33 = *(ulonglong *)(lVar7 + -0x1b8) >> 0x20 ^ uVar42 ^ uVar33;
  *(ulonglong *)(lVar7 + -0xb70) = uVar33;
  uVar36 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar7 + -0x9c8) = (uVar22 | uVar33 ^ uVar42) ^ uVar36;
  *(ulonglong *)(lVar7 - (uVar57 ^ 0x186e2fcc)) =
       CONCAT44(uVar11,uVar14) ^ 0x1bfb6f1540cdae42 | uVar39 ^ *puVar41;
  uVar16 = DAT_182670854;
  *(ulonglong *)(lVar7 - (uVar37 ^ 0xf9f3b22)) =
       *(ulonglong *)(lVar7 + -0x9c8) ^ *(ulonglong *)(lVar7 + -0x630) ^
       CONCAT44(DAT_182670854,DAT_182670854) ^ uVar36 ^ uVar45;
  uVar36 = CONCAT44(DAT_182670818,DAT_182670818);
  *puVar29 = (*(ulonglong *)(lVar7 - (uVar27 ^ 0x184107d1)) ^ uVar39) +
             (uVar44 ^ *(ulonglong *)(lVar7 + -0x220)) ^ uVar36;
  *(ulonglong *)(lVar7 + -0xa18) =
       (CONCAT44(uVar9,uVar14) ^ 0xadb13ad72dd24210) >>
       ((*(byte *)(lVar7 - (uVar30 ^ 0x85113b59)) ^ (byte)uVar16) & 0x3f);
  uVar16 = DAT_182670aec;
  uVar42 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(lVar7 - (uVar28 ^ 0xe600da79)) =
       (*(ulonglong *)(lVar7 - (uVar28 ^ 0xe600d6a9)) ^ uVar39) << ((bVar23 ^ 0x4c) & 0x3f) ^ uVar42
  ;
  uVar45 = (uVar39 ^ *puVar41) >> ((local_110 ^ 0xb) & 0x3f);
  *puVar1 = uVar45 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_1826709b4;
  uVar45 = *puVar2 ^ uVar42 | uVar45;
  uVar42 = *puVar29;
  *puVar52 = uVar45 ^ uVar49;
  uVar37 = CONCAT44(DAT_182670874,DAT_182670874);
  *puVar40 = uVar45 ^ uVar42 ^ uVar37 ^ uVar36;
  *puVar3 = (uVar37 ^ *puVar4) + (CONCAT44(uVar46,uVar12) ^ 0xfe442e13b464b5de) ^
            CONCAT44(uVar16,uVar16);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar20 * 4) = uVar19;
  return;
}



############ FUN_ 180c6c810 size=4867 ############

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

void FUN_180c6c810(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  uint uVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  byte bVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte bVar42;
  byte local_b0;
  
  uVar8 = DAT_1826707d4;
  uVar11 = DAT_1826707c0;
  uVar9 = DAT_1826707b8;
  uVar7 = DAT_1826707ac;
  uVar6 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar17 = DAT_1826707dc & 7;
  if (uVar17 < 4) {
    if (uVar17 < 2) {
      uVar39 = DAT_1826707bc;
      if (uVar17 == 0) {
        uVar39 = DAT_1826707dc;
      }
    }
    else {
      uVar39 = DAT_1826707b4;
      if (uVar17 < 3) {
        uVar39 = DAT_1826707f4;
      }
    }
  }
  else if (uVar17 < 6) {
    uVar39 = DAT_1826707cc;
    if (uVar17 < 5) {
      uVar39 = DAT_1826707d4;
    }
  }
  else {
    uVar39 = DAT_1826707c4;
    if (uVar17 < 7) {
      uVar39 = DAT_1826707ec;
    }
  }
  uVar21 = (ulonglong)DAT_1826707c0;
  uVar24 = (ulonglong)DAT_1826707ac;
  uVar25 = (ulonglong)DAT_1826707b8;
  uVar28 = DAT_1826707a8 & DAT_1826707ac;
  uVar36 = ~DAT_1826707b8;
  uVar26 = (DAT_1826707c0 << 0x10 | DAT_1826707c0 & 0xff00) << 8 | DAT_1826707c0 >> 8 & 0xff00 |
           DAT_1826707c0 >> 0x18;
  uVar17 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707c0 ^ 0x3cdec1e1) + (longlong)DAT_182670d00);
  uVar23 = (ulonglong)uVar28;
  uVar18 = *(uint *)(&DAT_18260f750 + (uVar23 ^ 0x600a2d18) + (longlong)DAT_182670d00) ^
           DAT_1826707ac;
  uVar20 = (ulonglong)DAT_1826707a8;
  uVar29 = (CONCAT44(DAT_182670b08,DAT_182670b08) ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) -
           (CONCAT44(DAT_182670970,DAT_182670970) ^ *(ulonglong *)(DAT_1826707a0 + -0x2b0));
  uVar33 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  DAT_1826707b0 = uVar39;
  DAT_1826707c8 = uVar26;
  DAT_1826707e0 = uVar36;
  DAT_1826707f0 = uVar28;
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar29 ^ CONCAT44(DAT_182670978,DAT_182670978);
  uVar15 = DAT_182670818;
  uVar40 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xe9c1d58c)) =
       uVar29 - (*(ulonglong *)(lVar4 - (uVar20 ^ 0x600a2928)) ^ uVar33) ^ uVar40;
  uVar16 = DAT_1826709a0;
  uVar31 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar29 = (ulonglong)DAT_1826707e8;
  uVar22 = CONCAT44(uVar36,uVar36) ^ CONCAT44(uVar15,uVar15) ^ uVar31 ^
           *(ulonglong *)(lVar4 + -0x438) ^ 0x9200503292005032;
  *(ulonglong *)(lVar4 + -0x420) = uVar22;
  uVar15 = DAT_1826707f8;
  uVar30 = CONCAT44(uVar16,uVar16);
  uVar29 = (*(ulonglong *)(lVar4 - (uVar29 ^ 0xcbbf41be)) ^ uVar33) + (uVar22 ^ uVar31) ^ uVar30;
  *(ulonglong *)(lVar4 + -0xa18) = uVar29;
  uVar8 = DAT_1826707c4;
  uVar10 = DAT_1826707bc;
  uVar33 = CONCAT44(uVar15,uVar15);
  uVar34 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar31 = CONCAT44(DAT_1826707c4,uVar39);
  *(ulonglong *)(lVar4 - (uVar25 ^ 0x92005602)) =
       uVar34 ^ uVar33 ^ uVar30 ^ uVar29 ^ *(ulonglong *)(lVar4 + -0x220);
  uVar14 = DAT_1826707ec;
  uVar22 = (ulonglong)uVar26;
  *(ulonglong *)(lVar4 + -0x118) =
       uVar31 ^ CONCAT44(DAT_1826707dc,DAT_1826707ec) ^ 0xdf7c589cefe5b13c;
  uVar37 = CONCAT44(DAT_182670940,DAT_182670940);
  uVar29 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar33 ^ *(ulonglong *)(lVar4 + -0x630)) >> (((byte)uVar10 ^ 0xe8) & 0x3f) ^ uVar37;
  uVar15 = DAT_182670a24;
  uVar30 = CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar4 + -0xb70) = (uVar33 ^ *(ulonglong *)(lVar4 + -0x630)) << 0x3b ^ uVar30;
  uVar39 = DAT_1826707cc;
  lVar4 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar32 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x29ac9e0f)) ^ uVar37 |
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0x3a5227a3)) ^ uVar30) ^ uVar31;
  uVar15 = DAT_182670a20;
  lVar5 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar39 ^ 0xd32c5252)) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xd32c501a)) ^ uVar34) -
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0xf20a7ce2)) ^ uVar31) ^ uVar27;
  uVar12 = DAT_1826707dc;
  uVar33 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar5 + -0x588) =
       *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707e8 ^ 0xcbbf4e0e)) ^ CONCAT44(uVar15,uVar15) ^
       uVar33 ^ uVar40 ^ *(ulonglong *)(lVar5 + -0x6b8);
  uVar15 = DAT_182670a18;
  uVar33 = uVar33 ^ *(ulonglong *)(lVar5 + -0x588);
  puVar1 = (ulonglong *)(lVar5 + -0xce0);
  *puVar1 = (CONCAT44(uVar11,uVar28) ^ 0x8f072001f7baa6db) +
            (CONCAT44(uVar8,uVar12) ^ 0x4362ad5b71bc5482);
  uVar29 = CONCAT44(uVar15,uVar15);
  bVar42 = (byte)uVar36;
  *(ulonglong *)(lVar5 + -0x660) = uVar33 >> ((bVar42 ^ 0xe8) & 0x3f) ^ uVar29;
  uVar13 = DAT_1826707e8;
  uVar12 = DAT_1826707d4;
  uVar8 = DAT_1826707b0;
  uVar30 = CONCAT44(DAT_182670a38,DAT_182670a38);
  bVar38 = (byte)uVar9;
  *(ulonglong *)(lVar5 + -0xd38) = uVar33 << ((bVar38 ^ 0x29) & 0x3f) ^ uVar30;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xe9c1d3b4)) =
       CONCAT44(uVar14,uVar12) ^ 0x43dde203d0f0a39f | uVar37 ^ *(ulonglong *)(lVar5 + -0xf0);
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x3cdeccd1)) ^ uVar30 |
       uVar29 ^ *(ulonglong *)(DAT_1826707a0 + -0x660)) ^ uVar35;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xf20a75ca)) =
       -0x3108556108f2c96f - (CONCAT44(uVar8,uVar6) ^ 0x695f983b229f4029);
  uVar33 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar36 ^ 0x6dffa995)) =
       (uVar40 ^ *(ulonglong *)(lVar4 + -0xbb0)) - (*(ulonglong *)(lVar4 + -0x2b0) ^ uVar35) ^
       uVar33;
  uVar15 = DAT_1826709f8;
  *(ulonglong *)(lVar4 + -0x438) =
       CONCAT44(uVar14,DAT_1826707c4) ^ 0x26d57ea579e82be7 |
       CONCAT44(uVar13,uVar26) ^ 0xef6ceb3c61543bbe;
  uVar16 = DAT_182670a60;
  lVar5 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar15,uVar15);
  uVar29 = (ulonglong)DAT_1826707b4;
  uVar35 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f4 ^ 0x29ac9e97)) ^ uVar27 ^
           *(ulonglong *)(lVar4 + -0x2b0) ^ uVar34 ^ uVar35;
  *(ulonglong *)(lVar4 + -0x400) = uVar35;
  uVar40 = (*(ulonglong *)(lVar5 - (uVar29 ^ 0x3a5228d3)) ^ uVar34) >>
           (((byte)DAT_1826707dc ^ 0x6b) & 0x3f);
  uVar29 = CONCAT44(DAT_18267091c,DAT_18267091c);
  *(ulonglong *)(lVar5 + -0x420) = uVar40 ^ CONCAT44(uVar16,uVar16);
  uVar12 = DAT_182670958;
  uVar15 = DAT_182670848;
  uVar37 = (ulonglong)DAT_182670958;
  local_b0 = (byte)uVar39;
  uVar34 = (uVar35 ^ uVar34) << ((local_b0 ^ 0x13) & 0x3f);
  uVar41 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar5 + -0xa18) = uVar34 ^ uVar29;
  uVar40 = uVar40 | uVar34;
  uVar34 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar5 + -0x118) = uVar40 ^ uVar41;
  *(ulonglong *)(lVar5 + -0x630) = (uVar27 ^ *(ulonglong *)(lVar5 + -0x68)) - uVar40 ^ uVar34;
  *(ulonglong *)(lVar5 + -0xb70) =
       *(ulonglong *)(lVar5 - (uVar23 ^ 0x600a2cb0)) ^ CONCAT44(uVar8,uVar7) ^ uVar31 ^
       0xa7fbd88f79939c9e;
  uVar35 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x92005212)) =
       uVar31 ^ *(ulonglong *)(lVar5 + -0x1b8) ^ uVar35 ^ uVar33 ^ *(ulonglong *)(lVar5 + -0x658);
  uVar12 = DAT_1826707d4;
  uVar29 = *(ulonglong *)(lVar5 + -0x220) ^ uVar35;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xe9c1d884)) = uVar29 << ((byte)uVar29 & 0x3f);
  uVar29 = *(ulonglong *)(lVar5 + -0x220);
  uVar27 = CONCAT44(DAT_182670984,DAT_182670984);
  *puVar1 = (*(ulonglong *)(lVar5 - (uVar20 ^ 0x600a2f08)) >> 0x20 ^ uVar37) >> 8 ^ uVar27;
  uVar29 = (uVar29 ^ uVar35) << (((byte)DAT_1826707bc ^ 0xf5) & 0x3f);
  uVar37 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar5 + -0x588) = uVar29 ^ CONCAT44(DAT_182670878,DAT_182670878);
  uVar31 = CONCAT44(DAT_1826707b4,DAT_1826707c4);
  *(ulonglong *)(lVar5 + -0xf0) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar36 ^ 0x6dffa32d)) ^ uVar27 | uVar29) ^ uVar37;
  uVar8 = DAT_1826707b0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b0 ^ 0xe9c1d3b4)) =
       (uVar31 ^ 0x12baf872ae51df4e) >> (((byte)uVar7 ^ 0x61) & 0x3f);
  uVar15 = _DAT_1826708bc;
  lVar4 = DAT_1826707a0;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  uVar35 = CONCAT44(DAT_182670a70,DAT_182670a70);
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x630);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xd32c5462)) ^ uVar33) - (*puVar2 ^ uVar37) ^
       uVar35;
  uVar13 = DAT_1826707dc;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar27 = CONCAT44(DAT_18267087c,DAT_18267087c);
  uVar31 = *puVar2 ^ *puVar3 ^ uVar29 ^ uVar37 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x890) = uVar31;
  uVar36 = DAT_1826707ec;
  uVar31 = uVar31 ^ uVar29;
  *(ulonglong *)(lVar4 + -0xbb0) = uVar31 >> (((byte)uVar13 ^ 0x48) & 0x3f) ^ uVar27;
  bVar19 = (byte)DAT_1826707f4;
  *(uint *)(lVar4 + -0x3d4) = (DAT_1826707cc ^ 0xaa2a9a4d) * (uVar36 ^ 0x75f2e6e5);
  uVar29 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(DAT_1826707a0 + -0x438) = uVar31 << ((bVar19 ^ 0xf3) & 0x3f) ^ uVar29;
  lVar4 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670934,DAT_182670934);
  uVar29 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xe9c1da04)) ^ uVar29 |
           *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x3cdeca59)) ^ uVar27;
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) = uVar29 ^ uVar33;
  lVar5 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xe9c1da3c)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0xd249ecdd)) ^ uVar34) - uVar29 ^ uVar27;
  *(undefined8 *)(lVar5 - ((ulonglong)DAT_1826707e8 ^ 0xcbbf419e)) = 0x2312aac390ecebbc;
  uVar31 = CONCAT44(DAT_182670b04,DAT_182670b04);
  uVar34 = *(ulonglong *)(lVar5 + -0x118) ^ uVar31 ^ uVar35 ^ uVar41 ^
           *(ulonglong *)(lVar5 + -0x660);
  uVar35 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar37 = (uVar34 ^ uVar31) >> (((byte)uVar13 ^ 0x45) & 0x3f);
  uVar29 = CONCAT44(uVar10,DAT_1826707d4);
  *(ulonglong *)(lVar5 + -0xa18) = uVar34;
  *(ulonglong *)(lVar5 + -0x68) = uVar37 ^ uVar35;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar5 + -0xb70) =
       (*(ulonglong *)(lVar5 + -0x2b0) ^ uVar33) - (uVar29 ^ 0x72c7d98767def55e);
  uVar15 = DAT_1826709a4;
  uVar29 = (ulonglong)DAT_1826707bc;
  uVar33 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar4 + -0x1b8) = (uVar34 ^ uVar31) << (((byte)uVar11 ^ 0xee) & 0x3f) ^ uVar33;
  uVar10 = DAT_1826707f4;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b4 ^ 0x3a522a6b)) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xd249eb55)) ^ uVar33 | uVar37) ^ uVar31;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (CONCAT44(uVar14,uVar26) ^ 0x6dcc579223d0137e) >> ((bVar42 ^ 0xe7) & 0x3f);
  uVar29 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  *puVar1 = *(ulonglong *)(lVar4 - (uVar21 ^ 0x3cdec5e9)) ^ uVar29 ^ uVar31 ^ uVar27 ^
            *(ulonglong *)(lVar4 + -0x6b8);
  uVar16 = DAT_1826709dc;
  uVar29 = uVar29 ^ *puVar1;
  *(ulonglong *)(lVar4 + -0x588) =
       CONCAT44(uVar28,uVar14) ^ CONCAT44(uVar12,uVar6) ^ 0xa24b0ab8da3091ee;
  uVar34 = uVar29 >> ((bVar38 ^ 0x3c) & 0x3f);
  uVar33 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar31 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar4 + -0x658) = uVar29 << (((byte)uVar10 ^ 0xcd) & 0x3f) ^ uVar33;
  uVar15 = DAT_182670980;
  *(ulonglong *)(lVar4 + -0xd88) = uVar34 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0xf0) =
       *(ulonglong *)(uVar31 ^ *(ulonglong *)(lVar4 + -0x58)) ^ CONCAT44(uVar15,uVar15);
  uVar16 = DAT_182670a08;
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar37 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x600a2b50)) ^ uVar33 | uVar34) ^ uVar29;
  uVar15 = DAT_182670a64;
  *(ulonglong *)(lVar4 + -0xbb0) = (uVar30 ^ *puVar2) >> ((bVar42 ^ 0xca) & 0x3f);
  bVar19 = (byte)DAT_1826707a8;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d4 ^ 0xe9c1da04)) =
       (*(ulonglong *)(lVar4 + -0x400) ^ uVar27) -
       (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar4 + -0x6f0)) ^ uVar37;
  uVar30 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *(uint *)(lVar4 + -0x43c) = (DAT_1826707cc ^ 0xecb75091) >> ((bVar19 ^ 0x3c) & 0x1f);
  uVar29 = (*(ulonglong *)(lVar4 + -0x438) ^ uVar37) - (uVar29 ^ *(ulonglong *)(lVar4 + -0x890)) ^
           uVar30;
  uVar27 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar4 + -0x630) = uVar29;
  uVar8 = DAT_1826707c4;
  uVar23 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar25 ^ 0x92005a6a)) ^ uVar23) = uVar27 ^ uVar29 ^ uVar30;
  lVar5 = DAT_1826707a0;
  uVar29 = uVar23 ^ *(ulonglong *)(lVar4 + -0xa58);
  *(ulonglong *)(lVar4 + -0x420) =
       0x45eb81d217ab37d0 - (CONCAT44(uVar26,uVar8) ^ 0x899d7ae2fe8dee0f);
  *(undefined8 *)(lVar4 + -0xb78) = *(undefined8 *)(lVar4 + -0x180);
  uVar15 = DAT_182670af0;
  *(ulonglong *)(lVar4 + -0x310) = uVar29;
  uVar31 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar24 ^ 0xf20a7e8a)) = uVar31 ^ uVar29;
  *(undefined8 *)(lVar4 - ((ulonglong)DAT_1826707b0 ^ 0xe9c1d56c)) = *(undefined8 *)(lVar4 + -0xb78)
  ;
  uVar34 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar4 + -0x118) = **(ulonglong **)(lVar4 + -0xb50) ^ uVar34 ^ uVar23;
  **(undefined8 **)(lVar4 + -0xbe8) = 0x251b13a2639d5cc3;
  uVar15 = DAT_1826708b0;
  uVar33 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar5 + -0x660) =
       *(ulonglong *)(*(ulonglong *)(lVar5 + -0x3d0) ^ uVar31) ^ uVar33 ^ uVar27;
  lVar4 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar15,uVar15);
  uVar29 = (ulonglong)DAT_1826707f4;
  uVar33 = *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707dc ^ 0xfa0fb91c)) ^
           *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707f4 ^ 0x29ac9fe7)) ^ uVar25 ^ uVar33 ^
           uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) = uVar33;
  *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar29 ^ 0x29ac9d2f)) ^ uVar31) = uVar33 ^ uVar25 ^ uVar27;
  lVar4 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x3a522a3b)) =
       *(longlong *)(DAT_1826707a0 + -0x6c8) + (CONCAT44(uVar9,uVar28) ^ 0x92005032600a2d0c) * 8;
  *(ulonglong *)(lVar4 + -0xb70) =
       (uVar30 ^ *(ulonglong *)(lVar4 + -0x630)) >>
       (((byte)uVar16 ^ *(byte *)(lVar4 + -0x890)) & 0x3f);
  *(ulonglong *)(lVar4 + -0x4e0) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0xa58)) + (CONCAT44(uVar7,uVar6) ^ 0xf20a7d5a600a2d2c) * 8;
  *(undefined8 *)(lVar4 - (uVar21 ^ 0x3cdec1b1)) = *(undefined8 *)(lVar4 + -0x6e8);
  *(undefined8 *)(lVar4 - (uVar20 ^ 0x600a2e38)) = *(undefined8 *)(lVar4 + -0x4e0);
  uVar6 = DAT_1826707b0;
  uVar29 = CONCAT44(uVar14,DAT_1826707b0);
  *(undefined8 *)(lVar4 + -0xb50) = *(undefined8 *)(lVar4 + -0x240);
  *(undefined8 *)(lVar4 + -0xb78) = *(undefined8 *)(lVar4 + -0x58);
  *(undefined8 *)(lVar4 + -0x6c8) = *(undefined8 *)(lVar4 + -0x58);
  uVar7 = DAT_1826707d4;
  uVar20 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar4 + -0xa18) =
       (uVar29 ^ 0x4a6e0aa70307cd8f) - (*(ulonglong *)(lVar4 + -0x118) ^ uVar34);
  *(undefined8 *)(lVar4 + -0xbe8) = *(undefined8 *)(lVar4 + -0x310);
  uVar29 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar4 + -0x1b8) = 0x1e96b96a46be0d18 >> (((byte)uVar7 ^ 7) & 0x3f);
  *(undefined8 *)(lVar4 - (uVar29 ^ 0xcbbf4fe6)) = *(undefined8 *)(lVar4 + -0x240);
  uVar7 = DAT_1826707c4;
  uVar23 = (ulonglong)DAT_1826707c4;
  *(undefined8 *)(lVar4 - (uVar24 ^ 0xf20a7bb2)) = *(undefined8 *)(lVar4 - (uVar21 ^ 0x3cdec721));
  *(undefined8 **)(lVar4 + -0x4e0) =
       *(undefined8 **)(lVar4 + -0x6e8) + (CONCAT44(uVar28,uVar7) ^ 0x600a2d08a1ca99e1);
  *(undefined8 *)(lVar4 + -0x220) = **(undefined8 **)(lVar4 + -0x6e8);
  uVar7 = DAT_1826707dc;
  *(ulonglong *)(lVar4 + -0x58) =
       *(longlong *)(lVar4 - (uVar20 ^ 0xe9c1d464)) +
       (CONCAT44(uVar10,uVar14) ^ 0x29ac9efffbfcdefe) * 8;
  uVar29 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar4 + -0x6b8) =
       *(ulonglong *)(lVar4 + -0x438) ^ uVar37 | *(ulonglong *)(lVar4 + -0x420);
  **(ulonglong **)(lVar4 - (uVar22 ^ 0xe9c1d464)) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0xd249e8cd)) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x588) =
       (CONCAT44(uVar39,uVar7) ^ 0x75e1fbe86b2fa038) >>
       ((byte)*(undefined8 *)(lVar4 + -0x220) & 0x3f);
  *(undefined8 *)(lVar4 + -0x310) = *(undefined8 *)(lVar4 + -0x58);
  *(undefined8 *)(lVar4 + -0xb50) = *(undefined8 *)(lVar4 - (uVar23 ^ 0xa1ca9d00));
  *(undefined8 *)(lVar4 + -0x6c8) = *(undefined8 *)(lVar4 + -0x58);
  *(undefined8 *)(lVar4 + -0x6e8) = *(undefined8 *)(lVar4 - (uVar33 ^ 0x3a522783));
  *puVar1 = *(ulonglong *)(lVar4 - (uVar32 ^ 0xd32c508a)) ^ CONCAT44(uVar11,uVar6) ^ uVar25 ^
            0xbfb42bdc3214556c;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar18 * 4) = uVar17 ^ uVar26;
  return;
}



############ FUN_ 180d44790 size=5155 ############

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

void FUN_180d44790(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  byte bVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  ulonglong uVar39;
  byte local_c0;
  
  uVar10 = DAT_1826707e0;
  uVar11 = DAT_1826707d8;
  lVar3 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707d8;
  uVar26 = DAT_1826707e0 + DAT_1826707d8;
  uVar2 = *(uint *)(&DAT_18260f760 + DAT_182670ca8);
  uVar24 = *(uint *)(&DAT_18260f758 + DAT_182670ca8) ^ DAT_1826707d8;
  uVar37 = (ulonglong)DAT_1826707e0;
  uVar17 = (ulonglong)DAT_1826707d8;
  uVar25 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x220);
  bVar35 = (byte)uVar26;
  uVar27 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e0 ^ 0x20004e0d)) ^ uVar25) >>
           ((bVar35 ^ 0x69) & 0x3f);
  uVar20 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  DAT_1826707c4 = uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar27 ^ CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar16 = DAT_182670a1c;
  uVar7 = DAT_182670808;
  uVar25 = (uVar25 ^ *puVar1) << 0x32;
  *(ulonglong *)(lVar3 + -0x998) = uVar25 ^ uVar20;
  uVar14 = DAT_182670938;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar27 = uVar27 | uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar27 ^ uVar31;
  uVar15 = DAT_182670964;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 + -0x5c0) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x200040cd)) ^ CONCAT44(uVar16,uVar16)) -
       (CONCAT44(uVar10,uVar11) ^ 0x85f4a4ef8865fff7) ^ uVar29;
  uVar7 = DAT_182670934;
  uVar22 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x400) =
       (*(ulonglong *)(lVar3 - (uVar37 ^ 0x200049ed)) ^ uVar29) - uVar27 ^ uVar22;
  uVar39 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0xf3458f5a)) =
       uVar27 - (CONCAT44(uVar26,uVar11) ^ 0xf4b31c5a20b54742) ^ uVar39;
  uVar7 = DAT_18267090c;
  uVar27 = CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar32 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar17 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  uVar20 = *(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0x1345df7f));
  uVar25 = uVar22 ^ *(ulonglong *)(lVar3 + -0x400);
  *(ulonglong *)(lVar3 + -0x7d8) = uVar25 << ((byte)uVar25 & 0x3f);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0xc18) =
       uVar20 ^ uVar17 ^ uVar32 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x420);
  uVar17 = CONCAT44(uVar7,uVar7);
  puVar21 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0x200049a5));
  *puVar21 = (uVar27 ^ *(ulonglong *)(lVar4 + -0xc18)) >> (((byte)uVar10 ^ 0x3d) & 0x3f) ^ uVar17;
  uVar7 = DAT_182670884;
  *(ulonglong *)(lVar4 + -0xd88) =
       *(ulonglong *)(lVar4 + -0x5c0) ^ uVar29 | CONCAT44(uVar26,uVar26) ^ 0x4953d15bcecba6aa;
  uVar14 = DAT_182670a78;
  uVar20 = CONCAT44(uVar7,uVar7);
  puVar38 = (ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x200048e5));
  *puVar38 = (uVar27 ^ *(ulonglong *)(lVar4 + -0xc18)) << 0x30 ^ uVar20;
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x438) =
       (*(ulonglong *)(lVar4 + -0x4c8) ^ uVar20 | *(ulonglong *)(lVar4 + -0x588) ^ uVar17) ^ uVar27;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0x1345d33f)) =
       (*(ulonglong *)(lVar4 + -0x660) ^ uVar39) - (CONCAT44(uVar10,uVar10) ^ 0xb1910136e1d194d9);
  uVar25 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x200045e5)) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x420)) - (CONCAT44(uVar11,uVar11) ^ 0xc8f1b01c42b2d498) ^
       uVar25;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar4 + -0x438);
  uVar29 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *puVar1 = (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar25) - uVar27 ^ uVar29;
  uVar20 = CONCAT44(DAT_182670b14,DAT_182670b14);
  uVar17 = (CONCAT44(uVar10,uVar11) ^ 0xba0a1fc97450975f) + uVar27 ^ uVar20;
  uVar36 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar4 + -0x6f0) = uVar17;
  uVar6 = DAT_1826707c0;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0xf34580a2)) =
       uVar36 ^ uVar17 ^ uVar20 ^ uVar22 ^ *(ulonglong *)(lVar4 + -0x400);
  uVar7 = DAT_182670868;
  lVar3 = DAT_1826707a0;
  uVar28 = uVar36 ^ *(ulonglong *)(lVar4 + -0x998);
  uVar27 = uVar28 >> ((bVar35 ^ 0x47) & 0x3f);
  uVar28 = uVar28 << (((byte)DAT_1826707c8 ^ 0xd) & 0x3f);
  uVar17 = CONCAT44(DAT_1826707f4,uVar26);
  uVar33 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar4 + -0xce0) = uVar27 ^ uVar33;
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar28 ^ uVar30;
  uVar20 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar4 + -0xa18) = (uVar17 ^ 0x2e739bb152f1d6ab) >> (((byte)uVar6 ^ 0x4f) & 0x3f);
  uVar7 = DAT_1826707b8;
  uVar32 = CONCAT44(DAT_182670878,DAT_182670878);
  *(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x80483d9)) = (uVar28 | uVar27) ^ uVar32;
  lVar3 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_18267086c,DAT_18267086c);
  puVar18 = (ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x20004a95));
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) =
       (uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x400)) -
       (uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) ^ uVar34;
  uVar8 = DAT_182670a48;
  uVar5 = DAT_1826707a8;
  uVar20 = (ulonglong)DAT_182670a48;
  *(ulonglong *)(lVar3 + -0xd88) =
       (*puVar18 ^ uVar30) - (CONCAT44(uVar7,DAT_1826707a8) ^ 0xc5a6f3db72ee2cc0);
  uVar17 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xe625ec7a)) =
       uVar17 ^ uVar29 ^ *(ulonglong *)(lVar3 + -0x660) ^ uVar39 ^ *puVar1;
  uVar6 = DAT_1826707b4;
  uVar27 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar3 + -0x588) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0x1345d97f)) >> 0x20 ^ uVar27 ^ uVar20;
  *(ulonglong *)(lVar3 - (uVar23 ^ 0xf3458df2)) =
       uVar34 ^ uVar36 ^ *(ulonglong *)(lVar3 + -0x5c0) ^ *(ulonglong *)(lVar3 + -0x998);
  uVar9 = DAT_1826707d0;
  uVar17 = (uVar17 ^ *(ulonglong *)(lVar3 + -0xc18)) << (((byte)DAT_1826707e8 ^ 0xde) & 0x3f);
  uVar20 = CONCAT44(DAT_1826707d0,uVar6);
  *(ulonglong *)(lVar3 + -0x658) = uVar17 ^ CONCAT44(DAT_182670af4,DAT_182670af4);
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x420) = *puVar38 - (uVar20 ^ 0x2fa66cf7b2fd9b5);
  uVar14 = DAT_182670adc;
  uVar28 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar17 = *(ulonglong *)(lVar4 + -0x588) ^ uVar27 | uVar17;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar17 ^ uVar28;
  uVar22 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x438) = (uVar29 ^ *puVar1) - uVar17 ^ uVar22;
  uVar13 = DAT_1826707f0;
  uVar8 = DAT_1826707ec;
  uVar20 = (ulonglong)DAT_1826707ec;
  *(uint *)(lVar4 + -0xc34) =
       (uVar26 ^ 0xd8619844) + *(int *)(lVar4 - ((ulonglong)uVar5 ^ 0xe90dcf15));
  uVar17 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0x20004add)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x5e519dd0)) ^
       *(ulonglong *)(lVar4 - (uVar20 ^ 0x4c2d25c0)) ^ uVar17 ^ uVar28 ^ uVar34;
  uVar20 = (uVar17 ^ *(ulonglong *)(lVar4 + -0x6f0)) >> (((byte)uVar8 ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa18) = uVar20 ^ CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar15 = DAT_182670a28;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 + -0x930);
  uVar14 = DAT_182670950;
  uVar5 = DAT_1826707d4;
  uVar8 = DAT_1826707c0;
  uVar37 = (ulonglong)DAT_1826707d4;
  uVar17 = (uVar17 ^ *(ulonglong *)(lVar4 + -0x6f0)) << (((byte)uVar6 ^ 0x42) & 0x3f);
  *(ulonglong *)(lVar4 + -0xce0) = uVar17 ^ CONCAT44(uVar15,uVar15);
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x20000c0d)) = (uVar17 | uVar20) ^ uVar29;
  uVar15 = DAT_182670a3c;
  puVar18 = (ulonglong *)(lVar4 - ((ulonglong)uVar5 ^ 0x20000dcd));
  *(ulonglong *)(lVar4 + -0x6b8) =
       (uVar34 ^ *puVar18) - (uVar29 ^ *(ulonglong *)(lVar4 + -0x400)) ^ uVar31;
  uVar14 = DAT_182670990;
  uVar12 = DAT_1826707e4;
  uVar5 = DAT_1826707a8;
  uVar28 = CONCAT44(uVar15,uVar15);
  uVar20 = *(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0x1345d2bf)) ^ uVar28 ^ uVar22 ^ uVar32 ^
           *(ulonglong *)(lVar4 + -0x438);
  uVar32 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar30 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar4 + -0xd88) = uVar20;
  uVar17 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x660) = (uVar20 ^ uVar28) >> (((byte)uVar10 ^ 0x3b) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x20000195)) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0x76cc01f2)) ^ uVar28) <<
       (((byte)DAT_1826707c8 ^ 7) & 0x3f) ^ uVar17;
  uVar17 = uVar32 ^ *(ulonglong *)(lVar4 + -0x660) | uVar17 ^ *(ulonglong *)(lVar4 + -0x998);
  uVar30 = CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar20 = CONCAT44(uVar7,DAT_1826707b4);
  *(ulonglong *)(lVar4 + -0xc18) = uVar17 ^ uVar30;
  uVar6 = DAT_1826707b0;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar20 ^ 0xe34c992e66639b79 | uVar17;
  uVar32 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar20 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0x420) =
       (uVar22 ^ *(ulonglong *)(lVar3 + -0x438)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x3aed801e)) ^ uVar30) ^ uVar32;
  bVar19 = (byte)DAT_1826707dc;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar12 ^ 0x76cc09f2)) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0x8048988)) ^ uVar28 |
       CONCAT44(uVar6,DAT_1826707bc) ^ 0x2aaa5cd11c12a839;
  uVar7 = DAT_1826709d0;
  uVar22 = (ulonglong)DAT_182670b00;
  uVar28 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar17 = *(ulonglong *)(lVar3 - (uVar23 ^ 0xf3458522)) ^ uVar28 ^ uVar30 ^ uVar31 ^
           *(ulonglong *)(lVar3 + -0x6b8);
  uVar20 = *(ulonglong *)(lVar3 + -0xc18);
  *(ulonglong *)(lVar3 + -0x658) = uVar17;
  uVar22 = (uVar17 >> 0x20 ^ uVar22) >> 0xe;
  uVar17 = (uVar28 ^ uVar17) << ((bVar19 ^ 0xed) & 0x3f);
  *puVar1 = uVar22 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_1826708e4;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar30 ^ uVar20 ^ 0x324ff889f789b56c;
  uVar14 = DAT_18267096c;
  *(ulonglong *)(lVar3 + -0x6f0) = uVar17 ^ CONCAT44(uVar7,uVar7);
  lVar3 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar20 = (ulonglong)DAT_1826707c0;
  uVar23 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar22 = uVar22 | uVar17;
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar22 ^ uVar34;
  lVar4 = DAT_1826707a0;
  uVar17 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0x8c02025c)) =
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0xe625e6da)) ^ uVar31) - uVar22 ^ uVar23;
  uVar10 = DAT_182670b08;
  uVar14 = DAT_182670a7c;
  uVar22 = CONCAT44(DAT_182670b08,DAT_182670b08);
  uVar20 = *(ulonglong *)(lVar3 - (uVar17 ^ 0x3a763f2d)) ^ uVar22 ^ uVar32 ^ uVar29 ^
           *(ulonglong *)(lVar3 + -0x400);
  uVar17 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar20;
  uVar6 = DAT_1826707e8;
  uVar20 = ((ulonglong)uVar10 << 0x14 | (ulonglong)(uVar10 >> 0xc)) ^ uVar20 >> 0xc;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar20 ^ uVar17;
  uVar7 = DAT_182670908;
  lVar3 = DAT_1826707a0;
  uVar22 = (uVar22 ^ *puVar18) << (((byte)uVar6 ^ 0xca) & 0x3f);
  *(ulonglong *)(lVar4 + -0x660) = uVar22 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_182670910;
  uVar17 = CONCAT44(uVar7,uVar7);
  uVar22 = (uVar20 | uVar22) ^ uVar17;
  *(ulonglong *)(lVar3 + -0x998) = uVar22;
  uVar30 = CONCAT44(uVar14,uVar14);
  uVar20 = (ulonglong)DAT_1826707f4;
  uVar29 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0x420)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar26 ^ 0x1345dcff)) ^ uVar17) ^ uVar30;
  uVar12 = DAT_1826707f0;
  *(ulonglong *)(lVar3 - (uVar20 ^ 0x3a763f35)) =
       *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0x5e519e00)) ^ uVar29 ^ uVar17 ^ uVar23 ^
       uVar22;
  uVar6 = DAT_1826707c8;
  lVar3 = DAT_1826707a0;
  local_c0 = (byte)uVar11;
  uVar22 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar20 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar26 ^ 0x1345d8ef)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x20000c35)) ^ uVar29) >>
       ((local_c0 ^ 0x23) & 0x3f) ^ uVar22;
  uVar17 = (ulonglong)DAT_1826707e8;
  *puVar21 = (*(ulonglong *)(lVar3 - (uVar20 ^ 0x20004815)) ^ uVar29) << ((bVar19 ^ 0xd8) & 0x3f) ^
             uVar36;
  uVar10 = DAT_1826707cc;
  uVar32 = CONCAT44(DAT_18267089c,DAT_18267089c);
  bVar19 = (byte)DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0xc18) =
       (*(ulonglong *)(lVar3 - (uVar17 ^ 0x442d1276)) ^ uVar22 |
       *(ulonglong *)(lVar3 + -0x588) ^ uVar36) ^ uVar32;
  *(ulonglong *)(lVar3 + -0x9c8) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0xa18)) -
       (CONCAT44(uVar9,DAT_1826707bc) ^ 0xe5fbb2717bbfa7a0) ^ uVar33;
  *(longlong *)(lVar3 - ((ulonglong)uVar6 ^ 0x20004a75)) =
       -0x44a4f273efff48ac << (((byte)uVar6 ^ 4) & 0x3f);
  uVar9 = DAT_1826707ec;
  uVar6 = DAT_1826707b0;
  uVar20 = *(ulonglong *)(lVar3 + -0xc18);
  uVar36 = (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar33) - (uVar32 ^ *(ulonglong *)(lVar3 + -0xc18));
  *puVar1 = uVar36 ^ uVar34;
  uVar33 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar28 = (uVar32 ^ uVar20) - (CONCAT44(uVar13,uVar9) ^ 0x45c032246ac8e8e1) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x6f0) = uVar28;
  uVar20 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar9,uVar12) ^ 0x81568e1b16f7db34) >> ((bVar19 ^ 0x22) & 0x3f);
  uVar7 = DAT_182670924;
  bVar19 = (byte)DAT_1826707a8;
  uVar23 = *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x3aed88ce)) ^ uVar30 ^ uVar34 ^
           *(ulonglong *)(lVar3 + -0xce0);
  *(ulonglong *)(lVar3 + -0x400) = uVar23 ^ uVar20;
  uVar14 = DAT_18267098c;
  uVar23 = uVar23 >> ((bVar19 ^ 0xc4) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar23 ^ CONCAT44(uVar7,uVar7);
  uVar7 = DAT_182670810;
  uVar9 = DAT_1826707c0;
  uVar20 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar10 ^ 0x8048000)) ^ uVar20) << 0x1f;
  *(ulonglong *)(lVar3 + -0x660) = uVar20 ^ CONCAT44(uVar14,uVar14);
  uVar22 = CONCAT44(uVar7,uVar7);
  uVar23 = uVar23 | uVar20;
  uVar17 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar3 + -0x7d8) = uVar23 ^ uVar22;
  uVar14 = DAT_182670a80;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x420) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0x4c8)) - (CONCAT44(uVar5,uVar10) ^ 0xefb0cd8dbf44a78) ^
       uVar17;
  uVar7 = DAT_1826708d0;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar20 = *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xe625e442));
  *(uint *)(lVar4 + -0x9ec) = (uVar9 ^ 0x8298cc31) << ((bVar35 ^ 0x7e) & 0x1f);
  *(ulonglong *)(lVar4 + -0x998) = (uVar20 ^ uVar17) - uVar23 ^ uVar32;
  uVar5 = DAT_182670a6c;
  uVar17 = CONCAT44(uVar7,uVar7);
  uVar20 = (CONCAT44(uVar8,uVar6) ^ 0x26c5c963ccbcefc9) + uVar23 ^ uVar17;
  uVar23 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *(ulonglong *)(lVar4 + -0x438) = uVar20;
  uVar17 = uVar36 ^ uVar23 ^ uVar20 ^ uVar17;
  *(ulonglong *)(lVar4 + -0xd88) = uVar17;
  uVar7 = DAT_18267087c;
  uVar30 = ((ulonglong)uVar5 << 0x1b | (ulonglong)(uVar5 >> 5)) ^ uVar17 >> 5;
  uVar20 = (uVar17 ^ uVar23) << (((byte)DAT_1826707ac ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar4 + -0x588) = uVar30 ^ uVar29;
  uVar15 = DAT_182670a24;
  uVar6 = DAT_1826707e8;
  lVar3 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707e8;
  uVar17 = uVar20 ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar4 + -0xa18) = uVar17;
  uVar14 = DAT_182670a2c;
  *(ulonglong *)(lVar4 + -0x658) =
       (uVar34 ^ *(ulonglong *)(lVar4 + -0xce0)) << (((byte)uVar17 ^ (byte)uVar7) & 0x3f);
  uVar30 = uVar30 | uVar20;
  uVar17 = uVar30 ^ CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar17;
  uVar20 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar4 + -0xc18) = 0x6c086203c42b48fb >> (((byte)uVar17 ^ (byte)uVar15) & 0x3f);
  uVar23 = CONCAT44(uVar14,uVar14);
  uVar17 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar36 - uVar30 ^ uVar23;
  bVar19 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x442d1bfe)) =
       *(ulonglong *)(lVar3 - (uVar20 ^ 0x4c2d2998)) ^ uVar28 ^ uVar17 ^ uVar32 ^ uVar33;
  uVar7 = DAT_1826708d8;
  uVar5 = DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0x5c0) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0x400)) >> ((bVar19 ^ 0x23) & 0x3f) ^ uVar22;
  uVar20 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x442d199e)) =
       (uVar17 ^ *(ulonglong *)(lVar3 + -0x400)) << (((byte)uVar5 ^ 0x1b) & 0x3f) ^ uVar20;
  uVar17 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar29 = (ulonglong)DAT_1826707d0;
  uVar22 = *(ulonglong *)(lVar3 + -0x660) ^ uVar20 | *(ulonglong *)(lVar3 + -0x5c0) ^ uVar22;
  uVar20 = CONCAT44(uVar11,DAT_1826707d0);
  uVar28 = uVar22 ^ uVar17;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar28;
  uVar5 = DAT_1826707d0;
  *(ulonglong *)(lVar3 + -0x420) = uVar20 ^ 0x40188d448b160010 | 0x3ee322b854c1f1a7;
  uVar7 = DAT_1826707bc;
  *(int *)(lVar3 + -0x280) = *(int *)(lVar3 + -0x598) >> (((byte)uVar5 ^ 0x78) & 0x1f);
  uVar14 = DAT_182670840;
  *(ulonglong *)(lVar3 + -0x7d8) = (*(ulonglong *)(lVar3 + -0x998) ^ uVar32) - uVar22 ^ uVar25;
  uVar32 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x442d1bc6)) =
       uVar28 ^ uVar32 ^ uVar17 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x6b8);
  uVar32 = uVar32 ^ *(ulonglong *)(lVar3 + -0x438);
  *(undefined8 *)(lVar3 + -0xd88) = 0x7c7ce51e86c87539;
  uVar5 = DAT_1826707c8;
  uVar17 = uVar32 >> (((byte)uVar7 ^ 0x15) & 0x3f);
  uVar20 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar3 + -0xce0) = uVar17 ^ CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar7 = DAT_182670a50;
  uVar32 = uVar32 << (((byte)uVar5 ^ 4) & 0x3f);
  *(ulonglong *)(lVar3 + -0x658) = uVar32 ^ uVar20;
  uVar14 = DAT_182670ad8;
  uVar20 = (ulonglong)DAT_1826707b4;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x588) = (uVar17 | uVar32) ^ uVar22;
  uVar17 = (ulonglong)DAT_1826707f0;
  uVar32 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar3 + -0xa18) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x6b8)) -
       (*(ulonglong *)(lVar3 - (uVar20 ^ 0x8c020dcc)) ^ uVar22) ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar17 ^ 0x5e519800)) =
       *(ulonglong *)(lVar3 + -0x9c8) ^ uVar25 ^ *(ulonglong *)(lVar3 + -0x7d8) ^ uVar32 ^
       CONCAT44(uVar15,uVar15);
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0x5fd9de78)) ^ uVar32) >>
            (((byte)DAT_1826707ac ^ 0x29) & 0x3f) ^ uVar27;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar26) * 4) = uVar24;
  return;
}



############ FUN_ 180d3b4c0 size=3416 ############

void FUN_180d3b4c0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  ulonglong uVar14;
  byte bVar15;
  uint uVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  byte *pbVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  byte bVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  byte local_res8;
  
  uVar12 = DAT_1826707f4;
  uVar11 = DAT_1826707ec;
  uVar10 = DAT_1826707e0;
  uVar8 = DAT_1826707cc;
  uVar7 = DAT_1826707bc;
  uVar6 = DAT_1826707b8;
  uVar5 = DAT_1826707b4;
  uVar4 = DAT_1826707b0;
  uVar21 = (ulonglong)DAT_1826707cc;
  uVar33 = (ulonglong)DAT_1826707bc;
  uVar26 = (ulonglong)DAT_1826707f4;
  uVar23 = (ulonglong)DAT_1826707b4;
  uVar32 = DAT_1826707bc & DAT_1826707b4;
  uVar28 = (ulonglong)DAT_1826707ec;
  uVar22 = *(uint *)(&DAT_18260f758 + DAT_182670c88) ^ DAT_1826707cc;
  uVar18 = (ulonglong)DAT_1826707e0;
  uVar20 = DAT_1826707f4 & DAT_1826707ec;
  uVar17 = (ulonglong)DAT_1826707b8;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670c88);
  uVar30 = DAT_1826707cc - DAT_1826707b8;
  uVar31 = DAT_1826707b0 << 0x10 | DAT_1826707b0 >> 0x10;
  uVar34 = ~DAT_1826707e0;
  DAT_1826707ac = uVar30;
  DAT_1826707c4 = uVar31;
  DAT_1826707c8 = uVar20;
  DAT_1826707d8 = uVar34;
  DAT_1826707dc = uVar32;
  *(ulonglong *)(DAT_1826707a0 - (uVar17 ^ 0x7d3fae4e)) =
       CONCAT44(DAT_1826707b8,DAT_1826707e0) ^ 0x733bd98007619c97;
  lVar2 = DAT_1826707a0;
  uVar19 = (ulonglong)uVar4;
  *(ulonglong *)(DAT_1826707a0 + -0x88) = CONCAT44(uVar34,uVar4) ^ 0x8d9501c057c373ff;
  *(ulonglong *)(lVar2 + -0x1f0) = CONCAT44(uVar31,uVar6) ^ 0xddf89b98f2cd4008;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xc68) = CONCAT44(uVar12,uVar11) ^ 0xf1dce00860fb97fe;
  *(ulonglong *)(lVar2 + -0xa20) = CONCAT44(uVar5,uVar20) ^ 0x544bb6a03198acb9;
  *(ulonglong *)(lVar2 + -0xb0) = CONCAT44(uVar34,uVar7) ^ 0x46b1d66dfe0cccaf;
  *(ulonglong *)(lVar2 + -0xbd8) = CONCAT44(uVar30,uVar32) ^ 0x8c421a2b36cedc02;
  *(ulonglong *)(lVar2 + -0xd10) = CONCAT44(uVar8,uVar20) ^ 0x8e692b0c32640cb5;
  *(undefined8 *)(lVar2 - (uVar19 ^ 0x40404af0)) = 0x4f0cfbeccf52a690;
  lVar2 = DAT_1826707a0;
  *(undefined8 *)(DAT_1826707a0 + -0x8d8) = 0x1fc794f201d122f0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar34 ^ 0x2a01022b)) =
       CONCAT44(uVar12,uVar7) ^ 0x1c197ab7b687b1f5;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x988) = CONCAT44(uVar34,uVar31) ^ 0x3068db52533281e;
  *(ulonglong *)(lVar2 + -0x170) = CONCAT44(uVar10,uVar5) ^ 0x10d7b268264ed043;
  *(undefined8 *)(lVar2 + -0x8d0) = 0xfc218383311e2445;
  lVar3 = DAT_1826707a0;
  *(longlong *)(DAT_1826707a0 + -0xc18) =
       *(longlong *)(lVar2 - (uVar17 ^ 0x7d3fa156)) <<
       ((byte)*(undefined8 *)(lVar2 + -0x220) & 0x3f);
  *(undefined8 *)(lVar3 + -0x210) = *(undefined8 *)(lVar3 + -0x638);
  *(undefined8 *)(lVar3 + -0x638) = 0x9647ee69ff958138;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar32 ^ 0x40000838)) = *(undefined8 *)(lVar3 + -0x2e0);
  uVar25 = (ulonglong)DAT_1826708b0;
  *(ulonglong *)(lVar3 + -0x2e0) = CONCAT44(uVar8,uVar11) ^ 0x39d8f63372e57898;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xafef7f4f)) =
       CONCAT44(uVar8,uVar4) ^ CONCAT44(uVar30,uVar10) ^ 0x95e7ebc4535d0b4c;
  *(undefined8 *)(lVar2 + -0xd50) = *(undefined8 *)(lVar2 - (uVar17 ^ 0x7d3fa8f6));
  *(undefined8 *)(lVar2 + -0x210) = 0x837a72a1fcf0e5dd;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xa1a37ceb)) = uVar25 ^ *(ulonglong *)(lVar2 + -0x838)
  ;
  *(ulonglong *)(lVar2 + -0x838) = CONCAT44(uVar31,uVar7) ^ 0x9082e68edf56fee;
  uVar14 = (ulonglong)DAT_182670914;
  *(ulonglong *)(lVar2 + -0xd0) = uVar14 ^ *(ulonglong *)(lVar2 + -0xd50);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0x4fd04d10)) =
       CONCAT44(uVar12,uVar5) ^ 0xb822612abd8d7180;
  bVar29 = (byte)DAT_182670a9c;
  pbVar24 = (byte *)(uVar14 ^ *(ulonglong *)(lVar2 + -0xd0));
  *(byte **)(lVar2 + -0x5a8) = pbVar24 + (CONCAT44(uVar12,uVar8) ^ 0xafef7fbfb99b65dd);
  *(byte *)(lVar2 + -0x9d1) = *pbVar24 ^ bVar29 ^ (byte)DAT_182670a90;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x40000090)) =
       CONCAT44(uVar20,uVar34) ^ 0x6894d2ade64e9c44;
  *(undefined8 *)(lVar2 - (uVar19 ^ 0x40404be8)) = 0x778df9044fc089;
  pbVar24 = (byte *)(*(ulonglong *)(lVar2 + -0x578) ^ uVar25);
  *(byte **)(lVar2 + -0x208) = pbVar24 + (CONCAT44(uVar6,uVar30) ^ 0x7d3faae63c5bbaf7);
  *pbVar24 = bVar29 ^ *(byte *)(lVar2 + -0x9d1);
  *(byte *)(lVar2 + -0x9d1) = (byte)uVar34 ^ 0xc9;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xafef7baf)) =
       CONCAT44(uVar10,uVar10) ^ 0x769e7a2790c107c4 | CONCAT44(uVar32,uVar5) ^ 0x62126f34bd771802;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar31 ^ 0x4fd04d98)) = *(undefined8 *)(lVar2 + -0x208);
  uVar27 = (ulonglong)DAT_182670960;
  *(ulonglong *)(lVar2 + -0x208) = CONCAT44(uVar5,uVar4) ^ 0xbbdf2da10a8e2dc3;
  *(undefined8 *)(lVar2 - (uVar28 ^ 0xb1a3f45b)) = *(undefined8 *)(lVar2 + -0x5a8);
  *(ulonglong *)(lVar2 + -0x5a8) = CONCAT44(uVar30,uVar31) ^ 0x36f4da1f096cef16;
  uVar9 = DAT_182670874;
  uVar25 = (ulonglong)DAT_182670874;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0xb1a3ff4b)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x40000d98)) ^ uVar27;
  *(ulonglong *)(lVar2 + -0xdd8) = CONCAT44(uVar11,uVar10) ^ 0xb936bd115abbbcaf;
  uVar14 = (ulonglong)uVar9 ^ *(ulonglong *)(lVar2 + -0xdc8);
  *(ulonglong *)(lVar2 + -0x650) = uVar14;
  *(undefined8 *)(lVar2 + -0xdc8) = 0xb72f579a8263f24e;
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x40000bd8)) =
       (uVar25 ^ uVar14) + (CONCAT44(uVar32,uVar30) ^ 0x400000003c5bbaf7);
  bVar29 = (byte)DAT_182670af0;
  *(ulonglong *)(lVar2 + -0xce0) =
       (CONCAT44(uVar32,uVar20) ^ 0xef17e07aa8f54b9d) >>
       ((byte)*(undefined8 *)(lVar2 + -0x6f0) & 0x3f);
  bVar15 = *(byte *)(uVar25 ^ *(ulonglong *)(lVar2 + -0x650)) ^ bVar29 ^ (byte)DAT_182670a90;
  *(byte *)(lVar2 + -0xd11) = bVar15;
  *(ulonglong *)(lVar2 + -0x5d0) =
       (CONCAT44(uVar8,uVar34) ^ 0xb99b65dc2a010182) + (*(ulonglong *)(lVar2 + -0x6d8) ^ uVar27);
  uVar25 = (ulonglong)DAT_182670828;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar18 ^ 0xd5fef8a4)) ^ uVar27) = bVar29 ^ bVar15;
  uVar9 = DAT_1826707d0;
  *(undefined8 *)(lVar2 + -0x8f0) = *(undefined8 *)(lVar2 + -0x5d0);
  *(undefined1 *)(lVar2 + -0xd11) = 0xb8;
  *(ulonglong *)(lVar2 + -0x5d0) = CONCAT44(uVar4,uVar20) ^ 0x53ba868b25004e64;
  uVar16 = (uVar9 << 0x10 | uVar9 & 0xff00) << 8 | uVar9 >> 8 & 0xff00 | DAT_1826707d0 >> 0x18;
  uVar14 = CONCAT44(uVar16,uVar9);
  DAT_1826707c0 = uVar16;
  *(ulonglong *)(lVar2 + -0xcf8) = (uVar14 ^ 0x71c1d80884309da) + (uVar14 ^ 0x81ba18cbcd8f6fb);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar16 ^ 0x972e3e3c)) = *(undefined8 *)(lVar2 + -0xb98);
  uVar27 = (ulonglong)DAT_1826708dc;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x7d3fa17e)) = uVar14 ^ 0x25f001866c2a786e;
  *(ulonglong *)(lVar2 + -0x200) = uVar27 ^ *(ulonglong *)(lVar2 + -0x8f0);
  *(undefined8 *)(lVar2 + -0x8f0) = 0xc4e8205e7406f64d;
  *(ulonglong *)(lVar2 + -0x270) = *(ulonglong *)(lVar2 + -0x950) ^ uVar25;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x40404680)) = uVar14 ^ 0xe9beeab730176014;
  *(ulonglong *)(lVar2 + -0x1d0) =
       (uVar25 ^ *(ulonglong *)(lVar2 + -0x270)) + (uVar14 ^ 0x972e376c6c372e96);
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xb1a3fe4b)) =
       CONCAT44(uVar9,uVar31) ^ 0xf43e85464086f3c2 | *(ulonglong *)(DAT_1826707a0 + -0xce0);
  lVar2 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 - ((ulonglong)uVar34 ^ 0x2a010001)) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xb99b67ac)) ^ uVar25) ^
       (byte)DAT_182670830 ^ (byte)DAT_182670a90;
  uVar13 = DAT_182670ae4;
  *(ulonglong *)(lVar2 + -0x270) = CONCAT44(uVar32,uVar30) ^ 0x83d380dad4a6e77b;
  *(ulonglong *)(lVar2 + -200) = (*(ulonglong *)(lVar2 - (uVar23 ^ 0xf99b641c)) ^ uVar27) + 1;
  *(byte *)(uVar27 ^ *(ulonglong *)(lVar2 + -0x200)) =
       *(byte *)(lVar2 - (uVar26 ^ 0xafef7e3d)) ^ (byte)DAT_182670830;
  *(byte *)(lVar2 + -0x182) = (byte)uVar32 ^ 0x53;
  *(ulonglong *)(lVar2 + -0x610) =
       *(ulonglong *)(CONCAT44(DAT_182670a8c,DAT_182670a8c) ^ *(ulonglong *)(lVar2 + -0x1e8)) ^
       CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0x1e8) = CONCAT44(uVar9,uVar20) ^ 0x6e7e1d8b3c7904af;
  *(undefined8 *)(lVar2 + -0x980) = *(undefined8 *)(lVar2 + -200);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar32 ^ 0x400000c8)) = 0x2e26a691906cc3d5;
  *(undefined8 *)(lVar2 + -0x530) = *(undefined8 *)(lVar2 + -0x1d0);
  uVar14 = (ulonglong)DAT_1826708f0;
  uVar21 = (ulonglong)DAT_1826708fc;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0xa1a37843)) =
       CONCAT44(uVar9,uVar10) ^ 0x1dc45f4e6837032e;
  bVar15 = (byte)DAT_182670a90;
  pbVar24 = *(byte **)(lVar2 + -0x530);
  *(ulonglong *)(lVar2 + -0xd80) = uVar21 ^ *(ulonglong *)(lVar2 + -0x980);
  *(ulonglong *)(lVar2 + -0x340) = uVar14 ^ (ulonglong)pbVar24;
  bVar29 = (byte)DAT_1826708a8;
  *(ulonglong *)(lVar2 + -0x980) = CONCAT44(uVar16,uVar7) ^ 0xeaf15c9831bf8c32;
  local_res8 = (byte)(uVar4 >> 0x10);
  *(byte *)(lVar2 + -0x911) = local_res8 ^ 7;
  *(undefined8 *)(lVar2 + -0x650) = 0x4dccfe5dbe381e74;
  *(ulonglong *)(lVar2 + -0x530) = CONCAT44(uVar16,uVar16) ^ 0x39975d9b5147e18e;
  *(ulonglong *)(lVar2 + -0xd88) =
       (CONCAT44(uVar7,uVar30) ^ 0x2569d86dd0d72072) <<
       ((byte)*(undefined8 *)(lVar2 + -0xce0) & 0x3f);
  *(byte **)(lVar2 + -0x38) = pbVar24 + (CONCAT44(uVar4,uVar8) ^ 0x40404fd0b99b65dd);
  *(byte *)(lVar2 + -0xb55) = bVar29 ^ bVar15 ^ *pbVar24;
  *(uint *)(lVar2 + -0x140) = uVar31 ^ 0x303d476d;
  *(undefined4 *)(*(ulonglong *)(lVar2 - (uVar26 ^ 0xafef7d77)) ^ (ulonglong)DAT_182670858) =
       0x94823d0e;
  *(ulonglong *)(lVar2 - (uVar18 ^ 0xd5fefcb4)) = CONCAT44(uVar6,uVar7) ^ 0xb8e014b189c252ad;
  pbVar24 = (byte *)(uVar21 ^ *(ulonglong *)(lVar2 + -0xd80));
  *(ulonglong *)(lVar2 + -0x340) = CONCAT44(uVar11,uVar8) ^ 0x11a09ccc64ed718;
  *(byte **)(lVar2 + -0xdd0) = pbVar24 + (CONCAT44(uVar20,uVar9) ^ 0xa1a379936c372e96);
  *pbVar24 = bVar29 ^ *(byte *)(lVar2 + -0xb55);
  *(undefined1 *)(lVar2 - (uVar17 ^ 0x7d3fa1b3)) = 0xa3;
  *(undefined8 *)(lVar2 - (uVar26 ^ 0xafef781f)) = *(undefined8 *)(lVar2 - (uVar28 ^ 0xb1a3f443));
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xf99b6bcc)) = CONCAT44(uVar11,uVar34) ^ 0x3585ee138b9b4411;
  *(ulonglong *)(lVar2 + -0x548) = CONCAT44(uVar10,uVar5) ^ 0x7dcd985178f687ed;
  *(undefined8 *)(lVar2 + -0x70) = *(undefined8 *)(lVar2 + -0x38);
  *(ulonglong *)(lVar2 + -0x38) = CONCAT44(uVar11,uVar16) ^ 0xa3d59f90364a4862;
  *(ulonglong *)(lVar2 - (uVar17 ^ 0x7d3fa966)) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0x972e30cc)) ^ (ulonglong)DAT_182670ae8;
  uVar14 = (ulonglong)DAT_182670890;
  *(ulonglong *)(lVar2 + -0x7a0) = CONCAT44(uVar7,uVar12) ^ 0xbdcf1a44a1465f67;
  *(ulonglong *)(lVar2 - (uVar23 ^ 0xf99b636c)) = uVar14 ^ *(ulonglong *)(lVar2 + -0x70);
  *(undefined8 *)(lVar2 - (uVar19 ^ 0x40404fa0)) = 0xeec9768755e2637b;
  pbVar24 = (byte *)(uVar14 ^ *(ulonglong *)(lVar2 + -0x570));
  *(byte **)(lVar2 + -0xc60) = pbVar24 + (CONCAT44(uVar12,uVar30) ^ 0xafef7fbf3c5bbaf7);
  bVar29 = bVar15 ^ *pbVar24 ^ (byte)DAT_182670b00;
  *(ulonglong *)(lVar2 + -0x570) = CONCAT44(uVar6,uVar31) ^ 0x89cc93bc96761e04;
  *(byte *)(lVar2 + -0x779) = bVar29;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar30) * 4) = uVar22;
  return;
}



############ FUN_ 180c9fb20 size=5176 ############

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

void FUN_180c9fb20(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  byte bVar36;
  byte bVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  
  uVar9 = DAT_1826707cc;
  uVar7 = DAT_1826707b4;
  lVar4 = DAT_1826707a0;
  uVar18 = DAT_1826707cc & DAT_1826707b4;
  uVar3 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707cc ^ 0x44854809) + (longlong)DAT_182670da4);
  uVar15 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707cc ^ 0x44854811) + (longlong)DAT_182670da4) ^
           DAT_1826707b4;
  uVar38 = (ulonglong)DAT_1826707b4;
  uVar28 = CONCAT44(DAT_18267090c,DAT_18267090c);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x438);
  bVar36 = (byte)uVar18;
  puVar24 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0x8c020e24));
  DAT_1826707c4 = uVar18;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (CONCAT44(DAT_18267096c,DAT_18267096c) ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) <<
       ((bVar36 ^ 0x1f) & 0x3f) ^ uVar28;
  uVar32 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  uVar29 = *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0x44854d89)) ^ uVar28 |
           CONCAT44(DAT_18267082c,DAT_18267082c) ^ *puVar24;
  *(ulonglong *)(lVar4 + -0x5c0) = uVar29 ^ uVar32;
  uVar12 = DAT_182670b14;
  *(ulonglong *)(lVar4 + -0xc18) = uVar29 + 0x5fe4d51379b054f6;
  uVar28 = (CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0xce0)) -
           (CONCAT44(uVar18,uVar7) ^ 0xb0bc9c773971e672);
  puVar2 = (ulonglong *)(lVar4 + -0xd88);
  *puVar2 = uVar28 ^ CONCAT44(DAT_182670918,DAT_182670918);
  uVar12 = DAT_18267084c;
  uVar23 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *puVar1 = uVar28 - (*(ulonglong *)(lVar4 - ((ulonglong)uVar18 ^ 0x4000dc0)) ^ uVar32) ^ uVar23;
  uVar28 = CONCAT44(uVar12,uVar12);
  puVar19 = (ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x8c020c44));
  *puVar19 = (CONCAT44(uVar9,uVar9) ^ 0xde8f1be5c390566b) + uVar29 ^ uVar28;
  uVar6 = DAT_182670950;
  uVar12 = DAT_182670908;
  *(uint *)(lVar4 + -0x280) =
       (uVar7 ^ 0x65f9291b) + *(int *)(lVar4 - ((ulonglong)uVar18 ^ 0x40000e0));
  uVar14 = DAT_1826709ac;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar28 = *puVar19 ^ *(ulonglong *)(lVar4 + -0x6b8) ^ uVar32 ^ CONCAT44(uVar6,uVar6) ^ uVar28;
  *(ulonglong *)(lVar4 + -0x220) = uVar28;
  uVar13 = DAT_182670874;
  uVar29 = (uVar28 ^ CONCAT44(uVar6,uVar6)) << (((byte)uVar9 ^ 0x3a) & 0x3f);
  uVar28 = ((ulonglong)uVar6 << 0x1b | (ulonglong)(uVar6 >> 5)) ^ uVar28 >> 5;
  *(ulonglong *)(lVar4 + -0x420) = uVar28 ^ CONCAT44(uVar14,uVar14);
  uVar12 = DAT_1826707f8;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar29 ^ CONCAT44(uVar13,uVar13);
  uVar6 = DAT_1826707c0;
  uVar40 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0x4000fd8)) = (uVar29 | uVar28) ^ uVar40;
  uVar14 = DAT_1826708f4;
  *puVar24 = CONCAT44(uVar6,DAT_1826707d4) ^ CONCAT44(uVar9,uVar18) ^ 0x2cd3803aedc30c0f;
  uVar12 = DAT_182670884;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f0 ^ 0x50dc96e)) ^ uVar32) -
       (uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) ^ uVar27;
  uVar8 = DAT_1826707b8;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar34 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  bVar17 = (byte)DAT_1826707e4;
  uVar29 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar30 = *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x719ad8d9)) ^
           *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707dc ^ 0x5ffb7d48)) ^ uVar34 ^ uVar33 ^
           uVar23;
  *(ulonglong *)(lVar4 + -0xc18) = uVar30;
  uVar32 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707dc ^ 0x5ffb77a0)) ^ uVar33) >>
           ((bVar17 ^ 0x90) & 0x3f);
  uVar28 = (ulonglong)DAT_1826707a8;
  uVar20 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar4 + -0xce0) = uVar32 ^ uVar29;
  *puVar2 = (uVar33 ^ uVar30) << 0x1b ^ uVar20;
  uVar12 = DAT_182670944;
  lVar5 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar32 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x7eda2532)) ^ uVar20 | uVar32;
  *(ulonglong *)(lVar4 + -0x5c0) = uVar32 ^ uVar30;
  uVar25 = CONCAT44(uVar12,uVar12);
  puVar21 = (ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0x44854c01));
  *puVar21 = (*puVar1 ^ uVar23) - uVar32 ^ uVar25;
  uVar12 = DAT_182670ab0;
  uVar33 = CONCAT44(DAT_182670864,DAT_182670864);
  uVar32 = *(ulonglong *)(lVar5 + -0x5c0) ^ *(ulonglong *)(lVar5 + -0x588) ^ uVar33 ^ uVar30 ^
           uVar27;
  *(ulonglong *)(lVar5 + -0x220) = uVar32;
  uVar6 = DAT_1826707ac;
  uVar20 = CONCAT44(uVar12,uVar12);
  uVar28 = (ulonglong)DAT_1826707ac;
  uVar16 = ~DAT_1826707ac;
  *(ulonglong *)(lVar5 + -0x420) = (uVar32 ^ uVar33) >> ((bVar36 ^ 0x17) & 0x3f) ^ uVar20;
  lVar4 = DAT_1826707a0;
  uVar23 = (ulonglong)uVar16;
  uVar32 = CONCAT44(DAT_182670a34,DAT_182670a34);
  DAT_1826707dc = uVar16;
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x45d723e1)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xba28d85e)) ^ uVar33) <<
       (((byte)uVar6 ^ 0x57) & 0x3f) ^ uVar32;
  puVar19 = (ulonglong *)(lVar4 + -0x660);
  *(uint *)(lVar4 - ((ulonglong)uVar6 ^ 0xba28df3e)) =
       *(uint *)(lVar4 + -0x8e0) & *(uint *)(lVar4 + -0x280);
  uVar30 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar32 = *puVar19 ^ uVar32 | *(ulonglong *)(lVar4 + -0x420) ^ uVar20;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar32 ^ uVar30;
  uVar12 = DAT_182670b00;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 + -0x4f8);
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x6f0) = (*(ulonglong *)(lVar4 + -0x588) ^ uVar27) - uVar32 ^ uVar33;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xba28d666)) =
       (CONCAT44(uVar16,uVar6) ^ 0xe690e751f8bb5a97) >>
       ((*(byte *)(lVar4 + -0x4c8) ^ (byte)uVar13) & 0x3f);
  uVar20 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  puVar31 = (ulonglong *)(lVar4 - (uVar23 ^ 0x45d72809));
  *puVar31 = uVar20 ^ uVar25 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0x7d8) ^
             *(ulonglong *)(lVar4 + -0x400);
  uVar35 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *puVar1 = (uVar20 ^ *puVar2) >> (((byte)uVar16 ^ 0xa9) & 0x3f) ^ uVar35;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x45d72041)) =
       CONCAT44(uVar16,uVar16) ^ 0x96eda7c8e27a19e3 | uVar29 ^ *(ulonglong *)(lVar4 + -0xce0);
  uVar12 = DAT_182670a28;
  uVar27 = CONCAT44(DAT_182670988,DAT_182670988);
  puVar22 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0xfcc941f4));
  uVar32 = (ulonglong)DAT_1826707a8;
  *puVar22 = (uVar20 ^ *puVar31) << (((byte)uVar7 ^ 0x5c) & 0x3f) ^ uVar27;
  lVar4 = DAT_1826707a0;
  uVar40 = CONCAT44(uVar12,uVar12);
  uVar20 = (ulonglong)DAT_1826707bc;
  uVar32 = *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x7eda2a9a)) ^ uVar27 | *puVar1 ^ uVar35;
  uVar27 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar32 ^ uVar40;
  *puVar19 = (*(ulonglong *)(lVar4 - (uVar20 ^ 0xb3b973d4)) ^ uVar25) - uVar32 ^ uVar27;
  uVar7 = DAT_182670840;
  uVar32 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar20 = (ulonglong)DAT_182670840;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x45d72009)) = **(ulonglong **)(lVar4 + -0x4a0) ^ uVar32;
  uVar13 = DAT_182670880;
  uVar10 = DAT_1826707e0;
  uVar23 = CONCAT44(uVar7,uVar7);
  uVar35 = (ulonglong)DAT_1826707e0;
  uVar25 = *(ulonglong *)(lVar4 + -0x6f0) ^ uVar23 ^ *(ulonglong *)(lVar4 + -0x420) ^ uVar40 ^
           uVar33;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar25;
  uVar40 = CONCAT44(uVar13,uVar13);
  uVar20 = (uVar25 >> 0x20 ^ uVar20) >> 0x14;
  *(ulonglong *)(lVar4 + -0xc18) = uVar20 ^ uVar40;
  lVar5 = DAT_1826707a0;
  uVar23 = (*(ulonglong *)(lVar4 - (uVar35 ^ 0xce4a5873)) ^ uVar23) <<
           (((byte)DAT_1826707b0 ^ 0x5a) & 0x3f);
  uVar39 = CONCAT44(DAT_1826708ac,DAT_1826708ac);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar23 ^ uVar33;
  uVar20 = uVar20 | uVar23;
  uVar25 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar4 + -0xce0) = uVar20 ^ uVar39;
  uVar9 = DAT_1826707d4;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707d4 ^ 0xf7fb7e3f)) =
       (*(ulonglong *)(lVar4 + -0x6f0) ^ uVar33) - uVar20 ^ uVar25;
  uVar7 = DAT_1826707cc;
  uVar23 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar30 = *puVar19 ^ uVar23 ^ *(ulonglong *)(lVar5 + -0x6b8) ^ uVar27 ^ uVar30;
  *puVar2 = uVar30;
  lVar4 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *puVar1 = (uVar30 ^ uVar23) >> (((byte)uVar7 ^ 0x38) & 0x3f) ^ uVar33;
  uVar11 = DAT_1826707f0;
  uVar26 = DAT_1826707f0 ^ uVar7;
  uVar20 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  DAT_1826707b0 = uVar26;
  *(ulonglong *)(lVar4 + -0x220) = (uVar23 ^ uVar30) << (((byte)uVar9 ^ 0xf8) & 0x3f) ^ uVar20;
  *(undefined1 *)(lVar4 - (uVar38 ^ 0x8c020e8d)) = **(undefined1 **)(lVar4 + -0xae8);
  uVar9 = DAT_182670920;
  lVar5 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  uVar20 = *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0x44854a21)) ^ uVar20 | *puVar1 ^ uVar33;
  uVar33 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(DAT_1826707a0 + -0x400) = uVar20 ^ uVar23;
  *(ulonglong *)(lVar5 + -0x588) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar26 ^ 0x418881b7)) ^ uVar27) - uVar20 ^ uVar33;
  uVar20 = CONCAT44(uVar9,uVar9);
  *(uint *)(lVar5 + -0xb54) = (uVar11 ^ 0xcab93c1f) & (uVar26 ^ 0x4e22b399);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x44854c21)) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x50dcbd6)) ^ *(ulonglong *)(lVar5 + -0x5c0) ^
       uVar20 ^ uVar23 ^ uVar25;
  uVar12 = DAT_182670868;
  *(ulonglong *)(lVar5 + -0x4c8) =
       *(ulonglong *)(lVar5 - ((ulonglong)uVar11 ^ 0x50dcbf6)) ^ uVar20 ^ 0x56007ccccb06c0f;
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       ((ulonglong)uVar9 << 0x12 | (ulonglong)(uVar9 >> 0xe)) ^
       *(ulonglong *)(DAT_1826707a0 + -0x420) >> 0xe ^ uVar30;
  uVar23 = CONCAT44(uVar26,DAT_1826707cc);
  uVar20 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0x418883f7)) ^ uVar20) <<
           (((byte)DAT_1826707cc ^ 0x33) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar20 ^ CONCAT44(DAT_182670a10,DAT_182670a10);
  uVar7 = DAT_1826707cc;
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar27 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0x44854ef1)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x50dc3ce)) ^ uVar30 | uVar20) ^ uVar35;
  *(uint *)(lVar4 - (uVar27 ^ 0x44854c2d)) = (uVar26 ^ 0x763fc03e) + (uVar11 ^ 0xce2982f5);
  uVar11 = DAT_1826707f0;
  uVar20 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  puVar31 = (ulonglong *)(lVar4 - ((ulonglong)uVar26 ^ 0x4188816f));
  *puVar31 = (*(ulonglong *)(lVar4 + -0x5c0) ^ uVar25) - (uVar23 ^ 0xfbaae7c6377e63a3) ^ uVar20;
  uVar41 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x50dc25e)) =
       (uVar20 ^ *(ulonglong *)(lVar4 + -0x6b8)) - (*(ulonglong *)(lVar4 + -0x6f0) ^ uVar35) ^
       uVar41;
  uVar30 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *puVar1 = (*(ulonglong *)(lVar4 + -0x6f0) ^ uVar35) -
            (CONCAT44(uVar10,uVar7) ^ 0xe0b794a83a2b4260) ^ uVar30;
  lVar4 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0x588) ^ uVar25 ^ uVar33 ^ uVar39 ^
           *(ulonglong *)(DAT_1826707a0 + -0xce0);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar26 ^ 0x418885f7)) = uVar20;
  uVar23 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0x44854e61)) =
       (uVar20 ^ uVar25) >> (((byte)uVar26 ^ 199) & 0x3f) ^ uVar23;
  uVar10 = DAT_1826707cc;
  uVar9 = DAT_1826707c8;
  uVar7 = DAT_1826707c0;
  uVar27 = CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar38 = (ulonglong)DAT_1826707c8;
  uVar25 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x220)) << (((byte)uVar11 ^ 0xe6) & 0x3f);
  uVar20 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(int *)(lVar4 + -0x68c) = -0x5e43860b << (((byte)DAT_1826707cc ^ 0xf) & 0x1f);
  *(ulonglong *)(lVar4 + -0x400) = uVar25 ^ uVar27;
  uVar25 = uVar25 | *puVar19 ^ uVar23;
  uVar23 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar25 ^ uVar20;
  uVar14 = DAT_182670a84;
  uVar20 = (*(ulonglong *)(lVar4 + -0x588) ^ uVar33) - (CONCAT44(uVar8,uVar7) ^ 0x1f07041409312085);
  *(ulonglong *)(lVar4 + -0x420) = uVar20 ^ uVar23;
  uVar12 = DAT_18267083c;
  uVar33 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xc18) = uVar20 - uVar25 ^ uVar33;
  uVar20 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x7d8) =
       (CONCAT44(uVar9,DAT_1826707e4) ^ 0x706fe2fed3053761) + uVar25 ^ uVar20;
  uVar25 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar4 + -0x5c0) =
       *(ulonglong *)(lVar4 - (uVar28 ^ 0xba28dda6)) ^ uVar25 ^ uVar20 ^ uVar41 ^ *puVar2;
  uVar12 = DAT_18267086c;
  bVar37 = (byte)DAT_1826707f4;
  *(uint *)(lVar4 + -0xa34) =
       (uVar10 ^ 0x80498777) <<
       ((byte)*(undefined4 *)(lVar4 - ((ulonglong)uVar26 ^ 0x41888033)) & 0x1f);
  uVar35 = CONCAT44(uVar12,uVar12);
  uVar27 = (ulonglong)DAT_1826707ec;
  bVar17 = (byte)DAT_1826707ec;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d8 ^ 0xa7e286dd)) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x5c0)) >> ((bVar37 ^ 0x25) & 0x3f) ^ uVar35;
  uVar23 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  uVar20 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0xfcc94524)) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x5c0)) << ((bVar17 ^ 0x20) & 0x3f) ^ uVar23;
  uVar12 = DAT_182670a94;
  lVar4 = DAT_1826707a0;
  uVar28 = *puVar2;
  uVar39 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar20 = *(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x1195956b)) ^ uVar23 |
           uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar20 ^ uVar39;
  uVar25 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f0 ^ 0x50dcdf6)) =
       (uVar41 ^ uVar28) - uVar20 ^ uVar25;
  uVar12 = DAT_182670adc;
  uVar7 = DAT_1826707b8;
  uVar20 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar28 = *(ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xb08fcfc7)) ^ uVar20 ^ uVar33 ^ uVar30 ^
           *(ulonglong *)(DAT_1826707a0 + -0xc18);
  *puVar19 = uVar28;
  uVar23 = CONCAT44(uVar12,uVar12);
  *puVar21 = (uVar28 ^ uVar20) >> (((byte)uVar7 ^ 0x21) & 0x3f) ^ uVar23;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x11959613)) =
       (uVar20 ^ *puVar19) << (((byte)DAT_1826707c0 ^ 0xc1) & 0x3f) ^ uVar32;
  uVar12 = DAT_1826709b0;
  uVar28 = *puVar19;
  uVar32 = uVar23 ^ *(ulonglong *)(lVar4 + -0x400) | *(ulonglong *)(lVar4 + -0x588) ^ uVar32;
  uVar30 = uVar32 ^ uVar34;
  *(ulonglong *)(lVar4 + -0x420) = uVar30;
  lVar4 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar12,uVar12);
  puVar21 = (ulonglong *)(DAT_1826707a0 + -0xc18);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = (uVar20 ^ uVar28) << (((byte)uVar6 ^ 0x5b) & 0x3f);
  *(ulonglong *)(lVar4 + -0x7d8) = (uVar33 ^ *puVar21) - uVar32 ^ uVar23;
  uVar12 = DAT_182670844;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 + -0x4f8);
  uVar8 = DAT_1826707e4;
  uVar28 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x25545175)) =
       uVar28 ^ uVar25 ^ uVar30 ^ uVar34 ^ *puVar22;
  *(ulonglong *)(lVar4 + -0x6f0) =
       *(longlong *)(lVar4 + -0x4c8) - (uVar35 ^ *(ulonglong *)(lVar4 + -0x6b8));
  uVar7 = DAT_1826707d8;
  uVar33 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d8 ^ 0xa7e28ded)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0xfcc94614)) ^ uVar28) >>
       (((byte)DAT_1826707bc ^ 0xee) & 0x3f) ^ uVar33;
  uVar30 = (*(ulonglong *)(lVar4 - (uVar27 ^ 0x44814dc0)) ^ uVar28) << ((bVar36 ^ 6) & 0x3f);
  uVar28 = (ulonglong)DAT_1826707e8;
  *puVar1 = uVar30 ^ CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar20 = CONCAT44(DAT_182670848,DAT_182670848);
  uVar32 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x1195979b)) = (uVar30 | uVar33 ^ *puVar2) ^ uVar20;
  uVar30 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xb08fce77)) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x220)) -
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0x44854c01)) ^ uVar20) ^ uVar30;
  *puVar24 = uVar23 ^ uVar39 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0xce0) ^
             *(ulonglong *)(lVar4 + -0x7d8);
  uVar20 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0x7eda2eda)) ^ uVar40) >>
           (((byte)uVar16 ^ 0x97) & 0x3f);
  uVar32 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar4 + -0xc18) = uVar20 ^ CONCAT44(DAT_182670978,DAT_182670978);
  uVar28 = (*puVar19 ^ uVar40) << 0x2a;
  *(ulonglong *)(lVar4 + -0x420) = uVar28 ^ uVar32;
  uVar12 = DAT_182670a14;
  *puVar31 = (uVar20 | uVar28) ^ uVar29;
  *(uint *)(lVar4 + -0x814) = uVar7 ^ 0xde7feac7 | 0x4e79e2c7;
  uVar28 = (ulonglong)DAT_182670a20;
  uVar32 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(lVar4 + -0x4c8) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x7d8)) - (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar29) ^
       CONCAT44(uVar12,uVar12);
  uVar12 = DAT_1826709f4;
  uVar29 = uVar32 ^ uVar30 ^ *(ulonglong *)(lVar4 + -0x588) ^ *(ulonglong *)(lVar4 + -0x6b8) ^
           uVar29;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar29;
  *(ulonglong *)(lVar4 + -0x5c0) = (uVar29 >> 0x20 ^ uVar28) >> 0xe ^ uVar34;
  *puVar2 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f0 ^ 0x50dc926)) ^ uVar32) << 0x12 ^
            CONCAT44(uVar12,uVar12);
  *puVar1 = (CONCAT44(uVar8,uVar6) ^ 0x3dc90bfaa236f5ef) >>
            ((*(byte *)puVar19 ^ (byte)uVar13) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar3 ^ uVar18;
  return;
}



############ FUN_ 180cd20d0 size=5238 ############

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

void FUN_180cd20d0(void)

{
  ulonglong *puVar1;
  int *piVar2;
  ulonglong *puVar3;
  longlong lVar4;
  longlong lVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  uint uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  byte local_110;
  byte local_50;
  
  uVar14 = DAT_1826709f4;
  uVar13 = DAT_182670874;
  uVar12 = DAT_1826707e8;
  uVar11 = DAT_1826707d4;
  uVar10 = DAT_1826707d0;
  uVar9 = DAT_1826707c8;
  uVar7 = DAT_1826707b8;
  iVar6 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707dc;
  uVar37 = (ulonglong)DAT_1826707d4;
  uVar15 = DAT_1826707b8 & DAT_1826707dc;
  uVar41 = (ulonglong)DAT_1826707e8;
  uVar38 = (ulonglong)DAT_1826707d0;
  DAT_1826707b0 = DAT_1826707d0 - DAT_1826707ac;
  uVar45 = DAT_1826707a8 - DAT_1826707c8;
  uVar42 = DAT_1826707d4 * DAT_1826707e8;
  uVar33 = *(uint *)(&DAT_18260f758 + DAT_182670e3c) ^ DAT_1826707ac;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670e3c) ^ DAT_1826707b0;
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x660);
  bVar25 = (byte)DAT_1826707dc;
  uVar20 = (CONCAT44(_DAT_1826709e0,_DAT_1826709e0) ^ *(ulonglong *)(DAT_1826707a0 + -0x420)) <<
           ((bVar25 ^ 0xa3) & 0x3f);
  DAT_1826707d8 = uVar42;
  DAT_1826707e0 = uVar45;
  DAT_1826707ec = uVar15;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar20 ^ CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar20 = CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar4 + -0x6f0) | uVar20;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar21 = CONCAT44(DAT_182670904,DAT_182670904);
  uVar31 = CONCAT44(DAT_182670828,DAT_182670828);
  *(ulonglong *)(lVar4 + -0x438) = uVar20 ^ uVar34;
  uVar13 = DAT_18267093c;
  lVar5 = DAT_1826707a0;
  *puVar3 = (uVar21 ^ *(ulonglong *)(lVar4 + -0xce0)) - uVar20 ^ uVar31;
  uVar14 = DAT_182670b08;
  uVar39 = CONCAT44(uVar13,uVar13);
  puVar1 = (ulonglong *)(lVar5 + -0x7d8);
  uVar23 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar20 = (ulonglong)uVar7;
  uVar21 = (ulonglong)uVar15;
  uVar34 = *(ulonglong *)(lVar5 - (uVar20 ^ 0x44854c39)) ^ *puVar1 ^ uVar23 ^ uVar39 ^ uVar34;
  *(ulonglong *)(lVar5 + -0xc18) = uVar34;
  lVar4 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar14,uVar14);
  uVar30 = (ulonglong)uVar9;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0xf7fb7d47)) =
       (uVar34 ^ uVar39) >> (((byte)iVar6 ^ 0xad) & 0x3f) ^ uVar32;
  uVar13 = DAT_182670968;
  uVar22 = (*(ulonglong *)(lVar4 + -0xc18) ^ uVar39) << (((byte)uVar9 ^ 0xd6) & 0x3f);
  *(ulonglong *)(lVar4 + -0x588) = uVar22 ^ CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar44 = CONCAT44(uVar13,uVar13);
  uVar34 = (ulonglong)uVar45;
  uVar46 = (ulonglong)uVar42;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar45 ^ 0xce4a5133)) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x6b8) | uVar22) ^ uVar44;
  *(int *)(lVar4 - ((ulonglong)uVar42 ^ 0xa7e283b1)) = *(int *)(lVar4 + -0xc34) + 0x7b1f11da;
  uVar32 = CONCAT44(DAT_182670aec,DAT_182670aec);
  uVar27 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar4 + -0x4c8) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0x44814fd8)) ^ uVar23) -
       (uVar44 ^ *(ulonglong *)(lVar4 + -0xd88)) ^ uVar32;
  uVar8 = DAT_1826707b0;
  uVar7 = DAT_1826707ac;
  lVar5 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  uVar23 = *puVar3 ^ *(ulonglong *)(lVar4 + -0x220) ^ uVar22 ^ uVar27 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x400) = uVar23;
  uVar13 = DAT_1826708cc;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 - (uVar26 ^ 0x5ffb7f40));
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x5ffb7f98)) =
       (uVar23 ^ uVar27) >> (((byte)uVar12 ^ 0xb3) & 0x3f) ^ uVar35;
  uVar13 = DAT_1826709d4;
  *(ulonglong *)(lVar5 + -0x6f0) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar42 ^ 0xa7e28c7d)) ^ uVar39) <<
       (((byte)uVar8 ^ 0x4e) & 0x3f);
  uVar23 = (*(ulonglong *)(lVar5 + -0x400) ^ uVar27) << (((byte)uVar11 ^ 0xe7) & 0x3f);
  uVar39 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(lVar5 + -0x5c0) = uVar23 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670934;
  lVar4 = DAT_1826707a0;
  uVar23 = *(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0xba28de5e)) ^ uVar35 | uVar23;
  *(ulonglong *)(lVar5 + -0xce0) = uVar23 ^ uVar39;
  uVar35 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar30 ^ 0xb08fcfc7)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xba28dc1e)) ^ uVar31) - uVar23 ^ uVar35;
  uVar13 = DAT_18267080c;
  uVar36 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar31 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar23 = uVar36 ^ *(ulonglong *)(lVar4 + -0x4c8) ^ uVar39 ^ uVar32 ^
           *(ulonglong *)(lVar4 + -0xce0);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar23;
  uVar39 = (uVar23 ^ uVar36) >> ((bVar25 ^ 0x8c) & 0x3f);
  *(ulonglong *)(lVar4 + -0x588) = uVar39 ^ uVar31;
  local_110 = (byte)uVar15;
  uVar23 = (uVar36 ^ uVar23) << ((local_110 ^ 0xc) & 0x3f);
  *puVar1 = uVar23 ^ CONCAT44(uVar13,uVar13);
  uVar39 = uVar39 | uVar23;
  uVar40 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar4 + -0x220) = uVar39 ^ uVar40;
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 - (uVar38 ^ 0xfcc9471c)) ^ uVar32) - uVar39 ^ uVar31;
  uVar13 = DAT_182670850;
  uVar32 = (ulonglong)DAT_182670a5c;
  uVar39 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar23 = *(ulonglong *)(lVar4 + -0x438) ^ uVar39 ^ uVar35 ^ uVar44 ^
           *(ulonglong *)(lVar4 + -0xd88);
  *(ulonglong *)(lVar4 + -0x6f0) = uVar23;
  uVar36 = CONCAT44(uVar13,uVar13);
  puVar28 = (ulonglong *)(lVar4 - (uVar34 ^ 0xce4a58bb));
  *puVar28 = (uVar23 >> 0x20 ^ uVar32) >> 0x19 ^ uVar36;
  uVar14 = DAT_18267091c;
  *(ulonglong *)(lVar4 + -0x5c0) =
       CONCAT44(uVar9,uVar45) ^ 0x93226e419b9b71a4 | CONCAT44(iVar6,uVar7) ^ 0xef6d384c876c9644;
  uVar13 = DAT_1826708d4;
  uVar23 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0xf7fb7d0f)) ^ uVar39) << ((bVar25 ^ 0xbf) & 0x3f);
  *(ulonglong *)(lVar4 + -0x420) = uVar23 ^ CONCAT44(uVar14,uVar14);
  uVar32 = CONCAT44(uVar13,uVar13);
  *puVar3 = (uVar23 | uVar36 ^ *(ulonglong *)(lVar4 + -0x400)) ^ uVar32;
  uVar13 = _DAT_1826708bc;
  uVar42 = DAT_1826707f0;
  uVar47 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  puVar24 = (ulonglong *)(lVar4 - (uVar21 ^ 0x448144e0));
  *puVar24 = (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b0 ^ 0x42a06d6e)) ^ uVar35) -
             (*(ulonglong *)(lVar4 - (uVar30 ^ 0xb08fcd9f)) ^ uVar32) ^ uVar47;
  uVar35 = CONCAT44(uVar13,uVar13);
  uVar32 = *(ulonglong *)(lVar4 - (uVar20 ^ 0x44854e61)) ^ *(ulonglong *)(lVar4 + -0xc18) ^ uVar35 ^
           uVar32 ^ uVar31;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar32;
  uVar17 = (uVar42 << 0x10 | uVar42 & 0xff00) << 8 | uVar42 >> 8 & 0xff00 | DAT_1826707f0 >> 0x18;
  bVar18 = (byte)uVar42;
  uVar23 = (uVar32 ^ uVar35) >> ((bVar18 ^ 0xd8) & 0x3f);
  DAT_1826707f4 = uVar17;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar23 ^ CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar37 = (uVar35 ^ uVar32) << ((bVar18 ^ 0xe4) & 0x3f);
  *puVar1 = uVar37 ^ CONCAT44(DAT_182670ad8,DAT_182670ad8);
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar32 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = (uVar37 | uVar23) ^ uVar35;
  uVar13 = DAT_182670928;
  puVar29 = (ulonglong *)(lVar4 - ((ulonglong)uVar42 ^ 0x50dc25e));
  *puVar29 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xd6cf011d)) ^ uVar31) -
             (CONCAT44(uVar17,uVar12) ^ 0x8822e4e9c1f6a97f) ^ uVar32;
  uVar8 = DAT_182670a10;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar23 = (ulonglong)DAT_182670a10;
  *(ulonglong *)(lVar4 + -0x5c0) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0xd88)) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xd6cf09cd)) ^ uVar35) ^ uVar37;
  uVar13 = DAT_1826708e4;
  uVar44 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar4 + -0x6f0) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x4c8)) - (CONCAT44(uVar42,iVar6) ^ 0xb1b15ba1cba9c68c) ^
       uVar44;
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar31 = CONCAT44(uVar8,uVar8) ^ uVar47 ^ uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x220) ^
           *(ulonglong *)(DAT_1826707a0 + -0xce0);
  *(ulonglong *)(DAT_1826707a0 + -0x400) = uVar31;
  uVar13 = DAT_182670abc;
  *(ulonglong *)(lVar4 + -0x420) =
       ((ulonglong)(uVar8 >> 0x10) | uVar23 << 0x10) ^ uVar31 >> 0x10 ^ uVar36;
  uVar35 = CONCAT44(uVar13,uVar13);
  puVar43 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x2554508d));
  uVar23 = CONCAT44(DAT_1826707bc,uVar10);
  uVar40 = (ulonglong)DAT_1826707c0;
  uVar39 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *puVar43 = (CONCAT44(uVar8,uVar8) ^ uVar31) << (((byte)uVar10 ^ 0xe4) & 0x3f) ^ uVar35;
  uVar8 = DAT_1826707b0;
  uVar36 = uVar36 ^ *(ulonglong *)(lVar4 + -0x420) | *(ulonglong *)(lVar4 + -0x438) ^ uVar35;
  *puVar3 = uVar36 ^ uVar39;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar23 ^ CONCAT44(uVar45,uVar8) ^ 0xd88a2557b1737433;
  uVar13 = DAT_1826708ac;
  uVar23 = (uVar47 ^ *puVar24) - (CONCAT44(uVar42,uVar17) ^ 0xebf344baaab7781a);
  *(ulonglong *)(lVar4 + -0x588) = uVar23 ^ uVar27;
  uVar35 = CONCAT44(uVar13,uVar13);
  *puVar1 = uVar23 - uVar36 ^ uVar35;
  uVar13 = DAT_182670844;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 + -0xae8);
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar23 = (CONCAT44(uVar9,uVar11) ^ 0xf55254117bffafad) + uVar36 ^ uVar31;
  *(ulonglong *)(lVar4 + -0xc18) = uVar23;
  uVar13 = DAT_182670804;
  *(uint *)(lVar4 + -0x8e0) =
       *(uint *)(lVar4 - (uVar40 ^ 0x719ad50d)) >>
       ((byte)*(undefined4 *)(lVar4 - (uVar41 ^ 0x11959f97)) & 0x1f);
  uVar27 = CONCAT44(uVar13,uVar13);
  bVar19 = (byte)DAT_1826707ac;
  uVar23 = *(ulonglong *)(lVar4 - (uVar46 ^ 0xa7e285a5)) ^ uVar27 ^ uVar23 ^ uVar31 ^ uVar37;
  uVar31 = CONCAT44(DAT_182670830,DAT_182670830);
  *(ulonglong *)(lVar4 + -0xd88) = uVar23;
  *(ulonglong *)(lVar4 - (uVar20 ^ 0x44854cc9)) =
       (uVar23 ^ uVar27) >> ((bVar19 ^ 0x5e) & 0x3f) ^ uVar31;
  lVar4 = DAT_1826707a0;
  uVar41 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  piVar2 = (int *)(DAT_1826707a0 + -0x598);
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (uVar27 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) << ((bVar18 ^ 0xf6) & 0x3f) ^ uVar41;
  uVar23 = (ulonglong)DAT_1826707b0;
  *(int *)(lVar4 + -0x2d4) = *piVar2 << ((local_110 ^ 5) & 0x1f);
  uVar13 = DAT_1826708b4;
  uVar47 = CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(lVar4 + -0x400) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0x42a06b76)) ^ uVar41 | uVar31 ^ uVar20) ^ uVar47;
  uVar31 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x438) =
       (*(ulonglong *)(lVar4 + -0x5c0) ^ uVar37) - (uVar47 ^ *puVar28) ^ uVar31;
  lVar4 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_182670a6c;
  uVar37 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x44814ef0)) ^ uVar37 ^ *puVar1 ^ uVar35 ^ uVar44;
  uVar13 = DAT_182670a08;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 - (uVar38 ^ 0xfcc9472c));
  uVar14 = DAT_182670a1c;
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar20 = *(ulonglong *)(lVar4 + -0x420) >> 0x20 ^ uVar23 ^ uVar20;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar20;
  uVar13 = _DAT_182670b10;
  uVar37 = (*(ulonglong *)(lVar4 - (uVar40 ^ 0x719ad8c1)) ^ uVar37) << ((bVar19 ^ 0x5e) & 0x3f);
  *(ulonglong *)(lVar4 + -0xce0) = uVar37 ^ CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar39 = (uVar37 | uVar23 ^ uVar20) ^ uVar36;
  uVar37 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar4 + -0x588) = uVar39;
  uVar27 = (*(ulonglong *)(lVar4 - (uVar46 ^ 0xa7e287bd)) ^ uVar35) -
           (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0xb3b9725c)) ^ uVar36);
  uVar23 = uVar27 ^ uVar37;
  *puVar3 = uVar23;
  uVar14 = DAT_182670a90;
  uVar20 = CONCAT44(DAT_182670870,DAT_182670870);
  uVar39 = *(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xd6cf093d)) ^ uVar20 ^ uVar36 ^ uVar31 ^
           uVar39;
  uVar35 = (uVar39 ^ uVar20) >> ((bVar25 ^ 0x82) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd88) = uVar35 ^ CONCAT44(DAT_1826709d8,DAT_1826709d8);
  lVar5 = DAT_1826707a0;
  uVar20 = (uVar20 ^ uVar39) << (((byte)iVar6 ^ 0xbc) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc18) = uVar39;
  uVar13 = DAT_182670a70;
  *(ulonglong *)(lVar4 + -0x4c8) = uVar20 ^ CONCAT44(uVar14,uVar14);
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar20 = uVar20 | uVar35;
  *(ulonglong *)(lVar5 + -0x220) = uVar20 ^ uVar36;
  uVar13 = DAT_1826709e4;
  *(ulonglong *)(lVar5 + -0x5c0) = (uVar31 ^ *puVar43) - uVar20 ^ uVar32;
  lVar4 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar13,uVar13);
  uVar35 = CONCAT44(DAT_182670af4,DAT_182670af4);
  uVar23 = *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0x5ffb7fb8)) ^ uVar39 ^ uVar37 ^ uVar47 ^ uVar23
  ;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar23;
  uVar31 = (uVar23 ^ uVar39) >> (((byte)uVar12 ^ 0x8d) & 0x3f);
  uVar20 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar4 + -0x420) = uVar31 ^ uVar35;
  *(undefined1 *)(lVar4 + -0x6c9) = **(undefined1 **)(lVar4 - (uVar20 ^ 0x42a06a56));
  uVar8 = DAT_1826707ac;
  uVar35 = (ulonglong)DAT_1826707ac;
  uVar23 = (uVar39 ^ uVar23) << 0x2a;
  uVar20 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar23 ^ uVar41;
  uVar42 = DAT_1826707e4;
  uVar23 = uVar23 | uVar31;
  uVar37 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar4 + -0xce0) = uVar23 ^ uVar20;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xba28dda6)) = uVar27 - uVar23 ^ uVar37;
  uVar13 = DAT_182670a9c;
  puVar24 = (ulonglong *)(lVar4 - (uVar46 ^ 0xa7e285ed));
  *puVar24 = *(ulonglong *)(lVar4 - (uVar30 ^ 0xb08fc71f)) ^ uVar20 ^ uVar36 ^
             *(ulonglong *)(lVar4 + -0x5c0) ^ uVar32;
  uVar14 = DAT_182670854;
  uVar31 = (uVar36 ^ *(ulonglong *)(lVar4 + -0x588)) >> (((byte)uVar8 ^ 0x50) & 0x3f);
  *(ulonglong *)(lVar4 + -0xc18) = uVar31 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670840;
  uVar20 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0xd88) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0xba28dff6)) ^ uVar36) << (((byte)uVar42 ^ 0xa7) & 0x3f) ^
       uVar20;
  lVar4 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xb08fcf37)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0x5ffb7630)) ^ uVar20 | uVar31) ^ uVar23;
  bVar19 = (byte)DAT_1826707bc;
  uVar35 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar4 + -0x438) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0xb3b97214)) ^ uVar32) -
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x4c8)) ^ uVar35;
  lVar5 = DAT_1826707a0;
  *(undefined4 *)(lVar4 - (uVar30 ^ 0xb08fc867)) = 0;
  uVar13 = DAT_18267088c;
  uVar31 = uVar37 ^ uVar36 ^ *puVar1 ^ *(ulonglong *)(lVar4 + -0x220);
  *(ulonglong *)(lVar4 + -0x400) = uVar31 ^ CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar30 = uVar31 >> ((bVar19 ^ 0xd8) & 0x3f);
  uVar20 = CONCAT44(DAT_182670834,DAT_182670834);
  uVar31 = uVar31 << ((bVar18 ^ 0xe2) & 0x3f);
  *(ulonglong *)(lVar5 + -0x6f0) = uVar30 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0x420) = uVar31 ^ uVar20;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar31 + 0x18d1d4eaea08ef3;
  uVar8 = DAT_182670970;
  uVar20 = (ulonglong)DAT_182670970;
  uVar32 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x5ffb7dd8)) = (uVar31 | uVar30) ^ uVar22;
  uVar14 = DAT_182670b14;
  uVar30 = CONCAT44(DAT_182670b14,DAT_182670b14);
  uVar37 = (uVar37 ^ *puVar1) - (*puVar3 ^ uVar22) ^ uVar30;
  *(ulonglong *)(lVar5 + -0xce0) = uVar37;
  uVar31 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar5 + -0x588) =
       *(ulonglong *)(lVar5 - (uVar46 ^ 0xa7e28605)) ^ *(ulonglong *)(lVar5 + -0x438) ^ uVar22 ^
       uVar32 ^ uVar35;
  uVar13 = DAT_1826708d0;
  *(ulonglong *)(lVar5 + -0xc18) =
       *(ulonglong *)(lVar5 - (uVar21 ^ 0x44814d88)) >> 0x19 ^
       ((ulonglong)(uVar8 >> 0x19) | uVar20 << 7) ^ uVar31;
  uVar21 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0xd88) = (*puVar24 ^ uVar32) << 0x27 ^ uVar21;
  uVar20 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar5 + -0x5c0) =
       (CONCAT44(uVar12,uVar11) ^ 0x27354b8c262e6e60) <<
       ((*(byte *)(lVar5 - (uVar38 ^ 0xfcc94f34)) ^ (byte)uVar14) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar38 = *(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x42a0654e)) ^ uVar31 | *puVar29 ^ uVar21;
  uVar22 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar38 ^ CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar13 = DAT_182670908;
  lVar5 = DAT_1826707a0;
  uVar21 = (*(ulonglong *)(lVar4 - (uVar34 ^ 0xce4a5883)) ^ uVar35) -
           (CONCAT44(uVar9,uVar45) ^ 0x157b233db56a2a76);
  uVar20 = *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  *(ulonglong *)(DAT_1826707a0 + -0x400) = uVar21 ^ uVar22;
  uVar14 = DAT_182670ac0;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar21 - uVar38 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_18267082c;
  uVar38 = uVar38 - (CONCAT44(uVar42,uVar17) ^ 0x7ed618a0ae64f161);
  *(ulonglong *)(lVar5 + -0x6f0) = uVar38 ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_18267096c;
  *(ulonglong *)(lVar5 + -0x420) = uVar38 - (CONCAT44(uVar15,uVar10) ^ 0xd3a488392db446c);
  uVar21 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0xce4a5b63)) = uVar23 ^ uVar20 ^ uVar21 ^ uVar30 ^ uVar37;
  local_50 = (byte)uVar7;
  *puVar3 = (*puVar1 ^ uVar21) >> ((local_50 ^ 0x5f) & 0x3f) ^ CONCAT44(uVar13,uVar13);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar33;
  return;
}



############ FUN_ 180d3d9a0 size=5526 ############

void FUN_180d3d9a0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  int *piVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  byte bVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  uint uVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  ulonglong uVar55;
  ulonglong uVar56;
  ulonglong uVar57;
  ulonglong *puVar58;
  ulonglong uVar59;
  ulonglong uVar60;
  ulonglong *puVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  ulonglong uVar64;
  ulonglong uVar65;
  byte local_188;
  byte local_160;
  byte local_130;
  byte local_f0;
  
  uVar14 = DAT_1826707f0;
  uVar11 = DAT_1826707e0;
  uVar10 = DAT_1826707dc;
  uVar9 = DAT_1826707d8;
  uVar28 = DAT_1826707b0;
  lVar6 = DAT_1826707a0;
  uVar35 = (ulonglong)DAT_1826707e0;
  uVar51 = (ulonglong)DAT_1826707f0;
  uVar50 = (ulonglong)DAT_1826707d8;
  uVar52 = DAT_1826707d0 ^ DAT_1826707f0;
  uVar27 = (ulonglong)DAT_1826707dc;
  uVar17 = DAT_1826707d8;
  if ((DAT_1826707e0 & 1) == 0) {
    uVar17 = DAT_1826707e0;
  }
  uVar37 = DAT_1826707b0 * DAT_1826707dc;
  uVar5 = *(uint *)(&DAT_18260f758 + DAT_182670c90);
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670c90) ^ DAT_1826707b0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x660);
  uVar29 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar22 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar62 = CONCAT44(DAT_182670af0,DAT_182670af0);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  uVar23 = uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x658) | uVar29 ^ *puVar1;
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x890);
  DAT_1826707ac = uVar17;
  DAT_1826707bc = uVar52;
  DAT_1826707d4 = uVar37;
  *puVar3 = uVar23 ^ uVar62;
  uVar12 = DAT_1826707e8;
  uVar30 = CONCAT44(DAT_182670970,DAT_182670970);
  uVar36 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar60 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  uVar31 = (uVar36 ^ *puVar2) - (*(ulonglong *)(lVar6 + -0xb70) ^ uVar30);
  *(ulonglong *)(lVar6 + -0xd38) = uVar31 ^ uVar60;
  uVar41 = (ulonglong)DAT_182670a10;
  uVar43 = (ulonglong)uVar52;
  uVar18 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xba517a2a)) = uVar31 - uVar23 ^ uVar18;
  *puVar1 = CONCAT44(uVar52,uVar14) ^ CONCAT44(uVar11,uVar17) ^ 0x798a240a12fd6c92;
  lVar6 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar31 = CONCAT44(DAT_182670898,DAT_182670898);
  uVar57 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0xd249e7d5)) =
       ((uVar62 ^ *puVar3) - (*(ulonglong *)(DAT_1826707a0 + -0x6b8) ^ uVar32)) - 0xf ^ uVar57;
  uVar53 = CONCAT44(DAT_182670800,DAT_182670800);
  *puVar2 = uVar53 ^ uVar57 ^ uVar29 ^ *(ulonglong *)(lVar6 + -0xd38) ^
            *(ulonglong *)(lVar6 + -0x220);
  uVar26 = (ulonglong)uVar37;
  puVar58 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707d0 ^ 0x640051f0));
  uVar44 = CONCAT44(DAT_182670854,DAT_182670854);
  puVar33 = (ulonglong *)(lVar6 - (uVar43 ^ 0xd249e27d));
  *puVar33 = (uVar29 ^ *puVar58) >> (((byte)uVar28 ^ 0x71) & 0x3f) ^ uVar44;
  local_188 = (byte)uVar9;
  uVar23 = (uVar29 ^ *puVar58) << ((local_188 ^ 0x31) & 0x3f);
  *(ulonglong *)(lVar6 + -0xd38) = uVar23 ^ uVar62;
  *puVar2 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar37 ^ 0xe9c1d6ac)) ^ uVar44 | uVar23) ^ uVar36;
  *puVar3 = *(ulonglong *)(lVar6 - ((ulonglong)uVar11 ^ 0x56af0f0f)) ^ uVar36 ^ 0xf6d34deb3c0be276;
  uVar12 = DAT_1826707e8;
  puVar34 = (ulonglong *)(lVar6 - (uVar27 ^ 0x38d9d53b));
  *(ulonglong *)(lVar6 + -0xd38) =
       (uVar53 ^ *puVar34) - (*(ulonglong *)(lVar6 - (uVar51 ^ 0xb649bb1d)) ^ uVar36) ^ uVar53;
  *puVar3 = (CONCAT44(uVar12,uVar14) ^ 0x4f4f13f3e26fd51a) >>
            ((byte)*(undefined8 *)(lVar6 - ((ulonglong)uVar11 ^ 0x56af099f)) & 0x3f);
  uVar8 = DAT_182670860;
  uVar64 = CONCAT44(DAT_182670818,DAT_182670818);
  *puVar34 = *(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0xda0d936c)) ^ uVar64 ^ uVar53 ^ uVar18 ^
             *(ulonglong *)(lVar6 + -0x658);
  uVar24 = CONCAT44(uVar8,uVar8);
  uVar23 = (uVar53 ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) << 0x1b;
  uVar54 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *puVar3 = uVar23 ^ CONCAT44(DAT_18267090c,DAT_18267090c);
  lVar6 = DAT_1826707a0;
  uVar23 = (uVar53 ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) >> (((byte)uVar17 ^ 0x2f) & 0x3f) |
           uVar23;
  puVar34 = (ulonglong *)(DAT_1826707a0 + -0x118);
  uVar45 = uVar23 ^ uVar54;
  *puVar34 = uVar45;
  uVar8 = DAT_182670868;
  *(ulonglong *)(lVar6 + -0x220) = (uVar18 ^ *(ulonglong *)(lVar6 + -0x658)) - uVar23 ^ uVar32;
  uVar25 = CONCAT44(uVar8,uVar8);
  *puVar1 = uVar25 ^ uVar54 ^ uVar53 ^ uVar45 ^ *(ulonglong *)(lVar6 + -0xd38);
  uVar46 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *puVar33 = (*(ulonglong *)(lVar6 - (uVar26 ^ 0xe9c1d85c)) ^ uVar25) >>
             (((byte)DAT_1826707e8 ^ 0x65) & 0x3f) ^ uVar46;
  lVar6 = DAT_1826707a0;
  uVar55 = CONCAT44(DAT_182670a90,DAT_182670a90);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0x220);
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       (uVar25 ^ *puVar1) << ((local_188 ^ 0x23) & 0x3f) ^ uVar55;
  *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707d0 ^ 0x64005018)) =
       CONCAT44(uVar52,uVar10) ^ uVar32 ^ *puVar20 ^ 0x92b17f46d7f3e214;
  lVar6 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *puVar1 = (uVar55 ^ *(ulonglong *)(DAT_1826707a0 + -0x658) | uVar46 ^ *puVar3) ^ uVar39;
  lVar7 = DAT_1826707a0;
  uVar47 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x56af0ee7)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar37 ^ 0xe9c1d304)) ^ uVar53) -
       (*(ulonglong *)(lVar6 - (uVar43 ^ 0xd249ec8d)) ^ uVar39) ^ uVar47;
  *(ulonglong *)(lVar7 - (uVar50 ^ 0x2d28689a)) =
       *(ulonglong *)(lVar7 - (uVar26 ^ 0xe9c1decc)) ^ uVar36 ^ uVar57 ^ uVar32 ^
       *(ulonglong *)(lVar7 + -0x220);
  *(ulonglong *)(lVar7 + -0x658) =
       (CONCAT44(uVar14,uVar11) ^ 0x9b88348d467ac889) -
       (CONCAT44(uVar14,uVar11) ^ 0x255790ff984f8e87);
  uVar8 = DAT_182670888;
  uVar23 = (uVar57 ^ *puVar3) >> (((byte)uVar28 ^ 0x5c) & 0x3f);
  bVar21 = (byte)DAT_1826707e4;
  *(ulonglong *)(lVar7 + -0xd38) = uVar23 ^ uVar64;
  uVar38 = CONCAT44(uVar8,uVar8);
  uVar40 = CONCAT44(DAT_182670980,DAT_182670980);
  uVar23 = (uVar57 ^ *puVar3) << ((bVar21 ^ 0x2c) & 0x3f) | uVar23;
  uVar45 = uVar23 ^ uVar40;
  puVar19 = (ulonglong *)(DAT_1826707a0 + -0x420);
  *puVar19 = uVar45;
  uVar56 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) - uVar23 ^ uVar56;
  local_160 = (byte)DAT_1826707d0;
  uVar45 = uVar32 ^ *puVar34 ^ uVar40 ^ uVar47 ^ uVar45;
  *puVar2 = uVar45;
  lVar6 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_182670b00,DAT_182670b00);
  bVar21 = (byte)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (uVar32 ^ *puVar58) >> ((local_160 ^ 0x34) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar6 - (uVar51 ^ 0xb649bfcd)) =
       (uVar32 ^ uVar45) << ((bVar21 ^ 0xf3) & 0x3f) ^ uVar62;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(lVar6 - (uVar50 ^ 0x2d2860fa)) = uVar57 ^ *puVar3 ^ 0x88d5dcd50cb3eaa;
  uVar23 = uVar62 ^ *puVar19 | uVar23 ^ *(ulonglong *)(lVar7 + -0x220);
  *puVar2 = uVar23 ^ uVar30;
  lVar6 = DAT_1826707a0;
  *puVar3 = **(ulonglong **)(lVar7 + -0x7b8) ^ uVar40;
  *puVar19 = (*(ulonglong *)(lVar6 - (uVar26 ^ 0xe9c1df24)) ^ uVar47) - uVar23 ^ uVar25;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       *(longlong *)(DAT_1826707a0 - ((ulonglong)uVar28 ^ 0xda0d942c)) -
       (uVar56 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38));
  uVar8 = DAT_182670aa0;
  uVar26 = uVar39 ^ uVar18 ^ *puVar1 ^ uVar56 ^ *(ulonglong *)(lVar6 + -0xd38);
  *puVar3 = uVar26;
  puVar58 = (ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0x2d286112));
  uVar48 = CONCAT44(uVar8,uVar8);
  uVar23 = (ulonglong)DAT_1826707e4;
  *puVar58 = (uVar26 >> 0x20 ^ uVar41) >> 0x19 ^ uVar48;
  uVar8 = DAT_182670a64;
  puVar61 = (ulonglong *)(lVar6 - (uVar23 ^ 0xd8d1b8a4));
  uVar41 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar26 = (uVar18 ^ *puVar61) << ((local_160 ^ 7) & 0x3f);
  uVar23 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar6 + -0x658) = uVar26 ^ uVar41;
  lVar6 = DAT_1826707a0;
  uVar59 = CONCAT44(uVar8,uVar8);
  uVar26 = *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0xba517d6a)) ^ uVar48 | uVar26;
  uVar45 = uVar26 ^ uVar59;
  uVar17 = DAT_1826707b0 ^ 0x3c7074d4;
  uVar28 = DAT_1826707e0 ^ 0xfb50e10e;
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0xd38);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar45;
  *(uint *)(lVar6 + -0xc0c) = uVar17 + uVar28;
  *puVar34 = (uVar56 ^ uVar23) - uVar26 ^ uVar31;
  lVar7 = DAT_1826707a0;
  uVar56 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar45 = uVar25 ^ uVar56 ^ uVar59 ^ *puVar19 ^ uVar45;
  *(ulonglong *)(lVar6 + -0x658) = uVar45;
  uVar8 = DAT_18267089c;
  uVar49 = (*(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707d0 ^ 0x64005758)) ^ uVar56) >>
           (((byte)DAT_1826707a8 ^ 0x27) & 0x3f);
  local_f0 = (byte)uVar11;
  *(ulonglong *)(lVar7 + -0xd38) = uVar49 ^ uVar29;
  uVar13 = DAT_1826708b8;
  uVar63 = CONCAT44(uVar8,uVar8);
  uVar23 = (uVar56 ^ uVar45) << ((local_f0 ^ 0xcd) & 0x3f);
  *(ulonglong *)(lVar7 + -0x220) = uVar23 ^ uVar63;
  lVar6 = DAT_1826707a0;
  uVar49 = uVar49 | uVar23;
  DAT_1826707a8 = DAT_1826707d8 << 0x10 | DAT_1826707d8 >> 0x10;
  puVar20 = (ulonglong *)(DAT_1826707a0 - (uVar50 ^ 0x2d28642a));
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar49 ^ CONCAT44(uVar13,uVar13);
  uVar28 = DAT_1826707a8;
  uVar65 = (ulonglong)DAT_1826707a8;
  uVar26 = (*puVar20 ^ uVar25) - (*(ulonglong *)(lVar6 + -0x438) ^ uVar64);
  uVar17 = DAT_1826707a8 >> 0x19;
  uVar23 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar6 + -0xd38) = uVar26 ^ uVar38;
  *(ulonglong *)(lVar6 + -0x220) = ((ulonglong)uVar17 | uVar23 << 7) ^ 0x720272f141;
  uVar8 = DAT_182670adc;
  *puVar19 = uVar26 - uVar49 ^ uVar46;
  uVar64 = CONCAT44(uVar8,uVar8);
  uVar23 = (*(ulonglong *)(lVar6 - (uVar50 ^ 0x2d2866fa)) ^ uVar59) +
           (*(ulonglong *)(lVar6 + -0x588) ^ uVar63);
  *(ulonglong *)(lVar6 + -0x220) = uVar23 ^ uVar64;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar28 ^ 0x600a2b48)) = uVar49 - uVar23 ^ uVar39;
  uVar13 = DAT_182670b0c;
  *puVar3 = uVar64 ^ *(ulonglong *)(lVar6 + -0x220) | uVar38 ^ *(ulonglong *)(lVar6 + -0xd38);
  uVar45 = CONCAT44(uVar13,uVar13);
  uVar26 = uVar31 ^ uVar30 ^ *puVar34 ^ *puVar2;
  puVar20 = (ulonglong *)(DAT_1826707a0 - (uVar50 ^ 0x2d286a12));
  *(ulonglong *)(lVar6 + -0xa18) = uVar26 ^ uVar45;
  lVar6 = DAT_1826707a0;
  bVar21 = (byte)uVar28;
  piVar4 = (int *)(DAT_1826707a0 + -0x598);
  *(ulonglong *)(DAT_1826707a0 + -0x658) = (*puVar20 ^ uVar45) >> ((bVar21 ^ 0x38) & 0x3f) ^ uVar45;
  *(uint *)(lVar6 + -0x7e4) = (uVar28 ^ 0x6725e396) * *piVar4;
  lVar6 = DAT_1826707a0;
  local_130 = (byte)uVar52;
  uVar23 = *(ulonglong *)(DAT_1826707a0 + -0xd38);
  *puVar3 = uVar26 << ((bVar21 ^ 0x18) & 0x3f) ^ uVar25;
  uVar26 = (ulonglong)DAT_1826707b4;
  *puVar2 = (uVar38 ^ uVar23) << ((local_130 ^ 0xc5) & 0x3f);
  puVar20 = (ulonglong *)(lVar6 + -0xbb0);
  puVar42 = (ulonglong *)(lVar6 - (uVar27 ^ 0x38d9d143));
  *(ulonglong *)(lVar6 + -0xa18) =
       (*(ulonglong *)(lVar6 - (uVar26 ^ 0xfffbff6f)) ^ uVar25 | *puVar42 ^ uVar45) ^ uVar44;
  uVar28 = DAT_1826707c8;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0x7c72baa1)) =
       (uVar31 ^ *puVar34) - (uVar55 ^ *puVar20) ^ uVar29;
  lVar7 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       (uVar29 ^ *puVar2) - (uVar44 ^ *(ulonglong *)(lVar6 + -0xa18)) ^ uVar26;
  uVar8 = DAT_1826707c0;
  lVar6 = DAT_1826707a0;
  uVar27 = *(ulonglong *)(DAT_1826707a0 + -0xa18);
  *puVar3 = (*(ulonglong *)(lVar7 - (uVar65 ^ 0x600a2010)) ^ uVar26) << ((bVar21 ^ 0x1f) & 0x3f);
  uVar11 = DAT_182670a00;
  uVar23 = (ulonglong)DAT_182670a00;
  *puVar20 = (CONCAT44(uVar8,uVar14) ^ 0xcb4f2e2749b6441f) -
             (*(ulonglong *)(lVar6 - (uVar50 ^ 0x2d2861b2)) ^ uVar64) ^ uVar54;
  uVar17 = DAT_1826707b8;
  uVar50 = (ulonglong)DAT_1826707b8;
  uVar45 = CONCAT44(uVar11,uVar11);
  *puVar34 = (*(ulonglong *)(lVar6 - (uVar43 ^ 0xd249e15d)) ^ uVar54) + (uVar44 ^ uVar27) ^ uVar53;
  uVar27 = *(ulonglong *)(DAT_1826707a0 - (uVar50 ^ 0xad39e5b6)) ^ uVar46 ^ uVar53 ^ uVar45 ^
           *puVar19;
  *puVar2 = uVar27;
  *puVar61 = uVar27 >> 0x20 ^ uVar23 ^ uVar47;
  lVar6 = DAT_1826707a0;
  bVar21 = (byte)uVar28;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = (uVar45 ^ *puVar2) << ((bVar21 ^ 0x71) & 0x3f) ^ uVar62;
  *puVar20 = (CONCAT44(uVar17,DAT_1826707e8) ^ 0x7b7b35ce970fee5a) <<
             (((byte)uVar13 ^ *(byte *)(lVar6 + -0x658)) & 0x3f);
  uVar13 = DAT_1826707ec;
  uVar31 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *puVar34 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707cc ^ 0x7d6e7013)) ^ uVar62 |
             *puVar33 ^ uVar47) ^ uVar31;
  uVar17 = DAT_1826707c4;
  *puVar2 = CONCAT44(DAT_1826707d0,uVar13) ^ 0x4b9696fbd5e64a56 |
            CONCAT44(uVar12,uVar13) ^ 0x2429e5044b5d7fd6;
  lVar6 = DAT_1826707a0;
  *puVar42 = (uVar46 ^ *puVar19) - (*puVar58 ^ uVar31) ^ uVar22;
  uVar11 = DAT_1826707e8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar17 ^ 0x1488ca66)) =
       *(ulonglong *)(lVar6 - (uVar35 ^ 0x56af02c7)) ^ uVar39 ^ uVar36 ^ uVar26 ^ *puVar1;
  uVar23 = CONCAT44(DAT_182670840,DAT_182670840);
  *puVar61 = (uVar36 ^ *puVar20) >> (((byte)uVar11 ^ 0x52) & 0x3f) ^ uVar18;
  lVar6 = DAT_1826707a0;
  uVar35 = (*(ulonglong *)(DAT_1826707a0 - (uVar50 ^ 0xad39ef1e)) ^ uVar36) <<
           ((bVar21 ^ 0x71) & 0x3f);
  uVar27 = *(ulonglong *)(DAT_1826707a0 + -0xd38);
  uVar50 = *puVar3;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar35 ^ uVar23;
  uVar35 = uVar18 ^ uVar50 | uVar35;
  uVar23 = uVar35 ^ uVar32;
  uVar50 = (ulonglong)DAT_1826707b4;
  *puVar2 = uVar23;
  *puVar19 = (uVar26 ^ uVar27) - uVar35 ^ uVar29;
  uVar15 = DAT_1826707f4;
  puVar33 = (ulonglong *)(lVar6 - (uVar50 ^ 0xfffbf19f));
  uVar27 = (ulonglong)DAT_1826707e8;
  *puVar33 = uVar22 ^ uVar23 ^ uVar57 ^ uVar32 ^ *(ulonglong *)(lVar6 + -0x658);
  uVar50 = (*(ulonglong *)(lVar6 - (uVar27 ^ 0xba517a12)) ^ uVar57) >>
           (((byte)uVar10 ^ 0x21) & 0x3f);
  *puVar20 = uVar50 ^ uVar22;
  uVar27 = (uVar57 ^ *puVar33) << ((local_130 ^ 0xeb) & 0x3f);
  *puVar3 = uVar27 ^ uVar47;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) =
       CONCAT44(uVar15,uVar9) ^ 0xd991f8680a3259b5 |
       CONCAT44(uVar12,DAT_1826707e8) ^ 0x50f6ef32909786e;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = (uVar50 | uVar27) ^ uVar64;
  *puVar2 = (uVar22 ^ *(ulonglong *)(lVar6 + -0x658)) -
            (*(ulonglong *)(lVar6 - (uVar51 ^ 0xb649b6d5)) ^ uVar64) ^ uVar24;
  uVar9 = DAT_1826707e4;
  lVar6 = DAT_1826707a0;
  uVar27 = uVar29 ^ uVar31 ^ *puVar34 ^ uVar40 ^ *puVar19;
  *puVar1 = uVar27;
  *(ulonglong *)(lVar6 + -0xa18) = (uVar27 ^ uVar40) >> (((byte)uVar8 ^ 0xce) & 0x3f) ^ uVar31;
  uVar50 = (uVar27 ^ uVar40) << (((byte)uVar9 ^ 0x1e) & 0x3f);
  *puVar20 = uVar50 ^ uVar25;
  uVar27 = *puVar19;
  uVar50 = *(ulonglong *)(lVar6 - (uVar51 ^ 0xb649b1f5)) ^ uVar31 | uVar50;
  *puVar3 = uVar50 ^ uVar55;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0x1488c78e)) = (uVar29 ^ uVar27) - uVar50 ^ uVar45;
  uVar50 = uVar55 ^ uVar24 ^ *puVar3 ^ *puVar2;
  *puVar34 = uVar50 ^ uVar56;
  *puVar1 = 0x717922b831000000;
  lVar6 = DAT_1826707a0;
  uVar50 = uVar50 >> (((byte)uVar13 ^ 0xd1) & 0x3f);
  uVar27 = CONCAT44(DAT_1826707cc,uVar28);
  puVar33 = (ulonglong *)(DAT_1826707a0 + -0x658);
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = uVar50 ^ uVar41;
  *puVar20 = uVar27 ^ 0xcb83d8430cd13cac | uVar45 ^ *puVar33;
  DAT_1826707d0 =
       (uVar17 << 0x10 | uVar17 & 0xff00) << 8 | uVar17 >> 8 & 0xff00 | DAT_1826707c4 >> 0x18;
  uVar35 = CONCAT44(uVar17,DAT_1826707d0);
  uVar27 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar17 ^ 0x1488c0ce)) ^ uVar56) <<
           (((byte)uVar17 ^ 0xc4) & 0x3f);
  uVar51 = CONCAT44(DAT_1826707d0,DAT_1826707d0);
  *puVar19 = uVar27 ^ uVar48;
  uVar50 = uVar27 | uVar50;
  *puVar3 = uVar50 ^ uVar60;
  *puVar1 = uVar27 | uVar35 ^ 0xb08ee3a9467b47a1;
  *puVar20 = (uVar24 ^ *puVar2) - uVar50 ^ uVar63;
  *puVar34 = (uVar51 ^ 0xe035f8f084dfeca) + (uVar35 ^ 0x95669fcbe8afa7e2);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar5 ^ uVar37;
  return;
}



############ FUN_ 180c58320 size=5197 ############

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

void FUN_180c58320(void)

{
  longlong *plVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  byte *pbVar23;
  uint uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  byte bVar33;
  uint uVar34;
  ulonglong *puVar35;
  byte bVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte *pbVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_d0;
  
  uVar8 = DAT_18267091c;
  uVar24 = DAT_1826707e4;
  uVar11 = DAT_1826707c4;
  lVar3 = DAT_1826707a0;
  uVar19 = DAT_1826707c4 + DAT_1826707e4;
  uVar28 = (ulonglong)uVar19;
  uVar20 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar19 ^ 0xf8812d1) + (longlong)DAT_182670cc4) ^
           DAT_1826707c4;
  uVar21 = *(uint *)(&DAT_18260f760 + DAT_182670cc4) ^ DAT_1826707e4;
  uVar40 = CONCAT44(DAT_182670998,DAT_182670998);
  uVar31 = CONCAT44(DAT_182670adc,DAT_182670adc);
  bVar36 = (byte)DAT_182670adc;
  uVar39 = (ulonglong)DAT_1826707c4;
  uVar32 = (ulonglong)DAT_182670acc;
  DAT_1826707d8 = uVar19;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0x54c7ec56)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xf881f51)) ^ uVar40) >>
       (((byte)DAT_182670b08 ^ *(byte *)(DAT_1826707a0 + -0x660)) & 0x3f);
  bVar33 = (byte)DAT_182670a50;
  uVar29 = CONCAT44(uVar19,uVar19) ^ 0xf8812d90f8812d1;
  bVar36 = bVar36 ^ (byte)DAT_182670a50;
  uVar22 = (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar3 + -0x588)) >> ((byte)uVar29 & 0x3f) ^
           uVar31;
  *(ulonglong *)(lVar3 + -0xce0) = uVar22;
  bVar36 = bVar36 ^ (byte)uVar22;
  *(byte *)(lVar3 + -0x182) = bVar36;
  bVar33 = bVar33 ^ bVar36 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar3 + -0x760) =
       *(longlong *)(lVar3 - ((ulonglong)uVar24 ^ 0x54c7ef1e)) + 0x41U ^ uVar32;
  uVar8 = DAT_182670988;
  plVar1 = (longlong *)(lVar3 + -0x2d0);
  *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xbac02303)) ^ uVar32) = bVar33;
  uVar9 = DAT_182670ae4;
  uVar5 = DAT_182670814;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar38 = (ulonglong)DAT_182670814;
  *(ulonglong *)(lVar3 + -0xb78) =
       *plVar1 + ((CONCAT44(uVar11,uVar24) ^ 0xbac0246354c7ee7e) +
                 (CONCAT44(uVar19,uVar11) ^ 0xf8812d9bac02463) * 0xc) * 8 ^ uVar22;
  uVar37 = CONCAT44(uVar9,uVar9);
  uVar32 = CONCAT44(DAT_182670a24,DAT_182670a24);
  bVar33 = (byte)DAT_182670a24 ^ (byte)DAT_1826709d4;
  uVar30 = (ulonglong)DAT_182670af8;
  *(ulonglong *)(lVar3 - (uVar39 ^ 0xbac022db)) =
       *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar28 ^ 0xf8819a1)) ^ uVar22) ^ CONCAT44(uVar5,uVar5)
       ^ uVar37;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0x54c7e816)) =
       ((ulonglong)(uVar5 >> 0x10) | uVar38 << 0x10) ^
       *(ulonglong *)(DAT_1826707a0 + -0x6b8) >> 0x10 ^ uVar32;
  *(byte *)(lVar3 + -0xd29) = bVar33 ^ *(byte *)(lVar3 + -0x660);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar19 ^ 0xf881999)) =
       *(longlong *)(lVar3 + -0x168) + 0x42U ^ uVar30;
  *(byte *)(*(ulonglong *)(lVar3 + -0xb40) ^ uVar30) =
       *(byte *)(lVar3 - ((ulonglong)uVar24 ^ 0x54c7e35f)) ^ (byte)DAT_1826709d4 ^
       (byte)DAT_182670a40;
  uVar18 = DAT_182670ae0;
  uVar14 = DAT_1826707e4;
  uVar30 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  puVar27 = (ulonglong *)
            (*plVar1 + (uVar29 + (CONCAT44(uVar11,uVar11) ^ 0xbac02463bac02463) * 0xc) * 8);
  puVar2 = (ulonglong *)(lVar3 + -0xc0);
  *puVar2 = (ulonglong)puVar27 ^ CONCAT44(DAT_1826708d0,DAT_1826708d0);
  uVar22 = *puVar27 ^ uVar30 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x220) = uVar22;
  lVar3 = DAT_1826707a0;
  bVar33 = (byte)DAT_182670820;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (uVar22 ^ uVar30) >> (((byte)uVar14 ^ 0x6e) & 0x3f) ^ CONCAT44(DAT_182670820,DAT_182670820);
  lVar4 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_1826708b0;
  bVar33 = *(byte *)(lVar3 - ((ulonglong)uVar14 ^ 0x54c7ebfe)) ^ bVar33 ^ (byte)DAT_182670a08;
  puVar27 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  *(byte *)(DAT_1826707a0 + -0x109) = bVar33;
  bVar33 = bVar33 ^ (byte)DAT_182670a08 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar4 + -0x6b8) = CONCAT44(uVar11,uVar19) ^ 0xecdf14d682bf76df | uVar31 ^ *puVar27;
  pbVar23 = (byte *)(*(longlong *)(lVar4 - (uVar28 ^ 0xf8813b1)) +
                    (CONCAT44(uVar11,uVar11) ^ 0xbac02463bac02420));
  *(ulonglong *)(lVar4 + -0xb68) = (ulonglong)pbVar23 ^ uVar22;
  *pbVar23 = bVar33;
  uVar9 = DAT_182670984;
  lVar3 = DAT_1826707a0;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar4 - ((ulonglong)uVar14 ^ 0x54c7eca6)) +
            ((CONCAT44(uVar14,uVar11) ^ 0x54c7ee76bac0246b) +
            (CONCAT44(uVar19,DAT_1826707d4) ^ 0xf8812d97b3c2c77) * 0xc) * 8);
  *(ulonglong *)(lVar4 + -0xb78) = (ulonglong)puVar27 ^ CONCAT44(DAT_182670880,DAT_182670880);
  uVar8 = DAT_182670910;
  *(ulonglong *)(lVar4 + -0x588) = uVar32 ^ *(ulonglong *)(lVar4 + -0x660) ^ 0x334bee3550508f38;
  uVar12 = DAT_1826707f0;
  uVar6 = DAT_1826707ac;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar32 = *puVar27 ^ uVar22 ^ uVar37;
  *(ulonglong *)(lVar4 + -0xce0) = uVar32;
  bVar33 = (byte)DAT_182670a64;
  uVar8 = DAT_1826707e8;
  bVar36 = (byte)uVar9 ^ (byte)DAT_182670a64;
  *(ulonglong *)(lVar3 + -0x660) =
       (uVar32 ^ uVar22) >> (((byte)uVar14 ^ 0x56) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  uVar22 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xfffffa77)) =
       *(longlong *)(lVar3 + -0x6b8) - (CONCAT44(uVar8,uVar12) ^ 0x8c80d1fb13a068c5);
  bVar36 = bVar36 ^ *(byte *)(lVar3 + -0x660);
  uVar32 = (ulonglong)DAT_182670aa4;
  bVar33 = bVar33 ^ bVar36 ^ (byte)DAT_182670a40;
  *(byte *)(lVar3 + -0x839) = bVar36;
  uVar9 = DAT_18267089c;
  pbVar23 = (byte *)(*(longlong *)(lVar3 - (uVar22 ^ 0xb3adfe4f)) + 0x44);
  *(ulonglong *)(lVar3 + -0x810) = (ulonglong)pbVar23 ^ uVar32;
  *pbVar23 = bVar33;
  uVar8 = DAT_182670848;
  uVar5 = DAT_1826707a8;
  puVar27 = (ulonglong *)(*plVar1 + 0x40 + (CONCAT44(uVar14,uVar19) ^ 0x54c7ee760f8812d9) * 0x60);
  *puVar2 = (ulonglong)puVar27 ^ CONCAT44(uVar9,uVar9);
  bVar33 = (byte)DAT_1826708a8;
  uVar32 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar3 + -0xce0) = *puVar27 ^ uVar32 ^ uVar37;
  uVar24 = DAT_1826707dc;
  uVar22 = (ulonglong)DAT_1826707dc;
  uVar32 = (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e0 ^ 0x27ffa153)) ^ uVar32) >>
           (((byte)DAT_1826707e4 ^ 0x5e) & 0x3f) ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x6b8) = uVar32;
  uVar29 = (ulonglong)DAT_182670844;
  *(byte *)(lVar3 + -0x911) = (byte)uVar8 ^ bVar33 ^ (byte)uVar32;
  uVar13 = DAT_1826707cc;
  uVar32 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0x6f8) =
       *(longlong *)(lVar3 - (uVar22 ^ 0xbcfc03f0)) + (CONCAT44(uVar24,uVar11) ^ 0xbcfc0298bac02426)
       ^ uVar29;
  lVar4 = DAT_1826707a0;
  pbVar41 = (byte *)(lVar3 - ((ulonglong)uVar13 ^ 0xcc49ca13));
  bVar33 = bVar33 ^ (byte)DAT_182670a40;
  *(ulonglong *)pbVar41 = (uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) + 0x5a7b453f89c3068e;
  lVar3 = DAT_1826707a0;
  *(byte *)(uVar29 ^ *(ulonglong *)(lVar4 + -0x6f8)) = bVar33 ^ *(byte *)(lVar4 + -0x911);
  uVar16 = DAT_1826709b0;
  uVar9 = DAT_1826707b4;
  uVar8 = DAT_1826707b0;
  *(ulonglong *)(lVar3 + -0x660) =
       (CONCAT44(DAT_1826707b0,uVar11) ^ 0xbabd2dae0d380798) <<
       (((byte)DAT_1826707d4 ^ 0x55) & 0x3f);
  uVar15 = DAT_1826708a4;
  uVar22 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0xb78) =
       *plVar1 + ((CONCAT44(uVar19,DAT_1826707c8) ^ 0xf8812d9f523cf09) +
                 (CONCAT44(uVar9,uVar12) ^ 0x3026468e4e92d9a4) * 0xc) * 8 ^ uVar22;
  uVar12 = DAT_182670a80;
  uVar10 = DAT_1826707b8;
  uVar28 = (ulonglong)DAT_1826707b8;
  uVar24 = DAT_1826707b8 * uVar13;
  uVar29 = CONCAT44(uVar15,uVar15);
  uVar38 = (ulonglong)DAT_1826707b8;
  uVar31 = CONCAT44(DAT_1826707b8,uVar13);
  uVar30 = (ulonglong)uVar24;
  puVar25 = (ulonglong *)(lVar3 - (uVar30 ^ 0x85cbd89f));
  uVar22 = *(ulonglong *)(*puVar25 ^ uVar22) ^ uVar29 ^ uVar37;
  DAT_1826707e0 = uVar24;
  *(ulonglong *)(lVar3 + -0xce0) = uVar22;
  lVar3 = DAT_1826707a0;
  uVar22 = (uVar22 ^ uVar29) >> (((byte)uVar13 ^ 0xab) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  bVar33 = (byte)uVar12 ^ (byte)DAT_182670930;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar22;
  *(byte *)(lVar3 + -0x8b9) = bVar33 ^ (byte)uVar22;
  uVar22 = (ulonglong)DAT_1826708dc;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0xffb3defd)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar24 ^ 0x85cbd28f)) +
       (CONCAT44(uVar13,uVar10) ^ 0xcc49cf9bffb3dfe3) ^ uVar22;
  *(byte *)(*(ulonglong *)(lVar3 + -0x158) ^ uVar22) =
       *(byte *)(lVar3 - ((ulonglong)uVar24 ^ 0x85cbdb5e)) ^ (byte)DAT_182670930 ^
       (byte)DAT_182670a40;
  puVar27 = (ulonglong *)
            (*(longlong *)(lVar3 - ((ulonglong)uVar10 ^ 0xffb3dd75)) +
            ((uVar31 ^ 0xffb3dfa5cc49cf93) + (CONCAT44(uVar24,uVar24) ^ 0x85cbd3e785cbd3e7) * 0xc) *
            8);
  *puVar2 = (ulonglong)puVar27 ^ CONCAT44(DAT_182670970,DAT_182670970);
  uVar29 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar3 + -0x220) = *puVar27 ^ uVar29 ^ uVar37;
  lVar3 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_182670874;
  bVar33 = (byte)DAT_182670950;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xcc49cdbb)) ^ uVar29) >>
       (((byte)uVar10 ^ 0x9d) & 0x3f) ^ CONCAT44(DAT_182670950,DAT_182670950);
  *(byte *)(lVar3 + -0xd2b) = bVar33 ^ *pbVar41 ^ (byte)uVar18;
  *(ulonglong *)(lVar3 + -0x660) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0x85cbde6f)) ^ uVar40 ^ CONCAT44(uVar12,uVar12) ^
       *(ulonglong *)(lVar3 + -0x6b8);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xcc49c2fb)) = *(longlong *)(lVar3 + -0x168) + 0x47U ^ uVar22;
  uVar32 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0xffb3d2c5)) ^ uVar22) =
       (byte)uVar18 ^ *(byte *)(lVar3 + -0xd2b) ^ (byte)DAT_182670a40;
  uVar15 = DAT_182670a00;
  puVar27 = (ulonglong *)
            (*plVar1 +
            ((CONCAT44(uVar24,uVar24) ^ 0x85cbd3e785cbd3ee) +
            (CONCAT44(DAT_1826707ec,uVar13) ^ 0x84c3d388cc49cf9b) * 0xc) * 8);
  *(ulonglong *)(lVar3 + -0xb78) = (ulonglong)puVar27 ^ uVar32;
  bVar33 = (byte)DAT_182670a54;
  uVar12 = DAT_1826707f8;
  uVar40 = CONCAT44(uVar15,uVar15);
  uVar22 = *puVar27 ^ uVar40 ^ uVar37;
  *(ulonglong *)(lVar3 + -0xce0) = uVar22;
  uVar24 = DAT_1826707ac;
  uVar22 = CONCAT44(uVar12,uVar12) ^ uVar40 ^ uVar22;
  bVar36 = (byte)uVar12 ^ bVar33 ^ (byte)uVar22;
  *(ulonglong *)(lVar3 + -0x220) = uVar22;
  *(byte *)(lVar3 + -0x9d2) = bVar36;
  uVar7 = DAT_1826707ac;
  bVar33 = bVar33 ^ bVar36 ^ (byte)DAT_182670a40;
  pbVar23 = (byte *)(*(longlong *)(lVar3 + -0x168) + 0x48);
  uVar34 = uVar24 << 0x10 | uVar24 >> 0x10;
  uVar38 = CONCAT44(uVar6,DAT_1826707ac);
  uVar42 = (ulonglong)uVar34;
  *(ulonglong *)(lVar3 + -0x9b8) = (ulonglong)pbVar23 ^ (ulonglong)DAT_182670ac0;
  DAT_1826707d4 = uVar34;
  *pbVar23 = bVar33;
  uVar12 = DAT_182670a10;
  uVar29 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0xffffff3f)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar34 ^ 0xfffffd2f)) +
       ((uVar38 ^ 0xfffffffffffffff6) + ~CONCAT44(uVar6,uVar34) * 0xc) * 8 ^ uVar29;
  uVar32 = CONCAT44(DAT_182670858,DAT_182670858);
  uVar22 = (ulonglong)DAT_182670840;
  uVar29 = *(ulonglong *)(uVar29 ^ *puVar2) ^ uVar32 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x588) = uVar29;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (uVar29 ^ uVar32) >> (((byte)(uVar24 >> 0x10) ^ 0xf7) & 0x3f) ^ CONCAT44(uVar12,uVar12);
  bVar33 = (byte)uVar12 ^ *(byte *)(lVar3 + -0xd88);
  *(byte *)(lVar3 + -0x709) = bVar33 ^ (byte)DAT_1826708d4;
  pbVar23 = (byte *)(*(longlong *)(lVar3 + -0x168) + 0x49);
  bVar33 = bVar33 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar3 + -0x4f0) = (ulonglong)pbVar23 ^ uVar22;
  *pbVar23 = bVar33;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar34,uVar7) ^ 0xe4605f094c7ce4f3) + (uVar38 ^ 0x56c54c98b98ab165);
  uVar22 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar3 + -0xb78) = ~CONCAT44(uVar34,uVar34) * 0x60 + *plVar1 + 0x48 ^ uVar22;
  uVar15 = DAT_182670ad0;
  uVar32 = (ulonglong)DAT_1826709f4;
  puVar35 = (ulonglong *)(lVar3 - (uVar42 ^ 0xfffff487));
  uVar39 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar24 = DAT_1826709f4 >> 0x10;
  uVar38 = *(ulonglong *)(*puVar35 ^ uVar22) ^ uVar39 ^ uVar37;
  bVar36 = (byte)DAT_182670ad0;
  *(ulonglong *)(lVar3 + -0x220) = uVar38;
  uVar7 = DAT_1826707ac;
  lVar4 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar15,uVar15);
  uVar22 = *(ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0xfffffddf));
  uVar29 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar3 + -0x6b8) =
       CONCAT44(uVar6,uVar34) ^ 0x1328b9fec90a702f | uVar31 ^ 0x306d948c98ee5ac2;
  *(ulonglong *)(lVar3 + -0x588) = ((ulonglong)uVar24 | uVar32 << 0x10) ^ uVar22 >> 0x10 ^ uVar43;
  bVar33 = (byte)DAT_182670afc;
  bVar36 = bVar36 ^ (byte)DAT_182670afc ^ *pbVar41;
  *(byte *)(lVar4 + -0x2ba) = bVar36;
  lVar3 = DAT_1826707a0;
  puVar27 = (ulonglong *)(lVar4 - (uVar29 ^ 0xfffff277));
  uVar22 = (ulonglong)DAT_1826708d8;
  bVar33 = bVar33 ^ bVar36 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar4 + -0x6b8) = CONCAT44(uVar12,uVar12) ^ *puVar27 | uVar39 ^ uVar38;
  *(ulonglong *)(lVar4 + -0x198) =
       (CONCAT44(uVar10,uVar7) ^ 0xffb3dfa5ffffffb5) + *(longlong *)(lVar4 + -0x168) ^ uVar22;
  uVar32 = CONCAT44(DAT_182670830,DAT_182670830);
  *(byte *)(*(ulonglong *)(lVar4 - (uVar30 ^ 0x85cbd27f)) ^ uVar22) = bVar33;
  uVar17 = DAT_182670934;
  uVar29 = (ulonglong)DAT_182670934;
  *puVar2 = *plVar1 + (CONCAT44(uVar34,uVar13) ^ 0xffffffffcc49cf92) * 8 ^ uVar32;
  uVar31 = CONCAT44(DAT_182670900,DAT_182670900);
  uVar24 = DAT_1826707b8 ^ 0xff746c4f;
  uVar38 = *(ulonglong *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x54c7eeb6)) ^ uVar32)
           ^ uVar31 ^ uVar37;
  *(ulonglong *)(lVar4 + -0xd88) = uVar38;
  uVar12 = DAT_1826709f0;
  bVar33 = (byte)DAT_1826709f0;
  *(uint *)(lVar3 + -0x814) = uVar24 + (DAT_1826707ac ^ 0x34dbb2dc);
  uVar24 = DAT_1826707ac;
  bVar33 = bVar33 ^ (byte)DAT_182670b04;
  uVar32 = CONCAT44(uVar12,uVar12);
  uVar22 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar38 ^ uVar31) >> (((byte)uVar19 ^ 0xc1) & 0x3f) ^ uVar32;
  *(byte *)(lVar3 + -0xb19) = bVar33 ^ *(byte *)(lVar3 + -0x6b8);
  pbVar23 = (byte *)((CONCAT44(uVar11,uVar24) ^ 0xbac02463ffffffb4) + *(longlong *)(lVar3 + -0x168))
  ;
  *(ulonglong *)(lVar3 + -0x6e0) = (ulonglong)pbVar23 ^ uVar29;
  uVar16 = DAT_1826708ac;
  *(ulonglong *)(lVar3 + -0x548) =
       *(ulonglong *)(lVar3 - (uVar22 ^ 0xfffff31f)) ^ uVar38 ^ uVar31 ^ uVar40;
  uVar38 = (ulonglong)DAT_1826707a8;
  *pbVar23 = *(byte *)(lVar3 - (uVar42 ^ 0xfffff4e6)) ^ (byte)DAT_182670b04 ^ (byte)DAT_182670a40;
  uVar12 = DAT_182670890;
  uVar24 = DAT_1826707f4;
  uVar29 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar3 + -0xce0) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x9802fa04)) ^ uVar32) - *(longlong *)(lVar3 + -0x660);
  uVar15 = DAT_182670868;
  uVar22 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0xb78) =
       (CONCAT44(uVar24,uVar11) ^ 0xfffc2effbac02463) * 0x60 + *plVar1 + 0x48 ^ uVar22;
  *puVar27 = *(ulonglong *)(uVar22 ^ *puVar25) ^ CONCAT44(uVar15,uVar15) ^ uVar37;
  bVar33 = (byte)DAT_182670a48;
  uVar24 = DAT_1826707cc;
  uVar22 = (*(ulonglong *)(lVar3 + -0xd88) ^ CONCAT44(uVar15,uVar15)) >>
           (((byte)uVar10 ^ 0x85) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  bVar36 = (byte)uVar16 ^ (byte)uVar22;
  *(ulonglong *)(lVar3 + -0x548) = uVar22;
  uVar26 = DAT_1826707e4 ^ 0x9fe3a355;
  *(byte *)(lVar3 + -0x68d) = bVar36 ^ bVar33;
  uVar7 = DAT_1826707d0;
  uVar12 = DAT_1826707c8;
  bVar36 = bVar36 ^ (byte)DAT_182670a40;
  *(uint *)(lVar3 + -0x140) = (uVar24 ^ 0x255486e5) + uVar26;
  uVar16 = DAT_182670958;
  pbVar23 = (byte *)((CONCAT44(uVar12,uVar7) ^ 0xf523cf01b3adff6b) + *(longlong *)(lVar3 + -0x168));
  *(ulonglong *)(lVar3 + -0x8a0) = (ulonglong)pbVar23 ^ (ulonglong)DAT_182670a38;
  uVar12 = DAT_182670894;
  *pbVar23 = bVar36;
  uVar22 = *(ulonglong *)(lVar3 + -0x220);
  uVar32 = CONCAT44(uVar12,uVar12);
  *puVar2 = *plVar1 + (CONCAT44(uVar34,uVar34) ^ 0xfffffffffffffff6) * 8 ^ uVar32;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707ec ^ 0x84c3d5e8)) =
       (uVar39 ^ uVar22) <<
       ((*(byte *)(lVar3 - ((ulonglong)DAT_1826707bc ^ 0x468e3dae)) ^ (byte)uVar15) & 0x3f);
  uVar12 = DAT_182670abc;
  uVar31 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar22 = *(ulonglong *)(uVar32 ^ *puVar2) ^ uVar31 ^ uVar37;
  *(ulonglong *)(lVar3 + -0x6b8) = uVar22;
  *(ulonglong *)(lVar3 + -0xce0) =
       (uVar43 ^ *(ulonglong *)(lVar3 + -0x588)) << (((byte)uVar22 ^ (byte)uVar12) & 0x3f);
  bVar33 = (byte)DAT_182670a54;
  uVar32 = (*(ulonglong *)(lVar3 - (uVar29 ^ 0xfffc2847)) ^ uVar31) >>
           (((byte)uVar19 ^ 0xf1) & 0x3f) ^ CONCAT44(uVar16,uVar16);
  uVar22 = (ulonglong)DAT_18267096c;
  bVar36 = (byte)uVar16 ^ (byte)uVar32;
  *(ulonglong *)(lVar3 + -0x548) = uVar32;
  *(byte *)(lVar3 + -0xb41) = bVar36 ^ bVar33;
  bVar36 = bVar36 ^ (byte)DAT_182670a40;
  pbVar23 = (byte *)((CONCAT44(uVar8,DAT_1826707e8) ^ 0xefdfdfffefdfdfb2) +
                    *(longlong *)(lVar3 + -0x168));
  local_d0 = (byte)uVar11;
  *(ulonglong *)(lVar3 + -0x90) = (ulonglong)pbVar23 ^ uVar22;
  *pbVar23 = bVar36;
  uVar22 = CONCAT44(uVar6,DAT_1826707b4);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xffb3dd85)) =
       (CONCAT44(uVar5,uVar10) ^ 0x343fb1d438ee8258) << ((byte)uVar13 & 0x3f);
  uVar32 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *puVar35 = *plVar1 + ((uVar22 ^ 0xffffffff30264687) +
                       (CONCAT44(uVar14,uVar10) ^ 0x54c7ee76ffb3dfa5) * 0xc) * 8 ^ uVar32;
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar22 = CONCAT44(DAT_182670b14,DAT_182670b14);
  bVar33 = (byte)DAT_182670b14 ^ (byte)DAT_182670980;
  uVar37 = *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar38 ^ 0x9802f7c4)) ^ uVar32) ^ uVar29 ^ uVar37;
  *(ulonglong *)(lVar3 + -0xd88) = uVar37;
  uVar32 = (ulonglong)DAT_182670860;
  uVar22 = (uVar37 ^ uVar29) >> ((local_d0 ^ 0x53) & 0x3f) ^ uVar22;
  *(ulonglong *)(lVar3 + -0x660) = uVar22;
  *(byte *)(lVar3 + -0x8a9) = bVar33 ^ (byte)uVar22;
  pbVar23 = (byte *)((CONCAT44(uVar5,DAT_1826707ac) ^ 0x9802fcbcffffffb1) +
                    *(longlong *)(lVar4 + -0x168));
  uVar22 = CONCAT44(uVar9,DAT_1826707c0);
  *(ulonglong *)(lVar4 + -0x448) = (ulonglong)pbVar23 ^ uVar32;
  *pbVar23 = *(byte *)(lVar4 - (uVar30 ^ 0x85cbdb4e)) ^ (byte)DAT_182670980 ^ (byte)DAT_182670a40;
  *puVar2 = *plVar1 + (uVar22 ^ 0x3026468eab381180) * 8 ^ CONCAT44(uVar17,uVar17);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar21 * 4) = uVar20;
  return;
}



############ FUN_ 180cf79f0 size=4977 ############

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

void FUN_180cf79f0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint *puVar4;
  uint uVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  ulonglong uVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong *puVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte bVar44;
  ulonglong uVar45;
  ulonglong *puVar46;
  byte local_res18;
  byte local_e8;
  byte local_90;
  
  uVar12 = DAT_1826707dc;
  uVar11 = DAT_1826707c8;
  uVar10 = DAT_1826707c0;
  uVar9 = DAT_1826707bc;
  uVar8 = DAT_1826707ac;
  lVar6 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707dc;
  uVar39 = (ulonglong)DAT_1826707c8;
  uVar26 = (ulonglong)DAT_1826707ac;
  uVar37 = (ulonglong)DAT_1826707bc;
  uVar30 = (ulonglong)DAT_1826707c0;
  uVar28 = DAT_1826707c8 + DAT_1826707dc;
  uVar29 = (ulonglong)uVar28;
  uVar23 = DAT_1826707ac | DAT_1826707c0;
  uVar34 = *(uint *)(&DAT_18260f758 + DAT_182670b30) ^ DAT_1826707c8;
  uVar25 = ~DAT_1826707bc;
  uVar5 = *(uint *)(&DAT_18260f750 + (uVar24 ^ 0x4c3fbfef) + (longlong)DAT_182670b30);
  uVar33 = (ulonglong)uVar23;
  uVar19 = CONCAT44(DAT_1826707c0,DAT_1826707ac);
  uVar35 = (CONCAT44(DAT_182670914,DAT_182670914) ^ *(ulonglong *)(DAT_1826707a0 + -0x658)) << 0x3b;
  uVar17 = CONCAT44(uVar23,DAT_1826707ac);
  DAT_1826707b8 = uVar25;
  DAT_1826707d8 = uVar23;
  DAT_1826707ec = uVar28;
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar35 ^ CONCAT44(DAT_182670964,DAT_182670964);
  uVar14 = DAT_182670ae8;
  uVar13 = DAT_182670a18;
  *(ulonglong *)(lVar6 + -0x9c8) = uVar19 ^ 0x68ce18d871e001fe | uVar17 ^ 0xb38483e545623393;
  uVar43 = CONCAT44(uVar13,uVar13);
  uVar20 = (ulonglong)uVar25;
  *(ulonglong *)(lVar6 + -0x5c0) =
       (CONCAT44(DAT_182670858,DAT_182670858) ^ *(ulonglong *)(lVar6 + -0xd88) | uVar35) ^ uVar43;
  uVar27 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(lVar6 + -0x7d8) =
       (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar6 + -0x4c8)) -
       (*(ulonglong *)(lVar6 - (uVar20 ^ 0xf7bb763d)) ^ uVar43) ^ uVar27;
  uVar13 = DAT_18267096c;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 - (uVar30 ^ 0xe625e49a));
  lVar7 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar13,uVar13);
  uVar35 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  puVar31 = (ulonglong *)(lVar6 - (uVar39 ^ 0x20004add));
  *(ulonglong *)(lVar6 + -0x420) =
       CONCAT44(DAT_182670908,DAT_182670908) ^ *puVar31 ^ *(ulonglong *)(lVar6 + -0xc18) ^ uVar35 ^
       uVar19;
  uVar19 = *(ulonglong *)(lVar6 + -0x420) ^ uVar19;
  local_e8 = (byte)uVar23;
  *(uint *)(lVar6 + -0xb54) = (uVar9 ^ 0xfe924252) * *(int *)(lVar6 + -0xc34);
  uVar36 = uVar19 >> ((local_e8 ^ 0x46) & 0x3f);
  uVar19 = uVar19 << (((byte)uVar28 ^ 0x37) & 0x3f);
  uVar17 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(lVar7 + -0x998) = uVar36 ^ CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar7 + -0x220) = uVar19 ^ uVar17;
  lVar6 = DAT_1826707a0;
  puVar32 = (ulonglong *)(lVar7 + -0xce0);
  bVar44 = (byte)uVar11;
  uVar19 = uVar19 | uVar36;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  uVar17 = *puVar1;
  *puVar32 = 0x3c513b7a7b647d8c << ((bVar44 ^ 0x3a) & 0x3f);
  uVar36 = CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar40 = uVar19 ^ uVar36;
  uVar45 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(lVar6 + -0xa18) = uVar40;
  uVar13 = DAT_182670950;
  *(ulonglong *)(lVar6 + -0x6b8) = (uVar35 ^ uVar17) - uVar19 ^ uVar45;
  lVar6 = DAT_1826707a0;
  uVar17 = CONCAT44(uVar13,uVar13);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x400);
  uVar40 = *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x4c3fb827)) ^ uVar17 ^ uVar36 ^ uVar27 ^ uVar40
  ;
  *puVar2 = uVar40;
  bVar38 = (byte)uVar25;
  uVar35 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar6 + -0x588) = (uVar17 ^ uVar40) >> ((bVar38 ^ 0xea) & 0x3f) ^ uVar35;
  uVar19 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar6 - (uVar29 ^ 0x6c400814)) =
       (uVar40 ^ uVar17) << (((byte)uVar8 ^ 0x28) & 0x3f) ^ uVar19;
  puVar3 = (ulonglong *)(lVar6 + -0x438);
  *(ulonglong *)(lVar6 + -0x658) =
       (CONCAT44(uVar8,uVar28) ^ 0x98a476e8c4741c99) - (CONCAT44(uVar23,uVar9) ^ 0x44f7068cc04c92c2)
  ;
  uVar41 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar17 = *(ulonglong *)(lVar6 - (uVar30 ^ 0xe625e5ea)) ^ uVar35 | uVar19 ^ *puVar3;
  uVar40 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar6 + -0x9c8) = uVar17 ^ uVar41;
  uVar16 = DAT_182670b0c;
  uVar19 = (ulonglong)DAT_182670b0c;
  *(ulonglong *)(lVar6 + -0xd88) =
       (*(ulonglong *)(lVar6 - (uVar33 ^ 0xee25e3bb)) ^ uVar27) - uVar17 ^ uVar40;
  uVar13 = DAT_1826708d4;
  uVar42 = CONCAT44(uVar16,uVar16);
  uVar35 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  uVar43 = *(ulonglong *)(lVar6 - (uVar24 ^ 0x4c3fb947)) ^ *(ulonglong *)(lVar6 + -0x5c0) ^ uVar42 ^
           uVar45 ^ uVar43;
  *(ulonglong *)(lVar6 + -0x660) = uVar43;
  uVar17 = *(ulonglong *)(lVar6 - (uVar24 ^ 0x4c3fb99f));
  *(int *)(lVar6 + -0x398) = *(int *)(lVar6 + -0x540) - *(int *)(lVar6 + -0xcec);
  uVar27 = (uVar43 ^ uVar42) << ((bVar44 ^ 0x35) & 0x3f);
  uVar19 = (uVar17 >> 0x20 ^ uVar19) >> 8;
  uVar17 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar6 + -0x4c8) = uVar19 ^ uVar35;
  *(int *)(lVar6 + -0xa34) =
       *(int *)(lVar6 + -0x280) << ((byte)*(undefined4 *)(lVar6 + -0x8e0) & 0x1f);
  uVar14 = DAT_182670a08;
  *(ulonglong *)(lVar6 + -0xc18) = uVar27 ^ uVar17;
  uVar36 = CONCAT44(uVar14,uVar14);
  puVar21 = (ulonglong *)(lVar6 - (uVar37 ^ 0x8448822));
  *puVar21 = (uVar27 | uVar19) ^ uVar36;
  uVar16 = DAT_182670814;
  lVar7 = DAT_1826707a0;
  uVar17 = *(ulonglong *)(lVar6 + -0x420);
  uVar27 = (*(ulonglong *)(lVar6 + -0x6b8) ^ uVar45) - (uVar36 ^ uVar17) ^ uVar42;
  uVar35 = (ulonglong)DAT_182670814;
  uVar19 = *(ulonglong *)(lVar6 + -0xd88);
  *puVar32 = uVar27;
  uVar43 = CONCAT44(uVar16,uVar16);
  uVar45 = uVar43 ^ uVar36 ^ uVar40 ^ uVar17 ^ uVar19;
  *(ulonglong *)(lVar7 + -0x998) = uVar45;
  *(ulonglong *)(lVar7 + -0x220) =
       (CONCAT44(uVar8,uVar10) ^ 0xbbd9e6b10a9a4d87) >>
       ((*(byte *)(lVar7 - (uVar30 ^ 0xe625e4aa)) ^ (byte)uVar13) & 0x3f);
  lVar6 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_1826708c4,DAT_1826708c4);
  *puVar1 = (uVar45 >> 0x20 ^ uVar35) >> 0x14 ^ uVar36;
  local_res18 = (byte)uVar12;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) = CONCAT44(uVar25,uVar28) ^ 0x6007e0f6019f6410;
  uVar17 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *puVar2 = (uVar45 ^ uVar43) << ((local_res18 ^ 0xf3) & 0x3f) ^ uVar17;
  uVar35 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar17 = *(ulonglong *)(lVar6 - (uVar26 ^ 0x80482f1)) ^ uVar36 |
           *(ulonglong *)(lVar6 - (uVar29 ^ 0x6c40082c)) ^ uVar17;
  uVar36 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(lVar6 + -0x658) = uVar17 ^ uVar35;
  uVar43 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar41 = *(ulonglong *)(lVar6 + -0x9c8) ^ uVar43 ^ uVar27 ^ uVar42 ^ uVar41;
  uVar45 = (uVar40 ^ uVar19) - uVar17 ^ uVar36;
  *puVar3 = uVar41;
  *(ulonglong *)(lVar6 + -0x588) = uVar45;
  puVar22 = (ulonglong *)(lVar6 - (uVar20 ^ 0xf7bb77c5));
  uVar27 = (uVar43 ^ *puVar22) >> ((bVar44 ^ 0x14) & 0x3f);
  *(ulonglong *)(lVar6 + -0x7d8) = uVar27 ^ CONCAT44(DAT_1826709f0,DAT_1826709f0);
  uVar13 = DAT_182670a1c;
  *(ulonglong *)(lVar6 + -0x5c0) =
       (CONCAT44(uVar10,uVar9) ^ 0x719a2f4a060c20a5) << ((local_res18 ^ 0xfc) & 0x3f);
  uVar14 = DAT_182670a64;
  uVar17 = (uVar43 ^ uVar41) << ((bVar44 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar6 + -0x660) = uVar17 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670a60;
  uVar27 = uVar27 | uVar17;
  uVar17 = CONCAT44(uVar14,uVar14);
  uVar40 = uVar27 ^ uVar17;
  *(ulonglong *)(lVar6 + -0xc18) = uVar40;
  uVar14 = DAT_182670870;
  lVar6 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x6c4000cc)) ^ uVar42) - uVar27 ^ uVar19;
  uVar41 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar24 ^ 0x4c3fbbdf)) = uVar41 ^ uVar17 ^ uVar36 ^ uVar40 ^ uVar45;
  uVar27 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xee25e0ab)) =
       (uVar41 ^ *(ulonglong *)(lVar6 + -0x420)) >> ((bVar38 ^ 0xf3) & 0x3f) ^ uVar27;
  uVar17 = (uVar41 ^ *(ulonglong *)(lVar6 + -0x420)) << ((local_e8 ^ 0x51) & 0x3f);
  *(int *)(lVar6 + -0xaf0) = *(int *)(lVar6 + -0x280) * -0x627099d;
  uVar13 = DAT_182670850;
  *(ulonglong *)(lVar6 + -0x220) = uVar17 ^ CONCAT44(DAT_1826708a4,DAT_1826708a4);
  uVar40 = CONCAT44(uVar13,uVar13);
  uVar16 = DAT_1826707b8 ^ 0x4cb3a919;
  *(ulonglong *)(lVar6 + -0xa18) = (uVar17 | uVar27 ^ *(ulonglong *)(lVar6 + -0x4c8)) ^ uVar40;
  *(uint *)(lVar6 + -0x598) = uVar16 + *(int *)(lVar6 + -0x2d4);
  uVar17 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xee25edfb)) =
       (*(ulonglong *)(lVar6 - (uVar26 ^ 0x8048189)) ^ uVar36) -
       (CONCAT44(uVar28,uVar8) ^ 0x32ade5c0d867bee5) ^ uVar17;
  uVar41 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *puVar31 = (uVar17 ^ *(ulonglong *)(lVar6 + -0x998)) - (uVar40 ^ *(ulonglong *)(lVar6 + -0xa18)) ^
             uVar41;
  uVar36 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *puVar2 = (uVar40 ^ *(ulonglong *)(lVar6 + -0xa18)) -
            (CONCAT44(uVar12,uVar25) ^ 0xf8832b8842c89dcb) ^ uVar36;
  uVar27 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  puVar46 = (ulonglong *)(lVar6 - (uVar26 ^ 0x8048989));
  *puVar46 = uVar27 ^ uVar19 ^ uVar35 ^ *(ulonglong *)(lVar6 + -0x6b8) ^
             *(ulonglong *)(lVar6 + -0x658);
  uVar13 = DAT_182670894;
  uVar27 = uVar27 ^ *(ulonglong *)(lVar6 + -0xd88);
  uVar35 = uVar27 >> ((local_res18 ^ 0xef) & 0x3f);
  *(ulonglong *)(lVar6 + -0x9c8) = uVar35 ^ CONCAT44(DAT_182670918,DAT_182670918);
  bVar18 = (byte)uVar10;
  uVar27 = uVar27 << ((bVar18 ^ 0x52) & 0x3f);
  *(ulonglong *)(lVar6 + -0x5c0) = uVar27 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670828;
  uVar40 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar17 = *(ulonglong *)(lVar6 + -0x6b8);
  *puVar3 = (uVar35 | uVar27) ^ uVar40;
  lVar7 = DAT_1826707a0;
  uVar35 = CONCAT44(uVar13,uVar13);
  puVar31 = (ulonglong *)(lVar6 - (uVar29 ^ 0x6c400bf4));
  *puVar31 = (uVar19 ^ uVar17) - (CONCAT44(uVar10,uVar11) ^ 0x8db6b0e5c783932) ^ uVar35;
  uVar15 = DAT_1826709bc;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 + -0x418);
  uVar13 = DAT_1826708f4;
  uVar19 = CONCAT44(uVar15,uVar15);
  uVar17 = *(ulonglong *)(lVar6 + -0x7d8);
  *(ulonglong *)(lVar6 + -0x660) =
       (*(ulonglong *)(lVar6 - (uVar39 ^ 0x20004bf5)) ^ uVar35) - (uVar40 ^ *puVar3) ^ uVar19;
  uVar43 = CONCAT44(uVar13,uVar13);
  uVar27 = (uVar40 ^ *puVar22) + (CONCAT44(uVar9,uVar8) ^ 0x4d9913ec84005053) ^ uVar43;
  *puVar32 = uVar27;
  *(ulonglong *)(lVar6 + -0xc18) = (uVar17 ^ uVar35) << (((byte)uVar27 ^ (byte)uVar13) & 0x3f);
  uVar17 = (ulonglong)DAT_182670990;
  uVar35 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar35 ^ uVar43 ^ uVar41 ^ uVar27 ^ *puVar1;
  uVar40 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar7 + -0x220) =
       (CONCAT44(uVar12,uVar11) ^ 0x159b054489380a6a) >>
       (((byte)uVar14 ^ *(byte *)(lVar7 + -0x420)) & 0x3f);
  uVar13 = DAT_182670af8;
  uVar35 = (uVar35 ^ *(ulonglong *)(lVar7 + -0x4c8)) << 0x20;
  *(ulonglong *)(lVar7 + -0x998) = uVar35 ^ CONCAT44(DAT_182670824,DAT_182670824);
  uVar17 = *(ulonglong *)(lVar7 + -0x4c8) >> 0x20 ^ uVar40 ^ uVar17;
  *(ulonglong *)(lVar7 + -0x588) = uVar17;
  lVar6 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0x844861a)) = (uVar35 | uVar17 ^ uVar40) ^ uVar27;
  uVar13 = DAT_182670a20;
  uVar35 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(lVar6 + -0x658) =
       (uVar41 ^ *puVar1) - (uVar27 ^ *(ulonglong *)(lVar6 + -0xa18)) ^ uVar35;
  uVar41 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0xee25e9eb)) =
       uVar41 ^ *(ulonglong *)(lVar6 + -0x660) ^ *puVar2 ^ uVar19 ^ uVar36;
  uVar13 = DAT_18267092c;
  puVar22 = (ulonglong *)(lVar6 - (uVar29 ^ 0x6c4001a4));
  *(ulonglong *)(lVar6 + -0x9c8) = uVar41 ^ *puVar22 | uVar27 ^ *(ulonglong *)(lVar6 + -0xa18);
  uVar37 = (uVar41 ^ *(ulonglong *)(lVar6 + -0xd88)) >> ((bVar44 ^ 0xd) & 0x3f);
  uVar17 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *(ulonglong *)(lVar6 + -0x5c0) = uVar37 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_1826708dc;
  lVar7 = DAT_1826707a0;
  uVar36 = (uVar41 ^ *puVar46) << ((bVar18 ^ 0x42) & 0x3f);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar36 ^ uVar17;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar17 = *(ulonglong *)(lVar7 + -0x660);
  uVar36 = uVar36 | uVar37;
  uVar29 = CONCAT44(DAT_182670818,DAT_182670818);
  *puVar3 = uVar36 ^ uVar33;
  uVar13 = DAT_18267098c;
  *puVar31 = (uVar17 ^ uVar19) - uVar36 ^ uVar29;
  lVar6 = DAT_1826707a0;
  bVar44 = (byte)DAT_1826707ac;
  uVar19 = CONCAT44(uVar13,uVar13);
  puVar4 = (uint *)(DAT_1826707a0 + -0xc0c);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       uVar19 ^ uVar33 ^ uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x658) ^ *puVar3;
  *(uint *)(lVar6 - (uVar30 ^ 0xe625ec56)) = *puVar4 >> ((bVar44 ^ 0x1f) & 0x1f);
  uVar33 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *puVar32 = (uVar19 ^ *(ulonglong *)(lVar6 + -0xc18)) >> ((local_e8 ^ 0x59) & 0x3f) ^ uVar33;
  uVar17 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar6 - (uVar26 ^ 0x8048021)) =
       (*(ulonglong *)(lVar6 - (uVar39 ^ 0x20004035)) ^ uVar19) << ((bVar38 ^ 0xfb) & 0x3f) ^ uVar17
  ;
  uVar13 = DAT_182670ab8;
  lVar7 = DAT_1826707a0;
  uVar33 = uVar17 ^ *(ulonglong *)(lVar6 + -0x420) | uVar33 ^ *puVar32;
  uVar41 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar17 = *(ulonglong *)(DAT_1826707a0 + -0x658);
  uVar19 = *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  *(ulonglong *)(lVar6 + -0x220) = uVar33 ^ uVar41;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar26 = (uVar35 ^ uVar17) - uVar33 ^ uVar37;
  *(ulonglong *)(lVar7 + -0x4c8) = uVar26;
  uVar13 = DAT_1826707fc;
  lVar6 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar17 = *(ulonglong *)(lVar7 - (uVar39 ^ 0x20004635)) ^ uVar29 ^ uVar27 ^ uVar43 ^ uVar19;
  *(ulonglong *)(lVar7 + -0x998) = uVar17;
  uVar33 = (uVar17 ^ uVar43) >> (((byte)uVar8 ^ 0x17) & 0x3f);
  uVar27 = (uVar43 ^ uVar17) << ((bVar18 ^ 0x48) & 0x3f);
  *(ulonglong *)(lVar7 + -0x588) = uVar33 ^ uVar36;
  uVar17 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *puVar1 = uVar27 ^ CONCAT44(uVar13,uVar13);
  uVar33 = uVar33 | uVar27;
  uVar27 = CONCAT44(DAT_182670970,DAT_182670970);
  *puVar2 = uVar33 ^ uVar17;
  uVar14 = DAT_182670ac8;
  *(ulonglong *)(lVar6 + -0x9c8) = (uVar29 ^ uVar19) - uVar33 ^ uVar27;
  uVar19 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar6 - (uVar24 ^ 0x4c3fb277)) =
       *(ulonglong *)(lVar6 - (uVar39 ^ 0x2000482d)) ^ uVar19 ^ uVar17 ^ uVar37 ^ uVar26;
  uVar14 = DAT_182670a70;
  local_90 = (byte)uVar9;
  *(ulonglong *)(lVar6 + -0x5c0) =
       (uVar27 ^ *(ulonglong *)(lVar6 + -0x9c8)) >> (((byte)uVar13 ^ *(byte *)puVar1) & 0x3f);
  uVar24 = (uVar19 ^ *puVar22) >> ((local_90 ^ 0x2c) & 0x3f);
  uVar17 = *(ulonglong *)(lVar6 + -0x4c8);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar24 ^ CONCAT44(uVar14,uVar14);
  uVar13 = DAT_182670898;
  *(ulonglong *)(lVar6 + -0x660) =
       CONCAT44(uVar23,uVar23) ^ 0x75cd3d54eb1b707e | CONCAT44(uVar23,uVar12) ^ 0x5c5853798b54a779;
  uVar26 = (uVar19 ^ *(ulonglong *)(lVar6 + -0xd88)) << 0x12;
  uVar33 = CONCAT44(uVar13,uVar13);
  uVar19 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *puVar3 = uVar26 ^ uVar33;
  uVar13 = DAT_182670930;
  uVar24 = uVar24 | uVar26;
  *(ulonglong *)(lVar6 + -0xc18) = uVar24 ^ uVar19;
  uVar26 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 - (uVar30 ^ 0xe625ec82)) = (uVar37 ^ uVar17) - uVar24 ^ uVar26;
  *(undefined1 *)(lVar6 - (uVar30 ^ 0xe625e6ab)) = **(undefined1 **)(lVar6 + -0x4f8);
  uVar8 = DAT_182670910;
  uVar24 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar17 = *(ulonglong *)(lVar6 - (uVar20 ^ 0xf7bb7a35)) ^ uVar27 ^ uVar41 ^ uVar35 ^
           *(ulonglong *)(lVar6 + -0x220);
  uVar19 = (ulonglong)DAT_182670910;
  *(ulonglong *)(lVar6 + -0x420) = uVar17;
  uVar13 = DAT_1826709e8;
  uVar19 = (uVar19 << 0x14 | (ulonglong)(uVar8 >> 0xc)) ^ *puVar21 >> 0xc;
  *(ulonglong *)(lVar6 + -0x658) = uVar19 ^ uVar24;
  uVar14 = DAT_182670aec;
  uVar24 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar6 + -0xa18) = (uVar35 ^ uVar17) << ((bVar38 ^ 0xc9) & 0x3f) ^ uVar24;
  uVar35 = CONCAT44(uVar14,uVar14);
  uVar17 = *puVar3;
  uVar19 = *(ulonglong *)(lVar6 - (uVar20 ^ 0xf7bb79e5)) ^ uVar24 | uVar19;
  *(ulonglong *)(lVar6 + -0x998) = uVar19 ^ uVar35;
  uVar13 = DAT_182670acc;
  *(ulonglong *)(lVar6 + -0x7d8) = uVar33 ^ CONCAT44(uVar9,uVar10) ^ uVar17 ^ 0x57e7f0e24e85b4c1;
  *(ulonglong *)(lVar6 + -0x588) = (uVar27 ^ *(ulonglong *)(lVar6 + -0x9c8)) - uVar19 ^ uVar40;
  uVar17 = *puVar3;
  *puVar2 = *(ulonglong *)(lVar6 - (uVar20 ^ 0xf7bb7a65)) ^ CONCAT44(uVar13,uVar13) ^ uVar26 ^
            *puVar32 ^ uVar35;
  *puVar1 = CONCAT44(uVar11,uVar12) ^ uVar33 ^ uVar17 ^ 0x5d520fdce185d707;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar5 ^ uVar28) * 4) = uVar34;
  return;
}



############ FUN_ 180ce2a30 size=4912 ############

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

void FUN_180ce2a30(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  uint uVar4;
  byte bVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  undefined4 uVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong uVar53;
  ulonglong uVar54;
  byte local_128;
  byte local_120;
  byte local_b8;
  byte local_70;
  
  uVar16 = DAT_1826707f0;
  uVar14 = DAT_1826707e4;
  uVar13 = DAT_1826707d8;
  uVar12 = DAT_1826707d4;
  iVar11 = DAT_1826707c4;
  uVar10 = DAT_1826707bc;
  uVar9 = DAT_1826707b0;
  uVar8 = DAT_1826707a8;
  uVar43 = (ulonglong)DAT_1826707b0;
  uVar47 = (ulonglong)DAT_1826707d8;
  uVar50 = DAT_1826707b0 ^ DAT_1826707ec;
  uVar30 = (ulonglong)DAT_1826707d4;
  DAT_1826707dc = DAT_1826707e4 + DAT_1826707c4;
  uVar53 = (ulonglong)DAT_1826707a8;
  uVar35 = (ulonglong)DAT_1826707bc;
  uVar27 = DAT_1826707d8 & DAT_1826707a8;
  uVar36 = DAT_1826707d4 - DAT_1826707bc;
  uVar25 = (DAT_1826707f0 << 0x10 | DAT_1826707f0 & 0xff00) << 8 | DAT_1826707f0 >> 8 & 0xff00 |
           DAT_1826707f0 >> 0x18;
  uVar4 = *(uint *)(&DAT_18260f760 + DAT_182670b7c);
  uVar31 = *(uint *)(&DAT_18260f758 + DAT_182670b7c) ^ DAT_1826707f0;
  uVar32 = CONCAT44(DAT_182670930,DAT_182670930);
  uVar33 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  bVar22 = (byte)DAT_1826707d4;
  uVar44 = (ulonglong)uVar36;
  DAT_1826707ac = uVar50;
  DAT_1826707b8 = uVar27;
  DAT_1826707c8 = uVar25;
  DAT_1826707f4 = uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (*(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar32) >> ((bVar22 ^ 0x21) & 0x3f) ^ uVar33;
  lVar6 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670904,DAT_182670904);
  uVar45 = (ulonglong)uVar16;
  uVar32 = (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x1d42a879)) ^ uVar32) << 0x1f;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar32 ^ uVar37;
  uVar17 = DAT_182670924;
  uVar38 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar32 = *(ulonglong *)(lVar6 - (uVar45 ^ 0xbceb6bc7)) ^ uVar33 | uVar32;
  uVar23 = (ulonglong)uVar25;
  *(ulonglong *)(lVar6 + -0x660) = uVar32 ^ uVar38;
  *(uint *)(lVar6 + -0xcec) = (uVar14 + iVar11 ^ 0x84073952) * *(int *)(lVar6 + -0xaf0);
  uVar28 = CONCAT44(DAT_182670a94,DAT_182670a94);
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  uVar26 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar27 ^ 0x600a0cb0)) =
       ((CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) - uVar32) -
       (CONCAT44(iVar11,uVar25) ^ 0xbc6af2c4632e069e) ^ uVar26;
  lVar6 = DAT_1826707a0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  *(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0x2140d88)) =
       (CONCAT44(uVar14,uVar9) ^ 0xea70aa9b10748b06) + 0xd56669c90f69a053;
  uVar54 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  uVar34 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (uVar38 ^ *(ulonglong *)(lVar6 + -0x660)) + (CONCAT44(uVar8,uVar13) ^ 0x24d13f87e4f01796) ^
       uVar34 ^ uVar54 ^ *puVar1;
  uVar15 = DAT_1826707ec;
  uVar33 = (ulonglong)uVar50;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xefdfd3e7)) =
       (CONCAT44(uVar50,DAT_1826707ec) ^ 0x1143a45d2f75d4f7) << ((byte)*puVar2 & 0x3f);
  uVar17 = DAT_18267081c;
  lVar6 = DAT_1826707a0;
  uVar32 = *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  uVar38 = (uVar54 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) << (((byte)iVar11 ^ 0xc5) & 0x3f);
  uVar46 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *puVar20 = uVar38 ^ uVar46;
  bVar5 = (byte)DAT_1826707dc;
  uVar38 = (uVar54 ^ uVar32) >> (((byte)uVar15 ^ 0xfa) & 0x3f) | uVar38;
  *(ulonglong *)(lVar6 + -0x660) = uVar38 ^ uVar28;
  uVar29 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = (uVar34 ^ *puVar1) - uVar38 ^ uVar29;
  uVar17 = DAT_182670838;
  lVar6 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  puVar3 = (ulonglong *)(DAT_1826707a0 + -0x588);
  uVar32 = *puVar3 ^ *(ulonglong *)(DAT_1826707a0 + -0x400) ^ uVar38 ^ uVar54 ^ uVar26;
  *puVar2 = uVar32;
  uVar39 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x7d8) = (uVar32 ^ uVar54) >> ((bVar5 ^ 0xa3) & 0x3f) ^ uVar39;
  uVar48 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar6 + -0x220) = (uVar32 ^ uVar54) << 0x1b ^ uVar48;
  *(ulonglong *)(lVar6 - (uVar47 ^ 0x602f9840)) = 0x82626e9d40b38a2c >> ((bVar22 ^ 0x13) & 0x3f);
  uVar17 = DAT_182670960;
  lVar6 = DAT_1826707a0;
  uVar34 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar32 = *(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar48 |
           uVar39 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  *puVar3 = uVar32 ^ uVar34;
  uVar39 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x6b8) = (*(ulonglong *)(lVar6 + -0x400) ^ uVar26) - uVar32 ^ uVar39;
  uVar32 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  local_120 = (byte)uVar10;
  uVar40 = *(ulonglong *)(lVar6 - (uVar47 ^ 0x602f9b38)) ^
           *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x1d42a641)) ^ uVar32 ^ uVar34 ^ uVar29;
  *puVar2 = uVar40;
  uVar26 = (uVar40 ^ uVar32) >> ((local_120 ^ 0xb0) & 0x3f);
  uVar34 = CONCAT44(DAT_182670a48,DAT_182670a48);
  uVar41 = (uVar40 ^ uVar32) << ((bVar5 ^ 0xaf) & 0x3f);
  *puVar1 = uVar26 ^ uVar34;
  lVar6 = DAT_1826707a0;
  uVar40 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar51 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar41 ^ uVar40;
  lVar7 = DAT_1826707a0;
  uVar32 = *(ulonglong *)(lVar6 + -0xc18);
  uVar41 = uVar41 | uVar26;
  *(ulonglong *)(lVar6 + -0x400) = uVar41 ^ uVar51;
  *puVar3 = (CONCAT44(uVar50,uVar9) ^ 0x6892fbfa81a39aad) + 0x44b0b06da8d4b99;
  uVar26 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar6 - (uVar45 ^ 0xbceb60f7)) = (uVar32 ^ uVar29) - uVar41 ^ uVar26;
  *puVar1 = CONCAT44(uVar8,uVar14) ^ 0x36482a84c89785e3 | uVar40 ^ *(ulonglong *)(lVar6 + -0x7d8);
  uVar32 = (ulonglong)DAT_182670a1c;
  uVar29 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  puVar24 = (ulonglong *)(lVar6 - ((ulonglong)DAT_1826707dc ^ 0x92b3770e));
  *puVar24 = uVar29 ^ uVar39 ^ uVar28 ^ *(ulonglong *)(lVar6 + -0x6b8) ^
             *(ulonglong *)(lVar6 + -0x660);
  uVar19 = DAT_182670ab0;
  local_b8 = (byte)uVar13;
  uVar41 = (*puVar3 >> 0x20 ^ uVar32) >> 8;
  uVar32 = (*puVar3 ^ uVar29) << ((local_b8 ^ 0xa8) & 0x3f);
  *(ulonglong *)(lVar7 + -0xc18) = uVar41 ^ CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar7 + -0x660) = uVar32 ^ uVar54;
  uVar18 = DAT_182670888;
  uVar17 = DAT_1826707f8;
  uVar54 = (ulonglong)DAT_182670888;
  uVar29 = CONCAT44(uVar19,uVar19);
  uVar41 = uVar41 | uVar32;
  uVar42 = uVar41 ^ uVar29;
  *(ulonglong *)(lVar7 + -0x7d8) = uVar42;
  uVar40 = CONCAT44(uVar17,uVar17);
  uVar32 = CONCAT44(uVar18,uVar18);
  *puVar20 = (uVar39 ^ *(ulonglong *)(lVar7 + -0x6b8)) - uVar41 ^ uVar40;
  *(undefined1 *)(lVar7 + -0x6c9) = **(undefined1 **)(lVar7 - (uVar23 ^ 0x7f6def44));
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707ec ^ 0xfbfff10f)) =
       *puVar2 ^ uVar32 ^ uVar29 ^ uVar26 ^ uVar42;
  *puVar3 = CONCAT44(uVar36,uVar50) ^ *(ulonglong *)(lVar7 + -0x220) ^ uVar48 ^ 0xebbc77d7e450ea17;
  uVar17 = DAT_182670810;
  puVar49 = (ulonglong *)(lVar7 - (uVar33 ^ 0x14202ef0));
  uVar39 = (*puVar1 >> 0x20 ^ uVar54) >> 0x14;
  *(ulonglong *)(lVar7 + -0xc18) = uVar39 ^ uVar28;
  uVar19 = DAT_182670a20;
  uVar32 = (*puVar49 ^ uVar32) << ((bVar22 ^ 0xc) & 0x3f);
  *(ulonglong *)(lVar7 + -0x660) = uVar32 ^ CONCAT44(uVar17,uVar17);
  lVar6 = DAT_1826707a0;
  uVar41 = CONCAT44(uVar19,uVar19);
  uVar39 = uVar39 | uVar32;
  puVar21 = (ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x14202588));
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar39 ^ uVar41;
  uVar39 = (*puVar21 ^ uVar26) - uVar39;
  uVar28 = uVar39 ^ uVar48;
  uVar32 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar6 + -0x7d8) = uVar28;
  *(ulonglong *)(lVar6 + -0x220) =
       *puVar20 ^ *(ulonglong *)(lVar6 + -0x400) ^ uVar32 ^ uVar40 ^ uVar51;
  puVar52 = (ulonglong *)(lVar6 - (uVar43 ^ 0xefdfdddf));
  uVar26 = (uVar32 ^ *puVar52) >> (((byte)iVar11 ^ 199) & 0x3f);
  *puVar3 = uVar26 ^ uVar29;
  puVar21 = (ulonglong *)(lVar6 - ((ulonglong)uVar27 ^ 0x600a0a90));
  uVar43 = (uVar32 ^ *puVar21) << (((byte)uVar27 ^ 0xb7) & 0x3f);
  *puVar1 = uVar43 ^ CONCAT44(DAT_1826709e8,DAT_1826709e8);
  lVar6 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar43 = uVar43 | uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar43 ^ uVar32;
  *(ulonglong *)(lVar6 + -0x660) = (CONCAT44(iVar11,uVar50) ^ 0x3e990ceb55ce08ec) + uVar26;
  uVar29 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *puVar2 = (*puVar20 ^ uVar40) - uVar43 ^ uVar29;
  uVar43 = CONCAT44(DAT_18267088c,DAT_18267088c);
  local_128 = (byte)uVar16;
  uVar26 = CONCAT44(DAT_182670a80,DAT_182670a80);
  uVar28 = *(ulonglong *)(lVar6 - ((ulonglong)DAT_1826707ec ^ 0xfbfffbe7)) ^ uVar43 ^ uVar32 ^
           uVar48 ^ uVar28;
  *(ulonglong *)(lVar6 + -0x400) = uVar28;
  uVar40 = (uVar28 ^ uVar43) >> ((local_128 ^ 0x71) & 0x3f);
  *(ulonglong *)(lVar6 + -0x220) = uVar40 ^ uVar26;
  uVar32 = (*(ulonglong *)(lVar6 - (uVar44 ^ 0x1d42ae59)) ^ uVar43) << ((local_120 ^ 0x95) & 0x3f);
  *puVar1 = uVar32 ^ uVar41;
  uVar28 = CONCAT44(DAT_182670a34,DAT_182670a34);
  uVar40 = uVar40 | uVar32;
  *puVar3 = uVar40 ^ uVar28;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x660) = (CONCAT44(uVar14,uVar25) ^ 0x2ecbc5158a50042) - uVar32;
  uVar39 = uVar39 - (CONCAT44(uVar13,uVar12) ^ 0x3ec2775cd2773ae4);
  *puVar20 = uVar39 ^ uVar37;
  *(uint *)(lVar6 + -0x7e4) = (DAT_1826707bc ^ 0x28b356ae) + *(int *)(lVar6 + -0x8e0);
  uVar43 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar6 - (uVar33 ^ 0x14202418)) = uVar39 - uVar40 ^ uVar43;
  uVar26 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar6 + -0x400) =
       (*puVar3 ^ uVar28) - (CONCAT44(uVar16,uVar36) ^ 0x857f908a831446f) ^ uVar26;
  uVar17 = DAT_182670ae0;
  uVar32 = *puVar2 ^ uVar29 ^ uVar41 ^ uVar34 ^ *(ulonglong *)(lVar6 + -0x6b8);
  *(ulonglong *)(lVar6 + -0x220) = uVar32;
  uVar39 = CONCAT44(uVar17,uVar17);
  *puVar1 = (uVar34 ^ *puVar52) >> (((byte)uVar8 ^ 0xaa) & 0x3f) ^ uVar43;
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xe4d153c7)) =
       (uVar32 ^ uVar34) << (((byte)uVar8 ^ 0x8a) & 0x3f) ^ uVar39;
  uVar17 = DAT_182670958;
  uVar34 = uVar39 ^ *(ulonglong *)(lVar6 + -0x660) | uVar43 ^ *puVar1;
  *(ulonglong *)(lVar6 + -0x7d8) = uVar34 ^ CONCAT44(DAT_182670968,DAT_182670968);
  lVar6 = DAT_1826707a0;
  uVar32 = (*puVar2 ^ uVar29) - (CONCAT44(uVar8,uVar36) ^ 0x9024a3d6613adf46);
  *puVar20 = uVar32 ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_182670818;
  uVar28 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *puVar3 = uVar32 - uVar34 ^ uVar28;
  uVar19 = DAT_1826709b8;
  uVar32 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar34 + (CONCAT44(uVar16,uVar15) ^ 0xf936f29177fb23ad) ^ uVar32;
  uVar34 = CONCAT44(uVar19,uVar19);
  uVar39 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *puVar21 = *(ulonglong *)(lVar6 - (uVar23 ^ 0x7f6ded04)) ^ uVar34 ^ uVar32 ^ uVar43 ^
             *(ulonglong *)(lVar6 + -0xc18);
  *puVar49 = (uVar34 ^ *(ulonglong *)(lVar6 + -0x220)) >> ((local_b8 ^ 0x90) & 0x3f) ^ uVar39;
  uVar17 = DAT_182670980;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 + -0xa40);
  uVar19 = DAT_182670a2c;
  local_70 = (byte)(uVar16 >> 0x18);
  uVar32 = (*(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0x87d743a8)) ^ uVar34) <<
           ((local_70 ^ 0x9c) & 0x3f);
  *(ulonglong *)(lVar6 + -0x660) = uVar32 ^ CONCAT44(uVar17,uVar17);
  uVar17 = DAT_1826708f4;
  lVar6 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar19,uVar19);
  uVar32 = uVar32 | uVar39 ^ *puVar1;
  *puVar2 = uVar32 ^ uVar29;
  uVar34 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 - (uVar44 ^ 0x1d42a6b9)) =
       (uVar43 ^ *(ulonglong *)(lVar6 + -0xc18)) - uVar32 ^ uVar34;
  lVar6 = DAT_1826707a0;
  uVar44 = CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar32 = CONCAT44(DAT_182670918,DAT_182670918);
  uVar26 = uVar44 ^ uVar28 ^ *puVar3 ^ *(ulonglong *)(DAT_1826707a0 + -0x400) ^ uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar26;
  *(ulonglong *)(lVar6 - (uVar30 ^ 0x21406b8)) =
       (uVar26 ^ uVar44) >> ((local_70 ^ 0x9c) & 0x3f) ^ uVar32;
  uVar17 = DAT_182670828;
  uVar44 = (uVar44 ^ *(ulonglong *)(lVar6 + -0x7d8)) << ((bVar22 ^ 0x20) & 0x3f);
  *(ulonglong *)(lVar6 + -0x220) = uVar44 ^ CONCAT44(DAT_182670814,DAT_182670814);
  uVar44 = uVar44 | uVar32 ^ *(ulonglong *)(lVar6 + -0x6b8);
  uVar32 = CONCAT44(uVar17,uVar17);
  uVar30 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *puVar1 = uVar44 ^ uVar32;
  *(ulonglong *)(lVar6 - (uVar53 ^ 0x7eda2eda)) =
       (*(ulonglong *)(lVar6 - (uVar35 ^ 0xe4d1502f)) ^ uVar28) - uVar44 ^ uVar30;
  uVar17 = DAT_18267098c;
  uVar32 = *(ulonglong *)(lVar6 - (uVar47 ^ 0x602f9250)) ^ uVar32 ^ uVar34 ^ uVar38 ^ *puVar1;
  *(ulonglong *)(lVar6 + -0xc18) = uVar32;
  uVar35 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar6 + -0x400) = (uVar32 ^ uVar38) >> (((byte)uVar9 ^ 0xc5) & 0x3f) ^ uVar35;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x14202fd8)) =
       (*(ulonglong *)(lVar6 - (uVar45 ^ 0xbceb6167)) ^ uVar38) << ((local_b8 ^ 0xb6) & 0x3f) ^
       uVar46;
  uVar17 = DAT_18267087c;
  uVar32 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar7 + -0x6b8) =
       (uVar46 ^ *(ulonglong *)(lVar7 + -0x7d8)) >> (((byte)uVar36 ^ 0x58) & 0x3f);
  uVar44 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707e8 ^ 0x431490a0)) =
       (*(ulonglong *)(lVar7 - (uVar32 ^ 0xcc5c8e51)) ^ uVar46 |
       *(ulonglong *)(lVar7 - (uVar47 ^ 0x602f9ab0)) ^ uVar35) ^ uVar44;
  uVar38 = CONCAT44(DAT_182670830,DAT_182670830);
  *puVar24 = (*(ulonglong *)(lVar7 - (uVar33 ^ 0x142024e0)) ^ uVar34) - (uVar44 ^ *puVar21) ^ uVar38
  ;
  uVar32 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar7 - (uVar23 ^ 0x7f6ded4c)) =
       (CONCAT44(uVar9,uVar10) ^ 0xf171b158a4bf3f34) -
       (CONCAT44(uVar12,uVar16) ^ 0x4ce929984d78c1c3);
  uVar44 = CONCAT44(DAT_182670978,DAT_182670978);
  *(ulonglong *)(lVar7 + -0xc18) =
       *(ulonglong *)(lVar7 - (uVar32 ^ 0x92b37f0e)) ^ uVar44 ^ uVar30 ^ uVar29 ^
       *(ulonglong *)(lVar7 + -0x660);
  *(undefined1 *)(lVar7 - (uVar47 ^ 0x602f9879)) = **(undefined1 **)(lVar7 + -0x4f8);
  uVar32 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar45 = CONCAT44(DAT_182670974,DAT_182670974);
  *(ulonglong *)(lVar7 + -0x6b8) =
       (uVar44 ^ *(ulonglong *)(lVar7 + -0xc18)) >> (((byte)DAT_1826707ec ^ 0xe9) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar7 - (uVar53 ^ 0x7eda2cba)) =
       (uVar44 ^ *(ulonglong *)(lVar7 + -0xc18)) << 0x2a ^ uVar45;
  uVar17 = DAT_18267083c;
  uVar33 = uVar45 ^ *(ulonglong *)(lVar7 + -0x400) | uVar32 ^ *(ulonglong *)(lVar7 + -0x6b8);
  uVar45 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar44 = uVar33 ^ uVar45;
  uVar32 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar7 + -0x7d8) = uVar44;
  uVar19 = DAT_1826708e4;
  *puVar20 = (*(ulonglong *)(lVar7 - (uVar32 ^ 0x2a1e0f7c)) ^ uVar30) - uVar33 ^
             CONCAT44(uVar17,uVar17);
  uVar32 = (ulonglong)_DAT_18267097c;
  uVar44 = CONCAT44(_DAT_18267097c,_DAT_18267097c) ^ uVar45 ^ uVar38 ^ *puVar3 ^ uVar44;
  *puVar1 = uVar44;
  *puVar2 = (uVar44 >> 0x20 ^ uVar32) >> 0xe ^ CONCAT44(uVar19,uVar19);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar4 ^ uVar25) * 4) = uVar31;
  return;
}



############ FUN_ 180c84730 size=3045 ############

void FUN_180c84730(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  uint uVar16;
  undefined4 uVar17;
  uint uVar18;
  undefined4 uVar19;
  byte bVar20;
  uint uVar21;
  undefined1 *puVar22;
  ulonglong uVar23;
  byte *pbVar24;
  longlong lVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  byte *pbVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  
  uVar15 = DAT_182670a9c;
  uVar14 = DAT_1826707e0;
  uVar13 = DAT_1826707d0;
  uVar10 = DAT_1826707c0;
  lVar3 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707d0;
  uVar30 = (ulonglong)DAT_1826707c0;
  uVar26 = (ulonglong)DAT_1826707e0;
  uVar27 = DAT_1826707c0 * DAT_1826707e0;
  uVar31 = (DAT_1826707d0 << 0x10 | DAT_1826707d0 & 0xff00) << 8 | DAT_1826707d0 >> 8 & 0xff00 |
           DAT_1826707d0 >> 0x18;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670d50);
  uVar21 = *(uint *)(&DAT_18260f760 + DAT_182670d50) ^ DAT_1826707d0;
  uVar32 = (ulonglong)DAT_1826707e0;
  uVar35 = (ulonglong)uVar27;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xb70);
  uVar33 = CONCAT44(DAT_1826707e0,uVar27);
  DAT_1826707d4 = uVar27;
  DAT_1826707dc = uVar31;
  *(ulonglong *)(DAT_1826707a0 + -0xae0) =
       *(longlong *)(DAT_1826707a0 + -0xa58) + (uVar33 ^ 0x20004c2df345893c) * 8;
  uVar23 = CONCAT44(uVar15,uVar15);
  **(ulonglong **)(lVar3 - (uVar30 ^ 0xe625ea82)) = *puVar1 ^ uVar23;
  pbVar24 = (byte *)((CONCAT44(uVar14,uVar13) ^ 0x20004c2d5fd9d258) + *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x350) = pbVar24;
  bVar20 = *pbVar24;
  *(byte *)(lVar3 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x5fd9d4d8)) = (ulonglong)bVar20;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x200048d5)) =
       (CONCAT44(uVar14,uVar10) ^ 0x20004c2de625e05b) +
       *(longlong *)(((ulonglong)uVar31 ^ 0x60d2d96f) + DAT_1826707a0);
  *(uint *)(lVar3 + -0x280) = uVar10 ^ 0xff7fff6f | 0xfe6fef66;
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 - ((ulonglong)uVar13 ^ 0x5fd9d698));
  pbVar29 = (byte *)(lVar3 - (uVar35 ^ 0xf3458ff3));
  uVar28 = (ulonglong)*pbVar29;
  *(ulonglong *)(lVar3 + -0x658) = uVar28;
  uVar15 = DAT_1826707e4;
  uVar28 = uVar28 << (((byte)uVar27 ^ 0x32) & 0x3f);
  *(ulonglong *)(lVar3 + -0xf0) = uVar28;
  *(ulonglong *)(lVar3 + -0x630) = uVar28 | *(ulonglong *)(lVar3 + -0x6b8);
  pbVar24 = (byte *)((CONCAT44(uVar10,uVar27) ^ 0xe625e062f3458900) + *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x350) = pbVar24;
  bVar20 = *pbVar24;
  *(byte *)(lVar3 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar3 + -0xd88) = (ulonglong)bVar20;
  uVar28 = (ulonglong)bVar20 << (((byte)uVar13 ^ 0x70) & 0x3f);
  *(ulonglong *)(lVar3 + -0x118) = uVar28;
  uVar12 = DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0x5c0) = *(ulonglong *)(lVar3 - ((ulonglong)uVar27 ^ 0xf3458f0a)) | uVar28
  ;
  puVar22 = (undefined1 *)
            ((CONCAT44(uVar15,uVar14) ^ 0x76cc0c7a20004c16) + *(longlong *)(lVar3 + 0x30));
  *(undefined1 **)(lVar3 + -0x4f8) = puVar22;
  *(undefined1 *)(lVar3 + -0x6c9) = *puVar22;
  *(ulonglong *)(lVar3 + -0x588) = (ulonglong)*(byte *)(lVar3 - ((ulonglong)uVar10 ^ 0xe625e6ab));
  uVar8 = DAT_1826707b4;
  *(longlong *)(lVar3 - ((ulonglong)uVar13 ^ 0x5fd9d5b8)) =
       *(longlong *)(lVar3 + -0x6f0) - *(longlong *)(lVar3 + -0x438);
  *(longlong *)(lVar3 - ((ulonglong)uVar13 ^ 0x5fd9df58)) =
       *(longlong *)(lVar3 - ((ulonglong)uVar12 ^ 0x88503d4a)) << (((byte)uVar15 ^ 0x62) & 0x3f);
  uVar16 = DAT_1826707e8;
  uVar7 = DAT_1826707b0;
  uVar28 = *(ulonglong *)(lVar3 - ((ulonglong)uVar31 ^ 0x60d2dc9f)) | *(ulonglong *)(lVar3 + -0xd38)
  ;
  pbVar24 = (byte *)(*(longlong *)(lVar3 + 0x30) + 0x3c);
  uVar32 = (ulonglong)DAT_1826707b0;
  *(byte **)(lVar3 + -0x350) = pbVar24;
  *(ulonglong *)(lVar3 + -0xa18) = uVar28;
  uVar11 = DAT_1826707c4;
  uVar6 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 + -0x400) =
       CONCAT44(DAT_1826707c4,uVar13) ^ 0x3545b37f61dfdcbe | uVar33 ^ 0xe77d4c7fe5258353;
  bVar20 = *pbVar24;
  *(byte *)(lVar3 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar3 + -0x4c8) = (ulonglong)bVar20;
  uVar5 = DAT_1826707f4;
  *(uint *)(lVar3 + -0x280) =
       *(uint *)(lVar3 + -0x398) >>
       ((byte)*(undefined4 *)(lVar3 - ((ulonglong)DAT_1826707d8 ^ 0x1894538a)) & 0x1f);
  *(ulonglong *)(lVar3 + -0x9c8) = (ulonglong)bVar20 << (((byte)uVar5 ^ 0x2d) & 0x3f);
  uVar5 = DAT_1826707c8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar16 ^ 0x442d199e)) =
       *(ulonglong *)(lVar3 - (uVar34 ^ 0x8048dc9)) | uVar28;
  uVar28 = CONCAT44(uVar10,DAT_1826707bc);
  *(ulonglong *)(lVar3 + -0xc18) =
       CONCAT44(uVar7,uVar5) ^ 0xb346d710608cd63b | *(ulonglong *)(lVar3 + -0x610);
  pbVar24 = (byte *)((uVar28 ^ 0xe625e06208448c3f) + *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x350) = pbVar24;
  bVar20 = *pbVar24;
  *(byte *)(lVar3 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar3 + -0x420) = (ulonglong)bVar20;
  uVar9 = DAT_1826707b8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b8 ^ 0x816b0e1)) =
       (ulonglong)bVar20 << (((byte)DAT_1826707b8 ^ 0x29) & 0x3f);
  uVar5 = DAT_1826707a8;
  uVar28 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar3 + -0x220) = *(ulonglong *)(lVar3 + -0x660) | *(ulonglong *)(lVar3 + -0xce0);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xf3458a6a)) =
       (CONCAT44(uVar12,uVar6) ^ 0x885038c20804843f) + *(longlong *)(lVar3 + 0x30);
  *(undefined1 *)(lVar3 - (uVar28 ^ 0xe90dc32c)) = **(undefined1 **)(lVar3 + -0x4f8);
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 + -0x350);
  uVar18 = DAT_1826707f0;
  uVar28 = (ulonglong)*pbVar29;
  *(ulonglong *)(lVar3 + -0x998) = uVar28;
  lVar25 = uVar28 << 0x30;
  *(longlong *)(lVar3 + -0x658) = lVar25;
  *(longlong *)(lVar3 - (uVar26 ^ 0x20004a95)) = *(longlong *)(lVar3 + -0x220) + lVar25;
  puVar22 = (undefined1 *)
            ((CONCAT44(uVar18,uVar7) ^ 0x5e5194183aed8c39) + *(longlong *)(lVar3 + 0x30));
  *(undefined1 **)(lVar3 + -0x4f8) = puVar22;
  *(undefined1 *)(lVar3 + -0x6c9) = *puVar22;
  *(ulonglong *)(lVar3 + -0xd88) = (ulonglong)*(byte *)(lVar3 + -0x6c9);
  bVar20 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0xf0) = CONCAT44(uVar6,uVar14) ^ 0x36008a044809e8 | 0x9989b121d331d607;
  uVar28 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar3 + -0x630) = (ulonglong)*(byte *)(lVar3 + -0x6c9) << ((bVar20 ^ 0x3a) & 0x3f);
  *(uint *)(lVar3 - (uVar28 ^ 0x3a7639d9)) = *(uint *)(lVar3 + -0xc34) | *(uint *)(lVar3 + -0xa34);
  uVar12 = DAT_1826707d8;
  uVar28 = CONCAT44(DAT_1826707d8,uVar13);
  *(longlong *)(lVar3 - ((ulonglong)DAT_1826707bc ^ 0x8448d1a)) =
       *(longlong *)(lVar3 - (uVar30 ^ 0xe625e6da)) + *(longlong *)(lVar3 + -0x630);
  *(ulonglong *)(lVar3 + -0x58) = *(longlong *)(lVar3 + -0xa58) + (uVar28 ^ 0x1894515e5fd9d267) * 8;
  **(ulonglong **)(lVar3 - ((ulonglong)uVar31 ^ 0x60d2d907)) =
       *(ulonglong *)(lVar3 + -0x118) ^ uVar23;
  uVar19 = DAT_182670a64;
  uVar17 = DAT_1826709f8;
  *(ulonglong *)(lVar3 + -0x350) =
       (CONCAT44(uVar11,DAT_1826707e4) ^ 0x8448c0276cc0c3a) +
       *(longlong *)(((ulonglong)DAT_1826707ac ^ 0x8048431) + lVar3);
  uVar7 = DAT_1826707bc;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707cc ^ 0x88503e32)) =
       *(ulonglong *)(CONCAT44(uVar17,uVar17) ^ *(ulonglong *)(lVar3 + -0x1e8)) ^
       CONCAT44(uVar19,uVar19);
  bVar20 = **(byte **)(lVar3 + -0x350);
  *(byte *)(lVar3 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar3 + -0x438) = (ulonglong)bVar20;
  uVar17 = DAT_1826707ec;
  *(uint *)(lVar3 + -0x398) = (uVar16 ^ 0xc85a47e) - *(int *)(lVar3 + -0x540);
  lVar25 = DAT_1826707a0;
  lVar3 = *(longlong *)(lVar3 + 0x30);
  puVar22 = (undefined1 *)(lVar3 + 0x41);
  *(undefined1 **)(DAT_1826707a0 + -0x4f8) = puVar22;
  *(undefined1 *)(lVar25 + -0x6c9) = *puVar22;
  uVar23 = (ulonglong)*(byte *)(lVar25 - (uVar32 ^ 0x3aed8acf));
  *(ulonglong *)(lVar25 + -0x7d8) = uVar23;
  *(ulonglong *)(lVar25 + -0x588) = uVar23 << (((byte)uVar17 ^ 8) & 0x3f);
  uVar11 = DAT_1826707c4;
  lVar4 = DAT_1826707a0;
  uVar33 = *(ulonglong *)(lVar25 - (uVar35 ^ 0xf3458cb2)) | (ulonglong)bVar20;
  uVar34 = (ulonglong)DAT_1826707c4;
  pbVar24 = (byte *)((CONCAT44(uVar15,uVar10) ^ 0x76cc0c7ae625e020) + lVar3);
  *(byte **)(lVar25 + -0x350) = pbVar24;
  *(ulonglong *)(lVar25 + -0x5c0) = uVar33;
  bVar20 = *pbVar24;
  *(byte *)(lVar25 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar25 + -0xd38) = (ulonglong)bVar20;
  uVar28 = (ulonglong)bVar20 << (((byte)uVar11 ^ 0x12) & 0x3f);
  uVar32 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar25 + -0x400) = uVar28;
  lVar3 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707c8;
  uVar30 = (ulonglong)DAT_1826707d8;
  *(longlong *)(DAT_1826707a0 + -0x4c8) =
       *(longlong *)(lVar4 - (uVar23 ^ 0x4c2d2400)) << (bVar20 & 0x3f);
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x20004635)) = uVar33 | uVar28;
  uVar11 = DAT_1826707cc;
  uVar28 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0x9c8) =
       (CONCAT44(uVar12,uVar9) ^ 0x5fdf91e266cdb200) >>
       ((byte)*(undefined8 *)(lVar3 + -0x6b8) & 0x3f);
  puVar22 = (undefined1 *)(*(longlong *)((uVar32 ^ 0x22e26a63) + lVar3) + 0x43);
  *(undefined1 **)(lVar3 + -0x4f8) = puVar22;
  *(undefined1 *)(lVar3 + -0x6c9) = *puVar22;
  *(uint *)(lVar3 + -0x280) = *(uint *)(lVar3 + -0x8e0) | 0xc40ebd55;
  *(ulonglong *)(lVar3 + -0x610) = (ulonglong)*(byte *)(lVar3 + -0x6c9);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar5 ^ 0xe90dc9fd)) =
       (ulonglong)(*(byte *)(lVar3 + -0x6c9) >> ((byte)*(undefined8 *)(lVar3 + -0xa18) & 0x3f));
  uVar26 = *(longlong *)(lVar3 - (uVar30 ^ 0x1894574e)) << 0x18;
  *(ulonglong *)(lVar3 + -0x420) = uVar26;
  *(ulonglong *)(lVar3 + -0x660) = uVar26 | *(ulonglong *)(lVar3 + -0xa18);
  *(ulonglong *)(lVar3 + -0x350) =
       (CONCAT44(uVar13,uVar7) ^ 0x5fd9d26008448c46) + *(longlong *)(lVar3 + 0x30);
  *(ulonglong *)(lVar3 + -0xce0) =
       (CONCAT44(uVar31,uVar11) ^ 0x70a1613d8398c12b) >> (((byte)uVar16 ^ 0xee) & 0x3f);
  *(undefined1 *)(lVar3 + -0x6c9) = **(undefined1 **)(lVar3 - ((ulonglong)uVar18 ^ 0x5e519748));
  *(ulonglong *)(lVar3 + -0x998) =
       (CONCAT44(uVar27,uVar5) ^ 0x203e19c7efe14640) << (((byte)DAT_1826707e4 ^ 0x68) & 0x3f);
  *(ulonglong *)(lVar3 + -0x220) = (ulonglong)*(byte *)(lVar3 + -0x6c9);
  uVar5 = DAT_1826707f4;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x22e26c0b)) =
       (ulonglong)*(byte *)(lVar3 + -0x6c9) << (((byte)uVar11 ^ 0xe2) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xf34589ca)) =
       *(ulonglong *)(lVar3 + -0x660) | *(ulonglong *)(lVar3 + -0x658);
  pbVar24 = (byte *)(*(longlong *)(lVar3 + 0x30) + 0x45);
  bVar20 = (byte)DAT_1826707ac;
  *(byte **)(lVar3 + -0x4f8) = pbVar24;
  *(longlong *)(lVar3 + -0xd88) = *(longlong *)(lVar3 + -0x400) << ((bVar20 ^ 0x11) & 0x3f);
  bVar20 = *pbVar24;
  *(byte *)(lVar3 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar3 + -0x630) = (ulonglong)bVar20;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0x189457ae)) =
       (ulonglong)bVar20 << (((byte)uVar18 ^ 0x30) & 0x3f);
  *(ulonglong *)(lVar3 + -0x7d8) = *(ulonglong *)(lVar3 + -0xf0) | *(ulonglong *)(lVar3 + -0x6f0);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x8448f52)) =
       (CONCAT44(uVar8,uVar14) ^ 0x22e26a5320004c6b) + *(longlong *)(lVar3 + 0x30);
  *(undefined8 *)(lVar3 + -0x438) = 0;
  bVar20 = **(byte **)(lVar3 + -0x350);
  *(byte *)(lVar3 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar3 + -0x588) = (ulonglong)bVar20;
  *(undefined8 *)(lVar3 + -0xd38) = 0x6af44aaac72aca3;
  *(ulonglong *)(lVar3 + -0x4c8) = (ulonglong)bVar20 << 0x30;
  *(uint *)(lVar3 + -0x2d4) = *(uint *)(lVar3 + -0xcec) | *(uint *)(lVar3 + -0xb54);
  *(longlong *)(lVar3 + -0x5c0) =
       *(longlong *)(lVar3 - (uVar23 ^ 0x4c2d24c8)) + *(longlong *)(lVar3 + -0x7d8);
  pbVar24 = (byte *)((CONCAT44(uVar5,DAT_1826707ec) ^ 0x3a763b0d4c2d2047) +
                    *(longlong *)(lVar3 + 0x30));
  *(byte **)(lVar3 + -0x4f8) = pbVar24;
  bVar20 = *pbVar24;
  *(byte *)(lVar3 + -0x6c9) = bVar20;
  *(ulonglong *)(lVar3 + -0x6b8) = (ulonglong)bVar20;
  *(ulonglong *)(lVar3 + -0x9c8) = (ulonglong)bVar20 << (((byte)uVar7 ^ 0x3a) & 0x3f);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x885034da)) =
       (CONCAT44(uVar6,uVar10) ^ 0x8bb2ecddfa289dd7) + 0xf97d99b35badac28;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar21 * 4) = uVar2 ^ uVar31;
  return;
}



############ FUN_ 180cc5490 size=5308 ############

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

void FUN_180cc5490(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  byte bVar13;
  ulonglong *puVar14;
  ulonglong uVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong *puVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  byte bVar44;
  uint uVar45;
  ulonglong *puVar46;
  ulonglong uVar47;
  
  uVar8 = DAT_1826707dc;
  uVar7 = DAT_1826707cc;
  uVar5 = DAT_1826707b8;
  uVar4 = DAT_1826707b0;
  uVar19 = (ulonglong)DAT_1826707b8;
  uVar15 = (ulonglong)DAT_1826707dc;
  uVar38 = (ulonglong)DAT_1826707b0;
  uVar29 = (ulonglong)DAT_1826707cc;
  uVar25 = DAT_1826707dc * DAT_1826707cc;
  uVar42 = DAT_1826707b0 << 0x10 | DAT_1826707b0 >> 0x10;
  uVar45 = (DAT_1826707b8 << 0x10 | DAT_1826707b8 & 0xff00) << 8 | DAT_1826707b8 >> 8 & 0xff00 |
           DAT_1826707b8 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670e14);
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670e14) ^ DAT_1826707b8;
  uVar39 = (ulonglong)uVar25;
  uVar30 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar21 = CONCAT44(DAT_182670a80,DAT_182670a80);
  uVar33 = CONCAT44(DAT_182670894,DAT_182670894) ^ uVar21 ^ uVar30 ^
           *(ulonglong *)(DAT_1826707a0 + -0x588) ^ *(ulonglong *)(DAT_1826707a0 + -0x420);
  DAT_1826707ac = uVar25;
  DAT_1826707bc = uVar45;
  DAT_1826707e4 = uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar33;
  uVar34 = (uVar33 ^ uVar30) >> (((byte)uVar25 ^ 0xd6) & 0x3f);
  puVar16 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x44854dc1));
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar34 ^ CONCAT44(DAT_182670a4c,DAT_182670a4c);
  lVar2 = DAT_1826707a0;
  uVar33 = (ulonglong)uVar42;
  bVar22 = (byte)uVar4;
  uVar17 = (*puVar16 ^ uVar30) << ((bVar22 ^ 200) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar17 ^ CONCAT44(DAT_182670908,DAT_182670908);
  uVar30 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar26 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar2 + -0xce0) = (uVar34 | uVar17) ^ uVar30;
  uVar6 = DAT_182670954;
  *(ulonglong *)(lVar2 + -0x400) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x420)) - (CONCAT44(uVar25,uVar7) ^ 0xb81a6ed1f57215a3) ^
       uVar26;
  uVar34 = (ulonglong)uVar45;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0x83ae5107)) =
       CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0xc18) |
       CONCAT44(uVar7,uVar5) ^ 0x70427a714749c3d1;
  uVar6 = DAT_182670940;
  uVar30 = *(ulonglong *)(lVar2 + -0xce0) ^ uVar30;
  *(uint *)(lVar2 + -0x814) = (uVar42 ^ 0x70c83dba) - (uVar5 ^ 0xc0dabfbe);
  lVar3 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x6b8) = (*(ulonglong *)(lVar2 + -0x400) ^ uVar26) - uVar30 ^ uVar23;
  uVar17 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar30 = (CONCAT44(uVar8,uVar8) ^ 0xbf578c13a248c183) + uVar30 ^ uVar17;
  uVar21 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar2 + -0x220) = uVar30;
  uVar35 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0xe4d1519f)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar45 ^ 0xe4d1582f)) ^ uVar35 ^ uVar21 ^ uVar30 ^ uVar17;
  uVar6 = DAT_182670820;
  puVar40 = (ulonglong *)(lVar3 - (uVar38 ^ 0x418883ef));
  bVar13 = (byte)uVar7;
  uVar31 = CONCAT44(DAT_182670898,DAT_182670898);
  puVar27 = (ulonglong *)(lVar3 - (uVar39 ^ 0x83ae527f));
  bVar44 = (byte)uVar5;
  *puVar27 = (uVar21 ^ *puVar40) >> ((bVar13 ^ 4) & 0x3f) ^ uVar31;
  uVar9 = DAT_182670998;
  lVar2 = DAT_1826707a0;
  uVar30 = (*(ulonglong *)(lVar3 + -0x438) ^ uVar21) << ((bVar44 ^ 0xdf) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar30 ^ CONCAT44(uVar6,uVar6);
  uVar6 = DAT_182670b00;
  uVar11 = DAT_182670a1c;
  uVar43 = CONCAT44(uVar9,uVar9);
  uVar30 = uVar31 ^ *(ulonglong *)(lVar2 + -0x588) | uVar30;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar30 ^ uVar43;
  uVar9 = DAT_182670aa4;
  uVar21 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x660) = (uVar35 ^ *(ulonglong *)(lVar2 + -0xd88)) - uVar30 ^ uVar21;
  uVar6 = DAT_182670a0c;
  uVar17 = CONCAT44(uVar9,uVar9);
  uVar30 = *(ulonglong *)(lVar2 - (uVar34 ^ 0xe4d1531f)) ^ CONCAT44(uVar11,uVar11) ^
           *(ulonglong *)(lVar2 + -0x4c8) ^ uVar17 ^ uVar23;
  *(ulonglong *)(lVar2 + -0x420) = uVar30;
  lVar2 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = (uVar30 ^ uVar17) >> ((bVar22 ^ 0xf2) & 0x3f) ^ uVar26;
  uVar36 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(lVar2 + -0x6f0) = (uVar17 ^ uVar30) << ((bVar13 ^ 0x1a) & 0x3f) ^ uVar36;
  *(undefined1 *)(lVar2 - (uVar38 ^ 0x4188811e)) = **(undefined1 **)(lVar2 + -0x300);
  uVar6 = DAT_182670964;
  uVar17 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar30 = *(ulonglong *)(lVar2 + -0xc18) ^ uVar26 | uVar36 ^ *(ulonglong *)(lVar2 + -0x6f0);
  *(ulonglong *)(lVar2 + -0x400) = uVar30 ^ uVar17;
  lVar3 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar6,uVar6);
  puVar28 = (ulonglong *)(lVar2 - (uVar33 ^ 0x87d74d68));
  uVar32 = CONCAT44(DAT_182670814,DAT_182670814);
  *puVar28 = (uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) - uVar30 ^ uVar37;
  uVar9 = DAT_1826708d8;
  puVar14 = (ulonglong *)(lVar3 - (uVar39 ^ 0x83ae5197));
  uVar30 = uVar32 ^ uVar17 ^ *(ulonglong *)(lVar3 + -0x400) ^ uVar21 ^ *puVar14;
  *(ulonglong *)(lVar3 + -0x220) = uVar30;
  uVar6 = DAT_1826708b4;
  lVar2 = DAT_1826707a0;
  uVar26 = CONCAT44(uVar9,uVar9);
  bVar20 = (byte)uVar8;
  *(ulonglong *)(DAT_1826707a0 + -0x438) = (uVar30 ^ uVar32) >> (bVar22 & 0x3f) ^ uVar26;
  uVar17 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0x588) = (uVar32 ^ uVar30) << ((bVar20 ^ 0xde) & 0x3f) ^ uVar17;
  puVar46 = (ulonglong *)(lVar2 - (uVar33 ^ 0x87d74400));
  uVar23 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xa755d424)) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0x83ae53cf)) ^ uVar26 | uVar17 ^ *puVar46) ^ uVar23;
  uVar6 = DAT_1826709d0;
  *(ulonglong *)(lVar2 + -0xd88) =
       (CONCAT44(uVar7,uVar25) ^ 0x447ba05c10225a56) - (uVar17 ^ *(ulonglong *)(lVar2 + -0x588));
  uVar30 = (ulonglong)DAT_182670a44;
  uVar26 = CONCAT44(uVar6,uVar6);
  uVar32 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar2 + -0x4c8) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0x660)) - (uVar23 ^ *(ulonglong *)(lVar2 + -0x5c0)) ^
       uVar26;
  *(ulonglong *)(lVar2 + -0x420) =
       *(ulonglong *)(lVar2 + -0xce0) ^ uVar32 ^ uVar37 ^ *(ulonglong *)(lVar2 + -0x7d8) ^ uVar43;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0xc18) =
       CONCAT44(uVar7,uVar4) ^ CONCAT44(uVar45,uVar8) ^ 0x1d893d0c7db7b38f;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x255dd907)) =
       (*(ulonglong *)(lVar2 + -0x420) >> 0x20 ^ uVar30) >> 8 ^ uVar43;
  uVar9 = DAT_182670a9c;
  uVar6 = DAT_1826709e8;
  lVar2 = DAT_1826707a0;
  uVar30 = (*(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xe4d15187)) ^ uVar32) <<
           ((bVar13 ^ 0x19) & 0x3f);
  uVar41 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar30 ^ CONCAT44(DAT_1826709e8,DAT_1826709e8);
  uVar11 = DAT_182670acc;
  puVar18 = (ulonglong *)(lVar2 - (uVar39 ^ 0x83ae53f7));
  *puVar18 = (uVar30 | *(ulonglong *)(lVar2 + -0x6f0) ^ uVar43) ^ uVar41;
  uVar43 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x87d743a8)) =
       (*(ulonglong *)(lVar3 + -0xce0) ^ uVar37) -
       (*(ulonglong *)(lVar3 - (uVar15 ^ 0x255ddbf7)) ^ uVar41) ^ uVar43;
  uVar10 = DAT_182670a30;
  uVar21 = (ulonglong)DAT_182670a30;
  *puVar40 = (CONCAT44(uVar45,uVar5) ^ 0xc3607e153f7ca427) -
             (uVar32 ^ *(ulonglong *)(lVar3 + -0x420));
  lVar2 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar10,uVar10);
  uVar32 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  puVar40 = (ulonglong *)(DAT_1826707a0 + -0x4c8);
  puVar24 = (ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x44854e61));
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0x400)) <<
       (((byte)uVar6 ^ *(byte *)(DAT_1826707a0 + -0x6b8)) & 0x3f);
  uVar30 = *puVar40 ^ uVar37 ^ uVar41 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0x400);
  *(ulonglong *)(lVar2 + -0xd88) = uVar30;
  *puVar24 = (uVar30 >> 0x20 ^ uVar21) >> 0x14 ^ uVar32;
  *(longlong *)(lVar2 - (uVar19 ^ 0xa755d63c)) =
       -0x503bdf2de34d87f6 << (((byte)uVar9 ^ (byte)*puVar18) & 0x3f);
  uVar30 = (uVar37 ^ *(ulonglong *)(lVar2 + -0xd88)) << ((bVar20 ^ 0xfb) & 0x3f);
  uVar37 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar2 + -0xc18) = uVar30 ^ CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar10 = DAT_18267092c;
  uVar29 = (ulonglong)DAT_18267092c;
  uVar30 = uVar32 ^ *(ulonglong *)(lVar2 + -0x660) | uVar30;
  uVar21 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *(ulonglong *)(lVar2 + -0x6f0) = uVar30 ^ uVar37;
  *(ulonglong *)(lVar2 + -0xce0) = (*(ulonglong *)(lVar2 + -0x4c8) ^ uVar26) - uVar30 ^ uVar21;
  uVar9 = DAT_182670a34;
  uVar26 = CONCAT44(uVar10,uVar10);
  uVar30 = *(ulonglong *)(lVar2 - (uVar19 ^ 0xa755d3c4)) ^ uVar26 ^ uVar43 ^ uVar23 ^
           *(ulonglong *)(lVar2 + -0x5c0);
  *(ulonglong *)(lVar2 + -0x438) = uVar30;
  uVar6 = _DAT_1826708c8;
  lVar3 = DAT_1826707a0;
  uVar23 = (uVar26 ^ uVar30) << ((bVar44 ^ 0xe3) & 0x3f);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar23 ^ CONCAT44(uVar9,uVar9);
  uVar29 = (uVar30 >> 0x20 ^ uVar29) >> 0x19;
  uVar30 = *(ulonglong *)(lVar3 + -0x220);
  *(ulonglong *)(lVar2 + -0x420) = uVar29 ^ uVar36;
  uVar9 = DAT_1826709a8;
  uVar26 = CONCAT44(uVar6,uVar6);
  uVar29 = (uVar29 | uVar23) ^ uVar26;
  *(ulonglong *)(lVar2 + -0x588) = uVar29;
  uVar11 = DAT_182670a38;
  uVar32 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x400) = (uVar43 ^ uVar30) - (uVar26 ^ *puVar46) ^ uVar32;
  uVar23 = CONCAT44(uVar11,uVar11);
  uVar29 = uVar23 ^ uVar26 ^ uVar21 ^ *puVar28 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x7d8) = uVar29;
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x41888a5f)) = uVar29 ^ uVar23 ^ 0xc5400e871acf727b;
  uVar29 = CONCAT44(DAT_182670984,DAT_182670984);
  *puVar24 = (uVar23 ^ *(ulonglong *)(lVar3 + -0x7d8)) >> ((bVar22 ^ 0xd9) & 0x3f) ^ uVar29;
  uVar30 = (uVar23 ^ *(ulonglong *)(lVar3 + -0x7d8)) << ((bVar44 ^ 0xd6) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc18) = uVar30 ^ CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar6 = DAT_1826709ec;
  uVar30 = uVar29 ^ *(ulonglong *)(lVar3 + -0x660) | uVar30;
  uVar29 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(int *)(lVar3 + -0xcec) = *(int *)(lVar3 - (uVar39 ^ 0x83ae5dc3)) * *(int *)(lVar3 + -0x140);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar30 ^ uVar29;
  uVar29 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x5c0) =
       (*(ulonglong *)(lVar3 + -0xce0) ^ uVar21) - (CONCAT44(uVar45,uVar45) ^ 0x5ef335b6972a7e05) ^
       uVar29;
  uVar6 = DAT_1826709f0;
  uVar21 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar3 + -0x438) =
       (*(ulonglong *)(lVar3 - (uVar38 ^ 0x41888217)) ^ uVar29) - uVar30 ^ uVar21;
  uVar36 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar3 + -0x420) = uVar30 - (CONCAT44(uVar5,uVar7) ^ 0xbcc477d8626080e0) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar7,uVar45) ^ 0x3d43ba02d79ce384) >>
       ((*(byte *)(lVar3 - (uVar38 ^ 0x4188800f)) ^ (byte)uVar11) & 0x3f);
  uVar6 = DAT_182670888;
  lVar2 = DAT_1826707a0;
  uVar47 = CONCAT44(DAT_182670b14,DAT_182670b14);
  puVar40 = (ulonglong *)(lVar3 - (uVar33 ^ 0x87d74588));
  uVar30 = *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  uVar26 = uVar47 ^ uVar32 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0x6f0) ^ *puVar40;
  *(ulonglong *)(lVar3 + -0x220) = uVar26;
  uVar9 = DAT_18267091c;
  uVar29 = (*(ulonglong *)(lVar2 - (uVar39 ^ 0x83ae55d7)) ^ uVar47) >>
           (((byte)(uVar5 >> 0x18) ^ 0xb7) & 0x3f);
  *(ulonglong *)(lVar2 + -0x588) = uVar29 ^ CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 + -0xd88) = uVar23 ^ CONCAT44(uVar5,uVar4) ^ uVar30 ^ 0x42ef7090921f63ec;
  uVar6 = DAT_182670a24;
  lVar2 = DAT_1826707a0;
  uVar30 = (uVar47 ^ uVar26) << ((bVar20 ^ 199) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar30 ^ CONCAT44(uVar9,uVar9);
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x83ae5bef)) = (uVar29 | uVar30) ^ uVar23;
  uVar29 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar30 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar2 + -0xce0) =
       (uVar32 ^ *puVar40) - (CONCAT44(uVar7,uVar4) ^ 0xa373813c927849af) ^ uVar29;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0x83ae5237)) =
       (*(ulonglong *)(lVar2 - (uVar39 ^ 0x83ae5b17)) ^ uVar29) -
       (uVar23 ^ *(ulonglong *)(lVar2 + -0xc18)) ^ uVar30;
  uVar6 = DAT_182670ae4;
  uVar26 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar2 + -0x4c8) =
       (uVar23 ^ *(ulonglong *)(lVar2 + -0xc18)) - (CONCAT44(uVar5,uVar8) ^ 0x984a071a2cf343d5) ^
       uVar26;
  uVar23 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(*(ulonglong *)(lVar2 + -0x6c8) ^ uVar31) =
       uVar23 ^ uVar21 ^ *(ulonglong *)(lVar2 + -0x438);
  puVar40 = (ulonglong *)
            ((*(ulonglong *)(lVar2 - (uVar19 ^ 0xa755d72c)) ^ uVar31) +
            (CONCAT44(uVar25,uVar45) ^ 0x83ae57f7e4d155a6) * 8);
  *(ulonglong *)(lVar2 + -0x180) = (ulonglong)puVar40 ^ CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *puVar40 = uVar23 ^ uVar36 ^ *(ulonglong *)(lVar2 + -0x420);
  uVar32 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar2 + -0x4e0) =
       (*(ulonglong *)(lVar2 + -0x6c8) ^ uVar31) + (CONCAT44(uVar45,uVar8) ^ 0xe4d155a7255ddff5) * 8
       ^ uVar32;
  uVar6 = DAT_1826707c4;
  uVar21 = CONCAT44(DAT_18267099c,DAT_18267099c);
  *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar34 ^ 0xe4d15147)) ^ uVar32) =
       uVar23 ^ uVar30 ^ *puVar16;
  uVar30 = CONCAT44(uVar42,DAT_1826707b4);
  *(ulonglong *)(lVar2 + -0x6b8) =
       (uVar47 ^ *(ulonglong *)(lVar2 + -0x220)) - (uVar29 ^ *(ulonglong *)(lVar2 + -0xce0));
  puVar40 = (ulonglong *)
            ((*(ulonglong *)(lVar2 + -0x6c8) ^ uVar31) + (uVar30 ^ 0x87d741888c020847) * 8);
  *(ulonglong *)(lVar2 + -0x7b0) = (ulonglong)puVar40 ^ uVar21;
  *(longlong *)(lVar2 + -0x6f0) = 0x7982353958368520 << (((byte)uVar6 ^ 0x21) & 0x3f);
  *puVar40 = uVar23 ^ uVar26 ^ *(ulonglong *)(lVar2 + -0x4c8);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x87d74df0)) =
       *(longlong *)(lVar2 + -0xba8) + (CONCAT44(uVar8,uVar7) ^ 0x255ddff744854809) * 8;
  uVar9 = DAT_182670a74;
  *(ulonglong *)(lVar2 + -0xa98) =
       *(longlong *)(lVar2 - (uVar38 ^ 0x41888507)) + 0x40U ^ CONCAT44(DAT_182670930,DAT_182670930);
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar30 = **(ulonglong **)(lVar2 + -0xc78);
  puVar40 = *(ulonglong **)(lVar2 + -0xc78) + 1;
  *(ulonglong **)(lVar2 + -0xc0) = puVar40;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar21 ^ uVar30 ^ uVar41;
  uVar29 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x255dd27f)) = uVar29 ^ *puVar40 ^ uVar41;
  uVar9 = DAT_182670a78;
  puVar40 = (ulonglong *)
            (*(longlong *)(lVar2 + -0xc78) + (CONCAT44(uVar25,uVar5) ^ 0x83ae57f7a755d1e6) * 8);
  *(ulonglong **)(lVar2 + -0xc0) = puVar40;
  uVar33 = CONCAT44(uVar9,uVar9);
  *puVar27 = uVar33 ^ uVar41 ^ *puVar40;
  lVar3 = DAT_1826707a0;
  puVar40 = (ulonglong *)(*(longlong *)(lVar2 - (uVar15 ^ 0x255dd38f)) + 0x18);
  *(ulonglong **)(lVar2 + -0xad0) = puVar40;
  *puVar14 = uVar41 ^ *puVar40;
  uVar38 = (uVar21 ^ *(ulonglong *)(lVar2 + -0x7d8)) - (CONCAT44(uVar8,uVar4) ^ 0x1a42090948261bf5)
           ^ uVar43;
  *(ulonglong *)(lVar3 + -0x400) = uVar38;
  *(longlong *)(lVar3 + -0xc18) = 0x1d2347e41898eceb << ((bVar44 ^ 0xfd) & 0x3f);
  uVar7 = DAT_1826707d4;
  uVar30 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar3 + -0x220) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0xd88)) - (CONCAT44(uVar4,uVar42) ^ 0x9a1aee42a3677217) ^
       uVar17;
  uVar21 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *(ulonglong *)(lVar3 + -0xce0) =
       (*(ulonglong *)(lVar3 - (uVar30 ^ 0xaa649256)) ^ uVar33) -
       (CONCAT44(uVar7,uVar45) ^ 0xe94fa8bc9359ea91) ^ uVar21;
  uVar33 = (ulonglong)DAT_1826707a8;
  uVar30 = (CONCAT44(uVar4,DAT_1826707a8) ^ 0xbe7778288125d754) +
           *(longlong *)(DAT_1826707a0 + -0x660);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar30 ^ uVar35;
  lVar2 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       uVar30 - (CONCAT44(uVar45,uVar42) ^ 0x4125bd65fcf73745) ^ uVar23;
  lVar3 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_182670af0;
  uVar26 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0xa755ddfc)) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0x7eda2f62)) ^ uVar43 ^ uVar38 ^ uVar26 ^ uVar23;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xa755dc6c)) =
       *(ulonglong *)(lVar3 + -0xc18) >> 0x20 ^ uVar32 ^ uVar30;
  puVar14 = (ulonglong *)(lVar3 - (uVar34 ^ 0xe4d1502f));
  bVar13 = (byte)DAT_1826707d8;
  *puVar14 = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar26) -
             (CONCAT44(uVar42,uVar45) ^ 0xe76a7cc7e20e03b7);
  uVar19 = (ulonglong)DAT_1826707f4;
  uVar34 = CONCAT44(uVar5,DAT_1826707f4);
  uVar33 = (*(ulonglong *)(lVar3 + -0xc18) ^ uVar26) << ((bVar13 ^ 0x9b) & 0x3f);
  *(ulonglong *)(lVar3 + -0x660) = uVar33 ^ uVar29;
  lVar2 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_182670960,DAT_182670960);
  puVar40 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (CONCAT44(uVar6,uVar4) ^ 0x53d162a60ba9e1d9) - (uVar34 ^ 0x7a34b0599c66dd6d);
  uVar6 = DAT_182670880;
  *(ulonglong *)(lVar2 - (uVar15 ^ 0x255dd82f)) = (uVar33 | uVar32 ^ *puVar40) ^ uVar30;
  *puVar14 = (uVar43 ^ *(ulonglong *)(lVar2 + -0x400)) - (*(ulonglong *)(lVar2 + -0x7d8) ^ uVar30) ^
             CONCAT44(uVar6,uVar6);
  uVar15 = CONCAT44(DAT_182670868,DAT_182670868);
  *(ulonglong *)(lVar2 + -0xc18) =
       (CONCAT44(uVar7,uVar4) ^ 0xe8d59876c78dcbd0) + *(longlong *)(lVar2 + -0x6b8);
  uVar30 = *(ulonglong *)(lVar2 + -0xce0);
  uVar33 = *(ulonglong *)(lVar2 + -0x220);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar1 ^ uVar45;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xb8eb638f)) = uVar15 ^ uVar30 ^ uVar17 ^ uVar33 ^ uVar21;
  return;
}



############ FUN_ 180ca0f60 size=5441 ############

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

void FUN_180ca0f60(void)

{
  uint uVar1;
  byte bVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong *puVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  byte bVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong *puVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  byte bVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  byte local_110;
  
  uVar12 = DAT_182670908;
  uVar11 = DAT_1826707f4;
  uVar10 = DAT_1826707f0;
  uVar8 = DAT_1826707bc;
  uVar7 = DAT_1826707b4;
  lVar3 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707f4;
  uVar27 = (ulonglong)DAT_1826707bc;
  uVar45 = (ulonglong)DAT_1826707b4;
  uVar38 = (ulonglong)DAT_1826707f0;
  uVar25 = DAT_1826707bc * DAT_1826707f4;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670da8);
  uVar34 = DAT_1826707b4 + DAT_1826707f0;
  uVar16 = *(uint *)(&DAT_18260f760 + DAT_182670da8) ^ DAT_1826707f4;
  uVar30 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar39 = CONCAT44(DAT_18267080c,DAT_18267080c);
  puVar28 = (ulonglong *)(DAT_1826707a0 + -0x588);
  DAT_1826707d8 = uVar34;
  DAT_1826707e4 = uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) =
       (CONCAT44(DAT_182670838,DAT_182670838) ^ *(ulonglong *)(DAT_1826707a0 + -0xce0)) -
       (uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) ^ uVar39;
  uVar13 = DAT_182670a68;
  uVar21 = CONCAT44(uVar12,uVar12);
  uVar42 = CONCAT44(DAT_182670894,DAT_182670894);
  uVar22 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar3 + -0x558) =
       (uVar30 ^ *puVar28) - (*(ulonglong *)(lVar3 - (uVar27 ^ 0xedc4fd1d)) ^ uVar21) ^ uVar42;
  uVar18 = (ulonglong)uVar34;
  uVar31 = CONCAT44(uVar13,uVar13);
  uVar30 = CONCAT44(DAT_182670854,DAT_182670854);
  uVar22 = uVar22 ^ uVar30 ^ uVar31 ^ *(ulonglong *)(lVar3 + -0x5c0) ^ *(ulonglong *)(lVar3 + -0xf0)
  ;
  *(ulonglong *)(lVar3 + -0x658) = uVar22;
  uVar12 = DAT_182670af4;
  lVar3 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  puVar28 = (ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xde3ce009));
  *puVar28 = (uVar22 ^ uVar31) >> (((byte)uVar34 ^ 0x20) & 0x3f) ^ uVar35;
  uVar13 = DAT_182670a94;
  uVar22 = (uVar31 ^ *(ulonglong *)(lVar3 + -0x658)) << 0x1f;
  *(ulonglong *)(lVar3 + -0x7d8) = uVar22 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670a14;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x420) = (uVar35 ^ *puVar28 | uVar22) ^ uVar32;
  *(int *)(lVar3 + -0xcec) =
       *(int *)(lVar3 + -0x280) >> ((byte)*(undefined4 *)(lVar3 + -0xaf0) & 0x1f);
  uVar14 = DAT_1826709c0;
  uVar22 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xedc4f325)) =
       (uVar30 ^ *(ulonglong *)(lVar3 + -0xf0)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar8 ^ 0xedc4ff55)) ^ CONCAT44(uVar12,uVar12)) ^ uVar22;
  uVar12 = DAT_182670888;
  uVar32 = uVar32 ^ *(ulonglong *)(lVar3 + -0x420);
  uVar48 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *(ulonglong *)(lVar3 + -0x610) = (uVar22 ^ *(ulonglong *)(lVar3 + -0xc18)) - uVar32 ^ uVar48;
  uVar13 = DAT_182670918;
  uVar30 = (CONCAT44(uVar10,uVar34) ^ 0x56085bbf77cb71fc) -
           (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar3 + -0x890));
  *(ulonglong *)(lVar3 + -0xac0) = uVar30 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_182670aa4;
  lVar4 = DAT_1826707a0;
  uVar22 = CONCAT44(uVar13,uVar13);
  uVar30 = uVar30 + uVar32 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x1b8) = uVar30;
  uVar33 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 - (uVar18 ^ 0x88348339)) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0x68ce9f2)) ^ uVar33 ^ uVar22 ^ uVar39 ^ uVar30;
  bVar23 = (byte)uVar10;
  uVar22 = *(ulonglong *)(lVar4 + -0x4c8);
  uVar32 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar30 = (uVar33 ^ *(ulonglong *)(lVar3 + -0xd38)) << 0x3b;
  *(ulonglong *)(lVar3 + -0xd88) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0xd38)) >> ((bVar23 ^ 0x45) & 0x3f) ^ uVar32;
  uVar12 = DAT_182670adc;
  *(ulonglong *)(lVar3 + -0xce0) = uVar30 ^ CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar46 = CONCAT44(uVar12,uVar12);
  uVar30 = *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x68ce0b2)) ^ uVar32 | uVar30;
  uVar24 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *(ulonglong *)(lVar4 + -0x588) = uVar30 ^ uVar46;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x68ce8fa)) = (uVar39 ^ uVar22) - uVar30 ^ uVar24;
  bVar2 = (byte)uVar7;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0xa9f7a218)) =
       CONCAT44(uVar8,uVar25) ^ CONCAT44(uVar10,uVar8) ^ 0x36ff63b05e29be5b;
  uVar22 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar30 = *(ulonglong *)(lVar4 - (uVar27 ^ 0xedc4f92d)) ^ uVar22 ^ uVar48 ^ uVar42 ^
           *(ulonglong *)(lVar4 + -0x558);
  uVar33 = CONCAT44(DAT_182670848,DAT_182670848);
  uVar32 = (uVar30 ^ uVar22) >> ((bVar2 ^ 0xe4) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar30;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar32 ^ uVar33;
  *(int *)(lVar4 + -0xaf0) =
       *(int *)(lVar4 - (uVar18 ^ 0x88348b41)) << (((byte)DAT_1826707b4 ^ 0xdf) & 0x1f);
  uVar22 = (uVar22 ^ uVar30) << (((byte)uVar8 ^ 0x26) & 0x3f);
  puVar28 = (ulonglong *)(lVar4 + -0x68);
  *puVar28 = uVar22 ^ CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar30 = CONCAT44(DAT_182670880,DAT_182670880);
  puVar29 = (ulonglong *)(lVar3 - (uVar26 ^ 0x68cedca));
  *puVar29 = (uVar32 | uVar22) ^ uVar30;
  lVar3 = DAT_1826707a0;
  puVar19 = (ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0x88348219));
  *puVar19 = uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0) ^ 0xceade51bf9c849d9;
  uVar12 = DAT_182670990;
  uVar42 = CONCAT44(DAT_182670898,DAT_182670898);
  uVar33 = (*(ulonglong *)(lVar3 - (uVar45 ^ 0xde3cefd1)) ^ uVar48) -
           (*(ulonglong *)(lVar3 - (uVar27 ^ 0xedc4ffcd)) ^ uVar30) ^ uVar42;
  *(ulonglong *)(lVar3 + -0x420) = uVar33;
  uVar13 = DAT_182670a48;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar30 = uVar24 ^ uVar39 ^ uVar30 ^ *puVar29 ^ *(ulonglong *)(lVar3 + -0x5c0);
  *(ulonglong *)(lVar3 + -0xac0) = uVar30;
  uVar12 = DAT_182670934;
  lVar3 = DAT_1826707a0;
  uVar48 = (uVar30 ^ uVar39) >> ((bVar2 ^ 0xd6) & 0x3f);
  uVar22 = *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  uVar32 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar48 ^ CONCAT44(uVar13,uVar13);
  uVar43 = CONCAT44(uVar12,uVar12);
  bVar17 = (byte)uVar25;
  uVar30 = (uVar39 ^ uVar30) << ((bVar17 ^ 0xfb) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd38) = uVar30 ^ uVar32;
  uVar6 = DAT_182670818;
  uVar48 = uVar48 | uVar30;
  uVar32 = (ulonglong)DAT_182670818;
  *(ulonglong *)(lVar3 + -0xd88) = uVar48 ^ uVar21;
  *(ulonglong *)(lVar3 + -0xce0) = (uVar24 ^ uVar22) - uVar48 ^ uVar43;
  uVar24 = CONCAT44(uVar6,uVar6);
  puVar40 = (ulonglong *)(lVar3 - (uVar27 ^ 0xedc4fbf5));
  uVar48 = CONCAT44(DAT_182670974,DAT_182670974);
  *puVar40 = uVar46 ^ *(ulonglong *)(lVar3 + -0x588) ^ uVar33 ^ uVar24 ^ uVar42;
  uVar22 = *(ulonglong *)(lVar3 - (uVar38 ^ 0xa9f7a088));
  *(ulonglong *)(lVar3 + -0x558) =
       uVar21 ^ *(ulonglong *)(lVar3 + -0xc18) ^ *(ulonglong *)(lVar3 + -0xd88);
  uVar12 = DAT_182670a60;
  uVar30 = *(ulonglong *)(lVar3 + -0x4c8);
  *(ulonglong *)(lVar3 + -0x658) = (uVar22 >> 0x20 ^ uVar32) >> 8 ^ uVar48;
  uVar22 = (uVar30 ^ uVar24) << ((bVar23 ^ 0x58) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar22 ^ CONCAT44(uVar12,uVar12);
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       CONCAT44(uVar11,uVar34) ^ uVar30 ^ uVar24 ^ 0x42f4cdbc44d02d26;
  uVar32 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  uVar33 = (*(ulonglong *)(lVar3 - (uVar27 ^ 0xedc4f965)) ^ uVar48 | uVar22) ^ uVar32;
  *puVar28 = uVar33;
  uVar6 = DAT_1826707ac;
  lVar4 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar22 = *(ulonglong *)(DAT_1826707a0 + -0xce0);
  *(ulonglong *)(DAT_1826707a0 + -0x610) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xde3cede1)) ^ uVar42) -
       (*(ulonglong *)(lVar3 - (uVar45 ^ 0xde3ce9a9)) ^ uVar32) ^ uVar24;
  uVar12 = _DAT_182670ad4;
  uVar9 = DAT_1826707d4;
  uVar30 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar4 + -0xf0) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar25 ^ 0x4249415a)) ^ CONCAT44(uVar34,uVar10) ^ uVar21 ^
       0x875b0435f63df8c2;
  uVar20 = uVar6 + uVar9;
  uVar46 = CONCAT44(uVar12,uVar12);
  uVar49 = (ulonglong)uVar20;
  uVar42 = CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar22 = uVar22 ^ uVar33 ^ uVar46 ^ uVar32 ^ uVar43;
  DAT_1826707c4 = uVar20;
  *(ulonglong *)(lVar4 + -0xac0) = uVar22;
  uVar48 = (uVar22 ^ uVar46) >> (((byte)uVar20 ^ 0xf5) & 0x3f);
  *(ulonglong *)(lVar4 + -0x1b8) = uVar48 ^ uVar42;
  uVar32 = (ulonglong)uVar6;
  *(uint *)(lVar4 + -0xb54) = (uVar6 ^ 0xda022391) - (uVar6 ^ 0x44dc8ac2);
  uVar15 = DAT_182670940;
  lVar3 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_182670940;
  uVar22 = (uVar46 ^ uVar22) << (((byte)uVar6 ^ 0xc) & 0x3f);
  uVar46 = CONCAT44(DAT_182670970,DAT_182670970);
  *(ulonglong *)(lVar4 + -0xd38) = uVar22 ^ CONCAT44(DAT_1826708c4,DAT_1826708c4);
  uVar48 = uVar48 | uVar22;
  *(ulonglong *)(lVar4 + -0x5c0) = uVar48 ^ uVar46;
  *(ulonglong *)(lVar4 + -0x588) = (*(ulonglong *)(lVar4 + -0xce0) ^ uVar43) - uVar48 ^ uVar31;
  lVar5 = DAT_1826707a0;
  puVar47 = (ulonglong *)(lVar4 - (uVar49 ^ 0xdf4f0fd1));
  uVar48 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x1122c18)) =
       uVar21 ^ uVar48 ^ uVar24 ^ *puVar47 ^ *(ulonglong *)(lVar3 + -0xd88);
  lVar4 = DAT_1826707a0;
  uVar22 = *(ulonglong *)(lVar3 + -0xc18);
  uVar36 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  *(ulonglong *)(lVar5 + -0x558) = (uVar22 >> 0x20 ^ uVar33) >> 0x19 ^ uVar36;
  bVar41 = (byte)uVar9;
  uVar33 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar4 - (uVar49 ^ 0xdf4f0d09)) =
       (uVar22 ^ uVar48) << ((bVar41 ^ 0xc6) & 0x3f) ^ uVar33;
  puVar29 = (ulonglong *)(lVar4 - ((ulonglong)uVar9 ^ 0xde3cec99));
  uVar33 = *(ulonglong *)(lVar4 + -0x4c8) ^ uVar33;
  uVar22 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar48 = uVar36 ^ *puVar29 | uVar33;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar48 ^ uVar22;
  uVar13 = DAT_1826708ac;
  *(ulonglong *)(lVar4 + -0x658) = uVar33 - (CONCAT44(uVar6,uVar6) ^ 0x282746e45105e074);
  uVar33 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x9c8) = (*(ulonglong *)(lVar4 + -0x610) ^ uVar24) - uVar48 ^ uVar33;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xde3cede1)) =
       (CONCAT44(uVar6,uVar20) ^ 0x2453d56d9818fe5a) + 0x8d1bb3c780b4fcdb;
  uVar48 = CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar22 = uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8) ^ *(ulonglong *)(DAT_1826707a0 + -0x588)
           ^ uVar48 ^ uVar22;
  *(ulonglong *)(DAT_1826707a0 + -0xf0) = uVar22;
  uVar36 = CONCAT44(DAT_182670858,DAT_182670858);
  local_110 = (byte)uVar11;
  *(ulonglong *)(lVar3 - (uVar49 ^ 0xdf4f09a9)) =
       (uVar22 ^ uVar48) >> ((bVar41 ^ 0xcf) & 0x3f) ^ uVar36;
  uVar22 = CONCAT44(DAT_182670950,DAT_182670950);
  *(ulonglong *)(lVar3 - (uVar49 ^ 0xdf4f0301)) =
       (uVar48 ^ *(ulonglong *)(lVar3 + -0xf0)) << ((local_110 ^ 8) & 0x3f) ^ uVar22;
  uVar12 = DAT_1826709c8;
  uVar36 = uVar36 ^ *puVar28 | uVar22 ^ *(ulonglong *)(lVar3 + -0xac0);
  *(ulonglong *)(lVar3 + -0x1b8) = uVar36 ^ CONCAT44(DAT_182670988,DAT_182670988);
  puVar44 = (ulonglong *)(lVar3 - (uVar27 ^ 0xedc4fab5));
  *(ulonglong *)(DAT_1826707a0 + -0xd38) =
       CONCAT44(uVar11,uVar20) ^ 0x75d69c8774c754ec | uVar31 ^ *puVar44;
  uVar14 = DAT_182670920;
  lVar3 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670994,DAT_182670994);
  uVar22 = (uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) -
           (*(ulonglong *)(DAT_1826707a0 - (uVar30 ^ 0xde3cefa1)) ^ CONCAT44(uVar12,uVar12));
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar22 ^ uVar37;
  *(ulonglong *)(lVar3 + -0xd88) = uVar22 - uVar36 ^ uVar42;
  uVar12 = DAT_182670890;
  uVar48 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(lVar3 + -0xc18) =
       uVar36 - (CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar3 + -0x6b8)) ^ uVar48;
  lVar4 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0x88348b59)) =
       *(ulonglong *)(lVar3 - (uVar30 ^ 0xde3cec01)) ^ uVar31 ^
       *(ulonglong *)(DAT_1826707a0 + -0x9c8) ^ uVar33 ^ uVar46;
  uVar12 = DAT_182670814;
  uVar46 = CONCAT44(DAT_182670804,DAT_182670804);
  *puVar40 = (*(ulonglong *)(lVar4 + -0x558) ^ uVar31) >> (((byte)uVar20 ^ 0xd1) & 0x3f) ^ uVar46;
  *(ulonglong *)(lVar4 + -0x658) =
       (*(ulonglong *)(lVar4 + -0x4c8) ^ uVar46) >>
       ((*(byte *)(lVar4 + -0x9c8) ^ (byte)uVar13) & 0x3f);
  uVar22 = CONCAT44(uVar12,uVar12);
  *puVar47 = (*(ulonglong *)(lVar4 + -0x558) ^ uVar31) << ((bVar23 ^ 0x70) & 0x3f) ^ uVar22;
  uVar13 = DAT_1826709ec;
  uVar31 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar4 + -0x420) =
       (uVar22 ^ *(ulonglong *)(lVar4 + -0x610) | *(ulonglong *)(lVar4 + -0x4c8) ^ uVar46) ^ uVar31;
  uVar12 = DAT_1826708b8;
  uVar22 = (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar33) -
           (*(ulonglong *)(lVar4 - (uVar38 ^ 0xa9f7a660)) ^ uVar21);
  *(ulonglong *)(lVar4 + -0x7d8) = uVar22 ^ CONCAT44(uVar13,uVar13);
  uVar21 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xf0) =
       uVar22 - (*(ulonglong *)(lVar4 - (uVar32 ^ 0x1122420)) ^ uVar31) ^ uVar21;
  lVar3 = DAT_1826707a0;
  uVar22 = -(*(ulonglong *)(lVar4 - (uVar26 ^ 0x68ce93a)) ^ uVar24) - 2;
  *puVar28 = uVar22 ^ uVar37;
  *(ulonglong *)(lVar3 + -0xac0) =
       (CONCAT44(uVar7,uVar25) ^ 0x9a4edf53d81178e9) + (uVar48 ^ *puVar19);
  uVar12 = DAT_182670ac8;
  uVar22 = (*(ulonglong *)(lVar3 - (uVar26 ^ 0x68ce91a)) ^ uVar31) + uVar22 ^ uVar48;
  *(ulonglong *)(lVar3 + -0xd38) = uVar22;
  uVar31 = CONCAT44(uVar12,uVar12);
  puVar19 = (ulonglong *)(lVar3 - (uVar49 ^ 0xdf4f0fa1));
  uVar33 = *(ulonglong *)(lVar3 - (uVar45 ^ 0xde3ce449)) ^ uVar31 ^ uVar22 ^ uVar48 ^ uVar42;
  *(ulonglong *)(lVar3 + -0x660) = uVar33;
  *(ulonglong *)(lVar3 + -0x588) = (uVar31 ^ *puVar19) >> ((bVar41 ^ 0xe1) & 0x3f) ^ uVar35;
  uVar22 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xedc4f3dd)) =
       (uVar33 ^ uVar31) << ((bVar17 ^ 0xf2) & 0x3f) ^ uVar22;
  lVar3 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xde3ce879)) =
       (uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0x588) |
       *(ulonglong *)(DAT_1826707a0 + -0xce0) ^ uVar22) ^ uVar24;
  uVar12 = DAT_182670868;
  uVar46 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar36 = (uVar42 ^ *(ulonglong *)(lVar3 + -0xd88)) - (uVar24 ^ *(ulonglong *)(lVar3 + -0x1b8));
  uVar42 = uVar36 ^ uVar46;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar42;
  uVar33 = CONCAT44(uVar12,uVar12);
  uVar22 = *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0x42494c22));
  *(ulonglong *)(lVar3 + -0x558) = *(ulonglong *)(lVar3 + -0x660) ^ uVar46 ^ uVar31 ^ uVar42;
  uVar13 = DAT_18267089c;
  lVar4 = DAT_1826707a0;
  uVar48 = uVar22 ^ *(ulonglong *)(lVar3 + -0xc18) ^ uVar33 ^ uVar21 ^ uVar48;
  *(ulonglong *)(lVar3 + -0x658) = uVar48;
  uVar22 = *(ulonglong *)(lVar4 + -0xf0);
  uVar31 = (uVar33 ^ uVar48) >> (((byte)uVar34 ^ 0x21) & 0x3f);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar31 ^ uVar33;
  uVar12 = DAT_18267083c;
  uVar33 = (uVar33 ^ uVar48) << 0x20;
  *(ulonglong *)(lVar4 + -0x610) = uVar33 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670a7c;
  uVar31 = uVar31 | uVar33;
  uVar48 = CONCAT44(uVar12,uVar12);
  uVar33 = uVar31 ^ uVar48;
  *(ulonglong *)(lVar4 + -0x220) = uVar33;
  uVar42 = CONCAT44(uVar13,uVar13);
  uVar38 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar4 + -0x9c8) = (uVar21 ^ uVar22) - uVar31 ^ uVar42;
  uVar12 = DAT_182670b04;
  uVar33 = *(ulonglong *)(lVar4 - (uVar45 ^ 0xde3cec01)) ^ uVar38 ^ uVar48 ^ uVar46 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar33;
  uVar48 = (uVar33 ^ uVar38) >> ((bVar2 ^ 0xfb) & 0x3f);
  uVar22 = (uVar33 ^ uVar38) << 6;
  uVar21 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar4 + -0xac0) = uVar48 ^ CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0x420) = uVar22 ^ uVar21;
  lVar3 = DAT_1826707a0;
  *puVar28 = CONCAT44(uVar10,uVar9) ^ uVar33 ^ uVar38 ^ 0x1c43adba4828970c;
  uVar12 = DAT_182670928;
  uVar33 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar3 + -0xd38) = (uVar22 | uVar48) ^ uVar33;
  uVar22 = CONCAT44(uVar12,uVar12);
  uVar21 = CONCAT44(DAT_182670830,DAT_182670830);
  *(ulonglong *)(lVar3 + -0xce0) =
       uVar36 - (*(ulonglong *)(lVar3 - (uVar30 ^ 0xde3ce4f9)) ^ uVar33) ^ uVar22;
  *(ulonglong *)(lVar3 + -0x588) =
       *(ulonglong *)(lVar3 - (uVar27 ^ 0xedc4fe85)) ^ *(ulonglong *)(lVar3 - (uVar26 ^ 0x68ce4f2))
       ^ uVar21 ^ uVar42 ^ uVar24;
  *(ulonglong *)(lVar3 + -0xd88) =
       (CONCAT44(uVar8,uVar7) ^ 0xfbc4ea6b0433bbac) + (CONCAT44(uVar34,uVar8) ^ 0x84829ded59767b50);
  uVar12 = DAT_182670a64;
  uVar33 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar3 + -0xc18) = (uVar21 ^ *puVar44) >> ((bVar17 ^ 0xc4) & 0x3f) ^ uVar33;
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar12,uVar12);
  *puVar29 = (*(ulonglong *)(lVar3 - (uVar45 ^ 0xde3cec49)) ^ uVar21) <<
             (((byte)uVar6 ^ 0x2a) & 0x3f) ^ uVar30;
  uVar21 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  uVar33 = (*(ulonglong *)(lVar4 + -0x558) ^ uVar30 | uVar33 ^ *(ulonglong *)(lVar4 + -0xc18)) ^
           uVar21;
  *(ulonglong *)(lVar4 + -0x660) = uVar33;
  *(ulonglong *)(lVar4 + -0x658) =
       CONCAT44(uVar9,uVar11) ^ 0xa9b82389221e766d | CONCAT44(uVar34,uVar20) ^ 0x367eaecd1fb24c89;
  uVar12 = DAT_182670ae8;
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - (uVar49 ^ 0xdf4f0009)) ^ uVar42) - (uVar21 ^ *puVar19) ^
       CONCAT44(DAT_1826708d4,DAT_1826708d4);
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar18 ^ 0x88348ac9)) =
       *(ulonglong *)(lVar4 + -0xce0) ^ uVar30 ^ uVar33 ^ uVar21 ^ uVar22;
  uVar12 = DAT_182670808;
  puVar19 = (ulonglong *)(lVar4 - (uVar45 ^ 0xde3ced09));
  *(ulonglong *)(lVar4 + -0xf0) = (uVar30 ^ *puVar19) >> ((bVar17 ^ 0xfc) & 0x3f) ^ uVar43;
  uVar22 = (uVar30 ^ *puVar19) << (bVar17 & 0x3f);
  *(undefined8 *)(lVar4 + -0x7d8) = 0x5aba0df79661d004;
  *(ulonglong *)(lVar4 + -0x220) = uVar22 ^ CONCAT44(uVar12,uVar12);
  *puVar28 = (*(ulonglong *)(lVar4 - (uVar32 ^ 0x11220f0)) ^ uVar43 | uVar22) ^ uVar39;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar16 * 4) = uVar1 ^ uVar25;
  return;
}



############ FUN_ 180cef8b0 size=3393 ############

void FUN_180cef8b0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  byte bVar11;
  uint uVar12;
  byte bVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  byte *pbVar18;
  ulonglong *puVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  
  uVar10 = DAT_1826707f0;
  uVar9 = DAT_1826707e0;
  uVar8 = DAT_1826707d8;
  uVar7 = DAT_1826707cc;
  uVar6 = DAT_1826707c4;
  uVar4 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar22 = (ulonglong)DAT_1826707f0;
  uVar29 = (ulonglong)DAT_1826707d8;
  uVar24 = DAT_1826707f0 & DAT_1826707d8;
  uVar31 = (ulonglong)DAT_1826707c0;
  uVar26 = (ulonglong)DAT_1826707cc;
  uVar33 = (ulonglong)DAT_1826707e0;
  uVar21 = (ulonglong)DAT_1826707c4;
  uVar30 = DAT_1826707c0 ^ DAT_1826707e0;
  uVar23 = DAT_1826707cc - DAT_1826707c4;
  uVar14 = *(uint *)(&DAT_18260f750 + (uVar22 ^ 0x82c05511) + (longlong)DAT_182670ba4) ^
           DAT_1826707d8;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670ba4);
  uVar16 = (ulonglong)DAT_182670840;
  uVar25 = CONCAT44(DAT_1826707c4,DAT_1826707cc);
  DAT_1826707a8 = uVar23;
  DAT_1826707ac = uVar24;
  DAT_1826707d0 = uVar30;
  *(undefined8 *)(DAT_1826707a0 + -0x5a0) = *(undefined8 *)(DAT_1826707a0 + -0x1f0);
  uVar32 = (ulonglong)uVar23;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xa9743355)) =
       *(ulonglong *)(lVar2 + -0x588) ^ uVar25 ^ 0x228dc6839c1c71;
  puVar17 = (ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xa9743045));
  *puVar17 = *(ulonglong *)(lVar2 + -0x870);
  uVar20 = (ulonglong)DAT_182670ab4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x95a496e4)) = uVar16 ^ *(ulonglong *)(lVar2 + -0x5a0);
  lVar3 = DAT_1826707a0;
  uVar15 = (ulonglong)uVar30;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x6c372f4f)) = *(ulonglong *)(lVar2 + -0x5a8) ^ uVar20
  ;
  lVar2 = DAT_1826707a0;
  pbVar18 = (byte *)(*(ulonglong *)(lVar3 + -0x1d8) ^ uVar20);
  *(byte **)(DAT_1826707a0 + -0xbd8) = pbVar18 + (CONCAT44(uVar8,uVar4) ^ 0x8d66dad6f993b1a2);
  *(byte *)(lVar2 + -0xa73) = (byte)DAT_182670800 ^ DAT_1826709e0 ^ *pbVar18;
  *(undefined1 *)((ulonglong)DAT_1826708f0 ^ *(ulonglong *)(lVar2 + -0x788)) = 0xc2;
  *(uint *)(lVar2 + -0xc04) = (uVar4 ^ 0x32b7fc80) + 0x33a23d84;
  uVar20 = (ulonglong)DAT_182670890;
  pbVar18 = (byte *)(*(ulonglong *)(lVar2 + -0x9d0) ^ uVar16);
  *(byte **)(lVar2 + -0x6a8) = pbVar18 + (CONCAT44(uVar23,uVar30) ^ 0xa97435ed6c372e96);
  *pbVar18 = *(byte *)(lVar2 + -0xa73) ^ (byte)DAT_182670800;
  *(undefined8 *)(lVar2 + -0x88) = *(undefined8 *)(lVar2 + -0x6a8);
  *(ulonglong *)(lVar2 + -0x68) =
       0x212aa01c456fa9b6 >> ((byte)*(undefined8 *)(lVar2 + -0x438) & 0x3f);
  *(undefined8 *)(lVar2 + -0xc58) = *(undefined8 *)(lVar2 + -0xbd8);
  uVar16 = (ulonglong)uVar24;
  *(ulonglong *)(lVar2 + -0x3b0) =
       (CONCAT44(uVar24,uVar10) ^ 0xeb691d82e3bd645d) >>
       ((byte)*(undefined8 *)(lVar2 + -0x5c0) & 0x3f);
  puVar19 = (ulonglong *)(lVar2 - (uVar26 ^ 0xb99b6554));
  *(ulonglong *)(lVar2 + -0xb28) = uVar20 ^ *puVar19;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x1b8) =
       CONCAT44(uVar8,uVar10) ^ 0x6db04431d17def71 | CONCAT44(uVar9,uVar6) ^ 0xc5293b73b9c0b623;
  pbVar18 = *(byte **)(lVar3 - (uVar21 ^ 0x102723b7));
  *(ulonglong *)(DAT_1826707a0 + -0x1c8) = (ulonglong)pbVar18 ^ (ulonglong)DAT_18267089c;
  lVar2 = DAT_1826707a0;
  *(byte **)(DAT_1826707a0 + -0x808) = pbVar18 + (CONCAT44(uVar23,uVar9) ^ 0xa97435ed95a49f35);
  *(byte *)(lVar2 + -0x941) = *pbVar18 ^ (byte)DAT_182670914 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar2 + -0x2b8) ^ (ulonglong)DAT_182670a70) = (byte)uVar4 ^ 0xee;
  uVar28 = (ulonglong)DAT_182670b04;
  *(ulonglong *)(lVar2 + -0x170) =
       (CONCAT44(uVar8,uVar6) ^ 0x8d66dad610272fee) + (*(ulonglong *)(lVar2 + -0xb28) ^ uVar20);
  *(byte *)(*(ulonglong *)(lVar2 - (uVar15 ^ 0x6c3725bf)) ^ uVar20) =
       *(byte *)(lVar2 - (uVar16 ^ 0x80405951)) ^ (byte)DAT_182670914;
  *(undefined8 *)(lVar2 + -0x480) = *(undefined8 *)(lVar2 - (uVar31 ^ 0xf993b0d3));
  *(undefined8 *)(lVar2 - (uVar16 ^ 0x80405d60)) = *(undefined8 *)(lVar2 + -0x808);
  *(ulonglong *)(lVar2 + -0x4a8) = *(ulonglong *)(lVar2 - (uVar31 ^ 0xf993b523)) ^ uVar28;
  *(longlong *)(lVar2 + -0x420) = *(longlong *)(lVar2 + -0x890) + -0x607c2fa7f43c1b89;
  uVar27 = (ulonglong)DAT_1826709f8;
  uVar20 = *(ulonglong *)(lVar2 - (uVar22 ^ 0x82c05869));
  *(ulonglong *)(lVar2 + -0x270) = uVar20 ^ uVar27;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0x8d66db06)) =
       (CONCAT44(uVar30,uVar4) ^ 0x6c372e97f993b1a2) + uVar20;
  bVar13 = (byte)DAT_1826709e4;
  *(byte *)(lVar2 + -0x942) =
       *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x95a49d44)) ^ uVar27) ^
       (byte)DAT_1826709e4 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar2 + -0xb0) ^ (ulonglong)DAT_182670a4c) = (byte)uVar23 ^ 2;
  *(ulonglong *)(lVar2 + -0x400) =
       (uVar25 ^ 0x69b225943f0f6dd3) - (CONCAT44(uVar6,uVar24) ^ 0x4e5126d78577044);
  *(ulonglong *)(lVar2 + -0x5d8) =
       (CONCAT44(uVar10,uVar6) ^ 0x82c0551910272fee) + (uVar28 ^ *(ulonglong *)(lVar2 + -0x4a8));
  *(ulonglong *)(lVar2 + -0xb70) =
       *(ulonglong *)(lVar2 + -0x7d8) ^ CONCAT44(uVar8,uVar4) ^ 0x9f55bfa2fc4f538a;
  lVar3 = DAT_1826707a0;
  *(byte *)(*(ulonglong *)(lVar2 - (uVar26 ^ 0xb99b6174)) ^ uVar28) =
       bVar13 ^ *(byte *)(lVar2 + -0x942);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xf993ba13)) =
       (CONCAT44(uVar30,uVar30) ^ 0xd0b5c5efc2b654ae) >> (((byte)uVar10 ^ 0x2a) & 0x3f);
  *(ulonglong *)(lVar3 + -0x7f0) = *(ulonglong *)(lVar3 + -0x5d8);
  *(ulonglong *)(lVar3 + -0xcf8) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0xb99b666c)) | CONCAT44(uVar23,uVar8) ^ 0xaa435d2787955b65;
  uVar12 = DAT_182670a78;
  lVar2 = DAT_1826707a0;
  uVar20 = *(ulonglong *)(lVar3 - (uVar16 ^ 0x804051c0));
  uVar25 = (ulonglong)DAT_182670a78;
  *(ulonglong *)(lVar3 + -0x390) = uVar20;
  uVar28 = (ulonglong)DAT_182670ad0;
  uVar27 = (ulonglong)DAT_182670a2c;
  *(ulonglong *)(lVar2 + -0x5e0) = uVar28 ^ *(ulonglong *)(lVar3 + -0x5d8);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar16 ^ 0x80405570)) = uVar20 ^ uVar27;
  *(ulonglong *)(lVar2 + -0xce0) = *(ulonglong *)(lVar2 + -0x658) ^ 0x1ed2af0cd94d488e;
  *(ulonglong *)(lVar2 + -0xa20) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x95a49a54)) ^ uVar27) +
       (CONCAT44(uVar4,uVar30) ^ 0xf993b1a36c372e96);
  bVar11 = DAT_1826709e0;
  lVar3 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x159) =
       *(byte *)(*(ulonglong *)(lVar2 + -0x560) ^ uVar27) ^ (byte)DAT_182670844 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar3 + -0xd80) ^ uVar25) = (byte)uVar9 ^ 0x60;
  *(ulonglong *)(lVar3 + -0x38) =
       (*(ulonglong *)(lVar3 - (uVar16 ^ 0x804055f0)) ^ uVar28) +
       (CONCAT44(uVar9,uVar10) ^ 0x95a49f3482c05518);
  *(byte *)(uVar28 ^ *(ulonglong *)(lVar3 + -0x5e0)) =
       *(byte *)(lVar3 - (uVar29 ^ 0x8d66db8f)) ^ (byte)DAT_182670844;
  *(ulonglong *)(lVar3 + -0x6f0) =
       CONCAT44(uVar7,uVar6) ^ 0x561ae5ddd65650d9 | CONCAT44(uVar23,uVar30) ^ 0xdf3088e087beb393;
  *(undefined8 *)(lVar3 + -0x718) = *(undefined8 *)(lVar3 + -0x38);
  uVar20 = (ulonglong)DAT_182670a90;
  *(int *)(lVar3 + -0xb54) =
       -0x49b98f57 >> ((byte)*(undefined4 *)(lVar3 - (uVar22 ^ 0x82c0592d)) & 0x1f);
  *(undefined8 *)(lVar3 + -600) = *(undefined8 *)(lVar3 + -0xa20);
  *(ulonglong *)(lVar3 + -0x458) = *(ulonglong *)(lVar3 - (uVar15 ^ 0x6c37298f)) ^ uVar20;
  pbVar18 = *(byte **)(lVar3 - (uVar16 ^ 0x80405248));
  *(ulonglong *)(lVar3 + -0x520) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670954;
  uVar5 = DAT_1826707c0;
  *(byte **)(lVar3 + -0xc68) = pbVar18 + (CONCAT44(uVar10,uVar9) ^ 0x82c0551995a49f35);
  *(byte *)(lVar3 + -0x639) = *pbVar18 ^ (byte)DAT_18267081c ^ bVar11;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc60) ^ (ulonglong)DAT_1826709f0) = (byte)uVar5 ^ 0x38;
  *(ulonglong *)(lVar3 + -0xb18) =
       (CONCAT44(uVar30,uVar8) ^ 0x6c372e978d66dad7) + (uVar20 ^ *(ulonglong *)(lVar3 + -0x458));
  *(longlong *)(lVar3 + -0x2b0) =
       *(longlong *)(lVar3 - (uVar32 ^ 0xa9743ff5)) <<
       ((byte)*(undefined8 *)(lVar3 + -0xa18) & 0x3f);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar31 ^ 0xf993b5fb)) ^ uVar20) =
       *(byte *)(lVar3 - (uVar31 ^ 0xf993b79a)) ^ (byte)DAT_18267081c;
  *(undefined8 *)(lVar3 + -0x330) = *(undefined8 *)(lVar3 + -0xb18);
  uVar5 = DAT_1826707cc;
  uVar20 = (ulonglong)DAT_182670838;
  uVar25 = (ulonglong)DAT_1826708f4;
  *(ulonglong *)(lVar3 + -0x548) =
       CONCAT44(uVar8,uVar9) ^ 0x9b8bfaeb763f8507 | *(ulonglong *)(lVar3 + -0x400);
  *(undefined8 *)(lVar3 - (uVar21 ^ 0x10272b57)) = *(undefined8 *)(lVar3 + -0xc68);
  *(ulonglong *)(lVar3 + -0xab8) = uVar25 ^ *(ulonglong *)(lVar3 + -0x330);
  *(ulonglong *)(lVar3 + -0x8d8) = *(ulonglong *)(lVar3 + -0x4b8) ^ uVar20;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xf993b69b)) = *(ulonglong *)(lVar3 + -0x4b8) + 1;
  *(byte *)(lVar3 - (uVar16 ^ 0x80405321)) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x8d8) ^ uVar20) ^ (byte)DAT_1826708ac ^ bVar11;
  *(byte *)(lVar3 + -0x9ba) = (byte)uVar24 ^ 1;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x260) ^ (ulonglong)DAT_182670a9c) = 0xbb;
  bVar13 = *(byte *)(lVar3 + -0x331) ^ (byte)DAT_1826708ac;
  *(ulonglong *)(lVar3 + -0x238) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xa9743f55)) ^ uVar25) +
       (CONCAT44(uVar24,uVar8) ^ 0x804050108d66dad7);
  *(byte *)(uVar25 ^ *(ulonglong *)(lVar3 + -0xab8)) = bVar13;
  *(byte *)(lVar3 + -0x331) = (byte)uVar5 ^ 0xd2;
  *(ulonglong *)(lVar3 + -0xd88) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0xb99b632c)) >> (((byte)uVar6 ^ 0xcc) & 0x3f);
  uVar25 = (ulonglong)DAT_182670804;
  *(undefined8 *)(lVar3 + -0x1f0) = *(undefined8 *)(lVar3 - (uVar21 ^ 0x10272dd7));
  *(undefined8 *)(lVar3 - (uVar29 ^ 0x8d66d2a6)) = *(undefined8 *)(lVar3 + -0x738);
  *(ulonglong *)(lVar3 + -0x9c8) =
       *(ulonglong *)(lVar3 - (uVar33 ^ 0x95a49d84)) ^ CONCAT44(uVar30,uVar23) ^ 0x850231a1a19b8a64;
  uVar20 = (ulonglong)DAT_182670820;
  *(ulonglong *)(lVar3 + -0x5a0) = *(ulonglong *)(lVar3 + -0x1f0) ^ uVar25;
  *puVar17 = *(ulonglong *)(lVar3 - (uVar22 ^ 0x82c05d69)) ^ uVar20;
  *(ulonglong *)(lVar3 + -0x788) = (*(ulonglong *)(lVar3 + -0x5a8) ^ uVar20) + 1;
  *(longlong *)(lVar3 + -0xd38) =
       *(longlong *)(lVar3 + -0xb70) << ((byte)*(undefined8 *)(lVar3 + -0x2b0) & 0x3f);
  uVar21 = CONCAT44(uVar24,DAT_1826707e8);
  bVar13 = *(byte *)(*(ulonglong *)(lVar3 - (uVar22 ^ 0x82c050b1)) ^ uVar20);
  *(byte *)(lVar3 + -0x9b9) = (byte)uVar5 ^ 0x84;
  *(byte *)(lVar3 + -1) = bVar13 ^ (byte)uVar12 ^ bVar11;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x9a8) ^ (ulonglong)DAT_1826709ec) = 0xde;
  *(ulonglong *)(lVar3 - (uVar33 ^ 0x95a49904)) = uVar21 ^ 0x4d1f8792e0527762;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0x9bf9fa63)) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x95a49a94)) ^ uVar25) + 1;
  *(byte *)(uVar25 ^ *(ulonglong *)(lVar3 + -0x5a0)) =
       *(byte *)(lVar3 - (uVar33 ^ 0x95a49f35)) ^ (byte)uVar12;
  *(undefined1 *)(lVar3 - (uVar15 ^ 0x6c372e96)) = 0xce;
  *(ulonglong *)(lVar3 + -0x220) =
       (CONCAT44(uVar30,uVar7) ^ 0x95295784832c0c65) >>
       ((byte)*(undefined8 *)(lVar3 - (uVar16 ^ 0x804056e0)) & 0x3f);
  uVar20 = *(ulonglong *)(lVar3 - (uVar32 ^ 0xa9743435));
  *(ulonglong *)(lVar3 + -0x6a8) = uVar20;
  uVar22 = CONCAT44(uVar6,DAT_1826707bc);
  *(longlong *)(lVar3 + -0x9e0) = *(longlong *)(lVar3 + -0xd88) + 0x2b0ec91fdae2d0b9;
  *(undefined8 *)(lVar3 + -0xbd8) = *(undefined8 *)(lVar3 + -0x788);
  *puVar19 = DAT_18267085c ^ uVar20;
  *(ulonglong *)(lVar3 - (uVar31 ^ 0xf993b7b3)) =
       (uVar22 ^ 0x61699ab8c0c6d902) >> (((byte)uVar4 ^ 0xb5) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar24) * 4) = uVar14;
  return;
}



############ FUN_ 180cd7580 size=5916 ############

void FUN_180cd7580(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  ulonglong *puVar3;
  ulonglong *puVar4;
  ulonglong *puVar5;
  ulonglong *puVar6;
  uint uVar7;
  byte bVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  uint uVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong *puVar29;
  uint uVar30;
  ulonglong uVar31;
  byte bVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte bVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  
  uVar21 = DAT_1826709a4;
  uVar20 = DAT_1826708e8;
  uVar18 = DAT_1826707f4;
  uVar15 = DAT_1826707c0;
  uVar11 = DAT_1826707b4;
  uVar12 = DAT_1826707ac;
  lVar9 = DAT_1826707a0;
  uVar47 = (ulonglong)DAT_1826707f4;
  uVar38 = (ulonglong)DAT_1826707c0;
  uVar30 = DAT_1826707c0 ^ DAT_1826707f4;
  uVar26 = DAT_1826707b4 | DAT_1826707ac;
  uVar7 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707f4 ^ 0xd6cf0d0d) + (longlong)DAT_182670e44);
  uVar22 = *(uint *)(&DAT_18260f760 + DAT_182670e44) ^ DAT_1826707c0;
  uVar24 = (ulonglong)uVar26;
  uVar34 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar48 = CONCAT44(DAT_18267095c,DAT_18267095c);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  uVar27 = *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xbe2adfbe)) ^
           CONCAT44(DAT_182670ac0,DAT_182670ac0) | uVar34 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88);
  DAT_1826707b8 = uVar30;
  DAT_1826707d4 = uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar27 ^ uVar48;
  uVar19 = DAT_182670848;
  uVar50 = CONCAT44(uVar20,uVar20);
  *puVar1 = (CONCAT44(uVar21,uVar21) ^ *(ulonglong *)(lVar9 + -0x588)) - uVar27 ^ uVar50;
  uVar13 = DAT_182670a50;
  uVar40 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar44 = CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x8c02045c)) =
       CONCAT44(uVar19,uVar19) ^ uVar44 ^ uVar40 ^ *(ulonglong *)(lVar9 + -0x4c8) ^
       *(ulonglong *)(lVar9 + -0x400);
  uVar35 = CONCAT44(DAT_182670818,DAT_182670818);
  puVar2 = (ulonglong *)(lVar9 + -0xc18);
  *(ulonglong *)(lVar9 + -0x420) =
       ((ulonglong)uVar13 << 0x14 | (ulonglong)(uVar13 >> 0xc)) ^ *puVar2 >> 0xc ^ uVar35;
  lVar9 = DAT_1826707a0;
  bVar8 = (byte)uVar18;
  bVar32 = (byte)uVar26;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x719ad611)) =
       (uVar12 ^ 0xe76a04b1) >> ((bVar8 ^ 4) & 0x1f);
  puVar3 = (ulonglong *)(lVar9 + -0x7d8);
  uVar28 = CONCAT44(DAT_182670824,DAT_182670824);
  uVar27 = (ulonglong)DAT_1826707b4;
  *puVar3 = (*puVar2 ^ uVar40) << ((bVar32 ^ 0x4a) & 0x3f) ^ uVar28;
  uVar40 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  puVar4 = (ulonglong *)(lVar9 + -0x6b8);
  uVar27 = *(ulonglong *)(lVar9 - (uVar27 ^ 0x8c020f9c)) ^ uVar28 |
           uVar35 ^ *(ulonglong *)(lVar9 + -0x420);
  uVar39 = (ulonglong)uVar12;
  uVar36 = (ulonglong)uVar30;
  uVar35 = uVar27 ^ uVar40;
  *puVar4 = uVar35;
  uVar31 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(lVar9 + -0x6f0) =
       (*(ulonglong *)(lVar9 - (uVar36 ^ 0xa755d52c)) ^ uVar44) - uVar27 ^ uVar31;
  lVar9 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (CONCAT44(uVar12,uVar18) ^ 0x5cf08d8211452c30) + 0xb7d44f4f447e0b11;
  uVar44 = CONCAT44(DAT_182670900,DAT_182670900);
  puVar25 = (ulonglong *)(lVar9 - ((ulonglong)uVar15 ^ 0x719ad8d9));
  puVar5 = (ulonglong *)(lVar9 + -0x438);
  *puVar25 = *puVar1 ^ uVar44 ^ uVar40 ^ uVar50 ^ uVar35;
  lVar10 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar9 - (uVar39 ^ 0xba28dfbe)) =
       (*puVar5 ^ uVar44) >> ((bVar32 ^ 0x67) & 0x3f) ^ uVar35;
  uVar11 = DAT_1826707b4;
  uVar27 = CONCAT44(DAT_182670890,DAT_182670890);
  puVar29 = (ulonglong *)(lVar10 - ((ulonglong)DAT_1826707b4 ^ 0x8c0205cc));
  uVar40 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *puVar29 = (*puVar5 ^ uVar44) << ((bVar8 ^ 0x22) & 0x3f) ^ uVar27;
  uVar20 = DAT_182670afc;
  lVar9 = DAT_1826707a0;
  uVar35 = *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xa755dc6c)) ^ uVar27 |
           *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar15 ^ 0x719ad921)) ^ uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar35 ^ uVar40;
  uVar19 = DAT_182670a04;
  uVar27 = (*puVar1 ^ uVar50) - (CONCAT44(uVar15,uVar30) ^ 0x146f70fadfbf306f);
  *(ulonglong *)(lVar9 + -0x400) = uVar27 ^ CONCAT44(uVar20,uVar20);
  uVar51 = CONCAT44(uVar19,uVar19);
  *puVar2 = uVar27 - uVar35 ^ uVar51;
  uVar19 = DAT_1826708f0;
  uVar46 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar9 + -0x420) = uVar35 - (CONCAT44(uVar26,uVar15) ^ 0x9195c7f56e5aa157) ^ uVar46;
  uVar44 = CONCAT44(uVar19,uVar19);
  uVar27 = *(ulonglong *)(lVar9 - ((ulonglong)uVar11 ^ 0x8c020a64));
  *(undefined8 *)(lVar9 + -0x4c8) = 0xeffbfb7ff75efeef;
  uVar48 = uVar27 ^ *(ulonglong *)(lVar9 + -0x6f0) ^ uVar44 ^ uVar31 ^ uVar48;
  uVar27 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *puVar3 = uVar48;
  uVar13 = DAT_1826707e4;
  uVar14 = DAT_1826707bc;
  uVar35 = (ulonglong)DAT_1826707bc;
  uVar41 = (uVar44 ^ uVar48) >> (((byte)uVar11 ^ 0x65) & 0x3f);
  uVar40 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar9 + -0x660) = uVar41 ^ uVar27;
  uVar33 = uVar14 | uVar13;
  uVar37 = (ulonglong)uVar33;
  uVar27 = (uVar44 ^ uVar48) << (((byte)uVar13 ^ 0xaa) & 0x3f);
  DAT_1826707dc = uVar33;
  *puVar4 = uVar27 ^ CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar19 = DAT_182670a2c;
  lVar9 = DAT_1826707a0;
  uVar50 = CONCAT44(DAT_1826708b4,DAT_1826708b4);
  puVar49 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar33 ^ 0xb7fd73cd));
  *puVar49 = (uVar27 | uVar41) ^ uVar50;
  uVar48 = CONCAT44(uVar19,uVar19);
  uVar44 = (*(ulonglong *)(lVar9 + -0x6f0) ^ uVar31) - (CONCAT44(uVar13,uVar14) ^ 0xba99ca6cd177db5)
  ;
  puVar6 = (ulonglong *)(lVar9 + -0x5c0);
  *puVar6 = uVar44 ^ uVar48;
  lVar10 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar27 = *puVar5;
  *(ulonglong *)(lVar9 + -0xd88) = uVar44 - (uVar50 ^ *puVar5) ^ uVar31;
  *puVar1 = 0xf26163c96abce175 - (CONCAT44(uVar14,uVar33) ^ 0x12d6af51e1a0df69);
  uVar44 = CONCAT44(DAT_182670844,DAT_182670844);
  uVar27 = (uVar50 ^ uVar27) + (CONCAT44(uVar13,uVar33) ^ 0x844642a69861b2e6) ^ uVar44;
  *(ulonglong *)(lVar10 + -0x400) = uVar27;
  uVar20 = DAT_18267094c;
  *(undefined1 *)(lVar10 + -0x6c9) = **(undefined1 **)(lVar10 - (uVar40 ^ 0x2554504d));
  uVar19 = DAT_18267091c;
  uVar50 = CONCAT44(uVar20,uVar20);
  uVar27 = uVar50 ^ uVar27 ^ uVar44 ^ *puVar2 ^ uVar51;
  *(ulonglong *)(lVar10 + -0x588) = uVar27;
  lVar9 = DAT_1826707a0;
  bVar43 = (byte)uVar14;
  uVar41 = CONCAT44(uVar19,uVar19);
  puVar23 = (ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0x25545175));
  *(ulonglong *)(DAT_1826707a0 + -0x220) = (uVar50 ^ uVar27) >> ((bVar43 ^ 0xd1) & 0x3f) ^ uVar41;
  *(ulonglong *)(lVar9 - (uVar24 ^ 0xbe2adeb6)) =
       *puVar23 ^ uVar48 | CONCAT44(uVar13,uVar33) ^ 0x8c59b1ecc0107ea0;
  uVar27 = CONCAT44(DAT_1826708a8,DAT_1826708a8);
  *puVar3 = (*(ulonglong *)(lVar9 - (uVar47 ^ 0xd6cf088d)) ^ uVar50) << ((bVar43 ^ 0xef) & 0x3f) ^
            uVar27;
  *(undefined1 *)(lVar9 - (uVar38 ^ 0x719ada28)) = **(undefined1 **)(lVar9 + -0x4f8);
  uVar20 = DAT_182670a08;
  uVar19 = DAT_182670974;
  uVar11 = DAT_18267092c;
  lVar10 = DAT_1826707a0;
  uVar44 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar27 = *(ulonglong *)(lVar9 - (uVar37 ^ 0xb7fd702d)) ^ uVar27 |
           uVar41 ^ *(ulonglong *)(lVar9 + -0x220);
  uVar48 = (ulonglong)DAT_18267092c;
  *(ulonglong *)(lVar9 + -0x660) = uVar27 ^ uVar44;
  uVar42 = CONCAT44(uVar11,uVar11);
  uVar45 = CONCAT44(uVar19,uVar19);
  *puVar4 = (*puVar2 ^ uVar51) - uVar27 ^ uVar45;
  *(ulonglong *)(lVar10 + -0x6f0) =
       (CONCAT44(uVar26,uVar18) ^ 0x9ff2c4bc8172f9f2) -
       (CONCAT44(uVar12,uVar13) ^ 0x92f7b8301206a224);
  *(ulonglong *)(lVar10 - (uVar39 ^ 0xba28d69e)) =
       uVar42 ^ uVar31 ^ uVar46 ^ *(ulonglong *)(lVar10 + -0xd88) ^ *(ulonglong *)(lVar10 + -0x420);
  uVar41 = CONCAT44(DAT_182670814,DAT_182670814);
  uVar50 = CONCAT44(DAT_182670924,DAT_182670924);
  *puVar5 = (*(ulonglong *)(lVar10 - (uVar35 ^ 0xb3b97b34)) >> 0x20 ^ uVar48) >> 5 ^ uVar41;
  uVar27 = *puVar1;
  *(ulonglong *)(lVar10 + -0x400) = (uVar42 ^ *puVar1) << (((byte)uVar13 ^ 0xae) & 0x3f) ^ uVar50;
  *(ulonglong *)(lVar10 - (uVar37 ^ 0xb7fd7235)) =
       (uVar42 ^ uVar27) - (CONCAT44(uVar13,uVar12) ^ 0x5743f76ec25e9058);
  uVar19 = DAT_182670a20;
  puVar23 = (ulonglong *)(lVar10 - (uVar38 ^ 0x719ad8e1));
  uVar48 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  uVar27 = uVar50 ^ *puVar23 | uVar41 ^ *puVar5;
  *(ulonglong *)(lVar10 + -0x4c8) = uVar27 ^ uVar48;
  uVar41 = CONCAT44(uVar19,uVar19);
  *(ulonglong *)(lVar10 - ((ulonglong)DAT_1826707b4 ^ 0x8c020dcc)) =
       (uVar31 ^ *puVar29) - uVar27 ^ uVar41;
  uVar19 = DAT_182670984;
  *(ulonglong *)(lVar10 + -0x220) =
       0xa49a44c7bfd6528c >> (((byte)uVar20 ^ *(byte *)(lVar10 + -0x660)) & 0x3f);
  uVar27 = CONCAT44(uVar19,uVar19);
  uVar48 = uVar27 ^ uVar48 ^ uVar45 ^ *puVar4 ^ *(ulonglong *)(lVar10 + -0x4c8);
  *puVar3 = uVar48;
  uVar48 = (uVar48 ^ uVar27) >> ((bVar32 ^ 0x69) & 0x3f);
  *puVar2 = uVar48 ^ CONCAT44(DAT_182670904,DAT_182670904);
  uVar13 = DAT_1826707b4;
  lVar9 = DAT_1826707a0;
  uVar46 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar27 = (*(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xa755d63c)) ^ uVar27) <<
           ((bVar8 ^ 0x2c) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar27 ^ uVar46;
  lVar10 = DAT_1826707a0;
  uVar27 = uVar27 | uVar48;
  *(longlong *)(lVar9 + -0x420) = -0x7c812f78d23d27c4 << (((byte)uVar30 ^ 0xcf) & 0x3f);
  uVar48 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *puVar1 = uVar27 ^ uVar48;
  uVar31 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar42 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *puVar6 = (uVar45 ^ *puVar4) - uVar27 ^ uVar31;
  lVar9 = DAT_1826707a0;
  uVar45 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *puVar49 = *(ulonglong *)(lVar10 - (uVar38 ^ 0x719ada81)) ^
             *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xb3b9725c)) ^ uVar42 ^ uVar41 ^ uVar44;
  *(ulonglong *)(lVar9 + -0x400) =
       (*(ulonglong *)(lVar9 - (uVar36 ^ 0xa755d5dc)) ^ uVar42) >> ((bVar43 ^ 0xfc) & 0x3f) ^ uVar45
  ;
  *(ulonglong *)(lVar9 + -0xd88) =
       (CONCAT44(uVar13,uVar33) ^ 0x5a9a0cac0baa0230) >> ((bVar8 ^ 9) & 0x3f);
  lVar10 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670898,DAT_182670898);
  *(ulonglong *)(lVar9 - (uVar38 ^ 0x719adec1)) =
       (*(ulonglong *)(lVar9 - (uVar24 ^ 0xbe2ade46)) ^ uVar42) << (((byte)uVar30 ^ 0xfc) & 0x3f) ^
       uVar35;
  uVar19 = DAT_182670b14;
  uVar27 = *(ulonglong *)(lVar10 + -0x588);
  uVar38 = CONCAT44(DAT_182670888,DAT_182670888);
  uVar35 = (*(ulonglong *)(lVar9 + -0x220) ^ uVar35 | uVar45 ^ *(ulonglong *)(lVar9 + -0x400)) ^
           uVar38;
  *(ulonglong *)(lVar9 + -0x4c8) = uVar35;
  uVar44 = CONCAT44(uVar19,uVar19);
  *puVar3 = (uVar41 ^ uVar27) - (*(ulonglong *)(lVar10 - (uVar39 ^ 0xba28deb6)) ^ uVar38) ^ uVar44;
  uVar20 = DAT_1826709e4;
  uVar41 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar35 = uVar31 ^ *puVar6 ^ uVar41 ^ uVar38 ^ uVar35;
  *(ulonglong *)(lVar10 + -0x420) = uVar35;
  *puVar2 = (uVar35 ^ uVar41) >> (((byte)uVar15 ^ 0xd5) & 0x3f) ^ CONCAT44(uVar20,uVar20);
  lVar9 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xbe2adc8e)) = (uVar41 ^ uVar35) << 0xc ^ uVar27;
  uVar38 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar27 = *(ulonglong *)(lVar9 - (uVar40 ^ 0x255458ad)) ^ CONCAT44(uVar20,uVar20) |
           *(ulonglong *)(lVar9 - ((ulonglong)DAT_1826707b4 ^ 0x8c020eb4)) ^ uVar27;
  *puVar4 = uVar27 ^ uVar38;
  uVar19 = DAT_182670928;
  uVar42 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *(ulonglong *)(lVar9 + -0x660) = (uVar31 ^ *puVar6) - uVar27 ^ uVar42;
  uVar21 = DAT_182670aac;
  uVar31 = (ulonglong)DAT_1826707b0;
  uVar35 = CONCAT44(uVar19,uVar19);
  uVar27 = *(ulonglong *)(lVar9 - (uVar47 ^ 0xd6cf0add)) ^ uVar48 ^ *puVar1 ^ uVar35 ^ uVar44;
  *(ulonglong *)(lVar9 + -0xd88) = uVar27;
  uVar41 = CONCAT44(uVar21,uVar21);
  *puVar5 = (uVar27 ^ uVar35) >> (((byte)uVar33 ^ 0xcc) & 0x3f) ^ uVar41;
  lVar10 = DAT_1826707a0;
  *(ulonglong *)(lVar9 + -0x400) =
       (CONCAT44(uVar18,uVar15) ^ 0xdc372485eb21767f) >>
       ((*(byte *)(lVar9 - (uVar31 ^ 0x41888bcf)) ^ (byte)uVar20) & 0x3f);
  uVar27 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar10 - (uVar39 ^ 0xba28d85e)) =
       (*(ulonglong *)(lVar10 - (uVar37 ^ 0xb7fd7a7d)) ^ uVar35) << ((bVar43 ^ 0xd3) & 0x3f) ^
       uVar27;
  uVar21 = DAT_182670af0;
  uVar48 = CONCAT44(DAT_182670af0,DAT_182670af0);
  uVar27 = *puVar25 ^ uVar41 | *(ulonglong *)(lVar10 + -0x220) ^ uVar27;
  uVar35 = uVar27 ^ uVar48;
  *(ulonglong *)(lVar10 + -0x588) = uVar35;
  uVar19 = DAT_182670808;
  *(ulonglong *)(lVar10 + -0x4c8) = (*puVar3 ^ uVar44) - uVar27 ^ uVar42;
  lVar9 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar19,uVar19);
  uVar35 = *(ulonglong *)(lVar10 - (uVar39 ^ 0xba28dc1e)) ^ uVar27 ^ uVar48 ^ uVar42 ^ uVar35;
  *(ulonglong *)(DAT_1826707a0 - (uVar37 ^ 0xb7fd73d5)) = uVar35;
  uVar19 = DAT_1826709ec;
  uVar35 = (uVar35 ^ uVar27) >> ((bVar8 ^ 0xb) & 0x3f);
  *(ulonglong *)(lVar9 + -0x6f0) = uVar35 ^ CONCAT44(DAT_1826708c4,DAT_1826708c4);
  uVar11 = DAT_1826707e8;
  uVar39 = (ulonglong)DAT_1826707e8;
  uVar27 = (*(ulonglong *)(lVar9 - (uVar31 ^ 0x418883f7)) ^ uVar27) << ((bVar32 ^ 0x4c) & 0x3f);
  *puVar6 = uVar27 ^ CONCAT44(uVar19,uVar19);
  uVar19 = DAT_182670a80;
  *(undefined1 *)(lVar9 + -0x6c9) = **(undefined1 **)(lVar9 + -0x4f8);
  uVar20 = DAT_182670a90;
  uVar44 = CONCAT44(uVar19,uVar19);
  *puVar1 = (uVar27 | uVar35) ^ uVar44;
  uVar16 = DAT_1826707e0;
  uVar45 = (ulonglong)DAT_1826707e0;
  uVar27 = (ulonglong)DAT_1826707b4;
  uVar35 = (*(ulonglong *)(lVar9 + -0x660) ^ uVar42) -
           (CONCAT44(uVar12,uVar11) ^ 0x85370c80183b0fb9);
  *puVar2 = uVar35 ^ CONCAT44(uVar20,uVar20);
  lVar10 = DAT_1826707a0;
  uVar47 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *puVar23 = uVar35 - (*(ulonglong *)(lVar9 - (uVar27 ^ 0x8c0204a4)) ^ uVar44) ^ uVar47;
  uVar19 = DAT_1826709dc;
  *(ulonglong *)(lVar9 + -0xd88) = uVar24 << 0x25 ^ 0x5d57e4000000000;
  *(ulonglong *)(lVar10 + -0x220) =
       (*puVar1 ^ uVar44) - (CONCAT44(uVar14,uVar30) ^ 0xd1337990866672ef) ^ CONCAT44(uVar19,uVar19)
  ;
  uVar17 = DAT_1826707ec;
  uVar14 = DAT_1826707cc;
  uVar11 = DAT_1826707a8;
  uVar48 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar24 = (ulonglong)DAT_1826707cc;
  uVar44 = (ulonglong)DAT_1826707a8;
  uVar27 = *(ulonglong *)(lVar10 - (uVar45 ^ 0xce4a5873)) ^ uVar48 ^ uVar42 ^ uVar38 ^ *puVar4;
  *puVar5 = uVar27;
  *puVar3 = (CONCAT44(uVar11,uVar15) ^ 0xc60d7c2aaea12a56) + (uVar27 ^ uVar48);
  *(ulonglong *)(lVar10 - (uVar40 ^ 0x25545095)) =
       (*(ulonglong *)(lVar10 - ((ulonglong)uVar17 ^ 0x44814c38)) ^ uVar48) >>
       ((bVar8 ^ 0x15) & 0x3f) ^ uVar50;
  uVar35 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar27 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(DAT_1826707a0 - (uVar40 ^ 0x25545245)) =
       (*puVar5 ^ uVar48) << (((byte)uVar14 ^ 0x31) & 0x3f) ^ uVar35;
  *puVar6 = (CONCAT44(uVar13,DAT_1826707c4) ^ 0x5b21796d13d8ef4e) >>
            ((*(byte *)(DAT_1826707a0 - (uVar27 ^ 0x50dca5e)) ^ (byte)uVar21) & 0x3f);
  uVar33 = DAT_1826707d8;
  lVar9 = DAT_1826707a0;
  uVar48 = CONCAT44(DAT_182670828,DAT_182670828);
  uVar38 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xa755d784)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar17 ^ 0x44814c20)) ^ uVar50 |
       *(ulonglong *)(DAT_1826707a0 + -0x6f0) ^ uVar35) ^ uVar48;
  uVar27 = (uVar42 ^ *(ulonglong *)(lVar9 + -0x4c8)) -
           (CONCAT44(uVar14,uVar18) ^ 0x6b3a558ac90f70b3);
  *puVar2 = uVar27 ^ CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(lVar9 + -0xd88) = **(ulonglong **)(lVar9 + -0x180) ^ uVar46;
  *puVar1 = uVar27 - (*(ulonglong *)(lVar9 + -0x660) ^ uVar48) ^ uVar41;
  uVar13 = DAT_1826707c8;
  uVar35 = (ulonglong)DAT_1826707c8;
  *(undefined8 *)(lVar9 - (uVar38 ^ 0xa7e286dd)) = 0xa9e40f24237a55a8;
  uVar14 = DAT_182670874;
  uVar38 = (ulonglong)DAT_182670874;
  *(ulonglong *)(lVar9 - (uVar39 ^ 0x11959443)) =
       (*(ulonglong *)(lVar9 + -0x660) ^ uVar48) + (CONCAT44(uVar12,uVar30) ^ 0xe023cd43238a58cf) ^
       uVar34;
  uVar39 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar27 = *(ulonglong *)(lVar9 - (uVar40 ^ 0x255450b5)) ^ uVar34 ^ *puVar3 ^ uVar39 ^ uVar47;
  uVar48 = CONCAT44(uVar14,uVar14);
  *puVar5 = uVar27;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (uVar27 ^ uVar39) >> (((byte)uVar13 ^ 0xdf) & 0x3f) ^ uVar48;
  uVar31 = (ulonglong)DAT_1826707d0;
  uVar40 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *puVar6 = (uVar27 ^ uVar39) << (((byte)DAT_1826707b4 ^ 100) & 0x3f) ^ uVar40;
  uVar12 = DAT_1826707f0;
  lVar9 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f0 ^ 0x50dcbf6)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0x7eda2d32)) ^ uVar48 |
       *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xfcc94614)) ^ uVar40) ^ uVar27;
  uVar20 = DAT_182670a00;
  *(int *)(lVar9 + -0xcec) = (int)(DAT_1826707b4 ^ 0xfa7affff) >> 0xf;
  *(ulonglong *)(lVar9 - (uVar24 ^ 0x44854ef1)) =
       (uVar47 ^ *(ulonglong *)(lVar9 + -0x400)) -
       (*(ulonglong *)(lVar9 - (uVar35 ^ 0xb08fcfdf)) ^ uVar27) ^ CONCAT44(uVar20,uVar20);
  uVar35 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar9 + -0x4c8) =
       (CONCAT44(uVar15,uVar16) ^ 0x719a41793c70a660) >>
       ((*(byte *)(lVar9 + -0x220) ^ (byte)uVar19) & 0x3f);
  uVar27 = *(ulonglong *)(lVar9 - (uVar45 ^ 0xce4a505b)) ^ *(ulonglong *)(lVar9 + -0x220) ^ uVar35 ^
           CONCAT44(uVar19,uVar19) ^ uVar41;
  *(ulonglong *)(lVar9 + -0xd88) = uVar27;
  *puVar2 = (*(ulonglong *)(lVar9 - (uVar31 ^ 0xfcc94e5c)) ^ uVar35) >>
            (((byte)uVar16 ^ 0x9b) & 0x3f) ^ uVar34;
  *puVar4 = (uVar27 ^ uVar35) << (((byte)uVar12 ^ 0xf6) & 0x3f) ^ uVar28;
  uVar19 = DAT_182670ad0;
  *(ulonglong *)(lVar9 - (uVar37 ^ 0xb7fd7195)) =
       (*(ulonglong *)(lVar9 - (uVar36 ^ 0xa755d46c)) >> 0x20 ^ uVar38) >> 3;
  uVar27 = *puVar2 ^ uVar34 | uVar28 ^ *puVar4;
  *puVar3 = uVar27 ^ CONCAT44(uVar19,uVar19);
  *puVar5 = CONCAT44(DAT_1826707ec,uVar33) ^ 0x146d9442ca0d8659 |
            CONCAT44(uVar11,uVar26) ^ 0xffe6e9a3d930f413;
  *puVar6 = (*puVar1 ^ uVar41) - uVar27 ^ CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar22 * 4) = uVar7 ^ uVar30;
  return;
}



############ FUN_ 180c56e40 size=5339 ############

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

void FUN_180c56e40(void)

{
  ulonglong *puVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  ulonglong *puVar16;
  uint uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  uVar8 = DAT_182670884;
  uVar14 = DAT_1826707bc;
  uVar11 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar17 = (DAT_1826707bc << 0x10 | DAT_1826707bc & 0xff00) << 8 | DAT_1826707bc >> 8 & 0xff00 |
           DAT_1826707bc >> 0x18;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670cc0);
  uVar10 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707bc ^ 0xb3b977c4) + (longlong)DAT_182670cc0) ^
           DAT_1826707bc;
  DAT_1826707e0 = uVar17;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       (CONCAT44(uVar17,uVar17) ^ 0x3d27d157dd9caff) + 0xe91c477a34ba0687;
  uVar28 = CONCAT44(DAT_18267082c,DAT_18267082c);
  uVar23 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xb3b9725c)) =
       (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar3 + -0x6b8)) -
       (*(ulonglong *)(lVar3 + -0x220) ^ uVar28) ^ uVar23;
  uVar25 = CONCAT44(DAT_182670a38,DAT_182670a38);
  uVar28 = (CONCAT44(uVar14,uVar17) ^ 0x29b324305362a7dc) +
           (*(ulonglong *)(lVar3 + -0x220) ^ uVar28) ^ uVar25;
  uVar21 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar3 + -0x438) = uVar28;
  uVar29 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xd477bfd3)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xb3b973f4)) ^ uVar29 ^ uVar21 ^ uVar28 ^ uVar25;
  *(undefined4 *)(lVar3 + -0x598) = 0x9fb343da;
  puVar18 = (ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0x7eda2eda));
  uVar26 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar19 = (ulonglong)DAT_1826707f0;
  bVar20 = (byte)(uVar14 >> 0x18);
  uVar28 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xb3b97124)) =
       (*puVar18 ^ uVar21) >> (((byte)uVar14 ^ 0xf4) & 0x3f) ^ uVar26;
  uVar8 = DAT_182670a58;
  bVar12 = (byte)DAT_1826707e4;
  *(longlong *)(lVar3 + -0x5c0) = 0x655135c995e122e8 << ((bVar20 ^ 0xbb) & 0x3f);
  uVar25 = CONCAT44(uVar8,uVar8);
  puVar1 = (ulonglong *)(lVar3 + -0x6f0);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xb8eb68f7)) =
       (uVar21 ^ *(ulonglong *)(lVar3 + -0x660)) << ((bVar12 ^ 0x95) & 0x3f) ^ uVar25;
  uVar14 = DAT_1826708e0;
  uVar36 = (ulonglong)DAT_1826708e0;
  uVar22 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar28 = *(ulonglong *)(lVar3 + -0xd88) ^ uVar25 | *puVar1 ^ uVar26;
  bVar12 = (byte)DAT_1826707c8;
  *(ulonglong *)(lVar3 + -0xc18) = uVar28 ^ uVar22;
  *(ulonglong *)(lVar3 + -0x400) = uVar28 << ((bVar12 ^ 5) & 0x3f);
  uVar25 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar3 + -0xce0) = (uVar29 ^ *(ulonglong *)(lVar3 + -0x420)) - uVar28 ^ uVar25;
  uVar8 = DAT_182670914;
  uVar28 = CONCAT44(uVar14,uVar14);
  puVar16 = (ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c4 ^ 0x4000fd8));
  *(ulonglong *)(lVar3 + -0x7d8) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xd477bc3b)) ^
       CONCAT44(DAT_1826708a8,DAT_1826708a8) ^ uVar28 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x4c8);
  uVar14 = DAT_1826707dc;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707dc ^ 0x255dd94f)) =
       *puVar16 >> 0x20 ^ uVar29 ^ uVar36;
  uVar8 = DAT_182670ab4;
  lVar3 = DAT_1826707a0;
  bVar12 = (byte)DAT_1826707b0;
  uVar26 = (*(ulonglong *)(DAT_1826707a0 + -0x7d8) ^ uVar28) << ((bVar12 ^ 0xf7) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar26 ^ CONCAT44(DAT_182670a98,DAT_182670a98);
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar28 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0x255ddbcf)) =
       (*(ulonglong *)(lVar3 + -0x6b8) ^ uVar29 | uVar26) ^ uVar36;
  uVar34 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x8c020d84)) =
       (*(ulonglong *)(lVar4 + -0x588) ^ uVar23) - (uVar36 ^ *(ulonglong *)(lVar4 + -0x438)) ^
       uVar34;
  uVar8 = DAT_182670aa0;
  uVar7 = DAT_1826707e8;
  uVar6 = DAT_1826707dc;
  uVar14 = DAT_1826707b4;
  uVar31 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar28 = (ulonglong)DAT_1826707bc;
  uVar23 = *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x7eda2c82)) ^ uVar31 ^ uVar36 ^
           *(ulonglong *)(lVar4 + -0xce0) ^ uVar25;
  *(ulonglong *)(lVar4 + -0x660) = uVar23;
  uVar5 = DAT_1826707c4;
  uVar29 = CONCAT44(uVar8,uVar8);
  *puVar1 = (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xb3b971b4)) ^ uVar31) >>
            (((byte)DAT_1826707ac ^ 0xf3) & 0x3f) ^ uVar29;
  lVar3 = DAT_1826707a0;
  uVar26 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar23 = (uVar31 ^ uVar23) << (((byte)uVar14 ^ 0x42) & 0x3f);
  uVar28 = CONCAT44(DAT_1826707c0,DAT_1826707d8);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar23 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x400) = (uVar28 ^ 0x507f0b4ade08fce4) + uVar23;
  lVar4 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670968,DAT_182670968);
  uVar28 = *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0x1195956b)) ^ uVar29 |
           *(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0x50dc25e)) ^ uVar26;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar28 ^ uVar31;
  uVar15 = DAT_1826707ec;
  bVar13 = (byte)DAT_1826707b8;
  uVar32 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(lVar4 + -0x4c8) = (*(ulonglong *)(lVar4 + -0xce0) ^ uVar25) - uVar28 ^ uVar32;
  uVar8 = DAT_1826708b0;
  lVar3 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar22 = *(ulonglong *)(lVar4 + -0xc18) ^ uVar28 ^ uVar34 ^ *(ulonglong *)(lVar4 + -0x5c0) ^
           uVar22;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar22;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x6b8) = (*puVar16 ^ uVar28) >> ((bVar13 ^ 0xf2) & 0x3f) ^ uVar23;
  uVar19 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0x8c020a64)) =
       (uVar22 ^ uVar28) << (((byte)uVar15 ^ 0x2a) & 0x3f) ^ uVar19;
  uVar11 = DAT_1826707a8;
  uVar27 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar28 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar3 + -0x588) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0x44814a20)) ^ uVar19 |
       *(ulonglong *)(lVar3 + -0x6b8) ^ uVar23) ^ uVar27;
  uVar8 = DAT_182670858;
  uVar15 = DAT_1826707d4;
  uVar22 = (ulonglong)DAT_1826707d4;
  puVar24 = (ulonglong *)(lVar3 - (uVar28 ^ 0x3228d602));
  *puVar24 = CONCAT44(DAT_1826707d4,uVar11) ^ 0xcf5cd30c8a502089 |
             CONCAT44(uVar11,DAT_1826707c0) ^ 0x8382eb56443602ae;
  uVar19 = CONCAT44(uVar8,uVar8);
  uVar28 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0x660) =
       (uVar34 ^ *(ulonglong *)(lVar3 + -0x5c0)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b0 ^ 0x4188825f)) ^ uVar27) ^ uVar19;
  uVar8 = DAT_182670b0c;
  uVar29 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar26 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x44854d89)) ^ uVar29 ^ uVar27 ^ uVar32 ^
           *(ulonglong *)(lVar3 + -0x4c8);
  *(ulonglong *)(lVar3 + -0x400) = uVar26;
  lVar3 = DAT_1826707a0;
  uVar28 = (uVar26 ^ uVar29) >> ((bVar12 ^ 0xf9) & 0x3f);
  bVar12 = (byte)DAT_1826707dc;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar28 ^ CONCAT44(uVar8,uVar8);
  uVar23 = CONCAT44(DAT_182670980,DAT_182670980);
  *puVar1 = (uVar26 ^ uVar29) << ((bVar12 ^ 0xe5) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar3 + -0xce0) = CONCAT44(uVar6,DAT_1826707b0) ^ 0x1b83600eaf32d6a0;
  uVar8 = DAT_1826709b0;
  *(ulonglong *)(lVar3 + -0xc18) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar15 ^ 0xbe2adc8e)) ^ uVar23 | uVar28) ^ uVar36;
  uVar11 = DAT_1826708c0;
  uVar26 = CONCAT44(uVar8,uVar8);
  uVar28 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f4 ^ 0xb8eb62a7)) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0x4c8)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f4 ^ 0xb8eb6967)) ^ uVar36) ^ uVar26;
  uVar8 = DAT_182670900;
  uVar28 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x44854e61)) ^ CONCAT44(uVar11,uVar11) ^ uVar19 ^ uVar31
           ^ *(ulonglong *)(lVar3 + -0x420);
  *(ulonglong *)(lVar3 + -0x220) = uVar28;
  uVar9 = _DAT_1826709e0;
  uVar32 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x6b8) =
       ((ulonglong)uVar11 << 0x14 | (ulonglong)(uVar11 >> 0xc)) ^ uVar28 >> 0xc ^ uVar32;
  uVar29 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x438) = (CONCAT44(uVar11,uVar11) ^ uVar28) << 0x34 ^ uVar29;
  *(undefined1 *)(lVar3 - (uVar22 ^ 0xbe2adcb7)) = **(undefined1 **)(lVar3 + -0x4f8);
  uVar14 = DAT_1826707b8;
  uVar22 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b8 ^ 0xa755d424)) =
       (uVar29 ^ *(ulonglong *)(lVar3 + -0x438) | *(ulonglong *)(lVar3 + -0x6b8) ^ uVar32) ^ uVar22;
  uVar11 = DAT_1826707e4;
  lVar3 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_182670988,DAT_182670988);
  uVar28 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0x2554513d)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar7 ^ 0x119595fb)) ^ uVar19) -
       (uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0)) ^ uVar33;
  uVar6 = DAT_1826707d8;
  uVar29 = CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(lVar3 + -0x400) =
       uVar29 ^ uVar22 ^ uVar26 ^ *(ulonglong *)(lVar3 + -0x7d8) ^ *(ulonglong *)(lVar3 + -0x5c0);
  lVar3 = DAT_1826707a0;
  uVar22 = CONCAT44(DAT_182670944,DAT_182670944);
  uVar19 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x25545855)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xdec5f8c9)) ^ uVar29) >>
       (((byte)DAT_1826707a8 ^ 0xa3) & 0x3f) ^ uVar22;
  uVar28 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar3 - (uVar19 ^ 0xcecf5133)) =
       uVar29 ^ *(ulonglong *)(lVar3 + -0x400) ^ 0x6d4a787cdde0bc76;
  uVar8 = DAT_182670930;
  uVar32 = (*(ulonglong *)(lVar3 - (uVar28 ^ 0x8125d345)) ^ uVar29) <<
           (((byte)DAT_1826707dc ^ 0xd0) & 0x3f);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar32 ^ uVar34;
  uVar11 = DAT_1826707ec;
  lVar3 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826707cc;
  uVar35 = (ulonglong)DAT_1826707ec;
  uVar32 = uVar32 | uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0);
  *(undefined8 *)(DAT_1826707a0 + -0x220) = 2;
  uVar9 = DAT_182670a54;
  *(ulonglong *)(lVar3 + -0x420) = uVar32 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182670828;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar3 + -0x438) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x44854fd9)) ^ uVar26) -
       (CONCAT44(DAT_1826707c8,uVar15) ^ 0x880ab22bcdd1f1dc) ^ uVar19;
  uVar9 = DAT_1826708d4;
  uVar26 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x6b8) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e4 ^ 0x2554508d)) ^ uVar19) - uVar32 ^ uVar26;
  uVar8 = DAT_1826708ac;
  uVar29 = CONCAT44(uVar9,uVar9);
  uVar28 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar3 + -0x660) =
       uVar32 - (CONCAT44(DAT_1826707b0,uVar11) ^ 0xe301cd3c67e8704d) ^ uVar29;
  lVar4 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar8,uVar8);
  uVar36 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x509ca5f)) ^ uVar34 ^ uVar33 ^
           *(ulonglong *)(lVar3 + -0xc18) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar36;
  uVar11 = DAT_1826707b4;
  uVar19 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar4 + -0xd88) = (uVar36 ^ uVar34) >> (((byte)uVar7 ^ 0xba) & 0x3f) ^ uVar21;
  uVar32 = CONCAT44(DAT_182670868,DAT_182670868);
  uVar28 = (ulonglong)DAT_1826707bc;
  uVar37 = (ulonglong)DAT_1826707ac;
  uVar30 = CONCAT44(uVar11,DAT_1826707ac);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0xcecf58bb)) =
       (uVar34 ^ uVar36) << (((byte)uVar14 ^ 0xfb) & 0x3f) ^ uVar32;
  lVar3 = DAT_1826707a0;
  uVar34 = CONCAT44(DAT_1826709cc,DAT_1826709cc);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707dc ^ 0x255dd317)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xb3b973d4)) ^ uVar32 |
       *(ulonglong *)(DAT_1826707a0 + -0xd88) ^ uVar21) ^ uVar34;
  uVar28 = CONCAT44(DAT_182670954,DAT_182670954);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (uVar33 ^ *(ulonglong *)(lVar3 + -0x588)) - (uVar30 ^ 0x5888af22a2ed7031) ^ uVar28;
  uVar8 = DAT_1826709d0;
  *(ulonglong *)(lVar3 + -0x220) =
       (*(ulonglong *)(lVar3 - (uVar35 ^ 0x44814cc8)) ^ uVar28) -
       (uVar34 ^ *(ulonglong *)(lVar3 + -0xce0)) ^ uVar25;
  uVar36 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x7d8) =
       (CONCAT44(uVar5,DAT_1826707c0) ^ 0xc4e02101f358ac0e) +
       (uVar34 ^ *(ulonglong *)(lVar3 + -0xce0)) ^ uVar36;
  uVar21 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar28 = (ulonglong)DAT_1826707d8;
  bVar12 = (byte)DAT_1826707cc;
  uVar19 = *(ulonglong *)(lVar3 - (uVar19 ^ 0x8c020f9c)) ^
           *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b0 ^ 0x4188816f)) ^ uVar21 ^ uVar36 ^
           uVar26;
  uVar34 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0x438) = uVar19;
  uVar8 = _DAT_1826708f8;
  uVar11 = DAT_1826707dc;
  *(ulonglong *)(lVar3 + -0x420) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xcecf5a4b)) ^ uVar23) >> ((bVar12 ^ 0x34) & 0x3f);
  uVar9 = DAT_1826709ac;
  uVar30 = CONCAT44(uVar8,uVar8);
  bVar12 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar3 + -0xc18) = (uVar21 ^ uVar19) >> (((byte)uVar11 ^ 0xf2) & 0x3f) ^ uVar30;
  uVar28 = (uVar21 ^ uVar19) << ((bVar12 ^ 0x3b) & 0x3f);
  uVar14 = DAT_1826707bc ^ 0x492d6d5f;
  uVar11 = DAT_1826707e4 ^ 0xb9dd479a;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar28 ^ CONCAT44(uVar9,uVar9);
  uVar8 = DAT_18267089c;
  *(uint *)(lVar3 + -0x2d4) = uVar14 + uVar11;
  uVar36 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xdec5f141)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c8 ^ 0x3228de22)) ^ uVar30 | uVar28) ^ uVar36;
  *(ulonglong *)(lVar3 + -0x400) = 0x6815b6f5610bd09c >> (((byte)DAT_1826707d4 ^ 0x78) & 0x3f);
  uVar11 = DAT_182670924;
  uVar32 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar28 = (ulonglong)DAT_182670924;
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) -
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0x8125dacd)) ^ uVar36) ^ uVar32;
  uVar9 = DAT_182670a0c;
  lVar3 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar11,uVar11);
  uVar26 = *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0x25545695)) ^ uVar29 ^ uVar25
           ^ uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x660);
  uVar19 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(DAT_1826707a0 + -0x4c8) = uVar26;
  uVar8 = DAT_182670808;
  uVar21 = (uVar26 >> 0x20 ^ uVar28) >> 5;
  uVar26 = (uVar26 ^ uVar23) << 0x1b;
  *(ulonglong *)(lVar3 + -0x7d8) = uVar26 ^ CONCAT44(uVar9,uVar9);
  uVar28 = (ulonglong)DAT_1826707c0;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0xce0) = uVar21 ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x509c927)) = (uVar21 | uVar26) ^ uVar23;
  uVar29 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar28 = *puVar1;
  *(ulonglong *)(lVar3 + -0x420) =
       (*(ulonglong *)(lVar3 + -0x220) ^ uVar25) - (*puVar1 ^ uVar23) ^ uVar29;
  *puVar24 = uVar32 ^ uVar27 ^ *(ulonglong *)(lVar3 + -0x588) ^ uVar28 ^ uVar23;
  uVar25 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707b0 ^ 0x41888bcf)) =
       (uVar27 ^ *(ulonglong *)(lVar3 + -0x438)) >> (((byte)DAT_1826707d8 ^ 0xac) & 0x3f) ^ uVar25;
  uVar9 = DAT_182670aa8;
  uVar28 = (uVar27 ^ *(ulonglong *)(lVar3 + -0x438)) << 0x29;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar28 ^ CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar8 = DAT_18267093c;
  uVar19 = CONCAT44(uVar9,uVar9);
  uVar28 = *(ulonglong *)(lVar3 + -0xc18) ^ uVar25 | uVar28;
  *(ulonglong *)(lVar3 + -0x400) = uVar28 ^ uVar19;
  uVar9 = DAT_182670a30;
  uVar23 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar32 ^ *(ulonglong *)(lVar3 + -0x588)) - uVar28 ^ uVar23;
  uVar21 = CONCAT44(uVar9,uVar9);
  uVar25 = CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar28 = *(ulonglong *)(lVar3 - (uVar34 ^ 0x44854589)) ^ uVar36 ^ *(ulonglong *)(lVar3 + -0x420) ^
           uVar21 ^ uVar29;
  *(ulonglong *)(lVar3 + -0x660) = uVar28;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707f4 ^ 0xb8eb61b7)) =
       (uVar28 ^ uVar21) >> ((bVar20 ^ 0x9b) & 0x3f) ^ uVar25;
  uVar11 = DAT_1826707d8;
  uVar32 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xd477b553)) =
       *(ulonglong *)(lVar3 + -0x400) ^ uVar19 | *puVar18 ^ uVar21;
  uVar28 = CONCAT44(DAT_182670804,DAT_182670804);
  *puVar16 = (uVar21 ^ *(ulonglong *)(lVar3 + -0x660)) << 0x18 ^ uVar28;
  uVar14 = DAT_1826707d8;
  uVar26 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  uVar28 = *(ulonglong *)(lVar3 + -0x7d8) ^ uVar28 | *(ulonglong *)(lVar3 + -0x4c8) ^ uVar25;
  uVar15 = DAT_1826707d8 << 0x10;
  uVar25 = uVar28 ^ uVar26;
  *(ulonglong *)(lVar3 + -0x220) = uVar25;
  uVar5 = DAT_1826707d8;
  lVar3 = DAT_1826707a0;
  uVar14 = (uVar15 | uVar14 & 0xff00) << 8 | uVar14 >> 8 & 0xff00 | DAT_1826707d8 >> 0x18;
  uVar36 = (ulonglong)uVar14;
  DAT_1826707c8 = uVar14;
  *puVar1 = CONCAT44(uVar6,uVar14) ^ *(ulonglong *)(DAT_1826707a0 + -0xce0) ^ 0xfc5cfda78e7df885;
  uVar21 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(lVar3 + -0x438) =
       (*(ulonglong *)(lVar3 - (uVar36 ^ 0xbb5ccbee)) ^ uVar29) - uVar28 ^ uVar21;
  uVar9 = DAT_182670960;
  puVar16 = (ulonglong *)(lVar3 - (uVar32 ^ 0xcecf5a03));
  uVar28 = uVar22 ^ *puVar16 ^ uVar25 ^ uVar26 ^ uVar23;
  *(ulonglong *)(lVar3 + -0xc18) = uVar28;
  uVar8 = DAT_1826708d0;
  uVar25 = (uVar22 ^ uVar28) >> (((byte)(uVar5 >> 0x18) ^ 0xfa) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar25 ^ CONCAT44(uVar9,uVar9);
  lVar3 = DAT_1826707a0;
  uVar22 = (uVar22 ^ uVar28) << (((byte)uVar11 ^ 0xb7) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar22 ^ CONCAT44(uVar8,uVar8);
  uVar28 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  *(ulonglong *)(lVar3 + -0xd88) = (uVar25 | uVar22) ^ uVar28;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xcecf5adb)) =
       (*puVar16 ^ uVar23) - (*(ulonglong *)(lVar3 - (uVar36 ^ 0xbb5cc246)) ^ uVar28) ^ uVar21;
  uVar8 = DAT_1826708c4;
  uVar19 = *(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xbb5ccbce)) ^
           *(ulonglong *)(lVar3 - (uVar32 ^ 0xcecf5883)) ^ uVar31 ^ uVar21 ^ uVar19;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar19;
  uVar22 = CONCAT44(uVar8,uVar8);
  uVar25 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar3 + -0x7d8) = (uVar19 >> 0x20 ^ (ulonglong)DAT_182670968) >> 0x19 ^ uVar22;
  uVar28 = (*(ulonglong *)(lVar3 - ((ulonglong)uVar14 ^ 0xbb5ccb06)) ^ uVar31) << 7;
  *(ulonglong *)(lVar3 + -0xce0) = uVar28 ^ uVar25;
  *puVar1 = (*(ulonglong *)(lVar3 - (uVar36 ^ 0xbb5cc816)) ^ uVar22 | uVar28) ^ uVar30;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar2 ^ uVar17;
  return;
}



############ FUN_ 180c9aca0 size=5202 ############

void FUN_180c9aca0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  uint uVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  uint uVar20;
  ulonglong uVar21;
  byte bVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong *puVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  
  uVar7 = DAT_1826707ec;
  uVar8 = DAT_1826707b4;
  uVar6 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar32 = (ulonglong)DAT_1826707a8;
  uVar23 = (ulonglong)DAT_1826707b4;
  uVar20 = DAT_1826707ec << 0x10 | DAT_1826707ec >> 0x10;
  uVar3 = *(uint *)(&DAT_18260f758 + DAT_182670d98);
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670d98) ^ DAT_1826707ec;
  uVar37 = DAT_1826707a8 + DAT_1826707b4;
  uVar21 = (ulonglong)DAT_1826707a8;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x6b8);
  uVar29 = CONCAT44(DAT_18267088c,DAT_18267088c);
  uVar26 = (CONCAT44(DAT_182670a50,DAT_182670a50) ^ *(ulonglong *)(DAT_1826707a0 + -0x68) |
           CONCAT44(DAT_1826709ac,DAT_1826709ac) ^ *(ulonglong *)(DAT_1826707a0 + -0xcf8)) ^ uVar29;
  uVar18 = CONCAT44(DAT_182670afc,DAT_182670afc);
  DAT_1826707c4 = uVar20;
  DAT_1826707cc = uVar37;
  *(ulonglong *)(DAT_1826707a0 + -0x890) = uVar26;
  uVar11 = DAT_182670ac0;
  uVar19 = CONCAT44(DAT_182670b04,DAT_182670b04);
  uVar33 = CONCAT44(DAT_182670984,DAT_182670984);
  uVar29 = *puVar1 ^ uVar19 ^ uVar18 ^ uVar26 ^ uVar29;
  *(ulonglong *)(lVar4 + -0xbb0) = uVar29;
  uVar9 = DAT_1826707ec;
  uVar41 = CONCAT44(uVar11,uVar11);
  uVar26 = (ulonglong)uVar37;
  *(ulonglong *)(lVar4 + -0x9e0) =
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0xe2728635)) ^ uVar33) + (uVar18 ^ uVar29) ^ uVar41;
  uVar11 = DAT_182670950;
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(DAT_1826707a0 + -0x630) =
       (uVar18 ^ uVar29) << (((byte)uVar8 ^ 0x1e) & 0x3f) ^ uVar30;
  lVar5 = DAT_1826707a0;
  bVar14 = (byte)uVar6;
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar34 = (ulonglong)uVar20;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xe2728a75)) =
       (uVar18 ^ uVar29) >> ((bVar14 ^ 0x3f) & 0x3f) ^ uVar27;
  puVar1 = (ulonglong *)(lVar5 + -0x658);
  *(ulonglong *)(lVar5 - (uVar23 ^ 0x79fbd580)) =
       (uVar41 ^ *(ulonglong *)(lVar5 + -0x9e0)) + (CONCAT44(uVar20,uVar37) ^ 0x73865473d7500614);
  uVar29 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar5 - (uVar34 ^ 0x472cc7e8)) =
       (uVar27 ^ *puVar1 | uVar30 ^ *(ulonglong *)(lVar5 + -0x630)) ^ uVar29;
  puVar2 = (ulonglong *)(lVar5 + -0xf0);
  uVar30 = CONCAT44(DAT_182670998,DAT_182670998);
  *puVar2 = *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xce204ee4)) ^ uVar30 ^ uVar29 ^ uVar41 ^
            *(ulonglong *)(lVar5 + -0x9e0);
  uVar16 = DAT_1826707ec;
  puVar36 = (ulonglong *)(lVar5 - (uVar21 ^ 0xe2728115));
  uVar38 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar21 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar24 = CONCAT44(uVar20,DAT_1826707ec);
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x79fbd088)) ^ uVar19) + (*puVar36 ^ uVar38) ^
       uVar21;
  uVar12 = DAT_1826709e4;
  lVar4 = DAT_1826707a0;
  bVar22 = (byte)uVar16;
  uVar28 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x79fbdcf0)) =
       (uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) << ((bVar22 ^ 0x20) & 0x3f) ^ uVar28;
  uVar11 = DAT_1826709cc;
  uVar19 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar4 + -0x588) =
       *(ulonglong *)(*(ulonglong *)(lVar4 - (uVar32 ^ 0xe2728f3d)) ^ CONCAT44(uVar12,uVar12)) ^
       uVar19;
  bVar17 = (byte)uVar37;
  uVar18 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar16 ^ 0xce204eb4)) =
       (uVar38 ^ *(ulonglong *)(lVar4 + -0xd38)) >> ((bVar17 ^ 0x69) & 0x3f) ^ uVar18;
  uVar11 = DAT_182670a34;
  *(ulonglong *)(lVar4 + -0x610) = *(ulonglong *)(*(ulonglong *)(lVar4 + -0xb08) ^ uVar33) ^ uVar19;
  uVar16 = DAT_182670934;
  uVar19 = CONCAT44(uVar11,uVar11);
  uVar18 = (*(ulonglong *)(lVar4 - (uVar26 ^ 0x5c6e689d)) ^ uVar28 |
           uVar18 ^ *(ulonglong *)(lVar4 + -0x998)) ^ uVar19;
  *(ulonglong *)(lVar4 + -0xd88) = uVar18;
  uVar10 = DAT_182670a1c;
  uVar25 = CONCAT44(uVar16,uVar16);
  uVar19 = *(ulonglong *)(lVar4 + -0x410) ^ uVar25 ^ uVar18 ^ uVar19 ^ uVar21;
  uVar18 = (ulonglong)DAT_182670a1c;
  *(ulonglong *)(lVar4 + -0x660) = uVar19;
  *(byte *)(lVar4 + -0x489) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar26 ^ 0x5c6e68b5)) ^ uVar18) ^ (byte)DAT_182670a40;
  uVar39 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x5c6e6ea5)) =
       (uVar25 ^ uVar19) + (uVar41 ^ *(ulonglong *)(lVar4 + -0x9e0)) ^ uVar39;
  lVar4 = DAT_1826707a0;
  bVar15 = (byte)(uVar7 >> 0x10);
  uVar27 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  uVar18 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  *(ulonglong *)(DAT_1826707a0 + -0x68) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x472cc840)) ^ uVar25) << ((bVar15 ^ 0x1a) & 0x3f)
       ^ uVar27;
  *(ulonglong *)(lVar4 - (uVar32 ^ 0xe27284bd)) =
       ((ulonglong)uVar16 << 0x1a | (ulonglong)(uVar16 >> 6)) ^ *(ulonglong *)(lVar4 + -0x660) >> 6
       ^ uVar18;
  uVar19 = CONCAT44(DAT_18267083c,DAT_18267083c);
  *(ulonglong *)(lVar4 + -0xa18) =
       (*(ulonglong *)(lVar4 + -0x890) ^ uVar18 | uVar27 ^ *(ulonglong *)(lVar4 + -0x68)) ^ uVar19;
  uVar11 = DAT_182670930;
  lVar5 = DAT_1826707a0;
  uVar42 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar4 + -0xbb0) =
       *(ulonglong *)(lVar4 - (uVar26 ^ 0x5c6e6845)) ^ *(ulonglong *)(lVar4 - (uVar23 ^ 0x79fbdac8))
       ^ uVar42 ^ uVar19 ^ uVar39;
  lVar4 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - (uVar26 ^ 0x5c6e61ed)) =
       (*(ulonglong *)(lVar5 - (uVar32 ^ 0xe2728cdd)) ^ uVar30) +
       (*(ulonglong *)(lVar5 + -0x410) ^ uVar21) ^ uVar19;
  uVar27 = (*puVar2 ^ uVar30) << (((byte)uVar8 ^ 0x26) & 0x3f);
  uVar30 = (*puVar2 ^ uVar30) >> ((bVar22 ^ 6) & 0x3f);
  uVar18 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *(ulonglong *)(lVar4 + -0x630) = uVar27 ^ CONCAT44(DAT_182670938,DAT_182670938);
  *puVar1 = uVar30 ^ uVar18;
  uVar11 = DAT_1826709d4;
  uVar18 = CONCAT44(DAT_182670810,DAT_182670810);
  uVar27 = (uVar30 | uVar27) ^ uVar18;
  uVar16 = DAT_1826707cc ^ 0x9b5f8de8;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar27;
  uVar7 = DAT_1826707ec;
  uVar41 = CONCAT44(uVar11,uVar11);
  uVar33 = CONCAT44(uVar10,uVar10);
  uVar27 = *(ulonglong *)(lVar4 + -0x3b0) ^ uVar41 ^ uVar18 ^ uVar19 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar27;
  *(uint *)(lVar4 + -0x43c) = uVar16 >> (((byte)uVar7 ^ 0x2b) & 0x1f);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xce2042a4)) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xe27280d5)) ^ uVar39) + (uVar41 ^ uVar27) ^ uVar33;
  uVar11 = DAT_182670acc;
  uVar30 = CONCAT44(DAT_182670a70,DAT_182670a70);
  *puVar36 = (*(ulonglong *)(lVar4 + -0x6b8) ^ uVar41) << (bVar15 & 0x3f) ^ uVar30;
  uVar18 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - (uVar26 ^ 0x5c6e64e5)) ^ uVar41) >> ((bVar22 ^ 0xc) & 0x3f) ^ uVar18;
  uVar11 = DAT_182670a00;
  *(ulonglong *)(lVar4 + -0xac0) =
       *(ulonglong *)(lVar4 + -0xcf8) ^ uVar39 | CONCAT44(uVar6,uVar8) ^ 0x49cf067038608edd;
  uVar12 = DAT_182670b00;
  lVar5 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar18 = (*(ulonglong *)(lVar4 - (uVar26 ^ 0x5c6e644d)) ^ uVar18 |
           *(ulonglong *)(lVar4 - (uVar34 ^ 0x472cc318)) ^ uVar30) ^ uVar27;
  *(ulonglong *)(lVar4 + -0x998) = uVar18;
  uVar16 = DAT_1826707e4;
  uVar41 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xd88) =
       uVar41 ^ uVar18 ^ uVar27 ^ uVar33 ^ *(ulonglong *)(lVar4 + -0x588);
  uVar11 = DAT_18267093c;
  uVar40 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar4 + -0x9e0) =
       (*(ulonglong *)(lVar4 + -0x3b0) ^ uVar19) + (*(ulonglong *)(lVar4 + -0xbb0) ^ uVar42) ^
       uVar40;
  uVar30 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x660) = (*(ulonglong *)(lVar4 + -0xbb0) ^ uVar42) << 0x20 ^ uVar30;
  uVar11 = DAT_182670898;
  uVar10 = DAT_1826707ec;
  uVar18 = *(ulonglong *)(lVar5 + -0xbb0);
  *(ulonglong *)(lVar4 + -0x68) =
       (CONCAT44(uVar6,DAT_1826707ec) ^ 0x1d79a945877f6c42) -
       (CONCAT44(uVar37,uVar20) ^ 0x362e32c0a245279d);
  uVar7 = DAT_1826707ac;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar16 ^ 0xc1803ca4)) =
       (uVar18 ^ uVar42) >> (((byte)DAT_1826707ac ^ 0x20) & 0x3f) ^ uVar19;
  uVar11 = DAT_182670894;
  lVar4 = DAT_1826707a0;
  uVar18 = uVar30 ^ *(ulonglong *)(lVar5 + -0x660);
  *(ulonglong *)(lVar5 + -0xa18) = uVar18 >> ((bVar17 ^ 0x79) & 0x3f);
  lVar5 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x472cca30)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x890) ^ uVar19 | uVar18) ^ uVar39;
  uVar18 = *(ulonglong *)(lVar5 + -0x410);
  uVar19 = *(ulonglong *)(lVar4 + -0x588);
  *puVar2 = CONCAT44(uVar9,uVar10) ^ uVar39 ^ uVar18 ^ 0xf31918931f1a8055;
  uVar27 = CONCAT44(DAT_182670964,DAT_182670964);
  *(int *)(lVar5 + -0xb54) = *(int *)(lVar5 + -0x14) << 0x15;
  uVar11 = DAT_1826709b8;
  uVar18 = uVar27 ^ uVar39 ^ uVar40 ^ uVar18 ^ *(ulonglong *)(lVar5 + -0x9e0);
  *(ulonglong *)(lVar5 + -0x630) = uVar18;
  uVar35 = CONCAT44(uVar11,uVar11);
  uVar42 = (CONCAT44(uVar7,DAT_1826707b8) ^ 0xfb9a3f6243bc7eb6) + (uVar18 ^ uVar27);
  *puVar1 = uVar42 ^ uVar35;
  uVar27 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  *(ulonglong *)(lVar4 + -0x9c8) =
       (CONCAT44(uVar9,uVar20) ^ 0xabd5eb373fc62fab) + (uVar33 ^ uVar19) ^ uVar27;
  uVar33 = CONCAT44(DAT_182670838,DAT_182670838);
  uVar18 = (ulonglong)DAT_1826707c0;
  uVar39 = (*(ulonglong *)(lVar4 - (uVar32 ^ 0xe27285e5)) ^ uVar27) + uVar42 ^ uVar33;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar39;
  uVar19 = (*(ulonglong *)(lVar4 - (uVar18 ^ 0xf7fcb9a7)) ^ uVar35) << 0xe;
  uVar27 = CONCAT44(DAT_182670a04,DAT_182670a04);
  *(ulonglong *)(lVar4 + -0xcf8) = uVar19 ^ uVar30;
  uVar9 = DAT_182670800;
  uVar42 = uVar42 >> ((bVar17 ^ 0x6f) & 0x3f);
  uVar18 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar4 + -0xac0) = uVar42 ^ uVar27;
  uVar16 = DAT_1826707dc;
  uVar35 = (ulonglong)DAT_1826707c8;
  uVar19 = (uVar42 | uVar19) ^ uVar18;
  *(ulonglong *)(lVar4 + -0xd38) = uVar19;
  lVar4 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x42012a75)) =
       uVar43 ^ uVar18 ^ uVar33 ^ uVar39 ^ uVar19;
  uVar11 = DAT_1826709f8;
  *(ulonglong *)(lVar4 + -0x998) = CONCAT44(uVar6,uVar8) ^ 0x1984b31f832520d4;
  uVar12 = DAT_182670a38;
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar19 = (CONCAT44(uVar7,uVar8) ^ 0xe65ce9eca998ecd8) + (uVar41 ^ *(ulonglong *)(lVar4 + -0xd88));
  *(ulonglong *)(lVar4 + -0x3b0) = uVar19 ^ uVar27;
  uVar6 = DAT_1826707d4;
  uVar30 = (uVar40 ^ *(ulonglong *)(lVar4 + -0x9e0)) + (uVar24 ^ 0xe5a584cbed497f61);
  *(ulonglong *)(lVar4 + -0x68) = uVar30 ^ CONCAT44(uVar12,uVar12);
  uVar8 = DAT_1826707d8;
  uVar41 = (ulonglong)DAT_1826707d8;
  uVar24 = CONCAT44(DAT_182670af0,DAT_182670af0);
  bVar15 = (byte)DAT_1826707b0;
  *(longlong *)(lVar4 + -0xbb0) = -0x72ed5c2794d12a08 << (((byte)uVar6 ^ 0xf3) & 0x3f);
  lVar5 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar4 + -0xa18) = uVar30 + uVar19 ^ uVar24;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0xb8b10660)) = uVar19 << ((bVar15 ^ 0x10) & 0x3f) ^ uVar21;
  uVar6 = DAT_182670a5c;
  uVar40 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  uVar19 = (*(ulonglong *)(lVar4 - (uVar41 ^ 0x407c2fb0)) ^ uVar27) >> ((bVar14 ^ 0x1d) & 0x3f);
  uVar18 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar4 + -0x890) = uVar19 ^ uVar40;
  uVar16 = DAT_1826707e8;
  uVar27 = (ulonglong)DAT_1826707e8;
  uVar19 = (uVar21 ^ *(ulonglong *)(lVar4 + -0x660) | uVar19) ^ uVar18;
  *puVar2 = uVar19;
  lVar4 = DAT_1826707a0;
  puVar31 = (ulonglong *)(lVar5 - (uVar27 ^ 0x727d24e5));
  uVar19 = CONCAT44(uVar6,uVar6) ^ uVar18 ^ uVar24 ^ uVar19 ^ *puVar31;
  puVar36 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0xff77f993));
  *(ulonglong *)(DAT_1826707a0 + -0x410) = uVar19;
  uVar11 = DAT_182670974;
  uVar19 = CONCAT44(uVar6,uVar6) ^ uVar19;
  *(ulonglong *)(lVar4 + -0x630) =
       *puVar36 >> 2 ^ ((ulonglong)uVar9 << 0x1e | (ulonglong)(uVar9 >> 2));
  uVar12 = DAT_1826709f0;
  uVar27 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 + -0x588) = (uVar33 ^ *(ulonglong *)(lVar4 + -0x6b8)) + uVar19 ^ uVar27;
  uVar18 = (ulonglong)DAT_1826707ac;
  uVar30 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xcf83f4af)) = uVar19 << 0x34 ^ uVar30;
  *(longlong *)(lVar4 - (uVar18 ^ 0xb8b10658)) = -0x74eaaeef4eaf9e4b << (((byte)uVar8 ^ 9) & 0x3f);
  uVar18 = ((ulonglong)uVar6 << 0x14 | (ulonglong)(uVar6 >> 0xc)) ^
           *(ulonglong *)(lVar4 + -0x410) >> 0xc;
  uVar19 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar4 + -0xcf8) = uVar18 ^ CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar18 = (uVar30 ^ *(ulonglong *)(lVar4 + -0x9c8) | uVar18) ^ uVar19;
  uVar42 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(lVar4 + -0xac0) = uVar18;
  uVar39 = uVar43 ^ *(ulonglong *)(lVar4 + -0x610);
  *(ulonglong *)(lVar4 + -0xd38) =
       uVar42 ^ uVar19 ^ uVar27 ^ uVar18 ^ *(ulonglong *)(lVar4 + -0x588);
  uVar33 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar4 + -0x998) = (uVar24 ^ *(ulonglong *)(lVar4 + -0xa18)) + uVar39 ^ uVar33;
  uVar11 = DAT_182670a80;
  uVar6 = DAT_1826707dc;
  uVar39 = uVar39 << ((bVar17 ^ 100) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd88) = uVar39 ^ uVar29;
  uVar8 = DAT_1826707e0;
  uVar21 = (ulonglong)DAT_1826707e0;
  uVar19 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0x79fbd020)) ^ uVar43) >> (((byte)uVar6 ^ 0x62) & 0x3f)
  ;
  *(ulonglong *)(lVar4 + -0x9e0) = uVar19 ^ CONCAT44(uVar11,uVar11);
  uVar18 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x407c27b0)) = (uVar19 | uVar39) ^ uVar40;
  *(ulonglong *)(lVar4 - (uVar18 ^ 0xce204744)) =
       uVar33 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0xbb0) ^ uVar38 ^ *(ulonglong *)(lVar4 + -0x998);
  uVar39 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar19 = (ulonglong)DAT_1826707c0;
  uVar41 = CONCAT44(DAT_182670968,DAT_182670968);
  *(ulonglong *)(lVar4 + -0x3b0) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xe2728c45)) ^ uVar38) +
       (*(ulonglong *)(lVar4 - (uVar21 ^ 0x394f6188)) ^ uVar27) ^ uVar39;
  *(ulonglong *)(lVar4 + -0x660) = (*(ulonglong *)(lVar4 + -0x68) ^ uVar38) << 0x17 ^ uVar41;
  *(int *)(lVar4 + -0x814) = 0x71ca0dc7 << ((byte)*(undefined4 *)(lVar4 + -0xc0c) & 0x1f);
  uVar9 = DAT_1826707f4;
  uVar29 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar24 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d4 ^ 0x8c83d86f)) =
       (*(ulonglong *)(lVar4 + -0x68) ^ uVar38) >> (((byte)uVar16 ^ 0xd4) & 0x3f) ^ uVar29;
  lVar4 = DAT_1826707a0;
  uVar18 = *(ulonglong *)(DAT_1826707a0 + -0x890);
  *puVar2 = CONCAT44(uVar9,DAT_1826707ac) ^ CONCAT44(uVar6,uVar6) ^ 0x8a3d9a6fb0c1a797;
  uVar27 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x472cc810)) =
       (uVar29 ^ uVar18 | uVar41 ^ *(ulonglong *)(lVar4 + -0x660)) ^ uVar27;
  *(ulonglong *)(lVar4 + -0x6b8) =
       CONCAT44(uVar7,DAT_1826707d0) ^ uVar41 ^ *(ulonglong *)(lVar4 + -0x660) ^ 0x631688be6b290bd9;
  uVar29 = (ulonglong)DAT_1826707b0;
  uVar18 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x8034658)) =
       *(ulonglong *)(lVar4 - (uVar19 ^ 0xf7fcbc4f)) ^ uVar39 ^ uVar30 ^
       *(ulonglong *)(lVar4 + -0x630) ^ uVar27;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar18 ^ 0x3434c818)) ^ uVar33) +
       (uVar42 ^ *(ulonglong *)(DAT_1826707a0 + -0xd38)) ^ uVar27;
  uVar19 = CONCAT44(DAT_1826709e8,DAT_1826709e8);
  *(ulonglong *)(lVar4 + -0xcf8) =
       (uVar42 ^ *(ulonglong *)(lVar4 + -0xd38)) >> (((byte)uVar8 ^ 0x18) & 0x3f) ^ uVar25;
  uVar11 = DAT_182670a6c;
  *(ulonglong *)(lVar4 + -0x9c8) =
       (uVar42 ^ *(ulonglong *)(lVar4 + -0xd38)) << ((bVar14 ^ 5) & 0x3f) ^ uVar19;
  uVar18 = CONCAT44(uVar11,uVar11);
  uVar41 = (ulonglong)DAT_1826708e8;
  uVar33 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  *(ulonglong *)(lVar4 - (uVar21 ^ 0x394f6ec0)) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x472cc2d8)) ^ uVar25 |
       *(ulonglong *)(lVar4 - (uVar24 ^ 0xc17c25c8)) ^ uVar19) ^ uVar18;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x8034a18)) =
       *(ulonglong *)(lVar4 + -0xac0) ^ *(ulonglong *)(lVar4 + -0x410) ^ uVar33 ^ uVar18 ^ uVar27;
  uVar18 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar4 + -0xc04) = DAT_1826707ac ^ 0xa05b6e0b | DAT_1826707ec ^ 0xc1fd5829;
  uVar19 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707bc ^ 0xb99e233d)) =
       (*(ulonglong *)(lVar4 - (uVar18 ^ 0x25502b4)) ^ uVar33) +
       (uVar39 ^ *(ulonglong *)(lVar4 + -0x3b0)) ^ uVar19;
  uVar11 = DAT_182670ad8;
  uVar33 = (*(ulonglong *)(lVar4 + -0xa18) ^ uVar33) << (((byte)DAT_1826707dc ^ 0x60) & 0x3f);
  *(ulonglong *)(lVar4 + -0xd88) = uVar33 ^ uVar28;
  uVar12 = DAT_1826709f4;
  uVar18 = (*puVar31 >> 0x20 ^ uVar41) >> 0x1b;
  uVar29 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar4 + -0x9e0) = uVar18 ^ CONCAT44(uVar11,uVar11);
  uVar18 = (uVar33 | uVar18) ^ uVar29;
  *(ulonglong *)(lVar4 + -0xbb0) = uVar18;
  uVar11 = DAT_18267096c;
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x79fbd3b8)) =
       CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar4 + -0x610) ^ uVar18 ^ uVar29 ^ uVar19;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x5c6e6235)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0xc180326c)) ^ uVar30) +
       (*(ulonglong *)(lVar4 + -0x410) ^ uVar27) ^ uVar42;
  *puVar2 = (uVar30 ^ *puVar1) << (((byte)DAT_1826707d4 ^ 0xda) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar3 ^ uVar20;
  return;
}



############ FUN_ 180d41e20 size=5571 ############

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

void FUN_180d41e20(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  ulonglong *puVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_f8;
  byte local_f0;
  byte local_c8;
  
  uVar8 = DAT_1826707d8;
  uVar7 = DAT_1826707d0;
  uVar20 = DAT_1826707bc;
  uVar3 = DAT_1826707b0;
  lVar1 = DAT_1826707a0;
  DAT_1826707c0 = DAT_1826707e0 * DAT_1826707cc;
  uVar17 = DAT_1826707d4 & 7;
  if (uVar17 < 4) {
    if (uVar17 < 2) {
      DAT_1826707dc = DAT_1826707b4;
      if (uVar17 == 0) {
        DAT_1826707dc = DAT_1826707d4;
      }
    }
    else {
      DAT_1826707dc = DAT_1826707f4;
      if (uVar17 < 3) {
        DAT_1826707dc = DAT_1826707c4;
      }
    }
  }
  else if (uVar17 < 6) {
    DAT_1826707dc = DAT_1826707b8;
    if (uVar17 < 5) {
      DAT_1826707dc = DAT_1826707e8;
    }
  }
  else {
    DAT_1826707dc = DAT_1826707ec;
    if (uVar17 < 7) {
      DAT_1826707dc = DAT_1826707a8;
    }
  }
  uVar28 = (ulonglong)DAT_1826707b0;
  uVar36 = DAT_1826707d8 - DAT_1826707b0;
  uVar27 = DAT_1826707bc * DAT_1826707d0;
  uVar18 = *(uint *)(&DAT_18260f758 + DAT_182670ca0) ^ DAT_1826707d8;
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670ca0) ^ DAT_1826707b0;
  uVar19 = DAT_1826707d8 ^ DAT_1826707b4;
  uVar23 = (ulonglong)uVar19;
  uVar32 = CONCAT44(DAT_182670818,DAT_182670818);
  uVar24 = CONCAT44(DAT_182670acc,DAT_182670acc);
  uVar43 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  DAT_1826707e4 = uVar19;
  DAT_1826707f0 = uVar27;
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x4303fb97)) =
       (uVar24 ^ *(ulonglong *)(DAT_1826707a0 + -0x660)) -
       (uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0)) ^ uVar43;
  uVar38 = CONCAT44(DAT_18267087c,DAT_18267087c);
  uVar44 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar42 = (ulonglong)uVar8;
  puVar21 = (ulonglong *)(lVar1 - (uVar42 ^ 0xcf01f0ab));
  uVar37 = CONCAT44(DAT_182670a94,DAT_182670a94);
  uVar31 = uVar44 ^ uVar38 ^ uVar32 ^ *puVar21 ^ *(ulonglong *)(lVar1 + -0xce0);
  uVar32 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar1 + -0x400) = uVar31;
  uVar11 = DAT_18267084c;
  uVar33 = (*(ulonglong *)(lVar1 - (uVar32 ^ 0x8c020c44)) ^ uVar38) >>
           (((byte)uVar36 ^ 0x10) & 0x3f);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar33 ^ uVar37;
  uVar12 = DAT_182670a14;
  lVar1 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar37 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (uVar38 ^ uVar31) << (((byte)uVar20 ^ 0xbc) & 0x3f) ^ uVar25;
  uVar13 = DAT_182670b00;
  uVar11 = DAT_182670adc;
  lVar2 = DAT_1826707a0;
  uVar39 = CONCAT44(uVar12,uVar12);
  uVar32 = *(ulonglong *)(DAT_1826707a0 + -0x588);
  uVar33 = *(ulonglong *)(lVar1 - (uVar37 ^ 0xfceb6077)) ^ uVar25 | uVar33;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar33 ^ uVar39;
  uVar10 = DAT_1826707f4;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xc18) = (uVar44 ^ uVar32) - uVar33 ^ uVar38;
  uVar11 = DAT_1826708b8;
  uVar4 = DAT_1826707b8;
  *(ulonglong *)(lVar2 + -0x660) = CONCAT44(uVar10,uVar8) ^ 0xf365a82e7aab3483 | uVar33;
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar32 = *(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xc020ef0)) ^ CONCAT44(uVar13,uVar13) ^ uVar33
           ^ uVar43 ^ *(ulonglong *)(lVar2 + -0x220);
  uVar31 = CONCAT44(DAT_182670994,DAT_182670994);
  bVar16 = (byte)DAT_1826707ec;
  *(ulonglong *)(lVar2 + -0xce0) = uVar32;
  uVar6 = DAT_1826707dc;
  uVar5 = DAT_1826707d4;
  uVar17 = DAT_1826707a8;
  *(ulonglong *)(lVar2 + -0x400) = (uVar32 ^ uVar33) >> ((bVar16 ^ 0xc6) & 0x3f) ^ uVar31;
  uVar9 = DAT_1826707e8;
  uVar25 = CONCAT44(DAT_182670944,DAT_182670944);
  uVar37 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfbfff147)) =
       (uVar33 ^ uVar32) << (((byte)uVar5 ^ 0x70) & 0x3f) ^ uVar25;
  uVar5 = DAT_1826707c4;
  uVar33 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar32 = (ulonglong)DAT_1826707c4;
  uVar37 = *(ulonglong *)(lVar2 - (uVar37 ^ 0xab381731)) ^ uVar25 |
           *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x43149680)) ^ uVar31;
  uVar25 = uVar37 ^ uVar33;
  puVar26 = (ulonglong *)(lVar2 - (uVar32 ^ 0xadc360e));
  *(ulonglong *)(lVar2 + -0xd88) = uVar25;
  uVar30 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *(ulonglong *)(lVar2 + -0x588) =
       (uVar43 ^ *puVar26) - (*(ulonglong *)(lVar2 - ((ulonglong)uVar20 ^ 0x600a0538)) ^ uVar33) ^
       uVar30;
  uVar11 = DAT_1826709a0;
  *(ulonglong *)(lVar2 + -0x660) = uVar37 + (uVar38 ^ *(ulonglong *)(lVar2 + -0xc18));
  uVar9 = DAT_1826707e0;
  uVar6 = DAT_1826707cc;
  lVar1 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar11,uVar11);
  uVar37 = (ulonglong)DAT_1826707cc;
  puVar22 = (ulonglong *)(lVar2 - (uVar37 ^ 0x44854419));
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e0 ^ 0xcc5c8ba9)) =
       uVar34 ^ uVar33 ^ uVar38 ^ *puVar22 ^ uVar25;
  uVar31 = CONCAT44(DAT_182670824,DAT_182670824);
  local_f8 = (byte)uVar6;
  *(ulonglong *)(lVar1 + -0xce0) =
       (uVar34 ^ *(ulonglong *)(lVar1 + -0x220)) >> (((byte)uVar4 ^ 0xbe) & 0x3f) ^ uVar31;
  uVar33 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar25 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0x4303f967)) =
       (uVar34 ^ *(ulonglong *)(lVar1 + -0x220)) << ((local_f8 ^ 0x33) & 0x3f) ^ uVar33;
  uVar35 = CONCAT44(DAT_18267094c,DAT_18267094c);
  *(ulonglong *)(lVar1 - (uVar25 ^ 0x7b3c2acf)) =
       (uVar33 ^ *(ulonglong *)(lVar1 + -0x400) | uVar31 ^ *(ulonglong *)(lVar1 + -0xce0)) ^ uVar35;
  uVar31 = (ulonglong)DAT_1826707b4;
  uVar25 = CONCAT44(uVar17,DAT_1826707b4);
  uVar40 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar1 - (uVar32 ^ 0xadc369e)) =
       (uVar38 ^ *(ulonglong *)(lVar1 + -0xc18)) - (uVar25 ^ 0x1b2f84a1f4e8e9cf) ^ uVar40;
  uVar12 = DAT_182670a10;
  *(uint *)(lVar1 + -0xc34) = (uVar7 ^ 0x3674c280) + (uVar3 ^ 0x199617b9);
  uVar11 = DAT_1826708e4;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0xd88) =
       (*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707f4 ^ 0x30fe0cbc)) ^ uVar40) -
       (uVar35 ^ *(ulonglong *)(lVar1 + -0x6b8)) ^ uVar34;
  uVar6 = DAT_1826707ec;
  uVar4 = DAT_1826707dc;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar32 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0x8c0204a4)) =
       (uVar35 ^ *(ulonglong *)(lVar1 + -0x6b8)) -
       (CONCAT44(DAT_1826707ec,uVar9) ^ 0xb8d4c89dbbd436bf) ^ uVar29;
  *(ulonglong *)(lVar1 - (uVar32 ^ 0x7eda2cba)) =
       CONCAT44(uVar8,uVar27) ^ 0xbd23d04312390a9b | uVar40 ^ *(ulonglong *)(lVar1 + -0x660);
  uVar31 = uVar30 ^ uVar39 ^ *(ulonglong *)(lVar1 + -0x7d8) ^ *(ulonglong *)(lVar1 + -0x588);
  *(ulonglong *)(lVar1 + -0xc18) = uVar31 ^ CONCAT44(DAT_182670938,DAT_182670938);
  *(ulonglong *)(lVar1 + -0x220) =
       (uVar43 ^ *(ulonglong *)(lVar1 + -0x6f0)) - (*(ulonglong *)(lVar1 + -0xce0) ^ uVar29);
  uVar38 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar32 = uVar31 >> (((byte)uVar20 ^ 0xa0) & 0x3f);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar32 ^ uVar38;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar32 ^ uVar40 ^ *(ulonglong *)(lVar1 + -0x660);
  uVar11 = DAT_182670b08;
  uVar32 = CONCAT44(DAT_182670a74,DAT_182670a74);
  local_c8 = (byte)uVar5;
  puVar41 = (ulonglong *)(lVar1 - (uVar37 ^ 0x44854eb9));
  *(ulonglong *)(lVar1 + -0x6f0) = uVar31 << ((local_c8 ^ 0xce) & 0x3f) ^ uVar32;
  uVar40 = CONCAT44(uVar11,uVar11);
  uVar35 = *(ulonglong *)(lVar1 - (uVar28 ^ 0xefdfd90f)) ^ uVar32 | *puVar41 ^ uVar38;
  puVar15 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x43149708));
  *(ulonglong *)(lVar1 + -0x220) = uVar35 ^ uVar40;
  lVar1 = DAT_1826707a0;
  uVar32 = (*puVar15 ^ uVar30) - (CONCAT44(DAT_1826707d4,uVar19) ^ 0xd9b5669c606ac52a);
  uVar38 = CONCAT44(uVar7,DAT_1826707b8);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar32 ^ uVar43;
  uVar31 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar32 - uVar35 ^ uVar24;
  uVar35 = (ulonglong)DAT_1826707f4;
  uVar30 = CONCAT44(uVar17,DAT_1826707f4);
  *(ulonglong *)(lVar1 - (uVar31 ^ 0xab381d91)) =
       (uVar38 ^ 0x6b322b4e80746553) + *(longlong *)(lVar1 + -0x400);
  uVar32 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707b4 ^ 0x8c020efc)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar36 ^ 0xdf221704)) ^ uVar40) +
       (uVar30 ^ 0xdfc83ea91f62cfc4) ^ uVar32;
  uVar31 = CONCAT44(DAT_182670810,DAT_182670810);
  uVar38 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  uVar32 = *puVar41 ^ uVar31 ^ uVar32 ^ uVar34 ^ *(ulonglong *)(lVar1 + -0xd88);
  *(ulonglong *)(lVar1 + -0x6f0) = uVar32;
  local_f0 = (byte)uVar8;
  *(ulonglong *)(lVar1 + -0x588) = (uVar32 ^ uVar31) >> (((byte)uVar3 ^ 0xdf) & 0x3f) ^ uVar38;
  uVar3 = DAT_1826707e0;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707ac ^ 0xfceb6b9f)) =
       (CONCAT44(uVar10,DAT_1826707ec) ^ 0x197809fbc7607cd5) >> ((local_f0 ^ 0x19) & 0x3f);
  uVar32 = (*(ulonglong *)(lVar1 + -0x6f0) ^ uVar31) << (((byte)uVar3 ^ 0xa9) & 0x3f);
  *(ulonglong *)(lVar1 + -0x400) = uVar32 ^ CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar1 + -0xc18) = CONCAT44(uVar27,uVar7) ^ 0xf175dc9e7a797771 | 0xb1311c9220497770;
  uVar11 = DAT_182670af4;
  puVar41 = (ulonglong *)(lVar1 - (uVar23 ^ 0x4303f8ef));
  uVar32 = *puVar41 ^ uVar38 | uVar32;
  *(ulonglong *)(lVar1 + -0x220) = uVar32 ^ uVar44;
  uVar23 = (ulonglong)DAT_182670a24;
  uVar31 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar43 = (ulonglong)DAT_182670930;
  uVar40 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar1 - (uVar28 ^ 0xefdfd947)) =
       (uVar34 ^ *(ulonglong *)(lVar1 + -0xd88)) - uVar32 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x660) =
       uVar24 ^ *(ulonglong *)(lVar1 + -0x7d8) ^ *(ulonglong *)(lVar1 + -0xce0) ^ uVar31 ^ uVar29;
  uVar32 = (ulonglong)DAT_1826707d4;
  *(uint *)(lVar1 - (uVar35 ^ 0x30fe0944)) =
       *(uint *)(lVar1 + -0xaf0) & (DAT_1826707c4 ^ 0x1db81c48);
  uVar12 = DAT_182670970;
  uVar31 = (uVar31 ^ *(ulonglong *)(lVar1 + -0x660)) << 0x20;
  uVar38 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar32 = *(ulonglong *)(lVar1 - (uVar32 ^ 0x7b3c2a17));
  *(ulonglong *)(lVar1 + -0xc18) = uVar31 ^ uVar40;
  uVar23 = uVar32 >> 0x20 ^ uVar38 ^ uVar23;
  uVar34 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0x6f0) = uVar23;
  lVar2 = DAT_1826707a0;
  uVar31 = uVar23 ^ uVar38 | uVar31;
  uVar32 = uVar31 ^ uVar34;
  *(ulonglong *)(lVar1 + -0x400) = uVar32;
  uVar11 = DAT_182670964;
  *(ulonglong *)(lVar1 + -0xd88) = (uVar24 ^ *(ulonglong *)(lVar1 + -0x7d8)) - uVar31 ^ uVar33;
  uVar24 = CONCAT44(uVar11,uVar11);
  uVar32 = *(ulonglong *)(lVar1 + -0x6b8) ^ uVar24 ^ uVar34 ^ uVar30 ^ uVar32;
  *(ulonglong *)(lVar2 + -0xce0) = uVar32;
  uVar3 = DAT_1826707ec;
  uVar17 = DAT_1826707e8;
  *(ulonglong *)(lVar2 + -0x660) =
       (CONCAT44(uVar4,DAT_1826707e8) ^ 0x1e445f2da7a6f8c2) -
       (CONCAT44(uVar19,uVar36) ^ 0x677963370840f00e);
  lVar1 = DAT_1826707a0;
  uVar31 = (*(ulonglong *)(DAT_1826707a0 + -0xce0) ^ uVar24) >> (((byte)uVar3 ^ 0xc5) & 0x3f);
  uVar23 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar31 ^ CONCAT44(DAT_182670848,DAT_182670848);
  uVar32 = (uVar32 ^ uVar24) << ((local_f8 ^ 7) & 0x3f);
  uVar29 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(lVar1 + -0xc18) = uVar32 ^ uVar23;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0x43149470)) = (uVar32 | uVar31) ^ uVar29;
  uVar11 = DAT_18267091c;
  uVar23 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar1 + -0x7d8) =
       (*(ulonglong *)(lVar1 + -0x6b8) ^ uVar30) - (*puVar26 ^ uVar29) ^ uVar23;
  uVar13 = DAT_182670ad8;
  uVar32 = (ulonglong)DAT_1826707dc;
  uVar38 = CONCAT44(uVar11,uVar11);
  uVar24 = uVar33 ^ uVar44 ^ uVar38 ^ *(ulonglong *)(lVar1 + -0x220) ^
           *(ulonglong *)(lVar1 + -0xd88);
  *(ulonglong *)(lVar1 + -0x660) = uVar24;
  uVar11 = _DAT_1826708c8;
  uVar3 = DAT_1826707b4;
  lVar1 = DAT_1826707a0;
  bVar16 = (byte)uVar17;
  uVar31 = (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0xfbfff19f)) ^ uVar38) >>
           ((bVar16 ^ 0x96) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar31 ^ CONCAT44(uVar13,uVar13);
  uVar13 = DAT_182670a40;
  uVar24 = (uVar38 ^ uVar24) << ((bVar16 ^ 0xaa) & 0x3f);
  uVar32 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar1 + -0x588) = uVar24 ^ CONCAT44(uVar11,uVar11);
  lVar1 = DAT_1826707a0;
  uVar24 = uVar24 | uVar31;
  uVar31 = CONCAT44(uVar13,uVar13);
  puVar15 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  uVar38 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar24 ^ uVar31;
  *(ulonglong *)(lVar1 + -0x6b8) = (uVar33 ^ *puVar15) - uVar24 ^ uVar38;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar27 ^ 0xa1a58220)) =
       (uVar34 ^ *(ulonglong *)(lVar1 + -0x400)) >>
       ((*(byte *)(lVar1 - (uVar32 ^ 0x600a0cb0)) ^ (byte)uVar12) & 0x3f);
  uVar34 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  uVar32 = *(ulonglong *)(lVar1 + -0x7d8) ^ uVar31 ^ uVar23 ^ uVar40 ^
           *(ulonglong *)(lVar1 + -0xc18);
  *(ulonglong *)(lVar1 + -0x660) = uVar32;
  uVar31 = (uVar32 >> 0x20 ^ uVar43) >> 0xe;
  *(ulonglong *)(lVar1 + -0xce0) = uVar31 ^ uVar39;
  uVar11 = DAT_1826708d0;
  *(ulonglong *)(lVar1 + -0x588) = **(ulonglong **)(lVar1 + -0xc0) ^ uVar34;
  lVar2 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707a8;
  uVar33 = (uVar40 ^ uVar32) << 0x12;
  uVar35 = CONCAT44(DAT_182670900,DAT_182670900);
  *(ulonglong *)(lVar1 + -0xd88) = uVar33 ^ CONCAT44(uVar11,uVar11);
  uVar4 = DAT_1826707d4;
  uVar32 = CONCAT44(uVar8,DAT_1826707d4);
  *(ulonglong *)(lVar1 + -0x400) = (uVar31 | uVar33) ^ uVar35;
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x7eda2a9a)) = (uVar32 ^ 0x47f28693162d799b) + 0xf0e1458356c5fc6c
  ;
  uVar31 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e0 ^ 0xcc5c8591)) =
       (*(ulonglong *)(lVar1 + -0x7d8) ^ uVar23) - (uVar35 ^ *(ulonglong *)(lVar1 + -0x400)) ^
       uVar31;
  uVar17 = DAT_1826707c0;
  uVar30 = CONCAT44(DAT_182670898,DAT_182670898);
  uVar23 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707f4 ^ 0x30fe0c64)) ^ uVar30 ^ uVar38 ^
           uVar29 ^ *(ulonglong *)(lVar2 + -0x6f0);
  uVar32 = CONCAT44(uVar7,uVar36) ^ 0x45486abc9566c7c1 | *(ulonglong *)(lVar2 + -0x6b8) ^ uVar38;
  *(ulonglong *)(lVar2 + -0x588) = uVar23;
  *(ulonglong *)(lVar2 + -0x660) = uVar32;
  lVar1 = DAT_1826707a0;
  uVar33 = (uVar23 ^ uVar30) >> (((byte)uVar17 ^ 0x85) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar33 ^ uVar34;
  *(ulonglong *)(lVar1 + -0xd88) = CONCAT44(uVar8,uVar7) ^ uVar32 ^ 0xe2488d9c173a5854;
  uVar11 = DAT_18267093c;
  uVar32 = CONCAT44(DAT_18267089c,DAT_18267089c);
  *(ulonglong *)(lVar1 + -0x220) = (uVar23 ^ uVar30) << 0x34 ^ uVar32;
  uVar5 = _DAT_182670b10;
  lVar1 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar11,uVar11);
  uVar23 = (ulonglong)_DAT_182670b10;
  uVar29 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x7eda2f62)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707dc ^ 0xfbfff5df)) ^ uVar32 | uVar33) ^
       uVar30;
  uVar11 = DAT_182670a98;
  uVar24 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar1 + -0x6f0) =
       (*(ulonglong *)(lVar1 + -0x6b8) ^ uVar38) - (*(ulonglong *)(lVar1 + -0x7d8) ^ uVar30) ^
       uVar24;
  uVar33 = *(ulonglong *)(lVar1 + -0x7d8) ^ uVar29 ^ uVar30 ^ uVar31 ^
           *(ulonglong *)(lVar1 + -0xc18);
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0xd88) = uVar33;
  uVar11 = DAT_18267098c;
  *(ulonglong *)(lVar1 + -0x660) =
       *(ulonglong *)(lVar1 - (uVar37 ^ 0x44854589)) >> 0x19 ^
       ((ulonglong)(uVar5 >> 0x19) | uVar23 << 7) ^ uVar38;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0xab381401)) = (uVar29 ^ uVar33) << 0x27 ^ uVar32;
  *(ulonglong *)(lVar1 - (uVar28 ^ 0xefdfd31f)) =
       (*(ulonglong *)(lVar1 + -0x588) ^ uVar32 | uVar38 ^ *(ulonglong *)(lVar1 + -0x660)) ^ uVar44;
  uVar37 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(lVar1 + -0x220) =
       (uVar29 ^ *(ulonglong *)(lVar1 + -0xd88)) - (CONCAT44(uVar6,uVar4) ^ 0xafbab14e45803b42);
  uVar11 = DAT_1826709a4;
  uVar32 = (*puVar22 ^ uVar31) - (CONCAT44(uVar8,uVar36) ^ 0xf01e23ddd68c8906);
  *(ulonglong *)(lVar1 + -0x6b8) = uVar32 ^ uVar37;
  uVar12 = DAT_182670a70;
  lVar1 = DAT_1826707a0;
  uVar23 = CONCAT44(uVar11,uVar11);
  puVar15 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       uVar32 - (uVar44 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0)) ^ uVar23;
  uVar11 = DAT_1826709e8;
  uVar38 = CONCAT44(uVar12,uVar12);
  bVar16 = (byte)DAT_1826707c0;
  *(ulonglong *)(lVar1 + -0x660) =
       (uVar44 ^ *puVar15) - (CONCAT44(uVar3,DAT_1826707ec) ^ 0x579061d1df4fc460) ^ uVar38;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar33 = CONCAT44(DAT_182670a44,DAT_182670a44);
  uVar37 = uVar31 ^ uVar24 ^ uVar35 ^ *(ulonglong *)(lVar1 + -0x6f0) ^
           *(ulonglong *)(lVar1 + -0x400);
  *(ulonglong *)(lVar1 + -0x588) = uVar37;
  uVar32 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e8 ^ 0x43149f08)) =
       (uVar37 ^ uVar31) >> ((bVar16 ^ 0xa8) & 0x3f) ^ uVar33;
  uVar11 = DAT_182670850;
  *(ulonglong *)(lVar1 + -0x220) =
       *(ulonglong *)(lVar1 - (uVar32 ^ 0x8c020dcc)) ^ uVar31 |
       CONCAT44(uVar7,uVar20) ^ 0x14da38cf38530591;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 + -0xc18) = (*(ulonglong *)(lVar1 + -0x588) ^ uVar31) << 0x1f ^ uVar32;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar36 ^ 0xdf22139c)) =
       (*puVar41 ^ uVar31) + (uVar25 ^ 0xc3986d7f5b89b34e);
  uVar11 = DAT_18267095c;
  uVar20 = DAT_1826707d8 << 0x10 | DAT_1826707d8 >> 0x10;
  uVar31 = CONCAT44(DAT_182670998,DAT_182670998);
  DAT_1826707c8 = uVar20;
  *(ulonglong *)(lVar1 + -0xce0) =
       (uVar32 ^ *(ulonglong *)(lVar1 + -0xc18) | uVar33 ^ *(ulonglong *)(lVar1 + -0xd88)) ^ uVar31;
  uVar32 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar1 - (uVar42 ^ 0xcf01f123)) =
       (*(ulonglong *)(lVar1 - (uVar42 ^ 0xcf01f3d3)) ^ uVar24) -
       (CONCAT44(uVar20,uVar8) ^ 0xb608f063b8894a15) ^ uVar32;
  uVar25 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar37 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar1 + -0x220) =
       (uVar32 ^ *(ulonglong *)(lVar1 + -0x400)) -
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0xf523c3e1)) ^ uVar31) ^ uVar25;
  uVar3 = DAT_182670940;
  uVar24 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0xf523ca89)) =
       (*(ulonglong *)(lVar1 - (uVar42 ^ 0xcf01f9c3)) ^ uVar31) +
       (CONCAT44(uVar8,uVar20) ^ 0x950ae21e71fc4631) ^ uVar37;
  uVar31 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar32 = *puVar21 ^ *(ulonglong *)(lVar1 + -0x7d8) ^ uVar24 ^ uVar37 ^ uVar23;
  *(ulonglong *)(lVar1 + -0x6b8) = uVar32;
  uVar37 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar1 + -0xd88) =
       ((ulonglong)uVar3 << 0x1b | (ulonglong)(uVar3 >> 5)) ^
       *(ulonglong *)(lVar1 - (uVar42 ^ 0xcf01f39b)) >> 5 ^ uVar31;
  uVar42 = (uVar24 ^ uVar32) << ((local_c8 ^ 0xc5) & 0x3f);
  *(ulonglong *)(lVar1 + -0xc18) = uVar42 ^ uVar34;
  uVar42 = *(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0xf523c289)) ^ uVar31 | uVar42;
  uVar32 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar1 + -0x6f0) = uVar42 ^ uVar37;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar20 ^ 0xf523cb01)) =
       (*(ulonglong *)(lVar1 + -0x7d8) ^ uVar23) - uVar42 ^ uVar32;
  uVar23 = CONCAT44(DAT_182670808,DAT_182670808);
  uVar37 = (ulonglong)DAT_1826707dc;
  uVar32 = *(ulonglong *)(lVar1 + -0x220);
  uVar42 = *(ulonglong *)(lVar1 + -0x660);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar18;
  *(ulonglong *)(lVar1 - (uVar37 ^ 0xfbfffb1f)) = uVar23 ^ uVar25 ^ uVar38 ^ uVar32 ^ uVar42;
  return;
}



############ FUN_ 180d247e0 size=4839 ############

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

void FUN_180d247e0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  undefined4 uVar14;
  byte bVar15;
  uint uVar16;
  uint uVar17;
  byte *pbVar18;
  ulonglong uVar19;
  byte bVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  uint uVar34;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  byte local_res18;
  byte local_c8;
  byte local_c0;
  ulonglong uVar35;
  
  bVar20 = (byte)DAT_182670a40;
  bVar13 = (byte)DAT_182670978;
  uVar11 = DAT_1826707f4;
  uVar10 = DAT_1826707e8;
  uVar9 = DAT_1826707dc;
  uVar7 = DAT_1826707c4;
  uVar29 = DAT_1826707b8;
  uVar6 = DAT_1826707b0;
  lVar3 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707e8;
  uVar40 = (ulonglong)DAT_1826707dc;
  uVar28 = (ulonglong)DAT_1826707b0;
  uVar23 = (ulonglong)DAT_1826707c4;
  uVar37 = (ulonglong)DAT_1826707b8;
  uVar30 = (ulonglong)DAT_1826707f4;
  uVar34 = DAT_1826707b0 | DAT_1826707b8;
  uVar35 = (ulonglong)uVar34;
  uVar32 = DAT_1826707c4 ^ DAT_1826707f4;
  uVar16 = DAT_1826707e8 * DAT_1826707dc;
  uVar24 = (ulonglong)uVar16;
  uVar25 = *(uint *)(&DAT_18260f758 + DAT_182670c44) ^ DAT_1826707e8;
  uVar17 = *(uint *)(&DAT_18260f750 + (uVar24 ^ 0xf93c09ec) + (longlong)DAT_182670c44) ^
           DAT_1826707dc;
  uVar22 = (ulonglong)DAT_1826709fc;
  uVar39 = (ulonglong)DAT_1826707b8;
  pbVar18 = (byte *)((CONCAT44(DAT_1826707c4,DAT_1826707f4) ^ 0x4303fd67fffc2ead) +
                    *(longlong *)(DAT_1826707a0 + -0x168));
  DAT_1826707bc = uVar16;
  DAT_1826707ec = uVar32;
  DAT_1826707f0 = uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0xae8) = (ulonglong)pbVar18 ^ uVar22;
  uVar21 = (ulonglong)uVar32;
  *(byte *)(lVar3 - (uVar21 ^ 0xbcffd9ad)) = *pbVar18 ^ bVar13 ^ bVar20;
  uVar8 = DAT_1826708a0;
  uVar33 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar19 = (*(byte *)(lVar3 + -0xa35) ^ bVar13) ^ uVar33;
  *(ulonglong *)(lVar3 + -0x220) = uVar19;
  uVar14 = DAT_1826708e0;
  *(ulonglong *)(lVar3 + -0xbb0) =
       (CONCAT44(uVar34,uVar29) ^ 0xae064c890a4efe94) >> (((byte)uVar19 ^ (byte)uVar8) & 0x3f);
  uVar31 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xbffbff51)) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0xbcfbe0b8)) ^ uVar33) << 0x10 ^ uVar31;
  bVar13 = (byte)DAT_1826709ec;
  uVar19 = CONCAT44(DAT_18267085c,DAT_18267085c);
  uVar36 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar3 + -0x410) =
       (uVar31 ^ *(ulonglong *)(lVar3 + -0xd88) | *(ulonglong *)(lVar3 + -0xce0) ^ uVar19) ^ uVar36;
  lVar3 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_182670a48;
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x4303f97f)) =
       (CONCAT44(uVar9,uVar32) ^ 0x3d7d8acbcffd3cb) + *(longlong *)(DAT_1826707a0 + -0x168) ^ uVar31
  ;
  *(byte *)(lVar3 - ((ulonglong)uVar6 ^ 0xbcfbe5b1)) =
       *(byte *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xfffc2ae7)) ^ uVar31) ^ bVar13 ^
       bVar20;
  lVar3 = DAT_1826707a0;
  uVar27 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar31 = (ulonglong)(*(byte *)(DAT_1826707a0 + -0x729) ^ bVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar31 ^ uVar27;
  uVar8 = DAT_182670914;
  uVar31 = uVar31 << 0x18;
  *(byte *)(lVar3 + -0xc69) =
       *(byte *)((ulonglong)DAT_182670850 ^ *(ulonglong *)(lVar3 + -0x390)) ^ bVar20;
  uVar38 = CONCAT44(DAT_18267096c,DAT_18267096c);
  *(ulonglong *)(lVar3 + -0x118) = uVar31 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xf93c0ca4)) =
       (uVar31 | uVar36 ^ *(ulonglong *)(lVar3 + -0x410)) ^ uVar38;
  bVar13 = (byte)DAT_182670b0c;
  pbVar18 = (byte *)((CONCAT44(uVar10,uVar29) ^ 0x727d2efd0f88128d) + *(longlong *)(lVar3 + -0x168))
  ;
  *(ulonglong *)(lVar3 + -0x418) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670868;
  *(byte *)(lVar3 + -0x2bd) = *pbVar18 ^ bVar13 ^ bVar20;
  local_res18 = (byte)uVar32;
  uVar31 = (ulonglong)(*(byte *)(lVar3 - (uVar23 ^ 0x4303ffda)) ^ bVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x2b0) = uVar31 ^ CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar8 = DAT_182670a60;
  lVar3 = DAT_1826707a0;
  uVar31 = uVar31 << ((local_res18 ^ 0xb8) & 0x3f);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x558);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x610);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar31 ^ CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xf93c0fec)) =
       (uVar38 ^ *puVar1 | uVar31) ^ CONCAT44(uVar8,uVar8);
  pbVar18 = (byte *)((CONCAT44(uVar6,uVar29) ^ 0xbcfbe2980f88128c) + *(longlong *)(lVar3 + -0x168));
  *(ulonglong *)(lVar3 + -0x548) =
       (*(ulonglong *)(lVar3 + -0xce0) ^ uVar19) >> (((byte)uVar8 ^ *(byte *)puVar2) & 0x3f);
  *(ulonglong *)(lVar3 + -0x390) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670a6c;
  bVar20 = (byte)DAT_182670a40;
  lVar4 = DAT_1826707a0;
  *(byte *)(lVar3 + -0xb81) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar21 ^ 0xbcffd970)) ^ uVar22) ^ (byte)DAT_182670a40;
  bVar13 = (byte)DAT_182670a34;
  uVar12 = DAT_182670810;
  *(byte *)(lVar4 - ((ulonglong)uVar10 ^ 0x727d2c46)) = *pbVar18 ^ (byte)DAT_182670a34 ^ bVar20;
  uVar36 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar4 - (uVar23 ^ 0x4303f6d7)) = (*(byte *)(lVar4 + -699) ^ bVar13) ^ uVar36;
  uVar19 = *puVar2;
  uVar22 = (*(ulonglong *)(lVar4 - (uVar39 ^ 0xf881969)) ^ uVar36) << 0x28;
  *(ulonglong *)(lVar4 + -0x220) = uVar22 ^ CONCAT44(DAT_182670824,DAT_182670824);
  uVar39 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar4 + -0xd88) = (uVar22 | CONCAT44(uVar8,uVar8) ^ uVar19) ^ uVar39;
  *(ulonglong *)(lVar4 - (uVar40 ^ 0x3d7dcbc)) =
       (CONCAT44(uVar9,uVar11) ^ 0x3d05d9aa1a2ae4ad) >> (((byte)uVar29 ^ 0xee) & 0x3f);
  bVar13 = DAT_1826708f8;
  pbVar18 = (byte *)(*(longlong *)(lVar4 + -0x168) + 0x56);
  *(ulonglong *)(lVar4 + -0x418) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670988;
  *(byte *)(lVar4 + -0x321) = *pbVar18 ^ bVar13 ^ bVar20;
  uVar31 = CONCAT44(DAT_182670a44,DAT_182670a44);
  *(ulonglong *)(lVar4 + -0x118) = (*(byte *)(lVar4 - (uVar40 ^ 0x3d7db8d)) ^ bVar13) ^ uVar31;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar4 - (uVar35 ^ 0xbffbf069)) =
       CONCAT44(uVar6,uVar32) ^ uVar36 ^ *(ulonglong *)(lVar4 + -0xbb0) ^ 0x11f842b8568c610e;
  uVar19 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0xbcfbe7c0)) =
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0x3d7d9b4)) ^ uVar31) << 0x30 ^ uVar19;
  bVar13 = (byte)DAT_182670a5c;
  pbVar18 = (byte *)((CONCAT44(uVar34,uVar10) ^ 0xbffbf2d9727d2eaa) + *(longlong *)(lVar3 + -0x168))
  ;
  uVar38 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar3 + -0xae8) = (ulonglong)pbVar18 ^ (ulonglong)DAT_182670a1c;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (uVar19 ^ *(ulonglong *)(lVar3 + -0x558)) + (uVar39 ^ *(ulonglong *)(lVar3 + -0xd88)) ^
       uVar38;
  *(byte *)(lVar3 + -0x561) = *pbVar18 ^ bVar13 ^ (byte)DAT_182670a40;
  uVar19 = (ulonglong)(*(byte *)(lVar3 - (uVar21 ^ 0xbcffd6f9)) ^ bVar13);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar19 ^ CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar12 = DAT_182670b14;
  uVar22 = CONCAT44(DAT_182670814,DAT_182670814);
  uVar39 = (ulonglong)DAT_182670b14;
  *(ulonglong *)(DAT_1826707a0 - (uVar28 ^ 0xbcfbe7d0)) =
       uVar19 << (((byte)uVar11 ^ 199) & 0x3f) ^ uVar22;
  lVar3 = DAT_1826707a0;
  uVar19 = *(ulonglong *)(DAT_1826707a0 + -0x6b8);
  *puVar2 = (*(ulonglong *)(DAT_1826707a0 + -0x548) ^ uVar22) +
            (*(ulonglong *)(DAT_1826707a0 + -0x630) ^ uVar27);
  uVar36 = CONCAT44(DAT_182670938,DAT_182670938);
  uVar19 = (*(ulonglong *)(lVar3 - (uVar23 ^ 0x4303f82f)) ^ uVar22) + (uVar38 ^ uVar19) ^ uVar36;
  uVar38 = CONCAT44(DAT_182670974,DAT_182670974);
  *(ulonglong *)(lVar3 + -0x220) = uVar19;
  uVar8 = DAT_182670a9c;
  puVar1 = (ulonglong *)
           (*(longlong *)(lVar3 + -0xa58) + (CONCAT44(uVar34,uVar9) ^ 0xbffbf2d903d7d8a6) * 8);
  *(ulonglong *)(lVar3 + -0xbe8) = (ulonglong)puVar1 ^ uVar38;
  uVar22 = CONCAT44(uVar8,uVar8);
  *puVar1 = uVar19 ^ uVar22 ^ uVar36;
  bVar13 = (byte)DAT_182670a50;
  pbVar18 = (byte *)((CONCAT44(uVar16,uVar6) ^ 0xf93c09fcbcfbe2c0) + *(longlong *)(lVar3 + -0x168));
  *(ulonglong *)(lVar3 + -0x390) = (ulonglong)pbVar18 ^ uVar39;
  *(byte *)(lVar3 - (uVar30 ^ 0xfffc22be)) = *pbVar18 ^ bVar13 ^ (byte)DAT_182670a40;
  uVar19 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar23 = (ulonglong)DAT_182670a38;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xf8816c9)) = (*(byte *)(lVar3 + -0xc41) ^ bVar13) ^ uVar19;
  *(ulonglong *)(lVar3 - (uVar24 ^ 0xf93c0de4)) =
       (CONCAT44(uVar9,uVar10) ^ 0x3d7d8ac727d2ea4) + *(longlong *)(lVar3 + -0x168) ^ uVar23;
  bVar13 = (byte)DAT_182670a88;
  *(ulonglong *)(lVar3 + -0x2b0) = CONCAT44(uVar16,uVar29) ^ 0x7f19cbf8849bb095;
  uVar8 = DAT_1826708b0;
  bVar20 = *(byte *)(uVar23 ^ *(ulonglong *)(lVar3 + -0x418)) ^ bVar13 ^ (byte)DAT_182670a40;
  *(byte *)(lVar3 + -0x109) = bVar20;
  *(ulonglong *)(lVar3 - (uVar35 ^ 0xbffbf969)) =
       (ulonglong)(bVar20 ^ bVar13) ^ CONCAT44(uVar8,uVar8);
  local_c8 = (byte)uVar16;
  *(ulonglong *)(lVar3 + -0x118) =
       0xa1a438630626ea0d >> (((byte)uVar8 ^ *(byte *)(lVar3 + -0xbb0)) & 0x3f);
  *(ulonglong *)(lVar3 + -0xd88) =
       (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar3 + -0xbb0)) << ((local_c8 ^ 0xf4) & 0x3f) ^
       uVar31;
  *(byte *)(lVar3 + -0xd29) =
       *(byte *)(uVar39 ^ *(ulonglong *)(lVar3 + -0x390)) ^ (byte)DAT_182670a40;
  lVar4 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x558) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x727d2375)) ^ uVar31 |
       uVar19 ^ *(ulonglong *)(lVar3 + -0x410)) ^ uVar27;
  uVar19 = (ulonglong)DAT_1826709cc;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0xbcfbe6c8)) =
       (CONCAT44(uVar16,uVar16) ^ 0xf93c09fcf93c09a6) + *(longlong *)(lVar4 + -0x168) ^ uVar19;
  uVar8 = DAT_182670930;
  bVar13 = (byte)DAT_1826708e8;
  bVar20 = *(byte *)(*(ulonglong *)(lVar4 + -0x450) ^ uVar19) ^ (byte)DAT_1826708e8 ^
           (byte)DAT_182670a40;
  *(byte *)(lVar4 + -0xc05) = bVar20;
  uVar31 = (ulonglong)(bVar20 ^ bVar13);
  *(ulonglong *)(lVar4 + -0xce0) = uVar31 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182670820;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar11,uVar7) ^ 0x4cebbd0f358e618a |
           *(ulonglong *)(DAT_1826707a0 + -0x220) ^ uVar36;
  uVar19 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(DAT_1826707a0 + -0x630) = uVar36;
  *puVar2 = uVar31 << (((byte)uVar11 ^ 0xef) & 0x3f) ^ uVar19;
  *(ulonglong *)(lVar3 + -0x6b8) =
       (CONCAT44(uVar7,uVar10) ^ 0x59ff3b46f72fa718) <<
       ((*(byte *)(lVar3 - (uVar21 ^ 0xbcffd588)) ^ (byte)uVar8) & 0x3f);
  uVar31 = *(ulonglong *)(lVar3 - (uVar40 ^ 0x3d7ddf4)) ^ uVar27 |
           *(ulonglong *)(lVar3 - (uVar28 ^ 0xbcfbe488)) ^ uVar19;
  *(ulonglong *)(DAT_1826707a0 + -0x548) = uVar31 ^ uVar33;
  bVar13 = (byte)DAT_182670968;
  lVar4 = DAT_1826707a0;
  lVar3 = *(longlong *)(DAT_1826707a0 + -0x168);
  pbVar18 = (byte *)((CONCAT44(uVar7,uVar10) ^ 0x4303fd67727d2ea6) + lVar3);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = CONCAT44(uVar16,uVar9) ^ 0xce65a92c09ce1459 | uVar36;
  *(ulonglong *)(lVar4 + -0x270) = (ulonglong)pbVar18 ^ uVar23;
  uVar8 = DAT_182670aa0;
  bVar20 = *pbVar18 ^ bVar13 ^ (byte)DAT_182670a40;
  uVar19 = (ulonglong)(bVar13 ^ bVar20);
  *(byte *)(lVar4 + -0x182) = bVar20;
  *(ulonglong *)(lVar4 + -0x2b0) = uVar19 ^ CONCAT44(uVar8,uVar8);
  uVar23 = (ulonglong)DAT_182670810;
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar32,uVar34) ^ 0xba615840c4f50a33) >>
       ((*(byte *)(lVar4 - (uVar37 ^ 0xf881069)) ^ (byte)uVar8) & 0x3f);
  uVar8 = DAT_182670840;
  uVar19 = uVar19 << 0x18;
  *(ulonglong *)(lVar4 + -0xbb0) = uVar19 ^ CONCAT44(_DAT_182670b10,_DAT_182670b10);
  lVar4 = DAT_1826707a0;
  uVar36 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 + -0x410) = (uVar19 | uVar31) ^ uVar36;
  lVar5 = DAT_1826707a0;
  local_c0 = (byte)uVar7;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (*(ulonglong *)(lVar4 - (uVar30 ^ 0xfffc2bb7)) ^ uVar33) << ((local_c0 ^ 0x5c) & 0x3f);
  *(ulonglong *)(lVar5 + -0x708) = (CONCAT44(uVar6,uVar6) ^ 0xbcfbe298bcfbe2c4) + lVar3 ^ uVar23;
  bVar13 = (byte)DAT_1826708ac;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0xbcfbee78)) = (uVar24 ^ 0x8f243cf0) >> 1;
  *(byte *)(lVar5 - (uVar28 ^ 0xbcfbe521)) =
       *(byte *)(*(ulonglong *)(lVar5 + -0x708) ^ uVar23) ^ bVar13 ^ (byte)DAT_182670a40;
  bVar20 = (byte)DAT_1826709f4;
  uVar31 = (ulonglong)(*(byte *)(lVar5 + -0x7b9) ^ bVar13);
  uVar19 = CONCAT44(DAT_182670870,DAT_182670870);
  uVar23 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar31 ^ uVar19;
  uVar8 = DAT_182670908;
  *puVar2 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0x727d2845)) ^ uVar19) << 0x20 ^ uVar23;
  lVar3 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar8,uVar8);
  uVar19 = (ulonglong)DAT_182670a8c;
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xbffbf4c9)) ^ uVar23 |
       uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0x410)) ^ uVar28;
  pbVar18 = (byte *)((CONCAT44(uVar32,uVar7) ^ 0xbcffd3984303fd3a) + *(longlong *)(lVar3 + -0x168));
  *(ulonglong *)(lVar3 + -0x2b8) = (ulonglong)pbVar18 ^ uVar19;
  bVar15 = (byte)DAT_182670a40;
  *(byte *)(lVar3 + -0xd71) = *pbVar18 ^ bVar20 ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x727d28cd)) =
       (CONCAT44(uVar29,uVar34) ^ 0x8e164b57604d9d4d) - uVar31;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xf881fe1)) = (bVar20 ^ *(byte *)(lVar3 + -0xd71)) ^ uVar38;
  uVar8 = DAT_182670844;
  uVar19 = (*(ulonglong *)(lVar3 - (uVar30 ^ 0xfffc23c7)) ^ uVar38) << 0x28;
  *(ulonglong *)(lVar3 + -0x118) = uVar19 ^ CONCAT44(DAT_18267084c,DAT_18267084c);
  uVar31 = CONCAT44(uVar8,uVar8);
  uVar23 = (ulonglong)DAT_1826709f8;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (*(ulonglong *)(lVar3 - (uVar21 ^ 0xbcffd6c0)) ^ uVar28 | uVar19) ^ uVar31;
  *(ulonglong *)(lVar3 + -0xdd0) = *(longlong *)(lVar3 - (uVar40 ^ 0x3d7d9c4)) + 0x5eU ^ uVar23;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (CONCAT44(uVar7,uVar9) ^ 0xf537edf45296494b) >> (((byte)uVar6 ^ 0xab) & 0x3f);
  uVar29 = DAT_18267096c & 0xff;
  *(byte *)(DAT_1826707a0 - (uVar24 ^ 0xf93c094d)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar30 ^ 0xfffc232f)) ^ uVar23) ^ (byte)DAT_18267096c ^
       bVar15;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0x3534c808)) =
       *(ulonglong *)
        (CONCAT44(DAT_18267081c,DAT_18267081c) ^ *(ulonglong *)(DAT_1826707a0 + -0xb78)) ^
       CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar19 = (ulonglong)*(byte *)(DAT_1826707a0 + -0xb1) ^ (ulonglong)uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0x548) = uVar19 ^ CONCAT44(DAT_182670948,DAT_182670948);
  uVar8 = DAT_18267090c;
  lVar3 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_18267099c,DAT_18267099c);
  uVar19 = uVar19 << (((byte)uVar34 ^ 0xe9) & 0x3f);
  uVar40 = CONCAT44(DAT_18267090c,DAT_18267090c);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x2b0);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar19 ^ uVar23;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 - (uVar30 ^ 0xfffc2aef)) = (uVar31 ^ *puVar1) + uVar19 ^ uVar40;
  uVar19 = (ulonglong)DAT_182670ae0;
  pbVar18 = (byte *)(*(longlong *)(lVar4 + -0x168) + 0x5f);
  *(ulonglong *)(lVar4 + -0x6b8) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0xce0)) - *(longlong *)(lVar4 + -0x630);
  bVar13 = (byte)DAT_18267093c;
  *(ulonglong *)(lVar4 + -0x5e0) = (ulonglong)pbVar18 ^ uVar19;
  *puVar2 = 0x37a3da4e6fd6abb5 << (((byte)uVar8 ^ *(byte *)(lVar4 + -0x410)) & 0x3f);
  uVar8 = DAT_1826709d4;
  bVar15 = *pbVar18 ^ bVar13 ^ bVar15;
  uVar23 = (ulonglong)(bVar13 ^ bVar15);
  *(byte *)(lVar4 + -0xb29) = bVar15;
  *(ulonglong *)(lVar4 + -0xd38) = uVar23 ^ CONCAT44(uVar8,uVar8);
  uVar29 = DAT_1826707d4;
  uVar31 = (ulonglong)DAT_1826707d4;
  uVar19 = CONCAT44(uVar10,DAT_1826707c8) ^ 0x93c0393de6457fec |
           CONCAT44(uVar9,uVar32) ^ 0x933bdf45eed2b28f;
  *(ulonglong *)(lVar4 + -0x558) = uVar19;
  uVar8 = DAT_1826707d0;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar23 << (((byte)DAT_1826707d0 ^ 0xc6) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar3 + -0xd88) = uVar23 ^ uVar19;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xf93c0cb4)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0xadc34ee)) ^ uVar40) +
       (*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xbcffd828)) ^ uVar28) ^ uVar27;
  *(ulonglong *)(lVar3 + -0x2b0) =
       CONCAT44(DAT_1826707a8,uVar32) ^ 0xec86ea1ae9db03de |
       CONCAT44(uVar10,uVar7) ^ 0x246033d107fd1563;
  uVar19 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar3 + -0x370) =
       *(longlong *)(lVar3 + -0xa58) + (CONCAT44(uVar29,uVar8) ^ 0xadc30fe77e5fdf5) * 8 ^ uVar19;
  uVar24 = CONCAT44(DAT_1826707b4,uVar6);
  *(ulonglong *)(*(ulonglong *)(lVar3 - (uVar26 ^ 0x727d2d8d)) ^ uVar19) =
       uVar27 ^ *(ulonglong *)(lVar3 + -0x548) ^ uVar22;
  *puVar2 = (uVar24 ^ 0x57162c4e0ddc4760) >> (((byte)uVar34 ^ 0xd1) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar25;
  return;
}



############ FUN_ 180ccba50 size=5945 ############

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

void FUN_180ccba50(void)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  byte bVar16;
  uint uVar17;
  ulonglong *puVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong *puVar21;
  ulonglong *puVar22;
  ulonglong uVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  longlong *plVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong *puVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong *puVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong *puVar52;
  ulonglong *puVar53;
  byte local_128;
  byte local_108;
  ulonglong uVar41;
  
  uVar6 = DAT_1826707b0;
  uVar5 = DAT_1826707ac;
  lVar3 = DAT_1826707a0;
  uVar40 = (ulonglong)DAT_1826707b0;
  uVar29 = (ulonglong)DAT_1826707ac;
  uVar17 = DAT_1826707ac << 0x10 | DAT_1826707ac >> 0x10;
  uVar35 = (DAT_1826707b0 << 0x10 | DAT_1826707b0 & 0xff00) << 8 | DAT_1826707b0 >> 8 & 0xff00 |
           DAT_1826707b0 >> 0x18;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670e28);
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670e28) ^ DAT_1826707ac;
  uVar34 = (ulonglong)DAT_1826707ac;
  uVar44 = (ulonglong)uVar17;
  puVar45 = (ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0xde3ce301));
  uVar23 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar26 = CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar48 = (ulonglong)uVar35;
  DAT_1826707d4 = uVar17;
  DAT_1826707dc = uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (CONCAT44(DAT_182670844,DAT_182670844) ^ *puVar45 |
       uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x7d8)) ^ uVar26;
  uVar10 = DAT_182670888;
  puVar20 = (ulonglong *)(lVar3 - ((ulonglong)uVar17 ^ 0xde3cefd1));
  *puVar20 = CONCAT44(uVar35,uVar6) ^ 0xea5750324aec09c0 |
             CONCAT44(uVar5,uVar35) ^ 0x1cd2538dbd5ca9aa;
  uVar11 = DAT_18267091c;
  uVar51 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xf0) =
       (CONCAT44(DAT_182670990,DAT_182670990) ^ *(ulonglong *)(lVar3 + -0x588)) -
       (*(ulonglong *)(lVar3 + -0xc18) ^ uVar26) ^ uVar51;
  uVar12 = DAT_182670a1c;
  uVar2 = DAT_182670a00;
  uVar32 = (ulonglong)DAT_182670a00;
  *(ulonglong *)(lVar3 + -0x658) =
       (CONCAT44(uVar6,uVar5) ^ 0x4a1e1f43855035cf) -
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar3 + -0x5c0));
  uVar10 = DAT_182670a0c;
  uVar9 = DAT_1826707d0;
  uVar7 = DAT_1826707c0;
  uVar27 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  puVar30 = (ulonglong *)(lVar3 - (uVar40 ^ 0xe9c1daf4));
  puVar53 = (ulonglong *)(lVar3 - (uVar34 ^ 0xe9c1df84));
  uVar34 = (ulonglong)DAT_1826707c0;
  uVar31 = (ulonglong)DAT_1826707d0;
  *puVar53 = *(ulonglong *)(lVar3 - (uVar44 ^ 0xde3cec99)) ^ CONCAT44(uVar12,uVar12) ^ *puVar30 ^
             uVar27 ^ CONCAT44(uVar2,uVar2);
  uVar39 = uVar7 ^ uVar9;
  uVar41 = (ulonglong)uVar39;
  uVar46 = CONCAT44(uVar10,uVar10);
  DAT_1826707b8 = uVar39;
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x163e2c84)) =
       ((ulonglong)(uVar2 >> 0x16) | uVar32 << 10) ^ *(ulonglong *)(lVar3 + -0x1b8) >> 0x16 ^ uVar46
  ;
  lVar3 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(ulonglong *)(DAT_1826707a0 - (uVar31 ^ 0x412c08c7)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x1b8) ^ CONCAT44(uVar2,uVar2)) << 0x2a ^ uVar36;
  uVar32 = CONCAT44(DAT_182670a54,DAT_182670a54);
  puVar18 = (ulonglong *)(lVar3 - ((ulonglong)uVar39 ^ 0x57122463));
  *puVar18 = (uVar36 ^ *(ulonglong *)(lVar3 + -0xac0) | uVar46 ^ *(ulonglong *)(lVar3 + -0xd38)) ^
             uVar32;
  uVar10 = DAT_182670a24;
  bVar24 = (byte)uVar9;
  *(ulonglong *)(lVar3 + -0x610) =
       (CONCAT44(uVar9,uVar9) ^ 0xf7887408d76d6f65) << ((bVar24 ^ 0x17) & 0x3f);
  uVar11 = DAT_182670a88;
  uVar36 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0x588) =
       (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar27) - (uVar32 ^ *(ulonglong *)(lVar3 + -0x7d8)) ^
       uVar36;
  uVar27 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x5712267b)) =
       *(ulonglong *)(lVar3 + -0xf0) ^ uVar27 ^ uVar32 ^ uVar51 ^ *(ulonglong *)(lVar3 + -0x7d8);
  lVar3 = DAT_1826707a0;
  plVar33 = (longlong *)(DAT_1826707a0 - ((ulonglong)uVar6 ^ 0xe9c1d864));
  bVar14 = (byte)(uVar5 >> 0x10);
  uVar42 = CONCAT44(DAT_182670804,DAT_182670804);
  *plVar33 = (CONCAT44(uVar35,uVar5) ^ 0x1310b315d69a4119) << ((bVar14 ^ 0xee) & 0x3f);
  *(ulonglong *)(lVar3 + -0x558) =
       (*(ulonglong *)(lVar3 + -0x5c0) ^ uVar27) >> ((bVar24 ^ 0x29) & 0x3f) ^ uVar42;
  uVar8 = DAT_1826707e4;
  uVar2 = DAT_1826707bc;
  uVar46 = (*(ulonglong *)(lVar3 + -0x5c0) ^ uVar27) << ((bVar24 ^ 0x15) & 0x3f);
  uVar32 = (ulonglong)DAT_1826707bc;
  uVar28 = CONCAT44(DAT_182670988,DAT_182670988);
  uVar27 = (ulonglong)DAT_1826707e4;
  uVar19 = DAT_1826707e4 | DAT_1826707bc;
  DAT_1826707e0 = uVar19;
  *(ulonglong *)(lVar3 + -0x1b8) = uVar46 ^ uVar28;
  uVar50 = (ulonglong)uVar19;
  bVar15 = (byte)uVar2;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0xfffff2c5)) =
       uVar46 >> ((bVar15 ^ 0x2b) & 0x3f);
  uVar10 = _DAT_182670b10;
  lVar3 = DAT_1826707a0;
  uVar25 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar2 ^ 0xedc4f5fd)) =
       (uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0x1b8) |
       uVar42 ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) ^ uVar25;
  uVar2 = DAT_18267090c;
  uVar46 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  *(ulonglong *)(lVar3 + -0x610) =
       (*(ulonglong *)(lVar3 + -0xf0) ^ uVar51) -
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0xdefff13c)) ^ uVar25) ^ uVar46;
  uVar42 = CONCAT44(uVar2,uVar2);
  uVar26 = *(ulonglong *)(lVar3 - (uVar50 ^ 0xfffffa75)) ^ uVar42 ^ *(ulonglong *)(lVar3 + -0xc18) ^
           uVar36 ^ uVar26;
  uVar47 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(lVar3 + -0x4c8) = uVar26;
  *(ulonglong *)(lVar3 + -0x7d8) =
       ((ulonglong)uVar2 << 0x14 | (ulonglong)(uVar2 >> 0xc)) ^ uVar26 >> 0xc ^ uVar47;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xedc4f965)) =
       (*(ulonglong *)(lVar3 - (uVar32 ^ 0xedc4fbf5)) ^ uVar42) <<
       (((byte)uVar10 ^ *(byte *)(lVar3 + -0xac0)) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar42 = (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar42) << 0x34;
  puVar52 = (ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xdefffc24));
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar42 ^ CONCAT44(DAT_1826708c4,DAT_1826708c4);
  uVar10 = DAT_182670ac0;
  lVar3 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar19,uVar8);
  uVar26 = *(ulonglong *)(DAT_1826707a0 + -0x7d8);
  *(ulonglong *)(lVar4 + -0xd38) = (*puVar52 ^ uVar47) + (uVar43 ^ 0x4b44013b8cd6f97b);
  uVar37 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xedc4fa65)) = (uVar42 | uVar47 ^ uVar26) ^ uVar37;
  uVar42 = CONCAT44(DAT_182670a9c,DAT_182670a9c);
  *(ulonglong *)(lVar3 + -0xf0) =
       (*(ulonglong *)(lVar3 + -0x588) ^ uVar36) - (uVar37 ^ *(ulonglong *)(lVar3 + -0x558)) ^
       uVar42;
  uVar10 = DAT_1826708b8;
  *(ulonglong *)(lVar3 + -0xc18) = (uVar43 ^ 0x114b2626e1c1a48) + 0xa1840226d386bd35;
  lVar4 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_182670a84;
  uVar2 = DAT_182670a84 >> 0x19;
  uVar43 = CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar47 = uVar43 ^ uVar37 ^ uVar46 ^ *(ulonglong *)(lVar3 + -0x558) ^
           *(ulonglong *)(DAT_1826707a0 + -0x610);
  uVar37 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar47;
  uVar10 = DAT_182670820;
  *(ulonglong *)(lVar4 + -0x4c8) = ((ulonglong)uVar2 | uVar26 << 7) ^ uVar47 >> 0x19 ^ uVar37;
  bVar16 = (byte)uVar6;
  uVar36 = CONCAT44(uVar10,uVar10);
  puVar21 = (ulonglong *)(lVar4 - (uVar40 ^ 0xe9c1d304));
  *puVar21 = (uVar47 ^ uVar43) << ((bVar16 ^ 0x1b) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar4 + -0x7d8) = (*puVar53 ^ uVar28) + 0x30f0e025ce8f18ab;
  uVar11 = DAT_1826709c0;
  uVar43 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar4 + -0x5c0) =
       (*(ulonglong *)(lVar4 + -0x4c8) ^ uVar37 | uVar36 ^ *(ulonglong *)(lVar4 + -0xd38)) ^ uVar43;
  uVar10 = DAT_18267099c;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar28 = CONCAT44(DAT_182670874,DAT_182670874);
  *(ulonglong *)(lVar4 + -0x588) =
       (uVar46 ^ *(ulonglong *)(lVar4 + -0x610)) - (*(ulonglong *)(lVar4 + -0x890) ^ uVar26) ^
       uVar28;
  uVar12 = DAT_182670af4;
  uVar11 = DAT_1826709c8;
  uVar37 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 - (uVar32 ^ 0xedc4fab5)) ^ uVar28) -
       (*(ulonglong *)(lVar4 - (uVar48 ^ 0x3cdec429)) ^ uVar43) ^ uVar37;
  lVar3 = DAT_1826707a0;
  uVar47 = CONCAT44(uVar12,uVar12);
  uVar28 = (CONCAT44(DAT_1826708b0,DAT_1826708b0) ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) +
           (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(DAT_1826707a0 + -0x660));
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar28 ^ uVar47;
  puVar53 = (ulonglong *)(lVar3 - (uVar34 ^ 0x163e247c));
  *(ulonglong *)(lVar3 + -0x658) = (uVar43 ^ *puVar53) - uVar28 ^ uVar51;
  *(ulonglong *)(lVar3 + -0x1b8) =
       CONCAT44(uVar17,uVar17) ^ uVar36 ^ *(ulonglong *)(lVar3 + -0xd38) ^ 0x62370c645fefd421;
  uVar36 = CONCAT44(DAT_182670818,DAT_182670818);
  *puVar18 = *(ulonglong *)(lVar3 + -0xf0) ^ uVar36 ^ uVar42 ^ uVar25 ^
             *(ulonglong *)(lVar3 + -0xac0);
  uVar25 = CONCAT44(DAT_182670944,DAT_182670944);
  *(ulonglong *)(lVar3 + -0x4c8) =
       (*(ulonglong *)(lVar3 - (uVar40 ^ 0xe9c1d9e4)) ^ uVar36) >> ((bVar24 ^ 0x26) & 0x3f) ^ uVar25
  ;
  local_128 = (byte)uVar7;
  puVar22 = (ulonglong *)(lVar3 - (uVar32 ^ 0xedc4f8e5));
  uVar28 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar3 - (uVar48 ^ 0x3cdec7f9)) =
       (*puVar22 ^ uVar36) << ((local_128 ^ 0xa3) & 0x3f) ^ uVar28;
  uVar10 = DAT_182670890;
  puVar49 = (ulonglong *)(lVar3 - (uVar48 ^ 0x3cdec521));
  uVar48 = CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar28 = uVar28 ^ *(ulonglong *)(lVar3 + -0x610) | *puVar49 ^ uVar25;
  puVar38 = (ulonglong *)(lVar3 - (uVar50 ^ 0xffffff0d));
  *(ulonglong *)(lVar3 + -0x588) = uVar28 ^ uVar48;
  uVar11 = DAT_182670924;
  uVar36 = (uVar42 ^ *puVar38) -
           (*(ulonglong *)(lVar3 - (uVar31 ^ 0x412c0bcf)) ^ CONCAT44(uVar10,uVar10));
  *(ulonglong *)(lVar3 + -0x5c0) = uVar36 ^ CONCAT44(DAT_182670974,DAT_182670974);
  lVar3 = DAT_1826707a0;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar36 - uVar28 ^ uVar25;
  uVar42 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xedc4fe85)) =
       (CONCAT44(uVar8,uVar6) ^ 0x21000403163e21c9) -
       (CONCAT44(DAT_1826708e8,DAT_1826708e8) ^ *(ulonglong *)(lVar3 + -0xbb0)) ^ uVar42;
  uVar36 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar28 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar3 + -0xac0) =
       (uVar48 ^ *(ulonglong *)(lVar3 + -0x588)) + (uVar42 ^ *(ulonglong *)(lVar3 + -0x1b8)) ^
       uVar36;
  uVar10 = DAT_182670830;
  uVar36 = uVar28 ^ uVar36 ^ *puVar45 ^ uVar37 ^ *(ulonglong *)(lVar3 + -0xc18);
  *(ulonglong *)(lVar3 + -0x7d8) = uVar36;
  uVar42 = CONCAT44(uVar10,uVar10);
  *puVar30 = (uVar36 ^ uVar28) >> ((bVar14 ^ 0xc4) & 0x3f) ^ uVar42;
  lVar3 = DAT_1826707a0;
  uVar36 = (uVar28 ^ *puVar52) << (((byte)uVar5 ^ 7) & 0x3f);
  uVar28 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar36 ^ CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar3 + -0x9c8) = (*(ulonglong *)(lVar3 + -0x4c8) ^ uVar42 | uVar36) ^ uVar28;
  uVar10 = DAT_18267098c;
  uVar48 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  *(ulonglong *)(lVar3 + -0xf0) =
       (uVar37 ^ *(ulonglong *)(lVar3 + -0xc18)) -
       (*(ulonglong *)(lVar3 - (uVar29 ^ 0xe9c1d7f4)) ^ uVar28) ^ uVar48;
  uVar37 = CONCAT44(uVar10,uVar10);
  puVar45 = (ulonglong *)(lVar3 - (uVar34 ^ 0x163e27e4));
  uVar42 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar36 = uVar37 ^ uVar25 ^ *puVar45 ^ uVar51 ^ *(ulonglong *)(lVar3 + -0xd38);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar36;
  *(ulonglong *)(lVar3 + -0x588) = (uVar36 ^ uVar37) >> ((bVar16 ^ 0x19) & 0x3f) ^ uVar42;
  puVar30 = (ulonglong *)(lVar3 - (uVar32 ^ 0xedc4fafd));
  uVar36 = CONCAT44(DAT_1826709dc,DAT_1826709dc);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0x163e2004)) =
       (uVar37 ^ *puVar30) << ((bVar15 ^ 0x26) & 0x3f) ^ uVar36;
  uVar10 = DAT_182670934;
  puVar52 = (ulonglong *)(lVar3 - (uVar41 ^ 0x5712297b));
  *puVar52 = (CONCAT44(uVar35,uVar35) ^ 0x7a76b35be4ec5a43) -
             (*(ulonglong *)(lVar3 + -0x5c0) ^ uVar37);
  uVar32 = CONCAT44(uVar10,uVar10);
  *puVar18 = (uVar36 ^ *(ulonglong *)(lVar3 + -0x1b8) | uVar42 ^ *(ulonglong *)(lVar3 + -0x588)) ^
             uVar32;
  uVar10 = DAT_1826708e0;
  *(ulonglong *)(lVar3 + -0x4c8) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0xd38)) - (uVar32 ^ *(ulonglong *)(lVar3 + -0x7d8)) ^
       uVar46;
  uVar37 = CONCAT44(uVar10,uVar10);
  uVar25 = CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar36 = uVar37 ^ uVar32 ^ uVar48 ^ *(ulonglong *)(lVar3 + -0xf0) ^ *(ulonglong *)(lVar3 + -0x7d8)
  ;
  *(ulonglong *)(lVar3 + -0x610) = uVar36;
  uVar11 = DAT_182670ae4;
  uVar32 = (uVar37 ^ *puVar20) >> (((byte)uVar39 ^ 0xac) & 0x3f);
  *(ulonglong *)(lVar3 + -0xc18) = uVar32 ^ uVar25;
  uVar10 = DAT_182670ac8;
  lVar4 = DAT_1826707a0;
  uVar42 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0x658) = (uVar37 ^ uVar36) << ((bVar14 ^ 0xe8) & 0x3f) ^ uVar42;
  uVar51 = CONCAT44(uVar10,uVar10);
  *puVar52 = (uVar42 ^ *puVar45 | uVar32) ^ uVar51;
  uVar10 = DAT_182670a3c;
  uVar43 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar4 + -0x5c0) =
       (uVar48 ^ *(ulonglong *)(lVar4 + -0xf0)) - (uVar51 ^ *(ulonglong *)(lVar4 + -0xac0)) ^ uVar43
  ;
  uVar48 = CONCAT44(uVar10,uVar10);
  uVar28 = *(ulonglong *)(lVar4 + -0x4c8) ^ uVar48 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0x9c8) ^
           uVar46;
  uVar32 = CONCAT44(DAT_182670824,DAT_182670824);
  *(ulonglong *)(lVar4 + -0x588) = uVar28;
  uVar2 = DAT_1826707a8;
  uVar37 = (ulonglong)DAT_1826707a8;
  uVar36 = (uVar28 ^ uVar48) >> (((byte)uVar5 ^ 0x14) & 0x3f);
  *(ulonglong *)(lVar4 + -0x1b8) = uVar36 ^ uVar32;
  uVar10 = DAT_1826708b4;
  uVar32 = (*(ulonglong *)(lVar4 - (uVar50 ^ 0xfffffe45)) ^ uVar32) -
           (CONCAT44(uVar35,uVar2) ^ 0xcb4531666896ea73);
  *(ulonglong *)(lVar4 + -0xd38) = uVar32;
  uVar25 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x610) = *(ulonglong *)(lVar4 + -0x658) ^ uVar42 | uVar32;
  uVar10 = DAT_182670ac4;
  *(ulonglong *)(lVar4 + -0x7d8) = (uVar48 ^ uVar28) << 0x18 ^ uVar25;
  uVar32 = CONCAT44(uVar10,uVar10);
  uVar36 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x412c05df)) ^ uVar25 | uVar36;
  uVar25 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *(ulonglong *)(lVar4 + -0xc18) = uVar36 ^ uVar32;
  *(ulonglong *)(lVar4 + -0xf0) = (*puVar49 ^ uVar46) - uVar36 ^ uVar25;
  *(ulonglong *)(lVar4 + -0x9c8) =
       *(ulonglong *)(lVar4 - (uVar40 ^ 0xe9c1d224)) ^ uVar32 ^ uVar43 ^ uVar23 ^ *puVar53;
  uVar8 = DAT_1826707c8;
  *(uint *)(lVar4 + -0x7e4) = (DAT_1826707c8 ^ 0xbe970725) * -0x39036290;
  uVar46 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  local_108 = (byte)(uVar6 >> 0x18);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar8 ^ 0xfbbf7836)) =
       (*(ulonglong *)(lVar4 + -0x9c8) ^ uVar23) >> ((local_108 ^ 0xdd) & 0x3f) ^ uVar46;
  uVar10 = DAT_1826709a8;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x658) =
       (CONCAT44(uVar6,uVar19) ^ 0x2d469136ea9e5009) + 0xdb662cf16bd2dac5;
  uVar32 = (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar23) << ((bVar16 ^ 0x30) & 0x3f);
  uVar36 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar3 + -0xd38) = uVar32 ^ uVar36;
  *(ulonglong *)(lVar3 - (uVar41 ^ 0x571225ab)) = uVar32 + *plVar33;
  uVar28 = CONCAT44(DAT_182670810,DAT_182670810);
  *(ulonglong *)(lVar3 - (uVar27 ^ 0xdefffa44)) =
       (*(ulonglong *)(lVar3 - (uVar44 ^ 0xde3ce4f9)) ^ uVar36 |
       uVar46 ^ *(ulonglong *)(lVar3 + -0x588)) ^ uVar28;
  uVar23 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar3 + -0x7d8) =
       (CONCAT44(uVar2,uVar5) ^ 0x48b7af6d37d2e011) >> (((byte)uVar2 ^ 0x27) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar32 = (*(ulonglong *)(lVar3 + -0x5c0) ^ uVar43) - (uVar28 ^ *(ulonglong *)(lVar3 + -0x1b8));
  *(ulonglong *)(lVar3 + -0x4c8) = uVar32 ^ uVar23;
  uVar36 = uVar25 ^ *(ulonglong *)(lVar4 + -0xf0);
  *(ulonglong *)(lVar4 + -0xc18) = uVar36 - uVar32;
  uVar10 = DAT_182670938;
  uVar48 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar32 = uVar48 ^ uVar25 ^ uVar51 ^ *puVar38 ^ *(ulonglong *)(lVar4 + -0xac0);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar32;
  uVar11 = DAT_182670918;
  uVar42 = (uVar32 ^ uVar48) >> (((byte)uVar39 ^ 0x82) & 0x3f);
  *(ulonglong *)(lVar4 + -0x610) = uVar42 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182670864;
  uVar46 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar32 = (uVar48 ^ uVar32) << (((byte)uVar2 ^ 0x3d) & 0x3f);
  *(ulonglong *)(lVar4 + -0x658) = uVar32 ^ CONCAT44(uVar11,uVar11);
  uVar25 = CONCAT44(uVar10,uVar10);
  uVar42 = uVar42 | uVar32;
  *(ulonglong *)(lVar4 + -0x588) = uVar42 ^ uVar46;
  *(ulonglong *)(lVar4 + -0xd38) = uVar36 - uVar42 ^ uVar25;
  *puVar22 = (CONCAT44(uVar7,uVar9) ^ 0x62c5e182aeb320de) << ((local_128 ^ 0xa3) & 0x3f);
  uVar2 = DAT_182670a58;
  uVar10 = DAT_18267096c;
  uVar42 = CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar32 = uVar42 ^ uVar46 ^ uVar23 ^ *(ulonglong *)(lVar4 + -0x4c8) ^
           *(ulonglong *)(lVar4 + -0x588);
  *(ulonglong *)(lVar4 + -0x5c0) = uVar32;
  uVar44 = CONCAT44(uVar10,uVar10);
  uVar36 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar4 + -0xc18) =
       ((ulonglong)uVar2 << 0x12 | (ulonglong)(uVar2 >> 0xe)) ^ uVar32 >> 0xe ^ uVar44;
  uVar32 = (*(ulonglong *)(lVar4 - (uVar36 ^ 0x68ce8fa)) ^ uVar42) << 0x32;
  uVar42 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar4 + -0xac0) = uVar32 ^ CONCAT44(DAT_182670adc,DAT_182670adc);
  uVar36 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar4 + -0x610) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0xf20a7122)) ^ uVar44 | uVar32) ^ uVar42;
  uVar11 = DAT_182670a70;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707cc ^ 0xd32c5462)) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x4c8)) -
       (CONCAT44(DAT_1826709c4,DAT_1826709c4) ^ *(ulonglong *)(lVar4 + -0x400)) ^ uVar36;
  uVar10 = DAT_182670898;
  *(ulonglong *)(lVar4 + -0xf0) =
       (uVar36 ^ *(ulonglong *)(lVar4 + -0x658)) - (uVar42 ^ *(ulonglong *)(lVar4 + -0x610)) ^
       CONCAT44(uVar11,uVar11);
  uVar32 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 + -0x7d8) =
       (*(ulonglong *)(lVar4 - (uVar34 ^ 0x163e2d5c)) ^ CONCAT44(DAT_182670838,DAT_182670838)) +
       (*(ulonglong *)(lVar4 + -0x890) ^ uVar26) ^ uVar32;
  uVar10 = DAT_1826708c0;
  *(ulonglong *)(lVar4 + -0x588) =
       (uVar42 ^ *(ulonglong *)(lVar4 + -0x610)) -
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0xe9c1d9e4)) ^ uVar32) ^
       CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar34 = CONCAT44(uVar10,uVar10);
  uVar32 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar4 + -0x5c0) =
       *(ulonglong *)(lVar4 - (uVar31 ^ 0x412c03bf)) ^ uVar34 ^ uVar25 ^ uVar28 ^
       *(ulonglong *)(lVar4 + -0xd38);
  uVar10 = DAT_1826707fc;
  *(ulonglong *)(lVar4 + -0xc18) =
       (*(ulonglong *)(lVar4 - (uVar27 ^ 0xdefffe3c)) ^ uVar34) >> ((local_128 ^ 0xac) & 0x3f) ^
       uVar32;
  uVar26 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xe9c1d4fc)) =
       (uVar34 ^ *puVar30) << ((bVar15 ^ 0xd) & 0x3f) ^ uVar26;
  uVar11 = DAT_182670858;
  uVar10 = DAT_1826707e8;
  *(ulonglong *)(lVar4 + -0x4c8) =
       CONCAT44(uVar8,DAT_1826707f0) ^ 0xf11f14e91fd0fc50 | uVar48 ^ *(ulonglong *)(lVar4 + -0x9c8);
  uVar12 = DAT_18267088c;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xdefffda4)) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0xac0) | uVar32 ^ *(ulonglong *)(lVar4 + -0xc18)) ^ uVar36;
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xdefffdec)) =
       (uVar25 ^ *puVar21) - (uVar47 ^ *(ulonglong *)(lVar4 + -0x558)) ^ uVar46;
  uVar26 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar27 = CONCAT44(DAT_182670a60,DAT_182670a60);
  uVar34 = CONCAT44(uVar10,DAT_1826707d8);
  *(ulonglong *)(lVar4 + -0x1b8) =
       (uVar46 ^ *(ulonglong *)(lVar4 + -0x610)) - (uVar36 ^ *(ulonglong *)(lVar4 + -0x658)) ^
       CONCAT44(uVar12,uVar12);
  uVar10 = DAT_18267085c;
  uVar26 = (uVar34 ^ 0x3440ba41f7d2f596) - (uVar26 ^ *(ulonglong *)(lVar4 + -0x118));
  *(ulonglong *)(lVar4 + -0x5c0) = uVar26 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x9c8) =
       uVar26 + (uVar36 ^ *(ulonglong *)(lVar4 + -0x658)) ^ CONCAT44(uVar10,uVar10);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar1 ^ uVar17;
  return;
}



############ FUN_ 180cdc7c0 size=3899 ############

void FUN_180cdc7c0(void)

{
  ulonglong *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  ulonglong uVar14;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte *pbVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint *puVar25;
  uint uVar26;
  uint *puVar27;
  uint uVar28;
  uint uVar29;
  uint *puVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar15;
  
  uVar17 = DAT_182670b14;
  uVar26 = DAT_182670a68;
  uVar19 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar16 = DAT_1826707a8 << 0x10 | DAT_1826707a8 >> 0x10;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670e54);
  uVar11 = *(uint *)(&DAT_18260f760 + DAT_182670e54) ^ DAT_1826707a8;
  uVar22 = (ulonglong)DAT_182670a68;
  uVar35 = (ulonglong)DAT_1826707a8;
  uVar21 = (ulonglong)uVar16;
  puVar27 = (uint *)(DAT_1826707a0 - ((ulonglong)uVar16 ^ 0x7d3fa6ea));
  DAT_1826707b4 = uVar16;
  *puVar27 = (*(uint *)(DAT_1826707a0 + -0xa34) ^ DAT_182670910) +
             (*(uint *)(DAT_1826707a0 + -0x2d4) ^ DAT_182670b14) ^ DAT_182670a68;
  puVar30 = (uint *)(lVar4 - ((ulonglong)uVar19 ^ 0xaae67fbf));
  *puVar30 = (*(uint *)(lVar4 + -0xc0c) ^ uVar26) << (((byte)uVar19 ^ 0x32) & 0x1f) ^ DAT_182670958;
  uVar26 = (*puVar27 ^ uVar26) >> (((byte)uVar19 ^ 0x2c) & 0x1f) ^ DAT_182670984;
  *(uint *)(lVar4 + -0x540) = uVar26;
  *(uint *)(lVar4 - (uVar21 ^ 0x7d3fa6e2)) =
       (*puVar30 ^ DAT_182670958 | uVar26 ^ DAT_182670984) ^ DAT_182670838;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar19 ^ 0xaae67b0f)) =
       *(ulonglong *)(lVar4 + -0x6f0) | 0xe83d27cf422e0f7e;
  uVar26 = (*(uint *)(lVar4 - ((ulonglong)uVar16 ^ 0x7d3fa2f2)) ^ DAT_182670950) +
           (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^ DAT_182670ab8;
  uVar14 = CONCAT44(uVar19,DAT_1826707c4);
  *(uint *)(lVar4 + -0x3d4) = uVar26;
  uVar15 = *(ulonglong *)(lVar4 + -0x548);
  *(uint *)(lVar4 + -0x68c) = uVar26 ^ DAT_182670964 ^ DAT_182670ab8;
  *(ulonglong *)(lVar4 + -0x220) = uVar14 ^ 0xe805a3575e148515 | uVar15;
  uVar12 = DAT_182670ad8;
  uVar28 = DAT_182670a00;
  uVar7 = DAT_1826707dc;
  uVar31 = *(uint *)(lVar4 + -0xc04) ^ DAT_182670858 ^ DAT_182670838;
  uVar34 = (ulonglong)DAT_182670868;
  uVar14 = CONCAT44(DAT_1826707dc,uVar19);
  *(uint *)(lVar4 + -0x7e4) = uVar31;
  uVar26 = DAT_1826707c4;
  uVar32 = uVar31 ^ DAT_182670ad8 ^ DAT_182670858;
  uVar24 = *(uint *)(lVar4 - (uVar21 ^ 0x7d3fac6a)) ^ uVar28 ^ DAT_182670964;
  uVar23 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar4 + -0x4c8) = *(ulonglong *)(lVar4 + -0x630) >> 0x33;
  bVar3 = DAT_1826708c8;
  *(uint *)(lVar4 + -0x9ec) = uVar24;
  *(uint *)(lVar4 + -0x8e0) = uVar32;
  pbVar20 = (byte *)((uVar14 ^ 0xbfffffbfaae67d3f) * 0x20 + 0x15 +
                    *(longlong *)(lVar4 - (uVar21 ^ 0x7d3faad6)));
  *(ulonglong *)(lVar4 + -0x4f8) = (ulonglong)pbVar20 ^ uVar34;
  lVar5 = DAT_1826707a0;
  *(byte *)(lVar4 + -0xc35) = *pbVar20 ^ bVar3 ^ (byte)DAT_182670adc;
  *(byte *)(lVar4 + -0x619) =
       *(byte *)(*(ulonglong *)(lVar4 + -0xdb8) ^ uVar22) ^ (byte)DAT_182670adc;
  uVar29 = DAT_1826707e0;
  uVar31 = (uint)(bVar3 ^ *(byte *)(lVar4 + -0xc35));
  uVar14 = CONCAT44(DAT_1826707e0,uVar26);
  *(uint *)(lVar5 + -0xc34) = uVar31 ^ DAT_1826708f4;
  uVar9 = DAT_182670a2c;
  *(ulonglong *)(lVar5 + -0xa18) = (uVar14 ^ 0x140299ed3f386778) + uVar15;
  uVar26 = uVar31 << 0x11 ^ DAT_182670814;
  uVar32 = (uVar12 ^ uVar32) + (DAT_1826707c0 ^ 0xd6f606e3) ^ DAT_182670a8c;
  *(uint *)(lVar5 + -0x42c) = uVar32;
  uVar32 = uVar32 ^ DAT_182670a8c;
  *(uint *)(lVar5 + -0x398) = uVar26;
  uVar32 = uVar32 - (uVar26 ^ DAT_182670814);
  *(uint *)(lVar5 + -0x2d4) = uVar32 ^ uVar9;
  uVar26 = DAT_1826707b8;
  uVar12 = DAT_1826707b4 ^ 0x7d3faaf3;
  *(uint *)(lVar5 + -0xa34) = uVar32 * (uVar28 ^ uVar24) ^ DAT_182670970;
  uVar15 = (ulonglong)DAT_1826707dc;
  *(uint *)(lVar5 - (uVar35 ^ 0xaae67133)) = uVar31 * uVar12 ^ DAT_182670a74;
  uVar24 = DAT_182670840;
  uVar12 = DAT_1826707d0;
  bVar3 = (byte)DAT_1826707d4;
  uVar31 = (*(uint *)(lVar5 - (uVar15 ^ 0xbffff3b3)) ^ DAT_182670a74) +
           (*(uint *)(lVar5 + -0xa34) ^ DAT_182670970);
  *(uint *)(lVar5 + -0x280) = uVar31 ^ DAT_182670840;
  *(uint *)(lVar5 + -0x540) = uVar31 << ((bVar3 ^ 0x85) & 0x1f) ^ DAT_1826708a8;
  uVar32 = DAT_1826707ec;
  uVar14 = (ulonglong)DAT_1826707ec;
  uVar15 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar26 ^ 0xd69b43cd)) =
       -0xc561cf9ab934d - (CONCAT44(DAT_1826707ec,uVar12) ^ 0xc4151249fcb4bc67);
  puVar30 = (uint *)(lVar5 + -0x814);
  *(uint *)(lVar5 - (uVar15 ^ 0x9df6d3c2)) = (uVar24 ^ *(uint *)(lVar5 + -0x280)) >> 0x13 ^ uVar24;
  uVar18 = DAT_182670a30;
  uVar12 = (*(uint *)(lVar5 - (uVar14 ^ 0x402481c0)) ^ DAT_1826708a8 | uVar24 ^ *puVar30) ^
           DAT_182670850;
  uVar26 = DAT_182670848 ^ *(uint *)(lVar5 + -0xb54);
  *(uint *)(lVar5 + -0x3d4) = uVar12;
  uVar26 = (uVar28 ^ *(uint *)(lVar5 + -0x9ec)) + uVar26 ^ uVar17;
  *(uint *)(lVar5 + -0xc04) = uVar26;
  bVar3 = DAT_1826708bc;
  uVar31 = DAT_182670820;
  uVar28 = DAT_182670808;
  uVar8 = DAT_1826707f4;
  uVar17 = uVar26 ^ uVar18 ^ uVar17;
  uVar18 = uVar18 ^ uVar17;
  uVar33 = uVar12 ^ DAT_182670820 ^ DAT_182670850;
  *(uint *)(lVar5 + -0x68c) = uVar17;
  uVar12 = DAT_1826707b0;
  uVar22 = (ulonglong)DAT_1826707b0;
  uVar26 = *(uint *)(lVar5 - (uVar23 ^ 0xaff6f56b));
  uVar13 = DAT_1826707b0 ^ uVar8;
  uVar15 = (ulonglong)uVar13;
  *(uint *)(lVar5 + -0x8e0) = uVar33;
  uVar17 = DAT_1826708c0;
  uVar33 = uVar33 ^ DAT_18267084c;
  *(uint *)(lVar5 + -0x7e4) = uVar26 ^ uVar24 | uVar18;
  uVar14 = (ulonglong)DAT_182670a48;
  DAT_1826707ac = uVar13;
  *(uint *)(lVar5 + -0x42c) = uVar18 ^ uVar9;
  *(uint *)(lVar5 + -0x398) = uVar33 ^ uVar31;
  pbVar20 = (byte *)((CONCAT44(uVar13,uVar12) ^ 0x12100000ad6fdefe) + *(longlong *)(lVar5 + -0x30));
  *(ulonglong *)(lVar5 + -0x2e8) = (ulonglong)pbVar20 ^ uVar14;
  *(byte *)(lVar5 - ((ulonglong)uVar8 ^ 0xbf7fd8e7)) = *pbVar20 ^ bVar3 ^ (byte)DAT_182670adc;
  *(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0xbf7fdc2a)) = (bVar3 ^ *(byte *)(lVar5 + -0x619)) ^ uVar28;
  *(uint *)(lVar5 + -0xc34) =
       (*(uint *)(lVar5 + -0x398) ^ DAT_18267084c) + (uVar12 ^ 0x664b93dd) ^ DAT_182670acc;
  *(uint *)(lVar5 + -0xa34) = (*(uint *)(lVar5 + -0x2d4) ^ uVar28) << 0x11 ^ uVar17;
  uVar26 = DAT_182670a3c;
  lVar4 = DAT_1826707a0;
  puVar25 = (uint *)(lVar5 - ((ulonglong)uVar8 ^ 0xbf7fd2ca));
  *(uint *)(DAT_1826707a0 + -0xc0c) =
       (*puVar25 ^ DAT_182670acc) -
       (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0xad6fd4ca)) ^ uVar17) ^ DAT_182670998;
  *(ulonglong *)(lVar4 + -0xf0) = 0x407c19d4af36efbe - (CONCAT44(uVar13,uVar8) ^ 0xeeab7d53c6ade599)
  ;
  uVar24 = (*(uint *)(lVar4 - (uVar15 ^ 0x12100c0c)) ^ DAT_182670998) *
           (*(uint *)(lVar4 + -0x42c) ^ uVar9);
  *(uint *)(lVar4 + -0x280) = uVar24 ^ uVar26;
  lVar5 = DAT_1826707a0;
  uVar14 = (ulonglong)DAT_182670924;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x248);
  uVar28 = (*(uint *)(lVar4 + -0x2d4) ^ uVar28) * (uVar12 ^ 0xad6fdefe) ^ DAT_182670944;
  *(uint *)(DAT_1826707a0 + -0x540) = uVar28;
  uVar26 = DAT_182670948;
  uVar28 = (uVar28 ^ DAT_182670944) + uVar24 ^ DAT_182670948;
  *(byte *)(lVar5 + -0xc35) = *(byte *)(*puVar1 ^ uVar14) ^ (byte)DAT_182670adc;
  *(uint *)(lVar5 - ((ulonglong)uVar8 ^ 0xbf7fd712)) = uVar28;
  *(uint *)(lVar5 + -0xc04) =
       (uVar26 ^ *(uint *)(lVar5 + -0x9ec)) << (((byte)uVar12 ^ 0xf3) & 0x1f) ^ uVar17;
  *(ulonglong *)(lVar5 + -0x1b8) =
       CONCAT44(uVar8,uVar13) ^ 0x82a9e2bee87c170e | CONCAT44(uVar13,uVar8) ^ 0x792f8cfacc8d6c19;
  uVar28 = DAT_182670a5c;
  uVar24 = DAT_1826707d8;
  lVar4 = DAT_1826707a0;
  uVar35 = (ulonglong)DAT_1826707d8;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar8 ^ 0xbf7fd91a)) =
       (*(uint *)(DAT_1826707a0 - (uVar35 ^ 0xed5db109)) ^ uVar26) >> (((byte)uVar12 ^ 0xed) & 0x1f)
       ^ DAT_182670a5c;
  uVar26 = *(uint *)(lVar4 + -0x42c) ^ DAT_182670a2c;
  *(longlong *)(lVar4 + -0x558) =
       *(longlong *)(lVar4 - (uVar15 ^ 0x121001b8)) << ((byte)*(undefined8 *)(lVar4 + -0x68) & 0x3f)
  ;
  uVar26 = uVar26 + (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^ DAT_182670a00;
  *puVar30 = (uVar28 ^ *(uint *)(lVar4 + -0x7e4) | *(uint *)(lVar4 + -0xc04) ^ uVar17) ^
             DAT_182670884;
  *(uint *)(lVar4 - ((ulonglong)uVar8 ^ 0xbf7fdd2a)) = uVar26;
  *(uint *)(lVar4 - (uVar15 ^ 0x1210068c)) =
       *(uint *)(lVar4 + -0x3d4) ^ DAT_182670a38 ^ DAT_182670a00;
  *(uint *)(lVar4 + -0x8e0) = DAT_18267087c ^ DAT_182670884 ^ *puVar30;
  *(longlong *)(lVar4 - (uVar22 ^ 0xad6fd206)) =
       *(longlong *)(lVar4 + -0xd38) - *(longlong *)(lVar4 + -0x4c8);
  uVar9 = DAT_1826708cc;
  uVar26 = DAT_1826707e8;
  *(uint *)(lVar4 + -0x398) = *(uint *)(lVar4 + -0x68c) ^ DAT_1826708cc ^ DAT_182670a38;
  *puVar25 = *(uint *)(lVar4 + -0x8e0) ^ DAT_18267087c ^ uVar31;
  *(ulonglong *)(lVar4 - (uVar15 ^ 0x12100610)) =
       CONCAT44(uVar26,uVar13) ^ 0x981cfcaab082db0f | *(ulonglong *)(lVar4 + -0x4c8);
  bVar3 = DAT_182670b10;
  uVar31 = DAT_1826707cc;
  uVar28 = DAT_1826707bc;
  uVar21 = (ulonglong)DAT_182670a18;
  uVar14 = (ulonglong)DAT_1826707bc;
  uVar34 = CONCAT44(uVar8,DAT_1826707c0);
  uVar23 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar4 + -0x270) =
       (CONCAT44(uVar12,DAT_1826707c0) ^ 0xad6fdefe1dd24bcb) +
       (CONCAT44(uVar13,DAT_1826707c8) ^ 0x1210000086924124) * 0x20 + *(longlong *)(lVar4 + -0x30) ^
       uVar21;
  uVar17 = DAT_182670808;
  *(ulonglong *)(lVar4 + -0x5c0) =
       CONCAT44(uVar13,uVar24) ^ CONCAT44(uVar7,uVar12) ^ 0x6198bed9fbc4c9a9;
  *(byte *)(lVar4 + -0x619) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar14 ^ 0x5ed477c1)) ^ uVar21) ^ bVar3 ^
       (byte)DAT_182670adc;
  *(ulonglong *)(lVar4 + -0x410) =
       (CONCAT44(uVar29,uVar31) ^ 0xa59ce356484214ba) - (uVar34 ^ 0x9835b4452f70d9be);
  uVar12 = *(uint *)(lVar4 + -0xc34) ^ DAT_182670820;
  uVar26 = DAT_1826707dc ^ 0x74dbb29c;
  *(uint *)(lVar4 + -0xa34) = (bVar3 ^ *(byte *)(lVar4 + -0x619)) ^ uVar17;
  uVar6 = DAT_1826707d4;
  *(uint *)(lVar4 - ((ulonglong)uVar8 ^ 0xbf7fd2f2)) = uVar12 + uVar26 ^ DAT_1826709a0;
  uVar14 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar4 + -0x588) =
       *(longlong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0xaae679f7)) -
       (CONCAT44(uVar6,uVar13) ^ 0x811f29946486713a);
  uVar7 = DAT_182670940;
  *(uint *)(lVar4 + -0x2d4) =
       (*(uint *)(lVar4 - (uVar14 ^ 0xaff6f74b)) ^ uVar17) << (((byte)DAT_1826707ec ^ 0x91) & 0x1f)
       ^ DAT_182670988;
  uVar26 = DAT_1826707c4;
  uVar14 = CONCAT44(uVar19,DAT_1826707e4);
  uVar19 = (*puVar27 ^ DAT_1826709a0) -
           (*(uint *)(lVar4 - ((ulonglong)DAT_1826707e4 ^ 0x41248446)) ^ DAT_182670988) ^
           DAT_182670870;
  *(uint *)(lVar4 + -0x280) = uVar19;
  uVar12 = DAT_18267091c;
  uVar29 = (*(uint *)(lVar4 + -0x398) ^ uVar9) * (uVar19 ^ DAT_182670870);
  *(ulonglong *)(lVar4 + -0xbb0) =
       (CONCAT44(uVar26,uVar24) ^ 0x267928f0edb34e3b) + (uVar14 ^ 0x85f3e22651d42854);
  *(uint *)(lVar4 + -0x540) = uVar29 ^ uVar7;
  uVar19 = DAT_1826707f0;
  uVar36 = (ulonglong)DAT_1826707b8;
  uVar26 = (*(uint *)(lVar4 + -0xa34) ^ uVar17) * 0xb ^ DAT_182670aac;
  *(uint *)(lVar4 + -0x9ec) = uVar26;
  lVar5 = DAT_1826707a0;
  uVar26 = uVar26 ^ DAT_182670aac;
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) =
       *(ulonglong *)(lVar4 - (uVar35 ^ 0xed5db355)) >> (((byte)uVar19 ^ 0xf8) & 0x3f);
  uVar14 = (ulonglong)DAT_1826707d0;
  *(uint *)(lVar5 - ((ulonglong)uVar31 ^ 0x85f69552)) = uVar29 + uVar26 ^ uVar12;
  uVar26 = DAT_1826707a8;
  lVar4 = DAT_1826707a0;
  uVar31 = (*(uint *)(DAT_1826707a0 - (uVar14 ^ 0xebb6f4d9)) ^ uVar12) <<
           (((byte)uVar31 ^ 0x5b) & 0x1f);
  uVar24 = uVar31 ^ DAT_182670b0c;
  *(uint *)(DAT_1826707a0 + -0x42c) =
       (*(uint *)(DAT_1826707a0 + -0xc04) ^ uVar12) >> (((byte)uVar6 ^ 0x9b) & 0x1f) ^ DAT_182670984
  ;
  *(uint *)(lVar4 + -0x7e4) = uVar24;
  uVar21 = (ulonglong)DAT_18267092c;
  *(uint *)(lVar4 - (uVar23 ^ 0x85f69a82)) =
       (*(uint *)(lVar4 - ((ulonglong)uVar26 ^ 0xaae67913)) ^ DAT_182670984 | uVar31) ^
       DAT_1826709f4;
  uVar12 = (*(uint *)(lVar4 + -0x398) ^ uVar9) + (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^
           DAT_182670ae0;
  *(uint *)(lVar4 + -0x8e0) = *(uint *)(lVar4 + -0x3d4) ^ DAT_18267099c ^ DAT_1826709f4;
  *puVar30 = uVar12;
  uVar31 = uVar12 ^ DAT_182670a28 ^ DAT_182670ae0;
  *(uint *)(lVar4 + -0x68c) = uVar31;
  uVar12 = DAT_1826709a4;
  *(uint *)(lVar4 + -0xc34) = DAT_1826709a4 ^ DAT_182670a28 ^ uVar31;
  uVar14 = (ulonglong)DAT_1826707e0;
  *(uint *)(lVar4 + -0xc0c) = (DAT_1826707b4 ^ 0xbf0faeef) >> (((byte)uVar26 ^ 0x22) & 0x1f);
  *(uint *)(lVar4 + -0x2d4) =
       *(uint *)(lVar4 - (uVar14 ^ 0xaae675df)) ^ DAT_182670a34 ^ DAT_18267099c;
  bVar3 = DAT_182670ad4;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xad6fda06)) =
       (CONCAT44(uVar32,uVar28) ^ 0x402484805ed475b1) * 0x20 + (uVar34 ^ 0xbf7fdefe1dd24bd6) +
       *(longlong *)(lVar4 + -0x30) ^ uVar21;
  uVar28 = DAT_182670ab0;
  uVar26 = DAT_1826707d8;
  bVar10 = *(byte *)(uVar21 ^ *(ulonglong *)(lVar4 + -0x4f8)) ^ bVar3 ^ (byte)DAT_182670adc;
  uVar31 = (*(uint *)(lVar4 + -0x2d4) ^ DAT_182670a34) + (uVar19 ^ 0x56d296f5) ^ DAT_182670840;
  *(uint *)(lVar4 + -0xa34) = uVar31;
  uVar31 = uVar31 ^ DAT_182670840;
  *(byte *)(lVar4 + -0xc35) = bVar10;
  uVar19 = (uint)(bVar10 ^ bVar3);
  *(uint *)(lVar4 + -0x280) = uVar19 ^ uVar28;
  uVar14 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar4 + -0x540) = uVar19 << 0x11 ^ DAT_182670aa8;
  *(uint *)(lVar4 - ((ulonglong)DAT_1826707c4 ^ 0xaff6f493)) =
       uVar31 - (*(uint *)(lVar4 - (uVar36 ^ 0xd69b46e5)) ^ DAT_182670aa8) ^ DAT_1826708d4;
  uVar21 = (ulonglong)DAT_1826707c8;
  *(uint *)(lVar4 + -0xc04) =
       (*(uint *)(lVar4 - (uVar21 ^ 0x869248c8)) ^ DAT_1826708d4) *
       (uVar12 ^ *(uint *)(lVar4 + -0xc34)) ^ DAT_182670a74;
  uVar19 = DAT_1826709b0;
  *(uint *)(lVar4 - (uVar14 ^ 0x3f7dc16e)) =
       (uVar28 ^ *(uint *)(lVar4 + -0x280)) * (uVar26 ^ 0xed5db8f3) ^ DAT_1826709b0;
  uVar12 = DAT_182670ad8;
  *(uint *)(lVar4 + -0x42c) =
       (*(uint *)(lVar4 + -0xc04) ^ DAT_182670a74) + (uVar19 ^ *(uint *)(lVar4 + -0x7e4)) ^
       DAT_182670ad8;
  *(uint *)(lVar4 + -0x398) =
       (*(uint *)(lVar4 - (uVar15 ^ 0x1210042c)) ^ uVar12) << 0xd ^ DAT_1826708ac;
  *(ulonglong *)(lVar4 + -0x890) =
       *(ulonglong *)(lVar4 - (uVar21 ^ 0x86924a54)) | *(ulonglong *)(lVar4 + -0xb70);
  *puVar30 = (*(uint *)(lVar4 - ((ulonglong)DAT_1826707dc ^ 0xbffffb93)) ^ uVar12) >>
             (((byte)uVar26 ^ 0xf6) & 0x1f) ^ DAT_182670908;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar11 * 4) = uVar2 ^ uVar16;
  return;
}



############ FUN_ 180d382c0 size=3412 ############

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

void FUN_180d382c0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  undefined4 uVar18;
  byte bVar19;
  byte bVar20;
  ulonglong uVar21;
  uint uVar22;
  byte *pbVar23;
  ulonglong uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  uint uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  
  uVar17 = DAT_182670918;
  uVar13 = DAT_1826707f4;
  lVar2 = DAT_1826707a0;
  uVar28 = ~DAT_1826707f4;
  uVar1 = *(uint *)(&DAT_18260f760 + DAT_182670c80);
  uVar22 = *(uint *)(&DAT_18260f758 + DAT_182670c80) ^ DAT_1826707f4;
  uVar21 = (ulonglong)DAT_182670918;
  uVar26 = (ulonglong)DAT_1826709fc;
  bVar19 = (byte)uVar28;
  DAT_1826707d8 = uVar28;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x6a8) ^ (ulonglong)DAT_18267092c) =
       (byte)DAT_182670918 ^ *(byte *)(DAT_1826707a0 + -0x1b9);
  *(byte *)(lVar2 + -0x1b9) = bVar19 ^ 0x35;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar13 ^ 0xa3b19141)) = *(undefined8 *)(lVar2 + -0x1c8);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar13 ^ 0xa3b19289)) = *(undefined8 *)(lVar2 + -0x650);
  *(ulonglong *)(lVar2 + -0x548) =
       CONCAT44(DAT_182670a10,DAT_182670a10) ^ *(ulonglong *)(lVar2 + -0x998) ^ 0x592c6ae413b24101;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar28 ^ 0x5c4e640e)) = *(ulonglong *)(lVar2 + -0x2b8) ^ uVar26
  ;
  pbVar23 = *(byte **)(lVar2 + -0x170);
  *(ulonglong *)(lVar2 + -0x970) = (ulonglong)pbVar23 ^ (ulonglong)DAT_182670938;
  *(byte **)(lVar2 + -0x270) = pbVar23 + (CONCAT44(uVar13,uVar28) ^ 0xa3b193f95c4e6c07);
  *(byte *)(lVar2 + -0xd2a) = (byte)DAT_182670814 ^ DAT_1826709e0 ^ *pbVar23;
  *(byte *)(lVar2 + -0x1a9) = (byte)uVar13 ^ 0xfe;
  *(byte *)(*(ulonglong *)(lVar2 + -0x950) ^ (ulonglong)DAT_182670800) = bVar19 ^ 0x38;
  pbVar23 = (byte *)(*(ulonglong *)(lVar2 + -0x808) ^ uVar26);
  *(byte **)(lVar2 + -0xb0) = pbVar23 + (CONCAT44(uVar28,uVar13) ^ 0x5c4e6c06a3b193f8);
  *pbVar23 = *(byte *)(lVar2 + -0xd2a) ^ (byte)DAT_182670814;
  uVar14 = DAT_1826707e4;
  uVar12 = DAT_1826707d0;
  uVar10 = DAT_1826707c8;
  uVar8 = DAT_1826707bc;
  uVar6 = DAT_1826707b8;
  uVar24 = (ulonglong)DAT_182670a54;
  uVar27 = (ulonglong)DAT_182670a18;
  uVar32 = (ulonglong)DAT_1826707bc;
  uVar30 = (ulonglong)DAT_1826707b8;
  *(byte *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0x82c05c33)) = (byte)uVar13 ^ 0x12;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (CONCAT44(uVar14,uVar12) ^ 0xb2833526eb8ce8c9) + 0x47aa32ea7e80bde4;
  *(undefined8 *)(lVar2 + -0x1d0) = *(undefined8 *)(lVar2 + -0x270);
  *(ulonglong *)(lVar2 + -0x5d8) = *(ulonglong *)(lVar2 + -0xb0);
  *(ulonglong *)(lVar2 + -0xaf8) = uVar27 ^ *(ulonglong *)(lVar2 + -0xb0);
  uVar26 = *(ulonglong *)(lVar2 - (uVar30 ^ 0x7d3fab36));
  *(ulonglong *)(lVar2 + -0x390) = uVar26 ^ uVar24;
  uVar7 = DAT_1826707b4;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0x40000520)) =
       (CONCAT44(DAT_1826707b4,uVar28) ^ 0x9bf9fbbb5c4e6c07) + uVar26;
  bVar25 = (byte)DAT_1826707f4;
  *(byte *)(lVar3 + -0x181) =
       *(byte *)(uVar24 ^ *(ulonglong *)(lVar3 + -0x390)) ^ (byte)DAT_1826708d0 ^ DAT_1826709e0;
  uVar9 = DAT_1826707c4;
  *(byte *)(lVar3 - ((ulonglong)DAT_1826707f0 ^ 0x82c05020)) = bVar25 ^ 0xd7;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x2f8) ^ (ulonglong)DAT_1826708f0) = 0xaa;
  pbVar23 = (byte *)(*(ulonglong *)(lVar3 + -0xaf8) ^ uVar27);
  *(byte **)(lVar3 + -0xd80) = pbVar23 + (CONCAT44(uVar9,uVar10) ^ 0x10272feffbfbf9dd);
  *pbVar23 = *(byte *)(lVar3 + -0x181) ^ (byte)DAT_1826708d0;
  uVar11 = DAT_1826707cc;
  *(ulonglong *)(lVar3 + -0x38) = *(ulonglong *)(lVar3 + -0xd80);
  *(byte *)(lVar3 + -0x181) = (byte)uVar11 ^ 0x2b;
  *(undefined8 *)(lVar3 + -0xa20) = *(undefined8 *)(lVar3 + -0x560);
  *(ulonglong *)(lVar3 + -0xb70) =
       (CONCAT44(uVar12,uVar6) ^ 0x7a4739d7e4865b94) +
       (CONCAT44(uVar13,uVar13) ^ 0x8bdc94d867d994d3);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x2b0) =
       (CONCAT44(uVar9,uVar11) ^ 0xa1e07826665ffc3) + (CONCAT44(uVar6,uVar28) ^ 0x70f6039b8a63598f);
  uVar24 = (ulonglong)DAT_182670a20;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d4 ^ 0xb1a3fcab)) =
       *(ulonglong *)(lVar3 + -0xd80) ^ uVar21;
  *(longlong *)(lVar2 + -0x6f0) = *(longlong *)(lVar2 + -0xce0) << 0x28;
  uVar16 = DAT_1826707f4;
  uVar15 = DAT_1826707f0;
  uVar26 = (ulonglong)DAT_1826707b4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707f4 ^ 0xa3b191a1)) =
       *(ulonglong *)(lVar2 + -0xa20) ^ uVar24;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0x82c059a9)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0x9bf9f9e3)) ^ uVar24) +
       (CONCAT44(uVar15,DAT_1826707e8) ^ 0x82c0551982c05118);
  lVar3 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x5b1) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 + -600) ^ uVar24) ^ (byte)DAT_182670834 ^
       DAT_1826709e0;
  uVar13 = DAT_1826707d4;
  lVar4 = DAT_1826707a0;
  *(undefined1 *)(lVar3 - ((ulonglong)DAT_1826707d4 ^ 0xb1a3f289)) = 0x9a;
  uVar9 = DAT_1826707c4;
  *(byte *)(*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c4 ^ 0x10272caf)) ^
           (ulonglong)DAT_182670930) = bVar19 ^ 0xb9;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x520) =
       (CONCAT44(uVar8,uVar9) ^ 0x4000004010272fee) +
       (*(ulonglong *)(DAT_1826707a0 + -0x538) ^ (ulonglong)uVar17);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar16 ^ 0xa3b196c1)) ^ (ulonglong)uVar17) =
       *(byte *)(lVar3 - ((ulonglong)DAT_1826707e8 ^ 0x82c054a8)) ^ (byte)DAT_182670834;
  *(byte *)(lVar2 - ((ulonglong)DAT_1826707b4 ^ 0x9bf9fe0a)) = (byte)DAT_1826707b8 ^ 0x1a;
  *(undefined8 *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0x82c05d79)) = *(undefined8 *)(lVar2 + -0x520)
  ;
  *(longlong *)(lVar2 + -0x220) =
       *(longlong *)(lVar2 - ((ulonglong)uVar10 ^ 0xfbfbfddc)) +
       *(longlong *)(lVar2 - ((ulonglong)DAT_1826707c4 ^ 0x10272d5f));
  uVar9 = DAT_1826707e4;
  uVar24 = (ulonglong)DAT_182670a04;
  uVar21 = (ulonglong)DAT_1826707a8;
  uVar26 = (ulonglong)DAT_1826707e4;
  bVar20 = (byte)DAT_1826707a8;
  *(undefined8 *)(lVar2 + -0xb18) = *(undefined8 *)(lVar2 - (uVar21 ^ 0xa974389d));
  *(ulonglong *)(lVar2 + -0x9e0) =
       (CONCAT44(uVar12,uVar13) ^ 0xf05f643fbe7cfb94) << (((byte)uVar16 ^ 0xe0) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar27 = (ulonglong)DAT_182670958;
  *(ulonglong *)(DAT_1826707a0 + -0xc68) = *(ulonglong *)(DAT_1826707a0 + -0xc60) ^ uVar27;
  pbVar23 = *(byte **)(lVar2 - (uVar26 ^ 0x82c05fc1));
  *(ulonglong *)(lVar2 + -0x698) = (ulonglong)pbVar23 ^ uVar24;
  *(ulonglong *)(lVar2 + -0x610) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0x82c05821)) | 0x953297cdba5c68ac;
  uVar24 = (ulonglong)DAT_1826707f4;
  *(byte **)(lVar2 + -0x4b8) = pbVar23 + (CONCAT44(uVar15,uVar9) ^ 0x82c0551982c054d8);
  bVar25 = (byte)DAT_182670a40;
  uVar12 = DAT_1826707ec;
  lVar2 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707ec;
  uVar26 = *(ulonglong *)(DAT_1826707a0 + -0x570);
  *(ulonglong *)(DAT_1826707a0 + -0x438) =
       *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0xa3b19149)) |
       CONCAT44(DAT_1826707ec,uVar28) ^ 0x6f94596011547e60;
  *(byte *)(lVar2 + -0x9f9) = bVar25 ^ *pbVar23 ^ DAT_1826709e0;
  *(byte *)(lVar2 + -0x699) = (byte)uVar12 ^ 0xa3;
  *(byte *)(uVar26 ^ DAT_182670a90) = bVar20 ^ 0xe9;
  pbVar23 = (byte *)(uVar27 ^ *(ulonglong *)(lVar2 + -0xc68));
  uVar27 = (ulonglong)DAT_182670884;
  *(byte **)(lVar2 + -0x8d8) = pbVar23 + (CONCAT44(uVar14,uVar12) ^ 0x82c054d9b1a3f992);
  *(uint *)(lVar2 + -0xcec) = (uVar11 ^ 0x52ce247a) + (uVar8 ^ 0xb787b8ce);
  *pbVar23 = bVar25 ^ *(byte *)(lVar2 + -0x9f9);
  *(byte *)(lVar2 + -0x9f9) = (byte)uVar11 ^ 0x8a;
  uVar9 = DAT_1826707c4;
  bVar25 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e4 ^ 0x82c058c1)) =
       (CONCAT44(uVar28,uVar11) ^ 0x4b600e5336fc8766) >>
       ((byte)*(undefined8 *)(lVar2 + -0x410) & 0x3f);
  uVar31 = (ulonglong)DAT_1826707b4;
  uVar26 = CONCAT44(uVar28,DAT_1826707b4);
  *(undefined8 *)(lVar2 + -0x260) = *(undefined8 *)(lVar2 - (uVar30 ^ 0x7d3fa23e));
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x400000b0)) =
       (CONCAT44(uVar15,uVar8) ^ 0x981c711cc407d68a) >> ((bVar25 ^ 0xcf) & 0x3f);
  pbVar23 = *(byte **)(lVar2 + -0x4b8);
  *(byte **)(lVar2 + -0x238) = pbVar23;
  *(ulonglong *)(lVar2 + -0x738) = *(ulonglong *)(lVar2 + -0x260) ^ uVar27;
  *(ulonglong *)(lVar2 + -0x588) = (uVar26 ^ 0xd1fbbf3ce83ef389) - *(longlong *)(lVar2 + -0x6f0);
  uVar24 = (ulonglong)DAT_182670a7c;
  uVar26 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar2 + -0xd10) = uVar24 ^ (ulonglong)pbVar23;
  *(ulonglong *)(lVar2 + -0x870) =
       (*(ulonglong *)(lVar2 - (uVar26 ^ 0x82c05c09)) ^ uVar24) +
       (CONCAT44(uVar11,uVar9) ^ 0xb99b65dc10272fee);
  bVar25 = (byte)DAT_1826709ec;
  uVar8 = DAT_1826707c8;
  lVar2 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707c8;
  *(byte *)(DAT_1826707a0 + -0xfa) = *pbVar23 ^ (byte)DAT_1826709ec ^ DAT_1826709e0;
  *(byte *)(lVar2 + -0x489) = (byte)DAT_1826707b8 ^ 0xf8;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0x858) ^ (ulonglong)DAT_182670aec) = 0xbe;
  uVar10 = DAT_1826707d4;
  *(ulonglong *)(lVar2 - (uVar26 ^ 0xfbfbf8c4)) =
       *(longlong *)(lVar2 + -0xce0) - (CONCAT44(uVar6,uVar9) ^ 0x5b0a19cbbd12337e);
  uVar26 = CONCAT44(DAT_1826707c0,uVar28);
  *(ulonglong *)(lVar2 + -0xc58) =
       (CONCAT44(uVar8,uVar11) ^ 0xfbfbf9dcb99b65dd) + (*(ulonglong *)(lVar2 + -0x738) ^ uVar27);
  uVar18 = DAT_182670ae4;
  uVar6 = DAT_1826707b0;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x40000dc8)) =
       uVar26 ^ 0xa3c91f7199fce327 | *(ulonglong *)(lVar2 + -0xcf8);
  *(byte *)(*(ulonglong *)(lVar2 + -0x738) ^ uVar27) = bVar25 ^ *(byte *)(lVar2 + -0xfa);
  uVar8 = DAT_1826707f0;
  *(byte *)(lVar2 + -0xfa) = (byte)uVar12 ^ 0x65;
  uVar5 = DAT_182670a8c;
  *(uint *)(lVar2 - ((ulonglong)uVar8 ^ 0x82c05f2d)) =
       (uVar10 ^ 0x893bc8f3) * *(int *)(lVar2 + -0xb54);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar6 ^ 0x24175b03)) = *(undefined8 *)(lVar2 + -0xc58);
  lVar3 = DAT_1826707a0;
  uVar30 = (ulonglong)DAT_182670994;
  uVar27 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar29 ^ 0xb1a3f87b)) ^ CONCAT44(uVar5,uVar5)) ^
       CONCAT44(uVar18,uVar18);
  *(undefined8 *)(lVar3 - ((ulonglong)DAT_1826707d0 ^ 0x6c37273f)) =
       *(undefined8 *)(lVar3 - (uVar21 ^ 0xa9743d9d));
  uVar5 = DAT_1826707ac;
  *(ulonglong *)(lVar3 + -0x1d8) = *(ulonglong *)(lVar3 + -0x5a8) ^ uVar30;
  lVar2 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_182670860;
  *(uint *)(lVar3 - (uVar31 ^ 0x9bf9f7b7)) = (uVar8 ^ 0x3415a0f7) << (((byte)uVar5 ^ 0x1a) & 0x1f);
  uVar8 = DAT_1826707e0;
  uVar24 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar2 - (uVar32 ^ 0x400007c8)) = *(ulonglong *)(lVar2 + -0x9a8) ^ uVar26;
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xbffffa7f)) =
       CONCAT44(uVar8,DAT_1826707e4) ^ 0x98841129efa1ceb8 |
       CONCAT44(uVar7,uVar16) ^ 0xa5973c162f53875c;
  bVar25 = (byte)DAT_18267089c;
  pbVar23 = (byte *)(*(ulonglong *)(lVar2 + -0x788) ^ uVar26);
  bVar20 = (byte)DAT_18267089c ^ DAT_1826709e0;
  *(byte **)(lVar2 + -0xdc8) = pbVar23 + (CONCAT44(uVar15,uVar11) ^ 0x82c05519b99b65dd);
  *(byte *)(lVar2 + -0x471) = bVar20 ^ *pbVar23;
  *(byte *)(lVar2 - (uVar24 ^ 0x95a494c5)) = bVar19 ^ 0xab;
  *(undefined1 *)(*(ulonglong *)(lVar2 + -0xd50) ^ (ulonglong)DAT_182670a1c) = 0x7d;
  *(ulonglong *)(lVar2 + -0xbd8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0xb1a3f84b)) ^ uVar30) +
       (CONCAT44(uVar15,uVar12) ^ 0x82c05519b1a3f992);
  *(byte *)(lVar2 - (uVar27 ^ 0xbffffe65)) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar21 ^ 0xa974367d)) ^ (ulonglong)DAT_182670a54) ^
       DAT_1826709e0;
  bVar19 = (byte)DAT_1826707f4;
  *(byte *)(lVar2 + -0x1da) = (byte)uVar10 ^ 0xee;
  *(byte *)(uVar30 ^ *(ulonglong *)(lVar2 + -0x1d8)) = bVar25 ^ *(byte *)(lVar2 + -0x471);
  *(byte *)(lVar2 + -0x471) = bVar19 ^ 0x47;
  *(longlong *)(lVar2 + -0x890) = *(longlong *)(lVar2 + -0x7d8) << (((byte)uVar6 ^ 0xad) & 0x3f);
  uVar26 = *(ulonglong *)(lVar2 - (uVar21 ^ 0xa9743e35));
  *(undefined8 *)(lVar2 + -0x650) = *(undefined8 *)(lVar2 + -0xdc8);
  uVar21 = (ulonglong)_DAT_1826708f8;
  *(ulonglong *)(lVar2 + -0x1c8) = uVar26;
  *(ulonglong *)(lVar2 + -0x2b8) = uVar21 ^ uVar26;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c4 ^ 0x10272e9f)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0x82c05749)) ^ (ulonglong)DAT_182670854;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar1 ^ uVar28) * 4) = uVar22;
  return;
}



############ FUN_ 180ce7d30 size=5630 ############

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

void FUN_180ce7d30(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  byte bVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  uint uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong *puVar47;
  byte bVar48;
  ulonglong uVar49;
  uint uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_res18;
  byte local_res20;
  byte local_108;
  byte local_c0;
  byte local_a0;
  byte local_78;
  
  uVar14 = DAT_1826707f4;
  uVar13 = DAT_1826707f0;
  uVar12 = DAT_1826707e4;
  uVar11 = DAT_1826707d0;
  uVar8 = DAT_1826707bc;
  uVar7 = DAT_1826707b8;
  uVar6 = DAT_1826707ac;
  uVar28 = (ulonglong)DAT_1826707f4;
  uVar45 = (ulonglong)DAT_1826707ac;
  uVar41 = (ulonglong)DAT_1826707e4;
  uVar29 = (ulonglong)DAT_1826707b8;
  uVar51 = (ulonglong)DAT_1826707bc;
  uVar46 = (ulonglong)DAT_1826707d0;
  uVar21 = *(uint *)(&DAT_18260f758 + DAT_182670b90) ^ DAT_1826707f4;
  uVar39 = (ulonglong)DAT_1826707f0;
  uVar27 = DAT_1826707ac ^ DAT_1826707d0;
  uVar3 = *(uint *)(&DAT_18260f760 + DAT_182670b90);
  uVar42 = DAT_1826707b8 + DAT_1826707bc;
  uVar34 = DAT_1826707e4 ^ DAT_1826707f0;
  uVar50 = DAT_1826707f4 << 0x10 | DAT_1826707f4 >> 0x10;
  uVar31 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar49 = CONCAT44(DAT_1826707f8,DAT_1826707f8);
  DAT_1826707b0 = uVar27;
  DAT_1826707c0 = uVar34;
  DAT_1826707dc = uVar42;
  DAT_1826707e8 = uVar50;
  *(ulonglong *)(DAT_1826707a0 + -0x420) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e4 ^ 0x186e2ad4)) ^
       CONCAT44(DAT_182670938,DAT_182670938) ^ *(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar49 ^
       uVar31;
  lVar4 = DAT_1826707a0;
  uVar37 = (ulonglong)uVar50;
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = CONCAT44(uVar50,uVar34) ^ 0x32496ee535da24cb;
  lVar5 = DAT_1826707a0;
  puVar1 = (ulonglong *)(lVar4 + -0xa18);
  uVar32 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar23 = CONCAT44(DAT_182670b14,DAT_182670b14);
  uVar35 = (ulonglong)uVar42;
  *(ulonglong *)(DAT_1826707a0 + -0x548) =
       (CONCAT44(DAT_182670a2c,DAT_182670a2c) ^ *(ulonglong *)(DAT_1826707a0 + -0x220)) +
       (*puVar1 ^ uVar32) ^ uVar23;
  *(ulonglong *)(lVar5 + -0x9c8) =
       (CONCAT44(uVar13,uVar6) ^ 0x884daf1edd2e6fca) -
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar42 ^ 0x9d523bf2)) ^ uVar31);
  lVar4 = DAT_1826707a0;
  uVar43 = CONCAT44(DAT_182670a30,DAT_182670a30);
  bVar18 = (byte)uVar27;
  *(ulonglong *)(DAT_1826707a0 + -0x438) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x85113409)) ^ uVar32) << ((bVar18 ^ 0x61) & 0x3f)
       ^ uVar43;
  local_res18 = (byte)uVar42;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar14 ^ 0x9cee1c6f)) =
       (CONCAT44(uVar8,uVar11) ^ 0x7c544f9c3d31b46f) - (CONCAT44(uVar6,uVar8) ^ 0x76d915f4de3c8668);
  uVar15 = DAT_182670b00;
  uVar36 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar4 + -0xd88) = (*puVar1 ^ uVar32) >> ((local_res18 ^ 0xf8) & 0x3f) ^ uVar36;
  uVar25 = (ulonglong)DAT_182670924;
  uVar26 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0xf9f3aa2)) =
       (CONCAT44(uVar50,uVar34) ^ 0xb3ec11e8af342c16) <<
       (((byte)uVar15 ^ *(byte *)(lVar4 + -0x9e0)) & 0x3f);
  uVar15 = DAT_182670998;
  uVar40 = *(ulonglong *)(lVar4 + -0x438) ^ uVar43;
  uVar24 = CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar32 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0x47d511ff)) ^ uVar36 | uVar40) ^ uVar24;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar32;
  uVar36 = *(ulonglong *)(lVar4 + -0x548) ^ uVar26 ^ uVar32 ^ uVar24 ^ uVar23;
  *(ulonglong *)(lVar4 + -0xbb0) = uVar36;
  lVar4 = DAT_1826707a0;
  uVar30 = CONCAT44(uVar15,uVar15);
  uVar44 = (uVar26 ^ uVar36) << 0x20;
  uVar32 = *(ulonglong *)(DAT_1826707a0 + -0xbb0);
  uVar24 = *(ulonglong *)(DAT_1826707a0 + -0xbb0);
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (uVar26 ^ uVar36) + (*(ulonglong *)(DAT_1826707a0 + -0x610) ^ uVar49) ^ uVar30;
  uVar16 = DAT_182670a90;
  *(ulonglong *)(lVar4 + -0x660) = uVar40 - (CONCAT44(uVar12,uVar7) ^ 0x940f2b1a534ba356);
  uVar15 = DAT_1826709b4;
  *(ulonglong *)(lVar4 + -0xac0) = uVar44 ^ CONCAT44(uVar16,uVar16);
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar25 = uVar24 >> 0x20 ^ uVar36 ^ uVar25;
  *(ulonglong *)(lVar4 + -0x588) = (uVar26 ^ uVar32) >> (((byte)(uVar14 >> 0x10) ^ 0xf1) & 0x3f);
  *(ulonglong *)(lVar4 + -0x630) = uVar25;
  uVar15 = DAT_182670918;
  *(ulonglong *)(lVar4 + -0x1b8) = ((ulonglong)(uVar8 >> 0x10) | uVar35 << 0x10) ^ 0xf88da7af4d58;
  uVar32 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar45 ^ 0x484a296d)) = (uVar36 ^ uVar25 | uVar44) ^ uVar32;
  uVar10 = DAT_1826707c8;
  uVar44 = (ulonglong)DAT_1826707c8;
  uVar40 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar24 = *(ulonglong *)(lVar4 + -0x420) ^ uVar31;
  *(ulonglong *)(lVar4 + -0x658) =
       *(ulonglong *)(lVar4 + -0x410) ^ *(ulonglong *)(lVar4 + -0xb70) ^ uVar40 ^ uVar32 ^ uVar30;
  uVar15 = DAT_182670a84;
  uVar36 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar4 + -0xf0) =
       (*(ulonglong *)(lVar4 - (uVar45 ^ 0x484a2755)) ^ uVar23) + uVar24 ^ uVar36;
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x890) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0x115798ce)) ^ uVar31) << ((bVar18 ^ 0x57) & 0x3f) ^ uVar25
  ;
  uVar20 = (uVar10 << 0x10 | uVar10 & 0xff00) << 8 | uVar10 >> 8 & 0xff00 | DAT_1826707c8 >> 0x18;
  uVar26 = (ulonglong)uVar20;
  uVar32 = CONCAT44(DAT_182670a60,DAT_182670a60);
  bVar19 = (byte)(DAT_1826707c8 >> 0x18);
  DAT_1826707cc = uVar20;
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x7737238)) = uVar24 >> ((bVar19 ^ 0xd8) & 0x3f) ^ uVar32;
  uVar24 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  uVar17 = DAT_1826707e8 ^ 0xda73d1cd;
  uVar32 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x890) | *(ulonglong *)(lVar4 + -0x5c0) ^ uVar32) ^
           uVar24;
  *(ulonglong *)(lVar4 + -0x220) = uVar32;
  *(uint *)(lVar4 + -0x3d4) = uVar17 + (uVar10 ^ 0xe6f609d1);
  uVar25 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  uVar31 = CONCAT44(DAT_18267096c,DAT_18267096c);
  puVar2 = (ulonglong *)(lVar4 + -0xd38);
  uVar32 = *(ulonglong *)(lVar4 + -0xf0) ^ uVar25 ^ uVar32 ^ uVar24 ^ uVar36;
  *(ulonglong *)(lVar4 + -0x9c8) = uVar32;
  uVar17 = DAT_1826707c4;
  uVar24 = (ulonglong)DAT_1826707c4;
  *puVar2 = (CONCAT44(uVar14,uVar20) ^ 0x28528520b20099ce) + (uVar25 ^ uVar32) ^ uVar31;
  uVar9 = DAT_1826707c4;
  uVar22 = (uVar17 << 0x10 | uVar17 & 0xff00) << 8 | uVar17 >> 8 & 0xff00 | DAT_1826707c4 >> 0x18;
  DAT_1826707e0 = uVar22;
  *puVar1 = (CONCAT44(uVar17,uVar22) ^ 0x2292caf3098076f) -
            (CONCAT44(uVar17,uVar22) ^ 0xd87eaa518b8f8601);
  lVar4 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0xf8777ae7)) =
       (CONCAT44(uVar22,uVar17) ^ 0xe15223261aa9855b) +
       (*(ulonglong *)(DAT_1826707a0 + -0x410) ^ uVar30) ^ uVar25;
  uVar15 = DAT_182670a50;
  uVar32 = *puVar2;
  uVar49 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar4 + -0x4c8) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0x9e0)) + (uVar32 ^ uVar31) ^ uVar49;
  uVar30 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar17 ^ 0xcacab237)) =
       (uVar32 ^ uVar31) << (((byte)uVar17 ^ 0xb1) & 0x3f) ^ uVar30;
  bVar38 = (byte)(uVar9 >> 0x18);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xf87775bf)) =
       (CONCAT44(uVar42,uVar10) ^ 0x83fc454b12c3fd29) -
       (CONCAT44(uVar17,uVar8) ^ 0xf5dc84bdfeae1b7a);
  uVar25 = CONCAT44(DAT_18267080c,DAT_18267080c);
  uVar32 = *puVar2;
  *(int *)(lVar4 + -0x8e0) = *(int *)(lVar4 + -0xcec) * *(int *)(lVar4 + -0x598);
  uVar15 = DAT_1826709c4;
  *(ulonglong *)(lVar4 + -0x610) = (uVar32 ^ uVar31) >> ((bVar38 ^ 0xf8) & 0x3f) ^ uVar25;
  uVar9 = DAT_182670a74;
  lVar5 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar15,uVar15);
  uVar52 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x9cee156f)) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x186e2454)) ^ uVar25 |
       uVar30 ^ *(ulonglong *)(lVar4 + -0xd88)) ^ uVar32;
  local_78 = (byte)uVar6;
  *(ulonglong *)(lVar4 + -0x660) =
       *(ulonglong *)(lVar4 - (uVar29 ^ 0x85113ad9)) ^ *(ulonglong *)(lVar4 + -0x438) ^ uVar52 ^
       uVar32 ^ uVar49;
  *(ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0xf877768f)) =
       (CONCAT44(uVar34,uVar8) ^ 0xfcb4d52aff100761) << ((local_78 ^ 0x32) & 0x3f);
  uVar31 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar30 = (CONCAT44(uVar50,uVar22) ^ 0xab75fcffcc44e164) +
           (uVar40 ^ *(ulonglong *)(lVar5 + -0x658));
  *(ulonglong *)(lVar5 + -0xbb0) = uVar30 ^ uVar31;
  uVar15 = DAT_1826708d8;
  *(ulonglong *)(lVar5 + -0x1b8) =
       CONCAT44(uVar17,uVar34) ^ CONCAT44(uVar6,uVar12) ^ 0x30c9d27f8d08378d;
  uVar25 = CONCAT44(uVar15,uVar15);
  uVar32 = (CONCAT44(uVar11,uVar11) ^ 0xe161b50673e74b75) + (*(ulonglong *)(lVar5 + -0xf0) ^ uVar36)
  ;
  *(ulonglong *)(lVar5 + -0xac0) = uVar32 ^ uVar25;
  puVar33 = (ulonglong *)(lVar5 - (uVar35 ^ 0x9d523c42));
  bVar48 = (byte)DAT_182670a40;
  *(byte *)(DAT_1826707a0 + -0x9d2) = *(byte *)(*puVar33 ^ (ulonglong)DAT_182670b14) ^ bVar48;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(undefined8 *)(DAT_1826707a0 + -0xb70) = 0x3a240aab9071d388;
  uVar15 = DAT_1826709a8;
  *(ulonglong *)(lVar4 + -0x630) = uVar32 + uVar30 ^ uVar28;
  uVar30 = CONCAT44(uVar15,uVar15);
  local_c0 = (byte)uVar14;
  local_108 = (byte)uVar7;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar22 ^ 0xbfbfcf82)) =
       (*(ulonglong *)(lVar4 - (uVar35 ^ 0x9d523462)) ^ uVar31) << ((local_c0 ^ 0x47) & 0x3f) ^
       uVar30;
  *(ulonglong *)(lVar4 + -0x420) =
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x630)) << ((local_108 ^ 0x14) & 0x3f);
  uVar36 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar4 - (uVar46 ^ 0xf9f36fa)) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0xbb0)) >> ((bVar19 ^ 200) & 0x3f) ^ uVar36;
  *(ulonglong *)(lVar4 + -0x5c0) =
       (CONCAT44(uVar13,uVar8) ^ 0xed430794399ba3cd) -
       (*(ulonglong *)(lVar4 - (uVar45 ^ 0x484a29ad)) ^ uVar31);
  uVar32 = CONCAT44(DAT_182670948,DAT_182670948);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x11579ece)) =
       (*(ulonglong *)(lVar4 + -0x548) ^ uVar30 | uVar36 ^ *(ulonglong *)(lVar4 + -0x890)) ^ uVar32;
  *(ulonglong *)(lVar4 + -0x9c8) =
       *(ulonglong *)(lVar4 + -0x548) ^ uVar30 | uVar25 ^ *(ulonglong *)(lVar4 + -0xac0);
  uVar25 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  *(ulonglong *)(lVar4 - (uVar26 ^ 0x7737de0)) =
       uVar25 ^ uVar32 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0x220) ^ *(ulonglong *)(lVar4 + -0x630);
  uVar30 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(lVar4 + -0x410) =
       (*(ulonglong *)(lVar4 - (uVar41 ^ 0x186e285c)) ^ uVar25) +
       (uVar49 ^ *(ulonglong *)(lVar4 + -0x4c8)) ^ uVar30;
  *(byte *)(lVar4 - (uVar46 ^ 0xf9f3963)) = *(byte *)(*puVar33 ^ (ulonglong)DAT_182670b14) ^ bVar48;
  uVar32 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar4 - (uVar39 ^ 0xe273a58d)) =
       (*puVar1 ^ uVar25) << ((local_c0 ^ 99) & 0x3f) ^ uVar32;
  uVar15 = DAT_182670968;
  *(ulonglong *)(lVar4 + -0x6b8) =
       (*(ulonglong *)(lVar4 - (uVar24 ^ 0xcacab5a7)) ^ uVar25) >> ((bVar18 ^ 0x7b) & 0x3f) ^ uVar23
  ;
  uVar25 = CONCAT44(uVar15,uVar15);
  *puVar2 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0x11579a56)) ^ uVar23 |
            uVar32 ^ *(ulonglong *)(lVar4 + -0x9e0)) ^ uVar25;
  uVar40 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *(ulonglong *)(lVar4 - (uVar29 ^ 0x85113399)) =
       *(ulonglong *)(lVar4 - (uVar39 ^ 0xe273a155)) ^ *(ulonglong *)(lVar4 - (uVar44 ^ 0xf8777717))
       ^ uVar40 ^ uVar25 ^ uVar30;
  uVar15 = DAT_1826708ac;
  uVar52 = uVar52 ^ *(ulonglong *)(lVar4 + -0x660);
  uVar23 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar4 + -0x610) = (uVar28 ^ *(ulonglong *)(lVar4 + -0x630)) + uVar52 ^ uVar23;
  uVar25 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar27 ^ 0x47d5184f)) =
       uVar52 << ((local_c0 ^ 0x6e) & 0x3f) ^ uVar25;
  uVar16 = DAT_182670a40;
  uVar32 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(lVar4 + -0x588) =
       ((ulonglong)uVar22 * 4 | (ulonglong)(uVar7 >> 0x1e)) ^ 0x2d19d8b46;
  *(ulonglong *)(lVar4 + -0x658) =
       ((ulonglong)uVar9 << 0x19 | (ulonglong)(uVar9 >> 7)) ^ *(ulonglong *)(lVar4 + -0x660) >> 7 ^
       uVar32;
  uVar15 = DAT_182670888;
  puVar47 = (ulonglong *)(lVar4 - (uVar44 ^ 0xf877755f));
  uVar28 = CONCAT44(DAT_182670814,DAT_182670814);
  uVar32 = (*puVar47 ^ uVar32 | *(ulonglong *)(lVar4 + -0x438) ^ uVar25) ^ uVar28;
  *(ulonglong *)(lVar4 + -0x1b8) = uVar32;
  uVar31 = CONCAT44(uVar15,uVar15);
  uVar36 = CONCAT44(DAT_182670990,DAT_182670990);
  uVar32 = *(ulonglong *)(lVar4 - (uVar26 ^ 0x77371e8)) ^ uVar31 ^ uVar28 ^ uVar23 ^ uVar32;
  *(ulonglong *)(lVar4 + -0xf0) = uVar32;
  uVar15 = DAT_1826708d0;
  *(ulonglong *)(lVar4 + -0xb70) =
       (uVar31 ^ uVar32) + (*(ulonglong *)(lVar4 + -0x410) ^ uVar30) ^ uVar36;
  local_a0 = (byte)uVar34;
  uVar26 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x420) = (uVar31 ^ uVar32) << ((local_a0 ^ 0x3e) & 0x3f) ^ uVar26;
  uVar6 = DAT_1826709f8;
  uVar15 = DAT_18267094c;
  lVar4 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x2ba) =
       *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0xdd0) ^ (ulonglong)DAT_1826709f8) ^ (byte)uVar16;
  uVar28 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 - (uVar41 ^ 0x186e29f4)) =
       (uVar31 ^ *(ulonglong *)(lVar4 + -0xf0)) >> ((local_78 ^ 0x34) & 0x3f) ^ uVar28;
  lVar5 = DAT_1826707a0;
  uVar32 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0x484a27dd)) =
       (*(ulonglong *)(lVar4 - (uVar29 ^ 0x851135a1)) ^ uVar28 |
       *(ulonglong *)(DAT_1826707a0 + -0x420) ^ uVar26) ^ uVar32;
  uVar40 = uVar40 ^ *(ulonglong *)(lVar5 + -0xd88);
  uVar31 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar5 + -0x890) =
       uVar31 ^ uVar32 ^ uVar36 ^ *(ulonglong *)(lVar5 + -0xb70) ^ *(ulonglong *)(lVar5 + -0x5c0);
  uVar28 = CONCAT44(DAT_182670820,DAT_182670820);
  *(ulonglong *)(lVar5 + -0xac0) = (*(ulonglong *)(lVar5 + -0x610) ^ uVar23) + uVar40 ^ uVar28;
  uVar32 = CONCAT44(DAT_182670954,DAT_182670954);
  *(undefined8 *)(lVar5 + -0x9c8) = 0x155f5b376b1aacc6;
  uVar15 = _DAT_1826709e0;
  *(ulonglong *)(lVar5 + -0x548) = uVar40 << 0x28 ^ uVar32;
  uVar26 = CONCAT44(uVar15,uVar15);
  uVar30 = uVar40 >> (((byte)uVar17 ^ 0xa7) & 0x3f) ^ uVar26;
  uVar41 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  *(ulonglong *)(lVar5 + -0x220) = uVar30;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar5 + -0x4c8) =
       (*(ulonglong *)(lVar5 - (uVar29 ^ 0x85113c31)) ^ uVar26 | uVar40 << 0x28) ^ uVar41;
  *puVar1 = *(ulonglong *)(lVar5 + -0x438) ^ uVar25 | 0xbff86facac924073;
  lVar5 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar32 = (ulonglong)DAT_182670b14;
  uVar23 = *(ulonglong *)(lVar4 - (uVar39 ^ 0xe273a8a5)) ^
           *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x9d523512)) ^ uVar25 ^ uVar41 ^ uVar28;
  puVar33 = (ulonglong *)(DAT_1826707a0 + -0x390);
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) = uVar23;
  uVar16 = DAT_182670ab0;
  *(byte *)(lVar5 + -0xb19) = *(byte *)(*puVar33 ^ uVar32) ^ (byte)DAT_182670a40;
  uVar41 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 + -0x6b8) =
       (*(ulonglong *)(lVar5 - (uVar51 ^ 0x18410ab1)) ^ uVar36) + (uVar25 ^ uVar23) ^ uVar41;
  *(ulonglong *)(lVar5 - (uVar24 ^ 0xcacab287)) = uVar25 ^ uVar30 ^ uVar26 ^ uVar23;
  uVar23 = CONCAT44(DAT_182670850,DAT_182670850);
  *(ulonglong *)(lVar5 + -0x630) = (uVar25 ^ *(ulonglong *)(lVar5 + -0x9e0)) << 5 ^ uVar23;
  *(ulonglong *)(lVar5 - (uVar24 ^ 0xcacaba37)) =
       (CONCAT44(uVar14,uVar17) ^ 0xd609b7b744110820) <<
       (((byte)uVar15 ^ *(byte *)(lVar5 + -0x220)) & 0x3f);
  local_res20 = (byte)uVar12;
  *(ulonglong *)(lVar5 - (uVar45 ^ 0x484a247d)) =
       (uVar25 ^ *(ulonglong *)(lVar5 + -0x9e0)) >> (((byte)uVar13 ^ 0x56) & 0x3f) ^ uVar43;
  uVar16 = DAT_182670a00;
  uVar32 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *puVar47 = (*(ulonglong *)(lVar5 + -0x660) ^ uVar43 | uVar23 ^ *(ulonglong *)(lVar5 + -0x630)) ^
             uVar32;
  uVar23 = CONCAT44(uVar6,uVar6);
  uVar24 = uVar31 ^ *(ulonglong *)(lVar5 + -0x890);
  uVar25 = CONCAT44(DAT_182670a58,DAT_182670a58);
  *(ulonglong *)(lVar5 + -0x1b8) =
       uVar25 ^ uVar32 ^ uVar41 ^ *(ulonglong *)(lVar5 + -0x6b8) ^ *(ulonglong *)(lVar5 + -0x658);
  uVar32 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar5 + -0x410) = (uVar28 ^ *(ulonglong *)(lVar5 + -0xac0)) + uVar24 ^ uVar32;
  *(ulonglong *)(lVar5 - (uVar46 ^ 0xf9f3e9a)) = uVar24 << ((local_res20 ^ 0x61) & 0x3f) ^ uVar23;
  *(ulonglong *)(lVar5 + -0x420) =
       (uVar41 ^ *(ulonglong *)(lVar5 + -0x6b8)) >> ((bVar38 ^ 0xc3) & 0x3f);
  uVar28 = CONCAT44(DAT_18267093c,DAT_18267093c);
  *(ulonglong *)(lVar5 + -0xbb0) =
       (uVar31 ^ *(ulonglong *)(lVar5 + -0x890)) >> ((local_78 ^ 6) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar5 + -0x5c0) =
       (uVar25 ^ *(ulonglong *)(lVar5 + -0x1b8)) >> ((local_a0 ^ 0x1d) & 0x3f);
  uVar32 = (*(ulonglong *)(lVar5 - (uVar37 ^ 0x1157975e)) ^ uVar28 |
           uVar23 ^ *(ulonglong *)(lVar5 + -0xf0)) ^ uVar32;
  uVar24 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar5 + -0x610) = uVar32;
  uVar15 = DAT_182670944;
  uVar32 = *(ulonglong *)(lVar5 - ((ulonglong)uVar34 ^ 0xfa1d8a39)) ^ uVar24 ^ uVar32;
  *(ulonglong *)(lVar5 + -0x9c8) = uVar32;
  uVar23 = (CONCAT44(uVar20,uVar10) ^ 0xe98dfc94840f0618) + (uVar24 ^ uVar32);
  uVar32 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar5 + -0xd88) = uVar23 ^ CONCAT44(uVar15,uVar15);
  uVar24 = (CONCAT44(uVar10,uVar27) ^ 0xc768a5f94e7b8055) +
           (uVar41 ^ *(ulonglong *)(lVar5 + -0x6b8));
  *(ulonglong *)(lVar5 + -0x548) = uVar24 ^ uVar32;
  uVar15 = DAT_1826709e8;
  *(ulonglong *)(lVar5 + -0x438) =
       *(ulonglong *)(lVar5 - (uVar39 ^ 0xe273a7dd)) ^ uVar28 |
       CONCAT44(uVar13,uVar17) ^ 0x3f9cf61bd03ba2c8;
  uVar37 = CONCAT44(uVar15,uVar15);
  *puVar1 = uVar24 + uVar23 ^ uVar37;
  uVar32 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar5 + -0x4c8) =
       (CONCAT44(uVar42,uVar20) ^ 0x796e4bad4bb634ad) >>
       ((*(byte *)(lVar5 - (uVar51 ^ 0x18410799)) ^ (byte)uVar16) & 0x3f);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0x9d5234a2)) = uVar23 << (((byte)uVar13 ^ 0x74) & 0x3f) ^ uVar32;
  *puVar2 = CONCAT44(uVar12,uVar20) ^ 0xf1616b5a18b84ac1 | uVar37 ^ *puVar1;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar3 ^ uVar50) * 4) = uVar21;
  return;
}



############ FUN_ 180cf9ac0 size=5455 ############

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

void FUN_180cf9ac0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  int iVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  uint uVar19;
  undefined8 *puVar20;
  byte bVar21;
  ulonglong *puVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  ulonglong uVar29;
  byte bVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong *puVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  ulonglong *puVar44;
  ulonglong *puVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  ulonglong uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_res18;
  byte local_res20;
  byte local_d8;
  byte local_c8;
  byte local_c0;
  byte local_78;
  
  uVar16 = DAT_1826709a0;
  uVar15 = DAT_1826707f4;
  uVar14 = DAT_1826707f0;
  uVar10 = DAT_1826707d8;
  uVar7 = DAT_1826707b4;
  lVar5 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707d8;
  uVar26 = (ulonglong)DAT_1826707f4;
  uVar51 = (ulonglong)DAT_1826707f0;
  uVar27 = ~DAT_1826707f0;
  uVar34 = (DAT_1826707d8 << 0x10 | DAT_1826707d8 & 0xff00) << 8 | DAT_1826707d8 >> 8 & 0xff00 |
           DAT_1826707d8 >> 0x18;
  uVar52 = (ulonglong)DAT_1826707b4;
  uVar28 = DAT_1826707b4 | DAT_1826707f4;
  uVar3 = *(uint *)(&DAT_18260f750 + (uVar52 ^ 0x8c02084c) + (longlong)DAT_182670bc4);
  uVar19 = *(uint *)(&DAT_18260f760 + DAT_182670bc4) ^ DAT_1826707f4;
  uVar49 = (ulonglong)uVar34;
  puVar41 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d8 ^ 0xcecf5a03));
  uVar38 = CONCAT44(DAT_182670a20,DAT_182670a20);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0x588);
  uVar35 = *(ulonglong *)(DAT_1826707a0 - (uVar49 ^ 0xbb5cc32e)) ^
           CONCAT44(DAT_182670890,DAT_182670890) | CONCAT44(DAT_182670870,DAT_182670870) ^ *puVar41;
  uVar24 = CONCAT44(DAT_18267096c,DAT_18267096c);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x660);
  uVar36 = uVar35 ^ uVar38;
  DAT_1826707ac = uVar28;
  DAT_1826707d4 = uVar34;
  DAT_1826707e8 = uVar27;
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar36;
  uVar11 = DAT_1826708c0;
  uVar46 = CONCAT44(uVar16,uVar16);
  *puVar1 = (uVar24 ^ *puVar2) - uVar35 ^ uVar46;
  uVar8 = DAT_18267089c;
  lVar6 = DAT_1826707a0;
  uVar31 = CONCAT44(uVar11,uVar11);
  uVar35 = CONCAT44(DAT_18267089c,DAT_18267089c);
  puVar20 = (undefined8 *)(DAT_1826707a0 - ((ulonglong)uVar27 ^ 0x43149678));
  *(ulonglong *)(lVar5 + -0xc18) =
       uVar36 ^ uVar31 ^ uVar35 ^ uVar38 ^ *(ulonglong *)(lVar5 + -0xd88);
  uVar11 = DAT_182670a14;
  uVar43 = (ulonglong)uVar27;
  *(undefined1 *)(lVar6 + -0x6c9) = *(undefined1 *)*puVar20;
  uVar16 = DAT_182670a9c;
  uVar38 = CONCAT44(uVar11,uVar11);
  puVar2 = (ulonglong *)(lVar6 + -0x220);
  *(ulonglong *)(lVar6 + -0x400) =
       ((ulonglong)uVar8 << 0x12 | (ulonglong)(uVar8 >> 0xe)) ^
       *(ulonglong *)(lVar6 + -0xc18) >> 0xe ^ uVar38;
  uVar24 = CONCAT44(uVar16,uVar16);
  *puVar2 = **(ulonglong **)(lVar6 - ((ulonglong)uVar14 ^ 0xbceb69df)) ^ uVar24;
  lVar5 = DAT_1826707a0;
  uVar36 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  bVar30 = (byte)uVar15;
  *(ulonglong *)(DAT_1826707a0 - (uVar49 ^ 0xbb5cc976)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar52 ^ 0x8c02045c)) ^ uVar35) << ((bVar30 ^ 0x4d) & 0x3f)
       ^ uVar36;
  uVar11 = DAT_1826708d0;
  uVar39 = CONCAT44(DAT_182670a54,DAT_182670a54);
  uVar35 = (ulonglong)uVar28;
  *(ulonglong *)(lVar5 + -0xce0) =
       (*(ulonglong *)(lVar5 + -0x6b8) ^ uVar36 | *(ulonglong *)(lVar5 + -0x400) ^ uVar38) ^ uVar39;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x660) =
       (*(ulonglong *)(lVar5 - (uVar51 ^ 0xbceb60f7)) ^ uVar31) -
       (CONCAT44(uVar28,uVar10) ^ 0x191f85bdb5ef2a76) ^ uVar38;
  *(uint *)(lVar5 - (uVar52 ^ 0x8c020b90)) =
       0x8d933710 >> ((byte)*(undefined4 *)(lVar5 + -0x280) & 0x1f);
  puVar45 = (ulonglong *)(lVar5 - (uVar43 ^ 0x431494e0));
  uVar36 = CONCAT44(DAT_18267090c,DAT_18267090c);
  *(ulonglong *)(lVar5 + -0x7d8) =
       (uVar38 ^ *puVar45) - (uVar39 ^ *(ulonglong *)(lVar5 + -0xce0)) ^ uVar36;
  *puVar2 = **(ulonglong **)(lVar5 + -0xb78) ^ uVar24;
  uVar8 = DAT_18267086c;
  lVar6 = DAT_1826707a0;
  puVar42 = (ulonglong *)(lVar5 - ((ulonglong)uVar14 ^ 0xbceb619f));
  uVar31 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  uVar24 = (ulonglong)DAT_18267086c;
  uVar32 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (*puVar42 ^ uVar39) - (CONCAT44(uVar15,uVar10) ^ 0x5f1dac421d3f92c3) ^ uVar31;
  *(ulonglong *)(lVar6 + -0x400) = CONCAT44(uVar28,uVar14) ^ 0x2a4177655dcd7d8d;
  uVar39 = CONCAT44(DAT_182670a64,DAT_182670a64) ^ *puVar1 ^ uVar32 ^ uVar46 ^
           *(ulonglong *)(lVar6 + -0x6f0);
  *(ulonglong *)(lVar6 + -0x6b8) = uVar39;
  uVar11 = DAT_182670a08;
  *(undefined1 *)(lVar6 + -0x6c9) = **(undefined1 **)(lVar6 + -0x418);
  uVar16 = DAT_182670a40;
  lVar5 = DAT_1826707a0;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar6 + -0xd88) =
       ((ulonglong)(uVar8 >> 0x10) | uVar24 << 0x10) ^ uVar39 >> 0x10 ^ uVar38;
  uVar24 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar6 - (uVar26 ^ 0xb8eb631f)) = (uVar39 ^ uVar32) << 0x30 ^ uVar24;
  uVar40 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  *puVar2 = (uVar38 ^ *(ulonglong *)(lVar5 + -0xd88) | uVar24 ^ *(ulonglong *)(lVar5 + -0x660)) ^
            uVar40;
  puVar33 = (ulonglong *)(lVar5 - (uVar49 ^ 0xbb5cca46));
  uVar24 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *puVar42 = (*puVar33 ^ uVar46) - (CONCAT44(uVar7,uVar10) ^ 0xb7b631627f380119) ^ uVar24;
  uVar39 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  puVar22 = (ulonglong *)(lVar5 - (uVar29 ^ 0xcecf58bb));
  *puVar22 = (uVar24 ^ *(ulonglong *)(lVar5 + -0xce0)) - (*puVar2 ^ uVar40) ^ uVar39;
  lVar6 = DAT_1826707a0;
  puVar44 = (ulonglong *)(lVar5 - (uVar35 ^ 0xbceb6f5f));
  uVar32 = CONCAT44(DAT_182670884,DAT_182670884);
  uVar24 = (CONCAT44(uVar34,uVar7) ^ 0x21569c2a0b171621) + (uVar40 ^ *puVar44) ^ uVar32;
  uVar46 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = uVar24;
  uVar11 = DAT_182670850;
  lVar5 = DAT_1826707a0;
  local_res20 = (byte)(uVar10 >> 0x18);
  uVar24 = *(ulonglong *)(lVar6 - (uVar35 ^ 0xbceb6aa7)) ^ uVar46 ^ uVar24 ^ uVar32 ^ uVar36;
  uVar32 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  uVar40 = (uVar46 ^ uVar24) >> ((local_res20 ^ 0xee) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar24;
  *(ulonglong *)(lVar5 + -0xd88) = uVar40 ^ uVar32;
  lVar6 = DAT_1826707a0;
  local_d8 = (byte)uVar27;
  uVar32 = (*(ulonglong *)(lVar5 - (uVar26 ^ 0xb8eb63c7)) ^ uVar46) << ((local_d8 ^ 0xa0) & 0x3f);
  uVar47 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar32 ^ CONCAT44(uVar11,uVar11);
  uVar24 = *(ulonglong *)(lVar6 + -0x7d8);
  uVar32 = uVar32 | uVar40;
  *puVar1 = uVar32 ^ uVar47;
  uVar16 = DAT_182670848;
  lVar5 = DAT_1826707a0;
  uVar46 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = (uVar24 ^ uVar36) - uVar32 ^ uVar46;
  uVar11 = DAT_1826707e0;
  uVar32 = CONCAT44(uVar16,uVar16);
  puVar25 = (ulonglong *)(lVar5 - (uVar26 ^ 0xb8eb617f));
  uVar36 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  *puVar2 = *(ulonglong *)(lVar5 - (uVar35 ^ 0xbceb6167)) ^ uVar32 ^ uVar39 ^ *puVar25 ^ uVar31;
  uVar12 = DAT_1826707e4;
  uVar48 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar5 - (uVar43 ^ 0x43149470)) =
       (*(ulonglong *)(lVar5 - (uVar51 ^ 0xbceb6f5f)) ^ uVar32) >> (((byte)uVar11 ^ 0xd7) & 0x3f) ^
       uVar36;
  *(uint *)(DAT_1826707a0 - (uVar52 ^ 0x8c0200a4)) = (uVar12 ^ 0x4cf30cab) + 0xfe28bca7;
  lVar5 = DAT_1826707a0;
  puVar42 = (ulonglong *)(DAT_1826707a0 + -0x6f0);
  uVar31 = CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar24 = *(ulonglong *)(DAT_1826707a0 + -0x400);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = (*puVar2 ^ uVar32) << 0x20 ^ uVar31;
  uVar36 = uVar31 ^ *puVar41 | uVar36 ^ *puVar42;
  uVar31 = CONCAT44(DAT_182670a44,DAT_182670a44);
  uVar40 = uVar36 ^ uVar31;
  uVar32 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar5 + -0x660) = uVar40;
  uVar11 = DAT_182670844;
  *(ulonglong *)(lVar5 + -0xd88) = (uVar39 ^ uVar24) - uVar36 ^ uVar32;
  lVar5 = DAT_1826707a0;
  local_res18 = (byte)uVar14;
  uVar36 = CONCAT44(uVar11,uVar11);
  uVar24 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x43149558)) =
       uVar36 ^ uVar31 ^ uVar46 ^ *(ulonglong *)(DAT_1826707a0 + -0xce0) ^ uVar40;
  uVar31 = CONCAT44(DAT_182670af0,DAT_182670af0);
  *(ulonglong *)(lVar5 + -0xc18) =
       (*(ulonglong *)(lVar5 - (uVar24 ^ 0xfbfff027)) ^ uVar36) >> ((local_res18 ^ 0x45) & 0x3f) ^
       uVar31;
  *(undefined8 *)(lVar5 - (uVar26 ^ 0xb8eb675f)) = 0x160f2b95ac153f20;
  uVar24 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar5 + -0x6f0) =
       (uVar36 ^ *(ulonglong *)(lVar5 + -0x7d8)) << ((local_d8 ^ 0x86) & 0x3f) ^ uVar24;
  uVar11 = DAT_1826709d4;
  puVar23 = (ulonglong *)(lVar5 - (uVar49 ^ 0xbb5cc93e));
  uVar50 = CONCAT44(DAT_182670afc,DAT_182670afc);
  puVar37 = (ulonglong *)(lVar5 - (uVar52 ^ 0x8c020efc));
  *puVar37 = (uVar24 ^ *puVar23 | uVar31 ^ *(ulonglong *)(lVar5 + -0xc18)) ^ uVar50;
  uVar9 = DAT_182670a18;
  uVar26 = CONCAT44(uVar11,uVar11);
  uVar24 = CONCAT44(uVar28,DAT_1826707bc);
  uVar36 = (ulonglong)DAT_182670a18;
  *(ulonglong *)(lVar5 + -0x400) =
       (*(ulonglong *)(lVar5 - (uVar29 ^ 0xcecf505b)) ^ uVar46) - (uVar50 ^ *puVar41) ^ uVar26;
  uVar31 = (ulonglong)DAT_1826707d0;
  *puVar45 = uVar24 ^ 0x81b49b609397b957;
  *puVar44 = CONCAT44(uVar9,uVar9) ^ uVar32 ^ uVar47 ^ *puVar1 ^ *(ulonglong *)(lVar5 + -0xd88);
  uVar7 = DAT_1826707a8;
  *(uint *)(lVar5 + -0x9ec) = (DAT_1826707f0 ^ 0xed332f12) + 0xe75815a9;
  uVar8 = DAT_1826707b8;
  uVar24 = *(ulonglong *)(lVar5 - (uVar31 ^ 0x2a1e0b3c)) >> 0x16 ^
           ((ulonglong)(uVar9 >> 0x16) | uVar36 << 10);
  puVar44 = (ulonglong *)(lVar5 - ((ulonglong)DAT_1826707c8 ^ 0x5cbbccef));
  *(ulonglong *)(lVar5 + -0x7d8) = uVar24 ^ CONCAT44(DAT_1826708fc,DAT_1826708fc);
  lVar5 = DAT_1826707a0;
  uVar39 = CONCAT44(DAT_182670924,DAT_182670924);
  uVar31 = (CONCAT44(uVar9,uVar9) ^ *puVar44) << (((byte)uVar8 ^ 0xce) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar31 ^ CONCAT44(DAT_1826708b0,DAT_1826708b0);
  uVar8 = DAT_1826707c0;
  puVar41 = (ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x7eda2e4a));
  *puVar41 = (uVar24 | uVar31) ^ uVar39;
  uVar9 = DAT_18267093c;
  lVar5 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_18267093c;
  puVar42 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) =
       0xfb18ac85fda37d7 - (CONCAT44(uVar8,DAT_1826707b0) ^ 0x1e0d9dc2ee2a46e0);
  uVar31 = CONCAT44(uVar9,uVar9);
  uVar36 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar5 + -0x660) =
       (uVar32 ^ *puVar42) - (uVar39 ^ *(ulonglong *)(lVar5 + -0x6f0)) ^ uVar36;
  *puVar33 = uVar31 ^ uVar39 ^ uVar26 ^ *(ulonglong *)(lVar5 + -0x400) ^
             *(ulonglong *)(lVar5 + -0x6f0);
  *puVar44 = (*puVar1 >> 0x20 ^ uVar24) >> 0xe ^ uVar38;
  uVar16 = DAT_1826708a8;
  uVar13 = DAT_1826707ec;
  uVar8 = DAT_1826707dc;
  uVar24 = CONCAT44(DAT_182670a30,DAT_182670a30);
  puVar42 = (ulonglong *)(lVar5 - (uVar48 ^ 0x87d74650));
  *puVar42 = (uVar31 ^ *puVar1) << (((byte)DAT_1826707e0 ^ 0xe5) & 0x3f) ^ uVar24;
  uVar40 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x255dd3ef)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x7eda2a9a)) ^ uVar38 |
       uVar24 ^ *(ulonglong *)(lVar5 + -0x7d8)) ^ uVar40;
  uVar11 = DAT_182670a88;
  bVar21 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar5 + -0xce0) =
       CONCAT44(DAT_1826707c4,DAT_1826707d0) ^ 0xe06767f6543908a8 |
       CONCAT44(uVar13,uVar34) ^ 0xe2c8ff3509127ec8;
  uVar17 = _DAT_1826708f8;
  uVar46 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0xd88) =
       (uVar26 ^ *puVar25) - (uVar40 ^ *(ulonglong *)(lVar5 + -0xc18)) ^ uVar46;
  uVar9 = DAT_1826707c0;
  uVar24 = CONCAT44(uVar17,uVar17);
  uVar31 = *(ulonglong *)(lVar5 - (uVar51 ^ 0xbceb6b1f)) ^ uVar24 ^ uVar36 ^ uVar50 ^
           *(ulonglong *)(lVar5 + -0x6b8);
  *puVar1 = (*puVar2 ^ uVar38) << ((bVar21 ^ 0xf9) & 0x3f);
  uVar11 = DAT_18267092c;
  local_78 = (byte)uVar10;
  *(ulonglong *)(lVar5 + -0x6f0) = uVar31;
  uVar18 = DAT_1826709ac;
  uVar38 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x7d8) = (uVar24 ^ uVar31) >> ((local_d8 ^ 0x8c) & 0x3f) ^ uVar38;
  lVar5 = DAT_1826707a0;
  uVar24 = (uVar24 ^ uVar31) << ((local_78 ^ 0x8f) & 0x3f);
  uVar31 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar24 ^ CONCAT44(uVar18,uVar18);
  lVar6 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar9 ^ 0xcecf58bb)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xcecf5b63)) ^ uVar38 | uVar24) ^ uVar31;
  uVar24 = CONCAT44(uVar28,DAT_1826707cc);
  uVar51 = CONCAT44(DAT_182670a28,DAT_182670a28);
  *(ulonglong *)(lVar6 + -0x6b8) =
       (uVar36 ^ *(ulonglong *)(lVar6 + -0x660)) - (uVar31 ^ *(ulonglong *)(lVar6 + -0x400)) ^
       uVar51;
  uVar11 = DAT_1826707e0;
  *puVar2 = (uVar24 ^ 0x77b137b8a55bf17d) >> (((byte)uVar16 ^ *(byte *)(lVar6 + -0xc18)) & 0x3f);
  uVar39 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar24 = CONCAT44(uVar11,DAT_1826707bc);
  *puVar1 = *(ulonglong *)(lVar6 - (uVar43 ^ 0x43149680)) ^ uVar39 ^ uVar31 ^ uVar46 ^
            *(ulonglong *)(lVar6 + -0xd88);
  uVar16 = DAT_182670864;
  *puVar42 = (uVar24 ^ 0xae681f3468488f28) >> (((byte)uVar17 ^ (byte)*puVar23) & 0x3f);
  uVar38 = (uVar39 ^ *puVar1) >> ((local_78 ^ 0xa2) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = uVar38 ^ CONCAT44(uVar16,uVar16);
  uVar7 = DAT_1826707a8;
  lVar5 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_18267095c,DAT_18267095c);
  uVar36 = (ulonglong)DAT_1826707d0;
  uVar32 = CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar39 = (uVar39 ^ *puVar1) << (((byte)DAT_1826707d0 ^ 0x3b) & 0x3f);
  uVar24 = *(ulonglong *)(DAT_1826707a0 + -0xd88);
  *(ulonglong *)(DAT_1826707a0 + -0x400) = (uVar39 | uVar38) ^ uVar32;
  *(ulonglong *)(lVar5 + -0x660) = uVar39 ^ uVar31;
  uVar8 = DAT_1826707b8;
  *(ulonglong *)(lVar5 + -0x6f0) =
       CONCAT44(uVar14,uVar15) ^ CONCAT44(uVar27,uVar11) ^ 0xad6f573d93d85815;
  lVar6 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670824,DAT_182670824);
  uVar38 = (ulonglong)DAT_1826707b0;
  uVar39 = CONCAT44(uVar13,DAT_1826707b0);
  *(ulonglong *)(lVar5 - (uVar29 ^ 0xcecf5b63)) =
       (uVar46 ^ uVar24) - (CONCAT44(uVar8,uVar7) ^ 0x1d77b1f50d210318) ^ uVar31;
  uVar29 = CONCAT44(DAT_182670a48,DAT_182670a48);
  *(ulonglong *)(lVar6 - (uVar48 ^ 0x87d74400)) =
       (uVar31 ^ *(ulonglong *)(lVar5 + -0x7d8)) - (uVar32 ^ *(ulonglong *)(lVar5 + -0x400)) ^
       uVar29;
  lVar5 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707c8;
  uVar46 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  *puVar2 = (uVar32 ^ *(ulonglong *)(lVar6 + -0x400)) - (uVar39 ^ 0xe06e51c3d43de81f) ^ uVar46;
  uVar8 = DAT_1826707bc;
  uVar32 = CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0xf2d82c1e)) =
       *(ulonglong *)(lVar5 - (uVar31 ^ 0x5cbbc2d7)) ^
       *(ulonglong *)(lVar5 - ((ulonglong)uVar9 ^ 0xcecf5a03)) ^ uVar32 ^ uVar51 ^ uVar40;
  uVar11 = DAT_1826709b8;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (CONCAT44(uVar8,uVar7) ^ 0x4a58744d91b060ad) << (((byte)uVar9 ^ 0xbd) & 0x3f);
  uVar16 = DAT_182670a58;
  uVar24 = CONCAT44(uVar11,uVar11);
  local_c8 = (byte)uVar28;
  *(ulonglong *)(lVar5 + -0x6f0) =
       (*(ulonglong *)(lVar5 - (uVar52 ^ 0x8c0204a4)) ^ uVar32) >> ((bVar30 ^ 0x5e) & 0x3f) ^ uVar24
  ;
  uVar39 = CONCAT44(uVar16,uVar16);
  uVar38 = CONCAT44(DAT_18267080c,DAT_18267080c);
  *(ulonglong *)(lVar5 + -0xd88) =
       (uVar32 ^ *(ulonglong *)(lVar5 + -0xce0)) << ((local_c8 ^ 0x60) & 0x3f) ^ uVar39;
  *(ulonglong *)(lVar5 - (uVar36 ^ 0x2a1e0ec4)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0xe4d1582f)) ^ uVar39 | uVar24 ^ *puVar41) ^
       uVar38;
  uVar7 = DAT_1826707b8;
  uVar24 = CONCAT44(DAT_182670860,DAT_182670860);
  uVar40 = (ulonglong)DAT_1826707b8;
  uVar52 = (uVar51 ^ *(ulonglong *)(lVar5 + -0x6b8)) -
           (CONCAT44(uVar14,DAT_1826707b8) ^ 0x5b1da44274a51f9c);
  *(undefined8 *)(lVar5 + -0xc18) = 0xf12848852275cbcd;
  uVar11 = DAT_1826709f4;
  *(ulonglong *)(lVar5 + -0x400) = uVar52 ^ uVar24;
  uVar36 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 + -0x660) =
       uVar52 - (*(ulonglong *)(lVar5 - (uVar31 ^ 0x5cbbc917)) ^ uVar38) ^ uVar36;
  uVar9 = DAT_1826709f8;
  uVar8 = DAT_1826707dc;
  uVar52 = (ulonglong)DAT_1826709f8;
  *(ulonglong *)(lVar5 - (uVar40 ^ 0xa755d714)) =
       (*(ulonglong *)(lVar5 - (uVar49 ^ 0xbb5cc816)) ^ uVar38) +
       (CONCAT44(DAT_1826707dc,DAT_1826707cc) ^ 0xe5bdf6f6b2d42bce) ^ uVar39;
  *(ulonglong *)(lVar5 + -0xd88) = (uVar32 ^ *(ulonglong *)(lVar5 + -0xce0)) + 0x2c9e78490aeabfe7;
  uVar11 = DAT_182670ac0;
  uVar24 = *(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x255dda7f)) ^ uVar39 ^ uVar29 ^
           *(ulonglong *)(lVar5 + -0x6f0) ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar24;
  uVar52 = (uVar52 << 0x1b | (ulonglong)(uVar9 >> 5)) ^ uVar24 >> 5;
  *(ulonglong *)(lVar5 + -0xc18) = uVar52 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182670a34;
  local_c0 = (byte)uVar12;
  uVar24 = (*puVar37 ^ CONCAT44(uVar9,uVar9)) << ((bVar30 ^ 0x44) & 0x3f);
  *(ulonglong *)(lVar5 + -0x400) = uVar24 ^ uVar26;
  uVar24 = uVar24 | uVar52;
  *(ulonglong *)(lVar5 + -0x7d8) = uVar24 ^ uVar47;
  uVar16 = DAT_182670a84;
  lVar5 = DAT_1826707a0;
  uVar52 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(DAT_1826707a0 + -0xce0) = (uVar29 ^ *puVar1) - uVar24 ^ uVar52;
  uVar11 = DAT_182670a2c;
  uVar24 = CONCAT44(uVar16,uVar16);
  uVar31 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  uVar49 = uVar46 ^ *puVar2 ^ *(ulonglong *)(lVar5 + -0x660) ^ uVar24 ^ uVar36;
  *(ulonglong *)(lVar5 + -0xd88) = uVar49;
  lVar5 = DAT_1826707a0;
  bVar21 = (byte)DAT_1826707bc;
  iVar4 = *(int *)(DAT_1826707a0 + -0x540);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) = (uVar49 ^ uVar24) >> ((local_c0 ^ 0xad) & 0x3f) ^ uVar31;
  uVar49 = (uVar24 ^ uVar49) << ((bVar21 ^ 0xbc) & 0x3f);
  uVar24 = (ulonglong)DAT_1826707ec;
  uVar29 = CONCAT44(DAT_182670934,DAT_182670934);
  *(ulonglong *)(lVar5 + -0x6b8) = uVar49 ^ CONCAT44(uVar11,uVar11);
  uVar16 = DAT_182670af4;
  uVar24 = *(ulonglong *)(lVar5 - (uVar24 ^ 0xfbfff10f));
  *(uint *)(lVar5 + -0x42c) = (uVar7 ^ 0x6da411d) - iVar4;
  uVar49 = uVar24 ^ uVar31 | uVar49;
  *(ulonglong *)(lVar5 + -0xc18) = uVar49 ^ uVar29;
  uVar11 = DAT_1826708dc;
  *puVar22 = (*(ulonglong *)(lVar5 + -0x660) ^ uVar36) - uVar49 ^ CONCAT44(uVar16,uVar16);
  uVar24 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(ulonglong *)(lVar5 - (uVar35 ^ 0xbceb68f7)) =
       *(ulonglong *)(lVar5 + -0xce0) ^ *(ulonglong *)(lVar5 + -0xc18) ^ uVar24 ^ uVar29 ^ uVar52;
  *puVar2 = (*puVar1 ^ uVar24) >> (((byte)uVar8 ^ 0xe0) & 0x3f) ^ CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar3 ^ uVar28;
  return;
}



############ FUN_ 180d1b0d0 size=5389 ############

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

void FUN_180d1b0d0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong *puVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  byte bVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  uint uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong *puVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  
  uVar7 = DAT_182670800;
  uVar8 = DAT_1826707d0;
  uVar5 = DAT_1826707bc;
  uVar18 = DAT_1826707a8;
  lVar2 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707a8;
  uVar21 = (ulonglong)DAT_1826707d0;
  bVar16 = (byte)DAT_1826707a8;
  uVar1 = DAT_1826707d0;
  if ((DAT_1826707a8 & 1) == 0) {
    uVar1 = DAT_1826707a8;
  }
  uVar19 = *(uint *)(&DAT_18260f758 + DAT_182670c28) ^ DAT_1826707d0;
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670c28) ^ DAT_1826707a8;
  uVar25 = (ulonglong)DAT_1826707bc;
  uVar27 = (ulonglong)uVar1;
  uVar34 = (ulonglong)DAT_1826707bc;
  uVar32 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  uVar22 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar39 = CONCAT44(DAT_182670afc,DAT_182670afc);
  DAT_1826707b0 = uVar1;
  *(ulonglong *)(DAT_1826707a0 + -0xc18) =
       (uVar22 ^ *(ulonglong *)(DAT_1826707a0 + -0x558)) -
       (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xedc4fe85)) ^ uVar32) ^ uVar39;
  uVar33 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar36 = CONCAT44(DAT_182670a70,DAT_182670a70);
  bVar26 = (byte)DAT_182670a70;
  *(ulonglong *)(lVar2 + -0x588) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0xf20a78fa)) ^ CONCAT44(uVar7,uVar7) ^ uVar36 ^
       uVar33 ^ *(ulonglong *)(lVar2 + -0xac0);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0x412c0f3f)) =
       (CONCAT44(uVar5,uVar5) ^ 0x5d5a777e6ea48b5b) >> ((bVar26 ^ *(byte *)(lVar2 + -0x5c0)) & 0x3f)
  ;
  uVar30 = CONCAT44(DAT_182670a18,DAT_182670a18);
  puVar42 = (ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0xedc4f965));
  bVar26 = (byte)uVar1;
  *puVar42 = (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) >> ((bVar26 ^ 0x2a) & 0x3f) ^ uVar30;
  uVar23 = CONCAT44(DAT_18267086c,DAT_18267086c);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar18 ^ 0xf20a79f2)) =
       (uVar33 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) << ((bVar26 ^ 10) & 0x3f) ^ uVar23;
  uVar13 = DAT_18267093c;
  lVar2 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0xf20a7b2a)) =
       (uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8) |
       uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0x658)) ^ uVar33;
  uVar14 = DAT_1826709cc;
  *(uint *)(lVar2 + -0x540) = (uVar5 ^ 0x377740c3) + (uVar8 ^ 0x8a084f24);
  uVar7 = DAT_182670848;
  uVar23 = (uVar36 ^ *(ulonglong *)(lVar2 + -0x5c0)) -
           (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar2 + -0xf0));
  *(ulonglong *)(lVar2 + -0x7d8) = uVar23 ^ CONCAT44(uVar14,uVar14);
  uVar28 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar27 ^ 0xf20a7862)) =
       uVar23 - (uVar33 ^ *(ulonglong *)(lVar2 + -0x610)) ^ uVar28;
  uVar7 = DAT_182670a9c;
  uVar23 = (CONCAT44(uVar18,uVar8) ^ 0xdf582c5bed3fdff) -
           (*(ulonglong *)(lVar2 - (uVar34 ^ 0xedc4f7ad)) ^ uVar33);
  *(ulonglong *)(lVar2 + -0xac0) = uVar23 ^ CONCAT44(DAT_182670a9c,DAT_182670a9c);
  lVar3 = DAT_1826707a0;
  puVar20 = (ulonglong *)(lVar2 - (uVar24 ^ 0xf20a7b2a));
  uVar36 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar23 = uVar23 + (uVar33 ^ *puVar20) ^ uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = uVar23;
  uVar4 = DAT_182670948;
  uVar33 = (ulonglong)DAT_182670948;
  *(ulonglong *)(lVar3 + -0x588) =
       (CONCAT44(uVar8,uVar5) ^ 0x67ae60b07f46a09c) >>
       ((*(byte *)(lVar3 - (uVar21 ^ 0x412c08c7)) ^ (byte)uVar7) & 0x3f);
  uVar34 = CONCAT44(uVar4,uVar4);
  uVar35 = CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar23 = uVar35 ^ uVar34 ^ uVar36 ^ uVar23 ^ *(ulonglong *)(lVar3 + -0x9c8);
  uVar36 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar3 + -0x658) = uVar23;
  *(ulonglong *)(lVar3 + -0x4c8) = uVar23 >> 0x20 ^ uVar36 ^ uVar33;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xf20a7dca)) =
       CONCAT44(uVar1,uVar1) ^ 0xa92d2eef2e0d3d77 | CONCAT44(uVar8,uVar5) ^ 0xb633c8ccda610161;
  uVar7 = DAT_182670aa8;
  uVar23 = (uVar34 ^ *puVar42) << ((bVar26 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar23 ^ CONCAT44(DAT_1826709b4,DAT_1826709b4);
  lVar2 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar18 ^ 0xf20a7ae2)) =
       (uVar23 | uVar36 ^ *(ulonglong *)(lVar3 + -0x4c8)) ^ uVar29;
  uVar7 = DAT_182670abc;
  uVar44 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar2 + -0x610) =
       (uVar35 ^ *(ulonglong *)(lVar2 + -0x9c8)) -
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0xf20a7ae2)) ^ uVar29) ^ uVar44;
  uVar6 = DAT_1826707cc;
  uVar4 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  uVar34 = CONCAT44(uVar7,uVar7);
  uVar33 = CONCAT44(DAT_182670ac8,DAT_182670ac8);
  uVar23 = *(ulonglong *)(lVar2 - (uVar21 ^ 0x412c075f)) ^ uVar34 ^ uVar28 ^ uVar39 ^
           *(ulonglong *)(DAT_1826707a0 + -0xc18);
  *(ulonglong *)(DAT_1826707a0 + -0xd38) = (uVar34 ^ uVar23) >> ((bVar16 ^ 0x1a) & 0x3f) ^ uVar33;
  lVar2 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xd32c52ca)) =
       (uVar34 ^ uVar23) << ((bVar26 ^ 0x1a) & 0x3f) ^ uVar37;
  uVar35 = uVar37 ^ *(ulonglong *)(lVar3 + -0xf0) | uVar33 ^ *(ulonglong *)(lVar3 + -0xd38);
  uVar23 = *(ulonglong *)(lVar3 + -0x610);
  uVar33 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  uVar36 = uVar35 ^ uVar33;
  *(int *)(lVar3 + -0x7e4) =
       *(int *)(lVar3 + -0x598) << ((byte)*(undefined4 *)(lVar3 + -0xcec) & 0x1f);
  uVar7 = DAT_182670880;
  *(ulonglong *)(lVar3 + -0x5c0) = uVar36;
  uVar39 = CONCAT44(uVar7,uVar7);
  uVar36 = uVar33 ^ uVar44 ^ uVar23 ^ uVar36;
  uVar33 = CONCAT44(DAT_1826708c0,DAT_1826708c0);
  *(ulonglong *)(lVar3 + -0x9c8) = (uVar28 ^ *(ulonglong *)(lVar3 + -0x558)) - uVar35 ^ uVar39;
  *(ulonglong *)(lVar3 + -0xc18) = uVar36 ^ uVar33;
  *(ulonglong *)(lVar3 + -0x4c8) = (uVar21 ^ 0xe7000000) >> 0x13;
  uVar7 = _DAT_182670b10;
  uVar11 = DAT_1826707e4;
  uVar33 = uVar36 >> (((byte)uVar5 ^ 7) & 0x3f);
  *(ulonglong *)(lVar3 + -0x588) = uVar33 ^ CONCAT44(DAT_182670ac0,DAT_182670ac0);
  uVar36 = uVar36 << ((bVar16 ^ 0x3c) & 0x3f);
  *(ulonglong *)(lVar3 + -0xac0) = uVar36 ^ uVar30;
  uVar36 = uVar36 | uVar33;
  uVar40 = CONCAT44(uVar7,uVar7);
  uVar28 = CONCAT44(DAT_182670960,DAT_182670960);
  *(ulonglong *)(lVar2 + -0x658) = uVar36 ^ uVar40;
  uVar10 = DAT_1826707d8;
  uVar6 = DAT_1826707c4;
  uVar35 = (ulonglong)DAT_1826707d8;
  uVar33 = (ulonglong)DAT_1826707c4;
  uVar45 = (uVar44 ^ uVar23) - uVar36 ^ uVar28;
  uVar44 = CONCAT44(DAT_1826709f0,DAT_1826709f0);
  *(ulonglong *)(lVar2 + -0xd38) = uVar45;
  uVar31 = uVar6 + uVar10;
  uVar41 = (ulonglong)uVar31;
  uVar23 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  uVar36 = *(ulonglong *)(lVar2 - (uVar33 ^ 0xa1ca9028)) ^ uVar29 ^ *(ulonglong *)(lVar2 + -0x7d8) ^
           uVar44 ^ uVar39;
  DAT_1826707f0 = uVar31;
  *(ulonglong *)(lVar2 + -0xf0) = uVar36;
  uVar7 = DAT_182670940;
  lVar2 = DAT_1826707a0;
  bVar26 = (byte)uVar10;
  uVar30 = (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x82d0a90)) ^ uVar44) >>
           ((bVar26 ^ 0x76) & 0x3f);
  bVar16 = (byte)uVar6;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar30 ^ uVar23;
  uVar13 = DAT_182670a44;
  uVar23 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x5c0) = (uVar36 ^ uVar44) << ((bVar16 ^ 0xca) & 0x3f) ^ uVar23;
  uVar38 = CONCAT44(uVar13,uVar13);
  uVar30 = *(ulonglong *)(lVar2 - (uVar41 ^ 0xa9f7a180)) ^ uVar23 | uVar30;
  uVar36 = uVar30 ^ uVar38;
  *(ulonglong *)(lVar2 + -0x4c8) = uVar36;
  uVar23 = (ulonglong)DAT_18267094c;
  puVar43 = (ulonglong *)(lVar2 - ((ulonglong)uVar31 ^ 0xa9f7ad88));
  uVar44 = CONCAT44(DAT_18267094c,DAT_18267094c);
  uVar29 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *(ulonglong *)(lVar2 + -0xc18) = (*puVar43 ^ uVar39) - uVar30 ^ uVar29;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar10 ^ 0x82d00a0)) =
       uVar45 ^ uVar36 ^ uVar44 ^ uVar38 ^ uVar28;
  uVar39 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(lVar2 + -0x7d8) = (*(ulonglong *)(lVar2 + -0xac0) >> 0x20 ^ uVar23) >> 0xe ^ uVar39
  ;
  uVar13 = DAT_182670ae0;
  uVar23 = (uVar44 ^ *(ulonglong *)(lVar2 + -0xac0)) << ((bVar16 ^ 0xf2) & 0x3f);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xa1ca9910)) = uVar23 ^ CONCAT44(DAT_182670ae0,DAT_182670ae0);
  uVar9 = DAT_182670aa0;
  uVar7 = DAT_1826709d0;
  uVar23 = *(ulonglong *)(lVar2 + -0x7d8) ^ uVar39 | uVar23;
  *(ulonglong *)(lVar2 + -0x558) = uVar23 ^ uVar38;
  uVar44 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 + -0x9c8) = (*(ulonglong *)(lVar2 + -0xd38) ^ uVar28) - uVar23 ^ uVar44;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xa9f7a088)) =
       *(ulonglong *)(lVar2 + -0x658) ^ *(ulonglong *)(lVar2 + -0xc18) ^ CONCAT44(uVar9,uVar9) ^
       uVar29 ^ uVar40;
  uVar30 = ((ulonglong)uVar9 << 0x14 | (ulonglong)(uVar9 >> 0xc)) ^
           *(ulonglong *)(lVar2 + -0x4c8) >> 0xc;
  *(ulonglong *)(lVar2 + -0x610) = uVar30 ^ CONCAT44(DAT_182670818,DAT_182670818);
  uVar7 = DAT_1826709a4;
  *(ulonglong *)(lVar2 + -0x588) =
       (CONCAT44(uVar10,uVar6) ^ 0xbed859f183ad38bc) >>
       ((*(byte *)(lVar2 + -0xf0) ^ (byte)uVar13) & 0x3f);
  lVar2 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar23 = (*(ulonglong *)(DAT_1826707a0 + -0x4c8) ^ CONCAT44(uVar9,uVar9)) <<
           (((byte)uVar31 ^ 0x74) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar23 ^ uVar28;
  uVar9 = DAT_1826708a8;
  uVar36 = (ulonglong)DAT_1826708a8;
  uVar30 = (uVar23 | uVar30) ^ uVar34;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar23 ^ CONCAT44(uVar10,uVar6) ^ 0xbf7d92013bb2290;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar30;
  *(ulonglong *)(lVar2 + -0xd38) =
       (*(ulonglong *)(lVar2 + -0xc18) ^ uVar29) -
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0xedc4fafd)) ^ uVar34) ^ uVar22;
  puVar42 = (ulonglong *)(lVar2 - (uVar35 ^ 0x82d0c38));
  *puVar42 = uVar34 ^ *puVar43 ^ uVar30 ^ CONCAT44(uVar9,uVar9) ^ uVar44;
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(uVar10,uVar31) ^ 0xa9026796f89f3106) - (*(ulonglong *)(lVar2 + -0xd38) ^ uVar22);
  uVar23 = ((ulonglong)(uVar9 >> 0x19) | uVar36 << 7) ^ *puVar42 >> 0x19;
  *(ulonglong *)(lVar2 + -0x588) = uVar23 ^ uVar39;
  uVar13 = DAT_182670968;
  *(ulonglong *)(lVar2 + -0x4c8) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0xa1ca9c68)) ^ uVar39 ^ uVar38 ^
       *(ulonglong *)(lVar2 + -0x558);
  uVar7 = DAT_18267090c;
  uVar34 = (*(ulonglong *)(lVar2 - (uVar33 ^ 0xa1ca9fb8)) ^ CONCAT44(uVar9,uVar9)) << 0x27;
  *(ulonglong *)(lVar2 + -0x7d8) = uVar34 ^ CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 + -0xac0) =
       (CONCAT44(uVar31,uVar1) ^ 0x13e15b4e2fb13a7b) << ((bVar26 ^ 0x45) & 0x3f);
  uVar34 = uVar34 | uVar23;
  *(ulonglong *)(lVar2 + -0x610) = uVar34 ^ CONCAT44(uVar7,uVar7);
  uVar13 = DAT_1826709c8;
  uVar7 = DAT_182670874;
  *(ulonglong *)(lVar2 + -0xc18) =
       (CONCAT44(uVar31,uVar31) ^ 0x3e6609a3df716cc6) >> ((bVar16 ^ 0xe9) & 0x3f);
  uVar15 = DAT_182670a5c;
  uVar14 = _DAT_1826709e0;
  uVar23 = (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar44) -
           (CONCAT44(uVar13,uVar13) ^ *(ulonglong *)(lVar2 + -0x660));
  *(ulonglong *)(lVar2 + -0x5c0) = uVar23 ^ CONCAT44(uVar7,uVar7);
  uVar13 = DAT_182670a60;
  uVar7 = DAT_182670838;
  uVar29 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0xf0) = uVar23 - uVar34 ^ uVar29;
  uVar14 = DAT_182670acc;
  uVar1 = DAT_1826708b4;
  uVar36 = (ulonglong)DAT_1826708b4;
  uVar23 = (*(ulonglong *)(lVar2 - (uVar27 ^ 0xf20a71da)) ^ CONCAT44(uVar7,uVar7)) +
           (CONCAT44(uVar15,uVar15) ^ *(ulonglong *)(lVar2 + -0x118));
  *(ulonglong *)(lVar2 + -0x4c8) = uVar23 ^ CONCAT44(uVar13,uVar13);
  uVar30 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar2 + -0x658) = uVar34 - uVar23 ^ uVar30;
  uVar34 = CONCAT44(uVar1,uVar1);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0xa1ca9320)) =
       *(ulonglong *)(lVar2 - (uVar24 ^ 0xf20a7862)) ^ *(ulonglong *)(lVar2 + -0xd38) ^ uVar22 ^
       uVar34 ^ uVar38;
  uVar12 = DAT_1826707f4;
  uVar9 = DAT_1826707d4;
  uVar23 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  uVar35 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar2 + -0x7d8) = (*(ulonglong *)(lVar2 + -0xac0) >> 0x20 ^ uVar36) >> 1 ^ uVar23;
  *(ulonglong *)(lVar2 - (uVar24 ^ 0xf20a7122)) =
       (*(ulonglong *)(lVar2 + -0xf0) ^ uVar29) - (uVar39 ^ *(ulonglong *)(lVar2 + -0x588));
  uVar24 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x68ce4f2)) =
       (uVar34 ^ *(ulonglong *)(lVar2 + -0xac0)) << (((byte)DAT_1826707ac ^ 0x23) & 0x3f) ^ uVar24;
  uVar7 = DAT_182670af0;
  uVar1 = DAT_1826707dc;
  uVar34 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar2 + -0x5c0) =
       (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar24 | *(ulonglong *)(lVar2 + -0x7d8) ^ uVar23) ^ uVar34;
  uVar39 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0x3cdecd09)) =
       **(ulonglong **)(lVar2 + -0x6c8) ^ uVar39;
  uVar24 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x412c0417)) =
       (*(ulonglong *)(lVar2 + -0xd38) ^ uVar22) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar1 ^ 0x3cdec051)) ^ uVar32) ^ uVar24;
  uVar36 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(lVar2 - (uVar25 ^ 0xedc4fa65)) =
       (*(ulonglong *)(lVar2 - (uVar35 ^ 0xde3cefd1)) ^ uVar24) -
       (*(ulonglong *)(lVar2 + -0x5c0) ^ uVar34) ^ uVar36;
  uVar7 = DAT_1826707ec;
  uVar24 = CONCAT44(DAT_1826709f4,DAT_1826709f4);
  uVar21 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 + -0x588) =
       (CONCAT44(uVar11,uVar10) ^ 0x8352e2a1f7d2f599) -
       (CONCAT44(DAT_1826709c4,DAT_1826709c4) ^ *(ulonglong *)(lVar2 + -0x400)) ^ uVar24;
  *(ulonglong *)(lVar2 - (uVar21 ^ 0x7cad1146)) = CONCAT44(uVar7,uVar31) ^ 0x8a029c13b3ff0ecf;
  uVar1 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_182670944,DAT_182670944);
  uVar24 = (uVar24 ^ *(ulonglong *)(lVar2 + -0x588)) + (*(ulonglong *)(lVar2 + -0x5c0) ^ uVar34) ^
           uVar21;
  *(ulonglong *)(lVar2 + -0xac0) = uVar24;
  uVar7 = DAT_182670970;
  *(ulonglong *)(lVar3 + -0x7d8) =
       (CONCAT44(uVar6,uVar6) ^ 0x4a90e3e465229912) + (CONCAT44(uVar9,uVar1) ^ 0xeb89621620e8f774);
  uVar23 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar3 + -0x9c8) = *(ulonglong *)(lVar3 + -0xf0) ^ uVar23 ^ uVar21 ^ uVar29 ^ uVar24
  ;
  *(ulonglong *)(lVar3 + -0xce0) = CONCAT44(uVar5,uVar10) ^ 0x4125048201202db | 0xb9ecada1cca97804;
  uVar22 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  puVar42 = (ulonglong *)(lVar3 - (uVar27 ^ 0xf20a7c82));
  uVar21 = CONCAT44(DAT_182670980,DAT_182670980);
  *puVar42 = (*(ulonglong *)(lVar3 + -0x9c8) ^ uVar23) >> (((byte)DAT_1826707cc ^ 0x3f) & 0x3f) ^
             uVar22;
  uVar7 = DAT_1826709b0;
  *(ulonglong *)(lVar3 + -0xd38) = uVar21 ^ **(ulonglong **)(lVar3 + -0x310);
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0xde3cefd1)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0xde3ce009)) ^ uVar23) <<
       (((byte)DAT_1826707e8 ^ 0x85) & 0x3f) ^ uVar24;
  uVar21 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar12 ^ 0x68ce122)) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0xa1ca9ff0)) ^ uVar24 |
       *(ulonglong *)(lVar2 + -0x1b8) ^ uVar22) ^ uVar28;
  uVar7 = DAT_1826708d4;
  uVar23 = CONCAT44(DAT_182670974,DAT_182670974);
  *(ulonglong *)(lVar2 + -0x5c0) =
       (*(ulonglong *)(lVar2 - (uVar21 ^ 0x7cad1dae)) ^ uVar29) -
       (*(ulonglong *)(lVar2 + -0xc18) ^ uVar28) ^ uVar23;
  uVar5 = DAT_1826707dc;
  uVar33 = CONCAT44(uVar7,uVar7);
  bVar16 = (byte)DAT_1826707b8;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707dc ^ 0x3cdec461)) =
       *(ulonglong *)(lVar2 + -0x658) ^ uVar33 ^ uVar36 ^ uVar30 ^ *(ulonglong *)(lVar2 + -0x558);
  uVar24 = CONCAT44(DAT_182670834,DAT_182670834);
  *(ulonglong *)(lVar2 + -0x7d8) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x588)) >> ((bVar16 ^ 0x9e) & 0x3f) ^ uVar24;
  uVar21 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xa9f7ae80)) =
       (uVar33 ^ *(ulonglong *)(lVar2 + -0x588)) << 0x1b ^ uVar21;
  uVar7 = DAT_1826707c8;
  *(ulonglong *)(lVar2 + -0xce0) =
       (CONCAT44(DAT_1826707c8,uVar8) ^ 0x5891936797e0594a) -
       (CONCAT44(uVar9,uVar18) ^ 0x64bac0d8a8a57366);
  uVar13 = DAT_182670840;
  uVar21 = *(ulonglong *)(lVar2 + -0x7d8) ^ uVar24 | uVar21 ^ *(ulonglong *)(lVar2 + -0xac0);
  uVar24 = uVar21 ^ uVar39;
  *(ulonglong *)(lVar2 + -0xd38) = uVar24;
  uVar34 = CONCAT44(uVar13,uVar13);
  uVar22 = CONCAT44(DAT_182670a78,DAT_182670a78);
  *(ulonglong *)(lVar2 + -0x9c8) = (uVar36 ^ *(ulonglong *)(lVar2 + -0x558)) - uVar21 ^ uVar34;
  uVar13 = DAT_182670a50;
  *puVar42 = uVar24 ^ uVar22 ^ *(ulonglong *)(lVar2 + -0x5c0) ^ uVar23 ^ uVar39;
  uVar1 = DAT_1826707f4;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar33 = (ulonglong)DAT_1826707f4;
  uVar21 = CONCAT44(DAT_1826707f4,uVar7);
  *(ulonglong *)(lVar2 + -0x610) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c0 ^ 0x163e2004)) ^ uVar22) >>
       ((bVar26 ^ 0x77) & 0x3f) ^ uVar36;
  uVar7 = DAT_182670828;
  uVar22 = (uVar22 ^ *(ulonglong *)(lVar2 + -0x1b8)) << 0x29;
  *(ulonglong *)(lVar2 + -0xf0) =
       (uVar21 ^ 0x9cc054558267d0f1) - (CONCAT44(uVar31,uVar1) ^ 0xc1a8108c1a4e33ea);
  uVar24 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(lVar2 + -0x658) = uVar22 ^ CONCAT44(uVar7,uVar7);
  uVar22 = uVar22 | uVar36 ^ *puVar20;
  uVar21 = CONCAT44(DAT_182670b04,DAT_182670b04);
  *(ulonglong *)(lVar2 + -0x588) = uVar22 ^ uVar24;
  uVar7 = DAT_182670920;
  *(ulonglong *)(lVar2 + -0xce0) = (*(ulonglong *)(lVar2 + -0x5c0) ^ uVar23) - uVar22 ^ uVar21;
  uVar13 = DAT_1826709f8;
  uVar21 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar2 - (uVar33 ^ 0x68ce7fa)) =
       *(ulonglong *)(lVar2 + -0x9c8) ^ uVar21 ^ uVar34 ^ *(ulonglong *)(lVar2 + -0xc18) ^ uVar28;
  *(ulonglong *)(lVar2 + -0x558) =
       (uVar21 ^ *(ulonglong *)(lVar2 + -0xac0)) >> ((bVar26 ^ 0x48) & 0x3f) ^
       CONCAT44(uVar13,uVar13);
  uVar1 = DAT_1826707b8;
  uVar18 = DAT_1826707f0 & DAT_1826707b8;
  DAT_1826707ac = uVar18;
  *(ulonglong *)(lVar2 + -0xd38) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x3cdecb29)) ^ uVar21) <<
       (((byte)DAT_1826707b8 ^ 0xa3) & 0x3f) ^ uVar37;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar19;
  *(ulonglong *)(lVar2 - (uVar41 ^ 0xa9f7a4b0)) =
       CONCAT44(uVar18,uVar1) ^ 0xb88700d9093c335f | CONCAT44(uVar4,uVar31) ^ 0x5caeb8e74bee01cf;
  return;
}



############ FUN_ 180cebd00 size=4476 ############

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

void FUN_180cebd00(void)

{
  uint uVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong *puVar13;
  ulonglong *puVar14;
  longlong lVar15;
  uint *puVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte *pbVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  byte bVar31;
  byte bVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  ulonglong uVar36;
  uint uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_res18;
  
  uVar9 = DAT_1826709c4;
  uVar8 = DAT_182670818;
  uVar7 = DAT_1826707e8;
  uVar18 = DAT_1826707dc;
  uVar27 = DAT_1826707d0;
  lVar2 = DAT_1826707a0;
  uVar39 = (ulonglong)DAT_1826707d0;
  uVar24 = (ulonglong)DAT_1826707e8;
  uVar37 = DAT_1826707d0 << 0x10 | DAT_1826707d0 >> 0x10;
  uVar26 = DAT_1826707e8 | DAT_1826707dc;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670b98);
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670b98) ^ DAT_1826707d0;
  uVar44 = (ulonglong)uVar26;
  DAT_1826707b4 = uVar26;
  DAT_1826707c4 = uVar37;
  *(byte *)(*(ulonglong *)(DAT_1826707a0 + -0x900) ^ (ulonglong)_DAT_1826708c8) =
       *(byte *)(DAT_1826707a0 + -0x719) ^ (byte)DAT_1826709c4 ^ (byte)DAT_182670a40;
  uVar28 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 + -0xc0) =
       *(longlong *)(lVar2 + -0x2d0) +
       ((CONCAT44(uVar7,uVar26) ^ 0xefdfdfffffffdff4) +
       (CONCAT44(uVar26,uVar18) ^ 0xffffdfffbcfc0298) * 0xc) * 8 ^ uVar28;
  uVar20 = DAT_182670800;
  uVar29 = (ulonglong)DAT_182670800;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xff27b18d)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar37 ^ 0xff27b625)) ^ CONCAT44(uVar9,uVar9)) +
       (CONCAT44(uVar26,uVar7) ^ 0xcc39edb2456150d5);
  uVar8 = DAT_18267088c;
  uVar42 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(DAT_1826707a0 - (uVar39 ^ 0xb3adf99f)) =
       CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(uVar28 ^ *(ulonglong *)(DAT_1826707a0 + -0xc0)) ^
       uVar42;
  lVar2 = DAT_1826707a0;
  uVar17 = DAT_1826707dc ^ 0x3f24ce87;
  bVar31 = (byte)uVar8 ^ (byte)DAT_182670af0;
  uVar28 = ((ulonglong)(uVar20 >> 0x18) | uVar29 << 8) ^
           *(ulonglong *)(DAT_1826707a0 + -0x6b8) >> 0x18 ^ CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar28;
  *(byte *)(lVar2 + -0x9d1) = bVar31 ^ (byte)uVar28;
  uVar28 = (ulonglong)DAT_18267090c;
  *(uint *)(lVar2 - (uVar44 ^ 0xffffda67)) = uVar17 + (uVar7 ^ 0x773341e0);
  pbVar22 = (byte *)((CONCAT44(uVar7,uVar18) ^ 0xefdfdfffbcfc02c3) + *(longlong *)(lVar2 + -0x168));
  *(ulonglong *)(lVar2 + -0x510) = (ulonglong)pbVar22 ^ uVar28;
  uVar9 = DAT_1826708f0;
  *pbVar22 = *(byte *)(lVar2 - ((ulonglong)uVar27 ^ 0xb3adf6f6)) ^ (byte)DAT_182670af0 ^
             (byte)DAT_182670a40;
  uVar8 = DAT_182670814;
  lVar2 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 + -0xc0) =
       *(longlong *)(DAT_1826707a0 + -0x2d0) +
       ((CONCAT44(uVar37,uVar26) ^ 0xff27b3adffffdff4) +
       (CONCAT44(uVar27,uVar37) ^ 0xb3adff27ff27b3ad) * 0xc) * 8 ^ uVar29;
  uVar20 = DAT_182670a14;
  uVar28 = (ulonglong)DAT_182670a14;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar27 ^ 0xb3adfd07)) =
       (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0x548)) +
       (CONCAT44(uVar7,uVar18) ^ 0xf3ef3e8c9b8e32b7);
  uVar9 = _DAT_1826708f8;
  uVar29 = CONCAT44(uVar20,uVar20) ^ *(ulonglong *)(uVar29 ^ *(ulonglong *)(lVar2 + -0xc0)) ^ uVar42
  ;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar29;
  lVar2 = DAT_1826707a0;
  puVar13 = (ulonglong *)(DAT_1826707a0 - (uVar44 ^ 0xffffd31f));
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar29 >> 0x20 ^ CONCAT44(uVar9,uVar9) ^ uVar28;
  *(ulonglong *)(lVar2 - (uVar39 ^ 0xb3adfa6f)) =
       (*puVar13 ^ CONCAT44(DAT_182670a34,DAT_182670a34)) <<
       (((byte)(uVar27 >> 0x10) ^ 0x9c) & 0x3f);
  bVar31 = (byte)DAT_182670970;
  bVar32 = (byte)uVar9 ^ (byte)DAT_182670970 ^ *(byte *)(lVar2 + -0x588);
  *(ulonglong *)(lVar2 + -0x6b8) =
       CONCAT44(uVar27,uVar18) ^ CONCAT44(uVar26,uVar7) ^ 0x9e05c669b28a53e0;
  uVar28 = (ulonglong)DAT_182670a74;
  *(byte *)(lVar2 + -0x779) = bVar32;
  uVar20 = DAT_182670a40;
  pbVar22 = (byte *)((CONCAT44(uVar37,uVar37) ^ 0xff27b3adff27b3f1) + *(longlong *)(lVar2 + -0x168))
  ;
  *(ulonglong *)(lVar2 + -0x990) = (ulonglong)pbVar22 ^ uVar28;
  *pbVar22 = bVar31 ^ (byte)uVar20 ^ bVar32;
  uVar33 = DAT_1826707f4;
  uVar21 = DAT_1826707d4;
  lVar15 = DAT_1826707a0;
  puVar14 = (ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0xbcfc00b8));
  puVar40 = (ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0xefdfdab7));
  *puVar40 = *(ulonglong *)(lVar2 + -0xd88) | *puVar14;
  uVar17 = DAT_1826707e4;
  uVar20 = DAT_1826707ac;
  puVar13 = (ulonglong *)
            (*(longlong *)(lVar15 + -0x2d0) +
            ((CONCAT44(uVar33,uVar27) ^ 0xfffc2effb3adff2c) +
            (CONCAT44(uVar7,uVar37) ^ 0xefdfdfffff27b3ad) * 0xc) * 8);
  local_res18 = (byte)uVar26;
  *(ulonglong *)(lVar15 + -0xc0) = (ulonglong)puVar13 ^ CONCAT44(DAT_1826708e4,DAT_1826708e4);
  uVar8 = DAT_1826709d0;
  *(ulonglong *)(lVar15 + -0x6b8) =
       (CONCAT44(uVar26,uVar37) ^ 0xf5fc07080bcd120b) >> ((local_res18 ^ 0xd6) & 0x3f);
  uVar28 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar15 + -0xd88) = *puVar13 ^ uVar28 ^ uVar42;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar15 + -0x6b8) =
       *(ulonglong *)(lVar15 - ((ulonglong)DAT_1826707f0 ^ 0x4e92db84)) |
       *(ulonglong *)(lVar15 - ((ulonglong)uVar21 ^ 0xfffffab7));
  *puVar40 = (uVar28 ^ *(ulonglong *)(lVar2 + -0xd88)) >> (((byte)uVar17 ^ 0x5e) & 0x3f) ^
             CONCAT44(uVar8,uVar8);
  uVar18 = DAT_1826707a8;
  lVar2 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_182670ac4;
  uVar28 = (ulonglong)DAT_1826707ec;
  *(byte *)(DAT_1826707a0 + -0xa49) =
       *(byte *)(DAT_1826707a0 - ((ulonglong)uVar33 ^ 0xfffc2bb7)) ^ (byte)uVar8 ^
       (byte)DAT_182670824;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x84c3d7e8)) =
       (CONCAT44(uVar18,DAT_1826707e0) ^ 0x9802fcbc85cbd3ba) + *(longlong *)(lVar2 + -0x168) ^
       uVar29;
  bVar31 = (byte)DAT_182670824 ^ *(byte *)(lVar2 + -0xa49) ^ (byte)DAT_182670a40;
  *(uint *)(lVar2 + -0x8e0) =
       (DAT_1826707b0 ^ 0x514d46c0) >> ((byte)*(undefined4 *)(lVar2 + -0x3d4) & 0x1f);
  *(byte *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x9802f8dc)) ^ uVar29) = bVar31;
  uVar19 = DAT_1826707c8;
  uVar23 = CONCAT44(uVar37,uVar17);
  uVar28 = (ulonglong)DAT_1826707c8;
  *(uint *)(lVar2 + -0x68c) = (uVar21 ^ 0xf35d4c96) - *(int *)(lVar2 + -0xcec);
  uVar8 = DAT_182670944;
  uVar34 = _DAT_1826708bc;
  uVar36 = CONCAT44(DAT_182670884,DAT_182670884);
  *(ulonglong *)(lVar2 + -0x3c0) =
       *(longlong *)(lVar2 - ((ulonglong)uVar21 ^ 0xfffffd2f)) +
       ((uVar23 ^ 0xff27b3ad54c7ee7d) + (CONCAT44(uVar18,uVar20) ^ 0x9802fcbcf523cf01) * 0xc) * 8 ^
       uVar36;
  uVar29 = *(ulonglong *)(CONCAT44(uVar34,uVar34) ^ *(ulonglong *)(lVar2 + -0xb78)) ^ uVar42;
  *(ulonglong *)(lVar2 + -0x6b8) = uVar29;
  uVar4 = DAT_1826707d8;
  uVar3 = DAT_1826707cc;
  uVar38 = CONCAT44(uVar8,uVar8);
  uVar25 = (ulonglong)DAT_1826707d8;
  uVar43 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar2 + -0x548) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - (uVar28 ^ 0xf523ccc1)) ^ uVar36) ^ uVar38 ^ uVar42;
  uVar8 = DAT_182670938;
  uVar28 = (ulonglong)DAT_1826707dc;
  bVar31 = (byte)DAT_182670938;
  *(ulonglong *)(lVar2 - (uVar43 ^ 0xcc49cc2b)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0x85cbd55f)) ^ uVar29;
  uVar17 = DAT_1826707b0;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar30 = (ulonglong)DAT_182670ac8;
  uVar29 = (ulonglong)DAT_1826707dc;
  uVar28 = (*(ulonglong *)(lVar2 - (uVar28 ^ 0xbcfc07d0)) ^ uVar38) >> (((byte)uVar4 ^ 0xe9) & 0x3f)
           ^ uVar36;
  bVar31 = bVar31 ^ (byte)uVar28 ^ (byte)DAT_1826709cc;
  bVar32 = (byte)DAT_1826709cc ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar2 + -0x3b0) = uVar28;
  *(byte *)(lVar2 + -0xd9) = bVar31;
  *(ulonglong *)(lVar2 - (uVar29 ^ 0xbcfc0a00)) =
       (CONCAT44(uVar17,uVar17) ^ 0x7b3c2c777b3c2c29) + *(longlong *)(lVar2 + -0x168) ^ uVar30;
  uVar33 = DAT_1826707c0;
  *(byte *)(*(ulonglong *)(lVar2 + -0x898) ^ uVar30) = bVar32 ^ *(byte *)(lVar2 + -0xd9);
  uVar8 = DAT_1826707fc;
  uVar17 = DAT_1826707bc;
  puVar13 = (ulonglong *)
            (*(longlong *)(lVar2 + -0x2d0) +
            ((CONCAT44(uVar33,uVar4) ^ 0xab3811890f8812d2) +
            (CONCAT44(uVar27,uVar33) ^ 0xb3adff27ab381189) * 0xc) * 8);
  *(ulonglong *)(lVar2 + -0xb78) = (ulonglong)puVar13 ^ CONCAT44(DAT_18267081c,DAT_18267081c);
  uVar29 = (ulonglong)DAT_182670a6c;
  uVar42 = *puVar13 ^ CONCAT44(uVar8,uVar8) ^ uVar42;
  *(ulonglong *)(lVar2 + -0x410) = uVar42;
  lVar2 = DAT_1826707a0;
  bVar31 = (byte)DAT_182670a58;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar17 ^ 0x468e3cde)) =
       (CONCAT44(uVar8,uVar8) ^ uVar42) >> (((byte)uVar18 ^ 0x84) & 0x3f) ^
       CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar6 = DAT_1826707e4;
  uVar42 = CONCAT44(uVar20,DAT_1826707bc);
  uVar28 = (ulonglong)DAT_1826707f0;
  *(byte *)(lVar2 + -0x4d1) =
       *(byte *)(DAT_1826707a0 - (uVar24 ^ 0xefdfd307)) ^ bVar31 ^ (byte)DAT_182670924;
  pbVar22 = (byte *)((uVar42 ^ 0xf523cf01468e3079) + *(longlong *)(lVar2 + -0x168));
  *(ulonglong *)(lVar2 + -0x938) = (ulonglong)pbVar22 ^ uVar29;
  *pbVar22 = *(byte *)(lVar2 - (uVar28 ^ 0x4e92dd75)) ^ (byte)DAT_182670924 ^ (byte)DAT_182670a40;
  lVar15 = (CONCAT44(uVar6,uVar19) ^ 0x54c7ee76f523cf99) + *(longlong *)(lVar2 + 8);
  *(longlong *)(lVar2 + -0x390) = lVar15;
  *(longlong *)(lVar2 + -0xa48) = lVar15;
  uVar5 = DAT_1826707dc;
  uVar20 = DAT_1826707b8;
  lVar15 = DAT_1826707a0;
  uVar29 = (ulonglong)DAT_1826707b8;
  puVar13 = (ulonglong *)(lVar2 - (uVar44 ^ 0xffffd5b7));
  uVar28 = (ulonglong)DAT_1826708c4;
  *(uint *)(lVar2 + -0x9ec) = *(uint *)*puVar13 ^ DAT_18267095c;
  *(ulonglong *)(lVar2 + -0xcf8) =
       (CONCAT44(uVar19,uVar18) ^ 0x98c6e0c1c10e8057) >> (((byte)DAT_1826707ec ^ 0xb7) & 0x3f);
  uVar18 = DAT_1826707f0;
  uVar42 = CONCAT44(DAT_1826707f0,uVar3);
  *(ulonglong *)(lVar2 + -0x860) =
       (*(ulonglong *)(lVar2 + -0x908) ^ uVar28) +
       (CONCAT44(uVar21,uVar20) ^ 0xffffffffffb3dfa5) * 0x60;
  uVar33 = DAT_1826707f4;
  *(ulonglong *)(lVar2 + -0x9e0) =
       (uVar42 ^ 0x43f80415b2728b62) << ((*(byte *)(lVar2 + -0x410) ^ (byte)uVar8) & 0x3f);
  *(undefined8 *)(lVar2 - ((ulonglong)uVar33 ^ 0xfffc23a7)) =
       *(undefined8 *)(lVar2 - ((ulonglong)uVar20 ^ 0xffb3d7c5));
  uVar35 = DAT_1826709a0;
  *(ulonglong *)(lVar2 + -0x1a0) = *(ulonglong *)(lVar2 + -0xd58);
  *(uint *)(lVar2 + -0x2d4) = (DAT_1826707e0 ^ 0x4eef9ec4) + (uVar4 ^ 0x21fc30e8);
  uVar17 = DAT_1826707bc;
  uVar28 = (ulonglong)DAT_182670954;
  uVar42 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar15 - ((ulonglong)uVar18 ^ 0x4e92d3ec)) =
       uVar28 ^ *(ulonglong *)(lVar2 + -0xd58);
  *(undefined4 *)(lVar15 - (uVar42 ^ 0x468e33be)) = 0xfff5f7bb;
  *(uint *)(lVar15 + -0xc04) = *(uint *)(uVar28 ^ *puVar13) ^ uVar35 ^ DAT_182670a40;
  uVar11 = DAT_182670ad8;
  bVar31 = (byte)DAT_1826707ec;
  *(uint *)(lVar15 - ((ulonglong)uVar6 ^ 0x54c7e992)) =
       (*(uint *)(lVar15 + -0x9ec) ^ DAT_18267095c) -
       (*(uint *)(lVar15 - ((ulonglong)uVar33 ^ 0xfffc22fb)) ^ uVar35) ^ uVar34;
  uVar18 = (uVar35 ^ *(uint *)(lVar15 + -0xc04) | uVar34 ^ *(uint *)(lVar15 + -0x7e4)) ^
           DAT_182670a70;
  *(uint *)(lVar15 + -0xc0c) = uVar18;
  uVar18 = (int)(uVar18 ^ DAT_182670a70) >> ((bVar31 ^ 0x97) & 0x1f) ^ uVar11;
  *(uint *)(lVar15 + -0x43c) = uVar18;
  uVar3 = DAT_182670898;
  uVar19 = DAT_1826707c4 ^ 0xd84c52;
  *(uint *)(lVar15 + -0xc34) = ~DAT_182670898 ^ uVar18 ^ uVar11;
  uVar18 = DAT_1826707d4;
  *(uint *)(lVar15 - ((ulonglong)DAT_1826707dc ^ 0xbcfc09cc)) =
       uVar19 - (*(uint *)(lVar15 - (uVar43 ^ 0xcc49c39f)) ^ uVar35) ^ DAT_1826708cc;
  uVar19 = DAT_1826708e0;
  uVar33 = *(uint *)(lVar15 - ((ulonglong)uVar33 ^ 0xfffc25ab)) ^ DAT_1826708cc;
  *(longlong *)(lVar15 + -0x9e0) = -0x246c7d4bdbcedf4c - *(longlong *)(lVar15 + -0x6b8);
  uVar33 = (int)uVar33 >> ((byte)uVar18 & 0x1f);
  uVar34 = uVar33 ^ uVar19;
  *(uint *)(lVar15 + -0xaf0) = uVar34;
  uVar18 = ~DAT_182670958;
  *(uint *)(lVar15 + -0x814) = uVar33 & (uVar3 ^ *(uint *)(lVar15 + -0xc34)) ^ uVar11;
  *(uint *)(lVar15 + -0x140) = uVar18 ^ uVar34 ^ uVar19;
  uVar10 = DAT_182670a04;
  uVar34 = DAT_1826709b8;
  uVar18 = DAT_1826707f4 ^ 0x3d100;
  *(uint *)(lVar15 - ((ulonglong)DAT_1826707f0 ^ 0x4e92dce4)) =
       (*(uint *)(lVar15 - (uVar24 ^ 0xefdfdebf)) ^ DAT_182670958 |
       *(uint *)(lVar15 + -0x43c) ^ uVar11) ^ DAT_182670a04;
  uVar33 = *(uint *)(lVar15 + -0x540) ^ uVar10;
  uVar41 = uVar18 & uVar33 ^ DAT_182670978;
  uVar18 = (uVar35 ^ *(uint *)(lVar15 + -0xc04)) & (*(uint *)(lVar15 + -0x814) ^ uVar11) ^
           DAT_1826708dc;
  *(uint *)(lVar15 + -0x280) = uVar18;
  uVar18 = uVar18 ^ DAT_1826708dc;
  uVar19 = uVar33 & 5 ^ DAT_182670aa4;
  *(uint *)(lVar15 + -0x14) = uVar41;
  uVar35 = DAT_182670ae4;
  uVar33 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar18 = uVar18 | uVar41 ^ DAT_182670978;
  bVar31 = *(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c0 ^ 0xab381401));
  uVar28 = CONCAT44(uVar21,DAT_1826707e4);
  *(uint *)(DAT_1826707a0 + -0x42c) = uVar18 ^ DAT_182670ae4;
  *(ulonglong *)(lVar2 + -0x6b8) = (uVar28 ^ 0xe58eddbb7e682767) >> ((bVar31 ^ (byte)uVar9) & 0x3f);
  *(uint *)(lVar2 + -0xa34) = uVar18 * -0x4b82fdb7;
  *(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0xfffc2b67)) = uVar19;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar29 ^ 0xffb3dc71)) =
       (*(uint *)(DAT_1826707a0 + -0x814) ^ uVar11) & (DAT_1826707ac ^ 0xf523cf01) ^ uVar34;
  uVar21 = DAT_182670a40;
  uVar19 = DAT_182670820;
  uVar18 = DAT_1826707b0;
  uVar42 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar2 + -0x9e0) =
       *(ulonglong *)(lVar2 - (uVar39 ^ 0xb3adfc97)) ^ CONCAT44(uVar5,uVar20) ^ uVar36 ^
       0xb50f8fd7dc570688;
  *(uint *)(lVar2 - ((ulonglong)uVar17 ^ 0x468e38c6)) =
       (*(uint *)(lVar2 + -0x598) ^ DAT_182670aa4 | uVar34 ^ *(uint *)(lVar2 + -0x3d4)) ^ uVar21;
  uVar20 = DAT_182670838;
  *(ulonglong *)(lVar2 - (uVar44 ^ 0xffffd2a7)) =
       (CONCAT44(uVar27,uVar4) ^ 0xb3adff270f8812d8) * 0x10 + *(longlong *)(lVar2 + -0x1a0);
  uVar35 = uVar19 ^ *(uint *)(lVar2 + -0x42c) ^ uVar35;
  uVar20 = uVar20 ^ *(uint *)(lVar2 + -0x8e0) ^ uVar21;
  *(ulonglong *)(lVar2 + -0x6b8) = *puVar14 << (((byte)uVar18 ^ 0x78) & 0x3f);
  *(undefined8 *)(lVar2 + -0x1a0) = *(undefined8 *)(lVar2 + -0xd58);
  *(uint *)(lVar2 + -0x68c) = uVar35;
  uVar19 = uVar35 ^ DAT_182670a1c ^ DAT_182670820;
  *(uint *)(lVar2 + -0xcec) = uVar20;
  *(undefined8 *)(lVar2 + -0xd58) = *(undefined8 *)(lVar2 - ((ulonglong)DAT_1826707f0 ^ 0x4e92d804))
  ;
  uVar18 = DAT_182670874 ^ DAT_182670838;
  *(uint *)(lVar2 + -0x398) = uVar19;
  uVar28 = (ulonglong)DAT_182670824;
  *(uint *)(lVar2 + -0x2d4) = uVar18 ^ uVar20;
  *(ulonglong *)(lVar2 + -0x3b0) =
       (CONCAT44(uVar7,uVar17) ^ 0x133ed7763b91314b) +
       (CONCAT44(uVar26,uVar37) ^ 0x40c3ac09304f3632);
  uVar17 = DAT_182670998;
  puVar16 = (uint *)(*(longlong *)(lVar2 - ((ulonglong)uVar37 ^ 0xff27bef5)) +
                    (uVar23 ^ 0xff27b3ad54c7ee76) * 0x10);
  *(ulonglong *)(lVar2 + -0x2a8) = (ulonglong)puVar16 ^ uVar28;
  uVar21 = *puVar16 ^ uVar17 ^ uVar21;
  *(uint *)(lVar2 + -0x7e4) = uVar21;
  uVar19 = DAT_1826709ec;
  uVar27 = (*(uint *)(lVar2 - (uVar29 ^ 0xffb3d649)) ^ DAT_18267095c) - (uVar17 ^ uVar21) ^
           DAT_182670884;
  *(uint *)(lVar2 + -0xc0c) = uVar27;
  uVar27 = uVar27 ^ DAT_182670884;
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(uVar6,uVar33) ^ 0x3c5e10ae3619339d) - *(longlong *)(lVar2 + -0xcf8);
  uVar18 = DAT_1826707dc;
  uVar27 = *(uint *)(lVar2 - (uVar25 ^ 0xf88153d)) ^ uVar17 | uVar27;
  uVar20 = DAT_1826707b0 & 1;
  *(uint *)(lVar2 + -0xb54) = uVar27 ^ uVar19;
  uVar33 = DAT_182670b0c;
  uVar19 = (int)uVar27 >> 0x1f ^ uVar3;
  *(uint *)(lVar2 + -0xc34) = uVar19;
  if (uVar20 == 0) {
    uVar18 = DAT_1826707b0;
  }
  DAT_1826707e0 = uVar18;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826707ec ^ 0x84c3d978)) =
       uVar33 ^ uVar19 ^ uVar3 ^ DAT_1826707dc ^ 0x4303fd67;
  *(ulonglong *)(lVar2 + -0x3b0) = (CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(lVar2 + -0x588)) << 0x3c;
  *(uint *)(lVar2 - (uVar42 ^ 0x7b3c284b)) =
       (*(uint *)(lVar2 - (uVar42 ^ 0x7b3c2fef)) ^ DAT_182670a1c) -
       (*(uint *)(lVar2 - ((ulonglong)uVar18 ^ 0xbcfc057c)) ^ uVar17) ^ uVar10;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar1 ^ uVar37;
  return;
}



############ FUN_ 180ca96f0 size=4370 ############

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

void FUN_180ca96f0(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  byte bVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  byte *pbVar16;
  uint uVar17;
  uint uVar18;
  longlong lVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong *puVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  longlong *plVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  uint uVar38;
  byte local_a8;
  
  uVar18 = DAT_1826707ec;
  uVar6 = DAT_1826707cc;
  uVar4 = DAT_1826707b4;
  uVar3 = DAT_1826707b0;
  lVar1 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707b0;
  uVar27 = (ulonglong)DAT_1826707cc;
  uVar15 = DAT_1826707ec * DAT_1826707b0;
  uVar21 = (ulonglong)uVar15;
  uVar38 = DAT_1826707cc | DAT_1826707b4;
  uVar17 = *(uint *)(&DAT_18260f758 + DAT_182670dc4) ^ DAT_1826707b0;
  uVar14 = *(uint *)(&DAT_18260f760 + DAT_182670dc4) ^ DAT_1826707ec;
  uVar20 = (ulonglong)DAT_1826707b4;
  uVar25 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  bVar11 = (byte)DAT_1826707b4;
  DAT_1826707bc = uVar15;
  DAT_1826707c0 = uVar38;
  *(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0x33e56380)) =
       (*(byte *)(DAT_1826707a0 + -0x729) ^ (byte)DAT_182670960) ^ uVar25;
  bVar12 = (byte)DAT_182670a74;
  uVar28 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar25 = (*(ulonglong *)(lVar1 + -0x2b0) ^ uVar25) << ((bVar11 ^ 0xdf) & 0x3f);
  uVar23 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar1 + -0xbb0) = uVar25 ^ uVar28;
  uVar22 = CONCAT44(DAT_182670a24,DAT_182670a24);
  uVar26 = (ulonglong)DAT_182670934;
  *(ulonglong *)(lVar1 + -0x660) = (uVar23 ^ *(ulonglong *)(lVar1 + -0x588) | uVar25) ^ uVar22;
  pbVar16 = (byte *)(*(longlong *)(lVar1 - ((ulonglong)uVar38 ^ 0xffffde97)) + 0xd);
  *(ulonglong *)(lVar1 + -0x390) = (ulonglong)pbVar16 ^ uVar26;
  uVar9 = DAT_182670b04;
  bVar11 = *pbVar16 ^ bVar12 ^ (byte)DAT_182670a40;
  uVar26 = (ulonglong)(bVar12 ^ bVar11);
  *(byte *)(lVar1 + -0xc69) = bVar11;
  uVar25 = (ulonglong)uVar18;
  *(ulonglong *)(lVar1 + -0x3b0) = uVar26 ^ CONCAT44(uVar9,uVar9);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xffffdab7)) =
       uVar26 << (((byte)uVar18 ^ 0x78) & 0x3f) ^ uVar28;
  uVar5 = _DAT_1826708c8;
  lVar1 = (uVar23 ^ *(ulonglong *)(lVar2 + -0x588)) * 2;
  *(longlong *)(lVar2 + -0xbb0) = lVar1;
  uVar23 = uVar28 ^ *(ulonglong *)(lVar2 + -0x548) | uVar22 ^ *(ulonglong *)(lVar2 + -0x660);
  *(ulonglong *)(lVar2 + -0xcf8) = uVar23 ^ CONCAT44(uVar5,uVar5);
  lVar19 = DAT_1826707a0;
  *(ulonglong *)(lVar2 + -0x2b0) =
       CONCAT44(uVar15,uVar4) ^ 0x3198223ee024d796 | uVar28 ^ *(ulonglong *)(lVar2 + -0x548);
  bVar12 = (byte)DAT_182670870;
  pbVar16 = (byte *)((CONCAT44(uVar6,uVar38) ^ 0x12d90f88ffffdff1) + *(longlong *)(lVar2 + -0x168));
  *(ulonglong *)(lVar2 + -0x418) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182670930;
  bVar11 = (byte)DAT_182670a40;
  *(byte *)(lVar19 + -0xb81) = *pbVar16 ^ bVar12 ^ bVar11;
  uVar5 = DAT_1826709f4;
  *(byte *)(lVar19 + -0x2bd) =
       *(byte *)((ulonglong)DAT_18267088c ^ *(ulonglong *)(lVar19 + -0x4f8)) ^ bVar11;
  lVar2 = DAT_1826707a0;
  uVar26 = (ulonglong)(*(byte *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0x7b3c27f6)) ^ bVar12);
  pbVar16 = (byte *)(DAT_1826707a0 + -0x3b0);
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar26 ^ CONCAT44(uVar5,uVar5);
  uVar5 = DAT_1826708a0;
  lVar19 = (CONCAT44(uVar4,uVar3) ^ 0x55147d03ddd7bd87) << (((byte)uVar9 ^ *pbVar16) & 0x3f);
  *(longlong *)(lVar2 + -0x2b0) = lVar19;
  uVar10 = DAT_182670a40;
  bVar12 = (byte)DAT_1826709b8;
  uVar9 = DAT_182670900;
  uVar7 = DAT_182670888;
  uVar28 = CONCAT44(uVar5,uVar5);
  uVar29 = (ulonglong)DAT_182670888;
  *(longlong *)(lVar2 + -0x588) = lVar1 << ((byte)lVar19 & 0x3f);
  uVar26 = uVar26 << 0x30;
  *(ulonglong *)(lVar2 + -0x548) = uVar26 ^ uVar28;
  uVar31 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x14f67e0)) = uVar26 + uVar23 ^ uVar31;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xae8) =
       (CONCAT44(uVar18,uVar4) ^ 0x14f6450ffffdff0) + *(longlong *)(DAT_1826707a0 + -0x168) ^ uVar29
  ;
  *(byte *)(lVar1 + -699) =
       *(byte *)(*(ulonglong *)(lVar1 - (uVar21 ^ 0x33e56bd8)) ^ uVar29) ^ bVar12 ^ (byte)uVar10;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0x14f6230)) =
       (CONCAT44(uVar3,uVar6) ^ 0x28b35f5ebed498b7) + (uVar31 ^ *(ulonglong *)(lVar1 + -0x3b0));
  uVar5 = DAT_1826709d8;
  uVar23 = (ulonglong)(bVar12 ^ *(byte *)(lVar1 + -699));
  *(ulonglong *)(lVar1 + -0x2b0) = uVar23 ^ CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  uVar26 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar38 ^ 0xffffda77)) = uVar23 << 0x38 ^ uVar26;
  uVar29 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  uVar26 = (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xffffdc4f)) ^ uVar31) +
           (uVar26 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) ^ uVar29;
  *(ulonglong *)(DAT_1826707a0 + -0xcf8) = uVar26;
  uVar32 = CONCAT44(DAT_182670970,DAT_182670970);
  puVar24 = (ulonglong *)
            (*(longlong *)(DAT_1826707a0 + -0xa58) +
            (CONCAT44(uVar15,uVar38) ^ 0x33e56130ffffdffe) * 8);
  *(ulonglong *)(DAT_1826707a0 + -0x240) = (ulonglong)puVar24 ^ uVar32;
  uVar5 = DAT_182670a9c;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (CONCAT44(uVar18,uVar6) ^ 0x57d2241085ab353b) - (CONCAT44(uVar18,uVar3) ^ 0x78f059e9ca0ea71f)
  ;
  uVar23 = CONCAT44(uVar5,uVar5);
  *puVar24 = uVar23 ^ uVar29 ^ uVar26;
  bVar12 = (byte)DAT_1826708cc;
  plVar30 = (longlong *)(lVar1 - (uVar27 ^ 0x12d90ee0));
  *(uint *)(lVar1 + -0x43c) = (uVar3 ^ 0x287a6c32) << (((byte)uVar38 ^ 0xe2) & 0x1f);
  uVar8 = DAT_1826708dc;
  uVar36 = (ulonglong)DAT_1826708dc;
  pbVar16 = (byte *)((CONCAT44(uVar4,uVar15) ^ 0xffffdfff33e56120) + *plVar30);
  *(ulonglong *)(lVar1 + -0x390) = (ulonglong)pbVar16 ^ uVar36;
  *(byte *)(lVar1 + -0x321) = *pbVar16 ^ bVar12 ^ (byte)DAT_182670a40;
  uVar29 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar1 + -0x660) =
       (*(byte *)(lVar1 - ((ulonglong)uVar38 ^ 0xffffdcde)) ^ bVar12) ^ uVar29;
  uVar26 = (ulonglong)DAT_1826709dc;
  *(ulonglong *)(lVar1 + -0x2b0) =
       (CONCAT44(uVar4,uVar15) ^ 0x5878cfee4dfd0e23) - *(longlong *)(lVar1 + -0xbb0);
  uVar10 = DAT_182670a40;
  bVar12 = (byte)DAT_1826708d0;
  *(ulonglong *)(lVar1 + -0x418) = *plVar30 + 0x11U ^ uVar26;
  puVar24 = (ulonglong *)(lVar1 - (uVar25 ^ 0x14f6048));
  *(byte *)(DAT_1826707a0 - (uVar21 ^ 0x33e56451)) =
       *(byte *)(uVar26 ^ *puVar24) ^ bVar12 ^ (byte)uVar10;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x7b3c2fc7)) =
       CONCAT44(DAT_1826707c8,uVar4) ^ 0x6ea621cf271ea85e |
       CONCAT44(uVar38,uVar3) ^ 0xc86d099bec57162f;
  uVar26 = (ulonglong)(*(byte *)(lVar1 + -0x561) ^ bVar12);
  *(ulonglong *)(lVar1 + -0x588) = uVar26 ^ CONCAT44(DAT_1826709a8,DAT_1826709a8);
  uVar31 = CONCAT44(uVar7,uVar7);
  local_a8 = (byte)uVar6;
  uVar26 = uVar26 << 8;
  *(ulonglong *)(lVar1 + -0x2b0) = *(ulonglong *)(lVar1 + -0x410) >> ((local_a8 ^ 0xb5) & 0x3f);
  uVar9 = DAT_182670908;
  *(ulonglong *)(lVar1 + -0x68) = (uVar28 ^ *(ulonglong *)(lVar1 + -0x548)) + 0xe3c1c57d0c83a41a;
  *(ulonglong *)(lVar1 + -0xbb0) = uVar26 ^ uVar31;
  uVar5 = DAT_1826707e4;
  uVar26 = (*(ulonglong *)(lVar1 - (uVar34 ^ 0x7b3c2a17)) ^ uVar29 | uVar26) ^ CONCAT44(uVar9,uVar9)
  ;
  *(ulonglong *)(lVar1 + -0x3b0) = uVar26;
  bVar12 = (byte)DAT_1826708e0;
  uVar28 = CONCAT44(uVar5,DAT_1826707c4);
  *(ulonglong *)(lVar1 - (uVar25 ^ 0x14f6118)) =
       (CONCAT44(uVar5,uVar38) ^ 0x9e6bffe25779df69) >> (((byte)uVar26 ^ (byte)uVar9) & 0x3f);
  pbVar16 = (byte *)((uVar28 ^ 0x727d2efd4303fd75) + *(longlong *)(lVar1 + -0x168));
  *(ulonglong *)(lVar1 + -0x4f8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_1826708f0;
  *(byte *)(lVar1 + -0xc41) = *pbVar16 ^ (byte)uVar10 ^ bVar12;
  uVar28 = CONCAT44(DAT_18267096c,DAT_18267096c);
  uVar18 = *(uint *)(lVar1 + -0x14) ^ DAT_182670984;
  *(ulonglong *)(lVar1 + -0x68) = (*(byte *)(lVar1 - (uVar21 ^ 0x33e56d71)) ^ bVar12) ^ uVar28;
  *(uint *)(lVar1 - ((ulonglong)DAT_1826707c8 ^ 0xf523c30d)) =
       uVar18 << (((byte)*(undefined4 *)(lVar1 - ((ulonglong)DAT_1826707e8 ^ 0x727d2ad1)) ^
                  (byte)DAT_182670904) & 0x1f);
  uVar5 = DAT_182670a14;
  uVar26 = CONCAT44(DAT_182670928,DAT_182670928);
  *(ulonglong *)(lVar1 + -0x588) =
       (*(ulonglong *)(lVar1 + -0x68) ^ uVar28) << (((byte)uVar15 ^ 0x20) & 0x3f) ^ uVar26;
  bVar12 = (byte)DAT_182670ac8;
  uVar10 = DAT_182670a40;
  uVar38 = DAT_1826707f0;
  uVar18 = DAT_1826707a8;
  lVar1 = DAT_1826707a0;
  uVar33 = CONCAT44(uVar5,uVar5);
  uVar28 = (ulonglong)DAT_1826707f0;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707a8 ^ 0xfeb09fbf)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x7b3c29ff)) ^ uVar26 |
       *(ulonglong *)(DAT_1826707a0 + -0x3b0) ^ CONCAT44(uVar9,uVar9)) ^ uVar33;
  uVar26 = (ulonglong)DAT_182670838;
  *(ulonglong *)(lVar1 - (uVar20 ^ 0xffffd517)) =
       (CONCAT44(uVar38,uVar3) ^ 0x50644f017b3c2c64) + *(longlong *)(lVar1 + -0x168) ^ uVar26;
  bVar13 = (byte)uVar10;
  *(byte *)(lVar1 + -0xd29) = *(byte *)(*(ulonglong *)(lVar1 + -0xae8) ^ uVar26) ^ bVar13 ^ bVar12;
  uVar5 = DAT_182670af8;
  *(byte *)(lVar1 + -0x109) = *(byte *)(*(ulonglong *)(lVar1 + -0xae8) ^ uVar26) ^ bVar13;
  uVar26 = CONCAT44(uVar5,uVar5);
  bVar11 = (byte)DAT_1826707b8;
  *(ulonglong *)(lVar1 - (uVar20 ^ 0xffffdd4f)) = (*(byte *)(lVar1 + -0xd29) ^ bVar12) ^ uVar26;
  uVar26 = (*(ulonglong *)(lVar1 + -0x2b0) ^ uVar26) << ((bVar11 ^ 0xed) & 0x3f);
  *(ulonglong *)(lVar1 + -0x660) = uVar26 ^ CONCAT44(DAT_182670a64,DAT_182670a64);
  bVar12 = (byte)DAT_182670914;
  uVar21 = (ulonglong)_DAT_18267097c;
  *(ulonglong *)(lVar1 + -0xbb0) = (*(ulonglong *)(lVar1 + -0x410) ^ uVar33 | uVar26) ^ uVar29;
  *puVar24 = *(longlong *)(lVar1 - (uVar28 ^ 0x50644e69)) + 0x14U ^ uVar21;
  uVar5 = DAT_182670980;
  lVar2 = DAT_1826707a0;
  bVar11 = *(byte *)(*(ulonglong *)(lVar1 + -0x418) ^ uVar21) ^ bVar13;
  *(byte *)(lVar1 + -0xc05) = bVar11 ^ bVar12;
  uVar26 = CONCAT44(uVar5,uVar5);
  *(int *)(lVar1 + -0x3d4) =
       (int)(DAT_1826707d8 ^ 0xac76152e) >> ((byte)*(undefined4 *)(lVar1 + -0x814) & 0x1f);
  uVar5 = _DAT_182670b10;
  *(ulonglong *)(lVar1 + -0x548) = bVar11 ^ uVar26;
  uVar35 = (ulonglong)DAT_1826707ac;
  pbVar16 = (byte *)(*(longlong *)(lVar2 + -0x168) + 0x15);
  uVar33 = (ulonglong)DAT_1826707f4;
  uVar34 = (*(ulonglong *)(lVar2 - (uVar35 ^ 0xf523ca49)) ^ uVar26) << 0x20;
  uVar26 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(lVar2 + -0x68) = uVar34 ^ CONCAT44(uVar5,uVar5);
  bVar12 = (byte)DAT_1826709ac;
  uVar34 = uVar34 | *(ulonglong *)(lVar2 + -0xbb0) ^ uVar29;
  *(ulonglong *)(lVar2 + -0x4f8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182670830;
  *(ulonglong *)(lVar2 + -0x3b0) = uVar34 ^ uVar26;
  *(byte *)(lVar2 + -0x182) = *pbVar16 ^ bVar13 ^ bVar12;
  uVar26 = (ulonglong)(*(byte *)(lVar2 - (uVar33 ^ 0xfffc2f7d)) ^ bVar12);
  uVar28 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(ulonglong *)(lVar2 + -0x588) = uVar26 ^ uVar32;
  *(ulonglong *)(lVar2 + -0x2b0) = uVar26 << 0x28 ^ uVar28;
  bVar12 = (byte)DAT_182670954;
  uVar7 = DAT_1826707d0;
  lVar1 = DAT_1826707a0;
  uVar21 = CONCAT44(DAT_182670924,DAT_182670924);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707d0 ^ 0xffffdbef)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0x14f66e0)) ^ uVar28 | uVar34) ^ uVar21;
  uVar25 = (ulonglong)DAT_1826708c0;
  *(ulonglong *)(lVar1 + -0xae8) =
       (CONCAT44(uVar3,uVar4) ^ 0x7b3c2c77ffffdfe9) + *(longlong *)(lVar1 + -0x168) ^ uVar25;
  uVar5 = DAT_182670828;
  bVar13 = (byte)DAT_182670a40;
  bVar11 = *(byte *)(*(ulonglong *)(lVar1 - (uVar33 ^ 0xfffc2417)) ^ uVar25) ^ bVar13;
  *(byte *)(lVar1 + -0x7b9) = bVar11 ^ bVar12;
  uVar3 = DAT_1826707e0;
  *(ulonglong *)(lVar1 + -0x660) = (ulonglong)bVar11 ^ CONCAT44(uVar5,uVar5);
  uVar37 = (ulonglong)DAT_1826707dc;
  uVar33 = (ulonglong)DAT_1826707e8;
  *(byte *)(lVar1 + -0xd71) = *(byte *)(uVar36 ^ *(ulonglong *)(lVar1 + -0x390)) ^ bVar13;
  *(ulonglong *)(lVar1 + -0x548) = (ulonglong)bVar11 << (((byte)uVar3 ^ 0xa8) & 0x3f) ^ uVar32;
  *(uint *)(lVar1 - (uVar33 ^ 0x727d2d65)) = (uVar18 ^ 0x4cb3af49) * -0x3db3ecb7;
  uVar3 = DAT_1826707e0;
  uVar5 = DAT_1826707c4;
  uVar34 = CONCAT44(DAT_1826709d0,DAT_1826709d0);
  uVar26 = (ulonglong)DAT_1826709c4;
  uVar28 = (ulonglong)DAT_1826707e0;
  uVar25 = (uVar32 ^ *(ulonglong *)(lVar1 + -0x548)) + (*(ulonglong *)(lVar1 + -0x410) ^ uVar21);
  *(ulonglong *)(lVar1 + -0xbb0) = uVar25 ^ uVar34;
  pbVar16 = (byte *)(*(longlong *)(lVar1 + -0x168) + 0x17);
  *(ulonglong *)(lVar1 + -0x418) = (ulonglong)pbVar16 ^ uVar26;
  uVar9 = DAT_182670a40;
  *(ulonglong *)(lVar1 + -0x68) = uVar25 - (CONCAT44(uVar5,uVar3) ^ 0x6e3c9551e602aa97);
  bVar12 = *pbVar16 ^ (byte)uVar9;
  *(byte *)(lVar1 + -0xb1) = bVar12 ^ (byte)DAT_182670a18;
  *(ulonglong *)(lVar1 - (uVar33 ^ 0x727d2b75)) = bVar12 ^ uVar29;
  *(ulonglong *)(lVar1 - (uVar28 ^ 0xbcfc0128)) =
       CONCAT44(DAT_1826707d4,uVar6) ^ CONCAT44(uVar15,uVar6) ^ 0x999e59c4fa0f03ba;
  uVar25 = (*(ulonglong *)(lVar1 - (uVar27 ^ 0x12d90a00)) ^ uVar29) <<
           (((byte)uVar18 ^ 0x97) & 0x3f);
  uVar26 = CONCAT44(DAT_182670a04,DAT_182670a04);
  *(ulonglong *)(lVar1 + -0x2b0) = uVar25 ^ CONCAT44(DAT_182670814,DAT_182670814);
  uVar9 = DAT_1826709e8;
  uVar21 = (uVar34 ^ *(ulonglong *)(lVar1 + -0xbb0)) + uVar25 ^ uVar26;
  *(ulonglong *)(lVar1 + -0x660) = uVar21;
  uVar18 = DAT_1826707d8;
  uVar25 = (ulonglong)DAT_1826707c8;
  puVar24 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xa58) +
            (CONCAT44(uVar38,DAT_1826707c8) ^ 0x50644f01f523cf03) * 8);
  *(ulonglong *)(lVar1 + -0x518) = (ulonglong)puVar24 ^ CONCAT44(uVar9,uVar9);
  *puVar24 = uVar23 ^ uVar26 ^ uVar21;
  bVar12 = (byte)DAT_182670b00;
  pbVar16 = (byte *)((CONCAT44(uVar7,uVar5) ^ 0xffffdfff4303fd7f) + *(longlong *)(lVar1 + -0x168));
  *(ulonglong *)(lVar1 + -0x4f8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182670ae8;
  uVar9 = DAT_182670a40;
  bVar13 = (byte)DAT_182670a40;
  *(byte *)(lVar1 + -0xb29) = *pbVar16 ^ bVar13 ^ bVar12;
  uVar10 = DAT_182670ab8;
  *(ulonglong *)(lVar1 + -0x410) =
       CONCAT44(uVar9,uVar9) ^ *(ulonglong *)(*(ulonglong *)(lVar1 + -0x138) ^ uVar22);
  uVar23 = CONCAT44(uVar10,uVar10);
  *(ulonglong *)(lVar1 + -0x548) = (bVar12 ^ *(byte *)(lVar1 + -0xb29)) ^ uVar23;
  bVar12 = (byte)DAT_18267098c;
  pbVar16 = (byte *)(*(longlong *)(lVar1 - ((ulonglong)uVar18 ^ 0x67a0fc96)) +
                    (CONCAT44(uVar6,DAT_1826707b8) ^ 0x12d90f8801cf23ec));
  *(ulonglong *)(lVar1 + -0xae8) = (ulonglong)pbVar16 ^ (ulonglong)DAT_182670844;
  uVar9 = DAT_1826709cc;
  bVar11 = *pbVar16 ^ bVar13;
  *(byte *)(lVar1 + -0x1d9) = bVar11 ^ bVar12;
  uVar26 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar35 ^ 0xf523cf69)) = bVar11 ^ uVar26;
  uVar9 = DAT_182670abc;
  uVar21 = (uVar26 ^ *(ulonglong *)(lVar1 + -0x68)) << (((byte)uVar15 ^ 0x38) & 0x3f);
  *(ulonglong *)(lVar1 + -0x3b0) = uVar21 ^ uVar31;
  uVar25 = *(ulonglong *)(lVar1 - (uVar25 ^ 0xf523ca49));
  uVar26 = (ulonglong)DAT_1826709a4;
  *(uint *)(lVar1 + -0xc34) =
       (*(uint *)(lVar1 + -0x598) ^ DAT_182670a58) << (((byte)uVar5 ^ 0x6f) & 0x1f);
  *(ulonglong *)(lVar1 + -0x588) = (uVar25 ^ uVar23 | uVar21) ^ CONCAT44(uVar9,uVar9);
  bVar12 = (byte)DAT_1826709e4;
  pbVar16 = (byte *)(*(longlong *)(lVar1 - (uVar20 ^ 0xffffde97)) +
                    (CONCAT44(uVar18,uVar3) ^ 0x67a0fdfebcfc0282));
  *(ulonglong *)(lVar1 + -0x390) = (ulonglong)pbVar16 ^ uVar26;
  uVar9 = DAT_182670990;
  bVar13 = *pbVar16 ^ bVar13;
  *(byte *)(lVar1 + -0x283) = bVar13 ^ bVar12;
  uVar5 = DAT_18267081c;
  *(ulonglong *)(lVar1 + -0xbb0) = (ulonglong)bVar13 ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 - (uVar37 ^ 0x12d90d38)) = (ulonglong)bVar13 << 0x10 ^ CONCAT44(uVar5,uVar5);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar14 * 4) = uVar17;
  return;
}



############ FUN_ 180d34210 size=5488 ############

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

void FUN_180d34210(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  ulonglong *puVar13;
  uint uVar14;
  ulonglong *puVar15;
  ulonglong uVar16;
  ulonglong *puVar17;
  byte bVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  uint uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  byte local_res20;
  byte local_128;
  
  uVar6 = DAT_1826707f0;
  uVar14 = DAT_1826707e4;
  uVar5 = DAT_1826707e0;
  uVar40 = DAT_1826707cc;
  uVar3 = DAT_1826707a8;
  lVar1 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707e0;
  uVar43 = (ulonglong)DAT_1826707cc;
  uVar10 = DAT_1826707e0 | DAT_1826707cc;
  uVar33 = (ulonglong)DAT_1826707f0;
  uVar20 = (ulonglong)DAT_1826707a8;
  uVar29 = (ulonglong)DAT_1826707e4;
  uVar36 = (ulonglong)uVar10;
  uVar25 = DAT_1826707f0 | DAT_1826707e4;
  uVar30 = ~DAT_1826707a8;
  uVar11 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar10 ^ 0xcecf5cb3) + (longlong)DAT_182670c74) ^
           DAT_1826707e0;
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670c74) ^ DAT_1826707cc;
  uVar35 = (ulonglong)uVar25;
  uVar21 = CONCAT44(DAT_18267091c,DAT_18267091c);
  uVar42 = CONCAT44(DAT_182670a00,DAT_182670a00);
  bVar18 = (byte)DAT_1826707e4;
  DAT_1826707d0 = uVar30;
  DAT_1826707d8 = uVar10;
  DAT_1826707dc = uVar25;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar30 ^ 0x8125d345)) =
       *(ulonglong *)(DAT_1826707a0 - (uVar35 ^ 0x255dd82f)) ^ CONCAT44(DAT_182670ad0,DAT_182670ad0)
       ^ uVar42 ^ uVar21 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0);
  *(ulonglong *)(lVar1 - (uVar43 ^ 0x44854cc9)) =
       (uVar21 ^ *(ulonglong *)(lVar1 + -0x400)) >> ((bVar18 ^ 0xaf) & 0x3f);
  uVar16 = (uVar21 ^ *(ulonglong *)(lVar1 + -0x400)) >> ((byte)uVar3 & 0x3f);
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar1 + -0x400)) << (((byte)uVar10 ^ 0xbd) & 0x3f);
  uVar31 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar1 + -0x220) = uVar16 ^ CONCAT44(DAT_182670ab0,DAT_182670ab0);
  *(ulonglong *)(lVar1 + -0xd88) = uVar21 ^ uVar31;
  uVar8 = DAT_1826708d4;
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670948,DAT_182670948);
  uVar21 = uVar21 | uVar16;
  *(ulonglong *)(lVar1 + -0x588) = uVar21 ^ uVar24;
  uVar7 = DAT_1826708b8;
  uVar19 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar3 ^ 0x7eda2eda)) =
       (uVar42 ^ *(ulonglong *)(lVar2 + -0x6f0)) - uVar21 ^ uVar19;
  uVar16 = CONCAT44(DAT_18267093c,DAT_18267093c);
  uVar37 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  *(ulonglong *)(lVar2 - (uVar36 ^ 0xcecf50a3)) =
       CONCAT44(uVar7,uVar7) ^ uVar37 ^ uVar16 ^ *(ulonglong *)(lVar2 + -0x5c0) ^
       *(ulonglong *)(lVar2 + -0x420);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar24 ^ *(ulonglong *)(lVar2 + -0x588) ^ 0x53e0da6622f424df;
  puVar17 = (ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x255458ad));
  uVar21 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  local_res20 = (byte)uVar40;
  *(ulonglong *)(lVar2 + -0x438) = (uVar16 ^ *puVar17) >> (((byte)uVar25 ^ 0xe1) & 0x3f) ^ uVar21;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0x8125dba5)) =
       (uVar16 ^ *(ulonglong *)(lVar2 + -0xc18)) << ((local_res20 ^ 0x2b) & 0x3f) ^ uVar31;
  *(longlong *)(lVar2 + -0x7d8) = 0x556e9f758cd7b36a << (((byte)uVar25 ^ 0xea) & 0x3f);
  uVar26 = CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar16 = *(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0x25545855)) ^ uVar31 |
           uVar21 ^ *(ulonglong *)(lVar2 + -0x438);
  uVar21 = uVar16 ^ uVar26;
  uVar22 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar2 + -0x4c8) = uVar21;
  uVar7 = DAT_182670820;
  *(ulonglong *)(lVar2 + -0x400) = (uVar37 ^ *(ulonglong *)(lVar2 + -0x5c0)) - uVar16 ^ uVar22;
  uVar4 = DAT_1826707ec;
  uVar25 = DAT_1826707b0;
  uVar16 = (ulonglong)DAT_182670984;
  uVar34 = CONCAT44(uVar7,uVar7);
  uVar32 = CONCAT44(DAT_182670984,DAT_182670984);
  uVar27 = (ulonglong)DAT_1826707ec;
  uVar31 = (ulonglong)DAT_1826707b0;
  uVar21 = uVar32 ^ uVar26 ^ uVar21 ^ uVar19 ^ *(ulonglong *)(lVar2 + -0x660);
  *(ulonglong *)(lVar2 + -0x220) = uVar21;
  uVar39 = uVar4 ^ uVar25;
  DAT_1826707c0 = uVar39;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar39 ^ 0x509c25f)) =
       (uVar21 >> 0x20 ^ uVar16) >> 0xe ^ uVar34;
  lVar1 = DAT_1826707a0;
  uVar16 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  bVar18 = (byte)uVar25;
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar4 ^ 0x44814a20)) ^ uVar32) <<
       ((bVar18 ^ 0xc5) & 0x3f) ^ uVar16;
  *(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0x7eda2c9a)) =
       **(ulonglong **)(lVar1 - ((ulonglong)uVar4 ^ 0x44814ce0)) ^
       CONCAT44(DAT_182670a9c,DAT_182670a9c);
  lVar1 = DAT_1826707a0;
  uVar26 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (uVar16 ^ *(ulonglong *)(DAT_1826707a0 + -0x6f0) |
       uVar34 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) ^ uVar26;
  puVar15 = (ulonglong *)(lVar1 - ((ulonglong)uVar39 ^ 0x509c96f));
  uVar21 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar25 ^ 0x41888bcf)) =
       (uVar19 ^ *(ulonglong *)(lVar1 + -0x660)) - (uVar26 ^ *puVar15) ^ uVar21;
  uVar16 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar1 - (uVar36 ^ 0xcecf5b63)) =
       uVar16 ^ uVar22 ^ uVar24 ^ *(ulonglong *)(lVar1 + -0x588) ^ *(ulonglong *)(lVar1 + -0x400);
  uVar16 = uVar16 ^ *(ulonglong *)(lVar1 + -0x7d8);
  uVar24 = uVar16 >> (((byte)uVar6 ^ 0xda) & 0x3f);
  *(ulonglong *)(lVar1 + -0x438) = uVar24 ^ CONCAT44(DAT_182670a14,DAT_182670a14);
  *(ulonglong *)(lVar1 + -0xce0) =
       CONCAT44(uVar14,uVar6) ^ CONCAT44(uVar30,uVar39) ^ 0xec124500fcc08c06;
  uVar8 = DAT_182670960;
  lVar1 = DAT_1826707a0;
  uVar16 = uVar16 << ((bVar18 ^ 0xe3) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x5c0) = uVar16 ^ CONCAT44(DAT_182670a34,DAT_182670a34);
  uVar7 = DAT_18267084c;
  uVar19 = CONCAT44(uVar8,uVar8);
  uVar24 = uVar24 | uVar16;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar24 ^ uVar19;
  lVar1 = DAT_1826707a0;
  uVar20 = CONCAT44(uVar7,uVar7);
  uVar16 = CONCAT44(DAT_1826708d8,DAT_1826708d8);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar43 ^ 0x44854c01)) ^ uVar22) - uVar24 ^ uVar20;
  *(ulonglong *)(lVar1 - (uVar23 ^ 0xce4a589b)) =
       *(ulonglong *)(lVar1 - (uVar35 ^ 0x255ddb3f)) ^ *(ulonglong *)(lVar1 - (uVar35 ^ 0x255dd3ef))
       ^ uVar16 ^ uVar19 ^ uVar21;
  *(ulonglong *)(lVar1 + -0xd88) =
       (uVar16 ^ *(ulonglong *)(lVar1 + -0x420)) >> ((bVar18 ^ 0xce) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar1 + -0x6f0) = CONCAT44(uVar10,uVar25) ^ 0xd137f7ca2ed5df4e | 0x5135a7c82e445e48
  ;
  uVar16 = (*(ulonglong *)(lVar1 - ((ulonglong)uVar30 ^ 0x8125d365)) ^ uVar16) <<
           (((byte)uVar6 ^ 0xf1) & 0x3f);
  uVar22 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar1 + -0x660) = uVar16 ^ CONCAT44(DAT_182670a30,DAT_182670a30);
  *(uint *)(lVar1 + -0xc34) = (uVar39 ^ 0x7a47b4de) + 0xbe484298;
  uVar16 = *(ulonglong *)(lVar1 - (uVar43 ^ 0x44854589)) ^ uVar37 | uVar16;
  uVar19 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar1 + -0x588) = uVar16 ^ uVar22;
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar1 + -0xc18)) - (CONCAT44(uVar3,uVar40) ^ 0x2037c15694e672e5)
  ;
  *(ulonglong *)(lVar1 + -0xce0) = uVar21 ^ uVar19;
  *(uint *)(lVar1 + -0xc0c) = *(uint *)(lVar1 - (uVar43 ^ 0x44854e8d)) | *(uint *)(lVar1 + -0xb54);
  uVar7 = DAT_1826708b4;
  uVar38 = CONCAT44(DAT_1826709b4,DAT_1826709b4);
  *(ulonglong *)(lVar1 + -0x7d8) = uVar21 - uVar16 ^ uVar38;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0x438) = uVar16 - (CONCAT44(uVar25,uVar4) ^ 0x89a0319849bd67b6) ^ uVar22;
  lVar2 = DAT_1826707a0;
  uVar16 = (ulonglong)DAT_182670b08;
  uVar21 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar1 - (uVar29 ^ 0x25545175)) =
       uVar21 ^ *(ulonglong *)(lVar1 + -0x220) ^ uVar20 ^ uVar26 ^ *(ulonglong *)(lVar1 + -0x6b8);
  uVar8 = DAT_182670a24;
  uVar21 = (uVar21 ^ *(ulonglong *)(lVar1 + -0x5c0)) << 0x1f;
  uVar16 = (*(ulonglong *)(lVar1 + -0x5c0) >> 0x20 ^ uVar16) >> 1;
  *(ulonglong *)(lVar1 + -0x400) = uVar16 ^ CONCAT44(DAT_182670a5c,DAT_182670a5c);
  uVar7 = DAT_18267094c;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar21 ^ CONCAT44(uVar8,uVar8);
  uVar8 = DAT_182670afc;
  uVar24 = CONCAT44(uVar7,uVar7);
  puVar28 = (ulonglong *)(lVar2 - (uVar36 ^ 0xcecf5a4b));
  *puVar28 = (uVar21 | uVar16) ^ uVar24;
  uVar4 = DAT_1826707d4;
  uVar29 = CONCAT44(uVar8,uVar8);
  uVar21 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar2 - (uVar35 ^ 0x255ddbd7)) =
       (*(ulonglong *)(lVar2 + -0x220) ^ uVar20) - (CONCAT44(uVar10,uVar14) ^ 0xac4552ff0467f7be) ^
       uVar29;
  uVar14 = DAT_1826709f8;
  uVar7 = DAT_182670848;
  uVar25 = DAT_1826707b4;
  uVar16 = (ulonglong)DAT_1826707b4;
  uVar10 = DAT_1826707b4 ^ uVar4;
  puVar41 = (ulonglong *)(lVar2 - (uVar16 ^ 0x8c020eb4));
  uVar43 = CONCAT44(DAT_18267085c,DAT_18267085c);
  DAT_1826707c8 = uVar10;
  *(ulonglong *)(lVar2 + -0xd88) =
       (uVar29 ^ *(ulonglong *)(lVar2 + -0x420)) - (uVar24 ^ *puVar41) ^ uVar43;
  uVar20 = CONCAT44(uVar7,uVar7);
  uVar29 = (CONCAT44(uVar4,uVar10) ^ 0xfbf74590be2c066d) + (uVar24 ^ *(ulonglong *)(lVar2 + -0x6f0))
           ^ uVar20;
  puVar13 = (ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xbe2adda6));
  *(ulonglong *)(lVar2 + -0x660) = uVar29;
  lVar1 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar20 = *puVar13 ^ uVar37 ^ uVar29 ^ uVar20 ^ uVar38;
  uVar29 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar20;
  *(ulonglong *)(lVar1 + -0xce0) =
       (CONCAT44(uVar25,uVar10) ^ 0xb7a6a8121e1321d3) << (((byte)uVar4 ^ 0x78) & 0x3f);
  uVar40 = DAT_1826707c4;
  *(ulonglong *)(lVar1 + -0x588) =
       ((ulonglong)uVar14 << 0x1b | (ulonglong)(uVar14 >> 5)) ^ *(ulonglong *)(lVar1 + -0xc18) >> 5
       ^ uVar29;
  uVar14 = ((uVar40 << 0x10 | uVar40 & 0xff00) << 8 | uVar40 >> 8 & 0xff00 | DAT_1826707c4 >> 0x18)
           ^ 0xdecdfccd;
  DAT_1826707ac = uVar14;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar40 ^ 0x4000eb8)) =
       (uVar37 ^ uVar20) << (((byte)uVar40 ^ 0x3b) & 0x3f) ^ uVar24;
  uVar26 = CONCAT44(DAT_18267090c,DAT_18267090c);
  uVar29 = *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0xdec5f941)) ^ uVar29 |
           uVar24 ^ *(ulonglong *)(lVar1 + -0x6b8);
  uVar24 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(lVar1 + -0x5c0) = uVar29 ^ uVar26;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(lVar1 - (uVar16 ^ 0x8c020c44)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x3228d5e2)) ^ uVar38) - uVar29 ^ uVar24;
  uVar7 = DAT_182670a28;
  uVar29 = CONCAT44(DAT_182670830,DAT_182670830);
  uVar16 = *(ulonglong *)(lVar2 - ((ulonglong)uVar40 ^ 0x4000c38)) ^ uVar29 ^ uVar43 ^ uVar22 ^
           *(ulonglong *)(lVar2 + -0xd88);
  uVar20 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  *(ulonglong *)(lVar2 + -0x4c8) = uVar16;
  *(ulonglong *)(lVar2 + -0x220) = (uVar16 ^ uVar29) >> (((byte)uVar14 ^ 0xec) & 0x3f) ^ uVar20;
  lVar1 = DAT_1826707a0;
  uVar16 = CONCAT44(uVar7,uVar7);
  local_128 = (byte)uVar25;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0xdec5f8e9)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar21 ^ 0xbe2adeb6)) ^ uVar29) <<
       ((local_128 ^ 0x5f) & 0x3f) ^ uVar16;
  uVar29 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *puVar41 = (uVar16 ^ *(ulonglong *)(lVar1 + -0x420) | uVar20 ^ *(ulonglong *)(lVar1 + -0x220)) ^
             uVar29;
  *(undefined1 *)(lVar1 - ((ulonglong)uVar39 ^ 0x509c91e)) =
       **(undefined1 **)(lVar1 - (uVar21 ^ 0xbe2ade86));
  uVar22 = CONCAT44(DAT_182670a60,DAT_182670a60);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar40 ^ 0x4000e60)) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x3228dfb2)) ^ uVar43) -
       (uVar29 ^ *(ulonglong *)(lVar1 + -0x6f0)) ^ uVar22;
  uVar16 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar1 + -0xce0) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar14 ^ 0xdec5f8c9)) ^ uVar22 ^ uVar29 ^ uVar24 ^
       *(ulonglong *)(lVar1 + -0x6f0);
  uVar14 = DAT_1826707e8;
  uVar32 = (ulonglong)DAT_1826707e8;
  *puVar17 = (*(ulonglong *)(lVar1 - (uVar23 ^ 0xce4a505b)) ^ uVar22) >>
             (((byte)uVar40 ^ 0x17) & 0x3f) ^ uVar16;
  uVar7 = DAT_182670aac;
  uVar25 = DAT_1826707b8;
  uVar29 = (uVar22 ^ *(ulonglong *)(lVar1 + -0xce0)) << (((byte)uVar10 ^ 0x13) & 0x3f);
  uVar21 = (ulonglong)DAT_1826707b8;
  uVar20 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar1 + -0x588) = uVar29 ^ uVar20;
  lVar2 = DAT_1826707a0;
  uVar40 = uVar14 + uVar25;
  uVar29 = *(ulonglong *)(lVar1 + -0xc18) ^ uVar16 | uVar29;
  uVar34 = CONCAT44(uVar7,uVar7);
  DAT_1826707f4 = uVar40;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar29 ^ uVar34;
  uVar8 = DAT_182670ad8;
  lVar1 = DAT_1826707a0;
  uVar16 = *(ulonglong *)(lVar2 + -0x660);
  puVar13 = (ulonglong *)(lVar2 - (uVar21 ^ 0xa755d5e4));
  uVar44 = CONCAT44(DAT_182670964,DAT_182670964);
  uVar23 = (uVar24 ^ *puVar13) - uVar29 ^ uVar44;
  uVar24 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar2 + -0x7d8) = uVar23;
  uVar26 = uVar22 ^ uVar26 ^ uVar16 ^ uVar42 ^ *(ulonglong *)(lVar2 + -0x5c0);
  *(ulonglong *)(lVar2 + -0x438) = uVar26;
  uVar29 = (uVar42 ^ uVar26) >> (((byte)uVar14 ^ 0xb3) & 0x3f);
  *(ulonglong *)(lVar1 + -0x4c8) = uVar29 ^ uVar24;
  uVar26 = (uVar42 ^ uVar26) << (((byte)uVar40 ^ 0x67) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x220) = uVar26 ^ CONCAT44(DAT_182670abc,DAT_182670abc);
  uVar9 = _DAT_182670b10;
  lVar1 = DAT_1826707a0;
  uVar26 = uVar29 | uVar26;
  uVar24 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  uVar43 = uVar26 ^ uVar24;
  *(ulonglong *)(DAT_1826707a0 + -0x420) = uVar43;
  uVar7 = DAT_1826708ac;
  uVar42 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0x6f0) =
       (CONCAT44(uVar40,uVar14) ^ 0xff753fa31a7193f5) >>
       ((*(byte *)(lVar1 + -0x4c8) ^ (byte)uVar8) & 0x3f);
  *(ulonglong *)(lVar1 + -0xd88) = (uVar22 ^ uVar16) - uVar26 ^ uVar42;
  uVar16 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0xc18) = 0x616280ed924d04b8 - uVar29;
  uVar8 = DAT_182670adc;
  *(ulonglong *)(lVar1 + -0xce0) = uVar43 ^ uVar16 ^ uVar24 ^ uVar44 ^ uVar23;
  lVar2 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       (*(ulonglong *)(lVar1 - (uVar21 ^ 0xa755dd04)) ^ uVar16) >> (((byte)uVar40 ^ 0x4b) & 0x3f) ^
       uVar29;
  uVar7 = DAT_182670828;
  lVar1 = DAT_1826707a0;
  puVar17 = (ulonglong *)(lVar2 - ((ulonglong)uVar40 ^ 0xb8eb617f));
  *puVar17 = (*(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x11959f7b)) ^ uVar16) <<
             (((byte)uVar25 ^ 0xe8) & 0x3f) ^ uVar29;
  uVar23 = CONCAT44(uVar7,uVar7);
  *(uint *)(lVar1 + -0x9ec) = (uVar40 ^ 0x73cf285c) + *(int *)(lVar1 + -0xaf0);
  uVar7 = DAT_18267095c;
  uVar16 = *puVar17 ^ uVar29 | *(ulonglong *)(lVar1 + -0x588) ^ uVar29;
  *(ulonglong *)(lVar1 + -0x5c0) = uVar16 ^ uVar23;
  uVar16 = (uVar44 ^ *(ulonglong *)(lVar1 + -0x7d8)) - uVar16;
  uVar29 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0x438) = uVar16 ^ uVar19;
  *(ulonglong *)(lVar1 + -0x220) = uVar16 >> ((*(byte *)(lVar1 + -0x588) ^ (byte)uVar8) & 0x3f);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0xa755d784)) =
       *(ulonglong *)(lVar1 - (uVar35 ^ 0x255dd94f)) ^ *(ulonglong *)(lVar1 + -0xd88) ^ uVar29 ^
       uVar42 ^ uVar34;
  uVar7 = DAT_182670a74;
  *(ulonglong *)(lVar1 + -0x6f0) =
       CONCAT44(uVar14,uVar14) ^ 0x218358e14f1ddc94 | CONCAT44(uVar40,uVar10) ^ 0x2a6910e78c0045d3;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0xa755d5c4)) =
       (*(ulonglong *)(lVar1 + -0x660) ^ uVar29) >> (((byte)uVar14 ^ 0xa2) & 0x3f) ^ uVar22;
  uVar8 = DAT_182670a8c;
  uVar16 = (*(ulonglong *)(lVar1 + -0x660) ^ uVar29) << 7;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar16 ^ CONCAT44(DAT_182670980,DAT_182670980);
  uVar7 = DAT_182670a1c;
  uVar16 = *(ulonglong *)(lVar1 + -0x420) ^ uVar22 | uVar16;
  uVar24 = CONCAT44(uVar8,uVar8);
  uVar29 = uVar16 ^ uVar24;
  *(ulonglong *)(lVar1 + -0xc18) = uVar29;
  uVar22 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0xce0) = (*(ulonglong *)(lVar1 + -0xd88) ^ uVar42) - uVar16 ^ uVar22;
  *puVar13 = uVar37 ^ uVar19 ^ uVar29 ^ uVar24 ^ *(ulonglong *)(lVar1 + -0x438);
  uVar7 = DAT_182670954;
  *(undefined1 *)(lVar1 + -0x6c9) = **(undefined1 **)(lVar1 - (uVar27 ^ 0x44814cf8));
  lVar2 = DAT_1826707a0;
  uVar29 = (uVar37 ^ *(ulonglong *)(lVar1 + -0x400)) >> ((bVar18 ^ 0xd9) & 0x3f);
  *(ulonglong *)(lVar1 + -0x7d8) = uVar29 ^ CONCAT44(uVar7,uVar7);
  uVar26 = (uVar37 ^ *(ulonglong *)(lVar2 + -0x400)) << (((byte)uVar4 ^ 0x4c) & 0x3f);
  *(ulonglong *)(lVar2 + -0x588) = uVar26 ^ uVar20;
  lVar1 = DAT_1826707a0;
  uVar16 = *(ulonglong *)(DAT_1826707a0 + -0x438);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       *(ulonglong *)(lVar2 - (uVar33 ^ 0x50dcdf6)) | CONCAT44(uVar30,uVar40) ^ 0x3a703c72b99e6960;
  uVar24 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  uVar20 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  *(ulonglong *)(lVar1 + -0x6f0) = (uVar26 | uVar29) ^ uVar24;
  *(ulonglong *)(lVar1 - (uVar35 ^ 0x255dd997)) =
       (uVar19 ^ uVar16) - (CONCAT44(uVar5,uVar10) ^ 0x6bbeb4794908a4f7) ^ uVar20;
  *(ulonglong *)(lVar1 + -0x420) =
       (*(ulonglong *)(lVar1 - (uVar31 ^ 0x418881b7)) ^ uVar20) -
       (uVar24 ^ *(ulonglong *)(lVar1 + -0x6f0)) ^ uVar38;
  *(ulonglong *)(lVar1 - (uVar21 ^ 0xa755d52c)) =
       (*puVar28 ^ uVar24) - (CONCAT44(uVar3,uVar5) ^ 0xaa508fdcb262d043) ^
       CONCAT44(DAT_1826708a8,DAT_1826708a8);
  uVar16 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  *(ulonglong *)(lVar1 - (uVar36 ^ 0xcecf5133)) =
       *(ulonglong *)(lVar1 + -0x5c0) ^ uVar16 ^ uVar22 ^ uVar23 ^ *(ulonglong *)(lVar1 + -0xce0);
  uVar7 = DAT_18267082c;
  uVar31 = CONCAT44(DAT_182670878,DAT_182670878);
  uVar21 = (*(ulonglong *)(lVar1 + -0xd88) ^ uVar16) >> ((local_res20 ^ 0x11) & 0x3f);
  uVar16 = (*(ulonglong *)(lVar1 + -0xd88) ^ uVar16) << ((local_128 ^ 0x74) & 0x3f);
  *(ulonglong *)(lVar1 + -0x400) = uVar16 ^ CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar1 + -0xc18) = uVar21 ^ uVar31;
  *(ulonglong *)(lVar1 + -0x220) = (uVar16 | uVar21) ^ CONCAT44(uVar7,uVar7);
  *puVar15 = (*(ulonglong *)(lVar1 - (uVar27 ^ 0x448144e0)) ^ uVar22) -
             (CONCAT44(uVar6,uVar4) ^ 0xcd257999b316f5c8) ^ CONCAT44(DAT_182670884,DAT_182670884);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar11;
  return;
}



############ FUN_ 180d2f020 size=4324 ############

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

void FUN_180d2f020(void)

{
  longlong lVar1;
  longlong lVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte bVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  byte bVar20;
  byte *pbVar21;
  longlong *plVar22;
  ulonglong *puVar23;
  ulonglong uVar24;
  ulonglong *puVar25;
  ulonglong *puVar26;
  longlong *plVar27;
  ulonglong *puVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong *puVar41;
  ulonglong uVar42;
  byte local_c8;
  
  uVar10 = DAT_1826707e4;
  uVar4 = DAT_1826707bc;
  lVar1 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707e4;
  uVar36 = (ulonglong)DAT_1826707bc;
  uVar18 = DAT_1826707e4 * DAT_1826707bc;
  uVar32 = *(uint *)(&DAT_18260f758 + DAT_182670c64) ^ DAT_1826707e4;
  uVar19 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar18 ^ 0x5597ac60) + (longlong)DAT_182670c64) ^
           DAT_1826707bc;
  uVar29 = (ulonglong)DAT_1826707e4;
  uVar35 = CONCAT44(DAT_182670964,DAT_182670964);
  bVar17 = (byte)DAT_1826707bc;
  DAT_1826707b4 = uVar18;
  *(ulonglong *)(DAT_1826707a0 - (uVar29 ^ 0x727d254d)) =
       (CONCAT44(DAT_1826708e8,DAT_1826708e8) ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) <<
       (bVar17 & 0x3f) ^ uVar35;
  puVar41 = (ulonglong *)(lVar1 - ((ulonglong)uVar18 ^ 0x5597a7c0));
  pbVar21 = (byte *)(*(longlong *)(lVar1 + -0x168) + 0x37);
  uVar24 = *puVar41;
  uVar30 = CONCAT44(DAT_182670978,DAT_182670978);
  uVar37 = CONCAT44(DAT_182670a80,DAT_182670a80);
  *(ulonglong *)(lVar1 + -0x418) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182670a88;
  *(ulonglong *)(lVar1 + -0x410) =
       (uVar35 ^ uVar24) + (uVar30 ^ *(ulonglong *)(lVar1 + -0x68)) ^ uVar37;
  uVar33 = DAT_18267085c & 0xff;
  *(byte *)(lVar1 + -0xf9) = *pbVar21 ^ (byte)DAT_18267085c ^ (byte)DAT_182670a40;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar18 ^ 0x5597ae50)) =
       *(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x727d2e95)) ^ uVar30 ^ 0xc7bc4fbace6268c2;
  uVar35 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  uVar30 = (ulonglong)uVar33 ^ (ulonglong)*(byte *)(lVar1 + -0xf9);
  puVar28 = (ulonglong *)(lVar1 - (uVar29 ^ 0x727d2bb5));
  *(ulonglong *)(lVar1 + -0x548) = uVar30 ^ uVar35;
  puVar26 = (ulonglong *)(lVar1 + -0xce0);
  uVar24 = (uVar35 ^ *puVar28) << ((bVar17 ^ 8) & 0x3f);
  *puVar26 = uVar24 ^ CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar3 = DAT_182670a9c;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x558) =
       (CONCAT44(uVar10,uVar18) ^ 0x863d145ec332fc84) +
       (CONCAT44(uVar4,uVar10) ^ 0x14dd074358f15615);
  uVar34 = DAT_1826707b8;
  uVar33 = DAT_1826707ac;
  uVar29 = CONCAT44(uVar3,uVar3);
  *(ulonglong *)(lVar1 + -0x890) =
       (*(ulonglong *)(lVar1 - ((ulonglong)uVar10 ^ 0x727d2aed)) ^ uVar37) + uVar24 ^ uVar29;
  uVar7 = DAT_1826707f0;
  *(ulonglong *)(lVar1 + -0xbb0) = (CONCAT44(uVar18,uVar33) ^ 0xb7b23e3a0e05bd30) + uVar30;
  uVar6 = DAT_1826707cc;
  uVar5 = DAT_1826707c0;
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670a20,DAT_182670a20);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707c0 ^ 0x14f63e8)) =
       *(longlong *)(lVar1 + -0xa58) + (CONCAT44(uVar4,uVar34) ^ 0x33e561300f8812df) * 8 ^ uVar24;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x68) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar7 ^ 0x298be4c)) ^
       CONCAT44(DAT_182670878,DAT_182670878)) & (CONCAT44(uVar4,uVar6) ^ 0xc8dd4b6cbcdbc2cc);
  uVar8 = DAT_1826707d8;
  *(undefined8 *)(*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707d8 ^ 0x67a0fa46)) ^ uVar24) =
       *(undefined8 *)(lVar1 + -0x890);
  uVar24 = (ulonglong)DAT_182670a5c;
  *(ulonglong *)(lVar1 + -0x220) =
       CONCAT44(uVar8,uVar8) ^ 0x2283b5ce7ada932b |
       CONCAT44(uVar10,DAT_1826707a8) ^ 0x82db863d33524b7d;
  bVar20 = DAT_18267097c;
  uVar11 = DAT_1826707e8;
  plVar22 = (longlong *)(lVar1 - ((ulonglong)uVar7 ^ 0x298bd94));
  *(ulonglong *)(lVar1 + -0x390) = (CONCAT44(uVar18,uVar6) ^ 0x5597ac7012d90fb0) + *plVar22 ^ uVar24
  ;
  uVar3 = DAT_18267099c;
  bVar16 = *(byte *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar33 ^ 0x62202f6c)) ^ uVar24) ^ bVar20 ^
           (byte)DAT_182670a40;
  *(byte *)(lVar1 + -700) = bVar16;
  uVar30 = (ulonglong)DAT_182670880;
  uVar37 = CONCAT44(uVar3,uVar3);
  uVar24 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar1 + -0x558) = (bVar16 ^ bVar20) ^ uVar37;
  puVar25 = (ulonglong *)(lVar1 - (uVar24 ^ 0xadc34ee));
  *puVar25 = (CONCAT44(DAT_182670a30,DAT_182670a30) ^ *(ulonglong *)(lVar1 + -0x1b8)) << 0x2a;
  bVar20 = (byte)DAT_182670b04;
  uVar7 = DAT_1826707e0;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc0870)) =
       (CONCAT44(uVar11,DAT_1826707b0) ^ 0x727d2efdbcfbe2a1) + *(longlong *)(lVar1 + -0x168) ^
       uVar30;
  uVar3 = DAT_18267096c;
  uVar37 = uVar37 ^ *(ulonglong *)(lVar1 + -0x558);
  bVar16 = *(byte *)(uVar30 ^ *(ulonglong *)(lVar1 + -0xae8)) ^ bVar20 ^ (byte)DAT_182670a40;
  *(byte *)(lVar1 + -0xaa9) = bVar16;
  uVar12 = DAT_1826707f4;
  uVar30 = (ulonglong)(bVar16 ^ bVar20);
  *puVar26 = uVar30 ^ CONCAT44(uVar3,uVar3);
  bVar20 = (byte)uVar7;
  *(ulonglong *)(lVar1 + -0xbb0) = CONCAT44(uVar12,uVar33) ^ 0xccc74c9b5493736e | uVar37;
  uVar30 = uVar30 << ((bVar20 ^ 0x90) & 0x3f);
  puVar23 = (ulonglong *)(DAT_1826707a0 + -0x2b0);
  *(ulonglong *)(lVar1 + -0x548) = uVar30 ^ CONCAT44(DAT_182670a90,DAT_182670a90);
  uVar6 = DAT_1826707c4;
  lVar1 = DAT_1826707a0;
  *puVar23 = CONCAT44(DAT_1826707c4,uVar7) ^ 0xdb3fd69f5e7b77de | 0x9b33869a5e4b16de;
  uVar24 = CONCAT44(uVar5,DAT_1826707a8);
  *(ulonglong *)(lVar1 + -0x68) = (uVar30 | uVar37) ^ uVar35;
  uVar33 = DAT_1826707d0;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar4 ^ 0x33e56a40)) =
       *(longlong *)(lVar1 + -0x220) - (uVar24 ^ 0x53e286ffa88191);
  uVar9 = DAT_1826707dc;
  uVar24 = (ulonglong)DAT_1826709c8;
  uVar39 = (ulonglong)DAT_1826707dc;
  local_c8 = (byte)uVar10;
  *(ulonglong *)(lVar1 + -0x4f8) =
       *(longlong *)(lVar1 - ((ulonglong)uVar34 ^ 0xf8813b1)) +
       (CONCAT44(uVar33,DAT_1826707e8) ^ 0x77e5fdfe727d2ec7) ^ uVar24;
  uVar7 = DAT_1826707c8;
  *(ulonglong *)(lVar1 - (uVar39 ^ 0x9bafff08)) = *puVar41 | *(ulonglong *)(lVar1 + -0x410);
  uVar3 = DAT_18267093c;
  bVar16 = *(byte *)(*(ulonglong *)(lVar1 + -0x4f8) ^ uVar24) ^ (byte)DAT_182670a40;
  *(byte *)(lVar1 + -0x3f1) = bVar16 ^ (byte)DAT_182670af0;
  uVar38 = CONCAT44(DAT_182670928,DAT_182670928);
  uVar33 = DAT_182670928 >> 0x18;
  *puVar26 = (ulonglong)bVar16 ^ CONCAT44(uVar3,uVar3);
  lVar1 = DAT_1826707a0;
  uVar42 = CONCAT44(DAT_1826709e4,DAT_1826709e4);
  uVar37 = (ulonglong)bVar16 << ((local_c8 ^ 0xed) & 0x3f);
  uVar24 = *(ulonglong *)(DAT_1826707a0 + -0x68);
  *puVar23 = uVar37 ^ uVar42;
  uVar30 = (ulonglong)DAT_182670acc;
  *(ulonglong *)(lVar1 - (uVar31 ^ 0x727d2ba5)) = (uVar37 | uVar35 ^ uVar24) ^ uVar38;
  *(ulonglong *)(lVar1 + -0x548) = (ulonglong)*(byte *)(lVar1 + -0x551) ^ (ulonglong)uVar33;
  lVar2 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_1826707cc,uVar7);
  pbVar21 = (byte *)((uVar24 ^ 0x12d90f88863414bb) + *(longlong *)(lVar1 + -0x168));
  *(ulonglong *)(lVar1 + -0x418) = (ulonglong)pbVar21 ^ uVar30;
  bVar16 = (byte)DAT_182670854;
  uVar40 = (ulonglong)DAT_182670a94;
  *(byte *)(lVar2 + -0x391) = *pbVar21 ^ (byte)DAT_182670a40 ^ (byte)DAT_182670854;
  uVar30 = CONCAT44(DAT_1826709a0,DAT_1826709a0);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707b8 ^ 0xf8810f9)) =
       (*(byte *)(lVar2 - ((ulonglong)uVar6 ^ 0x4303fef6)) ^ bVar16) ^ uVar30;
  *(ulonglong *)(lVar2 - (uVar31 ^ 0x727d258d)) =
       (*(ulonglong *)(lVar2 + -0x220) ^ uVar30) << (bVar20 & 0x3f) ^ uVar42;
  uVar3 = DAT_18267091c;
  *(uint *)(lVar2 + -0xc0c) = (uVar5 ^ 0xca4d4e19) + *(int *)(lVar2 + -0x140);
  lVar1 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar3,uVar3);
  uVar30 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0x33e56520)) =
       (*(ulonglong *)(DAT_1826707a0 + -0xb70) ^ uVar42 |
       *(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar38) ^ uVar37;
  bVar20 = (byte)DAT_1826709d0;
  *(ulonglong *)(lVar1 - (uVar30 ^ 0x77e5fe6e)) =
       (CONCAT44(uVar11,uVar10) ^ 0x727d2efd727d2ec1) + *(longlong *)(lVar1 + -0x168) ^ uVar40;
  bVar16 = *(byte *)(*(ulonglong *)(lVar1 + -0x390) ^ uVar40) ^ (byte)DAT_182670a40;
  uVar35 = CONCAT44(DAT_182670aec,DAT_182670aec);
  *(byte *)(lVar1 + -0x9d2) = bVar16 ^ bVar20;
  uVar34 = DAT_1826707b0;
  uVar36 = (ulonglong)bVar16;
  uVar31 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar1 + -0xbb0) = uVar36 ^ uVar35;
  lVar2 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670b08,DAT_182670b08);
  uVar30 = uVar36 << ((bVar17 ^ 0x10) & 0x3f);
  *(ulonglong *)(lVar1 + -0x1b8) = uVar30 ^ uVar31;
  uVar3 = DAT_1826707ec;
  uVar33 = DAT_1826707ac;
  *puVar26 = (uVar30 | *(ulonglong *)(lVar1 + -0x410) ^ uVar37) ^ uVar38;
  pbVar21 = (byte *)((CONCAT44(uVar9,uVar7) ^ 0x9baffeb0863414bd) + *(longlong *)(lVar1 + -0x168));
  *(ulonglong *)(lVar1 + -0xae8) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182670a00;
  bVar20 = (byte)DAT_182670838;
  *(ulonglong *)(lVar1 + -0x68) = CONCAT44(uVar8,uVar3) ^ 0x7a959d0c9689c618 | uVar36;
  uVar3 = DAT_182670a0c;
  bVar16 = *pbVar21 ^ (byte)DAT_182670a40;
  *(byte *)(lVar1 + -0x709) = bVar16 ^ bVar20;
  bVar20 = (byte)DAT_1826707c4;
  *puVar23 = (ulonglong)bVar16 ^ CONCAT44(uVar3,uVar3);
  uVar30 = (ulonglong)bVar16 << ((bVar20 ^ 0x4f) & 0x3f);
  uVar31 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  *(ulonglong *)(lVar2 + -0x548) = uVar30 ^ CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  uVar37 = (ulonglong)DAT_1826707d4;
  uVar30 = *(ulonglong *)(lVar2 - ((ulonglong)uVar18 ^ 0x5597a090)) ^ uVar38 | uVar30;
  *(ulonglong *)(lVar2 + -0x220) = uVar30 ^ uVar31;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d0 ^ 0x77e5f8a6)) =
       *(ulonglong *)(lVar2 + -0xb70) ^ uVar42 | uVar30;
  pbVar21 = (byte *)((CONCAT44(uVar12,uVar9) ^ 0xfffc2eff9baffe8e) + *(longlong *)(lVar2 + -0x168));
  *(ulonglong *)(lVar2 + -0x4f8) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182670950;
  bVar20 = (byte)DAT_182670a2c;
  uVar30 = (ulonglong)DAT_1826707c8;
  *(byte *)(lVar2 - (uVar37 ^ 0xadc3244)) = *pbVar21 ^ (byte)DAT_182670a40 ^ (byte)DAT_182670a2c;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(lVar2 - (uVar30 ^ 0x86341090)) =
       CONCAT44(uVar34,DAT_1826707e8) ^ 0x110c04e02d906041 | 0x2eb12b1dd26f1716;
  uVar30 = CONCAT44(uVar33,DAT_1826707d8);
  uVar36 = (ulonglong)(*(byte *)(lVar2 - (uVar39 ^ 0x9baffc0a)) ^ bVar20);
  *(ulonglong *)(lVar1 + -0x1b8) = uVar36 ^ CONCAT44(DAT_182670ad8,DAT_182670ad8);
  uVar13 = DAT_182670a10;
  *(ulonglong *)(lVar1 + -0x68) =
       (uVar30 ^ 0x3ec19ca012777395) << ((*(byte *)puVar23 ^ (byte)uVar3) & 0x3f);
  uVar30 = CONCAT44(uVar13,uVar13);
  *puVar26 = uVar36 << 0x30 ^ uVar30;
  bVar20 = (byte)DAT_182670ac0;
  uVar36 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar1 + -0x548) =
       (*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707f0 ^ 0x298b01c)) ^ uVar30) +
       (*(ulonglong *)(lVar1 + -0x220) ^ uVar31) ^ uVar36;
  bVar16 = (byte)DAT_182670a40;
  uVar31 = (ulonglong)DAT_182670898;
  plVar27 = (longlong *)(lVar1 - ((ulonglong)DAT_1826707e0 ^ 0xbcfc03f0));
  *(ulonglong *)(lVar1 + -0x418) =
       (CONCAT44(DAT_1826707e0,uVar4) ^ 0xbcfc029833e5610f) + *plVar27 ^ uVar31;
  uVar3 = DAT_182670904;
  uVar30 = (ulonglong)DAT_1826707cc;
  bVar17 = *(byte *)(*(ulonglong *)(lVar1 - (uVar37 ^ 0xadc34e6)) ^ uVar31) ^ bVar16;
  *(byte *)(lVar1 + -0xb19) = bVar17 ^ bVar20;
  uVar31 = CONCAT44(uVar3,uVar3);
  bVar20 = (byte)DAT_1826707b8;
  *(ulonglong *)(lVar1 - (uVar30 ^ 0x12d904f8)) = bVar17 ^ uVar31;
  uVar37 = CONCAT44(DAT_182670890,DAT_182670890);
  uVar30 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar1 + -0x558) =
       (*(ulonglong *)(lVar1 + -0xb70) ^ uVar31) << ((bVar20 ^ 0xe1) & 0x3f) ^ uVar37;
  *(ulonglong *)(lVar1 - (uVar39 ^ 0x9baffaa0)) = (uVar30 ^ 0x58e60000) >> 0x11;
  uVar13 = DAT_18267082c;
  uVar3 = DAT_1826707a8;
  uVar38 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar1 + -0x68) =
       (*puVar28 ^ uVar36) + (uVar37 ^ *(ulonglong *)(lVar1 + -0x558)) ^ uVar38;
  uVar15 = DAT_182670ae4;
  uVar14 = DAT_1826708e4;
  puVar28 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xa58) +
            (CONCAT44(uVar12,DAT_1826707d8) ^ 0xfffc2eff67a0fdf9) * 8);
  *(ulonglong *)(lVar1 + -0xae0) = (ulonglong)puVar28 ^ CONCAT44(uVar13,uVar13);
  uVar36 = CONCAT44(uVar15,uVar15);
  uVar31 = (ulonglong)DAT_1826707b0;
  *puVar23 = *(ulonglong *)(CONCAT44(uVar14,uVar14) ^ *(ulonglong *)(lVar1 + -0xc0)) ^ uVar36;
  uVar30 = (ulonglong)DAT_1826708cc;
  *puVar28 = *(ulonglong *)(lVar1 - (uVar31 ^ 0xbcfbe2f0)) ^ uVar29 ^ uVar38;
  pbVar21 = (byte *)((CONCAT44(DAT_1826707f0,uVar3) ^ 0x298bcfcfeb09bef) +
                    *(longlong *)(lVar1 + -0x168));
  *(uint *)(lVar1 + -0xa34) = (DAT_1826707dc ^ 0xd99391ae) + *(int *)(lVar1 + -0x43c);
  bVar20 = (byte)DAT_1826709cc;
  *(ulonglong *)(lVar1 + -0xae8) = (ulonglong)pbVar21 ^ uVar30;
  bVar17 = *pbVar21 ^ bVar16;
  uVar30 = (ulonglong)DAT_182670804;
  *(byte *)(lVar1 + -0x68d) = bVar17 ^ bVar20;
  uVar29 = bVar17 ^ uVar36;
  uVar31 = CONCAT44(uVar6,DAT_1826707ac);
  *(ulonglong *)(lVar1 + -0x1b8) = uVar29;
  pbVar21 = (byte *)((uVar31 ^ 0x4303fd6762202cbd) + *plVar22);
  *(ulonglong *)(lVar1 + -0x4f8) = (ulonglong)pbVar21 ^ uVar30;
  *(ulonglong *)(lVar1 + -0x220) = (uVar24 ^ 0x64ae8a6873d00b23) + 0xace539e357408080;
  uVar12 = DAT_182670a84;
  bVar16 = *pbVar21 ^ bVar16;
  *(byte *)(lVar1 + -0xb41) = bVar16 ^ (byte)DAT_182670894;
  *puVar26 = (ulonglong)bVar16 ^ CONCAT44(uVar12,uVar12);
  uVar12 = DAT_18267088c;
  uVar24 = (ulonglong)bVar16 << (((byte)uVar5 ^ 0x58) & 0x3f);
  *(ulonglong *)(lVar1 + -0xd88) = uVar24 ^ CONCAT44(DAT_182670848,DAT_182670848);
  bVar16 = (byte)DAT_182670a40;
  uVar38 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar1 + -0xb70) = (uVar24 | bVar17) ^ uVar38;
  uVar33 = DAT_182670acc;
  uVar24 = (ulonglong)_DAT_1826708bc;
  uVar34 = DAT_182670acc & 0xff;
  *(byte *)(lVar1 + -0x8a9) = *(byte *)(*(ulonglong *)(lVar1 + -0x390) ^ uVar40) ^ bVar16;
  pbVar21 = (byte *)((CONCAT44(uVar6,DAT_1826707d0) ^ 0x4303fd6777e5fdbc) + *plVar27);
  *(ulonglong *)(lVar1 + -0x418) = (ulonglong)pbVar21 ^ uVar24;
  *(byte *)(lVar1 + -0x6f9) = *pbVar21 ^ bVar16 ^ (byte)uVar33;
  *puVar25 = uVar29 ^ *(ulonglong *)(lVar1 + -0xbb0) ^ uVar36 ^ uVar35;
  uVar12 = DAT_1826708c4;
  uVar30 = (ulonglong)uVar34 ^ (ulonglong)*(byte *)(lVar1 + -0x6f9);
  *(ulonglong *)(lVar1 + -0x548) = uVar30 ^ CONCAT44(DAT_182670920,DAT_182670920);
  uVar30 = uVar30 << ((local_c8 ^ 0xed) & 0x3f);
  *(ulonglong *)(lVar1 + -0x558) = uVar30 ^ CONCAT44(uVar12,uVar12);
  bVar20 = (byte)DAT_1826708a4;
  pbVar21 = (byte *)((CONCAT44(uVar4,uVar3) ^ 0x33e56130feb09bec) + *(longlong *)(lVar1 + -0x168));
  uVar31 = CONCAT44(DAT_182670824,DAT_182670824);
  uVar24 = (ulonglong)DAT_182670874;
  *puVar23 = (uVar30 | *(ulonglong *)(lVar1 + -0xb70) ^ uVar38) ^ uVar31;
  *(ulonglong *)(lVar1 + -0xae8) = (ulonglong)pbVar21 ^ uVar24;
  bVar16 = *pbVar21 ^ bVar16;
  *(byte *)(lVar1 + -0x839) = bVar16 ^ bVar20;
  *(ulonglong *)(lVar1 + -0x118) = bVar16 ^ uVar37;
  *(longlong *)(lVar1 - ((ulonglong)DAT_1826707e8 ^ 0x727d2cdd)) =
       0x47fc7300f14a3669 << (((byte)DAT_1826707c8 ^ 0x98) & 0x3f);
  uVar33 = DAT_18267085c;
  uVar24 = *puVar23;
  uVar30 = (*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707cc ^ 0x12d90e90)) ^ uVar37) << 0x18;
  *puVar26 = uVar30 ^ CONCAT44(DAT_18267095c,DAT_18267095c);
  *(ulonglong *)(lVar1 + -0xd88) = (uVar24 ^ uVar31 | uVar30) ^ CONCAT44(uVar33,uVar33);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar19 * 4) = uVar32;
  return;
}



############ FUN_ 180d0fdc0 size=5699 ############

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

void FUN_180d0fdc0(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  byte bVar23;
  byte bVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong *puVar33;
  uint uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong *puVar42;
  ulonglong uVar43;
  byte local_res18;
  byte local_c0;
  byte local_a0;
  
  uVar16 = DAT_182670804;
  uVar9 = DAT_1826707bc;
  uVar7 = DAT_1826707b4;
  uVar6 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  DAT_1826707c8 = DAT_1826707b8 ^ DAT_1826707e0;
  DAT_1826707c4 = DAT_1826707dc | DAT_1826707f4;
  uVar20 = DAT_1826707c0 & 7;
  if (uVar20 < 4) {
    if (uVar20 < 2) {
      DAT_1826707f0 = DAT_1826707d0;
      if (uVar20 == 0) {
        DAT_1826707f0 = DAT_1826707c0;
      }
    }
    else {
      DAT_1826707f0 = DAT_1826707a8;
      if (uVar20 < 3) {
        DAT_1826707f0 = DAT_1826707cc;
      }
    }
  }
  else if (uVar20 < 6) {
    DAT_1826707f0 = DAT_1826707d8;
    if (uVar20 < 5) {
      DAT_1826707f0 = DAT_1826707d4;
    }
  }
  else {
    DAT_1826707f0 = DAT_1826707b4;
    if (uVar20 < 7) {
      DAT_1826707f0 = DAT_1826707ac;
    }
  }
  uVar27 = (ulonglong)DAT_1826707bc;
  DAT_1826707b0 =
       (DAT_1826707bc << 0x10 | DAT_1826707bc & 0xff00) << 8 | DAT_1826707bc >> 8 & 0xff00 |
       DAT_1826707bc >> 0x18;
  uVar21 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707bc ^ 0xb99e2525) + (longlong)DAT_182670c08) ^
           DAT_1826707b0;
  uVar22 = *(uint *)(&DAT_18260f750 +
                    ((ulonglong)DAT_1826707f0 ^ 0x27d0075) + (longlong)DAT_182670c08) ^
           DAT_1826707ac;
  uVar41 = (ulonglong)DAT_182670ab0;
  uVar28 = (ulonglong)DAT_1826707b4;
  uVar37 = CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar43 = CONCAT44(DAT_182670ab0,DAT_182670ab0);
  uVar32 = (CONCAT44(DAT_1826709c0,DAT_1826709c0) ^ *(ulonglong *)(DAT_1826707a0 + -0xcf8)) >>
           (((byte)DAT_1826707d0 ^ 0x85) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) = uVar32 ^ CONCAT44(DAT_182670898,DAT_182670898);
  puVar1 = (ulonglong *)(lVar3 + -0xd38);
  uVar25 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x74a0e860)) =
       (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar3 + -0x890) | uVar32) ^ uVar37;
  uVar16 = DAT_18267086c;
  uVar28 = (ulonglong)DAT_18267098c;
  uVar30 = CONCAT44(DAT_182670928,DAT_182670928);
  uVar32 = CONCAT44(DAT_18267098c,DAT_18267098c) ^ *(ulonglong *)(lVar3 + -0x6b8);
  uVar40 = CONCAT44(DAT_18267093c,DAT_18267093c);
  *(ulonglong *)(lVar3 + -0x630) =
       *(ulonglong *)(lVar3 - (uVar25 ^ 0x407c2a60)) ^ uVar30 ^ uVar43 ^ uVar37 ^
       *(ulonglong *)(lVar3 + -0x9e0);
  uVar12 = DAT_1826707d4;
  uVar38 = (CONCAT44(_DAT_1826708c8,_DAT_1826708c8) ^ *puVar1) + uVar32 ^ uVar40;
  *(ulonglong *)(lVar3 + -0xbb0) = uVar38;
  uVar37 = (*(ulonglong *)(lVar3 + -0x6b8) >> 0x20 ^ uVar28) >> 10;
  uVar32 = uVar32 << (((byte)uVar6 ^ 0x3b) & 0x3f);
  uVar25 = CONCAT44(DAT_1826708a4,DAT_1826708a4);
  *(ulonglong *)(lVar3 + -0x610) = uVar32 ^ CONCAT44(uVar16,uVar16);
  uVar16 = DAT_182670940;
  *(ulonglong *)(lVar3 + -0xac0) = uVar37 ^ uVar25;
  uVar17 = DAT_182670a58;
  uVar28 = CONCAT44(uVar16,uVar16);
  uVar25 = (uVar37 | uVar32) ^ uVar28;
  *(ulonglong *)(lVar3 + -0x9c8) = uVar25;
  uVar20 = DAT_1826707e8;
  uVar37 = CONCAT44(uVar17,uVar17);
  uVar25 = uVar37 ^ uVar28 ^ uVar38 ^ uVar40 ^ uVar25;
  uVar28 = uVar37 ^ uVar25;
  *(ulonglong *)(lVar3 + -0x588) = uVar25;
  uVar10 = DAT_1826707c0;
  uVar32 = (ulonglong)DAT_1826707c0;
  puVar2 = (ulonglong *)(lVar3 + -0x660);
  *(ulonglong *)(lVar3 + -0x410) =
       (CONCAT44(DAT_1826707c0,uVar20) ^ 0x1dc0a449219accfd) << ((byte)uVar28 & 0x3f);
  uVar6 = DAT_1826707dc;
  uVar29 = CONCAT44(_DAT_182670ad4,_DAT_182670ad4);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0xc17c2618)) =
       (uVar30 ^ *puVar2) + uVar28 ^ uVar29;
  lVar4 = DAT_1826707a0;
  uVar38 = (uVar37 ^ *(ulonglong *)(DAT_1826707a0 + -0x588)) << 0x20;
  uVar25 = CONCAT44(DAT_182670a2c,DAT_182670a2c);
  *(ulonglong *)(DAT_1826707a0 + -0x68) = uVar38 ^ CONCAT44(DAT_182670828,DAT_182670828);
  uVar16 = DAT_182670ab4;
  uVar11 = DAT_1826707c8;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar4 + -0xd88) =
       (uVar25 ^ *(ulonglong *)(lVar4 + -0xf0)) - (CONCAT44(uVar6,uVar7) ^ 0x1e718ef316147b67);
  uVar39 = CONCAT44(uVar16,uVar16);
  uVar25 = (ulonglong)DAT_182670ae0;
  *(ulonglong *)(lVar4 + -0x998) =
       (uVar37 ^ *(ulonglong *)(lVar4 + -0x588)) >> (((byte)DAT_1826707c4 ^ 0x45) & 0x3f) ^ uVar39;
  uVar8 = DAT_1826707b8;
  uVar28 = (ulonglong)DAT_1826707b8;
  *(byte *)(lVar4 + -0x7f1) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x5e0) ^ uVar25) ^ (byte)DAT_182670a40;
  uVar16 = DAT_182670acc;
  uVar6 = DAT_182670904;
  uVar30 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  uVar28 = (*(ulonglong *)(lVar4 - (uVar28 ^ 0x4724c798)) ^ uVar39 | uVar38) ^ uVar30;
  *(ulonglong *)(lVar4 + -0x658) = uVar28;
  uVar38 = CONCAT44(uVar16,uVar16);
  uVar25 = *(ulonglong *)(lVar5 + -0x630);
  uVar37 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar4 + -0xcf8) =
       uVar38 ^ uVar30 ^ uVar29 ^ uVar28 ^ *(ulonglong *)(lVar4 + -0xa18);
  uVar31 = CONCAT44(uVar6,uVar6);
  *(ulonglong *)(lVar5 - (uVar37 ^ 0xb8d3394f)) =
       (uVar43 ^ uVar25) + (uVar40 ^ *(ulonglong *)(lVar5 + -0xbb0)) ^ uVar31;
  uVar7 = DAT_1826707ac;
  uVar25 = *(ulonglong *)(lVar5 + -0x630);
  *(ulonglong *)(lVar5 + -0x3b0) = ((ulonglong)uVar20 ^ 0x9eb61000) >> 0xb;
  uVar18 = DAT_182670a30;
  lVar4 = DAT_1826707a0;
  uVar35 = CONCAT44(DAT_182670a30,DAT_182670a30);
  uVar28 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(DAT_1826707a0 + -0x9e0) =
       (uVar25 ^ uVar43) << (((byte)uVar8 ^ 0x20) & 0x3f) ^ uVar35;
  uVar15 = DAT_1826707ec;
  uVar36 = (ulonglong)DAT_1826707ec;
  *(uint *)(lVar4 + -0x280) = (*(uint *)(lVar4 + -0x42c) ^ uVar6) - *(int *)(lVar4 + -0x3d4);
  uVar30 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar34 = uVar15 - DAT_1826707f0;
  uVar37 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x2d259381)) = uVar25 >> 0x20 ^ uVar30 ^ uVar41;
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x27d06dd)) =
       (uVar35 ^ *(ulonglong *)(lVar4 + -0x9e0) | uVar30 ^ *puVar1) ^ uVar31;
  uVar28 = CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar25 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0xb699228c)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar15 ^ 0xb91623b9)) ^ uVar28 ^
       *(ulonglong *)(lVar4 + -0x890);
  lVar5 = DAT_1826707a0;
  local_res18 = (byte)uVar9;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0xb6992e5c)) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0x27d0675)) ^ uVar28) +
       (CONCAT44(uVar15,uVar34) ^ 0xdaab17603eacaaa) ^ uVar40;
  uVar37 = uVar40 ^ *(ulonglong *)(lVar5 + -0xac0);
  uVar25 = *(ulonglong *)(lVar5 + -0x998);
  uVar28 = (CONCAT44(uVar8,uVar10) ^ 0x19c927ecd1a62e3a) + (uVar29 ^ *(ulonglong *)(lVar5 + -0xa18))
  ;
  uVar30 = CONCAT44(DAT_182670888,DAT_182670888);
  *(ulonglong *)(lVar5 + -0x9c8) = uVar28 ^ CONCAT44(DAT_1826708f4,DAT_1826708f4);
  uVar29 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  bVar23 = (byte)DAT_1826707c4;
  *(ulonglong *)(lVar5 + -0x410) = uVar28 + uVar37 ^ uVar30;
  uVar28 = (ulonglong)DAT_1826707dc;
  *puVar2 = uVar37 << ((bVar23 ^ 0x6b) & 0x3f) ^ uVar29;
  uVar13 = DAT_1826707d4;
  uVar37 = (ulonglong)DAT_1826707d4;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x42012c95)) =
       CONCAT44(DAT_1826707d0,DAT_1826707f4) ^ 0x6225c50b8c15176 | uVar39 ^ uVar25;
  uVar28 = CONCAT44(DAT_182670a08,DAT_182670a08);
  uVar25 = (*(ulonglong *)(lVar5 - (uVar37 ^ 0x5d62649c)) ^ uVar40) >> ((local_res18 ^ 0x1f) & 0x3f)
  ;
  *(uint *)(lVar5 + -0xc34) =
       (DAT_1826707c0 ^ 0xbab19b75) << ((byte)*(undefined4 *)(lVar5 + -0x598) & 0x1f);
  uVar16 = DAT_182670a04;
  *(ulonglong *)(lVar5 + -0xd88) = uVar25 ^ uVar28;
  lVar4 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar16,uVar16);
  uVar28 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707a8 ^ 0xe2728a4d)) ^ uVar29 |
           uVar25) ^ uVar37;
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0x410);
  *(ulonglong *)(DAT_1826707a0 + -0x68) =
       uVar35 ^ uVar31 ^ *(ulonglong *)(DAT_1826707a0 + -0x890) ^
       *(ulonglong *)(DAT_1826707a0 + -0x9e0);
  uVar16 = DAT_182670860;
  *(ulonglong *)(lVar4 + -0x588) = uVar28;
  uVar14 = DAT_1826707d8;
  uVar20 = DAT_1826707b4;
  uVar29 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f4 ^ 0xc17c2a58)) =
       uVar30 ^ uVar25 ^ uVar29 ^ uVar37 ^ uVar28;
  *(ulonglong *)(lVar4 + -0xbb0) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707f0 ^ 0x27d000d)) |
       CONCAT44(uVar12,uVar15) ^ 0x16f6f6d45b488cad;
  uVar6 = DAT_1826707b0;
  uVar28 = (CONCAT44(DAT_1826707b0,uVar20) ^ 0x9707fea8075bca2e) +
           (uVar38 ^ *(ulonglong *)(lVar4 + -0xcf8));
  *(ulonglong *)(lVar4 + -0x3b0) = uVar28 ^ CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar4 + -0x630) =
       (CONCAT44(uVar14,uVar9) ^ 0xae82a76cc5e65032) + (uVar31 ^ *(ulonglong *)(lVar4 + -0x890)) ^
       uVar43;
  uVar20 = DAT_1826707dc;
  lVar5 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *puVar1 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar13 ^ 0x5d62686c)) ^ uVar43) + uVar28 ^ uVar31;
  uVar13 = DAT_1826707e8;
  uVar38 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar28 << (((byte)uVar20 ^ 0x75) & 0x3f) ^ uVar38;
  uVar37 = CONCAT44(DAT_182670a68,DAT_182670a68);
  uVar25 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xb8d337cf)) =
       uVar28 >> (((byte)DAT_1826707a8 ^ 0x1d) & 0x3f) ^ uVar37;
  uVar28 = CONCAT44(DAT_182670af4,DAT_182670af4);
  *(ulonglong *)(lVar5 - (uVar27 ^ 0xb99e2f35)) =
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0xff77f993)) ^ uVar37 |
       uVar38 ^ *(ulonglong *)(lVar5 + -0x6b8)) ^ uVar28;
  *(ulonglong *)(lVar5 + -0x9c8) =
       (CONCAT44(uVar8,uVar34) ^ 0x82d1db11987af027) + 0x73b004217e848c3c;
  uVar25 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(ulonglong *)(lVar5 + -0x998) =
       *puVar1 ^ *(ulonglong *)(lVar5 + -0xa18) ^ uVar25 ^ uVar28 ^ uVar31;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar6 ^ 0x2d259e49)) =
       (CONCAT44(uVar11,uVar20) ^ 0x28384fbcef55c7d) -
       (CONCAT44(uVar11,uVar15) ^ 0x99aa4ee0b2926f41);
  uVar34 = DAT_182670ac8;
  uVar16 = DAT_182670a1c;
  lVar4 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_18267082c,DAT_18267082c);
  puVar33 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0x74a0e818));
  *(ulonglong *)(lVar5 + -0xac0) =
       (*(ulonglong *)(lVar5 - (uVar36 ^ 0xb9162c99)) ^ uVar25) +
       (uVar30 ^ *(ulonglong *)(lVar5 + -0x410)) ^ uVar38;
  uVar37 = (uVar25 ^ *(ulonglong *)(lVar4 + -0x998)) << (((byte)DAT_1826707f0 ^ 0x51) & 0x3f);
  bVar23 = (byte)DAT_1826707a8;
  uVar28 = CONCAT44(DAT_182670910,DAT_182670910);
  *puVar2 = uVar37 ^ CONCAT44(uVar34,uVar34);
  lVar4 = DAT_1826707a0;
  uVar25 = (*puVar33 ^ uVar25) >> ((bVar23 ^ 0x21) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xd88) = uVar25 ^ CONCAT44(uVar16,uVar16);
  uVar20 = DAT_1826707cc;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707cc ^ 0x5c6e6bbd)) = (uVar25 | uVar37) ^ uVar28;
  uVar8 = DAT_1826709c8;
  uVar36 = (ulonglong)DAT_1826709c8;
  puVar26 = (ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x2d259b31));
  *puVar26 = (ulonglong)*(ushort *)(lVar3 + -0x65a) ^ (ulonglong)(uVar34 >> 0x10);
  uVar39 = CONCAT44(uVar8,uVar8);
  uVar37 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(lVar4 + -0x68) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar20 ^ 0x5c6e689d)) ^ uVar39 ^ uVar28 ^ uVar38 ^
       *(ulonglong *)(lVar4 + -0x9e0);
  uVar16 = DAT_182670a38;
  *(ulonglong *)(lVar4 + -0xbb0) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0xe2728115)) ^ uVar31) +
       (*(ulonglong *)(lVar4 + -0x658) ^ uVar29) ^ uVar37;
  uVar30 = (*(ulonglong *)(lVar4 + -0x658) ^ uVar29) << (((byte)DAT_1826707d8 ^ 0x39) & 0x3f);
  bVar23 = (byte)DAT_1826707d4;
  uVar28 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(lVar4 + -0xcf8) = uVar30 ^ CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x890) =
       (*(ulonglong *)(lVar4 + -0x658) ^ uVar29) >> ((bVar23 ^ 0x5b) & 0x3f) ^ uVar28;
  puVar42 = (ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c8 ^ 0xfff7f74f));
  uVar25 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ac ^ 0x27d0655)) =
       (uVar30 | *puVar42 ^ uVar28) ^ uVar25;
  uVar16 = DAT_182670830;
  uVar30 = CONCAT44(DAT_182670918,DAT_182670918);
  uVar28 = uVar37 ^ *(ulonglong *)(lVar4 + -0xbb0) ^ uVar30 ^ uVar25 ^
           *(ulonglong *)(lVar4 + -0x630);
  uVar25 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar4 + -0x3b0) = uVar28;
  uVar17 = DAT_182670890;
  uVar40 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 + -0x6b8) =
       (*(ulonglong *)(lVar4 - (uVar25 ^ 0xc17c26c0)) ^ uVar38) + (uVar28 ^ uVar30) ^ uVar40;
  uVar41 = CONCAT44(uVar17,uVar17);
  local_a0 = (byte)uVar15;
  uVar38 = (*(ulonglong *)(lVar4 - (uVar27 ^ 0xb99e269d)) ^ uVar30) << 0x17;
  uVar25 = CONCAT44(DAT_182670ad8,DAT_182670ad8);
  *(ulonglong *)(lVar4 + -0x610) = uVar38 ^ uVar41;
  uVar16 = DAT_182670900;
  *(ulonglong *)(lVar4 + -0x9c8) =
       (*(ulonglong *)(lVar4 + -0x3b0) ^ uVar30) >> ((local_a0 ^ 0x28) & 0x3f) ^ uVar25;
  uVar6 = DAT_1826707b0;
  uVar28 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e8 ^ 0x406c2a18)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707b0 ^ 0x2d259771)) ^ uVar25 | uVar38) ^ uVar28;
  uVar29 = CONCAT44(DAT_1826709ac,DAT_1826709ac);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707e0 ^ 0xb8d3312f)) =
       *(ulonglong *)(lVar4 + -0xa18) ^ uVar29 ^ uVar28 ^ uVar40 ^ *(ulonglong *)(lVar4 + -0x6b8);
  uVar16 = DAT_182670840;
  uVar20 = DAT_1826707c4;
  lVar3 = DAT_1826707a0;
  uVar31 = CONCAT44(DAT_182670a70,DAT_182670a70);
  uVar34 = DAT_1826707c8 + DAT_1826707b0;
  DAT_1826707e4 = uVar34;
  *(ulonglong *)(DAT_1826707a0 + -0x410) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0xfff7ffb7)) ^ uVar39) +
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0x74a0ea30)) ^ uVar37) ^ uVar31;
  uVar17 = DAT_18267096c;
  uVar37 = CONCAT44(uVar16,uVar16);
  *(ulonglong *)(lVar3 + -0x998) =
       (*(ulonglong *)(lVar3 + -0x68) ^ uVar39) << (((byte)uVar20 ^ 0x4d) & 0x3f) ^ uVar37;
  uVar39 = CONCAT44(uVar17,uVar17);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x2d259331)) =
       ((ulonglong)(uVar8 >> 0x18) | uVar36 << 8) ^ *(ulonglong *)(lVar3 + -0x68) >> 0x18 ^ uVar39;
  uVar25 = *(ulonglong *)(lVar3 + -0x410);
  uVar28 = *(ulonglong *)(lVar3 + -0x6b8);
  uVar30 = CONCAT44(DAT_182670820,DAT_182670820);
  uVar37 = (uVar39 ^ *(ulonglong *)(lVar3 + -0xd88) | uVar37 ^ *(ulonglong *)(lVar3 + -0x998)) ^
           uVar30;
  *puVar2 = uVar37;
  uVar36 = CONCAT44(DAT_182670a0c,DAT_182670a0c);
  uVar38 = CONCAT44(DAT_182670800,DAT_182670800);
  uVar37 = uVar25 ^ uVar36 ^ uVar37 ^ uVar30 ^ uVar31;
  *(ulonglong *)(lVar3 + -0x588) = uVar37;
  uVar6 = DAT_1826707c8;
  uVar25 = (uVar37 ^ uVar36) + (uVar40 ^ uVar28);
  *(ulonglong *)(lVar3 + -0x9e0) = uVar25 ^ uVar38;
  uVar28 = CONCAT44(uVar34,uVar6);
  *puVar1 = uVar25 | uVar28 ^ 0xd3c3f19ddff7210f;
  *(ulonglong *)(lVar3 + -0x658) = (uVar36 ^ uVar37) << 5 ^ uVar35;
  *(ulonglong *)(lVar3 + -0xcf8) =
       (*(ulonglong *)(lVar3 + -0x610) ^ uVar41) + (uVar28 ^ 0xf3b0b1d17bf0fe0c);
  lVar4 = DAT_1826707a0;
  uVar25 = CONCAT44(DAT_182670abc,DAT_182670abc);
  *(ulonglong *)(lVar3 + -0x890) = (*puVar26 ^ uVar36) >> (((byte)uVar6 ^ 0xe4) & 0x3f) ^ uVar25;
  uVar36 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar28 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707d8 ^ 0x407c2a30)) =
       (*(ulonglong *)(lVar3 - ((ulonglong)uVar34 ^ 0x2d1d98c0)) ^ uVar35 | *puVar42 ^ uVar25) ^
       uVar36;
  uVar16 = DAT_182670808;
  uVar30 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar4 - (uVar28 ^ 0x4724c4c0)) =
       uVar30 ^ uVar36 ^ uVar38 ^ *(ulonglong *)(lVar4 + -0x9e0) ^ *(ulonglong *)(lVar4 + -0x630);
  uVar19 = DAT_182670b04;
  uVar43 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar4 + -0x3b0) =
       (*(ulonglong *)(lVar4 + -0xf0) ^ uVar29) + (*(ulonglong *)(lVar4 + -0x410) ^ uVar31) ^ uVar43
  ;
  uVar6 = DAT_1826707a8;
  uVar29 = *(ulonglong *)(lVar4 + -0xf0) ^ uVar29;
  uVar40 = CONCAT44(uVar19,uVar19);
  uVar31 = CONCAT44(uVar11,DAT_1826707b0);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar29 << (((byte)DAT_1826707b0 ^ 0x9c) & 0x3f) ^ uVar40;
  uVar25 = (ulonglong)DAT_182670b14;
  uVar29 = uVar29 >> (((byte)uVar6 ^ 0x36) & 0x3f);
  *(ulonglong *)(lVar4 + -0xa18) = uVar29 ^ CONCAT44(DAT_182670968,DAT_182670968);
  uVar37 = (ulonglong)DAT_1826707cc;
  uVar28 = (ulonglong)DAT_1826707e0;
  *(byte *)(lVar4 + -0x7f2) =
       *(byte *)(*(ulonglong *)(lVar4 + -0x390) ^ uVar25) ^ (byte)DAT_182670a40;
  uVar25 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar4 - (uVar37 ^ 0x5c6e69ed)) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0xb8d33817)) ^ uVar40 | uVar29) ^ uVar25;
  uVar28 = CONCAT44(DAT_182670858,DAT_182670858);
  *(ulonglong *)(lVar4 + -0x68) =
       *(ulonglong *)(lVar4 + -0x3b0) ^ uVar28 ^ uVar25 ^ uVar43 ^ *(ulonglong *)(lVar4 + -0xbb0);
  *puVar33 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar34 ^ 0x2d1d98a8)) ^ uVar36) <<
             ((*(byte *)(lVar4 + -0xac0) ^ (byte)uVar16) & 0x3f);
  uVar35 = CONCAT44(DAT_182670afc,DAT_182670afc);
  uVar36 = (CONCAT44(uVar10,DAT_1826707dc) ^ 0xef3b9fb23e79597a) +
           (*(ulonglong *)(lVar4 + -0x68) ^ uVar28);
  uVar28 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar4 + -0xd88) = uVar36 ^ uVar35;
  uVar25 = (CONCAT44(uVar13,uVar9) ^ 0x7f73f6feb030b90f) +
           (uVar38 ^ *(ulonglong *)(DAT_1826707a0 + -0x9e0));
  *puVar2 = uVar25 ^ uVar28;
  uVar29 = CONCAT44(DAT_182670a10,DAT_182670a10);
  bVar23 = (byte)DAT_1826707d0;
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) = uVar36 + uVar25 ^ uVar29;
  uVar37 = CONCAT44(DAT_182670920,DAT_182670920);
  bVar24 = (byte)DAT_1826707e0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c8 ^ 0xfff7f2e7)) =
       uVar36 << ((bVar23 ^ 0x9a) & 0x3f) ^ uVar37;
  lVar3 = DAT_1826707a0;
  uVar28 = (uVar35 ^ *(ulonglong *)(DAT_1826707a0 + -0xd88)) >> ((bVar24 ^ 0xf8) & 0x3f);
  uVar39 = uVar28 ^ uVar39;
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar39;
  uVar16 = DAT_182670a48;
  *(ulonglong *)(lVar3 + -0xcf8) =
       (uVar31 ^ 0xa0bf38f264edee89) >> (((byte)uVar39 ^ (byte)uVar17) & 0x3f);
  lVar3 = DAT_1826707a0;
  uVar28 = *(ulonglong *)(DAT_1826707a0 - (uVar32 ^ 0x1c519e6)) ^ uVar37 | uVar28;
  uVar38 = CONCAT44(uVar14,DAT_1826707f4);
  uVar25 = *(ulonglong *)(DAT_1826707a0 + -0x60);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar28 ^ CONCAT44(uVar16,uVar16);
  uVar32 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar3 + -0x890) = uVar28 ^ uVar29 ^ uVar40 ^ *(ulonglong *)(lVar3 + -0x6b8);
  *(uint *)(lVar3 + -0xc0c) = *(uint *)(uVar25 ^ DAT_182670828) ^ DAT_182670a40;
  *(ulonglong *)(lVar3 - (uVar32 ^ 0xff77fb93)) =
       (CONCAT44(DAT_1826707f0,DAT_1826707f0) ^ 0xa789e8a7795d76bf) +
       (*(ulonglong *)(lVar3 + -0xac0) ^ uVar30) ^ uVar41;
  uVar20 = DAT_1826707b4;
  uVar30 = *(ulonglong *)(lVar3 + -0x410) ^ uVar41;
  uVar29 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  uVar25 = (uVar38 ^ 0xf6caee3add3fc122) + (*(ulonglong *)(lVar3 + -0x3b0) ^ uVar43);
  *(ulonglong *)(lVar3 + -0xf0) = uVar25 ^ uVar29;
  uVar25 = uVar25 + uVar30;
  *(ulonglong *)(lVar3 + -0x9c8) =
       (CONCAT44(uVar15,uVar34) ^ 0x734bd22cbd643a83) -
       (CONCAT44(uVar12,uVar9) ^ 0x23a6eef477cdc544);
  uVar32 = CONCAT44(DAT_182670ae8,DAT_182670ae8);
  *(ulonglong *)(lVar3 + -0xa18) = uVar25 ^ CONCAT44(DAT_182670a3c,DAT_182670a3c);
  *(ulonglong *)(lVar3 + -0xbb0) =
       (*(ulonglong *)(lVar3 - (uVar27 ^ 0xb99e213d)) ^ uVar41) << (((byte)uVar34 ^ 0xb9) & 0x3f) ^
       uVar32;
  uVar16 = DAT_18267094c;
  uVar6 = DAT_1826707a8;
  *(ulonglong *)(lVar3 + -0x630) = uVar25 - (CONCAT44(uVar7,uVar20) ^ 0x594accb3c1ba8c94);
  uVar30 = uVar30 >> (((byte)uVar6 ^ 0x32) & 0x3f);
  local_c0 = (byte)uVar18;
  uVar28 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar3 + -0x68) =
       (uVar32 ^ *(ulonglong *)(lVar3 + -0xbb0)) >> ((local_c0 ^ *(byte *)(lVar3 + -0x658)) & 0x3f);
  uVar17 = DAT_182670a18;
  *(ulonglong *)(lVar3 + -0x998) = uVar30 ^ CONCAT44(uVar16,uVar16);
  uVar25 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar3 + -0x9e0) =
       (*(ulonglong *)(lVar3 - (uVar28 ^ 0x420127d5)) ^ uVar32 | uVar30) ^ CONCAT44(uVar17,uVar17);
  *puVar2 = *(ulonglong *)(lVar3 - (uVar25 ^ 0x27d0095)) ^ uVar29 ^ uVar37 ^ *puVar1;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar22 * 4) = uVar21;
  return;
}



############ FUN_ 180c5ce90 size=3323 ############

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

void FUN_180c5ce90(void)

{
  uint uVar1;
  undefined8 uVar2;
  longlong lVar3;
  longlong lVar4;
  undefined4 uVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  byte bVar14;
  uint uVar15;
  ulonglong uVar16;
  ulonglong uVar17;
  byte bVar18;
  uint uVar19;
  uint uVar20;
  ulonglong uVar21;
  longlong *plVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  uint uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  byte *pbVar30;
  ulonglong *puVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar34;
  
  uVar12 = DAT_1826707e0;
  uVar11 = DAT_1826707dc;
  lVar3 = DAT_1826707a0;
  uVar19 = ~DAT_1826707dc;
  uVar26 = (ulonglong)uVar19;
  uVar1 = *(uint *)(&DAT_18260f750 +
                   ((ulonglong)DAT_1826707dc ^ 0xbfffffb7) + (longlong)DAT_182670cd4);
  uVar15 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar19 ^ 0x40000050) + (longlong)DAT_182670cd4) ^
           DAT_1826707dc;
  uVar16 = (ulonglong)DAT_1826708b4;
  DAT_1826707bc = uVar19;
  *(undefined8 *)(DAT_1826707a0 + -0x390) =
       *(undefined8 *)(DAT_1826707a0 - ((ulonglong)uVar19 ^ 0x400004e8));
  *(undefined8 *)(lVar3 - ((ulonglong)uVar19 ^ 0x40000968)) = *(undefined8 *)(lVar3 + -0x5f8);
  uVar17 = (ulonglong)DAT_1826709bc;
  puVar31 = (ulonglong *)(lVar3 - ((ulonglong)uVar11 ^ 0xbffff597));
  *puVar31 = *(ulonglong *)(lVar3 + -0x390) ^ uVar16;
  *(ulonglong *)(lVar3 - (uVar26 ^ 0x40000520)) = *(ulonglong *)(lVar3 + -0x928) ^ uVar17;
  uVar8 = DAT_1826707d4;
  pbVar30 = (byte *)(*(ulonglong *)(lVar3 + -0x560) ^ uVar17);
  *(byte **)(lVar3 + -0x978) = pbVar30 + (CONCAT44(uVar11,uVar11) ^ 0xbfffffbfbfffffbe);
  uVar9 = DAT_1826707d8;
  uVar27 = (ulonglong)DAT_1826707d8;
  bVar14 = (byte)DAT_1826707e4;
  *(ulonglong *)(lVar3 + -0x410) =
       *(ulonglong *)(lVar3 - (uVar26 ^ 0x40000bf0)) | CONCAT44(uVar19,uVar11) ^ 0xa914bc84b72a6583;
  uVar29 = uVar8 - uVar12;
  *(byte *)(lVar3 + -0xc91) = *pbVar30 ^ (byte)DAT_182670904 ^ DAT_1826709e0;
  DAT_1826707b0 = uVar29;
  *(byte *)((ulonglong)DAT_182670a88 ^ *(ulonglong *)(lVar3 + -0x5d8)) = bVar14 ^ 0xc3;
  *(ulonglong *)(lVar3 + -0x5e0) =
       (CONCAT44(uVar19,uVar9) ^ 0x400000408d66dad7) + (*puVar31 ^ uVar16);
  uVar5 = DAT_1826709d0;
  *(uint *)(lVar3 + -0x7e4) = (uVar8 ^ 0x944e409c) + (uVar12 ^ 0x891739aa);
  *(byte *)(*(ulonglong *)(lVar3 + -0xa28) ^ uVar16) =
       *(byte *)(lVar3 + -0xc91) ^ (byte)DAT_182670904;
  uVar20 = DAT_1826707b4;
  uVar21 = (ulonglong)DAT_1826707b4;
  uVar25 = (DAT_1826707b4 << 0x10 | DAT_1826707b4 & 0xff00) << 8 | DAT_1826707b4 >> 8 & 0xff00 |
           DAT_1826707b4 >> 0x18;
  uVar28 = (ulonglong)uVar25;
  *(undefined8 *)(lVar3 + -0x38) = *(undefined8 *)(lVar3 - ((ulonglong)DAT_1826707b4 ^ 0x9bf9fe5b));
  lVar3 = DAT_1826707a0;
  uVar24 = (ulonglong)uVar29;
  uVar32 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  uVar16 = (ulonglong)DAT_18267088c;
  uVar17 = (ulonglong)DAT_18267086c;
  *(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x24175813)) =
       *(ulonglong *)
        (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar25 ^ 0xbbfbfbdb)) ^ CONCAT44(uVar5,uVar5)) ^
       uVar32;
  *(undefined8 *)(lVar3 + -0x240) = 0xe6cacfc549e1d982;
  *(undefined8 *)(lVar3 + -0xd28) = *(undefined8 *)(lVar3 + -0x978);
  *(ulonglong *)(lVar3 + -0x2a0) = uVar17 ^ *(ulonglong *)(lVar3 + -0x38);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar25 ^ 0xbbfbfcbb)) =
       *(ulonglong *)(lVar3 - (uVar21 ^ 0x9bf9f693)) ^ uVar16;
  uVar23 = (ulonglong)DAT_182670830;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar29 ^ 0x24175313)) =
       (uVar16 ^ *(ulonglong *)(lVar3 + -0x520)) + 1;
  bVar18 = (byte)(uVar20 >> 0x18);
  *(byte *)(lVar3 + -0x751) =
       *(byte *)(uVar16 ^ *(ulonglong *)(lVar3 + -0x520)) ^ (byte)DAT_1826708e8 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0x241759b3)) ^ uVar23) = bVar18 ^ 0xe8;
  uVar10 = DAT_182670868;
  uVar16 = (ulonglong)uVar8;
  pbVar30 = (byte *)(uVar17 ^ *(ulonglong *)(lVar3 + -0x2a0));
  uVar34 = (ulonglong)DAT_182670868;
  *(byte **)(lVar3 + -0x458) = pbVar30 + (CONCAT44(uVar8,uVar12) ^ 0xb9bbfddf95a49f35);
  *pbVar30 = *(byte *)(lVar3 - (uVar16 ^ 0xb9bbfa8e)) ^ (byte)DAT_1826708e8;
  uVar6 = DAT_1826707cc;
  uVar17 = (ulonglong)DAT_1826707cc;
  *(undefined8 *)(lVar3 + -0xaa0) = *(undefined8 *)(lVar3 + -0xdb8);
  uVar33 = uVar6 & uVar9;
  *(ulonglong *)(lVar3 + -0xb18) = *(ulonglong *)(lVar3 + -0x458);
  DAT_1826707ac = uVar33;
  *(ulonglong *)(lVar3 + -0x890) =
       (CONCAT44(uVar9,uVar33) ^ 0x8b33bc230b8e13ee) >> (((byte)uVar33 ^ 0xdb) & 0x3f);
  lVar4 = DAT_1826707a0;
  uVar21 = (ulonglong)DAT_182670a10;
  *(ulonglong *)(DAT_1826707a0 + -0x708) = (ulonglong)uVar10 ^ *(ulonglong *)(lVar3 + -0x458);
  pbVar30 = *(byte **)(lVar4 - (uVar27 ^ 0x8d66d076));
  *(ulonglong *)(lVar4 + -0x8d8) = (ulonglong)pbVar30 ^ uVar21;
  lVar3 = DAT_1826707a0;
  *(byte **)(lVar4 + -0x9a0) = pbVar30 + 1;
  bVar14 = (byte)DAT_182670aec;
  *(byte *)(lVar3 + -0x291) = *pbVar30 ^ (byte)DAT_182670aec ^ DAT_1826709e0;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x330) ^ (ulonglong)DAT_1826708b8) = 0x73;
  uVar10 = DAT_1826707d8;
  lVar3 = DAT_1826707a0;
  puVar31 = (ulonglong *)(DAT_1826707a0 + -0x708);
  pbVar30 = (byte *)(DAT_1826707a0 + -0x291);
  *(ulonglong *)(DAT_1826707a0 + -0xab8) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar33 ^ 0x890247dc)) ^ uVar34) +
       (CONCAT44(uVar6,uVar33) ^ 0xb99b65dc890240d5);
  *(byte *)(uVar34 ^ *puVar31) = bVar14 ^ *pbVar30;
  uVar21 = (ulonglong)DAT_182670ae0;
  *(int *)(lVar3 + -0xcec) = *(int *)(lVar3 + -0x7e4) << ((byte)uVar10 & 0x1f);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar33 ^ 0x89024184)) = *(undefined8 *)(lVar3 + -0xab8);
  *(undefined8 *)(lVar3 + -0x1f0) = *(undefined8 *)(lVar3 + -0x9a0);
  *(byte *)(lVar3 + -0xa36) =
       *(byte *)(*(ulonglong *)(lVar3 + -0x238) ^ (ulonglong)DAT_182670854) ^ DAT_1826709e0;
  *(ulonglong *)(lVar3 + -0x418) = *(ulonglong *)(lVar3 + -0x150) ^ uVar23;
  *(ulonglong *)(DAT_1826707a0 - (uVar27 ^ 0x8d66df76)) =
       *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0xb99b642c)) ^ uVar21;
  bVar14 = (byte)DAT_182670928;
  lVar3 = DAT_1826707a0;
  pbVar30 = (byte *)(*(ulonglong *)(DAT_1826707a0 + -0x5a0) ^ uVar21);
  *(ulonglong *)(DAT_1826707a0 + -0x3b0) =
       *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar12 ^ 0x95a49f5c)) >>
       (((byte)uVar9 ^ 0xe8) & 0x3f);
  *(byte **)(lVar3 + -0x1d8) = pbVar30 + (CONCAT44(uVar20,uVar6) ^ 0x9bf9fbbbb99b65dd);
  *(byte *)(lVar3 + -0x3d5) = *pbVar30 ^ bVar14 ^ DAT_1826709e0;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar28 ^ 0xbbfbfc33)) ^ (ulonglong)DAT_182670a90) =
       bVar18 ^ 0x36;
  plVar22 = (longlong *)(lVar3 - (uVar24 ^ 0x2417577b));
  *plVar22 = (CONCAT44(uVar29,uVar12) ^ 0x24175eab95a49f35) +
             (uVar23 ^ *(ulonglong *)(lVar3 + -0x418));
  *(byte *)(uVar23 ^ *(ulonglong *)(lVar3 + -0x418)) = bVar14 ^ *(byte *)(lVar3 + -0x3d5);
  *(ulonglong *)(lVar3 + -0x220) =
       (CONCAT44(uVar20,uVar33) ^ 0x442c740c06dfe858) >>
       ((byte)*(undefined8 *)(lVar3 + -0x1b8) & 0x3f);
  *(longlong *)(lVar3 - (uVar27 ^ 0x8d66d696)) = *plVar22;
  *(undefined8 *)(lVar3 - (uVar17 ^ 0xb99b6374)) = *(undefined8 *)(lVar3 + -0x1d8);
  uVar21 = (ulonglong)DAT_1826707fc;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar33 ^ 0x890244f4)) =
       (CONCAT44(uVar8,uVar12) ^ 0x88173763c8f2cca2) - (CONCAT44(uVar25,uVar8) ^ 0x3c3943c70be5cc0d)
  ;
  pbVar30 = *(byte **)(lVar3 + -0x6a8);
  *(ulonglong *)(lVar3 + -0xae8) = *(ulonglong *)(lVar3 + -0xc40) ^ uVar21;
  *(ulonglong *)(lVar3 + -0x88) = (ulonglong)pbVar30 ^ (ulonglong)DAT_182670838;
  bVar13 = DAT_1826709e0;
  *(byte **)(lVar3 + -0x1c8) = pbVar30 + (CONCAT44(uVar6,uVar20) ^ 0xb99b65dc9bf9fbba);
  *(byte *)(lVar3 - (uVar16 ^ 0xb9bbf735)) = *pbVar30 ^ (byte)DAT_182670aa8 ^ bVar13;
  *(byte *)(*(ulonglong *)(lVar3 + -0xc58) ^ (ulonglong)DAT_182670848) = (byte)uVar10 ^ 0xaa;
  *(ulonglong *)(lVar3 + -0xb28) =
       (CONCAT44(uVar12,uVar33) ^ 0x95a49f34890240d5) + (*(ulonglong *)(lVar3 + -0xae8) ^ uVar21);
  uVar23 = (ulonglong)DAT_182670920;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar24 ^ 0x24175443)) ^ uVar21) =
       *(byte *)(lVar3 + -0xaea) ^ (byte)DAT_182670aa8;
  *(undefined8 *)(lVar3 - (uVar28 ^ 0xbbfbf0fb)) = *(undefined8 *)(lVar3 + -0xb28);
  pbVar30 = *(byte **)(lVar3 + -0x1c8);
  *(byte **)(lVar3 + -0x170) = pbVar30;
  *(ulonglong *)(lVar3 + -0x450) = *(ulonglong *)(lVar3 + -0x960) ^ uVar23;
  uVar21 = (ulonglong)DAT_182670884;
  *(longlong *)(lVar3 + -0xa18) =
       -0xef1854d2854a78a << ((byte)*(undefined8 *)(lVar3 + -0x400) & 0x3f);
  *(ulonglong *)(lVar3 + -0x480) = uVar21 ^ (ulonglong)pbVar30;
  uVar12 = DAT_182670868;
  uVar10 = DAT_1826707e0;
  *(byte **)(lVar3 + -0x270) = pbVar30 + (CONCAT44(uVar8,uVar9) ^ 0xb9bbfddf8d66dad7);
  *(uint *)(lVar3 + -0xc34) = (uVar33 ^ 0x42ab2651) * (uVar10 ^ 0x6a8d5ef7);
  *(byte *)(lVar3 + -0xa71) = (byte)uVar12 ^ bVar13 ^ *pbVar30;
  *(byte *)(*(ulonglong *)(lVar3 - (uVar17 ^ 0xb99b68ac)) ^ (ulonglong)DAT_18267081c) =
       bVar18 ^ 0xbc;
  uVar21 = (ulonglong)DAT_182670a24;
  *(ulonglong *)(lVar3 + -0x4a8) =
       (*(ulonglong *)(lVar3 - (uVar26 ^ 0x40000410)) ^ uVar23) +
       (CONCAT44(uVar11,DAT_1826707c0) ^ 0xbfffffbff993b1a2);
  *(byte *)(uVar23 ^ *(ulonglong *)(lVar3 + -0x450)) =
       *(byte *)(lVar3 - (uVar27 ^ 0x8d66d0a7)) ^ (byte)uVar12;
  uVar23 = (ulonglong)DAT_1826708b0;
  uVar2 = *(undefined8 *)(lVar3 - (uVar28 ^ 0xbbfbfcd3));
  *(undefined8 *)(lVar3 + -0x390) = *(undefined8 *)(lVar3 + -0x270);
  *(ulonglong *)(lVar3 + -0x5f8) = *(ulonglong *)(lVar3 + -0x4a8);
  *(ulonglong *)(lVar3 + -0xb70) =
       (CONCAT44(uVar11,uVar29) ^ 0x424f568df8dd572f) << ((byte)uVar2 & 0x3f);
  *(ulonglong *)(lVar3 - (uVar16 ^ 0xb9bbf4f7)) = uVar23 ^ *(ulonglong *)(lVar3 + -0x4a8);
  uVar5 = DAT_1826707ec;
  *(ulonglong *)(lVar3 + -0x5d8) = uVar21 ^ *(ulonglong *)(lVar3 + -0x390);
  uVar16 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707c4 ^ 0x10272a8f)) =
       (CONCAT44(uVar5,uVar8) ^ 0xb1a3f993b9bbfdde) + *(ulonglong *)(lVar3 + -0x390);
  uVar5 = DAT_182670ad8;
  *(byte *)(lVar3 - (uVar17 ^ 0xb99b6d05)) =
       *(byte *)(*(ulonglong *)(lVar3 - (uVar16 ^ 0x82c050c1)) ^ uVar21) ^ (byte)DAT_182670a68 ^
       bVar13;
  uVar8 = DAT_1826707e4;
  uVar21 = (ulonglong)DAT_1826707e4;
  *(undefined1 *)(*(ulonglong *)(lVar3 + -0x7f0) ^ (ulonglong)DAT_18267089c) = 0xdf;
  pbVar30 = (byte *)(uVar23 ^ *(ulonglong *)(lVar3 + -0x928));
  bVar14 = *(byte *)(lVar3 + -0x8d9) ^ (byte)DAT_182670a68;
  *(byte **)(lVar3 + -0x5e0) = pbVar30 + (CONCAT44(uVar20,uVar9) ^ 0x9bf9fbbb8d66dad7);
  *pbVar30 = bVar14;
  uVar20 = uVar8 << 0x10 | uVar8 >> 0x10;
  DAT_1826707a8 = uVar20;
  *(undefined8 *)(lVar3 - ((ulonglong)uVar8 ^ 0x82c05da1)) = *(undefined8 *)(lVar3 + -0x5e0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x54d98748)) =
       (CONCAT44(uVar20,uVar8) ^ 0xd3f62038a82f1d36) >> (((byte)uVar8 ^ 0xf8) & 0x3f);
  *(undefined8 *)(lVar3 - ((ulonglong)uVar20 ^ 0x54d982f8)) =
       *(undefined8 *)(lVar3 - ((ulonglong)uVar8 ^ 0x82c051b9));
  uVar17 = (ulonglong)_DAT_1826708f8;
  uVar23 = (ulonglong)DAT_1826709b0;
  uVar28 = (ulonglong)_DAT_1826708f8 ^ *(ulonglong *)(lVar3 + -0x38);
  uVar16 = *(ulonglong *)
            (*(ulonglong *)(lVar3 - ((ulonglong)uVar20 ^ 0x54d98578)) ^ CONCAT44(uVar5,uVar5));
  *(ulonglong *)(lVar3 + -0xd28) = uVar23 ^ *(ulonglong *)(lVar3 + -0x978);
  *(ulonglong *)(lVar3 + -0x5c0) = uVar16 ^ uVar32;
  *(ulonglong *)(lVar3 + -0x718) = uVar28;
  bVar14 = (byte)DAT_1826708a0;
  pbVar30 = (byte *)(uVar28 ^ uVar17);
  *(ulonglong *)(lVar3 + -0xcf8) =
       0x854488e995b9ba15 >> ((byte)*(undefined8 *)(lVar3 - (uVar21 ^ 0x82c05f69)) & 0x3f);
  *(byte **)(lVar3 + -0x520) = pbVar30 + (CONCAT44(uVar8,uVar20) ^ 0x82c054d954d982c1);
  *(byte *)(lVar3 + -0x6f9) = *pbVar30 ^ bVar14 ^ bVar13;
  *(byte *)(*(ulonglong *)(lVar3 + -600) ^ (ulonglong)DAT_182670804) = (byte)uVar10 ^ 199;
  pbVar30 = (byte *)(*(ulonglong *)(lVar3 + -0xd28) ^ uVar23);
  *(byte **)(lVar3 + -0x458) = pbVar30 + (CONCAT44(uVar6,uVar8) ^ 0xb99b65dc82c054d8);
  uVar5 = DAT_1826707c8;
  *pbVar30 = bVar14 ^ *(byte *)(lVar3 + -0x6f9);
  uVar7 = DAT_1826707d0;
  *(undefined8 *)(lVar3 + -0xdb8) = *(undefined8 *)(lVar3 + -0x458);
  *(ulonglong *)(lVar3 + -0xce0) =
       CONCAT44(uVar7,uVar20) ^ 0xcf5a2ac9a7b37597 | CONCAT44(uVar5,uVar8) ^ 0x20c63079291bc14;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar19;
  return;
}



############ FUN_ 180cb0c10 size=4049 ############

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

void FUN_180cb0c10(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint uVar5;
  byte bVar6;
  longlong lVar7;
  longlong lVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint *puVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  ulonglong uVar22;
  uint uVar23;
  ulonglong uVar24;
  uint uVar25;
  byte bVar26;
  ulonglong uVar27;
  byte *pbVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar33;
  ulonglong uVar32;
  
  uVar9 = DAT_1826709ac;
  uVar20 = DAT_1826707f0;
  uVar21 = DAT_1826707e8;
  uVar25 = DAT_1826707c8;
  lVar7 = DAT_1826707a0;
  uVar17 = (ulonglong)DAT_1826707e8;
  uVar22 = (ulonglong)DAT_1826707c8;
  uVar33 = DAT_1826707f0 ^ DAT_1826707c8;
  uVar31 = DAT_1826707f4 << 0x10 | DAT_1826707f4 >> 0x10;
  uVar32 = (ulonglong)uVar31;
  uVar23 = (DAT_1826707e8 << 0x10 | DAT_1826707e8 & 0xff00) << 8 | DAT_1826707e8 >> 8 & 0xff00 |
           DAT_1826707e8 >> 0x18;
  uVar5 = *(uint *)(&DAT_18260f758 + DAT_182670dd8);
  uVar11 = *(uint *)(&DAT_18260f760 + DAT_182670dd8) ^ DAT_1826707e8;
  uVar27 = (ulonglong)uVar33;
  bVar6 = (byte)(DAT_1826707f4 >> 0x10);
  DAT_1826707a8 = uVar31;
  DAT_1826707b4 = uVar33;
  DAT_1826707dc = uVar23;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar33 ^ 0x5552346f)) =
       (*(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707f4 ^ 0xcacab933)) ^ DAT_182670a8c) >>
       ((bVar6 ^ 0xd9) & 0x1f) ^ DAT_1826708e0;
  puVar1 = (uint *)(lVar7 + -0x7e4);
  uVar29 = (*puVar1 ^ DAT_182670a0c | *(uint *)(lVar7 + -0x42c) ^ DAT_1826708e0) ^ DAT_1826708e8;
  uVar14 = (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) + (*(uint *)(lVar7 + -0xc34) ^ DAT_182670894)
           ^ DAT_182670850;
  *(uint *)(lVar7 + -0x2d4) = uVar29;
  uVar29 = uVar29 ^ DAT_1826709d8 ^ DAT_1826708e8;
  *(uint *)(lVar7 + -0x814) = uVar14;
  uVar19 = DAT_182670934;
  uVar14 = *(uint *)(lVar7 - ((ulonglong)uVar25 ^ 0xa1cf8d5d)) ^ DAT_18267092c ^ DAT_182670850;
  *(uint *)(lVar7 + -0xa34) = uVar29;
  uVar29 = uVar29 ^ uVar19 ^ DAT_1826709d8;
  *(uint *)(lVar7 + -0x14) = uVar14;
  uVar14 = uVar14 ^ uVar9 ^ DAT_18267092c;
  *(uint *)(lVar7 + -0x598) = uVar29;
  uVar29 = DAT_1826707f4;
  uVar18 = (ulonglong)uVar23;
  *(uint *)(lVar7 + -0x9ec) = uVar14;
  lVar7 = DAT_1826707a0;
  pbVar28 = (byte *)((CONCAT44(uVar20,uVar20) ^ 0xf49db50af49db50a) * 0x20 +
                     (CONCAT44(uVar23,uVar21) ^ 0x804204404004429f) +
                    *(longlong *)(DAT_1826707a0 + -0x30));
  *(ulonglong *)(DAT_1826707a0 + -0xdb8) = (ulonglong)pbVar28 ^ (ulonglong)DAT_1826709fc;
  bVar13 = (byte)DAT_182670a20;
  *(ulonglong *)(lVar7 + -0x4c8) =
       *(ulonglong *)(lVar7 - ((ulonglong)uVar20 ^ 0xf49db11a)) |
       CONCAT44(uVar29,uVar31) ^ 0x70a765634a649ac3;
  *(byte *)(lVar7 + -0xc35) = *pbVar28 ^ bVar13 ^ (byte)DAT_182670adc;
  uVar14 = DAT_1826708f4;
  *(longlong *)(lVar7 - (uVar22 ^ 0xa1cf8e39)) =
       *(longlong *)(lVar7 + -0x9e0) << ((bVar6 ^ 0xf9) & 0x3f);
  uVar30 = (uint)(bVar13 ^ *(byte *)(lVar7 + -0xc35));
  puVar16 = (uint *)(lVar7 - ((ulonglong)DAT_1826707f0 ^ 0xf49db092));
  *(uint *)(lVar7 + -0x43c) = uVar30 ^ uVar14;
  *(uint *)(DAT_1826707a0 + -0x540) = (uVar19 ^ *puVar16) + (uVar33 ^ 0x9e767d60) ^ DAT_182670980;
  lVar7 = DAT_1826707a0;
  bVar13 = (byte)DAT_1826707f4 ^ 0xae;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0x40044e8c)) =
       uVar30 << (bVar13 & 0x1f) ^ DAT_1826709a8;
  *(uint *)(lVar7 - (uVar18 ^ 0x804206c0)) =
       (*(uint *)(lVar7 + -0x540) ^ DAT_182670980) - (*(uint *)(lVar7 + -0xc0c) ^ DAT_1826709a8) ^
       DAT_182670834;
  puVar2 = (uint *)(lVar7 + -0x68c);
  *(uint *)(lVar7 + -0xc04) =
       (*(uint *)(lVar7 + -0x9ec) ^ uVar9) * (*(uint *)(lVar7 + -0x280) ^ DAT_182670834) ^
       DAT_182670810;
  bVar26 = (byte)(uVar21 >> 0x18);
  *(ulonglong *)(lVar7 + -0xa18) =
       *(ulonglong *)(lVar7 - (uVar18 ^ 0x80420180)) >> ((bVar26 ^ 0x54) & 0x3f);
  uVar10 = DAT_182670940;
  *(uint *)(lVar7 - (uVar17 ^ 0x40044118)) =
       (*(uint *)(lVar7 + -0x43c) ^ uVar14) * (uVar33 ^ 0x5552305c) ^ DAT_182670874;
  uVar19 = DAT_182670994;
  puVar3 = (uint *)(lVar7 + -0x398);
  uVar30 = (*(uint *)(lVar7 - (uVar32 ^ 0xbfbfc6ce)) ^ DAT_182670810) + (*puVar3 ^ DAT_182670874);
  puVar4 = (uint *)(lVar7 + -0x3d4);
  *puVar4 = uVar30 ^ DAT_182670994;
  uVar14 = DAT_1826707f0;
  uVar17 = CONCAT44(uVar21,DAT_1826707f0);
  uVar19 = (uVar19 ^ *puVar4) >> 0x13 ^ DAT_1826709d0;
  *puVar1 = uVar19;
  uVar19 = uVar19 ^ DAT_1826709d0;
  uVar30 = uVar30 * 0x2000 ^ DAT_182670974;
  *puVar2 = uVar30;
  *(uint *)(lVar7 + -0x42c) = (uVar19 | uVar30 ^ DAT_182670974) ^ uVar10;
  *(ulonglong *)(lVar7 + -0x588) =
       (CONCAT44(uVar20,uVar25) ^ 0x2dcfffabe2b9b26f) - (uVar17 ^ 0x103218ed99833d43);
  uVar19 = DAT_1826707f4;
  *(uint *)(lVar7 + -0xc34) =
       (*(uint *)(lVar7 + -0x9ec) ^ uVar9) + (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) ^
       DAT_182670a9c;
  uVar12 = DAT_182670924;
  bVar6 = DAT_1826708f8;
  lVar8 = DAT_1826707a0;
  *(uint *)(lVar7 + -0x814) =
       *(uint *)(lVar7 - ((ulonglong)uVar19 ^ 0xcacab38b)) ^ DAT_1826708fc ^ DAT_182670a9c;
  uVar30 = DAT_1826708cc;
  uVar9 = DAT_18267088c;
  uVar17 = (ulonglong)DAT_182670a00;
  *(uint *)(lVar7 - ((ulonglong)uVar14 ^ 0xf49db7de)) =
       *(uint *)(lVar7 - ((ulonglong)uVar19 ^ 0xcacabb93)) ^ DAT_182670a24 ^ uVar10;
  *(uint *)(lVar8 + -0x14) = uVar9 ^ DAT_1826708fc ^ *(uint *)(lVar8 + -0x814);
  *(uint *)(lVar8 + -0xa34) = uVar30 ^ DAT_182670a24 ^ *(uint *)(lVar8 + -0x2d4);
  *(ulonglong *)(lVar8 + -0xf0) =
       (CONCAT44(uVar23,uVar33) ^ 0xc36727423a76b256) +
       (CONCAT44(uVar20,uVar25) ^ 0x4fa09728090971a3);
  *(ulonglong *)(lVar8 - (uVar18 ^ 0x804200b8)) =
       (CONCAT44(uVar23,uVar25) ^ 0x80420440a1cf8543) + *(longlong *)(lVar8 + -0x30) ^ uVar17;
  *(uint *)(lVar8 + -0x598) = (*(uint *)(lVar8 + -0xa34) ^ uVar30) << 4;
  uVar20 = DAT_1826707e8;
  uVar24 = (ulonglong)DAT_1826707e8;
  *(byte *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x40044499)) =
       *(byte *)(*(ulonglong *)(lVar8 + -0x4f8) ^ uVar17) ^ bVar6 ^ (byte)DAT_182670adc;
  uVar14 = DAT_1826707f0;
  lVar7 = DAT_1826707a0;
  uVar19 = (uint)(*(byte *)(DAT_1826707a0 - (uVar27 ^ 0x5552365a)) ^ bVar6);
  uVar17 = (ulonglong)DAT_1826707f0;
  *(uint *)(DAT_1826707a0 + -0x540) = uVar19 ^ uVar12;
  uVar19 = uVar19 << 0x11 ^ DAT_182670a70;
  *(ulonglong *)(lVar7 + -0x890) =
       (CONCAT44(uVar33,uVar20) ^ 0x2d1696c9f9aedeb1) >>
       ((byte)*(undefined8 *)(lVar7 - (uVar17 ^ 0xf49dbf12)) & 0x3f);
  *(uint *)(lVar7 + -0xc0c) =
       (*(uint *)(lVar7 + -0xa34) ^ uVar30) + (uVar33 ^ 0x9e767d60) ^ DAT_182670a48;
  *(uint *)(lVar7 - (uVar32 ^ 0xbfbfc84a)) = uVar19;
  uVar19 = DAT_1826708a8;
  uVar30 = *(uint *)(lVar7 + -0x280) ^ DAT_182670a70;
  *(ulonglong *)(lVar7 + -0x660) =
       CONCAT44(uVar31,DAT_1826707f4) ^ CONCAT44(uVar29,uVar23) ^ 0xbdea731818d21978;
  *(uint *)(lVar7 + -0x43c) = (*(uint *)(lVar7 + -0xc0c) ^ DAT_182670a48) - uVar30 ^ DAT_182670a04;
  uVar15 = DAT_182670948;
  *(uint *)(lVar7 - (uVar24 ^ 0x40044e84)) =
       (*(uint *)(lVar7 - (uVar27 ^ 0x5552347f)) ^ DAT_182670a04) *
       (*(uint *)(lVar7 - ((ulonglong)uVar14 ^ 0xf49db51e)) ^ uVar9) ^ uVar19;
  *(uint *)(lVar7 - (uVar32 ^ 0xbfbfc952)) =
       (*(uint *)(lVar7 + -0x540) ^ uVar12) * (DAT_1826707c8 ^ 0xa1cf8543) ^ uVar15;
  uVar14 = DAT_182670a5c;
  uVar19 = (*puVar3 ^ uVar15) + (uVar19 ^ *(uint *)(lVar7 + -0xc04));
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       *(ulonglong *)(DAT_1826707a0 + -0x4c8) >> ((bVar26 ^ 0x62) & 0x3f);
  bVar6 = (byte)DAT_1826707c8;
  *puVar4 = uVar19 ^ uVar14;
  *puVar2 = uVar19 << ((bVar6 ^ 0x44) & 0x1f) ^ _DAT_182670ad4;
  lVar7 = DAT_1826707a0;
  uVar14 = uVar19 >> 0x13 ^ DAT_182670804;
  *puVar1 = uVar14;
  *(uint *)(DAT_1826707a0 - (uVar27 ^ 0x555239af)) =
       (*(uint *)(DAT_1826707a0 - (uVar18 ^ 0x804202cc)) ^ _DAT_182670ad4 | uVar14 ^ DAT_182670804)
       ^ DAT_182670844;
  uVar14 = DAT_1826707f0;
  *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707f0 ^ 0xf49db6ba)) =
       (CONCAT44(uVar21,uVar31) ^ 0xed0ad644d093077d) <<
       ((byte)*(undefined8 *)(lVar7 + -0x400) & 0x3f);
  *(uint *)(lVar7 - ((ulonglong)uVar20 ^ 0x40044eb4)) =
       (*(uint *)(lVar7 + -0x14) ^ uVar9) + (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) ^ uVar10;
  uVar20 = *(uint *)(lVar7 + -0xc34) ^ DAT_18267091c ^ uVar10;
  *(uint *)(lVar7 + -0x814) = *(uint *)(lVar7 + -0x9ec) ^ DAT_182670a80 ^ DAT_182670844;
  *(uint *)(lVar7 + -0x42c) = uVar20;
  uVar30 = DAT_182670880;
  uVar9 = DAT_182670878;
  uVar19 = DAT_18267085c;
  bVar6 = (byte)DAT_18267084c;
  uVar24 = (ulonglong)DAT_18267085c;
  *(uint *)(lVar7 + -0x2d4) = uVar20 ^ DAT_182670880 ^ DAT_18267091c;
  lVar8 = DAT_1826707a0;
  *(uint *)(lVar7 + -0x598) = *(uint *)(lVar7 - (uVar27 ^ 0x55523857)) ^ uVar9 ^ DAT_182670a80;
  uVar20 = DAT_1826707e8;
  *(ulonglong *)(lVar8 - (uVar22 ^ 0xa1cf8701)) =
       (CONCAT44(uVar25,uVar14) ^ 0xa1cf8549f49db50a) * 0x20 +
       (CONCAT44(uVar21,DAT_1826707e8) ^ 0x4004428040044295) + *(longlong *)(lVar8 + -0x30) ^ uVar24
  ;
  uVar17 = (ulonglong)DAT_182670900;
  *(byte *)(lVar8 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar8 + -0x248) ^ uVar24) ^ bVar6 ^ (byte)DAT_182670adc;
  *(byte *)(lVar8 - (uVar32 ^ 0xbfbfccd3)) =
       *(byte *)(*(ulonglong *)(lVar8 + -0x2e8) ^ uVar17) ^ (byte)DAT_182670adc;
  uVar14 = DAT_18267087c;
  uVar31 = (uint)(bVar6 ^ *(byte *)(lVar8 + -0xc35));
  uVar12 = DAT_1826707a8 ^ DAT_1826707b4;
  *(uint *)(lVar8 + -0xa34) = uVar31 ^ DAT_18267087c;
  *(uint *)(lVar8 + -0xc0c) = uVar12 ^ 0x7c3025d;
  uVar12 = uVar31 << (bVar13 & 0x1f) ^ DAT_182670890;
  uVar31 = (uVar9 ^ *(uint *)(lVar8 + -0x598)) + (DAT_1826707f4 ^ 0x1eef29c) ^ DAT_182670a2c;
  *(uint *)(lVar8 + -0x280) = uVar31;
  uVar31 = uVar31 ^ DAT_182670a2c;
  *(uint *)(lVar8 + -0x43c) = uVar12;
  uVar9 = DAT_182670a7c;
  *(uint *)(lVar8 - ((ulonglong)uVar20 ^ 0x400447c0)) =
       uVar31 - (uVar12 ^ DAT_182670890) ^ DAT_182670864;
  uVar20 = DAT_1826707f0;
  uVar17 = (ulonglong)DAT_1826707f0;
  uVar24 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar8 + -0x2b0) =
       *(ulonglong *)(CONCAT44(uVar10,uVar10) ^ *(ulonglong *)(lVar8 + -0x370)) ^ uVar24;
  lVar7 = DAT_1826707a0;
  *(uint *)(lVar8 + -0xc04) =
       (*(uint *)(lVar8 - (uVar17 ^ 0xf49db04a)) ^ DAT_182670864) *
       (uVar30 ^ *(uint *)(lVar8 + -0x2d4)) ^ uVar9;
  *(uint *)(lVar7 - (uVar27 ^ 0x555233db)) =
       (*(uint *)(lVar8 + -0xa34) ^ uVar14) * (uVar20 ^ 0xf49db51f) ^ DAT_182670988;
  uVar20 = DAT_1826708c0;
  *puVar4 = (*puVar3 ^ DAT_182670988) + (uVar9 ^ *(uint *)(lVar7 + -0xc04)) ^ DAT_1826708c0;
  uVar14 = (*(uint *)(lVar7 - (uVar22 ^ 0xa1cf869d)) ^ uVar20) << 0xd ^ _DAT_1826708bc;
  *puVar2 = uVar14;
  uVar14 = uVar14 ^ _DAT_1826708bc;
  uVar20 = (uVar20 ^ *puVar4) >> ((bVar26 ^ 0x53) & 0x1f) ^ DAT_182670af4;
  *puVar1 = uVar20;
  uVar20 = uVar20 ^ DAT_182670af4;
  *(ulonglong *)(lVar7 + -0xce0) =
       (CONCAT44(uVar21,uVar33) ^ 0x3949d30d2ae87463) -
       (CONCAT44(uVar23,uVar23) ^ 0x3cbd6262b663730e);
  *(uint *)(lVar7 + -0x14) = (uVar20 | uVar14) ^ uVar15;
  *(ulonglong *)(lVar7 + -0x220) = *(ulonglong *)(lVar7 + -0x5c0) | *(ulonglong *)(lVar7 + -0x3b0);
  uVar12 = DAT_182670ab4;
  uVar20 = DAT_1826707f4;
  uVar21 = DAT_1826707e8;
  uVar17 = (ulonglong)DAT_1826707e8;
  *(uint *)(lVar7 - (uVar32 ^ 0xbfbfc6fe)) =
       (*(uint *)(lVar7 - ((ulonglong)DAT_1826707f4 ^ 0xcacabd6b)) ^ uVar30) +
       (*(uint *)(lVar7 + -0xb54) ^ DAT_182670848) ^ uVar19;
  uVar19 = *(uint *)(lVar7 + -0xc34) ^ DAT_182670978 ^ uVar19;
  *(uint *)(lVar7 + -0x9ec) = uVar19;
  lVar8 = DAT_1826707a0;
  uVar14 = uVar19 ^ uVar12 ^ DAT_182670978;
  uVar15 = *(uint *)(lVar7 - (uVar17 ^ 0x40044294)) ^ DAT_182670a4c ^ uVar15;
  *(uint *)(lVar7 + -0x42c) = uVar15;
  *(uint *)(lVar7 + -0x814) = uVar14;
  uVar14 = DAT_182670ac0;
  uVar17 = (ulonglong)DAT_18267099c;
  *(uint *)(lVar8 + -0xc0c) = uVar15 ^ DAT_182670ac0 ^ DAT_182670a4c;
  lVar7 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xdb8) =
       (CONCAT44(uVar29,uVar20) ^ 0xcacabfbfcacabfbf) * 0x20 +
       (CONCAT44(uVar23,uVar25) ^ 0x80420440a1cf8549) + *(longlong *)(DAT_1826707a0 + -0x30) ^
       uVar17;
  *(ulonglong *)(lVar7 - (uVar27 ^ 0x55523653)) =
       *(ulonglong *)(lVar7 - ((ulonglong)DAT_1826707e4 ^ 0x8a7cf720)) >>
       (((byte)uVar33 ^ 0x7e) & 0x3f);
  uVar9 = DAT_182670a98;
  uVar19 = DAT_18267093c;
  bVar6 = (byte)DAT_1826708b0;
  bVar13 = *(byte *)(*(ulonglong *)(lVar7 - (uVar32 ^ 0xbfbfc772)) ^ uVar17) ^ (byte)DAT_1826708b0 ^
           (byte)DAT_182670adc;
  uVar20 = DAT_1826707c8 ^ 0x6aebc86a;
  *(byte *)(lVar7 + -0x619) = bVar13;
  uVar20 = (uVar14 ^ *(uint *)(lVar7 + -0xc0c)) + uVar20 ^ DAT_1826708ac;
  *(uint *)(lVar7 + -0x598) = (bVar13 ^ bVar6) ^ uVar19;
  *(uint *)(lVar7 + -0x280) = uVar20;
  uVar14 = DAT_182670920;
  uVar20 = DAT_1826707f0;
  uVar21 = (uVar19 ^ *puVar16) << (((byte)uVar21 ^ 0x91) & 0x1f);
  *(ulonglong *)(lVar7 + -0x548) =
       CONCAT44(DAT_1826707b0,uVar23) ^ CONCAT44(uVar29,uVar25) ^ 0xde11decb31852de2;
  *(uint *)(lVar7 + -0x43c) = uVar21 ^ uVar14;
  uVar21 = (*(uint *)(lVar7 - ((ulonglong)uVar20 ^ 0xf49db78a)) ^ DAT_1826708ac) - uVar21 ^
           DAT_182670ac4;
  *(uint *)(lVar7 + -0x540) = uVar21;
  uVar29 = (uVar21 ^ DAT_182670ac4) * (uVar12 ^ *(uint *)(lVar7 + -0x814)) ^ DAT_18267081c;
  *(uint *)(lVar7 + -0xa34) = uVar29;
  uVar21 = DAT_1826707f4;
  uVar29 = uVar29 ^ DAT_18267081c;
  uVar14 = (*(uint *)(lVar7 - (uVar18 ^ 0x804201d8)) ^ uVar19) * (DAT_1826707f4 ^ 0xcacabfbf);
  uVar18 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *(uint *)(lVar7 + -0xc04) = uVar14 ^ uVar9;
  uVar14 = uVar14 + uVar29 ^ DAT_182670a24;
  *(ulonglong *)(lVar7 + -0xac0) = *(ulonglong *)(uVar18 ^ *(ulonglong *)(lVar7 + -0x7b0)) ^ uVar24;
  *(undefined8 *)(lVar7 + -0x7b0) = 0xccfb3fbbbc6b5ebf;
  *puVar3 = uVar14;
  uVar14 = DAT_182670a38;
  *(ulonglong *)(lVar7 - (uVar22 ^ 0xa1cf8521)) =
       *(longlong *)(lVar7 + -0x9c8) - (CONCAT44(uVar25,uVar25) ^ 0xc1aadffbc51ece1);
  uVar25 = (*puVar3 ^ DAT_182670a24) << (((byte)uVar20 ^ 7) & 0x1f);
  uVar21 = (*puVar3 ^ DAT_182670a24) >> (((byte)uVar21 ^ 0xac) & 0x1f) ^ DAT_1826709d4;
  *puVar2 = uVar21;
  uVar21 = (uVar21 ^ DAT_1826709d4 | uVar25) ^ DAT_182670a78;
  *puVar4 = uVar25 ^ uVar14;
  *puVar1 = uVar21;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar11 * 4) = uVar5 ^ uVar23;
  return;
}



############ FUN_ 180ca46b0 size=5762 ############

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

void FUN_180ca46b0(void)

{
  ulonglong *puVar1;
  undefined4 *puVar2;
  uint uVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  byte bVar18;
  byte bVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  byte local_res18;
  
  uVar13 = DAT_182670968;
  uVar10 = DAT_1826707e4;
  uVar8 = DAT_1826707c4;
  lVar4 = DAT_1826707a0;
  uVar31 = (ulonglong)DAT_1826707f4;
  uVar22 = (ulonglong)DAT_1826707e4;
  uVar27 = (ulonglong)DAT_1826707c4;
  uVar36 = DAT_1826707c4 * DAT_1826707e4;
  uVar20 = (DAT_1826707f4 << 0x10 | DAT_1826707f4 & 0xff00) << 8 | DAT_1826707f4 >> 8 & 0xff00 |
           DAT_1826707f4 >> 0x18;
  uVar38 = (ulonglong)uVar20;
  uVar16 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar20 ^ 0x3aed8c0e) + (longlong)DAT_182670db4) ^
           DAT_1826707f4;
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670db4) ^ DAT_1826707e4;
  uVar42 = (ulonglong)uVar36;
  puVar40 = (ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707c4 ^ 0xde3ce4f9));
  bVar19 = (byte)DAT_1826707f4;
  uVar34 = CONCAT44(DAT_18267088c,DAT_18267088c);
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  uVar3 = DAT_1826707f4 >> 0x18;
  uVar28 = CONCAT44(DAT_182670940,DAT_182670940);
  DAT_1826707b0 = uVar20;
  DAT_1826707c8 = uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = (uVar34 ^ *puVar40) >> ((bVar19 ^ 0x3f) & 0x3f) ^ uVar28;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar27 ^ 0xde3cef99)) =
       (uVar34 ^ *puVar1) << (((byte)uVar3 ^ 0x3d) & 0x3f) ^ uVar32;
  uVar13 = DAT_1826708e4;
  uVar28 = uVar32 ^ *(ulonglong *)(lVar4 + -0x658) | uVar28 ^ *(ulonglong *)(lVar4 + -0x1b8);
  uVar45 = CONCAT44(DAT_182670848,DAT_182670848);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar28 ^ uVar45;
  uVar21 = CONCAT44(uVar13,uVar13);
  uVar25 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar4 - (uVar42 ^ 0x998459ac)) =
       (uVar21 ^ *(ulonglong *)(lVar4 + -0x890)) - uVar28 ^ uVar25;
  uVar14 = DAT_1826708d0;
  uVar33 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar43 = CONCAT44(DAT_182670954,DAT_182670954);
  uVar29 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  bVar18 = (byte)uVar10;
  uVar28 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x68ceb5a)) ^ uVar43 ^ uVar33 ^
           *(ulonglong *)(lVar4 + -0xb70) ^ uVar29;
  uVar34 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  *(ulonglong *)(lVar4 + -0xce0) = uVar28;
  lVar5 = DAT_1826707a0;
  puVar30 = (ulonglong *)(lVar4 - (uVar27 ^ 0xde3ce8d9));
  *puVar30 = (uVar33 ^ uVar28) >> ((bVar18 ^ 0xa9) & 0x3f) ^ uVar34;
  puVar1 = (ulonglong *)(lVar5 + -0xf0);
  uVar37 = CONCAT44(DAT_182670a10,DAT_182670a10);
  *puVar1 = (uVar33 ^ *(ulonglong *)(lVar5 + -0xce0)) << 0x1b ^ uVar37;
  uVar13 = DAT_182670810;
  uVar32 = CONCAT44(DAT_182670adc,DAT_182670adc);
  uVar28 = *(ulonglong *)(lVar5 - (uVar27 ^ 0xde3ce931)) ^ uVar37 | *puVar30 ^ uVar34;
  *(ulonglong *)(lVar5 + -0x6b8) = uVar28 ^ uVar32;
  uVar26 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 - (uVar38 ^ 0x3aed8826)) =
       (uVar43 ^ *(ulonglong *)(lVar5 + -0xb70)) - uVar28 ^ uVar26;
  uVar13 = DAT_1826709b4;
  uVar34 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar32 = *(ulonglong *)(lVar5 - ((ulonglong)uVar20 ^ 0x3aed8abe)) ^ uVar25 ^
           *(ulonglong *)(lVar5 + -0x220) ^ uVar34 ^ uVar32;
  *(ulonglong *)(lVar5 + -0x9c8) = uVar32;
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar5 + -0xbb0) = (uVar32 ^ uVar34) >> ((bVar19 ^ 0x2d) & 0x3f) ^ uVar28;
  puVar30 = (ulonglong *)(lVar5 - (uVar42 ^ 0x99845244));
  uVar39 = CONCAT44(DAT_182670a40,DAT_182670a40);
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xed3a034c)) = (*puVar30 ^ uVar34) << 0x29 ^ uVar39;
  uVar24 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar28 = *(ulonglong *)(lVar5 + -0xbb0) ^ uVar28 | uVar39 ^ *(ulonglong *)(lVar5 + -0x5c0);
  *(ulonglong *)(lVar5 + -0x7d8) = uVar28 ^ uVar24;
  uVar23 = CONCAT44(DAT_182670930,DAT_182670930);
  *(ulonglong *)(lVar5 + -0x588) =
       (uVar37 ^ *puVar1) >> ((*(byte *)(lVar5 + -0x118) ^ (byte)uVar14) & 0x3f);
  uVar6 = DAT_18267083c;
  uVar34 = (ulonglong)DAT_18267083c;
  *(ulonglong *)(lVar5 - (uVar22 ^ 0xed3a007c)) =
       (uVar25 ^ *(ulonglong *)(lVar5 + -0x220)) - uVar28 ^ uVar23;
  uVar13 = DAT_1826709f4;
  uVar3 = DAT_1826707dc;
  uVar35 = CONCAT44(uVar6,uVar6);
  *puVar40 = uVar45 ^ *(ulonglong *)(DAT_1826707a0 + -0x420) ^ uVar35 ^ uVar26 ^
             *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  lVar4 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar28 = *(ulonglong *)(DAT_1826707a0 + -0xb70);
  uVar32 = *(ulonglong *)(DAT_1826707a0 + -0xd38);
  puVar2 = (undefined4 *)(DAT_1826707a0 + -0x540);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) =
       (*(ulonglong *)(DAT_1826707a0 + -0xd38) >> 0x20 ^ uVar34) >> 8 ^ uVar37;
  *(int *)(lVar4 + -0xc0c) = 0x2d7e4ac3 << ((byte)*puVar2 & 0x1f);
  uVar34 = (ulonglong)DAT_1826707ac;
  uVar25 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar4 + -0x658) = (uVar32 ^ uVar35) << ((bVar19 ^ 0x22) & 0x3f) ^ uVar25;
  *(ulonglong *)(lVar4 - (uVar34 ^ 0x3e16b4b1)) =
       (uVar43 ^ uVar28) + (*(ulonglong *)(lVar4 + -0x420) ^ uVar26);
  uVar32 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  uVar34 = (*(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0xbc21384e)) ^ uVar25 |
           *(ulonglong *)(lVar4 + -0x1b8) ^ uVar37) ^ uVar32;
  uVar37 = CONCAT44(DAT_1826708d4,DAT_1826708d4);
  *(ulonglong *)(lVar4 + -0x660) = uVar34;
  *(ulonglong *)(lVar4 + -0xce0) =
       (*(ulonglong *)(lVar4 + -0x420) ^ uVar26) -
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0xbc213876)) ^ uVar32) ^ uVar37;
  uVar14 = DAT_182670a58;
  uVar15 = DAT_182670a28;
  uVar25 = CONCAT44(DAT_1826709b8,DAT_1826709b8);
  uVar28 = *(ulonglong *)(lVar4 + -0x6f0);
  bVar19 = (byte)uVar8;
  uVar43 = CONCAT44(DAT_182670a28,DAT_182670a28);
  uVar26 = uVar34 ^ uVar28 ^ uVar25 ^ uVar32 ^ uVar23;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar26;
  uVar13 = DAT_1826709cc;
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar32 = (uVar26 ^ uVar25) >> ((bVar19 ^ 0xf5) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar32 ^ uVar43;
  *(ulonglong *)(lVar4 + -0xbb0) = (uVar26 ^ uVar25) << ((bVar19 ^ 0xcd) & 0x3f) ^ uVar34;
  lVar4 = DAT_1826707a0;
  uVar41 = CONCAT44(uVar13,uVar13);
  uVar32 = *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xed3a0d3c)) ^ uVar34 | uVar32;
  uVar25 = CONCAT44(DAT_182670978,DAT_182670978);
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar32 ^ uVar41;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0xbcbd9cac)) =
       (uVar28 ^ uVar23) - uVar32 ^ uVar25;
  uVar34 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xed3a067c)) =
       *(ulonglong *)(lVar4 + -0xce0) ^ *(ulonglong *)(lVar4 + -0x7d8) ^ uVar34 ^ uVar37 ^ uVar24;
  uVar14 = DAT_182670974;
  uVar6 = DAT_1826707e0;
  uVar28 = *puVar1;
  bVar19 = (byte)DAT_1826707b8;
  *(ulonglong *)(lVar4 + -0x220) =
       (*(ulonglong *)(lVar4 - (uVar31 ^ 0x68ce8fa)) ^ uVar39) <<
       ((*(byte *)(lVar4 + -0x9c8) ^ (byte)uVar15) & 0x3f);
  uVar13 = DAT_182670948;
  uVar32 = (uVar34 ^ uVar28) >> ((bVar19 ^ 0x6f) & 0x3f);
  uVar28 = (uVar34 ^ *puVar1) << 7;
  *(ulonglong *)(lVar4 + -0xd38) = uVar28 ^ CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar32 ^ uVar34;
  uVar11 = DAT_1826707e8;
  uVar34 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0xbfffb56d)) = (uVar28 | uVar32) ^ uVar34;
  uVar13 = DAT_182670acc;
  *(ulonglong *)(lVar4 + -0xb70) =
       (CONCAT44(DAT_1826707bc,DAT_1826707bc) ^ 0xfea65aaa6210c8fc) -
       (*(ulonglong *)(lVar4 + -0xce0) ^ uVar37);
  uVar45 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x1b8) =
       (*(ulonglong *)(lVar4 + -0xce0) ^ uVar37) -
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0x856b7cb)) ^ uVar34) ^ uVar45;
  uVar12 = DAT_1826707ec;
  uVar9 = DAT_1826707cc;
  uVar23 = CONCAT44(DAT_182670910,DAT_182670910);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x68ceb62)) =
       *(ulonglong *)(lVar4 - ((ulonglong)uVar11 ^ 0x72a681a2)) ^ uVar23 ^ uVar34 ^
       *(ulonglong *)(lVar4 + -0x890) ^ uVar25;
  uVar7 = DAT_1826707c0;
  uVar32 = CONCAT44(DAT_182670840,DAT_182670840);
  *(ulonglong *)(lVar4 + -0x420) =
       (uVar23 ^ *(ulonglong *)(lVar4 + -0x658)) >> (((byte)uVar9 ^ 0x4f) & 0x3f) ^ uVar32;
  uVar13 = DAT_182670ae8;
  uVar3 = DAT_1826707b4;
  puVar40 = (ulonglong *)(lVar4 - (uVar27 ^ 0xde3cefa1));
  uVar37 = (ulonglong)DAT_1826707b4;
  *puVar40 = CONCAT44(uVar7,uVar12) ^ 0x2032aa74efa09012 | *(ulonglong *)(lVar4 + -0x118) ^ uVar25;
  lVar4 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 + -0x6b8) =
       (uVar23 ^ *(ulonglong *)(DAT_1826707a0 + -0x658)) << (((byte)uVar3 ^ 0xf3) & 0x3f) ^ uVar28;
  *(ulonglong *)(DAT_1826707a0 - (uVar42 ^ 0x9984503c)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar12 ^ 0xbc2138ae)) ^ uVar28) <<
       ((bVar19 ^ 0x4f) & 0x3f);
  uVar13 = DAT_182670ae4;
  uVar26 = CONCAT44(DAT_182670844,DAT_182670844);
  *(ulonglong *)(DAT_1826707a0 + -0x6f0) =
       (uVar32 ^ *(ulonglong *)(DAT_1826707a0 + -0x420) |
       *(ulonglong *)(DAT_1826707a0 + -0x6b8) ^ uVar28) ^ uVar26;
  lVar4 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0x3aed8bde)) =
       (*(ulonglong *)(DAT_1826707a0 + -0x118) ^ uVar25) -
       (CONCAT44(DAT_1826707f8,DAT_1826707f8) ^ *(ulonglong *)(DAT_1826707a0 + -0x68)) ^ uVar32;
  uVar13 = DAT_182670aa4;
  *(ulonglong *)(lVar4 + -0x5c0) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0xdf7efb99)) ^ uVar23) << (((byte)uVar6 ^ 0xc4) & 0x3f);
  uVar44 = CONCAT44(uVar13,uVar13);
  uVar28 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0xbcbd947c)) =
       (uVar32 ^ *(ulonglong *)(lVar4 + -0x7d8)) -
       (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d0 ^ 0xbcbd9b44)) ^ uVar26) ^ uVar44;
  uVar13 = DAT_182670a00;
  uVar23 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  uVar39 = CONCAT44(DAT_182670854,DAT_182670854);
  *(ulonglong *)(lVar4 + -0x220) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0xbf5b0d0e)) ^ uVar23) +
       (CONCAT44(uVar9,uVar10) ^ 0xcbbc66f25aa26b90) ^ uVar39;
  uVar3 = DAT_182670ad0;
  uVar27 = CONCAT44(uVar13,uVar13);
  uVar32 = (ulonglong)DAT_182670ad0;
  uVar24 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *puVar1 = (uVar26 ^ *(ulonglong *)(lVar4 + -0x6f0)) -
            (*(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0x3e16be01)) ^ uVar39) ^ uVar27;
  uVar10 = DAT_1826707d4;
  *(ulonglong *)(lVar4 + -0x4c8) =
       *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707dc ^ 0xbc213b9e)) ^ uVar24 ^ uVar45 ^
       *(ulonglong *)(lVar4 + -0x1b8) ^ uVar41;
  lVar5 = DAT_1826707a0;
  *(int *)(lVar4 - (uVar42 ^ 0x99845c68)) = *(int *)(lVar4 + -0xcec) * *(int *)(lVar4 + -0x43c);
  uVar34 = CONCAT44(DAT_182670a88,DAT_182670a88);
  uVar28 = CONCAT44(uVar10,DAT_1826707bc);
  *(ulonglong *)(lVar5 + -0xd38) =
       ((ulonglong)(uVar3 >> 0x10) | uVar32 << 0x10) ^ *(ulonglong *)(lVar5 + -0x4c8) >> 0x10 ^
       uVar34;
  *(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707dc ^ 0xbc213566)) =
       (uVar28 ^ 0x8283e1a3279da2f1) - (CONCAT44(uVar20,DAT_1826707cc) ^ 0x960678157dbaa35e);
  uVar6 = DAT_1826707ac;
  uVar3 = DAT_1826707a8;
  uVar28 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar5 + -0xce0) =
       (uVar24 ^ *(ulonglong *)(lVar5 + -0x4c8)) << (((byte)DAT_1826707b8 ^ 0x66) & 0x3f) ^ uVar28;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0x890) =
       CONCAT44(uVar12,uVar6) ^ CONCAT44(uVar3,DAT_1826707e0) ^ 0xb0471c72045f943b;
  lVar5 = DAT_1826707a0;
  uVar41 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d8 ^ 0xe9c1d2dc)) ^ uVar28 |
           *(ulonglong *)(lVar4 + -0xd38) ^ uVar34;
  *(ulonglong *)(lVar4 + -0x660) = uVar41 ^ uVar29;
  uVar6 = DAT_1826707cc;
  lVar4 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670980,DAT_182670980);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) =
       (*(ulonglong *)(lVar5 - ((ulonglong)DAT_1826707cc ^ 0x156a72b1)) ^ uVar26) -
       (CONCAT44(uVar12,uVar3) ^ 0xdb5ae9e1644ef45b);
  uVar13 = DAT_18267095c;
  uVar28 = (uVar45 ^ *(ulonglong *)(lVar4 + -0x1b8)) -
           (CONCAT44(DAT_182670a9c,DAT_182670a9c) ^ *(ulonglong *)(lVar4 + -0x610));
  *(ulonglong *)(lVar4 + -0x420) = uVar28 ^ uVar24;
  uVar14 = DAT_182670a48;
  uVar26 = CONCAT44(uVar13,uVar13);
  uVar32 = uVar28 - uVar41 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar32;
  uVar13 = DAT_18267085c;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x118) =
       (CONCAT44(uVar8,uVar36) ^ 0x21c3163e667ba474) - (*(ulonglong *)(lVar4 + -0x400) ^ uVar34) ^
       uVar34;
  uVar3 = DAT_182670958;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar28 = (ulonglong)DAT_1826707ac;
  uVar45 = (ulonglong)DAT_182670958;
  *(ulonglong *)(lVar4 + -0x5c0) =
       (*(ulonglong *)(lVar4 - (uVar37 ^ 0xdf7efcd9)) ^ uVar34) + uVar41 ^ uVar29;
  uVar13 = DAT_182670868;
  uVar34 = (ulonglong)DAT_1826707e8;
  uVar37 = CONCAT44(uVar3,uVar3);
  uVar28 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x3e16b9e1)) ^
           *(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x156a7d89)) ^ uVar37 ^ uVar29 ^ uVar44;
  *(ulonglong *)(lVar4 + -0x658) = uVar28;
  uVar14 = DAT_182670884;
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar28 = (uVar37 ^ uVar28) << (((byte)DAT_1826707dc ^ 0x36) & 0x3f);
  uVar45 = *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x72a686e2)) >> 0x20 ^ uVar29 ^ uVar45;
  *(ulonglong *)(DAT_1826707a0 + -0x588) = uVar28 ^ CONCAT44(DAT_182670aa0,DAT_182670aa0);
  uVar13 = DAT_182670a70;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar28 = uVar28 | uVar29 ^ uVar45;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar45;
  *(ulonglong *)(lVar4 + -0xb70) = uVar28 ^ uVar37;
  uVar3 = DAT_1826707d8;
  uVar34 = (ulonglong)DAT_182670afc;
  uVar45 = CONCAT44(uVar13,uVar13);
  uVar29 = CONCAT44(DAT_182670afc,DAT_182670afc);
  *(ulonglong *)(lVar4 + -0x4c8) = (uVar44 ^ *(ulonglong *)(lVar4 + -0x9c8)) - uVar28 ^ uVar45;
  uVar13 = DAT_1826707f0;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar3 ^ 0xe9c1d6ac)) =
       uVar29 ^ uVar26 ^ uVar32 ^ uVar27 ^ *puVar1;
  *(ulonglong *)(lVar4 + -0xd38) =
       CONCAT44(uVar11,DAT_1826707e0) ^ CONCAT44(uVar9,uVar13) ^ 0x981d0d6de58d55a0;
  bVar19 = (byte)DAT_1826707e8;
  *(ulonglong *)(lVar4 + -0xce0) = *(ulonglong *)(lVar4 + -0x890) >> 0x20 ^ uVar33 ^ uVar34;
  uVar28 = (ulonglong)DAT_1826707ec;
  *(ulonglong *)(lVar4 - (uVar38 ^ 0x3aed8af6)) =
       (*(ulonglong *)(lVar4 + -0x890) ^ uVar29) << ((bVar19 ^ 0x9a) & 0x3f) ^ uVar35;
  uVar14 = DAT_182670a64;
  uVar34 = CONCAT44(DAT_182670a7c,DAT_182670a7c);
  uVar28 = *(ulonglong *)(lVar4 - (uVar28 ^ 0xbc2138e6)) ^ uVar35 |
           *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xbd5c459a)) ^ uVar33;
  *(uint *)(lVar4 + -0xa34) = *(uint *)(lVar4 + -0x814) >> ((byte)*(uint *)(lVar4 + -0x814) & 0x1f);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar28 ^ uVar34;
  uVar32 = (ulonglong)DAT_182670b00;
  uVar27 = CONCAT44(uVar14,uVar14);
  uVar29 = CONCAT44(DAT_182670b00,DAT_182670b00);
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707ac ^ 0x3e16ba31)) =
       (uVar26 ^ *(ulonglong *)(lVar4 + -0x6b8)) - uVar28 ^ uVar27;
  uVar14 = DAT_182670828;
  uVar28 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x68ce68a)) ^ uVar29 ^ uVar34 ^ uVar45 ^
           *(ulonglong *)(lVar4 + -0x4c8);
  *(ulonglong *)(lVar4 + -0x1b8) = uVar28;
  uVar26 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 + -0x420) = (uVar28 >> 0x20 ^ uVar32) >> 0x1a ^ uVar26;
  uVar14 = DAT_182670964;
  lVar4 = DAT_1826707a0;
  uVar32 = (uVar29 ^ uVar28) << (((byte)uVar3 ^ 0x3a) & 0x3f);
  uVar28 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(DAT_1826707a0 + -0x660) = uVar32 ^ CONCAT44(DAT_182670938,DAT_182670938);
  uVar34 = CONCAT44(uVar14,uVar14);
  uVar32 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x3e16b801)) ^ uVar26 | uVar32;
  *(ulonglong *)(lVar4 + -0x118) = uVar32 ^ uVar34;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar10 ^ 0xbd5c4cba)) =
       (*(ulonglong *)(lVar4 - (uVar22 ^ 0xed3a0244)) ^ uVar45) - uVar32 ^ uVar43;
  uVar6 = DAT_1826707cc;
  uVar22 = (ulonglong)DAT_1826707cc;
  uVar26 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  uVar28 = (ulonglong)DAT_182670a1c;
  uVar32 = *(ulonglong *)(lVar4 + -0xb70) ^ uVar27 ^ uVar37 ^ uVar23 ^
           *(ulonglong *)(lVar4 + -0x610);
  uVar3 = DAT_182670a1c >> 0x16;
  *(ulonglong *)(lVar4 + -0x658) = uVar32;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707a8 ^ 0x856b883)) =
       ((ulonglong)uVar3 | uVar28 << 10) ^ uVar32 >> 0x16 ^ uVar26;
  *(ulonglong *)(lVar4 + -0x588) =
       CONCAT44(uVar7,uVar6) ^ uVar35 ^ *(ulonglong *)(lVar4 + -0x6f0) ^ 0xcc0c3bcc60a9070b;
  uVar14 = DAT_1826709c8;
  uVar28 = (uVar23 ^ *(ulonglong *)(lVar4 + -0x658)) << (((byte)uVar10 ^ 0x50) & 0x3f);
  *(ulonglong *)(lVar4 + -0x9c8) = uVar28 ^ CONCAT44(DAT_182670a5c,DAT_182670a5c);
  lVar5 = DAT_1826707a0;
  uVar37 = CONCAT44(uVar14,uVar14);
  uVar28 = *(ulonglong *)(lVar4 - (uVar31 ^ 0x68ceae2)) ^ uVar26 | uVar28;
  uVar29 = (ulonglong)DAT_1826707dc;
  uVar23 = uVar28 ^ uVar37;
  *puVar1 = uVar23;
  uVar32 = CONCAT44(DAT_182670908,DAT_182670908);
  uVar26 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  *(ulonglong *)(lVar5 + -0xd38) =
       (*(ulonglong *)(lVar5 - (uVar29 ^ 0xbc213806)) ^ uVar27) - uVar28 ^ uVar32;
  uVar45 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar5 + -0x890) =
       uVar26 ^ uVar37 ^ uVar43 ^ *(ulonglong *)(lVar5 + -0x5c0) ^ uVar23;
  uVar14 = DAT_182670ac0;
  uVar3 = DAT_1826707ac;
  lVar4 = DAT_1826707a0;
  uVar37 = CONCAT44(DAT_182670ac0,DAT_182670ac0);
  local_res18 = (byte)uVar36;
  *(ulonglong *)(DAT_1826707a0 - (uVar45 ^ 0xbcbd9154)) =
       (*(ulonglong *)(lVar5 - (uVar45 ^ 0xbcbd9524)) ^ uVar26) >> (((byte)uVar13 ^ 0x6e) & 0x3f) ^
       uVar37;
  uVar13 = DAT_1826708c4;
  uVar26 = (uVar26 ^ *(ulonglong *)(lVar4 + -0x890)) << ((local_res18 ^ 0x9e) & 0x3f);
  uVar23 = CONCAT44(DAT_182670a8c,DAT_182670a8c);
  *(ulonglong *)(lVar4 + -0xbb0) =
       (CONCAT44(uVar11,uVar3) ^ 0xdf3dc6bdd49675c9) >>
       ((*(byte *)(lVar4 + -0xce0) ^ (byte)uVar14) & 0x3f);
  uVar28 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x6b8) = uVar26 ^ uVar23;
  *(ulonglong *)(lVar4 - (uVar29 ^ 0xbc213fae)) =
       (uVar26 | *(ulonglong *)(lVar4 + -0xce0) ^ uVar37) ^ uVar28;
  uVar13 = DAT_1826708cc;
  uVar27 = CONCAT44(DAT_1826708cc,DAT_1826708cc);
  *(ulonglong *)(lVar4 + -0x420) =
       (*(ulonglong *)(lVar4 - (uVar42 ^ 0x99845e4c)) ^ uVar43) -
       (uVar28 ^ *(ulonglong *)(lVar4 + -0x1b8)) ^ uVar27;
  uVar7 = DAT_1826707e0;
  uVar6 = DAT_1826707b8;
  uVar23 = (ulonglong)DAT_1826707b8;
  uVar34 = *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707c0 ^ 0x3e16bd39)) ^
           *(ulonglong *)(lVar4 + -0xd38) ^ uVar32 ^ uVar34;
  uVar26 = CONCAT44(DAT_182670880,DAT_182670880);
  *(ulonglong *)(lVar4 + -0x660) = uVar34 ^ uVar39;
  uVar37 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar4 + -0x4c8) = uVar34 >> (((byte)uVar7 ^ 0xf1) & 0x3f) ^ uVar26;
  uVar28 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x156a7f31)) =
       (*puVar40 ^ uVar39) << ((bVar18 ^ 0xb8) & 0x3f) ^ uVar37;
  uVar14 = DAT_18267090c;
  uVar34 = (uVar26 ^ *(ulonglong *)(lVar4 + -0x4c8) | uVar37 ^ *(ulonglong *)(lVar4 + -0xb70)) ^
           uVar21;
  *(ulonglong *)(lVar4 + -0x6f0) = uVar34;
  uVar15 = DAT_182670928;
  uVar28 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x72a6864a));
  *(ulonglong *)(lVar4 + -0x658) =
       uVar21 ^ uVar27 ^ uVar24 ^ *(ulonglong *)(lVar4 + -0x420) ^ uVar34;
  *(ulonglong *)(lVar4 + -0x588) =
       (*(ulonglong *)(lVar4 + -0xd38) ^ uVar32) - (uVar28 ^ uVar21) ^ CONCAT44(uVar14,uVar14);
  uVar14 = DAT_1826708e8;
  uVar21 = CONCAT44(uVar15,uVar15);
  uVar32 = (*(ulonglong *)(lVar4 - (uVar45 ^ 0xbcbd9bec)) ^ uVar24) >> (((byte)uVar6 ^ 0x4f) & 0x3f)
  ;
  uVar28 = (ulonglong)DAT_1826707bc;
  *(ulonglong *)(lVar4 + -0x7d8) = uVar32 ^ uVar21;
  uVar34 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x9c8) =
       (*(ulonglong *)(lVar4 - (uVar28 ^ 0xbfffa3a4)) ^ uVar24) << (((byte)uVar3 ^ 6) & 0x3f) ^
       uVar34;
  *(ulonglong *)(lVar4 + -0x610) = uVar32 << (((byte)uVar13 ^ *(byte *)(lVar4 + -0x420)) & 0x3f);
  *puVar1 = (*(ulonglong *)(lVar4 - (uVar23 ^ 0xbf5b0f8e)) ^ uVar21 | uVar34 ^ *puVar30) ^ uVar25;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar16;
  return;
}



############ FUN_ 180d3ef40 size=4161 ############

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

void FUN_180d3ef40(void)

{
  uint *puVar1;
  uint *puVar2;
  uint *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint *puVar6;
  uint uVar7;
  longlong lVar8;
  longlong lVar9;
  longlong lVar10;
  uint uVar11;
  undefined4 uVar12;
  byte bVar13;
  byte bVar14;
  ulonglong uVar15;
  uint *puVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  byte *pbVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  
  uVar28 = DAT_1826707e8;
  uVar35 = DAT_1826707b0;
  lVar9 = DAT_1826707a0;
  uVar26 = (ulonglong)DAT_1826707b0;
  uVar37 = (ulonglong)DAT_1826707e8;
  uVar21 = DAT_1826707e8 | DAT_1826707b0;
  uVar7 = *(uint *)(&DAT_18260f760 + DAT_182670c94);
  uVar17 = *(uint *)(&DAT_18260f758 + DAT_182670c94) ^ DAT_1826707b0;
  puVar1 = (uint *)(DAT_1826707a0 + -0xc0c);
  puVar2 = (uint *)(DAT_1826707a0 + -0x2d4);
  puVar3 = (uint *)(DAT_1826707a0 + -0x8e0);
  uVar18 = (*(uint *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0x3f7dcdde)) ^ DAT_182670848) +
           (*puVar2 ^ DAT_182670a40) ^ DAT_182670864;
  DAT_1826707f4 = uVar21;
  *(uint *)(DAT_1826707a0 + -0xc34) = uVar18;
  *puVar3 = uVar18 ^ DAT_1826709d0 ^ DAT_182670864;
  uVar22 = DAT_182670b00;
  *puVar1 = *(uint *)(lVar9 - ((ulonglong)uVar21 ^ 0xbf7fdeea)) ^ DAT_182670b00 ^ DAT_182670aac;
  *(ulonglong *)(lVar9 + -0x1b8) =
       *(ulonglong *)(lVar9 - (uVar26 ^ 0xad6fdaee)) ^ *(ulonglong *)(lVar9 + -0xd38);
  *(undefined4 *)(lVar9 - (uVar37 ^ 0x3f7dc2a6)) =
       *(undefined4 *)(lVar9 - ((ulonglong)uVar21 ^ 0xbf7fd61e));
  *(byte *)(lVar9 + -0xc35) =
       *(byte *)((ulonglong)DAT_182670944 ^ *(ulonglong *)(lVar9 + -0x2e8)) ^ (byte)DAT_182670adc;
  uVar18 = *puVar1;
  *(uint *)(lVar9 + -0x43c) =
       *(uint *)(lVar9 - ((ulonglong)uVar28 ^ 0x3f7dca86)) ^ DAT_182670844 ^ uVar22;
  *(uint *)(lVar9 - ((ulonglong)uVar28 ^ 0x3f7dc55e)) = (uVar35 ^ 0x22945ed1) - (uVar18 ^ uVar22);
  uVar32 = DAT_182670ae4;
  uVar36 = CONCAT44(uVar21,uVar28);
  uVar25 = CONCAT44(DAT_182670ae4,DAT_182670ae4);
  pbVar20 = (byte *)((uVar36 ^ 0xbf7fdefe3f7dc68a) * 0x20 +
                     (CONCAT44(uVar35,uVar21) ^ 0xad6fdefebf7fdef8) +
                    *(longlong *)(DAT_1826707a0 + -0x30));
  *(ulonglong *)(DAT_1826707a0 + -0x248) = (ulonglong)pbVar20 ^ (ulonglong)DAT_182670a78;
  uVar12 = DAT_182670940;
  bVar14 = (byte)DAT_1826708fc;
  lVar8 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x619) = *pbVar20 ^ (byte)DAT_1826708fc ^ (byte)DAT_182670adc;
  *(ulonglong *)(lVar8 + -0x558) =
       *(ulonglong *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar8 + -0x370)) ^ uVar25;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar35 ^ 0xad6fdd8e)) =
       CONCAT44(uVar21,uVar35) ^ 0x351db9a0050828f3;
  uVar18 = DAT_182670b14;
  *(uint *)(lVar8 - ((ulonglong)uVar21 ^ 0xbf7fdd66)) =
       (bVar14 ^ *(byte *)(lVar8 + -0x619)) ^ DAT_182670b14;
  uVar11 = DAT_182670b08;
  uVar27 = *(uint *)(lVar8 + -0x43c) ^ DAT_182670844;
  puVar4 = (uint *)(lVar8 + -0x398);
  *(ulonglong *)(lVar8 + -0x5c0) =
       (uVar36 ^ 0x761673f583d3eb5f) >> (((byte)DAT_1826707e4 ^ 0x92) & 0x3f);
  uVar27 = uVar27 + (uVar35 ^ 0x664b93dd);
  puVar5 = (uint *)(lVar8 + -0x7e4);
  *puVar5 = uVar27 ^ uVar11;
  uVar29 = DAT_1826707ec;
  lVar8 = DAT_1826707a0;
  uVar22 = (*puVar4 ^ uVar18) << ((byte)(uVar21 ^ 0xbf7fdeef) & 0x1f) ^ DAT_182670994;
  *(uint *)(DAT_1826707a0 + -0x9ec) = uVar22;
  uVar23 = *(uint *)(lVar8 + -0x42c) ^ DAT_1826709d0;
  uVar22 = uVar27 - (uVar22 ^ DAT_182670994) ^ DAT_18267092c;
  *(uint *)(lVar8 + -0x280) = uVar22;
  lVar8 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar21 ^ 0xbf7fd872)) =
       uVar23 * (uVar22 ^ DAT_18267092c) ^ DAT_182670abc;
  uVar19 = DAT_182670904;
  uVar15 = (ulonglong)DAT_1826707e4;
  uVar18 = (*puVar4 ^ uVar18) * (uVar35 ^ 0xad6fdef8) ^ DAT_182670ad0;
  *(ulonglong *)(lVar8 + -0x68) =
       *(ulonglong *)(CONCAT44(DAT_182670a8c,DAT_182670a8c) ^ *(ulonglong *)(lVar8 + -0x1e8)) ^
       uVar25;
  *(uint *)(lVar8 - (uVar15 ^ 0x412483d2)) = uVar18;
  uVar23 = *(uint *)(lVar8 + -0x540) ^ DAT_182670ad0;
  *(longlong *)(lVar8 + -0x4c8) = *(longlong *)(lVar8 + -0xac0) + *(longlong *)(lVar8 + -0xa18);
  uVar22 = DAT_1826707b8;
  puVar6 = (uint *)(lVar8 + -0x68c);
  uVar23 = uVar23 + (*puVar6 ^ DAT_182670abc);
  uVar18 = *puVar5;
  *(uint *)(lVar8 + -0xa34) = uVar23 ^ uVar19;
  *(uint *)(lVar8 + -0x814) = (uVar18 ^ uVar11) * -0x3da0caee;
  *(uint *)(lVar8 - ((ulonglong)uVar29 ^ 0x3f7de47e)) =
       uVar23 << (((byte)uVar22 ^ 0xd8) & 0x1f) ^ uVar32;
  uVar33 = DAT_182670918;
  uVar24 = DAT_18267080c;
  uVar11 = DAT_1826707e0;
  uVar27 = DAT_1826707d4;
  uVar23 = DAT_1826707c8;
  uVar15 = (ulonglong)DAT_182670a84;
  uVar18 = *puVar2;
  uVar31 = (*(uint *)(lVar8 - (uVar26 ^ 0xad6fd4ca)) ^ uVar19) >> (((byte)uVar28 ^ 0x99) & 0x1f) ^
           DAT_182670964;
  uVar19 = *(uint *)(lVar8 + -0xcec) ^ DAT_18267089c;
  *(uint *)(lVar8 + -0xc34) = uVar31;
  uVar32 = (uVar31 ^ DAT_182670964 | uVar18 ^ uVar32) ^ uVar33;
  uVar18 = DAT_182670a44 ^ *(uint *)(lVar8 + -0xc04);
  *(uint *)(lVar8 + -0x14) = uVar32;
  uVar32 = uVar32 ^ DAT_182670a90;
  *puVar3 = uVar19 + uVar18 ^ uVar24;
  puVar16 = (uint *)(*(longlong *)(lVar8 + -0x638) +
                    ((CONCAT44(uVar35,uVar27) ^ 0xad6fdefeef5ff8f5) * 5 +
                    (CONCAT44(uVar23,uVar21) ^ 0x86924124bf7fdefc)) * 4);
  *(ulonglong *)(lVar8 + -0x848) = (ulonglong)puVar16 ^ uVar15;
  lVar10 = DAT_1826707a0;
  uVar15 = CONCAT44(uVar35,DAT_1826707a8);
  *puVar16 = uVar32 ^ uVar33;
  *(ulonglong *)(lVar10 - (uVar37 ^ 0x3f7dce1a)) =
       *(longlong *)(lVar10 + -0x658) - (uVar15 ^ 0x8aa71c4d5256c9fd);
  *(uint *)(lVar10 - ((ulonglong)uVar11 ^ 0xaae67133)) = DAT_1826708ac ^ uVar24 ^ *puVar3;
  uVar33 = *(uint *)(lVar10 + -0x14) ^ DAT_182670894 ^ uVar33;
  *(uint *)(lVar10 + -0x43c) = *puVar1 ^ DAT_1826708e8 ^ DAT_1826708ac;
  *(uint *)(lVar10 + -0x3d4) = uVar33;
  uVar19 = DAT_1826707dc;
  uVar18 = uVar33 ^ DAT_182670938 ^ DAT_182670894;
  uVar34 = (ulonglong)DAT_1826707dc;
  *(ulonglong *)(lVar10 + -0xb70) =
       CONCAT44(uVar35,uVar21) ^ 0x6dfe771253649a34 | *(ulonglong *)(lVar10 + -0x5c0);
  uVar33 = DAT_18267086c;
  *(uint *)(lVar10 - ((ulonglong)uVar29 ^ 0x3f7def46)) = uVar18;
  uVar30 = (ulonglong)DAT_182670a1c;
  *(uint *)(lVar10 + -0x42c) = *(uint *)(lVar10 + -0x43c) ^ DAT_182670978 ^ DAT_1826708e8;
  *(uint *)(lVar10 + -0x280) = *(uint *)(lVar10 + -0x9ec) ^ DAT_182670a6c ^ DAT_182670938;
  uVar18 = DAT_1826707d8;
  uVar26 = (ulonglong)DAT_1826707d8;
  uVar15 = (ulonglong)DAT_1826707d8;
  *(ulonglong *)(lVar10 - ((ulonglong)uVar11 ^ 0xaae67b2f)) =
       (uVar36 ^ 0xc07b64a3d5dafe03) >> (((byte)uVar35 ^ 0xfc) & 0x3f);
  uVar25 = (ulonglong)DAT_1826707ac;
  *(uint *)(lVar10 - (uVar15 ^ 0xed5dbb7d)) = *(uint *)(lVar10 + -0x42c) ^ uVar33 ^ DAT_182670978;
  *(ulonglong *)(lVar10 - (uVar25 ^ 0x22187acd)) =
       CONCAT44(uVar29,DAT_1826707c0) ^ 0x2d83fcdf335d218f;
  lVar8 = *(longlong *)(lVar10 + -0x30);
  *puVar6 = *(uint *)(lVar10 + -0x280) ^ DAT_182670970 ^ DAT_182670a6c;
  *(ulonglong *)(lVar10 + -0x588) =
       *(ulonglong *)(lVar10 + -0x7d8) ^ *(ulonglong *)(lVar10 + -0xa18);
  pbVar20 = (byte *)(lVar8 + 0x11 + (CONCAT44(uVar19,DAT_1826707e4) ^ 0x8042044041248692) * 0x20);
  *(ulonglong *)(lVar10 + -0xdb8) = (ulonglong)pbVar20 ^ uVar30;
  bVar14 = (byte)DAT_1826709a0;
  uVar29 = DAT_1826707cc;
  uVar25 = (ulonglong)DAT_1826707cc;
  *(ulonglong *)(lVar10 + -0x9e0) =
       *(longlong *)(lVar10 + -0x68) - (CONCAT44(uVar28,uVar35) ^ 0x86e8172e3a66d497);
  uVar28 = DAT_182670a18;
  bVar13 = *pbVar20 ^ bVar14 ^ (byte)DAT_182670adc;
  *(byte *)(lVar10 + -0xc35) = bVar13;
  *(uint *)(lVar10 - ((ulonglong)uVar22 ^ 0xeb12fd95)) = (bVar14 ^ bVar13) ^ uVar28;
  uVar11 = DAT_1826707bc;
  *(ulonglong *)(lVar10 - (uVar37 ^ 0x3f7dc2aa)) =
       *(ulonglong *)(lVar10 - (uVar25 ^ 0x85f69d9e)) | *(ulonglong *)(lVar10 + -0x588);
  uVar31 = (*(uint *)(lVar10 - ((ulonglong)uVar27 ^ 0xef5ffe79)) ^ DAT_182670970) +
           (uVar11 ^ 0xca828d2b) ^ DAT_182670814;
  *puVar5 = uVar31;
  uVar31 = uVar31 ^ DAT_182670814;
  *(longlong *)(lVar10 + -0x660) =
       *(longlong *)(lVar10 - (uVar26 ^ 0xed5dbce5)) + *(longlong *)(lVar10 + -0x658);
  uVar18 = (*(uint *)(lVar10 - (uVar34 ^ 0x80420100)) ^ uVar28) << (((byte)uVar18 ^ 0xf4) & 0x1f) ^
           DAT_18267091c;
  *(uint *)(lVar10 + -0x814) = uVar18;
  uVar32 = DAT_182670a48;
  uVar31 = uVar31 - (uVar18 ^ DAT_18267091c);
  *(uint *)(lVar10 + -0xa34) = uVar31 ^ DAT_182670a48;
  uVar27 = DAT_182670afc;
  uVar18 = DAT_1826707a8;
  uVar15 = *(ulonglong *)(lVar10 + -0x4c8) >> (((byte)DAT_1826707a8 ^ 0x1d) & 0x3f);
  *(ulonglong *)(lVar10 + -0x548) = uVar15;
  uVar28 = (*(uint *)(lVar10 + -0x540) ^ uVar28) * (uVar21 ^ 0xbf7fdeef) ^ DAT_182670884;
  *puVar2 = uVar31 * (*puVar4 ^ uVar33) ^ DAT_1826708d4;
  uVar26 = CONCAT44(uVar23,DAT_1826707ac);
  *(ulonglong *)(lVar10 + -0xcf8) = CONCAT44(uVar19,DAT_1826707f0) ^ uVar15 ^ 0xf54a75ceec473b9e;
  *(uint *)(lVar10 - ((ulonglong)uVar18 ^ 0xaae6710b)) = uVar28;
  uVar23 = (*puVar2 ^ DAT_1826708d4) + (*(uint *)(lVar10 + -0xc34) ^ DAT_182670884);
  *(uint *)(lVar10 + -0xc04) = uVar23 ^ uVar24;
  *puVar3 = uVar23 * 0x2000 ^ uVar27;
  *puVar1 = (*(uint *)(lVar10 - ((ulonglong)uVar18 ^ 0xaae6713b)) ^ uVar24) >> 0x13 ^ DAT_18267090c;
  *(ulonglong *)(lVar10 - ((ulonglong)DAT_1826707e0 ^ 0xaae67f8f)) =
       uVar26 ^ 0x96da16c83ee920f9 | *(ulonglong *)(lVar10 + -0x548);
  lVar8 = DAT_1826707a0;
  uVar18 = DAT_182670ac0 ^ DAT_182670820;
  *(uint *)(lVar10 - ((ulonglong)DAT_1826707e4 ^ 0x41248546)) =
       (*(uint *)(lVar10 - ((ulonglong)uVar22 ^ 0xeb12f4d9)) ^ DAT_18267090c | uVar27 ^ *puVar3) ^
       DAT_182670820;
  uVar28 = _DAT_1826709e0;
  uVar27 = DAT_1826707d4;
  uVar18 = uVar18 ^ *(uint *)(lVar8 + -0x3d4);
  uVar24 = (*(uint *)(lVar10 + -0xb54) ^ DAT_182670848) + (*puVar4 ^ uVar33) ^ DAT_182670a14;
  *(uint *)(lVar10 + -0x9ec) = uVar24;
  uVar19 = DAT_182670978;
  *(uint *)(lVar8 + -0x280) = uVar18;
  uVar31 = uVar18 ^ uVar28 ^ DAT_182670ac0;
  *puVar5 = uVar31;
  uVar18 = DAT_182670890;
  uVar23 = DAT_1826707c0;
  uVar15 = CONCAT44(uVar11,uVar29) ^ *(ulonglong *)(lVar8 + -0x630) ^ 0xc2536474edc55bb1;
  uVar24 = uVar24 ^ DAT_182670890;
  *(ulonglong *)(lVar8 + -0xd88) = uVar15;
  uVar24 = uVar24 ^ DAT_182670a14;
  *(uint *)(lVar8 + -0x42c) = uVar24;
  *puVar6 = uVar18 ^ uVar24 ^ uVar19;
  uVar24 = DAT_182670a54;
  *(ulonglong *)(lVar8 + -0x220) = CONCAT44(uVar27,DAT_1826707b4) ^ 0x2370d2a0e7356c4d | uVar15;
  pbVar20 = (byte *)(*(longlong *)(lVar8 + -0x30) + 0x1c);
  *(ulonglong *)(lVar8 + -0x4f8) = (ulonglong)pbVar20 ^ (ulonglong)DAT_1826708c0;
  bVar14 = *pbVar20 ^ (byte)uVar32 ^ (byte)DAT_182670adc;
  uVar33 = uVar32 & 0xff ^ (uint)bVar14;
  *(byte *)(lVar8 + -0x619) = bVar14;
  uVar29 = DAT_182670a10;
  uVar18 = DAT_1826707b8;
  *(uint *)(lVar8 + -0x814) = uVar33 ^ DAT_182670a10;
  uVar28 = (uVar28 ^ uVar31) + (uVar23 ^ 0xd6f606e3);
  uVar18 = uVar33 << (((byte)uVar18 ^ 0xc4) & 0x1f) ^ DAT_1826709f8;
  *(uint *)(lVar8 + -0x540) = uVar18;
  uVar18 = uVar18 ^ DAT_1826709f8;
  *(uint *)(lVar8 + -0xa34) = uVar28 ^ uVar24;
  uVar28 = uVar28 - uVar18 ^ DAT_182670b14;
  *puVar2 = uVar28;
  uVar18 = DAT_1826709f0;
  uVar15 = (ulonglong)DAT_1826707ec;
  uVar28 = (*(uint *)(lVar8 - ((ulonglong)uVar11 ^ 0x1a6c684)) ^ uVar19) * (uVar28 ^ DAT_182670b14)
           ^ DAT_182670908;
  *(uint *)(lVar8 + -0xc34) = uVar28;
  uVar11 = DAT_1826707e0;
  lVar10 = DAT_1826707a0;
  uVar28 = uVar28 ^ DAT_182670908;
  puVar16 = (uint *)(DAT_1826707a0 - (uVar15 ^ 0x3f7dee4a));
  uVar29 = (*(uint *)(lVar8 - (uVar15 ^ 0x3f7deebe)) ^ uVar29) * (DAT_1826707e0 ^ 0xaae67d23) ^
           DAT_182670a30;
  *(uint *)(DAT_1826707a0 + -0xc04) = uVar29;
  *puVar16 = (uVar29 ^ DAT_182670a30) + uVar28 ^ uVar18;
  *puVar1 = (uVar18 ^ *puVar3) << (((byte)uVar23 ^ 0xcd) & 0x1f) ^ DAT_182670938;
  lVar8 = *(longlong *)(lVar10 + -0x68);
  *puVar4 = (*(uint *)(lVar10 - ((ulonglong)DAT_1826707c8 ^ 0x869249c4)) ^ uVar18) >> 0x13 ^
            DAT_182670a4c;
  *(longlong *)(lVar10 - (uVar37 ^ 0x3f7dc67a)) =
       lVar8 << ((byte)*(undefined8 *)(lVar10 + -0x4c8) & 0x3f);
  uVar23 = *(uint *)(lVar10 + -0xb54) ^ DAT_182670848;
  *(uint *)(lVar10 + -0x9ec) =
       (*(uint *)(lVar10 - (uVar25 ^ 0x85f6955a)) ^ DAT_182670938 | *puVar4 ^ DAT_182670a4c) ^
       DAT_182670900;
  uVar18 = DAT_1826709c0;
  uVar28 = (*puVar6 ^ uVar19) + uVar23 ^ DAT_1826709c0;
  *(uint *)(lVar10 + -0x3d4) = uVar28;
  uVar19 = DAT_182670a70;
  uVar29 = DAT_1826709ac;
  uVar23 = DAT_1826707f0;
  uVar25 = (ulonglong)DAT_1826707f0;
  uVar30 = (ulonglong)DAT_1826707a8;
  uVar15 = (ulonglong)DAT_182670804;
  *(uint *)(lVar10 + -0x42c) = uVar18 ^ DAT_182670894 ^ uVar28;
  *(ulonglong *)(lVar10 + -0x3b0) = uVar26 ^ 0xf6e6facfb445f747 | 0x72e0e8c6a4457342;
  uVar28 = DAT_1826707f0 | uVar11;
  DAT_1826707b4 = uVar28;
  *(uint *)(lVar10 - (uVar30 ^ 0xaae67fbf)) =
       *(uint *)(lVar10 - (uVar25 ^ 0xd720f010)) ^ DAT_182670a3c ^ DAT_182670900;
  uVar18 = *(uint *)(lVar10 + -0x280) ^ uVar19 ^ DAT_182670a3c;
  *puVar5 = *(uint *)(lVar10 + -0x42c) ^ uVar29 ^ DAT_182670894;
  *(uint *)(lVar10 + -0xa34) = uVar18;
  pbVar20 = (byte *)((CONCAT44(uVar22,uVar35) ^ 0xeb12f8d5ad6fdef9) +
                     (CONCAT44(uVar27,DAT_1826707e4) ^ 0xef5ff8f541248692) * 0x20 +
                    *(longlong *)(lVar10 + -0x30));
  *(ulonglong *)(lVar10 + -0x2e8) = (ulonglong)pbVar20 ^ uVar15;
  bVar14 = (byte)DAT_182670858;
  *(uint *)(lVar10 + -0x540) =
       (*(uint *)(lVar10 - ((ulonglong)uVar28 ^ 0xffe6f7cb)) ^ uVar19) + (uVar19 ^ uVar18);
  *(byte *)(lVar10 + -0xc35) = *pbVar20 ^ (byte)DAT_182670adc ^ bVar14;
  *(ulonglong *)(lVar10 + -0x410) = CONCAT44(uVar11,uVar23) ^ 0xbcbc66a7f25144b2;
  uVar35 = DAT_1826709d8;
  lVar8 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0xaae67feb)) =
       (*(byte *)(lVar10 - (uVar25 ^ 0xd720f5c9)) ^ bVar14) ^ DAT_1826709d8;
  *(uint *)(lVar8 + -0x814) =
       (*(uint *)(lVar8 - ((ulonglong)uVar23 ^ 0xd720f3c8)) ^ uVar19) + (uVar28 ^ 0x34c2b0dc) ^
       DAT_182670af4;
  *(ulonglong *)(lVar8 - ((ulonglong)uVar23 ^ 0xd720f4c4)) =
       CONCAT44(uVar23,uVar28) ^ 0x2f17fc419f96ea3d | CONCAT44(uVar11,uVar11) ^ 0x71f7f7fa152bcee9;
  uVar22 = *(uint *)(lVar8 + -0x814) ^ DAT_182670af4;
  uVar18 = *puVar2;
  uVar27 = (uVar35 ^ *puVar2) << (((byte)uVar11 ^ 0x2e) & 0x1f);
  *(uint *)(lVar8 + -0xc34) = uVar27 ^ DAT_182670930;
  uVar35 = (uVar35 ^ uVar18) * (uVar11 ^ 0xaae67d38);
  *(uint *)(lVar8 + -0xc04) = uVar22 - uVar27 ^ DAT_1826709b4;
  uVar18 = (*(uint *)(lVar8 - ((ulonglong)uVar28 ^ 0xffe6f1fb)) ^ DAT_1826709b4) *
           (uVar29 ^ *puVar5);
  *puVar3 = uVar18 ^ DAT_182670974;
  *puVar1 = uVar35 ^ DAT_18267096c;
  uVar18 = uVar35 + uVar18 ^ DAT_1826708e4;
  *puVar4 = uVar18;
  *puVar6 = (uVar18 ^ DAT_1826708e4) << 0xd ^ DAT_182670970;
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar7 ^ uVar21) * 4) = uVar17;
  *(ulonglong *)(lVar9 + -0x1b8) =
       (CONCAT44(uVar28,uVar23) ^ 0x3888f123bcb5c576) >> (((byte)uVar11 ^ 0x26) & 0x3f);
  return;
}



############ FUN_ 180c74550 size=5136 ############

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

void FUN_180c74550(void)

{
  longlong lVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  byte bVar15;
  ulonglong *puVar16;
  uint uVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong *puVar26;
  ulonglong *puVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  uint uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong *puVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  byte local_res18;
  
  uVar14 = DAT_182670948;
  uVar17 = DAT_1826707d4;
  lVar1 = DAT_1826707a0;
  uVar12 = DAT_1826707e8 & 3;
  uVar22 = DAT_1826707f0 ^ DAT_1826707bc;
  if (uVar12 < 2) {
    uVar32 = DAT_1826707c4;
    if (uVar12 == 0) {
      uVar32 = DAT_1826707e8;
    }
  }
  else {
    uVar32 = DAT_1826707cc;
    if (uVar12 < 3) {
      uVar32 = DAT_1826707b0;
    }
  }
  uVar35 = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  uVar12 = *(uint *)(&DAT_18260f758 + DAT_182670d1c);
  uVar13 = *(uint *)(&DAT_18260f760 + DAT_182670d1c) ^ DAT_1826707d4;
  uVar25 = CONCAT44(DAT_182670988,DAT_182670988);
  DAT_1826707a8 = uVar22;
  DAT_1826707ac = uVar32;
  DAT_1826707e4 = uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0x438) =
       (*(ulonglong *)(DAT_1826707a0 + -0x7d8) >> 0x20 ^ (ulonglong)DAT_182670948) >> 8 ^ uVar25;
  puVar27 = (ulonglong *)(lVar1 - ((ulonglong)DAT_1826707c4 ^ 0xa1ca9e38));
  uVar20 = CONCAT44(DAT_182670990,DAT_182670990);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar32 ^ 0xe9c1d304)) =
       (CONCAT44(uVar14,uVar14) ^ *puVar27) << 0x18 ^ uVar20;
  uVar9 = DAT_182670b0c;
  uVar7 = DAT_1826708a4;
  uVar14 = DAT_1826707e0;
  uVar21 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar28 = *(ulonglong *)(lVar1 + -0xd38) ^ uVar20 | *(ulonglong *)(lVar1 + -0x438) ^ uVar25;
  uVar29 = uVar28 ^ uVar21;
  uVar41 = CONCAT44(DAT_182670998,DAT_182670998);
  *(ulonglong *)(lVar1 + -0xf0) = uVar29;
  uVar19 = CONCAT44(DAT_182670918,DAT_182670918);
  uVar25 = (ulonglong)DAT_1826707e8;
  *(ulonglong *)(lVar1 + -0xc18) = (*(ulonglong *)(lVar1 + -0x1b8) ^ uVar41) - uVar28 ^ uVar19;
  uVar8 = DAT_182670ab8;
  uVar5 = DAT_1826707cc;
  *(ulonglong *)(lVar1 + -0x658) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xcbbf40e6)) ^ CONCAT44(uVar7,uVar7)) -
       (CONCAT44(uVar14,uVar22) ^ 0x98f6d4e1b628f5ff);
  uVar11 = DAT_1826709bc;
  lVar2 = DAT_1826707a0;
  uVar28 = (ulonglong)DAT_1826709bc;
  uVar33 = CONCAT44(uVar8,uVar8);
  uVar23 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  uVar25 = uVar33 ^ uVar23 ^ uVar29 ^ uVar21 ^ *(ulonglong *)(lVar1 + -0x610);
  *(ulonglong *)(lVar1 + -0x5c0) = uVar25;
  uVar3 = DAT_1826707b0;
  lVar1 = DAT_1826707a0;
  uVar21 = (ulonglong)uVar35;
  *(ulonglong *)(lVar2 + -0xac0) =
       (CONCAT44(DAT_1826707b0,uVar5) ^ 0xc473559488c567b7) + 0x37b5282bc4a5d08c;
  uVar14 = DAT_1826707f0;
  uVar29 = CONCAT44(_DAT_1826709e0,_DAT_1826709e0);
  *(ulonglong *)(lVar2 + -0x4c8) = (uVar25 >> 0x20 ^ uVar28) >> 0x14 ^ uVar29;
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707bc ^ 0xd249e325)) =
       (CONCAT44(uVar14,uVar35) ^ 0xe51381a23cd24559) >> (((byte)DAT_1826707bc ^ 0xda) & 0x3f);
  uVar30 = CONCAT44(DAT_182670984,DAT_182670984);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e8 ^ 0xcbbf4036)) =
       (*(ulonglong *)(lVar1 + -0x5c0) ^ uVar23) << (((byte)uVar32 ^ 0x30) & 0x3f) ^ uVar30;
  uVar8 = DAT_182670afc;
  uVar42 = CONCAT44(DAT_182670824,DAT_182670824);
  uVar25 = uVar30 ^ *(ulonglong *)(lVar1 + -0x588) | *(ulonglong *)(lVar1 + -0x4c8) ^ uVar29;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar25 ^ uVar42;
  uVar7 = DAT_1826708c4;
  uVar24 = CONCAT44(uVar8,uVar8);
  bVar15 = (byte)DAT_1826707e0;
  *(ulonglong *)(lVar1 + -0x438) = (uVar33 ^ *(ulonglong *)(lVar1 + -0x610)) - uVar25 ^ uVar24;
  uVar8 = DAT_1826708e0;
  uVar29 = CONCAT44(uVar7,uVar7);
  uVar28 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8) ^ uVar29 ^ *(ulonglong *)(lVar1 + -0xc18) ^
           *(ulonglong *)(lVar1 + -0x998) ^ uVar19;
  *(ulonglong *)(lVar1 + -0x1b8) = uVar28;
  uVar4 = DAT_1826707bc;
  uVar36 = CONCAT44(uVar8,uVar8);
  uVar25 = (ulonglong)DAT_1826707a8;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707bc ^ 0xd249efb5)) =
       (uVar28 ^ uVar29) >> ((bVar15 ^ 0xf4) & 0x3f) ^ uVar36;
  uVar14 = DAT_1826707c4;
  lVar1 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_18267093c,DAT_18267093c);
  uVar25 = (*(ulonglong *)(DAT_1826707a0 - (uVar25 ^ 0xb243c65d)) ^ uVar29) <<
           (((byte)uVar4 ^ 0xea) & 0x3f);
  uVar33 = CONCAT44(DAT_182670800,DAT_182670800);
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0x558);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar25 ^ uVar38;
  uVar25 = uVar25 | *puVar26 ^ uVar36;
  *(ulonglong *)(lVar1 + -0x9c8) = uVar25 ^ uVar33;
  uVar6 = DAT_1826707d4;
  *(ulonglong *)(lVar1 + -0x5c0) =
       (CONCAT44(uVar14,uVar35) ^ 0xd10e9e27ba8dc345) >> (((byte)DAT_1826707bc ^ 0xf8) & 0x3f);
  *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xfbfcda37)) =
       (*(ulonglong *)(lVar1 + -0xc18) ^ uVar19) - uVar25 ^ uVar20;
  uVar22 = DAT_1826707b0;
  lVar2 = DAT_1826707a0;
  uVar25 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar1 + -0x588) =
       0x4a38fa6e3c0d6397 >> ((*(byte *)(lVar1 + -0xf0) ^ (byte)uVar9) & 0x3f);
  uVar28 = (ulonglong)DAT_18267089c;
  uVar29 = CONCAT44(DAT_18267089c,DAT_18267089c);
  uVar14 = DAT_18267089c >> 0xe;
  uVar19 = *(ulonglong *)(lVar2 + -0x438) ^ uVar29 ^ uVar33 ^ uVar24 ^
           *(ulonglong *)(lVar2 + -0x9c8);
  *(ulonglong *)(lVar2 + -0x610) = uVar19;
  *(ulonglong *)(lVar2 + -0x998) =
       *(ulonglong *)(lVar2 - (uVar25 ^ 0xe9c1d864)) ^ *(ulonglong *)(lVar2 + -0x558) ^ uVar36;
  uVar37 = CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfbfcdf47)) =
       (uVar28 << 0x12 | (ulonglong)uVar14) ^ uVar19 >> 0xe ^ uVar37;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e0 ^ 0x6dffa50d)) =
       *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0xcbbf407e)) ^
       *(ulonglong *)(lVar2 + -0xd38) ^ uVar20;
  uVar25 = (uVar29 ^ *(ulonglong *)(lVar2 + -0x610)) << 0x32;
  *(ulonglong *)(lVar2 + -0xc18) = uVar25 ^ CONCAT44(DAT_18267098c,DAT_18267098c);
  *(ulonglong *)(lVar2 + -0xf0) =
       (CONCAT44(uVar32,uVar35) ^ 0x500a145f8673b80b) + *(longlong *)(lVar2 + -0x588);
  uVar7 = DAT_1826709c0;
  uVar31 = CONCAT44(DAT_18267082c,DAT_18267082c);
  *(ulonglong *)(lVar2 + -0x9c8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar22 ^ 0xe9c1df84)) ^ uVar37 | uVar25) ^ uVar31;
  uVar28 = CONCAT44(uVar7,uVar7);
  uVar33 = CONCAT44(DAT_1826709f8,DAT_1826709f8);
  *(ulonglong *)(lVar2 + -0x658) =
       (*(ulonglong *)(lVar2 + -0x438) ^ uVar24) - (uVar28 ^ *(ulonglong *)(lVar2 + -0x890)) ^
       uVar33;
  uVar9 = DAT_182670a1c;
  uVar8 = DAT_1826709c8;
  uVar7 = DAT_182670838;
  puVar18 = (ulonglong *)(lVar2 - (uVar21 ^ 0xdefffda4));
  uVar36 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar2 + -0x558) =
       (uVar33 ^ *puVar18) - (*(ulonglong *)(lVar2 - ((ulonglong)uVar6 ^ 0xfbfcd737)) ^ uVar31) ^
       uVar36;
  uVar39 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar25 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar2 + -0x998) =
       (CONCAT44(uVar7,uVar7) ^ *(ulonglong *)(lVar2 + -0xce0)) +
       (CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar2 + -0x660)) ^ uVar39;
  uVar19 = (ulonglong)DAT_1826707f0;
  *(uint *)(lVar2 - ((ulonglong)DAT_1826707c4 ^ 0xa1ca95d4)) =
       *(uint *)(lVar2 + -0x598) >> ((byte)*(undefined4 *)(lVar2 - (uVar25 ^ 0xe9c1d2d0)) & 0x1f);
  uVar24 = CONCAT44(DAT_182670a6c,DAT_182670a6c);
  uVar34 = CONCAT44(DAT_182670808,DAT_182670808);
  *(ulonglong *)(lVar2 + -0xd38) =
       (uVar31 ^ *(ulonglong *)(lVar2 + -0x9c8)) -
       (*(ulonglong *)(lVar2 - (uVar19 ^ 0x600a2490)) ^ uVar39) ^ uVar24;
  uVar22 = DAT_1826707ac;
  uVar25 = (ulonglong)DAT_1826707ac;
  uVar31 = *(ulonglong *)(lVar2 + -0x7d8) ^ *(ulonglong *)(lVar2 + -0x4c8) ^ uVar34 ^ uVar42 ^
           uVar20;
  *(ulonglong *)(lVar2 + -0x5c0) = uVar31;
  uVar14 = DAT_1826707a8;
  lVar1 = DAT_1826707a0;
  uVar42 = CONCAT44(DAT_182670820,DAT_182670820);
  bVar15 = (byte)DAT_1826707cc;
  *(ulonglong *)(DAT_1826707a0 + -0xac0) =
       (*(ulonglong *)(lVar2 - (uVar25 ^ 0xe9c1df84)) ^ uVar37) <<
       ((*(byte *)(DAT_1826707a0 + -0x558) ^ (byte)uVar9) & 0x3f);
  *(ulonglong *)(lVar1 + -0x610) = (uVar31 ^ uVar34) >> ((bVar15 ^ 0x2a) & 0x3f) ^ uVar42;
  uVar19 = CONCAT44(DAT_182670ab4,DAT_182670ab4);
  puVar16 = (ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e0 ^ 0x6dffaa45));
  *puVar16 = (uVar34 ^ uVar31) << 0x30 ^ uVar19;
  uVar25 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(lVar1 + -0xf0) =
       (*(ulonglong *)(lVar1 + -0x658) ^ uVar33) << (((byte)DAT_1826707d4 ^ 0xe7) & 0x3f);
  uVar34 = CONCAT44(DAT_182670aec,DAT_182670aec);
  uVar31 = CONCAT44(DAT_182670920,DAT_182670920);
  *(ulonglong *)(lVar1 + -0xc18) =
       (*(ulonglong *)(lVar1 - (uVar25 ^ 0xe9c1dbb4)) ^ uVar19 |
       uVar42 ^ *(ulonglong *)(lVar1 + -0x610)) ^ uVar34;
  *(ulonglong *)(lVar1 - (uVar21 ^ 0xdeffffc4)) =
       (*(ulonglong *)(lVar1 + -0x4c8) ^ uVar20) - (*(ulonglong *)(lVar1 + -0x6b8) ^ uVar31) ^
       uVar41;
  uVar8 = DAT_1826708e8;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar22 ^ 0xe9c1d7f4)) =
       (CONCAT44(uVar14,DAT_1826707e8) ^ 0xd80df5a3d22687c5) +
       (CONCAT44(uVar3,DAT_1826707bc) ^ 0x7d795db7edecb228);
  uVar9 = DAT_1826709b4;
  uVar19 = CONCAT44(DAT_182670958,DAT_182670958);
  uVar33 = (*(ulonglong *)(lVar1 + -0x438) ^ uVar41) - (uVar34 ^ *(ulonglong *)(lVar1 + -0xc18)) ^
           uVar19;
  *(ulonglong *)(lVar1 + -0x7d8) = uVar33;
  uVar7 = DAT_1826708d4;
  lVar2 = DAT_1826707a0;
  uVar25 = -(CONCAT44(uVar8,uVar8) ^ *(ulonglong *)(lVar1 + -0xbb0)) - 0x10;
  *(ulonglong *)(lVar1 + -0x1b8) = uVar25 ^ CONCAT44(uVar9,uVar9);
  uVar25 = uVar25 + (uVar34 ^ *(ulonglong *)(lVar1 + -0xc18)) ^ uVar31;
  *(ulonglong *)(lVar1 + -0xac0) = uVar25;
  uVar9 = DAT_182670964;
  uVar14 = DAT_1826707c4;
  uVar42 = CONCAT44(uVar7,uVar7);
  uVar34 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  uVar25 = *(ulonglong *)(lVar1 + -0x558) ^ uVar42 ^ uVar31 ^ uVar36 ^ uVar25;
  *(ulonglong *)(lVar1 + -0x5c0) = uVar25;
  uVar20 = (uVar42 ^ uVar25) >> ((byte)uVar14 & 0x3f);
  uVar25 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar2 + -0x658) = uVar20 ^ uVar34;
  uVar8 = DAT_182670868;
  local_res18 = (byte)(uVar17 >> 0x10);
  uVar25 = (*(ulonglong *)(lVar2 - (uVar25 ^ 0x6dffaa0d)) ^ uVar42) << ((local_res18 ^ 0xdc) & 0x3f)
  ;
  *(ulonglong *)(lVar2 + -0xf0) = uVar25 ^ CONCAT44(uVar9,uVar9);
  lVar1 = DAT_1826707a0;
  uVar20 = uVar20 | uVar25;
  uVar31 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0x558);
  *(ulonglong *)(DAT_1826707a0 + -0x610) = uVar20 ^ CONCAT44(uVar8,uVar8);
  uVar7 = _DAT_18267097c;
  *(ulonglong *)(lVar1 + -0x588) = (*puVar26 ^ uVar36) - uVar20 ^ uVar31;
  uVar17 = DAT_1826707b0;
  uVar20 = CONCAT44(uVar7,uVar7);
  uVar24 = uVar33 ^ uVar20 ^ uVar19 ^ *(ulonglong *)(lVar1 + -0xd38) ^ uVar24;
  *(ulonglong *)(lVar1 + -0x4c8) = uVar24;
  *(ulonglong *)(lVar1 + -0x9c8) = -0xf461e8983bad008 - (uVar39 ^ *(ulonglong *)(lVar1 + -0x998));
  uVar22 = DAT_1826707e8;
  uVar14 = DAT_1826707cc;
  puVar26 = (ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0xe9c1daf4));
  uVar25 = (ulonglong)DAT_1826707cc;
  puVar40 = (ulonglong *)(lVar1 - ((ulonglong)uVar17 ^ 0xe9c1d224));
  *(ulonglong *)(lVar1 + -0x438) =
       (*puVar26 ^ uVar20) >> (((byte)DAT_1826707a8 ^ 0xc5) & 0x3f) ^ uVar23;
  uVar7 = DAT_182670a40;
  *puVar40 = uVar24 ^ uVar20 ^ 0x1e4ef0fdcc8543b0;
  uVar33 = CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707f0 ^ 0x600a2cb0)) =
       (*puVar26 ^ uVar20) << (((byte)uVar22 ^ 0x9e) & 0x3f) ^ uVar33;
  uVar20 = CONCAT44(DAT_182670864,DAT_182670864);
  uVar33 = uVar33 ^ *(ulonglong *)(lVar1 + -0x1b8) | *(ulonglong *)(lVar1 + -0x438) ^ uVar23;
  *(ulonglong *)(lVar1 + -0xac0) = uVar33 ^ uVar20;
  *(ulonglong *)(lVar1 - (uVar25 ^ 0xd32c57fa)) =
       (*(ulonglong *)(lVar1 + -0x7d8) ^ uVar19) - uVar33 ^ uVar29;
  uVar7 = DAT_18267084c;
  *(ulonglong *)(lVar1 + -0x658) =
       (uVar31 ^ *(ulonglong *)(lVar1 + -0x588)) <<
       ((*(byte *)(lVar1 + -0x438) ^ (byte)uVar11) & 0x3f);
  uVar9 = DAT_1826709f4;
  uVar23 = CONCAT44(uVar7,uVar7);
  uVar25 = *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707bc ^ 0xd249e02d)) ^ uVar23 ^ uVar20 ^
           uVar31 ^ *(ulonglong *)(lVar1 + -0x588);
  uVar33 = CONCAT44(DAT_182670894,DAT_182670894);
  *(ulonglong *)(lVar1 + -0xf0) = uVar25;
  uVar19 = (uVar25 ^ uVar23) >> ((local_res18 ^ 0xc6) & 0x3f);
  *(ulonglong *)(lVar1 + -0x558) = uVar19 ^ uVar33;
  uVar24 = (uVar23 ^ uVar25) << (((byte)uVar32 ^ 0x3a) & 0x3f);
  uVar25 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar1 + -0xd38) = uVar24 ^ uVar23;
  lVar1 = DAT_1826707a0;
  uVar24 = uVar24 | uVar19;
  uVar33 = CONCAT44(uVar9,uVar9);
  puVar26 = (ulonglong *)(DAT_1826707a0 + -0x588);
  uVar20 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(DAT_1826707a0 + -0x9c8) = uVar24 ^ uVar33;
  uVar24 = (uVar31 ^ *puVar26) - uVar24;
  *(ulonglong *)(lVar1 + -0xc18) = uVar24 ^ uVar20;
  uVar19 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar1 + -0x4c8) =
       (CONCAT44(uVar32,uVar14) ^ 0xa03fafae86032a52) <<
       ((*(byte *)(lVar1 - (uVar25 ^ 0xe9c1d82c)) ^ (byte)uVar8) & 0x3f);
  uVar7 = DAT_182670a64;
  uVar23 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar19 = *(ulonglong *)(lVar1 - (uVar19 ^ 0x6dffa9dd)) ^ uVar23 ^ CONCAT44(uVar8,uVar8) ^ uVar29 ^
           *(ulonglong *)(lVar1 + -0x5c0);
  bVar15 = (byte)DAT_1826707a8;
  *(ulonglong *)(lVar1 + -0x1b8) = uVar19;
  uVar25 = (uVar19 ^ uVar23) >> ((bVar15 ^ 0xf3) & 0x3f) ^ CONCAT44(uVar7,uVar7);
  *(ulonglong *)(lVar1 + -0x7d8) = uVar25;
  bVar15 = (byte)DAT_1826707bc;
  *(ulonglong *)(lVar1 + -0x438) = uVar24 << (((byte)uVar7 ^ (byte)uVar25) & 0x3f);
  uVar25 = (uVar23 ^ uVar19) << ((bVar15 ^ 199) & 0x3f);
  *(uint *)(lVar1 + -0xcec) =
       *(uint *)(lVar1 + -0x3d4) >> ((byte)*(undefined4 *)(lVar1 + -0x9ec) & 0x1f);
  uVar9 = _DAT_182670ad4;
  *(ulonglong *)(lVar1 + -0x658) = uVar25 ^ uVar23;
  uVar8 = DAT_182670ac8;
  uVar19 = CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0xac0) = (uVar25 | *puVar27 ^ CONCAT44(uVar7,uVar7)) ^ uVar19;
  uVar14 = DAT_1826707d4;
  uVar17 = DAT_1826707b0;
  uVar25 = CONCAT44(uVar8,uVar8);
  *(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707e0 ^ 0x6dffaf3d)) =
       (uVar29 ^ *(ulonglong *)(lVar1 + -0x5c0)) -
       (*(ulonglong *)(lVar1 - ((ulonglong)DAT_1826707d4 ^ 0xfbfcd43f)) ^ uVar19) ^ uVar25;
  uVar24 = CONCAT44(DAT_182670974,DAT_182670974);
  uVar29 = CONCAT44(DAT_182670aa8,DAT_182670aa8);
  uVar19 = uVar24 ^ uVar19 ^ uVar20 ^ *puVar40 ^ *(ulonglong *)(lVar1 + -0xac0);
  *(ulonglong *)(lVar1 + -0x558) = uVar19;
  uVar8 = DAT_182670a78;
  lVar2 = DAT_1826707a0;
  uVar23 = (uVar24 ^ uVar19) << 0x12;
  *(ulonglong *)(lVar1 + -0xd38) = (uVar19 ^ uVar24) >> (((byte)uVar17 ^ 0x12) & 0x3f) ^ uVar29;
  uVar7 = DAT_1826708d0;
  *(ulonglong *)(lVar1 + -0x588) = uVar23 ^ CONCAT44(uVar8,uVar8);
  uVar17 = DAT_1826707f4;
  uVar31 = CONCAT44(uVar7,uVar7);
  uVar24 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707c4 ^ 0xa1ca9d28)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar14 ^ 0xfbfcd3c7)) ^ uVar29 | uVar23) ^ uVar31;
  uVar19 = CONCAT44(DAT_182670a84,DAT_182670a84);
  *(ulonglong *)(lVar2 - (uVar24 ^ 0x68ceb2a)) =
       (uVar20 ^ *(ulonglong *)(lVar2 + -0xc18)) -
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707ac ^ 0xe9c1daf4)) ^ uVar31) ^ uVar19;
  uVar29 = CONCAT44(DAT_182670a14,DAT_182670a14);
  uVar20 = CONCAT44(DAT_182670aac,DAT_182670aac);
  uVar33 = uVar29 ^ uVar25 ^ uVar33 ^ *(ulonglong *)(lVar2 + -0xf0) ^ *(ulonglong *)(lVar2 + -0x9c8)
  ;
  *(ulonglong *)(lVar2 + -0x438) = uVar33;
  uVar33 = (uVar33 ^ uVar29) >> (((byte)uVar4 ^ 0xe1) & 0x3f);
  *(ulonglong *)(lVar2 + -0x1b8) = uVar33 ^ uVar20;
  lVar1 = DAT_1826707a0;
  puVar26 = (ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x68ceae2));
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar17 ^ 0x68ce902)) ^ uVar29) <<
       (((byte)DAT_1826707bc ^ 0xd9) & 0x3f) ^ uVar30;
  uVar7 = DAT_1826708a8;
  uVar33 = uVar33 | uVar30 ^ *puVar26;
  uVar24 = uVar33 ^ uVar38;
  *(ulonglong *)(lVar1 + -0x658) = uVar24;
  uVar29 = CONCAT44(uVar7,uVar7);
  uVar20 = CONCAT44(DAT_182670a98,DAT_182670a98);
  *(ulonglong *)(lVar1 + -0x5c0) = (uVar25 ^ *(ulonglong *)(lVar1 + -0xf0)) - uVar33 ^ uVar29;
  uVar7 = DAT_1826707dc;
  uVar33 = CONCAT44(DAT_182670944,DAT_182670944);
  uVar25 = uVar20 ^ uVar19 ^ uVar24 ^ uVar38 ^ *(ulonglong *)(lVar1 + -0x610);
  bVar15 = (byte)DAT_1826707f0;
  *(ulonglong *)(lVar1 + -0xac0) = uVar25;
  uVar24 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(DAT_1826707a0 + -0x558) = (uVar25 ^ uVar20) >> ((bVar15 ^ 0x11) & 0x3f) ^ uVar33;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707e8 ^ 0xcbbf4886)) =
       (uVar20 ^ uVar25) << (((byte)uVar14 ^ 0xd8) & 0x3f) ^ uVar24;
  uVar20 = uVar24 ^ *(ulonglong *)(lVar1 + -0xd38) | uVar33 ^ *(ulonglong *)(lVar1 + -0x558);
  uVar33 = CONCAT44(DAT_1826708b8,DAT_1826708b8);
  *(ulonglong *)(lVar1 + -0x588) = uVar20 ^ uVar33;
  uVar10 = DAT_182670954;
  uVar25 = CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar1 + -0xc18) =
       (uVar19 ^ *(ulonglong *)(lVar1 + -0x610)) -
       (CONCAT44(DAT_1826709c4,DAT_1826709c4) ^ *(ulonglong *)(lVar1 + -0x400)) ^ uVar25;
  uVar9 = DAT_182670900;
  uVar8 = DAT_182670810;
  *(ulonglong *)(lVar1 + -0x9c8) =
       (*(ulonglong *)(lVar1 - (uVar21 ^ 0xdefff7e4)) ^ uVar25) - uVar20 ^ CONCAT44(uVar10,uVar10);
  uVar10 = DAT_182670a18;
  uVar25 = (*(ulonglong *)(lVar1 + -0x420) ^ uVar36) + (uVar28 ^ *(ulonglong *)(lVar1 + -0x890));
  *(ulonglong *)(lVar1 + -0x438) = uVar25 ^ CONCAT44(uVar9,uVar9);
  uVar17 = DAT_1826707d4 ^ 0xe488a5;
  uVar28 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(lVar1 + -0x1b8) = (uVar33 ^ *puVar16) - uVar25 ^ CONCAT44(uVar10,uVar10);
  *(uint *)(lVar1 - (uVar28 ^ 0x6dffa3f9)) =
       uVar17 << ((byte)*(undefined4 *)(lVar1 + -0x3d4) & 0x1f);
  uVar25 = CONCAT44(DAT_182670914,DAT_182670914);
  *(ulonglong *)(lVar1 - (uVar21 ^ 0xdefffc24)) =
       uVar25 ^ uVar29 ^ uVar31 ^ *(ulonglong *)(lVar1 + -0x4c8) ^ *(ulonglong *)(lVar1 + -0x5c0);
  uVar9 = DAT_182670a48;
  bVar15 = (byte)DAT_1826707f0;
  uVar14 = DAT_1826707bc ^ 0x32db452f;
  *(ulonglong *)(lVar1 + -0xf0) =
       (uVar25 ^ *(ulonglong *)(lVar1 + -0x7d8)) >> (((byte)uVar7 ^ 0x27) & 0x3f) ^
       CONCAT44(uVar8,uVar8);
  uVar17 = DAT_1826707a8;
  *(uint *)(lVar1 + -0x540) = uVar14 << ((bVar15 ^ 0x11) & 0x1f);
  *puVar18 = (uVar25 ^ *puVar26) << (((byte)uVar17 ^ 0xfa) & 0x3f) ^ CONCAT44(uVar9,uVar9);
  *(ulonglong *)(lVar1 + -0xac0) =
       (CONCAT44(uVar5,DAT_1826707b0) ^ 0x331445fb3d01ed9e) -
       (uVar25 ^ *(ulonglong *)(lVar1 + -0x7d8));
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar13 * 4) = uVar12 ^ uVar35;
  return;
}



############ FUN_ 180ccd190 size=5328 ############

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

void FUN_180ccd190(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  uint uVar3;
  undefined4 uVar4;
  longlong lVar5;
  longlong lVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong *puVar16;
  ulonglong uVar17;
  ulonglong uVar18;
  byte bVar19;
  ulonglong uVar20;
  uint uVar21;
  ulonglong *puVar22;
  byte bVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong *puVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  uint uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  byte local_c0;
  
  uVar4 = DAT_1826708a8;
  uVar10 = DAT_1826707e4;
  uVar9 = DAT_1826707c8;
  uVar8 = DAT_1826707c0;
  uVar7 = DAT_1826707b8;
  lVar5 = DAT_1826707a0;
  uVar40 = (ulonglong)DAT_1826707c0;
  uVar18 = (ulonglong)DAT_1826707c8;
  uVar31 = (ulonglong)DAT_1826707b8;
  uVar17 = (ulonglong)DAT_1826707e4;
  uVar36 = DAT_1826707c0 & DAT_1826707b8;
  uVar21 = DAT_1826707c8 ^ DAT_1826707e4;
  uVar3 = *(uint *)(&DAT_18260f758 + DAT_182670e2c);
  uVar12 = *(uint *)(&DAT_18260f760 + DAT_182670e2c) ^ DAT_1826707c0;
  puVar1 = (ulonglong *)(DAT_1826707a0 + -0xf0);
  uVar20 = CONCAT44(DAT_182670afc,DAT_182670afc);
  uVar28 = CONCAT44(DAT_182670a48,DAT_182670a48) ^ *(ulonglong *)(DAT_1826707a0 + -0x658) |
           CONCAT44(DAT_182670810,DAT_182670810) ^ *puVar1;
  uVar15 = CONCAT44(DAT_18267086c,DAT_18267086c);
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0x998);
  uVar25 = CONCAT44(DAT_182670918,DAT_182670918);
  DAT_1826707b4 = uVar21;
  DAT_1826707ec = uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar28 ^ uVar20;
  *(ulonglong *)(lVar5 + -0xd38) =
       (CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar5 + -0x5c0)) - (uVar15 ^ *puVar2) ^ uVar25;
  uVar4 = DAT_182670a5c;
  lVar6 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_1826708dc,DAT_1826708dc);
  uVar27 = (ulonglong)uVar21;
  *(ulonglong *)(lVar5 - (uVar17 ^ 0xdefffdec)) =
       (*(ulonglong *)(lVar5 - ((ulonglong)uVar7 ^ 0x92005d0a)) ^ uVar25) - uVar28 ^ uVar33;
  uVar25 = CONCAT44(DAT_18267081c,DAT_18267081c);
  *(ulonglong *)(lVar6 - (uVar27 ^ 0x373e29d8)) =
       (CONCAT44(uVar9,uVar21) ^ 0x163e21c3c8c1da31) -
       (CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar6 + -0x118)) ^ uVar25;
  uVar4 = DAT_182670874;
  uVar24 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(lVar6 + -0x588) =
       CONCAT44(uVar7,uVar10) ^ 0xddcca8fe2093777b | uVar24 ^ *(ulonglong *)(lVar6 + -0x1b8);
  lVar5 = DAT_1826707a0;
  uVar15 = CONCAT44(uVar4,uVar4);
  puVar22 = (ulonglong *)(lVar6 + -0x9c8);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar9 ^ 0xe9c1daf4)) =
       (*(ulonglong *)(lVar6 + -0x558) ^ uVar20) + (uVar25 ^ *(ulonglong *)(lVar6 + -0xc18)) ^
       uVar15;
  uVar25 = CONCAT44(DAT_182670a50,DAT_182670a50);
  uVar32 = CONCAT44(DAT_182670954,DAT_182670954);
  *(ulonglong *)(lVar5 + -0x7d8) =
       uVar32 ^ uVar25 ^ uVar15 ^ *puVar22 ^ *(ulonglong *)(lVar5 + -0x4c8);
  puVar34 = (ulonglong *)(lVar5 - ((ulonglong)uVar21 ^ 0x373e2530));
  *puVar34 = CONCAT44(uVar36,uVar8) ^ 0x71befbb6c5c3eb02 | *(ulonglong *)(lVar5 + -0xac0);
  lVar6 = DAT_1826707a0;
  uVar25 = uVar25 ^ *(ulonglong *)(lVar5 + -0x7d8);
  bVar19 = (byte)uVar21;
  uVar28 = CONCAT44(DAT_182670880,DAT_182670880);
  uVar15 = *puVar22;
  *(ulonglong *)(DAT_1826707a0 + -0x658) = uVar25 >> ((bVar19 ^ 0xc5) & 0x3f) ^ uVar28;
  *(ulonglong *)(lVar6 + -0x5c0) =
       (CONCAT44(uVar8,uVar7) ^ 0x1470a761d6fe38ea) << ((byte)*puVar1 & 0x3f);
  uVar11 = DAT_182670a10;
  uVar20 = CONCAT44(DAT_182670a90,DAT_182670a90);
  *(ulonglong *)(lVar6 + -0xd38) = uVar25 << 0x3b ^ uVar20;
  uVar4 = DAT_182670970;
  uVar39 = DAT_1826707e0;
  uVar14 = DAT_1826707cc;
  uVar29 = CONCAT44(uVar11,uVar11);
  uVar25 = (ulonglong)DAT_1826707e0;
  uVar26 = (ulonglong)DAT_1826707cc;
  uVar20 = *(ulonglong *)(lVar6 - ((ulonglong)uVar36 ^ 0x12000d38)) ^ uVar20 |
           *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x32d02614)) ^ uVar28;
  *(ulonglong *)(lVar6 + -0x588) = uVar20 ^ uVar29;
  uVar37 = CONCAT44(uVar4,uVar4);
  uVar13 = uVar14 + uVar39;
  puVar2 = (ulonglong *)(lVar6 + -0x610);
  uVar28 = CONCAT44(DAT_182670940,DAT_182670940);
  DAT_1826707d0 = uVar13;
  *(ulonglong *)(lVar6 + -0xc18) = (uVar32 ^ uVar15) - uVar20 ^ uVar37;
  uVar4 = DAT_18267099c;
  *(ulonglong *)(lVar6 + -0x558) =
       *(ulonglong *)(lVar6 - ((ulonglong)uVar13 ^ 0x412c03bf)) ^ uVar28 ^ uVar24 ^ uVar33 ^ *puVar2
  ;
  uVar20 = CONCAT44(uVar4,uVar4);
  bVar23 = (byte)uVar13;
  *(ulonglong *)(DAT_1826707a0 - (uVar26 ^ 0xd32c56f2)) =
       (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar39 ^ 0x6dffaa95)) ^ uVar28) >>
       ((bVar23 ^ 0x22) & 0x3f) ^ uVar20;
  uVar15 = (*(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar28) << ((bVar23 ^ 0x1c) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0xac0) = uVar15 ^ CONCAT44(DAT_1826709f4,DAT_1826709f4);
  lVar5 = DAT_1826707a0;
  uVar24 = CONCAT44(DAT_182670804,DAT_182670804);
  uVar15 = uVar20 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8) | uVar15;
  *puVar1 = uVar15 ^ uVar24;
  uVar4 = DAT_182670938;
  *(ulonglong *)(lVar5 + -0x5c0) =
       (CONCAT44(uVar39,uVar10) ^ 0x794852b1df453027) >> (((byte)uVar36 ^ 0x38) & 0x3f);
  uVar20 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar5 - (uVar25 ^ 0x6dffa815)) = (uVar33 ^ *puVar2) - uVar15 ^ uVar20;
  uVar11 = DAT_182670a24;
  uVar24 = uVar24 ^ *puVar1 ^ *(ulonglong *)(lVar5 + -0xc18);
  *(ulonglong *)(lVar5 + -0xd38) = uVar24;
  uVar4 = DAT_182670998;
  uVar15 = CONCAT44(uVar11,uVar11);
  local_c0 = (byte)uVar7;
  *(ulonglong *)(lVar5 + -0x658) = (uVar24 ^ uVar37) >> (((byte)uVar39 ^ 0xda) & 0x3f) ^ uVar15;
  *puVar22 = (uVar37 ^ uVar24) << ((local_c0 ^ 0x1b) & 0x3f) ^ CONCAT44(uVar4,uVar4);
  uVar11 = DAT_182670a30;
  puVar30 = (ulonglong *)(lVar5 - (uVar17 ^ 0xdefffa44));
  *puVar30 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar8 ^ 0x32d02514)) ^ uVar28) + 0x6de077e55b740cd9
  ;
  uVar41 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar5 - ((ulonglong)uVar36 ^ 0x120004c8)) =
       (CONCAT44(uVar4,uVar4) ^ *puVar22 | *(ulonglong *)(lVar5 + -0x658) ^ uVar15) ^ uVar41;
  lVar6 = DAT_1826707a0;
  uVar33 = CONCAT44(DAT_1826709d4,DAT_1826709d4);
  puVar16 = (ulonglong *)(lVar5 - (uVar26 ^ 0xd32c58fa));
  *puVar16 = (*(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar13 ^ 0x412c0e1f)) ^ uVar37) -
             (uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0x4c8)) ^ uVar33;
  *(ulonglong *)(lVar6 + -0x5c0) =
       (*(ulonglong *)(lVar6 + -0x658) ^ uVar15) >>
       ((*(byte *)(lVar6 - (uVar27 ^ 0x373e2c08)) ^ (byte)uVar4) & 0x3f);
  uVar11 = DAT_1826708c0;
  uVar32 = CONCAT44(DAT_182670950,DAT_182670950);
  uVar15 = *(ulonglong *)(lVar6 - (uVar31 ^ 0x920057ea)) ^ uVar32 ^ uVar20 ^ uVar29 ^
           *(ulonglong *)(lVar6 + -0x588);
  *puVar2 = uVar15;
  uVar4 = DAT_182670860;
  uVar24 = CONCAT44(uVar11,uVar11);
  *puVar34 = (uVar15 ^ uVar32) >> (((byte)uVar14 ^ 0x12) & 0x3f) ^ uVar24;
  uVar15 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar6 + -0xd38) = (uVar32 ^ *puVar2) << (((byte)uVar10 ^ 0xe4) & 0x3f) ^ uVar15;
  uVar4 = DAT_182670b0c;
  uVar28 = CONCAT44(DAT_1826709d8,DAT_1826709d8);
  uVar15 = *(ulonglong *)(lVar6 - (uVar17 ^ 0xdefff6c4)) ^ uVar15 | uVar24 ^ *puVar1;
  *(ulonglong *)(lVar6 + -0x558) = uVar15 ^ uVar28;
  uVar11 = DAT_182670968;
  uVar24 = CONCAT44(uVar4,uVar4);
  *puVar30 = (uVar20 ^ *(ulonglong *)(lVar6 + -0x7d8)) - uVar15 ^ uVar24;
  uVar4 = DAT_18267094c;
  uVar20 = CONCAT44(uVar11,uVar11);
  uVar15 = uVar20 ^ uVar28 ^ uVar33 ^ *(ulonglong *)(lVar6 + -0xac0) ^
           *(ulonglong *)(lVar6 + -0x558);
  *(ulonglong *)(lVar6 + -0xc18) = uVar15;
  lVar5 = DAT_1826707a0;
  uVar38 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_1826707a0 - (uVar17 ^ 0xdefffda4)) =
       (uVar15 ^ uVar20) >> ((bVar23 ^ 0x33) & 0x3f) ^ uVar38;
  uVar15 = *(ulonglong *)(lVar5 + -0xac0);
  uVar20 = (uVar20 ^ *(ulonglong *)(lVar5 + -0xc18)) << ((bVar19 ^ 0xcc) & 0x3f);
  *puVar22 = uVar20 ^ CONCAT44(DAT_182670848,DAT_182670848);
  *(undefined8 *)(lVar5 + -0x5c0) = 0xfce52faf51b4d7d3;
  uVar4 = DAT_182670aa4;
  uVar20 = uVar20 | uVar38 ^ *(ulonglong *)(lVar5 + -0x658);
  *(ulonglong *)(lVar5 + -0x588) = uVar20 ^ uVar38;
  uVar11 = DAT_182670acc;
  uVar28 = CONCAT44(uVar4,uVar4);
  *puVar2 = (uVar33 ^ uVar15) - uVar20 ^ uVar28;
  lVar5 = DAT_1826707a0;
  uVar17 = CONCAT44(uVar11,uVar11);
  uVar15 = uVar17 ^ uVar24 ^ uVar41 ^ *(ulonglong *)(DAT_1826707a0 + -0x1b8) ^
           *(ulonglong *)(DAT_1826707a0 + -0x4c8);
  *puVar1 = uVar15;
  uVar20 = (uVar15 ^ uVar17) >> ((bVar19 ^ 0xf9) & 0x3f);
  uVar33 = CONCAT44(DAT_182670a34,DAT_182670a34);
  *(ulonglong *)(lVar5 + -0xd38) = uVar20 ^ CONCAT44(DAT_182670a58,DAT_182670a58);
  uVar4 = DAT_1826709a8;
  *(ulonglong *)(lVar5 + -0x7d8) = (uVar17 ^ uVar15) << (bVar23 & 0x3f) ^ uVar33;
  uVar15 = CONCAT44(uVar4,uVar4);
  uVar20 = *(ulonglong *)(lVar5 - ((ulonglong)uVar36 ^ 0x120007d8)) ^ uVar33 | uVar20;
  uVar35 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(lVar5 + -0x558) = uVar20 ^ uVar15;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xe9c1d224)) =
       (*(ulonglong *)(lVar5 - (uVar27 ^ 0x373e2478)) ^ uVar24) - uVar20 ^ uVar35;
  uVar4 = DAT_18267090c;
  uVar24 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  uVar15 = uVar24 ^ uVar15 ^ uVar28 ^ *(ulonglong *)(lVar5 + -0x558) ^ *puVar2;
  *(ulonglong *)(lVar5 + -0x5c0) = uVar15;
  uVar33 = (uVar15 ^ uVar24) >> ((bVar23 ^ 9) & 0x3f);
  uVar20 = (uVar24 ^ uVar15) << (((byte)uVar39 ^ 0xff) & 0x3f);
  uVar15 = CONCAT44(DAT_182670838,DAT_182670838);
  *(ulonglong *)(lVar5 + -0x658) = uVar33 ^ CONCAT44(uVar4,uVar4);
  *puVar22 = uVar20 ^ uVar15;
  uVar11 = DAT_1826708e8;
  uVar15 = CONCAT44(DAT_182670b14,DAT_182670b14);
  *(ulonglong *)(lVar5 - (uVar40 ^ 0x32d02a8c)) = (uVar20 | uVar33) ^ uVar15;
  uVar20 = CONCAT44(DAT_1826709c4,DAT_1826709c4);
  uVar4 = *(undefined4 *)(lVar5 + -0xcec);
  uVar37 = (*(ulonglong *)(lVar5 - (uVar40 ^ 0x32d0265c)) ^ uVar28) -
           (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar5 + -0xbb0));
  uVar41 = CONCAT44(DAT_18267085c,DAT_18267085c);
  *(ulonglong *)(lVar5 + -0x4c8) = uVar37 ^ uVar20;
  uVar37 = uVar37 - (uVar15 ^ *(ulonglong *)(lVar5 + -0xac0));
  *puVar1 = uVar37 ^ uVar41;
  uVar11 = DAT_1826708b0;
  *(int *)(lVar5 + -0x540) = 0x9688c20 << ((byte)uVar4 & 0x1f);
  uVar4 = DAT_182670ad0;
  lVar6 = DAT_1826707a0;
  uVar33 = CONCAT44(_DAT_182670b10,_DAT_182670b10);
  *(ulonglong *)(lVar5 + -0xd38) =
       (CONCAT44(uVar11,uVar11) ^ *(ulonglong *)(lVar5 + -0xd88)) +
       (*(ulonglong *)(lVar5 + -0x400) ^ uVar20) ^ uVar33;
  uVar7 = DAT_1826707ac;
  uVar20 = (ulonglong)DAT_1826707ac;
  uVar28 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar6 + -0x7d8) =
       (uVar15 ^ *puVar16) - (*(ulonglong *)(lVar6 - (uVar20 ^ 0xe9c1d304)) ^ uVar33) ^ uVar28;
  *(ulonglong *)(lVar6 + -0x1b8) = uVar37 ^ 0xd77c466064e0cbb6;
  uVar27 = *(ulonglong *)(lVar6 - (uVar18 ^ 0xe9c1dbb4)) ^ uVar24 ^ uVar35 ^ uVar38 ^
           *(ulonglong *)(lVar6 + -0xc18);
  *(ulonglong *)(lVar6 + -0x558) = uVar27;
  uVar8 = DAT_1826707f0;
  uVar38 = (ulonglong)DAT_1826707f0;
  uVar14 = (DAT_1826707f0 << 0x10 | DAT_1826707f0 & 0xff00) << 8 | DAT_1826707f0 >> 8 & 0xff00 |
           DAT_1826707f0 >> 0x18;
  DAT_1826707d8 = uVar14;
  *(ulonglong *)(lVar6 + -0x5c0) = uVar37 ^ CONCAT44(DAT_1826707f0,uVar14) ^ 0xd4c719820a607e51;
  uVar4 = DAT_182670af0;
  bVar19 = (byte)(uVar8 >> 0x18);
  uVar33 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(lVar6 + -0x658) = (uVar24 ^ uVar27) >> ((bVar19 ^ 0x70) & 0x3f) ^ uVar33;
  uVar18 = CONCAT44(uVar4,uVar4);
  *puVar22 = **(ulonglong **)(lVar6 - (uVar38 ^ 0x600a2bc0)) ^ uVar18;
  uVar15 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0x600a2b18)) = (uVar24 ^ uVar27) << 0x30 ^ uVar15;
  uVar4 = DAT_182670900;
  *(ulonglong *)(lVar6 + -0x4c8) =
       (*(ulonglong *)(lVar6 - ((ulonglong)uVar14 ^ 0x82d0c38)) ^ uVar33 | *puVar2 ^ uVar15) ^
       uVar32;
  lVar5 = DAT_1826707a0;
  *(ulonglong *)(lVar6 - (uVar38 ^ 0x600a27c8)) =
       (uVar35 ^ *(ulonglong *)(lVar6 + -0xc18)) -
       (CONCAT44(uVar4,uVar4) ^ *(ulonglong *)(lVar6 + -0x438)) ^ uVar17;
  uVar4 = DAT_182670930;
  *(ulonglong *)(lVar5 + -0x588) =
       CONCAT44(uVar14,uVar14) ^ 0x4b39424495fa93ba | CONCAT44(uVar14,uVar8) ^ 0x20c182d6a0c5cdba;
  uVar24 = CONCAT44(uVar4,uVar4);
  uVar15 = *(ulonglong *)(lVar5 + -0x4c8);
  *(ulonglong *)(lVar5 + -0x5c0) =
       (uVar17 ^ *(ulonglong *)(lVar5 + -0xac0)) - (uVar32 ^ *(ulonglong *)(lVar5 + -0x4c8)) ^
       uVar24;
  *puVar22 = *(longlong *)(lVar5 + -0x1b8) - *(longlong *)(lVar5 - (uVar38 ^ 0x600a2cb0));
  uVar4 = DAT_182670844;
  uVar33 = (CONCAT44(uVar14,uVar8) ^ 0xf7d2f59f9ff5d2fa) - (*(ulonglong *)(lVar5 + -0x660) ^ uVar35)
  ;
  *(ulonglong *)(lVar5 + -0x558) = uVar33 ^ CONCAT44(DAT_182670830,DAT_182670830);
  uVar11 = DAT_182670a28;
  uVar17 = CONCAT44(uVar4,uVar4);
  uVar15 = (uVar32 ^ uVar15) + uVar33 ^ uVar17;
  *(ulonglong *)(lVar5 + -0x658) = uVar15;
  uVar4 = DAT_182670964;
  uVar33 = CONCAT44(uVar11,uVar11);
  uVar17 = uVar41 ^ uVar15 ^ *puVar1 ^ uVar33 ^ uVar17;
  *puVar2 = uVar17;
  uVar11 = DAT_182670a38;
  uVar8 = DAT_1826707d4;
  uVar32 = (uVar17 ^ uVar33) >> (bVar19 & 0x3f);
  uVar15 = *puVar1;
  uVar33 = (uVar17 ^ uVar33) << (((byte)uVar36 ^ 0x20) & 0x3f);
  uVar17 = (ulonglong)DAT_1826707d4;
  uVar39 = uVar7 - DAT_1826707d4;
  *(ulonglong *)(lVar5 + -0x588) = uVar33 ^ CONCAT44(DAT_182670870,DAT_182670870);
  *(ulonglong *)(lVar5 + -0xc18) = uVar32 ^ CONCAT44(uVar4,uVar4);
  uVar4 = DAT_18267082c;
  lVar6 = DAT_1826707a0;
  uVar27 = CONCAT44(uVar11,uVar11);
  uVar33 = uVar33 | uVar32;
  DAT_1826707bc = uVar39;
  *(ulonglong *)(lVar5 + -0xac0) = uVar33 ^ uVar27;
  uVar32 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar6 - (uVar17 ^ 0xfbfcdf47)) = (uVar41 ^ uVar15) - uVar33 ^ uVar32;
  *(ulonglong *)(lVar6 - ((ulonglong)uVar39 ^ 0xedc4f6f5)) =
       (*(ulonglong *)(lVar6 - (uVar20 ^ 0xe9c1df84)) ^ uVar32) >>
       ((*(byte *)(lVar6 + -0x1b8) ^ (byte)uVar4) & 0x3f);
  uVar15 = CONCAT44(DAT_182670800,DAT_182670800);
  puVar16 = (ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xfbfcd927));
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xfbfcda37)) =
       uVar28 ^ *(ulonglong *)(lVar6 + -0x5c0) ^ uVar15 ^ uVar24 ^ *puVar16;
  uVar4 = DAT_182670b08;
  uVar33 = CONCAT44(_DAT_1826708f8,_DAT_1826708f8);
  *(ulonglong *)(lVar6 + -0x558) =
       (uVar15 ^ *(ulonglong *)(lVar6 + -0x4c8)) >> (((byte)uVar39 ^ 0x1d) & 0x3f) ^ uVar33;
  lVar5 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xe9c1d864)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar20 ^ 0xe9c1daf4)) ^ uVar15) << 0x20 ^ uVar28;
  lVar6 = DAT_1826707a0;
  uVar17 = CONCAT44(DAT_182670a00,DAT_182670a00);
  uVar15 = *(ulonglong *)(DAT_1826707a0 + -0x5c0);
  uVar28 = *(ulonglong *)(lVar5 + -0x658) ^ uVar28 | *(ulonglong *)(DAT_1826707a0 + -0x558) ^ uVar33
  ;
  uVar33 = uVar28 ^ uVar17;
  *puVar2 = uVar33;
  uVar4 = DAT_182670ad8;
  *(ulonglong *)(lVar6 + -0xc18) = (uVar15 ^ uVar24) - uVar28 ^ uVar29;
  uVar15 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar6 - ((ulonglong)uVar8 ^ 0xfbfcdb77)) =
       uVar33 ^ *(ulonglong *)(lVar6 + -0x1b8) ^ uVar15 ^ uVar17 ^ uVar32;
  *puVar1 = (CONCAT44(uVar8,uVar39) ^ 0xc32d2549963e16bf) + 0x4856879fdfa68403;
  bVar23 = (byte)uVar7;
  uVar17 = (*(ulonglong *)(lVar6 - (uVar20 ^ 0xe9c1dbb4)) ^ uVar15) >> ((bVar23 ^ 6) & 0x3f);
  *puVar22 = uVar17 ^ uVar18;
  uVar4 = DAT_18267091c;
  lVar5 = DAT_1826707a0;
  uVar15 = (*(ulonglong *)(DAT_1826707a0 + -0x588) ^ uVar15) << (((byte)uVar8 ^ 0xf9) & 0x3f);
  *(ulonglong *)(DAT_1826707a0 + -0x7d8) = uVar15 ^ CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar18 = CONCAT44(uVar4,uVar4);
  uVar15 = uVar15 | uVar17;
  uVar24 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(lVar5 + -0x558) = uVar15 ^ uVar18;
  *(ulonglong *)(lVar5 + -0x658) = (*(ulonglong *)(lVar5 + -0x1b8) ^ uVar32) - uVar15 ^ uVar24;
  uVar17 = CONCAT44(DAT_182670adc,DAT_182670adc);
  *(ulonglong *)(lVar5 - (uVar20 ^ 0xe9c1dbfc)) =
       *(ulonglong *)(lVar5 + -0xac0) ^ uVar29 ^ uVar17 ^ uVar27 ^ *(ulonglong *)(lVar5 + -0xc18);
  uVar4 = DAT_182670abc;
  uVar20 = CONCAT44(DAT_182670840,DAT_182670840);
  *puVar2 = (*(ulonglong *)(lVar5 + -0x5c0) ^ uVar17) >> (((byte)uVar39 ^ 0x2b) & 0x3f) ^ uVar20;
  uVar15 = CONCAT44(uVar4,uVar4);
  *puVar1 = (*(ulonglong *)(lVar5 + -0x5c0) ^ uVar17) << (((byte)uVar9 ^ 0x16) & 0x3f) ^ uVar15;
  *(undefined8 *)(lVar5 - (uVar40 ^ 0x32d025c4)) = 0x80b6a1aaaa1640dc;
  uVar4 = DAT_182670864;
  uVar17 = CONCAT44(DAT_182670a04,DAT_182670a04);
  uVar15 = *puVar2 ^ uVar20 | *puVar1 ^ uVar15;
  uVar20 = uVar15 ^ uVar17;
  *(ulonglong *)(lVar5 + -0x4c8) = uVar20;
  uVar28 = CONCAT44(uVar4,uVar4);
  *puVar22 = (uVar29 ^ *(ulonglong *)(lVar5 + -0xc18)) - uVar15 ^ uVar28;
  uVar32 = CONCAT44(DAT_182670a88,DAT_182670a88);
  *puVar16 = *(ulonglong *)(lVar5 + -0x658) ^ uVar32 ^ uVar17 ^ uVar24 ^ uVar20;
  uVar4 = DAT_182670878;
  uVar17 = CONCAT44(DAT_182670928,DAT_182670928);
  uVar15 = (*(ulonglong *)(lVar5 - ((ulonglong)uVar39 ^ 0xedc4f8e5)) ^ uVar32) >>
           ((bVar19 ^ 0x4e) & 0x3f);
  uVar32 = (uVar32 ^ *(ulonglong *)(lVar5 + -0x7d8)) << (((byte)uVar9 ^ 0x2e) & 0x3f);
  *(ulonglong *)(lVar5 + -0xac0) = uVar32 ^ CONCAT44(DAT_1826708d4,DAT_1826708d4);
  uVar20 = CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar5 + -0x1b8) = uVar15 ^ uVar17;
  *(ulonglong *)(lVar5 + -0x5c0) = (uVar32 | uVar15) ^ uVar20;
  uVar4 = DAT_182670a54;
  *(int *)(lVar5 + -0x540) =
       *(int *)(lVar5 + -0xcec) - *(int *)(lVar5 - ((ulonglong)uVar39 ^ 0xedc4fb01));
  uVar11 = DAT_182670ab0;
  *(ulonglong *)(lVar5 - ((ulonglong)uVar14 ^ 0x82d0fe8)) =
       (*(ulonglong *)(lVar5 - (uVar26 ^ 0xd32c5462)) ^ uVar24) -
       (*(ulonglong *)(lVar5 - (uVar25 ^ 0x6dffaa0d)) ^ uVar20) ^ CONCAT44(uVar4,uVar4);
  *puVar2 = *(ulonglong *)(lVar5 - (uVar31 ^ 0x9200556a)) ^ CONCAT44(uVar11,uVar11) ^ uVar28 ^
            uVar18 ^ *puVar22;
  *puVar1 = (CONCAT44(uVar8,uVar21) ^ 0x75945ac74af4ec94) << ((bVar23 ^ 0xc) & 0x3f);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar12 * 4) = uVar3 ^ uVar36;
  return;
}



############ FUN_ 180d1d110 size=5294 ############

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

void FUN_180d1d110(void)

{
  ulonglong *puVar1;
  ulonglong *puVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  byte bVar18;
  ulonglong *puVar19;
  ulonglong *puVar20;
  uint uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  byte bVar25;
  ulonglong uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  uint uVar33;
  ulonglong uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  uint uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  ulonglong uVar44;
  ulonglong uVar45;
  ulonglong uVar46;
  ulonglong uVar47;
  uint uVar48;
  ulonglong uVar49;
  ulonglong uVar50;
  ulonglong uVar51;
  ulonglong uVar52;
  byte local_res20;
  byte local_138;
  byte local_128;
  byte local_110;
  byte local_108;
  ulonglong uVar34;
  
  uVar12 = DAT_1826707f4;
  uVar11 = DAT_1826707f0;
  uVar8 = DAT_1826707e0;
  uVar6 = DAT_1826707c0;
  uVar33 = DAT_1826707b8;
  uVar5 = DAT_1826707a8;
  lVar3 = DAT_1826707a0;
  uVar42 = (ulonglong)DAT_1826707f0;
  uVar28 = (ulonglong)DAT_1826707a8;
  uVar50 = (ulonglong)DAT_1826707b8;
  uVar26 = (ulonglong)DAT_1826707e0;
  DAT_1826707c8 = DAT_1826707a8 - DAT_1826707f4;
  uVar35 = (ulonglong)DAT_1826707c0;
  uVar21 = *(uint *)(&DAT_18260f758 + DAT_182670c30) ^ DAT_1826707f4;
  uVar24 = DAT_1826707f0 ^ DAT_1826707c0;
  uVar17 = *(uint *)(&DAT_18260f760 + DAT_182670c30) ^ DAT_1826707c8;
  uVar48 = DAT_1826707b8 + DAT_1826707e0;
  uVar30 = CONCAT44(DAT_18267086c,DAT_18267086c);
  uVar31 = (uVar30 ^ *(ulonglong *)(DAT_1826707a0 + -0xa18)) << 0x29;
  uVar22 = ((ulonglong)(DAT_18267086c >> 0x17) | (ulonglong)DAT_18267086c << 9) ^
           *(ulonglong *)(DAT_1826707a0 + -0xa18) >> 0x17;
  puVar2 = (ulonglong *)(DAT_1826707a0 + -0xd38);
  DAT_1826707ac = uVar48;
  DAT_1826707c4 = uVar24;
  *puVar2 = uVar22 ^ CONCAT44(DAT_182670ae4,DAT_182670ae4);
  *(ulonglong *)(lVar3 + -0xf0) = uVar31 ^ CONCAT44(DAT_18267089c,DAT_18267089c);
  *(uint *)(lVar3 + -0x598) = (uVar5 ^ 0x959fad45) + 0x4e5dc7dd;
  uVar14 = DAT_182670ab4;
  uVar13 = DAT_182670a2c;
  lVar4 = DAT_1826707a0;
  uVar31 = uVar31 | uVar22;
  uVar47 = CONCAT44(DAT_182670904,DAT_182670904);
  *(ulonglong *)(lVar3 + -0x118) = uVar31 ^ uVar47;
  uVar45 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x9d1454e9)) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar6 ^ 0x3cdecc61)) ^ CONCAT44(uVar13,uVar13)) - uVar31
       ^ uVar45;
  lVar3 = DAT_1826707a0;
  uVar43 = CONCAT44(DAT_182670810,DAT_182670810);
  uVar22 = (ulonglong)uVar24;
  uVar23 = *(ulonglong *)(DAT_1826707a0 - (uVar22 ^ 0xa1ca9fb8)) ^
           CONCAT44(DAT_182670a54,DAT_182670a54) ^ *(ulonglong *)(DAT_1826707a0 + -0x420) ^ uVar43;
  uVar36 = CONCAT44(_DAT_1826708bc,_DAT_1826708bc);
  *(ulonglong *)(DAT_1826707a0 + -0xbb0) = uVar23 ^ CONCAT44(DAT_18267099c,DAT_18267099c);
  lVar4 = DAT_1826707a0;
  bVar25 = (byte)uVar8;
  uVar31 = (ulonglong)uVar12;
  *(ulonglong *)(lVar3 + -0x660) = uVar23 >> (bVar25 & 0x3f) ^ uVar36;
  *(uint *)(lVar3 + -0xcec) = *(uint *)(lVar3 + -0x7e4) | 0x8afba7ac;
  uVar32 = CONCAT44(DAT_18267084c,DAT_18267084c);
  *(ulonglong *)(lVar4 + -0x220) = uVar23 << (((byte)uVar12 ^ 0xe7) & 0x3f) ^ uVar32;
  *(ulonglong *)(lVar4 - (uVar50 ^ 0x920058a2)) =
       *(ulonglong *)(lVar4 + -0x588) | 0x417ed756173bb3c4;
  uVar23 = CONCAT44(DAT_182670940,DAT_182670940);
  uVar32 = uVar36 ^ *(ulonglong *)(lVar4 + -0x660) | *(ulonglong *)(lVar4 + -0x220) ^ uVar32;
  uVar37 = uVar32 ^ uVar23;
  uVar27 = CONCAT44(DAT_1826707fc,DAT_1826707fc);
  *(ulonglong *)(lVar4 + -0x68) = uVar37;
  uVar32 = (*(ulonglong *)(lVar4 + -0x658) ^ uVar43) - uVar32;
  uVar29 = uVar32 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x6b8) = uVar29;
  uVar43 = CONCAT44(DAT_1826708a0,DAT_1826708a0);
  uVar36 = CONCAT44(_DAT_18267097c,_DAT_18267097c);
  uVar23 = *(ulonglong *)(lVar4 - (uVar35 ^ 0x3cdecd09)) ^ uVar43 ^ uVar37 ^ uVar23 ^ uVar45;
  *(ulonglong *)(lVar4 + -0xa18) = uVar23;
  uVar38 = (uVar43 ^ uVar23) >> (((byte)uVar33 ^ 6) & 0x3f);
  *puVar2 = uVar38 ^ uVar36;
  uVar13 = DAT_182670920;
  local_res20 = (byte)uVar5;
  uVar23 = (uVar43 ^ uVar23) << ((local_res20 ^ 0x24) & 0x3f);
  *(ulonglong *)(lVar4 + -0xf0) = uVar23 ^ CONCAT44(DAT_18267083c,DAT_18267083c);
  uVar14 = DAT_182670aa4;
  uVar10 = DAT_1826707ec;
  lVar3 = DAT_1826707a0;
  uVar37 = (ulonglong)DAT_1826707ec;
  uVar49 = CONCAT44(uVar13,uVar13);
  uVar38 = uVar38 | uVar23;
  *(ulonglong *)(lVar4 + -0xd88) = uVar38 ^ uVar49;
  uVar43 = CONCAT44(uVar14,uVar14);
  uVar39 = CONCAT44(DAT_182670818,DAT_182670818);
  *(ulonglong *)(lVar3 + -0x420) = (*(ulonglong *)(lVar3 + -0xce0) ^ uVar45) - uVar38 ^ uVar43;
  uVar7 = DAT_1826707d0;
  uVar23 = (ulonglong)DAT_1826707d0;
  uVar33 = DAT_1826707d0 & uVar10;
  uVar34 = (ulonglong)uVar33;
  uVar29 = *(ulonglong *)(lVar3 + -0x118) ^ uVar39 ^ uVar27 ^ uVar47 ^ uVar29;
  DAT_1826707d8 = uVar33;
  *(ulonglong *)(lVar3 + -0xbb0) = uVar29;
  uVar9 = DAT_1826707e4;
  uVar40 = (ulonglong)DAT_1826707e4;
  bVar18 = (byte)uVar10;
  uVar36 = CONCAT44(DAT_182670a50,DAT_182670a50);
  *(ulonglong *)(lVar3 + -0x588) = (uVar39 ^ uVar29) >> ((bVar18 ^ 0xc6) & 0x3f) ^ uVar36;
  uVar41 = ~uVar9;
  DAT_1826707e8 = uVar41;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar41 ^ 0xcbbf4d2e)) = uVar32 + 0xcb619a5f1e49a57c;
  uVar32 = CONCAT44(DAT_182670aa0,DAT_182670aa0);
  *(ulonglong *)(lVar3 + -0x220) =
       (*(ulonglong *)(lVar3 + -0xbb0) ^ uVar39) << (((byte)uVar33 ^ 0x51) & 0x3f) ^ uVar32;
  uVar13 = DAT_182670808;
  lVar4 = DAT_1826707a0;
  uVar47 = CONCAT44(DAT_182670af8,DAT_182670af8);
  uVar32 = *(ulonglong *)(lVar3 - ((ulonglong)uVar7 ^ 0xff0fad76)) ^ uVar32 |
           uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0x588);
  *(uint *)(DAT_1826707a0 + -0x3d4) = (uVar41 ^ 0xdddccd14) * (uVar9 ^ 0x5f035291);
  *(ulonglong *)(lVar4 + -0x660) = uVar32 ^ uVar47;
  uVar14 = DAT_182670a10;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 + -0x658) =
       (*(ulonglong *)(lVar4 - ((ulonglong)uVar7 ^ 0xff0fa9ee)) ^ uVar27) - uVar32 ^ uVar36;
  uVar13 = DAT_1826709ac;
  uVar29 = CONCAT44(uVar14,uVar14);
  local_108 = (byte)uVar9;
  uVar32 = *(ulonglong *)(lVar4 - ((ulonglong)uVar33 ^ 0xfb0c8836)) ^ uVar29 ^
           *(ulonglong *)(lVar4 + -0x420) ^ uVar47 ^ uVar43;
  *(ulonglong *)(lVar4 + -0x68) = uVar32;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar4 - (uVar31 ^ 0x29ac94e7)) =
       (uVar32 ^ uVar29) >> ((local_108 ^ 0x4f) & 0x3f) ^ uVar27;
  puVar19 = (ulonglong *)(lVar4 - (uVar35 ^ 0x3cdecbf1));
  *(ulonglong *)(lVar4 - (uVar22 ^ 0xa1ca94d8)) =
       (CONCAT44(uVar11,uVar41) ^ 0x9c52d4083affe00) + (uVar27 ^ *puVar19);
  uVar13 = DAT_182670830;
  uVar29 = (uVar29 ^ *(ulonglong *)(lVar4 + -0x68)) << ((bVar25 ^ 0x1a) & 0x3f);
  *(ulonglong *)(lVar4 + -0xf0) = uVar29 ^ CONCAT44(DAT_182670954,DAT_182670954);
  uVar16 = DAT_182670adc;
  uVar14 = DAT_1826708b8;
  uVar33 = DAT_1826707c8;
  uVar29 = uVar29 | uVar27 ^ *(ulonglong *)(lVar4 + -0xa18);
  *(ulonglong *)(lVar4 + -0xce0) = uVar29 ^ CONCAT44(uVar13,uVar13);
  uVar15 = DAT_182670ac4;
  uVar32 = (*(ulonglong *)(lVar4 - (uVar37 ^ 0xfbfcdadf)) ^ uVar43) -
           (CONCAT44(uVar16,uVar16) ^ *(ulonglong *)(lVar4 + -0x1b8));
  *(ulonglong *)(lVar4 + -0x118) = uVar32 ^ CONCAT44(uVar14,uVar14);
  uVar13 = DAT_182670970;
  lVar3 = DAT_1826707a0;
  uVar43 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0x890) = uVar32 - uVar29 ^ uVar43;
  uVar32 = CONCAT44(uVar13,uVar13);
  uVar51 = CONCAT44(DAT_182670800,DAT_182670800);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar41 ^ 0xcbbf4e0e)) =
       uVar29 - (*(ulonglong *)(lVar3 + -0x2b0) ^ uVar32) ^ uVar51;
  uVar29 = CONCAT44(DAT_182670814,DAT_182670814);
  *(ulonglong *)(lVar3 + -0x588) =
       *(ulonglong *)(lVar3 - (uVar34 ^ 0xfb0c83de)) ^ *(ulonglong *)(lVar3 + -0x658) ^ uVar29 ^
       uVar36 ^ uVar49;
  lVar4 = DAT_1826707a0;
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xfbfcdcdf)) =
       (CONCAT44(uVar33,uVar12) ^ 0xa0f6f5f0b0b1a7d6) + 0x5a39159e19c316fa;
  uVar27 = CONCAT44(DAT_182670958,DAT_182670958);
  local_138 = (byte)uVar24;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar41 ^ 0xcbbf4306)) =
       (uVar29 ^ *(ulonglong *)(lVar4 + -0x588)) >> ((local_138 ^ 0xf0) & 0x3f) ^ uVar27;
  lVar3 = DAT_1826707a0;
  uVar38 = CONCAT44(DAT_182670a64,DAT_182670a64);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xfb0c8bde)) ^ uVar29) <<
       (((byte)uVar7 ^ 0x66) & 0x3f) ^ uVar38;
  *(longlong *)(lVar3 - (uVar31 ^ 0x29ac93c7)) = 0x7a21ff0eb5907d62 << (((byte)uVar7 ^ 0x42) & 0x3f)
  ;
  uVar13 = DAT_182670854;
  uVar29 = CONCAT44(DAT_1826708e0,DAT_1826708e0);
  uVar27 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x600a2b48)) ^ uVar38 |
           uVar27 ^ *(ulonglong *)(lVar3 + -0x6b8);
  puVar1 = (ulonglong *)(lVar3 + -0x400);
  *(ulonglong *)(lVar3 + -0xa18) =
       (CONCAT44(uVar11,uVar33) ^ 0x92007b5c83126118) + 0x4789dea5b5d892fb;
  uVar14 = DAT_182670a40;
  *(ulonglong *)(lVar3 + -0x68) = uVar27 ^ uVar29;
  uVar15 = DAT_182670a8c;
  uVar36 = (*(ulonglong *)(lVar3 + -0x658) ^ uVar36) - (CONCAT44(uVar13,uVar13) ^ *puVar1);
  *(ulonglong *)(lVar3 + -0xf0) = uVar36 ^ CONCAT44(uVar14,uVar14);
  uVar13 = DAT_182670910;
  uVar46 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar3 + -0x1b8) = uVar36 - uVar27 ^ uVar46;
  uVar36 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 + -0x420) =
       (CONCAT44(uVar5,uVar48) ^ 0x9ff5d2d70df582a4) -
       (*(ulonglong *)(lVar3 - (uVar50 ^ 0x920056c2)) ^ uVar38) ^ uVar36;
  uVar13 = DAT_182670a44;
  uVar49 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  uVar36 = (*(ulonglong *)(lVar3 - (uVar42 ^ 0x9d145c29)) ^ uVar36) + uVar27 ^ uVar49;
  *(ulonglong *)(lVar3 + -0x118) = uVar36;
  uVar27 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar3 - (uVar31 ^ 0x29ac921f)) =
       uVar27 ^ uVar36 ^ uVar49 ^ uVar43 ^ *(ulonglong *)(lVar3 + -0x890);
  uVar36 = CONCAT44(DAT_1826709c0,DAT_1826709c0);
  *(ulonglong *)(lVar3 - (uVar22 ^ 0xa1ca9468)) =
       (*(ulonglong *)(lVar3 + -0xce0) ^ uVar27) >> (((byte)uVar33 ^ 9) & 0x3f) ^ uVar36;
  lVar3 = DAT_1826707a0;
  puVar20 = (ulonglong *)(DAT_1826707a0 + -0xce0);
  *(ulonglong *)(DAT_1826707a0 + -0x220) =
       (CONCAT44(uVar8,uVar6) ^ 0xbbfe3bc0fe00bdf9) - (CONCAT44(uVar24,uVar9) ^ 0x9738c00e20233d65);
  uVar22 = CONCAT44(_DAT_1826708c8,_DAT_1826708c8);
  *(ulonglong *)(lVar3 - (uVar37 ^ 0xfbfcdb77)) =
       (*puVar20 ^ uVar27) << ((local_res20 ^ 8) & 0x3f) ^ uVar22;
  uVar38 = CONCAT44(DAT_182670868,DAT_182670868);
  uVar22 = uVar22 ^ *(ulonglong *)(lVar3 + -0x588) | *(ulonglong *)(lVar3 + -0xd88) ^ uVar36;
  *puVar2 = uVar22 ^ uVar38;
  uVar14 = DAT_182670ab8;
  puVar20 = (ulonglong *)(lVar3 - (uVar31 ^ 0x29ac9377));
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar36 ^ *puVar20) << 0x27;
  uVar13 = DAT_182670a5c;
  lVar3 = DAT_1826707a0;
  uVar45 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 + -0x660) =
       (uVar43 ^ *(ulonglong *)(DAT_1826707a0 + -0x890)) - uVar22 ^ uVar45;
  uVar36 = CONCAT44(uVar13,uVar13);
  uVar22 = uVar36 ^ uVar46 ^ uVar51 ^ *(ulonglong *)(lVar3 + -0xbb0) ^
           *(ulonglong *)(lVar3 + -0x1b8);
  uVar51 = CONCAT44(DAT_182670804,DAT_182670804);
  *(ulonglong *)(lVar3 + -0xa18) = uVar22;
  local_110 = (byte)uVar48;
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x9d145c09)) =
       (uVar22 ^ uVar36) >> ((bVar18 ^ 0xdf) & 0x3f) ^ uVar51;
  uVar13 = DAT_182670a7c;
  uVar27 = CONCAT44(DAT_182670a4c,DAT_182670a4c);
  *(ulonglong *)(lVar3 + -0x658) =
       (uVar36 ^ *(ulonglong *)(lVar3 + -0xa18)) << ((local_110 ^ 0x7a) & 0x3f) ^ uVar27;
  uVar6 = DAT_182670a00;
  lVar4 = DAT_1826707a0;
  uVar29 = CONCAT44(uVar13,uVar13);
  uVar36 = (ulonglong)DAT_182670a00;
  uVar22 = *(ulonglong *)(DAT_1826707a0 + -0x660);
  uVar44 = *(ulonglong *)(lVar3 - (uVar34 ^ 0xfb0c880e)) ^ uVar27 | uVar51 ^ *puVar1;
  uVar27 = uVar44 ^ uVar29;
  *(ulonglong *)(lVar3 + -0xf0) = uVar27;
  uVar13 = DAT_18267085c;
  uVar46 = (uVar46 ^ *(ulonglong *)(lVar3 + -0x1b8)) - uVar44 ^ uVar39;
  *(ulonglong *)(lVar3 + -0x420) = uVar46;
  uVar15 = DAT_182670ae0;
  uVar51 = CONCAT44(uVar6,uVar6);
  uVar52 = CONCAT44(uVar13,uVar13);
  uVar27 = uVar51 ^ uVar29 ^ uVar45 ^ uVar22 ^ uVar27;
  *(ulonglong *)(lVar4 + -0x220) = (CONCAT44(uVar33,uVar5) ^ 0x52b90c675b5f959d) - uVar44;
  *(ulonglong *)(lVar4 + -0x68) = uVar27;
  uVar29 = (uVar27 >> 0x20 ^ uVar36) >> 0x1a;
  *(ulonglong *)(lVar4 + -0x118) = uVar29 ^ uVar52;
  uVar14 = DAT_182670930;
  uVar36 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar4 + -0xce0) = (uVar51 ^ uVar27) << ((bVar18 ^ 0xf9) & 0x3f) ^ uVar36;
  uVar13 = DAT_18267092c;
  uVar44 = CONCAT44(uVar14,uVar14);
  *(ulonglong *)(lVar4 + -0x588) =
       (*(ulonglong *)(lVar4 - (uVar23 ^ 0xff0fa3b6)) ^ uVar36 | uVar29) ^ uVar44;
  uVar51 = CONCAT44(uVar13,uVar13);
  uVar36 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  *(ulonglong *)(lVar4 + -0x6b8) =
       (uVar45 ^ uVar22) - (*(ulonglong *)(lVar4 - (uVar35 ^ 0x3cdec461)) ^ uVar44) ^ uVar51;
  uVar13 = DAT_182670880;
  uVar5 = DAT_1826707c8;
  local_128 = (byte)uVar11;
  uVar22 = *(ulonglong *)(lVar4 - (uVar28 ^ 0x600a2010)) ^ uVar36 ^ uVar38 ^ uVar46 ^ uVar39;
  uVar23 = CONCAT44(DAT_1826708d0,DAT_1826708d0);
  uVar38 = (ulonglong)DAT_1826707c8;
  *(ulonglong *)(lVar4 + -0xd88) = uVar22;
  *(ulonglong *)(lVar4 + -0x890) = (uVar22 ^ uVar36) >> ((local_128 ^ 0x1f) & 0x3f) ^ uVar23;
  uVar36 = (uVar36 ^ uVar22) << (((byte)uVar5 ^ 3) & 0x3f);
  uVar22 = CONCAT44(DAT_182670988,DAT_182670988);
  *(ulonglong *)(lVar4 + -0xbb0) = uVar36 ^ CONCAT44(uVar13,uVar13);
  lVar3 = DAT_1826707a0;
  *puVar19 = (*(ulonglong *)(lVar4 - (uVar26 ^ 0x600a25b8)) ^ uVar23 | uVar36) ^ uVar22;
  *(ulonglong *)(lVar3 - (uVar50 ^ 0x92005432)) =
       (*(ulonglong *)(lVar3 + -0x420) ^ uVar39) -
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0xfb0c844e)) ^ uVar22) ^ uVar52;
  *(ulonglong *)(lVar3 + -0x658) = 0xbb0de552d72c6f3a >> (((byte)uVar12 ^ 0xf1) & 0x3f);
  uVar36 = CONCAT44(DAT_1826708e4,DAT_1826708e4);
  *(ulonglong *)(lVar3 - (uVar42 ^ 0x9d1459b1)) =
       uVar36 ^ uVar22 ^ uVar51 ^ *(ulonglong *)(lVar3 + -0x6b8) ^ *(ulonglong *)(lVar3 + -0xa18);
  lVar3 = DAT_1826707a0;
  uVar29 = CONCAT44(DAT_182670848,DAT_182670848);
  uVar23 = CONCAT44(DAT_182670a74,DAT_182670a74);
  *(ulonglong *)(DAT_1826707a0 + -0xf0) =
       (uVar36 ^ *(ulonglong *)(DAT_1826707a0 + -0x1b8)) >> ((local_108 ^ 0x6f) & 0x3f) ^ uVar29;
  uVar22 = (*(ulonglong *)(lVar3 - (uVar50 ^ 0x9200518a)) ^ uVar36) << ((local_110 ^ 0x48) & 0x3f);
  *(ulonglong *)(lVar3 + -0x220) = uVar22 ^ uVar23;
  *(int *)(lVar3 + -0x3d4) = *(int *)(lVar3 + -0x43c) * *(int *)(lVar3 + -0x43c);
  uVar27 = CONCAT44(DAT_182670a68,DAT_182670a68);
  *(ulonglong *)(lVar3 - (uVar34 ^ 0xfb0c8e3e)) =
       (*(ulonglong *)(lVar3 - (uVar34 ^ 0xfb0c8ea6)) ^ uVar29 | uVar22) ^ uVar27;
  uVar5 = DAT_182670a28;
  uVar13 = DAT_182670820;
  uVar23 = CONCAT44(DAT_182670934,DAT_182670934);
  *(ulonglong *)(lVar3 + -0x118) =
       (uVar51 ^ *(ulonglong *)(lVar3 + -0x6b8)) -
       (*(ulonglong *)(lVar3 - (uVar50 ^ 0x9200505a)) ^ uVar27) ^ uVar23;
  uVar29 = CONCAT44(uVar5,uVar5) ^ uVar44 ^ uVar52 ^ *(ulonglong *)(lVar3 + -0x588) ^ *puVar1;
  *(ulonglong *)(lVar3 + -0xce0) = uVar29;
  uVar36 = ((ulonglong)uVar5 << 0x14 | (ulonglong)(uVar5 >> 0xc)) ^
           *(ulonglong *)(lVar3 - (uVar37 ^ 0xfbfcd21f)) >> 0xc;
  uVar22 = CONCAT44(DAT_1826709bc,DAT_1826709bc);
  uVar37 = (uVar29 ^ CONCAT44(uVar5,uVar5)) << ((local_138 ^ 0xd4) & 0x3f);
  *(ulonglong *)(lVar3 + -0x660) = uVar36 ^ CONCAT44(uVar13,uVar13);
  *puVar2 = uVar37 ^ uVar22;
  uVar22 = CONCAT44(DAT_1826708ec,DAT_1826708ec);
  *(ulonglong *)(lVar3 - (uVar28 ^ 0x600a20a0)) = (uVar36 | uVar37) ^ uVar22;
  uVar29 = CONCAT44(DAT_182670b08,DAT_182670b08);
  *(ulonglong *)(lVar3 + -0x890) =
       (uVar52 ^ *puVar1) - (uVar22 ^ *(ulonglong *)(lVar3 + -0xd88)) ^ uVar29;
  uVar22 = *(ulonglong *)(lVar3 - (uVar31 ^ 0x29ac9fe7)) ^ uVar22 ^ uVar23 ^
           *(ulonglong *)(lVar3 + -0xd88);
  *(ulonglong *)(lVar3 + -0xbb0) = uVar22 ^ uVar49;
  uVar31 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  *(ulonglong *)(lVar3 - (uVar38 ^ 0x365d8a09)) = uVar22 >> ((bVar25 ^ 0x31) & 0x3f) ^ uVar31;
  uVar36 = (uVar49 ^ *(ulonglong *)(lVar3 + -0xbb0)) << 0x27;
  *(ulonglong *)(lVar3 + -0x658) =
       *(ulonglong *)(CONCAT44(DAT_18267090c,DAT_18267090c) ^ *(ulonglong *)(lVar3 + -0x58)) ^
       CONCAT44(DAT_182670980,DAT_182670980);
  uVar13 = DAT_182670894;
  *(ulonglong *)(lVar3 + -0xa18) = uVar36 ^ uVar43;
  uVar37 = CONCAT44(uVar13,uVar13);
  uVar36 = uVar36 | *(ulonglong *)(lVar3 + -0x420) ^ uVar31;
  uVar22 = CONCAT44(DAT_182670860,DAT_182670860);
  *(ulonglong *)(lVar3 + -0x1b8) = uVar36 ^ uVar37;
  uVar31 = (uVar23 ^ *(ulonglong *)(lVar3 + -0x118)) -
           (*(ulonglong *)(lVar3 - (uVar38 ^ 0x365d8819)) ^ uVar39);
  *(ulonglong *)(lVar3 + -0xf0) = uVar31 ^ uVar22;
  uVar14 = DAT_182670a20;
  *(ulonglong *)(lVar3 + -0x220) = uVar31 - uVar36 ^ uVar30;
  uVar22 = *(ulonglong *)(lVar3 - (uVar28 ^ 0x600a2658));
  uVar43 = uVar29 ^ uVar27 ^ uVar47 ^ *(ulonglong *)(lVar3 + -0x890) ^ *(ulonglong *)(lVar3 + -0x68)
  ;
  uVar31 = *(ulonglong *)(lVar3 - ((ulonglong)uVar48 ^ 0xf20a7ce2));
  *(ulonglong *)(lVar3 + -0x588) = uVar43;
  uVar13 = DAT_1826709a8;
  uVar36 = (uVar47 ^ uVar43) >> (((byte)uVar41 ^ 0x9f) & 0x3f);
  *(ulonglong *)(lVar3 + -0x6b8) = (uVar31 ^ uVar37) - (uVar22 ^ uVar32) ^ CONCAT44(uVar14,uVar14);
  uVar23 = CONCAT44(uVar13,uVar13);
  uVar31 = (uVar47 ^ uVar43) << ((bVar25 ^ 0x37) & 0x3f);
  uVar22 = CONCAT44(DAT_182670acc,DAT_182670acc);
  *(ulonglong *)(lVar3 + -0xce0) = uVar36 ^ uVar23;
  *(ulonglong *)(lVar3 + -0x660) = uVar31 ^ uVar22;
  uVar22 = *(ulonglong *)(lVar3 - (uVar40 ^ 0x3440b6a1)) ^ CONCAT44(uVar10,uVar10) ^ uVar23 ^
           0xf21f0bbe939daa13;
  *puVar2 = uVar22;
  *puVar1 = (uVar36 | uVar31) ^ CONCAT44(DAT_1826708ac,DAT_1826708ac);
  *puVar20 = (CONCAT44(uVar24,uVar24) ^ 0xc59e13e1f94dcf2e) + uVar22;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar17 * 4) = uVar21;
  return;
}



############ FUN_ 180c7c230 size=5045 ############

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

void FUN_180c7c230(void)

{
  longlong lVar1;
  uint uVar2;
  longlong lVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined4 uVar17;
  ulonglong uVar18;
  byte *pbVar19;
  ulonglong uVar20;
  uint uVar21;
  uint uVar22;
  ulonglong uVar23;
  ulonglong uVar24;
  longlong lVar25;
  uint uVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  ulonglong uVar29;
  ulonglong *puVar30;
  byte bVar31;
  ulonglong uVar32;
  byte bVar33;
  ulonglong uVar34;
  uint uVar35;
  ulonglong uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  
  uVar17 = DAT_1826709a4;
  uVar4 = DAT_182670850;
  uVar9 = DAT_1826707cc;
  uVar6 = DAT_1826707ac;
  lVar1 = DAT_1826707a0;
  uVar20 = (ulonglong)DAT_1826707ac;
  uVar36 = (ulonglong)DAT_1826707cc;
  uVar37 = (ulonglong)DAT_1826707ac;
  uVar26 = DAT_1826707cc - DAT_1826707ac;
  uVar21 = *(uint *)(&DAT_18260f758 + DAT_182670d34) ^ DAT_1826707cc;
  uVar2 = *(uint *)(&DAT_18260f750 + (uVar20 ^ 0xa0262d8f) + (longlong)DAT_182670d34);
  uVar34 = CONCAT44(DAT_182670974,DAT_182670974);
  uVar27 = CONCAT44(DAT_182670a64,DAT_182670a64);
  uVar23 = CONCAT44(DAT_1826707ac,uVar26);
  uVar18 = CONCAT44(DAT_1826709a4,DAT_1826709a4);
  DAT_1826707dc = uVar26;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar26 ^ 0x21c31b07)) =
       *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 + -0x518) ^ uVar18) ^ uVar27 ^ uVar34;
  bVar31 = (byte)uVar4 ^ (byte)DAT_182670aa4;
  *(ulonglong *)(lVar1 + -0xac0) =
       (*(ulonglong *)(lVar1 + -0xd38) ^ uVar34) >> (((byte)uVar26 ^ 0x37) & 0x3f) ^
       CONCAT44(uVar4,uVar4);
  *(byte *)(lVar1 - (uVar36 ^ 0xc1e9448f)) = bVar31 ^ *(byte *)(lVar1 + -0xac0);
  uVar24 = CONCAT44(DAT_182670838,DAT_182670838);
  uVar34 = (ulonglong)DAT_182670af0;
  *(ulonglong *)(lVar1 + -0x558) =
       (uVar24 ^ *(ulonglong *)(lVar1 + -0x6b8)) - (CONCAT44(uVar26,uVar9) ^ 0xce126d0b6f8547d9);
  pbVar19 = (byte *)((CONCAT44(uVar6,uVar9) ^ 0xa0262d9fc1e943cf) + *(longlong *)(lVar1 + -0x30));
  *(ulonglong *)(lVar1 + -0x218) = (ulonglong)pbVar19 ^ uVar34;
  uVar4 = DAT_1826709e4;
  *pbVar19 = *(byte *)(lVar1 + -0x751) ^ (byte)DAT_182670adc ^ (byte)DAT_182670aa4;
  uVar5 = DAT_182670858;
  puVar30 = (ulonglong *)(*(longlong *)(lVar1 + -0xb00) + (uVar23 ^ 0xa0262d9f21c3163d) * 8);
  *(ulonglong *)(lVar1 + -0xd00) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670a20,DAT_182670a20);
  uVar23 = *puVar30 ^ CONCAT44(uVar5,uVar5) ^ uVar27;
  *(ulonglong *)(lVar1 + -0x610) = uVar23;
  bVar31 = (byte)uVar4 ^ (byte)DAT_182670894;
  uVar34 = (ulonglong)DAT_182670a88;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar26 ^ 0x21c313b7)) =
       (uVar23 ^ CONCAT44(uVar5,uVar5)) >> (((byte)uVar9 ^ 0xce) & 0x3f) ^ CONCAT44(uVar4,uVar4);
  *(byte *)(lVar1 + -0xaea) = bVar31 ^ *(byte *)(lVar1 + -0x588);
  lVar25 = (CONCAT44(uVar9,uVar9) ^ 0xc1e943dec1e943de) * 0x20;
  *(ulonglong *)(lVar1 - ((ulonglong)uVar6 ^ 0xa02627ff)) =
       (CONCAT44(uVar9,uVar6) ^ 0xc1e943dea0262d8d) + lVar25 + *(longlong *)(lVar1 + -0x30) ^ uVar34
  ;
  *(uint *)(lVar1 - ((ulonglong)uVar9 ^ 0xc1e9469e)) =
       (uVar9 ^ 0xe98f207f) + *(int *)(lVar1 + -0x814);
  uVar12 = DAT_182670870;
  uVar10 = DAT_1826707d0;
  uVar29 = (ulonglong)DAT_182670870;
  uVar28 = CONCAT44(DAT_182670870,DAT_182670870);
  *(byte *)(*(ulonglong *)(lVar1 + -0xa60) ^ uVar34) =
       *(byte *)(lVar1 - ((ulonglong)uVar26 ^ 0x21c31cd5)) ^ (byte)DAT_182670894 ^
       (byte)DAT_182670adc;
  uVar4 = _DAT_182670b10;
  *(uint *)(lVar1 + -0x68c) = (uVar26 ^ 0xecb442aa) + 0xfdcc7983;
  uVar22 = DAT_1826707b8;
  lVar3 = DAT_1826707a0;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb00) + (CONCAT44(uVar10,uVar26) ^ 0xbbf1bdf21c3163d) * 8);
  uVar38 = (ulonglong)DAT_1826707b8;
  *(ulonglong *)(lVar1 + -0x428) = (ulonglong)puVar30 ^ CONCAT44(uVar4,uVar4);
  uVar4 = DAT_182670ab8;
  bVar31 = (byte)DAT_182670a3c;
  uVar35 = DAT_1826707c0;
  uVar32 = (ulonglong)DAT_1826707c0;
  uVar23 = (ulonglong)DAT_182670848;
  *(ulonglong *)(lVar1 - (uVar37 ^ 0xa0262b6f)) = uVar28 ^ *puVar30 ^ uVar27;
  uVar7 = DAT_1826707f0;
  uVar34 = ((ulonglong)(uVar12 >> 0x18) | uVar29 << 8) ^ *(ulonglong *)(lVar3 + -0x6f0) >> 0x18 ^
           CONCAT44(uVar4,uVar4);
  bVar33 = (byte)uVar4 ^ bVar31 ^ (byte)uVar34;
  *(ulonglong *)(lVar3 + -0x220) = uVar34;
  uVar34 = CONCAT44(DAT_1826707ec,uVar7);
  *(byte *)(lVar3 + -0x471) = bVar33;
  bVar31 = bVar31 ^ bVar33 ^ (byte)DAT_182670adc;
  *(ulonglong *)(lVar3 + -0x1c8) =
       (uVar34 ^ 0x13d5d7e07c2d7851) + (CONCAT44(uVar35,uVar22) ^ 0x8faf41040816bc01) * 0x20 +
       *(longlong *)(lVar3 + -0x30) ^ uVar23;
  uVar4 = DAT_1826707a8;
  uVar28 = CONCAT44(DAT_182670970,DAT_182670970);
  *(byte *)(*(ulonglong *)(lVar3 - (uVar20 ^ 0xa0262c57)) ^ uVar23) = bVar31;
  uVar29 = (ulonglong)DAT_182670a54;
  uVar23 = CONCAT44(DAT_182670a54,DAT_182670a54);
  *(ulonglong *)(lVar3 + -0xb50) =
       *(longlong *)(lVar3 + -0xb00) + (CONCAT44(uVar26,uVar4) ^ 0x21c3163f0856bf59) * 8 ^ uVar28;
  uVar22 = DAT_1826707b4;
  lVar1 = DAT_1826707a0;
  uVar34 = (ulonglong)DAT_1826707e4;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)DAT_1826707b4 ^ 0xefcdfbf6)) =
       (uVar24 ^ *(ulonglong *)(DAT_1826707a0 + -0x6b8)) >>
       (((byte)uVar5 ^ *(byte *)(DAT_1826707a0 + -0x610)) & 0x3f);
  uVar5 = DAT_1826708a8;
  *(ulonglong *)(lVar1 - (uVar34 ^ 0xc4c78e11)) =
       uVar23 ^ *(ulonglong *)(uVar28 ^ *(ulonglong *)(lVar1 + -0xb50)) ^ uVar27;
  *(ulonglong *)(lVar1 + -0xf0) =
       CONCAT44(uVar5,uVar5) ^ *(ulonglong *)(lVar1 + -0x420) >> 0x20 ^ uVar29;
  uVar34 = (ulonglong)DAT_1826708a4;
  *(byte *)(lVar1 - (uVar20 ^ 0xa026208e)) =
       *(byte *)(lVar1 - ((ulonglong)uVar26 ^ 0x21c316cf)) ^ (byte)uVar5 ^ (byte)DAT_182670b00;
  uVar11 = DAT_1826707d8;
  lVar3 = DAT_1826707a0;
  pbVar19 = (byte *)(*(longlong *)(lVar1 - (uVar32 ^ 0x8faf4134)) +
                     (CONCAT44(uVar4,DAT_1826707e8) ^ 0x856bf5babab220e) + lVar25);
  bVar31 = *(byte *)(lVar1 + -0xd11) ^ (byte)DAT_182670adc ^ (byte)DAT_182670b00;
  *(ulonglong *)(lVar1 + -0x1f0) = (ulonglong)pbVar19 ^ uVar34;
  uVar7 = DAT_182670a78;
  uVar34 = (ulonglong)DAT_1826707d4;
  uVar20 = (ulonglong)DAT_182670a78;
  *pbVar19 = bVar31;
  puVar30 = (ulonglong *)
            ((CONCAT44(uVar6,uVar6) ^ 0xa0262d9fa0262d9f) * 0x20 +
            *(longlong *)(lVar3 - (uVar34 ^ 0x8448702)) + 0x10);
  *(ulonglong *)(lVar3 + -0x7b8) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670a94,DAT_182670a94);
  *(ulonglong *)(lVar3 + -0x658) = CONCAT44(uVar7,uVar7) ^ *puVar30 ^ uVar27;
  uVar16 = DAT_18267099c;
  lVar1 = DAT_1826707a0;
  *(ulonglong *)(lVar3 + -0x7d8) =
       (CONCAT44(uVar11,uVar9) ^ 0x19c80caddc812ee0) >> (((byte)DAT_1826707c8 ^ 0x24) & 0x3f);
  uVar12 = DAT_1826707e0;
  lVar3 = DAT_1826707a0;
  uVar23 = (ulonglong)DAT_1826707e0;
  *(ulonglong *)(DAT_1826707a0 + -0xd88) =
       (*(ulonglong *)(lVar1 + -0x658) >> 0x20 ^ uVar20) >> 8 ^ CONCAT44(uVar16,uVar16);
  bVar31 = (byte)uVar16 ^ *(byte *)(lVar3 + -0xd88) ^ (byte)DAT_182670ab0;
  *(ulonglong *)(lVar3 + -0x5c0) = *puVar30 ^ uVar27;
  *(byte *)(lVar3 + -0x181) = bVar31;
  uVar7 = DAT_1826707bc;
  uVar20 = (ulonglong)DAT_182670958;
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar10 ^ 0xbbf1f77)) =
       (CONCAT44(uVar22,uVar9) ^ 0xefcdff3ec1e943de) * 0x20 +
       (CONCAT44(uVar26,uVar12) ^ 0x21c3163f08000017) + *(longlong *)(DAT_1826707a0 + -0x30) ^
       uVar20;
  bVar31 = (byte)DAT_182670adc;
  lVar1 = DAT_1826707a0;
  uVar24 = (ulonglong)DAT_1826707b0;
  *(ulonglong *)(DAT_1826707a0 - (uVar23 ^ 0x80009ca)) =
       (CONCAT44(uVar26,DAT_1826707c8) ^ 0x39475693772222bb) +
       (CONCAT44(uVar26,DAT_1826707b0) ^ 0x571bad332f2c4ef5);
  uVar13 = DAT_1826707f4;
  *(byte *)(*(ulonglong *)(lVar1 + -0x4a8) ^ uVar20) =
       bVar31 ^ *(byte *)(lVar1 + -0x181) ^ (byte)DAT_182670ab0;
  uVar5 = DAT_1826708dc;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar1 - (uVar38 ^ 0x816b701)) +
            (CONCAT44(uVar13,uVar7) ^ 0x68ced3acc7d273e) * 8);
  *(ulonglong *)(lVar1 + -0xae0) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670914,DAT_182670914);
  uVar15 = DAT_1826708fc;
  uVar20 = CONCAT44(uVar5,uVar5);
  *(ulonglong *)(lVar1 + -0x998) = *puVar30 ^ uVar27 ^ uVar20;
  uVar14 = DAT_1826708b4;
  uVar22 = DAT_1826707e4;
  uVar8 = DAT_1826707c4;
  lVar1 = DAT_1826707a0;
  uVar28 = CONCAT44(uVar15,uVar15);
  uVar20 = (*(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0x844859a)) ^ uVar20) >>
           (((byte)uVar12 ^ 0x32) & 0x3f) ^ uVar28;
  uVar34 = (ulonglong)DAT_182670b04;
  bVar33 = (byte)uVar15 ^ (byte)uVar20 ^ (byte)DAT_182670978;
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar20;
  *(byte *)(lVar1 + -0x15a) = bVar33;
  bVar31 = (byte)DAT_182670adc ^ (byte)DAT_182670978;
  pbVar19 = (byte *)(*(longlong *)(lVar1 + -0x30) + 0x16 +
                    (CONCAT44(uVar22,uVar8) ^ 0xc4c78a31de3ce9c1) * 0x20);
  *(ulonglong *)(lVar1 + -0x2a0) = (ulonglong)pbVar19 ^ uVar34;
  uVar5 = DAT_182670864;
  *pbVar19 = bVar31 ^ bVar33;
  uVar15 = DAT_182670ac0;
  puVar30 = (ulonglong *)(*(longlong *)(lVar1 + -0xb00) + 0x10);
  *(ulonglong *)(lVar1 + -0x5c8) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670888,DAT_182670888);
  uVar20 = CONCAT44(uVar15,uVar15);
  *(ulonglong *)(lVar1 + -0x438) = *puVar30 ^ uVar27 ^ uVar20;
  uVar10 = DAT_1826707f0;
  *(ulonglong *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar7 ^ 0xcc7d2764)) ^ CONCAT44(uVar5,uVar5)) =
       CONCAT44(DAT_1826707c8,DAT_1826707f4) ^ 0xe5f26c91f7af1317;
  uVar5 = DAT_1826707a8;
  lVar1 = DAT_1826707a0;
  uVar20 = (*(ulonglong *)(DAT_1826707a0 + -0x438) ^ uVar20) >> (((byte)uVar10 ^ 0x7a) & 0x3f) ^
           CONCAT44(uVar14,uVar14);
  *(ulonglong *)(DAT_1826707a0 + -0xc18) = uVar20;
  bVar33 = (byte)uVar14 ^ (byte)uVar20 ^ (byte)DAT_1826709fc;
  *(byte *)(lVar1 + -0xb55) = bVar33;
  pbVar19 = (byte *)((CONCAT44(uVar11,uVar5) ^ 0xe9c1de3c0856bf5b) * 0x20 +
                     (CONCAT44(uVar6,uVar9) ^ 0xa0262d9fc1e943c9) + *(longlong *)(lVar1 + -0x30));
  bVar31 = (byte)DAT_182670adc ^ (byte)DAT_1826709fc;
  *(ulonglong *)(lVar1 + -0x8b8) = (ulonglong)pbVar19 ^ (ulonglong)DAT_182670a20;
  *pbVar19 = bVar31 ^ bVar33;
  uVar5 = DAT_182670804;
  uVar12 = DAT_1826707f0;
  uVar29 = (ulonglong)DAT_1826707f0;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar1 + -0xb00) +
            ((CONCAT44(uVar4,uVar11) ^ 0x856bf5be9c1de3f) +
            (CONCAT44(uVar35,DAT_1826707ec) ^ 0x8faf410413d5d7e0) * 4) * 8);
  *(ulonglong *)(lVar1 + -0xbe8) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670944,DAT_182670944);
  uVar34 = CONCAT44(uVar5,uVar5);
  uVar20 = *puVar30 ^ uVar27 ^ uVar34;
  uVar23 = (ulonglong)DAT_1826708e8;
  *(ulonglong *)(lVar1 + -0xbb0) = uVar18 ^ uVar34 ^ uVar20;
  *(byte *)(lVar1 + -0x591) = (byte)DAT_1826709a4 ^ *(byte *)(lVar1 + -0xbb0) ^ (byte)DAT_1826709bc;
  *(ulonglong *)(lVar1 + -0x118) = (uVar28 ^ *(ulonglong *)(lVar1 + -0x1b8)) << 0x2d;
  *(ulonglong *)(lVar1 + -0xce0) = uVar20;
  pbVar19 = (byte *)((CONCAT44(uVar8,uVar8) ^ 0xde3ce9c1de3ce9d9) + *(longlong *)(lVar1 + -0x30));
  *(ulonglong *)(lVar1 + -0x8a8) = (ulonglong)pbVar19 ^ uVar23;
  *(ulonglong *)(lVar1 + -0x660) =
       (CONCAT44(uVar26,DAT_1826707f4) ^ 0xac50ec66bf197c3a) >>
       ((*(byte *)(lVar1 - ((ulonglong)uVar26 ^ 0x21c31d8f)) ^ (byte)uVar17) & 0x3f);
  uVar5 = DAT_18267093c;
  *pbVar19 = *(byte *)(lVar1 - (uVar29 ^ 0x7c2d7dd3)) ^ (byte)DAT_182670adc ^ (byte)DAT_1826709bc;
  *(longlong *)(lVar1 + -0x630) = *(longlong *)(lVar1 + -0x660) + 0x3f51e920e8c32ce4;
  uVar4 = DAT_182670928;
  uVar20 = (ulonglong)DAT_1826707e8;
  uVar18 = CONCAT44(DAT_1826709c8,DAT_1826709c8);
  *(ulonglong *)(lVar1 + -0x370) =
       *(longlong *)(lVar1 + -0xb00) +
       ((CONCAT44(DAT_1826707e8,uVar9) ^ 0xabab221ac1e943dd) +
       (CONCAT44(uVar22,DAT_1826707d0) ^ 0xc4c78a310bbf1bdf) * 4) * 8 ^ uVar18;
  uVar18 = *(ulonglong *)(*(ulonglong *)(lVar1 - ((ulonglong)uVar12 ^ 0x7c2d7b32)) ^ uVar18) ^
           uVar27;
  *(ulonglong *)(lVar1 + -0x68) = uVar18 ^ CONCAT44(uVar4,uVar4);
  *(ulonglong *)(lVar1 - (uVar24 ^ 0x3aed8806)) =
       uVar18 >> (((byte)uVar7 ^ 0x34) & 0x3f) ^ CONCAT44(uVar5,uVar5);
  *(byte *)(lVar1 - (uVar20 ^ 0xabab29ab)) =
       *(byte *)(lVar1 - ((ulonglong)DAT_1826707d0 ^ 0xbbf1fdf)) ^ (byte)uVar5 ^ (byte)DAT_182670918
  ;
  *(longlong *)(lVar1 + -0x890) = -0x114d413041d43291 << (((byte)uVar6 ^ 0x86) & 0x3f);
  bVar31 = (byte)DAT_182670adc;
  uVar6 = DAT_1826707f4;
  lVar3 = DAT_1826707a0;
  uVar35 = uVar7 & DAT_1826707f0;
  uVar20 = (ulonglong)DAT_182670820;
  puVar30 = (ulonglong *)(DAT_1826707a0 + -0xd88);
  uVar18 = CONCAT44(uVar7,uVar12) ^ 0xcc7d273c7c2d7842;
  uVar24 = (ulonglong)uVar35;
  DAT_1826707c8 = uVar35;
  *(ulonglong *)(DAT_1826707a0 + -0x1f8) =
       (CONCAT44(uVar35,uVar12) ^ 0x4c2d20007c2d785b) + uVar18 * 0x20 +
       *(longlong *)(DAT_1826707a0 + -0x30) ^ uVar20;
  uVar4 = DAT_1826708e4;
  lVar1 = uVar18 * 4;
  *(ulonglong *)(lVar3 - (uVar29 ^ 0x7c2d757a)) =
       (*puVar30 ^ CONCAT44(uVar16,uVar16)) - (CONCAT44(uVar35,uVar7) ^ 0xa56abf1193ae318d);
  uVar22 = DAT_1826707cc + DAT_1826707f4;
  *(byte *)(uVar20 ^ *(ulonglong *)(lVar3 + -0x1f8)) =
       *(byte *)(lVar3 + -0xbb1) ^ bVar31 ^ (byte)DAT_182670918;
  uVar5 = DAT_182670ae4;
  puVar30 = (ulonglong *)
            (*(longlong *)(lVar3 + -0xb00) +
            ((CONCAT44(uVar7,uVar12) ^ 0xcc7d273c7c2d7841) + lVar1) * 8);
  DAT_1826707d0 = uVar22;
  *(ulonglong *)(lVar3 + -0x6e8) = (ulonglong)puVar30 ^ CONCAT44(DAT_182670a84,DAT_182670a84);
  uVar20 = *puVar30 ^ uVar27;
  *(ulonglong *)(lVar3 + -0xac0) = uVar20 ^ CONCAT44(uVar5,uVar5);
  lVar3 = DAT_1826707a0;
  uVar34 = uVar20 >> (((byte)uVar6 ^ 0x2a) & 0x3f) ^ CONCAT44(uVar4,uVar4);
  uVar18 = (ulonglong)uVar22;
  uVar20 = (ulonglong)DAT_182670960;
  bVar33 = (byte)uVar4 ^ (byte)DAT_182670994;
  *(ulonglong *)(DAT_1826707a0 + -0x558) = uVar34;
  *(byte *)(lVar3 - (uVar36 ^ 0xc1e9491f)) = bVar33 ^ (byte)uVar34;
  lVar3 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 - (uVar36 ^ 0xc1e943fe)) =
       *(longlong *)(DAT_1826707a0 - (uVar18 ^ 0xc8763128)) + 0x1aU ^ uVar20;
  *(byte *)(*(ulonglong *)(lVar3 + -0x20) ^ uVar20) =
       *(byte *)(lVar3 + -0xac1) ^ bVar31 ^ (byte)DAT_182670994;
  uVar20 = CONCAT44(uVar13,uVar22);
  uVar34 = CONCAT44(DAT_1826708f4,DAT_1826708f4);
  *(ulonglong *)(lVar3 - (uVar36 ^ 0xc1e9425e)) =
       *(longlong *)(lVar3 + -0xb00) +
       ((uVar20 ^ 0x68ced3ac876311b) + (uVar20 ^ 0x68ced3ac8763118) * 4) * 8 ^ uVar34;
  lVar3 = DAT_1826707a0;
  uVar23 = CONCAT44(DAT_182670a18,DAT_182670a18);
  *(ulonglong *)(DAT_1826707a0 + -0x588) =
       *(ulonglong *)(*(ulonglong *)(DAT_1826707a0 - (uVar24 ^ 0x4c2d2180)) ^ uVar34) ^ uVar27 ^
       uVar23;
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x68cebca)) =
       (CONCAT44(uVar35,uVar9) ^ 0x7b92240775979c71) + (CONCAT44(uVar9,uVar9) ^ 0x69457ebb329c12b3);
  bVar31 = bVar31 ^ (byte)DAT_182670a08;
  uVar20 = (ulonglong)DAT_1826708b8;
  bVar33 = (byte)DAT_18267092c ^ (byte)DAT_182670a08;
  uVar34 = CONCAT44(DAT_18267092c,DAT_18267092c);
  *(ulonglong *)(lVar3 + -0x220) =
       (uVar23 ^ *(ulonglong *)(lVar3 + -0x588)) >> (((byte)uVar35 ^ 0x18) & 0x3f) ^ uVar34;
  pbVar19 = (byte *)(*(longlong *)(lVar3 + -0x30) + 0x1b);
  bVar33 = bVar33 ^ *(byte *)(lVar3 + -0x220);
  *(ulonglong *)(lVar3 + -0x560) = (ulonglong)pbVar19 ^ uVar20;
  *(byte *)(lVar3 + -0x3d5) = bVar33;
  *pbVar19 = bVar31 ^ bVar33;
  uVar20 = CONCAT44(DAT_182670ad0,DAT_182670ad0);
  *(ulonglong *)(lVar3 - ((ulonglong)uVar6 ^ 0x68ce642)) =
       *(longlong *)(lVar3 + -0xb00) +
       ((CONCAT44(uVar22,uVar22) ^ 0xc8763118c876311b) +
       (CONCAT44(uVar10,uVar35) ^ 0x7c2d78424c2d2000) * 4) * 8 ^ uVar20;
  lVar25 = DAT_1826707a0;
  uVar20 = *(ulonglong *)(*(ulonglong *)(lVar3 - ((ulonglong)uVar35 ^ 0x4c2d2b78)) ^ uVar20) ^
           uVar27;
  *(ulonglong *)(lVar3 + -0x610) = uVar20 ^ CONCAT44(DAT_182670a98,DAT_182670a98);
  uVar4 = DAT_182670ab4;
  *(ulonglong *)(lVar25 + -0x6b8) =
       uVar20 >> (((byte)uVar7 ^ 0x1c) & 0x3f) ^ CONCAT44(DAT_182670ab4,DAT_182670ab4);
  pbVar19 = (byte *)(lVar25 - (uVar18 ^ 0xc8763721));
  uVar23 = (ulonglong)DAT_182670874;
  *pbVar19 = *(byte *)(lVar25 - ((ulonglong)DAT_1826707f0 ^ 0x7c2d7efa)) ^ (byte)uVar4 ^
             (byte)DAT_182670830;
  *(ulonglong *)(lVar25 - (uVar24 ^ 0x4c2d24c8)) =
       uVar34 ^ *(ulonglong *)(lVar25 + -0x220) | *(ulonglong *)(lVar25 + -0x5c0);
  uVar6 = DAT_1826707f4;
  uVar20 = (ulonglong)DAT_1826707f4;
  *(ulonglong *)(lVar25 + -0x3e0) =
       (CONCAT44(uVar9,DAT_1826707f4) ^ 0xc1e943de068ced3a) * 0x20 +
       (CONCAT44(uVar9,DAT_1826707f4) ^ 0xc1e943de068ced26) + *(longlong *)(lVar25 + -0x30) ^ uVar23
  ;
  *(int *)(lVar25 - (uVar20 ^ 0x68cebb6)) =
       *(int *)(lVar25 + -0x2d4) >> ((byte)*(undefined4 *)(lVar25 + -0x540) & 0x1f);
  *(byte *)(uVar23 ^ *(ulonglong *)(lVar25 + -0x3e0)) =
       (byte)DAT_182670adc ^ *pbVar19 ^ (byte)DAT_182670830;
  uVar4 = DAT_1826709dc;
  *(ulonglong *)(lVar25 - (uVar18 ^ 0xc8763680)) =
       *(longlong *)(lVar25 - ((ulonglong)uVar6 ^ 0x68ce63a)) +
       ((CONCAT44(uVar10,uVar35) ^ 0x7c2d78424c2d2003) + lVar1) * 8 ^ uVar28;
  uVar18 = CONCAT44(DAT_182670940,DAT_182670940);
  *(ulonglong *)(lVar25 - ((ulonglong)uVar35 ^ 0x4c2d2420)) =
       *(ulonglong *)(*(ulonglong *)(lVar25 + -0x798) ^ uVar28) ^ uVar27 ^ uVar18;
  *(ulonglong *)(lVar25 + -0xf0) = CONCAT44(uVar22,uVar7) ^ 0xabe8b25282d70a47;
  uVar20 = (ulonglong)DAT_1826709b0;
  *(ulonglong *)(lVar25 + -0x7d8) =
       (uVar18 ^ *(ulonglong *)(lVar25 + -0x420)) >> (((byte)uVar6 ^ 0x12) & 0x3f) ^
       CONCAT44(uVar4,uVar4);
  *(byte *)(lVar25 + -0x2d5) =
       *(byte *)(lVar25 - (uVar24 ^ 0x4c2d27d8)) ^ (byte)uVar4 ^ (byte)DAT_182670998;
  *(ulonglong *)(lVar25 + -0x658) =
       (CONCAT44(uVar10,uVar6) ^ 0x95deb777df096be9) + (CONCAT44(uVar9,uVar7) ^ 0x1099d59e565db89f);
  bVar31 = (byte)DAT_182670adc ^ (byte)DAT_182670998;
  *(ulonglong *)(lVar25 - ((ulonglong)DAT_1826707f0 ^ 0x7c2d72e2)) =
       (CONCAT44(uVar7,uVar6) ^ 0xcc7d273c068ced3a) * 0x20 + *(longlong *)(lVar25 + -0x30) + 0x1d ^
       uVar20;
  *(byte *)(*(ulonglong *)(lVar25 + -0xaa0) ^ uVar20) = bVar31 ^ *(byte *)(lVar25 + -0x2d5);
  *(uint *)(&DAT_182670b20 + (longlong)(int)(uVar2 ^ uVar26) * 4) = uVar21;
  return;
}



############ FUN_ 180c64fd0 size=5276 ############

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

void FUN_180c64fd0(void)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  ulonglong *puVar18;
  ulonglong uVar19;
  ulonglong uVar20;
  ulonglong *puVar21;
  uint uVar22;
  uint uVar23;
  ulonglong uVar24;
  ulonglong uVar25;
  undefined8 *puVar26;
  ulonglong uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  ulonglong uVar31;
  ulonglong uVar32;
  ulonglong uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  uint uVar36;
  ulonglong uVar37;
  ulonglong uVar38;
  ulonglong uVar39;
  ulonglong uVar40;
  ulonglong uVar41;
  ulonglong uVar42;
  ulonglong uVar43;
  byte local_d8;
  byte local_d0;
  byte local_a8;
  
  uVar11 = DAT_18267091c;
  uVar22 = DAT_1826707ac;
  uVar4 = DAT_1826707a8;
  lVar2 = DAT_1826707a0;
  uVar33 = (ulonglong)DAT_1826707a8;
  uVar36 = ~DAT_1826707f0;
  uVar20 = (ulonglong)DAT_1826707ac;
  uVar1 = *(uint *)(&DAT_18260f758 + DAT_182670cec);
  uVar15 = *(uint *)(&DAT_18260f760 + DAT_182670cec) ^ DAT_1826707f0;
  uVar29 = DAT_1826707a8 + DAT_1826707ac;
  uVar24 = CONCAT44(DAT_182670854,DAT_182670854);
  puVar18 = (ulonglong *)(*(longlong *)(DAT_1826707a0 + -0xa10) + 0x28);
  DAT_1826707cc = uVar29;
  DAT_1826707e4 = uVar36;
  *(ulonglong *)(DAT_1826707a0 + -0x6e8) = (ulonglong)puVar18 ^ uVar24;
  uVar28 = CONCAT44(uVar11,uVar11);
  uVar38 = CONCAT44(DAT_182670984,DAT_182670984);
  *puVar18 = uVar38 ^ uVar28 ^ *(ulonglong *)(lVar2 + -0x9c8);
  uVar13 = DAT_182670a3c;
  uVar39 = CONCAT44(DAT_182670a3c,DAT_182670a3c);
  uVar19 = CONCAT44(DAT_18267087c,DAT_18267087c);
  *(ulonglong *)(lVar2 + -0xc18) =
       (*(ulonglong *)(lVar2 + -0x7d8) ^ uVar39) <<
       (((byte)DAT_182670904 ^ *(byte *)(lVar2 + -0x4c8)) & 0x3f);
  *(ulonglong *)(lVar2 + -0x610) = uVar19 ^ **(ulonglong **)(lVar2 + 0x18);
  uVar11 = DAT_18267083c;
  *(ulonglong *)(lVar2 + -0xd00) =
       *(longlong *)(((ulonglong)uVar29 ^ 0x156a7459) + lVar2) +
       (CONCAT44(uVar36,uVar22) ^ 0x56085bbf01122001) * 8;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x6f0) =
       **(ulonglong **)(lVar2 - ((ulonglong)uVar4 ^ 0x14585941)) ^ uVar31;
  uVar11 = DAT_18267086c;
  uVar10 = DAT_1826707f0;
  puVar18 = *(ulonglong **)(lVar2 + 0x18) + (CONCAT44(uVar22,DAT_1826707f0) ^ 0x1122000a9f7a442);
  *(ulonglong **)(lVar2 + -0x428) = puVar18;
  uVar25 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar25 ^ *puVar18;
  *(int *)(lVar2 + -0x140) = *(int *)(lVar2 + -0x398) + 0x329adc73;
  puVar26 = (undefined8 *)(*(longlong *)((uVar20 ^ 0x1122018) + lVar2) + 0x18);
  *(undefined8 **)(lVar2 + -0xb50) = puVar26;
  *(undefined8 *)(lVar2 - ((ulonglong)uVar10 ^ 0xa9f7a060)) = *puVar26;
  uVar11 = DAT_182670844;
  uVar34 = CONCAT44(DAT_1826709fc,DAT_1826709fc);
  puVar18 = (ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x145850a1));
  *puVar18 = *(longlong *)(lVar2 + -0xa10) + 8 +
             ((CONCAT44(uVar22,uVar29) ^ 0x1122000156a7441) * 0x15 +
             (CONCAT44(uVar4,uVar10) ^ 0x14585441a9f7a440)) * 8 ^ uVar34;
  *(ulonglong *)(lVar2 + -0x6b8) =
       (CONCAT44(uVar36,uVar36) ^ 0x7ae9651534ae3da2) <<
       ((byte)*(undefined8 *)(lVar2 + -0x420) & 0x3f);
  uVar12 = DAT_1826708e4;
  uVar20 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0xac0) = *(ulonglong *)(uVar34 ^ *puVar18) ^ uVar20 ^ uVar28;
  *(ulonglong *)(CONCAT44(uVar12,uVar12) ^ *(ulonglong *)(lVar2 + -0x7b8)) =
       CONCAT44(uVar22,uVar29) ^ 0xa97f9455fd23e037;
  uVar8 = DAT_1826707e8;
  uVar23 = DAT_1826707c8;
  uVar35 = CONCAT44(DAT_182670908,DAT_182670908);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x145855a9)) =
       *(longlong *)(lVar2 - ((ulonglong)uVar36 ^ 0x560851af)) + 8 +
       ((CONCAT44(uVar4,uVar29) ^ 0x14585441156a7440) +
       (CONCAT44(uVar10,uVar22) ^ 0xa9f7a44001122000) * 0x15) * 8 ^ uVar35;
  uVar9 = DAT_1826707e8;
  uVar7 = DAT_1826707dc;
  uVar6 = DAT_1826707d4;
  uVar5 = DAT_1826707d0;
  uVar34 = (ulonglong)DAT_1826707dc;
  uVar16 = uVar8 & 3;
  if (uVar16 < 2) {
    uVar30 = uVar23;
    if (uVar16 == 0) {
      uVar30 = uVar8;
    }
  }
  else {
    uVar30 = DAT_1826707dc;
    if (uVar16 < 3) {
      uVar30 = DAT_1826707d4;
    }
  }
  uVar42 = CONCAT44(DAT_182670a48,DAT_182670a48);
  uVar27 = CONCAT44(DAT_1826707dc,uVar23);
  DAT_1826707c4 = uVar30;
  *(ulonglong *)(lVar2 + -0x400) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x1e8) ^ uVar35) ^ uVar42 ^ uVar28;
  *(ulonglong *)(CONCAT44(_DAT_182670b10,_DAT_182670b10) ^ *(ulonglong *)(lVar2 + -0xae0)) =
       uVar27 ^ 0xab90b5faafb4b0b8;
  *(ulonglong *)(lVar2 + -0x220) = *(ulonglong *)(lVar2 + -0x420) ^ *(ulonglong *)(lVar2 + -0xd38);
  uVar27 = CONCAT44(DAT_182670aa4,DAT_182670aa4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x412c059f)) =
       *(longlong *)(lVar2 + -0xa10) + 8 + (CONCAT44(uVar9,uVar30) ^ 0xcbbf45bede3ce9c3) * 8 ^
       uVar27;
  puVar18 = (ulonglong *)(lVar2 + -0xb70);
  *puVar18 = CONCAT44(uVar6,uVar23) ^ 0xcc3ceb636daf4ba4;
  uVar11 = DAT_182670a14;
  uVar35 = CONCAT44(DAT_182670a38,DAT_182670a38);
  *(ulonglong *)(lVar2 + -0x438) =
       *(ulonglong *)(*(ulonglong *)(lVar2 + -0x798) ^ uVar27) ^ uVar35 ^ uVar28;
  *(undefined8 *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar5 ^ 0x412c09ef)) ^ CONCAT44(uVar11,uVar11))
       = 0xb5173b47d7e95628;
  *(ulonglong *)(lVar2 + -0x5c0) =
       (uVar38 ^ *(ulonglong *)(lVar2 + -0x9c8)) >> ((byte)*puVar18 & 0x3f);
  uVar11 = DAT_1826707f8;
  uVar32 = CONCAT44(DAT_182670ac4,DAT_182670ac4);
  *(ulonglong *)(lVar2 + -0x180) =
       *(longlong *)(lVar2 + -0xa10) + 8 +
       ((CONCAT44(uVar30,uVar30) ^ 0xde3ce9c1de3ce9c2) +
       (CONCAT44(uVar9,uVar23) ^ 0xcbbf45bebb231257) * 0x15) * 8 ^ uVar32;
  uVar37 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x68) =
       *(ulonglong *)(*(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0xde3ce841)) ^ uVar32) ^ uVar37 ^
       uVar28;
  *(undefined8 *)(CONCAT44(DAT_182670a0c,DAT_182670a0c) ^ *(ulonglong *)(lVar2 + -0x370)) =
       0xb596c3902c88130;
  puVar21 = (ulonglong *)(*(longlong *)(lVar2 + -0xa10) + 0x28);
  *(ulonglong *)(lVar2 + -0xb78) = (ulonglong)puVar21 ^ CONCAT44(DAT_1826708d0,DAT_1826708d0);
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xa10) = CONCAT44(uVar5,uVar7) ^ 0x226f683aaa0d925f;
  uVar38 = CONCAT44(DAT_182670a1c,DAT_182670a1c);
  *(ulonglong *)(lVar2 + -0x558) = *puVar21 ^ uVar38 ^ uVar28;
  lVar3 = DAT_1826707a0;
  *(undefined8 *)(uVar24 ^ *(ulonglong *)(lVar2 + -0x6e8)) = 0x8045aa9234a69674;
  uVar24 = CONCAT44(DAT_1826709b0,DAT_1826709b0);
  *(ulonglong *)(lVar2 + -0xf0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar9 ^ 0xcbbf43ae)) ^ uVar19) -
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x68)) ^ uVar24;
  *(ulonglong *)(DAT_1826707a0 - (uVar34 ^ 0xbc213b9e)) =
       (CONCAT44(uVar23,uVar6) ^ 0x70eebfd6fb2771f7) - (CONCAT44(uVar6,uVar30) ^ 0x9662d5aa46749c40)
  ;
  uVar12 = DAT_182670ad8;
  uVar19 = (ulonglong)DAT_1826707d0;
  uVar27 = (uVar38 ^ *(ulonglong *)(lVar3 + -0x558)) + (CONCAT44(uVar6,uVar7) ^ 0x3eea9d0321411bc3);
  *(ulonglong *)(lVar3 + -0x998) = uVar27 ^ CONCAT44(DAT_182670860,DAT_182670860);
  uVar11 = DAT_1826709d4;
  uVar38 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(lVar3 + -0x658) =
       (*(ulonglong *)(lVar3 - (uVar19 ^ 0x412c04f7)) ^ uVar31) - uVar27 ^ uVar38;
  lVar2 = DAT_1826707a0;
  uVar19 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar3 + -0xa18) =
       (*(ulonglong *)(lVar3 - (uVar33 ^ 0x14585e81)) ^ uVar20) +
       (CONCAT44(uVar23,uVar23) ^ 0x8523742691db5a9e) ^ uVar19;
  *(ulonglong *)(lVar3 + -0xce0) =
       (uVar25 ^ *(ulonglong *)(lVar3 + -0xbb0)) -
       (*(ulonglong *)(lVar3 - ((ulonglong)DAT_1826707e8 ^ 0xcbbf4fa6)) ^ uVar19) ^ uVar38;
  uVar11 = DAT_1826708ec;
  uVar20 = (CONCAT44(uVar9,uVar23) ^ 0x3440ba4144dcedb9) + *(longlong *)(lVar3 + -0x420);
  *(ulonglong *)(lVar3 + -0x890) = uVar20 ^ CONCAT44(DAT_182670b00,DAT_182670b00);
  uVar12 = DAT_182670b04;
  uVar19 = CONCAT44(uVar11,uVar11);
  uVar25 = uVar20 - (*(ulonglong *)(lVar2 - ((ulonglong)uVar30 ^ 0xde3cedc1)) ^ uVar42) ^ uVar19;
  *(ulonglong *)(lVar2 + -0x118) = uVar25;
  uVar8 = DAT_1826707e8;
  lVar2 = DAT_1826707a0;
  uVar20 = CONCAT44(uVar12,uVar12);
  *(ulonglong *)(DAT_1826707a0 - ((ulonglong)uVar36 ^ 0x56085f77)) =
       uVar24 ^ uVar25 ^ *(ulonglong *)(DAT_1826707a0 + -0xf0) ^ uVar20 ^ uVar19;
  uVar20 = *(ulonglong *)(lVar2 + -0x4c8) ^ uVar20;
  uVar31 = CONCAT44(DAT_1826709ec,DAT_1826709ec);
  uVar19 = CONCAT44(uVar6,DAT_1826707f0);
  *(ulonglong *)(lVar2 + -0x7d8) = uVar20 >> (((byte)uVar30 ^ 0xe1) & 0x3f) ^ uVar31;
  uVar11 = DAT_182670a4c;
  *(ulonglong *)(lVar2 + -0xc18) =
       uVar19 ^ 0x235f788a90ec89ee | CONCAT44(uVar4,uVar8) ^ 0x9c4c6cedf86dd3a0;
  uVar6 = DAT_1826707d4;
  uVar27 = (ulonglong)DAT_1826707d4;
  uVar41 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x6b8) = uVar20 << 0x20 ^ uVar41;
  uVar11 = DAT_182670a8c;
  *(ulonglong *)(lVar2 + -0x660) =
       (CONCAT44(uVar23,uVar7) ^ 0x81d7701cdd6b9f56) + (CONCAT44(uVar9,uVar4) ^ 0x63f854292e5df518);
  uVar25 = CONCAT44(uVar11,uVar11);
  uVar19 = *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707ac ^ 0x11226b8)) ^ uVar41 |
           *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707d0 ^ 0x412c05df)) ^ uVar31;
  uVar42 = CONCAT44(DAT_18267085c,DAT_18267085c);
  *(ulonglong *)(lVar2 + -0xd88) = uVar19 ^ uVar25;
  uVar11 = DAT_182670ac0;
  *(ulonglong *)(lVar2 + -0xd38) =
       (*(ulonglong *)(lVar2 - (uVar27 ^ 0xde3ce931)) ^ uVar24) - uVar19 ^ uVar42;
  uVar19 = (ulonglong)DAT_1826707c4;
  *(ulonglong *)(lVar2 + -0x220) = CONCAT44(uVar5,uVar30) ^ 0xfb47affd9bffffff | 0xe843ae6d9af7699f;
  uVar20 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x630) =
       *(ulonglong *)(lVar2 + -0xce0) ^ uVar20 ^ *(ulonglong *)(lVar2 + -0x658);
  lVar2 = DAT_1826707a0;
  uVar40 = CONCAT44(DAT_182670af8,DAT_182670af8);
  *(ulonglong *)(DAT_1826707a0 - (uVar33 ^ 0x14585f31)) =
       (*(ulonglong *)(DAT_1826707a0 - (uVar19 ^ 0xde3ceff1)) ^ uVar20) >>
       (((byte)uVar36 ^ 0x9f) & 0x3f) ^ uVar40;
  uVar11 = DAT_182670ab4;
  uVar19 = CONCAT44(DAT_18267088c,DAT_18267088c);
  *(ulonglong *)(lVar2 + -0x5c0) =
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar8 ^ 0xcbbf438e)) ^ uVar20) << 0x20 ^ uVar19;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707ac ^ 0x11221b8)) =
       (*(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707ac ^ 0x11225c0)) ^ uVar19 | *puVar18 ^ uVar40)
       ^ uVar24;
  uVar27 = CONCAT44(DAT_1826709a8,DAT_1826709a8);
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xbc2137de)) =
       (*(ulonglong *)(lVar2 + -0xce0) ^ uVar38) -
       (*(ulonglong *)(lVar2 - ((ulonglong)uVar29 ^ 0x156a75f9)) ^ uVar24) ^ uVar27;
  uVar19 = CONCAT44(DAT_182670960,DAT_182670960);
  uVar20 = CONCAT44(DAT_1826708e8,DAT_1826708e8);
  uVar31 = *(ulonglong *)(lVar2 + -0x1b8) ^ uVar19 ^ uVar24 ^ uVar42 ^
           *(ulonglong *)(lVar2 + -0xd38);
  *(ulonglong *)(lVar2 + -0x610) = uVar31;
  uVar11 = DAT_182670b08;
  uVar31 = uVar31 ^ uVar19;
  uVar19 = uVar31 >> (((byte)uVar23 ^ 0x6d) & 0x3f);
  uVar31 = uVar31 << 6;
  *(ulonglong *)(lVar2 + -0x588) = uVar19 ^ uVar20;
  uVar12 = DAT_182670938;
  uVar4 = DAT_1826707c4;
  *(ulonglong *)(lVar2 + -0x6f0) = uVar31 ^ CONCAT44(uVar11,uVar11);
  uVar11 = DAT_182670818;
  uVar31 = uVar31 | uVar19;
  uVar43 = CONCAT44(uVar12,uVar12);
  uVar19 = (ulonglong)DAT_1826707ac;
  *(ulonglong *)(lVar2 + -0x420) = (*puVar18 ^ uVar40) >> (((byte)uVar23 ^ 0x4d) & 0x3f);
  *(ulonglong *)(lVar2 + -0xbb0) = uVar31 ^ uVar43;
  uVar24 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 + -0x890) = (uVar42 ^ *(ulonglong *)(lVar2 + -0xd38)) - uVar31 ^ uVar24;
  uVar5 = DAT_182670a00;
  uVar20 = (ulonglong)DAT_182670a00;
  uVar40 = CONCAT44(DAT_182670a00,DAT_182670a00);
  *(ulonglong *)(lVar2 - (uVar19 ^ 0x1122118)) =
       CONCAT44(uVar7,uVar6) ^ *(ulonglong *)(lVar2 + -0x660) ^ 0xb5b21314573a9eb7;
  *(ulonglong *)(lVar2 + -0xc18) =
       uVar40 ^ *(ulonglong *)(lVar2 + -0x9c8) ^ uVar27 ^ uVar25 ^ *(ulonglong *)(lVar2 + -0xd88);
  uVar11 = DAT_182670870;
  *(ulonglong *)(lVar2 + -0x4c8) =
       (CONCAT44(uVar10,uVar22) ^ 0xc3df430d6ddc0e7b) - (CONCAT44(uVar29,uVar4) ^ 0xf6229a7511f5412)
  ;
  uVar25 = CONCAT44(uVar11,uVar11);
  bVar17 = (byte)DAT_1826707ac;
  uVar19 = (ulonglong)DAT_1826707f0;
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707ac ^ 0x11227d8)) =
       ((ulonglong)(uVar5 >> 0x16) | uVar20 << 10) ^ *(ulonglong *)(lVar2 + -0xc18) >> 0x16 ^ uVar25
  ;
  uVar4 = DAT_1826707d0;
  uVar20 = (ulonglong)DAT_1826707d0;
  *(ulonglong *)(lVar2 - (uVar19 ^ 0xa9f7a2f8)) =
       *(ulonglong *)(uVar32 ^ *(ulonglong *)(lVar2 + -0x180)) ^ uVar28;
  uVar19 = CONCAT44(DAT_182670994,DAT_182670994);
  *(ulonglong *)(lVar2 - ((ulonglong)DAT_1826707e8 ^ 0xcbbf454e)) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0x412c0e1f)) ^ uVar40) << ((bVar17 ^ 0x2a) & 0x3f) ^ uVar19
  ;
  uVar11 = DAT_182670a90;
  uVar5 = DAT_1826707e8;
  uVar38 = (ulonglong)DAT_1826707e8;
  uVar20 = CONCAT44(DAT_1826708fc,DAT_1826708fc);
  uVar19 = *(ulonglong *)(lVar2 + -0x7d8) ^ uVar25 | *(ulonglong *)(lVar2 + -0xf0) ^ uVar19;
  *(ulonglong *)(lVar2 + -0x220) = uVar19 ^ uVar20;
  uVar31 = CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar38 ^ 0xcbbf43e6)) =
       (*(ulonglong *)(lVar2 + -0x9c8) ^ uVar27) - uVar19 ^ uVar31;
  uVar19 = CONCAT44(DAT_182670aac,DAT_182670aac);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x412c0437)) =
       uVar19 ^ uVar20 ^ *(ulonglong *)(lVar2 + -0x890) ^ uVar24 ^ *(ulonglong *)(lVar2 + -0x220);
  uVar22 = DAT_1826707dc;
  uVar4 = DAT_1826707ac;
  local_d8 = (byte)uVar29;
  *(ulonglong *)(lVar2 + -0x5c0) =
       (*(ulonglong *)(lVar2 - (uVar33 ^ 0x14585271)) ^ uVar19) >> ((local_d8 ^ 0x6f) & 0x3f) ^
       uVar40;
  bVar17 = (byte)DAT_1826707ec;
  *(int *)(lVar2 - ((ulonglong)uVar4 ^ 0x1122398)) = -0x152164b4 << (((byte)uVar22 ^ 0x15) & 0x1f);
  uVar11 = DAT_182670988;
  uVar19 = (uVar19 ^ *(ulonglong *)(lVar2 + -0x630)) << 0x12;
  uVar22 = DAT_1826707e4 ^ 0x7d4fafa3;
  *(ulonglong *)(lVar2 + -0xce0) = uVar19 ^ uVar41;
  *(uint *)(lVar2 + -0x140) = uVar22 >> ((bVar17 ^ 0xbf) & 0x1f);
  uVar12 = DAT_182670898;
  lVar2 = DAT_1826707a0;
  uVar32 = CONCAT44(uVar11,uVar11);
  uVar19 = uVar40 ^ *(ulonglong *)(DAT_1826707a0 + -0x5c0) | uVar19;
  uVar28 = CONCAT44(DAT_182670898,DAT_182670898);
  puVar21 = (ulonglong *)(DAT_1826707a0 + -0x890);
  *(ulonglong *)(DAT_1826707a0 + -0x1b8) = uVar19 ^ uVar32;
  *(ulonglong *)(lVar2 + -0x610) = (*puVar21 ^ uVar24) - uVar19 ^ uVar28;
  *(uint *)(lVar2 - ((ulonglong)uVar5 ^ 0xcbbf44fe)) = (uVar4 ^ 0x699a25b5) + 0x5bd51ecb;
  uVar19 = *(ulonglong *)(lVar2 + -0x658);
  uVar25 = CONCAT44(DAT_1826708f0,DAT_1826708f0);
  uVar20 = *(ulonglong *)(lVar2 - (uVar33 ^ 0x14585ff1));
  *(undefined8 *)(lVar2 + -0x6f0) = 0xfce86fceffd6bfff;
  uVar11 = DAT_182670804;
  uVar20 = uVar20 ^ uVar25 ^ uVar31 ^ uVar43 ^ uVar19;
  *(ulonglong *)(lVar2 + -0x588) = uVar20;
  lVar2 = DAT_1826707a0;
  local_d0 = (byte)uVar7;
  uVar27 = (uVar20 ^ uVar25) >> ((local_d0 ^ 0x1a) & 0x3f);
  uVar24 = CONCAT44(DAT_182670ab8,DAT_182670ab8);
  *puVar18 = uVar27 ^ CONCAT44(uVar11,uVar11);
  uVar33 = (*(ulonglong *)(DAT_1826707a0 - (uVar38 ^ 0xcbbf4036)) ^ uVar25) <<
           (((byte)uVar36 ^ 0x8b) & 0x3f);
  uVar20 = CONCAT44(uVar23,DAT_1826707d0);
  *(ulonglong *)(lVar2 + -0x420) = uVar33 ^ uVar24;
  uVar11 = DAT_182670a28;
  uVar33 = uVar33 | uVar27;
  *(ulonglong *)(lVar2 + -0xd38) =
       uVar20 ^ 0x80413392ea4495b | *(ulonglong *)(lVar2 + -0xbb0) ^ uVar43;
  *(ulonglong *)(lVar2 + -0x660) = uVar33 ^ uVar39;
  uVar24 = CONCAT44(uVar11,uVar11);
  bVar17 = (byte)DAT_1826707b0;
  *(ulonglong *)(lVar2 - (uVar34 ^ 0xbc213f0e)) = (uVar31 ^ uVar19) - uVar33 ^ uVar24;
  uVar4 = DAT_1826707c0;
  uVar34 = CONCAT44(DAT_182670aec,DAT_182670aec);
  uVar19 = *(ulonglong *)(lVar2 + -0x660) ^ uVar39 ^ *(ulonglong *)(lVar2 + -0x610) ^ uVar34 ^
           uVar28;
  uVar20 = (ulonglong)DAT_1826707c0;
  *(ulonglong *)(lVar2 + -0xd88) = uVar19;
  *(ulonglong *)(lVar2 + -0x4c8) = (uVar19 ^ uVar34) >> ((bVar17 ^ 0xa3) & 0x3f) ^ uVar42;
  uVar11 = DAT_18267080c;
  uVar22 = DAT_1826707f0;
  uVar23 = uVar4 | DAT_1826707f0;
  uVar31 = (ulonglong)DAT_1826707f0;
  DAT_1826707bc = uVar23;
  *(ulonglong *)(lVar2 + -0x6b8) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x163e2434)) ^ uVar25 ^ 0x17ce529c96dcb895;
  uVar19 = (*(ulonglong *)(lVar2 - ((ulonglong)uVar23 ^ 0xbfffa874)) ^ uVar34) <<
           (((byte)uVar23 ^ 0xdb) & 0x3f);
  uVar25 = CONCAT44(DAT_182670a5c,DAT_182670a5c);
  *(ulonglong *)(lVar2 + -0xc18) = uVar19 ^ CONCAT44(uVar11,uVar11);
  *(ulonglong *)(lVar2 - (uVar31 ^ 0xa9f7a4b0)) =
       (*(ulonglong *)(lVar2 - (uVar20 ^ 0x163e2574)) ^ uVar42 | uVar19) ^ uVar25;
  uVar14 = DAT_182670a50;
  uVar11 = DAT_182670890;
  local_a8 = (byte)uVar13;
  *(ulonglong *)(lVar2 + -0x7d8) =
       0x2f69e47b63c6dc79 >> ((*(byte *)(lVar2 + -0x660) ^ local_a8) & 0x3f);
  uVar19 = (*(ulonglong *)(lVar2 + -0x610) ^ uVar28) - (uVar35 ^ *(ulonglong *)(lVar2 + -0x438));
  *(ulonglong *)(lVar2 + -0x9c8) = uVar19 ^ CONCAT44(uVar14,uVar14);
  uVar13 = DAT_1826708d4;
  *(ulonglong *)(lVar2 + -0x220) =
       uVar19 - (*(ulonglong *)(lVar2 + -0xf0) ^ uVar25) ^ CONCAT44(uVar11,uVar11);
  uVar19 = CONCAT44(uVar13,uVar13);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar4 ^ 0x163e278c)) =
       (uVar37 ^ *(ulonglong *)(lVar2 + -0x68)) + (CONCAT44(uVar23,uVar23) ^ 0x6129b74f0867c8e0) ^
       uVar19;
  uVar11 = DAT_182670a08;
  *(longlong *)(lVar2 - (uVar31 ^ 0xa9f7a180)) =
       *(longlong *)(lVar2 + -0x7d8) <<
       ((*(byte *)(lVar2 - ((ulonglong)uVar22 ^ 0xa9f7a250)) ^ (byte)uVar12) & 0x3f);
  uVar12 = DAT_182670a20;
  *(ulonglong *)(lVar2 + -0xce0) =
       (*(ulonglong *)(lVar2 + -0xf0) ^ uVar25) - (uVar19 ^ *(ulonglong *)(lVar2 + -0x630)) ^
       CONCAT44(uVar11,uVar11);
  uVar34 = CONCAT44(uVar12,uVar12);
  uVar25 = CONCAT44(DAT_182670b0c,DAT_182670b0c);
  uVar19 = *(ulonglong *)(lVar2 + -0x118) ^ uVar34 ^ uVar24 ^ uVar32 ^
           *(ulonglong *)(lVar2 + -0x1b8);
  *(ulonglong *)(lVar2 + -0x890) = uVar19;
  uVar11 = DAT_182670a30;
  *(ulonglong *)(lVar2 + -0x6f0) =
       (*(ulonglong *)(lVar2 - (uVar31 ^ 0xa9f7acd0)) ^ uVar34) >> (((byte)uVar4 ^ 0x9d) & 0x3f) ^
       uVar25;
  *(ulonglong *)(lVar2 + -0xbb0) = CONCAT44(uVar10,uVar23) ^ 0x19131ef325b60408;
  uVar19 = (uVar34 ^ uVar19) << (((byte)uVar23 ^ 0xe3) & 0x3f);
  *(ulonglong *)(lVar2 + -0xd38) = uVar19 ^ CONCAT44(DAT_182670910,DAT_182670910);
  *puVar18 = (*(ulonglong *)(lVar2 - (uVar20 ^ 0x163e274c)) ^ uVar25 | uVar19) ^
             CONCAT44(uVar11,uVar11);
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar15 * 4) = uVar1 ^ uVar36;
  return;
}



############ FUN_ 180cc7730 size=4311 ############

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

void FUN_180cc7730(void)

{
  uint *puVar1;
  uint uVar2;
  byte bVar3;
  longlong lVar4;
  longlong lVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  byte bVar12;
  byte bVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint *puVar17;
  ulonglong uVar18;
  byte *pbVar19;
  ulonglong uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  ulonglong uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar35;
  uint *puVar36;
  uint *puVar37;
  ulonglong uVar38;
  ulonglong uVar34;
  
  uVar24 = DAT_1826707dc;
  uVar14 = DAT_1826707c0;
  uVar8 = DAT_1826707b8;
  uVar11 = DAT_1826707b0;
  lVar4 = DAT_1826707a0;
  uVar38 = (ulonglong)DAT_1826707b0;
  uVar18 = (ulonglong)DAT_1826707b8;
  uVar21 = (ulonglong)DAT_1826707c0;
  uVar32 = DAT_1826707b8 * DAT_1826707b0;
  uVar34 = (ulonglong)uVar32;
  uVar35 = DAT_1826707c0 | DAT_1826707dc;
  uVar2 = *(uint *)(&DAT_18260f758 + DAT_182670e18);
  uVar10 = *(uint *)(&DAT_18260f760 + DAT_182670e18) ^ DAT_1826707b0;
  uVar22 = (ulonglong)DAT_1826707dc;
  uVar20 = (ulonglong)DAT_1826708f0;
  puVar1 = (uint *)(DAT_1826707a0 + -0x3d4);
  uVar29 = (DAT_182670848 ^ *(uint *)(DAT_1826707a0 + -0xb54)) +
           (DAT_182670824 ^ *(uint *)(DAT_1826707a0 + -0x7e4)) ^ DAT_18267099c;
  DAT_1826707cc = uVar32;
  DAT_1826707d4 = uVar35;
  *puVar1 = uVar29;
  uVar29 = uVar29 ^ DAT_182670a40 ^ DAT_18267099c;
  *(uint *)(lVar4 + -0x540) = uVar29;
  uVar29 = uVar29 ^ DAT_182670974 ^ DAT_182670a40;
  *(uint *)(lVar4 + -0x2d4) = (uVar14 ^ 0xe6de35f5) + (uVar8 ^ 0xec4655b8);
  uVar23 = (ulonglong)uVar35;
  *(uint *)(lVar4 + -0x398) =
       *(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0x8042084c)) ^ DAT_182670840 ^ DAT_182670870;
  puVar17 = (uint *)(lVar4 - ((ulonglong)uVar35 ^ 0xbf7fe2d6));
  *puVar17 = uVar29;
  puVar36 = (uint *)(lVar4 - (uVar34 ^ 0x85f69362));
  *puVar36 = *(uint *)(lVar4 + -0x398) ^ DAT_182670930 ^ DAT_182670840;
  bVar3 = (byte)DAT_1826708c0;
  pbVar19 = (byte *)(*(longlong *)(lVar4 - ((ulonglong)uVar32 ^ 0x85f69966)) +
                     (CONCAT44(uVar8,uVar24) ^ 0xeb12f8d580420440) +
                    (CONCAT44(uVar35,uVar11) ^ 0xbf7fe6eaad6fdefe) * 0x20);
  *(ulonglong *)(lVar4 + -0xdb8) = (ulonglong)pbVar19 ^ uVar20;
  *(byte *)(lVar4 + -0xc35) = *pbVar19 ^ bVar3 ^ (byte)DAT_182670adc;
  uVar33 = DAT_1826709f4;
  *(ulonglong *)(lVar4 - ((ulonglong)uVar32 ^ 0x85f69226)) =
       CONCAT44(uVar14,uVar35) ^ 0x348e6839bdcc145;
  *(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0xad6fd2ca)) = (bVar3 ^ *(byte *)(lVar4 + -0xc35)) ^ uVar33
  ;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x80420ff0)) =
       (CONCAT44(uVar35,uVar14) ^ 0xa123265e97b8a643) -
       (CONCAT44(uVar11,uVar8) ^ 0xd57fa147fc35697a);
  bVar3 = (byte)DAT_1826707dc;
  *(uint *)(lVar4 - (uVar23 ^ 0xbf7fe46a)) =
       (*(uint *)(lVar4 - (uVar18 ^ 0xeb12f2e1)) ^ DAT_182670930) + (uVar11 ^ 0x664b93dd) ^
       DAT_182670a38;
  *(uint *)(lVar4 - (uVar34 ^ 0x85f691b6)) =
       (*(uint *)(lVar4 + -0xc34) ^ uVar33) << ((bVar3 ^ 0x51) & 0x1f) ^ DAT_182670af0;
  uVar25 = DAT_1826708ac;
  uVar29 = DAT_1826707c8;
  bVar13 = (byte)uVar14;
  uVar24 = (*(uint *)(lVar4 - ((ulonglong)uVar24 ^ 0x804206c0)) ^ DAT_182670a38) -
           (DAT_182670af0 ^ *(uint *)(lVar4 + -0x8e0)) ^ DAT_182670948;
  uVar22 = (ulonglong)DAT_1826707c8;
  *(uint *)(lVar4 + -0x814) = uVar24;
  uVar24 = uVar24 ^ DAT_182670948;
  *(ulonglong *)(lVar4 + -0x548) =
       (CONCAT44(uVar35,uVar14) ^ 0x5a75165ef0479d79) >> ((bVar13 ^ 0x9b) & 0x3f);
  uVar26 = DAT_182670a14;
  bVar12 = (byte)uVar11 ^ 0xf3;
  uVar24 = (*(uint *)(lVar4 - (uVar38 ^ 0xad6fdac2)) ^ DAT_182670974) * uVar24;
  uVar14 = (*(uint *)(lVar4 + -0xc34) ^ uVar33) * (uVar29 ^ 0x8c6ec2be) ^ DAT_182670938;
  uVar33 = uVar24 ^ DAT_182670a14;
  *(uint *)(lVar4 + -0x42c) = uVar14;
  uVar14 = uVar14 ^ DAT_182670938;
  *(uint *)(lVar4 + -0x9ec) = uVar33;
  uVar24 = uVar24 + uVar14;
  *(uint *)(lVar4 + -0x68c) = uVar24 ^ uVar25;
  uVar9 = DAT_182670acc;
  *(ulonglong *)(lVar4 + -0x658) =
       0x34e763194b97675f >> ((byte)*(undefined8 *)(lVar4 + -0x660) & 0x3f);
  uVar14 = uVar24 >> ((bVar13 ^ 0xb9) & 0x1f);
  *(uint *)(lVar4 + -0x14) = uVar24 << (bVar12 & 0x1f) ^ DAT_18267094c;
  *(uint *)(lVar4 + -0x7e4) = uVar14 ^ uVar9;
  *(undefined8 *)(lVar4 + -0x3b0) = 0x7eae1e0c2bd487c4;
  uVar24 = (*(uint *)(lVar4 - (uVar23 ^ 0xbf7fe6fe)) ^ DAT_18267094c | uVar14) ^ DAT_182670a80;
  uVar14 = DAT_182670974 ^ *(uint *)(lVar4 + -0x43c);
  *puVar1 = uVar24;
  uVar14 = uVar14 + (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^ DAT_182670a0c;
  *(uint *)(lVar4 + -0x2d4) = uVar14;
  uVar31 = DAT_182670ab0;
  uVar27 = DAT_1826708d8;
  uVar33 = uVar14 ^ DAT_182670960 ^ DAT_182670a0c;
  uVar20 = (ulonglong)DAT_182670a04;
  uVar14 = DAT_1826707cc ^ 0x343430a1;
  *(uint *)(lVar4 + -0x540) = uVar24 ^ DAT_1826708d4 ^ DAT_182670a80;
  uVar24 = DAT_1826707bc;
  *(uint *)(lVar4 + -0xc0c) = uVar33;
  uVar33 = uVar33 ^ uVar31 ^ DAT_182670960;
  *(uint *)(lVar4 + -0x398) = uVar33;
  *puVar36 = (uVar33 ^ uVar31) + uVar14;
  uVar33 = DAT_1826707f0;
  *(uint *)(lVar4 + -0x280) = *(uint *)(lVar4 + -0x540) ^ DAT_182670868 ^ DAT_1826708d4;
  bVar3 = (byte)DAT_182670a24;
  *(ulonglong *)(lVar4 + -0x270) =
       (CONCAT44(uVar35,uVar8) ^ 0xbf7fe6eaeb12f8d5) * 0x20 +
       (CONCAT44(uVar24,DAT_1826707d0) ^ 0x1a6c008ebb6f8d6) + *(longlong *)(lVar4 + -0x30) ^ uVar20;
  uVar14 = DAT_1826707a8;
  *(byte *)(lVar4 - ((ulonglong)uVar33 ^ 0xd720ffe5)) =
       *(byte *)(*(ulonglong *)(lVar4 - (uVar34 ^ 0x85f69b26)) ^ uVar20) ^ bVar3 ^
       (byte)DAT_182670adc;
  uVar16 = DAT_1826709cc;
  lVar5 = DAT_1826707a0;
  uVar30 = (uint)(bVar3 ^ *(byte *)(lVar4 + -0x619));
  uVar15 = *(uint *)(DAT_1826707a0 + -0x280) ^ DAT_182670868;
  *(uint *)(DAT_1826707a0 + -0x8e0) = uVar30 ^ DAT_1826709cc;
  uVar33 = DAT_1826707dc;
  *(uint *)(lVar5 + -0x814) = uVar15 + (uVar14 ^ 0x61c2301c) ^ uVar27;
  *(ulonglong *)(lVar5 + -0x588) =
       CONCAT44(uVar33,uVar11) ^ 0x9780d57a9cbd4735 | *(ulonglong *)(lVar5 + -0x2b0);
  uVar11 = DAT_182670964;
  lVar4 = DAT_1826707a0;
  *(uint *)(lVar5 + -0xc34) = uVar30 << (((byte)uVar35 ^ 0xfb) & 0x1f) ^ DAT_182670964;
  *(int *)(lVar4 - ((ulonglong)uVar33 ^ 0x80420dac)) =
       *(int *)(lVar4 + -0xa34) <<
       (((byte)*(undefined4 *)(lVar4 - ((ulonglong)uVar29 ^ 0x8c6ece8a)) ^ (byte)uVar11) & 0x1f);
  uVar15 = DAT_182670abc;
  uVar30 = (*(uint *)(lVar4 + -0x814) ^ uVar27) - (*(uint *)(lVar4 + -0xc34) ^ uVar11) ^
           DAT_182670974;
  *(uint *)(lVar4 + -0x42c) = uVar30;
  uVar11 = DAT_1826707bc ^ 0x1a6c003;
  uVar30 = (uVar30 ^ DAT_182670974) * (*(uint *)(lVar4 + -0x398) ^ uVar31) ^ DAT_182670888;
  puVar37 = (uint *)(lVar4 - (uVar21 ^ 0x3f7de14e));
  *(uint *)(lVar4 + -0x68c) = uVar30;
  uVar30 = uVar30 ^ DAT_182670888;
  *(uint *)(lVar4 + -0x14) = (uVar16 ^ *(uint *)(lVar4 + -0x8e0)) * uVar11 ^ uVar25;
  *puVar37 = (*(uint *)(lVar4 - ((ulonglong)uVar14 ^ 0xaae67d2b)) ^ uVar25) + uVar30 ^ uVar15;
  uVar16 = DAT_1826707f4;
  *puVar17 = (*(uint *)(lVar4 + -0x814) ^ uVar27) + (DAT_1826707f4 ^ 0xb6555501);
  uVar11 = (uVar15 ^ *(uint *)(lVar4 + -0x7e4)) << (bVar12 & 0x1f);
  bVar3 = (byte)DAT_1826707c4;
  *(uint *)(lVar4 + -0x2d4) = uVar11 ^ uVar27;
  uVar25 = (uVar15 ^ *(uint *)(lVar4 + -0x7e4)) >> ((bVar3 ^ 0xf8) & 0x1f);
  *puVar1 = uVar25 ^ uVar9;
  *(uint *)(lVar4 + -0xc0c) = (uVar25 | uVar11) ^ DAT_1826708f0;
  uVar9 = DAT_182670914;
  uVar15 = DAT_182670868;
  uVar11 = DAT_1826707d8;
  uVar25 = (*(uint *)(lVar4 + -0x398) ^ uVar31) + (DAT_182670848 ^ *(uint *)(lVar4 + -0xb54)) ^
           uVar26;
  *(ulonglong *)(lVar4 + -0xd38) = *(ulonglong *)(lVar4 + -0x420) ^ *(ulonglong *)(lVar4 + -0xf0);
  *(uint *)(lVar4 + -0x540) = uVar25;
  uVar26 = uVar25 ^ DAT_182670aec ^ uVar26;
  *(uint *)(lVar4 + -0x280) = uVar26;
  uVar27 = uVar26 ^ uVar9 ^ DAT_182670aec;
  uVar25 = *(uint *)(lVar4 - (uVar34 ^ 0x85f6955a)) ^ DAT_182670828 ^ DAT_1826708f0;
  *(uint *)(lVar4 + -0xa34) = uVar25;
  *(uint *)(lVar4 + -0xc34) = uVar25 ^ _DAT_182670b10 ^ DAT_182670828;
  uVar6 = DAT_1826707ac;
  uVar20 = CONCAT44(DAT_1826707ac,uVar11);
  *(uint *)(lVar4 + -0x9ec) = uVar27;
  uVar28 = (ulonglong)DAT_18267085c;
  *(ulonglong *)(lVar4 - (uVar22 ^ 0x8c6ec0f6)) =
       (uVar20 ^ 0x3c580693f7de6aa) * 0x20 + (CONCAT44(uVar33,uVar14) ^ 0x80420440aae67d29) +
       *(longlong *)(lVar4 + -0x30) ^ uVar28;
  bVar3 = (byte)DAT_18267090c;
  bVar12 = *(byte *)(*(ulonglong *)(lVar4 + -0x248) ^ uVar28) ^ (byte)DAT_18267090c ^
           (byte)DAT_182670adc;
  *(byte *)(lVar4 + -0xc35) = bVar12;
  *(uint *)(lVar4 + -0x42c) = (bVar12 ^ bVar3) ^ uVar15;
  uVar20 = (ulonglong)DAT_1826707b4;
  *(uint *)(lVar4 + -0x8e0) =
       (*(uint *)(lVar4 - (uVar18 ^ 0xeb12f4e1)) ^ _DAT_182670b10) + (DAT_1826707b4 ^ 0xf6d77c5b) ^
       DAT_18267098c;
  uVar26 = DAT_182670910;
  uVar27 = DAT_18267081c;
  uVar11 = DAT_1826707e0;
  lVar5 = DAT_1826707a0;
  uVar18 = (ulonglong)DAT_1826707ec;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar14 ^ 0xaae67bb3)) =
       (*(uint *)(lVar4 - (uVar20 ^ 0x3df33554)) ^ uVar15) << (((byte)DAT_1826707e0 ^ 0x5c) & 0x1f)
       ^ DAT_182670910;
  uVar33 = DAT_1826707e4;
  uVar25 = (*(uint *)(lVar5 - (uVar18 ^ 0x80420ca0)) ^ DAT_18267098c) -
           (uVar26 ^ *(uint *)(lVar5 + -0x68c));
  *(uint *)(lVar5 + -0x14) = uVar25 ^ uVar27;
  uVar31 = uVar25 * (*(uint *)(lVar5 + -0x9ec) ^ uVar9) ^ DAT_182670940;
  *(uint *)(lVar5 + -0x814) = uVar31;
  uVar25 = DAT_1826707e8;
  uVar31 = uVar31 ^ DAT_182670940;
  uVar16 = (*(uint *)(lVar5 - ((ulonglong)uVar16 ^ 0x7d711c0e)) ^ uVar15) *
           (DAT_1826707e8 ^ 0x3f7dc69c) ^ DAT_18267087c;
  *(uint *)(lVar5 + -0x43c) = uVar16;
  uVar31 = uVar31 + (uVar16 ^ DAT_18267087c);
  uVar18 = (ulonglong)DAT_1826707d0;
  *(uint *)(lVar5 + -0x7e4) = uVar31 ^ uVar26;
  *(uint *)(lVar5 - (uVar38 ^ 0xad6fdc2a)) =
       uVar31 << (((byte)*(undefined4 *)(lVar5 - (uVar18 ^ 0xebb6f8c9)) ^ (byte)uVar27) & 0x1f);
  lVar4 = DAT_1826707a0;
  puVar36 = (uint *)(lVar5 - ((ulonglong)uVar33 ^ 0x41248176));
  uVar15 = (uVar26 ^ *puVar37) << 0xd ^ DAT_18267082c;
  *puVar1 = uVar15;
  uVar27 = (*puVar36 ^ uVar26) >> 0x13 ^ DAT_18267086c;
  uVar15 = uVar15 ^ DAT_18267082c;
  uVar16 = DAT_182670848 ^ *(uint *)(lVar4 + -0xb54);
  *(uint *)(lVar4 + -0x398) = uVar27;
  *(uint *)(lVar4 + -0x540) = (uVar27 ^ DAT_18267086c | uVar15) ^ _DAT_1826709e0;
  *(uint *)(lVar4 + -0xc0c) = (*(uint *)(lVar4 + -0x9ec) ^ uVar9) + uVar16 ^ DAT_182670874;
  uVar27 = DAT_182670aa4;
  *(uint *)(lVar4 - (uVar34 ^ 0x85f69bd6)) =
       *(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0x9eda2141)) ^ DAT_182670950 ^ DAT_182670874;
  *(uint *)(lVar4 - ((ulonglong)uVar11 ^ 0x9eda2779)) =
       *(uint *)(lVar4 + -0x540) ^ DAT_1826709d8 ^ _DAT_1826709e0;
  *(uint *)(lVar4 + -0xc34) = (DAT_1826707dc ^ 0x2ccc7854) * -0x419d9dac;
  *(uint *)(lVar4 - (uVar38 ^ 0xad6fd61e)) =
       *(uint *)(lVar4 - (uVar20 ^ 0x3df333f8)) ^ uVar27 ^ DAT_182670950;
  *(ulonglong *)(lVar4 - ((ulonglong)DAT_1826707d8 ^ 0x3f7de172)) =
       *(ulonglong *)(lVar4 - (uVar38 ^ 0xad6fdba6)) ^ *(ulonglong *)(lVar4 + -0x118);
  *(uint *)(lVar4 + -0x68c) = DAT_1826709e8 ^ DAT_1826709d8 ^ *(uint *)(lVar4 + -0xa34);
  *(ulonglong *)(lVar4 + -0x1b8) =
       *(longlong *)(lVar4 + -0x3b0) - (CONCAT44(uVar24,uVar25) ^ 0xa4987847fbe9c2f5);
  uVar16 = DAT_1826709dc;
  bVar3 = (byte)DAT_1826709a0;
  pbVar19 = (byte *)((CONCAT44(uVar14,DAT_1826707d0) ^ 0xaae67d3febb6f8dd) * 0x20 +
                     (CONCAT44(uVar32,uVar8) ^ 0x85f69956eb12f8d4) + *(longlong *)(lVar4 + -0x30));
  *(ulonglong *)(lVar4 + -0x4f8) = (ulonglong)pbVar19 ^ (ulonglong)DAT_1826708cc;
  uVar28 = (ulonglong)DAT_1826707d8;
  bVar12 = *pbVar19 ^ bVar3 ^ (byte)DAT_182670adc;
  *(byte *)(lVar4 + -0x619) = bVar12;
  *(uint *)(lVar4 + -0x42c) = (bVar3 ^ bVar12) ^ uVar16;
  *(uint *)(lVar4 - (uVar28 ^ 0x3f7deebe)) =
       (*(uint *)(lVar4 - (uVar34 ^ 0x85f69fda)) ^ DAT_1826709e8) + (DAT_1826707b8 ^ 0x2036b5f6) ^
       DAT_182670a60;
  puVar17 = (uint *)(lVar4 - (uVar22 ^ 0x8c6ec692));
  bVar12 = (byte)DAT_1826707bc ^ 0x19;
  uVar24 = (uVar16 ^ *puVar17) << (bVar12 & 0x1f) ^ DAT_182670ac8;
  uVar14 = *(uint *)(lVar4 + -0x814) ^ DAT_182670a60;
  *(uint *)(lVar4 + -0x43c) = uVar24;
  uVar24 = uVar14 - (uVar24 ^ DAT_182670ac8) ^ DAT_182670a74;
  *(uint *)(lVar4 + -0x14) = uVar24;
  uVar14 = DAT_1826709ec;
  *(uint *)(lVar4 + -0x2d4) =
       (uVar27 ^ *(uint *)(lVar4 + -0x8e0)) * (uVar24 ^ DAT_182670a74) ^ DAT_1826709ec;
  *puVar36 = (uVar16 ^ *(uint *)(lVar4 + -0x42c)) * (DAT_1826707f0 ^ 0xd720f9fd) ^ DAT_182670880;
  uVar25 = DAT_182670924;
  lVar5 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar11 ^ 0x9eda2e99)) =
       (*(uint *)(lVar4 - (uVar38 ^ 0xad6fd91a)) ^ DAT_182670880) +
       (uVar14 ^ *(uint *)(lVar4 + -0x2d4)) ^ DAT_182670924;
  uVar24 = _DAT_1826708f8;
  uVar14 = DAT_1826707c4;
  uVar18 = (ulonglong)DAT_1826707c4;
  *(uint *)(lVar5 + -0x398) = (*puVar1 ^ uVar25) << (((byte)uVar33 ^ 0x9f) & 0x1f) ^ _DAT_1826708f8;
  uVar7 = DAT_1826707ac;
  *(longlong *)(lVar5 + -0x68) = *(longlong *)(lVar5 + -0xb70) << ((bVar13 ^ 0xbe) & 0x3f);
  *(uint *)(lVar5 + -0x9ec) = (*puVar1 ^ uVar25) >> (((byte)uVar7 ^ 0x7a) & 0x1f) ^ DAT_182670a7c;
  *(ulonglong *)(lVar5 - (uVar28 ^ 0x3f7de36a)) =
       (CONCAT44(uVar6,uVar8) ^ 0xf22af456a2bfacc7) <<
       ((byte)*(undefined8 *)(lVar5 + -0xbb0) & 0x3f);
  uVar8 = _DAT_182670ad4;
  *(uint *)(lVar5 - (uVar20 ^ 0x3df33d74)) =
       (*(uint *)(lVar5 - (uVar18 ^ 0xd5f81b07)) ^ DAT_182670a7c |
       uVar24 ^ *(uint *)(lVar5 + -0x398)) ^ _DAT_182670ad4;
  uVar25 = (*(uint *)(lVar5 - (uVar21 ^ 0x3f7dee4a)) ^ uVar27) +
           (DAT_182670848 ^ *(uint *)(lVar5 + -0xb54)) ^ DAT_182670a78;
  uVar24 = DAT_182670834 ^ DAT_182670a78;
  *(uint *)(lVar5 + -0x540) = uVar25;
  *(uint *)(lVar5 + -0xc34) = uVar24 ^ uVar25;
  uVar24 = DAT_182670a48;
  uVar20 = (ulonglong)DAT_182670aa0;
  *(uint *)(lVar5 - ((ulonglong)uVar33 ^ 0x41248412)) =
       uVar8 ^ *(uint *)(lVar5 + -0xc0c) ^ DAT_182670af0;
  uVar8 = DAT_1826708f4;
  *(uint *)(lVar5 + -0xa34) = uVar24 ^ DAT_182670834 ^ *(uint *)(lVar5 + -0xc34);
  *(uint *)(lVar5 + -0x68c) = DAT_1826709b8 ^ *(uint *)(lVar5 + -0x280) ^ DAT_182670af0;
  *(ulonglong *)(lVar5 + -0x220) = *(ulonglong *)(lVar5 + -0x5c0) >> ((byte)uVar14 & 0x3f);
  bVar3 = (byte)DAT_182670904;
  *(ulonglong *)(lVar5 - (uVar18 ^ 0xd5f81003)) =
       (CONCAT44(uVar14,uVar32) ^ 0xd5f812eb85f6995a) +
       (CONCAT44(uVar35,uVar29) ^ 0xbf7fe6ea8c6ec2be) * 0x20 + *(longlong *)(lVar5 + -0x30) ^ uVar20
  ;
  bVar13 = *(byte *)(*(ulonglong *)(lVar5 + -0x2e8) ^ uVar20) ^ (byte)DAT_182670adc;
  *(byte *)(lVar5 + -0xc35) = bVar13 ^ bVar3;
  *(uint *)(lVar5 - (uVar23 ^ 0xbf7feefe)) = bVar13 ^ DAT_182670850;
  uVar33 = *(uint *)(lVar5 + -0x814) ^ DAT_182670850;
  uVar29 = (*(uint *)(lVar5 - ((ulonglong)uVar11 ^ 0x9eda2bc1)) ^ DAT_1826709b8) +
           (DAT_1826707ec ^ 0x4b664963);
  uVar14 = uVar33 << (bVar12 & 0x1f);
  uVar11 = uVar14 ^ DAT_182670a94;
  *(uint *)(lVar5 + -0x43c) = uVar29 ^ uVar16;
  *(uint *)(lVar5 + -0x14) = uVar11;
  *(uint *)(lVar5 + -0x42c) = uVar29 - uVar14 ^ uVar8;
  uVar11 = (uVar24 ^ *(uint *)(lVar5 + -0xa34)) * (uVar8 ^ *puVar17);
  uVar14 = DAT_1826707dc ^ 0x8042044c;
  *(uint *)(lVar5 + -0x2d4) = uVar11 ^ DAT_182670a5c;
  *(uint *)(lVar5 + -0x7e4) = uVar14 * uVar33 ^ DAT_1826709f0;
  *puVar1 = (*(uint *)(lVar5 - ((ulonglong)DAT_1826707f0 ^ 0xd720fe18)) ^ DAT_1826709f0) + uVar11 ^
            uVar8;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar10 * 4) = uVar2 ^ uVar32;
  return;
}



############ FUN_ 180d20be0 size=4609 ############

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

void FUN_180d20be0(void)

{
  byte bVar1;
  longlong lVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  byte bVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  uint uVar14;
  ulonglong uVar15;
  ulonglong uVar16;
  longlong lVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  ulonglong uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint *puVar26;
  uint uVar27;
  ulonglong uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  ulonglong uVar36;
  byte local_a8;
  
  uVar20 = DAT_1826709b0;
  uVar23 = DAT_1826707d4;
  uVar5 = DAT_1826707c8;
  uVar14 = DAT_1826707b8;
  uVar3 = DAT_1826707ac;
  lVar2 = DAT_1826707a0;
  uVar35 = (ulonglong)DAT_1826707b8;
  uVar25 = DAT_1826707b8 | DAT_1826707c8;
  uVar34 = (ulonglong)DAT_1826707d4;
  uVar31 = DAT_1826707d4 << 0x10 | DAT_1826707d4 >> 0x10;
  uVar18 = DAT_1826707ac & DAT_1826707e0;
  uVar8 = *(uint *)(&DAT_18260f750 + ((ulonglong)uVar25 ^ 0xa3efc561) + (longlong)DAT_182670c38) ^
          DAT_1826707b8;
  uVar9 = *(uint *)(&DAT_18260f760 + DAT_182670c38) ^ DAT_1826707c8;
  uVar10 = (ulonglong)DAT_1826707e0;
  DAT_1826707c4 = uVar31;
  DAT_1826707e4 = uVar25;
  DAT_1826707ec = uVar18;
  *(uint *)(DAT_1826707a0 + -0x2d4) =
       (*(uint *)(DAT_1826707a0 + -0xb54) ^ DAT_182670848) +
       (*(uint *)(DAT_1826707a0 + -0x814) ^ DAT_182670ab4) ^ DAT_18267087c;
  lVar17 = DAT_1826707a0;
  uVar28 = (ulonglong)uVar18;
  uVar15 = (ulonglong)uVar3;
  *(ulonglong *)(lVar2 - (uVar28 ^ 0x8ac807ee)) =
       *(ulonglong *)(lVar2 - (uVar10 ^ 0x8fc907fe)) ^ *(ulonglong *)(lVar2 + -0x1b8);
  uVar19 = DAT_182670a38 ^ *(uint *)(lVar2 + -0x3d4);
  *(uint *)(lVar2 + -0xc34) = *(uint *)(lVar2 + -0x2d4) ^ DAT_182670954 ^ DAT_18267087c;
  *(uint *)(lVar2 + -0x14) = *(uint *)(lVar2 + -0x7e4) ^ DAT_182670afc ^ DAT_182670a78;
  uVar4 = DAT_1826707bc;
  uVar16 = (ulonglong)DAT_1826707bc;
  uVar32 = DAT_1826707bc << 0x10;
  *(uint *)(lVar2 - (uVar15 ^ 0xcacab653)) = uVar19 & (uVar31 ^ 0x3cde5fa8);
  uVar19 = DAT_1826707bc;
  uVar33 = (uVar32 | uVar4 & 0xff00) << 8 | uVar4 >> 8 & 0xff00 | DAT_1826707bc >> 0x18;
  DAT_1826707d0 = uVar33;
  *(uint *)(lVar2 - (uVar16 ^ 0x1a6c424)) = *(uint *)(lVar2 + -0xc34) ^ uVar20 ^ DAT_182670954;
  uVar32 = DAT_182670898;
  uVar11 = (ulonglong)uVar33;
  uVar13 = (ulonglong)DAT_182670848;
  *(byte *)(lVar17 - (uVar34 ^ 0xc5b6df1c)) =
       *(byte *)(*(ulonglong *)(lVar17 - (uVar11 ^ 0x8c0abb9)) ^ (ulonglong)DAT_18267099c) ^
       (byte)DAT_182670adc;
  uVar12 = (ulonglong)uVar5;
  uVar29 = *(uint *)(lVar17 + -0x14) ^ DAT_182670824 ^ DAT_182670afc;
  uVar36 = CONCAT44(uVar5,uVar14);
  *(uint *)(lVar17 + -0xc0c) = uVar29;
  uVar29 = uVar29 ^ DAT_182670824;
  pbVar21 = (byte *)(*(longlong *)(lVar17 - (uVar16 ^ 0x1a6c038)) +
                     (CONCAT44(uVar25,uVar18) ^ 0xa3efc5698ac802b6) * 0x20 +
                    (uVar36 ^ 0xa1cf854922a04022));
  *(ulonglong *)(lVar17 + -0x4f8) = (ulonglong)pbVar21 ^ uVar13;
  lVar2 = DAT_1826707a0;
  *(byte *)(DAT_1826707a0 + -0x619) = *pbVar21 ^ (byte)uVar32 ^ (byte)DAT_182670adc;
  uVar24 = DAT_182670958;
  *(ulonglong *)(lVar2 + -0x9e0) =
       *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xa3efc331)) |
       CONCAT44(uVar3,uVar23) ^ 0xbcfdb743f4d942e7;
  uVar27 = uVar32 & 0xff ^ (uint)*(byte *)(lVar2 + -0x619);
  *(uint *)(lVar2 + -0x280) = uVar27 ^ uVar24;
  uVar27 = uVar27 << (((byte)uVar18 ^ 0xa7) & 0x1f) ^ DAT_182670a0c;
  *(uint *)(lVar2 + -0x43c) = uVar29 + (uVar33 ^ 0xc3e4eb22) ^ DAT_182670820;
  uVar29 = DAT_1826707e0 ^ uVar31;
  *(uint *)(lVar2 - (uVar34 ^ 0xc5b6d669)) = uVar27;
  uVar27 = DAT_182670b14;
  *(uint *)(lVar2 + -0x598) =
       (*(uint *)(lVar2 - (uVar16 ^ 0x1a6c434)) ^ DAT_182670820) -
       (*(uint *)(lVar2 + -0x540) ^ DAT_182670a0c) ^ DAT_182670914;
  *(uint *)(lVar2 - (uVar12 ^ 0xa1cf8f7d)) = uVar29 ^ 0xde8dcd65;
  *(uint *)(lVar2 + -0xc04) =
       (*(uint *)(lVar2 + -0x42c) ^ uVar20) * (*(uint *)(lVar2 + -0x598) ^ DAT_182670914) ^
       DAT_182670a04;
  uVar29 = (*(uint *)(lVar2 + -0x280) ^ uVar24) * 0xb ^ DAT_18267092c;
  *(uint *)(lVar2 + -0x398) = uVar29;
  uVar13 = (ulonglong)uVar31;
  *(uint *)(lVar2 + -0x68c) =
       (*(uint *)(lVar2 - (uVar10 ^ 0x8fc90eb2)) ^ DAT_182670a04) + (uVar29 ^ DAT_18267092c) ^
       uVar27;
  lVar17 = DAT_1826707a0;
  bVar1 = (byte)DAT_1826707c8;
  uVar30 = (*(uint *)(lVar2 - ((ulonglong)uVar31 ^ 0xd329c33a)) ^ uVar27) << 0xd ^ DAT_182670a30;
  puVar26 = (uint *)(DAT_1826707a0 + -0x68c);
  uVar29 = *(uint *)(DAT_1826707a0 + -0xb54) ^ DAT_182670848;
  *(uint *)(DAT_1826707a0 + -0x814) = uVar30;
  uVar30 = uVar30 ^ DAT_182670a30;
  uVar27 = (*puVar26 ^ uVar27) >> ((bVar1 ^ 0x5a) & 0x1f) ^ DAT_182670ae0;
  *(uint *)(lVar17 + -0x2d4) = uVar27;
  *(uint *)(lVar17 + -0x7e4) = (uVar30 | uVar27 ^ DAT_182670ae0) ^ DAT_182670a18;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar25 ^ 0xa3efc6bd)) =
       uVar29 + (*(uint *)(lVar17 + -0x42c) ^ uVar20) ^ DAT_1826709bc;
  uVar20 = *(uint *)(lVar2 + -0x7e4) ^ DAT_182670960 ^ DAT_182670a18;
  *(uint *)(lVar2 + -0x9ec) =
       *(uint *)(lVar2 - (uVar15 ^ 0xcacabc6b)) ^ _DAT_18267097c ^ DAT_1826709bc;
  *(longlong *)(lVar2 + -0xb70) =
       *(longlong *)(lVar2 + -0x400) << (((byte)(uVar19 >> 0x18) ^ 9) & 0x3f);
  *(uint *)(lVar2 - (uVar28 ^ 0x8ac80e82)) = uVar20;
  *(ulonglong *)(lVar2 + -0x588) =
       (CONCAT44(uVar4,uVar23) ^ 0x6207089130ce23b7) - *(longlong *)(lVar2 + -0x410);
  uVar20 = DAT_1826708b8;
  *(uint *)(lVar2 + -0x14) = *(uint *)(lVar2 + -0x9ec) ^ DAT_1826708b8 ^ _DAT_18267097c;
  lVar17 = DAT_1826707a0;
  uVar19 = *(uint *)(lVar2 + -0xc34) ^ DAT_182670b00 ^ DAT_182670960;
  *(ulonglong *)(lVar2 + -0xf0) =
       *(ulonglong *)(lVar2 - (uVar15 ^ 0xcacab65f)) >>
       ((byte)*(undefined8 *)(lVar2 + -0xcf8) & 0x3f);
  *(uint *)(lVar2 + -0xc0c) = uVar19;
  pbVar21 = (byte *)(*(longlong *)(lVar17 + -0x30) + 0x16 +
                    (CONCAT44(uVar14,uVar23) ^ 0x22a04029c5b6d329) * 0x20);
  *(ulonglong *)(lVar17 + -0x248) = (ulonglong)pbVar21 ^ (ulonglong)DAT_182670850;
  bVar1 = (byte)DAT_182670a74;
  lVar2 = DAT_1826707a0;
  *(ulonglong *)(DAT_1826707a0 + -0xa18) =
       CONCAT44(uVar33,uVar31) ^ 0x359908f918e75010 | uVar36 ^ 0xa3271198703e7bd5;
  *(byte *)(lVar2 - (uVar10 ^ 0x8fc90e83)) = *pbVar21 ^ bVar1 ^ (byte)DAT_182670adc;
  *(uint *)(lVar2 - (uVar28 ^ 0x8ac8068a)) =
       (*(byte *)(lVar2 - (uVar16 ^ 0x1a6cc3d)) ^ bVar1) ^ uVar32;
  uVar19 = *(uint *)(lVar2 - (uVar34 ^ 0xc5b6df25)) ^ DAT_182670b00;
  *(undefined8 *)(lVar2 + -0x890) = 0x17ae3778930e535;
  uVar19 = uVar19 + (uVar25 ^ 0x68cb884a) ^ DAT_182670908;
  *(uint *)(lVar2 + -0x540) = uVar19;
  uVar19 = uVar19 ^ DAT_182670908;
  *(uint *)(lVar2 + -0xa34) =
       (*(uint *)(lVar2 - (uVar10 ^ 0x8fc9068a)) ^ uVar32) << (((byte)DAT_1826707e0 ^ 0xa7) & 0x1f)
       ^ _DAT_182670ad4;
  puVar26 = (uint *)(lVar2 - ((ulonglong)uVar25 ^ 0xa3efcf5d));
  *(uint *)(lVar2 - (uVar12 ^ 0xa1cf80d1)) = uVar19 - (*puVar26 ^ _DAT_182670ad4) ^ DAT_18267085c;
  uVar27 = DAT_182670994;
  *(uint *)(lVar2 - (uVar10 ^ 0x8fc90036)) =
       (*(uint *)(lVar2 + -0x14) ^ uVar20) * (*(uint *)(lVar2 + -0x598) ^ DAT_18267085c) ^
       DAT_182670994;
  uVar19 = DAT_18267083c;
  local_a8 = (byte)uVar3;
  *(uint *)(lVar2 + -0xc04) =
       (uVar32 ^ *(uint *)(lVar2 + -0x43c)) * (uVar33 ^ 0x8c0a617) ^ DAT_18267083c;
  *(ulonglong *)(lVar2 - ((ulonglong)uVar25 ^ 0xa3efc309)) =
       0xc347e291fcda628b >> ((local_a8 ^ 0x92) & 0x3f);
  uVar32 = DAT_1826709a4;
  *(uint *)(lVar2 + -0x398) =
       (*(uint *)(lVar2 - (uVar34 ^ 0xc5b6d1a9)) ^ uVar27) + (uVar19 ^ *(uint *)(lVar2 + -0xc04)) ^
       DAT_1826709a4;
  uVar19 = (*(uint *)(lVar2 - (uVar13 ^ 0xd329c62e)) ^ uVar32) << 0xd ^ DAT_182670830;
  *(uint *)(lVar2 + -0x68c) = uVar19;
  uVar19 = uVar19 ^ DAT_182670830;
  *(uint *)(lVar2 + -0x814) =
       (*(uint *)(lVar2 - (uVar28 ^ 0x8ac8012e)) ^ uVar32) >> (((byte)uVar18 ^ 0xa5) & 0x1f) ^
       DAT_182670914;
  *(uint *)(lVar2 - (uVar35 ^ 0x22a042fd)) =
       (*(uint *)(lVar2 - (uVar13 ^ 0xd329cda2)) ^ DAT_182670914 | uVar19) ^ DAT_1826709c8;
  uVar19 = (*(uint *)(lVar2 + -0x14) ^ uVar20) + (*(uint *)(lVar2 + -0xb54) ^ DAT_182670848) ^
           DAT_182670888;
  *(uint *)(lVar2 + -0x42c) = uVar19;
  *(uint *)(lVar2 + -0x3d4) = uVar19 ^ DAT_182670af8 ^ DAT_182670888;
  *(byte *)(lVar2 + -0x619) =
       *(byte *)((ulonglong)uVar24 ^ *(ulonglong *)(lVar2 + -0x270)) ^ (byte)DAT_182670adc;
  uVar32 = DAT_1826709a0;
  lVar17 = DAT_1826707a0;
  *(uint *)(lVar2 - (uVar34 ^ 0xc5b6d4cd)) =
       *(uint *)(lVar2 + -0x2d4) ^ DAT_182670aa8 ^ DAT_1826709c8;
  uVar19 = *(uint *)(lVar17 + -0x7e4) ^ DAT_182670b0c ^ DAT_182670aa8;
  *(uint *)(lVar17 + -0x9ec) = uVar32 ^ DAT_182670af8 ^ *(uint *)(lVar17 + -0x3d4);
  *(uint *)(lVar17 - (uVar16 ^ 0x1a6cc3c)) = uVar19;
  bVar1 = (byte)DAT_182670a14;
  uVar22 = (ulonglong)DAT_18267094c;
  *(ulonglong *)(lVar17 + -0xdb8) =
       (CONCAT44(uVar18,uVar14) ^ 0x8ac802b622a04028) + (uVar36 ^ 0xa1cf854922a04029) * 0x20 +
       *(longlong *)(lVar17 + -0x30) ^ uVar22;
  *(ulonglong *)(lVar17 + -0x4c8) =
       CONCAT44(uVar33,uVar4) ^ CONCAT44(uVar25,uVar3) ^ 0xcf0ee6c584a5ed85;
  bVar7 = *(byte *)(*(ulonglong *)(lVar17 - (uVar13 ^ 0xd329c80e)) ^ uVar22) ^ bVar1 ^
          (byte)DAT_182670adc;
  *(byte *)(lVar17 + -0xc35) = bVar7;
  uVar19 = DAT_182670a40;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - (uVar28 ^ 0x8ac80eba)) = (bVar7 ^ bVar1) ^ DAT_182670a40;
  *(ulonglong *)(lVar2 - (uVar10 ^ 0x8fc90446)) = *(ulonglong *)(lVar2 + -0xf0) >> 0x20;
  *(uint *)(lVar2 + -0x540) =
       (*(uint *)(lVar2 + -0xc34) ^ DAT_182670b0c) + (DAT_1826707ac ^ 0x1eef29c) ^ DAT_182670834;
  uVar14 = DAT_182670948;
  *puVar26 = (uVar19 ^ *(uint *)(lVar2 + -0xc0c)) << (((byte)DAT_1826707c8 ^ 0x58) & 0x1f) ^
             DAT_1826708dc;
  uVar3 = DAT_1826707e0;
  uVar20 = (*(uint *)(lVar2 + -0x540) ^ DAT_182670834) -
           (*(uint *)(lVar2 - (uVar16 ^ 0x1a6ca3c)) ^ DAT_1826708dc) ^ DAT_182670aac;
  *(uint *)(lVar2 + -0x598) = uVar20;
  *(uint *)(lVar2 + -0x43c) =
       (*(uint *)(lVar2 + -0x9ec) ^ uVar32) * (uVar20 ^ DAT_182670aac) ^ uVar14;
  *(uint *)(lVar2 - (uVar28 ^ 0x8ac80036)) = 0xeb84c315 >> (((byte)uVar3 ^ 0xad) & 0x1f);
  *(uint *)(lVar2 + -0xc04) =
       (uVar19 ^ *(uint *)(lVar2 + -0xc0c)) * (DAT_1826707d4 ^ 0xc5b6d328) ^ DAT_1826709f0;
  *(ulonglong *)(lVar2 + -0x2b0) =
       CONCAT44(uVar5,uVar23) ^ 0x45c5f26f97e892df | *(ulonglong *)(lVar2 + -0x9e0);
  uVar19 = DAT_182670974;
  *(uint *)(lVar2 - (uVar10 ^ 0x8fc9012e)) =
       (*(uint *)(lVar2 - (uVar16 ^ 0x1a6cc0c)) ^ DAT_1826709f0) +
       (uVar14 ^ *(uint *)(lVar2 + -0x43c)) ^ DAT_182670974;
  *(ulonglong *)(lVar2 + -0xce0) =
       *(ulonglong *)(lVar2 - (uVar11 ^ 0x8c0a6f1)) ^ CONCAT44(uVar25,uVar33) ^ 0x6cd95a97140dfae7;
  uVar20 = DAT_182670ae4;
  bVar1 = (byte)DAT_1826707b8;
  *(uint *)(lVar2 + -0x68c) =
       (uVar19 ^ *(uint *)(lVar2 + -0x398)) << (((byte)uVar3 ^ 0xbb) & 0x1f) ^ DAT_182670a3c;
  *(uint *)(lVar2 + -0x814) =
       (uVar19 ^ *(uint *)(lVar2 + -0x398)) >> ((bVar1 ^ 0x3a) & 0x1f) ^ DAT_1826708ec;
  uVar6 = DAT_182670b08;
  *(uint *)(lVar2 + -0x14) =
       (*(uint *)(lVar2 - (uVar12 ^ 0xa1cf8d5d)) ^ DAT_1826708ec |
       *(uint *)(lVar2 - (uVar11 ^ 0x8c0a08d)) ^ DAT_182670a3c) ^ DAT_1826707fc;
  uVar14 = *(uint *)(lVar2 + -0xb54) ^ DAT_182670848;
  *(ulonglong *)(lVar2 + -0x3b0) =
       *(ulonglong *)(CONCAT44(uVar6,uVar6) ^ *(ulonglong *)(lVar2 + -0x428)) ^
       CONCAT44(uVar20,uVar20);
  uVar3 = DAT_1826707cc;
  uVar23 = DAT_1826707cc << 0x10;
  *(uint *)(lVar2 - (uVar13 ^ 0xd329c19a)) = uVar14 + (*(uint *)(lVar2 + -0x9ec) ^ uVar32) ^ uVar27;
  uVar14 = *(uint *)(lVar2 + -0x42c) ^ uVar27 ^ DAT_182670a78;
  *(uint *)(lVar2 + -0x3d4) = *(uint *)(lVar2 + -0x14) ^ DAT_182670864 ^ DAT_1826707fc;
  uVar19 = uVar20 ^ uVar14 ^ DAT_182670a78;
  *(uint *)(lVar2 + -0x2d4) = uVar14;
  *(uint *)(lVar2 - (uVar28 ^ 0x8ac80552)) = uVar19;
  uVar32 = DAT_182670998;
  uVar14 = DAT_182670828;
  lVar2 = DAT_1826707a0;
  uVar24 = (uVar23 | uVar3 & 0xff00) << 8 | uVar3 >> 8 & 0xff00 | DAT_1826707cc >> 0x18;
  uVar11 = (ulonglong)DAT_1826708f0;
  DAT_1826707f4 = uVar24;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0xa82a73a2)) =
       DAT_182670828 ^ DAT_182670864 ^ *(uint *)(DAT_1826707a0 + -0x3d4);
  *(ulonglong *)(lVar2 - ((ulonglong)uVar24 ^ 0x967f28d8)) =
       *(longlong *)(lVar2 + -0x30) + 0xc + (CONCAT44(uVar24,uVar3) ^ 0x967f2aa8a82a7f96) * 0x20 ^
       uVar11;
  lVar17 = DAT_1826707a0;
  bVar7 = *(byte *)(*(ulonglong *)(lVar2 + -0x270) ^ uVar11) ^ (byte)DAT_182670adc;
  *(byte *)(lVar2 + -0x619) = bVar7 ^ (byte)DAT_182670acc;
  *(uint *)(lVar2 + -0x540) = bVar7 ^ uVar32;
  uVar19 = (*(uint *)(lVar2 + -0xc34) ^ uVar14) + (uVar24 ^ 0x5d5b678b) ^ DAT_182670824;
  *(uint *)(lVar17 + -0xa34) = uVar19;
  uVar19 = uVar19 ^ DAT_182670824;
  *(ulonglong *)(lVar17 + -0x5c0) = CONCAT44(uVar3,uVar24) ^ 0x135831000400d030 | 0xa4834c7f8a710087
  ;
  bVar1 = (byte)uVar3;
  *(uint *)(DAT_1826707a0 + -0x598) = (uint)bVar7 << ((bVar1 ^ 0x87) & 0x1f) ^ DAT_1826708c0;
  uVar19 = uVar19 - (*(uint *)(DAT_1826707a0 - ((ulonglong)uVar24 ^ 0x967f2f30)) ^ DAT_1826708c0) ^
           DAT_182670a80;
  puVar26 = (uint *)(DAT_1826707a0 + -0x7e4);
  *(uint *)(DAT_1826707a0 + -0x280) = uVar19;
  uVar23 = _DAT_1826708c8;
  lVar2 = DAT_1826707a0;
  *(uint *)(DAT_1826707a0 - ((ulonglong)uVar3 ^ 0xa82a739a)) =
       (uVar20 ^ *puVar26) * (uVar19 ^ DAT_182670a80) ^ _DAT_1826708c8;
  uVar19 = DAT_182670838;
  *(uint *)(lVar2 + -0x43c) = *(uint *)(lVar2 + -0xc34) ^ uVar14 | 0xc66df7aa;
  uVar32 = (*(uint *)(lVar2 + -0x540) ^ uVar32) * (uVar24 ^ 0x967f2aa4);
  *(uint *)(lVar2 + -0xc04) = uVar32 ^ uVar19;
  uVar14 = DAT_1826708e8;
  uVar32 = uVar32 + (uVar23 ^ *(uint *)(lVar2 + -0xc0c));
  *(uint *)(lVar2 + -0x398) = uVar32 ^ DAT_1826708e8;
  uVar14 = (uVar14 ^ *(uint *)(lVar2 + -0x398)) >> ((bVar1 ^ 0x85) & 0x1f) ^ DAT_182670914;
  *(uint *)(lVar2 + -0x814) = uVar32 << ((bVar1 ^ 0x9b) & 0x1f) ^ DAT_182670ae8;
  *(uint *)(lVar2 - ((ulonglong)uVar24 ^ 0x967f2c24)) = uVar14;
  uVar19 = *(uint *)(lVar2 + -0x68c) ^ DAT_182670914;
  uVar14 = *(uint *)(lVar2 + -0x814) ^ DAT_182670ae8;
  *(ulonglong *)(lVar2 + -0x220) =
       (CONCAT44(uVar24,uVar3) ^ 0x5aff6fe324ad6c8c) -
       (CONCAT44(uVar24,uVar24) ^ 0x8652cdb2ff239234);
  *(uint *)(lVar2 + -0x9ec) = (uVar19 | uVar14) ^ DAT_1826709b4;
  *(uint *)(lVar2 + -0x42c) =
       (*(uint *)(lVar2 - (uVar10 ^ 0x8fc909e2)) ^ DAT_182670848) +
       (*(uint *)(lVar2 - ((ulonglong)uVar3 ^ 0xa82a7872)) ^ uVar20) ^ DAT_182670940;
  bVar1 = (byte)DAT_182670944;
  uVar14 = *(uint *)(lVar2 - (uVar15 ^ 0xcacabb93)) ^ DAT_182670a5c ^ DAT_182670940;
  *(uint *)(lVar2 + -0x14) = uVar14;
  uVar14 = uVar14 ^ DAT_182670a50 ^ DAT_182670a5c;
  *(uint *)(lVar2 + -0x2d4) =
       *(uint *)(lVar2 - (uVar28 ^ 0x8ac80b5a)) ^ DAT_182670860 ^ DAT_1826709b4;
  *(uint *)(lVar2 - (uVar34 ^ 0xc5b6d0fd)) = uVar14;
  uVar10 = (ulonglong)DAT_182670a68;
  lVar17 = *(longlong *)(lVar2 + -0x548) - *(longlong *)(lVar2 + -0x400);
  *(uint *)(lVar2 + -0xa34) = DAT_182670904 ^ DAT_182670860 ^ *(uint *)(lVar2 + -0x2d4);
  *(longlong *)(lVar2 + -0x610) = lVar17;
  *(ulonglong *)(lVar2 + -0xdb8) =
       (CONCAT44(uVar18,uVar4) ^ 0x8ac802b601a6c01f) + *(longlong *)(lVar2 + -0x30) ^ uVar10;
  *(longlong *)(lVar2 + -0xac0) =
       *(longlong *)(lVar2 - ((ulonglong)uVar3 ^ 0xa82a79a6)) - *(longlong *)(lVar2 + -0x118);
  *(byte *)(lVar2 + -0xc35) =
       *(byte *)(*(ulonglong *)(lVar2 - (uVar35 ^ 0x22a04d91)) ^ uVar10) ^ (byte)DAT_182670adc ^
       bVar1;
  *(ulonglong *)(lVar2 + -0x9c8) =
       (CONCAT44(uVar24,uVar5) ^ 0x9f530d3c3c1e660b) >> ((byte)lVar17 & 0x3f);
  *(uint *)(lVar2 + -0x598) = (*(byte *)(lVar2 + -0xc35) ^ bVar1) ^ DAT_182670884;
  *(uint *)(&DAT_182670b20 + (longlong)(int)uVar9 * 4) = uVar8;
  return;
}



############ FUN_ 18056ae10 size=88 ############

void FUN_18056ae10(void *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  uint uVar1;
  uint *_Memory;
  
  FUN_1811e1f10((longlong)param_1 + 0x10,*(undefined8 *)((longlong)param_1 + 8),param_3,param_4,
                0xfffffffffffffffe);
  _Memory = (uint *)(*(longlong *)((longlong)param_1 + 0x10) + -0x10);
  if ((*_Memory & 0x30000000) == 0) {
    LOCK();
    uVar1 = *_Memory;
    *_Memory = *_Memory - 1;
    UNLOCK();
    if (uVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
  }
                    /* WARNING: Subroutine does not return */
  free(param_1);
}



############ FUN_ 1811e6b70 size=311 ############

undefined8 FUN_1811e6b70(undefined8 param_1)

{
  undefined8 uVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  undefined1 auStack_1a8 [60];
  undefined4 local_16c;
  uint local_120;
  undefined8 local_108;
  undefined8 local_a0;
  ulonglong local_38;
  
  local_a0 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_1a8;
  local_16c = 0x8f0;
  uVar2 = (uint)&stack0x00000000 & 0x65ff;
  iVar3 = uVar2 * uVar2 + 1;
  uVar4 = (iVar3 >> 4) + (iVar3 >> 1) + iVar3 * 0x24924924 >> 0x1d;
  uVar2 = (int)(uVar4 - 7) >> 0x1f & uVar4;
  iVar3 = (int)((-uVar2 | uVar2) ^ 0xffffffff) >> 0x1f;
  local_120 = 0x173dU - iVar3 ^ 0x105d;
  local_108 = param_1;
  uVar1 = FUN_1811e6cae(iVar3,(-(ulonglong)uVar4 ^ 0xffffffffffffffff) + 1);
  return uVar1;
}



############ FUN_ 1805a72c0 size=288 ############

longlong * FUN_1805a72c0(longlong *param_1)

{
  int iVar1;
  longlong lVar2;
  undefined8 *puVar3;
  ulonglong uVar4;
  
  uVar4 = 0;
  lVar2 = param_1[1] - *param_1 >> 0x3f;
  if ((param_1[1] - *param_1) / 0x90 + lVar2 != lVar2) {
    do {
      if (param_1[6] == 0) {
LAB_1805a733a:
        puVar3 = (undefined8 *)(*param_1 + 8 + uVar4 * 0x90);
        puVar3[2] = 0;
        if (0xf < (ulonglong)puVar3[3]) {
          puVar3 = (undefined8 *)*puVar3;
        }
        *(undefined1 *)puVar3 = 0;
      }
      else {
        iVar1 = *(int *)(*param_1 + uVar4 * 0x90);
        if ((iVar1 < 0) ||
           ((*(uint *)(param_1[3] + ((ulonglong)(longlong)iVar1 >> 5) * 4) &
            1 << ((byte)iVar1 & 0x1f)) == 0)) goto LAB_1805a733a;
      }
      uVar4 = (ulonglong)((int)uVar4 + 1);
    } while (uVar4 < (ulonglong)((param_1[1] - *param_1) / 0x90));
  }
  *(undefined4 *)((longlong)param_1 + 0x3c) = 0;
  *(undefined1 *)((longlong)param_1 + 0x44) = 0;
  if ((param_1[6] != 0) && (0 < (int)param_1[8])) {
    do {
      iVar1 = *(int *)((longlong)param_1 + 0x3c);
      if ((*(uint *)(param_1[3] + ((ulonglong)(longlong)iVar1 >> 5) * 4) & 1 << ((byte)iVar1 & 0x1f)
          ) == 0) {
        return param_1;
      }
      *(int *)((longlong)param_1 + 0x3c) = iVar1 + 1;
    } while (iVar1 + 1 < (int)param_1[8]);
  }
  return param_1;
}



############ FUN_ 1805b37f0 size=1452 ############

void FUN_1805b37f0(__uint64 *param_1,ulonglong param_2,undefined8 *param_3,
                  basic_streambuf<char,std::char_traits<char>_> *param_4,undefined8 param_5)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  char *pcVar5;
  bool bVar6;
  longlong lVar7;
  char cVar8;
  char cVar9;
  undefined8 *puVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  byte local_res18;
  basic_streambuf<char,std::char_traits<char>_> *local_168;
  undefined8 local_160;
  undefined *local_158 [2];
  basic_ios<char,std::char_traits<char>_> local_148 [8];
  uint auStack_140 [4];
  ulonglong auStack_130 [6];
  undefined1 auStack_100 [24];
  ulonglong local_e8;
  basic_streambuf<char,std::char_traits<char>_> *local_d8;
  undefined8 local_d0;
  undefined *local_c8 [2];
  basic_ios<char,std::char_traits<char>_> local_b8 [24];
  undefined8 auStack_a0 [6];
  undefined1 auStack_70 [24];
  undefined8 local_58;
  
  local_58 = 0xfffffffffffffffe;
  local_158[0] = &DAT_181bb0108;
  std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>(local_148);
  local_168 = param_4;
  FUN_1805a0a80(&local_160,param_4,param_2 & 0xff);
  FUN_1805ae620(&local_168,param_4);
  std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_158,local_168,false);
  *(undefined ***)((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)) =
       boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable
  ;
  *(int *)((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4) + -4) =
       *(int *)(local_158[0] + 4) + -0x10;
  FUN_1805a6ba0(param_2 + 0x48,(longlong)local_158 + (longlong)*(int *)(local_158[0] + 4),param_5);
  uVar4 = *(uint *)((longlong)auStack_140 + (longlong)*(int *)(local_158[0] + 4));
  uVar11 = *(ulonglong *)((longlong)auStack_130 + (longlong)*(int *)(local_158[0] + 4));
  if (((uVar4 >> 8 & 1) == 0) || (uVar11 == 0)) {
    bVar6 = false;
  }
  else {
    bVar6 = true;
  }
  param_3[2] = 0;
  puVar10 = param_3;
  if (0xf < (ulonglong)param_3[3]) {
    puVar10 = (undefined8 *)*param_3;
  }
  *(undefined1 *)puVar10 = 0;
  local_e8 = uVar11;
  if (bVar6) {
    std::basic_ostream<char,std::char_traits<char>_>::operator<<
              ((basic_ostream<char,std::char_traits<char>_> *)local_158,*param_1);
    pcVar5 = (char *)**(undefined8 **)(param_4 + 0x20);
    uVar13 = (longlong)**(undefined8 **)(param_4 + 0x40) - (longlong)pcVar5;
    bVar6 = false;
    local_res18 = 0;
    if ((*(byte *)(param_2 + 0x88) & 2) != 0) {
      if ((char *)**(undefined8 **)(param_4 + 0x40) == pcVar5) {
LAB_1805b3ac9:
        bVar6 = true;
        local_res18 = 1;
      }
      else {
        cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                          ((basic_ios<char,std::char_traits<char>_> *)
                           ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'+');
        if (*pcVar5 != cVar9) {
          cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                            ((basic_ios<char,std::char_traits<char>_> *)
                             ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'-');
          if (*pcVar5 != cVar9) goto LAB_1805b3ac9;
        }
      }
    }
    if (((uVar13 != uVar11) || (*(longlong *)(param_2 + 0x80) < (longlong)uVar11)) || (bVar6)) {
      FUN_1805a6cb0(param_3,pcVar5,uVar13);
      FUN_1805a73e0(param_4);
      local_c8[0] = &DAT_181bb0108;
      std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>
                (local_b8);
      local_d8 = param_4;
      FUN_1805a0a80(&local_d0,param_4,param_2 & 0xff);
      FUN_1805ae620(&local_d8,param_4);
      std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_c8,local_d8,false);
      *(undefined ***)((longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4)) =
           boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::
           vftable;
      *(int *)((longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4) + -4) =
           *(int *)(local_c8[0] + 4) + -0x10;
      FUN_1805a6ba0(param_2 + 0x48,(longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4),param_5)
      ;
      *(undefined8 *)((longlong)auStack_a0 + (longlong)*(int *)(local_c8[0] + 4)) = 0;
      if (bVar6) {
        FUN_1805a0c30(local_c8,0x20);
      }
      std::basic_ostream<char,std::char_traits<char>_>::operator<<
                ((basic_ostream<char,std::char_traits<char>_> *)local_c8,*param_1);
      if ((**(longlong **)(param_4 + 0x40) == **(longlong **)(param_4 + 0x20)) &&
         ((*(byte *)(param_2 + 0x88) & 2) != 0)) {
        local_res18 = 1;
        FUN_1805a0c30(local_c8,0x20);
      }
      lVar7 = **(longlong **)(param_4 + 0x20);
      uVar12 = *(ulonglong *)(param_2 + 0x80);
      if ((ulonglong)(**(longlong **)(param_4 + 0x40) - lVar7) < *(ulonglong *)(param_2 + 0x80)) {
        uVar12 = **(longlong **)(param_4 + 0x40) - lVar7;
      }
      if (uVar12 < uVar11) {
        uVar13 = uVar13 + (local_res18 != 0);
        if (uVar12 < uVar13) {
          uVar13 = uVar12;
        }
        uVar11 = (ulonglong)(uint)local_res18;
        if (local_res18 < uVar13) {
          do {
            puVar10 = param_3;
            if (0xf < (ulonglong)param_3[3]) {
              puVar10 = (undefined8 *)*param_3;
            }
          } while ((*(char *)(uVar11 + lVar7) ==
                    *(char *)((longlong)puVar10 + (uVar11 - (local_res18 != 0)))) &&
                  (uVar11 = uVar11 + 1, uVar11 < uVar13));
        }
        if (uVar12 <= uVar11) {
          uVar11 = (ulonglong)(uint)local_res18;
        }
        FUN_1805a6cb0(param_3,lVar7,uVar11);
        FUN_1805a6b10(param_3,local_e8 - uVar12,auStack_70[*(int *)(local_c8[0] + 4)]);
        FUN_1805a6a80(param_3,uVar11 + lVar7,uVar12 - uVar11);
      }
      else {
        FUN_1805a6cb0(param_3,lVar7,uVar12);
      }
      std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_b8);
      if (local_d0 != (longlong *)0x0) {
        LOCK();
        plVar1 = local_d0 + 1;
        lVar7 = *plVar1;
        *(int *)plVar1 = (int)*plVar1 + -1;
        UNLOCK();
        if ((int)lVar7 == 1) {
          (**(code **)(*local_d0 + 8))(local_d0);
          LOCK();
          piVar2 = (int *)((longlong)local_d0 + 0xc);
          iVar3 = *piVar2;
          *piVar2 = *piVar2 + -1;
          UNLOCK();
          if (iVar3 == 1) {
            (**(code **)(*local_d0 + 0x10))(local_d0);
          }
        }
      }
      std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>
                (local_b8);
    }
    else {
      FUN_1805a6cb0(param_3,pcVar5,uVar13);
    }
    goto LAB_1805b3d32;
  }
  if (0 < (longlong)uVar11) {
    *(undefined8 *)((longlong)auStack_130 + (longlong)*(int *)(local_158[0] + 4)) = 0;
  }
  std::basic_ostream<char,std::char_traits<char>_>::operator<<
            ((basic_ostream<char,std::char_traits<char>_> *)local_158,*param_1);
  pcVar5 = (char *)**(undefined8 **)(param_4 + 0x20);
  cVar9 = '\0';
  if ((*(byte *)(param_2 + 0x88) & 2) != 0) {
    if ((char *)**(undefined8 **)(param_4 + 0x40) == pcVar5) {
LAB_1805b39a5:
      cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                        ((basic_ios<char,std::char_traits<char>_> *)
                         ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),' ');
    }
    else {
      cVar8 = std::basic_ios<char,std::char_traits<char>_>::widen
                        ((basic_ios<char,std::char_traits<char>_> *)
                         ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'+');
      if (*pcVar5 != cVar8) {
        cVar8 = std::basic_ios<char,std::char_traits<char>_>::widen
                          ((basic_ios<char,std::char_traits<char>_> *)
                           ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'-');
        if (*pcVar5 != cVar8) goto LAB_1805b39a5;
      }
    }
  }
  uVar13 = *(longlong *)(param_2 + 0x80) - (ulonglong)(cVar9 != '\0');
  if ((ulonglong)(**(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20)) < uVar13) {
    uVar13 = **(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20);
  }
  FUN_1805a2b40(param_3,pcVar5,uVar13,uVar11,auStack_100[*(int *)(local_158[0] + 4)],uVar4,cVar9,
                (byte)(*(uint *)(param_2 + 0x88) >> 2) & 1);
LAB_1805b3d32:
  FUN_1805a73e0(param_4);
  std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_148);
  if (local_160 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_160 + 1;
    lVar7 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar7 == 1) {
      (**(code **)(*local_160 + 8))(local_160);
      LOCK();
      piVar2 = (int *)((longlong)local_160 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_160 + 0x10))(local_160);
      }
    }
  }
  std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>(local_148);
  return;
}



############ FUN_ 1805a4e20 size=32 ############

undefined8 * FUN_1805a4e20(undefined8 *param_1,undefined8 param_2,undefined8 param_3)

{
  param_1[1] = 0;
  param_1[2] = 0;
  *param_1 = boost::io::too_many_args::vftable;
  param_1[3] = param_2;
  param_1[4] = param_3;
  return param_1;
}



############ FUN_ 1805a3c70 size=63 ############

void FUN_1805a3c70(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_c0 [104];
  undefined1 local_58 [88];
  
  uVar1 = FUN_1805a2140(local_58,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805a1ed0(local_c0,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_c0,(ThrowInfo *)&DAT_1825fd6e0);
}



############ FUN_ 1805a0ae0 size=97 ############

undefined8 * FUN_1805a0ae0(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::
              sp_counted_impl_p<boost::basic_format<char,std::char_traits<char>,std::allocator<char>_>_>
              ::vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 1805a35a0 size=1451 ############

void FUN_1805a35a0(undefined8 *param_1,ulonglong param_2,undefined8 *param_3,
                  basic_streambuf<char,std::char_traits<char>_> *param_4,undefined8 param_5)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  char *pcVar5;
  bool bVar6;
  longlong lVar7;
  char cVar8;
  char cVar9;
  undefined8 *puVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  byte local_res18;
  basic_streambuf<char,std::char_traits<char>_> *local_168;
  undefined8 local_160;
  undefined *local_158 [2];
  basic_ios<char,std::char_traits<char>_> local_148 [8];
  uint auStack_140 [4];
  ulonglong auStack_130 [6];
  undefined1 auStack_100 [24];
  ulonglong local_e8;
  basic_streambuf<char,std::char_traits<char>_> *local_d8;
  undefined8 local_d0;
  undefined *local_c8 [2];
  basic_ios<char,std::char_traits<char>_> local_b8 [24];
  undefined8 auStack_a0 [6];
  undefined1 auStack_70 [24];
  undefined8 local_58;
  
  local_58 = 0xfffffffffffffffe;
  local_158[0] = &DAT_181bb0108;
  std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>(local_148);
  local_168 = param_4;
  FUN_1805a0a80(&local_160,param_4,param_2 & 0xff);
  FUN_1805ae620(&local_168,param_4);
  std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_158,local_168,false);
  *(undefined ***)((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)) =
       boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable
  ;
  *(int *)((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4) + -4) =
       *(int *)(local_158[0] + 4) + -0x10;
  FUN_1805a6ba0(param_2 + 0x48,(longlong)local_158 + (longlong)*(int *)(local_158[0] + 4),param_5);
  uVar4 = *(uint *)((longlong)auStack_140 + (longlong)*(int *)(local_158[0] + 4));
  uVar11 = *(ulonglong *)((longlong)auStack_130 + (longlong)*(int *)(local_158[0] + 4));
  if (((uVar4 >> 8 & 1) == 0) || (uVar11 == 0)) {
    bVar6 = false;
  }
  else {
    bVar6 = true;
  }
  param_3[2] = 0;
  puVar10 = param_3;
  if (0xf < (ulonglong)param_3[3]) {
    puVar10 = (undefined8 *)*param_3;
  }
  *(undefined1 *)puVar10 = 0;
  local_e8 = uVar11;
  if (bVar6) {
    FUN_1805a0df0(local_158,*param_1);
    pcVar5 = (char *)**(undefined8 **)(param_4 + 0x20);
    uVar13 = (longlong)**(undefined8 **)(param_4 + 0x40) - (longlong)pcVar5;
    bVar6 = false;
    local_res18 = 0;
    if ((*(byte *)(param_2 + 0x88) & 2) != 0) {
      if ((char *)**(undefined8 **)(param_4 + 0x40) == pcVar5) {
LAB_1805a3877:
        bVar6 = true;
        local_res18 = 1;
      }
      else {
        cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                          ((basic_ios<char,std::char_traits<char>_> *)
                           ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'+');
        if (*pcVar5 != cVar9) {
          cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                            ((basic_ios<char,std::char_traits<char>_> *)
                             ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'-');
          if (*pcVar5 != cVar9) goto LAB_1805a3877;
        }
      }
    }
    if (((uVar13 != uVar11) || (*(longlong *)(param_2 + 0x80) < (longlong)uVar11)) || (bVar6)) {
      FUN_1805a6cb0(param_3,pcVar5,uVar13);
      FUN_1805a73e0(param_4);
      local_c8[0] = &DAT_181bb0108;
      std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>
                (local_b8);
      local_d8 = param_4;
      FUN_1805a0a80(&local_d0,param_4,param_2 & 0xff);
      FUN_1805ae620(&local_d8,param_4);
      std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_c8,local_d8,false);
      *(undefined ***)((longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4)) =
           boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::
           vftable;
      *(int *)((longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4) + -4) =
           *(int *)(local_c8[0] + 4) + -0x10;
      FUN_1805a6ba0(param_2 + 0x48,(longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4),param_5)
      ;
      *(undefined8 *)((longlong)auStack_a0 + (longlong)*(int *)(local_c8[0] + 4)) = 0;
      if (bVar6) {
        FUN_1805a0c30(local_c8,0x20);
      }
      FUN_1805a0df0(local_c8,*param_1);
      if ((**(longlong **)(param_4 + 0x40) == **(longlong **)(param_4 + 0x20)) &&
         ((*(byte *)(param_2 + 0x88) & 2) != 0)) {
        local_res18 = 1;
        FUN_1805a0c30(local_c8,0x20);
      }
      lVar7 = **(longlong **)(param_4 + 0x20);
      uVar12 = *(ulonglong *)(param_2 + 0x80);
      if ((ulonglong)(**(longlong **)(param_4 + 0x40) - lVar7) < *(ulonglong *)(param_2 + 0x80)) {
        uVar12 = **(longlong **)(param_4 + 0x40) - lVar7;
      }
      if (uVar12 < uVar11) {
        uVar13 = uVar13 + (local_res18 != 0);
        if (uVar12 < uVar13) {
          uVar13 = uVar12;
        }
        uVar11 = (ulonglong)(uint)local_res18;
        if (local_res18 < uVar13) {
          do {
            puVar10 = param_3;
            if (0xf < (ulonglong)param_3[3]) {
              puVar10 = (undefined8 *)*param_3;
            }
          } while ((*(char *)(uVar11 + lVar7) ==
                    *(char *)((longlong)puVar10 + (uVar11 - (local_res18 != 0)))) &&
                  (uVar11 = uVar11 + 1, uVar11 < uVar13));
        }
        if (uVar12 <= uVar11) {
          uVar11 = (ulonglong)(uint)local_res18;
        }
        FUN_1805a6cb0(param_3,lVar7,uVar11);
        FUN_1805a6b10(param_3,local_e8 - uVar12,auStack_70[*(int *)(local_c8[0] + 4)]);
        FUN_1805a6a80(param_3,uVar11 + lVar7,uVar12 - uVar11);
      }
      else {
        FUN_1805a6cb0(param_3,lVar7,uVar12);
      }
      std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_b8);
      if (local_d0 != (longlong *)0x0) {
        LOCK();
        plVar1 = local_d0 + 1;
        lVar7 = *plVar1;
        *(int *)plVar1 = (int)*plVar1 + -1;
        UNLOCK();
        if ((int)lVar7 == 1) {
          (**(code **)(*local_d0 + 8))(local_d0);
          LOCK();
          piVar2 = (int *)((longlong)local_d0 + 0xc);
          iVar3 = *piVar2;
          *piVar2 = *piVar2 + -1;
          UNLOCK();
          if (iVar3 == 1) {
            (**(code **)(*local_d0 + 0x10))(local_d0);
          }
        }
      }
      std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>
                (local_b8);
    }
    else {
      FUN_1805a6cb0(param_3,pcVar5,uVar13);
    }
    goto LAB_1805a3ae1;
  }
  if (0 < (longlong)uVar11) {
    *(undefined8 *)((longlong)auStack_130 + (longlong)*(int *)(local_158[0] + 4)) = 0;
  }
  FUN_1805a0df0(local_158,*param_1);
  pcVar5 = (char *)**(undefined8 **)(param_4 + 0x20);
  cVar9 = '\0';
  if ((*(byte *)(param_2 + 0x88) & 2) != 0) {
    if ((char *)**(undefined8 **)(param_4 + 0x40) == pcVar5) {
LAB_1805a3754:
      cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                        ((basic_ios<char,std::char_traits<char>_> *)
                         ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),' ');
    }
    else {
      cVar8 = std::basic_ios<char,std::char_traits<char>_>::widen
                        ((basic_ios<char,std::char_traits<char>_> *)
                         ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'+');
      if (*pcVar5 != cVar8) {
        cVar8 = std::basic_ios<char,std::char_traits<char>_>::widen
                          ((basic_ios<char,std::char_traits<char>_> *)
                           ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'-');
        if (*pcVar5 != cVar8) goto LAB_1805a3754;
      }
    }
  }
  uVar13 = *(longlong *)(param_2 + 0x80) - (ulonglong)(cVar9 != '\0');
  if ((ulonglong)(**(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20)) < uVar13) {
    uVar13 = **(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20);
  }
  FUN_1805a2b40(param_3,pcVar5,uVar13,uVar11,auStack_100[*(int *)(local_158[0] + 4)],uVar4,cVar9,
                (byte)(*(uint *)(param_2 + 0x88) >> 2) & 1);
LAB_1805a3ae1:
  FUN_1805a73e0(param_4);
  std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_148);
  if (local_160 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_160 + 1;
    lVar7 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar7 == 1) {
      (**(code **)(*local_160 + 8))(local_160);
      LOCK();
      piVar2 = (int *)((longlong)local_160 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_160 + 0x10))(local_160);
      }
    }
  }
  std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>(local_148);
  return;
}



############ FUN_ 1805bbe20 size=131 ############

void FUN_1805bbe20(longlong *param_1,longlong param_2,longlong param_3,longlong param_4)

{
  void *pvVar1;
  void *_Memory;
  
  pvVar1 = (void *)*param_1;
  if (pvVar1 == (void *)0x0) {
    *param_1 = param_2;
    param_1[1] = param_2 + param_3;
    param_1[2] = param_2 + param_4;
    return;
  }
  _Memory = pvVar1;
  if ((0xfff < (ulonglong)(param_1[2] - (longlong)pvVar1)) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805b2690 size=1451 ############

void FUN_1805b2690(int *param_1,ulonglong param_2,undefined8 *param_3,
                  basic_streambuf<char,std::char_traits<char>_> *param_4,undefined8 param_5)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  char *pcVar5;
  bool bVar6;
  longlong lVar7;
  char cVar8;
  char cVar9;
  undefined8 *puVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  byte local_res18;
  basic_streambuf<char,std::char_traits<char>_> *local_168;
  undefined8 local_160;
  undefined *local_158 [2];
  basic_ios<char,std::char_traits<char>_> local_148 [8];
  uint auStack_140 [4];
  ulonglong auStack_130 [6];
  undefined1 auStack_100 [24];
  ulonglong local_e8;
  basic_streambuf<char,std::char_traits<char>_> *local_d8;
  undefined8 local_d0;
  undefined *local_c8 [2];
  basic_ios<char,std::char_traits<char>_> local_b8 [24];
  undefined8 auStack_a0 [6];
  undefined1 auStack_70 [24];
  undefined8 local_58;
  
  local_58 = 0xfffffffffffffffe;
  local_158[0] = &DAT_181bb0108;
  std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>(local_148);
  local_168 = param_4;
  FUN_1805a0a80(&local_160,param_4,param_2 & 0xff);
  FUN_1805ae620(&local_168,param_4);
  std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_158,local_168,false);
  *(undefined ***)((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)) =
       boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable
  ;
  *(int *)((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4) + -4) =
       *(int *)(local_158[0] + 4) + -0x10;
  FUN_1805a6ba0(param_2 + 0x48,(longlong)local_158 + (longlong)*(int *)(local_158[0] + 4),param_5);
  uVar4 = *(uint *)((longlong)auStack_140 + (longlong)*(int *)(local_158[0] + 4));
  uVar11 = *(ulonglong *)((longlong)auStack_130 + (longlong)*(int *)(local_158[0] + 4));
  if (((uVar4 >> 8 & 1) == 0) || (uVar11 == 0)) {
    bVar6 = false;
  }
  else {
    bVar6 = true;
  }
  param_3[2] = 0;
  puVar10 = param_3;
  if (0xf < (ulonglong)param_3[3]) {
    puVar10 = (undefined8 *)*param_3;
  }
  *(undefined1 *)puVar10 = 0;
  local_e8 = uVar11;
  if (bVar6) {
    std::basic_ostream<char,std::char_traits<char>_>::operator<<
              ((basic_ostream<char,std::char_traits<char>_> *)local_158,*param_1);
    pcVar5 = (char *)**(undefined8 **)(param_4 + 0x20);
    uVar13 = (longlong)**(undefined8 **)(param_4 + 0x40) - (longlong)pcVar5;
    bVar6 = false;
    local_res18 = 0;
    if ((*(byte *)(param_2 + 0x88) & 2) != 0) {
      if ((char *)**(undefined8 **)(param_4 + 0x40) == pcVar5) {
LAB_1805b2967:
        bVar6 = true;
        local_res18 = 1;
      }
      else {
        cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                          ((basic_ios<char,std::char_traits<char>_> *)
                           ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'+');
        if (*pcVar5 != cVar9) {
          cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                            ((basic_ios<char,std::char_traits<char>_> *)
                             ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'-');
          if (*pcVar5 != cVar9) goto LAB_1805b2967;
        }
      }
    }
    if (((uVar13 != uVar11) || (*(longlong *)(param_2 + 0x80) < (longlong)uVar11)) || (bVar6)) {
      FUN_1805a6cb0(param_3,pcVar5,uVar13);
      FUN_1805a73e0(param_4);
      local_c8[0] = &DAT_181bb0108;
      std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>
                (local_b8);
      local_d8 = param_4;
      FUN_1805a0a80(&local_d0,param_4,param_2 & 0xff);
      FUN_1805ae620(&local_d8,param_4);
      std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_c8,local_d8,false);
      *(undefined ***)((longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4)) =
           boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::
           vftable;
      *(int *)((longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4) + -4) =
           *(int *)(local_c8[0] + 4) + -0x10;
      FUN_1805a6ba0(param_2 + 0x48,(longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4),param_5)
      ;
      *(undefined8 *)((longlong)auStack_a0 + (longlong)*(int *)(local_c8[0] + 4)) = 0;
      if (bVar6) {
        FUN_1805a0c30(local_c8,0x20);
      }
      std::basic_ostream<char,std::char_traits<char>_>::operator<<
                ((basic_ostream<char,std::char_traits<char>_> *)local_c8,*param_1);
      if ((**(longlong **)(param_4 + 0x40) == **(longlong **)(param_4 + 0x20)) &&
         ((*(byte *)(param_2 + 0x88) & 2) != 0)) {
        local_res18 = 1;
        FUN_1805a0c30(local_c8,0x20);
      }
      lVar7 = **(longlong **)(param_4 + 0x20);
      uVar12 = *(ulonglong *)(param_2 + 0x80);
      if ((ulonglong)(**(longlong **)(param_4 + 0x40) - lVar7) < *(ulonglong *)(param_2 + 0x80)) {
        uVar12 = **(longlong **)(param_4 + 0x40) - lVar7;
      }
      if (uVar12 < uVar11) {
        uVar13 = uVar13 + (local_res18 != 0);
        if (uVar12 < uVar13) {
          uVar13 = uVar12;
        }
        uVar11 = (ulonglong)(uint)local_res18;
        if (local_res18 < uVar13) {
          do {
            puVar10 = param_3;
            if (0xf < (ulonglong)param_3[3]) {
              puVar10 = (undefined8 *)*param_3;
            }
          } while ((*(char *)(uVar11 + lVar7) ==
                    *(char *)((longlong)puVar10 + (uVar11 - (local_res18 != 0)))) &&
                  (uVar11 = uVar11 + 1, uVar11 < uVar13));
        }
        if (uVar12 <= uVar11) {
          uVar11 = (ulonglong)(uint)local_res18;
        }
        FUN_1805a6cb0(param_3,lVar7,uVar11);
        FUN_1805a6b10(param_3,local_e8 - uVar12,auStack_70[*(int *)(local_c8[0] + 4)]);
        FUN_1805a6a80(param_3,uVar11 + lVar7,uVar12 - uVar11);
      }
      else {
        FUN_1805a6cb0(param_3,lVar7,uVar12);
      }
      std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_b8);
      if (local_d0 != (longlong *)0x0) {
        LOCK();
        plVar1 = local_d0 + 1;
        lVar7 = *plVar1;
        *(int *)plVar1 = (int)*plVar1 + -1;
        UNLOCK();
        if ((int)lVar7 == 1) {
          (**(code **)(*local_d0 + 8))(local_d0);
          LOCK();
          piVar2 = (int *)((longlong)local_d0 + 0xc);
          iVar3 = *piVar2;
          *piVar2 = *piVar2 + -1;
          UNLOCK();
          if (iVar3 == 1) {
            (**(code **)(*local_d0 + 0x10))(local_d0);
          }
        }
      }
      std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>
                (local_b8);
    }
    else {
      FUN_1805a6cb0(param_3,pcVar5,uVar13);
    }
    goto LAB_1805b2bd1;
  }
  if (0 < (longlong)uVar11) {
    *(undefined8 *)((longlong)auStack_130 + (longlong)*(int *)(local_158[0] + 4)) = 0;
  }
  std::basic_ostream<char,std::char_traits<char>_>::operator<<
            ((basic_ostream<char,std::char_traits<char>_> *)local_158,*param_1);
  pcVar5 = (char *)**(undefined8 **)(param_4 + 0x20);
  cVar9 = '\0';
  if ((*(byte *)(param_2 + 0x88) & 2) != 0) {
    if ((char *)**(undefined8 **)(param_4 + 0x40) == pcVar5) {
LAB_1805b2844:
      cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                        ((basic_ios<char,std::char_traits<char>_> *)
                         ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),' ');
    }
    else {
      cVar8 = std::basic_ios<char,std::char_traits<char>_>::widen
                        ((basic_ios<char,std::char_traits<char>_> *)
                         ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'+');
      if (*pcVar5 != cVar8) {
        cVar8 = std::basic_ios<char,std::char_traits<char>_>::widen
                          ((basic_ios<char,std::char_traits<char>_> *)
                           ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'-');
        if (*pcVar5 != cVar8) goto LAB_1805b2844;
      }
    }
  }
  uVar13 = *(longlong *)(param_2 + 0x80) - (ulonglong)(cVar9 != '\0');
  if ((ulonglong)(**(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20)) < uVar13) {
    uVar13 = **(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20);
  }
  FUN_1805a2b40(param_3,pcVar5,uVar13,uVar11,auStack_100[*(int *)(local_158[0] + 4)],uVar4,cVar9,
                (byte)(*(uint *)(param_2 + 0x88) >> 2) & 1);
LAB_1805b2bd1:
  FUN_1805a73e0(param_4);
  std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_148);
  if (local_160 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_160 + 1;
    lVar7 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar7 == 1) {
      (**(code **)(*local_160 + 8))(local_160);
      LOCK();
      piVar2 = (int *)((longlong)local_160 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_160 + 0x10))(local_160);
      }
    }
  }
  std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>(local_148);
  return;
}



############ FUN_ 1805b49f0 size=268 ############

ulonglong * FUN_1805b49f0(ulonglong *param_1,longlong *param_2)

{
  void *_Dst;
  longlong lVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  size_t _Size;
  
  uVar3 = 0;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  uVar2 = param_2[1] - *param_2 >> 2;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  if (uVar2 != 0) {
    if (0x3fffffffffffffff < uVar2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar2 = uVar2 * 4;
    if (uVar2 < 0x1000) {
      if (uVar2 != 0) {
        uVar3 = FUN_1811316e0(uVar2);
      }
    }
    else {
      uVar3 = uVar2 + 0x27;
      if (uVar3 <= uVar2) {
        uVar3 = 0xffffffffffffffff;
      }
      lVar1 = FUN_1811316e0(uVar3);
      if (lVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
      uVar3 = lVar1 + 0x27U & 0xffffffffffffffe0;
      *(longlong *)(uVar3 - 8) = lVar1;
    }
    *param_1 = uVar3;
    param_1[1] = uVar3;
    _Dst = (void *)*param_1;
    param_1[2] = (ulonglong)(uVar2 + (longlong)_Dst);
    _Size = param_2[1] - *param_2;
    memmove(_Dst,(void *)*param_2,_Size);
    param_1[1] = _Size + (longlong)_Dst;
  }
  return param_1;
}



############ FUN_ 1805af600 size=458 ############

void FUN_1805af600(longlong *param_1,longlong param_2,longlong param_3)

{
  undefined8 *puVar1;
  void *pvVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  longlong lVar5;
  void *_Memory;
  undefined8 *puVar6;
  undefined8 *puVar7;
  ulonglong uVar8;
  
  puVar1 = (undefined8 *)param_1[1];
  puVar6 = (undefined8 *)*param_1;
  uVar3 = (param_3 - param_2) / 0x68;
  uVar8 = ((longlong)puVar1 - (longlong)puVar6) / 0x68;
  uVar4 = (param_1[2] - (longlong)puVar6) / 0x68;
  if (uVar4 < uVar3) {
    if (0x276276276276276 < uVar3) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar8 = uVar3;
    if ((uVar4 <= 0x276276276276276 - (uVar4 >> 1)) && (uVar8 = (uVar4 >> 1) + uVar4, uVar8 < uVar3)
       ) {
      uVar8 = uVar3;
    }
    if (puVar6 != (undefined8 *)0x0) {
      for (; puVar6 != puVar1; puVar6 = puVar6 + 0xd) {
        (**(code **)*puVar6)(puVar6,0);
      }
      pvVar2 = (void *)*param_1;
      _Memory = pvVar2;
      if ((0xfff < uVar4 * 0x68) &&
         (_Memory = *(void **)((longlong)pvVar2 + -8),
         0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
    FUN_1805bbce0(param_1,uVar8);
    lVar5 = FUN_1805b14f0(param_1,param_2,param_3,*param_1);
    param_1[1] = lVar5;
  }
  else if (uVar8 < uVar3) {
    lVar5 = uVar8 * 0x68 + param_2;
    FUN_1805afe20(param_2,lVar5,puVar6);
    lVar5 = FUN_1805b14f0(param_1,lVar5,param_3,param_1[1]);
    param_1[1] = lVar5;
  }
  else {
    FUN_1805afe20(param_2,param_3,puVar6);
    puVar1 = (undefined8 *)param_1[1];
    for (puVar7 = puVar6 + uVar3 * 0xd; puVar7 != puVar1; puVar7 = puVar7 + 0xd) {
      (**(code **)*puVar7)(puVar7,0);
    }
    param_1[1] = (longlong)(puVar6 + uVar3 * 0xd);
  }
  return;
}



############ FUN_ 1805ba780 size=432 ############

longlong FUN_1805ba780(longlong param_1,longlong param_2)

{
  longlong *plVar1;
  
  plVar1 = (longlong *)(param_2 + 8);
  if ((longlong *)(param_1 + 8) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x20)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 8,plVar1,*(undefined8 *)(param_2 + 0x18));
  }
  plVar1 = (longlong *)(param_2 + 0x28);
  if ((longlong *)(param_1 + 0x28) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x40)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x28,plVar1,*(undefined8 *)(param_2 + 0x38));
  }
  *(undefined4 *)(param_1 + 0x48) = *(undefined4 *)(param_2 + 0x48);
  *(undefined8 *)(param_1 + 0x50) = *(undefined8 *)(param_2 + 0x50);
  FUN_1805b9910(param_1 + 0x58,param_2 + 0x58);
  plVar1 = (longlong *)(param_2 + 0x70);
  if ((longlong *)(param_1 + 0x70) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x88)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x70,plVar1,*(undefined8 *)(param_2 + 0x80));
  }
  plVar1 = (longlong *)(param_2 + 0x90);
  if ((longlong *)(param_1 + 0x90) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0xa8)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x90,plVar1,*(undefined8 *)(param_2 + 0xa0));
  }
  plVar1 = (longlong *)(param_2 + 0xb0);
  if ((longlong *)(param_1 + 0xb0) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 200)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0xb0,plVar1,*(undefined8 *)(param_2 + 0xc0));
  }
  plVar1 = (longlong *)(param_2 + 0xd8);
  *(undefined4 *)(param_1 + 0xd0) = *(undefined4 *)(param_2 + 0xd0);
  if ((longlong *)(param_1 + 0xd8) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0xf0)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0xd8,plVar1,*(undefined8 *)(param_2 + 0xe8));
  }
  plVar1 = (longlong *)(param_2 + 0xf8);
  if ((longlong *)(param_1 + 0xf8) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x110)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0xf8,plVar1,*(undefined8 *)(param_2 + 0x108));
  }
  plVar1 = (longlong *)(param_2 + 0x118);
  if ((longlong *)(param_1 + 0x118) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x130)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x118,plVar1,*(undefined8 *)(param_2 + 0x128));
  }
  *(undefined4 *)(param_1 + 0x138) = *(undefined4 *)(param_2 + 0x138);
  *(undefined8 *)(param_1 + 0x13c) = *(undefined8 *)(param_2 + 0x13c);
  *(undefined4 *)(param_1 + 0x144) = *(undefined4 *)(param_2 + 0x144);
  *(undefined1 *)(param_1 + 0x148) = *(undefined1 *)(param_2 + 0x148);
  return param_1;
}



############ FUN_ 1805af240 size=489 ############

void FUN_1805af240(longlong *param_1,longlong param_2,longlong param_3)

{
  undefined8 *puVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  longlong lVar4;
  ulonglong uVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  
  puVar1 = (undefined8 *)param_1[1];
  puVar7 = (undefined8 *)*param_1;
  uVar2 = (param_3 - param_2) / 0x438;
  uVar5 = ((longlong)puVar1 - (longlong)puVar7) / 0x438;
  uVar3 = (param_1[2] - (longlong)puVar7) / 0x438;
  if (uVar3 < uVar2) {
    if (0x3cae759203cae7 < uVar2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar5 = uVar2;
    if ((uVar3 <= 0x3cae759203cae7 - (uVar3 >> 1)) && (uVar5 = (uVar3 >> 1) + uVar3, uVar5 < uVar2))
    {
      uVar5 = uVar2;
    }
    if (puVar7 != (undefined8 *)0x0) {
      for (; puVar7 != puVar1; puVar7 = puVar7 + 0x87) {
        (**(code **)*puVar7)(puVar7,0);
      }
      FUN_180576420(param_1,*param_1,uVar3);
    }
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    if (uVar5 != 0) {
      if (0x3cae759203cae7 < uVar5) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69c0();
      }
      lVar4 = FUN_1805bca10(param_1,uVar5);
      *param_1 = lVar4;
      param_1[1] = lVar4;
      param_1[2] = uVar5 * 0x438 + *param_1;
    }
    lVar4 = FUN_1805b16b0(param_2,param_3,*param_1,param_1);
    param_1[1] = lVar4;
  }
  else if (uVar5 < uVar2) {
    lVar4 = uVar5 * 0x438 + param_2;
    FUN_1805af8b0(param_2,lVar4,puVar7,0);
    lVar4 = FUN_1805b16b0(lVar4,param_3,param_1[1],param_1);
    param_1[1] = lVar4;
  }
  else {
    FUN_1805af8b0(param_2,param_3,puVar7,0);
    puVar1 = (undefined8 *)param_1[1];
    for (puVar6 = puVar7 + uVar2 * 0x87; puVar6 != puVar1; puVar6 = puVar6 + 0x87) {
      (**(code **)*puVar6)(puVar6,0);
    }
    param_1[1] = (longlong)(puVar7 + uVar2 * 0x87);
  }
  return;
}



############ FUN_ 1805af430 size=454 ############

void FUN_1805af430(longlong *param_1,longlong param_2,longlong param_3)

{
  undefined8 *puVar1;
  longlong lVar2;
  longlong lVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  ulonglong uVar6;
  ulonglong uVar7;
  ulonglong uVar8;
  undefined1 local_res8;
  
  puVar1 = (undefined8 *)param_1[1];
  puVar4 = (undefined8 *)*param_1;
  lVar3 = (longlong)puVar1 - (longlong)puVar4;
  lVar2 = (param_3 - param_2) + SUB168(SEXT816(-0x79b47582192e29f7) * SEXT816(param_3 - param_2),8);
  uVar6 = (lVar2 >> 8) - (lVar2 >> 0x3f);
  lVar3 = lVar3 + SUB168(SEXT816(-0x79b47582192e29f7) * SEXT816(lVar3),8);
  uVar7 = (lVar3 >> 8) - (lVar3 >> 0x3f);
  lVar2 = (param_1[2] - (longlong)puVar4) +
          SUB168(SEXT816(-0x79b47582192e29f7) * SEXT816(param_1[2] - (longlong)puVar4),8);
  uVar8 = (lVar2 >> 8) - (lVar2 >> 0x3f);
  if (uVar8 < uVar6) {
    if (0x864b8a7de6d1d6 < uVar6) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar7 = uVar6;
    if ((uVar8 <= 0x864b8a7de6d1d6 - (uVar8 >> 1)) && (uVar7 = (uVar8 >> 1) + uVar8, uVar7 < uVar6))
    {
      uVar7 = uVar6;
    }
    if (puVar4 != (undefined8 *)0x0) {
      for (; puVar4 != puVar1; puVar4 = puVar4 + 0x3d) {
        (**(code **)*puVar4)(puVar4,0);
      }
      FUN_180576310(param_1,*param_1,uVar8);
    }
    FUN_1805bbc20(param_1,uVar7);
    lVar2 = FUN_1805b1860(param_2,param_3,*param_1,param_1,0,local_res8);
    param_1[1] = lVar2;
  }
  else if (uVar7 < uVar6) {
    lVar2 = uVar7 * 0x1e8 + param_2;
    FUN_1805afb50(param_2,lVar2,puVar4,0);
    lVar2 = FUN_1805b1860(lVar2,param_3,param_1[1],param_1,0,local_res8);
    param_1[1] = lVar2;
  }
  else {
    FUN_1805afb50(param_2,param_3,puVar4,0);
    puVar1 = (undefined8 *)param_1[1];
    for (puVar5 = puVar4 + uVar6 * 0x3d; puVar5 != puVar1; puVar5 = puVar5 + 0x3d) {
      (**(code **)*puVar5)(puVar5,0);
    }
    param_1[1] = (longlong)(puVar4 + uVar6 * 0x3d);
  }
  return;
}



############ FUN_ 1806b79a0 size=3052 ############

/* WARNING: Removing unreachable block (ram,0x0001806b8581) */
/* WARNING: Removing unreachable block (ram,0x0001806b7a69) */
/* WARNING: Removing unreachable block (ram,0x0001806b7a55) */
/* WARNING: Removing unreachable block (ram,0x0001806b7bd5) */
/* WARNING: Removing unreachable block (ram,0x0001806b8378) */
/* WARNING: Removing unreachable block (ram,0x0001806b7a0b) */

void FUN_1806b79a0(longlong param_1,byte param_2)

{
  longlong lVar1;
  undefined8 uVar2;
  uint uVar3;
  ulonglong uVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  code **ppcVar8;
  longlong *plVar9;
  void *pvVar10;
  undefined1 *puVar11;
  void **ppvVar12;
  ulonglong in_R11;
  undefined8 uVar13;
  int unaff_retaddr;
  undefined4 unaff_retaddr_00;
  uint local_res18 [2];
  int *local_res20;
  undefined1 auStack_f8 [32];
  undefined *local_d8;
  code *local_d0;
  void *local_c8;
  longlong lStack_c0;
  longlong local_b8;
  void *local_b0;
  longlong lStack_a8;
  longlong local_a0;
  undefined **local_98;
  undefined4 local_90;
  undefined1 local_8c;
  undefined **local_88;
  undefined4 local_80;
  undefined1 local_7c;
  void *local_78;
  undefined8 uStack_70;
  longlong local_68;
  void *local_60;
  undefined8 uStack_58;
  longlong local_50;
  undefined8 local_48;
  
  puVar11 = auStack_f8;
  local_48 = 0xfffffffffffffffe;
  uVar13 = 0xfe0;
  uVar3 = (uint)&stack0x00000000 & 0x1dff;
  uVar5 = (uVar3 + 1) * uVar3 + 0x48d5 & 0x80000001;
  ppvVar12 = (void **)0xc85e5258;
  local_res20 = &DAT_181547b88;
  local_d8 = &DAT_181547c88;
  uVar3 = (((uint)(DAT_181547b88 * 0x401) >> 6 ^ DAT_181547b88 * 0x401) + DAT_181547b8c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547b90) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547b94) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547b98) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547b9c) * 0x401;
  do {
    in_R11 = -((in_R11 ^ 0xffffffffffffffff) + 1);
    uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar6 != 0);
  uVar3 = (DAT_181547ba0 + (uVar3 ^ uVar3 >> 6)) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547ba4) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547ba8) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bac) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bb0) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bb4) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bb8) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bbc) * 0x401;
  do {
    FUN_1806b5f86();
    FUN_1806b6c79();
    uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar6 != 0);
  uVar3 = (DAT_181547bc0 + (uVar3 ^ uVar3 >> 6)) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bc4) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bc8) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bcc) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bd0) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bd4) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bd8) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bdc) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547be0) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547be4) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547be8) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bec) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bf0) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bf4) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bf8) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547bfc) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c00) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c04) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c08) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c0c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c10) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c14) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c18) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c1c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c20) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c24) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c28) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c2c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c30) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c34) * 0x401;
  do {
    param_2 = -(~param_2 + 1);
    uVar6 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar6 < 0) {
      uVar6 = (uVar6 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar6 != 0);
  uVar3 = (DAT_181547c38 + (uVar3 ^ uVar3 >> 6)) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c3c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c40) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c44) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c48) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c4c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c50) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c54) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c58) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c5c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c60) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c64) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c68) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c6c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c70) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c74) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c78) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c7c) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c80) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + DAT_181547c84) * 0x401;
  uVar3 = (uVar3 >> 6 ^ uVar3) + 0xdb1443;
  uVar6 = uVar3 * 0x100000 | uVar3 >> 0xc;
  uVar3 = (uVar6 >> 0xc ^ uVar6) >> 3 & 0xfff;
  uVar6 = (uVar3 << 0xc | uVar3) << 3 ^ uVar6;
  local_res20 = (int *)0xeff10f0e4bd5afb8;
  do {
    puVar7 = local_res18;
                    /* WARNING: Call to offcut address within same function */
    func_0x0001806b7bb3(puVar7,local_res18);
    uVar2 = rdtsc();
    *puVar7 = (uint)uVar2 ^ (uint)((ulonglong)uVar2 >> 0x20);
                    /* WARNING: Call to offcut address within same function */
    func_0x0001806b8200();
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  local_res18[0] =
       (local_res18[0] * -0x12aae57b >> 0x18 ^ local_res18[0] * -0x12aae57b) * -0x51ca7333;
  if (local_res18[0] < 0xd79435) {
    local_d0 = (code *)0x0;
    do {
      ppcVar8 = &local_d0;
      func_0x0001806b8d7e(ppcVar8,&local_d0);
      *ppcVar8 = FUN_1813f2240;
      uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar3 < 0) {
        uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar3 != 0);
    uVar4 = (*local_d0)(0,0x3d22);
    if (1 < uVar4) {
      lVar1 = CONCAT44(unaff_retaddr_00,unaff_retaddr);
      plVar9 = (longlong *)register0x00000020;
      while (lVar1 != -0x3333333333333334) {
        *plVar9 = 0;
        plVar9 = plVar9 + 8;
        lVar1 = *plVar9;
      }
    }
  }
  if ((uint)local_res20 != ((uVar6 >> 0x10 | uVar6 << 0x10) ^ 0xb92ce131)) {
    if ((param_2 == 0) && (*(char *)(param_1 + 0x5a) != '\0')) {
      *(undefined1 *)(param_1 + 0x5a) = 0;
      local_98 = pace::eden::thrift::authorize::GetAuthorizationServerInfoInput::vftable;
      local_8c = 0;
      local_90 = 0;
      if (*(longlong *)(param_1 + 0x48) == 0) {
        local_78 = (void *)0x0;
        uStack_70 = 0;
        local_68 = 0;
        local_c8 = (void *)0x0;
        lStack_c0 = 0;
        local_b8 = 0;
        FUN_180673ab0(&local_98,&local_78,1);
        FUN_1806b86d0(param_1,0x17,&local_78,&local_c8);
        FUN_180671970(local_c8,lStack_c0 - (longlong)local_c8,param_1 + 0x60);
        if (local_c8 != (void *)0x0) {
          pvVar10 = local_c8;
          if ((0xfff < (ulonglong)(local_b8 - (longlong)local_c8)) &&
             (pvVar10 = *(void **)((longlong)local_c8 + -8),
             0x1f < (ulonglong)((longlong)local_c8 + (-8 - (longlong)pvVar10)))) {
                    /* WARNING: Subroutine does not return */
            _invalid_parameter_noinfo_noreturn();
          }
                    /* WARNING: Subroutine does not return */
          free(pvVar10);
        }
        if (local_78 != (void *)0x0) {
          pvVar10 = local_78;
          if ((0xfff < (ulonglong)(local_68 - (longlong)local_78)) &&
             (pvVar10 = *(void **)((longlong)local_78 + -8),
             0x1f < (ulonglong)((longlong)local_78 + (-8 - (longlong)pvVar10)))) {
                    /* WARNING: Subroutine does not return */
            _invalid_parameter_noinfo_noreturn();
          }
                    /* WARNING: Subroutine does not return */
          free(pvVar10);
        }
      }
      else {
        plVar9 = (longlong *)
                 ((longlong)*(int *)(**(longlong **)(param_1 + 8) + 8) +
                 (longlong)*(longlong **)(param_1 + 8));
        (**(code **)(*plVar9 + 0xb0))(plVar9,param_1 + 0x60,&local_98,4);
      }
      *(undefined1 *)(param_1 + 0x5a) = 1;
    }
    thunk_FUN_1805a9280();
    return;
  }
  if ((param_2 != 0) || (*(char *)(param_1 + 0x5a) == '\0')) {
    *(undefined1 *)(param_1 + 0x5a) = 0;
    local_88 = pace::eden::thrift::authorize::GetAuthorizationServerInfoInput::vftable;
    local_7c = 0;
    local_80 = 0;
    if (*(longlong *)(param_1 + 0x48) == 0) {
      plVar9 = (longlong *)
               ((longlong)*(int *)(**(longlong **)(param_1 + 8) + 8) +
               (longlong)*(longlong **)(param_1 + 8));
      ppvVar12 = (void **)0x4;
      (**(code **)(*plVar9 + 0xb0))(plVar9,param_1 + 0x60,&local_88);
    }
    else {
      local_60 = (void *)0x0;
      uStack_58 = 0;
      local_50 = 0;
      local_b0 = (void *)0x0;
      lStack_a8 = 0;
      local_a0 = 0;
      FUN_180673ab0(&local_88,&local_60,1);
      ppvVar12 = &local_b0;
      FUN_1806b86d0(param_1,0x17,&local_60);
      FUN_180671970(local_b0,lStack_a8 - (longlong)local_b0,param_1 + 0x60);
      if (local_b0 != (void *)0x0) {
        pvVar10 = local_b0;
        if ((0xfff < (ulonglong)(local_a0 - (longlong)local_b0)) &&
           (pvVar10 = *(void **)((longlong)local_b0 + -8),
           0x1f < (ulonglong)((longlong)local_b0 + (-8 - (longlong)pvVar10)))) {
                    /* WARNING: Subroutine does not return */
          _invalid_parameter_noinfo_noreturn();
        }
                    /* WARNING: Subroutine does not return */
        free(pvVar10);
      }
      if (local_60 != (void *)0x0) {
        pvVar10 = local_60;
        if ((0xfff < (ulonglong)(local_50 - (longlong)local_60)) &&
           (pvVar10 = *(void **)((longlong)local_60 + -8),
           0x1f < (ulonglong)((longlong)local_60 + (-8 - (longlong)pvVar10)))) {
                    /* WARNING: Subroutine does not return */
          _invalid_parameter_noinfo_noreturn();
        }
                    /* WARNING: Subroutine does not return */
        free(pvVar10);
      }
    }
    *(undefined1 *)(param_1 + 0x5a) = 1;
  }
  do {
    *(undefined8 *)(puVar11 + -8) = uVar13;
    *(void ***)(puVar11 + -0x10) = ppvVar12;
    *(ulonglong *)(puVar11 + -0x18) = in_R11;
    lVar1 = -(longlong)(int)((int)(-uVar5 | uVar5) >> 0x1f & 0x3d00U ^ 0x3e40);
    register0x00000020 =
         (BADSPACEBASE *)(~-((ulonglong)register0x00000020 ^ 0x3443e78d) + 1 ^ 0x3443e78d);
    in_R11 = *(ulonglong *)(puVar11 + lVar1 + 0x328);
    ppvVar12 = *(void ***)(puVar11 + lVar1 + 0x330);
    uVar13 = *(undefined8 *)(puVar11 + lVar1 + 0x338);
    puVar11 = puVar11 + lVar1 + 0x340;
    uVar3 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  return;
}



############ FUN_ 1806a378a size=320 ############

longlong FUN_1806a378a(void)

{
  longlong in_RAX;
  
  return (-in_RAX ^ 0xffffffffffffffffU) + 1;
}



############ FUN_ 1805bbbc0 size=90 ############

undefined8 FUN_1805bbbc0(longlong *param_1,ulonglong param_2)

{
  longlong lVar1;
  undefined8 uVar2;
  
  uVar2 = 0;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  if (param_2 != 0) {
    if (0x7fffffffffffffff < param_2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    lVar1 = FUN_1805bc8b0();
    *param_1 = lVar1;
    param_1[1] = lVar1;
    uVar2 = CONCAT71((int7)((ulonglong)*param_1 >> 8),1);
    param_1[2] = param_2 + *param_1;
  }
  return uVar2;
}



############ FUN_ 1805bc3b0 size=118 ############

longlong FUN_1805bc3b0(undefined8 param_1,longlong param_2,longlong param_3,longlong param_4)

{
  for (; param_2 != param_3; param_2 = param_2 + 0xa8) {
    FUN_1805b53c0(param_4,param_2);
    param_4 = param_4 + 0xa8;
  }
  return param_4;
}



############ FUN_ 18069c113 size=3117 ############

/* WARNING: Instruction at (ram,0x00018069c2c3) overlaps instruction at (ram,0x00018069c2c1)
    */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18069c113(undefined8 param_1,undefined8 param_2,ulonglong param_3)

{
  int iVar1;
  void *pvVar2;
  int *piVar3;
  undefined1 auVar4 [16];
  undefined1 *puVar5;
  undefined8 uVar6;
  HANDLE pvVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  undefined8 *puVar11;
  longlong lVar12;
  uint *puVar13;
  void *pvVar14;
  longlong *plVar15;
  longlong unaff_RBX;
  undefined1 *puVar16;
  undefined8 *unaff_RBP;
  longlong unaff_RSI;
  int unaff_EDI;
  undefined8 in_R11;
  int *unaff_R12;
  ulonglong unaff_R13;
  undefined8 *puVar17;
  int unaff_R14D;
  undefined8 *puVar18;
  undefined8 *puVar19;
  undefined8 unaff_R15;
  undefined4 extraout_XMM0_Da;
  undefined4 extraout_XMM0_Db;
  undefined4 extraout_XMM0_Dc;
  undefined4 extraout_XMM0_Dd;
  undefined1 unaff_XMM8 [16];
  undefined1 local_res20;
  longlong *in_stack_00000048;
  int in_stack_00000050;
  undefined8 *in_stack_00000060;
  undefined8 in_stack_00000068;
  longlong in_stack_00000070;
  undefined8 *in_stack_00000078;
  
  puVar17 = (undefined8 *)(unaff_R13 ^ param_3);
  uVar8 = (*unaff_R12 + 1) * *unaff_R12 & 0x80000001;
  if ((int)uVar8 < 0) {
    uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
  }
  if (uVar8 != 0) {
    FUN_18069c113(0xf53c,param_2,param_3);
    return;
  }
  uVar8 = (*(int *)(unaff_RSI + 0x30 + unaff_RBX) + unaff_R14D) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x34 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x38 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x3c + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x40 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x44 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x48 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x4c + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x50 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x54 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x58 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x5c + unaff_RBX)) * unaff_EDI;
  do {
    uVar9 = (*unaff_R12 + 1) * *unaff_R12 & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar8 = (*(int *)(unaff_RSI + 0x60 + unaff_RBX) + (uVar8 ^ uVar8 >> 0x10)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 100 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x68 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x6c + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x70 + unaff_RBX)) * unaff_EDI;
  do {
    uVar10 = 0;
                    /* WARNING: Call to offcut address within same function */
    func_0x00018069c3dc();
    if ((uVar10 & 0xc0) != 0) {
      auVar4._4_4_ = extraout_XMM0_Db;
      auVar4._0_4_ = extraout_XMM0_Da;
      auVar4._8_4_ = extraout_XMM0_Dc;
      auVar4._12_4_ = extraout_XMM0_Dd;
      vmaskmovdqu_avx(unaff_XMM8,auVar4);
    }
    uVar9 = (*unaff_R12 + 1) * *unaff_R12 & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar8 = (*(int *)(unaff_RSI + 0x74 + unaff_RBX) + (uVar8 ^ uVar8 >> 0x10)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x78 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x7c + unaff_RBX)) * unaff_EDI;
  puVar18 = (undefined8 *)(ulonglong)(uVar8 ^ uVar8 >> 0x10);
  do {
    puVar11 = (undefined8 *)0xf53c;
    FUN_18069dcfe();
    puVar19 = puVar11;
    if (((ulonglong)puVar11 & 0x40) == 0) {
      puVar11 = puVar17;
      puVar19 = puVar18;
    }
    uVar8 = (*unaff_R12 + 1) * *unaff_R12 & 0x80000001;
    if ((int)uVar8 < 0) {
      uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
    }
    puVar17 = puVar11;
    puVar18 = puVar19;
  } while (uVar8 != 0);
  uVar8 = (*(int *)(unaff_RSI + 0x80 + unaff_RBX) + (int)puVar19) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x84 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x88 + unaff_RBX)) * unaff_EDI;
  do {
    FUN_18069c112(0xf53c);
    uVar9 = (*unaff_R12 + 1) * *unaff_R12 & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar8 = (*(int *)(unaff_RSI + 0x8c + unaff_RBX) + (uVar8 ^ uVar8 >> 0x10)) * unaff_EDI;
  do {
    uVar9 = (*(int *)(unaff_RBP + 0x55) + 1) * *(int *)(unaff_RBP + 0x55) & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar8 = (*(int *)(unaff_RSI + 0x90 + unaff_RBX) + (uVar8 ^ uVar8 >> 0x10)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x94 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x98 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0x9c + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xa0 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xa4 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xa8 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xac + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xb0 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xb4 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xb8 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xbc + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xc0 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xc4 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 200 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xcc + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xd0 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xd4 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xd8 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xdc + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xe0 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xe4 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xe8 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xec + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xf0 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xf4 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xf8 + unaff_RBX)) * unaff_EDI;
  uVar8 = ((uVar8 >> 0x10 ^ uVar8) + *(int *)(unaff_RSI + 0xfc + unaff_RBX)) * unaff_EDI;
  do {
    FUN_18069ddcb(0xf53c);
    iVar1 = *(int *)(unaff_RBP + 0x55);
    uVar9 = (iVar1 + 1) * iVar1 & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  do {
    FUN_18069d385(0xf53c);
    iVar1 = *(int *)(unaff_RBP + 0x55);
    uVar9 = (iVar1 + 1) * iVar1 & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar8 = (uVar8 ^ uVar8 >> 0x10) + 0xf3e389d3;
  uVar10 = CONCAT71((int7)((ulonglong)unaff_R15 >> 8),(uVar8 * 4 | uVar8 >> 0x1e) == 0x822a8d6d);
  if ((int)uVar10 != 0 || (uVar10 & 0x7ffff) != 0) {
    lVar12 = in_stack_00000048[1] - *in_stack_00000048;
    lVar12 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816(lVar12),8) + lVar12;
    if (lVar12 >> 7 != lVar12 >> 0x3f) {
      FUN_180677320(unaff_RBP + 0x30);
      unaff_RBP[-10] = pace::eden::thrift::authorize::FindAuthChainsReturn::vftable;
      unaff_RBP[-9] = unaff_R15;
      unaff_RBP[-8] = 0;
      unaff_RBP[-7] = 0;
      unaff_RBP[-6] = 0;
      unaff_RBP[-5] = 0;
      unaff_RBP[-4] = unaff_R15;
      *(undefined1 *)(unaff_RBP + -3) = 0;
      *(undefined8 *)((longlong)unaff_RBP + -0x14) = 4;
      if (unaff_RBP + 0x31 != in_stack_00000048) {
        FUN_18066bb80(unaff_RBP + 0x31,*in_stack_00000048,in_stack_00000048[1],local_res20);
      }
      FUN_18067dd60(unaff_RBP + 0x34,in_stack_00000068);
      uVar6 = FUN_1806d2560();
      unaff_RBP[0x42] = uVar6;
      FUN_1805b45f0(unaff_RBP + 0xc,in_stack_00000070 + 0x18);
      if (*(longlong *)(in_stack_00000070 + 0x48) == 0) {
        plVar15 = (longlong *)
                  ((longlong)*(int *)(**(longlong **)(in_stack_00000070 + 8) + 8) +
                  (longlong)*(longlong **)(in_stack_00000070 + 8));
        puVar11 = unaff_RBP + 0x30;
        (**(code **)(*plVar15 + 0x68))(plVar15,unaff_RBP + -10,puVar11,4);
      }
      else {
        unaff_RBP[0x11] = 0;
        unaff_RBP[0x12] = 0;
        unaff_RBP[0x13] = unaff_R15;
        unaff_RBP[-0xd] = 0;
        unaff_RBP[-0xc] = 0;
        unaff_RBP[-0xb] = unaff_R15;
        FUN_180673570(unaff_RBP + 0x30,unaff_RBP + 0x11,1);
        FUN_1806b86d0(in_stack_00000070,0xe,unaff_RBP + 0x11,unaff_RBP + -0xd);
        puVar11 = unaff_RBP + -10;
        FUN_1806713a0(unaff_RBP[-0xd],unaff_RBP[-0xc] - unaff_RBP[-0xd]);
        pvVar2 = (void *)unaff_RBP[-0xd];
        if (pvVar2 != (void *)0x0) {
          pvVar14 = pvVar2;
          if ((0xfff < (ulonglong)(unaff_RBP[-0xb] - (longlong)pvVar2)) &&
             (pvVar14 = *(void **)((longlong)pvVar2 + -8),
             0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar14)))) {
                    /* WARNING: Subroutine does not return */
            _invalid_parameter_noinfo_noreturn();
          }
                    /* WARNING: Subroutine does not return */
          free(pvVar14);
        }
        pvVar2 = (void *)unaff_RBP[0x11];
        if (pvVar2 != (void *)0x0) {
          pvVar14 = pvVar2;
          if ((0xfff < (ulonglong)(unaff_RBP[0x13] - (longlong)pvVar2)) &&
             (pvVar14 = *(void **)((longlong)pvVar2 + -8),
             0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar14)))) {
                    /* WARNING: Subroutine does not return */
            _invalid_parameter_noinfo_noreturn();
          }
                    /* WARNING: Subroutine does not return */
          free(pvVar14);
        }
      }
      if (in_stack_00000078 != unaff_RBP + -9) {
        puVar11 = (undefined8 *)unaff_RBP[-8];
        FUN_18060abf0(in_stack_00000078,unaff_RBP[-9],puVar11,local_res20);
      }
      if ((in_stack_00000060 != (undefined8 *)0x0) && (in_stack_00000060 != unaff_RBP + -6)) {
        puVar11 = (undefined8 *)unaff_RBP[-5];
        FUN_18066bdc0(in_stack_00000060,unaff_RBP[-6],puVar11,local_res20);
      }
      if (*(char *)(unaff_RBP + 0xd) != '\0') {
        piVar3 = (int *)unaff_RBP[0xc];
        *piVar3 = *piVar3 + -1;
        if (*piVar3 == 0) {
          LOCK();
          piVar3[1] = (int)unaff_R15;
          UNLOCK();
          puVar13 = (uint *)(unaff_RBP[0xc] + 8);
          LOCK();
          uVar8 = *puVar13;
          *puVar13 = *puVar13 + 0x80000000;
          UNLOCK();
          if (((uVar8 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar8)) {
            LOCK();
            uVar8 = *puVar13;
            *puVar13 = *puVar13 | 0x40000000;
            UNLOCK();
            if ((uVar8 >> 0x1e & 1) == 0) {
              pvVar7 = (HANDLE)FUN_1805a9100();
              SetEvent(pvVar7);
            }
          }
        }
      }
      unaff_RBP[-10] = pace::eden::thrift::authorize::FindAuthChainsReturn::vftable;
      FUN_180575f30(unaff_RBP + -6);
      FUN_1805bc0b0(unaff_RBP + -9);
      FUN_18067b450(unaff_RBP + 0x30);
    }
    puVar5 = (undefined1 *)register0x00000020;
    do {
      puVar16 = puVar5;
      *(undefined8 *)(puVar16 + -8) = 0x18069cd38;
      lVar12 = (longlong)in_stack_00000050;
      FUN_18069ada1();
      *(undefined8 **)(puVar16 + -8) = puVar11;
      *(longlong *)(puVar16 + -0x10) = unaff_RSI;
      *(undefined8 *)(puVar16 + -0x18) = in_R11;
      lVar12 = -lVar12;
      in_R11 = *(undefined8 *)(puVar16 + lVar12 + 0xb38);
      unaff_RSI = *(longlong *)(puVar16 + lVar12 + 0xb40);
      puVar11 = *(undefined8 **)(puVar16 + lVar12 + 0xb48);
      uVar8 = (*(int *)(unaff_RBP + 0x55) + 1) * *(int *)(unaff_RBP + 0x55) & 0x80000001;
      if ((int)uVar8 < 0) {
        uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
      }
      puVar5 = puVar16 + lVar12 + 0xb50;
    } while (uVar8 != 0);
    *(undefined **)(puVar16 + lVar12 + 0xb48) = &UNK_18069cdde;
  }
  lVar12 = in_stack_00000048[1] - *in_stack_00000048;
  lVar12 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816(lVar12),8) + lVar12;
  if (lVar12 >> 7 == lVar12 >> 0x3f) {
    FUN_180677320(unaff_RBP + 0x16);
    *unaff_RBP = pace::eden::thrift::authorize::FindAuthChainsReturn::vftable;
    unaff_RBP[1] = unaff_R15;
    unaff_RBP[2] = 0;
    unaff_RBP[3] = 0;
    unaff_RBP[4] = 0;
    unaff_RBP[5] = 0;
    unaff_RBP[6] = unaff_R15;
    *(undefined1 *)(unaff_RBP + 7) = 0;
    *(undefined8 *)((longlong)unaff_RBP + 0x3c) = 4;
    if (unaff_RBP + 0x17 != in_stack_00000048) {
      FUN_18066bb80(unaff_RBP + 0x17,*in_stack_00000048,in_stack_00000048[1],local_res20);
    }
    FUN_18067dd60(unaff_RBP + 0x1a,in_stack_00000068);
    uVar6 = FUN_1806d2560();
    unaff_RBP[0x28] = uVar6;
    FUN_1805b45f0(unaff_RBP + 10,in_stack_00000070 + 0x18);
    if (*(longlong *)(in_stack_00000070 + 0x48) == 0) {
      unaff_RBP[0xe] = 0;
      unaff_RBP[0xf] = 0;
      unaff_RBP[0x10] = unaff_R15;
      unaff_RBP[-0x10] = 0;
      unaff_RBP[-0xf] = 0;
      unaff_RBP[-0xe] = unaff_R15;
      FUN_180673570(unaff_RBP + 0x16,unaff_RBP + 0xe,1);
      FUN_1806b86d0(in_stack_00000070,0xe,unaff_RBP + 0xe,unaff_RBP + -0x10);
      FUN_1806713a0(unaff_RBP[-0x10],unaff_RBP[-0xf] - unaff_RBP[-0x10]);
      pvVar2 = (void *)unaff_RBP[-0x10];
      if (pvVar2 != (void *)0x0) {
        pvVar14 = pvVar2;
        if ((0xfff < (ulonglong)(unaff_RBP[-0xe] - (longlong)pvVar2)) &&
           (pvVar14 = *(void **)((longlong)pvVar2 + -8),
           0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar14)))) {
                    /* WARNING: Subroutine does not return */
          _invalid_parameter_noinfo_noreturn();
        }
                    /* WARNING: Subroutine does not return */
        free(pvVar14);
      }
      pvVar2 = (void *)unaff_RBP[0xe];
      if (pvVar2 != (void *)0x0) {
        pvVar14 = pvVar2;
        if ((0xfff < (ulonglong)(unaff_RBP[0x10] - (longlong)pvVar2)) &&
           (pvVar14 = *(void **)((longlong)pvVar2 + -8),
           0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar14)))) {
                    /* WARNING: Subroutine does not return */
          _invalid_parameter_noinfo_noreturn();
        }
                    /* WARNING: Subroutine does not return */
        free(pvVar14);
      }
    }
    else {
      (**(code **)(*(longlong *)
                    ((longlong)*(int *)(**(longlong **)(in_stack_00000070 + 8) + 8) +
                    (longlong)*(longlong **)(in_stack_00000070 + 8)) + 0x68))();
    }
    if (in_stack_00000078 != unaff_RBP + 1) {
      FUN_18060abf0(in_stack_00000078,unaff_RBP[1],unaff_RBP[2],local_res20);
    }
    if (in_stack_00000060 == (undefined8 *)0x0) {
      FUN_18066bdc0(0,unaff_RBP[4],unaff_RBP[5],local_res20);
    }
    if (*(char *)(unaff_RBP + 0xb) != '\0') {
      piVar3 = (int *)unaff_RBP[10];
      *piVar3 = *piVar3 + -1;
      if (*piVar3 == 0) {
        LOCK();
        piVar3[1] = (int)unaff_R15;
        UNLOCK();
        puVar13 = (uint *)(unaff_RBP[10] + 8);
        LOCK();
        uVar8 = *puVar13;
        *puVar13 = *puVar13 + 0x80000000;
        UNLOCK();
        if (((uVar8 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar8)) {
          LOCK();
          uVar8 = *puVar13;
          *puVar13 = *puVar13 | 0x40000000;
          UNLOCK();
          if ((uVar8 >> 0x1e & 1) == 0) {
            pvVar7 = (HANDLE)FUN_1805a9100();
            SetEvent(pvVar7);
          }
        }
      }
    }
    *unaff_RBP = pace::eden::thrift::authorize::FindAuthChainsReturn::vftable;
    FUN_180575f30(unaff_RBP + 4);
    FUN_1805bc0b0(unaff_RBP + 1);
    FUN_18067b450(unaff_RBP + 0x16);
  }
  thunk_FUN_1805a9280();
  return;
}



############ FUN_ 1805b45f0 size=154 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805b45f0(undefined8 *param_1,int *param_2)

{
  DWORD DVar1;
  undefined8 uVar2;
  undefined1 auStack_98 [32];
  undefined8 local_78;
  undefined1 local_68 [80];
  ulonglong local_18;
  
  local_78 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_98;
  *param_1 = param_2;
  *(undefined1 *)(param_1 + 1) = 0;
  if (param_2 != (int *)0x0) {
    DVar1 = GetCurrentThreadId();
    if (param_2[1] == DVar1) {
      *param_2 = *param_2 + 1;
    }
    else {
      FUN_1805a9420(param_2 + 2);
      LOCK();
      param_2[1] = DVar1;
      UNLOCK();
      *param_2 = 1;
    }
    *(undefined1 *)(param_1 + 1) = 1;
  }
  uVar2 = FUN_1805a4ab0(local_68,1,"boost unique_lock has no mutex");
                    /* WARNING: Subroutine does not return */
  FUN_1805a3bb0(uVar2);
}



############ FUN_ 1806b10b0 size=2473 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Type propagation algorithm not settling */

void FUN_1806b10b0(longlong param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)

{
  longlong *plVar1;
  int *piVar2;
  uint uVar3;
  int iVar4;
  undefined8 uVar5;
  HANDLE pvVar6;
  longlong lVar7;
  undefined8 *puVar8;
  tm *ptVar9;
  void **ppvVar10;
  longlong lVar11;
  uint *puVar12;
  undefined1 *puVar13;
  undefined1 *puVar14;
  ulonglong uVar15;
  undefined1 auStack_d78 [32];
  void **local_d58;
  void ***local_d50;
  undefined1 local_d48 [4];
  undefined4 local_d44;
  uint local_d40 [2];
  undefined8 local_d38;
  ulonglong local_d30;
  void *local_d28;
  longlong lStack_d20;
  undefined8 local_d18;
  undefined4 local_d08 [2];
  undefined4 local_d00 [2];
  undefined4 local_cf8 [2];
  undefined4 local_cf0 [2];
  undefined4 local_ce8 [2];
  longlong local_ce0;
  undefined8 *local_cd8;
  void **local_cc8;
  undefined1 *puStack_cc0;
  undefined1 local_cb8 [16];
  void **local_ca8;
  longlong lStack_ca0;
  void **local_c98;
  longlong alStack_c90 [4];
  char *local_c70;
  undefined1 local_c68 [8];
  undefined8 local_c60;
  undefined8 local_c58;
  char *local_c50;
  longlong local_c48;
  char *local_c40;
  __time64_t local_c38 [2];
  int *local_c28;
  char local_c20;
  undefined8 local_c18;
  longlong local_c10;
  int *local_c08;
  char local_c00;
  int *local_bf8;
  char local_bf0;
  longlong local_be8;
  char *local_be0;
  undefined8 local_bd8;
  longlong local_bd0;
  longlong lStack_bc8;
  undefined8 local_bc0;
  undefined8 local_bb8;
  undefined8 uStack_bb0;
  undefined8 local_ba8;
  undefined1 local_ba0 [16];
  undefined8 local_b90;
  undefined1 local_b88 [8];
  longlong *local_b80;
  void **local_b78;
  undefined1 *puStack_b70;
  undefined1 local_b68 [32];
  undefined **local_b48;
  undefined8 local_b40;
  undefined8 local_b38;
  undefined8 uStack_b30;
  undefined8 local_b28;
  undefined8 uStack_b20;
  undefined8 local_b18;
  undefined8 local_b10;
  undefined1 local_b08;
  undefined7 uStack_b07;
  longlong local_af8;
  ulonglong local_af0;
  undefined8 local_ae8;
  undefined8 local_ae0;
  undefined2 local_ad8;
  undefined1 local_ad6;
  undefined **local_ac8;
  undefined4 local_ac0;
  undefined8 local_ab8;
  undefined8 uStack_ab0;
  undefined8 local_aa8;
  undefined8 local_aa0;
  undefined8 local_a98;
  undefined8 uStack_a90;
  undefined1 local_a88;
  undefined7 uStack_a87;
  longlong local_a78;
  ulonglong local_a70;
  undefined8 local_a68;
  undefined1 local_a60;
  undefined8 local_a58;
  undefined8 local_a50;
  undefined8 local_a48;
  undefined8 local_a40;
  undefined8 local_a38;
  undefined8 local_a30;
  undefined8 local_a28;
  undefined1 local_a18 [112];
  undefined1 local_9a8 [112];
  undefined1 local_938 [8];
  longlong local_930 [281];
  ulonglong local_68;
  
  local_b90 = 0xfffffffffffffffe;
  local_68 = DAT_182615970 ^ (ulonglong)auStack_d78;
  local_d44 = param_4;
  FUN_1805b45f0(&local_c28,param_1 + 0x18);
  uVar5 = FUN_1806ab5b0();
  local_d58 = (void **)CONCAT44(local_d58._4_4_,1);
  uVar5 = FUN_18066b810(local_b88,uVar5,0,2);
  FUN_18067dba0(param_1 + 8,uVar5);
  if (local_b80 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_b80 + 1;
    lVar7 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    param_4 = local_d44;
    if ((int)lVar7 == 1) {
      (**(code **)(*local_b80 + 8))(local_b80);
      LOCK();
      piVar2 = (int *)((longlong)local_b80 + 0xc);
      iVar4 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      param_4 = local_d44;
      if (iVar4 == 1) {
        (**(code **)(*local_b80 + 0x10))(local_b80);
        param_4 = local_d44;
      }
    }
  }
  if ((local_c20 != '\0') && (*local_c28 = *local_c28 + -1, *local_c28 == 0)) {
    LOCK();
    local_c28[1] = 0;
    UNLOCK();
    puVar12 = (uint *)(local_c28 + 2);
    LOCK();
    uVar3 = *puVar12;
    *puVar12 = *puVar12 + 0x80000000;
    UNLOCK();
    if (((uVar3 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar3)) {
      LOCK();
      uVar3 = *puVar12;
      *puVar12 = *puVar12 | 0x40000000;
      UNLOCK();
      if ((uVar3 >> 0x1e & 1) == 0) {
        pvVar6 = (HANDLE)FUN_1805a9100();
        SetEvent(pvVar6);
      }
    }
  }
  FUN_1806863a0(param_1);
  local_b48 = pace::eden::thrift::authorize::OpenQuicklyEncryptedChannelInput::vftable;
  local_b40 = 0;
  local_b38 = 0;
  uStack_b30 = 0;
  local_b28 = 0;
  uStack_b20 = 0;
  local_b18 = 0;
  local_b10 = 0;
  local_af8 = 0;
  local_af0 = 0xf;
  local_b08 = 0;
  FUN_1805a6cb0(&local_b08,&DAT_181baf991,0);
  local_ae8 = 0;
  local_ae0 = 0;
  local_ad8 = 0;
  local_ad6 = 0;
  local_ac8 = pace::eden::thrift::authorize::OpenQuicklyEncryptedChannelReturn::vftable;
  local_ac0 = 0;
  local_ab8 = 0;
  uStack_ab0 = 0;
  local_aa8 = 0;
  local_aa0 = 0;
  local_a98 = 0;
  uStack_a90 = 0;
  local_a78 = 0;
  local_a70 = 0xf;
  local_a88 = 0;
  FUN_1805a6cb0(&local_a88,&DAT_181baf991,0);
  local_a68 = 4;
  local_a60 = 0;
  local_ae0 = CONCAT44(local_ae0._4_4_,param_3);
  local_ae8._0_4_ = param_4;
  local_ae8._4_4_ = param_2;
  local_b10 = FUN_1806d2560();
  local_d40[0] = FUN_1807002d0(param_4);
  if (local_d40[0] == 0) {
    local_cd8 = (undefined8 *)FUN_1811316e0(0x18);
    if (local_cd8 == (undefined8 *)0x0) {
      lVar7 = 0;
    }
    else {
      lVar7 = FUN_1805a48c0(local_cd8,"Encryption Algorithm %d not supported");
    }
    puVar8 = (undefined8 *)FUN_1811316e0(0x18);
    local_cd8 = puVar8;
    if (puVar8 != (undefined8 *)0x0) {
      FUN_1805a48c0(puVar8,"|__FILE__|%s|__LINE__|%d");
      *puVar8 = pace::PaceLocationInfoFormatter::vftable;
    }
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(*(undefined8 *)(lVar7 + 8),&local_ae8);
  }
  ppvVar10 = (void **)0x0;
  FUN_180937700(local_938,local_ae8._4_4_);
  (**(code **)(local_930[0] + 0x20))(local_930,&local_a58,local_a18);
  FUN_18073e970(local_a18,&local_b28,&local_b40);
  _time64(local_c38);
  ptVar9 = _gmtime64(local_c38);
  if (ptVar9 == (tm *)0x0) {
    uVar5 = FUN_1805b6c80(local_b68,"could not convert calendar time to UTC time");
                    /* WARNING: Subroutine does not return */
    FUN_1805b3e60(uVar5);
  }
  FUN_1805bd670(local_cb8,ptVar9);
  FUN_180663c70(local_cb8,&local_b08);
  local_d28 = (void *)0x0;
  lStack_d20 = 0;
  local_d18 = 0;
  local_d48[0] = 0xa5;
  local_cc8 = &local_d28;
  puStack_cc0 = local_d48;
  local_b78 = local_cc8;
  puStack_b70 = puStack_cc0;
  FUN_1805e1ee0(&local_d28,0x10,&local_b78);
  local_cc8 = (void **)0x0;
  puStack_cc0 = (undefined1 *)0x0;
  local_ca8 = (void **)FUN_1811316e0(0x240);
  if (local_ca8 != (void **)0x0) {
    local_d58 = &local_d28;
    ppvVar10 = (void **)FUN_18063c260(local_ca8,0,1,0);
  }
  local_c98 = ppvVar10;
  FUN_18066b4e0(alStack_c90,ppvVar10);
  FUN_1805ae620(&local_c98,ppvVar10,ppvVar10);
  ppvVar10 = local_c98;
  local_cc8 = local_c98;
  puStack_cc0 = (undefined1 *)alStack_c90[0];
  local_bb8 = 0;
  uStack_bb0 = 0;
  local_ba8 = 0;
  local_bd0 = 0;
  lStack_bc8 = 0;
  local_bc0 = 0;
  FUN_1806741b0(&local_b48,&local_bb8,1);
  FUN_1805b45f0(&local_c08,param_1 + 0x18);
  local_ca8 = ppvVar10;
  lStack_ca0 = alStack_c90[0];
  if (alStack_c90[0] != 0) {
    LOCK();
    *(int *)(alStack_c90[0] + 8) = *(int *)(alStack_c90[0] + 8) + 1;
    UNLOCK();
  }
  local_c18 = *(undefined8 *)(param_1 + 8);
  local_c10 = *(longlong *)(param_1 + 0x10);
  if (local_c10 != 0) {
    LOCK();
    *(int *)(local_c10 + 8) = *(int *)(local_c10 + 8) + 1;
    UNLOCK();
  }
  local_d50 = &local_ca8;
  local_d58 = (void **)((ulonglong)local_d58 & 0xffffffff00000000);
  FUN_1806b91d0(0x1b,&local_bb8,&local_bd0,&local_c18);
  if ((local_c00 != '\0') && (*local_c08 = *local_c08 + -1, *local_c08 == 0)) {
    LOCK();
    local_c08[1] = 0;
    UNLOCK();
    puVar12 = (uint *)(local_c08 + 2);
    LOCK();
    uVar3 = *puVar12;
    *puVar12 = *puVar12 + 0x80000000;
    UNLOCK();
    if (((uVar3 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar3)) {
      LOCK();
      uVar3 = *puVar12;
      *puVar12 = *puVar12 | 0x40000000;
      UNLOCK();
      if ((uVar3 >> 0x1e & 1) == 0) {
        pvVar6 = (HANDLE)FUN_1805a9100();
        SetEvent(pvVar6);
      }
    }
  }
  FUN_180672130(local_bd0,lStack_bc8 - local_bd0,&local_ac8);
  FUN_1805b45f0(&local_bf8,param_1 + 0x18);
  *(undefined4 *)(param_1 + 0x40) = local_ac0;
  if ((local_bf0 != '\0') && (*local_bf8 = *local_bf8 + -1, *local_bf8 == 0)) {
    LOCK();
    local_bf8[1] = 0;
    UNLOCK();
    puVar12 = (uint *)(local_bf8 + 2);
    LOCK();
    uVar3 = *puVar12;
    *puVar12 = *puVar12 + 0x80000000;
    UNLOCK();
    if (((uVar3 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar3)) {
      LOCK();
      uVar3 = *puVar12;
      *puVar12 = *puVar12 | 0x40000000;
      UNLOCK();
      if ((uVar3 >> 0x1e & 1) == 0) {
        pvVar6 = (HANDLE)FUN_1805a9100();
        SetEvent(pvVar6);
      }
    }
  }
  FUN_180660c00(&local_ce0,&local_a88,0);
  local_c38[1] = 0x7ffffffffffffffe;
  local_d08[0] = 0xfffffffe;
  FUN_1805b41e0(&local_be8,local_d08,local_c38 + 1);
  if (local_ce0 != local_be8) {
    FUN_1805c5170(&local_d38,&local_ce0,local_cb8);
    FUN_180661ba0(&local_d38,&local_d30);
    local_bd8 = 0;
    iVar4 = FUN_1805bd370(&local_d38,&local_bd8);
    if ((iVar4 != -1) && (300 < local_d30)) {
      lVar7 = FUN_1805c0220(
                           "The openQuicklyEncryptedChannel client_CallTime to licenseD_CallTime (%d second) was too long "
                           );
      lVar11 = FUN_1805c0260();
      FUN_1805b2520(*(undefined8 *)(lVar7 + 8),&local_d30);
      local_cf8[0] = 0xf63;
      local_c70 = 
      "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
      ;
      uVar5 = FUN_1805a21d0(*(undefined8 *)(lVar11 + 8),&local_c70);
                    /* WARNING: Subroutine does not return */
      FUN_1805b20d0(uVar5,local_cf8);
    }
    FUN_1806a8a70(local_c68);
    FUN_1805c5170(&local_c60,local_c68,&local_ce0);
    local_d38 = local_c60;
    FUN_180661ba0(&local_d38,&local_d30);
    local_c58 = 0;
    iVar4 = FUN_1805bd370(&local_d38,&local_c58);
    if ((iVar4 != -1) && (300 < local_d30)) {
      lVar7 = FUN_1805c0220(
                           "The openQuicklyEncryptedChannel licenseD_CallTime to command finish (%d second) was too long"
                           );
      lVar11 = FUN_1805c0260();
      FUN_1805b2520(*(undefined8 *)(lVar7 + 8),&local_d30);
      local_cf0[0] = 0xf70;
      local_c50 = 
      "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
      ;
      uVar5 = FUN_1805a21d0(*(undefined8 *)(lVar11 + 8),&local_c50);
                    /* WARNING: Subroutine does not return */
      FUN_1805b20d0(uVar5,local_cf0);
    }
    alStack_c90[1] = 0;
    alStack_c90[2] = 0;
    alStack_c90[3] = 0;
    puVar14 = &local_a88;
    if (0xf < local_a70) {
      puVar14 = (undefined1 *)CONCAT71(uStack_a87,local_a88);
    }
    puVar13 = &local_a88;
    if (0xf < local_a70) {
      puVar13 = (undefined1 *)CONCAT71(uStack_a87,local_a88);
    }
    FUN_1805e1990(alStack_c90 + 1,puVar13,puVar14 + local_a78);
    puVar14 = &local_b08;
    if (0xf < local_af0) {
      puVar14 = (undefined1 *)CONCAT71(uStack_b07,local_b08);
    }
    puVar13 = &local_b08;
    if (0xf < local_af0) {
      puVar13 = (undefined1 *)CONCAT71(uStack_b07,local_b08);
    }
    local_d58 = (void **)CONCAT71(local_d58._1_7_,local_d48[0]);
    FUN_1805d5a60(alStack_c90 + 1,alStack_c90[2],puVar13,puVar14 + local_af8);
    FUN_18073d980(&local_aa0,&local_ab8,local_9a8);
    uVar3 = local_d40[0];
    local_d50 = &local_d28;
    local_d58 = (void **)(alStack_c90 + 1);
    uVar15 = (ulonglong)local_d40[0];
    FUN_180938570(local_938,uVar15,&local_a58,local_9a8);
    if (lStack_d20 - (longlong)local_d28 == uVar15) {
      local_a58 = 0;
      local_a50 = 0;
      local_a48 = 0;
      local_a40 = 0;
      local_a38 = 0;
      local_a30 = 0;
      local_a28 = 0;
      local_d58 = &local_d28;
      (**(code **)((longlong)*local_c98 + 0x10))(local_c98,local_d44,1,0);
      memset(local_d28,0,(ulonglong)uVar3);
      FUN_1805b45f0(local_ba0,param_1 + 0x18);
      FUN_180644560(param_1 + 0x48,&local_cc8);
      FUN_1805b7220(local_ba0);
      FUN_180575ed0(alStack_c90 + 1);
      FUN_180575ed0(&local_bd0);
      FUN_180575ed0(&local_bb8);
      FUN_1805a4e80(&local_cc8);
      FUN_180575ed0(&local_d28);
      FUN_1809383a0(local_938);
      FUN_18067cad0(&local_ac8);
      FUN_18067c9c0(&local_b48);
    }
    lVar7 = FUN_1805c0220("The actual key size %d is not the expected size %d");
    lVar11 = FUN_1805c0260();
    local_c48 = lStack_d20 - (longlong)local_d28;
    FUN_1805b2520(*(undefined8 *)(lVar7 + 8),&local_c48);
    FUN_18060e760(*(undefined8 *)(lVar7 + 8),local_d40);
    local_ce8[0] = 0xfab;
    local_c40 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar5 = FUN_1805a21d0(*(undefined8 *)(lVar11 + 8),&local_c40);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar5,local_ce8);
  }
  lVar7 = FUN_1805c0220("licenseD_CallTime (%s) is not a valid date");
  lVar11 = FUN_1805c0260();
  FUN_1805b2240(*(undefined8 *)(lVar7 + 8),&local_a88);
  local_d00[0] = 0xf58;
  local_be0 = 
  "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
  ;
  uVar5 = FUN_1805a21d0(*(undefined8 *)(lVar11 + 8),&local_be0);
                    /* WARNING: Subroutine does not return */
  FUN_1805b20d0(uVar5,local_d00);
}



############ FUN_ 1806afd50 size=4643 ############

/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1806afd50(longlong param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                  undefined4 param_5,undefined8 *param_6,undefined8 *param_7)

{
  int *piVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  ulonglong uVar4;
  size_t _Size;
  char cVar5;
  uint uVar6;
  int iVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined8 uVar10;
  HANDLE pvVar11;
  longlong lVar12;
  undefined8 *puVar13;
  tm *ptVar14;
  void **ppvVar15;
  longlong lVar16;
  longlong *plVar17;
  undefined1 *puVar18;
  undefined1 *puVar19;
  uint *puVar20;
  ushort uVar21;
  size_t _Size_00;
  ushort uVar22;
  ushort uVar23;
  char *_Buf2;
  undefined1 auStack_1cc8 [32];
  void **local_1ca8;
  void ***local_1ca0;
  undefined1 local_1c98 [4];
  uint local_1c94;
  undefined4 local_1c90;
  longlong local_1c88;
  ulonglong local_1c80;
  undefined8 local_1c78;
  longlong local_1c70;
  void *local_1c68;
  longlong lStack_1c60;
  undefined8 local_1c58;
  undefined4 local_1c50;
  undefined4 local_1c4c;
  undefined4 local_1c40 [2];
  undefined4 local_1c38 [2];
  undefined4 local_1c30 [2];
  undefined4 local_1c28 [2];
  undefined4 local_1c20 [2];
  undefined4 local_1c18 [2];
  undefined4 local_1c10 [2];
  undefined4 local_1c08 [2];
  undefined4 local_1c00 [4];
  undefined4 local_1bf0 [2];
  undefined8 *local_1be8;
  undefined4 local_1be0 [2];
  longlong local_1bd8 [2];
  void **local_1bc8;
  undefined1 *puStack_1bc0;
  undefined1 local_1bb8 [8];
  ulonglong local_1bb0;
  undefined8 local_1ba8;
  undefined8 uStack_1ba0;
  undefined8 local_1b98;
  void **local_1b88;
  longlong lStack_1b80;
  longlong local_1b78;
  char *local_1b70;
  undefined8 local_1b68;
  char *local_1b60;
  undefined1 local_1b58 [8];
  undefined8 local_1b50;
  undefined8 local_1b48;
  char *local_1b40;
  longlong local_1b38;
  char *local_1b30;
  longlong local_1b28;
  longlong local_1b20;
  char *local_1b18;
  char *local_1b10;
  char *local_1b08;
  longlong local_1b00;
  longlong local_1af8;
  char *local_1af0 [2];
  char *local_1ae0;
  longlong local_1ad8;
  longlong local_1ad0;
  undefined1 local_1ac8 [8];
  undefined1 local_1ac0 [8];
  int *local_1ab8;
  char local_1ab0;
  undefined8 local_1aa8;
  longlong local_1aa0;
  int *local_1a98;
  char local_1a90;
  int *local_1a88;
  char local_1a80;
  undefined8 local_1a78;
  __time64_t local_1a70;
  undefined8 local_1a68;
  longlong local_1a60;
  longlong lStack_1a58;
  undefined8 local_1a50;
  undefined8 local_1a48;
  undefined8 uStack_1a40;
  undefined8 local_1a38;
  undefined8 local_1a30;
  undefined8 uStack_1a28;
  undefined8 local_1a20;
  void **local_1a18;
  longlong lStack_1a10;
  undefined1 local_1a08 [8];
  longlong *local_1a00;
  void **local_19f8;
  undefined1 *puStack_19f0;
  undefined1 local_19e8 [16];
  undefined1 local_19d8 [8];
  undefined8 local_19d0;
  undefined1 auStack_19c4 [4];
  undefined1 auStack_19c0 [8];
  undefined8 local_19b8;
  undefined8 uStack_19b0;
  undefined8 local_19a8;
  undefined8 uStack_19a0;
  undefined8 local_1998;
  undefined8 uStack_1990;
  undefined8 local_1988;
  undefined8 uStack_1980;
  undefined8 local_1978;
  undefined8 uStack_1970;
  undefined4 local_1968;
  undefined4 uStack_1964;
  undefined4 uStack_1960;
  undefined4 uStack_195c;
  undefined4 local_1958;
  undefined4 uStack_1954;
  undefined4 uStack_1950;
  undefined4 uStack_194c;
  undefined1 local_1948 [32];
  longlong local_1928 [48];
  undefined **local_17a8;
  undefined1 local_17a0;
  undefined7 uStack_179f;
  longlong local_1790;
  ulonglong local_1788;
  undefined8 local_1780;
  undefined8 local_1778;
  undefined8 uStack_1770;
  undefined8 local_1768;
  undefined8 uStack_1760;
  undefined8 local_1758;
  undefined8 local_1750;
  undefined4 local_1748 [2];
  undefined8 local_1740;
  undefined4 local_1738;
  undefined2 local_1734;
  undefined1 local_1732;
  undefined1 local_1728;
  undefined7 uStack_1727;
  ulonglong local_1718;
  ulonglong local_1710;
  char local_1708;
  undefined7 uStack_1707;
  size_t local_16f8;
  ulonglong local_16f0;
  undefined **local_16e8;
  undefined1 local_16e0;
  undefined7 uStack_16df;
  longlong local_16d0;
  ulonglong local_16c8;
  undefined8 local_16c0;
  undefined8 local_16b8;
  undefined8 uStack_16b0;
  undefined8 local_16a8;
  undefined8 uStack_16a0;
  undefined8 local_1698;
  undefined8 uStack_1690;
  undefined8 local_1688;
  undefined8 uStack_1680;
  undefined8 local_1678;
  undefined8 local_1670;
  undefined8 local_1668;
  undefined8 uStack_1660;
  undefined8 local_1658;
  undefined8 uStack_1650;
  undefined8 local_1648;
  undefined8 local_1640;
  undefined4 local_1638;
  undefined1 local_1634;
  undefined4 local_1628;
  undefined4 uStack_1624;
  undefined4 uStack_1620;
  undefined4 uStack_161c;
  undefined1 local_1618 [16];
  undefined8 local_1608;
  undefined8 local_1600;
  undefined8 local_15f8;
  undefined8 local_15f0;
  undefined8 local_15e8;
  undefined8 local_15e0;
  undefined8 local_15d8;
  undefined8 local_15d0;
  undefined8 local_15c8;
  undefined1 local_15c0 [32];
  undefined1 local_15a0 [32];
  undefined1 local_1580 [32];
  undefined1 local_1560 [56];
  undefined1 local_1528 [48];
  ulonglong local_14f8;
  uint uStack_14f0;
  undefined8 local_14e8;
  undefined8 uStack_14e0;
  undefined8 local_14d8;
  undefined8 uStack_14d0;
  undefined8 local_14c8;
  undefined8 uStack_14c0;
  undefined8 local_14b8;
  undefined8 uStack_14b0;
  undefined8 local_14a8;
  undefined8 uStack_14a0;
  undefined4 local_1498;
  undefined4 uStack_1494;
  undefined4 uStack_1490;
  undefined4 uStack_148c;
  undefined4 local_1488;
  undefined4 uStack_1484;
  undefined4 uStack_1480;
  undefined4 uStack_147c;
  undefined4 local_1478;
  undefined4 uStack_1474;
  undefined4 uStack_1470;
  undefined4 uStack_146c;
  undefined1 local_1348 [112];
  undefined1 local_12d8 [112];
  undefined1 local_1268 [112];
  undefined1 local_11f8 [8];
  longlong local_11f0 [281];
  undefined1 local_928 [2240];
  ulonglong local_68;
  undefined8 uStack_48;
  
  uStack_48 = 0x1806afd6f;
  local_19d0 = 0xfffffffffffffffe;
  local_68 = DAT_182615970 ^ (ulonglong)auStack_1cc8;
  local_1c70 = CONCAT44(local_1c70._4_4_,param_3);
  local_1c20[0] = param_5;
  local_1a78 = 0x7ffffffffffffffe;
  local_1c50 = 0xfffffffe;
  local_1c90 = param_4;
  local_1c4c = param_2;
  local_1ad0 = param_1;
  FUN_1805b41e0(&local_1c88,&local_1c50,&local_1a78);
  local_1ad8 = param_1 + 0x18;
  FUN_1805b45f0(&local_1ab8,local_1ad8);
  uVar10 = FUN_1806ab5b0();
  local_1ca8 = (void **)CONCAT44(local_1ca8._4_4_,1);
  uVar10 = FUN_18066b810(local_1a08,uVar10,0,2);
  FUN_18067dba0(param_1 + 8,uVar10);
  if (local_1a00 != (longlong *)0x0) {
    LOCK();
    plVar17 = local_1a00 + 1;
    lVar12 = *plVar17;
    *(int *)plVar17 = (int)*plVar17 + -1;
    UNLOCK();
    if ((int)lVar12 == 1) {
      (**(code **)(*local_1a00 + 8))(local_1a00);
      LOCK();
      piVar1 = (int *)((longlong)local_1a00 + 0xc);
      iVar7 = *piVar1;
      *piVar1 = *piVar1 + -1;
      UNLOCK();
      if (iVar7 == 1) {
        (**(code **)(*local_1a00 + 0x10))(local_1a00);
      }
    }
  }
  uVar3 = local_1c4c;
  *(undefined4 *)(param_1 + 0x30) = local_1c4c;
  uVar8 = (undefined4)local_1c70;
  *(undefined4 *)(param_1 + 0x34) = (undefined4)local_1c70;
  *(undefined4 *)(param_1 + 0x38) = local_1c90;
  *(undefined4 *)(param_1 + 0x3c) = param_5;
  if ((local_1ab0 != '\0') && (*local_1ab8 = *local_1ab8 + -1, *local_1ab8 == 0)) {
    LOCK();
    local_1ab8[1] = 0;
    UNLOCK();
    puVar20 = (uint *)(local_1ab8 + 2);
    LOCK();
    uVar6 = *puVar20;
    *puVar20 = *puVar20 + 0x80000000;
    UNLOCK();
    if (((uVar6 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar6)) {
      LOCK();
      uVar6 = *puVar20;
      *puVar20 = *puVar20 | 0x40000000;
      UNLOCK();
      if ((uVar6 >> 0x1e & 1) == 0) {
        pvVar11 = (HANDLE)FUN_1805a9100();
        SetEvent(pvVar11);
      }
    }
  }
  if (param_6 != (undefined8 *)0x0) {
    param_6[2] = 0;
    puVar13 = param_6;
    if (0xf < (ulonglong)param_6[3]) {
      puVar13 = (undefined8 *)*param_6;
    }
    *(undefined1 *)puVar13 = 0;
  }
  if (param_7 != (undefined8 *)0x0) {
    param_7[2] = 0;
    puVar13 = param_7;
    if (0xf < (ulonglong)param_7[3]) {
      puVar13 = (undefined8 *)*param_7;
    }
    *(undefined1 *)puVar13 = 0;
  }
  FUN_1806863a0(param_1);
  local_17a8 = pace::eden::thrift::authorize::OpenEncryptedChannelInput::vftable;
  local_1790 = 0;
  local_1788 = 0xf;
  local_17a0 = 0;
  FUN_1805a6cb0(&local_17a0,&DAT_181baf991,0);
  local_1780 = 0;
  local_1778 = 0;
  uStack_1770 = 0;
  local_1768 = 0;
  uStack_1760 = 0;
  local_1758 = 0;
  local_1750 = 0;
  local_1748[0] = 0;
  local_1740 = 0;
  local_1738 = 0;
  local_1734 = 0;
  local_1732 = 0;
  local_16e8 = pace::eden::thrift::authorize::OpenEncryptedChannelReturn::vftable;
  local_16d0 = 0;
  local_16c8 = 0xf;
  local_16e0 = 0;
  FUN_1805a6cb0(&local_16e0,&DAT_181baf991,0);
  uVar2 = local_1c90;
  local_16c0 = 0;
  local_16b8 = 0;
  uStack_16b0 = 0;
  local_16a8 = 0;
  uStack_16a0 = 0;
  local_1698 = 0;
  uStack_1690 = 0;
  local_1688 = 0;
  uStack_1680 = 0;
  local_1678 = 0;
  local_1670 = 0;
  local_1668 = 0;
  uStack_1660 = 0;
  local_1658 = 0;
  uStack_1650 = 0;
  local_1648 = 0;
  local_1640 = 4;
  local_1638 = 0;
  local_1634 = 0;
  local_1750 = CONCAT44(uVar8,uVar3);
  local_1748[0] = local_1c90;
  local_1740 = FUN_1806d2560();
  FUN_180738860(local_928,local_1750 & 0xffffffff);
  uVar6 = FUN_1807002d0(uVar2);
  local_1c94 = uVar6;
  if (uVar6 == 0) {
    local_1be8 = (undefined8 *)FUN_1811316e0(0x18);
    if (local_1be8 == (undefined8 *)0x0) {
      lVar12 = 0;
    }
    else {
      lVar12 = FUN_1805a48c0(local_1be8,"Encryption Algorithm %d not supported");
    }
    puVar13 = (undefined8 *)FUN_1811316e0(0x18);
    local_1be8 = puVar13;
    if (puVar13 != (undefined8 *)0x0) {
      FUN_1805a48c0(puVar13,"|__FILE__|%s|__LINE__|%d");
      *puVar13 = pace::PaceLocationInfoFormatter::vftable;
    }
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(*(undefined8 *)(lVar12 + 8),local_1748);
  }
  FUN_180937700(local_11f8,local_1750 & 0xffffffff);
  (**(code **)(local_11f0[0] + 0x20))(local_11f0,&local_15f8,local_1348);
  FUN_18073e970(local_1348,&local_1780,&local_1768);
  _time64(&local_1a70);
  ptVar14 = _gmtime64(&local_1a70);
  if (ptVar14 == (tm *)0x0) {
    uVar10 = FUN_1805b6c80(local_1948,"could not convert calendar time to UTC time");
                    /* WARNING: Subroutine does not return */
    FUN_1805b3e60(uVar10);
  }
  FUN_1805bd670(local_1bb8,ptVar14);
  FUN_180663c70(local_1bb8,&local_17a0);
  local_1c68 = (void *)0x0;
  lStack_1c60 = 0;
  ppvVar15 = (void **)0x0;
  local_1c58 = 0;
  local_1c98[0] = 0xa5;
  local_1bc8 = &local_1c68;
  puStack_1bc0 = local_1c98;
  local_19f8 = local_1bc8;
  puStack_19f0 = puStack_1bc0;
  FUN_1805e1ee0(&local_1c68,0x10,&local_19f8);
  local_1bc8 = (void **)0x0;
  puStack_1bc0 = (undefined1 *)0x0;
  local_1c70 = FUN_1811316e0(0x240);
  if (local_1c70 != 0) {
    local_1ca8 = &local_1c68;
    ppvVar15 = (void **)FUN_18063c260(local_1c70,0,1,0);
  }
  local_1b88 = ppvVar15;
  FUN_18066b4e0(&lStack_1b80,ppvVar15);
  FUN_1805ae620(&local_1b88,ppvVar15,ppvVar15);
  ppvVar15 = local_1b88;
  local_1bc8 = local_1b88;
  puStack_1bc0 = (undefined1 *)lStack_1b80;
  local_1a30 = 0;
  uStack_1a28 = 0;
  local_1a20 = 0;
  local_1a60 = 0;
  lStack_1a58 = 0;
  local_1a50 = 0;
  FUN_180673ff0(&local_17a8,&local_1a30,1);
  FUN_1805b45f0(&local_1a98,param_1 + 0x18);
  local_1a18 = ppvVar15;
  lStack_1a10 = lStack_1b80;
  if (lStack_1b80 != 0) {
    LOCK();
    *(int *)(lStack_1b80 + 8) = *(int *)(lStack_1b80 + 8) + 1;
    UNLOCK();
    uVar6 = local_1c94;
  }
  local_1aa8 = *(undefined8 *)(param_1 + 8);
  local_1aa0 = *(longlong *)(param_1 + 0x10);
  if (local_1aa0 != 0) {
    LOCK();
    *(int *)(local_1aa0 + 8) = *(int *)(local_1aa0 + 8) + 1;
    UNLOCK();
    uVar6 = local_1c94;
  }
  _Size_00 = (size_t)uVar6;
  local_1ca0 = &local_1a18;
  local_1ca8 = (void **)((ulonglong)local_1ca8 & 0xffffffff00000000);
  FUN_1806b91d0(0x1a,&local_1a30,&local_1a60,&local_1aa8);
  if ((local_1a90 != '\0') && (*local_1a98 = *local_1a98 + -1, *local_1a98 == 0)) {
    LOCK();
    local_1a98[1] = 0;
    UNLOCK();
    puVar20 = (uint *)(local_1a98 + 2);
    LOCK();
    uVar6 = *puVar20;
    *puVar20 = *puVar20 + 0x80000000;
    UNLOCK();
    if (((uVar6 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar6)) {
      LOCK();
      uVar6 = *puVar20;
      *puVar20 = *puVar20 | 0x40000000;
      UNLOCK();
      if ((uVar6 >> 0x1e & 1) == 0) {
        pvVar11 = (HANDLE)FUN_1805a9100();
        SetEvent(pvVar11);
      }
    }
    _Size_00 = (size_t)local_1c94;
  }
  FUN_180671f40(local_1a60,lStack_1a58 - local_1a60,&local_16e8);
  FUN_1805b45f0(&local_1a88,param_1 + 0x18);
  *(undefined4 *)(param_1 + 0x40) = (undefined4)local_1678;
  if ((local_1a80 != '\0') && (*local_1a88 = *local_1a88 + -1, *local_1a88 == 0)) {
    LOCK();
    local_1a88[1] = 0;
    UNLOCK();
    puVar20 = (uint *)(local_1a88 + 2);
    LOCK();
    uVar6 = *puVar20;
    *puVar20 = *puVar20 + 0x80000000;
    UNLOCK();
    if (((uVar6 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar6)) {
      LOCK();
      uVar6 = *puVar20;
      *puVar20 = *puVar20 | 0x40000000;
      UNLOCK();
      if ((uVar6 >> 0x1e & 1) == 0) {
        pvVar11 = (HANDLE)FUN_1805a9100();
        SetEvent(pvVar11);
      }
    }
    _Size_00 = (size_t)local_1c94;
  }
  FUN_180660c00(local_1bd8,&local_16e0,0);
  local_1a68 = 0x7ffffffffffffffe;
  local_1c40[0] = 0xfffffffe;
  FUN_1805b41e0(&local_1b78,local_1c40,&local_1a68);
  if (local_1bd8[0] == local_1b78) {
    lVar12 = FUN_1805c0220("licenseD_CallTime (%s) is not a valid date");
    lVar16 = FUN_1805c0260();
    FUN_1805b2240(*(undefined8 *)(lVar12 + 8),&local_16e0);
    local_1c38[0] = 0xd80;
    local_1b70 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar16 + 8),&local_1b70);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar10,local_1c38);
  }
  FUN_1805c5170(&local_1c78,local_1bd8,local_1bb8);
  FUN_180661ba0(&local_1c78,&local_1c80);
  local_1b68 = 0;
  iVar7 = FUN_1805bd370(&local_1c78,&local_1b68);
  if ((iVar7 != -1) && (300 < local_1c80)) {
    lVar12 = FUN_1805c0220(
                          "The openEncryptedChannel client_CallTime to licenseD_CallTime (%d second) was too long "
                          );
    lVar16 = FUN_1805c0260();
    FUN_1805b2520(*(undefined8 *)(lVar12 + 8),&local_1c80);
    local_1c30[0] = 0xd8b;
    local_1b60 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar16 + 8),&local_1b60);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar10,local_1c30);
  }
  FUN_1806a8a70(local_1b58);
  FUN_1805c5170(&local_1b50,local_1b58,local_1bd8);
  local_1c78 = local_1b50;
  FUN_180661ba0(&local_1c78,&local_1c80);
  local_1b48 = 0;
  iVar7 = FUN_1805bd370(&local_1c78,&local_1b48);
  if ((iVar7 != -1) && (300 < local_1c80)) {
    lVar12 = FUN_1805c0220(
                          "The openEncryptedChannel licenseD_CallTime to command finish (%d second) was too long"
                          );
    lVar16 = FUN_1805c0260();
    FUN_1805b2520(*(undefined8 *)(lVar12 + 8),&local_1c80);
    local_1c28[0] = 0xd98;
    local_1b40 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar16 + 8),&local_1b40);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar10,local_1c28);
  }
  local_1ba8 = 0;
  uStack_1ba0 = 0;
  local_1b98 = 0;
  puVar18 = &local_17a0;
  if (0xf < local_1788) {
    puVar18 = (undefined1 *)CONCAT71(uStack_179f,local_17a0);
  }
  puVar19 = &local_17a0;
  if (0xf < local_1788) {
    puVar19 = (undefined1 *)CONCAT71(uStack_179f,local_17a0);
  }
  FUN_1805e1990(&local_1ba8,puVar19,puVar18 + local_1790);
  uVar21 = (ushort)((ulonglong)local_1740 >> 0x10);
  uVar22 = (ushort)((ulonglong)local_1740 >> 0x20);
  uVar23 = (ushort)((ulonglong)local_1740 >> 0x30);
  local_1bb0 = (ulonglong)
               CONCAT22((ushort)local_1740 << 8 | (ushort)local_1740 >> 8,uVar21 << 8 | uVar21 >> 8)
               << 0x20 | (ulonglong)(ushort)(uVar22 << 8 | uVar22 >> 8) << 0x10 |
               (ulonglong)(ushort)(uVar23 << 8 | uVar23 >> 8);
  local_1ca8._0_1_ = local_1c98[0];
  FUN_1805d5a60(&local_1ba8,uStack_1ba0,&local_1bb0,&local_1ba8);
  puVar18 = &local_16e0;
  if (0xf < local_16c8) {
    puVar18 = (undefined1 *)CONCAT71(uStack_16df,local_16e0);
  }
  puVar19 = &local_16e0;
  if (0xf < local_16c8) {
    puVar19 = (undefined1 *)CONCAT71(uStack_16df,local_16e0);
  }
  local_1ca8 = (void **)CONCAT71(local_1ca8._1_7_,local_1c98[0]);
  FUN_1805d5a60(&local_1ba8,uStack_1ba0,puVar19,puVar18 + local_16d0);
  FUN_18073d980(&local_16c0,&local_16a8,local_12d8);
  local_1ca0 = &local_1c68;
  local_1ca8 = (void **)&local_1ba8;
  uVar6 = (uint)_Size_00;
  FUN_180938570(local_11f8,_Size_00,&local_15f8,local_12d8);
  if (lStack_1c60 - (longlong)local_1c68 != _Size_00) {
    lVar12 = FUN_1805c0220("The actual key size %d is not the expected size %d");
    lVar16 = FUN_1805c0260();
    local_1b38 = lStack_1c60 - (longlong)local_1c68;
    FUN_1805b2520(*(undefined8 *)(lVar12 + 8),&local_1b38);
    FUN_18060e760(*(undefined8 *)(lVar12 + 8),&local_1c94);
    local_1be0[0] = 0xdd9;
    local_1b30 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar16 + 8),&local_1b30);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar10,local_1be0);
  }
  local_15f8 = 0;
  local_15f0 = 0;
  local_15e8 = 0;
  local_15e0 = 0;
  local_15d8 = 0;
  local_15d0 = 0;
  local_15c8 = 0;
  FUN_1807da7c0(local_1528,0,local_1c20,&uStack_1690);
  if ((param_6 != (undefined8 *)0x0) || (param_7 != (undefined8 *)0x0)) {
    local_1628 = local_1478;
    uStack_1624 = uStack_1474;
    uStack_1620 = uStack_1470;
    uStack_161c = uStack_146c;
    if (param_6 != (undefined8 *)0x0) {
      plVar17 = (longlong *)FUN_18076a230(local_19d8,&local_1628);
      local_1c88 = *plVar17;
      FUN_1805b6b80(&local_1b28,0);
      if (local_1c88 != local_1b28) {
        uVar10 = FUN_180662d40(local_15c0,&local_1c88);
        FUN_1805a5a40(param_6,uVar10);
        FUN_180485450(local_15c0);
      }
    }
    if (param_7 != (undefined8 *)0x0) {
      plVar17 = (longlong *)FUN_18076a230(local_1ac8,&uStack_1620);
      local_1c88 = *plVar17;
      FUN_1805b6b80(&local_1b20,0);
      if (local_1c88 != local_1b20) {
        uVar10 = FUN_180662d40(local_15a0,&local_1c88);
        FUN_1805a5a40(param_7,uVar10);
        FUN_180485450(local_15a0);
      }
    }
  }
  uVar10 = FUN_1807e3f30(local_1528,local_1580);
  cVar5 = FUN_18093c400(uVar10);
  FUN_180485450(local_1580);
  if (cVar5 != '\0') {
    FUN_1805c0220("LicenseD\'s cert is no longer valid");
    lVar12 = FUN_1805c0260();
    local_1c18[0] = 0xe14;
    local_1b18 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar12 + 8),&local_1b18);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar10,local_1c18);
  }
  local_19b8 = local_14e8;
  uStack_19b0 = uStack_14e0;
  local_19a8 = local_14d8;
  uStack_19a0 = uStack_14d0;
  local_1998 = local_14c8;
  uStack_1990 = uStack_14c0;
  local_1988 = local_14b8;
  uStack_1980 = uStack_14b0;
  local_1978 = local_14a8;
  uStack_1970 = uStack_14a0;
  local_1968 = local_1498;
  uStack_1964 = uStack_1494;
  uStack_1960 = uStack_1490;
  uStack_195c = uStack_148c;
  local_1958 = local_1488;
  uStack_1954 = uStack_1484;
  uStack_1950 = uStack_1480;
  uStack_194c = uStack_147c;
  uVar9 = (uint)(local_14f8 >> 0x20);
  if (((((uVar9 & 0x800028) != 0x800028) || ((local_14f8 >> 0x20 & 0x10) != 0)) ||
      ((uVar9 & 0x80003f) != 0x80002a)) || (((uStack_14f0 & 0x800) == 0 || ((byte)local_14f8 < 2))))
  {
    lVar12 = FUN_1805c0220(
                          "Bad privileges (Privilege: 0x%08X, MorePrivilege: 0x%08X) for a LicenseD certificate"
                          );
    lVar16 = FUN_1805c0260();
    FUN_18060e760(*(undefined8 *)(lVar12 + 8),auStack_19c4);
    FUN_18060e760(*(undefined8 *)(lVar12 + 8),auStack_19c0);
    local_1c10[0] = 0xe28;
    local_1b10 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar16 + 8),&local_1b10);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar10,local_1c10);
  }
  local_1718 = 0;
  local_1710 = 0xf;
  local_1728 = 0;
  local_16f8 = 0;
  local_16f0 = 0xf;
  local_1708 = '\0';
  FUN_1805a6cb0(&local_1708,"LicenseD ",9);
  FUN_1807e1d40(local_1528,&local_1728);
  _Size = local_16f8;
  uVar4 = local_1718;
  _Buf2 = &local_1708;
  if (0xf < local_16f0) {
    _Buf2 = (char *)CONCAT71(uStack_1707,local_1708);
  }
  puVar18 = (undefined1 *)CONCAT71(uStack_1727,local_1728);
  puVar19 = &local_1728;
  if (0xf < local_1710) {
    puVar19 = puVar18;
  }
  if (local_16f8 <= local_1718) {
    if (local_16f8 == 0) {
LAB_1806b0c88:
      local_1608 = 0;
      local_1600 = 0xf;
      local_1618[0] = 0;
      if (uVar4 < _Size) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69e0();
      }
      local_1b00 = uVar4 - _Size;
      puVar19 = &local_1728;
      if (0xf < local_1710) {
        puVar19 = puVar18;
      }
      local_1af8 = local_1b00;
      FUN_1805a6cb0(local_1618,puVar19 + _Size,local_1b00);
      iVar7 = FUN_18060c070(local_1618);
      if (iVar7 != (int)local_1640) {
        FUN_1805c0220(
                     "The LicenseD service version in the cert does not match the service version on the openEncryptedChannel function"
                     );
        lVar12 = FUN_1805c0260();
        local_1c00[0] = 0xe3e;
        local_1af0[0] =
             "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
        ;
        uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar12 + 8),local_1af0);
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(uVar10,local_1c00);
      }
      FUN_1807dfee0(local_1528,local_1750 & 0xffffffff,local_1ac0,local_1268);
      local_1a48 = 0;
      uStack_1a40 = 0;
      local_1a38 = 0;
      FUN_180682a40(&local_16e8,&local_17a8,&local_1a48,4);
      uVar8 = 0x20;
      if (local_1678._4_4_ == 0) {
        uVar8 = FUN_180741570(local_928);
      }
      else if (local_1678._4_4_ != 2) {
        lVar12 = FUN_1805c0220("Hash truncation method %d is not supported");
        FUN_1805c0260();
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(*(undefined8 *)(lVar12 + 8),(longlong)&local_1678 + 4);
      }
      FUN_180610750(local_1928,local_1750._4_4_);
      FUN_180616fa0(local_1928,&local_1a48);
      (**(code **)(local_1928[0] + 0x40))(local_1928,uVar8,0,local_1560);
      local_1ca8 = (void **)&local_1658;
      cVar5 = FUN_180746170(local_928,local_1268,local_1560,&local_1670);
      if (cVar5 == '\0') {
        FUN_1805c0220("Bad signature on openEncryptedChannel command");
        lVar12 = FUN_1805c0260();
        local_1bf0[0] = 0xeb1;
        local_1ae0 = 
        "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
        ;
        uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar12 + 8),&local_1ae0);
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(uVar10,local_1bf0);
      }
      uVar9 = (int)local_1668 - (int)local_1670;
      if (uVar6 < uVar9) {
        uVar9 = uVar6;
      }
      if (uVar9 != 0) {
        FUN_180620470(local_1c68,local_1670,uVar9);
      }
      uVar9 = (int)uStack_1650 - (int)local_1658;
      if (uVar6 < uVar9) {
        uVar9 = uVar6;
      }
      if (uVar9 != 0) {
        FUN_180620470(local_1c68,local_1658,uVar9);
      }
      local_1ca8 = &local_1c68;
      (**(code **)((longlong)*local_1b88 + 0x10))(local_1b88,local_1c90,1,0);
      memset(local_1c68,0,_Size_00);
      FUN_1805b45f0(local_19e8,local_1ad8);
      FUN_180644560(local_1ad0 + 0x48,&local_1bc8);
      FUN_1805b7220(local_19e8);
      FUN_1806120b0(local_1928);
      FUN_180575ed0(&local_1a48);
      FUN_180485450(local_1618);
      FUN_180485450(&local_1708);
      FUN_180485450(&local_1728);
      FUN_1807dc8a0(local_1528);
      FUN_180575ed0(&local_1ba8);
      FUN_180575ed0(&local_1a60);
      FUN_180575ed0(&local_1a30);
      FUN_1805a4e80(&local_1bc8);
      FUN_180575ed0(&local_1c68);
      FUN_1809383a0(local_11f8);
      FUN_18073a080(local_928);
      FUN_18067c7b0(&local_16e8);
      FUN_18067c6a0(&local_17a8);
    }
    lVar12 = local_1718 - local_16f8;
    puVar18 = memchr(puVar19,(int)*_Buf2,lVar12 + 1);
    while (puVar18 != (undefined1 *)0x0) {
      iVar7 = memcmp(puVar18,_Buf2,_Size);
      if (iVar7 == 0) {
        if (puVar18 == puVar19) {
          puVar18 = (undefined1 *)CONCAT71(uStack_1727,local_1728);
          goto LAB_1806b0c88;
        }
        break;
      }
      puVar18 = memchr(puVar18 + 1,(int)*_Buf2,
                       (size_t)(puVar19 + ((lVar12 + 1) - (longlong)(puVar18 + 1))));
    }
  }
  lVar12 = FUN_1805c0220(
                        "\"LicenseD \" is not at the beginning of the cert\'s BusinessCategory (Actual: %s)"
                        );
  lVar16 = FUN_1805c0260();
  FUN_1805b2240(*(undefined8 *)(lVar12 + 8),&local_1728);
  local_1c08[0] = 0xe34;
  local_1b08 = 
  "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
  ;
  uVar10 = FUN_1805a21d0(*(undefined8 *)(lVar16 + 8),&local_1b08);
                    /* WARNING: Subroutine does not return */
  FUN_1805b20d0(uVar10,local_1c08);
}



############ FUN_ 1805a9100 size=134 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805a9100(longlong param_1)

{
  HANDLE hObject;
  undefined8 uVar1;
  bool bVar2;
  undefined1 auStack_98 [32];
  undefined8 local_78;
  undefined1 local_68 [80];
  ulonglong local_18;
  
  local_78 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_98;
  if (*(longlong *)(param_1 + 8) == 0) {
    hObject = CreateEventA((LPSECURITY_ATTRIBUTES)0x0,0,0,(LPCSTR)0x0);
    if (hObject == (HANDLE)0x0) {
      uVar1 = FUN_1805a4cc0(local_68);
                    /* WARNING: Subroutine does not return */
      FUN_1805a3bf0(uVar1);
    }
    LOCK();
    bVar2 = *(longlong *)(param_1 + 8) == 0;
    if (bVar2) {
      *(longlong *)(param_1 + 8) = (longlong)hObject;
    }
    UNLOCK();
    if (!bVar2) {
      CloseHandle(hObject);
    }
  }
}



############ FUN_ 1805c04c0 size=2707 ############

/* WARNING: Instruction at (ram,0x0001805c0fb6) overlaps instruction at (ram,0x0001805c0fb5)
    */
/* WARNING: Removing unreachable block (ram,0x0001805c0f34) */
/* WARNING: Removing unreachable block (ram,0x0001805c0bb4) */
/* WARNING: Removing unreachable block (ram,0x0001805c0b73) */
/* WARNING: Removing unreachable block (ram,0x0001805c0990) */
/* WARNING: Removing unreachable block (ram,0x0001805c0997) */
/* WARNING: Removing unreachable block (ram,0x0001805c0995) */
/* WARNING: Removing unreachable block (ram,0x0001805c05cf) */
/* WARNING: Removing unreachable block (ram,0x0001805c08d1) */
/* WARNING: Removing unreachable block (ram,0x0001805c0a31) */
/* WARNING: Removing unreachable block (ram,0x0001805c0b98) */
/* WARNING: Removing unreachable block (ram,0x0001805c0bb9) */
/* WARNING: Removing unreachable block (ram,0x0001805c0de8) */
/* WARNING: Removing unreachable block (ram,0x0001805c0fb1) */
/* WARNING: Removing unreachable block (ram,0x0001805c0b7f) */

undefined8 FUN_1805c04c0(void)

{
  int iVar1;
  ulonglong uVar2;
  undefined8 uVar3;
  uint uVar4;
  uint uVar5;
  ulonglong uVar6;
  undefined8 *puVar7;
  undefined8 *puVar8;
  longlong lVar9;
  undefined8 *puVar10;
  bool bVar11;
  int unaff_retaddr;
  undefined4 unaff_retaddr_00;
  uint auStackX_8 [4];
  undefined8 local_res18;
  undefined4 local_res20;
  code *pcStack_68;
  undefined8 local_60;
  undefined4 *local_58;
  undefined8 *local_50;
  
  local_60 = 0xfffffffffffffffe;
  puVar10 = (undefined8 *)0x0;
  local_res20 = 0xf00;
  lVar9 = (longlong)&DAT_18265dd50 +
          (SUB168(ZEXT816(0xc7ce0c7ce0c7ce0d) * ZEXT816(0x18265dd50),8) >> 5) * -0x29;
  LOCK();
  iVar1 = *(int *)(&DAT_18265dbd0 + lVar9 * 4);
  *(int *)(&DAT_18265dbd0 + lVar9 * 4) = 1;
  UNLOCK();
  puVar7 = puVar10;
  puVar8 = DAT_18265dd50;
  while (DAT_18265dd50 = puVar8, iVar1 != 0) {
    uVar4 = (uint)puVar7;
    if ((3 < uVar4) && (0xf < uVar4)) {
      Sleep((uint)(0x1f < uVar4));
    }
    puVar7 = (undefined8 *)(ulonglong)(uVar4 + 1);
    LOCK();
    iVar1 = *(int *)(&DAT_18265dbd0 + lVar9 * 4);
    *(int *)(&DAT_18265dbd0 + lVar9 * 4) = 1;
    UNLOCK();
    puVar8 = DAT_18265dd50;
  }
  *(undefined4 *)(&DAT_18265dbd0 + lVar9 * 4) = 0;
  local_res18 = 0xb97d1d49;
  if (puVar8 == (undefined8 *)0x0) {
    local_58 = &DAT_18265dd58;
    LOCK();
    bVar11 = DAT_18265dd58 == 0;
    if (bVar11) {
      DAT_18265dd58 = 1;
    }
    UNLOCK();
    while (!bVar11) {
      LOCK();
      bVar11 = DAT_18265dd58 == 0;
      if (bVar11) {
        DAT_18265dd58 = 1;
      }
      UNLOCK();
    }
    LOCK();
    iVar1 = *(int *)(&DAT_18265dbd0 + lVar9 * 4);
    *(int *)(&DAT_18265dbd0 + lVar9 * 4) = 1;
    UNLOCK();
    puVar7 = puVar10;
    puVar8 = DAT_18265dd50;
    while (DAT_18265dd50 = puVar8, iVar1 != 0) {
      uVar4 = (uint)puVar7;
      if ((3 < uVar4) && (0xf < uVar4)) {
        Sleep((uint)(0x1f < uVar4));
      }
      puVar7 = (undefined8 *)(ulonglong)(uVar4 + 1);
      LOCK();
      iVar1 = *(int *)(&DAT_18265dbd0 + lVar9 * 4);
      *(int *)(&DAT_18265dbd0 + lVar9 * 4) = 1;
      UNLOCK();
      puVar8 = DAT_18265dd50;
    }
    *(undefined4 *)(&DAT_18265dbd0 + lVar9 * 4) = 0;
    if (puVar8 == (undefined8 *)0x0) {
      local_50 = (undefined8 *)FUN_1811316e0(0x10);
      puVar7 = puVar10;
      if (local_50 != (undefined8 *)0x0) {
        *local_50 = 0;
        local_50[1] = 0;
        puVar7 = local_50;
      }
      FUN_1805ccdd0(FUN_1805c1760,puVar7);
      LOCK();
      iVar1 = *(int *)(&DAT_18265dbd0 + lVar9 * 4);
      *(int *)(&DAT_18265dbd0 + lVar9 * 4) = 1;
      UNLOCK();
      puVar8 = puVar10;
      while (iVar1 != 0) {
        uVar4 = (uint)puVar8;
        if ((3 < uVar4) && (0xf < uVar4)) {
          Sleep((uint)(0x1f < uVar4));
        }
        puVar8 = (undefined8 *)(ulonglong)(uVar4 + 1);
        LOCK();
        iVar1 = *(int *)(&DAT_18265dbd0 + lVar9 * 4);
        *(int *)(&DAT_18265dbd0 + lVar9 * 4) = 1;
        UNLOCK();
      }
      DAT_18265dd50 = puVar7;
      *(undefined4 *)(&DAT_18265dbd0 + lVar9 * 4) = 0;
    }
    LOCK();
    UNLOCK();
    DAT_18265dd58 = 0;
  }
  do {
    puVar10 = (undefined8 *)((-(longlong)puVar10 ^ 0xffffffffffffffffU) + 1);
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    FUN_1805ca55f();
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    FUN_1805c24d5();
    FUN_1805ca55f();
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  lVar9 = 0xd;
  do {
    lVar9 = lVar9 + -1;
  } while (lVar9 != 0);
  do {
                    /* WARNING: Call to offcut address within same function */
    func_0x0001805c0f38();
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  lVar9 = 0x17;
  do {
    lVar9 = lVar9 + -1;
  } while (lVar9 != 0);
  do {
    FUN_1805c1138();
                    /* WARNING: Call to offcut address within same function */
    func_0x0001805c0f38();
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    FUN_1805c1d8e(0x7838);
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    FUN_1805bf7e8();
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  local_res18 = 0xfecac20910efede2;
  do {
    uVar3 = rdtsc();
    uVar5 = (uint)((ulonglong)uVar3 >> 0x20);
    uVar6 = CONCAT44((int)((ulonglong)auStackX_8 >> 0x20),uVar5);
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  uVar4 = ((uint)uVar3 ^ uVar5) * 0x5bd1ed55;
  auStackX_8[0] = (uVar4 >> 0x18 ^ uVar4) * -0x5028166b;
  if (auStackX_8[0] < 0xae4c40f) {
    do {
      uVar6 = 0xdedd;
      pcStack_68 = FUN_1813bba80;
                    /* WARNING: Call to offcut address within same function */
      func_0x0001805c09e8(&pcStack_68,0xdedd);
      uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar4 < 0) {
        uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar4 != 0);
    uVar2 = (*pcStack_68)();
    if (1 < uVar2) {
      lVar9 = CONCAT44(unaff_retaddr_00,unaff_retaddr);
      while (lVar9 != -0x3333333333333334) {
        *(undefined8 **)register0x00000020 = puVar10;
        register0x00000020 = (BADSPACEBASE *)((longlong)register0x00000020 + 0x40);
        lVar9 = *(longlong *)register0x00000020;
      }
    }
  }
  do {
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  uVar3 = FUN_1805ef049(0,(~uVar6 + 1 ^ 0xffffffffffffffff) + 1,FUN_1805ef049);
  return uVar3;
}



############ FUN_ 1805c2740 size=510 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x0001805c2941) overlaps instruction at (ram,0x0001805c293f)
    */
/* WARNING: Removing unreachable block (ram,0x0001805c293b) */

void FUN_1805c2740(void)

{
  int iVar1;
  uint uVar2;
  longlong lVar3;
  int unaff_retaddr;
  
  lVar3 = (longlong)&DAT_18265dd60 +
          (SUB168(ZEXT816(0xc7ce0c7ce0c7ce0d) * ZEXT816(0x18265dd60),8) >> 5) * -0x29;
  uVar2 = 0;
  LOCK();
  iVar1 = *(int *)(&DAT_18265dbd0 + lVar3 * 4);
  *(int *)(&DAT_18265dbd0 + lVar3 * 4) = 1;
  UNLOCK();
  while (iVar1 != 0) {
    if ((3 < uVar2) && (0xf < uVar2)) {
      Sleep((uint)(0x1f < uVar2));
    }
    uVar2 = uVar2 + 1;
    LOCK();
    iVar1 = *(int *)(&DAT_18265dbd0 + lVar3 * 4);
    *(int *)(&DAT_18265dbd0 + lVar3 * 4) = 1;
    UNLOCK();
  }
  *(undefined4 *)(&DAT_18265dbd0 + lVar3 * 4) = 0;
  do {
                    /* WARNING: Bad instruction - Truncating control flow here */
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  do {
    func_0x0001805c239d();
    func_0x0001805c30c5();
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
                    /* WARNING: Call to offcut address within same function */
  func_0x0001805c2aaa();
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}



############ FUN_ 180674d00 size=2454 ############

/* WARNING: Instruction at (ram,0x000180675844) overlaps instruction at (ram,0x00018067583f)
    */
/* WARNING: Removing unreachable block (ram,0x00018067583f) */
/* WARNING: Removing unreachable block (ram,0x000180675148) */
/* WARNING: Removing unreachable block (ram,0x000180674e48) */
/* WARNING: Removing unreachable block (ram,0x000180674ed1) */
/* WARNING: Removing unreachable block (ram,0x00018067535a) */
/* WARNING: Removing unreachable block (ram,0x000180675a4a) */

undefined8 * FUN_180674d00(undefined8 *param_1,int param_2,longlong *param_3,undefined1 param_4)

{
  longlong *plVar1;
  undefined8 *puVar2;
  int *piVar3;
  longlong *plVar4;
  code *pcVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined1 *puVar9;
  char cVar10;
  char *pcVar11;
  char *pcVar12;
  undefined8 uVar13;
  char *pcVar14;
  undefined8 uVar15;
  undefined8 *puVar16;
  HANDLE hEvent;
  int iVar17;
  uint uVar18;
  undefined8 *puVar19;
  ulonglong uVar20;
  uint *puVar21;
  uint uVar22;
  longlong lVar23;
  ulonglong uVar24;
  longlong lVar25;
  undefined1 *puVar26;
  longlong lVar27;
  uint uVar28;
  uint uVar29;
  ulonglong uVar30;
  uint uVar31;
  byte bVar32;
  int unaff_retaddr;
  int local_res10 [2];
  longlong *local_res18;
  undefined1 local_res20;
  undefined1 auStack_c8 [32];
  undefined1 *local_a8;
  ulonglong local_a0;
  undefined4 *local_98;
  int local_90;
  uint local_8c;
  undefined4 local_88 [2];
  longlong *local_80;
  char *local_78;
  undefined8 local_70;
  undefined1 local_68 [16];
  undefined8 local_58;
  
  local_58 = 0xfffffffffffffffe;
  *param_1 = pace::AuthorizationVerifier::vftable;
  pcVar14 = (char *)0x0;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  *(undefined4 *)(param_1 + 4) = 0;
  param_1[5] = 0;
  plVar4 = param_1 + 9;
  *plVar4 = 0;
  param_1[10] = 0;
  local_res10[0] = param_2;
  local_res18 = param_3;
  local_res20 = param_4;
  local_80 = param_3;
  FUN_180677430(param_1 + 0xc);
  uVar18 = (uint)&stack0x00000000;
  iVar17 = (uVar18 & 0x70ff) * (uVar18 & 0x70ff) + 1;
  uVar22 = (iVar17 >> 4) + (iVar17 >> 1) + iVar17 * 0x24924924 >> 0x1d;
  if (((int)(uVar22 - 7) >> 0x1f & uVar22 & 0x10) == 0) {
    uVar22 = uVar18 & 0x1bf;
    bVar32 = (char)((ulonglong)((longlong)(int)((uVar22 + 2) * (uVar22 + 1) * uVar22) * 0x55555556)
                   >> 0x20) * -3;
  }
  else {
    bVar32 = 0;
  }
  uVar28 = ((uVar18 & 0x10ff) * (uVar18 & 0x10ff) + 1) % 7;
  uVar22 = ((uVar18 & 0x1bff) + 1) * (uVar18 & 0x1bff) + 0x334d & 0x80000001;
  local_8c = (((int)(-uVar28 | uVar28) >> 0x1f) - ((int)(-uVar22 | uVar22) >> 0x1f)) + 0x320bU ^
             0x7bfb << (bVar32 & 0x1f) & 0x33ebU;
  local_90 = 0xda0;
  FUN_1805b45f0(local_68,param_1 + 3);
  local_98 = &DAT_18114a948;
  local_a8 = &LAB_18114aa48;
  local_70 = 0x100;
  uVar22 = (((uint)(DAT_18114a948 * 0x401) >> 6 ^ DAT_18114a948 * 0x401) + DAT_18114a94c) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a950) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a954) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a958) * 0x401;
  uVar22 = uVar22 ^ uVar22 >> 6;
  local_a0 = (ulonglong)uVar22;
  FUN_1806a8b40(param_1);
  local_a8 = (undefined1 *)CONCAT44(local_a8._4_4_,local_res10[0]);
  if ((local_res10[0] == 0) || (*local_80 == 0)) {
    local_78 = (char *)FUN_1811316e0(0x18);
    pcVar11 = pcVar14;
    if (local_78 != (char *)0x0) {
      pcVar11 = (char *)FUN_1805a48c0(local_78,
                                      "The AuthorizationVerifier constructor was not provided a proper channel encyptor (ID = %d)"
                                     );
    }
    pcVar12 = (char *)FUN_1811316e0(0x18);
    local_78 = pcVar12;
    if (pcVar12 != (char *)0x0) {
      FUN_1805a48c0(pcVar12,"|__FILE__|%s|__LINE__|%d");
      *(undefined ***)pcVar12 = pace::PaceLocationInfoFormatter::vftable;
      pcVar14 = pcVar12;
    }
    FUN_18060e760(*(undefined8 *)(pcVar11 + 8),local_res10);
    local_88[0] = 199;
    local_78 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar13 = FUN_1805a21d0(*(undefined8 *)(pcVar14 + 8),&local_78);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar13,local_88);
  }
  local_98 = (undefined4 *)FUN_1811316e0(0x240);
  if (local_98 != (undefined4 *)0x0) {
    pcVar14 = (char *)FUN_18063c2c0(local_98);
  }
  FUN_180672510(plVar4,pcVar14);
  uVar22 = (DAT_18114a95c + uVar22) * 0x401;
  do {
    uVar18 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar18 < 0) {
      uVar18 = (uVar18 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar18 != 0);
  uVar22 = (DAT_18114a960 + (uVar22 ^ uVar22 >> 6)) * 0x401;
  local_a0 = CONCAT44(local_a0._4_4_,uVar22 ^ uVar22 >> 6);
  lVar27 = *local_80;
  lVar25 = *plVar4;
  puVar16 = (undefined8 *)(lVar27 + 8);
  lVar23 = 4;
  puVar19 = (undefined8 *)(lVar25 + 8);
  do {
    uVar13 = puVar16[1];
    *puVar19 = *puVar16;
    puVar19[1] = uVar13;
    uVar13 = puVar16[3];
    puVar19[2] = puVar16[2];
    puVar19[3] = uVar13;
    uVar13 = puVar16[5];
    puVar19[4] = puVar16[4];
    puVar19[5] = uVar13;
    uVar13 = puVar16[7];
    puVar19[6] = puVar16[6];
    puVar19[7] = uVar13;
    uVar13 = puVar16[9];
    puVar19[8] = puVar16[8];
    puVar19[9] = uVar13;
    uVar13 = puVar16[0xb];
    puVar19[10] = puVar16[10];
    puVar19[0xb] = uVar13;
    uVar6 = *(undefined4 *)((longlong)puVar16 + 100);
    uVar7 = *(undefined4 *)(puVar16 + 0xd);
    uVar8 = *(undefined4 *)((longlong)puVar16 + 0x6c);
    *(undefined4 *)(puVar19 + 0xc) = *(undefined4 *)(puVar16 + 0xc);
    *(undefined4 *)((longlong)puVar19 + 100) = uVar6;
    *(undefined4 *)(puVar19 + 0xd) = uVar7;
    *(undefined4 *)((longlong)puVar19 + 0x6c) = uVar8;
    puVar2 = puVar19 + 0x10;
    uVar6 = *(undefined4 *)((longlong)puVar16 + 0x74);
    uVar7 = *(undefined4 *)(puVar16 + 0xf);
    uVar8 = *(undefined4 *)((longlong)puVar16 + 0x7c);
    *(undefined4 *)(puVar19 + 0xe) = *(undefined4 *)(puVar16 + 0xe);
    *(undefined4 *)((longlong)puVar19 + 0x74) = uVar6;
    *(undefined4 *)(puVar19 + 0xf) = uVar7;
    *(undefined4 *)((longlong)puVar19 + 0x7c) = uVar8;
    puVar16 = puVar16 + 0x10;
    lVar23 = lVar23 + -1;
    puVar19 = puVar2;
  } while (lVar23 != 0);
  *puVar2 = *puVar16;
  *(undefined1 *)(lVar25 + 0x210) = *(undefined1 *)(lVar27 + 0x210);
  *(undefined1 *)(lVar25 + 0x211) = *(undefined1 *)(lVar27 + 0x211);
  if ((undefined8 *)(lVar25 + 0x218) != (undefined8 *)(lVar27 + 0x218)) {
    FUN_1805e1990((undefined8 *)(lVar25 + 0x218),*(undefined8 *)(lVar27 + 0x218),
                  *(undefined8 *)(lVar27 + 0x220));
  }
  uVar13 = local_70;
  *(undefined4 *)(lVar25 + 0x230) = *(undefined4 *)(lVar27 + 0x230);
  *(undefined4 *)(lVar25 + 0x234) = *(undefined4 *)(lVar27 + 0x234);
  *(undefined2 *)(lVar25 + 0x238) = *(undefined2 *)(lVar27 + 0x238);
  uVar22 = (DAT_18114a964 + (int)local_a0) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a968) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a96c) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a970) * 0x401;
  *(undefined1 *)(param_1 + 0xb) = 1;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a974) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a978) * 0x401;
  uVar31 = ((uVar22 >> 6 ^ uVar22) + DAT_18114a97c) * 0x401;
  uVar31 = uVar31 ^ uVar31 >> 6;
  uVar22 = (uint)local_70;
  iVar17 = ((uint)local_70 & 0x68ff) * ((uint)local_70 & 0x68ff) + 1;
  uVar18 = (iVar17 >> 4) + (iVar17 >> 1) + iVar17 * 0x24924924 >> 0x1d;
  uVar18 = (int)(uVar18 - 7) >> 0x1f & uVar18;
  uVar30 = (ulonglong)uVar18;
  uVar28 = uVar31 & 0x7f | 0x6e;
  uVar28 = (uVar28 * uVar28 * 0x3611 == 0xa804ae5) + 5;
  uVar24 = (ulonglong)(~(((int)(-uVar18 | uVar18) >> 0x1f) + 1U) & 0x9600) ^
           (longlong)(((int)(-uVar28 | uVar28) >> 0x1f) * -0x9700);
  uVar18 = (*(int *)(&UNK_18114a880 + uVar24) + uVar31) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a884 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a888 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a88c + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a890 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a894 + uVar24)) * 0x401;
  *(uint *)(param_1 + 8) = (uint)local_a8;
  *(undefined4 *)(param_1 + 6) = 0;
  *(undefined4 *)((longlong)param_1 + 0x34) = 2;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a898 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a89c + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8a0 + uVar24)) * 0x401;
  local_70 = 0xdd01652dea47ec50;
  local_a8 = (undefined1 *)CONCAT44(local_a8._4_4_,0xea47ec50);
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8a4 + uVar24)) * 0x401;
  do {
    uVar20 = 0xf304;
    cVar10 = FUN_180676fca();
    if ((uVar20 & 0xe300) == 0) {
      DAT_c08548c18b410ceb = cVar10 + '\r';
    }
    uVar28 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar28 < 0) {
      uVar28 = (uVar28 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar28 != 0);
  uVar18 = (*(int *)(&UNK_18114a8a8 + uVar24) + (uVar18 ^ uVar18 >> 6)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8ac + uVar24)) * 0x401;
  *(undefined4 *)(param_1 + 7) = *(undefined4 *)(param_1[9] + 8);
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8b0 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8b4 + uVar24)) * 0x401;
  *(undefined4 *)((longlong)param_1 + 0x3c) = 0;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8b8 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8bc + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8c0 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8c4 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8c8 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8cc + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8d0 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8d4 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8d8 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8dc + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8e0 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8e4 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8e8 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8ec + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8f0 + uVar24)) * 0x401;
  do {
    uVar20 = 0xf304;
    uVar15 = func_0x000180674082();
    if ((uVar20 & 0x41) != 0) {
      *(byte *)(uVar24 - 200) = *(byte *)(uVar24 - 200) | (byte)(uVar20 >> 8);
      return (undefined8 *)
             (ulonglong)
             ((int)CONCAT71((int7)((ulonglong)uVar15 >> 8),(char)uVar15 + '9') + 0x8067569a);
    }
    func_0x0001806738ee();
    uVar28 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar28 < 0) {
      uVar28 = (uVar28 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar28 != 0);
  uVar18 = (*(int *)(&UNK_18114a8f4 + uVar24) + (uVar18 ^ uVar18 >> 6)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8f8 + uVar24)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a8fc + uVar24)) * 0x401;
  uVar29 = ((uVar18 >> 6 ^ uVar18) + *(int *)(&UNK_18114a900 + uVar24)) * 0x401;
  uVar28 = (uint)(uVar24 - 0x48);
  uVar18 = uVar28 & 0x3fff;
  uVar18 = ((uVar18 + 1) * uVar18 + 7) % 0x51;
  uVar31 = ((int)(-uVar18 | uVar18) >> 0x1f) >> ((byte)uVar13 & 0x1f);
  uVar28 = uVar28 & 0x14ff;
  uVar18 = (uVar28 * uVar28 * 0x10 + 4) % 0x13 | uVar22;
  lVar25 = (uVar24 - 0x48) +
           (((longlong)(((int)(-uVar31 | uVar31) >> 0x1f) * -0x40cd) ^ 0x42cdU) -
           ((longlong)(((int)(-uVar18 | uVar18) >> 0x1f) * -0xacbc) ^ 0xaebcU));
  uVar18 = ((uVar29 >> 6 ^ uVar29) + *(int *)(lVar25 + 0x18114a94c)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(lVar25 + 0x18114a950)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(lVar25 + 0x18114a954)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(lVar25 + 0x18114a958)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(lVar25 + 0x18114a95c)) * 0x401;
  lVar27 = (longlong)local_90;
  do {
    uVar28 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar28 < 0) {
      uVar28 = (uVar28 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar28 != 0);
  uVar28 = (*(int *)(lVar25 + 0x18114a960) + (uVar18 ^ uVar18 >> 6)) * 0x401;
  uVar28 = uVar28 ^ uVar28 >> 6;
  uVar18 = uVar28 & 0xbf;
  iVar17 = (uVar18 + 2) * (uVar18 + 1) * uVar18;
  lVar25 = lVar25 + 0x18 +
           (0x7f71L >>
            ((byte)(((iVar17 >> 1) - (iVar17 >> 3)) + iVar17 * 0x55555555 >> 0x1e) &
             (byte)(lVar25 + 0x18) & 0x3f) ^ 0x7f75U);
  uVar18 = (*(int *)(lVar25 + 0x18114a948) + uVar28) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(lVar25 + 0x18114a94c)) * 0x401;
  uVar18 = ((uVar18 >> 6 ^ uVar18) + *(int *)(lVar25 + 0x18114a950)) * 0x401;
  uVar31 = ((uVar18 >> 6 ^ uVar18) + *(int *)(lVar25 + 0x18114a954)) * 0x401;
  uVar18 = (uint)(lVar25 + 0xc) & 0x3eff;
  iVar17 = uVar18 * uVar18 + 1;
  uVar28 = (iVar17 >> 4) + (iVar17 >> 1) + iVar17 * 0x24924924 >> 0x1d;
  uVar24 = (ulonglong)uVar28;
  uVar18 = uVar22 & 0x7f | 0x16;
  uVar22 = uVar22 & 0x1f | 0x67;
  uVar22 = ((int)(uVar28 - 7) >> 0x1f & uVar28) -
           (uint)(uVar22 * uVar22 * 0x5afb == uVar18 * uVar18 * 0xf3c1);
  lVar25 = lVar25 + 0xc + ((longlong)(((int)(-uVar22 | uVar22) >> 0x1f) * -0xe4ce) ^ 0xe4caU);
  uVar22 = ((uVar31 >> 6 ^ uVar31) + *(int *)(lVar25 + 0x18114a948)) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + *(int *)(lVar25 + 0x18114a94c)) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + *(int *)(lVar25 + 0x18114a950)) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + *(int *)(lVar25 + 0x18114a954)) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + *(int *)(lVar25 + 0x18114a958)) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + *(int *)(lVar25 + 0x18114a95c)) * 0x401;
  uVar22 = ((uVar22 >> 6 ^ uVar22) + *(int *)(lVar25 + 0x18114a960)) * 0x401;
  uVar22 = uVar22 ^ uVar22 >> 6;
  do {
    uVar18 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar18 < 0) {
      uVar18 = (uVar18 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar18 != 0);
  uVar22 = (uVar22 >> 0x17 | uVar22 << 9) + 0xbc0cf0d0;
  uVar22 = (uVar22 >> 0x17 | uVar22 * 0x200) + 0xe2ea0ade;
  uVar22 = (uint)local_a8 ^ (uVar22 >> 6 | uVar22 * 0x4000000) + 0x5199b4d4;
  *(undefined1 *)(param_1 + 0x35) = local_res20;
  puVar9 = auStack_c8;
  if (uVar22 == 0 && (uVar22 & 0x3fffff) == 0) {
    do {
      puVar26 = puVar9;
      *(undefined **)(puVar26 + -8) = &UNK_180675aac;
      lVar25 = lVar27;
      func_0x000180674cf4();
      *(ulonglong *)(puVar26 + -8) = uVar24;
      *(longlong *)(puVar26 + -0x10) = lVar27;
      *(ulonglong *)(puVar26 + -0x18) = uVar30;
      lVar25 = -lVar25;
      uVar30 = *(ulonglong *)(puVar26 + lVar25 + 0xd88);
      lVar27 = *(longlong *)(puVar26 + lVar25 + 0xd90);
      uVar24 = *(ulonglong *)(puVar26 + lVar25 + 0xd98);
      uVar22 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar22 < 0) {
        uVar22 = (uVar22 - 1 | 0xfffffffe) + 1;
      }
      puVar9 = puVar26 + lVar25 + 0xda0;
    } while (uVar22 != 0);
    if (puVar26[lVar25 + 0xe08] != '\0') {
      piVar3 = *(int **)(puVar26 + lVar25 + 0xe00);
      *piVar3 = *piVar3 + -1;
      if (*piVar3 == 0) {
        LOCK();
        piVar3[1] = 0;
        UNLOCK();
        puVar21 = (uint *)(*(longlong *)(puVar26 + lVar25 + 0xe00) + 8);
        LOCK();
        uVar22 = *puVar21;
        *puVar21 = *puVar21 + 0x80000000;
        UNLOCK();
        if (((uVar22 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar22)) {
          LOCK();
          uVar22 = *puVar21;
          *puVar21 = *puVar21 | 0x40000000;
          UNLOCK();
          if ((uVar22 >> 0x1e & 1) == 0) {
            *(undefined8 *)(puVar26 + lVar25 + 0xd98) = 0x180675c73;
            hEvent = (HANDLE)FUN_1805a9100();
            *(undefined8 *)(puVar26 + lVar25 + 0xd98) = 0x180675c7c;
            SetEvent(hEvent);
          }
        }
      }
    }
    plVar4 = *(longlong **)(*(longlong *)(puVar26 + lVar25 + 0xde8) + 8);
    if (plVar4 != (longlong *)0x0) {
      LOCK();
      plVar1 = plVar4 + 1;
      lVar27 = *plVar1;
      *(int *)plVar1 = (int)*plVar1 + -1;
      UNLOCK();
      if ((int)lVar27 == 1) {
        pcVar5 = *(code **)(*plVar4 + 8);
        *(undefined8 *)(puVar26 + lVar25 + 0xd98) = 0x180675ca5;
        (*pcVar5)(plVar4);
        LOCK();
        piVar3 = (int *)((longlong)plVar4 + 0xc);
        iVar17 = *piVar3;
        *piVar3 = *piVar3 + -1;
        UNLOCK();
        if (iVar17 == 1) {
          pcVar5 = *(code **)(*plVar4 + 0x10);
          *(undefined8 *)(puVar26 + lVar25 + 0xd98) = 0x180675cb8;
          (*pcVar5)(plVar4);
        }
      }
    }
    return param_1;
  }
  puVar16 = (undefined8 *)thunk_FUN_1805a9280((longlong)(int)local_8c,thunk_FUN_1805a9280,uVar24);
  return puVar16;
}



############ FUN_ 180675cd0 size=653 ############

/* WARNING: Removing unreachable block (ram,0x000180675daa) */

void FUN_180675cd0(undefined8 *param_1)

{
  uint uVar1;
  undefined1 auStack_c8 [40];
  undefined8 local_a0;
  undefined8 local_98;
  undefined8 local_88;
  uint local_80;
  undefined4 local_7c;
  undefined8 *local_70;
  undefined1 local_68 [16];
  undefined8 local_58;
  undefined8 *local_50;
  ulonglong local_30;
  
  local_58 = 0xfffffffffffffffe;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_c8;
  *param_1 = pace::AuthorizationVerifier::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  *(undefined4 *)(param_1 + 4) = 0;
  param_1[5] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  local_70 = param_1;
  local_50 = param_1;
  FUN_180677430(param_1 + 0xc);
  uVar1 = (uint)&stack0x00000000 & 0x3fff;
  uVar1 = ((uVar1 + 1) * uVar1 + 7) % 0x51;
  local_80 = ((int)(-uVar1 | uVar1) >> 0x1f) * -0x59e3 ^ 0x57e3;
  local_7c = 0x30;
  FUN_1805b45f0(local_68,param_1 + 3);
  local_88 = 0;
  local_98 = 0x180240b80;
  local_a0 = 0x180260b40;
  FUN_180675f5f();
  return;
}



############ FUN_ 1805aeea0 size=97 ############

undefined8 * FUN_1805aeea0(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::sp_counted_impl_p<pace::AuthorizationVerifier>::vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 18069ae50 size=522 ############

/* WARNING: Removing unreachable block (ram,0x00018069af5d) */
/* WARNING: Removing unreachable block (ram,0x00018069afc2) */
/* WARNING: Removing unreachable block (ram,0x00018069afcb) */

void FUN_18069ae50(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined1 param_4)

{
  code *pcVar1;
  uint uVar2;
  uint uVar3;
  undefined1 auStack_d8 [32];
  undefined1 local_b8;
  uint local_9c;
  uint local_84;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  ulonglong local_48;
  
  local_48 = DAT_182615970 ^ (ulonglong)auStack_d8;
  uVar3 = (uint)&stack0x00000000;
  if (((ulonglong)&stack0x00000000 & 0x380) == 0) {
    uVar2 = ((uVar3 & 0x24ff) * (uVar3 & 0x24ff) + 1) % 7;
    local_9c = ((int)(-uVar2 | uVar2) >> 0x1f) * -0xbb61;
  }
  else {
    local_9c = 0xbb61;
  }
  local_9c = local_9c ^ 0xb7c1;
  uVar2 = ((uVar3 & 0x1fff) + 1) * (uVar3 & 0x1fff) + 0x3d7b & 0x80000001;
  local_84 = ((int)(-uVar2 | uVar2) >> 0x1f) * -0x13c1 ^ 0x1a71;
  local_b8 = param_4;
  local_78 = param_3;
  local_70 = param_1;
  local_68 = param_2;
  FUN_18069b062(uVar2,uVar3 & 0x7aff,0x2400);
  pcVar1 = (code *)swi(1);
  (*pcVar1)();
  return;
}



############ FUN_ 181382840 size=616 ############

void FUN_181382840(longlong param_1,longlong param_2)

{
  float fVar1;
  float *pfVar2;
  longlong lVar3;
  
  pfVar2 = (float *)(param_1 + 4);
  param_2 = param_2 - param_1;
  lVar3 = 2;
  do {
    fVar1 = *(float *)(param_2 + -4 + (longlong)pfVar2);
    if (fVar1 < pfVar2[-1]) {
      pfVar2[-1] = fVar1;
    }
    if (*(float *)(param_2 + (longlong)pfVar2) < *pfVar2) {
      *pfVar2 = *(float *)(param_2 + (longlong)pfVar2);
    }
    fVar1 = *(float *)(param_2 + 4 + (longlong)pfVar2);
    if (fVar1 < pfVar2[1]) {
      pfVar2[1] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 8 + (longlong)pfVar2);
    if (fVar1 < pfVar2[2]) {
      pfVar2[2] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0xc + (longlong)pfVar2);
    if (fVar1 < pfVar2[3]) {
      pfVar2[3] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x10 + (longlong)pfVar2);
    if (fVar1 < pfVar2[4]) {
      pfVar2[4] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x14);
    if (fVar1 < pfVar2[5]) {
      pfVar2[5] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x18);
    if (fVar1 < pfVar2[6]) {
      pfVar2[6] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x1c);
    if (fVar1 < pfVar2[7]) {
      pfVar2[7] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x20);
    if (fVar1 < pfVar2[8]) {
      pfVar2[8] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x24);
    if (fVar1 < pfVar2[9]) {
      pfVar2[9] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x28);
    if (fVar1 < pfVar2[10]) {
      pfVar2[10] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x2c);
    if (fVar1 < pfVar2[0xb]) {
      pfVar2[0xb] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x30);
    if (fVar1 < pfVar2[0xc]) {
      pfVar2[0xc] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x34);
    if (fVar1 < pfVar2[0xd]) {
      pfVar2[0xd] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x38);
    if (fVar1 < pfVar2[0xe]) {
      pfVar2[0xe] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x3c);
    if (fVar1 < pfVar2[0xf]) {
      pfVar2[0xf] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x40);
    if (fVar1 < pfVar2[0x10]) {
      pfVar2[0x10] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x44);
    if (fVar1 < pfVar2[0x11]) {
      pfVar2[0x11] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x48);
    if (fVar1 < pfVar2[0x12]) {
      pfVar2[0x12] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x4c);
    if (fVar1 < pfVar2[0x13]) {
      pfVar2[0x13] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x50);
    if (fVar1 < pfVar2[0x14]) {
      pfVar2[0x14] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x54);
    if (fVar1 < pfVar2[0x15]) {
      pfVar2[0x15] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x58 + (longlong)pfVar2);
    if (fVar1 < pfVar2[0x16]) {
      pfVar2[0x16] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x5c + (longlong)pfVar2);
    if (fVar1 < pfVar2[0x17]) {
      pfVar2[0x17] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x60 + (longlong)pfVar2);
    if (fVar1 < pfVar2[0x18]) {
      pfVar2[0x18] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 100 + (longlong)pfVar2);
    if (fVar1 < pfVar2[0x19]) {
      pfVar2[0x19] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x68 + (longlong)pfVar2);
    if (fVar1 < pfVar2[0x1a]) {
      pfVar2[0x1a] = fVar1;
    }
    pfVar2 = pfVar2 + 0x1c;
    lVar3 = lVar3 + -1;
  } while (lVar3 != 0);
  return;
}



############ FUN_ 181382640 size=504 ############

void FUN_181382640(longlong param_1,longlong param_2)

{
  float fVar1;
  float *pfVar2;
  longlong lVar3;
  
  pfVar2 = (float *)(param_1 + 4);
  param_2 = param_2 - param_1;
  lVar3 = 2;
  do {
    fVar1 = *(float *)(param_2 + -4 + (longlong)pfVar2);
    if (pfVar2[-1] <= fVar1 && fVar1 != pfVar2[-1]) {
      pfVar2[-1] = fVar1;
    }
    fVar1 = *(float *)(param_2 + (longlong)pfVar2);
    if (*pfVar2 <= fVar1 && fVar1 != *pfVar2) {
      *pfVar2 = fVar1;
    }
    fVar1 = *(float *)(param_2 + 4 + (longlong)pfVar2);
    if (pfVar2[1] <= fVar1 && fVar1 != pfVar2[1]) {
      pfVar2[1] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 8 + (longlong)pfVar2);
    if (pfVar2[2] <= fVar1 && fVar1 != pfVar2[2]) {
      pfVar2[2] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0xc + (longlong)pfVar2);
    if (pfVar2[3] <= fVar1 && fVar1 != pfVar2[3]) {
      pfVar2[3] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x10 + (longlong)pfVar2);
    if (pfVar2[4] <= fVar1 && fVar1 != pfVar2[4]) {
      pfVar2[4] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x14);
    if (pfVar2[5] <= fVar1 && fVar1 != pfVar2[5]) {
      pfVar2[5] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x18);
    if (pfVar2[6] <= fVar1 && fVar1 != pfVar2[6]) {
      pfVar2[6] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x1c);
    if (pfVar2[7] <= fVar1 && fVar1 != pfVar2[7]) {
      pfVar2[7] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x20);
    if (pfVar2[8] <= fVar1 && fVar1 != pfVar2[8]) {
      pfVar2[8] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x24);
    if (pfVar2[9] <= fVar1 && fVar1 != pfVar2[9]) {
      pfVar2[9] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x28);
    if (pfVar2[10] <= fVar1 && fVar1 != pfVar2[10]) {
      pfVar2[10] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x2c);
    if (pfVar2[0xb] <= fVar1 && fVar1 != pfVar2[0xb]) {
      pfVar2[0xb] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x30);
    if (pfVar2[0xc] <= fVar1 && fVar1 != pfVar2[0xc]) {
      pfVar2[0xc] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x34);
    if (pfVar2[0xd] <= fVar1 && fVar1 != pfVar2[0xd]) {
      pfVar2[0xd] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x38);
    if (pfVar2[0xe] <= fVar1 && fVar1 != pfVar2[0xe]) {
      pfVar2[0xe] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x3c);
    if (pfVar2[0xf] <= fVar1 && fVar1 != pfVar2[0xf]) {
      pfVar2[0xf] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x40);
    if (pfVar2[0x10] <= fVar1 && fVar1 != pfVar2[0x10]) {
      pfVar2[0x10] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x44);
    if (pfVar2[0x11] <= fVar1 && fVar1 != pfVar2[0x11]) {
      pfVar2[0x11] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x48);
    if (pfVar2[0x12] <= fVar1 && fVar1 != pfVar2[0x12]) {
      pfVar2[0x12] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x4c);
    if (pfVar2[0x13] <= fVar1 && fVar1 != pfVar2[0x13]) {
      pfVar2[0x13] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x50);
    if (pfVar2[0x14] <= fVar1 && fVar1 != pfVar2[0x14]) {
      pfVar2[0x14] = fVar1;
    }
    fVar1 = *(float *)((longlong)pfVar2 + param_2 + 0x54);
    if (pfVar2[0x15] <= fVar1 && fVar1 != pfVar2[0x15]) {
      pfVar2[0x15] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x58 + (longlong)pfVar2);
    if (pfVar2[0x16] <= fVar1 && fVar1 != pfVar2[0x16]) {
      pfVar2[0x16] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x5c + (longlong)pfVar2);
    if (pfVar2[0x17] <= fVar1 && fVar1 != pfVar2[0x17]) {
      pfVar2[0x17] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x60 + (longlong)pfVar2);
    if (pfVar2[0x18] <= fVar1 && fVar1 != pfVar2[0x18]) {
      pfVar2[0x18] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 100 + (longlong)pfVar2);
    if (pfVar2[0x19] <= fVar1 && fVar1 != pfVar2[0x19]) {
      pfVar2[0x19] = fVar1;
    }
    fVar1 = *(float *)(param_2 + 0x68 + (longlong)pfVar2);
    if (pfVar2[0x1a] <= fVar1 && fVar1 != pfVar2[0x1a]) {
      pfVar2[0x1a] = fVar1;
    }
    pfVar2 = pfVar2 + 0x1c;
    lVar3 = lVar3 + -1;
  } while (lVar3 != 0);
  return;
}



############ FUN_ 180525480 size=358 ############

longlong FUN_180525480(longlong param_1,longlong param_2,longlong *param_3)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  int iVar5;
  int iVar6;
  longlong *plVar7;
  int iVar8;
  longlong lVar9;
  bool bVar10;
  bool bVar11;
  
  lVar9 = param_2 - param_1 >> 3;
  do {
    lVar4 = lVar9;
    if (lVar4 < 1) {
      return param_1;
    }
    lVar2 = *param_3;
    lVar9 = lVar4 >> 1;
    lVar3 = *(longlong *)(param_1 + lVar9 * 8);
    plVar7 = *(longlong **)(lVar2 + 0x90);
    plVar1 = plVar7 + (longlong)*(int *)(lVar2 + 0x9c) * 3;
    for (; plVar7 != plVar1; plVar7 = plVar7 + 3) {
      if (*plVar7 == DAT_182673c28) {
        plVar7 = plVar7 + 1;
        if (plVar7 != (longlong *)0x0) goto LAB_180525515;
        break;
      }
    }
    plVar7 = (longlong *)FUN_181244160();
LAB_180525515:
    iVar5 = (**(code **)(*(longlong *)*plVar7 + 8))((longlong *)*plVar7,plVar7 + 1);
    plVar7 = *(longlong **)(lVar3 + 0x90);
    iVar8 = 0x3fffffff;
    if (0 < iVar5) {
      iVar8 = iVar5;
    }
    plVar1 = plVar7 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
    for (; plVar7 != plVar1; plVar7 = plVar7 + 3) {
      if (*plVar7 == DAT_182673c28) {
        plVar7 = plVar7 + 1;
        if (plVar7 != (longlong *)0x0) goto LAB_18052556e;
        break;
      }
    }
    plVar7 = (longlong *)FUN_181244160();
LAB_18052556e:
    iVar6 = (**(code **)(*(longlong *)*plVar7 + 8))((longlong *)*plVar7,plVar7 + 1);
    iVar5 = 0x3fffffff;
    if (0 < iVar6) {
      iVar5 = iVar6;
    }
    bVar11 = SBORROW4(iVar8,iVar5);
    bVar10 = iVar8 - iVar5 < 0;
    if (iVar8 == iVar5) {
      iVar5 = *(int *)(lVar2 + 0x24);
      iVar8 = *(int *)(lVar3 + 0x24);
      bVar11 = SBORROW4(iVar5,iVar8);
      bVar10 = iVar5 - iVar8 < 0;
      if (iVar5 == iVar8) {
        bVar11 = SBORROW4(*(int *)(lVar2 + 0x20),*(int *)(lVar3 + 0x20));
        bVar10 = *(int *)(lVar2 + 0x20) - *(int *)(lVar3 + 0x20) < 0;
      }
    }
    if (bVar11 == bVar10) {
      param_1 = param_1 + lVar9 * 8 + 8;
      lVar9 = lVar4 + (-1 - lVar9);
    }
  } while( true );
}



############ FUN_ 1805240c0 size=426 ############

void FUN_1805240c0(undefined8 *param_1,undefined8 *param_2,longlong *param_3,longlong *param_4)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  int iVar4;
  int iVar5;
  longlong *plVar6;
  size_t _Size;
  int iVar7;
  longlong *_Src;
  longlong *_Dst;
  longlong *plVar8;
  longlong *_Src_00;
  bool bVar9;
  bool bVar10;
  
  _Size = (longlong)param_2 - (longlong)param_1;
  memmove(param_4,param_1,_Size);
  *param_1 = *param_2;
  _Dst = param_1 + 1;
  plVar8 = (longlong *)((longlong)param_4 + (_Size - 8));
  _Src = param_2 + 1;
  _Src_00 = param_4;
  do {
    lVar2 = *_Src;
    lVar3 = *_Src_00;
    plVar6 = *(longlong **)(lVar2 + 0x90);
    plVar1 = plVar6 + (longlong)*(int *)(lVar2 + 0x9c) * 3;
    for (; plVar6 != plVar1; plVar6 = plVar6 + 3) {
      if (*plVar6 == DAT_182673c28) {
        plVar6 = plVar6 + 1;
        if (plVar6 != (longlong *)0x0) goto LAB_180524166;
        break;
      }
    }
    plVar6 = (longlong *)FUN_181244160();
LAB_180524166:
    iVar4 = (**(code **)(*(longlong *)*plVar6 + 8))((longlong *)*plVar6,plVar6 + 1);
    plVar6 = *(longlong **)(lVar3 + 0x90);
    iVar7 = 0x3fffffff;
    if (0 < iVar4) {
      iVar7 = iVar4;
    }
    plVar1 = plVar6 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
    for (; plVar6 != plVar1; plVar6 = plVar6 + 3) {
      if (*plVar6 == DAT_182673c28) {
        plVar6 = plVar6 + 1;
        if (plVar6 != (longlong *)0x0) goto LAB_1805241be;
        break;
      }
    }
    plVar6 = (longlong *)FUN_181244160();
LAB_1805241be:
    iVar5 = (**(code **)(*(longlong *)*plVar6 + 8))((longlong *)*plVar6,plVar6 + 1);
    iVar4 = 0x3fffffff;
    if (0 < iVar5) {
      iVar4 = iVar5;
    }
    bVar10 = SBORROW4(iVar7,iVar4);
    bVar9 = iVar7 - iVar4 < 0;
    if (iVar7 == iVar4) {
      iVar4 = *(int *)(lVar2 + 0x24);
      iVar7 = *(int *)(lVar3 + 0x24);
      bVar10 = SBORROW4(iVar4,iVar7);
      bVar9 = iVar4 - iVar7 < 0;
      if (iVar4 == iVar7) {
        bVar10 = SBORROW4(*(int *)(lVar2 + 0x20),*(int *)(lVar3 + 0x20));
        bVar9 = *(int *)(lVar2 + 0x20) - *(int *)(lVar3 + 0x20) < 0;
      }
    }
    if (bVar10 == bVar9) {
      lVar2 = *_Src_00;
      _Src_00 = _Src_00 + 1;
      *_Dst = lVar2;
      _Dst = _Dst + 1;
      if (_Src_00 == plVar8) {
        memmove(_Dst,_Src,(longlong)param_3 - (longlong)_Src);
        *(longlong *)(((longlong)param_3 - (longlong)_Src) + (longlong)_Dst) = *plVar8;
        return;
      }
    }
    else {
      lVar2 = *_Src;
      _Src = _Src + 1;
      *_Dst = lVar2;
      _Dst = _Dst + 1;
      if (_Src == param_3) {
        memmove(_Dst,_Src_00,(longlong)param_4 + (_Size - (longlong)_Src_00));
        return;
      }
    }
  } while( true );
}



############ FUN_ 180525290 size=481 ############

void FUN_180525290(undefined8 param_1,void *param_2,undefined8 param_3,longlong param_4,
                  undefined8 param_5,void *param_6,longlong param_7,undefined1 param_8,void *param_9
                  ,void *param_10,longlong param_11,longlong param_12)

{
  size_t _Size;
  void *_Dst;
  
  param_4 = param_4 - param_11;
  _Dst = param_10;
  if ((param_4 != 0) && (_Dst = param_9, param_12 != 0)) {
    if ((param_12 < param_4) || (param_7 < param_4)) {
      if (param_7 < param_12) {
        _Dst = param_10;
        if ((param_9 != param_2) && (_Dst = param_9, param_2 != param_10)) {
          FUN_181130ef0(param_9);
          FUN_181130ef0(param_2,param_10);
          FUN_181130ef0(param_9,param_10);
          _Dst = (void *)((longlong)param_9 + ((longlong)param_10 - (longlong)param_2 >> 3) * 8);
        }
      }
      else {
        _Size = (longlong)param_10 - (longlong)param_2;
        memmove(param_6,param_2,_Size);
        memmove((void *)((longlong)param_10 - ((longlong)param_2 - (longlong)param_9)),param_9,
                (longlong)param_2 - (longlong)param_9);
        memmove(param_9,param_6,_Size);
        _Dst = (void *)(_Size + (longlong)param_9);
      }
    }
    else {
      memmove(param_6,param_9,(longlong)param_2 - (longlong)param_9);
      memmove(param_9,param_2,(longlong)param_10 - (longlong)param_2);
      _Dst = (void *)(((longlong)param_10 - (longlong)param_2) + (longlong)param_9);
      memmove(_Dst,param_6,(longlong)param_2 - (longlong)param_9);
    }
  }
  FUN_1805218e0(param_1,param_9,_Dst,param_11,param_12,param_6,param_7,param_8);
  FUN_1805218e0(_Dst,param_10,param_3,param_4);
  return;
}



############ FUN_ 180524270 size=434 ############

void FUN_180524270(longlong *param_1,void *param_2,longlong param_3,longlong *param_4)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  int iVar4;
  int iVar5;
  longlong *plVar6;
  longlong *plVar7;
  longlong *plVar8;
  longlong *plVar9;
  int iVar10;
  bool bVar11;
  bool bVar12;
  
  memmove(param_4,param_2,param_3 - (longlong)param_2);
  plVar7 = (longlong *)(((param_3 - (longlong)param_2) - 8U) + (longlong)param_4);
  plVar8 = (longlong *)((longlong)param_2 + -0x10);
  *(longlong *)(param_3 + -8) = *(longlong *)((longlong)param_2 + -8);
  plVar6 = (longlong *)(param_3 + -8);
  do {
    plVar9 = plVar6;
    lVar2 = *plVar7;
    lVar3 = *plVar8;
    plVar6 = *(longlong **)(lVar2 + 0x90);
    plVar1 = plVar6 + (longlong)*(int *)(lVar2 + 0x9c) * 3;
    for (; plVar6 != plVar1; plVar6 = plVar6 + 3) {
      if (*plVar6 == DAT_182673c28) {
        plVar6 = plVar6 + 1;
        if (plVar6 != (longlong *)0x0) goto LAB_180524306;
        break;
      }
    }
    plVar6 = (longlong *)FUN_181244160();
LAB_180524306:
    iVar4 = (**(code **)(*(longlong *)*plVar6 + 8))((longlong *)*plVar6,plVar6 + 1);
    plVar6 = *(longlong **)(lVar3 + 0x90);
    iVar10 = 0x3fffffff;
    if (0 < iVar4) {
      iVar10 = iVar4;
    }
    plVar1 = plVar6 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
    for (; plVar6 != plVar1; plVar6 = plVar6 + 3) {
      if (*plVar6 == DAT_182673c28) {
        plVar6 = plVar6 + 1;
        if (plVar6 != (longlong *)0x0) goto LAB_180524360;
        break;
      }
    }
    plVar6 = (longlong *)FUN_181244160();
LAB_180524360:
    iVar5 = (**(code **)(*(longlong *)*plVar6 + 8))((longlong *)*plVar6,plVar6 + 1);
    iVar4 = 0x3fffffff;
    if (0 < iVar5) {
      iVar4 = iVar5;
    }
    bVar12 = SBORROW4(iVar10,iVar4);
    bVar11 = iVar10 - iVar4 < 0;
    if (iVar10 == iVar4) {
      iVar4 = *(int *)(lVar2 + 0x24);
      iVar10 = *(int *)(lVar3 + 0x24);
      bVar12 = SBORROW4(iVar4,iVar10);
      bVar11 = iVar4 - iVar10 < 0;
      if (iVar4 == iVar10) {
        bVar12 = SBORROW4(*(int *)(lVar2 + 0x20),*(int *)(lVar3 + 0x20));
        bVar11 = *(int *)(lVar2 + 0x20) - *(int *)(lVar3 + 0x20) < 0;
      }
    }
    plVar6 = plVar9 + -1;
    if (bVar12 == bVar11) {
      lVar2 = *plVar7;
      plVar7 = plVar7 + -1;
      *plVar6 = lVar2;
      if (param_4 == plVar7) {
        plVar9[-2] = *plVar8;
        memmove((void *)((longlong)(plVar9 + -2) - ((longlong)plVar8 - (longlong)param_1)),param_1,
                (longlong)plVar8 - (longlong)param_1);
        *param_1 = *param_4;
        return;
      }
    }
    else {
      *plVar6 = *plVar8;
      if (param_1 == plVar8) {
        plVar9[-2] = *plVar7;
        memmove((void *)((longlong)(plVar9 + -2) - ((longlong)plVar7 - (longlong)param_4)),param_4,
                (longlong)plVar7 - (longlong)param_4);
        return;
      }
      plVar8 = plVar8 + -1;
    }
  } while( true );
}



############ FUN_ 180525120 size=358 ############

longlong FUN_180525120(longlong param_1,longlong param_2,longlong *param_3)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  int iVar5;
  int iVar6;
  longlong *plVar7;
  int iVar8;
  longlong lVar9;
  bool bVar10;
  bool bVar11;
  
  lVar9 = param_2 - param_1 >> 3;
  do {
    lVar4 = lVar9;
    if (lVar4 < 1) {
      return param_1;
    }
    lVar2 = *param_3;
    lVar9 = lVar4 >> 1;
    lVar3 = *(longlong *)(param_1 + lVar9 * 8);
    plVar7 = *(longlong **)(lVar3 + 0x90);
    plVar1 = plVar7 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
    for (; plVar7 != plVar1; plVar7 = plVar7 + 3) {
      if (*plVar7 == DAT_182673c28) {
        plVar7 = plVar7 + 1;
        if (plVar7 != (longlong *)0x0) goto LAB_1805251b5;
        break;
      }
    }
    plVar7 = (longlong *)FUN_181244160();
LAB_1805251b5:
    iVar5 = (**(code **)(*(longlong *)*plVar7 + 8))((longlong *)*plVar7,plVar7 + 1);
    plVar7 = *(longlong **)(lVar2 + 0x90);
    iVar8 = 0x3fffffff;
    if (0 < iVar5) {
      iVar8 = iVar5;
    }
    plVar1 = plVar7 + (longlong)*(int *)(lVar2 + 0x9c) * 3;
    for (; plVar7 != plVar1; plVar7 = plVar7 + 3) {
      if (*plVar7 == DAT_182673c28) {
        plVar7 = plVar7 + 1;
        if (plVar7 != (longlong *)0x0) goto LAB_18052520e;
        break;
      }
    }
    plVar7 = (longlong *)FUN_181244160();
LAB_18052520e:
    iVar6 = (**(code **)(*(longlong *)*plVar7 + 8))((longlong *)*plVar7,plVar7 + 1);
    iVar5 = 0x3fffffff;
    if (0 < iVar6) {
      iVar5 = iVar6;
    }
    bVar11 = SBORROW4(iVar8,iVar5);
    bVar10 = iVar8 - iVar5 < 0;
    if (iVar8 == iVar5) {
      iVar5 = *(int *)(lVar3 + 0x24);
      iVar8 = *(int *)(lVar2 + 0x24);
      bVar11 = SBORROW4(iVar5,iVar8);
      bVar10 = iVar5 - iVar8 < 0;
      if (iVar5 == iVar8) {
        bVar11 = SBORROW4(*(int *)(lVar3 + 0x20),*(int *)(lVar2 + 0x20));
        bVar10 = *(int *)(lVar3 + 0x20) - *(int *)(lVar2 + 0x20) < 0;
      }
    }
    if (bVar11 != bVar10) {
      param_1 = param_1 + lVar9 * 8 + 8;
      lVar9 = lVar4 + (-1 - lVar9);
    }
  } while( true );
}



############ FUN_ 180523060 size=968 ############

void FUN_180523060(longlong *param_1,undefined8 param_2,longlong param_3)

{
  longlong *plVar1;
  longlong *plVar2;
  longlong lVar3;
  longlong lVar4;
  int iVar5;
  int iVar6;
  longlong *plVar7;
  longlong lVar8;
  longlong *plVar9;
  int iVar10;
  longlong *_Src;
  longlong *plVar11;
  size_t _Size;
  longlong *plVar12;
  bool bVar13;
  bool bVar14;
  
  if (0x20 < param_3) {
    plVar1 = (longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8);
    lVar8 = (param_3 - 0x21U >> 5) + 1;
    _Src = param_1;
    do {
      param_1 = _Src + 0x20;
      if ((_Src != param_1) && (plVar12 = _Src + 1, plVar12 != param_1)) {
        _Size = (longlong)plVar12 - (longlong)_Src;
LAB_1805230f5:
        lVar3 = *plVar12;
        lVar4 = *_Src;
        plVar7 = *(longlong **)(lVar3 + 0x90);
        plVar9 = plVar7 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
        for (; plVar7 != plVar9; plVar7 = plVar7 + 3) {
          if (*plVar7 == DAT_182673c28) {
            plVar7 = plVar7 + 1;
            if (plVar7 != (longlong *)0x0) goto LAB_180523144;
            break;
          }
        }
        plVar7 = (longlong *)FUN_181244160();
LAB_180523144:
        iVar5 = (**(code **)(*(longlong *)*plVar7 + 8))((longlong *)*plVar7,plVar7 + 1);
        plVar7 = *(longlong **)(lVar4 + 0x90);
        iVar10 = 0x3fffffff;
        if (0 < iVar5) {
          iVar10 = iVar5;
        }
        plVar9 = plVar7 + (longlong)*(int *)(lVar4 + 0x9c) * 3;
        for (; plVar7 != plVar9; plVar7 = plVar7 + 3) {
          if (*plVar7 == DAT_182673c28) {
            plVar7 = plVar7 + 1;
            if (plVar7 != (longlong *)0x0) goto LAB_1805231a3;
            break;
          }
        }
        plVar7 = (longlong *)FUN_181244160();
LAB_1805231a3:
        iVar6 = (**(code **)(*(longlong *)*plVar7 + 8))((longlong *)*plVar7,plVar7 + 1);
        iVar5 = 0x3fffffff;
        if (0 < iVar6) {
          iVar5 = iVar6;
        }
        bVar14 = SBORROW4(iVar10,iVar5);
        bVar13 = iVar10 - iVar5 < 0;
        if (iVar10 == iVar5) {
          iVar5 = *(int *)(lVar3 + 0x24);
          iVar10 = *(int *)(lVar4 + 0x24);
          bVar14 = SBORROW4(iVar5,iVar10);
          bVar13 = iVar5 - iVar10 < 0;
          if (iVar5 == iVar10) {
            bVar14 = SBORROW4(*(int *)(lVar3 + 0x20),*(int *)(lVar4 + 0x20));
            bVar13 = *(int *)(lVar3 + 0x20) - *(int *)(lVar4 + 0x20) < 0;
          }
        }
        plVar7 = plVar12;
        if (bVar14 == bVar13) {
          do {
            plVar9 = *(longlong **)(lVar3 + 0x90);
            plVar11 = plVar7 + -1;
            lVar4 = *plVar11;
            plVar2 = plVar9 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
            for (; plVar9 != plVar2; plVar9 = plVar9 + 3) {
              if (*plVar9 == DAT_182673c28) {
                plVar9 = plVar9 + 1;
                if (plVar9 != (longlong *)0x0) goto LAB_180523269;
                break;
              }
            }
            if ((*(int *)(*plVar1 + 0xc) < DAT_18267af7c) &&
               (_Init_thread_header(&DAT_18267af7c), DAT_18267af7c == -1)) {
              DAT_18267af40 = &PTR_vftable_18262b558;
              atexit((_func_5014 *)&LAB_181a4a6e0);
              _Init_thread_footer(&DAT_18267af7c);
            }
            plVar9 = (longlong *)&DAT_18267af40;
LAB_180523269:
            iVar5 = (**(code **)(*(longlong *)*plVar9 + 8))((longlong *)*plVar9,plVar9 + 1);
            plVar9 = *(longlong **)(lVar4 + 0x90);
            iVar10 = 0x3fffffff;
            if (0 < iVar5) {
              iVar10 = iVar5;
            }
            plVar2 = plVar9 + (longlong)*(int *)(lVar4 + 0x9c) * 3;
            for (; plVar9 != plVar2; plVar9 = plVar9 + 3) {
              if (*plVar9 == DAT_182673c28) {
                plVar9 = plVar9 + 1;
                if (plVar9 != (longlong *)0x0) goto LAB_1805232d8;
                break;
              }
            }
            if ((*(int *)(*plVar1 + 0xc) < DAT_18267af7c) &&
               (_Init_thread_header(&DAT_18267af7c), DAT_18267af7c == -1)) {
              DAT_18267af40 = &PTR_vftable_18262b558;
              atexit((_func_5014 *)&LAB_181a4a6e0);
              _Init_thread_footer(&DAT_18267af7c);
            }
            plVar9 = (longlong *)&DAT_18267af40;
LAB_1805232d8:
            iVar6 = (**(code **)(*(longlong *)*plVar9 + 8))((longlong *)*plVar9,plVar9 + 1);
            iVar5 = 0x3fffffff;
            if (0 < iVar6) {
              iVar5 = iVar6;
            }
            bVar14 = SBORROW4(iVar10,iVar5);
            bVar13 = iVar10 - iVar5 < 0;
            if (iVar10 == iVar5) {
              iVar5 = *(int *)(lVar3 + 0x24);
              iVar10 = *(int *)(lVar4 + 0x24);
              bVar14 = SBORROW4(iVar5,iVar10);
              bVar13 = iVar5 - iVar10 < 0;
              if (iVar5 == iVar10) {
                bVar14 = SBORROW4(*(int *)(lVar3 + 0x20),*(int *)(lVar4 + 0x20));
                bVar13 = *(int *)(lVar3 + 0x20) - *(int *)(lVar4 + 0x20) < 0;
              }
            }
            if (bVar14 == bVar13) goto LAB_180523316;
            *plVar7 = *plVar11;
            plVar7 = plVar11;
          } while( true );
        }
        memmove((void *)((longlong)plVar12 + (8 - _Size)),_Src,_Size);
        *_Src = lVar3;
        goto LAB_18052332e;
      }
LAB_180523356:
      lVar8 = lVar8 + -1;
      _Src = param_1;
    } while (lVar8 != 0);
  }
  FUN_180520650(param_1,param_2);
  return;
LAB_180523316:
  *plVar7 = lVar3;
LAB_18052332e:
  plVar12 = plVar12 + 1;
  _Size = _Size + 8;
  if (plVar12 == param_1) goto LAB_180523356;
  goto LAB_1805230f5;
}



############ FUN_ 180523430 size=790 ############

void FUN_180523430(longlong *param_1,longlong param_2,longlong *param_3,longlong param_4,
                  longlong *param_5)

{
  longlong *plVar1;
  longlong *plVar2;
  longlong *plVar3;
  longlong lVar4;
  longlong lVar5;
  int iVar6;
  int iVar7;
  longlong *plVar8;
  longlong *plVar9;
  longlong *plVar10;
  size_t _Size;
  int iVar11;
  bool bVar12;
  bool bVar13;
  longlong local_res20;
  
  local_res20 = param_4;
  if (param_4 < (longlong)param_5) {
    plVar1 = (longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8);
    plVar9 = param_5;
    do {
      param_5 = (longlong *)((longlong)plVar9 - local_res20);
      plVar2 = param_1 + local_res20;
      plVar8 = (longlong *)&param_5;
      if (local_res20 <= (longlong)param_5) {
        plVar8 = &local_res20;
      }
      plVar9 = (longlong *)((longlong)param_5 - *plVar8);
      param_5 = plVar2 + *plVar8;
      plVar8 = plVar2;
LAB_1805234d0:
      do {
        lVar4 = *plVar8;
        lVar5 = *param_1;
        plVar10 = *(longlong **)(lVar4 + 0x90);
        plVar3 = plVar10 + (longlong)*(int *)(lVar4 + 0x9c) * 3;
        for (; plVar10 != plVar3; plVar10 = plVar10 + 3) {
          if (*plVar10 == DAT_182673c28) {
            plVar10 = plVar10 + 1;
            if (plVar10 != (longlong *)0x0) goto LAB_18052353b;
            break;
          }
        }
        if ((*(int *)(*plVar1 + 0xc) < DAT_18267af7c) &&
           (_Init_thread_header(&DAT_18267af7c), DAT_18267af7c == -1)) {
          DAT_18267af40 = &PTR_vftable_18262b558;
          atexit((_func_5014 *)&LAB_181a4a6e0);
          _Init_thread_footer(&DAT_18267af7c);
        }
        plVar10 = (longlong *)&DAT_18267af40;
LAB_18052353b:
        iVar6 = (**(code **)(*(longlong *)*plVar10 + 8))((longlong *)*plVar10,plVar10 + 1);
        plVar10 = *(longlong **)(lVar5 + 0x90);
        iVar11 = 0x3fffffff;
        if (0 < iVar6) {
          iVar11 = iVar6;
        }
        plVar3 = plVar10 + (longlong)*(int *)(lVar5 + 0x9c) * 3;
        for (; plVar10 != plVar3; plVar10 = plVar10 + 3) {
          if (*plVar10 == DAT_182673c28) {
            plVar10 = plVar10 + 1;
            if (plVar10 != (longlong *)0x0) goto LAB_1805235ae;
            break;
          }
        }
        if ((*(int *)(*plVar1 + 0xc) < DAT_18267af7c) &&
           (_Init_thread_header(&DAT_18267af7c), DAT_18267af7c == -1)) {
          DAT_18267af40 = &PTR_vftable_18262b558;
          atexit((_func_5014 *)&LAB_181a4a6e0);
          _Init_thread_footer(&DAT_18267af7c);
        }
        plVar10 = (longlong *)&DAT_18267af40;
LAB_1805235ae:
        iVar7 = (**(code **)(*(longlong *)*plVar10 + 8))((longlong *)*plVar10,plVar10 + 1);
        iVar6 = 0x3fffffff;
        if (0 < iVar7) {
          iVar6 = iVar7;
        }
        bVar13 = SBORROW4(iVar11,iVar6);
        bVar12 = iVar11 - iVar6 < 0;
        if (iVar11 == iVar6) {
          iVar6 = *(int *)(lVar4 + 0x24);
          iVar11 = *(int *)(lVar5 + 0x24);
          bVar13 = SBORROW4(iVar6,iVar11);
          bVar12 = iVar6 - iVar11 < 0;
          if (iVar6 == iVar11) {
            bVar13 = SBORROW4(*(int *)(lVar4 + 0x20),*(int *)(lVar5 + 0x20));
            bVar12 = *(int *)(lVar4 + 0x20) - *(int *)(lVar5 + 0x20) < 0;
          }
        }
        if (bVar13 != bVar12) {
          lVar4 = *plVar8;
          plVar8 = plVar8 + 1;
          *param_3 = lVar4;
          param_3 = param_3 + 1;
          if (plVar8 == param_5) {
            memmove(param_3,param_1,(longlong)plVar2 - (longlong)param_1);
            param_3 = (longlong *)((longlong)param_3 + ((longlong)plVar2 - (longlong)param_1));
            goto LAB_180523663;
          }
          goto LAB_1805234d0;
        }
        lVar4 = *param_1;
        param_1 = param_1 + 1;
        *param_3 = lVar4;
        param_3 = param_3 + 1;
      } while (param_1 != plVar2);
      _Size = (longlong)param_5 - (longlong)plVar8;
      memmove(param_3,plVar8,_Size);
      param_3 = (longlong *)((longlong)param_3 + _Size);
LAB_180523663:
      param_1 = param_5;
    } while (local_res20 < (longlong)plVar9);
  }
  memmove(param_3,param_1,param_2 - (longlong)param_1);
  return;
}



############ FUN_ 180523f40 size=379 ############

longlong FUN_180523f40(longlong *param_1,longlong *param_2,longlong *param_3,longlong *param_4)

{
  longlong *plVar1;
  longlong lVar2;
  longlong lVar3;
  int iVar4;
  int iVar5;
  longlong *plVar6;
  longlong *_Src;
  int iVar7;
  bool bVar8;
  bool bVar9;
  
  _Src = param_2;
  do {
    lVar2 = *_Src;
    lVar3 = *param_1;
    plVar6 = *(longlong **)(lVar2 + 0x90);
    plVar1 = plVar6 + (longlong)*(int *)(lVar2 + 0x9c) * 3;
    for (; plVar6 != plVar1; plVar6 = plVar6 + 3) {
      if (*plVar6 == DAT_182673c28) {
        plVar6 = plVar6 + 1;
        if (plVar6 != (longlong *)0x0) goto LAB_180523fb6;
        break;
      }
    }
    plVar6 = (longlong *)FUN_181244160();
LAB_180523fb6:
    iVar4 = (**(code **)(*(longlong *)*plVar6 + 8))((longlong *)*plVar6,plVar6 + 1);
    plVar6 = *(longlong **)(lVar3 + 0x90);
    iVar7 = 0x3fffffff;
    if (0 < iVar4) {
      iVar7 = iVar4;
    }
    plVar1 = plVar6 + (longlong)*(int *)(lVar3 + 0x9c) * 3;
    for (; plVar6 != plVar1; plVar6 = plVar6 + 3) {
      if (*plVar6 == DAT_182673c28) {
        plVar6 = plVar6 + 1;
        if (plVar6 != (longlong *)0x0) goto LAB_180524010;
        break;
      }
    }
    plVar6 = (longlong *)FUN_181244160();
LAB_180524010:
    iVar5 = (**(code **)(*(longlong *)*plVar6 + 8))((longlong *)*plVar6,plVar6 + 1);
    iVar4 = 0x3fffffff;
    if (0 < iVar5) {
      iVar4 = iVar5;
    }
    bVar9 = SBORROW4(iVar7,iVar4);
    bVar8 = iVar7 - iVar4 < 0;
    if (iVar7 == iVar4) {
      iVar4 = *(int *)(lVar2 + 0x24);
      iVar7 = *(int *)(lVar3 + 0x24);
      bVar9 = SBORROW4(iVar4,iVar7);
      bVar8 = iVar4 - iVar7 < 0;
      if (iVar4 == iVar7) {
        bVar9 = SBORROW4(*(int *)(lVar2 + 0x20),*(int *)(lVar3 + 0x20));
        bVar8 = *(int *)(lVar2 + 0x20) - *(int *)(lVar3 + 0x20) < 0;
      }
    }
    if (bVar9 == bVar8) {
      lVar2 = *param_1;
      param_1 = param_1 + 1;
      *param_4 = lVar2;
      param_4 = param_4 + 1;
      if (param_1 == param_2) {
        memmove(param_4,_Src,(longlong)param_3 - (longlong)_Src);
        return (longlong)param_4 + ((longlong)param_3 - (longlong)_Src);
      }
    }
    else {
      lVar2 = *_Src;
      _Src = _Src + 1;
      *param_4 = lVar2;
      param_4 = param_4 + 1;
      if (_Src == param_3) {
        memmove(param_4,param_1,(longlong)param_2 - (longlong)param_1);
        return (longlong)param_4 + ((longlong)param_2 - (longlong)param_1);
      }
    }
  } while( true );
}



############ FUN_ 181343cc0 size=379 ############

void FUN_181343cc0(longlong param_1,longlong param_2,uint param_3)

{
  uint uVar1;
  int iVar2;
  longlong lVar3;
  longlong *plVar4;
  void *_Src;
  longlong *plVar5;
  
  lVar3 = *(longlong *)(param_2 + 0x18);
  if (lVar3 != param_1) {
    if (lVar3 == 0) {
      FUN_18134c310(param_2);
    }
    else {
      plVar5 = *(longlong **)(lVar3 + 0x40);
      for (plVar4 = plVar5; plVar4 != plVar5 + *(int *)(lVar3 + 0x4c); plVar4 = plVar4 + 1) {
        if (param_2 == *plVar4) {
          FUN_181343a90(lVar3,(longlong)plVar4 - (longlong)plVar5 >> 3,1);
          goto LAB_181343d47;
        }
      }
      FUN_181343a90(lVar3,0xffffffff,1);
    }
LAB_181343d47:
    *(longlong *)(param_2 + 0x18) = param_1;
    if ((*(byte *)(param_2 + 0xa8) & 2) != 0) {
      FUN_181342b10(param_2);
    }
    if ((*(byte *)(param_2 + 0xa9) & 1) == 0) {
      if (((int)param_3 < 0) || (*(int *)(param_1 + 0x4c) < (int)param_3)) {
        param_3 = *(uint *)(param_1 + 0x4c);
      }
      if (0 < (int)param_3) {
        lVar3 = (longlong)(int)param_3;
        plVar5 = (longlong *)(*(longlong *)(param_1 + 0x40) + -8 + lVar3 * 8);
        do {
          if ((*(byte *)(*plVar5 + 0xa9) & 1) == 0) break;
          param_3 = param_3 - 1;
          lVar3 = lVar3 + -1;
          plVar5 = plVar5 + -1;
        } while (0 < lVar3);
      }
    }
    iVar2 = *(int *)(param_1 + 0x4c) + 1;
    if (*(int *)(param_1 + 0x48) < iVar2) {
      FUN_18047cb30(param_1 + 0x40,*(int *)(param_1 + 0x4c) + 9 + iVar2 / 2 & 0xfffffff8);
    }
    uVar1 = *(uint *)(param_1 + 0x4c);
    if (param_3 < uVar1) {
      _Src = (void *)(*(longlong *)(param_1 + 0x40) + (longlong)(int)param_3 * 8);
      memmove((void *)((longlong)_Src + 8),_Src,(longlong)(int)(uVar1 - param_3) << 3);
      plVar5 = (longlong *)(*(longlong *)(param_1 + 0x40) + (longlong)(int)param_3 * 8);
    }
    else {
      plVar5 = (longlong *)(*(longlong *)(param_1 + 0x40) + (longlong)(int)uVar1 * 8);
    }
    *plVar5 = param_2;
    *(int *)(param_1 + 0x4c) = *(int *)(param_1 + 0x4c) + 1;
    FUN_181343670(param_2);
    FUN_1813437a0(param_1);
  }
  return;
}



############ FUN_ 1813450b0 size=95 ############

void FUN_1813450b0(longlong param_1,int param_2,int param_3)

{
  if (param_2 != param_3) {
    FUN_181342b10(*(undefined8 *)(*(longlong *)(param_1 + 0x40) + (longlong)param_2 * 8));
    FUN_18051b170(param_1 + 0x40,param_2,param_3);
    FUN_18133f790();
    FUN_1813437a0(param_1);
  }
  return;
}



############ FUN_ 181344f60 size=329 ############

void FUN_181344f60(longlong param_1,char param_2)

{
  int iVar1;
  longlong lVar2;
  bool bVar3;
  char cVar4;
  longlong *plVar5;
  longlong *plVar6;
  ulonglong uVar7;
  longlong lVar8;
  int iVar9;
  
  if ((*(byte *)(param_1 + 0xa8) & 1) != 0) {
    plVar5 = (longlong *)FUN_1812d2bd0();
    if (plVar5 == (longlong *)0x0) {
      return;
    }
    (**(code **)(*plVar5 + 0xb0))(plVar5,param_2);
    lVar2 = DAT_182673708;
    if (param_2 == '\0') {
      return;
    }
    for (; lVar2 != param_1; lVar2 = *(longlong *)(lVar2 + 0x18)) {
      if (lVar2 == 0) {
        bVar3 = false;
        goto LAB_181344fc9;
      }
    }
    bVar3 = true;
LAB_181344fc9:
    if (bVar3) {
      return;
    }
    goto LAB_18134508e;
  }
  lVar2 = *(longlong *)(param_1 + 0x18);
  if (lVar2 == 0) {
    return;
  }
  iVar1 = *(int *)(lVar2 + 0x4c);
  if (iVar1 < 1) {
    lVar8 = 0;
  }
  else {
    lVar8 = *(longlong *)(*(longlong *)(lVar2 + 0x40) + (longlong)(iVar1 + -1) * 8);
  }
  if (lVar8 != param_1) {
    plVar5 = *(longlong **)(lVar2 + 0x40);
    for (plVar6 = plVar5; plVar6 != plVar5 + iVar1; plVar6 = plVar6 + 1) {
      if (param_1 == *plVar6) {
        uVar7 = (longlong)plVar6 - (longlong)plVar5 >> 3;
        if (-1 < (int)uVar7) {
          iVar9 = -1;
          if (((*(byte *)(param_1 + 0xa9) & 1) != 0) || (iVar9 = iVar1 + -1, iVar9 < 1))
          goto LAB_18134506b;
          lVar8 = (longlong)iVar9;
          plVar5 = plVar5 + lVar8;
          goto LAB_181345050;
        }
        break;
      }
    }
  }
  goto LAB_181345075;
  while( true ) {
    iVar9 = iVar9 + -1;
    lVar8 = lVar8 + -1;
    plVar5 = plVar5 + -1;
    if (lVar8 < 1) break;
LAB_181345050:
    if ((*(byte *)(*plVar5 + 0xa9) & 1) == 0) break;
  }
LAB_18134506b:
  FUN_1813450b0(lVar2,uVar7 & 0xffffffff,iVar9);
LAB_181345075:
  if (param_2 == '\0') {
    return;
  }
  FUN_18133f490(param_1);
  cVar4 = FUN_181345240(param_1);
  if (cVar4 == '\0') {
    return;
  }
LAB_18134508e:
  FUN_18133ed60(param_1,2,1);
  return;
}



############ FUN_ 1805a7b20 size=198 ############

void FUN_1805a7b20(longlong param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  char cVar2;
  longlong *plVar3;
  longlong *local_res10;
  
  plVar3 = (longlong *)0x0;
  plVar1 = *(longlong **)(param_2 + 8);
  if (plVar1 != (longlong *)0x0) {
    plVar3 = (longlong *)
             (**(code **)(*plVar1 + 0x28))(plVar1,&local_res10,param_3,param_4,0xfffffffffffffffe);
    plVar3 = (longlong *)*plVar3;
    if (plVar3 != (longlong *)0x0) {
      (**(code **)(*plVar3 + 0x18))(plVar3);
    }
    if (local_res10 != (longlong *)0x0) {
      (**(code **)(*local_res10 + 0x20))();
    }
  }
  *(undefined8 *)(param_1 + 0x18) = *(undefined8 *)(param_2 + 0x18);
  *(undefined4 *)(param_1 + 0x20) = *(undefined4 *)(param_2 + 0x20);
  *(undefined8 *)(param_1 + 0x10) = *(undefined8 *)(param_2 + 0x10);
  if ((*(longlong **)(param_1 + 8) != (longlong *)0x0) &&
     (cVar2 = (**(code **)(**(longlong **)(param_1 + 8) + 0x20))(), cVar2 != '\0')) {
    *(undefined8 *)(param_1 + 8) = 0;
  }
  *(longlong **)(param_1 + 8) = plVar3;
  if (plVar3 != (longlong *)0x0) {
    (**(code **)(*plVar3 + 0x18))(plVar3);
    (**(code **)(*plVar3 + 0x20))(plVar3);
  }
  return;
}



############ FUN_ 1805a4470 size=192 ############

undefined8 * FUN_1805a4470(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::io::bad_format_string::vftable;
  param_1[3] = *(undefined8 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[5] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x30);
  param_1[6] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[7] = *(undefined8 *)(param_2 + 0x38);
  param_1[8] = *(undefined8 *)(param_2 + 0x40);
  *(undefined4 *)(param_1 + 9) = *(undefined4 *)(param_2 + 0x48);
  *param_1 = boost::exception_detail::error_info_injector<boost::io::bad_format_string>::vftable;
  param_1[5] = boost::exception_detail::error_info_injector<boost::io::bad_format_string>::vftable;
  return param_1;
}



############ FUN_ 1805a7c80 size=66 ############

void FUN_1805a7c80(undefined8 param_1,void *param_2,longlong param_3)

{
  void *_Memory;
  
  _Memory = param_2;
  if ((0xfff < (ulonglong)(param_3 * 0x90)) &&
     (_Memory = *(void **)((longlong)param_2 + -8),
     0x1f < (ulonglong)((longlong)param_2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805a0fd0 size=371 ############

void FUN_1805a0fd0(longlong *param_1,longlong *param_2,undefined4 *param_3,undefined8 param_4)

{
  longlong *plVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong *plVar4;
  longlong *plVar5;
  undefined8 uVar6;
  
  if (param_1 != param_2) {
    uVar6 = 0xfffffffffffffffe;
    plVar1 = (longlong *)(param_3 + 2);
    plVar2 = (longlong *)(param_3 + 10);
    plVar5 = param_1 + 0xf;
    do {
      *(undefined4 *)(plVar5 + -0xf) = *param_3;
      if (plVar5 + -0xe != plVar1) {
        plVar4 = plVar1;
        if (0xf < *(ulonglong *)(param_3 + 8)) {
          plVar4 = (longlong *)*plVar1;
        }
        FUN_1805a6cb0(plVar5 + -0xe,plVar4,*(undefined8 *)(param_3 + 6),param_4,uVar6);
      }
      if (plVar5 + -10 != plVar2) {
        plVar4 = plVar2;
        if (0xf < *(ulonglong *)(param_3 + 0x10)) {
          plVar4 = (longlong *)*plVar2;
        }
        FUN_1805a6cb0(plVar5 + -10,plVar4,*(undefined8 *)(param_3 + 0xe),param_4,uVar6);
      }
      plVar5[-6] = *(longlong *)(param_3 + 0x12);
      plVar5[-5] = *(longlong *)(param_3 + 0x14);
      *(undefined1 *)(plVar5 + -4) = *(undefined1 *)(param_3 + 0x16);
      *(undefined4 *)((longlong)plVar5 + -0x1c) = param_3[0x17];
      *(undefined4 *)(plVar5 + -3) = param_3[0x18];
      *(undefined4 *)((longlong)plVar5 + -0x14) = param_3[0x19];
      if ((char)plVar5[-2] == '\0') {
        if (*(char *)(param_3 + 0x1a) != '\0') {
          plVar4 = *(longlong **)(param_3 + 0x1e);
          *plVar5 = (longlong)plVar4;
          (**(code **)(*plVar4 + 8))();
          *(undefined1 *)(plVar5 + -2) = 1;
        }
      }
      else if (*(char *)(param_3 + 0x1a) == '\0') {
        if ((char)plVar5[-2] != '\0') {
          if (((longlong *)*plVar5 != (longlong *)0x0) &&
             (puVar3 = (undefined8 *)(**(code **)(*(longlong *)*plVar5 + 0x10))(),
             puVar3 != (undefined8 *)0x0)) {
            (**(code **)*puVar3)(puVar3,1);
          }
          *(undefined1 *)(plVar5 + -2) = 0;
        }
      }
      else if ((longlong *)*plVar5 != *(longlong **)(param_3 + 0x1e)) {
        puVar3 = (undefined8 *)(**(code **)(*(longlong *)*plVar5 + 0x10))();
        if (puVar3 != (undefined8 *)0x0) {
          (**(code **)*puVar3)(puVar3,1);
        }
        plVar4 = *(longlong **)(param_3 + 0x1e);
        *plVar5 = (longlong)plVar4;
        (**(code **)(*plVar4 + 8))();
      }
      plVar5[1] = *(longlong *)(param_3 + 0x20);
      *(undefined4 *)(plVar5 + 2) = param_3[0x22];
      plVar4 = plVar5 + 3;
      plVar5 = plVar5 + 0x12;
    } while (plVar4 != param_2);
  }
  return;
}



############ FUN_ 1805a7d00 size=708 ############

undefined8 FUN_1805a7d00(longlong *param_1,undefined8 param_2,longlong *param_3,longlong *param_4)

{
  void *_Dst;
  uint *puVar1;
  void *_Src;
  code *pcVar2;
  bool bVar3;
  uint uVar4;
  longlong lVar5;
  undefined8 uVar6;
  longlong lVar7;
  ulonglong uVar8;
  uint *puVar9;
  uint *puVar10;
  ulonglong uVar11;
  ulonglong uStack_50;
  ulonglong uStack_40;
  uint *local_38;
  ulonglong uStack_30;
  
  puVar1 = (uint *)*param_1;
  uVar11 = param_1[3];
  uStack_50 = 0;
  puVar10 = puVar1;
  if (uVar11 != 0) {
    uVar8 = (*param_3 - (longlong)puVar1 >> 2) * 0x20 + param_3[1];
    if (((longlong)uVar8 < 0) && (uVar8 != 0)) {
      lVar5 = (-uVar8 - 1 >> 5) * -4 + -4;
    }
    else {
      lVar5 = (uVar8 >> 5) * 4;
    }
    puVar10 = (uint *)((longlong)puVar1 + lVar5);
    uStack_50 = (ulonglong)((uint)uVar8 & 0x1f);
  }
  uStack_40 = 0;
  local_38 = puVar1;
  if (uVar11 != 0) {
    uVar8 = (*param_4 - (longlong)puVar1 >> 2) * 0x20 + param_4[1];
    if (((longlong)uVar8 < 0) && (uVar8 != 0)) {
      lVar5 = (-uVar8 - 1 >> 5) * -4 + -4;
    }
    else {
      lVar5 = (uVar8 >> 5) * 4;
    }
    local_38 = (uint *)((longlong)puVar1 + lVar5);
    uStack_40 = (ulonglong)((uint)uVar8 & 0x1f);
  }
  lVar5 = ((longlong)puVar10 - (longlong)puVar1 >> 2) * 0x20 + uStack_50;
  if ((puVar10 == local_38) && (uStack_50 == uStack_40)) {
    bVar3 = true;
  }
  else {
    bVar3 = false;
  }
  if (!bVar3) {
    if (((longlong)uVar11 < 0) && (uVar11 != 0)) {
      lVar7 = (-uVar11 - 1 >> 5) * -4 + -4;
    }
    else {
      lVar7 = (uVar11 >> 5) * 4;
    }
    uStack_30 = uStack_40;
    puVar9 = local_38;
    while( true ) {
      if ((puVar9 == (uint *)((longlong)puVar1 + lVar7)) && (uStack_40 == ((uint)uVar11 & 0x1f))) {
        bVar3 = true;
      }
      else {
        bVar3 = false;
      }
      if (bVar3) break;
      if ((*puVar9 & 1 << ((byte)uStack_40 & 0x1f)) == 0) {
        uVar4 = *puVar10 & ~(1 << ((uint)uStack_50 & 0x1f));
      }
      else {
        uVar4 = *puVar10 | 1 << ((uint)uStack_50 & 0x1f);
      }
      *puVar10 = uVar4;
      if (uStack_50 < 0x1f) {
        uStack_50 = uStack_50 + 1;
      }
      else {
        uStack_50 = 0;
        puVar10 = puVar10 + 1;
      }
      if (uStack_40 < 0x1f) {
        uStack_40 = uStack_40 + 1;
      }
      else {
        uStack_40 = 0;
        puVar9 = puVar9 + 1;
      }
    }
    lVar7 = *param_1;
    uStack_50 = ((longlong)puVar10 - lVar7 >> 2) * 0x20 + uStack_50;
    if (0x7fffffffffffffff < uStack_50) {
      FUN_1805a69a0(param_1);
      pcVar2 = (code *)swi(3);
      uVar6 = (*pcVar2)();
      return uVar6;
    }
    _Src = (void *)param_1[1];
    uVar11 = uStack_50 + 0x1f >> 5;
    if ((uVar11 < (ulonglong)((longlong)_Src - lVar7 >> 2)) &&
       (_Dst = (void *)(lVar7 + uVar11 * 4), _Dst != _Src)) {
      memmove(_Dst,_Src,0);
      param_1[1] = (longlong)_Dst;
    }
    param_1[3] = uStack_50;
    if ((uStack_50 & 0x1f) != 0) {
      puVar1 = (uint *)(*param_1 + -4 + uVar11 * 4);
      *puVar1 = *puVar1 & (1 << ((byte)uStack_50 & 0x1f)) - 1U;
    }
  }
  local_38 = (uint *)*param_1;
  uStack_30 = 0;
  FUN_1805a5a90(&local_38,param_2,lVar5);
  return param_2;
}



############ FUN_ 1805a66d0 size=568 ############

ulonglong FUN_1805a66d0(longlong *param_1,longlong *param_2,ulonglong param_3)

{
  code *pcVar1;
  bool bVar2;
  longlong lVar3;
  longlong lVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  ulonglong uVar7;
  undefined4 local_res8 [2];
  uint *local_48;
  uint *local_38;
  longlong *local_28;
  undefined4 *puStack_20;
  
  uVar7 = (*param_2 - *param_1 >> 2) * 0x20 + param_2[1];
  if (param_3 != 0) {
    if (0x7fffffffffffffffU - param_1[3] < param_3) {
      FUN_1805a69a0(param_1);
      pcVar1 = (code *)swi(3);
      uVar7 = (*pcVar1)();
      return uVar7;
    }
    puStack_20 = local_res8;
    local_res8[0] = 0;
    local_28 = param_1;
    FUN_1805a19c0(param_1,param_3 + 0x1f + param_1[3] >> 5,&local_28);
    uVar6 = param_1[3];
    if (uVar6 == 0) {
      param_1[3] = param_3;
    }
    else {
      if (((longlong)uVar6 < 0) && (uVar6 != 0)) {
        lVar3 = (-uVar6 - 1 >> 5) * -4 + -4;
      }
      else {
        lVar3 = (uVar6 >> 5) * 4;
      }
      local_38 = (uint *)(*param_1 + lVar3);
      uVar5 = (ulonglong)((uint)uVar6 & 0x1f);
      uVar6 = uVar6 + param_3;
      param_1[3] = uVar6;
      lVar3 = *param_1;
      if (((longlong)uVar6 < 0) && (uVar6 != 0)) {
        lVar4 = (-uVar6 - 1 >> 5) * -4 + -4;
      }
      else {
        lVar4 = (uVar6 >> 5) * 4;
      }
      local_48 = (uint *)(lVar3 + lVar4);
      uVar6 = (ulonglong)((uint)uVar6 & 0x1f);
      if (((longlong)uVar7 < 0) && (uVar7 != 0)) {
        lVar4 = (-uVar7 - 1 >> 5) * -4 + -4;
      }
      else {
        lVar4 = (uVar7 >> 5) * 4;
      }
      while( true ) {
        if (((uint *)(lVar3 + lVar4) != local_38) || (bVar2 = true, ((uint)uVar7 & 0x1f) != uVar5))
        {
          bVar2 = false;
        }
        if (bVar2) break;
        if (uVar5 == 0) {
          uVar5 = 0x1f;
          local_38 = local_38 + -1;
        }
        else {
          uVar5 = uVar5 - 1;
        }
        if (uVar6 == 0) {
          uVar6 = 0x1f;
          local_48 = local_48 + -1;
        }
        else {
          uVar6 = uVar6 - 1;
        }
        if ((*local_38 & 1 << ((byte)uVar5 & 0x1f)) == 0) {
          *local_48 = *local_48 & ~(1 << ((uint)uVar6 & 0x1f));
        }
        else {
          *local_48 = *local_48 | 1 << ((uint)uVar6 & 0x1f);
        }
      }
    }
  }
  return uVar7;
}



############ FUN_ 1805a4670 size=192 ############

undefined8 * FUN_1805a4670(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::io::too_few_args::vftable;
  param_1[3] = *(undefined8 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[5] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x30);
  param_1[6] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[7] = *(undefined8 *)(param_2 + 0x38);
  param_1[8] = *(undefined8 *)(param_2 + 0x40);
  *(undefined4 *)(param_1 + 9) = *(undefined4 *)(param_2 + 0x48);
  *param_1 = boost::exception_detail::error_info_injector<boost::io::too_few_args>::vftable;
  param_1[5] = boost::exception_detail::error_info_injector<boost::io::too_few_args>::vftable;
  return param_1;
}



############ FUN_ 180573bf0 size=312 ############

undefined8 *
FUN_180573bf0(longlong *param_1,undefined8 *param_2,undefined8 param_3,ulonglong *param_4,
             undefined8 param_5)

{
  char cVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  bool bVar5;
  undefined1 local_res8 [8];
  
  puVar3 = (undefined8 *)*param_1;
  bVar5 = true;
  puVar4 = puVar3;
  if (*(char *)((longlong)puVar3[1] + 0x19) == '\0') {
    puVar2 = (undefined8 *)puVar3[1];
    do {
      puVar4 = puVar2;
      bVar5 = *param_4 < (ulonglong)puVar4[4];
      if (bVar5) {
        puVar2 = (undefined8 *)*puVar4;
      }
      else {
        puVar2 = (undefined8 *)puVar4[2];
      }
    } while (*(char *)((longlong)puVar2 + 0x19) == '\0');
  }
  if (bVar5) {
    if (puVar4 == (undefined8 *)*puVar3) {
      puVar3 = (undefined8 *)FUN_1805739c0(param_1,local_res8,1);
      *param_2 = *puVar3;
      *(undefined1 *)(param_2 + 1) = 1;
      return param_2;
    }
    if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
      puVar3 = (undefined8 *)*puVar4;
      if (*(char *)((longlong)puVar3 + 0x19) == '\0') {
        cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
        puVar4 = puVar3;
        puVar3 = (undefined8 *)puVar3[2];
        while (cVar1 == '\0') {
          cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
          puVar4 = puVar3;
          puVar3 = (undefined8 *)puVar3[2];
        }
      }
      else {
        cVar1 = *(char *)((longlong)puVar4[1] + 0x19);
        puVar3 = (undefined8 *)puVar4[1];
        while ((puVar2 = puVar3, cVar1 == '\0' && (puVar4 == (undefined8 *)*puVar2))) {
          cVar1 = *(char *)((longlong)puVar2[1] + 0x19);
          puVar3 = (undefined8 *)puVar2[1];
          puVar4 = puVar2;
        }
        if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
          puVar4 = puVar2;
        }
      }
    }
    else {
      puVar4 = (undefined8 *)puVar4[2];
    }
  }
  if ((ulonglong)puVar4[4] < *param_4) {
    puVar3 = (undefined8 *)FUN_1805739c0(param_1,local_res8);
    *param_2 = *puVar3;
    *(undefined1 *)(param_2 + 1) = 1;
  }
  else {
    FUN_1805737f0(param_1,param_5);
    *param_2 = puVar4;
    *(undefined1 *)(param_2 + 1) = 0;
  }
  return param_2;
}



############ FUN_ 1805739c0 size=545 ############

undefined8 *
FUN_1805739c0(longlong *param_1,undefined8 *param_2,char param_3,undefined8 *param_4,
             undefined8 param_5,longlong *param_6)

{
  char cVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  
  if (0x492492492492490 < (ulonglong)param_1[1]) {
    FUN_1805737f0(0x492492492492491,param_6);
                    /* WARNING: Subroutine does not return */
    std::_Xlength_error("map/set<T> too long");
  }
  param_1[1] = param_1[1] + 1;
  param_6[1] = (longlong)param_4;
  if (param_4 == (undefined8 *)*param_1) {
    ((undefined8 *)*param_1)[1] = param_6;
    *(longlong **)*param_1 = param_6;
    lVar4 = *param_1;
  }
  else {
    if (param_3 != '\0') {
      *param_4 = param_6;
      if (param_4 == *(undefined8 **)*param_1) {
        *(longlong **)*param_1 = param_6;
      }
      goto LAB_180573a44;
    }
    param_4[2] = param_6;
    lVar4 = *param_1;
    if (param_4 != *(undefined8 **)(lVar4 + 0x10)) goto LAB_180573a44;
  }
  *(longlong **)(lVar4 + 0x10) = param_6;
LAB_180573a44:
  cVar1 = *(char *)(param_6[1] + 0x18);
  plVar7 = param_6;
  do {
    if (cVar1 != '\0') {
      lVar4 = *param_1;
      *param_2 = plVar7;
      *(undefined1 *)(*(longlong *)(lVar4 + 8) + 0x18) = 1;
      return param_2;
    }
    plVar5 = (longlong *)param_6[1];
    plVar6 = *(longlong **)plVar5[1];
    if (plVar5 == plVar6) {
      lVar4 = ((longlong *)plVar5[1])[2];
      if (*(char *)(lVar4 + 0x18) == '\0') {
        *(undefined1 *)(plVar5 + 3) = 1;
        *(undefined1 *)(lVar4 + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        param_6 = *(longlong **)(param_6[1] + 8);
      }
      else {
        if (param_6 == (longlong *)plVar5[2]) {
          FUN_18047e230(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)*plVar5;
        *plVar5 = plVar6[2];
        if (*(char *)(plVar6[2] + 0x19) == '\0') {
          *(longlong **)(plVar6[2] + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
          plVar6[2] = (longlong)plVar5;
        }
        else {
          plVar2 = (longlong *)plVar5[1];
          if (plVar5 == (longlong *)plVar2[2]) {
            plVar2[2] = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
          else {
            *plVar2 = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
        }
LAB_180573bb9:
        plVar5[1] = (longlong)plVar6;
      }
    }
    else {
      if ((char)plVar6[3] != '\0') {
        if (param_6 == (longlong *)*plVar5) {
          FUN_18047e1d0(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)plVar5[2];
        plVar5[2] = *plVar6;
        if (*(char *)(*plVar6 + 0x19) == '\0') {
          *(longlong **)(*plVar6 + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
        }
        else {
          puVar3 = (undefined8 *)plVar5[1];
          if (plVar5 == (longlong *)*puVar3) {
            *puVar3 = plVar6;
          }
          else {
            puVar3[2] = plVar6;
          }
        }
        *plVar6 = (longlong)plVar5;
        goto LAB_180573bb9;
      }
      *(undefined1 *)(plVar5 + 3) = 1;
      *(undefined1 *)(plVar6 + 3) = 1;
      *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
      param_6 = *(longlong **)(param_6[1] + 8);
    }
    cVar1 = *(char *)(param_6[1] + 0x18);
  } while( true );
}



############ FUN_ 180489cf0 size=36 ############

void FUN_180489cf0(void)

{
  longlong lVar1;
  
  lVar1 = FUN_180480500(0x68);
  *(longlong *)lVar1 = lVar1;
  *(longlong *)(lVar1 + 8) = lVar1;
  *(longlong *)(lVar1 + 0x10) = lVar1;
  *(undefined2 *)(lVar1 + 0x18) = 0x101;
  return;
}



############ FUN_ 180573760 size=45 ############

void FUN_180573760(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_180480500(0x68);
  *puVar1 = *param_1;
  puVar1[1] = *param_1;
  puVar1[2] = *param_1;
  return;
}



############ FUN_ 180573d30 size=545 ############

undefined8 *
FUN_180573d30(longlong *param_1,undefined8 *param_2,char param_3,undefined8 *param_4,
             undefined8 param_5,longlong *param_6)

{
  char cVar1;
  longlong *plVar2;
  undefined8 *puVar3;
  longlong lVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  
  if (0x276276276276274 < (ulonglong)param_1[1]) {
    FUN_180573790(0x276276276276275,param_6);
                    /* WARNING: Subroutine does not return */
    std::_Xlength_error("map/set<T> too long");
  }
  param_1[1] = param_1[1] + 1;
  param_6[1] = (longlong)param_4;
  if (param_4 == (undefined8 *)*param_1) {
    ((undefined8 *)*param_1)[1] = param_6;
    *(longlong **)*param_1 = param_6;
    lVar4 = *param_1;
  }
  else {
    if (param_3 != '\0') {
      *param_4 = param_6;
      if (param_4 == *(undefined8 **)*param_1) {
        *(longlong **)*param_1 = param_6;
      }
      goto LAB_180573db4;
    }
    param_4[2] = param_6;
    lVar4 = *param_1;
    if (param_4 != *(undefined8 **)(lVar4 + 0x10)) goto LAB_180573db4;
  }
  *(longlong **)(lVar4 + 0x10) = param_6;
LAB_180573db4:
  cVar1 = *(char *)(param_6[1] + 0x18);
  plVar7 = param_6;
  do {
    if (cVar1 != '\0') {
      lVar4 = *param_1;
      *param_2 = plVar7;
      *(undefined1 *)(*(longlong *)(lVar4 + 8) + 0x18) = 1;
      return param_2;
    }
    plVar5 = (longlong *)param_6[1];
    plVar6 = *(longlong **)plVar5[1];
    if (plVar5 == plVar6) {
      lVar4 = ((longlong *)plVar5[1])[2];
      if (*(char *)(lVar4 + 0x18) == '\0') {
        *(undefined1 *)(plVar5 + 3) = 1;
        *(undefined1 *)(lVar4 + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        param_6 = *(longlong **)(param_6[1] + 8);
      }
      else {
        if (param_6 == (longlong *)plVar5[2]) {
          FUN_18047e230(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)*plVar5;
        *plVar5 = plVar6[2];
        if (*(char *)(plVar6[2] + 0x19) == '\0') {
          *(longlong **)(plVar6[2] + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
          plVar6[2] = (longlong)plVar5;
        }
        else {
          plVar2 = (longlong *)plVar5[1];
          if (plVar5 == (longlong *)plVar2[2]) {
            plVar2[2] = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
          else {
            *plVar2 = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
        }
LAB_180573f29:
        plVar5[1] = (longlong)plVar6;
      }
    }
    else {
      if ((char)plVar6[3] != '\0') {
        if (param_6 == (longlong *)*plVar5) {
          FUN_18047e1d0(param_1);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)plVar5[2];
        plVar5[2] = *plVar6;
        if (*(char *)(*plVar6 + 0x19) == '\0') {
          *(longlong **)(*plVar6 + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == *(longlong **)(*param_1 + 8)) {
          *(longlong **)(*param_1 + 8) = plVar6;
        }
        else {
          puVar3 = (undefined8 *)plVar5[1];
          if (plVar5 == (longlong *)*puVar3) {
            *puVar3 = plVar6;
          }
          else {
            puVar3[2] = plVar6;
          }
        }
        *plVar6 = (longlong)plVar5;
        goto LAB_180573f29;
      }
      *(undefined1 *)(plVar5 + 3) = 1;
      *(undefined1 *)(plVar6 + 3) = 1;
      *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
      param_6 = *(longlong **)(param_6[1] + 8);
    }
    cVar1 = *(char *)(param_6[1] + 0x18);
  } while( true );
}



############ FUN_ 180573f60 size=297 ############

undefined8 *
FUN_180573f60(longlong *param_1,undefined8 *param_2,undefined8 param_3,int *param_4,
             undefined8 param_5)

{
  char cVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  bool bVar5;
  undefined1 local_res8 [8];
  
  puVar3 = (undefined8 *)*param_1;
  bVar5 = true;
  puVar4 = puVar3;
  if (*(char *)((longlong)puVar3[1] + 0x19) == '\0') {
    puVar2 = (undefined8 *)puVar3[1];
    do {
      puVar4 = puVar2;
      bVar5 = *param_4 < *(int *)(puVar4 + 4);
      if (bVar5) {
        puVar2 = (undefined8 *)*puVar4;
      }
      else {
        puVar2 = (undefined8 *)puVar4[2];
      }
    } while (*(char *)((longlong)puVar2 + 0x19) == '\0');
  }
  if (bVar5) {
    if (puVar4 == (undefined8 *)*puVar3) {
      puVar3 = (undefined8 *)FUN_180573d30(param_1,local_res8,1);
      *param_2 = *puVar3;
      *(undefined1 *)(param_2 + 1) = 1;
      return param_2;
    }
    if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
      puVar3 = (undefined8 *)*puVar4;
      if (*(char *)((longlong)puVar3 + 0x19) == '\0') {
        cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
        puVar4 = puVar3;
        puVar3 = (undefined8 *)puVar3[2];
        while (cVar1 == '\0') {
          cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
          puVar4 = puVar3;
          puVar3 = (undefined8 *)puVar3[2];
        }
      }
      else {
        cVar1 = *(char *)((longlong)puVar4[1] + 0x19);
        puVar3 = (undefined8 *)puVar4[1];
        while ((puVar2 = puVar3, cVar1 == '\0' && (puVar4 == (undefined8 *)*puVar2))) {
          cVar1 = *(char *)((longlong)puVar2[1] + 0x19);
          puVar3 = (undefined8 *)puVar2[1];
          puVar4 = puVar2;
        }
        if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
          puVar4 = puVar2;
        }
      }
    }
    else {
      puVar4 = (undefined8 *)puVar4[2];
    }
  }
  if (*(int *)(puVar4 + 4) < *param_4) {
    puVar3 = (undefined8 *)FUN_180573d30(param_1,local_res8);
    *param_2 = *puVar3;
    *(undefined1 *)(param_2 + 1) = 1;
  }
  else {
    FUN_180573790(param_1,param_5);
    *param_2 = puVar4;
    *(undefined1 *)(param_2 + 1) = 0;
  }
  return param_2;
}



############ FUN_ 181252d20 size=368 ############

undefined8 * FUN_181252d20(undefined8 *param_1)

{
  undefined8 *puVar1;
  undefined8 *puVar2;
  longlong *plVar3;
  longlong lVar4;
  
  puVar1 = (undefined8 *)FUN_1811316e0(0x40);
  *(undefined4 *)(puVar1 + 1) = 0;
  *puVar1 = juce::Font::SharedFontInternal::vftable;
  if (DAT_182673a68 == (undefined8 *)0x0) {
    EnterCriticalSection((LPCRITICAL_SECTION)&DAT_182673a38);
    if ((DAT_182673a68 == (undefined8 *)0x0) && (DAT_18267aa70 == '\0')) {
      DAT_18267aa70 = 1;
      puVar2 = (undefined8 *)FUN_1811316e0(0x1a0);
      FUN_1812a7230(puVar2);
      *puVar2 = juce::TypefaceCache::vftable;
      puVar2[1] = 0;
      FUN_18122bd40(puVar2 + 2);
      puVar2[0x31] = 0;
      puVar2[0x32] = 0;
      puVar2[0x33] = 0;
      FUN_1804a2290(puVar2,10);
      DAT_18267aa70 = '\0';
      DAT_182673a68 = puVar2;
    }
    LeaveCriticalSection((LPCRITICAL_SECTION)&DAT_182673a38);
  }
  lVar4 = DAT_182673a68[1];
  puVar1[2] = lVar4;
  if (lVar4 != 0) {
    LOCK();
    *(int *)(lVar4 + 8) = *(int *)(lVar4 + 8) + 1;
    UNLOCK();
  }
  plVar3 = (longlong *)FUN_181252610();
  lVar4 = *plVar3;
  puVar1[3] = lVar4;
  if ((*(uint *)(lVar4 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar4 + -0x10) = *(int *)(lVar4 + -0x10) + 1;
    UNLOCK();
  }
  lVar4 = FUN_181252610();
  lVar4 = *(longlong *)(lVar4 + 0x18);
  puVar1[4] = lVar4;
  if ((*(uint *)(lVar4 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar4 + -0x10) = *(int *)(lVar4 + -0x10) + 1;
    UNLOCK();
  }
  *(undefined4 *)(puVar1 + 5) = 0x41600000;
  *(undefined8 *)((longlong)puVar1 + 0x2c) = 0x3f800000;
  *(undefined4 *)((longlong)puVar1 + 0x34) = 0;
  *(undefined1 *)(puVar1 + 7) = 0;
  *param_1 = puVar1;
  LOCK();
  *(int *)(puVar1 + 1) = *(int *)(puVar1 + 1) + 1;
  UNLOCK();
  return param_1;
}



############ FUN_ 1804a2b00 size=125 ############

void FUN_1804a2b00(longlong *param_1)

{
  int *piVar1;
  int iVar2;
  uint uVar3;
  undefined8 *puVar4;
  uint *puVar5;
  
  puVar4 = (undefined8 *)param_1[3];
  if (puVar4 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar4 + 1);
    iVar2 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar2 == 1) {
      (**(code **)*puVar4)(puVar4,1);
    }
  }
  puVar5 = (uint *)(param_1[1] + -0x10);
  if ((*puVar5 & 0x30000000) == 0) {
    LOCK();
    uVar3 = *puVar5;
    *puVar5 = *puVar5 - 1;
    UNLOCK();
    if (uVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar5);
    }
  }
  puVar5 = (uint *)(*param_1 + -0x10);
  if ((*puVar5 & 0x30000000) == 0) {
    LOCK();
    uVar3 = *puVar5;
    *puVar5 = *puVar5 - 1;
    UNLOCK();
    if (uVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      free(puVar5);
    }
  }
  return;
}



############ FUN_ 1804abbc0 size=234 ############

void FUN_1804abbc0(longlong *param_1,int param_2)

{
  void *_Memory;
  void *pvVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  int iVar4;
  
  if ((int)param_1[1] == param_2) {
    *(int *)(param_1 + 1) = param_2;
    return;
  }
  if (param_2 < 1) {
                    /* WARNING: Subroutine does not return */
    free((void *)*param_1);
  }
  pvVar1 = malloc((longlong)param_2 << 5);
  iVar4 = 0;
  if (0 < *(int *)((longlong)param_1 + 0xc)) {
    puVar3 = (undefined8 *)((longlong)pvVar1 + 0x10);
    do {
      puVar2 = (undefined8 *)((longlong)puVar3 + *param_1 + (-0x10 - (longlong)pvVar1));
      puVar3[-2] = *puVar2;
      *puVar2 = &DAT_1821dbf98;
      puVar3[-1] = puVar2[1];
      puVar2[1] = &DAT_1821dbf98;
      *puVar3 = puVar2[2];
      puVar3[1] = puVar2[3];
      puVar2[3] = 0;
      FUN_1804a2b00((longlong)iVar4 * 0x20 + *param_1);
      iVar4 = iVar4 + 1;
      puVar3 = puVar3 + 4;
    } while (iVar4 < *(int *)((longlong)param_1 + 0xc));
  }
  _Memory = (void *)*param_1;
  *param_1 = (longlong)pvVar1;
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 181220890 size=86 ############

undefined8 * FUN_181220890(longlong param_1)

{
  undefined8 uVar1;
  int iVar2;
  undefined8 *puVar3;
  
  uVar1 = DAT_1826739f0;
  puVar3 = *(undefined8 **)(param_1 + 0x10);
  while( true ) {
    if (puVar3 == (undefined8 *)0x0) {
      puVar3 = (undefined8 *)FUN_181220d40();
      return puVar3;
    }
    iVar2 = FUN_18048cbc0(puVar3[1],uVar1);
    if (iVar2 == 0) break;
    puVar3 = (undefined8 *)*puVar3;
  }
  return puVar3 + 2;
}



############ FUN_ 1812214e0 size=536 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1812214e0(longlong *param_1,undefined8 *param_2,char param_3)

{
  uint uVar1;
  longlong lVar2;
  code *pcVar3;
  uint uVar4;
  int iVar5;
  byte *pbVar6;
  byte bVar7;
  undefined1 auStack_78 [32];
  byte local_58 [39];
  undefined1 local_31;
  ulonglong local_30;
  
  local_30 = DAT_182615970 ^ (ulonglong)auStack_78;
  pbVar6 = (byte *)*param_2;
LAB_181221520:
  bVar7 = *pbVar6;
  pbVar6 = pbVar6 + 1;
  uVar4 = (uint)bVar7;
  if ((char)bVar7 < '\0') {
    uVar1 = 0x40;
    iVar5 = 0;
    uVar4 = 0x7f;
    if ((bVar7 & 0x40) != 0) {
      do {
        if (uVar1 < 9) break;
        uVar4 = uVar4 >> 1;
        iVar5 = iVar5 + 1;
        uVar1 = uVar1 >> 1;
      } while ((bVar7 & uVar1) != 0);
    }
    uVar4 = bVar7 & uVar4;
    for (; (iVar5 = iVar5 + -1, -1 < iVar5 && ((*pbVar6 & 0xc0) == 0x80)); pbVar6 = pbVar6 + 1) {
      uVar4 = *pbVar6 & 0x3f | uVar4 << 6;
    }
  }
  if (uVar4 == 0) {
  }
  bVar7 = (byte)uVar4;
  if ((uVar4 < 0x80) && (((&DAT_182496020)[uVar4 >> 3] & (byte)(1 << (bVar7 & 7))) != 0)) {
    lVar2 = *param_1;
    pcVar3 = *(code **)(lVar2 + 0x28);
    if (pcVar3 != FUN_18122e9b0) {
LAB_1812216fe:
      (*pcVar3)(param_1);
      goto LAB_181221520;
    }
  }
  else {
    switch(uVar4) {
    case 10:
    case 0xd:
      if (param_3 == '\0') {
        lVar2 = *param_1;
        pcVar3 = *(code **)(lVar2 + 0x28);
        if (pcVar3 != FUN_18122e9b0) goto LAB_1812216fe;
        break;
      }
    default:
      (**(code **)(*param_1 + 0x20))(param_1,&DAT_1821db4d0,2);
      lVar2 = FUN_181233e10(&local_30,uVar4);
      (**(code **)(*param_1 + 0x20))(param_1,lVar2,&local_31 + -lVar2);
      lVar2 = *param_1;
      if (*(code **)(lVar2 + 0x28) != FUN_18122e9b0) {
        (**(code **)(lVar2 + 0x28))(param_1);
        goto LAB_181221520;
      }
      local_58[0] = 0x3b;
      bVar7 = local_58[0];
      break;
    case 0x22:
      (**(code **)(*param_1 + 0x20))(param_1,"&quot;",6);
      goto LAB_181221520;
    case 0x26:
      (**(code **)(*param_1 + 0x20))(param_1,"&amp;",5);
      goto LAB_181221520;
    case 0x3c:
      (**(code **)(*param_1 + 0x20))(param_1,&DAT_1821db4d4,4);
      goto LAB_181221520;
    case 0x3e:
      goto switchD_1812215e8_caseD_3e;
    }
  }
  local_58[0] = bVar7;
  (**(code **)(lVar2 + 0x20))(param_1,local_58,1);
  goto LAB_181221520;
switchD_1812215e8_caseD_3e:
  (**(code **)(*param_1 + 0x20))(param_1,&DAT_1821db4c0,4);
  goto LAB_181221520;
}



############ FUN_ 181220d40 size=122 ############

undefined8 * FUN_181220d40(void)

{
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267af74) {
    _Init_thread_header(&DAT_18267af74);
    if (DAT_18267af74 == -1) {
      DAT_18267af20 = &DAT_1821dbf98;
      atexit((_func_5014 *)&LAB_181a4a950);
      _Init_thread_footer(&DAT_18267af74);
      return &DAT_18267af20;
    }
  }
  return &DAT_18267af20;
}



############ FUN_ 18123a2a0 size=637 ############

undefined8 *
FUN_18123a2a0(longlong *param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  int iVar4;
  byte *pbVar5;
  int iVar6;
  ulonglong uVar7;
  uint uVar8;
  ulonglong uVar9;
  ulonglong uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  longlong lVar14;
  
  uVar10 = param_1[1] * 8 + 5;
  uVar13 = uVar10 / 6;
  FUN_181211fd0(param_2,(int)param_1[1],uVar10,param_4,0,0xfffffffffffffffe);
  pbVar5 = (byte *)*param_2;
  iVar6 = 0;
  do {
    while( true ) {
      bVar1 = *pbVar5;
      pbVar5 = pbVar5 + 1;
      if ((char)bVar1 < '\0') break;
      if (bVar1 == 0) {
        FUN_1812342b0(param_2,uVar13 + 2 + (longlong)iVar6);
        pbVar5 = (byte *)*param_2;
        if (iVar6 < 0) {
          if (iVar6 + 1 < 1) {
            uVar10 = (ulonglong)(1 - (iVar6 + 1));
            do {
              iVar6 = 0;
              do {
                pbVar5 = pbVar5 + -1;
                if ((*pbVar5 & 0xc0) != 0x80) break;
                iVar6 = iVar6 + 1;
              } while (iVar6 < 4);
              uVar10 = uVar10 - 1;
            } while (uVar10 != 0);
          }
        }
        else {
          while (iVar6 = iVar6 + -1, -1 < iVar6) {
            bVar1 = *pbVar5;
            pbVar5 = pbVar5 + 1;
            if ((char)bVar1 < '\0') {
              bVar3 = 0x40;
              bVar2 = bVar1 & 0x40;
              while ((bVar2 != 0 && (8 < bVar3))) {
                pbVar5 = pbVar5 + 1;
                bVar3 = bVar3 >> 1;
                bVar2 = bVar1 & bVar3;
              }
            }
          }
        }
        *pbVar5 = 0x2e;
        pbVar5 = pbVar5 + 1;
        if (uVar13 == 0) {
          *pbVar5 = 0;
        }
        else {
          uVar10 = 0;
          do {
            uVar9 = 6;
            uVar8 = 0;
            uVar12 = uVar10 >> 3;
            uVar7 = (ulonglong)((uint)uVar10 & 7);
            lVar14 = 0;
            do {
              if ((ulonglong)param_1[1] <= uVar12) break;
              uVar11 = uVar9;
              if (8 - uVar7 < uVar9) {
                uVar11 = 8 - uVar7;
              }
              uVar8 = uVar8 | (((0xff >> (8U - (char)uVar11 & 0x1f)) << (sbyte)uVar7 &
                               (int)*(char *)(*param_1 + uVar12)) >> (sbyte)uVar7) <<
                              ((byte)lVar14 & 0x1f);
              lVar14 = lVar14 + uVar11;
              uVar12 = uVar12 + 1;
              uVar7 = 0;
              uVar9 = uVar9 - uVar11;
            } while (uVar9 != 0);
            bVar1 = " !\"#$%&\'()*+,-./01234.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+"
                    [(longlong)(int)uVar8 + 0x15];
            if (bVar1 < 0x80) {
              *pbVar5 = bVar1;
              pbVar5 = pbVar5 + 1;
            }
            else {
              iVar6 = 1;
              if (0x7ff < bVar1) {
                iVar6 = 2;
                if (0xffff < bVar1) {
                  iVar6 = 3;
                }
              }
              *pbVar5 = bVar1 >> (char)iVar6 * '\x06' | -1 << (7U - (char)iVar6 & 0x1f);
              pbVar5 = pbVar5 + 1;
              iVar6 = iVar6 + -1;
              if (-1 < iVar6) {
                iVar4 = iVar6 * 6;
                do {
                  *pbVar5 = bVar1 >> ((byte)iVar4 & 0x1f) & 0x3f | 0x80;
                  pbVar5 = pbVar5 + 1;
                  iVar4 = iVar4 + -6;
                  iVar6 = iVar6 + -1;
                } while (-1 < iVar6);
              }
            }
            uVar10 = uVar10 + 6;
            uVar13 = uVar13 - 1;
          } while (uVar13 != 0);
          *pbVar5 = 0;
        }
        return param_2;
      }
LAB_18123a338:
      iVar6 = iVar6 + 1;
    }
    if ((*pbVar5 & 0xc0) != 0x80) goto LAB_18123a338;
    do {
      pbVar5 = pbVar5 + 1;
    } while ((*pbVar5 & 0xc0) == 0x80);
    iVar6 = iVar6 + 1;
  } while( true );
}



############ FUN_ 181233f40 size=257 ############

undefined8 * FUN_181233f40(undefined8 *param_1,uint param_2)

{
  undefined4 *puVar1;
  byte *pbVar2;
  byte *pbVar3;
  byte bVar4;
  int iVar5;
  int iVar6;
  longlong lVar7;
  
  lVar7 = 1;
  if (((0x7f < param_2) && (lVar7 = 2, 0x7ff < param_2)) && (lVar7 = 3, 0xffff < param_2)) {
    lVar7 = 4;
  }
  puVar1 = (undefined4 *)thunk_FUN_1811316e0();
  LOCK();
  *puVar1 = 0;
  UNLOCK();
  *(ulonglong *)(puVar1 + 2) = lVar7 + 4U & 0xfffffffffffffffc;
  pbVar2 = (byte *)(puVar1 + 4);
  *param_1 = pbVar2;
  if (param_2 < 0x80) {
    *pbVar2 = (byte)param_2;
    *(undefined1 *)((longlong)puVar1 + 0x11) = 0;
  }
  else {
    iVar6 = 1;
    if ((0x7ff < param_2) && (iVar6 = 2, 0xffff < param_2)) {
      iVar6 = 3;
    }
    *pbVar2 = (byte)(param_2 >> (char)iVar6 * '\x06') | -1 << (7U - (char)iVar6 & 0x1f);
    pbVar2 = (byte *)((longlong)puVar1 + 0x11);
    iVar6 = iVar6 + -1;
    if (-1 < iVar6) {
      iVar5 = iVar6 * 6;
      pbVar3 = pbVar2;
      do {
        pbVar2 = pbVar3 + 1;
        bVar4 = (byte)iVar5;
        iVar5 = iVar5 + -6;
        iVar6 = iVar6 + -1;
        *pbVar3 = (byte)(param_2 >> (bVar4 & 0x1f)) & 0x3f | 0x80;
        pbVar3 = pbVar2;
      } while (-1 < iVar6);
    }
    *pbVar2 = 0;
  }
  return param_1;
}



############ FUN_ 180493240 size=296 ############

undefined8 FUN_180493240(byte *param_1,int param_2)

{
  byte bVar1;
  byte bVar2;
  byte *pbVar3;
  uint uVar4;
  uint uVar5;
  ulonglong uVar6;
  byte bVar7;
  longlong lVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  
  do {
    do {
      pbVar3 = param_1;
      param_2 = param_2 + -1;
      if ((param_2 < 0) || (bVar1 = *pbVar3, bVar1 == 0)) {
        return 1;
      }
      param_1 = pbVar3 + 1;
    } while (-1 < (char)bVar1);
    bVar7 = 0x40;
    iVar10 = 0;
    if ((bVar1 & 0x40) == 0) {
      return 0;
    }
    do {
      iVar11 = iVar10;
      if (bVar7 < 8) {
        return 0;
      }
      iVar10 = iVar11 + 1;
      bVar7 = (char)bVar7 >> 1;
      if (bVar7 == 8) {
        if (param_2 < iVar10) {
          return 0;
        }
        bVar2 = *pbVar3;
        uVar5 = (uint)bVar2;
        if ((char)bVar2 < '\0') {
          uVar4 = 0x40;
          uVar5 = 0x7f;
          uVar6 = 0x7f;
          iVar9 = 0;
          if ((bVar2 & 0x40) != 0) {
            do {
              uVar5 = (uint)uVar6;
              if (uVar4 < 9) break;
              uVar6 = uVar6 >> 1;
              uVar5 = (uint)uVar6;
              iVar9 = iVar9 + 1;
              uVar4 = uVar4 >> 1;
            } while ((bVar2 & uVar4) != 0);
          }
          uVar5 = bVar2 & uVar5;
          lVar8 = 1;
          if (0 < (longlong)iVar9) {
            do {
              if ((pbVar3[lVar8] & 0xc0) != 0x80) break;
              uVar5 = pbVar3[lVar8] & 0x3f | uVar5 << 6;
              lVar8 = lVar8 + 1;
            } while (lVar8 <= iVar9);
          }
        }
        if (0x10ffff < uVar5) {
          return 0;
        }
      }
    } while ((bVar7 & bVar1) != 0);
    if (iVar10 == 0) {
      return 0;
    }
    param_2 = param_2 - iVar10;
    if (param_2 < 0) {
      return 0;
    }
    for (; -1 < iVar11; iVar11 = iVar11 + -1) {
      bVar1 = *param_1;
      param_1 = param_1 + 1;
      if ((bVar1 & 0xc0) != 0x80) {
        return 0;
      }
    }
  } while( true );
}



############ FUN_ 18049ca80 size=375 ############

undefined8 * FUN_18049ca80(undefined8 *param_1,uint *param_2)

{
  uint *puVar1;
  undefined4 *puVar2;
  byte *pbVar3;
  byte bVar4;
  int iVar5;
  longlong lVar6;
  uint uVar7;
  longlong lVar8;
  ulonglong uVar9;
  int iVar10;
  
  if ((param_2 != (uint *)0x0) && (uVar7 = *param_2, uVar7 != 0)) {
    lVar8 = 0;
    if (uVar7 != 0) {
      puVar1 = param_2 + 1;
      do {
        lVar6 = 1;
        if (((0x7f < uVar7) && (lVar6 = 2, 0x7ff < uVar7)) && (lVar6 = 3, 0xffff < uVar7)) {
          lVar6 = 4;
        }
        uVar7 = *puVar1;
        lVar8 = lVar8 + lVar6;
        puVar1 = puVar1 + 1;
      } while (uVar7 != 0);
    }
    uVar9 = lVar8 + 4U & 0xfffffffffffffffc;
    puVar2 = (undefined4 *)thunk_FUN_1811316e0(uVar9 + 0x17);
    LOCK();
    *puVar2 = 0;
    UNLOCK();
    *(ulonglong *)(puVar2 + 2) = uVar9;
    uVar7 = *param_2;
    puVar1 = param_2 + 1;
    pbVar3 = (byte *)(puVar2 + 4);
    while (uVar7 != 0) {
      if (uVar7 < 0x80) {
        *pbVar3 = (byte)uVar7;
        pbVar3 = pbVar3 + 1;
      }
      else {
        iVar10 = 1;
        if ((0x7ff < uVar7) && (iVar10 = 2, 0xffff < uVar7)) {
          iVar10 = 3;
        }
        *pbVar3 = (byte)(uVar7 >> (char)iVar10 * '\x06') | -1 << (7U - (char)iVar10 & 0x1f);
        pbVar3 = pbVar3 + 1;
        iVar10 = iVar10 + -1;
        if (-1 < iVar10) {
          iVar5 = iVar10 * 6;
          do {
            bVar4 = (byte)iVar5;
            iVar5 = iVar5 + -6;
            *pbVar3 = (byte)(uVar7 >> (bVar4 & 0x1f)) & 0x3f | 0x80;
            pbVar3 = pbVar3 + 1;
            iVar10 = iVar10 + -1;
          } while (-1 < iVar10);
        }
      }
      uVar7 = *puVar1;
      puVar1 = puVar1 + 1;
    }
    *pbVar3 = 0;
    *param_1 = puVar2 + 4;
    return param_1;
  }
  *param_1 = &DAT_1821dbf98;
  return param_1;
}



############ FUN_ 180495280 size=166 ############

void FUN_180495280(longlong *param_1,uint param_2)

{
  longlong lVar1;
  longlong lVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  
  lVar2 = 1;
  if (((0x7f < param_2) && (lVar2 = 2, 0x7ff < param_2)) && (lVar2 = 3, 0xffff < param_2)) {
    lVar2 = 4;
  }
  param_1[4] = param_1[4] + lVar2;
  if ((ulonglong)param_1[3] < (ulonglong)param_1[4]) {
    uVar4 = (ulonglong)param_1[3] >> 4;
    lVar2 = *param_1;
    uVar3 = 8;
    if (8 < uVar4) {
      uVar3 = uVar4;
    }
    param_1[3] = param_1[3] + uVar3;
    lVar1 = param_1[2];
    FUN_1812342b0(param_1,param_1[3]);
    param_1[2] = (longlong)((int)lVar1 - (int)lVar2) + *param_1;
  }
  FUN_180493180(param_1 + 2,param_2);
  return;
}



############ FUN_ 1811e1f10 size=179 ############

void FUN_1811e1f10(undefined8 param_1,longlong param_2)

{
  int *piVar1;
  void *_Dst;
  int iVar2;
  LPCRITICAL_SECTION lpCriticalSection;
  longlong lVar3;
  int iVar4;
  
  lpCriticalSection = (LPCRITICAL_SECTION)FUN_180486840(param_1,param_1);
  EnterCriticalSection(lpCriticalSection);
  iVar2 = *(int *)((longlong)&lpCriticalSection[1].OwningThread + 4);
  iVar4 = 0;
  lVar3 = 0;
  if (0 < iVar2) {
    do {
      if (param_2 == *(longlong *)(*(longlong *)&lpCriticalSection[1].LockCount + lVar3 * 8)) {
        _Dst = (void *)(*(longlong *)&lpCriticalSection[1].LockCount + (longlong)iVar4 * 8);
        memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)((iVar2 - iVar4) + -1) << 3);
        piVar1 = (int *)((longlong)&lpCriticalSection[1].OwningThread + 4);
        *piVar1 = *piVar1 + -1;
        iVar2 = *(int *)((longlong)&lpCriticalSection[1].OwningThread + 4);
        iVar4 = 0;
        if (0 < iVar2 * 2) {
          iVar4 = iVar2 * 2;
        }
        if (iVar4 < *(int *)&lpCriticalSection[1].OwningThread) {
          if (iVar2 < 8) {
            iVar2 = 8;
          }
          if (iVar2 < *(int *)&lpCriticalSection[1].OwningThread) {
            FUN_18048a270(lpCriticalSection);
          }
        }
        break;
      }
      iVar4 = iVar4 + 1;
      lVar3 = lVar3 + 1;
    } while (lVar3 < iVar2);
  }
                    /* WARNING: Could not recover jumptable at 0x0001811e1fbc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  LeaveCriticalSection(lpCriticalSection);
  return;
}



############ FUN_ 1811e6cae size=495 ############

undefined8 FUN_1811e6cae(void)

{
  undefined8 in_RAX;
  
  return in_RAX;
}



############ FUN_ 1805a6ba0 size=258 ############

void FUN_1805a6ba0(longlong *param_1,basic_ios<char,std::char_traits<char>_> *param_2,
                  longlong param_3,undefined8 param_4)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  locale local_20 [8];
  longlong *local_18;
  
  uVar2 = 0xfffffffffffffffe;
  if (*param_1 != -1) {
    *(longlong *)(param_2 + 0x28) = *param_1;
  }
  if (param_1[1] != -1) {
    *(longlong *)(param_2 + 0x20) = param_1[1];
  }
  if (*(basic_ios<char,std::char_traits<char>_> *)(param_1 + 2) !=
      (basic_ios<char,std::char_traits<char>_>)0x0) {
    param_2[0x58] = *(basic_ios<char,std::char_traits<char>_> *)(param_1 + 2);
  }
  *(uint *)(param_2 + 0x18) = (uint)*(ushort *)((longlong)param_1 + 0x14);
  std::basic_ios<char,std::char_traits<char>_>::clear(param_2,(int)param_1[3],false);
  std::ios_base::exceptions((ios_base *)param_2,*(int *)((longlong)param_1 + 0x1c));
  if ((char)param_1[4] != '\0') {
    std::basic_ios<char,std::char_traits<char>_>::imbue(param_2,local_20);
    if (local_18 != (longlong *)0x0) {
      puVar1 = (undefined8 *)(**(code **)(*local_18 + 0x10))();
      if (puVar1 != (undefined8 *)0x0) {
        (**(code **)*puVar1)(puVar1,1);
      }
    }
    return;
  }
  if (param_3 != 0) {
    std::basic_ios<char,std::char_traits<char>_>::imbue(param_2,local_20);
    if (local_18 != (longlong *)0x0) {
      puVar1 = (undefined8 *)(**(code **)(*local_18 + 0x10))();
      if (puVar1 != (undefined8 *)0x0) {
        (**(code **)*puVar1)(puVar1,1,(undefined8 *)*puVar1,param_4,uVar2);
      }
    }
  }
  return;
}



############ FUN_ 1805a2b40 size=418 ############

void FUN_1805a2b40(undefined8 *param_1,undefined8 param_2,ulonglong param_3,ulonglong param_4,
                  undefined1 param_5,byte param_6,char param_7,char param_8)

{
  ulonglong uVar1;
  ulonglong uVar2;
  undefined8 *puVar3;
  longlong lVar4;
  longlong lVar5;
  longlong lVar6;
  ulonglong uVar7;
  
  lVar4 = 0;
  param_1[2] = 0;
  puVar3 = param_1;
  if (0xf < (ulonglong)param_1[3]) {
    puVar3 = (undefined8 *)*param_1;
  }
  *(undefined1 *)puVar3 = 0;
  if (((longlong)param_4 < 1) || (param_4 <= param_3)) {
    uVar1 = param_1[2];
    uVar7 = (param_7 != '\0') + param_3;
    if (uVar1 <= uVar7) {
      uVar2 = param_1[3];
      if (uVar2 != uVar7) {
        if (uVar2 < uVar7) {
          FUN_1805a14a0(param_1,uVar7 - uVar1,0);
          param_1[2] = uVar1;
        }
        else if ((uVar7 < 0x10) && (0xf < uVar2)) {
          FUN_1805a6620();
        }
      }
    }
    if (param_7 != '\0') {
      FUN_1805a6b10(param_1,1,param_7);
    }
    if (param_3 == 0) {
      return;
    }
    FUN_1805a6a80(param_1,param_2,param_3);
    return;
  }
  uVar1 = param_1[2];
  lVar5 = (param_4 - (param_7 != '\0')) - param_3;
  if (uVar1 <= param_4) {
    uVar7 = param_1[3];
    if (uVar7 != param_4) {
      if (uVar7 < param_4) {
        FUN_1805a14a0(param_1,param_4 - uVar1,0);
        param_1[2] = uVar1;
      }
      else if ((param_4 < 0x10) && (0xf < uVar7)) {
        FUN_1805a6620();
      }
    }
  }
  if (param_8 == '\0') {
    lVar6 = lVar5;
    if ((param_6 & 0x40) != 0) goto LAB_1805a2c06;
  }
  else {
    lVar4 = lVar5 / 2;
    lVar5 = lVar5 - lVar4;
  }
  lVar6 = lVar4;
  if (lVar5 != 0) {
    FUN_1805a6b10(param_1,lVar5,param_5);
  }
LAB_1805a2c06:
  if (param_7 != '\0') {
    FUN_1805a6b10(param_1,1,param_7);
  }
  if (param_3 != 0) {
    FUN_1805a6a80(param_1,param_2,param_3);
  }
  if (lVar6 != 0) {
    FUN_1805a6b10(param_1,lVar6,param_5);
  }
  return;
}



############ FUN_ 1805a0a80 size=93 ############

undefined8 * FUN_1805a0a80(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x20);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::
              sp_counted_impl_pd<boost::io::basic_altstringbuf<char,std::char_traits<char>,std::allocator<char>_>*___ptr64,boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::No_Op>
              ::vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 1805a0c30 size=418 ############

basic_ostream<char,std::char_traits<char>_> *
FUN_1805a0c30(basic_ostream<char,std::char_traits<char>_> *param_1,char param_2)

{
  basic_ostream<char,std::char_traits<char>_> *this;
  bool bVar1;
  int iVar2;
  longlong lVar3;
  int iVar4;
  longlong lVar5;
  int iVar6;
  
  iVar4 = 0;
  if (*(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) !=
      (longlong *)0x0) {
    (**(code **)(**(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) + 8)
    )();
  }
  if (((*(int *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x10) == 0) &&
      (this = *(basic_ostream<char,std::char_traits<char>_> **)
               (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x50),
      this != (basic_ostream<char,std::char_traits<char>_> *)0x0)) && (this != param_1)) {
    std::basic_ostream<char,std::char_traits<char>_>::flush(this);
  }
  lVar3 = (longlong)*(int *)(*(longlong *)param_1 + 4);
  if (*(int *)(param_1 + lVar3 + 0x10) == 0) {
    if (*(longlong *)(param_1 + lVar3 + 0x28) < 2) {
      lVar5 = 0;
    }
    else {
      lVar5 = *(longlong *)(param_1 + lVar3 + 0x28) + -1;
    }
    iVar6 = 4;
    if ((*(uint *)(param_1 + lVar3 + 0x18) & 0x1c0) == 0x40) {
LAB_1805a0d1a:
      iVar2 = std::basic_streambuf<char,std::char_traits<char>_>::sputc
                        (*(basic_streambuf<char,std::char_traits<char>_> **)
                          (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),param_2);
      if (iVar2 == -1) {
        iVar4 = iVar6;
      }
      for (; (iVar4 == 0 && (0 < lVar5)); lVar5 = lVar5 + -1) {
        iVar2 = std::basic_streambuf<char,std::char_traits<char>_>::sputc
                          (*(basic_streambuf<char,std::char_traits<char>_> **)
                            (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),
                           (char)param_1[(longlong)*(int *)(*(longlong *)param_1 + 4) + 0x58]);
        if (iVar2 == -1) {
          iVar4 = iVar6;
        }
      }
    }
    else {
      while (iVar4 == 0) {
        if (lVar5 < 1) goto LAB_1805a0d1a;
        iVar2 = std::basic_streambuf<char,std::char_traits<char>_>::sputc
                          (*(basic_streambuf<char,std::char_traits<char>_> **)
                            (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),
                           (char)param_1[(longlong)*(int *)(*(longlong *)param_1 + 4) + 0x58]);
        if (iVar2 == -1) {
          iVar4 = iVar6;
        }
        lVar5 = lVar5 + -1;
      }
    }
  }
  *(undefined8 *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x28) = 0;
  std::basic_ios<char,std::char_traits<char>_>::setstate
            ((basic_ios<char,std::char_traits<char>_> *)
             (param_1 + *(int *)(*(longlong *)param_1 + 4)),iVar4,false);
  bVar1 = std::uncaught_exception();
  if (!bVar1) {
    std::basic_ostream<char,std::char_traits<char>_>::_Osfx(param_1);
  }
  if (*(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) !=
      (longlong *)0x0) {
    (**(code **)(**(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) +
                0x10))();
  }
  return param_1;
}



############ FUN_ 1805a73e0 size=161 ############

void FUN_1805a73e0(longlong *param_1)

{
  undefined8 local_48;
  undefined8 uStack_40;
  undefined8 local_38;
  undefined1 local_28 [16];
  undefined8 local_18;
  
  if ((*(longlong *)param_1[8] != 0) && (*(longlong *)param_1[8] != *(longlong *)param_1[4])) {
    local_18 = 0;
    local_48 = 0;
    uStack_40 = 0;
    local_38 = 0;
    (**(code **)(*param_1 + 0x58))(param_1,local_28,&local_48,2);
  }
  if ((*(longlong *)param_1[7] != 0) && (*(longlong *)param_1[7] != *(longlong *)param_1[3])) {
    local_18 = 0;
    local_48 = 0;
    uStack_40 = 0;
    local_38 = 0;
    (**(code **)(*param_1 + 0x58))(param_1,local_28,&local_48,1);
  }
  return;
}



############ FUN_ 1805a6b10 size=135 ############

undefined8 * FUN_1805a6b10(undefined8 *param_1,size_t param_2,char param_3)

{
  longlong lVar1;
  undefined8 *puVar2;
  
  lVar1 = param_1[2];
  if (param_2 <= (ulonglong)(param_1[3] - lVar1)) {
    param_1[2] = lVar1 + param_2;
    puVar2 = param_1;
    if (0xf < (ulonglong)param_1[3]) {
      puVar2 = (undefined8 *)*param_1;
    }
    memset((void *)((longlong)puVar2 + lVar1),(int)param_3,param_2);
    *(undefined1 *)((longlong)puVar2 + lVar1 + param_2) = 0;
    return param_1;
  }
  puVar2 = (undefined8 *)FUN_1805a15e0(param_1,param_2,0,param_2,param_3);
  return puVar2;
}



############ FUN_ 1805a6a80 size=131 ############

undefined8 * FUN_1805a6a80(undefined8 *param_1,void *param_2,size_t param_3)

{
  longlong lVar1;
  undefined8 *puVar2;
  
  lVar1 = param_1[2];
  if (param_3 <= (ulonglong)(param_1[3] - lVar1)) {
    param_1[2] = lVar1 + param_3;
    puVar2 = param_1;
    if (0xf < (ulonglong)param_1[3]) {
      puVar2 = (undefined8 *)*param_1;
    }
    memmove((void *)((longlong)puVar2 + lVar1),param_2,param_3);
    *(undefined1 *)((longlong)puVar2 + lVar1 + param_3) = 0;
    return param_1;
  }
  puVar2 = (undefined8 *)FUN_1805a1320(param_1,param_3,0,param_2,param_3);
  return puVar2;
}



############ FUN_ 1805a1ed0 size=174 ############

undefined8 *
FUN_1805a1ed0(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[10] = &DAT_181bb00f0;
  param_1[0xc] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805a4730();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::io::too_many_args>_>::
             vftable;
  param_1[5] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::io::too_many_args>_>::
               vftable;
  *(undefined ***)((longlong)*(int *)(param_1[10] + 4) + 0x50 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::io::too_many_args>_>::vftable;
  *(int *)((longlong)*(int *)(param_1[10] + 4) + 0x4c + (longlong)param_1) =
       *(int *)(param_1[10] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x28;
  }
  FUN_1805a7b20(param_1 + 5,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805a2140 size=130 ############

undefined8 * FUN_1805a2140(undefined8 *param_1,longlong param_2)

{
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::io::too_many_args::vftable;
  param_1[3] = *(undefined8 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  *(undefined4 *)(param_1 + 9) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::io::too_many_args>::vftable;
  param_1[5] = boost::exception_detail::error_info_injector<boost::io::too_many_args>::vftable;
  return param_1;
}



############ FUN_ 1805a0df0 size=438 ############

basic_ostream<char,std::char_traits<char>_> *
FUN_1805a0df0(basic_ostream<char,std::char_traits<char>_> *param_1,char *param_2)

{
  basic_ostream<char,std::char_traits<char>_> *this;
  bool bVar1;
  int iVar2;
  __int64 _Var3;
  int iVar4;
  longlong lVar5;
  longlong lVar6;
  
  iVar4 = 0;
  lVar6 = -1;
  do {
    lVar6 = lVar6 + 1;
  } while (param_2[lVar6] != '\0');
  lVar5 = *(longlong *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x28);
  if ((lVar5 < 1) || (lVar5 <= lVar6)) {
    lVar5 = 0;
  }
  else {
    lVar5 = lVar5 - lVar6;
  }
  if (*(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) !=
      (longlong *)0x0) {
    (**(code **)(**(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) + 8)
    )();
  }
  if (((*(int *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x10) == 0) &&
      (this = *(basic_ostream<char,std::char_traits<char>_> **)
               (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x50),
      this != (basic_ostream<char,std::char_traits<char>_> *)0x0)) && (this != param_1)) {
    std::basic_ostream<char,std::char_traits<char>_>::flush(this);
  }
  if (*(int *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x10) != 0) {
    iVar4 = 4;
    goto LAB_1805a0f61;
  }
  if ((*(uint *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x18) & 0x1c0) == 0x40) {
LAB_1805a0ee5:
    _Var3 = std::basic_streambuf<char,std::char_traits<char>_>::sputn
                      (*(basic_streambuf<char,std::char_traits<char>_> **)
                        (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),param_2,
                       lVar6);
    if (_Var3 == lVar6) {
      for (; 0 < lVar5; lVar5 = lVar5 + -1) {
        iVar2 = std::basic_streambuf<char,std::char_traits<char>_>::sputc
                          (*(basic_streambuf<char,std::char_traits<char>_> **)
                            (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),
                           (char)param_1[(longlong)*(int *)(*(longlong *)param_1 + 4) + 0x58]);
        if (iVar2 == -1) goto LAB_1805a0f07;
      }
    }
    else {
LAB_1805a0f07:
      iVar4 = 4;
    }
  }
  else {
    for (; 0 < lVar5; lVar5 = lVar5 + -1) {
      iVar2 = std::basic_streambuf<char,std::char_traits<char>_>::sputc
                        (*(basic_streambuf<char,std::char_traits<char>_> **)
                          (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),
                         (char)param_1[(longlong)*(int *)(*(longlong *)param_1 + 4) + 0x58]);
      if (iVar2 == -1) {
        iVar4 = 4;
        break;
      }
    }
    if (iVar4 == 0) goto LAB_1805a0ee5;
  }
  *(undefined8 *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x28) = 0;
LAB_1805a0f61:
  std::basic_ios<char,std::char_traits<char>_>::setstate
            ((basic_ios<char,std::char_traits<char>_> *)
             (param_1 + *(int *)(*(longlong *)param_1 + 4)),iVar4,false);
  bVar1 = std::uncaught_exception();
  if (!bVar1) {
    std::basic_ostream<char,std::char_traits<char>_>::_Osfx(param_1);
  }
  if (*(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) !=
      (longlong *)0x0) {
    (**(code **)(**(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) +
                0x10))();
  }
  return param_1;
}



############ FUN_ 1805bbce0 size=177 ############

ulonglong FUN_1805bbce0(ulonglong *param_1,ulonglong param_2)

{
  longlong lVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  
  uVar2 = 0;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  if (param_2 != 0) {
    if (0x276276276276276 < param_2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar4 = param_2 * 0x68;
    uVar3 = 0xffffffffffffffff;
    if ((param_2 < 0x276276276276277) && (uVar3 = uVar4, uVar4 < 0x1000)) {
      if (uVar4 != 0) {
        uVar2 = FUN_1811316e0(uVar4);
      }
    }
    else {
      uVar2 = uVar3 + 0x27;
      if (uVar3 + 0x27 <= uVar3) {
        uVar2 = 0xffffffffffffffff;
      }
      lVar1 = FUN_1811316e0(uVar2);
      if (lVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
      uVar2 = lVar1 + 0x27U & 0xffffffffffffffe0;
      *(longlong *)(uVar2 - 8) = lVar1;
    }
    *param_1 = uVar2;
    param_1[1] = uVar2;
    param_1[2] = uVar4 + *param_1;
    uVar2 = CONCAT71((int7)(*param_1 >> 8),1);
  }
  return uVar2;
}



############ FUN_ 1805b14f0 size=189 ############

undefined8 * FUN_1805b14f0(undefined8 param_1,longlong param_2,longlong param_3,undefined8 *param_4)

{
  longlong lVar1;
  longlong lVar2;
  
  if (param_2 != param_3) {
    lVar2 = param_2 + 0x28;
    do {
      *param_4 = pace::eden::thrift::pub::SharedLicenseStatSample::vftable;
      FUN_1805a4070(param_4 + 1,lVar2 + -0x20);
      FUN_1805a4070(param_4 + 5,lVar2);
      *(undefined4 *)(param_4 + 9) = *(undefined4 *)(lVar2 + 0x20);
      *(undefined4 *)((longlong)param_4 + 0x4c) = *(undefined4 *)(lVar2 + 0x24);
      *(undefined4 *)(param_4 + 10) = *(undefined4 *)(lVar2 + 0x28);
      *(undefined4 *)((longlong)param_4 + 0x54) = *(undefined4 *)(lVar2 + 0x2c);
      *(undefined1 *)(param_4 + 0xb) = *(undefined1 *)(lVar2 + 0x30);
      *(undefined4 *)((longlong)param_4 + 0x5c) = *(undefined4 *)(lVar2 + 0x34);
      param_4[0xc] = *(undefined8 *)(lVar2 + 0x38);
      param_4 = param_4 + 0xd;
      lVar1 = lVar2 + 0x40;
      lVar2 = lVar2 + 0x68;
    } while (lVar1 != param_3);
  }
  return param_4;
}



############ FUN_ 1805afe20 size=325 ############

longlong FUN_1805afe20(undefined8 *param_1,undefined8 *param_2,longlong param_3)

{
  undefined8 *puVar1;
  longlong lVar2;
  longlong lVar3;
  longlong *plVar4;
  undefined8 *puVar5;
  
  if (param_1 != param_2) {
    lVar3 = param_3 - (longlong)param_1;
    puVar5 = param_1 + 3;
    do {
      plVar4 = puVar5 + -2;
      lVar2 = lVar3 + -0x10 + (longlong)puVar5;
      if ((longlong *)lVar2 != plVar4) {
        if (0xf < (ulonglong)puVar5[1]) {
          plVar4 = (longlong *)*plVar4;
        }
        FUN_1805a6cb0(lVar2,plVar4,*puVar5);
      }
      plVar4 = puVar5 + 2;
      lVar2 = lVar3 + 0x10 + (longlong)puVar5;
      if ((longlong *)lVar2 != plVar4) {
        if (0xf < (ulonglong)puVar5[5]) {
          plVar4 = (longlong *)*plVar4;
        }
        FUN_1805a6cb0(lVar2,plVar4,puVar5[4]);
      }
      param_3 = param_3 + 0x68;
      *(undefined4 *)(lVar3 + 0x30 + (longlong)puVar5) = *(undefined4 *)(puVar5 + 6);
      *(undefined4 *)((longlong)puVar5 + lVar3 + 0x34) = *(undefined4 *)((longlong)puVar5 + 0x34);
      *(undefined4 *)((longlong)puVar5 + lVar3 + 0x38) = *(undefined4 *)(puVar5 + 7);
      *(undefined4 *)(lVar3 + 0x3c + (longlong)puVar5) = *(undefined4 *)((longlong)puVar5 + 0x3c);
      *(undefined1 *)(lVar3 + 0x40 + (longlong)puVar5) = *(undefined1 *)(puVar5 + 8);
      *(undefined4 *)(lVar3 + 0x44 + (longlong)puVar5) = *(undefined4 *)((longlong)puVar5 + 0x44);
      *(undefined8 *)(lVar3 + 0x48 + (longlong)puVar5) = puVar5[9];
      puVar1 = puVar5 + 10;
      puVar5 = puVar5 + 0xd;
    } while (puVar1 != param_2);
  }
  return param_3;
}



############ FUN_ 180576420 size=65 ############

void FUN_180576420(undefined8 param_1,void *param_2,longlong param_3)

{
  void *_Memory;
  
  _Memory = param_2;
  if ((0xfff < (ulonglong)(param_3 * 0x438)) &&
     (_Memory = *(void **)((longlong)param_2 + -8),
     0x1f < (ulonglong)((longlong)param_2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805bca10 size=115 ############

void FUN_1805bca10(undefined8 param_1,ulonglong param_2)

{
  ulonglong uVar1;
  longlong lVar2;
  ulonglong uVar3;
  
  uVar1 = param_2 * 0x438;
  if (param_2 < 0x3cae759203cae8) {
    if (uVar1 < 0x1000) {
      if (uVar1 != 0) {
        FUN_1811316e0(uVar1);
        return;
      }
      return;
    }
  }
  else {
    uVar1 = 0xffffffffffffffff;
  }
  uVar3 = uVar1 + 0x27;
  if (uVar3 <= uVar1) {
    uVar3 = 0xffffffffffffffff;
  }
  lVar2 = FUN_1811316e0(uVar3);
  if (lVar2 != 0) {
    *(longlong *)((lVar2 + 0x27U & 0xffffffffffffffe0) - 8) = lVar2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  _invalid_parameter_noinfo_noreturn();
}



############ FUN_ 1805af8b0 size=659 ############

longlong FUN_1805af8b0(undefined8 *param_1,undefined8 *param_2,longlong param_3)

{
  undefined8 *puVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  longlong *plVar5;
  undefined8 *puVar6;
  
  if (param_1 != param_2) {
    puVar6 = param_1 + 0x44;
    do {
      *(undefined4 *)(param_3 + 8) = *(undefined4 *)(puVar6 + -0x43);
      *(undefined4 *)(param_3 + 0xc) = *(undefined4 *)((longlong)puVar6 + -0x214);
      *(undefined4 *)(param_3 + 0x10) = *(undefined4 *)(puVar6 + -0x42);
      *(undefined4 *)(param_3 + 0x14) = *(undefined4 *)((longlong)puVar6 + -0x20c);
      FUN_1805b9910(param_3 + 0x18,puVar6 + -0x41);
      *(undefined8 *)(param_3 + 0x30) = puVar6[-0x3e];
      *(undefined8 *)(param_3 + 0x38) = puVar6[-0x3d];
      *(undefined8 *)(param_3 + 0x40) = puVar6[-0x3c];
      *(undefined8 *)(param_3 + 0x48) = puVar6[-0x3b];
      *(undefined4 *)(param_3 + 0x50) = *(undefined4 *)(puVar6 + -0x3a);
      *(undefined4 *)(param_3 + 0x54) = *(undefined4 *)((longlong)puVar6 + -0x1cc);
      *(undefined1 *)(param_3 + 0x58) = *(undefined1 *)(puVar6 + -0x39);
      *(undefined1 *)(param_3 + 0x59) = *(undefined1 *)((longlong)puVar6 + -0x1c7);
      FUN_1805ba930(param_3 + 0x60,puVar6 + -0x38);
      FUN_1805ba400(param_3 + 0x108,puVar6 + -0x23);
      FUN_1805ba930(param_3 + 0x168,puVar6 + -0x17);
      plVar5 = puVar6 + -2;
      if ((longlong *)(param_3 + 0x210) != plVar5) {
        if (0xf < (ulonglong)puVar6[1]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(param_3 + 0x210,plVar5,*puVar6);
      }
      plVar5 = puVar6 + 2;
      if ((longlong *)(param_3 + 0x230) != plVar5) {
        if (0xf < (ulonglong)puVar6[5]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(param_3 + 0x230,plVar5,puVar6[4]);
      }
      plVar5 = puVar6 + 6;
      if ((longlong *)(param_3 + 0x250) != plVar5) {
        if (0xf < (ulonglong)puVar6[9]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(param_3 + 0x250,plVar5,puVar6[8]);
      }
      plVar5 = puVar6 + 10;
      if ((longlong *)(param_3 + 0x270) != plVar5) {
        if (0xf < (ulonglong)puVar6[0xd]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(param_3 + 0x270,plVar5,puVar6[0xc]);
      }
      plVar5 = puVar6 + 0xe;
      if ((longlong *)(param_3 + 0x290) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x11]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(param_3 + 0x290,plVar5,puVar6[0x10]);
      }
      plVar5 = puVar6 + 0x12;
      if ((longlong *)(param_3 + 0x2b0) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x15]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(param_3 + 0x2b0,plVar5,puVar6[0x14]);
      }
      plVar5 = puVar6 + 0x16;
      if ((longlong *)(param_3 + 0x2d0) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x19]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(param_3 + 0x2d0,plVar5,puVar6[0x18]);
      }
      FUN_1805b9d10(param_3 + 0x2f0,puVar6 + 0x1a);
      plVar5 = puVar6 + 0x3b;
      if ((longlong *)(param_3 + 0x3f8) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x3e]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(param_3 + 0x3f8,plVar5,puVar6[0x3d]);
      }
      uVar2 = *(undefined4 *)((longlong)puVar6 + 0x1fc);
      uVar3 = *(undefined4 *)(puVar6 + 0x40);
      uVar4 = *(undefined4 *)((longlong)puVar6 + 0x204);
      *(undefined4 *)(param_3 + 0x418) = *(undefined4 *)(puVar6 + 0x3f);
      *(undefined4 *)(param_3 + 0x41c) = uVar2;
      *(undefined4 *)(param_3 + 0x420) = uVar3;
      *(undefined4 *)(param_3 + 0x424) = uVar4;
      *(undefined8 *)(param_3 + 0x428) = puVar6[0x41];
      *(undefined1 *)(param_3 + 0x430) = *(undefined1 *)(puVar6 + 0x42);
      param_3 = param_3 + 0x438;
      puVar1 = puVar6 + 0x43;
      puVar6 = puVar6 + 0x87;
    } while (puVar1 != param_2);
  }
  return param_3;
}



############ FUN_ 1805b16b0 size=118 ############

longlong FUN_1805b16b0(longlong param_1,longlong param_2,longlong param_3)

{
  for (; param_1 != param_2; param_1 = param_1 + 0x438) {
    FUN_1805b4dc0(param_3,param_1);
    param_3 = param_3 + 0x438;
  }
  return param_3;
}



############ FUN_ 180576310 size=65 ############

void FUN_180576310(undefined8 param_1,void *param_2,longlong param_3)

{
  void *_Memory;
  
  _Memory = param_2;
  if ((0xfff < (ulonglong)(param_3 * 0x1e8)) &&
     (_Memory = *(void **)((longlong)param_2 + -8),
     0x1f < (ulonglong)((longlong)param_2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805afb50 size=716 ############

longlong FUN_1805afb50(undefined8 *param_1,undefined8 *param_2,longlong param_3)

{
  undefined8 *puVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  longlong *plVar5;
  undefined8 *puVar6;
  longlong lVar7;
  
  if (param_1 != param_2) {
    lVar7 = param_3 + 0x28;
    puVar6 = param_1 + 3;
    do {
      plVar5 = puVar6 + -2;
      if ((longlong *)(lVar7 + -0x20) != plVar5) {
        if (0xf < (ulonglong)puVar6[1]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + -0x20,plVar5,*puVar6);
      }
      plVar5 = puVar6 + 2;
      if ((longlong *)lVar7 != plVar5) {
        if (0xf < (ulonglong)puVar6[5]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7,plVar5,puVar6[4]);
      }
      plVar5 = puVar6 + 6;
      if ((longlong *)(lVar7 + 0x20) != plVar5) {
        if (0xf < (ulonglong)puVar6[9]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0x20,plVar5,puVar6[8]);
      }
      plVar5 = puVar6 + 10;
      if ((longlong *)(lVar7 + 0x40) != plVar5) {
        if (0xf < (ulonglong)puVar6[0xd]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0x40,plVar5,puVar6[0xc]);
      }
      plVar5 = puVar6 + 0xe;
      if ((longlong *)(lVar7 + 0x60) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x11]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0x60,plVar5,puVar6[0x10]);
      }
      plVar5 = puVar6 + 0x12;
      if ((longlong *)(lVar7 + 0x80) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x15]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0x80,plVar5,puVar6[0x14]);
      }
      plVar5 = puVar6 + 0x16;
      if ((longlong *)(lVar7 + 0xa0) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x19]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0xa0,plVar5,puVar6[0x18]);
      }
      plVar5 = puVar6 + 0x1a;
      if ((longlong *)(lVar7 + 0xc0) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x1d]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0xc0,plVar5,puVar6[0x1c]);
      }
      plVar5 = puVar6 + 0x1e;
      if ((longlong *)(lVar7 + 0xe0) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x21]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0xe0,plVar5,puVar6[0x20]);
      }
      plVar5 = puVar6 + 0x22;
      if ((longlong *)(lVar7 + 0x100) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x25]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0x100,plVar5,puVar6[0x24]);
      }
      plVar5 = puVar6 + 0x26;
      if ((longlong *)(lVar7 + 0x120) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x29]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0x120,plVar5,puVar6[0x28]);
      }
      plVar5 = puVar6 + 0x2b;
      *(undefined4 *)(lVar7 + 0x140) = *(undefined4 *)(puVar6 + 0x2a);
      if ((longlong *)(lVar7 + 0x148) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x2e]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0x148,plVar5,puVar6[0x2d]);
      }
      plVar5 = puVar6 + 0x33;
      *(undefined8 *)(lVar7 + 0x168) = puVar6[0x2f];
      *(undefined8 *)(lVar7 + 0x170) = puVar6[0x30];
      *(undefined4 *)(lVar7 + 0x178) = *(undefined4 *)(puVar6 + 0x31);
      *(undefined8 *)(lVar7 + 0x180) = puVar6[0x32];
      if ((longlong *)(lVar7 + 0x188) != plVar5) {
        if (0xf < (ulonglong)puVar6[0x36]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar7 + 0x188,plVar5,puVar6[0x35]);
      }
      uVar2 = *(undefined4 *)((longlong)puVar6 + 0x1bc);
      uVar3 = *(undefined4 *)(puVar6 + 0x38);
      uVar4 = *(undefined4 *)((longlong)puVar6 + 0x1c4);
      param_3 = param_3 + 0x1e8;
      *(undefined4 *)(lVar7 + 0x1a8) = *(undefined4 *)(puVar6 + 0x37);
      *(undefined4 *)(lVar7 + 0x1ac) = uVar2;
      *(undefined4 *)(lVar7 + 0x1b0) = uVar3;
      *(undefined4 *)(lVar7 + 0x1b4) = uVar4;
      *(undefined2 *)(lVar7 + 0x1b8) = *(undefined2 *)(puVar6 + 0x39);
      lVar7 = lVar7 + 0x1e8;
      puVar1 = puVar6 + 0x3a;
      puVar6 = puVar6 + 0x3d;
    } while (puVar1 != param_2);
  }
  return param_3;
}



############ FUN_ 1805bbc20 size=180 ############

ulonglong FUN_1805bbc20(ulonglong *param_1,ulonglong param_2)

{
  longlong lVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  
  uVar2 = 0;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  if (param_2 != 0) {
    if (0x864b8a7de6d1d6 < param_2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar4 = param_2 * 0x1e8;
    uVar3 = 0xffffffffffffffff;
    if ((param_2 < 0x864b8a7de6d1d7) && (uVar3 = uVar4, uVar4 < 0x1000)) {
      if (uVar4 != 0) {
        uVar2 = FUN_1811316e0(uVar4);
      }
    }
    else {
      uVar2 = uVar3 + 0x27;
      if (uVar3 + 0x27 <= uVar3) {
        uVar2 = 0xffffffffffffffff;
      }
      lVar1 = FUN_1811316e0(uVar2);
      if (lVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
      uVar2 = lVar1 + 0x27U & 0xffffffffffffffe0;
      *(longlong *)(uVar2 - 8) = lVar1;
    }
    *param_1 = uVar2;
    param_1[1] = uVar2;
    param_1[2] = uVar4 + *param_1;
    uVar2 = CONCAT71((int7)(*param_1 >> 8),1);
  }
  return uVar2;
}



############ FUN_ 1805b1860 size=469 ############

undefined8 * FUN_1805b1860(longlong param_1,longlong param_2,undefined8 *param_3)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  longlong lVar5;
  
  if (param_1 != param_2) {
    lVar5 = param_1 + 0x28;
    do {
      *param_3 = pace::eden::thrift::pub::RemoteLicenseClient::vftable;
      FUN_1805a4070(param_3 + 1,lVar5 + -0x20);
      FUN_1805a4070(param_3 + 5,lVar5);
      FUN_1805a4070(param_3 + 9,lVar5 + 0x20);
      FUN_1805a4070(param_3 + 0xd,lVar5 + 0x40);
      FUN_1805a4070(param_3 + 0x11,lVar5 + 0x60);
      FUN_1805a4070(param_3 + 0x15,lVar5 + 0x80);
      FUN_1805a4070(param_3 + 0x19,lVar5 + 0xa0);
      FUN_1805a4070(param_3 + 0x1d,lVar5 + 0xc0);
      FUN_1805a4070(param_3 + 0x21,lVar5 + 0xe0);
      FUN_1805a4070(param_3 + 0x25,lVar5 + 0x100);
      FUN_1805a4070(param_3 + 0x29,lVar5 + 0x120);
      *(undefined4 *)(param_3 + 0x2d) = *(undefined4 *)(lVar5 + 0x140);
      FUN_1805a4070(param_3 + 0x2e,lVar5 + 0x148);
      param_3[0x32] = *(undefined8 *)(lVar5 + 0x168);
      param_3[0x33] = *(undefined8 *)(lVar5 + 0x170);
      *(undefined4 *)(param_3 + 0x34) = *(undefined4 *)(lVar5 + 0x178);
      param_3[0x35] = *(undefined8 *)(lVar5 + 0x180);
      FUN_1805a4070(param_3 + 0x36,lVar5 + 0x188);
      uVar2 = *(undefined4 *)(lVar5 + 0x1ac);
      uVar3 = *(undefined4 *)(lVar5 + 0x1b0);
      uVar4 = *(undefined4 *)(lVar5 + 0x1b4);
      *(undefined4 *)(param_3 + 0x3a) = *(undefined4 *)(lVar5 + 0x1a8);
      *(undefined4 *)((longlong)param_3 + 0x1d4) = uVar2;
      *(undefined4 *)(param_3 + 0x3b) = uVar3;
      *(undefined4 *)((longlong)param_3 + 0x1dc) = uVar4;
      *(undefined2 *)(param_3 + 0x3c) = *(undefined2 *)(lVar5 + 0x1b8);
      param_3 = param_3 + 0x3d;
      lVar1 = lVar5 + 0x1c0;
      lVar5 = lVar5 + 0x1e8;
    } while (lVar1 != param_2);
  }
  return param_3;
}



############ FUN_ 180673ab0 size=447 ############

void FUN_180673ab0(undefined8 param_1,undefined8 *param_2,char param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  undefined8 *puVar4;
  longlong lVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined1 local_res18;
  undefined8 *local_48;
  longlong *plStack_40;
  undefined8 *local_38;
  longlong *local_30;
  undefined8 *local_28;
  longlong *plStack_20;
  
  if (param_3 != '\0') {
    param_2[1] = *param_2;
  }
  puVar4 = (undefined8 *)FUN_1811316e0(0x38);
  puVar6 = (undefined8 *)0x0;
  puVar7 = puVar6;
  if (puVar4 != (undefined8 *)0x0) {
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0;
    puVar4[4] = 0;
    *puVar4 = apache::thrift::transport::TMemoryBuffer::vftable;
    FUN_1805da740(puVar4,0,0x400,1,0);
    puVar7 = puVar4;
  }
  local_48 = puVar7;
  FUN_1805d5580(&plStack_40,puVar7);
  FUN_1805ae620(&local_48,puVar7,puVar7);
  lVar5 = FUN_1811316e0(0x40);
  if (lVar5 != 0) {
    local_28 = local_48;
    plStack_20 = plStack_40;
    if (plStack_40 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_40 + 1) = (int)plStack_40[1] + 1;
      UNLOCK();
    }
    puVar6 = (undefined8 *)FUN_1806222c0(lVar5,&local_28);
  }
  local_38 = puVar6;
  FUN_180621590(&local_30,puVar6);
  FUN_1805ae620(&local_38,puVar6,puVar6);
  FUN_1807b0250(param_1,local_38);
  lVar5 = local_48[1];
  FUN_1805d5a60(param_2,param_2[1],lVar5,
                (ulonglong)(uint)(*(int *)(local_48 + 3) - (int)lVar5) + lVar5,local_res18);
  if (local_30 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_30 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*local_30 + 8))(local_30);
      LOCK();
      piVar2 = (int *)((longlong)local_30 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_30 + 0x10))(local_30);
      }
    }
  }
  if (plStack_40 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_40 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plStack_40 + 8))(plStack_40);
      LOCK();
      piVar2 = (int *)((longlong)plStack_40 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_40 + 0x10))(plStack_40);
      }
    }
  }
  return;
}



############ FUN_ 1806b86d0 size=1740 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x0001806b8d9b) overlaps instruction at (ram,0x0001806b8d97)
    */
/* WARNING: Removing unreachable block (ram,0x0001806b8d8b) */
/* WARNING: Removing unreachable block (ram,0x0001806b8a55) */
/* WARNING: Removing unreachable block (ram,0x0001806b87cd) */
/* WARNING: Removing unreachable block (ram,0x0001806b8760) */
/* WARNING: Removing unreachable block (ram,0x0001806b877a) */
/* WARNING: Removing unreachable block (ram,0x0001806b877f) */
/* WARNING: Removing unreachable block (ram,0x0001806b87f1) */
/* WARNING: Removing unreachable block (ram,0x0001806b8bd0) */
/* WARNING: Removing unreachable block (ram,0x0001806b9107) */
/* WARNING: Removing unreachable block (ram,0x0001806b8d97) */

void FUN_1806b86d0(longlong param_1,undefined4 param_2,undefined8 param_3,undefined8 param_4)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  ulonglong uVar8;
  uint uVar9;
  int iVar10;
  uint uVar11;
  undefined *puVar12;
  uint uVar13;
  undefined1 *puVar14;
  uint *puVar15;
  uint *puVar16;
  uint *puVar17;
  uint uVar18;
  undefined *puVar19;
  longlong lVar20;
  undefined8 *puVar21;
  uint uVar22;
  int unaff_retaddr;
  undefined1 auStack_118 [32];
  undefined4 uStack_f8;
  undefined8 *puStack_f0;
  undefined8 local_d8;
  uint local_d0;
  undefined4 uStack_cc;
  undefined8 local_c8;
  undefined4 local_c0;
  int local_b8;
  undefined8 uStack_b0;
  longlong lStack_a8;
  undefined8 uStack_a0;
  longlong lStack_98;
  undefined8 uStack_80;
  longlong lStack_78;
  undefined8 uStack_70;
  longlong lStack_68;
  undefined8 local_50;
  
  puVar14 = auStack_118;
  local_50 = 0xfffffffffffffffe;
  local_c0 = 0x2a0;
  local_b8 = 0xf70;
  local_c8 = 0;
  lVar20 = 0x153c270;
  local_d8 = 0x18153c270;
  puVar12 = &DAT_18153c370;
  local_d0 = (uRam000000018153c27c ^
             (uRam000000018153c278 ^
             (uRam000000018153c274 ^ (uRam000000018153c270 ^ 0x811c9dc5) * 0x1000181) * 0x1000181) *
             0x1000181) * 0x1000181;
  uStack_cc = 1;
  do {
    FUN_1806ba2f2(0x6928);
    puVar19 = puVar12 + lVar20;
    puVar12 = (undefined *)(~(lVar20 - (longlong)puVar19) + 1);
    lVar20 = (longlong)puVar19 - (longlong)puVar12;
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar9 != 0);
  uVar18 = (uRam000000018153c294 ^
           (uRam000000018153c290 ^
           (uRam000000018153c28c ^
           (uRam000000018153c288 ^
           (uRam000000018153c284 ^ (uRam000000018153c280 ^ local_d0) * 0x1000181) * 0x1000181) *
           0x1000181) * 0x1000181) * 0x1000181) * 0x1000181;
  uVar9 = uVar18 & 0x34ff;
  iVar10 = uVar9 * uVar9 + 1;
  uVar9 = (iVar10 >> 4) + (iVar10 >> 1) + iVar10 * 0x24924924 >> 0x1d;
  uVar9 = (int)(uVar9 - 7) >> 0x1f & uVar9;
  uVar22 = (uint)puVar12;
  uVar13 = ((uVar22 & 0x1fff) + 1) * (uVar22 & 0x1fff) + 0x2cbb & 0x80000001;
  uVar8 = (longlong)(((int)((-uVar9 | uVar9) ^ (-uVar13 | uVar13)) >> 0x1f) + 0x9747) ^ 0x9743;
  puVar15 = (uint *)(&DAT_18153c2f0 + uVar8);
  uVar9 = (((uVar22 & 0xeff) + 1) * (uVar22 & 0xeff) + 7) % 0x51 <<
          (((char)puVar15 + '\x01') * (char)puVar15 & 1U);
  puVar16 = (uint *)((longlong)puVar15 +
                    (0x34 - (ulonglong)(((int)(-uVar9 | uVar9) >> 0x1f ^ 0xffffffcfU) & 0xb3f3)));
  local_d8 = 0x871d2890fc5b3e35;
  puVar17 = puVar16 + 0x13;
  uVar9 = (*puVar17 ^
          (puVar16[0x12] ^
          (puVar16[0x11] ^
          (puVar16[0x10] ^
          (puVar16[0xf] ^
          (puVar16[0xe] ^
          (puVar16[0xd] ^
          (puVar16[0xc] ^
          (puVar16[0xb] ^
          (puVar16[10] ^
          (puVar16[9] ^
          (puVar16[8] ^
          (puVar16[7] ^
          (puVar16[6] ^
          (puVar16[5] ^
          (puVar16[4] ^
          (puVar16[3] ^
          (puVar16[2] ^
          (puVar16[1] ^
          (*puVar16 ^
          (*puVar15 ^
          (*(uint *)(&DAT_18153c2ec + uVar8) ^
          (*(uint *)(&DAT_18153c2e8 + uVar8) ^
          (*(uint *)(&DAT_18153c2e4 + uVar8) ^
          (*(uint *)(&DAT_18153c2e0 + uVar8) ^
          (*(uint *)(&DAT_18153c2dc + uVar8) ^
          (*(uint *)(&DAT_18153c2d8 + uVar8) ^
          (*(uint *)(&DAT_18153c2d4 + uVar8) ^
          (*(uint *)(&DAT_18153c2d0 + uVar8) ^
          (*(uint *)(&DAT_18153c2cc + uVar8) ^
          (*(uint *)(&DAT_18153c2c8 + uVar8) ^
          (*(uint *)(&DAT_18153c2c4 + uVar8) ^
          (*(uint *)(&DAT_18153c2c0 + uVar8) ^
          (*(uint *)(&DAT_18153c2bc + uVar8) ^
          (*(uint *)(&DAT_18153c2b8 + uVar8) ^
          (*(uint *)(&LAB_18153c2b4 + uVar8) ^
          (*(uint *)(&DAT_18153c2b0 + uVar8) ^
          (*(uint *)(&DAT_18153c2ac + uVar8) ^
          (*(uint *)(&DAT_18153c2a8 + uVar8) ^
          (*(uint *)(&DAT_18153c2a4 + uVar8) ^
          (*(uint *)(uVar8 + 0x18153c2a0) ^
          (*(uint *)(uVar8 + 0x18153c29c) ^
          (*(uint *)(uVar8 + 0x18153c298) ^ (*(uint *)(uVar8 + 0x18153c294) ^ uVar18) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181) *
          0x1000181;
  _local_d0 = CONCAT44(uStack_cc,uVar9);
  uVar22 = uVar22 & 0x5f;
  uVar13 = (uint)puVar17 & 0x38ff;
  uVar13 = ((uVar22 + 1) * (uVar22 + 1) * uVar22 * uVar22 & 3) - (uVar13 * uVar13 + 1) % 7;
  puVar17 = (uint *)((longlong)puVar17 +
                    (0x304 - ((longlong)(((int)(-uVar13 | uVar13) >> 0x1f) * -0x7049) ^ 0x7349U)));
  do {
                    /* WARNING: Bad instruction - Truncating control flow here */
    uVar13 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar13 < 0) {
      uVar13 = (uVar13 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar13 != 0);
  uVar13 = *puVar17;
  uVar18 = puVar17[1];
  uVar22 = puVar17[2];
  uVar1 = puVar17[3];
  uVar2 = puVar17[4];
  uVar3 = puVar17[5];
  uVar4 = puVar17[6];
  uVar5 = puVar17[7];
  uVar6 = puVar17[8];
  uVar7 = puVar17[9];
  do {
    func_0x0001806b8624(0x6928);
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar9 = ~((uVar7 ^ (uVar6 ^ (uVar5 ^ (uVar4 ^ (uVar3 ^ (uVar2 ^ (uVar1 ^ (uVar22 ^ (uVar18 ^ (
                                                  uVar13 ^ uVar9) * 0x1000181) * 0x1000181) *
                                                  0x1000181) * 0x1000181) * 0x1000181) * 0x1000181)
                                       * 0x1000181) * 0x1000181) * 0x1000181) * 0x1000181 +
           0x42263d59) + 0xa957c0b4;
  if ((char)(((int)local_d8 == (uVar9 >> 10 | uVar9 * 0x400000) + 0x6532c396) * '\x17') != '\0') {
    uStack_80 = *(undefined8 *)(param_1 + 0x48);
    lStack_78 = *(longlong *)(param_1 + 0x50);
    if (lStack_78 != 0) {
      LOCK();
      *(int *)(lStack_78 + 8) = *(int *)(lStack_78 + 8) + 1;
      UNLOCK();
    }
    uStack_70 = *(undefined8 *)(param_1 + 8);
    lStack_68 = *(longlong *)(param_1 + 0x10);
    if (lStack_68 != 0) {
      LOCK();
      *(int *)(lStack_68 + 8) = *(int *)(lStack_68 + 8) + 1;
      UNLOCK();
    }
    puStack_f0 = &uStack_80;
    uStack_f8 = *(undefined4 *)(param_1 + 0x40);
    puVar21 = &uStack_70;
    FUN_1806b91d0(param_2,param_3,param_4);
    do {
      *(BADSPACEBASE **)(puVar14 + -8) = register0x00000020;
      *(undefined8 *)(puVar14 + -0x10) = param_4;
      *(undefined8 **)(puVar14 + -0x18) = puVar21;
      lVar20 = -(longlong)local_b8;
      puVar21 = *(undefined8 **)(puVar14 + lVar20 + 0xf58);
      param_4 = *(undefined8 *)(puVar14 + lVar20 + 0xf60);
      register0x00000020 = *(BADSPACEBASE **)(puVar14 + lVar20 + 0xf68);
      puVar14 = puVar14 + lVar20 + 0xf70;
      uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar9 < 0) {
        uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar9 != 0);
    return;
  }
  uStack_b0 = *(undefined8 *)(param_1 + 0x48);
  lStack_a8 = *(longlong *)(param_1 + 0x50);
  if (lStack_a8 != 0) {
    LOCK();
    *(int *)(lStack_a8 + 8) = *(int *)(lStack_a8 + 8) + 1;
    UNLOCK();
  }
  uStack_a0 = *(undefined8 *)(param_1 + 8);
  lStack_98 = *(longlong *)(param_1 + 0x10);
  if (lStack_98 != 0) {
    LOCK();
    *(int *)(lStack_98 + 8) = *(int *)(lStack_98 + 8) + 1;
    UNLOCK();
  }
  puStack_f0 = &uStack_b0;
  uStack_f8 = *(undefined4 *)(param_1 + 0x40);
  FUN_1806b91d0(param_2,param_3,param_4,&uStack_a0);
  func_0x0001806ba7f5();
  thunk_FUN_1805a9280();
  return;
}



############ FUN_ 180671970 size=477 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180671970(longlong param_1,int param_2,undefined8 param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined1 auStack_118 [32];
  int local_f8;
  undefined8 *local_e8;
  longlong *local_e0;
  undefined8 *local_d8;
  longlong *plStack_d0;
  undefined8 *local_c8;
  undefined8 *local_b8;
  longlong *plStack_b0;
  undefined8 local_a8;
  undefined1 local_a0 [40];
  undefined1 local_78 [64];
  ulonglong local_38;
  
  local_a8 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_118;
  puVar5 = (undefined8 *)FUN_1811316e0(0x38);
  puVar6 = (undefined8 *)0x0;
  puVar7 = puVar6;
  local_c8 = puVar5;
  if (puVar5 != (undefined8 *)0x0) {
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = 0;
    puVar5[4] = 0;
    *puVar5 = apache::thrift::transport::TMemoryBuffer::vftable;
    if ((param_1 == 0) && (param_2 != 0)) {
      FUN_1805a4160(local_a0,"TMemoryBuffer given null buffer with non-zero size.");
      FUN_1805d6590(local_78,6,local_a0);
                    /* WARNING: Subroutine does not return */
      _CxxThrowException(local_78,(ThrowInfo *)&DAT_1825fdc30);
    }
    local_f8 = param_2;
    FUN_1805da740(puVar5,param_1,param_2,0);
    puVar7 = puVar5;
  }
  local_d8 = puVar7;
  FUN_1805d5580(&plStack_d0,puVar7);
  FUN_1805ae620(&local_d8,puVar7,puVar7);
  local_c8 = (undefined8 *)FUN_1811316e0(0x40);
  if (local_c8 != (undefined8 *)0x0) {
    local_b8 = local_d8;
    plStack_b0 = plStack_d0;
    if (plStack_d0 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_d0 + 1) = (int)plStack_d0[1] + 1;
      UNLOCK();
    }
    puVar6 = (undefined8 *)FUN_1806222c0(local_c8,&local_b8);
  }
  local_e8 = puVar6;
  FUN_180621590(&local_e0,puVar6);
  FUN_1805ae620(&local_e8,puVar6,puVar6);
  FUN_1807980a0(param_3,local_e8);
  if (local_e0 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_e0 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*local_e0 + 8))(local_e0);
      LOCK();
      piVar2 = (int *)((longlong)local_e0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_e0 + 0x10))(local_e0);
      }
    }
  }
  if (plStack_d0 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_d0 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plStack_d0 + 8))(plStack_d0);
      LOCK();
      piVar2 = (int *)((longlong)plStack_d0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_d0 + 0x10))(plStack_d0);
      }
    }
  }
}



############ FUN_ 1805bc8b0 size=91 ############

ulonglong FUN_1805bc8b0(undefined8 param_1,ulonglong param_2)

{
  longlong lVar1;
  ulonglong uVar2;
  
  if (param_2 < 0x1000) {
    if (param_2 != 0) {
      uVar2 = FUN_1811316e0(param_2);
      return uVar2;
    }
    return 0;
  }
  uVar2 = param_2 + 0x27;
  if (uVar2 <= param_2) {
    uVar2 = 0xffffffffffffffff;
  }
  lVar1 = FUN_1811316e0(uVar2);
  if (lVar1 != 0) {
    uVar2 = lVar1 + 0x27U & 0xffffffffffffffe0;
    *(longlong *)(uVar2 - 8) = lVar1;
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  _invalid_parameter_noinfo_noreturn();
}



############ FUN_ 180677320 size=259 ############

undefined8 *
FUN_180677320(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  *param_1 = pace::eden::thrift::authorize::FindAuthChainsInput::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = pace::eden::thrift::pub::FindAuthOptions::vftable;
  *(undefined4 *)(param_1 + 5) = 1;
  *(undefined2 *)((longlong)param_1 + 0x2c) = 0;
  *(undefined1 *)((longlong)param_1 + 0x34) = 0;
  param_1[9] = 0;
  param_1[10] = 0xf;
  *(undefined1 *)(param_1 + 7) = 0;
  FUN_1805a6cb0(param_1 + 7,&DAT_181baf991,0,param_4,0xfffffffffffffffe);
  param_1[0xd] = 0;
  param_1[0xe] = 0xf;
  *(undefined1 *)(param_1 + 0xb) = 0;
  FUN_1805a6cb0(param_1 + 0xb,&DAT_181baf991,0);
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  *(undefined2 *)(param_1 + 0x11) = 0;
  *(undefined1 *)((longlong)param_1 + 0x8a) = 0;
  *(undefined4 *)(param_1 + 6) = 0;
  param_1[0x12] = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x15] = 0;
  param_1[0x16] = 0;
  param_1[0x17] = 0;
  param_1[0x18] = 0;
  *(undefined4 *)(param_1 + 0x19) = 0;
  *(undefined1 *)((longlong)param_1 + 0xcc) = 0;
  return param_1;
}



############ FUN_ 18060abf0 size=489 ############

void FUN_18060abf0(longlong *param_1,longlong param_2,longlong param_3)

{
  undefined8 *puVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  longlong lVar4;
  ulonglong uVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  
  puVar1 = (undefined8 *)param_1[1];
  puVar7 = (undefined8 *)*param_1;
  uVar2 = (param_3 - param_2) / 0x2f0;
  uVar5 = ((longlong)puVar1 - (longlong)puVar7) / 0x2f0;
  uVar3 = (param_1[2] - (longlong)puVar7) / 0x2f0;
  if (uVar3 < uVar2) {
    if (0x572620ae4c415c < uVar2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar5 = uVar2;
    if ((uVar3 <= 0x572620ae4c415c - (uVar3 >> 1)) && (uVar5 = (uVar3 >> 1) + uVar3, uVar5 < uVar2))
    {
      uVar5 = uVar2;
    }
    if (puVar7 != (undefined8 *)0x0) {
      for (; puVar7 != puVar1; puVar7 = puVar7 + 0x5e) {
        (**(code **)*puVar7)(puVar7,0);
      }
      FUN_1805bd860(param_1,*param_1,uVar3);
    }
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    if (uVar5 != 0) {
      if (0x572620ae4c415c < uVar5) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69c0();
      }
      lVar4 = FUN_1805bc990(param_1,uVar5);
      *param_1 = lVar4;
      param_1[1] = lVar4;
      param_1[2] = uVar5 * 0x2f0 + *param_1;
    }
    lVar4 = FUN_1805b1630(param_2,param_3,*param_1,param_1);
    param_1[1] = lVar4;
  }
  else if (uVar5 < uVar2) {
    lVar4 = uVar5 * 0x2f0 + param_2;
    FUN_18060ae20(param_2,lVar4,puVar7,0);
    lVar4 = FUN_1805b1630(lVar4,param_3,param_1[1],param_1);
    param_1[1] = lVar4;
  }
  else {
    FUN_18060ae20(param_2,param_3,puVar7,0);
    puVar1 = (undefined8 *)param_1[1];
    for (puVar6 = puVar7 + uVar2 * 0x5e; puVar6 != puVar1; puVar6 = puVar6 + 0x5e) {
      (**(code **)*puVar6)(puVar6,0);
    }
    param_1[1] = (longlong)(puVar7 + uVar2 * 0x5e);
  }
  return;
}



############ FUN_ 18066bdc0 size=489 ############

void FUN_18066bdc0(longlong *param_1,longlong param_2,longlong param_3)

{
  undefined8 *puVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  longlong lVar4;
  ulonglong uVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  
  puVar1 = (undefined8 *)param_1[1];
  puVar7 = (undefined8 *)*param_1;
  uVar2 = (param_3 - param_2) / 0x8c0;
  uVar5 = ((longlong)puVar1 - (longlong)puVar7) / 0x8c0;
  uVar3 = (param_1[2] - (longlong)puVar7) / 0x8c0;
  if (uVar3 < uVar2) {
    if (0x1d41d41d41d41d < uVar2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar5 = uVar2;
    if ((uVar3 <= 0x1d41d41d41d41d - (uVar3 >> 1)) && (uVar5 = (uVar3 >> 1) + uVar3, uVar5 < uVar2))
    {
      uVar5 = uVar2;
    }
    if (puVar7 != (undefined8 *)0x0) {
      for (; puVar7 != puVar1; puVar7 = puVar7 + 0x118) {
        (**(code **)*puVar7)(puVar7,0);
      }
      FUN_180576280(param_1,*param_1,uVar3);
    }
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    if (uVar5 != 0) {
      if (0x1d41d41d41d41d < uVar5) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69c0();
      }
      lVar4 = FUN_1805bca90(param_1,uVar5);
      *param_1 = lVar4;
      param_1[1] = lVar4;
      param_1[2] = uVar5 * 0x8c0 + *param_1;
    }
    lVar4 = FUN_1805b1730(param_2,param_3,*param_1,param_1);
    param_1[1] = lVar4;
  }
  else if (uVar5 < uVar2) {
    lVar4 = uVar5 * 0x8c0 + param_2;
    FUN_18066c9f0(param_2,lVar4,puVar7);
    lVar4 = FUN_1805b1730(lVar4,param_3,param_1[1],param_1);
    param_1[1] = lVar4;
  }
  else {
    FUN_18066c9f0(param_2,param_3,puVar7);
    puVar1 = (undefined8 *)param_1[1];
    for (puVar6 = puVar7 + uVar2 * 0x118; puVar6 != puVar1; puVar6 = puVar6 + 0x118) {
      (**(code **)*puVar6)(puVar6,0);
    }
    param_1[1] = (longlong)(puVar7 + uVar2 * 0x118);
  }
  return;
}



############ FUN_ 180575f30 size=177 ############

void FUN_180575f30(longlong *param_1)

{
  undefined8 *puVar1;
  void *pvVar2;
  undefined8 *puVar3;
  void *_Memory;
  
  puVar3 = (undefined8 *)*param_1;
  if (puVar3 == (undefined8 *)0x0) {
    return;
  }
  puVar1 = (undefined8 *)param_1[1];
  for (; puVar3 != puVar1; puVar3 = puVar3 + 0x118) {
    (**(code **)*puVar3)(puVar3,0);
  }
  pvVar2 = (void *)*param_1;
  _Memory = pvVar2;
  if ((0xfff < (ulonglong)(((param_1[2] - (longlong)pvVar2) / 0x8c0) * 0x8c0)) &&
     (_Memory = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 18067b450 size=202 ############

void FUN_18067b450(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::authorize::FindAuthChainsInput::vftable;
  pvVar1 = (void *)param_1[0x16];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[0x18] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[0x13];
  if (pvVar1 == (void *)0x0) {
    FUN_1805b8040(param_1 + 4);
    FUN_180680130(param_1 + 1);
    return;
  }
  pvVar2 = pvVar1;
  if ((0xfff < (ulonglong)(param_1[0x15] - (longlong)pvVar1)) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1806713a0 size=477 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1806713a0(longlong param_1,int param_2,undefined8 param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined1 auStack_118 [32];
  int local_f8;
  undefined8 *local_e8;
  longlong *local_e0;
  undefined8 *local_d8;
  longlong *plStack_d0;
  undefined8 *local_c8;
  undefined8 *local_b8;
  longlong *plStack_b0;
  undefined8 local_a8;
  undefined1 local_a0 [40];
  undefined1 local_78 [64];
  ulonglong local_38;
  
  local_a8 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_118;
  puVar5 = (undefined8 *)FUN_1811316e0(0x38);
  puVar6 = (undefined8 *)0x0;
  puVar7 = puVar6;
  local_c8 = puVar5;
  if (puVar5 != (undefined8 *)0x0) {
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = 0;
    puVar5[4] = 0;
    *puVar5 = apache::thrift::transport::TMemoryBuffer::vftable;
    if ((param_1 == 0) && (param_2 != 0)) {
      FUN_1805a4160(local_a0,"TMemoryBuffer given null buffer with non-zero size.");
      FUN_1805d6590(local_78,6,local_a0);
                    /* WARNING: Subroutine does not return */
      _CxxThrowException(local_78,(ThrowInfo *)&DAT_1825fdc30);
    }
    local_f8 = param_2;
    FUN_1805da740(puVar5,param_1,param_2,0);
    puVar7 = puVar5;
  }
  local_d8 = puVar7;
  FUN_1805d5580(&plStack_d0,puVar7);
  FUN_1805ae620(&local_d8,puVar7,puVar7);
  local_c8 = (undefined8 *)FUN_1811316e0(0x40);
  if (local_c8 != (undefined8 *)0x0) {
    local_b8 = local_d8;
    plStack_b0 = plStack_d0;
    if (plStack_d0 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_d0 + 1) = (int)plStack_d0[1] + 1;
      UNLOCK();
    }
    puVar6 = (undefined8 *)FUN_1806222c0(local_c8,&local_b8);
  }
  local_e8 = puVar6;
  FUN_180621590(&local_e0,puVar6);
  FUN_1805ae620(&local_e8,puVar6,puVar6);
  FUN_1807930d0(param_3,local_e8);
  if (local_e0 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_e0 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*local_e0 + 8))(local_e0);
      LOCK();
      piVar2 = (int *)((longlong)local_e0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_e0 + 0x10))(local_e0);
      }
    }
  }
  if (plStack_d0 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_d0 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plStack_d0 + 8))(plStack_d0);
      LOCK();
      piVar2 = (int *)((longlong)plStack_d0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_d0 + 0x10))(plStack_d0);
      }
    }
  }
}



############ FUN_ 18066bb80 size=568 ############

void FUN_18066bb80(ulonglong *param_1,longlong param_2,longlong param_3)

{
  undefined8 *puVar1;
  longlong lVar2;
  longlong lVar3;
  undefined8 *puVar4;
  ulonglong uVar5;
  undefined8 *puVar6;
  ulonglong uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  
  puVar1 = (undefined8 *)param_1[1];
  puVar4 = (undefined8 *)*param_1;
  lVar3 = (longlong)puVar1 - (longlong)puVar4;
  lVar2 = (param_3 - param_2) + SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816(param_3 - param_2),8);
  uVar7 = (lVar2 >> 7) - (lVar2 >> 0x3f);
  lVar3 = lVar3 + SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816(lVar3),8);
  uVar8 = (lVar3 >> 7) - (lVar3 >> 0x3f);
  lVar2 = (param_1[2] - (longlong)puVar4) +
          SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816((longlong)(param_1[2] - (longlong)puVar4)),8
                );
  uVar9 = (lVar2 >> 7) - (lVar2 >> 0x3f);
  if (uVar9 < uVar7) {
    if (0x186186186186186 < uVar7) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar8 = uVar7;
    if ((uVar9 <= 0x186186186186186 - (uVar9 >> 1)) && (uVar8 = (uVar9 >> 1) + uVar9, uVar8 < uVar7)
       ) {
      uVar8 = uVar7;
    }
    if (puVar4 != (undefined8 *)0x0) {
      for (; puVar4 != puVar1; puVar4 = puVar4 + 0x15) {
        (**(code **)*puVar4)(puVar4,0);
      }
      FUN_1805bd8b0(param_1,*param_1,uVar9);
    }
    uVar7 = 0;
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    if (uVar8 != 0) {
      if (0x186186186186186 < uVar8) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69c0();
      }
      uVar5 = uVar8 * 0xa8;
      uVar9 = 0xffffffffffffffff;
      if ((uVar8 < 0x186186186186187) && (uVar9 = uVar5, uVar5 < 0x1000)) {
        if (uVar5 != 0) {
          uVar7 = FUN_1811316e0(uVar5);
        }
      }
      else {
        uVar7 = uVar9 + 0x27;
        if (uVar9 + 0x27 <= uVar9) {
          uVar7 = 0xffffffffffffffff;
        }
        lVar2 = FUN_1811316e0(uVar7);
        if (lVar2 == 0) {
                    /* WARNING: Subroutine does not return */
          _invalid_parameter_noinfo_noreturn();
        }
        uVar7 = lVar2 + 0x27U & 0xffffffffffffffe0;
        *(longlong *)(uVar7 - 8) = lVar2;
      }
      *param_1 = uVar7;
      param_1[1] = uVar7;
      param_1[2] = *param_1 + uVar5;
    }
    uVar7 = FUN_18066e1c0(param_1,param_2,param_3,*param_1);
    param_1[1] = uVar7;
  }
  else if (uVar8 < uVar7) {
    lVar2 = uVar8 * 0xa8 + param_2;
    FUN_18066c7e0(param_2,lVar2,puVar4);
    uVar7 = FUN_18066e1c0(param_1,lVar2,param_3,param_1[1]);
    param_1[1] = uVar7;
  }
  else {
    FUN_18066c7e0(param_2,param_3,puVar4);
    puVar1 = (undefined8 *)param_1[1];
    for (puVar6 = puVar4 + uVar7 * 0x15; puVar6 != puVar1; puVar6 = puVar6 + 0x15) {
      (**(code **)*puVar6)(puVar6,0);
    }
    param_1[1] = (ulonglong)(puVar4 + uVar7 * 0x15);
  }
  return;
}



############ FUN_ 18067dd60 size=188 ############

longlong FUN_18067dd60(longlong param_1,longlong param_2)

{
  longlong *plVar1;
  
  plVar1 = (longlong *)(param_2 + 0x18);
  *(undefined1 *)(param_1 + 8) = *(undefined1 *)(param_2 + 8);
  *(undefined1 *)(param_1 + 9) = *(undefined1 *)(param_2 + 9);
  *(undefined1 *)(param_1 + 10) = *(undefined1 *)(param_2 + 10);
  *(undefined1 *)(param_1 + 0xb) = *(undefined1 *)(param_2 + 0xb);
  *(undefined1 *)(param_1 + 0xc) = *(undefined1 *)(param_2 + 0xc);
  *(undefined1 *)(param_1 + 0xd) = *(undefined1 *)(param_2 + 0xd);
  *(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(param_2 + 0x10);
  *(undefined1 *)(param_1 + 0x14) = *(undefined1 *)(param_2 + 0x14);
  if ((longlong *)(param_1 + 0x18) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x30)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x18,plVar1,*(undefined8 *)(param_2 + 0x28));
  }
  plVar1 = (longlong *)(param_2 + 0x38);
  if ((longlong *)(param_1 + 0x38) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x50)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x38,plVar1,*(undefined8 *)(param_2 + 0x48));
  }
  *(undefined8 *)(param_1 + 0x58) = *(undefined8 *)(param_2 + 0x58);
  *(undefined8 *)(param_1 + 0x60) = *(undefined8 *)(param_2 + 0x60);
  *(undefined2 *)(param_1 + 0x68) = *(undefined2 *)(param_2 + 0x68);
  *(undefined1 *)(param_1 + 0x6a) = *(undefined1 *)(param_2 + 0x6a);
  return param_1;
}



############ FUN_ 180673570 size=447 ############

void FUN_180673570(undefined8 param_1,undefined8 *param_2,char param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  undefined8 *puVar4;
  longlong lVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined1 local_res18;
  undefined8 *local_48;
  longlong *plStack_40;
  undefined8 *local_38;
  longlong *local_30;
  undefined8 *local_28;
  longlong *plStack_20;
  
  if (param_3 != '\0') {
    param_2[1] = *param_2;
  }
  puVar4 = (undefined8 *)FUN_1811316e0(0x38);
  puVar6 = (undefined8 *)0x0;
  puVar7 = puVar6;
  if (puVar4 != (undefined8 *)0x0) {
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0;
    puVar4[4] = 0;
    *puVar4 = apache::thrift::transport::TMemoryBuffer::vftable;
    FUN_1805da740(puVar4,0,0x400,1,0);
    puVar7 = puVar4;
  }
  local_48 = puVar7;
  FUN_1805d5580(&plStack_40,puVar7);
  FUN_1805ae620(&local_48,puVar7,puVar7);
  lVar5 = FUN_1811316e0(0x40);
  if (lVar5 != 0) {
    local_28 = local_48;
    plStack_20 = plStack_40;
    if (plStack_40 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_40 + 1) = (int)plStack_40[1] + 1;
      UNLOCK();
    }
    puVar6 = (undefined8 *)FUN_1806222c0(lVar5,&local_28);
  }
  local_38 = puVar6;
  FUN_180621590(&local_30,puVar6);
  FUN_1805ae620(&local_38,puVar6,puVar6);
  FUN_1807ab570(param_1,local_38);
  lVar5 = local_48[1];
  FUN_1805d5a60(param_2,param_2[1],lVar5,
                (ulonglong)(uint)(*(int *)(local_48 + 3) - (int)lVar5) + lVar5,local_res18);
  if (local_30 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_30 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*local_30 + 8))(local_30);
      LOCK();
      piVar2 = (int *)((longlong)local_30 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_30 + 0x10))(local_30);
      }
    }
  }
  if (plStack_40 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_40 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plStack_40 + 8))(plStack_40);
      LOCK();
      piVar2 = (int *)((longlong)plStack_40 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_40 + 0x10))(plStack_40);
      }
    }
  }
  return;
}



############ FUN_ 1805a3bb0 size=63 ############

void FUN_1805a3bb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_108 [144];
  undefined1 local_78 [120];
  
  uVar1 = FUN_1805a2010(local_78,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805a1ca0(local_108,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_108,(ThrowInfo *)&DAT_1825fd518);
}



############ FUN_ 1805a9420 size=165 ############

void FUN_1805a9420(uint *param_1)

{
  uint uVar1;
  HANDLE hHandle;
  uint uVar2;
  uint uVar3;
  bool bVar4;
  
  LOCK();
  uVar1 = *param_1;
  *param_1 = *param_1 | 0x80000000;
  UNLOCK();
  if ((int)uVar1 < 0) {
    uVar1 = *param_1;
    do {
      uVar3 = uVar1;
      if ((int)uVar3 < 0) {
        uVar2 = uVar3 + 1;
      }
      else {
        uVar2 = uVar3 | 0x80000000;
      }
      LOCK();
      uVar1 = *param_1;
      bVar4 = uVar3 == uVar1;
      if (bVar4) {
        *param_1 = uVar2;
        uVar1 = uVar3;
      }
      UNLOCK();
    } while (!bVar4);
    if ((int)uVar3 < 0) {
      hHandle = (HANDLE)FUN_1805a9100(param_1);
      do {
        WaitForSingleObject(hHandle,0xffffffff);
        uVar1 = uVar3 & 0x3fffffff | 0x40000000;
        do {
          uVar3 = uVar1;
          uVar2 = uVar3;
          if (-1 < (int)uVar3) {
            uVar2 = uVar3 - 1 | 0x80000000;
          }
          LOCK();
          uVar1 = *param_1;
          bVar4 = uVar3 == uVar1;
          if (bVar4) {
            *param_1 = uVar2 & 0xbfffffff;
            uVar1 = uVar3;
          }
          UNLOCK();
        } while (!bVar4);
      } while ((int)uVar3 < 0);
    }
  }
  return;
}



############ FUN_ 1805a4ab0 size=33 ############

undefined8 * FUN_1805a4ab0(undefined8 *param_1)

{
  FUN_1805a4c10();
  *param_1 = boost::lock_error::vftable;
  return param_1;
}



############ FUN_ 1805b6c80 size=74 ############

undefined8 * FUN_1805b6c80(undefined8 *param_1,undefined8 param_2)

{
  undefined8 local_18;
  undefined1 local_10;
  
  local_10 = 1;
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  local_18 = param_2;
  __std_exception_copy(&local_18);
  *param_1 = std::runtime_error::vftable;
  return param_1;
}



############ FUN_ 1805d5a60 size=507 ############

void FUN_1805d5a60(longlong *param_1,void *param_2,void *param_3,longlong param_4)

{
  longlong lVar1;
  void *pvVar2;
  bool bVar3;
  void *_Dst;
  void *pvVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  size_t _Size;
  ulonglong uVar7;
  ulonglong _Size_00;
  void *pvVar8;
  
  _Size_00 = param_4 - (longlong)param_3;
  lVar1 = *param_1;
  if ((_Size_00 == 1) && (param_2 == (void *)param_1[1])) {
    bVar3 = true;
  }
  else {
    bVar3 = false;
    if (_Size_00 == 0) {
      return;
    }
  }
  pvVar2 = (void *)param_1[1];
  if ((ulonglong)(param_1[2] - (longlong)pvVar2) < _Size_00) {
    if (_Size_00 <= 0x7fffffffffffffffU - ((longlong)pvVar2 - lVar1)) {
      uVar7 = ((longlong)pvVar2 - lVar1) + _Size_00;
      uVar5 = param_1[2] - lVar1;
      uVar6 = uVar7;
      if ((uVar5 <= 0x7fffffffffffffff - (uVar5 >> 1)) &&
         (uVar6 = uVar5 + (uVar5 >> 1), uVar6 < uVar7)) {
        uVar6 = uVar7;
      }
      _Dst = (void *)FUN_1805bc8b0(param_1,uVar6,lVar1,param_4,_Size_00,0xfffffffffffffffe);
      pvVar4 = (void *)(((longlong)param_2 - lVar1) + (longlong)_Dst);
      pvVar8 = _Dst;
      memmove(pvVar4,param_3,_Size_00);
      pvVar2 = (void *)*param_1;
      if (bVar3) {
        _Size = param_1[1] - (longlong)pvVar2;
        pvVar4 = _Dst;
        param_2 = pvVar2;
      }
      else {
        memmove(_Dst,pvVar2,(longlong)param_2 - (longlong)pvVar2);
        pvVar4 = (void *)((longlong)pvVar4 + _Size_00);
        _Size = param_1[1] - (longlong)param_2;
      }
      memmove(pvVar4,param_2,_Size);
      FUN_1805bbe20(param_1,_Dst,uVar7,uVar6,pvVar8);
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_1805a69c0();
  }
  uVar6 = (longlong)pvVar2 - (longlong)param_2;
  if (_Size_00 < uVar6) {
    pvVar4 = (void *)((longlong)pvVar2 - _Size_00);
    memmove(pvVar2,pvVar4,(longlong)pvVar2 - (longlong)pvVar4);
    param_1[1] = ((longlong)pvVar2 - (longlong)pvVar4) + (longlong)pvVar2;
    memmove((void *)((longlong)pvVar2 - ((longlong)pvVar4 - (longlong)param_2)),param_2,
            (longlong)pvVar4 - (longlong)param_2);
    memmove(param_2,param_3,_Size_00);
  }
  else {
    memmove((void *)(_Size_00 + (longlong)param_2),param_2,uVar6);
    param_1[1] = uVar6 + (longlong)(_Size_00 + (longlong)param_2);
    memmove(param_2,param_3,_Size_00);
  }
  return;
}



############ FUN_ 180663c70 size=538 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x000180663e78) overlaps instruction at (ram,0x000180663e75)
    */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x000180664db6) */
/* WARNING: Removing unreachable block (ram,0x000180664860) */
/* WARNING: Removing unreachable block (ram,0x000180664371) */
/* WARNING: Removing unreachable block (ram,0x000180663db3) */
/* WARNING: Removing unreachable block (ram,0x000180663d08) */
/* WARNING: Removing unreachable block (ram,0x000180663ce3) */
/* WARNING: Removing unreachable block (ram,0x000180663d24) */
/* WARNING: Removing unreachable block (ram,0x000180663d29) */
/* WARNING: Removing unreachable block (ram,0x000180663e81) */
/* WARNING: Removing unreachable block (ram,0x000180664354) */
/* WARNING: Removing unreachable block (ram,0x000180664376) */
/* WARNING: Removing unreachable block (ram,0x000180664978) */
/* WARNING: Removing unreachable block (ram,0x000180663e75) */
/* WARNING: Removing unreachable block (ram,0x000180663e84) */
/* WARNING: Removing unreachable block (ram,0x000180663e89) */
/* WARNING: Removing unreachable block (ram,0x000180663e41) */
/* WARNING: Removing unreachable block (ram,0x000180663ded) */
/* WARNING: Removing unreachable block (ram,0x000180663d0f) */
/* WARNING: Removing unreachable block (ram,0x00018066435b) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_180663c70(undefined8 param_1,uint *param_2)

{
  longlong *plVar1;
  _Locimp *p_Var2;
  code *pcVar3;
  void *pvVar4;
  uint *puVar5;
  undefined1 *puVar6;
  facet *pfVar7;
  locale *plVar8;
  __uint64 _Var9;
  undefined8 *puVar10;
  uint uVar11;
  uint uVar12;
  ulonglong uVar13;
  longlong lVar14;
  void *_Memory;
  int iVar15;
  undefined1 *puVar16;
  undefined8 uVar17;
  uint uVar18;
  ulonglong *puVar19;
  uint uVar20;
  longlong in_R10;
  longlong lVar21;
  ulonglong uVar22;
  longlong lVar23;
  undefined4 uVar24;
  int unaff_retaddr;
  undefined1 auStack_348 [32];
  undefined4 local_328;
  ulonglong uStack_320;
  undefined *puStack_318;
  int local_310;
  undefined *puStack_308;
  ulonglong uStack_300;
  int local_2f0;
  undefined8 local_2e8;
  _Locimp *p_Stack_2c8;
  uint *local_2c0;
  int iStack_1ac;
  undefined *apuStack_1a8 [3];
  undefined **ppuStack_190;
  basic_iostream<char,std::char_traits<char>_> abStack_188 [16];
  longlong *plStack_178;
  longlong *plStack_170;
  longlong *plStack_158;
  ulonglong *puStack_150;
  int *piStack_140;
  ulonglong uStack_128;
  uint uStack_120;
  basic_ios<char,std::char_traits<char>_> abStack_110 [104];
  undefined8 local_a8;
  locale alStack_90 [8];
  longlong *plStack_88;
  uint uStack_60;
  uint uStack_5c;
  uint uStack_58;
  uint uStack_54;
  undefined8 uStack_50;
  ulonglong uStack_48;
  ulonglong local_40;
  
  local_a8 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_348;
  local_328 = 0;
  local_310 = 0x770;
  local_2f0 = 0xdb0;
  local_2e8 = param_1;
  local_2c0 = param_2;
  do {
    func_0x0001806620f2();
                    /* WARNING: Bad instruction - Truncating control flow here */
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  puStack_308 = &UNK_18158afd0;
  puStack_318 = &UNK_18158b0d0;
  param_2[4] = 0;
  param_2[5] = 0;
  if (0xf < *(ulonglong *)(param_2 + 6)) {
    param_2 = *(uint **)param_2;
  }
  *(undefined1 *)param_2 = 0;
  uStack_300 = 0x100;
  uVar17 = 0xcc9e2d51;
  uVar11 = (_UNK_18158afd0 * 0x16a88000 | (uint)(_UNK_18158afd0 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ 0xe1e012a0;
  uVar11 = (_UNK_18158afd4 * 0x16a88000 | (uint)(_UNK_18158afd4 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158afd8 * 0x16a88000 | (uint)(_UNK_18158afd8 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158afdc * 0x16a88000 | (uint)(_UNK_18158afdc * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158afe0 * 0x16a88000 | (uint)(_UNK_18158afe0 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158afe4 * 0x16a88000 | (uint)(_UNK_18158afe4 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158afe8 * 0x16a88000 | (uint)(_UNK_18158afe8 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  do {
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  uVar11 = (_UNK_18158afec * 0x16a88000 | (uint)(_UNK_18158afec * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158aff0 * 0x16a88000 | (uint)(_UNK_18158aff0 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158aff4 * 0x16a88000 | (uint)(_UNK_18158aff4 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158aff8 * 0x16a88000 | (uint)(_UNK_18158aff8 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158affc * 0x16a88000 | (uint)(_UNK_18158affc * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b000 * 0x16a88000 | (uint)(_UNK_18158b000 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b004 * 0x16a88000 | (uint)(_UNK_18158b004 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b008 * 0x16a88000 | (uint)(_UNK_18158b008 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b00c * 0x16a88000 | (uint)(_UNK_18158b00c * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b010 * 0x16a88000 | (uint)(_UNK_18158b010 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b014 * 0x16a88000 | (uint)(_UNK_18158b014 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b018 * 0x16a88000 | (uint)(_UNK_18158b018 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b01c * 0x16a88000 | (uint)(_UNK_18158b01c * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b020 * 0x16a88000 | (uint)(_UNK_18158b020 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b024 * 0x16a88000 | (uint)(_UNK_18158b024 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b028 * 0x16a88000 | (uint)(_UNK_18158b028 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b02c * 0x16a88000 | (uint)(_UNK_18158b02c * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b030 * 0x16a88000 | (uint)(_UNK_18158b030 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b034 * 0x16a88000 | (uint)(_UNK_18158b034 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b038 * 0x16a88000 | (uint)(_UNK_18158b038 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b03c * 0x16a88000 | (uint)(_UNK_18158b03c * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b040 * 0x16a88000 | (uint)(_UNK_18158b040 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b044 * 0x16a88000 | (uint)(_UNK_18158b044 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b048 * 0x16a88000 | (uint)(_UNK_18158b048 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b04c * 0x16a88000 | (uint)(_UNK_18158b04c * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b050 * 0x16a88000 | (uint)(_UNK_18158b050 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b054 * 0x16a88000 | (uint)(_UNK_18158b054 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b058 * 0x16a88000 | (uint)(_UNK_18158b058 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b05c * 0x16a88000 | (uint)(_UNK_18158b05c * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b060 * 0x16a88000 | (uint)(_UNK_18158b060 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (_UNK_18158b064 * 0x16a88000 | (uint)(_UNK_18158b064 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar22 = (ulonglong)uVar11;
  uVar11 = (_UNK_18158b068 * 0x16a88000 | (uint)(_UNK_18158b068 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ uVar11;
  uStack_320 = (ulonglong)((uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64);
  lVar23 = (longlong)local_310;
  do {
    uVar13 = 0x6a20;
    func_0x000180666253(0x6a20,uVar22);
    puVar5 = local_2c0;
    lVar21 = in_R10 + uVar22;
    if ((uVar13 & 0xfb00) != 0) {
      uVar22 = uVar22 - lVar21;
    }
    in_R10 = -uVar22;
    uVar22 = lVar21 + uVar22;
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar11 = (_UNK_18158b06c * 0x16a88000 | (uint)(_UNK_18158b06c * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uint)uStack_320;
  uVar11 = (_UNK_18158b070 * 0x16a88000 | (uint)(_UNK_18158b070 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar12 = (_UNK_18158b074 * 0x16a88000 | (uint)(_UNK_18158b074 * -0x3361d2af) >> 0x11) * 0x1b873593
           ^ (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar20 = (uint)uStack_300;
  uVar11 = uVar20 & 0x37f;
  iVar15 = (uVar11 + 2) * (uVar11 + 1) * uVar11;
  uVar18 = (((iVar15 >> 1) - (iVar15 >> 3)) + iVar15 * 0x55555555 >> 0x1e) -
           (((uVar20 & 0x27ff) - 1) * (uVar20 & 0x27ff) & 1);
  uVar22 = (longlong)(int)uVar18 ^ 4;
  uVar11 = (*(int *)(&UNK_18158b074 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b074 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar12 << 0xd | uVar12 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b078 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b078 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b07c + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b07c + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b080 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b080 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b084 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b084 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b088 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b088 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b08c + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b08c + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b090 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b090 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b094 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b094 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b098 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b098 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  puStack_308 = (undefined *)0x2aa5d01287b73703;
  local_310 = 0x87b73703;
  uVar11 = (*(int *)(&UNK_18158b09c + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b09c + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b0a0 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b0a0 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b0a4 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b0a4 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158b0a8 + uVar22) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158b0a8 + uVar22) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar12 = uVar11 & 0xff;
  iVar15 = (uVar12 + 2) * (uVar12 + 1) * uVar12;
  if ((char)(((iVar15 >> 1) - (iVar15 >> 3)) + iVar15 * 0x55555555 >> 0x1e) < '\0') {
    uVar12 = uVar11 & 0x1f;
    uVar12 = uVar12 * uVar12 * (uVar12 + 1) * (uVar12 + 1) & 1;
  }
  else {
    uVar12 = (uint)(uVar22 + 0xd8) & 0x3f;
    iVar15 = (uVar12 + 2) * (uVar12 + 1) * uVar12;
    uVar12 = ((iVar15 >> 1) - (iVar15 >> 3)) + iVar15 * 0x55555555 >> 0x1e;
  }
  if ((uStack_300 & 0x3e) == 0) {
    uVar20 = uVar20 & 0x3ff;
    uVar13 = (ulonglong)uVar20;
    uVar18 = uVar11 & 0x2bff;
    iVar15 = (uVar20 + 2) * (uVar20 + 1) * uVar20;
    lVar21 = (longlong)iVar15;
    uVar20 = 0x2873 >> ((char)iVar15 +
                        ((char)((ulonglong)(lVar21 * 0x55555556) >> 0x20) +
                        (char)((lVar21 / 3 + (lVar21 >> 0x3f) & 0xffffffffU) >> 0x1f)) * -3 +
                        (((char)uVar18 + '\x01') * (char)uVar18 & 1U) & 0x1f);
  }
  else {
    uVar20 = 0x2873;
    uVar13 = uStack_300;
  }
  lVar21 = uVar22 + 0xd8 + (0x24 - (longlong)(int)(0x2853 - uVar12 ^ uVar20));
  uVar11 = (*(int *)(&UNK_18158afd0 + lVar21) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158afd0 + lVar21) * -0x3361d2af) >> 0x11) * 0x1b873593 ^ uVar11;
  uVar11 = (*(int *)(&UNK_18158afd4 + lVar21) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158afd4 + lVar21) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158afd8 + lVar21) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158afd8 + lVar21) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158afdc + lVar21) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158afdc + lVar21) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158afe0 + lVar21) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158afe0 + lVar21) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158afe4 + lVar21) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158afe4 + lVar21) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158afe8 + lVar21) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158afe8 + lVar21) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  uVar11 = (*(int *)(&UNK_18158afec + lVar21) * 0x16a88000 |
           (uint)(*(int *)(&UNK_18158afec + lVar21) * -0x3361d2af) >> 0x11) * 0x1b873593 ^
           (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0xe6546b64;
  do {
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  uVar11 = (uVar11 << 0xd | uVar11 >> 0x13) * 5 + 0x1a69a0be;
  uVar11 = (uVar11 >> 7 | uVar11 * 0x2000000) + 0x32df5f94;
  uVar11 = (uVar11 >> 4 | uVar11 * 0x10000000) ^ 0xd8a728dd;
  uVar22 = (ulonglong)uVar11;
  pfVar7 = (facet *)0x0;
  if (uVar11 != 0x87b73703) {
    uVar24 = func_0x000180665537(lVar23,uVar22,uVar18);
    thunk_FUN_1805a9280(uVar24,uVar22);
    return;
  }
  lVar21 = (longlong)local_2f0;
  puVar6 = auStack_348;
  do {
    puVar16 = puVar6;
    *(undefined **)(puVar16 + -8) = &UNK_180664d88;
    lVar14 = lVar21;
    func_0x0001806651a7();
    *(undefined8 *)(puVar16 + -8) = uVar17;
    *(longlong *)(puVar16 + -0x10) = lVar23;
    *(ulonglong *)(puVar16 + -0x18) = uVar13;
    lVar14 = -lVar14;
    uVar13 = *(ulonglong *)(puVar16 + lVar14 + 0xd98);
    lVar23 = *(longlong *)(puVar16 + lVar14 + 0xda0);
    uVar17 = *(undefined8 *)(puVar16 + lVar14 + 0xda8);
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
    puVar6 = puVar16 + lVar14 + 0xdb0;
  } while (uVar11 != 0);
  plVar1 = *(longlong **)(puVar16 + lVar14 + 0xe10);
  if (*plVar1 == 0x7ffffffffffffffe) goto code_r0x00018066517e;
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664e4c;
  lVar23 = FUN_1811316e0(0x1a8);
  *(longlong *)(puVar16 + lVar14 + 0xe00) = lVar23;
  if (lVar23 != 0) {
    *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664e60;
    pfVar7 = (facet *)FUN_18065a640(lVar23,0);
  }
  apuStack_1a8[0] = &DAT_181bb76c0;
  apuStack_1a8[2] = &DAT_181bb76c8;
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664e91;
  std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>(abStack_110)
  ;
  *(undefined4 *)(puVar16 + lVar14 + 0xdd0) = 8;
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664eb1;
  std::basic_iostream<char,std::char_traits<char>_>::basic_iostream<char,std::char_traits<char>_>
            ((basic_iostream<char,std::char_traits<char>_> *)apuStack_1a8,
             (basic_streambuf<char,std::char_traits<char>_> *)&ppuStack_190);
  *(undefined ***)((longlong)apuStack_1a8 + (longlong)*(int *)(apuStack_1a8[0] + 4)) =
       std::basic_stringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  *(int *)((longlong)&iStack_1ac + (longlong)*(int *)(apuStack_1a8[0] + 4)) =
       *(int *)(apuStack_1a8[0] + 4) + -0x98;
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664ef1;
  std::basic_streambuf<char,std::char_traits<char>_>::basic_streambuf<char,std::char_traits<char>_>
            ((basic_streambuf<char,std::char_traits<char>_> *)&ppuStack_190);
  ppuStack_190 = std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  uStack_128 = 0;
  uStack_120 = 0;
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664f12;
  plVar8 = std::locale::classic();
  p_Var2 = *(_Locimp **)(plVar8 + 8);
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664f1c;
  p_Stack_2c8 = std::locale::_Locimp::_New_Locimp(p_Var2);
  if (pfVar7 != (facet *)0x0) {
    *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664f32;
    _Var9 = std::locale::id::operator_unsigned___int64((id *)&DAT_18265f620);
    *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664f42;
    std::locale::_Locimp::_Locimp_Addfac(p_Stack_2c8,pfVar7,_Var9);
    *(undefined4 *)(p_Stack_2c8 + 0x20) = 0;
    *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664f5f;
    std::_Yarn<char>::operator=((_Yarn<char> *)(p_Stack_2c8 + 0x28),"*");
  }
  iVar15 = *(int *)(apuStack_1a8[0] + 4);
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664f87;
  std::basic_ios<char,std::char_traits<char>_>::imbue
            ((basic_ios<char,std::char_traits<char>_> *)((longlong)apuStack_1a8 + (longlong)iVar15),
             alStack_90);
  if (plStack_88 != (longlong *)0x0) {
    pcVar3 = *(code **)(*plStack_88 + 0x10);
    *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664f9a;
    puVar10 = (undefined8 *)(*pcVar3)();
    if (puVar10 != (undefined8 *)0x0) {
      pcVar3 = *(code **)*puVar10;
      *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664fad;
      (*pcVar3)(puVar10,1);
    }
  }
  if (p_Stack_2c8 != (_Locimp *)0x0) {
    pcVar3 = *(code **)(*(longlong *)p_Stack_2c8 + 0x10);
    *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664fbd;
    puVar10 = (undefined8 *)(*pcVar3)();
    if (puVar10 != (undefined8 *)0x0) {
      pcVar3 = *(code **)*puVar10;
      *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664fd0;
      (*pcVar3)(puVar10,1);
    }
  }
  lVar23 = -1;
  do {
    lVar23 = lVar23 + 1;
  } while (PTR_DAT_18260a810[lVar23] != '\0');
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180664ff3;
  FUN_1805a6cb0(pfVar7 + 0x10);
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180665002;
  FUN_1806531c0(apuStack_1a8 + 2,plVar1);
  uStack_50 = 0;
  uStack_48 = 0xf;
  uStack_60 = uStack_60 & 0xffffff00;
  *(undefined4 *)(puVar16 + lVar14 + 0xdd0) = 0x28;
  if (((uStack_120 & 2) == 0) && (uVar22 = *puStack_150, uVar22 != 0)) {
    lVar23 = *plStack_170;
    *(ulonglong *)(puVar16 + lVar14 + 0xe00) = uVar22;
    puVar19 = &uStack_128;
    if (uStack_128 <= uVar22) {
      puVar19 = (ulonglong *)(puVar16 + lVar14 + 0xe00);
    }
    lVar21 = *puVar19 - lVar23;
code_r0x00018066509b:
    *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_1806650a7;
    FUN_1805a6cb0(&uStack_60,lVar23,lVar21);
  }
  else if (((uStack_120 & 4) == 0) && (*plStack_158 != 0)) {
    lVar23 = *plStack_178;
    lVar21 = (*piStack_140 - lVar23) + *plStack_158;
    goto code_r0x00018066509b;
  }
  if (puVar5 == &uStack_60) {
    if (0xf < uStack_48) {
      pvVar4 = (void *)CONCAT44(uStack_5c,uStack_60);
      _Memory = pvVar4;
      if ((0xfff < uStack_48 + 1) &&
         (_Memory = *(void **)((longlong)pvVar4 + -8),
         0x1f < (ulonglong)((longlong)pvVar4 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
        *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_1806651ae;
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180665118;
      free(_Memory);
    }
  }
  else {
    *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_1806650c2;
    FUN_180485450(puVar5);
    *puVar5 = uStack_60;
    puVar5[1] = uStack_5c;
    puVar5[2] = uStack_58;
    puVar5[3] = uStack_54;
    *(undefined8 *)(puVar5 + 4) = uStack_50;
    *(ulonglong *)(puVar5 + 6) = uStack_48;
  }
  *(undefined ***)((longlong)apuStack_1a8 + (longlong)*(int *)(apuStack_1a8[0] + 4)) =
       std::basic_stringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  *(int *)((longlong)&iStack_1ac + (longlong)*(int *)(apuStack_1a8[0] + 4)) =
       *(int *)(apuStack_1a8[0] + 4) + -0x98;
  ppuStack_190 = std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180665157;
  FUN_18060cb50(&ppuStack_190);
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180665164;
  std::basic_streambuf<char,std::char_traits<char>_>::~basic_streambuf<char,std::char_traits<char>_>
            ((basic_streambuf<char,std::char_traits<char>_> *)&ppuStack_190);
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_180665171;
  std::basic_iostream<char,std::char_traits<char>_>::~basic_iostream<char,std::char_traits<char>_>
            (abStack_188);
  *(undefined8 *)(puVar16 + lVar14 + 0xda8) = 0x18066517e;
  std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>
            (abStack_110);
code_r0x00018066517e:
  *(undefined **)(puVar16 + lVar14 + 0xda8) = &UNK_18066518d;
}



############ FUN_ 1805e1990 size=304 ############

void FUN_1805e1990(undefined8 *param_1,void *param_2,longlong param_3)

{
  void *pvVar1;
  void *pvVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  ulonglong _Size;
  
  pvVar1 = (void *)*param_1;
  _Size = param_3 - (longlong)param_2;
  uVar3 = param_1[2] - (longlong)pvVar1;
  if (uVar3 < _Size) {
    if (0x7fffffffffffffff < _Size) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar4 = _Size;
    if ((uVar3 <= 0x7fffffffffffffff - (uVar3 >> 1)) &&
       (uVar4 = (uVar3 >> 1) + uVar3, uVar4 < _Size)) {
      uVar4 = _Size;
    }
    if (pvVar1 != (void *)0x0) {
      pvVar2 = pvVar1;
      if ((0xfff < uVar3) &&
         (pvVar2 = *(void **)((longlong)pvVar1 + -8),
         0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(pvVar2);
    }
    FUN_1805bbbc0(param_1,uVar4);
    pvVar1 = (void *)*param_1;
    memmove(pvVar1,param_2,_Size);
    param_1[1] = _Size + (longlong)pvVar1;
  }
  else if ((ulonglong)(param_1[1] - (longlong)pvVar1) < _Size) {
    pvVar2 = (void *)((param_1[1] - (longlong)pvVar1) + (longlong)param_2);
    memmove(pvVar1,param_2,(longlong)pvVar2 - (longlong)param_2);
    pvVar1 = (void *)param_1[1];
    memmove(pvVar1,pvVar2,param_3 - (longlong)pvVar2);
    param_1[1] = (param_3 - (longlong)pvVar2) + (longlong)pvVar1;
  }
  else {
    memmove(pvVar1,param_2,_Size);
    param_1[1] = (longlong)pvVar1 + _Size;
  }
  return;
}



############ FUN_ 1805b7220 size=90 ############

void FUN_1805b7220(undefined8 *param_1)

{
  uint uVar1;
  int *piVar2;
  HANDLE hEvent;
  uint *puVar3;
  
  if (*(char *)(param_1 + 1) != '\0') {
    piVar2 = (int *)*param_1;
    *piVar2 = *piVar2 + -1;
    if (*piVar2 == 0) {
      LOCK();
      piVar2[1] = 0;
      UNLOCK();
      puVar3 = (uint *)(piVar2 + 2);
      LOCK();
      uVar1 = *puVar3;
      *puVar3 = *puVar3 + 0x80000000;
      UNLOCK();
      if (((uVar1 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar1)) {
        LOCK();
        uVar1 = *puVar3;
        *puVar3 = *puVar3 | 0x40000000;
        UNLOCK();
        if ((uVar1 >> 0x1e & 1) == 0) {
          hEvent = (HANDLE)FUN_1805a9100();
                    /* WARNING: Could not recover jumptable at 0x0001805b726e. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          SetEvent(hEvent);
          return;
        }
      }
    }
  }
  return;
}



############ FUN_ 180660c00 size=2354 ############

/* WARNING: Instruction at (ram,0x0001806613f1) overlaps instruction at (ram,0x0001806613f0)
    */
/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x0001806613ec) */
/* WARNING: Removing unreachable block (ram,0x0001806611b7) */
/* WARNING: Removing unreachable block (ram,0x000180660cdc) */
/* WARNING: Removing unreachable block (ram,0x00018066133e) */
/* WARNING: Removing unreachable block (ram,0x000180660f41) */
/* WARNING: Removing unreachable block (ram,0x000180660c86) */
/* WARNING: Restarted to delay deadcode elimination for space: stack */

void FUN_180660c00(undefined8 *param_1,longlong param_2,undefined1 param_3)

{
  code *pcVar1;
  longlong lVar2;
  undefined8 *puVar3;
  longlong lVar4;
  undefined8 uVar5;
  longlong *plVar6;
  undefined8 *puVar7;
  undefined8 uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  undefined1 *puVar13;
  undefined1 *puVar14;
  longlong lVar15;
  ulonglong uVar16;
  uint uVar17;
  ulonglong uVar19;
  longlong lVar20;
  ulonglong uVar21;
  int unaff_retaddr;
  undefined1 auStack_3d8 [32];
  undefined1 local_3b8;
  undefined *local_3b0;
  undefined4 local_3a8;
  uint *local_3a0;
  uint local_388;
  undefined8 *local_378;
  longlong local_368;
  undefined8 uStack_358;
  undefined1 auStack_350 [8];
  undefined8 local_348;
  undefined1 auStack_340 [24];
  locale alStack_328 [8];
  longlong *plStack_320;
  undefined1 auStack_318 [8];
  longlong *plStack_310;
  longlong *plStack_300;
  undefined1 auStack_2f8 [80];
  longlong alStack_2a8 [3];
  undefined1 auStack_290 [112];
  undefined4 uStack_220;
  undefined8 uStack_a8;
  char cStack_a0;
  undefined1 uStack_98;
  undefined7 uStack_97;
  undefined8 uStack_88;
  ulonglong uStack_80;
  ulonglong local_48;
  ulonglong uVar18;
  
  local_348 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_3d8;
  uVar10 = (uint)&stack0x00000000;
  uVar21 = 0xee0;
  iVar9 = (uVar10 & 0x68ff) * (uVar10 & 0x68ff) + 1;
  uVar12 = (iVar9 >> 4) + (iVar9 >> 1) + iVar9 * 0x24924924 >> 0x1d;
  if (((int)(uVar12 - 7) >> 0x1f & uVar12 & 0xc0) == 0) {
    uVar12 = uVar10 & 0x33f;
    uVar12 = ((uVar12 + 2) * (uVar12 + 1) * uVar12) % 3;
  }
  else {
    uVar12 = uVar10 & 0x23f;
    iVar9 = (uVar12 + 2) * (uVar12 + 1) * uVar12;
    uVar12 = ((iVar9 >> 1) - (iVar9 >> 3)) + iVar9 * 0x55555555 >> 0x1e;
  }
  uVar16 = (ulonglong)uVar12;
  uVar10 = ((uVar10 & 0x38ff) * (uVar10 & 0x38ff) + 1) % 7 | uVar10;
  local_388 = ((int)(-uVar10 | uVar10) >> 0x1f) * -0x8209 ^ uVar12 - 0x1801 & 0x82b9;
  local_3a0 = &DAT_181522960;
  local_3b0 = &DAT_181522a60;
  uVar10 = ((((((((((((((DAT_181522964 ^ (DAT_181522960 ^ 0x811c9e07) * 0x10001a7) * 0x10001a7 ^
                       DAT_181522968) * 0x10001a7 ^ DAT_18152296c) * 0x10001a7 ^ DAT_181522970) *
                     0x10001a7 ^ DAT_181522974) * 0x10001a7 ^ DAT_181522978) * 0x10001a7 ^
                  DAT_18152297c) * 0x10001a7 ^ DAT_181522980) * 0x10001a7 ^ DAT_181522984) *
                0x10001a7 ^ DAT_181522988) * 0x10001a7 ^ DAT_18152298c) * 0x10001a7 ^ DAT_181522990)
             * 0x10001a7 ^ DAT_181522994) * 0x10001a7 ^ DAT_181522998) * 0x10001a7 ^ DAT_18152299c;
  local_3b8 = param_3;
  local_378 = param_1;
  local_368 = param_2;
  do {
    FUN_180660567();
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  uVar10 = DAT_1815229a0 ^ uVar10 * 0x10001a7;
  do {
    FUN_180662b72(0x4824);
    lVar4 = local_368;
    puVar3 = local_378;
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  local_3b0 = (undefined *)0xf91ade4c15f3e8a7;
  local_3a8 = 0x15f3e8a7;
  do {
    lVar15 = uVar21 + uVar16;
    lVar20 = uVar16 - lVar15;
    uVar21 = -lVar20;
    uVar16 = lVar15 + lVar20;
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  uVar12 = (DAT_181522a3c ^
           (DAT_181522a38 ^
           (DAT_181522a34 ^
           (DAT_181522a30 ^
           (((((((((((((((((((((((((((((((DAT_1815229b4 ^
                                         (DAT_1815229b0 ^
                                         (DAT_1815229ac ^
                                         (DAT_1815229a8 ^
                                         (DAT_1815229a4 ^ uVar10 * 0x10001a7) * 0x10001a7) *
                                         0x10001a7) * 0x10001a7) * 0x10001a7) * 0x10001a7 ^
                                        DAT_1815229b8) * 0x10001a7 ^ DAT_1815229bc) * 0x10001a7 ^
                                      DAT_1815229c0) * 0x10001a7 ^ DAT_1815229c4) * 0x10001a7 ^
                                    DAT_1815229c8) * 0x10001a7 ^ DAT_1815229cc) * 0x10001a7 ^
                                  DAT_1815229d0) * 0x10001a7 ^ DAT_1815229d4) * 0x10001a7 ^
                                DAT_1815229d8) * 0x10001a7 ^ DAT_1815229dc) * 0x10001a7 ^
                              DAT_1815229e0) * 0x10001a7 ^ DAT_1815229e4) * 0x10001a7 ^
                            DAT_1815229e8) * 0x10001a7 ^ DAT_1815229ec) * 0x10001a7 ^ DAT_1815229f0)
                          * 0x10001a7 ^ DAT_1815229f4) * 0x10001a7 ^ DAT_1815229f8) * 0x10001a7 ^
                       DAT_1815229fc) * 0x10001a7 ^ DAT_181522a00) * 0x10001a7 ^ DAT_181522a04) *
                     0x10001a7 ^ DAT_181522a08) * 0x10001a7 ^ DAT_181522a0c) * 0x10001a7 ^
                  DAT_181522a10) * 0x10001a7 ^ DAT_181522a14) * 0x10001a7 ^ DAT_181522a18) *
                0x10001a7 ^ DAT_181522a1c) * 0x10001a7 ^ DAT_181522a20) * 0x10001a7 ^ DAT_181522a24)
             * 0x10001a7 ^ DAT_181522a28) * 0x10001a7 ^ DAT_181522a2c) * 0x10001a7) * 0x10001a7) *
           0x10001a7) * 0x10001a7) * 0x10001a7;
  uVar10 = uVar12 & 0x2aff;
  uVar10 = ((uVar10 + 1) * uVar10 + 7) % 0x51;
  uVar16 = (longlong)(((int)(-uVar10 | uVar10) >> 0x1f) * -0xe4e5) ^ 0xe4e1;
  uVar17 = (*(uint *)(&UNK_181522a54 + uVar16) ^
           (*(uint *)(&UNK_181522a50 + uVar16) ^
           (*(uint *)(&UNK_181522a4c + uVar16) ^
           (*(uint *)(&UNK_181522a48 + uVar16) ^
           (*(uint *)(&UNK_181522a44 + uVar16) ^
           (*(uint *)(&UNK_181522a40 + uVar16) ^
           (*(uint *)((longlong)&DAT_181522a3c + uVar16) ^ uVar12) * 0x10001a7) * 0x10001a7) *
           0x10001a7) * 0x10001a7) * 0x10001a7) * 0x10001a7) * 0x10001a7;
  uVar18 = (ulonglong)uVar17;
  uVar19 = 0;
  lVar15 = 0;
  uVar12 = ((*(uint *)(&UNK_181522a58 + uVar16) ^ uVar17) * 0xd3800 |
           (*(uint *)(&UNK_181522a58 + uVar16) ^ uVar17) * 0x10001a7 >> 0x15) + 0x8b7c351d;
  uVar16 = (ulonglong)uVar12;
  uVar10 = (uVar12 >> 0xb ^ uVar12) >> 1 & 0x7ff;
  uVar10 = ((uVar10 << 0xb | uVar10) * 2 ^ uVar12) + 0x59129b7a;
  uVar12 = uVar10 * 0x100000 | uVar10 >> 0xc;
  uVar10 = (uVar10 & 0xfff ^ uVar12) >> 7 & 1;
  do {
    uVar19 = -(~uVar19 + 1);
    uVar21 = (~uVar21 + 1 ^ 0xffffffffffffffff) + 1;
    uVar11 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  if ((((uVar10 << 0x14 | uVar10) << 7 ^ uVar12) + 0xea0c1759) * 0x29 != 0) {
    thunk_FUN_1805a9280((longlong)(int)uVar21,
                        ((ulonglong)uVar17 - (uVar16 + uVar17) ^ 0xffffffffffffffff) + 1,0x180661818
                       );
    return;
  }
  lVar20 = (longlong)(int)local_388;
  puVar13 = auStack_3d8;
  do {
    puVar14 = puVar13;
    *(ulonglong *)(puVar14 + -8) = uVar19;
    *(ulonglong *)(puVar14 + -0x10) = uVar18;
    *(ulonglong *)(puVar14 + -0x18) = uVar16;
    lVar15 = (-lVar15 ^ 0xffffffffffffffffU) + 1;
    lVar2 = -lVar20;
    uVar16 = *(ulonglong *)(puVar14 + lVar2 + 0x98);
    uVar18 = *(ulonglong *)(puVar14 + lVar2 + 0xa0);
    uVar19 = *(ulonglong *)(puVar14 + lVar2 + 0xa8);
    uVar10 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
    puVar13 = puVar14 + lVar2 + 0xb0;
  } while (uVar10 != 0);
  if (*(longlong *)(lVar4 + 0x10) == 0) {
    *(undefined8 *)(puVar14 + lVar2 + 0x128) = 0x7ffffffffffffffe;
    *(undefined4 *)(puVar14 + lVar2 + 0xe0) = 0xfffffffe;
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661564;
    FUN_1805b41e0(puVar3,puVar14 + lVar2 + 0xe0,puVar14 + lVar2 + 0x128);
  }
  else {
    plVar6 = (longlong *)0x0;
    uStack_a8 = 0;
    uStack_88 = 0;
    uStack_80 = 0xf;
    uStack_98 = 0;
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661599;
    FUN_1806651b0(lVar4,&uStack_a8,0,lVar15);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066159e;
    uVar5 = FUN_180669160();
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806615aa;
    FUN_18065ab80(auStack_2f8,uVar5);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806615bb;
    FUN_180658820(alStack_2a8,3,1);
    if (DAT_18265f610 == (longlong *)0x0) {
      *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806615d2;
      lVar15 = FUN_1811316e0(0x180);
      *(longlong *)(puVar14 + lVar2 + 0x118) = lVar15;
      if (lVar15 != 0) {
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806615e7;
        plVar6 = (longlong *)FUN_18065a970(lVar15,1);
      }
      *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661600;
      DAT_18265f610 = plVar6;
      FUN_1805ccdd0(FUN_18065c9b0,plVar6);
    }
    pcVar1 = *(code **)(*DAT_18265f610 + 0x20);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066160d;
    (*pcVar1)();
    iVar9 = *(int *)(alStack_2a8[0] + 4);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661626;
    uVar5 = std::ios_base::getloc((ios_base *)((longlong)alStack_2a8 + (longlong)iVar9));
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066163a;
    FUN_180652c10(auStack_318,uVar5,DAT_18265f610);
    iVar9 = *(int *)(alStack_2a8[0] + 4);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661657;
    std::basic_ios<char,std::char_traits<char>_>::imbue
              ((basic_ios<char,std::char_traits<char>_> *)((longlong)alStack_2a8 + (longlong)iVar9),
               alStack_328);
    if (plStack_320 != (longlong *)0x0) {
      pcVar1 = *(code **)(*plStack_320 + 0x10);
      *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661667;
      puVar7 = (undefined8 *)(*pcVar1)();
      if (puVar7 != (undefined8 *)0x0) {
        pcVar1 = *(code **)*puVar7;
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066167a;
        (*pcVar1)(puVar7,1);
      }
    }
    if (plStack_310 != (longlong *)0x0) {
      pcVar1 = *(code **)(*plStack_310 + 0x10);
      *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066168a;
      puVar7 = (undefined8 *)(*pcVar1)();
      if (puVar7 != (undefined8 *)0x0) {
        pcVar1 = *(code **)*puVar7;
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066169d;
        (*pcVar1)(puVar7,1);
      }
    }
    if (plStack_300 != (longlong *)0x0) {
      pcVar1 = *(code **)(*plStack_300 + 0x10);
      *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806616ad;
      puVar7 = (undefined8 *)(*pcVar1)();
      if (puVar7 != (undefined8 *)0x0) {
        pcVar1 = *(code **)*puVar7;
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806616c0;
        (*pcVar1)(puVar7,1);
      }
    }
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806616ca;
    FUN_18060cb50(auStack_290);
    uVar5 = uStack_88;
    puVar13 = &uStack_98;
    if (0xf < uStack_80) {
      puVar13 = (undefined1 *)CONCAT71(uStack_97,uStack_98);
    }
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806616f8;
    FUN_18065d910(auStack_290,puVar13,uVar5,uStack_220);
    uStack_358 = 0x7ffffffffffffffe;
    *(undefined4 *)(puVar14 + lVar2 + 0x104) = 0xfffffffe;
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661721;
    FUN_1805b41e0(puVar14 + lVar2 + 0xf0,puVar14 + lVar2 + 0x104,&uStack_358);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066172f;
    FUN_180652c80(alStack_2a8,puVar14 + lVar2 + 0xf0);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661744;
    puVar7 = (undefined8 *)FUN_18065bc00(puVar14 + lVar2 + 0xf0,auStack_340,&uStack_a8);
    uVar5 = *puVar7;
    *(undefined8 *)(puVar14 + lVar2 + 0xf0) = uVar5;
    if (puVar14[lVar2 + 0xd0] != '\0') {
      if (cStack_a0 != '\0') {
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661768;
        lVar15 = FUN_1805c0220(
                              "The time string \"%s\" contains offset information, but you also passed inLocal as true. These are inconsistent."
                              );
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x180661770;
        uVar8 = FUN_1805c0260();
        uVar5 = *(undefined8 *)(lVar15 + 8);
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066177f;
        FUN_1805b2240(uVar5,lVar4);
        uVar5 = *(undefined8 *)(lVar15 + 8);
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x18066178d;
        FUN_1806548b0(uVar5,puVar14 + lVar2 + 0xd0);
        *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806617a2;
        FUN_1805bc880(uVar8,
                      "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libpaceutil\\timeutils.cpp"
                      ,0x10d);
        *(undefined1 **)(puVar14 + lVar2 + 0xa8) = &LAB_1806617b2;
        FUN_180703180(0x42,lVar15,uVar8);
      }
      *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806617c0;
      puVar7 = (undefined8 *)FUN_180662c90(auStack_350,puVar14 + lVar2 + 0xf0);
      uVar5 = *puVar7;
    }
    *puVar3 = uVar5;
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806617cf;
    FUN_18060c820(alStack_2a8);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806617d9;
    FUN_1805a5410(auStack_2f8);
    *(undefined8 *)(puVar14 + lVar2 + 0xa8) = 0x1806617e6;
    FUN_18065baf0(&uStack_a8);
  }
  *(undefined **)(puVar14 + lVar2 + 0xa8) = &UNK_180661b7c;
}



############ FUN_ 18073d980 size=451 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x00018073d9de) */
/* WARNING: Removing unreachable block (ram,0x00018073da48) */
/* WARNING: Removing unreachable block (ram,0x00018073d9ed) */

void FUN_18073d980(undefined8 param_1,undefined8 param_2,undefined8 param_3)

{
  undefined4 uVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  undefined1 auStack_c8 [52];
  uint local_94;
  uint local_78;
  undefined8 local_70;
  undefined8 local_68;
  ulonglong local_48;
  
  local_48 = DAT_182615970 ^ (ulonglong)auStack_c8;
  uVar4 = (uint)&stack0x00000000;
  uVar2 = uVar4 & 0x27f;
  iVar3 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  local_94 = 0x6f49 >> ((byte)(((iVar3 >> 1) - (iVar3 >> 3)) + iVar3 * 0x55555555 >> 0x1e) & 0x1f) ^
             0x6679;
  iVar3 = (uVar4 & 0x2eff) * (uVar4 & 0x2eff) + 1;
  uVar2 = iVar3 * 0x24924924 + (iVar3 >> 4) + (iVar3 >> 1) >> 0x1d;
  uVar2 = (int)(uVar2 - 7) >> 0x1f & uVar2;
  uVar4 = (((uVar4 & 0x18ff) + 1) * (uVar4 & 0x18ff) + 7) % 0x51 | uVar4;
  local_78 = ((int)(-uVar4 | uVar4) >> 0x1f) * -0x616d ^ ((int)(-uVar2 | uVar2) >> 0x1f) * -0x60fd;
  local_70 = param_3;
  local_68 = param_2;
  FUN_18073b050(param_1,param_3);
  uVar1 = FUN_18073db4c();
  out(0x23,uVar1);
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}



############ FUN_ 1806b91d0 size=2156 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1806b91d0(undefined4 param_1,undefined8 *param_2,void **param_3,longlong *param_4,
                  uint param_5,longlong *param_6)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  undefined8 *puVar5;
  undefined8 uVar6;
  longlong lVar7;
  ulonglong uVar8;
  longlong *plVar9;
  ulonglong uVar10;
  void *_Memory;
  byte bVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  byte *pbVar14;
  byte *pbVar15;
  ulonglong uVar16;
  byte bVar17;
  ulonglong uVar18;
  ulonglong uVar19;
  undefined1 auStack_228 [32];
  undefined1 local_208 [8];
  undefined4 local_200 [2];
  byte **local_1f8;
  undefined1 *puStack_1f0;
  undefined4 local_1e8 [2];
  undefined4 local_1e0 [6];
  uint local_1c8;
  undefined **local_1b0;
  void *local_1a8;
  undefined8 uStack_1a0;
  longlong local_198;
  undefined8 local_190;
  undefined1 local_188;
  undefined8 local_184;
  undefined1 local_17c;
  longlong *local_178;
  char *local_170;
  char *local_168 [4];
  ulonglong local_148;
  undefined8 local_140;
  longlong *local_138;
  longlong *local_130;
  undefined8 local_128;
  undefined8 local_120;
  byte **local_118;
  undefined1 *puStack_110;
  undefined **local_108;
  uint local_100;
  byte *local_f8;
  longlong lStack_f0;
  undefined8 local_e8;
  int local_e0;
  byte *local_d8;
  undefined8 uStack_d0;
  undefined8 local_c8;
  uint local_c0;
  undefined8 local_b8;
  undefined8 uStack_b0;
  undefined1 local_a8 [16];
  undefined8 local_98;
  undefined8 local_90;
  undefined1 local_88;
  undefined8 local_80;
  undefined8 local_78;
  undefined8 uStack_70;
  undefined8 local_68;
  undefined4 local_60;
  undefined2 local_5c;
  undefined1 local_5a;
  ulonglong local_58;
  
  local_140 = 0xfffffffffffffffe;
  local_58 = DAT_182615970 ^ (ulonglong)auStack_228;
  local_130 = param_6;
  local_108 = pace::eden::thrift::authorize::SendEncryptedCommandInput::vftable;
  local_100 = 0;
  local_f8 = (byte *)0x0;
  lStack_f0 = 0;
  local_e8 = 0;
  local_e0 = 0;
  local_d8 = (byte *)0x0;
  uStack_d0 = 0;
  local_c8 = 0;
  local_c0 = 0;
  local_b8 = 0;
  uStack_b0 = 0;
  local_98 = 0;
  local_90 = 0xf;
  local_a8[0] = 0;
  local_200[0] = param_1;
  local_178 = param_4;
  local_138 = param_4;
  FUN_1805a6cb0(local_a8,&DAT_181baf991,0);
  local_88 = 0;
  local_80 = 0;
  local_78 = 0;
  uStack_70 = 0;
  local_68 = 4;
  local_60 = 0;
  local_5c = 0;
  local_5a = 0;
  local_1b0 = pace::eden::thrift::authorize::SendEncryptedCommandReturn::vftable;
  local_1a8 = (void *)0x0;
  uStack_1a0 = 0;
  local_198 = 0;
  local_190 = 0;
  local_188 = 0;
  local_184 = 4;
  local_17c = 0;
  if (*param_6 == 0) {
    local_1f8 = (byte **)FUN_1811316e0(0x18);
    if (local_1f8 != (byte **)0x0) {
      FUN_1805a48c0(local_1f8,
                    "Channel encryptor not provided to sendEncryptedCommand_AuthorizationServer");
    }
    puVar5 = (undefined8 *)FUN_1811316e0(0x18);
    local_1f8 = (byte **)puVar5;
    if (puVar5 == (undefined8 *)0x0) {
      puVar5 = (undefined8 *)0x0;
    }
    else {
      FUN_1805a48c0(puVar5,"|__FILE__|%s|__LINE__|%d");
      *puVar5 = pace::PaceLocationInfoFormatter::vftable;
    }
    local_1e8[0] = 0x187c;
    local_170 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar6 = FUN_1805a21d0(puVar5[1],&local_170);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar6,local_1e8);
  }
  uVar4 = (**(code **)(*(longlong *)*param_6 + 0x48))();
  uVar18 = (ulonglong)uVar4;
  if (uVar4 == 0) {
    local_1f8 = (byte **)FUN_1811316e0(0x18);
    if (local_1f8 != (byte **)0x0) {
      FUN_1805a48c0(local_1f8,"Channel encryptor not setup properly. Blocksize is zero.");
    }
    puVar5 = (undefined8 *)FUN_1811316e0(0x18);
    local_1f8 = (byte **)puVar5;
    if (puVar5 == (undefined8 *)0x0) {
      puVar5 = (undefined8 *)0x0;
    }
    else {
      FUN_1805a48c0(puVar5,"|__FILE__|%s|__LINE__|%d");
      *puVar5 = pace::PaceLocationInfoFormatter::vftable;
    }
    local_1e0[0] = 0x1884;
    local_168[0] = 
    "d:\\jenkins\\full\\eden\\client\\pace\\customer\\libraries\\src\\libpacefusion\\authorizationverifier.cpp"
    ;
    uVar6 = FUN_1805a21d0(puVar5[1],local_168);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar6,local_1e0);
  }
  local_e0 = (int)param_2[1] - (int)*param_2;
  if (local_e0 < 1) {
    local_1f8 = (byte **)FUN_1811316e0(0x18);
    if (local_1f8 == (byte **)0x0) {
      lVar7 = 0;
    }
    else {
      lVar7 = FUN_1805a48c0(local_1f8,
                            "The command %d provided to sendEncryptedCommand_AuthorizationServer has no data"
                           );
    }
    puVar5 = (undefined8 *)FUN_1811316e0(0x18);
    local_1f8 = (byte **)puVar5;
    if (puVar5 != (undefined8 *)0x0) {
      FUN_1805a48c0(puVar5,"|__FILE__|%s|__LINE__|%d");
      *puVar5 = pace::PaceLocationInfoFormatter::vftable;
    }
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(*(undefined8 *)(lVar7 + 8),local_200);
  }
  local_128 = param_2[1];
  local_120 = *param_2;
  FUN_1805e1990(&local_f8,local_120,local_128,local_208[0]);
  local_208[0] = 0x5a;
  local_1f8 = &local_f8;
  puStack_1f0 = local_208;
  local_118 = local_1f8;
  puStack_110 = puStack_1f0;
  FUN_1805e1ee0(&local_f8,
                (uVar18 - ((longlong)local_e0 + 4U) % uVar18) % uVar18 + (longlong)local_e0 + 4,
                &local_118);
  lVar7 = lStack_f0 - (longlong)local_f8;
  FUN_180621500(param_1,local_f8 + lVar7 + -4);
  FUN_1805b1330(&local_d8,uVar18,&local_d8);
  FUN_180605430(local_d8,uVar18);
  uVar19 = 0xffffffff;
  uVar13 = 0xffffffff;
  uVar8 = 0;
  uVar10 = uVar8;
  uVar12 = uVar8;
  do {
    if ((uVar13 & 1) != 0) {
      uVar10 = (ulonglong)((uint)uVar10 | 1 << (0x1fU - (int)uVar12 & 0x1f));
    }
    uVar12 = uVar12 + 1;
    uVar13 = uVar13 >> 1;
  } while (uVar12 < 0x20);
  if (DAT_18265fac0 == '\0') {
    bVar17 = 0;
    do {
      bVar11 = 0x80;
      uVar13 = uVar8;
      do {
        uVar4 = (uint)uVar13;
        if ((bVar17 & bVar11) != 0) {
          uVar4 = uVar4 ^ 0x80000000;
        }
        if ((int)uVar4 < 0) {
          uVar4 = uVar4 * 2 ^ 0x4c11db7;
        }
        else {
          uVar4 = uVar4 * 2;
        }
        uVar13 = (ulonglong)uVar4;
        bVar11 = bVar11 >> 1;
        uVar12 = uVar8;
        uVar16 = uVar8;
      } while (bVar11 != 0);
      do {
        if ((uVar13 & 1) != 0) {
          uVar16 = (ulonglong)((uint)uVar16 | 1 << (0x1fU - (int)uVar12 & 0x1f));
        }
        uVar12 = uVar12 + 1;
        uVar13 = uVar13 >> 1;
      } while (uVar12 < 0x20);
      uVar12 = 0;
      uVar13 = uVar8;
      bVar11 = bVar17;
      do {
        if ((bVar11 & 1) != 0) {
          uVar12 = (ulonglong)((uint)uVar12 & 0xff | 1 << (7U - (int)uVar13 & 0x1f));
        }
        uVar13 = uVar13 + 1;
        bVar11 = bVar11 >> 1;
      } while (uVar13 < 8);
      *(int *)(&DAT_18265f6c0 + (uVar12 & 0xff) * 4) = (int)uVar16;
      bVar17 = bVar17 + 1;
    } while (bVar17 != 0);
    DAT_18265fac0 = '\x01';
  }
  uVar13 = (longlong)(local_d8 + uVar18) - (longlong)local_d8;
  if (local_d8 + uVar18 < local_d8) {
    uVar13 = uVar8;
  }
  if (uVar13 != 0) {
    pbVar14 = local_d8;
    do {
      uVar10 = (ulonglong)
               (*(uint *)(&DAT_18265f6c0 + (ulonglong)(byte)((byte)uVar10 ^ *pbVar14) * 4) ^
               (uint)(uVar10 >> 8));
      pbVar14 = pbVar14 + 1;
    } while ((ulonglong)((longlong)pbVar14 - (longlong)local_d8) < uVar13);
  }
  local_c0 = (uint)uVar10;
  uVar13 = (longlong)(local_f8 + lVar7) - (longlong)local_f8;
  if (local_f8 + lVar7 < local_f8) {
    uVar13 = uVar8;
  }
  if (uVar13 != 0) {
    pbVar14 = local_f8;
    do {
      local_c0 = *(uint *)(&DAT_18265f6c0 + (ulonglong)(byte)((byte)uVar10 ^ *pbVar14) * 4) ^
                 (uint)(uVar10 >> 8);
      uVar10 = (ulonglong)local_c0;
      pbVar14 = pbVar14 + 1;
    } while ((ulonglong)((longlong)pbVar14 - (longlong)local_f8) < uVar13);
  }
  local_c0 = ~local_c0;
  (**(code **)(*(longlong *)*param_6 + 0x20))((longlong *)*param_6,1,&local_d8);
  (**(code **)(*(longlong *)*param_6 + 0x40))((longlong *)*param_6,&local_f8);
  local_100 = FUN_180620450(local_d8 + 0xb);
  local_100 = local_100 ^ param_5;
  plVar9 = (longlong *)((longlong)*(int *)(*(longlong *)*local_178 + 8) + *local_178);
  (**(code **)(*plVar9 + 0x128))(plVar9,&local_1b0,&local_108,4);
  if (param_3 != &local_1a8) {
    FUN_1805e1990(param_3,local_1a8,uStack_1a0);
  }
  uVar13 = (longlong)param_3[1] - (longlong)*param_3;
  local_148 = uVar13;
  if (uVar13 != 0) {
    (**(code **)(*(longlong *)*param_6 + 0x30))((longlong *)*param_6,param_3);
    uVar10 = uVar8;
    uVar12 = uVar8;
    do {
      if ((uVar19 & 1) != 0) {
        uVar12 = (ulonglong)((uint)uVar12 | 1 << (0x1fU - (int)uVar10 & 0x1f));
      }
      uVar10 = uVar10 + 1;
      uVar19 = uVar19 >> 1;
    } while (uVar10 < 0x20);
    uVar19 = (longlong)(local_d8 + uVar18) - (longlong)local_d8;
    if (local_d8 + uVar18 < local_d8) {
      uVar19 = uVar8;
    }
    if (uVar19 != 0) {
      pbVar14 = local_d8;
      do {
        uVar12 = (ulonglong)
                 (*(uint *)(&DAT_18265f6c0 + (ulonglong)(byte)((byte)uVar12 ^ *pbVar14) * 4) ^
                 (uint)(uVar12 >> 8));
        pbVar14 = pbVar14 + 1;
      } while ((ulonglong)((longlong)pbVar14 - (longlong)local_d8) < uVar19);
    }
    local_1c8 = (uint)uVar12;
    pbVar14 = *param_3;
    uVar19 = (longlong)(pbVar14 + uVar13) - (longlong)pbVar14;
    if (pbVar14 + uVar13 < pbVar14) {
      uVar19 = uVar8;
    }
    if (uVar19 != 0) {
      pbVar15 = pbVar14;
      do {
        local_1c8 = *(uint *)(&DAT_18265f6c0 + (ulonglong)(byte)((byte)uVar12 ^ *pbVar15) * 4) ^
                    (uint)(uVar12 >> 8);
        uVar12 = (ulonglong)local_1c8;
        pbVar15 = pbVar15 + 1;
      } while ((ulonglong)((longlong)pbVar15 - (longlong)pbVar14) < uVar19);
    }
    local_1c8 = ~local_1c8;
    if (local_1c8 != local_190._4_4_) {
      local_1f8 = (byte **)FUN_1811316e0(0x18);
      if (local_1f8 != (byte **)0x0) {
        uVar8 = FUN_1805a48c0(local_1f8,
                              "The result for command %d has a bad checksum (calculated: 0x%08X, provided: 0x%08X)"
                             );
      }
      puVar5 = (undefined8 *)FUN_1811316e0(0x18);
      local_1f8 = (byte **)puVar5;
      if (puVar5 != (undefined8 *)0x0) {
        FUN_1805a48c0(puVar5,"|__FILE__|%s|__LINE__|%d");
        *puVar5 = pace::PaceLocationInfoFormatter::vftable;
      }
                    /* WARNING: Subroutine does not return */
      FUN_1805b20d0(*(undefined8 *)(uVar8 + 8),local_200);
    }
    uVar19 = (ulonglong)(int)local_190;
    if (((uVar19 == 0) || (uVar13 < uVar19)) || (uVar19 <= uVar13 - uVar18)) {
      local_1f8 = (byte **)FUN_1811316e0(0x18);
      if (local_1f8 == (byte **)0x0) {
        lVar7 = 0;
      }
      else {
        lVar7 = FUN_1805a48c0(local_1f8,
                              "The result for command %d has a bad size of %d (encrypted size: %d)")
        ;
      }
      puVar5 = (undefined8 *)FUN_1811316e0(0x18);
      local_1f8 = (byte **)puVar5;
      if (puVar5 != (undefined8 *)0x0) {
        FUN_1805a48c0(puVar5,"|__FILE__|%s|__LINE__|%d");
        *puVar5 = pace::PaceLocationInfoFormatter::vftable;
      }
                    /* WARNING: Subroutine does not return */
      FUN_1805b20d0(*(undefined8 *)(lVar7 + 8),local_200);
    }
    FUN_1805b0f50(param_3,uVar19,param_3);
    local_1b0 = pace::eden::thrift::authorize::SendEncryptedCommandReturn::vftable;
    if (local_1a8 == (void *)0x0) {
      FUN_18067d1b0(&local_108);
      plVar9 = (longlong *)local_178[1];
      if (plVar9 != (longlong *)0x0) {
        LOCK();
        plVar1 = plVar9 + 1;
        lVar7 = *plVar1;
        *(int *)plVar1 = (int)*plVar1 + -1;
        UNLOCK();
        if ((int)lVar7 == 1) {
          (**(code **)(*plVar9 + 8))(plVar9);
          LOCK();
          piVar2 = (int *)((longlong)plVar9 + 0xc);
          iVar3 = *piVar2;
          *piVar2 = *piVar2 + -1;
          UNLOCK();
          if (iVar3 == 1) {
            (**(code **)(*plVar9 + 0x10))(plVar9);
          }
        }
      }
      plVar9 = (longlong *)param_6[1];
      if (plVar9 != (longlong *)0x0) {
        LOCK();
        plVar1 = plVar9 + 1;
        lVar7 = *plVar1;
        *(int *)plVar1 = (int)*plVar1 + -1;
        UNLOCK();
        if ((int)lVar7 == 1) {
          (**(code **)(*plVar9 + 8))(plVar9);
          LOCK();
          piVar2 = (int *)((longlong)plVar9 + 0xc);
          iVar3 = *piVar2;
          *piVar2 = *piVar2 + -1;
          UNLOCK();
          if (iVar3 == 1) {
            (**(code **)(*plVar9 + 0x10))(plVar9);
          }
        }
      }
    }
    _Memory = local_1a8;
    if ((0xfff < (ulonglong)(local_198 - (longlong)local_1a8)) &&
       (_Memory = *(void **)((longlong)local_1a8 + -8),
       0x1f < (ulonglong)((longlong)local_1a8 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(_Memory);
  }
  local_1f8 = (byte **)FUN_1811316e0(0x18);
  if (local_1f8 != (byte **)0x0) {
    uVar8 = FUN_1805a48c0(local_1f8,"The result for command %d has no result data");
  }
  puVar5 = (undefined8 *)FUN_1811316e0(0x18);
  local_1f8 = (byte **)puVar5;
  if (puVar5 != (undefined8 *)0x0) {
    FUN_1805a48c0(puVar5,"|__FILE__|%s|__LINE__|%d");
    *puVar5 = pace::PaceLocationInfoFormatter::vftable;
  }
                    /* WARNING: Subroutine does not return */
  FUN_1805b20d0(*(undefined8 *)(uVar8 + 8),local_200);
}



############ FUN_ 1806863a0 size=521 ############

/* WARNING: Instruction at (ram,0x00018068661c) overlaps instruction at (ram,0x00018068661b)
    */
/* WARNING: Possible PIC construction at 0x0001806867f8: Changing call to branch */
/* WARNING: Removing unreachable block (ram,0x0001806867fd) */
/* WARNING: Removing unreachable block (ram,0x000180686616) */

ulonglong FUN_1806863a0(longlong param_1)

{
  uint uVar1;
  ulonglong uVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int unaff_retaddr;
  undefined1 auStack_1b8 [48];
  undefined4 uStack_188;
  undefined8 uStack_180;
  longlong local_178;
  undefined8 uStack_170;
  undefined8 uStack_160;
  undefined8 uStack_158;
  undefined4 uStack_150;
  uint local_14c;
  uint local_148;
  undefined8 uStack_c8;
  longlong local_b8;
  undefined1 local_b0 [64];
  undefined8 local_70;
  ulonglong local_30;
  
  local_70 = 0xfffffffffffffffe;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_1b8;
  uVar4 = (uint)&stack0x00000000;
  iVar3 = (uVar4 & 0x15ff) * (uVar4 & 0x15ff) + 1;
  uVar5 = (iVar3 >> 4) + (iVar3 >> 1) + iVar3 * 0x24924924 >> 0x1d;
  uVar1 = uVar4 & 0x13f;
  uVar1 = ((int)(uVar5 - 7) >> 0x1f & uVar5) - ((uVar1 + 2) * (uVar1 + 1) * uVar1) % 3;
  local_14c = ((int)(-uVar1 | uVar1) >> 0x1f) * -0xcfd1 ^ 0xcf91;
  local_148 = 0x68f6;
  if (((ulonglong)&stack0x00000000 & 0x1a0) == 0) {
    uVar1 = uVar4 & 0x3ff;
    uVar5 = (uVar4 & 0x36ff) * (uVar4 & 0x36ff) + 1;
    local_148 = 0x68f6 >> ((byte)(((uVar1 + 2) * (uVar1 + 1) * uVar1) % 3 <<
                                 ((char)uVar5 + (char)(uVar5 / 7) * -7 & 0x1fU)) & 0x1f);
  }
  uVar4 = uVar4 & 0x27f;
  local_148 = 0x6456 << ((char)(((uVar4 + 2) * (uVar4 + 1) * uVar4) / 3) * -3 & 0x1fU) ^ local_148;
  local_178 = param_1;
  local_b8 = param_1;
  FUN_1805b45f0(local_b0,param_1 + 0x18);
  do {
    FUN_180684d35(0xc31c);
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  do {
    uVar2 = 0xc31c;
    uVar1 = FUN_180685e49();
    if ((uVar2 & 0xdb00) == 0) {
      return (ulonglong)CONCAT31((int3)((uVar1 & 0x204ebf1) >> 8),(char)(uVar1 & 0x204ebf1) + '$');
    }
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uStack_158 = 0x1ffc0;
  uStack_160 = 0x180200c00;
  uStack_180 = 0x180220bc0;
  uStack_188 = 0x2d3bb391;
  uStack_170 = 0x1ffc0;
  uStack_150 = 0x5bd1e995;
  uStack_c8 = uStack_160;
                    /* WARNING: Could not recover jumptable at 0x000180686955. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar2 = FUN_18068dd02();
  return uVar2;
}



############ FUN_ 1805a4e80 size=87 ############

void FUN_1805a4e80(longlong param_1)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong *plVar4;
  longlong lVar5;
  
  plVar4 = *(longlong **)(param_1 + 8);
  if (plVar4 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar4 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plVar4 + 8))(plVar4);
      LOCK();
      piVar2 = (int *)((longlong)plVar4 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar4 + 0x10))(plVar4);
      }
    }
  }
  return;
}



############ FUN_ 18067c9c0 size=238 ############

void FUN_18067c9c0(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::authorize::OpenQuicklyEncryptedChannelInput::vftable;
  if (0xf < (ulonglong)param_1[0xb]) {
    pvVar1 = (void *)param_1[8];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0xb] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0xb] = 0xf;
  param_1[10] = 0;
  *(undefined1 *)(param_1 + 8) = 0;
  pvVar1 = (void *)param_1[4];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[6] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[1];
  if (pvVar1 == (void *)0x0) {
    return;
  }
  pvVar2 = pvVar1;
  if ((0xfff < (ulonglong)(param_1[3] - (longlong)pvVar1)) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 18066b810 size=874 ############

undefined8 *
FUN_18066b810(undefined8 *param_1,undefined8 param_2,undefined1 param_3,undefined4 param_4,
             int param_5)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong *plVar4;
  longlong lVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  longlong *local_f8;
  longlong local_f0;
  longlong local_e8;
  undefined8 local_d8;
  longlong *plStack_d0;
  longlong local_c8 [2];
  undefined8 local_b8;
  longlong *plStack_b0;
  undefined8 local_a8;
  longlong *plStack_a0;
  undefined8 local_98;
  longlong *plStack_90;
  undefined8 local_88;
  longlong *plStack_80;
  undefined8 local_78;
  longlong *plStack_70;
  undefined8 local_68;
  longlong *plStack_60;
  undefined8 local_58;
  undefined1 local_50 [40];
  
  local_58 = 0xfffffffffffffffe;
  uVar7 = 0;
  lVar5 = FUN_1811316e0(0xb0);
  uVar6 = uVar7;
  local_c8[0] = lVar5;
  if (lVar5 != 0) {
    uVar6 = FUN_1805a4070(local_50,param_2);
    uVar6 = FUN_180927880(lVar5,uVar6);
  }
  local_d8 = uVar6;
  FUN_18066b780(&plStack_d0,uVar6);
  FUN_1805ae620(&local_d8,uVar6,uVar6);
  lVar5 = __RTDynamicCast(local_d8,0,&apache::thrift::transport::TTransport::RTTI_Type_Descriptor,
                          &apache::thrift::transport::TAsioLocalSocket::RTTI_Type_Descriptor,0);
  local_f8 = plStack_d0;
  if (plStack_d0 != (longlong *)0x0) {
    LOCK();
    *(int *)(plStack_d0 + 1) = (int)plStack_d0[1] + 1;
    UNLOCK();
  }
  if (lVar5 == 0) {
    local_c8[0] = 0;
    FUN_18060c7a0(&local_f8,local_c8);
  }
  plVar1 = local_f8;
  FUN_18092b460(lVar5,param_5 * 1000);
  plVar4 = local_f8;
  if (plVar1 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar1 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*local_f8 + 8))(local_f8);
      LOCK();
      piVar2 = (int *)((longlong)plVar4 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_f8 + 0x10))();
      }
    }
  }
  local_f0 = FUN_1811316e0(0x50);
  uVar6 = uVar7;
  if (local_f0 != 0) {
    local_98 = local_d8;
    plStack_90 = plStack_d0;
    if (plStack_d0 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_d0 + 1) = (int)plStack_d0[1] + 1;
      UNLOCK();
    }
    uVar6 = FUN_180623170(local_f0,&local_98);
  }
  local_b8 = uVar6;
  FUN_1806230a0(&plStack_b0,uVar6);
  FUN_1805ae620(&local_b8,uVar6,uVar6);
  local_e8 = FUN_1811316e0(0x40);
  uVar6 = uVar7;
  if (local_e8 != 0) {
    local_88 = local_b8;
    plStack_80 = plStack_b0;
    if (plStack_b0 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_b0 + 1) = (int)plStack_b0[1] + 1;
      UNLOCK();
    }
    uVar6 = FUN_1806222c0(local_e8,&local_88);
  }
  local_a8 = uVar6;
  FUN_180621590(&plStack_a0,uVar6);
  FUN_1805ae620(&local_a8,uVar6,uVar6);
  local_78 = local_b8;
  plStack_70 = plStack_b0;
  if (plStack_b0 != (longlong *)0x0) {
    LOCK();
    *(int *)(plStack_b0 + 1) = (int)plStack_b0[1] + 1;
    UNLOCK();
  }
  FUN_1806233d0(&local_78,param_3,param_4,0);
  local_e8 = FUN_1811316e0(0x60);
  if (local_e8 != 0) {
    local_68 = local_a8;
    plStack_60 = plStack_a0;
    if (plStack_a0 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_a0 + 1) = (int)plStack_a0[1] + 1;
      UNLOCK();
    }
    uVar7 = FUN_180674ad0(local_e8,&local_68,1);
  }
  *param_1 = uVar7;
  FUN_18066b470(param_1 + 1,uVar7);
  FUN_1805ae620(param_1,uVar7,uVar7);
  if (plStack_a0 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_a0 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plStack_a0 + 8))(plStack_a0);
      LOCK();
      piVar2 = (int *)((longlong)plStack_a0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_a0 + 0x10))(plStack_a0);
      }
    }
  }
  if (plStack_b0 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_b0 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plStack_b0 + 8))(plStack_b0);
      LOCK();
      piVar2 = (int *)((longlong)plStack_b0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_b0 + 0x10))(plStack_b0);
      }
    }
  }
  if (plStack_d0 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_d0 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plStack_d0 + 8))(plStack_d0);
      LOCK();
      piVar2 = (int *)((longlong)plStack_d0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_d0 + 0x10))(plStack_d0);
      }
    }
  }
  return param_1;
}



############ FUN_ 1806ab5b0 size=2456 ############

/* WARNING: Instruction at (ram,0x0001806abab3) overlaps instruction at (ram,0x0001806abab2)
    */
/* WARNING: Removing unreachable block (ram,0x0001806abab0) */
/* WARNING: Removing unreachable block (ram,0x0001806ab663) */
/* WARNING: Removing unreachable block (ram,0x0001806abea7) */

longlong FUN_1806ab5b0(void)

{
  longlong lVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  longlong lVar5;
  undefined1 *puVar6;
  longlong lVar7;
  undefined8 uVar8;
  uint uVar9;
  undefined8 uVar10;
  longlong lVar11;
  bool bVar12;
  int unaff_retaddr;
  undefined1 local_78 [32];
  undefined8 local_58;
  
  puVar6 = local_78;
  local_58 = 0xfffffffffffffffe;
  uVar10 = 0x10;
  uVar2 = (uint)&stack0x00000000 & 0x13f;
  iVar4 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  uVar9 = 0xb35U - (((iVar4 >> 1) - (iVar4 >> 3)) + iVar4 * 0x55555555 >> 0x1e) ^ 0x775;
  lVar11 = (longlong)&DAT_18265f6a8 +
           (SUB168(ZEXT816(0xc7ce0c7ce0c7ce0d) * ZEXT816(0x18265f6a8),8) >> 5) * -0x29;
  uVar2 = 0;
  LOCK();
  iVar4 = *(int *)(&DAT_18265dbd0 + lVar11 * 4);
  *(int *)(&DAT_18265dbd0 + lVar11 * 4) = 1;
  UNLOCK();
  lVar1 = DAT_18265f6a8;
  while (DAT_18265f6a8 = lVar1, iVar4 != 0) {
    if ((3 < uVar2) && (0xf < uVar2)) {
      Sleep((uint)(0x1f < uVar2));
    }
    uVar2 = uVar2 + 1;
    LOCK();
    iVar4 = *(int *)(&DAT_18265dbd0 + lVar11 * 4);
    *(int *)(&DAT_18265dbd0 + lVar11 * 4) = 1;
    UNLOCK();
    lVar1 = DAT_18265f6a8;
  }
  *(undefined4 *)(&DAT_18265dbd0 + lVar11 * 4) = 0;
  lVar7 = 0xaeb8e887;
  uVar8 = 0x63c7455d;
  lVar5 = 4;
  do {
    uVar9 = ~-uVar9 + 1;
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  do {
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar2 = DAT_18114f8b4 ^
          (((((((((((((((((((((((((((((((((((DAT_18114f828 ^
                                            (DAT_18114f824 ^ 0x811c9e07) * 0x10001a7) * 0x10001a7 ^
                                           DAT_18114f82c) * 0x10001a7 ^ DAT_18114f830) * 0x10001a7 ^
                                         DAT_18114f834) * 0x10001a7 ^ DAT_18114f838) * 0x10001a7 ^
                                       DAT_18114f83c) * 0x10001a7 ^ DAT_18114f840) * 0x10001a7 ^
                                     DAT_18114f844) * 0x10001a7 ^ DAT_18114f848) * 0x10001a7 ^
                                   DAT_18114f84c) * 0x10001a7 ^ DAT_18114f850) * 0x10001a7 ^
                                 DAT_18114f854) * 0x10001a7 ^ DAT_18114f858) * 0x10001a7 ^
                               DAT_18114f85c) * 0x10001a7 ^ DAT_18114f860) * 0x10001a7 ^
                             DAT_18114f864) * 0x10001a7 ^ DAT_18114f868) * 0x10001a7 ^ DAT_18114f86c
                           ) * 0x10001a7 ^ DAT_18114f870) * 0x10001a7 ^ DAT_18114f874) * 0x10001a7 ^
                        DAT_18114f878) * 0x10001a7 ^ DAT_18114f87c) * 0x10001a7 ^ DAT_18114f880) *
                      0x10001a7 ^ DAT_18114f884) * 0x10001a7 ^ DAT_18114f888) * 0x10001a7 ^
                   DAT_18114f88c) * 0x10001a7 ^ DAT_18114f890) * 0x10001a7 ^ DAT_18114f894) *
                 0x10001a7 ^ DAT_18114f898) * 0x10001a7 ^ DAT_18114f89c) * 0x10001a7 ^ DAT_18114f8a0
              ) * 0x10001a7 ^ DAT_18114f8a4) * 0x10001a7 ^ DAT_18114f8a8) * 0x10001a7 ^
           DAT_18114f8ac) * 0x10001a7 ^ DAT_18114f8b0) * 0x10001a7;
  do {
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  if (lVar1 == 0) {
    LOCK();
    bVar12 = DAT_18265f6b0 == 0;
    if (bVar12) {
      DAT_18265f6b0 = 1;
    }
    UNLOCK();
    while (!bVar12) {
      LOCK();
      bVar12 = DAT_18265f6b0 == 0;
      if (bVar12) {
        DAT_18265f6b0 = 1;
      }
      UNLOCK();
    }
    uVar3 = 0;
    LOCK();
    iVar4 = *(int *)(&DAT_18265dbd0 + lVar11 * 4);
    *(int *)(&DAT_18265dbd0 + lVar11 * 4) = 1;
    UNLOCK();
    lVar1 = DAT_18265f6a8;
    while (DAT_18265f6a8 = lVar1, iVar4 != 0) {
      if ((3 < uVar3) && (0xf < uVar3)) {
        Sleep((uint)(0x1f < uVar3));
      }
      uVar3 = uVar3 + 1;
      LOCK();
      iVar4 = *(int *)(&DAT_18265dbd0 + lVar11 * 4);
      *(int *)(&DAT_18265dbd0 + lVar11 * 4) = 1;
      UNLOCK();
      lVar1 = DAT_18265f6a8;
    }
    uVar3 = 0;
    *(undefined4 *)(&DAT_18265dbd0 + lVar11 * 4) = 0;
    if (lVar1 == 0) {
      lVar1 = FUN_1806acfc0();
      lVar5 = lVar1;
      FUN_1805ccdd0(FUN_1806ac040);
      LOCK();
      iVar4 = *(int *)(&DAT_18265dbd0 + lVar11 * 4);
      *(int *)(&DAT_18265dbd0 + lVar11 * 4) = 1;
      UNLOCK();
      while (iVar4 != 0) {
        if ((3 < uVar3) && (0xf < uVar3)) {
          Sleep((uint)(0x1f < uVar3));
        }
        uVar3 = uVar3 + 1;
        LOCK();
        iVar4 = *(int *)(&DAT_18265dbd0 + lVar11 * 4);
        *(int *)(&DAT_18265dbd0 + lVar11 * 4) = 1;
        UNLOCK();
      }
      DAT_18265f6a8 = lVar1;
      *(undefined4 *)(&DAT_18265dbd0 + lVar11 * 4) = 0;
    }
    LOCK();
    UNLOCK();
    DAT_18265f6b0 = 0;
  }
  uVar2 = (((((((((((((DAT_18114f8b8 ^ uVar2 * 0x10001a7) * 0x10001a7 ^ DAT_18114f8bc) * 0x10001a7 ^
                    DAT_18114f8c0) * 0x10001a7 ^ DAT_18114f8c4) * 0x10001a7 ^ DAT_18114f8c8) *
                  0x10001a7 ^ DAT_18114f8cc) * 0x10001a7 ^ DAT_18114f8d0) * 0x10001a7 ^
               DAT_18114f8d4) * 0x10001a7 ^ DAT_18114f8d8) * 0x10001a7 ^ DAT_18114f8dc) * 0x10001a7
            ^ DAT_18114f8e0) * 0x10001a7 ^ DAT_18114f8e4) * 0x10001a7 ^ DAT_18114f8e8) * 0x10001a7 ^
          DAT_18114f8ec;
  do {
    FUN_1806ab0d1(0xdf10);
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar2 = (DAT_18114f91c ^
          (DAT_18114f918 ^
          (DAT_18114f914 ^
          (DAT_18114f910 ^
          (DAT_18114f90c ^
          (DAT_18114f908 ^
          (DAT_18114f904 ^
          (DAT_18114f900 ^
          (DAT_18114f8fc ^
          (DAT_18114f8f8 ^
          (DAT_18114f8f4 ^ (DAT_18114f8f0 ^ uVar2 * 0x10001a7) * 0x10001a7) * 0x10001a7) * 0x10001a7
          ) * 0x10001a7) * 0x10001a7) * 0x10001a7) * 0x10001a7) * 0x10001a7) * 0x10001a7) *
          0x10001a7) * 0x10001a7) * 0x10001a7 ^ DAT_18114f920;
  uVar2 = (uVar2 * 0x10001a7 >> 0x10 | uVar2 * 0x1a70000) & 0x9661699e |
          (uVar2 * 0x1a70000 | uVar2 * 0x10001a7 >> 0x10) & 0x699e9661;
  do {
    lVar11 = lVar5 + lVar7;
    lVar5 = (lVar7 - lVar11 ^ 0xffffffffffffffffU) + 1;
    lVar7 = lVar11 - lVar5;
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar2 = ((uVar2 << 4 | uVar2 >> 0x1c) & 0x87878787 | (uVar2 >> 4 | uVar2 << 0x1c) & 0x78787878) +
          0x73d13162 ^ 0x867eff55;
  if (uVar2 != uVar2 >> 3) {
    lVar1 = thunk_FUN_1805a9280(0x10,(-(~-lVar5 + 1U) ^ 0xffffffffffffffff) + 1,thunk_FUN_1805a9280)
    ;
    return lVar1;
  }
  do {
    *(undefined8 *)(puVar6 + -8) = uVar8;
    *(undefined8 *)(puVar6 + -0x10) = uVar10;
    *(BADSPACEBASE **)(puVar6 + -0x18) = register0x00000020;
    lVar11 = -(longlong)(int)uVar9;
    register0x00000020 = *(BADSPACEBASE **)(puVar6 + lVar11 + 0xc28);
    uVar10 = *(undefined8 *)(puVar6 + lVar11 + 0xc30);
    uVar8 = *(undefined8 *)(puVar6 + lVar11 + 0xc38);
    puVar6 = puVar6 + lVar11 + 0xc40;
    uVar2 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  return lVar1;
}



############ FUN_ 180672130 size=477 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180672130(longlong param_1,int param_2,undefined8 param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined1 auStack_118 [32];
  int local_f8;
  undefined8 *local_e8;
  longlong *local_e0;
  undefined8 *local_d8;
  longlong *plStack_d0;
  undefined8 *local_c8;
  undefined8 *local_b8;
  longlong *plStack_b0;
  undefined8 local_a8;
  undefined1 local_a0 [40];
  undefined1 local_78 [64];
  ulonglong local_38;
  
  local_a8 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_118;
  puVar5 = (undefined8 *)FUN_1811316e0(0x38);
  puVar6 = (undefined8 *)0x0;
  puVar7 = puVar6;
  local_c8 = puVar5;
  if (puVar5 != (undefined8 *)0x0) {
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = 0;
    puVar5[4] = 0;
    *puVar5 = apache::thrift::transport::TMemoryBuffer::vftable;
    if ((param_1 == 0) && (param_2 != 0)) {
      FUN_1805a4160(local_a0,"TMemoryBuffer given null buffer with non-zero size.");
      FUN_1805d6590(local_78,6,local_a0);
                    /* WARNING: Subroutine does not return */
      _CxxThrowException(local_78,(ThrowInfo *)&DAT_1825fdc30);
    }
    local_f8 = param_2;
    FUN_1805da740(puVar5,param_1,param_2,0);
    puVar7 = puVar5;
  }
  local_d8 = puVar7;
  FUN_1805d5580(&plStack_d0,puVar7);
  FUN_1805ae620(&local_d8,puVar7,puVar7);
  local_c8 = (undefined8 *)FUN_1811316e0(0x40);
  if (local_c8 != (undefined8 *)0x0) {
    local_b8 = local_d8;
    plStack_b0 = plStack_d0;
    if (plStack_d0 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_d0 + 1) = (int)plStack_d0[1] + 1;
      UNLOCK();
    }
    puVar6 = (undefined8 *)FUN_1806222c0(local_c8,&local_b8);
  }
  local_e8 = puVar6;
  FUN_180621590(&local_e0,puVar6);
  FUN_1805ae620(&local_e8,puVar6,puVar6);
  FUN_18079ee40(param_3,local_e8);
  if (local_e0 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_e0 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*local_e0 + 8))(local_e0);
      LOCK();
      piVar2 = (int *)((longlong)local_e0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_e0 + 0x10))(local_e0);
      }
    }
  }
  if (plStack_d0 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_d0 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plStack_d0 + 8))(plStack_d0);
      LOCK();
      piVar2 = (int *)((longlong)plStack_d0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_d0 + 0x10))(plStack_d0);
      }
    }
  }
}



############ FUN_ 18067cad0 size=238 ############

void FUN_18067cad0(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::authorize::OpenQuicklyEncryptedChannelReturn::vftable;
  if (0xf < (ulonglong)param_1[0xb]) {
    pvVar1 = (void *)param_1[8];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0xb] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0xb] = 0xf;
  param_1[10] = 0;
  *(undefined1 *)(param_1 + 8) = 0;
  pvVar1 = (void *)param_1[5];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[7] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[2];
  if (pvVar1 == (void *)0x0) {
    return;
  }
  pvVar2 = pvVar1;
  if ((0xfff < (ulonglong)(param_1[4] - (longlong)pvVar1)) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1805b41e0 size=300 ############

longlong * FUN_1805b41e0(longlong *param_1,uint *param_2,longlong *param_3)

{
  uint uVar1;
  longlong lVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  longlong lVar6;
  
  bVar3 = true;
  *param_1 = 1;
  uVar1 = *param_2;
  lVar6 = 0x7ffffffffffffffe;
  if ((((uVar1 - 1 < 0xfffffffe) && (uVar1 != 0xfffffffe)) &&
      (lVar2 = *param_3, lVar2 + 0x7fffffffffffffffU < 0xfffffffffffffffe)) &&
     (lVar2 != 0x7ffffffffffffffe)) {
    *param_1 = (ulonglong)uVar1 * 86400000000 + lVar2;
    return param_1;
  }
  lVar2 = *param_3;
  bVar5 = true;
  if ((lVar2 + 0x7fffffffffffffffU < 0xfffffffffffffffe) && (lVar2 != 0x7ffffffffffffffe)) {
    bVar4 = false;
  }
  else {
    bVar4 = true;
  }
  if (bVar4) {
LAB_1805b4290:
    if ((lVar2 == 0x7ffffffffffffffe) || (uVar1 == 0xfffffffe)) goto LAB_1805b42fb;
    if (lVar2 == 0x7fffffffffffffff) {
      if (uVar1 == 0) goto LAB_1805b42fb;
    }
    else if (lVar2 == -0x8000000000000000) {
      if (uVar1 == 0xffffffff) goto LAB_1805b42fb;
    }
    else {
      bVar3 = false;
    }
    if (bVar3) {
      *param_1 = lVar2;
      return param_1;
    }
    if (uVar1 == 0xffffffff) {
      *param_1 = 0x7fffffffffffffff;
      return param_1;
    }
    lVar6 = -0x8000000000000000;
    if (uVar1 == 0) goto LAB_1805b42fb;
  }
  else {
    if ((uVar1 - 1 < 0xfffffffe) && (uVar1 != 0xfffffffe)) {
      bVar5 = false;
    }
    if (bVar5) goto LAB_1805b4290;
  }
  lVar6 = lVar2 + (ulonglong)uVar1;
LAB_1805b42fb:
  *param_1 = lVar6;
  return param_1;
}



############ FUN_ 1805bd670 size=396 ############

undefined8 FUN_1805bd670(undefined8 param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  ushort uVar4;
  ushort uVar5;
  undefined1 local_res10 [8];
  longlong local_res18 [2];
  
  uVar4 = (ushort)param_2[3];
  if (uVar4 + 1 < 2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805c02b0(1,uVar4,0);
  }
  if (0x1f < uVar4) {
                    /* WARNING: Subroutine does not return */
    FUN_1805c02b0(1,uVar4,1);
  }
  uVar4 = (short)param_2[4] + 1;
  if (uVar4 + 1 < 2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805c02e0(1,uVar4,0);
  }
  if (uVar4 < 0xd) {
    uVar5 = (short)param_2[5] + 0x76c;
    if (uVar5 + 1 < 0x579) {
                    /* WARNING: Subroutine does not return */
      FUN_1805c0310(0x578,uVar5,0);
    }
    if (uVar5 < 0x2711) {
      FUN_1805b6990(local_res10,uVar5,uVar4);
      uVar1 = param_2[2];
      uVar2 = *param_2;
      uVar3 = param_2[1];
      if ((((int)uVar1 < 0) || ((int)uVar3 < 0)) || ((int)uVar2 < 0)) {
        local_res18[0] =
             (((longlong)(int)((uVar1 ^ (int)uVar1 >> 0x1f) - ((int)uVar1 >> 0x1f)) * 0x3c +
              (longlong)(int)((uVar3 ^ (int)uVar3 >> 0x1f) - ((int)uVar3 >> 0x1f))) * 0x3c +
             (longlong)(int)((uVar2 ^ (int)uVar2 >> 0x1f) - ((int)uVar2 >> 0x1f))) * -1000000;
      }
      else {
        local_res18[0] =
             (((longlong)(int)uVar1 * 0x3c + (longlong)(int)uVar3) * 0x3c + (longlong)(int)uVar2) *
             1000000;
      }
      FUN_1805b41e0(param_1,local_res10,local_res18);
      return param_1;
    }
                    /* WARNING: Subroutine does not return */
    FUN_1805c0310(0x578,uVar5,1);
  }
                    /* WARNING: Subroutine does not return */
  FUN_1805c02e0(1,uVar4,1);
}



############ FUN_ 1805c0220 size=64 ############

undefined8
FUN_1805c0220(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined8 uVar2;
  
  uVar2 = 0xfffffffffffffffe;
  lVar1 = FUN_1811316e0(0x18);
  if (lVar1 != 0) {
    uVar2 = FUN_1805a48c0(lVar1,param_1,param_3,param_4,uVar2);
    return uVar2;
  }
  return 0;
}



############ FUN_ 18066b4e0 size=97 ############

undefined8 * FUN_18066b4e0(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::sp_counted_impl_p<pace::Encryptor>::vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 1806a8a70 size=91 ############

undefined8 FUN_1806a8a70(undefined8 param_1)

{
  tm *ptVar1;
  undefined8 uVar2;
  __time64_t local_38 [2];
  undefined1 local_28 [32];
  
  local_38[1] = 0xfffffffffffffffe;
  _time64(local_38);
  ptVar1 = _gmtime64(local_38);
  if (ptVar1 != (tm *)0x0) {
    FUN_1805bd670(param_1,ptVar1);
    return param_1;
  }
  uVar2 = FUN_1805b6c80(local_28,"could not convert calendar time to UTC time");
                    /* WARNING: Subroutine does not return */
  FUN_1805b3e60(uVar2);
}



############ FUN_ 180937700 size=1747 ############

/* WARNING: Removing unreachable block (ram,0x0001809377a7) */
/* WARNING: Removing unreachable block (ram,0x00018093789d) */

longlong FUN_180937700(undefined8 *param_1,undefined4 param_2)

{
  undefined8 uVar1;
  ulonglong uVar2;
  longlong lVar3;
  uint uVar4;
  int iVar5;
  longlong in_R10;
  ulonglong uVar6;
  int unaff_retaddr;
  undefined4 unaff_retaddr_00;
  undefined1 auStack_d8 [32];
  undefined4 local_b8;
  undefined *local_b0;
  undefined *local_a8;
  uint local_a0;
  undefined4 local_9c;
  longlong local_98;
  uint local_8c;
  uint local_88;
  code *local_80;
  undefined8 *local_70;
  undefined8 local_68;
  undefined8 *local_60;
  ulonglong local_40;
  
  local_68 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_d8;
  *param_1 = pace::KeyExchanger::vftable;
  local_9c = param_2;
  local_70 = param_1;
  local_60 = param_1;
  FUN_180739500(param_1 + 1);
  uVar6 = 0;
  uVar4 = (uint)&stack0x00000000 & 0x65ff;
  iVar5 = uVar4 * uVar4 + 1;
  uVar4 = (iVar5 >> 4) + (iVar5 >> 1) + iVar5 * 0x24924924 >> 0x1d;
  uVar4 = (int)(uVar4 - 7) >> 0x1f & uVar4;
  local_8c = ((int)(-uVar4 | uVar4) >> 0x1f) * -0x683b ^ 0x649b;
  uVar4 = (uint)&stack0x00000000 & 0x1bff;
  uVar4 = (uVar4 * uVar4 * 0x10 + 4) % 0x13;
  local_88 = (int)(-uVar4 | uVar4) >> 0x1f & 0x3523U ^ 0x3c93;
  local_98 = 0;
  local_b0 = &DAT_1825d5088;
  local_a8 = (undefined *)0x1825f4ec8;
  do {
    uVar6 = ~(~uVar6 + 1) + 1;
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  do {
    FUN_180936ff8(0x6830);
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  local_98 = (longlong)local_a8 - (longlong)local_b0;
  local_a8 = local_b0;
  local_b8 = 0x811c9e07;
  do {
    uVar1 = rdtsc();
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  uVar4 = ((uint)uVar1 ^ (uint)((ulonglong)uVar1 >> 0x20)) * -0x51ca166b;
  local_a0 = (uVar4 >> 0x18 ^ uVar4) * -0x7a14a42f;
  if (local_a0 < 0x7fffffff) {
    do {
      local_80 = FUN_18141db20;
      FUN_18093762d();
      uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar4 < 0) {
        uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar4 != 0);
    uVar2 = (*local_80)();
    if (1 < uVar2) {
      uVar2 = CONCAT44(unaff_retaddr_00,unaff_retaddr);
      while (uVar2 != 0xcccccccccccccccc) {
        *(ulonglong *)register0x00000020 = uVar6;
        register0x00000020 = (BADSPACEBASE *)((longlong)register0x00000020 + 0x40);
        uVar2 = *(ulonglong *)register0x00000020;
      }
    }
  }
  do {
    FUN_1809365dd(0x6830);
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  *(char *)(param_1 + 0x118) = (char)uVar6;
                    /* WARNING: Call to offcut address within same function */
  lVar3 = func_0x000180937c24();
  lVar3 = lVar3 + in_R10;
  return lVar3 - ((((in_R10 - lVar3 ^ 0xffffffffffffffffU) + 1) - lVar3 ^ 0xffffffffffffffff) + 1);
}



############ FUN_ 180575ed0 size=74 ############

void FUN_180575ed0(longlong *param_1)

{
  void *pvVar1;
  void *_Memory;
  
  pvVar1 = (void *)*param_1;
  if (pvVar1 == (void *)0x0) {
    return;
  }
  _Memory = pvVar1;
  if ((0xfff < (ulonglong)(param_1[2] - (longlong)pvVar1)) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1806741b0 size=447 ############

void FUN_1806741b0(undefined8 param_1,undefined8 *param_2,char param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  undefined8 *puVar4;
  longlong lVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined1 local_res18;
  undefined8 *local_48;
  longlong *plStack_40;
  undefined8 *local_38;
  longlong *local_30;
  undefined8 *local_28;
  longlong *plStack_20;
  
  if (param_3 != '\0') {
    param_2[1] = *param_2;
  }
  puVar4 = (undefined8 *)FUN_1811316e0(0x38);
  puVar6 = (undefined8 *)0x0;
  puVar7 = puVar6;
  if (puVar4 != (undefined8 *)0x0) {
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0;
    puVar4[4] = 0;
    *puVar4 = apache::thrift::transport::TMemoryBuffer::vftable;
    FUN_1805da740(puVar4,0,0x400,1,0);
    puVar7 = puVar4;
  }
  local_48 = puVar7;
  FUN_1805d5580(&plStack_40,puVar7);
  FUN_1805ae620(&local_48,puVar7,puVar7);
  lVar5 = FUN_1811316e0(0x40);
  if (lVar5 != 0) {
    local_28 = local_48;
    plStack_20 = plStack_40;
    if (plStack_40 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_40 + 1) = (int)plStack_40[1] + 1;
      UNLOCK();
    }
    puVar6 = (undefined8 *)FUN_1806222c0(lVar5,&local_28);
  }
  local_38 = puVar6;
  FUN_180621590(&local_30,puVar6);
  FUN_1805ae620(&local_38,puVar6,puVar6);
  FUN_1807b5ca0(param_1,local_38);
  lVar5 = local_48[1];
  FUN_1805d5a60(param_2,param_2[1],lVar5,
                (ulonglong)(uint)(*(int *)(local_48 + 3) - (int)lVar5) + lVar5,local_res18);
  if (local_30 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_30 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*local_30 + 8))(local_30);
      LOCK();
      piVar2 = (int *)((longlong)local_30 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_30 + 0x10))(local_30);
      }
    }
  }
  if (plStack_40 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_40 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plStack_40 + 8))(plStack_40);
      LOCK();
      piVar2 = (int *)((longlong)plStack_40 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_40 + 0x10))(plStack_40);
      }
    }
  }
  return;
}



############ FUN_ 1805c5170 size=338 ############

ulonglong * FUN_1805c5170(ulonglong *param_1,longlong *param_2,longlong *param_3)

{
  longlong lVar1;
  ulonglong uVar2;
  longlong lVar3;
  undefined8 uVar4;
  bool bVar5;
  
  lVar3 = *param_2;
  uVar4 = 1;
  if ((lVar3 + 0x7fffffffffffffffU < 0xfffffffffffffffe) && (lVar3 != 0x7ffffffffffffffe)) {
    bVar5 = false;
  }
  else {
    bVar5 = true;
  }
  if (!bVar5) {
    lVar1 = *param_3;
    if ((lVar1 + 0x7fffffffffffffffU < 0xfffffffffffffffe) && (lVar1 != 0x7ffffffffffffffe)) {
      bVar5 = false;
    }
    else {
      bVar5 = true;
    }
    if (!bVar5) {
      uVar2 = lVar3 - lVar1;
      if ((longlong)uVar2 < 0) {
        uVar2 = -((uVar2 ^ (longlong)uVar2 >> 0x3f) - ((longlong)uVar2 >> 0x3f));
      }
      *param_1 = uVar2;
      return param_1;
    }
  }
  lVar1 = *param_3;
  if ((lVar3 + 0x7fffffffffffffffU < 0xfffffffffffffffe) && (lVar3 != 0x7ffffffffffffffe)) {
    bVar5 = false;
  }
  else {
    bVar5 = true;
  }
  if (bVar5) {
LAB_1805c5251:
    if ((lVar3 == 0x7ffffffffffffffe) || (lVar1 == 0x7ffffffffffffffe)) goto LAB_1805c52a6;
    if (lVar3 == 0x7fffffffffffffff) {
      bVar5 = lVar1 == 0x7fffffffffffffff;
LAB_1805c526d:
      if (bVar5) goto LAB_1805c52a6;
      bVar5 = true;
    }
    else {
      if (lVar3 == -0x8000000000000000) {
        bVar5 = lVar1 == -0x8000000000000000;
        goto LAB_1805c526d;
      }
      bVar5 = false;
    }
    if (bVar5) goto LAB_1805c5287;
    if (lVar1 == 0x7fffffffffffffff) goto LAB_1805c52a9;
    if (lVar1 != -0x8000000000000000) goto LAB_1805c5284;
  }
  else {
    if ((lVar1 + 0x7fffffffffffffffU < 0xfffffffffffffffe) && (lVar1 != 0x7ffffffffffffffe)) {
      bVar5 = false;
    }
    else {
      bVar5 = true;
    }
    if (bVar5) goto LAB_1805c5251;
LAB_1805c5284:
    lVar3 = lVar3 - lVar1;
LAB_1805c5287:
    if (lVar3 == 0x7ffffffffffffffe) {
LAB_1805c52a6:
      uVar4 = 0;
      goto LAB_1805c52a9;
    }
    if (lVar3 == -0x8000000000000000) goto LAB_1805c52a9;
    if (lVar3 != 0x7fffffffffffffff) {
      uVar4 = 5;
      goto LAB_1805c52a9;
    }
  }
  uVar4 = 2;
LAB_1805c52a9:
  FUN_1805b6d40(param_1,uVar4);
  return param_1;
}



############ FUN_ 1805e1ee0 size=282 ############

void FUN_1805e1ee0(longlong *param_1,ulonglong param_2,longlong param_3,undefined8 param_4)

{
  ulonglong uVar1;
  void *pvVar2;
  longlong lVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  
  pvVar2 = (void *)param_1[1];
  lVar3 = *param_1;
  uVar5 = (longlong)pvVar2 - lVar3;
  uVar1 = param_1[2] - lVar3;
  if (uVar1 < param_2) {
    if (param_2 < 0x8000000000000000) {
      uVar4 = param_2;
      if ((uVar1 <= 0x7fffffffffffffff - (uVar1 >> 1)) &&
         (uVar4 = (uVar1 >> 1) + uVar1, uVar4 < param_2)) {
        uVar4 = param_2;
      }
      pvVar2 = (void *)FUN_1805bc8b0(param_1,uVar4,param_3,param_4,0xfffffffffffffffe);
      memset((void *)((longlong)pvVar2 + uVar5),(uint)**(byte **)(param_3 + 8),param_2 - uVar5);
      memmove(pvVar2,(void *)*param_1,param_1[1] - *param_1);
      FUN_1805bbe20(param_1,pvVar2,param_2,uVar4);
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_1805a69c0();
  }
  if (uVar5 < param_2) {
    memset(pvVar2,(uint)**(byte **)(param_3 + 8),param_2 - uVar5);
    lVar3 = (param_2 - uVar5) + (longlong)pvVar2;
  }
  else {
    if (param_2 == uVar5) {
      return;
    }
    lVar3 = lVar3 + param_2;
  }
  param_1[1] = lVar3;
  return;
}



############ FUN_ 18073e970 size=678 ############

/* WARNING: Instruction at (ram,0x00018073ec03) overlaps instruction at (ram,0x00018073ec02)
    */

void FUN_18073e970(longlong param_1,undefined8 param_2,longlong param_3)

{
  undefined4 *puVar1;
  uint uVar2;
  ulonglong uVar3;
  longlong lVar4;
  int iVar5;
  longlong lVar6;
  longlong lVar7;
  uint uVar8;
  longlong unaff_RBX;
  undefined1 *puVar9;
  undefined8 unaff_RBP;
  undefined1 *unaff_RSI;
  ulonglong unaff_RDI;
  uint uVar10;
  uint uVar11;
  undefined1 *puVar12;
  undefined8 unaff_R12;
  longlong unaff_R13;
  undefined8 unaff_R14;
  undefined8 unaff_R15;
  
  puVar12 = (undefined1 *)register0x00000020;
  while( true ) {
    puVar9 = puVar12;
    lVar6 = param_1;
    *(longlong *)(puVar9 + 0x20) = unaff_RBX;
    *(undefined8 *)(puVar9 + -8) = unaff_RBP;
    *(undefined1 **)(puVar9 + -0x10) = unaff_RSI;
    *(ulonglong *)(puVar9 + -0x18) = unaff_RDI;
    *(undefined8 *)(puVar9 + -0x20) = unaff_R12;
    *(longlong *)(puVar9 + -0x28) = unaff_R13;
    *(undefined8 *)(puVar9 + -0x30) = unaff_R14;
    *(undefined8 *)(puVar9 + -0x38) = unaff_R15;
    *(ulonglong *)(puVar9 + -0x40) = DAT_182615970 ^ (ulonglong)(puVar9 + -0xb8);
    *(longlong *)(puVar9 + -0x68) = lVar6;
    *(longlong *)(puVar9 + -0x60) = param_3;
    uVar11 = (uint)puVar9;
    uVar2 = uVar11 & 0xf | 0x34;
    uVar8 = uVar11 & 0x1f | 0x56;
    iVar5 = (uVar11 & 0x3cff) * (uVar11 & 0x3cff) + 1;
    uVar10 = (uint)(uVar2 * uVar2 * 0xfc79 == uVar8 * uVar8 * 0xe893) +
             ((uVar11 & 0x74ff) * (uVar11 & 0x74ff) + 1) % 7;
    uVar2 = (iVar5 >> 4) + (iVar5 >> 1) + iVar5 * 0x24924924 >> 0x1d;
    uVar2 = (int)(uVar2 - 7) >> 0x1f & uVar2;
    uVar8 = uVar11 & 0xbf;
    *(uint *)(puVar9 + -0x70) =
         (((int)(-uVar2 | uVar2) >> 0x1f) * -0x43 | 0x22ebU) ^
         ((int)(-uVar10 | uVar10) >> 0x1f) * -0x294b;
    uVar2 = ((uVar8 + 2) * (uVar8 + 1) * uVar8) % 3 -
            ((uVar11 & 0x1bff) * (uVar11 & 0x1bff) * 0x10 + 4) % 0x13;
    *(undefined8 *)(puVar9 + -0x88) = 0x2621fc0;
    *(uint *)(puVar9 + -0x6c) = ((int)(-uVar2 | uVar2) >> 0x1f) * -0x28a4 ^ 0x2b54;
    param_3 = (longlong)&DAT_182621fc0 - *(longlong *)(puVar9 + -0x88);
    *(undefined8 *)(puVar9 + -0x90) = 0x507bfd03;
    *(undefined8 *)(puVar9 + -0x88) = 0xda64dcf1;
    *(undefined8 *)(puVar9 + -0x78) = 0;
    *(uint *)(puVar9 + -0x90) =
         ((~(*(int *)(puVar9 + -0x90) + 0x108b0c50U) ^ 0x5266b150) >> 1 |
         (uint)(((~(*(int *)(puVar9 + -0x90) + 0x108b0c50U) ^ 0x5266b150) & 1) != 0) << 0x1f) ^
         0x66592ebe;
    *(uint *)(puVar9 + -0x88) =
         ((~(*(int *)(puVar9 + -0x88) + 0x30585c90U) + 0xe66f08fa) * 0x400000 |
         ~(*(int *)(puVar9 + -0x88) + 0x30585c90U) + 0xe66f08fa >> 10) + 0x21cb134d;
    *(longlong *)(puVar9 + -0x90) = *(longlong *)(puVar9 + -0x90) + param_3;
    *(longlong *)(puVar9 + -0x88) = *(longlong *)(puVar9 + -0x90) + *(longlong *)(puVar9 + -0x88);
    unaff_RBX = *(longlong *)(puVar9 + -0x78) + param_3;
    *(undefined8 *)(puVar9 + -0xc0) = 0x18073eba6;
    lVar7 = lVar6;
    puVar12 = puVar9;
    FUN_18073c3a0(lVar6,param_2);
    unaff_RBP = *(undefined8 *)(puVar9 + -0x88);
    puVar1 = *(undefined4 **)(puVar9 + -0x90);
    *(undefined8 *)(puVar9 + -0xc0) = 0x18073ebbd;
    FUN_18073cf97();
    *(longlong *)(puVar9 + -0xc0) = lVar6;
    *(undefined1 **)(puVar9 + -200) = puVar12;
    *(undefined8 *)(puVar9 + -0xd0) = 0x18073ebe7;
    uVar3 = FUN_18073ec16();
    unaff_R15 = 0;
    lVar4 = ~(~uVar3 + 1) + 1;
    *puVar1 = (int)lVar4;
    if (lVar7 + -1 == 0 || lVar4 == 0) break;
    unaff_RDI = (ulonglong)~((int)puVar1 + 4U);
    param_1 = lVar7 + -1;
    puVar12 = puVar9 + -200;
    unaff_RSI = puVar9;
    unaff_R13 = lVar6;
  }
  lVar7 = *(longlong *)(puVar9 + -200);
  *(longlong *)(puVar9 + -200) = lVar7 + 0x19e;
  *(longlong *)(puVar9 + -0xd0) = lVar7 + 0x4f0;
  *(longlong *)(puVar9 + -0xd8) = lVar7 + -0x4526;
  *(longlong *)(puVar9 + -0xe0) = lVar7 + 0x4ef;
  *(longlong *)(puVar9 + -0xe8) = lVar7 + 0x8bdc;
  *(longlong *)(puVar9 + -0xf0) = lVar7 + -0x99b;
  *(longlong *)(puVar9 + -0xf8) = lVar7 + 0x3c6;
  *(longlong *)(puVar9 + -0x100) = lVar7 + 0x2856;
  *(longlong *)(puVar9 + -0x108) = lVar7 + 0x8bdc;
  *(longlong *)(puVar9 + -0x110) = lVar7 + 0xf6f;
  return;
}



############ FUN_ 180644560 size=140 ############

undefined8 * FUN_180644560(undefined8 *param_1,undefined8 *param_2)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  undefined8 uVar4;
  longlong lVar5;
  longlong *plVar6;
  
  uVar4 = *param_2;
  lVar5 = param_2[1];
  if (lVar5 != 0) {
    LOCK();
    *(int *)(lVar5 + 8) = *(int *)(lVar5 + 8) + 1;
    UNLOCK();
  }
  *param_1 = uVar4;
  plVar6 = (longlong *)param_1[1];
  param_1[1] = lVar5;
  if (plVar6 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar6 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plVar6 + 8))(plVar6);
      LOCK();
      piVar2 = (int *)((longlong)plVar6 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar6 + 0x10))(plVar6);
      }
    }
  }
  return param_1;
}



############ FUN_ 180661ba0 size=78 ############

/* WARNING: Control flow encountered bad instruction data */

void FUN_180661ba0(undefined8 param_1,undefined8 param_2)

{
  undefined1 auStack_c8 [80];
  undefined8 local_78;
  undefined8 local_70;
  ulonglong local_48;
  
  local_48 = DAT_182615970 ^ (ulonglong)auStack_c8;
  local_78 = param_2;
  local_70 = param_1;
  FUN_180661bf1();
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}



############ FUN_ 1805b3e60 size=63 ############

void FUN_1805b3e60(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_a0 [88];
  undefined1 local_48 [72];
  
  uVar1 = FUN_1805b2020(local_48,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805b1d90(local_a0,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_a0,(ThrowInfo *)&DAT_1825fd890);
}



############ FUN_ 18067dba0 size=130 ############

undefined8 * FUN_18067dba0(undefined8 *param_1,undefined8 *param_2)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  longlong *plVar6;
  longlong lVar7;
  
  uVar4 = *param_2;
  uVar5 = param_2[1];
  param_2[1] = 0;
  *param_2 = 0;
  *param_1 = uVar4;
  plVar6 = (longlong *)param_1[1];
  param_1[1] = uVar5;
  if (plVar6 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar6 + 1;
    lVar7 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar7 == 1) {
      (**(code **)(*plVar6 + 8))(plVar6);
      LOCK();
      piVar2 = (int *)((longlong)plVar6 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar6 + 0x10))(plVar6);
      }
    }
  }
  return param_1;
}



############ FUN_ 1805b2240 size=353 ############

longlong * FUN_1805b2240(longlong *param_1,undefined8 param_2)

{
  longlong lVar1;
  longlong *plVar2;
  undefined8 uVar3;
  int *piVar4;
  uint uVar5;
  ulonglong uVar6;
  int iVar7;
  undefined1 local_30 [40];
  
  if (*(char *)((longlong)param_1 + 0x44) != '\0') {
    FUN_1805a72c0();
  }
  if (*(int *)((longlong)param_1 + 0x3c) < (int)param_1[8]) {
    uVar5 = 0;
    lVar1 = param_1[1] - *param_1 >> 0x3f;
    if ((param_1[1] - *param_1) / 0x90 + lVar1 != lVar1) {
      uVar6 = 0;
      do {
        piVar4 = (int *)(uVar6 * 0x90 + *param_1);
        if (*piVar4 == *(int *)((longlong)param_1 + 0x3c)) {
          if ((char)param_1[0x1e] == '\0') {
            plVar2 = (longlong *)0x0;
          }
          else {
            plVar2 = param_1 + 0x1f;
          }
          FUN_1805b2c40(param_2,piVar4,piVar4 + 2,param_1 + 0xe,plVar2);
        }
        uVar5 = uVar5 + 1;
        uVar6 = (ulonglong)uVar5;
      } while (uVar6 < (ulonglong)((param_1[1] - *param_1) / 0x90));
    }
  }
  else if ((*(byte *)(param_1 + 0xd) & 4) != 0) {
    uVar3 = FUN_1805a4e20(local_30,(longlong)*(int *)((longlong)param_1 + 0x3c),
                          (longlong)(int)param_1[8]);
                    /* WARNING: Subroutine does not return */
    FUN_1805a3c70(uVar3);
  }
  *(int *)((longlong)param_1 + 0x3c) = *(int *)((longlong)param_1 + 0x3c) + 1;
  iVar7 = *(int *)((longlong)param_1 + 0x3c);
  if (param_1[6] != 0) {
    while ((iVar7 < (int)param_1[8] &&
           ((*(uint *)(param_1[3] + ((ulonglong)(longlong)iVar7 >> 5) * 4) &
            1 << ((byte)iVar7 & 0x1f)) != 0))) {
      iVar7 = iVar7 + 1;
      *(int *)((longlong)param_1 + 0x3c) = iVar7;
    }
  }
  return param_1;
}



############ FUN_ 1805bd370 size=218 ############

ulonglong FUN_1805bd370(longlong *param_1,longlong *param_2)

{
  longlong lVar1;
  bool bVar2;
  bool bVar3;
  longlong lVar4;
  
  lVar1 = *param_1;
  bVar2 = false;
  if ((0xfffffffffffffffd < lVar1 + 0x7fffffffffffffffU) ||
     (bVar3 = bVar2, lVar1 == 0x7ffffffffffffffe)) {
    bVar3 = true;
  }
  if (!bVar3) {
    lVar4 = *param_2;
    if ((0xfffffffffffffffd < lVar4 + 0x7fffffffffffffffU) || (lVar4 == 0x7ffffffffffffffe)) {
      bVar2 = true;
    }
    if (!bVar2) goto LAB_1805bd420;
  }
  if (lVar1 == 0x7ffffffffffffffe) {
    if (*param_2 != 0x7ffffffffffffffe) {
      return 2;
    }
    return 0;
  }
  lVar4 = *param_2;
  if (lVar4 == 0x7ffffffffffffffe) {
    return 2;
  }
  if ((lVar1 == -0x8000000000000000) && (lVar4 != -0x8000000000000000)) {
    return 0xffffffff;
  }
  if (lVar4 == 0x7fffffffffffffff) {
    if (lVar1 != 0x7fffffffffffffff) {
      return 0xffffffff;
    }
LAB_1805bd406:
    if (lVar4 != 0x7fffffffffffffff) {
      return 1;
    }
  }
  else if (lVar1 == 0x7fffffffffffffff) goto LAB_1805bd406;
  if ((lVar4 == -0x8000000000000000) && (lVar1 != -0x8000000000000000)) {
    return 1;
  }
LAB_1805bd420:
  if (lVar1 < lVar4) {
    return 0xffffffff;
  }
  return (ulonglong)(lVar4 < lVar1);
}



############ FUN_ 1807002d0 size=61 ############

undefined8 FUN_1807002d0(undefined4 param_1)

{
  switch(param_1) {
  case 0:
  case 3:
  case 0x1f:
    return 0x10;
  case 1:
    return 0x18;
  case 2:
  case 0x1c:
  case 0x1d:
    return 0x20;
  default:
    return 0;
  case 0x1e:
    return 0x30;
  }
}



############ FUN_ 180938570 size=491 ############

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

undefined4
FUN_180938570(undefined8 param_1,undefined4 param_2,undefined8 param_3,undefined8 param_4,
             undefined8 param_5,undefined8 param_6)

{
  undefined8 *puVar1;
  char cVar2;
  undefined8 *puVar3;
  uint uVar4;
  uint uVar5;
  undefined8 uStack_160;
  undefined1 auStack_148 [72];
  undefined4 local_100;
  undefined4 local_d8;
  uint local_d4;
  undefined8 local_c8;
  undefined8 local_c0;
  undefined8 local_b8;
  undefined8 uStack_b0;
  undefined8 local_a8;
  undefined8 local_90;
  undefined8 local_88;
  undefined8 local_80;
  undefined8 local_78;
  ulonglong local_58;
  undefined8 auStack_50 [2];
  
  puVar1 = auStack_50 + 1;
  local_78 = 0xfffffffffffffffe;
  local_58 = DAT_182615970 ^ (ulonglong)auStack_148;
  local_c0 = param_5;
  local_c8 = param_6;
  if (((ulonglong)&stack0x00000000 & 0x980) == 0) {
    uVar4 = (uint)&stack0x00000000 & 0x1bff;
    uVar5 = (uVar4 * uVar4 * 0x10 + 4) % 0x13;
    uVar4 = (uint)&stack0x00000000 & 0x4ff;
    uVar4 = (uVar4 * uVar4 * 0x10 + 4) % 0x13;
    local_d4 = ((int)(-uVar5 | uVar5) >> 0x1f) - ((int)(-uVar4 | uVar4) >> 0x1f) ^ 0xc789;
  }
  else {
    local_d4 = 0xc789;
  }
  local_d4 = local_d4 ^ 0xc359;
  local_d8 = 0x6c0;
  local_b8 = 0;
  uStack_b0 = 0;
  local_a8 = 0;
  local_100 = param_2;
  local_90 = param_1;
  local_88 = param_4;
  local_80 = param_3;
                    /* WARNING: Call to offcut address within same function */
  func_0x000180938750(0,0x3e7b29a3);
  puVar3 = (undefined8 *)&stack0xfffffffffffffea8;
  cVar2 = '\x06';
  do {
    puVar1 = puVar1 + -1;
    puVar3 = puVar3 + -1;
    *puVar3 = *puVar1;
    cVar2 = cVar2 + -1;
  } while ('\0' < cVar2);
  return _DAT_f748e5854d0f224e;
}



############ FUN_ 18063c260 size=87 ############

undefined8 * FUN_18063c260(undefined8 *param_1)

{
  *param_1 = pace::Encryptor::vftable;
  param_1[0x43] = 0;
  param_1[0x44] = 0;
  param_1[0x45] = 0;
  *(undefined2 *)(param_1 + 0x42) = 0;
  FUN_18063f370();
  return param_1;
}



############ FUN_ 18060e760 size=353 ############

longlong * FUN_18060e760(longlong *param_1,undefined8 param_2)

{
  longlong lVar1;
  longlong *plVar2;
  undefined8 uVar3;
  int *piVar4;
  uint uVar5;
  ulonglong uVar6;
  int iVar7;
  undefined1 local_30 [40];
  
  if (*(char *)((longlong)param_1 + 0x44) != '\0') {
    FUN_1805a72c0();
  }
  if (*(int *)((longlong)param_1 + 0x3c) < (int)param_1[8]) {
    uVar5 = 0;
    lVar1 = param_1[1] - *param_1 >> 0x3f;
    if ((param_1[1] - *param_1) / 0x90 + lVar1 != lVar1) {
      uVar6 = 0;
      do {
        piVar4 = (int *)(uVar6 * 0x90 + *param_1);
        if (*piVar4 == *(int *)((longlong)param_1 + 0x3c)) {
          if ((char)param_1[0x1e] == '\0') {
            plVar2 = (longlong *)0x0;
          }
          else {
            plVar2 = param_1 + 0x1f;
          }
          FUN_18060ea10(param_2,piVar4,piVar4 + 2,param_1 + 0xe,plVar2);
        }
        uVar5 = uVar5 + 1;
        uVar6 = (ulonglong)uVar5;
      } while (uVar6 < (ulonglong)((param_1[1] - *param_1) / 0x90));
    }
  }
  else if ((*(byte *)(param_1 + 0xd) & 4) != 0) {
    uVar3 = FUN_1805a4e20(local_30,(longlong)*(int *)((longlong)param_1 + 0x3c),
                          (longlong)(int)param_1[8]);
                    /* WARNING: Subroutine does not return */
    FUN_1805a3c70(uVar3);
  }
  *(int *)((longlong)param_1 + 0x3c) = *(int *)((longlong)param_1 + 0x3c) + 1;
  iVar7 = *(int *)((longlong)param_1 + 0x3c);
  if (param_1[6] != 0) {
    while ((iVar7 < (int)param_1[8] &&
           ((*(uint *)(param_1[3] + ((ulonglong)(longlong)iVar7 >> 5) * 4) &
            1 << ((byte)iVar7 & 0x1f)) != 0))) {
      iVar7 = iVar7 + 1;
      *(int *)((longlong)param_1 + 0x3c) = iVar7;
    }
  }
  return param_1;
}



############ FUN_ 180671f40 size=477 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180671f40(longlong param_1,int param_2,undefined8 param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined1 auStack_118 [32];
  int local_f8;
  undefined8 *local_e8;
  longlong *local_e0;
  undefined8 *local_d8;
  longlong *plStack_d0;
  undefined8 *local_c8;
  undefined8 *local_b8;
  longlong *plStack_b0;
  undefined8 local_a8;
  undefined1 local_a0 [40];
  undefined1 local_78 [64];
  ulonglong local_38;
  
  local_a8 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_118;
  puVar5 = (undefined8 *)FUN_1811316e0(0x38);
  puVar6 = (undefined8 *)0x0;
  puVar7 = puVar6;
  local_c8 = puVar5;
  if (puVar5 != (undefined8 *)0x0) {
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = 0;
    puVar5[4] = 0;
    *puVar5 = apache::thrift::transport::TMemoryBuffer::vftable;
    if ((param_1 == 0) && (param_2 != 0)) {
      FUN_1805a4160(local_a0,"TMemoryBuffer given null buffer with non-zero size.");
      FUN_1805d6590(local_78,6,local_a0);
                    /* WARNING: Subroutine does not return */
      _CxxThrowException(local_78,(ThrowInfo *)&DAT_1825fdc30);
    }
    local_f8 = param_2;
    FUN_1805da740(puVar5,param_1,param_2,0);
    puVar7 = puVar5;
  }
  local_d8 = puVar7;
  FUN_1805d5580(&plStack_d0,puVar7);
  FUN_1805ae620(&local_d8,puVar7,puVar7);
  local_c8 = (undefined8 *)FUN_1811316e0(0x40);
  if (local_c8 != (undefined8 *)0x0) {
    local_b8 = local_d8;
    plStack_b0 = plStack_d0;
    if (plStack_d0 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_d0 + 1) = (int)plStack_d0[1] + 1;
      UNLOCK();
    }
    puVar6 = (undefined8 *)FUN_1806222c0(local_c8,&local_b8);
  }
  local_e8 = puVar6;
  FUN_180621590(&local_e0,puVar6);
  FUN_1805ae620(&local_e8,puVar6,puVar6);
  FUN_18079d9a0(param_3,local_e8);
  if (local_e0 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_e0 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*local_e0 + 8))(local_e0);
      LOCK();
      piVar2 = (int *)((longlong)local_e0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_e0 + 0x10))(local_e0);
      }
    }
  }
  if (plStack_d0 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_d0 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plStack_d0 + 8))(plStack_d0);
      LOCK();
      piVar2 = (int *)((longlong)plStack_d0 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_d0 + 0x10))(plStack_d0);
      }
    }
  }
}



############ FUN_ 1807dfee0 size=799 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x0001807e01f6) overlaps instruction at (ram,0x0001807e01f3)
    */
/* WARNING: Removing unreachable block (ram,0x0001807e0bdc) */
/* WARNING: Removing unreachable block (ram,0x0001807dff90) */
/* WARNING: Removing unreachable block (ram,0x0001807dffc4) */
/* WARNING: Removing unreachable block (ram,0x7d00be66) */
/* WARNING: Removing unreachable block (ram,0x0001807dff9c) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1807dfee0(longlong param_1,int param_2,undefined4 *param_3,longlong param_4)

{
  uint uVar1;
  int iVar2;
  char *pcVar3;
  undefined8 uVar4;
  char *pcVar5;
  longlong lVar6;
  uint uVar7;
  undefined1 *puVar8;
  int *piVar9;
  ulonglong uVar10;
  int unaff_retaddr;
  longlong lStackX_8;
  int local_res10 [2];
  undefined4 *local_res18;
  longlong local_res20;
  undefined1 auStack_138 [32];
  undefined4 *puStack_118;
  int *piStack_110;
  longlong *plStack_108;
  uint *puStack_100;
  undefined4 *puStack_f8;
  undefined4 *puStack_f0;
  undefined4 *local_e8;
  undefined1 *local_e0;
  uint uStack_d8;
  undefined4 uStack_d4;
  char *pcStack_d0;
  undefined4 local_c8;
  undefined4 local_c4;
  undefined4 auStack_c0 [2];
  undefined8 local_b8;
  undefined4 auStack_b0 [2];
  undefined4 auStack_a8 [2];
  uint local_a0;
  undefined4 auStack_98 [2];
  undefined4 auStack_90 [2];
  uint local_88;
  longlong lStack_80;
  char *pcStack_78;
  char *pcStack_70;
  char *pcStack_68;
  char *pcStack_60;
  undefined8 local_58;
  
  puVar8 = auStack_138;
  local_58 = 0xfffffffffffffffe;
  uVar1 = (uint)&stack0x00000000;
  uVar4 = 1;
  local_88 = ((int)(-(uVar1 | 0x90038b8) | uVar1 | 0x90038b8) >> 0x1f) * -0x491b ^ 0x47cb;
  uVar7 = ((uVar1 & 0x1cff) + 1) * (uVar1 & 0x1cff) + 0x1bdb & 0x80000001;
  iVar2 = (uVar1 & 0x61ff) * (uVar1 & 0x61ff) + 1;
  uVar1 = iVar2 * 0x24924924 + (iVar2 >> 4) + (iVar2 >> 1) >> 0x1d;
  uVar1 = (int)(uVar1 - 7) >> 0x1f & uVar1;
  local_a0 = (((int)(-uVar1 | uVar1) >> 0x1f) - ((int)(-uVar7 | uVar7) >> 0x1f)) + 0x6966U ^ 0x6f56;
  pcVar5 = (char *)0x0;
  local_c8 = 0;
  local_e8 = &DAT_181523fb4;
  local_e0 = &LAB_1815240b4;
  local_b8 = 0x90c35e833d766d26;
  local_c4 = 0x7349ce97;
  uVar1 = (DAT_181523fb4 + 0x26b1e65a) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181523fb8) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181523fbc) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181523fc0) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181523fc4) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181523fc8) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + DAT_181523fcc) * -0x395b586d;
  piVar9 = (int *)register0x00000020;
  do {
    piVar9 = (int *)-(~(ulonglong)piVar9 + 1);
    uVar7 = (*piVar9 + 1) * *piVar9 & 0x80000001;
    if ((int)uVar7 < 0) {
      uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar7 != 0);
  local_res10[0] = param_2;
  local_res18 = param_3;
  local_res20 = param_4;
  if (*(char *)(param_1 + 8) == '\0') {
    lStackX_8 = FUN_1811316e0(0x18);
    if (lStackX_8 == 0) {
      lStackX_8 = 0;
    }
    else {
      lStackX_8 = FUN_1805a48c0(lStackX_8,"ILokCert object has not been initialized");
    }
    pcVar3 = (char *)FUN_1811316e0(0x18);
    pcStack_d0 = pcVar3;
    if (pcVar3 != (char *)0x0) {
      FUN_1805a48c0(pcVar3,"|__FILE__|%s|__LINE__|%d");
      *(undefined ***)pcVar3 = pace::PaceLocationInfoFormatter::vftable;
      pcVar5 = pcVar3;
    }
    auStack_c0[0] = 0x173;
    pcStack_78 = "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilokcert.cpp";
    uVar4 = FUN_1805a21d0(*(undefined8 *)(pcVar5 + 8),&pcStack_78);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar4,auStack_c0);
  }
  FUN_18070ac10(param_4,0x180000000);
  uVar1 = (_UNK_181523fd0 + (uVar1 ^ uVar1 >> 0x10)) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181523fd4) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181523fd8) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181523fdc) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181523fe0) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181523fe4) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181523fe8) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _UNK_181523fec) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _LAB_181523ff0) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _LAB_181523ff4) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181523ff8) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181523ffc) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524000) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524004) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524008) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152400c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524010) * -0x395b586d;
  do {
    uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar7 < 0) {
      uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar7 != 0);
  uVar1 = (iRam0000000181524014 + (uVar1 ^ uVar1 >> 0x10)) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524018) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152401c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524020) * -0x395b586d;
  uVar1 = uVar1 ^ uVar1 >> 0x10;
  uVar10 = (ulonglong)uVar1;
  do {
    func_0x0001807e047f(0xe200);
    lVar6 = local_res20;
    uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar7 < 0) {
      uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar7 != 0);
  uVar1 = (iRam0000000181524024 + uVar1) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524028) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152402c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524030) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524034) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524038) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152403c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524040) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _LAB_181524044) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524048) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152404c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524050) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524054) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524058) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152405c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524060) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524064) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524068) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152406c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524070) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524074) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524078) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152407c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + _LAB_181524080) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524084) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524088) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152408c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524090) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524094) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam0000000181524098) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam000000018152409c) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam00000001815240a0) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam00000001815240a4) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam00000001815240a8) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam00000001815240ac) * -0x395b586d;
  uVar1 = ((uVar1 >> 0x10 ^ uVar1) + iRam00000001815240b0) * -0x395b586d;
  uVar1 = (~(((uVar1 >> 0x10 ^ uVar1) << 4 | uVar1 >> 0x1c) + 0xb621f296) + 0x559aabc4) -
          (int)local_b8;
  if (uVar1 == 0 && (uVar1 & 0xfffffff) == 0) {
    if (local_res10[0] == *(int *)(param_1 + 0x130)) {
      FUN_180709c60(local_res20,param_1 + 0xc0);
      FUN_180709c60(lVar6 + 0x38,param_1 + 0xf8);
      *local_res18 = 0;
    }
    else {
      puStack_f0 = local_res18;
      puStack_f8 = &uStack_d4;
      puStack_100 = &uStack_d8;
      plStack_108 = &lStack_80;
      piStack_110 = local_res10;
      puStack_118 = &local_c8;
      iVar2 = FUN_1809fe6d0(param_1 + 0x1b0,
                            (ulonglong)*(uint *)(param_1 + 0x1a8) + *(longlong *)(param_1 + 0x1a0),
                            *(undefined4 *)(param_1 + 0x1ac),0xffffffff);
      lStackX_8._0_4_ = iVar2;
      if (iVar2 != 0) {
        pcStack_d0 = (char *)FUN_1811316e0(0x18);
        if (pcStack_d0 != (char *)0x0) {
          pcVar5 = (char *)FUN_1805a48c0(pcStack_d0,"[%d] CERT_FindAndExtractPublicKey error");
        }
        lVar6 = FUN_1805c0260();
        FUN_18060e760(*(undefined8 *)(pcVar5 + 8),&lStackX_8);
        auStack_b0[0] = 0x196;
        pcStack_70 = 
        "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilokcert.cpp";
        uVar4 = FUN_1805a21d0(*(undefined8 *)(lVar6 + 8),&pcStack_70);
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(uVar4,auStack_b0);
      }
      if (lStack_80 != 0) {
        iVar2 = FUN_180a028e0(local_res10[0],(ulonglong)uStack_d8 + lStack_80,uStack_d4,local_res20)
        ;
        lStackX_8 = CONCAT44(lStackX_8._4_4_,iVar2);
        if (iVar2 != 0) {
          pcStack_d0 = (char *)FUN_1811316e0(0x18);
          if (pcStack_d0 != (char *)0x0) {
            pcVar5 = (char *)FUN_1805a48c0(pcStack_d0,"[%d] CERT_InterpretECC_PublicKeyValue error")
            ;
          }
          lVar6 = FUN_1805c0260();
          FUN_18060e760(*(undefined8 *)(pcVar5 + 8),&lStackX_8);
          auStack_a8[0] = 0x1a2;
          pcStack_68 = 
          "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilokcert.cpp";
          uVar4 = FUN_1805a21d0(*(undefined8 *)(lVar6 + 8),&pcStack_68);
                    /* WARNING: Subroutine does not return */
          FUN_1805b20d0(uVar4,auStack_a8);
        }
      }
    }
    do {
      *(char **)(puVar8 + -8) = pcVar5;
      *(ulonglong *)(puVar8 + -0x10) = uVar10;
      *(undefined8 *)(puVar8 + -0x18) = uVar4;
      lVar6 = -(longlong)(int)local_a0;
      uVar4 = *(undefined8 *)(puVar8 + lVar6 + 0x618);
      uVar10 = *(ulonglong *)(puVar8 + lVar6 + 0x620);
      pcVar5 = *(char **)(puVar8 + lVar6 + 0x628);
      puVar8 = puVar8 + lVar6 + 0x630;
      uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar1 < 0) {
        uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar1 != 0);
    return;
  }
  if (local_res10[0] == *(int *)(param_1 + 0x130)) {
    puStack_f0 = local_res18;
    puStack_f8 = &uStack_d4;
    puStack_100 = &uStack_d8;
    plStack_108 = &lStack_80;
    piStack_110 = local_res10;
    puStack_118 = &local_c8;
    iVar2 = FUN_1809fe6d0(param_1 + 0x1b0,
                          (ulonglong)*(uint *)(param_1 + 0x1a8) + *(longlong *)(param_1 + 0x1a0));
    lStackX_8 = CONCAT44(lStackX_8._4_4_,iVar2);
    if (iVar2 == 0) {
      pcStack_d0 = (char *)FUN_1811316e0(0x18);
      if (pcStack_d0 != (char *)0x0) {
        pcVar5 = (char *)FUN_1805a48c0(pcStack_d0,"[%d] CERT_FindAndExtractPublicKey error");
      }
      lVar6 = FUN_1805c0260();
      FUN_18060e760(*(undefined8 *)(pcVar5 + 8),&lStackX_8);
      auStack_98[0] = 0x15c;
      pcStack_60 = 
      "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilokcert.cpp";
      uVar4 = FUN_1805a21d0(*(undefined8 *)(lVar6 + 8),&pcStack_60);
                    /* WARNING: Subroutine does not return */
      FUN_1805b20d0(uVar4,auStack_98);
    }
    if (lStack_80 == 0) {
      iVar2 = FUN_180a028e0(local_res10[0],uStack_d8);
      lStackX_8 = CONCAT44(lStackX_8._4_4_,iVar2);
      if (iVar2 == 0) {
        pcStack_d0 = (char *)FUN_1811316e0(0x18);
        if (pcStack_d0 != (char *)0x0) {
          pcVar5 = (char *)FUN_1805a48c0(pcStack_d0,"[%d] CERT_InterpretECC_PublicKeyValue error");
        }
        lVar6 = FUN_1805c0260();
        FUN_18060e760(*(undefined8 *)(pcVar5 + 8),&lStackX_8);
        auStack_90[0] = 0x183;
        pcStack_d0 = 
        "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilokcert.cpp";
        uVar4 = FUN_1805a21d0(*(undefined8 *)(lVar6 + 8),&pcStack_d0);
                    /* WARNING: Subroutine does not return */
        FUN_1805b20d0(uVar4,auStack_90);
      }
    }
  }
  else {
    FUN_180709c60(local_res20,param_1 + 0xc0);
    FUN_180709c60(lVar6 + 0x38,param_1 + 0xf8);
    *local_res18 = 0;
  }
  thunk_FUN_1805a9280();
  return;
}



############ FUN_ 180662d40 size=838 ############

/* WARNING: Removing unreachable block (ram,0x000180662f10) */

longlong FUN_180662d40(undefined8 param_1)

{
  ulonglong uVar1;
  uint uVar2;
  int iVar3;
  undefined1 auStack_e8 [40];
  undefined8 local_c0;
  undefined8 local_b8;
  undefined8 local_a8;
  uint local_a0;
  uint local_98;
  undefined8 local_88;
  undefined8 local_80;
  undefined1 local_78;
  undefined8 local_68;
  undefined8 local_60;
  ulonglong local_40;
  
  local_80 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_e8;
  uVar2 = (uint)&stack0x00000000 & 0x3ff;
  iVar3 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  uVar2 = 1 << ((byte)(((iVar3 >> 1) - (iVar3 >> 3)) + iVar3 * 0x55555555 >> 0x1e) & 0x1f);
  local_a0 = ((int)(-uVar2 | uVar2) >> 0x1f) * -0x6244 ^ 0x60e4;
  uVar2 = (uint)&stack0x00000000 & 0x33f;
  iVar3 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  local_98 = (((iVar3 >> 1) - (iVar3 >> 3)) + iVar3 * 0x55555555 >> 0x1e) + 0x71b6U ^ 0x7616;
  local_68 = 0;
  local_60 = 0xf;
  local_78 = 0;
  local_a8 = 0;
  local_b8 = 0x180778c48;
  local_c0 = 0x18077b380;
  local_88 = param_1;
                    /* WARNING: Call to offcut address within same function */
  uVar1 = func_0x000180662f2d(0x18077b380,0x180000000,0);
  return (~(uVar1 | 0x24) + 1 ^ 0xffffffffffffffff) + 1;
}



############ FUN_ 18076a230 size=3536 ############

/* WARNING: Instruction at (ram,0x00018076af69) overlaps instruction at (ram,0x00018076af67)
    */
/* WARNING: Removing unreachable block (ram,0x00018076a2bc) */
/* WARNING: Removing unreachable block (ram,0x00018076a907) */
/* WARNING: Type propagation algorithm not settling */

void FUN_18076a230(undefined8 param_1,byte *param_2)

{
  longlong *plVar1;
  byte bVar2;
  byte bVar3;
  char cVar4;
  char *pcVar5;
  char *pcVar6;
  undefined8 uVar7;
  ulonglong uVar8;
  longlong lVar9;
  uint uVar10;
  int iVar11;
  uint uVar12;
  char *pcVar13;
  int *piVar14;
  int unaff_retaddr;
  undefined4 unaff_retaddr_00;
  longlong local_res10;
  uint local_1b0 [2];
  uint local_1a8;
  code *local_1a0;
  char *local_198;
  int *local_190;
  undefined4 local_188 [2];
  uint local_180;
  uint local_17c [3];
  uint local_170 [2];
  undefined4 local_168 [2];
  uint local_160 [2];
  undefined4 local_158 [2];
  uint local_150;
  undefined4 local_120;
  char *local_e8;
  char *local_e0;
  uint local_d8 [2];
  char *local_d0;
  char *local_c8;
  char *local_c0 [13];
  undefined8 local_58;
  
  local_58 = 0xfffffffffffffffe;
  pcVar13 = (char *)0x0;
  local_120 = 0x2a0;
  uVar10 = (uint)&stack0x00000000 & 0x19ff;
  iVar11 = uVar10 * uVar10 + 1;
  uVar10 = (iVar11 >> 4) + (iVar11 >> 1) + iVar11 * 0x24924924 >> 0x1d;
  uVar10 = (int)(uVar10 - 7) >> 0x1f & uVar10;
  uVar10 = (int)(-uVar10 | uVar10) >> 0x1f;
  local_150 = ((int)(-uVar10 | uVar10) >> 0x1f) * -0xe279 ^ 0xe5d9;
  local_190 = &DAT_1814f4278;
  bVar2 = FUN_18061e560(param_2[3],0x164,0);
  piVar14 = local_190;
  if (bVar2 == 0xff) {
    local_e8 = (char *)FUN_1811316e0(0x18);
    pcVar5 = pcVar13;
    if (local_e8 != (char *)0x0) {
      pcVar5 = (char *)FUN_1805a48c0(local_e8,
                                     "Error converting the upper two digits of the Year from ILokTime (%d) to ptime."
                                    );
    }
    pcVar6 = (char *)FUN_1811316e0(0x18);
    local_e8 = pcVar6;
    if (pcVar6 != (char *)0x0) {
      FUN_1805a48c0(pcVar6,"|__FILE__|%s|__LINE__|%d");
      *(undefined ***)pcVar6 = pace::PaceLocationInfoFormatter::vftable;
      pcVar13 = pcVar6;
    }
    local_d8[0] = (uint)param_2[3];
    FUN_18060e760(*(undefined8 *)(pcVar5 + 8),local_d8);
    local_188[0] = 0xf24;
    local_e8 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilok2commander.cpp";
    uVar7 = FUN_1805a21d0(*(undefined8 *)(pcVar13 + 8),&local_e8);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar7,local_188);
  }
  uVar10 = (*local_190 + 0x70c53f1e) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + local_190[1]) * -0x395b586d;
  bVar3 = FUN_18061e560(param_2[2],100,0);
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[2]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[3]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[4]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[5]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[6]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[7]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[8]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[9]) * -0x395b586d;
  if (bVar3 == 0xff) {
    local_e0 = (char *)FUN_1811316e0(0x18);
    pcVar5 = pcVar13;
    if (local_e0 != (char *)0x0) {
      pcVar5 = (char *)FUN_1805a48c0(local_e0,
                                     "Error converting the lower two digits of the Year from ILokTime (%d) to ptime."
                                    );
    }
    pcVar6 = (char *)FUN_1811316e0(0x18);
    local_e0 = pcVar6;
    if (pcVar6 != (char *)0x0) {
      FUN_1805a48c0(pcVar6,"|__FILE__|%s|__LINE__|%d");
      *(undefined ***)pcVar6 = pace::PaceLocationInfoFormatter::vftable;
      pcVar13 = pcVar6;
    }
    local_180 = (uint)param_2[2];
    FUN_18060e760(*(undefined8 *)(pcVar5 + 8),&local_180);
    local_1b0[0] = 0xf2f;
    local_e0 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilok2commander.cpp";
    uVar7 = FUN_1805a21d0(*(undefined8 *)(pcVar13 + 8),&local_e0);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar7,local_1b0);
  }
  uVar10 = (piVar14[10] + (uVar10 ^ uVar10 >> 0x10)) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0xb]) * -0x395b586d;
  uVar12 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0xc]) * -0x395b586d;
  uVar10 = ((uVar12 >> 0x10 ^ uVar12) + piVar14[0xd]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0xe]) * -0x395b586d;
  cVar4 = FUN_18061e560(param_2[1],CONCAT71((uint7)(uint3)(uVar12 >> 8),0xc),
                        CONCAT71((uint7)(uint3)((uint)bVar3 + (uint)bVar2 * 100 >> 8),1));
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0xf]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x10]) * -0x395b586d;
  do {
    uVar7 = rdtsc();
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  uVar12 = ((uint)uVar7 ^ (uint)((ulonglong)uVar7 >> 0x20)) * 0x5bd1e995;
  local_1a8 = (uVar12 >> 0x18 ^ uVar12) * -0x733212ab;
  if (local_1a8 < 0x2702703) {
    do {
      local_1a0 = FUN_181194940;
      FUN_18076a4bc(&local_1a0,0x34af);
      uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar12 < 0) {
        uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar12 != 0);
    uVar8 = (*local_1a0)();
    if (1 < uVar8) {
      lVar9 = CONCAT44(unaff_retaddr_00,unaff_retaddr);
      plVar1 = (longlong *)register0x00000020;
      while (lVar9 != -0x3333333333333334) {
        *plVar1 = 0;
        plVar1 = plVar1 + 8;
        lVar9 = *plVar1;
      }
    }
  }
  uVar10 = (piVar14[0x11] + (uVar10 ^ uVar10 >> 0x10)) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x12]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x13]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x14]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x15]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x16]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x17]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x18]) * -0x395b586d;
  do {
    piVar14 = (int *)-(((ulonglong)piVar14 ^ 0xffffffffffffffff) + 1);
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  uVar10 = (piVar14[0x19] + (uVar10 ^ uVar10 >> 0x10)) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x1a]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x1b]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x1c]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x1d]) * -0x395b586d;
  do {
    FUN_18076c80a(0xdb2c);
    uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar12 < 0) {
      uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar12 != 0);
  uVar10 = (piVar14[0x1e] + (uVar10 ^ uVar10 >> 0x10)) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x1f]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x20]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x21]) * -0x395b586d;
  uVar12 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x22]) * -0x395b586d;
  local_1b0[0] = 0x1517863;
  uVar10 = ((uVar12 >> 0x10 ^ uVar12) + piVar14[0x23]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x24]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x25]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x26]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x27]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x28]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x29]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x2a]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x2b]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x2c]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x2d]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x2e]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x2f]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x30]) * -0x395b586d;
  if (cVar4 == -2) {
    local_198 = (char *)FUN_1811316e0(0x18);
    pcVar5 = pcVar13;
    if (local_198 != (char *)0x0) {
      pcVar5 = (char *)FUN_1805a48c0(local_198,
                                     "Error converting the Month from ILokTime (%d) to ptime.");
    }
    pcVar6 = (char *)FUN_1811316e0(0x18);
    local_198 = pcVar6;
    if (pcVar6 != (char *)0x0) {
      FUN_1805a48c0(pcVar6,"|__FILE__|%s|__LINE__|%d");
      *(undefined ***)pcVar6 = pace::PaceLocationInfoFormatter::vftable;
      pcVar13 = pcVar6;
    }
    local_17c[0] = (uint)param_2[1];
    FUN_18060e760(*(undefined8 *)(pcVar5 + 8),local_17c);
    local_17c[1] = 0xf3e;
    local_d0 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilok2commander.cpp";
    uVar7 = FUN_1805a21d0(*(undefined8 *)(pcVar13 + 8),&local_d0);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar7,local_17c + 1);
  }
  uVar10 = (piVar14[0x31] + (uVar10 ^ uVar10 >> 0x10)) * -0x395b586d;
  bVar2 = FUN_18061e560(*param_2,CONCAT71((uint7)(uint3)(uVar12 >> 8),0x1f));
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x32]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x33]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x34]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x35]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x36]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x37]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x38]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x39]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x3a]) * -0x395b586d;
  uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x3b]) * -0x395b586d;
  if (bVar2 + 1 == 0xff) {
    lVar9 = FUN_1811316e0(0x18);
    if (lVar9 == 0) {
      local_res10 = 0;
    }
    else {
      local_res10 = FUN_1805a48c0(lVar9,"Error converting the Day from ILokTime (%d) to ptime.");
    }
    pcVar5 = (char *)FUN_1811316e0(0x18);
    local_198 = pcVar5;
    if (pcVar5 != (char *)0x0) {
      FUN_1805a48c0(pcVar5,"|__FILE__|%s|__LINE__|%d");
      *(undefined ***)pcVar5 = pace::PaceLocationInfoFormatter::vftable;
      pcVar13 = pcVar5;
    }
    local_170[0] = (uint)*param_2;
    FUN_18060e760(*(undefined8 *)(local_res10 + 8),local_170);
    local_168[0] = 0xf4b;
    local_c8 = 
    "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilok2commander.cpp";
    uVar7 = FUN_1805a21d0(*(undefined8 *)(pcVar13 + 8),&local_c8);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar7,local_168);
  }
  uVar7 = CONCAT71((uint7)(uint3)(bVar2 + 1 >> 8),0x18);
  cVar4 = FUN_18061e560(param_2[7],uVar7);
  uVar10 = ((uVar10 ^ uVar10 >> 0x10) + piVar14[0x3c]) * -0x395b586d;
  if (cVar4 != -1) {
    uVar10 = (piVar14[0x3d] + (uVar10 ^ uVar10 >> 0x10)) * -0x395b586d;
    uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x3e]) * -0x395b586d;
    uVar10 = ((uVar10 >> 0x10 ^ uVar10) + piVar14[0x3f]) * -0x395b586d;
    uVar12 = uVar10 >> 0x10 ^ uVar10;
    uVar10 = (uVar12 << 2 | uVar10 >> 0x1e) & 0x99999999 |
             (uVar12 >> 2 | uVar12 << 0x1e) & 0x66666666;
    lVar9 = CONCAT71((int7)((ulonglong)uVar7 >> 8),0x3c);
    FUN_18061e560(param_2[6],lVar9);
    do {
      FUN_18076b007();
                    /* WARNING: Call to offcut address within same function */
      func_0x00018076a689();
      uVar12 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar12 < 0) {
        uVar12 = (uVar12 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar12 != 0);
    if ((char)((((uVar10 >> 0x10 | uVar10 << 0x10) & 0x932d6cd2 |
                (uVar10 << 0x10 | uVar10 >> 0x10) & 0x6cd2932d) != local_1b0[0]) * '6') != '\0') {
      FUN_18076a4bc();
      thunk_FUN_1805a9280();
      return;
    }
    FUN_18076b008((longlong)(int)local_150,-lVar9);
    return;
  }
  local_198 = (char *)FUN_1811316e0(0x18);
  if (local_198 == (char *)0x0) {
    local_1a0 = (code *)0x0;
  }
  else {
    local_1a0 = (code *)FUN_1805a48c0(local_198,
                                      "Error converting the Hour from ILokTime (%d) to ptime.");
  }
  pcVar5 = (char *)FUN_1811316e0(0x18);
  local_198 = pcVar5;
  if (pcVar5 != (char *)0x0) {
    FUN_1805a48c0(pcVar5,"|__FILE__|%s|__LINE__|%d");
    *(undefined ***)pcVar5 = pace::PaceLocationInfoFormatter::vftable;
    pcVar13 = pcVar5;
  }
  local_160[0] = (uint)param_2[7];
  FUN_18060e760(*(undefined8 *)(local_1a0 + 8),local_160);
  local_158[0] = 0xf5a;
  local_c0[0] = 
  "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilok2commander.cpp";
  uVar7 = FUN_1805a21d0(*(undefined8 *)(pcVar13 + 8),local_c0);
                    /* WARNING: Subroutine does not return */
  FUN_1805b20d0(uVar7,local_158);
}



############ FUN_ 180741570 size=3011 ############

/* WARNING: Instruction at (ram,0x000180741e21) overlaps instruction at (ram,0x000180741e1f)
    */
/* WARNING: Removing unreachable block (ram,0x000180741e1f) */
/* WARNING: Removing unreachable block (ram,0x0001807416d6) */
/* WARNING: Removing unreachable block (ram,0x0001807415ea) */
/* WARNING: Removing unreachable block (ram,0x000180741d20) */
/* WARNING: Removing unreachable block (ram,0x0001807421c3) */

ulonglong FUN_180741570(longlong param_1)

{
  undefined1 *puVar1;
  longlong lVar2;
  undefined8 *puVar3;
  undefined8 uVar4;
  ulonglong uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined1 *puVar9;
  undefined1 *puVar10;
  undefined8 uVar11;
  undefined8 *puVar12;
  uint7 uVar13;
  longlong lVar14;
  int unaff_retaddr;
  undefined1 auStack_98 [32];
  undefined8 local_78;
  undefined4 local_70 [2];
  undefined4 *local_68;
  undefined *local_60;
  char *local_58;
  undefined8 local_50;
  
  puVar9 = auStack_98;
  local_50 = 0xfffffffffffffffe;
  uVar8 = (uint)&stack0x00000000 & 0x3bf;
  uVar4 = 0;
  uVar11 = 0x5f1;
  puVar12 = (undefined8 *)0x0;
  local_68 = &DAT_1815b9c1c;
  local_60 = &DAT_1815b9d1c;
  local_78 = 0x1cc98ede;
  if (*(char *)(param_1 + 8) == '\0') {
    lVar2 = FUN_1811316e0(0x18);
    if (lVar2 != 0) {
      FUN_1805a48c0(lVar2,"Signer object has not been initialized");
    }
    puVar3 = (undefined8 *)FUN_1811316e0(0x18);
    if (puVar3 != (undefined8 *)0x0) {
      FUN_1805a48c0(puVar3,"|__FILE__|%s|__LINE__|%d");
      *puVar3 = pace::PaceLocationInfoFormatter::vftable;
      puVar12 = puVar3;
    }
    local_70[0] = 0x156;
    local_58 = "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\signer.cpp";
    uVar4 = FUN_1805a21d0(puVar12[1],&local_58);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar4,local_70);
  }
  uVar6 = (DAT_1815b9c1c * 0x16a88000 | (uint)(DAT_1815b9c1c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          0x66b5e5b0;
  uVar6 = (DAT_1815b9c20 * 0x16a88000 | (uint)(DAT_1815b9c20 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c24 * 0x16a88000 | (uint)(DAT_1815b9c24 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c28 * 0x16a88000 | (uint)(DAT_1815b9c28 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c2c * 0x16a88000 | (uint)(DAT_1815b9c2c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c30 * 0x16a88000 | (uint)(DAT_1815b9c30 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c34 * 0x16a88000 | (uint)(DAT_1815b9c34 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c38 * 0x16a88000 | (uint)(DAT_1815b9c38 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c3c * 0x16a88000 | (uint)(DAT_1815b9c3c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c40 * 0x16a88000 | (uint)(DAT_1815b9c40 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c44 * 0x16a88000 | (uint)(DAT_1815b9c44 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c48 * 0x16a88000 | (uint)(DAT_1815b9c48 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c4c * 0x16a88000 | (uint)(DAT_1815b9c4c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c50 * 0x16a88000 | (uint)(DAT_1815b9c50 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c54 * 0x16a88000 | (uint)(DAT_1815b9c54 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c58 * 0x16a88000 | (uint)(DAT_1815b9c58 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c5c * 0x16a88000 | (uint)(DAT_1815b9c5c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c60 * 0x16a88000 | (uint)(DAT_1815b9c60 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c64 * 0x16a88000 | (uint)(DAT_1815b9c64 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c68 * 0x16a88000 | (uint)(DAT_1815b9c68 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c6c * 0x16a88000 | (uint)(DAT_1815b9c6c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c70 * 0x16a88000 | (uint)(DAT_1815b9c70 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c74 * 0x16a88000 | (uint)(DAT_1815b9c74 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c78 * 0x16a88000 | (uint)(DAT_1815b9c78 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c7c * 0x16a88000 | (uint)(DAT_1815b9c7c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c80 * 0x16a88000 | (uint)(DAT_1815b9c80 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c84 * 0x16a88000 | (uint)(DAT_1815b9c84 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c88 * 0x16a88000 | (uint)(DAT_1815b9c88 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c8c * 0x16a88000 | (uint)(DAT_1815b9c8c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c90 * 0x16a88000 | (uint)(DAT_1815b9c90 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c94 * 0x16a88000 | (uint)(DAT_1815b9c94 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  do {
    uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar7 < 0) {
      uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar7 != 0);
  uVar6 = (DAT_1815b9c98 * 0x16a88000 | (uint)(DAT_1815b9c98 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9c9c * 0x16a88000 | (uint)(DAT_1815b9c9c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9ca0 * 0x16a88000 | (uint)(DAT_1815b9ca0 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9ca4 * 0x16a88000 | (uint)(DAT_1815b9ca4 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9ca8 * 0x16a88000 | (uint)(DAT_1815b9ca8 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cac * 0x16a88000 | (uint)(DAT_1815b9cac * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cb0 * 0x16a88000 | (uint)(DAT_1815b9cb0 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cb4 * 0x16a88000 | (uint)(DAT_1815b9cb4 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cb8 * 0x16a88000 | (uint)(DAT_1815b9cb8 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cbc * 0x16a88000 | (uint)(DAT_1815b9cbc * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cc0 * 0x16a88000 | (uint)(DAT_1815b9cc0 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cc4 * 0x16a88000 | (uint)(DAT_1815b9cc4 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cc8 * 0x16a88000 | (uint)(DAT_1815b9cc8 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  do {
    uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar7 < 0) {
      uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar7 != 0);
  uVar6 = (DAT_1815b9ccc * 0x16a88000 | (uint)(DAT_1815b9ccc * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cd0 * 0x16a88000 | (uint)(DAT_1815b9cd0 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cd4 * 0x16a88000 | (uint)(DAT_1815b9cd4 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cd8 * 0x16a88000 | (uint)(DAT_1815b9cd8 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cdc * 0x16a88000 | (uint)(DAT_1815b9cdc * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9ce0 * 0x16a88000 | (uint)(DAT_1815b9ce0 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9ce4 * 0x16a88000 | (uint)(DAT_1815b9ce4 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  do {
    FUN_1807400de();
    uVar7 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar7 < 0) {
      uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar7 != 0);
  uVar6 = (DAT_1815b9ce8 * 0x16a88000 | (uint)(DAT_1815b9ce8 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cec * 0x16a88000 | (uint)(DAT_1815b9cec * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cf0 * 0x16a88000 | (uint)(DAT_1815b9cf0 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cf4 * 0x16a88000 | (uint)(DAT_1815b9cf4 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cf8 * 0x16a88000 | (uint)(DAT_1815b9cf8 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9cfc * 0x16a88000 | (uint)(DAT_1815b9cfc * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9d00 * 0x16a88000 | (uint)(DAT_1815b9d00 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9d04 * 0x16a88000 | (uint)(DAT_1815b9d04 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9d08 * 0x16a88000 | (uint)(DAT_1815b9d08 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9d0c * 0x16a88000 | (uint)(DAT_1815b9d0c * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  lVar2 = 0x170;
  do {
                    /* WARNING: Call to offcut address within same function */
    func_0x0001807416dc(0x7200);
    lVar14 = (longlong)register0x00000020 + (longlong)puVar12;
    puVar12 = (undefined8 *)
              (((~((longlong)puVar12 - lVar14) + 1U) - lVar14 ^ 0xffffffffffffffff) + 1);
    register0x00000020 = (BADSPACEBASE *)(lVar14 - (longlong)puVar12);
    uVar7 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar7 < 0) {
      uVar7 = (uVar7 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar7 != 0);
  uVar6 = (DAT_1815b9d10 * 0x16a88000 | (uint)(DAT_1815b9d10 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (DAT_1815b9d14 * 0x16a88000 | (uint)(DAT_1815b9d14 * -0x3361d2af) >> 0x11) * 0x1b873593 ^
          (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64 ^
          (DAT_1815b9d18 * 0x16a88000 | (uint)(DAT_1815b9d18 * -0x3361d2af) >> 0x11) * 0x1b873593;
  uVar6 = (uVar6 << 0xd | uVar6 >> 0x13) * 5 + 0xe6546b64;
  uVar6 = ~((uVar6 * 0x2000 | uVar6 >> 0x13) + 0x3c719dda) ^ 0x66abbc6;
  uVar5 = (ulonglong)uVar6;
  uVar13 = (uint7)((ulonglong)puVar12 >> 8);
  puVar1 = puVar9;
  if ((int)CONCAT71(uVar13,uVar6 == 0x635d4cba) == (int)(((ulonglong)uVar13 & 0xffffff) << 4)) {
    do {
      puVar10 = puVar1;
      *(undefined8 *)(puVar10 + -8) = 0x18074207a;
      lVar14 = lVar2;
      FUN_18074023e(lVar2,uVar5);
      *(undefined8 *)(puVar10 + -8) = uVar11;
      *(undefined8 *)(puVar10 + -0x10) = uVar4;
      *(longlong *)(puVar10 + -0x18) = lVar2;
      lVar14 = -lVar14;
      lVar2 = *(longlong *)(puVar10 + lVar14 + 0x158);
      uVar4 = *(undefined8 *)(puVar10 + lVar14 + 0x160);
      uVar11 = *(undefined8 *)(puVar10 + lVar14 + 0x168);
      uVar8 = (*(int *)(puVar10 + lVar14 + 0x208) + 1) * *(int *)(puVar10 + lVar14 + 0x208) &
              0x80000001;
      if ((int)uVar8 < 0) {
        uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
      }
      puVar1 = puVar10 + lVar14 + 0x170;
    } while (uVar8 != 0);
    return (ulonglong)(uint)(*(int *)(*(longlong *)(puVar10 + lVar14 + 0x210) + 0x18) << 2);
  }
  uVar5 = thunk_FUN_1805a9280((((uVar8 + 2) * (uVar8 + 1) * uVar8) % 3 | 0xf388) ^ 0xfa38,uVar5);
  return uVar5;
}



############ FUN_ 1807e3f30 size=1081 ############

/* WARNING: Removing unreachable block (ram,0x0001807e404d) */

void FUN_1807e3f30(longlong param_1,undefined8 param_2)

{
  byte bVar1;
  basic_ostream<char,struct_std::char_traits<char>_> *pbVar2;
  undefined8 *puVar3;
  longlong lVar4;
  undefined8 uVar5;
  uint uVar6;
  int iVar7;
  undefined1 auStack_258 [40];
  longlong local_230;
  undefined8 local_228;
  undefined *local_220;
  undefined *local_218;
  undefined4 local_210;
  undefined4 local_208 [2];
  uint local_200;
  uint local_1fc;
  undefined8 local_1f8;
  int iStack_1ec;
  undefined *local_1e8 [2];
  undefined *local_1d8;
  undefined **local_1d0 [10];
  undefined1 auStack_180 [24];
  undefined8 local_168;
  undefined4 local_160;
  basic_ios<char,std::char_traits<char>_> local_150 [104];
  char *local_e8;
  longlong local_e0;
  undefined8 local_d8;
  undefined1 local_d0 [16];
  undefined1 local_c0 [120];
  ulonglong local_48;
  
  local_d8 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_258;
  local_210 = 0;
  uVar6 = (uint)&stack0x00000000 & 0x6aff;
  iVar7 = uVar6 * uVar6 + 1;
  uVar6 = (iVar7 >> 4) + (iVar7 >> 1) + iVar7 * 0x24924924 >> 0x1d;
  uVar6 = (int)(uVar6 - 7) >> 0x1f & uVar6;
  uVar6 = (int)(-uVar6 | uVar6) >> 0x1f;
  local_1fc = ((int)(-uVar6 | uVar6) >> 0x1f) * -0xd64a ^ 0xd09a;
  uVar6 = (uint)&stack0x00000000 & 0x12ff;
  uVar6 = (uVar6 + 1) * uVar6 + 7;
  local_200 = (0 >> ((char)uVar6 + (char)(uVar6 / 0x51) * -0x51 & 0x1fU) | 0x6216U) ^ 0x6fe6;
  local_1e8[0] = &DAT_181bb76c0;
  local_1d8 = &DAT_181bb76c8;
  local_230 = param_2;
  local_1f8 = param_2;
  local_e0 = param_1;
  std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>(local_150);
  local_210 = 2;
  std::basic_iostream<char,std::char_traits<char>_>::basic_iostream<char,std::char_traits<char>_>
            ((basic_iostream<char,std::char_traits<char>_> *)local_1e8,
             (basic_streambuf<char,std::char_traits<char>_> *)local_1d0);
  *(undefined ***)((longlong)local_1e8 + (longlong)*(int *)(local_1e8[0] + 4)) =
       std::basic_stringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  *(int *)((longlong)&iStack_1ec + (longlong)*(int *)(local_1e8[0] + 4)) =
       *(int *)(local_1e8[0] + 4) + -0x98;
  std::basic_streambuf<char,std::char_traits<char>_>::basic_streambuf<char,std::char_traits<char>_>
            ((basic_streambuf<char,std::char_traits<char>_> *)local_1d0);
  local_1d0[0] = std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  local_168 = 0;
  local_160 = 0;
  uVar6 = *(uint *)(param_1 + 400);
  if (uVar6 == 0) {
    if (*(int *)(param_1 + 0x194) == 0) {
      local_230 = FUN_1811316e0(0x18);
      if (local_230 != 0) {
        FUN_1805a48c0(local_230,
                      "The iLok device serial number portion of the cert serial number is invalid (it\'s zero)."
                     );
      }
      lVar4 = FUN_1805c0260();
      local_208[0] = 0x230;
      local_e8 = "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\ilokcert.cpp";
      uVar5 = FUN_1805a21d0(*(undefined8 *)(lVar4 + 8),&local_e8);
                    /* WARNING: Subroutine does not return */
      FUN_1805b20d0(uVar5,local_208);
    }
  }
  else {
    pbVar2 = std::basic_ostream<char,std::char_traits<char>_>::operator<<
                       ((basic_ostream<char,std::char_traits<char>_> *)&local_1d8,
                        (_func_ios_base_ptr_ios_base_ptr *)&LAB_18060ce80);
    pbVar2 = std::basic_ostream<char,std::char_traits<char>_>::operator<<
                       ((basic_ostream<char,std::char_traits<char>_> *)pbVar2,
                        (_func_ios_base_ptr_ios_base_ptr *)&LAB_18063bb30);
    std::basic_ostream<char,std::char_traits<char>_>::operator<<
              ((basic_ostream<char,std::char_traits<char>_> *)pbVar2,uVar6);
    puVar3 = (undefined8 *)std::setw((__int64)local_d0);
    (*(code *)*puVar3)((longlong)local_1d0 + (longlong)*(int *)(local_1d8 + 4) + -8,puVar3[1]);
    auStack_180[*(int *)(local_1d8 + 4)] = 0x30;
  }
  pbVar2 = std::basic_ostream<char,std::char_traits<char>_>::operator<<
                     ((basic_ostream<char,std::char_traits<char>_> *)&local_1d8,
                      (_func_ios_base_ptr_ios_base_ptr *)&LAB_18060ce80);
  pbVar2 = std::basic_ostream<char,std::char_traits<char>_>::operator<<
                     ((basic_ostream<char,std::char_traits<char>_> *)pbVar2,
                      (_func_ios_base_ptr_ios_base_ptr *)&LAB_18063bb30);
  std::basic_ostream<char,std::char_traits<char>_>::operator<<
            ((basic_ostream<char,std::char_traits<char>_> *)pbVar2,*(uint *)(param_1 + 0x194));
  puVar3 = (undefined8 *)std::setw((__int64)local_c0);
  (*(code *)*puVar3)((longlong)local_1d0 + (longlong)*(int *)(local_1d8 + 4) + -8,puVar3[1]);
  auStack_180[*(int *)(local_1d8 + 4)] = 0x30;
  bVar1 = *(byte *)(param_1 + 0x19a);
  pbVar2 = std::basic_ostream<char,std::char_traits<char>_>::operator<<
                     ((basic_ostream<char,std::char_traits<char>_> *)&local_1d8,
                      (_func_ios_base_ptr_ios_base_ptr *)&LAB_18060ce80);
  pbVar2 = std::basic_ostream<char,std::char_traits<char>_>::operator<<
                     ((basic_ostream<char,std::char_traits<char>_> *)pbVar2,
                      (_func_ios_base_ptr_ios_base_ptr *)&LAB_18063bb30);
  std::basic_ostream<char,std::char_traits<char>_>::operator<<
            ((basic_ostream<char,std::char_traits<char>_> *)pbVar2,(uint)bVar1);
  local_230 = 0;
  local_228 = 0x1c4e398;
  local_218 = &DAT_181c4e398;
  local_220 = &DAT_181c52390;
  FUN_1807e26da();
  FUN_1807e4381();
  return;
}



############ FUN_ 18093c400 size=517 ############

/* WARNING: Removing unreachable block (ram,0x00018093c4f6) */
/* WARNING: Removing unreachable block (ram,0x00018093c447) */
/* WARNING: Removing unreachable block (ram,0x00018093c59d) */
/* WARNING: Removing unreachable block (ram,0x00018093c503) */
/* WARNING: Removing unreachable block (ram,0x00018093c4d3) */

longlong FUN_18093c400(undefined8 param_1)

{
  ulonglong uVar1;
  undefined1 auStack_118 [32];
  undefined4 local_f8;
  undefined4 local_c8;
  undefined4 local_c4;
  undefined8 local_c0;
  undefined8 local_90;
  ulonglong local_30;
  
  local_90 = 0xfffffffffffffffe;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_118;
  local_c4 = 0xc90;
  local_c8 = 0x270;
  local_f8 = 0xc5;
  local_c0 = param_1;
  uVar1 = FUN_18093c60c(0x71387f,0);
  return -((uVar1 ^ 0xffffffffffffffff) + 1);
}



############ FUN_ 180673ff0 size=446 ############

void FUN_180673ff0(undefined8 param_1,undefined8 *param_2,char param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  undefined8 *puVar4;
  longlong lVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  undefined1 local_res18;
  undefined8 *local_48;
  longlong *plStack_40;
  undefined8 *local_38;
  longlong *local_30;
  undefined8 *local_28;
  longlong *plStack_20;
  
  if (param_3 != '\0') {
    param_2[1] = *param_2;
  }
  puVar4 = (undefined8 *)FUN_1811316e0(0x38);
  puVar6 = (undefined8 *)0x0;
  puVar7 = puVar6;
  if (puVar4 != (undefined8 *)0x0) {
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0;
    puVar4[4] = 0;
    *puVar4 = apache::thrift::transport::TMemoryBuffer::vftable;
    FUN_1805da740(puVar4,0,0x400,1,0);
    puVar7 = puVar4;
  }
  local_48 = puVar7;
  FUN_1805d5580(&plStack_40,puVar7);
  FUN_1805ae620(&local_48,puVar7,puVar7);
  lVar5 = FUN_1811316e0(0x40);
  if (lVar5 != 0) {
    local_28 = local_48;
    plStack_20 = plStack_40;
    if (plStack_40 != (longlong *)0x0) {
      LOCK();
      *(int *)(plStack_40 + 1) = (int)plStack_40[1] + 1;
      UNLOCK();
    }
    puVar6 = (undefined8 *)FUN_1806222c0(lVar5,&local_28);
  }
  local_38 = puVar6;
  FUN_180621590(&local_30,puVar6);
  FUN_1805ae620(&local_38,puVar6,puVar6);
  FUN_1807b4930(param_1,local_38);
  lVar5 = local_48[1];
  FUN_1805d5a60(param_2,param_2[1],lVar5,
                (ulonglong)(uint)(*(int *)(local_48 + 3) - (int)lVar5) + lVar5,local_res18);
  if (local_30 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_30 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*local_30 + 8))(local_30);
      LOCK();
      piVar2 = (int *)((longlong)local_30 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_30 + 0x10))(local_30);
      }
    }
  }
  if (plStack_40 != (longlong *)0x0) {
    LOCK();
    plVar1 = plStack_40 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plStack_40 + 8))(plStack_40);
      LOCK();
      piVar2 = (int *)((longlong)plStack_40 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plStack_40 + 0x10))(plStack_40);
      }
    }
  }
  return;
}



############ FUN_ 1807da7c0 size=858 ############

/* WARNING: Removing unreachable block (ram,0x0001807da951) */
/* WARNING: Removing unreachable block (ram,0x0001807da845) */
/* WARNING: Removing unreachable block (ram,0x0001807da96a) */
/* WARNING: Removing unreachable block (ram,0x0001807da94a) */
/* WARNING: Removing unreachable block (ram,0x0001807da9e2) */

void FUN_1807da7c0(undefined8 *param_1)

{
  *param_1 = pace::ILokCert::vftable;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[0x39] = 0;
  param_1[0x3a] = 0;
  return;
}



############ FUN_ 180620470 size=194 ############

void FUN_180620470(ulonglong *param_1,ulonglong *param_2,uint param_3)

{
  ulonglong *puVar1;
  ulonglong uVar2;
  longlong lVar3;
  uint uVar4;
  uint uVar5;
  
  uVar4 = 0;
  if (param_3 != 0) {
    uVar5 = uVar4;
    if ((0x3f < param_3) &&
       (((ulonglong *)((ulonglong)(param_3 - 1) + (longlong)param_2) < param_1 ||
        (uVar5 = 0, (ulonglong *)((ulonglong)(param_3 - 1) + (longlong)param_1) < param_2)))) {
      do {
        uVar4 = uVar4 + 0x40;
        uVar2 = param_2[1];
        *param_1 = *param_2 ^ *param_1;
        param_1[1] = uVar2 ^ param_1[1];
        uVar2 = param_2[3];
        param_1[2] = param_2[2] ^ param_1[2];
        param_1[3] = uVar2 ^ param_1[3];
        uVar2 = param_2[5];
        param_1[4] = param_2[4] ^ param_1[4];
        param_1[5] = uVar2 ^ param_1[5];
        puVar1 = param_2 + 6;
        uVar2 = param_2[7];
        param_2 = param_2 + 8;
        param_1[6] = *puVar1 ^ param_1[6];
        param_1[7] = uVar2 ^ param_1[7];
        param_1 = param_1 + 8;
        uVar5 = uVar4;
      } while (uVar4 < param_3 - (param_3 & 0x3f));
    }
    if (uVar5 < param_3) {
      lVar3 = (longlong)param_2 - (longlong)param_1;
      uVar2 = (ulonglong)(param_3 - uVar5);
      do {
        *(byte *)param_1 = (byte)*param_1 ^ *(byte *)(lVar3 + (longlong)param_1);
        param_1 = (ulonglong *)((longlong)param_1 + 1);
        uVar2 = uVar2 - 1;
      } while (uVar2 != 0);
    }
  }
  return;
}



############ FUN_ 1807dc8a0 size=173 ############

void FUN_1807dc8a0(undefined8 *param_1)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong *plVar4;
  void *pvVar5;
  longlong lVar6;
  void *_Memory;
  
  *param_1 = pace::ILokCert::vftable;
  plVar4 = (longlong *)param_1[0x3a];
  if (plVar4 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar4 + 1;
    lVar6 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar6 == 1) {
      (**(code **)(*plVar4 + 8))(plVar4);
      LOCK();
      piVar2 = (int *)((longlong)plVar4 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar4 + 0x10))(plVar4);
      }
    }
  }
  pvVar5 = (void *)param_1[2];
  if (pvVar5 == (void *)0x0) {
    return;
  }
  _Memory = pvVar5;
  if ((0xfff < (ulonglong)(param_1[4] - (longlong)pvVar5)) &&
     (_Memory = *(void **)((longlong)pvVar5 + -8),
     0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 180746170 size=738 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x0001807462da) overlaps instruction at (ram,0x0001807462d8)
    */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_180746170(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                  undefined8 param_5)

{
  ulonglong uVar1;
  ulonglong uVar2;
  uint uVar3;
  ulonglong uVar4;
  int unaff_retaddr;
  undefined1 auStack_158 [32];
  undefined4 local_138;
  undefined8 local_130;
  undefined8 local_128;
  undefined8 local_118;
  undefined4 local_110;
  undefined8 local_108;
  undefined8 local_100;
  undefined8 local_f8;
  undefined8 local_f0;
  undefined8 local_e8;
  ulonglong local_50;
  
  local_50 = DAT_182615970 ^ (ulonglong)auStack_158;
  local_f0 = param_5;
  local_138 = 0xc1;
  uVar4 = 0;
  uVar3 = (uint)&stack0x00000000 & 0x3bf;
  local_110 = 0xa70;
  uVar2 = (ulonglong)(((uVar3 + 2) * (uVar3 + 1) * uVar3) / 3);
  local_108 = param_3;
  local_100 = param_2;
  local_f8 = param_1;
  local_e8 = param_4;
  do {
    uVar1 = 0xc420;
    func_0x0001807464ed();
    uVar3 = (uint)uVar1;
    if (((uVar4 & 0x23d0f26f) == 0) || ((uVar1 & 0xc700) != 0)) {
      uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar3 < 0) goto code_r0x0001807462ef;
    }
    else {
      in((short)uVar2);
      uVar2 = uVar2 & 0xffff;
      *(char *)(ulonglong)_DAT_af0f01488d038b62 =
           *(char *)(ulonglong)_DAT_af0f01488d038b62 + (char)_DAT_af0f01488d038b62;
code_r0x0001807462ef:
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
    if (uVar3 == 0) {
      do {
        uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
        if ((int)uVar3 < 0) {
          uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
        }
      } while (uVar3 != 0);
      local_118 = 0;
      local_130 = 0x18003cf88;
      local_128 = 0x18003ef84;
      FUN_180746455();
                    /* WARNING: Bad instruction - Truncating control flow here */
      halt_baddata();
    }
  } while( true );
}



############ FUN_ 18060c070 size=184 ############

uint FUN_18060c070(char *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  bool bVar1;
  bool bVar2;
  char cVar3;
  uint uVar4;
  undefined8 uVar5;
  char *pcVar6;
  char *pcVar7;
  uint local_res8 [8];
  undefined1 local_30 [40];
  
  pcVar6 = param_1;
  if (0xf < *(ulonglong *)(param_1 + 0x18)) {
    pcVar6 = *(char **)param_1;
  }
  pcVar7 = pcVar6 + *(longlong *)(param_1 + 0x10);
  if (pcVar6 == pcVar7) goto LAB_18060c107;
  local_res8[0] = 0;
  bVar1 = false;
  if (*pcVar6 == '-') {
    bVar2 = true;
LAB_18060c0bd:
    bVar1 = bVar2;
    pcVar6 = pcVar6 + 1;
  }
  else {
    bVar2 = false;
    if (*pcVar6 == '+') goto LAB_18060c0bd;
  }
  cVar3 = FUN_18060b990(local_res8,pcVar6,pcVar7,param_4,0xfffffffffffffffe);
  if (bVar1) {
    if ((cVar3 == '\0') || (0x80000000 < local_res8[0])) {
      bVar1 = false;
      uVar4 = -local_res8[0];
    }
    else {
      bVar1 = true;
      uVar4 = -local_res8[0];
    }
  }
  else {
    uVar4 = local_res8[0];
    if ((cVar3 == '\0') || (0x7fffffff < local_res8[0])) {
      bVar1 = false;
    }
    else {
      bVar1 = true;
    }
  }
  if (bVar1) {
    return uVar4;
  }
LAB_18060c107:
  uVar5 = FUN_18060c480(local_30,&std::
                                  basic_string<char,std::char_traits<char>,std::allocator<char>_>::
                                  RTTI_Type_Descriptor,&.H::RTTI_Type_Descriptor);
                    /* WARNING: Subroutine does not return */
  FUN_18060c130(uVar5);
}



############ FUN_ 180682a40 size=968 ############

/* WARNING: Instruction at (ram,0x000180682b62) overlaps instruction at (ram,0x000180682b61)
    */
/* WARNING: Removing unreachable block (ram,0x000180682acb) */

void FUN_180682a40(undefined8 param_1,longlong param_2,undefined8 *param_3)

{
  longlong lVar1;
  void *pvVar2;
  undefined8 *puVar3;
  uint uVar4;
  void *pvVar5;
  ulonglong uVar6;
  ulonglong uVar7;
  ulonglong _Size;
  size_t _Size_00;
  undefined8 *_Src;
  bool bVar8;
  int unaff_retaddr;
  undefined1 auStack_148 [32];
  undefined1 local_128;
  undefined1 local_118;
  undefined4 local_e4;
  uint local_e0;
  undefined8 local_d0;
  undefined8 *local_c8;
  undefined8 local_c0;
  undefined8 local_b8;
  undefined8 local_b0;
  undefined8 local_a8;
  undefined8 local_a0;
  ulonglong local_48;
  
  local_48 = DAT_182615970 ^ (ulonglong)auStack_148;
  local_e4 = 0x890;
  uVar4 = (uint)&stack0x00000000 & 0x3bf;
  local_e0 = 0xebd0 >> ((char)(((uVar4 + 2) * (uVar4 + 1) * uVar4) / 3) * '\x03' & 0x1fU) ^ 0xe410;
  param_3[1] = *param_3;
  local_d0 = param_1;
  local_c8 = param_3;
  do {
    FUN_180681286();
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  bVar8 = 0xf < *(ulonglong *)(param_2 + 0x20);
  _Src = (undefined8 *)(param_2 + 8);
  puVar3 = _Src;
  if (bVar8) {
    puVar3 = (undefined8 *)*_Src;
  }
  lVar1 = *(longlong *)(param_2 + 0x18);
  if (bVar8) {
    _Src = (undefined8 *)*_Src;
  }
  pvVar2 = (void *)*param_3;
  _Size = (longlong)puVar3 + (lVar1 - (longlong)_Src);
  uVar6 = param_3[2] - (longlong)pvVar2;
  if (uVar6 < _Size) {
    local_c0 = 0xffffffffffffffff;
    local_b8 = 0x7fffffffffffffff;
    if (0x7fffffffffffffff < _Size) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    local_a8 = 0x7fffffffffffffff;
    local_b0 = 0xffffffffffffffff;
    uVar7 = _Size;
    if ((uVar6 <= 0x7fffffffffffffff - (uVar6 >> 1)) &&
       (uVar7 = (uVar6 >> 1) + uVar6, uVar7 < _Size)) {
      uVar7 = _Size;
    }
    if (pvVar2 != (void *)0x0) {
      pvVar5 = pvVar2;
      if ((0xfff < uVar6) &&
         (pvVar5 = *(void **)((longlong)pvVar2 + -8),
         0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar5)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(pvVar5);
    }
    FUN_1805bbbc0(param_3,uVar7);
    pvVar2 = (void *)*param_3;
    memmove(pvVar2,_Src,_Size);
    param_3[1] = _Size + (longlong)pvVar2;
  }
  else if ((ulonglong)(param_3[1] - (longlong)pvVar2) < _Size) {
    pvVar5 = (void *)((param_3[1] - (longlong)pvVar2) + (longlong)_Src);
    memmove(pvVar2,_Src,(longlong)pvVar5 - (longlong)_Src);
    pvVar2 = (void *)param_3[1];
    _Size_00 = (longlong)puVar3 + (lVar1 - (longlong)pvVar5);
    memmove(pvVar2,pvVar5,_Size_00);
    param_3[1] = _Size_00 + (longlong)pvVar2;
  }
  else {
    memmove(pvVar2,_Src,_Size);
    param_3[1] = (longlong)pvVar2 + _Size;
  }
  lVar1 = *(longlong *)(param_2 + 0x28);
  local_a0 = param_3[1];
  local_128 = local_118;
  FUN_1805d5a60(param_3,local_a0,lVar1,(*(longlong *)(param_2 + 0x30) - lVar1) + lVar1);
  (*(code *)0x18065d36b)();
  return;
}



############ FUN_ 180610750 size=1330 ############

/* WARNING: Removing unreachable block (ram,0x000180610abe) */

undefined8 FUN_180610750(undefined8 *param_1,undefined4 param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  int unaff_retaddr;
  undefined1 auStack_d8 [40];
  undefined *local_b0;
  undefined *local_a8;
  undefined4 local_98;
  undefined8 local_90;
  undefined8 local_88;
  uint local_80;
  uint local_7c;
  undefined8 *local_78;
  undefined8 local_68;
  undefined8 *local_60;
  ulonglong local_40;
  
  local_68 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_d8;
  *param_1 = pace::Hasher::vftable;
  param_1[0x2b] = 0;
  param_1[0x2c] = 0;
  param_1[0x2d] = 0;
  uVar1 = (uint)&stack0x00000000 & 0x12ff;
  uVar2 = (uVar1 * uVar1 * 0x10 + 4) % 0x13;
  uVar3 = (uint)&stack0x00000000 & 0x1cff;
  uVar1 = ((uVar3 + 1) * uVar3 + 7) % 0x51;
  uVar1 = (int)((-uVar1 | uVar1) & (-uVar2 | uVar2)) >> 0x1f;
  local_80 = ((int)(-uVar1 | uVar1) >> 0x1f ^ 0xfffffb5fU) & 0x25bb;
  uVar1 = (uVar3 * uVar3 * 0x10 + 4) % 0x13;
  local_7c = ((int)(-uVar1 | uVar1) >> 0x1f) * -0x5688 ^ 0x5c38;
  local_90 = 0;
  local_88 = 0x3ff8;
  local_a8 = &DAT_181c56388;
  local_b0 = &DAT_181c5a380;
  local_98 = param_2;
  local_78 = param_1;
  local_60 = param_1;
  do {
    FUN_18060f8ad(0x7738);
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  *(undefined1 *)(param_1 + 0x2e) = 0;
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  return 0x1eb0633;
}



############ FUN_ 1807e1d40 size=1279 ############

/* WARNING: Removing unreachable block (ram,0x0001807e1fe1) */

undefined8 FUN_1807e1d40(undefined8 param_1,undefined8 param_2)

{
  char *pcVar1;
  longlong lVar2;
  undefined *puVar3;
  byte bVar4;
  undefined1 uVar5;
  ulonglong uVar6;
  byte bVar7;
  uint uVar8;
  undefined2 uVar9;
  undefined8 uVar10;
  longlong *plVar11;
  ulonglong uVar12;
  int unaff_retaddr;
  undefined8 uStack_d8;
  undefined *puStack_d0;
  undefined8 uStack_c8;
  undefined8 uStack_c0;
  undefined1 auStack_b8 [32];
  undefined4 local_98;
  uint local_94;
  undefined8 local_90;
  undefined *local_88;
  undefined8 local_80;
  undefined4 *local_78;
  undefined4 local_70;
  undefined8 local_68;
  ulonglong local_48;
  
  local_48 = DAT_182615970 ^ (ulonglong)auStack_b8;
  local_98 = 0x811c9e07;
  local_70 = 0x40;
  local_94 = 0xa30;
  uVar10 = 0x101000;
  local_78 = &DAT_186f01000;
  local_88 = &DAT_186f20740;
  local_80 = 0x465764b7201476a;
  local_90 = 0x7201476a;
  local_68 = param_2;
  do {
    uStack_c0 = 0x1807e1f7a;
    FUN_1807e39a2(0xd214);
    puVar3 = local_88;
    uVar8 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar8 < 0) {
      uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar8 != 0);
  do {
    uStack_c0 = 0x1807e1ffe;
    FUN_1807e25cd();
    uVar9 = (undefined2)uVar10;
    uVar8 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar8 < 0) {
      uVar8 = (uVar8 - 1 | 0xfffffffe) + 1;
    }
    bVar7 = (byte)uVar8;
  } while (uVar8 != 0);
  uVar12 = (ulonglong)local_94;
  uStack_c0 = 0x1807e202b;
  FUN_1807e0844();
  puStack_d0 = puVar3;
                    /* WARNING: Call to offcut address within same function */
  uStack_d8 = 0x1807e2059;
  uStack_c8 = param_1;
  uStack_c0 = 0x40;
  uVar6 = func_0x0001807e207b();
  plVar11 = (longlong *)(uVar6 & 0xffffffff);
  pcVar1 = (char *)(((ulonglong)&uStack_d8 & 0xffffffff) - 0x7d);
  *pcVar1 = *pcVar1 - bVar7;
  bVar4 = in(uVar9);
  *(byte *)(uVar12 + 3) = *(byte *)(uVar12 + 3) & bVar7;
  uVar5 = *(undefined1 *)((ulonglong)bVar4 + 0x180000000);
  lVar2 = plVar11[4];
  plVar11[4] = lVar2 + 0x226;
  plVar11[3] = lVar2 + -0x2cb5c;
  plVar11[2] = lVar2 + 0x4f35e;
  plVar11[1] = lVar2 + -0x504f4;
  *plVar11 = lVar2 + 0x72d20;
  plVar11[-1] = lVar2 + 0x53f4;
  plVar11[-2] = lVar2 + -0x4cca5;
  plVar11[-3] = lVar2 + -0x5a288;
  plVar11[-4] = lVar2 + -0xc8a;
  return CONCAT71((int7)(((ulonglong)&uStack_d8 & 0xffffffff) >> 8),uVar5);
}



############ FUN_ 18067c6a0 size=237 ############

void FUN_18067c6a0(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::authorize::OpenEncryptedChannelInput::vftable;
  pvVar1 = (void *)param_1[8];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[10] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[5];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[7] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  if ((ulonglong)param_1[4] < 0x10) {
    param_1[3] = 0;
    param_1[4] = 0xf;
    *(undefined1 *)(param_1 + 1) = 0;
    return;
  }
  pvVar1 = (void *)param_1[1];
  pvVar2 = pvVar1;
  if ((0xfff < param_1[4] + 1) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1805b6b80 size=252 ############

undefined8 FUN_1805b6b80(undefined8 param_1,int param_2)

{
  undefined8 *puVar1;
  undefined4 *puVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 local_res8;
  undefined4 local_res10 [2];
  undefined8 local_res18;
  undefined1 local_res20 [8];
  
  if (param_2 == 0) {
LAB_1805b6c54:
    local_res8 = 0x7ffffffffffffffe;
    local_res10[0] = 0xfffffffe;
  }
  else if (param_2 == 1) {
    local_res8 = 0x8000000000000000;
    local_res10[0] = 0;
  }
  else {
    if (param_2 != 2) {
      if (param_2 == 3) {
        local_res18 = 0;
        uVar5 = 1;
        uVar4 = 1;
        uVar3 = 0x578;
      }
      else {
        if (param_2 != 4) goto LAB_1805b6c54;
        local_res8 = 1;
        local_res18 = 86400000000;
        puVar1 = (undefined8 *)FUN_1805aef60(&local_res18,local_res20,&local_res8);
        uVar5 = 0x1f;
        uVar3 = 9999;
        local_res18 = *puVar1;
        uVar4 = 0xc;
      }
      puVar2 = (undefined4 *)FUN_1805b6990(&local_res8,uVar3,uVar4,uVar5);
      puVar1 = &local_res18;
      local_res10[0] = *puVar2;
      goto LAB_1805b6c69;
    }
    local_res8 = 0x7fffffffffffffff;
    local_res10[0] = 0xffffffff;
  }
  puVar1 = &local_res8;
LAB_1805b6c69:
  FUN_1805b41e0(param_1,local_res10,puVar1);
  return param_1;
}



############ FUN_ 180738860 size=2124 ############

/* WARNING: Instruction at (ram,0x0001807390ba) overlaps instruction at (ram,0x0001807390b9)
    */
/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x000180739440) */
/* WARNING: Removing unreachable block (ram,0x000180739034) */
/* WARNING: Removing unreachable block (ram,0x000180738cc8) */
/* WARNING: Removing unreachable block (ram,0x00018073937d) */
/* WARNING: Removing unreachable block (ram,0x000180738bbe) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: stack */

undefined8 * FUN_180738860(undefined8 *param_1)

{
  undefined8 uVar1;
  undefined8 *puVar2;
  uint uVar3;
  uint uVar4;
  ulonglong uVar5;
  longlong lVar6;
  int *piVar7;
  int *piVar8;
  undefined1 *puVar9;
  uint uVar10;
  uint uVar11;
  longlong lVar12;
  ulonglong uVar13;
  bool bVar14;
  undefined1 auStack_58 [32];
  
  puVar9 = auStack_58;
  *param_1 = pace::Signer::vftable;
  uVar3 = (uint)&stack0x00000000;
  if (((ulonglong)&stack0x00000000 & 0x2e0) == 0) {
    uVar10 = 0x24c55e3a;
  }
  else {
    uVar10 = ((uVar3 & 0x9ff) * (uVar3 & 0x9ff) * 0x10 + 4) % 0x13;
  }
  uVar11 = (((uVar3 & 0x1fff) + 1) * (uVar3 & 0x1fff) + 7) % 0x51;
  uVar3 = (((uVar3 & 0xcff) + 1) * (uVar3 & 0xcff) + 7) % 0x51;
  uVar11 = ((int)((-uVar3 | uVar3) ^ (-uVar11 | uVar11)) >> 0x1f) + 0xaec5U ^ 0xaf25;
  uVar13 = (ulonglong)uVar11;
  lVar6 = 2;
  uVar3 = (_UNK_180692b98 + 0x3a8bc726) * 0x401;
  piVar7 = (int *)&UNK_180692b98;
  do {
    piVar8 = piVar7;
    uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[1]) * 0x401;
    uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[2]) * 0x401;
    uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[3]) * 0x401;
    uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[4]) * 0x401;
    uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[5]) * 0x401;
    uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[6]) * 0x401;
    lVar6 = lVar6 + -1;
    piVar7 = piVar8 + 6;
  } while (lVar6 != 0);
  do {
    if ((((int)(-uVar10 | uVar10) >> 0x1f) * -0x404 | 0x160cU) == 0x401654) {
      register0x00000020 =
           (BADSPACEBASE *)
           ((((ulonglong)register0x00000020 ^ 0xffffffffffffffff) + 1 ^ 0xffffffffffffffff) + 1);
    }
    uVar4 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  uVar3 = (piVar8[7] + (uVar3 ^ uVar3 >> 6)) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[8]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[9]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[10]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0xb]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0xc]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0xd]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0xe]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0xf]) * 0x401;
  piVar7 = piVar8 + 0x11;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0x10]) * 0x401;
  uVar10 = ((uVar3 >> 6 ^ uVar3) + *piVar7) * 0x401;
  uVar3 = (uint)piVar7 & 0x27ff;
  uVar3 = ((uVar3 + 1) * uVar3 + 7) % 0x51;
  uVar3 = (int)(-uVar3 | uVar3) >> 0x1f;
  uVar5 = (ulonglong)(~((int)(uVar3 | -uVar3) >> 0x1f & 0xffffffbfU) & 0x83ce);
  uVar3 = (*(int *)((longlong)piVar7 + (uVar5 - 0x3c)) + (uVar10 ^ uVar10 >> 6)) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x38))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x34))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x30))) * 0x401;
  *(undefined1 *)(param_1 + 1) = 0;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x2c))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x28))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x24))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x20))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x1c))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x18))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x14))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0x10))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 0xc))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 8))) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + (uVar5 - 4))) * 0x401;
  lVar6 = 0;
  do {
    lVar12 = (-lVar6 ^ 0xffffffffffffffffU) + 1;
    register0x00000020 = (BADSPACEBASE *)((longlong)register0x00000020 + (lVar6 - lVar12));
    uVar10 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
    lVar6 = lVar12;
  } while (uVar10 != 0);
  uVar3 = (*(int *)((longlong)piVar7 + uVar5) + (uVar3 ^ uVar3 >> 6)) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + uVar5 + 4)) * 0x401;
  do {
    uVar10 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar3 = (*(int *)((longlong)piVar7 + uVar5 + 8) + (uVar3 ^ uVar3 >> 6)) * 0x401;
  piVar8 = (int *)((longlong)piVar7 + uVar5 + 0x10);
  uVar3 = ((uVar3 >> 6 ^ uVar3) + *(int *)((longlong)piVar7 + uVar5 + 0xc)) * 0x401;
  uVar10 = ((uVar3 >> 6 ^ uVar3) + *piVar8) * 0x401;
  uVar10 = uVar10 ^ uVar10 >> 6;
  uVar3 = -1 >> ((byte)uVar10 & 0x1f);
  piVar8 = (int *)((longlong)piVar8 +
                  (0x204 - (ulonglong)(~((int)(-uVar3 | uVar3) >> 0x1f & 0xfffffdffU) & 0xff49)));
  uVar3 = (*piVar8 + uVar10) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[1]) * 0x401;
  do {
    uVar10 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar3 = (piVar8[2] + (uVar3 ^ uVar3 >> 6)) * 0x401;
  uVar10 = ((uVar3 >> 6 ^ uVar3) + piVar8[3]) * 0x401;
  uVar10 = uVar10 ^ uVar10 >> 6;
  uVar3 = uVar10;
  do {
    bVar14 = (POPCOUNT(uVar3 & 0xff) & 1U) == 0;
    uVar5 = 0;
                    /* WARNING: Call to offcut address within same function */
    uVar1 = func_0x000180738b7c();
    if ((!bVar14) && ((uVar5 & 0xc2) != 0)) {
      uVar3 = (uint)CONCAT71((int7)((ulonglong)uVar1 >> 8),(char)uVar1 + '\n') & 0xf28348e2;
      piVar7 = (int *)((ulonglong)uVar3 - 0x73);
      *piVar7 = *piVar7 + -1;
      out(0xf1,(char)uVar3 + -0x68);
                    /* WARNING: Bad instruction - Truncating control flow here */
      halt_baddata();
    }
    func_0x0001807382a4();
    uVar3 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar3 = (piVar8[4] + uVar10) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[5]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[6]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[7]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[8]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[9]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[10]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0xb]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0xc]) * 0x401;
  do {
    uVar10 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar3 = (piVar8[0xd] + (uVar3 ^ uVar3 >> 6)) * 0x401;
  do {
    uVar10 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar10 < 0) {
      uVar10 = (uVar10 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar10 != 0);
  uVar3 = (piVar8[0xe] + (uVar3 ^ uVar3 >> 6)) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0xf]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0x10]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0x11]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0x12]) * 0x401;
  uVar3 = ((uVar3 >> 6 ^ uVar3) + piVar8[0x13]) * 0x401;
  uVar3 = uVar3 >> 6 ^ uVar3;
  uVar3 = (uVar3 >> 0x14 | uVar3 << 0xc) + 0x74a7b135;
  uVar10 = uVar3 >> 0xd | uVar3 * 0x80000;
  uVar3 = (uVar10 << 2 | (uVar3 & 0x1fff) >> 0xb) & 0x99999999 |
          (uVar10 >> 2 | (uVar3 >> 0xd) << 0x1e) & 0x66666666;
  uVar10 = (uVar3 >> 0x10 | uVar3 << 0x10) & 0x9f986067 |
           (uVar3 << 0x10 | uVar3 >> 0x10) & 0x60679f98;
  uVar3 = (uVar10 >> 0xd ^ uVar10) >> 1 & 0x7ff;
  if (((uVar3 << 0xd | uVar3) * 2 ^ uVar10) == 0x9a190260) {
    FUN_180743e90(param_1);
    do {
      *(BADSPACEBASE **)(puVar9 + -8) = register0x00000020;
      *(ulonglong *)(puVar9 + -0x10) = uVar13;
      *(longlong *)(puVar9 + -0x18) = lVar12;
      lVar6 = -(longlong)(int)uVar11;
      lVar12 = *(longlong *)(puVar9 + lVar6 + 0x1c8);
      uVar13 = *(ulonglong *)(puVar9 + lVar6 + 0x1d0);
      register0x00000020 = *(BADSPACEBASE **)(puVar9 + lVar6 + 0x1d8);
      puVar9 = puVar9 + lVar6 + 0x1e0;
      uVar3 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
      if ((int)uVar3 < 0) {
        uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar3 != 0);
    return param_1;
  }
  FUN_180743e90(param_1);
                    /* WARNING: Call to offcut address within same function */
  func_0x000180738d04();
  puVar2 = (undefined8 *)thunk_FUN_1805a9280();
  return puVar2;
}



############ FUN_ 18067c7b0 size=442 ############

void FUN_18067c7b0(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::authorize::OpenEncryptedChannelReturn::vftable;
  pvVar1 = (void *)param_1[0x12];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[0x14] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[0xf];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[0x11] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[0xb];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[0xd] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[8];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[10] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[5];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[7] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  if ((ulonglong)param_1[4] < 0x10) {
    param_1[3] = 0;
    param_1[4] = 0xf;
    *(undefined1 *)(param_1 + 1) = 0;
    return;
  }
  pvVar1 = (void *)param_1[1];
  pvVar2 = pvVar1;
  if ((0xfff < param_1[4] + 1) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1806120b0 size=91 ############

void FUN_1806120b0(undefined8 *param_1)

{
  void *pvVar1;
  void *_Memory;
  
  *param_1 = pace::Hasher::vftable;
  pvVar1 = (void *)param_1[0x2b];
  if (pvVar1 == (void *)0x0) {
    return;
  }
  _Memory = pvVar1;
  if ((0xfff < (ulonglong)(param_1[0x2d] - (longlong)pvVar1)) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 180616fa0 size=713 ############

/* WARNING: Removing unreachable block (ram,0x00018061706e) */

void FUN_180616fa0(void)

{
  return;
}



############ FUN_ 1805a4cc0 size=125 ############

undefined8 * FUN_1805a4cc0(undefined8 *param_1)

{
  char *local_28;
  undefined1 local_20;
  undefined4 local_18;
  undefined4 uStack_14;
  undefined8 uStack_10;
  
  local_18 = 0xb;
  uStack_10 = FUN_1805c8c70();
  local_20 = 1;
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  local_28 = "boost::thread_resource_error";
  __std_exception_copy(&local_28);
  param_1[3] = CONCAT44(uStack_14,local_18);
  param_1[4] = uStack_10;
  param_1[7] = 0;
  param_1[8] = 0xf;
  *(undefined1 *)(param_1 + 5) = 0;
  *param_1 = boost::thread_resource_error::vftable;
  return param_1;
}



############ FUN_ 1805a3bf0 size=63 ############

void FUN_1805a3bf0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_108 [144];
  undefined1 local_78 [120];
  
  uVar1 = FUN_1805a2060(local_78,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805a1d60(local_108,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_108,(ThrowInfo *)&DAT_1825fd238);
}



############ FUN_ 1805ccdd0 size=1072 ############

/* WARNING: Removing unreachable block (ram,0x0001805ccf83) */
/* WARNING: Removing unreachable block (ram,0x0001805cce58) */
/* WARNING: Removing unreachable block (ram,0x0001805cce7c) */
/* WARNING: Removing unreachable block (ram,0x0001805ccfcc) */
/* WARNING: Removing unreachable block (ram,0x0001805ccfd3) */
/* WARNING: Removing unreachable block (ram,0x0001805ccfd1) */

void FUN_1805ccdd0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  uint uVar1;
  ulonglong uVar2;
  int unaff_retaddr;
  undefined1 auStack_e8 [32];
  undefined8 local_c8;
  undefined8 local_c0;
  undefined8 local_b8;
  undefined4 local_ac;
  undefined8 local_a8;
  undefined4 local_9c;
  undefined8 local_68;
  ulonglong local_40;
  
  local_68 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)auStack_e8;
  local_9c = 0x5e0;
  local_ac = 0x3c0;
  uVar2 = 0x180000000;
  local_a8 = 0;
  local_b8 = 0x1ffc;
  local_c0 = 0x180136d94;
  local_c8 = 0x180138d90;
  do {
    FUN_1805ce2d6(0x4d20);
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  FUN_1806100a7(0,~((uVar2 ^ 0xffffffffffffffff) + 1) + 1,param_3,param_4,&LAB_1806100a8,
                &LAB_1805ef0d3,&LAB_1805ef0d3,&DAT_1805aab1f,&DAT_1805cd21a);
  return;
}



############ FUN_ 180672510 size=158 ############

void FUN_180672510(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong *plVar4;
  longlong lVar5;
  undefined8 uVar6;
  undefined8 local_20;
  longlong *local_18 [2];
  
  uVar6 = 0xfffffffffffffffe;
  local_20 = param_2;
  FUN_18066b4e0(local_18);
  FUN_1805ae620(&local_20,param_2,param_2,param_4,uVar6);
  uVar6 = *param_1;
  *param_1 = local_20;
  plVar4 = (longlong *)param_1[1];
  param_1[1] = local_18[0];
  if (plVar4 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar4 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      local_20 = uVar6;
      local_18[0] = plVar4;
      (**(code **)(*plVar4 + 8))(plVar4);
      LOCK();
      piVar2 = (int *)((longlong)plVar4 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar4 + 0x10))(plVar4);
      }
    }
  }
  return;
}



############ FUN_ 1806a8b40 size=2177 ############

/* WARNING: Instruction at (ram,0x0001806a9286) overlaps instruction at (ram,0x0001806a9285)
    */
/* WARNING: Removing unreachable block (ram,0x0001806a9233) */
/* WARNING: Removing unreachable block (ram,0x0001806a9237) */
/* WARNING: Removing unreachable block (ram,0x0001806a8c05) */
/* WARNING: Removing unreachable block (ram,0x0001806a9137) */
/* WARNING: Removing unreachable block (ram,0x0001806a9375) */
/* WARNING: Removing unreachable block (ram,0x0001806a8bee) */

void FUN_1806a8b40(longlong param_1)

{
  longlong *plVar1;
  int *piVar2;
  uint *puVar3;
  char *pcVar4;
  int iVar5;
  uint uVar6;
  byte bVar7;
  undefined8 uVar8;
  ulonglong uVar9;
  char *pcVar10;
  uint uVar11;
  code **ppcVar12;
  ulonglong uVar13;
  uint uVar14;
  uint *puVar15;
  undefined1 *puVar16;
  int iVar17;
  longlong lVar18;
  longlong lVar19;
  uint *puVar20;
  ulonglong uVar21;
  longlong lVar22;
  longlong *plVar23;
  undefined8 uVar24;
  uint local_res8 [2];
  undefined4 *local_res10;
  undefined *local_res18;
  code *local_res20;
  undefined1 auStack_98 [32];
  undefined4 local_78;
  undefined8 local_68;
  undefined1 local_60 [8];
  longlong *local_58;
  
  puVar16 = auStack_98;
  local_68 = 0xfffffffffffffffe;
  uVar24 = 0xe10;
  lVar19 = 0x2b0;
  local_res10 = &DAT_1815064c4;
  local_res18 = &DAT_1815065c4;
  iVar17 = (((DAT_1815064c4 * 0x25 + DAT_1815064c8) * 0x25 + DAT_1815064cc) * 0x25 + DAT_1815064d0)
           * 0x25 + DAT_1815064d4;
  FUN_1806b9be0(param_1);
  iVar17 = ((((iVar17 * 0x25 + DAT_1815064d8) * 0x25 + DAT_1815064dc) * 0x25 + DAT_1815064e0) * 0x25
           + DAT_1815064e4) * 0x25 + DAT_1815064e8;
  FUN_1806ba570(param_1,0);
  iVar17 = (iVar17 * 0x25 + DAT_1815064ec) * 0x25 + DAT_1815064f0;
  plVar23 = (longlong *)register0x00000020;
  do {
    FUN_1806a7553(0x601c);
    plVar23 = (longlong *)(~(((ulonglong)plVar23 ^ 0xffffffffffffffff) + 1) + 1);
                    /* WARNING: Call to offcut address within same function */
    func_0x0001806a9139();
    uVar11 = (*(int *)plVar23 + 1) * *(int *)plVar23 & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  iVar17 = iVar17 * 0x25 + DAT_1815064f4;
  lVar22 = 2;
  FUN_1806bace0(param_1,0);
  iVar17 = (iVar17 * 0x25 + DAT_1815064f8) * 0x25 + DAT_1815064fc;
  do {
    FUN_1806a7e92(0x601c);
    lVar18 = lVar22 + lVar19;
    lVar22 = (lVar19 - lVar18 ^ 0xffffffffffffffffU) + 1;
    lVar19 = lVar18 - lVar22;
    uVar11 = (*(int *)plVar23 + 1) * *(int *)plVar23 & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  iVar17 = ((((((iVar17 * 0x25 + DAT_181506500) * 0x25 + DAT_181506504) * 0x25 + DAT_181506508) *
              0x25 + DAT_18150650c) * 0x25 + DAT_181506510) * 0x25 + DAT_181506514) * 0x25 +
           DAT_181506518;
  uVar8 = FUN_1806ab5b0();
  local_78 = 1;
  uVar21 = 2;
  puVar20 = (uint *)0x0;
  uVar8 = FUN_18066b810(local_60,uVar8);
  FUN_18067dba0(param_1 + 8,uVar8);
  if (local_58 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_58 + 1;
    lVar22 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar22 == 1) {
      (**(code **)(*local_58 + 8))(local_58);
      LOCK();
      piVar2 = (int *)((longlong)local_58 + 0xc);
      iVar5 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar5 == 1) {
        (**(code **)(*local_58 + 0x10))(local_58);
      }
    }
  }
  iVar17 = ((((((((((((iVar17 * 0x25 + DAT_18150651c) * 0x25 + DAT_181506520) * 0x25 + DAT_181506524
                    ) * 0x25 + DAT_181506528) * 0x25 + DAT_18150652c) * 0x25 + DAT_181506530) * 0x25
                + DAT_181506534) * 0x25 + DAT_181506538) * 0x25 + DAT_18150653c) * 0x25 +
             DAT_181506540) * 0x25 + DAT_181506544) * 0x25 + DAT_181506548) * 0x25 + DAT_18150654c;
  *(undefined4 *)(param_1 + 0x30) = 0;
  iVar17 = ((((iVar17 * 0x25 + DAT_181506550) * 0x25 + DAT_181506554) * 0x25 + DAT_181506558) * 0x25
           + DAT_18150655c) * 0x25 + DAT_181506560;
  *(undefined4 *)(param_1 + 0x34) = 0;
  iVar17 = (iVar17 * 0x25 + DAT_181506564) * 0x25 + DAT_181506568;
  do {
    uVar8 = rdtsc();
    uVar14 = (uint)((ulonglong)uVar8 >> 0x20);
    puVar15 = (uint *)CONCAT44((int)((ulonglong)local_res8 >> 0x20),uVar14);
    uVar11 = (*(int *)plVar23 + 1) * *(int *)plVar23 & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  uVar11 = ((uint)uVar8 ^ uVar14) * -0x3b3113ad;
  local_res8[0] = (uVar11 >> 0x18 ^ uVar11) * -0x3b3100af;
  if (local_res8[0] < 0x2d228e7) {
    local_res20 = (code *)0x0;
    do {
      ppcVar12 = &local_res20;
      FUN_1806a7ade(ppcVar12,&local_res20);
      puVar15 = (uint *)0xe8cd;
      *ppcVar12 = FUN_1813f2240;
      FUN_1806a87ec();
      uVar11 = (*(int *)plVar23 + 1) * *(int *)plVar23 & 0x80000001;
      if ((int)uVar11 < 0) {
        uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar11 != 0);
    uVar9 = (*local_res20)();
    if (1 < uVar9) {
      lVar22 = *plVar23;
      plVar1 = plVar23;
      while (lVar22 != -0x3333333333333334) {
        *plVar1 = 0;
        plVar1 = plVar1 + 8;
        lVar22 = *plVar1;
      }
    }
  }
  local_res10 = (undefined4 *)0xe7d34df505c09de7;
  local_res8[0] = 0x5c09de7;
  do {
    uVar11 = (*(int *)plVar23 + 1) * *(int *)plVar23 & 0x80000001;
    if ((int)uVar11 < 0) {
      uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar11 != 0);
  iVar17 = (((((iVar17 * 0x25 + DAT_18150656c) * 0x25 + DAT_181506570) * 0x25 + DAT_181506574) *
             0x25 + DAT_181506578) * 0x25 + DAT_18150657c) * 0x25 + DAT_181506580;
  *(undefined4 *)(param_1 + 0x38) = 0;
  uVar11 = (((((((((((((((iVar17 * 0x25 + DAT_181506584) * 0x25 + DAT_181506588) * 0x25 +
                       DAT_18150658c) * 0x25 + DAT_181506590) * 0x25 + DAT_181506594) * 0x25 +
                    DAT_181506598) * 0x25 + DAT_18150659c) * 0x25 + DAT_1815065a0) * 0x25 +
                 DAT_1815065a4) * 0x25 + DAT_1815065a8) * 0x25 + DAT_1815065ac) * 0x25 +
              DAT_1815065b0) * 0x25 + DAT_1815065b4) * 0x25 + DAT_1815065b8) * 0x25 + DAT_1815065bc)
           * 0x25 + DAT_1815065c0;
  do {
    uVar9 = ~(ulonglong)plVar23;
    plVar23 = (longlong *)(~(uVar9 + 1) + 1);
    uVar21 = (~uVar21 + 1 ^ 0xffffffffffffffff) + 1;
    uVar14 = (*(int *)plVar23 + 1) * *(int *)plVar23 & 0x80000001;
    if ((int)uVar14 < 0) {
      uVar14 = (uVar14 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar14 != 0);
  do {
    uVar13 = 0x601c;
    uVar14 = FUN_1806a9b3c();
    if ((uVar13 & 0xcf00) == 0) {
      uVar14 = uVar14 ^ 0xf74976d0;
      pcVar10 = (char *)(ulonglong)uVar14;
      puVar3 = (uint *)(uVar13 - 0x7d);
      bVar7 = (byte)uVar13 & 0x1f;
      *puVar3 = *puVar3 >> bVar7 | *puVar3 << 0x20 - bVar7;
      uVar6 = *puVar3;
      *(int *)(uVar13 - 0x79) = *(int *)(uVar13 - 0x79) + -1;
      pcVar10[-0x1737c6b8] = pcVar10[-0x1737c6b8] << 1 | ((uVar13 & 0x1f) != 0 && (int)uVar6 < 0);
      *puVar15 = *puVar15 | uVar14;
      *(char *)(uVar13 - 0x75) = *(char *)(uVar13 - 0x75) + (char)uVar14;
      pcVar4 = (char *)(~(uVar9 + 1) - 0x50f0feb7);
      *pcVar4 = *pcVar4 + (char)uVar21;
      *pcVar10 = *pcVar10 + (char)uVar14;
      puVar3 = puVar20;
      puVar20 = puVar15;
code_r0x0001806a92a7:
      puVar15 = puVar3;
      uVar14 = ((uint)uVar13 | 0xfffffffe) + 1;
    }
    else {
      FUN_1806a9bd6();
      uVar14 = (*(int *)plVar23 + 1) * *(int *)plVar23 & 0x80000001;
      if ((int)uVar14 < 0) {
        uVar13 = (ulonglong)(uVar14 - 1);
        puVar3 = puVar15;
        goto code_r0x0001806a92a7;
      }
    }
    if (uVar14 == 0) {
      uVar14 = uVar11 >> 1;
      uVar11 = uVar14 | (uint)((uVar11 & 1) != 0) << 0x1f;
      uVar11 = (uVar14 << 2 | uVar11 >> 0x1e) & 0x99999999 |
               (uVar11 >> 2 | uVar14 << 0x1e) & 0x66666666;
      if (((uVar11 << 2 | uVar11 >> 0x1e) & 0x99999999 | (uVar11 >> 2 | uVar11 << 0x1e) & 0x66666666
          ) + 0xc2bbff46 != local_res8[0]) {
        thunk_FUN_1805a9280();
        return;
      }
      do {
        *(longlong **)(puVar16 + -8) = plVar23;
        *(uint **)(puVar16 + -0x10) = puVar15;
        *(undefined8 *)(puVar16 + -0x18) = uVar24;
        lVar22 = -(longlong)(int)lVar19;
        uVar24 = *(undefined8 *)(puVar16 + lVar22 + 0x298);
        puVar15 = *(uint **)(puVar16 + lVar22 + 0x2a0);
        plVar23 = *(longlong **)(puVar16 + lVar22 + 0x2a8);
        puVar16 = puVar16 + lVar22 + 0x2b0;
        uVar11 = ((int)*plVar23 + 1) * (int)*plVar23 & 0x80000001;
        if ((int)uVar11 < 0) {
          uVar11 = (uVar11 - 1 | 0xfffffffe) + 1;
        }
      } while (uVar11 != 0);
      *(undefined8 *)(param_1 + 0x3c) = 0;
      *(undefined2 *)(param_1 + 0x59) = 0;
      *(undefined1 *)(param_1 + 0x58) = 0;
      *(undefined8 *)(param_1 + 0x1a0) = 0x65;
      *(undefined8 *)(param_1 + 0x198) = 0x65;
      return;
    }
  } while( true );
}



############ FUN_ 180677430 size=314 ############

undefined8 *
FUN_180677430(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  *param_1 = pace::eden::thrift::authorize::GetAuthorizationServerInfoReturn::vftable;
  *(undefined4 *)(param_1 + 1) = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 0xf;
  *(undefined1 *)(param_1 + 0xf) = 0;
  FUN_1805a6cb0(param_1 + 0xf,&DAT_181baf991,0,param_4,0xfffffffffffffffe);
  param_1[0x15] = 0;
  param_1[0x16] = 0xf;
  *(undefined1 *)(param_1 + 0x13) = 0;
  FUN_1805a6cb0(param_1 + 0x13,&DAT_181baf991,0);
  param_1[0x17] = pace::eden::thrift::pub::InstalledVersion::vftable;
  *(undefined1 *)(param_1 + 0x18) = 0;
  param_1[0x1b] = 0;
  param_1[0x1c] = 0xf;
  *(undefined1 *)(param_1 + 0x19) = 0;
  FUN_1805a6cb0(param_1 + 0x19,&DAT_181baf991,0);
  *(undefined2 *)(param_1 + 0x1d) = 0;
  param_1[0x1e] = 0;
  param_1[0x1f] = 0;
  param_1[0x20] = 0;
  *(undefined4 *)(param_1 + 0x21) = 0;
  *(undefined1 *)((longlong)param_1 + 0x10c) = 0;
  param_1[0x22] = 4;
  param_1[0x23] = 0;
  param_1[0x24] = 0;
  return param_1;
}



############ FUN_ 18063c2c0 size=1477 ############

/* WARNING: Instruction at (ram,0x00018063c880) overlaps instruction at (ram,0x00018063c87e)
    */
/* WARNING: Removing unreachable block (ram,0x00018063c938) */
/* WARNING: Removing unreachable block (ram,0x00018063c404) */
/* WARNING: Removing unreachable block (ram,0x00018063c87e) */

undefined8 * FUN_18063c2c0(undefined8 *param_1)

{
  undefined8 *puVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  undefined1 *puVar5;
  uint uVar6;
  uint uVar8;
  undefined8 uVar9;
  undefined8 in_R10;
  longlong unaff_R12;
  longlong lVar10;
  undefined1 auStack_48 [32];
  ulonglong uVar7;
  
  puVar5 = auStack_48;
  *param_1 = pace::Encryptor::vftable;
  uVar6 = (uint)&stack0x00000000;
  param_1[0x43] = 0;
  param_1[0x44] = 0;
  param_1[0x45] = 0;
  iVar2 = (uVar6 & 0x45ff) * (uVar6 & 0x45ff) + 1;
  uVar4 = (iVar2 >> 4) + (iVar2 >> 1) + iVar2 * 0x24924924 >> 0x1d;
  uVar4 = (int)(uVar4 - 7) >> 0x1f & uVar4;
  uVar3 = uVar6 & 0x2bf;
  uVar6 = 0xbe90 >> ((char)((int)-(((uVar6 & 0x1cff) * (uVar6 & 0x1cff) * 0x10 + 4) % 0x13) >> 0x1f)
                     - ((char)((byte)(-uVar4 >> 0x18) | (byte)(uVar4 >> 0x18)) >> 7) & 0x1fU) ^
          0xb170;
  uVar7 = (ulonglong)uVar6;
  iVar2 = (uVar3 + 2) * (uVar3 + 1) * uVar3;
  uVar8 = ((iVar2 >> 1) - (iVar2 >> 3)) + iVar2 * 0x55555555 >> 0x1e ^ 0x2cfbf23e;
  uVar9 = 0x180000000;
  *(undefined1 *)(param_1 + 0x42) = 0;
  uVar4 = DAT_181161164;
  uVar3 = DAT_181161160 ^
          (DAT_18116115c ^
          (DAT_181161158 ^
          (DAT_181161154 ^
          (DAT_181161150 ^
          (DAT_18116114c ^
          (DAT_181161148 ^
          (DAT_181161144 ^
          (DAT_181161140 ^
          (DAT_18116113c ^
          (DAT_181161138 ^
          (DAT_181161134 ^
          (DAT_181161130 ^
          (DAT_18116112c ^
          (DAT_181161128 ^
          (DAT_181161124 ^
          (DAT_181161120 ^
          (DAT_18116111c ^
          (DAT_181161118 ^ (DAT_181161114 ^ (DAT_181161110 ^ 0x811c9e53) * 0x10001d1) * 0x10001d1) *
          0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
          0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
          0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1;
  *(undefined1 *)((longlong)param_1 + 0x211) = 0;
  uVar4 = DAT_1811611e0 ^
          (DAT_1811611dc ^
          (DAT_1811611d8 ^
          (DAT_1811611d4 ^
          (DAT_1811611d0 ^
          (DAT_1811611cc ^
          (DAT_1811611c8 ^
          (DAT_1811611c4 ^
          (DAT_1811611c0 ^
          (DAT_1811611bc ^
          (DAT_1811611b8 ^
          (DAT_1811611b4 ^
          (DAT_1811611b0 ^
          (DAT_1811611ac ^
          (DAT_1811611a8 ^
          (DAT_1811611a4 ^
          (DAT_1811611a0 ^
          (DAT_18116119c ^
          (DAT_181161198 ^
          (DAT_181161194 ^
          (DAT_181161190 ^
          (DAT_18116118c ^
          (DAT_181161188 ^
          (DAT_181161184 ^
          (DAT_181161180 ^
          (DAT_18116117c ^
          (DAT_181161178 ^
          (DAT_181161174 ^
          (DAT_181161170 ^
          (DAT_18116116c ^ (DAT_181161168 ^ (uVar4 ^ uVar3 * 0x10001d1) * 0x10001d1) * 0x10001d1) *
          0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
          0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
          0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
          0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
          0x10001d1;
  *(undefined4 *)(param_1 + 1) = 0xffffffff;
  uVar4 = (DAT_181161208 ^
          (DAT_181161204 ^
          (DAT_181161200 ^
          (DAT_1811611fc ^
          (DAT_1811611f8 ^
          (DAT_1811611f4 ^
          (DAT_1811611f0 ^
          (DAT_1811611ec ^
          (DAT_1811611e8 ^ (DAT_1811611e4 ^ uVar4 * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1
          ) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) * 0x10001d1) *
          0x10001d1 ^ DAT_18116120c;
  do {
    lVar10 = (longlong)register0x00000020 + unaff_R12;
    register0x00000020 = (BADSPACEBASE *)((unaff_R12 - lVar10 ^ 0xffffffffffffffffU) + 1);
    unaff_R12 = lVar10 - (longlong)register0x00000020;
    uVar3 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  if ((uVar4 * 0x10001d1 >> 0x1f | uVar4 * 0x20003a2) == 0x5897cd66) {
    *(undefined2 *)(param_1 + 0x47) = 0xffff;
    do {
      *(undefined8 *)(puVar5 + -8) = uVar9;
      *(ulonglong *)(puVar5 + -0x10) = uVar7;
      *(undefined8 *)(puVar5 + -0x18) = in_R10;
      lVar10 = -(longlong)(int)((int)(-uVar8 | uVar8) >> 0x1f & 0x5da8U ^ 0x5cb8);
      in_R10 = *(undefined8 *)(puVar5 + lVar10 + 0xf8);
      uVar7 = *(ulonglong *)(puVar5 + lVar10 + 0x100);
      uVar9 = *(undefined8 *)(puVar5 + lVar10 + 0x108);
      puVar5 = puVar5 + lVar10 + 0x110;
      uVar4 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
      if ((int)uVar4 < 0) {
        uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar4 != 0);
    return param_1;
  }
  *(undefined2 *)(param_1 + 0x47) = 0xc37d;
  puVar1 = (undefined8 *)thunk_FUN_1805a9280((longlong)(int)uVar6,&UNK_18063c90a,0x1161110);
  return puVar1;
}



############ FUN_ 180675f5f size=377 ############

undefined8 FUN_180675f5f(void)

{
  undefined8 in_RAX;
  
  return in_RAX;
}



############ FUN_ 18069b062 size=361 ############

longlong FUN_18069b062(void)

{
  ulonglong in_RAX;
  
  return ~((in_RAX ^ 0xffffffffffffffff) + 1) + 1;
}



############ FUN_ 181130ef0 size=186 ############

void FUN_181130ef0(undefined1 (*param_1) [32],undefined1 (*param_2) [32])

{
  undefined1 auVar1 [16];
  undefined8 uVar2;
  undefined1 auVar3 [32];
  undefined1 auVar4 [32];
  undefined1 *puVar5;
  ulonglong uVar6;
  undefined1 auVar7 [16];
  undefined1 auVar8 [16];
  
  uVar6 = (longlong)param_2 - (longlong)param_1;
  if ((0x3f < uVar6) && ((DAT_18261598c >> 5 & 1) != 0)) {
    puVar5 = *param_1;
    do {
      auVar3 = vpermq_avx2(*param_1,0x1b);
      param_2 = param_2 + -1;
      auVar4 = vpermq_avx2(*param_2,0x1b);
      *param_1 = auVar4;
      param_1 = param_1 + 1;
      *param_2 = auVar3;
    } while (param_1 != (undefined1 (*) [32])(puVar5 + (uVar6 >> 1 & 0x7fffffffffffffe0)));
  }
  uVar6 = (longlong)param_2 - (longlong)param_1;
  if (0x1f < uVar6) {
    puVar5 = *param_1;
    do {
      auVar1 = *(undefined1 (*) [16])*param_1;
      param_2 = (undefined1 (*) [32])(param_2[-1] + 0x10);
      auVar8._0_8_ = auVar1._8_8_;
      auVar8._8_4_ = auVar1._0_4_;
      auVar8._12_4_ = auVar1._4_4_;
      auVar1 = *(undefined1 (*) [16])*param_2;
      auVar7._0_8_ = auVar1._8_8_;
      auVar7._8_4_ = auVar1._0_4_;
      auVar7._12_4_ = auVar1._4_4_;
      *(undefined1 (*) [16])*param_1 = auVar7;
      param_1 = (undefined1 (*) [32])(*param_1 + 0x10);
      *(undefined1 (*) [16])*param_2 = auVar8;
    } while (param_1 != (undefined1 (*) [32])(puVar5 + (uVar6 >> 1 & 0x7ffffffffffffff0)));
  }
  for (; (param_1 != param_2 &&
         (param_2 = (undefined1 (*) [32])(param_2[-1] + 0x18), param_1 != param_2));
      param_1 = (undefined1 (*) [32])(*param_1 + 8)) {
    uVar2 = *(undefined8 *)*param_1;
    *(undefined8 *)*param_1 = *(undefined8 *)*param_2;
    *(undefined8 *)*param_2 = uVar2;
  }
  return;
}



############ FUN_ 18051b170 size=126 ############

void FUN_18051b170(longlong *param_1,uint param_2,uint param_3)

{
  uint uVar1;
  longlong lVar2;
  undefined8 uVar3;
  int iVar4;
  void *_Dst;
  void *_Src;
  
  if ((param_2 != param_3) && (uVar1 = *(uint *)((longlong)param_1 + 0xc), param_2 < uVar1)) {
    if (uVar1 <= param_3) {
      param_3 = uVar1 - 1;
    }
    lVar2 = *param_1;
    uVar3 = *(undefined8 *)(lVar2 + (longlong)(int)param_2 * 8);
    _Dst = (void *)(lVar2 + (longlong)(int)param_2 * 8);
    if ((int)param_2 < (int)param_3) {
      _Src = (void *)((longlong)_Dst + 8);
      iVar4 = param_3 - param_2;
    }
    else {
      iVar4 = param_2 - param_3;
      _Src = (void *)(lVar2 + (longlong)(int)param_3 * 8);
      _Dst = (void *)((longlong)_Src + 8);
    }
    memmove(_Dst,_Src,(longlong)iVar4 << 3);
    *(undefined8 *)(*param_1 + (longlong)(int)param_3 * 8) = uVar3;
  }
  return;
}



############ FUN_ 18133f490 size=639 ############

void FUN_18133f490(longlong *param_1)

{
  int *piVar1;
  longlong lVar2;
  undefined8 *puVar3;
  longlong *plVar4;
  undefined8 *puVar5;
  longlong lVar6;
  longlong *plVar7;
  int iVar8;
  longlong *plVar9;
  uint uVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  bool bVar13;
  undefined8 *local_res8;
  undefined8 *local_res10;
  
  if ((*(byte *)(param_1 + 0x15) & 1) != 0) {
    if (DAT_182673700 == 0) {
      local_res8 = (undefined8 *)FUN_1811316e0(0x130);
      DAT_182673700 = FUN_18133c6c0(local_res8);
    }
    plVar9 = (longlong *)(DAT_182673700 + 0x58);
    plVar4 = (longlong *)*plVar9;
    for (plVar7 = plVar4; plVar7 != plVar4 + *(int *)(DAT_182673700 + 100); plVar7 = plVar7 + 1) {
      if (param_1 == (longlong *)*plVar7) {
        lVar6 = (longlong)plVar7 - (longlong)plVar4 >> 3;
        if (-1 < (int)lVar6) {
          iVar8 = -1;
          if ((*(byte *)((longlong)param_1 + 0xa9) & 1) != 0) goto LAB_18133f55f;
          uVar10 = *(uint *)(DAT_182673700 + 100);
          uVar11 = (ulonglong)(int)uVar10;
          if ((int)uVar10 < 1) goto LAB_18133f55c;
          uVar12 = uVar11;
          goto LAB_18133f540;
        }
        break;
      }
    }
  }
  goto LAB_18133f567;
  while( true ) {
    uVar10 = uVar10 - 1;
    uVar11 = (ulonglong)uVar10;
    uVar12 = uVar12 - 1;
    if ((longlong)uVar12 < 1) break;
LAB_18133f540:
    uVar10 = (uint)uVar11;
    if ((*(byte *)(*(longlong *)(*plVar9 + -8 + uVar12 * 8) + 0xa9) & 1) == 0) break;
  }
LAB_18133f55c:
  iVar8 = uVar10 - 1;
LAB_18133f55f:
  FUN_18051b170(plVar9,lVar6,iVar8);
LAB_18133f567:
  FUN_1804de690(&local_res8,param_1);
  (**(code **)(*param_1 + 0x128))(param_1);
  puVar3 = local_res8;
  bVar13 = local_res8 != (undefined8 *)0x0;
  plVar9 = (longlong *)0x0;
  plVar4 = plVar9;
  if (bVar13) {
    plVar4 = (longlong *)local_res8[2];
  }
  if (plVar4 != (longlong *)0x0) {
    iVar8 = *(int *)((longlong)param_1 + 0x8c);
    while( true ) {
      plVar4 = plVar9;
      if (bVar13) {
        plVar4 = (longlong *)puVar3[2];
      }
      if ((plVar4 == (longlong *)0x0) || (iVar8 < 1)) break;
      iVar8 = iVar8 + -1;
      if ((*(int *)((longlong)param_1 + 0x8c) <= iVar8) &&
         (iVar8 = *(int *)((longlong)param_1 + 0x8c) + -1, iVar8 < 0)) break;
      plVar4 = *(longlong **)(param_1[0x10] + (longlong)iVar8 * 8);
      (**(code **)(*plVar4 + 0x10))(plVar4,param_1);
    }
    plVar4 = plVar9;
    if (bVar13) {
      plVar4 = (longlong *)puVar3[2];
    }
    if (plVar4 != (longlong *)0x0) {
      if (DAT_182673c20 == (undefined8 *)0x0) {
        puVar5 = (undefined8 *)FUN_1811316e0(0x28);
        local_res10 = puVar5;
        FUN_1812a59f0(puVar5);
        FUN_1812a7230(puVar5 + 2);
        *puVar5 = juce::ModalComponentManager::vftable;
        puVar5[2] = juce::ModalComponentManager::vftable;
        puVar5[3] = 0;
        puVar5[4] = 0;
        DAT_182673c20 = puVar5;
      }
      iVar8 = *(int *)((longlong)DAT_182673c20 + 0x24) + -1;
      lVar6 = (longlong)iVar8;
      if (-1 < iVar8) {
        plVar4 = plVar9;
        do {
          lVar2 = *(longlong *)(DAT_182673c20[3] + lVar6 * 8);
          if ((*(char *)(lVar2 + 0x5c) != '\0') &&
             (iVar8 = (int)plVar4, plVar4 = (longlong *)(ulonglong)(iVar8 + 1), iVar8 == 0)) {
            plVar9 = *(longlong **)(lVar2 + 0x40);
            break;
          }
          lVar6 = lVar6 + -1;
        } while (-1 < lVar6);
      }
      if (plVar9 != (longlong *)0x0) {
        plVar4 = (longlong *)plVar9[3];
        while (plVar7 = plVar4, plVar7 != (longlong *)0x0) {
          plVar9 = plVar7;
          plVar4 = (longlong *)plVar7[3];
        }
        plVar4 = (longlong *)param_1[3];
        while (plVar7 = plVar4, plVar7 != (longlong *)0x0) {
          param_1 = plVar7;
          plVar4 = (longlong *)plVar7[3];
        }
        if (plVar9 != param_1) {
          FUN_18133b010(DAT_182673c20,0);
        }
      }
    }
  }
  if (puVar3 != (undefined8 *)0x0) {
    LOCK();
    piVar1 = (int *)(puVar3 + 1);
    iVar8 = *piVar1;
    *piVar1 = *piVar1 + -1;
    UNLOCK();
    if (iVar8 == 1) {
      (**(code **)*local_res8)(local_res8,1);
    }
  }
  return;
}



############ FUN_ 1805a5a90 size=115 ############

longlong * FUN_1805a5a90(longlong *param_1,longlong *param_2,longlong param_3)

{
  ulonglong uVar1;
  longlong local_18;
  
  uVar1 = param_1[1];
  if ((param_3 < 0) && (uVar1 < (ulonglong)-param_3)) {
    local_18 = (-(uVar1 + param_3) - 1 >> 5) * -4 + -4;
  }
  else {
    local_18 = (uVar1 + param_3 >> 5) * 4;
  }
  local_18 = *param_1 + local_18;
  *param_2 = local_18;
  param_2[1] = (ulonglong)((int)uVar1 + (int)param_3 & 0x1f);
  return param_2;
}



############ FUN_ 1805a19c0 size=499 ############

void FUN_1805a19c0(longlong *param_1,ulonglong param_2,longlong param_3)

{
  undefined4 *puVar1;
  void *pvVar2;
  ulonglong uVar3;
  longlong lVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  undefined4 *puVar7;
  void *pvVar8;
  ulonglong uVar9;
  
  puVar7 = (undefined4 *)param_1[1];
  lVar4 = *param_1;
  uVar9 = (longlong)puVar7 - lVar4 >> 2;
  uVar5 = param_1[2] - lVar4 >> 2;
  if (param_2 <= uVar5) {
    if (uVar9 < param_2) {
      puVar1 = *(undefined4 **)(param_3 + 8);
      for (lVar4 = param_2 - uVar9; lVar4 != 0; lVar4 = lVar4 + -1) {
        *puVar7 = *puVar1;
        puVar7 = puVar7 + 1;
      }
      param_1[1] = (longlong)puVar7;
      return;
    }
    if (param_2 != uVar9) {
      param_1[1] = lVar4 + param_2 * 4;
    }
    return;
  }
  if (0x3fffffffffffffff < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a69c0();
  }
  uVar3 = param_2;
  if ((uVar5 <= 0x3fffffffffffffff - (uVar5 >> 1)) &&
     (uVar3 = (uVar5 >> 1) + uVar5, uVar3 < param_2)) {
    uVar3 = param_2;
  }
  uVar5 = uVar3 * 4;
  if (uVar3 < 0x4000000000000000) {
    uVar3 = uVar5;
    if (uVar5 < 0x1000) {
      if (uVar5 == 0) {
        pvVar8 = (void *)0x0;
      }
      else {
        pvVar8 = (void *)FUN_1811316e0(uVar5);
      }
      goto LAB_1805a1ab0;
    }
  }
  else {
    uVar3 = 0xffffffffffffffff;
  }
  uVar6 = uVar3 + 0x27;
  if (uVar6 <= uVar3) {
    uVar6 = 0xffffffffffffffff;
  }
  lVar4 = FUN_1811316e0(uVar6);
  if (lVar4 == 0) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
  pvVar8 = (void *)(lVar4 + 0x27U & 0xffffffffffffffe0);
  *(longlong *)((longlong)pvVar8 - 8) = lVar4;
LAB_1805a1ab0:
  puVar7 = (undefined4 *)((longlong)pvVar8 + uVar9 * 4);
  puVar1 = *(undefined4 **)(param_3 + 8);
  for (lVar4 = param_2 - uVar9; lVar4 != 0; lVar4 = lVar4 + -1) {
    *puVar7 = *puVar1;
    puVar7 = puVar7 + 1;
  }
  memmove(pvVar8,(void *)*param_1,param_1[1] - *param_1);
  pvVar2 = (void *)*param_1;
  if (pvVar2 != (void *)0x0) {
    pvVar8 = pvVar2;
    if ((0xfff < (param_1[2] - (longlong)pvVar2 & 0xfffffffffffffffcU)) &&
       (pvVar8 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar8)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar8);
  }
  *param_1 = (longlong)pvVar8;
  param_1[1] = (longlong)((longlong)pvVar8 + param_2 * 4);
  param_1[2] = (longlong)(uVar5 + (longlong)pvVar8);
  return;
}



############ FUN_ 1805737f0 size=56 ############

void FUN_1805737f0(undefined8 param_1,longlong param_2)

{
  undefined8 local_res8;
  
  local_res8 = param_1;
  FUN_18056e1d0(param_2 + 0x28,&local_res8,**(undefined8 **)(param_2 + 0x28),
                *(undefined8 **)(param_2 + 0x28));
                    /* WARNING: Subroutine does not return */
  free(*(void **)(param_2 + 0x28));
}



############ FUN_ 180573790 size=69 ############

void FUN_180573790(undefined8 param_1,void *param_2)

{
  longlong *plVar1;
  
  plVar1 = *(longlong **)((longlong)param_2 + 0x60);
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x20))(plVar1,plVar1 != (longlong *)((longlong)param_2 + 0x28));
    *(undefined8 *)((longlong)param_2 + 0x60) = 0;
  }
                    /* WARNING: Subroutine does not return */
  free(param_2);
}



############ FUN_ 181252610 size=201 ############

undefined8 *
FUN_181252610(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  
  uVar1 = 0xfffffffffffffffe;
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18267b084) {
    _Init_thread_header(&DAT_18267b084);
    if (DAT_18267b084 == -1) {
      FUN_18049c4e0(&DAT_18267b020,"<Sans-Serif>",param_3,param_4,uVar1);
      FUN_18049c4e0(&DAT_18267b028,"<Serif>");
      FUN_18049c4e0(&DAT_18267b030,"<Monospaced>");
      FUN_18049c4e0(&DAT_18267b038,"<Regular>");
      atexit(FUN_181a4ab20);
      _Init_thread_footer(&DAT_18267b084);
      return &DAT_18267b020;
    }
  }
  return &DAT_18267b020;
}



############ FUN_ 181211fd0 size=125 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_181211fd0(undefined8 param_1,uint param_2)

{
  ulonglong uVar1;
  ulonglong uVar2;
  char *pcVar3;
  undefined1 auStack_58 [62];
  char local_1a [2];
  ulonglong local_18;
  
  local_18 = DAT_182615970 ^ (ulonglong)auStack_58;
  local_1a[1] = 0;
  pcVar3 = local_1a + 1;
  uVar2 = (ulonglong)param_2;
  do {
    pcVar3 = pcVar3 + -1;
    uVar1 = uVar2 / 10;
    *pcVar3 = (char)uVar2 + (char)uVar1 * -10 + '0';
    uVar2 = uVar1;
  } while ((int)uVar1 != 0);
  FUN_180495150(param_1,pcVar3,local_1a + (1 - (longlong)pcVar3));
}



############ FUN_ 180493180 size=135 ############

void FUN_180493180(longlong *param_1,uint param_2)

{
  int iVar1;
  byte bVar2;
  int iVar3;
  byte *pbVar4;
  
  if (param_2 < 0x80) {
    *(char *)*param_1 = (char)param_2;
    *param_1 = *param_1 + 1;
  }
  else {
    iVar1 = 1;
    if ((0x7ff < param_2) && (iVar1 = 2, 0xffff < param_2)) {
      iVar1 = 3;
    }
    *(byte *)*param_1 = (byte)(param_2 >> (char)iVar1 * '\x06') | -1 << (7U - (char)iVar1 & 0x1f);
    *param_1 = *param_1 + 1;
    iVar1 = iVar1 + -1;
    pbVar4 = (byte *)*param_1;
    if (-1 < iVar1) {
      iVar3 = iVar1 * 6;
      do {
        bVar2 = (byte)iVar3;
        iVar3 = iVar3 + -6;
        *pbVar4 = (byte)(param_2 >> (bVar2 & 0x1f)) & 0x3f | 0x80;
        *param_1 = *param_1 + 1;
        iVar1 = iVar1 + -1;
        pbVar4 = (byte *)*param_1;
      } while (-1 < iVar1);
      return;
    }
  }
  return;
}



############ FUN_ 180486840 size=192 ############

undefined8 * FUN_180486840(undefined8 param_1,undefined8 *param_2)

{
  undefined8 uVar1;
  int iVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  
  puVar4 = DAT_182673770;
  if (*(char *)((longlong)DAT_182673770[1] + 0x19) == '\0') {
    uVar1 = *param_2;
    puVar3 = DAT_182673770;
    puVar5 = (undefined8 *)DAT_182673770[1];
    do {
      puVar4 = puVar5;
      iVar2 = FUN_18048cbc0(puVar4[4],uVar1);
      if (iVar2 < 0) {
        puVar5 = (undefined8 *)puVar4[2];
        puVar4 = puVar3;
      }
      else {
        puVar5 = (undefined8 *)*puVar4;
      }
      puVar3 = puVar4;
    } while (*(char *)((longlong)puVar5 + 0x19) == '\0');
  }
  if ((puVar4 != DAT_182673770) && (iVar2 = FUN_18048cbc0(*param_2,puVar4[4]), -1 < iVar2)) {
    return puVar4 + 5;
  }
  FUN_18048ff70();
  FUN_180490000();
  return param_2 + 5;
}



############ FUN_ 18048a270 size=118 ############

void FUN_18048a270(longlong param_1,int param_2)

{
  void *pvVar1;
  
  if (*(int *)(param_1 + 0x38) == param_2) {
    *(int *)(param_1 + 0x38) = param_2;
    return;
  }
  pvVar1 = *(void **)(param_1 + 0x30);
  if (0 < param_2) {
    if (pvVar1 == (void *)0x0) {
      pvVar1 = malloc((longlong)param_2 * 8);
      *(void **)(param_1 + 0x30) = pvVar1;
      *(int *)(param_1 + 0x38) = param_2;
      return;
    }
    pvVar1 = realloc(pvVar1,(longlong)param_2 * 8);
    *(void **)(param_1 + 0x30) = pvVar1;
    *(int *)(param_1 + 0x38) = param_2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar1);
}



############ FUN_ 1805a6620 size=85 ############

void FUN_1805a6620(undefined8 *param_1)

{
  void *_Src;
  void *_Memory;
  
  _Src = (void *)*param_1;
  memcpy(param_1,_Src,param_1[2] + 1);
  _Memory = _Src;
  if ((0xfff < param_1[3] + 1) &&
     (_Memory = *(void **)((longlong)_Src + -8),
     0x1f < (ulonglong)((longlong)_Src + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805a4730 size=192 ############

undefined8 * FUN_1805a4730(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::io::too_many_args::vftable;
  param_1[3] = *(undefined8 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[5] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x30);
  param_1[6] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[7] = *(undefined8 *)(param_2 + 0x38);
  param_1[8] = *(undefined8 *)(param_2 + 0x40);
  *(undefined4 *)(param_1 + 9) = *(undefined4 *)(param_2 + 0x48);
  *param_1 = boost::exception_detail::error_info_injector<boost::io::too_many_args>::vftable;
  param_1[5] = boost::exception_detail::error_info_injector<boost::io::too_many_args>::vftable;
  return param_1;
}



############ FUN_ 1805b9d10 size=386 ############

longlong FUN_1805b9d10(longlong param_1,longlong param_2)

{
  longlong *plVar1;
  
  plVar1 = (longlong *)(param_2 + 8);
  if ((longlong *)(param_1 + 8) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x20)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 8,plVar1,*(undefined8 *)(param_2 + 0x18));
  }
  plVar1 = (longlong *)(param_2 + 0x28);
  if ((longlong *)(param_1 + 0x28) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x40)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x28,plVar1,*(undefined8 *)(param_2 + 0x38));
  }
  plVar1 = (longlong *)(param_2 + 0x48);
  if ((longlong *)(param_1 + 0x48) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x60)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x48,plVar1,*(undefined8 *)(param_2 + 0x58));
  }
  plVar1 = (longlong *)(param_2 + 0x68);
  if ((longlong *)(param_1 + 0x68) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x80)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x68,plVar1,*(undefined8 *)(param_2 + 0x78));
  }
  plVar1 = (longlong *)(param_2 + 0x90);
  *(undefined4 *)(param_1 + 0x88) = *(undefined4 *)(param_2 + 0x88);
  if ((longlong *)(param_1 + 0x90) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0xa8)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x90,plVar1,*(undefined8 *)(param_2 + 0xa0));
  }
  plVar1 = (longlong *)(param_2 + 0xb0);
  if ((longlong *)(param_1 + 0xb0) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 200)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0xb0,plVar1,*(undefined8 *)(param_2 + 0xc0));
  }
  plVar1 = (longlong *)(param_2 + 0xd0);
  if ((longlong *)(param_1 + 0xd0) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0xe8)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0xd0,plVar1,*(undefined8 *)(param_2 + 0xe0));
  }
  *(undefined4 *)(param_1 + 0xf0) = *(undefined4 *)(param_2 + 0xf0);
  *(undefined1 *)(param_1 + 0xf4) = *(undefined1 *)(param_2 + 0xf4);
  *(undefined1 *)(param_1 + 0xf5) = *(undefined1 *)(param_2 + 0xf5);
  *(undefined8 *)(param_1 + 0xf6) = *(undefined8 *)(param_2 + 0xf6);
  *(undefined2 *)(param_1 + 0xfe) = *(undefined2 *)(param_2 + 0xfe);
  *(undefined1 *)(param_1 + 0x100) = *(undefined1 *)(param_2 + 0x100);
  return param_1;
}



############ FUN_ 1805ba400 size=165 ############

longlong FUN_1805ba400(longlong param_1,longlong param_2)

{
  *(undefined4 *)(param_1 + 8) = *(undefined4 *)(param_2 + 8);
  FUN_1805b9910(param_1 + 0x10,param_2 + 0x10);
  *(undefined1 *)(param_1 + 0x28) = *(undefined1 *)(param_2 + 0x28);
  *(undefined1 *)(param_1 + 0x29) = *(undefined1 *)(param_2 + 0x29);
  *(undefined4 *)(param_1 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);
  *(undefined4 *)(param_1 + 0x30) = *(undefined4 *)(param_2 + 0x30);
  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);
  *(undefined1 *)(param_1 + 0x38) = *(undefined1 *)(param_2 + 0x38);
  *(undefined1 *)(param_1 + 0x39) = *(undefined1 *)(param_2 + 0x39);
  *(undefined4 *)(param_1 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);
  *(undefined4 *)(param_1 + 0x40) = *(undefined4 *)(param_2 + 0x40);
  *(undefined4 *)(param_1 + 0x44) = *(undefined4 *)(param_2 + 0x44);
  *(undefined1 *)(param_1 + 0x48) = *(undefined1 *)(param_2 + 0x48);
  *(undefined1 *)(param_1 + 0x49) = *(undefined1 *)(param_2 + 0x49);
  *(undefined1 *)(param_1 + 0x4a) = *(undefined1 *)(param_2 + 0x4a);
  *(undefined8 *)(param_1 + 0x4b) = *(undefined8 *)(param_2 + 0x4b);
  *(undefined4 *)(param_1 + 0x53) = *(undefined4 *)(param_2 + 0x53);
  *(undefined2 *)(param_1 + 0x57) = *(undefined2 *)(param_2 + 0x57);
  *(undefined1 *)(param_1 + 0x59) = *(undefined1 *)(param_2 + 0x59);
  return param_1;
}



############ FUN_ 1805ba930 size=266 ############

longlong FUN_1805ba930(longlong param_1,longlong param_2)

{
  longlong *plVar1;
  
  *(undefined4 *)(param_1 + 8) = *(undefined4 *)(param_2 + 8);
  FUN_1805b9910(param_1 + 0x10,param_2 + 0x10);
  plVar1 = (longlong *)(param_2 + 0x28);
  if ((longlong *)(param_1 + 0x28) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x40)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x28,plVar1,*(undefined8 *)(param_2 + 0x38));
  }
  plVar1 = (longlong *)(param_2 + 0x48);
  if ((longlong *)(param_1 + 0x48) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x60)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x48,plVar1,*(undefined8 *)(param_2 + 0x58));
  }
  plVar1 = (longlong *)(param_2 + 0x70);
  *(undefined8 *)(param_1 + 0x68) = *(undefined8 *)(param_2 + 0x68);
  if ((longlong *)(param_1 + 0x70) != plVar1) {
    if (0xf < *(ulonglong *)(param_2 + 0x88)) {
      plVar1 = (longlong *)*plVar1;
    }
    FUN_1805a6cb0(param_1 + 0x70,plVar1,*(undefined8 *)(param_2 + 0x80));
  }
  *(undefined4 *)(param_1 + 0x90) = *(undefined4 *)(param_2 + 0x90);
  *(undefined4 *)(param_1 + 0x94) = *(undefined4 *)(param_2 + 0x94);
  *(undefined1 *)(param_1 + 0x98) = *(undefined1 *)(param_2 + 0x98);
  *(undefined1 *)(param_1 + 0x99) = *(undefined1 *)(param_2 + 0x99);
  *(undefined1 *)(param_1 + 0x9a) = *(undefined1 *)(param_2 + 0x9a);
  *(undefined1 *)(param_1 + 0x9b) = *(undefined1 *)(param_2 + 0x9b);
  *(undefined8 *)(param_1 + 0x9c) = *(undefined8 *)(param_2 + 0x9c);
  *(undefined4 *)(param_1 + 0xa4) = *(undefined4 *)(param_2 + 0xa4);
  return param_1;
}



############ FUN_ 1805b4dc0 size=658 ############

undefined8 *
FUN_1805b4dc0(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  
  *param_1 = pace::eden::thrift::pub::AuthData::vftable;
  *(undefined4 *)(param_1 + 1) = *(undefined4 *)(param_2 + 8);
  *(undefined4 *)((longlong)param_1 + 0xc) = *(undefined4 *)(param_2 + 0xc);
  *(undefined4 *)(param_1 + 2) = *(undefined4 *)(param_2 + 0x10);
  *(undefined4 *)((longlong)param_1 + 0x14) = *(undefined4 *)(param_2 + 0x14);
  FUN_1805b46a0(param_1 + 3,param_2 + 0x18,param_3,param_4,0xfffffffffffffffe);
  param_1[6] = *(undefined8 *)(param_2 + 0x30);
  param_1[7] = *(undefined8 *)(param_2 + 0x38);
  param_1[8] = *(undefined8 *)(param_2 + 0x40);
  param_1[9] = *(undefined8 *)(param_2 + 0x48);
  *(undefined4 *)(param_1 + 10) = *(undefined4 *)(param_2 + 0x50);
  *(undefined4 *)((longlong)param_1 + 0x54) = *(undefined4 *)(param_2 + 0x54);
  *(undefined1 *)(param_1 + 0xb) = *(undefined1 *)(param_2 + 0x58);
  *(undefined1 *)((longlong)param_1 + 0x59) = *(undefined1 *)(param_2 + 0x59);
  FUN_1805b6190(param_1 + 0xc,param_2 + 0x60);
  FUN_1805b5600(param_1 + 0x21,param_2 + 0x108);
  FUN_1805b6190(param_1 + 0x2d,param_2 + 0x168);
  FUN_1805a4070(param_1 + 0x42,param_2 + 0x210);
  FUN_1805a4070(param_1 + 0x46,param_2 + 0x230);
  FUN_1805a4070(param_1 + 0x4a,param_2 + 0x250);
  FUN_1805a4070(param_1 + 0x4e,param_2 + 0x270);
  FUN_1805a4070(param_1 + 0x52,param_2 + 0x290);
  FUN_1805a4070(param_1 + 0x56,param_2 + 0x2b0);
  FUN_1805a4070(param_1 + 0x5a,param_2 + 0x2d0);
  param_1[0x5e] = pace::eden::thrift::pub::ActivationInfoRecord::vftable;
  FUN_1805a4070(param_1 + 0x5f,param_2 + 0x2f8);
  FUN_1805a4070(param_1 + 99,param_2 + 0x318);
  FUN_1805a4070(param_1 + 0x67,param_2 + 0x338);
  FUN_1805a4070(param_1 + 0x6b,param_2 + 0x358);
  *(undefined4 *)(param_1 + 0x6f) = *(undefined4 *)(param_2 + 0x378);
  FUN_1805a4070(param_1 + 0x70,param_2 + 0x380);
  FUN_1805a4070(param_1 + 0x74,param_2 + 0x3a0);
  FUN_1805a4070(param_1 + 0x78,param_2 + 0x3c0);
  *(undefined4 *)(param_1 + 0x7c) = *(undefined4 *)(param_2 + 0x3e0);
  *(undefined1 *)((longlong)param_1 + 0x3e4) = *(undefined1 *)(param_2 + 0x3e4);
  *(undefined1 *)((longlong)param_1 + 0x3e5) = *(undefined1 *)(param_2 + 0x3e5);
  *(undefined8 *)((longlong)param_1 + 0x3e6) = *(undefined8 *)(param_2 + 0x3e6);
  *(undefined2 *)((longlong)param_1 + 0x3ee) = *(undefined2 *)(param_2 + 0x3ee);
  *(undefined1 *)(param_1 + 0x7e) = *(undefined1 *)(param_2 + 0x3f0);
  FUN_1805a4070(param_1 + 0x7f,param_2 + 0x3f8);
  uVar1 = *(undefined8 *)(param_2 + 0x420);
  param_1[0x83] = *(undefined8 *)(param_2 + 0x418);
  param_1[0x84] = uVar1;
  param_1[0x85] = *(undefined8 *)(param_2 + 0x428);
  *(undefined1 *)(param_1 + 0x86) = *(undefined1 *)(param_2 + 0x430);
  return param_1;
}



############ FUN_ 1807b0250 size=1457 ############

/* WARNING: Instruction at (ram,0x0001807b07e6) overlaps instruction at (ram,0x0001807b07e5)
    */
/* WARNING: Removing unreachable block (ram,0x0001807b03c1) */
/* WARNING: Removing unreachable block (ram,0x0001807b03f1) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1807b0250(longlong param_1,longlong *param_2)

{
  undefined4 uVar1;
  code *pcVar2;
  undefined1 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  ulonglong uVar10;
  undefined1 *puVar11;
  longlong lVar12;
  longlong lVar13;
  int unaff_retaddr;
  longlong alStack_90 [7];
  undefined1 auStack_58 [32];
  
  lVar13 = 0x6d0;
  uVar8 = (iRam0000000180796118 + -0x4b491bc2) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam000000018079611c) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796120) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796124) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796128) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam000000018079612c) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796130) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796134) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796138) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam000000018079613c) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796140) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + DAT_180796144) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + _DAT_180796148) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam000000018079614c) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796150) * 0x401;
  uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796154) * 0x401;
  uVar8 = uVar8 ^ uVar8 >> 6;
  do {
    lVar12 = param_1 + lVar13;
    param_1 = (lVar13 - lVar12 ^ 0xffffffffffffffffU) + 1;
    lVar13 = lVar12 - param_1;
    uVar9 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar9 < 0) {
      uVar9 = (uVar9 - 1 | 0xfffffffe) + 1;
    }
    puVar3 = auStack_58;
  } while (uVar9 != 0);
  do {
    puVar11 = puVar3;
    uVar8 = (_FUN_180796158 + uVar8) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam000000018079615c) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796160) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796164) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796168) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam000000018079616c) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796170) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796174) * 0x401;
    pcVar2 = *(code **)(*param_2 + 0x18);
    *(undefined8 *)(puVar11 + -8) = 0x1807b06d0;
    iVar4 = (*pcVar2)(param_2,"GetAuthorizationServerInfoInput");
    pcVar2 = *(code **)(*param_2 + 0x28);
    *(undefined8 *)(puVar11 + -8) = 0x1807b06ed;
    iVar5 = (*pcVar2)(param_2,"selector",8);
    uVar1 = *(undefined4 *)(param_1 + 8);
    pcVar2 = *(code **)(*param_2 + 0x88);
    *(undefined8 *)(puVar11 + -8) = 0x1807b0700;
    iVar6 = (*pcVar2)(param_2,uVar1);
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796178) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam000000018079617c) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796180) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796184) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796188) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam000000018079618c) * 0x401;
    pcVar2 = *(code **)(*param_2 + 0x30);
    *(undefined8 *)(puVar11 + -8) = 0x1807b076b;
    iVar7 = (*pcVar2)(param_2);
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796190) * 0x401;
    uVar8 = ((uVar8 >> 6 ^ uVar8) + iRam0000000180796194) * 0x401;
    uVar8 = (uVar8 >> 6 ^ uVar8) + iRam0000000180796198;
    uVar10 = (ulonglong)uVar8;
    uVar8 = uVar8 * 0x401;
    uVar8 = uVar8 ^ uVar8 >> 6;
    *(longlong **)(puVar11 + -8) = param_2;
    *(ulonglong *)(puVar11 + -0x10) = (ulonglong)(uint)(iVar4 + iVar5 + iVar6 + iVar7);
    param_1 = (-param_1 ^ 0xffffffffffffffffU) + 1;
    *(undefined8 *)(puVar11 + -0x18) = 0x1807b07d9;
    lVar13 = FUN_1807b0801();
    puVar3 = puVar11 + -0x10;
  } while (uVar10 != 1 && lVar13 != 0);
  lVar13 = *(longlong *)(puVar11 + -0x10);
  *(longlong *)(puVar11 + -0x10) = lVar13 + 0x14f;
  *(longlong *)(puVar11 + -0x18) = lVar13 + -0x6330e;
  *(longlong *)(puVar11 + -0x20) = lVar13 + 0x340a9;
  *(longlong *)(puVar11 + -0x28) = lVar13 + -0x6a503;
  *(longlong *)(puVar11 + -0x30) = lVar13 + -0x11f21;
  *(longlong *)(puVar11 + -0x38) = lVar13 + -0x28a09;
                    /* WARNING: Could not recover jumptable at 0x0001807b0911. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(lVar13 + -0x6f590))();
  return;
}



############ FUN_ 180621590 size=96 ############

undefined8 * FUN_180621590(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::sp_counted_impl_p<apache::thrift::protocol::TBinaryProtocol>::vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 1805d5580 size=97 ############

undefined8 * FUN_1805d5580(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::sp_counted_impl_p<apache::thrift::transport::TMemoryBuffer>::vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 1805da740 size=189 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805da740(longlong param_1,void *param_2,uint param_3,undefined1 param_4,uint param_5)

{
  undefined1 auStack_a8 [32];
  undefined8 local_88;
  undefined1 local_80 [40];
  undefined1 local_58 [64];
  ulonglong local_18;
  
  local_88 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_a8;
  if ((param_2 == (void *)0x0) && (param_3 != 0)) {
    param_2 = malloc((ulonglong)param_3);
    if (param_2 == (void *)0x0) {
      FUN_1805a4160(local_80,"Out of memory");
      FUN_1805d6540(local_58,local_80);
                    /* WARNING: Subroutine does not return */
      _CxxThrowException(local_58,(ThrowInfo *)&DAT_1825fdc30);
    }
  }
  *(void **)(param_1 + 0x28) = param_2;
  *(uint *)(param_1 + 0x30) = param_3;
  *(void **)(param_1 + 8) = param_2;
  *(ulonglong *)(param_1 + 0x10) = (ulonglong)param_5 + (longlong)param_2;
  *(ulonglong *)(param_1 + 0x18) = (ulonglong)param_5 + (longlong)param_2;
  *(ulonglong *)(param_1 + 0x20) = (longlong)param_2 + (ulonglong)param_3;
  *(undefined1 *)(param_1 + 0x34) = param_4;
}



############ FUN_ 1806222c0 size=174 ############

undefined8 *
FUN_1806222c0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong *plVar4;
  longlong lVar5;
  undefined8 local_20;
  longlong local_18;
  
  local_20 = *param_2;
  local_18 = param_2[1];
  if (local_18 != 0) {
    LOCK();
    *(int *)(local_18 + 8) = *(int *)(local_18 + 8) + 1;
    UNLOCK();
  }
  FUN_180622370(param_1,&local_20,param_3,param_4,0xfffffffffffffffe);
  *param_1 = apache::thrift::protocol::TBinaryProtocol::vftable;
  param_1[4] = 0;
  *(undefined2 *)(param_1 + 5) = 0x100;
  param_1[6] = 0;
  *(undefined4 *)(param_1 + 7) = 0;
  plVar4 = (longlong *)param_2[1];
  if (plVar4 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar4 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plVar4 + 8))(plVar4);
      LOCK();
      piVar2 = (int *)((longlong)plVar4 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar4 + 0x10))(plVar4);
      }
    }
  }
  return param_1;
}



############ FUN_ 1807980a0 size=1306 ############

/* WARNING: Removing unreachable block (ram,0x0001807981d5) */
/* WARNING: Removing unreachable block (ram,0x000180798100) */
/* WARNING: Removing unreachable block (ram,0x000180798126) */
/* WARNING: Removing unreachable block (ram,0x000180798227) */
/* WARNING: Removing unreachable block (ram,0x000180798184) */

uint FUN_1807980a0(undefined8 param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  int *piVar3;
  char cVar4;
  undefined2 uVar5;
  char cVar6;
  undefined1 local_d8 [40];
  undefined8 local_b0;
  undefined8 local_a8;
  uint local_80;
  undefined4 local_7c;
  undefined8 local_68;
  undefined1 local_60 [16];
  undefined8 local_50;
  undefined8 local_48;
  ulonglong local_40;
  
  local_68 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)local_d8;
  uVar1 = (uint)&stack0x00000000 & 0x1aff;
  uVar2 = (uint)&stack0x00000000 & 0x2ff;
  local_80 = 0x1071 << ((char)((byte)(-((uVar2 + 1) * uVar2 + 0x3f09 & 0x80000001) >> 0x18) ^
                              (byte)(-((uVar1 + 1) * uVar1 + 0x1153 & 0x80000001) >> 0x18)) >> 7 &
                       0x1fU) ^ 0x1081;
  local_7c = 0x2f0;
  local_50 = 0;
  local_48 = 0xf;
  local_60[0] = 0;
  (**(code **)(*(longlong *)param_2 + 0xc0))(param_2,local_60);
  uVar1 = (DAT_1815fa7ac ^ 0xc10) << 4 ^ DAT_1815fa7b0;
  uVar1 = (uVar1 >> 0x1c ^ uVar1 << 4 ^ DAT_1815fa7b4) << 4 ^ DAT_1815fa7b8;
  uVar1 = uVar1 >> 0x1c ^ uVar1 << 4 ^ DAT_1815fa7bc;
  uVar1 = uVar1 >> 0x1c ^ uVar1 << 4 ^ DAT_1815fa7c0;
  uVar1 = (((uVar1 >> 0x1c ^ uVar1 << 4 ^ DAT_1815fa7c4) << 4 ^ DAT_1815fa7c8) << 4 ^ DAT_1815fa7cc)
          << 4 ^ DAT_1815fa7d0;
  uVar1 = (uVar1 >> 0x1c ^ uVar1 << 4 ^ DAT_1815fa7d4) << 4 ^ DAT_1815fa7d8;
  uVar1 = uVar1 >> 0x1c ^ uVar1 << 4 ^ DAT_1815fa7dc;
  uVar1 = uVar1 >> 0x1c ^ uVar1 << 4 ^ DAT_1815fa7e0;
  local_b0 = 0x55b8aa56febf1c59;
  local_a8 = 0x1febf1c59;
  uVar1 = (uVar1 >> 0x1c ^ uVar1 << 4 ^ DAT_1815fa7e4) << 4;
  uVar5 = (undefined2)uVar1;
  cVar4 = (char)(((((uVar1 ^ DAT_1815fa7e8) << 4 ^ DAT_1815fa7ec) << 4 ^ DAT_1815fa7f0) >> 0x1c ^
                 DAT_1815fa7f4) << 4);
  cVar6 = '\0';
                    /* WARNING: Call to offcut address within same function */
  func_0x000180798422();
  uVar1 = in(uVar5);
  piVar3 = (int *)(ulonglong)uVar1;
  *(char *)((longlong)param_2 + -0x72b2a1bf) =
       (*(char *)((longlong)param_2 + -0x72b2a1bf) + 'B') - cVar6;
  *param_2 = uVar1;
  *piVar3 = *piVar3 + uVar1;
  *(char *)((longlong)piVar3 + -0x73) = *(char *)((longlong)piVar3 + -0x73) + cVar4;
  return uVar1 & 0xffffffd8;
}



############ FUN_ 1805d6590 size=89 ############

undefined8 *
FUN_1805d6590(undefined8 *param_1,undefined4 param_2,undefined8 param_3,undefined8 param_4)

{
  param_1[1] = 0;
  param_1[2] = 0;
  *param_1 = apache::thrift::TException::vftable;
  FUN_1805a4070(param_1 + 3,param_3,param_3,param_4,0xfffffffffffffffe);
  *param_1 = apache::thrift::transport::TTransportException::vftable;
  *(undefined4 *)(param_1 + 7) = param_2;
  return param_1;
}



############ FUN_ 1805b1630 size=118 ############

longlong FUN_1805b1630(longlong param_1,longlong param_2,longlong param_3)

{
  for (; param_1 != param_2; param_1 = param_1 + 0x2f0) {
    FUN_1805b4bc0(param_3,param_1);
    param_3 = param_3 + 0x2f0;
  }
  return param_3;
}



############ FUN_ 1805bd860 size=65 ############

void FUN_1805bd860(undefined8 param_1,void *param_2,longlong param_3)

{
  void *_Memory;
  
  _Memory = param_2;
  if ((0xfff < (ulonglong)(param_3 * 0x2f0)) &&
     (_Memory = *(void **)((longlong)param_2 + -8),
     0x1f < (ulonglong)((longlong)param_2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805bc990 size=115 ############

void FUN_1805bc990(undefined8 param_1,ulonglong param_2)

{
  ulonglong uVar1;
  longlong lVar2;
  ulonglong uVar3;
  
  uVar1 = param_2 * 0x2f0;
  if (param_2 < 0x572620ae4c415d) {
    if (uVar1 < 0x1000) {
      if (uVar1 != 0) {
        FUN_1811316e0(uVar1);
        return;
      }
      return;
    }
  }
  else {
    uVar1 = 0xffffffffffffffff;
  }
  uVar3 = uVar1 + 0x27;
  if (uVar3 <= uVar1) {
    uVar3 = 0xffffffffffffffff;
  }
  lVar2 = FUN_1811316e0(uVar3);
  if (lVar2 != 0) {
    *(longlong *)((lVar2 + 0x27U & 0xffffffffffffffe0) - 8) = lVar2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  _invalid_parameter_noinfo_noreturn();
}



############ FUN_ 18060ae20 size=734 ############

longlong FUN_18060ae20(undefined8 *param_1,undefined8 *param_2,longlong param_3)

{
  undefined8 *puVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  longlong *plVar5;
  longlong lVar6;
  undefined8 *puVar7;
  undefined1 local_res8;
  
  if (param_1 != param_2) {
    lVar6 = param_3 + 0x228;
    puVar7 = param_1 + 0x47;
    do {
      if ((undefined8 *)(lVar6 + -0x220) != puVar7 + -0x46) {
        FUN_1805af240((undefined8 *)(lVar6 + -0x220),puVar7[-0x46],puVar7[-0x45],local_res8);
      }
      plVar5 = puVar7 + -0x42;
      *(undefined1 *)(lVar6 + -0x208) = *(undefined1 *)(puVar7 + -0x43);
      *(undefined1 *)(lVar6 + -0x207) = *(undefined1 *)((longlong)puVar7 + -0x217);
      *(undefined4 *)(lVar6 + -0x204) = *(undefined4 *)((longlong)puVar7 + -0x214);
      if ((longlong *)(lVar6 + -0x200) != plVar5) {
        if (0xf < (ulonglong)puVar7[-0x3f]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar6 + -0x200,plVar5,puVar7[-0x40]);
      }
      plVar5 = puVar7 + -0x3e;
      if ((longlong *)(lVar6 + -0x1e0) != plVar5) {
        if (0xf < (ulonglong)puVar7[-0x3b]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar6 + -0x1e0,plVar5,puVar7[-0x3c]);
      }
      plVar5 = puVar7 + -0x38;
      *(undefined8 *)(lVar6 + -0x1c0) = puVar7[-0x3a];
      *(undefined8 *)(lVar6 + -0x1b8) = puVar7[-0x39];
      if ((longlong *)(lVar6 + -0x1b0) != plVar5) {
        if (0xf < (ulonglong)puVar7[-0x35]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar6 + -0x1b0,plVar5,puVar7[-0x36]);
      }
      *(undefined1 *)(lVar6 + -400) = *(undefined1 *)(puVar7 + -0x34);
      *(undefined4 *)(lVar6 + -0x18c) = *(undefined4 *)((longlong)puVar7 + -0x19c);
      FUN_1805ba780(lVar6 + -0x188,puVar7 + -0x33);
      *(undefined4 *)(lVar6 + -0x38) = *(undefined4 *)(puVar7 + -9);
      *(undefined1 *)(lVar6 + -0x34) = *(undefined1 *)((longlong)puVar7 + -0x44);
      *(undefined8 *)(lVar6 + -0x30) = puVar7[-8];
      FUN_1805b9910(lVar6 + -0x28,puVar7 + -7);
      plVar5 = puVar7 + -2;
      *(undefined8 *)(lVar6 + -8) = puVar7[-3];
      if ((longlong *)lVar6 != plVar5) {
        if (0xf < (ulonglong)puVar7[1]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar6,plVar5,*puVar7);
      }
      plVar5 = puVar7 + 2;
      if ((longlong *)(lVar6 + 0x20) != plVar5) {
        if (0xf < (ulonglong)puVar7[5]) {
          plVar5 = (longlong *)*plVar5;
        }
        FUN_1805a6cb0(lVar6 + 0x20,plVar5,puVar7[4]);
      }
      *(undefined4 *)(lVar6 + 0x40) = *(undefined4 *)(puVar7 + 6);
      *(undefined4 *)(lVar6 + 0x44) = *(undefined4 *)((longlong)puVar7 + 0x34);
      *(undefined4 *)(lVar6 + 0x48) = *(undefined4 *)(puVar7 + 7);
      *(undefined4 *)(lVar6 + 0x4c) = *(undefined4 *)((longlong)puVar7 + 0x3c);
      FUN_1805b9910(lVar6 + 0x50,puVar7 + 8);
      *(undefined4 *)(lVar6 + 0x68) = *(undefined4 *)(puVar7 + 0xb);
      *(undefined4 *)(lVar6 + 0x6c) = *(undefined4 *)((longlong)puVar7 + 0x5c);
      *(undefined8 *)(lVar6 + 0x70) = puVar7[0xc];
      *(undefined2 *)(lVar6 + 0x78) = *(undefined2 *)(puVar7 + 0xd);
      if ((undefined8 *)(lVar6 + 0x80) != puVar7 + 0xe) {
        FUN_1805af600((undefined8 *)(lVar6 + 0x80),puVar7[0xe],puVar7[0xf],local_res8);
      }
      if ((undefined8 *)(lVar6 + 0x98) != puVar7 + 0x11) {
        FUN_1805af430((undefined8 *)(lVar6 + 0x98),puVar7[0x11],puVar7[0x12],local_res8);
      }
      uVar2 = *(undefined4 *)((longlong)puVar7 + 0xa4);
      uVar3 = *(undefined4 *)(puVar7 + 0x15);
      uVar4 = *(undefined4 *)((longlong)puVar7 + 0xac);
      param_3 = param_3 + 0x2f0;
      *(undefined4 *)(lVar6 + 0xb0) = *(undefined4 *)(puVar7 + 0x14);
      *(undefined4 *)(lVar6 + 0xb4) = uVar2;
      *(undefined4 *)(lVar6 + 0xb8) = uVar3;
      *(undefined4 *)(lVar6 + 0xbc) = uVar4;
      *(undefined2 *)(lVar6 + 0xc0) = *(undefined2 *)(puVar7 + 0x16);
      *(undefined1 *)(lVar6 + 0xc2) = *(undefined1 *)((longlong)puVar7 + 0xb2);
      lVar6 = lVar6 + 0x2f0;
      puVar1 = puVar7 + 0x17;
      puVar7 = puVar7 + 0x5e;
    } while (puVar1 != param_2);
  }
  return param_3;
}



############ FUN_ 180576280 size=65 ############

void FUN_180576280(undefined8 param_1,void *param_2,longlong param_3)

{
  void *_Memory;
  
  _Memory = param_2;
  if ((0xfff < (ulonglong)(param_3 * 0x8c0)) &&
     (_Memory = *(void **)((longlong)param_2 + -8),
     0x1f < (ulonglong)((longlong)param_2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805b1730 size=118 ############

longlong FUN_1805b1730(longlong param_1,longlong param_2,longlong param_3)

{
  for (; param_1 != param_2; param_1 = param_1 + 0x8c0) {
    FUN_1805b5540(param_3,param_1);
    param_3 = param_3 + 0x8c0;
  }
  return param_3;
}



############ FUN_ 1805bca90 size=115 ############

void FUN_1805bca90(undefined8 param_1,ulonglong param_2)

{
  ulonglong uVar1;
  longlong lVar2;
  ulonglong uVar3;
  
  uVar1 = param_2 * 0x8c0;
  if (param_2 < 0x1d41d41d41d41e) {
    if (uVar1 < 0x1000) {
      if (uVar1 != 0) {
        FUN_1811316e0(uVar1);
        return;
      }
      return;
    }
  }
  else {
    uVar1 = 0xffffffffffffffff;
  }
  uVar3 = uVar1 + 0x27;
  if (uVar3 <= uVar1) {
    uVar3 = 0xffffffffffffffff;
  }
  lVar2 = FUN_1811316e0(uVar3);
  if (lVar2 != 0) {
    *(longlong *)((lVar2 + 0x27U & 0xffffffffffffffe0) - 8) = lVar2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  _invalid_parameter_noinfo_noreturn();
}



############ FUN_ 18066c9f0 size=227 ############

longlong FUN_18066c9f0(longlong param_1,longlong param_2,longlong param_3)

{
  if (param_1 != param_2) {
    param_1 = param_1 - param_3;
    do {
      *(undefined4 *)(param_3 + 8) = *(undefined4 *)(param_1 + 8 + param_3);
      FUN_1805ba4b0(param_3 + 0x10,param_1 + 0x10 + param_3);
      *(undefined1 *)(param_3 + 0x470) = *(undefined1 *)(param_1 + 0x470 + param_3);
      *(undefined4 *)(param_3 + 0x474) = *(undefined4 *)(param_1 + 0x474 + param_3);
      *(undefined4 *)(param_3 + 0x478) = *(undefined4 *)(param_1 + 0x478 + param_3);
      *(undefined4 *)(param_3 + 0x47c) = *(undefined4 *)(param_1 + 0x47c + param_3);
      FUN_1805ba120(param_3 + 0x480,param_1 + 0x480 + param_3);
      *(undefined4 *)(param_3 + 0x8b8) = *(undefined4 *)(param_1 + 0x8b8 + param_3);
      *(undefined2 *)(param_3 + 0x8bc) = *(undefined2 *)(param_1 + 0x8bc + param_3);
      *(undefined1 *)(param_3 + 0x8be) = *(undefined1 *)(param_1 + 0x8be + param_3);
      param_3 = param_3 + 0x8c0;
    } while (param_1 + param_3 != param_2);
  }
  return param_3;
}



############ FUN_ 180680130 size=180 ############

void FUN_180680130(longlong *param_1)

{
  undefined8 *puVar1;
  void *pvVar2;
  longlong lVar3;
  undefined8 *puVar4;
  void *_Memory;
  
  puVar4 = (undefined8 *)*param_1;
  if (puVar4 == (undefined8 *)0x0) {
    return;
  }
  puVar1 = (undefined8 *)param_1[1];
  for (; puVar4 != puVar1; puVar4 = puVar4 + 0x15) {
    (**(code **)*puVar4)(puVar4,0);
  }
  pvVar2 = (void *)*param_1;
  lVar3 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816(param_1[2] - (longlong)pvVar2),8) +
          (param_1[2] - (longlong)pvVar2);
  _Memory = pvVar2;
  if ((0xfff < (ulonglong)(((lVar3 >> 7) - (lVar3 >> 0x3f)) * 0xa8)) &&
     (_Memory = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1807930d0 size=1052 ############

/* WARNING: Instruction at (ram,0x0001807933df) overlaps instruction at (ram,0x0001807933de)
    */
/* WARNING: Removing unreachable block (ram,0x000180793116) */
/* WARNING: Removing unreachable block (ram,0x000180793214) */

ulonglong FUN_1807930d0(undefined8 param_1,longlong *param_2)

{
  uint *puVar1;
  char cVar4;
  longlong lVar2;
  ulonglong uVar3;
  uint uVar5;
  undefined1 *puVar6;
  uint uVar7;
  undefined1 local_c8 [32];
  undefined1 *local_a8;
  undefined *local_a0;
  uint local_80;
  undefined4 local_7c;
  undefined8 local_68;
  undefined1 local_60 [16];
  undefined8 local_50;
  undefined8 local_48;
  ulonglong local_40;
  
  local_68 = 0xfffffffffffffffe;
  local_40 = DAT_182615970 ^ (ulonglong)local_c8;
  if (((ulonglong)&stack0x00000000 & 0x300) == 0) {
    uVar5 = (uint)&stack0x00000000 & 0x3dff;
    uVar5 = (uVar5 * uVar5 + 1) % 7;
  }
  else {
    uVar5 = 1;
  }
  uVar7 = (uint)&stack0x00000000 & 0x1cff;
  uVar7 = (uVar7 * uVar7 * 0x10 + 4) % 0x13;
  local_80 = ((int)(-uVar7 | uVar7) >> 0x1f) * -0x4900 ^ ((int)(-uVar5 | uVar5) >> 0x1f) * -0x4560;
  local_7c = 0x3a0;
  local_50 = 0;
  local_48 = 0xf;
  local_60[0] = 0;
  (**(code **)(*param_2 + 0xc0))(param_2,local_60);
  local_a0 = &DAT_1815b2d5c;
  puVar6 = &LAB_1815b2e5c;
  local_a8 = puVar6;
  FUN_180794c10();
                    /* WARNING: Call to offcut address within same function */
  lVar2 = func_0x00018079338d();
  cVar4 = (char)((ulonglong)lVar2 >> 8) + (char)puVar6 + (lVar2 != 0);
  uVar3 = CONCAT62((int6)((ulonglong)lVar2 >> 0x10),CONCAT11(cVar4,(char)lVar2));
  puVar1 = (uint *)(uVar3 - 0x7d);
  *puVar1 = *puVar1 >> 4 | *puVar1 << 0x1c;
  if (puVar6 != (undefined1 *)0x1 && cVar4 != '\0') {
    uVar3 = (ulonglong)((int)uVar3 + 0x81bcd8a);
  }
  return uVar3;
}



############ FUN_ 1805bd8b0 size=65 ############

void FUN_1805bd8b0(undefined8 param_1,void *param_2,longlong param_3)

{
  void *_Memory;
  
  _Memory = param_2;
  if ((0xfff < (ulonglong)(param_3 * 0xa8)) &&
     (_Memory = *(void **)((longlong)param_2 + -8),
     0x1f < (ulonglong)((longlong)param_2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 18066c7e0 size=514 ############

longlong FUN_18066c7e0(undefined8 *param_1,undefined8 *param_2,longlong param_3)

{
  undefined8 *puVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  longlong lVar6;
  longlong lVar7;
  longlong *plVar8;
  undefined8 *puVar9;
  
  if (param_1 != param_2) {
    lVar6 = param_3 - (longlong)param_1;
    puVar9 = param_1 + 0xd;
    do {
      *(undefined4 *)((longlong)puVar9 + lVar6 + -0x60) = *(undefined4 *)(puVar9 + -0xc);
      *(undefined4 *)(lVar6 + -0x5c + (longlong)puVar9) = *(undefined4 *)((longlong)puVar9 + -0x5c);
      *(undefined1 *)(lVar6 + -0x58 + (longlong)puVar9) = *(undefined1 *)(puVar9 + -0xb);
      plVar8 = puVar9 + -2;
      *(undefined4 *)(lVar6 + -0x54 + (longlong)puVar9) = *(undefined4 *)((longlong)puVar9 + -0x54);
      *(undefined4 *)(lVar6 + -0x50 + (longlong)puVar9) = *(undefined4 *)(puVar9 + -10);
      *(undefined8 *)(lVar6 + -0x48 + (longlong)puVar9) = puVar9[-9];
      *(undefined8 *)(lVar6 + -0x40 + (longlong)puVar9) = puVar9[-8];
      *(undefined8 *)(lVar6 + -0x38 + (longlong)puVar9) = puVar9[-7];
      *(undefined8 *)(lVar6 + -0x30 + (longlong)puVar9) = puVar9[-6];
      *(undefined8 *)(lVar6 + -0x28 + (longlong)puVar9) = puVar9[-5];
      *(undefined4 *)(lVar6 + -0x20 + (longlong)puVar9) = *(undefined4 *)(puVar9 + -4);
      *(undefined8 *)(lVar6 + -0x18 + (longlong)puVar9) = puVar9[-3];
      lVar7 = lVar6 + -0x10 + (longlong)puVar9;
      if ((longlong *)lVar7 != plVar8) {
        if (0xf < (ulonglong)puVar9[1]) {
          plVar8 = (longlong *)*plVar8;
        }
        FUN_1805a6cb0(lVar7,plVar8,*puVar9);
      }
      FUN_18067dc30(lVar6 + 0x10 + (longlong)puVar9,puVar9 + 2);
      param_3 = param_3 + 0xa8;
      *(undefined1 *)((longlong)puVar9 + lVar6 + 0x28) = *(undefined1 *)(puVar9 + 5);
      *(undefined1 *)((longlong)puVar9 + lVar6 + 0x29) = *(undefined1 *)((longlong)puVar9 + 0x29);
      uVar3 = *(undefined4 *)((longlong)puVar9 + 0x2e);
      uVar4 = *(undefined4 *)((longlong)puVar9 + 0x32);
      uVar5 = *(undefined4 *)((longlong)puVar9 + 0x36);
      puVar2 = (undefined4 *)((longlong)puVar9 + lVar6 + 0x2a);
      *puVar2 = *(undefined4 *)((longlong)puVar9 + 0x2a);
      puVar2[1] = uVar3;
      puVar2[2] = uVar4;
      puVar2[3] = uVar5;
      puVar1 = puVar9 + 8;
      puVar9 = puVar9 + 0x15;
    } while (puVar1 != param_2);
  }
  return param_3;
}



############ FUN_ 18066e1c0 size=295 ############

undefined8 *
FUN_18066e1c0(undefined8 param_1,undefined4 *param_2,undefined4 *param_3,undefined8 *param_4)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  
  if (param_2 != param_3) {
    puVar5 = param_2 + 3;
    do {
      *param_4 = pace::eden::thrift::pub::AuthSearch::vftable;
      *(undefined4 *)(param_4 + 1) = puVar5[-1];
      *(undefined4 *)((longlong)param_4 + 0xc) = *puVar5;
      *(undefined1 *)(param_4 + 2) = *(undefined1 *)(puVar5 + 1);
      *(undefined4 *)((longlong)param_4 + 0x14) = puVar5[2];
      *(undefined4 *)(param_4 + 3) = puVar5[3];
      param_4[4] = *(undefined8 *)(puVar5 + 5);
      param_4[5] = *(undefined8 *)(puVar5 + 7);
      param_4[6] = *(undefined8 *)(puVar5 + 9);
      param_4[7] = *(undefined8 *)(puVar5 + 0xb);
      param_4[8] = *(undefined8 *)(puVar5 + 0xd);
      *(undefined4 *)(param_4 + 9) = puVar5[0xf];
      param_4[10] = *(undefined8 *)(puVar5 + 0x11);
      FUN_1805a4070(param_4 + 0xb,puVar5 + 0x13);
      FUN_1805b49f0(param_4 + 0xf,puVar5 + 0x1b);
      *(undefined1 *)(param_4 + 0x12) = *(undefined1 *)(puVar5 + 0x21);
      *(undefined1 *)((longlong)param_4 + 0x91) = *(undefined1 *)((longlong)puVar5 + 0x85);
      uVar2 = *(undefined4 *)((longlong)puVar5 + 0x8a);
      uVar3 = *(undefined4 *)((longlong)puVar5 + 0x8e);
      uVar4 = *(undefined4 *)((longlong)puVar5 + 0x92);
      *(undefined4 *)((longlong)param_4 + 0x92) = *(undefined4 *)((longlong)puVar5 + 0x86);
      *(undefined4 *)((longlong)param_4 + 0x96) = uVar2;
      *(undefined4 *)((longlong)param_4 + 0x9a) = uVar3;
      *(undefined4 *)((longlong)param_4 + 0x9e) = uVar4;
      param_4 = param_4 + 0x15;
      puVar1 = puVar5 + 0x27;
      puVar5 = puVar5 + 0x2a;
    } while (puVar1 != param_3);
  }
  return param_4;
}



############ FUN_ 1807ab570 size=2033 ############

/* WARNING: Removing unreachable block (ram,0x0001807ab670) */

longlong FUN_1807ab570(longlong param_1,longlong *param_2)

{
  ulonglong uVar1;
  uint uVar2;
  longlong lVar3;
  undefined1 in_YMM14 [32];
  int unaff_retaddr;
  
  (**(code **)(*param_2 + 0x18))(param_2,"FindAuthChainsInput",0x141fb1c,0xb037fe17,0xac413fa0);
  (**(code **)(*param_2 + 0x28))(param_2,"authSearchSpecs",0xf);
  lVar3 = *(longlong *)(param_1 + 0x10) - *(longlong *)(param_1 + 8);
  lVar3 = SUB168(SEXT816(-0x3cf3cf3cf3cf3cf3) * SEXT816(lVar3),8) + lVar3;
  (**(code **)(*param_2 + 0x50))(param_2,0xc,(lVar3 >> 7) - (lVar3 >> 0x3f));
  lVar3 = *(longlong *)(param_1 + 8);
  if (lVar3 != *(longlong *)(param_1 + 0x10)) {
    do {
      FUN_180954a20(lVar3,param_2);
      lVar3 = lVar3 + 0xa8;
    } while (lVar3 != *(longlong *)(param_1 + 0x10));
  }
  do {
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  (**(code **)(*param_2 + 0x58))(param_2);
  (**(code **)(*param_2 + 0x30))(param_2);
                    /* WARNING: Call to offcut address within same function */
  uVar1 = func_0x0001807abbf3();
  vandpd_avx(in_YMM14,*(undefined1 (*) [32])(uVar1 - 0x73));
  return (-(uVar1 & 0xffffffffffffffc8) ^ 0xffffffffffffffff) + 1;
}



############ FUN_ 1805a1ca0 size=177 ############

undefined8 *
FUN_1805a1ca0(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[0xe] = &DAT_181baffb0;
  param_1[0x10] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805a4530();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::lock_error>_>::vftable;
  param_1[9] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::lock_error>_>::vftable
  ;
  *(undefined ***)((longlong)*(int *)(param_1[0xe] + 4) + 0x70 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::lock_error>_>::vftable;
  *(int *)((longlong)*(int *)(param_1[0xe] + 4) + 0x6c + (longlong)param_1) =
       *(int *)(param_1[0xe] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x48;
  }
  FUN_1805a7b20(param_1 + 9,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805a2010 size=65 ############

undefined8 * FUN_1805a2010(undefined8 *param_1)

{
  FUN_1805a4b90();
  param_1[10] = 0;
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  *(undefined4 *)(param_1 + 0xd) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::lock_error>::vftable;
  param_1[9] = boost::exception_detail::error_info_injector<boost::lock_error>::vftable;
  return param_1;
}



############ FUN_ 1805a4c10 size=126 ############

undefined8 * FUN_1805a4c10(undefined8 *param_1,undefined4 param_2,undefined8 param_3)

{
  undefined8 local_28;
  undefined1 local_20;
  undefined4 local_18;
  undefined4 uStack_14;
  undefined8 uStack_10;
  
  local_18 = param_2;
  uStack_10 = FUN_1805c8c70();
  *param_1 = std::exception::vftable;
  local_20 = 1;
  param_1[1] = 0;
  param_1[2] = 0;
  local_28 = param_3;
  __std_exception_copy(&local_28);
  param_1[3] = CONCAT44(uStack_14,local_18);
  param_1[4] = uStack_10;
  param_1[7] = 0;
  param_1[8] = 0xf;
  *(undefined1 *)(param_1 + 5) = 0;
  *param_1 = boost::thread_exception::vftable;
  return param_1;
}



############ FUN_ 18073b050 size=767 ############

/* WARNING: Removing unreachable block (ram,0x00018073b140) */
/* WARNING: Removing unreachable block (ram,0x00018073b106) */
/* WARNING: Removing unreachable block (ram,0x00018073b173) */

void FUN_18073b050(undefined8 param_1,undefined8 param_2)

{
  FUN_18070abe0(param_2);
  FUN_18073c007();
  return;
}



############ FUN_ 18073db4c size=371 ############

longlong FUN_18073db4c(void)

{
  ulonglong in_RAX;
  
  return ((in_RAX ^ 0xffffffffffffffff) + 1 ^ 0xffffffffffffffff) + 1;
}



############ FUN_ 1805b0f50 size=335 ############

void FUN_1805b0f50(longlong *param_1,ulonglong param_2)

{
  void *pvVar1;
  ulonglong uVar2;
  void *pvVar3;
  ulonglong uVar4;
  longlong lVar5;
  ulonglong uVar6;
  
  pvVar1 = (void *)param_1[1];
  lVar5 = *param_1;
  uVar6 = (longlong)pvVar1 - lVar5;
  uVar2 = param_1[2] - lVar5;
  if (param_2 <= uVar2) {
    if (param_2 <= uVar6) {
      if (param_2 != uVar6) {
        param_1[1] = lVar5 + param_2;
      }
      return;
    }
    lVar5 = (longlong)pvVar1 + (param_2 - uVar6);
    memset(pvVar1,0,lVar5 - (longlong)pvVar1);
    param_1[1] = lVar5;
    return;
  }
  if (0x7fffffffffffffff < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a69c0();
  }
  uVar4 = param_2;
  if ((uVar2 <= 0x7fffffffffffffff - (uVar2 >> 1)) &&
     (uVar4 = (uVar2 >> 1) + uVar2, uVar4 < param_2)) {
    uVar4 = param_2;
  }
  pvVar3 = (void *)FUN_1805bc8b0(param_1);
  memset((void *)((longlong)pvVar3 + uVar6),0,param_2 - uVar6);
  memmove(pvVar3,(void *)*param_1,param_1[1] - *param_1);
  pvVar1 = (void *)*param_1;
  if (pvVar1 == (void *)0x0) {
    *param_1 = (longlong)pvVar3;
    param_1[1] = (longlong)pvVar3 + param_2;
    param_1[2] = (longlong)pvVar3 + uVar4;
    return;
  }
  pvVar3 = pvVar1;
  if ((0xfff < (ulonglong)(param_1[2] - (longlong)pvVar1)) &&
     (pvVar3 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar3)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar3);
}



############ FUN_ 18067d1b0 size=307 ############

void FUN_18067d1b0(undefined8 *param_1)

{
  void *pvVar1;
  void *pvVar2;
  
  *param_1 = pace::eden::thrift::authorize::SendEncryptedCommandInput::vftable;
  pvVar1 = (void *)param_1[0x11];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[0x13] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  if (0xf < (ulonglong)param_1[0xf]) {
    pvVar1 = (void *)param_1[0xc];
    pvVar2 = pvVar1;
    if ((0xfff < param_1[0xf] + 1) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  param_1[0xe] = 0;
  param_1[0xf] = 0xf;
  *(undefined1 *)(param_1 + 0xc) = 0;
  pvVar1 = (void *)param_1[6];
  if (pvVar1 != (void *)0x0) {
    pvVar2 = pvVar1;
    if ((0xfff < (ulonglong)(param_1[8] - (longlong)pvVar1)) &&
       (pvVar2 = *(void **)((longlong)pvVar1 + -8),
       0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar2);
  }
  pvVar1 = (void *)param_1[2];
  if (pvVar1 == (void *)0x0) {
    return;
  }
  pvVar2 = pvVar1;
  if ((0xfff < (ulonglong)(param_1[4] - (longlong)pvVar1)) &&
     (pvVar2 = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)pvVar2)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar2);
}



############ FUN_ 1805b1330 size=273 ############

void FUN_1805b1330(longlong *param_1,ulonglong param_2)

{
  ulonglong uVar1;
  void *pvVar2;
  ulonglong uVar3;
  longlong lVar4;
  ulonglong uVar5;
  
  pvVar2 = (void *)param_1[1];
  lVar4 = *param_1;
  uVar5 = (longlong)pvVar2 - lVar4;
  uVar1 = param_1[2] - lVar4;
  if (param_2 <= uVar1) {
    if (param_2 <= uVar5) {
      if (param_2 != uVar5) {
        param_1[1] = lVar4 + param_2;
      }
      return;
    }
    lVar4 = (longlong)pvVar2 + (param_2 - uVar5);
    memset(pvVar2,0,lVar4 - (longlong)pvVar2);
    param_1[1] = lVar4;
    return;
  }
  if (0x7fffffffffffffff < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_1805a69c0();
  }
  uVar3 = param_2;
  if ((uVar1 <= 0x7fffffffffffffff - (uVar1 >> 1)) &&
     (uVar3 = (uVar1 >> 1) + uVar1, uVar3 < param_2)) {
    uVar3 = param_2;
  }
  pvVar2 = (void *)FUN_1805bc8b0(param_1);
  memset((void *)((longlong)pvVar2 + uVar5),0,param_2 - uVar5);
  memmove(pvVar2,(void *)*param_1,param_1[1] - *param_1);
  FUN_1805bbe20(param_1,pvVar2,param_2,uVar3);
  return;
}



############ FUN_ 180605430 size=134 ############

void FUN_180605430(void *param_1,ulonglong param_2)

{
  longlong lVar1;
  longlong *plVar2;
  ulonglong _Size;
  undefined4 local_res8 [2];
  undefined4 local_res10 [2];
  
  FUN_1806048c0();
  plVar2 = (longlong *)FUN_180608a30();
  lVar1 = *plVar2;
  while (param_2 != 0) {
    CryptGenRandom(*(HCRYPTPROV *)(lVar1 + 8),4,(BYTE *)local_res8);
    local_res10[0] = local_res8[0];
    _Size = param_2;
    if (4 < param_2) {
      _Size = 4;
    }
    param_2 = param_2 - _Size;
    if (_Size != 0) {
      memcpy(param_1,local_res10,_Size);
      param_1 = (void *)((longlong)param_1 + _Size);
    }
  }
  return;
}



############ FUN_ 180620450 size=31 ############

undefined4 FUN_180620450(undefined4 *param_1)

{
  return *param_1;
}



############ FUN_ 18066b780 size=97 ############

undefined8 * FUN_18066b780(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::sp_counted_impl_p<apache::thrift::transport::TAsioLocalSocket>::vftable
    ;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 1806230a0 size=97 ############

undefined8 * FUN_1806230a0(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::sp_counted_impl_p<apache::thrift::transport::TBufferedTransport>::
              vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 18060c7a0 size=120 ############

longlong * FUN_18060c7a0(longlong *param_1,longlong *param_2)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  longlong *plVar5;
  longlong lVar6;
  
  lVar4 = *param_2;
  if (lVar4 != *param_1) {
    if (lVar4 != 0) {
      LOCK();
      *(int *)(lVar4 + 8) = *(int *)(lVar4 + 8) + 1;
      UNLOCK();
    }
    plVar5 = (longlong *)*param_1;
    if (plVar5 != (longlong *)0x0) {
      LOCK();
      plVar1 = plVar5 + 1;
      lVar6 = *plVar1;
      *(int *)plVar1 = (int)*plVar1 + -1;
      UNLOCK();
      if ((int)lVar6 == 1) {
        (**(code **)(*plVar5 + 8))(plVar5);
        LOCK();
        piVar2 = (int *)((longlong)plVar5 + 0xc);
        iVar3 = *piVar2;
        *piVar2 = *piVar2 + -1;
        UNLOCK();
        if (iVar3 == 1) {
          (**(code **)(*plVar5 + 0x10))(plVar5);
        }
      }
    }
    *param_1 = lVar4;
  }
  return param_1;
}



############ FUN_ 1806233d0 size=768 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x0001806236c9) overlaps instruction at (ram,0x0001806236c6)
    */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x000180623aae) */
/* WARNING: Removing unreachable block (ram,0x00018062345f) */
/* WARNING: Removing unreachable block (ram,0x0001806238a5) */
/* WARNING: Removing unreachable block (ram,0x0001806236c6) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1806233d0(undefined8 *param_1,undefined8 param_2,int param_3,int param_4)

{
  undefined1 *puVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  longlong lVar5;
  int *piVar6;
  int *piVar7;
  ulonglong uVar8;
  undefined1 *puVar9;
  int *piVar10;
  uint uVar11;
  uint uVar12;
  longlong lVar13;
  ulonglong uVar14;
  int unaff_retaddr;
  undefined1 auStack_168 [32];
  undefined8 local_148;
  undefined8 local_140;
  undefined4 local_138;
  int local_130;
  int local_128;
  uint local_124;
  longlong local_120;
  undefined8 *local_118;
  undefined8 local_110;
  undefined1 local_f8 [176];
  ulonglong local_48;
  
  local_110 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_168;
  uVar2 = (uint)&stack0x00000000 & 0x23f;
  iVar4 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  local_124 = (((iVar4 >> 1) - (iVar4 >> 3)) + iVar4 * 0x55555555 >> 0x1e | 0xdea5U) ^ 0xd935;
  local_128 = 0x310;
  local_120 = (longlong)param_4 * (longlong)param_3 * 1000000;
  local_130 = param_4;
  local_118 = param_1;
  FUN_1807227a0(local_f8);
  local_138 = 1;
  uVar2 = (DAT_1806a9c3c + -0x2b6555a9) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c40) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c44) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c48) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c4c) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c50) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c54) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c58) * 0x401;
  local_140 = 0xfbb7faf2bc9a3dd0;
  local_148 = 0x1bc9a3dd0;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c5c) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c60) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c64) * 0x401;
  FUN_1807257a0(local_f8);
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c68) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c6c) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c70) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c74) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + DAT_1806a9c78) * 0x401;
  piVar10 = (int *)&UNK_1806a9c7c;
  do {
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar2 = (_UNK_1806a9c7c + (uVar2 ^ uVar2 >> 6)) * 0x401;
  lVar13 = 7;
  lVar5 = 7;
  do {
    uVar2 = ((uVar2 >> 6 ^ uVar2) + piVar10[1]) * 0x401;
    uVar2 = ((uVar2 >> 6 ^ uVar2) + piVar10[2]) * 0x401;
    piVar10 = piVar10 + 3;
    uVar2 = ((uVar2 >> 6 ^ uVar2) + *piVar10) * 0x401;
    lVar5 = lVar5 + -1;
  } while (lVar5 != 0);
  uVar2 = uVar2 ^ uVar2 >> 6;
  uVar14 = (ulonglong)uVar2;
  uVar11 = uVar2 & 0x5f;
  uVar12 = uVar2 & 0x2bf;
  uVar3 = (uint)piVar10 & 0x33f;
  iVar4 = (uVar12 + 2) * (uVar12 + 1) * uVar12;
  piVar10 = (int *)((longlong)piVar10 +
                   (((longlong)(int)((uVar11 * uVar11 * (uVar11 + 1) * (uVar11 + 1) & 3) + 0x1171) ^
                    0x1115U) -
                   (((longlong)
                     (int)(((uVar3 + 2) * (uVar3 + 1) * uVar3) % 3 |
                          iVar4 + (iVar4 / 3 + (iVar4 >> 0x1f) +
                                  (int)(((longlong)iVar4 / 3 + ((longlong)iVar4 >> 0x3f) &
                                        0xffffffffU) >> 0x1f)) * -3) | 0x69f3U) ^ 0x6993)));
  uVar2 = (*piVar10 + uVar2) * 0x401;
  uVar2 = ((uVar2 >> 6 ^ uVar2) + piVar10[1]) * 0x401;
  piVar10 = piVar10 + 2;
  uVar11 = ((uVar2 >> 6 ^ uVar2) + *piVar10) * 0x401;
  uVar11 = uVar11 ^ uVar11 >> 6;
  uVar3 = (uint)piVar10 & 0xf;
  uVar2 = uVar11 & 0x1f | 0x1e;
  piVar6 = (int *)((((longlong)
                     (int)(((uint)(uVar2 * uVar2 * 0x5e8b == 0xcb0e42d) |
                           uVar3 * uVar3 * (uVar3 + 1) * (uVar3 + 1) & 0x80000003) + 0x1e33) ^
                    0x1e63U) - 0x4c) + (longlong)piVar10);
  uVar2 = (*piVar6 + uVar11) * 0x401;
  do {
    piVar7 = piVar6;
    uVar2 = ((uVar2 >> 6 ^ uVar2) + piVar7[1]) * 0x401;
    uVar2 = ((uVar2 >> 6 ^ uVar2) + piVar7[2]) * 0x401;
    piVar6 = piVar7 + 3;
    uVar2 = ((uVar2 >> 6 ^ uVar2) + *piVar6) * 0x401;
    lVar13 = lVar13 + -1;
  } while (lVar13 != 0);
  uVar2 = ((uVar2 >> 6 ^ uVar2) + piVar7[4]) * 0x401;
  do {
    func_0x000180623bf3(0x4000,piVar6);
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  do {
    func_0x000180624b44(0x4000,piVar6);
    piVar6 = (int *)(~(~(ulonglong)piVar6 + 1) + 1);
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  do {
    func_0x000180623fde(0x4000);
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar2 = (uVar2 ^ uVar2 >> 6) + 0x3dbb2dc2;
  uVar3 = (uVar2 >> 0x17 | uVar2 * 0x200) ^ 0x130dffd1;
  uVar2 = (uint)local_148 & ~uVar3;
  uVar8 = (ulonglong)uVar2;
  uVar2 = ~(uint)local_148 & uVar3 | uVar2;
  if (uVar2 == 0 && (uVar2 & 0x7ffffff) == 0) {
    (**(code **)(*(longlong *)*param_1 + 0x18))();
    lVar5 = (longlong)local_128;
    puVar1 = auStack_168;
    do {
      puVar9 = puVar1;
      *(ulonglong *)(puVar9 + -8) = uVar14;
      *(int **)(puVar9 + -0x10) = piVar10;
      *(ulonglong *)(puVar9 + -0x18) = uVar8;
      lVar13 = -lVar5;
      uVar8 = *(ulonglong *)(puVar9 + lVar13 + 0x2f8);
      piVar10 = *(int **)(puVar9 + lVar13 + 0x300);
      uVar14 = *(ulonglong *)(puVar9 + lVar13 + 0x308);
      uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar2 < 0) {
        uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
      }
      puVar1 = puVar9 + lVar13 + 0x310;
    } while (uVar2 != 0);
    *(undefined8 *)(puVar9 + lVar13 + 0x308) = 0x180623c5b;
    FUN_180723060(puVar9 + lVar13 + 0x380);
    *(undefined8 *)(puVar9 + lVar13 + 0x308) = 0x180623c64;
    FUN_1805a4e80(param_1);
    *(undefined **)(puVar9 + lVar13 + 0x308) = &UNK_180623c74;
  }
  (**(code **)(*(longlong *)*param_1 + 0x18))();
  thunk_FUN_1805a9280((longlong)(int)local_124,thunk_FUN_1805a9280,&LAB_180623ba2_1);
  return;
}



############ FUN_ 18066b470 size=97 ############

undefined8 * FUN_18066b470(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::
              sp_counted_impl_p<pace::eden::thrift::authorize::AuthorizationFullClient>::vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 180623170 size=185 ############

undefined8 *
FUN_180623170(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong *plVar4;
  longlong lVar5;
  undefined8 local_20;
  longlong local_18;
  
  local_20 = *param_2;
  local_18 = param_2[1];
  if (local_18 != 0) {
    LOCK();
    *(int *)(local_18 + 8) = *(int *)(local_18 + 8) + 1;
    UNLOCK();
  }
  FUN_180623230(param_1,&local_20,param_3,param_4,0xfffffffffffffffe);
  *param_1 = apache::thrift::transport::TBufferedTransport::vftable;
  param_1[1] = param_1[8];
  param_1[2] = param_1[8];
  param_1[3] = param_1[9];
  param_1[4] = (ulonglong)*(uint *)((longlong)param_1 + 0x3c) + param_1[9];
  plVar4 = (longlong *)param_2[1];
  if (plVar4 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar4 + 1;
    lVar5 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar5 == 1) {
      (**(code **)(*plVar4 + 8))(plVar4);
      LOCK();
      piVar2 = (int *)((longlong)plVar4 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar4 + 0x10))(plVar4);
      }
    }
  }
  return param_1;
}



############ FUN_ 18092b460 size=437 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18092b460(longlong param_1,int param_2)

{
  basic_ostream<char,std::char_traits<char>_> *this;
  basic_ostream<char,struct_std::char_traits<char>_> *pbVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  void *_Memory;
  undefined1 auStack_168 [32];
  undefined4 local_148;
  undefined8 local_140;
  undefined ***local_138;
  int iStack_12c;
  undefined *local_128;
  undefined **local_120;
  basic_ostream<char,std::char_traits<char>_> local_118 [96];
  undefined8 local_b8;
  undefined4 local_b0;
  basic_ios<char,std::char_traits<char>_> local_a0 [104];
  void *local_38 [3];
  ulonglong local_20;
  ulonglong local_18;
  
  local_140 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_168;
  local_148 = 0;
  if (param_2 < 0) {
    local_128 = &DAT_181bb3cc0;
    std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>(local_a0);
    local_148 = 1;
    std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
              ((basic_ostream<char,std::char_traits<char>_> *)&local_128,
               (basic_streambuf<char,std::char_traits<char>_> *)&local_120,false);
    *(undefined ***)((longlong)&local_128 + (longlong)*(int *)(local_128 + 4)) =
         std::basic_ostringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable;
    *(int *)((longlong)&iStack_12c + (longlong)*(int *)(local_128 + 4)) =
         *(int *)(local_128 + 4) + -0x88;
    local_138 = &local_120;
    std::basic_streambuf<char,std::char_traits<char>_>::
    basic_streambuf<char,std::char_traits<char>_>
              ((basic_streambuf<char,std::char_traits<char>_> *)&local_120);
    local_120 = std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char>_>::vftable;
    local_b8 = 0;
    local_b0 = 4;
    this = (basic_ostream<char,std::char_traits<char>_> *)
           FUN_1805a0df0(&local_128,"TAsioLocalSocket::setConnTimeout with negative input: ");
    pbVar1 = std::basic_ostream<char,std::char_traits<char>_>::operator<<(this,param_2);
    FUN_1805a0df0(pbVar1,&DAT_181be4944);
    puVar2 = (undefined8 *)FUN_180721f10(&local_128,local_38);
    if (0xf < (ulonglong)puVar2[3]) {
      puVar2 = (undefined8 *)*puVar2;
    }
    puVar3 = (undefined8 *)FUN_180721370();
    (*(code *)*puVar3)(puVar2);
    if (0xf < local_20) {
      _Memory = local_38[0];
      if ((0xfff < local_20 + 1) &&
         (((((ulonglong)local_38[0] & 0x1f) != 0 ||
           (_Memory = *(void **)((longlong)local_38[0] + -8), local_38[0] <= _Memory)) ||
          (0x1f < (ulonglong)((longlong)local_38[0] + (-8 - (longlong)_Memory)))))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
    *(undefined ***)((longlong)&local_128 + (longlong)*(int *)(local_128 + 4)) =
         std::basic_ostringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable;
    *(int *)((longlong)&iStack_12c + (longlong)*(int *)(local_128 + 4)) =
         *(int *)(local_128 + 4) + -0x88;
    FUN_1805d0340(&local_120);
    std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
              (local_118);
    std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>(local_a0)
    ;
  }
  else {
    *(int *)(param_1 + 0x28) = param_2;
  }
}



############ FUN_ 180927880 size=191 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180927880(undefined8 *param_1,undefined8 param_2)

{
  undefined1 auStack_48 [32];
  undefined8 local_28;
  undefined8 *local_20;
  undefined8 local_18;
  ulonglong local_10;
  
  local_28 = 0xfffffffffffffffe;
  local_10 = DAT_182615970 ^ (ulonglong)auStack_48;
  *param_1 = apache::thrift::transport::TAsioLocalSocket::vftable;
  local_20 = param_1;
  local_18 = param_2;
  FUN_1805a4070(param_1 + 1);
  param_1[5] = 0;
  *(undefined4 *)(param_1 + 6) = 0;
  *(undefined1 *)((longlong)param_1 + 0x34) = 1;
  *(undefined4 *)(param_1 + 7) = 0;
  *(undefined1 *)((longlong)param_1 + 0x3c) = 1;
  *(undefined4 *)(param_1 + 8) = 5;
  param_1[9] = 0;
  param_1[10] = 0;
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 0;
  FUN_18097edd0(param_1 + 0x13,FUN_18097ef40);
  FUN_180485450(param_2);
}



############ FUN_ 180674ad0 size=549 ############

longlong * FUN_180674ad0(longlong *param_1,longlong *param_2,int param_3)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  longlong *plVar5;
  longlong lVar6;
  longlong *plVar7;
  
  if (param_3 != 0) {
    *param_1 = (longlong)&DAT_181bbdec8;
    param_1[0xb] = (longlong)&DAT_181bbded8;
    param_1[8] = (longlong)pace::eden::thrift::authorize::AuthorizationLiteIf::vftable;
    param_1[10] = (longlong)pace::eden::thrift::authorize::AuthorizationFullIf::vftable;
    *(undefined ***)((longlong)*(int *)(param_1[0xb] + 4) + 0x58 + (longlong)param_1) =
         pace::eden::thrift::authorize::AuthorizationFullIf::vftable;
  }
  lVar4 = *param_2;
  plVar5 = (longlong *)param_2[1];
  if (plVar5 != (longlong *)0x0) {
    LOCK();
    *(int *)(plVar5 + 1) = (int)plVar5[1] + 1;
    UNLOCK();
  }
  lVar6 = *param_2;
  plVar7 = (longlong *)param_2[1];
  if (plVar7 != (longlong *)0x0) {
    LOCK();
    *(int *)(plVar7 + 1) = (int)plVar7[1] + 1;
    UNLOCK();
  }
  *(undefined ***)((longlong)*(int *)(*param_1 + 4) + (longlong)param_1) =
       pace::eden::thrift::authorize::AuthorizationLiteClient::vftable;
  *(int *)((longlong)*(int *)(*param_1 + 4) + -4 + (longlong)param_1) =
       *(int *)(*param_1 + 4) + -0x40;
  param_1[1] = lVar6;
  param_1[2] = (longlong)plVar7;
  if (plVar7 != (longlong *)0x0) {
    LOCK();
    *(int *)(plVar7 + 1) = (int)plVar7[1] + 1;
    UNLOCK();
  }
  param_1[3] = lVar4;
  param_1[4] = (longlong)plVar5;
  if (plVar5 != (longlong *)0x0) {
    LOCK();
    *(int *)(plVar5 + 1) = (int)plVar5[1] + 1;
    UNLOCK();
  }
  param_1[5] = lVar6;
  param_1[6] = lVar4;
  if (plVar7 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar7 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plVar7 + 8))(plVar7);
      LOCK();
      piVar2 = (int *)((longlong)plVar7 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar7 + 0x10))();
      }
    }
  }
  if (plVar5 != (longlong *)0x0) {
    LOCK();
    plVar7 = plVar5 + 1;
    lVar4 = *plVar7;
    *(int *)plVar7 = (int)*plVar7 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plVar5 + 8))(plVar5);
      LOCK();
      piVar2 = (int *)((longlong)plVar5 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar5 + 0x10))();
      }
    }
  }
  *(undefined ***)((longlong)*(int *)(*param_1 + 4) + (longlong)param_1) =
       pace::eden::thrift::authorize::AuthorizationFullClient::vftable;
  *(undefined ***)((longlong)*(int *)(*param_1 + 8) + (longlong)param_1) =
       pace::eden::thrift::authorize::AuthorizationFullClient::vftable;
  *(int *)((longlong)*(int *)(*param_1 + 4) + -4 + (longlong)param_1) =
       *(int *)(*param_1 + 4) + -0x40;
  *(int *)((longlong)*(int *)(*param_1 + 8) + -4 + (longlong)param_1) =
       *(int *)(*param_1 + 8) + -0x50;
  plVar5 = (longlong *)param_2[1];
  if (plVar5 != (longlong *)0x0) {
    LOCK();
    plVar7 = plVar5 + 1;
    lVar4 = *plVar7;
    *(int *)plVar7 = (int)*plVar7 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plVar5 + 8))(plVar5);
      LOCK();
      piVar2 = (int *)((longlong)plVar5 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar5 + 0x10))(plVar5);
      }
    }
  }
  return param_1;
}



############ FUN_ 1806acfc0 size=1156 ############

/* WARNING: Removing unreachable block (ram,0x0001806ad022) */
/* WARNING: Removing unreachable block (ram,0x0001806ad032) */

undefined * FUN_1806acfc0(void)

{
  undefined *puVar1;
  int iVar2;
  longlong lVar3;
  uint uVar4;
  undefined1 auStack_a8 [56];
  uint local_70;
  undefined1 *local_68;
  uint local_5c;
  undefined1 *local_58;
  undefined8 local_50;
  ulonglong local_30;
  
  local_50 = 0xfffffffffffffffe;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_a8;
  uVar4 = (uint)&stack0x00000000 & 0x1ff;
  iVar2 = (uVar4 + 2) * (uVar4 + 1) * uVar4;
  local_70 = (((iVar2 >> 1) - (iVar2 >> 3)) + iVar2 * 0x55555555 >> 0x1e) + 0x5b08U ^ 0x5798;
  uVar4 = (uint)&stack0x00000000 & 0xbff;
  uVar4 = (uVar4 * uVar4 * 0x10 + 4) % 0x13 | 0x1fb6f6b4;
  local_5c = ((int)(-uVar4 | uVar4) >> 0x1f) * -0xd37e ^ 0xdaee;
  local_68 = (undefined1 *)FUN_1811316e0(0x20);
  puVar1 = PTR_s_____pipe_com_paceap_eden_license_18260be90;
  if (local_68 != (undefined1 *)0x0) {
    *(undefined8 *)(local_68 + 0x10) = 0;
    *(undefined8 *)(local_68 + 0x18) = 0xf;
    *local_68 = 0;
    lVar3 = -1;
    do {
      lVar3 = lVar3 + 1;
    } while (puVar1[lVar3] != '\0');
    local_58 = local_68;
    FUN_1805a6cb0(local_68);
  }
  return &DAT_1807e9958;
}



############ FUN_ 18079ee40 size=641 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18079ee40(longlong param_1,longlong *param_2)

{
  void *pvVar1;
  void *_Memory;
  uint uVar2;
  ulonglong uVar3;
  undefined1 auStack_98 [32];
  short local_78 [2];
  uint local_74;
  uint local_70;
  int local_6c;
  undefined1 local_68 [4];
  undefined1 local_64 [4];
  undefined8 local_60;
  undefined1 local_58;
  undefined7 uStack_57;
  undefined8 local_48;
  ulonglong local_40;
  ulonglong local_38;
  
  local_60 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_98;
  local_48 = 0;
  local_40 = 0xf;
  local_58 = 0;
  (**(code **)(*param_2 + 0xc0))(param_2,&local_58);
  (**(code **)(*param_2 + 0xd0))(param_2,&local_58,&local_6c,local_78);
  do {
    if (local_6c == 0) {
      (**(code **)(*param_2 + 200))(param_2);
      if (local_40 < 0x10) {
      }
      pvVar1 = (void *)CONCAT71(uStack_57,local_58);
      _Memory = pvVar1;
      if ((0xfff < local_40 + 1) &&
         (_Memory = *(void **)((longlong)pvVar1 + -8),
         0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
    if (local_78[0] == 1) {
      if (local_6c != 8) goto LAB_18079f02d;
      (**(code **)(*param_2 + 0x128))(param_2,param_1 + 8);
      *(undefined1 *)(param_1 + 100) = 1;
    }
    else if (local_78[0] == 10) {
      if (local_6c != 0xf) goto LAB_18079f02d;
      *(undefined8 *)(param_1 + 0x18) = *(undefined8 *)(param_1 + 0x10);
      (**(code **)(*param_2 + 0xf0))(param_2,local_64,&local_70);
      FUN_1805b1330(param_1 + 0x10,local_70,param_1 + 0x10);
      uVar3 = 0;
      if (local_70 != 0) {
        do {
          (**(code **)(*param_2 + 0x118))(param_2,uVar3 + *(longlong *)(param_1 + 0x10));
          uVar2 = (int)uVar3 + 1;
          uVar3 = (ulonglong)uVar2;
        } while (uVar2 < local_70);
      }
      (**(code **)(*param_2 + 0xf8))(param_2);
      *(undefined1 *)(param_1 + 0x65) = 1;
    }
    else if (local_78[0] == 0xb) {
      if (local_6c != 0xf) goto LAB_18079f02d;
      *(undefined8 *)(param_1 + 0x30) = *(undefined8 *)(param_1 + 0x28);
      (**(code **)(*param_2 + 0xf0))(param_2,local_68,&local_74);
      FUN_1805b1330(param_1 + 0x28,local_74,param_1 + 0x28);
      uVar3 = 0;
      if (local_74 != 0) {
        do {
          (**(code **)(*param_2 + 0x118))(param_2,uVar3 + *(longlong *)(param_1 + 0x28));
          uVar2 = (int)uVar3 + 1;
          uVar3 = (ulonglong)uVar2;
        } while (uVar2 < local_74);
      }
      (**(code **)(*param_2 + 0xf8))(param_2);
      *(undefined1 *)(param_1 + 0x66) = 1;
    }
    else if (local_78[0] == 0x14) {
      if (local_6c != 0xb) goto LAB_18079f02d;
      (**(code **)(*param_2 + 0x140))(param_2,param_1 + 0x40);
      *(undefined1 *)(param_1 + 0x67) = 1;
    }
    else if ((local_78[0] == 10000) && (local_6c == 8)) {
      (**(code **)(*param_2 + 0x128))(param_2,param_1 + 0x60);
      *(undefined1 *)(param_1 + 0x68) = 1;
    }
    else {
LAB_18079f02d:
      FUN_1806d8eb0(param_2);
    }
    (**(code **)(*param_2 + 0xd8))(param_2);
    (**(code **)(*param_2 + 0xd0))(param_2,&local_58,&local_6c,local_78);
  } while( true );
}



############ FUN_ 1805c0310 size=32 ############

void FUN_1805c0310(void)

{
  undefined8 uVar1;
  undefined1 local_20 [32];
  
  uVar1 = FUN_1805b6890(local_20);
                    /* WARNING: Subroutine does not return */
  FUN_1805b3e20(uVar1);
}



############ FUN_ 1805c02b0 size=32 ############

void FUN_1805c02b0(void)

{
  undefined8 uVar1;
  undefined1 local_20 [32];
  
  uVar1 = FUN_1805b6610(local_20);
                    /* WARNING: Subroutine does not return */
  FUN_1805b3da0(uVar1);
}



############ FUN_ 1805b6990 size=348 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805b6990(int *param_1,short param_2,ushort param_3,ushort param_4)

{
  short sVar1;
  char cVar2;
  undefined8 uVar3;
  ushort uVar4;
  undefined1 auStack_78 [32];
  undefined8 local_58;
  undefined1 local_50 [24];
  undefined1 local_38 [32];
  ulonglong local_18;
  
  local_58 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_78;
  sVar1 = (short)((int)(0xe - (uint)param_3) / 0xc);
  uVar4 = (param_2 - sVar1) + 0x12c0;
  *param_1 = (param_4 - 0x7d2d) +
             ((uVar4 / 400 + ((uint)(ushort)(sVar1 * 0xc + (param_3 - 3)) * 0x99 + 2) / 5) -
             uVar4 / 100) + (uint)uVar4 * 0x16d + (uint)(uVar4 >> 2);
  if (param_3 == 2) {
    cVar2 = FUN_1805c00e0(param_2);
    uVar4 = 0x1c;
    if (cVar2 != '\0') {
      uVar4 = 0x1d;
    }
  }
  else if ((param_3 < 0xc) && ((0xa50U >> (param_3 & 0x1f) & 1) != 0)) {
    uVar4 = 0x1e;
  }
  else {
    uVar4 = 0x1f;
  }
  if (param_4 <= uVar4) {
  }
  uVar3 = FUN_1805a4160(local_38,"Day of month is not valid for year");
  uVar3 = FUN_1805b65b0(local_50,uVar3);
                    /* WARNING: Subroutine does not return */
  FUN_1805b3da0(uVar3);
}



############ FUN_ 1805c02e0 size=32 ############

void FUN_1805c02e0(void)

{
  undefined8 uVar1;
  undefined1 local_20 [32];
  
  uVar1 = FUN_1805b6750(local_20);
                    /* WARNING: Subroutine does not return */
  FUN_1805b3de0(uVar1);
}



############ FUN_ 180739500 size=792 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x000180739616) */
/* WARNING: Removing unreachable block (ram,0x0001807397ea) */

void FUN_180739500(undefined8 *param_1)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  int unaff_retaddr;
  undefined1 auStack_a8 [32];
  undefined4 local_88;
  undefined8 local_80;
  undefined8 local_78;
  undefined4 local_6c;
  undefined8 local_68;
  uint local_60;
  undefined8 *local_58;
  ulonglong local_38;
  
  local_38 = DAT_182615970 ^ (ulonglong)auStack_a8;
  *param_1 = pace::Signer::vftable;
  uVar3 = (uint)&stack0x00000000 & 0x53ff;
  uVar1 = (uint)&stack0x00000000 & 0x17f;
  iVar2 = (uVar1 + 2) * (uVar1 + 1) * uVar1;
  uVar1 = (uVar3 * uVar3 + 1) % 7 <<
          ((byte)(((iVar2 >> 1) - (iVar2 >> 3)) + iVar2 * 0x55555555 >> 0x1e) & 0x1f);
  local_60 = ((int)(-uVar1 | uVar1) >> 0x1f) * -0xd8c1 ^ 0xd5c1;
  local_6c = 0x290;
  local_80 = 0x1801c0c80;
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  local_88 = 0xb5;
  local_68 = 0x57f78cf30b40a574;
  local_78 = 0x10b40a574;
  local_58 = param_1;
  FUN_18073981f();
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}



############ FUN_ 1807b5ca0 size=593 ############

int FUN_1807b5ca0(longlong param_1,longlong *param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  undefined1 *puVar21;
  
  iVar1 = (**(code **)(*param_2 + 0x18))(param_2,"OpenQuicklyEncryptedChannelInput");
  iVar2 = (**(code **)(*param_2 + 0x28))(param_2,"client_EphemeralPublicKeyY",0xf);
  iVar3 = (**(code **)(*param_2 + 0x50))
                    (param_2,3,*(longlong *)(param_1 + 0x10) - *(longlong *)(param_1 + 8));
  puVar21 = *(undefined1 **)(param_1 + 8);
  iVar3 = iVar1 + iVar2 + iVar3;
  if (puVar21 != *(undefined1 **)(param_1 + 0x10)) {
    do {
      iVar1 = (**(code **)(*param_2 + 0x78))(param_2,*puVar21);
      iVar3 = iVar3 + iVar1;
      puVar21 = puVar21 + 1;
    } while (puVar21 != *(undefined1 **)(param_1 + 0x10));
  }
  iVar1 = (**(code **)(*param_2 + 0x58))(param_2);
  iVar2 = (**(code **)(*param_2 + 0x30))(param_2);
  iVar4 = (**(code **)(*param_2 + 0x28))(param_2,"client_EphemeralPublicKeyX",0xf);
  iVar5 = (**(code **)(*param_2 + 0x50))
                    (param_2,3,*(longlong *)(param_1 + 0x28) - *(longlong *)(param_1 + 0x20));
  puVar21 = *(undefined1 **)(param_1 + 0x20);
  iVar5 = iVar3 + iVar1 + iVar2 + iVar4 + iVar5;
  if (puVar21 != *(undefined1 **)(param_1 + 0x28)) {
    do {
      iVar1 = (**(code **)(*param_2 + 0x78))(param_2,*puVar21);
      iVar5 = iVar5 + iVar1;
      puVar21 = puVar21 + 1;
    } while (puVar21 != *(undefined1 **)(param_1 + 0x28));
  }
  iVar1 = (**(code **)(*param_2 + 0x58))(param_2);
  iVar2 = (**(code **)(*param_2 + 0x30))(param_2);
  iVar3 = (**(code **)(*param_2 + 0x28))(param_2,&DAT_181bda43c,10);
  iVar4 = (**(code **)(*param_2 + 0x90))(param_2,*(undefined8 *)(param_1 + 0x38));
  iVar6 = (**(code **)(*param_2 + 0x30))(param_2);
  iVar7 = (**(code **)(*param_2 + 0x28))(param_2,"client_CallTime",0xb);
  iVar8 = (**(code **)(*param_2 + 0xa0))(param_2,param_1 + 0x40);
  iVar9 = (**(code **)(*param_2 + 0x30))(param_2);
  iVar10 = (**(code **)(*param_2 + 0x28))(param_2,"encryptionAlgorithmId",8);
  iVar11 = (**(code **)(*param_2 + 0x88))(param_2,*(undefined4 *)(param_1 + 0x60));
  iVar12 = (**(code **)(*param_2 + 0x30))(param_2);
  iVar13 = (**(code **)(*param_2 + 0x28))(param_2,"pkStandardId",8);
  iVar14 = (**(code **)(*param_2 + 0x88))(param_2,*(undefined4 *)(param_1 + 100));
  iVar15 = (**(code **)(*param_2 + 0x30))(param_2);
  iVar16 = (**(code **)(*param_2 + 0x28))(param_2,"hashId",8);
  iVar17 = (**(code **)(*param_2 + 0x88))(param_2,*(undefined4 *)(param_1 + 0x68));
  iVar18 = (**(code **)(*param_2 + 0x30))(param_2);
  iVar19 = (**(code **)(*param_2 + 0x38))(param_2);
  iVar20 = (**(code **)(*param_2 + 0x20))(param_2);
  return iVar20 + iVar5 + iVar1 + iVar2 + iVar3 + iVar4 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10 +
                  iVar11 + iVar12 + iVar13 + iVar14 + iVar15 + iVar16 + iVar17 + iVar18 + iVar19;
}



############ FUN_ 1805b6d40 size=109 ############

undefined8 * FUN_1805b6d40(undefined8 *param_1,int param_2)

{
  if (param_2 != 0) {
    if (param_2 == 1) {
      *param_1 = 0x8000000000000000;
      return param_1;
    }
    if (param_2 == 2) {
      *param_1 = 0x7fffffffffffffff;
      return param_1;
    }
    if (param_2 == 3) {
      *param_1 = 0x8000000000000001;
      return param_1;
    }
    if (param_2 == 4) {
      *param_1 = 0x7ffffffffffffffd;
      return param_1;
    }
  }
  *param_1 = 0x7ffffffffffffffe;
  return param_1;
}



############ FUN_ 18073c3a0 size=767 ############

/* WARNING: Removing unreachable block (ram,0x00018073c43e) */
/* WARNING: Removing unreachable block (ram,0x00018073c420) */
/* WARNING: Removing unreachable block (ram,0x00018073c507) */
/* WARNING: Removing unreachable block (ram,0x00018073c4ee) */

void FUN_18073c3a0(undefined8 param_1,undefined8 param_2)

{
  uint uVar1;
  int iVar2;
  undefined1 auStack_108 [36];
  undefined4 local_e4;
  undefined4 local_e0;
  undefined1 local_dc [52];
  uint local_a8;
  undefined4 local_98;
  undefined8 local_90;
  undefined8 local_78;
  undefined8 local_68;
  ulonglong local_48;
  
  local_68 = 0xfffffffffffffffe;
  local_48 = DAT_182615970 ^ (ulonglong)auStack_108;
  uVar1 = (uint)&stack0x00000000 & 0x27f;
  iVar2 = (uVar1 + 2) * (uVar1 + 1) * uVar1;
  local_a8 = (((iVar2 >> 1) - (iVar2 >> 3)) + iVar2 * 0x55555555 >> 0x1e | 0xf031U) ^ 0xf1f1;
  local_98 = 0x630;
  local_90 = param_1;
  local_78 = param_2;
  local_e0 = FUN_180706f70(0,param_1,0,local_dc);
  local_e4 = 0x811c9e07;
  (*(code *)&LAB_1807793b4)();
  return;
}



############ FUN_ 18073ec16 size=319 ############

void FUN_18073ec16(void)

{
  return;
}



############ FUN_ 180661bf1 size=361 ############

longlong FUN_180661bf1(void)

{
  ulonglong in_RAX;
  
  return -((in_RAX ^ 0xffffffffffffffff) + 1);
}



############ FUN_ 1805b1d90 size=174 ############

undefined8 *
FUN_1805b1d90(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[8] = &DAT_181bb3240;
  param_1[10] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805b4520();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<std::runtime_error>_>::vftable;
  param_1[3] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<std::runtime_error>_>::
               vftable;
  *(undefined ***)((longlong)*(int *)(param_1[8] + 4) + 0x40 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<std::runtime_error>_>::vftable;
  *(int *)((longlong)*(int *)(param_1[8] + 4) + 0x3c + (longlong)param_1) =
       *(int *)(param_1[8] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x18;
  }
  FUN_1805a7b20(param_1 + 3,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805b2020 size=95 ############

undefined8 * FUN_1805b2020(undefined8 *param_1,longlong param_2)

{
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  *(undefined4 *)(param_1 + 7) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<std::runtime_error>::vftable;
  param_1[3] = boost::exception_detail::error_info_injector<std::runtime_error>::vftable;
  return param_1;
}



############ FUN_ 1805b2c40 size=1521 ############

void FUN_1805b2c40(undefined8 *param_1,ulonglong param_2,undefined8 *param_3,
                  basic_streambuf<char,std::char_traits<char>_> *param_4,undefined8 param_5)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  ulonglong uVar5;
  char *pcVar6;
  bool bVar7;
  longlong lVar8;
  char cVar9;
  char cVar10;
  undefined8 *puVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  ulonglong uVar14;
  ulonglong uVar15;
  byte local_res18;
  basic_streambuf<char,std::char_traits<char>_> *local_158;
  undefined8 local_150;
  undefined *local_148 [2];
  basic_ios<char,std::char_traits<char>_> local_138 [8];
  uint auStack_130 [4];
  ulonglong auStack_120 [6];
  undefined1 auStack_f0 [24];
  longlong local_d8;
  basic_streambuf<char,std::char_traits<char>_> *local_c8;
  undefined8 local_c0;
  undefined *local_b8 [2];
  basic_ios<char,std::char_traits<char>_> local_a8 [24];
  undefined8 auStack_90 [6];
  undefined1 auStack_60 [24];
  undefined8 local_48;
  
  local_48 = 0xfffffffffffffffe;
  local_148[0] = &DAT_181bb0108;
  std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>(local_138);
  local_158 = param_4;
  FUN_1805a0a80(&local_150,param_4,param_2 & 0xff);
  FUN_1805ae620(&local_158,param_4);
  std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_148,local_158,false);
  *(undefined ***)((longlong)local_148 + (longlong)*(int *)(local_148[0] + 4)) =
       boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable
  ;
  *(int *)((longlong)local_148 + (longlong)*(int *)(local_148[0] + 4) + -4) =
       *(int *)(local_148[0] + 4) + -0x10;
  local_d8 = param_2 + 0x48;
  FUN_1805a6ba0(local_d8,(longlong)local_148 + (longlong)*(int *)(local_148[0] + 4),param_5);
  uVar4 = *(uint *)((longlong)auStack_130 + (longlong)*(int *)(local_148[0] + 4));
  uVar5 = *(ulonglong *)((longlong)auStack_120 + (longlong)*(int *)(local_148[0] + 4));
  if (((uVar4 >> 8 & 1) == 0) || (uVar5 == 0)) {
    bVar7 = false;
  }
  else {
    bVar7 = true;
  }
  param_3[2] = 0;
  puVar11 = param_3;
  if (0xf < (ulonglong)param_3[3]) {
    puVar11 = (undefined8 *)*param_3;
  }
  *(undefined1 *)puVar11 = 0;
  if (bVar7) {
    puVar11 = param_1;
    if (0xf < (ulonglong)param_1[3]) {
      puVar11 = (undefined8 *)*param_1;
    }
    FUN_1805b0d80(local_148,puVar11,param_1[2]);
    pcVar6 = (char *)**(undefined8 **)(param_4 + 0x20);
    uVar14 = (longlong)**(undefined8 **)(param_4 + 0x40) - (longlong)pcVar6;
    bVar7 = false;
    local_res18 = 0;
    if (((*(byte *)(param_2 + 0x88) & 2) != 0) &&
       (((char *)**(undefined8 **)(param_4 + 0x40) == pcVar6 ||
        ((cVar10 = std::basic_ios<char,std::char_traits<char>_>::widen
                             ((basic_ios<char,std::char_traits<char>_> *)
                              ((longlong)local_148 + (longlong)*(int *)(local_148[0] + 4)),'+'),
         *pcVar6 != cVar10 &&
         (cVar10 = std::basic_ios<char,std::char_traits<char>_>::widen
                             ((basic_ios<char,std::char_traits<char>_> *)
                              ((longlong)local_148 + (longlong)*(int *)(local_148[0] + 4)),'-'),
         *pcVar6 != cVar10)))))) {
      bVar7 = true;
      local_res18 = 1;
    }
    if (((uVar14 != uVar5) || (*(longlong *)(param_2 + 0x80) < (longlong)uVar5)) || (bVar7)) {
      FUN_1805a6cb0(param_3,pcVar6,uVar14);
      FUN_1805a73e0(param_4);
      local_b8[0] = &DAT_181bb0108;
      std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>
                (local_a8);
      local_c8 = param_4;
      FUN_1805a0a80(&local_c0,param_4,param_2 & 0xff);
      FUN_1805ae620(&local_c8,param_4);
      std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_b8,local_c8,false);
      *(undefined ***)
       ((basic_ostream<char,std::char_traits<char>_> *)local_b8 + *(int *)(local_b8[0] + 4)) =
           boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::
           vftable;
      *(int *)((longlong)local_b8 + (longlong)*(int *)(local_b8[0] + 4) + -4) =
           *(int *)(local_b8[0] + 4) + -0x10;
      FUN_1805a6ba0(local_d8,(basic_ostream<char,std::char_traits<char>_> *)local_b8 +
                             *(int *)(local_b8[0] + 4),param_5);
      *(undefined8 *)((longlong)auStack_90 + (longlong)*(int *)(local_b8[0] + 4)) = 0;
      if (bVar7) {
        FUN_1805a0c30((basic_ostream<char,std::char_traits<char>_> *)local_b8,0x20);
      }
      puVar11 = param_1 + 2;
      if (0xf < (ulonglong)param_1[3]) {
        param_1 = (undefined8 *)*param_1;
      }
      FUN_1805b0d80((basic_ostream<char,std::char_traits<char>_> *)local_b8,param_1,*puVar11);
      if ((**(longlong **)(param_4 + 0x40) == **(longlong **)(param_4 + 0x20)) &&
         ((*(byte *)(param_2 + 0x88) & 2) != 0)) {
        local_res18 = 1;
        FUN_1805a0c30((basic_ostream<char,std::char_traits<char>_> *)local_b8,0x20);
      }
      lVar8 = **(longlong **)(param_4 + 0x20);
      uVar13 = *(ulonglong *)(param_2 + 0x80);
      if ((ulonglong)(**(longlong **)(param_4 + 0x40) - lVar8) < *(ulonglong *)(param_2 + 0x80)) {
        uVar13 = **(longlong **)(param_4 + 0x40) - lVar8;
      }
      if (uVar13 < uVar5) {
        uVar14 = uVar14 + (local_res18 != 0);
        if (uVar13 < uVar14) {
          uVar14 = uVar13;
        }
        uVar15 = (ulonglong)local_res18;
        uVar12 = uVar15;
        if (uVar15 < uVar14) {
          do {
            puVar11 = param_3;
            if (0xf < (ulonglong)param_3[3]) {
              puVar11 = (undefined8 *)*param_3;
            }
          } while ((*(char *)(uVar12 + lVar8) ==
                    *(char *)((longlong)puVar11 + (uVar12 - (local_res18 != 0)))) &&
                  (uVar12 = uVar12 + 1, uVar12 < uVar14));
        }
        if (uVar13 <= uVar12) {
          uVar12 = uVar15;
        }
        FUN_1805a6cb0(param_3,lVar8,uVar12);
        FUN_1805a6b10(param_3,uVar5 - uVar13,auStack_60[*(int *)(local_b8[0] + 4)]);
        FUN_1805a6a80(param_3,uVar12 + lVar8,uVar13 - uVar12);
      }
      else {
        FUN_1805a6cb0(param_3,lVar8,uVar13);
      }
      std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_a8);
      if (local_c0 != (longlong *)0x0) {
        LOCK();
        plVar1 = local_c0 + 1;
        lVar8 = *plVar1;
        *(int *)plVar1 = (int)*plVar1 + -1;
        UNLOCK();
        if ((int)lVar8 == 1) {
          (**(code **)(*local_c0 + 8))(local_c0);
          LOCK();
          piVar2 = (int *)((longlong)local_c0 + 0xc);
          iVar3 = *piVar2;
          *piVar2 = *piVar2 + -1;
          UNLOCK();
          if (iVar3 == 1) {
            (**(code **)(*local_c0 + 0x10))(local_c0);
          }
        }
      }
      std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>
                (local_a8);
    }
    else {
      FUN_1805a6cb0(param_3,pcVar6,uVar14);
    }
  }
  else {
    if (0 < (longlong)uVar5) {
      *(undefined8 *)((longlong)auStack_120 + (longlong)*(int *)(local_148[0] + 4)) = 0;
    }
    puVar11 = param_1 + 2;
    if (0xf < (ulonglong)param_1[3]) {
      param_1 = (undefined8 *)*param_1;
    }
    FUN_1805b0d80(local_148,param_1,*puVar11);
    pcVar6 = (char *)**(undefined8 **)(param_4 + 0x20);
    cVar10 = '\0';
    if (((*(byte *)(param_2 + 0x88) & 2) != 0) &&
       (((char *)**(undefined8 **)(param_4 + 0x40) == pcVar6 ||
        ((cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                            ((basic_ios<char,std::char_traits<char>_> *)
                             ((longlong)local_148 + (longlong)*(int *)(local_148[0] + 4)),'+'),
         *pcVar6 != cVar9 &&
         (cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                            ((basic_ios<char,std::char_traits<char>_> *)
                             ((longlong)local_148 + (longlong)*(int *)(local_148[0] + 4)),'-'),
         *pcVar6 != cVar9)))))) {
      cVar10 = std::basic_ios<char,std::char_traits<char>_>::widen
                         ((basic_ios<char,std::char_traits<char>_> *)
                          ((longlong)local_148 + (longlong)*(int *)(local_148[0] + 4)),' ');
    }
    uVar14 = *(longlong *)(param_2 + 0x80) - (ulonglong)(cVar10 != '\0');
    if ((ulonglong)(**(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20)) < uVar14) {
      uVar14 = **(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20);
    }
    FUN_1805a2b40(param_3,pcVar6,uVar14,uVar5,auStack_f0[*(int *)(local_148[0] + 4)],uVar4,cVar10,
                  (byte)(*(uint *)(param_2 + 0x88) >> 2) & 1);
  }
  FUN_1805a73e0(param_4);
  std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_138);
  if (local_150 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_150 + 1;
    lVar8 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar8 == 1) {
      (**(code **)(*local_150 + 8))(local_150);
      LOCK();
      piVar2 = (int *)((longlong)local_150 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_150 + 0x10))(local_150);
      }
    }
  }
  std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>(local_138);
  return;
}



############ FUN_ 18063f370 size=447 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_18063f370(longlong param_1,ulonglong param_2,undefined2 param_3,undefined8 param_4,
                  undefined8 *param_5)

{
  uint uVar1;
  longlong lVar2;
  char *pcVar3;
  undefined8 uVar4;
  void *_Memory;
  ulonglong _Size;
  ulonglong uVar5;
  undefined1 auStack_c8 [32];
  void **local_a8;
  int local_98 [2];
  char *local_90;
  void *local_88;
  undefined8 uStack_80;
  longlong local_78;
  undefined8 local_70;
  undefined1 local_68 [48];
  ulonglong local_38;
  
  local_70 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_c8;
  *(undefined1 *)(param_1 + 0x210) = 0;
  local_88 = (void *)0x0;
  uStack_80 = 0;
  local_78 = 0;
  local_98[0] = CONCAT22(local_98[0]._2_2_,param_3);
  local_a8 = &local_88;
  FUN_18063f7c0(0,param_2,local_98);
  uVar1 = FUN_1807002d0(param_2 & 0xffffffff);
  uVar5 = (ulonglong)uVar1;
  _Size = param_5[1] - (longlong)*param_5;
  if (uVar5 < _Size) {
    _Size = uVar5;
  }
  memcpy(local_68,(void *)*param_5,_Size);
  memset(local_68 + _Size,0,uVar5 - _Size);
  local_a8 = (void **)local_68;
  local_98[0] = FUN_180700350(param_2 & 0xffffffff,param_1 + 8,(undefined2)local_98[0],local_88);
  if (local_98[0] != 0) {
    local_90 = (char *)FUN_1811316e0(0x18);
    if (local_90 == (char *)0x0) {
      lVar2 = 0;
    }
    else {
      lVar2 = FUN_1805a48c0(local_90,"[%d] ENCR_Init error");
    }
    pcVar3 = (char *)FUN_1811316e0(0x18);
    local_90 = pcVar3;
    if (pcVar3 == (char *)0x0) {
      pcVar3 = (char *)0x0;
    }
    else {
      FUN_1805a48c0(pcVar3,"|__FILE__|%s|__LINE__|%d");
      *(undefined ***)pcVar3 = pace::PaceLocationInfoFormatter::vftable;
    }
    FUN_18060e760(*(undefined8 *)(lVar2 + 8),local_98);
    local_98[0] = 0xef;
    local_90 = "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\encryptor.cpp";
    uVar4 = FUN_1805a21d0(*(undefined8 *)(pcVar3 + 8),&local_90);
                    /* WARNING: Subroutine does not return */
    FUN_1805b20d0(uVar4,local_98);
  }
  *(undefined1 *)(param_1 + 0x210) = 1;
  if (local_88 == (void *)0x0) {
  }
  _Memory = local_88;
  if ((0xfff < (ulonglong)(local_78 - (longlong)local_88)) &&
     (_Memory = *(void **)((longlong)local_88 + -8),
     0x1f < (ulonglong)((longlong)local_88 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 18060ea10 size=1451 ############

void FUN_18060ea10(uint *param_1,ulonglong param_2,undefined8 *param_3,
                  basic_streambuf<char,std::char_traits<char>_> *param_4,undefined8 param_5)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  char *pcVar5;
  bool bVar6;
  longlong lVar7;
  char cVar8;
  char cVar9;
  undefined8 *puVar10;
  ulonglong uVar11;
  ulonglong uVar12;
  ulonglong uVar13;
  byte local_res18;
  basic_streambuf<char,std::char_traits<char>_> *local_168;
  undefined8 local_160;
  undefined *local_158 [2];
  basic_ios<char,std::char_traits<char>_> local_148 [8];
  uint auStack_140 [4];
  ulonglong auStack_130 [6];
  undefined1 auStack_100 [24];
  ulonglong local_e8;
  basic_streambuf<char,std::char_traits<char>_> *local_d8;
  undefined8 local_d0;
  undefined *local_c8 [2];
  basic_ios<char,std::char_traits<char>_> local_b8 [24];
  undefined8 auStack_a0 [6];
  undefined1 auStack_70 [24];
  undefined8 local_58;
  
  local_58 = 0xfffffffffffffffe;
  local_158[0] = &DAT_181bb0108;
  std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>(local_148);
  local_168 = param_4;
  FUN_1805a0a80(&local_160,param_4,param_2 & 0xff);
  FUN_1805ae620(&local_168,param_4);
  std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_158,local_168,false);
  *(undefined ***)((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)) =
       boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::vftable
  ;
  *(int *)((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4) + -4) =
       *(int *)(local_158[0] + 4) + -0x10;
  FUN_1805a6ba0(param_2 + 0x48,(longlong)local_158 + (longlong)*(int *)(local_158[0] + 4),param_5);
  uVar4 = *(uint *)((longlong)auStack_140 + (longlong)*(int *)(local_158[0] + 4));
  uVar11 = *(ulonglong *)((longlong)auStack_130 + (longlong)*(int *)(local_158[0] + 4));
  if (((uVar4 >> 8 & 1) == 0) || (uVar11 == 0)) {
    bVar6 = false;
  }
  else {
    bVar6 = true;
  }
  param_3[2] = 0;
  puVar10 = param_3;
  if (0xf < (ulonglong)param_3[3]) {
    puVar10 = (undefined8 *)*param_3;
  }
  *(undefined1 *)puVar10 = 0;
  local_e8 = uVar11;
  if (bVar6) {
    std::basic_ostream<char,std::char_traits<char>_>::operator<<
              ((basic_ostream<char,std::char_traits<char>_> *)local_158,*param_1);
    pcVar5 = (char *)**(undefined8 **)(param_4 + 0x20);
    uVar13 = (longlong)**(undefined8 **)(param_4 + 0x40) - (longlong)pcVar5;
    bVar6 = false;
    local_res18 = 0;
    if ((*(byte *)(param_2 + 0x88) & 2) != 0) {
      if ((char *)**(undefined8 **)(param_4 + 0x40) == pcVar5) {
LAB_18060ece7:
        bVar6 = true;
        local_res18 = 1;
      }
      else {
        cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                          ((basic_ios<char,std::char_traits<char>_> *)
                           ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'+');
        if (*pcVar5 != cVar9) {
          cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                            ((basic_ios<char,std::char_traits<char>_> *)
                             ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'-');
          if (*pcVar5 != cVar9) goto LAB_18060ece7;
        }
      }
    }
    if (((uVar13 != uVar11) || (*(longlong *)(param_2 + 0x80) < (longlong)uVar11)) || (bVar6)) {
      FUN_1805a6cb0(param_3,pcVar5,uVar13);
      FUN_1805a73e0(param_4);
      local_c8[0] = &DAT_181bb0108;
      std::basic_ios<char,std::char_traits<char>_>::basic_ios<char,std::char_traits<char>_>
                (local_b8);
      local_d8 = param_4;
      FUN_1805a0a80(&local_d0,param_4,param_2 & 0xff);
      FUN_1805ae620(&local_d8,param_4);
      std::basic_ostream<char,std::char_traits<char>_>::basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_c8,local_d8,false);
      *(undefined ***)((longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4)) =
           boost::io::basic_oaltstringstream<char,std::char_traits<char>,std::allocator<char>_>::
           vftable;
      *(int *)((longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4) + -4) =
           *(int *)(local_c8[0] + 4) + -0x10;
      FUN_1805a6ba0(param_2 + 0x48,(longlong)local_c8 + (longlong)*(int *)(local_c8[0] + 4),param_5)
      ;
      *(undefined8 *)((longlong)auStack_a0 + (longlong)*(int *)(local_c8[0] + 4)) = 0;
      if (bVar6) {
        FUN_1805a0c30(local_c8,0x20);
      }
      std::basic_ostream<char,std::char_traits<char>_>::operator<<
                ((basic_ostream<char,std::char_traits<char>_> *)local_c8,*param_1);
      if ((**(longlong **)(param_4 + 0x40) == **(longlong **)(param_4 + 0x20)) &&
         ((*(byte *)(param_2 + 0x88) & 2) != 0)) {
        local_res18 = 1;
        FUN_1805a0c30(local_c8,0x20);
      }
      lVar7 = **(longlong **)(param_4 + 0x20);
      uVar12 = *(ulonglong *)(param_2 + 0x80);
      if ((ulonglong)(**(longlong **)(param_4 + 0x40) - lVar7) < *(ulonglong *)(param_2 + 0x80)) {
        uVar12 = **(longlong **)(param_4 + 0x40) - lVar7;
      }
      if (uVar12 < uVar11) {
        uVar13 = uVar13 + (local_res18 != 0);
        if (uVar12 < uVar13) {
          uVar13 = uVar12;
        }
        uVar11 = (ulonglong)(uint)local_res18;
        if (local_res18 < uVar13) {
          do {
            puVar10 = param_3;
            if (0xf < (ulonglong)param_3[3]) {
              puVar10 = (undefined8 *)*param_3;
            }
          } while ((*(char *)(uVar11 + lVar7) ==
                    *(char *)((longlong)puVar10 + (uVar11 - (local_res18 != 0)))) &&
                  (uVar11 = uVar11 + 1, uVar11 < uVar13));
        }
        if (uVar12 <= uVar11) {
          uVar11 = (ulonglong)(uint)local_res18;
        }
        FUN_1805a6cb0(param_3,lVar7,uVar11);
        FUN_1805a6b10(param_3,local_e8 - uVar12,auStack_70[*(int *)(local_c8[0] + 4)]);
        FUN_1805a6a80(param_3,uVar11 + lVar7,uVar12 - uVar11);
      }
      else {
        FUN_1805a6cb0(param_3,lVar7,uVar12);
      }
      std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
                ((basic_ostream<char,std::char_traits<char>_> *)local_b8);
      if (local_d0 != (longlong *)0x0) {
        LOCK();
        plVar1 = local_d0 + 1;
        lVar7 = *plVar1;
        *(int *)plVar1 = (int)*plVar1 + -1;
        UNLOCK();
        if ((int)lVar7 == 1) {
          (**(code **)(*local_d0 + 8))(local_d0);
          LOCK();
          piVar2 = (int *)((longlong)local_d0 + 0xc);
          iVar3 = *piVar2;
          *piVar2 = *piVar2 + -1;
          UNLOCK();
          if (iVar3 == 1) {
            (**(code **)(*local_d0 + 0x10))(local_d0);
          }
        }
      }
      std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>
                (local_b8);
    }
    else {
      FUN_1805a6cb0(param_3,pcVar5,uVar13);
    }
    goto LAB_18060ef51;
  }
  if (0 < (longlong)uVar11) {
    *(undefined8 *)((longlong)auStack_130 + (longlong)*(int *)(local_158[0] + 4)) = 0;
  }
  std::basic_ostream<char,std::char_traits<char>_>::operator<<
            ((basic_ostream<char,std::char_traits<char>_> *)local_158,*param_1);
  pcVar5 = (char *)**(undefined8 **)(param_4 + 0x20);
  cVar9 = '\0';
  if ((*(byte *)(param_2 + 0x88) & 2) != 0) {
    if ((char *)**(undefined8 **)(param_4 + 0x40) == pcVar5) {
LAB_18060ebc4:
      cVar9 = std::basic_ios<char,std::char_traits<char>_>::widen
                        ((basic_ios<char,std::char_traits<char>_> *)
                         ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),' ');
    }
    else {
      cVar8 = std::basic_ios<char,std::char_traits<char>_>::widen
                        ((basic_ios<char,std::char_traits<char>_> *)
                         ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'+');
      if (*pcVar5 != cVar8) {
        cVar8 = std::basic_ios<char,std::char_traits<char>_>::widen
                          ((basic_ios<char,std::char_traits<char>_> *)
                           ((longlong)local_158 + (longlong)*(int *)(local_158[0] + 4)),'-');
        if (*pcVar5 != cVar8) goto LAB_18060ebc4;
      }
    }
  }
  uVar13 = *(longlong *)(param_2 + 0x80) - (ulonglong)(cVar9 != '\0');
  if ((ulonglong)(**(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20)) < uVar13) {
    uVar13 = **(longlong **)(param_4 + 0x40) - **(longlong **)(param_4 + 0x20);
  }
  FUN_1805a2b40(param_3,pcVar5,uVar13,uVar11,auStack_100[*(int *)(local_158[0] + 4)],uVar4,cVar9,
                (byte)(*(uint *)(param_2 + 0x88) >> 2) & 1);
LAB_18060ef51:
  FUN_1805a73e0(param_4);
  std::basic_ostream<char,std::char_traits<char>_>::~basic_ostream<char,std::char_traits<char>_>
            ((basic_ostream<char,std::char_traits<char>_> *)local_148);
  if (local_160 != (longlong *)0x0) {
    LOCK();
    plVar1 = local_160 + 1;
    lVar7 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar7 == 1) {
      (**(code **)(*local_160 + 8))(local_160);
      LOCK();
      piVar2 = (int *)((longlong)local_160 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*local_160 + 0x10))(local_160);
      }
    }
  }
  std::basic_ios<char,std::char_traits<char>_>::~basic_ios<char,std::char_traits<char>_>(local_148);
  return;
}



############ FUN_ 18079d9a0 size=260 ############

/* WARNING: Instruction at (ram,0x00018079da4e) overlaps instruction at (ram,0x00018079da4c)
    */

void FUN_18079d9a0(ulonglong param_1,undefined8 param_2)

{
  undefined1 *puVar1;
  ulonglong uVar2;
  longlong lVar3;
  undefined8 uVar4;
  undefined8 unaff_RBX;
  undefined1 *puVar5;
  undefined1 *unaff_RBP;
  undefined1 *unaff_RSI;
  undefined8 unaff_RDI;
  undefined8 in_R10;
  undefined8 unaff_R12;
  undefined8 unaff_R13;
  ulonglong unaff_R14;
  undefined8 unaff_R15;
  
  puVar1 = (undefined1 *)register0x00000020;
  while( true ) {
    puVar5 = puVar1;
    uVar4 = param_2;
    uVar2 = param_1;
    *(undefined1 **)(puVar5 + -8) = unaff_RBP;
    *(undefined1 **)(puVar5 + -0x10) = unaff_RSI;
    *(undefined8 *)(puVar5 + -0x18) = unaff_RDI;
    *(undefined8 *)(puVar5 + -0x20) = unaff_R12;
    *(undefined8 *)(puVar5 + -0x28) = unaff_R13;
    *(ulonglong *)(puVar5 + -0x30) = unaff_R14;
    *(undefined8 *)(puVar5 + -0x38) = unaff_R15;
    unaff_RBP = puVar5 + -0x5f;
    *(undefined8 *)(puVar5 + -0x88) = 0xfffffffffffffffe;
    *(undefined8 *)(puVar5 + 0x18) = unaff_RBX;
    *(ulonglong *)(puVar5 + -0x48) = DAT_182615970 ^ (ulonglong)(puVar5 + -0x118);
    unaff_R13 = 0;
    *(undefined4 *)(puVar5 + -0xa8) = 0xfc0;
    param_2 = 0x806b384;
    lVar3 = 0;
    *(undefined4 *)(puVar5 + -0xa4) = 0xb0;
    *(undefined8 *)(puVar5 + -0x70) = 0;
    *(undefined8 *)(puVar5 + -0x68) = 0xf;
    puVar5[-0x80] = 0;
    *(undefined8 *)(puVar5 + -0x120) = unaff_R12;
    *(undefined8 *)(puVar5 + -0x128) = in_R10;
    *(undefined1 **)(puVar5 + -0x130) = puVar5;
    *(undefined8 *)(puVar5 + -0x138) = 0x18079da95;
    FUN_18079daab();
    in((short)param_2);
    if (lVar3 == 1) break;
    param_1 = (ulonglong)unaff_RBP & 0xffffffff;
    unaff_RBX = uVar4;
    puVar1 = puVar5 + -0x130;
    unaff_RSI = puVar5;
    unaff_R14 = uVar2;
  }
  lVar3 = *(longlong *)(puVar5 + -0x130);
  *(longlong *)(puVar5 + -0x130) = lVar3 + 0x13b;
  *(longlong *)(puVar5 + -0x138) = lVar3 + 0x75eb;
  *(longlong *)(puVar5 + -0x140) = lVar3 + 0x2f01d;
  *(longlong *)(puVar5 + -0x148) = lVar3 + 0xe9c;
  *(longlong *)(puVar5 + -0x150) = lVar3 + 0x4108;
  *(longlong *)(puVar5 + -0x158) = lVar3 + 0xeac;
  *(longlong *)(puVar5 + -0x160) = lVar3 + 0x2f01d;
                    /* WARNING: Could not recover jumptable at 0x00018079dbb3. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(lVar3 + 0x744d))(0,param_2);
  return;
}



############ FUN_ 18061e560 size=53 ############

byte FUN_18061e560(byte param_1,byte param_2,char param_3)

{
  byte bVar1;
  
  bVar1 = (param_1 >> 4) * '\n';
  if ((bVar1 < 0x5b) && ((param_1 & 0xf) < 10)) {
    bVar1 = bVar1 + (param_1 & 0xf);
    if (param_3 != '\0') {
      bVar1 = bVar1 - 1;
    }
    if (bVar1 < param_2) {
      return bVar1;
    }
  }
  return 0xff;
}



############ FUN_ 1807e4381 size=414 ############

undefined8 FUN_1807e4381(void)

{
  undefined8 in_RAX;
  
  return in_RAX;
}



############ FUN_ 18093c60c size=404 ############

longlong FUN_18093c60c(void)

{
  ulonglong in_RAX;
  
  return -((in_RAX ^ 0xffffffffffffffff) + 1);
}



############ FUN_ 1807b4930 size=755 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x0001807b49ec) */

void FUN_1807b4930(undefined8 param_1,longlong *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  undefined1 auStack_d8 [40];
  undefined *local_b0;
  undefined8 local_a0;
  undefined8 local_98;
  undefined4 *local_90;
  uint local_88;
  uint local_84;
  undefined8 local_70;
  ulonglong local_40;
  
  local_40 = DAT_182615970 ^ (ulonglong)auStack_d8;
  uVar3 = (uint)&stack0x00000000;
  uVar2 = ((uVar3 & 0x4ff) * (uVar3 & 0x4ff) * 0x10 + 4) % 0x13;
  uVar1 = ((uVar3 & 0x14ff) + 1) * (uVar3 & 0x14ff) + 0x7a19 & 0x80000001;
  local_88 = ((int)(-uVar2 | uVar2) >> 0x1f) * -0x829a ^ (int)(-uVar1 | uVar1) >> 0x1f & 0x8ceaU;
  local_84 = (0x200 << ((char)((int)-((((uVar3 & 0xbff) + 1) * (uVar3 & 0xbff) + 7) % 0x51) >> 0x1f)
                        - (char)((int)-((((uVar3 & 0x34ff) + 1) * (uVar3 & 0x34ff) + 7) % 0x51) >>
                                0x1f) & 0x1fU) | 0x6396U) ^ 0x6e46;
  local_70 = param_1;
  (**(code **)(*param_2 + 0x18))(param_2,"OpenEncryptedChannelInput");
  local_98 = 0;
  local_a0 = 0x26dc0fc;
  local_90 = &DAT_1826dc0fc;
  local_b0 = &DAT_1826dc200;
                    /* WARNING: Call to offcut address within same function */
  func_0x0001807b4c27();
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}



############ FUN_ 180746455 size=49 ############

void FUN_180746455(void)

{
  FUN_18074648a();
  return;
}



############ FUN_ 18060c130 size=63 ############

void FUN_18060c130(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_c0 [104];
  undefined1 local_58 [88];
  
  uVar1 = FUN_18060b8a0(local_58,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_18060b740(local_c0,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_c0,(ThrowInfo *)&DAT_1825fdcc0);
}



############ FUN_ 18060c480 size=39 ############

undefined8 * FUN_18060c480(undefined8 *param_1,undefined8 param_2,undefined8 param_3)

{
  param_1[2] = 0;
  param_1[1] = "bad cast";
  *param_1 = boost::bad_lexical_cast::vftable;
  param_1[3] = param_2;
  param_1[4] = param_3;
  return param_1;
}



############ FUN_ 18060b990 size=813 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Type propagation algorithm not settling */

void FUN_18060b990(uint *param_1,char *param_2,longlong param_3)

{
  bool bVar1;
  char cVar2;
  locale *plVar3;
  longlong *plVar4;
  undefined8 *puVar5;
  char *******pppppppcVar6;
  char *pcVar7;
  uint uVar8;
  ulonglong uVar9;
  uint uVar10;
  uint uVar11;
  undefined1 auStack_98 [32];
  char local_78;
  longlong local_70;
  undefined1 local_68 [8];
  _Locimp *local_60;
  undefined8 local_58;
  char *******local_50 [2];
  longlong local_40;
  ulonglong local_38;
  ulonglong local_30;
  
  local_58 = 0xfffffffffffffffe;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_98;
  *param_1 = 0;
  if ((char *)(param_3 - 1U) < param_2) {
  }
  cVar2 = *(char *)(param_3 - 1U);
  if (9 < (byte)(cVar2 - 0x30U)) {
  }
  *param_1 = (int)cVar2 - 0x30;
  pcVar7 = (char *)(param_3 + -2);
  uVar8 = 1;
  bVar1 = false;
  local_60 = std::locale::_Init(true);
  plVar3 = std::locale::classic();
  cVar2 = FUN_1805f22e0(local_68,plVar3);
  uVar10 = uVar8;
  if (cVar2 == '\0') {
    plVar4 = (longlong *)FUN_1805f1950(local_68);
    (**(code **)(*plVar4 + 0x28))(plVar4,local_50);
    local_70 = local_40;
    if (local_40 != 0) {
      pppppppcVar6 = (char *******)local_50;
      if (0xf < local_38) {
        pppppppcVar6 = local_50[0];
      }
      uVar10 = 1;
      if ('\0' < *(char *)pppppppcVar6) {
        uVar9 = 0;
        local_78 = (**(code **)(*plVar4 + 0x20))(plVar4);
        pppppppcVar6 = (char *******)local_50;
        if (0xf < local_38) {
          pppppppcVar6 = local_50[0];
        }
        cVar2 = *(char *)pppppppcVar6 + -1;
        uVar10 = uVar8;
        for (; param_2 <= pcVar7; pcVar7 = pcVar7 + -1) {
          if (cVar2 == '\0') {
            if (*pcVar7 != local_78) goto LAB_18060bbce;
            if (param_2 == pcVar7) break;
            if (uVar9 < local_70 - 1U) {
              uVar9 = (ulonglong)(byte)((char)uVar9 + 1);
            }
            pppppppcVar6 = (char *******)local_50;
            if (0xf < local_38) {
              pppppppcVar6 = local_50[0];
            }
            cVar2 = *(char *)((longlong)pppppppcVar6 + uVar9);
          }
          else {
            uVar8 = uVar10 * 10;
            if (uVar8 / 10 != uVar10) {
              bVar1 = true;
            }
            uVar10 = (int)*pcVar7 - 0x30;
            uVar11 = uVar10 * uVar8;
            if ((((9 < (byte)(*pcVar7 - 0x30U)) || ((uVar10 != 0 && (uVar11 / uVar10 != uVar8)))) ||
                (-uVar11 - 1 < *param_1)) || ((bVar1 && (uVar10 != 0)))) break;
            *param_1 = *param_1 + uVar11;
            cVar2 = cVar2 + -1;
            uVar10 = uVar8;
          }
        }
        if (0xf < local_38) {
          pppppppcVar6 = local_50[0];
          if ((0xfff < local_38 + 1) &&
             (pppppppcVar6 = (char *******)local_50[0][-1],
             (char *)0x1f < (char *)((longlong)local_50[0] + (-8 - (longlong)pppppppcVar6)))) {
                    /* WARNING: Subroutine does not return */
            _invalid_parameter_noinfo_noreturn();
          }
                    /* WARNING: Subroutine does not return */
          free(pppppppcVar6);
        }
        goto LAB_18060bc7e;
      }
    }
LAB_18060bbce:
    if (0xf < local_38) {
      pppppppcVar6 = local_50[0];
      if ((0xfff < local_38 + 1) &&
         (pppppppcVar6 = (char *******)local_50[0][-1],
         (char *)0x1f < (char *)((longlong)local_50[0] + (-8 - (longlong)pppppppcVar6)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(pppppppcVar6);
    }
  }
  for (; param_2 <= pcVar7; pcVar7 = pcVar7 + -1) {
    uVar8 = uVar10 * 10;
    if (uVar8 / 10 != uVar10) {
      bVar1 = true;
    }
    uVar10 = (int)*pcVar7 - 0x30;
    uVar11 = uVar10 * uVar8;
    if ((9 < (byte)(*pcVar7 - 0x30U)) ||
       ((((uVar10 != 0 && (uVar11 / uVar10 != uVar8)) || (-uVar11 - 1 < *param_1)) ||
        ((bVar1 && (uVar10 != 0)))))) break;
    *param_1 = *param_1 + uVar11;
    uVar10 = uVar8;
  }
LAB_18060bc7e:
  if ((local_60 != (_Locimp *)0x0) &&
     (puVar5 = (undefined8 *)(**(code **)(*(longlong *)local_60 + 0x10))(),
     puVar5 != (undefined8 *)0x0)) {
    (**(code **)*puVar5)(puVar5,1);
  }
}



############ FUN_ 1805aef60 size=236 ############

longlong * FUN_1805aef60(longlong *param_1,longlong *param_2,longlong *param_3)

{
  bool bVar1;
  bool bVar2;
  longlong lVar3;
  longlong lVar4;
  
  lVar4 = *param_1;
  bVar2 = false;
  if ((0xfffffffffffffffd < lVar4 + 0x7fffffffffffffffU) ||
     (bVar1 = false, lVar4 == 0x7ffffffffffffffe)) {
    bVar1 = true;
  }
  if (bVar1) {
LAB_1805aefc0:
    if (((lVar4 == 0x7ffffffffffffffe) || (lVar3 = *param_3, lVar3 == 0x7ffffffffffffffe)) ||
       ((lVar4 == 0x7fffffffffffffff && (lVar3 == 0x7fffffffffffffff)))) {
LAB_1805aefeb:
      *param_2 = 0x7ffffffffffffffe;
      return param_2;
    }
    if (lVar4 == -0x8000000000000000) {
      if (lVar3 == -0x8000000000000000) goto LAB_1805aefeb;
LAB_1805af001:
      bVar2 = true;
    }
    else if (lVar4 == 0x7fffffffffffffff) goto LAB_1805af001;
    if (bVar2) goto LAB_1805af03b;
    if (lVar3 == 0x7fffffffffffffff) {
      *param_2 = -0x8000000000000000;
      return param_2;
    }
    if (lVar3 == -0x8000000000000000) {
      *param_2 = 0x7fffffffffffffff;
      return param_2;
    }
  }
  else {
    lVar3 = *param_3;
    if ((0xfffffffffffffffd < lVar3 + 0x7fffffffffffffffU) ||
       (bVar1 = false, lVar3 == 0x7ffffffffffffffe)) {
      bVar1 = true;
    }
    if (bVar1) goto LAB_1805aefc0;
  }
  lVar4 = lVar4 - lVar3;
LAB_1805af03b:
  *param_2 = lVar4;
  return param_2;
}



############ FUN_ 1805c8c70 size=106 ############

undefined ** FUN_1805c8c70(void)

{
  if (*(int *)(*(longlong *)((longlong)ThreadLocalStoragePointer + (ulonglong)_tls_index * 8) + 0xc)
      < DAT_18265dd9c) {
    _Init_thread_header(&DAT_18265dd9c);
    if (DAT_18265dd9c == -1) {
      atexit((_func_5014 *)&LAB_181a507a0);
      _Init_thread_footer(&DAT_18265dd9c);
    }
  }
  return &PTR_vftable_18260a210;
}



############ FUN_ 1805a1d60 size=177 ############

undefined8 *
FUN_1805a1d60(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[0xe] = &DAT_181bafec0;
  param_1[0x10] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805a45d0();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error>_>
             ::vftable;
  param_1[9] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error>_>
               ::vftable;
  *(undefined ***)((longlong)*(int *)(param_1[0xe] + 4) + 0x70 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error>_>::
       vftable;
  *(int *)((longlong)*(int *)(param_1[0xe] + 4) + 0x6c + (longlong)param_1) =
       *(int *)(param_1[0xe] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x48;
  }
  FUN_1805a7b20(param_1 + 9,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805a2060 size=65 ############

undefined8 * FUN_1805a2060(undefined8 *param_1)

{
  FUN_1805a4b90();
  param_1[10] = 0;
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  *(undefined4 *)(param_1 + 0xd) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::thread_resource_error>::vftable;
  param_1[9] = boost::exception_detail::error_info_injector<boost::thread_resource_error>::vftable;
  return param_1;
}



############ FUN_ 1806b9be0 size=1275 ############

/* WARNING: Instruction at (ram,0x0001806ba0d6) overlaps instruction at (ram,0x0001806ba0d5)
    */
/* WARNING: Removing unreachable block (ram,0x0001806ba2ea) */
/* WARNING: Removing unreachable block (ram,0x0001806ba4d3) */
/* WARNING: Removing unreachable block (ram,0x0001806b9c63) */
/* WARNING: Removing unreachable block (ram,0x0001806b9c96) */
/* WARNING: Removing unreachable block (ram,0x0001806ba376) */
/* WARNING: Removing unreachable block (ram,0x0001806ba0d1) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: stack */

ulonglong FUN_1806b9be0(longlong param_1,uint param_2)

{
  ulonglong uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  longlong lVar5;
  longlong lVar6;
  uint unaff_retaddr;
  
  lVar5 = 0x180000000;
  uVar2 = (DAT_1814fbd28 + -0x127f54) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd2c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd30) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd34) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd38) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd3c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd40) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd44) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd48) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd4c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd50) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd54) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd58) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd5c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd60) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd64) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd68) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd6c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd70) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd74) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd78) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd7c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd80) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd84) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd88) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd8c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd90) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd94) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd98) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbd9c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbda0) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbda4) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbda8) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbdac) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbdb0) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbdb4) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + DAT_1814fbdb8) * -0x395b586d;
  do {
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar2 = (_UNK_1814fbdbc + (uVar2 ^ uVar2 >> 0x10)) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdc0) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdc4) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdc8) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdcc) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdd0) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdd4) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdd8) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbddc) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbde0) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbde4) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbde8) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdec) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdf0) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdf4) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdf8) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbdfc) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe00) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe04) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe08) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe0c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe10) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe14) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe18) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe1c) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe20) * -0x395b586d;
  uVar2 = ((uVar2 >> 0x10 ^ uVar2) + _UNK_1814fbe24) * -0x395b586d;
  do {
    lVar6 = lVar5 + param_1;
    param_1 = param_1 - lVar6;
    lVar5 = -param_1;
    param_1 = lVar6 + param_1;
    uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar2 = uVar2 ^ uVar2 >> 0x10 ^ 0xe7093956;
  uVar3 = uVar2 << 0xe | uVar2 >> 0x12;
  uVar2 = ((uVar2 & 0x3ffff) >> 8 ^ uVar3) >> 1 & 0xff;
  do {
    uVar4 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar4 < 0) {
      uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar4 != 0);
  uVar2 = ~((uVar2 << 0x16 | uVar2) * 2 ^ uVar3) + 0xf5ef4881;
  if ((uVar2 & 0x3ffffff) == 0 && uVar2 == 0) {
    if (param_2 < 4) {
      *(uint *)(param_1 + 400) = param_2;
    }
    do {
      uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar2 < 0) {
        uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar2 != 0);
    return (ulonglong)unaff_retaddr;
  }
  if (3 < param_2) {
    *(uint *)(param_1 + 400) = param_2;
  }
  uVar1 = thunk_FUN_1805a9280();
  return uVar1;
}



############ FUN_ 1806ba570 size=1697 ############

/* WARNING: Instruction at (ram,0x0001806baa33) overlaps instruction at (ram,0x0001806baa30)
    */
/* WARNING: Removing unreachable block (ram,0x0001806baa30) */
/* WARNING: Removing unreachable block (ram,0x0001806ba943) */
/* WARNING: Removing unreachable block (ram,0x0001806ba5f1) */
/* WARNING: Removing unreachable block (ram,0x0001806ba5a8) */
/* WARNING: Removing unreachable block (ram,0x0001806ba607) */
/* WARNING: Removing unreachable block (ram,0x0001806ba9d8) */
/* WARNING: Removing unreachable block (ram,0x0001806bac5f) */

void FUN_1806ba570(longlong param_1,uint param_2)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  ulonglong uVar4;
  int *piVar5;
  int *piVar6;
  undefined1 *puVar7;
  ulonglong uVar8;
  uint uVar9;
  uint uVar10;
  int unaff_retaddr;
  undefined1 auStack_58 [32];
  
  puVar7 = auStack_58;
  uVar9 = (uint)&stack0x00000000 & 0x4ff;
  uVar9 = ((uVar9 + 1) * uVar9 + 7) % 0x51;
  uVar9 = (int)(-uVar9 | uVar9) >> 0x1f & 0x9a3bU ^ 0x935b;
  uVar1 = (((uint)(DAT_181420ec0 * 0x401) >> 6 ^ DAT_181420ec0 * 0x401) + DAT_181420ec4) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420ec8) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420ecc) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420ed0) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420ed4) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420ed8) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420edc) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420ee0) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420ee4) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420ee8) * 0x401;
  uVar1 = ((uVar1 >> 6 ^ uVar1) + DAT_181420eec) * 0x401;
  piVar5 = &DAT_181420ef0;
  do {
    uVar9 = ~((uVar9 ^ 0xffffffff) + 1) + 1;
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  lVar3 = 0xb;
  uVar1 = (DAT_181420ef0 + (uVar1 ^ uVar1 >> 6)) * 0x401;
  do {
    uVar1 = ((uVar1 >> 6 ^ uVar1) + piVar5[1]) * 0x401;
    piVar6 = piVar5 + 2;
    piVar5 = piVar5 + 3;
    uVar1 = ((uVar1 >> 6 ^ uVar1) + *piVar6) * 0x401;
    uVar1 = ((uVar1 >> 6 ^ uVar1) + *piVar5) * 0x401;
    lVar3 = lVar3 + -1;
  } while (lVar3 != 0);
  uVar1 = uVar1 ^ uVar1 >> 6;
  uVar2 = uVar1 & 0x3f;
  uVar10 = ((uVar2 + 2) * (uVar2 + 1) * uVar2) % 3 -
           ((uVar1 & 0x16ff) * (uVar1 & 0x16ff) * 0x10 + 4) % 0x13;
  uVar2 = (uint)piVar5 & 0x16ff;
  uVar2 = (uVar2 * uVar2 * 0x10 + 4) % 0x13;
  lVar3 = ((longlong)(((int)(-uVar2 | uVar2) >> 0x1f) * -0xa2dd) ^ 0xa3ddU) -
          ((longlong)(((int)(-uVar10 | uVar10) >> 0x1f) * -0x5d9a) ^ 0x5c9aU);
  uVar1 = (*(int *)((longlong)piVar5 + lVar3 + 4) + uVar1) * 0x401;
  do {
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar1 = (*(int *)((longlong)piVar5 + lVar3 + 8) + (uVar1 ^ uVar1 >> 6)) * 0x401;
  uVar1 = uVar1 ^ uVar1 >> 6;
  uVar8 = (ulonglong)uVar1;
  piVar5 = (int *)((longlong)piVar5 + lVar3 + 0xc);
  do {
    FUN_1806bc6f0();
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  lVar3 = 7;
  uVar1 = (*piVar5 + uVar1) * 0x401;
  do {
    piVar6 = piVar5;
    uVar1 = ((uVar1 >> 6 ^ uVar1) + piVar6[1]) * 0x401;
    uVar1 = ((uVar1 >> 6 ^ uVar1) + piVar6[2]) * 0x401;
    lVar3 = lVar3 + -1;
    piVar5 = piVar6 + 2;
  } while (lVar3 != 0);
  uVar1 = ((uVar1 >> 6 ^ uVar1) + piVar6[3]) * 0x401;
  do {
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar1 = (uVar1 ^ uVar1 >> 6) + 0x3a16ca2a;
  uVar1 = (uVar1 >> 3 | uVar1 * 0x20000000) + 0x10e0bea2;
  uVar4 = (ulonglong)uVar1;
  if ((uVar1 & 0xbf3a5f2c | ~uVar1 & 0x40c5a0d3) * 9 == 0) {
    if (param_2 < 4) {
      *(uint *)(param_1 + 0x194) = param_2;
    }
    do {
      *(ulonglong *)(puVar7 + -8) = uVar8;
      *(longlong *)(puVar7 + -0x10) = param_1;
      *(ulonglong *)(puVar7 + -0x18) = uVar4;
      lVar3 = -(longlong)(int)uVar9;
      uVar4 = *(ulonglong *)(puVar7 + lVar3 + 0x948);
      param_1 = *(longlong *)(puVar7 + lVar3 + 0x950);
      uVar8 = *(ulonglong *)(puVar7 + lVar3 + 0x958);
      puVar7 = puVar7 + lVar3 + 0x960;
      uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar1 < 0) {
        uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar1 != 0);
    return;
  }
  if (3 < param_2) {
    *(uint *)(param_1 + 0x194) = param_2;
  }
  FUN_1806bb573();
  thunk_FUN_1805a9280();
  return;
}



############ FUN_ 1806bace0 size=1209 ############

/* WARNING: Instruction at (ram,0x0001806bb5b3) overlaps instruction at (ram,0x0001806bb5b2)
    */
/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x0001806bb5ae) */
/* WARNING: Removing unreachable block (ram,0x0001806bb282) */
/* WARNING: Removing unreachable block (ram,0x0001806bb096) */
/* WARNING: Removing unreachable block (ram,0x0001806baf1f) */
/* WARNING: Removing unreachable block (ram,0x0001806bb298) */
/* WARNING: Removing unreachable block (ram,0x0001806bb279) */
/* WARNING: Removing unreachable block (ram,0x0001806bb19c) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1806bace0(longlong param_1,uint param_2,uint param_3)

{
  uint uVar1;
  uint uVar2;
  undefined1 *puVar3;
  uint uVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  longlong lVar7;
  ulonglong uVar8;
  longlong lVar9;
  int unaff_retaddr;
  undefined1 auStack_68 [32];
  undefined8 local_48;
  undefined4 *local_40;
  
  puVar3 = auStack_68;
  uVar2 = (uint)&stack0x00000000 & 0x2bf;
  lVar7 = 0x3490;
  uVar6 = 0x180000000;
  local_48 = 0x100;
  local_40 = &DAT_1813d6300;
  uVar4 = DAT_1813d6304 ^ DAT_1813d6300 >> 0x1c ^ (DAT_1813d6300 ^ 0xbf0) << 4;
  do {
    FUN_1806bb77b();
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar8 = (ulonglong)param_3;
  uVar4 = DAT_1813d6308 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d630c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6310 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6314 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6318 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d631c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6320 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6324 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6328 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d632c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6330 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6334 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  if (param_2 < 4) {
    *(uint *)(param_1 + 0x18c) = param_2;
  }
  uVar4 = DAT_1813d6338 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d633c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6340 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6344 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  do {
    uVar6 = -((uVar6 ^ 0xffffffffffffffff) + 1);
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar4 = DAT_1813d6348 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d634c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6350 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6354 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6358 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d635c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6360 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6364 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6368 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d636c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6370 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = DAT_1813d6374 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  do {
                    /* WARNING: Bad instruction - Truncating control flow here */
    lVar9 = lVar7 + (longlong)register0x00000020;
    lVar7 = ~((longlong)register0x00000020 - lVar9) + 1;
    register0x00000020 = (BADSPACEBASE *)(lVar9 - lVar7);
    uVar1 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar4 = _UNK_1813d6378 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d637c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d6380 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d6384 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d6388 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  do {
                    /* WARNING: Bad instruction - Truncating control flow here */
    register0x00000020 = (BADSPACEBASE *)(~-(longlong)register0x00000020 + 1);
                    /* WARNING: Bad instruction - Truncating control flow here */
    uVar1 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar4 = _UNK_1813d638c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d6390 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d6394 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d6398 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d639c ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63a0 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63a4 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63a8 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63ac ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63b0 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63b4 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63b8 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63bc ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63c0 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63c4 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63c8 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63cc ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63d0 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63d4 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63d8 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63dc ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63e0 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63e4 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63e8 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63ec ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = _UNK_1813d63f0 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  do {
    uVar6 = ((uVar6 ^ 0xffffffffffffffff) + 1 ^ 0xffffffffffffffff) + 1;
    uVar8 = (~uVar8 + 1 ^ 0xffffffffffffffff) + 1;
    uVar1 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar4 = _UNK_1813d63f4 ^ uVar4 >> 0x1c ^ uVar4 << 4;
  uVar4 = uVar4 >> 0x1c ^ uVar4 << 4 ^ _UNK_1813d63f8;
  uVar1 = (_UNK_1813d63fc ^ uVar4 >> 0x1c ^ uVar4 << 4) + 0x997a87dd;
  uVar5 = (ulonglong)uVar1;
  uVar4 = (uVar1 >> 0xd ^ uVar1) & 0x1fff;
  uVar4 = ((uVar4 << 0xd | uVar4) ^ uVar1) + 0x461b887;
  uVar4 = (uVar4 * 0x100 | uVar4 >> 0x18) & 0xb44bb44b |
          (uVar4 >> 8 | uVar4 * 0x1000000) & 0x4bb44bb4;
  do {
    func_0x0001806b99b3();
    uVar1 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar4 = (uVar4 >> 0x1e | uVar4 << 2) + 0x76753679 ^ 0xd9043709;
  *(int *)(param_1 + 0x188) = (int)uVar8;
  if ((uVar4 & 0x3fffff) == 0 && uVar4 == 0) {
    do {
      *(undefined **)(puVar3 + -8) = &UNK_1806bb5ff;
      lVar7 = (longlong)(int)(0x67a3 - ((uVar2 + 2) * (uVar2 + 1) * uVar2) % 3 ^ 0x6683);
      func_0x0001806b9817();
      *(ulonglong *)(puVar3 + -8) = uVar6;
      *(ulonglong *)(puVar3 + -0x10) = uVar5;
      *(ulonglong *)(puVar3 + -0x18) = uVar8;
      lVar7 = -lVar7;
      uVar8 = *(ulonglong *)(puVar3 + lVar7 + 0x108);
      uVar5 = *(ulonglong *)(puVar3 + lVar7 + 0x110);
      uVar6 = *(ulonglong *)(puVar3 + lVar7 + 0x118);
      puVar3 = puVar3 + lVar7 + 0x120;
      uVar4 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
      if ((int)uVar4 < 0) {
        uVar4 = (uVar4 - 1 | 0xfffffffe) + 1;
      }
    } while (uVar4 != 0);
    return;
  }
  func_0x0001806ba0ad();
  thunk_FUN_1805a9280();
  return;
}



############ FUN_ 18056e1d0 size=361 ############

undefined8 *
FUN_18056e1d0(longlong *param_1,undefined8 *param_2,longlong *param_3,longlong *param_4)

{
  char cVar1;
  longlong *plVar2;
  longlong *plVar3;
  longlong *plVar4;
  void *_Memory;
  
  plVar2 = (longlong *)*param_1;
  if ((param_3 == (longlong *)*plVar2) && (param_4 == plVar2)) {
    FUN_18056e350(param_1,plVar2[1],param_3,param_4,0xfffffffffffffffe);
    *(longlong **)(*param_1 + 8) = plVar2;
    *(longlong **)*param_1 = plVar2;
    *(longlong **)(*param_1 + 0x10) = plVar2;
    param_1[1] = 0;
    *param_2 = *(undefined8 *)*param_1;
  }
  else {
    if (param_3 != param_4) {
      plVar2 = (longlong *)param_3[2];
      if (*(char *)((longlong)plVar2 + 0x19) == '\0') {
        plVar2 = (longlong *)*plVar2;
        cVar1 = *(char *)((longlong)plVar2 + 0x19);
        while (cVar1 == '\0') {
          plVar2 = (longlong *)*plVar2;
          cVar1 = *(char *)((longlong)plVar2 + 0x19);
        }
      }
      else {
        cVar1 = *(char *)(param_3[1] + 0x19);
        plVar4 = (longlong *)param_3[1];
        plVar2 = param_3;
        while ((plVar3 = plVar4, cVar1 == '\0' && (plVar2 == (longlong *)plVar3[2]))) {
          cVar1 = *(char *)(plVar3[1] + 0x19);
          plVar4 = (longlong *)plVar3[1];
          plVar2 = plVar3;
        }
      }
      plVar2 = (longlong *)param_3[2];
      if (*(char *)((longlong)plVar2 + 0x19) == '\0') {
        plVar2 = (longlong *)*plVar2;
        cVar1 = *(char *)((longlong)plVar2 + 0x19);
        while (cVar1 == '\0') {
          plVar2 = (longlong *)*plVar2;
          cVar1 = *(char *)((longlong)plVar2 + 0x19);
        }
      }
      else {
        cVar1 = *(char *)(param_3[1] + 0x19);
        plVar2 = (longlong *)param_3[1];
        while ((plVar4 = plVar2, cVar1 == '\0' && (param_3 == (longlong *)plVar4[2]))) {
          cVar1 = *(char *)(plVar4[1] + 0x19);
          plVar2 = (longlong *)plVar4[1];
          param_3 = plVar4;
        }
      }
      _Memory = (void *)FUN_18047db40(param_1);
      plVar2 = *(longlong **)((longlong)_Memory + 0x60);
      if (plVar2 != (longlong *)0x0) {
        (**(code **)(*plVar2 + 0x20))(plVar2,plVar2 != (longlong *)((longlong)_Memory + 0x28));
        *(undefined8 *)((longlong)_Memory + 0x60) = 0;
      }
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
    *param_2 = param_3;
  }
  return param_2;
}



############ FUN_ 180490000 size=648 ############

undefined8 *
FUN_180490000(undefined8 param_1,undefined8 *param_2,longlong *param_3,undefined8 *param_4)

{
  char cVar1;
  char cVar2;
  undefined8 uVar3;
  longlong *plVar4;
  longlong *plVar5;
  longlong *plVar6;
  int iVar7;
  undefined8 *puVar8;
  longlong *plVar9;
  
  plVar6 = DAT_182673770;
  if (DAT_182673778 == 0) {
    FUN_1804916f0(param_1,param_2,1,DAT_182673770);
  }
  else {
    if (param_3 == (longlong *)*DAT_182673770) {
      iVar7 = FUN_18048cbc0(*param_4,param_3[4]);
      if (iVar7 < 0) {
        FUN_1804916f0();
        return param_2;
      }
    }
    else if (param_3 == DAT_182673770) {
      iVar7 = FUN_18048cbc0(*(undefined8 *)(DAT_182673770[2] + 0x20),*param_4);
      if (iVar7 < 0) {
        FUN_1804916f0();
        return param_2;
      }
    }
    else {
      uVar3 = *param_4;
      iVar7 = FUN_18048cbc0(uVar3,param_3[4]);
      if (iVar7 < 0) {
        if (*(char *)((longlong)param_3 + 0x19) == '\0') {
          plVar9 = (longlong *)*param_3;
          if (*(char *)((longlong)plVar9 + 0x19) == '\0') {
            cVar1 = *(char *)(plVar9[2] + 0x19);
            plVar4 = (longlong *)plVar9[2];
            while (cVar1 == '\0') {
              cVar1 = *(char *)(plVar4[2] + 0x19);
              plVar9 = plVar4;
              plVar4 = (longlong *)plVar4[2];
            }
          }
          else {
            cVar1 = *(char *)(param_3[1] + 0x19);
            plVar4 = (longlong *)param_3[1];
            plVar9 = param_3;
            while ((plVar5 = plVar4, cVar1 == '\0' && (plVar9 == (longlong *)*plVar5))) {
              cVar1 = *(char *)(plVar5[1] + 0x19);
              plVar4 = (longlong *)plVar5[1];
              plVar9 = plVar5;
            }
            if (*(char *)((longlong)plVar9 + 0x19) == '\0') {
              plVar9 = plVar5;
            }
          }
        }
        else {
          plVar9 = (longlong *)param_3[2];
        }
        iVar7 = FUN_18048cbc0(plVar9[4],uVar3);
        if (iVar7 < 0) {
          if (*(char *)(plVar9[2] + 0x19) != '\0') {
            FUN_1804916f0();
            return param_2;
          }
          FUN_1804916f0();
          return param_2;
        }
      }
      iVar7 = FUN_18048cbc0(param_3[4],uVar3);
      if (iVar7 < 0) {
        plVar9 = (longlong *)param_3[2];
        cVar1 = *(char *)((longlong)plVar9 + 0x19);
        if (cVar1 == '\0') {
          cVar2 = *(char *)(*plVar9 + 0x19);
          plVar4 = (longlong *)*plVar9;
          while (cVar2 == '\0') {
            cVar2 = *(char *)(*plVar4 + 0x19);
            plVar9 = plVar4;
            plVar4 = (longlong *)*plVar4;
          }
        }
        else {
          cVar2 = *(char *)(param_3[1] + 0x19);
          plVar4 = (longlong *)param_3[1];
          while ((plVar9 = plVar4, cVar2 == '\0' && (param_3 == (longlong *)plVar9[2]))) {
            cVar2 = *(char *)(plVar9[1] + 0x19);
            plVar4 = (longlong *)plVar9[1];
            param_3 = plVar9;
          }
        }
        if ((plVar9 == plVar6) || (iVar7 = FUN_18048cbc0(uVar3,plVar9[4]), iVar7 < 0)) {
          if (cVar1 != '\0') {
            FUN_1804916f0();
            return param_2;
          }
          FUN_1804916f0();
          return param_2;
        }
      }
    }
    puVar8 = (undefined8 *)FUN_180491940();
    *param_2 = *puVar8;
  }
  return param_2;
}



############ FUN_ 18048ff70 size=136 ############

longlong FUN_18048ff70(undefined8 param_1,undefined8 param_2,undefined8 *param_3)

{
  longlong lVar1;
  longlong lVar2;
  
  lVar2 = FUN_180490c60();
  *(undefined2 *)(lVar2 + 0x18) = 0;
  lVar1 = *(longlong *)*param_3;
  *(longlong *)(lVar2 + 0x20) = lVar1;
  if ((*(uint *)(lVar1 + -0x10) & 0x30000000) == 0) {
    LOCK();
    *(int *)(lVar1 + -0x10) = *(int *)(lVar1 + -0x10) + 1;
    UNLOCK();
  }
  *(undefined8 *)(lVar2 + 0x28) = 0;
  *(undefined8 *)(lVar2 + 0x30) = 0;
  *(undefined8 *)(lVar2 + 0x38) = 0;
  *(undefined8 *)(lVar2 + 0x40) = 0;
  *(undefined8 *)(lVar2 + 0x48) = 0;
  *(undefined8 *)(lVar2 + 0x50) = 0;
  *(undefined8 *)(lVar2 + 0x58) = 0;
  *(undefined8 *)(lVar2 + 0x60) = 0;
  InitializeCriticalSection((LPCRITICAL_SECTION)(lVar2 + 0x28));
  *(undefined8 *)(lVar2 + 0x58) = 0;
  *(undefined8 *)(lVar2 + 0x60) = 0;
  return lVar2;
}



############ FUN_ 1805b6190 size=227 ############

undefined8 *
FUN_1805b6190(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  *param_1 = pace::eden::thrift::pub::TimeLimitRecord::vftable;
  *(undefined4 *)(param_1 + 1) = *(undefined4 *)(param_2 + 8);
  FUN_1805b46a0(param_1 + 2,param_2 + 0x10,param_3,param_4,0xfffffffffffffffe);
  FUN_1805a4070(param_1 + 5,param_2 + 0x28);
  FUN_1805a4070(param_1 + 9,param_2 + 0x48);
  param_1[0xd] = *(undefined8 *)(param_2 + 0x68);
  FUN_1805a4070(param_1 + 0xe,param_2 + 0x70);
  *(undefined4 *)(param_1 + 0x12) = *(undefined4 *)(param_2 + 0x90);
  *(undefined4 *)((longlong)param_1 + 0x94) = *(undefined4 *)(param_2 + 0x94);
  *(undefined1 *)(param_1 + 0x13) = *(undefined1 *)(param_2 + 0x98);
  *(undefined1 *)((longlong)param_1 + 0x99) = *(undefined1 *)(param_2 + 0x99);
  *(undefined1 *)((longlong)param_1 + 0x9a) = *(undefined1 *)(param_2 + 0x9a);
  *(undefined1 *)((longlong)param_1 + 0x9b) = *(undefined1 *)(param_2 + 0x9b);
  *(undefined8 *)((longlong)param_1 + 0x9c) = *(undefined8 *)(param_2 + 0x9c);
  *(undefined4 *)((longlong)param_1 + 0xa4) = *(undefined4 *)(param_2 + 0xa4);
  return param_1;
}



############ FUN_ 1805b5600 size=175 ############

undefined8 * FUN_1805b5600(undefined8 *param_1,longlong param_2)

{
  *param_1 = pace::eden::thrift::pub::CountLimitRecord::vftable;
  *(undefined4 *)(param_1 + 1) = *(undefined4 *)(param_2 + 8);
  FUN_1805b46a0(param_1 + 2,param_2 + 0x10);
  *(undefined1 *)(param_1 + 5) = *(undefined1 *)(param_2 + 0x28);
  *(undefined1 *)((longlong)param_1 + 0x29) = *(undefined1 *)(param_2 + 0x29);
  *(undefined4 *)((longlong)param_1 + 0x2c) = *(undefined4 *)(param_2 + 0x2c);
  *(undefined4 *)(param_1 + 6) = *(undefined4 *)(param_2 + 0x30);
  *(undefined4 *)((longlong)param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);
  *(undefined1 *)(param_1 + 7) = *(undefined1 *)(param_2 + 0x38);
  *(undefined1 *)((longlong)param_1 + 0x39) = *(undefined1 *)(param_2 + 0x39);
  *(undefined4 *)((longlong)param_1 + 0x3c) = *(undefined4 *)(param_2 + 0x3c);
  *(undefined4 *)(param_1 + 8) = *(undefined4 *)(param_2 + 0x40);
  *(undefined4 *)((longlong)param_1 + 0x44) = *(undefined4 *)(param_2 + 0x44);
  *(undefined1 *)(param_1 + 9) = *(undefined1 *)(param_2 + 0x48);
  *(undefined1 *)((longlong)param_1 + 0x49) = *(undefined1 *)(param_2 + 0x49);
  *(undefined1 *)((longlong)param_1 + 0x4a) = *(undefined1 *)(param_2 + 0x4a);
  *(undefined8 *)((longlong)param_1 + 0x4b) = *(undefined8 *)(param_2 + 0x4b);
  *(undefined4 *)((longlong)param_1 + 0x53) = *(undefined4 *)(param_2 + 0x53);
  *(undefined2 *)((longlong)param_1 + 0x57) = *(undefined2 *)(param_2 + 0x57);
  *(undefined1 *)((longlong)param_1 + 0x59) = *(undefined1 *)(param_2 + 0x59);
  return param_1;
}



############ FUN_ 1805b46a0 size=177 ############

undefined8 *
FUN_1805b46a0(undefined8 *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  void *_Dst;
  undefined8 uVar1;
  ulonglong uVar2;
  size_t _Size;
  
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  uVar2 = param_2[1] - *param_2;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  if (uVar2 != 0) {
    if (0x7fffffffffffffff < uVar2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar1 = FUN_1805bc8b0(param_1,uVar2,param_3,param_4,0xfffffffffffffffe);
    *param_1 = uVar1;
    param_1[1] = uVar1;
    _Dst = (void *)*param_1;
    param_1[2] = uVar2 + (longlong)_Dst;
    _Size = param_2[1] - *param_2;
    memmove(_Dst,(void *)*param_2,_Size);
    param_1[1] = _Size + (longlong)_Dst;
  }
  return param_1;
}



############ FUN_ 1807b0801 size=259 ############

void FUN_1807b0801(undefined8 param_1,undefined8 param_2)

{
  longlong unaff_retaddr;
  
                    /* WARNING: Could not recover jumptable at 0x0001807b0911. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(unaff_retaddr + -0x6f590))(param_1,param_2,(code *)(unaff_retaddr + -0x6f590));
  return;
}



############ FUN_ 1805d6540 size=78 ############

undefined8 * FUN_1805d6540(undefined8 *param_1)

{
  param_1[1] = 0;
  param_1[2] = 0;
  *param_1 = apache::thrift::TException::vftable;
  FUN_1805a4070(param_1 + 3);
  *param_1 = apache::thrift::transport::TTransportException::vftable;
  *(undefined4 *)(param_1 + 7) = 0;
  return param_1;
}



############ FUN_ 180622370 size=143 ############

undefined8 * FUN_180622370(undefined8 *param_1,undefined8 *param_2)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  longlong *plVar5;
  
  *param_1 = apache::thrift::protocol::TProtocol::vftable;
  param_1[1] = *param_2;
  lVar4 = param_2[1];
  param_1[2] = lVar4;
  if (lVar4 != 0) {
    LOCK();
    *(int *)(lVar4 + 8) = *(int *)(lVar4 + 8) + 1;
    UNLOCK();
  }
  param_1[3] = *param_2;
  plVar5 = (longlong *)param_2[1];
  if (plVar5 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar5 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plVar5 + 8))(plVar5);
      LOCK();
      piVar2 = (int *)((longlong)plVar5 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar5 + 0x10))(plVar5);
      }
    }
  }
  return param_1;
}



############ FUN_ 1805b4bc0 size=507 ############

undefined8 *
FUN_1805b4bc0(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  
  *param_1 = pace::eden::thrift::pub::AuthChain::vftable;
  FUN_1805b4760(param_1 + 1,param_2 + 8,param_3,param_4,0xfffffffffffffffe);
  *(undefined1 *)(param_1 + 4) = *(undefined1 *)(param_2 + 0x20);
  *(undefined1 *)((longlong)param_1 + 0x21) = *(undefined1 *)(param_2 + 0x21);
  *(undefined4 *)((longlong)param_1 + 0x24) = *(undefined4 *)(param_2 + 0x24);
  FUN_1805a4070(param_1 + 5,param_2 + 0x28);
  FUN_1805a4070(param_1 + 9,param_2 + 0x48);
  param_1[0xd] = *(undefined8 *)(param_2 + 0x68);
  param_1[0xe] = *(undefined8 *)(param_2 + 0x70);
  FUN_1805a4070(param_1 + 0xf,param_2 + 0x78);
  *(undefined1 *)(param_1 + 0x13) = *(undefined1 *)(param_2 + 0x98);
  *(undefined4 *)((longlong)param_1 + 0x9c) = *(undefined4 *)(param_2 + 0x9c);
  FUN_1805b6070(param_1 + 0x14,param_2 + 0xa0);
  *(undefined4 *)(param_1 + 0x3e) = *(undefined4 *)(param_2 + 0x1f0);
  *(undefined1 *)((longlong)param_1 + 500) = *(undefined1 *)(param_2 + 500);
  param_1[0x3f] = *(undefined8 *)(param_2 + 0x1f8);
  FUN_1805b46a0(param_1 + 0x40,param_2 + 0x200);
  param_1[0x43] = pace::eden::thrift::pub::SharedLicenseInfo::vftable;
  param_1[0x44] = *(undefined8 *)(param_2 + 0x220);
  FUN_1805a4070(param_1 + 0x45,param_2 + 0x228);
  FUN_1805a4070(param_1 + 0x49,param_2 + 0x248);
  *(undefined4 *)(param_1 + 0x4d) = *(undefined4 *)(param_2 + 0x268);
  *(undefined4 *)((longlong)param_1 + 0x26c) = *(undefined4 *)(param_2 + 0x26c);
  *(undefined4 *)(param_1 + 0x4e) = *(undefined4 *)(param_2 + 0x270);
  *(undefined4 *)((longlong)param_1 + 0x274) = *(undefined4 *)(param_2 + 0x274);
  FUN_1805b46a0(param_1 + 0x4f,param_2 + 0x278);
  *(undefined4 *)(param_1 + 0x52) = *(undefined4 *)(param_2 + 0x290);
  *(undefined4 *)((longlong)param_1 + 0x294) = *(undefined4 *)(param_2 + 0x294);
  param_1[0x53] = *(undefined8 *)(param_2 + 0x298);
  *(undefined2 *)(param_1 + 0x54) = *(undefined2 *)(param_2 + 0x2a0);
  FUN_1805b4970(param_1 + 0x55,param_2 + 0x2a8);
  FUN_1805b48e0(param_1 + 0x58,param_2 + 0x2c0);
  uVar1 = *(undefined8 *)(param_2 + 0x2e0);
  param_1[0x5b] = *(undefined8 *)(param_2 + 0x2d8);
  param_1[0x5c] = uVar1;
  *(undefined2 *)(param_1 + 0x5d) = *(undefined2 *)(param_2 + 0x2e8);
  *(undefined1 *)((longlong)param_1 + 0x2ea) = *(undefined1 *)(param_2 + 0x2ea);
  return param_1;
}



############ FUN_ 1805b5540 size=181 ############

undefined8 *
FUN_1805b5540(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  *param_1 = pace::eden::thrift::pub::AuthSituation::vftable;
  *(undefined4 *)(param_1 + 1) = *(undefined4 *)(param_2 + 8);
  FUN_1805b5c00(param_1 + 2,param_2 + 0x10,param_3,param_4,0xfffffffffffffffe);
  *(undefined1 *)(param_1 + 0x8e) = *(undefined1 *)(param_2 + 0x470);
  *(undefined4 *)((longlong)param_1 + 0x474) = *(undefined4 *)(param_2 + 0x474);
  *(undefined4 *)(param_1 + 0x8f) = *(undefined4 *)(param_2 + 0x478);
  *(undefined4 *)((longlong)param_1 + 0x47c) = *(undefined4 *)(param_2 + 0x47c);
  FUN_1805b4dc0(param_1 + 0x90,param_2 + 0x480);
  *(undefined4 *)(param_1 + 0x117) = *(undefined4 *)(param_2 + 0x8b8);
  *(undefined2 *)((longlong)param_1 + 0x8bc) = *(undefined2 *)(param_2 + 0x8bc);
  *(undefined1 *)((longlong)param_1 + 0x8be) = *(undefined1 *)(param_2 + 0x8be);
  return param_1;
}



############ FUN_ 1805ba4b0 size=710 ############

longlong FUN_1805ba4b0(longlong param_1,longlong param_2)

{
  undefined8 uVar1;
  longlong *plVar2;
  
  plVar2 = (longlong *)(param_2 + 0x18);
  *(undefined8 *)(param_1 + 8) = *(undefined8 *)(param_2 + 8);
  *(undefined8 *)(param_1 + 0x10) = *(undefined8 *)(param_2 + 0x10);
  if ((longlong *)(param_1 + 0x18) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x30)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x18,plVar2,*(undefined8 *)(param_2 + 0x28));
  }
  *(undefined4 *)(param_1 + 0x38) = *(undefined4 *)(param_2 + 0x38);
  FUN_1805ba780(param_1 + 0x40,param_2 + 0x40);
  *(undefined4 *)(param_1 + 400) = *(undefined4 *)(param_2 + 400);
  *(undefined1 *)(param_1 + 0x194) = *(undefined1 *)(param_2 + 0x194);
  *(undefined8 *)(param_1 + 0x198) = *(undefined8 *)(param_2 + 0x198);
  FUN_1805b9910(param_1 + 0x1a0,param_2 + 0x1a0);
  FUN_1805b9bb0(param_1 + 0x1b8,param_2 + 0x1b8);
  plVar2 = (longlong *)(param_2 + 0x1d0);
  if ((longlong *)(param_1 + 0x1d0) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x1e8)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x1d0,plVar2,*(undefined8 *)(param_2 + 0x1e0));
  }
  plVar2 = (longlong *)(param_2 + 0x1f0);
  if ((longlong *)(param_1 + 0x1f0) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x208)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x1f0,plVar2,*(undefined8 *)(param_2 + 0x200));
  }
  plVar2 = (longlong *)(param_2 + 0x210);
  if ((longlong *)(param_1 + 0x210) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x228)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x210,plVar2,*(undefined8 *)(param_2 + 0x220));
  }
  plVar2 = (longlong *)(param_2 + 0x230);
  if ((longlong *)(param_1 + 0x230) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x248)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x230,plVar2,*(undefined8 *)(param_2 + 0x240));
  }
  plVar2 = (longlong *)(param_2 + 0x250);
  if ((longlong *)(param_1 + 0x250) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x268)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x250,plVar2,*(undefined8 *)(param_2 + 0x260));
  }
  plVar2 = (longlong *)(param_2 + 0x270);
  if ((longlong *)(param_1 + 0x270) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x288)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x270,plVar2,*(undefined8 *)(param_2 + 0x280));
  }
  plVar2 = (longlong *)(param_2 + 0x290);
  if ((longlong *)(param_1 + 0x290) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x2a8)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x290,plVar2,*(undefined8 *)(param_2 + 0x2a0));
  }
  plVar2 = (longlong *)(param_2 + 0x2b8);
  *(undefined4 *)(param_1 + 0x2b0) = *(undefined4 *)(param_2 + 0x2b0);
  if ((longlong *)(param_1 + 0x2b8) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x2d0)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x2b8,plVar2,*(undefined8 *)(param_2 + 0x2c8));
  }
  *(undefined4 *)(param_1 + 0x2d8) = *(undefined4 *)(param_2 + 0x2d8);
  *(undefined1 *)(param_1 + 0x2dc) = *(undefined1 *)(param_2 + 0x2dc);
  *(undefined1 *)(param_1 + 0x2dd) = *(undefined1 *)(param_2 + 0x2dd);
  *(undefined1 *)(param_1 + 0x2de) = *(undefined1 *)(param_2 + 0x2de);
  *(undefined1 *)(param_1 + 0x2df) = *(undefined1 *)(param_2 + 0x2df);
  FUN_1805ba930(param_1 + 0x2e0,param_2 + 0x2e0);
  FUN_1805ba930(param_1 + 0x388,param_2 + 0x388);
  *(undefined4 *)(param_1 + 0x430) = *(undefined4 *)(param_2 + 0x430);
  *(undefined4 *)(param_1 + 0x434) = *(undefined4 *)(param_2 + 0x434);
  *(undefined4 *)(param_1 + 0x438) = *(undefined4 *)(param_2 + 0x438);
  uVar1 = *(undefined8 *)(param_2 + 0x444);
  *(undefined8 *)(param_1 + 0x43c) = *(undefined8 *)(param_2 + 0x43c);
  *(undefined8 *)(param_1 + 0x444) = uVar1;
  *(undefined8 *)(param_1 + 0x44c) = *(undefined8 *)(param_2 + 0x44c);
  *(undefined4 *)(param_1 + 0x454) = *(undefined4 *)(param_2 + 0x454);
  *(undefined1 *)(param_1 + 0x458) = *(undefined1 *)(param_2 + 0x458);
  return param_1;
}



############ FUN_ 1805ba120 size=566 ############

longlong FUN_1805ba120(longlong param_1,longlong param_2)

{
  undefined8 uVar1;
  longlong *plVar2;
  
  *(undefined4 *)(param_1 + 8) = *(undefined4 *)(param_2 + 8);
  *(undefined4 *)(param_1 + 0xc) = *(undefined4 *)(param_2 + 0xc);
  *(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(param_2 + 0x10);
  *(undefined4 *)(param_1 + 0x14) = *(undefined4 *)(param_2 + 0x14);
  FUN_1805b9910(param_1 + 0x18,param_2 + 0x18);
  *(undefined8 *)(param_1 + 0x30) = *(undefined8 *)(param_2 + 0x30);
  *(undefined8 *)(param_1 + 0x38) = *(undefined8 *)(param_2 + 0x38);
  *(undefined8 *)(param_1 + 0x40) = *(undefined8 *)(param_2 + 0x40);
  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(param_2 + 0x48);
  *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_2 + 0x50);
  *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_2 + 0x54);
  *(undefined1 *)(param_1 + 0x58) = *(undefined1 *)(param_2 + 0x58);
  *(undefined1 *)(param_1 + 0x59) = *(undefined1 *)(param_2 + 0x59);
  FUN_1805ba930(param_1 + 0x60,param_2 + 0x60);
  FUN_1805ba400(param_1 + 0x108,param_2 + 0x108);
  FUN_1805ba930(param_1 + 0x168,param_2 + 0x168);
  plVar2 = (longlong *)(param_2 + 0x210);
  if ((longlong *)(param_1 + 0x210) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x228)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x210,plVar2,*(undefined8 *)(param_2 + 0x220));
  }
  plVar2 = (longlong *)(param_2 + 0x230);
  if ((longlong *)(param_1 + 0x230) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x248)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x230,plVar2,*(undefined8 *)(param_2 + 0x240));
  }
  plVar2 = (longlong *)(param_2 + 0x250);
  if ((longlong *)(param_1 + 0x250) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x268)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x250,plVar2,*(undefined8 *)(param_2 + 0x260));
  }
  plVar2 = (longlong *)(param_2 + 0x270);
  if ((longlong *)(param_1 + 0x270) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x288)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x270,plVar2,*(undefined8 *)(param_2 + 0x280));
  }
  plVar2 = (longlong *)(param_2 + 0x290);
  if ((longlong *)(param_1 + 0x290) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x2a8)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x290,plVar2,*(undefined8 *)(param_2 + 0x2a0));
  }
  plVar2 = (longlong *)(param_2 + 0x2b0);
  if ((longlong *)(param_1 + 0x2b0) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x2c8)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x2b0,plVar2,*(undefined8 *)(param_2 + 0x2c0));
  }
  plVar2 = (longlong *)(param_2 + 0x2d0);
  if ((longlong *)(param_1 + 0x2d0) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x2e8)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x2d0,plVar2,*(undefined8 *)(param_2 + 0x2e0));
  }
  FUN_1805b9d10(param_1 + 0x2f0,param_2 + 0x2f0);
  plVar2 = (longlong *)(param_2 + 0x3f8);
  if ((longlong *)(param_1 + 0x3f8) != plVar2) {
    if (0xf < *(ulonglong *)(param_2 + 0x410)) {
      plVar2 = (longlong *)*plVar2;
    }
    FUN_1805a6cb0(param_1 + 0x3f8,plVar2,*(undefined8 *)(param_2 + 0x408));
  }
  uVar1 = *(undefined8 *)(param_2 + 0x420);
  *(undefined8 *)(param_1 + 0x418) = *(undefined8 *)(param_2 + 0x418);
  *(undefined8 *)(param_1 + 0x420) = uVar1;
  *(undefined8 *)(param_1 + 0x428) = *(undefined8 *)(param_2 + 0x428);
  *(undefined1 *)(param_1 + 0x430) = *(undefined1 *)(param_2 + 0x430);
  return param_1;
}



############ FUN_ 18067dc30 size=294 ############

undefined8 * FUN_18067dc30(undefined8 *param_1,undefined8 *param_2)

{
  void *_Src;
  void *pvVar1;
  longlong lVar2;
  void *_Src_00;
  ulonglong uVar3;
  ulonglong uVar4;
  size_t sVar5;
  ulonglong uVar6;
  
  if (param_1 != param_2) {
    pvVar1 = (void *)*param_1;
    lVar2 = param_2[1];
    _Src_00 = (void *)*param_2;
    sVar5 = lVar2 - (longlong)_Src_00;
    uVar3 = param_1[1] - (longlong)pvVar1 >> 2;
    uVar6 = param_1[2] - (longlong)pvVar1 >> 2;
    uVar4 = (longlong)sVar5 >> 2;
    if (uVar6 < uVar4) {
      if (0x3fffffffffffffff < uVar4) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69c0();
      }
      uVar3 = uVar4;
      if ((uVar6 <= 0x3fffffffffffffff - (uVar6 >> 1)) &&
         (uVar3 = (uVar6 >> 1) + uVar6, uVar3 < uVar4)) {
        uVar3 = uVar4;
      }
      if (pvVar1 != (void *)0x0) {
        FUN_1805a7c30(param_1,pvVar1);
      }
      FUN_180622660(param_1,uVar3);
      pvVar1 = (void *)*param_1;
      memmove(pvVar1,_Src_00,sVar5);
      param_1[1] = sVar5 + (longlong)pvVar1;
    }
    else if (uVar3 < uVar4) {
      _Src = (void *)((longlong)_Src_00 + uVar3 * 4);
      memmove(pvVar1,_Src_00,(longlong)_Src - (longlong)_Src_00);
      pvVar1 = (void *)param_1[1];
      sVar5 = lVar2 - (longlong)_Src;
      memmove(pvVar1,_Src,sVar5);
      param_1[1] = sVar5 + (longlong)pvVar1;
    }
    else {
      memmove(pvVar1,_Src_00,sVar5);
      param_1[1] = (void *)((longlong)pvVar1 + uVar4 * 4);
    }
  }
  return param_1;
}



############ FUN_ 180954a20 size=741 ############

/* WARNING: Removing unreachable block (ram,0x000180954b18) */

void FUN_180954a20(longlong param_1,longlong *param_2)

{
  (**(code **)(*param_2 + 0x18))(param_2,"AuthSearch");
  (**(code **)(*param_2 + 0x28))(param_2,"authId",8);
  (**(code **)(*param_2 + 0x88))(param_2,*(undefined4 *)(param_1 + 8));
  (**(code **)(*param_2 + 0x30))(param_2);
  (**(code **)(*param_2 + 0x28))(param_2,"publisherId",8);
  (**(code **)(*param_2 + 0x88))(param_2,*(undefined4 *)(param_1 + 0xc));
  (**(code **)(*param_2 + 0x30))(param_2);
  (**(code **)(*param_2 + 0x28))(param_2,"matchUndefinedPublisherIds",2);
  FUN_180954dc0();
  FUN_180954d05();
  *(int *)param_2 = (int)*param_2 << 4;
  FUN_180954dc1();
  return;
}



############ FUN_ 1805a4530 size=149 ############

undefined8 * FUN_1805a4530(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  FUN_1805a4b90();
  *param_1 = boost::lock_error::vftable;
  param_1[9] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x50);
  param_1[10] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[0xb] = *(undefined8 *)(param_2 + 0x58);
  param_1[0xc] = *(undefined8 *)(param_2 + 0x60);
  *(undefined4 *)(param_1 + 0xd) = *(undefined4 *)(param_2 + 0x68);
  *param_1 = boost::exception_detail::error_info_injector<boost::lock_error>::vftable;
  param_1[9] = boost::exception_detail::error_info_injector<boost::lock_error>::vftable;
  return param_1;
}



############ FUN_ 1805a4b90 size=119 ############

undefined8 *
FUN_1805a4b90(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined8 uVar4;
  
  uVar4 = 0xfffffffffffffffe;
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::system::system_error::vftable;
  uVar1 = *(undefined4 *)(param_2 + 0x1c);
  uVar2 = *(undefined4 *)(param_2 + 0x20);
  uVar3 = *(undefined4 *)(param_2 + 0x24);
  *(undefined4 *)(param_1 + 3) = *(undefined4 *)(param_2 + 0x18);
  *(undefined4 *)((longlong)param_1 + 0x1c) = uVar1;
  *(undefined4 *)(param_1 + 4) = uVar2;
  *(undefined4 *)((longlong)param_1 + 0x24) = uVar3;
  FUN_1805a4070(param_1 + 5,param_2 + 0x28,param_3,param_4,uVar4);
  *param_1 = boost::thread_exception::vftable;
  return param_1;
}



############ FUN_ 18070abe0 size=34 ############

void FUN_18070abe0(longlong param_1)

{
  FUN_1806214e0(param_1,0,0x38);
  *(longlong *)(param_1 + 8) = param_1 + 0x14;
  return;
}



############ FUN_ 1806048c0 size=197 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1806048c0(void)

{
  uint uVar1;
  uint *puVar2;
  HANDLE hEvent;
  undefined8 uVar3;
  undefined1 auStack_a8 [32];
  uint *local_88;
  undefined1 local_80;
  undefined8 local_78;
  undefined1 local_68 [80];
  ulonglong local_18;
  
  local_78 = 0xfffffffffffffffe;
  local_18 = DAT_182615970 ^ (ulonglong)auStack_a8;
  if (DAT_18265f269 == '\0') {
    puVar2 = (uint *)FUN_180606ba0();
    local_80 = 0;
    local_88 = puVar2;
    if (puVar2 == (uint *)0x0) {
      uVar3 = FUN_1805a4ab0(local_68,1,"boost unique_lock has no mutex");
                    /* WARNING: Subroutine does not return */
      FUN_1805a3bb0(uVar3);
    }
    FUN_1805a9420(puVar2);
    local_80 = 1;
    if (DAT_18265f269 == '\0') {
      FUN_1806054c0();
    }
    LOCK();
    uVar1 = *puVar2;
    *puVar2 = *puVar2 + 0x80000000;
    UNLOCK();
    if (((uVar1 >> 0x1e & 1) == 0) && (-0x80000000 < (int)uVar1)) {
      LOCK();
      uVar1 = *local_88;
      *local_88 = *local_88 | 0x40000000;
      UNLOCK();
      if ((uVar1 >> 0x1e & 1) == 0) {
        hEvent = (HANDLE)FUN_1805a9100(local_88);
        SetEvent(hEvent);
      }
    }
  }
}



############ FUN_ 180608a30 size=408 ############

undefined8 *
FUN_180608a30(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  int iVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  uint uVar4;
  undefined8 *puVar5;
  longlong lVar6;
  bool bVar7;
  undefined8 uVar8;
  
  uVar8 = 0xfffffffffffffffe;
  lVar6 = (longlong)&DAT_18265f298 +
          (SUB168(ZEXT816(0xc7ce0c7ce0c7ce0d) * ZEXT816(0x18265f298),8) >> 5) * -0x29;
  puVar5 = (undefined8 *)0x0;
  LOCK();
  iVar1 = *(int *)(&DAT_18265dbd0 + lVar6 * 4);
  *(int *)(&DAT_18265dbd0 + lVar6 * 4) = 1;
  UNLOCK();
  puVar2 = puVar5;
  puVar3 = DAT_18265f298;
  while (DAT_18265f298 = puVar3, iVar1 != 0) {
    uVar4 = (uint)puVar2;
    if ((3 < uVar4) && (0xf < uVar4)) {
      Sleep((uint)(0x1f < uVar4));
    }
    puVar2 = (undefined8 *)(ulonglong)(uVar4 + 1);
    LOCK();
    iVar1 = *(int *)(&DAT_18265dbd0 + lVar6 * 4);
    *(int *)(&DAT_18265dbd0 + lVar6 * 4) = 1;
    UNLOCK();
    puVar3 = DAT_18265f298;
  }
  *(undefined4 *)(&DAT_18265dbd0 + lVar6 * 4) = 0;
  if (puVar3 == (undefined8 *)0x0) {
    LOCK();
    bVar7 = DAT_18265f2a0 == 0;
    if (bVar7) {
      DAT_18265f2a0 = 1;
    }
    UNLOCK();
    while (!bVar7) {
      LOCK();
      bVar7 = DAT_18265f2a0 == 0;
      if (bVar7) {
        DAT_18265f2a0 = 1;
      }
      UNLOCK();
    }
    LOCK();
    iVar1 = *(int *)(&DAT_18265dbd0 + lVar6 * 4);
    *(int *)(&DAT_18265dbd0 + lVar6 * 4) = 1;
    UNLOCK();
    puVar2 = puVar5;
    puVar3 = DAT_18265f298;
    while (DAT_18265f298 = puVar3, iVar1 != 0) {
      uVar4 = (uint)puVar2;
      if ((3 < uVar4) && (0xf < uVar4)) {
        Sleep((uint)(0x1f < uVar4));
      }
      puVar2 = (undefined8 *)(ulonglong)(uVar4 + 1);
      LOCK();
      iVar1 = *(int *)(&DAT_18265dbd0 + lVar6 * 4);
      *(int *)(&DAT_18265dbd0 + lVar6 * 4) = 1;
      UNLOCK();
      puVar3 = DAT_18265f298;
    }
    *(undefined4 *)(&DAT_18265dbd0 + lVar6 * 4) = 0;
    if (puVar3 == (undefined8 *)0x0) {
      puVar2 = (undefined8 *)FUN_1811316e0(8);
      puVar3 = puVar5;
      if (puVar2 != (undefined8 *)0x0) {
        *puVar2 = 0;
        puVar3 = puVar2;
      }
      FUN_1805ccdd0(FUN_180608bd0,puVar3,param_3,param_4,uVar8);
      LOCK();
      iVar1 = *(int *)(&DAT_18265dbd0 + lVar6 * 4);
      *(int *)(&DAT_18265dbd0 + lVar6 * 4) = 1;
      UNLOCK();
      while (iVar1 != 0) {
        uVar4 = (uint)puVar5;
        if ((3 < uVar4) && (0xf < uVar4)) {
          Sleep((uint)(0x1f < uVar4));
        }
        puVar5 = (undefined8 *)(ulonglong)(uVar4 + 1);
        LOCK();
        iVar1 = *(int *)(&DAT_18265dbd0 + lVar6 * 4);
        *(int *)(&DAT_18265dbd0 + lVar6 * 4) = 1;
        UNLOCK();
      }
      DAT_18265f298 = puVar3;
      *(undefined4 *)(&DAT_18265dbd0 + lVar6 * 4) = 0;
    }
    LOCK();
    UNLOCK();
    DAT_18265f2a0 = 0;
  }
  return puVar3;
}



############ FUN_ 1807227a0 size=1009 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x000180722bc0) overlaps instruction at (ram,0x000180722bbd)
    */
/* WARNING: Removing unreachable block (ram,0x000180722a61) */
/* WARNING: Removing unreachable block (ram,0x000180722817) */
/* WARNING: Removing unreachable block (ram,0x0001807227dc) */
/* WARNING: Removing unreachable block (ram,0x00018072293f) */
/* WARNING: Removing unreachable block (ram,0x000180722bbd) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_1807227a0(undefined8 *param_1)

{
  uint uVar1;
  uint uVar2;
  longlong lVar3;
  longlong lVar4;
  int unaff_retaddr;
  
  *param_1 = pace::Stopwatch::vftable;
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  uVar1 = DAT_1811dc8b0 ^
          (DAT_1811dc8ac ^
          (DAT_1811dc8a8 ^
          (DAT_1811dc8a4 ^
          (DAT_1811dc8a0 ^
          (DAT_1811dc89c ^
          (DAT_1811dc898 ^
          (DAT_1811dc894 ^
          (DAT_1811dc890 ^
          (DAT_1811dc88c ^
          (DAT_1811dc888 ^
          (DAT_1811dc884 ^
          (DAT_1811dc880 ^
          (DAT_1811dc87c ^
          (DAT_1811dc878 ^
          (DAT_1811dc874 ^
          (DAT_1811dc870 ^
          (DAT_1811dc86c ^
          (DAT_1811dc868 ^
          (DAT_1811dc864 ^
          (DAT_1811dc860 ^
          (DAT_1811dc85c ^
          (DAT_1811dc858 ^
          (DAT_1811dc854 ^
          (DAT_1811dc850 ^
          (DAT_1811dc84c ^
          (DAT_1811dc848 ^ (DAT_1811dc844 ^ (DAT_1811dc840 ^ 0x811c9e29) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab;
  do {
    FUN_180722dc7(0xeb2c);
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  do {
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar1 = (_UNK_1811dc938 ^
          (_UNK_1811dc934 ^
          (_UNK_1811dc930 ^
          (_UNK_1811dc92c ^
          (_UNK_1811dc928 ^
          (_UNK_1811dc924 ^
          (_UNK_1811dc920 ^
          (_UNK_1811dc91c ^
          (_UNK_1811dc918 ^
          (_UNK_1811dc914 ^
          (_UNK_1811dc910 ^
          (_UNK_1811dc90c ^
          (_UNK_1811dc908 ^
          (_UNK_1811dc904 ^
          (_UNK_1811dc900 ^
          (_UNK_1811dc8fc ^
          (_UNK_1811dc8f8 ^
          (_UNK_1811dc8f4 ^
          (_UNK_1811dc8f0 ^
          (_UNK_1811dc8ec ^
          (_UNK_1811dc8e8 ^
          (_UNK_1811dc8e4 ^
          (_UNK_1811dc8e0 ^
          (_UNK_1811dc8dc ^
          (_UNK_1811dc8d8 ^
          (_UNK_1811dc8d4 ^
          (_UNK_1811dc8d0 ^
          (_UNK_1811dc8cc ^
          (_UNK_1811dc8c8 ^
          (_UNK_1811dc8c4 ^
          (_UNK_1811dc8c0 ^
          (_UNK_1811dc8bc ^
          (_UNK_1811dc8b8 ^ (DAT_1811dc8b4 ^ uVar1 * 0x10001ab) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab) *
          0x10001ab) * 0x10001ab) * 0x10001ab) * 0x10001ab ^ _UNK_1811dc93c;
  uVar1 = (uVar1 * 0x10001ab >> 10 | uVar1 * 0x6ac00000) + 0x5e62c839;
  do {
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  lVar3 = 0;
  if ((uVar1 >> 0x1c | uVar1 * 0x10) == 0xd006c762) {
    FUN_180723b20(param_1);
    func_0x00018072423f();
    lVar4 = lVar3 + 0x91;
                    /* WARNING: Could not recover jumptable at 0x000180722ff1. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(&UNK_180722f6f +
              (lVar4 - ((((lVar3 - lVar4 ^ 0xffffffffffffffffU) + 1) - lVar4 ^ 0xffffffffffffffff) +
                       1))))();
    return;
  }
  FUN_180723b20(param_1);
  FUN_180722dc7();
  thunk_FUN_1805a9280();
  return;
}



############ FUN_ 1807257a0 size=691 ############

/* WARNING: Instruction at (ram,0x000180725a5a) overlaps instruction at (ram,0x000180725a56)
    */
/* WARNING: Removing unreachable block (ram,0x00018072629d) */
/* WARNING: Removing unreachable block (ram,0x000180725819) */
/* WARNING: Removing unreachable block (ram,0x000180725a56) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

ulonglong FUN_1807257a0(longlong param_1)

{
  uint *puVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  undefined4 *puVar37;
  undefined8 uVar38;
  uint uVar39;
  int iVar40;
  uint uVar41;
  uint uVar42;
  ulonglong uVar43;
  longlong lVar44;
  undefined1 *puVar45;
  uint uVar46;
  undefined8 in_R10;
  bool bVar47;
  int unaff_retaddr;
  undefined1 auStack_48 [32];
  
  puVar45 = auStack_48;
  uVar46 = (uint)&stack0x00000000 & 0xfff;
  uVar39 = (uint)&stack0x00000000 & 0x72ff;
  iVar40 = uVar39 * uVar39 + 1;
  uVar46 = (uVar46 * uVar46 * 0x10 + 4) % 0x13;
  uVar39 = (iVar40 >> 4) + (iVar40 >> 1) + iVar40 * 0x24924924 >> 0x1d;
  uVar39 = (int)(uVar39 - 7) >> 0x1f & uVar39;
  uVar39 = (int)(-uVar39 | uVar39) >> 0x1f;
  puVar37 = &DAT_181203004;
  *(undefined1 *)(param_1 + 8) = 1;
  do {
    bVar47 = false;
    uVar43 = 0x5d38;
    uVar2 = FUN_180726856();
    if ((bVar47) && ((uVar43 & 0xe300) == 0)) {
      puVar1 = (uint *)((ulonglong)(uVar2 ^ 0x814945b9) + 0x75);
      *puVar1 = *puVar1 << 2 | *puVar1 >> 0x1e;
    }
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar2 = DAT_181203004 * 0x5bd1e995;
  uVar3 = DAT_181203008 * 0x5bd1e995;
  do {
    register0x00000020 =
         (BADSPACEBASE *)
         ((((ulonglong)register0x00000020 ^ 0xffffffffffffffff) + 1 ^ 0xffffffffffffffff) + 1);
    uVar41 = (*(uint *)register0x00000020 + 1) * *(uint *)register0x00000020 & 0x80000001;
    if ((int)uVar41 < 0) {
      uVar41 = (uVar41 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar41 != 0);
  uVar41 = _UNK_18120300c * 0x5bd1e995;
  uVar4 = _UNK_181203010 * 0x5bd1e995;
  uVar5 = _UNK_181203014 * 0x5bd1e995;
  uVar6 = _UNK_181203018 * 0x5bd1e995;
  uVar7 = _UNK_18120301c * 0x5bd1e995;
  uVar8 = _UNK_181203020 * 0x5bd1e995;
  uVar9 = _UNK_181203024 * 0x5bd1e995;
  uVar10 = _UNK_181203028 * 0x5bd1e995;
  uVar11 = _UNK_18120302c * 0x5bd1e995;
  uVar12 = _UNK_181203030 * 0x5bd1e995;
  uVar13 = _UNK_181203034 * 0x5bd1e995;
  do {
    uVar42 = (*(uint *)register0x00000020 + 1) * *(uint *)register0x00000020 & 0x80000001;
    if ((int)uVar42 < 0) {
      uVar42 = (uVar42 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar42 != 0);
  uVar42 = _UNK_181203038 * 0x5bd1e995;
  uVar14 = _UNK_18120303c * 0x5bd1e995;
  uVar15 = _UNK_181203040 * 0x5bd1e995;
  uVar16 = _UNK_181203044 * 0x5bd1e995;
  uVar17 = _UNK_181203048 * 0x5bd1e995;
  uVar18 = _UNK_18120304c * 0x5bd1e995;
  uVar19 = _UNK_181203050 * 0x5bd1e995;
  *(undefined1 *)(param_1 + 9) = 0;
  uVar20 = _UNK_181203054 * 0x5bd1e995;
  uVar21 = _UNK_181203058 * 0x5bd1e995;
  uVar22 = _UNK_18120305c * 0x5bd1e995;
  uVar23 = _UNK_181203060 * 0x5bd1e995;
  uVar24 = _UNK_181203064 * 0x5bd1e995;
  uVar25 = _UNK_181203068 * 0x5bd1e995;
  uVar26 = _UNK_18120306c * 0x5bd1e995;
  uVar27 = _UNK_181203070 * 0x5bd1e995;
  uVar28 = _UNK_181203074 * 0x5bd1e995;
  uVar29 = _UNK_181203078 * 0x5bd1e995;
  uVar30 = _UNK_18120307c * 0x5bd1e995;
  uVar31 = _UNK_181203080 * 0x5bd1e995;
  uVar32 = _UNK_181203084 * 0x5bd1e995;
  uVar33 = _UNK_181203088 * 0x5bd1e995;
  uVar34 = _UNK_18120308c * 0x5bd1e995;
  uVar35 = _UNK_181203090 * 0x5bd1e995;
  uVar36 = _UNK_181203094 * 0x5bd1e995;
  *(undefined8 *)(param_1 + 0x18) = 0;
  uVar2 = ((uint)(_UNK_18120309c * 0x5bd1e995) >> 0x18 ^ _UNK_18120309c * 0x5bd1e995) * 0x5bd1e995 ^
          (((uint)(_UNK_181203098 * 0x5bd1e995) >> 0x18 ^ _UNK_181203098 * 0x5bd1e995) * 0x5bd1e995
          ^ ((uVar36 >> 0x18 ^ uVar36) * 0x5bd1e995 ^
            ((uVar35 >> 0x18 ^ uVar35) * 0x5bd1e995 ^
            ((uVar34 >> 0x18 ^ uVar34) * 0x5bd1e995 ^
            ((uVar33 >> 0x18 ^ uVar33) * 0x5bd1e995 ^
            ((uVar32 >> 0x18 ^ uVar32) * 0x5bd1e995 ^
            ((uVar31 >> 0x18 ^ uVar31) * 0x5bd1e995 ^
            ((uVar30 >> 0x18 ^ uVar30) * 0x5bd1e995 ^
            ((uVar29 >> 0x18 ^ uVar29) * 0x5bd1e995 ^
            ((uVar28 >> 0x18 ^ uVar28) * 0x5bd1e995 ^
            ((uVar27 >> 0x18 ^ uVar27) * 0x5bd1e995 ^
            ((uVar26 >> 0x18 ^ uVar26) * 0x5bd1e995 ^
            ((uVar25 >> 0x18 ^ uVar25) * 0x5bd1e995 ^
            ((uVar24 >> 0x18 ^ uVar24) * 0x5bd1e995 ^
            ((uVar23 >> 0x18 ^ uVar23) * 0x5bd1e995 ^
            ((uVar22 >> 0x18 ^ uVar22) * 0x5bd1e995 ^
            ((uVar21 >> 0x18 ^ uVar21) * 0x5bd1e995 ^
            ((uVar20 >> 0x18 ^ uVar20) * 0x5bd1e995 ^
            ((uVar19 >> 0x18 ^ uVar19) * 0x5bd1e995 ^
            ((uVar18 >> 0x18 ^ uVar18) * 0x5bd1e995 ^
            ((uVar17 >> 0x18 ^ uVar17) * 0x5bd1e995 ^
            ((uVar16 >> 0x18 ^ uVar16) * 0x5bd1e995 ^
            ((uVar15 >> 0x18 ^ uVar15) * 0x5bd1e995 ^
            ((uVar14 >> 0x18 ^ uVar14) * 0x5bd1e995 ^
            ((uVar42 >> 0x18 ^ uVar42) * 0x5bd1e995 ^
            ((uVar13 >> 0x18 ^ uVar13) * 0x5bd1e995 ^
            ((uVar12 >> 0x18 ^ uVar12) * 0x5bd1e995 ^
            ((uVar11 >> 0x18 ^ uVar11) * 0x5bd1e995 ^
            ((uVar10 >> 0x18 ^ uVar10) * 0x5bd1e995 ^
            ((uVar9 >> 0x18 ^ uVar9) * 0x5bd1e995 ^
            ((uVar8 >> 0x18 ^ uVar8) * 0x5bd1e995 ^
            ((uVar7 >> 0x18 ^ uVar7) * 0x5bd1e995 ^
            ((uVar6 >> 0x18 ^ uVar6) * 0x5bd1e995 ^
            ((uVar5 >> 0x18 ^ uVar5) * 0x5bd1e995 ^
            ((uVar4 >> 0x18 ^ uVar4) * 0x5bd1e995 ^
            ((uVar41 >> 0x18 ^ uVar41) * 0x5bd1e995 ^
            ((uVar3 >> 0x18 ^ uVar3) * 0x5bd1e995 ^
            ((uVar2 >> 0x18 ^ uVar2) * 0x5bd1e995 ^ 0x40400e0e) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995;
  uVar43 = (ulonglong)uVar2;
  do {
    func_0x000180725792(0x5d38);
    uVar3 = (*(uint *)register0x00000020 + 1) * *(uint *)register0x00000020 & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  uVar2 = ((uint)(_UNK_181203100 * 0x5bd1e995) >> 0x18 ^ _UNK_181203100 * 0x5bd1e995) * 0x5bd1e995 ^
          (((uint)(_UNK_1812030fc * 0x5bd1e995) >> 0x18 ^ _UNK_1812030fc * 0x5bd1e995) * 0x5bd1e995
          ^ (((uint)(_UNK_1812030f8 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030f8 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030f4 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030f4 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030f0 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030f0 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030ec * 0x5bd1e995) >> 0x18 ^ _UNK_1812030ec * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030e8 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030e8 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030e4 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030e4 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030e0 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030e0 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030dc * 0x5bd1e995) >> 0x18 ^ _UNK_1812030dc * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030d8 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030d8 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030d4 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030d4 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030d0 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030d0 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030cc * 0x5bd1e995) >> 0x18 ^ _UNK_1812030cc * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030c8 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030c8 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030c4 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030c4 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030c0 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030c0 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030bc * 0x5bd1e995) >> 0x18 ^ _UNK_1812030bc * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030b8 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030b8 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030b4 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030b4 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030b0 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030b0 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030ac * 0x5bd1e995) >> 0x18 ^ _UNK_1812030ac * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030a8 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030a8 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030a4 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030a4 * 0x5bd1e995) *
             0x5bd1e995 ^
            (((uint)(_UNK_1812030a0 * 0x5bd1e995) >> 0x18 ^ _UNK_1812030a0 * 0x5bd1e995) *
             0x5bd1e995 ^ uVar2 * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995
            ) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) * 0x5bd1e995) *
            0x5bd1e995) * 0x5bd1e995;
  uVar2 = (uVar2 >> 0x12 | uVar2 << 0xe) + 0xfdc41b4c;
  if (uVar2 != uVar2 >> 3) {
    uVar38 = FUN_1807230e0();
    *(undefined8 *)(param_1 + 0x10) = uVar38;
    uVar43 = thunk_FUN_1805a9280();
    return uVar43;
  }
  uVar38 = FUN_1807230e0();
  *(undefined8 *)(param_1 + 0x10) = uVar38;
  do {
    *(undefined **)(puVar45 + -8) = &UNK_180726169;
    lVar44 = (longlong)
             (int)(((int)(-uVar39 | uVar39) >> 0x1f) * -0xf5b ^
                  (int)(-uVar46 | uVar46) >> 0x1f & 0x63bU);
    func_0x000180726ac4();
    *(undefined8 *)(puVar45 + -8) = in_R10;
    *(ulonglong *)(puVar45 + -0x10) = uVar43;
    *(undefined4 **)(puVar45 + -0x18) = puVar37;
    lVar44 = -lVar44;
    puVar37 = *(undefined4 **)(puVar45 + lVar44 + 0x948);
    uVar43 = *(ulonglong *)(puVar45 + lVar44 + 0x950);
    in_R10 = *(undefined8 *)(puVar45 + lVar44 + 0x958);
    puVar45 = puVar45 + lVar44 + 0x960;
    uVar2 = *(uint *)register0x00000020;
    uVar3 = (uVar2 + 1) * uVar2 & 0x80000001;
    if ((int)uVar3 < 0) {
      uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar3 != 0);
  return (ulonglong)uVar2;
}



############ FUN_ 180623230 size=206 ############

undefined8 * FUN_180623230(undefined8 *param_1,undefined8 *param_2)

{
  longlong *plVar1;
  int *piVar2;
  int iVar3;
  longlong lVar4;
  longlong *plVar5;
  undefined8 uVar6;
  
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  *param_1 = apache::thrift::transport::TUnderlyingTransport::vftable;
  param_1[5] = *param_2;
  lVar4 = param_2[1];
  param_1[6] = lVar4;
  if (lVar4 != 0) {
    LOCK();
    *(int *)(lVar4 + 8) = *(int *)(lVar4 + 8) + 1;
    UNLOCK();
  }
  *(undefined4 *)(param_1 + 7) = 0x200;
  *(undefined4 *)((longlong)param_1 + 0x3c) = 0x200;
  uVar6 = thunk_FUN_1811316e0(0x200);
  param_1[8] = uVar6;
  uVar6 = thunk_FUN_1811316e0(*(undefined4 *)((longlong)param_1 + 0x3c));
  param_1[9] = uVar6;
  plVar5 = (longlong *)param_2[1];
  if (plVar5 != (longlong *)0x0) {
    LOCK();
    plVar1 = plVar5 + 1;
    lVar4 = *plVar1;
    *(int *)plVar1 = (int)*plVar1 + -1;
    UNLOCK();
    if ((int)lVar4 == 1) {
      (**(code **)(*plVar5 + 8))(plVar5);
      LOCK();
      piVar2 = (int *)((longlong)plVar5 + 0xc);
      iVar3 = *piVar2;
      *piVar2 = *piVar2 + -1;
      UNLOCK();
      if (iVar3 == 1) {
        (**(code **)(*plVar5 + 0x10))(plVar5);
      }
    }
  }
  return param_1;
}



############ FUN_ 1805d0340 size=182 ############

void FUN_1805d0340(basic_streambuf<char,std::char_traits<char>_> *param_1)

{
  void *pvVar1;
  void *_Memory;
  longlong lVar2;
  
  *(undefined ***)param_1 =
       std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char>_>::vftable;
  if (((byte)param_1[0x70] & 1) == 0) {
    **(undefined8 **)(param_1 + 0x18) = 0;
    **(undefined8 **)(param_1 + 0x38) = 0;
    **(undefined4 **)(param_1 + 0x50) = 0;
    **(undefined8 **)(param_1 + 0x20) = 0;
    **(undefined8 **)(param_1 + 0x40) = 0;
    **(undefined4 **)(param_1 + 0x58) = 0;
    *(uint *)(param_1 + 0x70) = *(uint *)(param_1 + 0x70) & 0xfffffffe;
    *(undefined8 *)(param_1 + 0x68) = 0;
                    /* WARNING: Could not recover jumptable at 0x0001805d03e9. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    std::basic_streambuf<char,std::char_traits<char>_>::
    ~basic_streambuf<char,std::char_traits<char>_>(param_1);
    return;
  }
  if (**(longlong **)(param_1 + 0x40) == 0) {
    lVar2 = (longlong)**(int **)(param_1 + 0x50) + **(longlong **)(param_1 + 0x38);
  }
  else {
    lVar2 = (longlong)**(int **)(param_1 + 0x58) + **(longlong **)(param_1 + 0x40);
  }
  pvVar1 = (void *)**(longlong **)(param_1 + 0x18);
  _Memory = pvVar1;
  if ((0xfff < (ulonglong)(lVar2 - (longlong)pvVar1)) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 180721f10 size=219 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_180721f10(longlong param_1,undefined8 *param_2)

{
  ulonglong uVar1;
  ulonglong uVar2;
  undefined8 uVar3;
  undefined1 auStack_78 [32];
  undefined1 local_58;
  undefined7 uStack_57;
  undefined8 uStack_50;
  undefined4 local_48;
  undefined4 uStack_44;
  undefined4 uStack_40;
  undefined4 uStack_3c;
  undefined1 local_38;
  undefined7 uStack_37;
  undefined8 uStack_30;
  undefined4 local_28;
  undefined4 uStack_24;
  undefined4 uStack_20;
  undefined4 uStack_1c;
  ulonglong local_18;
  
  local_18 = DAT_182615970 ^ (ulonglong)auStack_78;
  if (((*(uint *)(param_1 + 0x78) & 2) == 0) &&
     (uVar1 = **(ulonglong **)(param_1 + 0x48), uVar1 != 0)) {
    local_28 = _DAT_181bd21a0;
    uStack_24 = _UNK_181bd21a4;
    uStack_20 = _UNK_181bd21a8;
    uStack_1c = _UNK_181bd21ac;
    uVar2 = *(ulonglong *)(param_1 + 0x70);
    if (*(ulonglong *)(param_1 + 0x70) < uVar1) {
      uVar2 = uVar1;
    }
    local_38 = 0;
    FUN_1805a6cb0(&local_38,**(longlong **)(param_1 + 0x28),uVar2 - **(longlong **)(param_1 + 0x28))
    ;
    uVar3 = CONCAT71(uStack_37,local_38);
  }
  else {
    if (((*(uint *)(param_1 + 0x78) & 4) == 0) && (**(longlong **)(param_1 + 0x40) != 0)) {
      local_48 = _DAT_181bd21a0;
      uStack_44 = _UNK_181bd21a4;
      uStack_40 = _UNK_181bd21a8;
      uStack_3c = _UNK_181bd21ac;
      local_58 = 0;
      FUN_1805a6cb0(&local_58,**(longlong **)(param_1 + 0x20),
                    ((longlong)**(int **)(param_1 + 0x58) + **(longlong **)(param_1 + 0x40)) -
                    **(longlong **)(param_1 + 0x20));
    }
    else {
      local_58 = 0;
      local_48 = _DAT_181bd21a0;
      uStack_44 = _UNK_181bd21a4;
      uStack_40 = _UNK_181bd21a8;
      uStack_3c = _UNK_181bd21ac;
    }
    uVar3 = CONCAT71(uStack_57,local_58);
    local_28 = local_48;
    uStack_24 = uStack_44;
    uStack_20 = uStack_40;
    uStack_1c = uStack_3c;
    uStack_30 = uStack_50;
  }
  *param_2 = uVar3;
  param_2[1] = uStack_30;
  *(undefined4 *)(param_2 + 2) = local_28;
  *(undefined4 *)((longlong)param_2 + 0x14) = uStack_24;
  *(undefined4 *)(param_2 + 3) = uStack_20;
  *(undefined4 *)((longlong)param_2 + 0x1c) = uStack_1c;
}



############ FUN_ 18097edd0 size=140 ############

undefined8 *
FUN_18097edd0(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  *param_1 = apache::thrift::concurrency::Mutex::vftable;
  lVar1 = FUN_1811316e0(8);
  if (lVar1 == 0) {
    uVar2 = 0;
  }
  else {
    uVar2 = FUN_18097ee60(lVar1,param_2);
  }
  param_1[1] = uVar2;
  FUN_18097ed20(param_1 + 2,uVar2);
  FUN_1805ae620(param_1 + 1,uVar2,uVar2,param_4,uVar3);
  return param_1;
}



############ FUN_ 1806d8eb0 size=754 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1806d8eb0(longlong *param_1,undefined4 param_2)

{
  void *pvVar1;
  void *_Memory;
  uint uVar2;
  undefined1 auStack_68 [32];
  uint local_48;
  undefined4 local_44;
  undefined4 local_40 [2];
  undefined8 local_38;
  undefined1 local_30;
  undefined7 uStack_2f;
  undefined8 local_20;
  ulonglong local_18;
  ulonglong local_10;
  
  local_38 = 0xfffffffffffffffe;
  local_10 = DAT_182615970 ^ (ulonglong)auStack_68;
  switch(param_2) {
  case 2:
    (**(code **)(*param_1 + 0x110))(param_1,&local_44);
    break;
  case 3:
    (**(code **)(*param_1 + 0x118))(param_1,&local_44);
    break;
  case 4:
    (**(code **)(*param_1 + 0x138))(param_1,local_40);
    break;
  default:
    break;
  case 6:
    (**(code **)(*param_1 + 0x120))(param_1,&local_44);
    break;
  case 8:
    (**(code **)(*param_1 + 0x128))(param_1,local_40);
    break;
  case 10:
    (**(code **)(*param_1 + 0x130))(param_1,local_40);
    break;
  case 0xb:
    local_20 = 0;
    local_18 = 0xf;
    local_30 = 0;
    (**(code **)(*param_1 + 0x148))(param_1,&local_30);
    if (0xf < local_18) {
      pvVar1 = (void *)CONCAT71(uStack_2f,local_30);
      _Memory = pvVar1;
      if ((0xfff < local_18 + 1) &&
         (_Memory = *(void **)((longlong)pvVar1 + -8),
         0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
LAB_1806d8fd6:
                    /* WARNING: Subroutine does not return */
      free(_Memory);
    }
    break;
  case 0xc:
    local_20 = 0;
    local_18 = 0xf;
    local_30 = 0;
    (**(code **)(*param_1 + 0xc0))(param_1,&local_30);
    (**(code **)(*param_1 + 0xd0))(param_1,&local_30,&local_48,&local_44);
    while (local_48 != 0) {
      FUN_1806d8eb0(param_1,local_48);
      (**(code **)(*param_1 + 0xd8))(param_1);
      (**(code **)(*param_1 + 0xd0))(param_1,&local_30,&local_48,&local_44);
    }
    (**(code **)(*param_1 + 200))(param_1);
    if (0xf < local_18) {
      pvVar1 = (void *)CONCAT71(uStack_2f,local_30);
      _Memory = pvVar1;
      if ((0xfff < local_18 + 1) &&
         (_Memory = *(void **)((longlong)pvVar1 + -8),
         0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
      goto LAB_1806d8fd6;
    }
    break;
  case 0xd:
    (**(code **)(*param_1 + 0xe0))(param_1,&local_44,local_40,&local_48);
    uVar2 = 0;
    if (local_48 != 0) {
      do {
        FUN_1806d8eb0(param_1,local_44);
        FUN_1806d8eb0(param_1,local_40[0]);
        uVar2 = uVar2 + 1;
      } while (uVar2 < local_48);
    }
    (**(code **)(*param_1 + 0xe8))(param_1);
    break;
  case 0xe:
    (**(code **)(*param_1 + 0x100))(param_1,local_40,&local_48);
    uVar2 = 0;
    if (local_48 != 0) {
      do {
        FUN_1806d8eb0(param_1,local_40[0]);
        uVar2 = uVar2 + 1;
      } while (uVar2 < local_48);
    }
    (**(code **)(*param_1 + 0x108))(param_1);
    break;
  case 0xf:
    (**(code **)(*param_1 + 0xf0))(param_1,local_40,&local_48);
    uVar2 = 0;
    if (local_48 != 0) {
      do {
        FUN_1806d8eb0(param_1,local_40[0]);
        uVar2 = uVar2 + 1;
      } while (uVar2 < local_48);
    }
    (**(code **)(*param_1 + 0xf8))(param_1);
  }
}



############ FUN_ 1805b6890 size=234 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805b6890(undefined8 *param_1)

{
  void *pvVar1;
  void *_Memory;
  undefined1 auStack_68 [32];
  undefined8 *local_48;
  undefined1 local_40;
  undefined1 local_38;
  undefined7 uStack_37;
  undefined8 local_28;
  ulonglong local_20;
  ulonglong local_18;
  
  local_18 = DAT_182615970 ^ (ulonglong)auStack_68;
  local_28 = 0;
  local_20 = 0xf;
  local_38 = 0;
  local_48 = param_1;
  FUN_1805a6cb0(&local_38,"Year is out of valid range: 1400..10000",0x27);
  local_40 = 1;
  *param_1 = std::exception::vftable;
  local_48 = (undefined8 *)&local_38;
  if (0xf < local_20) {
    local_48 = (undefined8 *)CONCAT71(uStack_37,local_38);
  }
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(&local_48);
  *param_1 = std::out_of_range::vftable;
  if (local_20 < 0x10) {
    *param_1 = boost::gregorian::bad_year::vftable;
  }
  pvVar1 = (void *)CONCAT71(uStack_37,local_38);
  _Memory = pvVar1;
  if ((0xfff < local_20 + 1) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805b3e20 size=63 ############

void FUN_1805b3e20(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_a0 [88];
  undefined1 local_48 [72];
  
  uVar1 = FUN_1805b1fc0(local_48,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805b1ce0(local_a0,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_a0,(ThrowInfo *)&DAT_1825fdb50);
}



############ FUN_ 1805b6610 size=234 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805b6610(undefined8 *param_1)

{
  void *pvVar1;
  void *_Memory;
  undefined1 auStack_68 [32];
  undefined8 *local_48;
  undefined1 local_40;
  undefined1 local_38;
  undefined7 uStack_37;
  undefined8 local_28;
  ulonglong local_20;
  ulonglong local_18;
  
  local_18 = DAT_182615970 ^ (ulonglong)auStack_68;
  local_28 = 0;
  local_20 = 0xf;
  local_38 = 0;
  local_48 = param_1;
  FUN_1805a6cb0(&local_38,"Day of month value is out of range 1..31",0x28);
  local_40 = 1;
  *param_1 = std::exception::vftable;
  local_48 = (undefined8 *)&local_38;
  if (0xf < local_20) {
    local_48 = (undefined8 *)CONCAT71(uStack_37,local_38);
  }
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(&local_48);
  *param_1 = std::out_of_range::vftable;
  if (local_20 < 0x10) {
    *param_1 = boost::gregorian::bad_day_of_month::vftable;
  }
  pvVar1 = (void *)CONCAT71(uStack_37,local_38);
  _Memory = pvVar1;
  if ((0xfff < local_20 + 1) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805b3da0 size=63 ############

void FUN_1805b3da0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_a0 [88];
  undefined1 local_48 [72];
  
  uVar1 = FUN_1805b1f00(local_48,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805b1b80(local_a0,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_a0,(ThrowInfo *)&DAT_1825fd938);
}



############ FUN_ 1805b65b0 size=84 ############

undefined8 * FUN_1805b65b0(undefined8 *param_1,undefined8 *param_2)

{
  undefined8 *local_18;
  undefined1 local_10;
  
  if (0xf < (ulonglong)param_2[3]) {
    param_2 = (undefined8 *)*param_2;
  }
  local_10 = 1;
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  local_18 = param_2;
  __std_exception_copy(&local_18);
  *param_1 = boost::gregorian::bad_day_of_month::vftable;
  return param_1;
}



############ FUN_ 1805c00e0 size=89 ############

/* WARNING: Removing unreachable block (ram,0x0001805c00ee) */

uint FUN_1805c00e0(ushort param_1)

{
  uint uVar1;
  uint uVar2;
  
  uVar2 = (uint)param_1;
  uVar1 = 0;
  if (((param_1 & 3) == 0) &&
     ((uVar2 != (param_1 / 100) * 100 || (uVar1 = (uVar2 / 400) * 400, uVar2 == uVar1)))) {
    return 1;
  }
  return uVar1 & 0xffffff00;
}



############ FUN_ 1805b6750 size=234 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805b6750(undefined8 *param_1)

{
  void *pvVar1;
  void *_Memory;
  undefined1 auStack_68 [32];
  undefined8 *local_48;
  undefined1 local_40;
  undefined1 local_38;
  undefined7 uStack_37;
  undefined8 local_28;
  ulonglong local_20;
  ulonglong local_18;
  
  local_18 = DAT_182615970 ^ (ulonglong)auStack_68;
  local_28 = 0;
  local_20 = 0xf;
  local_38 = 0;
  local_48 = param_1;
  FUN_1805a6cb0(&local_38,"Month number is out of range 1..12",0x22);
  local_40 = 1;
  *param_1 = std::exception::vftable;
  local_48 = (undefined8 *)&local_38;
  if (0xf < local_20) {
    local_48 = (undefined8 *)CONCAT71(uStack_37,local_38);
  }
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(&local_48);
  *param_1 = std::out_of_range::vftable;
  if (local_20 < 0x10) {
    *param_1 = boost::gregorian::bad_month::vftable;
  }
  pvVar1 = (void *)CONCAT71(uStack_37,local_38);
  _Memory = pvVar1;
  if ((0xfff < local_20 + 1) &&
     (_Memory = *(void **)((longlong)pvVar1 + -8),
     0x1f < (ulonglong)((longlong)pvVar1 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 1805b3de0 size=63 ############

void FUN_1805b3de0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  undefined1 local_a0 [88];
  undefined1 local_48 [72];
  
  uVar1 = FUN_1805b1f60(local_48,param_1,param_3,param_4,0xfffffffffffffffe);
  FUN_1805b1c30(local_a0,uVar1);
                    /* WARNING: Subroutine does not return */
  _CxxThrowException(local_a0,(ThrowInfo *)&DAT_1825fda70);
}



############ FUN_ 18073981f size=223 ############

void FUN_18073981f(void)

{
  return;
}



############ FUN_ 180706f70 size=599 ############

/* WARNING: Removing unreachable block (ram,0x000180707050) */
/* WARNING: Removing unreachable block (ram,0x0001807071b8) */

ulonglong FUN_180706f70(undefined4 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  undefined *puVar1;
  uint uVar2;
  int unaff_retaddr;
  undefined1 auStack_d8 [32];
  undefined *local_b8;
  undefined *local_b0;
  undefined4 local_a0;
  undefined8 local_98;
  uint local_90;
  uint local_8c;
  undefined8 local_80;
  undefined8 local_78;
  undefined8 local_70;
  ulonglong local_50;
  
  local_50 = DAT_182615970 ^ (ulonglong)auStack_d8;
  uVar2 = (uint)&stack0x00000000 & 0x10ff;
  uVar2 = (uVar2 * uVar2 * 0x10 + 4) % 0x13;
  local_8c = ((int)(-uVar2 | uVar2) >> 0x1f) * -0xf394 ^ 0xf204;
  uVar2 = (uint)&stack0x00000000 & 0x11ff;
  uVar2 = (uVar2 + 1) * uVar2 + 0x6c47 & 0x80000001;
  uVar2 = (int)(-uVar2 | uVar2) >> 0x1f;
  local_90 = (int)(-uVar2 | uVar2) >> 0x1f & 0x6781U ^ 0x6b01;
  local_a0 = param_1;
  local_80 = param_3;
  local_78 = param_2;
  local_70 = param_4;
  do {
    FUN_180705d36(0x5318);
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  local_98 = 0;
  local_b8 = &DAT_181cf8244;
  puVar1 = &DAT_181cfe238;
  local_b0 = puVar1;
  FUN_1807071ca();
  return (ulonglong)puVar1 & 0xffffffff;
}



############ FUN_ 1805b4520 size=176 ############

undefined8 * FUN_1805b4520(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = std::runtime_error::vftable;
  param_1[3] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x20);
  param_1[4] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[5] = *(undefined8 *)(param_2 + 0x28);
  param_1[6] = *(undefined8 *)(param_2 + 0x30);
  *(undefined4 *)(param_1 + 7) = *(undefined4 *)(param_2 + 0x38);
  *param_1 = boost::exception_detail::error_info_injector<std::runtime_error>::vftable;
  param_1[3] = boost::exception_detail::error_info_injector<std::runtime_error>::vftable;
  return param_1;
}



############ FUN_ 1805b0d80 size=432 ############

basic_ostream<char,std::char_traits<char>_> *
FUN_1805b0d80(basic_ostream<char,std::char_traits<char>_> *param_1,char *param_2,ulonglong param_3)

{
  basic_ostream<char,std::char_traits<char>_> *this;
  bool bVar1;
  int iVar2;
  ulonglong uVar3;
  int iVar4;
  longlong lVar5;
  
  iVar4 = 0;
  uVar3 = *(ulonglong *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x28);
  if (((longlong)uVar3 < 1) || (uVar3 <= param_3)) {
    lVar5 = 0;
  }
  else {
    lVar5 = uVar3 - param_3;
  }
  if (*(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) !=
      (longlong *)0x0) {
    (**(code **)(**(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) + 8)
    )();
  }
  if (((*(int *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x10) == 0) &&
      (this = *(basic_ostream<char,std::char_traits<char>_> **)
               (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x50),
      this != (basic_ostream<char,std::char_traits<char>_> *)0x0)) && (this != param_1)) {
    std::basic_ostream<char,std::char_traits<char>_>::flush(this);
  }
  if (*(int *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x10) != 0) {
    iVar4 = 4;
    goto LAB_1805b0eec;
  }
  if ((*(uint *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x18) & 0x1c0) == 0x40) {
LAB_1805b0e6f:
    uVar3 = std::basic_streambuf<char,std::char_traits<char>_>::sputn
                      (*(basic_streambuf<char,std::char_traits<char>_> **)
                        (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),param_2,
                       param_3);
    if (uVar3 == param_3) goto LAB_1805b0eb0;
LAB_1805b0e91:
    iVar4 = 4;
  }
  else {
    for (; lVar5 != 0; lVar5 = lVar5 + -1) {
      iVar2 = std::basic_streambuf<char,std::char_traits<char>_>::sputc
                        (*(basic_streambuf<char,std::char_traits<char>_> **)
                          (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),
                         (char)param_1[(longlong)*(int *)(*(longlong *)param_1 + 4) + 0x58]);
      if (iVar2 == -1) {
        iVar4 = 4;
        break;
      }
    }
    if (iVar4 == 0) goto LAB_1805b0e6f;
LAB_1805b0eb0:
    for (; lVar5 != 0; lVar5 = lVar5 + -1) {
      iVar2 = std::basic_streambuf<char,std::char_traits<char>_>::sputc
                        (*(basic_streambuf<char,std::char_traits<char>_> **)
                          (param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48),
                         (char)param_1[(longlong)*(int *)(*(longlong *)param_1 + 4) + 0x58]);
      if (iVar2 == -1) goto LAB_1805b0e91;
    }
  }
  *(undefined8 *)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x28) = 0;
LAB_1805b0eec:
  std::basic_ios<char,std::char_traits<char>_>::setstate
            ((basic_ios<char,std::char_traits<char>_> *)
             (param_1 + *(int *)(*(longlong *)param_1 + 4)),iVar4,false);
  bVar1 = std::uncaught_exception();
  if (!bVar1) {
    std::basic_ostream<char,std::char_traits<char>_>::_Osfx(param_1);
  }
  if (*(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) !=
      (longlong *)0x0) {
    (**(code **)(**(longlong **)(param_1 + (longlong)*(int *)(*(longlong *)param_1 + 4) + 0x48) +
                0x10))();
  }
  return param_1;
}



############ FUN_ 180700350 size=478 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180700350(int param_1,int *param_2,ushort param_3,undefined8 param_4,undefined4 *param_5)

{
  undefined8 uVar1;
  undefined1 auStack_78 [32];
  undefined4 *local_58;
  undefined4 *local_50;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  ulonglong local_28;
  
  local_28 = DAT_182615970 ^ (ulonglong)auStack_78;
  local_48 = 0xc293fc57;
  local_44 = 0xaf82ce4a;
  local_40 = 0xff814fa1;
  local_3c = 0xda5236a5;
  local_38 = 0x96e2ac81;
  local_34 = 0xd076a545;
  local_30 = 0x7f1b09cb;
  local_2c = 0xbba00544;
  if (param_5 == (undefined4 *)0x0) {
    if (param_1 == 0x1e) {
    }
    param_5 = &local_48;
  }
  *param_2 = param_1;
  local_58 = param_5;
  local_50 = param_5;
  switch(param_1) {
  case 0:
    FUN_1806fc470(param_2 + 2,param_3,param_4,0x10);
    break;
  case 1:
    FUN_1806fc470(param_2 + 2,param_3,param_4,0x18);
    break;
  case 2:
    FUN_1806fc470(param_2 + 2,param_3,param_4,0x20);
    break;
  case 3:
    FUN_180701a50(param_2 + 2,param_3,param_4,0x10);
    break;
  default:
  case 0x1c:
    uVar1 = 0x10;
    goto LAB_1807004d5;
  case 0x1d:
    uVar1 = 0x20;
LAB_1807004d5:
    local_58 = (undefined4 *)CONCAT62(local_58._2_6_,0x20);
    FUN_180700640(param_2 + 2,param_3,uVar1);
    break;
  case 0x1e:
    local_58 = (undefined4 *)CONCAT62(local_58._2_6_,0x30);
    FUN_180700640(param_2 + 2,param_3,0x20,param_4);
    break;
  case 0x1f:
    if (((param_2 + 2 != (int *)0x0) && (param_5 != (undefined4 *)0x0)) && (param_3 < 2)) {
      FUN_1806213f0(param_2 + 3,param_5,0x10);
      FUN_180700200(param_2 + 2,param_3,param_4);
    }
  }
}



############ FUN_ 18063f7c0 size=480 ############

void FUN_18063f7c0(longlong param_1,undefined4 param_2,short *param_3,longlong param_4,
                  undefined8 param_5)

{
  short sVar1;
  undefined1 uVar2;
  int iVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  undefined8 uVar6;
  undefined8 *puVar7;
  undefined8 *local_res8;
  undefined4 local_res10 [2];
  char *local_res18;
  undefined8 *local_38;
  undefined8 *puStack_30;
  
  *(short *)(param_1 + 0x238) = *param_3;
  local_res10[0] = param_2;
  iVar3 = FUN_180700270(param_2);
  uVar2 = (undefined1)param_5;
  *(int *)(param_1 + 0x234) = iVar3;
  puVar7 = (undefined8 *)0x0;
  if (iVar3 != 0) {
    sVar1 = *param_3;
    *(bool *)(param_1 + 0x211) = sVar1 == 2;
    if ((param_4 == 0) || (sVar1 == 2)) {
      ((undefined8 *)CONCAT71(param_5._1_7_,(undefined1)param_5))[1] =
           *(undefined8 *)CONCAT71(param_5._1_7_,(undefined1)param_5);
    }
    else {
      FUN_1805b9910(CONCAT71(param_5._1_7_,(undefined1)param_5),param_4);
    }
    local_38 = (undefined8 *)CONCAT71(param_5._1_7_,uVar2);
    param_5._0_1_ = 0;
    puStack_30 = &param_5;
    FUN_1805e1ee0(local_38,*(undefined4 *)(param_1 + 0x234),&local_38);
    if (*(char *)(param_1 + 0x211) != '\0') {
      *param_3 = 0;
      puVar7 = (undefined8 *)(param_1 + 0x218);
      if (param_4 == 0) {
        *(undefined8 *)(param_1 + 0x220) = *puVar7;
      }
      else {
        FUN_1805b9910(puVar7,param_4);
      }
      param_5._0_1_ = 0;
      puStack_30 = &param_5;
      local_38 = puVar7;
      FUN_1805e1ee0(puVar7,*(undefined4 *)(param_1 + 0x234),&local_38);
      *(undefined4 *)(param_1 + 0x230) = 0;
    }
    return;
  }
  local_res8 = (undefined8 *)FUN_1811316e0(0x18);
  puVar4 = puVar7;
  if (local_res8 != (undefined8 *)0x0) {
    puVar4 = (undefined8 *)
             FUN_1805a48c0(local_res8,
                           "The encryption Algorithm (ID = %d) is not supported by the Encryptor");
  }
  puVar5 = (undefined8 *)FUN_1811316e0(0x18);
  local_res8 = puVar5;
  if (puVar5 != (undefined8 *)0x0) {
    FUN_1805a48c0(puVar5,"|__FILE__|%s|__LINE__|%d");
    *puVar5 = pace::PaceLocationInfoFormatter::vftable;
    puVar7 = puVar5;
  }
  FUN_18060e760(puVar4[1],local_res10);
  local_res8 = (undefined8 *)CONCAT44(local_res8._4_4_,0x322);
  local_res18 = "d:\\jenkins\\full\\eden\\client\\pace\\libraries\\src\\libilokutil\\encryptor.cpp";
  uVar6 = FUN_1805a21d0(puVar7[1],&local_res18);
                    /* WARNING: Subroutine does not return */
  FUN_1805b20d0(uVar6,&local_res8);
}



############ FUN_ 18079daab size=263 ############

void FUN_18079daab(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  longlong unaff_retaddr;
  
                    /* WARNING: Could not recover jumptable at 0x00018079dbb3. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(unaff_retaddr + 0x744d))(param_1,param_2,param_3,param_4,unaff_retaddr + 0x75eb);
  return;
}



############ FUN_ 18074648a size=202 ############

void FUN_18074648a(void)

{
  longlong unaff_R13;
  
                    /* WARNING: Could not recover jumptable at 0x000180746551. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(unaff_R13 + -0x27d4f))();
  return;
}



############ FUN_ 18060b8a0 size=130 ############

undefined8 * FUN_18060b8a0(undefined8 *param_1,longlong param_2)

{
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::bad_lexical_cast::vftable;
  param_1[3] = *(undefined8 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  *(undefined4 *)(param_1 + 9) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::bad_lexical_cast>::vftable;
  param_1[5] = boost::exception_detail::error_info_injector<boost::bad_lexical_cast>::vftable;
  return param_1;
}



############ FUN_ 18060b740 size=174 ############

undefined8 *
FUN_18060b740(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[10] = &DAT_181bb5798;
  param_1[0xc] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805f1b50();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::bad_lexical_cast>_>::
             vftable;
  param_1[5] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::bad_lexical_cast>_>::
               vftable;
  *(undefined ***)((longlong)*(int *)(param_1[10] + 4) + 0x50 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::bad_lexical_cast>_>::vftable;
  *(int *)((longlong)*(int *)(param_1[10] + 4) + 0x4c + (longlong)param_1) =
       *(int *)(param_1[10] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x28;
  }
  FUN_1805a7b20(param_1 + 5,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805f1950 size=354 ############

_Facet_base * FUN_1805f1950(longlong param_1)

{
  longlong lVar1;
  _Facet_base *p_Var2;
  __uint64 _Var3;
  _Locimp *p_Var4;
  facet *this;
  undefined8 uVar5;
  char *pcVar6;
  _Facet_base *p_Var7;
  _Facet_base *p_Var8;
  _Lockit local_res10 [8];
  facet *local_res18;
  _Locinfo local_90 [104];
  
  p_Var7 = (_Facet_base *)0x0;
  std::_Lockit::_Lockit(local_res10,0);
  p_Var2 = DAT_18265f138;
  _Var3 = std::locale::id::operator_unsigned___int64((id *)id_exref);
  lVar1 = *(longlong *)(param_1 + 8);
  p_Var8 = p_Var7;
  if ((_Var3 < *(ulonglong *)(lVar1 + 0x18)) &&
     (p_Var8 = *(_Facet_base **)(*(longlong *)(lVar1 + 0x10) + _Var3 * 8),
     p_Var8 != (_Facet_base *)0x0)) goto LAB_1805f1a93;
  if (*(char *)(lVar1 + 0x24) == '\0') {
LAB_1805f19ce:
    if (p_Var8 != (_Facet_base *)0x0) goto LAB_1805f1a93;
  }
  else {
    p_Var4 = std::locale::_Getgloballocale();
    if (_Var3 < *(ulonglong *)(p_Var4 + 0x18)) {
      p_Var8 = *(_Facet_base **)(*(longlong *)(p_Var4 + 0x10) + _Var3 * 8);
      goto LAB_1805f19ce;
    }
  }
  p_Var8 = p_Var2;
  if (p_Var2 == (_Facet_base *)0x0) {
    this = (facet *)FUN_1811316e0(0x30);
    p_Var8 = p_Var7;
    local_res18 = this;
    if (this != (facet *)0x0) {
      lVar1 = *(longlong *)(param_1 + 8);
      if (lVar1 == 0) {
        pcVar6 = "";
      }
      else {
        pcVar6 = *(char **)(lVar1 + 0x28);
        if (pcVar6 == (char *)0x0) {
          pcVar6 = (char *)(lVar1 + 0x30);
        }
      }
      uVar5 = std::_Locinfo::_Locinfo(local_90,pcVar6);
      p_Var7 = (_Facet_base *)0x1;
      std::locale::facet::facet(this,0);
      *(undefined ***)this = std::numpunct<char>::vftable;
      FUN_1805f2b30(this,uVar5,1);
      p_Var8 = (_Facet_base *)this;
    }
    if (p_Var7 != (_Facet_base *)0x0) {
      std::_Locinfo::~_Locinfo(local_90);
    }
    std::_Facet_Register(p_Var8);
    (**(code **)(*(longlong *)p_Var8 + 8))(p_Var8);
    DAT_18265f138 = p_Var8;
  }
LAB_1805f1a93:
  std::_Lockit::~_Lockit(local_res10);
  return p_Var8;
}



############ FUN_ 1805f22e0 size=546 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805f22e0(longlong param_1,longlong param_2)

{
  ulonglong uVar1;
  ulonglong uVar2;
  void *pvVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  int iVar7;
  undefined8 *puVar8;
  undefined8 *puVar9;
  undefined8 *puVar10;
  undefined8 *_Buf1;
  void *pvVar11;
  size_t *psVar12;
  undefined1 auStack_c8 [32];
  undefined4 local_a8;
  size_t local_a0;
  ulonglong local_98 [2];
  undefined1 local_88;
  undefined7 uStack_87;
  undefined8 local_78;
  ulonglong local_70;
  undefined1 local_68;
  undefined7 uStack_67;
  undefined8 local_58;
  ulonglong local_50;
  void *local_48 [3];
  ulonglong local_30;
  ulonglong local_28;
  
  local_98[1] = 0xfffffffffffffffe;
  local_28 = DAT_182615970 ^ (ulonglong)auStack_c8;
  bVar6 = false;
  bVar5 = false;
  bVar4 = false;
  local_a8 = 0;
  if (*(longlong *)(param_1 + 8) != *(longlong *)(param_2 + 8)) {
    puVar8 = (undefined8 *)FUN_1805f47e0(param_1,local_48);
    bVar5 = false;
    bVar4 = false;
    local_a8 = 1;
    puVar10 = puVar8;
    if (0xf < (ulonglong)puVar8[3]) {
      puVar10 = (undefined8 *)*puVar8;
    }
    local_a0 = 1;
    uVar1 = puVar8[2];
    local_98[0] = uVar1;
    psVar12 = &local_a0;
    if (uVar1 < 2) {
      psVar12 = local_98;
    }
    iVar7 = memcmp(puVar10,&DAT_181bb54d0,*psVar12);
    if ((iVar7 != 0) || (uVar1 != 1)) {
      puVar8 = (undefined8 *)FUN_1805f47e0(param_2,&local_68);
      local_a8 = 3;
      puVar9 = (undefined8 *)FUN_1805f47e0(param_1,&local_88);
      bVar6 = true;
      bVar5 = true;
      bVar4 = true;
      puVar10 = puVar8;
      if (0xf < (ulonglong)puVar8[3]) {
        puVar10 = (undefined8 *)*puVar8;
      }
      _Buf1 = puVar9;
      if (0xf < (ulonglong)puVar9[3]) {
        _Buf1 = (undefined8 *)*puVar9;
      }
      uVar1 = puVar8[2];
      local_98[0] = uVar1;
      uVar2 = puVar9[2];
      local_a0 = uVar2;
      psVar12 = local_98;
      if (uVar2 <= uVar1) {
        psVar12 = &local_a0;
      }
      iVar7 = memcmp(_Buf1,puVar10,*psVar12);
      if (((iVar7 == 0) && (uVar1 <= uVar2)) && (uVar2 <= uVar1)) goto LAB_1805f23f6;
    }
    bVar6 = true;
  }
LAB_1805f23f6:
  if (bVar4) {
    if (0xf < local_70) {
      pvVar3 = (void *)CONCAT71(uStack_87,local_88);
      pvVar11 = pvVar3;
      if ((0xfff < local_70 + 1) &&
         (pvVar11 = *(void **)((longlong)pvVar3 + -8),
         0x1f < (ulonglong)((longlong)pvVar3 + (-8 - (longlong)pvVar11)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(pvVar11);
    }
    local_78 = 0;
    local_70 = 0xf;
    local_88 = 0;
  }
  if (bVar5) {
    if (0xf < local_50) {
      pvVar3 = (void *)CONCAT71(uStack_67,local_68);
      pvVar11 = pvVar3;
      if ((0xfff < local_50 + 1) &&
         (pvVar11 = *(void **)((longlong)pvVar3 + -8),
         0x1f < (ulonglong)((longlong)pvVar3 + (-8 - (longlong)pvVar11)))) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
                    /* WARNING: Subroutine does not return */
      free(pvVar11);
    }
    local_58 = 0;
    local_50 = 0xf;
    local_68 = 0;
  }
  if ((bVar6) && (0xf < local_30)) {
    pvVar11 = local_48[0];
    if ((0xfff < local_30 + 1) &&
       (pvVar11 = *(void **)((longlong)local_48[0] + -8),
       0x1f < (ulonglong)((longlong)local_48[0] + (-8 - (longlong)pvVar11)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar11);
  }
}



############ FUN_ 1805a45d0 size=149 ############

undefined8 * FUN_1805a45d0(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  FUN_1805a4b90();
  *param_1 = boost::thread_resource_error::vftable;
  param_1[9] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x50);
  param_1[10] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[0xb] = *(undefined8 *)(param_2 + 0x58);
  param_1[0xc] = *(undefined8 *)(param_2 + 0x60);
  *(undefined4 *)(param_1 + 0xd) = *(undefined4 *)(param_2 + 0x68);
  *param_1 = boost::exception_detail::error_info_injector<boost::thread_resource_error>::vftable;
  param_1[9] = boost::exception_detail::error_info_injector<boost::thread_resource_error>::vftable;
  return param_1;
}



############ FUN_ 18056e350 size=121 ############

void FUN_18056e350(undefined8 param_1,void *param_2)

{
  longlong *plVar1;
  
  if (*(char *)((longlong)param_2 + 0x19) == '\0') {
    FUN_18056e350(param_1,*(undefined8 *)((longlong)param_2 + 0x10));
    plVar1 = *(longlong **)((longlong)param_2 + 0x60);
    if (plVar1 != (longlong *)0x0) {
      (**(code **)(*plVar1 + 0x20))(plVar1,plVar1 != (longlong *)((longlong)param_2 + 0x28));
      *(undefined8 *)((longlong)param_2 + 0x60) = 0;
    }
                    /* WARNING: Subroutine does not return */
    free(param_2);
  }
  return;
}



############ FUN_ 18047db40 size=734 ############

longlong * FUN_18047db40(longlong *param_1,longlong *param_2)

{
  char cVar1;
  longlong lVar2;
  undefined8 *puVar3;
  longlong *plVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  longlong *plVar8;
  
  plVar5 = (longlong *)param_2[2];
  plVar6 = param_2 + 2;
  if (*(char *)((longlong)plVar5 + 0x19) == '\0') {
    cVar1 = *(char *)(*plVar5 + 0x19);
    plVar7 = (longlong *)*plVar5;
    while (cVar1 == '\0') {
      cVar1 = *(char *)(*plVar7 + 0x19);
      plVar5 = plVar7;
      plVar7 = (longlong *)*plVar7;
    }
  }
  else {
    cVar1 = *(char *)(param_2[1] + 0x19);
    plVar8 = (longlong *)param_2[1];
    plVar7 = param_2;
    while ((plVar5 = plVar8, cVar1 == '\0' && (plVar7 == (longlong *)plVar5[2]))) {
      cVar1 = *(char *)(plVar5[1] + 0x19);
      plVar8 = (longlong *)plVar5[1];
      plVar7 = plVar5;
    }
  }
  plVar7 = (longlong *)*param_2;
  if (*(char *)((longlong)plVar7 + 0x19) == '\0') {
    plVar8 = plVar7;
    if ((*(char *)(*plVar6 + 0x19) == '\0') && (plVar8 = (longlong *)plVar5[2], plVar5 != param_2))
    {
      plVar7[1] = (longlong)plVar5;
      *plVar5 = *param_2;
      plVar7 = plVar5;
      if (plVar5 != (longlong *)*plVar6) {
        plVar7 = (longlong *)plVar5[1];
        if (*(char *)((longlong)plVar8 + 0x19) == '\0') {
          plVar8[1] = (longlong)plVar7;
        }
        *plVar7 = (longlong)plVar8;
        plVar5[2] = *plVar6;
        *(longlong **)(*plVar6 + 8) = plVar5;
      }
      if (*(longlong **)(*param_1 + 8) == param_2) {
        *(longlong **)(*param_1 + 8) = plVar5;
      }
      else {
        puVar3 = (undefined8 *)param_2[1];
        if ((longlong *)*puVar3 == param_2) {
          *puVar3 = plVar5;
        }
        else {
          puVar3[2] = plVar5;
        }
      }
      plVar5[1] = param_2[1];
      lVar2 = plVar5[3];
      *(char *)(plVar5 + 3) = (char)param_2[3];
      *(char *)(param_2 + 3) = (char)lVar2;
      goto LAB_18047dcbe;
    }
  }
  else {
    plVar8 = (longlong *)*plVar6;
  }
  plVar7 = (longlong *)param_2[1];
  if (*(char *)((longlong)plVar8 + 0x19) == '\0') {
    plVar8[1] = (longlong)plVar7;
  }
  if (*(longlong **)(*param_1 + 8) == param_2) {
    *(longlong **)(*param_1 + 8) = plVar8;
  }
  else if ((longlong *)*plVar7 == param_2) {
    *plVar7 = (longlong)plVar8;
  }
  else {
    plVar7[2] = (longlong)plVar8;
  }
  if (*(longlong **)*param_1 == param_2) {
    plVar6 = plVar7;
    if (*(char *)((longlong)plVar8 + 0x19) == '\0') {
      cVar1 = *(char *)(*plVar8 + 0x19);
      plVar5 = (longlong *)*plVar8;
      plVar6 = plVar8;
      while (plVar4 = plVar5, cVar1 == '\0') {
        plVar5 = (longlong *)*plVar4;
        cVar1 = *(char *)((longlong)plVar5 + 0x19);
        plVar6 = plVar4;
      }
    }
    *(longlong **)*param_1 = plVar6;
  }
  lVar2 = *param_1;
  if (*(longlong **)(lVar2 + 0x10) == param_2) {
    if (*(char *)((longlong)plVar8 + 0x19) == '\0') {
      cVar1 = *(char *)(plVar8[2] + 0x19);
      plVar6 = (longlong *)plVar8[2];
      plVar5 = plVar8;
      while (plVar4 = plVar6, cVar1 == '\0') {
        plVar6 = (longlong *)plVar4[2];
        cVar1 = *(char *)((longlong)plVar6 + 0x19);
        plVar5 = plVar4;
      }
      *(longlong **)(lVar2 + 0x10) = plVar5;
    }
    else {
      *(longlong **)(lVar2 + 0x10) = plVar7;
    }
  }
LAB_18047dcbe:
  if ((char)param_2[3] == '\x01') {
    if (plVar8 != *(longlong **)(*param_1 + 8)) {
      do {
        plVar6 = plVar7;
        if ((char)plVar8[3] != '\x01') break;
        plVar5 = (longlong *)*plVar6;
        if (plVar8 == plVar5) {
          plVar5 = (longlong *)plVar6[2];
          if ((char)plVar5[3] == '\0') {
            *(undefined1 *)(plVar5 + 3) = 1;
            *(undefined1 *)(plVar6 + 3) = 0;
            FUN_18047e230(param_1,plVar6);
            plVar5 = (longlong *)plVar6[2];
          }
          if (*(char *)((longlong)plVar5 + 0x19) == '\0') {
            if ((*(char *)(*plVar5 + 0x18) != '\x01') || (*(char *)(plVar5[2] + 0x18) != '\x01')) {
              if (*(char *)(plVar5[2] + 0x18) == '\x01') {
                *(undefined1 *)(*plVar5 + 0x18) = 1;
                *(undefined1 *)(plVar5 + 3) = 0;
                FUN_18047e1d0(param_1);
                plVar5 = (longlong *)plVar6[2];
              }
              *(char *)(plVar5 + 3) = (char)plVar6[3];
              *(undefined1 *)(plVar6 + 3) = 1;
              *(undefined1 *)(plVar5[2] + 0x18) = 1;
              FUN_18047e230(param_1,plVar6);
              break;
            }
LAB_18047dda7:
            *(undefined1 *)(plVar5 + 3) = 0;
          }
        }
        else {
          if ((char)plVar5[3] == '\0') {
            *(undefined1 *)(plVar5 + 3) = 1;
            *(undefined1 *)(plVar6 + 3) = 0;
            FUN_18047e1d0(param_1,plVar6);
            plVar5 = (longlong *)*plVar6;
          }
          if (*(char *)((longlong)plVar5 + 0x19) == '\0') {
            if ((*(char *)(plVar5[2] + 0x18) == '\x01') && (*(char *)(*plVar5 + 0x18) == '\x01'))
            goto LAB_18047dda7;
            if (*(char *)(*plVar5 + 0x18) == '\x01') {
              *(undefined1 *)(plVar5[2] + 0x18) = 1;
              *(undefined1 *)(plVar5 + 3) = 0;
              FUN_18047e230(param_1);
              plVar5 = (longlong *)*plVar6;
            }
            *(char *)(plVar5 + 3) = (char)plVar6[3];
            *(undefined1 *)(plVar6 + 3) = 1;
            *(undefined1 *)(*plVar5 + 0x18) = 1;
            FUN_18047e1d0(param_1,plVar6);
            break;
          }
        }
        plVar7 = (longlong *)plVar6[1];
        plVar8 = plVar6;
      } while (plVar6 != *(longlong **)(*param_1 + 8));
    }
    *(undefined1 *)(plVar8 + 3) = 1;
  }
  if (param_1[1] != 0) {
    param_1[1] = param_1[1] + -1;
  }
  return param_2;
}



############ FUN_ 1804916f0 size=580 ############

undefined8 *
FUN_1804916f0(undefined8 param_1,undefined8 *param_2,char param_3,longlong *param_4,
             undefined8 param_5,longlong *param_6)

{
  char cVar1;
  longlong lVar2;
  longlong *plVar3;
  undefined8 *puVar4;
  longlong *plVar5;
  longlong *plVar6;
  longlong *plVar7;
  
  if (0x276276276276274 < DAT_182673778) {
    FUN_180490ca0(0x276276276276275,param_6);
                    /* WARNING: Subroutine does not return */
    std::_Xlength_error("map/set<T> too long");
  }
  DAT_182673778 = DAT_182673778 + 1;
  param_6[1] = (longlong)param_4;
  if (param_4 == DAT_182673770) {
    DAT_182673770[1] = (longlong)param_6;
    *DAT_182673770 = (longlong)param_6;
  }
  else {
    if (param_3 != '\0') {
      *param_4 = (longlong)param_6;
      if (param_4 == (longlong *)*DAT_182673770) {
        *DAT_182673770 = (longlong)param_6;
      }
      goto LAB_180491789;
    }
    param_4[2] = (longlong)param_6;
    if (param_4 != (longlong *)DAT_182673770[2]) goto LAB_180491789;
  }
  DAT_182673770[2] = (longlong)param_6;
LAB_180491789:
  cVar1 = *(char *)(param_6[1] + 0x18);
  plVar5 = DAT_182673770;
  plVar7 = param_6;
  do {
    DAT_182673770 = plVar5;
    if (cVar1 != '\0') {
      *param_2 = plVar7;
      *(undefined1 *)(plVar5[1] + 0x18) = 1;
      return param_2;
    }
    plVar5 = (longlong *)param_6[1];
    plVar6 = *(longlong **)plVar5[1];
    if (plVar5 == plVar6) {
      lVar2 = ((longlong *)plVar5[1])[2];
      if (*(char *)(lVar2 + 0x18) == '\0') {
        *(undefined1 *)(plVar5 + 3) = 1;
        *(undefined1 *)(lVar2 + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        param_6 = *(longlong **)(param_6[1] + 8);
      }
      else {
        if (param_6 == (longlong *)plVar5[2]) {
          FUN_18047e230(&DAT_182673770);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)*plVar5;
        *plVar5 = plVar6[2];
        if (*(char *)(plVar6[2] + 0x19) == '\0') {
          *(longlong **)(plVar6[2] + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == (longlong *)DAT_182673770[1]) {
          DAT_182673770[1] = (longlong)plVar6;
          plVar6[2] = (longlong)plVar5;
        }
        else {
          plVar3 = (longlong *)plVar5[1];
          if (plVar5 == (longlong *)plVar3[2]) {
            plVar3[2] = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
          else {
            *plVar3 = (longlong)plVar6;
            plVar6[2] = (longlong)plVar5;
          }
        }
LAB_180491909:
        plVar5[1] = (longlong)plVar6;
      }
    }
    else {
      if ((char)plVar6[3] != '\0') {
        if (param_6 == (longlong *)*plVar5) {
          FUN_18047e1d0(&DAT_182673770);
          param_6 = plVar5;
        }
        *(undefined1 *)(param_6[1] + 0x18) = 1;
        *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
        plVar5 = *(longlong **)(param_6[1] + 8);
        plVar6 = (longlong *)plVar5[2];
        plVar5[2] = *plVar6;
        if (*(char *)(*plVar6 + 0x19) == '\0') {
          *(longlong **)(*plVar6 + 8) = plVar5;
        }
        plVar6[1] = plVar5[1];
        if (plVar5 == (longlong *)DAT_182673770[1]) {
          DAT_182673770[1] = (longlong)plVar6;
        }
        else {
          puVar4 = (undefined8 *)plVar5[1];
          if (plVar5 == (longlong *)*puVar4) {
            *puVar4 = plVar6;
          }
          else {
            puVar4[2] = plVar6;
          }
        }
        *plVar6 = (longlong)plVar5;
        goto LAB_180491909;
      }
      *(undefined1 *)(plVar5 + 3) = 1;
      *(undefined1 *)(plVar6 + 3) = 1;
      *(undefined1 *)(*(longlong *)(param_6[1] + 8) + 0x18) = 0;
      param_6 = *(longlong **)(param_6[1] + 8);
    }
    cVar1 = *(char *)(param_6[1] + 0x18);
    plVar5 = DAT_182673770;
  } while( true );
}



############ FUN_ 180491940 size=405 ############

undefined8 *
FUN_180491940(undefined8 param_1,undefined8 *param_2,undefined8 param_3,undefined8 *param_4,
             void *param_5)

{
  char cVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  int iVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  bool bVar7;
  
  puVar3 = DAT_182673770;
  bVar7 = true;
  puVar5 = DAT_182673770;
  if (*(char *)((longlong)DAT_182673770[1] + 0x19) == '\0') {
    uVar2 = *param_4;
    puVar6 = (undefined8 *)DAT_182673770[1];
    do {
      puVar5 = puVar6;
      iVar4 = FUN_18048cbc0(uVar2,puVar5[4]);
      bVar7 = iVar4 < 0;
      if (bVar7) {
        puVar6 = (undefined8 *)*puVar5;
      }
      else {
        puVar6 = (undefined8 *)puVar5[2];
      }
    } while (*(char *)((longlong)puVar6 + 0x19) == '\0');
  }
  if (bVar7) {
    if (puVar5 == (undefined8 *)*puVar3) {
      puVar5 = (undefined8 *)FUN_1804916f0();
      *param_2 = *puVar5;
      *(undefined1 *)(param_2 + 1) = 1;
      return param_2;
    }
    if (*(char *)((longlong)puVar5 + 0x19) == '\0') {
      puVar3 = (undefined8 *)*puVar5;
      if (*(char *)((longlong)puVar3 + 0x19) == '\0') {
        cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
        puVar5 = puVar3;
        puVar3 = (undefined8 *)puVar3[2];
        while (cVar1 == '\0') {
          cVar1 = *(char *)((longlong)puVar3[2] + 0x19);
          puVar5 = puVar3;
          puVar3 = (undefined8 *)puVar3[2];
        }
      }
      else {
        cVar1 = *(char *)((longlong)puVar5[1] + 0x19);
        puVar3 = (undefined8 *)puVar5[1];
        while ((puVar6 = puVar3, cVar1 == '\0' && (puVar5 == (undefined8 *)*puVar6))) {
          cVar1 = *(char *)((longlong)puVar6[1] + 0x19);
          puVar3 = (undefined8 *)puVar6[1];
          puVar5 = puVar6;
        }
        if (*(char *)((longlong)puVar5 + 0x19) == '\0') {
          puVar5 = puVar6;
        }
      }
    }
    else {
      puVar5 = (undefined8 *)puVar5[2];
    }
  }
  iVar4 = FUN_18048cbc0(puVar5[4],*param_4);
  if (iVar4 < 0) {
    puVar5 = (undefined8 *)FUN_1804916f0();
    *param_2 = *puVar5;
    *(undefined1 *)(param_2 + 1) = 1;
    return param_2;
  }
  FUN_18048c5e0((longlong)param_5 + 0x20);
                    /* WARNING: Subroutine does not return */
  free(param_5);
}



############ FUN_ 180490c60 size=51 ############

void FUN_180490c60(void)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_180480500(0x68);
  *puVar1 = DAT_182673770;
  puVar1[1] = DAT_182673770;
  puVar1[2] = DAT_182673770;
  return;
}



############ FUN_ 1805b4760 size=191 ############

longlong * FUN_1805b4760(longlong *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  ulonglong uVar2;
  longlong lVar3;
  
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  lVar3 = param_2[1];
  lVar1 = *param_2;
  uVar2 = (lVar3 - lVar1) / 0x438;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  if (uVar2 != 0) {
    if (0x3cae759203cae7 < uVar2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    lVar3 = FUN_1805bca10(param_1,uVar2,lVar3 - lVar1,param_4,0xfffffffffffffffe);
    *param_1 = lVar3;
    param_1[1] = lVar3;
    param_1[2] = uVar2 * 0x438 + *param_1;
    lVar3 = FUN_1805b16b0(*param_2,param_2[1],*param_1,param_1);
    param_1[1] = lVar3;
  }
  return param_1;
}



############ FUN_ 1805b48e0 size=139 ############

undefined8 * FUN_1805b48e0(undefined8 *param_1,longlong *param_2)

{
  char cVar1;
  longlong lVar2;
  undefined1 local_res8;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  lVar2 = SUB168(SEXT816(-0x79b47582192e29f7) * SEXT816(param_2[1] - *param_2),8) +
          (param_2[1] - *param_2);
  cVar1 = FUN_1805bbc20(param_1,(lVar2 >> 8) - (lVar2 >> 0x3f));
  if (cVar1 != '\0') {
    local_res8 = SUB81(param_1,0);
    uVar3 = FUN_1805b1860(*param_2,param_2[1],*param_1,param_1,0,local_res8,uVar3);
    param_1[1] = uVar3;
  }
  return param_1;
}



############ FUN_ 1805b4970 size=122 ############

undefined8 *
FUN_1805b4970(undefined8 *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  char cVar1;
  undefined8 uVar2;
  
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  cVar1 = FUN_1805bbce0(param_1,(param_2[1] - *param_2) / 0x68,param_2[1] - *param_2,param_4,
                        0xfffffffffffffffe);
  if (cVar1 != '\0') {
    uVar2 = FUN_1805b14f0(param_1,*param_2,param_2[1],*param_1);
    param_1[1] = uVar2;
  }
  return param_1;
}



############ FUN_ 1805b6070 size=288 ############

undefined8 *
FUN_1805b6070(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  *param_1 = pace::eden::thrift::pub::RemoteServerInfo::vftable;
  FUN_1805a4070(param_1 + 1,param_2 + 8,param_3,param_4,0xfffffffffffffffe);
  FUN_1805a4070(param_1 + 5,param_2 + 0x28);
  *(undefined4 *)(param_1 + 9) = *(undefined4 *)(param_2 + 0x48);
  param_1[10] = *(undefined8 *)(param_2 + 0x50);
  FUN_1805b46a0(param_1 + 0xb,param_2 + 0x58);
  FUN_1805a4070(param_1 + 0xe,param_2 + 0x70);
  FUN_1805a4070(param_1 + 0x12,param_2 + 0x90);
  FUN_1805a4070(param_1 + 0x16,param_2 + 0xb0);
  *(undefined4 *)(param_1 + 0x1a) = *(undefined4 *)(param_2 + 0xd0);
  FUN_1805a4070(param_1 + 0x1b,param_2 + 0xd8);
  FUN_1805a4070(param_1 + 0x1f,param_2 + 0xf8);
  FUN_1805a4070(param_1 + 0x23,param_2 + 0x118);
  *(undefined4 *)(param_1 + 0x27) = *(undefined4 *)(param_2 + 0x138);
  *(undefined8 *)((longlong)param_1 + 0x13c) = *(undefined8 *)(param_2 + 0x13c);
  *(undefined4 *)((longlong)param_1 + 0x144) = *(undefined4 *)(param_2 + 0x144);
  *(undefined1 *)(param_1 + 0x29) = *(undefined1 *)(param_2 + 0x148);
  return param_1;
}



############ FUN_ 1805b5c00 size=549 ############

undefined8 *
FUN_1805b5c00(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  undefined8 uVar1;
  
  *param_1 = pace::eden::thrift::pub::LocationData::vftable;
  param_1[1] = *(undefined8 *)(param_2 + 8);
  param_1[2] = *(undefined8 *)(param_2 + 0x10);
  FUN_1805a4070(param_1 + 3,param_2 + 0x18,param_3,param_4,0xfffffffffffffffe);
  *(undefined4 *)(param_1 + 7) = *(undefined4 *)(param_2 + 0x38);
  FUN_1805b6070(param_1 + 8,param_2 + 0x40);
  *(undefined4 *)(param_1 + 0x32) = *(undefined4 *)(param_2 + 400);
  *(undefined1 *)((longlong)param_1 + 0x194) = *(undefined1 *)(param_2 + 0x194);
  param_1[0x33] = *(undefined8 *)(param_2 + 0x198);
  FUN_1805b46a0(param_1 + 0x34,param_2 + 0x1a0);
  FUN_1805b4b00(param_1 + 0x37,param_2 + 0x1b8);
  FUN_1805a4070(param_1 + 0x3a,param_2 + 0x1d0);
  FUN_1805a4070(param_1 + 0x3e,param_2 + 0x1f0);
  FUN_1805a4070(param_1 + 0x42,param_2 + 0x210);
  FUN_1805a4070(param_1 + 0x46,param_2 + 0x230);
  FUN_1805a4070(param_1 + 0x4a,param_2 + 0x250);
  FUN_1805a4070(param_1 + 0x4e,param_2 + 0x270);
  FUN_1805a4070(param_1 + 0x52,param_2 + 0x290);
  *(undefined4 *)(param_1 + 0x56) = *(undefined4 *)(param_2 + 0x2b0);
  FUN_1805a4070(param_1 + 0x57,param_2 + 0x2b8);
  *(undefined4 *)(param_1 + 0x5b) = *(undefined4 *)(param_2 + 0x2d8);
  *(undefined1 *)((longlong)param_1 + 0x2dc) = *(undefined1 *)(param_2 + 0x2dc);
  *(undefined1 *)((longlong)param_1 + 0x2dd) = *(undefined1 *)(param_2 + 0x2dd);
  *(undefined1 *)((longlong)param_1 + 0x2de) = *(undefined1 *)(param_2 + 0x2de);
  *(undefined1 *)((longlong)param_1 + 0x2df) = *(undefined1 *)(param_2 + 0x2df);
  FUN_1805b6190(param_1 + 0x5c,param_2 + 0x2e0);
  FUN_1805b6190(param_1 + 0x71,param_2 + 0x388);
  *(undefined4 *)(param_1 + 0x86) = *(undefined4 *)(param_2 + 0x430);
  *(undefined4 *)((longlong)param_1 + 0x434) = *(undefined4 *)(param_2 + 0x434);
  *(undefined4 *)(param_1 + 0x87) = *(undefined4 *)(param_2 + 0x438);
  uVar1 = *(undefined8 *)(param_2 + 0x444);
  *(undefined8 *)((longlong)param_1 + 0x43c) = *(undefined8 *)(param_2 + 0x43c);
  *(undefined8 *)((longlong)param_1 + 0x444) = uVar1;
  *(undefined8 *)((longlong)param_1 + 0x44c) = *(undefined8 *)(param_2 + 0x44c);
  *(undefined4 *)((longlong)param_1 + 0x454) = *(undefined4 *)(param_2 + 0x454);
  *(undefined1 *)(param_1 + 0x8b) = *(undefined1 *)(param_2 + 0x458);
  return param_1;
}



############ FUN_ 1805b9bb0 size=347 ############

longlong * FUN_1805b9bb0(longlong *param_1,longlong *param_2)

{
  void *_Src;
  void *pvVar1;
  void *_Src_00;
  ulonglong uVar2;
  longlong lVar3;
  ulonglong uVar4;
  size_t sVar5;
  ulonglong uVar6;
  
  if (param_1 != param_2) {
    pvVar1 = (void *)*param_1;
    lVar3 = param_2[1];
    _Src_00 = (void *)*param_2;
    sVar5 = lVar3 - (longlong)_Src_00;
    uVar2 = param_1[1] - (longlong)pvVar1 >> 3;
    uVar6 = param_1[2] - (longlong)pvVar1 >> 3;
    uVar4 = (longlong)sVar5 >> 3;
    if (uVar6 < uVar4) {
      if (0x1fffffffffffffff < uVar4) {
                    /* WARNING: Subroutine does not return */
        FUN_1805a69c0();
      }
      uVar2 = uVar4;
      if ((uVar6 <= 0x1fffffffffffffff - (uVar6 >> 1)) &&
         (uVar2 = (uVar6 >> 1) + uVar6, uVar2 < uVar4)) {
        uVar2 = uVar4;
      }
      if (pvVar1 != (void *)0x0) {
        FUN_1805bd950(param_1,pvVar1);
      }
      *param_1 = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      if (uVar2 != 0) {
        if (0x1fffffffffffffff < uVar2) {
                    /* WARNING: Subroutine does not return */
          FUN_1805a69c0();
        }
        lVar3 = FUN_1805bcb90(param_1,uVar2);
        *param_1 = lVar3;
        param_1[1] = lVar3;
        param_1[2] = *param_1 + uVar2 * 8;
      }
      pvVar1 = (void *)*param_1;
      memmove(pvVar1,_Src_00,sVar5);
      param_1[1] = sVar5 + (longlong)pvVar1;
    }
    else if (uVar2 < uVar4) {
      _Src = (void *)((longlong)_Src_00 + uVar2 * 8);
      memmove(pvVar1,_Src_00,(longlong)_Src - (longlong)_Src_00);
      pvVar1 = (void *)param_1[1];
      sVar5 = lVar3 - (longlong)_Src;
      memmove(pvVar1,_Src,sVar5);
      param_1[1] = sVar5 + (longlong)pvVar1;
    }
    else {
      memmove(pvVar1,_Src_00,sVar5);
      param_1[1] = (longlong)((longlong)pvVar1 + uVar4 * 8);
    }
  }
  return param_1;
}



############ FUN_ 1805a7c30 size=66 ############

void FUN_1805a7c30(undefined8 param_1,void *param_2,longlong param_3)

{
  void *_Memory;
  
  _Memory = param_2;
  if ((0xfff < (ulonglong)(param_3 * 4)) &&
     (_Memory = *(void **)((longlong)param_2 + -8),
     0x1f < (ulonglong)((longlong)param_2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 180622660 size=164 ############

ulonglong FUN_180622660(ulonglong *param_1,ulonglong param_2)

{
  longlong lVar1;
  ulonglong uVar2;
  
  uVar2 = 0;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  if (param_2 != 0) {
    if (0x3fffffffffffffff < param_2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    param_2 = param_2 * 4;
    if (param_2 < 0x1000) {
      if (param_2 != 0) {
        uVar2 = FUN_1811316e0(param_2);
      }
    }
    else {
      uVar2 = param_2 + 0x27;
      if (param_2 + 0x27 <= param_2) {
        uVar2 = 0xffffffffffffffff;
      }
      lVar1 = FUN_1811316e0(uVar2);
      if (lVar1 == 0) {
                    /* WARNING: Subroutine does not return */
        _invalid_parameter_noinfo_noreturn();
      }
      uVar2 = lVar1 + 0x27U & 0xffffffffffffffe0;
      *(longlong *)(uVar2 - 8) = lVar1;
    }
    *param_1 = uVar2;
    param_1[1] = uVar2;
    param_1[2] = param_2 + *param_1;
    uVar2 = CONCAT71((int7)(*param_1 >> 8),1);
  }
  return uVar2;
}



############ FUN_ 180954d05 size=184 ############

void FUN_180954d05(undefined8 param_1,undefined8 param_2,undefined8 param_3)

{
  FUN_180954dc1(param_1,param_2,param_3);
  return;
}



############ FUN_ 180606ba0 size=856 ############

/* WARNING: Removing unreachable block (ram,0x000180606bf9) */
/* WARNING: Removing unreachable block (ram,0x000180606cff) */
/* WARNING: Removing unreachable block (ram,0x000180606c08) */

void FUN_180606ba0(void)

{
  longlong *plVar1;
  uint uVar2;
  int iVar3;
  longlong *plVar4;
  uint uVar5;
  longlong in_R11;
  longlong lVar6;
  bool bVar7;
  longlong alStack_e8 [6];
  undefined *puStack_b8;
  undefined1 auStack_a8 [32];
  undefined *local_88;
  undefined4 *local_80;
  undefined4 *local_78;
  uint local_68;
  uint local_64;
  undefined8 local_60;
  ulonglong local_38;
  
  local_60 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_a8;
  if (((ulonglong)&stack0x00000000 & 0x6e0) == 0) {
    uVar2 = 1;
  }
  else {
    uVar2 = (uint)&stack0x00000000 & 0x55ff;
    uVar2 = (uVar2 * uVar2 + 1) % 7;
  }
  uVar5 = 0;
  local_68 = ((int)(-uVar2 | uVar2) >> 0x1f) * -0xbadc ^ 0xbccc;
  uVar2 = (uint)&stack0x00000000 & 0x37f;
  iVar3 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  local_64 = (((iVar3 >> 1) - (iVar3 >> 3)) + iVar3 * 0x55555555 >> 0x1e) + 0x650cU ^ 0x64cc;
  lVar6 = (longlong)&DAT_18265f278 +
          (SUB168(ZEXT816(0xc7ce0c7ce0c7ce0d) * ZEXT816(0x18265f278),8) >> 5) * -0x29;
  LOCK();
  iVar3 = *(int *)(&DAT_18265dbd0 + lVar6 * 4);
  *(int *)(&DAT_18265dbd0 + lVar6 * 4) = 1;
  UNLOCK();
  while (iVar3 != 0) {
    if ((3 < uVar5) && (0xf < uVar5)) {
      Sleep((uint)(0x1f < uVar5));
    }
    uVar5 = uVar5 + 1;
    LOCK();
    iVar3 = *(int *)(&DAT_18265dbd0 + lVar6 * 4);
    *(int *)(&DAT_18265dbd0 + lVar6 * 4) = 1;
    UNLOCK();
  }
  *(undefined4 *)(&DAT_18265dbd0 + lVar6 * 4) = 0;
  local_80 = &DAT_1811cb71c;
  local_88 = &DAT_18118b9fc;
  local_78 = local_80;
  FUN_18060583b();
  puStack_b8 = &DAT_18118b9fc;
  lVar6 = FUN_180606ef8();
  in_R11 = in_R11 + lVar6;
  plVar1 = alStack_e8 + 6;
  do {
    plVar4 = plVar1;
    bVar7 = SBORROW8(in_R11,lVar6);
    in_R11 = in_R11 - lVar6;
    plVar1 = plVar4 + 1;
  } while (!bVar7);
  lVar6 = plVar4[1];
  plVar4[1] = lVar6 + 0x1cc;
  *plVar4 = lVar6 + -0x4939;
  plVar4[-1] = lVar6 + 0x925b;
  plVar4[-2] = lVar6 + -0x220f;
  plVar4[-3] = lVar6 + -0x658;
  plVar4[-4] = lVar6 + -0x5992;
  plVar4[-5] = lVar6 + 0x9250;
  plVar4[-6] = lVar6 + -0x7d6;
  return;
}



############ FUN_ 1806054c0 size=717 ############

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x00018060578a) overlaps instruction at (ram,0x000180605789)
    */
/* WARNING: Removing unreachable block (ram,0x0001806057f8) */
/* WARNING: Removing unreachable block (ram,0x000180605520) */
/* WARNING: Removing unreachable block (ram,0x000180605788) */

void FUN_1806054c0(void)

{
  undefined8 *puVar1;
  longlong lVar2;
  longlong *plVar3;
  char cVar4;
  uint uVar5;
  int unaff_retaddr;
  undefined1 auStack_a8 [32];
  undefined4 local_88;
  undefined *local_80;
  undefined *local_78;
  longlong local_70;
  undefined4 local_5c;
  uint local_58;
  undefined8 local_50;
  ulonglong local_30;
  
  local_50 = 0xfffffffffffffffe;
  local_30 = DAT_182615970 ^ (ulonglong)auStack_a8;
  local_5c = 0xea0;
  uVar5 = (uint)&stack0x00000000 & 0x32ff;
  lVar2 = 0;
  uVar5 = uVar5 * uVar5 + 1;
  local_58 = (0x5062U - (0 >> ((char)uVar5 + (char)(uVar5 / 7) * -7 & 0x1fU)) | 0x5c6a) ^ 0x5c0a;
  local_70 = 0;
  local_78 = &DAT_180605a24;
  local_80 = &DAT_1806454dc;
  local_88 = 0x811c9dc5;
  do {
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  local_70 = FUN_1811316e0(0x10,0x180000000);
  if (local_70 != 0) {
    lVar2 = FUN_180600e30(local_70);
  }
  plVar3 = (longlong *)FUN_180608a30();
  puVar1 = (undefined8 *)*plVar3;
  *plVar3 = lVar2;
  if (puVar1 != (undefined8 *)0x0) {
    (**(code **)*puVar1)(puVar1,1);
  }
  do {
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
    cVar4 = (char)uVar5;
  } while (uVar5 != 0);
                    /* WARNING: Call to offcut address within same function */
  lVar2 = func_0x00018060582c();
  *(char *)(lVar2 + 5) = *(char *)(lVar2 + 5) - cVar4;
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}



############ FUN_ 18097ed20 size=97 ############

undefined8 * FUN_18097ed20(undefined8 *param_1,undefined8 param_2)

{
  undefined8 *puVar1;
  
  *param_1 = 0;
  puVar1 = (undefined8 *)FUN_1811316e0(0x18);
  if (puVar1 != (undefined8 *)0x0) {
    *(undefined4 *)(puVar1 + 1) = 1;
    *(undefined4 *)((longlong)puVar1 + 0xc) = 1;
    *puVar1 = boost::detail::sp_counted_impl_p<apache::thrift::concurrency::Mutex::impl>::vftable;
    puVar1[2] = param_2;
  }
  *param_1 = puVar1;
  return param_1;
}



############ FUN_ 18097ee60 size=30 ############

undefined8 FUN_18097ee60(undefined8 param_1,code *param_2)

{
  (*param_2)();
  return param_1;
}



############ FUN_ 1805b1fc0 size=95 ############

undefined8 * FUN_1805b1fc0(undefined8 *param_1,longlong param_2)

{
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  *(undefined4 *)(param_1 + 7) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::gregorian::bad_year>::vftable;
  param_1[3] = boost::exception_detail::error_info_injector<boost::gregorian::bad_year>::vftable;
  return param_1;
}



############ FUN_ 1805b1ce0 size=174 ############

undefined8 *
FUN_1805b1ce0(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[8] = &DAT_181bb33a8;
  param_1[10] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805b4470();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_year>_>::
             vftable;
  param_1[3] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_year>_>
               ::vftable;
  *(undefined ***)((longlong)*(int *)(param_1[8] + 4) + 0x40 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_year>_>::
       vftable;
  *(int *)((longlong)*(int *)(param_1[8] + 4) + 0x3c + (longlong)param_1) =
       *(int *)(param_1[8] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x18;
  }
  FUN_1805a7b20(param_1 + 3,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805b1f00 size=95 ############

undefined8 * FUN_1805b1f00(undefined8 *param_1,longlong param_2)

{
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  *(undefined4 *)(param_1 + 7) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month>::
             vftable;
  param_1[3] = boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month>::
               vftable;
  return param_1;
}



############ FUN_ 1805b1b80 size=174 ############

undefined8 *
FUN_1805b1b80(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[8] = &DAT_181bb32b8;
  param_1[10] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805b4310();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month>_>
             ::vftable;
  param_1[3] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month>_>
               ::vftable;
  *(undefined ***)((longlong)*(int *)(param_1[8] + 4) + 0x40 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month>_>
       ::vftable;
  *(int *)((longlong)*(int *)(param_1[8] + 4) + 0x3c + (longlong)param_1) =
       *(int *)(param_1[8] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x18;
  }
  FUN_1805a7b20(param_1 + 3,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805b1c30 size=174 ############

undefined8 *
FUN_1805b1c30(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  uVar3 = 0xfffffffffffffffe;
  lVar1 = 0;
  param_1[8] = &DAT_181bb3330;
  param_1[10] = boost::exception_detail::clone_base::vftable;
  uVar2 = 2;
  FUN_1805b43c0();
  *param_1 = boost::exception_detail::
             clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_month>_>
             ::vftable;
  param_1[3] = boost::exception_detail::
               clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_month>_>
               ::vftable;
  *(undefined ***)((longlong)*(int *)(param_1[8] + 4) + 0x40 + (longlong)param_1) =
       boost::exception_detail::
       clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_month>_>::
       vftable;
  *(int *)((longlong)*(int *)(param_1[8] + 4) + 0x3c + (longlong)param_1) =
       *(int *)(param_1[8] + 4) + -0x10;
  if (param_2 != 0) {
    lVar1 = param_2 + 0x18;
  }
  FUN_1805a7b20(param_1 + 3,lVar1,param_3,param_4,uVar2,uVar3);
  return param_1;
}



############ FUN_ 1805b1f60 size=95 ############

undefined8 * FUN_1805b1f60(undefined8 *param_1,longlong param_2)

{
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  *(undefined4 *)(param_1 + 7) = 0xffffffff;
  *param_1 = boost::exception_detail::error_info_injector<boost::gregorian::bad_month>::vftable;
  param_1[3] = boost::exception_detail::error_info_injector<boost::gregorian::bad_month>::vftable;
  return param_1;
}



############ FUN_ 1807071ca size=243 ############

undefined8 FUN_1807071ca(void)

{
  undefined8 in_RAX;
  
  return in_RAX;
}



############ FUN_ 180700200 size=101 ############

undefined4 FUN_180700200(short *param_1,short param_2,longlong param_3)

{
  if (param_1 == (short *)0x0) {
    return 99;
  }
  *param_1 = param_2;
  if (param_2 == 1) {
    if (param_3 == 0) {
      FUN_1806214e0(param_1 + 10,0);
      *(undefined1 *)(param_1 + 1) = 0;
      return 0;
    }
    FUN_1806213f0(param_1 + 10,param_3,0x10);
    *(undefined1 *)(param_1 + 1) = 0;
    return 0;
  }
  *(undefined1 *)(param_1 + 1) = 0xff;
  return 0;
}



############ FUN_ 1806fc470 size=1201 ############

/* WARNING: Instruction at (ram,0x0001806fc9b5) overlaps instruction at (ram,0x0001806fc9b4)
    */
/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Removing unreachable block (ram,0x0001806fca70) */
/* WARNING: Removing unreachable block (ram,0x0001806fc54d) */
/* WARNING: Removing unreachable block (ram,0x0001806fc539) */
/* WARNING: Removing unreachable block (ram,0x0001806fc805) */
/* WARNING: Removing unreachable block (ram,0x0001806fc926) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

ulonglong FUN_1806fc470(void)

{
  int iVar1;
  uint uVar2;
  ulonglong uVar3;
  longlong lVar4;
  uint uVar5;
  int unaff_retaddr;
  
  lVar4 = 0x180000000;
  uVar5 = (((uint)(DAT_180843468 * 0x401) >> 6 ^ DAT_180843468 * 0x401) + DAT_18084346c) * 0x401;
  do {
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar5 = (DAT_180843470 + (uVar5 ^ uVar5 >> 6)) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_180843474) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_180843478) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_18084347c) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_180843480) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_180843484) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_180843488) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_18084348c) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_180843490) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_180843494) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_180843498) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_18084349c) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434a0) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434a4) * 0x401;
  do {
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar5 = (DAT_1808434a8 + (uVar5 ^ uVar5 >> 6)) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434ac) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434b0) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434b4) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434b8) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434bc) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434c0) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434c4) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434c8) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + DAT_1808434cc) * 0x401;
  do {
                    /* WARNING: Bad instruction - Truncating control flow here */
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar5 = (_UNK_1808434d0 + (uVar5 ^ uVar5 >> 6)) * 0x401;
  uVar5 = ((uVar5 >> 6 ^ uVar5) + _UNK_1808434d4) * 0x401;
  do {
    uVar3 = 0x5810;
    iVar1 = func_0x0001806fe7e0(0x5810,lVar4);
    if ((uVar3 & 0xcb00) == 0) {
      iVar1 = iVar1 - *(int *)((ulonglong)(uVar5 ^ uVar5 >> 6) - 0x146f3f3f);
      return (ulonglong)CONCAT31((int3)((uint)iVar1 >> 8),(char)iVar1 + '2') & 0xffffffffffffff24;
    }
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  do {
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  do {
    func_0x0001806fc3b5(0x5810);
    uVar5 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  do {
    lVar4 = (-lVar4 ^ 0xffffffffffffffffU) + 1;
    register0x00000020 =
         (BADSPACEBASE *)
         ((~((~(ulonglong)register0x00000020 + 1 ^ 0xffffffffffffffff) + 1) + 1 ^ 0xffffffffffffffff
          ) + 1);
    uVar5 = (*(int *)register0x00000020 + 1) * *(int *)register0x00000020 & 0x80000001;
    if ((int)uVar5 < 0) {
      uVar5 = (uVar5 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar5 != 0);
  lVar4 = func_0x0001806fe15a(0,lVar4);
  return ~-lVar4 + 1;
}



############ FUN_ 180700640 size=232 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_180700640(longlong param_1,undefined2 param_2,short param_3,undefined8 param_4,
                  short param_5,undefined1 *param_6)

{
  undefined1 *puVar1;
  int iVar2;
  short sVar3;
  undefined1 auStack_58 [32];
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  ulonglong local_28;
  
  local_28 = DAT_182615970 ^ (ulonglong)auStack_58;
  local_38 = 0x206ea938;
  local_34 = 0x77b147ad;
  local_30 = 0x4d238c4;
  local_2c = 0x2afc3085;
  if (((param_1 != 0) && (param_6 != (undefined1 *)0x0)) && ((param_5 - 0x20U & 0xffef) == 0)) {
    sVar3 = 0x20;
    if ((ushort)(param_3 - 1U) < 0x1f) {
      sVar3 = param_3;
    }
    *(short *)(param_1 + 0x62) = sVar3;
    FUN_180620540(&local_38,(char)sVar3,0x10);
    iVar2 = FUN_180700740(param_1,param_2,param_4);
    if (iVar2 == 0) {
      puVar1 = auStack_58;
      if (param_5 != 0x20) {
        puVar1 = param_6;
      }
      FUN_180968d00(param_1,param_6,puVar1 + 0x20);
    }
  }
}



############ FUN_ 180701a50 size=1711 ############

/* WARNING: Removing unreachable block (ram,0x000180702038) */
/* WARNING: Removing unreachable block (ram,0x000180702083) */
/* WARNING: Removing unreachable block (ram,0x00018070208a) */
/* WARNING: Removing unreachable block (ram,0x000180701ae9) */
/* WARNING: Removing unreachable block (ram,0x000180701abc) */
/* WARNING: Removing unreachable block (ram,0x000180701ddb) */
/* WARNING: Removing unreachable block (ram,0x000180701aca) */
/* WARNING: Removing unreachable block (ram,0x000180701b2a) */

void FUN_180701a50(undefined8 param_1,undefined2 param_2,undefined8 param_3,undefined2 param_4,
                  undefined8 param_5)

{
  uint uVar1;
  int iVar3;
  uint uVar2;
  longlong lVar4;
  ulonglong uVar5;
  IMAGE_DOS_HEADER *pIVar6;
  longlong *plVar7;
  uint uVar8;
  longlong lVar9;
  ulonglong *puVar10;
  ulonglong *puVar11;
  uint *puVar12;
  uint *puVar13;
  uint uVar14;
  int iVar15;
  IMAGE_DOS_HEADER *pIVar16;
  uint *puVar17;
  uint uVar18;
  undefined1 uVar19;
  undefined1 uVar20;
  int unaff_retaddr;
  ulonglong auStack_e8 [2];
  undefined1 local_d8 [32];
  uint local_b8;
  undefined2 local_b4;
  undefined2 local_b2;
  undefined *local_b0;
  uint local_a4;
  undefined8 local_a0;
  undefined4 *local_98;
  undefined8 local_90;
  uint local_88;
  uint local_84;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  uint local_58 [4];
  ulonglong local_48;
  
  puVar11 = (ulonglong *)local_d8;
  local_48 = DAT_182615970 ^ (ulonglong)local_d8;
  uVar1 = (uint)&stack0x00000000;
  puVar12 = (uint *)0x60b240d1;
  local_68 = param_5;
  uVar2 = uVar1 & 0x3ff;
  iVar3 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  uVar2 = uVar1 & 0x13f;
  iVar15 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  local_84 = (((iVar3 >> 1) - (iVar3 >> 3)) + iVar3 * 0x55555555 >> 0x1e) + 0x4c6dU ^
             0x407dU - (((iVar15 >> 1) - (iVar15 >> 3)) + iVar15 * 0x55555555 >> 0x1e);
  if (((ulonglong)&stack0x00000000 & 0x138) == 0) {
    uVar1 = uVar1 & 0x5ff;
  }
  else {
    uVar1 = uVar1 & 0x13ff;
  }
  uVar2 = (uVar1 * uVar1 + 1) % 7;
  local_88 = ((int)(-uVar2 | uVar2) >> 0x1f) * -0x6a8f ^ 0x61ff;
  pIVar6 = &IMAGE_DOS_HEADER_180000000;
  local_98 = &DAT_181dae0d8;
  local_b0 = &DAT_181db60c8;
  lVar9 = 0;
  local_b8 = 0x811c9e07;
  local_90 = 0x84cbb116e4a20036;
  local_a0 = 0xe4a20036;
  local_b4 = param_2;
  local_b2 = param_4;
  local_78 = param_3;
  local_70 = param_1;
LAB_180701cc6:
  do {
    *(undefined8 *)((longlong)puVar11 + -8) = 0x180701cd0;
    FUN_180701e2c(0x6c2c);
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  puVar17 = (uint *)((longlong)&DAT_181dae0d8 + lVar9);
  puVar13 = puVar17;
  if ((pIVar6 != (IMAGE_DOS_HEADER *)0x0) &&
     (lVar4._0_1_ = pIVar6->e_magic[0], lVar4._1_1_ = pIVar6->e_magic[1],
     lVar4._2_2_ = pIVar6->e_cblp, lVar4._4_2_ = pIVar6->e_cp, lVar4._6_2_ = pIVar6->e_crlc,
     -1 < lVar4)) {
    local_90 = 0x2621fc0;
    do {
      if (puVar17 < IMAGE_DOS_HEADER_180000000.e_magic + lVar4 + 8) {
        if (-1 < lVar4) {
          plVar7 = (longlong *)(lVar4 + 0x180000000);
          if (plVar7 < &DAT_181dae0dc + lVar9) {
            local_58[0] = *puVar17;
            pIVar16 = pIVar6;
            goto LAB_180701da0;
          }
        }
        break;
      }
      lVar4._0_2_ = pIVar6->e_cparhdr;
      lVar4._2_2_ = pIVar6->e_minalloc;
      lVar4._4_2_ = pIVar6->e_maxalloc;
      lVar4._6_2_ = pIVar6->e_ss;
      pIVar6 = (IMAGE_DOS_HEADER *)&pIVar6->e_cparhdr;
    } while (-1 < lVar4);
  }
  goto LAB_180701dc0;
  while (plVar7 = (longlong *)(lVar4 + 0x180000000), plVar7 < &DAT_181dae0dc + lVar9) {
LAB_180701da0:
    pIVar16 = (IMAGE_DOS_HEADER *)&pIVar16->e_cparhdr;
    *(longlong *)(&stack0x00017fffffa8 + (lVar4 - (longlong)puVar17)) = *plVar7 + -0x180000000;
    lVar4 = *(longlong *)pIVar16;
    puVar13 = local_58;
    if (lVar4 < 0) break;
  }
LAB_180701dc0:
  do {
    puVar17 = &local_b8;
    uVar5 = 0x6c2c;
    *(uint **)((longlong)puVar11 + -8) = puVar12;
    puVar10 = (ulonglong *)((longlong)puVar11 + -8);
    puVar12 = puVar13;
LAB_180701e75:
    do {
      if ((uVar5 & 0xc300) == 0) {
        return;
      }
      do {
        if ((uVar5 & 0xc3) != 0) goto LAB_180701e75;
        puVar11 = puVar10;
        if ((uVar5 & 0xc300) == 0) goto LAB_180701e92;
        if (((uVar5 & 0xc300) == 0) || ((uVar5 & 0xc300) == 0)) goto LAB_180701e75;
      } while ((uVar5 & 0xc3) != 0);
      puVar10[-1] = 0x180701e4f;
      uVar2 = FUN_180702157();
      *puVar17 = uVar2;
      puVar12 = (uint *)*puVar10;
      puVar11 = puVar10 + 1;
      puVar10 = puVar10 + 1;
    } while ((uVar5 & 0xc3) != 0);
LAB_180701e92:
    uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar2 < 0) {
      uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar2 != 0);
  uVar18 = local_b8 * 0x10001a7;
  uVar8 = (uint)lVar9;
  puVar12 = (uint *)(ulonglong)((uint)puVar12 | local_b8);
  uVar2 = uVar8 & 0x1bf;
  uVar1 = uVar8 & 0x7f | 0x2c;
  iVar15 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
  iVar3 = (uVar8 & 0x1dff) * (uVar8 & 0x1dff) + 1;
  iVar3 = (iVar3 >> 4) + (iVar3 >> 1) + iVar3 * 0x24924924;
  uVar2 = uVar18 & 0x7f | 0x6b;
  if (((int)(uint)(uVar2 * uVar2 * 0x4bb3 == uVar1 * uVar1 * 0x11c5) >>
      ((byte)((iVar3 >> 0x1d) + -7 >> 0x1f) & (byte)(iVar3 >> 0x1d) & 0x1f)) +
      (((iVar15 >> 1) - (iVar15 >> 3)) + iVar15 * 0x55555555 >> 0x1e) != 0) {
    uVar2 = uVar18 & 0x7f | 0x6b;
    do {
      lVar9 = lVar9 + 4;
      uVar8 = (uint)lVar9;
      uVar1 = uVar8 & 0x1bf;
      puVar12 = (uint *)(ulonglong)((uint)puVar12 ^ (uint)((ulonglong)puVar12 >> 0x11));
      uVar14 = uVar8 & 0x7f | 0x2c;
      iVar15 = (uVar1 + 2) * (uVar1 + 1) * uVar1;
      iVar3 = (uVar8 & 0x1dff) * (uVar8 & 0x1dff) + 1;
      iVar3 = (iVar3 >> 4) + (iVar3 >> 1) + iVar3 * 0x24924924;
    } while (((int)(uint)(uVar2 * uVar2 * 0x4bb3 == uVar14 * uVar14 * 0x11c5) >>
             ((byte)((iVar3 >> 0x1d) + -7 >> 0x1f) & (byte)(iVar3 >> 0x1d) & 0x1f)) +
             (((iVar15 >> 1) - (iVar15 >> 3)) + iVar15 * 0x55555555 >> 0x1e) != 0);
  }
  while( true ) {
    uVar2 = uVar18 & 0x3ff;
    iVar3 = (uVar2 + 2) * (uVar2 + 1) * uVar2;
    if (iVar3 + (iVar3 / 3 + (iVar3 >> 0x1f) +
                (int)(((longlong)iVar3 / 3 + ((longlong)iVar3 >> 0x3f) & 0xffffffffU) >> 0x1f)) * -3
        == 0) break;
    puVar12 = (uint *)(ulonglong)((uint)puVar12 ^ (uint)((ulonglong)puVar12 >> 0x12));
    lVar9 = lVar9 + 4;
  }
  lVar9 = lVar9 + 4;
  local_b8 = uVar18;
  if (lVar9 == 0x7ff0) {
    local_b0 = (undefined *)CONCAT44(local_b0._4_4_,(uint)puVar12);
    do {
      *(undefined8 *)((longlong)puVar11 + -8) = 0x18070211e;
      FUN_1807007fc(0x6c2c);
      uVar2 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
      if ((int)uVar2 < 0) {
        uVar2 = (uVar2 - 1 | 0xfffffffe) + 1;
      }
      uVar19 = 0;
      uVar20 = uVar2 == 0;
    } while (!(bool)uVar20);
    local_a4 = local_b8;
    *(undefined8 *)((longlong)puVar11 + -8) = 0x180702149;
    FUN_180701053();
    *(BADSPACEBASE **)((longlong)puVar11 + -8) = register0x00000020;
    *(undefined8 *)((longlong)puVar11 + -0x10) = 0x7ff0;
    *(undefined8 *)((longlong)puVar11 + -0x18) = 0x180702153;
    FUN_180702170();
    if ((bool)uVar19 || (bool)uVar20) {
      thunk_FUN_18070216d();
      return;
    }
    return;
  }
  goto LAB_180701cc6;
}



############ FUN_ 1806213f0 size=237 ############

uint FUN_1806213f0(undefined1 (*param_1) [16],undefined1 (*param_2) [16],uint param_3)

{
  undefined1 auVar1 [16];
  byte bVar2;
  ulonglong uVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  undefined1 auVar7 [16];
  undefined1 auVar8 [16];
  
  uVar5 = 0;
  uVar6 = 0;
  if (param_3 != 0) {
    if ((0x1f < param_3) &&
       (((undefined1 (*) [16])(*param_2 + (param_3 - 1)) < param_1 ||
        ((undefined1 (*) [16])(*param_1 + (param_3 - 1)) < param_2)))) {
      auVar8 = ZEXT816(0);
      auVar7 = ZEXT816(0);
      do {
        auVar1 = *param_2;
        uVar6 = uVar6 + 0x20;
        *param_1 = auVar1;
        auVar8 = auVar8 | auVar1;
        auVar1 = param_2[1];
        param_2 = param_2 + 2;
        param_1[1] = auVar1;
        param_1 = param_1 + 2;
        auVar7 = auVar7 | auVar1;
      } while (uVar6 < param_3 - (param_3 & 0x1f));
      auVar7 = auVar7 | auVar8 | (auVar7 | auVar8) >> 0x40;
      auVar7 = auVar7 | auVar7 >> 0x20;
      auVar7 = auVar7 | auVar7 >> 0x10;
      uVar5 = auVar7._0_4_ | auVar7._1_4_;
    }
    if (uVar6 < param_3) {
      lVar4 = (longlong)param_2 - (longlong)param_1;
      uVar3 = (ulonglong)(param_3 - uVar6);
      do {
        bVar2 = *(byte *)(lVar4 + (longlong)param_1);
        (*param_1)[0] = bVar2;
        param_1 = (undefined1 (*) [16])(*param_1 + 1);
        uVar5 = (uint)(byte)((byte)uVar5 | bVar2);
        uVar3 = uVar3 - 1;
      } while (uVar3 != 0);
    }
  }
  return uVar5 & 0xff;
}



############ FUN_ 180700270 size=49 ############

undefined8 FUN_180700270(undefined4 param_1)

{
  switch(param_1) {
  case 0:
  case 1:
  case 2:
  case 3:
  case 0x1f:
    return 0x10;
  default:
    return 0;
  case 0x1c:
  case 0x1d:
  case 0x1e:
    return 0x20;
  }
}



############ FUN_ 1805f1b50 size=192 ############

undefined8 * FUN_1805f1b50(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::bad_lexical_cast::vftable;
  param_1[3] = *(undefined8 *)(param_2 + 0x18);
  param_1[4] = *(undefined8 *)(param_2 + 0x20);
  param_1[5] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x30);
  param_1[6] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[7] = *(undefined8 *)(param_2 + 0x38);
  param_1[8] = *(undefined8 *)(param_2 + 0x40);
  *(undefined4 *)(param_1 + 9) = *(undefined4 *)(param_2 + 0x48);
  *param_1 = boost::exception_detail::error_info_injector<boost::bad_lexical_cast>::vftable;
  param_1[5] = boost::exception_detail::error_info_injector<boost::bad_lexical_cast>::vftable;
  return param_1;
}



############ FUN_ 1805f2b30 size=390 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805f2b30(longlong param_1,_Locinfo *param_2,char param_3)

{
  char *pcVar1;
  lconv *plVar2;
  undefined8 uVar3;
  char *pcVar4;
  char *pcVar5;
  longlong lVar6;
  longlong lVar7;
  size_t sVar8;
  undefined1 auStack_c8 [32];
  longlong local_a8;
  undefined8 local_a0;
  ulonglong local_38;
  
  local_a0 = 0xfffffffffffffffe;
  local_38 = DAT_182615970 ^ (ulonglong)auStack_c8;
  local_a8 = param_1;
  plVar2 = localeconv();
  std::_Locinfo::_Getcvt(param_2);
  *(undefined8 *)(param_1 + 0x10) = 0;
  *(undefined8 *)(param_1 + 0x20) = 0;
  *(undefined8 *)(param_1 + 0x28) = 0;
  pcVar5 = "";
  if (param_3 == '\0') {
    pcVar5 = plVar2->grouping;
  }
  uVar3 = std::_Locinfo::_Getcvt(param_2);
  uVar3 = FUN_1805f16c0(pcVar5,0,uVar3);
  *(undefined8 *)(param_1 + 0x10) = uVar3;
  pcVar5 = std::_Locinfo::_Getfalse(param_2);
  lVar7 = -1;
  do {
    lVar6 = lVar7;
    lVar7 = lVar6 + 1;
  } while (pcVar5[lVar7] != '\0');
  sVar8 = lVar6 + 2;
  pcVar4 = calloc(sVar8,1);
  pcVar1 = pcVar4;
  if (pcVar4 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    std::_Xbad_alloc();
  }
  for (; sVar8 != 0; sVar8 = sVar8 - 1) {
    *pcVar1 = *pcVar5;
    pcVar5 = pcVar5 + 1;
    pcVar1 = pcVar1 + 1;
  }
  *(char **)(param_1 + 0x20) = pcVar4;
  pcVar5 = std::_Locinfo::_Gettrue(param_2);
  lVar7 = -1;
  do {
    lVar6 = lVar7;
    lVar7 = lVar6 + 1;
  } while (pcVar5[lVar7] != '\0');
  sVar8 = lVar6 + 2;
  pcVar4 = calloc(sVar8,1);
  pcVar1 = pcVar4;
  if (pcVar4 != (char *)0x0) {
    for (; sVar8 != 0; sVar8 = sVar8 - 1) {
      *pcVar1 = *pcVar5;
      pcVar5 = pcVar5 + 1;
      pcVar1 = pcVar1 + 1;
    }
    *(char **)(param_1 + 0x28) = pcVar4;
    if (param_3 == '\0') {
      *(char *)(param_1 + 0x18) = *plVar2->decimal_point;
      *(char *)(param_1 + 0x19) = *plVar2->thousands_sep;
    }
    else {
      *(undefined2 *)(param_1 + 0x18) = 0x2c2e;
    }
  }
                    /* WARNING: Subroutine does not return */
  std::_Xbad_alloc();
}



############ FUN_ 1805f47e0 size=346 ############

/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */

void FUN_1805f47e0(longlong param_1,undefined8 *param_2)

{
  undefined8 uVar1;
  void *pvVar2;
  bool bVar3;
  bool bVar4;
  undefined8 *puVar5;
  void *pvVar6;
  longlong lVar7;
  longlong lVar8;
  undefined1 auStack_88 [32];
  undefined4 local_68;
  undefined8 local_60;
  undefined8 *local_58;
  undefined8 local_50 [2];
  undefined8 local_40;
  ulonglong local_38;
  undefined1 local_30;
  undefined7 uStack_2f;
  undefined8 local_20;
  ulonglong uStack_18;
  ulonglong local_10;
  
  local_60 = 0xfffffffffffffffe;
  local_10 = DAT_182615970 ^ (ulonglong)auStack_88;
  local_68 = 0;
  lVar8 = *(longlong *)(param_1 + 8);
  local_58 = param_2;
  if (lVar8 == 0) {
    local_20 = 0;
    uStack_18 = 0xf;
    local_30 = 0;
    puVar5 = (undefined8 *)&local_30;
    bVar4 = true;
    bVar3 = false;
  }
  else {
    lVar7 = *(longlong *)(lVar8 + 0x28);
    if (lVar7 == 0) {
      lVar7 = lVar8 + 0x30;
    }
    local_40 = 0;
    local_38 = 0xf;
    local_50[0]._0_1_ = 0;
    lVar8 = -1;
    do {
      lVar8 = lVar8 + 1;
    } while (*(char *)(lVar7 + lVar8) != '\0');
    FUN_1805a6cb0(local_50);
    puVar5 = local_50;
    bVar4 = false;
    bVar3 = true;
  }
  uVar1 = puVar5[1];
  *param_2 = *puVar5;
  param_2[1] = uVar1;
  uVar1 = puVar5[3];
  param_2[2] = puVar5[2];
  param_2[3] = uVar1;
  puVar5[2] = 0;
  puVar5[3] = 0xf;
  *(undefined1 *)puVar5 = 0;
  if ((bVar3) && (0xf < local_38)) {
    pvVar2 = (void *)CONCAT71(local_50[0]._1_7_,(undefined1)local_50[0]);
    pvVar6 = pvVar2;
    if ((0xfff < local_38 + 1) &&
       (pvVar6 = *(void **)((longlong)pvVar2 + -8),
       0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar6)))) {
                    /* WARNING: Subroutine does not return */
      _invalid_parameter_noinfo_noreturn();
    }
                    /* WARNING: Subroutine does not return */
    free(pvVar6);
  }
  if ((!bVar4) || (uStack_18 < 0x10)) {
  }
  pvVar2 = (void *)CONCAT71(uStack_2f,local_30);
  pvVar6 = pvVar2;
  if ((0xfff < uStack_18 + 1) &&
     (pvVar6 = *(void **)((longlong)pvVar2 + -8),
     0x1f < (ulonglong)((longlong)pvVar2 + (-8 - (longlong)pvVar6)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(pvVar6);
}



############ FUN_ 180490ca0 size=36 ############

void FUN_180490ca0(undefined8 param_1,void *param_2)

{
  FUN_18048c5e0((longlong)param_2 + 0x20);
                    /* WARNING: Subroutine does not return */
  free(param_2);
}



############ FUN_ 18048c5e0 size=30 ############

void FUN_18048c5e0(longlong param_1)

{
  *(undefined4 *)(param_1 + 0x44) = 0;
                    /* WARNING: Subroutine does not return */
  free(*(void **)(param_1 + 0x38));
}



############ FUN_ 1805b4b00 size=184 ############

undefined8 *
FUN_1805b4b00(undefined8 *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)

{
  void *_Dst;
  undefined8 uVar1;
  ulonglong uVar2;
  size_t _Size;
  
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  uVar2 = param_2[1] - *param_2 >> 3;
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  if (uVar2 != 0) {
    if (0x1fffffffffffffff < uVar2) {
                    /* WARNING: Subroutine does not return */
      FUN_1805a69c0();
    }
    uVar1 = FUN_1805bcb90(param_1,uVar2,param_3,param_4,0xfffffffffffffffe);
    *param_1 = uVar1;
    param_1[1] = uVar1;
    _Dst = (void *)*param_1;
    param_1[2] = (void *)((longlong)_Dst + uVar2 * 8);
    _Size = param_2[1] - *param_2;
    memmove(_Dst,(void *)*param_2,_Size);
    param_1[1] = _Size + (longlong)_Dst;
  }
  return param_1;
}



############ FUN_ 1805bcb90 size=116 ############

void FUN_1805bcb90(undefined8 param_1,ulonglong param_2)

{
  ulonglong uVar1;
  longlong lVar2;
  ulonglong uVar3;
  
  uVar1 = param_2 * 8;
  if (param_2 < 0x2000000000000000) {
    if (uVar1 < 0x1000) {
      if (uVar1 != 0) {
        FUN_1811316e0(uVar1);
        return;
      }
      return;
    }
  }
  else {
    uVar1 = 0xffffffffffffffff;
  }
  uVar3 = uVar1 + 0x27;
  if (uVar3 <= uVar1) {
    uVar3 = 0xffffffffffffffff;
  }
  lVar2 = FUN_1811316e0(uVar3);
  if (lVar2 != 0) {
    *(longlong *)((lVar2 + 0x27U & 0xffffffffffffffe0) - 8) = lVar2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  _invalid_parameter_noinfo_noreturn();
}



############ FUN_ 1805bd950 size=66 ############

void FUN_1805bd950(undefined8 param_1,void *param_2,longlong param_3)

{
  void *_Memory;
  
  _Memory = param_2;
  if ((0xfff < (ulonglong)(param_3 * 8)) &&
     (_Memory = *(void **)((longlong)param_2 + -8),
     0x1f < (ulonglong)((longlong)param_2 + (-8 - (longlong)_Memory)))) {
                    /* WARNING: Subroutine does not return */
    _invalid_parameter_noinfo_noreturn();
  }
                    /* WARNING: Subroutine does not return */
  free(_Memory);
}



############ FUN_ 180606ef8 size=392 ############

void FUN_180606ef8(void)

{
  return;
}



############ FUN_ 180600e30 size=650 ############

/* WARNING: Removing unreachable block (ram,0x000180600f27) */
/* WARNING: Removing unreachable block (ram,0x000180600f06) */

void FUN_180600e30(undefined8 *param_1)

{
  longlong local_e0;
  
  *param_1 = pace::StrongRandomGenerator::vftable;
  param_1[1] = 0;
  CryptAcquireContextW(param_1 + 1,(LPCWSTR)0x0,(LPCWSTR)0x0,1,0xf0000000);
  FUN_1805ff5fb();
                    /* WARNING: Call to offcut address within same function */
  func_0x000180600ff3();
                    /* WARNING: Could not recover jumptable at 0x0001806010c9. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)(local_e0 + 0x570))();
  return;
}



############ FUN_ 1805b4470 size=176 ############

undefined8 * FUN_1805b4470(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::gregorian::bad_year::vftable;
  param_1[3] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x20);
  param_1[4] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[5] = *(undefined8 *)(param_2 + 0x28);
  param_1[6] = *(undefined8 *)(param_2 + 0x30);
  *(undefined4 *)(param_1 + 7) = *(undefined4 *)(param_2 + 0x38);
  *param_1 = boost::exception_detail::error_info_injector<boost::gregorian::bad_year>::vftable;
  param_1[3] = boost::exception_detail::error_info_injector<boost::gregorian::bad_year>::vftable;
  return param_1;
}



############ FUN_ 1805b4310 size=176 ############

undefined8 * FUN_1805b4310(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::gregorian::bad_day_of_month::vftable;
  param_1[3] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x20);
  param_1[4] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[5] = *(undefined8 *)(param_2 + 0x28);
  param_1[6] = *(undefined8 *)(param_2 + 0x30);
  *(undefined4 *)(param_1 + 7) = *(undefined4 *)(param_2 + 0x38);
  *param_1 = boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month>::
             vftable;
  param_1[3] = boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month>::
               vftable;
  return param_1;
}



############ FUN_ 1805b43c0 size=176 ############

undefined8 * FUN_1805b43c0(undefined8 *param_1,longlong param_2)

{
  longlong *plVar1;
  
  *param_1 = std::exception::vftable;
  param_1[1] = 0;
  param_1[2] = 0;
  __std_exception_copy(param_2 + 8);
  *param_1 = boost::gregorian::bad_month::vftable;
  param_1[3] = boost::exception::vftable;
  plVar1 = *(longlong **)(param_2 + 0x20);
  param_1[4] = plVar1;
  if (plVar1 != (longlong *)0x0) {
    (**(code **)(*plVar1 + 0x18))();
  }
  param_1[5] = *(undefined8 *)(param_2 + 0x28);
  param_1[6] = *(undefined8 *)(param_2 + 0x30);
  *(undefined4 *)(param_1 + 7) = *(undefined4 *)(param_2 + 0x38);
  *param_1 = boost::exception_detail::error_info_injector<boost::gregorian::bad_month>::vftable;
  param_1[3] = boost::exception_detail::error_info_injector<boost::gregorian::bad_month>::vftable;
  return param_1;
}



############ FUN_ 180700740 size=188 ############

undefined4 FUN_180700740(longlong param_1,ushort param_2,longlong param_3)

{
  uint uVar1;
  uint uVar2;
  
  if (param_1 == 0) {
    return 99;
  }
  if (param_2 < 2) {
    *(ushort *)(param_1 + 0x60) = param_2;
    if (param_2 == 1) {
      if (param_3 == 0) {
        FUN_1806214e0(param_1 + 0x40,0,0x20);
        return 0;
      }
      uVar2 = 0x20;
      do {
        uVar1 = (uint)*(ushort *)(param_1 + 0x62);
        if (uVar2 < *(ushort *)(param_1 + 0x62)) {
          uVar1 = uVar2;
        }
        FUN_1806213f0(param_1 + 0x40 + (ulonglong)(0x20 - uVar2),param_3,uVar1);
        uVar2 = uVar2 - uVar1;
      } while (uVar2 != 0);
    }
    return 0;
  }
  return 0x1f6;
}



############ FUN_ 180620540 size=1121 ############

/* WARNING: Removing unreachable block (ram,0x0001806205c2) */
/* WARNING: Removing unreachable block (ram,0x000180620620) */

int FUN_180620540(undefined8 param_1,undefined1 param_2,undefined4 param_3)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  int unaff_retaddr;
  undefined1 auStack_b8 [32];
  undefined1 local_98;
  undefined *local_90;
  undefined *local_88;
  undefined *local_80;
  undefined8 local_78;
  undefined4 local_6c;
  uint local_68;
  uint local_64;
  undefined8 local_60;
  ulonglong local_40;
  
  local_40 = DAT_182615970 ^ (ulonglong)auStack_b8;
  uVar3 = (uint)&stack0x00000000;
  uVar1 = uVar3 & 0x17f;
  iVar2 = (uVar1 + 2) * (uVar1 + 1) * uVar1;
  uVar1 = (uVar3 & 0x1eff) * (uVar3 & 0x1eff) + 1;
  local_64 = 0x6df3 >> ((byte)((((iVar2 >> 1) - (iVar2 >> 3)) + iVar2 * 0x55555555 >> 0x1e) <<
                              ((char)uVar1 + (char)(uVar1 / 7) * -7 & 0x1fU)) & 0x1f) ^ 0x6053;
  if (((ulonglong)&stack0x00000000 & 0xf00) == 0) {
    uVar1 = (((uVar3 & 0x2ff) + 1) * (uVar3 & 0x2ff) + 7) % 0x51;
  }
  else {
    iVar2 = (uVar3 & 0x59ff) * (uVar3 & 0x59ff) + 1;
    uVar1 = iVar2 * 0x24924924 + (iVar2 >> 4) + (iVar2 >> 1) >> 0x1d;
    uVar1 = (int)(uVar1 - 7) >> 0x1f & uVar1;
  }
  local_68 = ((int)(-uVar1 | uVar1) >> 0x1f) * -0xc8c3 ^ 0xcb13;
  local_88 = &DAT_1820fda38;
  local_90 = &DAT_18210da18;
  local_78 = 0xdd1c869f;
  do {
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
    local_98 = param_2;
    local_80 = local_88;
    local_6c = param_3;
    local_60 = param_1;
  } while (uVar1 != 0);
  do {
    FUN_180621575(0xf808);
    uVar1 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
    if ((int)uVar1 < 0) {
      uVar1 = (uVar1 - 1 | 0xfffffffe) + 1;
    }
  } while (uVar1 != 0);
  return unaff_retaddr;
}



############ FUN_ 180968d00 size=580 ############

void FUN_180968d00(ulonglong *param_1,ulonglong *param_2,ulonglong *param_3)

{
  ulonglong uVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  
  uVar1 = *param_3;
  param_1[5] = uVar1;
  uVar2 = param_3[1];
  param_1[6] = uVar2;
  param_1[7] = uVar2 ^ uVar1;
  uVar1 = *param_2;
  *param_1 = uVar1;
  uVar2 = param_2[1];
  param_1[1] = uVar2;
  uVar3 = param_2[2];
  param_1[2] = uVar3;
  uVar4 = param_2[3];
  param_1[3] = uVar4;
  param_1[4] = uVar4 ^ uVar3 ^ uVar2 ^ uVar1 ^ 0x1bd11bdaa9fc1a22;
  return;
}



############ FUN_ 180702170 size=354 ############

void FUN_180702170(void)

{
  return;
}



############ FUN_ 1805f16c0 size=115 ############

void * FUN_1805f16c0(undefined1 *param_1)

{
  void *pvVar1;
  longlong lVar2;
  size_t _Count;
  longlong lVar3;
  
  lVar2 = -1;
  do {
    lVar3 = lVar2;
    lVar2 = lVar3 + 1;
  } while (param_1[lVar2] != '\0');
  _Count = lVar3 + 2;
  pvVar1 = calloc(_Count,1);
  if (pvVar1 != (void *)0x0) {
    if (_Count != 0) {
      lVar2 = (longlong)pvVar1 - (longlong)param_1;
      do {
        param_1[lVar2] = *param_1;
        param_1 = param_1 + 1;
        _Count = _Count - 1;
      } while (_Count != 0);
    }
    return pvVar1;
  }
                    /* WARNING: Subroutine does not return */
  std::_Xbad_alloc();
}



